[
  {
    "path": ".github/FUNDING.yml",
    "content": "# These are supported funding model platforms\n\ngithub: Z-Siqi\n"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/issues-template-and-rules.yaml",
    "content": "name: Issues Release Rule\ndescription: 通过这个模板发布你的问题\nbody:\n  - type: markdown\n    attributes:\n      value: |\n        请遵循模板发布问题\n  - type: textarea\n    id: text\n    attributes:\n      label: 你的问题/建议/想说的内容是什么?\n      description: 提出问题前，先看看主页中的 \"下载前你需要知晓的内容:\" <br/> 发布问题前请检查是否有重复的 <br/> 如果是反馈bug，请先确定是由汉化导致的，否则请在原版的Issues提交问题\n      placeholder: \"说些什么？建议尽可能清晰的描述问题\"\n    validations:\n      required: true\n  - type: textarea\n    id: version\n    attributes:\n      label: 版本\n      description: 这个问题发生在哪个版本? <br/> 如果是建议，汉化或故障请填写当前最新的版本号\n      placeholder: \"no-version\"\n    validations:\n      required: true\n"
  },
  {
    "path": ".github/workflows/CloseStaleIssues.yml",
    "content": "name: \"Close Stale Issues\"\n\non:\n  schedule:\n    - cron: \"0 0 * * *\"\n\njobs:\n  stale:\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions/stale@v4\n        with:\n          repo-token: ${{ secrets.GITHUB_TOKEN }}\n          days-before-stale: 14\n          days-before-close: 14\n          exempt-issue-labels: 'bug, Put on Hold, In Processing, Investigating'\n          close-issue-reason: 'not_planned'\n"
  },
  {
    "path": ".gitignore",
    "content": "/.vs\n/app/output\n"
  },
  {
    "path": "CFW/README.md",
    "content": "### 众所周知 Clash for Windows 原版仓库已经删库跑路，~这个库将再无活动的必要，因此该仓库将被存档~\n\n**考虑到因为原版的online资料都已经缺失，部分维护仍然是必要的**\n\n***\n\n**以下是一些原版包的存档**\n\n* https://github.com/Z-Siqi/Clash-for-Windows_Chinese/releases/tag/CFW\n"
  },
  {
    "path": "README.md",
    "content": "# Clash for Windows Chinese<img src=\"https://github.com/Z-Siqi/Clash-for-Windows_Chinese/blob/main/image/image_clash.png?raw=true\" width=\"30\" height=\"30\">\n### Clash 汉化版\n\n**提供clash for windows的汉化版, 汉化补丁以及汉化版Clash安装程序**\n\n效果图\n\n[![photo](https://github.com/user-attachments/assets/83ed7ff1-9ec8-462b-be65-69a192440594)](https://github.com/Z-Siqi/Clash-for-Windows_Chinese/releases/)\n\n**支持的clash版本:**\n\n[0.15.3](https://github.com/Z-Siqi/Clash-for-Windows_Chinese/releases/tag/CFW-V0.15.3_CN-V4)\n~\n[当前的最新兼容](https://github.com/Z-Siqi/Clash-for-Windows_Chinese/releases/latest)\n\n**基本特征&介绍:**\n\n* 使用安装程序(Clash.for.Windows.Setup. ** . ** . ** .exe)安装的汉化版CFW将劫持更新，之后可直接通过应用内置的更新方式进行汉化版/软件更新\n* 使用安装包(Clash.for.Windows- ** . ** . ** -win.7z)请不要在解压时选择解压到当前文件夹，否则软件相关的所有文件将放到当前所在文件夹\n* ~app.asar需要替换掉对应版本的原版app.asar以完成汉化~\n* ~使用7z格式压缩包(app.7z)需要先进行解压，然后提取里面的app.asar并替换掉原有文件以完成汉化，即在节省流量~\n\n**<details><summary>下载前你需要知晓的内容:</summary>**\n\n~**The repository was archived (Nov 3, 2023) due to: [README.md](https://github.com/Z-Siqi/Clash-for-Windows_Chinese/blob/main/CFW/README.md)**~\n\n  **下载将代表你对以下内容无任何异议**\n\n**非官方版本，Unofficial！** \n\n*简单来说，这个库提供的Clash for Windows是修改过的，请在向原版Clash for Windows反馈漏洞前先更换回原版*\n\n**修改的方式/内容大致说明列表 (可能不适用于 Optimize 版本)**\n\n    对Clash for Windows进行的修改:\n      1, 修改\"app.asar\"文件中的\"renderer.js\"\n      2, 修改\"app.asar\"文件中的\"main.js\"\n      3, 修改\"app.asar\"文件中的其它内容(具体参见 https://github.com/Z-Siqi/Clash-for-Windows_Chinese/tree/main/app 目录下的所有 .md 文件)\n    对Clash for Windows植入的第三方链接:\n      1, https://github.com/Z-Siqi/Clash-for-Windows_Chinese-Attached\n    对app.asar替换的文件:\n      1, app.asar\\dist\\electron\\static\\*\n    汉化的方式\n      通过Notepad++进行替换 (已被淘汰)\n        手动替换用表位置:\n          Clash-for-Windows_Chinese/chinese_file/Clash_Sinicization_Comparison_Table\n        下载链接:\n          https://notepad-plus-plus.org/downloads/\n      通过Replace Pioneer的Batch Rnuuer工具配合替换表进行批量替换\n        替换表的位置:\n          Clash-for-Windows_Chinese/chinese_file/Auto/main-chinese\n          Clash-for-Windows_Chinese/chinese_file/Auto/renderer-chinese\n        下载链接\n          https://www.mind-pioneer.com/\n      zh-cn.js的汉化方式:\n        将文件中的\"后\"改为\"前\"\n        在app.asar中的位置:\n          app.asar\\node_modules\\moment\\locale\\zh-cn.js\n    封包方式\n      安装程序的封包程序:\n        简易封包工具_3.2.0.1.exe (已被淘汰)\n        Inno Setup Compiler\n          下载链接:\n            https://jrsoftware.org/isdl.php\n      .7z扩展名的封包程序:\n        7-zip (已弃用)\n        下载链接:\n          https://7-zip.org/\n        NanaZip\n        下载链接:\n          In the Microsoft Store\n\n**Optimize (优化) 版本**\n\n源代码：https://github.com/Z-Siqi/Clash-for-Windows_Chinese/tree/main/app\n\n**重要内容**\n\n    ----------------------------------------------------\n    * Important, You MUST agree!\n    * 此项目不为中国大陆地区提供任何帮助与支持\n    * 赞助商的一切内容与该库无关\n    * 该库不承担由使用者造成的任何行为\n    * 该库的所有内容仅存在于GitHub\n    * 此汉化版适用于Clash for Windows免责声明的 1 ~ 6 条\n    ----------------------------------------------------\n\n\n**免责声明**\n\n    免责声明如下:\n      1. 本软件仅供学习和研究网络技术之用，用户必须遵守所在地区的法律法规，不得用于非法用途，本软件不对任何人的行为负责。 \n\n      2. 用户在使用本软件时必须严格遵守所在国家/地区的法律、法规和政策。 因违反有关法律、法规和政策而导致的任何后果或责任由用户自行承担。\n\n      3. 本软件不负责传输内容。 因此，如因使用本软件而产生任何问题或后果，由用户自行承担全部责任。\n\n      4. 如本软件违反用户所在国家/地区的任何法律法规，用户必须立即停止使用并承担相应的法律责任。\n\n      5. 用户在使用本软件时，即承认并同意本软件不能保证网络的稳定性、准确性、及时性和安全性。 因网络拥塞、防火墙限制、DNS污染、运营商干扰等原因造成的连接问题或无法连接，本软件不承担任何责任。\n\n      6. 本软件不提供技术支持，对因用户使用本软件而造成的任何直接或间接损失，包括但不限于财产损失、数据丢失及其他形式的损失不承担任何责任。\n</details>\n\n*** \n### 讨论/Discussions\n\n**[参与或发起讨论](https://github.com/Z-Siqi/Clash-for-Windows_Chinese/discussions)**\n\n### 参与该项目的开发/工作\n*通过提出 Pull Request 将你的维护添加到下一个版本的更新里并成为这个库的共同维护者*\n\n**[这些issues非常需要您的帮助/贡献](https://github.com/Z-Siqi/Clash-for-Windows_Chinese/issues?q=label%3A%22Need+Help%22+)**\n\n***\n\n#### 赞助商的广告\n\n[![ads](https://github.com/user-attachments/assets/9fd317b9-33c4-493c-b869-67e1cb6a853c)](https://live.cute-cloud.de/register?code=uIyXpA5O)\n\n[[CUTECLOUD](https://live.cute-cloud.de/register?code=uIyXpA5O)] 多年老牌机场，有试用，线路优秀，解锁全面，并提供丰富的共享账户。速度与稳定性很好，Youtube全天8K无压。\n[点击此处或图片直达](https://live.cute-cloud.de/register?code=uIyXpA5O)\n\n***\n### 快速导航\n[前往汉化下载界面](https://github.com/Z-Siqi/Clash-for-Windows_Chinese/releases)\n\n[Clash for Windows 线上文档副本](https://github.com/Z-Siqi/Clash-for-Windows_Chinese/wiki)\n\n~[前往原版Clash for Windows下载界面](https://github.com/Fndroid/clash_for_windows_pkg/releases)~\n\n#### 能够解压7z格式的软件\n\n[NanaZip](https://github.com/M2Team/NanaZip) *(兼容Windows11)*\n\n[7-Zip](https://www.7-zip.org/)\n\n[WinRAR](https://www.rarlab.com/)\n\n***\n\n### 如果你喜欢的话，可以考虑[向我赞助](https://github.com/sponsors/Z-Siqi)\n"
  },
  {
    "path": "app/README.md",
    "content": "### Guide\n* Extract these files in ONE folder\n* Run `build_default_.bat` to quick generate runnable software (Windows x64)\n* Run `xxx.ps1` to build the program (linux, arm, etc.)\n"
  },
  {
    "path": "app/build_default.bat",
    "content": "@echo off\n\ncd /d \"%~dp0\"\n\npowershell.exe -NoProfile -ExecutionPolicy Bypass -File \"%~dp0\\build_win_x64.ps1\" %*\n"
  },
  {
    "path": "app/build_linux_arm64.ps1",
    "content": "# Requires PowerShell 3.0+\n# Script Directory\n$scriptDir   = $PSScriptRoot\n$staticDir   = Join-Path $scriptDir 'clash_core\\linux-arm64\\static'\n$mainDir     = Join-Path $scriptDir 'main'\n$logoFile    = Join-Path $scriptDir 'logo.ico'\n$outputDir   = Join-Path $scriptDir 'output'\n$outWinDir   = Join-Path $outputDir 'cfw-linux-arm64'\n\nWrite-Host 'Checking environment...'\n\n# Checking static\nif (-not (Test-Path $staticDir)) {\n    Write-Error 'Failed! \"static\" folder not found!'\n    Read-Host 'Press Enter to exit'\n    exit 1\n}\n# Checking main\nif (-not (Test-Path $mainDir)) {\n    Write-Error 'Failed! \"main\" folder not found!'\n    Read-Host 'Press Enter to exit'\n    exit 1\n}\n# Checking logo.ico\nif (-not (Test-Path $logoFile)) {\n    Write-Error 'Failed! \"logo.ico\" not found!'\n    Read-Host 'Press Enter to exit'\n    exit 1\n}\n\n# Checking npm\n& npm --version > $null 2>&1\nif ($LASTEXITCODE -eq 0) {\n    Write-Host 'npm is detected...'\n} else {\n    Write-Error 'Failed! No npm command!'\n    Write-Host 'Install Node.js might fix this.'\n    Read-Host 'Press Enter to exit'\n    exit 1\n}\n\n# Checking electron-packager\n& npx electron-packager --version > $null 2>&1\nif ($LASTEXITCODE -eq 0) {\n    Write-Host 'electron-packager is detected...'\n} else {\n    Write-Warning 'Failed! No electron-packager command!'\n    Write-Host 'But npm is detected!'\n    Read-Host 'Press Enter to install electron-packager or Ctrl+C to exit'\n    npm install -g electron-packager\n}\n\n# Checking asar\n& npx asar --version > $null 2>&1\nif ($LASTEXITCODE -eq 0) {\n    Write-Host 'asar is detected...'\n} else {\n    Write-Warning 'Failed! No asar command!'\n    Write-Host 'But npm is detected!'\n    Read-Host 'Press Enter to install asar or Ctrl+C to exit'\n    npm install -g asar\n}\n\nWrite-Host 'Success!'\n\n# Clear old output\nif (Test-Path $outWinDir) {\n    Write-Host 'Detected old output!'\n    Read-Host 'Press Enter to delete and rebuild'\n    Remove-Item -Recurse -Force $outWinDir\n    Write-Host 'Success!'\n}\n\n# Make sure output dir is existed\nif (-not (Test-Path $outputDir)) {\n    New-Item -ItemType Directory -Path $outputDir | Out-Null\n}\n\n# Start packaging\nWrite-Host 'Starting electron-packager...'\n& npx electron-packager `\n    \"`\"$mainDir`\"\" \"cfw\" `\n    --platform=linux --arch=arm64 --electron-version=34.0.0 `\n    --icon=\"`\"$logoFile`\"\" --out=\"`\"$outputDir`\"\" --prune=true --asar\nif ($LASTEXITCODE -ne 0) {\n    Write-Error 'electron-packager Failed!'\n    exit 1\n}\n\nWrite-Host 'Waiting app building...'\nWrite-Host 'Note: If wait too long, it may mean that the execution has failed. Press Ctrl+C to terminate.'\n\n# Wait for the program\n$exePath = Join-Path $outWinDir 'cfw'\nwhile (-not (Test-Path $exePath)) {\n    Start-Sleep -Seconds 5\n}\nWrite-Host 'Success!'\n\n# Adding files\nWrite-Host 'Adding proxy core files...'\nStart-Sleep -Seconds 1\n\n$destStatic = Join-Path $outWinDir 'resources\\static'\n\n# Make sure resources dir is existed\n$resourcesDir = Split-Path $destStatic -Parent\nif (-not (Test-Path $resourcesDir)) {\n    New-Item -ItemType Directory -Path $resourcesDir | Out-Null\n}\n\n# Make sure static dir is existed\nif (-not (Test-Path $destStatic)) {\n    New-Item -ItemType Directory -Path $destStatic | Out-Null\n}\n\n# Then copy it\nCopy-Item -Path \"$staticDir\\*\" -Destination $destStatic -Recurse -Force\nWrite-Host 'Success!'\n\nWrite-Host 'Finish!'\nRead-Host 'Press Enter to exit'\n"
  },
  {
    "path": "app/build_linux_x64.ps1",
    "content": "# Requires PowerShell 3.0+\n# Script Directory\n$scriptDir   = $PSScriptRoot\n$staticDir   = Join-Path $scriptDir 'clash_core\\linux-x64\\static'\n$mainDir     = Join-Path $scriptDir 'main'\n$logoFile    = Join-Path $scriptDir 'logo.ico'\n$outputDir   = Join-Path $scriptDir 'output'\n$outWinDir   = Join-Path $outputDir 'cfw-linux-x64'\n\nWrite-Host 'Checking environment...'\n\n# Checking static\nif (-not (Test-Path $staticDir)) {\n    Write-Error 'Failed! \"static\" folder not found!'\n    Read-Host 'Press Enter to exit'\n    exit 1\n}\n# Checking main\nif (-not (Test-Path $mainDir)) {\n    Write-Error 'Failed! \"main\" folder not found!'\n    Read-Host 'Press Enter to exit'\n    exit 1\n}\n# Checking logo.ico\nif (-not (Test-Path $logoFile)) {\n    Write-Error 'Failed! \"logo.ico\" not found!'\n    Read-Host 'Press Enter to exit'\n    exit 1\n}\n\n# Checking npm\n& npm --version > $null 2>&1\nif ($LASTEXITCODE -eq 0) {\n    Write-Host 'npm is detected...'\n} else {\n    Write-Error 'Failed! No npm command!'\n    Write-Host 'Install Node.js might fix this.'\n    Read-Host 'Press Enter to exit'\n    exit 1\n}\n\n# Checking electron-packager\n& npx electron-packager --version > $null 2>&1\nif ($LASTEXITCODE -eq 0) {\n    Write-Host 'electron-packager is detected...'\n} else {\n    Write-Warning 'Failed! No electron-packager command!'\n    Write-Host 'But npm is detected!'\n    Read-Host 'Press Enter to install electron-packager or Ctrl+C to exit'\n    npm install -g electron-packager\n}\n\n# Checking asar\n& npx asar --version > $null 2>&1\nif ($LASTEXITCODE -eq 0) {\n    Write-Host 'asar is detected...'\n} else {\n    Write-Warning 'Failed! No asar command!'\n    Write-Host 'But npm is detected!'\n    Read-Host 'Press Enter to install asar or Ctrl+C to exit'\n    npm install -g asar\n}\n\nWrite-Host 'Success!'\n\n# Clear old output\nif (Test-Path $outWinDir) {\n    Write-Host 'Detected old output!'\n    Read-Host 'Press Enter to delete and rebuild'\n    Remove-Item -Recurse -Force $outWinDir\n    Write-Host 'Success!'\n}\n\n# Make sure output dir is existed\nif (-not (Test-Path $outputDir)) {\n    New-Item -ItemType Directory -Path $outputDir | Out-Null\n}\n\n# Start packaging\nWrite-Host 'Starting electron-packager...'\n& npx electron-packager `\n    \"`\"$mainDir`\"\" \"cfw\" `\n    --platform=linux --arch=x64 --electron-version=34.0.0 `\n    --icon=\"`\"$logoFile`\"\" --out=\"`\"$outputDir`\"\" --prune=true --asar\nif ($LASTEXITCODE -ne 0) {\n    Write-Error 'electron-packager Failed!'\n    exit 1\n}\n\nWrite-Host 'Waiting app building...'\nWrite-Host 'Note: If wait too long, it may mean that the execution has failed. Press Ctrl+C to terminate.'\n\n# Wait for the program\n$exePath = Join-Path $outWinDir 'cfw'\nwhile (-not (Test-Path $exePath)) {\n    Start-Sleep -Seconds 5\n}\nWrite-Host 'Success!'\n\n# Adding files\nWrite-Host 'Adding proxy core files...'\nStart-Sleep -Seconds 1\n\n$destStatic = Join-Path $outWinDir 'resources\\static'\n\n# Make sure resources dir is existed\n$resourcesDir = Split-Path $destStatic -Parent\nif (-not (Test-Path $resourcesDir)) {\n    New-Item -ItemType Directory -Path $resourcesDir | Out-Null\n}\n\n# Make sure static dir is existed\nif (-not (Test-Path $destStatic)) {\n    New-Item -ItemType Directory -Path $destStatic | Out-Null\n}\n\n# Then copy it\nCopy-Item -Path \"$staticDir\\*\" -Destination $destStatic -Recurse -Force\nWrite-Host 'Success!'\n\nWrite-Host 'Finish!'\nRead-Host 'Press Enter to exit'\n"
  },
  {
    "path": "app/build_win32-ia32.ps1",
    "content": "# Requires PowerShell 3.0+\n# Script Directory\n$scriptDir   = $PSScriptRoot\n$staticDir   = Join-Path $scriptDir 'clash_core\\win32-ia32\\static'\n$mainDir     = Join-Path $scriptDir 'main'\n$logoFile    = Join-Path $scriptDir 'logo.ico'\n$outputDir   = Join-Path $scriptDir 'output'\n$outWinDir   = Join-Path $outputDir 'Clash for Windows-win32-ia32'\n\nWrite-Host 'Checking environment...'\n\n# Checking static\nif (-not (Test-Path $staticDir)) {\n    Write-Error 'Failed! \"static\" folder not found!'\n    Read-Host 'Press Enter to exit'\n    exit 1\n}\n# Checking main\nif (-not (Test-Path $mainDir)) {\n    Write-Error 'Failed! \"main\" folder not found!'\n    Read-Host 'Press Enter to exit'\n    exit 1\n}\n# Checking logo.ico\nif (-not (Test-Path $logoFile)) {\n    Write-Error 'Failed! \"logo.ico\" not found!'\n    Read-Host 'Press Enter to exit'\n    exit 1\n}\n\n# Checking npm\n& npm --version > $null 2>&1\nif ($LASTEXITCODE -eq 0) {\n    Write-Host 'npm is detected...'\n} else {\n    Write-Error 'Failed! No npm command!'\n    Write-Host 'Install Node.js might fix this.'\n    Read-Host 'Press Enter to exit'\n    exit 1\n}\n\n# Checking electron-packager\n& npx electron-packager --version > $null 2>&1\nif ($LASTEXITCODE -eq 0) {\n    Write-Host 'electron-packager is detected...'\n} else {\n    Write-Warning 'Failed! No electron-packager command!'\n    Write-Host 'But npm is detected!'\n    Read-Host 'Press Enter to install electron-packager or Ctrl+C to exit'\n    npm install -g electron-packager\n}\n\n# Checking asar\n& npx asar --version > $null 2>&1\nif ($LASTEXITCODE -eq 0) {\n    Write-Host 'asar is detected...'\n} else {\n    Write-Warning 'Failed! No asar command!'\n    Write-Host 'But npm is detected!'\n    Read-Host 'Press Enter to install asar or Ctrl+C to exit'\n    npm install -g asar\n}\n\nWrite-Host 'Success!'\n\n# Clear old output\nif (Test-Path $outWinDir) {\n    Write-Host 'Detected old output!'\n    Read-Host 'Press Enter to delete and rebuild'\n    Remove-Item -Recurse -Force $outWinDir\n    Write-Host 'Success!'\n}\n\n# Make sure output dir is existed\nif (-not (Test-Path $outputDir)) {\n    New-Item -ItemType Directory -Path $outputDir | Out-Null\n}\n\n# Start packaging\nWrite-Host 'Starting electron-packager...'\n& npx electron-packager `\n    \"`\"$mainDir`\"\" \"Clash for Windows\" `\n    --platform=win32 --arch=ia32 --electron-version=34.0.0 `\n    --icon=\"`\"$logoFile`\"\" --out=\"`\"$outputDir`\"\" --prune=true --asar\nif ($LASTEXITCODE -ne 0) {\n    Write-Error 'electron-packager Failed!'\n    exit 1\n}\n\nWrite-Host 'Waiting app building...'\nWrite-Host 'Note: If wait too long, it may mean that the execution has failed. Press Ctrl+C to terminate.'\n\n# Wait for the program\n$exePath = Join-Path $outWinDir 'Clash for Windows.exe'\nwhile (-not (Test-Path $exePath)) {\n    Start-Sleep -Seconds 5\n}\nWrite-Host 'Success!'\n\n# Adding files\nWrite-Host 'Adding proxy core files...'\nStart-Sleep -Seconds 1\n\n$destStatic = Join-Path $outWinDir 'resources\\static'\n\n# Make sure resources dir is existed\n$resourcesDir = Split-Path $destStatic -Parent\nif (-not (Test-Path $resourcesDir)) {\n    New-Item -ItemType Directory -Path $resourcesDir | Out-Null\n}\n\n# Make sure static dir is existed\nif (-not (Test-Path $destStatic)) {\n    New-Item -ItemType Directory -Path $destStatic | Out-Null\n}\n\n# Then copy it\nCopy-Item -Path \"$staticDir\\*\" -Destination $destStatic -Recurse -Force\nWrite-Host 'Success!'\n\nWrite-Host 'Finish!'\nRead-Host 'Press Enter to exit'\n"
  },
  {
    "path": "app/build_win32_arm64.ps1",
    "content": "# Requires PowerShell 3.0+\n# Script Directory\n$scriptDir   = $PSScriptRoot\n$staticDir   = Join-Path $scriptDir 'clash_core\\win32-arm64\\static'\n$mainDir     = Join-Path $scriptDir 'main'\n$logoFile    = Join-Path $scriptDir 'logo.ico'\n$outputDir   = Join-Path $scriptDir 'output'\n$outWinDir   = Join-Path $outputDir 'Clash for Windows-win32-arm64'\n\nWrite-Host 'Checking environment...'\n\n# Checking static\nif (-not (Test-Path $staticDir)) {\n    Write-Error 'Failed! \"static\" folder not found!'\n    Read-Host 'Press Enter to exit'\n    exit 1\n}\n# Checking main\nif (-not (Test-Path $mainDir)) {\n    Write-Error 'Failed! \"main\" folder not found!'\n    Read-Host 'Press Enter to exit'\n    exit 1\n}\n# Checking logo.ico\nif (-not (Test-Path $logoFile)) {\n    Write-Error 'Failed! \"logo.ico\" not found!'\n    Read-Host 'Press Enter to exit'\n    exit 1\n}\n\n# Checking npm\n& npm --version > $null 2>&1\nif ($LASTEXITCODE -eq 0) {\n    Write-Host 'npm is detected...'\n} else {\n    Write-Error 'Failed! No npm command!'\n    Write-Host 'Install Node.js might fix this.'\n    Read-Host 'Press Enter to exit'\n    exit 1\n}\n\n# Checking electron-packager\n& npx electron-packager --version > $null 2>&1\nif ($LASTEXITCODE -eq 0) {\n    Write-Host 'electron-packager is detected...'\n} else {\n    Write-Warning 'Failed! No electron-packager command!'\n    Write-Host 'But npm is detected!'\n    Read-Host 'Press Enter to install electron-packager or Ctrl+C to exit'\n    npm install -g electron-packager\n}\n\n# Checking asar\n& npx asar --version > $null 2>&1\nif ($LASTEXITCODE -eq 0) {\n    Write-Host 'asar is detected...'\n} else {\n    Write-Warning 'Failed! No asar command!'\n    Write-Host 'But npm is detected!'\n    Read-Host 'Press Enter to install asar or Ctrl+C to exit'\n    npm install -g asar\n}\n\nWrite-Host 'Success!'\n\n# Clear old output\nif (Test-Path $outWinDir) {\n    Write-Host 'Detected old output!'\n    Read-Host 'Press Enter to delete and rebuild'\n    Remove-Item -Recurse -Force $outWinDir\n    Write-Host 'Success!'\n}\n\n# Make sure output dir is existed\nif (-not (Test-Path $outputDir)) {\n    New-Item -ItemType Directory -Path $outputDir | Out-Null\n}\n\n# Start packaging\nWrite-Host 'Starting electron-packager...'\n& npx electron-packager `\n    \"`\"$mainDir`\"\" \"Clash for Windows\" `\n    --platform=win32 --arch=arm64 --electron-version=34.0.0 `\n    --icon=\"`\"$logoFile`\"\" --out=\"`\"$outputDir`\"\" --prune=true --asar\nif ($LASTEXITCODE -ne 0) {\n    Write-Error 'electron-packager Failed!'\n    exit 1\n}\n\nWrite-Host 'Waiting app building...'\nWrite-Host 'Note: If wait too long, it may mean that the execution has failed. Press Ctrl+C to terminate.'\n\n# Wait for the program\n$exePath = Join-Path $outWinDir 'Clash for Windows.exe'\nwhile (-not (Test-Path $exePath)) {\n    Start-Sleep -Seconds 5\n}\nWrite-Host 'Success!'\n\n# Adding files\nWrite-Host 'Adding proxy core files...'\nStart-Sleep -Seconds 1\n\n$destStatic = Join-Path $outWinDir 'resources\\static'\n\n# Make sure resources dir is existed\n$resourcesDir = Split-Path $destStatic -Parent\nif (-not (Test-Path $resourcesDir)) {\n    New-Item -ItemType Directory -Path $resourcesDir | Out-Null\n}\n\n# Make sure static dir is existed\nif (-not (Test-Path $destStatic)) {\n    New-Item -ItemType Directory -Path $destStatic | Out-Null\n}\n\n# Then copy it\nCopy-Item -Path \"$staticDir\\*\" -Destination $destStatic -Recurse -Force\nWrite-Host 'Success!'\n\nWrite-Host 'Finish!'\nRead-Host 'Press Enter to exit'\n"
  },
  {
    "path": "app/build_win_x64.ps1",
    "content": "# Requires PowerShell 3.0+\n# Script Directory\n$scriptDir   = $PSScriptRoot\n$staticDir   = Join-Path $scriptDir 'clash_core\\win_x64\\static'\n$mainDir     = Join-Path $scriptDir 'main'\n$logoFile    = Join-Path $scriptDir 'logo.ico'\n$outputDir   = Join-Path $scriptDir 'output'\n$oldWinDir   = Join-Path $outputDir 'Clash for Windows'\n$wrongWinDir = Join-Path $outputDir 'Clash for Windows-win32-x64'\n\nWrite-Host 'Checking environment...'\n\n# Checking static\nif (-not (Test-Path $staticDir)) {\n    Write-Error 'Failed! \"static\" folder not found!'\n    Read-Host 'Press Enter to exit'\n    exit 1\n}\n# Checking main\nif (-not (Test-Path $mainDir)) {\n    Write-Error 'Failed! \"main\" folder not found!'\n    Read-Host 'Press Enter to exit'\n    exit 1\n}\n# Checking logo.ico\nif (-not (Test-Path $logoFile)) {\n    Write-Error 'Failed! \"logo.ico\" not found!'\n    Read-Host 'Press Enter to exit'\n    exit 1\n}\n\n# Checking npm\n& npm --version > $null 2>&1\nif ($LASTEXITCODE -eq 0) {\n    Write-Host 'npm is detected...'\n} else {\n    Write-Error 'Failed! No npm command!'\n    Write-Host 'Install Node.js might fix this.'\n    Read-Host 'Press Enter to exit'\n    exit 1\n}\n\n# Checking electron-packager\n& npx electron-packager --version > $null 2>&1\nif ($LASTEXITCODE -eq 0) {\n    Write-Host 'electron-packager is detected...'\n} else {\n    Write-Warning 'Failed! No electron-packager command!'\n    Write-Host 'But npm is detected!'\n    Read-Host 'Press Enter to install electron-packager or Ctrl+C to exit'\n    npm install -g electron-packager\n}\n\n# Checking asar\n& npx asar --version > $null 2>&1\nif ($LASTEXITCODE -eq 0) {\n    Write-Host 'asar is detected...'\n} else {\n    Write-Warning 'Failed! No asar command!'\n    Write-Host 'But npm is detected!'\n    Read-Host 'Press Enter to install asar or Ctrl+C to exit'\n    npm install -g asar\n}\n\nWrite-Host 'Success!'\n\n# Clear old output\nif (Test-Path $oldWinDir) {\n    Write-Host 'Detected old output!'\n    Read-Host 'Press Enter to delete and rebuild'\n    Remove-Item -Recurse -Force $oldWinDir\n    Write-Host 'Success!'\n}\nif (Test-Path $wrongWinDir) {\n    Write-Host 'Detected wrong building files!'\n    Read-Host 'Press Enter to delete and continue'\n    Remove-Item -Recurse -Force $wrongWinDir\n    Write-Host 'Success!'\n}\n\n# Make sure output dir is existed\nif (-not (Test-Path $outputDir)) {\n    New-Item -ItemType Directory -Path $outputDir | Out-Null\n}\n\n# Start packaging\nWrite-Host 'Starting electron-packager...'\n& npx electron-packager `\n    \"`\"$mainDir`\"\" \"Clash for Windows\" `\n    --platform=win32 --arch=x64 --electron-version=34.0.0 `\n    --icon=\"`\"$logoFile`\"\" --out=\"`\"$outputDir`\"\" --prune=true --asar\nif ($LASTEXITCODE -ne 0) {\n    Write-Error 'electron-packager Failed!'\n    exit 1\n}\n\nWrite-Host 'Waiting app building...'\nWrite-Host 'Note: If wait too long, it may mean that the execution has failed. Press Ctrl+C to terminate.'\n\n# Wait for the program\n$exePath = Join-Path $wrongWinDir 'Clash for Windows.exe'\nwhile (-not (Test-Path $exePath)) {\n    Start-Sleep -Seconds 5\n}\nWrite-Host 'Success!'\n\n# Adding files and rename\nWrite-Host 'Adding proxy core files...'\nStart-Sleep -Seconds 1\nRename-Item -Path $wrongWinDir -NewName 'Clash for Windows'\n$destStatic = Join-Path $oldWinDir 'resources\\static'\n\n# Make sure resources dir is existed\n$resourcesDir = Split-Path $destStatic -Parent\nif (-not (Test-Path $resourcesDir)) {\n    New-Item -ItemType Directory -Path $resourcesDir | Out-Null\n}\n\n# Make sure static dir is existed\nif (-not (Test-Path $destStatic)) {\n    New-Item -ItemType Directory -Path $destStatic | Out-Null\n}\n\n# Then copy it\nCopy-Item -Path \"$staticDir\\*\" -Destination $destStatic -Recurse -Force\nWrite-Host 'Success!'\n\nWrite-Host 'Finish!'\nRead-Host 'Press Enter to exit'\n"
  },
  {
    "path": "app/clash_core/linux-arm64/static/files/linux/arm64/clash-linux.sign",
    "content": "U2KIAkV6aF08JlUXVPChLl6W2d0/78V16zzz7Mz5bH2nbYfNADFCVK10wB8/LDGz9PrIkSNaceKGbdn7zdVhyQ=="
  },
  {
    "path": "app/clash_core/linux-x64/static/files/linux/x64/clash-linux.sign",
    "content": "g4db2Nr6eFh0TnYY1jiDD/wENCzputDYksyhcs9AyOoJxvcbr1dVhTgk0OJwvzdiPd+QV/u958/YkmbB1iytBw=="
  },
  {
    "path": "app/clash_core/win32-arm64/static/files/win/arm64/clash-win-arm64.exe.sign",
    "content": "ITc2EBlFAD1GjpFIotoMMlMk9xt5GrqaVEJSnoyirU2zM/hMts4RfwFL3rXpa3IL/dSgmnsaPTuBLzPIK6IGKA=="
  },
  {
    "path": "app/clash_core/win32-arm64/static/files/win/common/schtasks.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-16\"?>\n<Task version=\"1.2\" xmlns=\"http://schemas.microsoft.com/windows/2004/02/mit/task\">\n  <Triggers>\n    <LogonTrigger>\n      <Enabled>true</Enabled>\n    </LogonTrigger>\n  </Triggers>\n  <Settings>\n    <MultipleInstancesPolicy>StopExisting</MultipleInstancesPolicy>\n    <DisallowStartIfOnBatteries>false</DisallowStartIfOnBatteries>\n    <StopIfGoingOnBatteries>false</StopIfGoingOnBatteries>\n    <AllowHardTerminate>false</AllowHardTerminate>\n    <StartWhenAvailable>true</StartWhenAvailable>\n    <RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable>\n    <IdleSettings>\n      <StopOnIdleEnd>true</StopOnIdleEnd>\n      <RestartOnIdle>false</RestartOnIdle>\n    </IdleSettings>\n    <AllowStartOnDemand>true</AllowStartOnDemand>\n    <Enabled>true</Enabled>\n    <Hidden>false</Hidden>\n    <RunOnlyIfIdle>false</RunOnlyIfIdle>\n    <WakeToRun>false</WakeToRun>\n    <ExecutionTimeLimit>PT0S</ExecutionTimeLimit>\n    <Priority>7</Priority>\n    <RestartOnFailure>\n      <Interval>PT1M</Interval>\n      <Count>5</Count>\n    </RestartOnFailure>\n  </Settings>\n  <Actions Context=\"Author\">\n    <Exec>\n      <Command>\"\"</Command>\n    </Exec>\n  </Actions>\n</Task>"
  },
  {
    "path": "app/clash_core/win32-arm64/static/files/win/common/service.yml",
    "content": "id: Clash Core Service\nname: Clash Core Service\ndescription: Clash Core Service started by Clash for Windows\nexecutable: clash-core-service\nlog:\n  mode: none\n"
  },
  {
    "path": "app/clash_core/win32-arm64/static/files/win/common/tun2socks/add_tap_device.bat",
    "content": ":: Copyright 2018 The Outline Authors\n::\n:: Licensed under the Apache License, Version 2.0 (the \"License\");\n:: you may not use this file except in compliance with the License.\n:: You may obtain a copy of the License at\n::\n::      http://www.apache.org/licenses/LICENSE-2.0\n::\n:: Unless required by applicable law or agreed to in writing, software\n:: distributed under the License is distributed on an \"AS IS\" BASIS,\n:: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n:: See the License for the specific language governing permissions and\n:: limitations under the License.\n\n@echo off\n:: See https://ss64.com/nt/delayedexpansion.html\nsetlocal enabledelayedexpansion\n\nset DEVICE_NAME=cfw-tap\nset DEVICE_HWID=tap0901\n\nset SCRIPT_DIR=%~dp0\nset ARCH=%1\nset IP=%2\nset SUBNET=%3\nset GATEWAY=%4\n\n:: Error codes for surfacing to the user and sentry.\nset ERROR_TAP_INSTALL=1\nset ERROR_TAP_FIND_NAME=2\nset ERROR_TAP_RENAME=3\nset ERROR_TAP_CONFIGURE_SUBNET=4\nset ERROR_TAP_CONFIGURE_DNS=5\n\n:: Because we've seen multiple failures due to commands (netsh, etc.) not being\n:: found, append some common directories to the PATH.\n::\n:: Note:\n::  - %SystemRoot% almost always expands to c:\\windows.\n::  - Do *not* surround with quotes.\nset PATH=%PATH%;%SystemRoot%\\system32;%SystemRoot%\\system32\\wbem;%SystemRoot%\\system32\\WindowsPowerShell/v1.0\n\n:: Check whether the device already exists.\nnetsh interface show interface name=%DEVICE_NAME%\nif %errorlevel% equ 0 (\n  echo TAP network device already exists.\n  goto :configure\n)\n\necho Creating TAP network device...\n\"%SCRIPT_DIR%\\%ARCH%\\tapinstall\" install \"%SCRIPT_DIR%\\%ARCH%\\OemVista.inf\" %DEVICE_HWID%\nif %errorlevel% neq 0 (\n  echo Could not create TAP network device. Try to do it manually. >&2\n  REM exit /b %ERROR_TAP_INSTALL%\n  start /wait /D \"%SCRIPT_DIR%\" tap-windows-installer.exe\n)\n\n:: Find the name of the most recently installed TAP device in the registry and rename it.\necho Searching for new TAP network device name...\ncall \"%SCRIPT_DIR%\\find_tap_device_name.bat\" TAP_NAME\nif %errorlevel% neq 0 (\n  echo Could not find TAP device name. >&2\n  exit /b %ERROR_TAP_FIND_NAME%\n)\necho Found TAP device name: \"%TAP_NAME%\"\n\n:: We've occasionally seen delays before netsh will \"see\" the new device, at least for\n:: purposes of configuring IP and DNS (\"netsh interface show interface name=xxx\" does not\n:: seem to be affected).\ncall :wait_for_device \"%TAP_NAME%\"\n\n:: Attempt to rename the device even if waiting timed out.\nnetsh interface set interface name=\"%TAP_NAME%\" newname=\"%DEVICE_NAME%\"\nif %errorlevel% neq 0 (\n  :: Try to rename the device through powershell in case netsh failed due to not being able to \"see\"\n  :: the device. Pipe input from /dev/null to prevent powershell from waiting forever on EOF.\n  powershell \"Rename-NetAdapter -Name \\\"%TAP_NAME%\\\" -NewName \\\"%DEVICE_NAME%\\\"\" <nul\n  :: Note that we use delayed variable expansion inside a control block to check errorlevel.\n  if !errorlevel! neq 0 (\n    echo Could not rename TAP device. >&2\n    exit /b %ERROR_TAP_RENAME%\n  )\n)\n\n:: Wait for the new name to propagate to netsh.\ncall :wait_for_device \"%DEVICE_NAME%\"\n\n:: Attempt to configure the device even if waiting timed out.\n:configure\n\n:: Try to enable the device, in case it's somehow been disabled.\n::\n:: Annoyingly, this returns an error and outputs a confusing message if the device exists and is\n:: already enabled:\n::   This network connection does not exist.\n::\n:: So, continue even if this command fails - and always include its output.\necho (Re-)enabling TAP network device...\nnetsh interface set interface \"%DEVICE_NAME%\" admin=enabled\n:: The powershell command is used to ensure the adapter is enabled if netsh fails and leaves it in\n:: a disabled state. While no such failure has yet been observed, this command would correct it and\n:: should behave idempotently otherwise.\npowershell \"Enable-NetAdapter -Name \\\"%DEVICE_NAME%\\\"\" <nul\n\n:: Give the device an IP address.\n:: 10.0.85.x is a guess which we hope will work for most users (Docker for\n:: Windows uses 10.0.75.x by default): if the address is already in use the\n:: script will fail and the installer will show an error message to the user.\n:: TODO: Actually search the system for an unused subnet or make the subnet\n::       configurable in the Outline client.\necho Configuring TAP device subnet...\nnetsh interface ip set address %DEVICE_NAME% static %IP% %SUBNET% %GATEWAY%\nif %errorlevel% neq 0 (\n  echo Could not set TAP network device subnet. >&2\n  exit /b %ERROR_TAP_CONFIGURE_SUBNET%\n)\n\n:: Windows has no system-wide DNS server; each network device can have its\n:: \"own\" set of DNS servers. Windows seems to use the DNS server(s) of the\n:: network device associated with the default gateway. This is good for us\n:: as it means we do not have to modify the DNS settings of any other network\n:: device in the system. Configure with OpenDNS and Dyn resolvers.\necho Configuring primary DNS...\nnetsh interface ip set dnsservers %DEVICE_NAME% static address=%IP%\nif %errorlevel% neq 0 (\n  echo Could not configure TAP device primary DNS. >&2\n  exit /b %ERROR_TAP_CONFIGURE_DNS%\n)\necho Setting interface metric (1) for this interface...\npowershell \"Set-NetIPInterface -InterfaceAlias \\\"%DEVICE_NAME%\\\" -InterfaceMetric 1\" <nul\nif %errorlevel% neq 0 (\n  echo Could not set interface metric. >&2\n  exit /b 1\n)\necho TAP network device added and configured successfully\nexit /b 0\n\n:: Waits up to a minute until a device is visible to netsh. Accepts the device name as a parameter.\n:: Exits with a non-zero code if the operation times out.\n:wait_for_device\necho Testing that the network device \"%~1\" is visible to netsh...\nnetsh interface ip show interfaces | find \"%~1\" >nul 2>&1\nif %errorlevel% equ 0 exit /b 0\nfor /l %%N in (1, 1, 6) do (\n  echo Waiting... %%N\n  :: timeout doesn't like the environment created by nsExec::ExecToStack and exits with:\n  :: \"ERROR: Input redirection is not supported, exiting the process immediately.\"\n  waitfor /t 10 thisisnotarealsignalname >nul 2>&1\n  netsh interface ip show interfaces | find \"%~1\" >nul 2>&1\n  if !errorlevel! equ 0 exit /b 0\n)\nexit /b 1\n"
  },
  {
    "path": "app/clash_core/win32-arm64/static/files/win/common/tun2socks/amd64/OemVista.inf",
    "content": "; ****************************************************************************\n; * Copyright (C) 2002-2014 OpenVPN Technologies, Inc.                            *\n; *  This program is free software; you can redistribute it and/or modify    *\n; *  it under the terms of the GNU General Public License version 2          *\n; *  as published by the Free Software Foundation.                           *\n; ****************************************************************************\n\n; SYNTAX CHECKER\n; cd \\WINDDK\\3790\\tools\\chkinf\n; chkinf c:\\src\\openvpn\\tap-win32\\i386\\oemvista.inf\n; OUTPUT -> file:///c:/WINDDK/3790/tools/chkinf/htm/c%23+src+openvpn+tap-win32+i386+__OemWin2k.htm\n\n; INSTALL/REMOVE DRIVER\n;   tapinstall install OemVista.inf tapoas\n;   tapinstall update OemVista.inf tapoas\n;   tapinstall remove tapoas\n\n;*********************************************************\n; Note to Developers:\n;\n; If you are bundling the TAP-Windows driver with your app,\n; you should try to rename it in such a way that it will\n; not collide with other instances of TAP-Windows defined\n; by other apps.  Multiple versions of the TAP-Windows\n; driver, each installed by different apps, can coexist\n; on the same machine if you follow these guidelines.\n; NOTE: these instructions assume you are editing the\n; generated OemWin2k.inf file, not the source\n; OemWin2k.inf.in file which is preprocessed by winconfig\n; and uses macro definitions from settings.in.\n;\n; (1) Rename all tapXXXX instances in this file to\n;     something different (use at least 5 characters\n;     for this name!)\n; (2) Change the \"!define TAP\" definition in openvpn.nsi\n;     to match what you changed tapXXXX to.\n; (3) Change TARGETNAME in SOURCES to match what you\n;     changed tapXXXX to.\n; (4) Change TAP_COMPONENT_ID in common.h to match what\n;     you changed tapXXXX to.\n; (5) Change SZDEPENDENCIES in service.h to match what\n;     you changed tapXXXX to.\n; (6) Change DeviceDescription and Provider strings.\n; (7) Change PRODUCT_TAP_WIN_DEVICE_DESCRIPTION in constants.h to what you\n;     set DeviceDescription to.\n;\n;*********************************************************\n\n[Version]\n   Signature = \"$Windows NT$\"\n   CatalogFile = tap0901.cat\n   ClassGUID = {4d36e972-e325-11ce-bfc1-08002be10318}\n   Provider = %Provider%\n   Class = Net\n\n; This version number should match the version\n; number given in ..\\version.m4.\n   DriverVer = 04/16/2019,9.23.1.601\n\n[Strings]\n   DeviceDescription = \"TAP-Windows Adapter V9\"\n   Provider = \"TAP-Windows Provider V9\"\n\n;----------------------------------------------------------------\n;                      Manufacturer + Product Section (Done)\n;----------------------------------------------------------------\n[Manufacturer]\n   %Provider% = tap0901, NTamd64\n\n[tap0901.NTamd64]\n   %DeviceDescription% = tap0901.ndi, root\\tap0901 ; Root enumerated\n   %DeviceDescription% = tap0901.ndi, tap0901      ; Legacy\n\n;---------------------------------------------------------------\n;                             Driver Section (Done)\n;---------------------------------------------------------------\n\n;----------------- Characteristics ------------\n;    NCF_PHYSICAL = 0x04\n;    NCF_VIRTUAL = 0x01\n;    NCF_SOFTWARE_ENUMERATED = 0x02\n;    NCF_HIDDEN = 0x08\n;    NCF_NO_SERVICE = 0x10\n;    NCF_HAS_UI = 0x80\n;----------------- Characteristics ------------\n\n[tap0901.ndi]\n   CopyFiles       = tap0901.driver, tap0901.files\n   AddReg          = tap0901.reg\n   AddReg          = tap0901.params.reg\n   Characteristics = 0x81\n   *IfType            = 0x6 ; IF_TYPE_ETHERNET_CSMACD\n   *MediaType         = 0x0 ; NdisMedium802_3\n   *PhysicalMediaType = 14  ; NdisPhysicalMedium802_3\n\n[tap0901.ndi.Services]\n   AddService = tap0901,        2, tap0901.service\n\n[tap0901.reg]\n   HKR, Ndi,            Service,      0, \"tap0901\"\n   HKR, Ndi\\Interfaces, UpperRange,   0, \"ndis5\"\n   HKR, Ndi\\Interfaces, LowerRange,   0, \"ethernet\"\n   HKR, ,               Manufacturer, 0, \"%Provider%\"\n   HKR, ,               ProductName,  0, \"%DeviceDescription%\"\n\n[tap0901.params.reg]\n   HKR, Ndi\\params\\MTU,                  ParamDesc, 0, \"MTU\"\n   HKR, Ndi\\params\\MTU,                  Type,      0, \"int\"\n   HKR, Ndi\\params\\MTU,                  Default,   0, \"1500\"\n   HKR, Ndi\\params\\MTU,                  Optional,  0, \"0\"\n   HKR, Ndi\\params\\MTU,                  Min,       0, \"100\"\n   HKR, Ndi\\params\\MTU,                  Max,       0, \"1500\"\n   HKR, Ndi\\params\\MTU,                  Step,      0, \"1\"\n   HKR, Ndi\\params\\MediaStatus,          ParamDesc, 0, \"Media Status\"\n   HKR, Ndi\\params\\MediaStatus,          Type,      0, \"enum\"\n   HKR, Ndi\\params\\MediaStatus,          Default,   0, \"0\"\n   HKR, Ndi\\params\\MediaStatus,          Optional,  0, \"0\"\n   HKR, Ndi\\params\\MediaStatus\\enum,     \"0\",       0, \"Application Controlled\"\n   HKR, Ndi\\params\\MediaStatus\\enum,     \"1\",       0, \"Always Connected\"\n   HKR, Ndi\\params\\MAC,                  ParamDesc, 0, \"MAC Address\"\n   HKR, Ndi\\params\\MAC,                  Type,      0, \"edit\"\n   HKR, Ndi\\params\\MAC,                  Optional,  0, \"1\"\n   HKR, Ndi\\params\\AllowNonAdmin,        ParamDesc, 0, \"Non-Admin Access\"\n   HKR, Ndi\\params\\AllowNonAdmin,        Type,      0, \"enum\"\n   HKR, Ndi\\params\\AllowNonAdmin,        Default,   0, \"1\"\n   HKR, Ndi\\params\\AllowNonAdmin,        Optional,  0, \"0\"\n   HKR, Ndi\\params\\AllowNonAdmin\\enum,   \"0\",       0, \"Not Allowed\"\n   HKR, Ndi\\params\\AllowNonAdmin\\enum,   \"1\",       0, \"Allowed\"\n\n;----------------------------------------------------------------\n;                             Service Section\n;----------------------------------------------------------------\n\n;---------- Service Type -------------\n;    SERVICE_KERNEL_DRIVER     = 0x01\n;    SERVICE_WIN32_OWN_PROCESS = 0x10\n;---------- Service Type -------------\n\n;---------- Start Mode ---------------\n;    SERVICE_BOOT_START   = 0x0\n;    SERVICE_SYSTEM_START = 0x1\n;    SERVICE_AUTO_START   = 0x2\n;    SERVICE_DEMAND_START = 0x3\n;    SERVICE_DISABLED     = 0x4\n;---------- Start Mode ---------------\n\n[tap0901.service]\n   DisplayName = %DeviceDescription%\n   ServiceType = 1\n   StartType = 3\n   ErrorControl = 1\n   LoadOrderGroup = NDIS\n   ServiceBinary = %12%\\tap0901.sys\n\n;-----------------------------------------------------------------\n;                                File Installation\n;-----------------------------------------------------------------\n\n;----------------- Copy Flags ------------\n;    COPYFLG_NOSKIP = 0x02\n;    COPYFLG_NOVERSIONCHECK = 0x04\n;----------------- Copy Flags ------------\n\n; SourceDisksNames\n; diskid = description[, [tagfile] [, <unused>, subdir]]\n; 1 = \"Intel Driver Disk 1\",e100bex.sys,,\n\n[SourceDisksNames]\n   1 = %DeviceDescription%, tap0901.sys\n\n; SourceDisksFiles\n; filename_on_source = diskID[, [subdir][, size]]\n; e100bex.sys = 1,, ; on distribution disk 1\n\n[SourceDisksFiles]\ntap0901.sys = 1\n\n[DestinationDirs]\n   tap0901.files  = 11\n   tap0901.driver = 12\n\n[tap0901.files]\n;   TapPanel.cpl,,,6   ; COPYFLG_NOSKIP | COPYFLG_NOVERSIONCHECK\n;   cipsrvr.exe,,,6     ; COPYFLG_NOSKIP | COPYFLG_NOVERSIONCHECK\n\n[tap0901.driver]\n   tap0901.sys,,,6     ; COPYFLG_NOSKIP | COPYFLG_NOVERSIONCHECK\n\n;---------------------------------------------------------------\n;                                      End\n;---------------------------------------------------------------\n"
  },
  {
    "path": "app/clash_core/win32-arm64/static/files/win/common/tun2socks/find_tap_device_name.bat",
    "content": ":: Copyright 2020 The Outline Authors\n::\n:: Licensed under the Apache License, Version 2.0 (the \"License\");\n:: you may not use this file except in compliance with the License.\n:: You may obtain a copy of the License at\n::\n::      http://www.apache.org/licenses/LICENSE-2.0\n::\n:: Unless required by applicable law or agreed to in writing, software\n:: distributed under the License is distributed on an \"AS IS\" BASIS,\n:: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n:: See the License for the specific language governing permissions and\n:: limitations under the License.\n\n:: Queries the registry in order to retrieve the most recently installed TAP network adapter's name.\n:: Accepts a single argument, the name of an environment variable to store the adapter's name.\n:: Exits with a non-zero exit code on failure.\n:: Usage example: find_tap_name.bat TAP_NAME\n\n@echo off\n:: See https://ss64.com/nt/delayedexpansion.html\nsetlocal enabledelayedexpansion\n\nset NET_ADAPTERS_CLASS_GUID={4D36E972-E325-11CE-BFC1-08002BE10318}\nset NET_ADAPTERS_KEY=HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Class\\%NET_ADAPTERS_CLASS_GUID%\nset NET_CONFIG_KEY=HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Network\\%NET_ADAPTERS_CLASS_GUID%\nset NET_ADAPTERS_FILE=\"%tmp%\\netadapters.txt\"\n\n:: Find all network adapters that match the \"tap0901\" component ID and store their registry path in a file.\n:: Note that adapter keys are increasing four-digit integers, padded with leading zeros.\nreg query %NET_ADAPTERS_KEY% /s /f \"tap0901\" /e /d | findstr \"HKEY.*\\\\[0-9][0-9][0-9][0-9]$\" > %NET_ADAPTERS_FILE%\nif %errorlevel% neq 0 (\n  echo Could not find TAP network adapter in the registry. >&2\n  exit /b 1\n)\n\nset TIMESTAMP=0\nset NAME=\nfor /f \"tokens=*\" %%K in ('type \"%NET_ADAPTERS_FILE%\"') do (\n  set ADAPTER_NAME=\n  set ADAPTER_NET_CONFIG_ID=\n  set ADAPTER_TIMESTAMP=\n\n  :: Retrieve the adapter's network config ID.\n  set ADAPTER_KEY=%%K\n  for /f \"tokens=3\" %%I in ('reg query !ADAPTER_KEY! /v \"NetCfgInstanceId\"') do (\n    set ADAPTER_NET_CONFIG_ID=%%I\n  )\n\n  :: Retrieve the adapter's install timestamp.\n  for /f \"tokens=3\" %%T in ('reg query !ADAPTER_KEY! /v \"InstallTimeStamp\"') do (\n    set ADAPTER_TIMESTAMP=%%T\n  )\n\n  :: Retrieve the adapter's name.\n  set ADAPTER_CONFIG_KEY=!NET_CONFIG_KEY!\\!ADAPTER_NET_CONFIG_ID!\\Connection\n  for /f \"tokens=3*\" %%N in ('reg query !ADAPTER_CONFIG_KEY! /v \"Name\"') do (\n    :: If the name contains spaces our tokenization will store the rest of the name in %%O.\n    if [%%O] == [] (\n      set ADAPTER_NAME=%%N\n    ) else (\n      set ADAPTER_NAME=%%N %%O\n    )\n  )\n\n  :: Ensure we found the adapter's install timestamp and name.\n  if not [!ADAPTER_TIMESTAMP!] == [] (\n    if not [!ADAPTER_NAME!] == [] (\n      echo Found adapter \"!ADAPTER_NAME!\", !ADAPTER_TIMESTAMP!\n      :: Store the adapter's name if it's the most recently installed one.\n      if !ADAPTER_TIMESTAMP! gtr !TIMESTAMP! (\n        set TIMESTAMP=!ADAPTER_TIMESTAMP!\n        set NAME=!ADAPTER_NAME!\n      )\n    ) else (\n      echo Failed to retrieve name of adapter !ADAPTER_KEY! >&2\n    )\n  ) else (\n    echo Failed to retrieve install timestamp of adapter !ADAPTER_KEY! >&2\n  )\n)\n\nif [!NAME!] == [] (\n  echo Could not find TAP adapter name. >&2\n  exit /b 1\n)\necho TAP device name: \"!NAME!\"\n\nendlocal & set \"%1=%NAME%\"\nexit /b 0"
  },
  {
    "path": "app/clash_core/win32-arm64/static/files/win/common/tun2socks/i386/OemVista.inf",
    "content": "; ****************************************************************************\n; * Copyright (C) 2002-2014 OpenVPN Technologies, Inc.                            *\n; *  This program is free software; you can redistribute it and/or modify    *\n; *  it under the terms of the GNU General Public License version 2          *\n; *  as published by the Free Software Foundation.                           *\n; ****************************************************************************\n\n; SYNTAX CHECKER\n; cd \\WINDDK\\3790\\tools\\chkinf\n; chkinf c:\\src\\openvpn\\tap-win32\\i386\\oemvista.inf\n; OUTPUT -> file:///c:/WINDDK/3790/tools/chkinf/htm/c%23+src+openvpn+tap-win32+i386+__OemWin2k.htm\n\n; INSTALL/REMOVE DRIVER\n;   tapinstall install OemVista.inf tapoas\n;   tapinstall update OemVista.inf tapoas\n;   tapinstall remove tapoas\n\n;*********************************************************\n; Note to Developers:\n;\n; If you are bundling the TAP-Windows driver with your app,\n; you should try to rename it in such a way that it will\n; not collide with other instances of TAP-Windows defined\n; by other apps.  Multiple versions of the TAP-Windows\n; driver, each installed by different apps, can coexist\n; on the same machine if you follow these guidelines.\n; NOTE: these instructions assume you are editing the\n; generated OemWin2k.inf file, not the source\n; OemWin2k.inf.in file which is preprocessed by winconfig\n; and uses macro definitions from settings.in.\n;\n; (1) Rename all tapXXXX instances in this file to\n;     something different (use at least 5 characters\n;     for this name!)\n; (2) Change the \"!define TAP\" definition in openvpn.nsi\n;     to match what you changed tapXXXX to.\n; (3) Change TARGETNAME in SOURCES to match what you\n;     changed tapXXXX to.\n; (4) Change TAP_COMPONENT_ID in common.h to match what\n;     you changed tapXXXX to.\n; (5) Change SZDEPENDENCIES in service.h to match what\n;     you changed tapXXXX to.\n; (6) Change DeviceDescription and Provider strings.\n; (7) Change PRODUCT_TAP_WIN_DEVICE_DESCRIPTION in constants.h to what you\n;     set DeviceDescription to.\n;\n;*********************************************************\n\n[Version]\n   Signature = \"$Windows NT$\"\n   CatalogFile = tap0901.cat\n   ClassGUID = {4d36e972-e325-11ce-bfc1-08002be10318}\n   Provider = %Provider%\n   Class = Net\n\n; This version number should match the version\n; number given in SOURCES.\n   DriverVer=04/21/2016,9.00.00.21\n\n[Strings]\n   DeviceDescription = \"TAP-Windows Adapter V9\"\n   Provider = \"TAP-Windows Provider V9\"\n\n;----------------------------------------------------------------\n;                      Manufacturer + Product Section (Done)\n;----------------------------------------------------------------\n[Manufacturer]\n   %Provider% = tap0901\n\n[tap0901]\n   %DeviceDescription% = tap0901.ndi, root\\tap0901 ; Root enumerated\n   %DeviceDescription% = tap0901.ndi, tap0901      ; Legacy\n\n;---------------------------------------------------------------\n;                             Driver Section (Done)\n;---------------------------------------------------------------\n\n;----------------- Characteristics ------------\n;    NCF_PHYSICAL = 0x04\n;    NCF_VIRTUAL = 0x01\n;    NCF_SOFTWARE_ENUMERATED = 0x02\n;    NCF_HIDDEN = 0x08\n;    NCF_NO_SERVICE = 0x10\n;    NCF_HAS_UI = 0x80\n;----------------- Characteristics ------------\n\n[tap0901.ndi]\n   CopyFiles       = tap0901.driver, tap0901.files\n   AddReg          = tap0901.reg\n   AddReg          = tap0901.params.reg\n   Characteristics = \n   *IfType            = 0x6 ; IF_TYPE_ETHERNET_CSMACD\n   *MediaType         = 0x0 ; NdisMedium802_3\n   *PhysicalMediaType = 14  ; NdisPhysicalMedium802_3\n\n[tap0901.ndi.Services]\n   AddService = tap0901,        2, tap0901.service\n\n[tap0901.reg]\n   HKR, Ndi,            Service,      0, \"tap0901\"\n   HKR, Ndi\\Interfaces, UpperRange,   0, \"ndis5\"\n   HKR, Ndi\\Interfaces, LowerRange,   0, \"ethernet\"\n   HKR, ,               Manufacturer, 0, \"%Provider%\"\n   HKR, ,               ProductName,  0, \"%DeviceDescription%\"\n\n[tap0901.params.reg]\n   HKR, Ndi\\params\\MTU,                  ParamDesc, 0, \"MTU\"\n   HKR, Ndi\\params\\MTU,                  Type,      0, \"int\"\n   HKR, Ndi\\params\\MTU,                  Default,   0, \"1500\"\n   HKR, Ndi\\params\\MTU,                  Optional,  0, \"0\"\n   HKR, Ndi\\params\\MTU,                  Min,       0, \"100\"\n   HKR, Ndi\\params\\MTU,                  Max,       0, \"1500\"\n   HKR, Ndi\\params\\MTU,                  Step,      0, \"1\"\n   HKR, Ndi\\params\\MediaStatus,          ParamDesc, 0, \"Media Status\"\n   HKR, Ndi\\params\\MediaStatus,          Type,      0, \"enum\"\n   HKR, Ndi\\params\\MediaStatus,          Default,   0, \"0\"\n   HKR, Ndi\\params\\MediaStatus,          Optional,  0, \"0\"\n   HKR, Ndi\\params\\MediaStatus\\enum,     \"0\",       0, \"Application Controlled\"\n   HKR, Ndi\\params\\MediaStatus\\enum,     \"1\",       0, \"Always Connected\"\n   HKR, Ndi\\params\\MAC,                  ParamDesc, 0, \"MAC Address\"\n   HKR, Ndi\\params\\MAC,                  Type,      0, \"edit\"\n   HKR, Ndi\\params\\MAC,                  Optional,  0, \"1\"\n   HKR, Ndi\\params\\AllowNonAdmin,        ParamDesc, 0, \"Non-Admin Access\"\n   HKR, Ndi\\params\\AllowNonAdmin,        Type,      0, \"enum\"\n   HKR, Ndi\\params\\AllowNonAdmin,        Default,   0, \"1\"\n   HKR, Ndi\\params\\AllowNonAdmin,        Optional,  0, \"0\"\n   HKR, Ndi\\params\\AllowNonAdmin\\enum,   \"0\",       0, \"Not Allowed\"\n   HKR, Ndi\\params\\AllowNonAdmin\\enum,   \"1\",       0, \"Allowed\"\n\n;----------------------------------------------------------------\n;                             Service Section\n;----------------------------------------------------------------\n\n;---------- Service Type -------------\n;    SERVICE_KERNEL_DRIVER     = 0x01\n;    SERVICE_WIN32_OWN_PROCESS = 0x10\n;---------- Service Type -------------\n\n;---------- Start Mode ---------------\n;    SERVICE_BOOT_START   = 0x0\n;    SERVICE_SYSTEM_START = 0x1\n;    SERVICE_AUTO_START   = 0x2\n;    SERVICE_DEMAND_START = 0x3\n;    SERVICE_DISABLED     = 0x4\n;---------- Start Mode ---------------\n\n[tap0901.service]\n   DisplayName = %DeviceDescription%\n   ServiceType = 1\n   StartType = 3\n   ErrorControl = 1\n   LoadOrderGroup = NDIS\n   ServiceBinary = %12%\\tap0901.sys\n\n;-----------------------------------------------------------------\n;                                File Installation\n;-----------------------------------------------------------------\n\n;----------------- Copy Flags ------------\n;    COPYFLG_NOSKIP = 0x02\n;    COPYFLG_NOVERSIONCHECK = 0x04\n;----------------- Copy Flags ------------\n\n; SourceDisksNames\n; diskid = description[, [tagfile] [, <unused>, subdir]]\n; 1 = \"Intel Driver Disk 1\",e100bex.sys,,\n\n[SourceDisksNames]\n   1 = %DeviceDescription%, tap0901.sys\n\n; SourceDisksFiles\n; filename_on_source = diskID[, [subdir][, size]]\n; e100bex.sys = 1,, ; on distribution disk 1\n\n[SourceDisksFiles]\ntap0901.sys = 1\n\n[DestinationDirs]\n   tap0901.files  = 11\n   tap0901.driver = 12\n\n[tap0901.files]\n;   TapPanel.cpl,,,6   ; COPYFLG_NOSKIP | COPYFLG_NOVERSIONCHECK\n;   cipsrvr.exe,,,6     ; COPYFLG_NOSKIP | COPYFLG_NOVERSIONCHECK\n\n[tap0901.driver]\n   tap0901.sys,,,6     ; COPYFLG_NOSKIP | COPYFLG_NOVERSIONCHECK\n\n;---------------------------------------------------------------\n;                                      End\n;---------------------------------------------------------------\n"
  },
  {
    "path": "app/clash_core/win32-arm64/static/files/win/common/tun2socks/remove_tap_device.bat",
    "content": "@echo off\nsetlocal\n\nset DEVICE_NAME=cfw-tap\nset DEVICE_HWID=tap0901\n\nset SCRIPT_DIR=%~dp0\nset ARCH=%1\n\nset PATH=%PATH%;%SystemRoot%\\system32;%SystemRoot%\\system32\\wbem;%SystemRoot%\\system32\\WindowsPowerShell/v1.0\n\necho Removing old TAP network device...\n\"%SCRIPT_DIR%\\%ARCH%\\tapinstall\" remove %DEVICE_HWID%\nif %errorlevel% neq 0 (\n  echo Could not remove TAP network device. >&2\n  exit /b 1\n)"
  },
  {
    "path": "app/clash_core/win32-ia32/static/files/win/common/schtasks.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-16\"?>\n<Task version=\"1.2\" xmlns=\"http://schemas.microsoft.com/windows/2004/02/mit/task\">\n  <Triggers>\n    <LogonTrigger>\n      <Enabled>true</Enabled>\n    </LogonTrigger>\n  </Triggers>\n  <Settings>\n    <MultipleInstancesPolicy>StopExisting</MultipleInstancesPolicy>\n    <DisallowStartIfOnBatteries>false</DisallowStartIfOnBatteries>\n    <StopIfGoingOnBatteries>false</StopIfGoingOnBatteries>\n    <AllowHardTerminate>false</AllowHardTerminate>\n    <StartWhenAvailable>true</StartWhenAvailable>\n    <RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable>\n    <IdleSettings>\n      <StopOnIdleEnd>true</StopOnIdleEnd>\n      <RestartOnIdle>false</RestartOnIdle>\n    </IdleSettings>\n    <AllowStartOnDemand>true</AllowStartOnDemand>\n    <Enabled>true</Enabled>\n    <Hidden>false</Hidden>\n    <RunOnlyIfIdle>false</RunOnlyIfIdle>\n    <WakeToRun>false</WakeToRun>\n    <ExecutionTimeLimit>PT0S</ExecutionTimeLimit>\n    <Priority>7</Priority>\n    <RestartOnFailure>\n      <Interval>PT1M</Interval>\n      <Count>5</Count>\n    </RestartOnFailure>\n  </Settings>\n  <Actions Context=\"Author\">\n    <Exec>\n      <Command>\"\"</Command>\n    </Exec>\n  </Actions>\n</Task>"
  },
  {
    "path": "app/clash_core/win32-ia32/static/files/win/common/service.yml",
    "content": "id: Clash Core Service\nname: Clash Core Service\ndescription: Clash Core Service started by Clash for Windows\nexecutable: clash-core-service\nlog:\n  mode: none\n"
  },
  {
    "path": "app/clash_core/win32-ia32/static/files/win/common/tun2socks/add_tap_device.bat",
    "content": ":: Copyright 2018 The Outline Authors\n::\n:: Licensed under the Apache License, Version 2.0 (the \"License\");\n:: you may not use this file except in compliance with the License.\n:: You may obtain a copy of the License at\n::\n::      http://www.apache.org/licenses/LICENSE-2.0\n::\n:: Unless required by applicable law or agreed to in writing, software\n:: distributed under the License is distributed on an \"AS IS\" BASIS,\n:: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n:: See the License for the specific language governing permissions and\n:: limitations under the License.\n\n@echo off\n:: See https://ss64.com/nt/delayedexpansion.html\nsetlocal enabledelayedexpansion\n\nset DEVICE_NAME=cfw-tap\nset DEVICE_HWID=tap0901\n\nset SCRIPT_DIR=%~dp0\nset ARCH=%1\nset IP=%2\nset SUBNET=%3\nset GATEWAY=%4\n\n:: Error codes for surfacing to the user and sentry.\nset ERROR_TAP_INSTALL=1\nset ERROR_TAP_FIND_NAME=2\nset ERROR_TAP_RENAME=3\nset ERROR_TAP_CONFIGURE_SUBNET=4\nset ERROR_TAP_CONFIGURE_DNS=5\n\n:: Because we've seen multiple failures due to commands (netsh, etc.) not being\n:: found, append some common directories to the PATH.\n::\n:: Note:\n::  - %SystemRoot% almost always expands to c:\\windows.\n::  - Do *not* surround with quotes.\nset PATH=%PATH%;%SystemRoot%\\system32;%SystemRoot%\\system32\\wbem;%SystemRoot%\\system32\\WindowsPowerShell/v1.0\n\n:: Check whether the device already exists.\nnetsh interface show interface name=%DEVICE_NAME%\nif %errorlevel% equ 0 (\n  echo TAP network device already exists.\n  goto :configure\n)\n\necho Creating TAP network device...\n\"%SCRIPT_DIR%\\%ARCH%\\tapinstall\" install \"%SCRIPT_DIR%\\%ARCH%\\OemVista.inf\" %DEVICE_HWID%\nif %errorlevel% neq 0 (\n  echo Could not create TAP network device. Try to do it manually. >&2\n  REM exit /b %ERROR_TAP_INSTALL%\n  start /wait /D \"%SCRIPT_DIR%\" tap-windows-installer.exe\n)\n\n:: Find the name of the most recently installed TAP device in the registry and rename it.\necho Searching for new TAP network device name...\ncall \"%SCRIPT_DIR%\\find_tap_device_name.bat\" TAP_NAME\nif %errorlevel% neq 0 (\n  echo Could not find TAP device name. >&2\n  exit /b %ERROR_TAP_FIND_NAME%\n)\necho Found TAP device name: \"%TAP_NAME%\"\n\n:: We've occasionally seen delays before netsh will \"see\" the new device, at least for\n:: purposes of configuring IP and DNS (\"netsh interface show interface name=xxx\" does not\n:: seem to be affected).\ncall :wait_for_device \"%TAP_NAME%\"\n\n:: Attempt to rename the device even if waiting timed out.\nnetsh interface set interface name=\"%TAP_NAME%\" newname=\"%DEVICE_NAME%\"\nif %errorlevel% neq 0 (\n  :: Try to rename the device through powershell in case netsh failed due to not being able to \"see\"\n  :: the device. Pipe input from /dev/null to prevent powershell from waiting forever on EOF.\n  powershell \"Rename-NetAdapter -Name \\\"%TAP_NAME%\\\" -NewName \\\"%DEVICE_NAME%\\\"\" <nul\n  :: Note that we use delayed variable expansion inside a control block to check errorlevel.\n  if !errorlevel! neq 0 (\n    echo Could not rename TAP device. >&2\n    exit /b %ERROR_TAP_RENAME%\n  )\n)\n\n:: Wait for the new name to propagate to netsh.\ncall :wait_for_device \"%DEVICE_NAME%\"\n\n:: Attempt to configure the device even if waiting timed out.\n:configure\n\n:: Try to enable the device, in case it's somehow been disabled.\n::\n:: Annoyingly, this returns an error and outputs a confusing message if the device exists and is\n:: already enabled:\n::   This network connection does not exist.\n::\n:: So, continue even if this command fails - and always include its output.\necho (Re-)enabling TAP network device...\nnetsh interface set interface \"%DEVICE_NAME%\" admin=enabled\n:: The powershell command is used to ensure the adapter is enabled if netsh fails and leaves it in\n:: a disabled state. While no such failure has yet been observed, this command would correct it and\n:: should behave idempotently otherwise.\npowershell \"Enable-NetAdapter -Name \\\"%DEVICE_NAME%\\\"\" <nul\n\n:: Give the device an IP address.\n:: 10.0.85.x is a guess which we hope will work for most users (Docker for\n:: Windows uses 10.0.75.x by default): if the address is already in use the\n:: script will fail and the installer will show an error message to the user.\n:: TODO: Actually search the system for an unused subnet or make the subnet\n::       configurable in the Outline client.\necho Configuring TAP device subnet...\nnetsh interface ip set address %DEVICE_NAME% static %IP% %SUBNET% %GATEWAY%\nif %errorlevel% neq 0 (\n  echo Could not set TAP network device subnet. >&2\n  exit /b %ERROR_TAP_CONFIGURE_SUBNET%\n)\n\n:: Windows has no system-wide DNS server; each network device can have its\n:: \"own\" set of DNS servers. Windows seems to use the DNS server(s) of the\n:: network device associated with the default gateway. This is good for us\n:: as it means we do not have to modify the DNS settings of any other network\n:: device in the system. Configure with OpenDNS and Dyn resolvers.\necho Configuring primary DNS...\nnetsh interface ip set dnsservers %DEVICE_NAME% static address=%IP%\nif %errorlevel% neq 0 (\n  echo Could not configure TAP device primary DNS. >&2\n  exit /b %ERROR_TAP_CONFIGURE_DNS%\n)\necho Setting interface metric (1) for this interface...\npowershell \"Set-NetIPInterface -InterfaceAlias \\\"%DEVICE_NAME%\\\" -InterfaceMetric 1\" <nul\nif %errorlevel% neq 0 (\n  echo Could not set interface metric. >&2\n  exit /b 1\n)\necho TAP network device added and configured successfully\nexit /b 0\n\n:: Waits up to a minute until a device is visible to netsh. Accepts the device name as a parameter.\n:: Exits with a non-zero code if the operation times out.\n:wait_for_device\necho Testing that the network device \"%~1\" is visible to netsh...\nnetsh interface ip show interfaces | find \"%~1\" >nul 2>&1\nif %errorlevel% equ 0 exit /b 0\nfor /l %%N in (1, 1, 6) do (\n  echo Waiting... %%N\n  :: timeout doesn't like the environment created by nsExec::ExecToStack and exits with:\n  :: \"ERROR: Input redirection is not supported, exiting the process immediately.\"\n  waitfor /t 10 thisisnotarealsignalname >nul 2>&1\n  netsh interface ip show interfaces | find \"%~1\" >nul 2>&1\n  if !errorlevel! equ 0 exit /b 0\n)\nexit /b 1\n"
  },
  {
    "path": "app/clash_core/win32-ia32/static/files/win/common/tun2socks/amd64/OemVista.inf",
    "content": "; ****************************************************************************\n; * Copyright (C) 2002-2014 OpenVPN Technologies, Inc.                            *\n; *  This program is free software; you can redistribute it and/or modify    *\n; *  it under the terms of the GNU General Public License version 2          *\n; *  as published by the Free Software Foundation.                           *\n; ****************************************************************************\n\n; SYNTAX CHECKER\n; cd \\WINDDK\\3790\\tools\\chkinf\n; chkinf c:\\src\\openvpn\\tap-win32\\i386\\oemvista.inf\n; OUTPUT -> file:///c:/WINDDK/3790/tools/chkinf/htm/c%23+src+openvpn+tap-win32+i386+__OemWin2k.htm\n\n; INSTALL/REMOVE DRIVER\n;   tapinstall install OemVista.inf tapoas\n;   tapinstall update OemVista.inf tapoas\n;   tapinstall remove tapoas\n\n;*********************************************************\n; Note to Developers:\n;\n; If you are bundling the TAP-Windows driver with your app,\n; you should try to rename it in such a way that it will\n; not collide with other instances of TAP-Windows defined\n; by other apps.  Multiple versions of the TAP-Windows\n; driver, each installed by different apps, can coexist\n; on the same machine if you follow these guidelines.\n; NOTE: these instructions assume you are editing the\n; generated OemWin2k.inf file, not the source\n; OemWin2k.inf.in file which is preprocessed by winconfig\n; and uses macro definitions from settings.in.\n;\n; (1) Rename all tapXXXX instances in this file to\n;     something different (use at least 5 characters\n;     for this name!)\n; (2) Change the \"!define TAP\" definition in openvpn.nsi\n;     to match what you changed tapXXXX to.\n; (3) Change TARGETNAME in SOURCES to match what you\n;     changed tapXXXX to.\n; (4) Change TAP_COMPONENT_ID in common.h to match what\n;     you changed tapXXXX to.\n; (5) Change SZDEPENDENCIES in service.h to match what\n;     you changed tapXXXX to.\n; (6) Change DeviceDescription and Provider strings.\n; (7) Change PRODUCT_TAP_WIN_DEVICE_DESCRIPTION in constants.h to what you\n;     set DeviceDescription to.\n;\n;*********************************************************\n\n[Version]\n   Signature = \"$Windows NT$\"\n   CatalogFile = tap0901.cat\n   ClassGUID = {4d36e972-e325-11ce-bfc1-08002be10318}\n   Provider = %Provider%\n   Class = Net\n\n; This version number should match the version\n; number given in ..\\version.m4.\n   DriverVer = 04/16/2019,9.23.1.601\n\n[Strings]\n   DeviceDescription = \"TAP-Windows Adapter V9\"\n   Provider = \"TAP-Windows Provider V9\"\n\n;----------------------------------------------------------------\n;                      Manufacturer + Product Section (Done)\n;----------------------------------------------------------------\n[Manufacturer]\n   %Provider% = tap0901, NTamd64\n\n[tap0901.NTamd64]\n   %DeviceDescription% = tap0901.ndi, root\\tap0901 ; Root enumerated\n   %DeviceDescription% = tap0901.ndi, tap0901      ; Legacy\n\n;---------------------------------------------------------------\n;                             Driver Section (Done)\n;---------------------------------------------------------------\n\n;----------------- Characteristics ------------\n;    NCF_PHYSICAL = 0x04\n;    NCF_VIRTUAL = 0x01\n;    NCF_SOFTWARE_ENUMERATED = 0x02\n;    NCF_HIDDEN = 0x08\n;    NCF_NO_SERVICE = 0x10\n;    NCF_HAS_UI = 0x80\n;----------------- Characteristics ------------\n\n[tap0901.ndi]\n   CopyFiles       = tap0901.driver, tap0901.files\n   AddReg          = tap0901.reg\n   AddReg          = tap0901.params.reg\n   Characteristics = 0x81\n   *IfType            = 0x6 ; IF_TYPE_ETHERNET_CSMACD\n   *MediaType         = 0x0 ; NdisMedium802_3\n   *PhysicalMediaType = 14  ; NdisPhysicalMedium802_3\n\n[tap0901.ndi.Services]\n   AddService = tap0901,        2, tap0901.service\n\n[tap0901.reg]\n   HKR, Ndi,            Service,      0, \"tap0901\"\n   HKR, Ndi\\Interfaces, UpperRange,   0, \"ndis5\"\n   HKR, Ndi\\Interfaces, LowerRange,   0, \"ethernet\"\n   HKR, ,               Manufacturer, 0, \"%Provider%\"\n   HKR, ,               ProductName,  0, \"%DeviceDescription%\"\n\n[tap0901.params.reg]\n   HKR, Ndi\\params\\MTU,                  ParamDesc, 0, \"MTU\"\n   HKR, Ndi\\params\\MTU,                  Type,      0, \"int\"\n   HKR, Ndi\\params\\MTU,                  Default,   0, \"1500\"\n   HKR, Ndi\\params\\MTU,                  Optional,  0, \"0\"\n   HKR, Ndi\\params\\MTU,                  Min,       0, \"100\"\n   HKR, Ndi\\params\\MTU,                  Max,       0, \"1500\"\n   HKR, Ndi\\params\\MTU,                  Step,      0, \"1\"\n   HKR, Ndi\\params\\MediaStatus,          ParamDesc, 0, \"Media Status\"\n   HKR, Ndi\\params\\MediaStatus,          Type,      0, \"enum\"\n   HKR, Ndi\\params\\MediaStatus,          Default,   0, \"0\"\n   HKR, Ndi\\params\\MediaStatus,          Optional,  0, \"0\"\n   HKR, Ndi\\params\\MediaStatus\\enum,     \"0\",       0, \"Application Controlled\"\n   HKR, Ndi\\params\\MediaStatus\\enum,     \"1\",       0, \"Always Connected\"\n   HKR, Ndi\\params\\MAC,                  ParamDesc, 0, \"MAC Address\"\n   HKR, Ndi\\params\\MAC,                  Type,      0, \"edit\"\n   HKR, Ndi\\params\\MAC,                  Optional,  0, \"1\"\n   HKR, Ndi\\params\\AllowNonAdmin,        ParamDesc, 0, \"Non-Admin Access\"\n   HKR, Ndi\\params\\AllowNonAdmin,        Type,      0, \"enum\"\n   HKR, Ndi\\params\\AllowNonAdmin,        Default,   0, \"1\"\n   HKR, Ndi\\params\\AllowNonAdmin,        Optional,  0, \"0\"\n   HKR, Ndi\\params\\AllowNonAdmin\\enum,   \"0\",       0, \"Not Allowed\"\n   HKR, Ndi\\params\\AllowNonAdmin\\enum,   \"1\",       0, \"Allowed\"\n\n;----------------------------------------------------------------\n;                             Service Section\n;----------------------------------------------------------------\n\n;---------- Service Type -------------\n;    SERVICE_KERNEL_DRIVER     = 0x01\n;    SERVICE_WIN32_OWN_PROCESS = 0x10\n;---------- Service Type -------------\n\n;---------- Start Mode ---------------\n;    SERVICE_BOOT_START   = 0x0\n;    SERVICE_SYSTEM_START = 0x1\n;    SERVICE_AUTO_START   = 0x2\n;    SERVICE_DEMAND_START = 0x3\n;    SERVICE_DISABLED     = 0x4\n;---------- Start Mode ---------------\n\n[tap0901.service]\n   DisplayName = %DeviceDescription%\n   ServiceType = 1\n   StartType = 3\n   ErrorControl = 1\n   LoadOrderGroup = NDIS\n   ServiceBinary = %12%\\tap0901.sys\n\n;-----------------------------------------------------------------\n;                                File Installation\n;-----------------------------------------------------------------\n\n;----------------- Copy Flags ------------\n;    COPYFLG_NOSKIP = 0x02\n;    COPYFLG_NOVERSIONCHECK = 0x04\n;----------------- Copy Flags ------------\n\n; SourceDisksNames\n; diskid = description[, [tagfile] [, <unused>, subdir]]\n; 1 = \"Intel Driver Disk 1\",e100bex.sys,,\n\n[SourceDisksNames]\n   1 = %DeviceDescription%, tap0901.sys\n\n; SourceDisksFiles\n; filename_on_source = diskID[, [subdir][, size]]\n; e100bex.sys = 1,, ; on distribution disk 1\n\n[SourceDisksFiles]\ntap0901.sys = 1\n\n[DestinationDirs]\n   tap0901.files  = 11\n   tap0901.driver = 12\n\n[tap0901.files]\n;   TapPanel.cpl,,,6   ; COPYFLG_NOSKIP | COPYFLG_NOVERSIONCHECK\n;   cipsrvr.exe,,,6     ; COPYFLG_NOSKIP | COPYFLG_NOVERSIONCHECK\n\n[tap0901.driver]\n   tap0901.sys,,,6     ; COPYFLG_NOSKIP | COPYFLG_NOVERSIONCHECK\n\n;---------------------------------------------------------------\n;                                      End\n;---------------------------------------------------------------\n"
  },
  {
    "path": "app/clash_core/win32-ia32/static/files/win/common/tun2socks/find_tap_device_name.bat",
    "content": ":: Copyright 2020 The Outline Authors\n::\n:: Licensed under the Apache License, Version 2.0 (the \"License\");\n:: you may not use this file except in compliance with the License.\n:: You may obtain a copy of the License at\n::\n::      http://www.apache.org/licenses/LICENSE-2.0\n::\n:: Unless required by applicable law or agreed to in writing, software\n:: distributed under the License is distributed on an \"AS IS\" BASIS,\n:: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n:: See the License for the specific language governing permissions and\n:: limitations under the License.\n\n:: Queries the registry in order to retrieve the most recently installed TAP network adapter's name.\n:: Accepts a single argument, the name of an environment variable to store the adapter's name.\n:: Exits with a non-zero exit code on failure.\n:: Usage example: find_tap_name.bat TAP_NAME\n\n@echo off\n:: See https://ss64.com/nt/delayedexpansion.html\nsetlocal enabledelayedexpansion\n\nset NET_ADAPTERS_CLASS_GUID={4D36E972-E325-11CE-BFC1-08002BE10318}\nset NET_ADAPTERS_KEY=HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Class\\%NET_ADAPTERS_CLASS_GUID%\nset NET_CONFIG_KEY=HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Network\\%NET_ADAPTERS_CLASS_GUID%\nset NET_ADAPTERS_FILE=\"%tmp%\\netadapters.txt\"\n\n:: Find all network adapters that match the \"tap0901\" component ID and store their registry path in a file.\n:: Note that adapter keys are increasing four-digit integers, padded with leading zeros.\nreg query %NET_ADAPTERS_KEY% /s /f \"tap0901\" /e /d | findstr \"HKEY.*\\\\[0-9][0-9][0-9][0-9]$\" > %NET_ADAPTERS_FILE%\nif %errorlevel% neq 0 (\n  echo Could not find TAP network adapter in the registry. >&2\n  exit /b 1\n)\n\nset TIMESTAMP=0\nset NAME=\nfor /f \"tokens=*\" %%K in ('type \"%NET_ADAPTERS_FILE%\"') do (\n  set ADAPTER_NAME=\n  set ADAPTER_NET_CONFIG_ID=\n  set ADAPTER_TIMESTAMP=\n\n  :: Retrieve the adapter's network config ID.\n  set ADAPTER_KEY=%%K\n  for /f \"tokens=3\" %%I in ('reg query !ADAPTER_KEY! /v \"NetCfgInstanceId\"') do (\n    set ADAPTER_NET_CONFIG_ID=%%I\n  )\n\n  :: Retrieve the adapter's install timestamp.\n  for /f \"tokens=3\" %%T in ('reg query !ADAPTER_KEY! /v \"InstallTimeStamp\"') do (\n    set ADAPTER_TIMESTAMP=%%T\n  )\n\n  :: Retrieve the adapter's name.\n  set ADAPTER_CONFIG_KEY=!NET_CONFIG_KEY!\\!ADAPTER_NET_CONFIG_ID!\\Connection\n  for /f \"tokens=3*\" %%N in ('reg query !ADAPTER_CONFIG_KEY! /v \"Name\"') do (\n    :: If the name contains spaces our tokenization will store the rest of the name in %%O.\n    if [%%O] == [] (\n      set ADAPTER_NAME=%%N\n    ) else (\n      set ADAPTER_NAME=%%N %%O\n    )\n  )\n\n  :: Ensure we found the adapter's install timestamp and name.\n  if not [!ADAPTER_TIMESTAMP!] == [] (\n    if not [!ADAPTER_NAME!] == [] (\n      echo Found adapter \"!ADAPTER_NAME!\", !ADAPTER_TIMESTAMP!\n      :: Store the adapter's name if it's the most recently installed one.\n      if !ADAPTER_TIMESTAMP! gtr !TIMESTAMP! (\n        set TIMESTAMP=!ADAPTER_TIMESTAMP!\n        set NAME=!ADAPTER_NAME!\n      )\n    ) else (\n      echo Failed to retrieve name of adapter !ADAPTER_KEY! >&2\n    )\n  ) else (\n    echo Failed to retrieve install timestamp of adapter !ADAPTER_KEY! >&2\n  )\n)\n\nif [!NAME!] == [] (\n  echo Could not find TAP adapter name. >&2\n  exit /b 1\n)\necho TAP device name: \"!NAME!\"\n\nendlocal & set \"%1=%NAME%\"\nexit /b 0"
  },
  {
    "path": "app/clash_core/win32-ia32/static/files/win/common/tun2socks/i386/OemVista.inf",
    "content": "; ****************************************************************************\n; * Copyright (C) 2002-2014 OpenVPN Technologies, Inc.                            *\n; *  This program is free software; you can redistribute it and/or modify    *\n; *  it under the terms of the GNU General Public License version 2          *\n; *  as published by the Free Software Foundation.                           *\n; ****************************************************************************\n\n; SYNTAX CHECKER\n; cd \\WINDDK\\3790\\tools\\chkinf\n; chkinf c:\\src\\openvpn\\tap-win32\\i386\\oemvista.inf\n; OUTPUT -> file:///c:/WINDDK/3790/tools/chkinf/htm/c%23+src+openvpn+tap-win32+i386+__OemWin2k.htm\n\n; INSTALL/REMOVE DRIVER\n;   tapinstall install OemVista.inf tapoas\n;   tapinstall update OemVista.inf tapoas\n;   tapinstall remove tapoas\n\n;*********************************************************\n; Note to Developers:\n;\n; If you are bundling the TAP-Windows driver with your app,\n; you should try to rename it in such a way that it will\n; not collide with other instances of TAP-Windows defined\n; by other apps.  Multiple versions of the TAP-Windows\n; driver, each installed by different apps, can coexist\n; on the same machine if you follow these guidelines.\n; NOTE: these instructions assume you are editing the\n; generated OemWin2k.inf file, not the source\n; OemWin2k.inf.in file which is preprocessed by winconfig\n; and uses macro definitions from settings.in.\n;\n; (1) Rename all tapXXXX instances in this file to\n;     something different (use at least 5 characters\n;     for this name!)\n; (2) Change the \"!define TAP\" definition in openvpn.nsi\n;     to match what you changed tapXXXX to.\n; (3) Change TARGETNAME in SOURCES to match what you\n;     changed tapXXXX to.\n; (4) Change TAP_COMPONENT_ID in common.h to match what\n;     you changed tapXXXX to.\n; (5) Change SZDEPENDENCIES in service.h to match what\n;     you changed tapXXXX to.\n; (6) Change DeviceDescription and Provider strings.\n; (7) Change PRODUCT_TAP_WIN_DEVICE_DESCRIPTION in constants.h to what you\n;     set DeviceDescription to.\n;\n;*********************************************************\n\n[Version]\n   Signature = \"$Windows NT$\"\n   CatalogFile = tap0901.cat\n   ClassGUID = {4d36e972-e325-11ce-bfc1-08002be10318}\n   Provider = %Provider%\n   Class = Net\n\n; This version number should match the version\n; number given in SOURCES.\n   DriverVer=04/21/2016,9.00.00.21\n\n[Strings]\n   DeviceDescription = \"TAP-Windows Adapter V9\"\n   Provider = \"TAP-Windows Provider V9\"\n\n;----------------------------------------------------------------\n;                      Manufacturer + Product Section (Done)\n;----------------------------------------------------------------\n[Manufacturer]\n   %Provider% = tap0901\n\n[tap0901]\n   %DeviceDescription% = tap0901.ndi, root\\tap0901 ; Root enumerated\n   %DeviceDescription% = tap0901.ndi, tap0901      ; Legacy\n\n;---------------------------------------------------------------\n;                             Driver Section (Done)\n;---------------------------------------------------------------\n\n;----------------- Characteristics ------------\n;    NCF_PHYSICAL = 0x04\n;    NCF_VIRTUAL = 0x01\n;    NCF_SOFTWARE_ENUMERATED = 0x02\n;    NCF_HIDDEN = 0x08\n;    NCF_NO_SERVICE = 0x10\n;    NCF_HAS_UI = 0x80\n;----------------- Characteristics ------------\n\n[tap0901.ndi]\n   CopyFiles       = tap0901.driver, tap0901.files\n   AddReg          = tap0901.reg\n   AddReg          = tap0901.params.reg\n   Characteristics = \n   *IfType            = 0x6 ; IF_TYPE_ETHERNET_CSMACD\n   *MediaType         = 0x0 ; NdisMedium802_3\n   *PhysicalMediaType = 14  ; NdisPhysicalMedium802_3\n\n[tap0901.ndi.Services]\n   AddService = tap0901,        2, tap0901.service\n\n[tap0901.reg]\n   HKR, Ndi,            Service,      0, \"tap0901\"\n   HKR, Ndi\\Interfaces, UpperRange,   0, \"ndis5\"\n   HKR, Ndi\\Interfaces, LowerRange,   0, \"ethernet\"\n   HKR, ,               Manufacturer, 0, \"%Provider%\"\n   HKR, ,               ProductName,  0, \"%DeviceDescription%\"\n\n[tap0901.params.reg]\n   HKR, Ndi\\params\\MTU,                  ParamDesc, 0, \"MTU\"\n   HKR, Ndi\\params\\MTU,                  Type,      0, \"int\"\n   HKR, Ndi\\params\\MTU,                  Default,   0, \"1500\"\n   HKR, Ndi\\params\\MTU,                  Optional,  0, \"0\"\n   HKR, Ndi\\params\\MTU,                  Min,       0, \"100\"\n   HKR, Ndi\\params\\MTU,                  Max,       0, \"1500\"\n   HKR, Ndi\\params\\MTU,                  Step,      0, \"1\"\n   HKR, Ndi\\params\\MediaStatus,          ParamDesc, 0, \"Media Status\"\n   HKR, Ndi\\params\\MediaStatus,          Type,      0, \"enum\"\n   HKR, Ndi\\params\\MediaStatus,          Default,   0, \"0\"\n   HKR, Ndi\\params\\MediaStatus,          Optional,  0, \"0\"\n   HKR, Ndi\\params\\MediaStatus\\enum,     \"0\",       0, \"Application Controlled\"\n   HKR, Ndi\\params\\MediaStatus\\enum,     \"1\",       0, \"Always Connected\"\n   HKR, Ndi\\params\\MAC,                  ParamDesc, 0, \"MAC Address\"\n   HKR, Ndi\\params\\MAC,                  Type,      0, \"edit\"\n   HKR, Ndi\\params\\MAC,                  Optional,  0, \"1\"\n   HKR, Ndi\\params\\AllowNonAdmin,        ParamDesc, 0, \"Non-Admin Access\"\n   HKR, Ndi\\params\\AllowNonAdmin,        Type,      0, \"enum\"\n   HKR, Ndi\\params\\AllowNonAdmin,        Default,   0, \"1\"\n   HKR, Ndi\\params\\AllowNonAdmin,        Optional,  0, \"0\"\n   HKR, Ndi\\params\\AllowNonAdmin\\enum,   \"0\",       0, \"Not Allowed\"\n   HKR, Ndi\\params\\AllowNonAdmin\\enum,   \"1\",       0, \"Allowed\"\n\n;----------------------------------------------------------------\n;                             Service Section\n;----------------------------------------------------------------\n\n;---------- Service Type -------------\n;    SERVICE_KERNEL_DRIVER     = 0x01\n;    SERVICE_WIN32_OWN_PROCESS = 0x10\n;---------- Service Type -------------\n\n;---------- Start Mode ---------------\n;    SERVICE_BOOT_START   = 0x0\n;    SERVICE_SYSTEM_START = 0x1\n;    SERVICE_AUTO_START   = 0x2\n;    SERVICE_DEMAND_START = 0x3\n;    SERVICE_DISABLED     = 0x4\n;---------- Start Mode ---------------\n\n[tap0901.service]\n   DisplayName = %DeviceDescription%\n   ServiceType = 1\n   StartType = 3\n   ErrorControl = 1\n   LoadOrderGroup = NDIS\n   ServiceBinary = %12%\\tap0901.sys\n\n;-----------------------------------------------------------------\n;                                File Installation\n;-----------------------------------------------------------------\n\n;----------------- Copy Flags ------------\n;    COPYFLG_NOSKIP = 0x02\n;    COPYFLG_NOVERSIONCHECK = 0x04\n;----------------- Copy Flags ------------\n\n; SourceDisksNames\n; diskid = description[, [tagfile] [, <unused>, subdir]]\n; 1 = \"Intel Driver Disk 1\",e100bex.sys,,\n\n[SourceDisksNames]\n   1 = %DeviceDescription%, tap0901.sys\n\n; SourceDisksFiles\n; filename_on_source = diskID[, [subdir][, size]]\n; e100bex.sys = 1,, ; on distribution disk 1\n\n[SourceDisksFiles]\ntap0901.sys = 1\n\n[DestinationDirs]\n   tap0901.files  = 11\n   tap0901.driver = 12\n\n[tap0901.files]\n;   TapPanel.cpl,,,6   ; COPYFLG_NOSKIP | COPYFLG_NOVERSIONCHECK\n;   cipsrvr.exe,,,6     ; COPYFLG_NOSKIP | COPYFLG_NOVERSIONCHECK\n\n[tap0901.driver]\n   tap0901.sys,,,6     ; COPYFLG_NOSKIP | COPYFLG_NOVERSIONCHECK\n\n;---------------------------------------------------------------\n;                                      End\n;---------------------------------------------------------------\n"
  },
  {
    "path": "app/clash_core/win32-ia32/static/files/win/common/tun2socks/remove_tap_device.bat",
    "content": "@echo off\nsetlocal\n\nset DEVICE_NAME=cfw-tap\nset DEVICE_HWID=tap0901\n\nset SCRIPT_DIR=%~dp0\nset ARCH=%1\n\nset PATH=%PATH%;%SystemRoot%\\system32;%SystemRoot%\\system32\\wbem;%SystemRoot%\\system32\\WindowsPowerShell/v1.0\n\necho Removing old TAP network device...\n\"%SCRIPT_DIR%\\%ARCH%\\tapinstall\" remove %DEVICE_HWID%\nif %errorlevel% neq 0 (\n  echo Could not remove TAP network device. >&2\n  exit /b 1\n)"
  },
  {
    "path": "app/clash_core/win32-ia32/static/files/win/ia32/clash-win32.exe.sign",
    "content": "3VaQI4a8c85DFudDHL1gSc6TUm49Hf9TxMf337ImoDXvTDwOf/XngT1FyzatFgZ+h1FBT5uEqlJFcAKKkVvY1w=="
  },
  {
    "path": "app/clash_core/win_x64/static/files/win/common/schtasks.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-16\"?>\n<Task version=\"1.2\" xmlns=\"http://schemas.microsoft.com/windows/2004/02/mit/task\">\n  <Triggers>\n    <LogonTrigger>\n      <Enabled>true</Enabled>\n    </LogonTrigger>\n  </Triggers>\n  <Settings>\n    <MultipleInstancesPolicy>StopExisting</MultipleInstancesPolicy>\n    <DisallowStartIfOnBatteries>false</DisallowStartIfOnBatteries>\n    <StopIfGoingOnBatteries>false</StopIfGoingOnBatteries>\n    <AllowHardTerminate>false</AllowHardTerminate>\n    <StartWhenAvailable>true</StartWhenAvailable>\n    <RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable>\n    <IdleSettings>\n      <StopOnIdleEnd>true</StopOnIdleEnd>\n      <RestartOnIdle>false</RestartOnIdle>\n    </IdleSettings>\n    <AllowStartOnDemand>true</AllowStartOnDemand>\n    <Enabled>true</Enabled>\n    <Hidden>false</Hidden>\n    <RunOnlyIfIdle>false</RunOnlyIfIdle>\n    <WakeToRun>false</WakeToRun>\n    <ExecutionTimeLimit>PT0S</ExecutionTimeLimit>\n    <Priority>7</Priority>\n    <RestartOnFailure>\n      <Interval>PT1M</Interval>\n      <Count>5</Count>\n    </RestartOnFailure>\n  </Settings>\n  <Actions Context=\"Author\">\n    <Exec>\n      <Command>\"\"</Command>\n    </Exec>\n  </Actions>\n</Task>"
  },
  {
    "path": "app/clash_core/win_x64/static/files/win/common/service.yml",
    "content": "id: Clash Core Service\nname: Clash Core Service\ndescription: Clash Core Service started by Clash for Windows\nexecutable: clash-core-service\nlog:\n  mode: none\n"
  },
  {
    "path": "app/clash_core/win_x64/static/files/win/common/tun2socks/add_tap_device.bat",
    "content": ":: Copyright 2018 The Outline Authors\n::\n:: Licensed under the Apache License, Version 2.0 (the \"License\");\n:: you may not use this file except in compliance with the License.\n:: You may obtain a copy of the License at\n::\n::      http://www.apache.org/licenses/LICENSE-2.0\n::\n:: Unless required by applicable law or agreed to in writing, software\n:: distributed under the License is distributed on an \"AS IS\" BASIS,\n:: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n:: See the License for the specific language governing permissions and\n:: limitations under the License.\n\n@echo off\n:: See https://ss64.com/nt/delayedexpansion.html\nsetlocal enabledelayedexpansion\n\nset DEVICE_NAME=cfw-tap\nset DEVICE_HWID=tap0901\n\nset SCRIPT_DIR=%~dp0\nset ARCH=%1\nset IP=%2\nset SUBNET=%3\nset GATEWAY=%4\n\n:: Error codes for surfacing to the user and sentry.\nset ERROR_TAP_INSTALL=1\nset ERROR_TAP_FIND_NAME=2\nset ERROR_TAP_RENAME=3\nset ERROR_TAP_CONFIGURE_SUBNET=4\nset ERROR_TAP_CONFIGURE_DNS=5\n\n:: Because we've seen multiple failures due to commands (netsh, etc.) not being\n:: found, append some common directories to the PATH.\n::\n:: Note:\n::  - %SystemRoot% almost always expands to c:\\windows.\n::  - Do *not* surround with quotes.\nset PATH=%PATH%;%SystemRoot%\\system32;%SystemRoot%\\system32\\wbem;%SystemRoot%\\system32\\WindowsPowerShell/v1.0\n\n:: Check whether the device already exists.\nnetsh interface show interface name=%DEVICE_NAME%\nif %errorlevel% equ 0 (\n  echo TAP network device already exists.\n  goto :configure\n)\n\necho Creating TAP network device...\n\"%SCRIPT_DIR%\\%ARCH%\\tapinstall\" install \"%SCRIPT_DIR%\\%ARCH%\\OemVista.inf\" %DEVICE_HWID%\nif %errorlevel% neq 0 (\n  echo Could not create TAP network device. Try to do it manually. >&2\n  REM exit /b %ERROR_TAP_INSTALL%\n  start /wait /D \"%SCRIPT_DIR%\" tap-windows-installer.exe\n)\n\n:: Find the name of the most recently installed TAP device in the registry and rename it.\necho Searching for new TAP network device name...\ncall \"%SCRIPT_DIR%\\find_tap_device_name.bat\" TAP_NAME\nif %errorlevel% neq 0 (\n  echo Could not find TAP device name. >&2\n  exit /b %ERROR_TAP_FIND_NAME%\n)\necho Found TAP device name: \"%TAP_NAME%\"\n\n:: We've occasionally seen delays before netsh will \"see\" the new device, at least for\n:: purposes of configuring IP and DNS (\"netsh interface show interface name=xxx\" does not\n:: seem to be affected).\ncall :wait_for_device \"%TAP_NAME%\"\n\n:: Attempt to rename the device even if waiting timed out.\nnetsh interface set interface name=\"%TAP_NAME%\" newname=\"%DEVICE_NAME%\"\nif %errorlevel% neq 0 (\n  :: Try to rename the device through powershell in case netsh failed due to not being able to \"see\"\n  :: the device. Pipe input from /dev/null to prevent powershell from waiting forever on EOF.\n  powershell \"Rename-NetAdapter -Name \\\"%TAP_NAME%\\\" -NewName \\\"%DEVICE_NAME%\\\"\" <nul\n  :: Note that we use delayed variable expansion inside a control block to check errorlevel.\n  if !errorlevel! neq 0 (\n    echo Could not rename TAP device. >&2\n    exit /b %ERROR_TAP_RENAME%\n  )\n)\n\n:: Wait for the new name to propagate to netsh.\ncall :wait_for_device \"%DEVICE_NAME%\"\n\n:: Attempt to configure the device even if waiting timed out.\n:configure\n\n:: Try to enable the device, in case it's somehow been disabled.\n::\n:: Annoyingly, this returns an error and outputs a confusing message if the device exists and is\n:: already enabled:\n::   This network connection does not exist.\n::\n:: So, continue even if this command fails - and always include its output.\necho (Re-)enabling TAP network device...\nnetsh interface set interface \"%DEVICE_NAME%\" admin=enabled\n:: The powershell command is used to ensure the adapter is enabled if netsh fails and leaves it in\n:: a disabled state. While no such failure has yet been observed, this command would correct it and\n:: should behave idempotently otherwise.\npowershell \"Enable-NetAdapter -Name \\\"%DEVICE_NAME%\\\"\" <nul\n\n:: Give the device an IP address.\n:: 10.0.85.x is a guess which we hope will work for most users (Docker for\n:: Windows uses 10.0.75.x by default): if the address is already in use the\n:: script will fail and the installer will show an error message to the user.\n:: TODO: Actually search the system for an unused subnet or make the subnet\n::       configurable in the Outline client.\necho Configuring TAP device subnet...\nnetsh interface ip set address %DEVICE_NAME% static %IP% %SUBNET% %GATEWAY%\nif %errorlevel% neq 0 (\n  echo Could not set TAP network device subnet. >&2\n  exit /b %ERROR_TAP_CONFIGURE_SUBNET%\n)\n\n:: Windows has no system-wide DNS server; each network device can have its\n:: \"own\" set of DNS servers. Windows seems to use the DNS server(s) of the\n:: network device associated with the default gateway. This is good for us\n:: as it means we do not have to modify the DNS settings of any other network\n:: device in the system. Configure with OpenDNS and Dyn resolvers.\necho Configuring primary DNS...\nnetsh interface ip set dnsservers %DEVICE_NAME% static address=%IP%\nif %errorlevel% neq 0 (\n  echo Could not configure TAP device primary DNS. >&2\n  exit /b %ERROR_TAP_CONFIGURE_DNS%\n)\necho Setting interface metric (1) for this interface...\npowershell \"Set-NetIPInterface -InterfaceAlias \\\"%DEVICE_NAME%\\\" -InterfaceMetric 1\" <nul\nif %errorlevel% neq 0 (\n  echo Could not set interface metric. >&2\n  exit /b 1\n)\necho TAP network device added and configured successfully\nexit /b 0\n\n:: Waits up to a minute until a device is visible to netsh. Accepts the device name as a parameter.\n:: Exits with a non-zero code if the operation times out.\n:wait_for_device\necho Testing that the network device \"%~1\" is visible to netsh...\nnetsh interface ip show interfaces | find \"%~1\" >nul 2>&1\nif %errorlevel% equ 0 exit /b 0\nfor /l %%N in (1, 1, 6) do (\n  echo Waiting... %%N\n  :: timeout doesn't like the environment created by nsExec::ExecToStack and exits with:\n  :: \"ERROR: Input redirection is not supported, exiting the process immediately.\"\n  waitfor /t 10 thisisnotarealsignalname >nul 2>&1\n  netsh interface ip show interfaces | find \"%~1\" >nul 2>&1\n  if !errorlevel! equ 0 exit /b 0\n)\nexit /b 1\n"
  },
  {
    "path": "app/clash_core/win_x64/static/files/win/common/tun2socks/amd64/OemVista.inf",
    "content": "; ****************************************************************************\n; * Copyright (C) 2002-2014 OpenVPN Technologies, Inc.                            *\n; *  This program is free software; you can redistribute it and/or modify    *\n; *  it under the terms of the GNU General Public License version 2          *\n; *  as published by the Free Software Foundation.                           *\n; ****************************************************************************\n\n; SYNTAX CHECKER\n; cd \\WINDDK\\3790\\tools\\chkinf\n; chkinf c:\\src\\openvpn\\tap-win32\\i386\\oemvista.inf\n; OUTPUT -> file:///c:/WINDDK/3790/tools/chkinf/htm/c%23+src+openvpn+tap-win32+i386+__OemWin2k.htm\n\n; INSTALL/REMOVE DRIVER\n;   tapinstall install OemVista.inf tapoas\n;   tapinstall update OemVista.inf tapoas\n;   tapinstall remove tapoas\n\n;*********************************************************\n; Note to Developers:\n;\n; If you are bundling the TAP-Windows driver with your app,\n; you should try to rename it in such a way that it will\n; not collide with other instances of TAP-Windows defined\n; by other apps.  Multiple versions of the TAP-Windows\n; driver, each installed by different apps, can coexist\n; on the same machine if you follow these guidelines.\n; NOTE: these instructions assume you are editing the\n; generated OemWin2k.inf file, not the source\n; OemWin2k.inf.in file which is preprocessed by winconfig\n; and uses macro definitions from settings.in.\n;\n; (1) Rename all tapXXXX instances in this file to\n;     something different (use at least 5 characters\n;     for this name!)\n; (2) Change the \"!define TAP\" definition in openvpn.nsi\n;     to match what you changed tapXXXX to.\n; (3) Change TARGETNAME in SOURCES to match what you\n;     changed tapXXXX to.\n; (4) Change TAP_COMPONENT_ID in common.h to match what\n;     you changed tapXXXX to.\n; (5) Change SZDEPENDENCIES in service.h to match what\n;     you changed tapXXXX to.\n; (6) Change DeviceDescription and Provider strings.\n; (7) Change PRODUCT_TAP_WIN_DEVICE_DESCRIPTION in constants.h to what you\n;     set DeviceDescription to.\n;\n;*********************************************************\n\n[Version]\n   Signature = \"$Windows NT$\"\n   CatalogFile = tap0901.cat\n   ClassGUID = {4d36e972-e325-11ce-bfc1-08002be10318}\n   Provider = %Provider%\n   Class = Net\n\n; This version number should match the version\n; number given in ..\\version.m4.\n   DriverVer = 04/16/2019,9.23.1.601\n\n[Strings]\n   DeviceDescription = \"TAP-Windows Adapter V9\"\n   Provider = \"TAP-Windows Provider V9\"\n\n;----------------------------------------------------------------\n;                      Manufacturer + Product Section (Done)\n;----------------------------------------------------------------\n[Manufacturer]\n   %Provider% = tap0901, NTamd64\n\n[tap0901.NTamd64]\n   %DeviceDescription% = tap0901.ndi, root\\tap0901 ; Root enumerated\n   %DeviceDescription% = tap0901.ndi, tap0901      ; Legacy\n\n;---------------------------------------------------------------\n;                             Driver Section (Done)\n;---------------------------------------------------------------\n\n;----------------- Characteristics ------------\n;    NCF_PHYSICAL = 0x04\n;    NCF_VIRTUAL = 0x01\n;    NCF_SOFTWARE_ENUMERATED = 0x02\n;    NCF_HIDDEN = 0x08\n;    NCF_NO_SERVICE = 0x10\n;    NCF_HAS_UI = 0x80\n;----------------- Characteristics ------------\n\n[tap0901.ndi]\n   CopyFiles       = tap0901.driver, tap0901.files\n   AddReg          = tap0901.reg\n   AddReg          = tap0901.params.reg\n   Characteristics = 0x81\n   *IfType            = 0x6 ; IF_TYPE_ETHERNET_CSMACD\n   *MediaType         = 0x0 ; NdisMedium802_3\n   *PhysicalMediaType = 14  ; NdisPhysicalMedium802_3\n\n[tap0901.ndi.Services]\n   AddService = tap0901,        2, tap0901.service\n\n[tap0901.reg]\n   HKR, Ndi,            Service,      0, \"tap0901\"\n   HKR, Ndi\\Interfaces, UpperRange,   0, \"ndis5\"\n   HKR, Ndi\\Interfaces, LowerRange,   0, \"ethernet\"\n   HKR, ,               Manufacturer, 0, \"%Provider%\"\n   HKR, ,               ProductName,  0, \"%DeviceDescription%\"\n\n[tap0901.params.reg]\n   HKR, Ndi\\params\\MTU,                  ParamDesc, 0, \"MTU\"\n   HKR, Ndi\\params\\MTU,                  Type,      0, \"int\"\n   HKR, Ndi\\params\\MTU,                  Default,   0, \"1500\"\n   HKR, Ndi\\params\\MTU,                  Optional,  0, \"0\"\n   HKR, Ndi\\params\\MTU,                  Min,       0, \"100\"\n   HKR, Ndi\\params\\MTU,                  Max,       0, \"1500\"\n   HKR, Ndi\\params\\MTU,                  Step,      0, \"1\"\n   HKR, Ndi\\params\\MediaStatus,          ParamDesc, 0, \"Media Status\"\n   HKR, Ndi\\params\\MediaStatus,          Type,      0, \"enum\"\n   HKR, Ndi\\params\\MediaStatus,          Default,   0, \"0\"\n   HKR, Ndi\\params\\MediaStatus,          Optional,  0, \"0\"\n   HKR, Ndi\\params\\MediaStatus\\enum,     \"0\",       0, \"Application Controlled\"\n   HKR, Ndi\\params\\MediaStatus\\enum,     \"1\",       0, \"Always Connected\"\n   HKR, Ndi\\params\\MAC,                  ParamDesc, 0, \"MAC Address\"\n   HKR, Ndi\\params\\MAC,                  Type,      0, \"edit\"\n   HKR, Ndi\\params\\MAC,                  Optional,  0, \"1\"\n   HKR, Ndi\\params\\AllowNonAdmin,        ParamDesc, 0, \"Non-Admin Access\"\n   HKR, Ndi\\params\\AllowNonAdmin,        Type,      0, \"enum\"\n   HKR, Ndi\\params\\AllowNonAdmin,        Default,   0, \"1\"\n   HKR, Ndi\\params\\AllowNonAdmin,        Optional,  0, \"0\"\n   HKR, Ndi\\params\\AllowNonAdmin\\enum,   \"0\",       0, \"Not Allowed\"\n   HKR, Ndi\\params\\AllowNonAdmin\\enum,   \"1\",       0, \"Allowed\"\n\n;----------------------------------------------------------------\n;                             Service Section\n;----------------------------------------------------------------\n\n;---------- Service Type -------------\n;    SERVICE_KERNEL_DRIVER     = 0x01\n;    SERVICE_WIN32_OWN_PROCESS = 0x10\n;---------- Service Type -------------\n\n;---------- Start Mode ---------------\n;    SERVICE_BOOT_START   = 0x0\n;    SERVICE_SYSTEM_START = 0x1\n;    SERVICE_AUTO_START   = 0x2\n;    SERVICE_DEMAND_START = 0x3\n;    SERVICE_DISABLED     = 0x4\n;---------- Start Mode ---------------\n\n[tap0901.service]\n   DisplayName = %DeviceDescription%\n   ServiceType = 1\n   StartType = 3\n   ErrorControl = 1\n   LoadOrderGroup = NDIS\n   ServiceBinary = %12%\\tap0901.sys\n\n;-----------------------------------------------------------------\n;                                File Installation\n;-----------------------------------------------------------------\n\n;----------------- Copy Flags ------------\n;    COPYFLG_NOSKIP = 0x02\n;    COPYFLG_NOVERSIONCHECK = 0x04\n;----------------- Copy Flags ------------\n\n; SourceDisksNames\n; diskid = description[, [tagfile] [, <unused>, subdir]]\n; 1 = \"Intel Driver Disk 1\",e100bex.sys,,\n\n[SourceDisksNames]\n   1 = %DeviceDescription%, tap0901.sys\n\n; SourceDisksFiles\n; filename_on_source = diskID[, [subdir][, size]]\n; e100bex.sys = 1,, ; on distribution disk 1\n\n[SourceDisksFiles]\ntap0901.sys = 1\n\n[DestinationDirs]\n   tap0901.files  = 11\n   tap0901.driver = 12\n\n[tap0901.files]\n;   TapPanel.cpl,,,6   ; COPYFLG_NOSKIP | COPYFLG_NOVERSIONCHECK\n;   cipsrvr.exe,,,6     ; COPYFLG_NOSKIP | COPYFLG_NOVERSIONCHECK\n\n[tap0901.driver]\n   tap0901.sys,,,6     ; COPYFLG_NOSKIP | COPYFLG_NOVERSIONCHECK\n\n;---------------------------------------------------------------\n;                                      End\n;---------------------------------------------------------------\n"
  },
  {
    "path": "app/clash_core/win_x64/static/files/win/common/tun2socks/find_tap_device_name.bat",
    "content": ":: Copyright 2020 The Outline Authors\n::\n:: Licensed under the Apache License, Version 2.0 (the \"License\");\n:: you may not use this file except in compliance with the License.\n:: You may obtain a copy of the License at\n::\n::      http://www.apache.org/licenses/LICENSE-2.0\n::\n:: Unless required by applicable law or agreed to in writing, software\n:: distributed under the License is distributed on an \"AS IS\" BASIS,\n:: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n:: See the License for the specific language governing permissions and\n:: limitations under the License.\n\n:: Queries the registry in order to retrieve the most recently installed TAP network adapter's name.\n:: Accepts a single argument, the name of an environment variable to store the adapter's name.\n:: Exits with a non-zero exit code on failure.\n:: Usage example: find_tap_name.bat TAP_NAME\n\n@echo off\n:: See https://ss64.com/nt/delayedexpansion.html\nsetlocal enabledelayedexpansion\n\nset NET_ADAPTERS_CLASS_GUID={4D36E972-E325-11CE-BFC1-08002BE10318}\nset NET_ADAPTERS_KEY=HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Class\\%NET_ADAPTERS_CLASS_GUID%\nset NET_CONFIG_KEY=HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Network\\%NET_ADAPTERS_CLASS_GUID%\nset NET_ADAPTERS_FILE=\"%tmp%\\netadapters.txt\"\n\n:: Find all network adapters that match the \"tap0901\" component ID and store their registry path in a file.\n:: Note that adapter keys are increasing four-digit integers, padded with leading zeros.\nreg query %NET_ADAPTERS_KEY% /s /f \"tap0901\" /e /d | findstr \"HKEY.*\\\\[0-9][0-9][0-9][0-9]$\" > %NET_ADAPTERS_FILE%\nif %errorlevel% neq 0 (\n  echo Could not find TAP network adapter in the registry. >&2\n  exit /b 1\n)\n\nset TIMESTAMP=0\nset NAME=\nfor /f \"tokens=*\" %%K in ('type \"%NET_ADAPTERS_FILE%\"') do (\n  set ADAPTER_NAME=\n  set ADAPTER_NET_CONFIG_ID=\n  set ADAPTER_TIMESTAMP=\n\n  :: Retrieve the adapter's network config ID.\n  set ADAPTER_KEY=%%K\n  for /f \"tokens=3\" %%I in ('reg query !ADAPTER_KEY! /v \"NetCfgInstanceId\"') do (\n    set ADAPTER_NET_CONFIG_ID=%%I\n  )\n\n  :: Retrieve the adapter's install timestamp.\n  for /f \"tokens=3\" %%T in ('reg query !ADAPTER_KEY! /v \"InstallTimeStamp\"') do (\n    set ADAPTER_TIMESTAMP=%%T\n  )\n\n  :: Retrieve the adapter's name.\n  set ADAPTER_CONFIG_KEY=!NET_CONFIG_KEY!\\!ADAPTER_NET_CONFIG_ID!\\Connection\n  for /f \"tokens=3*\" %%N in ('reg query !ADAPTER_CONFIG_KEY! /v \"Name\"') do (\n    :: If the name contains spaces our tokenization will store the rest of the name in %%O.\n    if [%%O] == [] (\n      set ADAPTER_NAME=%%N\n    ) else (\n      set ADAPTER_NAME=%%N %%O\n    )\n  )\n\n  :: Ensure we found the adapter's install timestamp and name.\n  if not [!ADAPTER_TIMESTAMP!] == [] (\n    if not [!ADAPTER_NAME!] == [] (\n      echo Found adapter \"!ADAPTER_NAME!\", !ADAPTER_TIMESTAMP!\n      :: Store the adapter's name if it's the most recently installed one.\n      if !ADAPTER_TIMESTAMP! gtr !TIMESTAMP! (\n        set TIMESTAMP=!ADAPTER_TIMESTAMP!\n        set NAME=!ADAPTER_NAME!\n      )\n    ) else (\n      echo Failed to retrieve name of adapter !ADAPTER_KEY! >&2\n    )\n  ) else (\n    echo Failed to retrieve install timestamp of adapter !ADAPTER_KEY! >&2\n  )\n)\n\nif [!NAME!] == [] (\n  echo Could not find TAP adapter name. >&2\n  exit /b 1\n)\necho TAP device name: \"!NAME!\"\n\nendlocal & set \"%1=%NAME%\"\nexit /b 0"
  },
  {
    "path": "app/clash_core/win_x64/static/files/win/common/tun2socks/i386/OemVista.inf",
    "content": "; ****************************************************************************\n; * Copyright (C) 2002-2014 OpenVPN Technologies, Inc.                            *\n; *  This program is free software; you can redistribute it and/or modify    *\n; *  it under the terms of the GNU General Public License version 2          *\n; *  as published by the Free Software Foundation.                           *\n; ****************************************************************************\n\n; SYNTAX CHECKER\n; cd \\WINDDK\\3790\\tools\\chkinf\n; chkinf c:\\src\\openvpn\\tap-win32\\i386\\oemvista.inf\n; OUTPUT -> file:///c:/WINDDK/3790/tools/chkinf/htm/c%23+src+openvpn+tap-win32+i386+__OemWin2k.htm\n\n; INSTALL/REMOVE DRIVER\n;   tapinstall install OemVista.inf tapoas\n;   tapinstall update OemVista.inf tapoas\n;   tapinstall remove tapoas\n\n;*********************************************************\n; Note to Developers:\n;\n; If you are bundling the TAP-Windows driver with your app,\n; you should try to rename it in such a way that it will\n; not collide with other instances of TAP-Windows defined\n; by other apps.  Multiple versions of the TAP-Windows\n; driver, each installed by different apps, can coexist\n; on the same machine if you follow these guidelines.\n; NOTE: these instructions assume you are editing the\n; generated OemWin2k.inf file, not the source\n; OemWin2k.inf.in file which is preprocessed by winconfig\n; and uses macro definitions from settings.in.\n;\n; (1) Rename all tapXXXX instances in this file to\n;     something different (use at least 5 characters\n;     for this name!)\n; (2) Change the \"!define TAP\" definition in openvpn.nsi\n;     to match what you changed tapXXXX to.\n; (3) Change TARGETNAME in SOURCES to match what you\n;     changed tapXXXX to.\n; (4) Change TAP_COMPONENT_ID in common.h to match what\n;     you changed tapXXXX to.\n; (5) Change SZDEPENDENCIES in service.h to match what\n;     you changed tapXXXX to.\n; (6) Change DeviceDescription and Provider strings.\n; (7) Change PRODUCT_TAP_WIN_DEVICE_DESCRIPTION in constants.h to what you\n;     set DeviceDescription to.\n;\n;*********************************************************\n\n[Version]\n   Signature = \"$Windows NT$\"\n   CatalogFile = tap0901.cat\n   ClassGUID = {4d36e972-e325-11ce-bfc1-08002be10318}\n   Provider = %Provider%\n   Class = Net\n\n; This version number should match the version\n; number given in SOURCES.\n   DriverVer=04/21/2016,9.00.00.21\n\n[Strings]\n   DeviceDescription = \"TAP-Windows Adapter V9\"\n   Provider = \"TAP-Windows Provider V9\"\n\n;----------------------------------------------------------------\n;                      Manufacturer + Product Section (Done)\n;----------------------------------------------------------------\n[Manufacturer]\n   %Provider% = tap0901\n\n[tap0901]\n   %DeviceDescription% = tap0901.ndi, root\\tap0901 ; Root enumerated\n   %DeviceDescription% = tap0901.ndi, tap0901      ; Legacy\n\n;---------------------------------------------------------------\n;                             Driver Section (Done)\n;---------------------------------------------------------------\n\n;----------------- Characteristics ------------\n;    NCF_PHYSICAL = 0x04\n;    NCF_VIRTUAL = 0x01\n;    NCF_SOFTWARE_ENUMERATED = 0x02\n;    NCF_HIDDEN = 0x08\n;    NCF_NO_SERVICE = 0x10\n;    NCF_HAS_UI = 0x80\n;----------------- Characteristics ------------\n\n[tap0901.ndi]\n   CopyFiles       = tap0901.driver, tap0901.files\n   AddReg          = tap0901.reg\n   AddReg          = tap0901.params.reg\n   Characteristics = \n   *IfType            = 0x6 ; IF_TYPE_ETHERNET_CSMACD\n   *MediaType         = 0x0 ; NdisMedium802_3\n   *PhysicalMediaType = 14  ; NdisPhysicalMedium802_3\n\n[tap0901.ndi.Services]\n   AddService = tap0901,        2, tap0901.service\n\n[tap0901.reg]\n   HKR, Ndi,            Service,      0, \"tap0901\"\n   HKR, Ndi\\Interfaces, UpperRange,   0, \"ndis5\"\n   HKR, Ndi\\Interfaces, LowerRange,   0, \"ethernet\"\n   HKR, ,               Manufacturer, 0, \"%Provider%\"\n   HKR, ,               ProductName,  0, \"%DeviceDescription%\"\n\n[tap0901.params.reg]\n   HKR, Ndi\\params\\MTU,                  ParamDesc, 0, \"MTU\"\n   HKR, Ndi\\params\\MTU,                  Type,      0, \"int\"\n   HKR, Ndi\\params\\MTU,                  Default,   0, \"1500\"\n   HKR, Ndi\\params\\MTU,                  Optional,  0, \"0\"\n   HKR, Ndi\\params\\MTU,                  Min,       0, \"100\"\n   HKR, Ndi\\params\\MTU,                  Max,       0, \"1500\"\n   HKR, Ndi\\params\\MTU,                  Step,      0, \"1\"\n   HKR, Ndi\\params\\MediaStatus,          ParamDesc, 0, \"Media Status\"\n   HKR, Ndi\\params\\MediaStatus,          Type,      0, \"enum\"\n   HKR, Ndi\\params\\MediaStatus,          Default,   0, \"0\"\n   HKR, Ndi\\params\\MediaStatus,          Optional,  0, \"0\"\n   HKR, Ndi\\params\\MediaStatus\\enum,     \"0\",       0, \"Application Controlled\"\n   HKR, Ndi\\params\\MediaStatus\\enum,     \"1\",       0, \"Always Connected\"\n   HKR, Ndi\\params\\MAC,                  ParamDesc, 0, \"MAC Address\"\n   HKR, Ndi\\params\\MAC,                  Type,      0, \"edit\"\n   HKR, Ndi\\params\\MAC,                  Optional,  0, \"1\"\n   HKR, Ndi\\params\\AllowNonAdmin,        ParamDesc, 0, \"Non-Admin Access\"\n   HKR, Ndi\\params\\AllowNonAdmin,        Type,      0, \"enum\"\n   HKR, Ndi\\params\\AllowNonAdmin,        Default,   0, \"1\"\n   HKR, Ndi\\params\\AllowNonAdmin,        Optional,  0, \"0\"\n   HKR, Ndi\\params\\AllowNonAdmin\\enum,   \"0\",       0, \"Not Allowed\"\n   HKR, Ndi\\params\\AllowNonAdmin\\enum,   \"1\",       0, \"Allowed\"\n\n;----------------------------------------------------------------\n;                             Service Section\n;----------------------------------------------------------------\n\n;---------- Service Type -------------\n;    SERVICE_KERNEL_DRIVER     = 0x01\n;    SERVICE_WIN32_OWN_PROCESS = 0x10\n;---------- Service Type -------------\n\n;---------- Start Mode ---------------\n;    SERVICE_BOOT_START   = 0x0\n;    SERVICE_SYSTEM_START = 0x1\n;    SERVICE_AUTO_START   = 0x2\n;    SERVICE_DEMAND_START = 0x3\n;    SERVICE_DISABLED     = 0x4\n;---------- Start Mode ---------------\n\n[tap0901.service]\n   DisplayName = %DeviceDescription%\n   ServiceType = 1\n   StartType = 3\n   ErrorControl = 1\n   LoadOrderGroup = NDIS\n   ServiceBinary = %12%\\tap0901.sys\n\n;-----------------------------------------------------------------\n;                                File Installation\n;-----------------------------------------------------------------\n\n;----------------- Copy Flags ------------\n;    COPYFLG_NOSKIP = 0x02\n;    COPYFLG_NOVERSIONCHECK = 0x04\n;----------------- Copy Flags ------------\n\n; SourceDisksNames\n; diskid = description[, [tagfile] [, <unused>, subdir]]\n; 1 = \"Intel Driver Disk 1\",e100bex.sys,,\n\n[SourceDisksNames]\n   1 = %DeviceDescription%, tap0901.sys\n\n; SourceDisksFiles\n; filename_on_source = diskID[, [subdir][, size]]\n; e100bex.sys = 1,, ; on distribution disk 1\n\n[SourceDisksFiles]\ntap0901.sys = 1\n\n[DestinationDirs]\n   tap0901.files  = 11\n   tap0901.driver = 12\n\n[tap0901.files]\n;   TapPanel.cpl,,,6   ; COPYFLG_NOSKIP | COPYFLG_NOVERSIONCHECK\n;   cipsrvr.exe,,,6     ; COPYFLG_NOSKIP | COPYFLG_NOVERSIONCHECK\n\n[tap0901.driver]\n   tap0901.sys,,,6     ; COPYFLG_NOSKIP | COPYFLG_NOVERSIONCHECK\n\n;---------------------------------------------------------------\n;                                      End\n;---------------------------------------------------------------\n"
  },
  {
    "path": "app/clash_core/win_x64/static/files/win/common/tun2socks/remove_tap_device.bat",
    "content": "@echo off\nsetlocal\n\nset DEVICE_NAME=cfw-tap\nset DEVICE_HWID=tap0901\n\nset SCRIPT_DIR=%~dp0\nset ARCH=%1\n\nset PATH=%PATH%;%SystemRoot%\\system32;%SystemRoot%\\system32\\wbem;%SystemRoot%\\system32\\WindowsPowerShell/v1.0\n\necho Removing old TAP network device...\n\"%SCRIPT_DIR%\\%ARCH%\\tapinstall\" remove %DEVICE_HWID%\nif %errorlevel% neq 0 (\n  echo Could not remove TAP network device. >&2\n  exit /b 1\n)"
  },
  {
    "path": "app/clash_core/win_x64/static/files/win/x64/clash-win64.exe.sign",
    "content": "0BpClCU/jf0VdpLKDVPSHLec5YpcR2GiqM589Z2k4t5K5WTfSTTcQWHbS5T+lxoO8pRvi+aILnLytkbNvFhi1w=="
  },
  {
    "path": "app/main/ABOUT/LICENSE.electron.txt",
    "content": "Copyright (c) Electron contributors\nCopyright (c) 2013-2020 GitHub Inc.\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\nNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\nLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\nOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\nWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "app/main/ABOUT/state.txt",
    "content": "Disclaimer Statement\n1. This software is only intended for the purpose of learning and researching network technology. Users must comply with the laws and regulations in their respective regions and must not use it for illegal purposes. The software will not be held responsible for any actions of the user.\n\n2. Users must strictly abide by the laws, regulations, and policies of their own countries/regions when using this software. Any consequences or liabilities resulting from violations of relevant laws, regulations, and policies shall be borne by the user.\n\n3. The software is not responsible for the transmission of content. Therefore, if any problems or consequences arise from the use of this software, the user shall bear all responsibility.\n\n4. If the software violates any laws and regulations of the user's country/region, the user must immediately stop using it and bear the corresponding legal responsibility.\n\n5. While using this software, the user acknowledges and agrees that the software cannot guarantee network stability, accuracy, timeliness, and security. The software will not be held responsible for any connection problems or inability to connect caused by network congestion, firewall restrictions, DNS pollution, operator interference, and other reasons.\n\n6. The software does not provide technical support and is not responsible for any direct or indirect losses caused by the user's use of this software, including but not limited to property damage, data loss, and other forms of loss.\n\n\nLinks\nOfficial Link: https://github.com/Fndroid/clash_for_windows_pkg\nCFW Chinese version link: https://github.com/Z-Siqi/Clash-for-Windows_Chinese"
  },
  {
    "path": "app/main/dist/electron/287.js",
    "content": "\"use strict\";\n(global.webpackChunkclash_win = global.webpackChunkclash_win || []).push([\n    [287], {\n        37287: (e, n, s) => {\n            s.r(n), s.d(n, { conf: () => r, language: () => i });\n            var t = s(89587),\n                r = {\n                    comments: { lineComment: \"#\", blockComment: [\"'''\", \"'''\"] },\n                    brackets: [\n                        [\"{\", \"}\"],\n                        [\"[\", \"]\"],\n                        [\"(\", \")\"]\n                    ],\n                    autoClosingPairs: [{ open: \"{\", close: \"}\" }, { open: \"[\", close: \"]\" }, { open: \"(\", close: \")\" }, { open: '\"', close: '\"', notIn: [\"string\"] }, { open: \"'\", close: \"'\", notIn: [\"string\", \"comment\"] }],\n                    surroundingPairs: [{ open: \"{\", close: \"}\" }, { open: \"[\", close: \"]\" }, { open: \"(\", close: \")\" }, { open: '\"', close: '\"' }, { open: \"'\", close: \"'\" }],\n                    onEnterRules: [{ beforeText: new RegExp(\"^\\\\s*(?:def|class|for|if|elif|else|while|try|with|finally|except|async).*?:\\\\s*$\"), action: { indentAction: t.Mj.IndentAction.Indent } }],\n                    folding: { offSide: !0, markers: { start: new RegExp(\"^\\\\s*#region\\\\b\"), end: new RegExp(\"^\\\\s*#endregion\\\\b\") } }\n                },\n                i = {\n                    defaultToken: \"\",\n                    tokenPostfix: \".python\",\n                    keywords: [\"False\", \"None\", \"True\", \"and\", \"as\", \"assert\", \"async\", \"await\", \"break\", \"class\", \"continue\", \"def\", \"del\", \"elif\", \"else\", \"except\", \"exec\", \"finally\", \"for\", \"from\", \"global\", \"if\", \"import\", \"in\", \"is\", \"lambda\", \"nonlocal\", \"not\", \"or\", \"pass\", \"print\", \"raise\", \"return\", \"try\", \"while\", \"with\", \"yield\", \"int\", \"float\", \"long\", \"complex\", \"hex\", \"abs\", \"all\", \"any\", \"apply\", \"basestring\", \"bin\", \"bool\", \"buffer\", \"bytearray\", \"callable\", \"chr\", \"classmethod\", \"cmp\", \"coerce\", \"compile\", \"complex\", \"delattr\", \"dict\", \"dir\", \"divmod\", \"enumerate\", \"eval\", \"execfile\", \"file\", \"filter\", \"format\", \"frozenset\", \"getattr\", \"globals\", \"hasattr\", \"hash\", \"help\", \"id\", \"input\", \"intern\", \"isinstance\", \"issubclass\", \"iter\", \"len\", \"locals\", \"list\", \"map\", \"max\", \"memoryview\", \"min\", \"next\", \"object\", \"oct\", \"open\", \"ord\", \"pow\", \"print\", \"property\", \"reversed\", \"range\", \"raw_input\", \"reduce\", \"reload\", \"repr\", \"reversed\", \"round\", \"self\", \"set\", \"setattr\", \"slice\", \"sorted\", \"staticmethod\", \"str\", \"sum\", \"super\", \"tuple\", \"type\", \"unichr\", \"unicode\", \"vars\", \"xrange\", \"zip\", \"__dict__\", \"__methods__\", \"__members__\", \"__class__\", \"__bases__\", \"__name__\", \"__mro__\", \"__subclasses__\", \"__init__\", \"__import__\"],\n                    brackets: [{ open: \"{\", close: \"}\", token: \"delimiter.curly\" }, { open: \"[\", close: \"]\", token: \"delimiter.bracket\" }, { open: \"(\", close: \")\", token: \"delimiter.parenthesis\" }],\n                    tokenizer: {\n                        root: [{ include: \"@whitespace\" }, { include: \"@numbers\" }, { include: \"@strings\" },\n                            [/[,:;]/, \"delimiter\"],\n                            [/[{}\\[\\]()]/, \"@brackets\"],\n                            [/@[a-zA-Z_]\\w*/, \"tag\"],\n                            [/[a-zA-Z_]\\w*/, { cases: { \"@keywords\": \"keyword\", \"@default\": \"identifier\" } }]\n                        ],\n                        whitespace: [\n                            [/\\s+/, \"white\"],\n                            [/(^#.*$)/, \"comment\"],\n                            [/'''/, \"string\", \"@endDocString\"],\n                            [/\"\"\"/, \"string\", \"@endDblDocString\"]\n                        ],\n                        endDocString: [\n                            [/[^']+/, \"string\"],\n                            [/\\\\'/, \"string\"],\n                            [/'''/, \"string\", \"@popall\"],\n                            [/'/, \"string\"]\n                        ],\n                        endDblDocString: [\n                            [/[^\"]+/, \"string\"],\n                            [/\\\\\"/, \"string\"],\n                            [/\"\"\"/, \"string\", \"@popall\"],\n                            [/\"/, \"string\"]\n                        ],\n                        numbers: [\n                            [/-?0x([abcdef]|[ABCDEF]|\\d)+[lL]?/, \"number.hex\"],\n                            [/-?(\\d*\\.)?\\d+([eE][+\\-]?\\d+)?[jJ]?[lL]?/, \"number\"]\n                        ],\n                        strings: [\n                            [/'$/, \"string.escape\", \"@popall\"],\n                            [/'/, \"string.escape\", \"@stringBody\"],\n                            [/\"$/, \"string.escape\", \"@popall\"],\n                            [/\"/, \"string.escape\", \"@dblStringBody\"]\n                        ],\n                        stringBody: [\n                            [/[^\\\\']+$/, \"string\", \"@popall\"],\n                            [/[^\\\\']+/, \"string\"],\n                            [/\\\\./, \"string\"],\n                            [/'/, \"string.escape\", \"@popall\"],\n                            [/\\\\$/, \"string\"]\n                        ],\n                        dblStringBody: [\n                            [/[^\\\\\"]+$/, \"string\", \"@popall\"],\n                            [/[^\\\\\"]+/, \"string\"],\n                            [/\\\\./, \"string\"],\n                            [/\"/, \"string.escape\", \"@popall\"],\n                            [/\\\\$/, \"string\"]\n                        ]\n                    }\n                }\n        }\n    }\n]);"
  },
  {
    "path": "app/main/dist/electron/295.js",
    "content": "\"use strict\";\n(global.webpackChunkclash_win = global.webpackChunkclash_win || []).push([\n    [295], {\n        62295: (e, t, n) => {\n            n.r(t), n.d(t, { conf: () => s, language: () => r });\n            var o = n(89587),\n                i = {\n                    defaultToken: \"invalid\",\n                    tokenPostfix: \".ts\",\n                    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\", \"package\", \"private\", \"protected\", \"public\", \"override\", \"readonly\", \"require\", \"global\", \"return\", \"set\", \"static\", \"string\", \"super\", \"switch\", \"symbol\", \"this\", \"throw\", \"true\", \"try\", \"type\", \"typeof\", \"undefined\", \"unique\", \"unknown\", \"var\", \"void\", \"while\", \"with\", \"yield\", \"async\", \"await\", \"of\"],\n                    operators: [\"<=\", \">=\", \"==\", \"!=\", \"===\", \"!==\", \"=>\", \"+\", \"-\", \"**\", \"*\", \"/\", \"%\", \"++\", \"--\", \"<<\", \"</\", \">>\", \">>>\", \"&\", \"|\", \"^\", \"!\", \"~\", \"&&\", \"||\", \"??\", \"?\", \":\", \"=\", \"+=\", \"-=\", \"*=\", \"**=\", \"/=\", \"%=\", \"<<=\", \">>=\", \">>>=\", \"&=\", \"|=\", \"^=\", \"@\"],\n                    symbols: /[=><!~?:&|+\\-*\\/\\^%]+/,\n                    escapes: /\\\\(?:[abfnrtv\\\\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,\n                    digits: /\\d+(_+\\d+)*/,\n                    octaldigits: /[0-7]+(_+[0-7]+)*/,\n                    binarydigits: /[0-1]+(_+[0-1]+)*/,\n                    hexdigits: /[[0-9a-fA-F]+(_+[0-9a-fA-F]+)*/,\n                    regexpctl: /[(){}\\[\\]\\$\\^|\\-*+?\\.]/,\n                    regexpesc: /\\\\(?:[bBdDfnrstvwWn0\\\\\\/]|@regexpctl|c[A-Z]|x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4})/,\n                    tokenizer: {\n                        root: [\n                            [/[{}]/, \"delimiter.bracket\"], { include: \"common\" }\n                        ],\n                        common: [\n                            [/[a-z_$][\\w$]*/, { cases: { \"@keywords\": \"keyword\", \"@default\": \"identifier\" } }],\n                            [/[A-Z][\\w\\$]*/, \"type.identifier\"], { include: \"@whitespace\" },\n                            [/\\/(?=([^\\\\\\/]|\\\\.)+\\/([dgimsuy]*)(\\s*)(\\.|;|,|\\)|\\]|\\}|$))/, { token: \"regexp\", bracket: \"@open\", next: \"@regexp\" }],\n                            [/[()\\[\\]]/, \"@brackets\"],\n                            [/[<>](?!@symbols)/, \"@brackets\"],\n                            [/!(?=([^=]|$))/, \"delimiter\"],\n                            [/@symbols/, { cases: { \"@operators\": \"delimiter\", \"@default\": \"\" } }],\n                            [/(@digits)[eE]([\\-+]?(@digits))?/, \"number.float\"],\n                            [/(@digits)\\.(@digits)([eE][\\-+]?(@digits))?/, \"number.float\"],\n                            [/0[xX](@hexdigits)n?/, \"number.hex\"],\n                            [/0[oO]?(@octaldigits)n?/, \"number.octal\"],\n                            [/0[bB](@binarydigits)n?/, \"number.binary\"],\n                            [/(@digits)n?/, \"number\"],\n                            [/[;,.]/, \"delimiter\"],\n                            [/\"([^\"\\\\]|\\\\.)*$/, \"string.invalid\"],\n                            [/'([^'\\\\]|\\\\.)*$/, \"string.invalid\"],\n                            [/\"/, \"string\", \"@string_double\"],\n                            [/'/, \"string\", \"@string_single\"],\n                            [/`/, \"string\", \"@string_backtick\"]\n                        ],\n                        whitespace: [\n                            [/[ \\t\\r\\n]+/, \"\"],\n                            [/\\/\\*\\*(?!\\/)/, \"comment.doc\", \"@jsdoc\"],\n                            [/\\/\\*/, \"comment\", \"@comment\"],\n                            [/\\/\\/.*$/, \"comment\"]\n                        ],\n                        comment: [\n                            [/[^\\/*]+/, \"comment\"],\n                            [/\\*\\//, \"comment\", \"@pop\"],\n                            [/[\\/*]/, \"comment\"]\n                        ],\n                        jsdoc: [\n                            [/[^\\/*]+/, \"comment.doc\"],\n                            [/\\*\\//, \"comment.doc\", \"@pop\"],\n                            [/[\\/*]/, \"comment.doc\"]\n                        ],\n                        regexp: [\n                            [/(\\{)(\\d+(?:,\\d*)?)(\\})/, [\"regexp.escape.control\", \"regexp.escape.control\", \"regexp.escape.control\"]],\n                            [/(\\[)(\\^?)(?=(?:[^\\]\\\\\\/]|\\\\.)+)/, [\"regexp.escape.control\", { token: \"regexp.escape.control\", next: \"@regexrange\" }]],\n                            [/(\\()(\\?:|\\?=|\\?!)/, [\"regexp.escape.control\", \"regexp.escape.control\"]],\n                            [/[()]/, \"regexp.escape.control\"],\n                            [/@regexpctl/, \"regexp.escape.control\"],\n                            [/[^\\\\\\/]/, \"regexp\"],\n                            [/@regexpesc/, \"regexp.escape\"],\n                            [/\\\\\\./, \"regexp.invalid\"],\n                            [/(\\/)([dgimsuy]*)/, [{ token: \"regexp\", bracket: \"@close\", next: \"@pop\" }, \"keyword.other\"]]\n                        ],\n                        regexrange: [\n                            [/-/, \"regexp.escape.control\"],\n                            [/\\^/, \"regexp.invalid\"],\n                            [/@regexpesc/, \"regexp.escape\"],\n                            [/[^\\]]/, \"regexp\"],\n                            [/\\]/, { token: \"regexp.escape.control\", next: \"@pop\", bracket: \"@close\" }]\n                        ],\n                        string_double: [\n                            [/[^\\\\\"]+/, \"string\"],\n                            [/@escapes/, \"string.escape\"],\n                            [/\\\\./, \"string.escape.invalid\"],\n                            [/\"/, \"string\", \"@pop\"]\n                        ],\n                        string_single: [\n                            [/[^\\\\']+/, \"string\"],\n                            [/@escapes/, \"string.escape\"],\n                            [/\\\\./, \"string.escape.invalid\"],\n                            [/'/, \"string\", \"@pop\"]\n                        ],\n                        string_backtick: [\n                            [/\\$\\{/, { token: \"delimiter.bracket\", next: \"@bracketCounting\" }],\n                            [/[^\\\\`$]+/, \"string\"],\n                            [/@escapes/, \"string.escape\"],\n                            [/\\\\./, \"string.escape.invalid\"],\n                            [/`/, \"string\", \"@pop\"]\n                        ],\n                        bracketCounting: [\n                            [/\\{/, \"delimiter.bracket\", \"@bracketCounting\"],\n                            [/\\}/, \"delimiter.bracket\", \"@pop\"], { include: \"common\" }\n                        ]\n                    }\n                },\n                s = {\n                    wordPattern: /(-?\\d*\\.\\d\\w*)|([^\\`\\~\\!\\@\\#\\%\\^\\&\\*\\(\\)\\-\\=\\+\\[\\{\\]\\}\\\\\\|\\;\\:\\'\\\"\\,\\.\\<\\>\\/\\?\\s]+)/g,\n                    comments: { lineComment: \"//\", blockComment: [\"/*\", \"*/\"] },\n                    brackets: [\n                        [\"{\", \"}\"],\n                        [\"[\", \"]\"],\n                        [\"(\", \")\"]\n                    ],\n                    onEnterRules: [{ beforeText: /^\\s*\\/\\*\\*(?!\\/)([^\\*]|\\*(?!\\/))*$/, afterText: /^\\s*\\*\\/$/, action: { indentAction: o.Mj.IndentAction.IndentOutdent, appendText: \" * \" } }, { beforeText: /^\\s*\\/\\*\\*(?!\\/)([^\\*]|\\*(?!\\/))*$/, action: { indentAction: o.Mj.IndentAction.None, appendText: \" * \" } }, { beforeText: /^(\\t|(\\ \\ ))*\\ \\*(\\ ([^\\*]|\\*(?!\\/))*)?$/, action: { indentAction: o.Mj.IndentAction.None, appendText: \"* \" } }, { beforeText: /^(\\t|(\\ \\ ))*\\ \\*\\/\\s*$/, action: { indentAction: o.Mj.IndentAction.None, removeText: 1 } }],\n                    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\"] }],\n                    folding: { markers: { start: new RegExp(\"^\\\\s*//\\\\s*#?region\\\\b\"), end: new RegExp(\"^\\\\s*//\\\\s*#?endregion\\\\b\") } }\n                },\n                r = { 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\", \"super\", \"switch\", \"symbol\", \"this\", \"throw\", \"true\", \"try\", \"typeof\", \"undefined\", \"var\", \"void\", \"while\", \"with\", \"yield\", \"async\", \"await\", \"of\"], typeKeywords: [], operators: i.operators, symbols: i.symbols, escapes: i.escapes, digits: i.digits, octaldigits: i.octaldigits, binarydigits: i.binarydigits, hexdigits: i.hexdigits, regexpctl: i.regexpctl, regexpesc: i.regexpesc, tokenizer: i.tokenizer }\n        }\n    }\n]);"
  },
  {
    "path": "app/main/dist/electron/585.js",
    "content": "\"use strict\";\n(global.webpackChunkclash_win = global.webpackChunkclash_win || []).push([\n    [585], {\n        23585: (e, n, t) => {\n            t.r(n), t.d(n, { conf: () => r, language: () => o });\n            var r = {\n                    comments: { lineComment: \"#\" },\n                    brackets: [\n                        [\"{\", \"}\"],\n                        [\"[\", \"]\"],\n                        [\"(\", \")\"]\n                    ],\n                    autoClosingPairs: [{ open: \"{\", close: \"}\" }, { open: \"[\", close: \"]\" }, { open: \"(\", close: \")\" }, { open: '\"', close: '\"' }, { open: \"'\", close: \"'\" }],\n                    surroundingPairs: [{ open: \"{\", close: \"}\" }, { open: \"[\", close: \"]\" }, { open: \"(\", close: \")\" }, { open: '\"', close: '\"' }, { open: \"'\", close: \"'\" }],\n                    folding: { offSide: !0 }\n                },\n                o = {\n                    tokenPostfix: \".yaml\",\n                    brackets: [{ token: \"delimiter.bracket\", open: \"{\", close: \"}\" }, { token: \"delimiter.square\", open: \"[\", close: \"]\" }],\n                    keywords: [\"true\", \"True\", \"TRUE\", \"false\", \"False\", \"FALSE\", \"null\", \"Null\", \"Null\", \"~\"],\n                    numberInteger: /(?:0|[+-]?[0-9]+)/,\n                    numberFloat: /(?:0|[+-]?[0-9]+)(?:\\.[0-9]+)?(?:e[-+][1-9][0-9]*)?/,\n                    numberOctal: /0o[0-7]+/,\n                    numberHex: /0x[0-9a-fA-F]+/,\n                    numberInfinity: /[+-]?\\.(?:inf|Inf|INF)/,\n                    numberNaN: /\\.(?:nan|Nan|NAN)/,\n                    numberDate: /\\d{4}-\\d\\d-\\d\\d([Tt ]\\d\\d:\\d\\d:\\d\\d(\\.\\d+)?(( ?[+-]\\d\\d?(:\\d\\d)?)|Z)?)?/,\n                    escapes: /\\\\(?:[btnfr\\\\\"']|[0-7][0-7]?|[0-3][0-7]{2})/,\n                    tokenizer: {\n                        root: [{ include: \"@whitespace\" }, { include: \"@comment\" },\n                            [/%[^ ]+.*$/, \"meta.directive\"],\n                            [/---/, \"operators.directivesEnd\"],\n                            [/\\.{3}/, \"operators.documentEnd\"],\n                            [/[-?:](?= )/, \"operators\"], { include: \"@anchor\" }, { include: \"@tagHandle\" }, { include: \"@flowCollections\" }, { include: \"@blockStyle\" },\n                            [/@numberInteger(?![ \\t]*\\S+)/, \"number\"],\n                            [/@numberFloat(?![ \\t]*\\S+)/, \"number.float\"],\n                            [/@numberOctal(?![ \\t]*\\S+)/, \"number.octal\"],\n                            [/@numberHex(?![ \\t]*\\S+)/, \"number.hex\"],\n                            [/@numberInfinity(?![ \\t]*\\S+)/, \"number.infinity\"],\n                            [/@numberNaN(?![ \\t]*\\S+)/, \"number.nan\"],\n                            [/@numberDate(?![ \\t]*\\S+)/, \"number.date\"],\n                            [/(\".*?\"|'.*?'|.*?)([ \\t]*)(:)( |$)/, [\"type\", \"white\", \"operators\", \"white\"]], { include: \"@flowScalars\" },\n                            [/[^#]+/, { cases: { \"@keywords\": \"keyword\", \"@default\": \"string\" } }]\n                        ],\n                        object: [{ include: \"@whitespace\" }, { include: \"@comment\" },\n                            [/\\}/, \"@brackets\", \"@pop\"],\n                            [/,/, \"delimiter.comma\"],\n                            [/:(?= )/, \"operators\"],\n                            [/(?:\".*?\"|'.*?'|[^,\\{\\[]+?)(?=: )/, \"type\"], { include: \"@flowCollections\" }, { include: \"@flowScalars\" }, { include: \"@tagHandle\" }, { include: \"@anchor\" }, { include: \"@flowNumber\" },\n                            [/[^\\},]+/, { cases: { \"@keywords\": \"keyword\", \"@default\": \"string\" } }]\n                        ],\n                        array: [{ include: \"@whitespace\" }, { include: \"@comment\" },\n                            [/\\]/, \"@brackets\", \"@pop\"],\n                            [/,/, \"delimiter.comma\"], { include: \"@flowCollections\" }, { include: \"@flowScalars\" }, { include: \"@tagHandle\" }, { include: \"@anchor\" }, { include: \"@flowNumber\" },\n                            [/[^\\],]+/, { cases: { \"@keywords\": \"keyword\", \"@default\": \"string\" } }]\n                        ],\n                        multiString: [\n                            [/^( +).+$/, \"string\", \"@multiStringContinued.$1\"]\n                        ],\n                        multiStringContinued: [\n                            [/^( *).+$/, { cases: { \"$1==$S2\": \"string\", \"@default\": { token: \"@rematch\", next: \"@popall\" } } }]\n                        ],\n                        whitespace: [\n                            [/[ \\t\\r\\n]+/, \"white\"]\n                        ],\n                        comment: [\n                            [/#.*$/, \"comment\"]\n                        ],\n                        flowCollections: [\n                            [/\\[/, \"@brackets\", \"@array\"],\n                            [/\\{/, \"@brackets\", \"@object\"]\n                        ],\n                        flowScalars: [\n                            [/\"([^\"\\\\]|\\\\.)*$/, \"string.invalid\"],\n                            [/'([^'\\\\]|\\\\.)*$/, \"string.invalid\"],\n                            [/'[^']*'/, \"string\"],\n                            [/\"/, \"string\", \"@doubleQuotedString\"]\n                        ],\n                        doubleQuotedString: [\n                            [/[^\\\\\"]+/, \"string\"],\n                            [/@escapes/, \"string.escape\"],\n                            [/\\\\./, \"string.escape.invalid\"],\n                            [/\"/, \"string\", \"@pop\"]\n                        ],\n                        blockStyle: [\n                            [/[>|][0-9]*[+-]?$/, \"operators\", \"@multiString\"]\n                        ],\n                        flowNumber: [\n                            [/@numberInteger(?=[ \\t]*[,\\]\\}])/, \"number\"],\n                            [/@numberFloat(?=[ \\t]*[,\\]\\}])/, \"number.float\"],\n                            [/@numberOctal(?=[ \\t]*[,\\]\\}])/, \"number.octal\"],\n                            [/@numberHex(?=[ \\t]*[,\\]\\}])/, \"number.hex\"],\n                            [/@numberInfinity(?=[ \\t]*[,\\]\\}])/, \"number.infinity\"],\n                            [/@numberNaN(?=[ \\t]*[,\\]\\}])/, \"number.nan\"],\n                            [/@numberDate(?=[ \\t]*[,\\]\\}])/, \"number.date\"]\n                        ],\n                        tagHandle: [\n                            [/\\![^ ]*/, \"tag\"]\n                        ],\n                        anchor: [\n                            [/[&*][^ ]+/, \"namespace\"]\n                        ]\n                    }\n                }\n        }\n    }\n]);"
  },
  {
    "path": "app/main/dist/electron/editor.worker.js",
    "content": "(() => {\n    \"use strict\";\n    const e = new class {\n        constructor() {\n            this.listeners = [], this.unexpectedErrorHandler = function(e) {\n                setTimeout((() => {\n                    if (e.stack) throw new Error(e.message + \"\\n\\n\" + e.stack);\n                    throw e\n                }), 0)\n            }\n        }\n        emit(e) {\n            this.listeners.forEach((t => {\n                t(e)\n            }))\n        }\n        onUnexpectedError(e) {\n            this.unexpectedErrorHandler(e), this.emit(e)\n        }\n        onUnexpectedExternalError(e) {\n            this.unexpectedErrorHandler(e)\n        }\n    };\n\n    function t(t) {\n        r(t) || e.onUnexpectedError(t)\n    }\n\n    function n(e) {\n        if (e instanceof Error) {\n            let {\n                name: t,\n                message: n\n            } = e;\n            return {\n                $isError: !0,\n                name: t,\n                message: n,\n                stack: e.stacktrace || e.stack\n            }\n        }\n        return e\n    }\n    const i = \"Canceled\";\n\n    function r(e) {\n        return e instanceof Error && e.name === i && e.message === i\n    }\n\n    function s(e) {\n        const t = this;\n        let n, i = !1;\n        return function() {\n            return i || (i = !0, n = e.apply(t, arguments)), n\n        }\n    }\n    var o;\n    ! function(e) {\n        e.is = function(e) {\n            return e && \"object\" == typeof e && \"function\" == typeof e[Symbol.iterator]\n        };\n        const t = Object.freeze([]);\n        e.empty = function() {\n            return t\n        }, e.single = function*(e) {\n            yield e\n        }, e.from = function(e) {\n            return e || t\n        }, e.isEmpty = function(e) {\n            return !e || !0 === e[Symbol.iterator]().next().done\n        }, e.first = function(e) {\n            return e[Symbol.iterator]().next().value\n        }, e.some = function(e, t) {\n            for (const n of e)\n                if (t(n)) return !0;\n            return !1\n        }, e.find = function(e, t) {\n            for (const n of e)\n                if (t(n)) return n\n        }, e.filter = function*(e, t) {\n            for (const n of e) t(n) && (yield n)\n        }, e.map = function*(e, t) {\n            let n = 0;\n            for (const i of e) yield t(i, n++)\n        }, e.concat = function*(...e) {\n            for (const t of e)\n                for (const e of t) yield e\n        }, e.concatNested = function*(e) {\n            for (const t of e)\n                for (const e of t) yield e\n        }, e.reduce = function(e, t, n) {\n            let i = n;\n            for (const n of e) i = t(i, n);\n            return i\n        }, e.slice = function*(e, t, n = e.length) {\n            for (t < 0 && (t += e.length), n < 0 ? n += e.length : n > e.length && (n = e.length); t < n; t++) yield e[t]\n        }, e.consume = function(t, n = Number.POSITIVE_INFINITY) {\n            const i = [];\n            if (0 === n) return [i, t];\n            const r = t[Symbol.iterator]();\n            for (let t = 0; t < n; t++) {\n                const t = r.next();\n                if (t.done) return [i, e.empty()];\n                i.push(t.value)\n            }\n            return [i, {\n                [Symbol.iterator]: () => r\n            }]\n        }, e.equals = function(e, t, n = ((e, t) => e === t)) {\n            const i = e[Symbol.iterator](),\n                r = t[Symbol.iterator]();\n            for (;;) {\n                const e = i.next(),\n                    t = r.next();\n                if (e.done !== t.done) return !1;\n                if (e.done) return !0;\n                if (!n(e.value, t.value)) return !1\n            }\n        }\n    }(o || (o = {}));\n    let a = null;\n    var l;\n\n    function u(e) {\n        return null == a || a.trackDisposable(e), e\n    }\n\n    function h(e) {\n        null == a || a.markAsDisposed(e)\n    }\n\n    function d(e, t) {\n        null == a || a.setParent(e, t)\n    }\n    class c extends Error {\n        constructor(e) {\n            super(`Encountered errors while disposing of store. Errors: [${e.join(\", \")}]`), this.errors = e\n        }\n    }\n\n    function m(e) {\n        if (o.is(e)) {\n            let t = [];\n            for (const n of e)\n                if (n) try {\n                    n.dispose()\n                } catch (e) {\n                    t.push(e)\n                }\n            if (1 === t.length) throw t[0];\n            if (t.length > 1) throw new c(t);\n            return Array.isArray(e) ? [] : e\n        }\n        if (e) return e.dispose(), e\n    }\n\n    function f(...e) {\n        const t = g((() => m(e)));\n        return function(e, t) {\n            if (a)\n                for (const n of e) a.setParent(n, t)\n        }(e, t), t\n    }\n\n    function g(e) {\n        const t = u({\n            dispose: s((() => {\n                h(t), e()\n            }))\n        });\n        return t\n    }\n    class _ {\n        constructor() {\n            this._toDispose = new Set, this._isDisposed = !1, u(this)\n        }\n        dispose() {\n            this._isDisposed || (h(this), this._isDisposed = !0, this.clear())\n        }\n        clear() {\n            try {\n                m(this._toDispose.values())\n            } finally {\n                this._toDispose.clear()\n            }\n        }\n        add(e) {\n            if (!e) return e;\n            if (e === this) throw new Error(\"Cannot register a disposable on itself!\");\n            return d(e, this), this._isDisposed ? _.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(e), e\n        }\n    }\n    _.DISABLE_DISPOSED_WARNING = !1;\n    class p {\n        constructor() {\n            this._store = new _, u(this), d(this._store, this)\n        }\n        dispose() {\n            h(this), this._store.dispose()\n        }\n        _register(e) {\n            if (e === this) throw new Error(\"Cannot register a disposable on itself!\");\n            return this._store.add(e)\n        }\n    }\n    p.None = Object.freeze({\n        dispose() {}\n    });\n    class C {\n        constructor(e) {\n            this.element = e, this.next = C.Undefined, this.prev = C.Undefined\n        }\n    }\n    C.Undefined = new C(void 0);\n    class L {\n        constructor() {\n            this._first = C.Undefined, this._last = C.Undefined, this._size = 0\n        }\n        get size() {\n            return this._size\n        }\n        isEmpty() {\n            return this._first === C.Undefined\n        }\n        clear() {\n            let e = this._first;\n            for (; e !== C.Undefined;) {\n                const t = e.next;\n                e.prev = C.Undefined, e.next = C.Undefined, e = t\n            }\n            this._first = C.Undefined, this._last = C.Undefined, this._size = 0\n        }\n        unshift(e) {\n            return this._insert(e, !1)\n        }\n        push(e) {\n            return this._insert(e, !0)\n        }\n        _insert(e, t) {\n            const n = new C(e);\n            if (this._first === C.Undefined) this._first = n, this._last = n;\n            else if (t) {\n                const e = this._last;\n                this._last = n, n.prev = e, e.next = n\n            } else {\n                const e = this._first;\n                this._first = n, n.next = e, e.prev = n\n            }\n            this._size += 1;\n            let i = !1;\n            return () => {\n                i || (i = !0, this._remove(n))\n            }\n        }\n        shift() {\n            if (this._first !== C.Undefined) {\n                const e = this._first.element;\n                return this._remove(this._first), e\n            }\n        }\n        pop() {\n            if (this._last !== C.Undefined) {\n                const e = this._last.element;\n                return this._remove(this._last), e\n            }\n        }\n        _remove(e) {\n            if (e.prev !== C.Undefined && e.next !== C.Undefined) {\n                const t = e.prev;\n                t.next = e.next, e.next.prev = t\n            } else e.prev === C.Undefined && e.next === C.Undefined ? (this._first = C.Undefined, this._last = C.Undefined) : e.next === C.Undefined ? (this._last = this._last.prev, this._last.next = C.Undefined) : e.prev === C.Undefined && (this._first = this._first.next, this._first.prev = C.Undefined);\n            this._size -= 1\n        }*[Symbol.iterator]() {\n            let e = this._first;\n            for (; e !== C.Undefined;) yield e.element, e = e.next\n        }\n    }\n    const S = \"en\";\n    let b, N, E = !1,\n        y = !1,\n        A = !1,\n        w = !1,\n        v = !1,\n        M = !1,\n        K = !1,\n        O = null,\n        T = null;\n    const R = \"object\" == typeof self ? self : \"object\" == typeof global ? global : {};\n    let V;\n    void 0 !== R.vscode && void 0 !== R.vscode.process ? V = R.vscode.process : \"undefined\" != typeof process && (V = process);\n    const I = \"string\" == typeof(null === (l = null == V ? void 0 : V.versions) || void 0 === l ? void 0 : l.electron) && \"renderer\" === V.type;\n    if (\"object\" != typeof navigator || I)\n        if (\"object\" == typeof V) {\n            E = \"win32\" === V.platform, y = \"darwin\" === V.platform, A = \"linux\" === V.platform, w = A && !!V.env.SNAP && !!V.env.SNAP_REVISION, b = S, O = S;\n            const e = V.env.VSCODE_NLS_CONFIG;\n            if (e) try {\n                const t = JSON.parse(e),\n                    n = t.availableLanguages[\"*\"];\n                b = t.locale, O = n || S, T = t._translationsConfigFile\n            } catch (e) {}\n            v = !0\n        } else console.error(\"Unable to resolve platform.\");\n    else N = navigator.userAgent, E = N.indexOf(\"Windows\") >= 0, y = N.indexOf(\"Macintosh\") >= 0, K = (N.indexOf(\"Macintosh\") >= 0 || N.indexOf(\"iPad\") >= 0 || N.indexOf(\"iPhone\") >= 0) && !!navigator.maxTouchPoints && navigator.maxTouchPoints > 0, A = N.indexOf(\"Linux\") >= 0, M = !0, b = navigator.language, O = b;\n    let P = 0;\n    y ? P = 1 : E ? P = 3 : A && (P = 2);\n    const x = E,\n        k = y,\n        D = function() {\n            if (R.setImmediate) return R.setImmediate.bind(R);\n            if (\"function\" == typeof R.postMessage && !R.importScripts) {\n                let e = [];\n                R.addEventListener(\"message\", (t => {\n                    if (t.data && t.data.vscodeSetImmediateId)\n                        for (let n = 0, i = e.length; n < i; n++) {\n                            const i = e[n];\n                            if (i.id === t.data.vscodeSetImmediateId) return e.splice(n, 1), void i.callback()\n                        }\n                }));\n                let t = 0;\n                return n => {\n                    const i = ++t;\n                    e.push({\n                        id: i,\n                        callback: n\n                    }), R.postMessage({\n                        vscodeSetImmediateId: i\n                    }, \"*\")\n                }\n            }\n            if (\"function\" == typeof(null == V ? void 0 : V.nextTick)) return V.nextTick.bind(V);\n            const e = Promise.resolve();\n            return t => e.then(t)\n        }();\n    const F = R.performance && \"function\" == typeof R.performance.now;\n    class U {\n        constructor(e) {\n            this._highResolution = F && e, this._startTime = this._now(), this._stopTime = -1\n        }\n        static create(e = !0) {\n            return new U(e)\n        }\n        stop() {\n            this._stopTime = this._now()\n        }\n        elapsed() {\n            return -1 !== this._stopTime ? this._stopTime - this._startTime : this._now() - this._startTime\n        }\n        _now() {\n            return this._highResolution ? R.performance.now() : Date.now()\n        }\n    }\n    var B;\n    ! function(e) {\n        function t(e) {\n            return (t, n = null, i) => {\n                let r, s = !1;\n                return r = e((e => {\n                    if (!s) return r ? r.dispose() : s = !0, t.call(n, e)\n                }), null, i), s && r.dispose(), r\n            }\n        }\n\n        function n(e, t) {\n            return o(((n, i = null, r) => e((e => n.call(i, t(e))), null, r)))\n        }\n\n        function i(e, t) {\n            return o(((n, i = null, r) => e((e => {\n                t(e), n.call(i, e)\n            }), null, r)))\n        }\n\n        function r(e, t) {\n            return o(((n, i = null, r) => e((e => t(e) && n.call(i, e)), null, r)))\n        }\n\n        function s(e, t, i) {\n            let r = i;\n            return n(e, (e => (r = t(r, e), r)))\n        }\n\n        function o(e) {\n            let t;\n            const n = new H({\n                onFirstListenerAdd() {\n                    t = e(n.fire, n)\n                },\n                onLastListenerRemove() {\n                    t.dispose()\n                }\n            });\n            return n.event\n        }\n\n        function a(e, t, n = 100, i = !1, r) {\n            let s, o, a, l = 0;\n            const u = new H({\n                leakWarningThreshold: r,\n                onFirstListenerAdd() {\n                    s = e((e => {\n                        l++, o = t(o, e), i && !a && (u.fire(o), o = void 0), clearTimeout(a), a = setTimeout((() => {\n                            const e = o;\n                            o = void 0, a = void 0, (!i || l > 1) && u.fire(e), l = 0\n                        }), n)\n                    }))\n                },\n                onLastListenerRemove() {\n                    s.dispose()\n                }\n            });\n            return u.event\n        }\n\n        function l(e, t = ((e, t) => e === t)) {\n            let n, i = !0;\n            return r(e, (e => {\n                const r = i || !t(e, n);\n                return i = !1, n = e, r\n            }))\n        }\n        e.None = () => p.None, e.once = t, e.map = n, e.forEach = i, e.filter = r, e.signal = function(e) {\n            return e\n        }, e.any = function(...e) {\n            return (t, n = null, i) => f(...e.map((e => e((e => t.call(n, e)), null, i))))\n        }, e.reduce = s, e.debounce = a, e.latch = l, e.split = function(t, n) {\n            return [e.filter(t, n), e.filter(t, (e => !n(e)))]\n        }, e.buffer = function(e, t = !1, n = []) {\n            let i = n.slice(),\n                r = e((e => {\n                    i ? i.push(e) : o.fire(e)\n                }));\n            const s = () => {\n                    i && i.forEach((e => o.fire(e))), i = null\n                },\n                o = new H({\n                    onFirstListenerAdd() {\n                        r || (r = e((e => o.fire(e))))\n                    },\n                    onFirstListenerDidAdd() {\n                        i && (t ? setTimeout(s) : s())\n                    },\n                    onLastListenerRemove() {\n                        r && r.dispose(), r = null\n                    }\n                });\n            return o.event\n        };\n        class u {\n            constructor(e) {\n                this.event = e\n            }\n            map(e) {\n                return new u(n(this.event, e))\n            }\n            forEach(e) {\n                return new u(i(this.event, e))\n            }\n            filter(e) {\n                return new u(r(this.event, e))\n            }\n            reduce(e, t) {\n                return new u(s(this.event, e, t))\n            }\n            latch() {\n                return new u(l(this.event))\n            }\n            debounce(e, t = 100, n = !1, i) {\n                return new u(a(this.event, e, t, n, i))\n            }\n            on(e, t, n) {\n                return this.event(e, t, n)\n            }\n            once(e, n, i) {\n                return t(this.event)(e, n, i)\n            }\n        }\n        e.chain = function(e) {\n            return new u(e)\n        }, e.fromNodeEventEmitter = function(e, t, n = (e => e)) {\n            const i = (...e) => r.fire(n(...e)),\n                r = new H({\n                    onFirstListenerAdd: () => e.on(t, i),\n                    onLastListenerRemove: () => e.removeListener(t, i)\n                });\n            return r.event\n        }, e.fromDOMEventEmitter = function(e, t, n = (e => e)) {\n            const i = (...e) => r.fire(n(...e)),\n                r = new H({\n                    onFirstListenerAdd: () => e.addEventListener(t, i),\n                    onLastListenerRemove: () => e.removeEventListener(t, i)\n                });\n            return r.event\n        }, e.toPromise = function(e) {\n            return new Promise((n => t(e)(n)))\n        }\n    }(B || (B = {}));\n    class q {\n        constructor(e) {\n            this._listenerCount = 0, this._invocationCount = 0, this._elapsedOverall = 0, this._name = `${e}_${q._idPool++}`\n        }\n        start(e) {\n            this._stopWatch = new U(!0), this._listenerCount = e\n        }\n        stop() {\n            if (this._stopWatch) {\n                const e = this._stopWatch.elapsed();\n                this._elapsedOverall += e, this._invocationCount += 1, console.info(`did FIRE ${this._name}: elapsed_ms: ${e.toFixed(5)}, listener: ${this._listenerCount} (elapsed_overall: ${this._elapsedOverall.toFixed(2)}, invocations: ${this._invocationCount})`), this._stopWatch = void 0\n            }\n        }\n    }\n    q._idPool = 0;\n    class H {\n        constructor(e) {\n            var t;\n            this._disposed = !1, this._options = e, this._leakageMon = void 0, this._perfMon = (null === (t = this._options) || void 0 === t ? void 0 : t._profName) ? new q(this._options._profName) : void 0\n        }\n        get event() {\n            return this._event || (this._event = (e, t, n) => {\n                var i;\n                this._listeners || (this._listeners = new L);\n                const r = this._listeners.isEmpty();\n                r && this._options && this._options.onFirstListenerAdd && this._options.onFirstListenerAdd(this);\n                const s = this._listeners.push(t ? [e, t] : e);\n                r && this._options && this._options.onFirstListenerDidAdd && this._options.onFirstListenerDidAdd(this), this._options && this._options.onListenerDidAdd && this._options.onListenerDidAdd(this, e, t);\n                const o = null === (i = this._leakageMon) || void 0 === i ? void 0 : i.check(this._listeners.size),\n                    a = g((() => {\n                        if (o && o(), !this._disposed && (s(), this._options && this._options.onLastListenerRemove)) {\n                            this._listeners && !this._listeners.isEmpty() || this._options.onLastListenerRemove(this)\n                        }\n                    }));\n                return n instanceof _ ? n.add(a) : Array.isArray(n) && n.push(a), a\n            }), this._event\n        }\n        fire(e) {\n            var n, i;\n            if (this._listeners) {\n                this._deliveryQueue || (this._deliveryQueue = new L);\n                for (let t of this._listeners) this._deliveryQueue.push([t, e]);\n                for (null === (n = this._perfMon) || void 0 === n || n.start(this._deliveryQueue.size); this._deliveryQueue.size > 0;) {\n                    const [e, n] = this._deliveryQueue.shift();\n                    try {\n                        \"function\" == typeof e ? e.call(void 0, n) : e[0].call(e[1], n)\n                    } catch (e) {\n                        t(e)\n                    }\n                }\n                null === (i = this._perfMon) || void 0 === i || i.stop()\n            }\n        }\n        dispose() {\n            var e, t, n, i, r;\n            this._disposed || (this._disposed = !0, null === (e = this._listeners) || void 0 === e || e.clear(), null === (t = this._deliveryQueue) || void 0 === t || t.clear(), null === (i = null === (n = this._options) || void 0 === n ? void 0 : n.onLastListenerRemove) || void 0 === i || i.call(n), null === (r = this._leakageMon) || void 0 === r || r.dispose())\n        }\n    }\n\n    function W(e) {\n        const t = [];\n        for (const n of function(e) {\n                let t = [],\n                    n = Object.getPrototypeOf(e);\n                for (; Object.prototype !== n;) t = t.concat(Object.getOwnPropertyNames(n)), n = Object.getPrototypeOf(n);\n                return t\n            }(e)) \"function\" == typeof e[n] && t.push(n);\n        return t\n    }\n\n    function $(e) {\n        return e >= 65 && e <= 90\n    }\n\n    function j(e) {\n        return 55296 <= e && e <= 56319\n    }\n\n    function G(e) {\n        return 56320 <= e && e <= 57343\n    }\n\n    function z(e, t) {\n        return t - 56320 + (e - 55296 << 10) + 65536\n    }\n    String.fromCharCode(65279);\n    class Y {\n        constructor() {\n            this._data = JSON.parse(\"[0,0,0,51592,51592,11,44424,44424,11,72251,72254,5,7150,7150,7,48008,48008,11,55176,55176,11,128420,128420,14,3276,3277,5,9979,9980,14,46216,46216,11,49800,49800,11,53384,53384,11,70726,70726,5,122915,122916,5,129320,129327,14,2558,2558,5,5906,5908,5,9762,9763,14,43360,43388,8,45320,45320,11,47112,47112,11,48904,48904,11,50696,50696,11,52488,52488,11,54280,54280,11,70082,70083,1,71350,71350,7,73111,73111,5,127892,127893,14,128726,128727,14,129473,129474,14,2027,2035,5,2901,2902,5,3784,3789,5,6754,6754,5,8418,8420,5,9877,9877,14,11088,11088,14,44008,44008,5,44872,44872,11,45768,45768,11,46664,46664,11,47560,47560,11,48456,48456,11,49352,49352,11,50248,50248,11,51144,51144,11,52040,52040,11,52936,52936,11,53832,53832,11,54728,54728,11,69811,69814,5,70459,70460,5,71096,71099,7,71998,71998,5,72874,72880,5,119149,119149,7,127374,127374,14,128335,128335,14,128482,128482,14,128765,128767,14,129399,129400,14,129680,129685,14,1476,1477,5,2377,2380,7,2759,2760,5,3137,3140,7,3458,3459,7,4153,4154,5,6432,6434,5,6978,6978,5,7675,7679,5,9723,9726,14,9823,9823,14,9919,9923,14,10035,10036,14,42736,42737,5,43596,43596,5,44200,44200,11,44648,44648,11,45096,45096,11,45544,45544,11,45992,45992,11,46440,46440,11,46888,46888,11,47336,47336,11,47784,47784,11,48232,48232,11,48680,48680,11,49128,49128,11,49576,49576,11,50024,50024,11,50472,50472,11,50920,50920,11,51368,51368,11,51816,51816,11,52264,52264,11,52712,52712,11,53160,53160,11,53608,53608,11,54056,54056,11,54504,54504,11,54952,54952,11,68108,68111,5,69933,69940,5,70197,70197,7,70498,70499,7,70845,70845,5,71229,71229,5,71727,71735,5,72154,72155,5,72344,72345,5,73023,73029,5,94095,94098,5,121403,121452,5,126981,127182,14,127538,127546,14,127990,127990,14,128391,128391,14,128445,128449,14,128500,128505,14,128752,128752,14,129160,129167,14,129356,129356,14,129432,129442,14,129648,129651,14,129751,131069,14,173,173,4,1757,1757,1,2274,2274,1,2494,2494,5,2641,2641,5,2876,2876,5,3014,3016,7,3262,3262,7,3393,3396,5,3570,3571,7,3968,3972,5,4228,4228,7,6086,6086,5,6679,6680,5,6912,6915,5,7080,7081,5,7380,7392,5,8252,8252,14,9096,9096,14,9748,9749,14,9784,9786,14,9833,9850,14,9890,9894,14,9938,9938,14,9999,9999,14,10085,10087,14,12349,12349,14,43136,43137,7,43454,43456,7,43755,43755,7,44088,44088,11,44312,44312,11,44536,44536,11,44760,44760,11,44984,44984,11,45208,45208,11,45432,45432,11,45656,45656,11,45880,45880,11,46104,46104,11,46328,46328,11,46552,46552,11,46776,46776,11,47000,47000,11,47224,47224,11,47448,47448,11,47672,47672,11,47896,47896,11,48120,48120,11,48344,48344,11,48568,48568,11,48792,48792,11,49016,49016,11,49240,49240,11,49464,49464,11,49688,49688,11,49912,49912,11,50136,50136,11,50360,50360,11,50584,50584,11,50808,50808,11,51032,51032,11,51256,51256,11,51480,51480,11,51704,51704,11,51928,51928,11,52152,52152,11,52376,52376,11,52600,52600,11,52824,52824,11,53048,53048,11,53272,53272,11,53496,53496,11,53720,53720,11,53944,53944,11,54168,54168,11,54392,54392,11,54616,54616,11,54840,54840,11,55064,55064,11,65438,65439,5,69633,69633,5,69837,69837,1,70018,70018,7,70188,70190,7,70368,70370,7,70465,70468,7,70712,70719,5,70835,70840,5,70850,70851,5,71132,71133,5,71340,71340,7,71458,71461,5,71985,71989,7,72002,72002,7,72193,72202,5,72281,72283,5,72766,72766,7,72885,72886,5,73104,73105,5,92912,92916,5,113824,113827,4,119173,119179,5,121505,121519,5,125136,125142,5,127279,127279,14,127489,127490,14,127570,127743,14,127900,127901,14,128254,128254,14,128369,128370,14,128400,128400,14,128425,128432,14,128468,128475,14,128489,128494,14,128715,128720,14,128745,128745,14,128759,128760,14,129004,129023,14,129296,129304,14,129340,129342,14,129388,129392,14,129404,129407,14,129454,129455,14,129485,129487,14,129659,129663,14,129719,129727,14,917536,917631,5,13,13,2,1160,1161,5,1564,1564,4,1807,1807,1,2085,2087,5,2363,2363,7,2402,2403,5,2507,2508,7,2622,2624,7,2691,2691,7,2786,2787,5,2881,2884,5,3006,3006,5,3072,3072,5,3170,3171,5,3267,3268,7,3330,3331,7,3406,3406,1,3538,3540,5,3655,3662,5,3897,3897,5,4038,4038,5,4184,4185,5,4352,4447,8,6068,6069,5,6155,6157,5,6448,6449,7,6742,6742,5,6783,6783,5,6966,6970,5,7042,7042,7,7143,7143,7,7212,7219,5,7412,7412,5,8206,8207,4,8294,8303,4,8596,8601,14,9410,9410,14,9742,9742,14,9757,9757,14,9770,9770,14,9794,9794,14,9828,9828,14,9855,9855,14,9882,9882,14,9900,9903,14,9929,9933,14,9963,9967,14,9987,9988,14,10006,10006,14,10062,10062,14,10175,10175,14,11744,11775,5,42607,42607,5,43043,43044,7,43263,43263,5,43444,43445,7,43569,43570,5,43698,43700,5,43766,43766,5,44032,44032,11,44144,44144,11,44256,44256,11,44368,44368,11,44480,44480,11,44592,44592,11,44704,44704,11,44816,44816,11,44928,44928,11,45040,45040,11,45152,45152,11,45264,45264,11,45376,45376,11,45488,45488,11,45600,45600,11,45712,45712,11,45824,45824,11,45936,45936,11,46048,46048,11,46160,46160,11,46272,46272,11,46384,46384,11,46496,46496,11,46608,46608,11,46720,46720,11,46832,46832,11,46944,46944,11,47056,47056,11,47168,47168,11,47280,47280,11,47392,47392,11,47504,47504,11,47616,47616,11,47728,47728,11,47840,47840,11,47952,47952,11,48064,48064,11,48176,48176,11,48288,48288,11,48400,48400,11,48512,48512,11,48624,48624,11,48736,48736,11,48848,48848,11,48960,48960,11,49072,49072,11,49184,49184,11,49296,49296,11,49408,49408,11,49520,49520,11,49632,49632,11,49744,49744,11,49856,49856,11,49968,49968,11,50080,50080,11,50192,50192,11,50304,50304,11,50416,50416,11,50528,50528,11,50640,50640,11,50752,50752,11,50864,50864,11,50976,50976,11,51088,51088,11,51200,51200,11,51312,51312,11,51424,51424,11,51536,51536,11,51648,51648,11,51760,51760,11,51872,51872,11,51984,51984,11,52096,52096,11,52208,52208,11,52320,52320,11,52432,52432,11,52544,52544,11,52656,52656,11,52768,52768,11,52880,52880,11,52992,52992,11,53104,53104,11,53216,53216,11,53328,53328,11,53440,53440,11,53552,53552,11,53664,53664,11,53776,53776,11,53888,53888,11,54000,54000,11,54112,54112,11,54224,54224,11,54336,54336,11,54448,54448,11,54560,54560,11,54672,54672,11,54784,54784,11,54896,54896,11,55008,55008,11,55120,55120,11,64286,64286,5,66272,66272,5,68900,68903,5,69762,69762,7,69817,69818,5,69927,69931,5,70003,70003,5,70070,70078,5,70094,70094,7,70194,70195,7,70206,70206,5,70400,70401,5,70463,70463,7,70475,70477,7,70512,70516,5,70722,70724,5,70832,70832,5,70842,70842,5,70847,70848,5,71088,71089,7,71102,71102,7,71219,71226,5,71231,71232,5,71342,71343,7,71453,71455,5,71463,71467,5,71737,71738,5,71995,71996,5,72000,72000,7,72145,72147,7,72160,72160,5,72249,72249,7,72273,72278,5,72330,72342,5,72752,72758,5,72850,72871,5,72882,72883,5,73018,73018,5,73031,73031,5,73109,73109,5,73461,73462,7,94031,94031,5,94192,94193,7,119142,119142,7,119155,119162,4,119362,119364,5,121476,121476,5,122888,122904,5,123184,123190,5,126976,126979,14,127184,127231,14,127344,127345,14,127405,127461,14,127514,127514,14,127561,127567,14,127778,127779,14,127896,127896,14,127985,127986,14,127995,127999,5,128326,128328,14,128360,128366,14,128378,128378,14,128394,128397,14,128405,128406,14,128422,128423,14,128435,128443,14,128453,128464,14,128479,128480,14,128484,128487,14,128496,128498,14,128640,128709,14,128723,128724,14,128736,128741,14,128747,128748,14,128755,128755,14,128762,128762,14,128981,128991,14,129096,129103,14,129292,129292,14,129311,129311,14,129329,129330,14,129344,129349,14,129360,129374,14,129394,129394,14,129402,129402,14,129413,129425,14,129445,129450,14,129466,129471,14,129483,129483,14,129511,129535,14,129653,129655,14,129667,129670,14,129705,129711,14,129731,129743,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,2307,2307,7,2366,2368,7,2382,2383,7,2434,2435,7,2497,2500,5,2519,2519,5,2563,2563,7,2631,2632,5,2677,2677,5,2750,2752,7,2763,2764,7,2817,2817,5,2879,2879,5,2891,2892,7,2914,2915,5,3008,3008,5,3021,3021,5,3076,3076,5,3146,3149,5,3202,3203,7,3264,3265,7,3271,3272,7,3298,3299,5,3390,3390,5,3402,3404,7,3426,3427,5,3535,3535,5,3544,3550,7,3635,3635,7,3763,3763,7,3893,3893,5,3953,3966,5,3981,3991,5,4145,4145,7,4157,4158,5,4209,4212,5,4237,4237,5,4520,4607,10,5970,5971,5,6071,6077,5,6089,6099,5,6277,6278,5,6439,6440,5,6451,6456,7,6683,6683,5,6744,6750,5,6765,6770,7,6846,6846,5,6964,6964,5,6972,6972,5,7019,7027,5,7074,7077,5,7083,7085,5,7146,7148,7,7154,7155,7,7222,7223,5,7394,7400,5,7416,7417,5,8204,8204,5,8233,8233,4,8288,8292,4,8413,8416,5,8482,8482,14,8986,8987,14,9193,9203,14,9654,9654,14,9733,9733,14,9745,9745,14,9752,9752,14,9760,9760,14,9766,9766,14,9774,9775,14,9792,9792,14,9800,9811,14,9825,9826,14,9831,9831,14,9852,9853,14,9872,9873,14,9880,9880,14,9885,9887,14,9896,9897,14,9906,9916,14,9926,9927,14,9936,9936,14,9941,9960,14,9974,9974,14,9982,9985,14,9992,9997,14,10002,10002,14,10017,10017,14,10055,10055,14,10071,10071,14,10145,10145,14,11013,11015,14,11503,11505,5,12334,12335,5,12951,12951,14,42612,42621,5,43014,43014,5,43047,43047,7,43204,43205,5,43335,43345,5,43395,43395,7,43450,43451,7,43561,43566,5,43573,43574,5,43644,43644,5,43710,43711,5,43758,43759,7,44005,44005,5,44012,44012,7,44060,44060,11,44116,44116,11,44172,44172,11,44228,44228,11,44284,44284,11,44340,44340,11,44396,44396,11,44452,44452,11,44508,44508,11,44564,44564,11,44620,44620,11,44676,44676,11,44732,44732,11,44788,44788,11,44844,44844,11,44900,44900,11,44956,44956,11,45012,45012,11,45068,45068,11,45124,45124,11,45180,45180,11,45236,45236,11,45292,45292,11,45348,45348,11,45404,45404,11,45460,45460,11,45516,45516,11,45572,45572,11,45628,45628,11,45684,45684,11,45740,45740,11,45796,45796,11,45852,45852,11,45908,45908,11,45964,45964,11,46020,46020,11,46076,46076,11,46132,46132,11,46188,46188,11,46244,46244,11,46300,46300,11,46356,46356,11,46412,46412,11,46468,46468,11,46524,46524,11,46580,46580,11,46636,46636,11,46692,46692,11,46748,46748,11,46804,46804,11,46860,46860,11,46916,46916,11,46972,46972,11,47028,47028,11,47084,47084,11,47140,47140,11,47196,47196,11,47252,47252,11,47308,47308,11,47364,47364,11,47420,47420,11,47476,47476,11,47532,47532,11,47588,47588,11,47644,47644,11,47700,47700,11,47756,47756,11,47812,47812,11,47868,47868,11,47924,47924,11,47980,47980,11,48036,48036,11,48092,48092,11,48148,48148,11,48204,48204,11,48260,48260,11,48316,48316,11,48372,48372,11,48428,48428,11,48484,48484,11,48540,48540,11,48596,48596,11,48652,48652,11,48708,48708,11,48764,48764,11,48820,48820,11,48876,48876,11,48932,48932,11,48988,48988,11,49044,49044,11,49100,49100,11,49156,49156,11,49212,49212,11,49268,49268,11,49324,49324,11,49380,49380,11,49436,49436,11,49492,49492,11,49548,49548,11,49604,49604,11,49660,49660,11,49716,49716,11,49772,49772,11,49828,49828,11,49884,49884,11,49940,49940,11,49996,49996,11,50052,50052,11,50108,50108,11,50164,50164,11,50220,50220,11,50276,50276,11,50332,50332,11,50388,50388,11,50444,50444,11,50500,50500,11,50556,50556,11,50612,50612,11,50668,50668,11,50724,50724,11,50780,50780,11,50836,50836,11,50892,50892,11,50948,50948,11,51004,51004,11,51060,51060,11,51116,51116,11,51172,51172,11,51228,51228,11,51284,51284,11,51340,51340,11,51396,51396,11,51452,51452,11,51508,51508,11,51564,51564,11,51620,51620,11,51676,51676,11,51732,51732,11,51788,51788,11,51844,51844,11,51900,51900,11,51956,51956,11,52012,52012,11,52068,52068,11,52124,52124,11,52180,52180,11,52236,52236,11,52292,52292,11,52348,52348,11,52404,52404,11,52460,52460,11,52516,52516,11,52572,52572,11,52628,52628,11,52684,52684,11,52740,52740,11,52796,52796,11,52852,52852,11,52908,52908,11,52964,52964,11,53020,53020,11,53076,53076,11,53132,53132,11,53188,53188,11,53244,53244,11,53300,53300,11,53356,53356,11,53412,53412,11,53468,53468,11,53524,53524,11,53580,53580,11,53636,53636,11,53692,53692,11,53748,53748,11,53804,53804,11,53860,53860,11,53916,53916,11,53972,53972,11,54028,54028,11,54084,54084,11,54140,54140,11,54196,54196,11,54252,54252,11,54308,54308,11,54364,54364,11,54420,54420,11,54476,54476,11,54532,54532,11,54588,54588,11,54644,54644,11,54700,54700,11,54756,54756,11,54812,54812,11,54868,54868,11,54924,54924,11,54980,54980,11,55036,55036,11,55092,55092,11,55148,55148,11,55216,55238,9,65056,65071,5,65529,65531,4,68097,68099,5,68159,68159,5,69446,69456,5,69688,69702,5,69808,69810,7,69815,69816,7,69821,69821,1,69888,69890,5,69932,69932,7,69957,69958,7,70016,70017,5,70067,70069,7,70079,70080,7,70089,70092,5,70095,70095,5,70191,70193,5,70196,70196,5,70198,70199,5,70367,70367,5,70371,70378,5,70402,70403,7,70462,70462,5,70464,70464,5,70471,70472,7,70487,70487,5,70502,70508,5,70709,70711,7,70720,70721,7,70725,70725,7,70750,70750,5,70833,70834,7,70841,70841,7,70843,70844,7,70846,70846,7,70849,70849,7,71087,71087,5,71090,71093,5,71100,71101,5,71103,71104,5,71216,71218,7,71227,71228,7,71230,71230,7,71339,71339,5,71341,71341,5,71344,71349,5,71351,71351,5,71456,71457,7,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,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,123628,123631,5,125252,125258,5,126980,126980,14,127183,127183,14,127245,127247,14,127340,127343,14,127358,127359,14,127377,127386,14,127462,127487,6,127491,127503,14,127535,127535,14,127548,127551,14,127568,127569,14,127744,127777,14,127780,127891,14,127894,127895,14,127897,127899,14,127902,127984,14,127987,127989,14,127991,127994,14,128000,128253,14,128255,128317,14,128329,128334,14,128336,128359,14,128367,128368,14,128371,128377,14,128379,128390,14,128392,128393,14,128398,128399,14,128401,128404,14,128407,128419,14,128421,128421,14,128424,128424,14,128433,128434,14,128444,128444,14,128450,128452,14,128465,128467,14,128476,128478,14,128481,128481,14,128483,128483,14,128488,128488,14,128495,128495,14,128499,128499,14,128506,128591,14,128710,128714,14,128721,128722,14,128725,128725,14,128728,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,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,129664,129666,14,129671,129679,14,129686,129704,14,129712,129718,14,129728,129730,14,129744,129750,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,2259,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,3134,3136,5,3142,3144,5,3157,3158,5,3201,3201,5,3260,3260,5,3263,3263,5,3266,3266,5,3270,3270,5,3274,3275,7,3285,3286,5,3328,3329,5,3387,3388,5,3391,3392,7,3398,3400,7,3405,3405,5,3415,3415,5,3457,3457,5,3530,3530,5,3536,3537,7,3542,3542,5,3551,3551,5,3633,3633,5,3636,3642,5,3761,3761,5,3764,3772,5,3864,3865,5,3895,3895,5,3902,3903,7,3967,3967,7,3974,3975,5,3993,4028,5,4141,4144,5,4146,4151,5,4155,4156,7,4182,4183,7,4190,4192,5,4226,4226,5,4229,4230,5,4253,4253,5,4448,4519,9,4957,4959,5,5938,5940,5,6002,6003,5,6070,6070,7,6078,6085,7,6087,6088,7,6109,6109,5,6158,6158,4,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,6848,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,7673,5,8203,8203,4,8205,8205,13,8232,8232,4,8234,8238,4,8265,8265,14,8293,8293,4,8400,8412,5,8417,8417,5,8421,8432,5,8505,8505,14,8617,8618,14,9000,9000,14,9167,9167,14,9208,9210,14,9642,9643,14,9664,9664,14,9728,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,9776,9783,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,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,9935,14,9937,9937,14,9939,9940,14,9961,9962,14,9968,9973,14,9975,9978,14,9981,9981,14,9986,9986,14,9989,9989,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,10084,14,10133,10135,14,10160,10160,14,10548,10549,14,11035,11036,14,11093,11093,14,11647,11647,5,12330,12333,5,12336,12336,14,12441,12442,5,12953,12953,14,42608,42610,5,42654,42655,5,43010,43010,5,43019,43019,5,43045,43046,5,43052,43052,5,43188,43203,7,43232,43249,5,43302,43309,5,43346,43347,7,43392,43394,5,43443,43443,5,43446,43449,5,43452,43453,5,43493,43493,5,43567,43568,7,43571,43572,7,43587,43587,5,43597,43597,7,43696,43696,5,43703,43704,5,43713,43713,5,43756,43757,5,43765,43765,7,44003,44004,7,44006,44007,7,44009,44010,7,44013,44013,5,44033,44059,12,44061,44087,12,44089,44115,12,44117,44143,12,44145,44171,12,44173,44199,12,44201,44227,12,44229,44255,12,44257,44283,12,44285,44311,12,44313,44339,12,44341,44367,12,44369,44395,12,44397,44423,12,44425,44451,12,44453,44479,12,44481,44507,12,44509,44535,12,44537,44563,12,44565,44591,12,44593,44619,12,44621,44647,12,44649,44675,12,44677,44703,12,44705,44731,12,44733,44759,12,44761,44787,12,44789,44815,12,44817,44843,12,44845,44871,12,44873,44899,12,44901,44927,12,44929,44955,12,44957,44983,12,44985,45011,12,45013,45039,12,45041,45067,12,45069,45095,12,45097,45123,12,45125,45151,12,45153,45179,12,45181,45207,12,45209,45235,12,45237,45263,12,45265,45291,12,45293,45319,12,45321,45347,12,45349,45375,12,45377,45403,12,45405,45431,12,45433,45459,12,45461,45487,12,45489,45515,12,45517,45543,12,45545,45571,12,45573,45599,12,45601,45627,12,45629,45655,12,45657,45683,12,45685,45711,12,45713,45739,12,45741,45767,12,45769,45795,12,45797,45823,12,45825,45851,12,45853,45879,12,45881,45907,12,45909,45935,12,45937,45963,12,45965,45991,12,45993,46019,12,46021,46047,12,46049,46075,12,46077,46103,12,46105,46131,12,46133,46159,12,46161,46187,12,46189,46215,12,46217,46243,12,46245,46271,12,46273,46299,12,46301,46327,12,46329,46355,12,46357,46383,12,46385,46411,12,46413,46439,12,46441,46467,12,46469,46495,12,46497,46523,12,46525,46551,12,46553,46579,12,46581,46607,12,46609,46635,12,46637,46663,12,46665,46691,12,46693,46719,12,46721,46747,12,46749,46775,12,46777,46803,12,46805,46831,12,46833,46859,12,46861,46887,12,46889,46915,12,46917,46943,12,46945,46971,12,46973,46999,12,47001,47027,12,47029,47055,12,47057,47083,12,47085,47111,12,47113,47139,12,47141,47167,12,47169,47195,12,47197,47223,12,47225,47251,12,47253,47279,12,47281,47307,12,47309,47335,12,47337,47363,12,47365,47391,12,47393,47419,12,47421,47447,12,47449,47475,12,47477,47503,12,47505,47531,12,47533,47559,12,47561,47587,12,47589,47615,12,47617,47643,12,47645,47671,12,47673,47699,12,47701,47727,12,47729,47755,12,47757,47783,12,47785,47811,12,47813,47839,12,47841,47867,12,47869,47895,12,47897,47923,12,47925,47951,12,47953,47979,12,47981,48007,12,48009,48035,12,48037,48063,12,48065,48091,12,48093,48119,12,48121,48147,12,48149,48175,12,48177,48203,12,48205,48231,12,48233,48259,12,48261,48287,12,48289,48315,12,48317,48343,12,48345,48371,12,48373,48399,12,48401,48427,12,48429,48455,12,48457,48483,12,48485,48511,12,48513,48539,12,48541,48567,12,48569,48595,12,48597,48623,12,48625,48651,12,48653,48679,12,48681,48707,12,48709,48735,12,48737,48763,12,48765,48791,12,48793,48819,12,48821,48847,12,48849,48875,12,48877,48903,12,48905,48931,12,48933,48959,12,48961,48987,12,48989,49015,12,49017,49043,12,49045,49071,12,49073,49099,12,49101,49127,12,49129,49155,12,49157,49183,12,49185,49211,12,49213,49239,12,49241,49267,12,49269,49295,12,49297,49323,12,49325,49351,12,49353,49379,12,49381,49407,12,49409,49435,12,49437,49463,12,49465,49491,12,49493,49519,12,49521,49547,12,49549,49575,12,49577,49603,12,49605,49631,12,49633,49659,12,49661,49687,12,49689,49715,12,49717,49743,12,49745,49771,12,49773,49799,12,49801,49827,12,49829,49855,12,49857,49883,12,49885,49911,12,49913,49939,12,49941,49967,12,49969,49995,12,49997,50023,12,50025,50051,12,50053,50079,12,50081,50107,12,50109,50135,12,50137,50163,12,50165,50191,12,50193,50219,12,50221,50247,12,50249,50275,12,50277,50303,12,50305,50331,12,50333,50359,12,50361,50387,12,50389,50415,12,50417,50443,12,50445,50471,12,50473,50499,12,50501,50527,12,50529,50555,12,50557,50583,12,50585,50611,12,50613,50639,12,50641,50667,12,50669,50695,12,50697,50723,12,50725,50751,12,50753,50779,12,50781,50807,12,50809,50835,12,50837,50863,12,50865,50891,12,50893,50919,12,50921,50947,12,50949,50975,12,50977,51003,12,51005,51031,12,51033,51059,12,51061,51087,12,51089,51115,12,51117,51143,12,51145,51171,12,51173,51199,12,51201,51227,12,51229,51255,12,51257,51283,12,51285,51311,12,51313,51339,12,51341,51367,12,51369,51395,12,51397,51423,12,51425,51451,12,51453,51479,12,51481,51507,12,51509,51535,12,51537,51563,12,51565,51591,12,51593,51619,12,51621,51647,12,51649,51675,12,51677,51703,12,51705,51731,12,51733,51759,12,51761,51787,12,51789,51815,12,51817,51843,12,51845,51871,12,51873,51899,12,51901,51927,12,51929,51955,12,51957,51983,12,51985,52011,12,52013,52039,12,52041,52067,12,52069,52095,12,52097,52123,12,52125,52151,12,52153,52179,12,52181,52207,12,52209,52235,12,52237,52263,12,52265,52291,12,52293,52319,12,52321,52347,12,52349,52375,12,52377,52403,12,52405,52431,12,52433,52459,12,52461,52487,12,52489,52515,12,52517,52543,12,52545,52571,12,52573,52599,12,52601,52627,12,52629,52655,12,52657,52683,12,52685,52711,12,52713,52739,12,52741,52767,12,52769,52795,12,52797,52823,12,52825,52851,12,52853,52879,12,52881,52907,12,52909,52935,12,52937,52963,12,52965,52991,12,52993,53019,12,53021,53047,12,53049,53075,12,53077,53103,12,53105,53131,12,53133,53159,12,53161,53187,12,53189,53215,12,53217,53243,12,53245,53271,12,53273,53299,12,53301,53327,12,53329,53355,12,53357,53383,12,53385,53411,12,53413,53439,12,53441,53467,12,53469,53495,12,53497,53523,12,53525,53551,12,53553,53579,12,53581,53607,12,53609,53635,12,53637,53663,12,53665,53691,12,53693,53719,12,53721,53747,12,53749,53775,12,53777,53803,12,53805,53831,12,53833,53859,12,53861,53887,12,53889,53915,12,53917,53943,12,53945,53971,12,53973,53999,12,54001,54027,12,54029,54055,12,54057,54083,12,54085,54111,12,54113,54139,12,54141,54167,12,54169,54195,12,54197,54223,12,54225,54251,12,54253,54279,12,54281,54307,12,54309,54335,12,54337,54363,12,54365,54391,12,54393,54419,12,54421,54447,12,54449,54475,12,54477,54503,12,54505,54531,12,54533,54559,12,54561,54587,12,54589,54615,12,54617,54643,12,54645,54671,12,54673,54699,12,54701,54727,12,54729,54755,12,54757,54783,12,54785,54811,12,54813,54839,12,54841,54867,12,54869,54895,12,54897,54923,12,54925,54951,12,54953,54979,12,54981,55007,12,55009,55035,12,55037,55063,12,55065,55091,12,55093,55119,12,55121,55147,12,55149,55175,12,55177,55203,12,55243,55291,10,65024,65039,5,65279,65279,4,65520,65528,4,66045,66045,5,66422,66426,5,68101,68102,5,68152,68154,5,68325,68326,5,69291,69292,5,69632,69632,7,69634,69634,7,69759,69761,5]\")\n        }\n        static getInstance() {\n            return Y._INSTANCE || (Y._INSTANCE = new Y), Y._INSTANCE\n        }\n        getGraphemeBreakType(e) {\n            if (e < 32) return 10 === e ? 3 : 13 === e ? 2 : 4;\n            if (e < 127) return 0;\n            const t = this._data,\n                n = t.length / 3;\n            let i = 1;\n            for (; i <= n;)\n                if (e < t[3 * i]) i *= 2;\n                else {\n                    if (!(e > t[3 * i + 1])) return t[3 * i + 2];\n                    i = 2 * i + 1\n                } return 0\n        }\n    }\n    Y._INSTANCE = null;\n    const Q = \"$initialize\";\n    let X;\n    class Z {\n        constructor(e, t, n, i) {\n            this.vsWorker = e, this.req = t, this.method = n, this.args = i, this.type = 0\n        }\n    }\n    class J {\n        constructor(e, t, n, i) {\n            this.vsWorker = e, this.seq = t, this.res = n, this.err = i, this.type = 1\n        }\n    }\n    class ee {\n        constructor(e, t, n, i) {\n            this.vsWorker = e, this.req = t, this.eventName = n, this.arg = i, this.type = 2\n        }\n    }\n    class te {\n        constructor(e, t, n) {\n            this.vsWorker = e, this.req = t, this.event = n, this.type = 3\n        }\n    }\n    class ne {\n        constructor(e, t) {\n            this.vsWorker = e, this.req = t, this.type = 4\n        }\n    }\n    class ie {\n        constructor(e) {\n            this._workerId = -1, this._handler = e, this._lastSentReq = 0, this._pendingReplies = Object.create(null), this._pendingEmitters = new Map, this._pendingEvents = new Map\n        }\n        setWorkerId(e) {\n            this._workerId = e\n        }\n        sendMessage(e, t) {\n            const n = String(++this._lastSentReq);\n            return new Promise(((i, r) => {\n                this._pendingReplies[n] = {\n                    resolve: i,\n                    reject: r\n                }, this._send(new Z(this._workerId, n, e, t))\n            }))\n        }\n        listen(e, t) {\n            let n = null;\n            const i = new H({\n                onFirstListenerAdd: () => {\n                    n = String(++this._lastSentReq), this._pendingEmitters.set(n, i), this._send(new ee(this._workerId, n, e, t))\n                },\n                onLastListenerRemove: () => {\n                    this._pendingEmitters.delete(n), this._send(new ne(this._workerId, n)), n = null\n                }\n            });\n            return i.event\n        }\n        handleMessage(e) {\n            e && e.vsWorker && (-1 !== this._workerId && e.vsWorker !== this._workerId || this._handleMessage(e))\n        }\n        _handleMessage(e) {\n            switch (e.type) {\n                case 1:\n                    return this._handleReplyMessage(e);\n                case 0:\n                    return this._handleRequestMessage(e);\n                case 2:\n                    return this._handleSubscribeEventMessage(e);\n                case 3:\n                    return this._handleEventMessage(e);\n                case 4:\n                    return this._handleUnsubscribeEventMessage(e)\n            }\n        }\n        _handleReplyMessage(e) {\n            if (!this._pendingReplies[e.seq]) return void console.warn(\"Got reply to unknown seq\");\n            let t = this._pendingReplies[e.seq];\n            if (delete this._pendingReplies[e.seq], e.err) {\n                let n = e.err;\n                return e.err.$isError && (n = new Error, n.name = e.err.name, n.message = e.err.message, n.stack = e.err.stack), void t.reject(n)\n            }\n            t.resolve(e.res)\n        }\n        _handleRequestMessage(e) {\n            let t = e.req;\n            this._handler.handleMessage(e.method, e.args).then((e => {\n                this._send(new J(this._workerId, t, e, void 0))\n            }), (e => {\n                e.detail instanceof Error && (e.detail = n(e.detail)), this._send(new J(this._workerId, t, void 0, n(e)))\n            }))\n        }\n        _handleSubscribeEventMessage(e) {\n            const t = e.req,\n                n = this._handler.handleEvent(e.eventName, e.arg)((e => {\n                    this._send(new te(this._workerId, t, e))\n                }));\n            this._pendingEvents.set(t, n)\n        }\n        _handleEventMessage(e) {\n            this._pendingEmitters.has(e.req) ? this._pendingEmitters.get(e.req).fire(e.event) : console.warn(\"Got event for unknown req\")\n        }\n        _handleUnsubscribeEventMessage(e) {\n            this._pendingEvents.has(e.req) ? (this._pendingEvents.get(e.req).dispose(), this._pendingEvents.delete(e.req)) : console.warn(\"Got unsubscribe for unknown req\")\n        }\n        _send(e) {\n            let t = [];\n            if (0 === e.type)\n                for (let n = 0; n < e.args.length; n++) e.args[n] instanceof ArrayBuffer && t.push(e.args[n]);\n            else 1 === e.type && e.res instanceof ArrayBuffer && t.push(e.res);\n            this._handler.sendMessage(e, t)\n        }\n    }\n\n    function re(e) {\n        return \"o\" === e[0] && \"n\" === e[1] && $(e.charCodeAt(2))\n    }\n\n    function se(e) {\n        return /^onDynamic/.test(e) && $(e.charCodeAt(9))\n    }\n\n    function oe(e, t, n) {\n        const i = e => function() {\n                const n = Array.prototype.slice.call(arguments, 0);\n                return t(e, n)\n            },\n            r = e => function(t) {\n                return n(e, t)\n            };\n        let s = {};\n        for (const t of e) se(t) ? s[t] = r(t) : re(t) ? s[t] = n(t, void 0) : s[t] = i(t);\n        return s\n    }\n    class ae {\n        constructor(e, t) {\n            this._requestHandlerFactory = t, this._requestHandler = null, this._protocol = new ie({\n                sendMessage: (t, n) => {\n                    e(t, n)\n                },\n                handleMessage: (e, t) => this._handleMessage(e, t),\n                handleEvent: (e, t) => this._handleEvent(e, t)\n            })\n        }\n        onmessage(e) {\n            this._protocol.handleMessage(e)\n        }\n        _handleMessage(e, t) {\n            if (e === Q) return this.initialize(t[0], t[1], t[2], t[3]);\n            if (!this._requestHandler || \"function\" != typeof this._requestHandler[e]) return Promise.reject(new Error(\"Missing requestHandler or method: \" + e));\n            try {\n                return Promise.resolve(this._requestHandler[e].apply(this._requestHandler, t))\n            } catch (e) {\n                return Promise.reject(e)\n            }\n        }\n        _handleEvent(e, t) {\n            if (!this._requestHandler) throw new Error(\"Missing requestHandler\");\n            if (se(e)) {\n                const n = this._requestHandler[e].call(this._requestHandler, t);\n                if (\"function\" != typeof n) throw new Error(`Missing dynamic event ${e} on request handler.`);\n                return n\n            }\n            if (re(e)) {\n                const t = this._requestHandler[e];\n                if (\"function\" != typeof t) throw new Error(`Missing event ${e} on request handler.`);\n                return t\n            }\n            throw new Error(`Malformed event name ${e}`)\n        }\n        initialize(e, t, n, i) {\n            this._protocol.setWorkerId(e);\n            const r = oe(i, ((e, t) => this._protocol.sendMessage(e, t)), ((e, t) => this._protocol.listen(e, t)));\n            return this._requestHandlerFactory ? (this._requestHandler = this._requestHandlerFactory(r), Promise.resolve(W(this._requestHandler))) : (t && (void 0 !== t.baseUrl && delete t.baseUrl, void 0 !== t.paths && void 0 !== t.paths.vs && delete t.paths.vs, void 0 !== typeof t.trustedTypesPolicy && delete t.trustedTypesPolicy, t.catchError = !0, R.require.config(t)), new Promise(((e, t) => {\n                (0, R.require)([n], (n => {\n                    this._requestHandler = n.create(r), this._requestHandler ? e(W(this._requestHandler)) : t(new Error(\"No RequestHandler!\"))\n                }), t)\n            })))\n        }\n    }\n    class le {\n        constructor(e, t, n, i) {\n            this.originalStart = e, this.originalLength = t, this.modifiedStart = n, this.modifiedLength = i\n        }\n        getOriginalEnd() {\n            return this.originalStart + this.originalLength\n        }\n        getModifiedEnd() {\n            return this.modifiedStart + this.modifiedLength\n        }\n    }\n\n    function ue(e, t) {\n        return (t << 5) - t + e | 0\n    }\n\n    function he(e, t) {\n        t = ue(149417, t);\n        for (let n = 0, i = e.length; n < i; n++) t = ue(e.charCodeAt(n), t);\n        return t\n    }\n\n    function de(e, t, n = 32) {\n        const i = n - t;\n        return (e << t | (~((1 << i) - 1) & e) >>> i) >>> 0\n    }\n\n    function ce(e, t = 0, n = e.byteLength, i = 0) {\n        for (let r = 0; r < n; r++) e[t + r] = i\n    }\n\n    function me(e, t = 32) {\n        return e instanceof ArrayBuffer ? Array.from(new Uint8Array(e)).map((e => e.toString(16).padStart(2, \"0\"))).join(\"\") : function(e, t, n = \"0\") {\n            for (; e.length < t;) e = n + e;\n            return e\n        }((e >>> 0).toString(16), t / 4)\n    }\n    class fe {\n        constructor() {\n            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\n        }\n        update(e) {\n            const t = e.length;\n            if (0 === t) return;\n            const n = this._buff;\n            let i, r, s = this._buffLen,\n                o = this._leftoverHighSurrogate;\n            for (0 !== o ? (i = o, r = -1, o = 0) : (i = e.charCodeAt(0), r = 0);;) {\n                let a = i;\n                if (j(i)) {\n                    if (!(r + 1 < t)) {\n                        o = i;\n                        break\n                    } {\n                        const t = e.charCodeAt(r + 1);\n                        G(t) ? (r++, a = z(i, t)) : a = 65533\n                    }\n                } else G(i) && (a = 65533);\n                if (s = this._push(n, s, a), r++, !(r < t)) break;\n                i = e.charCodeAt(r)\n            }\n            this._buffLen = s, this._leftoverHighSurrogate = o\n        }\n        _push(e, t, n) {\n            return n < 128 ? e[t++] = n : n < 2048 ? (e[t++] = 192 | (1984 & n) >>> 6, e[t++] = 128 | (63 & n) >>> 0) : n < 65536 ? (e[t++] = 224 | (61440 & n) >>> 12, e[t++] = 128 | (4032 & n) >>> 6, e[t++] = 128 | (63 & n) >>> 0) : (e[t++] = 240 | (1835008 & n) >>> 18, e[t++] = 128 | (258048 & n) >>> 12, e[t++] = 128 | (4032 & n) >>> 6, e[t++] = 128 | (63 & n) >>> 0), t >= 64 && (this._step(), t -= 64, this._totalLen += 64, e[0] = e[64], e[1] = e[65], e[2] = e[66]), t\n        }\n        digest() {\n            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()), me(this._h0) + me(this._h1) + me(this._h2) + me(this._h3) + me(this._h4)\n        }\n        _wrapUp() {\n            this._buff[this._buffLen++] = 128, ce(this._buff, this._buffLen), this._buffLen > 56 && (this._step(), ce(this._buff));\n            const e = 8 * this._totalLen;\n            this._buffDV.setUint32(56, Math.floor(e / 4294967296), !1), this._buffDV.setUint32(60, e % 4294967296, !1), this._step()\n        }\n        _step() {\n            const e = fe._bigBlock32,\n                t = this._buffDV;\n            for (let n = 0; n < 64; n += 4) e.setUint32(n, t.getUint32(n, !1), !1);\n            for (let t = 64; t < 320; t += 4) e.setUint32(t, de(e.getUint32(t - 12, !1) ^ e.getUint32(t - 32, !1) ^ e.getUint32(t - 56, !1) ^ e.getUint32(t - 64, !1), 1), !1);\n            let n, i, r, s = this._h0,\n                o = this._h1,\n                a = this._h2,\n                l = this._h3,\n                u = this._h4;\n            for (let t = 0; t < 80; t++) t < 20 ? (n = o & a | ~o & l, i = 1518500249) : t < 40 ? (n = o ^ a ^ l, i = 1859775393) : t < 60 ? (n = o & a | o & l | a & l, i = 2400959708) : (n = o ^ a ^ l, i = 3395469782), r = de(s, 5) + n + u + i + e.getUint32(4 * t, !1) & 4294967295, u = l, l = a, a = de(o, 30), o = s, s = r;\n            this._h0 = this._h0 + s & 4294967295, this._h1 = this._h1 + o & 4294967295, this._h2 = this._h2 + a & 4294967295, this._h3 = this._h3 + l & 4294967295, this._h4 = this._h4 + u & 4294967295\n        }\n    }\n    fe._bigBlock32 = new DataView(new ArrayBuffer(320));\n    class ge {\n        constructor(e) {\n            this.source = e\n        }\n        getElements() {\n            const e = this.source,\n                t = new Int32Array(e.length);\n            for (let n = 0, i = e.length; n < i; n++) t[n] = e.charCodeAt(n);\n            return t\n        }\n    }\n\n    function _e(e, t, n) {\n        return new Se(new ge(e), new ge(t)).ComputeDiff(n).changes\n    }\n    class pe {\n        static Assert(e, t) {\n            if (!e) throw new Error(t)\n        }\n    }\n    class Ce {\n        static Copy(e, t, n, i, r) {\n            for (let s = 0; s < r; s++) n[i + s] = e[t + s]\n        }\n        static Copy2(e, t, n, i, r) {\n            for (let s = 0; s < r; s++) n[i + s] = e[t + s]\n        }\n    }\n    class Le {\n        constructor() {\n            this.m_changes = [], this.m_originalStart = 1073741824, this.m_modifiedStart = 1073741824, this.m_originalCount = 0, this.m_modifiedCount = 0\n        }\n        MarkNextChange() {\n            (this.m_originalCount > 0 || this.m_modifiedCount > 0) && this.m_changes.push(new le(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\n        }\n        AddOriginalElement(e, t) {\n            this.m_originalStart = Math.min(this.m_originalStart, e), this.m_modifiedStart = Math.min(this.m_modifiedStart, t), this.m_originalCount++\n        }\n        AddModifiedElement(e, t) {\n            this.m_originalStart = Math.min(this.m_originalStart, e), this.m_modifiedStart = Math.min(this.m_modifiedStart, t), this.m_modifiedCount++\n        }\n        getChanges() {\n            return (this.m_originalCount > 0 || this.m_modifiedCount > 0) && this.MarkNextChange(), this.m_changes\n        }\n        getReverseChanges() {\n            return (this.m_originalCount > 0 || this.m_modifiedCount > 0) && this.MarkNextChange(), this.m_changes.reverse(), this.m_changes\n        }\n    }\n    class Se {\n        constructor(e, t, n = null) {\n            this.ContinueProcessingPredicate = n, this._originalSequence = e, this._modifiedSequence = t;\n            const [i, r, s] = Se._getElements(e), [o, a, l] = Se._getElements(t);\n            this._hasStrings = s && l, this._originalStringElements = i, this._originalElementsOrHash = r, this._modifiedStringElements = o, this._modifiedElementsOrHash = a, this.m_forwardHistory = [], this.m_reverseHistory = []\n        }\n        static _isStringArray(e) {\n            return e.length > 0 && \"string\" == typeof e[0]\n        }\n        static _getElements(e) {\n            const t = e.getElements();\n            if (Se._isStringArray(t)) {\n                const e = new Int32Array(t.length);\n                for (let n = 0, i = t.length; n < i; n++) e[n] = he(t[n], 0);\n                return [t, e, !0]\n            }\n            return t instanceof Int32Array ? [\n                [], t, !1\n            ] : [\n                [], new Int32Array(t), !1\n            ]\n        }\n        ElementsAreEqual(e, t) {\n            return this._originalElementsOrHash[e] === this._modifiedElementsOrHash[t] && (!this._hasStrings || this._originalStringElements[e] === this._modifiedStringElements[t])\n        }\n        ElementsAreStrictEqual(e, t) {\n            if (!this.ElementsAreEqual(e, t)) return !1;\n            return Se._getStrictElement(this._originalSequence, e) === Se._getStrictElement(this._modifiedSequence, t)\n        }\n        static _getStrictElement(e, t) {\n            return \"function\" == typeof e.getStrictElement ? e.getStrictElement(t) : null\n        }\n        OriginalElementsAreEqual(e, t) {\n            return this._originalElementsOrHash[e] === this._originalElementsOrHash[t] && (!this._hasStrings || this._originalStringElements[e] === this._originalStringElements[t])\n        }\n        ModifiedElementsAreEqual(e, t) {\n            return this._modifiedElementsOrHash[e] === this._modifiedElementsOrHash[t] && (!this._hasStrings || this._modifiedStringElements[e] === this._modifiedStringElements[t])\n        }\n        ComputeDiff(e) {\n            return this._ComputeDiff(0, this._originalElementsOrHash.length - 1, 0, this._modifiedElementsOrHash.length - 1, e)\n        }\n        _ComputeDiff(e, t, n, i, r) {\n            const s = [!1];\n            let o = this.ComputeDiffRecursive(e, t, n, i, s);\n            return r && (o = this.PrettifyChanges(o)), {\n                quitEarly: s[0],\n                changes: o\n            }\n        }\n        ComputeDiffRecursive(e, t, n, i, r) {\n            for (r[0] = !1; e <= t && n <= i && this.ElementsAreEqual(e, n);) e++, n++;\n            for (; t >= e && i >= n && this.ElementsAreEqual(t, i);) t--, i--;\n            if (e > t || n > i) {\n                let r;\n                return n <= i ? (pe.Assert(e === t + 1, \"originalStart should only be one more than originalEnd\"), r = [new le(e, 0, n, i - n + 1)]) : e <= t ? (pe.Assert(n === i + 1, \"modifiedStart should only be one more than modifiedEnd\"), r = [new le(e, t - e + 1, n, 0)]) : (pe.Assert(e === t + 1, \"originalStart should only be one more than originalEnd\"), pe.Assert(n === i + 1, \"modifiedStart should only be one more than modifiedEnd\"), r = []), r\n            }\n            const s = [0],\n                o = [0],\n                a = this.ComputeRecursionPoint(e, t, n, i, s, o, r),\n                l = s[0],\n                u = o[0];\n            if (null !== a) return a;\n            if (!r[0]) {\n                const s = this.ComputeDiffRecursive(e, l, n, u, r);\n                let o = [];\n                return o = r[0] ? [new le(l + 1, t - (l + 1) + 1, u + 1, i - (u + 1) + 1)] : this.ComputeDiffRecursive(l + 1, t, u + 1, i, r), this.ConcatenateChanges(s, o)\n            }\n            return [new le(e, t - e + 1, n, i - n + 1)]\n        }\n        WALKTRACE(e, t, n, i, r, s, o, a, l, u, h, d, c, m, f, g, _, p) {\n            let C = null,\n                L = null,\n                S = new Le,\n                b = t,\n                N = n,\n                E = c[0] - g[0] - i,\n                y = -1073741824,\n                A = this.m_forwardHistory.length - 1;\n            do {\n                const t = E + e;\n                t === b || t < N && l[t - 1] < l[t + 1] ? (m = (h = l[t + 1]) - E - i, h < y && S.MarkNextChange(), y = h, S.AddModifiedElement(h + 1, m), E = t + 1 - e) : (m = (h = l[t - 1] + 1) - E - i, h < y && S.MarkNextChange(), y = h - 1, S.AddOriginalElement(h, m + 1), E = t - 1 - e), A >= 0 && (e = (l = this.m_forwardHistory[A])[0], b = 1, N = l.length - 1)\n            } while (--A >= -1);\n            if (C = S.getReverseChanges(), p[0]) {\n                let e = c[0] + 1,\n                    t = g[0] + 1;\n                if (null !== C && C.length > 0) {\n                    const n = C[C.length - 1];\n                    e = Math.max(e, n.getOriginalEnd()), t = Math.max(t, n.getModifiedEnd())\n                }\n                L = [new le(e, d - e + 1, t, f - t + 1)]\n            } else {\n                S = new Le, b = s, N = o, E = c[0] - g[0] - a, y = 1073741824, A = _ ? this.m_reverseHistory.length - 1 : this.m_reverseHistory.length - 2;\n                do {\n                    const e = E + r;\n                    e === b || e < N && u[e - 1] >= u[e + 1] ? (m = (h = u[e + 1] - 1) - E - a, h > y && S.MarkNextChange(), y = h + 1, S.AddOriginalElement(h + 1, m + 1), E = e + 1 - r) : (m = (h = u[e - 1]) - E - a, h > y && S.MarkNextChange(), y = h, S.AddModifiedElement(h + 1, m + 1), E = e - 1 - r), A >= 0 && (r = (u = this.m_reverseHistory[A])[0], b = 1, N = u.length - 1)\n                } while (--A >= -1);\n                L = S.getChanges()\n            }\n            return this.ConcatenateChanges(C, L)\n        }\n        ComputeRecursionPoint(e, t, n, i, r, s, o) {\n            let a = 0,\n                l = 0,\n                u = 0,\n                h = 0,\n                d = 0,\n                c = 0;\n            e--, n--, r[0] = 0, s[0] = 0, this.m_forwardHistory = [], this.m_reverseHistory = [];\n            const m = t - e + (i - n),\n                f = m + 1,\n                g = new Int32Array(f),\n                _ = new Int32Array(f),\n                p = i - n,\n                C = t - e,\n                L = e - n,\n                S = t - i,\n                b = (C - p) % 2 == 0;\n            g[p] = e, _[C] = t, o[0] = !1;\n            for (let N = 1; N <= m / 2 + 1; N++) {\n                let m = 0,\n                    E = 0;\n                u = this.ClipDiagonalBound(p - N, N, p, f), h = this.ClipDiagonalBound(p + N, N, p, f);\n                for (let e = u; e <= h; e += 2) {\n                    a = e === u || e < h && g[e - 1] < g[e + 1] ? g[e + 1] : g[e - 1] + 1, l = a - (e - p) - L;\n                    const n = a;\n                    for (; a < t && l < i && this.ElementsAreEqual(a + 1, l + 1);) a++, l++;\n                    if (g[e] = a, a + l > m + E && (m = a, E = l), !b && Math.abs(e - C) <= N - 1 && a >= _[e]) return r[0] = a, s[0] = l, n <= _[e] && N <= 1448 ? this.WALKTRACE(p, u, h, L, C, d, c, S, g, _, a, t, r, l, i, s, b, o) : null\n                }\n                const y = (m - e + (E - n) - N) / 2;\n                if (null !== this.ContinueProcessingPredicate && !this.ContinueProcessingPredicate(m, y)) return o[0] = !0, r[0] = m, s[0] = E, y > 0 && N <= 1448 ? this.WALKTRACE(p, u, h, L, C, d, c, S, g, _, a, t, r, l, i, s, b, o) : (e++, n++, [new le(e, t - e + 1, n, i - n + 1)]);\n                d = this.ClipDiagonalBound(C - N, N, C, f), c = this.ClipDiagonalBound(C + N, N, C, f);\n                for (let m = d; m <= c; m += 2) {\n                    a = m === d || m < c && _[m - 1] >= _[m + 1] ? _[m + 1] - 1 : _[m - 1], l = a - (m - C) - S;\n                    const f = a;\n                    for (; a > e && l > n && this.ElementsAreEqual(a, l);) a--, l--;\n                    if (_[m] = a, b && Math.abs(m - p) <= N && a <= g[m]) return r[0] = a, s[0] = l, f >= g[m] && N <= 1448 ? this.WALKTRACE(p, u, h, L, C, d, c, S, g, _, a, t, r, l, i, s, b, o) : null\n                }\n                if (N <= 1447) {\n                    let e = new Int32Array(h - u + 2);\n                    e[0] = p - u + 1, Ce.Copy2(g, u, e, 1, h - u + 1), this.m_forwardHistory.push(e), e = new Int32Array(c - d + 2), e[0] = C - d + 1, Ce.Copy2(_, d, e, 1, c - d + 1), this.m_reverseHistory.push(e)\n                }\n            }\n            return this.WALKTRACE(p, u, h, L, C, d, c, S, g, _, a, t, r, l, i, s, b, o)\n        }\n        PrettifyChanges(e) {\n            for (let t = 0; t < e.length; t++) {\n                const n = e[t],\n                    i = t < e.length - 1 ? e[t + 1].originalStart : this._originalElementsOrHash.length,\n                    r = t < e.length - 1 ? e[t + 1].modifiedStart : this._modifiedElementsOrHash.length,\n                    s = n.originalLength > 0,\n                    o = n.modifiedLength > 0;\n                for (; n.originalStart + n.originalLength < i && n.modifiedStart + n.modifiedLength < r && (!s || this.OriginalElementsAreEqual(n.originalStart, n.originalStart + n.originalLength)) && (!o || this.ModifiedElementsAreEqual(n.modifiedStart, n.modifiedStart + n.modifiedLength));) {\n                    const e = this.ElementsAreStrictEqual(n.originalStart, n.modifiedStart);\n                    if (this.ElementsAreStrictEqual(n.originalStart + n.originalLength, n.modifiedStart + n.modifiedLength) && !e) break;\n                    n.originalStart++, n.modifiedStart++\n                }\n                let a = [null];\n                t < e.length - 1 && this.ChangesOverlap(e[t], e[t + 1], a) && (e[t] = a[0], e.splice(t + 1, 1), t--)\n            }\n            for (let t = e.length - 1; t >= 0; t--) {\n                const n = e[t];\n                let i = 0,\n                    r = 0;\n                if (t > 0) {\n                    const n = e[t - 1];\n                    i = n.originalStart + n.originalLength, r = n.modifiedStart + n.modifiedLength\n                }\n                const s = n.originalLength > 0,\n                    o = n.modifiedLength > 0;\n                let a = 0,\n                    l = this._boundaryScore(n.originalStart, n.originalLength, n.modifiedStart, n.modifiedLength);\n                for (let e = 1;; e++) {\n                    const t = n.originalStart - e,\n                        u = n.modifiedStart - e;\n                    if (t < i || u < r) break;\n                    if (s && !this.OriginalElementsAreEqual(t, t + n.originalLength)) break;\n                    if (o && !this.ModifiedElementsAreEqual(u, u + n.modifiedLength)) break;\n                    const h = (t === i && u === r ? 5 : 0) + this._boundaryScore(t, n.originalLength, u, n.modifiedLength);\n                    h > l && (l = h, a = e)\n                }\n                n.originalStart -= a, n.modifiedStart -= a;\n                const u = [null];\n                t > 0 && this.ChangesOverlap(e[t - 1], e[t], u) && (e[t - 1] = u[0], e.splice(t, 1), t++)\n            }\n            if (this._hasStrings)\n                for (let t = 1, n = e.length; t < n; t++) {\n                    const n = e[t - 1],\n                        i = e[t],\n                        r = i.originalStart - n.originalStart - n.originalLength,\n                        s = n.originalStart,\n                        o = i.originalStart + i.originalLength,\n                        a = o - s,\n                        l = n.modifiedStart,\n                        u = i.modifiedStart + i.modifiedLength,\n                        h = u - l;\n                    if (r < 5 && a < 20 && h < 20) {\n                        const e = this._findBetterContiguousSequence(s, a, l, h, r);\n                        if (e) {\n                            const [t, s] = e;\n                            t === n.originalStart + n.originalLength && s === n.modifiedStart + n.modifiedLength || (n.originalLength = t - n.originalStart, n.modifiedLength = s - n.modifiedStart, i.originalStart = t + r, i.modifiedStart = s + r, i.originalLength = o - i.originalStart, i.modifiedLength = u - i.modifiedStart)\n                        }\n                    }\n                }\n            return e\n        }\n        _findBetterContiguousSequence(e, t, n, i, r) {\n            if (t < r || i < r) return null;\n            const s = e + t - r + 1,\n                o = n + i - r + 1;\n            let a = 0,\n                l = 0,\n                u = 0;\n            for (let t = e; t < s; t++)\n                for (let e = n; e < o; e++) {\n                    const n = this._contiguousSequenceScore(t, e, r);\n                    n > 0 && n > a && (a = n, l = t, u = e)\n                }\n            return a > 0 ? [l, u] : null\n        }\n        _contiguousSequenceScore(e, t, n) {\n            let i = 0;\n            for (let r = 0; r < n; r++) {\n                if (!this.ElementsAreEqual(e + r, t + r)) return 0;\n                i += this._originalStringElements[e + r].length\n            }\n            return i\n        }\n        _OriginalIsBoundary(e) {\n            return e <= 0 || e >= this._originalElementsOrHash.length - 1 || this._hasStrings && /^\\s*$/.test(this._originalStringElements[e])\n        }\n        _OriginalRegionIsBoundary(e, t) {\n            if (this._OriginalIsBoundary(e) || this._OriginalIsBoundary(e - 1)) return !0;\n            if (t > 0) {\n                const n = e + t;\n                if (this._OriginalIsBoundary(n - 1) || this._OriginalIsBoundary(n)) return !0\n            }\n            return !1\n        }\n        _ModifiedIsBoundary(e) {\n            return e <= 0 || e >= this._modifiedElementsOrHash.length - 1 || this._hasStrings && /^\\s*$/.test(this._modifiedStringElements[e])\n        }\n        _ModifiedRegionIsBoundary(e, t) {\n            if (this._ModifiedIsBoundary(e) || this._ModifiedIsBoundary(e - 1)) return !0;\n            if (t > 0) {\n                const n = e + t;\n                if (this._ModifiedIsBoundary(n - 1) || this._ModifiedIsBoundary(n)) return !0\n            }\n            return !1\n        }\n        _boundaryScore(e, t, n, i) {\n            return (this._OriginalRegionIsBoundary(e, t) ? 1 : 0) + (this._ModifiedRegionIsBoundary(n, i) ? 1 : 0)\n        }\n        ConcatenateChanges(e, t) {\n            let n = [];\n            if (0 === e.length || 0 === t.length) return t.length > 0 ? t : e;\n            if (this.ChangesOverlap(e[e.length - 1], t[0], n)) {\n                const i = new Array(e.length + t.length - 1);\n                return Ce.Copy(e, 0, i, 0, e.length - 1), i[e.length - 1] = n[0], Ce.Copy(t, 1, i, e.length, t.length - 1), i\n            } {\n                const n = new Array(e.length + t.length);\n                return Ce.Copy(e, 0, n, 0, e.length), Ce.Copy(t, 0, n, e.length, t.length), n\n            }\n        }\n        ChangesOverlap(e, t, n) {\n            if (pe.Assert(e.originalStart <= t.originalStart, \"Left change is not less than or equal to right change\"), pe.Assert(e.modifiedStart <= t.modifiedStart, \"Left change is not less than or equal to right change\"), e.originalStart + e.originalLength >= t.originalStart || e.modifiedStart + e.modifiedLength >= t.modifiedStart) {\n                const i = e.originalStart;\n                let r = e.originalLength;\n                const s = e.modifiedStart;\n                let o = e.modifiedLength;\n                return e.originalStart + e.originalLength >= t.originalStart && (r = t.originalStart + t.originalLength - e.originalStart), e.modifiedStart + e.modifiedLength >= t.modifiedStart && (o = t.modifiedStart + t.modifiedLength - e.modifiedStart), n[0] = new le(i, r, s, o), !0\n            }\n            return n[0] = null, !1\n        }\n        ClipDiagonalBound(e, t, n, i) {\n            if (e >= 0 && e < i) return e;\n            const r = t % 2 == 0;\n            if (e < 0) {\n                return r === (n % 2 == 0) ? 0 : 1\n            }\n            return r === ((i - n - 1) % 2 == 0) ? i - 1 : i - 2\n        }\n    }\n    if (void 0 !== R.vscode && void 0 !== R.vscode.process) {\n        const e = R.vscode.process;\n        X = {\n            get platform() {\n                return e.platform\n            },\n            get arch() {\n                return e.arch\n            },\n            get env() {\n                return e.env\n            },\n            cwd: () => e.cwd(),\n            nextTick: e => D(e)\n        }\n    } else X = \"undefined\" != typeof process ? {\n        get platform() {\n            return process.platform\n        },\n        get arch() {\n            return process.arch\n        },\n        get env() {\n            return process.env\n        },\n        cwd: () => process.env.VSCODE_CWD || process.cwd(),\n        nextTick: e => process.nextTick(e)\n    } : {\n        get platform() {\n            return x ? \"win32\" : k ? \"darwin\" : \"linux\"\n        },\n        get arch() {},\n        nextTick: e => D(e),\n        get env() {\n            return {}\n        },\n        cwd: () => \"/\"\n    };\n    const be = X.cwd,\n        Ne = X.env,\n        Ee = X.platform,\n        ye = 46,\n        Ae = 47,\n        we = 92,\n        ve = 58;\n    class Me extends Error {\n        constructor(e, t, n) {\n            let i;\n            \"string\" == typeof t && 0 === t.indexOf(\"not \") ? (i = \"must not be\", t = t.replace(/^not /, \"\")) : i = \"must be\";\n            const r = -1 !== e.indexOf(\".\") ? \"property\" : \"argument\";\n            let s = `The \"${e}\" ${r} ${i} of type ${t}`;\n            s += \". Received type \" + typeof n, super(s), this.code = \"ERR_INVALID_ARG_TYPE\"\n        }\n    }\n\n    function Ke(e, t) {\n        if (\"string\" != typeof e) throw new Me(t, \"string\", e)\n    }\n\n    function Oe(e) {\n        return e === Ae || e === we\n    }\n\n    function Te(e) {\n        return e === Ae\n    }\n\n    function Re(e) {\n        return e >= 65 && e <= 90 || e >= 97 && e <= 122\n    }\n\n    function Ve(e, t, n, i) {\n        let r = \"\",\n            s = 0,\n            o = -1,\n            a = 0,\n            l = 0;\n        for (let u = 0; u <= e.length; ++u) {\n            if (u < e.length) l = e.charCodeAt(u);\n            else {\n                if (i(l)) break;\n                l = Ae\n            }\n            if (i(l)) {\n                if (o === u - 1 || 1 === a);\n                else if (2 === a) {\n                    if (r.length < 2 || 2 !== s || r.charCodeAt(r.length - 1) !== ye || r.charCodeAt(r.length - 2) !== ye) {\n                        if (r.length > 2) {\n                            const e = r.lastIndexOf(n); - 1 === e ? (r = \"\", s = 0) : (r = r.slice(0, e), s = r.length - 1 - r.lastIndexOf(n)), o = u, a = 0;\n                            continue\n                        }\n                        if (0 !== r.length) {\n                            r = \"\", s = 0, o = u, a = 0;\n                            continue\n                        }\n                    }\n                    t && (r += r.length > 0 ? `${n}..` : \"..\", s = 2)\n                } else r.length > 0 ? r += `${n}${e.slice(o+1,u)}` : r = e.slice(o + 1, u), s = u - o - 1;\n                o = u, a = 0\n            } else l === ye && -1 !== a ? ++a : a = -1\n        }\n        return r\n    }\n\n    function Ie(e, t) {\n        if (null === t || \"object\" != typeof t) throw new Me(\"pathObject\", \"Object\", t);\n        const n = t.dir || t.root,\n            i = t.base || `${t.name||\"\"}${t.ext||\"\"}`;\n        return n ? n === t.root ? `${n}${i}` : `${n}${e}${i}` : i\n    }\n    const Pe = {\n            resolve(...e) {\n                let t = \"\",\n                    n = \"\",\n                    i = !1;\n                for (let r = e.length - 1; r >= -1; r--) {\n                    let s;\n                    if (r >= 0) {\n                        if (s = e[r], Ke(s, \"path\"), 0 === s.length) continue\n                    } else 0 === t.length ? s = be() : (s = Ne[`=${t}`] || be(), (void 0 === s || s.slice(0, 2).toLowerCase() !== t.toLowerCase() && s.charCodeAt(2) === we) && (s = `${t}\\\\`));\n                    const o = s.length;\n                    let a = 0,\n                        l = \"\",\n                        u = !1;\n                    const h = s.charCodeAt(0);\n                    if (1 === o) Oe(h) && (a = 1, u = !0);\n                    else if (Oe(h))\n                        if (u = !0, Oe(s.charCodeAt(1))) {\n                            let e = 2,\n                                t = e;\n                            for (; e < o && !Oe(s.charCodeAt(e));) e++;\n                            if (e < o && e !== t) {\n                                const n = s.slice(t, e);\n                                for (t = e; e < o && Oe(s.charCodeAt(e));) e++;\n                                if (e < o && e !== t) {\n                                    for (t = e; e < o && !Oe(s.charCodeAt(e));) e++;\n                                    e !== o && e === t || (l = `\\\\\\\\${n}\\\\${s.slice(t,e)}`, a = e)\n                                }\n                            }\n                        } else a = 1;\n                    else Re(h) && s.charCodeAt(1) === ve && (l = s.slice(0, 2), a = 2, o > 2 && Oe(s.charCodeAt(2)) && (u = !0, a = 3));\n                    if (l.length > 0)\n                        if (t.length > 0) {\n                            if (l.toLowerCase() !== t.toLowerCase()) continue\n                        } else t = l;\n                    if (i) {\n                        if (t.length > 0) break\n                    } else if (n = `${s.slice(a)}\\\\${n}`, i = u, u && t.length > 0) break\n                }\n                return n = Ve(n, !i, \"\\\\\", Oe), i ? `${t}\\\\${n}` : `${t}${n}` || \".\"\n            },\n            normalize(e) {\n                Ke(e, \"path\");\n                const t = e.length;\n                if (0 === t) return \".\";\n                let n, i = 0,\n                    r = !1;\n                const s = e.charCodeAt(0);\n                if (1 === t) return Te(s) ? \"\\\\\" : e;\n                if (Oe(s))\n                    if (r = !0, Oe(e.charCodeAt(1))) {\n                        let r = 2,\n                            s = r;\n                        for (; r < t && !Oe(e.charCodeAt(r));) r++;\n                        if (r < t && r !== s) {\n                            const o = e.slice(s, r);\n                            for (s = r; r < t && Oe(e.charCodeAt(r));) r++;\n                            if (r < t && r !== s) {\n                                for (s = r; r < t && !Oe(e.charCodeAt(r));) r++;\n                                if (r === t) return `\\\\\\\\${o}\\\\${e.slice(s)}\\\\`;\n                                r !== s && (n = `\\\\\\\\${o}\\\\${e.slice(s,r)}`, i = r)\n                            }\n                        }\n                    } else i = 1;\n                else Re(s) && e.charCodeAt(1) === ve && (n = e.slice(0, 2), i = 2, t > 2 && Oe(e.charCodeAt(2)) && (r = !0, i = 3));\n                let o = i < t ? Ve(e.slice(i), !r, \"\\\\\", Oe) : \"\";\n                return 0 !== o.length || r || (o = \".\"), o.length > 0 && Oe(e.charCodeAt(t - 1)) && (o += \"\\\\\"), void 0 === n ? r ? `\\\\${o}` : o : r ? `${n}\\\\${o}` : `${n}${o}`\n            },\n            isAbsolute(e) {\n                Ke(e, \"path\");\n                const t = e.length;\n                if (0 === t) return !1;\n                const n = e.charCodeAt(0);\n                return Oe(n) || t > 2 && Re(n) && e.charCodeAt(1) === ve && Oe(e.charCodeAt(2))\n            },\n            join(...e) {\n                if (0 === e.length) return \".\";\n                let t, n;\n                for (let i = 0; i < e.length; ++i) {\n                    const r = e[i];\n                    Ke(r, \"path\"), r.length > 0 && (void 0 === t ? t = n = r : t += `\\\\${r}`)\n                }\n                if (void 0 === t) return \".\";\n                let i = !0,\n                    r = 0;\n                if (\"string\" == typeof n && Oe(n.charCodeAt(0))) {\n                    ++r;\n                    const e = n.length;\n                    e > 1 && Oe(n.charCodeAt(1)) && (++r, e > 2 && (Oe(n.charCodeAt(2)) ? ++r : i = !1))\n                }\n                if (i) {\n                    for (; r < t.length && Oe(t.charCodeAt(r));) r++;\n                    r >= 2 && (t = `\\\\${t.slice(r)}`)\n                }\n                return Pe.normalize(t)\n            },\n            relative(e, t) {\n                if (Ke(e, \"from\"), Ke(t, \"to\"), e === t) return \"\";\n                const n = Pe.resolve(e),\n                    i = Pe.resolve(t);\n                if (n === i) return \"\";\n                if ((e = n.toLowerCase()) === (t = i.toLowerCase())) return \"\";\n                let r = 0;\n                for (; r < e.length && e.charCodeAt(r) === we;) r++;\n                let s = e.length;\n                for (; s - 1 > r && e.charCodeAt(s - 1) === we;) s--;\n                const o = s - r;\n                let a = 0;\n                for (; a < t.length && t.charCodeAt(a) === we;) a++;\n                let l = t.length;\n                for (; l - 1 > a && t.charCodeAt(l - 1) === we;) l--;\n                const u = l - a,\n                    h = o < u ? o : u;\n                let d = -1,\n                    c = 0;\n                for (; c < h; c++) {\n                    const n = e.charCodeAt(r + c);\n                    if (n !== t.charCodeAt(a + c)) break;\n                    n === we && (d = c)\n                }\n                if (c !== h) {\n                    if (-1 === d) return i\n                } else {\n                    if (u > h) {\n                        if (t.charCodeAt(a + c) === we) return i.slice(a + c + 1);\n                        if (2 === c) return i.slice(a + c)\n                    }\n                    o > h && (e.charCodeAt(r + c) === we ? d = c : 2 === c && (d = 3)), -1 === d && (d = 0)\n                }\n                let m = \"\";\n                for (c = r + d + 1; c <= s; ++c) c !== s && e.charCodeAt(c) !== we || (m += 0 === m.length ? \"..\" : \"\\\\..\");\n                return a += d, m.length > 0 ? `${m}${i.slice(a,l)}` : (i.charCodeAt(a) === we && ++a, i.slice(a, l))\n            },\n            toNamespacedPath(e) {\n                if (\"string\" != typeof e) return e;\n                if (0 === e.length) return \"\";\n                const t = Pe.resolve(e);\n                if (t.length <= 2) return e;\n                if (t.charCodeAt(0) === we) {\n                    if (t.charCodeAt(1) === we) {\n                        const e = t.charCodeAt(2);\n                        if (63 !== e && e !== ye) return `\\\\\\\\?\\\\UNC\\\\${t.slice(2)}`\n                    }\n                } else if (Re(t.charCodeAt(0)) && t.charCodeAt(1) === ve && t.charCodeAt(2) === we) return `\\\\\\\\?\\\\${t}`;\n                return e\n            },\n            dirname(e) {\n                Ke(e, \"path\");\n                const t = e.length;\n                if (0 === t) return \".\";\n                let n = -1,\n                    i = 0;\n                const r = e.charCodeAt(0);\n                if (1 === t) return Oe(r) ? e : \".\";\n                if (Oe(r)) {\n                    if (n = i = 1, Oe(e.charCodeAt(1))) {\n                        let r = 2,\n                            s = r;\n                        for (; r < t && !Oe(e.charCodeAt(r));) r++;\n                        if (r < t && r !== s) {\n                            for (s = r; r < t && Oe(e.charCodeAt(r));) r++;\n                            if (r < t && r !== s) {\n                                for (s = r; r < t && !Oe(e.charCodeAt(r));) r++;\n                                if (r === t) return e;\n                                r !== s && (n = i = r + 1)\n                            }\n                        }\n                    }\n                } else Re(r) && e.charCodeAt(1) === ve && (n = t > 2 && Oe(e.charCodeAt(2)) ? 3 : 2, i = n);\n                let s = -1,\n                    o = !0;\n                for (let n = t - 1; n >= i; --n)\n                    if (Oe(e.charCodeAt(n))) {\n                        if (!o) {\n                            s = n;\n                            break\n                        }\n                    } else o = !1;\n                if (-1 === s) {\n                    if (-1 === n) return \".\";\n                    s = n\n                }\n                return e.slice(0, s)\n            },\n            basename(e, t) {\n                void 0 !== t && Ke(t, \"ext\"), Ke(e, \"path\");\n                let n, i = 0,\n                    r = -1,\n                    s = !0;\n                if (e.length >= 2 && Re(e.charCodeAt(0)) && e.charCodeAt(1) === ve && (i = 2), void 0 !== t && t.length > 0 && t.length <= e.length) {\n                    if (t === e) return \"\";\n                    let o = t.length - 1,\n                        a = -1;\n                    for (n = e.length - 1; n >= i; --n) {\n                        const l = e.charCodeAt(n);\n                        if (Oe(l)) {\n                            if (!s) {\n                                i = n + 1;\n                                break\n                            }\n                        } else -1 === a && (s = !1, a = n + 1), o >= 0 && (l === t.charCodeAt(o) ? -1 == --o && (r = n) : (o = -1, r = a))\n                    }\n                    return i === r ? r = a : -1 === r && (r = e.length), e.slice(i, r)\n                }\n                for (n = e.length - 1; n >= i; --n)\n                    if (Oe(e.charCodeAt(n))) {\n                        if (!s) {\n                            i = n + 1;\n                            break\n                        }\n                    } else -1 === r && (s = !1, r = n + 1);\n                return -1 === r ? \"\" : e.slice(i, r)\n            },\n            extname(e) {\n                Ke(e, \"path\");\n                let t = 0,\n                    n = -1,\n                    i = 0,\n                    r = -1,\n                    s = !0,\n                    o = 0;\n                e.length >= 2 && e.charCodeAt(1) === ve && Re(e.charCodeAt(0)) && (t = i = 2);\n                for (let a = e.length - 1; a >= t; --a) {\n                    const t = e.charCodeAt(a);\n                    if (Oe(t)) {\n                        if (!s) {\n                            i = a + 1;\n                            break\n                        }\n                    } else -1 === r && (s = !1, r = a + 1), t === ye ? -1 === n ? n = a : 1 !== o && (o = 1) : -1 !== n && (o = -1)\n                }\n                return -1 === n || -1 === r || 0 === o || 1 === o && n === r - 1 && n === i + 1 ? \"\" : e.slice(n, r)\n            },\n            format: Ie.bind(null, \"\\\\\"),\n            parse(e) {\n                Ke(e, \"path\");\n                const t = {\n                    root: \"\",\n                    dir: \"\",\n                    base: \"\",\n                    ext: \"\",\n                    name: \"\"\n                };\n                if (0 === e.length) return t;\n                const n = e.length;\n                let i = 0,\n                    r = e.charCodeAt(0);\n                if (1 === n) return Oe(r) ? (t.root = t.dir = e, t) : (t.base = t.name = e, t);\n                if (Oe(r)) {\n                    if (i = 1, Oe(e.charCodeAt(1))) {\n                        let t = 2,\n                            r = t;\n                        for (; t < n && !Oe(e.charCodeAt(t));) t++;\n                        if (t < n && t !== r) {\n                            for (r = t; t < n && Oe(e.charCodeAt(t));) t++;\n                            if (t < n && t !== r) {\n                                for (r = t; t < n && !Oe(e.charCodeAt(t));) t++;\n                                t === n ? i = t : t !== r && (i = t + 1)\n                            }\n                        }\n                    }\n                } else if (Re(r) && e.charCodeAt(1) === ve) {\n                    if (n <= 2) return t.root = t.dir = e, t;\n                    if (i = 2, Oe(e.charCodeAt(2))) {\n                        if (3 === n) return t.root = t.dir = e, t;\n                        i = 3\n                    }\n                }\n                i > 0 && (t.root = e.slice(0, i));\n                let s = -1,\n                    o = i,\n                    a = -1,\n                    l = !0,\n                    u = e.length - 1,\n                    h = 0;\n                for (; u >= i; --u)\n                    if (r = e.charCodeAt(u), Oe(r)) {\n                        if (!l) {\n                            o = u + 1;\n                            break\n                        }\n                    } else -1 === a && (l = !1, a = u + 1), r === ye ? -1 === s ? s = u : 1 !== h && (h = 1) : -1 !== s && (h = -1);\n                return -1 !== a && (-1 === s || 0 === h || 1 === h && s === a - 1 && s === o + 1 ? t.base = t.name = e.slice(o, a) : (t.name = e.slice(o, s), t.base = e.slice(o, a), t.ext = e.slice(s, a))), t.dir = o > 0 && o !== i ? e.slice(0, o - 1) : t.root, t\n            },\n            sep: \"\\\\\",\n            delimiter: \";\",\n            win32: null,\n            posix: null\n        },\n        xe = {\n            resolve(...e) {\n                let t = \"\",\n                    n = !1;\n                for (let i = e.length - 1; i >= -1 && !n; i--) {\n                    const r = i >= 0 ? e[i] : be();\n                    Ke(r, \"path\"), 0 !== r.length && (t = `${r}/${t}`, n = r.charCodeAt(0) === Ae)\n                }\n                return t = Ve(t, !n, \"/\", Te), n ? `/${t}` : t.length > 0 ? t : \".\"\n            },\n            normalize(e) {\n                if (Ke(e, \"path\"), 0 === e.length) return \".\";\n                const t = e.charCodeAt(0) === Ae,\n                    n = e.charCodeAt(e.length - 1) === Ae;\n                return 0 === (e = Ve(e, !t, \"/\", Te)).length ? t ? \"/\" : n ? \"./\" : \".\" : (n && (e += \"/\"), t ? `/${e}` : e)\n            },\n            isAbsolute: e => (Ke(e, \"path\"), e.length > 0 && e.charCodeAt(0) === Ae),\n            join(...e) {\n                if (0 === e.length) return \".\";\n                let t;\n                for (let n = 0; n < e.length; ++n) {\n                    const i = e[n];\n                    Ke(i, \"path\"), i.length > 0 && (void 0 === t ? t = i : t += `/${i}`)\n                }\n                return void 0 === t ? \".\" : xe.normalize(t)\n            },\n            relative(e, t) {\n                if (Ke(e, \"from\"), Ke(t, \"to\"), e === t) return \"\";\n                if ((e = xe.resolve(e)) === (t = xe.resolve(t))) return \"\";\n                const n = e.length,\n                    i = n - 1,\n                    r = t.length - 1,\n                    s = i < r ? i : r;\n                let o = -1,\n                    a = 0;\n                for (; a < s; a++) {\n                    const n = e.charCodeAt(1 + a);\n                    if (n !== t.charCodeAt(1 + a)) break;\n                    n === Ae && (o = a)\n                }\n                if (a === s)\n                    if (r > s) {\n                        if (t.charCodeAt(1 + a) === Ae) return t.slice(1 + a + 1);\n                        if (0 === a) return t.slice(1 + a)\n                    } else i > s && (e.charCodeAt(1 + a) === Ae ? o = a : 0 === a && (o = 0));\n                let l = \"\";\n                for (a = 1 + o + 1; a <= n; ++a) a !== n && e.charCodeAt(a) !== Ae || (l += 0 === l.length ? \"..\" : \"/..\");\n                return `${l}${t.slice(1+o)}`\n            },\n            toNamespacedPath: e => e,\n            dirname(e) {\n                if (Ke(e, \"path\"), 0 === e.length) return \".\";\n                const t = e.charCodeAt(0) === Ae;\n                let n = -1,\n                    i = !0;\n                for (let t = e.length - 1; t >= 1; --t)\n                    if (e.charCodeAt(t) === Ae) {\n                        if (!i) {\n                            n = t;\n                            break\n                        }\n                    } else i = !1;\n                return -1 === n ? t ? \"/\" : \".\" : t && 1 === n ? \"//\" : e.slice(0, n)\n            },\n            basename(e, t) {\n                void 0 !== t && Ke(t, \"ext\"), Ke(e, \"path\");\n                let n, i = 0,\n                    r = -1,\n                    s = !0;\n                if (void 0 !== t && t.length > 0 && t.length <= e.length) {\n                    if (t === e) return \"\";\n                    let o = t.length - 1,\n                        a = -1;\n                    for (n = e.length - 1; n >= 0; --n) {\n                        const l = e.charCodeAt(n);\n                        if (l === Ae) {\n                            if (!s) {\n                                i = n + 1;\n                                break\n                            }\n                        } else -1 === a && (s = !1, a = n + 1), o >= 0 && (l === t.charCodeAt(o) ? -1 == --o && (r = n) : (o = -1, r = a))\n                    }\n                    return i === r ? r = a : -1 === r && (r = e.length), e.slice(i, r)\n                }\n                for (n = e.length - 1; n >= 0; --n)\n                    if (e.charCodeAt(n) === Ae) {\n                        if (!s) {\n                            i = n + 1;\n                            break\n                        }\n                    } else -1 === r && (s = !1, r = n + 1);\n                return -1 === r ? \"\" : e.slice(i, r)\n            },\n            extname(e) {\n                Ke(e, \"path\");\n                let t = -1,\n                    n = 0,\n                    i = -1,\n                    r = !0,\n                    s = 0;\n                for (let o = e.length - 1; o >= 0; --o) {\n                    const a = e.charCodeAt(o);\n                    if (a !== Ae) - 1 === i && (r = !1, i = o + 1), a === ye ? -1 === t ? t = o : 1 !== s && (s = 1) : -1 !== t && (s = -1);\n                    else if (!r) {\n                        n = o + 1;\n                        break\n                    }\n                }\n                return -1 === t || -1 === i || 0 === s || 1 === s && t === i - 1 && t === n + 1 ? \"\" : e.slice(t, i)\n            },\n            format: Ie.bind(null, \"/\"),\n            parse(e) {\n                Ke(e, \"path\");\n                const t = {\n                    root: \"\",\n                    dir: \"\",\n                    base: \"\",\n                    ext: \"\",\n                    name: \"\"\n                };\n                if (0 === e.length) return t;\n                const n = e.charCodeAt(0) === Ae;\n                let i;\n                n ? (t.root = \"/\", i = 1) : i = 0;\n                let r = -1,\n                    s = 0,\n                    o = -1,\n                    a = !0,\n                    l = e.length - 1,\n                    u = 0;\n                for (; l >= i; --l) {\n                    const t = e.charCodeAt(l);\n                    if (t !== Ae) - 1 === o && (a = !1, o = l + 1), t === ye ? -1 === r ? r = l : 1 !== u && (u = 1) : -1 !== r && (u = -1);\n                    else if (!a) {\n                        s = l + 1;\n                        break\n                    }\n                }\n                if (-1 !== o) {\n                    const i = 0 === s && n ? 1 : s; - 1 === r || 0 === u || 1 === u && r === o - 1 && r === s + 1 ? t.base = t.name = e.slice(i, o) : (t.name = e.slice(i, r), t.base = e.slice(i, o), t.ext = e.slice(r, o))\n                }\n                return s > 0 ? t.dir = e.slice(0, s - 1) : n && (t.dir = \"/\"), t\n            },\n            sep: \"/\",\n            delimiter: \":\",\n            win32: null,\n            posix: null\n        };\n    xe.win32 = Pe.win32 = Pe, xe.posix = Pe.posix = xe;\n    \"win32\" === Ee ? Pe.normalize : xe.normalize, \"win32\" === Ee ? Pe.resolve : xe.resolve, \"win32\" === Ee ? Pe.relative : xe.relative, \"win32\" === Ee ? Pe.dirname : xe.dirname, \"win32\" === Ee ? Pe.basename : xe.basename, \"win32\" === Ee ? Pe.extname : xe.extname, \"win32\" === Ee ? Pe.sep : xe.sep;\n    const ke = /^\\w[\\w\\d+.-]*$/,\n        De = /^\\//,\n        Fe = /^\\/\\//;\n\n    function Ue(e, t) {\n        if (!e.scheme && t) throw new Error(`[UriError]: Scheme is missing: {scheme: \"\", authority: \"${e.authority}\", path: \"${e.path}\", query: \"${e.query}\", fragment: \"${e.fragment}\"}`);\n        if (e.scheme && !ke.test(e.scheme)) throw new Error(\"[UriError]: Scheme contains illegal characters.\");\n        if (e.path)\n            if (e.authority) {\n                if (!De.test(e.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')\n            } else if (Fe.test(e.path)) throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters (\"//\")')\n    }\n    const Be = \"\",\n        qe = \"/\",\n        He = /^(([^:/?#]+?):)?(\\/\\/([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?/;\n    class We {\n        constructor(e, t, n, i, r, s = !1) {\n            \"object\" == typeof e ? (this.scheme = e.scheme || Be, this.authority = e.authority || Be, this.path = e.path || Be, this.query = e.query || Be, this.fragment = e.fragment || Be) : (this.scheme = function(e, t) {\n                return e || t ? e : \"file\"\n            }(e, s), this.authority = t || Be, this.path = function(e, t) {\n                switch (e) {\n                    case \"https\":\n                    case \"http\":\n                    case \"file\":\n                        t ? t[0] !== qe && (t = qe + t) : t = qe\n                }\n                return t\n            }(this.scheme, n || Be), this.query = i || Be, this.fragment = r || Be, Ue(this, s))\n        }\n        static isUri(e) {\n            return e instanceof We || !!e && (\"string\" == typeof e.authority && \"string\" == typeof e.fragment && \"string\" == typeof e.path && \"string\" == typeof e.query && \"string\" == typeof e.scheme && \"string\" == typeof e.fsPath && \"function\" == typeof e.with && \"function\" == typeof e.toString)\n        }\n        get fsPath() {\n            return Qe(this, !1)\n        }\n        with(e) {\n            if (!e) return this;\n            let {\n                scheme: t,\n                authority: n,\n                path: i,\n                query: r,\n                fragment: s\n            } = e;\n            return void 0 === t ? t = this.scheme : null === t && (t = Be), void 0 === n ? n = this.authority : null === n && (n = Be), void 0 === i ? i = this.path : null === i && (i = Be), void 0 === r ? r = this.query : null === r && (r = Be), void 0 === s ? s = this.fragment : null === s && (s = Be), t === this.scheme && n === this.authority && i === this.path && r === this.query && s === this.fragment ? this : new je(t, n, i, r, s)\n        }\n        static parse(e, t = !1) {\n            const n = He.exec(e);\n            return n ? new je(n[2] || Be, et(n[4] || Be), et(n[5] || Be), et(n[7] || Be), et(n[9] || Be), t) : new je(Be, Be, Be, Be, Be)\n        }\n        static file(e) {\n            let t = Be;\n            if (x && (e = e.replace(/\\\\/g, qe)), e[0] === qe && e[1] === qe) {\n                const n = e.indexOf(qe, 2); - 1 === n ? (t = e.substring(2), e = qe) : (t = e.substring(2, n), e = e.substring(n) || qe)\n            }\n            return new je(\"file\", t, e, Be, Be)\n        }\n        static from(e) {\n            const t = new je(e.scheme, e.authority, e.path, e.query, e.fragment);\n            return Ue(t, !0), t\n        }\n        static joinPath(e, ...t) {\n            if (!e.path) throw new Error(\"[UriError]: cannot call joinPath on URI without path\");\n            let n;\n            return n = x && \"file\" === e.scheme ? We.file(Pe.join(Qe(e, !0), ...t)).path : xe.join(e.path, ...t), e.with({\n                path: n\n            })\n        }\n        toString(e = !1) {\n            return Xe(this, e)\n        }\n        toJSON() {\n            return this\n        }\n        static revive(e) {\n            if (e) {\n                if (e instanceof We) return e; {\n                    const t = new je(e);\n                    return t._formatted = e.external, t._fsPath = e._sep === $e ? e.fsPath : null, t\n                }\n            }\n            return e\n        }\n    }\n    const $e = x ? 1 : void 0;\n    class je extends We {\n        constructor() {\n            super(...arguments), this._formatted = null, this._fsPath = null\n        }\n        get fsPath() {\n            return this._fsPath || (this._fsPath = Qe(this, !1)), this._fsPath\n        }\n        toString(e = !1) {\n            return e ? Xe(this, !0) : (this._formatted || (this._formatted = Xe(this, !1)), this._formatted)\n        }\n        toJSON() {\n            const e = {\n                $mid: 1\n            };\n            return this._fsPath && (e.fsPath = this._fsPath, e._sep = $e), this._formatted && (e.external = this._formatted), this.path && (e.path = this.path), this.scheme && (e.scheme = this.scheme), this.authority && (e.authority = this.authority), this.query && (e.query = this.query), this.fragment && (e.fragment = this.fragment), e\n        }\n    }\n    const Ge = {\n        58: \"%3A\",\n        47: \"%2F\",\n        63: \"%3F\",\n        35: \"%23\",\n        91: \"%5B\",\n        93: \"%5D\",\n        64: \"%40\",\n        33: \"%21\",\n        36: \"%24\",\n        38: \"%26\",\n        39: \"%27\",\n        40: \"%28\",\n        41: \"%29\",\n        42: \"%2A\",\n        43: \"%2B\",\n        44: \"%2C\",\n        59: \"%3B\",\n        61: \"%3D\",\n        32: \"%20\"\n    };\n\n    function ze(e, t) {\n        let n, i = -1;\n        for (let r = 0; r < e.length; r++) {\n            const s = e.charCodeAt(r);\n            if (s >= 97 && s <= 122 || s >= 65 && s <= 90 || s >= 48 && s <= 57 || 45 === s || 46 === s || 95 === s || 126 === s || t && 47 === s) - 1 !== i && (n += encodeURIComponent(e.substring(i, r)), i = -1), void 0 !== n && (n += e.charAt(r));\n            else {\n                void 0 === n && (n = e.substr(0, r));\n                const t = Ge[s];\n                void 0 !== t ? (-1 !== i && (n += encodeURIComponent(e.substring(i, r)), i = -1), n += t) : -1 === i && (i = r)\n            }\n        }\n        return -1 !== i && (n += encodeURIComponent(e.substring(i))), void 0 !== n ? n : e\n    }\n\n    function Ye(e) {\n        let t;\n        for (let n = 0; n < e.length; n++) {\n            const i = e.charCodeAt(n);\n            35 === i || 63 === i ? (void 0 === t && (t = e.substr(0, n)), t += Ge[i]) : void 0 !== t && (t += e[n])\n        }\n        return void 0 !== t ? t : e\n    }\n\n    function Qe(e, t) {\n        let n;\n        return n = e.authority && e.path.length > 1 && \"file\" === e.scheme ? `//${e.authority}${e.path}` : 47 === e.path.charCodeAt(0) && (e.path.charCodeAt(1) >= 65 && e.path.charCodeAt(1) <= 90 || e.path.charCodeAt(1) >= 97 && e.path.charCodeAt(1) <= 122) && 58 === e.path.charCodeAt(2) ? t ? e.path.substr(1) : e.path[1].toLowerCase() + e.path.substr(2) : e.path, x && (n = n.replace(/\\//g, \"\\\\\")), n\n    }\n\n    function Xe(e, t) {\n        const n = t ? Ye : ze;\n        let i = \"\",\n            {\n                scheme: r,\n                authority: s,\n                path: o,\n                query: a,\n                fragment: l\n            } = e;\n        if (r && (i += r, i += \":\"), (s || \"file\" === r) && (i += qe, i += qe), s) {\n            let e = s.indexOf(\"@\");\n            if (-1 !== e) {\n                const t = s.substr(0, e);\n                s = s.substr(e + 1), e = t.indexOf(\":\"), -1 === e ? i += n(t, !1) : (i += n(t.substr(0, e), !1), i += \":\", i += n(t.substr(e + 1), !1)), i += \"@\"\n            }\n            s = s.toLowerCase(), e = s.indexOf(\":\"), -1 === e ? i += n(s, !1) : (i += n(s.substr(0, e), !1), i += s.substr(e))\n        }\n        if (o) {\n            if (o.length >= 3 && 47 === o.charCodeAt(0) && 58 === o.charCodeAt(2)) {\n                const e = o.charCodeAt(1);\n                e >= 65 && e <= 90 && (o = `/${String.fromCharCode(e+32)}:${o.substr(3)}`)\n            } else if (o.length >= 2 && 58 === o.charCodeAt(1)) {\n                const e = o.charCodeAt(0);\n                e >= 65 && e <= 90 && (o = `${String.fromCharCode(e+32)}:${o.substr(2)}`)\n            }\n            i += n(o, !0)\n        }\n        return a && (i += \"?\", i += n(a, !1)), l && (i += \"#\", i += t ? l : ze(l, !1)), i\n    }\n\n    function Ze(e) {\n        try {\n            return decodeURIComponent(e)\n        } catch (t) {\n            return e.length > 3 ? e.substr(0, 3) + Ze(e.substr(3)) : e\n        }\n    }\n    const Je = /(%[0-9A-Za-z][0-9A-Za-z])+/g;\n\n    function et(e) {\n        return e.match(Je) ? e.replace(Je, (e => Ze(e))) : e\n    }\n    class tt {\n        constructor(e, t) {\n            this.lineNumber = e, this.column = t\n        }\n        with(e = this.lineNumber, t = this.column) {\n            return e === this.lineNumber && t === this.column ? this : new tt(e, t)\n        }\n        delta(e = 0, t = 0) {\n            return this.with(this.lineNumber + e, this.column + t)\n        }\n        equals(e) {\n            return tt.equals(this, e)\n        }\n        static equals(e, t) {\n            return !e && !t || !!e && !!t && e.lineNumber === t.lineNumber && e.column === t.column\n        }\n        isBefore(e) {\n            return tt.isBefore(this, e)\n        }\n        static isBefore(e, t) {\n            return e.lineNumber < t.lineNumber || !(t.lineNumber < e.lineNumber) && e.column < t.column\n        }\n        isBeforeOrEqual(e) {\n            return tt.isBeforeOrEqual(this, e)\n        }\n        static isBeforeOrEqual(e, t) {\n            return e.lineNumber < t.lineNumber || !(t.lineNumber < e.lineNumber) && e.column <= t.column\n        }\n        static compare(e, t) {\n            let n = 0 | e.lineNumber,\n                i = 0 | t.lineNumber;\n            if (n === i) {\n                return (0 | e.column) - (0 | t.column)\n            }\n            return n - i\n        }\n        clone() {\n            return new tt(this.lineNumber, this.column)\n        }\n        toString() {\n            return \"(\" + this.lineNumber + \",\" + this.column + \")\"\n        }\n        static lift(e) {\n            return new tt(e.lineNumber, e.column)\n        }\n        static isIPosition(e) {\n            return e && \"number\" == typeof e.lineNumber && \"number\" == typeof e.column\n        }\n    }\n    class nt {\n        constructor(e, t, n, i) {\n            e > n || e === n && t > i ? (this.startLineNumber = n, this.startColumn = i, this.endLineNumber = e, this.endColumn = t) : (this.startLineNumber = e, this.startColumn = t, this.endLineNumber = n, this.endColumn = i)\n        }\n        isEmpty() {\n            return nt.isEmpty(this)\n        }\n        static isEmpty(e) {\n            return e.startLineNumber === e.endLineNumber && e.startColumn === e.endColumn\n        }\n        containsPosition(e) {\n            return nt.containsPosition(this, e)\n        }\n        static containsPosition(e, t) {\n            return !(t.lineNumber < e.startLineNumber || t.lineNumber > e.endLineNumber) && (!(t.lineNumber === e.startLineNumber && t.column < e.startColumn) && !(t.lineNumber === e.endLineNumber && t.column > e.endColumn))\n        }\n        containsRange(e) {\n            return nt.containsRange(this, e)\n        }\n        static containsRange(e, t) {\n            return !(t.startLineNumber < e.startLineNumber || t.endLineNumber < e.startLineNumber) && (!(t.startLineNumber > e.endLineNumber || t.endLineNumber > e.endLineNumber) && (!(t.startLineNumber === e.startLineNumber && t.startColumn < e.startColumn) && !(t.endLineNumber === e.endLineNumber && t.endColumn > e.endColumn)))\n        }\n        strictContainsRange(e) {\n            return nt.strictContainsRange(this, e)\n        }\n        static strictContainsRange(e, t) {\n            return !(t.startLineNumber < e.startLineNumber || t.endLineNumber < e.startLineNumber) && (!(t.startLineNumber > e.endLineNumber || t.endLineNumber > e.endLineNumber) && (!(t.startLineNumber === e.startLineNumber && t.startColumn <= e.startColumn) && !(t.endLineNumber === e.endLineNumber && t.endColumn >= e.endColumn)))\n        }\n        plusRange(e) {\n            return nt.plusRange(this, e)\n        }\n        static plusRange(e, t) {\n            let n, i, r, s;\n            return t.startLineNumber < e.startLineNumber ? (n = t.startLineNumber, i = t.startColumn) : t.startLineNumber === e.startLineNumber ? (n = t.startLineNumber, i = Math.min(t.startColumn, e.startColumn)) : (n = e.startLineNumber, i = e.startColumn), t.endLineNumber > e.endLineNumber ? (r = t.endLineNumber, s = t.endColumn) : t.endLineNumber === e.endLineNumber ? (r = t.endLineNumber, s = Math.max(t.endColumn, e.endColumn)) : (r = e.endLineNumber, s = e.endColumn), new nt(n, i, r, s)\n        }\n        intersectRanges(e) {\n            return nt.intersectRanges(this, e)\n        }\n        static intersectRanges(e, t) {\n            let n = e.startLineNumber,\n                i = e.startColumn,\n                r = e.endLineNumber,\n                s = e.endColumn,\n                o = t.startLineNumber,\n                a = t.startColumn,\n                l = t.endLineNumber,\n                u = t.endColumn;\n            return n < o ? (n = o, i = a) : n === o && (i = Math.max(i, a)), r > l ? (r = l, s = u) : r === l && (s = Math.min(s, u)), n > r || n === r && i > s ? null : new nt(n, i, r, s)\n        }\n        equalsRange(e) {\n            return nt.equalsRange(this, e)\n        }\n        static equalsRange(e, t) {\n            return !!e && !!t && e.startLineNumber === t.startLineNumber && e.startColumn === t.startColumn && e.endLineNumber === t.endLineNumber && e.endColumn === t.endColumn\n        }\n        getEndPosition() {\n            return nt.getEndPosition(this)\n        }\n        static getEndPosition(e) {\n            return new tt(e.endLineNumber, e.endColumn)\n        }\n        getStartPosition() {\n            return nt.getStartPosition(this)\n        }\n        static getStartPosition(e) {\n            return new tt(e.startLineNumber, e.startColumn)\n        }\n        toString() {\n            return \"[\" + this.startLineNumber + \",\" + this.startColumn + \" -> \" + this.endLineNumber + \",\" + this.endColumn + \"]\"\n        }\n        setEndPosition(e, t) {\n            return new nt(this.startLineNumber, this.startColumn, e, t)\n        }\n        setStartPosition(e, t) {\n            return new nt(e, t, this.endLineNumber, this.endColumn)\n        }\n        collapseToStart() {\n            return nt.collapseToStart(this)\n        }\n        static collapseToStart(e) {\n            return new nt(e.startLineNumber, e.startColumn, e.startLineNumber, e.startColumn)\n        }\n        static fromPositions(e, t = e) {\n            return new nt(e.lineNumber, e.column, t.lineNumber, t.column)\n        }\n        static lift(e) {\n            return e ? new nt(e.startLineNumber, e.startColumn, e.endLineNumber, e.endColumn) : null\n        }\n        static isIRange(e) {\n            return e && \"number\" == typeof e.startLineNumber && \"number\" == typeof e.startColumn && \"number\" == typeof e.endLineNumber && \"number\" == typeof e.endColumn\n        }\n        static areIntersectingOrTouching(e, t) {\n            return !(e.endLineNumber < t.startLineNumber || e.endLineNumber === t.startLineNumber && e.endColumn < t.startColumn) && !(t.endLineNumber < e.startLineNumber || t.endLineNumber === e.startLineNumber && t.endColumn < e.startColumn)\n        }\n        static areIntersecting(e, t) {\n            return !(e.endLineNumber < t.startLineNumber || e.endLineNumber === t.startLineNumber && e.endColumn <= t.startColumn) && !(t.endLineNumber < e.startLineNumber || t.endLineNumber === e.startLineNumber && t.endColumn <= e.startColumn)\n        }\n        static compareRangesUsingStarts(e, t) {\n            if (e && t) {\n                const n = 0 | e.startLineNumber,\n                    i = 0 | t.startLineNumber;\n                if (n === i) {\n                    const n = 0 | e.startColumn,\n                        i = 0 | t.startColumn;\n                    if (n === i) {\n                        const n = 0 | e.endLineNumber,\n                            i = 0 | t.endLineNumber;\n                        if (n === i) {\n                            return (0 | e.endColumn) - (0 | t.endColumn)\n                        }\n                        return n - i\n                    }\n                    return n - i\n                }\n                return n - i\n            }\n            return (e ? 1 : 0) - (t ? 1 : 0)\n        }\n        static compareRangesUsingEnds(e, t) {\n            return e.endLineNumber === t.endLineNumber ? e.endColumn === t.endColumn ? e.startLineNumber === t.startLineNumber ? e.startColumn - t.startColumn : e.startLineNumber - t.startLineNumber : e.endColumn - t.endColumn : e.endLineNumber - t.endLineNumber\n        }\n        static spansMultipleLines(e) {\n            return e.endLineNumber > e.startLineNumber\n        }\n    }\n\n    function it(e, t, n, i) {\n        return new Se(e, t, n).ComputeDiff(i)\n    }\n    class rt {\n        constructor(e) {\n            const t = [],\n                n = [];\n            for (let i = 0, r = e.length; i < r; i++) t[i] = ut(e[i], 1), n[i] = ht(e[i], 1);\n            this.lines = e, this._startColumns = t, this._endColumns = n\n        }\n        getElements() {\n            const e = [];\n            for (let t = 0, n = this.lines.length; t < n; t++) e[t] = this.lines[t].substring(this._startColumns[t] - 1, this._endColumns[t] - 1);\n            return e\n        }\n        getStrictElement(e) {\n            return this.lines[e]\n        }\n        getStartLineNumber(e) {\n            return e + 1\n        }\n        getEndLineNumber(e) {\n            return e + 1\n        }\n        createCharSequence(e, t, n) {\n            const i = [],\n                r = [],\n                s = [];\n            let o = 0;\n            for (let a = t; a <= n; a++) {\n                const t = this.lines[a],\n                    n = e ? this._startColumns[a] : 1,\n                    l = e ? this._endColumns[a] : t.length + 1;\n                for (let e = n; e < l; e++) i[o] = t.charCodeAt(e - 1), r[o] = a + 1, s[o] = e, o++\n            }\n            return new st(i, r, s)\n        }\n    }\n    class st {\n        constructor(e, t, n) {\n            this._charCodes = e, this._lineNumbers = t, this._columns = n\n        }\n        getElements() {\n            return this._charCodes\n        }\n        getStartLineNumber(e) {\n            return this._lineNumbers[e]\n        }\n        getStartColumn(e) {\n            return this._columns[e]\n        }\n        getEndLineNumber(e) {\n            return this._lineNumbers[e]\n        }\n        getEndColumn(e) {\n            return this._columns[e] + 1\n        }\n    }\n    class ot {\n        constructor(e, t, n, i, r, s, o, a) {\n            this.originalStartLineNumber = e, this.originalStartColumn = t, this.originalEndLineNumber = n, this.originalEndColumn = i, this.modifiedStartLineNumber = r, this.modifiedStartColumn = s, this.modifiedEndLineNumber = o, this.modifiedEndColumn = a\n        }\n        static createFromDiffChange(e, t, n) {\n            let i, r, s, o, a, l, u, h;\n            return 0 === e.originalLength ? (i = 0, r = 0, s = 0, o = 0) : (i = t.getStartLineNumber(e.originalStart), r = t.getStartColumn(e.originalStart), s = t.getEndLineNumber(e.originalStart + e.originalLength - 1), o = t.getEndColumn(e.originalStart + e.originalLength - 1)), 0 === e.modifiedLength ? (a = 0, l = 0, u = 0, h = 0) : (a = n.getStartLineNumber(e.modifiedStart), l = n.getStartColumn(e.modifiedStart), u = n.getEndLineNumber(e.modifiedStart + e.modifiedLength - 1), h = n.getEndColumn(e.modifiedStart + e.modifiedLength - 1)), new ot(i, r, s, o, a, l, u, h)\n        }\n    }\n    class at {\n        constructor(e, t, n, i, r) {\n            this.originalStartLineNumber = e, this.originalEndLineNumber = t, this.modifiedStartLineNumber = n, this.modifiedEndLineNumber = i, this.charChanges = r\n        }\n        static createFromDiffResult(e, t, n, i, r, s, o) {\n            let a, l, u, h, d;\n            if (0 === t.originalLength ? (a = n.getStartLineNumber(t.originalStart) - 1, l = 0) : (a = n.getStartLineNumber(t.originalStart), l = n.getEndLineNumber(t.originalStart + t.originalLength - 1)), 0 === t.modifiedLength ? (u = i.getStartLineNumber(t.modifiedStart) - 1, h = 0) : (u = i.getStartLineNumber(t.modifiedStart), h = i.getEndLineNumber(t.modifiedStart + t.modifiedLength - 1)), s && t.originalLength > 0 && t.originalLength < 20 && t.modifiedLength > 0 && t.modifiedLength < 20 && r()) {\n                const s = n.createCharSequence(e, t.originalStart, t.originalStart + t.originalLength - 1),\n                    a = i.createCharSequence(e, t.modifiedStart, t.modifiedStart + t.modifiedLength - 1);\n                let l = it(s, a, r, !0).changes;\n                o && (l = function(e) {\n                    if (e.length <= 1) return e;\n                    const t = [e[0]];\n                    let n = t[0];\n                    for (let i = 1, r = e.length; i < r; i++) {\n                        const r = e[i],\n                            s = r.originalStart - (n.originalStart + n.originalLength),\n                            o = r.modifiedStart - (n.modifiedStart + n.modifiedLength);\n                        Math.min(s, o) < 3 ? (n.originalLength = r.originalStart + r.originalLength - n.originalStart, n.modifiedLength = r.modifiedStart + r.modifiedLength - n.modifiedStart) : (t.push(r), n = r)\n                    }\n                    return t\n                }(l)), d = [];\n                for (let e = 0, t = l.length; e < t; e++) d.push(ot.createFromDiffChange(l[e], s, a))\n            }\n            return new at(a, l, u, h, d)\n        }\n    }\n    class lt {\n        constructor(e, t, n) {\n            this.shouldComputeCharChanges = n.shouldComputeCharChanges, this.shouldPostProcessCharChanges = n.shouldPostProcessCharChanges, this.shouldIgnoreTrimWhitespace = n.shouldIgnoreTrimWhitespace, this.shouldMakePrettyDiff = n.shouldMakePrettyDiff, this.originalLines = e, this.modifiedLines = t, this.original = new rt(e), this.modified = new rt(t), this.continueLineDiff = dt(n.maxComputationTime), this.continueCharDiff = dt(0 === n.maxComputationTime ? 0 : Math.min(n.maxComputationTime, 5e3))\n        }\n        computeDiff() {\n            if (1 === this.original.lines.length && 0 === this.original.lines[0].length) return 1 === this.modified.lines.length && 0 === this.modified.lines[0].length ? {\n                quitEarly: !1,\n                changes: []\n            } : {\n                quitEarly: !1,\n                changes: [{\n                    originalStartLineNumber: 1,\n                    originalEndLineNumber: 1,\n                    modifiedStartLineNumber: 1,\n                    modifiedEndLineNumber: this.modified.lines.length,\n                    charChanges: [{\n                        modifiedEndColumn: 0,\n                        modifiedEndLineNumber: 0,\n                        modifiedStartColumn: 0,\n                        modifiedStartLineNumber: 0,\n                        originalEndColumn: 0,\n                        originalEndLineNumber: 0,\n                        originalStartColumn: 0,\n                        originalStartLineNumber: 0\n                    }]\n                }]\n            };\n            if (1 === this.modified.lines.length && 0 === this.modified.lines[0].length) return {\n                quitEarly: !1,\n                changes: [{\n                    originalStartLineNumber: 1,\n                    originalEndLineNumber: this.original.lines.length,\n                    modifiedStartLineNumber: 1,\n                    modifiedEndLineNumber: 1,\n                    charChanges: [{\n                        modifiedEndColumn: 0,\n                        modifiedEndLineNumber: 0,\n                        modifiedStartColumn: 0,\n                        modifiedStartLineNumber: 0,\n                        originalEndColumn: 0,\n                        originalEndLineNumber: 0,\n                        originalStartColumn: 0,\n                        originalStartLineNumber: 0\n                    }]\n                }]\n            };\n            const e = it(this.original, this.modified, this.continueLineDiff, this.shouldMakePrettyDiff),\n                t = e.changes,\n                n = e.quitEarly;\n            if (this.shouldIgnoreTrimWhitespace) {\n                const e = [];\n                for (let n = 0, i = t.length; n < i; n++) e.push(at.createFromDiffResult(this.shouldIgnoreTrimWhitespace, t[n], this.original, this.modified, this.continueCharDiff, this.shouldComputeCharChanges, this.shouldPostProcessCharChanges));\n                return {\n                    quitEarly: n,\n                    changes: e\n                }\n            }\n            const i = [];\n            let r = 0,\n                s = 0;\n            for (let e = -1, n = t.length; e < n; e++) {\n                const o = e + 1 < n ? t[e + 1] : null,\n                    a = o ? o.originalStart : this.originalLines.length,\n                    l = o ? o.modifiedStart : this.modifiedLines.length;\n                for (; r < a && s < l;) {\n                    const e = this.originalLines[r],\n                        t = this.modifiedLines[s];\n                    if (e !== t) {\n                        {\n                            let n = ut(e, 1),\n                                o = ut(t, 1);\n                            for (; n > 1 && o > 1;) {\n                                if (e.charCodeAt(n - 2) !== t.charCodeAt(o - 2)) break;\n                                n--, o--\n                            }(n > 1 || o > 1) && this._pushTrimWhitespaceCharChange(i, r + 1, 1, n, s + 1, 1, o)\n                        } {\n                            let n = ht(e, 1),\n                                o = ht(t, 1);\n                            const a = e.length + 1,\n                                l = t.length + 1;\n                            for (; n < a && o < l;) {\n                                if (e.charCodeAt(n - 1) !== e.charCodeAt(o - 1)) break;\n                                n++, o++\n                            }(n < a || o < l) && this._pushTrimWhitespaceCharChange(i, r + 1, n, a, s + 1, o, l)\n                        }\n                    }\n                    r++, s++\n                }\n                o && (i.push(at.createFromDiffResult(this.shouldIgnoreTrimWhitespace, o, this.original, this.modified, this.continueCharDiff, this.shouldComputeCharChanges, this.shouldPostProcessCharChanges)), r += o.originalLength, s += o.modifiedLength)\n            }\n            return {\n                quitEarly: n,\n                changes: i\n            }\n        }\n        _pushTrimWhitespaceCharChange(e, t, n, i, r, s, o) {\n            if (this._mergeTrimWhitespaceCharChange(e, t, n, i, r, s, o)) return;\n            let a;\n            this.shouldComputeCharChanges && (a = [new ot(t, n, t, i, r, s, r, o)]), e.push(new at(t, t, r, r, a))\n        }\n        _mergeTrimWhitespaceCharChange(e, t, n, i, r, s, o) {\n            const a = e.length;\n            if (0 === a) return !1;\n            const l = e[a - 1];\n            return 0 !== l.originalEndLineNumber && 0 !== l.modifiedEndLineNumber && (l.originalEndLineNumber + 1 === t && l.modifiedEndLineNumber + 1 === r && (l.originalEndLineNumber = t, l.modifiedEndLineNumber = r, this.shouldComputeCharChanges && l.charChanges && l.charChanges.push(new ot(t, n, t, i, r, s, r, o)), !0))\n        }\n    }\n\n    function ut(e, t) {\n        const n = function(e) {\n            for (let t = 0, n = e.length; t < n; t++) {\n                const n = e.charCodeAt(t);\n                if (32 !== n && 9 !== n) return t\n            }\n            return -1\n        }(e);\n        return -1 === n ? t : n + 1\n    }\n\n    function ht(e, t) {\n        const n = function(e, t = e.length - 1) {\n            for (let n = t; n >= 0; n--) {\n                const t = e.charCodeAt(n);\n                if (32 !== t && 9 !== t) return n\n            }\n            return -1\n        }(e);\n        return -1 === n ? t : n + 2\n    }\n\n    function dt(e) {\n        if (0 === e) return () => !0;\n        const t = Date.now();\n        return () => Date.now() - t < e\n    }\n\n    function ct(e) {\n        return e < 0 ? 0 : e > 255 ? 255 : 0 | e\n    }\n\n    function mt(e) {\n        return e < 0 ? 0 : e > 4294967295 ? 4294967295 : 0 | e\n    }\n    class ft {\n        constructor(e, t) {\n            this._prefixSumIndexOfResultBrand = void 0, this.index = e, this.remainder = t\n        }\n    }\n    class gt {\n        constructor(e) {\n            this.values = e, this.prefixSum = new Uint32Array(e.length), this.prefixSumValidIndex = new Int32Array(1), this.prefixSumValidIndex[0] = -1\n        }\n        insertValues(e, t) {\n            e = mt(e);\n            const n = this.values,\n                i = this.prefixSum,\n                r = t.length;\n            return 0 !== r && (this.values = new Uint32Array(n.length + r), this.values.set(n.subarray(0, e), 0), this.values.set(n.subarray(e), e + r), this.values.set(t, e), e - 1 < this.prefixSumValidIndex[0] && (this.prefixSumValidIndex[0] = e - 1), this.prefixSum = new Uint32Array(this.values.length), this.prefixSumValidIndex[0] >= 0 && this.prefixSum.set(i.subarray(0, this.prefixSumValidIndex[0] + 1)), !0)\n        }\n        changeValue(e, t) {\n            return e = mt(e), t = mt(t), this.values[e] !== t && (this.values[e] = t, e - 1 < this.prefixSumValidIndex[0] && (this.prefixSumValidIndex[0] = e - 1), !0)\n        }\n        removeValues(e, t) {\n            e = mt(e), t = mt(t);\n            const n = this.values,\n                i = this.prefixSum;\n            if (e >= n.length) return !1;\n            let r = n.length - e;\n            return t >= r && (t = r), 0 !== t && (this.values = new Uint32Array(n.length - t), this.values.set(n.subarray(0, e), 0), this.values.set(n.subarray(e + t), e), this.prefixSum = new Uint32Array(this.values.length), e - 1 < this.prefixSumValidIndex[0] && (this.prefixSumValidIndex[0] = e - 1), this.prefixSumValidIndex[0] >= 0 && this.prefixSum.set(i.subarray(0, this.prefixSumValidIndex[0] + 1)), !0)\n        }\n        getTotalSum() {\n            return 0 === this.values.length ? 0 : this._getPrefixSum(this.values.length - 1)\n        }\n        getPrefixSum(e) {\n            return e < 0 ? 0 : (e = mt(e), this._getPrefixSum(e))\n        }\n        _getPrefixSum(e) {\n            if (e <= this.prefixSumValidIndex[0]) return this.prefixSum[e];\n            let t = this.prefixSumValidIndex[0] + 1;\n            0 === t && (this.prefixSum[0] = this.values[0], t++), e >= this.values.length && (e = this.values.length - 1);\n            for (let n = t; n <= e; n++) this.prefixSum[n] = this.prefixSum[n - 1] + this.values[n];\n            return this.prefixSumValidIndex[0] = Math.max(this.prefixSumValidIndex[0], e), this.prefixSum[e]\n        }\n        getIndexOf(e) {\n            e = Math.floor(e), this.getTotalSum();\n            let t = 0,\n                n = this.values.length - 1,\n                i = 0,\n                r = 0,\n                s = 0;\n            for (; t <= n;)\n                if (i = t + (n - t) / 2 | 0, r = this.prefixSum[i], s = r - this.values[i], e < s) n = i - 1;\n                else {\n                    if (!(e >= r)) break;\n                    t = i + 1\n                } return new ft(i, e - s)\n        }\n    }\n    class _t {\n        constructor(e, t, n, i) {\n            this._uri = e, this._lines = t, this._eol = n, this._versionId = i, this._lineStarts = null, this._cachedTextValue = null\n        }\n        dispose() {\n            this._lines.length = 0\n        }\n        get version() {\n            return this._versionId\n        }\n        getText() {\n            return null === this._cachedTextValue && (this._cachedTextValue = this._lines.join(this._eol)), this._cachedTextValue\n        }\n        onEvents(e) {\n            e.eol && e.eol !== this._eol && (this._eol = e.eol, this._lineStarts = null);\n            const t = e.changes;\n            for (const e of t) this._acceptDeleteRange(e.range), this._acceptInsertText(new tt(e.range.startLineNumber, e.range.startColumn), e.text);\n            this._versionId = e.versionId, this._cachedTextValue = null\n        }\n        _ensureLineStarts() {\n            if (!this._lineStarts) {\n                const e = this._eol.length,\n                    t = this._lines.length,\n                    n = new Uint32Array(t);\n                for (let i = 0; i < t; i++) n[i] = this._lines[i].length + e;\n                this._lineStarts = new gt(n)\n            }\n        }\n        _setLineText(e, t) {\n            this._lines[e] = t, this._lineStarts && this._lineStarts.changeValue(e, this._lines[e].length + this._eol.length)\n        }\n        _acceptDeleteRange(e) {\n            if (e.startLineNumber !== e.endLineNumber) this._setLineText(e.startLineNumber - 1, this._lines[e.startLineNumber - 1].substring(0, e.startColumn - 1) + this._lines[e.endLineNumber - 1].substring(e.endColumn - 1)), this._lines.splice(e.startLineNumber, e.endLineNumber - e.startLineNumber), this._lineStarts && this._lineStarts.removeValues(e.startLineNumber, e.endLineNumber - e.startLineNumber);\n            else {\n                if (e.startColumn === e.endColumn) return;\n                this._setLineText(e.startLineNumber - 1, this._lines[e.startLineNumber - 1].substring(0, e.startColumn - 1) + this._lines[e.startLineNumber - 1].substring(e.endColumn - 1))\n            }\n        }\n        _acceptInsertText(e, t) {\n            if (0 === t.length) return;\n            let n = t.split(/\\r\\n|\\r|\\n/);\n            if (1 === n.length) return void this._setLineText(e.lineNumber - 1, this._lines[e.lineNumber - 1].substring(0, e.column - 1) + n[0] + this._lines[e.lineNumber - 1].substring(e.column - 1));\n            n[n.length - 1] += this._lines[e.lineNumber - 1].substring(e.column - 1), this._setLineText(e.lineNumber - 1, this._lines[e.lineNumber - 1].substring(0, e.column - 1) + n[0]);\n            let i = new Uint32Array(n.length - 1);\n            for (let t = 1; t < n.length; t++) this._lines.splice(e.lineNumber + t - 1, 0, n[t]), i[t - 1] = n[t].length + this._eol.length;\n            this._lineStarts && this._lineStarts.insertValues(e.lineNumber, i)\n        }\n    }\n    const pt = function(e = \"\") {\n        let t = \"(-?\\\\d*\\\\.\\\\d\\\\w*)|([^\";\n        for (const n of \"`~!@#$%^&*()-=+[{]}\\\\|;:'\\\",.<>/?\") e.indexOf(n) >= 0 || (t += \"\\\\\" + n);\n        return t += \"\\\\s]+)\", new RegExp(t, \"g\")\n    }();\n    const Ct = {\n        maxLen: 1e3,\n        windowSize: 15,\n        timeBudget: 150\n    };\n\n    function Lt(e, t, n, i, r = Ct) {\n        if (n.length > r.maxLen) {\n            let s = e - r.maxLen / 2;\n            return s < 0 ? s = 0 : i += s, Lt(e, t, n = n.substring(s, e + r.maxLen / 2), i, r)\n        }\n        const s = Date.now(),\n            o = e - 1 - i;\n        let a = -1,\n            l = null;\n        for (let e = 1; !(Date.now() - s >= r.timeBudget); e++) {\n            const i = o - r.windowSize * e;\n            t.lastIndex = Math.max(0, i);\n            const s = St(t, n, o, a);\n            if (!s && l) break;\n            if (l = s, i <= 0) break;\n            a = i\n        }\n        if (l) {\n            let e = {\n                word: l[0],\n                startColumn: i + 1 + l.index,\n                endColumn: i + 1 + l.index + l[0].length\n            };\n            return t.lastIndex = 0, e\n        }\n        return null\n    }\n\n    function St(e, t, n, i) {\n        let r;\n        for (; r = e.exec(t);) {\n            const t = r.index || 0;\n            if (t <= n && e.lastIndex >= n) return r;\n            if (i > 0 && t > i) return null\n        }\n        return null\n    }\n    class bt {\n        constructor(e) {\n            let t = ct(e);\n            this._defaultValue = t, this._asciiMap = bt._createAsciiMap(t), this._map = new Map\n        }\n        static _createAsciiMap(e) {\n            let t = new Uint8Array(256);\n            for (let n = 0; n < 256; n++) t[n] = e;\n            return t\n        }\n        set(e, t) {\n            let n = ct(t);\n            e >= 0 && e < 256 ? this._asciiMap[e] = n : this._map.set(e, n)\n        }\n        get(e) {\n            return e >= 0 && e < 256 ? this._asciiMap[e] : this._map.get(e) || this._defaultValue\n        }\n    }\n    class Nt {\n        constructor(e, t, n) {\n            const i = new Uint8Array(e * t);\n            for (let r = 0, s = e * t; r < s; r++) i[r] = n;\n            this._data = i, this.rows = e, this.cols = t\n        }\n        get(e, t) {\n            return this._data[e * this.cols + t]\n        }\n        set(e, t, n) {\n            this._data[e * this.cols + t] = n\n        }\n    }\n    class Et {\n        constructor(e) {\n            let t = 0,\n                n = 0;\n            for (let i = 0, r = e.length; i < r; i++) {\n                let [r, s, o] = e[i];\n                s > t && (t = s), r > n && (n = r), o > n && (n = o)\n            }\n            t++, n++;\n            let i = new Nt(n, t, 0);\n            for (let t = 0, n = e.length; t < n; t++) {\n                let [n, r, s] = e[t];\n                i.set(n, r, s)\n            }\n            this._states = i, this._maxCharCode = t\n        }\n        nextState(e, t) {\n            return t < 0 || t >= this._maxCharCode ? 0 : this._states.get(e, t)\n        }\n    }\n    let yt = null;\n    let At = null;\n    class wt {\n        static _createLink(e, t, n, i, r) {\n            let s = r - 1;\n            do {\n                const n = t.charCodeAt(s);\n                if (2 !== e.get(n)) break;\n                s--\n            } while (s > i);\n            if (i > 0) {\n                const e = t.charCodeAt(i - 1),\n                    n = t.charCodeAt(s);\n                (40 === e && 41 === n || 91 === e && 93 === n || 123 === e && 125 === n) && s--\n            }\n            return {\n                range: {\n                    startLineNumber: n,\n                    startColumn: i + 1,\n                    endLineNumber: n,\n                    endColumn: s + 2\n                },\n                url: t.substring(i, s + 1)\n            }\n        }\n        static computeLinks(e, t = function() {\n            return null === yt && (yt = new Et([\n                [1, 104, 2],\n                [1, 72, 2],\n                [1, 102, 6],\n                [1, 70, 6],\n                [2, 116, 3],\n                [2, 84, 3],\n                [3, 116, 4],\n                [3, 84, 4],\n                [4, 112, 5],\n                [4, 80, 5],\n                [5, 115, 9],\n                [5, 83, 9],\n                [5, 58, 10],\n                [6, 105, 7],\n                [6, 73, 7],\n                [7, 108, 8],\n                [7, 76, 8],\n                [8, 101, 9],\n                [8, 69, 9],\n                [9, 58, 10],\n                [10, 47, 11],\n                [11, 47, 12]\n            ])), yt\n        }()) {\n            const n = function() {\n                if (null === At) {\n                    At = new bt(0);\n                    const e = \" \\t<>'\\\"、。｡､，．：；‘〈「『〔（［｛｢｣｝］）〕』」〉’｀～…\";\n                    for (let t = 0; t < e.length; t++) At.set(e.charCodeAt(t), 1);\n                    const t = \".,;\";\n                    for (let e = 0; e < t.length; e++) At.set(t.charCodeAt(e), 2)\n                }\n                return At\n            }();\n            let i = [];\n            for (let r = 1, s = e.getLineCount(); r <= s; r++) {\n                const s = e.getLineContent(r),\n                    o = s.length;\n                let a = 0,\n                    l = 0,\n                    u = 0,\n                    h = 1,\n                    d = !1,\n                    c = !1,\n                    m = !1,\n                    f = !1;\n                for (; a < o;) {\n                    let e = !1;\n                    const o = s.charCodeAt(a);\n                    if (13 === h) {\n                        let t;\n                        switch (o) {\n                            case 40:\n                                d = !0, t = 0;\n                                break;\n                            case 41:\n                                t = d ? 0 : 1;\n                                break;\n                            case 91:\n                                m = !0, c = !0, t = 0;\n                                break;\n                            case 93:\n                                m = !1, t = c ? 0 : 1;\n                                break;\n                            case 123:\n                                f = !0, t = 0;\n                                break;\n                            case 125:\n                                t = f ? 0 : 1;\n                                break;\n                            case 39:\n                                t = 34 === u || 96 === u ? 0 : 1;\n                                break;\n                            case 34:\n                                t = 39 === u || 96 === u ? 0 : 1;\n                                break;\n                            case 96:\n                                t = 39 === u || 34 === u ? 0 : 1;\n                                break;\n                            case 42:\n                                t = 42 === u ? 1 : 0;\n                                break;\n                            case 124:\n                                t = 124 === u ? 1 : 0;\n                                break;\n                            case 32:\n                                t = m ? 0 : 1;\n                                break;\n                            default:\n                                t = n.get(o)\n                        }\n                        1 === t && (i.push(wt._createLink(n, s, r, l, a)), e = !0)\n                    } else if (12 === h) {\n                        let t;\n                        91 === o ? (c = !0, t = 0) : t = n.get(o), 1 === t ? e = !0 : h = 13\n                    } else h = t.nextState(h, o), 0 === h && (e = !0);\n                    e && (h = 1, d = !1, c = !1, f = !1, l = a + 1, u = o), a++\n                }\n                13 === h && i.push(wt._createLink(n, s, r, l, o))\n            }\n            return i\n        }\n    }\n    class vt {\n        constructor() {\n            this._defaultValueSet = [\n                [\"true\", \"false\"],\n                [\"True\", \"False\"],\n                [\"Private\", \"Public\", \"Friend\", \"ReadOnly\", \"Partial\", \"Protected\", \"WriteOnly\"],\n                [\"public\", \"protected\", \"private\"]\n            ]\n        }\n        navigateValueSet(e, t, n, i, r) {\n            if (e && t) {\n                let n = this.doNavigateValueSet(t, r);\n                if (n) return {\n                    range: e,\n                    value: n\n                }\n            }\n            if (n && i) {\n                let e = this.doNavigateValueSet(i, r);\n                if (e) return {\n                    range: n,\n                    value: e\n                }\n            }\n            return null\n        }\n        doNavigateValueSet(e, t) {\n            let n = this.numberReplace(e, t);\n            return null !== n ? n : this.textReplace(e, t)\n        }\n        numberReplace(e, t) {\n            let n = Math.pow(10, e.length - (e.lastIndexOf(\".\") + 1)),\n                i = Number(e),\n                r = parseFloat(e);\n            return isNaN(i) || isNaN(r) || i !== r ? null : 0 !== i || t ? (i = Math.floor(i * n), i += t ? n : -n, String(i / n)) : null\n        }\n        textReplace(e, t) {\n            return this.valueSetsReplace(this._defaultValueSet, e, t)\n        }\n        valueSetsReplace(e, t, n) {\n            let i = null;\n            for (let r = 0, s = e.length; null === i && r < s; r++) i = this.valueSetReplace(e[r], t, n);\n            return i\n        }\n        valueSetReplace(e, t, n) {\n            let i = e.indexOf(t);\n            return i >= 0 ? (i += n ? 1 : -1, i < 0 ? i = e.length - 1 : i %= e.length, e[i]) : null\n        }\n    }\n    vt.INSTANCE = new vt;\n    const Mt = Object.freeze((function(e, t) {\n        const n = setTimeout(e.bind(t), 0);\n        return {\n            dispose() {\n                clearTimeout(n)\n            }\n        }\n    }));\n    var Kt;\n    ! function(e) {\n        e.isCancellationToken = function(t) {\n            return t === e.None || t === e.Cancelled || (t instanceof Ot || !(!t || \"object\" != typeof t) && (\"boolean\" == typeof t.isCancellationRequested && \"function\" == typeof t.onCancellationRequested))\n        }, e.None = Object.freeze({\n            isCancellationRequested: !1,\n            onCancellationRequested: B.None\n        }), e.Cancelled = Object.freeze({\n            isCancellationRequested: !0,\n            onCancellationRequested: Mt\n        })\n    }(Kt || (Kt = {}));\n    class Ot {\n        constructor() {\n            this._isCancelled = !1, this._emitter = null\n        }\n        cancel() {\n            this._isCancelled || (this._isCancelled = !0, this._emitter && (this._emitter.fire(void 0), this.dispose()))\n        }\n        get isCancellationRequested() {\n            return this._isCancelled\n        }\n        get onCancellationRequested() {\n            return this._isCancelled ? Mt : (this._emitter || (this._emitter = new H), this._emitter.event)\n        }\n        dispose() {\n            this._emitter && (this._emitter.dispose(), this._emitter = null)\n        }\n    }\n    class Tt {\n        constructor(e) {\n            this._token = void 0, this._parentListener = void 0, this._parentListener = e && e.onCancellationRequested(this.cancel, this)\n        }\n        get token() {\n            return this._token || (this._token = new Ot), this._token\n        }\n        cancel() {\n            this._token ? this._token instanceof Ot && this._token.cancel() : this._token = Kt.Cancelled\n        }\n        dispose(e = !1) {\n            e && this.cancel(), this._parentListener && this._parentListener.dispose(), this._token ? this._token instanceof Ot && this._token.dispose() : this._token = Kt.None\n        }\n    }\n    class Rt {\n        constructor() {\n            this._keyCodeToStr = [], this._strToKeyCode = Object.create(null)\n        }\n        define(e, t) {\n            this._keyCodeToStr[e] = t, this._strToKeyCode[t.toLowerCase()] = e\n        }\n        keyCodeToStr(e) {\n            return this._keyCodeToStr[e]\n        }\n        strToKeyCode(e) {\n            return this._strToKeyCode[e.toLowerCase()] || 0\n        }\n    }\n    const Vt = new Rt,\n        It = new Rt,\n        Pt = new Rt,\n        xt = new Array(230),\n        kt = {},\n        Dt = [],\n        Ft = Object.create(null),\n        Ut = Object.create(null),\n        Bt = [],\n        qt = [];\n    for (let e = 0; e <= 193; e++) Bt[e] = -1;\n    for (let e = 0; e <= 126; e++) qt[e] = -1;\n    var Ht, Wt, $t, jt, Gt, zt, Yt, Qt, Xt, Zt, Jt, en, tn, nn, rn, sn, on, an, ln, un, hn, dn, cn, mn, fn, gn, _n, pn, Cn, Ln, Sn, bn, Nn, En, yn, An;\n    ! function() {\n        const e = \"\",\n            t = [\n                [0, 1, 0, \"None\", 0, \"unknown\", 0, \"VK_UNKNOWN\", e, e],\n                [0, 1, 1, \"Hyper\", 0, e, 0, e, e, e],\n                [0, 1, 2, \"Super\", 0, e, 0, e, e, e],\n                [0, 1, 3, \"Fn\", 0, e, 0, e, e, e],\n                [0, 1, 4, \"FnLock\", 0, e, 0, e, e, e],\n                [0, 1, 5, \"Suspend\", 0, e, 0, e, e, e],\n                [0, 1, 6, \"Resume\", 0, e, 0, e, e, e],\n                [0, 1, 7, \"Turbo\", 0, e, 0, e, e, e],\n                [0, 1, 8, \"Sleep\", 0, e, 0, \"VK_SLEEP\", e, e],\n                [0, 1, 9, \"WakeUp\", 0, e, 0, e, e, e],\n                [31, 0, 10, \"KeyA\", 31, \"A\", 65, \"VK_A\", e, e],\n                [32, 0, 11, \"KeyB\", 32, \"B\", 66, \"VK_B\", e, e],\n                [33, 0, 12, \"KeyC\", 33, \"C\", 67, \"VK_C\", e, e],\n                [34, 0, 13, \"KeyD\", 34, \"D\", 68, \"VK_D\", e, e],\n                [35, 0, 14, \"KeyE\", 35, \"E\", 69, \"VK_E\", e, e],\n                [36, 0, 15, \"KeyF\", 36, \"F\", 70, \"VK_F\", e, e],\n                [37, 0, 16, \"KeyG\", 37, \"G\", 71, \"VK_G\", e, e],\n                [38, 0, 17, \"KeyH\", 38, \"H\", 72, \"VK_H\", e, e],\n                [39, 0, 18, \"KeyI\", 39, \"I\", 73, \"VK_I\", e, e],\n                [40, 0, 19, \"KeyJ\", 40, \"J\", 74, \"VK_J\", e, e],\n                [41, 0, 20, \"KeyK\", 41, \"K\", 75, \"VK_K\", e, e],\n                [42, 0, 21, \"KeyL\", 42, \"L\", 76, \"VK_L\", e, e],\n                [43, 0, 22, \"KeyM\", 43, \"M\", 77, \"VK_M\", e, e],\n                [44, 0, 23, \"KeyN\", 44, \"N\", 78, \"VK_N\", e, e],\n                [45, 0, 24, \"KeyO\", 45, \"O\", 79, \"VK_O\", e, e],\n                [46, 0, 25, \"KeyP\", 46, \"P\", 80, \"VK_P\", e, e],\n                [47, 0, 26, \"KeyQ\", 47, \"Q\", 81, \"VK_Q\", e, e],\n                [48, 0, 27, \"KeyR\", 48, \"R\", 82, \"VK_R\", e, e],\n                [49, 0, 28, \"KeyS\", 49, \"S\", 83, \"VK_S\", e, e],\n                [50, 0, 29, \"KeyT\", 50, \"T\", 84, \"VK_T\", e, e],\n                [51, 0, 30, \"KeyU\", 51, \"U\", 85, \"VK_U\", e, e],\n                [52, 0, 31, \"KeyV\", 52, \"V\", 86, \"VK_V\", e, e],\n                [53, 0, 32, \"KeyW\", 53, \"W\", 87, \"VK_W\", e, e],\n                [54, 0, 33, \"KeyX\", 54, \"X\", 88, \"VK_X\", e, e],\n                [55, 0, 34, \"KeyY\", 55, \"Y\", 89, \"VK_Y\", e, e],\n                [56, 0, 35, \"KeyZ\", 56, \"Z\", 90, \"VK_Z\", e, e],\n                [22, 0, 36, \"Digit1\", 22, \"1\", 49, \"VK_1\", e, e],\n                [23, 0, 37, \"Digit2\", 23, \"2\", 50, \"VK_2\", e, e],\n                [24, 0, 38, \"Digit3\", 24, \"3\", 51, \"VK_3\", e, e],\n                [25, 0, 39, \"Digit4\", 25, \"4\", 52, \"VK_4\", e, e],\n                [26, 0, 40, \"Digit5\", 26, \"5\", 53, \"VK_5\", e, e],\n                [27, 0, 41, \"Digit6\", 27, \"6\", 54, \"VK_6\", e, e],\n                [28, 0, 42, \"Digit7\", 28, \"7\", 55, \"VK_7\", e, e],\n                [29, 0, 43, \"Digit8\", 29, \"8\", 56, \"VK_8\", e, e],\n                [30, 0, 44, \"Digit9\", 30, \"9\", 57, \"VK_9\", e, e],\n                [21, 0, 45, \"Digit0\", 21, \"0\", 48, \"VK_0\", e, e],\n                [3, 1, 46, \"Enter\", 3, \"Enter\", 13, \"VK_RETURN\", e, e],\n                [9, 1, 47, \"Escape\", 9, \"Escape\", 27, \"VK_ESCAPE\", e, e],\n                [1, 1, 48, \"Backspace\", 1, \"Backspace\", 8, \"VK_BACK\", e, e],\n                [2, 1, 49, \"Tab\", 2, \"Tab\", 9, \"VK_TAB\", e, e],\n                [10, 1, 50, \"Space\", 10, \"Space\", 32, \"VK_SPACE\", e, e],\n                [83, 0, 51, \"Minus\", 83, \"-\", 189, \"VK_OEM_MINUS\", \"-\", \"OEM_MINUS\"],\n                [81, 0, 52, \"Equal\", 81, \"=\", 187, \"VK_OEM_PLUS\", \"=\", \"OEM_PLUS\"],\n                [87, 0, 53, \"BracketLeft\", 87, \"[\", 219, \"VK_OEM_4\", \"[\", \"OEM_4\"],\n                [89, 0, 54, \"BracketRight\", 89, \"]\", 221, \"VK_OEM_6\", \"]\", \"OEM_6\"],\n                [88, 0, 55, \"Backslash\", 88, \"\\\\\", 220, \"VK_OEM_5\", \"\\\\\", \"OEM_5\"],\n                [0, 0, 56, \"IntlHash\", 0, e, 0, e, e, e],\n                [80, 0, 57, \"Semicolon\", 80, \";\", 186, \"VK_OEM_1\", \";\", \"OEM_1\"],\n                [90, 0, 58, \"Quote\", 90, \"'\", 222, \"VK_OEM_7\", \"'\", \"OEM_7\"],\n                [86, 0, 59, \"Backquote\", 86, \"`\", 192, \"VK_OEM_3\", \"`\", \"OEM_3\"],\n                [82, 0, 60, \"Comma\", 82, \",\", 188, \"VK_OEM_COMMA\", \",\", \"OEM_COMMA\"],\n                [84, 0, 61, \"Period\", 84, \".\", 190, \"VK_OEM_PERIOD\", \".\", \"OEM_PERIOD\"],\n                [85, 0, 62, \"Slash\", 85, \"/\", 191, \"VK_OEM_2\", \"/\", \"OEM_2\"],\n                [8, 1, 63, \"CapsLock\", 8, \"CapsLock\", 20, \"VK_CAPITAL\", e, e],\n                [59, 1, 64, \"F1\", 59, \"F1\", 112, \"VK_F1\", e, e],\n                [60, 1, 65, \"F2\", 60, \"F2\", 113, \"VK_F2\", e, e],\n                [61, 1, 66, \"F3\", 61, \"F3\", 114, \"VK_F3\", e, e],\n                [62, 1, 67, \"F4\", 62, \"F4\", 115, \"VK_F4\", e, e],\n                [63, 1, 68, \"F5\", 63, \"F5\", 116, \"VK_F5\", e, e],\n                [64, 1, 69, \"F6\", 64, \"F6\", 117, \"VK_F6\", e, e],\n                [65, 1, 70, \"F7\", 65, \"F7\", 118, \"VK_F7\", e, e],\n                [66, 1, 71, \"F8\", 66, \"F8\", 119, \"VK_F8\", e, e],\n                [67, 1, 72, \"F9\", 67, \"F9\", 120, \"VK_F9\", e, e],\n                [68, 1, 73, \"F10\", 68, \"F10\", 121, \"VK_F10\", e, e],\n                [69, 1, 74, \"F11\", 69, \"F11\", 122, \"VK_F11\", e, e],\n                [70, 1, 75, \"F12\", 70, \"F12\", 123, \"VK_F12\", e, e],\n                [0, 1, 76, \"PrintScreen\", 0, e, 0, e, e, e],\n                [79, 1, 77, \"ScrollLock\", 79, \"ScrollLock\", 145, \"VK_SCROLL\", e, e],\n                [7, 1, 78, \"Pause\", 7, \"PauseBreak\", 19, \"VK_PAUSE\", e, e],\n                [19, 1, 79, \"Insert\", 19, \"Insert\", 45, \"VK_INSERT\", e, e],\n                [14, 1, 80, \"Home\", 14, \"Home\", 36, \"VK_HOME\", e, e],\n                [11, 1, 81, \"PageUp\", 11, \"PageUp\", 33, \"VK_PRIOR\", e, e],\n                [20, 1, 82, \"Delete\", 20, \"Delete\", 46, \"VK_DELETE\", e, e],\n                [13, 1, 83, \"End\", 13, \"End\", 35, \"VK_END\", e, e],\n                [12, 1, 84, \"PageDown\", 12, \"PageDown\", 34, \"VK_NEXT\", e, e],\n                [17, 1, 85, \"ArrowRight\", 17, \"RightArrow\", 39, \"VK_RIGHT\", \"Right\", e],\n                [15, 1, 86, \"ArrowLeft\", 15, \"LeftArrow\", 37, \"VK_LEFT\", \"Left\", e],\n                [18, 1, 87, \"ArrowDown\", 18, \"DownArrow\", 40, \"VK_DOWN\", \"Down\", e],\n                [16, 1, 88, \"ArrowUp\", 16, \"UpArrow\", 38, \"VK_UP\", \"Up\", e],\n                [78, 1, 89, \"NumLock\", 78, \"NumLock\", 144, \"VK_NUMLOCK\", e, e],\n                [108, 1, 90, \"NumpadDivide\", 108, \"NumPad_Divide\", 111, \"VK_DIVIDE\", e, e],\n                [103, 1, 91, \"NumpadMultiply\", 103, \"NumPad_Multiply\", 106, \"VK_MULTIPLY\", e, e],\n                [106, 1, 92, \"NumpadSubtract\", 106, \"NumPad_Subtract\", 109, \"VK_SUBTRACT\", e, e],\n                [104, 1, 93, \"NumpadAdd\", 104, \"NumPad_Add\", 107, \"VK_ADD\", e, e],\n                [3, 1, 94, \"NumpadEnter\", 3, e, 0, e, e, e],\n                [94, 1, 95, \"Numpad1\", 94, \"NumPad1\", 97, \"VK_NUMPAD1\", e, e],\n                [95, 1, 96, \"Numpad2\", 95, \"NumPad2\", 98, \"VK_NUMPAD2\", e, e],\n                [96, 1, 97, \"Numpad3\", 96, \"NumPad3\", 99, \"VK_NUMPAD3\", e, e],\n                [97, 1, 98, \"Numpad4\", 97, \"NumPad4\", 100, \"VK_NUMPAD4\", e, e],\n                [98, 1, 99, \"Numpad5\", 98, \"NumPad5\", 101, \"VK_NUMPAD5\", e, e],\n                [99, 1, 100, \"Numpad6\", 99, \"NumPad6\", 102, \"VK_NUMPAD6\", e, e],\n                [100, 1, 101, \"Numpad7\", 100, \"NumPad7\", 103, \"VK_NUMPAD7\", e, e],\n                [101, 1, 102, \"Numpad8\", 101, \"NumPad8\", 104, \"VK_NUMPAD8\", e, e],\n                [102, 1, 103, \"Numpad9\", 102, \"NumPad9\", 105, \"VK_NUMPAD9\", e, e],\n                [93, 1, 104, \"Numpad0\", 93, \"NumPad0\", 96, \"VK_NUMPAD0\", e, e],\n                [107, 1, 105, \"NumpadDecimal\", 107, \"NumPad_Decimal\", 110, \"VK_DECIMAL\", e, e],\n                [92, 0, 106, \"IntlBackslash\", 92, \"OEM_102\", 226, \"VK_OEM_102\", e, e],\n                [58, 1, 107, \"ContextMenu\", 58, \"ContextMenu\", 93, e, e, e],\n                [0, 1, 108, \"Power\", 0, e, 0, e, e, e],\n                [0, 1, 109, \"NumpadEqual\", 0, e, 0, e, e, e],\n                [71, 1, 110, \"F13\", 71, \"F13\", 124, \"VK_F13\", e, e],\n                [72, 1, 111, \"F14\", 72, \"F14\", 125, \"VK_F14\", e, e],\n                [73, 1, 112, \"F15\", 73, \"F15\", 126, \"VK_F15\", e, e],\n                [74, 1, 113, \"F16\", 74, \"F16\", 127, \"VK_F16\", e, e],\n                [75, 1, 114, \"F17\", 75, \"F17\", 128, \"VK_F17\", e, e],\n                [76, 1, 115, \"F18\", 76, \"F18\", 129, \"VK_F18\", e, e],\n                [77, 1, 116, \"F19\", 77, \"F19\", 130, \"VK_F19\", e, e],\n                [0, 1, 117, \"F20\", 0, e, 0, \"VK_F20\", e, e],\n                [0, 1, 118, \"F21\", 0, e, 0, \"VK_F21\", e, e],\n                [0, 1, 119, \"F22\", 0, e, 0, \"VK_F22\", e, e],\n                [0, 1, 120, \"F23\", 0, e, 0, \"VK_F23\", e, e],\n                [0, 1, 121, \"F24\", 0, e, 0, \"VK_F24\", e, e],\n                [0, 1, 122, \"Open\", 0, e, 0, e, e, e],\n                [0, 1, 123, \"Help\", 0, e, 0, e, e, e],\n                [0, 1, 124, \"Select\", 0, e, 0, e, e, e],\n                [0, 1, 125, \"Again\", 0, e, 0, e, e, e],\n                [0, 1, 126, \"Undo\", 0, e, 0, e, e, e],\n                [0, 1, 127, \"Cut\", 0, e, 0, e, e, e],\n                [0, 1, 128, \"Copy\", 0, e, 0, e, e, e],\n                [0, 1, 129, \"Paste\", 0, e, 0, e, e, e],\n                [0, 1, 130, \"Find\", 0, e, 0, e, e, e],\n                [0, 1, 131, \"AudioVolumeMute\", 112, \"AudioVolumeMute\", 173, \"VK_VOLUME_MUTE\", e, e],\n                [0, 1, 132, \"AudioVolumeUp\", 113, \"AudioVolumeUp\", 175, \"VK_VOLUME_UP\", e, e],\n                [0, 1, 133, \"AudioVolumeDown\", 114, \"AudioVolumeDown\", 174, \"VK_VOLUME_DOWN\", e, e],\n                [105, 1, 134, \"NumpadComma\", 105, \"NumPad_Separator\", 108, \"VK_SEPARATOR\", e, e],\n                [110, 0, 135, \"IntlRo\", 110, \"ABNT_C1\", 193, \"VK_ABNT_C1\", e, e],\n                [0, 1, 136, \"KanaMode\", 0, e, 0, e, e, e],\n                [0, 0, 137, \"IntlYen\", 0, e, 0, e, e, e],\n                [0, 1, 138, \"Convert\", 0, e, 0, e, e, e],\n                [0, 1, 139, \"NonConvert\", 0, e, 0, e, e, e],\n                [0, 1, 140, \"Lang1\", 0, e, 0, e, e, e],\n                [0, 1, 141, \"Lang2\", 0, e, 0, e, e, e],\n                [0, 1, 142, \"Lang3\", 0, e, 0, e, e, e],\n                [0, 1, 143, \"Lang4\", 0, e, 0, e, e, e],\n                [0, 1, 144, \"Lang5\", 0, e, 0, e, e, e],\n                [0, 1, 145, \"Abort\", 0, e, 0, e, e, e],\n                [0, 1, 146, \"Props\", 0, e, 0, e, e, e],\n                [0, 1, 147, \"NumpadParenLeft\", 0, e, 0, e, e, e],\n                [0, 1, 148, \"NumpadParenRight\", 0, e, 0, e, e, e],\n                [0, 1, 149, \"NumpadBackspace\", 0, e, 0, e, e, e],\n                [0, 1, 150, \"NumpadMemoryStore\", 0, e, 0, e, e, e],\n                [0, 1, 151, \"NumpadMemoryRecall\", 0, e, 0, e, e, e],\n                [0, 1, 152, \"NumpadMemoryClear\", 0, e, 0, e, e, e],\n                [0, 1, 153, \"NumpadMemoryAdd\", 0, e, 0, e, e, e],\n                [0, 1, 154, \"NumpadMemorySubtract\", 0, e, 0, e, e, e],\n                [0, 1, 155, \"NumpadClear\", 0, e, 0, e, e, e],\n                [0, 1, 156, \"NumpadClearEntry\", 0, e, 0, e, e, e],\n                [5, 1, 0, e, 5, \"Ctrl\", 17, \"VK_CONTROL\", e, e],\n                [4, 1, 0, e, 4, \"Shift\", 16, \"VK_SHIFT\", e, e],\n                [6, 1, 0, e, 6, \"Alt\", 18, \"VK_MENU\", e, e],\n                [57, 1, 0, e, 57, \"Meta\", 0, \"VK_COMMAND\", e, e],\n                [5, 1, 157, \"ControlLeft\", 5, e, 0, \"VK_LCONTROL\", e, e],\n                [4, 1, 158, \"ShiftLeft\", 4, e, 0, \"VK_LSHIFT\", e, e],\n                [6, 1, 159, \"AltLeft\", 6, e, 0, \"VK_LMENU\", e, e],\n                [57, 1, 160, \"MetaLeft\", 57, e, 0, \"VK_LWIN\", e, e],\n                [5, 1, 161, \"ControlRight\", 5, e, 0, \"VK_RCONTROL\", e, e],\n                [4, 1, 162, \"ShiftRight\", 4, e, 0, \"VK_RSHIFT\", e, e],\n                [6, 1, 163, \"AltRight\", 6, e, 0, \"VK_RMENU\", e, e],\n                [57, 1, 164, \"MetaRight\", 57, e, 0, \"VK_RWIN\", e, e],\n                [0, 1, 165, \"BrightnessUp\", 0, e, 0, e, e, e],\n                [0, 1, 166, \"BrightnessDown\", 0, e, 0, e, e, e],\n                [0, 1, 167, \"MediaPlay\", 0, e, 0, e, e, e],\n                [0, 1, 168, \"MediaRecord\", 0, e, 0, e, e, e],\n                [0, 1, 169, \"MediaFastForward\", 0, e, 0, e, e, e],\n                [0, 1, 170, \"MediaRewind\", 0, e, 0, e, e, e],\n                [114, 1, 171, \"MediaTrackNext\", 119, \"MediaTrackNext\", 176, \"VK_MEDIA_NEXT_TRACK\", e, e],\n                [115, 1, 172, \"MediaTrackPrevious\", 120, \"MediaTrackPrevious\", 177, \"VK_MEDIA_PREV_TRACK\", e, e],\n                [116, 1, 173, \"MediaStop\", 121, \"MediaStop\", 178, \"VK_MEDIA_STOP\", e, e],\n                [0, 1, 174, \"Eject\", 0, e, 0, e, e, e],\n                [117, 1, 175, \"MediaPlayPause\", 122, \"MediaPlayPause\", 179, \"VK_MEDIA_PLAY_PAUSE\", e, e],\n                [0, 1, 176, \"MediaSelect\", 123, \"LaunchMediaPlayer\", 181, \"VK_MEDIA_LAUNCH_MEDIA_SELECT\", e, e],\n                [0, 1, 177, \"LaunchMail\", 124, \"LaunchMail\", 180, \"VK_MEDIA_LAUNCH_MAIL\", e, e],\n                [0, 1, 178, \"LaunchApp2\", 125, \"LaunchApp2\", 183, \"VK_MEDIA_LAUNCH_APP2\", e, e],\n                [0, 1, 179, \"LaunchApp1\", 0, e, 0, \"VK_MEDIA_LAUNCH_APP1\", e, e],\n                [0, 1, 180, \"SelectTask\", 0, e, 0, e, e, e],\n                [0, 1, 181, \"LaunchScreenSaver\", 0, e, 0, e, e, e],\n                [0, 1, 182, \"BrowserSearch\", 115, \"BrowserSearch\", 170, \"VK_BROWSER_SEARCH\", e, e],\n                [0, 1, 183, \"BrowserHome\", 116, \"BrowserHome\", 172, \"VK_BROWSER_HOME\", e, e],\n                [112, 1, 184, \"BrowserBack\", 117, \"BrowserBack\", 166, \"VK_BROWSER_BACK\", e, e],\n                [113, 1, 185, \"BrowserForward\", 118, \"BrowserForward\", 167, \"VK_BROWSER_FORWARD\", e, e],\n                [0, 1, 186, \"BrowserStop\", 0, e, 0, \"VK_BROWSER_STOP\", e, e],\n                [0, 1, 187, \"BrowserRefresh\", 0, e, 0, \"VK_BROWSER_REFRESH\", e, e],\n                [0, 1, 188, \"BrowserFavorites\", 0, e, 0, \"VK_BROWSER_FAVORITES\", e, e],\n                [0, 1, 189, \"ZoomToggle\", 0, e, 0, e, e, e],\n                [0, 1, 190, \"MailReply\", 0, e, 0, e, e, e],\n                [0, 1, 191, \"MailForward\", 0, e, 0, e, e, e],\n                [0, 1, 192, \"MailSend\", 0, e, 0, e, e, e],\n                [109, 1, 0, e, 109, \"KeyInComposition\", 229, e, e, e],\n                [111, 1, 0, e, 111, \"ABNT_C2\", 194, \"VK_ABNT_C2\", e, e],\n                [91, 1, 0, e, 91, \"OEM_8\", 223, \"VK_OEM_8\", e, e],\n                [0, 1, 0, e, 0, e, 0, \"VK_CLEAR\", e, e],\n                [0, 1, 0, e, 0, e, 0, \"VK_KANA\", e, e],\n                [0, 1, 0, e, 0, e, 0, \"VK_HANGUL\", e, e],\n                [0, 1, 0, e, 0, e, 0, \"VK_JUNJA\", e, e],\n                [0, 1, 0, e, 0, e, 0, \"VK_FINAL\", e, e],\n                [0, 1, 0, e, 0, e, 0, \"VK_HANJA\", e, e],\n                [0, 1, 0, e, 0, e, 0, \"VK_KANJI\", e, e],\n                [0, 1, 0, e, 0, e, 0, \"VK_CONVERT\", e, e],\n                [0, 1, 0, e, 0, e, 0, \"VK_NONCONVERT\", e, e],\n                [0, 1, 0, e, 0, e, 0, \"VK_ACCEPT\", e, e],\n                [0, 1, 0, e, 0, e, 0, \"VK_MODECHANGE\", e, e],\n                [0, 1, 0, e, 0, e, 0, \"VK_SELECT\", e, e],\n                [0, 1, 0, e, 0, e, 0, \"VK_PRINT\", e, e],\n                [0, 1, 0, e, 0, e, 0, \"VK_EXECUTE\", e, e],\n                [0, 1, 0, e, 0, e, 0, \"VK_SNAPSHOT\", e, e],\n                [0, 1, 0, e, 0, e, 0, \"VK_HELP\", e, e],\n                [0, 1, 0, e, 0, e, 0, \"VK_APPS\", e, e],\n                [0, 1, 0, e, 0, e, 0, \"VK_PROCESSKEY\", e, e],\n                [0, 1, 0, e, 0, e, 0, \"VK_PACKET\", e, e],\n                [0, 1, 0, e, 0, e, 0, \"VK_DBE_SBCSCHAR\", e, e],\n                [0, 1, 0, e, 0, e, 0, \"VK_DBE_DBCSCHAR\", e, e],\n                [0, 1, 0, e, 0, e, 0, \"VK_ATTN\", e, e],\n                [0, 1, 0, e, 0, e, 0, \"VK_CRSEL\", e, e],\n                [0, 1, 0, e, 0, e, 0, \"VK_EXSEL\", e, e],\n                [0, 1, 0, e, 0, e, 0, \"VK_EREOF\", e, e],\n                [0, 1, 0, e, 0, e, 0, \"VK_PLAY\", e, e],\n                [0, 1, 0, e, 0, e, 0, \"VK_ZOOM\", e, e],\n                [0, 1, 0, e, 0, e, 0, \"VK_NONAME\", e, e],\n                [0, 1, 0, e, 0, e, 0, \"VK_PA1\", e, e],\n                [0, 1, 0, e, 0, e, 0, \"VK_OEM_CLEAR\", e, e]\n            ];\n        let n = [],\n            i = [];\n        for (const e of t) {\n            const [t, r, s, o, a, l, u, h, d, c] = e;\n            if (i[s] || (i[s] = !0, Dt[s] = o, Ft[o] = s, Ut[o.toLowerCase()] = s, r && (Bt[s] = a, 0 !== a && 3 !== a && 5 !== a && 4 !== a && 6 !== a && 57 !== a && (qt[a] = s))), !n[a]) {\n                if (n[a] = !0, !l) throw new Error(`String representation missing for key code ${a} around scan code ${o}`);\n                Vt.define(a, l), It.define(a, d || l), Pt.define(a, c || d || l)\n            }\n            u && (xt[u] = a), h && (kt[h] = a)\n        }\n        qt[3] = 46\n    }(),\n    function(e) {\n        e.toString = function(e) {\n            return Vt.keyCodeToStr(e)\n        }, e.fromString = function(e) {\n            return Vt.strToKeyCode(e)\n        }, e.toUserSettingsUS = function(e) {\n            return It.keyCodeToStr(e)\n        }, e.toUserSettingsGeneral = function(e) {\n            return Pt.keyCodeToStr(e)\n        }, e.fromUserSettings = function(e) {\n            return It.strToKeyCode(e) || Pt.strToKeyCode(e)\n        }, e.toElectronAccelerator = function(e) {\n            if (e >= 93 && e <= 108) return null;\n            switch (e) {\n                case 16:\n                    return \"Up\";\n                case 18:\n                    return \"Down\";\n                case 15:\n                    return \"Left\";\n                case 17:\n                    return \"Right\"\n            }\n            return Vt.keyCodeToStr(e)\n        }\n    }(Ht || (Ht = {}));\n    class wn extends nt {\n        constructor(e, t, n, i) {\n            super(e, t, n, i), this.selectionStartLineNumber = e, this.selectionStartColumn = t, this.positionLineNumber = n, this.positionColumn = i\n        }\n        toString() {\n            return \"[\" + this.selectionStartLineNumber + \",\" + this.selectionStartColumn + \" -> \" + this.positionLineNumber + \",\" + this.positionColumn + \"]\"\n        }\n        equalsSelection(e) {\n            return wn.selectionsEqual(this, e)\n        }\n        static selectionsEqual(e, t) {\n            return e.selectionStartLineNumber === t.selectionStartLineNumber && e.selectionStartColumn === t.selectionStartColumn && e.positionLineNumber === t.positionLineNumber && e.positionColumn === t.positionColumn\n        }\n        getDirection() {\n            return this.selectionStartLineNumber === this.startLineNumber && this.selectionStartColumn === this.startColumn ? 0 : 1\n        }\n        setEndPosition(e, t) {\n            return 0 === this.getDirection() ? new wn(this.startLineNumber, this.startColumn, e, t) : new wn(e, t, this.startLineNumber, this.startColumn)\n        }\n        getPosition() {\n            return new tt(this.positionLineNumber, this.positionColumn)\n        }\n        setStartPosition(e, t) {\n            return 0 === this.getDirection() ? new wn(e, t, this.endLineNumber, this.endColumn) : new wn(this.endLineNumber, this.endColumn, e, t)\n        }\n        static fromPositions(e, t = e) {\n            return new wn(e.lineNumber, e.column, t.lineNumber, t.column)\n        }\n        static liftSelection(e) {\n            return new wn(e.selectionStartLineNumber, e.selectionStartColumn, e.positionLineNumber, e.positionColumn)\n        }\n        static selectionsArrEqual(e, t) {\n            if (e && !t || !e && t) return !1;\n            if (!e && !t) return !0;\n            if (e.length !== t.length) return !1;\n            for (let n = 0, i = e.length; n < i; n++)\n                if (!this.selectionsEqual(e[n], t[n])) return !1;\n            return !0\n        }\n        static isISelection(e) {\n            return e && \"number\" == typeof e.selectionStartLineNumber && \"number\" == typeof e.selectionStartColumn && \"number\" == typeof e.positionLineNumber && \"number\" == typeof e.positionColumn\n        }\n        static createWithDirection(e, t, n, i, r) {\n            return 0 === r ? new wn(e, t, n, i) : new wn(n, i, e, t)\n        }\n    }\n    class vn {\n        constructor(e, t, n) {\n            this._tokenBrand = void 0, this.offset = 0 | e, this.type = t, this.language = n\n        }\n        toString() {\n            return \"(\" + this.offset + \", \" + this.type + \")\"\n        }\n    }! function(e) {\n        e[e.Unknown = 0] = \"Unknown\", e[e.Disabled = 1] = \"Disabled\", e[e.Enabled = 2] = \"Enabled\"\n    }(Wt || (Wt = {})),\n    function(e) {\n        e[e.KeepWhitespace = 1] = \"KeepWhitespace\", e[e.InsertAsSnippet = 4] = \"InsertAsSnippet\"\n    }($t || ($t = {})),\n    function(e) {\n        e[e.Method = 0] = \"Method\", e[e.Function = 1] = \"Function\", e[e.Constructor = 2] = \"Constructor\", e[e.Field = 3] = \"Field\", e[e.Variable = 4] = \"Variable\", e[e.Class = 5] = \"Class\", e[e.Struct = 6] = \"Struct\", e[e.Interface = 7] = \"Interface\", e[e.Module = 8] = \"Module\", e[e.Property = 9] = \"Property\", e[e.Event = 10] = \"Event\", e[e.Operator = 11] = \"Operator\", e[e.Unit = 12] = \"Unit\", e[e.Value = 13] = \"Value\", e[e.Constant = 14] = \"Constant\", e[e.Enum = 15] = \"Enum\", e[e.EnumMember = 16] = \"EnumMember\", e[e.Keyword = 17] = \"Keyword\", e[e.Text = 18] = \"Text\", e[e.Color = 19] = \"Color\", e[e.File = 20] = \"File\", e[e.Reference = 21] = \"Reference\", e[e.Customcolor = 22] = \"Customcolor\", e[e.Folder = 23] = \"Folder\", e[e.TypeParameter = 24] = \"TypeParameter\", e[e.User = 25] = \"User\", e[e.Issue = 26] = \"Issue\", e[e.Snippet = 27] = \"Snippet\"\n    }(jt || (jt = {})),\n    function(e) {\n        e[e.Deprecated = 1] = \"Deprecated\"\n    }(Gt || (Gt = {})),\n    function(e) {\n        e[e.Invoke = 0] = \"Invoke\", e[e.TriggerCharacter = 1] = \"TriggerCharacter\", e[e.TriggerForIncompleteCompletions = 2] = \"TriggerForIncompleteCompletions\"\n    }(zt || (zt = {})),\n    function(e) {\n        e[e.EXACT = 0] = \"EXACT\", e[e.ABOVE = 1] = \"ABOVE\", e[e.BELOW = 2] = \"BELOW\"\n    }(Yt || (Yt = {})),\n    function(e) {\n        e[e.NotSet = 0] = \"NotSet\", e[e.ContentFlush = 1] = \"ContentFlush\", e[e.RecoverFromMarkers = 2] = \"RecoverFromMarkers\", e[e.Explicit = 3] = \"Explicit\", e[e.Paste = 4] = \"Paste\", e[e.Undo = 5] = \"Undo\", e[e.Redo = 6] = \"Redo\"\n    }(Qt || (Qt = {})),\n    function(e) {\n        e[e.LF = 1] = \"LF\", e[e.CRLF = 2] = \"CRLF\"\n    }(Xt || (Xt = {})),\n    function(e) {\n        e[e.Text = 0] = \"Text\", e[e.Read = 1] = \"Read\", e[e.Write = 2] = \"Write\"\n    }(Zt || (Zt = {})),\n    function(e) {\n        e[e.None = 0] = \"None\", e[e.Keep = 1] = \"Keep\", e[e.Brackets = 2] = \"Brackets\", e[e.Advanced = 3] = \"Advanced\", e[e.Full = 4] = \"Full\"\n    }(Jt || (Jt = {})),\n    function(e) {\n        e[e.acceptSuggestionOnCommitCharacter = 0] = \"acceptSuggestionOnCommitCharacter\", e[e.acceptSuggestionOnEnter = 1] = \"acceptSuggestionOnEnter\", e[e.accessibilitySupport = 2] = \"accessibilitySupport\", e[e.accessibilityPageSize = 3] = \"accessibilityPageSize\", e[e.ariaLabel = 4] = \"ariaLabel\", e[e.autoClosingBrackets = 5] = \"autoClosingBrackets\", e[e.autoClosingDelete = 6] = \"autoClosingDelete\", e[e.autoClosingOvertype = 7] = \"autoClosingOvertype\", e[e.autoClosingQuotes = 8] = \"autoClosingQuotes\", e[e.autoIndent = 9] = \"autoIndent\", e[e.automaticLayout = 10] = \"automaticLayout\", e[e.autoSurround = 11] = \"autoSurround\", e[e.bracketPairColorization = 12] = \"bracketPairColorization\", e[e.guides = 13] = \"guides\", e[e.codeLens = 14] = \"codeLens\", e[e.codeLensFontFamily = 15] = \"codeLensFontFamily\", e[e.codeLensFontSize = 16] = \"codeLensFontSize\", e[e.colorDecorators = 17] = \"colorDecorators\", e[e.columnSelection = 18] = \"columnSelection\", e[e.comments = 19] = \"comments\", e[e.contextmenu = 20] = \"contextmenu\", e[e.copyWithSyntaxHighlighting = 21] = \"copyWithSyntaxHighlighting\", e[e.cursorBlinking = 22] = \"cursorBlinking\", e[e.cursorSmoothCaretAnimation = 23] = \"cursorSmoothCaretAnimation\", e[e.cursorStyle = 24] = \"cursorStyle\", e[e.cursorSurroundingLines = 25] = \"cursorSurroundingLines\", e[e.cursorSurroundingLinesStyle = 26] = \"cursorSurroundingLinesStyle\", e[e.cursorWidth = 27] = \"cursorWidth\", e[e.disableLayerHinting = 28] = \"disableLayerHinting\", e[e.disableMonospaceOptimizations = 29] = \"disableMonospaceOptimizations\", e[e.domReadOnly = 30] = \"domReadOnly\", e[e.dragAndDrop = 31] = \"dragAndDrop\", e[e.emptySelectionClipboard = 32] = \"emptySelectionClipboard\", e[e.extraEditorClassName = 33] = \"extraEditorClassName\", e[e.fastScrollSensitivity = 34] = \"fastScrollSensitivity\", e[e.find = 35] = \"find\", e[e.fixedOverflowWidgets = 36] = \"fixedOverflowWidgets\", e[e.folding = 37] = \"folding\", e[e.foldingStrategy = 38] = \"foldingStrategy\", e[e.foldingHighlight = 39] = \"foldingHighlight\", e[e.foldingImportsByDefault = 40] = \"foldingImportsByDefault\", e[e.unfoldOnClickAfterEndOfLine = 41] = \"unfoldOnClickAfterEndOfLine\", e[e.fontFamily = 42] = \"fontFamily\", e[e.fontInfo = 43] = \"fontInfo\", e[e.fontLigatures = 44] = \"fontLigatures\", e[e.fontSize = 45] = \"fontSize\", e[e.fontWeight = 46] = \"fontWeight\", e[e.formatOnPaste = 47] = \"formatOnPaste\", e[e.formatOnType = 48] = \"formatOnType\", e[e.glyphMargin = 49] = \"glyphMargin\", e[e.gotoLocation = 50] = \"gotoLocation\", e[e.hideCursorInOverviewRuler = 51] = \"hideCursorInOverviewRuler\", e[e.hover = 52] = \"hover\", e[e.inDiffEditor = 53] = \"inDiffEditor\", e[e.inlineSuggest = 54] = \"inlineSuggest\", e[e.letterSpacing = 55] = \"letterSpacing\", e[e.lightbulb = 56] = \"lightbulb\", e[e.lineDecorationsWidth = 57] = \"lineDecorationsWidth\", e[e.lineHeight = 58] = \"lineHeight\", e[e.lineNumbers = 59] = \"lineNumbers\", e[e.lineNumbersMinChars = 60] = \"lineNumbersMinChars\", e[e.linkedEditing = 61] = \"linkedEditing\", e[e.links = 62] = \"links\", e[e.matchBrackets = 63] = \"matchBrackets\", e[e.minimap = 64] = \"minimap\", e[e.mouseStyle = 65] = \"mouseStyle\", e[e.mouseWheelScrollSensitivity = 66] = \"mouseWheelScrollSensitivity\", e[e.mouseWheelZoom = 67] = \"mouseWheelZoom\", e[e.multiCursorMergeOverlapping = 68] = \"multiCursorMergeOverlapping\", e[e.multiCursorModifier = 69] = \"multiCursorModifier\", e[e.multiCursorPaste = 70] = \"multiCursorPaste\", e[e.occurrencesHighlight = 71] = \"occurrencesHighlight\", e[e.overviewRulerBorder = 72] = \"overviewRulerBorder\", e[e.overviewRulerLanes = 73] = \"overviewRulerLanes\", e[e.padding = 74] = \"padding\", e[e.parameterHints = 75] = \"parameterHints\", e[e.peekWidgetDefaultFocus = 76] = \"peekWidgetDefaultFocus\", e[e.definitionLinkOpensInPeek = 77] = \"definitionLinkOpensInPeek\", e[e.quickSuggestions = 78] = \"quickSuggestions\", e[e.quickSuggestionsDelay = 79] = \"quickSuggestionsDelay\", e[e.readOnly = 80] = \"readOnly\", e[e.renameOnType = 81] = \"renameOnType\", e[e.renderControlCharacters = 82] = \"renderControlCharacters\", e[e.renderFinalNewline = 83] = \"renderFinalNewline\", e[e.renderLineHighlight = 84] = \"renderLineHighlight\", e[e.renderLineHighlightOnlyWhenFocus = 85] = \"renderLineHighlightOnlyWhenFocus\", e[e.renderValidationDecorations = 86] = \"renderValidationDecorations\", e[e.renderWhitespace = 87] = \"renderWhitespace\", e[e.revealHorizontalRightPadding = 88] = \"revealHorizontalRightPadding\", e[e.roundedSelection = 89] = \"roundedSelection\", e[e.rulers = 90] = \"rulers\", e[e.scrollbar = 91] = \"scrollbar\", e[e.scrollBeyondLastColumn = 92] = \"scrollBeyondLastColumn\", e[e.scrollBeyondLastLine = 93] = \"scrollBeyondLastLine\", e[e.scrollPredominantAxis = 94] = \"scrollPredominantAxis\", e[e.selectionClipboard = 95] = \"selectionClipboard\", e[e.selectionHighlight = 96] = \"selectionHighlight\", e[e.selectOnLineNumbers = 97] = \"selectOnLineNumbers\", e[e.showFoldingControls = 98] = \"showFoldingControls\", e[e.showUnused = 99] = \"showUnused\", e[e.snippetSuggestions = 100] = \"snippetSuggestions\", e[e.smartSelect = 101] = \"smartSelect\", e[e.smoothScrolling = 102] = \"smoothScrolling\", e[e.stickyTabStops = 103] = \"stickyTabStops\", e[e.stopRenderingLineAfter = 104] = \"stopRenderingLineAfter\", e[e.suggest = 105] = \"suggest\", e[e.suggestFontSize = 106] = \"suggestFontSize\", e[e.suggestLineHeight = 107] = \"suggestLineHeight\", e[e.suggestOnTriggerCharacters = 108] = \"suggestOnTriggerCharacters\", e[e.suggestSelection = 109] = \"suggestSelection\", e[e.tabCompletion = 110] = \"tabCompletion\", e[e.tabIndex = 111] = \"tabIndex\", e[e.unusualLineTerminators = 112] = \"unusualLineTerminators\", e[e.useShadowDOM = 113] = \"useShadowDOM\", e[e.useTabStops = 114] = \"useTabStops\", e[e.wordSeparators = 115] = \"wordSeparators\", e[e.wordWrap = 116] = \"wordWrap\", e[e.wordWrapBreakAfterCharacters = 117] = \"wordWrapBreakAfterCharacters\", e[e.wordWrapBreakBeforeCharacters = 118] = \"wordWrapBreakBeforeCharacters\", e[e.wordWrapColumn = 119] = \"wordWrapColumn\", e[e.wordWrapOverride1 = 120] = \"wordWrapOverride1\", e[e.wordWrapOverride2 = 121] = \"wordWrapOverride2\", e[e.wrappingIndent = 122] = \"wrappingIndent\", e[e.wrappingStrategy = 123] = \"wrappingStrategy\", e[e.showDeprecated = 124] = \"showDeprecated\", e[e.inlayHints = 125] = \"inlayHints\", e[e.editorClassName = 126] = \"editorClassName\", e[e.pixelRatio = 127] = \"pixelRatio\", e[e.tabFocusMode = 128] = \"tabFocusMode\", e[e.layoutInfo = 129] = \"layoutInfo\", e[e.wrappingInfo = 130] = \"wrappingInfo\"\n    }(en || (en = {})),\n    function(e) {\n        e[e.TextDefined = 0] = \"TextDefined\", e[e.LF = 1] = \"LF\", e[e.CRLF = 2] = \"CRLF\"\n    }(tn || (tn = {})),\n    function(e) {\n        e[e.LF = 0] = \"LF\", e[e.CRLF = 1] = \"CRLF\"\n    }(nn || (nn = {})),\n    function(e) {\n        e[e.None = 0] = \"None\", e[e.Indent = 1] = \"Indent\", e[e.IndentOutdent = 2] = \"IndentOutdent\", e[e.Outdent = 3] = \"Outdent\"\n    }(rn || (rn = {})),\n    function(e) {\n        e[e.Other = 0] = \"Other\", e[e.Type = 1] = \"Type\", e[e.Parameter = 2] = \"Parameter\"\n    }(sn || (sn = {})),\n    function(e) {\n        e[e.Automatic = 0] = \"Automatic\", e[e.Explicit = 1] = \"Explicit\"\n    }(on || (on = {})),\n    function(e) {\n        e[e.DependsOnKbLayout = -1] = \"DependsOnKbLayout\", e[e.Unknown = 0] = \"Unknown\", e[e.Backspace = 1] = \"Backspace\", e[e.Tab = 2] = \"Tab\", e[e.Enter = 3] = \"Enter\", e[e.Shift = 4] = \"Shift\", e[e.Ctrl = 5] = \"Ctrl\", e[e.Alt = 6] = \"Alt\", e[e.PauseBreak = 7] = \"PauseBreak\", e[e.CapsLock = 8] = \"CapsLock\", e[e.Escape = 9] = \"Escape\", e[e.Space = 10] = \"Space\", e[e.PageUp = 11] = \"PageUp\", e[e.PageDown = 12] = \"PageDown\", e[e.End = 13] = \"End\", e[e.Home = 14] = \"Home\", e[e.LeftArrow = 15] = \"LeftArrow\", e[e.UpArrow = 16] = \"UpArrow\", e[e.RightArrow = 17] = \"RightArrow\", e[e.DownArrow = 18] = \"DownArrow\", e[e.Insert = 19] = \"Insert\", e[e.Delete = 20] = \"Delete\", e[e.Digit0 = 21] = \"Digit0\", e[e.Digit1 = 22] = \"Digit1\", e[e.Digit2 = 23] = \"Digit2\", e[e.Digit3 = 24] = \"Digit3\", e[e.Digit4 = 25] = \"Digit4\", e[e.Digit5 = 26] = \"Digit5\", e[e.Digit6 = 27] = \"Digit6\", e[e.Digit7 = 28] = \"Digit7\", e[e.Digit8 = 29] = \"Digit8\", e[e.Digit9 = 30] = \"Digit9\", e[e.KeyA = 31] = \"KeyA\", e[e.KeyB = 32] = \"KeyB\", e[e.KeyC = 33] = \"KeyC\", e[e.KeyD = 34] = \"KeyD\", e[e.KeyE = 35] = \"KeyE\", e[e.KeyF = 36] = \"KeyF\", e[e.KeyG = 37] = \"KeyG\", e[e.KeyH = 38] = \"KeyH\", e[e.KeyI = 39] = \"KeyI\", e[e.KeyJ = 40] = \"KeyJ\", e[e.KeyK = 41] = \"KeyK\", e[e.KeyL = 42] = \"KeyL\", e[e.KeyM = 43] = \"KeyM\", e[e.KeyN = 44] = \"KeyN\", e[e.KeyO = 45] = \"KeyO\", e[e.KeyP = 46] = \"KeyP\", e[e.KeyQ = 47] = \"KeyQ\", e[e.KeyR = 48] = \"KeyR\", e[e.KeyS = 49] = \"KeyS\", e[e.KeyT = 50] = \"KeyT\", e[e.KeyU = 51] = \"KeyU\", e[e.KeyV = 52] = \"KeyV\", e[e.KeyW = 53] = \"KeyW\", e[e.KeyX = 54] = \"KeyX\", e[e.KeyY = 55] = \"KeyY\", e[e.KeyZ = 56] = \"KeyZ\", e[e.Meta = 57] = \"Meta\", e[e.ContextMenu = 58] = \"ContextMenu\", e[e.F1 = 59] = \"F1\", e[e.F2 = 60] = \"F2\", e[e.F3 = 61] = \"F3\", e[e.F4 = 62] = \"F4\", e[e.F5 = 63] = \"F5\", e[e.F6 = 64] = \"F6\", e[e.F7 = 65] = \"F7\", e[e.F8 = 66] = \"F8\", e[e.F9 = 67] = \"F9\", e[e.F10 = 68] = \"F10\", e[e.F11 = 69] = \"F11\", e[e.F12 = 70] = \"F12\", e[e.F13 = 71] = \"F13\", e[e.F14 = 72] = \"F14\", e[e.F15 = 73] = \"F15\", e[e.F16 = 74] = \"F16\", e[e.F17 = 75] = \"F17\", e[e.F18 = 76] = \"F18\", e[e.F19 = 77] = \"F19\", e[e.NumLock = 78] = \"NumLock\", e[e.ScrollLock = 79] = \"ScrollLock\", e[e.Semicolon = 80] = \"Semicolon\", e[e.Equal = 81] = \"Equal\", e[e.Comma = 82] = \"Comma\", e[e.Minus = 83] = \"Minus\", e[e.Period = 84] = \"Period\", e[e.Slash = 85] = \"Slash\", e[e.Backquote = 86] = \"Backquote\", e[e.BracketLeft = 87] = \"BracketLeft\", e[e.Backslash = 88] = \"Backslash\", e[e.BracketRight = 89] = \"BracketRight\", e[e.Quote = 90] = \"Quote\", e[e.OEM_8 = 91] = \"OEM_8\", e[e.IntlBackslash = 92] = \"IntlBackslash\", e[e.Numpad0 = 93] = \"Numpad0\", e[e.Numpad1 = 94] = \"Numpad1\", e[e.Numpad2 = 95] = \"Numpad2\", e[e.Numpad3 = 96] = \"Numpad3\", e[e.Numpad4 = 97] = \"Numpad4\", e[e.Numpad5 = 98] = \"Numpad5\", e[e.Numpad6 = 99] = \"Numpad6\", e[e.Numpad7 = 100] = \"Numpad7\", e[e.Numpad8 = 101] = \"Numpad8\", e[e.Numpad9 = 102] = \"Numpad9\", e[e.NumpadMultiply = 103] = \"NumpadMultiply\", e[e.NumpadAdd = 104] = \"NumpadAdd\", e[e.NUMPAD_SEPARATOR = 105] = \"NUMPAD_SEPARATOR\", e[e.NumpadSubtract = 106] = \"NumpadSubtract\", e[e.NumpadDecimal = 107] = \"NumpadDecimal\", e[e.NumpadDivide = 108] = \"NumpadDivide\", e[e.KEY_IN_COMPOSITION = 109] = \"KEY_IN_COMPOSITION\", e[e.ABNT_C1 = 110] = \"ABNT_C1\", e[e.ABNT_C2 = 111] = \"ABNT_C2\", e[e.AudioVolumeMute = 112] = \"AudioVolumeMute\", e[e.AudioVolumeUp = 113] = \"AudioVolumeUp\", e[e.AudioVolumeDown = 114] = \"AudioVolumeDown\", e[e.BrowserSearch = 115] = \"BrowserSearch\", e[e.BrowserHome = 116] = \"BrowserHome\", e[e.BrowserBack = 117] = \"BrowserBack\", e[e.BrowserForward = 118] = \"BrowserForward\", e[e.MediaTrackNext = 119] = \"MediaTrackNext\", e[e.MediaTrackPrevious = 120] = \"MediaTrackPrevious\", e[e.MediaStop = 121] = \"MediaStop\", e[e.MediaPlayPause = 122] = \"MediaPlayPause\", e[e.LaunchMediaPlayer = 123] = \"LaunchMediaPlayer\", e[e.LaunchMail = 124] = \"LaunchMail\", e[e.LaunchApp2 = 125] = \"LaunchApp2\", e[e.MAX_VALUE = 126] = \"MAX_VALUE\"\n    }(an || (an = {})),\n    function(e) {\n        e[e.Hint = 1] = \"Hint\", e[e.Info = 2] = \"Info\", e[e.Warning = 4] = \"Warning\", e[e.Error = 8] = \"Error\"\n    }(ln || (ln = {})),\n    function(e) {\n        e[e.Unnecessary = 1] = \"Unnecessary\", e[e.Deprecated = 2] = \"Deprecated\"\n    }(un || (un = {})),\n    function(e) {\n        e[e.Inline = 1] = \"Inline\", e[e.Gutter = 2] = \"Gutter\"\n    }(hn || (hn = {})),\n    function(e) {\n        e[e.UNKNOWN = 0] = \"UNKNOWN\", e[e.TEXTAREA = 1] = \"TEXTAREA\", e[e.GUTTER_GLYPH_MARGIN = 2] = \"GUTTER_GLYPH_MARGIN\", e[e.GUTTER_LINE_NUMBERS = 3] = \"GUTTER_LINE_NUMBERS\", e[e.GUTTER_LINE_DECORATIONS = 4] = \"GUTTER_LINE_DECORATIONS\", e[e.GUTTER_VIEW_ZONE = 5] = \"GUTTER_VIEW_ZONE\", e[e.CONTENT_TEXT = 6] = \"CONTENT_TEXT\", e[e.CONTENT_EMPTY = 7] = \"CONTENT_EMPTY\", e[e.CONTENT_VIEW_ZONE = 8] = \"CONTENT_VIEW_ZONE\", e[e.CONTENT_WIDGET = 9] = \"CONTENT_WIDGET\", e[e.OVERVIEW_RULER = 10] = \"OVERVIEW_RULER\", e[e.SCROLLBAR = 11] = \"SCROLLBAR\", e[e.OVERLAY_WIDGET = 12] = \"OVERLAY_WIDGET\", e[e.OUTSIDE_EDITOR = 13] = \"OUTSIDE_EDITOR\"\n    }(dn || (dn = {})),\n    function(e) {\n        e[e.TOP_RIGHT_CORNER = 0] = \"TOP_RIGHT_CORNER\", e[e.BOTTOM_RIGHT_CORNER = 1] = \"BOTTOM_RIGHT_CORNER\", e[e.TOP_CENTER = 2] = \"TOP_CENTER\"\n    }(cn || (cn = {})),\n    function(e) {\n        e[e.Left = 1] = \"Left\", e[e.Center = 2] = \"Center\", e[e.Right = 4] = \"Right\", e[e.Full = 7] = \"Full\"\n    }(mn || (mn = {})),\n    function(e) {\n        e[e.Off = 0] = \"Off\", e[e.On = 1] = \"On\", e[e.Relative = 2] = \"Relative\", e[e.Interval = 3] = \"Interval\", e[e.Custom = 4] = \"Custom\"\n    }(fn || (fn = {})),\n    function(e) {\n        e[e.None = 0] = \"None\", e[e.Text = 1] = \"Text\", e[e.Blocks = 2] = \"Blocks\"\n    }(gn || (gn = {})),\n    function(e) {\n        e[e.Smooth = 0] = \"Smooth\", e[e.Immediate = 1] = \"Immediate\"\n    }(_n || (_n = {})),\n    function(e) {\n        e[e.Auto = 1] = \"Auto\", e[e.Hidden = 2] = \"Hidden\", e[e.Visible = 3] = \"Visible\"\n    }(pn || (pn = {})),\n    function(e) {\n        e[e.LTR = 0] = \"LTR\", e[e.RTL = 1] = \"RTL\"\n    }(Cn || (Cn = {})),\n    function(e) {\n        e[e.Invoke = 1] = \"Invoke\", e[e.TriggerCharacter = 2] = \"TriggerCharacter\", e[e.ContentChange = 3] = \"ContentChange\"\n    }(Ln || (Ln = {})),\n    function(e) {\n        e[e.File = 0] = \"File\", e[e.Module = 1] = \"Module\", e[e.Namespace = 2] = \"Namespace\", e[e.Package = 3] = \"Package\", e[e.Class = 4] = \"Class\", e[e.Method = 5] = \"Method\", e[e.Property = 6] = \"Property\", e[e.Field = 7] = \"Field\", e[e.Constructor = 8] = \"Constructor\", e[e.Enum = 9] = \"Enum\", e[e.Interface = 10] = \"Interface\", e[e.Function = 11] = \"Function\", e[e.Variable = 12] = \"Variable\", e[e.Constant = 13] = \"Constant\", e[e.String = 14] = \"String\", e[e.Number = 15] = \"Number\", e[e.Boolean = 16] = \"Boolean\", e[e.Array = 17] = \"Array\", e[e.Object = 18] = \"Object\", e[e.Key = 19] = \"Key\", e[e.Null = 20] = \"Null\", e[e.EnumMember = 21] = \"EnumMember\", e[e.Struct = 22] = \"Struct\", e[e.Event = 23] = \"Event\", e[e.Operator = 24] = \"Operator\", e[e.TypeParameter = 25] = \"TypeParameter\"\n    }(Sn || (Sn = {})),\n    function(e) {\n        e[e.Deprecated = 1] = \"Deprecated\"\n    }(bn || (bn = {})),\n    function(e) {\n        e[e.Hidden = 0] = \"Hidden\", e[e.Blink = 1] = \"Blink\", e[e.Smooth = 2] = \"Smooth\", e[e.Phase = 3] = \"Phase\", e[e.Expand = 4] = \"Expand\", e[e.Solid = 5] = \"Solid\"\n    }(Nn || (Nn = {})),\n    function(e) {\n        e[e.Line = 1] = \"Line\", e[e.Block = 2] = \"Block\", e[e.Underline = 3] = \"Underline\", e[e.LineThin = 4] = \"LineThin\", e[e.BlockOutline = 5] = \"BlockOutline\", e[e.UnderlineThin = 6] = \"UnderlineThin\"\n    }(En || (En = {})),\n    function(e) {\n        e[e.AlwaysGrowsWhenTypingAtEdges = 0] = \"AlwaysGrowsWhenTypingAtEdges\", e[e.NeverGrowsWhenTypingAtEdges = 1] = \"NeverGrowsWhenTypingAtEdges\", e[e.GrowsOnlyWhenTypingBefore = 2] = \"GrowsOnlyWhenTypingBefore\", e[e.GrowsOnlyWhenTypingAfter = 3] = \"GrowsOnlyWhenTypingAfter\"\n    }(yn || (yn = {})),\n    function(e) {\n        e[e.None = 0] = \"None\", e[e.Same = 1] = \"Same\", e[e.Indent = 2] = \"Indent\", e[e.DeepIndent = 3] = \"DeepIndent\"\n    }(An || (An = {}));\n    class Mn {\n        static chord(e, t) {\n            return function(e, t) {\n                return (e | (65535 & t) << 16 >>> 0) >>> 0\n            }(e, t)\n        }\n    }\n    Mn.CtrlCmd = 2048, Mn.Shift = 1024, Mn.Alt = 512, Mn.WinCtrl = 256;\n    var Kn = function(e, t, n, i) {\n        return new(n || (n = Promise))((function(r, s) {\n            function o(e) {\n                try {\n                    l(i.next(e))\n                } catch (e) {\n                    s(e)\n                }\n            }\n\n            function a(e) {\n                try {\n                    l(i.throw(e))\n                } catch (e) {\n                    s(e)\n                }\n            }\n\n            function l(e) {\n                var t;\n                e.done ? r(e.value) : (t = e.value, t instanceof n ? t : new n((function(e) {\n                    e(t)\n                }))).then(o, a)\n            }\n            l((i = i.apply(e, t || [])).next())\n        }))\n    };\n    class On extends _t {\n        get uri() {\n            return this._uri\n        }\n        get eol() {\n            return this._eol\n        }\n        getValue() {\n            return this.getText()\n        }\n        getLinesContent() {\n            return this._lines.slice(0)\n        }\n        getLineCount() {\n            return this._lines.length\n        }\n        getLineContent(e) {\n            return this._lines[e - 1]\n        }\n        getWordAtPosition(e, t) {\n            let n = Lt(e.column, function(e) {\n                let t = pt;\n                if (e && e instanceof RegExp)\n                    if (e.global) t = e;\n                    else {\n                        let n = \"g\";\n                        e.ignoreCase && (n += \"i\"), e.multiline && (n += \"m\"), e.unicode && (n += \"u\"), t = new RegExp(e.source, n)\n                    } return t.lastIndex = 0, t\n            }(t), this._lines[e.lineNumber - 1], 0);\n            return n ? new nt(e.lineNumber, n.startColumn, e.lineNumber, n.endColumn) : null\n        }\n        words(e) {\n            const t = this._lines,\n                n = this._wordenize.bind(this);\n            let i = 0,\n                r = \"\",\n                s = 0,\n                o = [];\n            return {\n                *[Symbol.iterator]() {\n                    for (;;)\n                        if (s < o.length) {\n                            const e = r.substring(o[s].start, o[s].end);\n                            s += 1, yield e\n                        } else {\n                            if (!(i < t.length)) break;\n                            r = t[i], o = n(r, e), s = 0, i += 1\n                        }\n                }\n            }\n        }\n        getLineWords(e, t) {\n            let n = this._lines[e - 1],\n                i = this._wordenize(n, t),\n                r = [];\n            for (const e of i) r.push({\n                word: n.substring(e.start, e.end),\n                startColumn: e.start + 1,\n                endColumn: e.end + 1\n            });\n            return r\n        }\n        _wordenize(e, t) {\n            const n = [];\n            let i;\n            for (t.lastIndex = 0;\n                (i = t.exec(e)) && 0 !== i[0].length;) n.push({\n                start: i.index,\n                end: i.index + i[0].length\n            });\n            return n\n        }\n        getValueInRange(e) {\n            if ((e = this._validateRange(e)).startLineNumber === e.endLineNumber) return this._lines[e.startLineNumber - 1].substring(e.startColumn - 1, e.endColumn - 1);\n            let t = this._eol,\n                n = e.startLineNumber - 1,\n                i = e.endLineNumber - 1,\n                r = [];\n            r.push(this._lines[n].substring(e.startColumn - 1));\n            for (let e = n + 1; e < i; e++) r.push(this._lines[e]);\n            return r.push(this._lines[i].substring(0, e.endColumn - 1)), r.join(t)\n        }\n        offsetAt(e) {\n            return e = this._validatePosition(e), this._ensureLineStarts(), this._lineStarts.getPrefixSum(e.lineNumber - 2) + (e.column - 1)\n        }\n        positionAt(e) {\n            e = Math.floor(e), e = Math.max(0, e), this._ensureLineStarts();\n            let t = this._lineStarts.getIndexOf(e),\n                n = this._lines[t.index].length;\n            return {\n                lineNumber: 1 + t.index,\n                column: 1 + Math.min(t.remainder, n)\n            }\n        }\n        _validateRange(e) {\n            const t = this._validatePosition({\n                    lineNumber: e.startLineNumber,\n                    column: e.startColumn\n                }),\n                n = this._validatePosition({\n                    lineNumber: e.endLineNumber,\n                    column: e.endColumn\n                });\n            return t.lineNumber !== e.startLineNumber || t.column !== e.startColumn || n.lineNumber !== e.endLineNumber || n.column !== e.endColumn ? {\n                startLineNumber: t.lineNumber,\n                startColumn: t.column,\n                endLineNumber: n.lineNumber,\n                endColumn: n.column\n            } : e\n        }\n        _validatePosition(e) {\n            if (!tt.isIPosition(e)) throw new Error(\"bad position\");\n            let {\n                lineNumber: t,\n                column: n\n            } = e, i = !1;\n            if (t < 1) t = 1, n = 1, i = !0;\n            else if (t > this._lines.length) t = this._lines.length, n = this._lines[t - 1].length + 1, i = !0;\n            else {\n                let e = this._lines[t - 1].length + 1;\n                n < 1 ? (n = 1, i = !0) : n > e && (n = e, i = !0)\n            }\n            return i ? {\n                lineNumber: t,\n                column: n\n            } : e\n        }\n    }\n    class Tn {\n        constructor(e, t) {\n            this._host = e, this._models = Object.create(null), this._foreignModuleFactory = t, this._foreignModule = null\n        }\n        dispose() {\n            this._models = Object.create(null)\n        }\n        _getModel(e) {\n            return this._models[e]\n        }\n        _getModels() {\n            let e = [];\n            return Object.keys(this._models).forEach((t => e.push(this._models[t]))), e\n        }\n        acceptNewModel(e) {\n            this._models[e.url] = new On(We.parse(e.url), e.lines, e.EOL, e.versionId)\n        }\n        acceptModelChanged(e, t) {\n            if (!this._models[e]) return;\n            this._models[e].onEvents(t)\n        }\n        acceptRemovedModel(e) {\n            this._models[e] && delete this._models[e]\n        }\n        computeDiff(e, t, n, i) {\n            return Kn(this, void 0, void 0, (function*() {\n                const r = this._getModel(e),\n                    s = this._getModel(t);\n                if (!r || !s) return null;\n                const o = r.getLinesContent(),\n                    a = s.getLinesContent(),\n                    l = new lt(o, a, {\n                        shouldComputeCharChanges: !0,\n                        shouldPostProcessCharChanges: !0,\n                        shouldIgnoreTrimWhitespace: n,\n                        shouldMakePrettyDiff: !0,\n                        maxComputationTime: i\n                    }).computeDiff(),\n                    u = !(l.changes.length > 0) && this._modelsAreIdentical(r, s);\n                return {\n                    quitEarly: l.quitEarly,\n                    identical: u,\n                    changes: l.changes\n                }\n            }))\n        }\n        _modelsAreIdentical(e, t) {\n            const n = e.getLineCount();\n            if (n !== t.getLineCount()) return !1;\n            for (let i = 1; i <= n; i++) {\n                if (e.getLineContent(i) !== t.getLineContent(i)) return !1\n            }\n            return !0\n        }\n        computeMoreMinimalEdits(e, t) {\n            return Kn(this, void 0, void 0, (function*() {\n                const n = this._getModel(e);\n                if (!n) return t;\n                const i = [];\n                let r;\n                t = t.slice(0).sort(((e, t) => {\n                    if (e.range && t.range) return nt.compareRangesUsingStarts(e.range, t.range);\n                    return (e.range ? 0 : 1) - (t.range ? 0 : 1)\n                }));\n                for (let {\n                        range: e,\n                        text: s,\n                        eol: o\n                    } of t) {\n                    if (\"number\" == typeof o && (r = o), nt.isEmpty(e) && !s) continue;\n                    const t = n.getValueInRange(e);\n                    if (s = s.replace(/\\r\\n|\\n|\\r/g, n.eol), t === s) continue;\n                    if (Math.max(s.length, t.length) > Tn._diffLimit) {\n                        i.push({\n                            range: e,\n                            text: s\n                        });\n                        continue\n                    }\n                    const a = _e(t, s, !1),\n                        l = n.offsetAt(nt.lift(e).getStartPosition());\n                    for (const e of a) {\n                        const t = n.positionAt(l + e.originalStart),\n                            r = n.positionAt(l + e.originalStart + e.originalLength),\n                            o = {\n                                text: s.substr(e.modifiedStart, e.modifiedLength),\n                                range: {\n                                    startLineNumber: t.lineNumber,\n                                    startColumn: t.column,\n                                    endLineNumber: r.lineNumber,\n                                    endColumn: r.column\n                                }\n                            };\n                        n.getValueInRange(o.range) !== o.text && i.push(o)\n                    }\n                }\n                return \"number\" == typeof r && i.push({\n                    eol: r,\n                    text: \"\",\n                    range: {\n                        startLineNumber: 0,\n                        startColumn: 0,\n                        endLineNumber: 0,\n                        endColumn: 0\n                    }\n                }), i\n            }))\n        }\n        computeLinks(e) {\n            return Kn(this, void 0, void 0, (function*() {\n                let t = this._getModel(e);\n                return t ? function(e) {\n                    return e && \"function\" == typeof e.getLineCount && \"function\" == typeof e.getLineContent ? wt.computeLinks(e) : []\n                }(t) : null\n            }))\n        }\n        textualSuggest(e, t, n, i) {\n            return Kn(this, void 0, void 0, (function*() {\n                const r = new U(!0),\n                    s = new RegExp(n, i),\n                    o = new Set;\n                e: for (let n of e) {\n                    const e = this._getModel(n);\n                    if (e)\n                        for (let n of e.words(s))\n                            if (n !== t && isNaN(Number(n)) && (o.add(n), o.size > Tn._suggestionsLimit)) break e\n                }\n                return {\n                    words: Array.from(o),\n                    duration: r.elapsed()\n                }\n            }))\n        }\n        computeWordRanges(e, t, n, i) {\n            return Kn(this, void 0, void 0, (function*() {\n                let r = this._getModel(e);\n                if (!r) return Object.create(null);\n                const s = new RegExp(n, i),\n                    o = Object.create(null);\n                for (let e = t.startLineNumber; e < t.endLineNumber; e++) {\n                    let t = r.getLineWords(e, s);\n                    for (const n of t) {\n                        if (!isNaN(Number(n.word))) continue;\n                        let t = o[n.word];\n                        t || (t = [], o[n.word] = t), t.push({\n                            startLineNumber: e,\n                            startColumn: n.startColumn,\n                            endLineNumber: e,\n                            endColumn: n.endColumn\n                        })\n                    }\n                }\n                return o\n            }))\n        }\n        navigateValueSet(e, t, n, i, r) {\n            return Kn(this, void 0, void 0, (function*() {\n                let s = this._getModel(e);\n                if (!s) return null;\n                let o = new RegExp(i, r);\n                t.startColumn === t.endColumn && (t = {\n                    startLineNumber: t.startLineNumber,\n                    startColumn: t.startColumn,\n                    endLineNumber: t.endLineNumber,\n                    endColumn: t.endColumn + 1\n                });\n                let a = s.getValueInRange(t),\n                    l = s.getWordAtPosition({\n                        lineNumber: t.startLineNumber,\n                        column: t.startColumn\n                    }, o);\n                if (!l) return null;\n                let u = s.getValueInRange(l);\n                return vt.INSTANCE.navigateValueSet(t, a, l, u, n)\n            }))\n        }\n        loadForeignModule(e, t, n) {\n            const i = function(e, t) {\n                const n = e => function() {\n                    const n = Array.prototype.slice.call(arguments, 0);\n                    return t(e, n)\n                };\n                let i = {};\n                for (const t of e) i[t] = n(t);\n                return i\n            }(n, ((e, t) => this._host.fhr(e, t)));\n            let r = {\n                host: i,\n                getMirrorModels: () => this._getModels()\n            };\n            return this._foreignModuleFactory ? (this._foreignModule = this._foreignModuleFactory(r, t), Promise.resolve(W(this._foreignModule))) : Promise.reject(new Error(\"Unexpected usage\"))\n        }\n        fmr(e, t) {\n            if (!this._foreignModule || \"function\" != typeof this._foreignModule[e]) return Promise.reject(new Error(\"Missing requestHandler or method: \" + e));\n            try {\n                return Promise.resolve(this._foreignModule[e].apply(this._foreignModule, t))\n            } catch (e) {\n                return Promise.reject(e)\n            }\n        }\n    }\n    Tn._diffLimit = 1e5, Tn._suggestionsLimit = 1e4, \"function\" == typeof importScripts && (R.monaco = {\n        editor: void 0,\n        languages: void 0,\n        CancellationTokenSource: Tt,\n        Emitter: H,\n        KeyCode: an,\n        KeyMod: Mn,\n        Position: tt,\n        Range: nt,\n        Selection: wn,\n        SelectionDirection: Cn,\n        MarkerSeverity: ln,\n        MarkerTag: un,\n        Uri: We,\n        Token: vn\n    });\n    let Rn = !1;\n    self.onmessage = e => {\n        Rn || function(e) {\n            if (Rn) return;\n            Rn = !0;\n            const t = new ae((e => {\n                self.postMessage(e)\n            }), (t => new Tn(t, e)));\n            self.onmessage = e => {\n                t.onmessage(e.data)\n            }\n        }(null)\n    }\n})();"
  },
  {
    "path": "app/main/dist/electron/index.html",
    "content": "<!DOCTYPE html>\n<html>\n\n<head>\n    <meta charset=utf-8>\n    <title>Clash for Windows</title>\n    <script defer=defer src=renderer.js></script>\n</head>\n\n<body>\n    <div id=app></div>\n    <script>\n        if (process.env.NODE_ENV !== 'development') window.__static = require('path').join(__dirname, '/static').replace(/\\\\/g, '\\\\\\\\')\n    </script>\n</body>\n\n</html>"
  },
  {
    "path": "app/main/dist/electron/main.js",
    "content": "function language(v, en, cn) {\n    return v === 0 ? cn : v === 1 ? en : en;\n}\n\n(() => {\n    var e = {\n            228: e => {\n                e.exports = function(ar, len) {\n                    if (null == len || len > ar.length) {\n                        len = ar.length;\n                    }\n                    /** @type {number} */\n                    var i = 0;\n                    /** @type {Array} */\n                    var a = new Array(len);\n                    for (; i < len; i++) {\n                        a[i] = ar[i];\n                    }\n                    return a;\n                }, e.exports.default = e.exports, e.exports.__esModule = true;\n            },\n            858: e => {\n                e.exports = function(argv) {\n                    if (Array.isArray(argv)) {\n                        return argv;\n                    }\n                }, e.exports.default = e.exports, e.exports.__esModule = true;\n\n            },\n            646: (e, t, n) => {\n                var r = n(228);\n                e.exports = function(args) {\n                    if (Array.isArray(args)) {\n                        return r(args);\n                    }\n                }, e.exports.default = e.exports, e.exports.__esModule = true;\n            },\n            926: e => {\n                function t(args, next, b, c, reject, type, message) {\n                    try {\n                        var input = args[type](message);\n                        var val = input.value;\n                    } catch (self) {\n                        return void b(self);\n                    }\n                    if (input.done) {\n                        next(val);\n                    } else {\n                        Promise.resolve(val).then(c, reject);\n                    }\n                }\n                e.exports = function(e) {\n                    return function() {\n                        var n = this,\n                            r = arguments;\n                        return new Promise((function(o, i) {\n                            var a = e.apply(n, r);\n\n                            function c(e) {\n                                t(a, o, i, c, s, \"next\", e)\n                            }\n\n                            function s(e) {\n                                t(a, o, i, c, s, \"throw\", e)\n                            }\n                            c(void 0)\n                        }))\n                    }\n                }, e.exports.default = e.exports, e.exports.__esModule = !0\n            },\n            713: e => {\n                e.exports = function(e, t, n) {\n                    return t in e ? Object.defineProperty(e, t, {\n                        value: n,\n                        enumerable: !0,\n                        configurable: !0,\n                        writable: !0\n                    }) : e[t] = n, e\n                }, e.exports.default = e.exports, e.exports.__esModule = !0\n            },\n            860: e => {\n                e.exports = function(e) {\n                    if (\"undefined\" != typeof Symbol && null != e[Symbol.iterator] || null != e[\"@@iterator\"]) return Array.from(e)\n                }, e.exports.default = e.exports, e.exports.__esModule = !0\n            },\n            884: e => {\n                e.exports = function(e, t) {\n                    var n = e && (\"undefined\" != typeof Symbol && e[Symbol.iterator] || e[\"@@iterator\"]);\n                    if (null != n) {\n                        var r, o, i = [],\n                            a = !0,\n                            c = !1;\n                        try {\n                            for (n = n.call(e); !(a = (r = n.next()).done) && (i.push(r.value), !t || i.length !== t); a = !0);\n                        } catch (e) {\n                            c = !0, o = e\n                        } finally {\n                            try {\n                                a || null == n.return || n.return()\n                            } finally {\n                                if (c) throw o\n                            }\n                        }\n                        return i\n                    }\n                }, e.exports.default = e.exports, e.exports.__esModule = !0\n            },\n            521: e => {\n                e.exports = function() {\n                    throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")\n                }, e.exports.default = e.exports, e.exports.__esModule = !0\n            },\n            206: e => {\n                e.exports = function() {\n                    throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")\n                }, e.exports.default = e.exports, e.exports.__esModule = !0\n            },\n            38: (e, t, n) => {\n                var r = n(858),\n                    o = n(884),\n                    i = n(379),\n                    a = n(521);\n                e.exports = function(e, t) {\n                    return r(e) || o(e, t) || i(e, t) || a()\n                }, e.exports.default = e.exports, e.exports.__esModule = !0\n            },\n            319: (e, t, n) => {\n                var r = n(646),\n                    o = n(860),\n                    i = n(379),\n                    a = n(206);\n                e.exports = function(e) {\n                    return r(e) || o(e) || i(e) || a()\n                }, e.exports.default = e.exports, e.exports.__esModule = !0\n            },\n            379: (e, t, n) => {\n                var r = n(228);\n                e.exports = function(e, t) {\n                    if (e) {\n                        if (\"string\" == typeof e) return r(e, t);\n                        var n = Object.prototype.toString.call(e).slice(8, -1);\n                        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) ? r(e, t) : void 0\n                    }\n                }, e.exports.default = e.exports, e.exports.__esModule = !0\n            },\n            757: (e, t, n) => {\n                e.exports = n(666)\n            },\n            666: e => {\n                var t = function(e) {\n                    \"use strict\";\n                    var t, n = Object.prototype,\n                        r = n.hasOwnProperty,\n                        o = \"function\" == typeof Symbol ? Symbol : {},\n                        i = o.iterator || \"@@iterator\",\n                        a = o.asyncIterator || \"@@asyncIterator\",\n                        c = o.toStringTag || \"@@toStringTag\";\n\n                    function s(e, t, n) {\n                        return Object.defineProperty(e, t, {\n                            value: n,\n                            enumerable: !0,\n                            configurable: !0,\n                            writable: !0\n                        }), e[t]\n                    }\n                    try {\n                        s({}, \"\")\n                    } catch (e) {\n                        s = function(e, t, n) {\n                            return e[t] = n\n                        }\n                    }\n\n                    function l(e, t, n, r) {\n                        var o = t && t.prototype instanceof b ? t : b,\n                            i = Object.create(o.prototype),\n                            a = new P(r || []);\n                        return i._invoke = function(e, t, n) {\n                            var r = p;\n                            return function(o, i) {\n                                if (r === f) throw new Error(\"Generator is already running\");\n                                if (r === h) {\n                                    if (\"throw\" === o) throw i;\n                                    return T()\n                                }\n                                for (n.method = o, n.arg = i;;) {\n                                    var a = n.delegate;\n                                    if (a) {\n                                        var c = _(a, n);\n                                        if (c) {\n                                            if (c === m) continue;\n                                            return c\n                                        }\n                                    }\n                                    if (\"next\" === n.method) n.sent = n._sent = n.arg;\n                                    else if (\"throw\" === n.method) {\n                                        if (r === p) throw r = h, n.arg;\n                                        n.dispatchException(n.arg)\n                                    } else \"return\" === n.method && n.abrupt(\"return\", n.arg);\n                                    r = f;\n                                    var s = u(e, t, n);\n                                    if (\"normal\" === s.type) {\n                                        if (r = n.done ? h : d, s.arg === m) continue;\n                                        return {\n                                            value: s.arg,\n                                            done: n.done\n                                        }\n                                    }\n                                    \"throw\" === s.type && (r = h, n.method = \"throw\", n.arg = s.arg)\n                                }\n                            }\n                        }(e, n, a), i\n                    }\n\n                    function u(e, t, n) {\n                        try {\n                            return {\n                                type: \"normal\",\n                                arg: e.call(t, n)\n                            }\n                        } catch (e) {\n                            return {\n                                type: \"throw\",\n                                arg: e\n                            }\n                        }\n                    }\n                    e.wrap = l;\n                    var p = \"suspendedStart\",\n                        d = \"suspendedYield\",\n                        f = \"executing\",\n                        h = \"completed\",\n                        m = {};\n\n                    function b() {}\n\n                    function g() {}\n\n                    function y() {}\n                    var w = {};\n                    w[i] = function() {\n                        return this\n                    };\n                    var v = Object.getPrototypeOf,\n                        x = v && v(v(I([])));\n                    x && x !== n && r.call(x, i) && (w = x);\n                    var k = y.prototype = b.prototype = Object.create(w);\n\n                    function C(e) {\n                        [\"next\", \"throw\", \"return\"].forEach((function(t) {\n                            s(e, t, (function(e) {\n                                return this._invoke(t, e)\n                            }))\n                        }))\n                    }\n\n                    function M(e, t) {\n                        function n(o, i, a, c) {\n                            var s = u(e[o], e, i);\n                            if (\"throw\" !== s.type) {\n                                var l = s.arg,\n                                    p = l.value;\n                                return p && \"object\" == typeof p && r.call(p, \"__await\") ? t.resolve(p.__await).then((function(e) {\n                                    n(\"next\", e, a, c)\n                                }), (function(e) {\n                                    n(\"throw\", e, a, c)\n                                })) : t.resolve(p).then((function(e) {\n                                    l.value = e, a(l)\n                                }), (function(e) {\n                                    return n(\"throw\", e, a, c)\n                                }))\n                            }\n                            c(s.arg)\n                        }\n                        var o;\n                        this._invoke = function(e, r) {\n                            function i() {\n                                return new t((function(t, o) {\n                                    n(e, r, t, o)\n                                }))\n                            }\n                            return o = o ? o.then(i, i) : i()\n                        }\n                    }\n\n                    function _(e, n) {\n                        var r = e.iterator[n.method];\n                        if (r === t) {\n                            if (n.delegate = null, \"throw\" === n.method) {\n                                if (e.iterator.return && (n.method = \"return\", n.arg = t, _(e, n), \"throw\" === n.method)) return m;\n                                n.method = \"throw\", n.arg = new TypeError(\"The iterator does not provide a 'throw' method\")\n                            }\n                            return m\n                        }\n                        var o = u(r, e.iterator, n.arg);\n                        if (\"throw\" === o.type) return n.method = \"throw\", n.arg = o.arg, n.delegate = null, m;\n                        var i = o.arg;\n                        return i ? i.done ? (n[e.resultName] = i.value, n.next = e.nextLoc, \"return\" !== n.method && (n.method = \"next\", n.arg = t), n.delegate = null, m) : i : (n.method = \"throw\", n.arg = new TypeError(\"iterator result is not an object\"), n.delegate = null, m)\n                    }\n\n                    function S(e) {\n                        var t = {\n                            tryLoc: e[0]\n                        };\n                        1 in e && (t.catchLoc = e[1]), 2 in e && (t.finallyLoc = e[2], t.afterLoc = e[3]), this.tryEntries.push(t)\n                    }\n\n                    function O(e) {\n                        var t = e.completion || {};\n                        t.type = \"normal\", delete t.arg, e.completion = t\n                    }\n\n                    function P(e) {\n                        this.tryEntries = [{\n                            tryLoc: \"root\"\n                        }], e.forEach(S, this), this.reset(!0)\n                    }\n\n                    function I(e) {\n                        if (e) {\n                            var n = e[i];\n                            if (n) return n.call(e);\n                            if (\"function\" == typeof e.next) return e;\n                            if (!isNaN(e.length)) {\n                                var o = -1,\n                                    a = function n() {\n                                        for (; ++o < e.length;)\n                                            if (r.call(e, o)) return n.value = e[o], n.done = !1, n;\n                                        return n.value = t, n.done = !0, n\n                                    };\n                                return a.next = a\n                            }\n                        }\n                        return {\n                            next: T\n                        }\n                    }\n\n                    function T() {\n                        return {\n                            value: t,\n                            done: !0\n                        }\n                    }\n                    return g.prototype = k.constructor = y, y.constructor = g, g.displayName = s(y, c, \"GeneratorFunction\"), e.isGeneratorFunction = function(e) {\n                        var t = \"function\" == typeof e && e.constructor;\n                        return !!t && (t === g || \"GeneratorFunction\" === (t.displayName || t.name))\n                    }, e.mark = function(e) {\n                        return Object.setPrototypeOf ? Object.setPrototypeOf(e, y) : (e.__proto__ = y, s(e, c, \"GeneratorFunction\")), e.prototype = Object.create(k), e\n                    }, e.awrap = function(e) {\n                        return {\n                            __await: e\n                        }\n                    }, C(M.prototype), M.prototype[a] = function() {\n                        return this\n                    }, e.AsyncIterator = M, e.async = function(t, n, r, o, i) {\n                        void 0 === i && (i = Promise);\n                        var a = new M(l(t, n, r, o), i);\n                        return e.isGeneratorFunction(n) ? a : a.next().then((function(e) {\n                            return e.done ? e.value : a.next()\n                        }))\n                    }, C(k), s(k, c, \"Generator\"), k[i] = function() {\n                        return this\n                    }, k.toString = function() {\n                        return \"[object Generator]\"\n                    }, e.keys = function(e) {\n                        var t = [];\n                        for (var n in e) t.push(n);\n                        return t.reverse(),\n                            function n() {\n                                for (; t.length;) {\n                                    var r = t.pop();\n                                    if (r in e) return n.value = r, n.done = !1, n\n                                }\n                                return n.done = !0, n\n                            }\n                    }, e.values = I, P.prototype = {\n                        constructor: P,\n                        reset: function(e) {\n                            if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(O), !e)\n                                for (var n in this) \"t\" === n.charAt(0) && r.call(this, n) && !isNaN(+n.slice(1)) && (this[n] = t)\n                        },\n                        stop: function() {\n                            this.done = !0;\n                            var e = this.tryEntries[0].completion;\n                            if (\"throw\" === e.type) throw e.arg;\n                            return this.rval\n                        },\n                        dispatchException: function(e) {\n                            if (this.done) throw e;\n                            var n = this;\n\n                            function o(r, o) {\n                                return c.type = \"throw\", c.arg = e, n.next = r, o && (n.method = \"next\", n.arg = t), !!o\n                            }\n                            for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n                                var a = this.tryEntries[i],\n                                    c = a.completion;\n                                if (\"root\" === a.tryLoc) return o(\"end\");\n                                if (a.tryLoc <= this.prev) {\n                                    var s = r.call(a, \"catchLoc\"),\n                                        l = r.call(a, \"finallyLoc\");\n                                    if (s && l) {\n                                        if (this.prev < a.catchLoc) return o(a.catchLoc, !0);\n                                        if (this.prev < a.finallyLoc) return o(a.finallyLoc)\n                                    } else if (s) {\n                                        if (this.prev < a.catchLoc) return o(a.catchLoc, !0)\n                                    } else {\n                                        if (!l) throw new Error(\"try statement without catch or finally\");\n                                        if (this.prev < a.finallyLoc) return o(a.finallyLoc)\n                                    }\n                                }\n                            }\n                        },\n                        abrupt: function(e, t) {\n                            for (var n = this.tryEntries.length - 1; n >= 0; --n) {\n                                var o = this.tryEntries[n];\n                                if (o.tryLoc <= this.prev && r.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) {\n                                    var i = o;\n                                    break\n                                }\n                            }\n                            i && (\"break\" === e || \"continue\" === e) && i.tryLoc <= t && t <= i.finallyLoc && (i = null);\n                            var a = i ? i.completion : {};\n                            return a.type = e, a.arg = t, i ? (this.method = \"next\", this.next = i.finallyLoc, m) : this.complete(a)\n                        },\n                        complete: function(e, t) {\n                            if (\"throw\" === e.type) throw e.arg;\n                            return \"break\" === e.type || \"continue\" === e.type ? this.next = e.arg : \"return\" === e.type ? (this.rval = this.arg = e.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === e.type && t && (this.next = t), m\n                        },\n                        finish: function(e) {\n                            for (var t = this.tryEntries.length - 1; t >= 0; --t) {\n                                var n = this.tryEntries[t];\n                                if (n.finallyLoc === e) return this.complete(n.completion, n.afterLoc), O(n), m\n                            }\n                        },\n                        catch: function(e) {\n                            for (var t = this.tryEntries.length - 1; t >= 0; --t) {\n                                var n = this.tryEntries[t];\n                                if (n.tryLoc === e) {\n                                    var r = n.completion;\n                                    if (\"throw\" === r.type) {\n                                        var o = r.arg;\n                                        O(n)\n                                    }\n                                    return o\n                                }\n                            }\n                            throw new Error(\"illegal catch attempt\")\n                        },\n                        delegateYield: function(e, n, r) {\n                            return this.delegate = {\n                                iterator: I(e),\n                                resultName: n,\n                                nextLoc: r\n                            }, \"next\" === this.method && (this.arg = t), m\n                        }\n                    }, e\n                }(e.exports);\n                try {\n                    regeneratorRuntime = t\n                } catch (e) {\n                    Function(\"r\", \"regeneratorRuntime = r\")(t)\n                }\n            },\n            354: e => {\n                \"use strict\";\n                e.exports = require(\"@fndroid/network-interface\")\n            },\n            113: e => {\n                \"use strict\";\n                e.exports = require(\"electron-window-bounds\")\n            },\n            948: e => {\n                \"use strict\";\n                e.exports = require(\"fix-path\")\n            },\n            793: e => {\n                \"use strict\";\n                e.exports = require(\"lodash\")\n            },\n            298: e => {\n                \"use strict\";\n                e.exports = require(\"electron\")\n            },\n            147: e => {\n                \"use strict\";\n                e.exports = require(\"fs\")\n            },\n            17: e => {\n                \"use strict\";\n                e.exports = require(\"path\")\n            }\n        },\n        t = {};\n\n    function n(r) {\n        var o = t[r];\n        if (void 0 !== o) return o.exports;\n        var i = t[r] = {\n            exports: {}\n        };\n        return e[r](i, i.exports, n), i.exports\n    }\n    n.names = e => {\n        var t = e && e.__esModule ? () => e.default : () => e;\n        return n.d(t, {\n            a: t\n        }), t\n    }, n.d = (e, t) => {\n        for (var r in t) n.o(t, r) && !n.o(e, r) && Object.defineProperty(e, r, {\n            enumerable: !0,\n            get: t[r]\n        })\n    }, n.o = (e, t) => Object.prototype.hasOwnProperty.call(e, t), n.r = e => {\n        \"undefined\" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e, Symbol.toStringTag, {\n            value: \"Module\"\n        }), Object.defineProperty(e, \"__esModule\", {\n            value: !0\n        })\n    };\n    var r = {};\n    (() => {\n        \"use strict\";\n        n.r(r);\n        var e = n(319),\n            t = n.names(e),\n            o = n(38),\n            i = n.names(o),\n            a = n(713),\n            c = n.names(a),\n            s = n(926),\n            l = n.names(s),\n            u = n(757),\n            p = n.names(u);\n        require(\"@vue/reactivity\");\n        const d = require(\"axios\");\n        var f = n.names(d),\n            host = n(298);\n\n        function m(e, t) {\n            var n = Object.keys(e);\n            if (Object.getOwnPropertySymbols) {\n                var r = Object.getOwnPropertySymbols(e);\n                t && (r = r.filter((function(t) {\n                    return Object.getOwnPropertyDescriptor(e, t).enumerable\n                }))), n.push.apply(n, r)\n            }\n            return n\n        }\n\n        function b(e) {\n            for (var t = 1; t < arguments.length; t++) {\n                var n = null != arguments[t] ? arguments[t] : {};\n                t % 2 ? m(Object(n), !0).forEach((function(t) {\n                    c()(e, t, n[t])\n                })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : m(Object(n)).forEach((function(t) {\n                    Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t))\n                }))\n            }\n            return e\n        }\n        var g, y, w, toolBar, x, k = n(298).TouchBar,\n            C = k.TouchBarButton,\n            M = n(17),\n            _ = n(147),\n            S = n(793),\n            O = n(948);\n        global.__static = n(17).join(__dirname, \"/static\").replace(/\\\\/g, \"\\\\\\\\\"), O(), host.app.disableHardwareAcceleration(), host.app.commandLine.appendSwitch(\"disable-features\", \"OutOfBlinkCors\"), \"darwin\" === process.platform && host.app.dock.hide();\n        var P, I = [],\n            T = \"file://\".concat(__dirname, \"/index.html\");\n\n        function j() {\n            return \"linux\" === process.platform\n        }\n\n        function Launch() {\n            if (g) {\n                if (\"win32\" === process.platform) {\n                    if (g.isMinimized()) {\n                        g.restore();\n                    } else {\n                        g.show();\n                    }\n                } else {\n                    g.setVisibleOnAllWorkspaces(true);\n                    setTimeout(function() {\n                        g.show();\n                        g.setVisibleOnAllWorkspaces(false);\n                    }, 1);\n                }\n            }\n        }\n\n        function D() {\n            var e, r;\n            (g = new host.BrowserWindow({\n                height: 603,\n                width: 850,\n                minWidth: 850,\n                minHeight: 603,\n                backgroundColor: host.nativeTheme.shouldUseDarkColors ? \"#272531\" : \"#f5f5f5\",\n                useContentSize: true,\n                show: false,\n                minimizable: true,\n                frame: false,\n                titleBarStyle: \"hidden\",\n                icon: j() ? M.join(__static, \"imgs\", \"icon_512.png\") : void 0,\n                webPreferences: {\n                    nodeIntegration: true,\n                    webSecurity: true,\n                    nodeIntegrationInWorker: false,\n                    contextIsolation: false,\n                    preload: M.resolve(M.join(__dirname, \"preload.js\"))\n                }\n            })).setMenu(null), g.webContents.on(\"will-navigate\", function(types) {\n                return types.preventDefault();\n            }), g.loadURL(T, {\n                userAgent: \"ClashforWindows/\".concat(host.app.getVersion())\n            }), g.webContents.on(\"render-process-gone\", (e = l()(p().mark(function e$$12(n, err) {\n                var reason;\n                var par;\n                return p().wrap(function(self) {\n                    for (;;) {\n                        switch (self.prev = self.next) {\n                            case 0:\n                                if (reason = err.reason, \"darwin\" !== process.platform) {\n                                    /** @type {number} */\n                                    self.next = 3;\n                                    break;\n                                }\n                                return self.abrupt(\"return\");\n                            case 3:\n                                if (\"crashed\" !== reason) {\n                                    /** @type {number} */\n                                    self.next = 10;\n                                    break;\n                                }\n                                return par = {\n                                    type: \"error\",\n                                    title: \"Clash for Windows\",\n                                    message: language(state.language, \"Dashboard has crashed!\", \"\\u4eea\\u8868\\u677f\\u5d29\\u6e83\\u4e86!\"),\n                                    buttons: language(state.language, [\"Reload\", \"Exit\"], [\"重新加载\", \"退出\"])\n                                }, self.next = 7, host.dialog.showMessageBox(g, par);\n                            case 7:\n                                if (0 === self.sent.response) {\n                                    RelaunchApp();\n                                } else {\n                                    host.app.quit();\n                                };\n                            case 10:\n                                ;\n                            case \"end\":\n                                return self.stop();\n                        }\n                    }\n                }, e$$12);\n            })), function(dataAndEvents, deepDataAndEvents) {\n                return e.apply(this, arguments);\n            })), host.ipcMain.handle(\"start-download\", function(dataAndEvents, deepDataAndEvents, minX) {\n                g.webContents.downloadURL(deepDataAndEvents);\n                /** @type {Function} */\n                x = minX;\n            }), g.webContents.session.on(\"will-download\", function(dataAndEvents, model, deepDataAndEvents) {\n                if (x) {\n                    model.setSavePath(x);\n                    model.on(\"updated\", function(deepDataAndEvents, dataAndEvents) {\n                        if (\"interrupted\" === dataAndEvents) {\n                            g.webContents.send(\"download\", \"interrupted\");\n                        } else {\n                            if (\"progressing\" === dataAndEvents) {\n                                if (model.isPaused()) {\n                                    g.webContents.send(\"download\", \"paused\");\n                                } else {\n                                    g.webContents.send(\"download\", \"downloading\", model.getReceivedBytes() / model.getTotalBytes());\n                                }\n                            }\n                        }\n                    });\n                    model.once(\"done\", function(dataAndEvents, opt_content) {\n                        if (\"completed\" === opt_content) {\n                            g.webContents.send(\"download\", \"completed\");\n                        } else {\n                            g.webContents.send(\"download\", \"failed\", opt_content);\n                        }\n                    });\n                    /** @type {null} */\n                    x = null;\n                }\n            }), host.ipcMain.handle(\"app\", function(deepDataAndEvents, dataAndEvents) {\n                /** @type {number} */\n                var len = arguments.length;\n                /** @type {Array} */\n                var newArgs = new Array(len > 2 ? len - 2 : 0);\n                /** @type {number} */\n                var i = 2;\n                for (; i < len; i++) {\n                    newArgs[i - 2] = arguments[i];\n                }\n                switch (dataAndEvents) {\n                    case \"isPackaged\":\n                        return host.app.isPackaged;\n                    case \"getPath\":\n                        return host.app.getPath.apply(host.app, newArgs);\n                    case \"getAppPath\":\n                        return host.app.getAppPath();\n                    case \"getName\":\n                        return host.app.getName();\n                    case \"getVersion\":\n                        return host.app.getVersion();\n                    case \"setLoginItemSettings\":\n                        return host.app.setLoginItemSettings.apply(host.app, newArgs);\n                    case \"relaunch\":\n                        return host.app.relaunch();\n                    case \"exit\":\n                        if (g.isMaximized) {\n                            g.unmaximize();\n                        }\n                        return host.app.exit.apply(host.app, newArgs);\n                    case \"quit\":\n                        return host.app.quit();\n                }\n            }), host.ipcMain.handle(\"window\", (function(e, t) {\n                for (var n, r, o = arguments.length, i = new Array(o > 2 ? o - 2 : 0), a = 2; a < o; a++) i[a - 2] = arguments[a];\n                switch (t) {\n                    case \"close\":\n                        return g.close();\n                    case \"minimize\":\n                        return g.minimize();\n                    case \"maximize\":\n                        return g.maximize();\n                    case \"unmaximize\":\n                        return g.unmaximize();\n                    case \"setAlwaysOnTop\":\n                        return (n = g).setAlwaysOnTop.apply(n, i);\n                    case \"isVisible\":\n                        return g.isVisible();\n                    case \"isMaximized\":\n                        return g.isMaximized();\n                    case \"setFullScreen\":\n                        return (r = g).setFullScreen.apply(r, i);\n                    case \"reload\":\n                        return g.reload()\n                }\n            })), g.on(\"hide\", (function() {\n                g.webContents.send(\"window-event\", \"hide\")\n            })), g.on(\"show\", (function() {\n                \"darwin\" === process.platform && host.app.dock.show(), g.webContents.send(\"window-event\", \"show\")\n            })), g.on(\"close\", (function(e) {\n                if (host.app.isQuiting) {\n                    if (g.isMaximized) {\n                        g.unmaximize();\n                    }\n                    host.globalShortcut.unregisterAll();\n                    host.app.exit();\n                } else {\n                    if (e.preventDefault(), \"darwin\" === process.platform && g.isFullScreen()) return void g.setFullScreen(!1);\n                    g.webContents.send(\"window-event\", \"close\"), toolBar ? (g.blur(), g.hide(), \"darwin\" === process.platform && host.app.dock.hide()) : g.minimize()\n                }\n                return !1\n            })), g.on(\"maximize\", (function(e) {\n                g.webContents.send(\"window-event\", \"maximize\")\n            })), g.on(\"unmaximize\", (function(e) {\n                g.webContents.send(\"window-event\", \"unmaximize\")\n            })), g.on(\"enter-full-screen\", (function(e) {\n                g.webContents.send(\"window-event\", \"enter-full-screen\")\n            })), g.on(\"leave-full-screen\", (function(e) {\n                g.webContents.send(\"window-event\", \"leave-full-screen\")\n            })), g.on(\"session-end\", (function(e) {\n                if (g.isMaximized) {\n                    g.unmaximize();\n                }\n                e.preventDefault(), g.webContents.send(\"app-exit\")\n            })), host.ipcMain.handle(\"webContent\", (function(e, t) {\n                if (\"toggleDevTools\" === t) return g.webContents.toggleDevTools()\n            })), host.ipcMain.handle(\"dialog\", (r = l()(p().mark((function e(t, n) {\n                var r, o, i, a = arguments;\n                return p().wrap((function(e) {\n                    for (;;) switch (e.prev = e.next) {\n                        case 0:\n                            for (r = a.length, o = new Array(r > 2 ? r - 2 : 0), i = 2; i < r; i++) o[i - 2] = a[i];\n                            e.t0 = n, e.next = \"showMessageBox\" === e.t0 ? 4 : \"showOpenDialogSync\" === e.t0 ? 7 : 8;\n                            break;\n                        case 4:\n                            return e.next = 6, host.dialog.showMessageBox.apply(host.dialog, [g].concat(o));\n                        case 6:\n                            return e.abrupt(\"return\", e.sent);\n                        case 7:\n                            return e.abrupt(\"return\", host.dialog.showOpenDialogSync.apply(host.dialog, [g].concat(o)));\n                        case 8:\n                        case \"end\":\n                            return e.stop()\n                    }\n                }), e)\n            }))), function(e, t) {\n                return r.apply(this, arguments)\n            })), host.ipcMain.handle(\"globalShortcut\", (function(e, t) {\n                for (var n = arguments.length, r = new Array(n > 2 ? n - 2 : 0), o = 2; o < n; o++) r[o - 2] = arguments[o];\n                switch (t) {\n                    case \"register\":\n                        return host.globalShortcut.register(r[0], (function() {\n                            g.webContents.send(\"shortcut-pressed\", r[0])\n                        }));\n                    case \"unregister\":\n                        return host.globalShortcut.unregister.apply(host.globalShortcut, r);\n                    case \"isRegistered\":\n                        return host.globalShortcut.isRegistered.apply(host.globalShortcut, r)\n                }\n            })), host.ipcMain.handle(\"nativeTheme\", (function(e, t) {\n                if (\"shouldUseDarkColors\" === t) return host.nativeTheme.shouldUseDarkColors\n            })), host.nativeTheme.on(\"updated\", (function() {\n                g.webContents.send(\"native-theme-updated\", host.nativeTheme.shouldUseDarkColors)\n            })), host.ipcMain.handle(\"powerSaveBlocker\", (function(e, t) {\n                for (var n, r, o = arguments.length, i = new Array(o > 2 ? o - 2 : 0), a = 2; a < o; a++) i[a - 2] = arguments[a];\n                switch (t) {\n                    case \"start\":\n                        return (n = powerSaveBlocker).start.apply(n, i);\n                    case \"stop\":\n                        return (r = powerSaveBlocker).stop.apply(r, i)\n                }\n            })), host.ipcMain.on(\"set-allow-unsafe-urls\", (function(e, t) {\n                I = t\n            })), g.setTouchBar(new k({\n                items: [new C({\n                    label: \"General\",\n                    backgroundColor: \"#505050\",\n                    click: function() {\n                        g.webContents.send(\"menu-item-change\", \"general\")\n                    }\n                }), new C({\n                    label: \"Proxies\",\n                    backgroundColor: \"#505050\",\n                    click: function() {\n                        g.webContents.send(\"menu-item-change\", \"proxy\")\n                    }\n                }), new C({\n                    label: \"Profiles\",\n                    backgroundColor: \"#505050\",\n                    click: function() {\n                        g.webContents.send(\"menu-item-change\", \"server\")\n                    }\n                }), new C({\n                    label: \"Logs\",\n                    backgroundColor: \"#505050\",\n                    click: function() {\n                        g.webContents.send(\"menu-item-change\", \"log\")\n                    }\n                }), new C({\n                    label: \"连接\",\n                    backgroundColor: \"#505050\",\n                    click: function() {\n                        g.webContents.send(\"menu-item-change\", \"connection\")\n                    }\n                }), new C({\n                    label: \"Settings\",\n                    backgroundColor: \"#505050\",\n                    click: function() {\n                        g.webContents.send(\"menu-item-change\", \"setting\")\n                    }\n                }), new C({\n                    label: \"Feedback\",\n                    backgroundColor: \"#505050\",\n                    click: function() {\n                        g.webContents.send(\"menu-item-change\", \"about\")\n                    }\n                })]\n            })), host.powerMonitor.on(\"suspend\", (function() {\n                g.webContents.send(\"power-event\", \"suspend\")\n            })), host.powerMonitor.on(\"resume\", (function() {\n                g.webContents.send(\"power-event\", \"resume\")\n            })), host.ipcMain.handle(\"window-control\", (function(e, t) {\n                switch (t) {\n                    case \"hide\":\n                        host.app.quit();\n                        break;\n                    case \"show\":\n                        Launch();\n                        break;\n                    case \"show-or-hide\":\n                        if (g.isVisible() && g.isFocused()) {\n                            host.app.quit();\n                        } else {\n                            Launch();\n                        };\n                    default:\n                        host.app.quit();\n                }\n            })), host.ipcMain.on(\"cleanup-done\", (function(e) {\n                host.app.isQuiting = !0, host.app.quit()\n            })), host.ipcMain.on(\"status-changed\", (function(e, t) {\n                try {\n                    \"darwin\" !== process.platform && toolBar.setImage(t)\n                } catch (e) {}\n            })), host.ipcMain.on(\"show-notification\", (function(e, t) {\n                var n = M.join(global.__static, \"imgs/logo_64.png\"),\n                    notification = new host.Notification(b(b({}, t), {}, {\n                        icon: \"darwin\" !== process.platform ? host.nativeImage.createFromPath(n) : null\n                    })),\n                    o = t.folder,\n                    i = t.url;\n                o && notification.on(\"click\", (function() {\n                    host.shell.openPath(t.folder)\n                })), i && notification.on(\"click\", (function() {\n                    host.shell.openExternal(i)\n                })), notification.show()\n            })), host.ipcMain.on(\"clash-core-info\", (function(e, t) {\n                var n = t.port,\n                    r = t.secret;\n                n > 0 && (P = f().create({\n                    baseURL: \"http://127.0.0.1:\".concat(n, \"/\"),\n                    timeout: 5e3,\n                    headers: {\n                        Authorization: \"Bearer \".concat(r)\n                    }\n                }))\n            }));\n            var o;\n            var state = {\n                systemProxyChecked: false,\n                tunModeChecked: false,\n                mixinChecked: false,\n                isReady: false,\n                menuMode: \"\",\n                menuStyle: 0,\n                isShowDelayIcon: false,\n                language: 0,\n            };\n            /**\n             * @param {string} event\n             * @return {?}\n             */\n            var s = function(event) {\n                return host.nativeImage.createFromPath(M.join(__static, \"imgs\", \"tray-proxy-\".concat(event, \".png\"))).resize({\n                    width: 8,\n                    height: 8\n                });\n            };\n            var u = (s(\"default\"), s(\"online\"));\n            var d = s(\"offline\");\n            /** @type {function (): ?} */\n            var m = (o = l()(p().mark(function e$$13() {\n                var samePartsLength;\n                var radixToPower;\n                var result;\n                var path;\n                var payload;\n                var l;\n                var config;\n                var pdataOld;\n                var events;\n                var sort;\n                var rule;\n                var queuelen;\n                return p().wrap(function(self) {\n                    for (;;) {\n                        switch (self.prev = self.next) {\n                            case 0:\n                                if (samePartsLength = [], self.prev = 1, j() && 2 !== !state.menuStyle) {\n                                    /** @type {number} */\n                                    self.next = 12;\n                                    break;\n                                }\n                                return self.next = 5, Promise.all([P.get(\"/proxies\"), P.get(\"/providers/proxies\")]);\n                            case 5:\n                                radixToPower = self.sent;\n                                result = i()(radixToPower, 2);\n                                path = result[0];\n                                payload = result[1];\n                                l = (null == path ? void 0 : path.data) || {};\n                                config = l.proxies;\n                                pdataOld = (null == payload ? void 0 : payload.data) || {};\n                                events = pdataOld.providers;\n                                if (config) {\n                                    (sort = Object.entries(config).reduce(function(env, layers) {\n                                        var error = i()(layers, 2);\n                                        var errorName = error[0];\n                                        var params = error[1];\n                                        return \"Selector\" === (params || {}).type ? [].concat(t()(env), [{\n                                            name: errorName,\n                                            all: params.all,\n                                            now: params.now\n                                        }]) : env;\n                                    }, [])).sort(function(pkg, t) {\n                                        var $ = config.GLOBAL.all;\n                                        return $.findIndex(function(moduleName) {\n                                            return moduleName === pkg.name;\n                                        }) - $.findIndex(function(type) {\n                                            return type === t.name;\n                                        });\n                                    });\n                                    rule = Object.entries(events).reduce(function(env, owner) {\n                                        var unlock = i()(owner, 2);\n                                        var value = (unlock[0], (unlock[1] || {}).proxies);\n                                        var computed = void 0 === value ? [] : value;\n                                        return [].concat(t()(env), t()(computed));\n                                    });\n                                    samePartsLength = sort.map(function(result) {\n                                        var text = result.name;\n                                        var deps = result.all;\n                                        var id = result.now;\n                                        return {\n                                            label: text,\n                                            submenu: deps.map(function(name) {\n                                                var me = rule.find(function(v) {\n                                                    return v.name === name;\n                                                }) || [];\n                                                return {\n                                                    label: name,\n                                                    type: \"radio\",\n                                                    checked: name === id,\n                                                    icon: state.isShowDelayIcon ? me.alive ? u : d : null,\n                                                    /**\n                                                     * @return {undefined}\n                                                     */\n                                                    click: function() {\n                                                        if (P) {\n                                                            P.put(\"/proxies/\".concat(encodeURIComponent(text)), {\n                                                                name: name\n                                                            }).then(function(jqXHR) {\n                                                                if (204 === jqXHR.status) {\n                                                                    g.webContents.send(\"persist-selected-proxy\");\n                                                                    g.webContents.send(\"break-connections\", text);\n                                                                }\n                                                            }).catch(function(dataAndEvents) {});\n                                                        }\n                                                    }\n                                                };\n                                            })\n                                        };\n                                    });\n                                };\n                            case 12:\n                                /** @type {number} */\n                                self.next = 16;\n                                break;\n                            case 14:\n                                /** @type {number} */\n                                self.prev = 14;\n                                self.t0 = self.catch(1);\n                            case 16:\n                                return queuelen = [\n                                    [{\n                                        label: language(state.language, \"Proxy Groups\", \"\\u4ee3\\u7406\\u7ec4\"), //代理组\n                                        enabled: false\n                                    }].concat(t()(samePartsLength)), [{\n                                        label: language(state.language, \"Proxy Groups\", \"\\u4ee3\\u7406\\u7ec4\"), //代理组\n                                        submenu: samePartsLength\n                                    }],\n                                    []\n                                ][state.menuStyle || 0], self.abrupt(\"return\", [{\n                                    label: language(state.language, \"Dashboard\", \"\\u4eea\\u8868\\u76d8\"), //仪表盘\n                                    click: Launch\n                                }, {\n                                    label: language(state.language, \"Run Tray Script\", \"\\u8fd0\\u884c\\u4efb\\u52a1\\u680f\\u811a\\u672c\"), //运行任务栏脚本\n                                    visible: \"linux\" !== process.platform,\n                                    /**\n                                     * @return {?}\n                                     */\n                                    click: function() {\n                                        return g.webContents.send(\"run-tray-script\");\n                                    }\n                                }, {\n                                    type: \"separator\"\n                                }, {\n                                    label: language(state.language, \"System Proxy\", \"&\\u7cfb\\u7edf\\u4ee3\\u7406\"), //系统代理\n                                    type: \"checkbox\",\n                                    id: \"system-proxy\",\n                                    checked: state.systemProxyChecked,\n                                    enabled: state.isReady,\n                                    visible: \"linux\" !== process.platform,\n                                    /**\n                                     * @param {Element} e\n                                     * @return {undefined}\n                                     */\n                                    click: function(e) {\n                                        var status = e.checked;\n                                        g.webContents.send(\"system-proxy-changed\", status);\n                                    }\n                                }, {\n                                    label: language(state.language, \"TUN Mode\", \"TUN \\u6a21\\u5f0f\"),\n                                    type: \"checkbox\",\n                                    id: \"tun\",\n                                    enabled: state.isReady,\n                                    checked: state.tunModeChecked,\n                                    /**\n                                     * @param {Element} e\n                                     * @return {undefined}\n                                     */\n                                    click: function(e) {\n                                        var status = e.checked;\n                                        g.webContents.send(\"tun-changed\", status);\n                                    }\n                                }, {\n                                    label: language(state.language, \"Mixin\", \"\\u6df7\\u5408\\u914d\\u7f6e\"), //混合配置\n                                    type: \"checkbox\",\n                                    id: \"mixin\",\n                                    enabled: state.isReady,\n                                    checked: state.mixinChecked,\n                                    /**\n                                     * @param {Element} e\n                                     * @return {undefined}\n                                     */\n                                    click: function(e) {\n                                        var status = e.checked;\n                                        g.webContents.send(\"mixin-changed\", status);\n                                    }\n                                }, {\n                                    type: \"separator\"\n                                }, {\n                                    label: language(state.language, \"Proxy Mode\", \"\\u4ee3\\u7406\\u6a21\\u5f0f\"), //代理模式\n                                    id: \"mode\",\n                                    enabled: false\n                                }, {\n                                    label: language(state.language, \"Global\", \"\\u5168\\u5c40\"), //Global\n                                    type: \"radio\",\n                                    id: \"mode-global\",\n                                    enabled: state.isReady,\n                                    checked: \"global\" === state.menuMode,\n                                    /**\n                                     * @return {?}\n                                     */\n                                    click: function() {\n                                        return g.webContents.send(\"mode-changed\", \"global\");\n                                    }\n                                }, {\n                                    label: language(state.language, \"Rule\", \"\\u89c4\\u5219\"), //Rule\n                                    type: \"radio\",\n                                    id: \"mode-rule\",\n                                    enabled: state.isReady,\n                                    checked: \"rule\" === state.menuMode,\n                                    /**\n                                     * @return {?}\n                                     */\n                                    click: function() {\n                                        return g.webContents.send(\"mode-changed\", \"rule\");\n                                    }\n                                }, {\n                                    label: language(state.language, \"Direct\", \"\\u76f4\\u8fde\"), // Direct\n                                    type: \"radio\",\n                                    id: \"mode-direct\",\n                                    enabled: state.isReady,\n                                    checked: \"direct\" === state.menuMode,\n                                    /**\n                                     * @return {?}\n                                     */\n                                    click: function() {\n                                        return g.webContents.send(\"mode-changed\", \"direct\");\n                                    }\n                                }, {\n                                    label: language(state.language, \"Script\", \"\\u811a\\u672c\"), //Script\n                                    type: \"radio\",\n                                    id: \"mode-script\",\n                                    enabled: state.isReady,\n                                    checked: \"script\" === state.menuMode,\n                                    /**\n                                     * @return {?}\n                                     */\n                                    click: function() {\n                                        return g.webContents.send(\"mode-changed\", \"script\");\n                                    }\n                                }, {\n                                    type: \"separator\"\n                                }].concat(t()(queuelen), [{\n                                    type: \"separator\"\n                                }, {\n                                    label: language(state.language, \"Connections\", \"\\u8fde\\u63a5\"), //Connections\n                                    id: \"connection\",\n                                    enabled: false\n                                }, {\n                                    label: language(state.language, \"Close All\", \"\\u5173\\u95ed\\u5168\\u90e8\"), //Close All\n                                    type: \"normal\",\n                                    enabled: state.isReady,\n                                    /**\n                                     * @return {undefined}\n                                     */\n                                    click: function() {\n                                        P.delete(\"/connections\");\n                                    }\n                                }, {\n                                    type: \"separator\"\n                                }, {\n                                    label: language(state.language, \"More\", \"\\u66f4\\u591a\"), //More\n                                    submenu: [{\n                                        label: language(state.language, \"Toggle DevTools\", \"\\u5207\\u6362Dev\\u5de5\\u5177\"), //Toggle DevTools\n                                        /**\n                                         * @return {undefined}\n                                         */\n                                        click: function() {\n                                            g.webContents.toggleDevTools();\n                                        }\n                                    }, {\n                                        label: language(state.language, \"Move Dashboard To Nearest Monitor\", \"\\u5c06\\u4eea\\u8868\\u677f\\u79fb\\u81f3\\u6700\\u8fd1\\u7684\\u663e\\u793a\\u5668\"), //Move Dashboard To Nearest Monitor\n                                        /**\n                                         * @return {undefined}\n                                         */\n                                        click: function() {\n                                            g.setBounds(B(g.getBounds()));\n                                            Launch();\n                                        }\n                                    }, {\n                                        label: language(state.language, \"Restart\", \"\\u91cd\\u542f\"), //Restart\n                                        /**\n                                         * @return {undefined}\n                                         */\n                                        click: function() {\n                                            if (g.isMaximized) {\n                                                g.unmaximize();\n                                            }\n                                            host.app.relaunch();\n                                            host.app.exit(0);\n                                        }\n                                    }, {\n                                        label: language(state.language, \"Force Quit\", \"\\u5f3a\\u5236\\u9000\\u51fa\"), //Force Quit\n                                        /**\n                                         * @return {undefined}\n                                         */\n                                        click: function() {\n                                            /** @type {boolean} */\n                                            host.app.isQuiting = true;\n                                            host.app.quit();\n                                        }\n                                    }]\n                                }, {\n                                    type: \"separator\"\n                                }, {\n                                    label: language(state.language, \"Quit\", \"\\u9000\\u51fa\"), //Quit\n                                    /**\n                                     * @return {?}\n                                     */\n                                    click: function() {\n                                        if (g.isMaximized) {\n                                            g.unmaximize();\n                                        }\n                                        return g.webContents.send(\"app-exit\");\n                                    }\n                                }]));\n                            case 18:\n                                ;\n                            case \"end\":\n                                return self.stop();\n                        }\n                    }\n                }, e$$13, null, [\n                    [1, 14]\n                ]);\n            })), function() {\n                return o.apply(this, arguments);\n            });\n            /**\n             * @return {undefined}\n             */\n            var S = function() {\n                var restoreScript;\n                if (!toolBar) {\n                    var udataCur = host.nativeImage.createFromPath(M.join(__static, \"imgs\", \"logo_64_eyes.png\")).resize({\n                        width: 24,\n                        height: 24\n                    });\n                    udataCur.setTemplateImage(true);\n                    var r20 = M.join(__static, \"tray\", \"win\", \"tray_normal.ico\");\n                    var rreturn = M.join(__static, \"imgs\", \"logo_reverse_32.png\");\n                    var trayOptions = (restoreScript = {}, c()(restoreScript, \"win32\", r20), c()(restoreScript, \"darwin\", udataCur), c()(restoreScript, \"linux\", rreturn), restoreScript)[process.platform];\n                    (toolBar = new host.Tray(trayOptions)).setToolTip(\"Clash for Windows\");\n                    toolBar.on(\"right-click\", function() {\n                        m().then(function(deepDataAndEvents) {\n                            toolBar.popUpContextMenu(host.Menu.buildFromTemplate(deepDataAndEvents));\n                        });\n                    });\n                    toolBar.on(\"click\", function() {\n                        if (\"darwin\" !== process.platform) {\n                            Launch();\n                        }\n                    });\n                    toolBar.on(\"mouse-down\", Launch);\n                }\n            };\n            S(), host.ipcMain.handle(\"tray-create-destroy\", function(dataAndEvents) {\n                var method = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : \"create\";\n                if (\"create\" === method) {\n                    S();\n                }\n                if (\"destroy\" === method) {\n                    if (toolBar) {\n                        toolBar.destroy();\n                        /** @type {null} */\n                        toolBar = null;\n                    }\n                }\n            });\n            var O_CN = host.Menu.buildFromTemplate([{\n                label: \"仪表盘\",\n                click: Launch\n            }, {\n                type: \"separator\"\n            }, {\n                label: \"TUN 模式\",\n                type: \"checkbox\",\n                id: \"tun\",\n                enabled: !1,\n                click: function(e) {\n                    var t = e.checked;\n                    g.webContents.send(\"tun-changed\", t)\n                }\n            }, {\n                label: \"混合配置\",\n                type: \"checkbox\",\n                id: \"mixin\",\n                enabled: !1,\n                click: function(e) {\n                    var t = e.checked;\n                    g.webContents.send(\"mixin-changed\", t)\n                }\n            }, {\n                type: \"separator\"\n            }, {\n                label: \"代理模式\",\n                id: \"mode\",\n                enabled: !1\n            }, {\n                label: \"全局\",\n                type: \"radio\",\n                id: \"mode-global\",\n                enabled: !1,\n                click: function() {\n                    return g.webContents.send(\"mode-changed\", \"global\")\n                }\n            }, {\n                label: \"规则\",\n                type: \"radio\",\n                id: \"mode-rule\",\n                enabled: state.isReady,\n                checked: \"rule\" === state.menuMode,\n                click: function() {\n                    return g.webContents.send(\"mode-changed\", \"rule\")\n                }\n            }, {\n                label: \"直连\",\n                type: \"radio\",\n                id: \"mode-direct\",\n                enabled: !1,\n                click: function() {\n                    return g.webContents.send(\"mode-changed\", \"direct\")\n                }\n            }, {\n                label: \"脚本\",\n                type: \"radio\",\n                id: \"mode-script\",\n                enabled: !1,\n                click: function() {\n                    return g.webContents.send(\"mode-changed\", \"script\")\n                }\n            }, {\n                type: \"separator\"\n            }, {\n                label: \"更多\",\n                submenu: [{\n                    label: \"切换Dev工具\",\n                    click: function() {\n                        g.webContents.toggleDevTools()\n                    }\n                }, {\n                    label: \"将仪表板移至最近的显示器\",\n                    click: function() {\n                        g.setBounds(B(g.getBounds())), Launch()\n                    }\n                }, {\n                    label: \"重启\",\n                    click: function() {\n                        if (g.isMaximized) {\n                            g.unmaximize();\n                        }\n                        host.app.relaunch(), host.app.exit(0)\n                    }\n                }, {\n                    label: \"强制退出\",\n                    click: function() {\n                        host.app.isQuiting = !0, host.app.quit()\n                    }\n                }]\n            }, {\n                type: \"separator\"\n            }, {\n                label: \"退出\",\n                click: function() {\n                    if (g.isMaximized) {\n                        g.unmaximize();\n                    }\n                    return g.webContents.send(\"app-exit\")\n                }\n                }]);\n\n            var O_EN = host.Menu.buildFromTemplate([{\n                label: \"Dashboard\",\n                click: Launch\n            }, {\n                type: \"separator\"\n            }, {\n                label: \"TUN Mode\",\n                type: \"checkbox\",\n                id: \"tun\",\n                enabled: !1,\n                click: function (e) {\n                    var t = e.checked;\n                    g.webContents.send(\"tun-changed\", t)\n                }\n            }, {\n                label: \"Mixin\",\n                type: \"checkbox\",\n                id: \"mixin\",\n                enabled: !1,\n                click: function (e) {\n                    var t = e.checked;\n                    g.webContents.send(\"mixin-changed\", t)\n                }\n            }, {\n                type: \"separator\"\n            }, {\n                label: \"Proxy Mode\",\n                id: \"mode\",\n                enabled: !1\n            }, {\n                label: \"Global\",\n                type: \"radio\",\n                id: \"mode-global\",\n                enabled: !1,\n                click: function () {\n                    return g.webContents.send(\"mode-changed\", \"global\")\n                }\n            }, {\n                label: \"Rule\",\n                type: \"radio\",\n                id: \"mode-rule\",\n                enabled: state.isReady,\n                checked: \"rule\" === state.menuMode,\n                click: function () {\n                    return g.webContents.send(\"mode-changed\", \"rule\")\n                }\n            }, {\n                label: \"Direct\",\n                type: \"radio\",\n                id: \"mode-direct\",\n                enabled: !1,\n                click: function () {\n                    return g.webContents.send(\"mode-changed\", \"direct\")\n                }\n            }, {\n                label: \"Script\",\n                type: \"radio\",\n                id: \"mode-script\",\n                enabled: !1,\n                click: function () {\n                    return g.webContents.send(\"mode-changed\", \"script\")\n                }\n            }, {\n                type: \"separator\"\n            }, {\n                label: \"More\",\n                submenu: [{\n                    label: \"Toggle DevTools\",\n                    click: function () {\n                        g.webContents.toggleDevTools()\n                    }\n                }, {\n                    label: \"Move Dashboard To Nearest Monitor\",\n                    click: function () {\n                        g.setBounds(B(g.getBounds())), Launch()\n                    }\n                }, {\n                    label: \"Restart\",\n                    click: function () {\n                        if (g.isMaximized) {\n                            g.unmaximize();\n                        }\n                        host.app.relaunch(), host.app.exit(0)\n                    }\n                }, {\n                    label: \"Force Quit\",\n                    click: function () {\n                        host.app.isQuiting = !0, host.app.quit()\n                    }\n                }]\n            }, {\n                type: \"separator\"\n            }, {\n                label: \"Quit\",\n                click: function () {\n                    if (g.isMaximized) {\n                        g.unmaximize();\n                    }\n                    return g.webContents.send(\"app-exit\")\n                }\n            }]);\n\n            function D() {\n                j() && toolBar && toolBar.setContextMenu(language(state.language, O_EN, O_CN))\n            }\n            D(), host.ipcMain.on(\"clash-core-status-change\", (function(e, t) {\n                if (state.isReady = !0, j()) {\n                    var n = language(state.language, O_EN, O_CN).getMenuItemById(\"system-proxy\");\n                    n && (n.enabled = 1 !== t);\n                    var r = language(state.language, O_EN, O_CN).getMenuItemById(\"mixin\");\n                    r && (r.enabled = 1 !== t);\n                    var o = language(state.language, O_EN, O_CN).getMenuItemById(\"tun\");\n                    o && (o.enabled = 1 !== t), [\"global\", \"rule\", \"direct\", \"script\"].forEach((function(e) {\n                        var n = language(state.language, O_EN, O_CN).getMenuItemById(\"mode-\".concat(e));\n                        n && (n.enabled = 1 !== t)\n                    })), D()\n                }\n            })), host.ipcMain.handle(\"tray-proxies-style\", (function(e, t) {\n                if (t === 0) {\n                    state.menuStyle = 1;\n                } else if (t === 1) {\n                    state.menuStyle = 0;\n                } else {\n                    state.menuStyle = 2\n                }\n            })), host.ipcMain.handle(\"tray-proxies-icon\", (function(e, t) {\n                state.isShowDelayIcon = t\n            })), host.ipcMain.on(\"mode-changed\", (function(e, t) {\n                if (state.menuMode = t, j()) {\n                    var n = \"mode-\".concat(t),\n                        r = language(state.language, O_EN, O_CN).getMenuItemById(n);\n                    r && (r.checked = !0), D()\n                }\n            })), host.ipcMain.handle(\"cfw-language\", (function (e, t) {\n                state.language = t\n            })), host.ipcMain.on(\"system-proxy-changed\", (function(e, t) {\n                state.systemProxyChecked = t\n            })), host.ipcMain.on(\"mixin-changed\", (function(e, t) {\n                if (state.mixinChecked = t, j()) {\n                    var n = language(state.language, O_EN, O_CN).getMenuItemById(\"mixin\");\n                    n && (n.checked = t), D()\n                }\n            })), host.ipcMain.on(\"tun-changed\", (function(e, t) {\n                if (state.tunModeChecked = t, j()) {\n                    var n = language(state.language, O_EN, O_CN).getMenuItemById(\"tun\");\n                    n && (n.checked = t), D()\n                }\n            })), host.ipcMain.on(\"enhanced-tray-click\", Launch), host.ipcMain.on(\"speed-update\", (function(e, t, n) {\n                var r = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : \"#fff\";\n                try {\n                    if (toolBar) {\n                        var o = host.nativeImage.createFromDataURL(t);\n                        if (\"win32\" === process.platform) {\n                            if (60 === n) return void(y && (y.destroy(), y = null, w = 0));\n                            var i = o.crop({\n                                x: 0,\n                                y: 0,\n                                width: n + 8,\n                                height: 69\n                            });\n                            var a = M.join(host.app.getPath(\"temp\"), \"cfw-sub.html\");\n                            var c = i.getSize();\n                            var s = c.width;\n                            var l = c.height;\n                            _.writeFileSync(a, '\\n          <body style=\"position:relative;background-color:'.concat(r, ';overflow:hidden;-webkit-app-region:drag;margin:0;width:100%;height:100%;box-sizing:border-box;\">\\n            <img id=\"img\" style=\"height:100%;width:100%;\" src=\"').concat(i.toDataURL(), '\" />\\n            <div style=\"position:absolute;width:50%;height:100%;top:0;left:50%;-webkit-app-region:no-drag;\" onclick=\"handleClick()\"></div>\\n          </body>\\n          <script>\\n            const { ipcRenderer } = require(\\'electron\\');\\n            ipcRenderer.on(\\'speed-update-win\\', (e, url, bgc) => {\\n              document.getElementById(\"img\").src = url;\\n              document.body.style.backgroundColor = bgc;\\n            })\\n            const handleClick = () => {\\n              ipcRenderer.send(\\'enhanced-tray-click\\');\\n            }\\n          \\x3c/script>\\n          ')),\n                                y || (y = new host.BrowserWindow({\n                                    show: true,\n                                    alwaysOnTop: true,\n                                    closable: false,\n                                    focusable: false,\n                                    frame: false,\n                                    useContentSize: true,\n                                    maximizable: false,\n                                    transparent: true,\n                                    minimizable: false,\n                                    resizable: false,\n                                    webPreferences: {\n                                        nodeIntegration: true,\n                                        contextIsolation: false\n                                    }\n                                })).loadFile(a), y.show(), y.webContents.send(\"speed-update-win\", i.toDataURL(), r), w !== n && y.setBounds({\n                                    height: Math.ceil(l / 2.8),\n                                    width: Math.ceil(s / 2.8)\n                                }), w = n\n                        }\n                        if (\"darwin\" === process.platform) {\n                            var u = (\"\" === t ? host.nativeImage.createFromPath(M.join(__static, \"imgs\", \"logo_64_eyes.png\")) : o.crop({\n                                x: 0,\n                                y: 0,\n                                width: n,\n                                height: 69\n                            })).resize({\n                                height: 23\n                            });\n                            u.setTemplateImage(!0), toolBar.setImage(u)\n                        }\n                    }\n                } catch (e) {}\n            }));\n            var E, z, F = [{\n                label: host.app.name,\n                submenu: [{\n                    role: \"about\"\n                }, {\n                    type: \"separator\"\n                }, {\n                    role: \"services\"\n                }, {\n                    type: \"separator\"\n                }, {\n                    role: \"hide\"\n                }, {\n                    role: \"hideothers\"\n                }, {\n                    role: \"unhide\"\n                }, {\n                    label: \"Close\",\n                    accelerator: \"Command+W\",\n                    click: function() {}\n                }, {\n                    type: \"separator\"\n                }, {\n                    label: \"退出 Clash for Windows\",\n                    accelerator: \"Command+Q\",\n                    click: function() {\n                        if (g.isMaximized) {\n                            g.unmaximize();\n                        }\n                        g.webContents.send(\"app-exit\")\n                    }\n                }]\n            }, {\n                role: \"editMenu\"\n            }, {\n                label: \"View\",\n                submenu: [{\n                    role: \"reload\"\n                }, {\n                    role: \"forceReload\"\n                }, {\n                    role: \"toggleDevTools\"\n                }, {\n                    type: \"separator\"\n                }, {\n                    role: \"resetZoom\"\n                }, {\n                    role: \"zoomIn\",\n                    accelerator: \"CmdOrCtrl+=\"\n                }, {\n                    role: \"zoomOut\"\n                }, {\n                    type: \"separator\"\n                }, {\n                    role: \"togglefullscreen\"\n                }]\n            }, {\n                role: \"windowMenu\"\n            }, {\n                role: \"help\",\n                submenu: [{\n                    label: \"Github\",\n                    click: (z = l()(p().mark((function e() {\n                        var t, r;\n                        return p().wrap((function(e) {\n                            for (;;) switch (e.prev = e.next) {\n                                case 0:\n                                    return t = n(298), r = t.shell, e.next = 3, r.openExternal(\"https://github.com/Fndroid/clash_for_windows_pkg\");\n                                case 3:\n                                case \"end\":\n                                    return e.stop()\n                            }\n                        }), e)\n                    }))), function() {\n                        return z.apply(this, arguments)\n                    })\n                }, {\n                    label: \"Document\",\n                    click: (E = l()(p().mark((function e() {\n                        var t, r;\n                        return p().wrap((function(e) {\n                            for (;;) switch (e.prev = e.next) {\n                                case 0:\n                                    return t = n(298), r = t.shell, e.next = 3, r.openExternal(\"https://docs.cfw.lbyczf.com/\");\n                                case 3:\n                                case \"end\":\n                                    return e.stop()\n                            }\n                        }), e)\n                    }))), function() {\n                        return E.apply(this, arguments)\n                    })\n                }]\n            }];\n            host.Menu.setApplicationMenu(host.Menu.buildFromTemplate(F)), host.ipcMain.handle(\"wlan-status-wanted\", R)\n        }\n\n        function R() {\n            if (g) try {\n                n(354).addEventListener(\"wlan-status-changed\", (function(e, t) {\n                    e ? g.webContents.send(\"wlan-status-listen-error\", JSON.stringify(e)) : g.webContents.send(\"wlan-status-changed\", t)\n                }))\n            } catch (e) {\n                g.webContents.send(\"wlan-status-listen-error\", e.message)\n            }\n        }\n\n        function RelaunchApp() {\n            if (g.isMaximized) {\n                g.unmaximize();\n            }\n            host.app.relaunch(), host.app.exit(0)\n        }\n        var E, z = host.app.requestSingleInstanceLock();\n\n        function B(e) {\n            var t = e.x,\n                n = e.y,\n                r = host.screen.getAllDisplays().find((function(e) {\n                    var r = e.bounds;\n                    if (r) {\n                        var o = r.x,\n                            i = r.y,\n                            a = r.width,\n                            c = r.height;\n                        return S.inRange(t, o, o + a) && S.inRange(n, i, i + c)\n                    }\n                }));\n            if (!r) {\n                var o = host.screen.getDisplayNearestPoint({\n                    x: t,\n                    y: n\n                }).bounds;\n                if (o) return {\n                    x: o.x,\n                    y: o.y\n                }\n            }\n            return {\n                x: t,\n                y: n\n            }\n        }\n        host.app.setAppUserModelId(\"com.lbyczf.clashwin\"), host.app.setAsDefaultProtocolClient(\"clash\"), host.app.setName(\"Clash for Windows\"), host.app.setAboutPanelOptions({\n            version: \"\"\n        }), host.app.on(\"open-url\", (function(e, t) {\n            g.webContents.send(\"app-open\", [t])\n        })), z ? (host.app.on(\"second-instance\", function(dataAndEvents, payload, deepDataAndEvents) {\n            if (g) {\n                g.webContents.send(\"app-open\", payload);\n                if (g.isMinimized()) {\n                    g.restore();\n                }\n                Launch();\n            }\n        }), host.app.on(\"ready\", (function() {\n            n(113).init(), host.powerMonitor.on(\"shutdown\", (function(e) {\n                e.preventDefault(), g.webContents.send(\"app-exit\"), setTimeout((function() {\n                    if (g.isMaximized) {\n                        g.unmaximize();\n                    }\n                    host.app.isQuiting = !0, host.app.quit()\n                }), 5e3)\n            })), D()\n        }))) : host.app.quit(), host.app.on(\"activate\", (function() {\n            null === g ? D() : Launch()\n        })), host.app.on(\"certificate-error\", (E = l()(p().mark((function e(t, n, r, o, i, a) {\n            var c, s;\n            return p().wrap((function(e) {\n                for (;;) switch (e.prev = e.next) {\n                    case 0:\n                        c = fales;\n                        try {\n                            s = new URL(r), c = \"raw.githubusercontent.com\" === s.host && \"/Fndroid/ads/master/ads_v2.json\" === s.path\n                        } catch (e) {}\n                        if (!c && !I.includes(r)) {\n                            e.next = 7;\n                            break\n                        }\n                        t.preventDefault(), a(!0), e.next = 13;\n                        break;\n                    case 7:\n                        return e.next = 9, host.dialog.showMessageBox({\n                            type: \"warning\",\n                            buttons: [\"Trust\", \"Cancel\"],\n                            title: \"Certificate Error\",\n                            message: \"Failed verify the certificate for \".concat(r, \". This may be because the certificate is self-signed or the certificate authority is not recognized. Do you want to trust this certificate?\")\n                        });\n                    case 9:\n                        0 === e.sent.response && host.dialog.showCertificateTrustDialog(g, {\n                            certificate: i,\n                            message: \"If you keep seeing this error, you need to go to Keychain APP to trust the certificate.\"\n                        }).catch((function(e) {\n                            console.error(e)\n                        })), a(!1);\n                    case 13:\n                    case \"end\":\n                        return e.stop()\n                }\n            }), e)\n        }))), function(e, t, n, r, o, i) {\n            return E.apply(this, arguments)\n        }))\n    })(), module.exports = r\n})();"
  },
  {
    "path": "app/main/dist/electron/renderer.js",
    "content": "/*! For license information please see renderer.js.LICENSE.txt */\n\nconst VERSION = \"0.20.39 Opt-3\";\nfunction language(v, en, cn) {\n    return v === 0 ? cn : v === 1 ? en : en;\n}\nclass Language {\n    constructor(language) {\n        this.language = language === null ? 0 : language\n    }\n    locale() { return language(this.language, 'en-us', 'zh-cn') }\n    languageString() { return language(this.language, \"Language\", \"语言\") }\n    loading() { return language(this.language, \"Loading...\", \"加载中...\") }\n    error() { return language(this.language, \"Error\", \"错误\") }\n    yes() { return language(this.language, \"Yes\", \"是\") }\n    no() { return language(this.language, \"No\", \"否\") }\n    failedConnectCore() { return language(this.language, \"Could not connect to Clash core, logs are not available.\", \"无法连接到 Clash core 核心，日志不可用\") }\n    homeDirectory() { return language(this.language, \"Home Directory\", \"主目录\") }\n    openFolder() { return language(this.language, \"Open Folder\", \"打开文件夹\") }\n    logsFolder() { return language(this.language, \"Logs Folder\", \"日志文件夹\") }\n    tryRepair() { return language(this.language, \"Try to repair\", \"尝试修复\") }\n    ok() { return language(this.language, \"OK\", \"确定\") }\n    text() { return language(this.language, \"Text\", \"文本\") }\n    install() { return language(this.language, \"Install\", \"安装\") }\n    uninstall() { return language(this.language, \"Uninstall\", \"卸载\") }\n    name() { return language(this.language, \"Name\", \"名字\") }\n    save() { return language(this.language, \"Save\", \"保存\") }\n    cancel() { return language(this.language, \"Cancel\", \"取消\") }\n    add() { return language(this.language, \"Add\", \"添加\") }\n    quit() { return language(this.language, \"Quit\", \"退出\") }\n    restartingCore() { return language(this.language, \"Restarting core...\", \"重新启动核心...\") }\n    noProxyGroupInProfile() { return language(this.language, \"No proxy group in this profile\", \"此配置文件中没有代理组\") }\n    connectInfo() { return language(this.language, \"Connection Info\", \"连接信息\") }\n    cfwRunInBg() { return language(this.language, \"Clash is running in the background\", \"Clash 正在后台运行\") }\n    enjoyFreedom() { return language(this.language, \"Enjoy your free time\", \"享受您的自由时间\") }\n    failUpdateUrlProfile() { return language(this.language, \"fail to update profile with url\", \"无法使用 url 更新配置资料\") }\n    profileUpdateFail() { return language(this.language, \"Profile update failed\", \"配置资料更新失败\") }\n    profileDownloaded() { return language(this.language, \"Profile had been downloaded successfully\", \"配置资料已成功下载\") }\n    appExiting() { return language(this.language, \"app exiting, turn off system proxy\", \"应用退出, 关闭系统代理\") }\n    httpFailStart() { return language(this.language, \"http server failed to start with error\", \"http 服务器因错误而无法启动\") }\n    httpStartAt() { return language(this.language, \"http server started at\", \"http 服务器开始于\") }\n    firstLunach() { return language(this.language, \"first luanch, creating config.yaml...\", \"首次发布, 创建 config.yaml 中...\") }\n    appStartWithMode() { return language(this.language, \"app start with mode\", \"应用程序以模式开始\") }\n    failLoadGeneralCfg() { return language(this.language, \"fail to load general config.yaml with error\", \"无法加载常规 config.yaml 并出现错误\") }\n    loadDataFromGeneral() { return language(this.language, \"load data from general config.yaml\", \"从一般加载 config.yaml 数据\") }\n    general() { return language(this.language, \"General\", \"主页\") }\n    proxies() { return language(this.language, \"Proxies\", \"代理\") }\n    profiles() { return language(this.language, \"Profiles\", \"配置\") }\n    logs() { return language(this.language, \"Logs\", \"日志\") }\n    connections() { return language(this.language, \"Connections\", \"连接\") }\n    feedback() { return language(this.language, \"Feedback\", \"关于\") }\n    providers() { return language(this.language, \"Providers\", \"提供\") }\n    stopSorting() { return language(this.language, \"Stop Sorting\", \"停止排序\") }\n    connected() { return language(this.language, \"Connected\", \"已连接\") }\n    disconnected() { return language(this.language, \"Disconnected\", \"未连接\") }\n    nowVersionUpToDate() { return language(this.language, \"You are awesome\", \"当前版本是最新的\") }\n    nowVersionUpToDateDescribe() { return language(this.language, \"The current version is up to date.\", \"当前汉化版本也是最新的\") }\n    updatedThenRestartAsk() { return language(this.language, \"Update installed successfully, do you want to restart the APP?\", \"更新安装成功，要重启APP吗?\") }\n    downloadDoneRunAsk() { return language(this.language, \"Package downloaded successfully, do you want to execute it?\", \"包下载成功，要执行吗?\") }\n    port() { return language(this.language, \"Port\", \"端口\") }\n    changeMixedPort() { return language(this.language, \"Change Mixed Port\", \"更改混合端口\") }\n    newPort() { return language(this.language, \"New Port\", \"新端口\") }\n    allowLAN() { return language(this.language, \"Allow LAN\", \"允许局域网\") }\n    infoAllowLAN() { return language(this.language, \"Turn on to listen on all interfaces by default, or else only listen\\n          on 127.0.0.1. You can change the Bind Address on the right side to\\n          specify a particular interface.\", \"默认开启监听所有接口，否则只监听127.0.0.1。 您可以更改右侧的绑定地址以指定特定接口\") }\n    logLevel() { return language(this.language, \"Log Level\", \"日志级别\") }\n    clashCore() { return language(this.language, \"Clash Core\", \"Clash 内核\") }\n    loopbackUWP() { return language(this.language, \"UWP Loopback\", \"UWP 应用联网限制解除工具\") }\n    deviceTAP() { return language(this.language, \"TAP Device\", \"虚拟网卡安装（TAP 模式）\") }\n    serviceMode() { return language(this.language, \"Service Mode\", \"服务模式\") }\n    mixin() { return language(this.language, \"Mixin\", \"混合配置\") }\n    sysProxy() { return language(this.language, \"System Proxy\", \"系统代理\") }\n    askOpenURL() { return language(this.language, \"Are you sure to open this URL\", \"您确定要打开此 URL?\") }\n    silent() { return language(this.language, \"silent\", \"静默\") }\n    errorS() { return language(this.language, \"error\", \"错误\") }\n    warn() { return language(this.language, \"warn\", \"警告\") }\n    warning() { return language(this.language, \"Warning\", \"警告\") }\n    info() { return language(this.language, \"info\", \"信息\") }\n    debug() { return language(this.language, \"debug\", \"调试\") }\n    logLevelSelection() { return language(this.language, [\"silent\", \"error\", \"warn\", \"info\", \"debug\"], [\"静默\", \"错误\", \"警告\", \"信息\", \"调试\"]) }\n    silentDescribe() { return language(this.language, \"silent will prevent .log file to generate on next startup\", \"静默将阻止 .log 文件在下次启动时生成, 而调试将收集所有运行信息至 .log 文件\") }\n    changeLogLevel() { return language(this.language, \"Change Log Level\", \"更改日志收集级别\") }\n    global() { return language(this.language, \"Global\", \"全局\") }\n    rule() { return language(this.language, \"Rule\", \"规则\") }\n    direct() { return language(this.language, \"Direct\", \"直连\") }\n    script() { return language(this.language, \"Script\", \"脚本\") }\n    settings() { return language(this.language, \"Settings\", \"设置\") }\n    resetAllSettings() { return language(this.language, \"Reset All Settings\", \"重置所有设置\") }\n    forceQuit() { return language(this.language, \"Force Quit\", \"强制退出\") }\n    security() { return language(this.language, \"Security\", \"安全\") }\n    coreSecret() { return language(this.language, \"Core Secret\", \"核心Secret\") }\n    coreSecretDscribeFirst() { return language(this.language, \"Set Clash Core's\", \"将 Clash Core 的\") }\n    coreSecretDscribeSecond() { return language(this.language, \"to a random RFC\", \"设置为随机的 RFC\") }\n    coreSecretDscribeThird() { return language(this.language, \"4122 version 4 UUID, so that Clash REST API cannot be accessed arbitrarily.\", \"4122 版本 4 UUID，这样 Clash REST API 就不能被任意访问。\") }\n    coreSecretDscribeFourth() { return language(this.language, \"The value is stored in the\", \"该值存储在于\") }\n    coreSecretDscribeFifth() { return language(this.language, \"For details, see\", \"有关详细信息，请参阅Clash文档:\") }\n    allowUnsafeURLs() { return language(this.language, \"Allow Unsafe URLs\", \"允许不安全的 URL\") }\n    allowUnsafeURLsDescribeFirst() { return language(this.language, \"Set the URLs that do not verify the certificate when requesting\", \"设置请求时不验证证书的URL\") }\n    allowUnsafeURLsDescribeSecond() { return language(this.language, \"Do not  \", \"不要更改它\") }\n    allowUnsafeURLsDescribeThird() { return language(this.language, \"change it, if you do not know what it is\", \", 除非你知道它是什么\") }\n    settingsEditor() { return language(this.language, \"Settings Editor\", \"配置编辑器\") }\n    settingsEditorFirst() { return language(this.language, \"Text editor used by Settings.\", \"设置使用的文本编辑器\") }\n    settingsEditorSecond() { return language(this.language, \"For\", \"对于\") }\n    settingsEditorThird() { return language(this.language, \", the command should only return control\", \", 该命令只应在编辑文件关闭后返回控制权。\") }\n    settingsEditorFourth() { return language(this.language, \"after the edited file is closed. For example:\", \"例如:\") }\n    custom() { return language(this.language, \"Custom\", \"自定义\") }\n    actions() { return language(this.language, \"Actions\", \"操作(Actions)\") }\n    theme() { return language(this.language, \"Theme\", \"主题\") }\n    themeOption() { return language(this.language, [\"Light\", \"Dark\", \"Minecraft\", \"Cyberpunk\"], [\"明亮\", \"深色\", \"我的世界\", \"赛博朋克\"]) }\n    networkInterfaces() { return language(this.language, \"Network Interfaces\", \"网络端口\") }\n    mixinAllowsDescribe() { return language(this.language, \"Mixin allows you to overwrite the original configuration file\", \"Mixin允许您覆盖原始配置文件\") }\n    startWithWindows() { return language(this.language, \"Start with Windows\", \"开机自启动\") }\n    sortDescribe() { return language(this.language, \"Drag to sort or add to the list on the right\", \"拖动以排序或添加到右侧列表中\") }\n    manage() { return language(this.language, \"Manage\", \"管理\") }\n    reinstallDescribeWithTAP() { return language(this.language, \"You need to reinstall the TAP device after you change these fields.\", \"更改这些字段后，您需要重新安装虚拟网卡\") }\n    TAPdeviceManagement() { return language(this.language, \"TAP device management\", \"虚拟网卡设置管理\") }\n    TAPinstallDescribe() { return language(this.language, \"An adapter named “cfw-tap” will route your data into clash.\\n\\n If the installation box pops up, keep clicking “Next”, until the installation is complete.\", \"名为 “cfw-tap” 的适配器会将您的数据路由到Clash中.\\n\\n如果弹出安装框, 请继续单击 “下一步”,  直到安装完成\") }\n    customize() { return language(this.language, \"Customize\", \"定制\") }\n    serviceManagement() { return language(this.language, \"Service management\", \"服务管理\") }\n    serviceManagementDescribe() { return language(this.language, \"It might take a while.\\nThe APP will be relaunched automatically.\\n\\nCurrent status: \", \"这可能需要一段时间.\\n该APP将自动重新启动.\\n\\n当前状态: \") }\n    inactive() { return language(this.language, \"Inactive\", \"未安装\") }\n    active() { return language(this.language, \"Active\", \"已安装\") }\n    IPaddress() { return language(this.language, \"IP Address\", \"IP地址\") }\n    subnetMask() { return language(this.language, \"Subnet Mask\", \"子网掩码\") }\n    defaultGateway() { return language(this.language, \"Default Gateway\", \"默认网关\") }\n    success() { return language(this.language, \"Success\", \"成功\") }\n    failed() { return language(this.language, \"Failed\", \"失败\") }\n    tapDeviceInstalled() { return language(this.language, \"cfw-tap device had been installed\", \"cfw-tap 已安装\") }\n    notInstallTapDevice() { return language(this.language, \"counld not install cfw-tap device\", \"无法安装 cfw-tap\") }\n    tapDeviceRemoved() { return language(this.language, \"cfw-tap device had been removed\", \"cfw-tap 已被移除\") }\n    notRemoveTapDevice() { return language(this.language, \"counld not remove cfw-tap device\", \"无法移除 cfw-tap\") }\n    TUNmode() { return language(this.language, \"TUN Mode\", \"TUN 模式\") }\n    TUNmodeDescribe() { return language(this.language, \"To enable this mode, please install Service Mode first. After enabling, all applications can be proxied.\", \"类似于虚拟网卡，启用后可代理所有应用。要启用此模式，请先安装服务模式\") }\n    recommended() { return language(this.language, \"recommended\", \"推荐\") }\n    installMethod() { return language(this.language, \"Install method:\", \"安装方法:\") }\n    cmmandsInCopied() { return language(this.language, \"Commands have been copied to Clipboad\", \"命令已复制到剪贴板\") }\n    openTerminalSetProxy() { return language(this.language, \"Open terminal with proxy set up\", \"打开终端并设置代理\") }\n    runAsAdmin() { return language(this.language, \"run as admin\", \"以管理员身份运行\") }\n    selectTterminal() { return language(this.language, \"Select a terminal\", \"选择一个终端\") }\n    copyCommandsOnly() { return language(this.language, \"Copy Commands Only\", \"仅复制命令\") }\n    copyCommand() { return language(this.language, \"Copy Command\", \"复制命令\") }\n    copyProxySettingCommands() { return language(this.language, \"Copy proxy setting commands\", \"复制代理设置命令\") }\n    terminal() { return language(this.language, \"terminal\", \"终端\") }\n    specialProxies() { return language(this.language, \"Special Proxies\", \"特殊代理\") }\n    randomMixedPort() { return language(this.language, \"Random Mixed Port\", \"随机混合端口\") }\n    randomMixedPortDescribeFirst() { return language(this.language, \"Turn on to generate a new proxy server port number when the app starts.\\n            \", \"打开应用程序启动时生成新的代理服务器端口号。\\n            \") }\n    randomMixedPortDescribeSecond() { return language(this.language, \"The value is shown as Port in General, and is \\n            stored as\\n            \", \"该值在 General 中显示为 Port，\\n            并存储为\\n            \") }\n    randomMixedPortDescribeThird() { return language(this.language, \"\\n            in the\\n            \", \"\\n            位于: \\n            \") }\n    launchHelper() { return language(this.language, \"Launch Helper\", \"启动助手\") }\n    bind() { return language(this.language, \"Bind: \", \"绑定地址: \") }\n    newBindAddress() { return language(this.language, \"New Bind Address\", \"新绑定地址\") }\n    changeBindAddress() { return language(this.language, \"Change Bind Address\", \"更改绑定地址\") }\n    changeBindAddressDescribe() { return language(this.language, \"Allow LAN will only bind to address you set, * means all interfaces\", \"允许LAN只会绑定到您设置的地址，* 表示所有接口\") }\n    serversDNS() { return language(this.language, \"DNS Servers\", \"DNS 服务器\") }\n    modeSettingsTUN() { return language(this.language, \"TUN Mode Settings\", \"TUN 模式设置\") }\n    fallbackDNSServers() { return language(this.language, \"Fallback DNS Servers\", \"后备 DNS 服务器\") }\n    deaultNameserver() { return language(this.language, \"Deault Nameserver\", \"默认名称服务器\") }\n    fakeIPFilter() { return language(this.language, \"Fake IP Filter\", \"Fake IP 过滤器\") }\n    nameserverPolicy() { return language(this.language, \"Nameserver Policy\", \"域名服务器政策\") }\n    domain() { return language(this.language, \"domain\", \"域名\") }\n    hijacksDNS() { return language(this.language, \"DNS Hijacks\", \"DNS 劫持\") }\n    stackTUN() { return language(this.language, \"TUN Stack\", \"TUN 码(TUN Stack)\") }\n    autoDetectInterface() { return language(this.language, \"Auto Detect Interface\", \"自动检测接口\") }\n    eg() { return language(this.language, \"eg: \", \"例子: \") }\n    addFirewallRules() { return language(this.language, \"add firewall rules (for Allow LAN and system stack)\", \"添加防火墙规则 (允许 LAN 和系统堆栈)\") }\n    previewCfgToClashCore() { return language(this.language, \"Preview the final configuration file that was submitted to Clash Core\", \"预览提交给 Clash Core 的最终配置文件\") }\n    useClashCoreSeeHost() { return language(this.language, \"Resolve a host using Clash core\", \"使用 Clash core 解析 Host\") }\n    testByScriptMode() { return language(this.language, \"Test script using by Script mode\", \"使用脚本模式测试脚本\") }\n    authority() { return language(this.language, \"Authority\", \"授权\") }\n    queryDNS() { return language(this.language, \"DNS Query\", \"DNS 查询\") }\n    host() { return language(this.language, \"Host\", \"主机（Host）\") }\n    lookup() { return language(this.language, \"Lookup\", \"检索\") }\n    pleaseInputDomain() { return language(this.language, \"Please input domain\", \"请输入域名\") }\n    scriptTest() { return language(this.language, \"Script Test\", \"脚本测试\") }\n    network() { return language(this.language, \"Network\", \"网络\") }\n    modeDNS() { return language(this.language, \"DNS Mode\", \"DNS 模式\") }\n    sourceIP() { return language(this.language, \"Source IP\", \"源 IP\") }\n    sourcePort() { return language(this.language, \"Source Port\", \"源端口\") }\n    destinationIP() { return language(this.language, \"Destination IP\", \"目的地 IP\") }\n    destinationPort() { return language(this.language, \"Destination Port\", \"目的地端口\") }\n    processPath() { return language(this.language, \"Process Path\", \"进程路径\") }\n    type() { return language(this.language, \"type\", \"类型\") }\n    typeDescribe() { return language(this.language, \"Windows accepts an HTTP endpoint or PAC\\n            (proxy auto-configuration) script. The HTTP mode is generally\\n            sufficient.\", \"Windows 接受 HTTP 端点或 PAC\\n            （代理自动配置）脚本。\\n            HTTP 模式通常就足够了。\") }\n    customizeTrayIconInProxy() { return language(this.language, \"Proxy On Icon Path\", \"自定义代理启用时的状态栏图标\") }\n    customizeTrayIconInProxyDescribe() { return language(this.language, \"Set the taskbar icon when system proxy/TUN/hybrid configuration is turned on\", \"设置当 系统代理/TUN/混合配置 开启时的任务栏图标\") }\n    customizeTrayIcon() { return language(this.language, \"Default Icon Path\", \"自定义状态栏图标\") }\n    customizeTrayIconDescribe() { return language(this.language, \"Set the taskbar icon in the default state\", \"设置默认的任务栏图标\") }\n    check() { return language(this.language, \"Check\", \"测试\") }\n    timeout() { return language(this.language, \"Timeout\", \"超时\") }\n    profileDescribeStart() { return language(this.language, \"Go to\", \"前往\") }\n    profileDescribeEnd() { return language(this.language, \"to import/switch a profile\", \"导入/切换配置文件\") }\n    allTrafficGoDirectly() { return language(this.language, \"All traffic will go directly\", \"所有流量都会直连\") }\n    routedThroughSelectedProxy() { return language(this.language, \"Routed through the selected proxy\", \"通过选定的代理路由\") }\n    routedAccordingRule() { return language(this.language, \"Routed according to the rules\", \"按规则路由\") }\n    goDirectly() { return language(this.language, \"Go directly\", \"直接连接\") }\n    routedAccordingScript() { return language(this.language, \"Routed according to the script\", \"根据脚本进行路由\") }\n    inbound() { return language(this.language, \"Inbounds\", \"进入\") }\n    edit() { return language(this.language, \"Edit\", \"编辑\") }\n    editExternally() { return language(this.language, \"Edit externally\", \"在系统中编辑\") }\n    update() { return language(this.language, \"Update\", \"更新\") }\n    openFile() { return language(this.language, \"Open File\", \"打开文件\") }\n    showInFolder() { return language(this.language, \"Show in folder\", \"打开文件所在位置\") }\n    diffDescribe() { return language(this.language, \"Make changes to a profile then merge them for it when refresh profile.\", \"对配置文件进行更改，然后在更新时合并它们。\") }\n    docs() { return language(this.language, \"Docs\", \"文档\") }\n    initDiffFiles() { return language(this.language, \"Init diff files\", \"初始化 diff 文件\") }\n    sideBySideMode() { return language(this.language, \"Side by side mode\", \"并排模式\") }\n    diffControlsDescribe() { return language(this.language, \"Controls whether the diff editor shows the diff side by side or inline.\", \"控制 diff 编辑器是并排还是内联显示 diff\") }\n    makeChangesAndDelete() { return language(this.language, [\"Make changes\", \"Delete diff files\"], [\"修改文件\", \"删除 diff 文件\"]) }\n    askDelete() { return language(this.language, \"Are you sure to delete \", \"您确定要删除 \") }\n    diffFiles() { return language(this.language, \"diff files\", \"diff 文件\") }\n    failMergeProfile() { return language(this.language, 'Fail to merge profiles, \"Make changes\" to solve issues.', '无法合并配置文件, \"修改文件\" 以解决问题.') }\n    scrollGroup() { return language(this.language, \"Scroll to group\", \"移动至组\") }\n    proxyGroups() { return language(this.language, \"Proxy Groups\", \"代理组\") }\n    diffChangeContainConflict() { return language(this.language, 'Changes contains conflict, \"Make changes\" to solve issues', '更改包含冲突, \"修改(diff)文件\" 以解决问题') }\n    askSaveChange() { return language(this.language, \"Do you want to save the changes?\", \"是否要保存更改?\") }\n    requestRefresh() { return language(this.language, \"A refresh is required to apply the different changes. Do it now?\", \"需要刷新才能应用不同的更改。立即执行?\") }\n    requestRefreshOption() { return language(this.language, [\"Refresh\", \"Not now\"], [\"刷新\", \"现在不要\"]) }\n    fiterByKeywords() { return language(this.language, \"fiter by keywords\", \"按关键字过滤\") }\n    scrollToProxy() { return language(this.language, \"scroll to selected proxy\", \"移动到选定的代理\") }\n    showHieDashboard() { return language(this.language, \"Show/Hide Dashboard\", \"显示/隐藏仪表板\") }\n    showHieTimedOutProxies() { return language(this.language, \"Show/Hide timed-out proxies\", \"显示/隐藏超时节点\") }\n    runTrayScript() { return language(this.language, \"Run Tray Script\", \"运行托盘脚本\") }\n    showConnections() { return language(this.language, \"Show connections\", \"显示连接\") }\n    testLatency() { return language(this.language, \"test latency\", \"测试延迟\") }\n    runScript() { return language(this.language, \"Run script\", \"运行脚本\") }\n    topMatchRule() { return language(this.language, \"Top 100 matching rules\", \"前100个匹配规则\") }\n    copy() { return language(this.language, \"Copy\", \"复制\") }\n    duplicateProfile() { return language(this.language, \"duplicate profile\", \"复制配置文件\") }\n    inputNewFileName() { return language(this.language, \"Input a new file name\", \"输入一个新的文件名\") }\n    downloadFromURL() { return language(this.language, \"Download from a URL\", \"从URL下载\") }\n    downloading() { return language(this.language, \"Downloading\", \"下载中\") }\n    download() { return language(this.language, \"Download\", \"下载\") }\n    copyURL() { return language(this.language, \"Copy URL\", \"复制 URL\") }\n    updateAll() { return language(this.language, \"Update All\", \"更新全部\") }\n    import() { return language(this.language, \"Import\", \"导入\") }\n    scheme() { return language(this.language, \"Scheme\", \"跳转方案\") }\n    delete() { return language(this.language, \"Delete\", \"删除\") }\n    editProfileInformation() { return language(this.language, \"Edit profile information\", \"编辑配置信息\") }\n    updateInterval() { return language(this.language, \"Update Interval (hour)\", \"更新间隔(小时)\") }\n    localFileAlreadyExist() { return language(this.language, \"Local file already exist.\", \"本地文件已存在.\") }\n    closeEditingFileSave() { return language(this.language, \"Close the editing file to Save\", \"关闭编辑文件以保存\") }\n    requestLogs() { return language(this.language, \"Request Logs\", \"请求日志\") }\n    emptyLogList() { return language(this.language, \"Empty log list\", \"空日志列表\") }\n    start() { return language(this.language, \"Start\", \"开始\") }\n    pause() { return language(this.language, \"Pause\", \"暂停\") }\n    refreshBrowserMakeRequest() { return language(this.language, \"Refresh your browser to make requests.\", \"刷新浏览器以发出请求.\") }\n    clear() { return language(this.language, \"Clear\", \"清除\") }\n    search() { return language(this.language, \"Search\", \"搜索\") }\n    resume() { return language(this.language, \"Resume\", \"恢复\") }\n    headers() { return language(this.language, \"Headers\", \"标头\") }\n    updateCron() { return language(this.language, \"Update \", \"更新定时程序 \") }\n    parsers() { return language(this.language, \"Parsers\", \"配置文件预处理\") }\n    parsersOption() { return language(this.language, [\"Edit Parsers\", \"OK\"], [\"编辑解析器\", \"确认\"]) }\n    parsersDescribeStart() { return language(this.language, \"Modify and customize your profiles after download but before\", \"在下载后修改和自定义你的配置，在\") }\n    parsersDescribeEnd() { return language(this.language, \".\", \"开始之前.\") }\n    parsersStart() { return language(this.language, \"Found \", \"找到 \") }\n    parsersEnd() { return language(this.language, \" matching parsers\", \" 个匹配解析器\") }\n    qrCode() { return language(this.language, \"QR Code\", \"二维码\") }\n    chains() { return language(this.language, \"Chains: \", \"模式: \") }\n    simpleAndDetailed() { return language(this.language, [\"Simple\", \"Detailed\"], [\"简略\", \"详细\"]) }\n    infoAndDebug() { return language(this.language, [\"info\", \"debug\"], [\"信息\", \"调试\"]) }\n    server() { return language(this.language, \"server\", \"服务器\") }\n    updateThroughBuiltInProxyDescribe() { return language(this.language, \"By default, requests in CFW will follow the system proxy\\n            settings. When this switch is turned on, the update requests for\\n            Profiles will be directed through the built-in proxy in\\n            Clash.\", \"默认情况下，CFW 中的请求将遵循系统代理设置。 当此开关打开时，Profiles 的更新请求将通过内置代理定向至 Clash。\") }\n    updateThroughBuiltInProxy() { return language(this.language, \"Update Through Built-in Proxy\", \"通过内置代理更新\") }\n    checkForUpdate() { return language(this.language, \"Check For Updates\", \"检查更新\") }\n    checkForUpdateDescribe() { return language(this.language, \"Set whether to check for updates every 6 hours\", \"设置是否每6小时检查一次更新\") }\n    ssid() { return language(this.language, \"Service Set Identifier (SSID)\", \"服务集标识 (SSID)\") }\n    closeAll() { return language(this.language, \"Close All\", \"全部关闭\") }\n    startTime() { return language(this.language, \"Start Time\", \"开始时间\") }\n    uploadSpeed() { return language(this.language, \"Upload Speed\", \"上传速度\") }\n    downloadSpeed() { return language(this.language, \"Download Speed\", \"下载速度\") }\n    total() { return language(this.language, \"Total\", \"总共\") }\n    uploadTraffic() { return language(this.language, \"Upload Traffic\", \"上传流量\") }\n    downloadTraffic() { return language(this.language, \"Download Traffic\", \"下载流量\") }\n    destination() { return language(this.language, \"Destination\", \"目的地\") }\n    reorder() { return language(this.language, \"Reorder\", \"重新排序\") }\n    scrollViewMore() { return language(this.language, \"scroll to view more\", \"滑动鼠标以查看更多\") }\n    askResetAllSettings() { return language(this.language, \"Are you sure to reset all settings?\", \"您确定要重设所有设置吗?\") }\n    askQuit() { return language(this.language, \"Are you sure to quit?\", \"你确定要退出吗?\") }\n    path() { return language(this.language, \"path\", \"路径\") }\n    appearance() { return language(this.language, \"Appearance\", \"外观\") }\n    notifications() { return language(this.language, \"Send Relevant Information\", \"向系统通知栏发送相关信息\") }\n    notificationsDescribe() { return language(this.language, \"Set whether to allow pop-up system-level notifications which is related to Clash For Windows\", \"向系统通知栏发送相关信息\") }\n    silentStart() { return language(this.language, \"Silent Start\", \"开启Clash时默认缩小到任务栏\") }\n    silentStartDescribe() { return language(this.language, \"Set whether to display dashboard at startup\", \"设置是否在程序启动时显示仪表板窗口\") }\n    randomControllerPort() { return language(this.language, \"Random Controller Port\", \"随机占用端口\") }\n    randomControllerPortDescribe() { return language(this.language, \"Set whether to use a random port as the core controller port (the\\n            port section of external-controller in Home\\n            Directory/config.ymal)\", \"设置是否使用随机端口作为核心控制器端口 (\\n            Home Directory/config.yaml 中 external-controller\\n            的端口部分)\") }\n    lightweightMode() { return language(this.language, \"Lightweight Mode\", \"轻量模式\") }\n    lightweightModeDescribeStart() { return language(this.language, \"Turn on to terminate app processes after closing the dashboard,\\n            but keep Clash Core running in the background. Most of the。\\n            features provided by CFW will be unavailable then.\\n            \", \"关闭仪表板后打开以终止应用程序进程,\\n            但保持 Clash Core 在后台运行。\\n            届时，CFW 提供的大部分功能将不可用\\n            \") }\n    lightweightModeDescribeEnd() { return language(this.language, \"Relies on the \", \"依赖: \") }\n    runTimeFormat() { return language(this.language, \"Run Time Format\", \"运行时间格式\") }\n    guiLogFolder() { return language(this.language, \"GUI Log Folder\", \"GUI日志文件夹\") }\n    guiDataFolder() { return language(this.language, \"GUI Data Folder\", \"GUI数据文件夹\") }\n    open() { return language(this.language, \"Open\", \"打开\") }\n    followSystemTheme() { return language(this.language, \"Follow System Theme\", \"遵循系统主题\") }\n    fontFamily() { return language(this.language, \"Font Family\", \"字体系列\") }\n    useSystemEmoji() { return language(this.language, \"Use System Emoji\", \"使用系统表情符号\") }\n    assetpath() { return language(this.language, \"asset path\", \"路径\") }\n    enhancedTray() { return language(this.language, \"Enhanced Tray\", \"悬浮窗\") }\n    enhancedTrayDescribeFirst() { return language(this.language, \"Set whether to enable custom taskbar (macOS) / hover window\\n            (Windows)\", \"设置是否启用自定义任务栏 (macOS) / 悬停窗口\\n            (Windows)\") }\n    enhancedTrayDescribeSecond() { return language(this.language, \"Drag icons between ”show” and ”hide“ to control\", \"在“显示”和“隐藏”之间拖动图标来控制\") }\n    textdisplayTray() { return language(this.language, \"Text to display in tray\", \"要显示在悬浮窗中的文本\") }\n    select() { return language(this.language, \"Select\", \"选择\") }\n    transparent() { return language(this.language, \"Transparent\", \"透明\") }\n    foregroundColor() { return language(this.language, \"foreground color\", \"前景色\") }\n    scriptToRun() { return language(this.language, \"Script to run\", \"要运行的脚本\") }\n    showNewVersionIcon() { return language(this.language, \"Show New Version Icon\", \"有新版本时提醒\") }\n    bypassDomain() { return language(this.language, \"Bypass Domain\", \"绕过域/网络\") }\n    bypassDomainDescribeStart() { return language(this.language, \"Bypass (don't use) the proxy server when visiting certain\\n            addresses.\", \"访问某些地址时绕过（不使用）代理服务器。\") }\n    bypassDomainDescribeEnd() { return language(this.language, \"\\n            The interpretation of this list is OS-dependent and app-dependent.\\n            In other words, your operating systems and applications may\\n            evaluate the rules differently.\", \"\\n            此列表的解释取决于操作系统和应用程序. 换句话说，您的操作系统和应用程序可能会以不同的方式评估规则\") }\n    specifyProtocol() { return language(this.language, \"Specify Protocol\", \"指定协议\") }\n    specifyProtocolDescribeStart() { return language(this.language, \"Turn on to forcibly add scheme to the system proxy settings.\", \"打开以强制将方案添加到系统代理设置\") }\n    specifyProtocolDescribeEnd() { return language(this.language, \"\\n            This is not for general-purpose use, and indeed violates the\\n            current spec of Windows. Consider it only when an old Python\\n            program has trouble.\", \"\\n            这不是通用用途,\\n            并且确实违反了当前的 Windows 规范.\\n            仅在使用旧的 Python 时才考虑它.\") }\n    staticHost() { return language(this.language, \"Static Host\", \"静态主机\") }\n    staticHostDescribe() { return language(this.language, \"Set the system proxy Host part to static content, if not set, the\\n            host defaults to 127.0.0.1\", \"将系统代理主机部分设置为静态内容, 如果没有设置,\\n            主机默认为 127.0.0.1\") }\n    proxyItemWidth() { return language(this.language, \"Proxy Item Width\", \"代理项目宽度\") }\n    proxyItemWidthDescribe() { return language(this.language, \"Set the display width of each proxy in the Proxies module\", \"在代理界面中设置每个节点的显示宽度\") }\n    breakWhenProxyChange() { return language(this.language, \"Break When Proxy Change\", \"代理更改时中断连接\") }\n    breakWhenProxyChangeOption() { return language(this.language, [\"None\", \"Chain\", \"All\"], [\"不中断\", \"旧链接\", \"所有\"]) }\n    breakWhenProxyChangeDescribeFirst() { return language(this.language, \"Set the strategy for closing connections when switching proxies in the Proxies module.\", \"在代理模块中设置切换代理时关闭连接的策略:\") }\n    breakWhenProxyChangeDescribeSecond() { return language(this.language, \"None\", \"不中断\") }\n    breakWhenProxyChangeDescribeThird() { return language(this.language, \"Do not close\", \"不关闭任何链接\") }\n    breakWhenProxyChangeDescribeFourth() { return language(this.language, \"Chain\", \"旧链接\") }\n    breakWhenProxyChangeDescribeFifth() { return language(this.language, \"Close connections with proxy name in chain\", \"中断通过该代理组的连接\") }\n    all() { return language(this.language, \"All\", \"全部\") }\n    breakWhenProxyChangeDescribeSeventh() { return language(this.language, \"Close all connections\", \"关闭所有连接\") }\n    miniListWidth() { return language(this.language, \"Mini List Width\", \"策略组导航器宽度\") }\n    miniListWidthDescribe() { return language(this.language, \"Set the width of the minilist in the Proxies module\", \"设置代理界面导航栏宽度\") }\n    orderBy() { return language(this.language, \"Order By\", \"自定义节点排序\") }\n    orderByOption() { return language(this.language, [\"Default\", \"Latency\", \"Alphabet\"], [\"默认\", \"延迟\", \"字母\"]) }\n    latencyTestURL() { return language(this.language, \"Latency Test URL\", \"延迟测试网址\") }\n    latencyTestURLDescribe() { return language(this.language, \"Set the URL used when clicking the Delay Test button in the Proxies module\", \"设置在代理模块中单击延迟测试按钮时使用的 URL\") }\n    latencyTestTimeout() { return language(this.language, \"Latency Test Timeout\", \"延迟测试超时\") }\n    showFilter() { return language(this.language, \"Show Filter\", \"显示筛选过滤器\") }\n    showFilterDescribe() { return language(this.language, \"Set the Proxies module to display the keyword filter icon or not\", \"设置代理模块是否显示关键字过滤器图标\") }\n    hideUnselectableGroup() { return language(this.language, \"Hide Unselectable Group\", \"隐藏无法选择的代理组\") }\n    hideUnselectableGroupDescribe() { return language(this.language, \"Set whether to hide unselectable proxy groups in the Proxies\", \"设置是否隐藏代理模块中不可选择的代理组\") }\n    forDetails() { return language(this.language, \"For details, see\", \"有关详细信息，请参阅:\") }\n    docs() { return language(this.language, \"docs\", \"帮助文档\") }\n    titleBarText() { return language(this.language, \"Title Bar Text\", \"标题栏文本\") }\n    titleBarTextDescribe() { return language(this.language, \"Text to display in title bar\", \"要在标题栏中显示的文本\") }\n    titleBarTextDescribeFirst() { return language(this.language, \"Set the text in title bar, some placeholders for replacement:\", \"设置标题栏的文字，一些替换的占位符:\") }\n    titleBarTextDescribeSecond() { return language(this.language, \"Current proxy mode\", \"当前代理模式\") }\n    titleBarTextDescribeThird() { return language(this.language, \"System Proxy status, On or Off\", \"系统代理状态，打开或关闭\") }\n    titleBarTextDescribeFourth() { return language(this.language, \"TUN Mode status, On or Off\", \"TUN 模式状态，开或关\") }\n    titleBarTextDescribeFifth() { return language(this.language, \"Mixin status, On or Off\", \"Mixin 状态，开或关\") }\n    breakWhenProfileChange() { return language(this.language, \"Break When Profile Change\", \"配置文件更改时中断连接\") }\n    breakWhenProfileChangeDescribe() { return language(this.language, \"Set whether to close all connections when switching\", \"设置配置文件改变时是否关闭所有连接\") }\n    breakWhenModeChange() { return language(this.language, \"Break When Mode Change\", \"模式更改时中断连接\") }\n    breakWhenModeChangeDescribe() { return language(this.language, \"Set whether to close all connections when switching modes\", \"设置切换模式时是否关闭所有连接\") }\n    displayChainType() { return language(this.language, \"Display Chain Type\", \"显示链接类型\") }\n    displayChainTypeDescribe() { return language(this.language, \"Set the type of chain displayed in the Connections module\", \"设置连接模块中显示的链类型\") }\n    displayChainTypeOption() { return language(this.language, [\"Proxy\", \"Group\", \"Both\"], [\"节点名\", \"分组名\", \"全部\"]) }\n    outbound() { return language(this.language, \"Outbound\", \"选择流量出接口\") }\n    interfaceName() { return language(this.language, \"Interface Name\", \"接口名称\") }\n    interfaceNameDescribe() { return language(this.language, \"Set interface name to overwrite like Mixin, will be removed in the future\", \"像 Mixin 一样设置接口名覆盖，以后会移除\") }\n    detected() { return language(this.language, \"Detected\", \"侦测到\") }\n    childProcesses() { return language(this.language, \"Child Processes\", \"子进程\") }\n    processes() { return language(this.language, \"Processes\", \"启动其他应用\") }\n    processesDescribe() { return language(this.language, \"Set child processes to be spawned with dashboard\", \"设置要使用仪表板生成的子进程\") }\n    consoleOutput() { return language(this.language, \"Console Output\", \"控制台输出\") }\n    folderPathDescribe() { return language(this.language, \"Set the path to the profiles folder, default: Home\\n            Directory/profiles\", \"设置配置文件文件夹的路径，如果在CFW软件根目录下创建名为 data 的文件夹则会开启便携模式，默认路径: Home\\n            Directory/profiles\") }\n    folderPath() { return language(this.language, \"Folder Path\", \"资料夹路径\") }\n    requestHeaders() { return language(this.language, \"Request Headers\", \"自定义请求头\") }\n    requestHeadersDescribeFirst() { return language(this.language, \"Set the request header content when updating a profile\", \"更新配置文件时设置请求标头内容\") }\n    requestHeadersDescribeSecond() { return language(this.language, \"the individual profile request header content in the Profiles\", \"在 Profiles 模块中设置单独的配置文件请求头内容\") }\n    scriptActionDescribe() { return language(this.language, \"Set the code to be called when the Action is executed\", \"设置执行Action时要调用的代码\") }\n    selectAfterUpdated() { return language(this.language, \"Select After Updated\", \"更新后选择\") }\n    selectAfterUpdatedDescribe() { return language(this.language, \"Set whether the profile is selected after updating\", \"设置是否在更新后选择已更新的配置文件\") }\n    profilesFolderPath() { return language(this.language, \"Profiles folder path\", \"配置文件文件夹路径\") }\n    healthCheckAll() { return language(this.language, \"Health Check All\", \"检查全部连接\") }\n    proxyProviders() { return language(this.language, \"Proxy Providers\", \"代理提供者\") }\n    chooseOutboundInterface() { return language(this.language, \"Choose outbound interface\", \"选择出接口\") }\n    chooseOutboundInterfaceDescribe() { return language(this.language, \"only works when TAP mode enabled\", \"仅在启用TAP模式时有效\") }\n    reset() { return language(this.language, \"Reset\", \"重置\") }\n    onlineDocs() { return language(this.language, \"Docs\", \"在线文档\") }\n    shortcut() { return language(this.language, \"Shortcuts\", \"快捷键\") }\n    globalMode() { return language(this.language, \"Global Mode\", \"全局模式\") }\n    ruleMode() { return language(this.language, \"Rule Mode\", \"规则模式\") }\n    directMode() { return language(this.language, \"Direct Mode\", \"直连模式\") }\n    scriptMode() { return language(this.language, \"Script Mode\", \"脚本模式\") }\n    pressEnterStop() { return language(this.language, \"Press Enter to stop\", \"按 Enter 停止\") }\n    record() { return language(this.language, \"Record\", \"点击以录制热键\") }\n    recording() { return language(this.language, \"Recording...\", \"记录中...\") }\n    developer() { return language(this.language, \"Developer\", \"作者\") }\n    relevance() { return language(this.language, \"Relevance\", \"关于\") }\n    credits() { return language(this.language, \"Credits\", \"鸣谢\") }\n    advertisementOriginal() { return language(this.language, \"Original Advertisement\", \"原版广告\") }\n    imageIsOnWay() { return language(this.language, \"Image is on the way\", \"图片正在加载\") }\n    updateIntervalMustBeInteger() { return language(this.language, \"Update Interval must be an integer\", \"更新间隔必须是整数\") }\n    downloadProfile() { return language(this.language, \"Download profile\", \"下载资料\") }\n    failedErrorHTTP() { return language(this.language, \"failed with error: HTTP Response Status Code\", \"失败，错误：HTTP 响应状态代码\") }\n    serviceModeCtrlSysProxy() { return language(this.language, \"Service Mode to control system proxy\", \"用于控制系统代理的服务模式\") }\n    makeSureYouHave() { return language(this.language, \"Make sure you have \", \"确定你 \") }\n    unknowErr() { return language(this.language, \"unknow error\", \"未知错误\") }\n    updateFailedNetErr() { return language(this.language, \"update failed(Network Error)\", \"更新失败(网络错误)!\") }\n    couldNotSwitchProfile() { return language(this.language, \"Could not switch to this profile!\", \"无法切换到此配置文件!\") }\n    downloadDbErrGeoIP() { return language(this.language, \"Download GeoIP database failed with error\", \"下载 GeoIP 数据库失败并出现错误\") }\n    inputFieldAlternative() { return language(this.language, \"Input fields are alternative\", \"输入字段是替代的\") }\n    updateDbGeoIP() { return language(this.language, \"Update GeoIP database\", \"更新 GeoIP 数据库\") }\n    updatingDbNotAllowedCFW() { return language(this.language, \"Updating GeoIP database is not allowed in CFW, please do it manually\", \"CFW 不允许更新 GeoIP 数据库，请手动进行\") }\n    imageFailedLoad() { return language(this.language, \"The image failed to load, click to redirect to the website.\", \"图片加载失败，点击重定向至网站\") }\n    updating() { return language(this.language, \"Updating\", \"更新中\") }\n    hide() { return language(this.language, \"hide\", \"隐藏\") }\n    couldNotUpdateProvider() { return language(this.language, \"could not update provider\", \"无法更新提供者\") }\n    dhcpServer() { return language(this.language, \"DHCP Server\", \"DHCP 服务器\") }\n    localIpAddress() { return language(this.language, \"Local IP Address\", \"本地 IP 地址\") }\n    cfg() { return language(this.language, \"Configuration\", \"配置\") }\n    include() { return language(this.language, \"Include\", \"包括\") }\n    updated() { return language(this.language, \"updated\", \"已更新\") }\n    installed() { return language(this.language, \"installed\", \"已安装\") }\n    now() { return language(this.language, \"Now\", \"现在\") }\n    askRestartAPP() { return language(this.language, \"Do you want to restart the APP?\", \"是否要重启 APP?\") }\n    restart() { return language(this.language, \"Restart\", \"重新启动\") }\n    clashCoreFailedStartup() { return language(this.language, \"clash core startup failed!!!\", \"clash 核心启动失败!!!\") }\n    restoreProxyGroup() { return language(this.language, \"restore proxy group\", \"恢复代理组\") }\n    tunModeEnableButIssue() { return language(this.language, \"TUN mode enable but no interface-name in this YAML\", \"启用 TUN 模式但此 YAML 中没有接口名称\") }\n    couldNotEditProxyGroupType() { return language(this.language, \"Could not edit proxy gorup type\", \"无法编辑代理组类型\") }\n    contentPAC() { return language(this.language, \"PAC Content\", \"PAC 内容\") }\n    scriptInterval() { return language(this.language, \"Script Interval\", \"脚本间隔\") }\n    automaticUpgrade() { return language(this.language, \"Automatic Upgrade\", \"自动升级\") }\n    automaticUpgradeDescribe() { return language(this.language, \"Set whether to update automatically, after turning on the new，\\n            version will be updated in the background, the next launch will be\\n            the latest version\\n          \", \"设置是否自动更新，\\n            开启新版本后后台更新，\\n            下次启动为最新版本\\n          \") }\n    automaticUpgradeCompleted() { return language(this.language, \"Automatic Upgrade completed\", \"自动升级完成\") }\n    updateProvider() { return language(this.language, \"Update provider\", \"更新提供者\") }\n    hideTrayIcon() { return language(this.language, \"Hide Tray Icon\", \"隐藏托盘图标\") }\n    hideTrayIconDescribe() { return language(this.language, \"Set whether to hide the taskbar icon or not\", \"设置是否隐藏任务栏图标\") }\n    proxyPolicy() { return language(this.language, \"Proxy or Policy\", \"代理或策略\") }\n    content() { return language(this.language, \"Content\", \"内容\") }\n    createNewRule() { return language(this.language, \"Create a new rule\", \"创建新规则\") }\n    skipCertVerify() { return language(this.language, \"Skip Cert Verify\", \"跳过证书验证\") }\n    customEditorCommand() { return language(this.language, \"Custom Editor Command\", \"自定义编辑器命令\") }\n    editMixinContent() { return language(this.language, \"Edit Mixin content\", \"编辑 Mixin 内容\") }\n    fakeIPCache() { return language(this.language, \"Fake IP Cache\", \"Fake IP 缓存\") }\n    cache() { return language(this.language, \"Cache\", \"缓存\") }\n    cannotEditReadOnlyEditor() { return language(this.language, \"Cannot edit in read-only editor\", \"无法在只读编辑器中编辑(请在右边进行编辑)\") }\n    startWithLinux() { return language(this.language, \"Start with Linux\", \"开机自启动\") }\n    startWithMacOS() { return language(this.language, \"Start with macOS\", \"开机自启动\") }\n    geoIPDatabase() { return language(this.language, \"GeoIP Database\", \"GeoIP 数据库更新\") }\n    preload() { return language(this.language, \"Preload\", \"预载\") }\n    preloadDescribe() { return language(this.language, \"Set the number of log lines to be preloaded in the Logs module,\\n            set to 0 to not preload\", \"在 Logs 模块中设置要预加载的日志行数,\\n            设置为 0 不预加载\") }\n    lines() { return language(this.language, \"lines\", \"线程\") }\n    experimentalFeatures() { return language(this.language, \"Experimental Features\", \"实验功能\") }\n    selectInterface() { return language(this.language, \"Select a interface\", \"选择一个接口\") }\n    hadBeenReleased() { return language(this.language, \" had been released\", \" 已发布\") }\n    pleaseConfirm() { return language(this.language, \"Please confirm\", \"请确认\") }\n    cfgWillBeRemoved() { return language(this.language, \"config.yaml and country.mmdb will be removed.\", \"config.yaml 和 country.mmdb 将被删除.\") }\n    router() { return language(this.language, \"Router\", \"路由器\") }\n    editInTextMode() { return language(this.language, [\"OK\", \"Edit in Text Mode\"], [\"好的\", \"在文本模式下编辑\"]) }\n    upgradeFailedWithErr() { return language(this.language, \"upgrade app failed with error: \", \"升级应用程序失败并出现错误: \") }\n    dontSave() { return language(this.language, \"Don't Save\", \"不保存\") }\n    failRestoreLastProfileErr() { return language(this.language, \"fail to restore last profile with error: \", \"无法恢复最后一个配置文件并出现错误: \") }\n    askSetConfig() { return language(this.language, \"Do you want to set a new uuidv4 secret in Home Directory/config.yaml and restart the APP?\", \"是否要在 Home Directory/config.yaml 中设置新的 uuidv4 secret 并重启 APP?\") }\n    recommendGenerateSecret() { return language(this.language, \"secret is currently empty, we strongly recommend to generate one\", \"secret 当前为空，我们强烈建议生成一个\") }\n    generate() { return language(this.language, \"Generate\", \"生成更新\") }\n    overallColorSettings() { return language(this.language, \"Overall foreground color. This color is only used if not overridden by a component\", \"整体前景色。这个颜色只在没有被组件覆盖的情况下使用\") }\n    overallColorSettingsErr() { return language(this.language, \"Overall foreground color for error messages. This color is only used if not overridden by a component\", \"错误信息的整体前景色。这个颜色只在没有被组件覆盖的情况下使用\") }\n    colorNeedValue() { return language(this.language, \"Color needs a value\", \"颜色需要一个值\") }\n    invalidColorArgument() { return language(this.language, \"Invalid color ctor argument\", \"无效颜色参数\") }\n    proxyName() { return language(this.language, \"Proxy Name\", \"代理名称\") }\n    cannotEditProxyType() { return language(this.language, \"Could not edit proxy type\", \"无法编辑代理类型\") }\n    trayProxyGroupsStyle() { return language(this.language, \"Tray Proxy Groups Style\", \"托盘代理组样式\") }\n    trayProxyGroupsStyleDescribeFirst() { return language(this.language, \"Set the proxy group style in the taskbar menu\", \"在任务栏菜单中设置代理组样式\") }\n    trayProxyGroupsStyleDescribeSecond() { return language(this.language, \"Flat all proxy groups\", \"扁平化所有代理组\") }\n    trayProxyGroupsStyleDescribeThird() { return language(this.language, \"Show proxy groups in submenu\", \"在折叠中显示代理组\") }\n    trayProxyGroupsStyleDescribeFourth() { return language(this.language, \"Hide proxy groups\", \"隐藏代理组\") }\n    submenu() { return language(this.language, \"Submenu\", \"折叠\") }\n    expand() { return language(this.language, \"Expand\", \"展开\") }\n    hidden() { return language(this.language, \"Hidden\", \"隐蔽\") }\n    showProcessIfPresent() { return language(this.language, \"Show Process If Present\", \"显示进程（如果存在）\") }\n    showProcessIfPresentDescribe() { return language(this.language, \"Set whether to show Process Name (if present) in Connections\", \"设置是否显示连接中的进程名称（如果存在）\") }\n    showTrayProxyDelayIndicator() { return language(this.language, \"Show Tray Proxy Delay Indicator\", \"在托盘代理中显示节点可用性\") }\n    showTrayProxyDelayIndicatorDescribe() { return language(this.language, \"Set whether the delay indicator is displayed in the proxy of the\\n            taskbar menu\", \"设置是否在任务栏菜单的代理中\\n            显示延迟指示器\") }\n    reloadAPP() { return language(this.language, \"Reload APP\", \"重新加载 APP\") }\n    failTo() { return language(this.language, \"Fail to \", \"未能\") }\n    delayType() { return language(this.language, \"Delay Type\", \"延迟类型\") }\n    delayTypeDescribeStart() { return language(this.language, \"Delay of a latency test\", \"延迟测试的延迟\") }\n    delayTypeDescribeEnd() { return language(this.language, \"Average delay of two latency tests\", \"两次延迟测试的平均延迟\") }\n    default() { return language(this.language, \"Default\", \"默认\") }\n    meanDelay() { return language(this.language, \"Mean Delay\", \"平均延迟\") }\n    fetch() { return language(this.language, \"Fetch\", \"获取\") }\n    currentSSID() { return language(this.language, \"Current SSID\", \"当前的 SSID\") }\n    currentSSIDDescribe() { return language(this.language, \"Copy the SSID to the clipboard\", \"将 SSID 复制到剪贴板\") }\n    getCurrentSSID() { return language(this.language, \"Get Current SSID\", \"获取当前的 SSID\") }\n    getCurrentSSIDDescribe() { return language(this.language, \"Multiple SSIDs are joined by\", \"多个 SSID 的连接方式为\") }\n    strategy() { return language(this.language, \"Strategy\", \"策略\") }\n    failedWithError() { return language(this.language, \"failed with error: \", \"失败，错误: \") }\n    preserveCase() { return language(this.language, \"Preserve Case\", \"保留大写\") }\n    previousMatch() { return language(this.language, \"Previous Match\", \"上一个匹配\") }\n    nextMatch() { return language(this.language, \"Next Match\", \"下一个匹配\") }\n    find() { return language(this.language, \"Find\", \"查找\") }\n    findinSelection() { return language(this.language, \"Find in Selection\", \"在选择中查找\") }\n    toggleReplace() { return language(this.language, \"Toggle Replace\", \"切换到替换模式\") }\n    close() { return language(this.language, \"Close\", \"关闭\") }\n    replace() { return language(this.language, \"Replace\", \"替换\") }\n    replaceAll() { return language(this.language, \"Replace All\", \"替换全部\") }\n    resultHighlighted() { return language(this.language, \"Only the first {0} results are highlighted, but all find operations work on the entire text.\", \"仅突出显示前 {0} 个结果，但所有查找操作均作用于整个文本。\") }\n    numberOf() { return language(this.language, \"{0} of {1}\", \"{0} / {1}\") }\n    noResults() { return language(this.language, \"No results\", \"无结果\") }\n    useProxyServerWindows() { return language(this.language, \"Use a proxy server in Windows\", \"在 Windows 中使用代理服务器\") }\n    enterProxyServerSettingsMac() { return language(this.language, \"Enter proxy server settings on Mac\", \"在 Mac 上输入代理服务器设置\") }\n    followLink() { return language(this.language, \"Follow link\", \"进入链接\") }\n    proxyName() { return language(this.language, \" - Proxy Name\", \"\") }\n    proxy() { return language(this.language, \"Proxy\", \"节点名\") }\n    groupName() { return language(this.language, \" - Group name\", \"\") }\n    group() { return language(this.language, \"Group\", \"分组名\") }\n    bothName() { return language(this.language, \" - Proxy name and group name\", \" - 节点名和分组名\") }\n    both() { return language(this.language, \"Both\", \"全部\") }\n    color() { return language(this.language, \"colors:\", \"颜色:\") }\n    available() { return language(this.language, \"available\", \"可用的\") }\n    unknown() { return language(this.language, \"unknown\", \"未知\") }\n    alive() { return language(this.language, \"Alive\", \"活动\") }\n    useModeIcons() { return language(this.language, \"Use Mode Icons\", \"使用连接模式图标\") }\n    useModeIconsDescribe() { return language(this.language, \"Use first letter of current mode as tray icon\", \"使用当前选择的模式作为托盘图标\") }\n    showActualFile() { return language(this.language, \"Show actual file\", \"显示实际文件\") }\n    fontSize() { return language(this.language, \"Font Size\", \"字体大小\") }\n    copyURLAndMD5() { return language(this.language, \"Copy URL MD5\", \"复制 URL MD5\") }\n    executeCommand() { return language(this.language, \"Execute command\", \"执行命令\") }\n    openWebPage() { return language(this.language, \"Open web page\", \"打开配置网站\") }\n    cut() { return language(this.language, \"Cut\", \"剪切\") }\n    paste() { return language(this.language, \"Paste\", \"粘贴\") }\n    status() { return language(this.language, \"Status\", \"状态\") }\n    flags() { return language(this.language, \"Flags\", \"标签\") }\n    disclaimerStatement() { return language(this.language, \"Disclaimer Statement\", \"免责声明\") }\n    disclaimerStatementDescribe() { \n        return language(this.language, \n            \"1. This software is only intended for the purpose of learning and researching network technology. Users must comply with the laws and regulations in their respective regions and must not use it for illegal purposes. The software will not be held responsible for any actions of the user. \\n\\n2. Users must strictly abide by the laws, regulations, and policies of their own countries/regions when using this software. Any consequences or liabilities resulting from violations of relevant laws, regulations, and policies shall be borne by the user.\\n\\n3. The software is not responsible for the transmission of content. Therefore, if any problems or consequences arise from the use of this software, the user shall bear all responsibility.\\n\\n4. If the software violates any laws and regulations of the user's country/region, the user must immediately stop using it and bear the corresponding legal responsibility.\\n\\n5. While using this software, the user acknowledges and agrees that the software cannot guarantee network stability, accuracy, timeliness, and security. The software will not be held responsible for any connection problems or inability to connect caused by network congestion, firewall restrictions, DNS pollution, operator interference, and other reasons.\\n\\n6. The software does not provide technical support and is not responsible for any direct or indirect losses caused by the user's use of this software, including but not limited to property damage, data loss, and other forms of loss.\\n\\n7. The software has made every effort to ensure the stability and safety of the software, but will not be held responsible for any direct or indirect losses suffered by the user due to the use of this software.\\n\\n8. The software reserves the right to change the terms and conditions at any time. Once the terms and conditions change, an announcement will be posted on the software page. Users need to pay attention and abide by the latest version of the terms and conditions.\\n\\n9. The software may display advertisements from third-party entities. The software does not endorse, guarantee, or assume responsibility for the accuracy, relevancy, or quality of the information presented in these advertisements. Users acknowledge and agree that the software is not liable for any loss or damage arising from the display of advertisements or any transactions or interactions users may have with the advertisers. The user is solely responsible for any interactions with advertisers and is advised to exercise caution and conduct due diligence before engaging in any transactions or interactions with advertisers.\\n    \", \n            \"1. 本软件仅供学习和研究网络技术之用，用户必须遵守所在地区的法律法规，不得用于非法用途，本软件不对任何人的行为负责。 \\n\\n2. 用户在使用本软件时必须严格遵守所在国家/地区的法律、法规和政策。 因违反有关法律、法规和政策而导致的任何后果或责任由用户自行承担。\\n\\n3. 本软件不负责传输内容。 因此，如因使用本软件而产生任何问题或后果，由用户自行承担全部责任。\\n\\n4. 如本软件违反用户所在国家/地区的任何法律法规，用户必须立即停止使用并承担相应的法律责任。\\n\\n5. 用户在使用本软件时，即承认并同意本软件不能保证网络的稳定性、准确性、及时性和安全性。 因网络拥塞、防火墙限制、DNS污染、运营商干扰等原因造成的连接问题或无法连接，本软件不承担任何责任。\\n\\n6. 本软件不提供技术支持，对因用户使用本软件而造成的任何直接或间接损失，包括但不限于财产损失、数据丢失及其他形式的损失不承担任何责任。\\n\\n7. 本软件已尽力确保软件的稳定性和安全性，但对用户因使用本软件而遭受的任何直接或间接损失不承担任何责任。\\n\\n8. 软件保留随时更改条款和条件的权利。 一旦条款和条件发生变化，将在软件页面上发布公告。 用户需关注并遵守最新版本的条款和条件。\\n\\n9. 本软件可能会显示来自第三方实体的广告。本软件不认可、保证或承担这些广告中所呈现信息的准确性、相关性或质量的责任。用户确认并同意，本软件对因显示广告或用户与广告商进行的任何交易或互动而产生的任何损失或损害概不负责。用户应对与广告商的任何互动承担全部责任，并建议用户在与广告商进行任何交易或互动之前谨慎行事并进行尽职调查。\\n    \"\n        )\n    }\n    matchCase() { return language(this.language, \"Match Case\", \"匹配大小写\") }\n    matchWholeWord() { return language(this.language, \"Match Whole Word\", \"匹配全词\") }\n    useRegularExpression() { return language(this.language, \"Use Regular Expression\", \"使用正则表达式\") }\n    failWithError() { return language(this.language, \"Fail, error: \", \"失败, 错误: \") }\n    resetDNSSettings() { return language(this.language, \"Reset DNS Settings\", \"重置 DNS 设置\") }\n    enable() { return language(this.language, \"Enable\", \"启用\") }\n    enabled() { return language(this.language, \"Enabled\", \"已启用\") }\n    customServers() { return language(this.language, \"Custom Servers\", \"自定义服务器\") }\n    forHistory() { return language(this.language, \"for history\", \"查看历史记录\") }\n    textWillDescribe() { return language(this.language, \"Text will be prefixed with ⇅ plus a single space, then used as a hint where input field keeps history\", \"文本将以 ⇅ 加上一个空格作为前缀，然后用作输入字段保留历史记录的提示\") }\n    timeoutInTimeDiff() { return language(this.language, \"Timeout in milliseconds after which diff computation is cancelled. Use 0 for no timeout.\", \"以毫秒为单位的超时，之后差异计算被取消。 使用 0 表示没有超时\") }\n    fileSizeInMBForDiff() { return language(this.language, \"Maximum file size in MB for which to compute diffs. Use 0 for no limit.\", \"计算差异的最大文件大小（以 MB 为单位）。 使用 0 表示没有限制\") }\n    ssidStrategy() { return language(this.language, \"SSID Strategy\", \"SSID策略\") }\n    strategyDescribe() { return language(this.language, \"\\n              Set the strategy for SSID matching, the first matched strategy\\n              will be used,\\n              \", \"\\n              设置SSID匹配策略，第一个匹配的策略\\n              将被使用,\\n              \") }\n    useCFWEditor() { return language(this.language, \"Use CFW Editor\", \"使用 CFW 编辑器\") }\n    other() { return language(this.language, \"Other\", \"其它\") }\n    show() { return language(this.language, \"show\", \"显示\") }\n    disableLoadingAdsLink() { return language(this.language, \"Disable Loading Ads Link\", \"禁用加载广告链接\") }\n}\nconst LANGUAGE = \"language\";\nvar modifyState = {\n    languageInProfile: -1,\n    language: -1,\n    isTun: false,\n    isMixin: false,\n    adImages: \"\"\n};\n(() => {\n    var e, t, i = {\n            67228: e => {\n                e.exports = function(e, t) {\n                    (null == t || t > e.length) && (t = e.length);\n                    for (var i = 0, n = new Array(t); i < t; i++) n[i] = e[i];\n                    return n\n                }, e.exports.default = e.exports, e.exports.__esModule = !0\n            },\n            22858: e => {\n                e.exports = function(e) {\n                    if (Array.isArray(e)) return e\n                }, e.exports.default = e.exports, e.exports.__esModule = !0\n            },\n            23646: (e, t, i) => {\n                var n = i(67228);\n                e.exports = function(e) {\n                    if (Array.isArray(e)) return n(e)\n                }, e.exports.default = e.exports, e.exports.__esModule = !0\n            },\n            48926: e => {\n                function t(e, t, i, n, o, s, r) {\n                    try {\n                        var a = e[s](r),\n                            l = a.value\n                    } catch (e) {\n                        return void i(e)\n                    }\n                    a.done ? t(l) : Promise.resolve(l).then(n, o)\n                }\n                e.exports = function(e) {\n                    return function() {\n                        var i = this,\n                            n = arguments;\n                        return new Promise((function(o, s) {\n                            var r = e.apply(i, n);\n\n                            function a(e) {\n                                t(r, o, s, a, l, \"next\", e)\n                            }\n\n                            function l(e) {\n                                t(r, o, s, a, l, \"throw\", e)\n                            }\n                            a(void 0)\n                        }))\n                    }\n                }, e.exports.default = e.exports, e.exports.__esModule = !0\n            },\n            59713: e => {\n                e.exports = function(e, t, i) {\n                    return t in e ? Object.defineProperty(e, t, {\n                        value: i,\n                        enumerable: !0,\n                        configurable: !0,\n                        writable: !0\n                    }) : e[t] = i, e\n                }, e.exports.default = e.exports, e.exports.__esModule = !0\n            },\n            46860: e => {\n                e.exports = function(e) {\n                    if (\"undefined\" != typeof Symbol && null != e[Symbol.iterator] || null != e[\"@@iterator\"]) return Array.from(e)\n                }, e.exports.default = e.exports, e.exports.__esModule = !0\n            },\n            13884: e => {\n                e.exports = function(e, t) {\n                    var i = e && (\"undefined\" != typeof Symbol && e[Symbol.iterator] || e[\"@@iterator\"]);\n                    if (null != i) {\n                        var n, o, s = [],\n                            r = !0,\n                            a = !1;\n                        try {\n                            for (i = i.call(e); !(r = (n = i.next()).done) && (s.push(n.value), !t || s.length !== t); r = !0);\n                        } catch (e) {\n                            a = !0, o = e\n                        } finally {\n                            try {\n                                r || null == i.return || i.return()\n                            } finally {\n                                if (a) throw o\n                            }\n                        }\n                        return s\n                    }\n                }, e.exports.default = e.exports, e.exports.__esModule = !0\n            },\n            80521: e => {\n                e.exports = function() {\n                    throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")\n                }, e.exports.default = e.exports, e.exports.__esModule = !0\n            },\n            98206: e => {\n                e.exports = function() {\n                    throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")\n                }, e.exports.default = e.exports, e.exports.__esModule = !0\n            },\n            6479: (e, t, i) => {\n                var n = i(37316);\n                e.exports = function(e, t) {\n                    if (null == e) return {};\n                    var i, o, s = n(e, t);\n                    if (Object.getOwnPropertySymbols) {\n                        var r = Object.getOwnPropertySymbols(e);\n                        for (o = 0; o < r.length; o++) i = r[o], t.indexOf(i) >= 0 || Object.prototype.propertyIsEnumerable.call(e, i) && (s[i] = e[i])\n                    }\n                    return s\n                }, e.exports.default = e.exports, e.exports.__esModule = !0\n            },\n            37316: e => {\n                e.exports = function(e, t) {\n                    if (null == e) return {};\n                    var i, n, o = {},\n                        s = Object.keys(e);\n                    for (n = 0; n < s.length; n++) i = s[n], t.indexOf(i) >= 0 || (o[i] = e[i]);\n                    return o\n                }, e.exports.default = e.exports, e.exports.__esModule = !0\n            },\n            63038: (e, t, i) => {\n                var n = i(22858),\n                    o = i(13884),\n                    s = i(60379),\n                    r = i(80521);\n                e.exports = function(e, t) {\n                    return n(e) || o(e, t) || s(e, t) || r()\n                }, e.exports.default = e.exports, e.exports.__esModule = !0\n            },\n            319: (e, t, i) => {\n                var n = i(23646),\n                    o = i(46860),\n                    s = i(60379),\n                    r = i(98206);\n                e.exports = function(e) {\n                    return n(e) || o(e) || s(e) || r()\n                }, e.exports.default = e.exports, e.exports.__esModule = !0\n            },\n            50008: e => {\n                function t(i) {\n                    return \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? (e.exports = t = function(e) {\n                        return typeof e\n                    }, e.exports.default = e.exports, e.exports.__esModule = !0) : (e.exports = t = function(e) {\n                        return e && \"function\" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? \"symbol\" : typeof e\n                    }, e.exports.default = e.exports, e.exports.__esModule = !0), t(i)\n                }\n                e.exports = t, e.exports.default = e.exports, e.exports.__esModule = !0\n            },\n            60379: (e, t, i) => {\n                var n = i(67228);\n                e.exports = function(e, t) {\n                    if (e) {\n                        if (\"string\" == typeof e) return n(e, t);\n                        var i = Object.prototype.toString.call(e).slice(8, -1);\n                        return \"Object\" === i && e.constructor && (i = e.constructor.name), \"Map\" === i || \"Set\" === i ? Array.from(e) : \"Arguments\" === i || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i) ? n(e, t) : void 0\n                    }\n                }, e.exports.default = e.exports, e.exports.__esModule = !0\n            },\n            87757: (e, t, i) => {\n                e.exports = i(35666)\n            },\n            24883: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    Z: () => n\n                });\n                const n = {\n                    put: function(e, t) {\n                        window.localStorage.setItem(e, JSON.stringify(t))\n                    },\n                    get: function(e) {\n                        var t = window.localStorage.getItem(e);\n                        if (\"\" !== t) try {\n                            return JSON.parse(t)\n                        } catch (t) {\n                            console.error(\"get [\".concat(e, \"] from cache failed with error:\"), t)\n                        }\n                    }\n                }\n            },\n            51792: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    F: () => C,\n                    b: () => x\n                });\n                var n, o, s = i(319),\n                    r = i.n(s),\n                    a = i(63038),\n                    l = i.n(a),\n                    c = i(48926),\n                    d = i.n(c),\n                    h = i(87757),\n                    u = i.n(h),\n                    g = i(58583),\n                    p = i(54387),\n                    f = i.n(p),\n                    m = i(8369),\n                    v = i(57147),\n                    _ = i(71017),\n                    b = i(59273),\n                    w = (i(72298), i(24793)),\n                    y = {},\n                    C = function(e, t) {\n                        y[e] = t\n                    },\n                    x = function(e) {\n                        return y[e] || 0\n                    },\n                    S = function(e) {\n                        return e.map((function(e) {\n                            return {\n                                label: e,\n                                kind: g.languages.CompletionItemKind.Keyword,\n                                insertText: e,\n                                insertTextRules: g.languages.CompletionItemInsertTextRule.InsertAsSnippet\n                            }\n                        }))\n                    },\n                    k = (n = d()(u().mark((function e(t, i, n) {\n                        var o, s, a, c, h, p, m, v, _, b;\n                        return u().wrap((function(e) {\n                            for (;;) switch (e.prev = e.next) {\n                                case 0:\n                                    return e.prev = 1, o = t.split(/\\r?\\n/).reduce((function(e, t) {\n                                        var i = t.match(/name:\\s\"?(.+?)\"?$/) || [],\n                                            n = l()(i, 2),\n                                            o = (n[0], n[1]);\n                                        return o && e.push(o), e\n                                    }), [\"DIRECT\", \"REJECT\", \"GLOBAL\"]), s = function() {\n                                        var e = d()(u().mark((function e(t) {\n                                            return u().wrap((function(e) {\n                                                for (;;) switch (e.prev = e.next) {\n                                                    case 0:\n                                                        return e.next = 2, f().get(\"https://raw.githubusercontent.com/Fndroid/clash-vscode/master/snippets/\".concat(t, \".code-snippets\"), {\n                                                            validateStatus: function(e) {\n                                                                return !0\n                                                            }\n                                                        });\n                                                    case 2:\n                                                        return e.abrupt(\"return\", e.sent);\n                                                    case 3:\n                                                    case \"end\":\n                                                        return e.stop()\n                                                }\n                                            }), e)\n                                        })));\n                                        return function(t) {\n                                            return e.apply(this, arguments)\n                                        }\n                                    }(), a = {}, e.next = 7, s(n);\n                                case 7:\n                                    if (c = e.sent, h = c.status, p = c.data, 200 === h) {\n                                        e.next = 19;\n                                        break\n                                    }\n                                    return e.next = 13, s(\"top\");\n                                case 13:\n                                    m = e.sent, v = m.status, _ = m.data, 200 === v && (a = _), e.next = 20;\n                                    break;\n                                case 19:\n                                    a = p;\n                                case 20:\n                                    b = Object.entries(a).map((function(e) {\n                                        var t = l()(e, 2),\n                                            s = (t[0], t[1]),\n                                            r = s.prefix,\n                                            a = s.body,\n                                            c = \"string\" == typeof a ? a : null == a ? void 0 : a.join(\"\\n\");\n                                        return {\n                                            label: r,\n                                            kind: g.languages.CompletionItemKind.Snippet,\n                                            insertText: \"rules\" === n && o.length > 0 ? c.replace(/\\:policy/g, \"|\".concat(o.join(\",\").replace(/\\|/g, \"\\\\\\\\\"), \"|\")) : c,\n                                            insertTextRules: g.languages.CompletionItemInsertTextRule.InsertAsSnippet,\n                                            range: i\n                                        }\n                                    })), e.t0 = n, e.next = \"rules\" === e.t0 ? 24 : \"proxy-groups\" === e.t0 ? 25 : 26;\n                                    break;\n                                case 24:\n                                case 25:\n                                    return e.abrupt(\"return\", [].concat(r()(b), r()(S(o))));\n                                case 26:\n                                    return e.abrupt(\"return\", b);\n                                case 27:\n                                    return e.abrupt(\"return\", [].concat(r()(b), r()([\"proxy-groups\", \"rules\"].includes(n) ? groupNameItems : [])));\n                                case 30:\n                                    return e.prev = 30, e.t1 = e.catch(1), e.abrupt(\"return\", []);\n                                case 33:\n                                case \"end\":\n                                    return e.stop()\n                            }\n                        }), e, null, [\n                            [1, 30]\n                        ])\n                    }))), function(e, t, i) {\n                        return n.apply(this, arguments)\n                    });\n                g.languages.registerCompletionItemProvider(\"yaml\", {\n                    provideCompletionItems: (o = d()(u().mark((function e(t, i) {\n                        var n, o, s, a, l;\n                        return u().wrap((function(e) {\n                            for (;;) switch (e.prev = e.next) {\n                                case 0:\n                                    if (n = t.getValueInRange({\n                                            startLineNumber: 1,\n                                            startColumn: 1,\n                                            endLineNumber: i.lineNumber,\n                                            endColumn: i.column\n                                        }), o = t.getWordUntilPosition(i), s = {\n                                            startLineNumber: i.lineNumber,\n                                            endLineNumber: i.lineNumber,\n                                            startColumn: o.startColumn,\n                                            endColumn: o.endColumn\n                                        }, 1 !== o.startColumn) {\n                                        e.next = 8;\n                                        break\n                                    }\n                                    return e.next = 6, k(t.getValue(), s, \"top\");\n                                case 6:\n                                    return e.t0 = e.sent, e.abrupt(\"return\", {\n                                        suggestions: e.t0\n                                    });\n                                case 8:\n                                    if (!((a = r()(\"\\n\".concat(n).matchAll(/\\n(\\S+?)\\s*:/g))).length > 0)) {\n                                        e.next = 15;\n                                        break\n                                    }\n                                    return l = a[a.length - 1][1], e.next = 13, k(t.getValue(), s, l);\n                                case 13:\n                                    return e.t1 = e.sent, e.abrupt(\"return\", {\n                                        suggestions: e.t1\n                                    });\n                                case 15:\n                                    return e.next = 17, k(t.getValue(), s, \"top\");\n                                case 17:\n                                    return e.t2 = e.sent, e.abrupt(\"return\", {\n                                        suggestions: e.t2\n                                    });\n                                case 19:\n                                case \"end\":\n                                    return e.stop()\n                            }\n                        }), e)\n                    }))), function(e, t) {\n                        return o.apply(this, arguments)\n                    })\n                });\n                var L, N, D, I = function(e, t) {\n                    var i = b.Z.state.app.clashPath;\n                    return (0, _.join)(i, \"providers\", e, t + \".yaml\")\n                };\n                const Lg = new Language(modifyState.language);\n                g.languages.registerCodeLensProvider(\"yaml\", {\n                    provideCodeLenses: (L = d()(u().mark((function e(t) {\n                        var i, n, o, s, r, a, l, c, d;\n                        return u().wrap((function(e) {\n                            for (;;) switch (e.prev = e.next) {\n                                case 0:\n                                    i = [], n = 1;\n                                case 2:\n                                    if (!(n <= t.getLineCount())) {\n                                        e.next = 17;\n                                        break\n                                    }\n                                    if (o = t.getLineContent(n), s = {\n                                            startLineNumber: n,\n                                            endLineNumber: n,\n                                            startColumn: 1,\n                                            endColumn: 1\n                                        }, !/url:\\s(.+?)$/.test(o)) {\n                                        e.next = 14;\n                                        break\n                                    }\n                                    return r = w.trim(RegExp.$1, \"\\\" '\"), e.next = 9, (0, m.Ll)(r);\n                                case 9:\n                                    a = e.sent, l = I(\"proxy\", a), c = I(\"rule\", a), (d = (0, v.existsSync)(l) ? l : (0, v.existsSync)(c) ? c : \"\") ? i.push({\n                                        range: s,\n                                        id: n,\n                                        command: {\n                                            id: \"openFile\",\n                                            title: Lg.showActualFile(),\n                                            arguments: [d]\n                                        }\n                                    }) : i.push({\n                                        range: s,\n                                        id: n,\n                                        command: {\n                                            id: \"copyURLMD5\",\n                                            title: Lg.copyURLAndMD5(),\n                                            arguments: [a]\n                                        }\n                                    });\n                                case 14:\n                                    n++, e.next = 2;\n                                    break;\n                                case 17:\n                                    return e.abrupt(\"return\", {\n                                        lenses: i,\n                                        dispose: function() {}\n                                    });\n                                case 18:\n                                case \"end\":\n                                    return e.stop()\n                            }\n                        }), e)\n                    }))), function(e) {\n                        return L.apply(this, arguments)\n                    })\n                }), g.editor.registerCommand(\"openFile\", (N = d()(u().mark((function e(t, n) {\n                    return u().wrap((function(e) {\n                        for (;;) switch (e.prev = e.next) {\n                            case 0:\n                                i(72298).shell.showItemInFolder(n);\n                            case 1:\n                            case \"end\":\n                                return e.stop()\n                        }\n                    }), e)\n                }))), function(e, t) {\n                    return N.apply(this, arguments)\n                })), g.editor.registerCommand(\"copyURLMD5\", (D = d()(u().mark((function e(t, n) {\n                    return u().wrap((function(e) {\n                        for (;;) switch (e.prev = e.next) {\n                            case 0:\n                                i(72298).clipboard.writeText(\"\".concat(n, \".yaml\")), (0, m.vC)({\n                                    title: \"MD5 Copied\",\n                                    message: \"MD5: \".concat(n)\n                                });\n                            case 2:\n                            case \"end\":\n                                return e.stop()\n                        }\n                    }), e)\n                }))), function(e, t) {\n                    return D.apply(this, arguments)\n                }))\n            },\n            27458: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    A7: () => w,\n                    Kz: () => b,\n                    Qz: () => _\n                });\n                var n, o, s, r, a = i(48926),\n                    l = i.n(a),\n                    c = i(87757),\n                    d = i.n(c),\n                    h = i(72378),\n                    u = i(32081),\n                    g = (i(72298), i(57147)),\n                    p = (i(71017), i(83566)),\n                    f = i(59273),\n                    m = (n = l()(d().mark((function e() {\n                        var t, i, n = arguments;\n                        return d().wrap((function(e) {\n                            for (;;) switch (e.prev = e.next) {\n                                case 0:\n                                    return t = n.length > 0 && void 0 !== n[0] && n[0], i = n.length > 1 ? n[1] : void 0, e.abrupt(\"return\", new Promise((function(e, n) {\n                                        var o = i.replace(/\"/g, '\\\\\"').replace(/\\n/g, \" \"),\n                                            s = 'powershell.exe -ExecutionPolicy Bypass -Command \"'.concat(o, '\"'),\n                                            r = function(t, i, o) {\n                                                t && n(t), e({\n                                                    stderr: o.toString(),\n                                                    stdout: i.toString()\n                                                })\n                                            };\n                                        t ? (0, h.exec)(s, {}, r) : (0, u.exec)(s, r)\n                                    })));\n                                case 3:\n                                case \"end\":\n                                    return e.stop()\n                            }\n                        }), e)\n                    }))), function() {\n                        return n.apply(this, arguments)\n                    }),\n                    v = \"Work with Clash for Windows.\",\n                    _ = (o = l()(d().mark((function e() {\n                        var t, i, n, o, s, r;\n                        return d().wrap((function(e) {\n                            for (;;) switch (e.prev = e.next) {\n                                case 0:\n                                    if ((0, p.Kr)()) {\n                                        e.next = 2;\n                                        break\n                                    }\n                                    return e.abrupt(\"return\");\n                                case 2:\n                                    return t = 'Get-NetFirewallRule -Description \"'.concat(v, '\" | ? {$_.Enabled -eq \"True\"} | Get-NetFirewallApplicationFilter'), e.prev = 3, e.next = 6, m(!1, t);\n                                case 6:\n                                    return i = e.sent, n = i.stderr, o = i.stdout, s = f.Z.getters.clashBinaryPath, r = (0, g.realpathSync)(s), e.abrupt(\"return\", \"\" === n && (o.includes(s) || o.includes(r)));\n                                case 14:\n                                    e.prev = 14, e.t0 = e.catch(3), console.error(\"get firewall rule status failed with error:\", e.t0);\n                                case 17:\n                                    return e.abrupt(\"return\", !1);\n                                case 18:\n                                case \"end\":\n                                    return e.stop()\n                            }\n                        }), e, null, [\n                            [3, 14]\n                        ])\n                    }))), function() {\n                        return o.apply(this, arguments)\n                    }),\n                    b = (s = l()(d().mark((function e() {\n                        var t;\n                        return d().wrap((function(e) {\n                            for (;;) switch (e.prev = e.next) {\n                                case 0:\n                                    if ((0, p.Kr)()) {\n                                        e.next = 2;\n                                        break\n                                    }\n                                    return e.abrupt(\"return\");\n                                case 2:\n                                    return t = '\\nRemove-NetFirewallRule -Description \"'.concat(v, '\" -ErrorAction SilentlyContinue \\n; \\'TCP\\', \\'UDP\\' | ForEach-Object {\\n    New-NetFirewallRule\\n        -DisplayName \"Clash Core\"\\n        -Profile \"Private, Public\"\\n        -Description \"').concat(v, '\"\\n        -Direction Inbound\\n        -Protocol $_\\n        -Action Allow\\n        -Program \"').concat((0, g.realpathSync)(f.Z.getters.clashBinaryPath), '\"\\n        | Out-Null\\n}'), e.prev = 3, e.next = 6, m(!0, t);\n                                case 6:\n                                    e.next = 11;\n                                    break;\n                                case 8:\n                                    e.prev = 8, e.t0 = e.catch(3), console.error(\"add firewall rule failed with error:\", e.t0);\n                                case 11:\n                                case \"end\":\n                                    return e.stop()\n                            }\n                        }), e, null, [\n                            [3, 8]\n                        ])\n                    }))), function() {\n                        return s.apply(this, arguments)\n                    }),\n                    w = (r = l()(d().mark((function e() {\n                        var t;\n                        return d().wrap((function(e) {\n                            for (;;) switch (e.prev = e.next) {\n                                case 0:\n                                    if ((0, p.Kr)()) {\n                                        e.next = 2;\n                                        break\n                                    }\n                                    return e.abrupt(\"return\");\n                                case 2:\n                                    return t = 'Remove-NetFirewallRule -Description \"'.concat(v, '\" -ErrorAction SilentlyContinue'), e.prev = 3, e.next = 6, m(!0, t);\n                                case 6:\n                                    e.next = 11;\n                                    break;\n                                case 8:\n                                    e.prev = 8, e.t0 = e.catch(3), console.error(\"remove firewall rule failed with error:\", e.t0);\n                                case 11:\n                                case \"end\":\n                                    return e.stop()\n                            }\n                        }), e, null, [\n                            [3, 8]\n                        ])\n                    }))), function() {\n                        return r.apply(this, arguments)\n                    })\n            },\n            8369: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    uR: () => P,\n                    uQ: () => U,\n                    wi: () => q,\n                    Ll: () => O,\n                    EP: () => W,\n                    fl: () => V,\n                    Mf: () => K,\n                    Sr: () => $,\n                    e8: () => Z,\n                    XW: () => z,\n                    vC: () => B,\n                    c0: () => F,\n                    nM: () => H,\n                    F0: () => R,\n                    Dc: () => A\n                });\n                var n = i(50008),\n                    o = i.n(n),\n                    s = i(319),\n                    r = i.n(s),\n                    a = i(59713),\n                    l = i.n(a),\n                    c = i(48926),\n                    d = i.n(c),\n                    h = i(87757),\n                    u = i.n(h);\n                const g = require(\"crypto\");\n                var p = i(57147),\n                    f = i(71017);\n                require(\"http\");\n                var m = i(11442),\n                    v = i.n(m),\n                    _ = i(59273),\n                    b = i(72298),\n                    w = (i(10605), i(24883)),\n                    y = i(81518),\n                    C = i(83566);\n                const x = require(\"bignumber.js\");\n                var S = i.n(x);\n\n                function k(e, t) {\n                    var i = Object.keys(e);\n                    if (Object.getOwnPropertySymbols) {\n                        var n = Object.getOwnPropertySymbols(e);\n                        t && (n = n.filter((function(t) {\n                            return Object.getOwnPropertyDescriptor(e, t).enumerable\n                        }))), i.push.apply(i, n)\n                    }\n                    return i\n                }\n\n                function L(e) {\n                    for (var t = 1; t < arguments.length; t++) {\n                        var i = null != arguments[t] ? arguments[t] : {};\n                        t % 2 ? k(Object(i), !0).forEach((function(t) {\n                            l()(e, t, i[t])\n                        })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(i)) : k(Object(i)).forEach((function(t) {\n                            Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(i, t))\n                        }))\n                    }\n                    return e\n                }\n                var N, D, I, E, T, M, A = function(e) {\n                        return new Promise((function(t) {\n                            return setTimeout(t, e)\n                        }))\n                    },\n                    O = function(e) {\n                        return (0, g.createHash)(\"md5\").update(e).digest(\"hex\")\n                    },\n                    P = function e(t) {\n                        p.existsSync(t) && (p.readdirSync(t).forEach((function(i, n) {\n                            var o = f.join(t, i);\n                            p.lstatSync(o).isDirectory() ? e(o) : p.unlinkSync(o)\n                        })), p.rmdirSync(t))\n                    },\n                    R = (N = d()(u().mark((function e(t, i, n) {\n                        var o, s;\n                        return u().wrap((function(e) {\n                            for (;;) switch (e.prev = e.next) {\n                                case 0:\n                                    o = p.readFileSync(t).toString(), (s = v().parseDocument(o)).set(i, n), p.writeFileSync(t, s.toString());\n                                case 4:\n                                case \"end\":\n                                    return e.stop()\n                            }\n                        }), e)\n                    }))), function(e, t, i) {\n                        return N.apply(this, arguments)\n                    }),\n                    F = function(e) {\n                        var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : \"\",\n                            i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : null,\n                            n = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : function() {},\n                            o = _.Z.state.app.settings.showNotifications;\n                        void 0 !== o && o && (new Notification(e, L({\n                            body: t,\n                            silent: !0\n                        }, i)).onclick = function() {\n                            !0 !== (null == i ? void 0 : i.hideWindowOnClick) && b.ipcRenderer.invoke(\"window-control\", \"show\"), n()\n                        })\n                    },\n                    B = (D = d()(u().mark((function e(t) {\n                        return u().wrap((function(e) {\n                            for (;;) switch (e.prev = e.next) {\n                                case 0:\n                                    return e.next = 2, b.ipcRenderer.invoke(\"dialog\", \"showMessageBox\", L({\n                                        title: \"Clash for Windows\"\n                                    }, t));\n                                case 2:\n                                    return e.abrupt(\"return\", e.sent);\n                                case 3:\n                                case \"end\":\n                                    return e.stop()\n                            }\n                        }), e)\n                    }))), function(e) {\n                        return D.apply(this, arguments)\n                    }),\n                    V = (I = d()(u().mark((function e(t) {\n                        const Lg = new Language(modifyState.language);\n                        return u().wrap((function (e) {\n                            for (;;) switch (e.prev = e.next) {\n                                case 0:\n                                    return e.next = 2, B({\n                                        type: \"question\",\n                                        buttons: [Lg.no(), Lg.yes()],\n                                        message: Lg.askOpenURL(),\n                                        detail: t\n                                    });\n                                case 2:\n                                    1 === e.sent.response && b.shell.openExternal(t);\n                                case 5:\n                                case \"end\":\n                                    return e.stop()\n                            }\n                        }), e)\n                    }))), function(e) {\n                        return I.apply(this, arguments)\n                    }),\n                    W = function(e) {\n                        return JSON.parse(JSON.stringify(e))\n                    },\n                    H = function(e) {\n                        for (var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 2, i = !(arguments.length > 2 && void 0 !== arguments[2]) || arguments[2], n = [\"B\", \"KB\", \"MB\", \"GB\", \"TB\", \"PB\", \"EB\"], o = 0; S()(e).dividedBy(1024).isGreaterThan(1) && o < n.length;) e = S()(e).dividedBy(1024), o++;\n                        return \"\".concat(e.toFixed(t)).concat(i ? \" \" : \"\").concat(n[o])\n                    },\n                    z = (E = d()(u().mark((function e(t) {\n                        var i, n, o, s, a, l, c;\n                        return u().wrap((function(e) {\n                            for (;;) switch (e.prev = e.next) {\n                                case 0:\n                                    i = t.method, n = t.target, o = t.checkTimes, s = void 0 === o ? 10 : o, a = t.ags, l = void 0 === a ? [] : a, c = 0;\n                                case 2:\n                                    return e.next = 5, i.apply(void 0, r()(l));\n                                case 5:\n                                    if (e.t0 = e.sent, e.t1 = n, e.t0 !== e.t1) {\n                                        e.next = 9;\n                                        break\n                                    }\n                                    return e.abrupt(\"return\");\n                                case 9:\n                                    return e.next = 11, A(1e3);\n                                case 11:\n                                    if (!((c += 1) >= s)) {\n                                        e.next = 14;\n                                        break\n                                    }\n                                    return e.abrupt(\"return\");\n                                case 14:\n                                    e.next = 2;\n                                    break;\n                                case 16:\n                                case \"end\":\n                                    return e.stop()\n                            }\n                        }), e)\n                    }))), function(e, t) {\n                        if (e.length <= t) return e;\n                        var i = parseInt(t / 2),\n                            n = t - i;\n                        return e.slice(0, i) + \"...\" + e.slice(-n)\n                    }),\n                    j = null,\n                    U = (T = d()(u().mark((function e() {\n                        var t;\n                        return u().wrap((function(e) {\n                            for (;;) switch (e.prev = e.next) {\n                                case 0:\n                                    return e.next = 2, b.ipcRenderer.invoke(\"app\", \"getVersion\");\n                                case 2:\n                                    return t = e.sent, null === j && (j = w.Z.get(y.Z.LAST_VERSION_CODE) || \"\", w.Z.put(y.Z.LAST_VERSION_CODE, t)), e.abrupt(\"return\", j !== t);\n                                case 5:\n                                case \"end\":\n                                    return e.stop()\n                            }\n                        }), e)\n                    }))), function() {\n                        return T.apply(this, arguments)\n                    }),\n                    $ = function(e) {\n                        var t = e || {},\n                            i = t.ipv6,\n                            n = void 0 !== i && i,\n                            o = t.nameServers,\n                            s = void 0 === o ? [\"8.8.8.8\", \"1.1.1.1\", \"94.140.14.14\"] : o,\n                            a = t.fallbackServers,\n                            l = void 0 === a ? [] : a,\n                            c = t.defaultNameservers,\n                            d = void 0 === c ? [] : c,\n                            h = t.fakeIPFilters,\n                            u = t.nameserverPolicy,\n                            g = void 0 === u ? {} : u,\n                            p = t.stackType,\n                            f = void 0 === p ? 0 : p,\n                            m = t.interfaceName,\n                            v = void 0 === m ? \"\" : m,\n                            _ = t.isAutoDetectInterface,\n                            b = void 0 === _ || _,\n                            w = t.dnsHijacks,\n                            y = void 0 === w ? [] : w,\n                            x = t.isAutoRedir,\n                            S = t.isAutoRedirAutoRoute,\n                            k = {\n                                dns: {\n                                    enable: !0,\n                                    ipv6: n,\n                                    \"enhanced-mode\": \"fake-ip\",\n                                    \"default-nameserver\": d,\n                                    nameserver: s,\n                                    fallback: l,\n                                    \"nameserver-policy\": g\n                                },\n                                tun: {\n                                    enable: !0,\n                                    stack: [\"gvisor\", \"system\"][f],\n                                    \"auto-route\": !0\n                                }\n                            };\n                        return k.dns[\"fake-ip-filter\"] = void 0 === h ? [\"+.stun.*.*\", \"+.stun.*.*.*\", \"+.stun.*.*.*.*\", \"+.stun.*.*.*.*.*\", \"*.n.n.srv.nintendo.net\", \"+.stun.playstation.net\", \"xbox.*.*.microsoft.com\", \"*.*.xboxlive.com\"].concat(r()((0, C.Kr)() ? [\"*.msftncsi.com\", \"*.msftconnecttest.com\", \"WORKGROUP\"] : (0, C.V5)() ? [\"apps.apple.com\"] : [])) : h, b ? k.tun[\"auto-detect-interface\"] = !0 : k[\"interface-name\"] = v, k.tun[\"dns-hijack\"] = y, (0, C.IJ)() && (k[\"auto-redir\"] = {\n                            enable: x,\n                            \"auto-route\": S\n                        }), 0 === d.length && delete k.dns[\"default-nameserver\"], k\n                    },\n                    K = function e(t) {\n                        return Object.values(t).map((function(t) {\n                            return \"object\" === o()(t) ? e(t) : t\n                        })).join(\"\\n\")\n                    },\n                    q = function(e) {\n                        return e > 0 && e < 65536\n                    },\n                    Z = (M = d()(u().mark((function e(t, i) {\n                        var n, o, s;\n                        return u().wrap((function(e) {\n                            for (;;) switch (e.prev = e.next) {\n                                case 0:\n                                    if (s = null === _.Z || void 0 === _.Z || null === (n = _.Z.getters) || void 0 === n ? void 0 : n.clashAxiosClient) {\n                                        e.next = 3;\n                                        break\n                                    }\n                                    throw new Error(\"Clash Core is not ready\");\n                                case 3:\n                                    return e.next = 5, s.get(\"/dns/query\", {\n                                        params: {\n                                            name: t,\n                                            type: i\n                                        }\n                                    });\n                                case 5:\n                                    if (e.t1 = o = e.sent, e.t0 = null === e.t1, e.t0) {\n                                        e.next = 9;\n                                        break\n                                    }\n                                    e.t0 = void 0 === o;\n                                case 9:\n                                    if (!e.t0) {\n                                        e.next = 13;\n                                        break\n                                    }\n                                    e.t2 = void 0, e.next = 14;\n                                    break;\n                                case 13:\n                                    e.t2 = o.data;\n                                case 14:\n                                    return e.abrupt(\"return\", e.t2);\n                                case 15:\n                                case \"end\":\n                                    return e.stop()\n                            }\n                        }), e)\n                    }))), function(e, t) {\n                        return M.apply(this, arguments)\n                    })\n            },\n            97520: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    Z: () => u,\n                    r: () => h\n                });\n                var n = i(50008),\n                    o = i.n(n),\n                    s = i(32081),\n                    r = i(22037),\n                    a = i(41808),\n                    l = i(83566);\n\n                function c(e, t) {\n                    var i = \"undefined\" != typeof Symbol && e[Symbol.iterator] || e[\"@@iterator\"];\n                    if (!i) {\n                        if (Array.isArray(e) || (i = function(e, t) {\n                                if (!e) return;\n                                if (\"string\" == typeof e) return d(e, t);\n                                var i = Object.prototype.toString.call(e).slice(8, -1);\n                                \"Object\" === i && e.constructor && (i = e.constructor.name);\n                                if (\"Map\" === i || \"Set\" === i) return Array.from(e);\n                                if (\"Arguments\" === i || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)) return d(e, t)\n                            }(e)) || t && e && \"number\" == typeof e.length) {\n                            i && (e = i);\n                            var n = 0,\n                                o = function() {};\n                            return {\n                                s: o,\n                                n: function() {\n                                    return n >= e.length ? {\n                                        done: !0\n                                    } : {\n                                        done: !1,\n                                        value: e[n++]\n                                    }\n                                },\n                                e: function(e) {\n                                    throw e\n                                },\n                                f: o\n                            }\n                        }\n                        throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")\n                    }\n                    var s, r = !0,\n                        a = !1;\n                    return {\n                        s: function() {\n                            i = i.call(e)\n                        },\n                        n: function() {\n                            var e = i.next();\n                            return r = e.done, e\n                        },\n                        e: function(e) {\n                            a = !0, s = e\n                        },\n                        f: function() {\n                            try {\n                                r || null == i.return || i.return()\n                            } finally {\n                                if (a) throw s\n                            }\n                        }\n                    }\n                }\n\n                function d(e, t) {\n                    (null == t || t > e.length) && (t = e.length);\n                    for (var i = 0, n = new Array(t); i < t; i++) n[i] = e[i];\n                    return n\n                }\n                var h = function() {\n                    var e = [],\n                        t = (0, r.networkInterfaces)();\n                    return Object.keys(t).forEach((function(i) {\n                        t[i].forEach((function(t) {\n                            !0 !== t.internal && \"IPv6\" !== t.family && e.push({\n                                name: i,\n                                address: t.address\n                            })\n                        }))\n                    })), e\n                };\n                const u = function() {\n                    if ((0, l.V5)()) {\n                        var e = (0, s.execSync)(\"netstat -nr | grep default \").toString().split(\"\\n\").map((function(e) {\n                                return e.split(/\\s+/).filter((function(e) {\n                                    return e\n                                }))\n                            })).filter((function(e) {\n                                return 4 === e.length && (0, a.isIPv4)(e[1])\n                            })),\n                            t = (0, r.networkInterfaces)();\n                        if (e.length > 0) {\n                            var i, n = c(e);\n                            try {\n                                for (n.s(); !(i = n.n()).done;) {\n                                    var d = i.value[3];\n                                    if (Object.keys(t).includes(d)) return d\n                                }\n                            } catch (e) {\n                                n.e(e)\n                            } finally {\n                                n.f()\n                            }\n                        }\n                        if (Object.keys(t).includes(\"en0\")) return \"en0\"\n                    } else if ((0, l.Kr)()) {\n                        var h = (0, s.execSync)(\"route print 0.0.0.0 mask 0.0.0.0\", {\n                                windowsHide: !0\n                            }).toString().split(\"\\n\").map((function(e) {\n                                return e.split(/\\s+/).filter((function(e) {\n                                    return e\n                                }))\n                            })).filter((function(e) {\n                                return 5 === e.length && e.slice(0, 4).every((function(e) {\n                                    return (0, a.isIP)(e)\n                                })) && NaN !== parseInt(e[4])\n                            })),\n                            u = (0, r.networkInterfaces)();\n                        if (delete u[\"cfw-tap\"], h.length > 0) {\n                            var g, p = c(h.sort((function(e, t) {\n                                return parseInt(e[4]) - parseInt(t[4])\n                            })));\n                            try {\n                                var f = function() {\n                                    for (var e = g.value[3], t = 0, i = Object.keys(u); t < i.length; t++) {\n                                        var n = i[t];\n                                        if (u[n].find((function(t) {\n                                                return t.address === e\n                                            }))) return {\n                                            v: n\n                                        }\n                                    }\n                                };\n                                for (p.s(); !(g = p.n()).done;) {\n                                    var m = f();\n                                    if (\"object\" === o()(m)) return m.v\n                                }\n                            } catch (e) {\n                                p.e(e)\n                            } finally {\n                                p.f()\n                            }\n                        }\n                        if (Object.keys(u).includes(\"以太网\")) return \"以太网\";\n                        if (Object.keys(u).includes(\"WLAN\")) return \"WLAN\"\n                    }\n                    return null\n                }\n            },\n            71289: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    ZP: () => c\n                });\n                var n = i(24793),\n                    o = i(59273),\n                    s = [],\n                    r = function(e) {\n                        var t = s.find((function(t) {\n                            return t.id === e\n                        }));\n                        t && -1 !== t.intervalId && (clearInterval(t.intervalId), s = s.filter((function(t) {\n                            return t.id !== e\n                        })))\n                    },\n                    a = function(e) {\n                        var t = s.find((function(t) {\n                            return t.id === e\n                        }));\n                        t && (clearInterval(t.intervalId), t.intervalId = -1)\n                    },\n                    l = function(e) {\n                        var t = s.find((function(t) {\n                            return t.id === e\n                        }));\n                        t && -1 === t.intervalId && (t.intervalId = setInterval(t.callback, t.interval))\n                    };\n                const c = {\n                    add: function(e, t) {\n                        var i = (0, n.uniqueId)(),\n                            r = o.Z.state.app.isWindowShow ? setInterval(e, t) : -1;\n                        return s.push({\n                            id: i,\n                            intervalId: r,\n                            callback: e,\n                            interval: t\n                        }), i\n                    },\n                    stop: r,\n                    stopAll: function() {\n                        s.forEach((function(e) {\n                            return r(e.id)\n                        }))\n                    },\n                    pause: a,\n                    pauseAll: function() {\n                        s.forEach((function(e) {\n                            return a(e.id)\n                        }))\n                    },\n                    resume: l,\n                    resumeAll: function() {\n                        s.forEach((function(e) {\n                            return l(e.id)\n                        }))\n                    },\n                    getAll: function() {\n                        return s\n                    }\n                }\n            },\n            419: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    rF: () => G\n                });\n                var n = i(48926),\n                    o = i.n(n),\n                    s = i(63038),\n                    r = i.n(s),\n                    a = i(59713),\n                    l = i.n(a),\n                    c = i(87757),\n                    d = i.n(c),\n                    h = i(59273),\n                    u = i(54387),\n                    g = i.n(u),\n                    p = i(57147),\n                    f = i.n(p),\n                    m = i(71017),\n                    v = i.n(m),\n                    _ = i(96206),\n                    b = i(11442),\n                    w = i.n(b),\n                    y = i(24793),\n                    C = i.n(y),\n                    x = i(319),\n                    S = i.n(x),\n                    k = i(50008),\n                    L = i.n(k),\n                    N = i(24793),\n                    D = Symbol(),\n                    I = Symbol(),\n                    E = Symbol(),\n                    T = function(e, t) {\n                        var i = function(e) {\n                            var t = [],\n                                i = D,\n                                n = \"\",\n                                o = !1,\n                                s = \"\";\n                            e: for (var r = 0; r < e.length; r++) {\n                                var a = e[r];\n                                if (\"-\" === a && r === e.length - 1) {\n                                    i = E, t.push(s);\n                                    break e\n                                }\n                                if (\"(\" !== a)\n                                    if (\")\" !== a)\n                                        if (o) s += a;\n                                        else switch (a) {\n                                            case \".\":\n                                                t.push(s), s = \"\";\n                                                break;\n                                            case \"+\":\n                                                i = I;\n                                            case \"=\":\n                                                t.push(s), n = e.slice(r + 1);\n                                                break e;\n                                            default:\n                                                s += a\n                                        } else o = !1;\n                                else o = !0\n                            }\n                            return {\n                                path: t,\n                                opertation: i,\n                                value: n\n                            }\n                        }(t);\n                        ! function(e, t, i) {\n                            var n = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : D,\n                                o = e.proxies,\n                                s = void 0 === o ? [] : o,\n                                r = e[\"proxy-groups\"],\n                                a = void 0 === r ? [] : r,\n                                l = t.slice(0, -1),\n                                c = t[t.length - 1],\n                                d = i;\n                            try {\n                                d = JSON.parse(i)\n                            } catch (e) {}\n                            var h = N.reduce(l, (function(e, i, n) {\n                                    var o = e[i];\n                                    if (void 0 !== o) return o;\n                                    if (Array.isArray(e)) {\n                                        var s = e.find((function(e) {\n                                            return e.name === i\n                                        }));\n                                        if (s) return s\n                                    }\n                                    if (t.length > n + 1) {\n                                        var r = t[n + 1];\n                                        parseInt(r) >= 0 ? e[i] = [] : e[i] = {}\n                                    } else e[i] = {};\n                                    return e[i]\n                                }), e),\n                                u = Array.isArray(h),\n                                g = function(e) {\n                                    if (/^\\[\\](shuffledProxyNames|proxyNames|groupNames)\\|?(.+)?$/.test(e)) {\n                                        var t = RegExp.$1,\n                                            i = RegExp.$2 || \"\",\n                                            n = [];\n                                        return \"proxyNames\" === t && (n = s), \"groupNames\" === t && (n = a), \"shuffledProxyNames\" === t && (n = N.shuffle(s)), n.map((function(e) {\n                                            return e.name\n                                        })).filter((function(e) {\n                                            return new RegExp(i).test(e)\n                                        }))\n                                    }\n                                    return null\n                                }(d);\n                            switch (n) {\n                                case D:\n                                    if (g) h[c] = g;\n                                    else {\n                                        var p = L()(h[c]);\n                                        h[c] = \"number\" === p ? 1 * d : \"boolean\" === p ? \"boolean\" == typeof d ? d : \"true\" === d : d\n                                    }\n                                    break;\n                                case I:\n                                    u ? h.splice.apply(h, [c, 0].concat(S()(g || [d]))) : h[c] = g || d;\n                                    break;\n                                case E:\n                                    u ? parseInt(c) > -1 ? h.splice(c, 1) : h.splice(h.findIndex((function(e) {\n                                        return e.name === c\n                                    })), 1) : delete h[c]\n                            }\n                        }(e, i.path, i.value, i.opertation)\n                    },\n                    M = i(8369);\n                const A = require(\"node-diff3\"),\n                    O = require(\"content-disposition\");\n                var P = i(71893),\n                    R = i.n(P);\n                const F = require(\"hpagent\");\n\n                function B(e, t) {\n                    var i = \"undefined\" != typeof Symbol && e[Symbol.iterator] || e[\"@@iterator\"];\n                    if (!i) {\n                        if (Array.isArray(e) || (i = function(e, t) {\n                                if (!e) return;\n                                if (\"string\" == typeof e) return V(e, t);\n                                var i = Object.prototype.toString.call(e).slice(8, -1);\n                                \"Object\" === i && e.constructor && (i = e.constructor.name);\n                                if (\"Map\" === i || \"Set\" === i) return Array.from(e);\n                                if (\"Arguments\" === i || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)) return V(e, t)\n                            }(e)) || t && e && \"number\" == typeof e.length) {\n                            i && (e = i);\n                            var n = 0,\n                                o = function() {};\n                            return {\n                                s: o,\n                                n: function() {\n                                    return n >= e.length ? {\n                                        done: !0\n                                    } : {\n                                        done: !1,\n                                        value: e[n++]\n                                    }\n                                },\n                                e: function(e) {\n                                    throw e\n                                },\n                                f: o\n                            }\n                        }\n                        throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")\n                    }\n                    var s, r = !0,\n                        a = !1;\n                    return {\n                        s: function() {\n                            i = i.call(e)\n                        },\n                        n: function() {\n                            var e = i.next();\n                            return r = e.done, e\n                        },\n                        e: function(e) {\n                            a = !0, s = e\n                        },\n                        f: function() {\n                            try {\n                                r || null == i.return || i.return()\n                            } finally {\n                                if (a) throw s\n                            }\n                        }\n                    }\n                }\n\n                function V(e, t) {\n                    (null == t || t > e.length) && (t = e.length);\n                    for (var i = 0, n = new Array(t); i < t; i++) n[i] = e[i];\n                    return n\n                }\n\n                function W(e, t) {\n                    var i = Object.keys(e);\n                    if (Object.getOwnPropertySymbols) {\n                        var n = Object.getOwnPropertySymbols(e);\n                        t && (n = n.filter((function(t) {\n                            return Object.getOwnPropertyDescriptor(e, t).enumerable\n                        }))), i.push.apply(i, n)\n                    }\n                    return i\n                }\n\n                function H(e) {\n                    for (var t = 1; t < arguments.length; t++) {\n                        var i = null != arguments[t] ? arguments[t] : {};\n                        t % 2 ? W(Object(i), !0).forEach((function(t) {\n                            l()(e, t, i[t])\n                        })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(i)) : W(Object(i)).forEach((function(t) {\n                            Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(i, t))\n                        }))\n                    }\n                    return e\n                }\n                var z, j, U = i(75110),\n                    $ = function(e) {\n                        var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {},\n                            i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {},\n                            n = h.Z.state.app.settings.headersText,\n                            o = {};\n                        if (n) try {\n                            var s = w().parse(n).headers;\n                            o = void 0 === s ? {} : s\n                        } catch (e) {}\n                        return (0, u.get)(e, H(H({\n                            validateStatus: function() {\n                                return !0\n                            }\n                        }, t), {}, {\n                            headers: H(H({\n                                pragma: \"no-cache\"\n                            }, i), o),\n                            responseType: \"text\",\n                            transformResponse: [function(e) {\n                                return e\n                            }]\n                        }))\n                    },\n                    K = function(e) {\n                        var t, i = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {},\n                            n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {},\n                            o = h.Z.state.app.settings.headersText,\n                            s = {};\n                        if (o) try {\n                            var r = w().parse(o).headers;\n                            s = void 0 === r ? {} : r\n                        } catch (e) {}\n                        var a = h.Z.state.app.confData,\n                            l = a[\"mixed-port\"],\n                            c = a.authentication,\n                            d = void 0 === c ? [] : c,\n                            u = R()(e, {\n                                agent: new F.HttpsProxyAgent({\n                                    proxy: \"http://\".concat(d.length > 0 ? d[0] + \"@\" : \"\", \"127.0.0.1:\").concat(l)\n                                }),\n                                headers: H(H({\n                                    pragma: \"no-cache\"\n                                }, n), s)\n                            });\n                        return null === (t = i.cancelToken) || void 0 === t || t.promise.then((function(e) {\n                            u.cancel(e)\n                        })), u\n                    },\n                    q = function(e) {\n                        var t = {};\n                        return /upload=(.+?)(;|$)/.test(e) && (t.upload = parseInt(RegExp.$1.trim())), /download=(.+?)(;|$)/.test(e) && (t.download = parseInt(RegExp.$1.trim())), /total=(.+?)(;|$)/.test(e) && (t.total = parseInt(RegExp.$1.trim())), /expire=(.+?)(;|$)/.test(e) && (t.expire = parseInt(RegExp.$1.trim())), t\n                    },\n                    Z = function(e) {\n                        try {\n                            return e.split(\"\\n\").reduce((function(e, t) {\n                                var i = t.split(\":\"),\n                                    n = r()(i, 2),\n                                    o = n[0],\n                                    s = n[1];\n                                return e[o.trim()] = s.trim(), e\n                            }), {})\n                        } catch (e) {\n                            return {}\n                        }\n                    },\n                    G = (z = o()(d().mark((function e(t) {\n                        const Lg = new Language(modifyState.language);\n                        var i, n, o, s, r, a, l, c, u, g, p, m, _, b, w, y, C, x, S, k, L, N, D, I, E, T, M, P, R, F, B, V, W, z, j, U, G, Q, X, J, ee, te, ie, ne, oe, se, re, ae, le, ce;\n                        return d().wrap((function(e) {\n                            for (;;) switch (e.prev = e.next) {\n                                case 0:\n                                    if (i = t.url, n = t.cancelToken, o = void 0 === n ? null : n, s = t.headersString, r = void 0 === s ? \"\" : s, e.prev = 1, a = h.Z.state.app.settings.updateProfileThroughClashProxy, l = void 0, c = void 0, u = {}, void 0 === a || !a) {\n                                        e.next = 18;\n                                        break\n                                    }\n                                    return e.next = 9, K(i, {\n                                        cancelToken: o\n                                    }, Z(r));\n                                case 9:\n                                    g = e.sent, p = g.body, m = g.statusCode, _ = g.headers, l = p, c = m, u = _, e.next = 27;\n                                    break;\n                                case 18:\n                                    return e.next = 20, $(i, {\n                                        cancelToken: o\n                                    }, Z(r));\n                                case 20:\n                                    b = e.sent, w = b.data, y = b.status, C = b.headers, l = w, c = y, u = C;\n                                case 27:\n                                    x = \"config.yaml\", S = (new Date).getTime() + \".yml\";\n                                    try {\n                                        x = v().basename(i)\n                                    } catch (e) {\n                                        console.error(e.stack)\n                                    }\n                                    /([^\\/]*?)(?:$|\\?)/.test(i) && (x = decodeURIComponent(RegExp.$1.trim())), L = (k = u)[\"profile-update-interval\"], N = void 0 === L ? 0 : L, D = k[\"profile-web-page-url\"], I = void 0 === D ? \"\" : D, E = k[\"content-disposition\"], T = k[\"subscription-userinfo\"], M = void 0 === T ? \"\" : T;\n                                    try {\n                                        (F = null === (P = (0, O.parse)(E)) || void 0 === P || null === (R = P.parameters) || void 0 === R ? void 0 : R.filename) && (x = F)\n                                    } catch (e) {}\n                                    if (B = parseInt(N) || 0, V = h.Z.state.app.profilesPath, W = v().join(V, S), z = -1, 200 !== c) {\n                                        e.next = 63;\n                                        break\n                                    }\n                                    return e.next = 40, Y(i, l, !0);\n                                case 40:\n                                    if (j = e.sent, U = h.Z.state.app.profiles.files, (Q = (G = void 0 === U ? [] : U).findIndex((function(e) {\n                                            return e.url === i\n                                        }))) > -1 ? (X = G[Q], J = H({}, X), ee = J.time, W = v().join(V, ee), h.Z.commit(\"CHANGE_PROFILE\", {\n                                            index: Q,\n                                            profile: H(H({}, X), {}, {\n                                                subInfo: q(M || j),\n                                                homeWeb: I\n                                            })\n                                        }), z = Q) : (te = {\n                                            time: S,\n                                            name: x,\n                                            url: i,\n                                            selected: [],\n                                            interval: B,\n                                            subInfo: q(M || j),\n                                            homeWeb: I\n                                        }, h.Z.commit(\"APPEND_PROFILE\", {\n                                            profile: te\n                                        }), z = G.length), ne = W.slice(0, -4) + \".base.yml\", oe = W.slice(0, -4) + \".change.yml\", !f().existsSync(ne) || !f().existsSync(oe)) {\n                                        e.next = 59;\n                                        break\n                                    }\n                                    if (se = f().readFileSync(ne).toString(), re = f().readFileSync(oe).toString(), !/<{7}[\\S\\s]+?={7}[\\S\\s]+?>{7}/.test(re)) {\n                                        e.next = 51;\n                                        break\n                                    }\n                                    return e.abrupt(\"return\", {\n                                        success: !1,\n                                        message: Lg.diffChangeContainConflict()\n                                    });\n                                case 51:\n                                    if (ae = (0, A.merge)(re, se, j, {\n                                            stringSeparator: /\\n|\\r\\n/\n                                        }), le = ae.conflict, ce = ae.result, f().writeFileSync(ne, j), f().writeFileSync(oe, ce.join(\"\\n\")), !le) {\n                                        e.next = 58;\n                                        break\n                                    }\n                                    return e.abrupt(\"return\", {\n                                        success: !1,\n                                        message: Lg.failMergeProfile()\n                                    });\n                                case 58:\n                                    ie = ce.join(\"\\n\");\n                                case 59:\n                                    return f().writeFileSync(W, ie || j), e.abrupt(\"return\", {\n                                        success: !0,\n                                        targetIndex: z\n                                    });\n                                case 63:\n                                    return e.abrupt(\"return\", {\n                                        success: !1,\n                                        message: Lg.downloadProfile() + \"(\".concat(i, \") \" + Lg.failedErrorHTTP() + \"(\").concat(c, \")\")\n                                    });\n                                case 64:\n                                    e.next = 72;\n                                    break;\n                                case 66:\n                                    if (e.prev = 66, e.t0 = e.catch(1), console.error(e.t0), !e.t0.message) {\n                                        e.next = 72;\n                                        break\n                                    }\n                                    return e.abrupt(\"return\", {\n                                        success: !1,\n                                        message: Lg.downloadProfile() + \"(\".concat(i, \") \" + Lg.failedWithError()).concat(e.t0.message)\n                                    });\n                                case 72:\n                                    return e.abrupt(\"return\", {\n                                        success: !1,\n                                        message: Lg.unknowErr()\n                                    });\n                                case 73:\n                                case \"end\":\n                                    return e.stop()\n                            }\n                        }), e, null, [\n                            [1, 66]\n                        ])\n                    }))), function(e) {\n                        return z.apply(this, arguments)\n                    }),\n                    Y = (j = o()(d().mark((function e(t, n) {\n                        var o, s, r, a, l, c, u, p, m, v, b, y, C, x, S, k, L, N, D, I, E, T, A, O, P, R, F, V, W, z, j = arguments;\n                        return d().wrap((function(e) {\n                            for (;;) switch (e.prev = e.next) {\n                                case 0:\n                                    return o = j.length > 2 && void 0 !== j[2] && j[2], e.prev = 1, r = h.Z.state.app.profiles.files, a = null !== (s = (void 0 === r ? [] : r).find((function(e) {\n                                        return e.url === t\n                                    }))) && void 0 !== s ? s : {\n                                        url: t\n                                    }, e.t0 = _.Console, e.t1 = f(), e.next = 8, h.Z.dispatch(\"getParserLogPath\");\n                                case 8:\n                                    if (e.t2 = e.sent, e.t3 = e.t1.createWriteStream.call(e.t1, e.t2), l = new e.t0(e.t3), c = {\n                                            axios: i(54387),\n                                            yaml: i(11442),\n                                            homeDir: h.Z.state.app.clashPath,\n                                            console: o ? l : console,\n                                            notify: function(e) {\n                                                var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : \"\",\n                                                    i = !(arguments.length > 2 && void 0 !== arguments[2]) || arguments[2];\n                                                (0, M.c0)(e, t, i)\n                                            }\n                                        }, u = h.Z.state.app.settings.profileParsersText, p = [], u) try {\n                                        m = w().parse(u), v = m.parsers, p = (void 0 === v ? [] : v) || []\n                                    } catch (e) {}\n                                    b = p.filter((function(e) {\n                                        var i = e.url,\n                                            n = e.reg;\n                                        return i ? i === t : n ? new RegExp(n).test(t) : void 0\n                                    })), y = n, C = B(b), e.prev = 18, C.s();\n                                case 20:\n                                    if ((x = C.n()).done) {\n                                        e.next = 58;\n                                        break\n                                    }\n                                    if (S = x.value, k = S.code, L = S.file, N = S.yaml, D = S.remote, !k) {\n                                        e.next = 28;\n                                        break\n                                    }\n                                    return I = U(\"'use strict';\\n\".concat(k)), e.next = 27, I.parse(y, c, a);\n                                case 27:\n                                    y = e.sent;\n                                case 28:\n                                    if (!L) {\n                                        e.next = 40;\n                                        break\n                                    }\n                                    if (E = f().readFileSync(L, \"utf-8\"), !/\\.ya?ml$/.test(L)) {\n                                        e.next = 35;\n                                        break\n                                    }\n                                    T = w().parse(E), y = Q(y, T), e.next = 40;\n                                    break;\n                                case 35:\n                                    if (!/\\.js$/.test(L)) {\n                                        e.next = 40;\n                                        break\n                                    }\n                                    return A = U(\"'use strict';\\n\".concat(E), L), e.next = 39, A.parse(y, c, a);\n                                case 39:\n                                    y = e.sent;\n                                case 40:\n                                    if (N && (y = Q(y, N)), !D) {\n                                        e.next = 56;\n                                        break\n                                    }\n                                    if (O = D.url, P = D.cache, R = void 0 !== P && P, O) {\n                                        e.next = 45;\n                                        break\n                                    }\n                                    throw new Error(\"Remote parser url is required\");\n                                case 45:\n                                    return e.next = 47, g().get(O, {\n                                        headers: {\n                                            \"cache-control\": R ? \"max-age=3600\" : \"no-cache\"\n                                        }\n                                    });\n                                case 47:\n                                    if (F = e.sent, V = F.data, 200 === (W = F.status)) {\n                                        e.next = 52;\n                                        break\n                                    }\n                                    throw new Error(\"Remote parser download failed with status: \".concat(W));\n                                case 52:\n                                    return z = U(\"'use strict';\\n\".concat(V)), e.next = 55, z.parse(y, c, a);\n                                case 55:\n                                    y = e.sent;\n                                case 56:\n                                    e.next = 20;\n                                    break;\n                                case 58:\n                                    e.next = 63;\n                                    break;\n                                case 60:\n                                    e.prev = 60, e.t4 = e.catch(18), C.e(e.t4);\n                                case 63:\n                                    return e.prev = 63, C.f(), e.finish(63);\n                                case 66:\n                                    return e.abrupt(\"return\", y);\n                                case 69:\n                                    throw e.prev = 69, e.t5 = e.catch(1), H(H({}, e.t5), {}, {\n                                        message: \"[Parser Error] \" + e.t5.message\n                                    });\n                                case 72:\n                                case \"end\":\n                                    return e.stop()\n                            }\n                        }), e, null, [\n                            [1, 69],\n                            [18, 60, 63, 66]\n                        ])\n                    }))), function(e, t) {\n                        return j.apply(this, arguments)\n                    }),\n                    Q = function(e, t) {\n                        var i = {},\n                            n = t[\"append-rules\"],\n                            o = void 0 === n ? [] : n,\n                            s = t[\"prepend-rules\"],\n                            r = void 0 === s ? [] : s,\n                            a = t[\"append-proxies\"],\n                            l = void 0 === a ? [] : a,\n                            c = t[\"prepend-proxies\"],\n                            d = void 0 === c ? [] : c,\n                            h = t[\"append-proxy-groups\"],\n                            u = void 0 === h ? [] : h,\n                            g = t[\"prepend-proxy-groups\"],\n                            p = void 0 === g ? [] : g,\n                            f = t[\"mix-proxy-providers\"],\n                            m = void 0 === f ? {} : f,\n                            v = t[\"mix-rule-providers\"],\n                            _ = void 0 === v ? {} : v,\n                            b = t[\"mix-object\"],\n                            y = void 0 === b ? {} : b,\n                            x = t.commands,\n                            S = void 0 === x ? [] : x,\n                            k = t[\"key-orders\"],\n                            L = void 0 === k ? [] : k,\n                            N = w().parse(e),\n                            D = C().cloneDeep(N),\n                            I = N.rules,\n                            E = void 0 === I ? [] : I,\n                            M = N.proxies,\n                            A = void 0 === M ? [] : M,\n                            O = N[\"proxy-groups\"],\n                            P = void 0 === O ? [] : O,\n                            R = N[\"proxy-providers\"],\n                            F = void 0 === R ? {} : R,\n                            V = N[\"rule-providers\"],\n                            W = void 0 === V ? {} : V;\n                        (r || o) && (D.rules = r.concat(null != E ? E : []).concat(o)), (d || l) && (D.proxies = d.concat(null != A ? A : []).concat(l)), (p || u) && (D[\"proxy-groups\"] = p.concat(null != P ? P : []).concat(u)), m && (D[\"proxy-providers\"] = H(H({}, F), m)), _ && (D[\"rule-providers\"] = H(H({}, W), _));\n                        var z, j = B(S);\n                        try {\n                            for (j.s(); !(z = j.n()).done;) {\n                                var U = z.value;\n                                T(D, U)\n                            }\n                        } catch (e) {\n                            j.e(e)\n                        } finally {\n                            j.f()\n                        }\n                        return L.length > 0 && (i.sortMapEntries = function(e, t) {\n                            var i = e.key,\n                                n = t.key,\n                                o = L.findIndex((function(e) {\n                                    return e === i.value\n                                })),\n                                s = L.findIndex((function(e) {\n                                    return e === n.value\n                                }));\n                            return (-1 === o ? 1 / 0 : o) - (-1 === s ? 1 / 0 : s)\n                        }), w().stringify(H(H({}, D), y), i)\n                    }\n            },\n            1581: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    lJ: () => m,\n                    ay: () => f,\n                    TX: () => v\n                });\n                var n = i(48926),\n                    o = i.n(n),\n                    s = i(87757),\n                    r = i.n(s),\n                    a = i(8369),\n                    l = i(59273);\n                const c = require(\"original-fs\");\n                var d, h = i(11442),\n                    u = i(75110),\n                    g = i.n(u),\n                    p = i(96206),\n                    f = Symbol(),\n                    m = Symbol(),\n                    v = (d = o()(r().mark((function e(t, n) {\n                        var o, s, d, u, v, _, b, w;\n                        return r().wrap((function(e) {\n                            for (;;) switch (e.prev = e.next) {\n                                case 0:\n                                    return e.t0 = i(54387), e.t1 = i(11442), e.t2 = l.Z.state.app.clashPath, e.t3 = p.Console, e.t4 = c.createWriteStream, e.next = 7, l.Z.dispatch(\"getScriptLogPath\");\n                                case 7:\n                                    if (e.t5 = e.sent, e.t6 = (0, e.t4)(e.t5), e.t7 = new e.t3(e.t6), e.t8 = a.c0, e.t9 = a.vC, e.t10 = a.e8, o = {\n                                            axios: e.t0,\n                                            yaml: e.t1,\n                                            homeDir: e.t2,\n                                            console: e.t7,\n                                            notify: e.t8,\n                                            dialog: e.t9,\n                                            resolveHost: e.t10\n                                        }, s = l.Z.state.app.settings.scriptsText, d = {}, s) try {\n                                        u = (0, h.parse)(s), v = u.scripts, d = v || {}\n                                    } catch (e) {}\n                                    _ = function() {\n                                        var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {},\n                                            t = (null == e ? void 0 : e.code) || \"\",\n                                            i = (null == e ? void 0 : e.file) || \"\";\n                                        if (t) return g()(\"'use strict';\\n\".concat(t)).run;\n                                        if (i) {\n                                            var n = (0, c.readFileSync)(i, \"utf8\");\n                                            return g()(\"'use strict';\\n\".concat(n), i).run\n                                        }\n                                        return function() {\n                                            return \"\"\n                                        }\n                                    }, e.t11 = n, e.next = e.t11 === f ? 21 : e.t11 === m ? 24 : 27;\n                                    break;\n                                case 21:\n                                    return b = d.proxy, _(b)(t, o), e.abrupt(\"break\", 27);\n                                case 24:\n                                    return w = d.profile, _(w)(t, o), e.abrupt(\"break\", 27);\n                                case 27:\n                                case \"end\":\n                                    return e.stop()\n                            }\n                        }), e)\n                    }))), function(e, t) {\n                        return d.apply(this, arguments)\n                    })\n            },\n            44224: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    installService: () => k,\n                    needUpdate: () => N,\n                    status: () => y,\n                    statusService: () => S,\n                    uninstallService: () => L,\n                    updateService: () => D\n                });\n                var n, o, s, r, a = i(48926),\n                    l = i.n(a),\n                    c = i(59713),\n                    d = i.n(c),\n                    h = i(87757),\n                    u = i.n(h),\n                    g = i(83566),\n                    p = i(59273),\n                    f = i(72378),\n                    m = i(71017),\n                    v = i(57147),\n                    _ = i(8369),\n                    b = (i(11442), i(54387)),\n                    w = '<?xml version=\"1.0\" encoding=\"UTF-8\"?>\\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"https://www.apple.com/DTDs/PropertyList-1.0.dtd\">\\n<plist version=\"1.0\">\\n    <dict>\\n        <key>Label</key>\\n        <string>com.lbyczf.cfw.helper</string>\\n        <key>Program</key>\\n        <string>helperPath</string>\\n        <key>RunAtLoad</key>\\n        <true/>\\n        <key>KeepAlive</key>\\n        <true/>\\n        <key>HardResourceLimits</key>\\n        <dict>\\n            <key>NumberOfFiles</key>\\n            <integer>10240</integer>\\n        </dict>\\n        <key>SoftResourceLimits</key>\\n        <dict>\\n            <key>NumberOfFiles</key>\\n            <integer>10240</integer>\\n        </dict>\\n    </dict>\\n</plist>',\n                    y = {\n                        Active: Symbol(),\n                        Inactive: Symbol(),\n                        NonExistent: Symbol(),\n                        Unknown: Symbol()\n                    },\n                    C = function(e) {\n                        return new Promise((function(t, i) {\n                            (0, f.exec)(e, {\n                                name: \"Clash for Windows\"\n                            }, (function(e, n, o) {\n                                e && i(e), o && i(o), n && t(n.toString()), t(\"\")\n                            }))\n                        }))\n                    },\n                    x = function() {\n                        var e, t = p.Z.getters.filesPath,\n                            i = (e = {}, d()(e, g.Ml, \"darwin/x64/service\"), d()(e, g.UD, \"darwin/arm64/service\"), e)[(0, g.$Q)()];\n                        return (0, m.join)(t, i)\n                    },\n                    S = (n = l()(u().mark((function e() {\n                        var t, i, n, o;\n                        return u().wrap((function(e) {\n                            for (;;) switch (e.prev = e.next) {\n                                case 0:\n                                    if (e.prev = 0, t = p.Z.state.app.clashPath, \"\" === (i = void 0 === t ? \"\" : t) || (0, v.existsSync)((0, m.join)(i, \"service\"))) {\n                                        e.next = 4;\n                                        break\n                                    }\n                                    return e.abrupt(\"return\", y.Inactive);\n                                case 4:\n                                    return e.next = 6, b.get(\"http://127.0.0.1:53000/ping\", {\n                                        timeout: 5e3\n                                    });\n                                case 6:\n                                    return n = e.sent, o = n.status, e.abrupt(\"return\", 200 === o ? y.Active : y.Inactive);\n                                case 11:\n                                    e.prev = 11, e.t0 = e.catch(0);\n                                case 13:\n                                    return e.abrupt(\"return\", y.Unknown);\n                                case 14:\n                                case \"end\":\n                                    return e.stop()\n                            }\n                        }), e, null, [\n                            [0, 11]\n                        ])\n                    }))), function() {\n                        return n.apply(this, arguments)\n                    }),\n                    k = (o = l()(u().mark((function e() {\n                        var t, i, n, o;\n                        return u().wrap((function(e) {\n                            for (;;) switch (e.prev = e.next) {\n                                case 0:\n                                    return t = p.Z.state.app.clashPath, i = (0, m.join)(t, \"service\"), (0, v.existsSync)(i) || (0, v.mkdirSync)(i), n = (0, m.join)(t, \"service\", \"clash-core-service\"), o = \"/Library/LaunchDaemons/com.lbyczf.cfw.helper.plist\", e.next = 7, C('cp \"'.concat((0, m.join)(x(), \"clash-core-service\"), '\" \"').concat((0, m.join)(n), '\" ; chmod 655 \"').concat(n, '\" ; chown root:wheel \"').concat(n, '\" ;  echo \"').concat(w.replace(\"helperPath\", n), '\" > ').concat(o, \" ; launchctl load -w \").concat(o));\n                                case 7:\n                                case \"end\":\n                                    return e.stop()\n                            }\n                        }), e)\n                    }))), function() {\n                        return o.apply(this, arguments)\n                    }),\n                    L = (s = l()(u().mark((function e() {\n                        var t, i;\n                        return u().wrap((function(e) {\n                            for (;;) switch (e.prev = e.next) {\n                                case 0:\n                                    return t = \"/Library/LaunchDaemons/com.lbyczf.cfw.helper.plist\", i = (0, m.join)(p.Z.state.app.clashPath, \"service\"), e.next = 4, C(\"launchctl unload \".concat(t, \" ; rm \").concat(t) + ((0, v.existsSync)(i) ? \" ; rm -rf \".concat(i) : \"\"));\n                                case 4:\n                                case \"end\":\n                                    return e.stop()\n                            }\n                        }), e)\n                    }))), function() {\n                        return s.apply(this, arguments)\n                    }),\n                    N = function() {\n                        var e = p.Z.state.app.clashPath,\n                            t = (0, m.join)(e, \"service\");\n                        if (!(0, v.existsSync)(t)) return !1;\n                        var i = (0, m.join)(e, \"service\", \"clash-core-service\");\n                        if (!(0, v.existsSync)(i)) return !1;\n                        var n = (0, m.join)(x(), \"clash-core-service\"),\n                            o = function(e) {\n                                return (0, _.Ll)((0, v.readFileSync)(e))\n                            };\n                        return o(i) !== o(n)\n                    },\n                    D = (r = l()(u().mark((function e() {\n                        var t, i, n, o;\n                        return u().wrap((function(e) {\n                            for (;;) switch (e.prev = e.next) {\n                                case 0:\n                                    return t = p.Z.state.app.clashPath, i = (0, m.join)(t, \"service\"), (0, v.existsSync)(i) || (0, v.mkdirSync)(i), n = (0, m.join)(t, \"service\", \"clash-core-service\"), o = \"/Library/LaunchDaemons/com.lbyczf.cfw.helper.plist\", e.next = 7, C('cp \"'.concat((0, m.join)(x(), \"clash-core-service\"), '\" \"').concat((0, m.join)(n), '\" ; chmod 611 \"').concat(n, '\" ; chown root:wheel \"').concat(n, '\" ; launchctl unload ').concat(o, ' ; echo \"').concat(w.replace(\"helperPath\", n), '\" > ').concat(o, \" ; launchctl load -w \").concat(o));\n                                case 7:\n                                case \"end\":\n                                    return e.stop()\n                            }\n                        }), e)\n                    }))), function() {\n                        return r.apply(this, arguments)\n                    })\n            },\n            33130: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    installService: () => N,\n                    needUpdate: () => I,\n                    status: () => C,\n                    statusService: () => L,\n                    uninstallService: () => D,\n                    updateService: () => E\n                });\n                var n = i(48926),\n                    o = i.n(n),\n                    s = i(59713),\n                    r = i.n(s),\n                    a = i(87757),\n                    l = i.n(a),\n                    c = i(83566),\n                    d = i(59273),\n                    h = i(72378),\n                    u = i(71017),\n                    g = i(57147),\n                    p = i(8369),\n                    f = (i(11442), i(54387)),\n                    m = i(72298);\n                require(\"fs-extra\");\n                var v, _, b, w, y, C = {\n                        Active: Symbol(),\n                        Inactive: Symbol(),\n                        NonExistent: Symbol(),\n                        Unknown: Symbol()\n                    },\n                    x = function(e) {\n                        return new Promise((function(t, i) {\n                            (0, h.exec)(e, {\n                                name: \"Clash for Windows\"\n                            }, (function(e, n, o) {\n                                e && i(e), o && i(o), n && t(n.toString()), t(\"\")\n                            }))\n                        }))\n                    },\n                    S = function() {\n                        var e, t = d.Z.getters.filesPath,\n                            i = (e = {}, r()(e, c.bV, \"linux/x64/service\"), r()(e, c.tU, \"linux/arm64/service\"), e)[(0, c.$Q)()];\n                        return (0, u.join)(t, i)\n                    },\n                    k = (v = o()(l().mark((function e() {\n                        return l().wrap((function(e) {\n                            for (;;) switch (e.prev = e.next) {\n                                case 0:\n                                    return e.next = 2, m.ipcRenderer.invoke(\"app\", \"getPath\", \"temp\");\n                                case 2:\n                                    return e.abrupt(\"return\", e.sent);\n                                case 3:\n                                case \"end\":\n                                    return e.stop()\n                            }\n                        }), e)\n                    }))), function() {\n                        return v.apply(this, arguments)\n                    }),\n                    L = (_ = o()(l().mark((function e() {\n                        var t, i, n, o;\n                        return l().wrap((function(e) {\n                            for (;;) switch (e.prev = e.next) {\n                                case 0:\n                                    if (e.prev = 0, t = d.Z.state.app.clashPath, \"\" === (i = void 0 === t ? \"\" : t) || (0, g.existsSync)((0, u.join)(i, \"service\"))) {\n                                        e.next = 4;\n                                        break\n                                    }\n                                    return e.abrupt(\"return\", C.Inactive);\n                                case 4:\n                                    return e.next = 6, f.get(\"http://127.0.0.1:53000/ping\", {\n                                        timeout: 5e3\n                                    });\n                                case 6:\n                                    return n = e.sent, o = n.status, e.abrupt(\"return\", 200 === o ? C.Active : C.Inactive);\n                                case 11:\n                                    e.prev = 11, e.t0 = e.catch(0);\n                                case 13:\n                                    return e.abrupt(\"return\", C.Unknown);\n                                case 14:\n                                case \"end\":\n                                    return e.stop()\n                            }\n                        }), e, null, [\n                            [0, 11]\n                        ])\n                    }))), function() {\n                        return _.apply(this, arguments)\n                    }),\n                    N = (b = o()(l().mark((function e() {\n                        var t, i, n, o;\n                        return l().wrap((function(e) {\n                            for (;;) switch (e.prev = e.next) {\n                                case 0:\n                                    return t = d.Z.state.app.clashPath, i = (0, u.join)(t, \"service\"), (0, g.existsSync)(i) || (0, g.mkdirSync)(i), n = (0, u.join)(t, \"service\", \"clash-core-service\"), o = (0, u.join)(\"/usr/lib/systemd/system\", \"clash-core-service.service\"), e.next = 7, x('cp \"'.concat((0, u.join)(S(), \"clash-core-service\"), '\" \"').concat((0, u.join)(n), '\" ; chmod 655 \"').concat((0, u.join)(n), '\" ; chown root \"').concat((0, u.join)(n), '\" ; echo \"').concat(\"[Unit]\\nDescription=Clash core service created by Clash for Windows\\nAfter=network-online.target nftables.service iptables.service\\n\\n[Service]\\nType=simple\\nExecStart=helperPath\\nRestart=always\\nRestartSec=5\\n\\n[Install]\\nWantedBy=multi-user.target\".replace(\"helperPath\", n), '\" > ').concat(o, \" ; systemctl enable clash-core-service; systemctl start clash-core-service\"));\n                                case 7:\n                                case \"end\":\n                                    return e.stop()\n                            }\n                        }), e)\n                    }))), function() {\n                        return b.apply(this, arguments)\n                    }),\n                    D = (w = o()(l().mark((function e() {\n                        var t, i, n, o;\n                        return l().wrap((function(e) {\n                            for (;;) switch (e.prev = e.next) {\n                                case 0:\n                                    return e.prev = 0, e.t0 = u.join, e.next = 4, k();\n                                case 4:\n                                    if (e.t1 = e.sent, t = (0, e.t0)(e.t1, \"cfw-clash-service-installer\"), !(0, g.existsSync)(t)) {\n                                        e.next = 10;\n                                        break\n                                    }\n                                    return e.next = 9, x(\"\".concat(t, \"/installer.sh uninstall\"));\n                                case 9:\n                                    (0, g.existsSync)(t) && (0, p.uR)(t);\n                                case 10:\n                                    e.next = 14;\n                                    break;\n                                case 12:\n                                    e.prev = 12, e.t2 = e.catch(0);\n                                case 14:\n                                    return i = (0, u.join)(\"/usr/lib/systemd/system\", \"clash-core-service.service\"), n = d.Z.state.app.clashPath, o = (0, u.join)(n, \"service\"), e.next = 19, x(\"systemctl stop clash-core-service; systemctl disable clash-core-service; rm -rf \".concat(i) + ((0, g.existsSync)(o) ? \" ; rm -rf \".concat(o) : \"\"));\n                                case 19:\n                                case \"end\":\n                                    return e.stop()\n                            }\n                        }), e, null, [\n                            [0, 12]\n                        ])\n                    }))), function() {\n                        return w.apply(this, arguments)\n                    }),\n                    I = function() {\n                        var e = d.Z.state.app.clashPath,\n                            t = (0, u.join)(e, \"service\");\n                        if (!(0, g.existsSync)(t)) return !1;\n                        var i = (0, u.join)(e, \"service\", \"clash-core-service\");\n                        if (!(0, g.existsSync)(i)) return !1;\n                        var n = (0, u.join)(S(), \"clash-core-service\"),\n                            o = function(e) {\n                                return (0, p.Ll)((0, g.readFileSync)(e))\n                            };\n                        return o(i) !== o(n)\n                    },\n                    E = (y = o()(l().mark((function e() {\n                        return l().wrap((function(e) {\n                            for (;;) switch (e.prev = e.next) {\n                                case 0:\n                                    return e.next = 2, D();\n                                case 2:\n                                    return e.next = 4, N();\n                                case 4:\n                                case \"end\":\n                                    return e.stop()\n                            }\n                        }), e)\n                    }))), function() {\n                        return y.apply(this, arguments)\n                    })\n            },\n            34668: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    installService: () => A,\n                    needUpdate: () => R,\n                    status: () => S,\n                    statusService: () => M,\n                    uninstallService: () => O,\n                    updateService: () => F\n                });\n                var n, o, s, r, a, l, c, d = i(48926),\n                    h = i.n(d),\n                    u = i(59713),\n                    g = i.n(u),\n                    p = i(87757),\n                    f = i.n(p),\n                    m = i(83566),\n                    v = i(59273),\n                    _ = i(54387),\n                    b = i.n(_),\n                    w = i(72378),\n                    y = i(71017),\n                    C = i(57147),\n                    x = i(8369),\n                    S = (i(11442), {\n                        Active: Symbol(),\n                        Inactive: Symbol(),\n                        NonExistent: Symbol(),\n                        Unknown: Symbol()\n                    }),\n                    k = process.env.ProgramW6432 || process.env.ProgramFiles || \"C:\\\\Program Files\",\n                    L = (0, y.join)(k, \"Clash for Windows Service\"),\n                    N = function(e) {\n                        return new Promise((function(t, i) {\n                            (0, w.exec)(e, {\n                                name: \"ClashforWindows\"\n                            }, (function(e, n, o) {\n                                e && i(e), o && i(o), n && t(n.toString()), t(\"\")\n                            }))\n                        }))\n                    },\n                    D = function() {\n                        var e, t = v.Z.getters.filesPath,\n                            i = (e = {}, g()(e, m.Ap, \"win/ia32/service\"), g()(e, m.J4, \"win/x64/service\"), g()(e, m.Vm, \"win/arm64/service\"), e)[(0, m.$Q)()];\n                        return (0, y.join)(t, i)\n                    },\n                    I = (n = h()(f().mark((function e() {\n                        var t, i, n, o, s, r, a, l, c, d = arguments;\n                        return f().wrap((function(e) {\n                            for (;;) switch (e.prev = e.next) {\n                                case 0:\n                                    if (t = d.length > 0 && void 0 !== d[0] ? d[0] : [], n = (i = d.length > 1 && void 0 !== d[1] ? d[1] : {}).runAfter, o = void 0 === n ? \"\" : n, s = i.runBefore, r = void 0 === s ? \"\" : s, !(0, m.Kr)()) {\n                                        e.next = 9;\n                                        break\n                                    }\n                                    return a = (0, y.join)(v.Z.state.app.clashPath, \"service\"), l = t.map((function(e) {\n                                        var t = e.cmd,\n                                            i = e.options,\n                                            n = void 0 === i ? [] : i;\n                                        return '\"'.concat((0, y.join)(a, \"service.exe\"), '\" ').concat(t, \" \").concat(n.join(\" \"))\n                                    })).join(\" & \"), e.next = 7, N([r, l, o].filter((function(e) {\n                                        return e\n                                    })).join(\" & \"));\n                                case 7:\n                                    return c = e.sent, e.abrupt(\"return\", c);\n                                case 9:\n                                    return e.abrupt(\"return\", \"\");\n                                case 10:\n                                case \"end\":\n                                    return e.stop()\n                            }\n                        }), e)\n                    }))), function() {\n                        return n.apply(this, arguments)\n                    }),\n                    E = (o = h()(f().mark((function e() {\n                        var t, i, n, o, s, r, a, l, c, d = arguments;\n                        return f().wrap((function(e) {\n                            for (;;) switch (e.prev = e.next) {\n                                case 0:\n                                    if (t = d.length > 0 && void 0 !== d[0] ? d[0] : [], n = (i = d.length > 1 && void 0 !== d[1] ? d[1] : {}).runAfter, o = void 0 === n ? \"\" : n, s = i.runBefore, r = void 0 === s ? \"\" : s, !(0, m.Kr)()) {\n                                        e.next = 9;\n                                        break\n                                    }\n                                    return a = L, l = t.map((function(e) {\n                                        var t = e.cmd,\n                                            i = e.options,\n                                            n = void 0 === i ? [] : i;\n                                        return '\"'.concat((0, y.join)(a, \"service.exe\"), '\" ').concat(t, \" \").concat(n.join(\" \"))\n                                    })).join(\" & \"), e.next = 7, N([r, l].filter((function(e) {\n                                        return e\n                                    })).join(\" & \") + (o ? \" && \".concat(o) : \"\"));\n                                case 7:\n                                    return c = e.sent, e.abrupt(\"return\", c);\n                                case 9:\n                                    return e.abrupt(\"return\", \"\");\n                                case 10:\n                                case \"end\":\n                                    return e.stop()\n                            }\n                        }), e)\n                    }))), function() {\n                        return o.apply(this, arguments)\n                    }),\n                    T = (s = h()(f().mark((function e() {\n                        var t, i, n, o, s, r, a, l, c = arguments;\n                        return f().wrap((function(e) {\n                            for (;;) switch (e.prev = e.next) {\n                                case 0:\n                                    if (t = c.length > 0 && void 0 !== c[0] ? c[0] : [], n = (i = c.length > 1 && void 0 !== c[1] ? c[1] : {}).runAfter, o = void 0 === n ? \"\" : n, s = i.runBefore, r = void 0 === s ? \"\" : s, !(0, m.Kr)()) {\n                                        e.next = 8;\n                                        break\n                                    }\n                                    return a = t.map((function(e) {\n                                        var t = e.cmd,\n                                            i = e.options,\n                                            n = void 0 === i ? [] : i;\n                                        return \"schtasks /\".concat(t, ' /tn \"Clash Core Service\" ').concat(n.join(\" \"))\n                                    })).join(\" & \"), e.next = 6, N([r, a].filter((function(e) {\n                                        return e\n                                    })).join(\" & \") + (o ? \" && \".concat(o) : \"\"));\n                                case 6:\n                                    return l = e.sent, e.abrupt(\"return\", l);\n                                case 8:\n                                    return e.abrupt(\"return\", \"\");\n                                case 9:\n                                case \"end\":\n                                    return e.stop()\n                            }\n                        }), e)\n                    }))), function() {\n                        return s.apply(this, arguments)\n                    }),\n                    M = (r = h()(f().mark((function e() {\n                        var t, i;\n                        return f().wrap((function(e) {\n                            for (;;) switch (e.prev = e.next) {\n                                case 0:\n                                    return e.prev = 0, e.next = 3, b().get(\"http://127.0.0.1:53000/ping\", {\n                                        timeout: 5e3\n                                    });\n                                case 3:\n                                    return t = e.sent, i = t.status, e.abrupt(\"return\", 200 === i ? S.Active : S.Inactive);\n                                case 8:\n                                    e.prev = 8, e.t0 = e.catch(0);\n                                case 10:\n                                    return e.abrupt(\"return\", S.Unknown);\n                                case 11:\n                                case \"end\":\n                                    return e.stop()\n                            }\n                        }), e, null, [\n                            [0, 8]\n                        ])\n                    }))), function() {\n                        return r.apply(this, arguments)\n                    }),\n                    A = (a = h()(f().mark((function e() {\n                        var t, i, n = arguments;\n                        return f().wrap((function(e) {\n                            for (;;) switch (e.prev = e.next) {\n                                case 0:\n                                    if (t = n.length > 0 && void 0 !== n[0] ? n[0] : 0, i = {\n                                            serviceExePath: (0, y.join)(D(), \"clash-core-service.exe\"),\n                                            winswExePath: (0, y.join)(D(), \"service.exe\"),\n                                            configPath: (0, y.join)(D(), \"../../common/service.yml\"),\n                                            schtaskConfigPath: (0, y.join)(D(), \"../../common/schtasks.xml\")\n                                        }, 0 !== t) {\n                                        e.next = 5;\n                                        break\n                                    }\n                                    return e.next = 5, T([{\n                                        cmd: \"create\",\n                                        options: ['/ru \"SYSTEM\"', '/xml \"'.concat((0, y.join)(L, \"schtasks.xml\"), '\"')]\n                                    }, {\n                                        cmd: \"change\",\n                                        options: ['/tr \"\\\\\"'.concat((0, y.join)(L, \"clash-core-service.exe\"), '\\\\\"\"')]\n                                    }, {\n                                        cmd: \"run\"\n                                    }], {\n                                        runBefore: 'mkdir \"'.concat(L, '\" & copy \"').concat(i.serviceExePath, '\" \"').concat(L, '\" /Y & copy \"').concat(i.schtaskConfigPath, '\" \"').concat(L, '\" /Y ')\n                                    });\n                                case 5:\n                                    if (1 !== t) {\n                                        e.next = 8;\n                                        break\n                                    }\n                                    return e.next = 8, E([{\n                                        cmd: \"install\"\n                                    }, {\n                                        cmd: \"start\"\n                                    }], {\n                                        runBefore: 'mkdir \"'.concat(L, '\" & copy \"').concat(i.serviceExePath, '\" \"').concat(L, '\" /Y & copy \"').concat(i.winswExePath, '\" \"').concat(L, '\" /Y & copy \"').concat(i.configPath, '\" \"').concat(L, '\" /Y ')\n                                    });\n                                case 8:\n                                case \"end\":\n                                    return e.stop()\n                            }\n                        }), e)\n                    }))), function() {\n                        return a.apply(this, arguments)\n                    }),\n                    O = (l = h()(f().mark((function e() {\n                        var t, i;\n                        return f().wrap((function(e) {\n                            for (;;) switch (e.prev = e.next) {\n                                case 0:\n                                    if (t = {\n                                            serviceExePath: (0, y.join)(D(), \"clash-core-service.exe\"),\n                                            winswExePath: (0, y.join)(D(), \"service.exe\"),\n                                            configPath: (0, y.join)(D(), \"../../common/service.yml\")\n                                        }, i = (0, y.join)(v.Z.state.app.clashPath, \"service\"), !P()) {\n                                        e.next = 7;\n                                        break\n                                    }\n                                    return e.next = 5, I([{\n                                        cmd: \"stop\"\n                                    }, {\n                                        cmd: \"uninstall\"\n                                    }], {\n                                        runAfter: 'icacls.exe \"'.concat(i, '\" /remove:d Everyone & rmdir /s /q \"').concat(i, '\"')\n                                    });\n                                case 5:\n                                case 10:\n                                    e.next = 14;\n                                    break;\n                                case 7:\n                                    if (!(0, C.existsSync)((0, y.join)(L, \"schtasks.xml\"))) {\n                                        e.next = 12;\n                                        break\n                                    }\n                                    return e.next = 10, T([{\n                                        cmd: \"end\"\n                                    }, {\n                                        cmd: \"delete\",\n                                        options: [\"/F\"]\n                                    }], {\n                                        runAfter: 'timeout /t 2 & rmdir \"'.concat(L, '\" /s /q')\n                                    });\n                                case 12:\n                                    return e.next = 14, E([{\n                                        cmd: \"stop\"\n                                    }, {\n                                        cmd: \"uninstall\"\n                                    }], {\n                                        runBefore: 'copy \"'.concat(t.configPath, '\" \"').concat(L, '\" /Y '),\n                                        runAfter: 'timeout /t 2 & rmdir \"'.concat(L, '\" /s /q')\n                                    });\n                                case 14:\n                                case \"end\":\n                                    return e.stop()\n                            }\n                        }), e)\n                    }))), function() {\n                        return l.apply(this, arguments)\n                    }),\n                    P = function() {\n                        var e = (0, y.join)(v.Z.state.app.clashPath, \"service\"),\n                            t = (0, y.join)(e, \"service.yml\"),\n                            i = (0, y.join)(e, \"service.exe\");\n                        return (0, C.existsSync)(e) && (0, C.existsSync)(t) && (0, C.existsSync)(i)\n                    },\n                    R = function() {\n                        if (P()) return !0;\n                        if (!(0, C.existsSync)(L)) return !1;\n                        var e = (0, y.join)(L, \"clash-core-service.exe\");\n                        if (!(0, C.existsSync)(e)) return !1;\n                        var t = (0, y.join)(D(), \"clash-core-service.exe\"),\n                            i = function(e) {\n                                return (0, x.Ll)((0, C.readFileSync)(e))\n                            };\n                        return i(e) !== i(t)\n                    },\n                    F = (c = h()(f().mark((function e() {\n                        var t;\n                        return f().wrap((function(e) {\n                            for (;;) switch (e.prev = e.next) {\n                                case 0:\n                                    return t = (0, C.existsSync)((0, y.join)(L, \"schtasks.xml\")) ? 0 : 1, e.next = 3, O();\n                                case 3:\n                                    return e.next = 5, A(t);\n                                case 5:\n                                case \"end\":\n                                    return e.stop()\n                            }\n                        }), e)\n                    }))), function() {\n                        return c.apply(this, arguments)\n                    })\n            },\n            58511: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    S: () => c\n                });\n                var n = i(63038),\n                    o = i.n(n),\n                    s = i(32081),\n                    r = i(83566);\n\n                function a(e, t) {\n                    var i = \"undefined\" != typeof Symbol && e[Symbol.iterator] || e[\"@@iterator\"];\n                    if (!i) {\n                        if (Array.isArray(e) || (i = function(e, t) {\n                                if (!e) return;\n                                if (\"string\" == typeof e) return l(e, t);\n                                var i = Object.prototype.toString.call(e).slice(8, -1);\n                                \"Object\" === i && e.constructor && (i = e.constructor.name);\n                                if (\"Map\" === i || \"Set\" === i) return Array.from(e);\n                                if (\"Arguments\" === i || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)) return l(e, t)\n                            }(e)) || t && e && \"number\" == typeof e.length) {\n                            i && (e = i);\n                            var n = 0,\n                                o = function() {};\n                            return {\n                                s: o,\n                                n: function() {\n                                    return n >= e.length ? {\n                                        done: !0\n                                    } : {\n                                        done: !1,\n                                        value: e[n++]\n                                    }\n                                },\n                                e: function(e) {\n                                    throw e\n                                },\n                                f: o\n                            }\n                        }\n                        throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")\n                    }\n                    var s, r = !0,\n                        a = !1;\n                    return {\n                        s: function() {\n                            i = i.call(e)\n                        },\n                        n: function() {\n                            var e = i.next();\n                            return r = e.done, e\n                        },\n                        e: function(e) {\n                            a = !0, s = e\n                        },\n                        f: function() {\n                            try {\n                                r || null == i.return || i.return()\n                            } finally {\n                                if (a) throw s\n                            }\n                        }\n                    }\n                }\n\n                function l(e, t) {\n                    (null == t || t > e.length) && (t = e.length);\n                    for (var i = 0, n = new Array(t); i < t; i++) n[i] = e[i];\n                    return n\n                }\n                var c = function() {\n                    if ((0, r.Kr)() || (0, r.V5)()) {\n                        var e, t = (0, r.Kr)() ? \"chcp 65001 && netsh wlan show interfaces\" : \"/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport --getinfo\",\n                            i = (0, s.execSync)(t).toString().split(\"\\n\"),\n                            n = [],\n                            l = {},\n                            c = a(i.entries());\n                        try {\n                            for (c.s(); !(e = c.n()).done;) {\n                                var d = o()(e.value, 2),\n                                    h = d[0],\n                                    u = d[1].split(\": \"),\n                                    g = o()(u, 2),\n                                    p = g[0],\n                                    f = g[1];\n                                if (p && f) {\n                                    var m = p.trim(),\n                                        v = f.trim();\n                                    if (!m || !v) continue;\n                                    m in l && (n.push(l), l = {}), l[m] = v\n                                }\n                                h === i.length - 1 && (n.push(l), l = {})\n                            }\n                        } catch (e) {\n                            c.e(e)\n                        } finally {\n                            c.f()\n                        }\n                        return n\n                    }\n                    return []\n                }\n            },\n            19102: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    p: () => f\n                });\n                var n, o = i(59713),\n                    s = i.n(o),\n                    r = i(48926),\n                    a = i.n(r),\n                    l = i(87757),\n                    c = i.n(l),\n                    d = i(59273),\n                    h = i(83566),\n                    u = i(54387),\n                    g = i.n(u),\n                    p = i(71017),\n                    f = (n = a()(c().mark((function e() {\n                        var t, i, n, o, r, a, l, u, f = arguments;\n                        return c().wrap((function(e) {\n                            for (;;) switch (e.prev = e.next) {\n                                case 0:\n                                    if (i = f.length > 0 && void 0 !== f[0] ? f[0] : [], (0, h.V5)()) {\n                                        e.next = 3;\n                                        break\n                                    }\n                                    return e.abrupt(\"return\", !1);\n                                case 3:\n                                    return n = d.Z.state.app.isDevMode ? (0, p.join)((0, p.resolve)(\"./\"), \"/static/files\") : d.Z.getters.filesPath, o = (t = {}, s()(t, h.UD, \"arm64\"), s()(t, h.Ml, \"x64\"), t)[(0, h.Vk)()], r = (0, p.join)(n, \"darwin\", o), e.prev = 6, e.next = 9, g().post(\"http://127.0.0.1:53000/command\", {\n                                        path: (0, p.join)(r, \"sysproxy\"),\n                                        args: i\n                                    });\n                                case 9:\n                                    return a = e.sent, l = a.status, u = a.data, e.abrupt(\"return\", {\n                                        success: 200 === l,\n                                        output: u\n                                    });\n                                case 15:\n                                    e.prev = 15, e.t0 = e.catch(6);\n                                case 17:\n                                    return e.abrupt(\"return\", {\n                                        success: !1,\n                                        data: \"\"\n                                    });\n                                case 18:\n                                case \"end\":\n                                    return e.stop()\n                            }\n                        }), e, null, [\n                            [6, 15]\n                        ])\n                    }))), function() {\n                        return n.apply(this, arguments)\n                    })\n            },\n            84695: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    _: () => m\n                });\n                var n, o, s = i(48926),\n                    r = i.n(s),\n                    a = i(87757),\n                    l = i.n(a),\n                    c = i(83566),\n                    d = i(32081),\n                    h = i(71017),\n                    u = i(59273),\n                    g = i(72298),\n                    p = (i(54387), \"cfw-update\".concat((0, c.V5)() ? \".dmg\" : \".exe\")),\n                    f = (n = r()(l().mark((function e(t) {\n                        var i, n;\n                        return l().wrap((function(e) {\n                            for (;;) switch (e.prev = e.next) {\n                                case 0:\n                                    return e.next = 2, g.ipcRenderer.invoke(\"app\", \"getPath\", \"temp\");\n                                case 2:\n                                    return i = e.sent, n = (0, h.join)(i, p), e.next = 6, g.ipcRenderer.invoke(\"start-download\", t, n);\n                                case 6:\n                                    return u.Z.commit(\"SET_UPDATE_DOWNLOAD_PROGRESS\", {\n                                        progress: .01\n                                    }), e.next = 9, new Promise((function(e, t) {\n                                        g.ipcRenderer.on(\"download\", (function(i, o, s) {\n                                            \"downloading\" === o && u.Z.commit(\"SET_UPDATE_DOWNLOAD_PROGRESS\", {\n                                                progress: s\n                                            }), \"completed\" === o && (u.Z.commit(\"SET_UPDATE_DOWNLOAD_PROGRESS\", {\n                                                progress: null\n                                            }), e(n)), \"failed\" === o && (u.Z.commit(\"SET_UPDATE_DOWNLOAD_PROGRESS\", {\n                                                progress: null\n                                            }), t(s))\n                                        }))\n                                    }));\n                                case 9:\n                                    return e.abrupt(\"return\", e.sent);\n                                case 10:\n                                case \"end\":\n                                    return e.stop()\n                            }\n                        }), e)\n                    }))), function(e) {\n                        return n.apply(this, arguments)\n                    }),\n                    m = (o = r()(l().mark((function e(t, i) {\n                        var n, o, s, r;\n                        return l().wrap((function(e) {\n                            for (;;) switch (e.prev = e.next) {\n                                case 0:\n                                    return e.next = 2, f(t);\n                                case 2:\n                                    if (n = e.sent) {\n                                        e.next = 5;\n                                        break\n                                    }\n                                    return e.abrupt(\"return\");\n                                case 5:\n                                    return e.next = 7, g.ipcRenderer.invoke(\"app\", \"getName\");\n                                case 7:\n                                    return o = e.sent, (0, c.V5)() && (s = (0, d.execSync)(\"hdiutil attach '\".concat(n, \"' -nobrowse\")), /\\/Volumes\\/(Clash for Windows.+?)\\n/.test(s) && (r = RegExp.$1, (0, d.execSync)(\"rm -rf '/Applications/\".concat(o, \".app' && cp -R '/Volumes/\").concat(r, \"/\").concat(o, \".app' '/Applications/\").concat(o, \".app'\")), (0, d.execSync)(\"hdiutil eject '/Volumes/\".concat(r, \"'\"), {\n                                        stdio: [\"ignore\", \"ignore\", \"ignore\"]\n                                    }))), e.abrupt(\"return\", n);\n                                case 10:\n                                case \"end\":\n                                    return e.stop()\n                            }\n                        }), e)\n                    }))), function(e, t) {\n                        return o.apply(this, arguments)\n                    })\n            },\n            8359: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    Z: () => n\n                });\n                const n = (0, i(83566).V5)() ? [\"127.0.0.1\", \"192.168.0.0/16\", \"10.0.0.0/8\", \"172.16.0.0/12\", \"100.64.0.0/10\", \"17.0.0.0/8\", \"localhost\", \"*.local\", \"169.254.0.0/16\", \"224.0.0.0/4\", \"240.0.0.0/4\"] : [\"localhost\", \"127.*\", \"10.*\", \"172.16.*\", \"172.17.*\", \"172.18.*\", \"172.19.*\", \"172.20.*\", \"172.21.*\", \"172.22.*\", \"172.23.*\", \"172.24.*\", \"172.25.*\", \"172.26.*\", \"172.27.*\", \"172.28.*\", \"172.29.*\", \"172.30.*\", \"172.31.*\", \"192.168.*\", \"<local>\"]\n            },\n            10870: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    Z: () => n\n                });\n                const n = 'function FindProxyForURL(url, host) {\\n  return \"PROXY 127.0.0.1:%mixed-port%; SOCKS5 127.0.0.1:%mixed-port%; DIRECT;\"\\n}'\n            },\n            83566: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    $Q: () => g,\n                    Ap: () => o,\n                    IJ: () => m,\n                    J4: () => n,\n                    Kr: () => p,\n                    Ml: () => a,\n                    UD: () => l,\n                    V5: () => f,\n                    Vk: () => u,\n                    Vm: () => r,\n                    bV: () => c,\n                    tU: () => d\n                });\n                var n = Symbol(),\n                    o = Symbol(),\n                    s = Symbol(),\n                    r = Symbol(),\n                    a = Symbol(),\n                    l = Symbol(),\n                    c = Symbol(),\n                    d = Symbol(),\n                    h = Symbol(),\n                    u = function() {\n                        if (\"win32\" === process.platform) {\n                            if (\"x64\" === process.arch) return n;\n                            if (\"ia32\" === process.arch) return o;\n                            if (\"arm\" === process.arch) return s;\n                            if (\"arm64\" === process.arch) return r\n                        }\n                        if (\"darwin\" === process.platform) {\n                            if (\"x64\" === process.arch) return a;\n                            if (\"arm64\" === process.arch) return l\n                        }\n                        if (\"linux\" === process.platform) {\n                            if (\"x64\" === process.arch) return c;\n                            if (\"arm64\" === process.arch) return d\n                        }\n                        return h\n                    },\n                    g = function() {\n                        var e = u();\n                        return [o, s].includes(e) ? o : e\n                    },\n                    p = function() {\n                        return [s, r, o, n].includes(u())\n                    },\n                    f = function() {\n                        return [a, l].includes(u())\n                    },\n                    m = function() {\n                        return [c, d].includes(u())\n                    }\n            },\n            33182: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    Z: () => o,\n                    r: () => n\n                });\n                var n = {\n                        INIT: Symbol(),\n                        DEFAULT: Symbol(),\n                        SYSTEM_PROXY: Symbol()\n                    },\n                    o = {\n                        CONNECTED: Symbol(),\n                        DISCONNECTED: Symbol()\n                    }\n            },\n            81518: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    Z: () => n\n                });\n                const n = {\n                    SYSTEM_PROXY: \"systemProxy\",\n                    LAST_CLASH_PID: \"lastClashPID\",\n                    LAST_USER_EXE_PIDS: \"lastUserExePids\",\n                    LAST_LOG_FILE_PATH: \"lastLogFilePath\",\n                    AD_IMAGES: \"adImages\",\n                    CONNECTION_ORDER_INDEX: \"connectionOrderIndex\",\n                    CONNECTION_ORDER_REVERSE_TAGS: \"connectionOrderReverseTags\",\n                    AUTO_LAUNCH: \"autoLaunch\",\n                    GEOIP_URL: \"geoipDownloadRawURL\",\n                    GEOIP_TOKEN: \"geoipDownloadToken\",\n                    TAP_INFO: \"tapInfo\",\n                    PROXY_SHOW_SEC_IDXS: \"proxyShowSecIdxs\",\n                    PROXY_HIDE_TIMEOUT_SEC_NAMES: \"proxyHideTimeoutSecNames\",\n                    PROXY_FILTER_KEYWORD: \"proxyFilterKeyword\",\n                    IS_PIN_ENABLED: \"isPinEnabled\",\n                    MENU_ITEM_ORDER: \"menuItemOrder\",\n                    CURRENT_ROUTE_PATH: \"currentRoutePath\",\n                    DETECTED_INTERFACE_NAME: \"detectedInterfaceName\",\n                    SYSTEM_PROXY_COMMAND: \"systemProxyCommand\",\n                    IS_DIFF_EIDTOR_SEPARATED: \"isDiffEditorSeparated\",\n                    IS_LIGHTWEIGHT_MODE_CLOSE: \"isLightweightModeClose\",\n                    IS_MIXIN: \"isProfileMixin\",\n                    LAST_VERSION_CODE: \"lastVersionCode\",\n                    ROUTER_HIJACK_MAC_ADDRESSES: \"routerHijackMacAddresses\",\n                    DHCP_MAC_ALIAS: \"dhcpMacAlias\",\n                    TUN_SETTINGS: \"tunSettings\",\n                    IS_TUN: \"isTunEnabled\",\n                    LOG_MOUDLE_LEVEL: \"logModuleLevel\",\n                    LOG_MODULE_STYLE: \"logModuleStyle\",\n                    LOG_MODULE_SEARCH_TEXT: \"logModuleSearchText\",\n                    CONNECTION_MODULE_SEARCH_TEXT: \"connectionModuleSearchText\",\n                    TEST_SCRIPT_CONTENT: \"testScriptContent\"\n                }\n            },\n            59273: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    Z: () => a\n                });\n                var n = i(70538),\n                    o = i(23321),\n                    s = i.n(o),\n                    r = i(11068);\n                n.ZP.use(s());\n                const a = new(s().Store)({\n                    modules: r.default,\n                    strict: !1,\n                    plugins: [function(e) {\n                        e.subscribe((function(t) {\n                            [\"CHANGE_PROFILES\", \"CHANGE_PROFILES_INDEX\", \"CHANGE_PROFILE\", \"APPEND_PROFILE\", \"DELETE_PROFILE\"].includes(t.type) && e.commit(\"SAVE_PROFILES\")\n                        }))\n                    }]\n                })\n            },\n            23726: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => F\n                });\n                var n = i(48926),\n                    o = i.n(n),\n                    s = i(319),\n                    r = i.n(s),\n                    a = i(59713),\n                    l = i.n(a),\n                    c = i(63038),\n                    d = i.n(c),\n                    h = i(87757),\n                    u = i.n(h),\n                    g = i(57147),\n                    p = i.n(g),\n                    f = i(11442),\n                    m = i.n(f),\n                    v = i(71017),\n                    _ = i.n(v),\n                    b = i(54387),\n                    w = i.n(b),\n                    y = i(71893),\n                    C = i.n(y),\n                    x = i(24793),\n                    S = i.n(x),\n                    k = i(56796),\n                    L = i(33182),\n                    N = i(24883),\n                    D = i(81518),\n                    I = i(83566),\n                    E = function(e, t) {\n                        var i, n = null !== (i = N.Z.get(D.Z.MENU_ITEM_ORDER)) && void 0 !== i ? i : [],\n                            o = n.findIndex((function(t) {\n                                return t === e.title\n                            }));\n                        return -1 === o ? 1 : o - n.findIndex((function(e) {\n                            return e === t.title\n                        }))\n                    },\n                    T = i(72298);\n\n                function M(e, t) {\n                    var i = Object.keys(e);\n                    if (Object.getOwnPropertySymbols) {\n                        var n = Object.getOwnPropertySymbols(e);\n                        t && (n = n.filter((function(t) {\n                            return Object.getOwnPropertyDescriptor(e, t).enumerable\n                        }))), i.push.apply(i, n)\n                    }\n                    return i\n                }\n\n                function A(e) {\n                    for (var t = 1; t < arguments.length; t++) {\n                        var i = null != arguments[t] ? arguments[t] : {};\n                        t % 2 ? M(Object(i), !0).forEach((function(t) {\n                            l()(e, t, i[t])\n                        })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(i)) : M(Object(i)).forEach((function(t) {\n                            Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(i, t))\n                        }))\n                    }\n                    return e\n                }\n                var O = {\n                        mixedPort: function(e) {\n                            return e.confData[\"mixed-port\"] || 0\n                        },\n                        controllerPort: function(e) {\n                            var t = e.confData[\"external-controller\"];\n                            if (t) {\n                                var i = t.split(\":\"),\n                                    n = d()(i, 2),\n                                    o = (n[0], n[1]);\n                                return parseInt(o.trim()) || 0\n                            }\n                            return 0\n                        },\n                        secret: function(e) {\n                            var t = e.confData.secret,\n                                i = void 0 === t ? \"\" : t;\n                            return i\n                        },\n                        clashAxiosClient: function(e, t) {\n                            var i = t.controllerPort,\n                                n = t.secret;\n                            return i > 0 ? w().create({\n                                baseURL: \"http://127.0.0.1:\".concat(i, \"/\"),\n                                timeout: 5e3,\n                                headers: {\n                                    Authorization: \"Bearer \".concat(n)\n                                }\n                            }) : null\n                        },\n                        clashGotClient: function(e, t) {\n                            var i = t.controllerPort,\n                                n = t.secret;\n                            return i > 0 ? C().extend({\n                                baseUrl: \"http://127.0.0.1:\".concat(i),\n                                headers: {\n                                    Authorization: \"Bearer \".concat(n)\n                                }\n                            }) : null\n                        },\n                        clashWSClient: function(e, t) {\n                            return function(e) {\n                                var i = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : [],\n                                    n = t.controllerPort,\n                                    o = t.secret;\n                                if (n > 0) {\n                                    /^\\//.test(e) || (e = \"/\" + e);\n                                    var s = \"ws://127.0.0.1:\".concat(n).concat(e, \"?token=\").concat(o).concat(i.length > 0 ? \"&\".concat(i.join(\"&\")) : \"\");\n                                    return new k(s)\n                                }\n                                return null\n                            }\n                        },\n                        resourcesPath: function(e) {\n                            return e.isDevMode ? \"\" : \"\" !== e.exePath ? _().join(_().dirname(e.exePath), (0, I.V5)() ? \"../Resources\" : \"./resources\") : \"\"\n                        },\n                        filesPath: function(e, t) {\n                            return \"\" !== t.resourcesPath ? _().join(t.resourcesPath, \"static/files\") : \"static/files\"\n                        },\n                        clashBinaryPath: function(e, t) {\n                            var i, n, o = (i = {}, l()(i, I.Ap, _().join(t.filesPath, \"win\", \"ia32\")), l()(i, I.J4, _().join(t.filesPath, \"win\", \"x64\")), l()(i, I.Vm, _().join(t.filesPath, \"win\", \"arm64\")), l()(i, I.Ml, _().join(t.filesPath, \"darwin\", \"x64\")), l()(i, I.UD, _().join(t.filesPath, \"darwin\", \"arm64\")), l()(i, I.bV, _().join(t.filesPath, \"linux\", \"x64\")), l()(i, I.tU, _().join(t.filesPath, \"linux\", \"arm64\")), i)[(0, I.$Q)()],\n                                s = (n = {}, l()(n, I.Ap, \"clash-win32.exe\"), l()(n, I.J4, \"clash-win64.exe\"), l()(n, I.Vm, \"clash-win-arm64.exe\"), l()(n, I.Ml, \"./clash-darwin\"), l()(n, I.UD, \"./clash-darwin\"), l()(n, I.bV, \"./clash-linux\"), l()(n, I.tU, \"./clash-linux\"), n)[(0, I.$Q)()];\n                            return _().join(o, s)\n                        },\n                        theme: function(e) {\n                            if (0 === Object.keys(e.settings).length) return \"unknown\";\n                            if (e.settings) {\n                                var t = e.settings,\n                                    i = t.theme,\n                                    n = void 0 === i ? 0 : i,\n                                    o = t.systemTheme;\n                                return void 0 !== o && o ? e.shouldUseDarkTheme ? \"dark\" : \"light\" : [\"light\", \"dark\", \"mc\", \"2077\"][n]\n                            }\n                            return \"light\"\n                        },\n                        menuItemsWithOrder: function(e) {\n                            return r()(e.menuItems).sort(E)\n                        },\n                        fontFamily: function(e) {\n                            var t = e.settings,\n                                i = t.fontFamily,\n                                n = void 0 === i ? \"\" : i,\n                                o = t.useSystemEmoji,\n                                s = void 0 !== o && o,\n                                r = n.split(\",\").map((function(e) {\n                                    return '\"'.concat(S().trim(e, ' \"'), '\"')\n                                })),\n                                a = \"\".concat(r.join(\",\"), ', \"Microsoft Yahei\", \"PingFang SC\", \"system-ui\", 微软雅黑');\n                            return s ? a : \"\".concat(a, ', \"TwemojiMozilla\"')\n                        }\n                    },\n                    P = {\n                        SET_IS_DEV_MODE: function(e, t) {\n                            var i = t.isDevMode;\n                            e.isDevMode = i, i && (e.isWindowShow = !0)\n                        },\n                        CHANGE_IS_MIXIN_ENABLE: function(e, t) {\n                            var i = t.isMixin;\n                            modifyState.isMixin = i, \"\" === e.matchedSSID && N.Z.put(D.Z.IS_MIXIN, i);\n                            e.isMixinEnable = i, \"\" === e.matchedSSID && N.Z.put(D.Z.IS_MIXIN, i)\n                        },\n                        SET_CLASH_PATH: function(e, t) {\n                            var i = t.path;\n                            e.clashPath = _().normalize(i)\n                        },\n                        SET_CLASH_STATUS: function(e, t) {\n                            var i = t.status;\n                            i !== L.Z.CONNECTED && i !== L.Z.DISCONNECTED || (e.clashStatus = i)\n                        },\n                        SET_PROFILES_PATH: function(e, t) {\n                            var i = t.path;\n                            e.profilesPath = _().normalize(i)\n                        },\n                        SET_CONF_DATA: function(e, t) {\n                            var i = t.data;\n                            e.confData = i\n                        },\n                        LOAD_PROFILES: function(e) {\n                            var t = p().readFileSync(_().join(e.profilesPath, \"list.yml\"), \"utf8\"),\n                                i = m().parse(t, {\n                                    merge: !0,\n                                    schema: \"yaml-1.1\"\n                                }),\n                                n = i.files,\n                                o = i.index;\n                            e.profiles = {\n                                files: n,\n                                index: o\n                            }\n                        },\n                        SAVE_PROFILES: function(e) {\n                            p().writeFileSync(_().join(e.profilesPath, \"list.yml\"), m().stringify(e.profiles))\n                        },\n                        CHANGE_PROFILES: function(e, t) {\n                            var i = t.profiles;\n                            e.profiles = A(A({}, e.profiles), {}, {\n                                files: i\n                            })\n                        },\n                        CHANGE_PROFILES_INDEX: function(e, t) {\n                            var i = t.index;\n                            e.profiles = A(A({}, e.profiles), {}, {\n                                index: i\n                            })\n                        },\n                        CHANGE_PROFILE: function(e, t) {\n                            var i = t.index,\n                                n = t.profile;\n                            if (n) {\n                                var o = e.profiles.files.slice();\n                                o[i] = n, e.profiles = A(A({}, e.profiles), {}, {\n                                    files: o\n                                })\n                            }\n                        },\n                        DELETE_PROFILE: function(e, t) {\n                            var i = t.index,\n                                n = e.profiles.files.slice();\n                            n.splice(i, 1), e.profiles = A(A({}, e.profiles), {}, {\n                                files: n\n                            })\n                        },\n                        APPEND_PROFILE: function(e, t) {\n                            var i = t.profile,\n                                n = e.profiles.files,\n                                o = void 0 === n ? [] : n;\n                            i && (e.profiles = A(A({}, e.profiles), {}, {\n                                files: [].concat(r()(o), [i])\n                            }))\n                        },\n                        SET_LOG_FILE_PATH: function(e, t) {\n                            var i = t.path,\n                                n = _().normalize(i);\n                            e.logFilePath = n, N.Z.put(D.Z.LAST_LOG_FILE_PATH, n)\n                        },\n                        SET_EXE_PATH: function(e, t) {\n                            var i = t.path;\n                            e.exePath = _().normalize(i)\n                        },\n                        APPEND_ERROR: function(e, t) {\n                            var i = t.error;\n                            e.errors = [].concat(r()(e.errors), [i])\n                        },\n                        CHANGE_STATUS: function(e, t) {\n                            var i = t.status;\n                            e.status = i\n                        },\n                        ADD_AXIOS_FLYING_REQUEST_COUNT: function(e, t) {\n                            var i = t.count;\n                            e.clashAxiosFlyingRequestCount += i\n                        },\n                        SET_SETTINGS_OBJECT: function(e, t) {\n                            var i = t.obj;\n                            e.settings = i\n                        },\n                        SAVE_SETTINGS_OBJECT: function(e, t) {\n                            var i = t.obj;\n                            e.settings = i, p().writeFileSync(_().join(e.clashPath, \"cfw-settings.yaml\"), m().stringify(i))\n                        },\n                        SET_SHOULD_USE_DARK_THEME: function(e, t) {\n                            var i = t.shouldUseDarkTheme;\n                            e.shouldUseDarkTheme = i\n                        },\n                        SET_DETECTED_INTERFACE_NAME: function(e, t) {\n                            var i = t.interfaceName;\n                            e.detectedInterfaceName = i, N.Z.put(D.Z.DETECTED_INTERFACE_NAME, i)\n                        },\n                        SET_IS_WINDOW_SHOW: function(e, t) {\n                            var i = t.isShow;\n                            e.isWindowShow = i\n                        },\n                        SET_IS_APP_SUSPEND: function(e, t) {\n                            var i = t.isSuspend;\n                            e.isAppSuspend = i\n                        },\n                        SET_INNER_SERVER_PORT: function(e, t) {\n                            var i = t.port;\n                            e.innerServerPort = i\n                        },\n                        SET_IS_LOCAL_MODE: function(e, t) {\n                            var i = t.isLocal;\n                            e.isLocalMode = i\n                        },\n                        SET_IS_LAUNCHING: function(e, t) {\n                            var i = t.isLaunching;\n                            e.isLaunching = i\n                        },\n                        SET_MENU_ITEMS: function(e, t) {\n                            var i = t.items;\n                            e.menuItems = i\n                        },\n                        SET_UPDATE_DOWNLOAD_PROGRESS: function(e, t) {\n                            var i = t.progress;\n                            e.updateDownloadProgress = i\n                        },\n                        SET_IS_SYSTEM_PROXY_ON: function(e, t) {\n                            var i = t.isOn;\n                            e.isSystemProxyOn = i, \"\" === e.matchedSSID && N.Z.put(D.Z.SYSTEM_PROXY, i)\n                        },\n                        SET_IS_SUB_VIEW_SHOW: function(e, t) {\n                            t.isShow ? e.isSubViewShow = !0 : setTimeout((function() {\n                                e.isSubViewShow = !1\n                            }), 50)\n                        },\n                        SET_CURRENT_ROUTE_PATH: function(e, t) {\n                            var i = t.path;\n                            e.currentRoutePath = i, N.Z.put(D.Z.CURRENT_ROUTE_PATH, i)\n                        },\n                        ADD_PROFILE_REFRESH_TIMES: function(e, t) {\n                            var i = t.times,\n                                n = void 0 === i ? 1 : i;\n                            e.profileRefreshTimes += n\n                        },\n                        CHANGE_MODE: function(e, t) {\n                            var i = t.mode;\n                            [\"direct\", \"rule\", \"global\", \"script\"].includes(i) && (e.mode = i)\n                        },\n                        SET_ROUTER_HIJACK_MAC_ADDRESSES: function(e, t) {\n                            var i = t.addresses;\n                            e.routerHijackMacAddresses = i, N.Z.put(D.Z.ROUTER_HIJACK_MAC_ADDRESSES, i)\n                        },\n                        SET_CURRENT_PROFILE_PAYLOAD: function(e, t) {\n                            var i = t.payload;\n                            e.currentProfilePayload = i\n                        },\n                        SET_IS_SILENT_UPGRADED: function(e, t) {\n                            var i = t.isUpgraded;\n                            e.isSilentUpgraded = i\n                        },\n                        SET_TUN_SETTINGS: function(e, t) {\n                            var i = t.settings;\n                            e.tunSettings = i, N.Z.put(D.Z.TUN_SETTINGS, i)\n                        },\n                        CHANGE_IS_TUN_ENABLE: function(e, t) {\n                            var i = t.isTun;\n                            modifyState.isTun = i, \"\" === e.matchedSSID && N.Z.put(D.Z.IS_TUN, i);\n                            e.isTunEnable = i, \"\" === e.matchedSSID && N.Z.put(D.Z.IS_TUN, i)\n                        },\n                        SET_IS_FIREWALL_RULE_EXIST: function(e, t) {\n                            var i = t.isExist;\n                            e.isFirewallRuleExist = i\n                        },\n                        SET_USER_DNS: function(e, t) {\n                            var i = t.dns;\n                            e.userDNS = i\n                        },\n                        SET_MATCHED_SSID: function(e, t) {\n                            var i = t.ssid;\n                            e.matchedSSID = i\n                        }\n                    },\n                    R = {\n                        getMode: function(e) {\n                            return o()(u().mark((function t() {\n                                var i, n, o, s, r, a, l;\n                                return u().wrap((function(t) {\n                                    for (;;) switch (t.prev = t.next) {\n                                        case 0:\n                                            if (i = e.commit, n = e.getters, !(o = n.clashAxiosClient)) {\n                                                t.next = 9;\n                                                break\n                                            }\n                                            return t.next = 5, o.get(\"/configs\").catch((function(e) {}));\n                                        case 5:\n                                            s = t.sent, r = s.status, a = s.data, 200 === r && (l = a.mode, i(\"CHANGE_MODE\", {\n                                                mode: l\n                                            }));\n                                        case 9:\n                                        case \"end\":\n                                            return t.stop()\n                                    }\n                                }), t)\n                            })))()\n                        },\n                        setMode: function(e, t) {\n                            return o()(u().mark((function i() {\n                                var n, o, s, r, a;\n                                return u().wrap((function(i) {\n                                    for (;;) switch (i.prev = i.next) {\n                                        case 0:\n                                            if (n = e.commit, o = e.getters, s = t.mode, !(r = o.clashAxiosClient)) {\n                                                i.next = 9;\n                                                break\n                                            }\n                                            return i.next = 6, r.patch(\"/configs\", {\n                                                mode: s\n                                            }).catch((function(e) {}));\n                                        case 6:\n                                            a = i.sent, 204 === a.status && n(\"CHANGE_MODE\", {\n                                                mode: s\n                                            });\n                                        case 9:\n                                        case \"end\":\n                                            return i.stop()\n                                    }\n                                }), i)\n                            })))()\n                        },\n                        getParserLogPath: function() {\n                            return o()(u().mark((function e() {\n                                var t;\n                                return u().wrap((function(e) {\n                                    for (;;) switch (e.prev = e.next) {\n                                        case 0:\n                                            return e.next = 2, T.ipcRenderer.invoke(\"app\", \"getPath\", \"temp\");\n                                        case 2:\n                                            return t = e.sent, e.abrupt(\"return\", _().join(t, \"cfw-parser.log\"));\n                                        case 4:\n                                        case \"end\":\n                                            return e.stop()\n                                    }\n                                }), e)\n                            })))()\n                        },\n                        getScriptLogPath: function() {\n                            return o()(u().mark((function e() {\n                                var t;\n                                return u().wrap((function(e) {\n                                    for (;;) switch (e.prev = e.next) {\n                                        case 0:\n                                            return e.next = 2, T.ipcRenderer.invoke(\"app\", \"getPath\", \"temp\");\n                                        case 2:\n                                            return t = e.sent, e.abrupt(\"return\", _().join(t, \"cfw-script.log\"));\n                                        case 4:\n                                        case \"end\":\n                                            return e.stop()\n                                    }\n                                }), e)\n                            })))()\n                        }\n                    };\n                const Lg = new Language(i(24883).Z.get(LANGUAGE));\n                if (modifyState.language === -1) {\n                    modifyState.language = i(24883).Z.get(LANGUAGE) === null ? 0 : i(24883).Z.get(LANGUAGE)\n                    require(\"electron\").ipcRenderer.invoke(\"cfw-language\", modifyState.language)\n                    modifyState.isTun = N.Z.get(D.Z.IS_TUN)\n                    modifyState.isMixin = N.Z.get(D.Z.IS_MIXIN)\n                }\n                const F = {\n                    state: {\n                        isDevMode: !1,\n                        clashPath: \"\",\n                        clashStatus: L.Z.DISCONNECTED,\n                        profilesPath: \"\",\n                        profiles: {},\n                        confData: {},\n                        logFilePath: N.Z.get(D.Z.LAST_LOG_FILE_PATH) || \"\",\n                        isMixinEnable: N.Z.get(D.Z.IS_MIXIN) || !1,\n                        exePath: \"\",\n                        errors: [],\n                        status: L.r.INIT,\n                        clashAxiosFlyingRequestCount: 0,\n                        settings: {},\n                        shouldUseDarkTheme: !1,\n                        detectedInterfaceName: N.Z.get(D.Z.DETECTED_INTERFACE_NAME) || \"\",\n                        isWindowShow: !1,\n                        isAppSuspend: !1,\n                        innerServerPort: 0,\n                        isLocalMode: !0,\n                        isLaunching: !0,\n                        menuItems: [{\n                            title: Lg.general(),\n                            path: \"/home/general\"\n                        }, {\n                            title: Lg.proxies(),\n                            path: \"/home/proxy\"\n                        }, {\n                            title: Lg.profiles(),\n                            path: \"/home/server\"\n                        }, {\n                            title: Lg.logs(),\n                            path: \"/home/log\"\n                        }, {\n                            title: Lg.connections(),\n                            path: \"/home/connection\"\n                        }, {\n                            title: Lg.settings(),\n                            path: \"/home/setting\"\n                        }, {\n                            title: Lg.feedback(),\n                            path: \"/home/about\"\n                        }],\n                        updateDownloadProgress: null,\n                        isSystemProxyOn: N.Z.get(D.Z.SYSTEM_PROXY) || !1,\n                        isSubViewShow: !1,\n                        currentRoutePath: N.Z.get(D.Z.CURRENT_ROUTE_PATH) || \"/home/general\",\n                        profileRefreshTimes: 0,\n                        mode: \"rule\",\n                        routerHijackMacAddresses: N.Z.get(D.Z.ROUTER_HIJACK_MAC_ADDRESSES) || [],\n                        currentProfilePayload: {},\n                        isSilentUpgraded: !1,\n                        tunSettings: N.Z.get(D.Z.TUN_SETTINGS),\n                        isTunEnable: N.Z.get(D.Z.IS_TUN) || !1,\n                        isFirewallRuleExist: !1,\n                        userDNS: null,\n                        matchedSSID: \"\"\n                    },\n                    getters: O,\n                    mutations: P,\n                    actions: R\n                }\n            },\n            11068: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => s\n                });\n                var n = i(54265),\n                    o = {};\n                n.keys().forEach((function(e) {\n                    \"./index.js\" !== e && (o[e.replace(/(\\.\\/|\\.js)/g, \"\")] = n(e).default)\n                }));\n                const s = o\n            },\n            546: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \"/*---------------------------------------------------------------------------------------------\\n *  Copyright (c) Microsoft Corporation. All rights reserved.\\n *  Licensed under the MIT License. See License.txt in the project root for license information.\\n *--------------------------------------------------------------------------------------------*/\\n\\n.monaco-action-bar {\\n\\twhite-space: nowrap;\\n\\theight: 100%;\\n}\\n\\n.monaco-action-bar .actions-container {\\n\\tdisplay: flex;\\n\\tmargin: 0 auto;\\n\\tpadding: 0;\\n\\theight: 100%;\\n\\twidth: 100%;\\n\\talign-items: center;\\n}\\n\\n.monaco-action-bar.vertical .actions-container {\\n\\tdisplay: inline-block;\\n}\\n\\n.monaco-action-bar .action-item {\\n\\tdisplay: block;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n\\tcursor: pointer;\\n\\tposition: relative;  /* DO NOT REMOVE - this is the key to preventing the ghosting icon bug in Chrome 42 */\\n}\\n\\n.monaco-action-bar .action-item.disabled {\\n\\tcursor: default;\\n}\\n\\n.monaco-action-bar .action-item .icon,\\n.monaco-action-bar .action-item .codicon {\\n\\tdisplay: block;\\n}\\n\\n.monaco-action-bar .action-item .codicon {\\n\\tdisplay: flex;\\n\\talign-items: center;\\n\\twidth: 16px;\\n\\theight: 16px;\\n}\\n\\n.monaco-action-bar .action-label {\\n\\tfont-size: 11px;\\n\\tpadding: 3px;\\n\\tborder-radius: 5px;\\n}\\n\\n.monaco-action-bar .action-item.disabled .action-label,\\n.monaco-action-bar .action-item.disabled .action-label::before,\\n.monaco-action-bar .action-item.disabled .action-label:hover {\\n\\topacity: 0.4;\\n}\\n\\n/* Vertical actions */\\n\\n.monaco-action-bar.vertical {\\n\\ttext-align: left;\\n}\\n\\n.monaco-action-bar.vertical .action-item {\\n\\tdisplay: block;\\n}\\n\\n.monaco-action-bar.vertical .action-label.separator {\\n\\tdisplay: block;\\n\\tborder-bottom: 1px solid #bbb;\\n\\tpadding-top: 1px;\\n\\tmargin-left: .8em;\\n\\tmargin-right: .8em;\\n}\\n\\n.monaco-action-bar .action-item .action-label.separator {\\n\\twidth: 1px;\\n\\theight: 16px;\\n\\tmargin: 5px 4px !important;\\n\\tcursor: default;\\n\\tmin-width: 1px;\\n\\tpadding: 0;\\n\\tbackground-color: #bbb;\\n}\\n\\n.secondary-actions .monaco-action-bar .action-label {\\n\\tmargin-left: 6px;\\n}\\n\\n/* Action Items */\\n.monaco-action-bar .action-item.select-container {\\n\\toverflow: hidden; /* somehow the dropdown overflows its container, we prevent it here to not push */\\n\\tflex: 1;\\n\\tmax-width: 170px;\\n\\tmin-width: 60px;\\n\\tdisplay: flex;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n\\tmargin-right: 10px;\\n}\\n\\n.monaco-action-bar .action-item.action-dropdown-item {\\n\\tdisplay: flex;\\n}\\n\\n.monaco-action-bar .action-item.action-dropdown-item > .action-label {\\n\\tmargin-right: 1px;\\n}\\n\", \"\"]);\n                const a = r\n            },\n            96513: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \"/*---------------------------------------------------------------------------------------------\\n *  Copyright (c) Microsoft Corporation. All rights reserved.\\n *  Licensed under the MIT License. See License.txt in the project root for license information.\\n *--------------------------------------------------------------------------------------------*/\\n\\n.monaco-aria-container {\\n\\tposition: absolute; /* try to hide from window but not from screen readers */\\n\\tleft:-999em;\\n}\", \"\"]);\n                const a = r\n            },\n            71470: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \"/*---------------------------------------------------------------------------------------------\\n *  Copyright (c) Microsoft Corporation. All rights reserved.\\n *  Licensed under the MIT License. See License.txt in the project root for license information.\\n *--------------------------------------------------------------------------------------------*/\\n\\n.monaco-text-button {\\n\\tbox-sizing: border-box;\\n\\tdisplay: flex;\\n\\twidth: 100%;\\n\\tpadding: 4px;\\n\\ttext-align: center;\\n\\tcursor: pointer;\\n\\tjustify-content: center;\\n\\talign-items: center;\\n}\\n\\n.monaco-text-button:focus {\\n\\toutline-offset: 2px !important;\\n}\\n\\n.monaco-text-button:hover {\\n\\ttext-decoration: none !important;\\n}\\n\\n.monaco-button.disabled:focus,\\n.monaco-button.disabled {\\n\\topacity: 0.4 !important;\\n\\tcursor: default;\\n}\\n\\n.monaco-text-button > .codicon {\\n\\tmargin: 0 0.2em;\\n\\tcolor: inherit !important;\\n}\\n\\n.monaco-button-dropdown {\\n\\tdisplay: flex;\\n\\tcursor: pointer;\\n}\\n\\n.monaco-button-dropdown > .monaco-dropdown-button {\\n\\tmargin-left: 1px;\\n}\\n\\n.monaco-description-button {\\n\\tflex-direction: column;\\n}\\n\\n.monaco-description-button .monaco-button-label {\\n\\tfont-weight: 500;\\n}\\n\\n.monaco-description-button .monaco-button-description {\\n\\tfont-style: italic;\\n}\\n\", \"\"]);\n                const a = r\n            },\n            98093: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \"/*---------------------------------------------------------------------------------------------\\n *  Copyright (c) Microsoft Corporation. All rights reserved.\\n *  Licensed under the MIT License. See License.txt in the project root for license information.\\n *--------------------------------------------------------------------------------------------*/\\n\\n.monaco-custom-checkbox {\\n\\tmargin-left: 2px;\\n\\tfloat: left;\\n\\tcursor: pointer;\\n\\toverflow: hidden;\\n\\topacity: 0.7;\\n\\twidth: 20px;\\n\\theight: 20px;\\n\\tborder: 1px solid transparent;\\n\\tpadding: 1px;\\n\\tbox-sizing:\\tborder-box;\\n\\t-moz-user-select: none;\\n\\t     user-select: none;\\n\\t-webkit-user-select: none;\\n\\t-ms-user-select: none;\\n}\\n\\n.monaco-custom-checkbox:hover,\\n.monaco-custom-checkbox.checked {\\n\\topacity: 1;\\n}\\n\\n.hc-black .monaco-custom-checkbox {\\n\\tbackground: none;\\n}\\n\\n.hc-black .monaco-custom-checkbox:hover {\\n\\tbackground: none;\\n}\\n\\n.monaco-custom-checkbox.monaco-simple-checkbox {\\n\\theight: 18px;\\n\\twidth: 18px;\\n\\tborder: 1px solid transparent;\\n\\tborder-radius: 3px;\\n\\tmargin-right: 9px;\\n\\tmargin-left: 0px;\\n\\tpadding: 0px;\\n\\topacity: 1;\\n\\tbackground-size: 16px !important;\\n}\\n\\n/* hide check when unchecked */\\n.monaco-custom-checkbox.monaco-simple-checkbox:not(.checked)::before {\\n\\tvisibility: hidden;\\n}\\n\", \"\"]);\n                const a = r\n            },\n            7543: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \"/*---------------------------------------------------------------------------------------------\\n *  Copyright (c) Microsoft Corporation. All rights reserved.\\n *  Licensed under the MIT License. See License.txt in the project root for license information.\\n *--------------------------------------------------------------------------------------------*/\\n\\n.codicon-wrench-subaction {\\n\\topacity: 0.5;\\n}\\n\\n@keyframes codicon-spin {\\n\\t100% {\\n\\t\\ttransform:rotate(360deg);\\n\\t}\\n}\\n\\n.codicon-sync.codicon-modifier-spin,\\n.codicon-loading.codicon-modifier-spin,\\n.codicon-gear.codicon-modifier-spin,\\n.codicon-notebook-state-executing.codicon-modifier-spin {\\n\\t/* Use steps to throttle FPS to reduce CPU usage */\\n\\tanimation: codicon-spin 1.5s steps(30) infinite;\\n}\\n\\n.codicon-modifier-disabled {\\n\\topacity: 0.4;\\n}\\n\\n/* custom speed & easing for loading icon */\\n.codicon-loading,\\n.codicon-tree-item-loading::before {\\n\\tanimation-duration: 1s !important;\\n\\tanimation-timing-function: cubic-bezier(0.53, 0.21, 0.29, 0.67) !important;\\n}\\n\", \"\"]);\n                const a = r\n            },\n            6921: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => u\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s),\n                    a = i(61667),\n                    l = i.n(a),\n                    c = new URL(i(73251), i.b),\n                    d = r()(o()),\n                    h = l()(c);\n                d.push([e.id, `/*---------------------------------------------------------------------------------------------\\n *  Copyright (c) Microsoft Corporation. All rights reserved.\\n *  Licensed under the MIT License. See License.txt in the project root for license information.\\n *--------------------------------------------------------------------------------------------*/\\n\\n@font-face {\\n\\tfont-family: \"codicon\";\\n\\tfont-display: block;\\n\\tsrc: url(${h}) format(\"truetype\");\\n}\\n\\n.codicon[class*='codicon-'] {\\n\\tfont: normal normal normal 16px/1 codicon;\\n\\tdisplay: inline-block;\\n\\ttext-decoration: none;\\n\\ttext-rendering: auto;\\n\\ttext-align: center;\\n\\t-webkit-font-smoothing: antialiased;\\n\\t-moz-osx-font-smoothing: grayscale;\\n\\t-moz-user-select: none;\\n\\t     user-select: none;\\n\\t-webkit-user-select: none;\\n\\t-ms-user-select: none;\\n}\\n\\n/* icon rules are dynamically created in codiconStyles */\\n`, \"\"]);\n                const u = d\n            },\n            75730: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \"/*---------------------------------------------------------------------------------------------\\n *  Copyright (c) Microsoft Corporation. All rights reserved.\\n *  Licensed under the MIT License. See License.txt in the project root for license information.\\n *--------------------------------------------------------------------------------------------*/\\n\\n.context-view {\\n\\tposition: absolute;\\n\\tz-index: 2500;\\n}\\n\\n.context-view.fixed {\\n\\tall: initial;\\n\\tfont-family: inherit;\\n\\tfont-size: 13px;\\n\\tposition: fixed;\\n\\tz-index: 2500;\\n\\tcolor: inherit;\\n}\\n\", \"\"]);\n                const a = r\n            },\n            55448: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \"/*---------------------------------------------------------------------------------------------\\n *  Copyright (c) Microsoft Corporation. All rights reserved.\\n *  Licensed under the MIT License. See License.txt in the project root for license information.\\n *--------------------------------------------------------------------------------------------*/\\n\\n.monaco-count-badge {\\n\\tpadding: 3px 6px;\\n\\tborder-radius: 11px;\\n\\tfont-size: 11px;\\n\\tmin-width: 18px;\\n\\tmin-height: 18px;\\n\\tline-height: 11px;\\n\\tfont-weight: normal;\\n\\ttext-align: center;\\n\\tdisplay: inline-block;\\n\\tbox-sizing: border-box;\\n}\\n\\n.monaco-count-badge.long {\\n\\tpadding: 2px 3px;\\n\\tborder-radius: 2px;\\n\\tmin-height: auto;\\n\\tline-height: normal;\\n}\\n\", \"\"]);\n                const a = r\n            },\n            15159: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \"/*---------------------------------------------------------------------------------------------\\n *  Copyright (c) Microsoft Corporation. All rights reserved.\\n *  Licensed under the MIT License. See License.txt in the project root for license information.\\n *--------------------------------------------------------------------------------------------*/\\n\\n.monaco-dropdown {\\n\\theight: 100%;\\n\\tpadding: 0;\\n}\\n\\n.monaco-dropdown > .dropdown-label {\\n\\tcursor: pointer;\\n\\theight: 100%;\\n\\tdisplay: flex;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\\n.monaco-dropdown > .dropdown-label > .action-label.disabled {\\n\\tcursor: default;\\n}\\n\\n.monaco-dropdown-with-primary {\\n\\tdisplay: flex !important;\\n\\tflex-direction: row;\\n\\tborder-radius: 5px;\\n}\\n\\n.monaco-dropdown-with-primary > .action-container > .action-label {\\n\\tmargin-right: 0;\\n}\\n\\n.monaco-dropdown-with-primary > .dropdown-action-container > .monaco-dropdown > .dropdown-label .codicon[class*='codicon-'] {\\n\\tfont-size: 12px;\\n\\tpadding-left: 0px;\\n\\tpadding-right: 0px;\\n\\tline-height: 16px;\\n\\tmargin-left: -3px;\\n}\\n\\n.monaco-dropdown-with-primary > .dropdown-action-container > .monaco-dropdown > .dropdown-label > .action-label {\\n\\tdisplay: block;\\n\\tbackground-size: 16px;\\n\\tbackground-position: center center;\\n\\tbackground-repeat: no-repeat;\\n}\\n\", \"\"]);\n                const a = r\n            },\n            90071: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \"/*---------------------------------------------------------------------------------------------\\n *  Copyright (c) Microsoft Corporation. All rights reserved.\\n *  Licensed under the MIT License. See License.txt in the project root for license information.\\n *--------------------------------------------------------------------------------------------*/\\n/* ---------- Find input ---------- */\\n\\n.monaco-findInput {\\n\\tposition: relative;\\n}\\n\\n.monaco-findInput .monaco-inputbox {\\n\\tfont-size: 13px;\\n\\twidth: 100%;\\n}\\n\\n.monaco-findInput > .controls {\\n\\tposition: absolute;\\n\\ttop: 3px;\\n\\tright: 2px;\\n}\\n\\n.vs .monaco-findInput.disabled {\\n\\tbackground-color: #E1E1E1;\\n}\\n\\n/* Theming */\\n.vs-dark .monaco-findInput.disabled {\\n\\tbackground-color: #333;\\n}\\n\\n/* Highlighting */\\n.monaco-findInput.highlight-0 .controls {\\n\\tanimation: monaco-findInput-highlight-0 100ms linear 0s;\\n}\\n.monaco-findInput.highlight-1 .controls {\\n\\tanimation: monaco-findInput-highlight-1 100ms linear 0s;\\n}\\n.hc-black .monaco-findInput.highlight-0 .controls,\\n.vs-dark  .monaco-findInput.highlight-0 .controls {\\n\\tanimation: monaco-findInput-highlight-dark-0 100ms linear 0s;\\n}\\n.hc-black .monaco-findInput.highlight-1 .controls,\\n.vs-dark  .monaco-findInput.highlight-1 .controls {\\n\\tanimation: monaco-findInput-highlight-dark-1 100ms linear 0s;\\n}\\n\\n@keyframes monaco-findInput-highlight-0 {\\n\\t0% { background: rgba(253, 255, 0, 0.8); }\\n\\t100% { background: transparent; }\\n}\\n@keyframes monaco-findInput-highlight-1 {\\n\\t0% { background: rgba(253, 255, 0, 0.8); }\\n\\t/* Made intentionally different such that the CSS minifier does not collapse the two animations into a single one*/\\n\\t99% { background: transparent; }\\n}\\n\\n@keyframes monaco-findInput-highlight-dark-0 {\\n\\t0% { background: rgba(255, 255, 255, 0.44); }\\n\\t100% { background: transparent; }\\n}\\n@keyframes monaco-findInput-highlight-dark-1 {\\n\\t0% { background: rgba(255, 255, 255, 0.44); }\\n\\t/* Made intentionally different such that the CSS minifier does not collapse the two animations into a single one*/\\n\\t99% { background: transparent; }\\n}\", \"\"]);\n                const a = r\n            },\n            70223: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \"/*---------------------------------------------------------------------------------------------\\n *  Copyright (c) Microsoft Corporation. All rights reserved.\\n *  Licensed under the MIT License. See License.txt in the project root for license information.\\n *--------------------------------------------------------------------------------------------*/\\n\\n.monaco-hover {\\n\\tcursor: default;\\n\\tposition: absolute;\\n\\toverflow: hidden;\\n\\tz-index: 50;\\n\\t-moz-user-select: text;\\n\\t     user-select: text;\\n\\t-webkit-user-select: text;\\n\\t-ms-user-select: text;\\n\\tbox-sizing: initial;\\n\\tanimation: fadein 100ms linear;\\n\\tline-height: 1.5em;\\n}\\n\\n.monaco-hover.hidden {\\n\\tdisplay: none;\\n}\\n\\n.monaco-hover .hover-contents:not(.html-hover-contents) {\\n\\tpadding: 4px 8px;\\n}\\n\\n.monaco-hover .markdown-hover > .hover-contents:not(.code-hover-contents) {\\n\\tmax-width: 500px;\\n\\tword-wrap: break-word;\\n}\\n\\n.monaco-hover .markdown-hover > .hover-contents:not(.code-hover-contents) hr {\\n\\tmin-width: 100%;\\n}\\n\\n.monaco-hover p,\\n.monaco-hover .code,\\n.monaco-hover ul {\\n\\tmargin: 8px 0;\\n}\\n\\n.monaco-hover code {\\n\\tfont-family: var(--monaco-monospace-font);\\n}\\n\\n.monaco-hover hr {\\n\\tbox-sizing: border-box;\\n\\tborder-left: 0px;\\n\\tborder-right: 0px;\\n\\tmargin-top: 4px;\\n\\tmargin-bottom: -4px;\\n\\tmargin-left: -8px;\\n\\tmargin-right: -8px;\\n\\theight: 1px;\\n}\\n\\n.monaco-hover p:first-child,\\n.monaco-hover .code:first-child,\\n.monaco-hover ul:first-child {\\n\\tmargin-top: 0;\\n}\\n\\n.monaco-hover p:last-child,\\n.monaco-hover .code:last-child,\\n.monaco-hover ul:last-child {\\n\\tmargin-bottom: 0;\\n}\\n\\n/* MarkupContent Layout */\\n.monaco-hover ul {\\n\\tpadding-left: 20px;\\n}\\n.monaco-hover ol {\\n\\tpadding-left: 20px;\\n}\\n\\n.monaco-hover li > p {\\n\\tmargin-bottom: 0;\\n}\\n\\n.monaco-hover li > ul {\\n\\tmargin-top: 0;\\n}\\n\\n.monaco-hover code {\\n\\tborder-radius: 3px;\\n\\tpadding: 0 0.4em;\\n}\\n\\n.monaco-hover .monaco-tokenized-source {\\n\\twhite-space: pre-wrap;\\n}\\n\\n.monaco-hover .hover-row.status-bar {\\n\\tfont-size: 12px;\\n\\tline-height: 22px;\\n}\\n\\n.monaco-hover .hover-row.status-bar .actions {\\n\\tdisplay: flex;\\n\\tpadding: 0px 8px;\\n}\\n\\n.monaco-hover .hover-row.status-bar .actions .action-container {\\n\\tmargin-right: 16px;\\n\\tcursor: pointer;\\n}\\n\\n.monaco-hover .hover-row.status-bar .actions .action-container .action .icon {\\n\\tpadding-right: 4px;\\n}\\n\\n.monaco-hover .markdown-hover .hover-contents .codicon {\\n\\tcolor: inherit;\\n\\tfont-size: inherit;\\n\\tvertical-align: middle;\\n}\\n\\n.monaco-hover .hover-contents a.code-link:hover,\\n.monaco-hover .hover-contents a.code-link {\\n\\tcolor: inherit;\\n}\\n\\n.monaco-hover .hover-contents a.code-link:before {\\n\\tcontent: '(';\\n}\\n\\n.monaco-hover .hover-contents a.code-link:after {\\n\\tcontent: ')';\\n}\\n\\n.monaco-hover .hover-contents a.code-link > span {\\n\\ttext-decoration: underline;\\n\\t/** Hack to force underline to show **/\\n\\tborder-bottom: 1px solid transparent;\\n\\ttext-underline-position: under;\\n}\\n\\n/** Spans in markdown hovers need a margin-bottom to avoid looking cramped: https://github.com/microsoft/vscode/issues/101496 **/\\n.monaco-hover .markdown-hover .hover-contents:not(.code-hover-contents):not(.html-hover-contents) span {\\n\\tmargin-bottom: 4px;\\n\\tdisplay: inline-block;\\n}\\n\\n.monaco-hover-content .action-container a {\\n\\t-webkit-user-select: none;\\n\\t-moz-user-select: none;\\n\\t -ms-user-select: none;\\n\\t     user-select: none;\\n}\\n\\n.monaco-hover-content .action-container.disabled {\\n\\tpointer-events: none;\\n\\topacity: 0.4;\\n\\tcursor: default;\\n}\\n\", \"\"]);\n                const a = r\n            },\n            56388: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \"/*---------------------------------------------------------------------------------------------\\n *  Copyright (c) Microsoft Corporation. All rights reserved.\\n *  Licensed under the MIT License. See License.txt in the project root for license information.\\n *--------------------------------------------------------------------------------------------*/\\n\\n/* ---------- Icon label ---------- */\\n\\n.monaco-icon-label {\\n\\tdisplay: flex; /* required for icons support :before rule */\\n\\toverflow: hidden;\\n\\ttext-overflow: ellipsis;\\n}\\n\\n.monaco-icon-label::before {\\n\\n\\t/* svg icons rendered as background image */\\n\\tbackground-size: 16px;\\n\\tbackground-position: left center;\\n\\tbackground-repeat: no-repeat;\\n\\tpadding-right: 6px;\\n\\twidth: 16px;\\n\\theight: 22px;\\n\\tline-height: inherit !important;\\n\\tdisplay: inline-block;\\n\\n\\t/* fonts icons */\\n\\t-webkit-font-smoothing: antialiased;\\n\\t-moz-osx-font-smoothing: grayscale;\\n\\tvertical-align: top;\\n\\n\\tflex-shrink: 0; /* fix for https://github.com/microsoft/vscode/issues/13787 */\\n}\\n\\n.monaco-icon-label > .monaco-icon-label-container {\\n\\tmin-width: 0;\\n\\toverflow: hidden;\\n\\ttext-overflow: ellipsis;\\n\\tflex: 1;\\n}\\n\\n.monaco-icon-label > .monaco-icon-label-container > .monaco-icon-name-container > .label-name {\\n\\tcolor: inherit;\\n\\twhite-space: pre; /* enable to show labels that include multiple whitespaces */\\n}\\n\\n.monaco-icon-label > .monaco-icon-label-container > .monaco-icon-name-container > .label-name > .label-separator {\\n\\tmargin: 0 2px;\\n\\topacity: 0.5;\\n}\\n\\n.monaco-icon-label > .monaco-icon-label-container > .monaco-icon-description-container > .label-description {\\n\\topacity: .7;\\n\\tmargin-left: 0.5em;\\n\\tfont-size: 0.9em;\\n\\twhite-space: pre; /* enable to show labels that include multiple whitespaces */\\n}\\n\\n.monaco-icon-label.nowrap > .monaco-icon-label-container > .monaco-icon-description-container > .label-description{\\n\\twhite-space: nowrap\\n}\\n\\n.vs .monaco-icon-label > .monaco-icon-label-container > .monaco-icon-description-container > .label-description {\\n\\topacity: .95;\\n}\\n\\n.monaco-icon-label.italic > .monaco-icon-label-container > .monaco-icon-name-container > .label-name,\\n.monaco-icon-label.italic > .monaco-icon-label-container > .monaco-icon-description-container > .label-description {\\n\\tfont-style: italic;\\n}\\n\\n.monaco-icon-label.deprecated {\\n\\ttext-decoration: line-through;\\n\\topacity: 0.66;\\n}\\n\\n/* make sure apply italic font style to decorations as well */\\n.monaco-icon-label.italic::after {\\n\\tfont-style: italic;\\n}\\n\\n.monaco-icon-label.strikethrough > .monaco-icon-label-container > .monaco-icon-name-container > .label-name,\\n.monaco-icon-label.strikethrough > .monaco-icon-label-container > .monaco-icon-description-container > .label-description {\\n\\ttext-decoration: line-through;\\n}\\n\\n.monaco-icon-label::after {\\n\\topacity: 0.75;\\n\\tfont-size: 90%;\\n\\tfont-weight: 600;\\n\\tmargin: auto 16px 0 5px; /* https://github.com/microsoft/vscode/issues/113223 */\\n\\ttext-align: center;\\n}\\n\\n/* make sure selection color wins when a label is being selected */\\n.monaco-list:focus .selected .monaco-icon-label, /* list */\\n.monaco-list:focus .selected .monaco-icon-label::after\\n{\\n\\tcolor: inherit !important;\\n}\\n\\n.monaco-list-row.focused.selected .label-description,\\n.monaco-list-row.selected .label-description {\\n\\topacity: .8;\\n}\\n\", \"\"]);\n                const a = r\n            },\n            76153: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \"/*---------------------------------------------------------------------------------------------\\n *  Copyright (c) Microsoft Corporation. All rights reserved.\\n *  Licensed under the MIT License. See License.txt in the project root for license information.\\n *--------------------------------------------------------------------------------------------*/\\n\\n.monaco-inputbox {\\n\\tposition: relative;\\n\\tdisplay: block;\\n\\tpadding: 0;\\n\\tbox-sizing:\\tborder-box;\\n\\n\\t/* Customizable */\\n\\tfont-size: inherit;\\n}\\n\\n.monaco-inputbox.idle {\\n\\tborder: 1px solid transparent;\\n}\\n\\n.monaco-inputbox > .ibwrapper > .input,\\n.monaco-inputbox > .ibwrapper > .mirror {\\n\\n\\t/* Customizable */\\n\\tpadding: 4px;\\n}\\n\\n.monaco-inputbox > .ibwrapper {\\n\\tposition: relative;\\n\\twidth: 100%;\\n\\theight: 100%;\\n}\\n\\n.monaco-inputbox > .ibwrapper > .input {\\n\\tdisplay: inline-block;\\n\\tbox-sizing:\\tborder-box;\\n\\twidth: 100%;\\n\\theight: 100%;\\n\\tline-height: inherit;\\n\\tborder: none;\\n\\tfont-family: inherit;\\n\\tfont-size: inherit;\\n\\tresize: none;\\n\\tcolor: inherit;\\n}\\n\\n.monaco-inputbox > .ibwrapper > input {\\n\\ttext-overflow: ellipsis;\\n}\\n\\n.monaco-inputbox > .ibwrapper > textarea.input {\\n\\tdisplay: block;\\n\\t-ms-overflow-style: none; /* IE 10+: hide scrollbars */\\n\\tscrollbar-width: none; /* Firefox: hide scrollbars */\\n\\toutline: none;\\n}\\n\\n.monaco-inputbox > .ibwrapper > textarea.input::-webkit-scrollbar {\\n\\tdisplay: none; /* Chrome + Safari: hide scrollbar */\\n}\\n\\n.monaco-inputbox > .ibwrapper > textarea.input.empty {\\n\\twhite-space: nowrap;\\n}\\n\\n.monaco-inputbox > .ibwrapper > .mirror {\\n\\tposition: absolute;\\n\\tdisplay: inline-block;\\n\\twidth: 100%;\\n\\ttop: 0;\\n\\tleft: 0;\\n\\tbox-sizing: border-box;\\n\\twhite-space: pre-wrap;\\n\\tvisibility: hidden;\\n\\tword-wrap: break-word;\\n}\\n\\n/* Context view */\\n\\n.monaco-inputbox-container {\\n\\ttext-align: right;\\n}\\n\\n.monaco-inputbox-container .monaco-inputbox-message {\\n\\tdisplay: inline-block;\\n\\toverflow: hidden;\\n\\ttext-align: left;\\n\\twidth: 100%;\\n\\tbox-sizing:\\tborder-box;\\n\\tpadding: 0.4em;\\n\\tfont-size: 12px;\\n\\tline-height: 17px;\\n\\tmargin-top: -1px;\\n\\tword-wrap: break-word;\\n}\\n\\n/* Action bar support */\\n.monaco-inputbox .monaco-action-bar {\\n\\tposition: absolute;\\n\\tright: 2px;\\n\\ttop: 4px;\\n}\\n\\n.monaco-inputbox .monaco-action-bar .action-item {\\n\\tmargin-left: 2px;\\n}\\n\\n.monaco-inputbox .monaco-action-bar .action-item .codicon {\\n\\tbackground-repeat: no-repeat;\\n\\twidth: 16px;\\n\\theight: 16px;\\n}\\n\", \"\"]);\n                const a = r\n            },\n            80407: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \"/*---------------------------------------------------------------------------------------------\\n *  Copyright (c) Microsoft Corporation. All rights reserved.\\n *  Licensed under the MIT License. See License.txt in the project root for license information.\\n *--------------------------------------------------------------------------------------------*/\\n\\n.monaco-keybinding {\\n\\tdisplay: flex;\\n\\talign-items: center;\\n\\tline-height: 10px;\\n}\\n\\n.monaco-keybinding > .monaco-keybinding-key {\\n\\tdisplay: inline-block;\\n\\tborder-style: solid;\\n\\tborder-width: 1px;\\n\\tborder-radius: 3px;\\n\\tvertical-align: middle;\\n\\tfont-size: 11px;\\n\\tpadding: 3px 5px;\\n\\tmargin: 0 2px;\\n}\\n\\n.monaco-keybinding > .monaco-keybinding-key:first-child {\\n\\tmargin-left: 0;\\n}\\n\\n.monaco-keybinding > .monaco-keybinding-key:last-child {\\n\\tmargin-right: 0;\\n}\\n\\n.monaco-keybinding > .monaco-keybinding-key-separator {\\n\\tdisplay: inline-block;\\n}\\n\\n.monaco-keybinding > .monaco-keybinding-key-chord-separator {\\n\\twidth: 6px;\\n}\\n\", \"\"]);\n                const a = r\n            },\n            33967: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \"/*---------------------------------------------------------------------------------------------\\n *  Copyright (c) Microsoft Corporation. All rights reserved.\\n *  Licensed under the MIT License. See License.txt in the project root for license information.\\n *--------------------------------------------------------------------------------------------*/\\n\\n.monaco-list {\\n\\tposition: relative;\\n\\theight: 100%;\\n\\twidth: 100%;\\n\\twhite-space: nowrap;\\n}\\n\\n.monaco-list.mouse-support {\\n\\t-moz-user-select: none;\\n\\t     user-select: none;\\n\\t-webkit-user-select: none;\\n\\t-ms-user-select: none;\\n}\\n\\n.monaco-list > .monaco-scrollable-element {\\n\\theight: 100%;\\n}\\n\\n.monaco-list-rows {\\n\\tposition: relative;\\n\\twidth: 100%;\\n\\theight: 100%;\\n}\\n\\n.monaco-list.horizontal-scrolling .monaco-list-rows {\\n\\twidth: auto;\\n\\tmin-width: 100%;\\n}\\n\\n.monaco-list-row {\\n\\tposition: absolute;\\n\\tbox-sizing: border-box;\\n\\toverflow: hidden;\\n\\twidth: 100%;\\n}\\n\\n.monaco-list.mouse-support .monaco-list-row {\\n\\tcursor: pointer;\\n\\ttouch-action: none;\\n}\\n\\n/* for OS X ballistic scrolling */\\n.monaco-list-row.scrolling {\\n\\tdisplay: none !important;\\n}\\n\\n/* Focus */\\n.monaco-list.element-focused,\\n.monaco-list.selection-single,\\n.monaco-list.selection-multiple {\\n\\toutline: 0 !important;\\n}\\n\\n/* Dnd */\\n.monaco-drag-image {\\n\\tdisplay: inline-block;\\n\\tpadding: 1px 7px;\\n\\tborder-radius: 10px;\\n\\tfont-size: 12px;\\n\\tposition: absolute;\\n\\tz-index: 1000;\\n}\\n\\n/* Type filter */\\n\\n.monaco-list-type-filter {\\n\\tdisplay: flex;\\n\\talign-items: center;\\n\\tposition: absolute;\\n\\tborder-radius: 2px;\\n\\tpadding: 0px 3px;\\n\\tmax-width: calc(100% - 10px);\\n\\ttext-overflow: ellipsis;\\n\\toverflow: hidden;\\n\\ttext-align: right;\\n\\tbox-sizing: border-box;\\n\\tcursor: all-scroll;\\n\\tfont-size: 13px;\\n\\tline-height: 18px;\\n\\theight: 20px;\\n\\tz-index: 1;\\n\\ttop: 4px;\\n}\\n\\n.monaco-list-type-filter.dragging {\\n\\ttransition: top 0.2s, left 0.2s;\\n}\\n\\n.monaco-list-type-filter.ne {\\n\\tright: 4px;\\n}\\n\\n.monaco-list-type-filter.nw {\\n\\tleft: 4px;\\n}\\n\\n.monaco-list-type-filter > .controls {\\n\\tdisplay: flex;\\n\\talign-items: center;\\n\\tbox-sizing: border-box;\\n\\ttransition: width 0.2s;\\n\\twidth: 0;\\n}\\n\\n.monaco-list-type-filter.dragging > .controls,\\n.monaco-list-type-filter:hover > .controls {\\n\\twidth: 36px;\\n}\\n\\n.monaco-list-type-filter > .controls > * {\\n\\tborder: none;\\n\\tbox-sizing: border-box;\\n\\t-webkit-appearance: none;\\n\\t-moz-appearance: none;\\n\\tbackground: none;\\n\\twidth: 16px;\\n\\theight: 16px;\\n\\tflex-shrink: 0;\\n\\tmargin: 0;\\n\\tpadding: 0;\\n\\tdisplay: flex;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n\\tcursor: pointer;\\n}\\n\\n.monaco-list-type-filter > .controls > .filter {\\n\\tmargin-left: 4px;\\n}\\n\\n.monaco-list-type-filter-message {\\n\\tposition: absolute;\\n\\tbox-sizing: border-box;\\n\\twidth: 100%;\\n\\theight: 100%;\\n\\ttop: 0;\\n\\tleft: 0;\\n\\tpadding: 40px 1em 1em 1em;\\n\\ttext-align: center;\\n\\twhite-space: normal;\\n\\topacity: 0.7;\\n\\tpointer-events: none;\\n}\\n\\n.monaco-list-type-filter-message:empty {\\n\\tdisplay: none;\\n}\\n\\n/* Electron */\\n\\n.monaco-list-type-filter {\\n\\tcursor: grab;\\n}\\n\\n.monaco-list-type-filter.dragging {\\n\\tcursor: grabbing;\\n}\\n\", \"\"]);\n                const a = r\n            },\n            64147: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => p\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s),\n                    a = i(61667),\n                    l = i.n(a),\n                    c = new URL(i(4768), i.b),\n                    d = new URL(i(35555), i.b),\n                    h = r()(o()),\n                    u = l()(c),\n                    g = l()(d);\n                h.push([e.id, `/*---------------------------------------------------------------------------------------------\\n *  Copyright (c) Microsoft Corporation. All rights reserved.\\n *  Licensed under the MIT License. See License.txt in the project root for license information.\\n *--------------------------------------------------------------------------------------------*/\\n\\n.monaco-mouse-cursor-text {\\n\\tcursor: text;\\n}\\n\\n/* The following selector looks a bit funny, but that is needed to cover all the workbench and the editor!! */\\n.vs-dark .mac .monaco-mouse-cursor-text, .hc-black .mac .monaco-mouse-cursor-text,\\n.vs-dark.mac .monaco-mouse-cursor-text, .hc-black.mac .monaco-mouse-cursor-text {\\n\\tcursor: -webkit-image-set(url(${u}) 1x, url(${g}) 2x) 5 8, text;\\n}\\n`, \"\"]);\n                const p = h\n            },\n            56127: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \"/*---------------------------------------------------------------------------------------------\\n *  Copyright (c) Microsoft Corporation. All rights reserved.\\n *  Licensed under the MIT License. See License.txt in the project root for license information.\\n *--------------------------------------------------------------------------------------------*/\\n\\n.monaco-progress-container {\\n\\twidth: 100%;\\n\\theight: 5px;\\n\\toverflow: hidden; /* keep progress bit in bounds */\\n}\\n\\n.monaco-progress-container .progress-bit {\\n\\twidth: 2%;\\n\\theight: 5px;\\n\\tposition: absolute;\\n\\tleft: 0;\\n\\tdisplay: none;\\n}\\n\\n.monaco-progress-container.active .progress-bit {\\n\\tdisplay: inherit;\\n}\\n\\n.monaco-progress-container.discrete .progress-bit {\\n\\tleft: 0;\\n\\ttransition: width 100ms linear;\\n}\\n\\n.monaco-progress-container.discrete.done .progress-bit {\\n\\twidth: 100%;\\n}\\n\\n.monaco-progress-container.infinite .progress-bit {\\n\\tanimation-name: progress;\\n\\tanimation-duration: 4s;\\n\\tanimation-iteration-count: infinite;\\n\\tanimation-timing-function: linear;\\n\\ttransform: translate3d(0px, 0px, 0px);\\n}\\n\\n/**\\n * The progress bit has a width: 2% (1/50) of the parent container. The animation moves it from 0% to 100% of\\n * that container. Since translateX is relative to the progress bit size, we have to multiple it with\\n * its relative size to the parent container:\\n * parent width: 5000%\\n *    bit width: 100%\\n * translateX should be as follow:\\n *  50%: 5000% * 50% - 50% (set to center) = 2450%\\n * 100%: 5000% * 100% - 100% (do not overflow) = 4900%\\n */\\n@keyframes progress { from { transform: translateX(0%) scaleX(1) } 50% { transform: translateX(2500%) scaleX(3) } to { transform: translateX(4900%) scaleX(1) } }\\n\", \"\"]);\n                const a = r\n            },\n            19667: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \"/*---------------------------------------------------------------------------------------------\\n *  Copyright (c) Microsoft Corporation. All rights reserved.\\n *  Licensed under the MIT License. See License.txt in the project root for license information.\\n *--------------------------------------------------------------------------------------------*/\\n\\n:root {\\n\\t--sash-size: 4px;\\n}\\n\\n.monaco-sash {\\n\\tposition: absolute;\\n\\tz-index: 35;\\n\\ttouch-action: none;\\n}\\n\\n.monaco-sash.disabled {\\n\\tpointer-events: none;\\n}\\n\\n.monaco-sash.mac.vertical {\\n\\tcursor: col-resize;\\n}\\n\\n.monaco-sash.vertical.minimum {\\n\\tcursor: e-resize;\\n}\\n\\n.monaco-sash.vertical.maximum {\\n\\tcursor: w-resize;\\n}\\n\\n.monaco-sash.mac.horizontal {\\n\\tcursor: row-resize;\\n}\\n\\n.monaco-sash.horizontal.minimum {\\n\\tcursor: s-resize;\\n}\\n\\n.monaco-sash.horizontal.maximum {\\n\\tcursor: n-resize;\\n}\\n\\n.monaco-sash.disabled {\\n\\tcursor: default !important;\\n\\tpointer-events: none !important;\\n}\\n\\n.monaco-sash.vertical {\\n\\tcursor: ew-resize;\\n\\ttop: 0;\\n\\twidth: var(--sash-size);\\n\\theight: 100%;\\n}\\n\\n.monaco-sash.horizontal {\\n\\tcursor: ns-resize;\\n\\tleft: 0;\\n\\twidth: 100%;\\n\\theight: var(--sash-size);\\n}\\n\\n.monaco-sash:not(.disabled) > .orthogonal-drag-handle {\\n\\tcontent: \\\" \\\";\\n\\theight: calc(var(--sash-size) * 2);\\n\\twidth: calc(var(--sash-size) * 2);\\n\\tz-index: 100;\\n\\tdisplay: block;\\n\\tcursor: all-scroll;\\n\\tposition: absolute;\\n}\\n\\n.monaco-sash.horizontal.orthogonal-edge-north:not(.disabled)\\n\\t> .orthogonal-drag-handle.start,\\n.monaco-sash.horizontal.orthogonal-edge-south:not(.disabled)\\n\\t> .orthogonal-drag-handle.end {\\n\\tcursor: nwse-resize;\\n}\\n\\n.monaco-sash.horizontal.orthogonal-edge-north:not(.disabled)\\n\\t> .orthogonal-drag-handle.end,\\n.monaco-sash.horizontal.orthogonal-edge-south:not(.disabled)\\n\\t> .orthogonal-drag-handle.start {\\n\\tcursor: nesw-resize;\\n}\\n\\n.monaco-sash.vertical > .orthogonal-drag-handle.start {\\n\\tleft: calc(var(--sash-size) * -0.5);\\n\\ttop: calc(var(--sash-size) * -1);\\n}\\n.monaco-sash.vertical > .orthogonal-drag-handle.end {\\n\\tleft: calc(var(--sash-size) * -0.5);\\n\\tbottom: calc(var(--sash-size) * -1);\\n}\\n.monaco-sash.horizontal > .orthogonal-drag-handle.start {\\n\\ttop: calc(var(--sash-size) * -0.5);\\n\\tleft: calc(var(--sash-size) * -1);\\n}\\n.monaco-sash.horizontal > .orthogonal-drag-handle.end {\\n\\ttop: calc(var(--sash-size) * -0.5);\\n\\tright: calc(var(--sash-size) * -1);\\n}\\n\\n.monaco-sash:before {\\n\\tcontent: '';\\n\\tpointer-events: none;\\n\\tposition: absolute;\\n\\twidth: 100%;\\n\\theight: 100%;\\n\\ttransition: background-color 0.1s ease-out;\\n\\tbackground: transparent;\\n}\\n\\n.monaco-sash.vertical:before {\\n\\twidth: var(--sash-hover-size);\\n\\tleft: calc(50% - (var(--sash-hover-size) / 2));\\n}\\n\\n.monaco-sash.horizontal:before {\\n\\theight: var(--sash-hover-size);\\n\\ttop: calc(50% - (var(--sash-hover-size) / 2));\\n}\\n\\n/** Debug **/\\n\\n.monaco-sash.debug {\\n\\tbackground: cyan;\\n}\\n\\n.monaco-sash.debug.disabled {\\n\\tbackground: rgba(0, 255, 255, 0.2);\\n}\\n\\n.monaco-sash.debug:not(.disabled) > .orthogonal-drag-handle {\\n\\tbackground: red;\\n}\\n\", \"\"]);\n                const a = r\n            },\n            51022: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \"/*---------------------------------------------------------------------------------------------\\n *  Copyright (c) Microsoft Corporation. All rights reserved.\\n *  Licensed under the MIT License. See License.txt in the project root for license information.\\n *--------------------------------------------------------------------------------------------*/\\n\\n/* Arrows */\\n.monaco-scrollable-element > .scrollbar > .scra {\\n\\tcursor: pointer;\\n\\tfont-size: 11px !important;\\n}\\n\\n.monaco-scrollable-element > .visible {\\n\\topacity: 1;\\n\\n\\t/* Background rule added for IE9 - to allow clicks on dom node */\\n\\tbackground:rgba(0,0,0,0);\\n\\n\\ttransition: opacity 100ms linear;\\n}\\n.monaco-scrollable-element > .invisible {\\n\\topacity: 0;\\n\\tpointer-events: none;\\n}\\n.monaco-scrollable-element > .invisible.fade {\\n\\ttransition: opacity 800ms linear;\\n}\\n\\n/* Scrollable Content Inset Shadow */\\n.monaco-scrollable-element > .shadow {\\n\\tposition: absolute;\\n\\tdisplay: none;\\n}\\n.monaco-scrollable-element > .shadow.top {\\n\\tdisplay: block;\\n\\ttop: 0;\\n\\tleft: 3px;\\n\\theight: 3px;\\n\\twidth: 100%;\\n}\\n.monaco-scrollable-element > .shadow.left {\\n\\tdisplay: block;\\n\\ttop: 3px;\\n\\tleft: 0;\\n\\theight: 100%;\\n\\twidth: 3px;\\n}\\n.monaco-scrollable-element > .shadow.top-left-corner {\\n\\tdisplay: block;\\n\\ttop: 0;\\n\\tleft: 0;\\n\\theight: 3px;\\n\\twidth: 3px;\\n}\\n\", \"\"]);\n                const a = r\n            },\n            5785: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \"/*---------------------------------------------------------------------------------------------\\n *  Copyright (c) Microsoft Corporation. All rights reserved.\\n *  Licensed under the MIT License. See License.txt in the project root for license information.\\n *--------------------------------------------------------------------------------------------*/\\n\\n.monaco-split-view2 {\\n\\tposition: relative;\\n\\twidth: 100%;\\n\\theight: 100%;\\n}\\n\\n.monaco-split-view2 > .sash-container {\\n\\tposition: absolute;\\n\\twidth: 100%;\\n\\theight: 100%;\\n\\tpointer-events: none;\\n}\\n\\n.monaco-split-view2 > .sash-container > .monaco-sash {\\n\\tpointer-events: initial;\\n}\\n\\n.monaco-split-view2 > .monaco-scrollable-element {\\n\\twidth: 100%;\\n\\theight: 100%;\\n}\\n\\n.monaco-split-view2 > .monaco-scrollable-element > .split-view-container {\\n\\twidth: 100%;\\n\\theight: 100%;\\n\\twhite-space: nowrap;\\n\\tposition: relative;\\n}\\n\\n.monaco-split-view2 > .monaco-scrollable-element > .split-view-container > .split-view-view {\\n\\twhite-space: initial;\\n\\tposition: absolute;\\n}\\n\\n.monaco-split-view2 > .monaco-scrollable-element > .split-view-container > .split-view-view:not(.visible) {\\n\\tdisplay: none;\\n}\\n\\n.monaco-split-view2.vertical > .monaco-scrollable-element > .split-view-container > .split-view-view {\\n\\twidth: 100%;\\n}\\n\\n.monaco-split-view2.horizontal > .monaco-scrollable-element > .split-view-container > .split-view-view {\\n\\theight: 100%;\\n}\\n\\n.monaco-split-view2.separator-border > .monaco-scrollable-element > .split-view-container > .split-view-view:not(:first-child)::before {\\n\\tcontent: ' ';\\n\\tposition: absolute;\\n\\ttop: 0;\\n\\tleft: 0;\\n\\tz-index: 5;\\n\\tpointer-events: none;\\n\\tbackground-color: var(--separator-border);\\n}\\n\\n.monaco-split-view2.separator-border.horizontal > .monaco-scrollable-element > .split-view-container > .split-view-view:not(:first-child)::before {\\n\\theight: 100%;\\n\\twidth: 1px;\\n}\\n\\n.monaco-split-view2.separator-border.vertical > .monaco-scrollable-element > .split-view-container > .split-view-view:not(:first-child)::before {\\n\\theight: 1px;\\n\\twidth: 100%;\\n}\\n\", \"\"]);\n                const a = r\n            },\n            39771: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, '/*---------------------------------------------------------------------------------------------\\n *  Copyright (c) Microsoft Corporation. All rights reserved.\\n *  Licensed under the MIT License. See License.txt in the project root for license information.\\n *--------------------------------------------------------------------------------------------*/\\n\\n.monaco-table {\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n\\tposition: relative;\\n\\theight: 100%;\\n\\twidth: 100%;\\n\\twhite-space: nowrap;\\n}\\n\\n.monaco-table > .monaco-split-view2 {\\n\\tborder-bottom: 1px solid transparent;\\n}\\n\\n.monaco-table > .monaco-list {\\n\\tflex: 1;\\n}\\n\\n.monaco-table-tr {\\n\\tdisplay: flex;\\n\\theight: 100%;\\n}\\n\\n.monaco-table-th {\\n\\twidth: 100%;\\n\\theight: 100%;\\n\\tfont-weight: bold;\\n\\toverflow: hidden;\\n\\ttext-overflow: ellipsis;\\n}\\n\\n.monaco-table-th,\\n.monaco-table-td {\\n\\tbox-sizing: border-box;\\n\\tflex-shrink: 0;\\n\\toverflow: hidden;\\n\\twhite-space: nowrap;\\n\\ttext-overflow: ellipsis;\\n}\\n\\n.monaco-table > .monaco-split-view2 .monaco-sash.vertical::before {\\n\\tcontent: \"\";\\n\\tposition: absolute;\\n\\tleft: calc(var(--sash-size) / 2);\\n\\twidth: 0;\\n\\tborder-left: 1px solid transparent;\\n}\\n\\n.monaco-table > .monaco-split-view2,\\n.monaco-table > .monaco-split-view2 .monaco-sash.vertical::before {\\n\\ttransition: border-color 0.2s ease-out;\\n}\\n/*\\n.monaco-table:hover > .monaco-split-view2,\\n.monaco-table:hover > .monaco-split-view2 .monaco-sash.vertical::before {\\n\\tborder-color: rgba(204, 204, 204, 0.2);\\n} */\\n', \"\"]);\n                const a = r\n            },\n            90078: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \"/*---------------------------------------------------------------------------------------------\\n *  Copyright (c) Microsoft Corporation. All rights reserved.\\n *  Licensed under the MIT License. See License.txt in the project root for license information.\\n *--------------------------------------------------------------------------------------------*/\\n\\n.monaco-tl-row {\\n\\tdisplay: flex;\\n\\theight: 100%;\\n\\talign-items: center;\\n\\tposition: relative;\\n}\\n\\n.monaco-tl-indent {\\n\\theight: 100%;\\n\\tposition: absolute;\\n\\ttop: 0;\\n\\tleft: 16px;\\n\\tpointer-events: none;\\n}\\n\\n.hide-arrows .monaco-tl-indent {\\n\\tleft: 12px;\\n}\\n\\n.monaco-tl-indent > .indent-guide {\\n\\tdisplay: inline-block;\\n\\tbox-sizing: border-box;\\n\\theight: 100%;\\n\\tborder-left: 1px solid transparent;\\n\\ttransition: border-color 0.1s linear;\\n}\\n\\n.monaco-tl-twistie,\\n.monaco-tl-contents {\\n\\theight: 100%;\\n}\\n\\n.monaco-tl-twistie {\\n\\tfont-size: 10px;\\n\\ttext-align: right;\\n\\tpadding-right: 6px;\\n\\tflex-shrink: 0;\\n\\twidth: 16px;\\n\\tdisplay: flex !important;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n\\ttransform: translateX(3px);\\n}\\n\\n.monaco-tl-contents {\\n\\tflex: 1;\\n\\toverflow: hidden;\\n}\\n\\n.monaco-tl-twistie::before {\\n\\tborder-radius: 20px;\\n}\\n\\n.monaco-tl-twistie.collapsed::before {\\n\\ttransform: rotate(-90deg);\\n}\\n\\n.monaco-tl-twistie.codicon-tree-item-loading::before {\\n\\t/* Use steps to throttle FPS to reduce CPU usage */\\n\\tanimation: codicon-spin 1.25s steps(30) infinite;\\n}\\n\", \"\"]);\n                const a = r\n            },\n            82749: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \"/*---------------------------------------------------------------------------------------------\\n *  Copyright (c) Microsoft Corporation. All rights reserved.\\n *  Licensed under the MIT License. See License.txt in the project root for license information.\\n *--------------------------------------------------------------------------------------------*/\\n\\n.quick-input-widget {\\n\\tposition: absolute;\\n\\twidth: 600px;\\n\\tz-index: 2000;\\n\\tpadding: 0 1px 1px 1px;\\n\\tleft: 50%;\\n\\tmargin-left: -300px;\\n}\\n\\n.quick-input-titlebar {\\n\\tdisplay: flex;\\n\\talign-items: center;\\n}\\n\\n.quick-input-left-action-bar {\\n\\tdisplay: flex;\\n\\tmargin-left: 4px;\\n\\tflex: 1;\\n}\\n\\n.quick-input-title {\\n\\tpadding: 3px 0px;\\n\\ttext-align: center;\\n\\ttext-overflow: ellipsis;\\n\\toverflow: hidden;\\n}\\n\\n.quick-input-right-action-bar {\\n\\tdisplay: flex;\\n\\tmargin-right: 4px;\\n\\tflex: 1;\\n}\\n\\n.quick-input-right-action-bar > .actions-container {\\n\\tjustify-content: flex-end;\\n}\\n\\n.quick-input-titlebar .monaco-action-bar .action-label.codicon {\\n\\tbackground-position: center;\\n\\tbackground-repeat: no-repeat;\\n\\tpadding: 2px;\\n}\\n\\n.quick-input-description {\\n\\tmargin: 6px;\\n}\\n\\n.quick-input-header .quick-input-description {\\n\\tmargin: 4px 2px;\\n}\\n\\n.quick-input-header {\\n\\tdisplay: flex;\\n\\tpadding: 6px 6px 0px 6px;\\n\\tmargin-bottom: -2px;\\n}\\n\\n.quick-input-widget.hidden-input .quick-input-header {\\n\\t/* reduce margins and paddings when input box hidden */\\n\\tpadding: 0;\\n\\tmargin-bottom: 0;\\n}\\n\\n.quick-input-and-message {\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n\\tflex-grow: 1;\\n\\tmin-width: 0;\\n\\tposition: relative;\\n}\\n\\n.quick-input-check-all {\\n\\talign-self: center;\\n\\tmargin: 0;\\n}\\n\\n.quick-input-filter {\\n\\tflex-grow: 1;\\n\\tdisplay: flex;\\n\\tposition: relative;\\n}\\n\\n.quick-input-box {\\n\\tflex-grow: 1;\\n}\\n\\n.quick-input-widget.show-checkboxes .quick-input-box,\\n.quick-input-widget.show-checkboxes .quick-input-message {\\n\\tmargin-left: 5px;\\n}\\n\\n.quick-input-visible-count {\\n\\tposition: absolute;\\n\\tleft: -10000px;\\n}\\n\\n.quick-input-count {\\n\\talign-self: center;\\n\\tposition: absolute;\\n\\tright: 4px;\\n\\tdisplay: flex;\\n\\talign-items: center;\\n}\\n\\n.quick-input-count .monaco-count-badge {\\n\\tvertical-align: middle;\\n\\tpadding: 2px 4px;\\n\\tborder-radius: 2px;\\n\\tmin-height: auto;\\n\\tline-height: normal;\\n}\\n\\n.quick-input-action {\\n\\tmargin-left: 6px;\\n}\\n\\n.quick-input-action .monaco-text-button {\\n\\tfont-size: 11px;\\n\\tpadding: 0 6px;\\n\\tdisplay: flex;\\n\\theight: 27.5px;\\n\\talign-items: center;\\n}\\n\\n.quick-input-message {\\n\\tmargin-top: -1px;\\n\\tpadding: 5px 5px 2px 5px;\\n\\toverflow-wrap: break-word;\\n}\\n\\n.quick-input-message > .codicon {\\n\\tmargin: 0 0.2em;\\n\\tvertical-align: text-bottom;\\n}\\n\\n.quick-input-progress.monaco-progress-container {\\n\\tposition: relative;\\n}\\n\\n.quick-input-progress.monaco-progress-container,\\n.quick-input-progress.monaco-progress-container .progress-bit {\\n\\theight: 2px;\\n}\\n\\n.quick-input-list {\\n\\tline-height: 22px;\\n\\tmargin-top: 6px;\\n}\\n\\n.quick-input-widget.hidden-input .quick-input-list {\\n\\tmargin-top: 0; /* reduce margins when input box hidden */\\n}\\n\\n.quick-input-list .monaco-list {\\n\\toverflow: hidden;\\n\\tmax-height: calc(20 * 22px);\\n}\\n\\n.quick-input-list .quick-input-list-entry {\\n\\tbox-sizing: border-box;\\n\\toverflow: hidden;\\n\\tdisplay: flex;\\n\\theight: 100%;\\n\\tpadding: 0 6px;\\n}\\n\\n.quick-input-list .quick-input-list-entry.quick-input-list-separator-border {\\n\\tborder-top-width: 1px;\\n\\tborder-top-style: solid;\\n}\\n\\n.quick-input-list .monaco-list-row[data-index=\\\"0\\\"] .quick-input-list-entry.quick-input-list-separator-border {\\n\\tborder-top-style: none;\\n}\\n\\n.quick-input-list .quick-input-list-label {\\n\\toverflow: hidden;\\n\\tdisplay: flex;\\n\\theight: 100%;\\n\\tflex: 1;\\n}\\n\\n.quick-input-list .quick-input-list-checkbox {\\n\\talign-self: center;\\n\\tmargin: 0;\\n}\\n\\n.quick-input-list .quick-input-list-rows {\\n\\toverflow: hidden;\\n\\ttext-overflow: ellipsis;\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n\\theight: 100%;\\n\\tflex: 1;\\n\\tmargin-left: 5px;\\n}\\n\\n.quick-input-widget.show-checkboxes .quick-input-list .quick-input-list-rows {\\n\\tmargin-left: 10px;\\n}\\n\\n.quick-input-widget .quick-input-list .quick-input-list-checkbox {\\n\\tdisplay: none;\\n}\\n.quick-input-widget.show-checkboxes .quick-input-list .quick-input-list-checkbox {\\n\\tdisplay: inline;\\n}\\n\\n.quick-input-list .quick-input-list-rows > .quick-input-list-row {\\n\\tdisplay: flex;\\n\\talign-items: center;\\n}\\n\\n.quick-input-list .quick-input-list-rows > .quick-input-list-row .monaco-icon-label,\\n.quick-input-list .quick-input-list-rows > .quick-input-list-row .monaco-icon-label .monaco-icon-label-container > .monaco-icon-name-container {\\n\\tflex: 1; /* make sure the icon label grows within the row */\\n}\\n\\n.quick-input-list .quick-input-list-rows > .quick-input-list-row .codicon[class*='codicon-'] {\\n\\tvertical-align: text-bottom;\\n}\\n\\n.quick-input-list .quick-input-list-rows .monaco-highlighted-label span {\\n\\topacity: 1;\\n}\\n\\n.quick-input-list .quick-input-list-entry .quick-input-list-entry-keybinding {\\n\\tmargin-right: 8px; /* separate from the separator label or scrollbar if any */\\n}\\n\\n.quick-input-list .quick-input-list-label-meta {\\n\\topacity: 0.7;\\n\\tline-height: normal;\\n\\ttext-overflow: ellipsis;\\n\\toverflow: hidden;\\n}\\n\\n.quick-input-list .monaco-highlighted-label .highlight {\\n\\tfont-weight: bold;\\n}\\n\\n.quick-input-list .quick-input-list-entry .quick-input-list-separator {\\n\\tmargin-right: 8px; /* separate from keybindings or actions */\\n}\\n\\n.quick-input-list .quick-input-list-entry-action-bar {\\n\\tdisplay: flex;\\n\\tflex: 0;\\n\\toverflow: visible;\\n}\\n\\n.quick-input-list .quick-input-list-entry-action-bar .action-label {\\n\\t/*\\n\\t * By default, actions in the quick input action bar are hidden\\n\\t * until hovered over them or selected.\\n\\t */\\n\\tdisplay: none;\\n}\\n\\n.quick-input-list .quick-input-list-entry-action-bar .action-label.codicon {\\n\\tmargin-right: 4px;\\n\\tpadding: 0px 2px 2px 2px;\\n}\\n\\n.quick-input-list .quick-input-list-entry-action-bar {\\n\\tmargin-top: 1px;\\n\\tmargin-right: 4px; /* separate from scrollbar */\\n}\\n\\n.quick-input-list .quick-input-list-entry .quick-input-list-entry-action-bar .action-label.always-visible,\\n.quick-input-list .quick-input-list-entry:hover .quick-input-list-entry-action-bar .action-label,\\n.quick-input-list .monaco-list-row.focused .quick-input-list-entry-action-bar .action-label {\\n\\tdisplay: flex;\\n}\\n\\n/* focused items in quick pick */\\n.quick-input-list .monaco-list-row.focused .monaco-keybinding-key,\\n.quick-input-list .monaco-list-row.focused .quick-input-list-entry .quick-input-list-separator {\\n\\tcolor: inherit\\n}\\n.quick-input-list .monaco-list-row.focused .monaco-keybinding-key {\\n\\tbackground: none;\\n}\\n\", \"\"]);\n                const a = r\n            },\n            22729: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \"/*---------------------------------------------------------------------------------------------\\n *  Copyright (c) Microsoft Corporation. All rights reserved.\\n *  Licensed under the MIT License. See License.txt in the project root for license information.\\n *--------------------------------------------------------------------------------------------*/\\n\\n.monaco-editor .inputarea {\\n\\tmin-width: 0;\\n\\tmin-height: 0;\\n\\tmargin: 0;\\n\\tpadding: 0;\\n\\tposition: absolute;\\n\\toutline: none !important;\\n\\tresize: none;\\n\\tborder: none;\\n\\toverflow: hidden;\\n\\tcolor: transparent;\\n\\tbackground-color: transparent;\\n}\\n/*.monaco-editor .inputarea {\\n\\tposition: fixed !important;\\n\\twidth: 800px !important;\\n\\theight: 500px !important;\\n\\ttop: initial !important;\\n\\tleft: initial !important;\\n\\tbottom: 0 !important;\\n\\tright: 0 !important;\\n\\tcolor: black !important;\\n\\tbackground: white !important;\\n\\tline-height: 15px !important;\\n\\tfont-size: 14px !important;\\n}*/\\n.monaco-editor .inputarea.ime-input {\\n\\tz-index: 10;\\n}\\n\", \"\"]);\n                const a = r\n            },\n            67615: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \"/*---------------------------------------------------------------------------------------------\\n *  Copyright (c) Microsoft Corporation. All rights reserved.\\n *  Licensed under the MIT License. See License.txt in the project root for license information.\\n *--------------------------------------------------------------------------------------------*/\\n\\n.monaco-editor .view-overlays .current-line {\\n\\tdisplay: block;\\n\\tposition: absolute;\\n\\tleft: 0;\\n\\ttop: 0;\\n\\tbox-sizing: border-box;\\n}\\n\\n.monaco-editor .margin-view-overlays .current-line {\\n\\tdisplay: block;\\n\\tposition: absolute;\\n\\tleft: 0;\\n\\ttop: 0;\\n\\tbox-sizing: border-box;\\n}\\n\\n.monaco-editor .margin-view-overlays .current-line.current-line-margin.current-line-margin-both {\\n\\tborder-right: 0;\\n}\\n\", \"\"]);\n                const a = r\n            },\n            32429: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \"/*---------------------------------------------------------------------------------------------\\n *  Copyright (c) Microsoft Corporation. All rights reserved.\\n *  Licensed under the MIT License. See License.txt in the project root for license information.\\n *--------------------------------------------------------------------------------------------*/\\n\\n/*\\n\\tKeeping name short for faster parsing.\\n\\tcdr = core decorations rendering (div)\\n*/\\n.monaco-editor .lines-content .cdr {\\n\\tposition: absolute;\\n}\", \"\"]);\n                const a = r\n            },\n            84891: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \"/*---------------------------------------------------------------------------------------------\\n *  Copyright (c) Microsoft Corporation. All rights reserved.\\n *  Licensed under the MIT License. See License.txt in the project root for license information.\\n *--------------------------------------------------------------------------------------------*/\\n\\n.monaco-editor .glyph-margin {\\n\\tposition: absolute;\\n\\ttop: 0;\\n}\\n\\n/*\\n\\tKeeping name short for faster parsing.\\n\\tcgmr = core glyph margin rendering (div)\\n*/\\n.monaco-editor .margin-view-overlays .cgmr {\\n\\tposition: absolute;\\n\\tdisplay: flex;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\", \"\"]);\n                const a = r\n            },\n            52073: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \"/*---------------------------------------------------------------------------------------------\\n *  Copyright (c) Microsoft Corporation. All rights reserved.\\n *  Licensed under the MIT License. See License.txt in the project root for license information.\\n *--------------------------------------------------------------------------------------------*/\\n\\n.monaco-editor .lines-content .core-guide {\\n\\tposition: absolute;\\n\\tbox-sizing: border-box;\\n}\\n\", \"\"]);\n                const a = r\n            },\n            1715: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \"/*---------------------------------------------------------------------------------------------\\n *  Copyright (c) Microsoft Corporation. All rights reserved.\\n *  Licensed under the MIT License. See License.txt in the project root for license information.\\n *--------------------------------------------------------------------------------------------*/\\n\\n.monaco-editor .margin-view-overlays .line-numbers {\\n\\tfont-variant-numeric: tabular-nums;\\n\\tposition: absolute;\\n\\ttext-align: right;\\n\\tdisplay: inline-block;\\n\\tvertical-align: middle;\\n\\tbox-sizing: border-box;\\n\\tcursor: default;\\n\\theight: 100%;\\n}\\n\\n.monaco-editor .relative-current-line-number {\\n\\ttext-align: left;\\n\\tdisplay: inline-block;\\n\\twidth: 100%;\\n}\\n\\n.monaco-editor .margin-view-overlays .line-numbers.lh-odd {\\n\\tmargin-top: 1px;\\n}\\n\", \"\"]);\n                const a = r\n            },\n            19523: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \"/*---------------------------------------------------------------------------------------------\\n *  Copyright (c) Microsoft Corporation. All rights reserved.\\n *  Licensed under the MIT License. See License.txt in the project root for license information.\\n *--------------------------------------------------------------------------------------------*/\\n\\n/* Uncomment to see lines flashing when they're painted */\\n/*.monaco-editor .view-lines > .view-line {\\n\\tbackground-color: none;\\n\\tanimation-name: flash-background;\\n\\tanimation-duration: 800ms;\\n}\\n@keyframes flash-background {\\n\\t0%   { background-color: lightgreen; }\\n\\t100% { background-color: none }\\n}*/\\n\\n.mtkcontrol {\\n\\tcolor: rgb(255, 255, 255) !important;\\n\\tbackground: rgb(150, 0, 0) !important;\\n}\\n\\n.monaco-editor.no-user-select .lines-content,\\n.monaco-editor.no-user-select .view-line,\\n.monaco-editor.no-user-select .view-lines {\\n\\t-moz-user-select: none;\\n\\t     user-select: none;\\n\\t-webkit-user-select: none;\\n\\t-ms-user-select: none;\\n}\\n\\n.monaco-editor .view-lines {\\n\\twhite-space: nowrap;\\n}\\n\\n.monaco-editor .view-line {\\n\\tposition: absolute;\\n\\twidth: 100%;\\n}\\n\\n.monaco-editor .mtkz {\\n\\tdisplay: inline-block;\\n}\\n\\n/* TODO@tokenization bootstrap fix */\\n/*.monaco-editor .view-line > span > span {\\n\\tfloat: none;\\n\\tmin-height: inherit;\\n\\tmargin-left: inherit;\\n}*/\\n\", \"\"]);\n                const a = r\n            },\n            55228: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \"/*---------------------------------------------------------------------------------------------\\n *  Copyright (c) Microsoft Corporation. All rights reserved.\\n *  Licensed under the MIT License. See License.txt in the project root for license information.\\n *--------------------------------------------------------------------------------------------*/\\n.monaco-editor .lines-decorations {\\n\\tposition: absolute;\\n\\ttop: 0;\\n\\tbackground: white;\\n}\\n\\n/*\\n\\tKeeping name short for faster parsing.\\n\\tcldr = core lines decorations rendering (div)\\n*/\\n.monaco-editor .margin-view-overlays .cldr {\\n\\tposition: absolute;\\n\\theight: 100%;\\n}\", \"\"]);\n                const a = r\n            },\n            63490: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \"/*---------------------------------------------------------------------------------------------\\n *  Copyright (c) Microsoft Corporation. All rights reserved.\\n *  Licensed under the MIT License. See License.txt in the project root for license information.\\n *--------------------------------------------------------------------------------------------*/\\n\\n/*\\n\\tKeeping name short for faster parsing.\\n\\tcmdr = core margin decorations rendering (div)\\n*/\\n.monaco-editor .margin-view-overlays .cmdr {\\n\\tposition: absolute;\\n\\tleft: 0;\\n\\twidth: 100%;\\n\\theight: 100%;\\n}\", \"\"]);\n                const a = r\n            },\n            27751: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \"/*---------------------------------------------------------------------------------------------\\n *  Copyright (c) Microsoft Corporation. All rights reserved.\\n *  Licensed under the MIT License. See License.txt in the project root for license information.\\n *--------------------------------------------------------------------------------------------*/\\n\\n/* START cover the case that slider is visible on mouseover */\\n.monaco-editor .minimap.slider-mouseover .minimap-slider {\\n\\topacity: 0;\\n\\ttransition: opacity 100ms linear;\\n}\\n.monaco-editor .minimap.slider-mouseover:hover .minimap-slider {\\n\\topacity: 1;\\n}\\n.monaco-editor .minimap.slider-mouseover .minimap-slider.active {\\n\\topacity: 1;\\n}\\n/* END cover the case that slider is visible on mouseover */\\n\\n.monaco-editor .minimap-shadow-hidden {\\n\\tposition: absolute;\\n\\twidth: 0;\\n}\\n.monaco-editor .minimap-shadow-visible {\\n\\tposition: absolute;\\n\\tleft: -6px;\\n\\twidth: 6px;\\n}\\n.monaco-editor.no-minimap-shadow .minimap-shadow-visible {\\n\\tposition: absolute;\\n\\tleft: -1px;\\n\\twidth: 1px;\\n}\\n\", \"\"]);\n                const a = r\n            },\n            57789: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \"/*---------------------------------------------------------------------------------------------\\n *  Copyright (c) Microsoft Corporation. All rights reserved.\\n *  Licensed under the MIT License. See License.txt in the project root for license information.\\n *--------------------------------------------------------------------------------------------*/\\n.monaco-editor .overlayWidgets {\\n\\tposition: absolute;\\n\\ttop: 0;\\n\\tleft:0;\\n}\", \"\"]);\n                const a = r\n            },\n            97073: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \"/*---------------------------------------------------------------------------------------------\\n *  Copyright (c) Microsoft Corporation. All rights reserved.\\n *  Licensed under the MIT License. See License.txt in the project root for license information.\\n *--------------------------------------------------------------------------------------------*/\\n\\n.monaco-editor .view-ruler {\\n\\tposition: absolute;\\n\\ttop: 0;\\n}\", \"\"]);\n                const a = r\n            },\n            30458: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \"/*---------------------------------------------------------------------------------------------\\n *  Copyright (c) Microsoft Corporation. All rights reserved.\\n *  Licensed under the MIT License. See License.txt in the project root for license information.\\n *--------------------------------------------------------------------------------------------*/\\n\\n.monaco-editor .scroll-decoration {\\n\\tposition: absolute;\\n\\ttop: 0;\\n\\tleft: 0;\\n\\theight: 6px;\\n}\", \"\"]);\n                const a = r\n            },\n            43147: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \"/*---------------------------------------------------------------------------------------------\\n *  Copyright (c) Microsoft Corporation. All rights reserved.\\n *  Licensed under the MIT License. See License.txt in the project root for license information.\\n *--------------------------------------------------------------------------------------------*/\\n\\n/*\\n\\tKeeping name short for faster parsing.\\n\\tcslr = core selections layer rendering (div)\\n*/\\n.monaco-editor .lines-content .cslr {\\n\\tposition: absolute;\\n}\\n\\n.monaco-editor\\t\\t\\t.top-left-radius\\t\\t{ border-top-left-radius: 3px; }\\n.monaco-editor\\t\\t\\t.bottom-left-radius\\t\\t{ border-bottom-left-radius: 3px; }\\n.monaco-editor\\t\\t\\t.top-right-radius\\t\\t{ border-top-right-radius: 3px; }\\n.monaco-editor\\t\\t\\t.bottom-right-radius\\t{ border-bottom-right-radius: 3px; }\\n\\n.monaco-editor.hc-black .top-left-radius\\t\\t{ border-top-left-radius: 0; }\\n.monaco-editor.hc-black .bottom-left-radius\\t\\t{ border-bottom-left-radius: 0; }\\n.monaco-editor.hc-black .top-right-radius\\t\\t{ border-top-right-radius: 0; }\\n.monaco-editor.hc-black .bottom-right-radius\\t{ border-bottom-right-radius: 0; }\\n\", \"\"]);\n                const a = r\n            },\n            26649: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \"/*---------------------------------------------------------------------------------------------\\n *  Copyright (c) Microsoft Corporation. All rights reserved.\\n *  Licensed under the MIT License. See License.txt in the project root for license information.\\n *--------------------------------------------------------------------------------------------*/\\n.monaco-editor .cursors-layer {\\n\\tposition: absolute;\\n\\ttop: 0;\\n}\\n\\n.monaco-editor .cursors-layer > .cursor {\\n\\tposition: absolute;\\n\\toverflow: hidden;\\n}\\n\\n/* -- smooth-caret-animation -- */\\n.monaco-editor .cursors-layer.cursor-smooth-caret-animation > .cursor {\\n\\ttransition: all 80ms;\\n}\\n\\n/* -- block-outline-style -- */\\n.monaco-editor .cursors-layer.cursor-block-outline-style > .cursor {\\n\\tbox-sizing: border-box;\\n\\tbackground: transparent !important;\\n\\tborder-style: solid;\\n\\tborder-width: 1px;\\n}\\n\\n/* -- underline-style -- */\\n.monaco-editor .cursors-layer.cursor-underline-style > .cursor {\\n\\tborder-bottom-width: 2px;\\n\\tborder-bottom-style: solid;\\n\\tbackground: transparent !important;\\n\\tbox-sizing: border-box;\\n}\\n\\n/* -- underline-thin-style -- */\\n.monaco-editor .cursors-layer.cursor-underline-thin-style > .cursor {\\n\\tborder-bottom-width: 1px;\\n\\tborder-bottom-style: solid;\\n\\tbackground: transparent !important;\\n\\tbox-sizing: border-box;\\n}\\n\\n@keyframes monaco-cursor-smooth {\\n\\t0%,\\n\\t20% {\\n\\t\\topacity: 1;\\n\\t}\\n\\t60%,\\n\\t100% {\\n\\t\\topacity: 0;\\n\\t}\\n}\\n\\n@keyframes monaco-cursor-phase {\\n\\t0%,\\n\\t20% {\\n\\t\\topacity: 1;\\n\\t}\\n\\t90%,\\n\\t100% {\\n\\t\\topacity: 0;\\n\\t}\\n}\\n\\n@keyframes monaco-cursor-expand {\\n\\t0%,\\n\\t20% {\\n\\t\\ttransform: scaleY(1);\\n\\t}\\n\\t80%,\\n\\t100% {\\n\\t\\ttransform: scaleY(0);\\n\\t}\\n}\\n\\n.cursor-smooth {\\n\\tanimation: monaco-cursor-smooth 0.5s ease-in-out 0s 20 alternate;\\n}\\n\\n.cursor-phase {\\n\\tanimation: monaco-cursor-phase 0.5s ease-in-out 0s 20 alternate;\\n}\\n\\n.cursor-expand > .cursor {\\n\\tanimation: monaco-cursor-expand 0.5s ease-in-out 0s 20 alternate;\\n}\\n\", \"\"]);\n                const a = r\n            },\n            61927: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \"/*---------------------------------------------------------------------------------------------\\n *  Copyright (c) Microsoft Corporation. All rights reserved.\\n *  Licensed under the MIT License. See License.txt in the project root for license information.\\n *--------------------------------------------------------------------------------------------*/\\n/* ---------- DiffEditor ---------- */\\n\\n.monaco-diff-editor .diffOverview {\\n\\tz-index: 9;\\n}\\n\\n.monaco-diff-editor .diffOverview .diffViewport {\\n\\tz-index: 10;\\n}\\n\\n/* colors not externalized: using transparancy on background */\\n.monaco-diff-editor.vs\\t\\t\\t.diffOverview { background: rgba(0, 0, 0, 0.03); }\\n.monaco-diff-editor.vs-dark\\t\\t.diffOverview { background: rgba(255, 255, 255, 0.01); }\\n\\n.monaco-scrollable-element.modified-in-monaco-diff-editor.vs\\t\\t.scrollbar { background: rgba(0,0,0,0); }\\n.monaco-scrollable-element.modified-in-monaco-diff-editor.vs-dark\\t.scrollbar { background: rgba(0,0,0,0); }\\n.monaco-scrollable-element.modified-in-monaco-diff-editor.hc-black\\t.scrollbar { background: none; }\\n\\n.monaco-scrollable-element.modified-in-monaco-diff-editor .slider {\\n\\tz-index: 10;\\n}\\n.modified-in-monaco-diff-editor\\t\\t\\t\\t.slider.active { background: rgba(171, 171, 171, .4); }\\n.modified-in-monaco-diff-editor.hc-black\\t.slider.active { background: none; }\\n\\n/* ---------- Diff ---------- */\\n\\n.monaco-editor .insert-sign,\\n.monaco-diff-editor .insert-sign,\\n.monaco-editor .delete-sign,\\n.monaco-diff-editor .delete-sign {\\n\\tfont-size: 11px !important;\\n\\topacity: 0.7 !important;\\n\\tdisplay: flex !important;\\n\\talign-items: center;\\n}\\n.monaco-editor.hc-black .insert-sign,\\n.monaco-diff-editor.hc-black .insert-sign,\\n.monaco-editor.hc-black .delete-sign,\\n.monaco-diff-editor.hc-black .delete-sign {\\n\\topacity: 1;\\n}\\n\\n.monaco-editor .inline-deleted-margin-view-zone {\\n\\ttext-align: right;\\n}\\n.monaco-editor .inline-added-margin-view-zone {\\n\\ttext-align: right;\\n}\\n\\n/* ---------- Inline Diff ---------- */\\n\\n.monaco-editor .view-zones .view-lines .view-line span {\\n\\tdisplay: inline-block;\\n}\\n\\n.monaco-editor .margin-view-zones .lightbulb-glyph:hover {\\n\\tcursor: pointer;\\n}\\n\", \"\"]);\n                const a = r\n            },\n            44914: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \"/*---------------------------------------------------------------------------------------------\\n *  Copyright (c) Microsoft Corporation. All rights reserved.\\n *  Licensed under the MIT License. See License.txt in the project root for license information.\\n *--------------------------------------------------------------------------------------------*/\\n\\n.monaco-diff-editor .diff-review-line-number {\\n\\ttext-align: right;\\n\\tdisplay: inline-block;\\n}\\n\\n.monaco-diff-editor .diff-review {\\n\\tposition: absolute;\\n\\t-moz-user-select: none;\\n\\t     user-select: none;\\n\\t-webkit-user-select: none;\\n\\t-ms-user-select: none;\\n}\\n\\n.monaco-diff-editor .diff-review-summary {\\n\\tpadding-left: 10px;\\n}\\n\\n.monaco-diff-editor .diff-review-shadow {\\n\\tposition: absolute;\\n}\\n\\n.monaco-diff-editor .diff-review-row {\\n\\twhite-space: pre;\\n}\\n\\n.monaco-diff-editor .diff-review-table {\\n\\tdisplay: table;\\n\\tmin-width: 100%;\\n}\\n\\n.monaco-diff-editor .diff-review-row {\\n\\tdisplay: table-row;\\n\\twidth: 100%;\\n}\\n\\n.monaco-diff-editor .diff-review-spacer {\\n\\tdisplay: inline-block;\\n\\twidth: 10px;\\n\\tvertical-align: middle;\\n}\\n\\n.monaco-diff-editor .diff-review-spacer > .codicon {\\n\\tfont-size: 9px !important;\\n}\\n\\n.monaco-diff-editor .diff-review-actions {\\n\\tdisplay: inline-block;\\n\\tposition: absolute;\\n\\tright: 10px;\\n\\ttop: 2px;\\n}\\n\\n.monaco-diff-editor .diff-review-actions .action-label {\\n\\twidth: 16px;\\n\\theight: 16px;\\n\\tmargin: 2px 0;\\n}\\n\", \"\"]);\n                const a = r\n            },\n            89783: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \"/*---------------------------------------------------------------------------------------------\\n *  Copyright (c) Microsoft Corporation. All rights reserved.\\n *  Licensed under the MIT License. See License.txt in the project root for license information.\\n *--------------------------------------------------------------------------------------------*/\\n\\n/* -------------------- IE10 remove auto clear button -------------------- */\\n\\n::-ms-clear {\\n\\tdisplay: none;\\n}\\n\\n/* All widgets */\\n/* I am not a big fan of this rule */\\n.monaco-editor .editor-widget input {\\n\\tcolor: inherit;\\n}\\n\\n/* -------------------- Editor -------------------- */\\n\\n.monaco-editor {\\n\\tposition: relative;\\n\\toverflow: visible;\\n\\t-webkit-text-size-adjust: 100%;\\n}\\n\\n/* -------------------- Misc -------------------- */\\n\\n.monaco-editor .overflow-guard {\\n\\tposition: relative;\\n\\toverflow: hidden;\\n}\\n\\n.monaco-editor .view-overlays {\\n\\tposition: absolute;\\n\\ttop: 0;\\n}\\n\\n/*\\n.monaco-editor .auto-closed-character {\\n\\topacity: 0.3;\\n}\\n*/\\n\", \"\"]);\n                const a = r\n            },\n            5952: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \"/*---------------------------------------------------------------------------------------------\\n *  Copyright (c) Microsoft Corporation. All rights reserved.\\n *  Licensed under the MIT License. See License.txt in the project root for license information.\\n *--------------------------------------------------------------------------------------------*/\\n\\n.monaco-editor .selection-anchor {\\n\\tbackground-color: #007ACC;\\n\\twidth: 2px !important;\\n}\\n\", \"\"]);\n                const a = r\n            },\n            20300: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \"/*---------------------------------------------------------------------------------------------\\n *  Copyright (c) Microsoft Corporation. All rights reserved.\\n *  Licensed under the MIT License. See License.txt in the project root for license information.\\n *--------------------------------------------------------------------------------------------*/\\n\\n.monaco-editor .bracket-match {\\n\\tbox-sizing: border-box;\\n}\\n\", \"\"]);\n                const a = r\n            },\n            33856: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \"/*---------------------------------------------------------------------------------------------\\n *  Copyright (c) Microsoft Corporation. All rights reserved.\\n *  Licensed under the MIT License. See License.txt in the project root for license information.\\n *--------------------------------------------------------------------------------------------*/\\n\\n.monaco-editor .contentWidgets .codicon-light-bulb,\\n.monaco-editor .contentWidgets .codicon-lightbulb-autofix {\\n\\tdisplay: flex;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\\n.monaco-editor .contentWidgets .codicon-light-bulb:hover,\\n.monaco-editor .contentWidgets .codicon-lightbulb-autofix:hover {\\n\\tcursor: pointer;\\n}\\n\", \"\"]);\n                const a = r\n            },\n            98616: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \"/*---------------------------------------------------------------------------------------------\\n *  Copyright (c) Microsoft Corporation. All rights reserved.\\n *  Licensed under the MIT License. See License.txt in the project root for license information.\\n *--------------------------------------------------------------------------------------------*/\\n\\n.monaco-editor .codelens-decoration {\\n\\toverflow: hidden;\\n\\tdisplay: inline-block;\\n\\ttext-overflow: ellipsis;\\n\\twhite-space: nowrap;\\n}\\n\\n.monaco-editor .codelens-decoration > span,\\n.monaco-editor .codelens-decoration > a {\\n\\t-moz-user-select: none;\\n\\t     user-select: none;\\n\\t-webkit-user-select: none;\\n\\t-ms-user-select: none;\\n\\twhite-space: nowrap;\\n\\tvertical-align: sub;\\n}\\n\\n.monaco-editor .codelens-decoration > a {\\n\\ttext-decoration: none;\\n}\\n\\n.monaco-editor .codelens-decoration > a:hover {\\n\\tcursor: pointer;\\n}\\n\\n.monaco-editor .codelens-decoration .codicon {\\n\\tvertical-align: middle;\\n\\tcolor: currentColor !important;\\n}\\n\\n.monaco-editor .codelens-decoration > a:hover .codicon::before {\\n\\tcursor: pointer;\\n}\\n\\n@keyframes fadein {\\n\\t0% { opacity: 0; visibility: visible;}\\n\\t100% { opacity: 1; }\\n}\\n\\n.monaco-editor .codelens-decoration.fadein {\\n\\tanimation: fadein 0.1s linear;\\n}\\n\", \"\"]);\n                const a = r\n            },\n            64176: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => u\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s),\n                    a = i(61667),\n                    l = i.n(a),\n                    c = new URL(i(94748), i.b),\n                    d = r()(o()),\n                    h = l()(c);\n                d.push([e.id, `/*---------------------------------------------------------------------------------------------\\n *  Copyright (c) Microsoft Corporation. All rights reserved.\\n *  Licensed under the MIT License. See License.txt in the project root for license information.\\n *--------------------------------------------------------------------------------------------*/\\n\\n.colorpicker-widget {\\n\\theight: 190px;\\n\\t-moz-user-select: none;\\n\\t     user-select: none;\\n\\t-webkit-user-select: none;\\n\\t-ms-user-select: none;\\n}\\n\\n.monaco-editor .colorpicker-hover:focus {\\n\\toutline: none;\\n}\\n\\n\\n/* Header */\\n\\n.colorpicker-header {\\n\\tdisplay: flex;\\n\\theight: 24px;\\n\\tposition: relative;\\n\\tbackground: url(${h});\\n\\tbackground-size: 9px 9px;\\n\\t-ms-interpolation-mode: nearest-neighbor;\\n\\t    image-rendering: pixelated;\\n}\\n\\n.colorpicker-header .picked-color {\\n\\twidth: 216px;\\n\\tdisplay: flex;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n\\tline-height: 24px;\\n\\tcursor: pointer;\\n\\tcolor: white;\\n\\tflex: 1;\\n}\\n\\n.colorpicker-header .picked-color .codicon {\\n\\tcolor: inherit;\\n\\tfont-size: 14px;\\n\\tposition: absolute;\\n\\tleft: 8px;\\n}\\n\\n.colorpicker-header .picked-color.light {\\n\\tcolor: black;\\n}\\n\\n.colorpicker-header .original-color {\\n\\twidth: 74px;\\n\\tz-index: inherit;\\n\\tcursor: pointer;\\n}\\n\\n\\n/* Body */\\n\\n.colorpicker-body {\\n\\tdisplay: flex;\\n\\tpadding: 8px;\\n\\tposition: relative;\\n}\\n\\n.colorpicker-body .saturation-wrap {\\n\\toverflow: hidden;\\n\\theight: 150px;\\n\\tposition: relative;\\n\\tmin-width: 220px;\\n\\tflex: 1;\\n}\\n\\n.colorpicker-body .saturation-box {\\n\\theight: 150px;\\n\\tposition: absolute;\\n}\\n\\n.colorpicker-body .saturation-selection {\\n\\twidth: 9px;\\n\\theight: 9px;\\n\\tmargin: -5px 0 0 -5px;\\n\\tborder: 1px solid rgb(255, 255, 255);\\n\\tborder-radius: 100%;\\n\\tbox-shadow: 0px 0px 2px rgba(0, 0, 0, 0.8);\\n\\tposition: absolute;\\n}\\n\\n.colorpicker-body .strip {\\n\\twidth: 25px;\\n\\theight: 150px;\\n}\\n\\n.colorpicker-body .hue-strip {\\n\\tposition: relative;\\n\\tmargin-left: 8px;\\n\\tcursor: grab;\\n\\tbackground: linear-gradient(to bottom, #ff0000 0%, #ffff00 17%, #00ff00 33%, #00ffff 50%, #0000ff 67%, #ff00ff 83%, #ff0000 100%);\\n}\\n\\n.colorpicker-body .opacity-strip {\\n\\tposition: relative;\\n\\tmargin-left: 8px;\\n\\tcursor: grab;\\n\\tbackground: url(${h});\\n\\tbackground-size: 9px 9px;\\n\\t-ms-interpolation-mode: nearest-neighbor;\\n\\t    image-rendering: pixelated;\\n}\\n\\n.colorpicker-body .strip.grabbing {\\n\\tcursor: grabbing;\\n}\\n\\n.colorpicker-body .slider {\\n\\tposition: absolute;\\n\\ttop: 0;\\n\\tleft: -2px;\\n\\twidth: calc(100% + 4px);\\n\\theight: 4px;\\n\\tbox-sizing: border-box;\\n\\tborder: 1px solid rgba(255, 255, 255, 0.71);\\n\\tbox-shadow: 0px 0px 1px rgba(0, 0, 0, 0.85);\\n}\\n\\n.colorpicker-body .strip .overlay {\\n\\theight: 150px;\\n\\tpointer-events: none;\\n}\\n`, \"\"]);\n                const u = d\n            },\n            41221: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \"/*---------------------------------------------------------------------------------------------\\n *  Copyright (c) Microsoft Corporation. All rights reserved.\\n *  Licensed under the MIT License. See License.txt in the project root for license information.\\n *--------------------------------------------------------------------------------------------*/\\n\\n.monaco-editor.vs .dnd-target {\\n\\tborder-right: 2px dotted black;\\n\\tcolor: white; /* opposite of black */\\n}\\n.monaco-editor.vs-dark .dnd-target {\\n\\tborder-right: 2px dotted #AEAFAD;\\n\\tcolor: #51504f; /* opposite of #AEAFAD */\\n}\\n.monaco-editor.hc-black .dnd-target {\\n\\tborder-right: 2px dotted #fff;\\n\\tcolor: #000; /* opposite of #fff */\\n}\\n\\n.monaco-editor.mouse-default .view-lines,\\n.monaco-editor.vs-dark.mac.mouse-default .view-lines,\\n.monaco-editor.hc-black.mac.mouse-default .view-lines {\\n\\tcursor: default;\\n}\\n.monaco-editor.mouse-copy .view-lines,\\n.monaco-editor.vs-dark.mac.mouse-copy .view-lines,\\n.monaco-editor.hc-black.mac.mouse-copy .view-lines {\\n\\tcursor: copy;\\n}\", \"\"]);\n                const a = r\n            },\n            11897: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \"/*---------------------------------------------------------------------------------------------\\n *  Copyright (c) Microsoft Corporation. All rights reserved.\\n *  Licensed under the MIT License. See License.txt in the project root for license information.\\n *--------------------------------------------------------------------------------------------*/\\n\\n/* Find widget */\\n.monaco-editor .find-widget {\\n\\tposition: absolute;\\n\\tz-index: 35;\\n\\theight: 33px;\\n\\toverflow: hidden;\\n\\tline-height: 19px;\\n\\ttransition: transform 200ms linear;\\n\\tpadding: 0 4px;\\n\\tbox-sizing: border-box;\\n\\ttransform: translateY(calc(-100% - 10px)); /* shadow (10px) */\\n}\\n\\n.monaco-editor .find-widget textarea {\\n\\tmargin: 0px;\\n}\\n\\n.monaco-editor .find-widget.hiddenEditor {\\n\\tdisplay: none;\\n}\\n\\n/* Find widget when replace is toggled on */\\n.monaco-editor .find-widget.replaceToggled > .replace-part {\\n\\tdisplay: flex;\\n}\\n\\n.monaco-editor .find-widget.visible  {\\n\\ttransform: translateY(0);\\n}\\n\\n.monaco-editor .find-widget .monaco-inputbox.synthetic-focus {\\n\\toutline: 1px solid -webkit-focus-ring-color;\\n\\toutline-offset: -1px;\\n}\\n\\n.monaco-editor .find-widget .monaco-inputbox .input {\\n\\tbackground-color: transparent;\\n\\tmin-height: 0;\\n}\\n\\n.monaco-editor .find-widget .monaco-findInput .input {\\n\\tfont-size: 13px;\\n}\\n\\n.monaco-editor .find-widget > .find-part,\\n.monaco-editor .find-widget > .replace-part {\\n\\tmargin: 4px 0 0 17px;\\n\\tfont-size: 12px;\\n\\tdisplay: flex;\\n}\\n\\n.monaco-editor .find-widget > .find-part .monaco-inputbox,\\n.monaco-editor .find-widget > .replace-part .monaco-inputbox {\\n\\tmin-height: 25px;\\n}\\n\\n\\n.monaco-editor .find-widget > .replace-part .monaco-inputbox > .ibwrapper > .mirror {\\n\\tpadding-right: 22px;\\n}\\n\\n.monaco-editor .find-widget > .find-part .monaco-inputbox > .ibwrapper > .input,\\n.monaco-editor .find-widget > .find-part .monaco-inputbox > .ibwrapper > .mirror,\\n.monaco-editor .find-widget > .replace-part .monaco-inputbox > .ibwrapper > .input,\\n.monaco-editor .find-widget > .replace-part .monaco-inputbox > .ibwrapper > .mirror {\\n\\tpadding-top: 2px;\\n\\tpadding-bottom: 2px;\\n}\\n\\n.monaco-editor .find-widget > .find-part .find-actions {\\n\\theight: 25px;\\n\\tdisplay: flex;\\n\\talign-items: center;\\n}\\n\\n.monaco-editor .find-widget > .replace-part .replace-actions {\\n\\theight: 25px;\\n\\tdisplay: flex;\\n\\talign-items: center;\\n}\\n\\n.monaco-editor .find-widget .monaco-findInput {\\n\\tvertical-align: middle;\\n\\tdisplay: flex;\\n\\tflex:1;\\n}\\n\\n.monaco-editor .find-widget .monaco-findInput .monaco-scrollable-element {\\n\\t/* Make sure textarea inherits the width correctly */\\n\\twidth: 100%;\\n}\\n\\n.monaco-editor .find-widget .monaco-findInput .monaco-scrollable-element .scrollbar.vertical {\\n\\t/* Hide vertical scrollbar */\\n\\topacity: 0;\\n}\\n\\n.monaco-editor .find-widget .matchesCount {\\n\\tdisplay: flex;\\n\\tflex: initial;\\n\\tmargin: 0 0 0 3px;\\n\\tpadding: 2px 0 0 2px;\\n\\theight: 25px;\\n\\tvertical-align: middle;\\n\\tbox-sizing: border-box;\\n\\ttext-align: center;\\n\\tline-height: 23px;\\n}\\n\\n.monaco-editor .find-widget .button {\\n\\twidth: 16px;\\n\\theight: 16px;\\n\\tpadding: 3px;\\n\\tborder-radius: 5px;\\n\\tflex: initial;\\n\\tmargin-left: 3px;\\n\\tbackground-position: center center;\\n\\tbackground-repeat: no-repeat;\\n\\tcursor: pointer;\\n\\tdisplay: flex;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\\n/* find in selection button */\\n.monaco-editor .find-widget .codicon-find-selection {\\n\\twidth: 22px;\\n\\theight: 22px;\\n\\tpadding: 3px;\\n\\tborder-radius: 5px;\\n}\\n\\n.monaco-editor .find-widget .button.left {\\n\\tmargin-left: 0;\\n\\tmargin-right: 3px;\\n}\\n\\n.monaco-editor .find-widget .button.wide {\\n\\twidth: auto;\\n\\tpadding: 1px 6px;\\n\\ttop: -1px;\\n}\\n\\n.monaco-editor .find-widget .button.toggle {\\n\\tposition: absolute;\\n\\ttop: 0;\\n\\tleft: 3px;\\n\\twidth: 18px;\\n\\theight: 100%;\\n\\tborder-radius: 0;\\n\\tbox-sizing: border-box;\\n}\\n\\n.monaco-editor .find-widget .button.toggle.disabled {\\n\\tdisplay: none;\\n}\\n\\n.monaco-editor .find-widget .disabled {\\n\\topacity: 0.3;\\n\\tcursor: default;\\n}\\n\\n.monaco-editor .find-widget > .replace-part {\\n\\tdisplay: none;\\n}\\n\\n.monaco-editor .find-widget > .replace-part > .monaco-findInput {\\n\\tposition: relative;\\n\\tdisplay: flex;\\n\\tvertical-align: middle;\\n\\tflex: auto;\\n\\tflex-grow: 0;\\n\\tflex-shrink: 0;\\n}\\n\\n.monaco-editor .find-widget > .replace-part > .monaco-findInput > .controls {\\n\\tposition: absolute;\\n\\ttop: 3px;\\n\\tright: 2px;\\n}\\n\\n/* REDUCED */\\n.monaco-editor .find-widget.reduced-find-widget .matchesCount {\\n\\tdisplay:none;\\n}\\n\\n/* NARROW (SMALLER THAN REDUCED) */\\n.monaco-editor .find-widget.narrow-find-widget {\\n\\tmax-width: 257px !important;\\n}\\n\\n/* COLLAPSED (SMALLER THAN NARROW) */\\n.monaco-editor .find-widget.collapsed-find-widget {\\n\\tmax-width: 170px !important;\\n}\\n\\n.monaco-editor .find-widget.collapsed-find-widget .button.previous,\\n.monaco-editor .find-widget.collapsed-find-widget .button.next,\\n.monaco-editor .find-widget.collapsed-find-widget .button.replace,\\n.monaco-editor .find-widget.collapsed-find-widget .button.replace-all,\\n.monaco-editor .find-widget.collapsed-find-widget > .find-part .monaco-findInput .controls {\\n\\tdisplay:none;\\n}\\n\\n.monaco-editor .findMatch {\\n\\tanimation-duration: 0;\\n\\tanimation-name: inherit !important;\\n}\\n\\n.monaco-editor .find-widget .monaco-sash {\\n\\tleft: 0 !important;\\n}\\n\\n.monaco-editor.hc-black .find-widget .button:before {\\n\\tposition: relative;\\n\\ttop: 1px;\\n\\tleft: 2px;\\n}\\n\", \"\"]);\n                const a = r\n            },\n            88830: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, '/*---------------------------------------------------------------------------------------------\\n *  Copyright (c) Microsoft Corporation. All rights reserved.\\n *  Licensed under the MIT License. See License.txt in the project root for license information.\\n *--------------------------------------------------------------------------------------------*/\\n\\n.monaco-editor .margin-view-overlays .codicon-folding-expanded,\\n.monaco-editor .margin-view-overlays .codicon-folding-collapsed {\\n\\tcursor: pointer;\\n\\topacity: 0;\\n\\ttransition: opacity 0.5s;\\n\\tdisplay: flex;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n\\tfont-size: 140%;\\n\\tmargin-left: 2px;\\n}\\n\\n.monaco-editor .margin-view-overlays:hover .codicon,\\n.monaco-editor .margin-view-overlays .codicon.codicon-folding-collapsed,\\n.monaco-editor .margin-view-overlays .codicon.alwaysShowFoldIcons {\\n\\topacity: 1;\\n}\\n\\n.monaco-editor .inline-folded:after {\\n\\tcolor: grey;\\n\\tmargin: 0.1em 0.2em 0 0.2em;\\n\\tcontent: \"⋯\";\\n\\tdisplay: inline;\\n\\tline-height: 1em;\\n\\tcursor: pointer;\\n}\\n', \"\"]);\n                const a = r\n            },\n            36310: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \"/*---------------------------------------------------------------------------------------------\\n *  Copyright (c) Microsoft Corporation. All rights reserved.\\n *  Licensed under the MIT License. See License.txt in the project root for license information.\\n *--------------------------------------------------------------------------------------------*/\\n\\n/* marker zone */\\n\\n.monaco-editor .peekview-widget .head .peekview-title .severity-icon {\\n\\tdisplay: inline-block;\\n\\tvertical-align: text-top;\\n\\tmargin-right: 4px;\\n}\\n\\n.monaco-editor .marker-widget {\\n\\ttext-overflow: ellipsis;\\n\\twhite-space: nowrap;\\n}\\n\\n.monaco-editor .marker-widget > .stale {\\n\\topacity: 0.6;\\n\\tfont-style: italic;\\n}\\n\\n.monaco-editor .marker-widget .title {\\n\\tdisplay: inline-block;\\n\\tpadding-right: 5px;\\n}\\n\\n.monaco-editor .marker-widget .descriptioncontainer {\\n\\tposition: absolute;\\n\\twhite-space: pre;\\n\\t-moz-user-select: text;\\n\\t     user-select: text;\\n\\t-webkit-user-select: text;\\n\\t-ms-user-select: text;\\n\\tpadding: 8px 12px 0 20px;\\n}\\n\\n.monaco-editor .marker-widget .descriptioncontainer .message {\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n}\\n\\n.monaco-editor .marker-widget .descriptioncontainer .message .details {\\n\\tpadding-left: 6px;\\n}\\n\\n.monaco-editor .marker-widget .descriptioncontainer .message .source,\\n.monaco-editor .marker-widget .descriptioncontainer .message span.code {\\n\\topacity: 0.6;\\n}\\n\\n.monaco-editor .marker-widget .descriptioncontainer .message a.code-link {\\n\\topacity: 0.6;\\n\\tcolor: inherit;\\n}\\n\\n.monaco-editor .marker-widget .descriptioncontainer .message a.code-link:before {\\n\\tcontent: '(';\\n}\\n\\n.monaco-editor .marker-widget .descriptioncontainer .message a.code-link:after {\\n\\tcontent: ')';\\n}\\n\\n.monaco-editor .marker-widget .descriptioncontainer .message a.code-link > span {\\n\\ttext-decoration: underline;\\n\\t/** Hack to force underline to show **/\\n\\tborder-bottom: 1px solid transparent;\\n\\ttext-underline-position: under;\\n}\\n\\n.monaco-editor .marker-widget .descriptioncontainer .filename {\\n\\tcursor: pointer;\\n}\\n\", \"\"]);\n                const a = r\n            },\n            45291: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \"/*---------------------------------------------------------------------------------------------\\n *  Copyright (c) Microsoft Corporation. All rights reserved.\\n *  Licensed under the MIT License. See License.txt in the project root for license information.\\n *--------------------------------------------------------------------------------------------*/\\n\\n.monaco-editor .goto-definition-link {\\n\\ttext-decoration: underline;\\n\\tcursor: pointer;\\n}\", \"\"]);\n                const a = r\n            },\n            70835: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \"/*---------------------------------------------------------------------------------------------\\n *  Copyright (c) Microsoft Corporation. All rights reserved.\\n *  Licensed under the MIT License. See License.txt in the project root for license information.\\n *--------------------------------------------------------------------------------------------*/\\n\\n/* -- zone widget */\\n.monaco-editor .zone-widget .zone-widget-container.reference-zone-widget {\\n\\tborder-top-width: 1px;\\n\\tborder-bottom-width: 1px;\\n}\\n\\n.monaco-editor .reference-zone-widget .inline {\\n\\tdisplay: inline-block;\\n\\tvertical-align: top;\\n}\\n\\n.monaco-editor .reference-zone-widget .messages {\\n\\theight: 100%;\\n\\twidth: 100%;\\n\\ttext-align: center;\\n\\tpadding: 3em 0;\\n}\\n\\n.monaco-editor .reference-zone-widget .ref-tree {\\n\\tline-height: 23px;\\n}\\n\\n.monaco-editor .reference-zone-widget .ref-tree .reference {\\n\\ttext-overflow: ellipsis;\\n\\toverflow: hidden;\\n}\\n\\n.monaco-editor .reference-zone-widget .ref-tree .reference-file {\\n\\tdisplay: inline-flex;\\n\\twidth: 100%;\\n\\theight: 100%;\\n}\\n\\n.monaco-editor .reference-zone-widget .ref-tree .monaco-list:focus .selected .reference-file {\\n\\tcolor: inherit !important;\\n}\\n\\n.monaco-editor .reference-zone-widget .ref-tree .reference-file .count {\\n\\tmargin-right: 12px;\\n\\tmargin-left: auto;\\n}\\n\\n/* High Contrast Theming */\\n\\n.monaco-editor.hc-black .reference-zone-widget .ref-tree .reference-file {\\n\\tfont-weight: bold;\\n}\\n\", \"\"]);\n                const a = r\n            },\n            20074: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \"/*---------------------------------------------------------------------------------------------\\n *  Copyright (c) Microsoft Corporation. All rights reserved.\\n *  Licensed under the MIT License. See License.txt in the project root for license information.\\n *--------------------------------------------------------------------------------------------*/\\n\\n.monaco-editor .suggest-preview-additional-widget {\\n\\twhite-space: nowrap;\\n}\\n\\n.monaco-editor .suggest-preview-additional-widget .content-spacer {\\n\\tcolor: transparent;\\n\\twhite-space: pre;\\n}\\n\\n.monaco-editor .suggest-preview-additional-widget .button {\\n\\tdisplay: inline-block;\\n\\tcursor: pointer;\\n\\ttext-decoration: underline;\\n\\ttext-underline-position: under;\\n}\\n\\n.monaco-editor .ghost-text-hidden {\\n\\topacity: 0;\\n\\tfont-size: 0;\\n}\\n\\n.monaco-editor .ghost-text-decoration {\\n\\tfont-style: italic;\\n}\\n\\n.monaco-editor .suggest-preview-text {\\n\\tfont-style: italic;\\n}\\n\", \"\"]);\n                const a = r\n            },\n            7547: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \"/*---------------------------------------------------------------------------------------------\\n *  Copyright (c) Microsoft Corporation. All rights reserved.\\n *  Licensed under the MIT License. See License.txt in the project root for license information.\\n *--------------------------------------------------------------------------------------------*/\\n.monaco-editor .detected-link,\\n.monaco-editor .detected-link-active {\\n\\ttext-decoration: underline;\\n\\ttext-underline-position: under;\\n}\\n\\n.monaco-editor .detected-link-active {\\n\\tcursor: pointer;\\n}\\n\", \"\"]);\n                const a = r\n            },\n            23565: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \"/*---------------------------------------------------------------------------------------------\\n *  Copyright (c) Microsoft Corporation. All rights reserved.\\n *  Licensed under the MIT License. See License.txt in the project root for license information.\\n *--------------------------------------------------------------------------------------------*/\\n\\n.monaco-editor .monaco-editor-overlaymessage {\\n\\tpadding-bottom: 8px;\\n\\tz-index: 10000;\\n}\\n\\n.monaco-editor .monaco-editor-overlaymessage.below {\\n\\tpadding-bottom: 0;\\n\\tpadding-top: 8px;\\n\\tz-index: 10000;\\n}\\n\\n@keyframes fadeIn {\\n\\tfrom { opacity: 0; }\\n\\tto { opacity: 1; }\\n}\\n.monaco-editor .monaco-editor-overlaymessage.fadeIn {\\n\\tanimation: fadeIn 150ms ease-out;\\n}\\n\\n@keyframes fadeOut {\\n\\tfrom { opacity: 1; }\\n\\tto { opacity: 0; }\\n}\\n.monaco-editor .monaco-editor-overlaymessage.fadeOut {\\n\\tanimation: fadeOut 100ms ease-out;\\n}\\n\\n.monaco-editor .monaco-editor-overlaymessage .message {\\n\\tpadding: 1px 4px;\\n}\\n\\n.monaco-editor .monaco-editor-overlaymessage .anchor {\\n\\twidth: 0 !important;\\n\\theight: 0 !important;\\n\\tborder-color: transparent;\\n\\tborder-style: solid;\\n\\tz-index: 1000;\\n\\tborder-width: 8px;\\n\\tposition: absolute;\\n}\\n\\n.monaco-editor .monaco-editor-overlaymessage:not(.below) .anchor.top,\\n.monaco-editor .monaco-editor-overlaymessage.below .anchor.below {\\n\\tdisplay: none;\\n}\\n\\n.monaco-editor .monaco-editor-overlaymessage.below .anchor.top {\\n\\tdisplay: inherit;\\n\\ttop: -8px;\\n}\\n\", \"\"]);\n                const a = r\n            },\n            8955: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \"/*---------------------------------------------------------------------------------------------\\n *  Copyright (c) Microsoft Corporation. All rights reserved.\\n *  Licensed under the MIT License. See License.txt in the project root for license information.\\n *--------------------------------------------------------------------------------------------*/\\n\\n.monaco-editor .parameter-hints-widget {\\n\\tz-index: 10;\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n\\tline-height: 1.5em;\\n}\\n\\n.monaco-editor .parameter-hints-widget > .phwrapper {\\n\\tmax-width: 440px;\\n\\tdisplay: flex;\\n\\tflex-direction: row;\\n}\\n\\n.monaco-editor .parameter-hints-widget.multiple {\\n\\tmin-height: 3.3em;\\n\\tpadding: 0;\\n}\\n\\n.monaco-editor .parameter-hints-widget.visible {\\n\\ttransition: left .05s ease-in-out;\\n}\\n\\n.monaco-editor .parameter-hints-widget p,\\n.monaco-editor .parameter-hints-widget ul {\\n\\tmargin: 8px 0;\\n}\\n\\n.monaco-editor .parameter-hints-widget .monaco-scrollable-element,\\n.monaco-editor .parameter-hints-widget .body {\\n\\tdisplay: flex;\\n\\tflex: 1;\\n\\tflex-direction: column;\\n\\tmin-height: 100%;\\n}\\n\\n.monaco-editor .parameter-hints-widget .signature {\\n\\tpadding: 4px 5px;\\n}\\n\\n.monaco-editor .parameter-hints-widget .docs {\\n\\tpadding: 0 10px 0 5px;\\n\\twhite-space: pre-wrap;\\n}\\n\\n.monaco-editor .parameter-hints-widget .docs.empty {\\n\\tdisplay: none;\\n}\\n\\n.monaco-editor .parameter-hints-widget .docs .markdown-docs {\\n\\twhite-space: initial;\\n}\\n\\n.monaco-editor .parameter-hints-widget .docs .markdown-docs code {\\n\\tfont-family: var(--monaco-monospace-font);\\n}\\n\\n.monaco-editor .parameter-hints-widget .docs .code {\\n\\twhite-space: pre-wrap;\\n}\\n\\n.monaco-editor .parameter-hints-widget .docs code {\\n\\tborder-radius: 3px;\\n\\tpadding: 0 0.4em;\\n}\\n\\n.monaco-editor .parameter-hints-widget .controls {\\n\\tdisplay: none;\\n\\tflex-direction: column;\\n\\talign-items: center;\\n\\tmin-width: 22px;\\n\\tjustify-content: flex-end;\\n}\\n\\n.monaco-editor .parameter-hints-widget.multiple .controls {\\n\\tdisplay: flex;\\n\\tpadding: 0 2px;\\n}\\n\\n.monaco-editor .parameter-hints-widget.multiple .button {\\n\\twidth: 16px;\\n\\theight: 16px;\\n\\tbackground-repeat: no-repeat;\\n\\tcursor: pointer;\\n}\\n\\n.monaco-editor .parameter-hints-widget .button.previous {\\n\\tbottom: 24px;\\n}\\n\\n.monaco-editor .parameter-hints-widget .overloads {\\n\\ttext-align: center;\\n\\theight: 12px;\\n\\tline-height: 12px;\\n\\topacity: 0.5;\\n\\tfont-family: var(--monaco-monospace-font);\\n}\\n\\n.monaco-editor .parameter-hints-widget .signature .parameter.active {\\n\\tfont-weight: bold;\\n}\\n\\n.monaco-editor .parameter-hints-widget .documentation-parameter > .parameter {\\n\\tfont-weight: bold;\\n\\tmargin-right: 0.5em;\\n}\\n\", \"\"]);\n                const a = r\n            },\n            62384: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \"/*---------------------------------------------------------------------------------------------\\n *  Copyright (c) Microsoft Corporation. All rights reserved.\\n *  Licensed under the MIT License. See License.txt in the project root for license information.\\n *--------------------------------------------------------------------------------------------*/\\n\\n.monaco-editor .peekview-widget .head {\\n\\tbox-sizing: border-box;\\n\\tdisplay: flex;\\n}\\n\\n.monaco-editor .peekview-widget .head .peekview-title {\\n\\tdisplay: flex;\\n\\talign-items: center;\\n\\tfont-size: 13px;\\n\\tmargin-left: 20px;\\n\\tmin-width: 0;\\n}\\n\\n.monaco-editor .peekview-widget .head .peekview-title.clickable {\\n\\tcursor: pointer;\\n}\\n\\n.monaco-editor .peekview-widget .head .peekview-title .dirname:not(:empty) {\\n\\tfont-size: 0.9em;\\n\\tmargin-left: 0.5em;\\n}\\n\\n.monaco-editor .peekview-widget .head .peekview-title .meta {\\n\\twhite-space: nowrap;\\n}\\n\\n.monaco-editor .peekview-widget .head .peekview-title .dirname {\\n\\twhite-space: nowrap;\\n}\\n\\n.monaco-editor .peekview-widget .head .peekview-title .filename {\\n\\toverflow: hidden;\\n\\ttext-overflow: ellipsis;\\n\\twhite-space: nowrap;\\n}\\n\\n.monaco-editor .peekview-widget .head .peekview-title .meta:not(:empty)::before {\\n\\tcontent: '-';\\n\\tpadding: 0 0.3em;\\n}\\n\\n.monaco-editor .peekview-widget .head .peekview-actions {\\n\\tflex: 1;\\n\\ttext-align: right;\\n\\tpadding-right: 2px;\\n}\\n\\n.monaco-editor .peekview-widget .head .peekview-actions > .monaco-action-bar {\\n\\tdisplay: inline-block;\\n}\\n\\n.monaco-editor .peekview-widget .head .peekview-actions > .monaco-action-bar,\\n.monaco-editor .peekview-widget .head .peekview-actions > .monaco-action-bar > .actions-container {\\n\\theight: 100%;\\n}\\n\\n.monaco-editor .peekview-widget > .body {\\n\\tborder-top: 1px solid;\\n\\tposition: relative;\\n}\\n\\n.monaco-editor .peekview-widget .head .peekview-title .codicon {\\n\\tmargin-right: 4px;\\n}\\n\\n.monaco-editor .peekview-widget .monaco-list .monaco-list-row.focused .codicon {\\n\\tcolor: inherit !important;\\n}\\n\", \"\"]);\n                const a = r\n            },\n            57255: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \"/*---------------------------------------------------------------------------------------------\\n *  Copyright (c) Microsoft Corporation. All rights reserved.\\n *  Licensed under the MIT License. See License.txt in the project root for license information.\\n *--------------------------------------------------------------------------------------------*/\\n\\n.monaco-editor .rename-box {\\n\\tz-index: 100;\\n\\tcolor: inherit;\\n}\\n\\n.monaco-editor .rename-box.preview {\\n\\tpadding: 3px 3px 0 3px;\\n}\\n\\n.monaco-editor .rename-box .rename-input {\\n\\tpadding: 3px;\\n\\twidth: calc(100% - 6px);\\n}\\n\\n.monaco-editor .rename-box .rename-label {\\n\\tdisplay: none;\\n\\topacity: .8;\\n}\\n\\n.monaco-editor .rename-box.preview .rename-label {\\n\\tdisplay: inherit;\\n}\\n\", \"\"]);\n                const a = r\n            },\n            50695: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \"/*---------------------------------------------------------------------------------------------\\n *  Copyright (c) Microsoft Corporation. All rights reserved.\\n *  Licensed under the MIT License. See License.txt in the project root for license information.\\n *--------------------------------------------------------------------------------------------*/\\n\\n.monaco-editor .snippet-placeholder {\\n\\tmin-width: 2px;\\n\\toutline-style: solid;\\n\\toutline-width: 1px;\\n}\\n\\n.monaco-editor .finish-snippet-placeholder {\\n\\toutline-style: solid;\\n\\toutline-width: 1px;\\n}\\n\", \"\"]);\n                const a = r\n            },\n            41948: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \"/*---------------------------------------------------------------------------------------------\\n *  Copyright (c) Microsoft Corporation. All rights reserved.\\n *  Licensed under the MIT License. See License.txt in the project root for license information.\\n *--------------------------------------------------------------------------------------------*/\\n\\n/* Suggest widget*/\\n\\n.monaco-editor .suggest-widget {\\n\\twidth: 430px;\\n\\tz-index: 40;\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n}\\n\\n.monaco-editor .suggest-widget.message {\\n\\tflex-direction: row;\\n\\talign-items: center;\\n}\\n\\n.monaco-editor .suggest-widget,\\n.monaco-editor .suggest-details {\\n\\tflex: 0 1 auto;\\n\\twidth: 100%;\\n\\tborder-style: solid;\\n\\tborder-width: 1px;\\n}\\n\\n.monaco-editor.hc-black .suggest-widget,\\n.monaco-editor.hc-black .suggest-details {\\n\\tborder-width: 2px;\\n}\\n\\n/* Styles for status bar part */\\n\\n\\n.monaco-editor .suggest-widget .suggest-status-bar {\\n\\tbox-sizing: border-box;\\n\\tdisplay: none;\\n\\tflex-flow: row nowrap;\\n\\tjustify-content: space-between;\\n\\twidth: 100%;\\n\\tfont-size: 80%;\\n\\tpadding: 0 4px 0 4px;\\n\\tborder-top: 1px solid transparent;\\n\\toverflow: hidden;\\n}\\n\\n.monaco-editor .suggest-widget.with-status-bar .suggest-status-bar {\\n\\tdisplay: flex;\\n}\\n\\n.monaco-editor .suggest-widget .suggest-status-bar .left {\\n\\tpadding-right: 8px;\\n}\\n\\n.monaco-editor .suggest-widget.with-status-bar .suggest-status-bar .action-label {\\n\\topacity: 0.5;\\n\\tcolor: inherit;\\n}\\n\\n.monaco-editor .suggest-widget.with-status-bar .suggest-status-bar .action-item:not(:last-of-type) .action-label {\\n\\tmargin-right: 0;\\n}\\n\\n.monaco-editor .suggest-widget.with-status-bar .suggest-status-bar .action-item:not(:last-of-type) .action-label::after {\\n\\tcontent: ', ';\\n\\tmargin-right: 0.3em;\\n}\\n\\n.monaco-editor .suggest-widget.with-status-bar .monaco-list .monaco-list-row>.contents>.main>.right>.readMore,\\n.monaco-editor .suggest-widget.with-status-bar .monaco-list .monaco-list-row.focused.string-label>.contents>.main>.right>.readMore {\\n\\tdisplay: none;\\n}\\n\\n.monaco-editor .suggest-widget.with-status-bar:not(.docs-side) .monaco-list .monaco-list-row:hover>.contents>.main>.right.can-expand-details>.details-label {\\n\\twidth: 100%;\\n}\\n\\n/* Styles for Message element for when widget is loading or is empty */\\n\\n.monaco-editor .suggest-widget>.message {\\n\\tpadding-left: 22px;\\n}\\n\\n/** Styles for the list element **/\\n\\n.monaco-editor .suggest-widget>.tree {\\n\\theight: 100%;\\n\\twidth: 100%;\\n}\\n\\n.monaco-editor .suggest-widget .monaco-list {\\n\\t-moz-user-select: none;\\n\\t     user-select: none;\\n\\t-webkit-user-select: none;\\n\\t-ms-user-select: none;\\n}\\n\\n/** Styles for each row in the list element **/\\n\\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row {\\n\\tdisplay: flex;\\n\\t-mox-box-sizing: border-box;\\n\\tbox-sizing: border-box;\\n\\tpadding-right: 10px;\\n\\tbackground-repeat: no-repeat;\\n\\tbackground-position: 2px 2px;\\n\\twhite-space: nowrap;\\n\\tcursor: pointer;\\n\\ttouch-action: none;\\n}\\n\\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents {\\n\\tflex: 1;\\n\\theight: 100%;\\n\\toverflow: hidden;\\n\\tpadding-left: 2px;\\n}\\n\\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main {\\n\\tdisplay: flex;\\n\\toverflow: hidden;\\n\\ttext-overflow: ellipsis;\\n\\twhite-space: pre;\\n\\tjustify-content: space-between;\\n}\\n\\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.left, .monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right {\\n\\tdisplay: flex;\\n}\\n\\n.monaco-editor .suggest-widget:not(.frozen) .monaco-highlighted-label .highlight {\\n\\tfont-weight: bold;\\n}\\n\\n/** ReadMore Icon styles **/\\n\\n.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.header>.codicon-close,\\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.readMore::before {\\n\\tcolor: inherit;\\n\\topacity: 1;\\n\\tfont-size: 14px;\\n\\tcursor: pointer;\\n}\\n\\n.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.header>.codicon-close {\\n\\tposition: absolute;\\n\\ttop: 6px;\\n\\tright: 2px;\\n}\\n\\n.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.header>.codicon-close:hover,\\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.readMore:hover {\\n\\topacity: 1;\\n}\\n\\n/** signature, qualifier, type/details opacity **/\\n\\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.details-label {\\n\\topacity: 0.7;\\n}\\n\\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.left>.signature-label {\\n\\toverflow: hidden;\\n\\ttext-overflow: ellipsis;\\n\\topacity: 0.6;\\n}\\n\\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.left>.qualifier-label {\\n\\tmargin-left: 12px;\\n\\topacity: 0.4;\\n\\tfont-size: 85%;\\n\\tline-height: initial;\\n\\ttext-overflow: ellipsis;\\n\\toverflow: hidden;\\n\\talign-self: center;\\n}\\n\\n/** Type Info and icon next to the label in the focused completion item **/\\n\\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.details-label {\\n\\tfont-size: 85%;\\n\\tmargin-left: 1.1em;\\n\\toverflow: hidden;\\n\\ttext-overflow: ellipsis;\\n\\twhite-space: nowrap;\\n}\\n\\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.details-label>.monaco-tokenized-source {\\n\\tdisplay: inline;\\n}\\n\\n/** Details: if using CompletionItem#details, show on focus **/\\n\\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.details-label {\\n\\tdisplay: none;\\n}\\n\\n.monaco-editor .suggest-widget:not(.shows-details) .monaco-list .monaco-list-row.focused>.contents>.main>.right>.details-label {\\n\\tdisplay: inline;\\n}\\n\\n/** Details: if using CompletionItemLabel#details, always show **/\\n\\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row:not(.string-label)>.contents>.main>.right>.details-label,\\n.monaco-editor .suggest-widget.docs-side .monaco-list .monaco-list-row.focused:not(.string-label)>.contents>.main>.right>.details-label {\\n\\tdisplay: inline;\\n}\\n\\n/** Ellipsis on hover **/\\n\\n.monaco-editor .suggest-widget:not(.docs-side) .monaco-list .monaco-list-row:hover>.contents>.main>.right.can-expand-details>.details-label {\\n\\twidth: calc(100% - 26px);\\n}\\n\\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.left {\\n\\tflex-shrink: 1;\\n\\tflex-grow: 1;\\n\\toverflow: hidden;\\n}\\n\\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.left>.monaco-icon-label {\\n\\tflex-shrink: 0;\\n}\\n\\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row:not(.string-label)>.contents>.main>.left>.monaco-icon-label {\\n\\tmax-width: 100%;\\n}\\n\\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row.string-label>.contents>.main>.left>.monaco-icon-label {\\n\\tflex-shrink: 1;\\n}\\n\\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right {\\n\\toverflow: hidden;\\n\\tflex-shrink: 4;\\n\\tmax-width: 70%;\\n}\\n\\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.readMore {\\n\\tdisplay: inline-block;\\n\\tposition: absolute;\\n\\tright: 10px;\\n\\twidth: 18px;\\n\\theight: 18px;\\n\\tvisibility: hidden;\\n}\\n\\n/** Do NOT display ReadMore when docs is side/below **/\\n\\n.monaco-editor .suggest-widget.docs-side .monaco-list .monaco-list-row>.contents>.main>.right>.readMore, .monaco-editor .suggest-widget.docs-below .monaco-list .monaco-list-row>.contents>.main>.right>.readMore {\\n\\tdisplay: none !important;\\n}\\n\\n/** Do NOT display ReadMore when using plain CompletionItemLabel (details/documentation might not be resolved) **/\\n\\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row.string-label>.contents>.main>.right>.readMore {\\n\\tdisplay: none;\\n}\\n\\n/** Focused item can show ReadMore, but can't when docs is side/below **/\\n\\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row.focused.string-label>.contents>.main>.right>.readMore {\\n\\tdisplay: inline-block;\\n}\\n\\n.monaco-editor .suggest-widget.docs-side .monaco-list .monaco-list-row>.contents>.main>.right>.readMore,\\n.monaco-editor .suggest-widget.docs-below .monaco-list .monaco-list-row>.contents>.main>.right>.readMore {\\n\\tdisplay: none;\\n}\\n\\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row:hover>.contents>.main>.right>.readMore {\\n\\tvisibility: visible;\\n}\\n\\n/** Styles for each row in the list **/\\n\\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row .monaco-icon-label.deprecated {\\n\\topacity: 0.66;\\n\\ttext-decoration: unset;\\n}\\n\\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row .monaco-icon-label.deprecated>.monaco-icon-label-container>.monaco-icon-name-container {\\n\\ttext-decoration: line-through;\\n}\\n\\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row .monaco-icon-label::before {\\n\\theight: 100%;\\n}\\n\\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row .icon {\\n\\tdisplay: block;\\n\\theight: 16px;\\n\\twidth: 16px;\\n\\tmargin-left: 2px;\\n\\tbackground-repeat: no-repeat;\\n\\tbackground-size: 80%;\\n\\tbackground-position: center;\\n}\\n\\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row .icon.hide {\\n\\tdisplay: none;\\n}\\n\\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row .suggest-icon {\\n\\tdisplay: flex;\\n\\talign-items: center;\\n\\tmargin-right: 4px;\\n}\\n\\n.monaco-editor .suggest-widget.no-icons .monaco-list .monaco-list-row .icon, .monaco-editor .suggest-widget.no-icons .monaco-list .monaco-list-row .suggest-icon::before {\\n\\tdisplay: none;\\n}\\n\\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row .icon.customcolor .colorspan {\\n\\tmargin: 0 0 0 0.3em;\\n\\tborder: 0.1em solid #000;\\n\\twidth: 0.7em;\\n\\theight: 0.7em;\\n\\tdisplay: inline-block;\\n}\\n\\n/** Styles for the docs of the completion item in focus **/\\n\\n.monaco-editor .suggest-details-container {\\n\\tz-index: 41;\\n}\\n\\n.monaco-editor .suggest-details {\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n\\tcursor: default;\\n}\\n\\n.monaco-editor .suggest-details.no-docs {\\n\\tdisplay: none;\\n}\\n\\n.monaco-editor .suggest-details>.monaco-scrollable-element {\\n\\tflex: 1;\\n}\\n\\n.monaco-editor .suggest-details>.monaco-scrollable-element>.body {\\n\\tbox-sizing: border-box;\\n\\theight: 100%;\\n\\twidth: 100%;\\n}\\n\\n.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.header>.type {\\n\\tflex: 2;\\n\\toverflow: hidden;\\n\\ttext-overflow: ellipsis;\\n\\topacity: 0.7;\\n\\twhite-space: pre;\\n\\tmargin: 0 24px 0 0;\\n\\tpadding: 4px 0 12px 5px;\\n}\\n\\n.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.header>.type.auto-wrap {\\n\\twhite-space: normal;\\n\\tword-break: break-all;\\n}\\n\\n\\n.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs {\\n\\tmargin: 0;\\n\\tpadding: 4px 5px;\\n\\twhite-space: pre-wrap;\\n}\\n\\n.monaco-editor .suggest-details.no-type>.monaco-scrollable-element>.body>.docs {\\n\\tmargin-right: 24px;\\n}\\n\\n.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs {\\n\\tpadding: 0;\\n\\twhite-space: initial;\\n\\tmin-height: calc(1rem + 8px);\\n}\\n\\n.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs>div,\\n.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs>span:not(:empty) {\\n\\tpadding: 4px 5px;\\n}\\n\\n.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs>div>p:first-child {\\n\\tmargin-top: 0;\\n}\\n\\n.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs>div>p:last-child {\\n\\tmargin-bottom: 0;\\n}\\n\\n.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs .monaco-tokenized-source {\\n\\twhite-space: pre;\\n}\\n\\n.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs .code {\\n\\twhite-space: pre-wrap;\\n\\tword-wrap: break-word;\\n}\\n\\n.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs .codicon {\\n\\tvertical-align: sub;\\n}\\n\\n.monaco-editor .suggest-details>.monaco-scrollable-element>.body>p:empty {\\n\\tdisplay: none;\\n}\\n\\n.monaco-editor .suggest-details code {\\n\\tborder-radius: 3px;\\n\\tpadding: 0 0.4em;\\n}\\n\\n.monaco-editor .suggest-details ul {\\n\\tpadding-left: 20px;\\n}\\n\\n.monaco-editor .suggest-details ol {\\n\\tpadding-left: 20px;\\n}\\n\\n.monaco-editor .suggest-details p code {\\n\\tfont-family: var(--monaco-monospace-font);\\n}\\n\", \"\"]);\n                const a = r\n            },\n            26993: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \"/*---------------------------------------------------------------------------------------------\\n *  Copyright (c) Microsoft Corporation. All rights reserved.\\n *  Licensed under the MIT License. See License.txt in the project root for license information.\\n *--------------------------------------------------------------------------------------------*/\\n.monaco-editor .zone-widget {\\n\\tposition: absolute;\\n\\tz-index: 10;\\n}\\n\\n\\n.monaco-editor .zone-widget .zone-widget-container {\\n\\tborder-top-style: solid;\\n\\tborder-bottom-style: solid;\\n\\tborder-top-width: 0;\\n\\tborder-bottom-width: 0;\\n\\tposition: relative;\\n}\\n\", \"\"]);\n                const a = r\n            },\n            6916: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \"/*---------------------------------------------------------------------------------------------\\n *  Copyright (c) Microsoft Corporation. All rights reserved.\\n *  Licensed under the MIT License. See License.txt in the project root for license information.\\n *--------------------------------------------------------------------------------------------*/\\n\\n.monaco-editor .accessibilityHelpWidget {\\n\\tpadding: 10px;\\n\\tvertical-align: middle;\\n\\toverflow: scroll;\\n}\", \"\"]);\n                const a = r\n            },\n            44825: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => p\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s),\n                    a = i(61667),\n                    l = i.n(a),\n                    c = new URL(i(6161), i.b),\n                    d = new URL(i(51096), i.b),\n                    h = r()(o()),\n                    u = l()(c),\n                    g = l()(d);\n                h.push([e.id, `/*---------------------------------------------------------------------------------------------\\n *  Copyright (c) Microsoft Corporation. All rights reserved.\\n *  Licensed under the MIT License. See License.txt in the project root for license information.\\n *--------------------------------------------------------------------------------------------*/\\n\\n.monaco-editor .iPadShowKeyboard {\\n\\twidth: 58px;\\n\\tmin-width: 0;\\n\\theight: 36px;\\n\\tmin-height: 0;\\n\\tmargin: 0;\\n\\tpadding: 0;\\n\\tposition: absolute;\\n\\tresize: none;\\n\\toverflow: hidden;\\n\\tbackground: url(${u}) center center no-repeat;\\n\\tborder: 4px solid #F6F6F6;\\n\\tborder-radius: 4px;\\n}\\n\\n.monaco-editor.vs-dark .iPadShowKeyboard {\\n\\tbackground: url(${g}) center center no-repeat;\\n\\tborder: 4px solid #252526;\\n}`, \"\"]);\n                const p = h\n            },\n            63523: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \"/*---------------------------------------------------------------------------------------------\\n *  Copyright (c) Microsoft Corporation. All rights reserved.\\n *  Licensed under the MIT License. See License.txt in the project root for license information.\\n *--------------------------------------------------------------------------------------------*/\\n\\n.monaco-editor .tokens-inspect-widget {\\n\\tz-index: 50;\\n\\t-moz-user-select: text;\\n\\t     user-select: text;\\n\\t-webkit-user-select: text;\\n\\t-ms-user-select: text;\\n\\tpadding: 10px;\\n}\\n\\n.tokens-inspect-separator {\\n\\theight: 1px;\\n\\tborder: 0;\\n}\\n\\n.monaco-editor .tokens-inspect-widget .tm-token {\\n\\tfont-family: var(--monaco-monospace-font);\\n}\\n\\n.monaco-editor .tokens-inspect-widget .tm-token-length {\\n\\tfont-weight: normal;\\n\\tfont-size: 60%;\\n\\tfloat: right;\\n}\\n\\n.monaco-editor .tokens-inspect-widget .tm-metadata-table {\\n\\twidth: 100%;\\n}\\n\\n.monaco-editor .tokens-inspect-widget .tm-metadata-value {\\n\\tfont-family: var(--monaco-monospace-font);\\n\\ttext-align: right;\\n}\\n\\n.monaco-editor .tokens-inspect-widget .tm-token-type {\\n\\tfont-family: var(--monaco-monospace-font);\\n}\\n\", \"\"]);\n                const a = r\n            },\n            52674: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \"/*---------------------------------------------------------------------------------------------\\n *  Copyright (c) Microsoft Corporation. All rights reserved.\\n *  Licensed under the MIT License. See License.txt in the project root for license information.\\n *--------------------------------------------------------------------------------------------*/\\n\\n.quick-input-widget {\\n\\tfont-size: 13px;\\n}\\n\\n.quick-input-widget .monaco-highlighted-label .highlight,\\n.quick-input-widget .monaco-highlighted-label .highlight {\\n\\tcolor: #0066BF;\\n}\\n\\n.vs .quick-input-widget .monaco-list-row.focused .monaco-highlighted-label .highlight,\\n.vs .quick-input-widget .monaco-list-row.focused .monaco-highlighted-label .highlight {\\n\\tcolor: #9DDDFF;\\n}\\n\\n.vs-dark .quick-input-widget .monaco-highlighted-label .highlight,\\n.vs-dark .quick-input-widget .monaco-highlighted-label .highlight {\\n\\tcolor: #0097fb;\\n}\\n\\n.hc-black .quick-input-widget .monaco-highlighted-label .highlight,\\n.hc-black .quick-input-widget .monaco-highlighted-label .highlight {\\n\\tcolor: #F38518;\\n}\\n\\n.monaco-keybinding > .monaco-keybinding-key {\\n\\tbackground-color: rgba(221, 221, 221, 0.4);\\n\\tborder: solid 1px rgba(204, 204, 204, 0.4);\\n\\tborder-bottom-color: rgba(187, 187, 187, 0.4);\\n\\tbox-shadow: inset 0 -1px 0 rgba(187, 187, 187, 0.4);\\n\\tcolor: #555;\\n}\\n\\n.hc-black .monaco-keybinding > .monaco-keybinding-key {\\n\\tbackground-color: transparent;\\n\\tborder: solid 1px rgb(111, 195, 223);\\n\\tbox-shadow: none;\\n\\tcolor: #fff;\\n}\\n\\n.vs-dark .monaco-keybinding > .monaco-keybinding-key {\\n\\tbackground-color: rgba(128, 128, 128, 0.17);\\n\\tborder: solid 1px rgba(51, 51, 51, 0.6);\\n\\tborder-bottom-color: rgba(68, 68, 68, 0.6);\\n\\tbox-shadow: inset 0 -1px 0 rgba(68, 68, 68, 0.6);\\n\\tcolor: #ccc;\\n}\\n\", \"\"]);\n                const a = r\n            },\n            12450: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, '/*---------------------------------------------------------------------------------------------\\n *  Copyright (c) Microsoft Corporation. All rights reserved.\\n *  Licensed under the MIT License. See License.txt in the project root for license information.\\n *--------------------------------------------------------------------------------------------*/\\n\\n\\n/* Default standalone editor fonts */\\n.monaco-editor {\\n\\tfont-family: -apple-system, BlinkMacSystemFont, \"Segoe WPC\", \"Segoe UI\", \"HelveticaNeue-Light\", system-ui, \"Ubuntu\", \"Droid Sans\", sans-serif;\\n\\t--monaco-monospace-font: \"SF Mono\", Monaco, Menlo, Consolas, \"Ubuntu Mono\", \"Liberation Mono\", \"DejaVu Sans Mono\", \"Courier New\", monospace;\\n}\\n\\n.monaco-menu .monaco-action-bar.vertical .action-item .action-menu-item:focus .action-label {\\n\\tstroke-width: 1.2px;\\n}\\n\\n.monaco-editor.vs-dark .monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .action-label,\\n.monaco-editor.hc-black .monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .action-label {\\n\\tstroke-width: 1.2px;\\n}\\n\\n.monaco-hover p {\\n\\tmargin: 0;\\n}\\n\\n/* See https://github.com/microsoft/monaco-editor/issues/2168#issuecomment-780078600 */\\n.monaco-aria-container {\\n\\tposition: absolute !important;\\n\\ttop: 0; /* avoid being placed underneath a sibling element */\\n\\theight: 1px;\\n\\twidth: 1px;\\n\\tmargin: -1px;\\n\\toverflow: hidden;\\n\\tpadding: 0;\\n\\tclip: rect(1px, 1px, 1px, 1px);\\n\\t-webkit-clip-path: inset(50%);\\n\\t        clip-path: inset(50%);\\n}\\n\\n/* The hc-black theme is already high contrast optimized */\\n.monaco-editor.hc-black {\\n\\t-ms-high-contrast-adjust: none;\\n}\\n/* In case the browser goes into high contrast mode and the editor is not configured with the hc-black theme */\\n@media screen and (-ms-high-contrast:active) {\\n\\n\\t/* current line highlight */\\n\\t.monaco-editor.vs .view-overlays .current-line,\\n\\t.monaco-editor.vs-dark .view-overlays .current-line {\\n\\t\\tborder-color: windowtext !important;\\n\\t\\tborder-left: 0;\\n\\t\\tborder-right: 0;\\n\\t}\\n\\n\\t/* view cursors */\\n\\t.monaco-editor.vs .cursor,\\n\\t.monaco-editor.vs-dark .cursor {\\n\\t\\tbackground-color: windowtext !important;\\n\\t}\\n\\t/* dnd target */\\n\\t.monaco-editor.vs .dnd-target,\\n\\t.monaco-editor.vs-dark .dnd-target {\\n\\t\\tborder-color: windowtext !important;\\n\\t}\\n\\n\\t/* selected text background */\\n\\t.monaco-editor.vs .selected-text,\\n\\t.monaco-editor.vs-dark .selected-text {\\n\\t\\tbackground-color: highlight !important;\\n\\t}\\n\\n\\t/* allow the text to have a transparent background. */\\n\\t.monaco-editor.vs .view-line,\\n\\t.monaco-editor.vs-dark .view-line {\\n\\t\\t-ms-high-contrast-adjust: none;\\n\\t}\\n\\n\\t/* text color */\\n\\t.monaco-editor.vs .view-line span,\\n\\t.monaco-editor.vs-dark .view-line span {\\n\\t\\tcolor: windowtext !important;\\n\\t}\\n\\t/* selected text color */\\n\\t.monaco-editor.vs .view-line span.inline-selected-text,\\n\\t.monaco-editor.vs-dark .view-line span.inline-selected-text {\\n\\t\\tcolor: highlighttext !important;\\n\\t}\\n\\n\\t/* allow decorations */\\n\\t.monaco-editor.vs .view-overlays,\\n\\t.monaco-editor.vs-dark .view-overlays {\\n\\t\\t-ms-high-contrast-adjust: none;\\n\\t}\\n\\n\\t/* various decorations */\\n\\t.monaco-editor.vs .selectionHighlight,\\n\\t.monaco-editor.vs-dark .selectionHighlight,\\n\\t.monaco-editor.vs .wordHighlight,\\n\\t.monaco-editor.vs-dark .wordHighlight,\\n\\t.monaco-editor.vs .wordHighlightStrong,\\n\\t.monaco-editor.vs-dark .wordHighlightStrong,\\n\\t.monaco-editor.vs .reference-decoration,\\n\\t.monaco-editor.vs-dark .reference-decoration {\\n\\t\\tborder: 2px dotted highlight !important;\\n\\t\\tbackground: transparent !important;\\n\\t\\tbox-sizing: border-box;\\n\\t}\\n\\t.monaco-editor.vs .rangeHighlight,\\n\\t.monaco-editor.vs-dark .rangeHighlight {\\n\\t\\tbackground: transparent !important;\\n\\t\\tborder: 1px dotted activeborder !important;\\n\\t\\tbox-sizing: border-box;\\n\\t}\\n\\t.monaco-editor.vs .bracket-match,\\n\\t.monaco-editor.vs-dark .bracket-match {\\n\\t\\tborder-color: windowtext !important;\\n\\t\\tbackground: transparent !important;\\n\\t}\\n\\n\\t/* find widget */\\n\\t.monaco-editor.vs .findMatch,\\n\\t.monaco-editor.vs-dark .findMatch,\\n\\t.monaco-editor.vs .currentFindMatch,\\n\\t.monaco-editor.vs-dark .currentFindMatch {\\n\\t\\tborder: 2px dotted activeborder !important;\\n\\t\\tbackground: transparent !important;\\n\\t\\tbox-sizing: border-box;\\n\\t}\\n\\t.monaco-editor.vs .find-widget,\\n\\t.monaco-editor.vs-dark .find-widget {\\n\\t\\tborder: 1px solid windowtext;\\n\\t}\\n\\n\\t/* list - used by suggest widget */\\n\\t.monaco-editor.vs .monaco-list .monaco-list-row,\\n\\t.monaco-editor.vs-dark .monaco-list .monaco-list-row {\\n\\t\\t-ms-high-contrast-adjust: none;\\n\\t\\tcolor: windowtext !important;\\n\\t}\\n\\t.monaco-editor.vs .monaco-list .monaco-list-row.focused,\\n\\t.monaco-editor.vs-dark .monaco-list .monaco-list-row.focused {\\n\\t\\tcolor: highlighttext !important;\\n\\t\\tbackground-color: highlight !important;\\n\\t}\\n\\t.monaco-editor.vs .monaco-list .monaco-list-row:hover,\\n\\t.monaco-editor.vs-dark .monaco-list .monaco-list-row:hover {\\n\\t\\tbackground: transparent !important;\\n\\t\\tborder: 1px solid highlight;\\n\\t\\tbox-sizing: border-box;\\n\\t}\\n\\n\\t/* scrollbars */\\n\\t.monaco-editor.vs .monaco-scrollable-element > .scrollbar,\\n\\t.monaco-editor.vs-dark .monaco-scrollable-element > .scrollbar {\\n\\t\\t-ms-high-contrast-adjust: none;\\n\\t\\tbackground: background !important;\\n\\t\\tborder: 1px solid windowtext;\\n\\t\\tbox-sizing: border-box;\\n\\t}\\n\\t.monaco-editor.vs .monaco-scrollable-element > .scrollbar > .slider,\\n\\t.monaco-editor.vs-dark .monaco-scrollable-element > .scrollbar > .slider {\\n\\t\\tbackground: windowtext !important;\\n\\t}\\n\\t.monaco-editor.vs .monaco-scrollable-element > .scrollbar > .slider:hover,\\n\\t.monaco-editor.vs-dark .monaco-scrollable-element > .scrollbar > .slider:hover {\\n\\t\\tbackground: highlight !important;\\n\\t}\\n\\t.monaco-editor.vs .monaco-scrollable-element > .scrollbar > .slider.active,\\n\\t.monaco-editor.vs-dark .monaco-scrollable-element > .scrollbar > .slider.active {\\n\\t\\tbackground: highlight !important;\\n\\t}\\n\\n\\t/* overview ruler */\\n\\t.monaco-editor.vs .decorationsOverviewRuler,\\n\\t.monaco-editor.vs-dark .decorationsOverviewRuler {\\n\\t\\topacity: 0;\\n\\t}\\n\\n\\t/* minimap */\\n\\t.monaco-editor.vs .minimap,\\n\\t.monaco-editor.vs-dark .minimap {\\n\\t\\tdisplay: none;\\n\\t}\\n\\n\\t/* squiggles */\\n\\t.monaco-editor.vs .squiggly-d-error,\\n\\t.monaco-editor.vs-dark .squiggly-d-error {\\n\\t\\tbackground: transparent !important;\\n\\t\\tborder-bottom: 4px double #E47777;\\n\\t}\\n\\t.monaco-editor.vs .squiggly-c-warning,\\n\\t.monaco-editor.vs-dark .squiggly-c-warning {\\n\\t\\tborder-bottom: 4px double #71B771;\\n\\t}\\n\\t.monaco-editor.vs .squiggly-b-info,\\n\\t.monaco-editor.vs-dark .squiggly-b-info {\\n\\t\\tborder-bottom: 4px double #71B771;\\n\\t}\\n\\t.monaco-editor.vs .squiggly-a-hint,\\n\\t.monaco-editor.vs-dark .squiggly-a-hint {\\n\\t\\tborder-bottom: 4px double #6c6c6c;\\n\\t}\\n\\n\\t/* contextmenu */\\n\\t.monaco-editor.vs .monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .action-label,\\n\\t.monaco-editor.vs-dark .monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .action-label {\\n\\t\\t-ms-high-contrast-adjust: none;\\n\\t\\tcolor: highlighttext !important;\\n\\t\\tbackground-color: highlight !important;\\n\\t}\\n\\t.monaco-editor.vs .monaco-menu .monaco-action-bar.vertical .action-menu-item:hover .action-label,\\n\\t.monaco-editor.vs-dark .monaco-menu .monaco-action-bar.vertical .action-menu-item:hover .action-label {\\n\\t\\t-ms-high-contrast-adjust: none;\\n\\t\\tbackground: transparent !important;\\n\\t\\tborder: 1px solid highlight;\\n\\t\\tbox-sizing: border-box;\\n\\t}\\n\\n\\t/* diff editor */\\n\\t.monaco-diff-editor.vs .diffOverviewRuler,\\n\\t.monaco-diff-editor.vs-dark .diffOverviewRuler {\\n\\t\\tdisplay: none;\\n\\t}\\n\\t.monaco-editor.vs .line-insert,\\n\\t.monaco-editor.vs-dark .line-insert,\\n\\t.monaco-editor.vs .line-delete,\\n\\t.monaco-editor.vs-dark .line-delete {\\n\\t\\tbackground: transparent !important;\\n\\t\\tborder: 1px solid highlight !important;\\n\\t\\tbox-sizing: border-box;\\n\\t}\\n\\t.monaco-editor.vs .char-insert,\\n\\t.monaco-editor.vs-dark .char-insert,\\n\\t.monaco-editor.vs .char-delete,\\n\\t.monaco-editor.vs-dark .char-delete {\\n\\t\\tbackground: transparent !important;\\n\\t}\\n}\\n\\n/*.monaco-editor.vs [tabindex=\"0\"]:focus {\\n\\toutline: 1px solid rgba(0, 122, 204, 0.4);\\n\\toutline-offset: -1px;\\n\\topacity: 1 !important;\\n}\\n\\n.monaco-editor.vs-dark [tabindex=\"0\"]:focus {\\n\\toutline: 1px solid rgba(14, 99, 156, 0.6);\\n\\toutline-offset: -1px;\\n\\topacity: 1 !important;\\n}*/\\n', \"\"]);\n                const a = r\n            },\n            29593: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \"/*---------------------------------------------------------------------------------------------\\n *  Copyright (c) Microsoft Corporation. All rights reserved.\\n *  Licensed under the MIT License. See License.txt in the project root for license information.\\n *--------------------------------------------------------------------------------------------*/\\n\\n.monaco-action-bar .action-item.menu-entry .action-label.icon {\\n\\twidth: 16px;\\n\\theight: 16px;\\n\\tbackground-repeat: no-repeat;\\n\\tbackground-position: 50%;\\n\\tbackground-size: 16px;\\n}\\n\\n.monaco-action-bar .action-item.menu-entry .action-label {\\n\\tbackground-image: var(--menu-entry-icon-light);\\n}\\n\\n.vs-dark .monaco-action-bar .action-item.menu-entry .action-label,\\n.hc-black .monaco-action-bar .action-item.menu-entry .action-label {\\n\\tbackground-image: var(--menu-entry-icon-dark);\\n}\\n\\n\\n.monaco-dropdown-with-default {\\n\\tdisplay: flex !important;\\n\\tflex-direction: row;\\n\\tborder-radius: 5px;\\n}\\n\\n.monaco-dropdown-with-default > .action-container > .action-label {\\n\\tmargin-right: 0;\\n}\\n\\n.monaco-dropdown-with-default > .action-container.menu-entry > .action-label.icon {\\n\\twidth: 16px;\\n\\theight: 16px;\\n\\tbackground-repeat: no-repeat;\\n\\tbackground-position: 50%;\\n\\tbackground-size: 16px;\\n}\\n\\n.monaco-dropdown-with-default > .action-container.menu-entry > .action-label {\\n\\tbackground-image: var(--menu-entry-icon-light);\\n}\\n\\n.vs-dark .monaco-dropdown-with-default > .action-container.menu-entry > .action-label,\\n.hc-black .monaco-dropdown-with-default > .action-container.menu-entry > .action-label {\\n\\tbackground-image: var(--menu-entry-icon-dark);\\n}\\n\\n.monaco-dropdown-with-default > .dropdown-action-container > .monaco-dropdown > .dropdown-label .codicon[class*='codicon-'] {\\n\\tfont-size: 12px;\\n\\tpadding-left: 0px;\\n\\tpadding-right: 0px;\\n\\tline-height: 16px;\\n\\tmargin-left: -3px;\\n}\\n\\n.monaco-dropdown-with-default > .dropdown-action-container > .monaco-dropdown > .dropdown-label > .action-label {\\n\\tdisplay: block;\\n\\tbackground-size: 16px;\\n\\tbackground-position: center center;\\n\\tbackground-repeat: no-repeat;\\n}\\n\", \"\"]);\n                const a = r\n            },\n            52021: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \"/*---------------------------------------------------------------------------------------------\\n *  Copyright (c) Microsoft Corporation. All rights reserved.\\n *  Licensed under the MIT License. See License.txt in the project root for license information.\\n *--------------------------------------------------------------------------------------------*/\\n\\n.context-view .monaco-menu {\\n\\tmin-width: 130px;\\n}\\n\\n\", \"\"]);\n                const a = r\n            },\n            66853: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => u\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s),\n                    a = i(61667),\n                    l = i.n(a),\n                    c = new URL(i(49944), i.b),\n                    d = r()(o()),\n                    h = l()(c);\n                d.push([e.id, `/*\\n! tailwindcss v3.0.23 | MIT License | https://tailwindcss.com\\n*//*\\n1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)\\n2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116)\\n*/\\n\\n*,\\n::before,\\n::after {\\n  box-sizing: border-box; /* 1 */\\n  border-width: 0; /* 2 */\\n  border-style: solid; /* 2 */\\n  border-color: #e5e7eb; /* 2 */\\n}\\n\\n::before,\\n::after {\\n  --tw-content: '';\\n}\\n\\n/*\\n1. Use a consistent sensible line-height in all browsers.\\n2. Prevent adjustments of font size after orientation changes in iOS.\\n3. Use a more readable tab size.\\n4. Use the user's configured \\`sans\\` font-family by default.\\n*/\\n\\nhtml {\\n  line-height: 1.5; /* 1 */\\n  -webkit-text-size-adjust: 100%; /* 2 */\\n  -moz-tab-size: 4; /* 3 */\\n  -o-tab-size: 4;\\n     tab-size: 4; /* 3 */\\n  font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\"; /* 4 */\\n}\\n\\n/*\\n1. Remove the margin in all browsers.\\n2. Inherit line-height from \\`html\\` so users can set them as a class directly on the \\`html\\` element.\\n*/\\n\\nbody {\\n  margin: 0; /* 1 */\\n  line-height: inherit; /* 2 */\\n}\\n\\n/*\\n1. Add the correct height in Firefox.\\n2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)\\n3. Ensure horizontal rules are visible by default.\\n*/\\n\\nhr {\\n  height: 0; /* 1 */\\n  color: inherit; /* 2 */\\n  border-top-width: 1px; /* 3 */\\n}\\n\\n/*\\nAdd the correct text decoration in Chrome, Edge, and Safari.\\n*/\\n\\nabbr:where([title]) {\\n  -webkit-text-decoration: underline dotted;\\n          text-decoration: underline dotted;\\n}\\n\\n/*\\nRemove the default font size and weight for headings.\\n*/\\n\\nh1,\\nh2,\\nh3,\\nh4,\\nh5,\\nh6 {\\n  font-size: inherit;\\n  font-weight: inherit;\\n}\\n\\n/*\\nReset links to optimize for opt-in styling instead of opt-out.\\n*/\\n\\na {\\n  color: inherit;\\n  text-decoration: inherit;\\n}\\n\\n/*\\nAdd the correct font weight in Edge and Safari.\\n*/\\n\\nb,\\nstrong {\\n  font-weight: bolder;\\n}\\n\\n/*\\n1. Use the user's configured \\`mono\\` font family by default.\\n2. Correct the odd \\`em\\` font sizing in all browsers.\\n*/\\n\\ncode,\\nkbd,\\nsamp,\\npre {\\n  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace; /* 1 */\\n  font-size: 1em; /* 2 */\\n}\\n\\n/*\\nAdd the correct font size in all browsers.\\n*/\\n\\nsmall {\\n  font-size: 80%;\\n}\\n\\n/*\\nPrevent \\`sub\\` and \\`sup\\` elements from affecting the line height in all browsers.\\n*/\\n\\nsub,\\nsup {\\n  font-size: 75%;\\n  line-height: 0;\\n  position: relative;\\n  vertical-align: baseline;\\n}\\n\\nsub {\\n  bottom: -0.25em;\\n}\\n\\nsup {\\n  top: -0.5em;\\n}\\n\\n/*\\n1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)\\n2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)\\n3. Remove gaps between table borders by default.\\n*/\\n\\ntable {\\n  text-indent: 0; /* 1 */\\n  border-color: inherit; /* 2 */\\n  border-collapse: collapse; /* 3 */\\n}\\n\\n/*\\n1. Change the font styles in all browsers.\\n2. Remove the margin in Firefox and Safari.\\n3. Remove default padding in all browsers.\\n*/\\n\\nbutton,\\ninput,\\noptgroup,\\nselect,\\ntextarea {\\n  font-family: inherit; /* 1 */\\n  font-size: 100%; /* 1 */\\n  line-height: inherit; /* 1 */\\n  color: inherit; /* 1 */\\n  margin: 0; /* 2 */\\n  padding: 0; /* 3 */\\n}\\n\\n/*\\nRemove the inheritance of text transform in Edge and Firefox.\\n*/\\n\\nbutton,\\nselect {\\n  text-transform: none;\\n}\\n\\n/*\\n1. Correct the inability to style clickable types in iOS and Safari.\\n2. Remove default button styles.\\n*/\\n\\nbutton,\\n[type='button'],\\n[type='reset'],\\n[type='submit'] {\\n  -webkit-appearance: button; /* 1 */\\n  background-color: transparent; /* 2 */\\n  background-image: none; /* 2 */\\n}\\n\\n/*\\nUse the modern Firefox focus style for all focusable elements.\\n*/\\n\\n:-moz-focusring {\\n  outline: auto;\\n}\\n\\n/*\\nRemove the additional \\`:invalid\\` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737)\\n*/\\n\\n:-moz-ui-invalid {\\n  box-shadow: none;\\n}\\n\\n/*\\nAdd the correct vertical alignment in Chrome and Firefox.\\n*/\\n\\nprogress {\\n  vertical-align: baseline;\\n}\\n\\n/*\\nCorrect the cursor style of increment and decrement buttons in Safari.\\n*/\\n\\n::-webkit-inner-spin-button,\\n::-webkit-outer-spin-button {\\n  height: auto;\\n}\\n\\n/*\\n1. Correct the odd appearance in Chrome and Safari.\\n2. Correct the outline style in Safari.\\n*/\\n\\n[type='search'] {\\n  -webkit-appearance: textfield; /* 1 */\\n  outline-offset: -2px; /* 2 */\\n}\\n\\n/*\\nRemove the inner padding in Chrome and Safari on macOS.\\n*/\\n\\n::-webkit-search-decoration {\\n  -webkit-appearance: none;\\n}\\n\\n/*\\n1. Correct the inability to style clickable types in iOS and Safari.\\n2. Change font properties to \\`inherit\\` in Safari.\\n*/\\n\\n::-webkit-file-upload-button {\\n  -webkit-appearance: button; /* 1 */\\n  font: inherit; /* 2 */\\n}\\n\\n/*\\nAdd the correct display in Chrome and Safari.\\n*/\\n\\nsummary {\\n  display: list-item;\\n}\\n\\n/*\\nRemoves the default spacing and border for appropriate elements.\\n*/\\n\\nblockquote,\\ndl,\\ndd,\\nh1,\\nh2,\\nh3,\\nh4,\\nh5,\\nh6,\\nhr,\\nfigure,\\np,\\npre {\\n  margin: 0;\\n}\\n\\nfieldset {\\n  margin: 0;\\n  padding: 0;\\n}\\n\\nlegend {\\n  padding: 0;\\n}\\n\\nol,\\nul,\\nmenu {\\n  list-style: none;\\n  margin: 0;\\n  padding: 0;\\n}\\n\\n/*\\nPrevent resizing textareas horizontally by default.\\n*/\\n\\ntextarea {\\n  resize: vertical;\\n}\\n\\n/*\\n1. 重启 the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)\\n2. Set the default placeholder color to the user's configured gray 400 color.\\n*/\\n\\ninput::-moz-placeholder, textarea::-moz-placeholder {\\n  opacity: 1; /* 1 */\\n  color: #9ca3af; /* 2 */\\n}\\n\\ninput:-ms-input-placeholder, textarea:-ms-input-placeholder {\\n  opacity: 1; /* 1 */\\n  color: #9ca3af; /* 2 */\\n}\\n\\ninput::placeholder,\\ntextarea::placeholder {\\n  opacity: 1; /* 1 */\\n  color: #9ca3af; /* 2 */\\n}\\n\\n/*\\nSet the default cursor for buttons.\\n*/\\n\\nbutton,\\n[role=\"button\"] {\\n  cursor: pointer;\\n}\\n\\n/*\\nMake sure disabled buttons don't get the pointer cursor.\\n*/\\n:disabled {\\n  cursor: default;\\n}\\n\\n/*\\n1. Make replaced elements \\`display: block\\` by default. (https://github.com/mozdevs/cssremedy/issues/14)\\n2. Add \\`vertical-align: middle\\` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)\\n   This can trigger a poorly considered lint error in some tools but is included by design.\\n*/\\n\\nimg,\\nsvg,\\nvideo,\\ncanvas,\\naudio,\\niframe,\\nembed,\\nobject {\\n  display: block; /* 1 */\\n  vertical-align: middle; /* 2 */\\n}\\n\\n/*\\nConstrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)\\n*/\\n\\nimg,\\nvideo {\\n  max-width: 100%;\\n  height: auto;\\n}\\n\\n/*\\nEnsure the default browser behavior of the \\`hidden\\` attribute.\\n*/\\n\\n[hidden] {\\n  display: none;\\n}\\n  @font-face {\\n    font-family: 'Material Icons';\\n    src: url(${h}) format('woff2');\\n  }\\n\\n*, ::before, ::after {\\n  --tw-translate-x: 0;\\n  --tw-translate-y: 0;\\n  --tw-rotate: 0;\\n  --tw-skew-x: 0;\\n  --tw-skew-y: 0;\\n  --tw-scale-x: 1;\\n  --tw-scale-y: 1;\\n  --tw-pan-x:  ;\\n  --tw-pan-y:  ;\\n  --tw-pinch-zoom:  ;\\n  --tw-scroll-snap-strictness: proximity;\\n  --tw-ordinal:  ;\\n  --tw-slashed-zero:  ;\\n  --tw-numeric-figure:  ;\\n  --tw-numeric-spacing:  ;\\n  --tw-numeric-fraction:  ;\\n  --tw-ring-inset:  ;\\n  --tw-ring-offset-width: 0px;\\n  --tw-ring-offset-color: #fff;\\n  --tw-ring-color: rgb(59 130 246 / 0.5);\\n  --tw-ring-offset-shadow: 0 0 #0000;\\n  --tw-ring-shadow: 0 0 #0000;\\n  --tw-shadow: 0 0 #0000;\\n  --tw-shadow-colored: 0 0 #0000;\\n  --tw-blur:  ;\\n  --tw-brightness:  ;\\n  --tw-contrast:  ;\\n  --tw-grayscale:  ;\\n  --tw-hue-rotate:  ;\\n  --tw-invert:  ;\\n  --tw-saturate:  ;\\n  --tw-sepia:  ;\\n  --tw-drop-shadow:  ;\\n  --tw-backdrop-blur:  ;\\n  --tw-backdrop-brightness:  ;\\n  --tw-backdrop-contrast:  ;\\n  --tw-backdrop-grayscale:  ;\\n  --tw-backdrop-hue-rotate:  ;\\n  --tw-backdrop-invert:  ;\\n  --tw-backdrop-opacity:  ;\\n  --tw-backdrop-saturate:  ;\\n  --tw-backdrop-sepia:  ;\\n}\\n.icon {\\n    font-family: 'Material Icons';\\n    font-weight: normal;\\n    font-style: normal;\\n    font-size: 18px; /* Preferred icon size */\\n    display: inline-block;\\n    line-height: 1;\\n    text-transform: none;\\n    letter-spacing: normal;\\n    word-wrap: normal;\\n    white-space: nowrap;\\n    direction: ltr;\\n    text-rendering: optimizeLegibility;\\n    font-feature-settings: 'liga';\\n    -webkit-font-smoothing: antialiased;\\n  }\\n.visible {\\n  visibility: visible;\\n}\\n.static {\\n  position: static;\\n}\\n.fixed {\\n  position: fixed;\\n}\\n.absolute {\\n  position: absolute;\\n}\\n.relative {\\n  position: relative;\\n}\\n.top-0 {\\n  top: 0px;\\n}\\n.left-0 {\\n  left: 0px;\\n}\\n.left-1\\\\/2 {\\n  left: 50%;\\n}\\n.top-1\\\\/2 {\\n  top: 50%;\\n}\\n.top-\\\\[32px\\\\] {\\n  top: 32px;\\n}\\n.right-2 {\\n  right: 0.5rem;\\n}\\n.bottom-3 {\\n  bottom: 0.75rem;\\n}\\n.left-\\\\[calc\\\\(50\\\\%\\\\+85px\\\\)\\\\] {\\n  left: calc(50% + 85px);\\n}\\n.left-3 {\\n  left: 0.75rem;\\n}\\n.top-8 {\\n  top: 2rem;\\n}\\n.bottom-6 {\\n  bottom: 1.5rem;\\n}\\n.top-\\\\[25px\\\\] {\\n  top: 25px;\\n}\\n.left-\\\\[170px\\\\] {\\n  left: 170px;\\n}\\n.z-10 {\\n  z-index: 10;\\n}\\n.z-\\\\[120\\\\] {\\n  z-index: 120;\\n}\\n.z-50 {\\n  z-index: 50;\\n}\\n.mx-4 {\\n  margin-left: 1rem;\\n  margin-right: 1rem;\\n}\\n.mt-\\\\[1000px\\\\] {\\n  margin-top: 1000px;\\n}\\n.mr-\\\\[20px\\\\] {\\n  margin-right: 20px;\\n}\\n.mr-2 {\\n  margin-right: 0.5rem;\\n}\\n.mt-\\\\[2px\\\\] {\\n  margin-top: 2px;\\n}\\n.ml-\\\\[5px\\\\] {\\n  margin-left: 5px;\\n}\\n.mr-4 {\\n  margin-right: 1rem;\\n}\\n.ml-1 {\\n  margin-left: 0.25rem;\\n}\\n.mr-\\\\[15px\\\\] {\\n  margin-right: 15px;\\n}\\n.mb-\\\\[10px\\\\] {\\n  margin-bottom: 10px;\\n}\\n.mb-1 {\\n  margin-bottom: 0.25rem;\\n}\\n.block {\\n  display: block;\\n}\\n.inline-block {\\n  display: inline-block;\\n}\\n.flex {\\n  display: flex;\\n}\\n.grid {\\n  display: grid;\\n}\\n.list-item {\\n  display: list-item;\\n}\\n.hidden {\\n  display: none;\\n}\\n.h-full {\\n  height: 100%;\\n}\\n.h-4\\\\/5 {\\n  height: 80%;\\n}\\n.h-\\\\[calc\\\\(100\\\\%-300px\\\\)\\\\] {\\n  height: calc(100% - 300px);\\n}\\n.h-\\\\[40px\\\\] {\\n  height: 40px;\\n}\\n.h-fit {\\n  height: -moz-fit-content;\\n  height: fit-content;\\n}\\n.h-\\\\[90px\\\\] {\\n  height: 90px;\\n}\\n.h-\\\\[35px\\\\] {\\n  height: 35px;\\n}\\n.h-3\\\\/5 {\\n  height: 60%;\\n}\\n.h-2 {\\n  height: 0.5rem;\\n}\\n.h-\\\\[1px\\\\] {\\n  height: 1px;\\n}\\n.h-\\\\[calc\\\\(100\\\\%_-_25px\\\\)\\\\] {\\n  height: calc(100% - 25px);\\n}\\n.h-\\\\[18px\\\\] {\\n  height: 18px;\\n}\\n.max-h-\\\\[500px\\\\] {\\n  max-height: 500px;\\n}\\n.min-h-\\\\[400px\\\\] {\\n  min-height: 400px;\\n}\\n.w-full {\\n  width: 100%;\\n}\\n.w-3\\\\/5 {\\n  width: 60%;\\n}\\n.w-\\\\[calc\\\\(100\\\\%-200px\\\\)\\\\] {\\n  width: calc(100% - 200px);\\n}\\n.w-fit {\\n  width: -moz-fit-content;\\n  width: fit-content;\\n}\\n.w-\\\\[90px\\\\] {\\n  width: 90px;\\n}\\n.w-2 {\\n  width: 0.5rem;\\n}\\n.w-\\\\[80px\\\\] {\\n  width: 80px;\\n}\\n.w-\\\\[calc\\\\(100\\\\%_-_170px\\\\)\\\\] {\\n  width: calc(100% - 170px);\\n}\\n.w-\\\\[500px\\\\] {\\n  width: 500px;\\n}\\n.w-\\\\[18px\\\\] {\\n  width: 18px;\\n}\\n.w-\\\\[200px\\\\] {\\n  width: 200px;\\n}\\n.min-w-\\\\[500px\\\\] {\\n  min-width: 500px;\\n}\\n.max-w-full {\\n  max-width: 100%;\\n}\\n.max-w-\\\\[350px\\\\] {\\n  max-width: 350px;\\n}\\n.max-w-\\\\[120px\\\\] {\\n  max-width: 120px;\\n}\\n.flex-1 {\\n  flex: 1 1 0%;\\n}\\n.flex-shrink-0 {\\n  flex-shrink: 0;\\n}\\n.flex-shrink {\\n  flex-shrink: 1;\\n}\\n.flex-grow {\\n  flex-grow: 1;\\n}\\n.flex-grow-0 {\\n  flex-grow: 0;\\n}\\n.-translate-x-1\\\\/2 {\\n  --tw-translate-x: -50%;\\n  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\\n}\\n.-translate-y-1\\\\/2 {\\n  --tw-translate-y: -50%;\\n  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\\n}\\n.translate-y-\\\\[2px\\\\] {\\n  --tw-translate-y: 2px;\\n  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\\n}\\n.-translate-y-1 {\\n  --tw-translate-y: -0.25rem;\\n  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\\n}\\n.rotate-90 {\\n  --tw-rotate: 90deg;\\n  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\\n}\\n.transform {\\n  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\\n}\\n@keyframes bounce {\\n\\n  0%, 100% {\\n    transform: translateY(-25%);\\n    animation-timing-function: cubic-bezier(0.8,0,1,1);\\n  }\\n\\n  50% {\\n    transform: none;\\n    animation-timing-function: cubic-bezier(0,0,0.2,1);\\n  }\\n}\\n.animate-bounce {\\n  animation: bounce 1s infinite;\\n}\\n.cursor-pointer {\\n  cursor: pointer;\\n}\\n.cursor-move {\\n  cursor: move;\\n}\\n.select-text {\\n  -webkit-user-select: text;\\n     -moz-user-select: text;\\n      -ms-user-select: text;\\n          user-select: text;\\n}\\n.resize {\\n  resize: both;\\n}\\n.grid-cols-2 {\\n  grid-template-columns: repeat(2, minmax(0, 1fr));\\n}\\n.grid-cols-4 {\\n  grid-template-columns: repeat(4, minmax(0, 1fr));\\n}\\n.flex-col {\\n  flex-direction: column;\\n}\\n.flex-wrap {\\n  flex-wrap: wrap;\\n}\\n.items-center {\\n  align-items: center;\\n}\\n.items-baseline {\\n  align-items: baseline;\\n}\\n.justify-center {\\n  justify-content: center;\\n}\\n.justify-between {\\n  justify-content: space-between;\\n}\\n.gap-\\\\[20px\\\\] {\\n  gap: 20px;\\n}\\n.gap-1 {\\n  gap: 0.25rem;\\n}\\n.gap-2 {\\n  gap: 0.5rem;\\n}\\n.gap-3 {\\n  gap: 0.75rem;\\n}\\n.gap-x-\\\\[20px\\\\] {\\n  -moz-column-gap: 20px;\\n       column-gap: 20px;\\n}\\n.gap-x-1 {\\n  -moz-column-gap: 0.25rem;\\n       column-gap: 0.25rem;\\n}\\n.gap-y-1 {\\n  row-gap: 0.25rem;\\n}\\n.gap-x-3 {\\n  -moz-column-gap: 0.75rem;\\n       column-gap: 0.75rem;\\n}\\n.gap-x-\\\\[2px\\\\] {\\n  -moz-column-gap: 2px;\\n       column-gap: 2px;\\n}\\n.gap-x-4 {\\n  -moz-column-gap: 1rem;\\n       column-gap: 1rem;\\n}\\n.gap-x-5 {\\n  -moz-column-gap: 1.25rem;\\n       column-gap: 1.25rem;\\n}\\n.gap-x-2 {\\n  -moz-column-gap: 0.5rem;\\n       column-gap: 0.5rem;\\n}\\n.overflow-auto {\\n  overflow: auto;\\n}\\n.overflow-hidden {\\n  overflow: hidden;\\n}\\n.overflow-clip {\\n  overflow: clip;\\n}\\n.overflow-y-auto {\\n  overflow-y: auto;\\n}\\n.text-ellipsis {\\n  text-overflow: ellipsis;\\n}\\n.whitespace-normal {\\n  white-space: normal;\\n}\\n.whitespace-pre {\\n  white-space: pre;\\n}\\n.whitespace-pre-wrap {\\n  white-space: pre-wrap;\\n}\\n.break-words {\\n  overflow-wrap: break-word;\\n}\\n.break-all {\\n  word-break: break-all;\\n}\\n.rounded-md {\\n  border-radius: 0.375rem;\\n}\\n.rounded {\\n  border-radius: 0.25rem;\\n}\\n.rounded-\\\\[10px\\\\] {\\n  border-radius: 10px;\\n}\\n.rounded-full {\\n  border-radius: 9999px;\\n}\\n.rounded-lg {\\n  border-radius: 0.5rem;\\n}\\n.rounded-2xl {\\n  border-radius: 1rem;\\n}\\n.rounded-br-none {\\n  border-bottom-right-radius: 0px;\\n}\\n.rounded-tr-none {\\n  border-top-right-radius: 0px;\\n}\\n.border {\\n  border-width: 1px;\\n}\\n.border-\\\\[1px\\\\] {\\n  border-width: 1px;\\n}\\n.border-b {\\n  border-bottom-width: 1px;\\n}\\n.\\\\!border-b-0 {\\n  border-bottom-width: 0px !important;\\n}\\n.border-solid {\\n  border-style: solid;\\n}\\n.border-\\\\[color\\\\:var\\\\(--bc\\\\)\\\\] {\\n  border-color: var(--bc);\\n}\\n.border-\\\\[color\\\\:rgb\\\\(85\\\\2c 79\\\\2c 79\\\\)\\\\] {\\n  --tw-border-opacity: 1;\\n  border-color: rgb(85 79 79 / var(--tw-border-opacity));\\n}\\n.border-b-\\\\[color\\\\:var\\\\(--bc\\\\)\\\\] {\\n  border-bottom-color: var(--bc);\\n}\\n.border-opacity-50 {\\n  --tw-border-opacity: 0.5;\\n}\\n.bg-\\\\[color\\\\:var\\\\(--bgc\\\\)\\\\] {\\n  background-color: var(--bgc);\\n}\\n.bg-\\\\[color\\\\:var\\\\(--mask-c\\\\)\\\\] {\\n  background-color: var(--mask-c);\\n}\\n.bg-\\\\[color\\\\:var\\\\(--mbgc\\\\)\\\\] {\\n  background-color: var(--mbgc);\\n}\\n.bg-\\\\[color\\\\:var\\\\(--proxy-item-bgc\\\\)\\\\] {\\n  background-color: var(--proxy-item-bgc);\\n}\\n.bg-black {\\n  --tw-bg-opacity: 1;\\n  background-color: rgb(0 0 0 / var(--tw-bg-opacity));\\n}\\n.bg-\\\\[color\\\\:var\\\\(--proxy-item-selected-border-c\\\\)\\\\] {\\n  background-color: var(--proxy-item-selected-border-c);\\n}\\n.bg-green-400 {\\n  --tw-bg-opacity: 1;\\n  background-color: rgb(74 222 128 / var(--tw-bg-opacity));\\n}\\n.bg-red-400 {\\n  --tw-bg-opacity: 1;\\n  background-color: rgb(248 113 113 / var(--tw-bg-opacity));\\n}\\n.bg-gray-400 {\\n  --tw-bg-opacity: 1;\\n  background-color: rgb(156 163 175 / var(--tw-bg-opacity));\\n}\\n.bg-\\\\[\\\\#1E1E1E\\\\] {\\n  --tw-bg-opacity: 1;\\n  background-color: rgb(30 30 30 / var(--tw-bg-opacity));\\n}\\n.bg-\\\\[color\\\\:\\\\#14A53A\\\\] {\\n  --tw-bg-opacity: 1;\\n  background-color: rgb(20 165 58 / var(--tw-bg-opacity));\\n}\\n.bg-\\\\[\\\\#6f6f6f\\\\] {\\n  --tw-bg-opacity: 1;\\n  background-color: rgb(111 111 111 / var(--tw-bg-opacity));\\n}\\n.bg-\\\\[color\\\\:\\\\#1C1C1C\\\\] {\\n  --tw-bg-opacity: 1;\\n  background-color: rgb(28 28 28 / var(--tw-bg-opacity));\\n}\\n.bg-cyan-500 {\\n  --tw-bg-opacity: 1;\\n  background-color: rgb(6 182 212 / var(--tw-bg-opacity));\\n}\\n.bg-gray-500 {\\n  --tw-bg-opacity: 1;\\n  background-color: rgb(107 114 128 / var(--tw-bg-opacity));\\n}\\n.bg-\\\\[color\\\\:\\\\#2c2a38\\\\] {\\n  --tw-bg-opacity: 1;\\n  background-color: rgb(44 42 56 / var(--tw-bg-opacity));\\n}\\n.bg-gray-300 {\\n  --tw-bg-opacity: 1;\\n  background-color: rgb(209 213 219 / var(--tw-bg-opacity));\\n}\\n.bg-\\\\[color\\\\:\\\\#64646480\\\\] {\\n  background-color: #64646480;\\n}\\n.bg-opacity-80 {\\n  --tw-bg-opacity: 0.8;\\n}\\n.p-4 {\\n  padding: 1rem;\\n}\\n.p-2 {\\n  padding: 0.5rem;\\n}\\n.px-4 {\\n  padding-left: 1rem;\\n  padding-right: 1rem;\\n}\\n.py-3 {\\n  padding-top: 0.75rem;\\n  padding-bottom: 0.75rem;\\n}\\n.px-3 {\\n  padding-left: 0.75rem;\\n  padding-right: 0.75rem;\\n}\\n.py-1 {\\n  padding-top: 0.25rem;\\n  padding-bottom: 0.25rem;\\n}\\n.px-2 {\\n  padding-left: 0.5rem;\\n  padding-right: 0.5rem;\\n}\\n.py-2 {\\n  padding-top: 0.5rem;\\n  padding-bottom: 0.5rem;\\n}\\n.px-6 {\\n  padding-left: 1.5rem;\\n  padding-right: 1.5rem;\\n}\\n.py-\\\\[2px\\\\] {\\n  padding-top: 2px;\\n  padding-bottom: 2px;\\n}\\n.px-5 {\\n  padding-left: 1.25rem;\\n  padding-right: 1.25rem;\\n}\\n.py-4 {\\n  padding-top: 1rem;\\n  padding-bottom: 1rem;\\n}\\n.pl-3 {\\n  padding-left: 0.75rem;\\n}\\n.pr-6 {\\n  padding-right: 1.5rem;\\n}\\n.pt-3 {\\n  padding-top: 0.75rem;\\n}\\n.pb-3 {\\n  padding-bottom: 0.75rem;\\n}\\n.pt-2 {\\n  padding-top: 0.5rem;\\n}\\n.pl-4 {\\n  padding-left: 1rem;\\n}\\n.pr-4 {\\n  padding-right: 1rem;\\n}\\n.pb-2 {\\n  padding-bottom: 0.5rem;\\n}\\n.pr-1 {\\n  padding-right: 0.25rem;\\n}\\n.text-center {\\n  text-align: center;\\n}\\n.font-sans {\\n  font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\\n}\\n.text-sm {\\n  font-size: 0.875rem;\\n  line-height: 1.25rem;\\n}\\n.text-xs {\\n  font-size: 0.75rem;\\n  line-height: 1rem;\\n}\\n.text-base {\\n  font-size: 1rem;\\n  line-height: 1.5rem;\\n}\\n.text-\\\\[14px\\\\] {\\n  font-size: 14px;\\n}\\n.text-\\\\[10px\\\\] {\\n  font-size: 10px;\\n}\\n.text-lg {\\n  font-size: 1.125rem;\\n  line-height: 1.75rem;\\n}\\n.text-\\\\[20px\\\\] {\\n  font-size: 20px;\\n}\\n.font-normal {\\n  font-weight: 400;\\n}\\n.capitalize {\\n  text-transform: capitalize;\\n}\\n.text-\\\\[color\\\\:var\\\\(--fgc\\\\)\\\\] {\\n  color: var(--fgc);\\n}\\n.text-\\\\[color\\\\:var\\\\(--feedback-link-c\\\\)\\\\] {\\n  color: var(--feedback-link-c);\\n}\\n.text-\\\\[color\\\\:var\\\\(--general-settings-icon-c\\\\)\\\\] {\\n  color: var(--general-settings-icon-c);\\n}\\n.text-\\\\[color\\\\:var\\\\(--log-item-payload-c\\\\)\\\\] {\\n  color: var(--log-item-payload-c);\\n}\\n.text-\\\\[color\\\\:var\\\\(--proxy-item-latency-offline-c\\\\)\\\\] {\\n  color: var(--proxy-item-latency-offline-c);\\n}\\n.text-white {\\n  --tw-text-opacity: 1;\\n  color: rgb(255 255 255 / var(--tw-text-opacity));\\n}\\n.text-red-500 {\\n  --tw-text-opacity: 1;\\n  color: rgb(239 68 68 / var(--tw-text-opacity));\\n}\\n.text-\\\\[\\\\#FFAD00\\\\] {\\n  --tw-text-opacity: 1;\\n  color: rgb(255 173 0 / var(--tw-text-opacity));\\n}\\n.text-\\\\[\\\\#D44545\\\\] {\\n  --tw-text-opacity: 1;\\n  color: rgb(212 69 69 / var(--tw-text-opacity));\\n}\\n.text-\\\\[\\\\#13AF42\\\\] {\\n  --tw-text-opacity: 1;\\n  color: rgb(19 175 66 / var(--tw-text-opacity));\\n}\\n.text-\\\\[\\\\#41b883\\\\] {\\n  --tw-text-opacity: 1;\\n  color: rgb(65 184 131 / var(--tw-text-opacity));\\n}\\n.opacity-60 {\\n  opacity: 0.6;\\n}\\n.opacity-40 {\\n  opacity: 0.4;\\n}\\n.opacity-80 {\\n  opacity: 0.8;\\n}\\n.opacity-50 {\\n  opacity: 0.5;\\n}\\n.opacity-70 {\\n  opacity: 0.7;\\n}\\n.shadow-2xl {\\n  --tw-shadow: 0 25px 50px -12px rgb(0 0 0 / 0.25);\\n  --tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);\\n  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\\n}\\n.shadow-lg {\\n  --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);\\n  --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);\\n  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\\n}\\n.shadow-xl {\\n  --tw-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);\\n  --tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);\\n  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\\n}\\n.outline-none {\\n  outline: 2px solid transparent;\\n  outline-offset: 2px;\\n}\\n.outline {\\n  outline-style: solid;\\n}\\n.blur {\\n  --tw-blur: blur(8px);\\n  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);\\n}\\n.filter {\\n  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);\\n}\\n.transition {\\n  transition-property: color, background-color, border-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-text-decoration-color, -webkit-backdrop-filter;\\n  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;\\n  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-text-decoration-color, -webkit-backdrop-filter;\\n  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\\n  transition-duration: 150ms;\\n}\\n.transition-all {\\n  transition-property: all;\\n  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\\n  transition-duration: 150ms;\\n}\\n.duration-200 {\\n  transition-duration: 200ms;\\n}\\n.ease-in-out {\\n  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\\n}\\n.ease-in {\\n  transition-timing-function: cubic-bezier(0.4, 0, 1, 1);\\n}\\n.ease-out {\\n  transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\\n}\\n\\ninput {\\n  border-radius: 0.25rem;\\n  border-width: 1px;\\n  border-style: solid;\\n  border-color: var(--bc);\\n  background-color: var(--bgc);\\n}\\n\\ninput::-moz-placeholder {\\n  color: var(--input-phc);\\n}\\n\\ninput:-ms-input-placeholder {\\n  color: var(--input-phc);\\n}\\n\\ninput::placeholder {\\n  color: var(--input-phc);\\n}\\n\\ntextarea {\\n  border-radius: 0.25rem;\\n  border-width: 1px;\\n  border-style: solid;\\n  border-color: var(--bc);\\n  background-color: var(--bgc);\\n}\\n\\ntextarea::-moz-placeholder {\\n  color: var(--input-phc);\\n}\\n\\ntextarea:-ms-input-placeholder {\\n  color: var(--input-phc);\\n}\\n\\ntextarea::placeholder {\\n  color: var(--input-phc);\\n}\\n\\n.theme-light {\\n  animation: fade 0.2s ease-in-out;\\n}\\n\\n:root {\\n  --bgc: #fff;\\n  --fgc: #000;\\n  --bc: #dcdcdc;\\n  --mbgc: #f5f5f5;\\n  --shadow: rgba(50, 50, 50, 0.1);\\n  --general-item-bgc: #f1f1f1;\\n  --general-title-c: #2c3e50;\\n  --general-clickable-border-c: rgba(50, 50, 50, 0.2);\\n  --general-interface-card-bgc: #fff;\\n  --general-interface-card-fgc: #17224f;\\n  --general-interface-card-quote-bgc: rgb(213, 213, 213);\\n  --general-settings-icon-c: #2c3e50;\\n  --proxy-fake-item-bgc: #e3e3e3;\\n  --proxy-item-now-fgc: #ffffff;\\n  --proxy-item-now-bgc: rgb(146, 146, 146);\\n  --proxy-item-type-bgc: rgb(146, 146, 146);\\n  --proxy-item-type-fgc: #fff;\\n  --proxy-item-border-c: rgba(75, 75, 75, 0.185);\\n  --proxy-item-selected-border-c: #41b883;\\n  --proxy-item-bgc: rgba(41, 41, 41, 0.05);\\n  --proxy-item-hint-c: rgb(128, 128, 128);\\n  --proxy-item-subs-fgc: #fff;\\n  --proxy-item-subs-bgc: rgb(226, 226, 226);\\n  --proxy-item-subs-used-bgc: #f57983;\\n  --proxy-item-latency-online-c: #41b883;\\n  --proxy-item-latency-offline-c: rgb(236, 5, 5);\\n  --mode-switcher-selected-bgc: #4c4b4b;\\n  --mode-switcher-selected-fgc: #fff;\\n  --mode-switcher-normal-bgc: #fff;\\n  --mode-switcher-normal-fgc: #747474;\\n  --log-item-border-c: rgba(50, 50, 50, 0.1);\\n  --log-item-rule-c: rgba(50, 50, 50, 0.7);\\n  --log-item-payload-c: rgb(4, 92, 133);\\n  --log-list-border-c: rgba(202, 202, 202, 0.342);\\n  --profile-card-bgc: #f5f5f5;\\n  --profile-card-hint-c: #1d2b63;\\n  --profile-list-item-bgc: #7e7b7b;\\n  --profile-list-item-cur-bgc: #464646;\\n  --feedback-link-c: rgb(1, 159, 245);\\n  --status-bgc: #ebebeb;\\n  --status-close-hover: rgba(50, 50, 50, 0.2);\\n  --switch-bgc: #c7bfbf;\\n  --switch-bgc-second: #bdb3b3;\\n  --menu-fgc: rgb(116, 125, 136);\\n  --scroll-bar-bgc: rgb(202, 200, 198);\\n  --input-bgc: #f1f1f1;\\n  --input-phc: rgb(163, 163, 163);\\n  --error-text: rgb(250, 19, 19);\\n  --mask-c: rgba(50, 50, 50, 0.6);\\n  --setting-input-bgc: #fff;\\n  --setting-item-hover-bgc: rgba(50, 50, 50, 0.2);\\n}\\n\\n.theme-dark {\\n  animation: fade 0.2s ease-in-out;\\n  --bgc: #2c2a38;\\n  --fgc: rgb(255, 255, 255);\\n  --bc: rgb(85, 79, 79);\\n  --mbgc: #42424e;\\n  --shadow: rgba(214, 214, 214, 0.1);\\n  --general-item-bgc: #606068;\\n  --general-title-c: rgb(233, 233, 233);\\n  --general-clickable-border-c: rgb(149, 149, 149);\\n  --general-interface-card-bgc: #686675;\\n  --general-interface-card-fgc: #fff;\\n  --general-interface-card-quote-bgc: #494757;\\n  --general-settings-icon-c: #c2c8ce;\\n  --proxy-fake-item-bgc: #32323f;\\n  --proxy-item-now-fgc: rgb(206, 206, 206);\\n  --proxy-item-now-bgc: rgb(92, 92, 92);\\n  --proxy-item-type-bgc: rgb(92, 92, 92);\\n  --proxy-item-type-fgc: rgb(206, 206, 206);\\n  --proxy-item-border-c: rgba(199, 199, 199, 0.185);\\n  --proxy-item-selected-border-c: rgb(0, 170, 0);\\n  --proxy-item-bgc: rgba(255, 255, 255, 0.05);\\n  --proxy-item-hint-c: rgb(167, 167, 167);\\n  --proxy-item-subs-fgc: rgb(180, 180, 180);\\n  --proxy-item-subs-bgc: rgb(90, 90, 90);\\n  --proxy-item-subs-used-bgc: #92484e;\\n  --proxy-item-latency-online-c: rgb(20, 160, 20);\\n  --proxy-item-latency-offline-c: rgb(219, 75, 75);\\n  --mode-switcher-selected-bgc: #3aa1cc;\\n  --mode-switcher-selected-fgc: #fff;\\n  --mode-switcher-normal-bgc: #42424e;\\n  --mode-switcher-normal-fgc: #adadad;\\n  --log-item-border-c: rgb(73, 66, 66);\\n  --log-item-rule-c: rgba(224, 224, 224, 0.712);\\n  --log-item-payload-c: rgb(95, 190, 202);\\n  --log-list-border-c: rgb(98, 98, 98);\\n  --profile-card-bgc: #42424e;\\n  --profile-card-hint-c: #3aa1cc;\\n  --profile-list-item-bgc: #3f3f49;\\n  --profile-list-item-cur-bgc: #5f5f5f;\\n  --feedback-link-c: rgb(23, 136, 197);\\n  --status-bgc: #343442;\\n  --status-close-hover: rgba(250, 250, 250, 0.2);\\n  --switch-bgc: #413c3c;\\n  --switch-bgc-second: #332f2f;\\n  --menu-fgc: rgb(212, 212, 212);\\n  --scroll-bar-bgc: #4d4d5a;\\n  --input-bgc: rgba(105, 105, 105, 0.822);\\n  --input-phc: rgb(163, 163, 163);\\n  --error-text: rgb(255, 95, 95);\\n  --mask-c: rgba(77, 77, 77, 0.8);\\n  --setting-input-bgc: rgba(46, 46, 46, 0.8);\\n  --setting-item-hover-bgc: rgba(255, 255, 255, 0.3);\\n}\\n\\n.theme-mc {\\n  animation: fade 0.2s ease-in-out;\\n  --bgc: #303030;\\n  --fgc: #ffffff;\\n  --bc: #7e7b7bd4;\\n  --mbgc: #1e1e1e;\\n  --shadow: rgba(214, 214, 214, 0.1);\\n  --general-item-bgc: #91a383cc;\\n  --general-title-c: #e5ffe3;\\n  --general-clickable-border-c: #7e7b7bd4;\\n  --general-interface-card-bgc: #8f9592;\\n  --general-interface-card-fgc: #fff;\\n  --general-interface-card-quote-bgc: #52a535;\\n  --general-settings-icon-c: #525b5ae8;\\n  --proxy-fake-item-bgc: #696969;\\n  --proxy-item-now-fgc: rgb(226, 226, 226);\\n  --proxy-item-now-bgc: rgb(184, 112, 4);\\n  --proxy-item-type-bgc: rgb(184, 112, 4);\\n  --proxy-item-type-fgc: rgb(226, 226, 226);\\n  --proxy-item-border-c: #bebdbd;\\n  --proxy-item-selected-border-c: #1bb406c9;\\n  --proxy-item-bgc: #0e0e0e;\\n  --proxy-item-hint-c: #d6d6d6c7;\\n  --proxy-item-subs-fgc: rgb(209, 209, 209);\\n  --proxy-item-subs-bgc: rgba(151, 151, 151, 0.295);\\n  --proxy-item-subs-used-bgc: #81b3f7;\\n  --proxy-item-latency-online-c: rgb(22, 167, 22);\\n  --proxy-item-latency-offline-c: rgb(223, 9, 9);\\n  --mode-switcher-selected-bgc: #228208d6;\\n  --mode-switcher-selected-fgc: #fff;\\n  --mode-switcher-normal-bgc: #696969;\\n  --mode-switcher-normal-fgc: #d6d6d6c7;\\n  --log-item-border-c: #7e7b7bd4;\\n  --log-item-rule-c: rgb(63, 63, 63);\\n  --log-item-payload-c: rgb(13, 80, 143);\\n  --log-list-border-c: #7e7b7bd4;\\n  --profile-card-bgc: #10105a;\\n  --profile-card-hint-c: #3aa1cc;\\n  --profile-list-item-bgc: #a77018;\\n  --profile-list-item-cur-bgc: #da141e99;\\n  --feedback-link-c: #e5ffe3;\\n  --status-bgc: #517843;\\n  --status-close-hover: rgba(250, 250, 250, 0.2);\\n  --switch-bgc: #d6d6d6c7;\\n  --switch-bgc-second: #d6d6d6c7;\\n  --menu-fgc: #b7d4b5;\\n  --scroll-bar-bgc: #515151;\\n  --input-bgc: #d6d6d6c7;\\n  --input-phc: #dfffc8d4;\\n  --error-text: rgb(255, 0, 0);\\n  --mask-c: rgba(50, 50, 50, 0.6);\\n  --setting-input-bgc: #ddf6ff69;\\n  --setting-item-hover-bgc: #218306ab;\\n}\\n\\n.theme-2077 {\\n  animation: fade 0.2s ease-in-out;\\n  --bgc: #136377;\\n  --fgc: #fcec0c;\\n  --bc: #0691b485;\\n  --mbgc: #084a5a;\\n  --shadow: rgba(214, 214, 214, 0.1);\\n  --general-item-bgc: #084a5a;\\n  --general-title-c: #f8ed53;\\n  --general-clickable-border-c: #dde9373f;\\n  --general-interface-card-bgc: #0e5668;\\n  --general-interface-card-fgc: #fff;\\n  --general-interface-card-quote-bgc: #09303a;\\n  --general-settings-icon-c: #c0e732ef;\\n  --proxy-fake-item-bgc: #043441;\\n  --proxy-item-now-fgc: rgb(207, 245, 146);\\n  --proxy-item-now-bgc: #064453;\\n  --proxy-item-type-bgc: #064453;\\n  --proxy-item-type-fgc: rgb(207, 245, 146);\\n  --proxy-item-border-c: rgba(6, 49, 70, 0.411);\\n  --proxy-item-selected-border-c: #f8ed53;\\n  --proxy-item-bgc: #09738dea;\\n  --proxy-item-hint-c: #bbb33f;\\n  --proxy-item-subs-fgc: #fff;\\n  --proxy-item-subs-bgc: rgb(78, 138, 111);\\n  --proxy-item-subs-used-bgc: #b4555d;\\n  --proxy-item-latency-online-c: rgb(68, 196, 68);\\n  --proxy-item-latency-offline-c: rgb(255, 101, 101);\\n  --mode-switcher-selected-bgc: #dfd43f;\\n  --mode-switcher-selected-fgc: #000;\\n  --mode-switcher-normal-bgc: #58482c;\\n  --mode-switcher-normal-fgc: #c5c5c5;\\n  --log-item-border-c: rgb(73, 66, 66);\\n  --log-item-rule-c: rgba(224, 224, 224, 0.712);\\n  --log-item-payload-c: rgb(95, 190, 202);\\n  --log-list-border-c: rgb(98, 98, 98);\\n  --profile-card-bgc: #58482c;\\n  --profile-card-hint-c: #3aa1cc;\\n  --profile-list-item-bgc: #043441;\\n  --profile-list-item-cur-bgc: #b4aa39;\\n  --feedback-link-c: #a5dbe9;\\n  --status-bgc: #fcec0c;\\n  --status-close-hover: rgba(250, 250, 250, 0.2);\\n  --switch-bgc: #837a00;\\n  --switch-bgc-second: #968c03;\\n  --menu-fgc: #c79707;\\n  --scroll-bar-bgc: #eede00cb;\\n  --input-bgc: rgba(2, 45, 53, 0.822);\\n  --input-phc: rgb(163, 163, 163);\\n  --error-text: rgb(255, 95, 95);\\n  --mask-c: rgba(50, 50, 50, 0.6);\\n  --setting-input-bgc: rgba(2, 45, 53, 0.822);\\n  --setting-item-hover-bgc: rgba(255, 255, 255, 0.2);\\n}\\n\\n.theme-unknown {\\n  display: none;\\n}\\n\\n@keyframes fade {\\n  0% {\\n    opacity: 0;\\n  }\\n  100% {\\n    opacity: 1;\\n  }\\n}\\n\\n.fade {\\n  animation: fade 0.2s ease-in-out;\\n}\\n\\n.placeholder\\\\:text-\\\\[color\\\\:rgb\\\\(163\\\\2c 163\\\\2c 163\\\\)\\\\]::-moz-placeholder {\\n  --tw-text-opacity: 1;\\n  color: rgb(163 163 163 / var(--tw-text-opacity));\\n}\\n\\n.placeholder\\\\:text-\\\\[color\\\\:rgb\\\\(163\\\\2c 163\\\\2c 163\\\\)\\\\]:-ms-input-placeholder {\\n  --tw-text-opacity: 1;\\n  color: rgb(163 163 163 / var(--tw-text-opacity));\\n}\\n\\n.placeholder\\\\:text-\\\\[color\\\\:rgb\\\\(163\\\\2c 163\\\\2c 163\\\\)\\\\]::placeholder {\\n  --tw-text-opacity: 1;\\n  color: rgb(163 163 163 / var(--tw-text-opacity));\\n}\\n\\n.hover\\\\:bg-\\\\[color\\\\:var\\\\(--proxy-item-bgc\\\\)\\\\]:hover {\\n  background-color: var(--proxy-item-bgc);\\n}\\n\\n.hover\\\\:bg-\\\\[color\\\\:var\\\\(--status-close-hover\\\\)\\\\]:hover {\\n  background-color: var(--status-close-hover);\\n}\\n\\n.hover\\\\:bg-\\\\[\\\\#ff5050d7\\\\]:hover {\\n  background-color: #ff5050d7;\\n}`, \"\"]);\n                const u = d\n            },\n            45777: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \"\\n*,\\n*::after,\\n*::before {\\n  -webkit-user-select: none;\\n     -moz-user-select: none;\\n      -ms-user-select: none;\\n          user-select: none;\\n  -webkit-user-drag: none;\\n  cursor: default;\\n}\\n* {\\n  box-sizing: border-box;\\n  margin: 0;\\n  padding: 0;\\n  cursor: default;\\n  -webkit-user-select: none;\\n     -moz-user-select: none;\\n      -ms-user-select: none;\\n          user-select: none;\\n}\\nbody {\\n  font-family: 'Noto Sans CJK', sans-serif;\\n  font-weight: 500;\\n  overflow: hidden;\\n  background-color: var(--bgc);\\n}\\ninput {\\n  font-family: inherit;\\n}\\n\", \"\"]);\n                const a = r\n            },\n            81283: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \"\\nmain[data-v-68cbbc92] {\\n  display: flex;\\n  justify-content: space-between;\\n}\\nmain > div[data-v-68cbbc92] {\\n}\\n.left-side[data-v-68cbbc92] {\\n  display: flex;\\n  flex-direction: column;\\n  /* flex: 0 0 20%; */\\n  width: 170px;\\n  height: calc(100vh - 25px);\\n}\\n.right-side[data-v-68cbbc92] {\\n  z-index: 2;\\n  flex-grow: 1;\\n  width: calc(100vw - 170px);\\n  height: calc(100vh - 25px);\\n}\\n.welcome[data-v-68cbbc92] {\\n  color: #555;\\n  font-size: 23px;\\n  margin-bottom: 10px;\\n}\\n.title[data-v-68cbbc92] {\\n  color: #2c3e50;\\n  font-size: 20px;\\n  font-weight: bold;\\n  margin-bottom: 6px;\\n}\\n.title.alt[data-v-68cbbc92] {\\n  font-size: 18px;\\n  margin-bottom: 10px;\\n}\\n.doc p[data-v-68cbbc92] {\\n  color: black;\\n  margin-bottom: 10px;\\n}\\n.doc button[data-v-68cbbc92] {\\n  font-size: 0.8em;\\n  cursor: pointer;\\n  outline: none;\\n  padding: 0.75em 2em;\\n  border-radius: 2em;\\n  display: inline-block;\\n  color: #fff;\\n  background-color: #4fc08d;\\n  transition: all 0.15s ease;\\n  box-sizing: border-box;\\n  border: 1px solid #4fc08d;\\n}\\n.doc button.alt[data-v-68cbbc92] {\\n  color: #42b983;\\n  background-color: transparent;\\n}\\n.clash-status-main[data-v-68cbbc92] {\\n  display: flex;\\n  align-items: center;\\n  position: absolute;\\n  height: 40px;\\n  bottom: 0px;\\n  width: 170px;\\n  left: 0px;\\n  justify-content: center;\\n  z-index: 2;\\n}\\n.clash-status-hint[data-v-68cbbc92] {\\n  margin-left: 6px;\\n  font-size: 0.75em;\\n  letter-spacing: 0px;\\n  cursor: pointer;\\n}\\n.clash-status-icon[data-v-68cbbc92] {\\n  width: 12px;\\n  height: 12px;\\n  border-radius: 10px;\\n  /* box-shadow: 0px 0px 3px 2px rgba(0, 0, 0, 0.4); */\\n}\\n.clash-running[data-v-68cbbc92] {\\n  background-color: #41b883;\\n}\\n.clash-set-dns[data-v-68cbbc92] {\\n  background-color: rgb(231, 217, 26);\\n}\\n.clash-stopped[data-v-68cbbc92] {\\n  background-color: red;\\n}\\n.cloud[data-v-68cbbc92] {\\n  position: fixed;\\n  /* opacity: 0.2; */\\n  bottom: 110px;\\n  left: calc(50% + 80px);\\n  transform: translateX(-50%);\\n  width: 40%;\\n  /* height: 150vh; */\\n  pointer-events: none;\\n}\\n.opacicy[data-v-68cbbc92] {\\n  opacity: 0.2;\\n}\\n.latern[data-v-68cbbc92] {\\n  position: fixed;\\n  opacity: 0.7;\\n  top: 30px;\\n  left: 125px;\\n  width: 50px;\\n  pointer-events: none;\\n}\\n\", \"\"]);\n                const a = r\n            },\n            37919: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \"\\n#main-about-view[data-v-4a737543] {\\n  display: flex;\\n  flex-direction: column;\\n  padding: 10px 30px;\\n  gap: 3px;\\n}\\n.title[data-v-4a737543] {\\n  margin-bottom: 0px;\\n  /* font-weight: normal; */\\n  font-size: 1.1em;\\n}\\n.ad-img-list[data-v-4a737543] {\\n  display: flex;\\n  flex-direction: column;\\n  justify-content: space-between;\\n  margin-top: 10px;\\n  gap: 10px;\\n}\\n\", \"\"]);\n                const a = r\n            },\n            51232: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \"\\n.header[data-v-357ec510] {\\n  margin-top: 10px;\\n  display: flex;\\n  height: 100px;\\n  width: calc(100vw - 170px);\\n  justify-content: center;\\n  align-items: center;\\n}\\n.title[data-v-357ec510] {\\n  /* margin: 20px auto; */\\n}\\n.title-name[data-v-357ec510] {\\n  display: inline-block;\\n  cursor: pointer;\\n}\\n.new-version-tag[data-v-357ec510] {\\n  display: inline-block;\\n  color: #fff;\\n  padding: 2px 4px;\\n  background-color: rgba(170, 38, 38, 0.8);\\n  border-radius: 3px;\\n  font-size: 0.65em;\\n  position: relative;\\n  top: -8px;\\n  left: 2px;\\n}\\n.item-left[data-v-357ec510] {\\n  display: flex;\\n  font-weight: 500;\\n  font-size: 1em;\\n  align-items: center;\\n}\\n.item-right[data-v-357ec510] {\\n  font-size: 15px;\\n  font-weight: normal;\\n  display: flex;\\n  align-items: center;\\n}\\n.control-icon[data-v-357ec510] {\\n  width: 20px;\\n  height: 20px;\\n  margin-right: 20px;\\n  margin-top: 2px;\\n  cursor: pointer;\\n}\\n.systemCheckbox[data-v-357ec510] {\\n  width: 20px;\\n  height: 20px;\\n}\\n.systemCheckbox[data-v-357ec510]:checked {\\n  background-color: #233376;\\n  border: none;\\n}\\n.hiddenInput[data-v-357ec510] {\\n  width: 1px;\\n  height: 1px;\\n  opacity: 0;\\n}\\n.version[data-v-357ec510] {\\n  font-size: 0.5em;\\n  /* display: inline; */\\n  margin-left: 10px;\\n  font-weight: normal;\\n  cursor: pointer;\\n  margin-top: 15px;\\n}\\n.checkmark-container[data-v-357ec510] {\\n  display: block;\\n  position: relative;\\n  padding-left: 22px;\\n  margin-bottom: 22px;\\n  cursor: pointer;\\n  font-size: 22px;\\n}\\n.checkmark-container input[data-v-357ec510] {\\n  position: absolute;\\n  opacity: 0;\\n  cursor: pointer;\\n  height: 0;\\n  width: 0;\\n}\\n.system-checkmark[data-v-357ec510] {\\n  cursor: pointer;\\n  position: absolute;\\n  top: 0;\\n  border-radius: 20px;\\n  left: 0;\\n  height: 25px;\\n  width: 25px;\\n  background-color: #fff;\\n  box-shadow: 0px 0px 5px 1px rgba(50, 50, 50, 0.5);\\n}\\n.checkmark-container:hover input ~ .system-checkmark[data-v-357ec510] {\\n  background-color: #fff;\\n}\\n.checkmark-container input:checked ~ .system-checkmark[data-v-357ec510] {\\n  background-color: #464646;\\n}\\n.system-checkmark-unknown[data-v-357ec510] {\\n  background-color: #beb9b9;\\n}\\n\\n/* Create the checkmark/indicator (hidden when not checked) */\\n.system-checkmark[data-v-357ec510]:after {\\n  content: '';\\n  position: absolute;\\n  display: none;\\n}\\n\\n/* Show the checkmark when checked */\\n.checkmark-container input:checked ~ .system-checkmark[data-v-357ec510]:after {\\n  display: block;\\n}\\n\\n/* Style the checkmark/indicator */\\n.checkmark-container .system-checkmark[data-v-357ec510]:after {\\n  left: 8px;\\n  top: 5px;\\n  width: 6px;\\n  height: 9px;\\n  border: solid white;\\n  border-width: 0 3px 3px 0;\\n  transform: rotate(45deg);\\n}\\n.interface-address[data-v-357ec510] {\\n  font-size: 1em;\\n}\\n.interface-name[data-v-357ec510] {\\n  font-size: 0.8em;\\n  margin-left: 15px;\\n}\\n.edit-btn[data-v-357ec510] {\\n  width: 25px;\\n  height: 25px;\\n  border-radius: 4px;\\n  cursor: pointer;\\n  background-color: #464646;\\n  box-shadow: 0px 0px 5px 1px rgba(50, 50, 50, 0.3);\\n}\\n.edit-btn > img[data-v-357ec510] {\\n  width: 17px;\\n  height: 17px;\\n  margin: 5px;\\n  cursor: pointer;\\n}\\n.empty-div[data-v-357ec510] {\\n  height: 50px;\\n}\\n\", \"\"]);\n                const a = r\n            },\n            75169: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \"\\n#error-title[data-v-9ba71ad8] {\\n  /* color: rgb(231, 73, 73); */\\n  font-size: 1.1em;\\n}\\n.error-hint[data-v-9ba71ad8] {\\n}\\n\", \"\"]);\n                const a = r\n            },\n            64608: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \"\\n.warning[data-v-6acd51f2] {\\n  color: red;\\n}\\n.btns[data-v-6acd51f2] {\\n  display: flex;\\n  width: 280px;\\n  justify-content: space-between;\\n  align-items: center;\\n}\\n.button[data-v-6acd51f2] {\\n  font-size: 0.8em;\\n  height: 30px;\\n  line-height: 30px;\\n  color: #fff;\\n  width: 70px;\\n  text-align: center;\\n  border-radius: 3px;\\n  cursor: pointer;\\n}\\n.button-on[data-v-6acd51f2] {\\n  background-color: rgba(14, 151, 185, 0.959);\\n}\\n.button-off[data-v-6acd51f2] {\\n  background-color: rgba(243, 61, 61, 0.801);\\n}\\n.button-clear[data-v-6acd51f2] {\\n  background-color: rgba(23, 156, 6, 0.904);\\n}\\n.debugdark[data-v-6acd51f2] {\\n  color: rgb(155, 155, 2);\\n}\\n.debug[data-v-6acd51f2] {\\n  color: rgb(238, 238, 57);\\n}\\n.info[data-v-6acd51f2] {\\n  color: #13af42;\\n}\\n.warn[data-v-6acd51f2] {\\n  color: #d44545;\\n}\\n.error[data-v-6acd51f2] {\\n  color: #d44545;\\n}\\n\", \"\"]);\n                const a = r\n            },\n            23601: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \"\\n.hint[data-v-4f5120b9] {\\n  font-size: 0.8em;\\n  color: #000;\\n  letter-spacing: 1px;\\n  text-align: left;\\n}\\n.bold-icon[data-v-4f5120b9] {\\n  font-size: 0.75em;\\n  letter-spacing: 1px;\\n  padding: 0 1px;\\n  /* font-weight: bolder; */\\n}\\n\", \"\"]);\n                const a = r\n            },\n            69791: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \"\\n#main-run-time-view[data-v-05e7144a] {\\n  /* color: #000; */\\n  display: flex;\\n  align-items: flex-end;\\n  padding-bottom: 40px;\\n}\\n.timer-text[data-v-05e7144a] {\\n  text-align: center;\\n  width: 100%;\\n}\\n\", \"\"]);\n                const a = r\n            },\n            38489: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \"\\ninput[data-v-820f0efe] {\\n  cursor: text;\\n  width: calc(100vw - 230px);\\n  height: 45px;\\n  font-size: 1em;\\n  padding: 0 10px 0 10px;\\n}\\ninput[data-v-820f0efe]:focus {\\n  outline: none;\\n}\\n.remote-view[data-v-820f0efe] {\\n  display: flex;\\n  align-items: center;\\n  justify-content: space-around;\\n}\\n.local-view[data-v-820f0efe] {\\n  right: 0;\\n  margin: 0 2vw 20px 1vw;\\n}\\n.list-view[data-v-820f0efe] > :last-child {\\n  margin-bottom: 25px;\\n}\\n.item-local[data-v-820f0efe] {\\n  /* background: radial-gradient(\\n    ellipse at top left,\\n    rgb(112, 143, 158) 30%,\\n    rgba(97, 147, 172, 0.9) 100%\\n  ); */\\n}\\n.item-name-top[data-v-820f0efe] {\\n  display: flex;\\n  justify-content: space-between;\\n  align-items: center;\\n  cursor: pointer;\\n  font-size: 15px;\\n}\\n.item-name-top > div[data-v-820f0efe] {\\n  max-width: calc((80vw - 80px) / 2 - 65px);\\n  text-overflow: ellipsis;\\n  white-space: nowrap;\\n  overflow: hidden;\\n}\\n.item-time[data-v-820f0efe] {\\n  cursor: pointer;\\n}\\n.item-expired[data-v-820f0efe] {\\n  color: rgb(250, 73, 73);\\n}\\n.item-parser[data-v-820f0efe] {\\n  font-size: 0.8em;\\n}\\n.item-time-now[data-v-820f0efe] {\\n  color: rgb(158, 255, 113);\\n}\\n.btns-container[data-v-820f0efe] {\\n  display: flex;\\n  align-items: center;\\n  width: -moz-fit-content;\\n  width: fit-content;\\n  justify-content: space-between;\\n}\\n.update-all-btn[data-v-820f0efe] {\\n}\\n.confirm[data-v-820f0efe] {\\n  height: 45px;\\n  color: white;\\n  cursor: pointer;\\n  line-height: 45px;\\n  text-align: center;\\n  background-color: #7e7b7b;\\n  border-radius: 3px;\\n  padding-left: 10px;\\n  padding-right: 10px;\\n  font-size: 0.85em;\\n  box-shadow: 0px 2px 20px 2px rgba(50, 50, 50, 0.1);\\n  width: -moz-fit-content;\\n  width: fit-content;\\n  white-space: nowrap;\\n}\\n.confirm-left[data-v-820f0efe] {\\n  padding: auto 30px;\\n}\\n.confirm-right[data-v-820f0efe] {\\n  margin-left: 10px;\\n}\\n.confirm-copy[data-v-820f0efe] {\\n  border-radius: 5px;\\n}\\n.btn-error[data-v-820f0efe] {\\n  background-color: #ec2658;\\n}\\n.btn-success[data-v-820f0efe] {\\n  background-color: #8ade4e;\\n}\\n.btn-loading[data-v-820f0efe] {\\n  box-shadow: 2px 2px 5px 1px rgba(50, 50, 50, 0.1);\\n}\\n.hint-normal[data-v-820f0efe] {\\n  text-align: center;\\n  font-size: 1em;\\n  font-weight: 500;\\n}\\n.hint-error[data-v-820f0efe] {\\n  color: #ec2658;\\n}\\n.copy-icon[data-v-820f0efe] {\\n  flex-shrink: 0;\\n  height: 45px;\\n  width: 45px;\\n  padding: 10px;\\n  cursor: pointer;\\n}\\n.clear-icon[data-v-820f0efe] {\\n  height: 45px;\\n  width: 45px;\\n  padding: 13px;\\n  position: absolute;\\n  right: 5px;\\n}\\n.rotating[data-v-820f0efe] {\\n  animation: downloading-820f0efe 1s infinite;\\n  animation-timing-function: linear;\\n}\\n@keyframes downloading-820f0efe {\\nfrom {\\n    transform: rotate(0deg);\\n}\\nto {\\n    transform: rotate(360deg);\\n}\\n}\\n.animate-cycle[data-v-820f0efe] {\\n  animation: cycle-820f0efe 2s infinite;\\n  animation-timing-function: ease-in-out;\\n}\\n@keyframes cycle-820f0efe {\\n0% {\\n    top: 0px;\\n}\\n50% {\\n    top: 40%;\\n}\\n100% {\\n    top: 0px;\\n}\\n}\\n.expand-enter-active[data-v-820f0efe] {\\n  animation: expand-820f0efe 0.5s;\\n  animation-timing-function: ease-in-out;\\n}\\n@keyframes expand-820f0efe {\\n0% {\\n    height: 20%;\\n    top: 40%;\\n}\\n100% {\\n    height: 100%;\\n    top: 0;\\n}\\n}\\n\", \"\"]);\n                const a = r\n            },\n            72132: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \"\\n.floating[data-v-9e0b3cf4] {\\n  /* background-color: #fff; */\\n  position: fixed;\\n  left: 170px;\\n  height: 60px;\\n  width: calc(100vw - 170px);\\n  display: flex;\\n  justify-content: space-between;\\n  padding: 0 50px 0 40px;\\n  align-items: center;\\n  box-shadow: 2px 2px 4px 1px rgba(50, 50, 50, 0.2);\\n}\\n.floating-right[data-v-9e0b3cf4] {\\n  display: flex;\\n  justify-content: flex-end;\\n}\\n.hint[data-v-9e0b3cf4] {\\n  font-size: 1.1em;\\n}\\n.main-btn[data-v-9e0b3cf4] {\\n  cursor: pointer;\\n  margin-left: 20px;\\n  box-shadow: 0px 0px 4px 1px rgba(50, 50, 50, 0.2);\\n  text-align: center;\\n  padding: 5px 0;\\n  width: 80px;\\n  border-radius: 5px;\\n  color: #fff;\\n}\\n.reload[data-v-9e0b3cf4] {\\n  background-color: rgb(199, 202, 16);\\n}\\n.save[data-v-9e0b3cf4] {\\n  background-color: rgba(49, 167, 227, 1);\\n}\\n.drag[data-v-9e0b3cf4] {\\n  /* background-color: #fff; */\\n  display: flex;\\n  padding: 0px 0px 20px 0px;\\n  margin-top: 60px;\\n  left: 20vw;\\n  height: calc(100% - 70px);\\n  width: calc(100vw - 170px);\\n  max-width: 900px;\\n}\\n.proxy > div[data-v-9e0b3cf4] {\\n  direction: ltr;\\n}\\n.proxy > draggable[data-v-9e0b3cf4] {\\n  direction: ltr;\\n}\\n.section-title[data-v-9e0b3cf4] {\\n  display: flex;\\n  justify-content: space-between;\\n  align-items: center;\\n  margin: 20px 0px 0px 0px;\\n  font-size: 0.8em;\\n}\\nh2[data-v-9e0b3cf4] {\\n}\\nimg[data-v-9e0b3cf4] {\\n  width: 20px;\\n  height: 20px;\\n  margin-left: 10px;\\n  cursor: pointer;\\n}\\n.add-icon[data-v-9e0b3cf4] {\\n  background-color: #677a94;\\n  border-radius: 5px;\\n  color: white;\\n  font-size: 0.9em;\\n  letter-spacing: 1px;\\n  padding: 3px 10px;\\n  cursor: pointer;\\n  box-shadow: 0px 0px 4px 1px rgba(50, 50, 50, 0.2);\\n}\\n.type-icon[data-v-9e0b3cf4] {\\n}\\n.left-item[data-v-9e0b3cf4] {\\n  background-color: #373948;\\n}\\n.right-item[data-v-9e0b3cf4] {\\n  background-color: #65517a;\\n}\\n.group-type[data-v-9e0b3cf4] {\\n  font-size: 0.7em;\\n}\\n.proxy-item[data-v-9e0b3cf4] {\\n  opacity: 0.8;\\n  cursor: pointer;\\n  font-size: 1em;\\n  padding: 5px 10px;\\n  margin: 10px 0px;\\n  display: flex;\\n  color: #fff;\\n  border-radius: 5px;\\n  justify-content: space-between;\\n  align-items: center;\\n  box-shadow: 0px 0px 4px 1px rgba(50, 50, 50, 0.2);\\n}\\n\", \"\"]);\n                const a = r\n            },\n            44332: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \"\\ninput[data-v-f638b328] {\\n  margin: 5px 0;\\n  font-size: 1.1em;\\n  padding: 0 5px;\\n}\\ninput[type='radio'][data-v-f638b328] {\\n  height: 20px;\\n  width: 20px;\\n  vertical-align: middle;\\n  margin-right: 5px;\\n}\\ninput[type='checkbox'][data-v-f638b328] {\\n  width: 20px;\\n  height: 20px;\\n  vertical-align: middle;\\n  margin-right: 5px;\\n}\\nlabel[data-v-f638b328] {\\n  font-size: 1.1em;\\n  vertical-align: middle;\\n}\\ninput[data-v-f638b328]:focus {\\n  outline: none;\\n}\\n.input-view[data-v-f638b328] {\\n  display: flex;\\n  flex-direction: column;\\n  justify-content: space-between;\\n}\\n.cipher-list[data-v-f638b328] {\\n  display: grid;\\n  grid-template-columns: repeat(2, 1fr);\\n  /* grid-column-gap: 30px; */\\n  /* grid-auto-rows: minmax(40px, auto); */\\n}\\n.ss-list[data-v-f638b328] {\\n  display: flex;\\n  flex-direction: column;\\n}\\n.vmess-list[data-v-f638b328] {\\n  display: flex;\\n  flex-direction: column;\\n}\\n.proxy-type-list[data-v-f638b328] {\\n  display: flex;\\n  justify-content: flex-start;\\n}\\n.group-type-list[data-v-f638b328] {\\n  display: flex;\\n  justify-content: flex-start;\\n}\\n.group-type-list > div[data-v-f638b328] {\\n  margin-right: 30px;\\n}\\n.proxy-type-list > div[data-v-f638b328] {\\n  margin-right: 30px;\\n}\\n.btns[data-v-f638b328] {\\n  margin-top: 20px;\\n  display: flex;\\n  justify-content: space-around;\\n}\\n.btn[data-v-f638b328] {\\n  padding: 5px 10px;\\n  font-size: 1.1em;\\n  text-align: center;\\n  width: 100px;\\n  border-radius: 4px;\\n  /* box-shadow: 1px 1px 5px 1px rgba(50, 50, 50, 0.5); */\\n}\\n.cancel[data-v-f638b328] {\\n  background-color: #c0c0c0c0;\\n}\\n.confirm[data-v-f638b328] {\\n  background-color: #375df3;\\n  color: #fff;\\n}\\n\", \"\"]);\n                const a = r\n            },\n            82611: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \"\\n#main-log-view[data-v-459dde1e] {\\n  height: 100%;\\n  overflow: hidden;\\n  display: flex;\\n  flex-direction: column;\\n  justify-content: space-between;\\n}\\n.ctl-icon[data-v-459dde1e] {\\n  width: 22px;\\n  height: 22px;\\n  cursor: pointer;\\n  margin-left: 10px;\\n}\\n.emoji-name[data-v-459dde1e] {\\n  display: flex;\\n  align-items: center;\\n}\\n.header[data-v-459dde1e] {\\n  display: flex;\\n  justify-content: space-between;\\n  padding: 0 50px 0 40px;\\n  align-items: center;\\n  height: 60px;\\n}\\n.header-btns[data-v-459dde1e] {\\n  display: flex;\\n  justify-content: flex-end;\\n}\\n.filter-view[data-v-459dde1e] {\\n  width: calc(100vw - 170px);\\n  height: 50px;\\n}\\n.filter-view input[data-v-459dde1e] {\\n  margin: 0px 40px 10px 40px;\\n  cursor: text;\\n  width: calc(100vw - 250px);\\n  height: 40px;\\n  padding: 0px 10px;\\n  border-radius: 5px;\\n  font-size: 1.1em;\\n}\\n.filter-view input[data-v-459dde1e]:focus {\\n  outline: none;\\n  /* box-shadow: 0px 4px 10px 2px rgba(50, 50, 50, 0.4); */\\n}\\n.btn[data-v-459dde1e] {\\n  cursor: pointer;\\n  box-shadow: 0px 0px 4px 1px rgba(50, 50, 50, 0.2);\\n  margin-left: 20px;\\n  width: 80px;\\n  text-align: center;\\n  padding: 5px 10px;\\n  border-radius: 5px;\\n  color: #fff;\\n}\\n.btn-add[data-v-459dde1e] {\\n  background-color: rgba(49, 167, 227, 1);\\n}\\n.btn-save[data-v-459dde1e] {\\n  background-color: rgba(65, 184, 131, 1);\\n}\\n.btn-back[data-v-459dde1e] {\\n  background-color: rgb(224, 221, 34);\\n}\\n.title[data-v-459dde1e] {\\n  font-size: 1.1em;\\n  margin-bottom: 0px;\\n}\\n.log-item[data-v-459dde1e] {\\n  display: flex;\\n  justify-content: space-between;\\n  align-items: center;\\n  padding: 5px 20px;\\n  width: 100%;\\n  border-bottom: 1px solid rgba(50, 50, 50, 0.1);\\n}\\n.left[data-v-459dde1e] {\\n  flex-grow: 1;\\n  padding-right: 40px;\\n  overflow: hidden;\\n}\\n.right-main[data-v-459dde1e] {\\n  display: flex;\\n  align-items: center;\\n}\\nimg[data-v-459dde1e] {\\n  margin-left: 10px;\\n  width: 25px;\\n  height: 25px;\\n}\\n.url[data-v-459dde1e] {\\n  font-size: 18px;\\n  text-overflow: ellipsis;\\n  overflow: hidden;\\n  white-space: nowrap;\\n}\\n.rule-set[data-v-459dde1e] {\\n  color: rgb(255, 94, 0);\\n}\\n.right[data-v-459dde1e] {\\n  font-size: 1em;\\n  padding: 5px 10px;\\n  border-radius: 4px;\\n  color: #fff;\\n  opacity: 0.8;\\n  box-shadow: 0px 0px 4px 1px rgba(50, 50, 50, 0.2);\\n}\\n\", \"\"]);\n                const a = r\n            },\n            54280: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, '\\n.modal-mask[data-v-eea841c4] {\\n  position: fixed;\\n  z-index: 9998;\\n  top: 0;\\n  left: 170px;\\n  width: calc(100vw - 170px);\\n  height: 100vh;\\n  background-color: rgba(0, 0, 0, 0.5);\\n  display: table;\\n  transition: opacity 0.3s ease;\\n}\\n.modal-wrapper[data-v-eea841c4] {\\n  display: table-cell;\\n  vertical-align: middle;\\n}\\n.modal-header h3[data-v-eea841c4] {\\n  margin-top: 0;\\n  color: #42b983;\\n}\\n.modal-body[data-v-eea841c4] {\\n  margin: 20px 0;\\n}\\n.modal-default-button[data-v-eea841c4] {\\n  float: right;\\n}\\n\\n/*\\n * The following styles are auto-applied to elements with\\n * transition=\"modal\" when their visibility is toggled\\n * by Vue.js.\\n *\\n * You can easily play with the modal transition by editing\\n * these styles.\\n */\\n.modal-enter[data-v-eea841c4] {\\n  opacity: 0;\\n}\\n.modal-leave-active[data-v-eea841c4] {\\n  opacity: 0;\\n}\\n.modal-enter .modal-container[data-v-eea841c4],\\n.modal-leave-active .modal-container[data-v-eea841c4] {\\n  transform: scale(1.1);\\n}\\ninput[data-v-eea841c4]:focus {\\n  outline: none;\\n}\\ninput[data-v-eea841c4] {\\n  height: 40px;\\n  width: 100%;\\n  font-size: 18px;\\n  padding: 0 10px;\\n}\\n.rule-type-group[data-v-eea841c4] {\\n  display: grid;\\n  grid-template-columns: repeat(2, 1fr);\\n  grid-row-gap: 10px;\\n  grid-column-gap: 10px;\\n  grid-auto-rows: minmax(30px, auto);\\n}\\n.rule-type-item[data-v-eea841c4] {\\n  text-align: center;\\n  line-height: 30px;\\n  border-radius: 5px;\\n  color: #fff;\\n  padding: 5px 10px;\\n  background-color: rgba(101, 81, 122, 0.6);\\n}\\n.rule-type-selected[data-v-eea841c4] {\\n  background-color: rgba(101, 81, 122, 1);\\n}\\n.rule-proxy-group[data-v-eea841c4] {\\n  margin-bottom: 60px;\\n  display: grid;\\n  grid-template-columns: repeat(1, 1fr);\\n  grid-row-gap: 10px;\\n  grid-column-gap: 10px;\\n  grid-auto-rows: minmax(30px, auto);\\n}\\n.rule-proxy-item[data-v-eea841c4] {\\n  text-align: center;\\n  line-height: 30px;\\n  border-radius: 5px;\\n  color: #fff;\\n  padding: 5px 10px;\\n  background-color: rgba(55, 57, 72, 0.6);\\n}\\n.rule-proxy-selected[data-v-eea841c4] {\\n  background-color: rgba(55, 57, 72, 1);\\n}\\n.rule-section-title[data-v-eea841c4] {\\n  font-size: 1em;\\n  color: rgba(166, 165, 164, 1);\\n  margin-top: 10px;\\n  margin-bottom: 5px;\\n}\\n.rule-floating-btns[data-v-eea841c4] {\\n  right: calc(80vw - 585px);\\n  bottom: calc(100vh - 450px);\\n  display: flex;\\n}\\n.rule-floating-btns > div[data-v-eea841c4] {\\n  font-size: 0.8em;\\n  width: 80px;\\n  height: 35px;\\n  margin-left: 10px;\\n  line-height: 50px;\\n  text-align: center;\\n  display: flex;\\n  align-items: center;\\n  justify-content: center;\\n  cursor: pointer;\\n  border-radius: 3px;\\n  color: #fff;\\n}\\n.rule-floating-cancel[data-v-eea841c4] {\\n  background-color: rgba(65, 184, 131, 1);\\n}\\n.rule-floating-ok[data-v-eea841c4] {\\n  background-color: rgba(58, 86, 197, 1);\\n}\\n', \"\"]);\n                const a = r\n            },\n            73316: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \"\\n.secret-hint[data-v-fc0cd1de] {\\n    position: absolute;\\n    top: 0px;\\n    right: -1.5rem\\n}\\n\", \"\"]);\n                const a = r\n            },\n            88525: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \"\\n.navigator[data-v-35f836ea] {\\n\\n    top: 0px;\\n\\n    z-index: 120;\\n\\n    height: 100%;\\n\\n    --tw-border-opacity: 1;\\n\\n    border-color: rgb(133 133 133 / var(--tw-border-opacity));\\n\\n    --tw-bg-opacity: 1;\\n\\n    background-color: rgb(30 30 30 / var(--tw-bg-opacity))\\n}\\n.navigator[data-v-35f836ea] .item {\\n\\n    --tw-text-opacity: 1;\\n\\n    color: rgb(223 223 223 / var(--tw-text-opacity))\\n}\\n\", \"\"]);\n                const a = r\n            },\n            30020: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \"\\ninput[data-v-05227e49] {\\n    border-radius: 0.25rem;\\n    border-width: 1px;\\n    border-style: solid;\\n    --tw-border-opacity: 1;\\n    border-color: rgb(85 79 79 / var(--tw-border-opacity));\\n    --tw-bg-opacity: 1;\\n    background-color: rgb(44 42 56 / var(--tw-bg-opacity))\\n}\\ninput[data-v-05227e49]::-moz-placeholder {\\n    --tw-text-opacity: 1;\\n    color: rgb(163 163 163 / var(--tw-text-opacity))\\n}\\ninput[data-v-05227e49]:-ms-input-placeholder {\\n    --tw-text-opacity: 1;\\n    color: rgb(163 163 163 / var(--tw-text-opacity))\\n}\\ninput[data-v-05227e49]::placeholder {\\n    --tw-text-opacity: 1;\\n    color: rgb(163 163 163 / var(--tw-text-opacity))\\n}\\n\", \"\"]);\n                const a = r\n            },\n            46485: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => u\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s),\n                    a = i(61667),\n                    l = i.n(a),\n                    c = new URL(i(9665), i.b),\n                    d = r()(o()),\n                    h = l()(c);\n                d.push([e.id, `@font-face{font-family:\"TwemojiMozilla\";src:url(${h}) format(\"truetype\")}.clickable{cursor:pointer}.clickable *{cursor:pointer}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none}.no-esc{outline:none}`, \"\"]);\n                const u = d\n            },\n            69674: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \".wrapper[data-v-68cbbc92]{height:100vh;width:100vw;overflow:hidden}\", \"\"]);\n                const a = r\n            },\n            40771: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \".chat-list[data-v-4a737543]{display:flex;justify-content:left;flex-wrap:wrap}\", \"\"]);\n                const a = r\n            },\n            16466: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \".scrolly[data-v-4a737543]{overflow-y:auto}.scrolly[data-v-4a737543]::-webkit-scrollbar{width:16px}.scrolly[data-v-4a737543]::-webkit-scrollbar-thumb{background-color:var(--scroll-bar-bgc);border-radius:100px;border:3px solid var(--bgc)}.scrolly[data-v-4a737543]::-webkit-scrollbar-corner{background-color:var(--bgc)}\", \"\"]);\n                const a = r\n            },\n            46073: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \".ad-img[data-v-34599eb0]{width:100%;width:620px;height:150px;border-radius:3px}.placeholder[data-v-34599eb0]{line-height:150px;color:#fff;background-color:#e2e2e2;display:flex;align-items:center;justify-content:center}.placeholder div[data-v-34599eb0]{margin-right:10px;color:#fff}.placeholder img[data-v-34599eb0]{width:30px}.error-img[data-v-34599eb0]{display:flex;width:620px;height:150px;background-color:#e2e2e2;align-items:center;justify-content:center}.error-img div[data-v-34599eb0]{margin-right:10px;color:#858585}.error-img img[data-v-34599eb0]{width:30px}.twinkling[data-v-34599eb0]{animation:twinkling-34599eb0 2s infinite;animation-timing-function:ease-in-out}@keyframes twinkling-34599eb0{0%{background-color:#e9e9e9}50%{background-color:#d4d4d4}100%{background-color:#e9e9e9}}\", \"\"]);\n                const a = r\n            },\n            87133: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \".main-connection-view[data-v-39b270f2]{overflow:hidden;display:flex;justify-content:space-between;flex-direction:column;height:100%;position:relative}.main-connection-view .header[data-v-39b270f2]{height:40px;display:flex;justify-content:space-between;align-items:center;margin:auto 20px;flex-shrink:0}.main-connection-view .header .search-area[data-v-39b270f2]{position:relative;flex-grow:1;margin:0 10px 0 5px}.main-connection-view .header .search-area .search-box[data-v-39b270f2]{padding:0 22px 0 4px;outline:none;height:25px;border-radius:4px;line-height:25px;font-size:14px;width:100%}.main-connection-view .control-view[data-v-39b270f2]{display:flex;padding:0 20px 10px 16px;justify-content:space-between;height:40px;flex-shrink:0}.main-connection-view .control-view .labels[data-v-39b270f2]{display:flex;align-items:center;color:#fff;flex-shrink:1}.main-connection-view .control-view .labels .label[data-v-39b270f2]{width:65px;height:28px;font-size:14px;font-weight:normal;margin:0 5px 0 0;padding:0 8px;line-height:25px;cursor:pointer;background-color:rgba(100,100,100,.5);border-radius:3px}.main-connection-view .control-view .labels .label-selected[data-v-39b270f2]{background-color:rgba(14,184,65,.932)}.main-connection-view .control-view .labels .label-selected-reverse[data-v-39b270f2]{background-color:#0f6bb1}.title[data-v-39b270f2]{height:40px;display:flex;align-items:center}.title div[data-v-39b270f2]:first-child{font-size:20px;display:flex;align-items:baseline}.title div:first-child span[data-v-39b270f2]{font-size:12px;margin-left:6px}.header-right[data-v-39b270f2]{display:flex;align-items:center}.total-hint[data-v-39b270f2]{font-size:15px;white-space:nowrap}.scroll-view[data-v-39b270f2]{height:calc(100% - 60px);width:calc(100% - 0px);overflow-y:auto}.scroll-view[data-v-39b270f2]::-webkit-scrollbar{width:16px}.scroll-view[data-v-39b270f2]::-webkit-scrollbar-thumb{background-color:var(--scroll-bar-bgc);border-radius:100px;border:3px solid var(--bgc)}.scroll-view[data-v-39b270f2]::-webkit-scrollbar-corner{background-color:var(--bgc)}.conn-item[data-v-39b270f2]{padding:1px 20px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--log-list-border-c)}.conn-item-closed[data-v-39b270f2]{opacity:.7}.conn-item-top[data-v-39b270f2]{display:flex;justify-content:space-between}.conn-host[data-v-39b270f2]{font-size:14px;font-weight:500}.close-btn[data-v-39b270f2]{width:23px;height:23px;border-radius:15px;cursor:pointer;opacity:.8}.close-btn *[data-v-39b270f2]{cursor:pointer}.close-btn[data-v-39b270f2]:hover{opacity:1}.item-icon[data-v-39b270f2]{width:19px;margin:2px;height:19px}.close-all-btn[data-v-39b270f2]{padding:0 10px;margin-left:10px;text-align:center;height:30px;line-height:28px;cursor:pointer;background-color:rgba(243,61,61,.801);border-radius:3px;color:#fff;flex-shrink:0;height:28px;font-size:14px;font-weight:normal}.conn-labels[data-v-39b270f2]{font-size:11px;display:flex;margin-bottom:3px;flex-wrap:wrap}.conn-labels>div[data-v-39b270f2]{margin-right:5px;margin-top:1px;padding:2px 4px;color:#fff;font-weight:normal;border-radius:3px}.conn1[data-v-39b270f2]{background-color:rgba(194,104,25,.8)}.conn2[data-v-39b270f2]{background-color:rgba(193,131,16,0.7725490196)}.conn4[data-v-39b270f2]{background-color:rgba(85,152,52,0.8078431373)}.conn3[data-v-39b270f2]{background-color:rgba(0,134,76,0.7882352941)}.conn5[data-v-39b270f2]{background-color:#428ee4}.conn6[data-v-39b270f2]{background-color:#4c10ae}.conn7[data-v-39b270f2]{background-color:#8b8b00}.button-control[data-v-39b270f2]{padding:0 10px;text-align:center;height:25px;font-weight:normal;line-height:25px;cursor:pointer;border-radius:3px;color:#fff}.button-resume[data-v-39b270f2]{background-color:rgba(14,151,185,.959)}.button-pause[data-v-39b270f2]{background-color:rgba(243,61,61,.801)}.selected-top[data-v-39b270f2]{border-bottom-right-radius:10px}.selected-bottom[data-v-39b270f2]{border-top-right-radius:10px}.item-none[data-v-39b270f2]{background-color:var(--mbgc);color:var(--menu-fgc)}.scrolly[data-v-39b270f2]{overflow-y:auto}.scrolly[data-v-39b270f2]::-webkit-scrollbar{width:16px}.scrolly[data-v-39b270f2]::-webkit-scrollbar-thumb{background-color:var(--scroll-bar-bgc);border-radius:100px;border:3px solid var(--bgc)}.scrolly[data-v-39b270f2]::-webkit-scrollbar-corner{background-color:var(--bgc)}\", \"\"]);\n                const a = r\n            },\n            68361: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \".main[data-v-947c6bac]{width:100%;height:100%;position:absolute;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#000;z-index:10}.main *[data-v-947c6bac]{user-select:text}.main[data-v-947c6bac] *{user-select:text}.card-main[data-v-947c6bac]{border-radius:2px;max-width:60%;max-height:90%;min-width:420px;height:fit-content;display:flex;flex-direction:column;justify-content:space-around;box-shadow:0px 0px 10px 3px rgba(14,14,14,.164)}.card-content[data-v-947c6bac]{width:100%;height:100%;display:flex;flex-direction:column}.content-title[data-v-947c6bac]{font-size:20px;line-height:60px;height:60px}.content-list[data-v-947c6bac]{overflow-y:auto;overflow-x:hidden;flex-grow:1}.content-list[data-v-947c6bac]::-webkit-scrollbar{width:4px;background-color:rgba(151,151,151,0.4117647059)}.content-list[data-v-947c6bac]::-webkit-scrollbar-thumb{background-color:#3e3c4d}.content-item[data-v-947c6bac]{border-bottom:1px solid rgba(50,50,50,.1);display:flex;align-items:baseline;flex-direction:column;justify-content:center;word-break:break-word}.item-key[data-v-947c6bac]{font-size:16px}.item-value[data-v-947c6bac]{font-size:14px}\", \"\"]);\n                const a = r\n            },\n            5464: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \".main-general-view[data-v-357ec510]{display:flex;flex-direction:column;justify-content:space-between;height:calc(100vh - 25px)}.content[data-v-357ec510]{padding:5px;flex-grow:1;overflow:hidden;display:flex;justify-content:space-between;flex-direction:column;margin:0 auto;width:70vw;height:80vh;max-height:600px;max-width:650px}.item[data-v-357ec510]{position:relative;padding:0px 20px;font-size:1.1em;display:flex;align-items:center;justify-content:space-between;border-radius:3px;height:100%;transition:background-color .3s}.item[data-v-357ec510]:hover{background-color:var(--general-item-bgc)}.title[data-v-357ec510]{color:var(--general-title-c);font-size:2em;font-weight:500;cursor:pointer;display:flex;align-items:center}.clickable[data-v-357ec510]{cursor:pointer;border-bottom-style:dashed;border-bottom-width:1px;border-bottom-color:var(--general-clickable-border-c)}.interfaces-card[data-v-357ec510]{position:fixed;left:calc(170px + (100vw - 170px)/2);transform:translate(-50%);bottom:20px;background-color:var(--general-interface-card-bgc);padding:10px 30px;border-radius:5px;max-height:50vh;overflow-y:auto;box-shadow:1px 1px 10px 2px rgba(50,50,50,.3);z-index:2000}.interfaces-card[data-v-357ec510]::-webkit-scrollbar{width:16px}.interfaces-card[data-v-357ec510]::-webkit-scrollbar-thumb{background-color:var(--scroll-bar-bgc);border-radius:100px;border:3px solid var(--bgc)}.interfaces-card[data-v-357ec510]::-webkit-scrollbar-corner{background-color:var(--bgc)}.interfaces-content[data-v-357ec510]{color:var(--general-interface-card-fgc);display:flex;align-items:flex-end;margin:10px 0px;align-items:center}.copy-icon[data-v-357ec510]{margin-right:10px;margin-top:2px;cursor:pointer}.copy-icon *[data-v-357ec510]{cursor:pointer}.tun-settings-icon[data-v-357ec510]{width:24px;height:24px;padding:2px;margin-left:10px;border-radius:5px;cursor:pointer}.tun-settings-icon *[data-v-357ec510]{cursor:pointer}.tun-settings-icon[data-v-357ec510]:hover{background-color:rgba(54,54,54,.26)}\", \"\"]);\n                const a = r\n            },\n            57726: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \".error-hint[data-v-9ba71ad8]{font-size:14px;cursor:pointer;background-color:var(--bgc);color:var(--fgc);border:1px solid var(--bc);border-radius:3px;box-shadow:0px 0px 2px 1px var(--shadow);padding:6px 15px}#error-view-main[data-v-9ba71ad8]{display:flex;flex-direction:column;align-items:center;justify-content:center;flex-grow:1;padding-bottom:60px}#error-view-main .error-content[data-v-9ba71ad8]{font-size:15px;border:1px solid rgba(175,175,175,.178);padding:10px;max-height:100px;overflow-y:auto;margin-top:10px;margin-left:40px;margin-right:40px;color:#e74949}#error-view-main .error-content[data-v-9ba71ad8]::-webkit-scrollbar{width:16px}#error-view-main .error-content[data-v-9ba71ad8]::-webkit-scrollbar-thumb{background-color:var(--scroll-bar-bgc);border-radius:100px;border:3px solid var(--bgc)}#error-view-main .error-content[data-v-9ba71ad8]::-webkit-scrollbar-corner{background-color:var(--bgc)}.error-hints[data-v-9ba71ad8]{display:flex;flex-direction:column;align-items:center}.loading-hint[data-v-9ba71ad8]{font-size:22px;margin-bottom:40px}.error-btns[data-v-9ba71ad8]{display:flex;margin-top:30px}.error-btns div[data-v-9ba71ad8]{width:150px;text-align:center;margin:0 20px}\", \"\"]);\n                const a = r\n            },\n            57059: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \".list[data-v-d9b850ea]{overflow-y:auto}.list[data-v-d9b850ea]::-webkit-scrollbar{width:16px}.list[data-v-d9b850ea]::-webkit-scrollbar-thumb{background-color:var(--scroll-bar-bgc);border-radius:100px;border:3px solid var(--bgc)}.list[data-v-d9b850ea]::-webkit-scrollbar-corner{background-color:var(--bgc)}.if-list *[data-v-d9b850ea]{user-select:text}.if-list[data-v-d9b850ea] *{user-select:text}\", \"\"]);\n                const a = r\n            },\n            46907: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \".main-tun-settings-view[data-v-47896be6]{width:calc(100% - 170px);height:calc(100% - 25px);position:absolute;top:25px;left:170px;color:#000}.main-tun-settings-view .content[data-v-47896be6]{border-radius:3px;width:600px;position:absolute;top:50%;left:50%;transform:translateX(-50%) translateY(-50%);padding:10px 20px;font-size:14px;font-weight:bold}.main-tun-settings-view .content .title[data-v-47896be6]{font-size:16px;margin-bottom:5px}.main-tun-settings-view .content .hint[data-v-47896be6]{opacity:.8}.main-tun-settings-view .content .hint span[data-v-47896be6]{opacity:1;font-weight:bold}.main-tun-settings-view .content .pannel[data-v-47896be6]{display:flex;height:100%;gap:10px}.main-tun-settings-view .content .pannel .left[data-v-47896be6]{width:300px;border-radius:5px;padding:5px 10px;max-height:430px;overflow:auto;overflow-y:auto}.main-tun-settings-view .content .pannel .left[data-v-47896be6]::-webkit-scrollbar{width:16px}.main-tun-settings-view .content .pannel .left[data-v-47896be6]::-webkit-scrollbar-thumb{background-color:var(--scroll-bar-bgc);border-radius:100px;border:3px solid var(--bgc)}.main-tun-settings-view .content .pannel .left[data-v-47896be6]::-webkit-scrollbar-corner{background-color:var(--bgc)}.main-tun-settings-view .content .pannel .left>div[data-v-47896be6]{margin-bottom:5px}.main-tun-settings-view .content .pannel .left .flex[data-v-47896be6]{height:30px;align-items:center;justify-content:space-between;display:flex}.main-tun-settings-view .content .pannel .left .flex input[data-v-47896be6]{width:120px;text-align:center;outline:none;border-radius:3px;height:25px}.main-tun-settings-view .content .pannel .right[data-v-47896be6]{width:300px;padding:5px 10px;border-radius:4px;max-height:430px;overflow:auto;overflow-y:auto}.main-tun-settings-view .content .pannel .right[data-v-47896be6]::-webkit-scrollbar{width:16px}.main-tun-settings-view .content .pannel .right[data-v-47896be6]::-webkit-scrollbar-thumb{background-color:var(--scroll-bar-bgc);border-radius:100px;border:3px solid var(--bgc)}.main-tun-settings-view .content .pannel .right[data-v-47896be6]::-webkit-scrollbar-corner{background-color:var(--bgc)}.main-tun-settings-view .content .pannel .right *[data-v-47896be6]{user-select:text}.main-tun-settings-view .content .pannel .right[data-v-47896be6] *{user-select:text}.main-tun-settings-view .content .btns[data-v-47896be6]{display:flex}.main-tun-settings-view .content .btns div[data-v-47896be6]:nth-child(2){width:10px}.main-tun-settings-view .content .btns .btn[data-v-47896be6]{flex-grow:2;background-color:#41b883;color:#fff;height:30px;margin-top:10px;line-height:30px;text-align:center;border-radius:3px}\", \"\"]);\n                const a = r\n            },\n            37911: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \".main-tun-settings-view[data-v-b6dface2]{width:calc(100% - 170px);height:calc(100% - 25px);position:absolute;top:25px;left:170px;color:#000}.main-tun-settings-view .content[data-v-b6dface2]{border-radius:3px;width:600px;position:absolute;top:50%;left:50%;transform:translateX(-50%) translateY(-50%);padding:10px 20px;font-size:14px;font-weight:bold}.main-tun-settings-view .content .title[data-v-b6dface2]{font-size:16px;margin-bottom:5px}.main-tun-settings-view .content .pannel[data-v-b6dface2]{display:flex;height:100%}.main-tun-settings-view .content .pannel .left[data-v-b6dface2]{width:300px;border-radius:5px;padding:5px 10px;max-height:430px;overflow:auto;overflow-y:auto}.main-tun-settings-view .content .pannel .left[data-v-b6dface2]::-webkit-scrollbar{width:16px}.main-tun-settings-view .content .pannel .left[data-v-b6dface2]::-webkit-scrollbar-thumb{background-color:var(--scroll-bar-bgc);border-radius:100px;border:3px solid var(--bgc)}.main-tun-settings-view .content .pannel .left[data-v-b6dface2]::-webkit-scrollbar-corner{background-color:var(--bgc)}.main-tun-settings-view .content .pannel .left>div[data-v-b6dface2]{margin-bottom:5px}.main-tun-settings-view .content .pannel .left .flex[data-v-b6dface2]{height:30px;align-items:center;justify-content:space-between;display:flex}.main-tun-settings-view .content .pannel .left .flex input[data-v-b6dface2]{width:120px;text-align:center;outline:none;border-radius:3px;height:25px}.main-tun-settings-view .content .pannel .right[data-v-b6dface2]{width:300px;margin-left:10px;border-radius:4px;max-height:430px;overflow:auto;overflow-y:auto}.main-tun-settings-view .content .pannel .right[data-v-b6dface2]::-webkit-scrollbar{width:16px}.main-tun-settings-view .content .pannel .right[data-v-b6dface2]::-webkit-scrollbar-thumb{background-color:var(--scroll-bar-bgc);border-radius:100px;border:3px solid var(--bgc)}.main-tun-settings-view .content .pannel .right[data-v-b6dface2]::-webkit-scrollbar-corner{background-color:var(--bgc)}.main-tun-settings-view .content .pannel .right *[data-v-b6dface2]{user-select:text}.main-tun-settings-view .content .pannel .right[data-v-b6dface2] *{user-select:text}.main-tun-settings-view .content .pannel .right pre[data-v-b6dface2]{width:100%;height:100%;padding:5px;font-weight:normal;font-family:Consolas,Monaco,Lucida Console,Liberation Mono,DejaVu Sans Mono,Bitstream Vera Sans Mono,Courier New,monospace}.main-tun-settings-view .content .btns[data-v-b6dface2]{display:flex;gap:4px}.main-tun-settings-view .content .btns div[data-v-b6dface2]:nth-child(1){background-color:rgba(0,0,0,0);color:#d44545;border:1px solid #d44545;flex-grow:1}.main-tun-settings-view .content .btns div[data-v-b6dface2]:nth-child(2){background-color:rgba(0,0,0,0);color:var(--fgc);opacity:.7;border:1px solid var(--fgc);flex-grow:1}.main-tun-settings-view .content .btns .btn[data-v-b6dface2]{flex-grow:3;background-color:#41b883;color:#fff;height:30px;margin-top:10px;line-height:30px;text-align:center;border-radius:3px}\", \"\"]);\n                const a = r\n            },\n            11892: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \".main-log-view[data-v-6acd51f2]{height:100%;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between}.main-log-view .title[data-v-6acd51f2]{padding:0 20px;font-size:20px;height:80px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--bc)}.main-log-view .title .text .hint[data-v-6acd51f2]{font-size:16px;font-weight:normal}.log-item[data-v-6acd51f2]{display:flex;justify-content:space-between;flex-direction:column;padding:5px 10px 5px 20px;border-bottom:1px solid var(--log-item-border-c)}.rule[data-v-6acd51f2]{font-size:14px;color:var(--log-item-rule-c);display:flex;align-items:center;flex-wrap:wrap}.rule div[data-v-6acd51f2]{margin-right:5px}.rule .payload[data-v-6acd51f2]{color:var(--log-item-payload-c)}.log-list[data-v-6acd51f2]{height:calc(100% - 80px);overflow-y:auto}.log-list[data-v-6acd51f2]::-webkit-scrollbar{width:16px}.log-list[data-v-6acd51f2]::-webkit-scrollbar-thumb{background-color:var(--scroll-bar-bgc);border-radius:100px;border:3px solid var(--bgc)}.log-list[data-v-6acd51f2]::-webkit-scrollbar-corner{background-color:var(--bgc)}.log-list .empty-list[data-v-6acd51f2]{font-size:18px;color:gray;width:100%;height:100%;display:flex;align-items:center;flex-direction:column;justify-content:center}.log-list .empty-list div[data-v-6acd51f2]:last-child{font-size:14px}.url[data-v-6acd51f2]{word-break:break-all;white-space:normal;display:flex;flex-direction:column;flex-grow:1}.url .name[data-v-6acd51f2]{font-size:16px}.url div[data-v-6acd51f2]{margin-right:5px}.proxy-name[data-v-6acd51f2]{font-size:14px;margin:auto 0px auto 20px;min-width:50%;display:flex;justify-content:flex-end;word-break:break-all}.left[data-v-6acd51f2]{display:flex}\", \"\"]);\n                const a = r\n            },\n            79928: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \".menu[data-v-149ea1bd]{background-color:var(--bgc);color:var(--fgc);list-style-type:none;border-bottom:1px solid var(--bc);position:relative;display:flex;flex-direction:column;height:400px;justify-content:space-between}.item[data-v-149ea1bd]{flex-grow:1;font-size:1em;cursor:pointer;display:flex;align-items:center}.item-draggable .item[data-v-149ea1bd]{-webkit-user-drag:element}.item-none[data-v-149ea1bd]{background-color:var(--mbgc);color:var(--menu-fgc)}.running-time[data-v-149ea1bd]{flex-grow:1;color:var(--fgc)}.traffic[data-v-149ea1bd]{margin-top:0px;color:var(--fgc)}.main-main-menu[data-v-149ea1bd]{z-index:2;height:100%;display:flex;flex-direction:column}.main-main-menu .stop-btn[data-v-149ea1bd]{cursor:pointer;position:absolute;top:515px;left:20px;border-radius:20px;color:#fff;height:30px;width:130px;line-height:30px;text-align:center;font-size:14px;font-weight:normal;background-color:#d14444;box-shadow:0px 0px 15px 1px rgba(49,49,49,.3);transform:all .3s}.drag-item[data-v-149ea1bd]{background-color:#41b883;color:#fff}.ghost-item[data-v-149ea1bd]{opacity:0}.shaking1[data-v-149ea1bd]{margin:2px 0;transform-origin:center;animation:shake-rotate-149ea1bd 400ms infinite}.shaking2[data-v-149ea1bd]{margin:2px 0;transform-origin:center;animation:shake-rotate-149ea1bd 400ms infinite;animation-delay:100ms}.shaking3[data-v-149ea1bd]{margin:2px 0;transform-origin:center;animation:shake-rotate-149ea1bd 400ms infinite;animation-delay:200ms}.clickable[data-v-149ea1bd]{cursor:pointer;text-align:center;width:100%}.selected-top[data-v-149ea1bd]{border-bottom-right-radius:10px}.selected-bottom[data-v-149ea1bd]{border-top-right-radius:10px}@keyframes shake-rotate-149ea1bd{0%{transform:rotate(0deg)}12.5%{transform:rotate(0.5deg)}25%{-webkit-transform:rotate(1.2deg)}37.5%{transform:rotate(0.5deg)}50%{transform:rotate(0deg)}62.5%{transform:rotate(-0.5deg)}75%{transform:rotate(-1.2deg)}87.5%{transform:rotate(-0.5deg)}100%{transform:rotate(0deg)}}\", \"\"]);\n                const a = r\n            },\n            73816: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \".grid[data-v-4f5120b9]{background-color:var(--mbgc);padding:0;width:100%;text-align:center;flex:1;display:flex;align-items:center;font-size:.8em;letter-spacing:.5px}.grid div[data-v-4f5120b9]{width:100%;display:flex;align-items:baseline;padding:0 40px;justify-content:space-between}.main-clash-traffic-view[data-v-4f5120b9]{height:80px;display:flex;flex-direction:column;border-bottom:1px solid var(--bc)}\", \"\"]);\n                const a = r\n            },\n            26534: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \".main-provider-view[data-v-3e34584d]{width:calc(100% - 170px);height:calc(100% - 25px);position:absolute;top:25px;right:0;display:flex;justify-content:center;align-items:center;z-index:10;font-size:16px}.main-provider-view .card[data-v-3e34584d]{display:flex;flex-direction:column;height:100%;width:100%}.main-provider-view .card .header[data-v-3e34584d]{min-height:80px;height:80px;border-bottom:1px solid var(--bc);background-color:var(--bgc);width:100%}.main-provider-view .card .header .buttons[data-v-3e34584d]{height:100%;width:100%;display:flex;align-items:center;justify-content:center}.main-provider-view .card .header .buttons .btn[data-v-3e34584d]{font-size:16px;color:var(--mode-switcher-selected-fgc);background-color:var(--mode-switcher-selected-bgc);border-radius:3px;height:35px;padding:0 20px;width:fit-content}.main-provider-view .card .header .buttons .btn[data-v-3e34584d]:first-child{margin-right:30px}.main-provider-view .content[data-v-3e34584d]{padding:5px 0 40px 0;flex-grow:1;display:flex;flex-direction:column;height:100%;width:100%;overflow-y:auto}.main-provider-view .content[data-v-3e34584d]::-webkit-scrollbar{width:16px}.main-provider-view .content[data-v-3e34584d]::-webkit-scrollbar-thumb{background-color:var(--scroll-bar-bgc);border-radius:100px;border:3px solid var(--bgc)}.main-provider-view .content[data-v-3e34584d]::-webkit-scrollbar-corner{background-color:var(--bgc)}.main-provider-view .content .title[data-v-3e34584d]{margin-top:10px;font-size:16px;text-align:center;padding-bottom:10px;border-bottom:1px solid var(--bc)}.main-provider-view .content .items .provider-item[data-v-3e34584d]{padding:7px 35px 7px 45px;border-bottom:1px solid var(--bc)}.main-provider-view .content .items .provider-item .provider-item-main[data-v-3e34584d]{display:flex;align-items:center}.main-provider-view .content .items .provider-item .provider-item-main .name-type[data-v-3e34584d]{display:flex;align-items:center}.main-provider-view .content .items .provider-item .provider-item-main .name-type .name[data-v-3e34584d]{font-size:16px;max-width:180px;overflow:clip;white-space:nowrap;text-overflow:ellipsis}.main-provider-view .content .items .provider-item .provider-item-main .update-hint[data-v-3e34584d]{font-size:14px;color:var(--proxy-item-hint-c)}.main-provider-view .content .items .provider-item .provider-item-main .error-hint[data-v-3e34584d]{color:var(--proxy-item-latency-offline-c);font-size:12px;max-width:500px;text-overflow:ellipsis;white-space:normal;overflow:hidden}.main-provider-view .content .items .provider-item .provider-item-main .empty[data-v-3e34584d]{flex-grow:1}.main-provider-view .content .items .provider-item .provider-item-main .icon-btn[data-v-3e34584d]{width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:3px}.main-provider-view .content .items .provider-item .provider-item-main .icon-btn[data-v-3e34584d]:hover{background-color:rgba(0,0,0,.123)}.main-provider-view .content .items .provider-item .provider-item-main .icon-btn:hover *[data-v-3e34584d]{cursor:pointer}.main-provider-view .content .items .provider-item .provider-item-main .icon-btn .rotating[data-v-3e34584d]{animation:downloading-3e34584d 1s infinite;animation-timing-function:linear}@keyframes downloading-3e34584d{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}.main-provider-view .content .items .provider-item .provider-item-main .icon-btn svg[data-v-3e34584d]{width:20px;height:20px;fill:var(--fgc)}.main-provider-view .content .items .provider-item .time[data-v-3e34584d]{font-size:14px}.main-provider-view .content .items .provider-item .proxies[data-v-3e34584d]{display:grid;grid-template-columns:repeat(auto-fill, 130px);font-size:14px}.main-provider-view .content .items .provider-item .proxies .proxy-item[data-v-3e34584d]{height:80px}\", \"\"]);\n                const a = r\n            },\n            8137: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \".fake-item[data-v-0729f95b]{height:45px;background-color:var(--proxy-fake-item-bgc);box-shadow:none}.fake-section[data-v-0729f95b]{background-color:var(--proxy-fake-item-bgc);height:50px;width:300px;margin-top:20px;margin-left:40px}#main-proxy-view[data-v-0729f95b]{height:100%;display:flex;flex-direction:column;overflow:hidden}.scroll-view[data-v-0729f95b]{margin-top:88px;padding-bottom:70px;flex-grow:1;height:calc(100% - 80px);overflow-y:auto}.scroll-view[data-v-0729f95b]::-webkit-scrollbar{width:16px}.scroll-view[data-v-0729f95b]::-webkit-scrollbar-thumb{background-color:var(--scroll-bar-bgc);border-radius:100px;border:3px solid var(--bgc)}.scroll-view[data-v-0729f95b]::-webkit-scrollbar-corner{background-color:var(--bgc)}.scroll-view .proxy-item[data-v-0729f95b]{margin:4px 6px;display:flex;align-items:center;flex-grow:1;transition:all .3s}.scroll-view .proxy-item .indicator[data-v-0729f95b]{width:4px;min-width:4px;background-color:var(--proxy-item-border-c);height:calc(100% - 2px);border-radius:10px;margin-right:4px}.scroll-view .proxy-item .info[data-v-0729f95b]{height:100%;padding:7px 0;background:var(--proxy-item-bgc);flex-grow:1;display:flex;border-radius:3px;justify-content:space-between;align-items:center}.scroll-view .proxy-item .info .left[data-v-0729f95b]{flex-grow:1;margin-left:10px;word-break:break-all}.scroll-view .proxy-item .info .left .item-bottom[data-v-0729f95b]{display:flex;font-size:12px;align-items:center;margin-top:2px;color:var(--proxy-item-hint-c)}.scroll-view .proxy-item .info .left .item-bottom .item-hint[data-v-0729f95b]{margin-right:5px}.scroll-view .proxy-item .info .left .item-bottom .item-udp[data-v-0729f95b]{font-size:9px;padding:0 3px;border:1px solid var(--proxy-item-border-c);border-radius:3px;word-break:keep-all}.scroll-view .proxy-item .info .time[data-v-0729f95b]{min-width:70px;text-align:right;font-size:12px;padding:12px 14px 12px 12px;cursor:pointer}.scroll-view .proxy-item .info .offline[data-v-0729f95b]{color:var(--proxy-item-latency-offline-c);font-weight:normal}.scroll-view .proxy-item .info .online[data-v-0729f95b]{color:var(--proxy-item-latency-online-c)}.scroll-view .selected .indicator[data-v-0729f95b]{background-color:var(--proxy-item-selected-border-c)}.proxy-section[data-v-0729f95b]{font-size:1.2em;font-weight:normal;padding:7px 10px;display:flex;align-items:center;justify-content:space-between;cursor:pointer;position:sticky;top:-1px;background-color:var(--bgc);transition:all .3s}.proxy-section[data-v-0729f95b]:hover{border-radius:5px;background-color:var(--general-item-bgc);cursor:pointer}.proxy-section .proxy-section-right[data-v-0729f95b]{display:flex;align-items:flex-end;height:100%;fill:var(--fgc)}.proxy-section .proxy-hint[data-v-0729f95b]{font-size:13px;display:inline;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.proxy-section .proxy-hint-type[data-v-0729f95b]{font-size:10px;margin-left:10px;color:var(--proxy-item-type-fgc);background:var(--proxy-item-type-bgc);padding:0 4px;border-radius:3px}.proxy-section .proxy-hint-type-selector[data-v-0729f95b]{background:#41b883}.proxy-section .proxy-hint-line[data-v-0729f95b]{width:10px;height:1px}.empty-hint[data-v-0729f95b]{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;height:100%;color:rgba(143,143,143,.795)}.empty-hint div[data-v-0729f95b]:first-child{font-size:22px}.empty-hint div[data-v-0729f95b]:last-child{font-size:14px;margin-top:10px}.empty-hint div:last-child span[data-v-0729f95b]{color:#008cff}\", \"\"]);\n                const a = r\n            },\n            71717: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \".flick[data-v-0729f95b]{opacity:.1}.proxy-list[data-v-0729f95b]{margin:0px 20px 0 30px}.proxy-items[data-v-0729f95b]{display:flex;flex-wrap:wrap;justify-content:space-around}.proxy-items>i[data-v-0729f95b]{margin:0px 6px;flex-grow:1;height:0}.item-name[data-v-0729f95b]{font-size:14px;display:flex;align-items:center;overflow:hidden;word-break:break-all}.proxy-hint-loadbalance[data-v-0729f95b]{font-size:.7em;margin-left:5px;overflow:hidden;padding-bottom:2px}.proxy-item[data-v-0729f95b] div,span[data-v-0729f95b]{cursor:pointer}.proxy-section-name[data-v-0729f95b]{font-size:1.05em;display:flex;align-items:center;max-width:500px}.proxy-section-name-left[data-v-0729f95b]{display:flex;align-items:flex-end;flex-shrink:0;font-size:17px}.proxy-section-test-btn[data-v-0729f95b]{cursor:pointer;height:40px;width:30px}.sec-icon[data-v-0729f95b]{height:30px;width:30px;padding:5px;display:flex;align-items:center;justify-content:center}.sec-icon[data-v-0729f95b]:hover{border-radius:5px;background-color:rgba(187,187,187,.5);cursor:pointer}.filter-keyword[data-v-0729f95b]{position:fixed;bottom:10px;right:45px;width:150px;height:30px}.filter-keyword input[data-v-0729f95b]{width:150px;padding:0 10px;border:none;background-color:#494949;border-radius:5px;height:30px;color:#fff;top:0;right:5px;position:absolute}.filter-keyword input[data-v-0729f95b]:focus{outline:none}.filter-keyword div[data-v-0729f95b]{width:30px;height:30px;position:absolute;right:0px;top:0px;display:flex;align-items:center;justify-content:center;background-color:#494949;border-radius:5px}.filter-keyword div img[data-v-0729f95b]{height:20px;width:20px}.fall-fade-enter-active[data-v-0729f95b]{transition:all .2s ease-in-out}.fall-fade-enter[data-v-0729f95b],.fall-fade-leave-to[data-v-0729f95b]{transform:translateY(-10px);opacity:0}.move-right-enter-active[data-v-0729f95b]{transition:all .2s ease}.move-right-leave-to[data-v-0729f95b],.move-right-enter[data-v-0729f95b]{transform:scaleX(0.1);transform-origin:right}\", \"\"]);\n                const a = r\n            },\n            52062: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \".selected[data-v-357c3e79]{color:var(--mode-switcher-selected-fgc);background-color:var(--mode-switcher-selected-bgc)}.normal[data-v-357c3e79]{color:var(--mode-switcher-normal-fgc);background-color:var(--mode-switcher-normal-bgc)}.main[data-v-357c3e79]{border-bottom:1px solid var(--bc)}#main-mode-switcher[data-v-357c3e79]{padding:auto 20px;width:calc(100vw - 170px);height:80px;position:fixed}#main-mode-switcher .btns[data-v-357c3e79]{height:100%;align-items:center;margin:0 auto;display:flex;max-width:600px;justify-content:space-between}#main-mode-switcher .btns .btn[data-v-357c3e79]{margin:0 0;font-weight:500;font-size:1.2em;width:120px;height:40px;text-align:center;line-height:40px;border-radius:6px;box-shadow:1px 1px 5px 2px rgba(70,70,70,.1);cursor:pointer}\", \"\"]);\n                const a = r\n            },\n            63329: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \".main-router-view[data-v-74ff0369]{height:100%;width:100%;position:relative}.main-router-view .header[data-v-74ff0369]{height:80px;border-bottom:1px solid var(--bc);font-size:20px;display:flex;justify-content:space-between;align-items:center;padding:0 20px}.main-router-view .header .btn[data-v-74ff0369]{font-size:16px;padding:5px 15px;margin-right:10px;text-align:center;font-weight:normal;cursor:pointer;border-radius:3px;color:#fff}.main-router-view .header .btn-start[data-v-74ff0369]{background-color:#535353}.main-router-view .header .btn-stop[data-v-74ff0369]{background-color:#41b883}.main-router-view .list[data-v-74ff0369]{font-size:16px;padding:20px 20px 20px 30px;height:calc(100% - 80px);overflow-y:auto}.main-router-view .list[data-v-74ff0369]::-webkit-scrollbar{width:16px}.main-router-view .list[data-v-74ff0369]::-webkit-scrollbar-thumb{background-color:var(--scroll-bar-bgc);border-radius:100px;border:3px solid var(--bgc)}.main-router-view .list[data-v-74ff0369]::-webkit-scrollbar-corner{background-color:var(--bgc)}.main-router-view .list .item[data-v-74ff0369]{margin:10px 0px;display:flex;align-items:center;justify-content:space-between}.main-router-view .list .item .left .name Input[data-v-74ff0369]{font-size:16px;border:none;outline:none;background-color:rgba(255,255,255,0);color:var(--fgc)}.main-router-view .list .item .left .ip[data-v-74ff0369]{font-size:12px;color:var(--proxy-item-hint-c)}.main-router-view .list .item .right[data-v-74ff0369]{font-size:14px;display:flex;align-items:center}.main-router-view .list .item .right .btn[data-v-74ff0369]{padding:5px 10px;text-align:center;font-weight:normal;cursor:pointer;border-radius:3px;background-color:rgba(216,216,216,.452);margin-left:10px}\", \"\"]);\n                const a = r\n            },\n            22736: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, '.main-router-config-view[data-v-0ffa25f2]{background-color:rgba(50,50,50,.6);width:100%;height:100%;position:absolute;top:0px;left:0px;color:#000}.main-router-config-view .content[data-v-0ffa25f2]{border-radius:3px;width:500px;position:absolute;top:50%;left:50%;transform:translateX(-50%) translateY(-50%);padding:20px;font-size:14px;font-weight:bold}.main-router-config-view .content .title[data-v-0ffa25f2]{font-size:16px;margin-bottom:5px}.main-router-config-view .content .sec[data-v-0ffa25f2]{margin:10px 0;border-radius:3px;padding:5px 0px}.main-router-config-view .content .sec .flex[data-v-0ffa25f2]{display:flex}.main-router-config-view .content .sec span[data-v-0ffa25f2]{margin-right:3px}.main-router-config-view .content .sec span[data-v-0ffa25f2]::after{content:\" :\"}.main-router-config-view .content .sec input[data-v-0ffa25f2]{text-align:center;width:120px;margin-right:20px;border-radius:3px;outline:none;font-weight:normal;background-color:rgba(0,0,0,0)}.main-router-config-view .content .btn[data-v-0ffa25f2]{background-color:#41b883;color:#fff;height:30px;line-height:30px;text-align:center;border-radius:3px}', \"\"]);\n                const a = r\n            },\n            98319: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \".card[data-v-820f0efe]{position:fixed;padding:0 35px;height:80px;width:calc(100vw - 170px);display:flex;justify-content:space-between;background-color:var(--bgc);border-bottom:1px solid var(--bc)}.list-item[data-v-820f0efe]{background-color:var(--bgc);margin:4px 6px;display:flex;justify-content:space-between;position:relative;width:295px;flex-grow:1}.list-item .item-subinfo[data-v-820f0efe]{width:fit-content}.list-item .item-subinfo .item-subinfo-texts[data-v-820f0efe]{display:flex;font-size:11px;color:var(--proxy-item-hint-c)}.list-item .item-subinfo .item-subinfo-texts div[data-v-820f0efe]{margin-right:10px}.list-item .item-subinfo .item-subinfo-texts div[data-v-820f0efe]:last-child{margin-right:0}.list-item .item-subinfo .progress[data-v-820f0efe]{background-color:var(--proxy-item-subs-bgc);text-align:center;height:3px;width:100%;color:var(--proxy-item-subs-fgc);position:relative;border-radius:3px;margin-bottom:2px}.list-item .item-subinfo .progress .percent[data-v-820f0efe]{border-radius:3px;width:100%;top:0;left:0;position:absolute;height:100%;background-color:var(--proxy-item-subs-used-bgc)}.list-item .indicator[data-v-820f0efe]{margin-right:4px;margin-top:2px;width:4px;height:calc(100% - 4px);border-radius:10px;background-color:var(--proxy-item-border-c)}.list-item .item-info[data-v-820f0efe]{padding:4px 5px;background-color:var(--proxy-item-bgc);display:flex;align-items:center;justify-content:flex-start;flex-grow:1;max-width:calc(100% - 8px);border-radius:3px;height:100%;position:relative}.list-item .item-info .refresh-icon[data-v-820f0efe]{width:18px;height:18px;position:absolute;right:3px;top:3px}.list-item .item-info .item-name[data-v-820f0efe]{cursor:pointer;margin-left:5px;flex-grow:1;width:calc(100% - 50px);font-size:15px}.list-item .item-info .item-name .item-name-bottom[data-v-820f0efe]{font-size:13px;cursor:pointer;max-width:calc(100% - 10px);text-overflow:ellipsis;white-space:nowrap;overflow:hidden;font-weight:normal;color:var(--proxy-item-hint-c)}.list-item .item-info .item-edit-zone[data-v-820f0efe]{background-color:var(--bgc);box-shadow:0px 0px 4px 0px rgba(0,0,0,.3);border-radius:5px;position:absolute;width:175px;display:flex;flex-wrap:wrap;justify-content:space-between;right:30px;z-index:1}.list-item .item-icon[data-v-820f0efe]{width:30px;height:30px;cursor:pointer;border-radius:5px;display:flex;align-items:center;justify-content:center;transition:background-color .3s;cursor:pointer}.list-item .item-icon *[data-v-820f0efe]{cursor:pointer}.list-item .item-icon[data-v-820f0efe]:hover{background-color:rgba(189,189,189,.534)}.list-item .item-icon>svg[data-v-820f0efe]{width:18px;height:18px;fill:var(--fgc)}.list-item .item-disabled[data-v-820f0efe]{cursor:not-allowed}.list-item .item-disabled>svg[data-v-820f0efe]{fill:gray}.list-item .more[data-v-820f0efe]{position:absolute;right:0;width:30px;height:100%;display:flex;align-items:center;justify-content:center;border-top-right-radius:3px;border-bottom-right-radius:3px}.list-item .more[data-v-820f0efe]:hover{background-color:rgba(128,128,128,.1)}.list-item .more>svg[data-v-820f0efe]{height:18px;fill:var(--fgc)}.main[data-v-820f0efe]{display:flex;flex-direction:column;height:100%}#main-server-view[data-v-820f0efe]{height:100%}.list-view[data-v-820f0efe]{margin-top:80px;height:calc(100% - 80px);width:100%;overflow-y:auto;display:flex;flex-wrap:wrap;padding:10px 20px 20px 30px;align-content:flex-start}.list-view[data-v-820f0efe]::-webkit-scrollbar{width:16px}.list-view[data-v-820f0efe]::-webkit-scrollbar-thumb{background-color:var(--scroll-bar-bgc);border-radius:100px;border:3px solid var(--bgc)}.list-view[data-v-820f0efe]::-webkit-scrollbar-corner{background-color:var(--bgc)}.list-view>*[data-v-820f0efe]{-webkit-user-drag:element}.list-view i[data-v-820f0efe]{width:295px;margin:0px 6px;flex-grow:1;height:0}.input-container[data-v-820f0efe]{display:flex;flex-grow:1;overflow:hidden;padding-right:5px;justify-content:space-between;position:relative;z-index:1}.input-container input[data-v-820f0efe]{padding-right:40px}\", \"\"]);\n                const a = r\n            },\n            69953: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \".main-config-view[data-v-9e0b3cf4]{height:100%;position:fixed}.main-config-view .proxy-group[data-v-9e0b3cf4]{flex:1;overflow-y:auto;padding:0px 20px 20px 15px}.main-config-view .proxy-group[data-v-9e0b3cf4]::-webkit-scrollbar{width:16px}.main-config-view .proxy-group[data-v-9e0b3cf4]::-webkit-scrollbar-thumb{background-color:rgba(101,81,122,.7);border-radius:100px;border:3px solid var(--bgc)}.main-config-view .proxy-group[data-v-9e0b3cf4]::-webkit-scrollbar-corner{background-color:var(--bgc)}.main-config-view .proxy[data-v-9e0b3cf4]{flex:1;overflow-y:auto;direction:rtl;padding:0px 15px 20px 20px}.main-config-view .proxy[data-v-9e0b3cf4]::-webkit-scrollbar{width:16px}.main-config-view .proxy[data-v-9e0b3cf4]::-webkit-scrollbar-thumb{background-color:rgba(55,57,72,.7);border-radius:100px;border:3px solid var(--bgc)}.main-config-view .proxy[data-v-9e0b3cf4]::-webkit-scrollbar-corner{background-color:var(--bgc)}.dragArea[data-v-9e0b3cf4]{min-height:1px}.dragArea>*[data-v-9e0b3cf4]{-webkit-user-drag:element}\", \"\"]);\n                const a = r\n            },\n            5504: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \".main[data-v-f638b328]{position:fixed;left:170px;top:30px;width:calc(100vw - 170px);height:100%;background-color:var(--bgc);padding:10px 30px;overflow-y:auto}.main[data-v-f638b328]::-webkit-scrollbar{width:16px}.main[data-v-f638b328]::-webkit-scrollbar-thumb{background-color:var(--scroll-bar-bgc);border-radius:100px;border:3px solid var(--bgc)}.main[data-v-f638b328]::-webkit-scrollbar-corner{background-color:var(--bgc)}.main input[data-v-f638b328]{color:var(--fgc);background-color:var(--bgc)}\", \"\"]);\n                const a = r\n            },\n            52845: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \".qrcode-view-main[data-v-2c37fa0d]{position:fixed;left:170px;top:25px;height:100%;width:calc(100vw - 170px);display:flex;justify-content:center;align-items:center;background-color:rgba(50,50,50,.6);z-index:100}.qrcode-view-main .content[data-v-2c37fa0d]{width:250px;background-color:#fff;box-shadow:0px 0px 10px 3px rgba(14,14,14,.164);border-radius:2px;padding:10px 10px 20px 10px;display:flex;flex-direction:column;justify-content:space-between;align-items:center}.qrcode-view-main .content img[data-v-2c37fa0d]{width:230px;height:230px}.qrcode-view-main .content .url[data-v-2c37fa0d]{font-size:12px;width:200px;overflow-wrap:anywhere;text-decoration:underline;cursor:pointer;color:#0f7bd3}.qrcode-view-main .content .btn[data-v-2c37fa0d]{margin-top:10px;height:45px;color:#fff;cursor:pointer;line-height:45px;text-align:center;background-color:#7e7b7b;border-radius:3px;padding-left:10px;padding-right:10px;font-size:.85em;box-shadow:0px 2px 20px 2px rgba(50,50,50,.1);width:200px}\", \"\"]);\n                const a = r\n            },\n            53640: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \".rule[data-v-459dde1e]{font-size:13px;color:var(--log-item-rule-c)}.log-item[data-v-459dde1e]{display:flex;justify-content:space-between;align-items:center;padding:5px 20px;border-bottom:1px solid var(--log-item-border-c)}.log-list[data-v-459dde1e]{width:calc(100% - 0px);border:0px solid rgba(50,50,50,.2);height:calc(100% - 100px);border-style:dashed;padding:10px 20px;overflow-y:auto}.log-list[data-v-459dde1e]::-webkit-scrollbar{width:16px}.log-list[data-v-459dde1e]::-webkit-scrollbar-thumb{background-color:var(--scroll-bar-bgc);border-radius:100px;border:3px solid var(--bgc)}.log-list[data-v-459dde1e]::-webkit-scrollbar-corner{background-color:var(--bgc)}\", \"\"]);\n                const a = r\n            },\n            21732: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \".model-title[data-v-eea841c4]{display:flex;font-size:1.2em;justify-content:space-between}.modal-container[data-v-eea841c4]{width:500px;margin:0px auto;padding:20px 30px;background-color:var(--bgc);border-radius:2px;box-shadow:0 2px 8px rgba(0,0,0,.33);transition:all .3s ease}.modal-container input[data-v-eea841c4]{color:var(--fgc);background-color:var(--bgc)}.scroll-view[data-v-eea841c4]{margin-top:20px;max-height:400px;padding:0 10px;overflow-y:auto}.scroll-view[data-v-eea841c4]::-webkit-scrollbar{width:16px}.scroll-view[data-v-eea841c4]::-webkit-scrollbar-thumb{background-color:var(--scroll-bar-bgc);border-radius:100px;border:3px solid var(--bgc)}.scroll-view[data-v-eea841c4]::-webkit-scrollbar-corner{background-color:var(--bgc)}\", \"\"]);\n                const a = r\n            },\n            90596: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \".main-setting-view[data-v-fc0cd1de]{height:100%}.main-setting-view .blur[data-v-fc0cd1de]{filter:blur(15px)}.main-setting-view .title[data-v-fc0cd1de]{height:80px;border-bottom:1px solid var(--bc);font-size:20px;background-color:var(--bgc);display:flex;justify-content:space-between;align-items:center;padding:0 20px}.main-setting-view .title .btns[data-v-fc0cd1de]{height:100%;display:flex;align-items:center;gap:10px}.main-setting-view .title .btns .btn[data-v-fc0cd1de]{cursor:pointer;font-size:14px;color:var(--error-text);font-weight:normal;padding:5px 15px;border-radius:3px;background-color:var(--general-item-bgc)}.main-setting-view .content[data-v-fc0cd1de]{overflow-y:auto;padding:10px 10px 20px 10px;height:calc(100% - 80px)}.main-setting-view .content[data-v-fc0cd1de]::-webkit-scrollbar{width:16px}.main-setting-view .content[data-v-fc0cd1de]::-webkit-scrollbar-thumb{background-color:var(--scroll-bar-bgc);border-radius:100px;border:3px solid var(--bgc)}.main-setting-view .content[data-v-fc0cd1de]::-webkit-scrollbar-corner{background-color:var(--bgc)}.main-setting-view .quit-btns[data-v-fc0cd1de]{display:flex;align-items:center;justify-content:center;margin-top:30px}.main-setting-view .quit-btns .btn[data-v-fc0cd1de]{background-color:rgba(255,30,0,.8);margin:0 7px;padding:5px 20px;color:#fff;border-radius:3px;font-size:14px;text-align:center}.main-setting-view .item[data-v-fc0cd1de]{font-weight:normal;display:flex;justify-content:space-between;align-items:center;height:35px;padding:0 10px;transition:all .3s}.main-setting-view .item .short-input[data-v-fc0cd1de]{width:190px}.main-setting-view .item .shorter-input[data-v-fc0cd1de]{width:156px}.main-setting-view .item .hint[data-v-fc0cd1de]{margin-left:10px}.main-setting-view .item .interface-hint[data-v-fc0cd1de]{margin-right:10px}.main-setting-view .item[data-v-fc0cd1de]:hover{background:var(--setting-item-hover-bgc);border-radius:3px}.main-setting-view .edit-hint[data-v-fc0cd1de]{background-color:rgba(0,0,0,.4);position:fixed;top:25px;width:calc(100% - 170px);height:calc(100vh - 25px);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center}.main-setting-view .edit-hint div[data-v-fc0cd1de]:first-child{font-size:20px}.main-setting-view .edit-hint div[data-v-fc0cd1de]:nth-child(2){font-size:16px;margin-top:20px}.main-setting-view .edit-hint .btn[data-v-fc0cd1de]{font-size:18px;margin-top:40px;background-color:rgba(26,26,26,.7);padding:4px 12px;border-radius:3px;cursor:pointer}\", \"\"]);\n                const a = r\n            },\n            6357: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \"input[data-v-2ddf36e7]::-webkit-outer-spin-button,input[data-v-2ddf36e7]::-webkit-inner-spin-button{-webkit-appearance:none}.main-key-capture[data-v-2ddf36e7]{position:relative;width:200px}.main-key-capture input[data-v-2ddf36e7]{width:100%;text-align:center;border:none;outline-style:none;background-color:var(--setting-input-bgc);color:var(--fgc);height:26px;box-shadow:1px 1px 4px 1px rgba(50,50,50,.04);border-radius:2px}.main-key-capture input[data-v-2ddf36e7]::placeholder{color:var(--input-phc)}.main-key-capture .suffix[data-v-2ddf36e7]{position:absolute;right:10px;top:0;height:25px;line-height:25px;color:var(--menu-fgc);font-size:13px}.main-key-capture .hint[data-v-2ddf36e7]{position:absolute;font-size:12px;top:0;padding:0 10px;border-radius:13px;height:26px;line-height:26px;text-align:center;color:#fff;background-color:#535353;opacity:1;transform:translateX(calc(-100% - 10px));transition:all 300ms}.main-key-capture .hint-hide[data-v-2ddf36e7]{opacity:0}\", \"\"]);\n                const a = r\n            },\n            69083: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \".main-more-hint[data-v-6a8f4af4]{display:flex;align-items:center}.main-more-hint .text[data-v-6a8f4af4]{color:var(--menu-fgc);font-size:13px}.main-more-hint .tirangle[data-v-6a8f4af4]{width:0;height:0;margin-left:5px;margin-top:2px;border-top:4px solid rgba(0,0,0,0);border-bottom:4px solid rgba(0,0,0,0);border-left:6px solid var(--menu-fgc)}\", \"\"]);\n                const a = r\n            },\n            44804: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \".main-setting-section[data-v-18adce47]{margin:0px 2% 10px 2%;font-size:15px;width:96%}.main-setting-section .title[data-v-18adce47]{font-size:16px;height:34px;line-height:34px}.main-setting-section .content[data-v-18adce47]{background-color:var(--general-item-bgc);padding:5px 5px;border-radius:3px}\", \"\"]);\n                const a = r\n            },\n            91778: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \".main-settings-separator[data-v-26bdfd95]{height:1px;width:100%;opacity:.5;background-color:var(--scroll-bar-bgc);margin:5px auto}\", \"\"]);\n                const a = r\n            },\n            19572: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \".main-simple-input[data-v-0f00486f]{position:relative;width:250px}.main-simple-input input[data-v-0f00486f]{width:100%;text-align:center;border:none;outline-style:none;background-color:var(--setting-input-bgc);color:var(--fgc);height:25px;box-shadow:1px 1px 4px 1px rgba(50,50,50,.04);border-radius:2px}.main-simple-input .suffix[data-v-0f00486f]{position:absolute;right:10px;top:0;height:25px;line-height:25px;color:var(--menu-fgc);font-size:13px}\", \"\"]);\n                const a = r\n            },\n            28698: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \".main[data-v-65878d23]{height:25px;width:100vw;background-color:var(--status-bgc);color:var(--fgc);display:flex;justify-content:space-between;align-items:center}.main .empty[data-v-65878d23]{flex-grow:1;height:100%;display:flex;flex-direction:column}.main .empty .top[data-v-65878d23]{height:5px}.main .empty .top .left[data-v-65878d23]{height:100%;background-color:var(--proxy-item-latency-online-c)}.main .empty .bottom[data-v-65878d23]{flex-grow:1;-webkit-app-region:drag}.title[data-v-65878d23]{font-size:.75em;font-weight:100;letter-spacing:1px}.close[data-v-65878d23]{-webkit-app-region:no-drag;cursor:pointer;display:flex;align-items:center;justify-content:center;width:45px;height:100%;display:flex;align-items:center}.close span[data-v-65878d23]{text-align:center;cursor:pointer;height:20px;width:20px}\", \"\"]);\n                const a = r\n            },\n            59374: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \".main-button-view[data-v-f3b3ccf8]{height:26px;width:90px;text-align:center;line-height:26px;background-color:#6777ef;border-radius:1500px;color:#fff;font-size:.78em;display:flex;align-items:center;justify-content:center;cursor:pointer}.main-button-view *[data-v-f3b3ccf8]{cursor:pointer}.main-button-view .line[data-v-f3b3ccf8]{display:flex;height:100%;width:100%;justify-content:center;align-items:center}.main-button-view .line .box[data-v-f3b3ccf8]{border-radius:20px;transform:scale(0.5, 0.5);background-color:#b3b3b3}.main-button-view .line .large[data-v-f3b3ccf8]{height:8px;width:8px;margin-left:2px;margin-right:2px}.main-button-view .line .small[data-v-f3b3ccf8]{height:5px;width:5px;margin-left:1px;margin-right:1px}.animation-delay1[data-v-f3b3ccf8]{animation:wave-f3b3ccf8 1s linear 0s infinite}.animation-delay2[data-v-f3b3ccf8]{animation:wave-f3b3ccf8 1s linear .2s infinite}.animation-delay3[data-v-f3b3ccf8]{animation:wave-f3b3ccf8 1s linear .4s infinite}.animation-delay4[data-v-f3b3ccf8]{animation:wave-f3b3ccf8 1s linear .6s infinite}.animation-delay5[data-v-f3b3ccf8]{animation:wave-f3b3ccf8 1s linear .8s infinite}@keyframes wave-f3b3ccf8{from{background-color:#f8f8f8;transform:scale(1.1, 1.1)}to{background-color:#adadad;transform:scale(0.5, 0.5)}}\", \"\"]);\n                const a = r\n            },\n            33509: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \".main-check-box[data-v-1c767bad]{display:flex;justify-content:flex-start;align-items:center}.main-check-box svg[data-v-1c767bad]{margin-top:1px}.main-check-box .slot[data-v-1c767bad]{margin-left:5px}\", \"\"]);\n                const a = r\n            },\n            70406: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \".main-edit-list-view .item[data-v-3ea6d831]{display:flex;margin-bottom:5px;height:25px}.main-edit-list-view .item input[data-v-3ea6d831]{width:calc(100% - 30px);outline:none;border-top-left-radius:3px;border-bottom-left-radius:3px;padding:0 10px;flex-grow:1}.main-edit-list-view .btn-add[data-v-3ea6d831]{width:100%;height:25px;border-radius:3px;border:1px solid #41b883;display:flex;justify-content:center;align-items:center}.main-edit-list-view .btn-remove[data-v-3ea6d831]{height:100%;width:30px;border-top-right-radius:3px;border-bottom-right-radius:3px;display:flex;justify-content:center;align-items:center;background-color:#d44545;border-left-color:rgba(0,0,0,0)}\", \"\"]);\n                const a = r\n            },\n            84234: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \".main-edit-object-view input[data-v-352b843a]{width:calc(100% - 30px);outline:none;border-top-left-radius:3px;border-bottom-left-radius:3px;padding:0 10px;flex-grow:1}.main-edit-object-view .item[data-v-352b843a]{display:flex;margin-bottom:5px;height:25px}.main-edit-object-view .btn-add[data-v-352b843a]{width:100%;height:25px;border-radius:3px;border:1px solid #41b883;display:flex;justify-content:center;align-items:center}.main-edit-object-view .btn-remove[data-v-352b843a]{height:100%;width:30px;border-radius:3px;display:flex;justify-content:center;align-items:center;background-color:#d44545;border-left-color:rgba(0,0,0,0)}\", \"\"]);\n                const a = r\n            },\n            82681: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \".main-hint-view[data-v-6e240a95]{position:relative}.main-hint-view .hint[data-v-6e240a95]{font-size:12px;background-color:#242424;padding:3px 5px;border-radius:3px;color:#fff;position:fixed;z-index:1000;white-space:nowrap;line-height:13px;font-weight:normal}\", \"\"]);\n                const a = r\n            },\n            11061: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \".content[data-v-d4bbbea2]{position:fixed;background-color:var(--general-interface-card-bgc);color:var(--general-interface-card-fgc);padding:8px 10px;border-radius:6px;font-size:14px;z-index:1000;box-shadow:0px 0px 8px 2px rgba(0,0,0,.2);width:300px;overflow:hidden}.content a[data-v-d4bbbea2]{color:#8abdf8;text-decoration:none;cursor:pointer}.content .quote[data-v-d4bbbea2]{background-color:var(--general-interface-card-quote-bgc);padding:0 4px;border-radius:4px}.content li[data-v-d4bbbea2]{list-style:inside}.info-icon-main[data-v-d4bbbea2]{position:relative;display:flex;align-items:center;margin-left:4px}\", \"\"]);\n                const a = r\n            },\n            41044: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, '.main-proxy-navigator[data-v-298f5540]{position:absolute;height:calc(100% - 105px);display:flex;flex-direction:column;top:105px;right:20px;overflow-y:scroll;overflow-x:clip;transition:transform .2s;background-color:var(--bgc);border-color:var(--bc);border-width:0;border-style:solid}.main-proxy-navigator[data-v-298f5540]::before,.main-proxy-navigator[data-v-298f5540]::after{content:\"\";margin:auto}.main-proxy-navigator[data-v-298f5540]::-webkit-scrollbar{display:none}.main-proxy-navigator .item[data-v-298f5540]{font-size:12px;font-weight:normal;transition:all .1s;white-space:nowrap;padding-left:5px;z-index:2;color:var(--fgc)}.main-proxy-navigator .item-selected[data-v-298f5540]{color:var(--proxy-item-selected-border-c)}.main-proxy-navigator .item-hover[data-v-298f5540]{font-weight:bold}.main-proxy-navigator .item-error[data-v-298f5540]{color:var(--proxy-item-latency-offline-c)}', \"\"]);\n                const a = r\n            },\n            65939: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \".main-select-view[data-v-e458e7bc]{display:flex;align-items:center;justify-content:space-between}.item[data-v-e458e7bc]{color:#fff;height:26px;font-size:.8em;line-height:25px;padding:0 6px;text-align:center;cursor:pointer;min-width:50px;transition:all .3s}.item-single[data-v-e458e7bc]{background-color:var(--switch-bgc)}.item-double[data-v-e458e7bc]{background-color:var(--switch-bgc-second)}.item-first[data-v-e458e7bc]{border-top-left-radius:6px;border-bottom-left-radius:6px}.item-last[data-v-e458e7bc]{border-top-right-radius:6px;border-bottom-right-radius:6px}.item-selected[data-v-e458e7bc]{background-color:#179bbb;flex-grow:1}\", \"\"]);\n                const a = r\n            },\n            18228: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \".main[data-v-37d0be30]{border:2px solid var(--switch-bgc);background-color:var(--switch-bgc);border-radius:40px;width:34px;height:20px;box-shadow:0px 0px 5px 1px rgba(50,50,50,0);display:flex;padding:0 2px;align-items:center}.main *[data-v-37d0be30]{cursor:pointer}.text[data-v-37d0be30]{display:flex;justify-content:space-between;align-items:center;width:calc(100% - 0px);height:calc(100% - 4px)}.base[data-v-37d0be30]{width:calc(100% - 17px);height:100%}.text-font[data-v-37d0be30]{letter-spacing:0px;text-align:center;font-size:12px;margin-bottom:8px;color:#fff}.tint-right[data-v-37d0be30]{background-color:#d44545;border-radius:20px;width:12px}.tint-left[data-v-37d0be30]{background-color:#13af42;border-radius:20px;width:12px}.move-left-enter-active[data-v-37d0be30]{transition:all .2s ease}.move-left-leave-active[data-v-37d0be30]{transition:all .1s ease-out}.move-left-enter[data-v-37d0be30],.move-left-leave-to[data-v-37d0be30]{transform:translateX(-10px);opacity:0}.move-right-enter-active[data-v-37d0be30]{transition:all .2s ease}.move-right-leave-active[data-v-37d0be30]{transition:all .1s ease-out}.move-right-enter[data-v-37d0be30],.move-right-leave-to[data-v-37d0be30]{transform:translateX(10px);opacity:0}\", \"\"]);\n                const a = r\n            },\n            56932: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \".tray-order-main[data-v-40749f51]{display:flex;align-items:center;font-size:13px}.tray-order-main .title[data-v-40749f51]{margin-right:5px}.tray-order-main .list[data-v-40749f51]{height:28px;display:flex;justify-content:center;align-items:center;min-width:40px;border-radius:3px;background-color:#e2e2e2;padding:3px 5px}.tray-order-main .list img[data-v-40749f51]{-webkit-user-drag:element;display:flex;align-items:center;justify-content:center;height:16px;margin:0 2px}.tray-order-main .left-list[data-v-40749f51]{margin-right:10px}\", \"\"]);\n                const a = r\n            },\n            59480: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \".main-alert-view-plugin[data-v-12619986]{width:100%;height:calc(100% - 25px);position:fixed;top:25px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#000;z-index:10}.main-alert-view-plugin *[data-v-12619986]{user-select:text}.main-alert-view-plugin[data-v-12619986] *{user-select:text}.main-alert-view-plugin .card-main[data-v-12619986]{border-radius:2px;display:flex;flex-direction:column;justify-content:space-around;width:50%}.main-alert-view-plugin .card-main .card-content[data-v-12619986]{padding:15px 20px}.main-alert-view-plugin .card-main .card-content .content-title[data-v-12619986]{font-size:1.2em;margin-bottom:15px}.main-alert-view-plugin .card-main .card-content .content-content[data-v-12619986]{font-size:15px;text-overflow:inherit;word-wrap:break-word;max-height:200px;overflow-y:auto}.main-alert-view-plugin .card-main .card-content .content-content[data-v-12619986]::-webkit-scrollbar{width:16px}.main-alert-view-plugin .card-main .card-content .content-content[data-v-12619986]::-webkit-scrollbar-thumb{background-color:var(--scroll-bar-bgc);border-radius:100px;border:3px solid var(--bgc)}.main-alert-view-plugin .card-main .card-content .content-content[data-v-12619986]::-webkit-scrollbar-corner{background-color:var(--bgc)}.main-alert-view-plugin .card-main .card-content .card-btns[data-v-12619986]{margin-top:20px;display:flex;justify-content:space-around}.main-alert-view-plugin .card-main .card-content .card-btns .btn[data-v-12619986]{cursor:pointer;color:#fff;width:100px;height:40px;text-align:center;line-height:40px;border-radius:3px}.main-alert-view-plugin .card-main .card-content .card-btns .btn-cancel[data-v-12619986]{background-color:#676475}.main-alert-view-plugin .card-main .card-content .card-btns .btn-ok[data-v-12619986]{background-color:#3e3c4d}\", \"\"]);\n                const a = r\n            },\n            21417: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \".main-code-view[data-v-35f836ea]{width:100%;height:calc(100% - 25px);position:fixed;top:25px;left:0px;display:flex;flex-direction:column;justify-content:space-between;z-index:100}.main-code-view .card[data-v-35f836ea]{width:calc(100% - 200px);height:calc(100% - 100px);border-radius:5px;position:absolute;top:50px;left:100px;overflow:hidden;box-shadow:0px 0px 10px rgba(0,0,0,.5)}.main-code-view .card .editor[data-v-35f836ea]{width:100%;height:calc(100% + 1px)}.main-code-view .card .error[data-v-35f836ea]{position:absolute;bottom:20px;left:50%;transform:translateX(-50%);box-shadow:0px 0px 10px rgba(0,0,0,.3);padding:10px 12px;border-radius:10px;background-color:#3d3d3d;display:flex;align-items:center}.main-code-view .card .error div[data-v-35f836ea]:first-child{color:#ff5252;font-weight:normal;font-size:14px;flex-shrink:1;white-space:pre-wrap}.main-code-view .card .error div[data-v-35f836ea]:last-child{height:26px;width:26px;padding:3px;flex-shrink:0}.main-code-view .card .error div[data-v-35f836ea]:last-child:hover{background-color:rgba(160,160,160,.534);border-radius:3px}.main-code-view .card .btns[data-v-35f836ea]{position:absolute;bottom:0px;right:0px;display:flex;z-index:100;color:#fff;margin-right:35px;margin-bottom:10px;font-size:14px}.main-code-view .card .btns div[data-v-35f836ea]{margin-left:10px;width:30px;height:30px;text-align:center;border-radius:3px;box-shadow:0px 0px 10px rgba(0,0,0,.2)}.main-code-view .card .btns div svg[data-v-35f836ea]{width:24px;height:24px;margin:3px;fill:#fff}.main-code-view .card .btns .abort-btn[data-v-35f836ea]{margin-bottom:10px;background-color:#ea4079}.main-code-view .card .btns .save-btn[data-v-35f836ea]{background-color:#41b883}\", \"\"]);\n                const a = r\n            },\n            57565: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \".main-diff-view[data-v-c878e8f6]{width:100%;height:calc(100% - 25px);position:fixed;top:25px;left:0px;display:flex;flex-direction:column;justify-content:space-between;z-index:100}.main-diff-view .card[data-v-c878e8f6]{width:calc(100% - 100px);height:calc(100% - 100px);border-radius:5px;position:absolute;top:50px;left:50px;overflow:hidden;box-shadow:0px 0px 10px rgba(0,0,0,.5)}.main-diff-view .card .editor[data-v-c878e8f6]{width:100%;height:calc(100% + 1px)}.main-diff-view .card .btns[data-v-c878e8f6]{position:absolute;bottom:0px;right:0px;display:flex;z-index:100;color:#fff;margin-right:50px;margin-bottom:10px;font-size:14px}.main-diff-view .card .btns div[data-v-c878e8f6]{margin-left:10px;width:30px;height:30px;text-align:center;border-radius:3px;box-shadow:0px 0px 10px rgba(0,0,0,.2)}.main-diff-view .card .btns div svg[data-v-c878e8f6]{width:24px;height:24px;margin:3px;fill:#fff}.main-diff-view .card .btns .abort-btn[data-v-c878e8f6]{margin-bottom:10px;background-color:#ea4079}.main-diff-view .card .btns .save-btn[data-v-c878e8f6]{background-color:#41b883}.main-diff-view .card .btns .change-btn-off[data-v-c878e8f6]{background-color:#797979}.main-diff-view .card .btns .change-btn-on[data-v-c878e8f6]{background-color:#41b883}\", \"\"]);\n                const a = r\n            },\n            14333: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \".main-dns-view[data-v-6e0989c7]{width:100%;height:calc(100% - 25px);position:fixed;top:25px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#000;z-index:1000;font-weight:normal}.main-dns-view *[data-v-6e0989c7]{user-select:text}.main-dns-view[data-v-6e0989c7] *{user-select:text}.card-main[data-v-6e0989c7]{border-radius:2px;min-width:450px;max-width:650px;width:fit-content;max-height:calc(100% - 40px)}.card-content[data-v-6e0989c7]{position:relative;display:flex;flex-direction:column;justify-content:space-around;transition:all .3s ease}.content-items[data-v-6e0989c7]{overflow-y:auto;overflow-x:hidden;max-height:360px}.content-items[data-v-6e0989c7]::-webkit-scrollbar{width:4px;background-color:rgba(151,151,151,0.4117647059)}.content-items[data-v-6e0989c7]::-webkit-scrollbar-thumb{background-color:#3e3c4d}.error-hint[data-v-6e0989c7]{font-size:.9em;color:red;margin:10px 20px 0 20px}.p[data-v-6e0989c7]{position:relative;margin-top:18px}.p span[data-v-6e0989c7]{position:absolute;top:-17px;left:4px;padding:0 6px;background-color:var(--bgc);margin-top:5px;color:var(--fgc);opacity:.8;font-size:14px}.p .c[data-v-6e0989c7]{border:1px solid var(--bc);padding:8px 8px 4px 8px;border-radius:3px;font-size:13px}\", \"\"]);\n                const a = r\n            },\n            4216: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \".main-input-view-plugin[data-v-15034054]{width:100%;height:calc(100% - 25px);position:fixed;top:25px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#000;z-index:1000}.card-main[data-v-15034054]{border-radius:2px;max-width:390px;max-height:calc(100% - 40px)}.card-content[data-v-15034054]{position:relative;display:flex;flex-direction:column;justify-content:space-around}.content-title[data-v-15034054]{margin:15px 20px 0 20px;font-size:1.2em;margin-bottom:15px}.content-hint[data-v-15034054]{font-size:.9em;margin:-5px 20px 5px 20px;color:#179bbb}.content-items[data-v-15034054]{border-top:1px solid rgba(128,128,128,.178);border-bottom:1px solid rgba(128,128,128,.178);overflow-y:auto;overflow-x:hidden;max-height:360px;padding:0 20px}.content-items[data-v-15034054]::-webkit-scrollbar{width:4px;background-color:rgba(151,151,151,0.4117647059)}.content-items[data-v-15034054]::-webkit-scrollbar-thumb{background-color:#3e3c4d}.content-item[data-v-15034054]{display:flex;margin:5px 0px 10px 0px;align-items:baseline;flex-direction:column;justify-content:space-between;height:fit-content}.item-key[data-v-15034054]{margin-bottom:5px;font-size:16px}.error-hint[data-v-15034054]{font-size:.9em;color:red;margin:10px 20px 0 20px}.card-btns[data-v-15034054]{margin-top:10px;margin-bottom:20px;display:flex;justify-content:space-around}.btn[data-v-15034054]{cursor:pointer;color:#fff;width:100px;height:40px;text-align:center;line-height:40px;border-radius:3px}.btn-cancel[data-v-15034054]{background-color:#676475}.btn-ok[data-v-15034054]{background-color:#3e3c4d}span[data-v-15034054]{color:red}textarea[data-v-15034054]{cursor:pointer;font-size:14px;outline:none;padding:10px 5px;width:350px;resize:none;font-family:inherit;max-height:200px;overflow-y:auto}\", \"\"]);\n                const a = r\n            },\n            80574: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \".main-menu-view-plugin[data-v-00ec68dc]{width:100%;height:calc(100% - 25px);position:fixed;top:25px;display:flex;flex-direction:column;align-items:center;justify-content:center;background-color:rgba(255,255,255,0);color:#000;z-index:100}.main-menu-view-plugin .card-main[data-v-00ec68dc]{border-radius:2px;background-color:#414141;display:flex;flex-direction:column;justify-content:space-around;width:fit-content}.main-menu-view-plugin .card-main .card-content[data-v-00ec68dc]{position:fixed;background-color:#4e4e4e;overflow-y:scroll;font-weight:normal;box-shadow:2px 2px 8px 2px rgba(0,0,0,.2);padding:5px 0;font-size:13px;border-radius:5px}.main-menu-view-plugin .card-main .card-content[data-v-00ec68dc]::-webkit-scrollbar{display:none}.main-menu-view-plugin .card-main .card-content .item[data-v-00ec68dc]{margin:2px 5px;padding:5px 10px;border-radius:3px;color:#fff;display:flex;align-items:center;justify-content:flex-start;min-width:150px}.main-menu-view-plugin .card-main .card-content .item[data-v-00ec68dc]:hover{background-color:#302a2a}.main-menu-view-plugin .card-main .card-content .item div[data-v-00ec68dc]{flex:1;white-space:nowrap}.main-menu-view-plugin .card-main .card-content .item-disabled[data-v-00ec68dc]{margin:2px 10px 5px 10px;padding:5px 5px;color:#d1d1d1;display:flex;align-items:center;justify-content:flex-start;min-width:150px;border-bottom:1px solid rgba(128,128,128,.514)}.main-menu-view-plugin .card-main .card-content .indicator[data-v-00ec68dc]{position:sticky;bottom:-5px;left:0;width:100%;height:30px;display:flex;align-items:center;justify-content:center}\", \"\"]);\n                const a = r\n            },\n            5424: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \".main-script-view[data-v-05227e49]{width:100%;height:calc(100% - 25px);position:fixed;top:25px;left:0px;display:flex;flex-direction:column;justify-content:space-between;z-index:100}.main-script-view .card[data-v-05227e49]{width:calc(100% - 200px);height:calc(100% - 100px);border-radius:5px;position:absolute;top:50px;left:100px;overflow:hidden;box-shadow:0px 0px 10px rgba(0,0,0,.5)}.main-script-view .card .metadata[data-v-05227e49]{width:100%;flex-grow:0}.main-script-view .card .metadata div[data-v-05227e49]{display:flex;align-items:center}.main-script-view .card .metadata div span[data-v-05227e49]{margin-right:10px}.main-script-view .card .metadata div input[data-v-05227e49]{flex-grow:1;outline:none;padding:2px 8px}.main-script-view .card .editor-code[data-v-05227e49]{width:100%;flex-grow:1}.main-script-view .card .error[data-v-05227e49]{position:absolute;bottom:20px;left:50%;transform:translateX(-50%);box-shadow:0px 0px 10px rgba(0,0,0,.3);padding:10px 12px;border-radius:10px;background-color:#3d3d3d;display:flex;align-items:center}.main-script-view .card .error div[data-v-05227e49]:first-child{color:#ff5252;font-weight:normal;font-size:14px;flex-shrink:1;white-space:pre-wrap}.main-script-view .card .error div[data-v-05227e49]:last-child{height:26px;width:26px;padding:3px;flex-shrink:0}.main-script-view .card .error div[data-v-05227e49]:last-child:hover{background-color:rgba(160,160,160,.534);border-radius:3px}.main-script-view .card .btns[data-v-05227e49]{position:absolute;bottom:0px;right:0px;display:flex;z-index:100;color:#fff;margin-right:35px;margin-bottom:10px;font-size:14px}.main-script-view .card .btns div[data-v-05227e49]{margin-left:10px;width:30px;height:30px;text-align:center;border-radius:3px;box-shadow:0px 0px 10px rgba(0,0,0,.2)}.main-script-view .card .btns div svg[data-v-05227e49]{width:24px;height:24px;margin:3px;fill:#fff}.main-script-view .card .btns .abort-btn[data-v-05227e49]{margin-bottom:10px;background-color:#ea4079}.main-script-view .card .btns .save-btn[data-v-05227e49]{background-color:#41b883}\", \"\"]);\n                const a = r\n            },\n            62608: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => a\n                });\n                var n = i(8081),\n                    o = i.n(n),\n                    s = i(23645),\n                    r = i.n(s)()(o());\n                r.push([e.id, \".main-select-view-plugin[data-v-0826c2c0]{width:100%;height:calc(100% - 25px);position:fixed;top:25px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#000;z-index:10}.main-select-view-plugin .card-main[data-v-0826c2c0]{border-radius:2px;display:flex;flex-direction:column;justify-content:space-around;width:50%}.main-select-view-plugin .card-main .card-content[data-v-0826c2c0]{padding:15px 20px}.main-select-view-plugin .card-main .card-content .content-title[data-v-0826c2c0]{font-size:1.2em;margin-bottom:10px}.main-select-view-plugin .card-main .card-content .content-message[data-v-0826c2c0]{margin:5px 0 10px 0;max-height:60vh;overflow-x:hidden;word-break:break-word;overflow-y:auto}.main-select-view-plugin .card-main .card-content .content-message[data-v-0826c2c0]::-webkit-scrollbar{width:16px}.main-select-view-plugin .card-main .card-content .content-message[data-v-0826c2c0]::-webkit-scrollbar-thumb{background-color:#cac8c6;border-radius:100px;border:3px solid var(--bgc)}.main-select-view-plugin .card-main .card-content .content-message[data-v-0826c2c0]::-webkit-scrollbar-corner{background-color:var(--bgc)}.main-select-view-plugin .card-main .card-content .check-list[data-v-0826c2c0]{display:flex;flex-direction:column;margin:5px 0 10px 0}.main-select-view-plugin .card-main .card-content .check-list .check-item[data-v-0826c2c0]{display:flex;align-items:center}.main-select-view-plugin .card-main .card-content .check-list .check-item .check-text[data-v-0826c2c0]{margin-left:5px}.main-select-view-plugin .card-main .card-content .btns[data-v-0826c2c0]{display:flex;justify-content:flex-start;flex-wrap:wrap}.main-select-view-plugin .card-main .card-content .btns .btn[data-v-0826c2c0]{border-radius:3px;text-align:center;height:35px;line-height:35px;flex-shrink:1;color:#fff;background-color:#3e3c4d;border-radius:5px;cursor:pointer;margin:5px 5px 5px 5px}.main-select-view-plugin .card-main .card-content .btns .btn *[data-v-0826c2c0]:hover{cursor:pointer}.main-select-view-plugin .card-main .card-content .btns .btn span[data-v-0826c2c0]{padding:0 10px}.main-select-view-plugin .card-main .card-content .btns .last-btn[data-v-0826c2c0]{background-color:#727070}.main-select-view-plugin .html-list[data-v-0826c2c0]{margin-bottom:12px}.main-select-view-plugin .html-list[data-v-0826c2c0] ul{max-height:60vh;overflow-y:auto;list-style-position:inside;list-style-type:disc}.main-select-view-plugin .html-list[data-v-0826c2c0] ul::-webkit-scrollbar{width:16px}.main-select-view-plugin .html-list[data-v-0826c2c0] ul::-webkit-scrollbar-thumb{background-color:#cac8c6;border-radius:100px;border:3px solid var(--bgc)}.main-select-view-plugin .html-list[data-v-0826c2c0] ul::-webkit-scrollbar-corner{background-color:var(--bgc)}.main-select-view-plugin .html-list[data-v-0826c2c0] ul code{background-color:var(--general-item-bgc);border-radius:3px;padding:0 4px;font-family:inherit}.main-select-view-plugin .html-list[data-v-0826c2c0] a{cursor:pointer;color:var(--feedback-link-c)}\", \"\"]);\n                const a = r\n            },\n            23645: e => {\n                \"use strict\";\n                e.exports = function(e) {\n                    var t = [];\n                    return t.toString = function() {\n                        return this.map((function(t) {\n                            var i = \"\",\n                                n = void 0 !== t[5];\n                            return t[4] && (i += \"@supports (\".concat(t[4], \") {\")), t[2] && (i += \"@media \".concat(t[2], \" {\")), n && (i += \"@layer\".concat(t[5].length > 0 ? \" \".concat(t[5]) : \"\", \" {\")), i += e(t), n && (i += \"}\"), t[2] && (i += \"}\"), t[4] && (i += \"}\"), i\n                        })).join(\"\")\n                    }, t.i = function(e, i, n, o, s) {\n                        \"string\" == typeof e && (e = [\n                            [null, e, void 0]\n                        ]);\n                        var r = {};\n                        if (n)\n                            for (var a = 0; a < this.length; a++) {\n                                var l = this[a][0];\n                                null != l && (r[l] = !0)\n                            }\n                        for (var c = 0; c < e.length; c++) {\n                            var d = [].concat(e[c]);\n                            n && r[d[0]] || (void 0 !== s && (void 0 === d[5] || (d[1] = \"@layer\".concat(d[5].length > 0 ? \" \".concat(d[5]) : \"\", \" {\").concat(d[1], \"}\")), d[5] = s), i && (d[2] ? (d[1] = \"@media \".concat(d[2], \" {\").concat(d[1], \"}\"), d[2] = i) : d[2] = i), o && (d[4] ? (d[1] = \"@supports (\".concat(d[4], \") {\").concat(d[1], \"}\"), d[4] = o) : d[4] = \"\".concat(o)), t.push(d))\n                        }\n                    }, t\n                }\n            },\n            61667: e => {\n                \"use strict\";\n                e.exports = function(e, t) {\n                    return t || (t = {}), e ? (e = String(e.__esModule ? e.default : e), /^['\"].*['\"]$/.test(e) && (e = e.slice(1, -1)), t.hash && (e += t.hash), /[\"'() \\t\\n]|(%20)/.test(e) || t.needQuotes ? '\"'.concat(e.replace(/\"/g, '\\\\\"').replace(/\\n/g, \"\\\\n\"), '\"') : e) : e\n                }\n            },\n            8081: e => {\n                \"use strict\";\n                e.exports = function(e) {\n                    return e[1]\n                }\n            },\n            58583: (e, t, i) => {\n                var n;\n                self.MonacoEnvironment = (n = {\n                    editorWorkerService: \"editor.worker.js\"\n                }, {\n                    globalAPI: !1,\n                    getWorkerUrl: function(e, t) {\n                        var o = i.p,\n                            s = (o ? o.replace(/\\/$/, \"\") + \"/\" : \"\") + n[t];\n                        if (/^((http:)|(https:)|(file:)|(\\/\\/))/.test(s)) {\n                            var r = String(window.location),\n                                a = r.substr(0, r.length - window.location.hash.length - window.location.search.length - window.location.pathname.length);\n                            if (s.substring(0, a.length) !== a) {\n                                /^(\\/\\/)/.test(s) && (s = window.location.protocol + s);\n                                var l = new Blob([\"/*\" + t + '*/importScripts(\"' + s + '\");'], {\n                                    type: \"application/javascript\"\n                                });\n                                return URL.createObjectURL(l)\n                            }\n                        }\n                        return s\n                    }\n                }), i(29477), i(17355), i(17084), i(84594), i(62015), i(9093), i(53832), i(77956), i(89098), i(76522), i(18728), i(42834), i(7441), i(81372), i(92142), i(62943), i(23111), i(44818), i(42698), i(62097), i(92729), i(10365), i(67247), i(19646), i(83554), i(80638), i(87586), i(43818), i(97830), i(42408), i(80674), i(34800), i(38486), i(40517), i(97720), i(78944), i(98936), i(45048), i(4454), i(81955), i(93379), i(88250), i(15662), i(19720), i(77847), i(31725), i(70185), i(43497), i(99453), i(60661), e.exports = i(86211), i(94199), i(43763), i(83187)\n            },\n            16268: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    $W: () => v,\n                    Dt: () => m,\n                    G6: () => p,\n                    MG: () => f,\n                    Pf: () => u,\n                    WP: () => r,\n                    fX: () => a,\n                    i7: () => g,\n                    ie: () => l,\n                    mX: () => c,\n                    px: () => s,\n                    vU: () => h\n                });\n                var n = i(4669);\n                class o {\n                    constructor() {\n                        this._zoomLevel = 0, this._lastZoomLevelChangeTime = 0, this._onDidChangeZoomLevel = new n.Q5, this.onDidChangeZoomLevel = this._onDidChangeZoomLevel.event, this._zoomFactor = 1\n                    }\n                    getZoomLevel() {\n                        return this._zoomLevel\n                    }\n                    getTimeSinceLastZoomLevelChanged() {\n                        return Date.now() - this._lastZoomLevelChangeTime\n                    }\n                    getZoomFactor() {\n                        return this._zoomFactor\n                    }\n                    getPixelRatio() {\n                        let e = document.createElement(\"canvas\").getContext(\"2d\");\n                        return (window.devicePixelRatio || 1) / (e.webkitBackingStorePixelRatio || e.mozBackingStorePixelRatio || e.msBackingStorePixelRatio || e.oBackingStorePixelRatio || e.backingStorePixelRatio || 1)\n                    }\n                }\n\n                function s() {\n                    return o.INSTANCE.getZoomLevel()\n                }\n\n                function r() {\n                    return o.INSTANCE.getTimeSinceLastZoomLevelChanged()\n                }\n\n                function a(e) {\n                    return o.INSTANCE.onDidChangeZoomLevel(e)\n                }\n\n                function l() {\n                    return o.INSTANCE.getZoomFactor()\n                }\n\n                function c() {\n                    return o.INSTANCE.getPixelRatio()\n                }\n                o.INSTANCE = new o;\n                const d = navigator.userAgent,\n                    h = d.indexOf(\"Firefox\") >= 0,\n                    u = d.indexOf(\"AppleWebKit\") >= 0,\n                    g = d.indexOf(\"Chrome\") >= 0,\n                    p = !g && d.indexOf(\"Safari\") >= 0,\n                    f = !g && !p && u,\n                    m = d.indexOf(\"Android\") >= 0,\n                    v = window.matchMedia && window.matchMedia(\"(display-mode: standalone)\").matches\n            },\n            10161: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    D: () => s\n                });\n                var n = i(16268),\n                    o = i(1432);\n                const s = {\n                    clipboard: {\n                        writeText: o.tY || document.queryCommandSupported && document.queryCommandSupported(\"copy\") || !!(navigator && navigator.clipboard && navigator.clipboard.writeText),\n                        readText: o.tY || !!(navigator && navigator.clipboard && navigator.clipboard.readText)\n                    },\n                    keyboard: o.tY || n.$W ? 0 : navigator.keyboard || n.G6 ? 1 : 2,\n                    touch: \"ontouchstart\" in window || navigator.maxTouchPoints > 0,\n                    pointerEvents: window.PointerEvent && (\"ontouchstart\" in window || window.navigator.maxTouchPoints > 0 || navigator.maxTouchPoints > 0)\n                }\n            },\n            23547: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    P$: () => s,\n                    TN: () => o,\n                    go: () => n\n                });\n                const n = {\n                    RESOURCES: \"ResourceURLs\",\n                    DOWNLOAD_URL: \"DownloadURL\",\n                    FILES: \"Files\",\n                    TEXT: i(81170).vW.text,\n                    TERMINALS: \"Terminals\"\n                };\n                class o {\n                    constructor(e) {\n                        this.data = e\n                    }\n                    update() {}\n                    getData() {\n                        return this.data\n                    }\n                }\n                const s = {\n                    CurrentDragAndDropData: void 0\n                }\n            },\n            65321: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    $: () => pe,\n                    $Z: () => fe,\n                    Ay: () => Z,\n                    Ce: () => ce,\n                    Cp: () => me,\n                    D6: () => M,\n                    DI: () => B,\n                    Dx: () => T,\n                    FK: () => W,\n                    Fx: () => U,\n                    Gw: () => b,\n                    H$: () => ve,\n                    If: () => H,\n                    Lo: () => w,\n                    OO: () => q,\n                    PO: () => g,\n                    R3: () => le,\n                    RE: () => x,\n                    Re: () => te,\n                    Ro: () => O,\n                    Uh: () => _e,\n                    Uw: () => p,\n                    V3: () => be,\n                    Y_: () => E,\n                    _0: () => se,\n                    _h: () => Ce,\n                    _q: () => xe,\n                    dS: () => Y,\n                    dp: () => R,\n                    fk: () => J,\n                    go: () => ae,\n                    i: () => F,\n                    jL: () => k,\n                    j_: () => C,\n                    jg: () => j,\n                    jt: () => we,\n                    lI: () => S,\n                    mc: () => de,\n                    mu: () => _,\n                    nm: () => m,\n                    qV: () => y,\n                    tw: () => ie,\n                    uB: () => Se,\n                    uN: () => ee,\n                    uU: () => $,\n                    vL: () => oe,\n                    vY: () => G,\n                    w: () => V,\n                    wY: () => ye,\n                    wn: () => z,\n                    xQ: () => P,\n                    zB: () => ne\n                });\n                var n = i(16268),\n                    o = i(10161),\n                    s = i(59069),\n                    r = i(23938),\n                    a = i(15393),\n                    l = i(17301),\n                    c = i(4669),\n                    d = i(5976),\n                    h = i(66663),\n                    u = i(1432);\n\n                function g(e) {\n                    for (; e.firstChild;) e.firstChild.remove()\n                }\n\n                function p(e) {\n                    var t;\n                    return null !== (t = null == e ? void 0 : e.isConnected) && void 0 !== t && t\n                }\n                class f {\n                    constructor(e, t, i, n) {\n                        this._node = e, this._type = t, this._handler = i, this._options = n || !1, this._node.addEventListener(this._type, this._handler, this._options)\n                    }\n                    dispose() {\n                        this._handler && (this._node.removeEventListener(this._type, this._handler, this._options), this._node = null, this._handler = null)\n                    }\n                }\n\n                function m(e, t, i, n) {\n                    return new f(e, t, i, n)\n                }\n\n                function v(e) {\n                    return function(t) {\n                        return e(new r.n(t))\n                    }\n                }\n                let _ = function(e, t, i, n) {\n                        let o = i;\n                        return \"click\" === t || \"mousedown\" === t ? o = v(i) : \"keydown\" !== t && \"keypress\" !== t && \"keyup\" !== t || (o = function(e) {\n                            return function(t) {\n                                return e(new s.y(t))\n                            }\n                        }(i)), m(e, t, o, n)\n                    },\n                    b = function(e, t, i) {\n                        return w(e, v(t), i)\n                    };\n\n                function w(e, t, i) {\n                    return m(e, u.gn && o.D.pointerEvents ? ie.POINTER_DOWN : ie.MOUSE_DOWN, t, i)\n                }\n\n                function y(e, t, i) {\n                    return m(e, u.gn && o.D.pointerEvents ? ie.POINTER_UP : ie.MOUSE_UP, t, i)\n                }\n\n                function C(e, t) {\n                    return m(e, \"mouseout\", (i => {\n                        let n = i.relatedTarget;\n                        for (; n && n !== e;) n = n.parentNode;\n                        n !== e && t(i)\n                    }))\n                }\n\n                function x(e, t) {\n                    return m(e, \"pointerout\", (i => {\n                        let n = i.relatedTarget;\n                        for (; n && n !== e;) n = n.parentNode;\n                        n !== e && t(i)\n                    }))\n                }\n                let S, k, L = null;\n                class N {\n                    constructor(e, t = 0) {\n                        this._runner = e, this.priority = t, this._canceled = !1\n                    }\n                    dispose() {\n                        this._canceled = !0\n                    }\n                    execute() {\n                        if (!this._canceled) try {\n                            this._runner()\n                        } catch (e) {\n                            (0, l.dL)(e)\n                        }\n                    }\n                    static sort(e, t) {\n                        return t.priority - e.priority\n                    }\n                }! function() {\n                    let e = [],\n                        t = null,\n                        i = !1,\n                        n = !1,\n                        o = () => {\n                            for (i = !1, t = e, e = [], n = !0; t.length > 0;) {\n                                t.sort(N.sort), t.shift().execute()\n                            }\n                            n = !1\n                        };\n                    k = (t, n = 0) => {\n                        let s = new N(t, n);\n                        return e.push(s), i || (i = !0, function(e) {\n                            if (!L) {\n                                const e = e => setTimeout((() => e((new Date).getTime())), 0);\n                                L = self.requestAnimationFrame || self.msRequestAnimationFrame || self.webkitRequestAnimationFrame || self.mozRequestAnimationFrame || self.oRequestAnimationFrame || e\n                            }\n                            L.call(self, e)\n                        }(o)), s\n                    }, S = (e, i) => {\n                        if (n) {\n                            let n = new N(e, i);\n                            return t.push(n), n\n                        }\n                        return k(e, i)\n                    }\n                }();\n                const D = function(e, t) {\n                    return t\n                };\n                class I extends d.JT {\n                    constructor(e, t, i, n = D, o = 8) {\n                        super();\n                        let s = null,\n                            r = 0,\n                            l = this._register(new a._F),\n                            c = () => {\n                                r = (new Date).getTime(), i(s), s = null\n                            };\n                        this._register(m(e, t, (e => {\n                            s = n(s, e);\n                            let t = (new Date).getTime() - r;\n                            t >= o ? (l.cancel(), c()) : l.setIfNotSet(c, o - t)\n                        })))\n                    }\n                }\n\n                function E(e, t, i, n, o) {\n                    return new I(e, t, i, n, o)\n                }\n\n                function T(e) {\n                    return document.defaultView.getComputedStyle(e, null)\n                }\n\n                function M(e) {\n                    if (e !== document.body) return new O(e.clientWidth, e.clientHeight);\n                    if (u.gn && window.visualViewport) return new O(window.visualViewport.width, window.visualViewport.height);\n                    if (window.innerWidth && window.innerHeight) return new O(window.innerWidth, window.innerHeight);\n                    if (document.body && document.body.clientWidth && document.body.clientHeight) return new O(document.body.clientWidth, document.body.clientHeight);\n                    if (document.documentElement && document.documentElement.clientWidth && document.documentElement.clientHeight) return new O(document.documentElement.clientWidth, document.documentElement.clientHeight);\n                    throw new Error(\"Unable to figure out browser width and height\")\n                }\n                class A {\n                    static convertToPixels(e, t) {\n                        return parseFloat(t) || 0\n                    }\n                    static getDimension(e, t, i) {\n                        let n = T(e),\n                            o = \"0\";\n                        return n && (o = n.getPropertyValue ? n.getPropertyValue(t) : n.getAttribute(i)), A.convertToPixels(e, o)\n                    }\n                    static getBorderLeftWidth(e) {\n                        return A.getDimension(e, \"border-left-width\", \"borderLeftWidth\")\n                    }\n                    static getBorderRightWidth(e) {\n                        return A.getDimension(e, \"border-right-width\", \"borderRightWidth\")\n                    }\n                    static getBorderTopWidth(e) {\n                        return A.getDimension(e, \"border-top-width\", \"borderTopWidth\")\n                    }\n                    static getBorderBottomWidth(e) {\n                        return A.getDimension(e, \"border-bottom-width\", \"borderBottomWidth\")\n                    }\n                    static getPaddingLeft(e) {\n                        return A.getDimension(e, \"padding-left\", \"paddingLeft\")\n                    }\n                    static getPaddingRight(e) {\n                        return A.getDimension(e, \"padding-right\", \"paddingRight\")\n                    }\n                    static getPaddingTop(e) {\n                        return A.getDimension(e, \"padding-top\", \"paddingTop\")\n                    }\n                    static getPaddingBottom(e) {\n                        return A.getDimension(e, \"padding-bottom\", \"paddingBottom\")\n                    }\n                    static getMarginLeft(e) {\n                        return A.getDimension(e, \"margin-left\", \"marginLeft\")\n                    }\n                    static getMarginTop(e) {\n                        return A.getDimension(e, \"margin-top\", \"marginTop\")\n                    }\n                    static getMarginRight(e) {\n                        return A.getDimension(e, \"margin-right\", \"marginRight\")\n                    }\n                    static getMarginBottom(e) {\n                        return A.getDimension(e, \"margin-bottom\", \"marginBottom\")\n                    }\n                }\n                class O {\n                    constructor(e, t) {\n                        this.width = e, this.height = t\n                    }\n                    with(e = this.width, t = this.height) {\n                        return e !== this.width || t !== this.height ? new O(e, t) : this\n                    }\n                    static is(e) {\n                        return \"object\" == typeof e && \"number\" == typeof e.height && \"number\" == typeof e.width\n                    }\n                    static lift(e) {\n                        return e instanceof O ? e : new O(e.width, e.height)\n                    }\n                    static equals(e, t) {\n                        return e === t || !(!e || !t) && (e.width === t.width && e.height === t.height)\n                    }\n                }\n\n                function P(e) {\n                    let t = e.offsetParent,\n                        i = e.offsetTop,\n                        n = e.offsetLeft;\n                    for (; null !== (e = e.parentNode) && e !== document.body && e !== document.documentElement;) {\n                        i -= e.scrollTop;\n                        const o = K(e) ? null : T(e);\n                        o && (n -= \"rtl\" !== o.direction ? e.scrollLeft : -e.scrollLeft), e === t && (n += A.getBorderLeftWidth(e), i += A.getBorderTopWidth(e), i += e.offsetTop, n += e.offsetLeft, t = e.offsetParent)\n                    }\n                    return {\n                        left: n,\n                        top: i\n                    }\n                }\n\n                function R(e, t, i) {\n                    \"number\" == typeof t && (e.style.width = `${t}px`), \"number\" == typeof i && (e.style.height = `${i}px`)\n                }\n\n                function F(e) {\n                    let t = e.getBoundingClientRect();\n                    return {\n                        left: t.left + B.scrollX,\n                        top: t.top + B.scrollY,\n                        width: t.width,\n                        height: t.height\n                    }\n                }\n                const B = new class {\n                    get scrollX() {\n                        return \"number\" == typeof window.scrollX ? window.scrollX : document.body.scrollLeft + document.documentElement.scrollLeft\n                    }\n                    get scrollY() {\n                        return \"number\" == typeof window.scrollY ? window.scrollY : document.body.scrollTop + document.documentElement.scrollTop\n                    }\n                };\n\n                function V(e) {\n                    let t = A.getMarginLeft(e) + A.getMarginRight(e);\n                    return e.offsetWidth + t\n                }\n\n                function W(e) {\n                    let t = A.getBorderLeftWidth(e) + A.getBorderRightWidth(e),\n                        i = A.getPaddingLeft(e) + A.getPaddingRight(e);\n                    return e.offsetWidth - t - i\n                }\n\n                function H(e) {\n                    let t = A.getBorderTopWidth(e) + A.getBorderBottomWidth(e),\n                        i = A.getPaddingTop(e) + A.getPaddingBottom(e);\n                    return e.offsetHeight - t - i\n                }\n\n                function z(e) {\n                    let t = A.getMarginTop(e) + A.getMarginBottom(e);\n                    return e.offsetHeight + t\n                }\n\n                function j(e, t) {\n                    for (; e;) {\n                        if (e === t) return !0;\n                        e = e.parentNode\n                    }\n                    return !1\n                }\n\n                function U(e, t, i) {\n                    for (; e && e.nodeType === e.ELEMENT_NODE;) {\n                        if (e.classList.contains(t)) return e;\n                        if (i)\n                            if (\"string\" == typeof i) {\n                                if (e.classList.contains(i)) return null\n                            } else if (e === i) return null;\n                        e = e.parentNode\n                    }\n                    return null\n                }\n\n                function $(e, t, i) {\n                    return !!U(e, t, i)\n                }\n\n                function K(e) {\n                    return e && !!e.host && !!e.mode\n                }\n\n                function q(e) {\n                    return !!Z(e)\n                }\n\n                function Z(e) {\n                    for (; e.parentNode;) {\n                        if (e === document.body) return null;\n                        e = e.parentNode\n                    }\n                    return K(e) ? e : null\n                }\n\n                function G() {\n                    let e = document.activeElement;\n                    for (; null == e ? void 0 : e.shadowRoot;) e = e.shadowRoot.activeElement;\n                    return e\n                }\n\n                function Y(e = document.getElementsByTagName(\"head\")[0]) {\n                    let t = document.createElement(\"style\");\n                    return t.type = \"text/css\", t.media = \"screen\", e.appendChild(t), t\n                }\n                let Q = null;\n\n                function X() {\n                    return Q || (Q = Y()), Q\n                }\n\n                function J(e, t, i = X()) {\n                    i && t && i.sheet.insertRule(e + \"{\" + t + \"}\", 0)\n                }\n\n                function ee(e, t = X()) {\n                    if (!t) return;\n                    let i = function(e) {\n                            var t, i;\n                            return (null === (t = null == e ? void 0 : e.sheet) || void 0 === t ? void 0 : t.rules) ? e.sheet.rules : (null === (i = null == e ? void 0 : e.sheet) || void 0 === i ? void 0 : i.cssRules) ? e.sheet.cssRules : []\n                        }(t),\n                        n = [];\n                    for (let t = 0; t < i.length; t++) {\n                        -1 !== i[t].selectorText.indexOf(e) && n.push(t)\n                    }\n                    for (let e = n.length - 1; e >= 0; e--) t.sheet.deleteRule(n[e])\n                }\n\n                function te(e) {\n                    return \"object\" == typeof HTMLElement ? e instanceof HTMLElement : e && \"object\" == typeof e && 1 === e.nodeType && \"string\" == typeof e.nodeName\n                }\n                const ie = {\n                        CLICK: \"click\",\n                        AUXCLICK: \"auxclick\",\n                        DBLCLICK: \"dblclick\",\n                        MOUSE_UP: \"mouseup\",\n                        MOUSE_DOWN: \"mousedown\",\n                        MOUSE_OVER: \"mouseover\",\n                        MOUSE_MOVE: \"mousemove\",\n                        MOUSE_OUT: \"mouseout\",\n                        MOUSE_ENTER: \"mouseenter\",\n                        MOUSE_LEAVE: \"mouseleave\",\n                        MOUSE_WHEEL: \"wheel\",\n                        POINTER_UP: \"pointerup\",\n                        POINTER_DOWN: \"pointerdown\",\n                        POINTER_MOVE: \"pointermove\",\n                        CONTEXT_MENU: \"contextmenu\",\n                        WHEEL: \"wheel\",\n                        KEY_DOWN: \"keydown\",\n                        KEY_PRESS: \"keypress\",\n                        KEY_UP: \"keyup\",\n                        LOAD: \"load\",\n                        BEFORE_UNLOAD: \"beforeunload\",\n                        UNLOAD: \"unload\",\n                        ABORT: \"abort\",\n                        ERROR: \"error\",\n                        RESIZE: \"resize\",\n                        SCROLL: \"scroll\",\n                        FULLSCREEN_CHANGE: \"fullscreenchange\",\n                        WK_FULLSCREEN_CHANGE: \"webkitfullscreenchange\",\n                        SELECT: \"select\",\n                        CHANGE: \"change\",\n                        SUBMIT: \"submit\",\n                        RESET: \"reset\",\n                        FOCUS: \"focus\",\n                        FOCUS_IN: \"focusin\",\n                        FOCUS_OUT: \"focusout\",\n                        BLUR: \"blur\",\n                        INPUT: \"input\",\n                        STORAGE: \"storage\",\n                        DRAG_START: \"dragstart\",\n                        DRAG: \"drag\",\n                        DRAG_ENTER: \"dragenter\",\n                        DRAG_LEAVE: \"dragleave\",\n                        DRAG_OVER: \"dragover\",\n                        DROP: \"drop\",\n                        DRAG_END: \"dragend\",\n                        ANIMATION_START: n.Pf ? \"webkitAnimationStart\" : \"animationstart\",\n                        ANIMATION_END: n.Pf ? \"webkitAnimationEnd\" : \"animationend\",\n                        ANIMATION_ITERATION: n.Pf ? \"webkitAnimationIteration\" : \"animationiteration\"\n                    },\n                    ne = {\n                        stop: function(e, t) {\n                            e.preventDefault ? e.preventDefault() : e.returnValue = !1, t && (e.stopPropagation ? e.stopPropagation() : e.cancelBubble = !0)\n                        }\n                    };\n\n                function oe(e) {\n                    let t = [];\n                    for (let i = 0; e && e.nodeType === e.ELEMENT_NODE; i++) t[i] = e.scrollTop, e = e.parentNode;\n                    return t\n                }\n\n                function se(e, t) {\n                    for (let i = 0; e && e.nodeType === e.ELEMENT_NODE; i++) e.scrollTop !== t[i] && (e.scrollTop = t[i]), e = e.parentNode\n                }\n                class re extends d.JT {\n                    constructor(e) {\n                        super(), this._onDidFocus = this._register(new c.Q5), this.onDidFocus = this._onDidFocus.event, this._onDidBlur = this._register(new c.Q5), this.onDidBlur = this._onDidBlur.event;\n                        let t = j(document.activeElement, e),\n                            i = !1;\n                        const n = () => {\n                                i = !1, t || (t = !0, this._onDidFocus.fire())\n                            },\n                            o = () => {\n                                t && (i = !0, window.setTimeout((() => {\n                                    i && (i = !1, t = !1, this._onDidBlur.fire())\n                                }), 0))\n                            };\n                        this._refreshStateHandler = () => {\n                            j(document.activeElement, e) !== t && (t ? o() : n())\n                        }, this._register(m(e, ie.FOCUS, n, !0)), this._register(m(e, ie.BLUR, o, !0))\n                    }\n                }\n\n                function ae(e) {\n                    return new re(e)\n                }\n\n                function le(e, ...t) {\n                    if (e.append(...t), 1 === t.length && \"string\" != typeof t[0]) return t[0]\n                }\n\n                function ce(e, t) {\n                    return e.insertBefore(t, e.firstChild), t\n                }\n\n                function de(e, ...t) {\n                    e.innerText = \"\", le(e, ...t)\n                }\n                const he = /([\\w\\-]+)?(#([\\w\\-]+))?((\\.([\\w\\-]+))*)/;\n                var ue;\n\n                function ge(e, t, i, ...n) {\n                    let o = he.exec(t);\n                    if (!o) throw new Error(\"Bad use of emmet\");\n                    i = Object.assign({}, i || {});\n                    let s, r = o[1] || \"div\";\n                    return s = e !== ue.HTML ? document.createElementNS(e, r) : document.createElement(r), o[3] && (s.id = o[3]), o[4] && (s.className = o[4].replace(/\\./g, \" \").trim()), Object.keys(i).forEach((e => {\n                        const t = i[e];\n                        void 0 !== t && (/^on\\w+$/.test(e) ? s[e] = t : \"selected\" === e ? t && s.setAttribute(e, \"true\") : s.setAttribute(e, t))\n                    })), s.append(...n), s\n                }\n\n                function pe(e, t, ...i) {\n                    return ge(ue.HTML, e, t, ...i)\n                }\n\n                function fe(...e) {\n                    for (let t of e) t.style.display = \"\", t.removeAttribute(\"aria-hidden\")\n                }\n\n                function me(...e) {\n                    for (let t of e) t.style.display = \"none\", t.setAttribute(\"aria-hidden\", \"true\")\n                }\n\n                function ve(e) {\n                    return Array.prototype.slice.call(document.getElementsByTagName(e), 0)\n                }\n\n                function _e(e) {\n                    const t = window.devicePixelRatio * e;\n                    return Math.max(1, Math.floor(t)) / window.devicePixelRatio\n                }\n\n                function be(e) {\n                    window.open(e, \"_blank\", \"noopener\")\n                }\n\n                function we(e) {\n                    const t = () => {\n                        e(), i = k(t)\n                    };\n                    let i = k(t);\n                    return (0, d.OF)((() => i.dispose()))\n                }\n\n                function ye(e) {\n                    return e ? `url('${h.Gi.asBrowserUri(e).toString(!0).replace(/'/g,\"%27\")}')` : \"url('')\"\n                }\n\n                function Ce(e) {\n                    return `'${e.replace(/'/g,\"%27\")}'`\n                }! function(e) {\n                    e.HTML = \"https://www.w3.org/1999/xhtml\", e.SVG = \"https://www.w3.org/2000/svg\"\n                }(ue || (ue = {})), pe.SVG = function(e, t, ...i) {\n                    return ge(ue.SVG, e, t, ...i)\n                }, h.WX.setPreferredWebSchema(/^https:/.test(window.location.href) ? \"https\" : \"http\");\n                class xe extends c.Q5 {\n                    constructor() {\n                        super(), this._subscriptions = new d.SL, this._keyStatus = {\n                            altKey: !1,\n                            shiftKey: !1,\n                            ctrlKey: !1,\n                            metaKey: !1\n                        }, this._subscriptions.add(m(window, \"keydown\", (e => {\n                            if (e.defaultPrevented) return;\n                            const t = new s.y(e);\n                            if (6 !== t.keyCode || !e.repeat) {\n                                if (e.altKey && !this._keyStatus.altKey) this._keyStatus.lastKeyPressed = \"alt\";\n                                else if (e.ctrlKey && !this._keyStatus.ctrlKey) this._keyStatus.lastKeyPressed = \"ctrl\";\n                                else if (e.metaKey && !this._keyStatus.metaKey) this._keyStatus.lastKeyPressed = \"meta\";\n                                else if (e.shiftKey && !this._keyStatus.shiftKey) this._keyStatus.lastKeyPressed = \"shift\";\n                                else {\n                                    if (6 === t.keyCode) return;\n                                    this._keyStatus.lastKeyPressed = void 0\n                                }\n                                this._keyStatus.altKey = e.altKey, this._keyStatus.ctrlKey = e.ctrlKey, this._keyStatus.metaKey = e.metaKey, this._keyStatus.shiftKey = e.shiftKey, this._keyStatus.lastKeyPressed && (this._keyStatus.event = e, this.fire(this._keyStatus))\n                            }\n                        }), !0)), this._subscriptions.add(m(window, \"keyup\", (e => {\n                            e.defaultPrevented || (!e.altKey && this._keyStatus.altKey ? this._keyStatus.lastKeyReleased = \"alt\" : !e.ctrlKey && this._keyStatus.ctrlKey ? this._keyStatus.lastKeyReleased = \"ctrl\" : !e.metaKey && this._keyStatus.metaKey ? this._keyStatus.lastKeyReleased = \"meta\" : !e.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 = e.altKey, this._keyStatus.ctrlKey = e.ctrlKey, this._keyStatus.metaKey = e.metaKey, this._keyStatus.shiftKey = e.shiftKey, this._keyStatus.lastKeyReleased && (this._keyStatus.event = e, this.fire(this._keyStatus)))\n                        }), !0)), this._subscriptions.add(m(document.body, \"mousedown\", (() => {\n                            this._keyStatus.lastKeyPressed = void 0\n                        }), !0)), this._subscriptions.add(m(document.body, \"mouseup\", (() => {\n                            this._keyStatus.lastKeyPressed = void 0\n                        }), !0)), this._subscriptions.add(m(document.body, \"mousemove\", (e => {\n                            e.buttons && (this._keyStatus.lastKeyPressed = void 0)\n                        }), !0)), this._subscriptions.add(m(window, \"blur\", (() => {\n                            this.resetKeyStatus()\n                        })))\n                    }\n                    get keyStatus() {\n                        return this._keyStatus\n                    }\n                    resetKeyStatus() {\n                        this.doResetKeyStatus(), this.fire(this._keyStatus)\n                    }\n                    doResetKeyStatus() {\n                        this._keyStatus = {\n                            altKey: !1,\n                            shiftKey: !1,\n                            ctrlKey: !1,\n                            metaKey: !1\n                        }\n                    }\n                    static getInstance() {\n                        return xe.instance || (xe.instance = new xe), xe.instance\n                    }\n                    dispose() {\n                        super.dispose(), this._subscriptions.dispose()\n                    }\n                }\n\n                function Se(e, t) {\n                    const i = window.matchMedia(e);\n                    \"function\" == typeof i.addEventListener ? i.addEventListener(\"change\", t) : i.addListener(t)\n                }\n            },\n            4850: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    Y: () => o,\n                    p: () => s\n                });\n                var n = i(4669);\n                class o {\n                    constructor(e, t, i) {\n                        const o = e => this.emitter.fire(e);\n                        this.emitter = new n.Q5({\n                            onFirstListenerAdd: () => e.addEventListener(t, o, i),\n                            onLastListenerRemove: () => e.removeEventListener(t, o, i)\n                        })\n                    }\n                    get event() {\n                        return this.emitter.event\n                    }\n                    dispose() {\n                        this.emitter.dispose()\n                    }\n                }\n\n                function s(e) {\n                    return e.preventDefault(), e.stopPropagation(), e\n                }\n            },\n            38626: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    X: () => o,\n                    Z: () => n\n                });\n                class n {\n                    constructor(e) {\n                        this.domNode = e, this._maxWidth = -1, this._width = -1, this._height = -1, this._top = -1, this._left = -1, this._bottom = -1, this._right = -1, this._fontFamily = \"\", this._fontWeight = \"\", this._fontSize = -1, this._fontFeatureSettings = \"\", this._lineHeight = -1, this._letterSpacing = -100, this._className = \"\", this._display = \"\", this._position = \"\", this._visibility = \"\", this._backgroundColor = \"\", this._layerHint = !1, this._contain = \"none\", this._boxShadow = \"\"\n                    }\n                    setMaxWidth(e) {\n                        this._maxWidth !== e && (this._maxWidth = e, this.domNode.style.maxWidth = this._maxWidth + \"px\")\n                    }\n                    setWidth(e) {\n                        this._width !== e && (this._width = e, this.domNode.style.width = this._width + \"px\")\n                    }\n                    setHeight(e) {\n                        this._height !== e && (this._height = e, this.domNode.style.height = this._height + \"px\")\n                    }\n                    setTop(e) {\n                        this._top !== e && (this._top = e, this.domNode.style.top = this._top + \"px\")\n                    }\n                    unsetTop() {\n                        -1 !== this._top && (this._top = -1, this.domNode.style.top = \"\")\n                    }\n                    setLeft(e) {\n                        this._left !== e && (this._left = e, this.domNode.style.left = this._left + \"px\")\n                    }\n                    setBottom(e) {\n                        this._bottom !== e && (this._bottom = e, this.domNode.style.bottom = this._bottom + \"px\")\n                    }\n                    setRight(e) {\n                        this._right !== e && (this._right = e, this.domNode.style.right = this._right + \"px\")\n                    }\n                    setFontFamily(e) {\n                        this._fontFamily !== e && (this._fontFamily = e, this.domNode.style.fontFamily = this._fontFamily)\n                    }\n                    setFontWeight(e) {\n                        this._fontWeight !== e && (this._fontWeight = e, this.domNode.style.fontWeight = this._fontWeight)\n                    }\n                    setFontSize(e) {\n                        this._fontSize !== e && (this._fontSize = e, this.domNode.style.fontSize = this._fontSize + \"px\")\n                    }\n                    setFontFeatureSettings(e) {\n                        this._fontFeatureSettings !== e && (this._fontFeatureSettings = e, this.domNode.style.fontFeatureSettings = this._fontFeatureSettings)\n                    }\n                    setLineHeight(e) {\n                        this._lineHeight !== e && (this._lineHeight = e, this.domNode.style.lineHeight = this._lineHeight + \"px\")\n                    }\n                    setLetterSpacing(e) {\n                        this._letterSpacing !== e && (this._letterSpacing = e, this.domNode.style.letterSpacing = this._letterSpacing + \"px\")\n                    }\n                    setClassName(e) {\n                        this._className !== e && (this._className = e, this.domNode.className = this._className)\n                    }\n                    toggleClassName(e, t) {\n                        this.domNode.classList.toggle(e, t), this._className = this.domNode.className\n                    }\n                    setDisplay(e) {\n                        this._display !== e && (this._display = e, this.domNode.style.display = this._display)\n                    }\n                    setPosition(e) {\n                        this._position !== e && (this._position = e, this.domNode.style.position = this._position)\n                    }\n                    setVisibility(e) {\n                        this._visibility !== e && (this._visibility = e, this.domNode.style.visibility = this._visibility)\n                    }\n                    setBackgroundColor(e) {\n                        this._backgroundColor !== e && (this._backgroundColor = e, this.domNode.style.backgroundColor = this._backgroundColor)\n                    }\n                    setLayerHinting(e) {\n                        this._layerHint !== e && (this._layerHint = e, this.domNode.style.transform = this._layerHint ? \"translate3d(0px, 0px, 0px)\" : \"\")\n                    }\n                    setBoxShadow(e) {\n                        this._boxShadow !== e && (this._boxShadow = e, this.domNode.style.boxShadow = e)\n                    }\n                    setContain(e) {\n                        this._contain !== e && (this._contain = e, this.domNode.style.contain = this._contain)\n                    }\n                    setAttribute(e, t) {\n                        this.domNode.setAttribute(e, t)\n                    }\n                    removeAttribute(e) {\n                        this.domNode.removeAttribute(e)\n                    }\n                    appendChild(e) {\n                        this.domNode.appendChild(e.domNode)\n                    }\n                    removeChild(e) {\n                        this.domNode.removeChild(e.domNode)\n                    }\n                }\n\n                function o(e) {\n                    return new n(e)\n                }\n            },\n            48764: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    BO: () => s,\n                    IY: () => o,\n                    az: () => r\n                });\n                var n = i(65321);\n\n                function o(e, t = {}) {\n                    const i = r(t);\n                    return i.textContent = e, i\n                }\n\n                function s(e, t = {}) {\n                    const i = r(t);\n                    return l(i, function(e, t) {\n                        const i = {\n                            type: 1,\n                            children: []\n                        };\n                        let n = 0,\n                            o = i;\n                        const s = [],\n                            r = new a(e);\n                        for (; !r.eos();) {\n                            let e = r.next();\n                            const i = \"\\\\\" === e && 0 !== d(r.peek(), t);\n                            if (i && (e = r.next()), !i && c(e, t) && e === r.peek()) {\n                                r.advance(), 2 === o.type && (o = s.pop());\n                                const i = d(e, t);\n                                if (o.type === i || 5 === o.type && 6 === i) o = s.pop();\n                                else {\n                                    const e = {\n                                        type: i,\n                                        children: []\n                                    };\n                                    5 === i && (e.index = n, n++), o.children.push(e), s.push(o), o = e\n                                }\n                            } else if (\"\\n\" === e) 2 === o.type && (o = s.pop()), o.children.push({\n                                type: 8\n                            });\n                            else if (2 !== o.type) {\n                                const t = {\n                                    type: 2,\n                                    content: e\n                                };\n                                o.children.push(t), s.push(o), o = t\n                            } else o.content += e\n                        }\n                        2 === o.type && (o = s.pop());\n                        s.length;\n                        return i\n                    }(e, !!t.renderCodeSegments), t.actionHandler, t.renderCodeSegments), i\n                }\n\n                function r(e) {\n                    const t = e.inline ? \"span\" : \"div\",\n                        i = document.createElement(t);\n                    return e.className && (i.className = e.className), i\n                }\n                class a {\n                    constructor(e) {\n                        this.source = e, this.index = 0\n                    }\n                    eos() {\n                        return this.index >= this.source.length\n                    }\n                    next() {\n                        const e = this.peek();\n                        return this.advance(), e\n                    }\n                    peek() {\n                        return this.source[this.index]\n                    }\n                    advance() {\n                        this.index++\n                    }\n                }\n\n                function l(e, t, i, o) {\n                    let s;\n                    if (2 === t.type) s = document.createTextNode(t.content || \"\");\n                    else if (3 === t.type) s = document.createElement(\"b\");\n                    else if (4 === t.type) s = document.createElement(\"i\");\n                    else if (7 === t.type && o) s = document.createElement(\"code\");\n                    else if (5 === t.type && i) {\n                        const e = document.createElement(\"a\");\n                        e.href = \"#\", i.disposables.add(n.mu(e, \"click\", (e => {\n                            i.callback(String(t.index), e)\n                        }))), s = e\n                    } else 8 === t.type ? s = document.createElement(\"br\") : 1 === t.type && (s = e);\n                    s && e !== s && e.appendChild(s), s && Array.isArray(t.children) && t.children.forEach((e => {\n                        l(s, e, i, o)\n                    }))\n                }\n\n                function c(e, t) {\n                    return 0 !== d(e, t)\n                }\n\n                function d(e, t) {\n                    switch (e) {\n                        case \"*\":\n                            return 3;\n                        case \"_\":\n                            return 4;\n                        case \"[\":\n                            return 5;\n                        case \"]\":\n                            return 6;\n                        case \"`\":\n                            return t ? 7 : 0;\n                        default:\n                            return 0\n                    }\n                }\n            },\n            57974: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    Z: () => c,\n                    e: () => l\n                });\n                var n = i(65321),\n                    o = i(70262),\n                    s = i(23938),\n                    r = i(5976),\n                    a = i(1432);\n\n                function l(e, t) {\n                    let i = new s.n(t);\n                    return i.preventDefault(), {\n                        leftButton: i.leftButton,\n                        buttons: i.buttons,\n                        posx: i.posx,\n                        posy: i.posy\n                    }\n                }\n                class c {\n                    constructor() {\n                        this._hooks = new r.SL, this._mouseMoveEventMerger = null, this._mouseMoveCallback = null, this._onStopCallback = null\n                    }\n                    dispose() {\n                        this.stopMonitoring(!1), this._hooks.dispose()\n                    }\n                    stopMonitoring(e, t) {\n                        if (!this.isMonitoring()) return;\n                        this._hooks.clear(), this._mouseMoveEventMerger = null, this._mouseMoveCallback = null;\n                        const i = this._onStopCallback;\n                        this._onStopCallback = null, e && i && i(t)\n                    }\n                    isMonitoring() {\n                        return !!this._mouseMoveEventMerger\n                    }\n                    startMonitoring(e, t, i, r, l) {\n                        if (this.isMonitoring()) return;\n                        this._mouseMoveEventMerger = i, this._mouseMoveCallback = r, this._onStopCallback = l;\n                        const c = o.E.getSameOriginWindowChain(),\n                            d = a.gn ? \"pointermove\" : \"mousemove\",\n                            h = c.map((e => e.window.document)),\n                            u = n.Ay(e);\n                        u && h.unshift(u);\n                        for (const e of h) this._hooks.add(n.Y_(e, d, (e => {\n                            e.buttons === t ? this._mouseMoveCallback(e) : this.stopMonitoring(!0)\n                        }), ((e, t) => this._mouseMoveEventMerger(e, t)))), this._hooks.add(n.nm(e, \"mouseup\", (e => this.stopMonitoring(!0))));\n                        if (o.E.hasDifferentOriginAncestor()) {\n                            let e = c[c.length - 1];\n                            this._hooks.add(n.nm(e.window.document, \"mouseout\", (e => {\n                                \"html\" === new s.n(e).target.tagName.toLowerCase() && this.stopMonitoring(!0)\n                            }))), this._hooks.add(n.nm(e.window.document, \"mouseover\", (e => {\n                                \"html\" === new s.n(e).target.tagName.toLowerCase() && this.stopMonitoring(!0)\n                            }))), this._hooks.add(n.nm(e.window.document.body, \"mouseleave\", (e => {\n                                this.stopMonitoring(!0)\n                            })))\n                        }\n                    }\n                }\n            },\n            70262: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    E: () => r\n                });\n                let n = !1,\n                    o = null;\n\n                function s(e) {\n                    if (!e.parent || e.parent === e) return null;\n                    try {\n                        let t = e.location,\n                            i = e.parent.location;\n                        if (\"null\" !== t.origin && \"null\" !== i.origin && t.origin !== i.origin) return n = !0, null\n                    } catch (e) {\n                        return n = !0, null\n                    }\n                    return e.parent\n                }\n                class r {\n                    static getSameOriginWindowChain() {\n                        if (!o) {\n                            o = [];\n                            let e, t = window;\n                            do {\n                                e = s(t), e ? o.push({\n                                    window: t,\n                                    iframeElement: t.frameElement || null\n                                }) : o.push({\n                                    window: t,\n                                    iframeElement: null\n                                }), t = e\n                            } while (t)\n                        }\n                        return o.slice(0)\n                    }\n                    static hasDifferentOriginAncestor() {\n                        return o || this.getSameOriginWindowChain(), n\n                    }\n                    static getPositionOfChildWindowRelativeToAncestorWindow(e, t) {\n                        if (!t || e === t) return {\n                            top: 0,\n                            left: 0\n                        };\n                        let i = 0,\n                            n = 0,\n                            o = this.getSameOriginWindowChain();\n                        for (const e of o) {\n                            if (i += e.window.scrollY, n += e.window.scrollX, e.window === t) break;\n                            if (!e.iframeElement) break;\n                            let o = e.iframeElement.getBoundingClientRect();\n                            i += o.top, n += o.left\n                        }\n                        return {\n                            top: i,\n                            left: n\n                        }\n                    }\n                }\n            },\n            59069: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    y: () => c\n                });\n                var n = i(16268),\n                    o = i(22258),\n                    s = i(8313),\n                    r = i(1432);\n                const a = r.dz ? 256 : 2048,\n                    l = r.dz ? 2048 : 256;\n                class c {\n                    constructor(e) {\n                        this._standardKeyboardEventBrand = !0;\n                        let t = e;\n                        this.browserEvent = t, this.target = t.target, this.ctrlKey = t.ctrlKey, this.shiftKey = t.shiftKey, this.altKey = t.altKey, this.metaKey = t.metaKey, this.keyCode = function(e) {\n                            if (e.charCode) {\n                                let t = String.fromCharCode(e.charCode).toUpperCase();\n                                return o.kL.fromString(t)\n                            }\n                            const t = e.keyCode;\n                            if (3 === t) return 7;\n                            if (n.vU) {\n                                if (59 === t) return 80;\n                                if (107 === t) return 81;\n                                if (109 === t) return 83;\n                                if (r.dz && 224 === t) return 57\n                            } else if (n.Pf) {\n                                if (91 === t) return 57;\n                                if (r.dz && 93 === t) return 57;\n                                if (!r.dz && 92 === t) return 57\n                            }\n                            return o.H_[t] || 0\n                        }(t), this.code = t.code, this.ctrlKey = this.ctrlKey || 5 === this.keyCode, this.altKey = this.altKey || 6 === this.keyCode, this.shiftKey = this.shiftKey || 4 === this.keyCode, this.metaKey = this.metaKey || 57 === this.keyCode, this._asKeybinding = this._computeKeybinding(), this._asRuntimeKeybinding = this._computeRuntimeKeybinding()\n                    }\n                    preventDefault() {\n                        this.browserEvent && this.browserEvent.preventDefault && this.browserEvent.preventDefault()\n                    }\n                    stopPropagation() {\n                        this.browserEvent && this.browserEvent.stopPropagation && this.browserEvent.stopPropagation()\n                    }\n                    toKeybinding() {\n                        return this._asRuntimeKeybinding\n                    }\n                    equals(e) {\n                        return this._asKeybinding === e\n                    }\n                    _computeKeybinding() {\n                        let e = 0;\n                        5 !== this.keyCode && 4 !== this.keyCode && 6 !== this.keyCode && 57 !== this.keyCode && (e = this.keyCode);\n                        let t = 0;\n                        return this.ctrlKey && (t |= a), this.altKey && (t |= 512), this.shiftKey && (t |= 1024), this.metaKey && (t |= l), t |= e, t\n                    }\n                    _computeRuntimeKeybinding() {\n                        let e = 0;\n                        return 5 !== this.keyCode && 4 !== this.keyCode && 6 !== this.keyCode && 57 !== this.keyCode && (e = this.keyCode), new s.QC(this.ctrlKey, this.shiftKey, this.altKey, this.metaKey, e)\n                    }\n                }\n            },\n            23938: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    n: () => r,\n                    q: () => a\n                });\n                var n = i(16268),\n                    o = i(70262),\n                    s = i(1432);\n                class r {\n                    constructor(e) {\n                        this.timestamp = Date.now(), this.browserEvent = e, this.leftButton = 0 === e.button, this.middleButton = 1 === e.button, this.rightButton = 2 === e.button, this.buttons = e.buttons, this.target = e.target, this.detail = e.detail || 1, \"dblclick\" === e.type && (this.detail = 2), this.ctrlKey = e.ctrlKey, this.shiftKey = e.shiftKey, this.altKey = e.altKey, this.metaKey = e.metaKey, \"number\" == typeof e.pageX ? (this.posx = e.pageX, this.posy = e.pageY) : (this.posx = e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft, this.posy = e.clientY + document.body.scrollTop + document.documentElement.scrollTop);\n                        let t = o.E.getPositionOfChildWindowRelativeToAncestorWindow(self, e.view);\n                        this.posx -= t.left, this.posy -= t.top\n                    }\n                    preventDefault() {\n                        this.browserEvent.preventDefault()\n                    }\n                    stopPropagation() {\n                        this.browserEvent.stopPropagation()\n                    }\n                }\n                class a {\n                    constructor(e, t = 0, i = 0) {\n                        if (this.browserEvent = e || null, this.target = e ? e.target || e.targetNode || e.srcElement : null, this.deltaY = i, this.deltaX = t, e) {\n                            let t = e,\n                                i = e;\n                            if (void 0 !== t.wheelDeltaY) this.deltaY = t.wheelDeltaY / 120;\n                            else if (void 0 !== i.VERTICAL_AXIS && i.axis === i.VERTICAL_AXIS) this.deltaY = -i.detail / 3;\n                            else if (\"wheel\" === e.type) {\n                                const t = e;\n                                t.deltaMode === t.DOM_DELTA_LINE ? n.vU && !s.dz ? this.deltaY = -e.deltaY / 3 : this.deltaY = -e.deltaY : this.deltaY = -e.deltaY / 40\n                            }\n                            if (void 0 !== t.wheelDeltaX) n.G6 && s.ED ? this.deltaX = -t.wheelDeltaX / 120 : this.deltaX = t.wheelDeltaX / 120;\n                            else if (void 0 !== i.HORIZONTAL_AXIS && i.axis === i.HORIZONTAL_AXIS) this.deltaX = -e.detail / 3;\n                            else if (\"wheel\" === e.type) {\n                                const t = e;\n                                t.deltaMode === t.DOM_DELTA_LINE ? n.vU && !s.dz ? this.deltaX = -e.deltaX / 3 : this.deltaX = -e.deltaX : this.deltaX = -e.deltaX / 40\n                            }\n                            0 === this.deltaY && 0 === this.deltaX && e.wheelDelta && (this.deltaY = e.wheelDelta / 120)\n                        }\n                    }\n                    preventDefault() {\n                        this.browserEvent && this.browserEvent.preventDefault()\n                    }\n                    stopPropagation() {\n                        this.browserEvent && this.browserEvent.stopPropagation()\n                    }\n                }\n            },\n            10553: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    o: () => c,\n                    t: () => n\n                });\n                var n, o = i(65321),\n                    s = i(9488),\n                    r = i(49898),\n                    a = i(5976),\n                    l = function(e, t, i, n) {\n                        var o, s = arguments.length,\n                            r = s < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n                        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) r = Reflect.decorate(e, t, i, n);\n                        else\n                            for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (r = (s < 3 ? o(r) : s > 3 ? o(t, i, r) : o(t, i)) || r);\n                        return s > 3 && r && Object.defineProperty(t, i, r), r\n                    };\n                ! function(e) {\n                    e.Tap = \"-monaco-gesturetap\", e.Change = \"-monaco-gesturechange\", e.Start = \"-monaco-gesturestart\", e.End = \"-monaco-gesturesend\", e.Contextmenu = \"-monaco-gesturecontextmenu\"\n                }(n || (n = {}));\n                class c extends a.JT {\n                    constructor() {\n                        super(), this.dispatched = !1, this.activeTouches = {}, this.handle = null, this.targets = [], this.ignoreTargets = [], this._lastSetTapCountTime = 0, this._register(o.nm(document, \"touchstart\", (e => this.onTouchStart(e)), {\n                            passive: !1\n                        })), this._register(o.nm(document, \"touchend\", (e => this.onTouchEnd(e)))), this._register(o.nm(document, \"touchmove\", (e => this.onTouchMove(e)), {\n                            passive: !1\n                        }))\n                    }\n                    static addTarget(e) {\n                        return c.isTouchDevice() ? (c.INSTANCE || (c.INSTANCE = new c), c.INSTANCE.targets.push(e), {\n                            dispose: () => {\n                                c.INSTANCE.targets = c.INSTANCE.targets.filter((t => t !== e))\n                            }\n                        }) : a.JT.None\n                    }\n                    static ignoreTarget(e) {\n                        return c.isTouchDevice() ? (c.INSTANCE || (c.INSTANCE = new c), c.INSTANCE.ignoreTargets.push(e), {\n                            dispose: () => {\n                                c.INSTANCE.ignoreTargets = c.INSTANCE.ignoreTargets.filter((t => t !== e))\n                            }\n                        }) : a.JT.None\n                    }\n                    static isTouchDevice() {\n                        return \"ontouchstart\" in window || navigator.maxTouchPoints > 0\n                    }\n                    dispose() {\n                        this.handle && (this.handle.dispose(), this.handle = null), super.dispose()\n                    }\n                    onTouchStart(e) {\n                        let t = Date.now();\n                        this.handle && (this.handle.dispose(), this.handle = null);\n                        for (let i = 0, o = e.targetTouches.length; i < o; i++) {\n                            let o = e.targetTouches.item(i);\n                            this.activeTouches[o.identifier] = {\n                                id: o.identifier,\n                                initialTarget: o.target,\n                                initialTimeStamp: t,\n                                initialPageX: o.pageX,\n                                initialPageY: o.pageY,\n                                rollingTimestamps: [t],\n                                rollingPageX: [o.pageX],\n                                rollingPageY: [o.pageY]\n                            };\n                            let s = this.newGestureEvent(n.Start, o.target);\n                            s.pageX = o.pageX, s.pageY = o.pageY, this.dispatchEvent(s)\n                        }\n                        this.dispatched && (e.preventDefault(), e.stopPropagation(), this.dispatched = !1)\n                    }\n                    onTouchEnd(e) {\n                        let t = Date.now(),\n                            i = Object.keys(this.activeTouches).length;\n                        for (let o = 0, r = e.changedTouches.length; o < r; o++) {\n                            let r = e.changedTouches.item(o);\n                            if (!this.activeTouches.hasOwnProperty(String(r.identifier))) {\n                                console.warn(\"move of an UNKNOWN touch\", r);\n                                continue\n                            }\n                            let a = this.activeTouches[r.identifier],\n                                l = Date.now() - a.initialTimeStamp;\n                            if (l < c.HOLD_DELAY && Math.abs(a.initialPageX - s.Gb(a.rollingPageX)) < 30 && Math.abs(a.initialPageY - s.Gb(a.rollingPageY)) < 30) {\n                                let e = this.newGestureEvent(n.Tap, a.initialTarget);\n                                e.pageX = s.Gb(a.rollingPageX), e.pageY = s.Gb(a.rollingPageY), this.dispatchEvent(e)\n                            } else if (l >= c.HOLD_DELAY && Math.abs(a.initialPageX - s.Gb(a.rollingPageX)) < 30 && Math.abs(a.initialPageY - s.Gb(a.rollingPageY)) < 30) {\n                                let e = this.newGestureEvent(n.Contextmenu, a.initialTarget);\n                                e.pageX = s.Gb(a.rollingPageX), e.pageY = s.Gb(a.rollingPageY), this.dispatchEvent(e)\n                            } else if (1 === i) {\n                                let e = s.Gb(a.rollingPageX),\n                                    i = s.Gb(a.rollingPageY),\n                                    n = s.Gb(a.rollingTimestamps) - a.rollingTimestamps[0],\n                                    o = e - a.rollingPageX[0],\n                                    r = i - a.rollingPageY[0];\n                                const l = this.targets.filter((e => a.initialTarget instanceof Node && e.contains(a.initialTarget)));\n                                this.inertia(l, t, Math.abs(o) / n, o > 0 ? 1 : -1, e, Math.abs(r) / n, r > 0 ? 1 : -1, i)\n                            }\n                            this.dispatchEvent(this.newGestureEvent(n.End, a.initialTarget)), delete this.activeTouches[r.identifier]\n                        }\n                        this.dispatched && (e.preventDefault(), e.stopPropagation(), this.dispatched = !1)\n                    }\n                    newGestureEvent(e, t) {\n                        let i = document.createEvent(\"CustomEvent\");\n                        return i.initEvent(e, !1, !0), i.initialTarget = t, i.tapCount = 0, i\n                    }\n                    dispatchEvent(e) {\n                        if (e.type === n.Tap) {\n                            const t = (new Date).getTime();\n                            let i = 0;\n                            i = t - this._lastSetTapCountTime > c.CLEAR_TAP_COUNT_TIME ? 1 : 2, this._lastSetTapCountTime = t, e.tapCount = i\n                        } else e.type !== n.Change && e.type !== n.Contextmenu || (this._lastSetTapCountTime = 0);\n                        for (let t = 0; t < this.ignoreTargets.length; t++)\n                            if (e.initialTarget instanceof Node && this.ignoreTargets[t].contains(e.initialTarget)) return;\n                        this.targets.forEach((t => {\n                            e.initialTarget instanceof Node && t.contains(e.initialTarget) && (t.dispatchEvent(e), this.dispatched = !0)\n                        }))\n                    }\n                    inertia(e, t, i, s, r, a, l, d) {\n                        this.handle = o.jL((() => {\n                            let o = Date.now(),\n                                h = o - t,\n                                u = 0,\n                                g = 0,\n                                p = !0;\n                            i += c.SCROLL_FRICTION * h, a += c.SCROLL_FRICTION * h, i > 0 && (p = !1, u = s * i * h), a > 0 && (p = !1, g = l * a * h);\n                            let f = this.newGestureEvent(n.Change);\n                            f.translationX = u, f.translationY = g, e.forEach((e => e.dispatchEvent(f))), p || this.inertia(e, o, i, s, r + u, a, l, d + g)\n                        }))\n                    }\n                    onTouchMove(e) {\n                        let t = Date.now();\n                        for (let i = 0, o = e.changedTouches.length; i < o; i++) {\n                            let o = e.changedTouches.item(i);\n                            if (!this.activeTouches.hasOwnProperty(String(o.identifier))) {\n                                console.warn(\"end of an UNKNOWN touch\", o);\n                                continue\n                            }\n                            let r = this.activeTouches[o.identifier],\n                                a = this.newGestureEvent(n.Change, r.initialTarget);\n                            a.translationX = o.pageX - s.Gb(r.rollingPageX), a.translationY = o.pageY - s.Gb(r.rollingPageY), a.pageX = o.pageX, a.pageY = o.pageY, this.dispatchEvent(a), r.rollingPageX.length > 3 && (r.rollingPageX.shift(), r.rollingPageY.shift(), r.rollingTimestamps.shift()), r.rollingPageX.push(o.pageX), r.rollingPageY.push(o.pageY), r.rollingTimestamps.push(t)\n                        }\n                        this.dispatched && (e.preventDefault(), e.stopPropagation(), this.dispatched = !1)\n                    }\n                }\n                c.SCROLL_FRICTION = -.005, c.HOLD_DELAY = 700, c.CLEAR_TAP_COUNT_TIME = 400, l([r.H], c, \"isTouchDevice\", null)\n            },\n            76033: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    Y: () => u,\n                    g: () => g\n                });\n                var n = i(16268),\n                    o = i(23547),\n                    s = i(65321),\n                    r = i(10553),\n                    a = i(74741),\n                    l = i(5976),\n                    c = i(1432),\n                    d = i(98401),\n                    h = (i(82016), i(63580));\n                class u extends l.JT {\n                    constructor(e, t, i = {}) {\n                        super(), this.options = i, this._context = e || this, this._action = t, t instanceof a.aU && this._register(t.onDidChange((e => {\n                            this.element && this.handleActionChangeEvent(e)\n                        })))\n                    }\n                    handleActionChangeEvent(e) {\n                        void 0 !== e.enabled && this.updateEnabled(), void 0 !== e.checked && this.updateChecked(), void 0 !== e.class && this.updateClass(), void 0 !== e.label && (this.updateLabel(), this.updateTooltip()), void 0 !== e.tooltip && this.updateTooltip()\n                    }\n                    get actionRunner() {\n                        return this._actionRunner || (this._actionRunner = this._register(new a.Wi)), this._actionRunner\n                    }\n                    set actionRunner(e) {\n                        this._actionRunner = e\n                    }\n                    getAction() {\n                        return this._action\n                    }\n                    isEnabled() {\n                        return this._action.enabled\n                    }\n                    setActionContext(e) {\n                        this._context = e\n                    }\n                    render(e) {\n                        const t = this.element = e;\n                        this._register(r.o.addTarget(e));\n                        const i = this.options && this.options.draggable;\n                        i && (e.draggable = !0, n.vU && this._register((0, s.nm)(e, s.tw.DRAG_START, (e => {\n                            var t;\n                            return null === (t = e.dataTransfer) || void 0 === t ? void 0 : t.setData(o.go.TEXT, this._action.label)\n                        })))), this._register((0, s.nm)(t, r.t.Tap, (e => this.onClick(e, !0)))), this._register((0, s.nm)(t, s.tw.MOUSE_DOWN, (e => {\n                            i || s.zB.stop(e, !0), this._action.enabled && 0 === e.button && t.classList.add(\"active\")\n                        }))), c.dz && this._register((0, s.nm)(t, s.tw.CONTEXT_MENU, (e => {\n                            0 === e.button && !0 === e.ctrlKey && this.onClick(e)\n                        }))), this._register((0, s.nm)(t, s.tw.CLICK, (e => {\n                            s.zB.stop(e, !0), this.options && this.options.isMenu || this.onClick(e)\n                        }))), this._register((0, s.nm)(t, s.tw.DBLCLICK, (e => {\n                            s.zB.stop(e, !0)\n                        }))), [s.tw.MOUSE_UP, s.tw.MOUSE_OUT].forEach((e => {\n                            this._register((0, s.nm)(t, e, (e => {\n                                s.zB.stop(e), t.classList.remove(\"active\")\n                            })))\n                        }))\n                    }\n                    onClick(e, t = !1) {\n                        var i;\n                        s.zB.stop(e, !0);\n                        const n = d.Jp(this._context) ? (null === (i = this.options) || void 0 === i ? void 0 : i.useEventAsContext) ? e : {\n                            preserveFocus: t\n                        } : this._context;\n                        this.actionRunner.run(this._action, n)\n                    }\n                    focus() {\n                        this.element && (this.element.tabIndex = 0, this.element.focus(), this.element.classList.add(\"focused\"))\n                    }\n                    blur() {\n                        this.element && (this.element.blur(), this.element.tabIndex = -1, this.element.classList.remove(\"focused\"))\n                    }\n                    setFocusable(e) {\n                        this.element && (this.element.tabIndex = e ? 0 : -1)\n                    }\n                    get trapsArrowNavigation() {\n                        return !1\n                    }\n                    updateEnabled() {}\n                    updateLabel() {}\n                    updateTooltip() {}\n                    updateClass() {}\n                    updateChecked() {}\n                    dispose() {\n                        this.element && (this.element.remove(), this.element = void 0), super.dispose()\n                    }\n                }\n                class g extends u {\n                    constructor(e, t, i = {}) {\n                        super(e, t, i), this.options = i, this.options.icon = void 0 !== i.icon && i.icon, this.options.label = void 0 === i.label || i.label, this.cssClass = \"\"\n                    }\n                    render(e) {\n                        super.render(e), this.element && (this.label = (0, s.R3)(this.element, (0, s.$)(\"a.action-label\"))), this.label && (this._action.id === a.Z0.ID ? this.label.setAttribute(\"role\", \"presentation\") : this.options.isMenu ? this.label.setAttribute(\"role\", \"menuitem\") : this.label.setAttribute(\"role\", \"button\")), this.options.label && this.options.keybinding && this.element && ((0, s.R3)(this.element, (0, s.$)(\"span.keybinding\")).textContent = this.options.keybinding), this.updateClass(), this.updateLabel(), this.updateTooltip(), this.updateEnabled(), this.updateChecked()\n                    }\n                    focus() {\n                        this.label && (this.label.tabIndex = 0, this.label.focus())\n                    }\n                    blur() {\n                        this.label && (this.label.tabIndex = -1)\n                    }\n                    setFocusable(e) {\n                        this.label && (this.label.tabIndex = e ? 0 : -1)\n                    }\n                    updateLabel() {\n                        this.options.label && this.label && (this.label.textContent = this.getAction().label)\n                    }\n                    updateTooltip() {\n                        let e = null;\n                        this.getAction().tooltip ? e = this.getAction().tooltip : !this.options.label && this.getAction().label && this.options.icon && (e = this.getAction().label, this.options.keybinding && (e = h.N({\n                            key: \"titleLabel\",\n                            comment: [\"action title\", \"action keybinding\"]\n                        }, \"{0} ({1})\", e, this.options.keybinding))), e && this.label && (this.label.title = e)\n                    }\n                    updateClass() {\n                        this.cssClass && this.label && this.label.classList.remove(...this.cssClass.split(\" \")), this.options.icon ? (this.cssClass = this.getAction().class, this.label && (this.label.classList.add(\"codicon\"), this.cssClass && this.label.classList.add(...this.cssClass.split(\" \"))), this.updateEnabled()) : this.label && this.label.classList.remove(\"codicon\")\n                    }\n                    updateEnabled() {\n                        this.getAction().enabled ? (this.label && (this.label.removeAttribute(\"aria-disabled\"), this.label.classList.remove(\"disabled\")), this.element && this.element.classList.remove(\"disabled\")) : (this.label && (this.label.setAttribute(\"aria-disabled\", \"true\"), this.label.classList.add(\"disabled\")), this.element && this.element.classList.add(\"disabled\"))\n                    }\n                    updateChecked() {\n                        this.label && (this.getAction().checked ? this.label.classList.add(\"checked\") : this.label.classList.remove(\"checked\"))\n                    }\n                }\n            },\n            90317: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    o: () => h\n                });\n                var n = i(65321),\n                    o = i(59069),\n                    s = i(76033),\n                    r = i(74741),\n                    a = i(4669),\n                    l = i(5976),\n                    c = i(98401),\n                    d = (i(82016), function(e, t, i, n) {\n                        return new(i || (i = Promise))((function(o, s) {\n                            function r(e) {\n                                try {\n                                    l(n.next(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function a(e) {\n                                try {\n                                    l(n.throw(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function l(e) {\n                                var t;\n                                e.done ? o(e.value) : (t = e.value, t instanceof i ? t : new i((function(e) {\n                                    e(t)\n                                }))).then(r, a)\n                            }\n                            l((n = n.apply(e, t || [])).next())\n                        }))\n                    });\n                class h extends l.JT {\n                    constructor(e, t = {}) {\n                        var i, l, c, d, h, u;\n                        let g, p;\n                        switch (super(), this.triggerKeyDown = !1, this.focusable = !0, this._onDidBlur = this._register(new a.Q5), this.onDidBlur = this._onDidBlur.event, this._onDidCancel = this._register(new a.Q5({\n                            onFirstListenerAdd: () => this.cancelHasListener = !0\n                        })), this.onDidCancel = this._onDidCancel.event, this.cancelHasListener = !1, this._onDidRun = this._register(new a.Q5), this.onDidRun = this._onDidRun.event, this._onBeforeRun = this._register(new a.Q5), this.onBeforeRun = this._onBeforeRun.event, this.options = t, this._context = null !== (i = t.context) && void 0 !== i ? i : null, this._orientation = null !== (l = this.options.orientation) && void 0 !== l ? l : 0, this._triggerKeys = {\n                            keyDown: null !== (d = null === (c = this.options.triggerKeys) || void 0 === c ? void 0 : c.keyDown) && void 0 !== d && d,\n                            keys: null !== (u = null === (h = this.options.triggerKeys) || void 0 === h ? void 0 : h.keys) && void 0 !== u ? u : [3, 10]\n                        }, this.options.actionRunner ? this._actionRunner = this.options.actionRunner : (this._actionRunner = new r.Wi, this._register(this._actionRunner)), this._register(this._actionRunner.onDidRun((e => this._onDidRun.fire(e)))), this._register(this._actionRunner.onBeforeRun((e => this._onBeforeRun.fire(e)))), this._actionIds = [], this.viewItems = [], this.focusedItem = void 0, this.domNode = document.createElement(\"div\"), this.domNode.className = \"monaco-action-bar\", !1 !== t.animated && this.domNode.classList.add(\"animated\"), this._orientation) {\n                            case 0:\n                                g = [15], p = [17];\n                                break;\n                            case 1:\n                                g = [16], p = [18], this.domNode.className += \" vertical\"\n                        }\n                        this._register(n.nm(this.domNode, n.tw.KEY_DOWN, (e => {\n                            const t = new o.y(e);\n                            let i = !0;\n                            const n = \"number\" == typeof this.focusedItem ? this.viewItems[this.focusedItem] : void 0;\n                            g && (t.equals(g[0]) || t.equals(g[1])) ? i = this.focusPrevious() : p && (t.equals(p[0]) || t.equals(p[1])) ? i = this.focusNext() : t.equals(9) && this.cancelHasListener ? this._onDidCancel.fire() : t.equals(14) ? i = this.focusFirst() : t.equals(13) ? i = this.focusLast() : t.equals(2) && n instanceof s.Y && n.trapsArrowNavigation ? i = this.focusNext() : this.isTriggerKeyEvent(t) ? this._triggerKeys.keyDown ? this.doTrigger(t) : this.triggerKeyDown = !0 : i = !1, i && (t.preventDefault(), t.stopPropagation())\n                        }))), this._register(n.nm(this.domNode, n.tw.KEY_UP, (e => {\n                            const t = new o.y(e);\n                            this.isTriggerKeyEvent(t) ? (!this._triggerKeys.keyDown && this.triggerKeyDown && (this.triggerKeyDown = !1, this.doTrigger(t)), t.preventDefault(), t.stopPropagation()) : (t.equals(2) || t.equals(1026)) && this.updateFocusedItem()\n                        }))), this.focusTracker = this._register(n.go(this.domNode)), this._register(this.focusTracker.onDidBlur((() => {\n                            n.vY() !== this.domNode && n.jg(n.vY(), this.domNode) || (this._onDidBlur.fire(), this.focusedItem = void 0, this.triggerKeyDown = !1)\n                        }))), this._register(this.focusTracker.onDidFocus((() => this.updateFocusedItem()))), this.actionsList = document.createElement(\"ul\"), this.actionsList.className = \"actions-container\", this.actionsList.setAttribute(\"role\", \"toolbar\"), this.options.ariaLabel && this.actionsList.setAttribute(\"aria-label\", this.options.ariaLabel), this.domNode.appendChild(this.actionsList), e.appendChild(this.domNode)\n                    }\n                    isTriggerKeyEvent(e) {\n                        let t = !1;\n                        return this._triggerKeys.keys.forEach((i => {\n                            t = t || e.equals(i)\n                        })), t\n                    }\n                    updateFocusedItem() {\n                        for (let e = 0; e < this.actionsList.children.length; e++) {\n                            const t = this.actionsList.children[e];\n                            if (n.jg(n.vY(), t)) {\n                                this.focusedItem = e;\n                                break\n                            }\n                        }\n                    }\n                    get context() {\n                        return this._context\n                    }\n                    set context(e) {\n                        this._context = e, this.viewItems.forEach((t => t.setActionContext(e)))\n                    }\n                    get actionRunner() {\n                        return this._actionRunner\n                    }\n                    set actionRunner(e) {\n                        e && (this._actionRunner = e, this.viewItems.forEach((t => t.actionRunner = e)))\n                    }\n                    getContainer() {\n                        return this.domNode\n                    }\n                    push(e, t = {}) {\n                        const i = Array.isArray(e) ? e : [e];\n                        let o = c.hj(t.index) ? t.index : null;\n                        i.forEach((e => {\n                            const i = document.createElement(\"li\");\n                            let r;\n                            i.className = \"action-item\", i.setAttribute(\"role\", \"presentation\"), this.options.allowContextMenu || this._register(n.nm(i, n.tw.CONTEXT_MENU, (e => {\n                                n.zB.stop(e, !0)\n                            }))), this.options.actionViewItemProvider && (r = this.options.actionViewItemProvider(e)), r || (r = new s.g(this.context, e, t)), r.actionRunner = this._actionRunner, r.setActionContext(this.context), r.render(i), this.focusable && r instanceof s.Y && 0 === this.viewItems.length && r.setFocusable(!0), null === o || o < 0 || o >= this.actionsList.children.length ? (this.actionsList.appendChild(i), this.viewItems.push(r), this._actionIds.push(e.id)) : (this.actionsList.insertBefore(i, this.actionsList.children[o]), this.viewItems.splice(o, 0, r), this._actionIds.splice(o, 0, e.id), o++)\n                        })), \"number\" == typeof this.focusedItem && this.focus(this.focusedItem)\n                    }\n                    clear() {\n                        (0, l.B9)(this.viewItems), this.viewItems = [], this._actionIds = [], n.PO(this.actionsList)\n                    }\n                    length() {\n                        return this.viewItems.length\n                    }\n                    focus(e) {\n                        let t, i = !1;\n                        if (void 0 === e ? i = !0 : \"number\" == typeof e ? t = e : \"boolean\" == typeof e && (i = e), i && void 0 === this.focusedItem) {\n                            const e = this.viewItems.findIndex((e => e.isEnabled()));\n                            this.focusedItem = -1 === e ? void 0 : e, this.updateFocus()\n                        } else void 0 !== t && (this.focusedItem = t), this.updateFocus()\n                    }\n                    focusFirst() {\n                        return this.focusedItem = this.length() > 1 ? 1 : 0, this.focusPrevious()\n                    }\n                    focusLast() {\n                        return this.focusedItem = this.length() < 2 ? 0 : this.length() - 2, this.focusNext()\n                    }\n                    focusNext() {\n                        if (void 0 === this.focusedItem) this.focusedItem = this.viewItems.length - 1;\n                        else if (this.viewItems.length <= 1) return !1;\n                        const e = this.focusedItem;\n                        let t;\n                        do {\n                            if (this.options.preventLoopNavigation && this.focusedItem + 1 >= this.viewItems.length) return this.focusedItem = e, !1;\n                            this.focusedItem = (this.focusedItem + 1) % this.viewItems.length, t = this.viewItems[this.focusedItem]\n                        } while (this.focusedItem !== e && this.options.focusOnlyEnabledItems && !t.isEnabled());\n                        return this.updateFocus(), !0\n                    }\n                    focusPrevious() {\n                        if (void 0 === this.focusedItem) this.focusedItem = 0;\n                        else if (this.viewItems.length <= 1) return !1;\n                        const e = this.focusedItem;\n                        let t;\n                        do {\n                            if (this.focusedItem = this.focusedItem - 1, this.focusedItem < 0) {\n                                if (this.options.preventLoopNavigation) return this.focusedItem = e, !1;\n                                this.focusedItem = this.viewItems.length - 1\n                            }\n                            t = this.viewItems[this.focusedItem]\n                        } while (this.focusedItem !== e && this.options.focusOnlyEnabledItems && !t.isEnabled());\n                        return this.updateFocus(!0), !0\n                    }\n                    updateFocus(e, t) {\n                        void 0 === this.focusedItem && this.actionsList.focus({\n                            preventScroll: t\n                        });\n                        for (let i = 0; i < this.viewItems.length; i++) {\n                            const n = this.viewItems[i],\n                                o = n;\n                            if (i === this.focusedItem) {\n                                let i = !0;\n                                c.mf(o.focus) || (i = !1), this.options.focusOnlyEnabledItems && c.mf(n.isEnabled) && !n.isEnabled() && (i = !1), i ? o.focus(e) : this.actionsList.focus({\n                                    preventScroll: t\n                                })\n                            } else c.mf(o.blur) && o.blur()\n                        }\n                    }\n                    doTrigger(e) {\n                        if (void 0 === this.focusedItem) return;\n                        const t = this.viewItems[this.focusedItem];\n                        if (t instanceof s.Y) {\n                            const i = null === t._context || void 0 === t._context ? e : t._context;\n                            this.run(t._action, i)\n                        }\n                    }\n                    run(e, t) {\n                        return d(this, void 0, void 0, (function*() {\n                            yield this._actionRunner.run(e, t)\n                        }))\n                    }\n                    dispose() {\n                        (0, l.B9)(this.viewItems), this.viewItems = [], this._actionIds = [], this.getContainer().remove(), super.dispose()\n                    }\n                }\n            },\n            85152: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    Z9: () => u,\n                    i7: () => g,\n                    wW: () => h\n                });\n                var n = i(65321),\n                    o = i(1432);\n                i(56130);\n                const s = 2e4;\n                let r, a, l, c, d;\n\n                function h(e) {\n                    r = document.createElement(\"div\"), r.className = \"monaco-aria-container\";\n                    const t = () => {\n                        const e = document.createElement(\"div\");\n                        return e.className = \"monaco-alert\", e.setAttribute(\"role\", \"alert\"), e.setAttribute(\"aria-atomic\", \"true\"), r.appendChild(e), e\n                    };\n                    a = t(), l = t();\n                    const i = () => {\n                        const e = document.createElement(\"div\");\n                        return e.className = \"monaco-status\", e.setAttribute(\"role\", \"complementary\"), e.setAttribute(\"aria-live\", \"polite\"), e.setAttribute(\"aria-atomic\", \"true\"), r.appendChild(e), e\n                    };\n                    c = i(), d = i(), e.appendChild(r)\n                }\n\n                function u(e) {\n                    r && (a.textContent !== e ? (n.PO(l), p(a, e)) : (n.PO(a), p(l, e)))\n                }\n\n                function g(e) {\n                    r && (o.dz ? u(e) : c.textContent !== e ? (n.PO(d), p(c, e)) : (n.PO(c), p(d, e)))\n                }\n\n                function p(e, t) {\n                    n.PO(e), t.length > s && (t = t.substr(0, s)), e.textContent = t, e.style.visibility = \"hidden\", e.style.visibility = \"visible\"\n                }\n            },\n            28609: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    a: () => o\n                });\n                var n = i(73046);\n                i(93998), i(36709);\n\n                function o(e) {\n                    let t = e.definition;\n                    for (; t instanceof n.lA;) t = t.definition;\n                    return `.codicon-${e.id}:before { content: '${t.fontCharacter}'; }`\n                }\n            },\n            67488: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    Z: () => l\n                });\n                var n = i(65321),\n                    o = i(41264),\n                    s = i(36248),\n                    r = i(97295);\n                i(74965);\n                const a = {\n                    badgeBackground: o.Il.fromHex(\"#4D4D4D\"),\n                    badgeForeground: o.Il.fromHex(\"#FFFFFF\")\n                };\n                class l {\n                    constructor(e, t) {\n                        this.count = 0, this.options = t || Object.create(null), (0, s.jB)(this.options, a, !1), this.badgeBackground = this.options.badgeBackground, this.badgeForeground = this.options.badgeForeground, this.badgeBorder = this.options.badgeBorder, this.element = (0, n.R3)(e, (0, n.$)(\".monaco-count-badge\")), this.countFormat = this.options.countFormat || \"{0}\", this.titleFormat = this.options.titleFormat || \"\", this.setCount(this.options.count || 0)\n                    }\n                    setCount(e) {\n                        this.count = e, this.render()\n                    }\n                    setTitleFormat(e) {\n                        this.titleFormat = e, this.render()\n                    }\n                    render() {\n                        this.element.textContent = (0, r.WU)(this.countFormat, this.count), this.element.title = (0, r.WU)(this.titleFormat, this.count), this.applyStyles()\n                    }\n                    style(e) {\n                        this.badgeBackground = e.badgeBackground, this.badgeForeground = e.badgeForeground, this.badgeBorder = e.badgeBorder, this.applyStyles()\n                    }\n                    applyStyles() {\n                        if (this.element) {\n                            const e = this.badgeBackground ? this.badgeBackground.toString() : \"\",\n                                t = this.badgeForeground ? this.badgeForeground.toString() : \"\",\n                                i = this.badgeBorder ? this.badgeBorder.toString() : \"\";\n                            this.element.style.backgroundColor = e, this.element.style.color = t, this.element.style.borderWidth = i ? \"1px\" : \"\", this.element.style.borderStyle = i ? \"solid\" : \"\", this.element.style.borderColor = i\n                        }\n                    }\n                }\n            },\n            34650: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    q: () => r\n                });\n                var n = i(65321),\n                    o = i(56811),\n                    s = i(36248);\n                class r {\n                    constructor(e, t) {\n                        this.supportIcons = t, this.text = \"\", this.title = \"\", this.highlights = [], this.didEverRender = !1, this.domNode = document.createElement(\"span\"), this.domNode.className = \"monaco-highlighted-label\", e.appendChild(this.domNode)\n                    }\n                    get element() {\n                        return this.domNode\n                    }\n                    set(e, t = [], i = \"\", n) {\n                        e || (e = \"\"), n && (e = r.escapeNewLines(e, t)), this.didEverRender && this.text === e && this.title === i && s.fS(this.highlights, t) || (this.text = e, this.title = i, this.highlights = t, this.render())\n                    }\n                    render() {\n                        const e = [];\n                        let t = 0;\n                        for (const i of this.highlights) {\n                            if (i.end === i.start) continue;\n                            if (t < i.start) {\n                                const s = this.text.substring(t, i.start);\n                                e.push(n.$(\"span\", void 0, ...this.supportIcons ? (0, o.T)(s) : [s])), t = i.end\n                            }\n                            const s = this.text.substring(i.start, i.end),\n                                r = n.$(\"span.highlight\", void 0, ...this.supportIcons ? (0, o.T)(s) : [s]);\n                            i.extraClasses && r.classList.add(i.extraClasses), e.push(r), t = i.end\n                        }\n                        if (t < this.text.length) {\n                            const i = this.text.substring(t);\n                            e.push(n.$(\"span\", void 0, ...this.supportIcons ? (0, o.T)(i) : [i]))\n                        }\n                        n.mc(this.domNode, ...e), this.title ? this.domNode.title = this.title : this.domNode.removeAttribute(\"title\"), this.didEverRender = !0\n                    }\n                    static escapeNewLines(e, t) {\n                        let i = 0,\n                            n = 0;\n                        return e.replace(/\\r\\n|\\r|\\n/g, ((e, o) => {\n                            n = \"\\r\\n\" === e ? -1 : 0, o += i;\n                            for (const e of t) e.end <= o || (e.start >= o && (e.start += n), e.end >= o && (e.end += n));\n                            return i += n, \"⏎\"\n                        }))\n                    }\n                }\n            },\n            48801: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    g: () => m\n                });\n                var n = i(65321),\n                    o = i(34650),\n                    s = i(15393),\n                    r = i(71050),\n                    a = i(59365),\n                    l = i(5976),\n                    c = i(98401),\n                    d = i(63580),\n                    h = function(e, t, i, n) {\n                        return new(i || (i = Promise))((function(o, s) {\n                            function r(e) {\n                                try {\n                                    l(n.next(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function a(e) {\n                                try {\n                                    l(n.throw(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function l(e) {\n                                var t;\n                                e.done ? o(e.value) : (t = e.value, t instanceof i ? t : new i((function(e) {\n                                    e(t)\n                                }))).then(r, a)\n                            }\n                            l((n = n.apply(e, t || [])).next())\n                        }))\n                    };\n                class u {\n                    constructor(e, t, i) {\n                        this.hoverDelegate = e, this.target = t, this.fadeInAnimation = i\n                    }\n                    update(e, t) {\n                        var i;\n                        return h(this, void 0, void 0, (function*() {\n                            if (this._cancellationTokenSource && (this._cancellationTokenSource.dispose(!0), this._cancellationTokenSource = void 0), this.isDisposed) return;\n                            let n;\n                            if (void 0 === e || (0, c.HD)(e) || e instanceof HTMLElement) n = e;\n                            else if ((0, c.mf)(e.markdown)) {\n                                this._hoverWidget || this.show((0, d.N)(\"iconLabel.loading\", \"正在加载...\"), t), this._cancellationTokenSource = new r.A;\n                                const i = this._cancellationTokenSource.token;\n                                if (n = yield e.markdown(i), this.isDisposed || i.isCancellationRequested) return\n                            } else n = null !== (i = e.markdown) && void 0 !== i ? i : e.markdownNotSupportedFallback;\n                            this.show(n, t)\n                        }))\n                    }\n                    show(e, t) {\n                        const i = this._hoverWidget;\n                        if (this.hasContent(e)) {\n                            const n = {\n                                content: e,\n                                target: this.target,\n                                showPointer: \"element\" === this.hoverDelegate.placement,\n                                hoverPosition: 2,\n                                skipFadeInAnimation: !this.fadeInAnimation || !!i\n                            };\n                            this._hoverWidget = this.hoverDelegate.showHover(n, t)\n                        }\n                        null == i || i.dispose()\n                    }\n                    hasContent(e) {\n                        return !!e && (!(0, a.Fr)(e) || !!e.value)\n                    }\n                    get isDisposed() {\n                        var e;\n                        return null === (e = this._hoverWidget) || void 0 === e ? void 0 : e.isDisposed\n                    }\n                    dispose() {\n                        var e, t;\n                        null === (e = this._hoverWidget) || void 0 === e || e.dispose(), null === (t = this._cancellationTokenSource) || void 0 === t || t.dispose(!0), this._cancellationTokenSource = void 0\n                    }\n                }\n                var g = i(36248),\n                    p = i(61134);\n                i(24997);\n                class f {\n                    constructor(e) {\n                        this._element = e\n                    }\n                    get element() {\n                        return this._element\n                    }\n                    set textContent(e) {\n                        this.disposed || e === this._textContent || (this._textContent = e, this._element.textContent = e)\n                    }\n                    set className(e) {\n                        this.disposed || e === this._className || (this._className = e, this._element.className = e)\n                    }\n                    set empty(e) {\n                        this.disposed || e === this._empty || (this._empty = e, this._element.style.marginLeft = e ? \"0\" : \"\")\n                    }\n                    dispose() {\n                        this.disposed = !0\n                    }\n                }\n                class m extends l.JT {\n                    constructor(e, t) {\n                        super(), this.customHovers = new Map, this.domNode = this._register(new f(n.R3(e, n.$(\".monaco-icon-label\")))), this.labelContainer = n.R3(this.domNode.element, n.$(\".monaco-icon-label-container\"));\n                        const i = n.R3(this.labelContainer, n.$(\"span.monaco-icon-name-container\"));\n                        this.descriptionContainer = this._register(new f(n.R3(this.labelContainer, n.$(\"span.monaco-icon-description-container\")))), (null == t ? void 0 : t.supportHighlights) || (null == t ? void 0 : t.supportIcons) ? this.nameNode = new _(i, !!t.supportIcons) : this.nameNode = new v(i), (null == t ? void 0 : t.supportDescriptionHighlights) ? this.descriptionNodeFactory = () => new o.q(n.R3(this.descriptionContainer.element, n.$(\"span.label-description\")), !!t.supportIcons) : this.descriptionNodeFactory = () => this._register(new f(n.R3(this.descriptionContainer.element, n.$(\"span.label-description\")))), this.hoverDelegate = null == t ? void 0 : t.hoverDelegate\n                    }\n                    get element() {\n                        return this.domNode.element\n                    }\n                    setLabel(e, t, i) {\n                        const n = [\"monaco-icon-label\"];\n                        i && (i.extraClasses && n.push(...i.extraClasses), i.italic && n.push(\"italic\"), i.strikethrough && n.push(\"strikethrough\")), this.domNode.className = n.join(\" \"), this.setupHover((null == i ? void 0 : i.descriptionTitle) ? this.labelContainer : this.element, null == i ? void 0 : i.title), this.nameNode.setLabel(e, i), (t || this.descriptionNode) && (this.descriptionNode || (this.descriptionNode = this.descriptionNodeFactory()), this.descriptionNode instanceof o.q ? (this.descriptionNode.set(t || \"\", i ? i.descriptionMatches : void 0), this.setupHover(this.descriptionNode.element, null == i ? void 0 : i.descriptionTitle)) : (this.descriptionNode.textContent = t || \"\", this.setupHover(this.descriptionNode.element, (null == i ? void 0 : i.descriptionTitle) || \"\"), this.descriptionNode.empty = !t))\n                    }\n                    setupHover(e, t) {\n                        const i = this.customHovers.get(e);\n                        if (i && (i.dispose(), this.customHovers.delete(e)), t)\n                            if (this.hoverDelegate) {\n                                const i = function(e, t, i) {\n                                    let o, r;\n                                    const a = (t, i) => {\n                                            var n;\n                                            t && (null == r || r.dispose(), r = void 0), i && (null == o || o.dispose(), o = void 0), null === (n = e.onDidHideHover) || void 0 === n || n.call(e)\n                                        },\n                                        c = (n, o, a) => new s._F((() => h(this, void 0, void 0, (function*() {\n                                            r && !r.isDisposed || (r = new u(e, a || t, n > 0), yield r.update(i, o))\n                                        }))), n),\n                                        d = n.nm(t, n.tw.MOUSE_OVER, (() => {\n                                            if (o) return;\n                                            const i = new l.SL;\n                                            i.add(n.nm(t, n.tw.MOUSE_LEAVE, (e => a(!1, e.fromElement === t)), !0)), i.add(n.nm(t, n.tw.MOUSE_DOWN, (() => a(!0, !0)), !0));\n                                            const s = {\n                                                targetElements: [t],\n                                                dispose: () => {}\n                                            };\n                                            if (void 0 === e.placement || \"mouse\" === e.placement) {\n                                                const e = e => s.x = e.x + 10;\n                                                i.add(n.nm(t, n.tw.MOUSE_MOVE, e, !0))\n                                            }\n                                            i.add(c(e.delay, !1, s)), o = i\n                                        }), !0);\n                                    return {\n                                        show: e => {\n                                            a(!1, !0), c(0, e)\n                                        },\n                                        hide: () => {\n                                            a(!0, !0)\n                                        },\n                                        update: e => h(this, void 0, void 0, (function*() {\n                                            i = e, yield null == r ? void 0 : r.update(i)\n                                        })),\n                                        dispose: () => {\n                                            d.dispose(), a(!0, !0)\n                                        }\n                                    }\n                                }(this.hoverDelegate, e, t);\n                                i && this.customHovers.set(e, i)\n                            } else ! function(e, t) {\n                                (0, c.HD)(t) ? e.title = t: (null == t ? void 0 : t.markdownNotSupportedFallback) ? e.title = t.markdownNotSupportedFallback : e.removeAttribute(\"title\")\n                            }(e, t);\n                        else e.removeAttribute(\"title\")\n                    }\n                    dispose() {\n                        super.dispose();\n                        for (const e of this.customHovers.values()) e.dispose();\n                        this.customHovers.clear()\n                    }\n                }\n                class v {\n                    constructor(e) {\n                        this.container = e, this.label = void 0, this.singleLabel = void 0\n                    }\n                    setLabel(e, t) {\n                        if (this.label !== e || !(0, g.fS)(this.options, t))\n                            if (this.label = e, this.options = t, \"string\" == typeof e) this.singleLabel || (this.container.innerText = \"\", this.container.classList.remove(\"multiple\"), this.singleLabel = n.R3(this.container, n.$(\"a.label-name\", {\n                                id: null == t ? void 0 : t.domId\n                            }))), this.singleLabel.textContent = e;\n                            else {\n                                this.container.innerText = \"\", this.container.classList.add(\"multiple\"), this.singleLabel = void 0;\n                                for (let i = 0; i < e.length; i++) {\n                                    const o = e[i],\n                                        s = (null == t ? void 0 : t.domId) && `${null==t?void 0:t.domId}_${i}`;\n                                    n.R3(this.container, n.$(\"a.label-name\", {\n                                        id: s,\n                                        \"data-icon-label-count\": e.length,\n                                        \"data-icon-label-index\": i,\n                                        role: \"treeitem\"\n                                    }, o)), i < e.length - 1 && n.R3(this.container, n.$(\"span.label-separator\", void 0, (null == t ? void 0 : t.separator) || \"/\"))\n                                }\n                            }\n                    }\n                }\n                class _ {\n                    constructor(e, t) {\n                        this.container = e, this.supportIcons = t, this.label = void 0, this.singleLabel = void 0\n                    }\n                    setLabel(e, t) {\n                        if (this.label !== e || !(0, g.fS)(this.options, t))\n                            if (this.label = e, this.options = t, \"string\" == typeof e) this.singleLabel || (this.container.innerText = \"\", this.container.classList.remove(\"multiple\"), this.singleLabel = new o.q(n.R3(this.container, n.$(\"a.label-name\", {\n                                id: null == t ? void 0 : t.domId\n                            })), this.supportIcons)), this.singleLabel.set(e, null == t ? void 0 : t.matches, void 0, null == t ? void 0 : t.labelEscapeNewLines);\n                            else {\n                                this.container.innerText = \"\", this.container.classList.add(\"multiple\"), this.singleLabel = void 0;\n                                const i = (null == t ? void 0 : t.separator) || \"/\",\n                                    s = function(e, t, i) {\n                                        if (!i) return;\n                                        let n = 0;\n                                        return e.map((e => {\n                                            const o = {\n                                                    start: n,\n                                                    end: n + e.length\n                                                },\n                                                s = i.map((e => p.e.intersect(o, e))).filter((e => !p.e.isEmpty(e))).map((({\n                                                    start: e,\n                                                    end: t\n                                                }) => ({\n                                                    start: e - n,\n                                                    end: t - n\n                                                })));\n                                            return n = o.end + t.length, s\n                                        }))\n                                    }(e, i, null == t ? void 0 : t.matches);\n                                for (let r = 0; r < e.length; r++) {\n                                    const a = e[r],\n                                        l = s ? s[r] : void 0,\n                                        c = (null == t ? void 0 : t.domId) && `${null==t?void 0:t.domId}_${r}`,\n                                        d = n.$(\"a.label-name\", {\n                                            id: c,\n                                            \"data-icon-label-count\": e.length,\n                                            \"data-icon-label-index\": r,\n                                            role: \"treeitem\"\n                                        });\n                                    new o.q(n.R3(this.container, d), this.supportIcons).set(a, l, void 0, null == t ? void 0 : t.labelEscapeNewLines), r < e.length - 1 && n.R3(d, n.$(\"span.label-separator\", void 0, i))\n                                }\n                            }\n                    }\n                }\n            },\n            56811: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    T: () => r\n                });\n                var n = i(65321),\n                    o = i(73046);\n                const s = new RegExp(`(\\\\\\\\)?\\\\$\\\\((${o.dT.iconNameExpression}(?:${o.dT.iconModifierExpression})?)\\\\)`, \"g\");\n\n                function r(e) {\n                    const t = new Array;\n                    let i, n = 0,\n                        o = 0;\n                    for (; null !== (i = s.exec(e));) {\n                        o = i.index || 0, t.push(e.substring(n, o)), n = (i.index || 0) + i[0].length;\n                        const [, s, r] = i;\n                        t.push(s ? `$(${r})` : a({\n                            id: r\n                        }))\n                    }\n                    return n < e.length && t.push(e.substring(n)), t\n                }\n\n                function a(e) {\n                    const t = n.$(\"span\");\n                    return t.classList.add(...o.dT.asClassNameArray(e)), t\n                }\n            },\n            77927: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    p: () => b,\n                    W: () => _\n                });\n                var n = i(65321),\n                    o = i(4850),\n                    s = i(48764),\n                    r = i(90317),\n                    a = i(85152),\n                    l = i(9802),\n                    c = i(93794),\n                    d = i(41264),\n                    h = i(4669);\n                class u {\n                    constructor(e, t = 0, i = e.length, n = t - 1) {\n                        this.items = e, this.start = t, this.end = i, this.index = n\n                    }\n                    current() {\n                        return this.index === this.start - 1 || this.index === this.end ? null : this.items[this.index]\n                    }\n                    next() {\n                        return this.index = Math.min(this.index + 1, this.end), this.current()\n                    }\n                    previous() {\n                        return this.index = Math.max(this.index - 1, this.start - 1), this.current()\n                    }\n                    first() {\n                        return this.index = this.start, this.current()\n                    }\n                    last() {\n                        return this.index = this.end - 1, this.current()\n                    }\n                }\n                class g {\n                    constructor(e = [], t = 10) {\n                        this._initialize(e), this._limit = t, this._onChange()\n                    }\n                    getHistory() {\n                        return this._elements\n                    }\n                    add(e) {\n                        this._history.delete(e), this._history.add(e), this._onChange()\n                    }\n                    next() {\n                        return this._currentPosition() !== this._elements.length - 1 ? this._navigator.next() : null\n                    }\n                    previous() {\n                        return 0 !== this._currentPosition() ? this._navigator.previous() : null\n                    }\n                    current() {\n                        return this._navigator.current()\n                    }\n                    first() {\n                        return this._navigator.first()\n                    }\n                    last() {\n                        return this._navigator.last()\n                    }\n                    has(e) {\n                        return this._history.has(e)\n                    }\n                    _onChange() {\n                        this._reduceToLimit();\n                        const e = this._elements;\n                        this._navigator = new u(e, 0, e.length, e.length)\n                    }\n                    _reduceToLimit() {\n                        const e = this._elements;\n                        e.length > this._limit && this._initialize(e.slice(e.length - this._limit))\n                    }\n                    _currentPosition() {\n                        const e = this._navigator.current();\n                        return e ? this._elements.indexOf(e) : -1\n                    }\n                    _initialize(e) {\n                        this._history = new Set;\n                        for (const t of e) this._history.add(t)\n                    }\n                    get _elements() {\n                        const e = [];\n                        return this._history.forEach((t => e.push(t))), e\n                    }\n                }\n                var p = i(36248),\n                    f = (i(58946), i(63580));\n                const m = n.$,\n                    v = {\n                        inputBackground: d.Il.fromHex(\"#3C3C3C\"),\n                        inputForeground: d.Il.fromHex(\"#CCCCCC\"),\n                        inputValidationInfoBorder: d.Il.fromHex(\"#55AAFF\"),\n                        inputValidationInfoBackground: d.Il.fromHex(\"#063B49\"),\n                        inputValidationWarningBorder: d.Il.fromHex(\"#B89500\"),\n                        inputValidationWarningBackground: d.Il.fromHex(\"#352A05\"),\n                        inputValidationErrorBorder: d.Il.fromHex(\"#BE1100\"),\n                        inputValidationErrorBackground: d.Il.fromHex(\"#5A1D1D\")\n                    };\n                class _ extends c.$ {\n                    constructor(e, t, i) {\n                        var s;\n                        super(), this.state = \"idle\", this.maxHeight = Number.POSITIVE_INFINITY, this._onDidChange = this._register(new h.Q5), this.onDidChange = this._onDidChange.event, this._onDidHeightChange = this._register(new h.Q5), this.onDidHeightChange = this._onDidHeightChange.event, this.contextViewProvider = t, this.options = i || Object.create(null), (0, p.jB)(this.options, v, !1), this.message = null, this.placeholder = this.options.placeholder || \"\", this.tooltip = null !== (s = this.options.tooltip) && void 0 !== s ? s : this.placeholder || \"\", this.ariaLabel = this.options.ariaLabel || \"\", this.inputBackground = this.options.inputBackground, this.inputForeground = this.options.inputForeground, this.inputBorder = this.options.inputBorder, this.inputValidationInfoBorder = this.options.inputValidationInfoBorder, this.inputValidationInfoBackground = this.options.inputValidationInfoBackground, this.inputValidationInfoForeground = this.options.inputValidationInfoForeground, this.inputValidationWarningBorder = this.options.inputValidationWarningBorder, this.inputValidationWarningBackground = this.options.inputValidationWarningBackground, this.inputValidationWarningForeground = this.options.inputValidationWarningForeground, this.inputValidationErrorBorder = this.options.inputValidationErrorBorder, this.inputValidationErrorBackground = this.options.inputValidationErrorBackground, this.inputValidationErrorForeground = this.options.inputValidationErrorForeground, this.options.validationOptions && (this.validation = this.options.validationOptions.validation), this.element = n.R3(e, m(\".monaco-inputbox.idle\"));\n                        let a = this.options.flexibleHeight ? \"textarea\" : \"input\",\n                            c = n.R3(this.element, m(\".ibwrapper\"));\n                        if (this.input = n.R3(c, m(a + \".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) {\n                            this.maxHeight = \"number\" == typeof this.options.flexibleMaxHeight ? this.options.flexibleMaxHeight : Number.POSITIVE_INFINITY, this.mirror = n.R3(c, m(\"div.mirror\")), this.mirror.innerText = \" \", this.scrollableElement = new l.NB(this.element, {\n                                vertical: 1\n                            }), this.options.flexibleWidth && (this.input.setAttribute(\"wrap\", \"off\"), this.mirror.style.whiteSpace = \"pre\", this.mirror.style.wordWrap = \"initial\"), n.R3(e, this.scrollableElement.getDomNode()), this._register(this.scrollableElement), this._register(this.scrollableElement.onScroll((e => this.input.scrollTop = e.scrollTop)));\n                            const t = this._register(new o.Y(document, \"selectionchange\")),\n                                i = h.ju.filter(t.event, (() => {\n                                    const e = document.getSelection();\n                                    return (null == e ? void 0 : e.anchorNode) === c\n                                }));\n                            this._register(i(this.updateScrollDimensions, this)), this._register(this.onDidHeightChange(this.updateScrollDimensions, this))\n                        } else this.input.type = this.options.type || \"text\", this.input.setAttribute(\"wrap\", \"off\");\n                        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.ignoreGesture(this.input), setTimeout((() => this.updateMirror()), 0), this.options.actions && (this.actionbar = this._register(new r.o(this.element)), this.actionbar.push(this.options.actions, {\n                            icon: !0,\n                            label: !1\n                        })), this.applyStyles()\n                    }\n                    onBlur() {\n                        this._hideMessage(), this.options.showPlaceholderOnFocus && this.input.setAttribute(\"placeholder\", \"\")\n                    }\n                    onFocus() {\n                        this._showMessage(), this.options.showPlaceholderOnFocus && this.input.setAttribute(\"placeholder\", this.placeholder || \"\")\n                    }\n                    setPlaceHolder(e) {\n                        this.placeholder = e, this.input.setAttribute(\"placeholder\", e)\n                    }\n                    setTooltip(e) {\n                        this.tooltip = e, this.input.title = e\n                    }\n                    setAriaLabel(e) {\n                        this.ariaLabel = e, e ? this.input.setAttribute(\"aria-label\", this.ariaLabel) : this.input.removeAttribute(\"aria-label\")\n                    }\n                    getAriaLabel() {\n                        return this.ariaLabel\n                    }\n                    get inputElement() {\n                        return this.input\n                    }\n                    get value() {\n                        return this.input.value\n                    }\n                    set value(e) {\n                        this.input.value !== e && (this.input.value = e, this.onValueChange())\n                    }\n                    get height() {\n                        return \"number\" == typeof this.cachedHeight ? this.cachedHeight : n.wn(this.element)\n                    }\n                    focus() {\n                        this.input.focus()\n                    }\n                    blur() {\n                        this.input.blur()\n                    }\n                    hasFocus() {\n                        return document.activeElement === this.input\n                    }\n                    select(e = null) {\n                        this.input.select(), e && (this.input.setSelectionRange(e.start, e.end), e.end === this.input.value.length && (this.input.scrollLeft = this.input.scrollWidth))\n                    }\n                    isSelectionAtEnd() {\n                        return this.input.selectionEnd === this.input.value.length && this.input.selectionStart === this.input.selectionEnd\n                    }\n                    enable() {\n                        this.input.removeAttribute(\"disabled\")\n                    }\n                    disable() {\n                        this.blur(), this.input.disabled = !0, this._hideMessage()\n                    }\n                    get width() {\n                        return n.w(this.input)\n                    }\n                    set width(e) {\n                        if (this.options.flexibleHeight && this.options.flexibleWidth) {\n                            let t = 0;\n                            if (this.mirror) {\n                                t = (parseFloat(this.mirror.style.paddingLeft || \"\") || 0) + (parseFloat(this.mirror.style.paddingRight || \"\") || 0)\n                            }\n                            this.input.style.width = e - t + \"px\"\n                        } else this.input.style.width = e + \"px\";\n                        this.mirror && (this.mirror.style.width = e + \"px\")\n                    }\n                    set paddingRight(e) {\n                        this.options.flexibleHeight && this.options.flexibleWidth ? this.input.style.width = `calc(100% - ${e}px)` : this.input.style.paddingRight = e + \"px\", this.mirror && (this.mirror.style.paddingRight = e + \"px\")\n                    }\n                    updateScrollDimensions() {\n                        if (\"number\" != typeof this.cachedContentHeight || \"number\" != typeof this.cachedHeight || !this.scrollableElement) return;\n                        const e = this.cachedContentHeight,\n                            t = this.cachedHeight,\n                            i = this.input.scrollTop;\n                        this.scrollableElement.setScrollDimensions({\n                            scrollHeight: e,\n                            height: t\n                        }), this.scrollableElement.setScrollPosition({\n                            scrollTop: i\n                        })\n                    }\n                    showMessage(e, t) {\n                        this.message = e, 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(e.type));\n                        const i = this.stylesForType(this.message.type);\n                        this.element.style.border = i.border ? `1px solid ${i.border}` : \"\", (this.hasFocus() || t) && this._showMessage()\n                    }\n                    hideMessage() {\n                        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()\n                    }\n                    validate() {\n                        let e = null;\n                        return this.validation && (e = this.validation(this.value), e ? (this.inputElement.setAttribute(\"aria-invalid\", \"true\"), this.showMessage(e)) : this.inputElement.hasAttribute(\"aria-invalid\") && (this.inputElement.removeAttribute(\"aria-invalid\"), this.hideMessage())), null == e ? void 0 : e.type\n                    }\n                    stylesForType(e) {\n                        switch (e) {\n                            case 1:\n                                return {\n                                    border: this.inputValidationInfoBorder, background: this.inputValidationInfoBackground, foreground: this.inputValidationInfoForeground\n                                };\n                            case 2:\n                                return {\n                                    border: this.inputValidationWarningBorder, background: this.inputValidationWarningBackground, foreground: this.inputValidationWarningForeground\n                                };\n                            default:\n                                return {\n                                    border: this.inputValidationErrorBorder, background: this.inputValidationErrorBackground, foreground: this.inputValidationErrorForeground\n                                }\n                        }\n                    }\n                    classForType(e) {\n                        switch (e) {\n                            case 1:\n                                return \"info\";\n                            case 2:\n                                return \"warning\";\n                            default:\n                                return \"error\"\n                        }\n                    }\n                    _showMessage() {\n                        if (!this.contextViewProvider || !this.message) return;\n                        let e, t, i = () => e.style.width = n.w(this.element) + \"px\";\n                        this.contextViewProvider.showContextView({\n                            getAnchor: () => this.element,\n                            anchorAlignment: 1,\n                            render: t => {\n                                if (!this.message) return null;\n                                e = n.R3(t, m(\".monaco-inputbox-container\")), i();\n                                const o = {\n                                        inline: !0,\n                                        className: \"monaco-inputbox-message\"\n                                    },\n                                    r = this.message.formatContent ? (0, s.BO)(this.message.content, o) : (0, s.IY)(this.message.content, o);\n                                r.classList.add(this.classForType(this.message.type));\n                                const a = this.stylesForType(this.message.type);\n                                return r.style.backgroundColor = a.background ? a.background.toString() : \"\", r.style.color = a.foreground ? a.foreground.toString() : \"\", r.style.border = a.border ? `1px solid ${a.border}` : \"\", n.R3(e, r), null\n                            },\n                            onHide: () => {\n                                this.state = \"closed\"\n                            },\n                            layout: i\n                        }), t = 3 === this.message.type ? f.N(\"alertErrorMessage\", \"Error: {0}\", this.message.content) : 2 === this.message.type ? f.N(\"alertWarningMessage\", \"Warning: {0}\", this.message.content) : f.N(\"alertInfoMessage\", \"Info: {0}\", this.message.content), a.Z9(t), this.state = \"open\"\n                    }\n                    _hideMessage() {\n                        this.contextViewProvider && (\"open\" === this.state && this.contextViewProvider.hideContextView(), this.state = \"idle\")\n                    }\n                    onValueChange() {\n                        this._onDidChange.fire(this.value), this.validate(), this.updateMirror(), this.input.classList.toggle(\"empty\", !this.value), \"open\" === this.state && this.contextViewProvider && this.contextViewProvider.layout()\n                    }\n                    updateMirror() {\n                        if (!this.mirror) return;\n                        const e = this.value,\n                            t = 10 === e.charCodeAt(e.length - 1) ? \" \" : \"\";\n                        (e + t).replace(/\\u000c/g, \"\") ? this.mirror.textContent = e + t : this.mirror.innerText = \" \", this.layout()\n                    }\n                    style(e) {\n                        this.inputBackground = e.inputBackground, this.inputForeground = e.inputForeground, this.inputBorder = e.inputBorder, this.inputValidationInfoBackground = e.inputValidationInfoBackground, this.inputValidationInfoForeground = e.inputValidationInfoForeground, this.inputValidationInfoBorder = e.inputValidationInfoBorder, this.inputValidationWarningBackground = e.inputValidationWarningBackground, this.inputValidationWarningForeground = e.inputValidationWarningForeground, this.inputValidationWarningBorder = e.inputValidationWarningBorder, this.inputValidationErrorBackground = e.inputValidationErrorBackground, this.inputValidationErrorForeground = e.inputValidationErrorForeground, this.inputValidationErrorBorder = e.inputValidationErrorBorder, this.applyStyles()\n                    }\n                    applyStyles() {\n                        const e = this.inputBackground ? this.inputBackground.toString() : \"\",\n                            t = this.inputForeground ? this.inputForeground.toString() : \"\",\n                            i = this.inputBorder ? this.inputBorder.toString() : \"\";\n                        this.element.style.backgroundColor = e, this.element.style.color = t, this.input.style.backgroundColor = \"inherit\", this.input.style.color = t, this.element.style.borderWidth = i ? \"1px\" : \"\", this.element.style.borderStyle = i ? \"solid\" : \"\", this.element.style.borderColor = i\n                    }\n                    layout() {\n                        if (!this.mirror) return;\n                        const e = this.cachedContentHeight;\n                        this.cachedContentHeight = n.wn(this.mirror), e !== this.cachedContentHeight && (this.cachedHeight = Math.min(this.cachedContentHeight, this.maxHeight), this.input.style.height = this.cachedHeight + \"px\", this._onDidHeightChange.fire(this.cachedContentHeight))\n                    }\n                    insertAtCursor(e) {\n                        const t = this.inputElement,\n                            i = t.selectionStart,\n                            n = t.selectionEnd,\n                            o = t.value;\n                        null !== i && null !== n && (this.value = o.substr(0, i) + e + o.substr(n), t.setSelectionRange(i + 1, i + 1), this.layout())\n                    }\n                    dispose() {\n                        this._hideMessage(), this.message = null, this.actionbar && this.actionbar.dispose(), super.dispose()\n                    }\n                }\n                const Lg = new Language(modifyState.language);\n                class b extends _ {\n                    constructor(e, t, i) {\n                        const n = f.N({\n                                key: \"history.inputbox.hint\",\n                            comment: [Lg.textWillDescribe()]\n                        }, Lg.forHistory()),\n                            o = ` or ⇅ ${n}`,\n                            s = ` (⇅ ${n})`;\n                        super(e, t, i), this.history = new g(i.history, 100);\n                        const r = () => {\n                            if (i.showHistoryHint && i.showHistoryHint() && !this.placeholder.endsWith(o) && !this.placeholder.endsWith(s) && this.history.getHistory().length) {\n                                const e = this.placeholder.endsWith(\")\") ? o : s,\n                                    t = this.placeholder + e;\n                                i.showPlaceholderOnFocus && document.activeElement !== this.input ? this.placeholder = t : this.setPlaceHolder(t)\n                            }\n                        };\n                        this.observer = new MutationObserver(((e, t) => {\n                            e.forEach((e => {\n                                e.target.textContent || r()\n                            }))\n                        })), this.observer.observe(this.input, {\n                            attributeFilter: [\"class\"]\n                        }), this.onfocus(this.input, (() => r())), this.onblur(this.input, (() => {\n                            const e = e => {\n                                if (this.placeholder.endsWith(e)) {\n                                    const t = this.placeholder.slice(0, this.placeholder.length - e.length);\n                                    return i.showPlaceholderOnFocus ? this.placeholder = t : this.setPlaceHolder(t), !0\n                                }\n                                return !1\n                            };\n                            e(s) || e(o)\n                        }))\n                    }\n                    dispose() {\n                        super.dispose(), this.observer && (this.observer.disconnect(), this.observer = void 0)\n                    }\n                    addToHistory() {\n                        this.value && this.value !== this.getCurrentValue() && this.history.add(this.value)\n                    }\n                    showNextValue() {\n                        this.history.has(this.value) || this.addToHistory();\n                        let e = this.getNextValue();\n                        e && (e = e === this.value ? this.getNextValue() : e), e && (this.value = e, a.i7(this.value))\n                    }\n                    showPreviousValue() {\n                        this.history.has(this.value) || this.addToHistory();\n                        let e = this.getPreviousValue();\n                        e && (e = e === this.value ? this.getPreviousValue() : e), e && (this.value = e, a.i7(this.value))\n                    }\n                    getCurrentValue() {\n                        let e = this.history.current();\n                        return e || (e = this.history.last(), this.history.next()), e\n                    }\n                    getPreviousValue() {\n                        return this.history.previous() || this.history.first()\n                    }\n                    getNextValue() {\n                        return this.history.next() || this.history.last()\n                    }\n                }\n            },\n            25707: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    kX: () => x,\n                    Bv: () => N\n                });\n                var n = i(16268),\n                    o = i(23547),\n                    s = i(65321),\n                    r = i(4850),\n                    a = i(10553),\n                    l = i(9802),\n                    c = i(9488),\n                    d = i(15393),\n                    h = i(49898),\n                    u = i(4669),\n                    g = i(5976),\n                    p = i(36248),\n                    f = i(61134),\n                    m = i(76633);\n\n                function v(e, t) {\n                    const i = [];\n                    for (let n of t) {\n                        if (e.start >= n.range.end) continue;\n                        if (e.end < n.range.start) break;\n                        const t = f.e.intersect(e, n.range);\n                        f.e.isEmpty(t) || i.push({\n                            range: t,\n                            size: n.size\n                        })\n                    }\n                    return i\n                }\n\n                function _({\n                    start: e,\n                    end: t\n                }, i) {\n                    return {\n                        start: e + i,\n                        end: t + i\n                    }\n                }\n                class b {\n                    constructor() {\n                        this.groups = [], this._size = 0\n                    }\n                    splice(e, t, i = []) {\n                        const n = i.length - t,\n                            o = v({\n                                start: 0,\n                                end: e\n                            }, this.groups),\n                            s = v({\n                                start: e + t,\n                                end: Number.POSITIVE_INFINITY\n                            }, this.groups).map((e => ({\n                                range: _(e.range, n),\n                                size: e.size\n                            }))),\n                            r = i.map(((t, i) => ({\n                                range: {\n                                    start: e + i,\n                                    end: e + i + 1\n                                },\n                                size: t.size\n                            })));\n                        this.groups = function(...e) {\n                            return function(e) {\n                                const t = [];\n                                let i = null;\n                                for (let n of e) {\n                                    const e = n.range.start,\n                                        o = n.range.end,\n                                        s = n.size;\n                                    i && s === i.size ? i.range.end = o : (i = {\n                                        range: {\n                                            start: e,\n                                            end: o\n                                        },\n                                        size: s\n                                    }, t.push(i))\n                                }\n                                return t\n                            }(e.reduce(((e, t) => e.concat(t)), []))\n                        }(o, r, s), this._size = this.groups.reduce(((e, t) => e + t.size * (t.range.end - t.range.start)), 0)\n                    }\n                    get count() {\n                        const e = this.groups.length;\n                        return e ? this.groups[e - 1].range.end : 0\n                    }\n                    get size() {\n                        return this._size\n                    }\n                    indexAt(e) {\n                        if (e < 0) return -1;\n                        let t = 0,\n                            i = 0;\n                        for (let n of this.groups) {\n                            const o = n.range.end - n.range.start,\n                                s = i + o * n.size;\n                            if (e < s) return t + Math.floor((e - i) / n.size);\n                            t += o, i = s\n                        }\n                        return t\n                    }\n                    indexAfter(e) {\n                        return Math.min(this.indexAt(e) + 1, this.count)\n                    }\n                    positionAt(e) {\n                        if (e < 0) return -1;\n                        let t = 0,\n                            i = 0;\n                        for (let n of this.groups) {\n                            const o = n.range.end - n.range.start,\n                                s = i + o;\n                            if (e < s) return t + (e - i) * n.size;\n                            t += o * n.size, i = s\n                        }\n                        return -1\n                    }\n                }\n                class w {\n                    constructor(e) {\n                        this.renderers = e, this.cache = new Map\n                    }\n                    alloc(e) {\n                        let t = this.getTemplateCache(e).pop();\n                        if (!t) {\n                            const i = (0, s.$)(\".monaco-list-row\");\n                            t = {\n                                domNode: i,\n                                templateId: e,\n                                templateData: this.getRenderer(e).renderTemplate(i)\n                            }\n                        }\n                        return t\n                    }\n                    release(e) {\n                        e && this.releaseRow(e)\n                    }\n                    releaseRow(e) {\n                        const {\n                            domNode: t,\n                            templateId: i\n                        } = e;\n                        t && (t.classList.remove(\"scrolling\"), function(e) {\n                            try {\n                                e.parentElement && e.parentElement.removeChild(e)\n                            } catch (e) {}\n                        }(t));\n                        this.getTemplateCache(i).push(e)\n                    }\n                    getTemplateCache(e) {\n                        let t = this.cache.get(e);\n                        return t || (t = [], this.cache.set(e, t)), t\n                    }\n                    dispose() {\n                        this.cache.forEach(((e, t) => {\n                            for (const i of e) {\n                                this.getRenderer(t).disposeTemplate(i.templateData), i.templateData = null\n                            }\n                        })), this.cache.clear()\n                    }\n                    getRenderer(e) {\n                        const t = this.renderers.get(e);\n                        if (!t) throw new Error(`No renderer found for ${e}`);\n                        return t\n                    }\n                }\n                var y = function(e, t, i, n) {\n                    var o, s = arguments.length,\n                        r = s < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n                    if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) r = Reflect.decorate(e, t, i, n);\n                    else\n                        for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (r = (s < 3 ? o(r) : s > 3 ? o(t, i, r) : o(t, i)) || r);\n                    return s > 3 && r && Object.defineProperty(t, i, r), r\n                };\n                const C = {\n                    useShadows: !0,\n                    verticalScrollMode: 1,\n                    setRowLineHeight: !0,\n                    setRowHeight: !0,\n                    supportDynamicHeights: !1,\n                    dnd: {\n                        getDragElements: e => [e],\n                        getDragURI: () => null,\n                        onDragStart() {},\n                        onDragOver: () => !1,\n                        drop() {}\n                    },\n                    horizontalScrolling: !1,\n                    transformOptimization: !0,\n                    alwaysConsumeMouseWheel: !0\n                };\n                class x {\n                    constructor(e) {\n                        this.elements = e\n                    }\n                    update() {}\n                    getData() {\n                        return this.elements\n                    }\n                }\n                class S {\n                    constructor(e) {\n                        this.elements = e\n                    }\n                    update() {}\n                    getData() {\n                        return this.elements\n                    }\n                }\n                class k {\n                    constructor() {\n                        this.types = [], this.files = []\n                    }\n                    update(e) {\n                        if (e.types && this.types.splice(0, this.types.length, ...e.types), e.files) {\n                            this.files.splice(0, this.files.length);\n                            for (let t = 0; t < e.files.length; t++) {\n                                const i = e.files.item(t);\n                                i && (i.size || i.type) && this.files.push(i)\n                            }\n                        }\n                    }\n                    getData() {\n                        return {\n                            types: this.types,\n                            files: this.files\n                        }\n                    }\n                }\n                class L {\n                    constructor(e) {\n                        (null == e ? void 0 : e.getSetSize) ? this.getSetSize = e.getSetSize.bind(e): this.getSetSize = (e, t, i) => i, (null == e ? void 0 : e.getPosInSet) ? this.getPosInSet = e.getPosInSet.bind(e) : this.getPosInSet = (e, t) => t + 1, (null == e ? void 0 : e.getRole) ? this.getRole = e.getRole.bind(e) : this.getRole = e => \"listitem\", (null == e ? void 0 : e.isChecked) ? this.isChecked = e.isChecked.bind(e) : this.isChecked = e => {}\n                    }\n                }\n                class N {\n                    constructor(e, t, i, n = C) {\n                        if (this.virtualDelegate = t, this.domId = \"list_id_\" + ++N.InstanceCount, this.renderers = new Map, this.renderWidth = 0, this._scrollHeight = 0, this.scrollableElementUpdateDisposable = null, this.scrollableElementWidthDelayer = new d.vp(50), this.splicing = !1, this.dragOverAnimationStopDisposable = g.JT.None, this.dragOverMouseY = 0, this.canDrop = !1, this.currentDragFeedbackDisposable = g.JT.None, this.onDragLeaveTimeout = g.JT.None, this.disposables = new g.SL, this._onDidChangeContentHeight = new u.Q5, this._horizontalScrolling = !1, n.horizontalScrolling && n.supportDynamicHeights) throw new Error(\"Horizontal scrolling and dynamic heights not supported simultaneously\");\n                        this.items = [], this.itemId = 0, this.rangeMap = new b;\n                        for (const e of i) this.renderers.set(e.templateId, e);\n                        this.cache = this.disposables.add(new w(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\", \"boolean\" != typeof n.mouseSupport || n.mouseSupport), this._horizontalScrolling = (0, p.CJ)(n, (e => e.horizontalScrolling), C.horizontalScrolling), this.domNode.classList.toggle(\"horizontal-scrolling\", this._horizontalScrolling), this.additionalScrollHeight = void 0 === n.additionalScrollHeight ? 0 : n.additionalScrollHeight, this.accessibilityProvider = new L(n.accessibilityProvider), this.rowsContainer = document.createElement(\"div\"), this.rowsContainer.className = \"monaco-list-rows\";\n                        (0, p.CJ)(n, (e => e.transformOptimization), C.transformOptimization) && (this.rowsContainer.style.transform = \"translate3d(0px, 0px, 0px)\"), this.disposables.add(a.o.addTarget(this.rowsContainer)), this.scrollable = new m.Rm((0, p.CJ)(n, (e => e.smoothScrolling), !1) ? 125 : 0, (e => (0, s.jL)(e))), this.scrollableElement = this.disposables.add(new l.$Z(this.rowsContainer, {\n                            alwaysConsumeMouseWheel: (0, p.CJ)(n, (e => e.alwaysConsumeMouseWheel), C.alwaysConsumeMouseWheel),\n                            horizontal: 1,\n                            vertical: (0, p.CJ)(n, (e => e.verticalScrollMode), C.verticalScrollMode),\n                            useShadows: (0, p.CJ)(n, (e => e.useShadows), C.useShadows),\n                            mouseWheelScrollSensitivity: n.mouseWheelScrollSensitivity,\n                            fastScrollSensitivity: n.fastScrollSensitivity\n                        }, this.scrollable)), this.domNode.appendChild(this.scrollableElement.getDomNode()), e.appendChild(this.domNode), this.scrollableElement.onScroll(this.onScroll, this, this.disposables), this.disposables.add((0, s.nm)(this.rowsContainer, a.t.Change, (e => this.onTouchChange(e)))), this.disposables.add((0, s.nm)(this.scrollableElement.getDomNode(), \"scroll\", (e => e.target.scrollTop = 0))), this.disposables.add((0, s.nm)(this.domNode, \"dragover\", (e => this.onDragOver(this.toDragEvent(e))))), this.disposables.add((0, s.nm)(this.domNode, \"drop\", (e => this.onDrop(this.toDragEvent(e))))), this.disposables.add((0, s.nm)(this.domNode, \"dragleave\", (e => this.onDragLeave(this.toDragEvent(e))))), this.disposables.add((0, s.nm)(this.domNode, \"dragend\", (e => this.onDragEnd(e)))), this.setRowLineHeight = (0, p.CJ)(n, (e => e.setRowLineHeight), C.setRowLineHeight), this.setRowHeight = (0, p.CJ)(n, (e => e.setRowHeight), C.setRowHeight), this.supportDynamicHeights = (0, p.CJ)(n, (e => e.supportDynamicHeights), C.supportDynamicHeights), this.dnd = (0, p.CJ)(n, (e => e.dnd), C.dnd), this.layout()\n                    }\n                    get contentHeight() {\n                        return this.rangeMap.size\n                    }\n                    get horizontalScrolling() {\n                        return this._horizontalScrolling\n                    }\n                    set horizontalScrolling(e) {\n                        if (e !== this._horizontalScrolling) {\n                            if (e && this.supportDynamicHeights) throw new Error(\"Horizontal scrolling and dynamic heights not supported simultaneously\");\n                            if (this._horizontalScrolling = e, this.domNode.classList.toggle(\"horizontal-scrolling\", this._horizontalScrolling), this._horizontalScrolling) {\n                                for (const e of this.items) this.measureItemWidth(e);\n                                this.updateScrollWidth(), this.scrollableElement.setScrollDimensions({\n                                    width: (0, s.FK)(this.domNode)\n                                }), this.rowsContainer.style.width = `${Math.max(this.scrollWidth||0,this.renderWidth)}px`\n                            } else this.scrollableElementWidthDelayer.cancel(), this.scrollableElement.setScrollDimensions({\n                                width: this.renderWidth,\n                                scrollWidth: this.renderWidth\n                            }), this.rowsContainer.style.width = \"\"\n                        }\n                    }\n                    updateOptions(e) {\n                        void 0 !== e.additionalScrollHeight && (this.additionalScrollHeight = e.additionalScrollHeight, this.scrollableElement.setScrollDimensions({\n                            scrollHeight: this.scrollHeight\n                        })), void 0 !== e.smoothScrolling && this.scrollable.setSmoothScrollDuration(e.smoothScrolling ? 125 : 0), void 0 !== e.horizontalScrolling && (this.horizontalScrolling = e.horizontalScrolling), void 0 !== e.mouseWheelScrollSensitivity && this.scrollableElement.updateOptions({\n                            mouseWheelScrollSensitivity: e.mouseWheelScrollSensitivity\n                        }), void 0 !== e.fastScrollSensitivity && this.scrollableElement.updateOptions({\n                            fastScrollSensitivity: e.fastScrollSensitivity\n                        })\n                    }\n                    splice(e, t, i = []) {\n                        if (this.splicing) throw new Error(\"Can't run recursive splices.\");\n                        this.splicing = !0;\n                        try {\n                            return this._splice(e, t, i)\n                        } finally {\n                            this.splicing = !1, this._onDidChangeContentHeight.fire(this.contentHeight)\n                        }\n                    }\n                    _splice(e, t, i = []) {\n                        const n = this.getRenderRange(this.lastRenderTop, this.lastRenderHeight),\n                            o = {\n                                start: e,\n                                end: e + t\n                            },\n                            s = f.e.intersect(n, o),\n                            r = new Map;\n                        for (let e = s.start; e < s.end; e++) {\n                            const t = this.items[e];\n                            if (t.dragStartDisposable.dispose(), t.row) {\n                                let i = r.get(t.templateId);\n                                i || (i = [], r.set(t.templateId, i));\n                                const n = this.renderers.get(t.templateId);\n                                n && n.disposeElement && n.disposeElement(t.element, e, t.row.templateData, t.size), i.push(t.row)\n                            }\n                            t.row = null\n                        }\n                        const a = {\n                                start: e + t,\n                                end: this.items.length\n                            },\n                            l = f.e.intersect(a, n),\n                            c = f.e.relativeComplement(a, n),\n                            d = i.map((e => ({\n                                id: String(this.itemId++),\n                                element: e,\n                                templateId: this.virtualDelegate.getTemplateId(e),\n                                size: this.virtualDelegate.getHeight(e),\n                                width: void 0,\n                                hasDynamicHeight: !!this.virtualDelegate.hasDynamicHeight && this.virtualDelegate.hasDynamicHeight(e),\n                                lastDynamicHeightWidth: void 0,\n                                row: null,\n                                uri: void 0,\n                                dropTarget: !1,\n                                dragStartDisposable: g.JT.None\n                            })));\n                        let h;\n                        0 === e && t >= this.items.length ? (this.rangeMap = new b, this.rangeMap.splice(0, 0, d), h = this.items, this.items = d) : (this.rangeMap.splice(e, t, d), h = this.items.splice(e, t, ...d));\n                        const u = i.length - t,\n                            p = this.getRenderRange(this.lastRenderTop, this.lastRenderHeight),\n                            m = _(l, u),\n                            v = f.e.intersect(p, m);\n                        for (let e = v.start; e < v.end; e++) this.updateItemInDOM(this.items[e], e);\n                        const w = f.e.relativeComplement(m, p);\n                        for (const e of w)\n                            for (let t = e.start; t < e.end; t++) this.removeItemFromDOM(t);\n                        const y = c.map((e => _(e, u))),\n                            C = [{\n                                start: e,\n                                end: e + i.length\n                            }, ...y].map((e => f.e.intersect(p, e))),\n                            x = this.getNextToLastElement(C);\n                        for (const e of C)\n                            for (let t = e.start; t < e.end; t++) {\n                                const e = this.items[t],\n                                    i = r.get(e.templateId),\n                                    n = null == i ? void 0 : i.pop();\n                                this.insertItemInDOM(t, x, n)\n                            }\n                        for (const e of r.values())\n                            for (const t of e) this.cache.release(t);\n                        return this.eventuallyUpdateScrollDimensions(), this.supportDynamicHeights && this._rerender(this.scrollTop, this.renderHeight), h.map((e => e.element))\n                    }\n                    eventuallyUpdateScrollDimensions() {\n                        this._scrollHeight = this.contentHeight, this.rowsContainer.style.height = `${this._scrollHeight}px`, this.scrollableElementUpdateDisposable || (this.scrollableElementUpdateDisposable = (0, s.jL)((() => {\n                            this.scrollableElement.setScrollDimensions({\n                                scrollHeight: this.scrollHeight\n                            }), this.updateScrollWidth(), this.scrollableElementUpdateDisposable = null\n                        })))\n                    }\n                    eventuallyUpdateScrollWidth() {\n                        this.horizontalScrolling ? this.scrollableElementWidthDelayer.trigger((() => this.updateScrollWidth())) : this.scrollableElementWidthDelayer.cancel()\n                    }\n                    updateScrollWidth() {\n                        if (!this.horizontalScrolling) return;\n                        let e = 0;\n                        for (const t of this.items) void 0 !== t.width && (e = Math.max(e, t.width));\n                        this.scrollWidth = e, this.scrollableElement.setScrollDimensions({\n                            scrollWidth: 0 === e ? 0 : e + 10\n                        })\n                    }\n                    rerender() {\n                        if (this.supportDynamicHeights) {\n                            for (const e of this.items) e.lastDynamicHeightWidth = void 0;\n                            this._rerender(this.lastRenderTop, this.lastRenderHeight)\n                        }\n                    }\n                    get length() {\n                        return this.items.length\n                    }\n                    get renderHeight() {\n                        return this.scrollableElement.getScrollDimensions().height\n                    }\n                    element(e) {\n                        return this.items[e].element\n                    }\n                    domElement(e) {\n                        const t = this.items[e].row;\n                        return t && t.domNode\n                    }\n                    elementHeight(e) {\n                        return this.items[e].size\n                    }\n                    elementTop(e) {\n                        return this.rangeMap.positionAt(e)\n                    }\n                    indexAt(e) {\n                        return this.rangeMap.indexAt(e)\n                    }\n                    indexAfter(e) {\n                        return this.rangeMap.indexAfter(e)\n                    }\n                    layout(e, t) {\n                        let i = {\n                            height: \"number\" == typeof e ? e : (0, s.If)(this.domNode)\n                        };\n                        this.scrollableElementUpdateDisposable && (this.scrollableElementUpdateDisposable.dispose(), this.scrollableElementUpdateDisposable = null, i.scrollHeight = this.scrollHeight), this.scrollableElement.setScrollDimensions(i), void 0 !== t && (this.renderWidth = t, this.supportDynamicHeights && this._rerender(this.scrollTop, this.renderHeight)), this.horizontalScrolling && this.scrollableElement.setScrollDimensions({\n                            width: \"number\" == typeof t ? t : (0, s.FK)(this.domNode)\n                        })\n                    }\n                    render(e, t, i, n, o, s = !1) {\n                        const r = this.getRenderRange(t, i),\n                            a = f.e.relativeComplement(r, e),\n                            l = f.e.relativeComplement(e, r),\n                            c = this.getNextToLastElement(a);\n                        if (s) {\n                            const t = f.e.intersect(e, r);\n                            for (let e = t.start; e < t.end; e++) this.updateItemInDOM(this.items[e], e)\n                        }\n                        for (const e of a)\n                            for (let t = e.start; t < e.end; t++) this.insertItemInDOM(t, c);\n                        for (const e of l)\n                            for (let t = e.start; t < e.end; t++) this.removeItemFromDOM(t);\n                        void 0 !== n && (this.rowsContainer.style.left = `-${n}px`), this.rowsContainer.style.top = `-${t}px`, this.horizontalScrolling && void 0 !== o && (this.rowsContainer.style.width = `${Math.max(o,this.renderWidth)}px`), this.lastRenderTop = t, this.lastRenderHeight = i\n                    }\n                    insertItemInDOM(e, t, i) {\n                        const n = this.items[e];\n                        n.row || (n.row = null != i ? i : this.cache.alloc(n.templateId));\n                        const o = this.accessibilityProvider.getRole(n.element) || \"listitem\";\n                        n.row.domNode.setAttribute(\"role\", o);\n                        const r = this.accessibilityProvider.isChecked(n.element);\n                        void 0 !== r && n.row.domNode.setAttribute(\"aria-checked\", String(!!r)), n.row.domNode.parentElement || (t ? this.rowsContainer.insertBefore(n.row.domNode, t) : this.rowsContainer.appendChild(n.row.domNode)), this.updateItemInDOM(n, e);\n                        const a = this.renderers.get(n.templateId);\n                        if (!a) throw new Error(`No renderer found for template id ${n.templateId}`);\n                        a && a.renderElement(n.element, e, n.row.templateData, n.size);\n                        const l = this.dnd.getDragURI(n.element);\n                        n.dragStartDisposable.dispose(), n.row.domNode.draggable = !!l, l && (n.dragStartDisposable = (0, s.nm)(n.row.domNode, \"dragstart\", (e => this.onDragStart(n.element, l, e)))), this.horizontalScrolling && (this.measureItemWidth(n), this.eventuallyUpdateScrollWidth())\n                    }\n                    measureItemWidth(e) {\n                        if (!e.row || !e.row.domNode) return;\n                        e.row.domNode.style.width = n.vU ? \"-moz-fit-content\" : \"fit-content\", e.width = (0, s.FK)(e.row.domNode);\n                        const t = window.getComputedStyle(e.row.domNode);\n                        t.paddingLeft && (e.width += parseFloat(t.paddingLeft)), t.paddingRight && (e.width += parseFloat(t.paddingRight)), e.row.domNode.style.width = \"\"\n                    }\n                    updateItemInDOM(e, t) {\n                        e.row.domNode.style.top = `${this.elementTop(t)}px`, this.setRowHeight && (e.row.domNode.style.height = `${e.size}px`), this.setRowLineHeight && (e.row.domNode.style.lineHeight = `${e.size}px`), e.row.domNode.setAttribute(\"data-index\", `${t}`), e.row.domNode.setAttribute(\"data-last-element\", t === this.length - 1 ? \"true\" : \"false\"), e.row.domNode.setAttribute(\"data-parity\", t % 2 == 0 ? \"even\" : \"odd\"), e.row.domNode.setAttribute(\"aria-setsize\", String(this.accessibilityProvider.getSetSize(e.element, t, this.length))), e.row.domNode.setAttribute(\"aria-posinset\", String(this.accessibilityProvider.getPosInSet(e.element, t))), e.row.domNode.setAttribute(\"id\", this.getElementDomId(t)), e.row.domNode.classList.toggle(\"drop-target\", e.dropTarget)\n                    }\n                    removeItemFromDOM(e) {\n                        const t = this.items[e];\n                        if (t.dragStartDisposable.dispose(), t.row) {\n                            const i = this.renderers.get(t.templateId);\n                            i && i.disposeElement && i.disposeElement(t.element, e, t.row.templateData, t.size), this.cache.release(t.row), t.row = null\n                        }\n                        this.horizontalScrolling && this.eventuallyUpdateScrollWidth()\n                    }\n                    getScrollTop() {\n                        return this.scrollableElement.getScrollPosition().scrollTop\n                    }\n                    setScrollTop(e, t) {\n                        this.scrollableElementUpdateDisposable && (this.scrollableElementUpdateDisposable.dispose(), this.scrollableElementUpdateDisposable = null, this.scrollableElement.setScrollDimensions({\n                            scrollHeight: this.scrollHeight\n                        })), this.scrollableElement.setScrollPosition({\n                            scrollTop: e,\n                            reuseAnimation: t\n                        })\n                    }\n                    get scrollTop() {\n                        return this.getScrollTop()\n                    }\n                    set scrollTop(e) {\n                        this.setScrollTop(e)\n                    }\n                    get scrollHeight() {\n                        return this._scrollHeight + (this.horizontalScrolling ? 10 : 0) + this.additionalScrollHeight\n                    }\n                    get onMouseClick() {\n                        return u.ju.map(this.disposables.add(new r.Y(this.domNode, \"click\")).event, (e => this.toMouseEvent(e)))\n                    }\n                    get onMouseDblClick() {\n                        return u.ju.map(this.disposables.add(new r.Y(this.domNode, \"dblclick\")).event, (e => this.toMouseEvent(e)))\n                    }\n                    get onMouseMiddleClick() {\n                        return u.ju.filter(u.ju.map(this.disposables.add(new r.Y(this.domNode, \"auxclick\")).event, (e => this.toMouseEvent(e))), (e => 1 === e.browserEvent.button))\n                    }\n                    get onMouseDown() {\n                        return u.ju.map(this.disposables.add(new r.Y(this.domNode, \"mousedown\")).event, (e => this.toMouseEvent(e)))\n                    }\n                    get onContextMenu() {\n                        return u.ju.any(u.ju.map(this.disposables.add(new r.Y(this.domNode, \"contextmenu\")).event, (e => this.toMouseEvent(e))), u.ju.map(this.disposables.add(new r.Y(this.domNode, a.t.Contextmenu)).event, (e => this.toGestureEvent(e))))\n                    }\n                    get onTouchStart() {\n                        return u.ju.map(this.disposables.add(new r.Y(this.domNode, \"touchstart\")).event, (e => this.toTouchEvent(e)))\n                    }\n                    get onTap() {\n                        return u.ju.map(this.disposables.add(new r.Y(this.rowsContainer, a.t.Tap)).event, (e => this.toGestureEvent(e)))\n                    }\n                    toMouseEvent(e) {\n                        const t = this.getItemIndexFromEventTarget(e.target || null),\n                            i = void 0 === t ? void 0 : this.items[t];\n                        return {\n                            browserEvent: e,\n                            index: t,\n                            element: i && i.element\n                        }\n                    }\n                    toTouchEvent(e) {\n                        const t = this.getItemIndexFromEventTarget(e.target || null),\n                            i = void 0 === t ? void 0 : this.items[t];\n                        return {\n                            browserEvent: e,\n                            index: t,\n                            element: i && i.element\n                        }\n                    }\n                    toGestureEvent(e) {\n                        const t = this.getItemIndexFromEventTarget(e.initialTarget || null),\n                            i = void 0 === t ? void 0 : this.items[t];\n                        return {\n                            browserEvent: e,\n                            index: t,\n                            element: i && i.element\n                        }\n                    }\n                    toDragEvent(e) {\n                        const t = this.getItemIndexFromEventTarget(e.target || null),\n                            i = void 0 === t ? void 0 : this.items[t];\n                        return {\n                            browserEvent: e,\n                            index: t,\n                            element: i && i.element\n                        }\n                    }\n                    onScroll(e) {\n                        try {\n                            const t = this.getRenderRange(this.lastRenderTop, this.lastRenderHeight);\n                            this.render(t, e.scrollTop, e.height, e.scrollLeft, e.scrollWidth), this.supportDynamicHeights && this._rerender(e.scrollTop, e.height, e.inSmoothScrolling)\n                        } catch (t) {\n                            throw console.error(\"Got bad scroll event:\", e), t\n                        }\n                    }\n                    onTouchChange(e) {\n                        e.preventDefault(), e.stopPropagation(), this.scrollTop -= e.translationY\n                    }\n                    onDragStart(e, t, i) {\n                        if (!i.dataTransfer) return;\n                        const n = this.dnd.getDragElements(e);\n                        if (i.dataTransfer.effectAllowed = \"copyMove\", i.dataTransfer.setData(o.go.TEXT, t), i.dataTransfer.setDragImage) {\n                            let e;\n                            this.dnd.getDragLabel && (e = this.dnd.getDragLabel(n, i)), void 0 === e && (e = String(n.length));\n                            const t = (0, s.$)(\".monaco-drag-image\");\n                            t.textContent = e, document.body.appendChild(t), i.dataTransfer.setDragImage(t, -10, -10), setTimeout((() => document.body.removeChild(t)), 0)\n                        }\n                        this.currentDragData = new x(n), o.P$.CurrentDragAndDropData = new S(n), this.dnd.onDragStart && this.dnd.onDragStart(this.currentDragData, i)\n                    }\n                    onDragOver(e) {\n                        if (e.browserEvent.preventDefault(), this.onDragLeaveTimeout.dispose(), o.P$.CurrentDragAndDropData && \"vscode-ui\" === o.P$.CurrentDragAndDropData.getData()) return !1;\n                        if (this.setupDragAndDropScrollTopAnimation(e.browserEvent), !e.browserEvent.dataTransfer) return !1;\n                        if (!this.currentDragData)\n                            if (o.P$.CurrentDragAndDropData) this.currentDragData = o.P$.CurrentDragAndDropData;\n                            else {\n                                if (!e.browserEvent.dataTransfer.types) return !1;\n                                this.currentDragData = new k\n                            } const t = this.dnd.onDragOver(this.currentDragData, e.element, e.index, e.browserEvent);\n                        if (this.canDrop = \"boolean\" == typeof t ? t : t.accept, !this.canDrop) return this.currentDragFeedback = void 0, this.currentDragFeedbackDisposable.dispose(), !1;\n                        let i;\n                        if (e.browserEvent.dataTransfer.dropEffect = \"boolean\" != typeof t && 0 === t.effect ? \"copy\" : \"move\", i = \"boolean\" != typeof t && t.feedback ? t.feedback : void 0 === e.index ? [-1] : [e.index], i = (0, c.EB)(i).filter((e => e >= -1 && e < this.length)).sort(((e, t) => e - t)), i = -1 === i[0] ? [-1] : i, n = this.currentDragFeedback, s = i, Array.isArray(n) && Array.isArray(s) ? (0, c.fS)(n, s) : n === s) return !0;\n                        var n, s;\n                        if (this.currentDragFeedback = i, this.currentDragFeedbackDisposable.dispose(), -1 === i[0]) this.domNode.classList.add(\"drop-target\"), this.rowsContainer.classList.add(\"drop-target\"), this.currentDragFeedbackDisposable = (0, g.OF)((() => {\n                            this.domNode.classList.remove(\"drop-target\"), this.rowsContainer.classList.remove(\"drop-target\")\n                        }));\n                        else {\n                            for (const e of i) {\n                                const t = this.items[e];\n                                t.dropTarget = !0, t.row && t.row.domNode.classList.add(\"drop-target\")\n                            }\n                            this.currentDragFeedbackDisposable = (0, g.OF)((() => {\n                                for (const e of i) {\n                                    const t = this.items[e];\n                                    t.dropTarget = !1, t.row && t.row.domNode.classList.remove(\"drop-target\")\n                                }\n                            }))\n                        }\n                        return !0\n                    }\n                    onDragLeave(e) {\n                        var t, i;\n                        this.onDragLeaveTimeout.dispose(), this.onDragLeaveTimeout = (0, d.Vg)((() => this.clearDragOverFeedback()), 100), this.currentDragData && (null === (i = (t = this.dnd).onDragLeave) || void 0 === i || i.call(t, this.currentDragData, e.element, e.index, e.browserEvent))\n                    }\n                    onDrop(e) {\n                        if (!this.canDrop) return;\n                        const t = this.currentDragData;\n                        this.teardownDragAndDropScrollTopAnimation(), this.clearDragOverFeedback(), this.currentDragData = void 0, o.P$.CurrentDragAndDropData = void 0, t && e.browserEvent.dataTransfer && (e.browserEvent.preventDefault(), t.update(e.browserEvent.dataTransfer), this.dnd.drop(t, e.element, e.index, e.browserEvent))\n                    }\n                    onDragEnd(e) {\n                        this.canDrop = !1, this.teardownDragAndDropScrollTopAnimation(), this.clearDragOverFeedback(), this.currentDragData = void 0, o.P$.CurrentDragAndDropData = void 0, this.dnd.onDragEnd && this.dnd.onDragEnd(e)\n                    }\n                    clearDragOverFeedback() {\n                        this.currentDragFeedback = void 0, this.currentDragFeedbackDisposable.dispose(), this.currentDragFeedbackDisposable = g.JT.None\n                    }\n                    setupDragAndDropScrollTopAnimation(e) {\n                        if (!this.dragOverAnimationDisposable) {\n                            const e = (0, s.xQ)(this.domNode).top;\n                            this.dragOverAnimationDisposable = (0, s.jt)(this.animateDragAndDropScrollTop.bind(this, e))\n                        }\n                        this.dragOverAnimationStopDisposable.dispose(), this.dragOverAnimationStopDisposable = (0, d.Vg)((() => {\n                            this.dragOverAnimationDisposable && (this.dragOverAnimationDisposable.dispose(), this.dragOverAnimationDisposable = void 0)\n                        }), 1e3), this.dragOverMouseY = e.pageY\n                    }\n                    animateDragAndDropScrollTop(e) {\n                        if (void 0 === this.dragOverMouseY) return;\n                        const t = this.dragOverMouseY - e,\n                            i = this.renderHeight - 35;\n                        t < 35 ? this.scrollTop += Math.max(-14, Math.floor(.3 * (t - 35))) : t > i && (this.scrollTop += Math.min(14, Math.floor(.3 * (t - i))))\n                    }\n                    teardownDragAndDropScrollTopAnimation() {\n                        this.dragOverAnimationStopDisposable.dispose(), this.dragOverAnimationDisposable && (this.dragOverAnimationDisposable.dispose(), this.dragOverAnimationDisposable = void 0)\n                    }\n                    getItemIndexFromEventTarget(e) {\n                        const t = this.scrollableElement.getDomNode();\n                        let i = e;\n                        for (; i instanceof HTMLElement && i !== this.rowsContainer && t.contains(i);) {\n                            const e = i.getAttribute(\"data-index\");\n                            if (e) {\n                                const t = Number(e);\n                                if (!isNaN(t)) return t\n                            }\n                            i = i.parentElement\n                        }\n                    }\n                    getRenderRange(e, t) {\n                        return {\n                            start: this.rangeMap.indexAt(e),\n                            end: this.rangeMap.indexAfter(e + t - 1)\n                        }\n                    }\n                    _rerender(e, t, i) {\n                        const n = this.getRenderRange(e, t);\n                        let o, s;\n                        e === this.elementTop(n.start) ? (o = n.start, s = 0) : n.end - n.start > 1 && (o = n.start + 1, s = this.elementTop(o) - e);\n                        let r = 0;\n                        for (;;) {\n                            const a = this.getRenderRange(e, t);\n                            let l = !1;\n                            for (let e = a.start; e < a.end; e++) {\n                                const t = this.probeDynamicHeight(e);\n                                0 !== t && this.rangeMap.splice(e, 1, [this.items[e]]), r += t, l = l || 0 !== t\n                            }\n                            if (!l) {\n                                0 !== r && this.eventuallyUpdateScrollDimensions();\n                                const t = f.e.relativeComplement(n, a);\n                                for (const e of t)\n                                    for (let t = e.start; t < e.end; t++) this.items[t].row && this.removeItemFromDOM(t);\n                                const l = f.e.relativeComplement(a, n);\n                                for (const e of l)\n                                    for (let t = e.start; t < e.end; t++) {\n                                        const e = t + 1,\n                                            i = e < this.items.length ? this.items[e].row : null,\n                                            n = i ? i.domNode : null;\n                                        this.insertItemInDOM(t, n)\n                                    }\n                                for (let e = a.start; e < a.end; e++) this.items[e].row && this.updateItemInDOM(this.items[e], e);\n                                if (\"number\" == typeof o) {\n                                    const t = this.scrollable.getFutureScrollPosition().scrollTop - e,\n                                        n = this.elementTop(o) - s + t;\n                                    this.setScrollTop(n, i)\n                                }\n                                return void this._onDidChangeContentHeight.fire(this.contentHeight)\n                            }\n                        }\n                    }\n                    probeDynamicHeight(e) {\n                        const t = this.items[e];\n                        if (this.virtualDelegate.getDynamicHeight) {\n                            const e = this.virtualDelegate.getDynamicHeight(t.element);\n                            if (null !== e) {\n                                const i = t.size;\n                                return t.size = e, t.lastDynamicHeightWidth = this.renderWidth, e - i\n                            }\n                        }\n                        if (!t.hasDynamicHeight || t.lastDynamicHeightWidth === this.renderWidth) return 0;\n                        if (this.virtualDelegate.hasDynamicHeight && !this.virtualDelegate.hasDynamicHeight(t.element)) return 0;\n                        const i = t.size;\n                        if (!this.setRowHeight && t.row) {\n                            let e = t.row.domNode.offsetHeight;\n                            return t.size = e, t.lastDynamicHeightWidth = this.renderWidth, e - i\n                        }\n                        const n = this.cache.alloc(t.templateId);\n                        n.domNode.style.height = \"\", this.rowsContainer.appendChild(n.domNode);\n                        const o = this.renderers.get(t.templateId);\n                        return o && (o.renderElement(t.element, e, n.templateData, void 0), o.disposeElement && o.disposeElement(t.element, e, n.templateData, void 0)), t.size = n.domNode.offsetHeight, this.virtualDelegate.setDynamicHeight && this.virtualDelegate.setDynamicHeight(t.element, t.size), t.lastDynamicHeightWidth = this.renderWidth, this.rowsContainer.removeChild(n.domNode), this.cache.release(n), t.size - i\n                    }\n                    getNextToLastElement(e) {\n                        const t = e[e.length - 1];\n                        if (!t) return null;\n                        const i = this.items[t.end];\n                        return i && i.row ? i.row.domNode : null\n                    }\n                    getElementDomId(e) {\n                        return `${this.domId}_${e}`\n                    }\n                    dispose() {\n                        if (this.items) {\n                            for (const e of this.items)\n                                if (e.row) {\n                                    const t = this.renderers.get(e.row.templateId);\n                                    t && (t.disposeElement && t.disposeElement(e.element, -1, e.row.templateData, void 0), t.disposeTemplate(e.row.templateData))\n                                } this.items = []\n                        }\n                        this.domNode && this.domNode.parentNode && this.domNode.parentNode.removeChild(this.domNode), (0, g.B9)(this.disposables)\n                    }\n                }\n                N.InstanceCount = 0, y([h.H], N.prototype, \"onMouseClick\", null), y([h.H], N.prototype, \"onMouseDblClick\", null), y([h.H], N.prototype, \"onMouseMiddleClick\", null), y([h.H], N.prototype, \"onMouseDown\", null), y([h.H], N.prototype, \"onContextMenu\", null), y([h.H], N.prototype, \"onTouchStart\", null), y([h.H], N.prototype, \"onTap\", null)\n            },\n            43799: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    WK: () => M,\n                    wD: () => V,\n                    aV: () => q,\n                    sx: () => B,\n                    cK: () => I,\n                    hD: () => E,\n                    wn: () => R,\n                    Zo: () => P\n                });\n                var n = i(65321),\n                    o = i(4850),\n                    s = i(59069),\n                    r = i(10553),\n                    a = i(85152);\n                class l {\n                    constructor(e) {\n                        this.spliceables = e\n                    }\n                    splice(e, t, i) {\n                        this.spliceables.forEach((n => n.splice(e, t, i)))\n                    }\n                }\n                var c = i(9488),\n                    d = i(15393),\n                    h = i(41264),\n                    u = i(49898),\n                    g = i(4669),\n                    p = i(75392),\n                    f = i(5976),\n                    m = i(59870),\n                    v = i(36248),\n                    _ = i(1432),\n                    b = i(98401);\n                i(60408);\n                class w extends Error {\n                    constructor(e, t) {\n                        super(`ListError [${e}] ${t}`)\n                    }\n                }\n                var y, C = i(25707),\n                    x = function(e, t, i, n) {\n                        var o, s = arguments.length,\n                            r = s < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n                        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) r = Reflect.decorate(e, t, i, n);\n                        else\n                            for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (r = (s < 3 ? o(r) : s > 3 ? o(t, i, r) : o(t, i)) || r);\n                        return s > 3 && r && Object.defineProperty(t, i, r), r\n                    },\n                    S = function(e, t, i, n) {\n                        return new(i || (i = Promise))((function(o, s) {\n                            function r(e) {\n                                try {\n                                    l(n.next(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function a(e) {\n                                try {\n                                    l(n.throw(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function l(e) {\n                                var t;\n                                e.done ? o(e.value) : (t = e.value, t instanceof i ? t : new i((function(e) {\n                                    e(t)\n                                }))).then(r, a)\n                            }\n                            l((n = n.apply(e, t || [])).next())\n                        }))\n                    };\n                class k {\n                    constructor(e) {\n                        this.trait = e, this.renderedElements = []\n                    }\n                    get templateId() {\n                        return `template:${this.trait.trait}`\n                    }\n                    renderTemplate(e) {\n                        return e\n                    }\n                    renderElement(e, t, i) {\n                        const n = this.renderedElements.findIndex((e => e.templateData === i));\n                        if (n >= 0) {\n                            const e = this.renderedElements[n];\n                            this.trait.unrender(i), e.index = t\n                        } else {\n                            const e = {\n                                index: t,\n                                templateData: i\n                            };\n                            this.renderedElements.push(e)\n                        }\n                        this.trait.renderIndex(t, i)\n                    }\n                    splice(e, t, i) {\n                        const n = [];\n                        for (const o of this.renderedElements) o.index < e ? n.push(o) : o.index >= e + t && n.push({\n                            index: o.index + i - t,\n                            templateData: o.templateData\n                        });\n                        this.renderedElements = n\n                    }\n                    renderIndexes(e) {\n                        for (const {\n                                index: t,\n                                templateData: i\n                            } of this.renderedElements) e.indexOf(t) > -1 && this.trait.renderIndex(t, i)\n                    }\n                    disposeTemplate(e) {\n                        const t = this.renderedElements.findIndex((t => t.templateData === e));\n                        t < 0 || this.renderedElements.splice(t, 1)\n                    }\n                }\n                class L {\n                    constructor(e) {\n                        this._trait = e, this.length = 0, this.indexes = [], this.sortedIndexes = [], this._onChange = new g.Q5, this.onChange = this._onChange.event\n                    }\n                    get trait() {\n                        return this._trait\n                    }\n                    get renderer() {\n                        return new k(this)\n                    }\n                    splice(e, t, i) {\n                        var n;\n                        t = Math.max(0, Math.min(t, this.length - e));\n                        const o = i.length - t,\n                            s = e + t,\n                            r = [...this.sortedIndexes.filter((t => t < e)), ...i.map(((t, i) => t ? i + e : -1)).filter((e => -1 !== e)), ...this.sortedIndexes.filter((e => e >= s)).map((e => e + o))],\n                            a = this.length + o;\n                        if (this.sortedIndexes.length > 0 && 0 === r.length && a > 0) {\n                            const t = null !== (n = this.sortedIndexes.find((t => t >= e))) && void 0 !== n ? n : a - 1;\n                            r.push(Math.min(t, a - 1))\n                        }\n                        this.renderer.splice(e, t, i.length), this._set(r, r), this.length = a\n                    }\n                    renderIndex(e, t) {\n                        t.classList.toggle(this._trait, this.contains(e))\n                    }\n                    unrender(e) {\n                        e.classList.remove(this._trait)\n                    }\n                    set(e, t) {\n                        return this._set(e, [...e].sort(j), t)\n                    }\n                    _set(e, t, i) {\n                        const n = this.indexes,\n                            o = this.sortedIndexes;\n                        this.indexes = e, this.sortedIndexes = t;\n                        const s = z(o, e);\n                        return this.renderer.renderIndexes(s), this._onChange.fire({\n                            indexes: e,\n                            browserEvent: i\n                        }), n\n                    }\n                    get() {\n                        return this.indexes\n                    }\n                    contains(e) {\n                        return (0, c.ry)(this.sortedIndexes, e, j) >= 0\n                    }\n                    dispose() {\n                        (0, f.B9)(this._onChange)\n                    }\n                }\n                x([u.H], L.prototype, \"renderer\", null);\n                class N extends L {\n                    constructor(e) {\n                        super(\"selected\"), this.setAriaSelected = e\n                    }\n                    renderIndex(e, t) {\n                        super.renderIndex(e, t), this.setAriaSelected && (this.contains(e) ? t.setAttribute(\"aria-selected\", \"true\") : t.setAttribute(\"aria-selected\", \"false\"))\n                    }\n                }\n                class D {\n                    constructor(e, t, i) {\n                        this.trait = e, this.view = t, this.identityProvider = i\n                    }\n                    splice(e, t, i) {\n                        if (!this.identityProvider) return this.trait.splice(e, t, i.map((() => !1)));\n                        const n = this.trait.get().map((e => this.identityProvider.getId(this.view.element(e)).toString())),\n                            o = i.map((e => n.indexOf(this.identityProvider.getId(e).toString()) > -1));\n                        this.trait.splice(e, t, o)\n                    }\n                }\n\n                function I(e) {\n                    return \"INPUT\" === e.tagName || \"TEXTAREA\" === e.tagName\n                }\n\n                function E(e) {\n                    return !!e.classList.contains(\"monaco-editor\") || !e.classList.contains(\"monaco-list\") && (!!e.parentElement && E(e.parentElement))\n                }\n                class T {\n                    constructor(e, t, i) {\n                        this.list = e, this.view = t, this.disposables = new f.SL, this.multipleSelectionDisposables = new f.SL, this.onKeyDown.filter((e => 3 === e.keyCode)).on(this.onEnter, this, this.disposables), this.onKeyDown.filter((e => 16 === e.keyCode)).on(this.onUpArrow, this, this.disposables), this.onKeyDown.filter((e => 18 === e.keyCode)).on(this.onDownArrow, this, this.disposables), this.onKeyDown.filter((e => 11 === e.keyCode)).on(this.onPageUpArrow, this, this.disposables), this.onKeyDown.filter((e => 12 === e.keyCode)).on(this.onPageDownArrow, this, this.disposables), this.onKeyDown.filter((e => 9 === e.keyCode)).on(this.onEscape, this, this.disposables), !1 !== i.multipleSelectionSupport && this.onKeyDown.filter((e => (_.dz ? e.metaKey : e.ctrlKey) && 31 === e.keyCode)).on(this.onCtrlA, this, this.multipleSelectionDisposables)\n                    }\n                    get onKeyDown() {\n                        return g.ju.chain(this.disposables.add(new o.Y(this.view.domNode, \"keydown\")).event).filter((e => !I(e.target))).map((e => new s.y(e)))\n                    }\n                    updateOptions(e) {\n                        void 0 !== e.multipleSelectionSupport && (this.multipleSelectionDisposables.clear(), e.multipleSelectionSupport && this.onKeyDown.filter((e => (_.dz ? e.metaKey : e.ctrlKey) && 31 === e.keyCode)).on(this.onCtrlA, this, this.multipleSelectionDisposables))\n                    }\n                    onEnter(e) {\n                        e.preventDefault(), e.stopPropagation(), this.list.setSelection(this.list.getFocus(), e.browserEvent)\n                    }\n                    onUpArrow(e) {\n                        e.preventDefault(), e.stopPropagation(), this.list.focusPrevious(1, !1, e.browserEvent);\n                        const t = this.list.getFocus()[0];\n                        this.list.setAnchor(t), this.list.reveal(t), this.view.domNode.focus()\n                    }\n                    onDownArrow(e) {\n                        e.preventDefault(), e.stopPropagation(), this.list.focusNext(1, !1, e.browserEvent);\n                        const t = this.list.getFocus()[0];\n                        this.list.setAnchor(t), this.list.reveal(t), this.view.domNode.focus()\n                    }\n                    onPageUpArrow(e) {\n                        e.preventDefault(), e.stopPropagation(), this.list.focusPreviousPage(e.browserEvent);\n                        const t = this.list.getFocus()[0];\n                        this.list.setAnchor(t), this.list.reveal(t), this.view.domNode.focus()\n                    }\n                    onPageDownArrow(e) {\n                        e.preventDefault(), e.stopPropagation(), this.list.focusNextPage(e.browserEvent);\n                        const t = this.list.getFocus()[0];\n                        this.list.setAnchor(t), this.list.reveal(t), this.view.domNode.focus()\n                    }\n                    onCtrlA(e) {\n                        e.preventDefault(), e.stopPropagation(), this.list.setSelection((0, c.w6)(this.list.length), e.browserEvent), this.list.setAnchor(void 0), this.view.domNode.focus()\n                    }\n                    onEscape(e) {\n                        this.list.getSelection().length && (e.preventDefault(), e.stopPropagation(), this.list.setSelection([], e.browserEvent), this.list.setAnchor(void 0), this.view.domNode.focus())\n                    }\n                    dispose() {\n                        this.disposables.dispose(), this.multipleSelectionDisposables.dispose()\n                    }\n                }\n                x([u.H], T.prototype, \"onKeyDown\", null),\n                    function(e) {\n                        e[e.Idle = 0] = \"Idle\", e[e.Typing = 1] = \"Typing\"\n                    }(y || (y = {}));\n                const M = new class {\n                    mightProducePrintableCharacter(e) {\n                        return !(e.ctrlKey || e.metaKey || e.altKey) && (e.keyCode >= 31 && e.keyCode <= 56 || e.keyCode >= 21 && e.keyCode <= 30 || e.keyCode >= 93 && e.keyCode <= 102 || e.keyCode >= 80 && e.keyCode <= 90)\n                    }\n                };\n                class A {\n                    constructor(e, t, i, n) {\n                        this.list = e, this.view = t, this.keyboardNavigationLabelProvider = i, this.delegate = n, this.enabled = !1, this.state = y.Idle, this.automaticKeyboardNavigation = !0, this.triggered = !1, this.previouslyFocused = -1, this.enabledDisposables = new f.SL, this.disposables = new f.SL, this.updateOptions(e.options)\n                    }\n                    updateOptions(e) {\n                        void 0 === e.enableKeyboardNavigation || !!e.enableKeyboardNavigation ? this.enable() : this.disable(), void 0 !== e.automaticKeyboardNavigation && (this.automaticKeyboardNavigation = e.automaticKeyboardNavigation)\n                    }\n                    enable() {\n                        if (this.enabled) return;\n                        const e = g.ju.chain(this.enabledDisposables.add(new o.Y(this.view.domNode, \"keydown\")).event).filter((e => !I(e.target))).filter((() => this.automaticKeyboardNavigation || this.triggered)).map((e => new s.y(e))).filter((e => this.delegate.mightProducePrintableCharacter(e))).forEach((e => {\n                                e.stopPropagation(), e.preventDefault()\n                            })).map((e => e.browserEvent.key)).event,\n                            t = g.ju.debounce(e, (() => null), 800);\n                        g.ju.reduce(g.ju.any(e, t), ((e, t) => null === t ? null : (e || \"\") + t))(this.onInput, this, this.enabledDisposables), t(this.onClear, this, this.enabledDisposables), this.enabled = !0, this.triggered = !1\n                    }\n                    disable() {\n                        this.enabled && (this.enabledDisposables.clear(), this.enabled = !1, this.triggered = !1)\n                    }\n                    onClear() {\n                        var e;\n                        const t = this.list.getFocus();\n                        if (t.length > 0 && t[0] === this.previouslyFocused) {\n                            const i = null === (e = this.list.options.accessibilityProvider) || void 0 === e ? void 0 : e.getAriaLabel(this.list.element(t[0]));\n                            i && (0, a.Z9)(i)\n                        }\n                        this.previouslyFocused = -1\n                    }\n                    onInput(e) {\n                        if (!e) return this.state = y.Idle, void(this.triggered = !1);\n                        const t = this.list.getFocus(),\n                            i = t.length > 0 ? t[0] : 0,\n                            n = this.state === y.Idle ? 1 : 0;\n                        this.state = y.Typing;\n                        for (let t = 0; t < this.list.length; t++) {\n                            const o = (i + t + n) % this.list.length,\n                                s = this.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(this.view.element(o)),\n                                r = s && s.toString();\n                            if (void 0 === r || (0, p.Ji)(e, r)) return this.previouslyFocused = i, this.list.setFocus([o]), void this.list.reveal(o)\n                        }\n                    }\n                    dispose() {\n                        this.disable(), this.enabledDisposables.dispose(), this.disposables.dispose()\n                    }\n                }\n                class O {\n                    constructor(e, t) {\n                        this.list = e, this.view = t, this.disposables = new f.SL;\n                        g.ju.chain(this.disposables.add(new o.Y(t.domNode, \"keydown\")).event).filter((e => !I(e.target))).map((e => new s.y(e))).filter((e => !(2 !== e.keyCode || e.ctrlKey || e.metaKey || e.shiftKey || e.altKey))).on(this.onTab, this, this.disposables)\n                    }\n                    onTab(e) {\n                        if (e.target !== this.view.domNode) return;\n                        const t = this.list.getFocus();\n                        if (0 === t.length) return;\n                        const i = this.view.domElement(t[0]);\n                        if (!i) return;\n                        const n = i.querySelector(\"[tabIndex]\");\n                        if (!(n && n instanceof HTMLElement && -1 !== n.tabIndex)) return;\n                        const o = window.getComputedStyle(n);\n                        \"hidden\" !== o.visibility && \"none\" !== o.display && (e.preventDefault(), e.stopPropagation(), n.focus())\n                    }\n                    dispose() {\n                        this.disposables.dispose()\n                    }\n                }\n\n                function P(e) {\n                    return _.dz ? e.browserEvent.metaKey : e.browserEvent.ctrlKey\n                }\n\n                function R(e) {\n                    return e.browserEvent.shiftKey\n                }\n                const F = {\n                    isSelectionSingleChangeEvent: P,\n                    isSelectionRangeChangeEvent: R\n                };\n                class B {\n                    constructor(e) {\n                        this.list = e, this.disposables = new f.SL, this._onPointer = new g.Q5, this.onPointer = this._onPointer.event, !1 !== e.options.multipleSelectionSupport && (this.multipleSelectionController = this.list.options.multipleSelectionController || F), this.mouseSupport = void 0 === e.options.mouseSupport || !!e.options.mouseSupport, this.mouseSupport && (e.onMouseDown(this.onMouseDown, this, this.disposables), e.onContextMenu(this.onContextMenu, this, this.disposables), e.onMouseDblClick(this.onDoubleClick, this, this.disposables), e.onTouchStart(this.onMouseDown, this, this.disposables), this.disposables.add(r.o.addTarget(e.getHTMLElement()))), g.ju.any(e.onMouseClick, e.onMouseMiddleClick, e.onTap)(this.onViewPointer, this, this.disposables)\n                    }\n                    updateOptions(e) {\n                        void 0 !== e.multipleSelectionSupport && (this.multipleSelectionController = void 0, e.multipleSelectionSupport && (this.multipleSelectionController = this.list.options.multipleSelectionController || F))\n                    }\n                    isSelectionSingleChangeEvent(e) {\n                        return !!this.multipleSelectionController && this.multipleSelectionController.isSelectionSingleChangeEvent(e)\n                    }\n                    isSelectionRangeChangeEvent(e) {\n                        return !!this.multipleSelectionController && this.multipleSelectionController.isSelectionRangeChangeEvent(e)\n                    }\n                    isSelectionChangeEvent(e) {\n                        return this.isSelectionSingleChangeEvent(e) || this.isSelectionRangeChangeEvent(e)\n                    }\n                    onMouseDown(e) {\n                        E(e.browserEvent.target) || document.activeElement !== e.browserEvent.target && this.list.domFocus()\n                    }\n                    onContextMenu(e) {\n                        if (E(e.browserEvent.target)) return;\n                        const t = void 0 === e.index ? [] : [e.index];\n                        this.list.setFocus(t, e.browserEvent)\n                    }\n                    onViewPointer(e) {\n                        if (!this.mouseSupport) return;\n                        if (I(e.browserEvent.target) || E(e.browserEvent.target)) return;\n                        const t = e.index;\n                        return void 0 === t ? (this.list.setFocus([], e.browserEvent), this.list.setSelection([], e.browserEvent), void this.list.setAnchor(void 0)) : this.isSelectionRangeChangeEvent(e) || this.isSelectionChangeEvent(e) ? this.changeSelection(e) : (this.list.setFocus([t], e.browserEvent), this.list.setAnchor(t), (i = e.browserEvent) instanceof MouseEvent && 2 === i.button || this.list.setSelection([t], e.browserEvent), void this._onPointer.fire(e));\n                        var i\n                    }\n                    onDoubleClick(e) {\n                        if (I(e.browserEvent.target) || E(e.browserEvent.target)) return;\n                        if (this.isSelectionChangeEvent(e)) return;\n                        const t = this.list.getFocus();\n                        this.list.setSelection(t, e.browserEvent)\n                    }\n                    changeSelection(e) {\n                        const t = e.index;\n                        let i = this.list.getAnchor();\n                        if (this.isSelectionRangeChangeEvent(e)) {\n                            if (void 0 === i) {\n                                const e = this.list.getFocus()[0];\n                                i = null != e ? e : t, this.list.setAnchor(i)\n                            }\n                            const n = Math.min(i, t),\n                                o = Math.max(i, t),\n                                s = (0, c.w6)(n, o + 1),\n                                r = this.list.getSelection(),\n                                a = function(e, t) {\n                                    const i = e.indexOf(t);\n                                    if (-1 === i) return [];\n                                    const n = [];\n                                    let o = i - 1;\n                                    for (; o >= 0 && e[o] === t - (i - o);) n.push(e[o--]);\n                                    n.reverse(), o = i;\n                                    for (; o < e.length && e[o] === t + (o - i);) n.push(e[o++]);\n                                    return n\n                                }(z(r, [i]), i);\n                            if (0 === a.length) return;\n                            const l = z(s, function(e, t) {\n                                const i = [];\n                                let n = 0,\n                                    o = 0;\n                                for (; n < e.length || o < t.length;)\n                                    if (n >= e.length) i.push(t[o++]);\n                                    else if (o >= t.length) i.push(e[n++]);\n                                else {\n                                    if (e[n] === t[o]) {\n                                        n++, o++;\n                                        continue\n                                    }\n                                    e[n] < t[o] ? i.push(e[n++]) : o++\n                                }\n                                return i\n                            }(r, a));\n                            this.list.setSelection(l, e.browserEvent), this.list.setFocus([t], e.browserEvent)\n                        } else if (this.isSelectionSingleChangeEvent(e)) {\n                            const i = this.list.getSelection(),\n                                n = i.filter((e => e !== t));\n                            this.list.setFocus([t]), this.list.setAnchor(t), i.length === n.length ? this.list.setSelection([...n, t], e.browserEvent) : this.list.setSelection(n, e.browserEvent)\n                        }\n                    }\n                    dispose() {\n                        this.disposables.dispose()\n                    }\n                }\n                class V {\n                    constructor(e, t) {\n                        this.styleElement = e, this.selectorSuffix = t\n                    }\n                    style(e) {\n                        const t = this.selectorSuffix && `.${this.selectorSuffix}`,\n                            i = [];\n                        e.listBackground && (e.listBackground.isOpaque() ? i.push(`.monaco-list${t} .monaco-list-rows { background: ${e.listBackground}; }`) : _.dz || console.warn(`List with id '${this.selectorSuffix}' was styled with a non-opaque background color. This will break sub-pixel antialiasing.`)), e.listFocusBackground && (i.push(`.monaco-list${t}:focus .monaco-list-row.focused { background-color: ${e.listFocusBackground}; }`), i.push(`.monaco-list${t}:focus .monaco-list-row.focused:hover { background-color: ${e.listFocusBackground}; }`)), e.listFocusForeground && i.push(`.monaco-list${t}:focus .monaco-list-row.focused { color: ${e.listFocusForeground}; }`), e.listActiveSelectionBackground && (i.push(`.monaco-list${t}:focus .monaco-list-row.selected { background-color: ${e.listActiveSelectionBackground}; }`), i.push(`.monaco-list${t}:focus .monaco-list-row.selected:hover { background-color: ${e.listActiveSelectionBackground}; }`)), e.listActiveSelectionForeground && i.push(`.monaco-list${t}:focus .monaco-list-row.selected { color: ${e.listActiveSelectionForeground}; }`), e.listActiveSelectionIconForeground && i.push(`.monaco-list${t}:focus .monaco-list-row.selected .codicon { color: ${e.listActiveSelectionIconForeground}; }`), e.listFocusAndSelectionBackground && i.push(`\\n\\t\\t\\t\\t.monaco-drag-image,\\n\\t\\t\\t\\t.monaco-list${t}:focus .monaco-list-row.selected.focused { background-color: ${e.listFocusAndSelectionBackground}; }\\n\\t\\t\\t`), e.listFocusAndSelectionForeground && i.push(`\\n\\t\\t\\t\\t.monaco-drag-image,\\n\\t\\t\\t\\t.monaco-list${t}:focus .monaco-list-row.selected.focused { color: ${e.listFocusAndSelectionForeground}; }\\n\\t\\t\\t`), e.listInactiveFocusForeground && (i.push(`.monaco-list${t} .monaco-list-row.focused { color:  ${e.listInactiveFocusForeground}; }`), i.push(`.monaco-list${t} .monaco-list-row.focused:hover { color:  ${e.listInactiveFocusForeground}; }`)), e.listInactiveSelectionIconForeground && i.push(`.monaco-list${t} .monaco-list-row.focused .codicon { color:  ${e.listInactiveSelectionIconForeground}; }`), e.listInactiveFocusBackground && (i.push(`.monaco-list${t} .monaco-list-row.focused { background-color:  ${e.listInactiveFocusBackground}; }`), i.push(`.monaco-list${t} .monaco-list-row.focused:hover { background-color:  ${e.listInactiveFocusBackground}; }`)), e.listInactiveSelectionBackground && (i.push(`.monaco-list${t} .monaco-list-row.selected { background-color:  ${e.listInactiveSelectionBackground}; }`), i.push(`.monaco-list${t} .monaco-list-row.selected:hover { background-color:  ${e.listInactiveSelectionBackground}; }`)), e.listInactiveSelectionForeground && i.push(`.monaco-list${t} .monaco-list-row.selected { color: ${e.listInactiveSelectionForeground}; }`), e.listHoverBackground && i.push(`.monaco-list${t}:not(.drop-target) .monaco-list-row:hover:not(.selected):not(.focused) { background-color: ${e.listHoverBackground}; }`), e.listHoverForeground && i.push(`.monaco-list${t} .monaco-list-row:hover:not(.selected):not(.focused) { color:  ${e.listHoverForeground}; }`), e.listSelectionOutline && i.push(`.monaco-list${t} .monaco-list-row.selected { outline: 1px dotted ${e.listSelectionOutline}; outline-offset: -1px; }`), e.listFocusOutline && i.push(`\\n\\t\\t\\t\\t.monaco-drag-image,\\n\\t\\t\\t\\t.monaco-list${t}:focus .monaco-list-row.focused { outline: 1px solid ${e.listFocusOutline}; outline-offset: -1px; }\\n\\t\\t\\t`), e.listInactiveFocusOutline && i.push(`.monaco-list${t} .monaco-list-row.focused { outline: 1px dotted ${e.listInactiveFocusOutline}; outline-offset: -1px; }`), e.listHoverOutline && i.push(`.monaco-list${t} .monaco-list-row:hover { outline: 1px dashed ${e.listHoverOutline}; outline-offset: -1px; }`), e.listDropBackground && i.push(`\\n\\t\\t\\t\\t.monaco-list${t}.drop-target,\\n\\t\\t\\t\\t.monaco-list${t} .monaco-list-rows.drop-target,\\n\\t\\t\\t\\t.monaco-list${t} .monaco-list-row.drop-target { background-color: ${e.listDropBackground} !important; color: inherit !important; }\\n\\t\\t\\t`), e.listFilterWidgetBackground && i.push(`.monaco-list-type-filter { background-color: ${e.listFilterWidgetBackground} }`), e.listFilterWidgetOutline && i.push(`.monaco-list-type-filter { border: 1px solid ${e.listFilterWidgetOutline}; }`), e.listFilterWidgetNoMatchesOutline && i.push(`.monaco-list-type-filter.no-matches { border: 1px solid ${e.listFilterWidgetNoMatchesOutline}; }`), e.listMatchesShadow && i.push(`.monaco-list-type-filter { box-shadow: 1px 1px 1px ${e.listMatchesShadow}; }`), e.tableColumnsBorder && i.push(`\\n\\t\\t\\t\\t.monaco-table:hover > .monaco-split-view2,\\n\\t\\t\\t\\t.monaco-table:hover > .monaco-split-view2 .monaco-sash.vertical::before {\\n\\t\\t\\t\\t\\tborder-color: ${e.tableColumnsBorder};\\n\\t\\t\\t}`), this.styleElement.textContent = i.join(\"\\n\")\n                    }\n                }\n                const W = {\n                        listFocusBackground: h.Il.fromHex(\"#7FB0D0\"),\n                        listActiveSelectionBackground: h.Il.fromHex(\"#0E639C\"),\n                        listActiveSelectionForeground: h.Il.fromHex(\"#FFFFFF\"),\n                        listActiveSelectionIconForeground: h.Il.fromHex(\"#FFFFFF\"),\n                        listFocusAndSelectionBackground: h.Il.fromHex(\"#094771\"),\n                        listFocusAndSelectionForeground: h.Il.fromHex(\"#FFFFFF\"),\n                        listInactiveSelectionBackground: h.Il.fromHex(\"#3F3F46\"),\n                        listInactiveSelectionIconForeground: h.Il.fromHex(\"#FFFFFF\"),\n                        listHoverBackground: h.Il.fromHex(\"#2A2D2E\"),\n                        listDropBackground: h.Il.fromHex(\"#383B3D\"),\n                        treeIndentGuidesStroke: h.Il.fromHex(\"#a9a9a9\"),\n                        tableColumnsBorder: h.Il.fromHex(\"#cccccc\").transparent(.2)\n                    },\n                    H = {\n                        keyboardSupport: !0,\n                        mouseSupport: !0,\n                        multipleSelectionSupport: !0,\n                        dnd: {\n                            getDragURI: () => null,\n                            onDragStart() {},\n                            onDragOver: () => !1,\n                            drop() {}\n                        }\n                    };\n\n                function z(e, t) {\n                    const i = [];\n                    let n = 0,\n                        o = 0;\n                    for (; n < e.length || o < t.length;)\n                        if (n >= e.length) i.push(t[o++]);\n                        else if (o >= t.length) i.push(e[n++]);\n                    else {\n                        if (e[n] === t[o]) {\n                            i.push(e[n]), n++, o++;\n                            continue\n                        }\n                        e[n] < t[o] ? i.push(e[n++]) : i.push(t[o++])\n                    }\n                    return i\n                }\n                const j = (e, t) => e - t;\n                class U {\n                    constructor(e, t) {\n                        this._templateId = e, this.renderers = t\n                    }\n                    get templateId() {\n                        return this._templateId\n                    }\n                    renderTemplate(e) {\n                        return this.renderers.map((t => t.renderTemplate(e)))\n                    }\n                    renderElement(e, t, i, n) {\n                        let o = 0;\n                        for (const s of this.renderers) s.renderElement(e, t, i[o++], n)\n                    }\n                    disposeElement(e, t, i, n) {\n                        let o = 0;\n                        for (const s of this.renderers) s.disposeElement && s.disposeElement(e, t, i[o], n), o += 1\n                    }\n                    disposeTemplate(e) {\n                        let t = 0;\n                        for (const i of this.renderers) i.disposeTemplate(e[t++])\n                    }\n                }\n                class $ {\n                    constructor(e) {\n                        this.accessibilityProvider = e, this.templateId = \"a18n\"\n                    }\n                    renderTemplate(e) {\n                        return e\n                    }\n                    renderElement(e, t, i) {\n                        const n = this.accessibilityProvider.getAriaLabel(e);\n                        n ? i.setAttribute(\"aria-label\", n) : i.removeAttribute(\"aria-label\");\n                        const o = this.accessibilityProvider.getAriaLevel && this.accessibilityProvider.getAriaLevel(e);\n                        \"number\" == typeof o ? i.setAttribute(\"aria-level\", `${o}`) : i.removeAttribute(\"aria-level\")\n                    }\n                    disposeTemplate(e) {}\n                }\n                class K {\n                    constructor(e, t) {\n                        this.list = e, this.dnd = t\n                    }\n                    getDragElements(e) {\n                        const t = this.list.getSelectedElements();\n                        return t.indexOf(e) > -1 ? t : [e]\n                    }\n                    getDragURI(e) {\n                        return this.dnd.getDragURI(e)\n                    }\n                    getDragLabel(e, t) {\n                        if (this.dnd.getDragLabel) return this.dnd.getDragLabel(e, t)\n                    }\n                    onDragStart(e, t) {\n                        this.dnd.onDragStart && this.dnd.onDragStart(e, t)\n                    }\n                    onDragOver(e, t, i, n) {\n                        return this.dnd.onDragOver(e, t, i, n)\n                    }\n                    onDragLeave(e, t, i, n) {\n                        var o, s;\n                        null === (s = (o = this.dnd).onDragLeave) || void 0 === s || s.call(o, e, t, i, n)\n                    }\n                    onDragEnd(e) {\n                        this.dnd.onDragEnd && this.dnd.onDragEnd(e)\n                    }\n                    drop(e, t, i, n) {\n                        this.dnd.drop(e, t, i, n)\n                    }\n                }\n                class q {\n                    constructor(e, t, i, o, s = H) {\n                        var r;\n                        this.user = e, this._options = s, this.focus = new L(\"focused\"), this.anchor = new L(\"anchor\"), this.eventBufferer = new g.E7, this._ariaLabel = \"\", this.disposables = new f.SL, this._onDidDispose = new g.Q5, this.onDidDispose = this._onDidDispose.event;\n                        const a = this._options.accessibilityProvider && this._options.accessibilityProvider.getWidgetRole ? null === (r = this._options.accessibilityProvider) || void 0 === r ? void 0 : r.getWidgetRole() : \"list\";\n                        this.selection = new N(\"listbox\" !== a), (0, v.jB)(s, W, !1);\n                        const c = [this.focus.renderer, this.selection.renderer];\n                        this.accessibilityProvider = s.accessibilityProvider, this.accessibilityProvider && (c.push(new $(this.accessibilityProvider)), this.accessibilityProvider.onDidChangeActiveDescendant && this.accessibilityProvider.onDidChangeActiveDescendant(this.onDidChangeActiveDescendant, this, this.disposables)), o = o.map((e => new U(e.templateId, [...c, e])));\n                        const d = Object.assign(Object.assign({}, s), {\n                            dnd: s.dnd && new K(this, s.dnd)\n                        });\n                        if (this.view = new C.Bv(t, i, o, d), this.view.domNode.setAttribute(\"role\", a), s.styleController) this.styleController = s.styleController(this.view.domId);\n                        else {\n                            const e = (0, n.dS)(this.view.domNode);\n                            this.styleController = new V(e, this.view.domId)\n                        }\n                        if (this.spliceable = new l([new D(this.focus, this.view, s.identityProvider), new D(this.selection, this.view, s.identityProvider), new D(this.anchor, this.view, s.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 O(this, this.view)), (\"boolean\" != typeof s.keyboardSupport || s.keyboardSupport) && (this.keyboardController = new T(this, this.view, s), this.disposables.add(this.keyboardController)), s.keyboardNavigationLabelProvider) {\n                            const e = s.keyboardNavigationDelegate || M;\n                            this.typeLabelController = new A(this, this.view, s.keyboardNavigationLabelProvider, e), this.disposables.add(this.typeLabelController)\n                        }\n                        this.mouseController = this.createMouseController(s), 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()), !1 !== this._options.multipleSelectionSupport && this.view.domNode.setAttribute(\"aria-multiselectable\", \"true\")\n                    }\n                    get onDidChangeFocus() {\n                        return g.ju.map(this.eventBufferer.wrapEvent(this.focus.onChange), (e => this.toListEvent(e)))\n                    }\n                    get onDidChangeSelection() {\n                        return g.ju.map(this.eventBufferer.wrapEvent(this.selection.onChange), (e => this.toListEvent(e)))\n                    }\n                    get domId() {\n                        return this.view.domId\n                    }\n                    get onMouseClick() {\n                        return this.view.onMouseClick\n                    }\n                    get onMouseDblClick() {\n                        return this.view.onMouseDblClick\n                    }\n                    get onMouseMiddleClick() {\n                        return this.view.onMouseMiddleClick\n                    }\n                    get onPointer() {\n                        return this.mouseController.onPointer\n                    }\n                    get onMouseDown() {\n                        return this.view.onMouseDown\n                    }\n                    get onTouchStart() {\n                        return this.view.onTouchStart\n                    }\n                    get onTap() {\n                        return this.view.onTap\n                    }\n                    get onContextMenu() {\n                        let e = !1;\n                        const t = g.ju.chain(this.disposables.add(new o.Y(this.view.domNode, \"keydown\")).event).map((e => new s.y(e))).filter((t => e = 58 === t.keyCode || t.shiftKey && 68 === t.keyCode)).map(o.p).filter((() => !1)).event,\n                            i = g.ju.chain(this.disposables.add(new o.Y(this.view.domNode, \"keyup\")).event).forEach((() => e = !1)).map((e => new s.y(e))).filter((e => 58 === e.keyCode || e.shiftKey && 68 === e.keyCode)).map(o.p).map((({\n                                browserEvent: e\n                            }) => {\n                                const t = this.getFocus(),\n                                    i = t.length ? t[0] : void 0;\n                                return {\n                                    index: i,\n                                    element: void 0 !== i ? this.view.element(i) : void 0,\n                                    anchor: void 0 !== i ? this.view.domElement(i) : this.view.domNode,\n                                    browserEvent: e\n                                }\n                            })).event,\n                            n = g.ju.chain(this.view.onContextMenu).filter((t => !e)).map((({\n                                element: e,\n                                index: t,\n                                browserEvent: i\n                            }) => ({\n                                element: e,\n                                index: t,\n                                anchor: {\n                                    x: i.pageX + 1,\n                                    y: i.pageY\n                                },\n                                browserEvent: i\n                            }))).event;\n                        return g.ju.any(t, i, n)\n                    }\n                    get onKeyDown() {\n                        return this.disposables.add(new o.Y(this.view.domNode, \"keydown\")).event\n                    }\n                    get onDidFocus() {\n                        return g.ju.signal(this.disposables.add(new o.Y(this.view.domNode, \"focus\", !0)).event)\n                    }\n                    createMouseController(e) {\n                        return new B(this)\n                    }\n                    updateOptions(e = {}) {\n                        var t;\n                        this._options = Object.assign(Object.assign({}, this._options), e), this.typeLabelController && this.typeLabelController.updateOptions(this._options), void 0 !== this._options.multipleSelectionController && (this._options.multipleSelectionSupport ? this.view.domNode.setAttribute(\"aria-multiselectable\", \"true\") : this.view.domNode.removeAttribute(\"aria-multiselectable\")), this.mouseController.updateOptions(e), null === (t = this.keyboardController) || void 0 === t || t.updateOptions(e), this.view.updateOptions(e)\n                    }\n                    get options() {\n                        return this._options\n                    }\n                    splice(e, t, i = []) {\n                        if (e < 0 || e > this.view.length) throw new w(this.user, `Invalid start index: ${e}`);\n                        if (t < 0) throw new w(this.user, `Invalid delete count: ${t}`);\n                        0 === t && 0 === i.length || this.eventBufferer.bufferEvents((() => this.spliceable.splice(e, t, i)))\n                    }\n                    rerender() {\n                        this.view.rerender()\n                    }\n                    element(e) {\n                        return this.view.element(e)\n                    }\n                    get length() {\n                        return this.view.length\n                    }\n                    get contentHeight() {\n                        return this.view.contentHeight\n                    }\n                    get scrollTop() {\n                        return this.view.getScrollTop()\n                    }\n                    set scrollTop(e) {\n                        this.view.setScrollTop(e)\n                    }\n                    get ariaLabel() {\n                        return this._ariaLabel\n                    }\n                    set ariaLabel(e) {\n                        this._ariaLabel = e, this.view.domNode.setAttribute(\"aria-label\", e)\n                    }\n                    domFocus() {\n                        this.view.domNode.focus({\n                            preventScroll: !0\n                        })\n                    }\n                    layout(e, t) {\n                        this.view.layout(e, t)\n                    }\n                    setSelection(e, t) {\n                        for (const t of e)\n                            if (t < 0 || t >= this.length) throw new w(this.user, `Invalid index ${t}`);\n                        this.selection.set(e, t)\n                    }\n                    getSelection() {\n                        return this.selection.get()\n                    }\n                    getSelectedElements() {\n                        return this.getSelection().map((e => this.view.element(e)))\n                    }\n                    setAnchor(e) {\n                        if (void 0 !== e) {\n                            if (e < 0 || e >= this.length) throw new w(this.user, `Invalid index ${e}`);\n                            this.anchor.set([e])\n                        } else this.anchor.set([])\n                    }\n                    getAnchor() {\n                        return (0, c.Xh)(this.anchor.get(), void 0)\n                    }\n                    getAnchorElement() {\n                        const e = this.getAnchor();\n                        return void 0 === e ? void 0 : this.element(e)\n                    }\n                    setFocus(e, t) {\n                        for (const t of e)\n                            if (t < 0 || t >= this.length) throw new w(this.user, `Invalid index ${t}`);\n                        this.focus.set(e, t)\n                    }\n                    focusNext(e = 1, t = !1, i, n) {\n                        if (0 === this.length) return;\n                        const o = this.focus.get(),\n                            s = this.findNextIndex(o.length > 0 ? o[0] + e : 0, t, n);\n                        s > -1 && this.setFocus([s], i)\n                    }\n                    focusPrevious(e = 1, t = !1, i, n) {\n                        if (0 === this.length) return;\n                        const o = this.focus.get(),\n                            s = this.findPreviousIndex(o.length > 0 ? o[0] - e : 0, t, n);\n                        s > -1 && this.setFocus([s], i)\n                    }\n                    focusNextPage(e, t) {\n                        return S(this, void 0, void 0, (function*() {\n                            let i = this.view.indexAt(this.view.getScrollTop() + this.view.renderHeight);\n                            i = 0 === i ? 0 : i - 1;\n                            const n = this.view.element(i),\n                                o = this.getFocusedElements()[0];\n                            if (o !== n) {\n                                const n = this.findPreviousIndex(i, !1, t);\n                                n > -1 && o !== this.view.element(n) ? this.setFocus([n], e) : this.setFocus([i], e)\n                            } else {\n                                const n = this.view.getScrollTop();\n                                this.view.setScrollTop(n + this.view.renderHeight - this.view.elementHeight(i)), this.view.getScrollTop() !== n && (this.setFocus([]), yield(0, d.Vs)(0), yield this.focusNextPage(e, t))\n                            }\n                        }))\n                    }\n                    focusPreviousPage(e, t) {\n                        return S(this, void 0, void 0, (function*() {\n                            let i;\n                            const n = this.view.getScrollTop();\n                            i = 0 === n ? this.view.indexAt(n) : this.view.indexAfter(n - 1);\n                            const o = this.view.element(i),\n                                s = this.getFocusedElements()[0];\n                            if (s !== o) {\n                                const n = this.findNextIndex(i, !1, t);\n                                n > -1 && s !== this.view.element(n) ? this.setFocus([n], e) : this.setFocus([i], e)\n                            } else {\n                                const i = n;\n                                this.view.setScrollTop(n - this.view.renderHeight), this.view.getScrollTop() !== i && (this.setFocus([]), yield(0, d.Vs)(0), yield this.focusPreviousPage(e, t))\n                            }\n                        }))\n                    }\n                    focusLast(e, t) {\n                        if (0 === this.length) return;\n                        const i = this.findPreviousIndex(this.length - 1, !1, t);\n                        i > -1 && this.setFocus([i], e)\n                    }\n                    focusFirst(e, t) {\n                        this.focusNth(0, e, t)\n                    }\n                    focusNth(e, t, i) {\n                        if (0 === this.length) return;\n                        const n = this.findNextIndex(e, !1, i);\n                        n > -1 && this.setFocus([n], t)\n                    }\n                    findNextIndex(e, t = !1, i) {\n                        for (let n = 0; n < this.length; n++) {\n                            if (e >= this.length && !t) return -1;\n                            if (e %= this.length, !i || i(this.element(e))) return e;\n                            e++\n                        }\n                        return -1\n                    }\n                    findPreviousIndex(e, t = !1, i) {\n                        for (let n = 0; n < this.length; n++) {\n                            if (e < 0 && !t) return -1;\n                            if (e = (this.length + e % this.length) % this.length, !i || i(this.element(e))) return e;\n                            e--\n                        }\n                        return -1\n                    }\n                    getFocus() {\n                        return this.focus.get()\n                    }\n                    getFocusedElements() {\n                        return this.getFocus().map((e => this.view.element(e)))\n                    }\n                    reveal(e, t) {\n                        if (e < 0 || e >= this.length) throw new w(this.user, `Invalid index ${e}`);\n                        const i = this.view.getScrollTop(),\n                            n = this.view.elementTop(e),\n                            o = this.view.elementHeight(e);\n                        if ((0, b.hj)(t)) {\n                            const e = o - this.view.renderHeight;\n                            this.view.setScrollTop(e * (0, m.u)(t, 0, 1) + n)\n                        } else {\n                            const e = n + o,\n                                t = i + this.view.renderHeight;\n                            n < i && e >= t || (n < i || e >= t && o >= this.view.renderHeight ? this.view.setScrollTop(n) : e >= t && this.view.setScrollTop(e - this.view.renderHeight))\n                        }\n                    }\n                    getRelativeTop(e) {\n                        if (e < 0 || e >= this.length) throw new w(this.user, `Invalid index ${e}`);\n                        const t = this.view.getScrollTop(),\n                            i = this.view.elementTop(e),\n                            n = this.view.elementHeight(e);\n                        if (i < t || i + n > t + this.view.renderHeight) return null;\n                        const o = n - this.view.renderHeight;\n                        return Math.abs((t - i) / o)\n                    }\n                    getHTMLElement() {\n                        return this.view.domNode\n                    }\n                    style(e) {\n                        this.styleController.style(e)\n                    }\n                    toListEvent({\n                        indexes: e,\n                        browserEvent: t\n                    }) {\n                        return {\n                            indexes: e,\n                            elements: e.map((e => this.view.element(e))),\n                            browserEvent: t\n                        }\n                    }\n                    _onFocusChange() {\n                        const e = this.focus.get();\n                        this.view.domNode.classList.toggle(\"element-focused\", e.length > 0), this.onDidChangeActiveDescendant()\n                    }\n                    onDidChangeActiveDescendant() {\n                        var e;\n                        const t = this.focus.get();\n                        if (t.length > 0) {\n                            let i;\n                            (null === (e = this.accessibilityProvider) || void 0 === e ? void 0 : e.getActiveDescendantId) && (i = this.accessibilityProvider.getActiveDescendantId(this.view.element(t[0]))), this.view.domNode.setAttribute(\"aria-activedescendant\", i || this.view.getElementDomId(t[0]))\n                        } else this.view.domNode.removeAttribute(\"aria-activedescendant\")\n                    }\n                    _onSelectionChange() {\n                        const e = this.selection.get();\n                        this.view.domNode.classList.toggle(\"selection-none\", 0 === e.length), this.view.domNode.classList.toggle(\"selection-single\", 1 === e.length), this.view.domNode.classList.toggle(\"selection-multiple\", e.length > 1)\n                    }\n                    dispose() {\n                        this._onDidDispose.fire(), this.disposables.dispose(), this._onDidDispose.dispose()\n                    }\n                }\n                x([u.H], q.prototype, \"onDidChangeFocus\", null), x([u.H], q.prototype, \"onDidChangeSelection\", null), x([u.H], q.prototype, \"onContextMenu\", null), x([u.H], q.prototype, \"onKeyDown\", null), x([u.H], q.prototype, \"onDidFocus\", null)\n            },\n            96542: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    S: () => n\n                });\n                i(44156);\n                const n = \"monaco-mouse-cursor-text\"\n            },\n            73098: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    g: () => _,\n                    l: () => u\n                });\n                var n = i(65321),\n                    o = i(4850),\n                    s = i(10553),\n                    r = i(15393),\n                    a = i(49898),\n                    l = i(4669),\n                    c = i(5976),\n                    d = i(1432),\n                    h = (i(44118), function(e, t, i, n) {\n                        var o, s = arguments.length,\n                            r = s < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n                        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) r = Reflect.decorate(e, t, i, n);\n                        else\n                            for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (r = (s < 3 ? o(r) : s > 3 ? o(t, i, r) : o(t, i)) || r);\n                        return s > 3 && r && Object.defineProperty(t, i, r), r\n                    });\n                var u;\n                ! function(e) {\n                    e.North = \"north\", e.South = \"south\", e.East = \"east\", e.West = \"west\"\n                }(u || (u = {}));\n                const g = new l.Q5;\n                const p = new l.Q5;\n                class f {\n                    constructor() {\n                        this.disposables = new c.SL\n                    }\n                    get onPointerMove() {\n                        return this.disposables.add(new o.Y(window, \"mousemove\")).event\n                    }\n                    get onPointerUp() {\n                        return this.disposables.add(new o.Y(window, \"mouseup\")).event\n                    }\n                    dispose() {\n                        this.disposables.dispose()\n                    }\n                }\n                h([a.H], f.prototype, \"onPointerMove\", null), h([a.H], f.prototype, \"onPointerUp\", null);\n                class m {\n                    constructor(e) {\n                        this.el = e, this.disposables = new c.SL\n                    }\n                    get onPointerMove() {\n                        return this.disposables.add(new o.Y(this.el, s.t.Change)).event\n                    }\n                    get onPointerUp() {\n                        return this.disposables.add(new o.Y(this.el, s.t.End)).event\n                    }\n                    dispose() {\n                        this.disposables.dispose()\n                    }\n                }\n                h([a.H], m.prototype, \"onPointerMove\", null), h([a.H], m.prototype, \"onPointerUp\", null);\n                class v {\n                    constructor(e) {\n                        this.factory = e\n                    }\n                    get onPointerMove() {\n                        return this.factory.onPointerMove\n                    }\n                    get onPointerUp() {\n                        return this.factory.onPointerUp\n                    }\n                    dispose() {}\n                }\n                h([a.H], v.prototype, \"onPointerMove\", null), h([a.H], v.prototype, \"onPointerUp\", null);\n                class _ extends c.JT {\n                    constructor(e, t, i) {\n                        super(), this.hoverDelay = 300, this.hoverDelayer = this._register(new r.vp(this.hoverDelay)), this._state = 3, this._onDidEnablementChange = this._register(new l.Q5), this.onDidEnablementChange = this._onDidEnablementChange.event, this._onDidStart = this._register(new l.Q5), this.onDidStart = this._onDidStart.event, this._onDidChange = this._register(new l.Q5), this.onDidChange = this._onDidChange.event, this._onDidReset = this._register(new l.Q5), this.onDidReset = this._onDidReset.event, this._onDidEnd = this._register(new l.Q5), this.onDidEnd = this._onDidEnd.event, this.linkedSash = void 0, this.orthogonalStartSashDisposables = this._register(new c.SL), this.orthogonalStartDragHandleDisposables = this._register(new c.SL), this.orthogonalEndSashDisposables = this._register(new c.SL), this.orthogonalEndDragHandleDisposables = this._register(new c.SL), this.el = (0, n.R3)(e, (0, n.$)(\".monaco-sash\")), i.orthogonalEdge && this.el.classList.add(`orthogonal-edge-${i.orthogonalEdge}`), d.dz && this.el.classList.add(\"mac\");\n                        const a = this._register(new o.Y(this.el, \"mousedown\")).event;\n                        this._register(a((e => this.onPointerStart(e, new f)), this));\n                        const h = this._register(new o.Y(this.el, \"dblclick\")).event;\n                        this._register(h(this.onPointerDoublePress, this));\n                        const u = this._register(new o.Y(this.el, \"mouseenter\")).event;\n                        this._register(u((() => _.onMouseEnter(this))));\n                        const v = this._register(new o.Y(this.el, \"mouseleave\")).event;\n                        this._register(v((() => _.onMouseLeave(this)))), this._register(s.o.addTarget(this.el));\n                        const b = l.ju.map(this._register(new o.Y(this.el, s.t.Start)).event, (e => {\n                            var t;\n                            return Object.assign(Object.assign({}, e), {\n                                target: null !== (t = e.initialTarget) && void 0 !== t ? t : null\n                            })\n                        }));\n                        this._register(b((e => this.onPointerStart(e, new m(this.el))), this));\n                        const w = this._register(new o.Y(this.el, s.t.Tap)).event,\n                            y = l.ju.map(l.ju.filter(l.ju.debounce(w, ((e, t) => {\n                                var i;\n                                return {\n                                    event: t,\n                                    count: (null !== (i = null == e ? void 0 : e.count) && void 0 !== i ? i : 0) + 1\n                                }\n                            }), 250), (({\n                                count: e\n                            }) => 2 === e)), (({\n                                event: e\n                            }) => {\n                                var t;\n                                return Object.assign(Object.assign({}, e), {\n                                    target: null !== (t = e.initialTarget) && void 0 !== t ? t : null\n                                })\n                            }));\n                        this._register(y(this.onPointerDoublePress, this)), \"number\" == typeof i.size ? (this.size = i.size, 0 === i.orientation ? this.el.style.width = `${this.size}px` : this.el.style.height = `${this.size}px`) : (this.size = 4, this._register(g.event((e => {\n                            this.size = e, this.layout()\n                        })))), this._register(p.event((e => this.hoverDelay = e))), this.hidden = !1, this.layoutProvider = t, this.orthogonalStartSash = i.orthogonalStartSash, this.orthogonalEndSash = i.orthogonalEndSash, this.orientation = i.orientation || 0, 1 === this.orientation ? (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\", false), this.layout()\n                    }\n                    get state() {\n                        return this._state\n                    }\n                    set state(e) {\n                        this._state !== e && (this.el.classList.toggle(\"disabled\", 0 === e), this.el.classList.toggle(\"minimum\", 1 === e), this.el.classList.toggle(\"maximum\", 2 === e), this._state = e, this._onDidEnablementChange.fire(e))\n                    }\n                    get orthogonalStartSash() {\n                        return this._orthogonalStartSash\n                    }\n                    set orthogonalStartSash(e) {\n                        if (this.orthogonalStartDragHandleDisposables.clear(), this.orthogonalStartSashDisposables.clear(), e) {\n                            const t = t => {\n                                this.orthogonalStartDragHandleDisposables.clear(), 0 !== t && (this._orthogonalStartDragHandle = (0, n.R3)(this.el, (0, n.$)(\".orthogonal-drag-handle.start\")), this.orthogonalStartDragHandleDisposables.add((0, c.OF)((() => this._orthogonalStartDragHandle.remove()))), this.orthogonalStartDragHandleDisposables.add(new o.Y(this._orthogonalStartDragHandle, \"mouseenter\")).event((() => _.onMouseEnter(e)), void 0, this.orthogonalStartDragHandleDisposables), this.orthogonalStartDragHandleDisposables.add(new o.Y(this._orthogonalStartDragHandle, \"mouseleave\")).event((() => _.onMouseLeave(e)), void 0, this.orthogonalStartDragHandleDisposables))\n                            };\n                            this.orthogonalStartSashDisposables.add(e.onDidEnablementChange(t, this)), t(e.state)\n                        }\n                        this._orthogonalStartSash = e\n                    }\n                    get orthogonalEndSash() {\n                        return this._orthogonalEndSash\n                    }\n                    set orthogonalEndSash(e) {\n                        if (this.orthogonalEndDragHandleDisposables.clear(), this.orthogonalEndSashDisposables.clear(), e) {\n                            const t = t => {\n                                this.orthogonalEndDragHandleDisposables.clear(), 0 !== t && (this._orthogonalEndDragHandle = (0, n.R3)(this.el, (0, n.$)(\".orthogonal-drag-handle.end\")), this.orthogonalEndDragHandleDisposables.add((0, c.OF)((() => this._orthogonalEndDragHandle.remove()))), this.orthogonalEndDragHandleDisposables.add(new o.Y(this._orthogonalEndDragHandle, \"mouseenter\")).event((() => _.onMouseEnter(e)), void 0, this.orthogonalEndDragHandleDisposables), this.orthogonalEndDragHandleDisposables.add(new o.Y(this._orthogonalEndDragHandle, \"mouseleave\")).event((() => _.onMouseLeave(e)), void 0, this.orthogonalEndDragHandleDisposables))\n                            };\n                            this.orthogonalEndSashDisposables.add(e.onDidEnablementChange(t, this)), t(e.state)\n                        }\n                        this._orthogonalEndSash = e\n                    }\n                    onPointerStart(e, t) {\n                        n.zB.stop(e);\n                        let i = !1;\n                        if (!e.__orthogonalSashEvent) {\n                            const n = this.getOrthogonalSash(e);\n                            n && (i = !0, e.__orthogonalSashEvent = !0, n.onPointerStart(e, new v(t)))\n                        }\n                        if (this.linkedSash && !e.__linkedSashEvent && (e.__linkedSashEvent = !0, this.linkedSash.onPointerStart(e, new v(t))), !this.state) return;\n                        const o = (0, n.H$)(\"iframe\");\n                        for (const e of o) e.style.pointerEvents = \"none\";\n                        const s = e.pageX,\n                            r = e.pageY,\n                            a = e.altKey,\n                            l = {\n                                startX: s,\n                                currentX: s,\n                                startY: r,\n                                currentY: r,\n                                altKey: a\n                            };\n                        this.el.classList.add(\"active\"), this._onDidStart.fire(l);\n                        const h = (0, n.dS)(this.el),\n                            u = () => {\n                                let e = \"\";\n                                e = i ? \"all-scroll\" : 1 === this.orientation ? 1 === this.state ? \"s-resize\" : 2 === this.state ? \"n-resize\" : d.dz ? \"row-resize\" : \"ns-resize\" : 1 === this.state ? \"e-resize\" : 2 === this.state ? \"w-resize\" : d.dz ? \"col-resize\" : \"ew-resize\", h.textContent = `* { cursor: ${e} !important; }`\n                            },\n                            g = new c.SL;\n                        u(), i || this.onDidEnablementChange(u, null, g);\n                        t.onPointerMove((e => {\n                            n.zB.stop(e, !1);\n                            const t = {\n                                startX: s,\n                                currentX: e.pageX,\n                                startY: r,\n                                currentY: e.pageY,\n                                altKey: a\n                            };\n                            this._onDidChange.fire(t)\n                        }), null, g), t.onPointerUp((e => {\n                            n.zB.stop(e, !1), this.el.removeChild(h), this.el.classList.remove(\"active\"), this._onDidEnd.fire(), g.dispose();\n                            for (const e of o) e.style.pointerEvents = \"auto\"\n                        }), null, g), g.add(t)\n                    }\n                    onPointerDoublePress(e) {\n                        const t = this.getOrthogonalSash(e);\n                        t && t._onDidReset.fire(), this.linkedSash && this.linkedSash._onDidReset.fire(), this._onDidReset.fire()\n                    }\n                    static onMouseEnter(e, t = !1) {\n                        e.el.classList.contains(\"active\") ? (e.hoverDelayer.cancel(), e.el.classList.add(\"hover\")) : e.hoverDelayer.trigger((() => e.el.classList.add(\"hover\")), e.hoverDelay).then(void 0, (() => {})), !t && e.linkedSash && _.onMouseEnter(e.linkedSash, !0)\n                    }\n                    static onMouseLeave(e, t = !1) {\n                        e.hoverDelayer.cancel(), e.el.classList.remove(\"hover\"), !t && e.linkedSash && _.onMouseLeave(e.linkedSash, !0)\n                    }\n                    clearSashHoverState() {\n                        _.onMouseLeave(this)\n                    }\n                    layout() {\n                        if (0 === this.orientation) {\n                            const e = this.layoutProvider;\n                            this.el.style.left = e.getVerticalSashLeft(this) - this.size / 2 + \"px\", e.getVerticalSashTop && (this.el.style.top = e.getVerticalSashTop(this) + \"px\"), e.getVerticalSashHeight && (this.el.style.height = e.getVerticalSashHeight(this) + \"px\")\n                        } else {\n                            const e = this.layoutProvider;\n                            this.el.style.top = e.getHorizontalSashTop(this) - this.size / 2 + \"px\", e.getHorizontalSashLeft && (this.el.style.left = e.getHorizontalSashLeft(this) + \"px\"), e.getHorizontalSashWidth && (this.el.style.width = e.getHorizontalSashWidth(this) + \"px\")\n                        }\n                    }\n                    hide() {\n                        this.hidden = !0, this.el.style.display = \"none\", this.el.setAttribute(\"aria-hidden\", \"true\")\n                    }\n                    getOrthogonalSash(e) {\n                        if (e.target && e.target instanceof HTMLElement) return e.target.classList.contains(\"orthogonal-drag-handle\") ? e.target.classList.contains(\"start\") ? this.orthogonalStartSash : this.orthogonalEndSash : void 0\n                    }\n                    dispose() {\n                        super.dispose(), this.el.remove()\n                    }\n                }\n            },\n            9802: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    s$: () => T,\n                    NB: () => I,\n                    $Z: () => E\n                });\n                var n = i(16268),\n                    o = i(65321),\n                    s = i(38626),\n                    r = i(23938),\n                    a = i(57974),\n                    l = i(93794),\n                    c = i(15393);\n                const d = 11;\n                class h extends l.$ {\n                    constructor(e) {\n                        super(), this._onActivate = e.onActivate, this.bgDomNode = document.createElement(\"div\"), this.bgDomNode.className = \"arrow-background\", this.bgDomNode.style.position = \"absolute\", this.bgDomNode.style.width = e.bgWidth + \"px\", this.bgDomNode.style.height = e.bgHeight + \"px\", void 0 !== e.top && (this.bgDomNode.style.top = \"0px\"), void 0 !== e.left && (this.bgDomNode.style.left = \"0px\"), void 0 !== e.bottom && (this.bgDomNode.style.bottom = \"0px\"), void 0 !== e.right && (this.bgDomNode.style.right = \"0px\"), this.domNode = document.createElement(\"div\"), this.domNode.className = e.className, this.domNode.classList.add(...e.icon.classNamesArray), this.domNode.style.position = \"absolute\", this.domNode.style.width = \"11px\", this.domNode.style.height = \"11px\", void 0 !== e.top && (this.domNode.style.top = e.top + \"px\"), void 0 !== e.left && (this.domNode.style.left = e.left + \"px\"), void 0 !== e.bottom && (this.domNode.style.bottom = e.bottom + \"px\"), void 0 !== e.right && (this.domNode.style.right = e.right + \"px\"), this._mouseMoveMonitor = this._register(new a.Z), this.onmousedown(this.bgDomNode, (e => this._arrowMouseDown(e))), this.onmousedown(this.domNode, (e => this._arrowMouseDown(e))), this._mousedownRepeatTimer = this._register(new c.zh), this._mousedownScheduleRepeatTimer = this._register(new c._F)\n                    }\n                    _arrowMouseDown(e) {\n                        this._onActivate(), this._mousedownRepeatTimer.cancel(), this._mousedownScheduleRepeatTimer.cancelAndSet((() => {\n                            this._mousedownRepeatTimer.cancelAndSet((() => this._onActivate()), 1e3 / 24)\n                        }), 200), this._mouseMoveMonitor.startMonitoring(e.target, e.buttons, a.e, (e => {}), (() => {\n                            this._mousedownRepeatTimer.cancel(), this._mousedownScheduleRepeatTimer.cancel()\n                        })), e.preventDefault()\n                    }\n                }\n                var u = i(5976);\n                class g extends u.JT {\n                    constructor(e, t, i) {\n                        super(), this._visibility = e, this._visibleClassName = t, this._invisibleClassName = i, this._domNode = null, this._isVisible = !1, this._isNeeded = !1, this._rawShouldBeVisible = !1, this._shouldBeVisible = !1, this._revealTimer = this._register(new c._F)\n                    }\n                    setVisibility(e) {\n                        this._visibility !== e && (this._visibility = e, this._updateShouldBeVisible())\n                    }\n                    setShouldBeVisible(e) {\n                        this._rawShouldBeVisible = e, this._updateShouldBeVisible()\n                    }\n                    _applyVisibilitySetting() {\n                        return 2 !== this._visibility && (3 === this._visibility || this._rawShouldBeVisible)\n                    }\n                    _updateShouldBeVisible() {\n                        const e = this._applyVisibilitySetting();\n                        this._shouldBeVisible !== e && (this._shouldBeVisible = e, this.ensureVisibility())\n                    }\n                    setIsNeeded(e) {\n                        this._isNeeded !== e && (this._isNeeded = e, this.ensureVisibility())\n                    }\n                    setDomNode(e) {\n                        this._domNode = e, this._domNode.setClassName(this._invisibleClassName), this.setShouldBeVisible(!1)\n                    }\n                    ensureVisibility() {\n                        this._isNeeded ? this._shouldBeVisible ? this._reveal() : this._hide(!0) : this._hide(!1)\n                    }\n                    _reveal() {\n                        this._isVisible || (this._isVisible = !0, this._revealTimer.setIfNotSet((() => {\n                            this._domNode && this._domNode.setClassName(this._visibleClassName)\n                        }), 0))\n                    }\n                    _hide(e) {\n                        this._revealTimer.cancel(), this._isVisible && (this._isVisible = !1, this._domNode && this._domNode.setClassName(this._invisibleClassName + (e ? \" fade\" : \"\")))\n                    }\n                }\n                var p = i(1432);\n                class f extends l.$ {\n                    constructor(e) {\n                        super(), this._lazyRender = e.lazyRender, this._host = e.host, this._scrollable = e.scrollable, this._scrollByPage = e.scrollByPage, this._scrollbarState = e.scrollbarState, this._visibilityController = this._register(new g(e.visibility, \"visible scrollbar \" + e.extraScrollbarClassName, \"invisible scrollbar \" + e.extraScrollbarClassName)), this._visibilityController.setIsNeeded(this._scrollbarState.isNeeded()), this._mouseMoveMonitor = this._register(new a.Z), this._shouldRender = !0, this.domNode = (0, s.X)(document.createElement(\"div\")), this.domNode.setAttribute(\"role\", \"presentation\"), this.domNode.setAttribute(\"aria-hidden\", \"true\"), this._visibilityController.setDomNode(this.domNode), this.domNode.setPosition(\"absolute\"), this.onmousedown(this.domNode.domNode, (e => this._domNodeMouseDown(e)))\n                    }\n                    _createArrow(e) {\n                        const t = this._register(new h(e));\n                        this.domNode.domNode.appendChild(t.bgDomNode), this.domNode.domNode.appendChild(t.domNode)\n                    }\n                    _createSlider(e, t, i, n) {\n                        this.slider = (0, s.X)(document.createElement(\"div\")), this.slider.setClassName(\"slider\"), this.slider.setPosition(\"absolute\"), this.slider.setTop(e), this.slider.setLeft(t), \"number\" == typeof i && this.slider.setWidth(i), \"number\" == typeof n && this.slider.setHeight(n), this.slider.setLayerHinting(!0), this.slider.setContain(\"strict\"), this.domNode.domNode.appendChild(this.slider.domNode), this.onmousedown(this.slider.domNode, (e => {\n                            e.leftButton && (e.preventDefault(), this._sliderMouseDown(e, (() => {})))\n                        })), this.onclick(this.slider.domNode, (e => {\n                            e.leftButton && e.stopPropagation()\n                        }))\n                    }\n                    _onElementSize(e) {\n                        return this._scrollbarState.setVisibleSize(e) && (this._visibilityController.setIsNeeded(this._scrollbarState.isNeeded()), this._shouldRender = !0, this._lazyRender || this.render()), this._shouldRender\n                    }\n                    _onElementScrollSize(e) {\n                        return this._scrollbarState.setScrollSize(e) && (this._visibilityController.setIsNeeded(this._scrollbarState.isNeeded()), this._shouldRender = !0, this._lazyRender || this.render()), this._shouldRender\n                    }\n                    _onElementScrollPosition(e) {\n                        return this._scrollbarState.setScrollPosition(e) && (this._visibilityController.setIsNeeded(this._scrollbarState.isNeeded()), this._shouldRender = !0, this._lazyRender || this.render()), this._shouldRender\n                    }\n                    beginReveal() {\n                        this._visibilityController.setShouldBeVisible(!0)\n                    }\n                    beginHide() {\n                        this._visibilityController.setShouldBeVisible(!1)\n                    }\n                    render() {\n                        this._shouldRender && (this._shouldRender = !1, this._renderDomNode(this._scrollbarState.getRectangleLargeSize(), this._scrollbarState.getRectangleSmallSize()), this._updateSlider(this._scrollbarState.getSliderSize(), this._scrollbarState.getArrowSize() + this._scrollbarState.getSliderPosition()))\n                    }\n                    _domNodeMouseDown(e) {\n                        e.target === this.domNode.domNode && this._onMouseDown(e)\n                    }\n                    delegateMouseDown(e) {\n                        const t = this.domNode.domNode.getClientRects()[0].top,\n                            i = t + this._scrollbarState.getSliderPosition(),\n                            n = t + this._scrollbarState.getSliderPosition() + this._scrollbarState.getSliderSize(),\n                            o = this._sliderMousePosition(e);\n                        i <= o && o <= n ? e.leftButton && (e.preventDefault(), this._sliderMouseDown(e, (() => {}))) : this._onMouseDown(e)\n                    }\n                    _onMouseDown(e) {\n                        let t, i;\n                        if (e.target === this.domNode.domNode && \"number\" == typeof e.browserEvent.offsetX && \"number\" == typeof e.browserEvent.offsetY) t = e.browserEvent.offsetX, i = e.browserEvent.offsetY;\n                        else {\n                            const n = o.i(this.domNode.domNode);\n                            t = e.posx - n.left, i = e.posy - n.top\n                        }\n                        const n = this._mouseDownRelativePosition(t, i);\n                        this._setDesiredScrollPositionNow(this._scrollByPage ? this._scrollbarState.getDesiredScrollPositionFromOffsetPaged(n) : this._scrollbarState.getDesiredScrollPositionFromOffset(n)), e.leftButton && (e.preventDefault(), this._sliderMouseDown(e, (() => {})))\n                    }\n                    _sliderMouseDown(e, t) {\n                        const i = this._sliderMousePosition(e),\n                            n = this._sliderOrthogonalMousePosition(e),\n                            o = this._scrollbarState.clone();\n                        this.slider.toggleClassName(\"active\", !0), this._mouseMoveMonitor.startMonitoring(e.target, e.buttons, a.e, (e => {\n                            const t = this._sliderOrthogonalMousePosition(e),\n                                s = Math.abs(t - n);\n                            if (p.ED && s > 140) return void this._setDesiredScrollPositionNow(o.getScrollPosition());\n                            const r = this._sliderMousePosition(e) - i;\n                            this._setDesiredScrollPositionNow(o.getDesiredScrollPositionFromDelta(r))\n                        }), (() => {\n                            this.slider.toggleClassName(\"active\", !1), this._host.onDragEnd(), t()\n                        })), this._host.onDragStart()\n                    }\n                    _setDesiredScrollPositionNow(e) {\n                        const t = {};\n                        this.writeScrollPosition(t, e), this._scrollable.setScrollPositionNow(t)\n                    }\n                    updateScrollbarSize(e) {\n                        this._updateScrollbarSize(e), this._scrollbarState.setScrollbarSize(e), this._shouldRender = !0, this._lazyRender || this.render()\n                    }\n                    isNeeded() {\n                        return this._scrollbarState.isNeeded()\n                    }\n                }\n                class m {\n                    constructor(e, t, i, n, o, s) {\n                        this._scrollbarSize = Math.round(t), this._oppositeScrollbarSize = Math.round(i), this._arrowSize = Math.round(e), this._visibleSize = n, this._scrollSize = o, this._scrollPosition = s, this._computedAvailableSize = 0, this._computedIsNeeded = !1, this._computedSliderSize = 0, this._computedSliderRatio = 0, this._computedSliderPosition = 0, this._refreshComputedValues()\n                    }\n                    clone() {\n                        return new m(this._arrowSize, this._scrollbarSize, this._oppositeScrollbarSize, this._visibleSize, this._scrollSize, this._scrollPosition)\n                    }\n                    setVisibleSize(e) {\n                        const t = Math.round(e);\n                        return this._visibleSize !== t && (this._visibleSize = t, this._refreshComputedValues(), !0)\n                    }\n                    setScrollSize(e) {\n                        const t = Math.round(e);\n                        return this._scrollSize !== t && (this._scrollSize = t, this._refreshComputedValues(), !0)\n                    }\n                    setScrollPosition(e) {\n                        const t = Math.round(e);\n                        return this._scrollPosition !== t && (this._scrollPosition = t, this._refreshComputedValues(), !0)\n                    }\n                    setScrollbarSize(e) {\n                        this._scrollbarSize = Math.round(e)\n                    }\n                    setOppositeScrollbarSize(e) {\n                        this._oppositeScrollbarSize = Math.round(e)\n                    }\n                    static _computeValues(e, t, i, n, o) {\n                        const s = Math.max(0, i - e),\n                            r = Math.max(0, s - 2 * t),\n                            a = n > 0 && n > i;\n                        if (!a) return {\n                            computedAvailableSize: Math.round(s),\n                            computedIsNeeded: a,\n                            computedSliderSize: Math.round(r),\n                            computedSliderRatio: 0,\n                            computedSliderPosition: 0\n                        };\n                        const l = Math.round(Math.max(20, Math.floor(i * r / n))),\n                            c = (r - l) / (n - i),\n                            d = o * c;\n                        return {\n                            computedAvailableSize: Math.round(s),\n                            computedIsNeeded: a,\n                            computedSliderSize: Math.round(l),\n                            computedSliderRatio: c,\n                            computedSliderPosition: Math.round(d)\n                        }\n                    }\n                    _refreshComputedValues() {\n                        const e = m._computeValues(this._oppositeScrollbarSize, this._arrowSize, this._visibleSize, this._scrollSize, this._scrollPosition);\n                        this._computedAvailableSize = e.computedAvailableSize, this._computedIsNeeded = e.computedIsNeeded, this._computedSliderSize = e.computedSliderSize, this._computedSliderRatio = e.computedSliderRatio, this._computedSliderPosition = e.computedSliderPosition\n                    }\n                    getArrowSize() {\n                        return this._arrowSize\n                    }\n                    getScrollPosition() {\n                        return this._scrollPosition\n                    }\n                    getRectangleLargeSize() {\n                        return this._computedAvailableSize\n                    }\n                    getRectangleSmallSize() {\n                        return this._scrollbarSize\n                    }\n                    isNeeded() {\n                        return this._computedIsNeeded\n                    }\n                    getSliderSize() {\n                        return this._computedSliderSize\n                    }\n                    getSliderPosition() {\n                        return this._computedSliderPosition\n                    }\n                    getDesiredScrollPositionFromOffset(e) {\n                        if (!this._computedIsNeeded) return 0;\n                        const t = e - this._arrowSize - this._computedSliderSize / 2;\n                        return Math.round(t / this._computedSliderRatio)\n                    }\n                    getDesiredScrollPositionFromOffsetPaged(e) {\n                        if (!this._computedIsNeeded) return 0;\n                        const t = e - this._arrowSize;\n                        let i = this._scrollPosition;\n                        return t < this._computedSliderPosition ? i -= this._visibleSize : i += this._visibleSize, i\n                    }\n                    getDesiredScrollPositionFromDelta(e) {\n                        if (!this._computedIsNeeded) return 0;\n                        const t = this._computedSliderPosition + e;\n                        return Math.round(t / this._computedSliderRatio)\n                    }\n                }\n                var v = i(73046);\n                const _ = (0, v.CM)(\"scrollbar-button-left\", v.lA.triangleLeft),\n                    b = (0, v.CM)(\"scrollbar-button-right\", v.lA.triangleRight);\n                class w extends f {\n                    constructor(e, t, i) {\n                        const n = e.getScrollDimensions(),\n                            o = e.getCurrentScrollPosition();\n                        if (super({\n                                lazyRender: t.lazyRender,\n                                host: i,\n                                scrollbarState: new m(t.horizontalHasArrows ? t.arrowSize : 0, 2 === t.horizontal ? 0 : t.horizontalScrollbarSize, 2 === t.vertical ? 0 : t.verticalScrollbarSize, n.width, n.scrollWidth, o.scrollLeft),\n                                visibility: t.horizontal,\n                                extraScrollbarClassName: \"horizontal\",\n                                scrollable: e,\n                                scrollByPage: t.scrollByPage\n                            }), t.horizontalHasArrows) {\n                            const e = (t.arrowSize - d) / 2,\n                                i = (t.horizontalScrollbarSize - d) / 2;\n                            this._createArrow({\n                                className: \"scra\",\n                                icon: _,\n                                top: i,\n                                left: e,\n                                bottom: void 0,\n                                right: void 0,\n                                bgWidth: t.arrowSize,\n                                bgHeight: t.horizontalScrollbarSize,\n                                onActivate: () => this._host.onMouseWheel(new r.q(null, 1, 0))\n                            }), this._createArrow({\n                                className: \"scra\",\n                                icon: b,\n                                top: i,\n                                left: void 0,\n                                bottom: void 0,\n                                right: e,\n                                bgWidth: t.arrowSize,\n                                bgHeight: t.horizontalScrollbarSize,\n                                onActivate: () => this._host.onMouseWheel(new r.q(null, -1, 0))\n                            })\n                        }\n                        this._createSlider(Math.floor((t.horizontalScrollbarSize - t.horizontalSliderSize) / 2), 0, void 0, t.horizontalSliderSize)\n                    }\n                    _updateSlider(e, t) {\n                        this.slider.setWidth(e), this.slider.setLeft(t)\n                    }\n                    _renderDomNode(e, t) {\n                        this.domNode.setWidth(e), this.domNode.setHeight(t), this.domNode.setLeft(0), this.domNode.setBottom(0)\n                    }\n                    onDidScroll(e) {\n                        return this._shouldRender = this._onElementScrollSize(e.scrollWidth) || this._shouldRender, this._shouldRender = this._onElementScrollPosition(e.scrollLeft) || this._shouldRender, this._shouldRender = this._onElementSize(e.width) || this._shouldRender, this._shouldRender\n                    }\n                    _mouseDownRelativePosition(e, t) {\n                        return e\n                    }\n                    _sliderMousePosition(e) {\n                        return e.posx\n                    }\n                    _sliderOrthogonalMousePosition(e) {\n                        return e.posy\n                    }\n                    _updateScrollbarSize(e) {\n                        this.slider.setHeight(e)\n                    }\n                    writeScrollPosition(e, t) {\n                        e.scrollLeft = t\n                    }\n                    updateOptions(e) {\n                        this.updateScrollbarSize(2 === e.horizontal ? 0 : e.horizontalScrollbarSize), this._scrollbarState.setOppositeScrollbarSize(2 === e.vertical ? 0 : e.verticalScrollbarSize), this._visibilityController.setVisibility(e.horizontal), this._scrollByPage = e.scrollByPage\n                    }\n                }\n                const y = (0, v.CM)(\"scrollbar-button-up\", v.lA.triangleUp),\n                    C = (0, v.CM)(\"scrollbar-button-down\", v.lA.triangleDown);\n                class x extends f {\n                    constructor(e, t, i) {\n                        const n = e.getScrollDimensions(),\n                            o = e.getCurrentScrollPosition();\n                        if (super({\n                                lazyRender: t.lazyRender,\n                                host: i,\n                                scrollbarState: new m(t.verticalHasArrows ? t.arrowSize : 0, 2 === t.vertical ? 0 : t.verticalScrollbarSize, 0, n.height, n.scrollHeight, o.scrollTop),\n                                visibility: t.vertical,\n                                extraScrollbarClassName: \"vertical\",\n                                scrollable: e,\n                                scrollByPage: t.scrollByPage\n                            }), t.verticalHasArrows) {\n                            const e = (t.arrowSize - d) / 2,\n                                i = (t.verticalScrollbarSize - d) / 2;\n                            this._createArrow({\n                                className: \"scra\",\n                                icon: y,\n                                top: e,\n                                left: i,\n                                bottom: void 0,\n                                right: void 0,\n                                bgWidth: t.verticalScrollbarSize,\n                                bgHeight: t.arrowSize,\n                                onActivate: () => this._host.onMouseWheel(new r.q(null, 0, 1))\n                            }), this._createArrow({\n                                className: \"scra\",\n                                icon: C,\n                                top: void 0,\n                                left: i,\n                                bottom: e,\n                                right: void 0,\n                                bgWidth: t.verticalScrollbarSize,\n                                bgHeight: t.arrowSize,\n                                onActivate: () => this._host.onMouseWheel(new r.q(null, 0, -1))\n                            })\n                        }\n                        this._createSlider(0, Math.floor((t.verticalScrollbarSize - t.verticalSliderSize) / 2), t.verticalSliderSize, void 0)\n                    }\n                    _updateSlider(e, t) {\n                        this.slider.setHeight(e), this.slider.setTop(t)\n                    }\n                    _renderDomNode(e, t) {\n                        this.domNode.setWidth(t), this.domNode.setHeight(e), this.domNode.setRight(0), this.domNode.setTop(0)\n                    }\n                    onDidScroll(e) {\n                        return this._shouldRender = this._onElementScrollSize(e.scrollHeight) || this._shouldRender, this._shouldRender = this._onElementScrollPosition(e.scrollTop) || this._shouldRender, this._shouldRender = this._onElementSize(e.height) || this._shouldRender, this._shouldRender\n                    }\n                    _mouseDownRelativePosition(e, t) {\n                        return t\n                    }\n                    _sliderMousePosition(e) {\n                        return e.posy\n                    }\n                    _sliderOrthogonalMousePosition(e) {\n                        return e.posx\n                    }\n                    _updateScrollbarSize(e) {\n                        this.slider.setWidth(e)\n                    }\n                    writeScrollPosition(e, t) {\n                        e.scrollTop = t\n                    }\n                    updateOptions(e) {\n                        this.updateScrollbarSize(2 === e.vertical ? 0 : e.verticalScrollbarSize), this._scrollbarState.setOppositeScrollbarSize(0), this._visibilityController.setVisibility(e.vertical), this._scrollByPage = e.scrollByPage\n                    }\n                }\n                var S = i(4669),\n                    k = i(76633);\n                i(87101);\n                class L {\n                    constructor(e, t, i) {\n                        this.timestamp = e, this.deltaX = t, this.deltaY = i, this.score = 0\n                    }\n                }\n                class N {\n                    constructor() {\n                        this._capacity = 5, this._memory = [], this._front = -1, this._rear = -1\n                    }\n                    isPhysicalMouseWheel() {\n                        if (-1 === this._front && -1 === this._rear) return !1;\n                        let e = 1,\n                            t = 0,\n                            i = 1,\n                            n = this._rear;\n                        for (;;) {\n                            const o = n === this._front ? e : Math.pow(2, -i);\n                            if (e -= o, t += this._memory[n].score * o, n === this._front) break;\n                            n = (this._capacity + n - 1) % this._capacity, i++\n                        }\n                        return t <= .5\n                    }\n                    accept(e, t, i) {\n                        const n = new L(e, t, i);\n                        n.score = this._computeScore(n), -1 === this._front && -1 === this._rear ? (this._memory[0] = n, this._front = 0, this._rear = 0) : (this._rear = (this._rear + 1) % this._capacity, this._rear === this._front && (this._front = (this._front + 1) % this._capacity), this._memory[this._rear] = n)\n                    }\n                    _computeScore(e) {\n                        if (Math.abs(e.deltaX) > 0 && Math.abs(e.deltaY) > 0) return 1;\n                        let t = .5; - 1 === this._front && -1 === this._rear || this._memory[this._rear];\n                        return this._isAlmostInt(e.deltaX) && this._isAlmostInt(e.deltaY) || (t += .25), Math.min(Math.max(t, 0), 1)\n                    }\n                    _isAlmostInt(e) {\n                        return Math.abs(Math.round(e) - e) < .01\n                    }\n                }\n                N.INSTANCE = new N;\n                class D extends l.$ {\n                    constructor(e, t, i) {\n                        super(), this._onScroll = this._register(new S.Q5), this.onScroll = this._onScroll.event, this._onWillScroll = this._register(new S.Q5), e.style.overflow = \"hidden\", this._options = function(e) {\n                            const t = {\n                                lazyRender: void 0 !== e.lazyRender && e.lazyRender,\n                                className: void 0 !== e.className ? e.className : \"\",\n                                useShadows: void 0 === e.useShadows || e.useShadows,\n                                handleMouseWheel: void 0 === e.handleMouseWheel || e.handleMouseWheel,\n                                flipAxes: void 0 !== e.flipAxes && e.flipAxes,\n                                consumeMouseWheelIfScrollbarIsNeeded: void 0 !== e.consumeMouseWheelIfScrollbarIsNeeded && e.consumeMouseWheelIfScrollbarIsNeeded,\n                                alwaysConsumeMouseWheel: void 0 !== e.alwaysConsumeMouseWheel && e.alwaysConsumeMouseWheel,\n                                scrollYToX: void 0 !== e.scrollYToX && e.scrollYToX,\n                                mouseWheelScrollSensitivity: void 0 !== e.mouseWheelScrollSensitivity ? e.mouseWheelScrollSensitivity : 1,\n                                fastScrollSensitivity: void 0 !== e.fastScrollSensitivity ? e.fastScrollSensitivity : 5,\n                                scrollPredominantAxis: void 0 === e.scrollPredominantAxis || e.scrollPredominantAxis,\n                                mouseWheelSmoothScroll: void 0 === e.mouseWheelSmoothScroll || e.mouseWheelSmoothScroll,\n                                arrowSize: void 0 !== e.arrowSize ? e.arrowSize : 11,\n                                listenOnDomNode: void 0 !== e.listenOnDomNode ? e.listenOnDomNode : null,\n                                horizontal: void 0 !== e.horizontal ? e.horizontal : 1,\n                                horizontalScrollbarSize: void 0 !== e.horizontalScrollbarSize ? e.horizontalScrollbarSize : 10,\n                                horizontalSliderSize: void 0 !== e.horizontalSliderSize ? e.horizontalSliderSize : 0,\n                                horizontalHasArrows: void 0 !== e.horizontalHasArrows && e.horizontalHasArrows,\n                                vertical: void 0 !== e.vertical ? e.vertical : 1,\n                                verticalScrollbarSize: void 0 !== e.verticalScrollbarSize ? e.verticalScrollbarSize : 10,\n                                verticalHasArrows: void 0 !== e.verticalHasArrows && e.verticalHasArrows,\n                                verticalSliderSize: void 0 !== e.verticalSliderSize ? e.verticalSliderSize : 0,\n                                scrollByPage: void 0 !== e.scrollByPage && e.scrollByPage\n                            };\n                            t.horizontalSliderSize = void 0 !== e.horizontalSliderSize ? e.horizontalSliderSize : t.horizontalScrollbarSize, t.verticalSliderSize = void 0 !== e.verticalSliderSize ? e.verticalSliderSize : t.verticalScrollbarSize, p.dz && (t.className += \" mac\");\n                            return t\n                        }(t), this._scrollable = i, this._register(this._scrollable.onScroll((e => {\n                            this._onWillScroll.fire(e), this._onDidScroll(e), this._onScroll.fire(e)\n                        })));\n                        const n = {\n                            onMouseWheel: e => this._onMouseWheel(e),\n                            onDragStart: () => this._onDragStart(),\n                            onDragEnd: () => this._onDragEnd()\n                        };\n                        this._verticalScrollbar = this._register(new x(this._scrollable, this._options, n)), this._horizontalScrollbar = this._register(new w(this._scrollable, this._options, n)), 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(e), this._domNode.appendChild(this._horizontalScrollbar.domNode.domNode), this._domNode.appendChild(this._verticalScrollbar.domNode.domNode), this._options.useShadows ? (this._leftShadowDomNode = (0, s.X)(document.createElement(\"div\")), this._leftShadowDomNode.setClassName(\"shadow\"), this._domNode.appendChild(this._leftShadowDomNode.domNode), this._topShadowDomNode = (0, s.X)(document.createElement(\"div\")), this._topShadowDomNode.setClassName(\"shadow\"), this._domNode.appendChild(this._topShadowDomNode.domNode), this._topLeftShadowDomNode = (0, s.X)(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, (e => this._onMouseOver(e))), this.onnonbubblingmouseout(this._listenOnDomNode, (e => this._onMouseOut(e))), this._hideTimeout = this._register(new c._F), this._isDragging = !1, this._mouseIsOver = !1, this._shouldRender = !0, this._revealOnScroll = !0\n                    }\n                    dispose() {\n                        this._mouseWheelToDispose = (0, u.B9)(this._mouseWheelToDispose), super.dispose()\n                    }\n                    getDomNode() {\n                        return this._domNode\n                    }\n                    getOverviewRulerLayoutInfo() {\n                        return {\n                            parent: this._domNode,\n                            insertBefore: this._verticalScrollbar.domNode.domNode\n                        }\n                    }\n                    delegateVerticalScrollbarMouseDown(e) {\n                        this._verticalScrollbar.delegateMouseDown(e)\n                    }\n                    getScrollDimensions() {\n                        return this._scrollable.getScrollDimensions()\n                    }\n                    setScrollDimensions(e) {\n                        this._scrollable.setScrollDimensions(e, !1)\n                    }\n                    updateClassName(e) {\n                        this._options.className = e, p.dz && (this._options.className += \" mac\"), this._domNode.className = \"monaco-scrollable-element \" + this._options.className\n                    }\n                    updateOptions(e) {\n                        void 0 !== e.handleMouseWheel && (this._options.handleMouseWheel = e.handleMouseWheel, this._setListeningToMouseWheel(this._options.handleMouseWheel)), void 0 !== e.mouseWheelScrollSensitivity && (this._options.mouseWheelScrollSensitivity = e.mouseWheelScrollSensitivity), void 0 !== e.fastScrollSensitivity && (this._options.fastScrollSensitivity = e.fastScrollSensitivity), void 0 !== e.scrollPredominantAxis && (this._options.scrollPredominantAxis = e.scrollPredominantAxis), void 0 !== e.horizontal && (this._options.horizontal = e.horizontal), void 0 !== e.vertical && (this._options.vertical = e.vertical), void 0 !== e.horizontalScrollbarSize && (this._options.horizontalScrollbarSize = e.horizontalScrollbarSize), void 0 !== e.verticalScrollbarSize && (this._options.verticalScrollbarSize = e.verticalScrollbarSize), void 0 !== e.scrollByPage && (this._options.scrollByPage = e.scrollByPage), this._horizontalScrollbar.updateOptions(this._options), this._verticalScrollbar.updateOptions(this._options), this._options.lazyRender || this._render()\n                    }\n                    _setListeningToMouseWheel(e) {\n                        if (this._mouseWheelToDispose.length > 0 !== e && (this._mouseWheelToDispose = (0, u.B9)(this._mouseWheelToDispose), e)) {\n                            const e = e => {\n                                this._onMouseWheel(new r.q(e))\n                            };\n                            this._mouseWheelToDispose.push(o.nm(this._listenOnDomNode, o.tw.MOUSE_WHEEL, e, {\n                                passive: !1\n                            }))\n                        }\n                    }\n                    _onMouseWheel(e) {\n                        const t = N.INSTANCE; {\n                            const i = window.devicePixelRatio / (0, n.ie)();\n                            p.ED || p.IJ ? t.accept(Date.now(), e.deltaX / i, e.deltaY / i) : t.accept(Date.now(), e.deltaX, e.deltaY)\n                        }\n                        let i = !1;\n                        if (e.deltaY || e.deltaX) {\n                            let n = e.deltaY * this._options.mouseWheelScrollSensitivity,\n                                o = e.deltaX * this._options.mouseWheelScrollSensitivity;\n                            this._options.scrollPredominantAxis && (Math.abs(n) >= Math.abs(o) ? o = 0 : n = 0), this._options.flipAxes && ([n, o] = [o, n]);\n                            const s = !p.dz && e.browserEvent && e.browserEvent.shiftKey;\n                            !this._options.scrollYToX && !s || o || (o = n, n = 0), e.browserEvent && e.browserEvent.altKey && (o *= this._options.fastScrollSensitivity, n *= this._options.fastScrollSensitivity);\n                            const r = this._scrollable.getFutureScrollPosition();\n                            let a = {};\n                            if (n) {\n                                const e = 50 * n,\n                                    t = r.scrollTop - (e < 0 ? Math.floor(e) : Math.ceil(e));\n                                this._verticalScrollbar.writeScrollPosition(a, t)\n                            }\n                            if (o) {\n                                const e = 50 * o,\n                                    t = r.scrollLeft - (e < 0 ? Math.floor(e) : Math.ceil(e));\n                                this._horizontalScrollbar.writeScrollPosition(a, t)\n                            }\n                            if (a = this._scrollable.validateScrollPosition(a), r.scrollLeft !== a.scrollLeft || r.scrollTop !== a.scrollTop) {\n                                this._options.mouseWheelSmoothScroll && t.isPhysicalMouseWheel() ? this._scrollable.setScrollPositionSmooth(a) : this._scrollable.setScrollPositionNow(a), i = !0\n                            }\n                        }\n                        let o = i;\n                        !o && this._options.alwaysConsumeMouseWheel && (o = !0), !o && this._options.consumeMouseWheelIfScrollbarIsNeeded && (this._verticalScrollbar.isNeeded() || this._horizontalScrollbar.isNeeded()) && (o = !0), o && (e.preventDefault(), e.stopPropagation())\n                    }\n                    _onDidScroll(e) {\n                        this._shouldRender = this._horizontalScrollbar.onDidScroll(e) || this._shouldRender, this._shouldRender = this._verticalScrollbar.onDidScroll(e) || this._shouldRender, this._options.useShadows && (this._shouldRender = !0), this._revealOnScroll && this._reveal(), this._options.lazyRender || this._render()\n                    }\n                    renderNow() {\n                        if (!this._options.lazyRender) throw new Error(\"Please use `lazyRender` together with `renderNow`!\");\n                        this._render()\n                    }\n                    _render() {\n                        if (this._shouldRender && (this._shouldRender = !1, this._horizontalScrollbar.render(), this._verticalScrollbar.render(), this._options.useShadows)) {\n                            const e = this._scrollable.getCurrentScrollPosition(),\n                                t = e.scrollTop > 0,\n                                i = e.scrollLeft > 0,\n                                n = i ? \" left\" : \"\",\n                                o = t ? \" top\" : \"\",\n                                s = i || t ? \" top-left-corner\" : \"\";\n                            this._leftShadowDomNode.setClassName(`shadow${n}`), this._topShadowDomNode.setClassName(`shadow${o}`), this._topLeftShadowDomNode.setClassName(`shadow${s}${o}${n}`)\n                        }\n                    }\n                    _onDragStart() {\n                        this._isDragging = !0, this._reveal()\n                    }\n                    _onDragEnd() {\n                        this._isDragging = !1, this._hide()\n                    }\n                    _onMouseOut(e) {\n                        this._mouseIsOver = !1, this._hide()\n                    }\n                    _onMouseOver(e) {\n                        this._mouseIsOver = !0, this._reveal()\n                    }\n                    _reveal() {\n                        this._verticalScrollbar.beginReveal(), this._horizontalScrollbar.beginReveal(), this._scheduleHide()\n                    }\n                    _hide() {\n                        this._mouseIsOver || this._isDragging || (this._verticalScrollbar.beginHide(), this._horizontalScrollbar.beginHide())\n                    }\n                    _scheduleHide() {\n                        this._mouseIsOver || this._isDragging || this._hideTimeout.cancelAndSet((() => this._hide()), 500)\n                    }\n                }\n                class I extends D {\n                    constructor(e, t) {\n                        (t = t || {}).mouseWheelSmoothScroll = !1;\n                        const i = new k.Rm(0, (e => o.jL(e)));\n                        super(e, t, i), this._register(i)\n                    }\n                    setScrollPosition(e) {\n                        this._scrollable.setScrollPositionNow(e)\n                    }\n                    getScrollPosition() {\n                        return this._scrollable.getCurrentScrollPosition()\n                    }\n                }\n                class E extends D {\n                    constructor(e, t, i) {\n                        super(e, t, i)\n                    }\n                    setScrollPosition(e) {\n                        e.reuseAnimation ? this._scrollable.setScrollPositionSmooth(e, e.reuseAnimation) : this._scrollable.setScrollPositionNow(e)\n                    }\n                    getScrollPosition() {\n                        return this._scrollable.getCurrentScrollPosition()\n                    }\n                }\n                class T extends I {\n                    constructor(e, t) {\n                        super(e, t), this._element = e, this.onScroll((e => {\n                            e.scrollTopChanged && (this._element.scrollTop = e.scrollTop), e.scrollLeftChanged && (this._element.scrollLeft = e.scrollLeft)\n                        })), this.scanDomNode()\n                    }\n                    scanDomNode() {\n                        this.setScrollDimensions({\n                            width: this._element.clientWidth,\n                            scrollWidth: this._element.scrollWidth,\n                            height: this._element.clientHeight,\n                            scrollHeight: this._element.scrollHeight\n                        }), this.setScrollPosition({\n                            scrollLeft: this._element.scrollLeft,\n                            scrollTop: this._element.scrollTop\n                        })\n                    }\n                }\n            },\n            23937: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    M: () => _,\n                    z: () => b\n                });\n                var n = i(65321),\n                    o = i(73098),\n                    s = i(9802),\n                    r = i(9488),\n                    a = i(41264),\n                    l = i(4669),\n                    c = i(5976),\n                    d = i(59870),\n                    h = i(76633),\n                    u = i(98401);\n                i(62466);\n                const g = {\n                    separatorBorder: a.Il.transparent\n                };\n                class p {\n                    constructor(e, t, i, n) {\n                        this.container = e, this.view = t, this.disposable = n, this._cachedVisibleSize = void 0, \"number\" == typeof i ? (this._size = i, this._cachedVisibleSize = void 0, e.classList.add(\"visible\")) : (this._size = 0, this._cachedVisibleSize = i.cachedVisibleSize)\n                    }\n                    set size(e) {\n                        this._size = e\n                    }\n                    get size() {\n                        return this._size\n                    }\n                    get visible() {\n                        return void 0 === this._cachedVisibleSize\n                    }\n                    setVisible(e, t) {\n                        e !== this.visible && (e ? (this.size = (0, d.u)(this._cachedVisibleSize, this.viewMinimumSize, this.viewMaximumSize), this._cachedVisibleSize = void 0) : (this._cachedVisibleSize = \"number\" == typeof t ? t : this.size, this.size = 0), this.container.classList.toggle(\"visible\", e), this.view.setVisible && this.view.setVisible(e))\n                    }\n                    get minimumSize() {\n                        return this.visible ? this.view.minimumSize : 0\n                    }\n                    get viewMinimumSize() {\n                        return this.view.minimumSize\n                    }\n                    get maximumSize() {\n                        return this.visible ? this.view.maximumSize : 0\n                    }\n                    get viewMaximumSize() {\n                        return this.view.maximumSize\n                    }\n                    get priority() {\n                        return this.view.priority\n                    }\n                    get snap() {\n                        return !!this.view.snap\n                    }\n                    set enabled(e) {\n                        this.container.style.pointerEvents = e ? \"\" : \"none\"\n                    }\n                    layout(e, t) {\n                        this.layoutContainer(e), this.view.layout(this.size, e, t)\n                    }\n                    dispose() {\n                        return this.disposable.dispose(), this.view\n                    }\n                }\n                class f extends p {\n                    layoutContainer(e) {\n                        this.container.style.top = `${e}px`, this.container.style.height = `${this.size}px`\n                    }\n                }\n                class m extends p {\n                    layoutContainer(e) {\n                        this.container.style.left = `${e}px`, this.container.style.width = `${this.size}px`\n                    }\n                }\n                var v, _;\n                ! function(e) {\n                    e[e.Idle = 0] = \"Idle\", e[e.Busy = 1] = \"Busy\"\n                }(v || (v = {})),\n                function(e) {\n                    e.Distribute = {\n                        type: \"distribute\"\n                    }, e.Split = function(e) {\n                        return {\n                            type: \"split\",\n                            index: e\n                        }\n                    }, e.Invisible = function(e) {\n                        return {\n                            type: \"invisible\",\n                            cachedVisibleSize: e\n                        }\n                    }\n                }(_ || (_ = {}));\n                class b extends c.JT {\n                    constructor(e, t = {}) {\n                        var i, o;\n                        super(), this.size = 0, this.contentSize = 0, this.proportions = void 0, this.viewItems = [], this.sashItems = [], this.state = v.Idle, this._onDidSashChange = this._register(new l.Q5), this.onDidSashChange = this._onDidSashChange.event, this._onDidSashReset = this._register(new l.Q5), this._startSnappingEnabled = !0, this._endSnappingEnabled = !0, this.orientation = u.o8(t.orientation) ? 0 : t.orientation, this.inverseAltBehavior = !!t.inverseAltBehavior, this.proportionalLayout = !!u.o8(t.proportionalLayout) || !!t.proportionalLayout, this.getSashOrthogonalSize = t.getSashOrthogonalSize, this.el = document.createElement(\"div\"), this.el.classList.add(\"monaco-split-view2\"), this.el.classList.add(0 === this.orientation ? \"vertical\" : \"horizontal\"), e.appendChild(this.el), this.sashContainer = (0, n.R3)(this.el, (0, n.$)(\".sash-container\")), this.viewContainer = (0, n.$)(\".split-view-container\"), this.scrollable = new h.Rm(125, n.jL), this.scrollableElement = this._register(new s.$Z(this.viewContainer, {\n                            vertical: 0 === this.orientation ? null !== (i = t.scrollbarVisibility) && void 0 !== i ? i : 1 : 2,\n                            horizontal: 1 === this.orientation ? null !== (o = t.scrollbarVisibility) && void 0 !== o ? o : 1 : 2\n                        }, this.scrollable)), this.onDidScroll = this.scrollableElement.onScroll, this._register(this.onDidScroll((e => {\n                            this.viewContainer.scrollTop = e.scrollTop, this.viewContainer.scrollLeft = e.scrollLeft\n                        }))), (0, n.R3)(this.el, this.scrollableElement.getDomNode()), this.style(t.styles || g), t.descriptor && (this.size = t.descriptor.size, t.descriptor.views.forEach(((e, t) => {\n                            const i = u.o8(e.visible) || e.visible ? e.size : {\n                                    type: \"invisible\",\n                                    cachedVisibleSize: e.size\n                                },\n                                n = e.view;\n                            this.doAddView(n, i, t, !0)\n                        })), this.contentSize = this.viewItems.reduce(((e, t) => e + t.size), 0), this.saveProportions())\n                    }\n                    get orthogonalStartSash() {\n                        return this._orthogonalStartSash\n                    }\n                    set orthogonalStartSash(e) {\n                        for (const t of this.sashItems) t.sash.orthogonalStartSash = e;\n                        this._orthogonalStartSash = e\n                    }\n                    get orthogonalEndSash() {\n                        return this._orthogonalEndSash\n                    }\n                    set orthogonalEndSash(e) {\n                        for (const t of this.sashItems) t.sash.orthogonalEndSash = e;\n                        this._orthogonalEndSash = e\n                    }\n                    get startSnappingEnabled() {\n                        return this._startSnappingEnabled\n                    }\n                    set startSnappingEnabled(e) {\n                        this._startSnappingEnabled !== e && (this._startSnappingEnabled = e, this.updateSashEnablement())\n                    }\n                    get endSnappingEnabled() {\n                        return this._endSnappingEnabled\n                    }\n                    set endSnappingEnabled(e) {\n                        this._endSnappingEnabled !== e && (this._endSnappingEnabled = e, this.updateSashEnablement())\n                    }\n                    style(e) {\n                        e.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\", e.separatorBorder.toString()))\n                    }\n                    addView(e, t, i = this.viewItems.length, n) {\n                        this.doAddView(e, t, i, n)\n                    }\n                    layout(e, t) {\n                        const i = Math.max(this.size, this.contentSize);\n                        if (this.size = e, this.layoutContext = t, this.proportions)\n                            for (let t = 0; t < this.viewItems.length; t++) {\n                                const i = this.viewItems[t];\n                                i.size = (0, d.u)(Math.round(this.proportions[t] * e), i.minimumSize, i.maximumSize)\n                            } else {\n                                const t = (0, r.w6)(this.viewItems.length),\n                                    n = t.filter((e => 1 === this.viewItems[e].priority)),\n                                    o = t.filter((e => 2 === this.viewItems[e].priority));\n                                this.resize(this.viewItems.length - 1, e - i, void 0, n, o)\n                            }\n                        this.distributeEmptySpace(), this.layoutViews()\n                    }\n                    saveProportions() {\n                        this.proportionalLayout && this.contentSize > 0 && (this.proportions = this.viewItems.map((e => e.size / this.contentSize)))\n                    }\n                    onSashStart({\n                        sash: e,\n                        start: t,\n                        alt: i\n                    }) {\n                        for (const e of this.viewItems) e.enabled = !1;\n                        const o = this.sashItems.findIndex((t => t.sash === e)),\n                            s = (0, c.F8)((0, n.nm)(document.body, \"keydown\", (e => a(this.sashDragState.current, e.altKey))), (0, n.nm)(document.body, \"keyup\", (() => a(this.sashDragState.current, !1)))),\n                            a = (e, t) => {\n                                const i = this.viewItems.map((e => e.size));\n                                let n, a, l = Number.NEGATIVE_INFINITY,\n                                    c = Number.POSITIVE_INFINITY;\n                                if (this.inverseAltBehavior && (t = !t), t) {\n                                    if (o === this.sashItems.length - 1) {\n                                        const e = this.viewItems[o];\n                                        l = (e.minimumSize - e.size) / 2, c = (e.maximumSize - e.size) / 2\n                                    } else {\n                                        const e = this.viewItems[o + 1];\n                                        l = (e.size - e.maximumSize) / 2, c = (e.size - e.minimumSize) / 2\n                                    }\n                                }\n                                if (!t) {\n                                    const e = (0, r.w6)(o, -1),\n                                        t = (0, r.w6)(o + 1, this.viewItems.length),\n                                        s = e.reduce(((e, t) => e + (this.viewItems[t].minimumSize - i[t])), 0),\n                                        l = e.reduce(((e, t) => e + (this.viewItems[t].viewMaximumSize - i[t])), 0),\n                                        c = 0 === t.length ? Number.POSITIVE_INFINITY : t.reduce(((e, t) => e + (i[t] - this.viewItems[t].minimumSize)), 0),\n                                        d = 0 === t.length ? Number.NEGATIVE_INFINITY : t.reduce(((e, t) => e + (i[t] - this.viewItems[t].viewMaximumSize)), 0),\n                                        h = Math.max(s, d),\n                                        u = Math.min(c, l),\n                                        g = this.findFirstSnapIndex(e),\n                                        p = this.findFirstSnapIndex(t);\n                                    if (\"number\" == typeof g) {\n                                        const e = this.viewItems[g],\n                                            t = Math.floor(e.viewMinimumSize / 2);\n                                        n = {\n                                            index: g,\n                                            limitDelta: e.visible ? h - t : h + t,\n                                            size: e.size\n                                        }\n                                    }\n                                    if (\"number\" == typeof p) {\n                                        const e = this.viewItems[p],\n                                            t = Math.floor(e.viewMinimumSize / 2);\n                                        a = {\n                                            index: p,\n                                            limitDelta: e.visible ? u + t : u - t,\n                                            size: e.size\n                                        }\n                                    }\n                                }\n                                this.sashDragState = {\n                                    start: e,\n                                    current: e,\n                                    index: o,\n                                    sizes: i,\n                                    minDelta: l,\n                                    maxDelta: c,\n                                    alt: t,\n                                    snapBefore: n,\n                                    snapAfter: a,\n                                    disposable: s\n                                }\n                            };\n                        a(t, i)\n                    }\n                    onSashChange({\n                        current: e\n                    }) {\n                        const {\n                            index: t,\n                            start: i,\n                            sizes: n,\n                            alt: o,\n                            minDelta: s,\n                            maxDelta: r,\n                            snapBefore: a,\n                            snapAfter: l\n                        } = this.sashDragState;\n                        this.sashDragState.current = e;\n                        const c = e - i,\n                            d = this.resize(t, c, n, void 0, void 0, s, r, a, l);\n                        if (o) {\n                            const e = t === this.sashItems.length - 1,\n                                i = this.viewItems.map((e => e.size)),\n                                n = e ? t : t + 1,\n                                o = this.viewItems[n],\n                                s = o.size - o.maximumSize,\n                                r = o.size - o.minimumSize,\n                                a = e ? t - 1 : t + 1;\n                            this.resize(a, -d, i, void 0, void 0, s, r)\n                        }\n                        this.distributeEmptySpace(), this.layoutViews()\n                    }\n                    onSashEnd(e) {\n                        this._onDidSashChange.fire(e), this.sashDragState.disposable.dispose(), this.saveProportions();\n                        for (const e of this.viewItems) e.enabled = !0\n                    }\n                    onViewChange(e, t) {\n                        const i = this.viewItems.indexOf(e);\n                        i < 0 || i >= this.viewItems.length || (t = \"number\" == typeof t ? t : e.size, t = (0, d.u)(t, e.minimumSize, e.maximumSize), this.inverseAltBehavior && i > 0 ? (this.resize(i - 1, Math.floor((e.size - t) / 2)), this.distributeEmptySpace(), this.layoutViews()) : (e.size = t, this.relayout([i], void 0)))\n                    }\n                    resizeView(e, t) {\n                        if (this.state !== v.Idle) throw new Error(\"Cant modify splitview\");\n                        if (this.state = v.Busy, e < 0 || e >= this.viewItems.length) return;\n                        const i = (0, r.w6)(this.viewItems.length).filter((t => t !== e)),\n                            n = [...i.filter((e => 1 === this.viewItems[e].priority)), e],\n                            o = i.filter((e => 2 === this.viewItems[e].priority)),\n                            s = this.viewItems[e];\n                        t = Math.round(t), t = (0, d.u)(t, s.minimumSize, Math.min(s.maximumSize, this.size)), s.size = t, this.relayout(n, o), this.state = v.Idle\n                    }\n                    distributeViewSizes() {\n                        const e = [];\n                        let t = 0;\n                        for (const i of this.viewItems) i.maximumSize - i.minimumSize > 0 && (e.push(i), t += i.size);\n                        const i = Math.floor(t / e.length);\n                        for (const t of e) t.size = (0, d.u)(i, t.minimumSize, t.maximumSize);\n                        const n = (0, r.w6)(this.viewItems.length),\n                            o = n.filter((e => 1 === this.viewItems[e].priority)),\n                            s = n.filter((e => 2 === this.viewItems[e].priority));\n                        this.relayout(o, s)\n                    }\n                    getViewSize(e) {\n                        return e < 0 || e >= this.viewItems.length ? -1 : this.viewItems[e].size\n                    }\n                    doAddView(e, t, i = this.viewItems.length, s) {\n                        if (this.state !== v.Idle) throw new Error(\"Cant modify splitview\");\n                        this.state = v.Busy;\n                        const a = (0, n.$)(\".split-view-view\");\n                        i === this.viewItems.length ? this.viewContainer.appendChild(a) : this.viewContainer.insertBefore(a, this.viewContainer.children.item(i));\n                        const d = e.onDidChange((e => this.onViewChange(p, e))),\n                            h = (0, c.OF)((() => this.viewContainer.removeChild(a))),\n                            u = (0, c.F8)(d, h);\n                        let g;\n                        g = \"number\" == typeof t ? t : \"split\" === t.type ? this.getViewSize(t.index) / 2 : \"invisible\" === t.type ? {\n                            cachedVisibleSize: t.cachedVisibleSize\n                        } : e.minimumSize;\n                        const p = 0 === this.orientation ? new f(a, e, g, u) : new m(a, e, g, u);\n                        if (this.viewItems.splice(i, 0, p), this.viewItems.length > 1) {\n                            let e = {\n                                orthogonalStartSash: this.orthogonalStartSash,\n                                orthogonalEndSash: this.orthogonalEndSash\n                            };\n                            const t = 0 === this.orientation ? new o.g(this.sashContainer, {\n                                    getHorizontalSashTop: e => this.getSashPosition(e),\n                                    getHorizontalSashWidth: this.getSashOrthogonalSize\n                                }, Object.assign(Object.assign({}, e), {\n                                    orientation: 1\n                                })) : new o.g(this.sashContainer, {\n                                    getVerticalSashLeft: e => this.getSashPosition(e),\n                                    getVerticalSashHeight: this.getSashOrthogonalSize\n                                }, Object.assign(Object.assign({}, e), {\n                                    orientation: 0\n                                })),\n                                n = 0 === this.orientation ? e => ({\n                                    sash: t,\n                                    start: e.startY,\n                                    current: e.currentY,\n                                    alt: e.altKey\n                                }) : e => ({\n                                    sash: t,\n                                    start: e.startX,\n                                    current: e.currentX,\n                                    alt: e.altKey\n                                }),\n                                s = l.ju.map(t.onDidStart, n)(this.onSashStart, this),\n                                a = l.ju.map(t.onDidChange, n)(this.onSashChange, this),\n                                d = l.ju.map(t.onDidEnd, (() => this.sashItems.findIndex((e => e.sash === t)))),\n                                h = d(this.onSashEnd, this),\n                                u = t.onDidReset((() => {\n                                    const e = this.sashItems.findIndex((e => e.sash === t)),\n                                        i = (0, r.w6)(e, -1),\n                                        n = (0, r.w6)(e + 1, this.viewItems.length),\n                                        o = this.findFirstSnapIndex(i),\n                                        s = this.findFirstSnapIndex(n);\n                                    (\"number\" != typeof o || this.viewItems[o].visible) && (\"number\" != typeof s || this.viewItems[s].visible) && this._onDidSashReset.fire(e)\n                                })),\n                                g = (0, c.F8)(s, a, h, u, t),\n                                p = {\n                                    sash: t,\n                                    disposable: g\n                                };\n                            this.sashItems.splice(i - 1, 0, p)\n                        }\n                        let _;\n                        a.appendChild(e.element), \"number\" != typeof t && \"split\" === t.type && (_ = [t.index]), s || this.relayout([i], _), this.state = v.Idle, s || \"number\" == typeof t || \"distribute\" !== t.type || this.distributeViewSizes()\n                    }\n                    relayout(e, t) {\n                        const i = this.viewItems.reduce(((e, t) => e + t.size), 0);\n                        this.resize(this.viewItems.length - 1, this.size - i, void 0, e, t), this.distributeEmptySpace(), this.layoutViews(), this.saveProportions()\n                    }\n                    resize(e, t, i = this.viewItems.map((e => e.size)), n, o, s = Number.NEGATIVE_INFINITY, a = Number.POSITIVE_INFINITY, l, c) {\n                        if (e < 0 || e >= this.viewItems.length) return 0;\n                        const h = (0, r.w6)(e, -1),\n                            u = (0, r.w6)(e + 1, this.viewItems.length);\n                        if (o)\n                            for (const e of o)(0, r.zI)(h, e), (0, r.zI)(u, e);\n                        if (n)\n                            for (const e of n)(0, r.al)(h, e), (0, r.al)(u, e);\n                        const g = h.map((e => this.viewItems[e])),\n                            p = h.map((e => i[e])),\n                            f = u.map((e => this.viewItems[e])),\n                            m = u.map((e => i[e])),\n                            v = h.reduce(((e, t) => e + (this.viewItems[t].minimumSize - i[t])), 0),\n                            _ = h.reduce(((e, t) => e + (this.viewItems[t].maximumSize - i[t])), 0),\n                            b = 0 === u.length ? Number.POSITIVE_INFINITY : u.reduce(((e, t) => e + (i[t] - this.viewItems[t].minimumSize)), 0),\n                            w = 0 === u.length ? Number.NEGATIVE_INFINITY : u.reduce(((e, t) => e + (i[t] - this.viewItems[t].maximumSize)), 0),\n                            y = Math.max(v, w, s),\n                            C = Math.min(b, _, a);\n                        let x = !1;\n                        if (l) {\n                            const e = this.viewItems[l.index],\n                                i = t >= l.limitDelta;\n                            x = i !== e.visible, e.setVisible(i, l.size)\n                        }\n                        if (!x && c) {\n                            const e = this.viewItems[c.index],\n                                i = t < c.limitDelta;\n                            x = i !== e.visible, e.setVisible(i, c.size)\n                        }\n                        if (x) return this.resize(e, t, i, n, o, s, a);\n                        for (let e = 0, i = t = (0, d.u)(t, y, C); e < g.length; e++) {\n                            const t = g[e],\n                                n = (0, d.u)(p[e] + i, t.minimumSize, t.maximumSize);\n                            i -= n - p[e], t.size = n\n                        }\n                        for (let e = 0, i = t; e < f.length; e++) {\n                            const t = f[e],\n                                n = (0, d.u)(m[e] - i, t.minimumSize, t.maximumSize);\n                            i += n - m[e], t.size = n\n                        }\n                        return t\n                    }\n                    distributeEmptySpace(e) {\n                        const t = this.viewItems.reduce(((e, t) => e + t.size), 0);\n                        let i = this.size - t;\n                        const n = (0, r.w6)(this.viewItems.length - 1, -1),\n                            o = n.filter((e => 1 === this.viewItems[e].priority)),\n                            s = n.filter((e => 2 === this.viewItems[e].priority));\n                        for (const e of s)(0, r.zI)(n, e);\n                        for (const e of o)(0, r.al)(n, e);\n                        \"number\" == typeof e && (0, r.al)(n, e);\n                        for (let e = 0; 0 !== i && e < n.length; e++) {\n                            const t = this.viewItems[n[e]],\n                                o = (0, d.u)(t.size + i, t.minimumSize, t.maximumSize);\n                            i -= o - t.size, t.size = o\n                        }\n                    }\n                    layoutViews() {\n                        this.contentSize = this.viewItems.reduce(((e, t) => e + t.size), 0);\n                        let e = 0;\n                        for (const t of this.viewItems) t.layout(e, this.layoutContext), e += t.size;\n                        this.sashItems.forEach((e => e.sash.layout())), this.updateSashEnablement(), this.updateScrollableElement()\n                    }\n                    updateScrollableElement() {\n                        0 === this.orientation ? this.scrollableElement.setScrollDimensions({\n                            height: this.size,\n                            scrollHeight: this.contentSize\n                        }) : this.scrollableElement.setScrollDimensions({\n                            width: this.size,\n                            scrollWidth: this.contentSize\n                        })\n                    }\n                    updateSashEnablement() {\n                        let e = !1;\n                        const t = this.viewItems.map((t => e = t.size - t.minimumSize > 0 || e));\n                        e = !1;\n                        const i = this.viewItems.map((t => e = t.maximumSize - t.size > 0 || e)),\n                            n = [...this.viewItems].reverse();\n                        e = !1;\n                        const o = n.map((t => e = t.size - t.minimumSize > 0 || e)).reverse();\n                        e = !1;\n                        const s = n.map((t => e = t.maximumSize - t.size > 0 || e)).reverse();\n                        let a = 0;\n                        for (let e = 0; e < this.sashItems.length; e++) {\n                            const {\n                                sash: n\n                            } = this.sashItems[e];\n                            a += this.viewItems[e].size;\n                            const l = !(t[e] && s[e + 1]),\n                                c = !(i[e] && o[e + 1]);\n                            if (l && c) {\n                                const i = (0, r.w6)(e, -1),\n                                    s = (0, r.w6)(e + 1, this.viewItems.length),\n                                    l = this.findFirstSnapIndex(i),\n                                    c = this.findFirstSnapIndex(s),\n                                    d = \"number\" == typeof l && !this.viewItems[l].visible,\n                                    h = \"number\" == typeof c && !this.viewItems[c].visible;\n                                d && o[e] && (a > 0 || this.startSnappingEnabled) ? n.state = 1 : h && t[e] && (a < this.contentSize || this.endSnappingEnabled) ? n.state = 2 : n.state = 0\n                            } else n.state = l && !c ? 1 : !l && c ? 2 : 3\n                        }\n                    }\n                    getSashPosition(e) {\n                        let t = 0;\n                        for (let i = 0; i < this.sashItems.length; i++)\n                            if (t += this.viewItems[i].size, this.sashItems[i].sash === e) return t;\n                        return 0\n                    }\n                    findFirstSnapIndex(e) {\n                        for (const t of e) {\n                            const e = this.viewItems[t];\n                            if (e.visible && e.snap) return t\n                        }\n                        for (const t of e) {\n                            const e = this.viewItems[t];\n                            if (e.visible && e.maximumSize - e.minimumSize > 0) return;\n                            if (!e.visible && e.snap) return t\n                        }\n                    }\n                    dispose() {\n                        super.dispose(), this.viewItems.forEach((e => e.dispose())), this.viewItems = [], this.sashItems.forEach((e => e.disposable.dispose())), this.sashItems = []\n                    }\n                }\n            },\n            93794: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    $: () => l\n                });\n                var n = i(65321),\n                    o = i(59069),\n                    s = i(23938),\n                    r = i(10553),\n                    a = i(5976);\n                class l extends a.JT {\n                    onclick(e, t) {\n                        this._register(n.nm(e, n.tw.CLICK, (e => t(new s.n(e)))))\n                    }\n                    onmousedown(e, t) {\n                        this._register(n.nm(e, n.tw.MOUSE_DOWN, (e => t(new s.n(e)))))\n                    }\n                    onmouseover(e, t) {\n                        this._register(n.nm(e, n.tw.MOUSE_OVER, (e => t(new s.n(e)))))\n                    }\n                    onnonbubblingmouseout(e, t) {\n                        this._register(n.j_(e, (e => t(new s.n(e)))))\n                    }\n                    onkeydown(e, t) {\n                        this._register(n.nm(e, n.tw.KEY_DOWN, (e => t(new o.y(e)))))\n                    }\n                    onkeyup(e, t) {\n                        this._register(n.nm(e, n.tw.KEY_UP, (e => t(new o.y(e)))))\n                    }\n                    oninput(e, t) {\n                        this._register(n.nm(e, n.tw.INPUT, t))\n                    }\n                    onblur(e, t) {\n                        this._register(n.nm(e, n.tw.BLUR, t))\n                    }\n                    onfocus(e, t) {\n                        this._register(n.nm(e, n.tw.FOCUS, t))\n                    }\n                    ignoreGesture(e) {\n                        r.o.ignoreTarget(e)\n                    }\n                }\n            },\n            74741: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    Wi: () => l,\n                    Z0: () => c,\n                    aU: () => a,\n                    eZ: () => h,\n                    wY: () => d\n                });\n                var n = i(4669),\n                    o = i(5976),\n                    s = i(63580),\n                    r = function(e, t, i, n) {\n                        return new(i || (i = Promise))((function(o, s) {\n                            function r(e) {\n                                try {\n                                    l(n.next(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function a(e) {\n                                try {\n                                    l(n.throw(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function l(e) {\n                                var t;\n                                e.done ? o(e.value) : (t = e.value, t instanceof i ? t : new i((function(e) {\n                                    e(t)\n                                }))).then(r, a)\n                            }\n                            l((n = n.apply(e, t || [])).next())\n                        }))\n                    };\n                class a extends o.JT {\n                    constructor(e, t = \"\", i = \"\", o = !0, s) {\n                        super(), this._onDidChange = this._register(new n.Q5), this.onDidChange = this._onDidChange.event, this._enabled = !0, this._id = e, this._label = t, this._cssClass = i, this._enabled = o, this._actionCallback = s\n                    }\n                    get id() {\n                        return this._id\n                    }\n                    get label() {\n                        return this._label\n                    }\n                    set label(e) {\n                        this._setLabel(e)\n                    }\n                    _setLabel(e) {\n                        this._label !== e && (this._label = e, this._onDidChange.fire({\n                            label: e\n                        }))\n                    }\n                    get tooltip() {\n                        return this._tooltip || \"\"\n                    }\n                    set tooltip(e) {\n                        this._setTooltip(e)\n                    }\n                    _setTooltip(e) {\n                        this._tooltip !== e && (this._tooltip = e, this._onDidChange.fire({\n                            tooltip: e\n                        }))\n                    }\n                    get class() {\n                        return this._cssClass\n                    }\n                    set class(e) {\n                        this._setClass(e)\n                    }\n                    _setClass(e) {\n                        this._cssClass !== e && (this._cssClass = e, this._onDidChange.fire({\n                            class: e\n                        }))\n                    }\n                    get enabled() {\n                        return this._enabled\n                    }\n                    set enabled(e) {\n                        this._setEnabled(e)\n                    }\n                    _setEnabled(e) {\n                        this._enabled !== e && (this._enabled = e, this._onDidChange.fire({\n                            enabled: e\n                        }))\n                    }\n                    get checked() {\n                        return this._checked\n                    }\n                    set checked(e) {\n                        this._setChecked(e)\n                    }\n                    _setChecked(e) {\n                        this._checked !== e && (this._checked = e, this._onDidChange.fire({\n                            checked: e\n                        }))\n                    }\n                    run(e, t) {\n                        return r(this, void 0, void 0, (function*() {\n                            this._actionCallback && (yield this._actionCallback(e))\n                        }))\n                    }\n                }\n                class l extends o.JT {\n                    constructor() {\n                        super(...arguments), this._onBeforeRun = this._register(new n.Q5), this.onBeforeRun = this._onBeforeRun.event, this._onDidRun = this._register(new n.Q5), this.onDidRun = this._onDidRun.event\n                    }\n                    run(e, t) {\n                        return r(this, void 0, void 0, (function*() {\n                            if (!e.enabled) return;\n                            let i;\n                            this._onBeforeRun.fire({\n                                action: e\n                            });\n                            try {\n                                yield this.runAction(e, t)\n                            } catch (e) {\n                                i = e\n                            }\n                            this._onDidRun.fire({\n                                action: e,\n                                error: i\n                            })\n                        }))\n                    }\n                    runAction(e, t) {\n                        return r(this, void 0, void 0, (function*() {\n                            yield e.run(t)\n                        }))\n                    }\n                }\n                class c extends a {\n                    constructor(e) {\n                        super(c.ID, e, e ? \"separator text\" : \"separator\"), this.checked = !1, this.enabled = !1\n                    }\n                }\n                c.ID = \"vs.actions.separator\";\n                class d {\n                    constructor(e, t, i, n) {\n                        this.tooltip = \"\", this.enabled = !0, this.checked = !1, this.id = e, this.label = t, this.class = n, this._actions = i\n                    }\n                    get actions() {\n                        return this._actions\n                    }\n                    dispose() {}\n                    run() {\n                        return r(this, void 0, void 0, (function*() {}))\n                    }\n                }\n                class h extends a {\n                    constructor() {\n                        super(h.ID, s.N(\"submenu.empty\", \"(empty)\"), void 0, !1)\n                    }\n                }\n                h.ID = \"vs.actions.empty\"\n            },\n            9488: (e, t, i) => {\n                \"use strict\";\n\n                function n(e, t = 0) {\n                    return e[e.length - (1 + t)]\n                }\n\n                function o(e) {\n                    if (0 === e.length) throw new Error(\"Invalid tail call\");\n                    return [e.slice(0, e.length - 1), e[e.length - 1]]\n                }\n\n                function s(e, t, i = ((e, t) => e === t)) {\n                    if (e === t) return !0;\n                    if (!e || !t) return !1;\n                    if (e.length !== t.length) return !1;\n                    for (let n = 0, o = e.length; n < o; n++)\n                        if (!i(e[n], t[n])) return !1;\n                    return !0\n                }\n\n                function r(e, t, i) {\n                    let n = 0,\n                        o = e.length - 1;\n                    for (; n <= o;) {\n                        const s = (n + o) / 2 | 0,\n                            r = i(e[s], t);\n                        if (r < 0) n = s + 1;\n                        else {\n                            if (!(r > 0)) return s;\n                            o = s - 1\n                        }\n                    }\n                    return -(n + 1)\n                }\n\n                function a(e, t) {\n                    let i = 0,\n                        n = e.length;\n                    if (0 === n) return 0;\n                    for (; i < n;) {\n                        const o = Math.floor((i + n) / 2);\n                        t(e[o]) ? n = o : i = o + 1\n                    }\n                    return i\n                }\n\n                function l(e, t, i) {\n                    if ((e |= 0) >= t.length) throw new TypeError(\"invalid index\");\n                    let n = t[Math.floor(t.length * Math.random())],\n                        o = [],\n                        s = [],\n                        r = [];\n                    for (let e of t) {\n                        const t = i(e, n);\n                        t < 0 ? o.push(e) : t > 0 ? s.push(e) : r.push(e)\n                    }\n                    return e < o.length ? l(e, o, i) : e < o.length + r.length ? r[0] : l(e - (o.length + r.length), s, i)\n                }\n\n                function c(e, t) {\n                    const i = [];\n                    let n;\n                    for (const o of e.slice(0).sort(t)) n && 0 === t(n[0], o) ? n.push(o) : (n = [o], i.push(n));\n                    return i\n                }\n\n                function d(e) {\n                    return e.filter((e => !!e))\n                }\n\n                function h(e) {\n                    return !Array.isArray(e) || 0 === e.length\n                }\n\n                function u(e) {\n                    return Array.isArray(e) && e.length > 0\n                }\n\n                function g(e, t = (e => e)) {\n                    const i = new Set;\n                    return e.filter((e => {\n                        const n = t(e);\n                        return !i.has(n) && (i.add(n), !0)\n                    }))\n                }\n\n                function p(e, t) {\n                    const i = function(e, t) {\n                        for (let i = e.length - 1; i >= 0; i--) {\n                            if (t(e[i])) return i\n                        }\n                        return -1\n                    }(e, t);\n                    if (-1 !== i) return e[i]\n                }\n\n                function f(e, t) {\n                    return e.length > 0 ? e[0] : t\n                }\n\n                function m(e) {\n                    return [].concat(...e)\n                }\n\n                function v(e, t) {\n                    let i = \"number\" == typeof t ? e : 0;\n                    \"number\" == typeof t ? i = e : (i = 0, t = e);\n                    const n = [];\n                    if (i <= t)\n                        for (let e = i; e < t; e++) n.push(e);\n                    else\n                        for (let e = i; e > t; e--) n.push(e);\n                    return n\n                }\n\n                function _(e, t, i) {\n                    const n = e.slice(0, t),\n                        o = e.slice(t);\n                    return n.concat(i, o)\n                }\n\n                function b(e, t) {\n                    const i = e.indexOf(t);\n                    i > -1 && (e.splice(i, 1), e.unshift(t))\n                }\n\n                function w(e, t) {\n                    const i = e.indexOf(t);\n                    i > -1 && (e.splice(i, 1), e.push(t))\n                }\n\n                function y(e) {\n                    return Array.isArray(e) ? e : [e]\n                }\n\n                function C(e, t, i, n) {\n                    const o = x(e, t),\n                        s = e.splice(o, i);\n                    return function(e, t, i) {\n                        const n = x(e, t),\n                            o = e.length,\n                            s = i.length;\n                        e.length = o + s;\n                        for (let t = o - 1; t >= n; t--) e[t + s] = e[t];\n                        for (let t = 0; t < s; t++) e[t + n] = i[t]\n                    }(e, o, n), s\n                }\n\n                function x(e, t) {\n                    return t < 0 ? Math.max(t + e.length, 0) : Math.min(t, e.length)\n                }\n                i.d(t, {\n                    EB: () => g,\n                    Gb: () => n,\n                    H9: () => S,\n                    HW: () => l,\n                    JH: () => o,\n                    Of: () => u,\n                    XY: () => h,\n                    Xh: () => f,\n                    Zv: () => _,\n                    _2: () => y,\n                    al: () => w,\n                    dF: () => p,\n                    db: () => C,\n                    fS: () => s,\n                    kX: () => d,\n                    lG: () => a,\n                    ry: () => r,\n                    vM: () => c,\n                    w6: () => v,\n                    xH: () => m,\n                    zI: () => b\n                });\n                class S {\n                    constructor(e) {\n                        this.items = e, this.firstIdx = 0, this.lastIdx = this.items.length - 1\n                    }\n                    takeWhile(e) {\n                        let t = this.firstIdx;\n                        for (; t < this.items.length && e(this.items[t]);) t++;\n                        const i = t === this.firstIdx ? null : this.items.slice(this.firstIdx, t);\n                        return this.firstIdx = t, i\n                    }\n                    takeFromEndWhile(e) {\n                        let t = this.lastIdx;\n                        for (; t >= 0 && e(this.items[t]);) t--;\n                        const i = t === this.lastIdx ? null : this.items.slice(t + 1, this.lastIdx + 1);\n                        return this.lastIdx = t, i\n                    }\n                    peek() {\n                        return this.items[this.firstIdx]\n                    }\n                }\n            },\n            35146: (e, t, i) => {\n                \"use strict\";\n\n                function n(e, t) {\n                    if (!e) throw new Error(t ? `Assertion failed (${t})` : \"Assertion Failed\")\n                }\n                i.d(t, {\n                    ok: () => n\n                })\n            },\n            15393: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    J8: () => a,\n                    PG: () => l,\n                    Ps: () => f,\n                    To: () => b,\n                    Ue: () => w,\n                    Vg: () => p,\n                    Vs: () => g,\n                    _F: () => m,\n                    eP: () => c,\n                    jT: () => y,\n                    pY: () => _,\n                    rH: () => u,\n                    vp: () => h,\n                    zh: () => v\n                });\n                var n = i(71050),\n                    o = i(17301),\n                    s = i(5976),\n                    r = function(e, t, i, n) {\n                        return new(i || (i = Promise))((function(o, s) {\n                            function r(e) {\n                                try {\n                                    l(n.next(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function a(e) {\n                                try {\n                                    l(n.throw(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function l(e) {\n                                var t;\n                                e.done ? o(e.value) : (t = e.value, t instanceof i ? t : new i((function(e) {\n                                    e(t)\n                                }))).then(r, a)\n                            }\n                            l((n = n.apply(e, t || [])).next())\n                        }))\n                    };\n\n                function a(e) {\n                    return !!e && \"function\" == typeof e.then\n                }\n\n                function l(e) {\n                    const t = new n.A,\n                        i = e(t.token),\n                        s = new Promise(((e, n) => {\n                            const s = t.token.onCancellationRequested((() => {\n                                s.dispose(), t.dispose(), n((0, o.F0)())\n                            }));\n                            Promise.resolve(i).then((i => {\n                                s.dispose(), t.dispose(), e(i)\n                            }), (e => {\n                                s.dispose(), t.dispose(), n(e)\n                            }))\n                        }));\n                    return new class {\n                        cancel() {\n                            t.cancel()\n                        }\n                        then(e, t) {\n                            return s.then(e, t)\n                        } catch (e) {\n                            return this.then(void 0, e)\n                        } finally(e) {\n                            return s.finally(e)\n                        }\n                    }\n                }\n\n                function c(e, t, i) {\n                    return Promise.race([e, new Promise((e => t.onCancellationRequested((() => e(i)))))])\n                }\n                class d {\n                    constructor() {\n                        this.activePromise = null, this.queuedPromise = null, this.queuedPromiseFactory = null\n                    }\n                    queue(e) {\n                        if (this.activePromise) {\n                            if (this.queuedPromiseFactory = e, !this.queuedPromise) {\n                                const e = () => {\n                                    this.queuedPromise = null;\n                                    const e = this.queue(this.queuedPromiseFactory);\n                                    return this.queuedPromiseFactory = null, e\n                                };\n                                this.queuedPromise = new Promise((t => {\n                                    this.activePromise.then(e, e).then(t)\n                                }))\n                            }\n                            return new Promise(((e, t) => {\n                                this.queuedPromise.then(e, t)\n                            }))\n                        }\n                        return this.activePromise = e(), new Promise(((e, t) => {\n                            this.activePromise.then((t => {\n                                this.activePromise = null, e(t)\n                            }), (e => {\n                                this.activePromise = null, t(e)\n                            }))\n                        }))\n                    }\n                }\n                class h {\n                    constructor(e) {\n                        this.defaultDelay = e, this.timeout = null, this.completionPromise = null, this.doResolve = null, this.doReject = null, this.task = null\n                    }\n                    trigger(e, t = this.defaultDelay) {\n                        return this.task = e, this.cancelTimeout(), this.completionPromise || (this.completionPromise = new Promise(((e, t) => {\n                            this.doResolve = e, this.doReject = t\n                        })).then((() => {\n                            if (this.completionPromise = null, this.doResolve = null, this.task) {\n                                const e = this.task;\n                                return this.task = null, e()\n                            }\n                        }))), this.timeout = setTimeout((() => {\n                            this.timeout = null, this.doResolve && this.doResolve(null)\n                        }), t), this.completionPromise\n                    }\n                    isTriggered() {\n                        return null !== this.timeout\n                    }\n                    cancel() {\n                        this.cancelTimeout(), this.completionPromise && (this.doReject && this.doReject((0, o.F0)()), this.completionPromise = null)\n                    }\n                    cancelTimeout() {\n                        null !== this.timeout && (clearTimeout(this.timeout), this.timeout = null)\n                    }\n                    dispose() {\n                        this.cancel()\n                    }\n                }\n                class u {\n                    constructor(e) {\n                        this.delayer = new h(e), this.throttler = new d\n                    }\n                    trigger(e, t) {\n                        return this.delayer.trigger((() => this.throttler.queue(e)), t)\n                    }\n                    dispose() {\n                        this.delayer.dispose()\n                    }\n                }\n\n                function g(e, t) {\n                    return t ? new Promise(((i, n) => {\n                        const s = setTimeout((() => {\n                                r.dispose(), i()\n                            }), e),\n                            r = t.onCancellationRequested((() => {\n                                clearTimeout(s), r.dispose(), n((0, o.F0)())\n                            }))\n                    })) : l((t => g(e, t)))\n                }\n\n                function p(e, t = 0) {\n                    const i = setTimeout(e, t);\n                    return (0, s.OF)((() => clearTimeout(i)))\n                }\n\n                function f(e, t = (e => !!e), i = null) {\n                    let n = 0;\n                    const o = e.length,\n                        s = () => {\n                            if (n >= o) return Promise.resolve(i);\n                            const r = e[n++];\n                            return Promise.resolve(r()).then((e => t(e) ? Promise.resolve(e) : s()))\n                        };\n                    return s()\n                }\n                class m {\n                    constructor(e, t) {\n                        this._token = -1, \"function\" == typeof e && \"number\" == typeof t && this.setIfNotSet(e, t)\n                    }\n                    dispose() {\n                        this.cancel()\n                    }\n                    cancel() {\n                        -1 !== this._token && (clearTimeout(this._token), this._token = -1)\n                    }\n                    cancelAndSet(e, t) {\n                        this.cancel(), this._token = setTimeout((() => {\n                            this._token = -1, e()\n                        }), t)\n                    }\n                    setIfNotSet(e, t) {\n                        -1 === this._token && (this._token = setTimeout((() => {\n                            this._token = -1, e()\n                        }), t))\n                    }\n                }\n                class v {\n                    constructor() {\n                        this._token = -1\n                    }\n                    dispose() {\n                        this.cancel()\n                    }\n                    cancel() {\n                        -1 !== this._token && (clearInterval(this._token), this._token = -1)\n                    }\n                    cancelAndSet(e, t) {\n                        this.cancel(), this._token = setInterval((() => {\n                            e()\n                        }), t)\n                    }\n                }\n                class _ {\n                    constructor(e, t) {\n                        this.timeoutToken = -1, this.runner = e, this.timeout = t, this.timeoutHandler = this.onTimeout.bind(this)\n                    }\n                    dispose() {\n                        this.cancel(), this.runner = null\n                    }\n                    cancel() {\n                        this.isScheduled() && (clearTimeout(this.timeoutToken), this.timeoutToken = -1)\n                    }\n                    schedule(e = this.timeout) {\n                        this.cancel(), this.timeoutToken = setTimeout(this.timeoutHandler, e)\n                    }\n                    get delay() {\n                        return this.timeout\n                    }\n                    set delay(e) {\n                        this.timeout = e\n                    }\n                    isScheduled() {\n                        return -1 !== this.timeoutToken\n                    }\n                    onTimeout() {\n                        this.timeoutToken = -1, this.runner && this.doRun()\n                    }\n                    doRun() {\n                        this.runner && this.runner()\n                    }\n                }\n                let b;\n                b = \"function\" != typeof requestIdleCallback || \"function\" != typeof cancelIdleCallback ? e => {\n                    const t = setTimeout((() => {\n                        const t = Date.now() + 15;\n                        e(Object.freeze({\n                            didTimeout: !0,\n                            timeRemaining: () => Math.max(0, t - Date.now())\n                        }))\n                    }));\n                    let i = !1;\n                    return {\n                        dispose() {\n                            i || (i = !0, clearTimeout(t))\n                        }\n                    }\n                } : (e, t) => {\n                    const i = requestIdleCallback(e, \"number\" == typeof t ? {\n                        timeout: t\n                    } : void 0);\n                    let n = !1;\n                    return {\n                        dispose() {\n                            n || (n = !0, cancelIdleCallback(i))\n                        }\n                    }\n                };\n                class w {\n                    constructor(e) {\n                        this._didRun = !1, this._executor = () => {\n                            try {\n                                this._value = e()\n                            } catch (e) {\n                                this._error = e\n                            } finally {\n                                this._didRun = !0\n                            }\n                        }, this._handle = b((() => this._executor()))\n                    }\n                    dispose() {\n                        this._handle.dispose()\n                    }\n                    get value() {\n                        if (this._didRun || (this._handle.dispose(), this._executor()), this._error) throw this._error;\n                        return this._value\n                    }\n                    get isInitialized() {\n                        return this._didRun\n                    }\n                }\n                var y;\n                ! function(e) {\n                    e.settled = function(e) {\n                        return r(this, void 0, void 0, (function*() {\n                            let t;\n                            const i = yield Promise.all(e.map((e => e.then((e => e), (e => {\n                                t || (t = e)\n                            })))));\n                            if (void 0 !== t) throw t;\n                            return i\n                        }))\n                    }, e.withAsyncBody = function(e) {\n                        return new Promise(((t, i) => r(this, void 0, void 0, (function*() {\n                            try {\n                                yield e(t, i)\n                            } catch (e) {\n                                i(e)\n                            }\n                        }))))\n                    }\n                }(y || (y = {}))\n            },\n            53060: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    Ag: () => l,\n                    Cg: () => h,\n                    KN: () => s,\n                    Q$: () => d,\n                    T4: () => c,\n                    mP: () => r,\n                    oq: () => a\n                });\n                const n = \"undefined\" != typeof Buffer;\n                let o;\n                class s {\n                    constructor(e) {\n                        this.buffer = e, this.byteLength = this.buffer.byteLength\n                    }\n                    static wrap(e) {\n                        return n && !Buffer.isBuffer(e) && (e = Buffer.from(e.buffer, e.byteOffset, e.byteLength)), new s(e)\n                    }\n                    toString() {\n                        return n ? this.buffer.toString() : (o || (o = new TextDecoder), o.decode(this.buffer))\n                    }\n                }\n\n                function r(e, t) {\n                    return e[t + 0] << 0 >>> 0 | e[t + 1] << 8 >>> 0\n                }\n\n                function a(e, t, i) {\n                    e[i + 0] = 255 & t, t >>>= 8, e[i + 1] = 255 & t\n                }\n\n                function l(e, t) {\n                    return e[t] * Math.pow(2, 24) + e[t + 1] * Math.pow(2, 16) + e[t + 2] * Math.pow(2, 8) + e[t + 3]\n                }\n\n                function c(e, t, i) {\n                    e[i + 3] = t, t >>>= 8, e[i + 2] = t, t >>>= 8, e[i + 1] = t, t >>>= 8, e[i] = t\n                }\n\n                function d(e, t) {\n                    return e[t]\n                }\n\n                function h(e, t, i) {\n                    e[i] = t\n                }\n            },\n            71050: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    A: () => a,\n                    T: () => s\n                });\n                var n = i(4669);\n                const o = Object.freeze((function(e, t) {\n                    const i = setTimeout(e.bind(t), 0);\n                    return {\n                        dispose() {\n                            clearTimeout(i)\n                        }\n                    }\n                }));\n                var s;\n                ! function(e) {\n                    e.isCancellationToken = function(t) {\n                        return t === e.None || t === e.Cancelled || (t instanceof r || !(!t || \"object\" != typeof t) && (\"boolean\" == typeof t.isCancellationRequested && \"function\" == typeof t.onCancellationRequested))\n                    }, e.None = Object.freeze({\n                        isCancellationRequested: !1,\n                        onCancellationRequested: n.ju.None\n                    }), e.Cancelled = Object.freeze({\n                        isCancellationRequested: !0,\n                        onCancellationRequested: o\n                    })\n                }(s || (s = {}));\n                class r {\n                    constructor() {\n                        this._isCancelled = !1, this._emitter = null\n                    }\n                    cancel() {\n                        this._isCancelled || (this._isCancelled = !0, this._emitter && (this._emitter.fire(void 0), this.dispose()))\n                    }\n                    get isCancellationRequested() {\n                        return this._isCancelled\n                    }\n                    get onCancellationRequested() {\n                        return this._isCancelled ? o : (this._emitter || (this._emitter = new n.Q5), this._emitter.event)\n                    }\n                    dispose() {\n                        this._emitter && (this._emitter.dispose(), this._emitter = null)\n                    }\n                }\n                class a {\n                    constructor(e) {\n                        this._token = void 0, this._parentListener = void 0, this._parentListener = e && e.onCancellationRequested(this.cancel, this)\n                    }\n                    get token() {\n                        return this._token || (this._token = new r), this._token\n                    }\n                    cancel() {\n                        this._token ? this._token instanceof r && this._token.cancel() : this._token = s.Cancelled\n                    }\n                    dispose(e = !1) {\n                        e && this.cancel(), this._parentListener && this._parentListener.dispose(), this._token ? this._token instanceof r && this._token.dispose() : this._token = s.None\n                    }\n                }\n            },\n            73046: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    CM: () => r,\n                    JL: () => a,\n                    dT: () => c,\n                    fK: () => s,\n                    lA: () => l\n                });\n                var n = i(4669);\n                const o = new class {\n                        constructor() {\n                            this._icons = new Map, this._onDidRegister = new n.Q5\n                        }\n                        add(e) {\n                            const t = this._icons.get(e.id);\n                            t ? e.description ? t.description = e.description : console.error(`Duplicate registration of codicon ${e.id}`) : (this._icons.set(e.id, e), this._onDidRegister.fire(e))\n                        }\n                        get(e) {\n                            return this._icons.get(e)\n                        }\n                        get all() {\n                            return this._icons.values()\n                        }\n                        get onDidRegister() {\n                            return this._onDidRegister.event\n                        }\n                    },\n                    s = o;\n\n                function r(e, t) {\n                    return new l(e, t)\n                }\n\n                function a(e) {\n                    return e ? e.replace(/\\$\\((.*?)\\)/g, ((e, t) => ` ${t} `)).trim() : \"\"\n                }\n                class l {\n                    constructor(e, t, i) {\n                        this.id = e, this.definition = t, this.description = i, o.add(this)\n                    }\n                    get classNames() {\n                        return \"codicon codicon-\" + this.id\n                    }\n                    get classNamesArray() {\n                        return [\"codicon\", \"codicon-\" + this.id]\n                    }\n                    get cssSelector() {\n                        return \".codicon.codicon-\" + this.id\n                    }\n                }\n                var c;\n                ! function(e) {\n                    e.iconNameSegment = \"[A-Za-z0-9]+\", e.iconNameExpression = \"[A-Za-z0-9\\\\-]+\", e.iconModifierExpression = \"~[A-Za-z]+\";\n                    const t = new RegExp(`^(${e.iconNameExpression})(${e.iconModifierExpression})?$`);\n\n                    function i(e) {\n                        if (e instanceof l) return [\"codicon\", \"codicon-\" + e.id];\n                        const n = t.exec(e.id);\n                        if (!n) return i(l.error);\n                        let [, o, s] = n;\n                        const r = [\"codicon\", \"codicon-\" + o];\n                        return s && r.push(\"codicon-modifier-\" + s.substr(1)), r\n                    }\n                    e.asClassNameArray = i, e.asClassName = function(e) {\n                        return i(e).join(\" \")\n                    }, e.asCSSSelector = function(e) {\n                        return \".\" + i(e).join(\".\")\n                    }\n                }(c || (c = {})),\n                function(e) {\n                    e.add = new e(\"add\", {\n                        fontCharacter: \"\\\\ea60\"\n                    }), e.plus = new e(\"plus\", e.add.definition), e.gistNew = new e(\"gist-new\", e.add.definition), e.repoCreate = new e(\"repo-create\", e.add.definition), e.lightbulb = new e(\"lightbulb\", {\n                        fontCharacter: \"\\\\ea61\"\n                    }), e.lightBulb = new e(\"light-bulb\", {\n                        fontCharacter: \"\\\\ea61\"\n                    }), e.repo = new e(\"repo\", {\n                        fontCharacter: \"\\\\ea62\"\n                    }), e.repoDelete = new e(\"repo-delete\", {\n                        fontCharacter: \"\\\\ea62\"\n                    }), e.gistFork = new e(\"gist-fork\", {\n                        fontCharacter: \"\\\\ea63\"\n                    }), e.repoForked = new e(\"repo-forked\", {\n                        fontCharacter: \"\\\\ea63\"\n                    }), e.gitPullRequest = new e(\"git-pull-request\", {\n                        fontCharacter: \"\\\\ea64\"\n                    }), e.gitPullRequestAbandoned = new e(\"git-pull-request-abandoned\", {\n                        fontCharacter: \"\\\\ea64\"\n                    }), e.recordKeys = new e(\"record-keys\", {\n                        fontCharacter: \"\\\\ea65\"\n                    }), e.keyboard = new e(\"keyboard\", {\n                        fontCharacter: \"\\\\ea65\"\n                    }), e.tag = new e(\"tag\", {\n                        fontCharacter: \"\\\\ea66\"\n                    }), e.tagAdd = new e(\"tag-add\", {\n                        fontCharacter: \"\\\\ea66\"\n                    }), e.tagRemove = new e(\"tag-remove\", {\n                        fontCharacter: \"\\\\ea66\"\n                    }), e.person = new e(\"person\", {\n                        fontCharacter: \"\\\\ea67\"\n                    }), e.personFollow = new e(\"person-follow\", {\n                        fontCharacter: \"\\\\ea67\"\n                    }), e.personOutline = new e(\"person-outline\", {\n                        fontCharacter: \"\\\\ea67\"\n                    }), e.personFilled = new e(\"person-filled\", {\n                        fontCharacter: \"\\\\ea67\"\n                    }), e.gitBranch = new e(\"git-branch\", {\n                        fontCharacter: \"\\\\ea68\"\n                    }), e.gitBranchCreate = new e(\"git-branch-create\", {\n                        fontCharacter: \"\\\\ea68\"\n                    }), e.gitBranchDelete = new e(\"git-branch-delete\", {\n                        fontCharacter: \"\\\\ea68\"\n                    }), e.sourceControl = new e(\"source-control\", {\n                        fontCharacter: \"\\\\ea68\"\n                    }), e.mirror = new e(\"mirror\", {\n                        fontCharacter: \"\\\\ea69\"\n                    }), e.mirrorPublic = new e(\"mirror-public\", {\n                        fontCharacter: \"\\\\ea69\"\n                    }), e.star = new e(\"star\", {\n                        fontCharacter: \"\\\\ea6a\"\n                    }), e.starAdd = new e(\"star-add\", {\n                        fontCharacter: \"\\\\ea6a\"\n                    }), e.starDelete = new e(\"star-delete\", {\n                        fontCharacter: \"\\\\ea6a\"\n                    }), e.starEmpty = new e(\"star-empty\", {\n                        fontCharacter: \"\\\\ea6a\"\n                    }), e.comment = new e(\"comment\", {\n                        fontCharacter: \"\\\\ea6b\"\n                    }), e.commentAdd = new e(\"comment-add\", {\n                        fontCharacter: \"\\\\ea6b\"\n                    }), e.alert = new e(\"alert\", {\n                        fontCharacter: \"\\\\ea6c\"\n                    }), e.warning = new e(\"warning\", {\n                        fontCharacter: \"\\\\ea6c\"\n                    }), e.search = new e(\"search\", {\n                        fontCharacter: \"\\\\ea6d\"\n                    }), e.searchSave = new e(\"search-save\", {\n                        fontCharacter: \"\\\\ea6d\"\n                    }), e.logOut = new e(\"log-out\", {\n                        fontCharacter: \"\\\\ea6e\"\n                    }), e.signOut = new e(\"sign-out\", {\n                        fontCharacter: \"\\\\ea6e\"\n                    }), e.logIn = new e(\"log-in\", {\n                        fontCharacter: \"\\\\ea6f\"\n                    }), e.signIn = new e(\"sign-in\", {\n                        fontCharacter: \"\\\\ea6f\"\n                    }), e.eye = new e(\"eye\", {\n                        fontCharacter: \"\\\\ea70\"\n                    }), e.eyeUnwatch = new e(\"eye-unwatch\", {\n                        fontCharacter: \"\\\\ea70\"\n                    }), e.eyeWatch = new e(\"eye-watch\", {\n                        fontCharacter: \"\\\\ea70\"\n                    }), e.circleFilled = new e(\"circle-filled\", {\n                        fontCharacter: \"\\\\ea71\"\n                    }), e.primitiveDot = new e(\"primitive-dot\", {\n                        fontCharacter: \"\\\\ea71\"\n                    }), e.closeDirty = new e(\"close-dirty\", {\n                        fontCharacter: \"\\\\ea71\"\n                    }), e.debugBreakpoint = new e(\"debug-breakpoint\", {\n                        fontCharacter: \"\\\\ea71\"\n                    }), e.debugBreakpointDisabled = new e(\"debug-breakpoint-disabled\", {\n                        fontCharacter: \"\\\\ea71\"\n                    }), e.debugHint = new e(\"debug-hint\", {\n                        fontCharacter: \"\\\\ea71\"\n                    }), e.primitiveSquare = new e(\"primitive-square\", {\n                        fontCharacter: \"\\\\ea72\"\n                    }), e.edit = new e(\"edit\", {\n                        fontCharacter: \"\\\\ea73\"\n                    }), e.pencil = new e(\"pencil\", {\n                        fontCharacter: \"\\\\ea73\"\n                    }), e.info = new e(\"info\", {\n                        fontCharacter: \"\\\\ea74\"\n                    }), e.issueOpened = new e(\"issue-opened\", {\n                        fontCharacter: \"\\\\ea74\"\n                    }), e.gistPrivate = new e(\"gist-private\", {\n                        fontCharacter: \"\\\\ea75\"\n                    }), e.gitForkPrivate = new e(\"git-fork-private\", {\n                        fontCharacter: \"\\\\ea75\"\n                    }), e.lock = new e(\"lock\", {\n                        fontCharacter: \"\\\\ea75\"\n                    }), e.mirrorPrivate = new e(\"mirror-private\", {\n                        fontCharacter: \"\\\\ea75\"\n                    }), e.close = new e(\"close\", {\n                        fontCharacter: \"\\\\ea76\"\n                    }), e.removeClose = new e(\"remove-close\", {\n                        fontCharacter: \"\\\\ea76\"\n                    }), e.x = new e(\"x\", {\n                        fontCharacter: \"\\\\ea76\"\n                    }), e.repoSync = new e(\"repo-sync\", {\n                        fontCharacter: \"\\\\ea77\"\n                    }), e.sync = new e(\"sync\", {\n                        fontCharacter: \"\\\\ea77\"\n                    }), e.clone = new e(\"clone\", {\n                        fontCharacter: \"\\\\ea78\"\n                    }), e.desktopDownload = new e(\"desktop-download\", {\n                        fontCharacter: \"\\\\ea78\"\n                    }), e.beaker = new e(\"beaker\", {\n                        fontCharacter: \"\\\\ea79\"\n                    }), e.microscope = new e(\"microscope\", {\n                        fontCharacter: \"\\\\ea79\"\n                    }), e.vm = new e(\"vm\", {\n                        fontCharacter: \"\\\\ea7a\"\n                    }), e.deviceDesktop = new e(\"device-desktop\", {\n                        fontCharacter: \"\\\\ea7a\"\n                    }), e.file = new e(\"file\", {\n                        fontCharacter: \"\\\\ea7b\"\n                    }), e.fileText = new e(\"file-text\", {\n                        fontCharacter: \"\\\\ea7b\"\n                    }), e.more = new e(\"more\", {\n                        fontCharacter: \"\\\\ea7c\"\n                    }), e.ellipsis = new e(\"ellipsis\", {\n                        fontCharacter: \"\\\\ea7c\"\n                    }), e.kebabHorizontal = new e(\"kebab-horizontal\", {\n                        fontCharacter: \"\\\\ea7c\"\n                    }), e.mailReply = new e(\"mail-reply\", {\n                        fontCharacter: \"\\\\ea7d\"\n                    }), e.reply = new e(\"reply\", {\n                        fontCharacter: \"\\\\ea7d\"\n                    }), e.organization = new e(\"organization\", {\n                        fontCharacter: \"\\\\ea7e\"\n                    }), e.organizationFilled = new e(\"organization-filled\", {\n                        fontCharacter: \"\\\\ea7e\"\n                    }), e.organizationOutline = new e(\"organization-outline\", {\n                        fontCharacter: \"\\\\ea7e\"\n                    }), e.newFile = new e(\"new-file\", {\n                        fontCharacter: \"\\\\ea7f\"\n                    }), e.fileAdd = new e(\"file-add\", {\n                        fontCharacter: \"\\\\ea7f\"\n                    }), e.newFolder = new e(\"new-folder\", {\n                        fontCharacter: \"\\\\ea80\"\n                    }), e.fileDirectoryCreate = new e(\"file-directory-create\", {\n                        fontCharacter: \"\\\\ea80\"\n                    }), e.trash = new e(\"trash\", {\n                        fontCharacter: \"\\\\ea81\"\n                    }), e.trashcan = new e(\"trashcan\", {\n                        fontCharacter: \"\\\\ea81\"\n                    }), e.history = new e(\"history\", {\n                        fontCharacter: \"\\\\ea82\"\n                    }), e.clock = new e(\"clock\", {\n                        fontCharacter: \"\\\\ea82\"\n                    }), e.folder = new e(\"folder\", {\n                        fontCharacter: \"\\\\ea83\"\n                    }), e.fileDirectory = new e(\"file-directory\", {\n                        fontCharacter: \"\\\\ea83\"\n                    }), e.symbolFolder = new e(\"symbol-folder\", {\n                        fontCharacter: \"\\\\ea83\"\n                    }), e.logoGithub = new e(\"logo-github\", {\n                        fontCharacter: \"\\\\ea84\"\n                    }), e.markGithub = new e(\"mark-github\", {\n                        fontCharacter: \"\\\\ea84\"\n                    }), e.github = new e(\"github\", {\n                        fontCharacter: \"\\\\ea84\"\n                    }), e.terminal = new e(\"terminal\", {\n                        fontCharacter: \"\\\\ea85\"\n                    }), e.console = new e(\"console\", {\n                        fontCharacter: \"\\\\ea85\"\n                    }), e.repl = new e(\"repl\", {\n                        fontCharacter: \"\\\\ea85\"\n                    }), e.zap = new e(\"zap\", {\n                        fontCharacter: \"\\\\ea86\"\n                    }), e.symbolEvent = new e(\"symbol-event\", {\n                        fontCharacter: \"\\\\ea86\"\n                    }), e.error = new e(\"error\", {\n                        fontCharacter: \"\\\\ea87\"\n                    }), e.stop = new e(\"stop\", {\n                        fontCharacter: \"\\\\ea87\"\n                    }), e.variable = new e(\"variable\", {\n                        fontCharacter: \"\\\\ea88\"\n                    }), e.symbolVariable = new e(\"symbol-variable\", {\n                        fontCharacter: \"\\\\ea88\"\n                    }), e.array = new e(\"array\", {\n                        fontCharacter: \"\\\\ea8a\"\n                    }), e.symbolArray = new e(\"symbol-array\", {\n                        fontCharacter: \"\\\\ea8a\"\n                    }), e.symbolModule = new e(\"symbol-module\", {\n                        fontCharacter: \"\\\\ea8b\"\n                    }), e.symbolPackage = new e(\"symbol-package\", {\n                        fontCharacter: \"\\\\ea8b\"\n                    }), e.symbolNamespace = new e(\"symbol-namespace\", {\n                        fontCharacter: \"\\\\ea8b\"\n                    }), e.symbolObject = new e(\"symbol-object\", {\n                        fontCharacter: \"\\\\ea8b\"\n                    }), e.symbolMethod = new e(\"symbol-method\", {\n                        fontCharacter: \"\\\\ea8c\"\n                    }), e.symbolFunction = new e(\"symbol-function\", {\n                        fontCharacter: \"\\\\ea8c\"\n                    }), e.symbolConstructor = new e(\"symbol-constructor\", {\n                        fontCharacter: \"\\\\ea8c\"\n                    }), e.symbolBoolean = new e(\"symbol-boolean\", {\n                        fontCharacter: \"\\\\ea8f\"\n                    }), e.symbolNull = new e(\"symbol-null\", {\n                        fontCharacter: \"\\\\ea8f\"\n                    }), e.symbolNumeric = new e(\"symbol-numeric\", {\n                        fontCharacter: \"\\\\ea90\"\n                    }), e.symbolNumber = new e(\"symbol-number\", {\n                        fontCharacter: \"\\\\ea90\"\n                    }), e.symbolStructure = new e(\"symbol-structure\", {\n                        fontCharacter: \"\\\\ea91\"\n                    }), e.symbolStruct = new e(\"symbol-struct\", {\n                        fontCharacter: \"\\\\ea91\"\n                    }), e.symbolParameter = new e(\"symbol-parameter\", {\n                        fontCharacter: \"\\\\ea92\"\n                    }), e.symbolTypeParameter = new e(\"symbol-type-parameter\", {\n                        fontCharacter: \"\\\\ea92\"\n                    }), e.symbolKey = new e(\"symbol-key\", {\n                        fontCharacter: \"\\\\ea93\"\n                    }), e.symbolText = new e(\"symbol-text\", {\n                        fontCharacter: \"\\\\ea93\"\n                    }), e.symbolReference = new e(\"symbol-reference\", {\n                        fontCharacter: \"\\\\ea94\"\n                    }), e.goToFile = new e(\"go-to-file\", {\n                        fontCharacter: \"\\\\ea94\"\n                    }), e.symbolEnum = new e(\"symbol-enum\", {\n                        fontCharacter: \"\\\\ea95\"\n                    }), e.symbolValue = new e(\"symbol-value\", {\n                        fontCharacter: \"\\\\ea95\"\n                    }), e.symbolRuler = new e(\"symbol-ruler\", {\n                        fontCharacter: \"\\\\ea96\"\n                    }), e.symbolUnit = new e(\"symbol-unit\", {\n                        fontCharacter: \"\\\\ea96\"\n                    }), e.activateBreakpoints = new e(\"activate-breakpoints\", {\n                        fontCharacter: \"\\\\ea97\"\n                    }), e.archive = new e(\"archive\", {\n                        fontCharacter: \"\\\\ea98\"\n                    }), e.arrowBoth = new e(\"arrow-both\", {\n                        fontCharacter: \"\\\\ea99\"\n                    }), e.arrowDown = new e(\"arrow-down\", {\n                        fontCharacter: \"\\\\ea9a\"\n                    }), e.arrowLeft = new e(\"arrow-left\", {\n                        fontCharacter: \"\\\\ea9b\"\n                    }), e.arrowRight = new e(\"arrow-right\", {\n                        fontCharacter: \"\\\\ea9c\"\n                    }), e.arrowSmallDown = new e(\"arrow-small-down\", {\n                        fontCharacter: \"\\\\ea9d\"\n                    }), e.arrowSmallLeft = new e(\"arrow-small-left\", {\n                        fontCharacter: \"\\\\ea9e\"\n                    }), e.arrowSmallRight = new e(\"arrow-small-right\", {\n                        fontCharacter: \"\\\\ea9f\"\n                    }), e.arrowSmallUp = new e(\"arrow-small-up\", {\n                        fontCharacter: \"\\\\eaa0\"\n                    }), e.arrowUp = new e(\"arrow-up\", {\n                        fontCharacter: \"\\\\eaa1\"\n                    }), e.bell = new e(\"bell\", {\n                        fontCharacter: \"\\\\eaa2\"\n                    }), e.bold = new e(\"bold\", {\n                        fontCharacter: \"\\\\eaa3\"\n                    }), e.book = new e(\"book\", {\n                        fontCharacter: \"\\\\eaa4\"\n                    }), e.bookmark = new e(\"bookmark\", {\n                        fontCharacter: \"\\\\eaa5\"\n                    }), e.debugBreakpointConditionalUnverified = new e(\"debug-breakpoint-conditional-unverified\", {\n                        fontCharacter: \"\\\\eaa6\"\n                    }), e.debugBreakpointConditional = new e(\"debug-breakpoint-conditional\", {\n                        fontCharacter: \"\\\\eaa7\"\n                    }), e.debugBreakpointConditionalDisabled = new e(\"debug-breakpoint-conditional-disabled\", {\n                        fontCharacter: \"\\\\eaa7\"\n                    }), e.debugBreakpointDataUnverified = new e(\"debug-breakpoint-data-unverified\", {\n                        fontCharacter: \"\\\\eaa8\"\n                    }), e.debugBreakpointData = new e(\"debug-breakpoint-data\", {\n                        fontCharacter: \"\\\\eaa9\"\n                    }), e.debugBreakpointDataDisabled = new e(\"debug-breakpoint-data-disabled\", {\n                        fontCharacter: \"\\\\eaa9\"\n                    }), e.debugBreakpointLogUnverified = new e(\"debug-breakpoint-log-unverified\", {\n                        fontCharacter: \"\\\\eaaa\"\n                    }), e.debugBreakpointLog = new e(\"debug-breakpoint-log\", {\n                        fontCharacter: \"\\\\eaab\"\n                    }), e.debugBreakpointLogDisabled = new e(\"debug-breakpoint-log-disabled\", {\n                        fontCharacter: \"\\\\eaab\"\n                    }), e.briefcase = new e(\"briefcase\", {\n                        fontCharacter: \"\\\\eaac\"\n                    }), e.broadcast = new e(\"broadcast\", {\n                        fontCharacter: \"\\\\eaad\"\n                    }), e.browser = new e(\"browser\", {\n                        fontCharacter: \"\\\\eaae\"\n                    }), e.bug = new e(\"bug\", {\n                        fontCharacter: \"\\\\eaaf\"\n                    }), e.calendar = new e(\"calendar\", {\n                        fontCharacter: \"\\\\eab0\"\n                    }), e.caseSensitive = new e(\"case-sensitive\", {\n                        fontCharacter: \"\\\\eab1\"\n                    }), e.check = new e(\"check\", {\n                        fontCharacter: \"\\\\eab2\"\n                    }), e.checklist = new e(\"checklist\", {\n                        fontCharacter: \"\\\\eab3\"\n                    }), e.chevronDown = new e(\"chevron-down\", {\n                        fontCharacter: \"\\\\eab4\"\n                    }), e.dropDownButton = new e(\"drop-down-button\", e.chevronDown.definition), e.chevronLeft = new e(\"chevron-left\", {\n                        fontCharacter: \"\\\\eab5\"\n                    }), e.chevronRight = new e(\"chevron-right\", {\n                        fontCharacter: \"\\\\eab6\"\n                    }), e.chevronUp = new e(\"chevron-up\", {\n                        fontCharacter: \"\\\\eab7\"\n                    }), e.chromeClose = new e(\"chrome-close\", {\n                        fontCharacter: \"\\\\eab8\"\n                    }), e.chromeMaximize = new e(\"chrome-maximize\", {\n                        fontCharacter: \"\\\\eab9\"\n                    }), e.chromeMinimize = new e(\"chrome-minimize\", {\n                        fontCharacter: \"\\\\eaba\"\n                    }), e.chromeRestore = new e(\"chrome-restore\", {\n                        fontCharacter: \"\\\\eabb\"\n                    }), e.circleOutline = new e(\"circle-outline\", {\n                        fontCharacter: \"\\\\eabc\"\n                    }), e.debugBreakpointUnverified = new e(\"debug-breakpoint-unverified\", {\n                        fontCharacter: \"\\\\eabc\"\n                    }), e.circleSlash = new e(\"circle-slash\", {\n                        fontCharacter: \"\\\\eabd\"\n                    }), e.circuitBoard = new e(\"circuit-board\", {\n                        fontCharacter: \"\\\\eabe\"\n                    }), e.clearAll = new e(\"clear-all\", {\n                        fontCharacter: \"\\\\eabf\"\n                    }), e.clippy = new e(\"clippy\", {\n                        fontCharacter: \"\\\\eac0\"\n                    }), e.closeAll = new e(\"close-all\", {\n                        fontCharacter: \"\\\\eac1\"\n                    }), e.cloudDownload = new e(\"cloud-download\", {\n                        fontCharacter: \"\\\\eac2\"\n                    }), e.cloudUpload = new e(\"cloud-upload\", {\n                        fontCharacter: \"\\\\eac3\"\n                    }), e.code = new e(\"code\", {\n                        fontCharacter: \"\\\\eac4\"\n                    }), e.collapseAll = new e(\"collapse-all\", {\n                        fontCharacter: \"\\\\eac5\"\n                    }), e.colorMode = new e(\"color-mode\", {\n                        fontCharacter: \"\\\\eac6\"\n                    }), e.commentDiscussion = new e(\"comment-discussion\", {\n                        fontCharacter: \"\\\\eac7\"\n                    }), e.compareChanges = new e(\"compare-changes\", {\n                        fontCharacter: \"\\\\eafd\"\n                    }), e.creditCard = new e(\"credit-card\", {\n                        fontCharacter: \"\\\\eac9\"\n                    }), e.dash = new e(\"dash\", {\n                        fontCharacter: \"\\\\eacc\"\n                    }), e.dashboard = new e(\"dashboard\", {\n                        fontCharacter: \"\\\\eacd\"\n                    }), e.database = new e(\"database\", {\n                        fontCharacter: \"\\\\eace\"\n                    }), e.debugContinue = new e(\"debug-continue\", {\n                        fontCharacter: \"\\\\eacf\"\n                    }), e.debugDisconnect = new e(\"debug-disconnect\", {\n                        fontCharacter: \"\\\\ead0\"\n                    }), e.debugPause = new e(\"debug-pause\", {\n                        fontCharacter: \"\\\\ead1\"\n                    }), e.debugRestart = new e(\"debug-restart\", {\n                        fontCharacter: \"\\\\ead2\"\n                    }), e.debugStart = new e(\"debug-start\", {\n                        fontCharacter: \"\\\\ead3\"\n                    }), e.debugStepInto = new e(\"debug-step-into\", {\n                        fontCharacter: \"\\\\ead4\"\n                    }), e.debugStepOut = new e(\"debug-step-out\", {\n                        fontCharacter: \"\\\\ead5\"\n                    }), e.debugStepOver = new e(\"debug-step-over\", {\n                        fontCharacter: \"\\\\ead6\"\n                    }), e.debugStop = new e(\"debug-stop\", {\n                        fontCharacter: \"\\\\ead7\"\n                    }), e.debug = new e(\"debug\", {\n                        fontCharacter: \"\\\\ead8\"\n                    }), e.deviceCameraVideo = new e(\"device-camera-video\", {\n                        fontCharacter: \"\\\\ead9\"\n                    }), e.deviceCamera = new e(\"device-camera\", {\n                        fontCharacter: \"\\\\eada\"\n                    }), e.deviceMobile = new e(\"device-mobile\", {\n                        fontCharacter: \"\\\\eadb\"\n                    }), e.diffAdded = new e(\"diff-added\", {\n                        fontCharacter: \"\\\\eadc\"\n                    }), e.diffIgnored = new e(\"diff-ignored\", {\n                        fontCharacter: \"\\\\eadd\"\n                    }), e.diffModified = new e(\"diff-modified\", {\n                        fontCharacter: \"\\\\eade\"\n                    }), e.diffRemoved = new e(\"diff-removed\", {\n                        fontCharacter: \"\\\\eadf\"\n                    }), e.diffRenamed = new e(\"diff-renamed\", {\n                        fontCharacter: \"\\\\eae0\"\n                    }), e.diff = new e(\"diff\", {\n                        fontCharacter: \"\\\\eae1\"\n                    }), e.discard = new e(\"discard\", {\n                        fontCharacter: \"\\\\eae2\"\n                    }), e.editorLayout = new e(\"editor-layout\", {\n                        fontCharacter: \"\\\\eae3\"\n                    }), e.emptyWindow = new e(\"empty-window\", {\n                        fontCharacter: \"\\\\eae4\"\n                    }), e.exclude = new e(\"exclude\", {\n                        fontCharacter: \"\\\\eae5\"\n                    }), e.extensions = new e(\"extensions\", {\n                        fontCharacter: \"\\\\eae6\"\n                    }), e.eyeClosed = new e(\"eye-closed\", {\n                        fontCharacter: \"\\\\eae7\"\n                    }), e.fileBinary = new e(\"file-binary\", {\n                        fontCharacter: \"\\\\eae8\"\n                    }), e.fileCode = new e(\"file-code\", {\n                        fontCharacter: \"\\\\eae9\"\n                    }), e.fileMedia = new e(\"file-media\", {\n                        fontCharacter: \"\\\\eaea\"\n                    }), e.filePdf = new e(\"file-pdf\", {\n                        fontCharacter: \"\\\\eaeb\"\n                    }), e.fileSubmodule = new e(\"file-submodule\", {\n                        fontCharacter: \"\\\\eaec\"\n                    }), e.fileSymlinkDirectory = new e(\"file-symlink-directory\", {\n                        fontCharacter: \"\\\\eaed\"\n                    }), e.fileSymlinkFile = new e(\"file-symlink-file\", {\n                        fontCharacter: \"\\\\eaee\"\n                    }), e.fileZip = new e(\"file-zip\", {\n                        fontCharacter: \"\\\\eaef\"\n                    }), e.files = new e(\"files\", {\n                        fontCharacter: \"\\\\eaf0\"\n                    }), e.filter = new e(\"filter\", {\n                        fontCharacter: \"\\\\eaf1\"\n                    }), e.flame = new e(\"flame\", {\n                        fontCharacter: \"\\\\eaf2\"\n                    }), e.foldDown = new e(\"fold-down\", {\n                        fontCharacter: \"\\\\eaf3\"\n                    }), e.foldUp = new e(\"fold-up\", {\n                        fontCharacter: \"\\\\eaf4\"\n                    }), e.fold = new e(\"fold\", {\n                        fontCharacter: \"\\\\eaf5\"\n                    }), e.folderActive = new e(\"folder-active\", {\n                        fontCharacter: \"\\\\eaf6\"\n                    }), e.folderOpened = new e(\"folder-opened\", {\n                        fontCharacter: \"\\\\eaf7\"\n                    }), e.gear = new e(\"gear\", {\n                        fontCharacter: \"\\\\eaf8\"\n                    }), e.gift = new e(\"gift\", {\n                        fontCharacter: \"\\\\eaf9\"\n                    }), e.gistSecret = new e(\"gist-secret\", {\n                        fontCharacter: \"\\\\eafa\"\n                    }), e.gist = new e(\"gist\", {\n                        fontCharacter: \"\\\\eafb\"\n                    }), e.gitCommit = new e(\"git-commit\", {\n                        fontCharacter: \"\\\\eafc\"\n                    }), e.gitCompare = new e(\"git-compare\", {\n                        fontCharacter: \"\\\\eafd\"\n                    }), e.gitMerge = new e(\"git-merge\", {\n                        fontCharacter: \"\\\\eafe\"\n                    }), e.githubAction = new e(\"github-action\", {\n                        fontCharacter: \"\\\\eaff\"\n                    }), e.githubAlt = new e(\"github-alt\", {\n                        fontCharacter: \"\\\\eb00\"\n                    }), e.globe = new e(\"globe\", {\n                        fontCharacter: \"\\\\eb01\"\n                    }), e.grabber = new e(\"grabber\", {\n                        fontCharacter: \"\\\\eb02\"\n                    }), e.graph = new e(\"graph\", {\n                        fontCharacter: \"\\\\eb03\"\n                    }), e.gripper = new e(\"gripper\", {\n                        fontCharacter: \"\\\\eb04\"\n                    }), e.heart = new e(\"heart\", {\n                        fontCharacter: \"\\\\eb05\"\n                    }), e.home = new e(\"home\", {\n                        fontCharacter: \"\\\\eb06\"\n                    }), e.horizontalRule = new e(\"horizontal-rule\", {\n                        fontCharacter: \"\\\\eb07\"\n                    }), e.hubot = new e(\"hubot\", {\n                        fontCharacter: \"\\\\eb08\"\n                    }), e.inbox = new e(\"inbox\", {\n                        fontCharacter: \"\\\\eb09\"\n                    }), e.issueClosed = new e(\"issue-closed\", {\n                        fontCharacter: \"\\\\eba4\"\n                    }), e.issueReopened = new e(\"issue-reopened\", {\n                        fontCharacter: \"\\\\eb0b\"\n                    }), e.issues = new e(\"issues\", {\n                        fontCharacter: \"\\\\eb0c\"\n                    }), e.italic = new e(\"italic\", {\n                        fontCharacter: \"\\\\eb0d\"\n                    }), e.jersey = new e(\"jersey\", {\n                        fontCharacter: \"\\\\eb0e\"\n                    }), e.json = new e(\"json\", {\n                        fontCharacter: \"\\\\eb0f\"\n                    }), e.kebabVertical = new e(\"kebab-vertical\", {\n                        fontCharacter: \"\\\\eb10\"\n                    }), e.key = new e(\"key\", {\n                        fontCharacter: \"\\\\eb11\"\n                    }), e.law = new e(\"law\", {\n                        fontCharacter: \"\\\\eb12\"\n                    }), e.lightbulbAutofix = new e(\"lightbulb-autofix\", {\n                        fontCharacter: \"\\\\eb13\"\n                    }), e.linkExternal = new e(\"link-external\", {\n                        fontCharacter: \"\\\\eb14\"\n                    }), e.link = new e(\"link\", {\n                        fontCharacter: \"\\\\eb15\"\n                    }), e.listOrdered = new e(\"list-ordered\", {\n                        fontCharacter: \"\\\\eb16\"\n                    }), e.listUnordered = new e(\"list-unordered\", {\n                        fontCharacter: \"\\\\eb17\"\n                    }), e.liveShare = new e(\"live-share\", {\n                        fontCharacter: \"\\\\eb18\"\n                    }), e.loading = new e(\"loading\", {\n                        fontCharacter: \"\\\\eb19\"\n                    }), e.location = new e(\"location\", {\n                        fontCharacter: \"\\\\eb1a\"\n                    }), e.mailRead = new e(\"mail-read\", {\n                        fontCharacter: \"\\\\eb1b\"\n                    }), e.mail = new e(\"mail\", {\n                        fontCharacter: \"\\\\eb1c\"\n                    }), e.markdown = new e(\"markdown\", {\n                        fontCharacter: \"\\\\eb1d\"\n                    }), e.megaphone = new e(\"megaphone\", {\n                        fontCharacter: \"\\\\eb1e\"\n                    }), e.mention = new e(\"mention\", {\n                        fontCharacter: \"\\\\eb1f\"\n                    }), e.milestone = new e(\"milestone\", {\n                        fontCharacter: \"\\\\eb20\"\n                    }), e.mortarBoard = new e(\"mortar-board\", {\n                        fontCharacter: \"\\\\eb21\"\n                    }), e.move = new e(\"move\", {\n                        fontCharacter: \"\\\\eb22\"\n                    }), e.multipleWindows = new e(\"multiple-windows\", {\n                        fontCharacter: \"\\\\eb23\"\n                    }), e.mute = new e(\"mute\", {\n                        fontCharacter: \"\\\\eb24\"\n                    }), e.noNewline = new e(\"no-newline\", {\n                        fontCharacter: \"\\\\eb25\"\n                    }), e.note = new e(\"note\", {\n                        fontCharacter: \"\\\\eb26\"\n                    }), e.octoface = new e(\"octoface\", {\n                        fontCharacter: \"\\\\eb27\"\n                    }), e.openPreview = new e(\"open-preview\", {\n                        fontCharacter: \"\\\\eb28\"\n                    }), e.package_ = new e(\"package\", {\n                        fontCharacter: \"\\\\eb29\"\n                    }), e.paintcan = new e(\"paintcan\", {\n                        fontCharacter: \"\\\\eb2a\"\n                    }), e.pin = new e(\"pin\", {\n                        fontCharacter: \"\\\\eb2b\"\n                    }), e.play = new e(\"play\", {\n                        fontCharacter: \"\\\\eb2c\"\n                    }), e.run = new e(\"run\", {\n                        fontCharacter: \"\\\\eb2c\"\n                    }), e.plug = new e(\"plug\", {\n                        fontCharacter: \"\\\\eb2d\"\n                    }), e.preserveCase = new e(\"preserve-case\", {\n                        fontCharacter: \"\\\\eb2e\"\n                    }), e.preview = new e(\"preview\", {\n                        fontCharacter: \"\\\\eb2f\"\n                    }), e.project = new e(\"project\", {\n                        fontCharacter: \"\\\\eb30\"\n                    }), e.pulse = new e(\"pulse\", {\n                        fontCharacter: \"\\\\eb31\"\n                    }), e.question = new e(\"question\", {\n                        fontCharacter: \"\\\\eb32\"\n                    }), e.quote = new e(\"quote\", {\n                        fontCharacter: \"\\\\eb33\"\n                    }), e.radioTower = new e(\"radio-tower\", {\n                        fontCharacter: \"\\\\eb34\"\n                    }), e.reactions = new e(\"reactions\", {\n                        fontCharacter: \"\\\\eb35\"\n                    }), e.references = new e(\"references\", {\n                        fontCharacter: \"\\\\eb36\"\n                    }), e.refresh = new e(\"refresh\", {\n                        fontCharacter: \"\\\\eb37\"\n                    }), e.regex = new e(\"regex\", {\n                        fontCharacter: \"\\\\eb38\"\n                    }), e.remoteExplorer = new e(\"remote-explorer\", {\n                        fontCharacter: \"\\\\eb39\"\n                    }), e.remote = new e(\"remote\", {\n                        fontCharacter: \"\\\\eb3a\"\n                    }), e.remove = new e(\"remove\", {\n                        fontCharacter: \"\\\\eb3b\"\n                    }), e.replaceAll = new e(\"replace-all\", {\n                        fontCharacter: \"\\\\eb3c\"\n                    }), e.replace = new e(\"replace\", {\n                        fontCharacter: \"\\\\eb3d\"\n                    }), e.repoClone = new e(\"repo-clone\", {\n                        fontCharacter: \"\\\\eb3e\"\n                    }), e.repoForcePush = new e(\"repo-force-push\", {\n                        fontCharacter: \"\\\\eb3f\"\n                    }), e.repoPull = new e(\"repo-pull\", {\n                        fontCharacter: \"\\\\eb40\"\n                    }), e.repoPush = new e(\"repo-push\", {\n                        fontCharacter: \"\\\\eb41\"\n                    }), e.report = new e(\"report\", {\n                        fontCharacter: \"\\\\eb42\"\n                    }), e.requestChanges = new e(\"request-changes\", {\n                        fontCharacter: \"\\\\eb43\"\n                    }), e.rocket = new e(\"rocket\", {\n                        fontCharacter: \"\\\\eb44\"\n                    }), e.rootFolderOpened = new e(\"root-folder-opened\", {\n                        fontCharacter: \"\\\\eb45\"\n                    }), e.rootFolder = new e(\"root-folder\", {\n                        fontCharacter: \"\\\\eb46\"\n                    }), e.rss = new e(\"rss\", {\n                        fontCharacter: \"\\\\eb47\"\n                    }), e.ruby = new e(\"ruby\", {\n                        fontCharacter: \"\\\\eb48\"\n                    }), e.saveAll = new e(\"save-all\", {\n                        fontCharacter: \"\\\\eb49\"\n                    }), e.saveAs = new e(\"save-as\", {\n                        fontCharacter: \"\\\\eb4a\"\n                    }), e.save = new e(\"save\", {\n                        fontCharacter: \"\\\\eb4b\"\n                    }), e.screenFull = new e(\"screen-full\", {\n                        fontCharacter: \"\\\\eb4c\"\n                    }), e.screenNormal = new e(\"screen-normal\", {\n                        fontCharacter: \"\\\\eb4d\"\n                    }), e.searchStop = new e(\"search-stop\", {\n                        fontCharacter: \"\\\\eb4e\"\n                    }), e.server = new e(\"server\", {\n                        fontCharacter: \"\\\\eb50\"\n                    }), e.settingsGear = new e(\"settings-gear\", {\n                        fontCharacter: \"\\\\eb51\"\n                    }), e.settings = new e(\"settings\", {\n                        fontCharacter: \"\\\\eb52\"\n                    }), e.shield = new e(\"shield\", {\n                        fontCharacter: \"\\\\eb53\"\n                    }), e.smiley = new e(\"smiley\", {\n                        fontCharacter: \"\\\\eb54\"\n                    }), e.sortPrecedence = new e(\"sort-precedence\", {\n                        fontCharacter: \"\\\\eb55\"\n                    }), e.splitHorizontal = new e(\"split-horizontal\", {\n                        fontCharacter: \"\\\\eb56\"\n                    }), e.splitVertical = new e(\"split-vertical\", {\n                        fontCharacter: \"\\\\eb57\"\n                    }), e.squirrel = new e(\"squirrel\", {\n                        fontCharacter: \"\\\\eb58\"\n                    }), e.starFull = new e(\"star-full\", {\n                        fontCharacter: \"\\\\eb59\"\n                    }), e.starHalf = new e(\"star-half\", {\n                        fontCharacter: \"\\\\eb5a\"\n                    }), e.symbolClass = new e(\"symbol-class\", {\n                        fontCharacter: \"\\\\eb5b\"\n                    }), e.symbolColor = new e(\"symbol-color\", {\n                        fontCharacter: \"\\\\eb5c\"\n                    }), e.symbolConstant = new e(\"symbol-constant\", {\n                        fontCharacter: \"\\\\eb5d\"\n                    }), e.symbolEnumMember = new e(\"symbol-enum-member\", {\n                        fontCharacter: \"\\\\eb5e\"\n                    }), e.symbolField = new e(\"symbol-field\", {\n                        fontCharacter: \"\\\\eb5f\"\n                    }), e.symbolFile = new e(\"symbol-file\", {\n                        fontCharacter: \"\\\\eb60\"\n                    }), e.symbolInterface = new e(\"symbol-interface\", {\n                        fontCharacter: \"\\\\eb61\"\n                    }), e.symbolKeyword = new e(\"symbol-keyword\", {\n                        fontCharacter: \"\\\\eb62\"\n                    }), e.symbolMisc = new e(\"symbol-misc\", {\n                        fontCharacter: \"\\\\eb63\"\n                    }), e.symbolOperator = new e(\"symbol-operator\", {\n                        fontCharacter: \"\\\\eb64\"\n                    }), e.symbolProperty = new e(\"symbol-property\", {\n                        fontCharacter: \"\\\\eb65\"\n                    }), e.wrench = new e(\"wrench\", {\n                        fontCharacter: \"\\\\eb65\"\n                    }), e.wrenchSubaction = new e(\"wrench-subaction\", {\n                        fontCharacter: \"\\\\eb65\"\n                    }), e.symbolSnippet = new e(\"symbol-snippet\", {\n                        fontCharacter: \"\\\\eb66\"\n                    }), e.tasklist = new e(\"tasklist\", {\n                        fontCharacter: \"\\\\eb67\"\n                    }), e.telescope = new e(\"telescope\", {\n                        fontCharacter: \"\\\\eb68\"\n                    }), e.textSize = new e(\"text-size\", {\n                        fontCharacter: \"\\\\eb69\"\n                    }), e.threeBars = new e(\"three-bars\", {\n                        fontCharacter: \"\\\\eb6a\"\n                    }), e.thumbsdown = new e(\"thumbsdown\", {\n                        fontCharacter: \"\\\\eb6b\"\n                    }), e.thumbsup = new e(\"thumbsup\", {\n                        fontCharacter: \"\\\\eb6c\"\n                    }), e.tools = new e(\"tools\", {\n                        fontCharacter: \"\\\\eb6d\"\n                    }), e.triangleDown = new e(\"triangle-down\", {\n                        fontCharacter: \"\\\\eb6e\"\n                    }), e.triangleLeft = new e(\"triangle-left\", {\n                        fontCharacter: \"\\\\eb6f\"\n                    }), e.triangleRight = new e(\"triangle-right\", {\n                        fontCharacter: \"\\\\eb70\"\n                    }), e.triangleUp = new e(\"triangle-up\", {\n                        fontCharacter: \"\\\\eb71\"\n                    }), e.twitter = new e(\"twitter\", {\n                        fontCharacter: \"\\\\eb72\"\n                    }), e.unfold = new e(\"unfold\", {\n                        fontCharacter: \"\\\\eb73\"\n                    }), e.unlock = new e(\"unlock\", {\n                        fontCharacter: \"\\\\eb74\"\n                    }), e.unmute = new e(\"unmute\", {\n                        fontCharacter: \"\\\\eb75\"\n                    }), e.unverified = new e(\"unverified\", {\n                        fontCharacter: \"\\\\eb76\"\n                    }), e.verified = new e(\"verified\", {\n                        fontCharacter: \"\\\\eb77\"\n                    }), e.versions = new e(\"versions\", {\n                        fontCharacter: \"\\\\eb78\"\n                    }), e.vmActive = new e(\"vm-active\", {\n                        fontCharacter: \"\\\\eb79\"\n                    }), e.vmOutline = new e(\"vm-outline\", {\n                        fontCharacter: \"\\\\eb7a\"\n                    }), e.vmRunning = new e(\"vm-running\", {\n                        fontCharacter: \"\\\\eb7b\"\n                    }), e.watch = new e(\"watch\", {\n                        fontCharacter: \"\\\\eb7c\"\n                    }), e.whitespace = new e(\"whitespace\", {\n                        fontCharacter: \"\\\\eb7d\"\n                    }), e.wholeWord = new e(\"whole-word\", {\n                        fontCharacter: \"\\\\eb7e\"\n                    }), e.window = new e(\"window\", {\n                        fontCharacter: \"\\\\eb7f\"\n                    }), e.wordWrap = new e(\"word-wrap\", {\n                        fontCharacter: \"\\\\eb80\"\n                    }), e.zoomIn = new e(\"zoom-in\", {\n                        fontCharacter: \"\\\\eb81\"\n                    }), e.zoomOut = new e(\"zoom-out\", {\n                        fontCharacter: \"\\\\eb82\"\n                    }), e.listFilter = new e(\"list-filter\", {\n                        fontCharacter: \"\\\\eb83\"\n                    }), e.listFlat = new e(\"list-flat\", {\n                        fontCharacter: \"\\\\eb84\"\n                    }), e.listSelection = new e(\"list-selection\", {\n                        fontCharacter: \"\\\\eb85\"\n                    }), e.selection = new e(\"selection\", {\n                        fontCharacter: \"\\\\eb85\"\n                    }), e.listTree = new e(\"list-tree\", {\n                        fontCharacter: \"\\\\eb86\"\n                    }), e.debugBreakpointFunctionUnverified = new e(\"debug-breakpoint-function-unverified\", {\n                        fontCharacter: \"\\\\eb87\"\n                    }), e.debugBreakpointFunction = new e(\"debug-breakpoint-function\", {\n                        fontCharacter: \"\\\\eb88\"\n                    }), e.debugBreakpointFunctionDisabled = new e(\"debug-breakpoint-function-disabled\", {\n                        fontCharacter: \"\\\\eb88\"\n                    }), e.debugStackframeActive = new e(\"debug-stackframe-active\", {\n                        fontCharacter: \"\\\\eb89\"\n                    }), e.debugStackframeDot = new e(\"debug-stackframe-dot\", {\n                        fontCharacter: \"\\\\eb8a\"\n                    }), e.debugStackframe = new e(\"debug-stackframe\", {\n                        fontCharacter: \"\\\\eb8b\"\n                    }), e.debugStackframeFocused = new e(\"debug-stackframe-focused\", {\n                        fontCharacter: \"\\\\eb8b\"\n                    }), e.debugBreakpointUnsupported = new e(\"debug-breakpoint-unsupported\", {\n                        fontCharacter: \"\\\\eb8c\"\n                    }), e.symbolString = new e(\"symbol-string\", {\n                        fontCharacter: \"\\\\eb8d\"\n                    }), e.debugReverseContinue = new e(\"debug-reverse-continue\", {\n                        fontCharacter: \"\\\\eb8e\"\n                    }), e.debugStepBack = new e(\"debug-step-back\", {\n                        fontCharacter: \"\\\\eb8f\"\n                    }), e.debugRestartFrame = new e(\"debug-restart-frame\", {\n                        fontCharacter: \"\\\\eb90\"\n                    }), e.callIncoming = new e(\"call-incoming\", {\n                        fontCharacter: \"\\\\eb92\"\n                    }), e.callOutgoing = new e(\"call-outgoing\", {\n                        fontCharacter: \"\\\\eb93\"\n                    }), e.menu = new e(\"menu\", {\n                        fontCharacter: \"\\\\eb94\"\n                    }), e.expandAll = new e(\"expand-all\", {\n                        fontCharacter: \"\\\\eb95\"\n                    }), e.feedback = new e(\"feedback\", {\n                        fontCharacter: \"\\\\eb96\"\n                    }), e.groupByRefType = new e(\"group-by-ref-type\", {\n                        fontCharacter: \"\\\\eb97\"\n                    }), e.ungroupByRefType = new e(\"ungroup-by-ref-type\", {\n                        fontCharacter: \"\\\\eb98\"\n                    }), e.account = new e(\"account\", {\n                        fontCharacter: \"\\\\eb99\"\n                    }), e.bellDot = new e(\"bell-dot\", {\n                        fontCharacter: \"\\\\eb9a\"\n                    }), e.debugConsole = new e(\"debug-console\", {\n                        fontCharacter: \"\\\\eb9b\"\n                    }), e.library = new e(\"library\", {\n                        fontCharacter: \"\\\\eb9c\"\n                    }), e.output = new e(\"output\", {\n                        fontCharacter: \"\\\\eb9d\"\n                    }), e.runAll = new e(\"run-all\", {\n                        fontCharacter: \"\\\\eb9e\"\n                    }), e.syncIgnored = new e(\"sync-ignored\", {\n                        fontCharacter: \"\\\\eb9f\"\n                    }), e.pinned = new e(\"pinned\", {\n                        fontCharacter: \"\\\\eba0\"\n                    }), e.githubInverted = new e(\"github-inverted\", {\n                        fontCharacter: \"\\\\eba1\"\n                    }), e.debugAlt = new e(\"debug-alt\", {\n                        fontCharacter: \"\\\\eb91\"\n                    }), e.serverProcess = new e(\"server-process\", {\n                        fontCharacter: \"\\\\eba2\"\n                    }), e.serverEnvironment = new e(\"server-environment\", {\n                        fontCharacter: \"\\\\eba3\"\n                    }), e.pass = new e(\"pass\", {\n                        fontCharacter: \"\\\\eba4\"\n                    }), e.stopCircle = new e(\"stop-circle\", {\n                        fontCharacter: \"\\\\eba5\"\n                    }), e.playCircle = new e(\"play-circle\", {\n                        fontCharacter: \"\\\\eba6\"\n                    }), e.record = new e(\"record\", {\n                        fontCharacter: \"\\\\eba7\"\n                    }), e.debugAltSmall = new e(\"debug-alt-small\", {\n                        fontCharacter: \"\\\\eba8\"\n                    }), e.vmConnect = new e(\"vm-connect\", {\n                        fontCharacter: \"\\\\eba9\"\n                    }), e.cloud = new e(\"cloud\", {\n                        fontCharacter: \"\\\\ebaa\"\n                    }), e.merge = new e(\"merge\", {\n                        fontCharacter: \"\\\\ebab\"\n                    }), e.exportIcon = new e(\"export\", {\n                        fontCharacter: \"\\\\ebac\"\n                    }), e.graphLeft = new e(\"graph-left\", {\n                        fontCharacter: \"\\\\ebad\"\n                    }), e.magnet = new e(\"magnet\", {\n                        fontCharacter: \"\\\\ebae\"\n                    }), e.notebook = new e(\"notebook\", {\n                        fontCharacter: \"\\\\ebaf\"\n                    }), e.redo = new e(\"redo\", {\n                        fontCharacter: \"\\\\ebb0\"\n                    }), e.checkAll = new e(\"check-all\", {\n                        fontCharacter: \"\\\\ebb1\"\n                    }), e.pinnedDirty = new e(\"pinned-dirty\", {\n                        fontCharacter: \"\\\\ebb2\"\n                    }), e.passFilled = new e(\"pass-filled\", {\n                        fontCharacter: \"\\\\ebb3\"\n                    }), e.circleLargeFilled = new e(\"circle-large-filled\", {\n                        fontCharacter: \"\\\\ebb4\"\n                    }), e.circleLargeOutline = new e(\"circle-large-outline\", {\n                        fontCharacter: \"\\\\ebb5\"\n                    }), e.combine = new e(\"combine\", {\n                        fontCharacter: \"\\\\ebb6\"\n                    }), e.gather = new e(\"gather\", {\n                        fontCharacter: \"\\\\ebb6\"\n                    }), e.table = new e(\"table\", {\n                        fontCharacter: \"\\\\ebb7\"\n                    }), e.variableGroup = new e(\"variable-group\", {\n                        fontCharacter: \"\\\\ebb8\"\n                    }), e.typeHierarchy = new e(\"type-hierarchy\", {\n                        fontCharacter: \"\\\\ebb9\"\n                    }), e.typeHierarchySub = new e(\"type-hierarchy-sub\", {\n                        fontCharacter: \"\\\\ebba\"\n                    }), e.typeHierarchySuper = new e(\"type-hierarchy-super\", {\n                        fontCharacter: \"\\\\ebbb\"\n                    }), e.gitPullRequestCreate = new e(\"git-pull-request-create\", {\n                        fontCharacter: \"\\\\ebbc\"\n                    }), e.runAbove = new e(\"run-above\", {\n                        fontCharacter: \"\\\\ebbd\"\n                    }), e.runBelow = new e(\"run-below\", {\n                        fontCharacter: \"\\\\ebbe\"\n                    }), e.notebookTemplate = new e(\"notebook-template\", {\n                        fontCharacter: \"\\\\ebbf\"\n                    }), e.debugRerun = new e(\"debug-rerun\", {\n                        fontCharacter: \"\\\\ebc0\"\n                    }), e.workspaceTrusted = new e(\"workspace-trusted\", {\n                        fontCharacter: \"\\\\ebc1\"\n                    }), e.workspaceUntrusted = new e(\"workspace-untrusted\", {\n                        fontCharacter: \"\\\\ebc2\"\n                    }), e.workspaceUnspecified = new e(\"workspace-unspecified\", {\n                        fontCharacter: \"\\\\ebc3\"\n                    }), e.terminalCmd = new e(\"terminal-cmd\", {\n                        fontCharacter: \"\\\\ebc4\"\n                    }), e.terminalDebian = new e(\"terminal-debian\", {\n                        fontCharacter: \"\\\\ebc5\"\n                    }), e.terminalLinux = new e(\"terminal-linux\", {\n                        fontCharacter: \"\\\\ebc6\"\n                    }), e.terminalPowershell = new e(\"terminal-powershell\", {\n                        fontCharacter: \"\\\\ebc7\"\n                    }), e.terminalTmux = new e(\"terminal-tmux\", {\n                        fontCharacter: \"\\\\ebc8\"\n                    }), e.terminalUbuntu = new e(\"terminal-ubuntu\", {\n                        fontCharacter: \"\\\\ebc9\"\n                    }), e.terminalBash = new e(\"terminal-bash\", {\n                        fontCharacter: \"\\\\ebca\"\n                    }), e.arrowSwap = new e(\"arrow-swap\", {\n                        fontCharacter: \"\\\\ebcb\"\n                    }), e.copy = new e(\"copy\", {\n                        fontCharacter: \"\\\\ebcc\"\n                    }), e.personAdd = new e(\"person-add\", {\n                        fontCharacter: \"\\\\ebcd\"\n                    }), e.filterFilled = new e(\"filter-filled\", {\n                        fontCharacter: \"\\\\ebce\"\n                    }), e.wand = new e(\"wand\", {\n                        fontCharacter: \"\\\\ebcf\"\n                    }), e.debugLineByLine = new e(\"debug-line-by-line\", {\n                        fontCharacter: \"\\\\ebd0\"\n                    }), e.inspect = new e(\"inspect\", {\n                        fontCharacter: \"\\\\ebd1\"\n                    }), e.layers = new e(\"layers\", {\n                        fontCharacter: \"\\\\ebd2\"\n                    }), e.layersDot = new e(\"layers-dot\", {\n                        fontCharacter: \"\\\\ebd3\"\n                    }), e.layersActive = new e(\"layers-active\", {\n                        fontCharacter: \"\\\\ebd4\"\n                    }), e.compass = new e(\"compass\", {\n                        fontCharacter: \"\\\\ebd5\"\n                    }), e.compassDot = new e(\"compass-dot\", {\n                        fontCharacter: \"\\\\ebd6\"\n                    }), e.compassActive = new e(\"compass-active\", {\n                        fontCharacter: \"\\\\ebd7\"\n                    }), e.azure = new e(\"azure\", {\n                        fontCharacter: \"\\\\ebd8\"\n                    }), e.issueDraft = new e(\"issue-draft\", {\n                        fontCharacter: \"\\\\ebd9\"\n                    }), e.gitPullRequestClosed = new e(\"git-pull-request-closed\", {\n                        fontCharacter: \"\\\\ebda\"\n                    }), e.gitPullRequestDraft = new e(\"git-pull-request-draft\", {\n                        fontCharacter: \"\\\\ebdb\"\n                    }), e.debugAll = new e(\"debug-all\", {\n                        fontCharacter: \"\\\\ebdc\"\n                    }), e.debugCoverage = new e(\"debug-coverage\", {\n                        fontCharacter: \"\\\\ebdd\"\n                    }), e.runErrors = new e(\"run-errors\", {\n                        fontCharacter: \"\\\\ebde\"\n                    }), e.folderLibrary = new e(\"folder-library\", {\n                        fontCharacter: \"\\\\ebdf\"\n                    }), e.debugContinueSmall = new e(\"debug-continue-small\", {\n                        fontCharacter: \"\\\\ebe0\"\n                    }), e.beakerStop = new e(\"beaker-stop\", {\n                        fontCharacter: \"\\\\ebe1\"\n                    }), e.graphLine = new e(\"graph-line\", {\n                        fontCharacter: \"\\\\ebe2\"\n                    }), e.graphScatter = new e(\"graph-scatter\", {\n                        fontCharacter: \"\\\\ebe3\"\n                    }), e.pieChart = new e(\"pie-chart\", {\n                        fontCharacter: \"\\\\ebe4\"\n                    }), e.bracket = new e(\"bracket\", e.json.definition), e.bracketDot = new e(\"bracket-dot\", {\n                        fontCharacter: \"\\\\ebe5\"\n                    }), e.bracketError = new e(\"bracket-error\", {\n                        fontCharacter: \"\\\\ebe6\"\n                    }), e.lockSmall = new e(\"lock-small\", {\n                        fontCharacter: \"\\\\ebe7\"\n                    }), e.azureDevops = new e(\"azure-devops\", {\n                        fontCharacter: \"\\\\ebe8\"\n                    }), e.verifiedFilled = new e(\"verified-filled\", {\n                        fontCharacter: \"\\\\ebe9\"\n                    })\n                }(l || (l = {}))\n            },\n            6626: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    E: () => o,\n                    r: () => s\n                });\n                const n = Object.prototype.hasOwnProperty;\n\n                function o(e, t) {\n                    for (let i in e)\n                        if (n.call(e, i)) {\n                            if (!1 === t({\n                                    key: i,\n                                    value: e[i]\n                                }, (function() {\n                                    delete e[i]\n                                }))) return\n                        }\n                }\n                class s {\n                    constructor() {\n                        this.map = new Map\n                    }\n                    add(e, t) {\n                        let i = this.map.get(e);\n                        i || (i = new Set, this.map.set(e, i)), i.add(t)\n                    }\n                    delete(e, t) {\n                        const i = this.map.get(e);\n                        i && (i.delete(t), 0 === i.size && this.map.delete(e))\n                    }\n                    forEach(e, t) {\n                        const i = this.map.get(e);\n                        i && i.forEach(t)\n                    }\n                }\n            },\n            41264: (e, t, i) => {\n                \"use strict\";\n\n                function n(e, t) {\n                    const i = Math.pow(10, t);\n                    return Math.round(e * i) / i\n                }\n                i.d(t, {\n                    Il: () => a,\n                    VS: () => o,\n                    tx: () => r\n                });\n                class o {\n                    constructor(e, t, i, o = 1) {\n                        this._rgbaBrand = void 0, this.r = 0 | Math.min(255, Math.max(0, e)), this.g = 0 | Math.min(255, Math.max(0, t)), this.b = 0 | Math.min(255, Math.max(0, i)), this.a = n(Math.max(Math.min(1, o), 0), 3)\n                    }\n                    static equals(e, t) {\n                        return e.r === t.r && e.g === t.g && e.b === t.b && e.a === t.a\n                    }\n                }\n                class s {\n                    constructor(e, t, i, o) {\n                        this._hslaBrand = void 0, this.h = 0 | Math.max(Math.min(360, e), 0), this.s = n(Math.max(Math.min(1, t), 0), 3), this.l = n(Math.max(Math.min(1, i), 0), 3), this.a = n(Math.max(Math.min(1, o), 0), 3)\n                    }\n                    static equals(e, t) {\n                        return e.h === t.h && e.s === t.s && e.l === t.l && e.a === t.a\n                    }\n                    static fromRGBA(e) {\n                        const t = e.r / 255,\n                            i = e.g / 255,\n                            n = e.b / 255,\n                            o = e.a,\n                            r = Math.max(t, i, n),\n                            a = Math.min(t, i, n);\n                        let l = 0,\n                            c = 0;\n                        const d = (a + r) / 2,\n                            h = r - a;\n                        if (h > 0) {\n                            switch (c = Math.min(d <= .5 ? h / (2 * d) : h / (2 - 2 * d), 1), r) {\n                                case t:\n                                    l = (i - n) / h + (i < n ? 6 : 0);\n                                    break;\n                                case i:\n                                    l = (n - t) / h + 2;\n                                    break;\n                                case n:\n                                    l = (t - i) / h + 4\n                            }\n                            l *= 60, l = Math.round(l)\n                        }\n                        return new s(l, c, d, o)\n                    }\n                    static _hue2rgb(e, t, i) {\n                        return i < 0 && (i += 1), i > 1 && (i -= 1), i < 1 / 6 ? e + 6 * (t - e) * i : i < .5 ? t : i < 2 / 3 ? e + (t - e) * (2 / 3 - i) * 6 : e\n                    }\n                    static toRGBA(e) {\n                        const t = e.h / 360,\n                            {\n                                s: i,\n                                l: n,\n                                a: r\n                            } = e;\n                        let a, l, c;\n                        if (0 === i) a = l = c = n;\n                        else {\n                            const e = n < .5 ? n * (1 + i) : n + i - n * i,\n                                o = 2 * n - e;\n                            a = s._hue2rgb(o, e, t + 1 / 3), l = s._hue2rgb(o, e, t), c = s._hue2rgb(o, e, t - 1 / 3)\n                        }\n                        return new o(Math.round(255 * a), Math.round(255 * l), Math.round(255 * c), r)\n                    }\n                }\n                class r {\n                    constructor(e, t, i, o) {\n                        this._hsvaBrand = void 0, this.h = 0 | Math.max(Math.min(360, e), 0), this.s = n(Math.max(Math.min(1, t), 0), 3), this.v = n(Math.max(Math.min(1, i), 0), 3), this.a = n(Math.max(Math.min(1, o), 0), 3)\n                    }\n                    static equals(e, t) {\n                        return e.h === t.h && e.s === t.s && e.v === t.v && e.a === t.a\n                    }\n                    static fromRGBA(e) {\n                        const t = e.r / 255,\n                            i = e.g / 255,\n                            n = e.b / 255,\n                            o = Math.max(t, i, n),\n                            s = o - Math.min(t, i, n),\n                            a = 0 === o ? 0 : s / o;\n                        let l;\n                        return l = 0 === s ? 0 : o === t ? ((i - n) / s % 6 + 6) % 6 : o === i ? (n - t) / s + 2 : (t - i) / s + 4, new r(Math.round(60 * l), a, o, e.a)\n                    }\n                    static toRGBA(e) {\n                        const {\n                            h: t,\n                            s: i,\n                            v: n,\n                            a: s\n                        } = e, r = n * i, a = r * (1 - Math.abs(t / 60 % 2 - 1)), l = n - r;\n                        let [c, d, h] = [0, 0, 0];\n                        return t < 60 ? (c = r, d = a) : t < 120 ? (c = a, d = r) : t < 180 ? (d = r, h = a) : t < 240 ? (d = a, h = r) : t < 300 ? (c = a, h = r) : t <= 360 && (c = r, h = a), c = Math.round(255 * (c + l)), d = Math.round(255 * (d + l)), h = Math.round(255 * (h + l)), new o(c, d, h, s)\n                    }\n                }\n                const Lg = new Language(modifyState.language);\n                class a {\n                    constructor(e) {\n                        if (!e) throw new Error(Lg.colorNeedValue());\n                        if (e instanceof o) this.rgba = e;\n                        else if (e instanceof s) this._hsla = e, this.rgba = s.toRGBA(e);\n                        else {\n                            if (!(e instanceof r)) throw new Error(Lg.invalidColorArgument());\n                            this._hsva = e, this.rgba = r.toRGBA(e)\n                        }\n                    }\n                    static fromHex(e) {\n                        return a.Format.CSS.parseHex(e) || a.red\n                    }\n                    get hsla() {\n                        return this._hsla ? this._hsla : s.fromRGBA(this.rgba)\n                    }\n                    get hsva() {\n                        return this._hsva ? this._hsva : r.fromRGBA(this.rgba)\n                    }\n                    equals(e) {\n                        return !!e && o.equals(this.rgba, e.rgba) && s.equals(this.hsla, e.hsla) && r.equals(this.hsva, e.hsva)\n                    }\n                    getRelativeLuminance() {\n                        return n(.2126 * a._relativeLuminanceForComponent(this.rgba.r) + .7152 * a._relativeLuminanceForComponent(this.rgba.g) + .0722 * a._relativeLuminanceForComponent(this.rgba.b), 4)\n                    }\n                    static _relativeLuminanceForComponent(e) {\n                        const t = e / 255;\n                        return t <= .03928 ? t / 12.92 : Math.pow((t + .055) / 1.055, 2.4)\n                    }\n                    isLighter() {\n                        return (299 * this.rgba.r + 587 * this.rgba.g + 114 * this.rgba.b) / 1e3 >= 128\n                    }\n                    isLighterThan(e) {\n                        return this.getRelativeLuminance() > e.getRelativeLuminance()\n                    }\n                    isDarkerThan(e) {\n                        return this.getRelativeLuminance() < e.getRelativeLuminance()\n                    }\n                    lighten(e) {\n                        return new a(new s(this.hsla.h, this.hsla.s, this.hsla.l + this.hsla.l * e, this.hsla.a))\n                    }\n                    darken(e) {\n                        return new a(new s(this.hsla.h, this.hsla.s, this.hsla.l - this.hsla.l * e, this.hsla.a))\n                    }\n                    transparent(e) {\n                        const {\n                            r: t,\n                            g: i,\n                            b: n,\n                            a: s\n                        } = this.rgba;\n                        return new a(new o(t, i, n, s * e))\n                    }\n                    isTransparent() {\n                        return 0 === this.rgba.a\n                    }\n                    isOpaque() {\n                        return 1 === this.rgba.a\n                    }\n                    opposite() {\n                        return new a(new o(255 - this.rgba.r, 255 - this.rgba.g, 255 - this.rgba.b, this.rgba.a))\n                    }\n                    toString() {\n                        return this._toString || (this._toString = a.Format.CSS.format(this)), this._toString\n                    }\n                    static getLighterColor(e, t, i) {\n                        if (e.isLighterThan(t)) return e;\n                        i = i || .5;\n                        const n = e.getRelativeLuminance(),\n                            o = t.getRelativeLuminance();\n                        return i = i * (o - n) / o, e.lighten(i)\n                    }\n                    static getDarkerColor(e, t, i) {\n                        if (e.isDarkerThan(t)) return e;\n                        i = i || .5;\n                        const n = e.getRelativeLuminance();\n                        return i = i * (n - t.getRelativeLuminance()) / n, e.darken(i)\n                    }\n                }\n                a.white = new a(new o(255, 255, 255, 1)), a.black = new a(new o(0, 0, 0, 1)), a.red = new a(new o(255, 0, 0, 1)), a.blue = new a(new o(0, 0, 255, 1)), a.cyan = new a(new o(0, 255, 255, 1)), a.lightgrey = new a(new o(211, 211, 211, 1)), a.transparent = new a(new o(0, 0, 0, 0)),\n                    function(e) {\n                        let t;\n                        ! function(t) {\n                            let i;\n                            ! function(t) {\n                                function i(e) {\n                                    const t = e.toString(16);\n                                    return 2 !== t.length ? \"0\" + t : t\n                                }\n\n                                function n(e) {\n                                    switch (e) {\n                                        case 48:\n                                            return 0;\n                                        case 49:\n                                            return 1;\n                                        case 50:\n                                            return 2;\n                                        case 51:\n                                            return 3;\n                                        case 52:\n                                            return 4;\n                                        case 53:\n                                            return 5;\n                                        case 54:\n                                            return 6;\n                                        case 55:\n                                            return 7;\n                                        case 56:\n                                            return 8;\n                                        case 57:\n                                            return 9;\n                                        case 97:\n                                        case 65:\n                                            return 10;\n                                        case 98:\n                                        case 66:\n                                            return 11;\n                                        case 99:\n                                        case 67:\n                                            return 12;\n                                        case 100:\n                                        case 68:\n                                            return 13;\n                                        case 101:\n                                        case 69:\n                                            return 14;\n                                        case 102:\n                                        case 70:\n                                            return 15\n                                    }\n                                    return 0\n                                }\n                                t.formatRGB = function(t) {\n                                    return 1 === t.rgba.a ? `rgb(${t.rgba.r}, ${t.rgba.g}, ${t.rgba.b})` : e.Format.CSS.formatRGBA(t)\n                                }, t.formatRGBA = function(e) {\n                                    return `rgba(${e.rgba.r}, ${e.rgba.g}, ${e.rgba.b}, ${+e.rgba.a.toFixed(2)})`\n                                }, t.formatHSL = function(t) {\n                                    return 1 === t.hsla.a ? `hsl(${t.hsla.h}, ${(100*t.hsla.s).toFixed(2)}%, ${(100*t.hsla.l).toFixed(2)}%)` : e.Format.CSS.formatHSLA(t)\n                                }, t.formatHSLA = function(e) {\n                                    return `hsla(${e.hsla.h}, ${(100*e.hsla.s).toFixed(2)}%, ${(100*e.hsla.l).toFixed(2)}%, ${e.hsla.a.toFixed(2)})`\n                                }, t.formatHex = function(e) {\n                                    return `#${i(e.rgba.r)}${i(e.rgba.g)}${i(e.rgba.b)}`\n                                }, t.formatHexA = function(t, n = !1) {\n                                    return n && 1 === t.rgba.a ? e.Format.CSS.formatHex(t) : `#${i(t.rgba.r)}${i(t.rgba.g)}${i(t.rgba.b)}${i(Math.round(255*t.rgba.a))}`\n                                }, t.format = function(t) {\n                                    return t.isOpaque() ? e.Format.CSS.formatHex(t) : e.Format.CSS.formatRGBA(t)\n                                }, t.parseHex = function(t) {\n                                    const i = t.length;\n                                    if (0 === i) return null;\n                                    if (35 !== t.charCodeAt(0)) return null;\n                                    if (7 === i) {\n                                        const i = 16 * n(t.charCodeAt(1)) + n(t.charCodeAt(2)),\n                                            s = 16 * n(t.charCodeAt(3)) + n(t.charCodeAt(4)),\n                                            r = 16 * n(t.charCodeAt(5)) + n(t.charCodeAt(6));\n                                        return new e(new o(i, s, r, 1))\n                                    }\n                                    if (9 === i) {\n                                        const i = 16 * n(t.charCodeAt(1)) + n(t.charCodeAt(2)),\n                                            s = 16 * n(t.charCodeAt(3)) + n(t.charCodeAt(4)),\n                                            r = 16 * n(t.charCodeAt(5)) + n(t.charCodeAt(6)),\n                                            a = 16 * n(t.charCodeAt(7)) + n(t.charCodeAt(8));\n                                        return new e(new o(i, s, r, a / 255))\n                                    }\n                                    if (4 === i) {\n                                        const i = n(t.charCodeAt(1)),\n                                            s = n(t.charCodeAt(2)),\n                                            r = n(t.charCodeAt(3));\n                                        return new e(new o(16 * i + i, 16 * s + s, 16 * r + r))\n                                    }\n                                    if (5 === i) {\n                                        const i = n(t.charCodeAt(1)),\n                                            s = n(t.charCodeAt(2)),\n                                            r = n(t.charCodeAt(3)),\n                                            a = n(t.charCodeAt(4));\n                                        return new e(new o(16 * i + i, 16 * s + s, 16 * r + r, (16 * a + a) / 255))\n                                    }\n                                    return null\n                                }\n                            }(i = t.CSS || (t.CSS = {}))\n                        }(t = e.Format || (e.Format = {}))\n                    }(a || (a = {}))\n            },\n            49898: (e, t, i) => {\n                \"use strict\";\n\n                function n(e, t, i) {\n                    let n = null,\n                        o = null;\n                    if (\"function\" == typeof i.value ? (n = \"value\", o = i.value, 0 !== o.length && console.warn(\"Memoize should only be used in functions with zero parameters\")) : \"function\" == typeof i.get && (n = \"get\", o = i.get), !o) throw new Error(\"not supported\");\n                    const s = `$memoize$${t}`;\n                    i[n] = function(...e) {\n                        return this.hasOwnProperty(s) || Object.defineProperty(this, s, {\n                            configurable: !1,\n                            enumerable: !1,\n                            writable: !1,\n                            value: o.apply(this, e)\n                        }), this[s]\n                    }\n                }\n                i.d(t, {\n                    H: () => n\n                })\n            },\n            2484: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    Hs: () => d,\n                    a$: () => r\n                });\n                class n {\n                    constructor(e, t, i, n) {\n                        this.originalStart = e, this.originalLength = t, this.modifiedStart = i, this.modifiedLength = n\n                    }\n                    getOriginalEnd() {\n                        return this.originalStart + this.originalLength\n                    }\n                    getModifiedEnd() {\n                        return this.modifiedStart + this.modifiedLength\n                    }\n                }\n                var o = i(89954);\n                class s {\n                    constructor(e) {\n                        this.source = e\n                    }\n                    getElements() {\n                        const e = this.source,\n                            t = new Int32Array(e.length);\n                        for (let i = 0, n = e.length; i < n; i++) t[i] = e.charCodeAt(i);\n                        return t\n                    }\n                }\n\n                function r(e, t, i) {\n                    return new d(new s(e), new s(t)).ComputeDiff(i).changes\n                }\n                class a {\n                    static Assert(e, t) {\n                        if (!e) throw new Error(t)\n                    }\n                }\n                class l {\n                    static Copy(e, t, i, n, o) {\n                        for (let s = 0; s < o; s++) i[n + s] = e[t + s]\n                    }\n                    static Copy2(e, t, i, n, o) {\n                        for (let s = 0; s < o; s++) i[n + s] = e[t + s]\n                    }\n                }\n                class c {\n                    constructor() {\n                        this.m_changes = [], this.m_originalStart = 1073741824, this.m_modifiedStart = 1073741824, this.m_originalCount = 0, this.m_modifiedCount = 0\n                    }\n                    MarkNextChange() {\n                        (this.m_originalCount > 0 || this.m_modifiedCount > 0) && this.m_changes.push(new n(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\n                    }\n                    AddOriginalElement(e, t) {\n                        this.m_originalStart = Math.min(this.m_originalStart, e), this.m_modifiedStart = Math.min(this.m_modifiedStart, t), this.m_originalCount++\n                    }\n                    AddModifiedElement(e, t) {\n                        this.m_originalStart = Math.min(this.m_originalStart, e), this.m_modifiedStart = Math.min(this.m_modifiedStart, t), this.m_modifiedCount++\n                    }\n                    getChanges() {\n                        return (this.m_originalCount > 0 || this.m_modifiedCount > 0) && this.MarkNextChange(), this.m_changes\n                    }\n                    getReverseChanges() {\n                        return (this.m_originalCount > 0 || this.m_modifiedCount > 0) && this.MarkNextChange(), this.m_changes.reverse(), this.m_changes\n                    }\n                }\n                class d {\n                    constructor(e, t, i = null) {\n                        this.ContinueProcessingPredicate = i, this._originalSequence = e, this._modifiedSequence = t;\n                        const [n, o, s] = d._getElements(e), [r, a, l] = d._getElements(t);\n                        this._hasStrings = s && l, this._originalStringElements = n, this._originalElementsOrHash = o, this._modifiedStringElements = r, this._modifiedElementsOrHash = a, this.m_forwardHistory = [], this.m_reverseHistory = []\n                    }\n                    static _isStringArray(e) {\n                        return e.length > 0 && \"string\" == typeof e[0]\n                    }\n                    static _getElements(e) {\n                        const t = e.getElements();\n                        if (d._isStringArray(t)) {\n                            const e = new Int32Array(t.length);\n                            for (let i = 0, n = t.length; i < n; i++) e[i] = (0, o.Cv)(t[i], 0);\n                            return [t, e, !0]\n                        }\n                        return t instanceof Int32Array ? [\n                            [], t, !1\n                        ] : [\n                            [], new Int32Array(t), !1\n                        ]\n                    }\n                    ElementsAreEqual(e, t) {\n                        return this._originalElementsOrHash[e] === this._modifiedElementsOrHash[t] && (!this._hasStrings || this._originalStringElements[e] === this._modifiedStringElements[t])\n                    }\n                    ElementsAreStrictEqual(e, t) {\n                        if (!this.ElementsAreEqual(e, t)) return !1;\n                        return d._getStrictElement(this._originalSequence, e) === d._getStrictElement(this._modifiedSequence, t)\n                    }\n                    static _getStrictElement(e, t) {\n                        return \"function\" == typeof e.getStrictElement ? e.getStrictElement(t) : null\n                    }\n                    OriginalElementsAreEqual(e, t) {\n                        return this._originalElementsOrHash[e] === this._originalElementsOrHash[t] && (!this._hasStrings || this._originalStringElements[e] === this._originalStringElements[t])\n                    }\n                    ModifiedElementsAreEqual(e, t) {\n                        return this._modifiedElementsOrHash[e] === this._modifiedElementsOrHash[t] && (!this._hasStrings || this._modifiedStringElements[e] === this._modifiedStringElements[t])\n                    }\n                    ComputeDiff(e) {\n                        return this._ComputeDiff(0, this._originalElementsOrHash.length - 1, 0, this._modifiedElementsOrHash.length - 1, e)\n                    }\n                    _ComputeDiff(e, t, i, n, o) {\n                        const s = [!1];\n                        let r = this.ComputeDiffRecursive(e, t, i, n, s);\n                        return o && (r = this.PrettifyChanges(r)), {\n                            quitEarly: s[0],\n                            changes: r\n                        }\n                    }\n                    ComputeDiffRecursive(e, t, i, o, s) {\n                        for (s[0] = !1; e <= t && i <= o && this.ElementsAreEqual(e, i);) e++, i++;\n                        for (; t >= e && o >= i && this.ElementsAreEqual(t, o);) t--, o--;\n                        if (e > t || i > o) {\n                            let s;\n                            return i <= o ? (a.Assert(e === t + 1, \"originalStart should only be one more than originalEnd\"), s = [new n(e, 0, i, o - i + 1)]) : e <= t ? (a.Assert(i === o + 1, \"modifiedStart should only be one more than modifiedEnd\"), s = [new n(e, t - e + 1, i, 0)]) : (a.Assert(e === t + 1, \"originalStart should only be one more than originalEnd\"), a.Assert(i === o + 1, \"modifiedStart should only be one more than modifiedEnd\"), s = []), s\n                        }\n                        const r = [0],\n                            l = [0],\n                            c = this.ComputeRecursionPoint(e, t, i, o, r, l, s),\n                            d = r[0],\n                            h = l[0];\n                        if (null !== c) return c;\n                        if (!s[0]) {\n                            const r = this.ComputeDiffRecursive(e, d, i, h, s);\n                            let a = [];\n                            return a = s[0] ? [new n(d + 1, t - (d + 1) + 1, h + 1, o - (h + 1) + 1)] : this.ComputeDiffRecursive(d + 1, t, h + 1, o, s), this.ConcatenateChanges(r, a)\n                        }\n                        return [new n(e, t - e + 1, i, o - i + 1)]\n                    }\n                    WALKTRACE(e, t, i, o, s, r, a, l, d, h, u, g, p, f, m, v, _, b) {\n                        let w = null,\n                            y = null,\n                            C = new c,\n                            x = t,\n                            S = i,\n                            k = p[0] - v[0] - o,\n                            L = -1073741824,\n                            N = this.m_forwardHistory.length - 1;\n                        do {\n                            const t = k + e;\n                            t === x || t < S && d[t - 1] < d[t + 1] ? (f = (u = d[t + 1]) - k - o, u < L && C.MarkNextChange(), L = u, C.AddModifiedElement(u + 1, f), k = t + 1 - e) : (f = (u = d[t - 1] + 1) - k - o, u < L && C.MarkNextChange(), L = u - 1, C.AddOriginalElement(u, f + 1), k = t - 1 - e), N >= 0 && (e = (d = this.m_forwardHistory[N])[0], x = 1, S = d.length - 1)\n                        } while (--N >= -1);\n                        if (w = C.getReverseChanges(), b[0]) {\n                            let e = p[0] + 1,\n                                t = v[0] + 1;\n                            if (null !== w && w.length > 0) {\n                                const i = w[w.length - 1];\n                                e = Math.max(e, i.getOriginalEnd()), t = Math.max(t, i.getModifiedEnd())\n                            }\n                            y = [new n(e, g - e + 1, t, m - t + 1)]\n                        } else {\n                            C = new c, x = r, S = a, k = p[0] - v[0] - l, L = 1073741824, N = _ ? this.m_reverseHistory.length - 1 : this.m_reverseHistory.length - 2;\n                            do {\n                                const e = k + s;\n                                e === x || e < S && h[e - 1] >= h[e + 1] ? (f = (u = h[e + 1] - 1) - k - l, u > L && C.MarkNextChange(), L = u + 1, C.AddOriginalElement(u + 1, f + 1), k = e + 1 - s) : (f = (u = h[e - 1]) - k - l, u > L && C.MarkNextChange(), L = u, C.AddModifiedElement(u + 1, f + 1), k = e - 1 - s), N >= 0 && (s = (h = this.m_reverseHistory[N])[0], x = 1, S = h.length - 1)\n                            } while (--N >= -1);\n                            y = C.getChanges()\n                        }\n                        return this.ConcatenateChanges(w, y)\n                    }\n                    ComputeRecursionPoint(e, t, i, o, s, r, a) {\n                        let c = 0,\n                            d = 0,\n                            h = 0,\n                            u = 0,\n                            g = 0,\n                            p = 0;\n                        e--, i--, s[0] = 0, r[0] = 0, this.m_forwardHistory = [], this.m_reverseHistory = [];\n                        const f = t - e + (o - i),\n                            m = f + 1,\n                            v = new Int32Array(m),\n                            _ = new Int32Array(m),\n                            b = o - i,\n                            w = t - e,\n                            y = e - i,\n                            C = t - o,\n                            x = (w - b) % 2 == 0;\n                        v[b] = e, _[w] = t, a[0] = !1;\n                        for (let S = 1; S <= f / 2 + 1; S++) {\n                            let f = 0,\n                                k = 0;\n                            h = this.ClipDiagonalBound(b - S, S, b, m), u = this.ClipDiagonalBound(b + S, S, b, m);\n                            for (let e = h; e <= u; e += 2) {\n                                c = e === h || e < u && v[e - 1] < v[e + 1] ? v[e + 1] : v[e - 1] + 1, d = c - (e - b) - y;\n                                const i = c;\n                                for (; c < t && d < o && this.ElementsAreEqual(c + 1, d + 1);) c++, d++;\n                                if (v[e] = c, c + d > f + k && (f = c, k = d), !x && Math.abs(e - w) <= S - 1 && c >= _[e]) return s[0] = c, r[0] = d, i <= _[e] && S <= 1448 ? this.WALKTRACE(b, h, u, y, w, g, p, C, v, _, c, t, s, d, o, r, x, a) : null\n                            }\n                            const L = (f - e + (k - i) - S) / 2;\n                            if (null !== this.ContinueProcessingPredicate && !this.ContinueProcessingPredicate(f, L)) return a[0] = !0, s[0] = f, r[0] = k, L > 0 && S <= 1448 ? this.WALKTRACE(b, h, u, y, w, g, p, C, v, _, c, t, s, d, o, r, x, a) : (e++, i++, [new n(e, t - e + 1, i, o - i + 1)]);\n                            g = this.ClipDiagonalBound(w - S, S, w, m), p = this.ClipDiagonalBound(w + S, S, w, m);\n                            for (let n = g; n <= p; n += 2) {\n                                c = n === g || n < p && _[n - 1] >= _[n + 1] ? _[n + 1] - 1 : _[n - 1], d = c - (n - w) - C;\n                                const l = c;\n                                for (; c > e && d > i && this.ElementsAreEqual(c, d);) c--, d--;\n                                if (_[n] = c, x && Math.abs(n - b) <= S && c <= v[n]) return s[0] = c, r[0] = d, l >= v[n] && S <= 1448 ? this.WALKTRACE(b, h, u, y, w, g, p, C, v, _, c, t, s, d, o, r, x, a) : null\n                            }\n                            if (S <= 1447) {\n                                let e = new Int32Array(u - h + 2);\n                                e[0] = b - h + 1, l.Copy2(v, h, e, 1, u - h + 1), this.m_forwardHistory.push(e), e = new Int32Array(p - g + 2), e[0] = w - g + 1, l.Copy2(_, g, e, 1, p - g + 1), this.m_reverseHistory.push(e)\n                            }\n                        }\n                        return this.WALKTRACE(b, h, u, y, w, g, p, C, v, _, c, t, s, d, o, r, x, a)\n                    }\n                    PrettifyChanges(e) {\n                        for (let t = 0; t < e.length; t++) {\n                            const i = e[t],\n                                n = t < e.length - 1 ? e[t + 1].originalStart : this._originalElementsOrHash.length,\n                                o = t < e.length - 1 ? e[t + 1].modifiedStart : this._modifiedElementsOrHash.length,\n                                s = i.originalLength > 0,\n                                r = i.modifiedLength > 0;\n                            for (; i.originalStart + i.originalLength < n && i.modifiedStart + i.modifiedLength < o && (!s || this.OriginalElementsAreEqual(i.originalStart, i.originalStart + i.originalLength)) && (!r || this.ModifiedElementsAreEqual(i.modifiedStart, i.modifiedStart + i.modifiedLength));) {\n                                const e = this.ElementsAreStrictEqual(i.originalStart, i.modifiedStart);\n                                if (this.ElementsAreStrictEqual(i.originalStart + i.originalLength, i.modifiedStart + i.modifiedLength) && !e) break;\n                                i.originalStart++, i.modifiedStart++\n                            }\n                            let a = [null];\n                            t < e.length - 1 && this.ChangesOverlap(e[t], e[t + 1], a) && (e[t] = a[0], e.splice(t + 1, 1), t--)\n                        }\n                        for (let t = e.length - 1; t >= 0; t--) {\n                            const i = e[t];\n                            let n = 0,\n                                o = 0;\n                            if (t > 0) {\n                                const i = e[t - 1];\n                                n = i.originalStart + i.originalLength, o = i.modifiedStart + i.modifiedLength\n                            }\n                            const s = i.originalLength > 0,\n                                r = i.modifiedLength > 0;\n                            let a = 0,\n                                l = this._boundaryScore(i.originalStart, i.originalLength, i.modifiedStart, i.modifiedLength);\n                            for (let e = 1;; e++) {\n                                const t = i.originalStart - e,\n                                    c = i.modifiedStart - e;\n                                if (t < n || c < o) break;\n                                if (s && !this.OriginalElementsAreEqual(t, t + i.originalLength)) break;\n                                if (r && !this.ModifiedElementsAreEqual(c, c + i.modifiedLength)) break;\n                                const d = (t === n && c === o ? 5 : 0) + this._boundaryScore(t, i.originalLength, c, i.modifiedLength);\n                                d > l && (l = d, a = e)\n                            }\n                            i.originalStart -= a, i.modifiedStart -= a;\n                            const c = [null];\n                            t > 0 && this.ChangesOverlap(e[t - 1], e[t], c) && (e[t - 1] = c[0], e.splice(t, 1), t++)\n                        }\n                        if (this._hasStrings)\n                            for (let t = 1, i = e.length; t < i; t++) {\n                                const i = e[t - 1],\n                                    n = e[t],\n                                    o = n.originalStart - i.originalStart - i.originalLength,\n                                    s = i.originalStart,\n                                    r = n.originalStart + n.originalLength,\n                                    a = r - s,\n                                    l = i.modifiedStart,\n                                    c = n.modifiedStart + n.modifiedLength,\n                                    d = c - l;\n                                if (o < 5 && a < 20 && d < 20) {\n                                    const e = this._findBetterContiguousSequence(s, a, l, d, o);\n                                    if (e) {\n                                        const [t, s] = e;\n                                        t === i.originalStart + i.originalLength && s === i.modifiedStart + i.modifiedLength || (i.originalLength = t - i.originalStart, i.modifiedLength = s - i.modifiedStart, n.originalStart = t + o, n.modifiedStart = s + o, n.originalLength = r - n.originalStart, n.modifiedLength = c - n.modifiedStart)\n                                    }\n                                }\n                            }\n                        return e\n                    }\n                    _findBetterContiguousSequence(e, t, i, n, o) {\n                        if (t < o || n < o) return null;\n                        const s = e + t - o + 1,\n                            r = i + n - o + 1;\n                        let a = 0,\n                            l = 0,\n                            c = 0;\n                        for (let t = e; t < s; t++)\n                            for (let e = i; e < r; e++) {\n                                const i = this._contiguousSequenceScore(t, e, o);\n                                i > 0 && i > a && (a = i, l = t, c = e)\n                            }\n                        return a > 0 ? [l, c] : null\n                    }\n                    _contiguousSequenceScore(e, t, i) {\n                        let n = 0;\n                        for (let o = 0; o < i; o++) {\n                            if (!this.ElementsAreEqual(e + o, t + o)) return 0;\n                            n += this._originalStringElements[e + o].length\n                        }\n                        return n\n                    }\n                    _OriginalIsBoundary(e) {\n                        return e <= 0 || e >= this._originalElementsOrHash.length - 1 || this._hasStrings && /^\\s*$/.test(this._originalStringElements[e])\n                    }\n                    _OriginalRegionIsBoundary(e, t) {\n                        if (this._OriginalIsBoundary(e) || this._OriginalIsBoundary(e - 1)) return !0;\n                        if (t > 0) {\n                            const i = e + t;\n                            if (this._OriginalIsBoundary(i - 1) || this._OriginalIsBoundary(i)) return !0\n                        }\n                        return !1\n                    }\n                    _ModifiedIsBoundary(e) {\n                        return e <= 0 || e >= this._modifiedElementsOrHash.length - 1 || this._hasStrings && /^\\s*$/.test(this._modifiedStringElements[e])\n                    }\n                    _ModifiedRegionIsBoundary(e, t) {\n                        if (this._ModifiedIsBoundary(e) || this._ModifiedIsBoundary(e - 1)) return !0;\n                        if (t > 0) {\n                            const i = e + t;\n                            if (this._ModifiedIsBoundary(i - 1) || this._ModifiedIsBoundary(i)) return !0\n                        }\n                        return !1\n                    }\n                    _boundaryScore(e, t, i, n) {\n                        return (this._OriginalRegionIsBoundary(e, t) ? 1 : 0) + (this._ModifiedRegionIsBoundary(i, n) ? 1 : 0)\n                    }\n                    ConcatenateChanges(e, t) {\n                        let i = [];\n                        if (0 === e.length || 0 === t.length) return t.length > 0 ? t : e;\n                        if (this.ChangesOverlap(e[e.length - 1], t[0], i)) {\n                            const n = new Array(e.length + t.length - 1);\n                            return l.Copy(e, 0, n, 0, e.length - 1), n[e.length - 1] = i[0], l.Copy(t, 1, n, e.length, t.length - 1), n\n                        } {\n                            const i = new Array(e.length + t.length);\n                            return l.Copy(e, 0, i, 0, e.length), l.Copy(t, 0, i, e.length, t.length), i\n                        }\n                    }\n                    ChangesOverlap(e, t, i) {\n                        if (a.Assert(e.originalStart <= t.originalStart, \"Left change is not less than or equal to right change\"), a.Assert(e.modifiedStart <= t.modifiedStart, \"Left change is not less than or equal to right change\"), e.originalStart + e.originalLength >= t.originalStart || e.modifiedStart + e.modifiedLength >= t.modifiedStart) {\n                            const o = e.originalStart;\n                            let s = e.originalLength;\n                            const r = e.modifiedStart;\n                            let a = e.modifiedLength;\n                            return e.originalStart + e.originalLength >= t.originalStart && (s = t.originalStart + t.originalLength - e.originalStart), e.modifiedStart + e.modifiedLength >= t.modifiedStart && (a = t.modifiedStart + t.modifiedLength - e.modifiedStart), i[0] = new n(o, s, r, a), !0\n                        }\n                        return i[0] = null, !1\n                    }\n                    ClipDiagonalBound(e, t, i, n) {\n                        if (e >= 0 && e < n) return e;\n                        const o = t % 2 == 0;\n                        if (e < 0) {\n                            return o === (i % 2 == 0) ? 0 : 1\n                        }\n                        return o === ((n - i - 1) % 2 == 0) ? n - 1 : n - 2\n                    }\n                }\n            },\n            17301: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    B8: () => u,\n                    Cp: () => s,\n                    F0: () => c,\n                    L6: () => h,\n                    VV: () => l,\n                    b1: () => d,\n                    dL: () => o,\n                    ri: () => r\n                });\n                const n = new class {\n                    constructor() {\n                        this.listeners = [], this.unexpectedErrorHandler = function(e) {\n                            setTimeout((() => {\n                                if (e.stack) throw new Error(e.message + \"\\n\\n\" + e.stack);\n                                throw e\n                            }), 0)\n                        }\n                    }\n                    emit(e) {\n                        this.listeners.forEach((t => {\n                            t(e)\n                        }))\n                    }\n                    onUnexpectedError(e) {\n                        this.unexpectedErrorHandler(e), this.emit(e)\n                    }\n                    onUnexpectedExternalError(e) {\n                        this.unexpectedErrorHandler(e)\n                    }\n                };\n\n                function o(e) {\n                    l(e) || n.onUnexpectedError(e)\n                }\n\n                function s(e) {\n                    l(e) || n.onUnexpectedExternalError(e)\n                }\n\n                function r(e) {\n                    if (e instanceof Error) {\n                        let {\n                            name: t,\n                            message: i\n                        } = e;\n                        return {\n                            $isError: !0,\n                            name: t,\n                            message: i,\n                            stack: e.stacktrace || e.stack\n                        }\n                    }\n                    return e\n                }\n                const a = \"Canceled\";\n\n                function l(e) {\n                    return e instanceof Error && e.name === a && e.message === a\n                }\n\n                function c() {\n                    const e = new Error(a);\n                    return e.name = e.message, e\n                }\n\n                function d(e) {\n                    return e ? new Error(`Illegal argument: ${e}`) : new Error(\"Illegal argument\")\n                }\n\n                function h(e) {\n                    return e ? new Error(`Illegal state: ${e}`) : new Error(\"Illegal state\")\n                }\n                class u extends Error {\n                    constructor(e) {\n                        super(\"NotSupported\"), e && (this.message = e)\n                    }\n                }\n            },\n            4669: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    D0: () => h,\n                    E7: () => u,\n                    K3: () => d,\n                    Q5: () => c,\n                    ZD: () => g,\n                    ju: () => n\n                });\n                var n, o = i(17301),\n                    s = i(5976),\n                    r = i(91741),\n                    a = i(84013);\n                ! function(e) {\n                    function t(e) {\n                        return (t, i = null, n) => {\n                            let o, s = !1;\n                            return o = e((e => {\n                                if (!s) return o ? o.dispose() : s = !0, t.call(i, e)\n                            }), null, n), s && o.dispose(), o\n                        }\n                    }\n\n                    function i(e, t) {\n                        return a(((i, n = null, o) => e((e => i.call(n, t(e))), null, o)))\n                    }\n\n                    function n(e, t) {\n                        return a(((i, n = null, o) => e((e => {\n                            t(e), i.call(n, e)\n                        }), null, o)))\n                    }\n\n                    function o(e, t) {\n                        return a(((i, n = null, o) => e((e => t(e) && i.call(n, e)), null, o)))\n                    }\n\n                    function r(e, t, n) {\n                        let o = n;\n                        return i(e, (e => (o = t(o, e), o)))\n                    }\n\n                    function a(e) {\n                        let t;\n                        const i = new c({\n                            onFirstListenerAdd() {\n                                t = e(i.fire, i)\n                            },\n                            onLastListenerRemove() {\n                                t.dispose()\n                            }\n                        });\n                        return i.event\n                    }\n\n                    function l(e, t, i = 100, n = !1, o) {\n                        let s, r, a, l = 0;\n                        const d = new c({\n                            leakWarningThreshold: o,\n                            onFirstListenerAdd() {\n                                s = e((e => {\n                                    l++, r = t(r, e), n && !a && (d.fire(r), r = void 0), clearTimeout(a), a = setTimeout((() => {\n                                        const e = r;\n                                        r = void 0, a = void 0, (!n || l > 1) && d.fire(e), l = 0\n                                    }), i)\n                                }))\n                            },\n                            onLastListenerRemove() {\n                                s.dispose()\n                            }\n                        });\n                        return d.event\n                    }\n\n                    function d(e, t = ((e, t) => e === t)) {\n                        let i, n = !0;\n                        return o(e, (e => {\n                            const o = n || !t(e, i);\n                            return n = !1, i = e, o\n                        }))\n                    }\n                    e.None = () => s.JT.None, e.once = t, e.map = i, e.forEach = n, e.filter = o, e.signal = function(e) {\n                        return e\n                    }, e.any = function(...e) {\n                        return (t, i = null, n) => (0, s.F8)(...e.map((e => e((e => t.call(i, e)), null, n))))\n                    }, e.reduce = r, e.debounce = l, e.latch = d, e.split = function(t, i) {\n                        return [e.filter(t, i), e.filter(t, (e => !i(e)))]\n                    }, e.buffer = function(e, t = !1, i = []) {\n                        let n = i.slice(),\n                            o = e((e => {\n                                n ? n.push(e) : r.fire(e)\n                            }));\n                        const s = () => {\n                                n && n.forEach((e => r.fire(e))), n = null\n                            },\n                            r = new c({\n                                onFirstListenerAdd() {\n                                    o || (o = e((e => r.fire(e))))\n                                },\n                                onFirstListenerDidAdd() {\n                                    n && (t ? setTimeout(s) : s())\n                                },\n                                onLastListenerRemove() {\n                                    o && o.dispose(), o = null\n                                }\n                            });\n                        return r.event\n                    };\n                    class h {\n                        constructor(e) {\n                            this.event = e\n                        }\n                        map(e) {\n                            return new h(i(this.event, e))\n                        }\n                        forEach(e) {\n                            return new h(n(this.event, e))\n                        }\n                        filter(e) {\n                            return new h(o(this.event, e))\n                        }\n                        reduce(e, t) {\n                            return new h(r(this.event, e, t))\n                        }\n                        latch() {\n                            return new h(d(this.event))\n                        }\n                        debounce(e, t = 100, i = !1, n) {\n                            return new h(l(this.event, e, t, i, n))\n                        }\n                        on(e, t, i) {\n                            return this.event(e, t, i)\n                        }\n                        once(e, i, n) {\n                            return t(this.event)(e, i, n)\n                        }\n                    }\n                    e.chain = function(e) {\n                        return new h(e)\n                    }, e.fromNodeEventEmitter = function(e, t, i = (e => e)) {\n                        const n = (...e) => o.fire(i(...e)),\n                            o = new c({\n                                onFirstListenerAdd: () => e.on(t, n),\n                                onLastListenerRemove: () => e.removeListener(t, n)\n                            });\n                        return o.event\n                    }, e.fromDOMEventEmitter = function(e, t, i = (e => e)) {\n                        const n = (...e) => o.fire(i(...e)),\n                            o = new c({\n                                onFirstListenerAdd: () => e.addEventListener(t, n),\n                                onLastListenerRemove: () => e.removeEventListener(t, n)\n                            });\n                        return o.event\n                    }, e.toPromise = function(e) {\n                        return new Promise((i => t(e)(i)))\n                    }\n                }(n || (n = {}));\n                class l {\n                    constructor(e) {\n                        this._listenerCount = 0, this._invocationCount = 0, this._elapsedOverall = 0, this._name = `${e}_${l._idPool++}`\n                    }\n                    start(e) {\n                        this._stopWatch = new a.G(!0), this._listenerCount = e\n                    }\n                    stop() {\n                        if (this._stopWatch) {\n                            const e = this._stopWatch.elapsed();\n                            this._elapsedOverall += e, this._invocationCount += 1, console.info(`did FIRE ${this._name}: elapsed_ms: ${e.toFixed(5)}, listener: ${this._listenerCount} (elapsed_overall: ${this._elapsedOverall.toFixed(2)}, invocations: ${this._invocationCount})`), this._stopWatch = void 0\n                        }\n                    }\n                }\n                l._idPool = 0;\n                class c {\n                    constructor(e) {\n                        var t;\n                        this._disposed = !1, this._options = e, this._leakageMon = void 0, this._perfMon = (null === (t = this._options) || void 0 === t ? void 0 : t._profName) ? new l(this._options._profName) : void 0\n                    }\n                    get event() {\n                        return this._event || (this._event = (e, t, i) => {\n                            var n;\n                            this._listeners || (this._listeners = new r.S);\n                            const o = this._listeners.isEmpty();\n                            o && this._options && this._options.onFirstListenerAdd && this._options.onFirstListenerAdd(this);\n                            const a = this._listeners.push(t ? [e, t] : e);\n                            o && this._options && this._options.onFirstListenerDidAdd && this._options.onFirstListenerDidAdd(this), this._options && this._options.onListenerDidAdd && this._options.onListenerDidAdd(this, e, t);\n                            const l = null === (n = this._leakageMon) || void 0 === n ? void 0 : n.check(this._listeners.size),\n                                c = (0, s.OF)((() => {\n                                    if (l && l(), !this._disposed && (a(), this._options && this._options.onLastListenerRemove)) {\n                                        this._listeners && !this._listeners.isEmpty() || this._options.onLastListenerRemove(this)\n                                    }\n                                }));\n                            return i instanceof s.SL ? i.add(c) : Array.isArray(i) && i.push(c), c\n                        }), this._event\n                    }\n                    fire(e) {\n                        var t, i;\n                        if (this._listeners) {\n                            this._deliveryQueue || (this._deliveryQueue = new r.S);\n                            for (let t of this._listeners) this._deliveryQueue.push([t, e]);\n                            for (null === (t = this._perfMon) || void 0 === t || t.start(this._deliveryQueue.size); this._deliveryQueue.size > 0;) {\n                                const [e, t] = this._deliveryQueue.shift();\n                                try {\n                                    \"function\" == typeof e ? e.call(void 0, t) : e[0].call(e[1], t)\n                                } catch (e) {\n                                    (0, o.dL)(e)\n                                }\n                            }\n                            null === (i = this._perfMon) || void 0 === i || i.stop()\n                        }\n                    }\n                    dispose() {\n                        var e, t, i, n, o;\n                        this._disposed || (this._disposed = !0, null === (e = this._listeners) || void 0 === e || e.clear(), null === (t = this._deliveryQueue) || void 0 === t || t.clear(), null === (n = null === (i = this._options) || void 0 === i ? void 0 : i.onLastListenerRemove) || void 0 === n || n.call(i), null === (o = this._leakageMon) || void 0 === o || o.dispose())\n                    }\n                }\n                class d extends c {\n                    constructor(e) {\n                        super(e), this._isPaused = 0, this._eventQueue = new r.S, this._mergeFn = null == e ? void 0 : e.merge\n                    }\n                    pause() {\n                        this._isPaused++\n                    }\n                    resume() {\n                        if (0 !== this._isPaused && 0 == --this._isPaused)\n                            if (this._mergeFn) {\n                                const e = Array.from(this._eventQueue);\n                                this._eventQueue.clear(), super.fire(this._mergeFn(e))\n                            } else\n                                for (; !this._isPaused && 0 !== this._eventQueue.size;) super.fire(this._eventQueue.shift())\n                    }\n                    fire(e) {\n                        this._listeners && (0 !== this._isPaused ? this._eventQueue.push(e) : super.fire(e))\n                    }\n                }\n                class h extends d {\n                    constructor(e) {\n                        var t;\n                        super(e), this._delay = null !== (t = e.delay) && void 0 !== t ? t : 100\n                    }\n                    fire(e) {\n                        this._handle || (this.pause(), this._handle = setTimeout((() => {\n                            this._handle = void 0, this.resume()\n                        }), this._delay)), super.fire(e)\n                    }\n                }\n                class u {\n                    constructor() {\n                        this.buffers = []\n                    }\n                    wrapEvent(e) {\n                        return (t, i, n) => e((e => {\n                            const n = this.buffers[this.buffers.length - 1];\n                            n ? n.push((() => t.call(i, e))) : t.call(i, e)\n                        }), void 0, n)\n                    }\n                    bufferEvents(e) {\n                        const t = [];\n                        this.buffers.push(t);\n                        const i = e();\n                        return this.buffers.pop(), t.forEach((e => e())), i\n                    }\n                }\n                class g {\n                    constructor() {\n                        this.listening = !1, this.inputEvent = n.None, this.inputEventListener = s.JT.None, this.emitter = new c({\n                            onFirstListenerDidAdd: () => {\n                                this.listening = !0, this.inputEventListener = this.inputEvent(this.emitter.fire, this.emitter)\n                            },\n                            onLastListenerRemove: () => {\n                                this.listening = !1, this.inputEventListener.dispose()\n                            }\n                        }), this.event = this.emitter.event\n                    }\n                    set input(e) {\n                        this.inputEvent = e, this.listening && (this.inputEventListener.dispose(), this.inputEventListener = e(this.emitter.fire, this.emitter))\n                    }\n                    dispose() {\n                        this.inputEventListener.dispose(), this.emitter.dispose()\n                    }\n                }\n            },\n            15527: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    KM: () => a,\n                    fn: () => r,\n                    oP: () => c,\n                    vY: () => l\n                });\n                var n = i(88721),\n                    o = i(1432),\n                    s = i(97295);\n\n                function r(e) {\n                    return -1 === e.indexOf(\"/\") && (e = function(e) {\n                        return e.replace(/[\\\\/]/g, n.KR.sep)\n                    }(e)), /^[a-zA-Z]:(\\/|$)/.test(e) && (e = \"/\" + e), e\n                }\n\n                function a(e, t, i, o = n.ir) {\n                    if (e === t) return !0;\n                    if (!e || !t) return !1;\n                    if (t.length > e.length) return !1;\n                    if (i) {\n                        if (!(0, s.ok)(e, t)) return !1;\n                        if (t.length === e.length) return !0;\n                        let i = t.length;\n                        return t.charAt(t.length - 1) === o && i--, e.charAt(i) === o\n                    }\n                    return t.charAt(t.length - 1) !== o && (t += o), 0 === e.indexOf(t)\n                }\n\n                function l(e) {\n                    const t = (0, n.Fv)(e);\n                    return o.ED ? !(e.length > 3) && (c(t) && (2 === e.length || 92 === t.charCodeAt(2))) : t === n.KR.sep\n                }\n\n                function c(e) {\n                    return !!o.ED && (((t = e.charCodeAt(0)) >= 65 && t <= 90 || t >= 97 && t <= 122) && 58 === e.charCodeAt(1));\n                    var t\n                }\n            },\n            75392: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    CL: () => z,\n                    EW: () => j,\n                    Ji: () => r,\n                    KZ: () => w,\n                    Oh: () => L,\n                    ir: () => a,\n                    jB: () => N,\n                    l7: () => $,\n                    mB: () => D,\n                    or: () => s\n                });\n                var n = i(43702),\n                    o = i(97295);\n\n                function s(...e) {\n                    return function(t, i) {\n                        for (let n = 0, o = e.length; n < o; n++) {\n                            const o = e[n](t, i);\n                            if (o) return o\n                        }\n                        return null\n                    }\n                }\n                const r = function(e, t, i) {\n                    if (!i || i.length < t.length) return null;\n                    let n;\n                    n = e ? o.ok(i, t) : 0 === i.indexOf(t);\n                    if (!n) return null;\n                    return t.length > 0 ? [{\n                        start: 0,\n                        end: t.length\n                    }] : []\n                }.bind(void 0, !0);\n\n                function a(e, t) {\n                    const i = t.toLowerCase().indexOf(e.toLowerCase());\n                    return -1 === i ? null : [{\n                        start: i,\n                        end: i + e.length\n                    }]\n                }\n\n                function l(e, t, i, n) {\n                    if (i === e.length) return [];\n                    if (n === t.length) return null;\n                    if (e[i] === t[n]) {\n                        let o = null;\n                        return (o = l(e, t, i + 1, n + 1)) ? m({\n                            start: n,\n                            end: n + 1\n                        }, o) : null\n                    }\n                    return l(e, t, i, n + 1)\n                }\n\n                function c(e) {\n                    return 97 <= e && e <= 122\n                }\n\n                function d(e) {\n                    return 65 <= e && e <= 90\n                }\n\n                function h(e) {\n                    return 48 <= e && e <= 57\n                }\n\n                function u(e) {\n                    return 32 === e || 9 === e || 10 === e || 13 === e\n                }\n                const g = new Set;\n\n                function p(e) {\n                    return u(e) || g.has(e)\n                }\n\n                function f(e) {\n                    return c(e) || d(e) || h(e)\n                }\n\n                function m(e, t) {\n                    return 0 === t.length ? t = [e] : e.end === t[0].start ? t[0].start = e.start : t.unshift(e), t\n                }\n\n                function v(e, t) {\n                    for (let i = t; i < e.length; i++) {\n                        const t = e.charCodeAt(i);\n                        if (d(t) || h(t) || i > 0 && !f(e.charCodeAt(i - 1))) return i\n                    }\n                    return e.length\n                }\n\n                function _(e, t, i, n) {\n                    if (i === e.length) return [];\n                    if (n === t.length) return null;\n                    if (e[i] !== t[n].toLowerCase()) return null; {\n                        let o = null,\n                            s = n + 1;\n                        for (o = _(e, t, i + 1, n + 1); !o && (s = v(t, s)) < t.length;) o = _(e, t, i + 1, s), s++;\n                        return null === o ? null : m({\n                            start: n,\n                            end: n + 1\n                        }, o)\n                    }\n                }\n\n                function b(e, t) {\n                    if (!t) return null;\n                    if (0 === (t = t.trim()).length) return null;\n                    if (! function(e) {\n                            let t = 0,\n                                i = 0,\n                                n = 0,\n                                o = 0;\n                            for (let s = 0; s < e.length; s++) n = e.charCodeAt(s), d(n) && t++, c(n) && i++, u(n) && o++;\n                            return 0 !== t && 0 !== i || 0 !== o ? t <= 5 : e.length <= 30\n                        }(e)) return null;\n                    if (t.length > 60) return null;\n                    const i = function(e) {\n                        let t = 0,\n                            i = 0,\n                            n = 0,\n                            o = 0,\n                            s = 0;\n                        for (let r = 0; r < e.length; r++) s = e.charCodeAt(r), d(s) && t++, c(s) && i++, f(s) && n++, h(s) && o++;\n                        return {\n                            upperPercent: t / e.length,\n                            lowerPercent: i / e.length,\n                            alphaPercent: n / e.length,\n                            numericPercent: o / e.length\n                        }\n                    }(t);\n                    if (! function(e) {\n                            const {\n                                upperPercent: t,\n                                lowerPercent: i,\n                                alphaPercent: n,\n                                numericPercent: o\n                            } = e;\n                            return i > .2 && t < .8 && n > .6 && o < .2\n                        }(i)) {\n                        if (! function(e) {\n                                const {\n                                    upperPercent: t,\n                                    lowerPercent: i\n                                } = e;\n                                return 0 === i && t > .6\n                            }(i)) return null;\n                        t = t.toLowerCase()\n                    }\n                    let n = null,\n                        o = 0;\n                    for (e = e.toLowerCase(); o < t.length && null === (n = _(e, t, 0, o));) o = v(t, o + 1);\n                    return n\n                }\n\n                function w(e, t, i = !1) {\n                    if (!t || 0 === t.length) return null;\n                    let n = null,\n                        o = 0;\n                    for (e = e.toLowerCase(), t = t.toLowerCase(); o < t.length && null === (n = y(e, t, 0, o, i));) o = C(t, o + 1);\n                    return n\n                }\n\n                function y(e, t, i, n, o) {\n                    if (i === e.length) return [];\n                    if (n === t.length) return null;\n                    if (s = e.charCodeAt(i), r = t.charCodeAt(n), s === r || p(s) && p(r)) {\n                        let s = null,\n                            r = n + 1;\n                        if (s = y(e, t, i + 1, n + 1, o), !o)\n                            for (; !s && (r = C(t, r)) < t.length;) s = y(e, t, i + 1, r, o), r++;\n                        return null === s ? null : m({\n                            start: n,\n                            end: n + 1\n                        }, s)\n                    }\n                    return null;\n                    var s, r\n                }\n\n                function C(e, t) {\n                    for (let i = t; i < e.length; i++)\n                        if (p(e.charCodeAt(i)) || i > 0 && p(e.charCodeAt(i - 1))) return i;\n                    return e.length\n                }\n                \"`~!@#$%^&*()-=+[{]}\\\\|;:'\\\",.<>/?\".split(\"\").forEach((e => g.add(e.charCodeAt(0))));\n                const x = s(r, b, a),\n                    S = s(r, b, (function(e, t) {\n                        return l(e.toLowerCase(), t.toLowerCase(), 0, 0)\n                    })),\n                    k = new n.z6(1e4);\n\n                function L(e, t, i = !1) {\n                    if (\"string\" != typeof e || \"string\" != typeof t) return null;\n                    let n = k.get(e);\n                    n || (n = new RegExp(o.un(e), \"i\"), k.set(e, n));\n                    const s = n.exec(t);\n                    return s ? [{\n                        start: s.index,\n                        end: s.index + s[0].length\n                    }] : i ? S(e, t) : x(e, t)\n                }\n\n                function N(e, t, i, n, o, s) {\n                    const r = Math.min(13, e.length);\n                    for (; i < r; i++) {\n                        const r = j(e, t, i, n, o, s, !1);\n                        if (r) return r\n                    }\n                    return [0, s]\n                }\n\n                function D(e) {\n                    if (void 0 === e) return [];\n                    const t = [],\n                        i = e[1];\n                    for (let n = e.length - 1; n > 1; n--) {\n                        const o = e[n] + i,\n                            s = t[t.length - 1];\n                        s && s.end === o ? s.end = o + 1 : t.push({\n                            start: o,\n                            end: o + 1\n                        })\n                    }\n                    return t\n                }\n                const I = 128;\n\n                function E() {\n                    const e = [],\n                        t = [];\n                    for (let e = 0; e <= I; e++) t[e] = 0;\n                    for (let i = 0; i <= I; i++) e.push(t.slice(0));\n                    return e\n                }\n\n                function T(e) {\n                    const t = [];\n                    for (let i = 0; i <= e; i++) t[i] = 0;\n                    return t\n                }\n                const M = T(2 * I),\n                    A = T(2 * I),\n                    O = E(),\n                    P = E(),\n                    R = E(),\n                    F = !1;\n\n                function B(e, t, i, n, o) {\n                    function s(e, t, i = \" \") {\n                        for (; e.length < t;) e = i + e;\n                        return e\n                    }\n                    let r = ` |   |${n.split(\"\").map((e=>s(e,3))).join(\"|\")}\\n`;\n                    for (let n = 0; n <= i; n++) r += 0 === n ? \" |\" : `${t[n-1]}|`, r += e[n].slice(0, o + 1).map((e => s(e.toString(), 3))).join(\"|\") + \"\\n\";\n                    return r\n                }\n\n                function V(e, t) {\n                    if (t < 0 || t >= e.length) return !1;\n                    const i = e.codePointAt(t);\n                    switch (i) {\n                        case 95:\n                        case 45:\n                        case 46:\n                        case 32:\n                        case 47:\n                        case 92:\n                        case 39:\n                        case 34:\n                        case 58:\n                        case 36:\n                        case 60:\n                        case 40:\n                        case 91:\n                            return !0;\n                        case void 0:\n                            return !1;\n                        default:\n                            return !!o.C8(i)\n                    }\n                }\n\n                function W(e, t) {\n                    if (t < 0 || t >= e.length) return !1;\n                    switch (e.charCodeAt(t)) {\n                        case 32:\n                        case 9:\n                            return !0;\n                        default:\n                            return !1\n                    }\n                }\n\n                function H(e, t, i) {\n                    return t[e] !== i[e]\n                }\n                var z;\n\n                function j(e, t, i, n, o, s, r) {\n                    const a = e.length > I ? I : e.length,\n                        l = n.length > I ? I : n.length;\n                    if (i >= a || s >= l || a - i > l - s) return;\n                    if (! function(e, t, i, n, o, s, r = !1) {\n                            for (; t < i && o < s;) e[t] === n[o] && (r && (M[t] = o), t += 1), o += 1;\n                            return t === i\n                        }(t, i, a, o, s, l, !0)) return;\n                    ! function(e, t, i, n, o, s) {\n                        let r = e - 1,\n                            a = t - 1;\n                        for (; r >= i && a >= n;) o[r] === s[a] && (A[r] = a, r--), a--\n                    }(a, l, i, s, t, o);\n                    let c = 1,\n                        d = 1,\n                        h = i,\n                        u = s;\n                    const g = [!1];\n                    for (c = 1, h = i; h < a; c++, h++) {\n                        const r = M[h],\n                            p = A[h],\n                            f = h + 1 < a ? A[h + 1] : l;\n                        for (d = r - s + 1, u = r; u < f; d++, u++) {\n                            let a = Number.MIN_SAFE_INTEGER,\n                                f = !1;\n                            u <= p && (a = U(e, t, h, i, n, o, u, l, s, 0 === O[c - 1][d - 1], g));\n                            let m = 0;\n                            a !== Number.MAX_SAFE_INTEGER && (f = !0, m = a + P[c - 1][d - 1]);\n                            const v = u > r,\n                                _ = v ? P[c][d - 1] + (O[c][d - 1] > 0 ? -5 : 0) : 0,\n                                b = u > r + 1 && O[c][d - 1] > 0,\n                                w = b ? P[c][d - 2] + (O[c][d - 2] > 0 ? -5 : 0) : 0;\n                            if (b && (!v || w >= _) && (!f || w >= m)) P[c][d] = w, R[c][d] = 3, O[c][d] = 0;\n                            else if (v && (!f || _ >= m)) P[c][d] = _, R[c][d] = 2, O[c][d] = 0;\n                            else {\n                                if (!f) throw new Error(\"not possible\");\n                                P[c][d] = m, R[c][d] = 1, O[c][d] = O[c - 1][d - 1] + 1\n                            }\n                        }\n                    }\n                    if (F && function(e, t, i, n) {\n                            e = e.substr(t), i = i.substr(n), console.log(B(P, e, e.length, i, i.length)), console.log(B(R, e, e.length, i, i.length)), console.log(B(O, e, e.length, i, i.length))\n                        }(e, i, n, s), !g[0] && !r) return;\n                    c--, d--;\n                    const p = [P[c][d], s];\n                    let f = 0,\n                        m = 0;\n                    for (; c >= 1;) {\n                        let e = d;\n                        do {\n                            const t = R[c][e];\n                            if (3 === t) e -= 2;\n                            else {\n                                if (2 !== t) break;\n                                e -= 1\n                            }\n                        } while (e >= 1);\n                        f > 1 && t[i + c - 1] === o[s + d - 1] && !H(e + s - 1, n, o) && f + 1 > O[c][e] && (e = d), e === d ? f++ : f = 1, m || (m = e), c--, d = e - 1, p.push(d)\n                    }\n                    l === a && (p[0] += 2);\n                    const v = m - a;\n                    return p[0] -= v, p\n                }\n\n                function U(e, t, i, n, o, s, r, a, l, c, d) {\n                    if (t[i] !== s[r]) return Number.MIN_SAFE_INTEGER;\n                    let h = 1,\n                        u = !1;\n                    return r === i - n ? h = e[i] === o[r] ? 7 : 5 : !H(r, o, s) || 0 !== r && H(r - 1, o, s) ? !V(s, r) || 0 !== r && V(s, r - 1) ? (V(s, r - 1) || W(s, r - 1)) && (h = 5, u = !0) : h = 5 : (h = e[i] === o[r] ? 7 : 5, u = !0), h > 1 && i === n && (d[0] = !0), u || (u = H(r, o, s) || V(s, r - 1) || W(s, r - 1)), i === n ? r > l && (h -= u ? 3 : 5) : h += c ? u ? 2 : 0 : u ? 0 : 1, r + 1 === a && (h -= u ? 3 : 5), h\n                }\n\n                function $(e, t, i, n, o, s, r) {\n                    return function(e, t, i, n, o, s, r, a) {\n                        let l = j(e, t, i, n, o, s, a);\n                        if (l && !r) return l;\n                        if (e.length >= 3) {\n                            const t = Math.min(7, e.length - 1);\n                            for (let r = i + 1; r < t; r++) {\n                                const t = K(e, r);\n                                if (t) {\n                                    const e = j(t, t.toLowerCase(), i, n, o, s, a);\n                                    e && (e[0] -= 3, (!l || e[0] > l[0]) && (l = e))\n                                }\n                            }\n                        }\n                        return l\n                    }(e, t, i, n, o, s, !0, r)\n                }\n\n                function K(e, t) {\n                    if (t + 1 >= e.length) return;\n                    const i = e[t],\n                        n = e[t + 1];\n                    return i !== n ? e.slice(0, t) + n + i + e.slice(t + 2) : void 0\n                }! function(e) {\n                    e.Default = [-100, 0], e.isDefault = function(e) {\n                        return !e || 2 === e.length && -100 === e[0] && 0 === e[1]\n                    }\n                }(z || (z = {}))\n            },\n            88289: (e, t, i) => {\n                \"use strict\";\n\n                function n(e) {\n                    const t = this;\n                    let i, n = !1;\n                    return function() {\n                        return n || (n = !0, i = e.apply(t, arguments)), i\n                    }\n                }\n                i.d(t, {\n                    I: () => n\n                })\n            },\n            14118: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    EQ: () => I,\n                    Qc: () => E\n                });\n                var n = i(15393),\n                    o = i(15527),\n                    s = i(43702),\n                    r = i(88721),\n                    a = i(97295);\n                const l = \"**\",\n                    c = \"/\",\n                    d = \"[/\\\\\\\\]\",\n                    h = \"[^/\\\\\\\\]\",\n                    u = /\\//g;\n\n                function g(e) {\n                    switch (e) {\n                        case 0:\n                            return \"\";\n                        case 1:\n                            return `${h}*?`;\n                        default:\n                            return `(?:${d}|${h}+${d}|${d}${h}+)*?`\n                    }\n                }\n\n                function p(e, t) {\n                    if (!e) return [];\n                    const i = [];\n                    let n = !1,\n                        o = !1,\n                        s = \"\";\n                    for (const r of e) {\n                        switch (r) {\n                            case t:\n                                if (!n && !o) {\n                                    i.push(s), s = \"\";\n                                    continue\n                                }\n                                break;\n                            case \"{\":\n                                n = !0;\n                                break;\n                            case \"}\":\n                                n = !1;\n                                break;\n                            case \"[\":\n                                o = !0;\n                                break;\n                            case \"]\":\n                                o = !1\n                        }\n                        s += r\n                    }\n                    return s && i.push(s), i\n                }\n\n                function f(e) {\n                    if (!e) return \"\";\n                    let t = \"\";\n                    const i = p(e, c);\n                    if (i.every((e => e === l))) t = \".*\";\n                    else {\n                        let e = !1;\n                        i.forEach(((n, o) => {\n                            if (n === l) return void(e || (t += g(2), e = !0));\n                            let s = !1,\n                                r = \"\",\n                                u = !1,\n                                m = \"\";\n                            for (const e of n)\n                                if (\"}\" !== e && s) r += e;\n                                else if (!u || \"]\" === e && m) switch (e) {\n                                case \"{\":\n                                    s = !0;\n                                    continue;\n                                case \"[\":\n                                    u = !0;\n                                    continue;\n                                case \"}\":\n                                    const i = `(?:${p(r,\",\").map((e=>f(e))).join(\"|\")})`;\n                                    t += i, s = !1, r = \"\";\n                                    break;\n                                case \"]\":\n                                    t += \"[\" + m + \"]\", u = !1, m = \"\";\n                                    break;\n                                case \"?\":\n                                    t += h;\n                                    continue;\n                                case \"*\":\n                                    t += g(1);\n                                    continue;\n                                default:\n                                    t += a.ec(e)\n                            } else {\n                                let t;\n                                t = \"-\" === e ? e : \"^\" !== e && \"!\" !== e || m ? e === c ? \"\" : a.ec(e) : \"^\", m += t\n                            }\n                            o < i.length - 1 && (i[o + 1] !== l || o + 2 < i.length) && (t += d), e = !1\n                        }))\n                    }\n                    return t\n                }\n                const m = /^\\*\\*\\/\\*\\.[\\w\\.-]+$/,\n                    v = /^\\*\\*\\/([\\w\\.-]+)\\/?$/,\n                    _ = /^{\\*\\*\\/[\\*\\.]?[\\w\\.-]+\\/?(,\\*\\*\\/[\\*\\.]?[\\w\\.-]+\\/?)*}$/,\n                    b = /^{\\*\\*\\/[\\*\\.]?[\\w\\.-]+(\\/(\\*\\*)?)?(,\\*\\*\\/[\\*\\.]?[\\w\\.-]+(\\/(\\*\\*)?)?)*}$/,\n                    w = /^\\*\\*((\\/[\\w\\.-]+)+)\\/?$/,\n                    y = /^([\\w\\.-]+(\\/[\\w\\.-]+)*)\\/?$/,\n                    C = new s.z6(1e4),\n                    x = function() {\n                        return !1\n                    },\n                    S = function() {\n                        return null\n                    };\n\n                function k(e, t) {\n                    if (!e) return S;\n                    let i;\n                    i = \"string\" != typeof e ? e.pattern : e, i = i.trim();\n                    const n = `${i}_${!!t.trimForExclusions}`;\n                    let o, s = C.get(n);\n                    if (s) return L(s, e);\n                    if (m.test(i)) {\n                        const e = i.substr(4);\n                        s = function(t, n) {\n                            return \"string\" == typeof t && t.endsWith(e) ? i : null\n                        }\n                    } else s = (o = v.exec(N(i, t))) ? function(e, t) {\n                        const i = `/${e}`,\n                            n = `\\\\${e}`,\n                            o = function(o, s) {\n                                return \"string\" != typeof o ? null : s ? s === e ? t : null : o === e || o.endsWith(i) || o.endsWith(n) ? t : null\n                            },\n                            s = [e];\n                        return o.basenames = s, o.patterns = [t], o.allBasenames = s, o\n                    }(o[1], i) : (t.trimForExclusions ? b : _).test(i) ? function(e, t) {\n                        const i = T(e.slice(1, -1).split(\",\").map((e => k(e, t))).filter((e => e !== S)), e),\n                            n = i.length;\n                        if (!n) return S;\n                        if (1 === n) return i[0];\n                        const o = function(t, n) {\n                                for (let o = 0, s = i.length; o < s; o++)\n                                    if (i[o](t, n)) return e;\n                                return null\n                            },\n                            s = i.find((e => !!e.allBasenames));\n                        s && (o.allBasenames = s.allBasenames);\n                        const r = i.reduce(((e, t) => t.allPaths ? e.concat(t.allPaths) : e), []);\n                        r.length && (o.allPaths = r);\n                        return o\n                    }(i, t) : (o = w.exec(N(i, t))) ? D(o[1].substr(1), i, !0) : (o = y.exec(N(i, t))) ? D(o[1], i, !1) : function(e) {\n                        try {\n                            const t = new RegExp(`^${f(e)}$`);\n                            return function(i) {\n                                return t.lastIndex = 0, \"string\" == typeof i && t.test(i) ? e : null\n                            }\n                        } catch (e) {\n                            return S\n                        }\n                    }(i);\n                    return C.set(n, s), L(s, e)\n                }\n\n                function L(e, t) {\n                    return \"string\" == typeof t ? e : function(i, n) {\n                        return o.KM(i, t.base) ? e(r.Gf(t.base, i), n) : null\n                    }\n                }\n\n                function N(e, t) {\n                    return t.trimForExclusions && e.endsWith(\"/**\") ? e.substr(0, e.length - 2) : e\n                }\n\n                function D(e, t, i) {\n                    const n = r.ir === r.KR.sep,\n                        o = n ? e : e.replace(u, r.ir),\n                        s = r.ir + o,\n                        a = r.KR.sep + e,\n                        l = i ? function(i, r) {\n                            return \"string\" != typeof i || i !== o && !i.endsWith(s) && (n || i !== e && !i.endsWith(a)) ? null : t\n                        } : function(i, s) {\n                            return \"string\" != typeof i || i !== o && (n || i !== e) ? null : t\n                        };\n                    return l.allPaths = [(i ? \"*/\" : \"./\") + e], l\n                }\n\n                function I(e, t, i) {\n                    return !(!e || \"string\" != typeof t) && E(e)(t, void 0, i)\n                }\n\n                function E(e, t = {}) {\n                    if (!e) return x;\n                    if (\"string\" == typeof e || function(e) {\n                            const t = e;\n                            return t && \"string\" == typeof t.base && \"string\" == typeof t.pattern\n                        }(e)) {\n                        const i = k(e, t);\n                        if (i === S) return x;\n                        const n = function(e, t) {\n                            return !!i(e, t)\n                        };\n                        return i.allBasenames && (n.allBasenames = i.allBasenames), i.allPaths && (n.allPaths = i.allPaths), n\n                    }\n                    return function(e, t) {\n                        const i = T(Object.getOwnPropertyNames(e).map((i => function(e, t, i) {\n                                if (!1 === t) return S;\n                                const o = k(e, i);\n                                if (o === S) return S;\n                                if (\"boolean\" == typeof t) return o;\n                                if (t) {\n                                    const i = t.when;\n                                    if (\"string\" == typeof i) {\n                                        const t = (t, s, r, a) => {\n                                            if (!a || !o(t, s)) return null;\n                                            const l = a(i.replace(\"$(basename)\", r));\n                                            return (0, n.J8)(l) ? l.then((t => t ? e : null)) : l ? e : null\n                                        };\n                                        return t.requiresSiblings = !0, t\n                                    }\n                                }\n                                return o\n                            }(i, e[i], t))).filter((e => e !== S))),\n                            o = i.length;\n                        if (!o) return S;\n                        if (!i.some((e => !!e.requiresSiblings))) {\n                            if (1 === o) return i[0];\n                            const e = function(e, t) {\n                                    for (let n = 0, o = i.length; n < o; n++) {\n                                        const o = i[n](e, t);\n                                        if (o) return o\n                                    }\n                                    return null\n                                },\n                                t = i.find((e => !!e.allBasenames));\n                            t && (e.allBasenames = t.allBasenames);\n                            const n = i.reduce(((e, t) => t.allPaths ? e.concat(t.allPaths) : e), []);\n                            return n.length && (e.allPaths = n), e\n                        }\n                        const s = function(e, t, n) {\n                                let o;\n                                for (let s = 0, a = i.length; s < a; s++) {\n                                    const a = i[s];\n                                    a.requiresSiblings && n && (t || (t = r.EZ(e)), o || (o = t.substr(0, t.length - r.DZ(e).length)));\n                                    const l = a(e, t, o, n);\n                                    if (l) return l\n                                }\n                                return null\n                            },\n                            a = i.find((e => !!e.allBasenames));\n                        a && (s.allBasenames = a.allBasenames);\n                        const l = i.reduce(((e, t) => t.allPaths ? e.concat(t.allPaths) : e), []);\n                        l.length && (s.allPaths = l);\n                        return s\n                    }(e, t)\n                }\n\n                function T(e, t) {\n                    const i = e.filter((e => !!e.basenames));\n                    if (i.length < 2) return e;\n                    const n = i.reduce(((e, t) => {\n                        const i = t.basenames;\n                        return i ? e.concat(i) : e\n                    }), []);\n                    let o;\n                    if (t) {\n                        o = [];\n                        for (let e = 0, i = n.length; e < i; e++) o.push(t)\n                    } else o = i.reduce(((e, t) => {\n                        const i = t.patterns;\n                        return i ? e.concat(i) : e\n                    }), []);\n                    const s = function(e, t) {\n                        if (\"string\" != typeof e) return null;\n                        if (!t) {\n                            let i;\n                            for (i = e.length; i > 0; i--) {\n                                const t = e.charCodeAt(i - 1);\n                                if (47 === t || 92 === t) break\n                            }\n                            t = e.substr(i)\n                        }\n                        const i = n.indexOf(t);\n                        return -1 !== i ? o[i] : null\n                    };\n                    s.basenames = n, s.patterns = o, s.allBasenames = n;\n                    const r = e.filter((e => !e.basenames));\n                    return r.push(s), r\n                }\n            },\n            89954: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    Cv: () => a,\n                    SP: () => s,\n                    vp: () => o,\n                    yP: () => h\n                });\n                var n = i(97295);\n\n                function o(e) {\n                    return s(e, 0)\n                }\n\n                function s(e, t) {\n                    switch (typeof e) {\n                        case \"object\":\n                            return null === e ? r(349, t) : Array.isArray(e) ? (i = e, n = r(104579, n = t), i.reduce(((e, t) => s(t, e)), n)) : function(e, t) {\n                                return t = r(181387, t), Object.keys(e).sort().reduce(((t, i) => (t = a(i, t), s(e[i], t))), t)\n                            }(e, t);\n                        case \"string\":\n                            return a(e, t);\n                        case \"boolean\":\n                            return function(e, t) {\n                                return r(e ? 433 : 863, t)\n                            }(e, t);\n                        case \"number\":\n                            return r(e, t);\n                        case \"undefined\":\n                            return r(937, t);\n                        default:\n                            return r(617, t)\n                    }\n                    var i, n\n                }\n\n                function r(e, t) {\n                    return (t << 5) - t + e | 0\n                }\n\n                function a(e, t) {\n                    t = r(149417, t);\n                    for (let i = 0, n = e.length; i < n; i++) t = r(e.charCodeAt(i), t);\n                    return t\n                }\n\n                function l(e, t, i = 32) {\n                    const n = i - t;\n                    return (e << t | (~((1 << n) - 1) & e) >>> n) >>> 0\n                }\n\n                function c(e, t = 0, i = e.byteLength, n = 0) {\n                    for (let o = 0; o < i; o++) e[t + o] = n\n                }\n\n                function d(e, t = 32) {\n                    return e instanceof ArrayBuffer ? Array.from(new Uint8Array(e)).map((e => e.toString(16).padStart(2, \"0\"))).join(\"\") : function(e, t, i = \"0\") {\n                        for (; e.length < t;) e = i + e;\n                        return e\n                    }((e >>> 0).toString(16), t / 4)\n                }\n                class h {\n                    constructor() {\n                        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\n                    }\n                    update(e) {\n                        const t = e.length;\n                        if (0 === t) return;\n                        const i = this._buff;\n                        let o, s, r = this._buffLen,\n                            a = this._leftoverHighSurrogate;\n                        for (0 !== a ? (o = a, s = -1, a = 0) : (o = e.charCodeAt(0), s = 0);;) {\n                            let l = o;\n                            if (n.ZG(o)) {\n                                if (!(s + 1 < t)) {\n                                    a = o;\n                                    break\n                                } {\n                                    const t = e.charCodeAt(s + 1);\n                                    n.YK(t) ? (s++, l = n.rL(o, t)) : l = 65533\n                                }\n                            } else n.YK(o) && (l = 65533);\n                            if (r = this._push(i, r, l), s++, !(s < t)) break;\n                            o = e.charCodeAt(s)\n                        }\n                        this._buffLen = r, this._leftoverHighSurrogate = a\n                    }\n                    _push(e, t, i) {\n                        return i < 128 ? e[t++] = i : i < 2048 ? (e[t++] = 192 | (1984 & i) >>> 6, e[t++] = 128 | (63 & i) >>> 0) : i < 65536 ? (e[t++] = 224 | (61440 & i) >>> 12, e[t++] = 128 | (4032 & i) >>> 6, e[t++] = 128 | (63 & i) >>> 0) : (e[t++] = 240 | (1835008 & i) >>> 18, e[t++] = 128 | (258048 & i) >>> 12, e[t++] = 128 | (4032 & i) >>> 6, e[t++] = 128 | (63 & i) >>> 0), t >= 64 && (this._step(), t -= 64, this._totalLen += 64, e[0] = e[64], e[1] = e[65], e[2] = e[66]), t\n                    }\n                    digest() {\n                        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()), d(this._h0) + d(this._h1) + d(this._h2) + d(this._h3) + d(this._h4)\n                    }\n                    _wrapUp() {\n                        this._buff[this._buffLen++] = 128, c(this._buff, this._buffLen), this._buffLen > 56 && (this._step(), c(this._buff));\n                        const e = 8 * this._totalLen;\n                        this._buffDV.setUint32(56, Math.floor(e / 4294967296), !1), this._buffDV.setUint32(60, e % 4294967296, !1), this._step()\n                    }\n                    _step() {\n                        const e = h._bigBlock32,\n                            t = this._buffDV;\n                        for (let i = 0; i < 64; i += 4) e.setUint32(i, t.getUint32(i, !1), !1);\n                        for (let t = 64; t < 320; t += 4) e.setUint32(t, l(e.getUint32(t - 12, !1) ^ e.getUint32(t - 32, !1) ^ e.getUint32(t - 56, !1) ^ e.getUint32(t - 64, !1), 1), !1);\n                        let i, n, o, s = this._h0,\n                            r = this._h1,\n                            a = this._h2,\n                            c = this._h3,\n                            d = this._h4;\n                        for (let t = 0; t < 80; t++) t < 20 ? (i = r & a | ~r & c, n = 1518500249) : t < 40 ? (i = r ^ a ^ c, n = 1859775393) : t < 60 ? (i = r & a | r & c | a & c, n = 2400959708) : (i = r ^ a ^ c, n = 3395469782), o = l(s, 5) + i + d + n + e.getUint32(4 * t, !1) & 4294967295, d = c, c = a, a = l(r, 30), r = s, s = o;\n                        this._h0 = this._h0 + s & 4294967295, this._h1 = this._h1 + r & 4294967295, this._h2 = this._h2 + a & 4294967295, this._h3 = this._h3 + c & 4294967295, this._h4 = this._h4 + d & 4294967295\n                    }\n                }\n                h._bigBlock32 = new DataView(new ArrayBuffer(320))\n            },\n            59365: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    CP: () => r,\n                    Fr: () => a,\n                    W5: () => s,\n                    oR: () => l,\n                    v1: () => c\n                });\n                var n = i(17301),\n                    o = i(21212);\n                class s {\n                    constructor(e = \"\", t = !1) {\n                        var i, o, s;\n                        if (this.value = e, \"string\" != typeof this.value) throw (0, n.b1)(\"value\");\n                        \"boolean\" == typeof t ? (this.isTrusted = t, this.supportThemeIcons = !1, this.supportHtml = !1) : (this.isTrusted = null !== (i = t.isTrusted) && void 0 !== i ? i : void 0, this.supportThemeIcons = null !== (o = t.supportThemeIcons) && void 0 !== o && o, this.supportHtml = null !== (s = t.supportHtml) && void 0 !== s && s)\n                    }\n                    appendText(e, t = 0) {\n                        var i;\n                        return this.value += (i = this.supportThemeIcons ? (0, o.Qo)(e) : e, i.replace(/[\\\\`*_{}[\\]()#+\\-!]/g, \"\\\\$&\")).replace(/([ \\t]+)/g, ((e, t) => \"&nbsp;\".repeat(t.length))).replace(/\\>/gm, \"\\\\>\").replace(/\\n/g, 1 === t ? \"\\\\\\n\" : \"\\n\\n\"), this\n                    }\n                    appendMarkdown(e) {\n                        return this.value += e, this\n                    }\n                    appendCodeblock(e, t) {\n                        return this.value += \"\\n```\", this.value += e, this.value += \"\\n\", this.value += t, this.value += \"\\n```\\n\", this\n                    }\n                }\n\n                function r(e) {\n                    return a(e) ? !e.value : !Array.isArray(e) || e.every(r)\n                }\n\n                function a(e) {\n                    return e instanceof s || !(!e || \"object\" != typeof e) && !(\"string\" != typeof e.value || \"boolean\" != typeof e.isTrusted && void 0 !== e.isTrusted || \"boolean\" != typeof e.supportThemeIcons && void 0 !== e.supportThemeIcons)\n                }\n\n                function l(e) {\n                    return e ? e.replace(/\\\\([\\\\`*_{}[\\]()#+\\-.!])/g, \"$1\") : e\n                }\n\n                function c(e) {\n                    const t = [],\n                        i = e.split(\"|\").map((e => e.trim()));\n                    e = i[0];\n                    const n = i[1];\n                    if (n) {\n                        const e = /height=(\\d+)/.exec(n),\n                            i = /width=(\\d+)/.exec(n),\n                            o = e ? e[1] : \"\",\n                            s = i ? i[1] : \"\",\n                            r = isFinite(parseInt(s)),\n                            a = isFinite(parseInt(o));\n                        r && t.push(`width=\"${s}\"`), a && t.push(`height=\"${o}\"`)\n                    }\n                    return {\n                        href: e,\n                        dimensions: t\n                    }\n                }\n            },\n            21212: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    Gt: () => f,\n                    Ho: () => p,\n                    Qo: () => c,\n                    f$: () => h,\n                    x$: () => g\n                });\n                var n = i(73046),\n                    o = i(75392),\n                    s = i(97295);\n                const r = \"$(\",\n                    a = new RegExp(`\\\\$\\\\(${n.dT.iconNameExpression}(?:${n.dT.iconModifierExpression})?\\\\)`, \"g\"),\n                    l = new RegExp(`(\\\\\\\\)?${a.source}`, \"g\");\n\n                function c(e) {\n                    return e.replace(l, ((e, t) => t ? e : `\\\\${e}`))\n                }\n                const d = new RegExp(`\\\\\\\\${a.source}`, \"g\");\n\n                function h(e) {\n                    return e.replace(d, (e => `\\\\${e}`))\n                }\n                const u = new RegExp(`(\\\\s)?(\\\\\\\\)?${a.source}(\\\\s)?`, \"g\");\n\n                function g(e) {\n                    return -1 === e.indexOf(r) ? e : e.replace(u, ((e, t, i, n) => i ? e : t || n || \"\"))\n                }\n\n                function p(e) {\n                    const t = e.indexOf(r);\n                    return -1 === t ? {\n                        text: e\n                    } : function(e, t) {\n                        const i = [];\n                        let n = \"\";\n\n                        function o(e) {\n                            if (e) {\n                                n += e;\n                                for (const t of e) i.push(d)\n                            }\n                        }\n                        let s, a, l = -1,\n                            c = \"\",\n                            d = 0,\n                            h = t;\n                        const u = e.length;\n                        o(e.substr(0, t));\n                        for (; h < u;) {\n                            if (s = e[h], a = e[h + 1], s === r[0] && a === r[1]) l = h, o(c), c = r, h++;\n                            else if (\")\" === s && -1 !== l) {\n                                d += h - l + 1, l = -1, c = \"\"\n                            } else -1 !== l ? /^[a-z0-9\\-]$/i.test(s) ? c += s : (o(c), l = -1, c = \"\") : o(s);\n                            h++\n                        }\n                        return o(c), {\n                            text: n,\n                            iconOffsets: i\n                        }\n                    }(e, t)\n                }\n\n                function f(e, t, i = !1) {\n                    const {\n                        text: n,\n                        iconOffsets: r\n                    } = t;\n                    if (!r || 0 === r.length) return (0, o.Oh)(e, n, i);\n                    const a = (0, s.j3)(n, \" \"),\n                        l = n.length - a.length,\n                        c = (0, o.Oh)(e, a, i);\n                    if (c)\n                        for (const e of c) {\n                            const t = r[e.start + l] + l;\n                            e.start += t, e.end += t\n                        }\n                    return c\n                }\n            },\n            44742: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    R: () => n,\n                    a: () => o\n                });\n                class n {\n                    constructor(e) {\n                        this._prefix = e, this._lastId = 0\n                    }\n                    nextId() {\n                        return this._prefix + ++this._lastId\n                    }\n                }\n                const o = new n(\"id#\")\n            },\n            53725: (e, t, i) => {\n                \"use strict\";\n                var n;\n                i.d(t, {\n                        $: () => n\n                    }),\n                    function(e) {\n                        e.is = function(e) {\n                            return e && \"object\" == typeof e && \"function\" == typeof e[Symbol.iterator]\n                        };\n                        const t = Object.freeze([]);\n                        e.empty = function() {\n                            return t\n                        }, e.single = function*(e) {\n                            yield e\n                        }, e.from = function(e) {\n                            return e || t\n                        }, e.isEmpty = function(e) {\n                            return !e || !0 === e[Symbol.iterator]().next().done\n                        }, e.first = function(e) {\n                            return e[Symbol.iterator]().next().value\n                        }, e.some = function(e, t) {\n                            for (const i of e)\n                                if (t(i)) return !0;\n                            return !1\n                        }, e.find = function(e, t) {\n                            for (const i of e)\n                                if (t(i)) return i\n                        }, e.filter = function*(e, t) {\n                            for (const i of e) t(i) && (yield i)\n                        }, e.map = function*(e, t) {\n                            let i = 0;\n                            for (const n of e) yield t(n, i++)\n                        }, e.concat = function*(...e) {\n                            for (const t of e)\n                                for (const e of t) yield e\n                        }, e.concatNested = function*(e) {\n                            for (const t of e)\n                                for (const e of t) yield e\n                        }, e.reduce = function(e, t, i) {\n                            let n = i;\n                            for (const i of e) n = t(n, i);\n                            return n\n                        }, e.slice = function*(e, t, i = e.length) {\n                            for (t < 0 && (t += e.length), i < 0 ? i += e.length : i > e.length && (i = e.length); t < i; t++) yield e[t]\n                        }, e.consume = function(t, i = Number.POSITIVE_INFINITY) {\n                            const n = [];\n                            if (0 === i) return [n, t];\n                            const o = t[Symbol.iterator]();\n                            for (let t = 0; t < i; t++) {\n                                const t = o.next();\n                                if (t.done) return [n, e.empty()];\n                                n.push(t.value)\n                            }\n                            return [n, {\n                                [Symbol.iterator]: () => o\n                            }]\n                        }, e.equals = function(e, t, i = ((e, t) => e === t)) {\n                            const n = e[Symbol.iterator](),\n                                o = t[Symbol.iterator]();\n                            for (;;) {\n                                const e = n.next(),\n                                    t = o.next();\n                                if (e.done !== t.done) return !1;\n                                if (e.done) return !0;\n                                if (!i(e.value, t.value)) return !1\n                            }\n                        }\n                    }(n || (n = {}))\n            },\n            22258: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    H_: () => a,\n                    Vd: () => u,\n                    gx: () => f,\n                    kL: () => p\n                });\n                class n {\n                    constructor() {\n                        this._keyCodeToStr = [], this._strToKeyCode = Object.create(null)\n                    }\n                    define(e, t) {\n                        this._keyCodeToStr[e] = t, this._strToKeyCode[t.toLowerCase()] = e\n                    }\n                    keyCodeToStr(e) {\n                        return this._keyCodeToStr[e]\n                    }\n                    strToKeyCode(e) {\n                        return this._strToKeyCode[e.toLowerCase()] || 0\n                    }\n                }\n                const o = new n,\n                    s = new n,\n                    r = new n,\n                    a = new Array(230),\n                    l = {},\n                    c = [],\n                    d = Object.create(null),\n                    h = Object.create(null),\n                    u = [],\n                    g = [];\n                for (let e = 0; e <= 193; e++) u[e] = -1;\n                for (let e = 0; e <= 126; e++) g[e] = -1;\n                var p;\n\n                function f(e, t) {\n                    return (e | (65535 & t) << 16 >>> 0) >>> 0\n                }! function() {\n                    const e = \"\",\n                        t = [\n                            [0, 1, 0, \"None\", 0, \"unknown\", 0, \"VK_UNKNOWN\", e, e],\n                            [0, 1, 1, \"Hyper\", 0, e, 0, e, e, e],\n                            [0, 1, 2, \"Super\", 0, e, 0, e, e, e],\n                            [0, 1, 3, \"Fn\", 0, e, 0, e, e, e],\n                            [0, 1, 4, \"FnLock\", 0, e, 0, e, e, e],\n                            [0, 1, 5, \"Suspend\", 0, e, 0, e, e, e],\n                            [0, 1, 6, \"Resume\", 0, e, 0, e, e, e],\n                            [0, 1, 7, \"Turbo\", 0, e, 0, e, e, e],\n                            [0, 1, 8, \"Sleep\", 0, e, 0, \"VK_SLEEP\", e, e],\n                            [0, 1, 9, \"WakeUp\", 0, e, 0, e, e, e],\n                            [31, 0, 10, \"KeyA\", 31, \"A\", 65, \"VK_A\", e, e],\n                            [32, 0, 11, \"KeyB\", 32, \"B\", 66, \"VK_B\", e, e],\n                            [33, 0, 12, \"KeyC\", 33, \"C\", 67, \"VK_C\", e, e],\n                            [34, 0, 13, \"KeyD\", 34, \"D\", 68, \"VK_D\", e, e],\n                            [35, 0, 14, \"KeyE\", 35, \"E\", 69, \"VK_E\", e, e],\n                            [36, 0, 15, \"KeyF\", 36, \"F\", 70, \"VK_F\", e, e],\n                            [37, 0, 16, \"KeyG\", 37, \"G\", 71, \"VK_G\", e, e],\n                            [38, 0, 17, \"KeyH\", 38, \"H\", 72, \"VK_H\", e, e],\n                            [39, 0, 18, \"KeyI\", 39, \"I\", 73, \"VK_I\", e, e],\n                            [40, 0, 19, \"KeyJ\", 40, \"J\", 74, \"VK_J\", e, e],\n                            [41, 0, 20, \"KeyK\", 41, \"K\", 75, \"VK_K\", e, e],\n                            [42, 0, 21, \"KeyL\", 42, \"L\", 76, \"VK_L\", e, e],\n                            [43, 0, 22, \"KeyM\", 43, \"M\", 77, \"VK_M\", e, e],\n                            [44, 0, 23, \"KeyN\", 44, \"N\", 78, \"VK_N\", e, e],\n                            [45, 0, 24, \"KeyO\", 45, \"O\", 79, \"VK_O\", e, e],\n                            [46, 0, 25, \"KeyP\", 46, \"P\", 80, \"VK_P\", e, e],\n                            [47, 0, 26, \"KeyQ\", 47, \"Q\", 81, \"VK_Q\", e, e],\n                            [48, 0, 27, \"KeyR\", 48, \"R\", 82, \"VK_R\", e, e],\n                            [49, 0, 28, \"KeyS\", 49, \"S\", 83, \"VK_S\", e, e],\n                            [50, 0, 29, \"KeyT\", 50, \"T\", 84, \"VK_T\", e, e],\n                            [51, 0, 30, \"KeyU\", 51, \"U\", 85, \"VK_U\", e, e],\n                            [52, 0, 31, \"KeyV\", 52, \"V\", 86, \"VK_V\", e, e],\n                            [53, 0, 32, \"KeyW\", 53, \"W\", 87, \"VK_W\", e, e],\n                            [54, 0, 33, \"KeyX\", 54, \"X\", 88, \"VK_X\", e, e],\n                            [55, 0, 34, \"KeyY\", 55, \"Y\", 89, \"VK_Y\", e, e],\n                            [56, 0, 35, \"KeyZ\", 56, \"Z\", 90, \"VK_Z\", e, e],\n                            [22, 0, 36, \"Digit1\", 22, \"1\", 49, \"VK_1\", e, e],\n                            [23, 0, 37, \"Digit2\", 23, \"2\", 50, \"VK_2\", e, e],\n                            [24, 0, 38, \"Digit3\", 24, \"3\", 51, \"VK_3\", e, e],\n                            [25, 0, 39, \"Digit4\", 25, \"4\", 52, \"VK_4\", e, e],\n                            [26, 0, 40, \"Digit5\", 26, \"5\", 53, \"VK_5\", e, e],\n                            [27, 0, 41, \"Digit6\", 27, \"6\", 54, \"VK_6\", e, e],\n                            [28, 0, 42, \"Digit7\", 28, \"7\", 55, \"VK_7\", e, e],\n                            [29, 0, 43, \"Digit8\", 29, \"8\", 56, \"VK_8\", e, e],\n                            [30, 0, 44, \"Digit9\", 30, \"9\", 57, \"VK_9\", e, e],\n                            [21, 0, 45, \"Digit0\", 21, \"0\", 48, \"VK_0\", e, e],\n                            [3, 1, 46, \"Enter\", 3, \"Enter\", 13, \"VK_RETURN\", e, e],\n                            [9, 1, 47, \"Escape\", 9, \"Escape\", 27, \"VK_ESCAPE\", e, e],\n                            [1, 1, 48, \"Backspace\", 1, \"Backspace\", 8, \"VK_BACK\", e, e],\n                            [2, 1, 49, \"Tab\", 2, \"Tab\", 9, \"VK_TAB\", e, e],\n                            [10, 1, 50, \"Space\", 10, \"Space\", 32, \"VK_SPACE\", e, e],\n                            [83, 0, 51, \"Minus\", 83, \"-\", 189, \"VK_OEM_MINUS\", \"-\", \"OEM_MINUS\"],\n                            [81, 0, 52, \"Equal\", 81, \"=\", 187, \"VK_OEM_PLUS\", \"=\", \"OEM_PLUS\"],\n                            [87, 0, 53, \"BracketLeft\", 87, \"[\", 219, \"VK_OEM_4\", \"[\", \"OEM_4\"],\n                            [89, 0, 54, \"BracketRight\", 89, \"]\", 221, \"VK_OEM_6\", \"]\", \"OEM_6\"],\n                            [88, 0, 55, \"Backslash\", 88, \"\\\\\", 220, \"VK_OEM_5\", \"\\\\\", \"OEM_5\"],\n                            [0, 0, 56, \"IntlHash\", 0, e, 0, e, e, e],\n                            [80, 0, 57, \"Semicolon\", 80, \";\", 186, \"VK_OEM_1\", \";\", \"OEM_1\"],\n                            [90, 0, 58, \"Quote\", 90, \"'\", 222, \"VK_OEM_7\", \"'\", \"OEM_7\"],\n                            [86, 0, 59, \"Backquote\", 86, \"`\", 192, \"VK_OEM_3\", \"`\", \"OEM_3\"],\n                            [82, 0, 60, \"Comma\", 82, \",\", 188, \"VK_OEM_COMMA\", \",\", \"OEM_COMMA\"],\n                            [84, 0, 61, \"Period\", 84, \".\", 190, \"VK_OEM_PERIOD\", \".\", \"OEM_PERIOD\"],\n                            [85, 0, 62, \"Slash\", 85, \"/\", 191, \"VK_OEM_2\", \"/\", \"OEM_2\"],\n                            [8, 1, 63, \"CapsLock\", 8, \"CapsLock\", 20, \"VK_CAPITAL\", e, e],\n                            [59, 1, 64, \"F1\", 59, \"F1\", 112, \"VK_F1\", e, e],\n                            [60, 1, 65, \"F2\", 60, \"F2\", 113, \"VK_F2\", e, e],\n                            [61, 1, 66, \"F3\", 61, \"F3\", 114, \"VK_F3\", e, e],\n                            [62, 1, 67, \"F4\", 62, \"F4\", 115, \"VK_F4\", e, e],\n                            [63, 1, 68, \"F5\", 63, \"F5\", 116, \"VK_F5\", e, e],\n                            [64, 1, 69, \"F6\", 64, \"F6\", 117, \"VK_F6\", e, e],\n                            [65, 1, 70, \"F7\", 65, \"F7\", 118, \"VK_F7\", e, e],\n                            [66, 1, 71, \"F8\", 66, \"F8\", 119, \"VK_F8\", e, e],\n                            [67, 1, 72, \"F9\", 67, \"F9\", 120, \"VK_F9\", e, e],\n                            [68, 1, 73, \"F10\", 68, \"F10\", 121, \"VK_F10\", e, e],\n                            [69, 1, 74, \"F11\", 69, \"F11\", 122, \"VK_F11\", e, e],\n                            [70, 1, 75, \"F12\", 70, \"F12\", 123, \"VK_F12\", e, e],\n                            [0, 1, 76, \"PrintScreen\", 0, e, 0, e, e, e],\n                            [79, 1, 77, \"ScrollLock\", 79, \"ScrollLock\", 145, \"VK_SCROLL\", e, e],\n                            [7, 1, 78, \"Pause\", 7, \"PauseBreak\", 19, \"VK_PAUSE\", e, e],\n                            [19, 1, 79, \"Insert\", 19, \"Insert\", 45, \"VK_INSERT\", e, e],\n                            [14, 1, 80, \"Home\", 14, \"Home\", 36, \"VK_HOME\", e, e],\n                            [11, 1, 81, \"PageUp\", 11, \"PageUp\", 33, \"VK_PRIOR\", e, e],\n                            [20, 1, 82, \"Delete\", 20, \"Delete\", 46, \"VK_DELETE\", e, e],\n                            [13, 1, 83, \"End\", 13, \"End\", 35, \"VK_END\", e, e],\n                            [12, 1, 84, \"PageDown\", 12, \"PageDown\", 34, \"VK_NEXT\", e, e],\n                            [17, 1, 85, \"ArrowRight\", 17, \"RightArrow\", 39, \"VK_RIGHT\", \"Right\", e],\n                            [15, 1, 86, \"ArrowLeft\", 15, \"LeftArrow\", 37, \"VK_LEFT\", \"Left\", e],\n                            [18, 1, 87, \"ArrowDown\", 18, \"DownArrow\", 40, \"VK_DOWN\", \"Down\", e],\n                            [16, 1, 88, \"ArrowUp\", 16, \"UpArrow\", 38, \"VK_UP\", \"Up\", e],\n                            [78, 1, 89, \"NumLock\", 78, \"NumLock\", 144, \"VK_NUMLOCK\", e, e],\n                            [108, 1, 90, \"NumpadDivide\", 108, \"NumPad_Divide\", 111, \"VK_DIVIDE\", e, e],\n                            [103, 1, 91, \"NumpadMultiply\", 103, \"NumPad_Multiply\", 106, \"VK_MULTIPLY\", e, e],\n                            [106, 1, 92, \"NumpadSubtract\", 106, \"NumPad_Subtract\", 109, \"VK_SUBTRACT\", e, e],\n                            [104, 1, 93, \"NumpadAdd\", 104, \"NumPad_Add\", 107, \"VK_ADD\", e, e],\n                            [3, 1, 94, \"NumpadEnter\", 3, e, 0, e, e, e],\n                            [94, 1, 95, \"Numpad1\", 94, \"NumPad1\", 97, \"VK_NUMPAD1\", e, e],\n                            [95, 1, 96, \"Numpad2\", 95, \"NumPad2\", 98, \"VK_NUMPAD2\", e, e],\n                            [96, 1, 97, \"Numpad3\", 96, \"NumPad3\", 99, \"VK_NUMPAD3\", e, e],\n                            [97, 1, 98, \"Numpad4\", 97, \"NumPad4\", 100, \"VK_NUMPAD4\", e, e],\n                            [98, 1, 99, \"Numpad5\", 98, \"NumPad5\", 101, \"VK_NUMPAD5\", e, e],\n                            [99, 1, 100, \"Numpad6\", 99, \"NumPad6\", 102, \"VK_NUMPAD6\", e, e],\n                            [100, 1, 101, \"Numpad7\", 100, \"NumPad7\", 103, \"VK_NUMPAD7\", e, e],\n                            [101, 1, 102, \"Numpad8\", 101, \"NumPad8\", 104, \"VK_NUMPAD8\", e, e],\n                            [102, 1, 103, \"Numpad9\", 102, \"NumPad9\", 105, \"VK_NUMPAD9\", e, e],\n                            [93, 1, 104, \"Numpad0\", 93, \"NumPad0\", 96, \"VK_NUMPAD0\", e, e],\n                            [107, 1, 105, \"NumpadDecimal\", 107, \"NumPad_Decimal\", 110, \"VK_DECIMAL\", e, e],\n                            [92, 0, 106, \"IntlBackslash\", 92, \"OEM_102\", 226, \"VK_OEM_102\", e, e],\n                            [58, 1, 107, \"ContextMenu\", 58, \"ContextMenu\", 93, e, e, e],\n                            [0, 1, 108, \"Power\", 0, e, 0, e, e, e],\n                            [0, 1, 109, \"NumpadEqual\", 0, e, 0, e, e, e],\n                            [71, 1, 110, \"F13\", 71, \"F13\", 124, \"VK_F13\", e, e],\n                            [72, 1, 111, \"F14\", 72, \"F14\", 125, \"VK_F14\", e, e],\n                            [73, 1, 112, \"F15\", 73, \"F15\", 126, \"VK_F15\", e, e],\n                            [74, 1, 113, \"F16\", 74, \"F16\", 127, \"VK_F16\", e, e],\n                            [75, 1, 114, \"F17\", 75, \"F17\", 128, \"VK_F17\", e, e],\n                            [76, 1, 115, \"F18\", 76, \"F18\", 129, \"VK_F18\", e, e],\n                            [77, 1, 116, \"F19\", 77, \"F19\", 130, \"VK_F19\", e, e],\n                            [0, 1, 117, \"F20\", 0, e, 0, \"VK_F20\", e, e],\n                            [0, 1, 118, \"F21\", 0, e, 0, \"VK_F21\", e, e],\n                            [0, 1, 119, \"F22\", 0, e, 0, \"VK_F22\", e, e],\n                            [0, 1, 120, \"F23\", 0, e, 0, \"VK_F23\", e, e],\n                            [0, 1, 121, \"F24\", 0, e, 0, \"VK_F24\", e, e],\n                            [0, 1, 122, \"Open\", 0, e, 0, e, e, e],\n                            [0, 1, 123, \"Help\", 0, e, 0, e, e, e],\n                            [0, 1, 124, \"Select\", 0, e, 0, e, e, e],\n                            [0, 1, 125, \"Again\", 0, e, 0, e, e, e],\n                            [0, 1, 126, \"Undo\", 0, e, 0, e, e, e],\n                            [0, 1, 127, \"Cut\", 0, e, 0, e, e, e],\n                            [0, 1, 128, \"Copy\", 0, e, 0, e, e, e],\n                            [0, 1, 129, \"Paste\", 0, e, 0, e, e, e],\n                            [0, 1, 130, \"Find\", 0, e, 0, e, e, e],\n                            [0, 1, 131, \"AudioVolumeMute\", 112, \"AudioVolumeMute\", 173, \"VK_VOLUME_MUTE\", e, e],\n                            [0, 1, 132, \"AudioVolumeUp\", 113, \"AudioVolumeUp\", 175, \"VK_VOLUME_UP\", e, e],\n                            [0, 1, 133, \"AudioVolumeDown\", 114, \"AudioVolumeDown\", 174, \"VK_VOLUME_DOWN\", e, e],\n                            [105, 1, 134, \"NumpadComma\", 105, \"NumPad_Separator\", 108, \"VK_SEPARATOR\", e, e],\n                            [110, 0, 135, \"IntlRo\", 110, \"ABNT_C1\", 193, \"VK_ABNT_C1\", e, e],\n                            [0, 1, 136, \"KanaMode\", 0, e, 0, e, e, e],\n                            [0, 0, 137, \"IntlYen\", 0, e, 0, e, e, e],\n                            [0, 1, 138, \"Convert\", 0, e, 0, e, e, e],\n                            [0, 1, 139, \"NonConvert\", 0, e, 0, e, e, e],\n                            [0, 1, 140, \"Lang1\", 0, e, 0, e, e, e],\n                            [0, 1, 141, \"Lang2\", 0, e, 0, e, e, e],\n                            [0, 1, 142, \"Lang3\", 0, e, 0, e, e, e],\n                            [0, 1, 143, \"Lang4\", 0, e, 0, e, e, e],\n                            [0, 1, 144, \"Lang5\", 0, e, 0, e, e, e],\n                            [0, 1, 145, \"Abort\", 0, e, 0, e, e, e],\n                            [0, 1, 146, \"Props\", 0, e, 0, e, e, e],\n                            [0, 1, 147, \"NumpadParenLeft\", 0, e, 0, e, e, e],\n                            [0, 1, 148, \"NumpadParenRight\", 0, e, 0, e, e, e],\n                            [0, 1, 149, \"NumpadBackspace\", 0, e, 0, e, e, e],\n                            [0, 1, 150, \"NumpadMemoryStore\", 0, e, 0, e, e, e],\n                            [0, 1, 151, \"NumpadMemoryRecall\", 0, e, 0, e, e, e],\n                            [0, 1, 152, \"NumpadMemoryClear\", 0, e, 0, e, e, e],\n                            [0, 1, 153, \"NumpadMemoryAdd\", 0, e, 0, e, e, e],\n                            [0, 1, 154, \"NumpadMemorySubtract\", 0, e, 0, e, e, e],\n                            [0, 1, 155, \"NumpadClear\", 0, e, 0, e, e, e],\n                            [0, 1, 156, \"NumpadClearEntry\", 0, e, 0, e, e, e],\n                            [5, 1, 0, e, 5, \"Ctrl\", 17, \"VK_CONTROL\", e, e],\n                            [4, 1, 0, e, 4, \"Shift\", 16, \"VK_SHIFT\", e, e],\n                            [6, 1, 0, e, 6, \"Alt\", 18, \"VK_MENU\", e, e],\n                            [57, 1, 0, e, 57, \"Meta\", 0, \"VK_COMMAND\", e, e],\n                            [5, 1, 157, \"ControlLeft\", 5, e, 0, \"VK_LCONTROL\", e, e],\n                            [4, 1, 158, \"ShiftLeft\", 4, e, 0, \"VK_LSHIFT\", e, e],\n                            [6, 1, 159, \"AltLeft\", 6, e, 0, \"VK_LMENU\", e, e],\n                            [57, 1, 160, \"MetaLeft\", 57, e, 0, \"VK_LWIN\", e, e],\n                            [5, 1, 161, \"ControlRight\", 5, e, 0, \"VK_RCONTROL\", e, e],\n                            [4, 1, 162, \"ShiftRight\", 4, e, 0, \"VK_RSHIFT\", e, e],\n                            [6, 1, 163, \"AltRight\", 6, e, 0, \"VK_RMENU\", e, e],\n                            [57, 1, 164, \"MetaRight\", 57, e, 0, \"VK_RWIN\", e, e],\n                            [0, 1, 165, \"BrightnessUp\", 0, e, 0, e, e, e],\n                            [0, 1, 166, \"BrightnessDown\", 0, e, 0, e, e, e],\n                            [0, 1, 167, \"MediaPlay\", 0, e, 0, e, e, e],\n                            [0, 1, 168, \"MediaRecord\", 0, e, 0, e, e, e],\n                            [0, 1, 169, \"MediaFastForward\", 0, e, 0, e, e, e],\n                            [0, 1, 170, \"MediaRewind\", 0, e, 0, e, e, e],\n                            [114, 1, 171, \"MediaTrackNext\", 119, \"MediaTrackNext\", 176, \"VK_MEDIA_NEXT_TRACK\", e, e],\n                            [115, 1, 172, \"MediaTrackPrevious\", 120, \"MediaTrackPrevious\", 177, \"VK_MEDIA_PREV_TRACK\", e, e],\n                            [116, 1, 173, \"MediaStop\", 121, \"MediaStop\", 178, \"VK_MEDIA_STOP\", e, e],\n                            [0, 1, 174, \"Eject\", 0, e, 0, e, e, e],\n                            [117, 1, 175, \"MediaPlayPause\", 122, \"MediaPlayPause\", 179, \"VK_MEDIA_PLAY_PAUSE\", e, e],\n                            [0, 1, 176, \"MediaSelect\", 123, \"LaunchMediaPlayer\", 181, \"VK_MEDIA_LAUNCH_MEDIA_SELECT\", e, e],\n                            [0, 1, 177, \"LaunchMail\", 124, \"LaunchMail\", 180, \"VK_MEDIA_LAUNCH_MAIL\", e, e],\n                            [0, 1, 178, \"LaunchApp2\", 125, \"LaunchApp2\", 183, \"VK_MEDIA_LAUNCH_APP2\", e, e],\n                            [0, 1, 179, \"LaunchApp1\", 0, e, 0, \"VK_MEDIA_LAUNCH_APP1\", e, e],\n                            [0, 1, 180, \"SelectTask\", 0, e, 0, e, e, e],\n                            [0, 1, 181, \"LaunchScreenSaver\", 0, e, 0, e, e, e],\n                            [0, 1, 182, \"BrowserSearch\", 115, \"BrowserSearch\", 170, \"VK_BROWSER_SEARCH\", e, e],\n                            [0, 1, 183, \"BrowserHome\", 116, \"BrowserHome\", 172, \"VK_BROWSER_HOME\", e, e],\n                            [112, 1, 184, \"BrowserBack\", 117, \"BrowserBack\", 166, \"VK_BROWSER_BACK\", e, e],\n                            [113, 1, 185, \"BrowserForward\", 118, \"BrowserForward\", 167, \"VK_BROWSER_FORWARD\", e, e],\n                            [0, 1, 186, \"BrowserStop\", 0, e, 0, \"VK_BROWSER_STOP\", e, e],\n                            [0, 1, 187, \"BrowserRefresh\", 0, e, 0, \"VK_BROWSER_REFRESH\", e, e],\n                            [0, 1, 188, \"BrowserFavorites\", 0, e, 0, \"VK_BROWSER_FAVORITES\", e, e],\n                            [0, 1, 189, \"ZoomToggle\", 0, e, 0, e, e, e],\n                            [0, 1, 190, \"MailReply\", 0, e, 0, e, e, e],\n                            [0, 1, 191, \"MailForward\", 0, e, 0, e, e, e],\n                            [0, 1, 192, \"MailSend\", 0, e, 0, e, e, e],\n                            [109, 1, 0, e, 109, \"KeyInComposition\", 229, e, e, e],\n                            [111, 1, 0, e, 111, \"ABNT_C2\", 194, \"VK_ABNT_C2\", e, e],\n                            [91, 1, 0, e, 91, \"OEM_8\", 223, \"VK_OEM_8\", e, e],\n                            [0, 1, 0, e, 0, e, 0, \"VK_CLEAR\", e, e],\n                            [0, 1, 0, e, 0, e, 0, \"VK_KANA\", e, e],\n                            [0, 1, 0, e, 0, e, 0, \"VK_HANGUL\", e, e],\n                            [0, 1, 0, e, 0, e, 0, \"VK_JUNJA\", e, e],\n                            [0, 1, 0, e, 0, e, 0, \"VK_FINAL\", e, e],\n                            [0, 1, 0, e, 0, e, 0, \"VK_HANJA\", e, e],\n                            [0, 1, 0, e, 0, e, 0, \"VK_KANJI\", e, e],\n                            [0, 1, 0, e, 0, e, 0, \"VK_CONVERT\", e, e],\n                            [0, 1, 0, e, 0, e, 0, \"VK_NONCONVERT\", e, e],\n                            [0, 1, 0, e, 0, e, 0, \"VK_ACCEPT\", e, e],\n                            [0, 1, 0, e, 0, e, 0, \"VK_MODECHANGE\", e, e],\n                            [0, 1, 0, e, 0, e, 0, \"VK_SELECT\", e, e],\n                            [0, 1, 0, e, 0, e, 0, \"VK_PRINT\", e, e],\n                            [0, 1, 0, e, 0, e, 0, \"VK_EXECUTE\", e, e],\n                            [0, 1, 0, e, 0, e, 0, \"VK_SNAPSHOT\", e, e],\n                            [0, 1, 0, e, 0, e, 0, \"VK_HELP\", e, e],\n                            [0, 1, 0, e, 0, e, 0, \"VK_APPS\", e, e],\n                            [0, 1, 0, e, 0, e, 0, \"VK_PROCESSKEY\", e, e],\n                            [0, 1, 0, e, 0, e, 0, \"VK_PACKET\", e, e],\n                            [0, 1, 0, e, 0, e, 0, \"VK_DBE_SBCSCHAR\", e, e],\n                            [0, 1, 0, e, 0, e, 0, \"VK_DBE_DBCSCHAR\", e, e],\n                            [0, 1, 0, e, 0, e, 0, \"VK_ATTN\", e, e],\n                            [0, 1, 0, e, 0, e, 0, \"VK_CRSEL\", e, e],\n                            [0, 1, 0, e, 0, e, 0, \"VK_EXSEL\", e, e],\n                            [0, 1, 0, e, 0, e, 0, \"VK_EREOF\", e, e],\n                            [0, 1, 0, e, 0, e, 0, \"VK_PLAY\", e, e],\n                            [0, 1, 0, e, 0, e, 0, \"VK_ZOOM\", e, e],\n                            [0, 1, 0, e, 0, e, 0, \"VK_NONAME\", e, e],\n                            [0, 1, 0, e, 0, e, 0, \"VK_PA1\", e, e],\n                            [0, 1, 0, e, 0, e, 0, \"VK_OEM_CLEAR\", e, e]\n                        ];\n                    let i = [],\n                        n = [];\n                    for (const e of t) {\n                        const [t, p, f, m, v, _, b, w, y, C] = e;\n                        if (n[f] || (n[f] = !0, c[f] = m, d[m] = f, h[m.toLowerCase()] = f, p && (u[f] = v, 0 !== v && 3 !== v && 5 !== v && 4 !== v && 6 !== v && 57 !== v && (g[v] = f))), !i[v]) {\n                            if (i[v] = !0, !_) throw new Error(`String representation missing for key code ${v} around scan code ${m}`);\n                            o.define(v, _), s.define(v, y || _), r.define(v, C || y || _)\n                        }\n                        b && (a[b] = v), w && (l[w] = v)\n                    }\n                    g[3] = 46\n                }(),\n                function(e) {\n                    e.toString = function(e) {\n                        return o.keyCodeToStr(e)\n                    }, e.fromString = function(e) {\n                        return o.strToKeyCode(e)\n                    }, e.toUserSettingsUS = function(e) {\n                        return s.keyCodeToStr(e)\n                    }, e.toUserSettingsGeneral = function(e) {\n                        return r.keyCodeToStr(e)\n                    }, e.fromUserSettings = function(e) {\n                        return s.strToKeyCode(e) || r.strToKeyCode(e)\n                    }, e.toElectronAccelerator = function(e) {\n                        if (e >= 93 && e <= 108) return null;\n                        switch (e) {\n                            case 16:\n                                return \"Up\";\n                            case 18:\n                                return \"Down\";\n                            case 15:\n                                return \"Left\";\n                            case 17:\n                                return \"Right\"\n                        }\n                        return o.keyCodeToStr(e)\n                    }\n                }(p || (p = {}))\n            },\n            8030: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    X4: () => r,\n                    jC: () => a,\n                    xo: () => s\n                });\n                var n = i(63580);\n                class o {\n                    constructor(e, t, i = t) {\n                        this.modifierLabels = [null], this.modifierLabels[2] = e, this.modifierLabels[1] = t, this.modifierLabels[3] = i\n                    }\n                    toLabel(e, t, i) {\n                        if (0 === t.length) return null;\n                        const n = [];\n                        for (let o = 0, s = t.length; o < s; o++) {\n                            const s = t[o],\n                                r = i(s);\n                            if (null === r) return null;\n                            n[o] = l(s, r, this.modifierLabels[e])\n                        }\n                        return n.join(\" \")\n                    }\n                }\n                const s = new o({\n                        ctrlKey: \"⌃\",\n                        shiftKey: \"⇧\",\n                        altKey: \"⌥\",\n                        metaKey: \"⌘\",\n                        separator: \"\"\n                    }, {\n                        ctrlKey: n.N({\n                            key: \"ctrlKey\",\n                            comment: [\"This is the short form for the Control key on the keyboard\"]\n                        }, \"Ctrl\"),\n                        shiftKey: n.N({\n                            key: \"shiftKey\",\n                            comment: [\"This is the short form for the Shift key on the keyboard\"]\n                        }, \"Shift\"),\n                        altKey: n.N({\n                            key: \"altKey\",\n                            comment: [\"This is the short form for the Alt key on the keyboard\"]\n                        }, \"Alt\"),\n                        metaKey: n.N({\n                            key: \"windowsKey\",\n                            comment: [\"This is the short form for the Windows key on the keyboard\"]\n                        }, \"Windows\"),\n                        separator: \"+\"\n                    }, {\n                        ctrlKey: n.N({\n                            key: \"ctrlKey\",\n                            comment: [\"This is the short form for the Control key on the keyboard\"]\n                        }, \"Ctrl\"),\n                        shiftKey: n.N({\n                            key: \"shiftKey\",\n                            comment: [\"This is the short form for the Shift key on the keyboard\"]\n                        }, \"Shift\"),\n                        altKey: n.N({\n                            key: \"altKey\",\n                            comment: [\"This is the short form for the Alt key on the keyboard\"]\n                        }, \"Alt\"),\n                        metaKey: n.N({\n                            key: \"superKey\",\n                            comment: [\"This is the short form for the Super key on the keyboard\"]\n                        }, \"Super\"),\n                        separator: \"+\"\n                    }),\n                    r = new o({\n                        ctrlKey: n.N({\n                            key: \"ctrlKey.long\",\n                            comment: [\"This is the long form for the Control key on the keyboard\"]\n                        }, \"Control\"),\n                        shiftKey: n.N({\n                            key: \"shiftKey.long\",\n                            comment: [\"This is the long form for the Shift key on the keyboard\"]\n                        }, \"Shift\"),\n                        altKey: n.N({\n                            key: \"altKey.long\",\n                            comment: [\"This is the long form for the Alt key on the keyboard\"]\n                        }, \"Alt\"),\n                        metaKey: n.N({\n                            key: \"cmdKey.long\",\n                            comment: [\"This is the long form for the Command key on the keyboard\"]\n                        }, \"Command\"),\n                        separator: \"+\"\n                    }, {\n                        ctrlKey: n.N({\n                            key: \"ctrlKey.long\",\n                            comment: [\"This is the long form for the Control key on the keyboard\"]\n                        }, \"Control\"),\n                        shiftKey: n.N({\n                            key: \"shiftKey.long\",\n                            comment: [\"This is the long form for the Shift key on the keyboard\"]\n                        }, \"Shift\"),\n                        altKey: n.N({\n                            key: \"altKey.long\",\n                            comment: [\"This is the long form for the Alt key on the keyboard\"]\n                        }, \"Alt\"),\n                        metaKey: n.N({\n                            key: \"windowsKey.long\",\n                            comment: [\"This is the long form for the Windows key on the keyboard\"]\n                        }, \"Windows\"),\n                        separator: \"+\"\n                    }, {\n                        ctrlKey: n.N({\n                            key: \"ctrlKey.long\",\n                            comment: [\"This is the long form for the Control key on the keyboard\"]\n                        }, \"Control\"),\n                        shiftKey: n.N({\n                            key: \"shiftKey.long\",\n                            comment: [\"This is the long form for the Shift key on the keyboard\"]\n                        }, \"Shift\"),\n                        altKey: n.N({\n                            key: \"altKey.long\",\n                            comment: [\"This is the long form for the Alt key on the keyboard\"]\n                        }, \"Alt\"),\n                        metaKey: n.N({\n                            key: \"superKey.long\",\n                            comment: [\"This is the long form for the Super key on the keyboard\"]\n                        }, \"Super\"),\n                        separator: \"+\"\n                    }),\n                    a = new o({\n                        ctrlKey: \"Ctrl\",\n                        shiftKey: \"Shift\",\n                        altKey: \"Alt\",\n                        metaKey: \"Cmd\",\n                        separator: \"+\"\n                    }, {\n                        ctrlKey: \"Ctrl\",\n                        shiftKey: \"Shift\",\n                        altKey: \"Alt\",\n                        metaKey: \"Super\",\n                        separator: \"+\"\n                    });\n\n                function l(e, t, i) {\n                    if (null === t) return \"\";\n                    const n = [];\n                    return e.ctrlKey && n.push(i.ctrlKey), e.shiftKey && n.push(i.shiftKey), e.altKey && n.push(i.altKey), e.metaKey && n.push(i.metaKey), \"\" !== t && n.push(t), n.join(i.separator)\n                }\n            },\n            8313: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    BQ: () => l,\n                    QC: () => r,\n                    X_: () => a,\n                    f1: () => c,\n                    gm: () => o\n                });\n                var n = i(17301);\n\n                function o(e, t) {\n                    if (0 === e) return null;\n                    const i = (65535 & e) >>> 0,\n                        n = (4294901760 & e) >>> 16;\n                    return new a(0 !== n ? [s(i, t), s(n, t)] : [s(i, t)])\n                }\n\n                function s(e, t) {\n                    const i = !!(2048 & e),\n                        n = !!(256 & e);\n                    return new r(2 === t ? n : i, !!(1024 & e), !!(512 & e), 2 === t ? i : n, 255 & e)\n                }\n                class r {\n                    constructor(e, t, i, n, o) {\n                        this.ctrlKey = e, this.shiftKey = t, this.altKey = i, this.metaKey = n, this.keyCode = o\n                    }\n                    equals(e) {\n                        return this.ctrlKey === e.ctrlKey && this.shiftKey === e.shiftKey && this.altKey === e.altKey && this.metaKey === e.metaKey && this.keyCode === e.keyCode\n                    }\n                    isModifierKey() {\n                        return 0 === this.keyCode || 5 === this.keyCode || 57 === this.keyCode || 6 === this.keyCode || 4 === this.keyCode\n                    }\n                    toChord() {\n                        return new a([this])\n                    }\n                    isDuplicateModifierCase() {\n                        return this.ctrlKey && 5 === this.keyCode || this.shiftKey && 4 === this.keyCode || this.altKey && 6 === this.keyCode || this.metaKey && 57 === this.keyCode\n                    }\n                }\n                class a {\n                    constructor(e) {\n                        if (0 === e.length) throw (0, n.b1)(\"parts\");\n                        this.parts = e\n                    }\n                }\n                class l {\n                    constructor(e, t, i, n, o, s) {\n                        this.ctrlKey = e, this.shiftKey = t, this.altKey = i, this.metaKey = n, this.keyLabel = o, this.keyAriaLabel = s\n                    }\n                }\n                class c {}\n            },\n            68843: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    D: () => c,\n                    p: () => l\n                });\n                var n = i(15527),\n                    o = i(66663),\n                    s = i(1432),\n                    r = i(95935),\n                    a = i(70666);\n\n                function l(e) {\n                    if (!e) return;\n                    \"string\" == typeof e && (e = a.o.file(e));\n                    const t = (0, r.EZ)(e) || (e.scheme === o.lg.file ? e.fsPath : e.path);\n                    return s.ED && (0, n.vY)(t) ? c(t) : t\n                }\n\n                function c(e) {\n                    return (0, n.oP)(e) ? e.charAt(0).toUpperCase() + e.slice(1) : e\n                }\n            },\n            5976: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    B9: () => u,\n                    F8: () => g,\n                    JT: () => m,\n                    Jz: () => _,\n                    OF: () => p,\n                    SL: () => f,\n                    Wf: () => h,\n                    XK: () => v,\n                    dk: () => c\n                });\n                var n = i(88289),\n                    o = i(53725);\n                let s = null;\n\n                function r(e) {\n                    return null == s || s.trackDisposable(e), e\n                }\n\n                function a(e) {\n                    null == s || s.markAsDisposed(e)\n                }\n\n                function l(e, t) {\n                    null == s || s.setParent(e, t)\n                }\n\n                function c(e) {\n                    return null == s || s.markAsSingleton(e), e\n                }\n                class d extends Error {\n                    constructor(e) {\n                        super(`Encountered errors while disposing of store. Errors: [${e.join(\", \")}]`), this.errors = e\n                    }\n                }\n\n                function h(e) {\n                    return \"function\" == typeof e.dispose && 0 === e.dispose.length\n                }\n\n                function u(e) {\n                    if (o.$.is(e)) {\n                        let t = [];\n                        for (const i of e)\n                            if (i) try {\n                                i.dispose()\n                            } catch (e) {\n                                t.push(e)\n                            }\n                        if (1 === t.length) throw t[0];\n                        if (t.length > 1) throw new d(t);\n                        return Array.isArray(e) ? [] : e\n                    }\n                    if (e) return e.dispose(), e\n                }\n\n                function g(...e) {\n                    const t = p((() => u(e)));\n                    return function(e, t) {\n                        if (s)\n                            for (const i of e) s.setParent(i, t)\n                    }(e, t), t\n                }\n\n                function p(e) {\n                    const t = r({\n                        dispose: (0, n.I)((() => {\n                            a(t), e()\n                        }))\n                    });\n                    return t\n                }\n                class f {\n                    constructor() {\n                        this._toDispose = new Set, this._isDisposed = !1, r(this)\n                    }\n                    dispose() {\n                        this._isDisposed || (a(this), this._isDisposed = !0, this.clear())\n                    }\n                    clear() {\n                        try {\n                            u(this._toDispose.values())\n                        } finally {\n                            this._toDispose.clear()\n                        }\n                    }\n                    add(e) {\n                        if (!e) return e;\n                        if (e === this) throw new Error(\"Cannot register a disposable on itself!\");\n                        return l(e, this), this._isDisposed ? f.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(e), e\n                    }\n                }\n                f.DISABLE_DISPOSED_WARNING = !1;\n                class m {\n                    constructor() {\n                        this._store = new f, r(this), l(this._store, this)\n                    }\n                    dispose() {\n                        a(this), this._store.dispose()\n                    }\n                    _register(e) {\n                        if (e === this) throw new Error(\"Cannot register a disposable on itself!\");\n                        return this._store.add(e)\n                    }\n                }\n                m.None = Object.freeze({\n                    dispose() {}\n                });\n                class v {\n                    constructor() {\n                        this._isDisposed = !1, r(this)\n                    }\n                    get value() {\n                        return this._isDisposed ? void 0 : this._value\n                    }\n                    set value(e) {\n                        var t;\n                        this._isDisposed || e === this._value || (null === (t = this._value) || void 0 === t || t.dispose(), e && l(e, this), this._value = e)\n                    }\n                    clear() {\n                        this.value = void 0\n                    }\n                    dispose() {\n                        var e;\n                        this._isDisposed = !0, a(this), null === (e = this._value) || void 0 === e || e.dispose(), this._value = void 0\n                    }\n                    clearAndLeak() {\n                        const e = this._value;\n                        return this._value = void 0, e && l(e, null), e\n                    }\n                }\n                class _ {\n                    constructor(e) {\n                        this.object = e\n                    }\n                    dispose() {}\n                }\n            },\n            91741: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    S: () => o\n                });\n                class n {\n                    constructor(e) {\n                        this.element = e, this.next = n.Undefined, this.prev = n.Undefined\n                    }\n                }\n                n.Undefined = new n(void 0);\n                class o {\n                    constructor() {\n                        this._first = n.Undefined, this._last = n.Undefined, this._size = 0\n                    }\n                    get size() {\n                        return this._size\n                    }\n                    isEmpty() {\n                        return this._first === n.Undefined\n                    }\n                    clear() {\n                        let e = this._first;\n                        for (; e !== n.Undefined;) {\n                            const t = e.next;\n                            e.prev = n.Undefined, e.next = n.Undefined, e = t\n                        }\n                        this._first = n.Undefined, this._last = n.Undefined, this._size = 0\n                    }\n                    unshift(e) {\n                        return this._insert(e, !1)\n                    }\n                    push(e) {\n                        return this._insert(e, !0)\n                    }\n                    _insert(e, t) {\n                        const i = new n(e);\n                        if (this._first === n.Undefined) this._first = i, this._last = i;\n                        else if (t) {\n                            const e = this._last;\n                            this._last = i, i.prev = e, e.next = i\n                        } else {\n                            const e = this._first;\n                            this._first = i, i.next = e, e.prev = i\n                        }\n                        this._size += 1;\n                        let o = !1;\n                        return () => {\n                            o || (o = !0, this._remove(i))\n                        }\n                    }\n                    shift() {\n                        if (this._first !== n.Undefined) {\n                            const e = this._first.element;\n                            return this._remove(this._first), e\n                        }\n                    }\n                    pop() {\n                        if (this._last !== n.Undefined) {\n                            const e = this._last.element;\n                            return this._remove(this._last), e\n                        }\n                    }\n                    _remove(e) {\n                        if (e.prev !== n.Undefined && e.next !== n.Undefined) {\n                            const t = e.prev;\n                            t.next = e.next, e.next.prev = t\n                        } else e.prev === n.Undefined && e.next === n.Undefined ? (this._first = n.Undefined, this._last = n.Undefined) : e.next === n.Undefined ? (this._last = this._last.prev, this._last.next = n.Undefined) : e.prev === n.Undefined && (this._first = this._first.next, this._first.prev = n.Undefined);\n                        this._size -= 1\n                    }*[Symbol.iterator]() {\n                        let e = this._first;\n                        for (; e !== n.Undefined;) yield e.element, e = e.next\n                    }\n                }\n            },\n            43702: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    Id: () => h,\n                    Y9: () => g,\n                    z6: () => f\n                });\n                var n, o, s = i(97295);\n                class r {\n                    constructor() {\n                        this._value = \"\", this._pos = 0\n                    }\n                    reset(e) {\n                        return this._value = e, this._pos = 0, this\n                    }\n                    next() {\n                        return this._pos += 1, this\n                    }\n                    hasNext() {\n                        return this._pos < this._value.length - 1\n                    }\n                    cmp(e) {\n                        return e.charCodeAt(0) - this._value.charCodeAt(this._pos)\n                    }\n                    value() {\n                        return this._value[this._pos]\n                    }\n                }\n                class a {\n                    constructor(e = !0) {\n                        this._caseSensitive = e\n                    }\n                    reset(e) {\n                        return this._value = e, this._from = 0, this._to = 0, this.next()\n                    }\n                    hasNext() {\n                        return this._to < this._value.length\n                    }\n                    next() {\n                        this._from = this._to;\n                        let e = !0;\n                        for (; this._to < this._value.length; this._to++) {\n                            if (46 === this._value.charCodeAt(this._to)) {\n                                if (!e) break;\n                                this._from++\n                            } else e = !1\n                        }\n                        return this\n                    }\n                    cmp(e) {\n                        return this._caseSensitive ? (0, s.TT)(e, this._value, 0, e.length, this._from, this._to) : (0, s.j_)(e, this._value, 0, e.length, this._from, this._to)\n                    }\n                    value() {\n                        return this._value.substring(this._from, this._to)\n                    }\n                }\n                class l {\n                    constructor(e = !0, t = !0) {\n                        this._splitOnBackslash = e, this._caseSensitive = t\n                    }\n                    reset(e) {\n                        return this._value = e.replace(/\\\\$|\\/$/, \"\"), this._from = 0, this._to = 0, this.next()\n                    }\n                    hasNext() {\n                        return this._to < this._value.length\n                    }\n                    next() {\n                        this._from = this._to;\n                        let e = !0;\n                        for (; this._to < this._value.length; this._to++) {\n                            const t = this._value.charCodeAt(this._to);\n                            if (47 === t || this._splitOnBackslash && 92 === t) {\n                                if (!e) break;\n                                this._from++\n                            } else e = !1\n                        }\n                        return this\n                    }\n                    cmp(e) {\n                        return this._caseSensitive ? (0, s.TT)(e, this._value, 0, e.length, this._from, this._to) : (0, s.j_)(e, this._value, 0, e.length, this._from, this._to)\n                    }\n                    value() {\n                        return this._value.substring(this._from, this._to)\n                    }\n                }\n                class c {\n                    constructor(e) {\n                        this._ignorePathCasing = e, this._states = [], this._stateIdx = 0\n                    }\n                    reset(e) {\n                        return this._value = e, this._states = [], this._value.scheme && this._states.push(1), this._value.authority && this._states.push(2), this._value.path && (this._pathIterator = new l(!1, !this._ignorePathCasing(e)), this._pathIterator.reset(e.path), this._pathIterator.value() && this._states.push(3)), this._value.query && this._states.push(4), this._value.fragment && this._states.push(5), this._stateIdx = 0, this\n                    }\n                    next() {\n                        return 3 === this._states[this._stateIdx] && this._pathIterator.hasNext() ? this._pathIterator.next() : this._stateIdx += 1, this\n                    }\n                    hasNext() {\n                        return 3 === this._states[this._stateIdx] && this._pathIterator.hasNext() || this._stateIdx < this._states.length - 1\n                    }\n                    cmp(e) {\n                        if (1 === this._states[this._stateIdx]) return (0, s.zY)(e, this._value.scheme);\n                        if (2 === this._states[this._stateIdx]) return (0, s.zY)(e, this._value.authority);\n                        if (3 === this._states[this._stateIdx]) return this._pathIterator.cmp(e);\n                        if (4 === this._states[this._stateIdx]) return (0, s.qu)(e, this._value.query);\n                        if (5 === this._states[this._stateIdx]) return (0, s.qu)(e, this._value.fragment);\n                        throw new Error\n                    }\n                    value() {\n                        if (1 === this._states[this._stateIdx]) return this._value.scheme;\n                        if (2 === this._states[this._stateIdx]) return this._value.authority;\n                        if (3 === this._states[this._stateIdx]) return this._pathIterator.value();\n                        if (4 === this._states[this._stateIdx]) return this._value.query;\n                        if (5 === this._states[this._stateIdx]) return this._value.fragment;\n                        throw new Error\n                    }\n                }\n                class d {\n                    constructor() {\n                        this.height = 1\n                    }\n                    rotateLeft() {\n                        const e = this.right;\n                        return this.right = e.left, e.left = this, this.updateHeight(), e.updateHeight(), e\n                    }\n                    rotateRight() {\n                        const e = this.left;\n                        return this.left = e.right, e.right = this, this.updateHeight(), e.updateHeight(), e\n                    }\n                    updateHeight() {\n                        this.height = 1 + Math.max(this.heightLeft, this.heightRight)\n                    }\n                    balanceFactor() {\n                        return this.heightRight - this.heightLeft\n                    }\n                    get heightLeft() {\n                        var e, t;\n                        return null !== (t = null === (e = this.left) || void 0 === e ? void 0 : e.height) && void 0 !== t ? t : 0\n                    }\n                    get heightRight() {\n                        var e, t;\n                        return null !== (t = null === (e = this.right) || void 0 === e ? void 0 : e.height) && void 0 !== t ? t : 0\n                    }\n                }\n                class h {\n                    constructor(e) {\n                        this._iter = e\n                    }\n                    static forUris(e = (() => !1)) {\n                        return new h(new c(e))\n                    }\n                    static forStrings() {\n                        return new h(new r)\n                    }\n                    static forConfigKeys() {\n                        return new h(new a)\n                    }\n                    clear() {\n                        this._root = void 0\n                    }\n                    set(e, t) {\n                        const i = this._iter.reset(e);\n                        let n;\n                        this._root || (this._root = new d, this._root.segment = i.value());\n                        const o = [];\n                        for (n = this._root;;) {\n                            const e = i.cmp(n.segment);\n                            if (e > 0) n.left || (n.left = new d, n.left.segment = i.value()), o.push([-1, n]), n = n.left;\n                            else if (e < 0) n.right || (n.right = new d, n.right.segment = i.value()), o.push([1, n]), n = n.right;\n                            else {\n                                if (!i.hasNext()) break;\n                                i.next(), n.mid || (n.mid = new d, n.mid.segment = i.value()), o.push([0, n]), n = n.mid\n                            }\n                        }\n                        const s = n.value;\n                        n.value = t, n.key = e;\n                        for (let e = o.length - 1; e >= 0; e--) {\n                            const t = o[e][1];\n                            t.updateHeight();\n                            const i = t.balanceFactor();\n                            if (i < -1 || i > 1) {\n                                const i = o[e][0],\n                                    n = o[e + 1][0];\n                                if (1 === i && 1 === n) o[e][1] = t.rotateLeft();\n                                else if (-1 === i && -1 === n) o[e][1] = t.rotateRight();\n                                else if (1 === i && -1 === n) t.right = o[e + 1][1] = o[e + 1][1].rotateRight(), o[e][1] = t.rotateLeft();\n                                else {\n                                    if (-1 !== i || 1 !== n) throw new Error;\n                                    t.left = o[e + 1][1] = o[e + 1][1].rotateLeft(), o[e][1] = t.rotateRight()\n                                }\n                                if (e > 0) switch (o[e - 1][0]) {\n                                    case -1:\n                                        o[e - 1][1].left = o[e][1];\n                                        break;\n                                    case 1:\n                                        o[e - 1][1].right = o[e][1];\n                                        break;\n                                    case 0:\n                                        o[e - 1][1].mid = o[e][1]\n                                } else this._root = o[0][1]\n                            }\n                        }\n                        return s\n                    }\n                    get(e) {\n                        var t;\n                        return null === (t = this._getNode(e)) || void 0 === t ? void 0 : t.value\n                    }\n                    _getNode(e) {\n                        const t = this._iter.reset(e);\n                        let i = this._root;\n                        for (; i;) {\n                            const e = t.cmp(i.segment);\n                            if (e > 0) i = i.left;\n                            else if (e < 0) i = i.right;\n                            else {\n                                if (!t.hasNext()) break;\n                                t.next(), i = i.mid\n                            }\n                        }\n                        return i\n                    }\n                    has(e) {\n                        const t = this._getNode(e);\n                        return !(void 0 === (null == t ? void 0 : t.value) && void 0 === (null == t ? void 0 : t.mid))\n                    }\n                    delete(e) {\n                        return this._delete(e, !1)\n                    }\n                    deleteSuperstr(e) {\n                        return this._delete(e, !0)\n                    }\n                    _delete(e, t) {\n                        var i;\n                        const n = this._iter.reset(e),\n                            o = [];\n                        let s = this._root;\n                        for (; s;) {\n                            const e = n.cmp(s.segment);\n                            if (e > 0) o.push([-1, s]), s = s.left;\n                            else if (e < 0) o.push([1, s]), s = s.right;\n                            else {\n                                if (!n.hasNext()) break;\n                                n.next(), o.push([0, s]), s = s.mid\n                            }\n                        }\n                        if (s) {\n                            if (t ? (s.left = void 0, s.mid = void 0, s.right = void 0, s.height = 1) : (s.key = void 0, s.value = void 0), !s.mid && !s.value)\n                                if (s.left && s.right) {\n                                    const e = this._min(s.right),\n                                        {\n                                            key: t,\n                                            value: i,\n                                            segment: n\n                                        } = e;\n                                    this._delete(e.key, !1), s.key = t, s.value = i, s.segment = n\n                                } else {\n                                    const e = null !== (i = s.left) && void 0 !== i ? i : s.right;\n                                    if (o.length > 0) {\n                                        const [t, i] = o[o.length - 1];\n                                        switch (t) {\n                                            case -1:\n                                                i.left = e;\n                                                break;\n                                            case 0:\n                                                i.mid = e;\n                                                break;\n                                            case 1:\n                                                i.right = e\n                                        }\n                                    } else this._root = e\n                                } for (let e = o.length - 1; e >= 0; e--) {\n                                const t = o[e][1];\n                                t.updateHeight();\n                                const i = t.balanceFactor();\n                                if (i > 1 ? (t.right.balanceFactor() >= 0 || (t.right = o[e + 1][1] = o[e + 1][1].rotateRight()), o[e][1] = t.rotateLeft()) : i < -1 && (t.left.balanceFactor() <= 0 || (t.left = o[e + 1][1] = o[e + 1][1].rotateLeft()), o[e][1] = t.rotateRight()), e > 0) switch (o[e - 1][0]) {\n                                    case -1:\n                                        o[e - 1][1].left = o[e][1];\n                                        break;\n                                    case 1:\n                                        o[e - 1][1].right = o[e][1];\n                                        break;\n                                    case 0:\n                                        o[e - 1][1].mid = o[e][1]\n                                } else this._root = o[0][1]\n                            }\n                        }\n                    }\n                    _min(e) {\n                        for (; e.left;) e = e.left;\n                        return e\n                    }\n                    findSubstr(e) {\n                        const t = this._iter.reset(e);\n                        let i, n = this._root;\n                        for (; n;) {\n                            const e = t.cmp(n.segment);\n                            if (e > 0) n = n.left;\n                            else if (e < 0) n = n.right;\n                            else {\n                                if (!t.hasNext()) break;\n                                t.next(), i = n.value || i, n = n.mid\n                            }\n                        }\n                        return n && n.value || i\n                    }\n                    findSuperstr(e) {\n                        const t = this._iter.reset(e);\n                        let i = this._root;\n                        for (; i;) {\n                            const e = t.cmp(i.segment);\n                            if (e > 0) i = i.left;\n                            else if (e < 0) i = i.right;\n                            else {\n                                if (!t.hasNext()) return i.mid ? this._entries(i.mid) : void 0;\n                                t.next(), i = i.mid\n                            }\n                        }\n                    }\n                    forEach(e) {\n                        for (const [t, i] of this) e(i, t)\n                    }*[Symbol.iterator]() {\n                        yield* this._entries(this._root)\n                    }* _entries(e) {\n                        e && (e.left && (yield* this._entries(e.left)), e.value && (yield [e.key, e.value]), e.mid && (yield* this._entries(e.mid)), e.right && (yield* this._entries(e.right)))\n                    }\n                }\n                class u {\n                    constructor(e, t) {\n                        this.uri = e, this.value = t\n                    }\n                }\n                class g {\n                    constructor(e, t) {\n                        this[n] = \"ResourceMap\", e instanceof g ? (this.map = new Map(e.map), this.toKey = null != t ? t : g.defaultToKey) : (this.map = new Map, this.toKey = null != e ? e : g.defaultToKey)\n                    }\n                    set(e, t) {\n                        return this.map.set(this.toKey(e), new u(e, t)), this\n                    }\n                    get(e) {\n                        var t;\n                        return null === (t = this.map.get(this.toKey(e))) || void 0 === t ? void 0 : t.value\n                    }\n                    has(e) {\n                        return this.map.has(this.toKey(e))\n                    }\n                    get size() {\n                        return this.map.size\n                    }\n                    clear() {\n                        this.map.clear()\n                    }\n                    delete(e) {\n                        return this.map.delete(this.toKey(e))\n                    }\n                    forEach(e, t) {\n                        void 0 !== t && (e = e.bind(t));\n                        for (let [t, i] of this.map) e(i.value, i.uri, this)\n                    }* values() {\n                        for (let e of this.map.values()) yield e.value\n                    }* keys() {\n                        for (let e of this.map.values()) yield e.uri\n                    }* entries() {\n                        for (let e of this.map.values()) yield [e.uri, e.value]\n                    }*[(n = Symbol.toStringTag, Symbol.iterator)]() {\n                        for (let [, e] of this.map) yield [e.uri, e.value]\n                    }\n                }\n                g.defaultToKey = e => e.toString();\n                class p {\n                    constructor() {\n                        this[o] = \"LinkedMap\", this._map = new Map, this._head = void 0, this._tail = void 0, this._size = 0, this._state = 0\n                    }\n                    clear() {\n                        this._map.clear(), this._head = void 0, this._tail = void 0, this._size = 0, this._state++\n                    }\n                    isEmpty() {\n                        return !this._head && !this._tail\n                    }\n                    get size() {\n                        return this._size\n                    }\n                    get first() {\n                        var e;\n                        return null === (e = this._head) || void 0 === e ? void 0 : e.value\n                    }\n                    get last() {\n                        var e;\n                        return null === (e = this._tail) || void 0 === e ? void 0 : e.value\n                    }\n                    has(e) {\n                        return this._map.has(e)\n                    }\n                    get(e, t = 0) {\n                        const i = this._map.get(e);\n                        if (i) return 0 !== t && this.touch(i, t), i.value\n                    }\n                    set(e, t, i = 0) {\n                        let n = this._map.get(e);\n                        if (n) n.value = t, 0 !== i && this.touch(n, i);\n                        else {\n                            switch (n = {\n                                key: e,\n                                value: t,\n                                next: void 0,\n                                previous: void 0\n                            }, i) {\n                                case 0:\n                                case 2:\n                                default:\n                                    this.addItemLast(n);\n                                    break;\n                                case 1:\n                                    this.addItemFirst(n)\n                            }\n                            this._map.set(e, n), this._size++\n                        }\n                        return this\n                    }\n                    delete(e) {\n                        return !!this.remove(e)\n                    }\n                    remove(e) {\n                        const t = this._map.get(e);\n                        if (t) return this._map.delete(e), this.removeItem(t), this._size--, t.value\n                    }\n                    shift() {\n                        if (!this._head && !this._tail) return;\n                        if (!this._head || !this._tail) throw new Error(\"Invalid list\");\n                        const e = this._head;\n                        return this._map.delete(e.key), this.removeItem(e), this._size--, e.value\n                    }\n                    forEach(e, t) {\n                        const i = this._state;\n                        let n = this._head;\n                        for (; n;) {\n                            if (t ? e.bind(t)(n.value, n.key, this) : e(n.value, n.key, this), this._state !== i) throw new Error(\"LinkedMap got modified during iteration.\");\n                            n = n.next\n                        }\n                    }\n                    keys() {\n                        const e = this,\n                            t = this._state;\n                        let i = this._head;\n                        const n = {\n                            [Symbol.iterator]: () => n,\n                            next() {\n                                if (e._state !== t) throw new Error(\"LinkedMap got modified during iteration.\");\n                                if (i) {\n                                    const e = {\n                                        value: i.key,\n                                        done: !1\n                                    };\n                                    return i = i.next, e\n                                }\n                                return {\n                                    value: void 0,\n                                    done: !0\n                                }\n                            }\n                        };\n                        return n\n                    }\n                    values() {\n                        const e = this,\n                            t = this._state;\n                        let i = this._head;\n                        const n = {\n                            [Symbol.iterator]: () => n,\n                            next() {\n                                if (e._state !== t) throw new Error(\"LinkedMap got modified during iteration.\");\n                                if (i) {\n                                    const e = {\n                                        value: i.value,\n                                        done: !1\n                                    };\n                                    return i = i.next, e\n                                }\n                                return {\n                                    value: void 0,\n                                    done: !0\n                                }\n                            }\n                        };\n                        return n\n                    }\n                    entries() {\n                        const e = this,\n                            t = this._state;\n                        let i = this._head;\n                        const n = {\n                            [Symbol.iterator]: () => n,\n                            next() {\n                                if (e._state !== t) throw new Error(\"LinkedMap got modified during iteration.\");\n                                if (i) {\n                                    const e = {\n                                        value: [i.key, i.value],\n                                        done: !1\n                                    };\n                                    return i = i.next, e\n                                }\n                                return {\n                                    value: void 0,\n                                    done: !0\n                                }\n                            }\n                        };\n                        return n\n                    } [(o = Symbol.toStringTag, Symbol.iterator)]() {\n                        return this.entries()\n                    }\n                    trimOld(e) {\n                        if (e >= this.size) return;\n                        if (0 === e) return void this.clear();\n                        let t = this._head,\n                            i = this.size;\n                        for (; t && i > e;) this._map.delete(t.key), t = t.next, i--;\n                        this._head = t, this._size = i, t && (t.previous = void 0), this._state++\n                    }\n                    addItemFirst(e) {\n                        if (this._head || this._tail) {\n                            if (!this._head) throw new Error(\"Invalid list\");\n                            e.next = this._head, this._head.previous = e\n                        } else this._tail = e;\n                        this._head = e, this._state++\n                    }\n                    addItemLast(e) {\n                        if (this._head || this._tail) {\n                            if (!this._tail) throw new Error(\"Invalid list\");\n                            e.previous = this._tail, this._tail.next = e\n                        } else this._head = e;\n                        this._tail = e, this._state++\n                    }\n                    removeItem(e) {\n                        if (e === this._head && e === this._tail) this._head = void 0, this._tail = void 0;\n                        else if (e === this._head) {\n                            if (!e.next) throw new Error(\"Invalid list\");\n                            e.next.previous = void 0, this._head = e.next\n                        } else if (e === this._tail) {\n                            if (!e.previous) throw new Error(\"Invalid list\");\n                            e.previous.next = void 0, this._tail = e.previous\n                        } else {\n                            const t = e.next,\n                                i = e.previous;\n                            if (!t || !i) throw new Error(\"Invalid list\");\n                            t.previous = i, i.next = t\n                        }\n                        e.next = void 0, e.previous = void 0, this._state++\n                    }\n                    touch(e, t) {\n                        if (!this._head || !this._tail) throw new Error(\"Invalid list\");\n                        if (1 === t || 2 === t)\n                            if (1 === t) {\n                                if (e === this._head) return;\n                                const t = e.next,\n                                    i = e.previous;\n                                e === this._tail ? (i.next = void 0, this._tail = i) : (t.previous = i, i.next = t), e.previous = void 0, e.next = this._head, this._head.previous = e, this._head = e, this._state++\n                            } else if (2 === t) {\n                            if (e === this._tail) return;\n                            const t = e.next,\n                                i = e.previous;\n                            e === this._head ? (t.previous = void 0, this._head = t) : (t.previous = i, i.next = t), e.next = void 0, e.previous = this._tail, this._tail.next = e, this._tail = e, this._state++\n                        }\n                    }\n                    toJSON() {\n                        const e = [];\n                        return this.forEach(((t, i) => {\n                            e.push([i, t])\n                        })), e\n                    }\n                    fromJSON(e) {\n                        this.clear();\n                        for (const [t, i] of e) this.set(t, i)\n                    }\n                }\n                class f extends p {\n                    constructor(e, t = 1) {\n                        super(), this._limit = e, this._ratio = Math.min(Math.max(0, t), 1)\n                    }\n                    get limit() {\n                        return this._limit\n                    }\n                    set limit(e) {\n                        this._limit = e, this.checkTrim()\n                    }\n                    get(e, t = 2) {\n                        return super.get(e, t)\n                    }\n                    peek(e) {\n                        return super.get(e, 0)\n                    }\n                    set(e, t) {\n                        return super.set(e, t, 2), this.checkTrim(), this\n                    }\n                    checkTrim() {\n                        this.size > this._limit && this.trimOld(Math.round(this._limit * this._ratio))\n                    }\n                }\n            },\n            33720: (e, t, i) => {\n                \"use strict\";\n                let n;\n                i.d(t, {\n                        Qc: () => s,\n                        Th: () => o\n                    }), e = i.hmd(e),\n                    function() {\n                        function t(e) {\n                            n = e()\n                        }\n                        t.amd = !0,\n                            function(i, n) {\n                                \"object\" == typeof exports ? e.exports = n() : t.amd ? t(n) : (i = \"undefined\" != typeof globalThis ? globalThis : i || self).marked = n()\n                            }(this, (function() {\n                                function e(e, t) {\n                                    for (var i = 0; i < t.length; i++) {\n                                        var n = t[i];\n                                        n.enumerable = n.enumerable || !1, n.configurable = !0, \"value\" in n && (n.writable = !0), Object.defineProperty(e, n.key, n)\n                                    }\n                                }\n\n                                function t(e, t) {\n                                    (null == t || t > e.length) && (t = e.length);\n                                    for (var i = 0, n = new Array(t); i < t; i++) n[i] = e[i];\n                                    return n\n                                }\n\n                                function i(e, i) {\n                                    var n = \"undefined\" != typeof Symbol && e[Symbol.iterator] || e[\"@@iterator\"];\n                                    if (n) return (n = n.call(e)).next.bind(n);\n                                    if (Array.isArray(e) || (n = function(e, i) {\n                                            if (e) {\n                                                if (\"string\" == typeof e) return t(e, i);\n                                                var n = Object.prototype.toString.call(e).slice(8, -1);\n                                                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) ? t(e, i) : void 0\n                                            }\n                                        }(e)) || i && e && \"number\" == typeof e.length) {\n                                        n && (e = n);\n                                        var o = 0;\n                                        return function() {\n                                            return o >= e.length ? {\n                                                done: !0\n                                            } : {\n                                                done: !1,\n                                                value: e[o++]\n                                            }\n                                        }\n                                    }\n                                    throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")\n                                }\n                                var n = {\n                                    exports: {}\n                                };\n\n                                function o() {\n                                    return {\n                                        baseUrl: null,\n                                        breaks: !1,\n                                        extensions: null,\n                                        gfm: !0,\n                                        headerIds: !0,\n                                        headerPrefix: \"\",\n                                        highlight: null,\n                                        langPrefix: \"language-\",\n                                        mangle: !0,\n                                        pedantic: !1,\n                                        renderer: null,\n                                        sanitize: !1,\n                                        sanitizer: null,\n                                        silent: !1,\n                                        smartLists: !1,\n                                        smartypants: !1,\n                                        tokenizer: null,\n                                        walkTokens: null,\n                                        xhtml: !1\n                                    }\n                                }\n                                n.exports = {\n                                    defaults: {\n                                        baseUrl: null,\n                                        breaks: !1,\n                                        extensions: null,\n                                        gfm: !0,\n                                        headerIds: !0,\n                                        headerPrefix: \"\",\n                                        highlight: null,\n                                        langPrefix: \"language-\",\n                                        mangle: !0,\n                                        pedantic: !1,\n                                        renderer: null,\n                                        sanitize: !1,\n                                        sanitizer: null,\n                                        silent: !1,\n                                        smartLists: !1,\n                                        smartypants: !1,\n                                        tokenizer: null,\n                                        walkTokens: null,\n                                        xhtml: !1\n                                    },\n                                    getDefaults: o,\n                                    changeDefaults: function(e) {\n                                        n.exports.defaults = e\n                                    }\n                                };\n                                var s = /[&<>\"']/,\n                                    r = /[&<>\"']/g,\n                                    a = /[<>\"']|&(?!#?\\w+;)/,\n                                    l = /[<>\"']|&(?!#?\\w+;)/g,\n                                    c = {\n                                        \"&\": \"&amp;\",\n                                        \"<\": \"&lt;\",\n                                        \">\": \"&gt;\",\n                                        '\"': \"&quot;\",\n                                        \"'\": \"&#39;\"\n                                    },\n                                    d = function(e) {\n                                        return c[e]\n                                    };\n                                var h = /&(#(?:\\d+)|(?:#x[0-9A-Fa-f]+)|(?:\\w+));?/gi;\n\n                                function u(e) {\n                                    return e.replace(h, (function(e, t) {\n                                        return \"colon\" === (t = t.toLowerCase()) ? \":\" : \"#\" === t.charAt(0) ? \"x\" === t.charAt(1) ? String.fromCharCode(parseInt(t.substring(2), 16)) : String.fromCharCode(+t.substring(1)) : \"\"\n                                    }))\n                                }\n                                var g = /(^|[^\\[])\\^/g;\n                                var p = /[^\\w:]/g,\n                                    f = /^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;\n                                var m = {},\n                                    v = /^[^:]+:\\/*[^/]*$/,\n                                    _ = /^([^:]+:)[\\s\\S]*$/,\n                                    b = /^([^:]+:\\/*[^/]*)[\\s\\S]*$/;\n\n                                function w(e, t) {\n                                    m[\" \" + e] || (v.test(e) ? m[\" \" + e] = e + \"/\" : m[\" \" + e] = y(e, \"/\", !0));\n                                    var i = -1 === (e = m[\" \" + e]).indexOf(\":\");\n                                    return \"//\" === t.substring(0, 2) ? i ? t : e.replace(_, \"$1\") + t : \"/\" === t.charAt(0) ? i ? t : e.replace(b, \"$1\") + t : e + t\n                                }\n\n                                function y(e, t, i) {\n                                    var n = e.length;\n                                    if (0 === n) return \"\";\n                                    for (var o = 0; o < n;) {\n                                        var s = e.charAt(n - o - 1);\n                                        if (s !== t || i) {\n                                            if (s === t || !i) break;\n                                            o++\n                                        } else o++\n                                    }\n                                    return e.substr(0, n - o)\n                                }\n                                var C = function(e, t) {\n                                        if (t) {\n                                            if (s.test(e)) return e.replace(r, d)\n                                        } else if (a.test(e)) return e.replace(l, d);\n                                        return e\n                                    },\n                                    x = u,\n                                    S = function(e, t) {\n                                        e = e.source || e, t = t || \"\";\n                                        var i = {\n                                            replace: function(t, n) {\n                                                return n = (n = n.source || n).replace(g, \"$1\"), e = e.replace(t, n), i\n                                            },\n                                            getRegex: function() {\n                                                return new RegExp(e, t)\n                                            }\n                                        };\n                                        return i\n                                    },\n                                    k = function(e, t, i) {\n                                        if (e) {\n                                            var n;\n                                            try {\n                                                n = decodeURIComponent(u(i)).replace(p, \"\").toLowerCase()\n                                            } catch (e) {\n                                                return null\n                                            }\n                                            if (0 === n.indexOf(\"javascript:\") || 0 === n.indexOf(\"vbscript:\") || 0 === n.indexOf(\"data:\")) return null\n                                        }\n                                        t && !f.test(i) && (i = w(t, i));\n                                        try {\n                                            i = encodeURI(i).replace(/%25/g, \"%\")\n                                        } catch (e) {\n                                            return null\n                                        }\n                                        return i\n                                    },\n                                    L = {\n                                        exec: function() {}\n                                    },\n                                    N = function(e) {\n                                        for (var t, i, n = 1; n < arguments.length; n++)\n                                            for (i in t = arguments[n]) Object.prototype.hasOwnProperty.call(t, i) && (e[i] = t[i]);\n                                        return e\n                                    },\n                                    D = function(e, t) {\n                                        var i = e.replace(/\\|/g, (function(e, t, i) {\n                                                for (var n = !1, o = t; --o >= 0 && \"\\\\\" === i[o];) n = !n;\n                                                return n ? \"|\" : \" |\"\n                                            })).split(/ \\|/),\n                                            n = 0;\n                                        if (i[0].trim() || i.shift(), i[i.length - 1].trim() || i.pop(), i.length > t) i.splice(t);\n                                        else\n                                            for (; i.length < t;) i.push(\"\");\n                                        for (; n < i.length; n++) i[n] = i[n].trim().replace(/\\\\\\|/g, \"|\");\n                                        return i\n                                    },\n                                    I = y,\n                                    E = function(e, t) {\n                                        if (-1 === e.indexOf(t[1])) return -1;\n                                        for (var i = e.length, n = 0, o = 0; o < i; o++)\n                                            if (\"\\\\\" === e[o]) o++;\n                                            else if (e[o] === t[0]) n++;\n                                        else if (e[o] === t[1] && --n < 0) return o;\n                                        return -1\n                                    },\n                                    T = function(e) {\n                                        e && e.sanitize && !e.silent && console.warn(\"marked(): sanitize and sanitizer parameters are deprecated since version 0.7.0, should not be used and will be removed in the future. Read more here: https://marked.js.org/#/USING_ADVANCED.md#options\")\n                                    },\n                                    M = function(e, t) {\n                                        if (t < 1) return \"\";\n                                        for (var i = \"\"; t > 1;) 1 & t && (i += e), t >>= 1, e += e;\n                                        return i + e\n                                    },\n                                    A = n.exports.defaults,\n                                    O = I,\n                                    P = D,\n                                    R = C,\n                                    F = E;\n\n                                function B(e, t, i, n) {\n                                    var o = t.href,\n                                        s = t.title ? R(t.title) : null,\n                                        r = e[1].replace(/\\\\([\\[\\]])/g, \"$1\");\n                                    if (\"!\" !== e[0].charAt(0)) {\n                                        n.state.inLink = !0;\n                                        var a = {\n                                            type: \"link\",\n                                            raw: i,\n                                            href: o,\n                                            title: s,\n                                            text: r,\n                                            tokens: n.inlineTokens(r, [])\n                                        };\n                                        return n.state.inLink = !1, a\n                                    }\n                                    return {\n                                        type: \"image\",\n                                        raw: i,\n                                        href: o,\n                                        title: s,\n                                        text: R(r)\n                                    }\n                                }\n                                var V = function() {\n                                        function e(e) {\n                                            this.options = e || A\n                                        }\n                                        var t = e.prototype;\n                                        return t.space = function(e) {\n                                            var t = this.rules.block.newline.exec(e);\n                                            if (t) return t[0].length > 1 ? {\n                                                type: \"space\",\n                                                raw: t[0]\n                                            } : {\n                                                raw: \"\\n\"\n                                            }\n                                        }, t.code = function(e) {\n                                            var t = this.rules.block.code.exec(e);\n                                            if (t) {\n                                                var i = t[0].replace(/^ {1,4}/gm, \"\");\n                                                return {\n                                                    type: \"code\",\n                                                    raw: t[0],\n                                                    codeBlockStyle: \"indented\",\n                                                    text: this.options.pedantic ? i : O(i, \"\\n\")\n                                                }\n                                            }\n                                        }, t.fences = function(e) {\n                                            var t = this.rules.block.fences.exec(e);\n                                            if (t) {\n                                                var i = t[0],\n                                                    n = function(e, t) {\n                                                        var i = e.match(/^(\\s+)(?:```)/);\n                                                        if (null === i) return t;\n                                                        var n = i[1];\n                                                        return t.split(\"\\n\").map((function(e) {\n                                                            var t = e.match(/^\\s+/);\n                                                            return null === t ? e : t[0].length >= n.length ? e.slice(n.length) : e\n                                                        })).join(\"\\n\")\n                                                    }(i, t[3] || \"\");\n                                                return {\n                                                    type: \"code\",\n                                                    raw: i,\n                                                    lang: t[2] ? t[2].trim() : t[2],\n                                                    text: n\n                                                }\n                                            }\n                                        }, t.heading = function(e) {\n                                            var t = this.rules.block.heading.exec(e);\n                                            if (t) {\n                                                var i = t[2].trim();\n                                                if (/#$/.test(i)) {\n                                                    var n = O(i, \"#\");\n                                                    this.options.pedantic ? i = n.trim() : n && !/ $/.test(n) || (i = n.trim())\n                                                }\n                                                var o = {\n                                                    type: \"heading\",\n                                                    raw: t[0],\n                                                    depth: t[1].length,\n                                                    text: i,\n                                                    tokens: []\n                                                };\n                                                return this.lexer.inline(o.text, o.tokens), o\n                                            }\n                                        }, t.hr = function(e) {\n                                            var t = this.rules.block.hr.exec(e);\n                                            if (t) return {\n                                                type: \"hr\",\n                                                raw: t[0]\n                                            }\n                                        }, t.blockquote = function(e) {\n                                            var t = this.rules.block.blockquote.exec(e);\n                                            if (t) {\n                                                var i = t[0].replace(/^ *> ?/gm, \"\");\n                                                return {\n                                                    type: \"blockquote\",\n                                                    raw: t[0],\n                                                    tokens: this.lexer.blockTokens(i, []),\n                                                    text: i\n                                                }\n                                            }\n                                        }, t.list = function(e) {\n                                            var t = this.rules.block.list.exec(e);\n                                            if (t) {\n                                                var i, n, o, s, r, a, l, c, d, h, u = t[1].trim(),\n                                                    g = u.length > 1,\n                                                    p = {\n                                                        type: \"list\",\n                                                        raw: \"\",\n                                                        ordered: g,\n                                                        start: g ? +u.slice(0, -1) : \"\",\n                                                        loose: !1,\n                                                        items: []\n                                                    };\n                                                u = g ? \"\\\\d{1,9}\\\\\" + u.slice(-1) : \"\\\\\" + u, this.options.pedantic && (u = g ? u : \"[*+-]\");\n                                                for (var f = new RegExp(\"^( {0,3}\" + u + \")((?: [^\\\\n]*| *)(?:\\\\n[^\\\\n]*)*(?:\\\\n|$))\"); e && !this.rules.block.hr.test(e) && (t = f.exec(e));) {\n                                                    d = t[2].split(\"\\n\"), this.options.pedantic ? (s = 2, h = d[0].trimLeft()) : (s = t[2].search(/[^ ]/), s = t[1].length + (s > 4 ? 1 : s), h = d[0].slice(s - t[1].length)), a = !1, i = t[0], !d[0] && /^ *$/.test(d[1]) && (i = t[1] + d.slice(0, 2).join(\"\\n\") + \"\\n\", p.loose = !0, d = []);\n                                                    var m = new RegExp(\"^ {0,\" + Math.min(3, s - 1) + \"}(?:[*+-]|\\\\d{1,9}[.)])\");\n                                                    for (r = 1; r < d.length; r++) {\n                                                        if (c = d[r], this.options.pedantic && (c = c.replace(/^ {1,4}(?=( {4})*[^ ])/g, \"  \")), m.test(c)) {\n                                                            i = t[1] + d.slice(0, r).join(\"\\n\") + \"\\n\";\n                                                            break\n                                                        }\n                                                        if (a) {\n                                                            if (!(c.search(/[^ ]/) >= s) && c.trim()) {\n                                                                i = t[1] + d.slice(0, r).join(\"\\n\") + \"\\n\";\n                                                                break\n                                                            }\n                                                            h += \"\\n\" + c.slice(s)\n                                                        } else c.trim() || (a = !0), c.search(/[^ ]/) >= s ? h += \"\\n\" + c.slice(s) : h += \"\\n\" + c\n                                                    }\n                                                    p.loose || (l ? p.loose = !0 : /\\n *\\n *$/.test(i) && (l = !0)), this.options.gfm && (n = /^\\[[ xX]\\] /.exec(h)) && (o = \"[ ] \" !== n[0], h = h.replace(/^\\[[ xX]\\] +/, \"\")), p.items.push({\n                                                        type: \"list_item\",\n                                                        raw: i,\n                                                        task: !!n,\n                                                        checked: o,\n                                                        loose: !1,\n                                                        text: h\n                                                    }), p.raw += i, e = e.slice(i.length)\n                                                }\n                                                p.items[p.items.length - 1].raw = i.trimRight(), p.items[p.items.length - 1].text = h.trimRight(), p.raw = p.raw.trimRight();\n                                                var v = p.items.length;\n                                                for (r = 0; r < v; r++) this.lexer.state.top = !1, p.items[r].tokens = this.lexer.blockTokens(p.items[r].text, []), p.items[r].tokens.some((function(e) {\n                                                    return \"space\" === e.type\n                                                })) && (p.loose = !0, p.items[r].loose = !0);\n                                                return p\n                                            }\n                                        }, t.html = function(e) {\n                                            var t = this.rules.block.html.exec(e);\n                                            if (t) {\n                                                var i = {\n                                                    type: \"html\",\n                                                    raw: t[0],\n                                                    pre: !this.options.sanitizer && (\"pre\" === t[1] || \"script\" === t[1] || \"style\" === t[1]),\n                                                    text: t[0]\n                                                };\n                                                return this.options.sanitize && (i.type = \"paragraph\", i.text = this.options.sanitizer ? this.options.sanitizer(t[0]) : R(t[0]), i.tokens = [], this.lexer.inline(i.text, i.tokens)), i\n                                            }\n                                        }, t.def = function(e) {\n                                            var t = this.rules.block.def.exec(e);\n                                            if (t) return t[3] && (t[3] = t[3].substring(1, t[3].length - 1)), {\n                                                type: \"def\",\n                                                tag: t[1].toLowerCase().replace(/\\s+/g, \" \"),\n                                                raw: t[0],\n                                                href: t[2],\n                                                title: t[3]\n                                            }\n                                        }, t.table = function(e) {\n                                            var t = this.rules.block.table.exec(e);\n                                            if (t) {\n                                                var i = {\n                                                    type: \"table\",\n                                                    header: P(t[1]).map((function(e) {\n                                                        return {\n                                                            text: e\n                                                        }\n                                                    })),\n                                                    align: t[2].replace(/^ *|\\| *$/g, \"\").split(/ *\\| */),\n                                                    rows: t[3] ? t[3].replace(/\\n$/, \"\").split(\"\\n\") : []\n                                                };\n                                                if (i.header.length === i.align.length) {\n                                                    i.raw = t[0];\n                                                    var n, o, s, r, a = i.align.length;\n                                                    for (n = 0; n < a; n++) /^ *-+: *$/.test(i.align[n]) ? i.align[n] = \"right\" : /^ *:-+: *$/.test(i.align[n]) ? i.align[n] = \"center\" : /^ *:-+ *$/.test(i.align[n]) ? i.align[n] = \"left\" : i.align[n] = null;\n                                                    for (a = i.rows.length, n = 0; n < a; n++) i.rows[n] = P(i.rows[n], i.header.length).map((function(e) {\n                                                        return {\n                                                            text: e\n                                                        }\n                                                    }));\n                                                    for (a = i.header.length, o = 0; o < a; o++) i.header[o].tokens = [], this.lexer.inlineTokens(i.header[o].text, i.header[o].tokens);\n                                                    for (a = i.rows.length, o = 0; o < a; o++)\n                                                        for (r = i.rows[o], s = 0; s < r.length; s++) r[s].tokens = [], this.lexer.inlineTokens(r[s].text, r[s].tokens);\n                                                    return i\n                                                }\n                                            }\n                                        }, t.lheading = function(e) {\n                                            var t = this.rules.block.lheading.exec(e);\n                                            if (t) {\n                                                var i = {\n                                                    type: \"heading\",\n                                                    raw: t[0],\n                                                    depth: \"=\" === t[2].charAt(0) ? 1 : 2,\n                                                    text: t[1],\n                                                    tokens: []\n                                                };\n                                                return this.lexer.inline(i.text, i.tokens), i\n                                            }\n                                        }, t.paragraph = function(e) {\n                                            var t = this.rules.block.paragraph.exec(e);\n                                            if (t) {\n                                                var i = {\n                                                    type: \"paragraph\",\n                                                    raw: t[0],\n                                                    text: \"\\n\" === t[1].charAt(t[1].length - 1) ? t[1].slice(0, -1) : t[1],\n                                                    tokens: []\n                                                };\n                                                return this.lexer.inline(i.text, i.tokens), i\n                                            }\n                                        }, t.text = function(e) {\n                                            var t = this.rules.block.text.exec(e);\n                                            if (t) {\n                                                var i = {\n                                                    type: \"text\",\n                                                    raw: t[0],\n                                                    text: t[0],\n                                                    tokens: []\n                                                };\n                                                return this.lexer.inline(i.text, i.tokens), i\n                                            }\n                                        }, t.escape = function(e) {\n                                            var t = this.rules.inline.escape.exec(e);\n                                            if (t) return {\n                                                type: \"escape\",\n                                                raw: t[0],\n                                                text: R(t[1])\n                                            }\n                                        }, t.tag = function(e) {\n                                            var t = this.rules.inline.tag.exec(e);\n                                            if (t) return !this.lexer.state.inLink && /^<a /i.test(t[0]) ? this.lexer.state.inLink = !0 : this.lexer.state.inLink && /^<\\/a>/i.test(t[0]) && (this.lexer.state.inLink = !1), !this.lexer.state.inRawBlock && /^<(pre|code|kbd|script)(\\s|>)/i.test(t[0]) ? this.lexer.state.inRawBlock = !0 : this.lexer.state.inRawBlock && /^<\\/(pre|code|kbd|script)(\\s|>)/i.test(t[0]) && (this.lexer.state.inRawBlock = !1), {\n                                                type: this.options.sanitize ? \"text\" : \"html\",\n                                                raw: t[0],\n                                                inLink: this.lexer.state.inLink,\n                                                inRawBlock: this.lexer.state.inRawBlock,\n                                                text: this.options.sanitize ? this.options.sanitizer ? this.options.sanitizer(t[0]) : R(t[0]) : t[0]\n                                            }\n                                        }, t.link = function(e) {\n                                            var t = this.rules.inline.link.exec(e);\n                                            if (t) {\n                                                var i = t[2].trim();\n                                                if (!this.options.pedantic && /^</.test(i)) {\n                                                    if (!/>$/.test(i)) return;\n                                                    var n = O(i.slice(0, -1), \"\\\\\");\n                                                    if ((i.length - n.length) % 2 == 0) return\n                                                } else {\n                                                    var o = F(t[2], \"()\");\n                                                    if (o > -1) {\n                                                        var s = (0 === t[0].indexOf(\"!\") ? 5 : 4) + t[1].length + o;\n                                                        t[2] = t[2].substring(0, o), t[0] = t[0].substring(0, s).trim(), t[3] = \"\"\n                                                    }\n                                                }\n                                                var r = t[2],\n                                                    a = \"\";\n                                                if (this.options.pedantic) {\n                                                    var l = /^([^'\"]*[^\\s])\\s+(['\"])(.*)\\2/.exec(r);\n                                                    l && (r = l[1], a = l[3])\n                                                } else a = t[3] ? t[3].slice(1, -1) : \"\";\n                                                return r = r.trim(), /^</.test(r) && (r = this.options.pedantic && !/>$/.test(i) ? r.slice(1) : r.slice(1, -1)), B(t, {\n                                                    href: r ? r.replace(this.rules.inline._escapes, \"$1\") : r,\n                                                    title: a ? a.replace(this.rules.inline._escapes, \"$1\") : a\n                                                }, t[0], this.lexer)\n                                            }\n                                        }, t.reflink = function(e, t) {\n                                            var i;\n                                            if ((i = this.rules.inline.reflink.exec(e)) || (i = this.rules.inline.nolink.exec(e))) {\n                                                var n = (i[2] || i[1]).replace(/\\s+/g, \" \");\n                                                if (!(n = t[n.toLowerCase()]) || !n.href) {\n                                                    var o = i[0].charAt(0);\n                                                    return {\n                                                        type: \"text\",\n                                                        raw: o,\n                                                        text: o\n                                                    }\n                                                }\n                                                return B(i, n, i[0], this.lexer)\n                                            }\n                                        }, t.emStrong = function(e, t, i) {\n                                            void 0 === i && (i = \"\");\n                                            var n = this.rules.inline.emStrong.lDelim.exec(e);\n                                            if (n && (!n[3] || !i.match(/(?:[0-9A-Za-z\\xAA\\xB2\\xB3\\xB5\\xB9\\xBA\\xBC-\\xBE\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u05D0-\\u05EA\\u05EF-\\u05F2\\u0620-\\u064A\\u0660-\\u0669\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07C0-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u0860-\\u086A\\u08A0-\\u08B4\\u08B6-\\u08C7\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0966-\\u096F\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09E6-\\u09F1\\u09F4-\\u09F9\\u09FC\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A66-\\u0A6F\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0AE6-\\u0AEF\\u0AF9\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B66-\\u0B6F\\u0B71-\\u0B77\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0BE6-\\u0BF2\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58-\\u0C5A\\u0C60\\u0C61\\u0C66-\\u0C6F\\u0C78-\\u0C7E\\u0C80\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CE6-\\u0CEF\\u0CF1\\u0CF2\\u0D04-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D54-\\u0D56\\u0D58-\\u0D61\\u0D66-\\u0D78\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0DE6-\\u0DEF\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E50-\\u0E59\\u0E81\\u0E82\\u0E84\\u0E86-\\u0E8A\\u0E8C-\\u0EA3\\u0EA5\\u0EA7-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0ED0-\\u0ED9\\u0EDC-\\u0EDF\\u0F00\\u0F20-\\u0F33\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F-\\u1049\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u1090-\\u1099\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1369-\\u137C\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u17E0-\\u17E9\\u17F0-\\u17F9\\u1810-\\u1819\\u1820-\\u1878\\u1880-\\u1884\\u1887-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1946-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u19D0-\\u19DA\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1A80-\\u1A89\\u1A90-\\u1A99\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B50-\\u1B59\\u1B83-\\u1BA0\\u1BAE-\\u1BE5\\u1C00-\\u1C23\\u1C40-\\u1C49\\u1C4D-\\u1C7D\\u1C80-\\u1C88\\u1C90-\\u1CBA\\u1CBD-\\u1CBF\\u1CE9-\\u1CEC\\u1CEE-\\u1CF3\\u1CF5\\u1CF6\\u1CFA\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2070\\u2071\\u2074-\\u2079\\u207F-\\u2089\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2150-\\u2189\\u2460-\\u249B\\u24EA-\\u24FF\\u2776-\\u2793\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2CFD\\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-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312F\\u3131-\\u318E\\u3192-\\u3195\\u31A0-\\u31BF\\u31F0-\\u31FF\\u3220-\\u3229\\u3248-\\u324F\\u3251-\\u325F\\u3280-\\u3289\\u32B1-\\u32BF\\u3400-\\u4DBF\\u4E00-\\u9FFC\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6EF\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7BF\\uA7C2-\\uA7CA\\uA7F5-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA830-\\uA835\\uA840-\\uA873\\uA882-\\uA8B3\\uA8D0-\\uA8D9\\uA8F2-\\uA8F7\\uA8FB\\uA8FD\\uA8FE\\uA900-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF-\\uA9D9\\uA9E0-\\uA9E4\\uA9E6-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA50-\\uAA59\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB69\\uAB70-\\uABE2\\uABF0-\\uABF9\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\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]|\\uD800[\\uDC00-\\uDC0B\\uDC0D-\\uDC26\\uDC28-\\uDC3A\\uDC3C\\uDC3D\\uDC3F-\\uDC4D\\uDC50-\\uDC5D\\uDC80-\\uDCFA\\uDD07-\\uDD33\\uDD40-\\uDD78\\uDD8A\\uDD8B\\uDE80-\\uDE9C\\uDEA0-\\uDED0\\uDEE1-\\uDEFB\\uDF00-\\uDF23\\uDF2D-\\uDF4A\\uDF50-\\uDF75\\uDF80-\\uDF9D\\uDFA0-\\uDFC3\\uDFC8-\\uDFCF\\uDFD1-\\uDFD5]|\\uD801[\\uDC00-\\uDC9D\\uDCA0-\\uDCA9\\uDCB0-\\uDCD3\\uDCD8-\\uDCFB\\uDD00-\\uDD27\\uDD30-\\uDD63\\uDE00-\\uDF36\\uDF40-\\uDF55\\uDF60-\\uDF67]|\\uD802[\\uDC00-\\uDC05\\uDC08\\uDC0A-\\uDC35\\uDC37\\uDC38\\uDC3C\\uDC3F-\\uDC55\\uDC58-\\uDC76\\uDC79-\\uDC9E\\uDCA7-\\uDCAF\\uDCE0-\\uDCF2\\uDCF4\\uDCF5\\uDCFB-\\uDD1B\\uDD20-\\uDD39\\uDD80-\\uDDB7\\uDDBC-\\uDDCF\\uDDD2-\\uDE00\\uDE10-\\uDE13\\uDE15-\\uDE17\\uDE19-\\uDE35\\uDE40-\\uDE48\\uDE60-\\uDE7E\\uDE80-\\uDE9F\\uDEC0-\\uDEC7\\uDEC9-\\uDEE4\\uDEEB-\\uDEEF\\uDF00-\\uDF35\\uDF40-\\uDF55\\uDF58-\\uDF72\\uDF78-\\uDF91\\uDFA9-\\uDFAF]|\\uD803[\\uDC00-\\uDC48\\uDC80-\\uDCB2\\uDCC0-\\uDCF2\\uDCFA-\\uDD23\\uDD30-\\uDD39\\uDE60-\\uDE7E\\uDE80-\\uDEA9\\uDEB0\\uDEB1\\uDF00-\\uDF27\\uDF30-\\uDF45\\uDF51-\\uDF54\\uDFB0-\\uDFCB\\uDFE0-\\uDFF6]|\\uD804[\\uDC03-\\uDC37\\uDC52-\\uDC6F\\uDC83-\\uDCAF\\uDCD0-\\uDCE8\\uDCF0-\\uDCF9\\uDD03-\\uDD26\\uDD36-\\uDD3F\\uDD44\\uDD47\\uDD50-\\uDD72\\uDD76\\uDD83-\\uDDB2\\uDDC1-\\uDDC4\\uDDD0-\\uDDDA\\uDDDC\\uDDE1-\\uDDF4\\uDE00-\\uDE11\\uDE13-\\uDE2B\\uDE80-\\uDE86\\uDE88\\uDE8A-\\uDE8D\\uDE8F-\\uDE9D\\uDE9F-\\uDEA8\\uDEB0-\\uDEDE\\uDEF0-\\uDEF9\\uDF05-\\uDF0C\\uDF0F\\uDF10\\uDF13-\\uDF28\\uDF2A-\\uDF30\\uDF32\\uDF33\\uDF35-\\uDF39\\uDF3D\\uDF50\\uDF5D-\\uDF61]|\\uD805[\\uDC00-\\uDC34\\uDC47-\\uDC4A\\uDC50-\\uDC59\\uDC5F-\\uDC61\\uDC80-\\uDCAF\\uDCC4\\uDCC5\\uDCC7\\uDCD0-\\uDCD9\\uDD80-\\uDDAE\\uDDD8-\\uDDDB\\uDE00-\\uDE2F\\uDE44\\uDE50-\\uDE59\\uDE80-\\uDEAA\\uDEB8\\uDEC0-\\uDEC9\\uDF00-\\uDF1A\\uDF30-\\uDF3B]|\\uD806[\\uDC00-\\uDC2B\\uDCA0-\\uDCF2\\uDCFF-\\uDD06\\uDD09\\uDD0C-\\uDD13\\uDD15\\uDD16\\uDD18-\\uDD2F\\uDD3F\\uDD41\\uDD50-\\uDD59\\uDDA0-\\uDDA7\\uDDAA-\\uDDD0\\uDDE1\\uDDE3\\uDE00\\uDE0B-\\uDE32\\uDE3A\\uDE50\\uDE5C-\\uDE89\\uDE9D\\uDEC0-\\uDEF8]|\\uD807[\\uDC00-\\uDC08\\uDC0A-\\uDC2E\\uDC40\\uDC50-\\uDC6C\\uDC72-\\uDC8F\\uDD00-\\uDD06\\uDD08\\uDD09\\uDD0B-\\uDD30\\uDD46\\uDD50-\\uDD59\\uDD60-\\uDD65\\uDD67\\uDD68\\uDD6A-\\uDD89\\uDD98\\uDDA0-\\uDDA9\\uDEE0-\\uDEF2\\uDFB0\\uDFC0-\\uDFD4]|\\uD808[\\uDC00-\\uDF99]|\\uD809[\\uDC00-\\uDC6E\\uDC80-\\uDD43]|[\\uD80C\\uD81C-\\uD820\\uD822\\uD840-\\uD868\\uD86A-\\uD86C\\uD86F-\\uD872\\uD874-\\uD879\\uD880-\\uD883][\\uDC00-\\uDFFF]|\\uD80D[\\uDC00-\\uDC2E]|\\uD811[\\uDC00-\\uDE46]|\\uD81A[\\uDC00-\\uDE38\\uDE40-\\uDE5E\\uDE60-\\uDE69\\uDED0-\\uDEED\\uDF00-\\uDF2F\\uDF40-\\uDF43\\uDF50-\\uDF59\\uDF5B-\\uDF61\\uDF63-\\uDF77\\uDF7D-\\uDF8F]|\\uD81B[\\uDE40-\\uDE96\\uDF00-\\uDF4A\\uDF50\\uDF93-\\uDF9F\\uDFE0\\uDFE1\\uDFE3]|\\uD821[\\uDC00-\\uDFF7]|\\uD823[\\uDC00-\\uDCD5\\uDD00-\\uDD08]|\\uD82C[\\uDC00-\\uDD1E\\uDD50-\\uDD52\\uDD64-\\uDD67\\uDD70-\\uDEFB]|\\uD82F[\\uDC00-\\uDC6A\\uDC70-\\uDC7C\\uDC80-\\uDC88\\uDC90-\\uDC99]|\\uD834[\\uDEE0-\\uDEF3\\uDF60-\\uDF78]|\\uD835[\\uDC00-\\uDC54\\uDC56-\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDEA5\\uDEA8-\\uDEC0\\uDEC2-\\uDEDA\\uDEDC-\\uDEFA\\uDEFC-\\uDF14\\uDF16-\\uDF34\\uDF36-\\uDF4E\\uDF50-\\uDF6E\\uDF70-\\uDF88\\uDF8A-\\uDFA8\\uDFAA-\\uDFC2\\uDFC4-\\uDFCB\\uDFCE-\\uDFFF]|\\uD838[\\uDD00-\\uDD2C\\uDD37-\\uDD3D\\uDD40-\\uDD49\\uDD4E\\uDEC0-\\uDEEB\\uDEF0-\\uDEF9]|\\uD83A[\\uDC00-\\uDCC4\\uDCC7-\\uDCCF\\uDD00-\\uDD43\\uDD4B\\uDD50-\\uDD59]|\\uD83B[\\uDC71-\\uDCAB\\uDCAD-\\uDCAF\\uDCB1-\\uDCB4\\uDD01-\\uDD2D\\uDD2F-\\uDD3D\\uDE00-\\uDE03\\uDE05-\\uDE1F\\uDE21\\uDE22\\uDE24\\uDE27\\uDE29-\\uDE32\\uDE34-\\uDE37\\uDE39\\uDE3B\\uDE42\\uDE47\\uDE49\\uDE4B\\uDE4D-\\uDE4F\\uDE51\\uDE52\\uDE54\\uDE57\\uDE59\\uDE5B\\uDE5D\\uDE5F\\uDE61\\uDE62\\uDE64\\uDE67-\\uDE6A\\uDE6C-\\uDE72\\uDE74-\\uDE77\\uDE79-\\uDE7C\\uDE7E\\uDE80-\\uDE89\\uDE8B-\\uDE9B\\uDEA1-\\uDEA3\\uDEA5-\\uDEA9\\uDEAB-\\uDEBB]|\\uD83C[\\uDD00-\\uDD0C]|\\uD83E[\\uDFF0-\\uDFF9]|\\uD869[\\uDC00-\\uDEDD\\uDF00-\\uDFFF]|\\uD86D[\\uDC00-\\uDF34\\uDF40-\\uDFFF]|\\uD86E[\\uDC00-\\uDC1D\\uDC20-\\uDFFF]|\\uD873[\\uDC00-\\uDEA1\\uDEB0-\\uDFFF]|\\uD87A[\\uDC00-\\uDFE0]|\\uD87E[\\uDC00-\\uDE1D]|\\uD884[\\uDC00-\\uDF4A])/))) {\n                                                var o = n[1] || n[2] || \"\";\n                                                if (!o || o && (\"\" === i || this.rules.inline.punctuation.exec(i))) {\n                                                    var s, r, a = n[0].length - 1,\n                                                        l = a,\n                                                        c = 0,\n                                                        d = \"*\" === n[0][0] ? this.rules.inline.emStrong.rDelimAst : this.rules.inline.emStrong.rDelimUnd;\n                                                    for (d.lastIndex = 0, t = t.slice(-1 * e.length + a); null != (n = d.exec(t));)\n                                                        if (s = n[1] || n[2] || n[3] || n[4] || n[5] || n[6])\n                                                            if (r = s.length, n[3] || n[4]) l += r;\n                                                            else if (!((n[5] || n[6]) && a % 3) || (a + r) % 3) {\n                                                        if (!((l -= r) > 0)) {\n                                                            if (r = Math.min(r, r + l + c), Math.min(a, r) % 2) {\n                                                                var h = e.slice(1, a + n.index + r);\n                                                                return {\n                                                                    type: \"em\",\n                                                                    raw: e.slice(0, a + n.index + r + 1),\n                                                                    text: h,\n                                                                    tokens: this.lexer.inlineTokens(h, [])\n                                                                }\n                                                            }\n                                                            var u = e.slice(2, a + n.index + r - 1);\n                                                            return {\n                                                                type: \"strong\",\n                                                                raw: e.slice(0, a + n.index + r + 1),\n                                                                text: u,\n                                                                tokens: this.lexer.inlineTokens(u, [])\n                                                            }\n                                                        }\n                                                    } else c += r\n                                                }\n                                            }\n                                        }, t.codespan = function(e) {\n                                            var t = this.rules.inline.code.exec(e);\n                                            if (t) {\n                                                var i = t[2].replace(/\\n/g, \" \"),\n                                                    n = /[^ ]/.test(i),\n                                                    o = /^ /.test(i) && / $/.test(i);\n                                                return n && o && (i = i.substring(1, i.length - 1)), i = R(i, !0), {\n                                                    type: \"codespan\",\n                                                    raw: t[0],\n                                                    text: i\n                                                }\n                                            }\n                                        }, t.br = function(e) {\n                                            var t = this.rules.inline.br.exec(e);\n                                            if (t) return {\n                                                type: \"br\",\n                                                raw: t[0]\n                                            }\n                                        }, t.del = function(e) {\n                                            var t = this.rules.inline.del.exec(e);\n                                            if (t) return {\n                                                type: \"del\",\n                                                raw: t[0],\n                                                text: t[2],\n                                                tokens: this.lexer.inlineTokens(t[2], [])\n                                            }\n                                        }, t.autolink = function(e, t) {\n                                            var i, n, o = this.rules.inline.autolink.exec(e);\n                                            if (o) return n = \"@\" === o[2] ? \"mailto:\" + (i = R(this.options.mangle ? t(o[1]) : o[1])) : i = R(o[1]), {\n                                                type: \"link\",\n                                                raw: o[0],\n                                                text: i,\n                                                href: n,\n                                                tokens: [{\n                                                    type: \"text\",\n                                                    raw: i,\n                                                    text: i\n                                                }]\n                                            }\n                                        }, t.url = function(e, t) {\n                                            var i;\n                                            if (i = this.rules.inline.url.exec(e)) {\n                                                var n, o;\n                                                if (\"@\" === i[2]) o = \"mailto:\" + (n = R(this.options.mangle ? t(i[0]) : i[0]));\n                                                else {\n                                                    var s;\n                                                    do {\n                                                        s = i[0], i[0] = this.rules.inline._backpedal.exec(i[0])[0]\n                                                    } while (s !== i[0]);\n                                                    n = R(i[0]), o = \"www.\" === i[1] ? \"http://\" + n : n\n                                                }\n                                                return {\n                                                    type: \"link\",\n                                                    raw: i[0],\n                                                    text: n,\n                                                    href: o,\n                                                    tokens: [{\n                                                        type: \"text\",\n                                                        raw: n,\n                                                        text: n\n                                                    }]\n                                                }\n                                            }\n                                        }, t.inlineText = function(e, t) {\n                                            var i, n = this.rules.inline.text.exec(e);\n                                            if (n) return i = this.lexer.state.inRawBlock ? this.options.sanitize ? this.options.sanitizer ? this.options.sanitizer(n[0]) : R(n[0]) : n[0] : R(this.options.smartypants ? t(n[0]) : n[0]), {\n                                                type: \"text\",\n                                                raw: n[0],\n                                                text: i\n                                            }\n                                        }, e\n                                    }(),\n                                    W = L,\n                                    H = S,\n                                    z = N,\n                                    j = {\n                                        newline: /^(?: *(?:\\n|$))+/,\n                                        code: /^( {4}[^\\n]+(?:\\n(?: *(?:\\n|$))*)?)+/,\n                                        fences: /^ {0,3}(`{3,}(?=[^`\\n]*\\n)|~{3,})([^\\n]*)\\n(?:|([\\s\\S]*?)\\n)(?: {0,3}\\1[~`]* *(?=\\n|$)|$)/,\n                                        hr: /^ {0,3}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)/,\n                                        heading: /^ {0,3}(#{1,6})(?=\\s|$)(.*)(?:\\n+|$)/,\n                                        blockquote: /^( {0,3}> ?(paragraph|[^\\n]*)(?:\\n|$))+/,\n                                        list: /^( {0,3}bull)( [^\\n]+?)?(?:\\n|$)/,\n                                        html: \"^ {0,3}(?:<(script|pre|style|textarea)[\\\\s>][\\\\s\\\\S]*?(?:</\\\\1>[^\\\\n]*\\\\n+|$)|comment[^\\\\n]*(\\\\n+|$)|<\\\\?[\\\\s\\\\S]*?(?:\\\\?>\\\\n*|$)|<![A-Z][\\\\s\\\\S]*?(?:>\\\\n*|$)|<!\\\\[CDATA\\\\[[\\\\s\\\\S]*?(?:\\\\]\\\\]>\\\\n*|$)|</?(tag)(?: +|\\\\n|/?>)[\\\\s\\\\S]*?(?:(?:\\\\n *)+\\\\n|$)|<(?!script|pre|style|textarea)([a-z][\\\\w-]*)(?:attribute)*? */?>(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:(?:\\\\n *)+\\\\n|$)|</(?!script|pre|style|textarea)[a-z][\\\\w-]*\\\\s*>(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:(?:\\\\n *)+\\\\n|$))\",\n                                        def: /^ {0,3}\\[(label)\\]: *\\n? *<?([^\\s>]+)>?(?:(?: +\\n? *| *\\n *)(title))? *(?:\\n+|$)/,\n                                        table: W,\n                                        lheading: /^([^\\n]+)\\n {0,3}(=+|-+) *(?:\\n+|$)/,\n                                        _paragraph: /^([^\\n]+(?:\\n(?!hr|heading|lheading|blockquote|fences|list|html| +\\n)[^\\n]+)*)/,\n                                        text: /^[^\\n]+/,\n                                        _label: /(?!\\s*\\])(?:\\\\[\\[\\]]|[^\\[\\]])+/,\n                                        _title: /(?:\"(?:\\\\\"?|[^\"\\\\])*\"|'[^'\\n]*(?:\\n[^'\\n]+)*\\n?'|\\([^()]*\\))/\n                                    };\n                                j.def = H(j.def).replace(\"label\", j._label).replace(\"title\", j._title).getRegex(), j.bullet = /(?:[*+-]|\\d{1,9}[.)])/, j.listItemStart = H(/^( *)(bull) */).replace(\"bull\", j.bullet).getRegex(), j.list = H(j.list).replace(/bull/g, j.bullet).replace(\"hr\", \"\\\\n+(?=\\\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\\\* *){3,})(?:\\\\n+|$))\").replace(\"def\", \"\\\\n+(?=\" + j.def.source + \")\").getRegex(), j._tag = \"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|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul\", j._comment = /<!--(?!-?>)[\\s\\S]*?(?:-->|$)/, j.html = H(j.html, \"i\").replace(\"comment\", j._comment).replace(\"tag\", j._tag).replace(\"attribute\", / +[a-zA-Z:_][\\w.:-]*(?: *= *\"[^\"\\n]*\"| *= *'[^'\\n]*'| *= *[^\\s\"'=<>`]+)?/).getRegex(), j.paragraph = H(j._paragraph).replace(\"hr\", j.hr).replace(\"heading\", \" {0,3}#{1,6} \").replace(\"|lheading\", \"\").replace(\"blockquote\", \" {0,3}>\").replace(\"fences\", \" {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n\").replace(\"list\", \" {0,3}(?:[*+-]|1[.)]) \").replace(\"html\", \"</?(?:tag)(?: +|\\\\n|/?>)|<(?:script|pre|style|textarea|!--)\").replace(\"tag\", j._tag).getRegex(), j.blockquote = H(j.blockquote).replace(\"paragraph\", j.paragraph).getRegex(), j.normal = z({}, j), j.gfm = z({}, j.normal, {\n                                    table: \"^ *([^\\\\n ].*\\\\|.*)\\\\n {0,3}(?:\\\\| *)?(:?-+:? *(?:\\\\| *:?-+:? *)*)\\\\|?(?:\\\\n((?:(?! *\\\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\\\n|$))*)\\\\n*|$)\"\n                                }), j.gfm.table = H(j.gfm.table).replace(\"hr\", j.hr).replace(\"heading\", \" {0,3}#{1,6} \").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\", \"</?(?:tag)(?: +|\\\\n|/?>)|<(?:script|pre|style|textarea|!--)\").replace(\"tag\", j._tag).getRegex(), j.pedantic = z({}, j.normal, {\n                                    html: H(\"^ *(?:comment *(?:\\\\n|\\\\s*$)|<(tag)[\\\\s\\\\S]+?</\\\\1> *(?:\\\\n{2,}|\\\\s*$)|<tag(?:\\\"[^\\\"]*\\\"|'[^']*'|\\\\s[^'\\\"/>\\\\s]*)*?/?> *(?:\\\\n{2,}|\\\\s*$))\").replace(\"comment\", j._comment).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(),\n                                    def: /^ *\\[([^\\]]+)\\]: *<?([^\\s>]+)>?(?: +([\"(][^\\n]+[\")]))? *(?:\\n+|$)/,\n                                    heading: /^(#{1,6})(.*)(?:\\n+|$)/,\n                                    fences: W,\n                                    paragraph: H(j.normal._paragraph).replace(\"hr\", j.hr).replace(\"heading\", \" *#{1,6} *[^\\n]\").replace(\"lheading\", j.lheading).replace(\"blockquote\", \" {0,3}>\").replace(\"|fences\", \"\").replace(\"|list\", \"\").replace(\"|html\", \"\").getRegex()\n                                });\n                                var U = {\n                                    escape: /^\\\\([!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\\\^_`{|}~])/,\n                                    autolink: /^<(scheme:[^\\s\\x00-\\x1f<>]*|email)>/,\n                                    url: W,\n                                    tag: \"^comment|^</[a-zA-Z][\\\\w:-]*\\\\s*>|^<[a-zA-Z][\\\\w-]*(?:attribute)*?\\\\s*/?>|^<\\\\?[\\\\s\\\\S]*?\\\\?>|^<![a-zA-Z]+\\\\s[\\\\s\\\\S]*?>|^<!\\\\[CDATA\\\\[[\\\\s\\\\S]*?\\\\]\\\\]>\",\n                                    link: /^!?\\[(label)\\]\\(\\s*(href)(?:\\s+(title))?\\s*\\)/,\n                                    reflink: /^!?\\[(label)\\]\\[(?!\\s*\\])((?:\\\\[\\[\\]]?|[^\\[\\]\\\\])+)\\]/,\n                                    nolink: /^!?\\[(?!\\s*\\])((?:\\[[^\\[\\]]*\\]|\\\\[\\[\\]]|[^\\[\\]])*)\\](?:\\[\\])?/,\n                                    reflinkSearch: \"reflink|nolink(?!\\\\()\",\n                                    emStrong: {\n                                        lDelim: /^(?:\\*+(?:([punct_])|[^\\s*]))|^_+(?:([punct*])|([^\\s_]))/,\n                                        rDelimAst: /\\_\\_[^_*]*?\\*[^_*]*?\\_\\_|[punct_](\\*+)(?=[\\s]|$)|[^punct*_\\s](\\*+)(?=[punct_\\s]|$)|[punct_\\s](\\*+)(?=[^punct*_\\s])|[\\s](\\*+)(?=[punct_])|[punct_](\\*+)(?=[punct_])|[^punct*_\\s](\\*+)(?=[^punct*_\\s])/,\n                                        rDelimUnd: /\\*\\*[^_*]*?\\_[^_*]*?\\*\\*|[punct*](\\_+)(?=[\\s]|$)|[^punct*_\\s](\\_+)(?=[punct*\\s]|$)|[punct*\\s](\\_+)(?=[^punct*_\\s])|[\\s](\\_+)(?=[punct*])|[punct*](\\_+)(?=[punct*])/\n                                    },\n                                    code: /^(`+)([^`]|[^`][\\s\\S]*?[^`])\\1(?!`)/,\n                                    br: /^( {2,}|\\\\)\\n(?!\\s*$)/,\n                                    del: W,\n                                    text: /^(`+|[^`])(?:(?= {2,}\\n)|[\\s\\S]*?(?:(?=[\\\\<!\\[`*_]|\\b_|$)|[^ ](?= {2,}\\n)))/,\n                                    punctuation: /^([\\spunctuation])/,\n                                    _punctuation: \"!\\\"#$%&'()+\\\\-.,/:;<=>?@\\\\[\\\\]`^{|}~\"\n                                };\n                                U.punctuation = H(U.punctuation).replace(/punctuation/g, U._punctuation).getRegex(), U.blockSkip = /\\[[^\\]]*?\\]\\([^\\)]*?\\)|`[^`]*?`|<[^>]*?>/g, U.escapedEmSt = /\\\\\\*|\\\\_/g, U._comment = H(j._comment).replace(\"(?:--\\x3e|$)\", \"--\\x3e\").getRegex(), U.emStrong.lDelim = H(U.emStrong.lDelim).replace(/punct/g, U._punctuation).getRegex(), U.emStrong.rDelimAst = H(U.emStrong.rDelimAst, \"g\").replace(/punct/g, U._punctuation).getRegex(), U.emStrong.rDelimUnd = H(U.emStrong.rDelimUnd, \"g\").replace(/punct/g, U._punctuation).getRegex(), U._escapes = /\\\\([!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\\\^_`{|}~])/g, U._scheme = /[a-zA-Z][a-zA-Z0-9+.-]{1,31}/, U._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])?)+(?![-_])/, U.autolink = H(U.autolink).replace(\"scheme\", U._scheme).replace(\"email\", U._email).getRegex(), U._attribute = /\\s+[a-zA-Z:_][\\w.:-]*(?:\\s*=\\s*\"[^\"]*\"|\\s*=\\s*'[^']*'|\\s*=\\s*[^\\s\"'=<>`]+)?/, U.tag = H(U.tag).replace(\"comment\", U._comment).replace(\"attribute\", U._attribute).getRegex(), U._label = /(?:\\[(?:\\\\.|[^\\[\\]\\\\])*\\]|\\\\.|`[^`]*`|[^\\[\\]\\\\`])*?/, U._href = /<(?:\\\\.|[^\\n<>\\\\])+>|[^\\s\\x00-\\x1f]*/, U._title = /\"(?:\\\\\"?|[^\"\\\\])*\"|'(?:\\\\'?|[^'\\\\])*'|\\((?:\\\\\\)?|[^)\\\\])*\\)/, U.link = H(U.link).replace(\"label\", U._label).replace(\"href\", U._href).replace(\"title\", U._title).getRegex(), U.reflink = H(U.reflink).replace(\"label\", U._label).getRegex(), U.reflinkSearch = H(U.reflinkSearch, \"g\").replace(\"reflink\", U.reflink).replace(\"nolink\", U.nolink).getRegex(), U.normal = z({}, U), U.pedantic = z({}, U.normal, {\n                                    strong: {\n                                        start: /^__|\\*\\*/,\n                                        middle: /^__(?=\\S)([\\s\\S]*?\\S)__(?!_)|^\\*\\*(?=\\S)([\\s\\S]*?\\S)\\*\\*(?!\\*)/,\n                                        endAst: /\\*\\*(?!\\*)/g,\n                                        endUnd: /__(?!_)/g\n                                    },\n                                    em: {\n                                        start: /^_|\\*/,\n                                        middle: /^()\\*(?=\\S)([\\s\\S]*?\\S)\\*(?!\\*)|^_(?=\\S)([\\s\\S]*?\\S)_(?!_)/,\n                                        endAst: /\\*(?!\\*)/g,\n                                        endUnd: /_(?!_)/g\n                                    },\n                                    link: H(/^!?\\[(label)\\]\\((.*?)\\)/).replace(\"label\", U._label).getRegex(),\n                                    reflink: H(/^!?\\[(label)\\]\\s*\\[([^\\]]*)\\]/).replace(\"label\", U._label).getRegex()\n                                }), U.gfm = z({}, U.normal, {\n                                    escape: H(U.escape).replace(\"])\", \"~|])\").getRegex(),\n                                    _extended_email: /[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,\n                                    url: /^((?:ftp|https?):\\/\\/|www\\.)(?:[a-zA-Z0-9\\-]+\\.?)+[^\\s<]*|^email/,\n                                    _backpedal: /(?:[^?!.,:;*_~()&]+|\\([^)]*\\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_~)]+(?!$))+/,\n                                    del: /^(~~?)(?=[^\\s~])([\\s\\S]*?[^\\s~])\\1(?=[^~]|$)/,\n                                    text: /^([`~]+|[^`~])(?:(?= {2,}\\n)|(?=[a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-]+@)|[\\s\\S]*?(?:(?=[\\\\<!\\[`*~_]|\\b_|https?:\\/\\/|ftp:\\/\\/|www\\.|$)|[^ ](?= {2,}\\n)|[^a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-](?=[a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-]+@)))/\n                                }), U.gfm.url = H(U.gfm.url, \"i\").replace(\"email\", U.gfm._extended_email).getRegex(), U.breaks = z({}, U.gfm, {\n                                    br: H(U.br).replace(\"{2,}\", \"*\").getRegex(),\n                                    text: H(U.gfm.text).replace(\"\\\\b_\", \"\\\\b_| {2,}\\\\n\").replace(/\\{2,\\}/g, \"*\").getRegex()\n                                });\n                                var $ = {\n                                        block: j,\n                                        inline: U\n                                    },\n                                    K = V,\n                                    q = n.exports.defaults,\n                                    Z = $.block,\n                                    G = $.inline,\n                                    Y = M;\n\n                                function Q(e) {\n                                    return e.replace(/---/g, \"—\").replace(/--/g, \"–\").replace(/(^|[-\\u2014/(\\[{\"\\s])'/g, \"$1‘\").replace(/'/g, \"’\").replace(/(^|[-\\u2014/(\\[{\\u2018\\s])\"/g, \"$1“\").replace(/\"/g, \"”\").replace(/\\.{3}/g, \"…\")\n                                }\n\n                                function X(e) {\n                                    var t, i, n = \"\",\n                                        o = e.length;\n                                    for (t = 0; t < o; t++) i = e.charCodeAt(t), Math.random() > .5 && (i = \"x\" + i.toString(16)), n += \"&#\" + i + \";\";\n                                    return n\n                                }\n                                var J = function() {\n                                        function t(e) {\n                                            this.tokens = [], this.tokens.links = Object.create(null), this.options = e || q, this.options.tokenizer = this.options.tokenizer || new K, this.tokenizer = this.options.tokenizer, this.tokenizer.options = this.options, this.tokenizer.lexer = this, this.inlineQueue = [], this.state = {\n                                                inLink: !1,\n                                                inRawBlock: !1,\n                                                top: !0\n                                            };\n                                            var t = {\n                                                block: Z.normal,\n                                                inline: G.normal\n                                            };\n                                            this.options.pedantic ? (t.block = Z.pedantic, t.inline = G.pedantic) : this.options.gfm && (t.block = Z.gfm, this.options.breaks ? t.inline = G.breaks : t.inline = G.gfm), this.tokenizer.rules = t\n                                        }\n                                        t.lex = function(e, i) {\n                                            return new t(i).lex(e)\n                                        }, t.lexInline = function(e, i) {\n                                            return new t(i).inlineTokens(e)\n                                        };\n                                        var i, n, o, s = t.prototype;\n                                        return s.lex = function(e) {\n                                            var t;\n                                            for (e = e.replace(/\\r\\n|\\r/g, \"\\n\").replace(/\\t/g, \"    \"), this.blockTokens(e, this.tokens); t = this.inlineQueue.shift();) this.inlineTokens(t.src, t.tokens);\n                                            return this.tokens\n                                        }, s.blockTokens = function(e, t) {\n                                            var i, n, o, s, r = this;\n                                            for (void 0 === t && (t = []), this.options.pedantic && (e = e.replace(/^ +$/gm, \"\")); e;)\n                                                if (!(this.options.extensions && this.options.extensions.block && this.options.extensions.block.some((function(n) {\n                                                        return !!(i = n.call({\n                                                            lexer: r\n                                                        }, e, t)) && (e = e.substring(i.raw.length), t.push(i), !0)\n                                                    }))))\n                                                    if (i = this.tokenizer.space(e)) e = e.substring(i.raw.length), i.type && t.push(i);\n                                                    else if (i = this.tokenizer.code(e)) e = e.substring(i.raw.length), !(n = t[t.length - 1]) || \"paragraph\" !== n.type && \"text\" !== n.type ? t.push(i) : (n.raw += \"\\n\" + i.raw, n.text += \"\\n\" + i.text, this.inlineQueue[this.inlineQueue.length - 1].src = n.text);\n                                            else if (i = this.tokenizer.fences(e)) e = e.substring(i.raw.length), t.push(i);\n                                            else if (i = this.tokenizer.heading(e)) e = e.substring(i.raw.length), t.push(i);\n                                            else if (i = this.tokenizer.hr(e)) e = e.substring(i.raw.length), t.push(i);\n                                            else if (i = this.tokenizer.blockquote(e)) e = e.substring(i.raw.length), t.push(i);\n                                            else if (i = this.tokenizer.list(e)) e = e.substring(i.raw.length), t.push(i);\n                                            else if (i = this.tokenizer.html(e)) e = e.substring(i.raw.length), t.push(i);\n                                            else if (i = this.tokenizer.def(e)) e = e.substring(i.raw.length), !(n = t[t.length - 1]) || \"paragraph\" !== n.type && \"text\" !== n.type ? this.tokens.links[i.tag] || (this.tokens.links[i.tag] = {\n                                                href: i.href,\n                                                title: i.title\n                                            }) : (n.raw += \"\\n\" + i.raw, n.text += \"\\n\" + i.raw, this.inlineQueue[this.inlineQueue.length - 1].src = n.text);\n                                            else if (i = this.tokenizer.table(e)) e = e.substring(i.raw.length), t.push(i);\n                                            else if (i = this.tokenizer.lheading(e)) e = e.substring(i.raw.length), t.push(i);\n                                            else if (o = e, this.options.extensions && this.options.extensions.startBlock && function() {\n                                                    var t = 1 / 0,\n                                                        i = e.slice(1),\n                                                        n = void 0;\n                                                    r.options.extensions.startBlock.forEach((function(e) {\n                                                        \"number\" == typeof(n = e.call({\n                                                            lexer: this\n                                                        }, i)) && n >= 0 && (t = Math.min(t, n))\n                                                    })), t < 1 / 0 && t >= 0 && (o = e.substring(0, t + 1))\n                                                }(), this.state.top && (i = this.tokenizer.paragraph(o))) n = t[t.length - 1], s && \"paragraph\" === n.type ? (n.raw += \"\\n\" + i.raw, n.text += \"\\n\" + i.text, this.inlineQueue.pop(), this.inlineQueue[this.inlineQueue.length - 1].src = n.text) : t.push(i), s = o.length !== e.length, e = e.substring(i.raw.length);\n                                            else if (i = this.tokenizer.text(e)) e = e.substring(i.raw.length), (n = t[t.length - 1]) && \"text\" === n.type ? (n.raw += \"\\n\" + i.raw, n.text += \"\\n\" + i.text, this.inlineQueue.pop(), this.inlineQueue[this.inlineQueue.length - 1].src = n.text) : t.push(i);\n                                            else if (e) {\n                                                var a = \"Infinite loop on byte: \" + e.charCodeAt(0);\n                                                if (this.options.silent) {\n                                                    console.error(a);\n                                                    break\n                                                }\n                                                throw new Error(a)\n                                            }\n                                            return this.state.top = !0, t\n                                        }, s.inline = function(e, t) {\n                                            this.inlineQueue.push({\n                                                src: e,\n                                                tokens: t\n                                            })\n                                        }, s.inlineTokens = function(e, t) {\n                                            var i, n, o, s = this;\n                                            void 0 === t && (t = []);\n                                            var r, a, l, c = e;\n                                            if (this.tokens.links) {\n                                                var d = Object.keys(this.tokens.links);\n                                                if (d.length > 0)\n                                                    for (; null != (r = this.tokenizer.rules.inline.reflinkSearch.exec(c));) d.includes(r[0].slice(r[0].lastIndexOf(\"[\") + 1, -1)) && (c = c.slice(0, r.index) + \"[\" + Y(\"a\", r[0].length - 2) + \"]\" + c.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))\n                                            }\n                                            for (; null != (r = this.tokenizer.rules.inline.blockSkip.exec(c));) c = c.slice(0, r.index) + \"[\" + Y(\"a\", r[0].length - 2) + \"]\" + c.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);\n                                            for (; null != (r = this.tokenizer.rules.inline.escapedEmSt.exec(c));) c = c.slice(0, r.index) + \"++\" + c.slice(this.tokenizer.rules.inline.escapedEmSt.lastIndex);\n                                            for (; e;)\n                                                if (a || (l = \"\"), a = !1, !(this.options.extensions && this.options.extensions.inline && this.options.extensions.inline.some((function(n) {\n                                                        return !!(i = n.call({\n                                                            lexer: s\n                                                        }, e, t)) && (e = e.substring(i.raw.length), t.push(i), !0)\n                                                    }))))\n                                                    if (i = this.tokenizer.escape(e)) e = e.substring(i.raw.length), t.push(i);\n                                                    else if (i = this.tokenizer.tag(e)) e = e.substring(i.raw.length), (n = t[t.length - 1]) && \"text\" === i.type && \"text\" === n.type ? (n.raw += i.raw, n.text += i.text) : t.push(i);\n                                            else if (i = this.tokenizer.link(e)) e = e.substring(i.raw.length), t.push(i);\n                                            else if (i = this.tokenizer.reflink(e, this.tokens.links)) e = e.substring(i.raw.length), (n = t[t.length - 1]) && \"text\" === i.type && \"text\" === n.type ? (n.raw += i.raw, n.text += i.text) : t.push(i);\n                                            else if (i = this.tokenizer.emStrong(e, c, l)) e = e.substring(i.raw.length), t.push(i);\n                                            else if (i = this.tokenizer.codespan(e)) e = e.substring(i.raw.length), t.push(i);\n                                            else if (i = this.tokenizer.br(e)) e = e.substring(i.raw.length), t.push(i);\n                                            else if (i = this.tokenizer.del(e)) e = e.substring(i.raw.length), t.push(i);\n                                            else if (i = this.tokenizer.autolink(e, X)) e = e.substring(i.raw.length), t.push(i);\n                                            else if (this.state.inLink || !(i = this.tokenizer.url(e, X))) {\n                                                if (o = e, this.options.extensions && this.options.extensions.startInline && function() {\n                                                        var t = 1 / 0,\n                                                            i = e.slice(1),\n                                                            n = void 0;\n                                                        s.options.extensions.startInline.forEach((function(e) {\n                                                            \"number\" == typeof(n = e.call({\n                                                                lexer: this\n                                                            }, i)) && n >= 0 && (t = Math.min(t, n))\n                                                        })), t < 1 / 0 && t >= 0 && (o = e.substring(0, t + 1))\n                                                    }(), i = this.tokenizer.inlineText(o, Q)) e = e.substring(i.raw.length), \"_\" !== i.raw.slice(-1) && (l = i.raw.slice(-1)), a = !0, (n = t[t.length - 1]) && \"text\" === n.type ? (n.raw += i.raw, n.text += i.text) : t.push(i);\n                                                else if (e) {\n                                                    var h = \"Infinite loop on byte: \" + e.charCodeAt(0);\n                                                    if (this.options.silent) {\n                                                        console.error(h);\n                                                        break\n                                                    }\n                                                    throw new Error(h)\n                                                }\n                                            } else e = e.substring(i.raw.length), t.push(i);\n                                            return t\n                                        }, i = t, o = [{\n                                            key: \"rules\",\n                                            get: function() {\n                                                return {\n                                                    block: Z,\n                                                    inline: G\n                                                }\n                                            }\n                                        }], (n = null) && e(i.prototype, n), o && e(i, o), t\n                                    }(),\n                                    ee = n.exports.defaults,\n                                    te = k,\n                                    ie = C,\n                                    ne = function() {\n                                        function e(e) {\n                                            this.options = e || ee\n                                        }\n                                        var t = e.prototype;\n                                        return t.code = function(e, t, i) {\n                                            var n = (t || \"\").match(/\\S*/)[0];\n                                            if (this.options.highlight) {\n                                                var o = this.options.highlight(e, n);\n                                                null != o && o !== e && (i = !0, e = o)\n                                            }\n                                            return e = e.replace(/\\n$/, \"\") + \"\\n\", n ? '<pre><code class=\"' + this.options.langPrefix + ie(n, !0) + '\">' + (i ? e : ie(e, !0)) + \"</code></pre>\\n\" : \"<pre><code>\" + (i ? e : ie(e, !0)) + \"</code></pre>\\n\"\n                                        }, t.blockquote = function(e) {\n                                            return \"<blockquote>\\n\" + e + \"</blockquote>\\n\"\n                                        }, t.html = function(e) {\n                                            return e\n                                        }, t.heading = function(e, t, i, n) {\n                                            return this.options.headerIds ? \"<h\" + t + ' id=\"' + this.options.headerPrefix + n.slug(i) + '\">' + e + \"</h\" + t + \">\\n\" : \"<h\" + t + \">\" + e + \"</h\" + t + \">\\n\"\n                                        }, t.hr = function() {\n                                            return this.options.xhtml ? \"<hr/>\\n\" : \"<hr>\\n\"\n                                        }, t.list = function(e, t, i) {\n                                            var n = t ? \"ol\" : \"ul\";\n                                            return \"<\" + n + (t && 1 !== i ? ' start=\"' + i + '\"' : \"\") + \">\\n\" + e + \"</\" + n + \">\\n\"\n                                        }, t.listitem = function(e) {\n                                            return \"<li>\" + e + \"</li>\\n\"\n                                        }, t.checkbox = function(e) {\n                                            return \"<input \" + (e ? 'checked=\"\" ' : \"\") + 'disabled=\"\" type=\"checkbox\"' + (this.options.xhtml ? \" /\" : \"\") + \"> \"\n                                        }, t.paragraph = function(e) {\n                                            return \"<p>\" + e + \"</p>\\n\"\n                                        }, t.table = function(e, t) {\n                                            return t && (t = \"<tbody>\" + t + \"</tbody>\"), \"<table>\\n<thead>\\n\" + e + \"</thead>\\n\" + t + \"</table>\\n\"\n                                        }, t.tablerow = function(e) {\n                                            return \"<tr>\\n\" + e + \"</tr>\\n\"\n                                        }, t.tablecell = function(e, t) {\n                                            var i = t.header ? \"th\" : \"td\";\n                                            return (t.align ? \"<\" + i + ' align=\"' + t.align + '\">' : \"<\" + i + \">\") + e + \"</\" + i + \">\\n\"\n                                        }, t.strong = function(e) {\n                                            return \"<strong>\" + e + \"</strong>\"\n                                        }, t.em = function(e) {\n                                            return \"<em>\" + e + \"</em>\"\n                                        }, t.codespan = function(e) {\n                                            return \"<code>\" + e + \"</code>\"\n                                        }, t.br = function() {\n                                            return this.options.xhtml ? \"<br/>\" : \"<br>\"\n                                        }, t.del = function(e) {\n                                            return \"<del>\" + e + \"</del>\"\n                                        }, t.link = function(e, t, i) {\n                                            if (null === (e = te(this.options.sanitize, this.options.baseUrl, e))) return i;\n                                            var n = '<a href=\"' + ie(e) + '\"';\n                                            return t && (n += ' title=\"' + t + '\"'), n += \">\" + i + \"</a>\"\n                                        }, t.image = function(e, t, i) {\n                                            if (null === (e = te(this.options.sanitize, this.options.baseUrl, e))) return i;\n                                            var n = '<img src=\"' + e + '\" alt=\"' + i + '\"';\n                                            return t && (n += ' title=\"' + t + '\"'), n += this.options.xhtml ? \"/>\" : \">\"\n                                        }, t.text = function(e) {\n                                            return e\n                                        }, e\n                                    }(),\n                                    oe = function() {\n                                        function e() {}\n                                        var t = e.prototype;\n                                        return t.strong = function(e) {\n                                            return e\n                                        }, t.em = function(e) {\n                                            return e\n                                        }, t.codespan = function(e) {\n                                            return e\n                                        }, t.del = function(e) {\n                                            return e\n                                        }, t.html = function(e) {\n                                            return e\n                                        }, t.text = function(e) {\n                                            return e\n                                        }, t.link = function(e, t, i) {\n                                            return \"\" + i\n                                        }, t.image = function(e, t, i) {\n                                            return \"\" + i\n                                        }, t.br = function() {\n                                            return \"\"\n                                        }, e\n                                    }(),\n                                    se = function() {\n                                        function e() {\n                                            this.seen = {}\n                                        }\n                                        var t = e.prototype;\n                                        return t.serialize = function(e) {\n                                            return e.toLowerCase().trim().replace(/<[!\\/a-z].*?>/gi, \"\").replace(/[\\u2000-\\u206F\\u2E00-\\u2E7F\\\\'!\"#$%&()*+,./:;<=>?@[\\]^`{|}~]/g, \"\").replace(/\\s/g, \"-\")\n                                        }, t.getNextSafeSlug = function(e, t) {\n                                            var i = e,\n                                                n = 0;\n                                            if (this.seen.hasOwnProperty(i)) {\n                                                n = this.seen[e];\n                                                do {\n                                                    i = e + \"-\" + ++n\n                                                } while (this.seen.hasOwnProperty(i))\n                                            }\n                                            return t || (this.seen[e] = n, this.seen[i] = 0), i\n                                        }, t.slug = function(e, t) {\n                                            void 0 === t && (t = {});\n                                            var i = this.serialize(e);\n                                            return this.getNextSafeSlug(i, t.dryrun)\n                                        }, e\n                                    }(),\n                                    re = ne,\n                                    ae = oe,\n                                    le = se,\n                                    ce = n.exports.defaults,\n                                    de = x,\n                                    he = function() {\n                                        function e(e) {\n                                            this.options = e || ce, this.options.renderer = this.options.renderer || new re, this.renderer = this.options.renderer, this.renderer.options = this.options, this.textRenderer = new ae, this.slugger = new le\n                                        }\n                                        e.parse = function(t, i) {\n                                            return new e(i).parse(t)\n                                        }, e.parseInline = function(t, i) {\n                                            return new e(i).parseInline(t)\n                                        };\n                                        var t = e.prototype;\n                                        return t.parse = function(e, t) {\n                                            void 0 === t && (t = !0);\n                                            var i, n, o, s, r, a, l, c, d, h, u, g, p, f, m, v, _, b, w, y = \"\",\n                                                C = e.length;\n                                            for (i = 0; i < C; i++)\n                                                if (h = e[i], !(this.options.extensions && this.options.extensions.renderers && this.options.extensions.renderers[h.type]) || !1 === (w = this.options.extensions.renderers[h.type].call({\n                                                        parser: this\n                                                    }, h)) && [\"space\", \"hr\", \"heading\", \"code\", \"table\", \"blockquote\", \"list\", \"html\", \"paragraph\", \"text\"].includes(h.type)) switch (h.type) {\n                                                    case \"space\":\n                                                        continue;\n                                                    case \"hr\":\n                                                        y += this.renderer.hr();\n                                                        continue;\n                                                    case \"heading\":\n                                                        y += this.renderer.heading(this.parseInline(h.tokens), h.depth, de(this.parseInline(h.tokens, this.textRenderer)), this.slugger);\n                                                        continue;\n                                                    case \"code\":\n                                                        y += this.renderer.code(h.text, h.lang, h.escaped);\n                                                        continue;\n                                                    case \"table\":\n                                                        for (c = \"\", l = \"\", s = h.header.length, n = 0; n < s; n++) l += this.renderer.tablecell(this.parseInline(h.header[n].tokens), {\n                                                            header: !0,\n                                                            align: h.align[n]\n                                                        });\n                                                        for (c += this.renderer.tablerow(l), d = \"\", s = h.rows.length, n = 0; n < s; n++) {\n                                                            for (l = \"\", r = (a = h.rows[n]).length, o = 0; o < r; o++) l += this.renderer.tablecell(this.parseInline(a[o].tokens), {\n                                                                header: !1,\n                                                                align: h.align[o]\n                                                            });\n                                                            d += this.renderer.tablerow(l)\n                                                        }\n                                                        y += this.renderer.table(c, d);\n                                                        continue;\n                                                    case \"blockquote\":\n                                                        d = this.parse(h.tokens), y += this.renderer.blockquote(d);\n                                                        continue;\n                                                    case \"list\":\n                                                        for (u = h.ordered, g = h.start, p = h.loose, s = h.items.length, d = \"\", n = 0; n < s; n++) v = (m = h.items[n]).checked, _ = m.task, f = \"\", m.task && (b = this.renderer.checkbox(v), p ? m.tokens.length > 0 && \"paragraph\" === m.tokens[0].type ? (m.tokens[0].text = b + \" \" + m.tokens[0].text, m.tokens[0].tokens && m.tokens[0].tokens.length > 0 && \"text\" === m.tokens[0].tokens[0].type && (m.tokens[0].tokens[0].text = b + \" \" + m.tokens[0].tokens[0].text)) : m.tokens.unshift({\n                                                            type: \"text\",\n                                                            text: b\n                                                        }) : f += b), f += this.parse(m.tokens, p), d += this.renderer.listitem(f, _, v);\n                                                        y += this.renderer.list(d, u, g);\n                                                        continue;\n                                                    case \"html\":\n                                                        y += this.renderer.html(h.text);\n                                                        continue;\n                                                    case \"paragraph\":\n                                                        y += this.renderer.paragraph(this.parseInline(h.tokens));\n                                                        continue;\n                                                    case \"text\":\n                                                        for (d = h.tokens ? this.parseInline(h.tokens) : h.text; i + 1 < C && \"text\" === e[i + 1].type;) d += \"\\n\" + ((h = e[++i]).tokens ? this.parseInline(h.tokens) : h.text);\n                                                        y += t ? this.renderer.paragraph(d) : d;\n                                                        continue;\n                                                    default:\n                                                        var x = 'Token with \"' + h.type + '\" type was not found.';\n                                                        if (this.options.silent) return void console.error(x);\n                                                        throw new Error(x)\n                                                } else y += w || \"\";\n                                            return y\n                                        }, t.parseInline = function(e, t) {\n                                            t = t || this.renderer;\n                                            var i, n, o, s = \"\",\n                                                r = e.length;\n                                            for (i = 0; i < r; i++)\n                                                if (n = e[i], !(this.options.extensions && this.options.extensions.renderers && this.options.extensions.renderers[n.type]) || !1 === (o = this.options.extensions.renderers[n.type].call({\n                                                        parser: this\n                                                    }, n)) && [\"escape\", \"html\", \"link\", \"image\", \"strong\", \"em\", \"codespan\", \"br\", \"del\", \"text\"].includes(n.type)) switch (n.type) {\n                                                    case \"escape\":\n                                                    case \"text\":\n                                                        s += t.text(n.text);\n                                                        break;\n                                                    case \"html\":\n                                                        s += t.html(n.text);\n                                                        break;\n                                                    case \"link\":\n                                                        s += t.link(n.href, n.title, this.parseInline(n.tokens, t));\n                                                        break;\n                                                    case \"image\":\n                                                        s += t.image(n.href, n.title, n.text);\n                                                        break;\n                                                    case \"strong\":\n                                                        s += t.strong(this.parseInline(n.tokens, t));\n                                                        break;\n                                                    case \"em\":\n                                                        s += t.em(this.parseInline(n.tokens, t));\n                                                        break;\n                                                    case \"codespan\":\n                                                        s += t.codespan(n.text);\n                                                        break;\n                                                    case \"br\":\n                                                        s += t.br();\n                                                        break;\n                                                    case \"del\":\n                                                        s += t.del(this.parseInline(n.tokens, t));\n                                                        break;\n                                                    default:\n                                                        var a = 'Token with \"' + n.type + '\" type was not found.';\n                                                        if (this.options.silent) return void console.error(a);\n                                                        throw new Error(a)\n                                                } else s += o || \"\";\n                                            return s\n                                        }, e\n                                    }(),\n                                    ue = J,\n                                    ge = he,\n                                    pe = V,\n                                    fe = ne,\n                                    me = oe,\n                                    ve = se,\n                                    _e = N,\n                                    be = T,\n                                    we = C,\n                                    ye = n.exports.getDefaults,\n                                    Ce = n.exports.changeDefaults,\n                                    xe = n.exports.defaults;\n\n                                function Se(e, t, i) {\n                                    if (null == e) throw new Error(\"marked(): input parameter is undefined or null\");\n                                    if (\"string\" != typeof e) throw new Error(\"marked(): input parameter is of type \" + Object.prototype.toString.call(e) + \", string expected\");\n                                    if (\"function\" == typeof t && (i = t, t = null), t = _e({}, Se.defaults, t || {}), be(t), i) {\n                                        var n, o = t.highlight;\n                                        try {\n                                            n = ue.lex(e, t)\n                                        } catch (e) {\n                                            return i(e)\n                                        }\n                                        var s = function(e) {\n                                            var s;\n                                            if (!e) try {\n                                                t.walkTokens && Se.walkTokens(n, t.walkTokens), s = ge.parse(n, t)\n                                            } catch (t) {\n                                                e = t\n                                            }\n                                            return t.highlight = o, e ? i(e) : i(null, s)\n                                        };\n                                        if (!o || o.length < 3) return s();\n                                        if (delete t.highlight, !n.length) return s();\n                                        var r = 0;\n                                        return Se.walkTokens(n, (function(e) {\n                                            \"code\" === e.type && (r++, setTimeout((function() {\n                                                o(e.text, e.lang, (function(t, i) {\n                                                    if (t) return s(t);\n                                                    null != i && i !== e.text && (e.text = i, e.escaped = !0), 0 === --r && s()\n                                                }))\n                                            }), 0))\n                                        })), void(0 === r && s())\n                                    }\n                                    try {\n                                        var a = ue.lex(e, t);\n                                        return t.walkTokens && Se.walkTokens(a, t.walkTokens), ge.parse(a, t)\n                                    } catch (e) {\n                                        if (e.message += \"\\nPlease report this to https://github.com/markedjs/marked.\", t.silent) return \"<p>An error occurred:</p><pre>\" + we(e.message + \"\", !0) + \"</pre>\";\n                                        throw e\n                                    }\n                                }\n                                return Se.options = Se.setOptions = function(e) {\n                                    return _e(Se.defaults, e), Ce(Se.defaults), Se\n                                }, Se.getDefaults = ye, Se.defaults = xe, Se.use = function() {\n                                    for (var e = this, t = arguments.length, i = new Array(t), n = 0; n < t; n++) i[n] = arguments[n];\n                                    var o, s = _e.apply(void 0, [{}].concat(i)),\n                                        r = Se.defaults.extensions || {\n                                            renderers: {},\n                                            childTokens: {}\n                                        };\n                                    i.forEach((function(t) {\n                                        if (t.extensions && (o = !0, t.extensions.forEach((function(e) {\n                                                if (!e.name) throw new Error(\"extension name required\");\n                                                if (e.renderer) {\n                                                    var t = r.renderers ? r.renderers[e.name] : null;\n                                                    r.renderers[e.name] = t ? function() {\n                                                        for (var i = arguments.length, n = new Array(i), o = 0; o < i; o++) n[o] = arguments[o];\n                                                        var s = e.renderer.apply(this, n);\n                                                        return !1 === s && (s = t.apply(this, n)), s\n                                                    } : e.renderer\n                                                }\n                                                if (e.tokenizer) {\n                                                    if (!e.level || \"block\" !== e.level && \"inline\" !== e.level) throw new Error(\"extension level must be 'block' or 'inline'\");\n                                                    r[e.level] ? r[e.level].unshift(e.tokenizer) : r[e.level] = [e.tokenizer], e.start && (\"block\" === e.level ? r.startBlock ? r.startBlock.push(e.start) : r.startBlock = [e.start] : \"inline\" === e.level && (r.startInline ? r.startInline.push(e.start) : r.startInline = [e.start]))\n                                                }\n                                                e.childTokens && (r.childTokens[e.name] = e.childTokens)\n                                            }))), t.renderer && function() {\n                                                var e = Se.defaults.renderer || new fe,\n                                                    i = function(i) {\n                                                        var n = e[i];\n                                                        e[i] = function() {\n                                                            for (var o = arguments.length, s = new Array(o), r = 0; r < o; r++) s[r] = arguments[r];\n                                                            var a = t.renderer[i].apply(e, s);\n                                                            return !1 === a && (a = n.apply(e, s)), a\n                                                        }\n                                                    };\n                                                for (var n in t.renderer) i(n);\n                                                s.renderer = e\n                                            }(), t.tokenizer && function() {\n                                                var e = Se.defaults.tokenizer || new pe,\n                                                    i = function(i) {\n                                                        var n = e[i];\n                                                        e[i] = function() {\n                                                            for (var o = arguments.length, s = new Array(o), r = 0; r < o; r++) s[r] = arguments[r];\n                                                            var a = t.tokenizer[i].apply(e, s);\n                                                            return !1 === a && (a = n.apply(e, s)), a\n                                                        }\n                                                    };\n                                                for (var n in t.tokenizer) i(n);\n                                                s.tokenizer = e\n                                            }(), t.walkTokens) {\n                                            var i = Se.defaults.walkTokens;\n                                            s.walkTokens = function(n) {\n                                                t.walkTokens.call(e, n), i && i(n)\n                                            }\n                                        }\n                                        o && (s.extensions = r), Se.setOptions(s)\n                                    }))\n                                }, Se.walkTokens = function(e, t) {\n                                    for (var n, o = function() {\n                                            var e = n.value;\n                                            switch (t(e), e.type) {\n                                                case \"table\":\n                                                    for (var o, s = i(e.header); !(o = s()).done;) {\n                                                        var r = o.value;\n                                                        Se.walkTokens(r.tokens, t)\n                                                    }\n                                                    for (var a, l = i(e.rows); !(a = l()).done;)\n                                                        for (var c, d = i(a.value); !(c = d()).done;) {\n                                                            var h = c.value;\n                                                            Se.walkTokens(h.tokens, t)\n                                                        }\n                                                    break;\n                                                case \"list\":\n                                                    Se.walkTokens(e.items, t);\n                                                    break;\n                                                default:\n                                                    Se.defaults.extensions && Se.defaults.extensions.childTokens && Se.defaults.extensions.childTokens[e.type] ? Se.defaults.extensions.childTokens[e.type].forEach((function(i) {\n                                                        Se.walkTokens(e[i], t)\n                                                    })) : e.tokens && Se.walkTokens(e.tokens, t)\n                                            }\n                                        }, s = i(e); !(n = s()).done;) o()\n                                }, Se.parseInline = function(e, t) {\n                                    if (null == e) throw new Error(\"marked.parseInline(): input parameter is undefined or null\");\n                                    if (\"string\" != typeof e) throw new Error(\"marked.parseInline(): input parameter is of type \" + Object.prototype.toString.call(e) + \", string expected\");\n                                    t = _e({}, Se.defaults, t || {}), be(t);\n                                    try {\n                                        var i = ue.lexInline(e, t);\n                                        return t.walkTokens && Se.walkTokens(i, t.walkTokens), ge.parseInline(i, t)\n                                    } catch (e) {\n                                        if (e.message += \"\\nPlease report this to https://github.com/markedjs/marked.\", t.silent) return \"<p>An error occurred:</p><pre>\" + we(e.message + \"\", !0) + \"</pre>\";\n                                        throw e\n                                    }\n                                }, Se.Parser = ge, Se.parser = ge.parse, Se.Renderer = fe, Se.TextRenderer = me, Se.Lexer = ue, Se.lexer = ue.lex, Se.Tokenizer = pe, Se.Slugger = ve, Se.parse = Se, Se\n                            }))\n                    }();\n                n.Parser, n.parser;\n                var o = n.Renderer,\n                    s = (n.TextRenderer, n.Lexer, n.lexer, n.Tokenizer, n.Slugger, n.parse)\n            },\n            23897: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    Q: () => s\n                });\n                var n = i(53060),\n                    o = i(70666);\n\n                function s(e) {\n                    let t = JSON.parse(e);\n                    return t = r(t), t\n                }\n\n                function r(e, t = 0) {\n                    if (!e || t > 200) return e;\n                    if (\"object\" == typeof e) {\n                        switch (e.$mid) {\n                            case 1:\n                                return o.o.revive(e);\n                            case 2:\n                                return new RegExp(e.source, e.flags)\n                        }\n                        if (e instanceof n.KN || e instanceof Uint8Array) return e;\n                        if (Array.isArray(e))\n                            for (let i = 0; i < e.length; ++i) e[i] = r(e[i], t + 1);\n                        else\n                            for (const i in e) Object.hasOwnProperty.call(e, i) && (e[i] = r(e[i], t + 1))\n                    }\n                    return e\n                }\n            },\n            81170: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    G8: () => p,\n                    bS: () => g,\n                    sA: () => u,\n                    vW: () => n\n                });\n                var n, o = i(14118),\n                    s = i(66663),\n                    r = i(88721),\n                    a = i(95935),\n                    l = i(97295);\n                ! function(e) {\n                    e.text = \"text/plain\", e.binary = \"application/octet-stream\", e.unknown = \"application/unknown\", e.markdown = \"text/markdown\", e.latex = \"text/latex\"\n                }(n || (n = {}));\n                let c = [],\n                    d = [],\n                    h = [];\n\n                function u(e, t = !1) {\n                    const i = function(e) {\n                        return {\n                            id: e.id,\n                            mime: e.mime,\n                            filename: e.filename,\n                            extension: e.extension,\n                            filepattern: e.filepattern,\n                            firstline: e.firstline,\n                            userConfigured: e.userConfigured,\n                            filenameLowercase: e.filename ? e.filename.toLowerCase() : void 0,\n                            extensionLowercase: e.extension ? e.extension.toLowerCase() : void 0,\n                            filepatternLowercase: e.filepattern ? (0, o.Qc)(e.filepattern.toLowerCase()) : void 0,\n                            filepatternOnPath: !!e.filepattern && e.filepattern.indexOf(r.KR.sep) >= 0\n                        }\n                    }(e);\n                    c.push(i), i.userConfigured ? h.push(i) : d.push(i), t && !i.userConfigured && c.forEach((e => {\n                        e.mime === i.mime || e.userConfigured || (i.extension && e.extension === i.extension && console.warn(`Overwriting extension <<${i.extension}>> to now point to mime <<${i.mime}>>`), i.filename && e.filename === i.filename && console.warn(`Overwriting filename <<${i.filename}>> to now point to mime <<${i.mime}>>`), i.filepattern && e.filepattern === i.filepattern && console.warn(`Overwriting filepattern <<${i.filepattern}>> to now point to mime <<${i.mime}>>`), i.firstline && e.firstline === i.firstline && console.warn(`Overwriting firstline <<${i.firstline}>> to now point to mime <<${i.mime}>>`))\n                    }))\n                }\n\n                function g(e) {\n                    e ? (c = c.filter((e => !e.userConfigured)), h = []) : (c = [], d = [], h = [])\n                }\n\n                function p(e, t) {\n                    let i;\n                    if (e) switch (e.scheme) {\n                        case s.lg.file:\n                            i = e.fsPath;\n                            break;\n                        case s.lg.data:\n                            i = a.Vb.parseMetaData(e).get(a.Vb.META_DATA_LABEL);\n                            break;\n                        default:\n                            i = e.path\n                    }\n                    if (!i) return [n.unknown];\n                    i = i.toLowerCase();\n                    const o = (0, r.EZ)(i),\n                        u = f(i, o, h);\n                    if (u) return [u, n.text];\n                    const g = f(i, o, d);\n                    if (g) return [g, n.text];\n                    if (t) {\n                        const e = function(e) {\n                            (0, l.uS)(e) && (e = e.substr(1));\n                            if (e.length > 0)\n                                for (let t = c.length - 1; t >= 0; t--) {\n                                    const i = c[t];\n                                    if (!i.firstline) continue;\n                                    const n = e.match(i.firstline);\n                                    if (n && n.length > 0) return i.mime\n                                }\n                            return null\n                        }(t);\n                        if (e) return [e, n.text]\n                    }\n                    return [n.unknown]\n                }\n\n                function f(e, t, i) {\n                    var n;\n                    let o = null,\n                        s = null,\n                        r = null;\n                    for (let a = i.length - 1; a >= 0; a--) {\n                        const l = i[a];\n                        if (t === l.filenameLowercase) {\n                            o = l;\n                            break\n                        }\n                        if (l.filepattern && (!s || l.filepattern.length > s.filepattern.length)) {\n                            const i = l.filepatternOnPath ? e : t;\n                            (null === (n = l.filepatternLowercase) || void 0 === n ? void 0 : n.call(l, i)) && (s = l)\n                        }\n                        l.extension && (!r || l.extension.length > r.extension.length) && t.endsWith(l.extensionLowercase) && (r = l)\n                    }\n                    return o ? o.mime : s ? s.mime : r ? r.mime : null\n                }\n            },\n            66663: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    Gi: () => l,\n                    WX: () => r,\n                    lg: () => n\n                });\n                var n, o = i(1432),\n                    s = i(70666);\n                ! function(e) {\n                    e.inMemory = \"inmemory\", e.vscode = \"vscode\", e.internal = \"private\", e.walkThrough = \"walkThrough\", e.walkThroughSnippet = \"walkThroughSnippet\", e.http = \"http\", e.https = \"https\", e.file = \"file\", e.mailto = \"mailto\", e.untitled = \"untitled\", e.data = \"data\", e.command = \"command\", e.vscodeRemote = \"vscode-remote\", e.vscodeRemoteResource = \"vscode-remote-resource\", e.userData = \"vscode-userdata\", e.vscodeCustomEditor = \"vscode-custom-editor\", e.vscodeNotebook = \"vscode-notebook\", e.vscodeNotebookCell = \"vscode-notebook-cell\", e.vscodeNotebookCellMetadata = \"vscode-notebook-cell-metadata\", e.vscodeNotebookCellOutput = \"vscode-notebook-cell-output\", e.vscodeInteractive = \"vscode-interactive\", e.vscodeInteractiveInput = \"vscode-interactive-input\", e.vscodeSettings = \"vscode-settings\", e.vscodeWorkspaceTrust = \"vscode-workspace-trust\", e.vscodeTerminal = \"vscode-terminal\", e.webviewPanel = \"webview-panel\", e.vscodeWebview = \"vscode-webview\", e.extension = \"extension\", e.vscodeFileResource = \"vscode-file\", e.tmp = \"tmp\"\n                }(n || (n = {}));\n                const r = new class {\n                    constructor() {\n                        this._hosts = Object.create(null), this._ports = Object.create(null), this._connectionTokens = Object.create(null), this._preferredWebSchema = \"http\", this._delegate = null\n                    }\n                    setPreferredWebSchema(e) {\n                        this._preferredWebSchema = e\n                    }\n                    rewrite(e) {\n                        if (this._delegate) return this._delegate(e);\n                        const t = e.authority;\n                        let i = this._hosts[t];\n                        i && -1 !== i.indexOf(\":\") && (i = `[${i}]`);\n                        const r = this._ports[t],\n                            a = this._connectionTokens[t];\n                        let l = `path=${encodeURIComponent(e.path)}`;\n                        return \"string\" == typeof a && (l += `&tkn=${encodeURIComponent(a)}`), s.o.from({\n                            scheme: o.$L ? this._preferredWebSchema : n.vscodeRemoteResource,\n                            authority: `${i}:${r}`,\n                            path: \"/vscode-remote-resource\",\n                            query: l\n                        })\n                    }\n                };\n                class a {\n                    asBrowserUri(e, t) {\n                        const i = this.toUri(e, t);\n                        return i.scheme === n.vscodeRemote ? r.rewrite(i) : i.scheme === n.file && (o.tY || \"function\" == typeof o.li.importScripts && o.li.origin === `${n.vscodeFileResource}://${a.FALLBACK_AUTHORITY}`) ? i.with({\n                            scheme: n.vscodeFileResource,\n                            authority: i.authority || a.FALLBACK_AUTHORITY,\n                            query: null,\n                            fragment: null\n                        }) : i\n                    }\n                    toUri(e, t) {\n                        return s.o.isUri(e) ? e : s.o.parse(t.toUrl(e))\n                    }\n                }\n                a.FALLBACK_AUTHORITY = \"vscode-app\";\n                const l = new a\n            },\n            59870: (e, t, i) => {\n                \"use strict\";\n\n                function n(e, t, i) {\n                    return Math.min(Math.max(e, t), i)\n                }\n                i.d(t, {\n                    n: () => o,\n                    u: () => n\n                });\n                class o {\n                    constructor() {\n                        this._n = 1, this._val = 0\n                    }\n                    update(e) {\n                        return this._val = this._val + (e - this._val) / this._n, this._n += 1, this\n                    }\n                    get value() {\n                        return this._val\n                    }\n                }\n            },\n            36248: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    CJ: () => h,\n                    I8: () => o,\n                    _A: () => s,\n                    fS: () => d,\n                    jB: () => c,\n                    rs: () => a\n                });\n                var n = i(98401);\n\n                function o(e) {\n                    if (!e || \"object\" != typeof e) return e;\n                    if (e instanceof RegExp) return e;\n                    const t = Array.isArray(e) ? [] : {};\n                    return Object.keys(e).forEach((i => {\n                        e[i] && \"object\" == typeof e[i] ? t[i] = o(e[i]) : t[i] = e[i]\n                    })), t\n                }\n\n                function s(e) {\n                    if (!e || \"object\" != typeof e) return e;\n                    const t = [e];\n                    for (; t.length > 0;) {\n                        const e = t.shift();\n                        Object.freeze(e);\n                        for (const i in e)\n                            if (r.call(e, i)) {\n                                const n = e[i];\n                                \"object\" != typeof n || Object.isFrozen(n) || t.push(n)\n                            }\n                    }\n                    return e\n                }\n                const r = Object.prototype.hasOwnProperty;\n\n                function a(e, t) {\n                    return l(e, t, new Set)\n                }\n\n                function l(e, t, i) {\n                    if ((0, n.Jp)(e)) return e;\n                    const o = t(e);\n                    if (void 0 !== o) return o;\n                    if ((0, n.kJ)(e)) {\n                        const n = [];\n                        for (const o of e) n.push(l(o, t, i));\n                        return n\n                    }\n                    if ((0, n.Kn)(e)) {\n                        if (i.has(e)) throw new Error(\"Cannot clone recursive data-structure\");\n                        i.add(e);\n                        const n = {};\n                        for (let o in e) r.call(e, o) && (n[o] = l(e[o], t, i));\n                        return i.delete(e), n\n                    }\n                    return e\n                }\n\n                function c(e, t, i = !0) {\n                    return (0, n.Kn)(e) ? ((0, n.Kn)(t) && Object.keys(t).forEach((o => {\n                        o in e ? i && ((0, n.Kn)(e[o]) && (0, n.Kn)(t[o]) ? c(e[o], t[o], i) : e[o] = t[o]) : e[o] = t[o]\n                    })), e) : t\n                }\n\n                function d(e, t) {\n                    if (e === t) return !0;\n                    if (null == e || null == t) return !1;\n                    if (typeof e != typeof t) return !1;\n                    if (\"object\" != typeof e) return !1;\n                    if (Array.isArray(e) !== Array.isArray(t)) return !1;\n                    let i, n;\n                    if (Array.isArray(e)) {\n                        if (e.length !== t.length) return !1;\n                        for (i = 0; i < e.length; i++)\n                            if (!d(e[i], t[i])) return !1\n                    } else {\n                        const o = [];\n                        for (n in e) o.push(n);\n                        o.sort();\n                        const s = [];\n                        for (n in t) s.push(n);\n                        if (s.sort(), !d(o, s)) return !1;\n                        for (i = 0; i < o.length; i++)\n                            if (!d(e[o[i]], t[o[i]])) return !1\n                    }\n                    return !0\n                }\n\n                function h(e, t, i) {\n                    const n = t(e);\n                    return void 0 === n ? i : n\n                }\n            },\n            88721: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    EZ: () => k,\n                    XX: () => S,\n                    DZ: () => L,\n                    Fv: () => y,\n                    KR: () => w,\n                    Gf: () => x,\n                    DB: () => C,\n                    ir: () => N,\n                    Ku: () => b\n                });\n                var n = i(1432);\n                let o;\n                if (void 0 !== n.li.vscode && void 0 !== n.li.vscode.process) {\n                    const e = n.li.vscode.process;\n                    o = {\n                        get platform() {\n                            return e.platform\n                        },\n                        get arch() {\n                            return e.arch\n                        },\n                        get env() {\n                            return e.env\n                        },\n                        cwd: () => e.cwd(),\n                        nextTick: e => (0, n.xS)(e)\n                    }\n                } else o = \"undefined\" != typeof process ? {\n                    get platform() {\n                        return process.platform\n                    },\n                    get arch() {\n                        return process.arch\n                    },\n                    get env() {\n                        return process.env\n                    },\n                    cwd: () => process.env.VSCODE_CWD || process.cwd(),\n                    nextTick: e => process.nextTick(e)\n                } : {\n                    get platform() {\n                        return n.ED ? \"win32\" : n.dz ? \"darwin\" : \"linux\"\n                    },\n                    get arch() {},\n                    nextTick: e => (0, n.xS)(e),\n                    get env() {\n                        return {}\n                    },\n                    cwd: () => \"/\"\n                };\n                const s = o.cwd,\n                    r = o.env,\n                    a = o.platform,\n                    l = 46,\n                    c = 47,\n                    d = 92,\n                    h = 58;\n                class u extends Error {\n                    constructor(e, t, i) {\n                        let n;\n                        \"string\" == typeof t && 0 === t.indexOf(\"not \") ? (n = \"must not be\", t = t.replace(/^not /, \"\")) : n = \"must be\";\n                        const o = -1 !== e.indexOf(\".\") ? \"property\" : \"argument\";\n                        let s = `The \"${e}\" ${o} ${n} of type ${t}`;\n                        s += \". Received type \" + typeof i, super(s), this.code = \"ERR_INVALID_ARG_TYPE\"\n                    }\n                }\n\n                function g(e, t) {\n                    if (\"string\" != typeof e) throw new u(t, \"string\", e)\n                }\n\n                function p(e) {\n                    return e === c || e === d\n                }\n\n                function f(e) {\n                    return e === c\n                }\n\n                function m(e) {\n                    return e >= 65 && e <= 90 || e >= 97 && e <= 122\n                }\n\n                function v(e, t, i, n) {\n                    let o = \"\",\n                        s = 0,\n                        r = -1,\n                        a = 0,\n                        d = 0;\n                    for (let h = 0; h <= e.length; ++h) {\n                        if (h < e.length) d = e.charCodeAt(h);\n                        else {\n                            if (n(d)) break;\n                            d = c\n                        }\n                        if (n(d)) {\n                            if (r === h - 1 || 1 === a);\n                            else if (2 === a) {\n                                if (o.length < 2 || 2 !== s || o.charCodeAt(o.length - 1) !== l || o.charCodeAt(o.length - 2) !== l) {\n                                    if (o.length > 2) {\n                                        const e = o.lastIndexOf(i); - 1 === e ? (o = \"\", s = 0) : (o = o.slice(0, e), s = o.length - 1 - o.lastIndexOf(i)), r = h, a = 0;\n                                        continue\n                                    }\n                                    if (0 !== o.length) {\n                                        o = \"\", s = 0, r = h, a = 0;\n                                        continue\n                                    }\n                                }\n                                t && (o += o.length > 0 ? `${i}..` : \"..\", s = 2)\n                            } else o.length > 0 ? o += `${i}${e.slice(r+1,h)}` : o = e.slice(r + 1, h), s = h - r - 1;\n                            r = h, a = 0\n                        } else d === l && -1 !== a ? ++a : a = -1\n                    }\n                    return o\n                }\n\n                function _(e, t) {\n                    if (null === t || \"object\" != typeof t) throw new u(\"pathObject\", \"Object\", t);\n                    const i = t.dir || t.root,\n                        n = t.base || `${t.name||\"\"}${t.ext||\"\"}`;\n                    return i ? i === t.root ? `${i}${n}` : `${i}${e}${n}` : n\n                }\n                const b = {\n                        resolve(...e) {\n                            let t = \"\",\n                                i = \"\",\n                                n = !1;\n                            for (let o = e.length - 1; o >= -1; o--) {\n                                let a;\n                                if (o >= 0) {\n                                    if (a = e[o], g(a, \"path\"), 0 === a.length) continue\n                                } else 0 === t.length ? a = s() : (a = r[`=${t}`] || s(), (void 0 === a || a.slice(0, 2).toLowerCase() !== t.toLowerCase() && a.charCodeAt(2) === d) && (a = `${t}\\\\`));\n                                const l = a.length;\n                                let c = 0,\n                                    u = \"\",\n                                    f = !1;\n                                const v = a.charCodeAt(0);\n                                if (1 === l) p(v) && (c = 1, f = !0);\n                                else if (p(v))\n                                    if (f = !0, p(a.charCodeAt(1))) {\n                                        let e = 2,\n                                            t = e;\n                                        for (; e < l && !p(a.charCodeAt(e));) e++;\n                                        if (e < l && e !== t) {\n                                            const i = a.slice(t, e);\n                                            for (t = e; e < l && p(a.charCodeAt(e));) e++;\n                                            if (e < l && e !== t) {\n                                                for (t = e; e < l && !p(a.charCodeAt(e));) e++;\n                                                e !== l && e === t || (u = `\\\\\\\\${i}\\\\${a.slice(t,e)}`, c = e)\n                                            }\n                                        }\n                                    } else c = 1;\n                                else m(v) && a.charCodeAt(1) === h && (u = a.slice(0, 2), c = 2, l > 2 && p(a.charCodeAt(2)) && (f = !0, c = 3));\n                                if (u.length > 0)\n                                    if (t.length > 0) {\n                                        if (u.toLowerCase() !== t.toLowerCase()) continue\n                                    } else t = u;\n                                if (n) {\n                                    if (t.length > 0) break\n                                } else if (i = `${a.slice(c)}\\\\${i}`, n = f, f && t.length > 0) break\n                            }\n                            return i = v(i, !n, \"\\\\\", p), n ? `${t}\\\\${i}` : `${t}${i}` || \".\"\n                        },\n                        normalize(e) {\n                            g(e, \"path\");\n                            const t = e.length;\n                            if (0 === t) return \".\";\n                            let i, n = 0,\n                                o = !1;\n                            const s = e.charCodeAt(0);\n                            if (1 === t) return f(s) ? \"\\\\\" : e;\n                            if (p(s))\n                                if (o = !0, p(e.charCodeAt(1))) {\n                                    let o = 2,\n                                        s = o;\n                                    for (; o < t && !p(e.charCodeAt(o));) o++;\n                                    if (o < t && o !== s) {\n                                        const r = e.slice(s, o);\n                                        for (s = o; o < t && p(e.charCodeAt(o));) o++;\n                                        if (o < t && o !== s) {\n                                            for (s = o; o < t && !p(e.charCodeAt(o));) o++;\n                                            if (o === t) return `\\\\\\\\${r}\\\\${e.slice(s)}\\\\`;\n                                            o !== s && (i = `\\\\\\\\${r}\\\\${e.slice(s,o)}`, n = o)\n                                        }\n                                    }\n                                } else n = 1;\n                            else m(s) && e.charCodeAt(1) === h && (i = e.slice(0, 2), n = 2, t > 2 && p(e.charCodeAt(2)) && (o = !0, n = 3));\n                            let r = n < t ? v(e.slice(n), !o, \"\\\\\", p) : \"\";\n                            return 0 !== r.length || o || (r = \".\"), r.length > 0 && p(e.charCodeAt(t - 1)) && (r += \"\\\\\"), void 0 === i ? o ? `\\\\${r}` : r : o ? `${i}\\\\${r}` : `${i}${r}`\n                        },\n                        isAbsolute(e) {\n                            g(e, \"path\");\n                            const t = e.length;\n                            if (0 === t) return !1;\n                            const i = e.charCodeAt(0);\n                            return p(i) || t > 2 && m(i) && e.charCodeAt(1) === h && p(e.charCodeAt(2))\n                        },\n                        join(...e) {\n                            if (0 === e.length) return \".\";\n                            let t, i;\n                            for (let n = 0; n < e.length; ++n) {\n                                const o = e[n];\n                                g(o, \"path\"), o.length > 0 && (void 0 === t ? t = i = o : t += `\\\\${o}`)\n                            }\n                            if (void 0 === t) return \".\";\n                            let n = !0,\n                                o = 0;\n                            if (\"string\" == typeof i && p(i.charCodeAt(0))) {\n                                ++o;\n                                const e = i.length;\n                                e > 1 && p(i.charCodeAt(1)) && (++o, e > 2 && (p(i.charCodeAt(2)) ? ++o : n = !1))\n                            }\n                            if (n) {\n                                for (; o < t.length && p(t.charCodeAt(o));) o++;\n                                o >= 2 && (t = `\\\\${t.slice(o)}`)\n                            }\n                            return b.normalize(t)\n                        },\n                        relative(e, t) {\n                            if (g(e, \"from\"), g(t, \"to\"), e === t) return \"\";\n                            const i = b.resolve(e),\n                                n = b.resolve(t);\n                            if (i === n) return \"\";\n                            if ((e = i.toLowerCase()) === (t = n.toLowerCase())) return \"\";\n                            let o = 0;\n                            for (; o < e.length && e.charCodeAt(o) === d;) o++;\n                            let s = e.length;\n                            for (; s - 1 > o && e.charCodeAt(s - 1) === d;) s--;\n                            const r = s - o;\n                            let a = 0;\n                            for (; a < t.length && t.charCodeAt(a) === d;) a++;\n                            let l = t.length;\n                            for (; l - 1 > a && t.charCodeAt(l - 1) === d;) l--;\n                            const c = l - a,\n                                h = r < c ? r : c;\n                            let u = -1,\n                                p = 0;\n                            for (; p < h; p++) {\n                                const i = e.charCodeAt(o + p);\n                                if (i !== t.charCodeAt(a + p)) break;\n                                i === d && (u = p)\n                            }\n                            if (p !== h) {\n                                if (-1 === u) return n\n                            } else {\n                                if (c > h) {\n                                    if (t.charCodeAt(a + p) === d) return n.slice(a + p + 1);\n                                    if (2 === p) return n.slice(a + p)\n                                }\n                                r > h && (e.charCodeAt(o + p) === d ? u = p : 2 === p && (u = 3)), -1 === u && (u = 0)\n                            }\n                            let f = \"\";\n                            for (p = o + u + 1; p <= s; ++p) p !== s && e.charCodeAt(p) !== d || (f += 0 === f.length ? \"..\" : \"\\\\..\");\n                            return a += u, f.length > 0 ? `${f}${n.slice(a,l)}` : (n.charCodeAt(a) === d && ++a, n.slice(a, l))\n                        },\n                        toNamespacedPath(e) {\n                            if (\"string\" != typeof e) return e;\n                            if (0 === e.length) return \"\";\n                            const t = b.resolve(e);\n                            if (t.length <= 2) return e;\n                            if (t.charCodeAt(0) === d) {\n                                if (t.charCodeAt(1) === d) {\n                                    const e = t.charCodeAt(2);\n                                    if (63 !== e && e !== l) return `\\\\\\\\?\\\\UNC\\\\${t.slice(2)}`\n                                }\n                            } else if (m(t.charCodeAt(0)) && t.charCodeAt(1) === h && t.charCodeAt(2) === d) return `\\\\\\\\?\\\\${t}`;\n                            return e\n                        },\n                        dirname(e) {\n                            g(e, \"path\");\n                            const t = e.length;\n                            if (0 === t) return \".\";\n                            let i = -1,\n                                n = 0;\n                            const o = e.charCodeAt(0);\n                            if (1 === t) return p(o) ? e : \".\";\n                            if (p(o)) {\n                                if (i = n = 1, p(e.charCodeAt(1))) {\n                                    let o = 2,\n                                        s = o;\n                                    for (; o < t && !p(e.charCodeAt(o));) o++;\n                                    if (o < t && o !== s) {\n                                        for (s = o; o < t && p(e.charCodeAt(o));) o++;\n                                        if (o < t && o !== s) {\n                                            for (s = o; o < t && !p(e.charCodeAt(o));) o++;\n                                            if (o === t) return e;\n                                            o !== s && (i = n = o + 1)\n                                        }\n                                    }\n                                }\n                            } else m(o) && e.charCodeAt(1) === h && (i = t > 2 && p(e.charCodeAt(2)) ? 3 : 2, n = i);\n                            let s = -1,\n                                r = !0;\n                            for (let i = t - 1; i >= n; --i)\n                                if (p(e.charCodeAt(i))) {\n                                    if (!r) {\n                                        s = i;\n                                        break\n                                    }\n                                } else r = !1;\n                            if (-1 === s) {\n                                if (-1 === i) return \".\";\n                                s = i\n                            }\n                            return e.slice(0, s)\n                        },\n                        basename(e, t) {\n                            void 0 !== t && g(t, \"ext\"), g(e, \"path\");\n                            let i, n = 0,\n                                o = -1,\n                                s = !0;\n                            if (e.length >= 2 && m(e.charCodeAt(0)) && e.charCodeAt(1) === h && (n = 2), void 0 !== t && t.length > 0 && t.length <= e.length) {\n                                if (t === e) return \"\";\n                                let r = t.length - 1,\n                                    a = -1;\n                                for (i = e.length - 1; i >= n; --i) {\n                                    const l = e.charCodeAt(i);\n                                    if (p(l)) {\n                                        if (!s) {\n                                            n = i + 1;\n                                            break\n                                        }\n                                    } else -1 === a && (s = !1, a = i + 1), r >= 0 && (l === t.charCodeAt(r) ? -1 == --r && (o = i) : (r = -1, o = a))\n                                }\n                                return n === o ? o = a : -1 === o && (o = e.length), e.slice(n, o)\n                            }\n                            for (i = e.length - 1; i >= n; --i)\n                                if (p(e.charCodeAt(i))) {\n                                    if (!s) {\n                                        n = i + 1;\n                                        break\n                                    }\n                                } else -1 === o && (s = !1, o = i + 1);\n                            return -1 === o ? \"\" : e.slice(n, o)\n                        },\n                        extname(e) {\n                            g(e, \"path\");\n                            let t = 0,\n                                i = -1,\n                                n = 0,\n                                o = -1,\n                                s = !0,\n                                r = 0;\n                            e.length >= 2 && e.charCodeAt(1) === h && m(e.charCodeAt(0)) && (t = n = 2);\n                            for (let a = e.length - 1; a >= t; --a) {\n                                const t = e.charCodeAt(a);\n                                if (p(t)) {\n                                    if (!s) {\n                                        n = a + 1;\n                                        break\n                                    }\n                                } else -1 === o && (s = !1, o = a + 1), t === l ? -1 === i ? i = a : 1 !== r && (r = 1) : -1 !== i && (r = -1)\n                            }\n                            return -1 === i || -1 === o || 0 === r || 1 === r && i === o - 1 && i === n + 1 ? \"\" : e.slice(i, o)\n                        },\n                        format: _.bind(null, \"\\\\\"),\n                        parse(e) {\n                            g(e, \"path\");\n                            const t = {\n                                root: \"\",\n                                dir: \"\",\n                                base: \"\",\n                                ext: \"\",\n                                name: \"\"\n                            };\n                            if (0 === e.length) return t;\n                            const i = e.length;\n                            let n = 0,\n                                o = e.charCodeAt(0);\n                            if (1 === i) return p(o) ? (t.root = t.dir = e, t) : (t.base = t.name = e, t);\n                            if (p(o)) {\n                                if (n = 1, p(e.charCodeAt(1))) {\n                                    let t = 2,\n                                        o = t;\n                                    for (; t < i && !p(e.charCodeAt(t));) t++;\n                                    if (t < i && t !== o) {\n                                        for (o = t; t < i && p(e.charCodeAt(t));) t++;\n                                        if (t < i && t !== o) {\n                                            for (o = t; t < i && !p(e.charCodeAt(t));) t++;\n                                            t === i ? n = t : t !== o && (n = t + 1)\n                                        }\n                                    }\n                                }\n                            } else if (m(o) && e.charCodeAt(1) === h) {\n                                if (i <= 2) return t.root = t.dir = e, t;\n                                if (n = 2, p(e.charCodeAt(2))) {\n                                    if (3 === i) return t.root = t.dir = e, t;\n                                    n = 3\n                                }\n                            }\n                            n > 0 && (t.root = e.slice(0, n));\n                            let s = -1,\n                                r = n,\n                                a = -1,\n                                c = !0,\n                                d = e.length - 1,\n                                u = 0;\n                            for (; d >= n; --d)\n                                if (o = e.charCodeAt(d), p(o)) {\n                                    if (!c) {\n                                        r = d + 1;\n                                        break\n                                    }\n                                } else -1 === a && (c = !1, a = d + 1), o === l ? -1 === s ? s = d : 1 !== u && (u = 1) : -1 !== s && (u = -1);\n                            return -1 !== a && (-1 === s || 0 === u || 1 === u && s === a - 1 && s === r + 1 ? t.base = t.name = e.slice(r, a) : (t.name = e.slice(r, s), t.base = e.slice(r, a), t.ext = e.slice(s, a))), t.dir = r > 0 && r !== n ? e.slice(0, r - 1) : t.root, t\n                        },\n                        sep: \"\\\\\",\n                        delimiter: \";\",\n                        win32: null,\n                        posix: null\n                    },\n                    w = {\n                        resolve(...e) {\n                            let t = \"\",\n                                i = !1;\n                            for (let n = e.length - 1; n >= -1 && !i; n--) {\n                                const o = n >= 0 ? e[n] : s();\n                                g(o, \"path\"), 0 !== o.length && (t = `${o}/${t}`, i = o.charCodeAt(0) === c)\n                            }\n                            return t = v(t, !i, \"/\", f), i ? `/${t}` : t.length > 0 ? t : \".\"\n                        },\n                        normalize(e) {\n                            if (g(e, \"path\"), 0 === e.length) return \".\";\n                            const t = e.charCodeAt(0) === c,\n                                i = e.charCodeAt(e.length - 1) === c;\n                            return 0 === (e = v(e, !t, \"/\", f)).length ? t ? \"/\" : i ? \"./\" : \".\" : (i && (e += \"/\"), t ? `/${e}` : e)\n                        },\n                        isAbsolute: e => (g(e, \"path\"), e.length > 0 && e.charCodeAt(0) === c),\n                        join(...e) {\n                            if (0 === e.length) return \".\";\n                            let t;\n                            for (let i = 0; i < e.length; ++i) {\n                                const n = e[i];\n                                g(n, \"path\"), n.length > 0 && (void 0 === t ? t = n : t += `/${n}`)\n                            }\n                            return void 0 === t ? \".\" : w.normalize(t)\n                        },\n                        relative(e, t) {\n                            if (g(e, \"from\"), g(t, \"to\"), e === t) return \"\";\n                            if ((e = w.resolve(e)) === (t = w.resolve(t))) return \"\";\n                            const i = e.length,\n                                n = i - 1,\n                                o = t.length - 1,\n                                s = n < o ? n : o;\n                            let r = -1,\n                                a = 0;\n                            for (; a < s; a++) {\n                                const i = e.charCodeAt(1 + a);\n                                if (i !== t.charCodeAt(1 + a)) break;\n                                i === c && (r = a)\n                            }\n                            if (a === s)\n                                if (o > s) {\n                                    if (t.charCodeAt(1 + a) === c) return t.slice(1 + a + 1);\n                                    if (0 === a) return t.slice(1 + a)\n                                } else n > s && (e.charCodeAt(1 + a) === c ? r = a : 0 === a && (r = 0));\n                            let l = \"\";\n                            for (a = 1 + r + 1; a <= i; ++a) a !== i && e.charCodeAt(a) !== c || (l += 0 === l.length ? \"..\" : \"/..\");\n                            return `${l}${t.slice(1+r)}`\n                        },\n                        toNamespacedPath: e => e,\n                        dirname(e) {\n                            if (g(e, \"path\"), 0 === e.length) return \".\";\n                            const t = e.charCodeAt(0) === c;\n                            let i = -1,\n                                n = !0;\n                            for (let t = e.length - 1; t >= 1; --t)\n                                if (e.charCodeAt(t) === c) {\n                                    if (!n) {\n                                        i = t;\n                                        break\n                                    }\n                                } else n = !1;\n                            return -1 === i ? t ? \"/\" : \".\" : t && 1 === i ? \"//\" : e.slice(0, i)\n                        },\n                        basename(e, t) {\n                            void 0 !== t && g(t, \"ext\"), g(e, \"path\");\n                            let i, n = 0,\n                                o = -1,\n                                s = !0;\n                            if (void 0 !== t && t.length > 0 && t.length <= e.length) {\n                                if (t === e) return \"\";\n                                let r = t.length - 1,\n                                    a = -1;\n                                for (i = e.length - 1; i >= 0; --i) {\n                                    const l = e.charCodeAt(i);\n                                    if (l === c) {\n                                        if (!s) {\n                                            n = i + 1;\n                                            break\n                                        }\n                                    } else -1 === a && (s = !1, a = i + 1), r >= 0 && (l === t.charCodeAt(r) ? -1 == --r && (o = i) : (r = -1, o = a))\n                                }\n                                return n === o ? o = a : -1 === o && (o = e.length), e.slice(n, o)\n                            }\n                            for (i = e.length - 1; i >= 0; --i)\n                                if (e.charCodeAt(i) === c) {\n                                    if (!s) {\n                                        n = i + 1;\n                                        break\n                                    }\n                                } else -1 === o && (s = !1, o = i + 1);\n                            return -1 === o ? \"\" : e.slice(n, o)\n                        },\n                        extname(e) {\n                            g(e, \"path\");\n                            let t = -1,\n                                i = 0,\n                                n = -1,\n                                o = !0,\n                                s = 0;\n                            for (let r = e.length - 1; r >= 0; --r) {\n                                const a = e.charCodeAt(r);\n                                if (a !== c) - 1 === n && (o = !1, n = r + 1), a === l ? -1 === t ? t = r : 1 !== s && (s = 1) : -1 !== t && (s = -1);\n                                else if (!o) {\n                                    i = r + 1;\n                                    break\n                                }\n                            }\n                            return -1 === t || -1 === n || 0 === s || 1 === s && t === n - 1 && t === i + 1 ? \"\" : e.slice(t, n)\n                        },\n                        format: _.bind(null, \"/\"),\n                        parse(e) {\n                            g(e, \"path\");\n                            const t = {\n                                root: \"\",\n                                dir: \"\",\n                                base: \"\",\n                                ext: \"\",\n                                name: \"\"\n                            };\n                            if (0 === e.length) return t;\n                            const i = e.charCodeAt(0) === c;\n                            let n;\n                            i ? (t.root = \"/\", n = 1) : n = 0;\n                            let o = -1,\n                                s = 0,\n                                r = -1,\n                                a = !0,\n                                d = e.length - 1,\n                                h = 0;\n                            for (; d >= n; --d) {\n                                const t = e.charCodeAt(d);\n                                if (t !== c) - 1 === r && (a = !1, r = d + 1), t === l ? -1 === o ? o = d : 1 !== h && (h = 1) : -1 !== o && (h = -1);\n                                else if (!a) {\n                                    s = d + 1;\n                                    break\n                                }\n                            }\n                            if (-1 !== r) {\n                                const n = 0 === s && i ? 1 : s; - 1 === o || 0 === h || 1 === h && o === r - 1 && o === s + 1 ? t.base = t.name = e.slice(n, r) : (t.name = e.slice(n, o), t.base = e.slice(n, r), t.ext = e.slice(o, r))\n                            }\n                            return s > 0 ? t.dir = e.slice(0, s - 1) : i && (t.dir = \"/\"), t\n                        },\n                        sep: \"/\",\n                        delimiter: \":\",\n                        win32: null,\n                        posix: null\n                    };\n                w.win32 = b.win32 = b, w.posix = b.posix = w;\n                const y = \"win32\" === a ? b.normalize : w.normalize,\n                    C = \"win32\" === a ? b.resolve : w.resolve,\n                    x = \"win32\" === a ? b.relative : w.relative,\n                    S = \"win32\" === a ? b.dirname : w.dirname,\n                    k = \"win32\" === a ? b.basename : w.basename,\n                    L = \"win32\" === a ? b.extname : w.extname,\n                    N = \"win32\" === a ? b.sep : w.sep\n            },\n            1432: (e, t, i) => {\n                \"use strict\";\n                var n;\n                i.d(t, {\n                    $L: () => S,\n                    ED: () => w,\n                    IJ: () => C,\n                    OS: () => D,\n                    WE: () => L,\n                    dz: () => y,\n                    gn: () => k,\n                    li: () => m,\n                    r: () => T,\n                    tY: () => x,\n                    xS: () => N\n                });\n                const o = \"en\";\n                let s, r, a = !1,\n                    l = !1,\n                    c = !1,\n                    d = !1,\n                    h = !1,\n                    u = !1,\n                    g = !1,\n                    p = null,\n                    f = null;\n                const m = \"object\" == typeof self ? self : \"object\" == typeof global ? global : {};\n                let v;\n                void 0 !== m.vscode && void 0 !== m.vscode.process ? v = m.vscode.process : \"undefined\" != typeof process && (v = process);\n                const _ = \"string\" == typeof(null === (n = null == v ? void 0 : v.versions) || void 0 === n ? void 0 : n.electron) && \"renderer\" === v.type;\n                if (\"object\" != typeof navigator || _)\n                    if (\"object\" == typeof v) {\n                        a = \"win32\" === v.platform, l = \"darwin\" === v.platform, c = \"linux\" === v.platform, d = c && !!v.env.SNAP && !!v.env.SNAP_REVISION, s = o, p = o;\n                        const e = v.env.VSCODE_NLS_CONFIG;\n                        if (e) try {\n                            const t = JSON.parse(e),\n                                i = t.availableLanguages[\"*\"];\n                            s = t.locale, p = i || o, f = t._translationsConfigFile\n                        } catch (e) {}\n                        h = !0\n                    } else console.error(\"Unable to resolve platform.\");\n                else r = navigator.userAgent, a = r.indexOf(\"Windows\") >= 0, l = r.indexOf(\"Macintosh\") >= 0, g = (r.indexOf(\"Macintosh\") >= 0 || r.indexOf(\"iPad\") >= 0 || r.indexOf(\"iPhone\") >= 0) && !!navigator.maxTouchPoints && navigator.maxTouchPoints > 0, c = r.indexOf(\"Linux\") >= 0, u = !0, s = navigator.language, p = s;\n                let b = 0;\n                l ? b = 1 : a ? b = 3 : c && (b = 2);\n                const w = a,\n                    y = l,\n                    C = c,\n                    x = h,\n                    S = u,\n                    k = g,\n                    L = r,\n                    N = function() {\n                        if (m.setImmediate) return m.setImmediate.bind(m);\n                        if (\"function\" == typeof m.postMessage && !m.importScripts) {\n                            let e = [];\n                            m.addEventListener(\"message\", (t => {\n                                if (t.data && t.data.vscodeSetImmediateId)\n                                    for (let i = 0, n = e.length; i < n; i++) {\n                                        const n = e[i];\n                                        if (n.id === t.data.vscodeSetImmediateId) return e.splice(i, 1), void n.callback()\n                                    }\n                            }));\n                            let t = 0;\n                            return i => {\n                                const n = ++t;\n                                e.push({\n                                    id: n,\n                                    callback: i\n                                }), m.postMessage({\n                                    vscodeSetImmediateId: n\n                                }, \"*\")\n                            }\n                        }\n                        if (\"function\" == typeof(null == v ? void 0 : v.nextTick)) return v.nextTick.bind(v);\n                        const e = Promise.resolve();\n                        return t => e.then(t)\n                    }(),\n                    D = l || g ? 2 : a ? 1 : 3;\n                let I = !0,\n                    E = !1;\n\n                function T() {\n                    if (!E) {\n                        E = !0;\n                        const e = new Uint8Array(2);\n                        e[0] = 1, e[1] = 2;\n                        const t = new Uint16Array(e.buffer);\n                        I = 513 === t[0]\n                    }\n                    return I\n                }\n            },\n            61134: (e, t, i) => {\n                \"use strict\";\n                var n;\n                i.d(t, {\n                        e: () => n\n                    }),\n                    function(e) {\n                        function t(e, t) {\n                            if (e.start >= t.end || t.start >= e.end) return {\n                                start: 0,\n                                end: 0\n                            };\n                            const i = Math.max(e.start, t.start),\n                                n = Math.min(e.end, t.end);\n                            return n - i <= 0 ? {\n                                start: 0,\n                                end: 0\n                            } : {\n                                start: i,\n                                end: n\n                            }\n                        }\n\n                        function i(e) {\n                            return e.end - e.start <= 0\n                        }\n                        e.intersect = t, e.isEmpty = i, e.intersects = function(e, n) {\n                            return !i(t(e, n))\n                        }, e.relativeComplement = function(e, t) {\n                            const n = [],\n                                o = {\n                                    start: e.start,\n                                    end: Math.min(t.start, e.end)\n                                },\n                                s = {\n                                    start: Math.max(t.end, e.start),\n                                    end: e.end\n                                };\n                            return i(o) || n.push(o), i(s) || n.push(s), n\n                        }\n                    }(n || (n = {}))\n            },\n            95935: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    AH: () => f,\n                    EZ: () => u,\n                    Hx: () => h,\n                    SF: () => c,\n                    Vb: () => v,\n                    Vo: () => p,\n                    XX: () => g,\n                    Xy: () => d,\n                    i3: () => m,\n                    z_: () => l\n                });\n                var n = i(15527),\n                    o = i(66663),\n                    s = i(88721),\n                    r = i(97295),\n                    a = i(70666);\n\n                function l(e) {\n                    return (0, a.q)(e, !0)\n                }\n                const c = new class {\n                        constructor(e) {\n                            this._ignorePathCasing = e\n                        }\n                        compare(e, t, i = !1) {\n                            return e === t ? 0 : (0, r.qu)(this.getComparisonKey(e, i), this.getComparisonKey(t, i))\n                        }\n                        isEqual(e, t, i = !1) {\n                            return e === t || !(!e || !t) && this.getComparisonKey(e, i) === this.getComparisonKey(t, i)\n                        }\n                        getComparisonKey(e, t = !1) {\n                            return e.with({\n                                path: this._ignorePathCasing(e) ? e.path.toLowerCase() : void 0,\n                                fragment: t ? null : void 0\n                            }).toString()\n                        }\n                        joinPath(e, ...t) {\n                            return a.o.joinPath(e, ...t)\n                        }\n                        basenameOrAuthority(e) {\n                            return u(e) || e.authority\n                        }\n                        basename(e) {\n                            return s.KR.basename(e.path)\n                        }\n                        dirname(e) {\n                            if (0 === e.path.length) return e;\n                            let t;\n                            return e.scheme === o.lg.file ? t = a.o.file(s.XX(l(e))).path : (t = s.KR.dirname(e.path), e.authority && t.length && 47 !== t.charCodeAt(0) && (console.error(`dirname(\"${e.toString})) resulted in a relative path`), t = \"/\")), e.with({\n                                path: t\n                            })\n                        }\n                        normalizePath(e) {\n                            if (!e.path.length) return e;\n                            let t;\n                            return t = e.scheme === o.lg.file ? a.o.file(s.Fv(l(e))).path : s.KR.normalize(e.path), e.with({\n                                path: t\n                            })\n                        }\n                        resolvePath(e, t) {\n                            if (e.scheme === o.lg.file) {\n                                const i = a.o.file(s.DB(l(e), t));\n                                return e.with({\n                                    authority: i.authority,\n                                    path: i.path\n                                })\n                            }\n                            return t = n.fn(t), e.with({\n                                path: s.KR.resolve(e.path, t)\n                            })\n                        }\n                    }((() => !1)),\n                    d = c.isEqual.bind(c),\n                    h = c.basenameOrAuthority.bind(c),\n                    u = c.basename.bind(c),\n                    g = c.dirname.bind(c),\n                    p = c.joinPath.bind(c),\n                    f = c.normalizePath.bind(c),\n                    m = c.resolvePath.bind(c);\n                var v;\n                ! function(e) {\n                    e.META_DATA_LABEL = \"label\", e.META_DATA_DESCRIPTION = \"description\", e.META_DATA_SIZE = \"size\", e.META_DATA_MIME = \"mime\", e.parseMetaData = function(t) {\n                        const i = new Map;\n                        t.path.substring(t.path.indexOf(\";\") + 1, t.path.lastIndexOf(\";\")).split(\";\").forEach((e => {\n                            const [t, n] = e.split(\":\");\n                            t && n && i.set(t, n)\n                        }));\n                        const n = t.path.substring(0, t.path.indexOf(\";\"));\n                        return n && i.set(e.META_DATA_MIME, n), i\n                    }\n                }(v || (v = {}))\n            },\n            76633: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    Rm: () => r\n                });\n                var n = i(4669),\n                    o = i(5976);\n                class s {\n                    constructor(e, t, i, n, o, s) {\n                        this._scrollStateBrand = void 0, e |= 0, t |= 0, i |= 0, n |= 0, o |= 0, s |= 0, this.rawScrollLeft = i, this.rawScrollTop = s, e < 0 && (e = 0), i + e > t && (i = t - e), i < 0 && (i = 0), n < 0 && (n = 0), s + n > o && (s = o - n), s < 0 && (s = 0), this.width = e, this.scrollWidth = t, this.scrollLeft = i, this.height = n, this.scrollHeight = o, this.scrollTop = s\n                    }\n                    equals(e) {\n                        return this.rawScrollLeft === e.rawScrollLeft && this.rawScrollTop === e.rawScrollTop && this.width === e.width && this.scrollWidth === e.scrollWidth && this.scrollLeft === e.scrollLeft && this.height === e.height && this.scrollHeight === e.scrollHeight && this.scrollTop === e.scrollTop\n                    }\n                    withScrollDimensions(e, t) {\n                        return new s(void 0 !== e.width ? e.width : this.width, void 0 !== e.scrollWidth ? e.scrollWidth : this.scrollWidth, t ? this.rawScrollLeft : this.scrollLeft, void 0 !== e.height ? e.height : this.height, void 0 !== e.scrollHeight ? e.scrollHeight : this.scrollHeight, t ? this.rawScrollTop : this.scrollTop)\n                    }\n                    withScrollPosition(e) {\n                        return new s(this.width, this.scrollWidth, void 0 !== e.scrollLeft ? e.scrollLeft : this.rawScrollLeft, this.height, this.scrollHeight, void 0 !== e.scrollTop ? e.scrollTop : this.rawScrollTop)\n                    }\n                    createScrollEvent(e, t) {\n                        const i = this.width !== e.width,\n                            n = this.scrollWidth !== e.scrollWidth,\n                            o = this.scrollLeft !== e.scrollLeft,\n                            s = this.height !== e.height,\n                            r = this.scrollHeight !== e.scrollHeight,\n                            a = this.scrollTop !== e.scrollTop;\n                        return {\n                            inSmoothScrolling: t,\n                            oldWidth: e.width,\n                            oldScrollWidth: e.scrollWidth,\n                            oldScrollLeft: e.scrollLeft,\n                            width: this.width,\n                            scrollWidth: this.scrollWidth,\n                            scrollLeft: this.scrollLeft,\n                            oldHeight: e.height,\n                            oldScrollHeight: e.scrollHeight,\n                            oldScrollTop: e.scrollTop,\n                            height: this.height,\n                            scrollHeight: this.scrollHeight,\n                            scrollTop: this.scrollTop,\n                            widthChanged: i,\n                            scrollWidthChanged: n,\n                            scrollLeftChanged: o,\n                            heightChanged: s,\n                            scrollHeightChanged: r,\n                            scrollTopChanged: a\n                        }\n                    }\n                }\n                class r extends o.JT {\n                    constructor(e, t) {\n                        super(), this._scrollableBrand = void 0, this._onScroll = this._register(new n.Q5), this.onScroll = this._onScroll.event, this._smoothScrollDuration = e, this._scheduleAtNextAnimationFrame = t, this._state = new s(0, 0, 0, 0, 0, 0), this._smoothScrolling = null\n                    }\n                    dispose() {\n                        this._smoothScrolling && (this._smoothScrolling.dispose(), this._smoothScrolling = null), super.dispose()\n                    }\n                    setSmoothScrollDuration(e) {\n                        this._smoothScrollDuration = e\n                    }\n                    validateScrollPosition(e) {\n                        return this._state.withScrollPosition(e)\n                    }\n                    getScrollDimensions() {\n                        return this._state\n                    }\n                    setScrollDimensions(e, t) {\n                        const i = this._state.withScrollDimensions(e, t);\n                        this._setState(i, Boolean(this._smoothScrolling)), this._smoothScrolling && this._smoothScrolling.acceptScrollDimensions(this._state)\n                    }\n                    getFutureScrollPosition() {\n                        return this._smoothScrolling ? this._smoothScrolling.to : this._state\n                    }\n                    getCurrentScrollPosition() {\n                        return this._state\n                    }\n                    setScrollPositionNow(e) {\n                        const t = this._state.withScrollPosition(e);\n                        this._smoothScrolling && (this._smoothScrolling.dispose(), this._smoothScrolling = null), this._setState(t, !1)\n                    }\n                    setScrollPositionSmooth(e, t) {\n                        if (0 === this._smoothScrollDuration) return this.setScrollPositionNow(e);\n                        if (this._smoothScrolling) {\n                            e = {\n                                scrollLeft: void 0 === e.scrollLeft ? this._smoothScrolling.to.scrollLeft : e.scrollLeft,\n                                scrollTop: void 0 === e.scrollTop ? this._smoothScrolling.to.scrollTop : e.scrollTop\n                            };\n                            const i = this._state.withScrollPosition(e);\n                            if (this._smoothScrolling.to.scrollLeft === i.scrollLeft && this._smoothScrolling.to.scrollTop === i.scrollTop) return;\n                            let n;\n                            n = t ? new c(this._smoothScrolling.from, i, this._smoothScrolling.startTime, this._smoothScrolling.duration) : this._smoothScrolling.combine(this._state, i, this._smoothScrollDuration), this._smoothScrolling.dispose(), this._smoothScrolling = n\n                        } else {\n                            const t = this._state.withScrollPosition(e);\n                            this._smoothScrolling = c.start(this._state, t, this._smoothScrollDuration)\n                        }\n                        this._smoothScrolling.animationFrameDisposable = this._scheduleAtNextAnimationFrame((() => {\n                            this._smoothScrolling && (this._smoothScrolling.animationFrameDisposable = null, this._performSmoothScrolling())\n                        }))\n                    }\n                    _performSmoothScrolling() {\n                        if (!this._smoothScrolling) return;\n                        const e = this._smoothScrolling.tick(),\n                            t = this._state.withScrollPosition(e);\n                        return this._setState(t, !0), this._smoothScrolling ? e.isDone ? (this._smoothScrolling.dispose(), void(this._smoothScrolling = null)) : void(this._smoothScrolling.animationFrameDisposable = this._scheduleAtNextAnimationFrame((() => {\n                            this._smoothScrolling && (this._smoothScrolling.animationFrameDisposable = null, this._performSmoothScrolling())\n                        }))) : void 0\n                    }\n                    _setState(e, t) {\n                        const i = this._state;\n                        i.equals(e) || (this._state = e, this._onScroll.fire(this._state.createScrollEvent(i, t)))\n                    }\n                }\n                class a {\n                    constructor(e, t, i) {\n                        this.scrollLeft = e, this.scrollTop = t, this.isDone = i\n                    }\n                }\n\n                function l(e, t) {\n                    const i = t - e;\n                    return function(t) {\n                        return e + i * (1 - function(e) {\n                            return Math.pow(e, 3)\n                        }(1 - t))\n                    }\n                }\n                class c {\n                    constructor(e, t, i, n) {\n                        this.from = e, this.to = t, this.duration = n, this.startTime = i, this.animationFrameDisposable = null, this._initAnimations()\n                    }\n                    _initAnimations() {\n                        this.scrollLeft = this._initAnimation(this.from.scrollLeft, this.to.scrollLeft, this.to.width), this.scrollTop = this._initAnimation(this.from.scrollTop, this.to.scrollTop, this.to.height)\n                    }\n                    _initAnimation(e, t, i) {\n                        if (Math.abs(e - t) > 2.5 * i) {\n                            let r, a;\n                            return e < t ? (r = e + .75 * i, a = t - .75 * i) : (r = e - .75 * i, a = t + .75 * i), n = l(e, r), o = l(a, t), s = .33,\n                                function(e) {\n                                    return e < s ? n(e / s) : o((e - s) / (1 - s))\n                                }\n                        }\n                        var n, o, s;\n                        return l(e, t)\n                    }\n                    dispose() {\n                        null !== this.animationFrameDisposable && (this.animationFrameDisposable.dispose(), this.animationFrameDisposable = null)\n                    }\n                    acceptScrollDimensions(e) {\n                        this.to = e.withScrollPosition(this.to), this._initAnimations()\n                    }\n                    tick() {\n                        return this._tick(Date.now())\n                    }\n                    _tick(e) {\n                        const t = (e - this.startTime) / this.duration;\n                        if (t < 1) {\n                            const e = this.scrollLeft(t),\n                                i = this.scrollTop(t);\n                            return new a(e, i, !1)\n                        }\n                        return new a(this.to.scrollLeft, this.to.scrollTop, !0)\n                    }\n                    combine(e, t, i) {\n                        return c.start(e, t, i)\n                    }\n                    static start(e, t, i) {\n                        i += 10;\n                        const n = Date.now() - 10;\n                        return new c(e, t, n, i)\n                    }\n                }\n            },\n            14603: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    Z: () => s\n                });\n                var n, o = i(97295);\n                ! function(e) {\n                    e[e.Ignore = 0] = \"Ignore\", e[e.Info = 1] = \"Info\", e[e.Warning = 2] = \"Warning\", e[e.Error = 3] = \"错误\"\n                }(n || (n = {})),\n                function(e) {\n                    const t = \"error\",\n                        i = \"warning\",\n                        n = \"info\";\n                    e.fromValue = function(s) {\n                        return s ? o.qq(t, s) ? e.Error : o.qq(i, s) || o.qq(\"warn\", s) ? e.Warning : o.qq(n, s) ? e.Info : e.Ignore : e.Ignore\n                    }, e.toString = function(o) {\n                        switch (o) {\n                            case e.Error:\n                                return t;\n                            case e.Warning:\n                                return i;\n                            case e.Info:\n                                return n;\n                            default:\n                                return \"ignore\"\n                        }\n                    }\n                }(n || (n = {}));\n                const s = n\n            },\n            84013: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    G: () => s\n                });\n                var n = i(1432);\n                const o = n.li.performance && \"function\" == typeof n.li.performance.now;\n                class s {\n                    constructor(e) {\n                        this._highResolution = o && e, this._startTime = this._now(), this._stopTime = -1\n                    }\n                    static create(e = !0) {\n                        return new s(e)\n                    }\n                    stop() {\n                        this._stopTime = this._now()\n                    }\n                    elapsed() {\n                        return -1 !== this._stopTime ? this._stopTime - this._startTime : this._now() - this._startTime\n                    }\n                    _now() {\n                        return this._highResolution ? n.li.performance.now() : Date.now()\n                    }\n                }\n            },\n            97295: (e, t, i) => {\n                \"use strict\";\n\n                function n(e) {\n                    return !e || \"string\" != typeof e || 0 === e.trim().length\n                }\n                i.d(t, {\n                    $i: () => z,\n                    C8: () => q,\n                    GF: () => g,\n                    HO: () => R,\n                    IO: () => p,\n                    K7: () => K,\n                    Kw: () => Y,\n                    LC: () => v,\n                    Mh: () => D,\n                    P1: () => I,\n                    PJ: () => Q,\n                    Qe: () => j,\n                    R1: () => u,\n                    RP: () => W,\n                    S6: () => X,\n                    TT: () => y,\n                    Ut: () => B,\n                    V8: () => _,\n                    WU: () => s,\n                    YK: () => T,\n                    YU: () => r,\n                    ZG: () => E,\n                    ZH: () => A,\n                    ab: () => U,\n                    c1: () => Z,\n                    df: () => k,\n                    ec: () => a,\n                    fi: () => J,\n                    fy: () => l,\n                    j3: () => c,\n                    j_: () => x,\n                    m5: () => n,\n                    mK: () => S,\n                    mr: () => f,\n                    oH: () => te,\n                    oL: () => d,\n                    ok: () => N,\n                    ow: () => b,\n                    qq: () => L,\n                    qu: () => w,\n                    rL: () => M,\n                    uS: () => G,\n                    un: () => h,\n                    uq: () => m,\n                    vH: () => P,\n                    xe: () => $,\n                    zY: () => C\n                });\n                const o = /{(\\d+)}/g;\n\n                function s(e, ...t) {\n                    return 0 === t.length ? e : e.replace(o, (function(e, i) {\n                        const n = parseInt(i, 10);\n                        return isNaN(n) || n < 0 || n >= t.length ? e : t[n]\n                    }))\n                }\n\n                function r(e) {\n                    return e.replace(/[<>&]/g, (function(e) {\n                        switch (e) {\n                            case \"<\":\n                                return \"&lt;\";\n                            case \">\":\n                                return \"&gt;\";\n                            case \"&\":\n                                return \"&amp;\";\n                            default:\n                                return e\n                        }\n                    }))\n                }\n\n                function a(e) {\n                    return e.replace(/[\\\\\\{\\}\\*\\+\\?\\|\\^\\$\\.\\[\\]\\(\\)]/g, \"\\\\$&\")\n                }\n\n                function l(e, t = \" \") {\n                    return d(c(e, t), t)\n                }\n\n                function c(e, t) {\n                    if (!e || !t) return e;\n                    const i = t.length;\n                    if (0 === i || 0 === e.length) return e;\n                    let n = 0;\n                    for (; e.indexOf(t, n) === n;) n += i;\n                    return e.substring(n)\n                }\n\n                function d(e, t) {\n                    if (!e || !t) return e;\n                    const i = t.length,\n                        n = e.length;\n                    if (0 === i || 0 === n) return e;\n                    let o = n,\n                        s = -1;\n                    for (; s = e.lastIndexOf(t, o - 1), -1 !== s && s + i === o;) {\n                        if (0 === s) return \"\";\n                        o = s\n                    }\n                    return e.substring(0, o)\n                }\n\n                function h(e) {\n                    return e.replace(/[\\-\\\\\\{\\}\\+\\?\\|\\^\\$\\.\\,\\[\\]\\(\\)\\#\\s]/g, \"\\\\$&\").replace(/[\\*]/g, \".*\")\n                }\n\n                function u(e) {\n                    return e.replace(/\\*/g, \"\")\n                }\n\n                function g(e, t, i = {}) {\n                    if (!e) throw new Error(\"Cannot create regex from empty string\");\n                    t || (e = a(e)), i.wholeWord && (/\\B/.test(e.charAt(0)) || (e = \"\\\\b\" + e), /\\B/.test(e.charAt(e.length - 1)) || (e += \"\\\\b\"));\n                    let n = \"\";\n                    return i.global && (n += \"g\"), i.matchCase || (n += \"i\"), i.multiline && (n += \"m\"), i.unicode && (n += \"u\"), new RegExp(e, n)\n                }\n\n                function p(e) {\n                    if (\"^\" === e.source || \"^$\" === e.source || \"$\" === e.source || \"^\\\\s*$\" === e.source) return !1;\n                    return !(!e.exec(\"\") || 0 !== e.lastIndex)\n                }\n\n                function f(e) {\n                    return (e.global ? \"g\" : \"\") + (e.ignoreCase ? \"i\" : \"\") + (e.multiline ? \"m\" : \"\") + (e.unicode ? \"u\" : \"\")\n                }\n\n                function m(e) {\n                    return e.split(/\\r\\n|\\r|\\n/)\n                }\n\n                function v(e) {\n                    for (let t = 0, i = e.length; t < i; t++) {\n                        const i = e.charCodeAt(t);\n                        if (32 !== i && 9 !== i) return t\n                    }\n                    return -1\n                }\n\n                function _(e, t = 0, i = e.length) {\n                    for (let n = t; n < i; n++) {\n                        const i = e.charCodeAt(n);\n                        if (32 !== i && 9 !== i) return e.substring(t, n)\n                    }\n                    return e.substring(t, i)\n                }\n\n                function b(e, t = e.length - 1) {\n                    for (let i = t; i >= 0; i--) {\n                        const t = e.charCodeAt(i);\n                        if (32 !== t && 9 !== t) return i\n                    }\n                    return -1\n                }\n\n                function w(e, t) {\n                    return e < t ? -1 : e > t ? 1 : 0\n                }\n\n                function y(e, t, i = 0, n = e.length, o = 0, s = t.length) {\n                    for (; i < n && o < s; i++, o++) {\n                        let n = e.charCodeAt(i),\n                            s = t.charCodeAt(o);\n                        if (n < s) return -1;\n                        if (n > s) return 1\n                    }\n                    const r = n - i,\n                        a = s - o;\n                    return r < a ? -1 : r > a ? 1 : 0\n                }\n\n                function C(e, t) {\n                    return x(e, t, 0, e.length, 0, t.length)\n                }\n\n                function x(e, t, i = 0, n = e.length, o = 0, s = t.length) {\n                    for (; i < n && o < s; i++, o++) {\n                        let r = e.charCodeAt(i),\n                            a = t.charCodeAt(o);\n                        if (r === a) continue;\n                        if (r >= 128 || a >= 128) return y(e.toLowerCase(), t.toLowerCase(), i, n, o, s);\n                        S(r) && (r -= 32), S(a) && (a -= 32);\n                        const l = r - a;\n                        if (0 !== l) return l\n                    }\n                    const r = n - i,\n                        a = s - o;\n                    return r < a ? -1 : r > a ? 1 : 0\n                }\n\n                function S(e) {\n                    return e >= 97 && e <= 122\n                }\n\n                function k(e) {\n                    return e >= 65 && e <= 90\n                }\n\n                function L(e, t) {\n                    return e.length === t.length && 0 === x(e, t)\n                }\n\n                function N(e, t) {\n                    const i = t.length;\n                    return !(t.length > e.length) && 0 === x(e, t, 0, i)\n                }\n\n                function D(e, t) {\n                    let i, n = Math.min(e.length, t.length);\n                    for (i = 0; i < n; i++)\n                        if (e.charCodeAt(i) !== t.charCodeAt(i)) return i;\n                    return n\n                }\n\n                function I(e, t) {\n                    let i, n = Math.min(e.length, t.length);\n                    const o = e.length - 1,\n                        s = t.length - 1;\n                    for (i = 0; i < n; i++)\n                        if (e.charCodeAt(o - i) !== t.charCodeAt(s - i)) return i;\n                    return n\n                }\n\n                function E(e) {\n                    return 55296 <= e && e <= 56319\n                }\n\n                function T(e) {\n                    return 56320 <= e && e <= 57343\n                }\n\n                function M(e, t) {\n                    return t - 56320 + (e - 55296 << 10) + 65536\n                }\n\n                function A(e, t, i) {\n                    const n = e.charCodeAt(i);\n                    if (E(n) && i + 1 < t) {\n                        const t = e.charCodeAt(i + 1);\n                        if (T(t)) return M(n, t)\n                    }\n                    return n\n                }\n\n                function O(e, t) {\n                    const i = e.charCodeAt(t - 1);\n                    if (T(i) && t > 1) {\n                        const n = e.charCodeAt(t - 2);\n                        if (E(n)) return M(n, i)\n                    }\n                    return i\n                }\n\n                function P(e, t) {\n                    const i = ee.getInstance(),\n                        n = t,\n                        o = e.length,\n                        s = A(e, o, t);\n                    t += s >= 65536 ? 2 : 1;\n                    let r = i.getGraphemeBreakType(s);\n                    for (; t < o;) {\n                        const n = A(e, o, t),\n                            s = i.getGraphemeBreakType(n);\n                        if (J(r, s)) break;\n                        t += n >= 65536 ? 2 : 1, r = s\n                    }\n                    return t - n\n                }\n\n                function R(e, t) {\n                    const i = ee.getInstance(),\n                        n = t,\n                        o = O(e, t);\n                    t -= o >= 65536 ? 2 : 1;\n                    let s = i.getGraphemeBreakType(o);\n                    for (; t > 0;) {\n                        const n = O(e, t),\n                            o = i.getGraphemeBreakType(n);\n                        if (J(o, s)) break;\n                        t -= n >= 65536 ? 2 : 1, s = o\n                    }\n                    return n - t\n                }\n                const F = /(?:[\\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-\\u0815\\u081A\\u0824\\u0828\\u0830-\\u0858\\u085E-\\u08BD\\u200F\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFD3D\\uFD50-\\uFDFC\\uFE70-\\uFEFC]|\\uD802[\\uDC00-\\uDD1B\\uDD20-\\uDE00\\uDE10-\\uDE33\\uDE40-\\uDEE4\\uDEEB-\\uDF35\\uDF40-\\uDFFF]|\\uD803[\\uDC00-\\uDCFF]|\\uD83A[\\uDC00-\\uDCCF\\uDD00-\\uDD43\\uDD50-\\uDFFF]|\\uD83B[\\uDC00-\\uDEBB])/;\n\n                function B(e) {\n                    return F.test(e)\n                }\n                const V = /(?:[\\u231A\\u231B\\u23F0\\u23F3\\u2600-\\u27BF\\u2B50\\u2B55]|\\uD83C[\\uDDE6-\\uDDFF\\uDF00-\\uDFFF]|\\uD83D[\\uDC00-\\uDE4F\\uDE80-\\uDEFC\\uDFE0-\\uDFEB]|\\uD83E[\\uDD00-\\uDDFF\\uDE70-\\uDED6])/;\n\n                function W(e) {\n                    return V.test(e)\n                }\n                const H = /^[\\t\\n\\r\\x20-\\x7E]*$/;\n\n                function z(e) {\n                    return H.test(e)\n                }\n                const j = /[\\u2028\\u2029]/;\n\n                function U(e) {\n                    return j.test(e)\n                }\n\n                function $(e) {\n                    for (let t = 0, i = e.length; t < i; t++)\n                        if (K(e.charCodeAt(t))) return !0;\n                    return !1\n                }\n\n                function K(e) {\n                    return (e = +e) >= 11904 && e <= 55215 || e >= 63744 && e <= 64255 || e >= 65281 && e <= 65374\n                }\n\n                function q(e) {\n                    return e >= 127462 && e <= 127487 || 8986 === e || 8987 === e || 9200 === e || 9203 === e || e >= 9728 && e <= 10175 || 11088 === e || 11093 === e || e >= 127744 && e <= 128591 || e >= 128640 && e <= 128764 || e >= 128992 && e <= 129003 || e >= 129280 && e <= 129535 || e >= 129648 && e <= 129750\n                }\n                const Z = String.fromCharCode(65279);\n\n                function G(e) {\n                    return !!(e && e.length > 0 && 65279 === e.charCodeAt(0))\n                }\n\n                function Y(e, t = !1) {\n                    return !!e && (t && (e = e.replace(/\\\\./g, \"\")), e.toLowerCase() !== e)\n                }\n\n                function Q(e) {\n                    return (e %= 52) < 26 ? String.fromCharCode(97 + e) : String.fromCharCode(65 + e - 26)\n                }\n\n                function X(e) {\n                    return ee.getInstance().getGraphemeBreakType(e)\n                }\n\n                function J(e, t) {\n                    return 0 === e ? 5 !== t && 7 !== t : (2 !== e || 3 !== t) && (4 === e || 2 === e || 3 === e || (4 === t || 2 === t || 3 === t || (8 !== e || 8 !== t && 9 !== t && 11 !== t && 12 !== t) && ((11 !== e && 9 !== e || 9 !== t && 10 !== t) && ((12 !== e && 10 !== e || 10 !== t) && (5 !== t && 13 !== t && (7 !== t && (1 !== e && ((13 !== e || 14 !== t) && (6 !== e || 6 !== t)))))))))\n                }\n                class ee {\n                    constructor() {\n                        this._data = JSON.parse(\"[0,0,0,51592,51592,11,44424,44424,11,72251,72254,5,7150,7150,7,48008,48008,11,55176,55176,11,128420,128420,14,3276,3277,5,9979,9980,14,46216,46216,11,49800,49800,11,53384,53384,11,70726,70726,5,122915,122916,5,129320,129327,14,2558,2558,5,5906,5908,5,9762,9763,14,43360,43388,8,45320,45320,11,47112,47112,11,48904,48904,11,50696,50696,11,52488,52488,11,54280,54280,11,70082,70083,1,71350,71350,7,73111,73111,5,127892,127893,14,128726,128727,14,129473,129474,14,2027,2035,5,2901,2902,5,3784,3789,5,6754,6754,5,8418,8420,5,9877,9877,14,11088,11088,14,44008,44008,5,44872,44872,11,45768,45768,11,46664,46664,11,47560,47560,11,48456,48456,11,49352,49352,11,50248,50248,11,51144,51144,11,52040,52040,11,52936,52936,11,53832,53832,11,54728,54728,11,69811,69814,5,70459,70460,5,71096,71099,7,71998,71998,5,72874,72880,5,119149,119149,7,127374,127374,14,128335,128335,14,128482,128482,14,128765,128767,14,129399,129400,14,129680,129685,14,1476,1477,5,2377,2380,7,2759,2760,5,3137,3140,7,3458,3459,7,4153,4154,5,6432,6434,5,6978,6978,5,7675,7679,5,9723,9726,14,9823,9823,14,9919,9923,14,10035,10036,14,42736,42737,5,43596,43596,5,44200,44200,11,44648,44648,11,45096,45096,11,45544,45544,11,45992,45992,11,46440,46440,11,46888,46888,11,47336,47336,11,47784,47784,11,48232,48232,11,48680,48680,11,49128,49128,11,49576,49576,11,50024,50024,11,50472,50472,11,50920,50920,11,51368,51368,11,51816,51816,11,52264,52264,11,52712,52712,11,53160,53160,11,53608,53608,11,54056,54056,11,54504,54504,11,54952,54952,11,68108,68111,5,69933,69940,5,70197,70197,7,70498,70499,7,70845,70845,5,71229,71229,5,71727,71735,5,72154,72155,5,72344,72345,5,73023,73029,5,94095,94098,5,121403,121452,5,126981,127182,14,127538,127546,14,127990,127990,14,128391,128391,14,128445,128449,14,128500,128505,14,128752,128752,14,129160,129167,14,129356,129356,14,129432,129442,14,129648,129651,14,129751,131069,14,173,173,4,1757,1757,1,2274,2274,1,2494,2494,5,2641,2641,5,2876,2876,5,3014,3016,7,3262,3262,7,3393,3396,5,3570,3571,7,3968,3972,5,4228,4228,7,6086,6086,5,6679,6680,5,6912,6915,5,7080,7081,5,7380,7392,5,8252,8252,14,9096,9096,14,9748,9749,14,9784,9786,14,9833,9850,14,9890,9894,14,9938,9938,14,9999,9999,14,10085,10087,14,12349,12349,14,43136,43137,7,43454,43456,7,43755,43755,7,44088,44088,11,44312,44312,11,44536,44536,11,44760,44760,11,44984,44984,11,45208,45208,11,45432,45432,11,45656,45656,11,45880,45880,11,46104,46104,11,46328,46328,11,46552,46552,11,46776,46776,11,47000,47000,11,47224,47224,11,47448,47448,11,47672,47672,11,47896,47896,11,48120,48120,11,48344,48344,11,48568,48568,11,48792,48792,11,49016,49016,11,49240,49240,11,49464,49464,11,49688,49688,11,49912,49912,11,50136,50136,11,50360,50360,11,50584,50584,11,50808,50808,11,51032,51032,11,51256,51256,11,51480,51480,11,51704,51704,11,51928,51928,11,52152,52152,11,52376,52376,11,52600,52600,11,52824,52824,11,53048,53048,11,53272,53272,11,53496,53496,11,53720,53720,11,53944,53944,11,54168,54168,11,54392,54392,11,54616,54616,11,54840,54840,11,55064,55064,11,65438,65439,5,69633,69633,5,69837,69837,1,70018,70018,7,70188,70190,7,70368,70370,7,70465,70468,7,70712,70719,5,70835,70840,5,70850,70851,5,71132,71133,5,71340,71340,7,71458,71461,5,71985,71989,7,72002,72002,7,72193,72202,5,72281,72283,5,72766,72766,7,72885,72886,5,73104,73105,5,92912,92916,5,113824,113827,4,119173,119179,5,121505,121519,5,125136,125142,5,127279,127279,14,127489,127490,14,127570,127743,14,127900,127901,14,128254,128254,14,128369,128370,14,128400,128400,14,128425,128432,14,128468,128475,14,128489,128494,14,128715,128720,14,128745,128745,14,128759,128760,14,129004,129023,14,129296,129304,14,129340,129342,14,129388,129392,14,129404,129407,14,129454,129455,14,129485,129487,14,129659,129663,14,129719,129727,14,917536,917631,5,13,13,2,1160,1161,5,1564,1564,4,1807,1807,1,2085,2087,5,2363,2363,7,2402,2403,5,2507,2508,7,2622,2624,7,2691,2691,7,2786,2787,5,2881,2884,5,3006,3006,5,3072,3072,5,3170,3171,5,3267,3268,7,3330,3331,7,3406,3406,1,3538,3540,5,3655,3662,5,3897,3897,5,4038,4038,5,4184,4185,5,4352,4447,8,6068,6069,5,6155,6157,5,6448,6449,7,6742,6742,5,6783,6783,5,6966,6970,5,7042,7042,7,7143,7143,7,7212,7219,5,7412,7412,5,8206,8207,4,8294,8303,4,8596,8601,14,9410,9410,14,9742,9742,14,9757,9757,14,9770,9770,14,9794,9794,14,9828,9828,14,9855,9855,14,9882,9882,14,9900,9903,14,9929,9933,14,9963,9967,14,9987,9988,14,10006,10006,14,10062,10062,14,10175,10175,14,11744,11775,5,42607,42607,5,43043,43044,7,43263,43263,5,43444,43445,7,43569,43570,5,43698,43700,5,43766,43766,5,44032,44032,11,44144,44144,11,44256,44256,11,44368,44368,11,44480,44480,11,44592,44592,11,44704,44704,11,44816,44816,11,44928,44928,11,45040,45040,11,45152,45152,11,45264,45264,11,45376,45376,11,45488,45488,11,45600,45600,11,45712,45712,11,45824,45824,11,45936,45936,11,46048,46048,11,46160,46160,11,46272,46272,11,46384,46384,11,46496,46496,11,46608,46608,11,46720,46720,11,46832,46832,11,46944,46944,11,47056,47056,11,47168,47168,11,47280,47280,11,47392,47392,11,47504,47504,11,47616,47616,11,47728,47728,11,47840,47840,11,47952,47952,11,48064,48064,11,48176,48176,11,48288,48288,11,48400,48400,11,48512,48512,11,48624,48624,11,48736,48736,11,48848,48848,11,48960,48960,11,49072,49072,11,49184,49184,11,49296,49296,11,49408,49408,11,49520,49520,11,49632,49632,11,49744,49744,11,49856,49856,11,49968,49968,11,50080,50080,11,50192,50192,11,50304,50304,11,50416,50416,11,50528,50528,11,50640,50640,11,50752,50752,11,50864,50864,11,50976,50976,11,51088,51088,11,51200,51200,11,51312,51312,11,51424,51424,11,51536,51536,11,51648,51648,11,51760,51760,11,51872,51872,11,51984,51984,11,52096,52096,11,52208,52208,11,52320,52320,11,52432,52432,11,52544,52544,11,52656,52656,11,52768,52768,11,52880,52880,11,52992,52992,11,53104,53104,11,53216,53216,11,53328,53328,11,53440,53440,11,53552,53552,11,53664,53664,11,53776,53776,11,53888,53888,11,54000,54000,11,54112,54112,11,54224,54224,11,54336,54336,11,54448,54448,11,54560,54560,11,54672,54672,11,54784,54784,11,54896,54896,11,55008,55008,11,55120,55120,11,64286,64286,5,66272,66272,5,68900,68903,5,69762,69762,7,69817,69818,5,69927,69931,5,70003,70003,5,70070,70078,5,70094,70094,7,70194,70195,7,70206,70206,5,70400,70401,5,70463,70463,7,70475,70477,7,70512,70516,5,70722,70724,5,70832,70832,5,70842,70842,5,70847,70848,5,71088,71089,7,71102,71102,7,71219,71226,5,71231,71232,5,71342,71343,7,71453,71455,5,71463,71467,5,71737,71738,5,71995,71996,5,72000,72000,7,72145,72147,7,72160,72160,5,72249,72249,7,72273,72278,5,72330,72342,5,72752,72758,5,72850,72871,5,72882,72883,5,73018,73018,5,73031,73031,5,73109,73109,5,73461,73462,7,94031,94031,5,94192,94193,7,119142,119142,7,119155,119162,4,119362,119364,5,121476,121476,5,122888,122904,5,123184,123190,5,126976,126979,14,127184,127231,14,127344,127345,14,127405,127461,14,127514,127514,14,127561,127567,14,127778,127779,14,127896,127896,14,127985,127986,14,127995,127999,5,128326,128328,14,128360,128366,14,128378,128378,14,128394,128397,14,128405,128406,14,128422,128423,14,128435,128443,14,128453,128464,14,128479,128480,14,128484,128487,14,128496,128498,14,128640,128709,14,128723,128724,14,128736,128741,14,128747,128748,14,128755,128755,14,128762,128762,14,128981,128991,14,129096,129103,14,129292,129292,14,129311,129311,14,129329,129330,14,129344,129349,14,129360,129374,14,129394,129394,14,129402,129402,14,129413,129425,14,129445,129450,14,129466,129471,14,129483,129483,14,129511,129535,14,129653,129655,14,129667,129670,14,129705,129711,14,129731,129743,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,2307,2307,7,2366,2368,7,2382,2383,7,2434,2435,7,2497,2500,5,2519,2519,5,2563,2563,7,2631,2632,5,2677,2677,5,2750,2752,7,2763,2764,7,2817,2817,5,2879,2879,5,2891,2892,7,2914,2915,5,3008,3008,5,3021,3021,5,3076,3076,5,3146,3149,5,3202,3203,7,3264,3265,7,3271,3272,7,3298,3299,5,3390,3390,5,3402,3404,7,3426,3427,5,3535,3535,5,3544,3550,7,3635,3635,7,3763,3763,7,3893,3893,5,3953,3966,5,3981,3991,5,4145,4145,7,4157,4158,5,4209,4212,5,4237,4237,5,4520,4607,10,5970,5971,5,6071,6077,5,6089,6099,5,6277,6278,5,6439,6440,5,6451,6456,7,6683,6683,5,6744,6750,5,6765,6770,7,6846,6846,5,6964,6964,5,6972,6972,5,7019,7027,5,7074,7077,5,7083,7085,5,7146,7148,7,7154,7155,7,7222,7223,5,7394,7400,5,7416,7417,5,8204,8204,5,8233,8233,4,8288,8292,4,8413,8416,5,8482,8482,14,8986,8987,14,9193,9203,14,9654,9654,14,9733,9733,14,9745,9745,14,9752,9752,14,9760,9760,14,9766,9766,14,9774,9775,14,9792,9792,14,9800,9811,14,9825,9826,14,9831,9831,14,9852,9853,14,9872,9873,14,9880,9880,14,9885,9887,14,9896,9897,14,9906,9916,14,9926,9927,14,9936,9936,14,9941,9960,14,9974,9974,14,9982,9985,14,9992,9997,14,10002,10002,14,10017,10017,14,10055,10055,14,10071,10071,14,10145,10145,14,11013,11015,14,11503,11505,5,12334,12335,5,12951,12951,14,42612,42621,5,43014,43014,5,43047,43047,7,43204,43205,5,43335,43345,5,43395,43395,7,43450,43451,7,43561,43566,5,43573,43574,5,43644,43644,5,43710,43711,5,43758,43759,7,44005,44005,5,44012,44012,7,44060,44060,11,44116,44116,11,44172,44172,11,44228,44228,11,44284,44284,11,44340,44340,11,44396,44396,11,44452,44452,11,44508,44508,11,44564,44564,11,44620,44620,11,44676,44676,11,44732,44732,11,44788,44788,11,44844,44844,11,44900,44900,11,44956,44956,11,45012,45012,11,45068,45068,11,45124,45124,11,45180,45180,11,45236,45236,11,45292,45292,11,45348,45348,11,45404,45404,11,45460,45460,11,45516,45516,11,45572,45572,11,45628,45628,11,45684,45684,11,45740,45740,11,45796,45796,11,45852,45852,11,45908,45908,11,45964,45964,11,46020,46020,11,46076,46076,11,46132,46132,11,46188,46188,11,46244,46244,11,46300,46300,11,46356,46356,11,46412,46412,11,46468,46468,11,46524,46524,11,46580,46580,11,46636,46636,11,46692,46692,11,46748,46748,11,46804,46804,11,46860,46860,11,46916,46916,11,46972,46972,11,47028,47028,11,47084,47084,11,47140,47140,11,47196,47196,11,47252,47252,11,47308,47308,11,47364,47364,11,47420,47420,11,47476,47476,11,47532,47532,11,47588,47588,11,47644,47644,11,47700,47700,11,47756,47756,11,47812,47812,11,47868,47868,11,47924,47924,11,47980,47980,11,48036,48036,11,48092,48092,11,48148,48148,11,48204,48204,11,48260,48260,11,48316,48316,11,48372,48372,11,48428,48428,11,48484,48484,11,48540,48540,11,48596,48596,11,48652,48652,11,48708,48708,11,48764,48764,11,48820,48820,11,48876,48876,11,48932,48932,11,48988,48988,11,49044,49044,11,49100,49100,11,49156,49156,11,49212,49212,11,49268,49268,11,49324,49324,11,49380,49380,11,49436,49436,11,49492,49492,11,49548,49548,11,49604,49604,11,49660,49660,11,49716,49716,11,49772,49772,11,49828,49828,11,49884,49884,11,49940,49940,11,49996,49996,11,50052,50052,11,50108,50108,11,50164,50164,11,50220,50220,11,50276,50276,11,50332,50332,11,50388,50388,11,50444,50444,11,50500,50500,11,50556,50556,11,50612,50612,11,50668,50668,11,50724,50724,11,50780,50780,11,50836,50836,11,50892,50892,11,50948,50948,11,51004,51004,11,51060,51060,11,51116,51116,11,51172,51172,11,51228,51228,11,51284,51284,11,51340,51340,11,51396,51396,11,51452,51452,11,51508,51508,11,51564,51564,11,51620,51620,11,51676,51676,11,51732,51732,11,51788,51788,11,51844,51844,11,51900,51900,11,51956,51956,11,52012,52012,11,52068,52068,11,52124,52124,11,52180,52180,11,52236,52236,11,52292,52292,11,52348,52348,11,52404,52404,11,52460,52460,11,52516,52516,11,52572,52572,11,52628,52628,11,52684,52684,11,52740,52740,11,52796,52796,11,52852,52852,11,52908,52908,11,52964,52964,11,53020,53020,11,53076,53076,11,53132,53132,11,53188,53188,11,53244,53244,11,53300,53300,11,53356,53356,11,53412,53412,11,53468,53468,11,53524,53524,11,53580,53580,11,53636,53636,11,53692,53692,11,53748,53748,11,53804,53804,11,53860,53860,11,53916,53916,11,53972,53972,11,54028,54028,11,54084,54084,11,54140,54140,11,54196,54196,11,54252,54252,11,54308,54308,11,54364,54364,11,54420,54420,11,54476,54476,11,54532,54532,11,54588,54588,11,54644,54644,11,54700,54700,11,54756,54756,11,54812,54812,11,54868,54868,11,54924,54924,11,54980,54980,11,55036,55036,11,55092,55092,11,55148,55148,11,55216,55238,9,65056,65071,5,65529,65531,4,68097,68099,5,68159,68159,5,69446,69456,5,69688,69702,5,69808,69810,7,69815,69816,7,69821,69821,1,69888,69890,5,69932,69932,7,69957,69958,7,70016,70017,5,70067,70069,7,70079,70080,7,70089,70092,5,70095,70095,5,70191,70193,5,70196,70196,5,70198,70199,5,70367,70367,5,70371,70378,5,70402,70403,7,70462,70462,5,70464,70464,5,70471,70472,7,70487,70487,5,70502,70508,5,70709,70711,7,70720,70721,7,70725,70725,7,70750,70750,5,70833,70834,7,70841,70841,7,70843,70844,7,70846,70846,7,70849,70849,7,71087,71087,5,71090,71093,5,71100,71101,5,71103,71104,5,71216,71218,7,71227,71228,7,71230,71230,7,71339,71339,5,71341,71341,5,71344,71349,5,71351,71351,5,71456,71457,7,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,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,123628,123631,5,125252,125258,5,126980,126980,14,127183,127183,14,127245,127247,14,127340,127343,14,127358,127359,14,127377,127386,14,127462,127487,6,127491,127503,14,127535,127535,14,127548,127551,14,127568,127569,14,127744,127777,14,127780,127891,14,127894,127895,14,127897,127899,14,127902,127984,14,127987,127989,14,127991,127994,14,128000,128253,14,128255,128317,14,128329,128334,14,128336,128359,14,128367,128368,14,128371,128377,14,128379,128390,14,128392,128393,14,128398,128399,14,128401,128404,14,128407,128419,14,128421,128421,14,128424,128424,14,128433,128434,14,128444,128444,14,128450,128452,14,128465,128467,14,128476,128478,14,128481,128481,14,128483,128483,14,128488,128488,14,128495,128495,14,128499,128499,14,128506,128591,14,128710,128714,14,128721,128722,14,128725,128725,14,128728,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,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,129664,129666,14,129671,129679,14,129686,129704,14,129712,129718,14,129728,129730,14,129744,129750,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,2259,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,3134,3136,5,3142,3144,5,3157,3158,5,3201,3201,5,3260,3260,5,3263,3263,5,3266,3266,5,3270,3270,5,3274,3275,7,3285,3286,5,3328,3329,5,3387,3388,5,3391,3392,7,3398,3400,7,3405,3405,5,3415,3415,5,3457,3457,5,3530,3530,5,3536,3537,7,3542,3542,5,3551,3551,5,3633,3633,5,3636,3642,5,3761,3761,5,3764,3772,5,3864,3865,5,3895,3895,5,3902,3903,7,3967,3967,7,3974,3975,5,3993,4028,5,4141,4144,5,4146,4151,5,4155,4156,7,4182,4183,7,4190,4192,5,4226,4226,5,4229,4230,5,4253,4253,5,4448,4519,9,4957,4959,5,5938,5940,5,6002,6003,5,6070,6070,7,6078,6085,7,6087,6088,7,6109,6109,5,6158,6158,4,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,6848,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,7673,5,8203,8203,4,8205,8205,13,8232,8232,4,8234,8238,4,8265,8265,14,8293,8293,4,8400,8412,5,8417,8417,5,8421,8432,5,8505,8505,14,8617,8618,14,9000,9000,14,9167,9167,14,9208,9210,14,9642,9643,14,9664,9664,14,9728,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,9776,9783,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,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,9935,14,9937,9937,14,9939,9940,14,9961,9962,14,9968,9973,14,9975,9978,14,9981,9981,14,9986,9986,14,9989,9989,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,10084,14,10133,10135,14,10160,10160,14,10548,10549,14,11035,11036,14,11093,11093,14,11647,11647,5,12330,12333,5,12336,12336,14,12441,12442,5,12953,12953,14,42608,42610,5,42654,42655,5,43010,43010,5,43019,43019,5,43045,43046,5,43052,43052,5,43188,43203,7,43232,43249,5,43302,43309,5,43346,43347,7,43392,43394,5,43443,43443,5,43446,43449,5,43452,43453,5,43493,43493,5,43567,43568,7,43571,43572,7,43587,43587,5,43597,43597,7,43696,43696,5,43703,43704,5,43713,43713,5,43756,43757,5,43765,43765,7,44003,44004,7,44006,44007,7,44009,44010,7,44013,44013,5,44033,44059,12,44061,44087,12,44089,44115,12,44117,44143,12,44145,44171,12,44173,44199,12,44201,44227,12,44229,44255,12,44257,44283,12,44285,44311,12,44313,44339,12,44341,44367,12,44369,44395,12,44397,44423,12,44425,44451,12,44453,44479,12,44481,44507,12,44509,44535,12,44537,44563,12,44565,44591,12,44593,44619,12,44621,44647,12,44649,44675,12,44677,44703,12,44705,44731,12,44733,44759,12,44761,44787,12,44789,44815,12,44817,44843,12,44845,44871,12,44873,44899,12,44901,44927,12,44929,44955,12,44957,44983,12,44985,45011,12,45013,45039,12,45041,45067,12,45069,45095,12,45097,45123,12,45125,45151,12,45153,45179,12,45181,45207,12,45209,45235,12,45237,45263,12,45265,45291,12,45293,45319,12,45321,45347,12,45349,45375,12,45377,45403,12,45405,45431,12,45433,45459,12,45461,45487,12,45489,45515,12,45517,45543,12,45545,45571,12,45573,45599,12,45601,45627,12,45629,45655,12,45657,45683,12,45685,45711,12,45713,45739,12,45741,45767,12,45769,45795,12,45797,45823,12,45825,45851,12,45853,45879,12,45881,45907,12,45909,45935,12,45937,45963,12,45965,45991,12,45993,46019,12,46021,46047,12,46049,46075,12,46077,46103,12,46105,46131,12,46133,46159,12,46161,46187,12,46189,46215,12,46217,46243,12,46245,46271,12,46273,46299,12,46301,46327,12,46329,46355,12,46357,46383,12,46385,46411,12,46413,46439,12,46441,46467,12,46469,46495,12,46497,46523,12,46525,46551,12,46553,46579,12,46581,46607,12,46609,46635,12,46637,46663,12,46665,46691,12,46693,46719,12,46721,46747,12,46749,46775,12,46777,46803,12,46805,46831,12,46833,46859,12,46861,46887,12,46889,46915,12,46917,46943,12,46945,46971,12,46973,46999,12,47001,47027,12,47029,47055,12,47057,47083,12,47085,47111,12,47113,47139,12,47141,47167,12,47169,47195,12,47197,47223,12,47225,47251,12,47253,47279,12,47281,47307,12,47309,47335,12,47337,47363,12,47365,47391,12,47393,47419,12,47421,47447,12,47449,47475,12,47477,47503,12,47505,47531,12,47533,47559,12,47561,47587,12,47589,47615,12,47617,47643,12,47645,47671,12,47673,47699,12,47701,47727,12,47729,47755,12,47757,47783,12,47785,47811,12,47813,47839,12,47841,47867,12,47869,47895,12,47897,47923,12,47925,47951,12,47953,47979,12,47981,48007,12,48009,48035,12,48037,48063,12,48065,48091,12,48093,48119,12,48121,48147,12,48149,48175,12,48177,48203,12,48205,48231,12,48233,48259,12,48261,48287,12,48289,48315,12,48317,48343,12,48345,48371,12,48373,48399,12,48401,48427,12,48429,48455,12,48457,48483,12,48485,48511,12,48513,48539,12,48541,48567,12,48569,48595,12,48597,48623,12,48625,48651,12,48653,48679,12,48681,48707,12,48709,48735,12,48737,48763,12,48765,48791,12,48793,48819,12,48821,48847,12,48849,48875,12,48877,48903,12,48905,48931,12,48933,48959,12,48961,48987,12,48989,49015,12,49017,49043,12,49045,49071,12,49073,49099,12,49101,49127,12,49129,49155,12,49157,49183,12,49185,49211,12,49213,49239,12,49241,49267,12,49269,49295,12,49297,49323,12,49325,49351,12,49353,49379,12,49381,49407,12,49409,49435,12,49437,49463,12,49465,49491,12,49493,49519,12,49521,49547,12,49549,49575,12,49577,49603,12,49605,49631,12,49633,49659,12,49661,49687,12,49689,49715,12,49717,49743,12,49745,49771,12,49773,49799,12,49801,49827,12,49829,49855,12,49857,49883,12,49885,49911,12,49913,49939,12,49941,49967,12,49969,49995,12,49997,50023,12,50025,50051,12,50053,50079,12,50081,50107,12,50109,50135,12,50137,50163,12,50165,50191,12,50193,50219,12,50221,50247,12,50249,50275,12,50277,50303,12,50305,50331,12,50333,50359,12,50361,50387,12,50389,50415,12,50417,50443,12,50445,50471,12,50473,50499,12,50501,50527,12,50529,50555,12,50557,50583,12,50585,50611,12,50613,50639,12,50641,50667,12,50669,50695,12,50697,50723,12,50725,50751,12,50753,50779,12,50781,50807,12,50809,50835,12,50837,50863,12,50865,50891,12,50893,50919,12,50921,50947,12,50949,50975,12,50977,51003,12,51005,51031,12,51033,51059,12,51061,51087,12,51089,51115,12,51117,51143,12,51145,51171,12,51173,51199,12,51201,51227,12,51229,51255,12,51257,51283,12,51285,51311,12,51313,51339,12,51341,51367,12,51369,51395,12,51397,51423,12,51425,51451,12,51453,51479,12,51481,51507,12,51509,51535,12,51537,51563,12,51565,51591,12,51593,51619,12,51621,51647,12,51649,51675,12,51677,51703,12,51705,51731,12,51733,51759,12,51761,51787,12,51789,51815,12,51817,51843,12,51845,51871,12,51873,51899,12,51901,51927,12,51929,51955,12,51957,51983,12,51985,52011,12,52013,52039,12,52041,52067,12,52069,52095,12,52097,52123,12,52125,52151,12,52153,52179,12,52181,52207,12,52209,52235,12,52237,52263,12,52265,52291,12,52293,52319,12,52321,52347,12,52349,52375,12,52377,52403,12,52405,52431,12,52433,52459,12,52461,52487,12,52489,52515,12,52517,52543,12,52545,52571,12,52573,52599,12,52601,52627,12,52629,52655,12,52657,52683,12,52685,52711,12,52713,52739,12,52741,52767,12,52769,52795,12,52797,52823,12,52825,52851,12,52853,52879,12,52881,52907,12,52909,52935,12,52937,52963,12,52965,52991,12,52993,53019,12,53021,53047,12,53049,53075,12,53077,53103,12,53105,53131,12,53133,53159,12,53161,53187,12,53189,53215,12,53217,53243,12,53245,53271,12,53273,53299,12,53301,53327,12,53329,53355,12,53357,53383,12,53385,53411,12,53413,53439,12,53441,53467,12,53469,53495,12,53497,53523,12,53525,53551,12,53553,53579,12,53581,53607,12,53609,53635,12,53637,53663,12,53665,53691,12,53693,53719,12,53721,53747,12,53749,53775,12,53777,53803,12,53805,53831,12,53833,53859,12,53861,53887,12,53889,53915,12,53917,53943,12,53945,53971,12,53973,53999,12,54001,54027,12,54029,54055,12,54057,54083,12,54085,54111,12,54113,54139,12,54141,54167,12,54169,54195,12,54197,54223,12,54225,54251,12,54253,54279,12,54281,54307,12,54309,54335,12,54337,54363,12,54365,54391,12,54393,54419,12,54421,54447,12,54449,54475,12,54477,54503,12,54505,54531,12,54533,54559,12,54561,54587,12,54589,54615,12,54617,54643,12,54645,54671,12,54673,54699,12,54701,54727,12,54729,54755,12,54757,54783,12,54785,54811,12,54813,54839,12,54841,54867,12,54869,54895,12,54897,54923,12,54925,54951,12,54953,54979,12,54981,55007,12,55009,55035,12,55037,55063,12,55065,55091,12,55093,55119,12,55121,55147,12,55149,55175,12,55177,55203,12,55243,55291,10,65024,65039,5,65279,65279,4,65520,65528,4,66045,66045,5,66422,66426,5,68101,68102,5,68152,68154,5,68325,68326,5,69291,69292,5,69632,69632,7,69634,69634,7,69759,69761,5]\")\n                    }\n                    static getInstance() {\n                        return ee._INSTANCE || (ee._INSTANCE = new ee), ee._INSTANCE\n                    }\n                    getGraphemeBreakType(e) {\n                        if (e < 32) return 10 === e ? 3 : 13 === e ? 2 : 4;\n                        if (e < 127) return 0;\n                        const t = this._data,\n                            i = t.length / 3;\n                        let n = 1;\n                        for (; n <= i;)\n                            if (e < t[3 * n]) n *= 2;\n                            else {\n                                if (!(e > t[3 * n + 1])) return t[3 * n + 2];\n                                n = 2 * n + 1\n                            } return 0\n                    }\n                }\n\n                function te(e, t) {\n                    if (0 === e) return 0;\n                    const i = function(e, t) {\n                        let i = O(t, e);\n                        e -= ie(i);\n                        for (; ne(i) || 65039 === i || 8419 === i;) {\n                            if (0 === e) return;\n                            i = O(t, e), e -= ie(i)\n                        }\n                        if (!q(i)) return;\n                        if (e >= 0) {\n                            const i = O(t, e);\n                            8205 === i && (e -= ie(i))\n                        }\n                        return e\n                    }(e, t);\n                    if (void 0 !== i) return i;\n                    return e -= ie(O(t, e))\n                }\n\n                function ie(e) {\n                    return e >= 65536 ? 2 : 1\n                }\n\n                function ne(e) {\n                    return 127995 <= e && e <= 127999\n                }\n                ee._INSTANCE = null\n            },\n            98401: (e, t, i) => {\n                \"use strict\";\n\n                function n(e) {\n                    return Array.isArray(e)\n                }\n\n                function o(e) {\n                    return \"string\" == typeof e\n                }\n\n                function s(e) {\n                    return !(\"object\" != typeof e || null === e || Array.isArray(e) || e instanceof RegExp || e instanceof Date)\n                }\n\n                function r(e) {\n                    return \"number\" == typeof e && !isNaN(e)\n                }\n\n                function a(e) {\n                    return !0 === e || !1 === e\n                }\n\n                function l(e) {\n                    return void 0 === e\n                }\n\n                function c(e) {\n                    return !d(e)\n                }\n\n                function d(e) {\n                    return l(e) || null === e\n                }\n\n                function h(e, t) {\n                    if (!e) throw new Error(t ? `Unexpected type, expected '${t}'` : \"Unexpected type\")\n                }\n\n                function u(e) {\n                    if (d(e)) throw new Error(\"Assertion Failed: argument is undefined or null\");\n                    return e\n                }\n\n                function g(e) {\n                    return \"function\" == typeof e\n                }\n\n                function p(e, t) {\n                    const i = Math.min(e.length, t.length);\n                    for (let n = 0; n < i; n++) f(e[n], t[n])\n                }\n\n                function f(e, t) {\n                    if (o(t)) {\n                        if (typeof e !== t) throw new Error(`argument does not match constraint: typeof ${t}`)\n                    } else if (g(t)) {\n                        try {\n                            if (e instanceof t) return\n                        } catch (e) {}\n                        if (!d(e) && e.constructor === t) return;\n                        if (1 === t.length && !0 === t.call(void 0, e)) return;\n                        throw new Error(\"argument does not match one of these constraints: arg instanceof constraint, arg.constructor === constraint, nor constraint(arg) === true\")\n                    }\n                }\n\n                function m(e) {\n                    const t = [];\n                    for (const i of function(e) {\n                            let t = [],\n                                i = Object.getPrototypeOf(e);\n                            for (; Object.prototype !== i;) t = t.concat(Object.getOwnPropertyNames(i)), i = Object.getPrototypeOf(i);\n                            return t\n                        }(e)) \"function\" == typeof e[i] && t.push(i);\n                    return t\n                }\n\n                function v(e, t) {\n                    const i = e => function() {\n                        const i = Array.prototype.slice.call(arguments, 0);\n                        return t(e, i)\n                    };\n                    let n = {};\n                    for (const t of e) n[t] = i(t);\n                    return n\n                }\n\n                function _(e) {\n                    return null === e ? void 0 : e\n                }\n\n                function b(e, t = \"Unreachable\") {\n                    throw new Error(t)\n                }\n                i.d(t, {\n                    $E: () => m,\n                    $K: () => c,\n                    D8: () => p,\n                    HD: () => o,\n                    IU: () => v,\n                    Jp: () => d,\n                    Kn: () => s,\n                    cW: () => u,\n                    f6: () => _,\n                    hj: () => r,\n                    jn: () => a,\n                    kJ: () => n,\n                    mf: () => g,\n                    o8: () => l,\n                    p_: () => h,\n                    vE: () => b\n                })\n            },\n            85427: (e, t, i) => {\n                \"use strict\";\n\n                function n(e) {\n                    return e < 0 ? 0 : e > 255 ? 255 : 0 | e\n                }\n\n                function o(e) {\n                    return e < 0 ? 0 : e > 4294967295 ? 4294967295 : 0 | e\n                }\n                i.d(t, {\n                    A: () => o,\n                    K: () => n\n                })\n            },\n            70666: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    o: () => u,\n                    q: () => _\n                });\n                var n = i(88721),\n                    o = i(1432);\n                const s = /^\\w[\\w\\d+.-]*$/,\n                    r = /^\\//,\n                    a = /^\\/\\//;\n\n                function l(e, t) {\n                    if (!e.scheme && t) throw new Error(`[UriError]: Scheme is missing: {scheme: \"\", authority: \"${e.authority}\", path: \"${e.path}\", query: \"${e.query}\", fragment: \"${e.fragment}\"}`);\n                    if (e.scheme && !s.test(e.scheme)) throw new Error(\"[UriError]: Scheme contains illegal characters.\");\n                    if (e.path)\n                        if (e.authority) {\n                            if (!r.test(e.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')\n                        } else if (a.test(e.path)) throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters (\"//\")')\n                }\n                const c = \"\",\n                    d = \"/\",\n                    h = /^(([^:/?#]+?):)?(\\/\\/([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?/;\n                class u {\n                    constructor(e, t, i, n, o, s = !1) {\n                        \"object\" == typeof e ? (this.scheme = e.scheme || c, this.authority = e.authority || c, this.path = e.path || c, this.query = e.query || c, this.fragment = e.fragment || c) : (this.scheme = function(e, t) {\n                            return e || t ? e : \"file\"\n                        }(e, s), this.authority = t || c, this.path = function(e, t) {\n                            switch (e) {\n                                case \"https\":\n                                case \"http\":\n                                case \"file\":\n                                    t ? t[0] !== d && (t = d + t) : t = d\n                            }\n                            return t\n                        }(this.scheme, i || c), this.query = n || c, this.fragment = o || c, l(this, s))\n                    }\n                    static isUri(e) {\n                        return e instanceof u || !!e && (\"string\" == typeof e.authority && \"string\" == typeof e.fragment && \"string\" == typeof e.path && \"string\" == typeof e.query && \"string\" == typeof e.scheme && \"string\" == typeof e.fsPath && \"function\" == typeof e.with && \"function\" == typeof e.toString)\n                    }\n                    get fsPath() {\n                        return _(this, !1)\n                    }\n                    with(e) {\n                        if (!e) return this;\n                        let {\n                            scheme: t,\n                            authority: i,\n                            path: n,\n                            query: o,\n                            fragment: s\n                        } = e;\n                        return void 0 === t ? t = this.scheme : null === t && (t = c), void 0 === i ? i = this.authority : null === i && (i = c), void 0 === n ? n = this.path : null === n && (n = c), void 0 === o ? o = this.query : null === o && (o = c), void 0 === s ? s = this.fragment : null === s && (s = c), t === this.scheme && i === this.authority && n === this.path && o === this.query && s === this.fragment ? this : new p(t, i, n, o, s)\n                    }\n                    static parse(e, t = !1) {\n                        const i = h.exec(e);\n                        return i ? new p(i[2] || c, C(i[4] || c), C(i[5] || c), C(i[7] || c), C(i[9] || c), t) : new p(c, c, c, c, c)\n                    }\n                    static file(e) {\n                        let t = c;\n                        if (o.ED && (e = e.replace(/\\\\/g, d)), e[0] === d && e[1] === d) {\n                            const i = e.indexOf(d, 2); - 1 === i ? (t = e.substring(2), e = d) : (t = e.substring(2, i), e = e.substring(i) || d)\n                        }\n                        return new p(\"file\", t, e, c, c)\n                    }\n                    static from(e) {\n                        const t = new p(e.scheme, e.authority, e.path, e.query, e.fragment);\n                        return l(t, !0), t\n                    }\n                    static joinPath(e, ...t) {\n                        if (!e.path) throw new Error(\"[UriError]: cannot call joinPath on URI without path\");\n                        let i;\n                        return i = o.ED && \"file\" === e.scheme ? u.file(n.Ku.join(_(e, !0), ...t)).path : n.KR.join(e.path, ...t), e.with({\n                            path: i\n                        })\n                    }\n                    toString(e = !1) {\n                        return b(this, e)\n                    }\n                    toJSON() {\n                        return this\n                    }\n                    static revive(e) {\n                        if (e) {\n                            if (e instanceof u) return e; {\n                                const t = new p(e);\n                                return t._formatted = e.external, t._fsPath = e._sep === g ? e.fsPath : null, t\n                            }\n                        }\n                        return e\n                    }\n                }\n                const g = o.ED ? 1 : void 0;\n                class p extends u {\n                    constructor() {\n                        super(...arguments), this._formatted = null, this._fsPath = null\n                    }\n                    get fsPath() {\n                        return this._fsPath || (this._fsPath = _(this, !1)), this._fsPath\n                    }\n                    toString(e = !1) {\n                        return e ? b(this, !0) : (this._formatted || (this._formatted = b(this, !1)), this._formatted)\n                    }\n                    toJSON() {\n                        const e = {\n                            $mid: 1\n                        };\n                        return this._fsPath && (e.fsPath = this._fsPath, e._sep = g), this._formatted && (e.external = this._formatted), this.path && (e.path = this.path), this.scheme && (e.scheme = this.scheme), this.authority && (e.authority = this.authority), this.query && (e.query = this.query), this.fragment && (e.fragment = this.fragment), e\n                    }\n                }\n                const f = {\n                    58: \"%3A\",\n                    47: \"%2F\",\n                    63: \"%3F\",\n                    35: \"%23\",\n                    91: \"%5B\",\n                    93: \"%5D\",\n                    64: \"%40\",\n                    33: \"%21\",\n                    36: \"%24\",\n                    38: \"%26\",\n                    39: \"%27\",\n                    40: \"%28\",\n                    41: \"%29\",\n                    42: \"%2A\",\n                    43: \"%2B\",\n                    44: \"%2C\",\n                    59: \"%3B\",\n                    61: \"%3D\",\n                    32: \"%20\"\n                };\n\n                function m(e, t) {\n                    let i, n = -1;\n                    for (let o = 0; o < e.length; o++) {\n                        const s = e.charCodeAt(o);\n                        if (s >= 97 && s <= 122 || s >= 65 && s <= 90 || s >= 48 && s <= 57 || 45 === s || 46 === s || 95 === s || 126 === s || t && 47 === s) - 1 !== n && (i += encodeURIComponent(e.substring(n, o)), n = -1), void 0 !== i && (i += e.charAt(o));\n                        else {\n                            void 0 === i && (i = e.substr(0, o));\n                            const t = f[s];\n                            void 0 !== t ? (-1 !== n && (i += encodeURIComponent(e.substring(n, o)), n = -1), i += t) : -1 === n && (n = o)\n                        }\n                    }\n                    return -1 !== n && (i += encodeURIComponent(e.substring(n))), void 0 !== i ? i : e\n                }\n\n                function v(e) {\n                    let t;\n                    for (let i = 0; i < e.length; i++) {\n                        const n = e.charCodeAt(i);\n                        35 === n || 63 === n ? (void 0 === t && (t = e.substr(0, i)), t += f[n]) : void 0 !== t && (t += e[i])\n                    }\n                    return void 0 !== t ? t : e\n                }\n\n                function _(e, t) {\n                    let i;\n                    return i = e.authority && e.path.length > 1 && \"file\" === e.scheme ? `//${e.authority}${e.path}` : 47 === e.path.charCodeAt(0) && (e.path.charCodeAt(1) >= 65 && e.path.charCodeAt(1) <= 90 || e.path.charCodeAt(1) >= 97 && e.path.charCodeAt(1) <= 122) && 58 === e.path.charCodeAt(2) ? t ? e.path.substr(1) : e.path[1].toLowerCase() + e.path.substr(2) : e.path, o.ED && (i = i.replace(/\\//g, \"\\\\\")), i\n                }\n\n                function b(e, t) {\n                    const i = t ? v : m;\n                    let n = \"\",\n                        {\n                            scheme: o,\n                            authority: s,\n                            path: r,\n                            query: a,\n                            fragment: l\n                        } = e;\n                    if (o && (n += o, n += \":\"), (s || \"file\" === o) && (n += d, n += d), s) {\n                        let e = s.indexOf(\"@\");\n                        if (-1 !== e) {\n                            const t = s.substr(0, e);\n                            s = s.substr(e + 1), e = t.indexOf(\":\"), -1 === e ? n += i(t, !1) : (n += i(t.substr(0, e), !1), n += \":\", n += i(t.substr(e + 1), !1)), n += \"@\"\n                        }\n                        s = s.toLowerCase(), e = s.indexOf(\":\"), -1 === e ? n += i(s, !1) : (n += i(s.substr(0, e), !1), n += s.substr(e))\n                    }\n                    if (r) {\n                        if (r.length >= 3 && 47 === r.charCodeAt(0) && 58 === r.charCodeAt(2)) {\n                            const e = r.charCodeAt(1);\n                            e >= 65 && e <= 90 && (r = `/${String.fromCharCode(e+32)}:${r.substr(3)}`)\n                        } else if (r.length >= 2 && 58 === r.charCodeAt(1)) {\n                            const e = r.charCodeAt(0);\n                            e >= 65 && e <= 90 && (r = `${String.fromCharCode(e+32)}:${r.substr(2)}`)\n                        }\n                        n += i(r, !0)\n                    }\n                    return a && (n += \"?\", n += i(a, !1)), l && (n += \"#\", n += t ? l : m(l, !1)), n\n                }\n\n                function w(e) {\n                    try {\n                        return decodeURIComponent(e)\n                    } catch (t) {\n                        return e.length > 3 ? e.substr(0, 3) + w(e.substr(3)) : e\n                    }\n                }\n                const y = /(%[0-9A-Za-z][0-9A-Za-z])+/g;\n\n                function C(e) {\n                    return e.match(y) ? e.replace(y, (e => w(e))) : e\n                }\n            },\n            67746: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    Jq: () => o,\n                    X5: () => n,\n                    jG: () => s\n                });\n                const n = {\n                    ctrlCmd: !1,\n                    alt: !1\n                };\n                var o, s;\n                ! function(e) {\n                    e[e.Blur = 1] = \"Blur\", e[e.Gesture = 2] = \"Gesture\", e[e.Other = 3] = \"Other\"\n                }(o || (o = {})),\n                function(e) {\n                    e[e.NONE = 0] = \"NONE\", e[e.FIRST = 1] = \"FIRST\", e[e.SECOND = 2] = \"SECOND\", e[e.LAST = 3] = \"LAST\"\n                }(s || (s = {}))\n            },\n            25552: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    H: () => a\n                });\n                var n = i(89587),\n                    o = {},\n                    s = {},\n                    r = function() {\n                        function e(e) {\n                            var t = this;\n                            this._languageId = e, this._loadingTriggered = !1, this._lazyLoadPromise = new Promise((function(e, i) {\n                                t._lazyLoadPromiseResolve = e, t._lazyLoadPromiseReject = i\n                            }))\n                        }\n                        return e.getOrCreate = function(t) {\n                            return s[t] || (s[t] = new e(t)), s[t]\n                        }, e.prototype.whenLoaded = function() {\n                            return this._lazyLoadPromise\n                        }, e.prototype.load = function() {\n                            var e = this;\n                            return this._loadingTriggered || (this._loadingTriggered = !0, o[this._languageId].loader().then((function(t) {\n                                return e._lazyLoadPromiseResolve(t)\n                            }), (function(t) {\n                                return e._lazyLoadPromiseReject(t)\n                            }))), this._lazyLoadPromise\n                        }, e\n                    }();\n\n                function a(e) {\n                    var t = e.id;\n                    o[t] = e, n.Mj.register(e);\n                    var i = r.getOrCreate(t);\n                    n.Mj.setMonarchTokensProvider(t, i.whenLoaded().then((function(e) {\n                        return e.language\n                    }))), n.Mj.onLanguage(t, (function() {\n                        i.load().then((function(e) {\n                            n.Mj.setLanguageConfiguration(t, e.conf)\n                        }))\n                    }))\n                }\n            },\n            89587: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    Mj: () => n.languages\n                });\n                var n = i(58583)\n            },\n            43763: (e, t, i) => {\n                \"use strict\";\n                i.r(t), (0, i(25552).H)({\n                    id: \"javascript\",\n                    extensions: [\".js\", \".es6\", \".jsx\", \".mjs\"],\n                    firstLine: \"^#!.*\\\\bnode\",\n                    filenames: [\"jakefile\"],\n                    aliases: [\"JavaScript\", \"javascript\", \"js\"],\n                    mimetypes: [\"text/javascript\"],\n                    loader: function() {\n                        return i.e(295).then(i.bind(i, 62295))\n                    }\n                })\n            },\n            83187: (e, t, i) => {\n                \"use strict\";\n                i.r(t), (0, i(25552).H)({\n                    id: \"python\",\n                    extensions: [\".py\", \".rpy\", \".pyw\", \".cpy\", \".gyp\", \".gypi\"],\n                    aliases: [\"Python\", \"py\"],\n                    firstLine: \"^#!/.*\\\\bpython[0-9.-]*\\\\b\",\n                    loader: function() {\n                        return i.e(287).then(i.bind(i, 37287))\n                    }\n                })\n            },\n            94199: (e, t, i) => {\n                \"use strict\";\n                i.r(t), (0, i(25552).H)({\n                    id: \"yaml\",\n                    extensions: [\".yaml\", \".yml\"],\n                    aliases: [\"YAML\", \"yaml\", \"YML\", \"yml\"],\n                    mimetypes: [\"application/x-yaml\", \"text/x-yaml\"],\n                    loader: function() {\n                        return i.e(585).then(i.bind(i, 23585))\n                    }\n                })\n            },\n            89052: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    V: () => m,\n                    P: () => p\n                });\n                var n = i(16268),\n                    o = i(4669),\n                    s = i(5976),\n                    r = i(1432),\n                    a = i(64141);\n                class l {\n                    constructor(e, t) {\n                        this.chr = e, this.type = t, this.width = 0\n                    }\n                    fulfill(e) {\n                        this.width = e\n                    }\n                }\n                class c {\n                    constructor(e, t) {\n                        this._bareFontInfo = e, this._requests = t, this._container = null, this._testElements = null\n                    }\n                    read() {\n                        this._createDomElements(), document.body.appendChild(this._container), this._readFromDomElements(), document.body.removeChild(this._container), this._container = null, this._testElements = null\n                    }\n                    _createDomElements() {\n                        const e = this._bareFontInfo.getMassagedFontFamily(n.G6 ? a.hL.fontFamily : null),\n                            t = document.createElement(\"div\");\n                        t.style.position = \"absolute\", t.style.top = \"-50000px\", t.style.width = \"50000px\";\n                        const i = document.createElement(\"div\");\n                        i.style.fontFamily = e, i.style.fontWeight = this._bareFontInfo.fontWeight, i.style.fontSize = this._bareFontInfo.fontSize + \"px\", i.style.fontFeatureSettings = this._bareFontInfo.fontFeatureSettings, i.style.lineHeight = this._bareFontInfo.lineHeight + \"px\", i.style.letterSpacing = this._bareFontInfo.letterSpacing + \"px\", t.appendChild(i);\n                        const o = document.createElement(\"div\");\n                        o.style.fontFamily = e, o.style.fontWeight = \"bold\", o.style.fontSize = this._bareFontInfo.fontSize + \"px\", o.style.fontFeatureSettings = this._bareFontInfo.fontFeatureSettings, o.style.lineHeight = this._bareFontInfo.lineHeight + \"px\", o.style.letterSpacing = this._bareFontInfo.letterSpacing + \"px\", t.appendChild(o);\n                        const s = document.createElement(\"div\");\n                        s.style.fontFamily = e, s.style.fontWeight = this._bareFontInfo.fontWeight, s.style.fontSize = this._bareFontInfo.fontSize + \"px\", s.style.fontFeatureSettings = this._bareFontInfo.fontFeatureSettings, s.style.lineHeight = this._bareFontInfo.lineHeight + \"px\", s.style.letterSpacing = this._bareFontInfo.letterSpacing + \"px\", s.style.fontStyle = \"italic\", t.appendChild(s);\n                        const r = [];\n                        for (const e of this._requests) {\n                            let t;\n                            0 === e.type && (t = i), 2 === e.type && (t = o), 1 === e.type && (t = s), t.appendChild(document.createElement(\"br\"));\n                            const n = document.createElement(\"span\");\n                            c._render(n, e), t.appendChild(n), r.push(n)\n                        }\n                        this._container = t, this._testElements = r\n                    }\n                    static _render(e, t) {\n                        if (\" \" === t.chr) {\n                            let t = \" \";\n                            for (let e = 0; e < 8; e++) t += t;\n                            e.innerText = t\n                        } else {\n                            let i = t.chr;\n                            for (let e = 0; e < 8; e++) i += i;\n                            e.textContent = i\n                        }\n                    }\n                    _readFromDomElements() {\n                        for (let e = 0, t = this._requests.length; e < t; e++) {\n                            const t = this._requests[e],\n                                i = this._testElements[e];\n                            t.fulfill(i.offsetWidth / 256)\n                        }\n                    }\n                }\n                var d = i(54534),\n                    h = i(56345),\n                    u = i(27374);\n                class g {\n                    constructor() {\n                        this._keys = Object.create(null), this._values = Object.create(null)\n                    }\n                    has(e) {\n                        const t = e.getId();\n                        return !!this._values[t]\n                    }\n                    get(e) {\n                        const t = e.getId();\n                        return this._values[t]\n                    }\n                    put(e, t) {\n                        const i = e.getId();\n                        this._keys[i] = e, this._values[i] = t\n                    }\n                    remove(e) {\n                        const t = e.getId();\n                        delete this._keys[t], delete this._values[t]\n                    }\n                    getValues() {\n                        return Object.keys(this._keys).map((e => this._values[e]))\n                    }\n                }\n\n                function p() {\n                    f.INSTANCE.clearCache()\n                }\n                class f extends s.JT {\n                    constructor() {\n                        super(), this._onDidChange = this._register(new o.Q5), this.onDidChange = this._onDidChange.event, this._cache = new g, this._evictUntrustedReadingsTimeout = -1\n                    }\n                    dispose() {\n                        -1 !== this._evictUntrustedReadingsTimeout && (clearTimeout(this._evictUntrustedReadingsTimeout), this._evictUntrustedReadingsTimeout = -1), super.dispose()\n                    }\n                    clearCache() {\n                        this._cache = new g, this._onDidChange.fire()\n                    }\n                    _writeToCache(e, t) {\n                        this._cache.put(e, t), t.isTrusted || -1 !== this._evictUntrustedReadingsTimeout || (this._evictUntrustedReadingsTimeout = setTimeout((() => {\n                            this._evictUntrustedReadingsTimeout = -1, this._evictUntrustedReadings()\n                        }), 5e3))\n                    }\n                    _evictUntrustedReadings() {\n                        const e = this._cache.getValues();\n                        let t = !1;\n                        for (const i of e) i.isTrusted || (t = !0, this._cache.remove(i));\n                        t && this._onDidChange.fire()\n                    }\n                    readConfiguration(e) {\n                        if (!this._cache.has(e)) {\n                            let t = f._actualReadConfiguration(e);\n                            (t.typicalHalfwidthCharacterWidth <= 2 || t.typicalFullwidthCharacterWidth <= 2 || t.spaceWidth <= 2 || t.maxDigitWidth <= 2) && (t = new u.pR({\n                                zoomLevel: n.px(),\n                                pixelRatio: n.mX(),\n                                fontFamily: t.fontFamily,\n                                fontWeight: t.fontWeight,\n                                fontSize: t.fontSize,\n                                fontFeatureSettings: t.fontFeatureSettings,\n                                lineHeight: t.lineHeight,\n                                letterSpacing: t.letterSpacing,\n                                isMonospace: t.isMonospace,\n                                typicalHalfwidthCharacterWidth: Math.max(t.typicalHalfwidthCharacterWidth, 5),\n                                typicalFullwidthCharacterWidth: Math.max(t.typicalFullwidthCharacterWidth, 5),\n                                canUseHalfwidthRightwardsArrow: t.canUseHalfwidthRightwardsArrow,\n                                spaceWidth: Math.max(t.spaceWidth, 5),\n                                middotWidth: Math.max(t.middotWidth, 5),\n                                wsmiddotWidth: Math.max(t.wsmiddotWidth, 5),\n                                maxDigitWidth: Math.max(t.maxDigitWidth, 5)\n                            }, !1)), this._writeToCache(e, t)\n                        }\n                        return this._cache.get(e)\n                    }\n                    static createRequest(e, t, i, n) {\n                        const o = new l(e, t);\n                        return i.push(o), n && n.push(o), o\n                    }\n                    static _actualReadConfiguration(e) {\n                        const t = [],\n                            i = [],\n                            o = this.createRequest(\"n\", 0, t, i),\n                            s = this.createRequest(\"ｍ\", 0, t, null),\n                            r = this.createRequest(\" \", 0, t, i),\n                            l = this.createRequest(\"0\", 0, t, i),\n                            d = this.createRequest(\"1\", 0, t, i),\n                            h = this.createRequest(\"2\", 0, t, i),\n                            g = this.createRequest(\"3\", 0, t, i),\n                            p = this.createRequest(\"4\", 0, t, i),\n                            f = this.createRequest(\"5\", 0, t, i),\n                            m = this.createRequest(\"6\", 0, t, i),\n                            v = this.createRequest(\"7\", 0, t, i),\n                            _ = this.createRequest(\"8\", 0, t, i),\n                            b = this.createRequest(\"9\", 0, t, i),\n                            w = this.createRequest(\"→\", 0, t, i),\n                            y = this.createRequest(\"￫\", 0, t, null),\n                            C = this.createRequest(\"·\", 0, t, i),\n                            x = this.createRequest(String.fromCharCode(11825), 0, t, null),\n                            S = \"|/-_ilm%\";\n                        for (let e = 0, n = 8; e < n; e++) this.createRequest(S.charAt(e), 0, t, i), this.createRequest(S.charAt(e), 1, t, i), this.createRequest(S.charAt(e), 2, t, i);\n                        ! function(e, t) {\n                            new c(e, t).read()\n                        }(e, t);\n                        const k = Math.max(l.width, d.width, h.width, g.width, p.width, f.width, m.width, v.width, _.width, b.width);\n                        let L = e.fontFeatureSettings === a.n0.OFF;\n                        const N = i[0].width;\n                        for (let e = 1, t = i.length; L && e < t; e++) {\n                            const t = N - i[e].width;\n                            if (t < -.001 || t > .001) {\n                                L = !1;\n                                break\n                            }\n                        }\n                        let D = !0;\n                        L && y.width !== N && (D = !1), y.width > w.width && (D = !1);\n                        const I = n.WP() > 2e3;\n                        return new u.pR({\n                            zoomLevel: n.px(),\n                            pixelRatio: n.mX(),\n                            fontFamily: e.fontFamily,\n                            fontWeight: e.fontWeight,\n                            fontSize: e.fontSize,\n                            fontFeatureSettings: e.fontFeatureSettings,\n                            lineHeight: e.lineHeight,\n                            letterSpacing: e.letterSpacing,\n                            isMonospace: L,\n                            typicalHalfwidthCharacterWidth: o.width,\n                            typicalFullwidthCharacterWidth: s.width,\n                            canUseHalfwidthRightwardsArrow: D,\n                            spaceWidth: r.width,\n                            middotWidth: C.width,\n                            wsmiddotWidth: x.width,\n                            maxDigitWidth: k\n                        }, I)\n                    }\n                }\n                f.INSTANCE = new f;\n                class m extends h.fv {\n                    constructor(e, t, i = null, o) {\n                        super(e, t), this.accessibilityService = o, this._elementSizeObserver = this._register(new d.I(i, t.dimension, (() => this._recomputeOptions()))), this._register(f.INSTANCE.onDidChange((() => this._recomputeOptions()))), this._validatedOptions.get(10) && this._elementSizeObserver.startObserving(), this._register(n.fX((e => this._recomputeOptions()))), this._register(this.accessibilityService.onDidChangeScreenReaderOptimized((() => this._recomputeOptions()))), this._recomputeOptions()\n                    }\n                    static applyFontInfoSlow(e, t) {\n                        e.style.fontFamily = t.getMassagedFontFamily(n.G6 ? a.hL.fontFamily : null), e.style.fontWeight = t.fontWeight, e.style.fontSize = t.fontSize + \"px\", e.style.fontFeatureSettings = t.fontFeatureSettings, e.style.lineHeight = t.lineHeight + \"px\", e.style.letterSpacing = t.letterSpacing + \"px\"\n                    }\n                    static applyFontInfo(e, t) {\n                        e.setFontFamily(t.getMassagedFontFamily(n.G6 ? a.hL.fontFamily : null)), e.setFontWeight(t.fontWeight), e.setFontSize(t.fontSize), e.setFontFeatureSettings(t.fontFeatureSettings), e.setLineHeight(t.lineHeight), e.setLetterSpacing(t.letterSpacing)\n                    }\n                    observeReferenceElement(e) {\n                        this._elementSizeObserver.observe(e)\n                    }\n                    updatePixelRatio() {\n                        this._recomputeOptions()\n                    }\n                    static _getExtraEditorClassName() {\n                        let e = \"\";\n                        return n.G6 || n.MG || (e += \"no-user-select \"), n.G6 && (e += \"no-minimap-shadow \"), r.dz && (e += \"mac \"), e\n                    }\n                    _getEnvConfiguration() {\n                        return {\n                            extraEditorClassName: m._getExtraEditorClassName(),\n                            outerWidth: this._elementSizeObserver.getWidth(),\n                            outerHeight: this._elementSizeObserver.getHeight(),\n                            emptySelectionClipboard: n.Pf || n.vU,\n                            pixelRatio: n.mX(),\n                            zoomLevel: n.px(),\n                            accessibilitySupport: this.accessibilityService.isScreenReaderOptimized() ? 2 : this.accessibilityService.getAccessibilitySupport()\n                        }\n                    }\n                    readConfiguration(e) {\n                        return f.INSTANCE.readConfiguration(e)\n                    }\n                }\n            },\n            54534: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    I: () => o\n                });\n                var n = i(5976);\n                class o extends n.JT {\n                    constructor(e, t, i) {\n                        super(), this.referenceDomElement = e, this.changeCallback = i, this.width = -1, this.height = -1, this.resizeObserver = null, this.measureReferenceDomElementToken = -1, this.measureReferenceDomElement(!1, t)\n                    }\n                    dispose() {\n                        this.stopObserving(), super.dispose()\n                    }\n                    getWidth() {\n                        return this.width\n                    }\n                    getHeight() {\n                        return this.height\n                    }\n                    startObserving() {\n                        \"undefined\" != typeof ResizeObserver ? !this.resizeObserver && this.referenceDomElement && (this.resizeObserver = new ResizeObserver((e => {\n                            e && e[0] && e[0].contentRect ? this.observe({\n                                width: e[0].contentRect.width,\n                                height: e[0].contentRect.height\n                            }) : this.observe()\n                        })), this.resizeObserver.observe(this.referenceDomElement)) : -1 === this.measureReferenceDomElementToken && (this.measureReferenceDomElementToken = setInterval((() => this.observe()), 100))\n                    }\n                    stopObserving() {\n                        this.resizeObserver && (this.resizeObserver.disconnect(), this.resizeObserver = null), -1 !== this.measureReferenceDomElementToken && (clearInterval(this.measureReferenceDomElementToken), this.measureReferenceDomElementToken = -1)\n                    }\n                    observe(e) {\n                        this.measureReferenceDomElement(!0, e)\n                    }\n                    measureReferenceDomElement(e, t) {\n                        let i = 0,\n                            n = 0;\n                        t ? (i = t.width, n = t.height) : this.referenceDomElement && (i = this.referenceDomElement.clientWidth, n = this.referenceDomElement.clientHeight), i = Math.max(5, i), n = Math.max(5, n), this.width === i && this.height === n || (this.width = i, this.height = n, e && this.changeCallback())\n                    }\n                }\n            },\n            18728: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    CoreEditingCommands: () => N,\n                    CoreEditorCommand: () => b,\n                    CoreNavigationCommands: () => C,\n                    EditorScroll_: () => w,\n                    RevealLine_: () => y\n                });\n                var n = i(63580),\n                    o = i(16268),\n                    s = i(98401),\n                    r = i(85152),\n                    a = i(16830),\n                    l = i(11640),\n                    c = i(33181),\n                    d = i(50187),\n                    h = i(24314);\n                class u {\n                    static columnSelect(e, t, i, n, o, s) {\n                        let r = Math.abs(o - i) + 1,\n                            a = i > o,\n                            l = n > s,\n                            u = n < s,\n                            g = [];\n                        for (let o = 0; o < r; o++) {\n                            let r = i + (a ? -o : o),\n                                p = c.io.columnFromVisibleColumn2(e, t, r, n),\n                                f = c.io.columnFromVisibleColumn2(e, t, r, s),\n                                m = c.io.visibleColumnFromColumn2(e, t, new d.L(r, p)),\n                                v = c.io.visibleColumnFromColumn2(e, t, new d.L(r, f));\n                            if (u) {\n                                if (m > s) continue;\n                                if (v < n) continue\n                            }\n                            if (l) {\n                                if (v > n) continue;\n                                if (m < s) continue\n                            }\n                            g.push(new c.rS(new h.e(r, p, r, p), 0, new d.L(r, f), 0))\n                        }\n                        if (0 === g.length)\n                            for (let e = 0; e < r; e++) {\n                                const n = i + (a ? -e : e),\n                                    o = t.getLineMaxColumn(n);\n                                g.push(new c.rS(new h.e(n, o, n, o), 0, new d.L(n, o), 0))\n                            }\n                        return {\n                            viewStates: g,\n                            reversed: a,\n                            fromLineNumber: i,\n                            fromVisualColumn: n,\n                            toLineNumber: o,\n                            toVisualColumn: s\n                        }\n                    }\n                    static columnSelectLeft(e, t, i) {\n                        let n = i.toViewVisualColumn;\n                        return n > 0 && n--, u.columnSelect(e, t, i.fromViewLineNumber, i.fromViewVisualColumn, i.toViewLineNumber, n)\n                    }\n                    static columnSelectRight(e, t, i) {\n                        let n = 0;\n                        const o = Math.min(i.fromViewLineNumber, i.toViewLineNumber),\n                            s = Math.max(i.fromViewLineNumber, i.toViewLineNumber);\n                        for (let i = o; i <= s; i++) {\n                            const o = t.getLineMaxColumn(i),\n                                s = c.io.visibleColumnFromColumn2(e, t, new d.L(i, o));\n                            n = Math.max(n, s)\n                        }\n                        let r = i.toViewVisualColumn;\n                        return r < n && r++, this.columnSelect(e, t, i.fromViewLineNumber, i.fromViewVisualColumn, i.toViewLineNumber, r)\n                    }\n                    static columnSelectUp(e, t, i, n) {\n                        const o = n ? e.pageSize : 1,\n                            s = Math.max(1, i.toViewLineNumber - o);\n                        return this.columnSelect(e, t, i.fromViewLineNumber, i.fromViewVisualColumn, s, i.toViewVisualColumn)\n                    }\n                    static columnSelectDown(e, t, i, n) {\n                        const o = n ? e.pageSize : 1,\n                            s = Math.min(t.getLineCount(), i.toViewLineNumber + o);\n                        return this.columnSelect(e, t, i.fromViewLineNumber, i.fromViewVisualColumn, s, i.toViewVisualColumn)\n                    }\n                }\n                var g = i(31380),\n                    p = i(83814),\n                    f = i(23582),\n                    m = i(29102),\n                    v = i(38819),\n                    _ = i(49989);\n                class b extends a._l {\n                    runEditorCommand(e, t, i) {\n                        const n = t._getViewModel();\n                        n && this.runCoreEditorCommand(n, i || {})\n                    }\n                }\n                var w, y, C;\n                ! function(e) {\n                    e.description = {\n                        description: \"Scroll editor in the given direction\",\n                        args: [{\n                            name: \"Editor scroll argument object\",\n                            description: \"Property-value pairs that can be passed through this argument:\\n\\t\\t\\t\\t\\t* 'to': A mandatory direction value.\\n\\t\\t\\t\\t\\t\\t```\\n\\t\\t\\t\\t\\t\\t'up', 'down'\\n\\t\\t\\t\\t\\t\\t```\\n\\t\\t\\t\\t\\t* 'by': Unit to move. Default is computed based on 'to' value.\\n\\t\\t\\t\\t\\t\\t```\\n\\t\\t\\t\\t\\t\\t'line', 'wrappedLine', 'page', 'halfPage'\\n\\t\\t\\t\\t\\t\\t```\\n\\t\\t\\t\\t\\t* 'value': Number of units to move. Default is '1'.\\n\\t\\t\\t\\t\\t* 'revealCursor': If 'true' reveals the cursor if it is outside view port.\\n\\t\\t\\t\\t\",\n                            constraint: function(e) {\n                                if (!s.Kn(e)) return !1;\n                                const t = e;\n                                return !!s.HD(t.to) && (!(!s.o8(t.by) && !s.HD(t.by)) && (!(!s.o8(t.value) && !s.hj(t.value)) && !(!s.o8(t.revealCursor) && !s.jn(t.revealCursor))))\n                            },\n                            schema: {\n                                type: \"object\",\n                                required: [\"to\"],\n                                properties: {\n                                    to: {\n                                        type: \"string\",\n                                        enum: [\"up\", \"down\"]\n                                    },\n                                    by: {\n                                        type: \"string\",\n                                        enum: [\"line\", \"wrappedLine\", \"page\", \"halfPage\"]\n                                    },\n                                    value: {\n                                        type: \"number\",\n                                        default: 1\n                                    },\n                                    revealCursor: {\n                                        type: \"boolean\"\n                                    }\n                                }\n                            }\n                        }]\n                    }, e.RawDirection = {\n                        Up: \"up\",\n                        Down: \"down\"\n                    }, e.RawUnit = {\n                        Line: \"line\",\n                        WrappedLine: \"wrappedLine\",\n                        Page: \"page\",\n                        HalfPage: \"halfPage\"\n                    }, e.parse = function(t) {\n                        let i, n;\n                        switch (t.to) {\n                            case e.RawDirection.Up:\n                                i = 1;\n                                break;\n                            case e.RawDirection.Down:\n                                i = 2;\n                                break;\n                            default:\n                                return null\n                        }\n                        switch (t.by) {\n                            case e.RawUnit.Line:\n                                n = 1;\n                                break;\n                            case e.RawUnit.WrappedLine:\n                                n = 2;\n                                break;\n                            case e.RawUnit.Page:\n                                n = 3;\n                                break;\n                            case e.RawUnit.HalfPage:\n                                n = 4;\n                                break;\n                            default:\n                                n = 2\n                        }\n                        return {\n                            direction: i,\n                            unit: n,\n                            value: Math.floor(t.value || 1),\n                            revealCursor: !!t.revealCursor,\n                            select: !!t.select\n                        }\n                    }\n                }(w || (w = {})),\n                function(e) {\n                    e.description = {\n                        description: \"Reveal the given line at the given logical position\",\n                        args: [{\n                            name: \"Reveal line argument object\",\n                            description: \"Property-value pairs that can be passed through this argument:\\n\\t\\t\\t\\t\\t* 'lineNumber': A mandatory line number value.\\n\\t\\t\\t\\t\\t* 'at': Logical position at which line has to be revealed.\\n\\t\\t\\t\\t\\t\\t```\\n\\t\\t\\t\\t\\t\\t'top', 'center', 'bottom'\\n\\t\\t\\t\\t\\t\\t```\\n\\t\\t\\t\\t\",\n                            constraint: function(e) {\n                                if (!s.Kn(e)) return !1;\n                                const t = e;\n                                return !(!s.hj(t.lineNumber) && !s.HD(t.lineNumber)) && !(!s.o8(t.at) && !s.HD(t.at))\n                            },\n                            schema: {\n                                type: \"object\",\n                                required: [\"lineNumber\"],\n                                properties: {\n                                    lineNumber: {\n                                        type: [\"number\", \"string\"]\n                                    },\n                                    at: {\n                                        type: \"string\",\n                                        enum: [\"top\", \"center\", \"bottom\"]\n                                    }\n                                }\n                            }\n                        }]\n                    }, e.RawAtArgument = {\n                        Top: \"top\",\n                        Center: \"center\",\n                        Bottom: \"bottom\"\n                    }\n                }(y || (y = {}));\n                class x {\n                    constructor(e) {\n                        e.addImplementation(1e4, \"code-editor\", ((e, t) => {\n                            const i = e.get(l.$).getFocusedCodeEditor();\n                            return !(!i || !i.hasTextFocus()) && this._runEditorCommand(e, i, t)\n                        })), e.addImplementation(1e3, \"generic-dom-input-textarea\", ((e, t) => {\n                            const i = document.activeElement;\n                            return !!(i && [\"input\", \"textarea\"].indexOf(i.tagName.toLowerCase()) >= 0) && (this.runDOMCommand(), !0)\n                        })), e.addImplementation(0, \"generic-dom\", ((e, t) => {\n                            const i = e.get(l.$).getActiveCodeEditor();\n                            return !!i && (i.focus(), this._runEditorCommand(e, i, t))\n                        }))\n                    }\n                    _runEditorCommand(e, t, i) {\n                        const n = this.runEditorCommand(e, t, i);\n                        return n || !0\n                    }\n                }! function(e) {\n                    class t extends b {\n                        constructor(e) {\n                            super(e), this._inSelectionMode = e.inSelectionMode\n                        }\n                        runCoreEditorCommand(e, t) {\n                            e.model.pushStackElement(), e.setCursorStates(t.source, 3, [p.P.moveTo(e, e.getPrimaryCursorState(), this._inSelectionMode, t.position, t.viewPosition)]), e.revealPrimaryCursor(t.source, !0)\n                        }\n                    }\n                    e.MoveTo = (0, a.fK)(new t({\n                        id: \"_moveTo\",\n                        inSelectionMode: !1,\n                        precondition: void 0\n                    })), e.MoveToSelect = (0, a.fK)(new t({\n                        id: \"_moveToSelect\",\n                        inSelectionMode: !0,\n                        precondition: void 0\n                    }));\n                    class i extends b {\n                        runCoreEditorCommand(e, t) {\n                            e.model.pushStackElement();\n                            const i = this._getColumnSelectResult(e, e.getPrimaryCursorState(), e.getCursorColumnSelectData(), t);\n                            e.setCursorStates(t.source, 3, i.viewStates.map((e => c.Vi.fromViewState(e)))), e.setCursorColumnSelectData({\n                                isReal: !0,\n                                fromViewLineNumber: i.fromLineNumber,\n                                fromViewVisualColumn: i.fromVisualColumn,\n                                toViewLineNumber: i.toLineNumber,\n                                toViewVisualColumn: i.toVisualColumn\n                            }), i.reversed ? e.revealTopMostCursor(t.source) : e.revealBottomMostCursor(t.source)\n                        }\n                    }\n                    e.ColumnSelect = (0, a.fK)(new class extends i {\n                        constructor() {\n                            super({\n                                id: \"columnSelect\",\n                                precondition: void 0\n                            })\n                        }\n                        _getColumnSelectResult(e, t, i, n) {\n                            const o = e.model.validatePosition(n.position),\n                                s = e.coordinatesConverter.validateViewPosition(new d.L(n.viewPosition.lineNumber, n.viewPosition.column), o);\n                            let r = n.doColumnSelect ? i.fromViewLineNumber : s.lineNumber,\n                                a = n.doColumnSelect ? i.fromViewVisualColumn : n.mouseColumn - 1;\n                            return u.columnSelect(e.cursorConfig, e, r, a, s.lineNumber, n.mouseColumn - 1)\n                        }\n                    }), e.CursorColumnSelectLeft = (0, a.fK)(new class extends i {\n                        constructor() {\n                            super({\n                                id: \"cursorColumnSelectLeft\",\n                                precondition: void 0,\n                                kbOpts: {\n                                    weight: 0,\n                                    kbExpr: m.u.textInputFocus,\n                                    primary: 3599,\n                                    linux: {\n                                        primary: 0\n                                    }\n                                }\n                            })\n                        }\n                        _getColumnSelectResult(e, t, i, n) {\n                            return u.columnSelectLeft(e.cursorConfig, e, i)\n                        }\n                    }), e.CursorColumnSelectRight = (0, a.fK)(new class extends i {\n                        constructor() {\n                            super({\n                                id: \"cursorColumnSelectRight\",\n                                precondition: void 0,\n                                kbOpts: {\n                                    weight: 0,\n                                    kbExpr: m.u.textInputFocus,\n                                    primary: 3601,\n                                    linux: {\n                                        primary: 0\n                                    }\n                                }\n                            })\n                        }\n                        _getColumnSelectResult(e, t, i, n) {\n                            return u.columnSelectRight(e.cursorConfig, e, i)\n                        }\n                    });\n                    class s extends i {\n                        constructor(e) {\n                            super(e), this._isPaged = e.isPaged\n                        }\n                        _getColumnSelectResult(e, t, i, n) {\n                            return u.columnSelectUp(e.cursorConfig, e, i, this._isPaged)\n                        }\n                    }\n                    e.CursorColumnSelectUp = (0, a.fK)(new s({\n                        isPaged: !1,\n                        id: \"cursorColumnSelectUp\",\n                        precondition: void 0,\n                        kbOpts: {\n                            weight: 0,\n                            kbExpr: m.u.textInputFocus,\n                            primary: 3600,\n                            linux: {\n                                primary: 0\n                            }\n                        }\n                    })), e.CursorColumnSelectPageUp = (0, a.fK)(new s({\n                        isPaged: !0,\n                        id: \"cursorColumnSelectPageUp\",\n                        precondition: void 0,\n                        kbOpts: {\n                            weight: 0,\n                            kbExpr: m.u.textInputFocus,\n                            primary: 3595,\n                            linux: {\n                                primary: 0\n                            }\n                        }\n                    }));\n                    class l extends i {\n                        constructor(e) {\n                            super(e), this._isPaged = e.isPaged\n                        }\n                        _getColumnSelectResult(e, t, i, n) {\n                            return u.columnSelectDown(e.cursorConfig, e, i, this._isPaged)\n                        }\n                    }\n                    e.CursorColumnSelectDown = (0, a.fK)(new l({\n                        isPaged: !1,\n                        id: \"cursorColumnSelectDown\",\n                        precondition: void 0,\n                        kbOpts: {\n                            weight: 0,\n                            kbExpr: m.u.textInputFocus,\n                            primary: 3602,\n                            linux: {\n                                primary: 0\n                            }\n                        }\n                    })), e.CursorColumnSelectPageDown = (0, a.fK)(new l({\n                        isPaged: !0,\n                        id: \"cursorColumnSelectPageDown\",\n                        precondition: void 0,\n                        kbOpts: {\n                            weight: 0,\n                            kbExpr: m.u.textInputFocus,\n                            primary: 3596,\n                            linux: {\n                                primary: 0\n                            }\n                        }\n                    }));\n                    class g extends b {\n                        constructor() {\n                            super({\n                                id: \"cursorMove\",\n                                precondition: void 0,\n                                description: p.N.description\n                            })\n                        }\n                        runCoreEditorCommand(e, t) {\n                            const i = p.N.parse(t);\n                            i && this._runCursorMove(e, t.source, i)\n                        }\n                        _runCursorMove(e, t, i) {\n                            e.model.pushStackElement(), e.setCursorStates(t, 3, g._move(e, e.getCursorStates(), i)), e.revealPrimaryCursor(t, !0)\n                        }\n                        static _move(e, t, i) {\n                            const n = i.select,\n                                o = i.value;\n                            switch (i.direction) {\n                                case 0:\n                                case 1:\n                                case 2:\n                                case 3:\n                                case 4:\n                                case 5:\n                                case 6:\n                                case 7:\n                                case 8:\n                                case 9:\n                                case 10:\n                                    return p.P.simpleMove(e, t, i.direction, n, o, i.unit);\n                                case 11:\n                                case 13:\n                                case 12:\n                                case 14:\n                                    return p.P.viewportMove(e, t, i.direction, n, o);\n                                default:\n                                    return null\n                            }\n                        }\n                    }\n                    e.CursorMoveImpl = g, e.CursorMove = (0, a.fK)(new g);\n                    class f extends b {\n                        constructor(e) {\n                            super(e), this._staticArgs = e.args\n                        }\n                        runCoreEditorCommand(e, t) {\n                            let i = this._staticArgs; - 1 === this._staticArgs.value && (i = {\n                                direction: this._staticArgs.direction,\n                                unit: this._staticArgs.unit,\n                                select: this._staticArgs.select,\n                                value: e.cursorConfig.pageSize\n                            }), e.model.pushStackElement(), e.setCursorStates(t.source, 3, p.P.simpleMove(e, e.getCursorStates(), i.direction, i.select, i.value, i.unit)), e.revealPrimaryCursor(t.source, !0)\n                        }\n                    }\n                    e.CursorLeft = (0, a.fK)(new f({\n                        args: {\n                            direction: 0,\n                            unit: 0,\n                            select: !1,\n                            value: 1\n                        },\n                        id: \"cursorLeft\",\n                        precondition: void 0,\n                        kbOpts: {\n                            weight: 0,\n                            kbExpr: m.u.textInputFocus,\n                            primary: 15,\n                            mac: {\n                                primary: 15,\n                                secondary: [288]\n                            }\n                        }\n                    })), e.CursorLeftSelect = (0, a.fK)(new f({\n                        args: {\n                            direction: 0,\n                            unit: 0,\n                            select: !0,\n                            value: 1\n                        },\n                        id: \"cursorLeftSelect\",\n                        precondition: void 0,\n                        kbOpts: {\n                            weight: 0,\n                            kbExpr: m.u.textInputFocus,\n                            primary: 1039\n                        }\n                    })), e.CursorRight = (0, a.fK)(new f({\n                        args: {\n                            direction: 1,\n                            unit: 0,\n                            select: !1,\n                            value: 1\n                        },\n                        id: \"cursorRight\",\n                        precondition: void 0,\n                        kbOpts: {\n                            weight: 0,\n                            kbExpr: m.u.textInputFocus,\n                            primary: 17,\n                            mac: {\n                                primary: 17,\n                                secondary: [292]\n                            }\n                        }\n                    })), e.CursorRightSelect = (0, a.fK)(new f({\n                        args: {\n                            direction: 1,\n                            unit: 0,\n                            select: !0,\n                            value: 1\n                        },\n                        id: \"cursorRightSelect\",\n                        precondition: void 0,\n                        kbOpts: {\n                            weight: 0,\n                            kbExpr: m.u.textInputFocus,\n                            primary: 1041\n                        }\n                    })), e.CursorUp = (0, a.fK)(new f({\n                        args: {\n                            direction: 2,\n                            unit: 2,\n                            select: !1,\n                            value: 1\n                        },\n                        id: \"cursorUp\",\n                        precondition: void 0,\n                        kbOpts: {\n                            weight: 0,\n                            kbExpr: m.u.textInputFocus,\n                            primary: 16,\n                            mac: {\n                                primary: 16,\n                                secondary: [302]\n                            }\n                        }\n                    })), e.CursorUpSelect = (0, a.fK)(new f({\n                        args: {\n                            direction: 2,\n                            unit: 2,\n                            select: !0,\n                            value: 1\n                        },\n                        id: \"cursorUpSelect\",\n                        precondition: void 0,\n                        kbOpts: {\n                            weight: 0,\n                            kbExpr: m.u.textInputFocus,\n                            primary: 1040,\n                            secondary: [3088],\n                            mac: {\n                                primary: 1040\n                            },\n                            linux: {\n                                primary: 1040\n                            }\n                        }\n                    })), e.CursorPageUp = (0, a.fK)(new f({\n                        args: {\n                            direction: 2,\n                            unit: 2,\n                            select: !1,\n                            value: -1\n                        },\n                        id: \"cursorPageUp\",\n                        precondition: void 0,\n                        kbOpts: {\n                            weight: 0,\n                            kbExpr: m.u.textInputFocus,\n                            primary: 11\n                        }\n                    })), e.CursorPageUpSelect = (0, a.fK)(new f({\n                        args: {\n                            direction: 2,\n                            unit: 2,\n                            select: !0,\n                            value: -1\n                        },\n                        id: \"cursorPageUpSelect\",\n                        precondition: void 0,\n                        kbOpts: {\n                            weight: 0,\n                            kbExpr: m.u.textInputFocus,\n                            primary: 1035\n                        }\n                    })), e.CursorDown = (0, a.fK)(new f({\n                        args: {\n                            direction: 3,\n                            unit: 2,\n                            select: !1,\n                            value: 1\n                        },\n                        id: \"cursorDown\",\n                        precondition: void 0,\n                        kbOpts: {\n                            weight: 0,\n                            kbExpr: m.u.textInputFocus,\n                            primary: 18,\n                            mac: {\n                                primary: 18,\n                                secondary: [300]\n                            }\n                        }\n                    })), e.CursorDownSelect = (0, a.fK)(new f({\n                        args: {\n                            direction: 3,\n                            unit: 2,\n                            select: !0,\n                            value: 1\n                        },\n                        id: \"cursorDownSelect\",\n                        precondition: void 0,\n                        kbOpts: {\n                            weight: 0,\n                            kbExpr: m.u.textInputFocus,\n                            primary: 1042,\n                            secondary: [3090],\n                            mac: {\n                                primary: 1042\n                            },\n                            linux: {\n                                primary: 1042\n                            }\n                        }\n                    })), e.CursorPageDown = (0, a.fK)(new f({\n                        args: {\n                            direction: 3,\n                            unit: 2,\n                            select: !1,\n                            value: -1\n                        },\n                        id: \"cursorPageDown\",\n                        precondition: void 0,\n                        kbOpts: {\n                            weight: 0,\n                            kbExpr: m.u.textInputFocus,\n                            primary: 12\n                        }\n                    })), e.CursorPageDownSelect = (0, a.fK)(new f({\n                        args: {\n                            direction: 3,\n                            unit: 2,\n                            select: !0,\n                            value: -1\n                        },\n                        id: \"cursorPageDownSelect\",\n                        precondition: void 0,\n                        kbOpts: {\n                            weight: 0,\n                            kbExpr: m.u.textInputFocus,\n                            primary: 1036\n                        }\n                    })), e.CreateCursor = (0, a.fK)(new class extends b {\n                        constructor() {\n                            super({\n                                id: \"createCursor\",\n                                precondition: void 0\n                            })\n                        }\n                        runCoreEditorCommand(e, t) {\n                            let i;\n                            i = t.wholeLine ? p.P.line(e, e.getPrimaryCursorState(), !1, t.position, t.viewPosition) : p.P.moveTo(e, e.getPrimaryCursorState(), !1, t.position, t.viewPosition);\n                            const n = e.getCursorStates();\n                            if (n.length > 1) {\n                                const o = i.modelState ? i.modelState.position : null,\n                                    s = i.viewState ? i.viewState.position : null;\n                                for (let i = 0, r = n.length; i < r; i++) {\n                                    const r = n[i];\n                                    if ((!o || r.modelState.selection.containsPosition(o)) && (!s || r.viewState.selection.containsPosition(s))) return n.splice(i, 1), e.model.pushStackElement(), void e.setCursorStates(t.source, 3, n)\n                                }\n                            }\n                            n.push(i), e.model.pushStackElement(), e.setCursorStates(t.source, 3, n)\n                        }\n                    }), e.LastCursorMoveToSelect = (0, a.fK)(new class extends b {\n                        constructor() {\n                            super({\n                                id: \"_lastCursorMoveToSelect\",\n                                precondition: void 0\n                            })\n                        }\n                        runCoreEditorCommand(e, t) {\n                            const i = e.getLastAddedCursorIndex(),\n                                n = e.getCursorStates(),\n                                o = n.slice(0);\n                            o[i] = p.P.moveTo(e, n[i], !0, t.position, t.viewPosition), e.model.pushStackElement(), e.setCursorStates(t.source, 3, o)\n                        }\n                    });\n                    class v extends b {\n                        constructor(e) {\n                            super(e), this._inSelectionMode = e.inSelectionMode\n                        }\n                        runCoreEditorCommand(e, t) {\n                            e.model.pushStackElement(), e.setCursorStates(t.source, 3, p.P.moveToBeginningOfLine(e, e.getCursorStates(), this._inSelectionMode)), e.revealPrimaryCursor(t.source, !0)\n                        }\n                    }\n                    e.CursorHome = (0, a.fK)(new v({\n                        inSelectionMode: !1,\n                        id: \"cursorHome\",\n                        precondition: void 0,\n                        kbOpts: {\n                            weight: 0,\n                            kbExpr: m.u.textInputFocus,\n                            primary: 14,\n                            mac: {\n                                primary: 14,\n                                secondary: [2063]\n                            }\n                        }\n                    })), e.CursorHomeSelect = (0, a.fK)(new v({\n                        inSelectionMode: !0,\n                        id: \"cursorHomeSelect\",\n                        precondition: void 0,\n                        kbOpts: {\n                            weight: 0,\n                            kbExpr: m.u.textInputFocus,\n                            primary: 1038,\n                            mac: {\n                                primary: 1038,\n                                secondary: [3087]\n                            }\n                        }\n                    }));\n                    class _ extends b {\n                        constructor(e) {\n                            super(e), this._inSelectionMode = e.inSelectionMode\n                        }\n                        runCoreEditorCommand(e, t) {\n                            e.model.pushStackElement(), e.setCursorStates(t.source, 3, this._exec(e.getCursorStates())), e.revealPrimaryCursor(t.source, !0)\n                        }\n                        _exec(e) {\n                            const t = [];\n                            for (let i = 0, n = e.length; i < n; i++) {\n                                const n = e[i],\n                                    o = n.modelState.position.lineNumber;\n                                t[i] = c.Vi.fromModelState(n.modelState.move(this._inSelectionMode, o, 1, 0))\n                            }\n                            return t\n                        }\n                    }\n                    e.CursorLineStart = (0, a.fK)(new _({\n                        inSelectionMode: !1,\n                        id: \"cursorLineStart\",\n                        precondition: void 0,\n                        kbOpts: {\n                            weight: 0,\n                            kbExpr: m.u.textInputFocus,\n                            primary: 0,\n                            mac: {\n                                primary: 287\n                            }\n                        }\n                    })), e.CursorLineStartSelect = (0, a.fK)(new _({\n                        inSelectionMode: !0,\n                        id: \"cursorLineStartSelect\",\n                        precondition: void 0,\n                        kbOpts: {\n                            weight: 0,\n                            kbExpr: m.u.textInputFocus,\n                            primary: 0,\n                            mac: {\n                                primary: 1311\n                            }\n                        }\n                    }));\n                    class C extends b {\n                        constructor(e) {\n                            super(e), this._inSelectionMode = e.inSelectionMode\n                        }\n                        runCoreEditorCommand(e, t) {\n                            e.model.pushStackElement(), e.setCursorStates(t.source, 3, p.P.moveToEndOfLine(e, e.getCursorStates(), this._inSelectionMode, t.sticky || !1)), e.revealPrimaryCursor(t.source, !0)\n                        }\n                    }\n                    e.CursorEnd = (0, a.fK)(new C({\n                        inSelectionMode: !1,\n                        id: \"cursorEnd\",\n                        precondition: void 0,\n                        kbOpts: {\n                            args: {\n                                sticky: !1\n                            },\n                            weight: 0,\n                            kbExpr: m.u.textInputFocus,\n                            primary: 13,\n                            mac: {\n                                primary: 13,\n                                secondary: [2065]\n                            }\n                        },\n                        description: {\n                            description: \"Go to End\",\n                            args: [{\n                                name: \"args\",\n                                schema: {\n                                    type: \"object\",\n                                    properties: {\n                                        sticky: {\n                                            description: n.N(\"stickydesc\", \"Stick to the end even when going to longer lines\"),\n                                            type: \"boolean\",\n                                            default: !1\n                                        }\n                                    }\n                                }\n                            }]\n                        }\n                    })), e.CursorEndSelect = (0, a.fK)(new C({\n                        inSelectionMode: !0,\n                        id: \"cursorEndSelect\",\n                        precondition: void 0,\n                        kbOpts: {\n                            args: {\n                                sticky: !1\n                            },\n                            weight: 0,\n                            kbExpr: m.u.textInputFocus,\n                            primary: 1037,\n                            mac: {\n                                primary: 1037,\n                                secondary: [3089]\n                            }\n                        },\n                        description: {\n                            description: \"Select to End\",\n                            args: [{\n                                name: \"args\",\n                                schema: {\n                                    type: \"object\",\n                                    properties: {\n                                        sticky: {\n                                            description: n.N(\"stickydesc\", \"Stick to the end even when going to longer lines\"),\n                                            type: \"boolean\",\n                                            default: !1\n                                        }\n                                    }\n                                }\n                            }]\n                        }\n                    }));\n                    class S extends b {\n                        constructor(e) {\n                            super(e), this._inSelectionMode = e.inSelectionMode\n                        }\n                        runCoreEditorCommand(e, t) {\n                            e.model.pushStackElement(), e.setCursorStates(t.source, 3, this._exec(e, e.getCursorStates())), e.revealPrimaryCursor(t.source, !0)\n                        }\n                        _exec(e, t) {\n                            const i = [];\n                            for (let n = 0, o = t.length; n < o; n++) {\n                                const o = t[n],\n                                    s = o.modelState.position.lineNumber,\n                                    r = e.model.getLineMaxColumn(s);\n                                i[n] = c.Vi.fromModelState(o.modelState.move(this._inSelectionMode, s, r, 0))\n                            }\n                            return i\n                        }\n                    }\n                    e.CursorLineEnd = (0, a.fK)(new S({\n                        inSelectionMode: !1,\n                        id: \"cursorLineEnd\",\n                        precondition: void 0,\n                        kbOpts: {\n                            weight: 0,\n                            kbExpr: m.u.textInputFocus,\n                            primary: 0,\n                            mac: {\n                                primary: 291\n                            }\n                        }\n                    })), e.CursorLineEndSelect = (0, a.fK)(new S({\n                        inSelectionMode: !0,\n                        id: \"cursorLineEndSelect\",\n                        precondition: void 0,\n                        kbOpts: {\n                            weight: 0,\n                            kbExpr: m.u.textInputFocus,\n                            primary: 0,\n                            mac: {\n                                primary: 1315\n                            }\n                        }\n                    }));\n                    class k extends b {\n                        constructor(e) {\n                            super(e), this._inSelectionMode = e.inSelectionMode\n                        }\n                        runCoreEditorCommand(e, t) {\n                            e.model.pushStackElement(), e.setCursorStates(t.source, 3, p.P.moveToBeginningOfBuffer(e, e.getCursorStates(), this._inSelectionMode)), e.revealPrimaryCursor(t.source, !0)\n                        }\n                    }\n                    e.CursorTop = (0, a.fK)(new k({\n                        inSelectionMode: !1,\n                        id: \"cursorTop\",\n                        precondition: void 0,\n                        kbOpts: {\n                            weight: 0,\n                            kbExpr: m.u.textInputFocus,\n                            primary: 2062,\n                            mac: {\n                                primary: 2064\n                            }\n                        }\n                    })), e.CursorTopSelect = (0, a.fK)(new k({\n                        inSelectionMode: !0,\n                        id: \"cursorTopSelect\",\n                        precondition: void 0,\n                        kbOpts: {\n                            weight: 0,\n                            kbExpr: m.u.textInputFocus,\n                            primary: 3086,\n                            mac: {\n                                primary: 3088\n                            }\n                        }\n                    }));\n                    class L extends b {\n                        constructor(e) {\n                            super(e), this._inSelectionMode = e.inSelectionMode\n                        }\n                        runCoreEditorCommand(e, t) {\n                            e.model.pushStackElement(), e.setCursorStates(t.source, 3, p.P.moveToEndOfBuffer(e, e.getCursorStates(), this._inSelectionMode)), e.revealPrimaryCursor(t.source, !0)\n                        }\n                    }\n                    e.CursorBottom = (0, a.fK)(new L({\n                        inSelectionMode: !1,\n                        id: \"cursorBottom\",\n                        precondition: void 0,\n                        kbOpts: {\n                            weight: 0,\n                            kbExpr: m.u.textInputFocus,\n                            primary: 2061,\n                            mac: {\n                                primary: 2066\n                            }\n                        }\n                    })), e.CursorBottomSelect = (0, a.fK)(new L({\n                        inSelectionMode: !0,\n                        id: \"cursorBottomSelect\",\n                        precondition: void 0,\n                        kbOpts: {\n                            weight: 0,\n                            kbExpr: m.u.textInputFocus,\n                            primary: 3085,\n                            mac: {\n                                primary: 3090\n                            }\n                        }\n                    }));\n                    class N extends b {\n                        constructor() {\n                            super({\n                                id: \"editorScroll\",\n                                precondition: void 0,\n                                description: w.description\n                            })\n                        }\n                        runCoreEditorCommand(e, t) {\n                            const i = w.parse(t);\n                            i && this._runEditorScroll(e, t.source, i)\n                        }\n                        _runEditorScroll(e, t, i) {\n                            const n = this._computeDesiredScrollTop(e, i);\n                            if (i.revealCursor) {\n                                const o = e.getCompletelyVisibleViewRangeAtScrollTop(n);\n                                e.setCursorStates(t, 3, [p.P.findPositionInViewportIfOutside(e, e.getPrimaryCursorState(), o, i.select)])\n                            }\n                            e.setScrollTop(n, 0)\n                        }\n                        _computeDesiredScrollTop(e, t) {\n                            if (1 === t.unit) {\n                                const i = e.getCompletelyVisibleViewRange(),\n                                    n = e.coordinatesConverter.convertViewRangeToModelRange(i);\n                                let o;\n                                o = 1 === t.direction ? Math.max(1, n.startLineNumber - t.value) : Math.min(e.model.getLineCount(), n.startLineNumber + t.value);\n                                const s = e.coordinatesConverter.convertModelPositionToViewPosition(new d.L(o, 1));\n                                return e.getVerticalOffsetForLineNumber(s.lineNumber)\n                            }\n                            let i;\n                            i = 3 === t.unit ? e.cursorConfig.pageSize * t.value : 4 === t.unit ? Math.round(e.cursorConfig.pageSize / 2) * t.value : t.value;\n                            const n = (1 === t.direction ? -1 : 1) * i;\n                            return e.getScrollTop() + n * e.cursorConfig.lineHeight\n                        }\n                    }\n                    e.EditorScrollImpl = N, e.EditorScroll = (0, a.fK)(new N), e.ScrollLineUp = (0, a.fK)(new class extends b {\n                        constructor() {\n                            super({\n                                id: \"scrollLineUp\",\n                                precondition: void 0,\n                                kbOpts: {\n                                    weight: 0,\n                                    kbExpr: m.u.textInputFocus,\n                                    primary: 2064,\n                                    mac: {\n                                        primary: 267\n                                    }\n                                }\n                            })\n                        }\n                        runCoreEditorCommand(t, i) {\n                            e.EditorScroll._runEditorScroll(t, i.source, {\n                                direction: 1,\n                                unit: 2,\n                                value: 1,\n                                revealCursor: !1,\n                                select: !1\n                            })\n                        }\n                    }), e.ScrollPageUp = (0, a.fK)(new class extends b {\n                        constructor() {\n                            super({\n                                id: \"scrollPageUp\",\n                                precondition: void 0,\n                                kbOpts: {\n                                    weight: 0,\n                                    kbExpr: m.u.textInputFocus,\n                                    primary: 2059,\n                                    win: {\n                                        primary: 523\n                                    },\n                                    linux: {\n                                        primary: 523\n                                    }\n                                }\n                            })\n                        }\n                        runCoreEditorCommand(t, i) {\n                            e.EditorScroll._runEditorScroll(t, i.source, {\n                                direction: 1,\n                                unit: 3,\n                                value: 1,\n                                revealCursor: !1,\n                                select: !1\n                            })\n                        }\n                    }), e.ScrollLineDown = (0, a.fK)(new class extends b {\n                        constructor() {\n                            super({\n                                id: \"scrollLineDown\",\n                                precondition: void 0,\n                                kbOpts: {\n                                    weight: 0,\n                                    kbExpr: m.u.textInputFocus,\n                                    primary: 2066,\n                                    mac: {\n                                        primary: 268\n                                    }\n                                }\n                            })\n                        }\n                        runCoreEditorCommand(t, i) {\n                            e.EditorScroll._runEditorScroll(t, i.source, {\n                                direction: 2,\n                                unit: 2,\n                                value: 1,\n                                revealCursor: !1,\n                                select: !1\n                            })\n                        }\n                    }), e.ScrollPageDown = (0, a.fK)(new class extends b {\n                        constructor() {\n                            super({\n                                id: \"scrollPageDown\",\n                                precondition: void 0,\n                                kbOpts: {\n                                    weight: 0,\n                                    kbExpr: m.u.textInputFocus,\n                                    primary: 2060,\n                                    win: {\n                                        primary: 524\n                                    },\n                                    linux: {\n                                        primary: 524\n                                    }\n                                }\n                            })\n                        }\n                        runCoreEditorCommand(t, i) {\n                            e.EditorScroll._runEditorScroll(t, i.source, {\n                                direction: 2,\n                                unit: 3,\n                                value: 1,\n                                revealCursor: !1,\n                                select: !1\n                            })\n                        }\n                    });\n                    class D extends b {\n                        constructor(e) {\n                            super(e), this._inSelectionMode = e.inSelectionMode\n                        }\n                        runCoreEditorCommand(e, t) {\n                            e.model.pushStackElement(), e.setCursorStates(t.source, 3, [p.P.word(e, e.getPrimaryCursorState(), this._inSelectionMode, t.position)]), e.revealPrimaryCursor(t.source, !0)\n                        }\n                    }\n                    e.WordSelect = (0, a.fK)(new D({\n                        inSelectionMode: !1,\n                        id: \"_wordSelect\",\n                        precondition: void 0\n                    })), e.WordSelectDrag = (0, a.fK)(new D({\n                        inSelectionMode: !0,\n                        id: \"_wordSelectDrag\",\n                        precondition: void 0\n                    })), e.LastCursorWordSelect = (0, a.fK)(new class extends b {\n                        constructor() {\n                            super({\n                                id: \"lastCursorWordSelect\",\n                                precondition: void 0\n                            })\n                        }\n                        runCoreEditorCommand(e, t) {\n                            const i = e.getLastAddedCursorIndex(),\n                                n = e.getCursorStates(),\n                                o = n.slice(0),\n                                s = n[i];\n                            o[i] = p.P.word(e, s, s.modelState.hasSelection(), t.position), e.model.pushStackElement(), e.setCursorStates(t.source, 3, o)\n                        }\n                    });\n                    class I extends b {\n                        constructor(e) {\n                            super(e), this._inSelectionMode = e.inSelectionMode\n                        }\n                        runCoreEditorCommand(e, t) {\n                            e.model.pushStackElement(), e.setCursorStates(t.source, 3, [p.P.line(e, e.getPrimaryCursorState(), this._inSelectionMode, t.position, t.viewPosition)]), e.revealPrimaryCursor(t.source, !1)\n                        }\n                    }\n                    e.LineSelect = (0, a.fK)(new I({\n                        inSelectionMode: !1,\n                        id: \"_lineSelect\",\n                        precondition: void 0\n                    })), e.LineSelectDrag = (0, a.fK)(new I({\n                        inSelectionMode: !0,\n                        id: \"_lineSelectDrag\",\n                        precondition: void 0\n                    }));\n                    class E extends b {\n                        constructor(e) {\n                            super(e), this._inSelectionMode = e.inSelectionMode\n                        }\n                        runCoreEditorCommand(e, t) {\n                            const i = e.getLastAddedCursorIndex(),\n                                n = e.getCursorStates(),\n                                o = n.slice(0);\n                            o[i] = p.P.line(e, n[i], this._inSelectionMode, t.position, t.viewPosition), e.model.pushStackElement(), e.setCursorStates(t.source, 3, o)\n                        }\n                    }\n                    e.LastCursorLineSelect = (0, a.fK)(new E({\n                        inSelectionMode: !1,\n                        id: \"lastCursorLineSelect\",\n                        precondition: void 0\n                    })), e.LastCursorLineSelectDrag = (0, a.fK)(new E({\n                        inSelectionMode: !0,\n                        id: \"lastCursorLineSelectDrag\",\n                        precondition: void 0\n                    })), e.ExpandLineSelection = (0, a.fK)(new class extends b {\n                        constructor() {\n                            super({\n                                id: \"expandLineSelection\",\n                                precondition: void 0,\n                                kbOpts: {\n                                    weight: 0,\n                                    kbExpr: m.u.textInputFocus,\n                                    primary: 2090\n                                }\n                            })\n                        }\n                        runCoreEditorCommand(e, t) {\n                            e.model.pushStackElement(), e.setCursorStates(t.source, 3, p.P.expandLineSelection(e, e.getCursorStates())), e.revealPrimaryCursor(t.source, !0)\n                        }\n                    }), e.CancelSelection = (0, a.fK)(new class extends b {\n                        constructor() {\n                            super({\n                                id: \"cancelSelection\",\n                                precondition: m.u.hasNonEmptySelection,\n                                kbOpts: {\n                                    weight: 0,\n                                    kbExpr: m.u.textInputFocus,\n                                    primary: 9,\n                                    secondary: [1033]\n                                }\n                            })\n                        }\n                        runCoreEditorCommand(e, t) {\n                            e.model.pushStackElement(), e.setCursorStates(t.source, 3, [p.P.cancelSelection(e, e.getPrimaryCursorState())]), e.revealPrimaryCursor(t.source, !0)\n                        }\n                    }), e.RemoveSecondaryCursors = (0, a.fK)(new class extends b {\n                        constructor() {\n                            super({\n                                id: \"removeSecondaryCursors\",\n                                precondition: m.u.hasMultipleSelections,\n                                kbOpts: {\n                                    weight: 1,\n                                    kbExpr: m.u.textInputFocus,\n                                    primary: 9,\n                                    secondary: [1033]\n                                }\n                            })\n                        }\n                        runCoreEditorCommand(e, t) {\n                            e.model.pushStackElement(), e.setCursorStates(t.source, 3, [e.getPrimaryCursorState()]), e.revealPrimaryCursor(t.source, !0), (0, r.i7)(n.N(\"removedCursor\", \"Removed secondary cursors\"))\n                        }\n                    }), e.RevealLine = (0, a.fK)(new class extends b {\n                        constructor() {\n                            super({\n                                id: \"revealLine\",\n                                precondition: void 0,\n                                description: y.description\n                            })\n                        }\n                        runCoreEditorCommand(e, t) {\n                            const i = t,\n                                n = i.lineNumber || 0;\n                            let o = \"number\" == typeof n ? n + 1 : parseInt(n) + 1;\n                            o < 1 && (o = 1);\n                            const s = e.model.getLineCount();\n                            o > s && (o = s);\n                            const r = new h.e(o, 1, o, e.model.getLineMaxColumn(o));\n                            let a = 0;\n                            if (i.at) switch (i.at) {\n                                case y.RawAtArgument.Top:\n                                    a = 3;\n                                    break;\n                                case y.RawAtArgument.Center:\n                                    a = 1;\n                                    break;\n                                case y.RawAtArgument.Bottom:\n                                    a = 4\n                            }\n                            const l = e.coordinatesConverter.convertModelRangeToViewRange(r);\n                            e.revealRange(t.source, !1, l, a, 0)\n                        }\n                    }), e.SelectAll = new class extends x {\n                        constructor() {\n                            super(a.Sq)\n                        }\n                        runDOMCommand() {\n                            o.vU && (document.activeElement.focus(), document.activeElement.select()), document.execCommand(\"selectAll\")\n                        }\n                        runEditorCommand(e, t, i) {\n                            const n = t._getViewModel();\n                            n && this.runCoreEditorCommand(n, i)\n                        }\n                        runCoreEditorCommand(e, t) {\n                            e.model.pushStackElement(), e.setCursorStates(\"keyboard\", 3, [p.P.selectAll(e, e.getPrimaryCursorState())])\n                        }\n                    }, e.SetSelection = (0, a.fK)(new class extends b {\n                        constructor() {\n                            super({\n                                id: \"setSelection\",\n                                precondition: void 0\n                            })\n                        }\n                        runCoreEditorCommand(e, t) {\n                            e.model.pushStackElement(), e.setCursorStates(t.source, 3, [c.Vi.fromModelSelection(t.selection)])\n                        }\n                    })\n                }(C || (C = {}));\n                const S = v.Ao.and(m.u.textInputFocus, m.u.columnSelection);\n\n                function k(e, t) {\n                    _.W.registerKeybindingRule({\n                        id: e,\n                        primary: t,\n                        when: S,\n                        weight: 1\n                    })\n                }\n\n                function L(e) {\n                    return e.register(), e\n                }\n                var N;\n                k(C.CursorColumnSelectLeft.id, 1039), k(C.CursorColumnSelectRight.id, 1041), k(C.CursorColumnSelectUp.id, 1040), k(C.CursorColumnSelectPageUp.id, 1035), k(C.CursorColumnSelectDown.id, 1042), k(C.CursorColumnSelectPageDown.id, 1036),\n                    function(e) {\n                        class t extends a._l {\n                            runEditorCommand(e, t, i) {\n                                const n = t._getViewModel();\n                                n && this.runCoreEditingCommand(t, n, i || {})\n                            }\n                        }\n                        e.CoreEditingCommand = t, e.LineBreakInsert = (0, a.fK)(new class extends t {\n                            constructor() {\n                                super({\n                                    id: \"lineBreakInsert\",\n                                    precondition: m.u.writable,\n                                    kbOpts: {\n                                        weight: 0,\n                                        kbExpr: m.u.textInputFocus,\n                                        primary: 0,\n                                        mac: {\n                                            primary: 301\n                                        }\n                                    }\n                                })\n                            }\n                            runCoreEditingCommand(e, t, i) {\n                                e.pushUndoStop(), e.executeCommands(this.id, f.u.lineBreakInsert(t.cursorConfig, t.model, t.getCursorStates().map((e => e.modelState.selection))))\n                            }\n                        }), e.Outdent = (0, a.fK)(new class extends t {\n                            constructor() {\n                                super({\n                                    id: \"outdent\",\n                                    precondition: m.u.writable,\n                                    kbOpts: {\n                                        weight: 0,\n                                        kbExpr: v.Ao.and(m.u.editorTextFocus, m.u.tabDoesNotMoveFocus),\n                                        primary: 1026\n                                    }\n                                })\n                            }\n                            runCoreEditingCommand(e, t, i) {\n                                e.pushUndoStop(), e.executeCommands(this.id, f.u.outdent(t.cursorConfig, t.model, t.getCursorStates().map((e => e.modelState.selection)))), e.pushUndoStop()\n                            }\n                        }), e.Tab = (0, a.fK)(new class extends t {\n                            constructor() {\n                                super({\n                                    id: \"tab\",\n                                    precondition: m.u.writable,\n                                    kbOpts: {\n                                        weight: 0,\n                                        kbExpr: v.Ao.and(m.u.editorTextFocus, m.u.tabDoesNotMoveFocus),\n                                        primary: 2\n                                    }\n                                })\n                            }\n                            runCoreEditingCommand(e, t, i) {\n                                e.pushUndoStop(), e.executeCommands(this.id, f.u.tab(t.cursorConfig, t.model, t.getCursorStates().map((e => e.modelState.selection)))), e.pushUndoStop()\n                            }\n                        }), e.DeleteLeft = (0, a.fK)(new class extends t {\n                            constructor() {\n                                super({\n                                    id: \"deleteLeft\",\n                                    precondition: void 0,\n                                    kbOpts: {\n                                        weight: 0,\n                                        kbExpr: m.u.textInputFocus,\n                                        primary: 1,\n                                        secondary: [1025],\n                                        mac: {\n                                            primary: 1,\n                                            secondary: [1025, 294, 257]\n                                        }\n                                    }\n                                })\n                            }\n                            runCoreEditingCommand(e, t, i) {\n                                const [n, o] = g.A.deleteLeft(t.getPrevEditOperationType(), t.cursorConfig, t.model, t.getCursorStates().map((e => e.modelState.selection)), t.getCursorAutoClosedCharacters());\n                                n && e.pushUndoStop(), e.executeCommands(this.id, o), t.setPrevEditOperationType(2)\n                            }\n                        }), e.DeleteRight = (0, a.fK)(new class extends t {\n                            constructor() {\n                                super({\n                                    id: \"deleteRight\",\n                                    precondition: void 0,\n                                    kbOpts: {\n                                        weight: 0,\n                                        kbExpr: m.u.textInputFocus,\n                                        primary: 20,\n                                        mac: {\n                                            primary: 20,\n                                            secondary: [290, 276]\n                                        }\n                                    }\n                                })\n                            }\n                            runCoreEditingCommand(e, t, i) {\n                                const [n, o] = g.A.deleteRight(t.getPrevEditOperationType(), t.cursorConfig, t.model, t.getCursorStates().map((e => e.modelState.selection)));\n                                n && e.pushUndoStop(), e.executeCommands(this.id, o), t.setPrevEditOperationType(3)\n                            }\n                        }), e.Undo = new class extends x {\n                            constructor() {\n                                super(a.n_)\n                            }\n                            runDOMCommand() {\n                                document.execCommand(\"undo\")\n                            }\n                            runEditorCommand(e, t, i) {\n                                if (t.hasModel() && !0 !== t.getOption(80)) return t.getModel().undo()\n                            }\n                        }, e.Redo = new class extends x {\n                            constructor() {\n                                super(a.kz)\n                            }\n                            runDOMCommand() {\n                                document.execCommand(\"redo\")\n                            }\n                            runEditorCommand(e, t, i) {\n                                if (t.hasModel() && !0 !== t.getOption(80)) return t.getModel().redo()\n                            }\n                        }\n                    }(N || (N = {}));\n                class D extends a.mY {\n                    constructor(e, t, i) {\n                        super({\n                            id: e,\n                            precondition: void 0,\n                            description: i\n                        }), this._handlerId = t\n                    }\n                    runCommand(e, t) {\n                        const i = e.get(l.$).getFocusedCodeEditor();\n                        i && i.trigger(\"keyboard\", this._handlerId, t)\n                    }\n                }\n\n                function I(e, t) {\n                    L(new D(\"default:\" + e, e)), L(new D(e, e, t))\n                }\n                const Lg = new Language(modifyState.language);\n                I(\"type\", {\n                    description: Lg.type(),\n                    args: [{\n                        name: \"args\",\n                        schema: {\n                            type: \"object\",\n                            required: [\"text\"],\n                            properties: {\n                                text: {\n                                    type: \"string\"\n                                }\n                            }\n                        }\n                    }]\n                }), I(\"replacePreviousChar\"), I(\"compositionType\"), I(\"compositionStart\"), I(\"compositionEnd\"), I(\"paste\"), I(\"cut\")\n            },\n            35715: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    Fz: () => v,\n                    Nl: () => m,\n                    RA: () => f,\n                    pd: () => n\n                });\n                var n, o = i(16268),\n                    s = i(65321),\n                    r = i(15393),\n                    a = i(4669),\n                    l = i(5976),\n                    c = i(81170),\n                    d = i(1432),\n                    h = i(97295),\n                    u = i(15887),\n                    g = i(50187),\n                    p = i(3860);\n                ! function(e) {\n                    e.Tap = \"-monaco-textarea-synthetic-tap\"\n                }(n || (n = {}));\n                const f = {\n                    forceCopyWithSyntaxHighlighting: !1\n                };\n                class m {\n                    constructor() {\n                        this._lastState = null\n                    }\n                    set(e, t) {\n                        this._lastState = {\n                            lastCopiedValue: e,\n                            data: t\n                        }\n                    }\n                    get(e) {\n                        return this._lastState && this._lastState.lastCopiedValue === e ? this._lastState.data : (this._lastState = null, null)\n                    }\n                }\n                m.INSTANCE = new m;\n                class v extends l.JT {\n                    constructor(e, t) {\n                        super(), this.textArea = t, this._onFocus = this._register(new a.Q5), this.onFocus = this._onFocus.event, this._onBlur = this._register(new a.Q5), this.onBlur = this._onBlur.event, this._onKeyDown = this._register(new a.Q5), this.onKeyDown = this._onKeyDown.event, this._onKeyUp = this._register(new a.Q5), this.onKeyUp = this._onKeyUp.event, this._onCut = this._register(new a.Q5), this.onCut = this._onCut.event, this._onPaste = this._register(new a.Q5), this.onPaste = this._onPaste.event, this._onType = this._register(new a.Q5), this.onType = this._onType.event, this._onCompositionStart = this._register(new a.Q5), this.onCompositionStart = this._onCompositionStart.event, this._onCompositionUpdate = this._register(new a.Q5), this.onCompositionUpdate = this._onCompositionUpdate.event, this._onCompositionEnd = this._register(new a.Q5), this.onCompositionEnd = this._onCompositionEnd.event, this._onSelectionChangeRequest = this._register(new a.Q5), this.onSelectionChangeRequest = this._onSelectionChangeRequest.event, this._host = e, this._textArea = this._register(new b(t)), this._asyncTriggerCut = this._register(new r.pY((() => this._onCut.fire()), 0)), this._asyncFocusGainWriteScreenReaderContent = this._register(new r.pY((() => this.writeScreenReaderContent(\"asyncFocusGain\")), 0)), this._textAreaState = u.un.EMPTY, this._selectionChangeListener = null, this.writeScreenReaderContent(\"ctor\"), this._hasFocus = !1, this._isDoingComposition = !1, this._nextCommand = 0;\n                        let i = null;\n                        this._register(s.mu(t.domNode, \"keydown\", (e => {\n                            (109 === e.keyCode || this._isDoingComposition && 1 === e.keyCode) && e.stopPropagation(), e.equals(9) && e.preventDefault(), i = e, this._onKeyDown.fire(e)\n                        }))), this._register(s.mu(t.domNode, \"keyup\", (e => {\n                            this._onKeyUp.fire(e)\n                        }))), this._register(s.nm(t.domNode, \"compositionstart\", (e => {\n                            if (u.al && console.log(\"[compositionstart]\", e), !this._isDoingComposition) {\n                                if (this._isDoingComposition = !0, d.dz && this._textAreaState.selectionStart === this._textAreaState.selectionEnd && this._textAreaState.selectionStart > 0 && this._textAreaState.value.substr(this._textAreaState.selectionStart - 1, 1) === e.data) {\n                                    if (i && i.equals(109) && (\"ArrowRight\" === i.code || \"ArrowLeft\" === i.code) || o.vU) return u.al && console.log(\"[compositionstart] Handling long press case on macOS + arrow key or Firefox\", e), this._textAreaState = new u.un(this._textAreaState.value, this._textAreaState.selectionStart - 1, this._textAreaState.selectionEnd, this._textAreaState.selectionStartPosition ? new g.L(this._textAreaState.selectionStartPosition.lineNumber, this._textAreaState.selectionStartPosition.column - 1) : null, this._textAreaState.selectionEndPosition), void this._onCompositionStart.fire({\n                                        revealDeltaColumns: -1\n                                    })\n                                }\n                                o.Dt ? this._onCompositionStart.fire({\n                                    revealDeltaColumns: -this._textAreaState.selectionStart\n                                }) : (this._setAndWriteTextAreaState(\"compositionstart\", u.un.EMPTY), this._onCompositionStart.fire({\n                                    revealDeltaColumns: 0\n                                }))\n                            }\n                        })));\n                        const l = e => {\n                                const t = this._textAreaState,\n                                    i = u.un.readFromTextArea(this._textArea);\n                                return [i, u.un.deduceInput(t, i, e)]\n                            },\n                            c = () => {\n                                const e = this._textAreaState,\n                                    t = u.un.readFromTextArea(this._textArea);\n                                return [t, u.un.deduceAndroidCompositionInput(e, t)]\n                            },\n                            p = e => {\n                                const t = this._textAreaState,\n                                    i = u.un.selectedText(e);\n                                return [i, {\n                                    text: i.value,\n                                    replacePrevCharCnt: t.selectionEnd - t.selectionStart,\n                                    replaceNextCharCnt: 0,\n                                    positionDelta: 0\n                                }]\n                            };\n                        this._register(s.nm(t.domNode, \"compositionupdate\", (e => {\n                            if (u.al && console.log(\"[compositionupdate]\", e), o.Dt) {\n                                const [t, i] = c();\n                                return this._textAreaState = t, this._onType.fire(i), void this._onCompositionUpdate.fire(e)\n                            }\n                            const [t, i] = p(e.data || \"\");\n                            this._textAreaState = t, this._onType.fire(i), this._onCompositionUpdate.fire(e)\n                        }))), this._register(s.nm(t.domNode, \"compositionend\", (e => {\n                            if (u.al && console.log(\"[compositionend]\", e), !this._isDoingComposition) return;\n                            if (this._isDoingComposition = !1, o.Dt) {\n                                const [e, t] = c();\n                                return this._textAreaState = e, this._onType.fire(t), void this._onCompositionEnd.fire()\n                            }\n                            const [t, i] = p(e.data || \"\");\n                            this._textAreaState = t, this._onType.fire(i), (o.i7 || o.vU) && (this._textAreaState = u.un.readFromTextArea(this._textArea)), this._onCompositionEnd.fire()\n                        }))), this._register(s.nm(t.domNode, \"input\", (() => {\n                            if (this._textArea.setIgnoreSelectionChangeTime(\"received input event\"), this._isDoingComposition) return;\n                            const [e, t] = l(d.dz);\n                            0 === t.replacePrevCharCnt && 1 === t.text.length && h.ZG(t.text.charCodeAt(0)) || (this._textAreaState = e, 0 === this._nextCommand ? \"\" === t.text && 0 === t.replacePrevCharCnt || this._onType.fire(t) : (\"\" === t.text && 0 === t.replacePrevCharCnt || this._firePaste(t.text, null), this._nextCommand = 0))\n                        }))), this._register(s.nm(t.domNode, \"cut\", (e => {\n                            this._textArea.setIgnoreSelectionChangeTime(\"received cut event\"), this._ensureClipboardGetsEditorSelection(e), this._asyncTriggerCut.schedule()\n                        }))), this._register(s.nm(t.domNode, \"copy\", (e => {\n                            this._ensureClipboardGetsEditorSelection(e)\n                        }))), this._register(s.nm(t.domNode, \"paste\", (e => {\n                            if (this._textArea.setIgnoreSelectionChangeTime(\"received paste event\"), _.canUseTextData(e)) {\n                                const [t, i] = _.getTextData(e);\n                                \"\" !== t && this._firePaste(t, i)\n                            } else this._textArea.getSelectionStart() !== this._textArea.getSelectionEnd() && this._setAndWriteTextAreaState(\"paste\", u.un.EMPTY), this._nextCommand = 1\n                        }))), this._register(s.nm(t.domNode, \"focus\", (() => {\n                            const e = this._hasFocus;\n                            this._setHasFocus(!0), o.G6 && !e && this._hasFocus && this._asyncFocusGainWriteScreenReaderContent.schedule()\n                        }))), this._register(s.nm(t.domNode, \"blur\", (() => {\n                            this._isDoingComposition && (this._isDoingComposition = !1, this.writeScreenReaderContent(\"blurWithoutCompositionEnd\"), this._onCompositionEnd.fire()), this._setHasFocus(!1)\n                        }))), this._register(s.nm(t.domNode, n.Tap, (() => {\n                            o.Dt && this._isDoingComposition && (this._isDoingComposition = !1, this.writeScreenReaderContent(\"tapWithoutCompositionEnd\"), this._onCompositionEnd.fire())\n                        })))\n                    }\n                    _installSelectionChangeListener() {\n                        let e = 0;\n                        return s.nm(document, \"selectionchange\", (t => {\n                            if (!this._hasFocus) return;\n                            if (this._isDoingComposition) return;\n                            if (!o.i7) return;\n                            const i = Date.now(),\n                                n = i - e;\n                            if (e = i, n < 5) return;\n                            const s = i - this._textArea.getIgnoreSelectionChangeTime();\n                            if (this._textArea.resetSelectionChangeTime(), s < 100) return;\n                            if (!this._textAreaState.selectionStartPosition || !this._textAreaState.selectionEndPosition) return;\n                            const r = this._textArea.getValue();\n                            if (this._textAreaState.value !== r) return;\n                            const a = this._textArea.getSelectionStart(),\n                                l = this._textArea.getSelectionEnd();\n                            if (this._textAreaState.selectionStart === a && this._textAreaState.selectionEnd === l) return;\n                            const c = this._textAreaState.deduceEditorPosition(a),\n                                d = this._host.deduceModelPosition(c[0], c[1], c[2]),\n                                h = this._textAreaState.deduceEditorPosition(l),\n                                u = this._host.deduceModelPosition(h[0], h[1], h[2]),\n                                g = new p.Y(d.lineNumber, d.column, u.lineNumber, u.column);\n                            this._onSelectionChangeRequest.fire(g)\n                        }))\n                    }\n                    dispose() {\n                        super.dispose(), this._selectionChangeListener && (this._selectionChangeListener.dispose(), this._selectionChangeListener = null)\n                    }\n                    focusTextArea() {\n                        this._setHasFocus(!0), this.refreshFocusState()\n                    }\n                    isFocused() {\n                        return this._hasFocus\n                    }\n                    refreshFocusState() {\n                        const e = s.Ay(this.textArea.domNode);\n                        e ? this._setHasFocus(e.activeElement === this.textArea.domNode) : s.Uw(this.textArea.domNode) ? this._setHasFocus(document.activeElement === this.textArea.domNode) : this._setHasFocus(!1)\n                    }\n                    _setHasFocus(e) {\n                        this._hasFocus !== e && (this._hasFocus = e, this._selectionChangeListener && (this._selectionChangeListener.dispose(), this._selectionChangeListener = null), this._hasFocus && (this._selectionChangeListener = this._installSelectionChangeListener()), this._hasFocus && this.writeScreenReaderContent(\"focusgain\"), this._hasFocus ? this._onFocus.fire() : this._onBlur.fire())\n                    }\n                    _setAndWriteTextAreaState(e, t) {\n                        this._hasFocus || (t = t.collapseSelection()), t.writeToTextArea(e, this._textArea, this._hasFocus), this._textAreaState = t\n                    }\n                    writeScreenReaderContent(e) {\n                        this._isDoingComposition || this._setAndWriteTextAreaState(e, this._host.getScreenReaderContent(this._textAreaState))\n                    }\n                    _ensureClipboardGetsEditorSelection(e) {\n                        const t = this._host.getDataToCopy(_.canUseTextData(e)),\n                            i = {\n                                version: 1,\n                                isFromEmptySelection: t.isFromEmptySelection,\n                                multicursorText: t.multicursorText,\n                                mode: t.mode\n                            };\n                        m.INSTANCE.set(o.vU ? t.text.replace(/\\r\\n/g, \"\\n\") : t.text, i), _.canUseTextData(e) ? _.setTextData(e, t.text, t.html, i) : this._setAndWriteTextAreaState(\"copy or cut\", u.un.selectedText(t.text))\n                    }\n                    _firePaste(e, t) {\n                        t || (t = m.INSTANCE.get(e)), this._onPaste.fire({\n                            text: e,\n                            metadata: t\n                        })\n                    }\n                }\n                class _ {\n                    static canUseTextData(e) {\n                        return !!e.clipboardData\n                    }\n                    static getTextData(e) {\n                        if (e.clipboardData) {\n                            e.preventDefault();\n                            const t = e.clipboardData.getData(c.vW.text);\n                            let i = null;\n                            const n = e.clipboardData.getData(\"vscode-editor-data\");\n                            if (\"string\" == typeof n) try {\n                                i = JSON.parse(n), 1 !== i.version && (i = null)\n                            } catch (e) {}\n                            return [t, i]\n                        }\n                        throw new Error(\"ClipboardEventUtils.getTextData: Cannot use text data!\")\n                    }\n                    static setTextData(e, t, i, n) {\n                        if (e.clipboardData) return e.clipboardData.setData(c.vW.text, t), \"string\" == typeof i && e.clipboardData.setData(\"text/html\", i), e.clipboardData.setData(\"vscode-editor-data\", JSON.stringify(n)), void e.preventDefault();\n                        throw new Error(\"ClipboardEventUtils.setTextData: Cannot use text data!\")\n                    }\n                }\n                class b extends l.JT {\n                    constructor(e) {\n                        super(), this._actual = e, this._ignoreSelectionChangeTime = 0\n                    }\n                    setIgnoreSelectionChangeTime(e) {\n                        this._ignoreSelectionChangeTime = Date.now()\n                    }\n                    getIgnoreSelectionChangeTime() {\n                        return this._ignoreSelectionChangeTime\n                    }\n                    resetSelectionChangeTime() {\n                        this._ignoreSelectionChangeTime = 0\n                    }\n                    getValue() {\n                        return this._actual.domNode.value\n                    }\n                    setValue(e, t) {\n                        const i = this._actual.domNode;\n                        i.value !== t && (this.setIgnoreSelectionChangeTime(\"setValue\"), i.value = t)\n                    }\n                    getSelectionStart() {\n                        return \"backward\" === this._actual.domNode.selectionDirection ? this._actual.domNode.selectionEnd : this._actual.domNode.selectionStart\n                    }\n                    getSelectionEnd() {\n                        return \"backward\" === this._actual.domNode.selectionDirection ? this._actual.domNode.selectionStart : this._actual.domNode.selectionEnd\n                    }\n                    setSelectionRange(e, t, i) {\n                        const n = this._actual.domNode;\n                        let r = null;\n                        const a = s.Ay(n);\n                        r = a ? a.activeElement : document.activeElement;\n                        const l = r === n,\n                            c = n.selectionStart,\n                            d = n.selectionEnd;\n                        if (l && c === t && d === i) o.vU && window.parent !== window && n.focus();\n                        else {\n                            if (l) return this.setIgnoreSelectionChangeTime(\"setSelectionRange\"), n.setSelectionRange(t, i), void(o.vU && window.parent !== window && n.focus());\n                            try {\n                                const e = s.vL(n);\n                                this.setIgnoreSelectionChangeTime(\"setSelectionRange\"), n.focus(), n.setSelectionRange(t, i), s._0(n, e)\n                            } catch (e) {}\n                        }\n                    }\n                }\n            },\n            15887: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    al: () => r,\n                    ee: () => l,\n                    un: () => a\n                });\n                var n = i(97295),\n                    o = i(50187),\n                    s = i(24314);\n                const r = !1;\n                class a {\n                    constructor(e, t, i, n, o) {\n                        this.value = e, this.selectionStart = t, this.selectionEnd = i, this.selectionStartPosition = n, this.selectionEndPosition = o\n                    }\n                    toString() {\n                        return \"[ <\" + this.value + \">, selectionStart: \" + this.selectionStart + \", selectionEnd: \" + this.selectionEnd + \"]\"\n                    }\n                    static readFromTextArea(e) {\n                        return new a(e.getValue(), e.getSelectionStart(), e.getSelectionEnd(), null, null)\n                    }\n                    collapseSelection() {\n                        return new a(this.value, this.value.length, this.value.length, null, null)\n                    }\n                    writeToTextArea(e, t, i) {\n                        r && console.log(\"writeToTextArea \" + e + \": \" + this.toString()), t.setValue(e, this.value), i && t.setSelectionRange(e, this.selectionStart, this.selectionEnd)\n                    }\n                    deduceEditorPosition(e) {\n                        if (e <= this.selectionStart) {\n                            const t = this.value.substring(e, this.selectionStart);\n                            return this._finishDeduceEditorPosition(this.selectionStartPosition, t, -1)\n                        }\n                        if (e >= this.selectionEnd) {\n                            const t = this.value.substring(this.selectionEnd, e);\n                            return this._finishDeduceEditorPosition(this.selectionEndPosition, t, 1)\n                        }\n                        const t = this.value.substring(this.selectionStart, e);\n                        if (-1 === t.indexOf(String.fromCharCode(8230))) return this._finishDeduceEditorPosition(this.selectionStartPosition, t, 1);\n                        const i = this.value.substring(e, this.selectionEnd);\n                        return this._finishDeduceEditorPosition(this.selectionEndPosition, i, -1)\n                    }\n                    _finishDeduceEditorPosition(e, t, i) {\n                        let n = 0,\n                            o = -1;\n                        for (; - 1 !== (o = t.indexOf(\"\\n\", o + 1));) n++;\n                        return [e, i * t.length, n]\n                    }\n                    static selectedText(e) {\n                        return new a(e, 0, e.length, null, null)\n                    }\n                    static deduceInput(e, t, i) {\n                        if (!e) return {\n                            text: \"\",\n                            replacePrevCharCnt: 0,\n                            replaceNextCharCnt: 0,\n                            positionDelta: 0\n                        };\n                        r && (console.log(\"------------------------deduceInput\"), console.log(\"PREVIOUS STATE: \" + e.toString()), console.log(\"CURRENT STATE: \" + t.toString()));\n                        let o = e.value,\n                            s = e.selectionStart,\n                            a = e.selectionEnd,\n                            l = t.value,\n                            c = t.selectionStart,\n                            d = t.selectionEnd;\n                        const h = o.substring(a),\n                            u = l.substring(d),\n                            g = n.P1(h, u);\n                        l = l.substring(0, l.length - g), o = o.substring(0, o.length - g);\n                        const p = o.substring(0, s),\n                            f = l.substring(0, c),\n                            m = n.Mh(p, f);\n                        if (l = l.substring(m), o = o.substring(m), c -= m, s -= m, d -= m, a -= m, r && (console.log(\"AFTER DIFFING PREVIOUS STATE: <\" + o + \">, selectionStart: \" + s + \", selectionEnd: \" + a), console.log(\"AFTER DIFFING CURRENT STATE: <\" + l + \">, selectionStart: \" + c + \", selectionEnd: \" + d)), i && c === d && o.length > 0) {\n                            let e = null;\n                            if (c === l.length ? l.startsWith(o) && (e = l.substring(o.length)) : l.endsWith(o) && (e = l.substring(0, l.length - o.length)), null !== e && e.length > 0 && (/\\uFE0F/.test(e) || n.RP(e))) return {\n                                text: e,\n                                replacePrevCharCnt: 0,\n                                replaceNextCharCnt: 0,\n                                positionDelta: 0\n                            }\n                        }\n                        if (c === d) {\n                            if (o === l && 0 === s && a === o.length && c === l.length && -1 === l.indexOf(\"\\n\") && n.xe(l)) return {\n                                text: \"\",\n                                replacePrevCharCnt: 0,\n                                replaceNextCharCnt: 0,\n                                positionDelta: 0\n                            };\n                            const e = p.length - m;\n                            return r && console.log(\"REMOVE PREVIOUS: \" + (p.length - m) + \" chars\"), {\n                                text: l,\n                                replacePrevCharCnt: e,\n                                replaceNextCharCnt: 0,\n                                positionDelta: 0\n                            }\n                        }\n                        return {\n                            text: l,\n                            replacePrevCharCnt: a - s,\n                            replaceNextCharCnt: 0,\n                            positionDelta: 0\n                        }\n                    }\n                    static deduceAndroidCompositionInput(e, t) {\n                        if (!e) return {\n                            text: \"\",\n                            replacePrevCharCnt: 0,\n                            replaceNextCharCnt: 0,\n                            positionDelta: 0\n                        };\n                        if (r && (console.log(\"------------------------deduceAndroidCompositionInput\"), console.log(\"PREVIOUS STATE: \" + e.toString()), console.log(\"CURRENT STATE: \" + t.toString())), e.value === t.value) return {\n                            text: \"\",\n                            replacePrevCharCnt: 0,\n                            replaceNextCharCnt: 0,\n                            positionDelta: t.selectionEnd - e.selectionEnd\n                        };\n                        const i = Math.min(n.Mh(e.value, t.value), e.selectionEnd),\n                            o = Math.min(n.P1(e.value, t.value), e.value.length - e.selectionEnd),\n                            s = e.value.substring(i, e.value.length - o),\n                            a = t.value.substring(i, t.value.length - o),\n                            l = e.selectionStart - i,\n                            c = e.selectionEnd - i,\n                            d = t.selectionStart - i,\n                            h = t.selectionEnd - i;\n                        return r && (console.log(\"AFTER DIFFING PREVIOUS STATE: <\" + s + \">, selectionStart: \" + l + \", selectionEnd: \" + c), console.log(\"AFTER DIFFING CURRENT STATE: <\" + a + \">, selectionStart: \" + d + \", selectionEnd: \" + h)), {\n                            text: a,\n                            replacePrevCharCnt: c,\n                            replaceNextCharCnt: s.length - c,\n                            positionDelta: h - a.length\n                        }\n                    }\n                }\n                a.EMPTY = new a(\"\", 0, 0, null, null);\n                class l {\n                    static _getPageOfLine(e, t) {\n                        return Math.floor((e - 1) / t)\n                    }\n                    static _getRangeForPage(e, t) {\n                        const i = e * t,\n                            n = i + 1,\n                            o = i + t;\n                        return new s.e(n, 1, o + 1, 1)\n                    }\n                    static fromEditorSelection(e, t, i, n, r) {\n                        const c = l._getPageOfLine(i.startLineNumber, n),\n                            d = l._getRangeForPage(c, n),\n                            h = l._getPageOfLine(i.endLineNumber, n),\n                            u = l._getRangeForPage(h, n),\n                            g = d.intersectRanges(new s.e(1, 1, i.startLineNumber, i.startColumn));\n                        let p = t.getValueInRange(g, 1);\n                        const f = t.getLineCount(),\n                            m = t.getLineMaxColumn(f),\n                            v = u.intersectRanges(new s.e(i.endLineNumber, i.endColumn, f, m));\n                        let _, b = t.getValueInRange(v, 1);\n                        if (c === h || c + 1 === h) _ = t.getValueInRange(i, 1);\n                        else {\n                            const e = d.intersectRanges(i),\n                                n = u.intersectRanges(i);\n                            _ = t.getValueInRange(e, 1) + String.fromCharCode(8230) + t.getValueInRange(n, 1)\n                        }\n                        if (r) {\n                            const e = 500;\n                            p.length > e && (p = p.substring(p.length - e, p.length)), b.length > e && (b = b.substring(0, e)), _.length > 2 * e && (_ = _.substring(0, e) + String.fromCharCode(8230) + _.substring(_.length - e, _.length))\n                        }\n                        return new a(p + _ + b, p.length, p.length + _.length, new o.L(i.startLineNumber, i.startColumn), new o.L(i.endLineNumber, i.endColumn))\n                    }\n                }\n            },\n            39925: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    yy: () => m,\n                    Dl: () => v,\n                    ZF: () => b,\n                    YQ: () => _\n                });\n                var n = i(97295),\n                    o = i(24314),\n                    s = i(71050),\n                    r = i(5976),\n                    a = i(16830),\n                    l = i(38819),\n                    c = i(91741),\n                    d = i(72065),\n                    h = i(65026),\n                    u = i(63580);\n                const g = (0, d.yh)(\"IEditorCancelService\"),\n                    p = new l.uy(\"cancellableOperation\", !1, (0, u.N)(\"cancellableOperation\", \"Whether the editor runs a cancellable operation, e.g. like 'Peek References'\"));\n                (0, h.z)(g, class {\n                    constructor() {\n                        this._tokens = new WeakMap\n                    }\n                    add(e, t) {\n                        let i, n = this._tokens.get(e);\n                        return n || (n = e.invokeWithinContext((e => ({\n                            key: p.bindTo(e.get(l.i6)),\n                            tokens: new c.S\n                        }))), this._tokens.set(e, n)), n.key.set(!0), i = n.tokens.push(t), () => {\n                            i && (i(), n.key.set(!n.tokens.isEmpty()), i = void 0)\n                        }\n                    }\n                    cancel(e) {\n                        const t = this._tokens.get(e);\n                        if (!t) return;\n                        const i = t.tokens.pop();\n                        i && (i.cancel(), t.key.set(!t.tokens.isEmpty()))\n                    }\n                }, !0);\n                class f extends s.A {\n                    constructor(e, t) {\n                        super(t), this.editor = e, this._unregister = e.invokeWithinContext((t => t.get(g).add(e, this)))\n                    }\n                    dispose() {\n                        this._unregister(), super.dispose()\n                    }\n                }(0, a.fK)(new class extends a._l {\n                    constructor() {\n                        super({\n                            id: \"editor.cancelOperation\",\n                            kbOpts: {\n                                weight: 100,\n                                primary: 9\n                            },\n                            precondition: p\n                        })\n                    }\n                    runEditorCommand(e, t) {\n                        e.get(g).cancel(t)\n                    }\n                });\n                class m {\n                    constructor(e, t) {\n                        if (this.flags = t, 0 != (1 & this.flags)) {\n                            const t = e.getModel();\n                            this.modelVersionId = t ? n.WU(\"{0}#{1}\", t.uri.toString(), t.getVersionId()) : null\n                        } else this.modelVersionId = null;\n                        0 != (4 & this.flags) ? this.position = e.getPosition() : this.position = null, 0 != (2 & this.flags) ? this.selection = e.getSelection() : this.selection = null, 0 != (8 & this.flags) ? (this.scrollLeft = e.getScrollLeft(), this.scrollTop = e.getScrollTop()) : (this.scrollLeft = -1, this.scrollTop = -1)\n                    }\n                    _equals(e) {\n                        if (!(e instanceof m)) return !1;\n                        const t = e;\n                        return this.modelVersionId === t.modelVersionId && (this.scrollLeft === t.scrollLeft && this.scrollTop === t.scrollTop && (!(!this.position && t.position || this.position && !t.position || this.position && t.position && !this.position.equals(t.position)) && !(!this.selection && t.selection || this.selection && !t.selection || this.selection && t.selection && !this.selection.equalsRange(t.selection))))\n                    }\n                    validate(e) {\n                        return this._equals(new m(e, this.flags))\n                    }\n                }\n                class v extends f {\n                    constructor(e, t, i, n) {\n                        super(e, n), this._listener = new r.SL, 4 & t && this._listener.add(e.onDidChangeCursorPosition((e => {\n                            i && o.e.containsPosition(i, e.position) || this.cancel()\n                        }))), 2 & t && this._listener.add(e.onDidChangeCursorSelection((e => {\n                            i && o.e.containsRange(i, e.selection) || this.cancel()\n                        }))), 8 & t && this._listener.add(e.onDidScrollChange((e => this.cancel()))), 1 & t && (this._listener.add(e.onDidChangeModel((e => this.cancel()))), this._listener.add(e.onDidChangeModelContent((e => this.cancel()))))\n                    }\n                    dispose() {\n                        this._listener.dispose(), super.dispose()\n                    }\n                }\n                class _ extends s.A {\n                    constructor(e, t) {\n                        super(t), this._listener = e.onDidChangeContent((() => this.cancel()))\n                    }\n                    dispose() {\n                        this._listener.dispose(), super.dispose()\n                    }\n                }\n                class b {\n                    constructor(e, t, i) {\n                        this._visiblePosition = e, this._visiblePositionScrollDelta = t, this._cursorPosition = i\n                    }\n                    static capture(e) {\n                        let t = null,\n                            i = 0;\n                        if (0 !== e.getScrollTop()) {\n                            const n = e.getVisibleRanges();\n                            if (n.length > 0) {\n                                t = n[0].getStartPosition();\n                                const o = e.getTopForPosition(t.lineNumber, t.column);\n                                i = e.getScrollTop() - o\n                            }\n                        }\n                        return new b(t, i, e.getPosition())\n                    }\n                    restore(e) {\n                        if (this._visiblePosition) {\n                            const t = e.getTopForPosition(this._visiblePosition.lineNumber, this._visiblePosition.column);\n                            e.setScrollTop(t + this._visiblePositionScrollDelta)\n                        }\n                    }\n                    restoreRelativeVerticalPositionOfCursor(e) {\n                        const t = e.getPosition();\n                        if (!this._cursorPosition || !t) return;\n                        const i = e.getTopForLineNumber(t.lineNumber) - e.getTopForLineNumber(this._cursorPosition.lineNumber);\n                        e.setScrollTop(e.getScrollTop() + i)\n                    }\n                }\n            },\n            43256: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    $: () => Ee\n                });\n                var n = i(65321);\n                var o = Object.hasOwnProperty,\n                    s = Object.setPrototypeOf,\n                    r = Object.isFrozen,\n                    a = Object.getPrototypeOf,\n                    l = Object.getOwnPropertyDescriptor,\n                    c = Object.freeze,\n                    d = Object.seal,\n                    h = Object.create,\n                    u = \"undefined\" != typeof Reflect && Reflect,\n                    g = u.apply,\n                    p = u.construct;\n                g || (g = function(e, t, i) {\n                    return e.apply(t, i)\n                }), c || (c = function(e) {\n                    return e\n                }), d || (d = function(e) {\n                    return e\n                }), p || (p = function(e, t) {\n                    return new(Function.prototype.bind.apply(e, [null].concat(function(e) {\n                        if (Array.isArray(e)) {\n                            for (var t = 0, i = Array(e.length); t < e.length; t++) i[t] = e[t];\n                            return i\n                        }\n                        return Array.from(e)\n                    }(t))))\n                });\n                var f, m = L(Array.prototype.forEach),\n                    v = L(Array.prototype.pop),\n                    _ = L(Array.prototype.push),\n                    b = L(String.prototype.toLowerCase),\n                    w = L(String.prototype.match),\n                    y = L(String.prototype.replace),\n                    C = L(String.prototype.indexOf),\n                    x = L(String.prototype.trim),\n                    S = L(RegExp.prototype.test),\n                    k = (f = TypeError, function() {\n                        for (var e = arguments.length, t = Array(e), i = 0; i < e; i++) t[i] = arguments[i];\n                        return p(f, t)\n                    });\n\n                function L(e) {\n                    return function(t) {\n                        for (var i = arguments.length, n = Array(i > 1 ? i - 1 : 0), o = 1; o < i; o++) n[o - 1] = arguments[o];\n                        return g(e, t, n)\n                    }\n                }\n\n                function N(e, t) {\n                    s && s(e, null);\n                    for (var i = t.length; i--;) {\n                        var n = t[i];\n                        if (\"string\" == typeof n) {\n                            var o = b(n);\n                            o !== n && (r(t) || (t[i] = o), n = o)\n                        }\n                        e[n] = !0\n                    }\n                    return e\n                }\n\n                function D(e) {\n                    var t = h(null),\n                        i = void 0;\n                    for (i in e) g(o, e, [i]) && (t[i] = e[i]);\n                    return t\n                }\n\n                function I(e, t) {\n                    for (; null !== e;) {\n                        var i = l(e, t);\n                        if (i) {\n                            if (i.get) return L(i.get);\n                            if (\"function\" == typeof i.value) return L(i.value)\n                        }\n                        e = a(e)\n                    }\n                    return function(e) {\n                        return console.warn(\"fallback value for\", e), null\n                    }\n                }\n                var E = c([\"a\", \"abbr\", \"acronym\", \"address\", \"area\", \"article\", \"aside\", \"audio\", \"b\", \"bdi\", \"bdo\", \"big\", \"blink\", \"blockquote\", \"body\", \"br\", \"button\", \"canvas\", \"caption\", \"center\", \"cite\", \"code\", \"col\", \"colgroup\", \"content\", \"data\", \"datalist\", \"dd\", \"decorator\", \"del\", \"details\", \"dfn\", \"dialog\", \"dir\", \"div\", \"dl\", \"dt\", \"element\", \"em\", \"fieldset\", \"figcaption\", \"figure\", \"font\", \"footer\", \"form\", \"h1\", \"h2\", \"h3\", \"h4\", \"h5\", \"h6\", \"head\", \"header\", \"hgroup\", \"hr\", \"html\", \"i\", \"img\", \"input\", \"ins\", \"kbd\", \"label\", \"legend\", \"li\", \"main\", \"map\", \"mark\", \"marquee\", \"menu\", \"menuitem\", \"meter\", \"nav\", \"nobr\", \"ol\", \"optgroup\", \"option\", \"output\", \"p\", \"picture\", \"pre\", \"progress\", \"q\", \"rp\", \"rt\", \"ruby\", \"s\", \"samp\", \"section\", \"select\", \"shadow\", \"small\", \"source\", \"spacer\", \"span\", \"strike\", \"strong\", \"style\", \"sub\", \"summary\", \"sup\", \"table\", \"tbody\", \"td\", \"template\", \"textarea\", \"tfoot\", \"th\", \"thead\", \"time\", \"tr\", \"track\", \"tt\", \"u\", \"ul\", \"var\", \"video\", \"wbr\"]),\n                    T = c([\"svg\", \"a\", \"altglyph\", \"altglyphdef\", \"altglyphitem\", \"animatecolor\", \"animatemotion\", \"animatetransform\", \"circle\", \"clippath\", \"defs\", \"desc\", \"ellipse\", \"filter\", \"font\", \"g\", \"glyph\", \"glyphref\", \"hkern\", \"image\", \"line\", \"lineargradient\", \"marker\", \"mask\", \"metadata\", \"mpath\", \"path\", \"pattern\", \"polygon\", \"polyline\", \"radialgradient\", \"rect\", \"stop\", \"style\", \"switch\", \"symbol\", \"text\", \"textpath\", \"title\", \"tref\", \"tspan\", \"view\", \"vkern\"]),\n                    M = c([\"feBlend\", \"feColorMatrix\", \"feComponentTransfer\", \"feComposite\", \"feConvolveMatrix\", \"feDiffuseLighting\", \"feDisplacementMap\", \"feDistantLight\", \"feFlood\", \"feFuncA\", \"feFuncB\", \"feFuncG\", \"feFuncR\", \"feGaussianBlur\", \"feMerge\", \"feMergeNode\", \"feMorphology\", \"feOffset\", \"fePointLight\", \"feSpecularLighting\", \"feSpotLight\", \"feTile\", \"feTurbulence\"]),\n                    A = c([\"animate\", \"color-profile\", \"cursor\", \"discard\", \"fedropshadow\", \"feimage\", \"font-face\", \"font-face-format\", \"font-face-name\", \"font-face-src\", \"font-face-uri\", \"foreignobject\", \"hatch\", \"hatchpath\", \"mesh\", \"meshgradient\", \"meshpatch\", \"meshrow\", \"missing-glyph\", \"script\", \"set\", \"solidcolor\", \"unknown\", \"use\"]),\n                    O = c([\"math\", \"menclose\", \"merror\", \"mfenced\", \"mfrac\", \"mglyph\", \"mi\", \"mlabeledtr\", \"mmultiscripts\", \"mn\", \"mo\", \"mover\", \"mpadded\", \"mphantom\", \"mroot\", \"mrow\", \"ms\", \"mspace\", \"msqrt\", \"mstyle\", \"msub\", \"msup\", \"msubsup\", \"mtable\", \"mtd\", \"mtext\", \"mtr\", \"munder\", \"munderover\"]),\n                    P = c([\"maction\", \"maligngroup\", \"malignmark\", \"mlongdiv\", \"mscarries\", \"mscarry\", \"msgroup\", \"mstack\", \"msline\", \"msrow\", \"semantics\", \"annotation\", \"annotation-xml\", \"mprescripts\", \"none\"]),\n                    R = c([\"#text\"]),\n                    F = c([\"accept\", \"action\", \"align\", \"alt\", \"autocapitalize\", \"autocomplete\", \"autopictureinpicture\", \"autoplay\", \"background\", \"bgcolor\", \"border\", \"capture\", \"cellpadding\", \"cellspacing\", \"checked\", \"cite\", \"class\", \"clear\", \"color\", \"cols\", \"colspan\", \"controls\", \"controlslist\", \"coords\", \"crossorigin\", \"datetime\", \"decoding\", \"default\", \"dir\", \"disabled\", \"disablepictureinpicture\", \"disableremoteplayback\", \"download\", \"draggable\", \"enctype\", \"enterkeyhint\", \"face\", \"for\", \"headers\", \"height\", \"hidden\", \"high\", \"href\", \"hreflang\", \"id\", \"inputmode\", \"integrity\", \"ismap\", \"kind\", \"label\", \"lang\", \"list\", \"loading\", \"loop\", \"low\", \"max\", \"maxlength\", \"media\", \"method\", \"min\", \"minlength\", \"multiple\", \"muted\", \"name\", \"noshade\", \"novalidate\", \"nowrap\", \"open\", \"optimum\", \"pattern\", \"placeholder\", \"playsinline\", \"poster\", \"preload\", \"pubdate\", \"radiogroup\", \"readonly\", \"rel\", \"required\", \"rev\", \"reversed\", \"role\", \"rows\", \"rowspan\", \"spellcheck\", \"scope\", \"selected\", \"shape\", \"size\", \"sizes\", \"span\", \"srclang\", \"start\", \"src\", \"srcset\", \"step\", \"style\", \"summary\", \"tabindex\", \"title\", \"translate\", \"type\", \"usemap\", \"valign\", \"value\", \"width\", \"xmlns\", \"slot\"]),\n                    B = c([\"accent-height\", \"accumulate\", \"additive\", \"alignment-baseline\", \"ascent\", \"attributename\", \"attributetype\", \"azimuth\", \"basefrequency\", \"baseline-shift\", \"begin\", \"bias\", \"by\", \"class\", \"clip\", \"clippathunits\", \"clip-path\", \"clip-rule\", \"color\", \"color-interpolation\", \"color-interpolation-filters\", \"color-profile\", \"color-rendering\", \"cx\", \"cy\", \"d\", \"dx\", \"dy\", \"diffuseconstant\", \"direction\", \"display\", \"divisor\", \"dur\", \"edgemode\", \"elevation\", \"end\", \"fill\", \"fill-opacity\", \"fill-rule\", \"filter\", \"filterunits\", \"flood-color\", \"flood-opacity\", \"font-family\", \"font-size\", \"font-size-adjust\", \"font-stretch\", \"font-style\", \"font-variant\", \"font-weight\", \"fx\", \"fy\", \"g1\", \"g2\", \"glyph-name\", \"glyphref\", \"gradientunits\", \"gradienttransform\", \"height\", \"href\", \"id\", \"image-rendering\", \"in\", \"in2\", \"k\", \"k1\", \"k2\", \"k3\", \"k4\", \"kerning\", \"keypoints\", \"keysplines\", \"keytimes\", \"lang\", \"lengthadjust\", \"letter-spacing\", \"kernelmatrix\", \"kernelunitlength\", \"lighting-color\", \"local\", \"marker-end\", \"marker-mid\", \"marker-start\", \"markerheight\", \"markerunits\", \"markerwidth\", \"maskcontentunits\", \"maskunits\", \"max\", \"mask\", \"media\", \"method\", \"mode\", \"min\", \"name\", \"numoctaves\", \"offset\", \"operator\", \"opacity\", \"order\", \"orient\", \"orientation\", \"origin\", \"overflow\", \"paint-order\", \"path\", \"pathlength\", \"patterncontentunits\", \"patterntransform\", \"patternunits\", \"points\", \"preservealpha\", \"preserveaspectratio\", \"primitiveunits\", \"r\", \"rx\", \"ry\", \"radius\", \"refx\", \"refy\", \"repeatcount\", \"repeatdur\", \"restart\", \"result\", \"rotate\", \"scale\", \"seed\", \"shape-rendering\", \"specularconstant\", \"specularexponent\", \"spreadmethod\", \"startoffset\", \"stddeviation\", \"stitchtiles\", \"stop-color\", \"stop-opacity\", \"stroke-dasharray\", \"stroke-dashoffset\", \"stroke-linecap\", \"stroke-linejoin\", \"stroke-miterlimit\", \"stroke-opacity\", \"stroke\", \"stroke-width\", \"style\", \"surfacescale\", \"systemlanguage\", \"tabindex\", \"targetx\", \"targety\", \"transform\", \"text-anchor\", \"text-decoration\", \"text-rendering\", \"textlength\", \"type\", \"u1\", \"u2\", \"unicode\", \"values\", \"viewbox\", \"visibility\", \"version\", \"vert-adv-y\", \"vert-origin-x\", \"vert-origin-y\", \"width\", \"word-spacing\", \"wrap\", \"writing-mode\", \"xchannelselector\", \"ychannelselector\", \"x\", \"x1\", \"x2\", \"xmlns\", \"y\", \"y1\", \"y2\", \"z\", \"zoomandpan\"]),\n                    V = c([\"accent\", \"accentunder\", \"align\", \"bevelled\", \"close\", \"columnsalign\", \"columnlines\", \"columnspan\", \"denomalign\", \"depth\", \"dir\", \"display\", \"displaystyle\", \"encoding\", \"fence\", \"frame\", \"height\", \"href\", \"id\", \"largeop\", \"length\", \"linethickness\", \"lspace\", \"lquote\", \"mathbackground\", \"mathcolor\", \"mathsize\", \"mathvariant\", \"maxsize\", \"minsize\", \"movablelimits\", \"notation\", \"numalign\", \"open\", \"rowalign\", \"rowlines\", \"rowspacing\", \"rowspan\", \"rspace\", \"rquote\", \"scriptlevel\", \"scriptminsize\", \"scriptsizemultiplier\", \"selection\", \"separator\", \"separators\", \"stretchy\", \"subscriptshift\", \"supscriptshift\", \"symmetric\", \"voffset\", \"width\", \"xmlns\"]),\n                    W = c([\"xlink:href\", \"xml:id\", \"xlink:title\", \"xml:space\", \"xmlns:xlink\"]),\n                    H = d(/\\{\\{[\\s\\S]*|[\\s\\S]*\\}\\}/gm),\n                    z = d(/<%[\\s\\S]*|[\\s\\S]*%>/gm),\n                    j = d(/^data-[\\-\\w.\\u00B7-\\uFFFF]/),\n                    U = d(/^aria-[\\-\\w]+$/),\n                    $ = d(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp):|[^a-z]|[a-z+.\\-]+(?:[^a-z+.\\-:]|$))/i),\n                    K = d(/^(?:\\w+script|data):/i),\n                    q = d(/[\\u0000-\\u0020\\u00A0\\u1680\\u180E\\u2000-\\u2029\\u205F\\u3000]/g),\n                    Z = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function(e) {\n                        return typeof e\n                    } : function(e) {\n                        return e && \"function\" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? \"symbol\" : typeof e\n                    };\n\n                function G(e) {\n                    if (Array.isArray(e)) {\n                        for (var t = 0, i = Array(e.length); t < e.length; t++) i[t] = e[t];\n                        return i\n                    }\n                    return Array.from(e)\n                }\n                var Y = function() {\n                    return \"undefined\" == typeof window ? null : window\n                };\n                var Q = function e() {\n                    var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : Y(),\n                        i = function(t) {\n                            return e(t)\n                        };\n                    if (i.version = \"2.3.1\", i.removed = [], !t || !t.document || 9 !== t.document.nodeType) return i.isSupported = !1, i;\n                    var n = t.document,\n                        o = t.document,\n                        s = t.DocumentFragment,\n                        r = t.HTMLTemplateElement,\n                        a = t.Node,\n                        l = t.Element,\n                        d = t.NodeFilter,\n                        h = t.NamedNodeMap,\n                        u = void 0 === h ? t.NamedNodeMap || t.MozNamedAttrMap : h,\n                        g = t.Text,\n                        p = t.Comment,\n                        f = t.DOMParser,\n                        L = t.trustedTypes,\n                        Q = l.prototype,\n                        X = I(Q, \"cloneNode\"),\n                        J = I(Q, \"nextSibling\"),\n                        ee = I(Q, \"childNodes\"),\n                        te = I(Q, \"parentNode\");\n                    if (\"function\" == typeof r) {\n                        var ie = o.createElement(\"template\");\n                        ie.content && ie.content.ownerDocument && (o = ie.content.ownerDocument)\n                    }\n                    var ne = function(e, t) {\n                            if (\"object\" !== (void 0 === e ? \"undefined\" : Z(e)) || \"function\" != typeof e.createPolicy) return null;\n                            var i = null,\n                                n = \"data-tt-policy-suffix\";\n                            t.currentScript && t.currentScript.hasAttribute(n) && (i = t.currentScript.getAttribute(n));\n                            var o = \"dompurify\" + (i ? \"#\" + i : \"\");\n                            try {\n                                return e.createPolicy(o, {\n                                    createHTML: function(e) {\n                                        return e\n                                    }\n                                })\n                            } catch (e) {\n                                return console.warn(\"TrustedTypes policy \" + o + \" could not be created.\"), null\n                            }\n                        }(L, n),\n                        oe = ne && Re ? ne.createHTML(\"\") : \"\",\n                        se = o,\n                        re = se.implementation,\n                        ae = se.createNodeIterator,\n                        le = se.createDocumentFragment,\n                        ce = se.getElementsByTagName,\n                        de = n.importNode,\n                        he = {};\n                    try {\n                        he = D(o).documentMode ? o.documentMode : {}\n                    } catch (e) {}\n                    var ue = {};\n                    i.isSupported = \"function\" == typeof te && re && void 0 !== re.createHTMLDocument && 9 !== he;\n                    var ge = H,\n                        pe = z,\n                        fe = j,\n                        me = U,\n                        ve = K,\n                        _e = q,\n                        be = $,\n                        we = null,\n                        ye = N({}, [].concat(G(E), G(T), G(M), G(O), G(R))),\n                        Ce = null,\n                        xe = N({}, [].concat(G(F), G(B), G(V), G(W))),\n                        Se = null,\n                        ke = null,\n                        Le = !0,\n                        Ne = !0,\n                        De = !1,\n                        Ie = !1,\n                        Ee = !1,\n                        Te = !1,\n                        Me = !1,\n                        Ae = !1,\n                        Oe = !1,\n                        Pe = !0,\n                        Re = !1,\n                        Fe = !0,\n                        Be = !0,\n                        Ve = !1,\n                        We = {},\n                        He = null,\n                        ze = N({}, [\"annotation-xml\", \"audio\", \"colgroup\", \"desc\", \"foreignobject\", \"head\", \"iframe\", \"math\", \"mi\", \"mn\", \"mo\", \"ms\", \"mtext\", \"noembed\", \"noframes\", \"noscript\", \"plaintext\", \"script\", \"style\", \"svg\", \"template\", \"thead\", \"title\", \"video\", \"xmp\"]),\n                        je = null,\n                        Ue = N({}, [\"audio\", \"video\", \"img\", \"source\", \"image\", \"track\"]),\n                        $e = null,\n                        Ke = N({}, [\"alt\", \"class\", \"for\", \"id\", \"label\", \"name\", \"pattern\", \"placeholder\", \"role\", \"summary\", \"title\", \"value\", \"style\", \"xmlns\"]),\n                        qe = \"https://www.w3.org/1998/Math/MathML\",\n                        Ze = \"https://www.w3.org/2000/svg\",\n                        Ge = \"https://www.w3.org/1999/xhtml\",\n                        Ye = Ge,\n                        Qe = !1,\n                        Xe = null,\n                        Je = o.createElement(\"form\"),\n                        et = function(e) {\n                            Xe && Xe === e || (e && \"object\" === (void 0 === e ? \"undefined\" : Z(e)) || (e = {}), e = D(e), we = \"ALLOWED_TAGS\" in e ? N({}, e.ALLOWED_TAGS) : ye, Ce = \"ALLOWED_ATTR\" in e ? N({}, e.ALLOWED_ATTR) : xe, $e = \"ADD_URI_SAFE_ATTR\" in e ? N(D(Ke), e.ADD_URI_SAFE_ATTR) : Ke, je = \"ADD_DATA_URI_TAGS\" in e ? N(D(Ue), e.ADD_DATA_URI_TAGS) : Ue, He = \"FORBID_CONTENTS\" in e ? N({}, e.FORBID_CONTENTS) : ze, Se = \"FORBID_TAGS\" in e ? N({}, e.FORBID_TAGS) : {}, ke = \"FORBID_ATTR\" in e ? N({}, e.FORBID_ATTR) : {}, We = \"USE_PROFILES\" in e && e.USE_PROFILES, Le = !1 !== e.ALLOW_ARIA_ATTR, Ne = !1 !== e.ALLOW_DATA_ATTR, De = e.ALLOW_UNKNOWN_PROTOCOLS || !1, Ie = e.SAFE_FOR_TEMPLATES || !1, Ee = e.WHOLE_DOCUMENT || !1, Ae = e.RETURN_DOM || !1, Oe = e.RETURN_DOM_FRAGMENT || !1, Pe = !1 !== e.RETURN_DOM_IMPORT, Re = e.RETURN_TRUSTED_TYPE || !1, Me = e.FORCE_BODY || !1, Fe = !1 !== e.SANITIZE_DOM, Be = !1 !== e.KEEP_CONTENT, Ve = e.IN_PLACE || !1, be = e.ALLOWED_URI_REGEXP || be, Ye = e.NAMESPACE || Ge, Ie && (Ne = !1), Oe && (Ae = !0), We && (we = N({}, [].concat(G(R))), Ce = [], !0 === We.html && (N(we, E), N(Ce, F)), !0 === We.svg && (N(we, T), N(Ce, B), N(Ce, W)), !0 === We.svgFilters && (N(we, M), N(Ce, B), N(Ce, W)), !0 === We.mathMl && (N(we, O), N(Ce, V), N(Ce, W))), e.ADD_TAGS && (we === ye && (we = D(we)), N(we, e.ADD_TAGS)), e.ADD_ATTR && (Ce === xe && (Ce = D(Ce)), N(Ce, e.ADD_ATTR)), e.ADD_URI_SAFE_ATTR && N($e, e.ADD_URI_SAFE_ATTR), e.FORBID_CONTENTS && (He === ze && (He = D(He)), N(He, e.FORBID_CONTENTS)), Be && (we[\"#text\"] = !0), Ee && N(we, [\"html\", \"head\", \"body\"]), we.table && (N(we, [\"tbody\"]), delete Se.tbody), c && c(e), Xe = e)\n                        },\n                        tt = N({}, [\"mi\", \"mo\", \"mn\", \"ms\", \"mtext\"]),\n                        it = N({}, [\"foreignobject\", \"desc\", \"title\", \"annotation-xml\"]),\n                        nt = N({}, T);\n                    N(nt, M), N(nt, A);\n                    var ot = N({}, O);\n                    N(ot, P);\n                    var st = function(e) {\n                            _(i.removed, {\n                                element: e\n                            });\n                            try {\n                                e.parentNode.removeChild(e)\n                            } catch (t) {\n                                try {\n                                    e.outerHTML = oe\n                                } catch (t) {\n                                    e.remove()\n                                }\n                            }\n                        },\n                        rt = function(e, t) {\n                            try {\n                                _(i.removed, {\n                                    attribute: t.getAttributeNode(e),\n                                    from: t\n                                })\n                            } catch (e) {\n                                _(i.removed, {\n                                    attribute: null,\n                                    from: t\n                                })\n                            }\n                            if (t.removeAttribute(e), \"is\" === e && !Ce[e])\n                                if (Ae || Oe) try {\n                                    st(t)\n                                } catch (e) {} else try {\n                                    t.setAttribute(e, \"\")\n                                } catch (e) {}\n                        },\n                        at = function(e) {\n                            var t = void 0,\n                                i = void 0;\n                            if (Me) e = \"<remove></remove>\" + e;\n                            else {\n                                var n = w(e, /^[\\r\\n\\t ]+/);\n                                i = n && n[0]\n                            }\n                            var s = ne ? ne.createHTML(e) : e;\n                            if (Ye === Ge) try {\n                                t = (new f).parseFromString(s, \"text/html\")\n                            } catch (e) {}\n                            if (!t || !t.documentElement) {\n                                t = re.createDocument(Ye, \"template\", null);\n                                try {\n                                    t.documentElement.innerHTML = Qe ? \"\" : s\n                                } catch (e) {}\n                            }\n                            var r = t.body || t.documentElement;\n                            return e && i && r.insertBefore(o.createTextNode(i), r.childNodes[0] || null), Ye === Ge ? ce.call(t, Ee ? \"html\" : \"body\")[0] : Ee ? t.documentElement : r\n                        },\n                        lt = function(e) {\n                            return ae.call(e.ownerDocument || e, e, d.SHOW_ELEMENT | d.SHOW_COMMENT | d.SHOW_TEXT, null, !1)\n                        },\n                        ct = function(e) {\n                            return \"object\" === (void 0 === a ? \"undefined\" : Z(a)) ? e instanceof a : e && \"object\" === (void 0 === e ? \"undefined\" : Z(e)) && \"number\" == typeof e.nodeType && \"string\" == typeof e.nodeName\n                        },\n                        dt = function(e, t, n) {\n                            ue[e] && m(ue[e], (function(e) {\n                                e.call(i, t, n, Xe)\n                            }))\n                        },\n                        ht = function(e) {\n                            var t, n = void 0;\n                            if (dt(\"beforeSanitizeElements\", e, null), !((t = e) instanceof g || t instanceof p || \"string\" == typeof t.nodeName && \"string\" == typeof t.textContent && \"function\" == typeof t.removeChild && t.attributes instanceof u && \"function\" == typeof t.removeAttribute && \"function\" == typeof t.setAttribute && \"string\" == typeof t.namespaceURI && \"function\" == typeof t.insertBefore)) return st(e), !0;\n                            if (w(e.nodeName, /[\\u0080-\\uFFFF]/)) return st(e), !0;\n                            var o = b(e.nodeName);\n                            if (dt(\"uponSanitizeElement\", e, {\n                                    tagName: o,\n                                    allowedTags: we\n                                }), !ct(e.firstElementChild) && (!ct(e.content) || !ct(e.content.firstElementChild)) && S(/<[/\\w]/g, e.innerHTML) && S(/<[/\\w]/g, e.textContent)) return st(e), !0;\n                            if (\"select\" === o && S(/<template/i, e.innerHTML)) return st(e), !0;\n                            if (!we[o] || Se[o]) {\n                                if (Be && !He[o]) {\n                                    var s = te(e) || e.parentNode,\n                                        r = ee(e) || e.childNodes;\n                                    if (r && s)\n                                        for (var a = r.length - 1; a >= 0; --a) s.insertBefore(X(r[a], !0), J(e))\n                                }\n                                return st(e), !0\n                            }\n                            return e instanceof l && ! function(e) {\n                                var t = te(e);\n                                t && t.tagName || (t = {\n                                    namespaceURI: Ge,\n                                    tagName: \"template\"\n                                });\n                                var i = b(e.tagName),\n                                    n = b(t.tagName);\n                                if (e.namespaceURI === Ze) return t.namespaceURI === Ge ? \"svg\" === i : t.namespaceURI === qe ? \"svg\" === i && (\"annotation-xml\" === n || tt[n]) : Boolean(nt[i]);\n                                if (e.namespaceURI === qe) return t.namespaceURI === Ge ? \"math\" === i : t.namespaceURI === Ze ? \"math\" === i && it[n] : Boolean(ot[i]);\n                                if (e.namespaceURI === Ge) {\n                                    if (t.namespaceURI === Ze && !it[n]) return !1;\n                                    if (t.namespaceURI === qe && !tt[n]) return !1;\n                                    var o = N({}, [\"title\", \"style\", \"font\", \"a\", \"script\"]);\n                                    return !ot[i] && (o[i] || !nt[i])\n                                }\n                                return !1\n                            }(e) ? (st(e), !0) : \"noscript\" !== o && \"noembed\" !== o || !S(/<\\/no(script|embed)/i, e.innerHTML) ? (Ie && 3 === e.nodeType && (n = e.textContent, n = y(n, ge, \" \"), n = y(n, pe, \" \"), e.textContent !== n && (_(i.removed, {\n                                element: e.cloneNode()\n                            }), e.textContent = n)), dt(\"afterSanitizeElements\", e, null), !1) : (st(e), !0)\n                        },\n                        ut = function(e, t, i) {\n                            if (Fe && (\"id\" === t || \"name\" === t) && (i in o || i in Je)) return !1;\n                            if (Ne && !ke[t] && S(fe, t));\n                            else if (Le && S(me, t));\n                            else {\n                                if (!Ce[t] || ke[t]) return !1;\n                                if ($e[t]);\n                                else if (S(be, y(i, _e, \"\")));\n                                else if (\"src\" !== t && \"xlink:href\" !== t && \"href\" !== t || \"script\" === e || 0 !== C(i, \"data:\") || !je[e]) {\n                                    if (De && !S(ve, y(i, _e, \"\")));\n                                    else if (i) return !1\n                                } else;\n                            }\n                            return !0\n                        },\n                        gt = function(e) {\n                            var t = void 0,\n                                n = void 0,\n                                o = void 0,\n                                s = void 0;\n                            dt(\"beforeSanitizeAttributes\", e, null);\n                            var r = e.attributes;\n                            if (r) {\n                                var a = {\n                                    attrName: \"\",\n                                    attrValue: \"\",\n                                    keepAttr: !0,\n                                    allowedAttributes: Ce\n                                };\n                                for (s = r.length; s--;) {\n                                    var l = t = r[s],\n                                        c = l.name,\n                                        d = l.namespaceURI;\n                                    if (n = x(t.value), o = b(c), a.attrName = o, a.attrValue = n, a.keepAttr = !0, a.forceKeepAttr = void 0, dt(\"uponSanitizeAttribute\", e, a), n = a.attrValue, !a.forceKeepAttr && (rt(c, e), a.keepAttr))\n                                        if (S(/\\/>/i, n)) rt(c, e);\n                                        else {\n                                            Ie && (n = y(n, ge, \" \"), n = y(n, pe, \" \"));\n                                            var h = e.nodeName.toLowerCase();\n                                            if (ut(h, o, n)) try {\n                                                d ? e.setAttributeNS(d, c, n) : e.setAttribute(c, n), v(i.removed)\n                                            } catch (e) {}\n                                        }\n                                }\n                                dt(\"afterSanitizeAttributes\", e, null)\n                            }\n                        },\n                        pt = function e(t) {\n                            var i = void 0,\n                                n = lt(t);\n                            for (dt(\"beforeSanitizeShadowDOM\", t, null); i = n.nextNode();) dt(\"uponSanitizeShadowNode\", i, null), ht(i) || (i.content instanceof s && e(i.content), gt(i));\n                            dt(\"afterSanitizeShadowDOM\", t, null)\n                        };\n                    return i.sanitize = function(e, o) {\n                        var r = void 0,\n                            l = void 0,\n                            c = void 0,\n                            d = void 0,\n                            h = void 0;\n                        if ((Qe = !e) && (e = \"\\x3c!--\\x3e\"), \"string\" != typeof e && !ct(e)) {\n                            if (\"function\" != typeof e.toString) throw k(\"toString is not a function\");\n                            if (\"string\" != typeof(e = e.toString())) throw k(\"dirty is not a string, aborting\")\n                        }\n                        if (!i.isSupported) {\n                            if (\"object\" === Z(t.toStaticHTML) || \"function\" == typeof t.toStaticHTML) {\n                                if (\"string\" == typeof e) return t.toStaticHTML(e);\n                                if (ct(e)) return t.toStaticHTML(e.outerHTML)\n                            }\n                            return e\n                        }\n                        if (Te || et(o), i.removed = [], \"string\" == typeof e && (Ve = !1), Ve);\n                        else if (e instanceof a) 1 === (l = (r = at(\"\\x3c!----\\x3e\")).ownerDocument.importNode(e, !0)).nodeType && \"BODY\" === l.nodeName || \"HTML\" === l.nodeName ? r = l : r.appendChild(l);\n                        else {\n                            if (!Ae && !Ie && !Ee && -1 === e.indexOf(\"<\")) return ne && Re ? ne.createHTML(e) : e;\n                            if (!(r = at(e))) return Ae ? null : oe\n                        }\n                        r && Me && st(r.firstChild);\n                        for (var u = lt(Ve ? e : r); c = u.nextNode();) 3 === c.nodeType && c === d || ht(c) || (c.content instanceof s && pt(c.content), gt(c), d = c);\n                        if (d = null, Ve) return e;\n                        if (Ae) {\n                            if (Oe)\n                                for (h = le.call(r.ownerDocument); r.firstChild;) h.appendChild(r.firstChild);\n                            else h = r;\n                            return Pe && (h = de.call(n, h, !0)), h\n                        }\n                        var g = Ee ? r.outerHTML : r.innerHTML;\n                        return Ie && (g = y(g, ge, \" \"), g = y(g, pe, \" \")), ne && Re ? ne.createHTML(g) : g\n                    }, i.setConfig = function(e) {\n                        et(e), Te = !0\n                    }, i.clearConfig = function() {\n                        Xe = null, Te = !1\n                    }, i.isValidAttribute = function(e, t, i) {\n                        Xe || et({});\n                        var n = b(e),\n                            o = b(t);\n                        return ut(n, o, i)\n                    }, i.addHook = function(e, t) {\n                        \"function\" == typeof t && (ue[e] = ue[e] || [], _(ue[e], t))\n                    }, i.removeHook = function(e) {\n                        ue[e] && v(ue[e])\n                    }, i.removeHooks = function(e) {\n                        ue[e] && (ue[e] = [])\n                    }, i.removeAllHooks = function() {\n                        ue = {}\n                    }, i\n                }();\n                Q.version, Q.isSupported;\n                const X = Q.sanitize,\n                    J = (Q.setConfig, Q.clearConfig, Q.isValidAttribute, Q.addHook),\n                    ee = Q.removeHook;\n                Q.removeHooks, Q.removeAllHooks;\n                var te = i(4850),\n                    ie = i(48764),\n                    ne = i(23938),\n                    oe = i(56811),\n                    se = i(15393),\n                    re = i(71050),\n                    ae = i(17301),\n                    le = i(4669),\n                    ce = i(59365),\n                    de = i(21212),\n                    he = i(44742),\n                    ue = i(5976),\n                    ge = i(33720),\n                    pe = i(23897),\n                    fe = i(66663),\n                    me = i(36248),\n                    ve = i(95935),\n                    _e = i(97295),\n                    be = i(70666);\n\n                function we(e, t = {}, i = {}) {\n                    var o;\n                    const s = new ue.SL;\n                    let r = !1;\n                    const a = s.add(new re.A),\n                        l = (0, ie.az)(t),\n                        c = function(t) {\n                            let i;\n                            try {\n                                i = (0, pe.Q)(decodeURIComponent(t))\n                            } catch (e) {}\n                            return i ? (i = (0, me.rs)(i, (t => e.uris && e.uris[t] ? be.o.revive(e.uris[t]) : void 0)), encodeURIComponent(JSON.stringify(i))) : t\n                        },\n                        d = function(t, i) {\n                            const n = e.uris && e.uris[t];\n                            if (!n) return t;\n                            let o = be.o.revive(n);\n                            return i ? t.startsWith(fe.lg.data + \":\") ? t : fe.Gi.asBrowserUri(o).toString(!0) : be.o.parse(t).toString() === o.toString() ? t : (o.query && (o = o.with({\n                                query: c(o.query)\n                            })), o.toString())\n                        };\n                    let h;\n                    const u = new Promise((e => h = e)),\n                        g = new ge.Th;\n                    if (g.image = (e, i, n) => {\n                            let o = [],\n                                s = [];\n                            if (e) {\n                                ({\n                                    href: e,\n                                    dimensions: o\n                                } = (0, ce.v1)(e)), e = d(e, !0);\n                                try {\n                                    const i = be.o.parse(e);\n                                    t.baseUrl && i.scheme === fe.lg.file && (e = (0, ve.i3)(t.baseUrl, e).toString())\n                                } catch (e) {}\n                                s.push(`src=\"${e}\"`)\n                            }\n                            return n && s.push(`alt=\"${n}\"`), i && s.push(`title=\"${i}\"`), o.length && (s = s.concat(o)), \"<img \" + s.join(\" \") + \">\"\n                        }, g.link = (i, n, o) => {\n                            if (i === o && (o = (0, ce.oR)(o)), i = d(i, !1), t.baseUrl) {\n                                /^\\w[\\w\\d+.-]*:/.test(i) || (i = (0, ve.i3)(t.baseUrl, i).toString())\n                            }\n                            return n = (0, ce.oR)(n), !(i = (0, ce.oR)(i)) || i.match(/^data:|javascript:/i) || i.match(/^command:/i) && !e.isTrusted || i.match(/^command:(\\/\\/\\/)?_workbench\\.downloadResource/i) ? o : `<a href=\"#\" data-href=\"${i=i.replace(/&/g,\"&amp;\").replace(/</g,\"&lt;\").replace(/>/g,\"&gt;\").replace(/\"/g,\"&quot;\").replace(/'/g,\"&#39;\")}\" title=\"${n||i}\">${o}</a>`\n                        }, g.paragraph = e => `<p>${e}</p>`, t.codeBlockRenderer && (g.code = (e, i) => {\n                            const o = t.codeBlockRenderer(i, e),\n                                s = he.a.nextId();\n                            return (0, se.eP)(Promise.all([o, u]), a.token).then((e => {\n                                var i;\n                                if (!r && e) {\n                                    const o = l.querySelector(`div[data-code=\"${s}\"]`);\n                                    o && n.mc(o, e[0]), null === (i = t.asyncRenderCallback) || void 0 === i || i.call(t)\n                                }\n                            })).catch((() => {})), `<div class=\"code\" data-code=\"${s}\">${(0,_e.YU)(e)}</div>`\n                        }), t.actionHandler) {\n                        const e = t.actionHandler.disposables.add(new te.Y(l, \"click\")),\n                            i = t.actionHandler.disposables.add(new te.Y(l, \"auxclick\"));\n                        t.actionHandler.disposables.add(le.ju.any(e.event, i.event)((e => {\n                            const i = new ne.n(e);\n                            if (!i.leftButton && !i.middleButton) return;\n                            let n = i.target;\n                            if (\"A\" === n.tagName || (n = n.parentElement, n && \"A\" === n.tagName)) try {\n                                const e = n.dataset.href;\n                                e && t.actionHandler.callback(e, i)\n                            } catch (e) {\n                                (0, ae.dL)(e)\n                            } finally {\n                                i.preventDefault()\n                            }\n                        })))\n                    }\n                    e.supportHtml || (i.sanitizer = t => (e.isTrusted ? t.match(/^(<span[^>]+>)|(<\\/\\s*span>)$/) : void 0) ? t : \"\", i.sanitize = !0, i.silent = !0), i.renderer = g;\n                    let p = null !== (o = e.value) && void 0 !== o ? o : \"\";\n                    p.length > 1e5 && (p = `${p.substr(0,1e5)}…`), e.supportThemeIcons && (p = (0, de.f$)(p));\n                    let f = ge.Qc(p, i);\n                    if (e.supportThemeIcons) {\n                        f = (0, oe.T)(f).map((e => \"string\" == typeof e ? e : e.outerHTML)).join(\"\")\n                    }\n                    if (l.innerHTML = function(e, t) {\n                            const {\n                                config: i,\n                                allowedSchemes: n\n                            } = function(e) {\n                                const t = [fe.lg.http, fe.lg.https, fe.lg.mailto, fe.lg.data, fe.lg.file, fe.lg.vscodeFileResource, fe.lg.vscodeRemote, fe.lg.vscodeRemoteResource];\n                                e.isTrusted && t.push(fe.lg.command);\n                                return {\n                                    config: {\n                                        ALLOWED_TAGS: [\"ul\", \"li\", \"p\", \"b\", \"i\", \"code\", \"blockquote\", \"ol\", \"h1\", \"h2\", \"h3\", \"h4\", \"h5\", \"h6\", \"hr\", \"em\", \"pre\", \"table\", \"thead\", \"tbody\", \"tr\", \"th\", \"td\", \"div\", \"del\", \"a\", \"strong\", \"br\", \"img\", \"span\"],\n                                        ALLOWED_ATTR: [\"href\", \"data-href\", \"target\", \"title\", \"src\", \"alt\", \"class\", \"style\", \"data-code\", \"width\", \"height\", \"align\"],\n                                        ALLOW_UNKNOWN_PROTOCOLS: !0\n                                    },\n                                    allowedSchemes: t\n                                }\n                            }(e);\n                            J(\"uponSanitizeAttribute\", ((e, t) => {\n                                if (\"style\" !== t.attrName && \"class\" !== t.attrName);\n                                else {\n                                    if (\"SPAN\" === e.tagName) {\n                                        if (\"style\" === t.attrName) return void(t.keepAttr = /^(color\\:#[0-9a-fA-F]+;)?(background-color\\:#[0-9a-fA-F]+;)?$/.test(t.attrValue));\n                                        if (\"class\" === t.attrName) return void(t.keepAttr = /^codicon codicon-[a-z\\-]+( codicon-modifier-[a-z\\-]+)?$/.test(t.attrValue))\n                                    }\n                                    t.keepAttr = !1\n                                }\n                            }));\n                            const o = document.createElement(\"a\");\n                            J(\"afterSanitizeAttributes\", (e => {\n                                for (const t of [\"href\", \"src\"]) e.hasAttribute(t) && (o.href = e.getAttribute(t), n.includes(o.protocol.replace(/:$/, \"\")) || e.removeAttribute(t))\n                            }));\n                            try {\n                                return X(t, Object.assign(Object.assign({}, i), {\n                                    RETURN_TRUSTED_TYPE: !0\n                                }))\n                            } finally {\n                                ee(\"uponSanitizeAttribute\"), ee(\"afterSanitizeAttributes\")\n                            }\n                        }(e, f), h(), t.asyncRenderCallback)\n                        for (const e of l.getElementsByTagName(\"img\")) {\n                            const i = s.add(n.nm(e, \"load\", (() => {\n                                i.dispose(), t.asyncRenderCallback()\n                            })))\n                        }\n                    return {\n                        element: l,\n                        dispose: () => {\n                            r = !0, a.cancel(), s.dispose()\n                        }\n                    }\n                }\n                var ye, Ce = i(50988),\n                    xe = i(71531),\n                    Se = i(55713),\n                    ke = i(44101),\n                    Le = i(89052),\n                    Ne = function(e, t, i, n) {\n                        var o, s = arguments.length,\n                            r = s < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n                        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) r = Reflect.decorate(e, t, i, n);\n                        else\n                            for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (r = (s < 3 ? o(r) : s > 3 ? o(t, i, r) : o(t, i)) || r);\n                        return s > 3 && r && Object.defineProperty(t, i, r), r\n                    },\n                    De = function(e, t) {\n                        return function(i, n) {\n                            t(i, n, e)\n                        }\n                    },\n                    Ie = function(e, t, i, n) {\n                        return new(i || (i = Promise))((function(o, s) {\n                            function r(e) {\n                                try {\n                                    l(n.next(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function a(e) {\n                                try {\n                                    l(n.throw(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function l(e) {\n                                var t;\n                                e.done ? o(e.value) : (t = e.value, t instanceof i ? t : new i((function(e) {\n                                    e(t)\n                                }))).then(r, a)\n                            }\n                            l((n = n.apply(e, t || [])).next())\n                        }))\n                    };\n                let Ee = class e {\n                    constructor(e, t, i) {\n                        this._options = e, this._modeService = t, this._openerService = i, this._onDidRenderAsync = new le.Q5, this.onDidRenderAsync = this._onDidRenderAsync.event\n                    }\n                    dispose() {\n                        this._onDidRenderAsync.dispose()\n                    }\n                    render(e, t, i) {\n                        if (!e) {\n                            return {\n                                element: document.createElement(\"span\"),\n                                dispose: () => {}\n                            }\n                        }\n                        const n = new ue.SL;\n                        return {\n                            element: n.add(we(e, Object.assign(Object.assign({}, this._getRenderOptions(e, n)), t), i)).element,\n                            dispose: () => n.dispose()\n                        }\n                    }\n                    _getRenderOptions(t, i) {\n                        return {\n                            baseUrl: this._options.baseUrl,\n                            codeBlockRenderer: (t, i) => Ie(this, void 0, void 0, (function*() {\n                                var n, o, s, r;\n                                let a;\n                                t ? a = this._modeService.getModeIdForLanguageName(t) : this._options.editor && (a = null === (n = this._options.editor.getModel()) || void 0 === n ? void 0 : n.getLanguageId()), a || (a = \"plaintext\"), this._modeService.triggerMode(a);\n                                const l = null !== (o = yield ke.RW.getPromise(a)) && void 0 !== o ? o : void 0,\n                                    c = document.createElement(\"span\");\n                                if (c.innerHTML = null !== (r = null === (s = e._ttpTokenizer) || void 0 === s ? void 0 : s.createHTML(i, this._modeService.languageIdCodec, l)) && void 0 !== r ? r : (0, Se.C)(i, this._modeService.languageIdCodec, l), this._options.editor) {\n                                    const e = this._options.editor.getOption(43);\n                                    Le.V.applyFontInfoSlow(c, e)\n                                } else this._options.codeBlockFontFamily && (c.style.fontFamily = this._options.codeBlockFontFamily);\n                                return c\n                            })),\n                            asyncRenderCallback: () => this._onDidRenderAsync.fire(),\n                            actionHandler: {\n                                callback: e => this._openerService.open(e, {\n                                    fromUserGesture: !0,\n                                    allowContributedOpeners: !0,\n                                    allowCommands: t.isTrusted\n                                }).catch(ae.dL),\n                                disposables: i\n                            }\n                        }\n                    }\n                };\n                Ee._ttpTokenizer = null === (ye = window.trustedTypes) || void 0 === ye ? void 0 : ye.createPolicy(\"tokenizeToString\", {\n                    createHTML: (e, t, i) => (0, Se.C)(e, t, i)\n                }), Ee = Ne([De(1, xe.h), De(2, Ce.v4)], Ee)\n            },\n            65520: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    CL: () => o,\n                    Pi: () => r,\n                    QI: () => s\n                });\n                var n = i(96518);\n\n                function o(e) {\n                    return !(!e || \"function\" != typeof e.getEditorType) && e.getEditorType() === n.g.ICodeEditor\n                }\n\n                function s(e) {\n                    return !(!e || \"function\" != typeof e.getEditorType) && e.getEditorType() === n.g.IDiffEditor\n                }\n\n                function r(e) {\n                    return o(e) ? e : s(e) ? e.getModifiedEditor() : null\n                }\n            },\n            16830: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    AJ: () => b,\n                    QG: () => I,\n                    Qr: () => N,\n                    R6: () => C,\n                    Sq: () => P,\n                    Uc: () => n,\n                    _K: () => E,\n                    _l: () => y,\n                    f: () => k,\n                    fK: () => L,\n                    jY: () => x,\n                    kz: () => O,\n                    mY: () => _,\n                    n_: () => A,\n                    rn: () => D,\n                    sb: () => S\n                });\n                var n, o = i(63580),\n                    s = i(70666),\n                    r = i(11640),\n                    a = i(50187),\n                    l = i(51200),\n                    c = i(88216),\n                    d = i(84144),\n                    h = i(94565),\n                    u = i(38819),\n                    g = i(49989),\n                    p = i(89872),\n                    f = i(10829),\n                    m = i(98401),\n                    v = i(43557);\n                class _ {\n                    constructor(e) {\n                        this.id = e.id, this.precondition = e.precondition, this._kbOpts = e.kbOpts, this._menuOpts = e.menuOpts, this._description = e.description\n                    }\n                    register() {\n                        if (Array.isArray(this._menuOpts) ? this._menuOpts.forEach(this._registerMenuItem, this) : this._menuOpts && this._registerMenuItem(this._menuOpts), this._kbOpts) {\n                            const e = Array.isArray(this._kbOpts) ? this._kbOpts : [this._kbOpts];\n                            for (const t of e) {\n                                let e = t.kbExpr;\n                                this.precondition && (e = e ? u.Ao.and(e, this.precondition) : this.precondition);\n                                const i = {\n                                    id: this.id,\n                                    weight: t.weight,\n                                    args: t.args,\n                                    when: e,\n                                    primary: t.primary,\n                                    secondary: t.secondary,\n                                    win: t.win,\n                                    linux: t.linux,\n                                    mac: t.mac\n                                };\n                                g.W.registerKeybindingRule(i)\n                            }\n                        }\n                        h.P.registerCommand({\n                            id: this.id,\n                            handler: (e, t) => this.runCommand(e, t),\n                            description: this._description\n                        })\n                    }\n                    _registerMenuItem(e) {\n                        d.BH.appendMenuItem(e.menuId, {\n                            group: e.group,\n                            command: {\n                                id: this.id,\n                                title: e.title,\n                                icon: e.icon,\n                                precondition: this.precondition\n                            },\n                            when: e.when,\n                            order: e.order\n                        })\n                    }\n                }\n                class b extends _ {\n                    constructor() {\n                        super(...arguments), this._implementations = []\n                    }\n                    addImplementation(e, t, i) {\n                        return this._implementations.push({\n                            priority: e,\n                            name: t,\n                            implementation: i\n                        }), this._implementations.sort(((e, t) => t.priority - e.priority)), {\n                            dispose: () => {\n                                for (let e = 0; e < this._implementations.length; e++)\n                                    if (this._implementations[e].implementation === i) return void this._implementations.splice(e, 1)\n                            }\n                        }\n                    }\n                    runCommand(e, t) {\n                        const i = e.get(v.VZ);\n                        i.trace(`Executing Command '${this.id}' which has ${this._implementations.length} bound.`);\n                        for (const n of this._implementations) {\n                            const o = n.implementation(e, t);\n                            if (o) {\n                                if (i.trace(`Command '${this.id}' was handled by '${n.name}'.`), \"boolean\" == typeof o) return;\n                                return o\n                            }\n                        }\n                        i.trace(`The Command '${this.id}' was not handled by any implementation.`)\n                    }\n                }\n                class w extends _ {\n                    constructor(e, t) {\n                        super(t), this.command = e\n                    }\n                    runCommand(e, t) {\n                        return this.command.runCommand(e, t)\n                    }\n                }\n                class y extends _ {\n                    static bindToContribution(e) {\n                        return class extends y {\n                            constructor(e) {\n                                super(e), this._callback = e.handler\n                            }\n                            runEditorCommand(t, i, n) {\n                                e(i) && this._callback(e(i), n)\n                            }\n                        }\n                    }\n                    runCommand(e, t) {\n                        const i = e.get(r.$),\n                            n = i.getFocusedCodeEditor() || i.getActiveCodeEditor();\n                        if (n) return n.invokeWithinContext((e => {\n                            if (e.get(u.i6).contextMatchesRules((0, m.f6)(this.precondition))) return this.runEditorCommand(e, n, t)\n                        }))\n                    }\n                }\n                class C extends y {\n                    constructor(e) {\n                        super(C.convertOptions(e)), this.label = e.label, this.alias = e.alias\n                    }\n                    static convertOptions(e) {\n                        let t;\n\n                        function i(t) {\n                            return t.menuId || (t.menuId = d.eH.EditorContext), t.title || (t.title = e.label), t.when = u.Ao.and(e.precondition, t.when), t\n                        }\n                        return t = Array.isArray(e.menuOpts) ? e.menuOpts : e.menuOpts ? [e.menuOpts] : [], Array.isArray(e.contextMenuOpts) ? t.push(...e.contextMenuOpts.map(i)) : e.contextMenuOpts && t.push(i(e.contextMenuOpts)), e.menuOpts = t, e\n                    }\n                    runEditorCommand(e, t, i) {\n                        return this.reportTelemetry(e, t), this.run(e, t, i || {})\n                    }\n                    reportTelemetry(e, t) {\n                        e.get(f.b).publicLog2(\"editorActionInvoked\", {\n                            name: this.label,\n                            id: this.id\n                        })\n                    }\n                }\n                class x extends C {\n                    constructor() {\n                        super(...arguments), this._implementations = []\n                    }\n                    addImplementation(e, t) {\n                        return this._implementations.push([e, t]), this._implementations.sort(((e, t) => t[0] - e[0])), {\n                            dispose: () => {\n                                for (let e = 0; e < this._implementations.length; e++)\n                                    if (this._implementations[e][1] === t) return void this._implementations.splice(e, 1)\n                            }\n                        }\n                    }\n                    run(e, t, i) {\n                        for (const n of this._implementations) {\n                            const o = n[1](e, t, i);\n                            if (o) {\n                                if (\"boolean\" == typeof o) return;\n                                return o\n                            }\n                        }\n                    }\n                }\n\n                function S(e, t) {\n                    h.P.registerCommand(e, (function(e, ...i) {\n                        const [n, o] = i;\n                        (0, m.p_)(s.o.isUri(n)), (0, m.p_)(a.L.isIPosition(o));\n                        const r = e.get(l.q).getModel(n);\n                        if (r) {\n                            const e = a.L.lift(o);\n                            return t(r, e, ...i.slice(2))\n                        }\n                        return e.get(c.S).createModelReference(n).then((e => new Promise(((n, s) => {\n                            try {\n                                n(t(e.object.textEditorModel, a.L.lift(o), i.slice(2)))\n                            } catch (e) {\n                                s(e)\n                            }\n                        })).finally((() => {\n                            e.dispose()\n                        }))))\n                    }))\n                }\n\n                function k(e, t) {\n                    h.P.registerCommand(e, (function(e, ...i) {\n                        const [n] = i;\n                        (0, m.p_)(s.o.isUri(n));\n                        const o = e.get(l.q).getModel(n);\n                        return o ? t(o, ...i.slice(1)) : e.get(c.S).createModelReference(n).then((e => new Promise(((n, o) => {\n                            try {\n                                n(t(e.object.textEditorModel, i.slice(1)))\n                            } catch (e) {\n                                o(e)\n                            }\n                        })).finally((() => {\n                            e.dispose()\n                        }))))\n                    }))\n                }\n\n                function L(e) {\n                    return T.INSTANCE.registerEditorCommand(e), e\n                }\n\n                function N(e) {\n                    const t = new e;\n                    return T.INSTANCE.registerEditorAction(t), t\n                }\n\n                function D(e) {\n                    return T.INSTANCE.registerEditorAction(e), e\n                }\n\n                function I(e) {\n                    T.INSTANCE.registerEditorAction(e)\n                }\n\n                function E(e, t) {\n                    T.INSTANCE.registerEditorContribution(e, t)\n                }! function(e) {\n                    e.getEditorCommand = function(e) {\n                        return T.INSTANCE.getEditorCommand(e)\n                    }, e.getEditorActions = function() {\n                        return T.INSTANCE.getEditorActions()\n                    }, e.getEditorContributions = function() {\n                        return T.INSTANCE.getEditorContributions()\n                    }, e.getSomeEditorContributions = function(e) {\n                        return T.INSTANCE.getEditorContributions().filter((t => e.indexOf(t.id) >= 0))\n                    }, e.getDiffEditorContributions = function() {\n                        return T.INSTANCE.getDiffEditorContributions()\n                    }\n                }(n || (n = {}));\n                class T {\n                    constructor() {\n                        this.editorContributions = [], this.diffEditorContributions = [], this.editorActions = [], this.editorCommands = Object.create(null)\n                    }\n                    registerEditorContribution(e, t) {\n                        this.editorContributions.push({\n                            id: e,\n                            ctor: t\n                        })\n                    }\n                    getEditorContributions() {\n                        return this.editorContributions.slice(0)\n                    }\n                    getDiffEditorContributions() {\n                        return this.diffEditorContributions.slice(0)\n                    }\n                    registerEditorAction(e) {\n                        e.register(), this.editorActions.push(e)\n                    }\n                    getEditorActions() {\n                        return this.editorActions.slice(0)\n                    }\n                    registerEditorCommand(e) {\n                        e.register(), this.editorCommands[e.id] = e\n                    }\n                    getEditorCommand(e) {\n                        return this.editorCommands[e] || null\n                    }\n                }\n\n                function M(e) {\n                    return e.register(), e\n                }\n                T.INSTANCE = new T, p.B.add(\"editor.contributions\", T.INSTANCE);\n                const A = M(new b({\n                    id: \"undo\",\n                    precondition: void 0,\n                    kbOpts: {\n                        weight: 0,\n                        primary: 2104\n                    },\n                    menuOpts: [{\n                        menuId: d.eH.MenubarEditMenu,\n                        group: \"1_do\",\n                        title: o.N({\n                            key: \"miUndo\",\n                            comment: [\"&& denotes a mnemonic\"]\n                        }, \"&&Undo\"),\n                        order: 1\n                    }, {\n                        menuId: d.eH.CommandPalette,\n                        group: \"\",\n                        title: o.N(\"undo\", \"Undo\"),\n                        order: 1\n                    }]\n                }));\n                M(new w(A, {\n                    id: \"default:undo\",\n                    precondition: void 0\n                }));\n                const O = M(new b({\n                    id: \"redo\",\n                    precondition: void 0,\n                    kbOpts: {\n                        weight: 0,\n                        primary: 2103,\n                        secondary: [3128],\n                        mac: {\n                            primary: 3128\n                        }\n                    },\n                    menuOpts: [{\n                        menuId: d.eH.MenubarEditMenu,\n                        group: \"1_do\",\n                        title: o.N({\n                            key: \"miRedo\",\n                            comment: [\"&& denotes a mnemonic\"]\n                        }, \"&&Redo\"),\n                        order: 2\n                    }, {\n                        menuId: d.eH.CommandPalette,\n                        group: \"\",\n                        title: o.N(\"redo\", \"Redo\"),\n                        order: 1\n                    }]\n                }));\n                M(new w(O, {\n                    id: \"default:redo\",\n                    precondition: void 0\n                }));\n                const P = M(new b({\n                    id: \"editor.action.selectAll\",\n                    precondition: void 0,\n                    kbOpts: {\n                        weight: 0,\n                        kbExpr: null,\n                        primary: 2079\n                    },\n                    menuOpts: [{\n                        menuId: d.eH.MenubarSelectionMenu,\n                        group: \"1_basic\",\n                        title: o.N({\n                            key: \"miSelectAll\",\n                            comment: [\"&& denotes a mnemonic\"]\n                        }, \"&&Select All\"),\n                        order: 1\n                    }, {\n                        menuId: d.eH.CommandPalette,\n                        group: \"\",\n                        title: o.N(\"selectAll\", \"Select All\"),\n                        order: 1\n                    }]\n                }))\n            },\n            66007: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    Gl: () => l,\n                    fo: () => a,\n                    vu: () => r\n                });\n                var n = i(72065),\n                    o = i(70666),\n                    s = i(98401);\n                const r = (0, n.yh)(\"IWorkspaceEditService\");\n                class a {\n                    constructor(e) {\n                        this.metadata = e\n                    }\n                    static convert(e) {\n                        return e.edits.map((e => {\n                            if (t = e, (0, s.Kn)(t) && o.o.isUri(t.resource) && (0, s.Kn)(t.edit)) return new l(e.resource, e.edit, e.modelVersionId, e.metadata);\n                            var t;\n                            if (function(e) {\n                                    return (0, s.Kn)(e) && (Boolean(e.newUri) || Boolean(e.oldUri))\n                                }(e)) return new c(e.oldUri, e.newUri, e.options, e.metadata);\n                            throw new Error(\"Unsupported edit\")\n                        }))\n                    }\n                }\n                class l extends a {\n                    constructor(e, t, i, n) {\n                        super(n), this.resource = e, this.textEdit = t, this.versionId = i\n                    }\n                }\n                class c extends a {\n                    constructor(e, t, i, n) {\n                        super(n), this.oldResource = e, this.newResource = t, this.options = i\n                    }\n                }\n            },\n            11640: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    $: () => n\n                });\n                const n = (0, i(72065).yh)(\"codeEditorService\")\n            },\n            32073: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    Gm: () => ao\n                });\n                var n = i(26479),\n                    o = i(16830),\n                    s = function(e, t, i, n) {\n                        var o, s = arguments.length,\n                            r = s < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n                        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) r = Reflect.decorate(e, t, i, n);\n                        else\n                            for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (r = (s < 3 ? o(r) : s > 3 ? o(t, i, r) : o(t, i)) || r);\n                        return s > 3 && r && Object.defineProperty(t, i, r), r\n                    },\n                    r = function(e, t) {\n                        return function(i, n) {\n                            t(i, n, e)\n                        }\n                    };\n                let a = class {\n                    constructor(e, t) {}\n                    dispose() {}\n                };\n                a.ID = \"editor.contrib.markerDecorations\", a = s([r(1, n.i)], a), (0, o._K)(a.ID, a);\n                i(60081);\n                var l = i(63580),\n                    c = i(65321),\n                    d = i(17301),\n                    h = i(4669),\n                    u = i(5976),\n                    g = i(66663),\n                    p = i(89052),\n                    f = i(11640),\n                    m = i(16268),\n                    v = i(3860),\n                    _ = i(38626),\n                    b = i(1432),\n                    w = i(10553),\n                    y = i(23938),\n                    C = i(15393),\n                    x = i(57974);\n                class S {\n                    constructor(e, t) {\n                        this.x = e, this.y = t, this._pageCoordinatesBrand = void 0\n                    }\n                    toClientCoordinates() {\n                        return new k(this.x - c.DI.scrollX, this.y - c.DI.scrollY)\n                    }\n                }\n                class k {\n                    constructor(e, t) {\n                        this.clientX = e, this.clientY = t, this._clientCoordinatesBrand = void 0\n                    }\n                    toPageCoordinates() {\n                        return new S(this.clientX + c.DI.scrollX, this.clientY + c.DI.scrollY)\n                    }\n                }\n                class L {\n                    constructor(e, t, i, n) {\n                        this.x = e, this.y = t, this.width = i, this.height = n, this._editorPagePositionBrand = void 0\n                    }\n                }\n\n                function N(e) {\n                    const t = c.i(e);\n                    return new L(t.left, t.top, t.width, t.height)\n                }\n                class D extends y.n {\n                    constructor(e, t) {\n                        super(e), this._editorMouseEventBrand = void 0, this.pos = new S(this.posx, this.posy), this.editorPos = N(t)\n                    }\n                }\n                class I {\n                    constructor(e) {\n                        this._editorViewDomNode = e\n                    }\n                    _create(e) {\n                        return new D(e, this._editorViewDomNode)\n                    }\n                    onContextMenu(e, t) {\n                        return c.nm(e, \"contextmenu\", (e => {\n                            t(this._create(e))\n                        }))\n                    }\n                    onMouseUp(e, t) {\n                        return c.nm(e, \"mouseup\", (e => {\n                            t(this._create(e))\n                        }))\n                    }\n                    onMouseDown(e, t) {\n                        return c.nm(e, \"mousedown\", (e => {\n                            t(this._create(e))\n                        }))\n                    }\n                    onMouseLeave(e, t) {\n                        return c.j_(e, (e => {\n                            t(this._create(e))\n                        }))\n                    }\n                    onMouseMoveThrottled(e, t, i, n) {\n                        return c.Y_(e, \"mousemove\", t, ((e, t) => i(e, this._create(t))), n)\n                    }\n                }\n                class E {\n                    constructor(e) {\n                        this._editorViewDomNode = e\n                    }\n                    _create(e) {\n                        return new D(e, this._editorViewDomNode)\n                    }\n                    onPointerUp(e, t) {\n                        return c.nm(e, \"pointerup\", (e => {\n                            t(this._create(e))\n                        }))\n                    }\n                    onPointerDown(e, t) {\n                        return c.nm(e, \"pointerdown\", (e => {\n                            t(this._create(e))\n                        }))\n                    }\n                    onPointerLeave(e, t) {\n                        return c.RE(e, (e => {\n                            t(this._create(e))\n                        }))\n                    }\n                    onPointerMoveThrottled(e, t, i, n) {\n                        return c.Y_(e, \"pointermove\", t, ((e, t) => i(e, this._create(t))), n)\n                    }\n                }\n                class T extends u.JT {\n                    constructor(e) {\n                        super(), this._editorViewDomNode = e, this._globalMouseMoveMonitor = this._register(new x.Z), this._keydownListener = null\n                    }\n                    startMonitoring(e, t, i, n, o) {\n                        this._keydownListener = c.mu(document, \"keydown\", (e => {\n                            e.toKeybinding().isModifierKey() || this._globalMouseMoveMonitor.stopMonitoring(!0, e.browserEvent)\n                        }), !0);\n                        this._globalMouseMoveMonitor.startMonitoring(e, t, ((e, t) => i(e, new D(t, this._editorViewDomNode))), n, (e => {\n                            this._keydownListener.dispose(), o(e)\n                        }))\n                    }\n                    stopMonitoring() {\n                        this._globalMouseMoveMonitor.stopMonitoring(!0)\n                    }\n                }\n                class M extends u.JT {\n                    constructor() {\n                        super(), this._shouldRender = !0\n                    }\n                    shouldRender() {\n                        return this._shouldRender\n                    }\n                    forceShouldRender() {\n                        this._shouldRender = !0\n                    }\n                    setShouldRender() {\n                        this._shouldRender = !0\n                    }\n                    onDidRender() {\n                        this._shouldRender = !1\n                    }\n                    onCompositionStart(e) {\n                        return !1\n                    }\n                    onCompositionEnd(e) {\n                        return !1\n                    }\n                    onConfigurationChanged(e) {\n                        return !1\n                    }\n                    onCursorStateChanged(e) {\n                        return !1\n                    }\n                    onDecorationsChanged(e) {\n                        return !1\n                    }\n                    onFlushed(e) {\n                        return !1\n                    }\n                    onFocusChanged(e) {\n                        return !1\n                    }\n                    onLanguageConfigurationChanged(e) {\n                        return !1\n                    }\n                    onLineMappingChanged(e) {\n                        return !1\n                    }\n                    onLinesChanged(e) {\n                        return !1\n                    }\n                    onLinesDeleted(e) {\n                        return !1\n                    }\n                    onLinesInserted(e) {\n                        return !1\n                    }\n                    onRevealRangeRequest(e) {\n                        return !1\n                    }\n                    onScrollChanged(e) {\n                        return !1\n                    }\n                    onThemeChanged(e) {\n                        return !1\n                    }\n                    onTokensChanged(e) {\n                        return !1\n                    }\n                    onTokensColorsChanged(e) {\n                        return !1\n                    }\n                    onZonesChanged(e) {\n                        return !1\n                    }\n                    handleEvents(e) {\n                        let t = !1;\n                        for (let i = 0, n = e.length; i < n; i++) {\n                            let n = e[i];\n                            switch (n.type) {\n                                case 0:\n                                    this.onCompositionStart(n) && (t = !0);\n                                    break;\n                                case 1:\n                                    this.onCompositionEnd(n) && (t = !0);\n                                    break;\n                                case 2:\n                                    this.onConfigurationChanged(n) && (t = !0);\n                                    break;\n                                case 3:\n                                    this.onCursorStateChanged(n) && (t = !0);\n                                    break;\n                                case 4:\n                                    this.onDecorationsChanged(n) && (t = !0);\n                                    break;\n                                case 5:\n                                    this.onFlushed(n) && (t = !0);\n                                    break;\n                                case 6:\n                                    this.onFocusChanged(n) && (t = !0);\n                                    break;\n                                case 7:\n                                    this.onLanguageConfigurationChanged(n) && (t = !0);\n                                    break;\n                                case 8:\n                                    this.onLineMappingChanged(n) && (t = !0);\n                                    break;\n                                case 9:\n                                    this.onLinesChanged(n) && (t = !0);\n                                    break;\n                                case 10:\n                                    this.onLinesDeleted(n) && (t = !0);\n                                    break;\n                                case 11:\n                                    this.onLinesInserted(n) && (t = !0);\n                                    break;\n                                case 12:\n                                    this.onRevealRangeRequest(n) && (t = !0);\n                                    break;\n                                case 13:\n                                    this.onScrollChanged(n) && (t = !0);\n                                    break;\n                                case 15:\n                                    this.onTokensChanged(n) && (t = !0);\n                                    break;\n                                case 14:\n                                    this.onThemeChanged(n) && (t = !0);\n                                    break;\n                                case 16:\n                                    this.onTokensColorsChanged(n) && (t = !0);\n                                    break;\n                                case 17:\n                                    this.onZonesChanged(n) && (t = !0);\n                                    break;\n                                default:\n                                    console.info(\"View received unknown event: \"), console.info(n)\n                            }\n                        }\n                        t && (this._shouldRender = !0)\n                    }\n                }\n                class A extends M {\n                    constructor(e) {\n                        super(), this._context = e, this._context.addEventHandler(this)\n                    }\n                    dispose() {\n                        this._context.removeEventHandler(this), super.dispose()\n                    }\n                }\n                class O {\n                    static write(e, t) {\n                        _.Z, e.setAttribute(\"data-mprt\", String(t))\n                    }\n                    static read(e) {\n                        const t = e.getAttribute(\"data-mprt\");\n                        return null === t ? 0 : parseInt(t, 10)\n                    }\n                    static collect(e, t) {\n                        let i = [],\n                            n = 0;\n                        for (; e && e !== document.body && e !== t;) e.nodeType === e.ELEMENT_NODE && (i[n++] = this.read(e)), e = e.parentElement;\n                        const o = new Uint8Array(n);\n                        for (let e = 0; e < n; e++) o[e] = i[n - e - 1];\n                        return o\n                    }\n                }\n                class P {\n                    constructor(e, t) {\n                        this._restrictedRenderingContextBrand = void 0, this._viewLayout = e, this.viewportData = t, this.scrollWidth = this._viewLayout.getScrollWidth(), this.scrollHeight = this._viewLayout.getScrollHeight(), this.visibleRange = this.viewportData.visibleRange, this.bigNumbersDelta = this.viewportData.bigNumbersDelta;\n                        const i = this._viewLayout.getCurrentViewport();\n                        this.scrollTop = i.top, this.scrollLeft = i.left, this.viewportWidth = i.width, this.viewportHeight = i.height\n                    }\n                    getScrolledTopFromAbsoluteTop(e) {\n                        return e - this.scrollTop\n                    }\n                    getVerticalOffsetForLineNumber(e) {\n                        return this._viewLayout.getVerticalOffsetForLineNumber(e)\n                    }\n                    getDecorationsInViewport() {\n                        return this.viewportData.getDecorationsInViewport()\n                    }\n                }\n                class R extends P {\n                    constructor(e, t, i) {\n                        super(e, t), this._renderingContextBrand = void 0, this._viewLines = i\n                    }\n                    linesVisibleRangesForRange(e, t) {\n                        return this._viewLines.linesVisibleRangesForRange(e, t)\n                    }\n                    visibleRangeForPosition(e) {\n                        return this._viewLines.visibleRangeForPosition(e)\n                    }\n                }\n                class F {\n                    constructor(e, t, i) {\n                        this.outsideRenderedLine = e, this.lineNumber = t, this.ranges = i\n                    }\n                }\n                class B {\n                    constructor(e, t) {\n                        this._horizontalRangeBrand = void 0, this.left = Math.round(e), this.width = Math.round(t)\n                    }\n                    static from(e) {\n                        const t = new Array(e.length);\n                        for (let i = 0, n = e.length; i < n; i++) {\n                            const n = e[i];\n                            t[i] = new B(n.left, n.width)\n                        }\n                        return t\n                    }\n                    toString() {\n                        return `[${this.left},${this.width}]`\n                    }\n                }\n                class V {\n                    constructor(e, t) {\n                        this._floatHorizontalRangeBrand = void 0, this.left = e, this.width = t\n                    }\n                    toString() {\n                        return `[${this.left},${this.width}]`\n                    }\n                    static compare(e, t) {\n                        return e.left - t.left\n                    }\n                }\n                class W {\n                    constructor(e, t) {\n                        this.outsideRenderedLine = e, this.originalLeft = t, this.left = Math.round(this.originalLeft)\n                    }\n                }\n                class H {\n                    constructor(e, t) {\n                        this.outsideRenderedLine = e, this.ranges = t\n                    }\n                }\n                class z {\n                    static _createRange() {\n                        return this._handyReadyRange || (this._handyReadyRange = document.createRange()), this._handyReadyRange\n                    }\n                    static _detachRange(e, t) {\n                        e.selectNodeContents(t)\n                    }\n                    static _readClientRects(e, t, i, n, o) {\n                        const s = this._createRange();\n                        try {\n                            return s.setStart(e, t), s.setEnd(i, n), s.getClientRects()\n                        } catch (e) {\n                            return null\n                        } finally {\n                            this._detachRange(s, o)\n                        }\n                    }\n                    static _mergeAdjacentRanges(e) {\n                        if (1 === e.length) return e;\n                        e.sort(V.compare);\n                        let t = [],\n                            i = 0,\n                            n = e[0];\n                        for (let o = 1, s = e.length; o < s; o++) {\n                            const s = e[o];\n                            n.left + n.width + .9 >= s.left ? n.width = Math.max(n.width, s.left + s.width - n.left) : (t[i++] = n, n = s)\n                        }\n                        return t[i++] = n, t\n                    }\n                    static _createHorizontalRangesFromClientRects(e, t) {\n                        if (!e || 0 === e.length) return null;\n                        const i = [];\n                        for (let n = 0, o = e.length; n < o; n++) {\n                            const o = e[n];\n                            i[n] = new V(Math.max(0, o.left - t), o.width)\n                        }\n                        return this._mergeAdjacentRanges(i)\n                    }\n                    static readHorizontalRanges(e, t, i, n, o, s, r) {\n                        const a = e.children.length - 1;\n                        if (0 > a) return null;\n                        if ((t = Math.min(a, Math.max(0, t))) === (n = Math.min(a, Math.max(0, n))) && i === o && 0 === i && !e.children[t].firstChild) {\n                            const i = e.children[t].getClientRects();\n                            return this._createHorizontalRangesFromClientRects(i, s)\n                        }\n                        t !== n && n > 0 && 0 === o && (n--, o = 1073741824);\n                        let l = e.children[t].firstChild,\n                            c = e.children[n].firstChild;\n                        if (l && c || (!l && 0 === i && t > 0 && (l = e.children[t - 1].firstChild, i = 1073741824), !c && 0 === o && n > 0 && (c = e.children[n - 1].firstChild, o = 1073741824)), !l || !c) return null;\n                        i = Math.min(l.textContent.length, Math.max(0, i)), o = Math.min(c.textContent.length, Math.max(0, o));\n                        const d = this._readClientRects(l, i, c, o, r);\n                        return this._createHorizontalRangesFromClientRects(d, s)\n                    }\n                }\n                var j = i(92550),\n                    U = i(77736),\n                    $ = i(92321),\n                    K = i(64141);\n                const q = !!b.tY || !(b.IJ || m.vU || m.G6);\n                let Z = !0;\n                class G {\n                    constructor(e, t) {\n                        this._domNode = e, this._clientRectDeltaLeft = 0, this._clientRectDeltaLeftRead = !1, this.endNode = t\n                    }\n                    get clientRectDeltaLeft() {\n                        return this._clientRectDeltaLeftRead || (this._clientRectDeltaLeftRead = !0, this._clientRectDeltaLeft = this._domNode.getBoundingClientRect().left), this._clientRectDeltaLeft\n                    }\n                }\n                class Y {\n                    constructor(e, t) {\n                        this.themeType = t;\n                        const i = e.options,\n                            n = i.get(43);\n                        this.renderWhitespace = i.get(87), this.renderControlCharacters = i.get(82), this.spaceWidth = n.spaceWidth, this.middotWidth = n.middotWidth, this.wsmiddotWidth = n.wsmiddotWidth, this.useMonospaceOptimizations = n.isMonospace && !i.get(29), this.canUseHalfwidthRightwardsArrow = n.canUseHalfwidthRightwardsArrow, this.lineHeight = i.get(58), this.stopRenderingLineAfter = i.get(104), this.fontLigatures = i.get(44)\n                    }\n                    equals(e) {\n                        return this.themeType === e.themeType && this.renderWhitespace === e.renderWhitespace && this.renderControlCharacters === e.renderControlCharacters && this.spaceWidth === e.spaceWidth && this.middotWidth === e.middotWidth && this.wsmiddotWidth === e.wsmiddotWidth && this.useMonospaceOptimizations === e.useMonospaceOptimizations && this.canUseHalfwidthRightwardsArrow === e.canUseHalfwidthRightwardsArrow && this.lineHeight === e.lineHeight && this.stopRenderingLineAfter === e.stopRenderingLineAfter && this.fontLigatures === e.fontLigatures\n                    }\n                }\n                class Q {\n                    constructor(e) {\n                        this._options = e, this._isMaybeInvalid = !0, this._renderedViewLine = null\n                    }\n                    getDomNode() {\n                        return this._renderedViewLine && this._renderedViewLine.domNode ? this._renderedViewLine.domNode.domNode : null\n                    }\n                    setDomNode(e) {\n                        if (!this._renderedViewLine) throw new Error(\"I have no rendered view line to set the dom node to...\");\n                        this._renderedViewLine.domNode = (0, _.X)(e)\n                    }\n                    onContentChanged() {\n                        this._isMaybeInvalid = !0\n                    }\n                    onTokensChanged() {\n                        this._isMaybeInvalid = !0\n                    }\n                    onDecorationsChanged() {\n                        this._isMaybeInvalid = !0\n                    }\n                    onOptionsChanged(e) {\n                        this._isMaybeInvalid = !0, this._options = e\n                    }\n                    onSelectionChanged() {\n                        return (this._options.themeType === $.e.HIGH_CONTRAST || \"selection\" === this._options.renderWhitespace) && (this._isMaybeInvalid = !0, !0)\n                    }\n                    renderLine(e, t, i, n) {\n                        if (!1 === this._isMaybeInvalid) return !1;\n                        this._isMaybeInvalid = !1;\n                        const o = i.getViewLineRenderingData(e),\n                            s = this._options,\n                            r = j.Kp.filter(o.inlineDecorations, e, o.minColumn, o.maxColumn);\n                        let a = null;\n                        if (s.themeType === $.e.HIGH_CONTRAST || \"selection\" === this._options.renderWhitespace) {\n                            const t = i.selections;\n                            for (const i of t) {\n                                if (i.endLineNumber < e || i.startLineNumber > e) continue;\n                                const t = i.startLineNumber === e ? i.startColumn : o.minColumn,\n                                    n = i.endLineNumber === e ? i.endColumn : o.maxColumn;\n                                t < n && (s.themeType === $.e.HIGH_CONTRAST || \"selection\" !== this._options.renderWhitespace ? r.push(new j.Kp(t, n, \"inline-selected-text\", 0)) : (a || (a = []), a.push(new U.zG(t - 1, n - 1))))\n                            }\n                        }\n                        const l = new U.IJ(s.useMonospaceOptimizations, s.canUseHalfwidthRightwardsArrow, o.content, o.continuesWithWrappedLine, o.isBasicASCII, o.containsRTL, o.minColumn - 1, o.tokens, r, o.tabSize, o.startVisibleColumn, s.spaceWidth, s.middotWidth, s.wsmiddotWidth, s.stopRenderingLineAfter, s.renderWhitespace, s.renderControlCharacters, s.fontLigatures !== K.n0.OFF, a);\n                        if (this._renderedViewLine && this._renderedViewLine.input.equals(l)) return !1;\n                        n.appendASCIIString('<div style=\"top:'), n.appendASCIIString(String(t)), n.appendASCIIString(\"px;height:\"), n.appendASCIIString(String(this._options.lineHeight)), n.appendASCIIString('px;\" class=\"'), n.appendASCIIString(Q.CLASS_NAME), n.appendASCIIString('\">');\n                        const c = (0, U.d1)(l, n);\n                        n.appendASCIIString(\"</div>\");\n                        let d = null;\n                        return Z && q && o.isBasicASCII && s.useMonospaceOptimizations && 0 === c.containsForeignElements && o.content.length < 300 && l.lineTokens.getCount() < 100 && (d = new X(this._renderedViewLine ? this._renderedViewLine.domNode : null, l, c.characterMapping)), d || (d = te(this._renderedViewLine ? this._renderedViewLine.domNode : null, l, c.characterMapping, c.containsRTL, c.containsForeignElements)), this._renderedViewLine = d, !0\n                    }\n                    layoutLine(e, t) {\n                        this._renderedViewLine && this._renderedViewLine.domNode && (this._renderedViewLine.domNode.setTop(t), this._renderedViewLine.domNode.setHeight(this._options.lineHeight))\n                    }\n                    getWidth() {\n                        return this._renderedViewLine ? this._renderedViewLine.getWidth() : 0\n                    }\n                    getWidthIsFast() {\n                        return !this._renderedViewLine || this._renderedViewLine.getWidthIsFast()\n                    }\n                    needsMonospaceFontCheck() {\n                        return !!this._renderedViewLine && this._renderedViewLine instanceof X\n                    }\n                    monospaceAssumptionsAreValid() {\n                        return this._renderedViewLine && this._renderedViewLine instanceof X ? this._renderedViewLine.monospaceAssumptionsAreValid() : Z\n                    }\n                    onMonospaceAssumptionsInvalidated() {\n                        this._renderedViewLine && this._renderedViewLine instanceof X && (this._renderedViewLine = this._renderedViewLine.toSlowRenderedLine())\n                    }\n                    getVisibleRangesForRange(e, t, i, n) {\n                        if (!this._renderedViewLine) return null;\n                        t |= 0, i |= 0, t = Math.min(this._renderedViewLine.input.lineContent.length + 1, Math.max(1, t)), i = Math.min(this._renderedViewLine.input.lineContent.length + 1, Math.max(1, i));\n                        const o = 0 | this._renderedViewLine.input.stopRenderingLineAfter;\n                        let s = !1; - 1 !== o && t > o + 1 && i > o + 1 && (s = !0), -1 !== o && t > o + 1 && (t = o + 1), -1 !== o && i > o + 1 && (i = o + 1);\n                        const r = this._renderedViewLine.getVisibleRangesForRange(e, t, i, n);\n                        return r && r.length > 0 ? new H(s, r) : null\n                    }\n                    getColumnOfNodeOffset(e, t, i) {\n                        return this._renderedViewLine ? this._renderedViewLine.getColumnOfNodeOffset(e, t, i) : 1\n                    }\n                }\n                Q.CLASS_NAME = \"view-line\";\n                class X {\n                    constructor(e, t, i) {\n                        this.domNode = e, this.input = t, this._characterMapping = i, this._charWidth = t.spaceWidth\n                    }\n                    getWidth() {\n                        return Math.round(this._getCharPosition(this._characterMapping.length))\n                    }\n                    getWidthIsFast() {\n                        return !0\n                    }\n                    monospaceAssumptionsAreValid() {\n                        if (!this.domNode) return Z;\n                        const e = this.getWidth(),\n                            t = this.domNode.domNode.firstChild.offsetWidth;\n                        return Math.abs(e - t) >= 2 && (console.warn(\"monospace assumptions have been violated, therefore disabling monospace optimizations!\"), Z = !1), Z\n                    }\n                    toSlowRenderedLine() {\n                        return te(this.domNode, this.input, this._characterMapping, !1, 0)\n                    }\n                    getVisibleRangesForRange(e, t, i, n) {\n                        const o = this._getCharPosition(t),\n                            s = this._getCharPosition(i);\n                        return [new V(o, s - o)]\n                    }\n                    _getCharPosition(e) {\n                        const t = this._characterMapping.getAbsoluteOffset(e);\n                        return this._charWidth * t\n                    }\n                    getColumnOfNodeOffset(e, t, i) {\n                        const n = t.textContent.length;\n                        let o = -1;\n                        for (; t;) t = t.previousSibling, o++;\n                        return this._characterMapping.getColumn(new U.Nd(o, i), n)\n                    }\n                }\n                class J {\n                    constructor(e, t, i, n, o) {\n                        if (this.domNode = e, this.input = t, this._characterMapping = i, this._isWhitespaceOnly = /^\\s*$/.test(t.lineContent), this._containsForeignElements = o, this._cachedWidth = -1, this._pixelOffsetCache = null, !n || 0 === this._characterMapping.length) {\n                            this._pixelOffsetCache = new Float32Array(Math.max(2, this._characterMapping.length + 1));\n                            for (let e = 0, t = this._characterMapping.length; e <= t; e++) this._pixelOffsetCache[e] = -1\n                        }\n                    }\n                    _getReadingTarget(e) {\n                        return e.domNode.firstChild\n                    }\n                    getWidth() {\n                        return this.domNode ? (-1 === this._cachedWidth && (this._cachedWidth = this._getReadingTarget(this.domNode).offsetWidth), this._cachedWidth) : 0\n                    }\n                    getWidthIsFast() {\n                        return -1 !== this._cachedWidth\n                    }\n                    getVisibleRangesForRange(e, t, i, n) {\n                        if (!this.domNode) return null;\n                        if (null !== this._pixelOffsetCache) {\n                            const o = this._readPixelOffset(this.domNode, e, t, n);\n                            if (-1 === o) return null;\n                            const s = this._readPixelOffset(this.domNode, e, i, n);\n                            return -1 === s ? null : [new V(o, s - o)]\n                        }\n                        return this._readVisibleRangesForRange(this.domNode, e, t, i, n)\n                    }\n                    _readVisibleRangesForRange(e, t, i, n, o) {\n                        if (i === n) {\n                            const n = this._readPixelOffset(e, t, i, o);\n                            return -1 === n ? null : [new V(n, 0)]\n                        }\n                        return this._readRawVisibleRangesForRange(e, i, n, o)\n                    }\n                    _readPixelOffset(e, t, i, n) {\n                        if (0 === this._characterMapping.length) {\n                            if (0 === this._containsForeignElements) return 0;\n                            if (2 === this._containsForeignElements) return 0;\n                            if (1 === this._containsForeignElements) return this.getWidth();\n                            const t = this._getReadingTarget(e);\n                            return t.firstChild ? t.firstChild.offsetWidth : 0\n                        }\n                        if (null !== this._pixelOffsetCache) {\n                            const o = this._pixelOffsetCache[i];\n                            if (-1 !== o) return o;\n                            const s = this._actualReadPixelOffset(e, t, i, n);\n                            return this._pixelOffsetCache[i] = s, s\n                        }\n                        return this._actualReadPixelOffset(e, t, i, n)\n                    }\n                    _actualReadPixelOffset(e, t, i, n) {\n                        if (0 === this._characterMapping.length) {\n                            const t = z.readHorizontalRanges(this._getReadingTarget(e), 0, 0, 0, 0, n.clientRectDeltaLeft, n.endNode);\n                            return t && 0 !== t.length ? t[0].left : -1\n                        }\n                        if (i === this._characterMapping.length && this._isWhitespaceOnly && 0 === this._containsForeignElements) return this.getWidth();\n                        const o = this._characterMapping.getDomPosition(i),\n                            s = z.readHorizontalRanges(this._getReadingTarget(e), o.partIndex, o.charIndex, o.partIndex, o.charIndex, n.clientRectDeltaLeft, n.endNode);\n                        if (!s || 0 === s.length) return -1;\n                        const r = s[0].left;\n                        if (this.input.isBasicASCII) {\n                            const e = this._characterMapping.getAbsoluteOffset(i),\n                                t = Math.round(this.input.spaceWidth * e);\n                            if (Math.abs(t - r) <= 1) return t\n                        }\n                        return r\n                    }\n                    _readRawVisibleRangesForRange(e, t, i, n) {\n                        if (1 === t && i === this._characterMapping.length) return [new V(0, this.getWidth())];\n                        const o = this._characterMapping.getDomPosition(t),\n                            s = this._characterMapping.getDomPosition(i);\n                        return z.readHorizontalRanges(this._getReadingTarget(e), o.partIndex, o.charIndex, s.partIndex, s.charIndex, n.clientRectDeltaLeft, n.endNode)\n                    }\n                    getColumnOfNodeOffset(e, t, i) {\n                        const n = t.textContent.length;\n                        let o = -1;\n                        for (; t;) t = t.previousSibling, o++;\n                        return this._characterMapping.getColumn(new U.Nd(o, i), n)\n                    }\n                }\n                class ee extends J {\n                    _readVisibleRangesForRange(e, t, i, n, o) {\n                        const s = super._readVisibleRangesForRange(e, t, i, n, o);\n                        if (!s || 0 === s.length || i === n || 1 === i && n === this._characterMapping.length) return s;\n                        if (!this.input.containsRTL) {\n                            const i = this._readPixelOffset(e, t, n, o);\n                            if (-1 !== i) {\n                                const e = s[s.length - 1];\n                                e.left < i && (e.width = i - e.left)\n                            }\n                        }\n                        return s\n                    }\n                }\n                const te = m.Pf ? ie : ne;\n\n                function ie(e, t, i, n, o) {\n                    return new ee(e, t, i, n, o)\n                }\n\n                function ne(e, t, i, n, o) {\n                    return new J(e, t, i, n, o)\n                }\n                var oe, se = i(50187),\n                    re = i(24314),\n                    ae = i(33181),\n                    le = i(3675);\n                class ce {\n                    constructor(e = null) {\n                        this.hitTarget = e, this.type = 0\n                    }\n                }\n                class de {\n                    constructor(e, t, i) {\n                        this.position = e, this.spanNode = t, this.injectedText = i, this.type = 1\n                    }\n                }! function(e) {\n                    e.createFromDOMInfo = function(e, t, i) {\n                        const n = e.getPositionFromDOMInfo(t, i);\n                        return n ? new de(n, t, null) : new ce(t)\n                    }\n                }(oe || (oe = {}));\n                class he {\n                    constructor(e, t) {\n                        this.lastViewCursorsRenderData = e, this.lastTextareaPosition = t\n                    }\n                }\n                class ue {\n                    constructor(e, t, i = 0, n = null, o = null, s = null) {\n                        this.element = e, this.type = t, this.mouseColumn = i, this.position = n, !o && n && (o = new re.e(n.lineNumber, n.column, n.lineNumber, n.column)), this.range = o, this.detail = s\n                    }\n                    static _typeToString(e) {\n                        return 1 === e ? \"TEXTAREA\" : 2 === e ? \"GUTTER_GLYPH_MARGIN\" : 3 === e ? \"GUTTER_LINE_NUMBERS\" : 4 === e ? \"GUTTER_LINE_DECORATIONS\" : 5 === e ? \"GUTTER_VIEW_ZONE\" : 6 === e ? \"CONTENT_TEXT\" : 7 === e ? \"CONTENT_EMPTY\" : 8 === e ? \"CONTENT_VIEW_ZONE\" : 9 === e ? \"CONTENT_WIDGET\" : 10 === e ? \"OVERVIEW_RULER\" : 11 === e ? \"SCROLLBAR\" : 12 === e ? \"OVERLAY_WIDGET\" : \"UNKNOWN\"\n                    }\n                    static toString(e) {\n                        return this._typeToString(e.type) + \": \" + e.position + \" - \" + e.range + \" - \" + e.detail\n                    }\n                    toString() {\n                        return ue.toString(this)\n                    }\n                }\n                class ge {\n                    static isTextArea(e) {\n                        return 2 === e.length && 3 === e[0] && 6 === e[1]\n                    }\n                    static isChildOfViewLines(e) {\n                        return e.length >= 4 && 3 === e[0] && 7 === e[3]\n                    }\n                    static isStrictChildOfViewLines(e) {\n                        return e.length > 4 && 3 === e[0] && 7 === e[3]\n                    }\n                    static isChildOfScrollableElement(e) {\n                        return e.length >= 2 && 3 === e[0] && 5 === e[1]\n                    }\n                    static isChildOfMinimap(e) {\n                        return e.length >= 2 && 3 === e[0] && 8 === e[1]\n                    }\n                    static isChildOfContentWidgets(e) {\n                        return e.length >= 4 && 3 === e[0] && 1 === e[3]\n                    }\n                    static isChildOfOverflowingContentWidgets(e) {\n                        return e.length >= 1 && 2 === e[0]\n                    }\n                    static isChildOfOverlayWidgets(e) {\n                        return e.length >= 2 && 3 === e[0] && 4 === e[1]\n                    }\n                }\n                class pe {\n                    constructor(e, t, i) {\n                        this.model = e.model;\n                        const n = e.configuration.options;\n                        this.layoutInfo = n.get(129), this.viewDomNode = t.viewDomNode, this.lineHeight = n.get(58), this.stickyTabStops = n.get(103), this.typicalHalfwidthCharacterWidth = n.get(43).typicalHalfwidthCharacterWidth, this.lastRenderData = i, this._context = e, this._viewHelper = t\n                    }\n                    getZoneAtCoord(e) {\n                        return pe.getZoneAtCoord(this._context, e)\n                    }\n                    static getZoneAtCoord(e, t) {\n                        const i = e.viewLayout.getWhitespaceAtVerticalOffset(t);\n                        if (i) {\n                            const n = i.verticalOffset + i.height / 2,\n                                o = e.model.getLineCount();\n                            let s, r = null,\n                                a = null;\n                            return i.afterLineNumber !== o && (a = new se.L(i.afterLineNumber + 1, 1)), i.afterLineNumber > 0 && (r = new se.L(i.afterLineNumber, e.model.getLineMaxColumn(i.afterLineNumber))), s = null === a ? r : null === r ? a : t < n ? r : a, {\n                                viewZoneId: i.id,\n                                afterLineNumber: i.afterLineNumber,\n                                positionBefore: r,\n                                positionAfter: a,\n                                position: s\n                            }\n                        }\n                        return null\n                    }\n                    getFullLineRangeAtCoord(e) {\n                        if (this._context.viewLayout.isAfterLines(e)) {\n                            const e = this._context.model.getLineCount(),\n                                t = this._context.model.getLineMaxColumn(e);\n                            return {\n                                range: new re.e(e, t, e, t),\n                                isAfterLines: !0\n                            }\n                        }\n                        const t = this._context.viewLayout.getLineNumberAtVerticalOffset(e),\n                            i = this._context.model.getLineMaxColumn(t);\n                        return {\n                            range: new re.e(t, 1, t, i),\n                            isAfterLines: !1\n                        }\n                    }\n                    getLineNumberAtVerticalOffset(e) {\n                        return this._context.viewLayout.getLineNumberAtVerticalOffset(e)\n                    }\n                    isAfterLines(e) {\n                        return this._context.viewLayout.isAfterLines(e)\n                    }\n                    isInTopPadding(e) {\n                        return this._context.viewLayout.isInTopPadding(e)\n                    }\n                    isInBottomPadding(e) {\n                        return this._context.viewLayout.isInBottomPadding(e)\n                    }\n                    getVerticalOffsetForLineNumber(e) {\n                        return this._context.viewLayout.getVerticalOffsetForLineNumber(e)\n                    }\n                    findAttribute(e, t) {\n                        return pe._findAttribute(e, t, this._viewHelper.viewDomNode)\n                    }\n                    static _findAttribute(e, t, i) {\n                        for (; e && e !== document.body;) {\n                            if (e.hasAttribute && e.hasAttribute(t)) return e.getAttribute(t);\n                            if (e === i) return null;\n                            e = e.parentNode\n                        }\n                        return null\n                    }\n                    getLineWidth(e) {\n                        return this._viewHelper.getLineWidth(e)\n                    }\n                    visibleRangeForPosition(e, t) {\n                        return this._viewHelper.visibleRangeForPosition(e, t)\n                    }\n                    getPositionFromDOMInfo(e, t) {\n                        return this._viewHelper.getPositionFromDOMInfo(e, t)\n                    }\n                    getCurrentScrollTop() {\n                        return this._context.viewLayout.getCurrentScrollTop()\n                    }\n                    getCurrentScrollLeft() {\n                        return this._context.viewLayout.getCurrentScrollLeft()\n                    }\n                }\n                class fe {\n                    constructor(e, t, i) {\n                        this.editorPos = t, this.pos = i, this.mouseVerticalOffset = Math.max(0, e.getCurrentScrollTop() + i.y - t.y), this.mouseContentHorizontalOffset = e.getCurrentScrollLeft() + i.x - t.x - e.layoutInfo.contentLeft, this.isInMarginArea = i.x - t.x < e.layoutInfo.contentLeft && i.x - t.x >= e.layoutInfo.glyphMarginLeft, this.isInContentArea = !this.isInMarginArea, this.mouseColumn = Math.max(0, be._getMouseColumn(this.mouseContentHorizontalOffset, e.typicalHalfwidthCharacterWidth))\n                    }\n                }\n                class me extends fe {\n                    constructor(e, t, i, n) {\n                        super(e, t, i), this._ctx = e, n ? (this.target = n, this.targetPath = O.collect(n, e.viewDomNode)) : (this.target = null, this.targetPath = new Uint8Array(0))\n                    }\n                    toString() {\n                        return `pos(${this.pos.x},${this.pos.y}), editorPos(${this.editorPos.x},${this.editorPos.y}), mouseVerticalOffset: ${this.mouseVerticalOffset}, mouseContentHorizontalOffset: ${this.mouseContentHorizontalOffset}\\n\\ttarget: ${this.target?this.target.outerHTML:null}`\n                    }\n                    fulfill(e, t = null, i = null, n = null) {\n                        let o = this.mouseColumn;\n                        return t && t.column < this._ctx.model.getLineMaxColumn(t.lineNumber) && (o = ae.io.visibleColumnFromColumn(this._ctx.model.getLineContent(t.lineNumber), t.column, this._ctx.model.getTextModelOptions().tabSize) + 1), new ue(this.target, e, o, t, i, n)\n                    }\n                    withTarget(e) {\n                        return new me(this._ctx, this.editorPos, this.pos, e)\n                    }\n                }\n                const ve = {\n                    isAfterLines: !0\n                };\n\n                function _e(e) {\n                    return {\n                        isAfterLines: !1,\n                        horizontalDistanceToText: e\n                    }\n                }\n                class be {\n                    constructor(e, t) {\n                        this._context = e, this._viewHelper = t\n                    }\n                    mouseTargetIsWidget(e) {\n                        const t = e.target,\n                            i = O.collect(t, this._viewHelper.viewDomNode);\n                        return !(!ge.isChildOfContentWidgets(i) && !ge.isChildOfOverflowingContentWidgets(i)) || !!ge.isChildOfOverlayWidgets(i)\n                    }\n                    createMouseTarget(e, t, i, n) {\n                        const o = new pe(this._context, this._viewHelper, e),\n                            s = new me(o, t, i, n);\n                        try {\n                            return be._createMouseTarget(o, s, !1)\n                        } catch (e) {\n                            return s.fulfill(0)\n                        }\n                    }\n                    static _createMouseTarget(e, t, i) {\n                        if (null === t.target) {\n                            if (i) return t.fulfill(0);\n                            const n = be._doHitTest(e, t);\n                            return 1 === n.type ? be.createMouseTargetFromHitTestPosition(e, t, n.spanNode, n.position, n.injectedText) : this._createMouseTarget(e, t.withTarget(n.hitTarget), !0)\n                        }\n                        const n = t;\n                        let o = null;\n                        return o = o || be._hitTestContentWidget(e, n), o = o || be._hitTestOverlayWidget(e, n), o = o || be._hitTestMinimap(e, n), o = o || be._hitTestScrollbarSlider(e, n), o = o || be._hitTestViewZone(e, n), o = o || be._hitTestMargin(e, n), o = o || be._hitTestViewCursor(e, n), o = o || be._hitTestTextArea(e, n), o = o || be._hitTestViewLines(e, n, i), o = o || be._hitTestScrollbar(e, n), o || t.fulfill(0)\n                    }\n                    static _hitTestContentWidget(e, t) {\n                        if (ge.isChildOfContentWidgets(t.targetPath) || ge.isChildOfOverflowingContentWidgets(t.targetPath)) {\n                            const i = e.findAttribute(t.target, \"widgetId\");\n                            return i ? t.fulfill(9, null, null, i) : t.fulfill(0)\n                        }\n                        return null\n                    }\n                    static _hitTestOverlayWidget(e, t) {\n                        if (ge.isChildOfOverlayWidgets(t.targetPath)) {\n                            const i = e.findAttribute(t.target, \"widgetId\");\n                            return i ? t.fulfill(12, null, null, i) : t.fulfill(0)\n                        }\n                        return null\n                    }\n                    static _hitTestViewCursor(e, t) {\n                        if (t.target) {\n                            const i = e.lastRenderData.lastViewCursorsRenderData;\n                            for (const e of i)\n                                if (t.target === e.domNode) return t.fulfill(6, e.position, null, {\n                                    mightBeForeignElement: !1\n                                })\n                        }\n                        if (t.isInContentArea) {\n                            const i = e.lastRenderData.lastViewCursorsRenderData,\n                                n = t.mouseContentHorizontalOffset,\n                                o = t.mouseVerticalOffset;\n                            for (const s of i) {\n                                if (n < s.contentLeft) continue;\n                                if (n > s.contentLeft + s.width) continue;\n                                const i = e.getVerticalOffsetForLineNumber(s.position.lineNumber);\n                                if (i <= o && o <= i + s.height) return t.fulfill(6, s.position, null, {\n                                    mightBeForeignElement: !1\n                                })\n                            }\n                        }\n                        return null\n                    }\n                    static _hitTestViewZone(e, t) {\n                        const i = e.getZoneAtCoord(t.mouseVerticalOffset);\n                        if (i) {\n                            const e = t.isInContentArea ? 8 : 5;\n                            return t.fulfill(e, i.position, null, i)\n                        }\n                        return null\n                    }\n                    static _hitTestTextArea(e, t) {\n                        return ge.isTextArea(t.targetPath) ? e.lastRenderData.lastTextareaPosition ? t.fulfill(6, e.lastRenderData.lastTextareaPosition, null, {\n                            mightBeForeignElement: !1\n                        }) : t.fulfill(1, e.lastRenderData.lastTextareaPosition) : null\n                    }\n                    static _hitTestMargin(e, t) {\n                        if (t.isInMarginArea) {\n                            const i = e.getFullLineRangeAtCoord(t.mouseVerticalOffset),\n                                n = i.range.getStartPosition();\n                            let o = Math.abs(t.pos.x - t.editorPos.x);\n                            const s = {\n                                isAfterLines: i.isAfterLines,\n                                glyphMarginLeft: e.layoutInfo.glyphMarginLeft,\n                                glyphMarginWidth: e.layoutInfo.glyphMarginWidth,\n                                lineNumbersWidth: e.layoutInfo.lineNumbersWidth,\n                                offsetX: o\n                            };\n                            return o -= e.layoutInfo.glyphMarginLeft, o <= e.layoutInfo.glyphMarginWidth ? t.fulfill(2, n, i.range, s) : (o -= e.layoutInfo.glyphMarginWidth, o <= e.layoutInfo.lineNumbersWidth ? t.fulfill(3, n, i.range, s) : (o -= e.layoutInfo.lineNumbersWidth, t.fulfill(4, n, i.range, s)))\n                        }\n                        return null\n                    }\n                    static _hitTestViewLines(e, t, i) {\n                        if (!ge.isChildOfViewLines(t.targetPath)) return null;\n                        if (e.isInTopPadding(t.mouseVerticalOffset)) return t.fulfill(7, new se.L(1, 1), null, ve);\n                        if (e.isAfterLines(t.mouseVerticalOffset) || e.isInBottomPadding(t.mouseVerticalOffset)) {\n                            const i = e.model.getLineCount(),\n                                n = e.model.getLineMaxColumn(i);\n                            return t.fulfill(7, new se.L(i, n), null, ve)\n                        }\n                        if (i) {\n                            if (ge.isStrictChildOfViewLines(t.targetPath)) {\n                                const i = e.getLineNumberAtVerticalOffset(t.mouseVerticalOffset);\n                                if (0 === e.model.getLineLength(i)) {\n                                    const n = e.getLineWidth(i),\n                                        o = _e(t.mouseContentHorizontalOffset - n);\n                                    return t.fulfill(7, new se.L(i, 1), null, o)\n                                }\n                                const n = e.getLineWidth(i);\n                                if (t.mouseContentHorizontalOffset >= n) {\n                                    const o = _e(t.mouseContentHorizontalOffset - n),\n                                        s = new se.L(i, e.model.getLineMaxColumn(i));\n                                    return t.fulfill(7, s, null, o)\n                                }\n                            }\n                            return t.fulfill(0)\n                        }\n                        const n = be._doHitTest(e, t);\n                        return 1 === n.type ? be.createMouseTargetFromHitTestPosition(e, t, n.spanNode, n.position, n.injectedText) : this._createMouseTarget(e, t.withTarget(n.hitTarget), !0)\n                    }\n                    static _hitTestMinimap(e, t) {\n                        if (ge.isChildOfMinimap(t.targetPath)) {\n                            const i = e.getLineNumberAtVerticalOffset(t.mouseVerticalOffset),\n                                n = e.model.getLineMaxColumn(i);\n                            return t.fulfill(11, new se.L(i, n))\n                        }\n                        return null\n                    }\n                    static _hitTestScrollbarSlider(e, t) {\n                        if (ge.isChildOfScrollableElement(t.targetPath) && t.target && 1 === t.target.nodeType) {\n                            const i = t.target.className;\n                            if (i && /\\b(slider|scrollbar)\\b/.test(i)) {\n                                const i = e.getLineNumberAtVerticalOffset(t.mouseVerticalOffset),\n                                    n = e.model.getLineMaxColumn(i);\n                                return t.fulfill(11, new se.L(i, n))\n                            }\n                        }\n                        return null\n                    }\n                    static _hitTestScrollbar(e, t) {\n                        if (ge.isChildOfScrollableElement(t.targetPath)) {\n                            const i = e.getLineNumberAtVerticalOffset(t.mouseVerticalOffset),\n                                n = e.model.getLineMaxColumn(i);\n                            return t.fulfill(11, new se.L(i, n))\n                        }\n                        return null\n                    }\n                    getMouseColumn(e, t) {\n                        const i = this._context.configuration.options,\n                            n = i.get(129),\n                            o = this._context.viewLayout.getCurrentScrollLeft() + t.x - e.x - n.contentLeft;\n                        return be._getMouseColumn(o, i.get(43).typicalHalfwidthCharacterWidth)\n                    }\n                    static _getMouseColumn(e, t) {\n                        if (e < 0) return 1;\n                        return Math.round(e / t) + 1\n                    }\n                    static createMouseTargetFromHitTestPosition(e, t, i, n, o) {\n                        const s = n.lineNumber,\n                            r = n.column,\n                            a = e.getLineWidth(s);\n                        if (t.mouseContentHorizontalOffset > a) {\n                            const e = _e(t.mouseContentHorizontalOffset - a);\n                            return t.fulfill(7, n, null, e)\n                        }\n                        const l = e.visibleRangeForPosition(s, r);\n                        if (!l) return t.fulfill(0, n);\n                        const c = l.left;\n                        if (t.mouseContentHorizontalOffset === c) return t.fulfill(6, n, null, {\n                            mightBeForeignElement: !!o\n                        });\n                        const d = [];\n                        if (d.push({\n                                offset: l.left,\n                                column: r\n                            }), r > 1) {\n                            const t = e.visibleRangeForPosition(s, r - 1);\n                            t && d.push({\n                                offset: t.left,\n                                column: r - 1\n                            })\n                        }\n                        if (r < e.model.getLineMaxColumn(s)) {\n                            const t = e.visibleRangeForPosition(s, r + 1);\n                            t && d.push({\n                                offset: t.left,\n                                column: r + 1\n                            })\n                        }\n                        d.sort(((e, t) => e.offset - t.offset));\n                        const h = t.pos.toClientCoordinates(),\n                            u = i.getBoundingClientRect(),\n                            g = u.left <= h.clientX && h.clientX <= u.right;\n                        for (let e = 1; e < d.length; e++) {\n                            const i = d[e - 1],\n                                r = d[e];\n                            if (i.offset <= t.mouseContentHorizontalOffset && t.mouseContentHorizontalOffset <= r.offset) {\n                                const e = new re.e(s, i.column, s, r.column);\n                                return t.fulfill(6, n, e, {\n                                    mightBeForeignElement: !g || !!o\n                                })\n                            }\n                        }\n                        return t.fulfill(6, n, null, {\n                            mightBeForeignElement: !g || !!o\n                        })\n                    }\n                    static _doHitTestWithCaretRangeFromPoint(e, t) {\n                        const i = e.getLineNumberAtVerticalOffset(t.mouseVerticalOffset),\n                            n = e.getVerticalOffsetForLineNumber(i) + Math.floor(e.lineHeight / 2);\n                        let o = t.pos.y + (n - t.mouseVerticalOffset);\n                        o <= t.editorPos.y && (o = t.editorPos.y + 1), o >= t.editorPos.y + e.layoutInfo.height && (o = t.editorPos.y + e.layoutInfo.height - 1);\n                        const s = new S(t.pos.x, o),\n                            r = this._actualDoHitTestWithCaretRangeFromPoint(e, s.toClientCoordinates());\n                        return 1 === r.type ? r : this._actualDoHitTestWithCaretRangeFromPoint(e, t.pos.toClientCoordinates())\n                    }\n                    static _actualDoHitTestWithCaretRangeFromPoint(e, t) {\n                        const i = c.Ay(e.viewDomNode);\n                        let n;\n                        if (n = i ? void 0 === i.caretRangeFromPoint ? function(e, t, i) {\n                                const n = document.createRange();\n                                let o = e.elementFromPoint(t, i);\n                                if (null !== o) {\n                                    for (; o && o.firstChild && o.firstChild.nodeType !== o.firstChild.TEXT_NODE && o.lastChild && o.lastChild.firstChild;) o = o.lastChild;\n                                    const e = o.getBoundingClientRect(),\n                                        i = window.getComputedStyle(o, null).getPropertyValue(\"font\"),\n                                        s = o.innerText;\n                                    let r, a = e.left,\n                                        l = 0;\n                                    if (t > e.left + e.width) l = s.length;\n                                    else {\n                                        const e = we.getInstance();\n                                        for (let n = 0; n < s.length + 1; n++) {\n                                            if (r = e.getCharWidth(s.charAt(n), i) / 2, a += r, t < a) {\n                                                l = n;\n                                                break\n                                            }\n                                            a += r\n                                        }\n                                    }\n                                    n.setStart(o.firstChild, l), n.setEnd(o.firstChild, l)\n                                }\n                                return n\n                            }(i, t.clientX, t.clientY) : i.caretRangeFromPoint(t.clientX, t.clientY) : document.caretRangeFromPoint(t.clientX, t.clientY), !n || !n.startContainer) return new ce;\n                        const o = n.startContainer;\n                        if (o.nodeType === o.TEXT_NODE) {\n                            const t = o.parentNode,\n                                i = t ? t.parentNode : null,\n                                s = i ? i.parentNode : null;\n                            return (s && s.nodeType === s.ELEMENT_NODE ? s.className : null) === Q.CLASS_NAME ? oe.createFromDOMInfo(e, t, n.startOffset) : new ce(o.parentNode)\n                        }\n                        if (o.nodeType === o.ELEMENT_NODE) {\n                            const t = o.parentNode,\n                                i = t ? t.parentNode : null;\n                            return (i && i.nodeType === i.ELEMENT_NODE ? i.className : null) === Q.CLASS_NAME ? oe.createFromDOMInfo(e, o, o.textContent.length) : new ce(o)\n                        }\n                        return new ce\n                    }\n                    static _doHitTestWithCaretPositionFromPoint(e, t) {\n                        const i = document.caretPositionFromPoint(t.clientX, t.clientY);\n                        if (i.offsetNode.nodeType === i.offsetNode.TEXT_NODE) {\n                            const t = i.offsetNode.parentNode,\n                                n = t ? t.parentNode : null,\n                                o = n ? n.parentNode : null;\n                            return (o && o.nodeType === o.ELEMENT_NODE ? o.className : null) === Q.CLASS_NAME ? oe.createFromDOMInfo(e, i.offsetNode.parentNode, i.offset) : new ce(i.offsetNode.parentNode)\n                        }\n                        if (i.offsetNode.nodeType === i.offsetNode.ELEMENT_NODE) {\n                            const t = i.offsetNode.parentNode,\n                                n = t && t.nodeType === t.ELEMENT_NODE ? t.className : null,\n                                o = t ? t.parentNode : null,\n                                s = o && o.nodeType === o.ELEMENT_NODE ? o.className : null;\n                            if (n === Q.CLASS_NAME) {\n                                const t = i.offsetNode.childNodes[Math.min(i.offset, i.offsetNode.childNodes.length - 1)];\n                                if (t) return oe.createFromDOMInfo(e, t, 0)\n                            } else if (s === Q.CLASS_NAME) return oe.createFromDOMInfo(e, i.offsetNode, 0)\n                        }\n                        return new ce(i.offsetNode)\n                    }\n                    static _snapToSoftTabBoundary(e, t) {\n                        const i = t.getLineContent(e.lineNumber),\n                            {\n                                tabSize: n\n                            } = t.getTextModelOptions(),\n                            o = le.l.atomicPosition(i, e.column - 1, n, 2);\n                        return -1 !== o ? new se.L(e.lineNumber, o + 1) : e\n                    }\n                    static _doHitTest(e, t) {\n                        let i = new ce;\n                        if (\"function\" == typeof document.caretRangeFromPoint ? i = this._doHitTestWithCaretRangeFromPoint(e, t) : document.caretPositionFromPoint && (i = this._doHitTestWithCaretPositionFromPoint(e, t.pos.toClientCoordinates())), 1 === i.type) {\n                            const t = e.model.getInjectedTextAt(i.position),\n                                n = e.model.normalizePosition(i.position, 2);\n                            !t && n.equals(i.position) || (i = new de(n, i.spanNode, t))\n                        }\n                        return 1 === i.type && e.stickyTabStops && (i = new de(this._snapToSoftTabBoundary(i.position, e.model), i.spanNode, i.injectedText)), i\n                    }\n                }\n                class we {\n                    constructor() {\n                        this._cache = {}, this._canvas = document.createElement(\"canvas\")\n                    }\n                    static getInstance() {\n                        return we._INSTANCE || (we._INSTANCE = new we), we._INSTANCE\n                    }\n                    getCharWidth(e, t) {\n                        const i = e + t;\n                        if (this._cache[i]) return this._cache[i];\n                        const n = this._canvas.getContext(\"2d\");\n                        n.font = t;\n                        const o = n.measureText(e).width;\n                        return this._cache[i] = o, o\n                    }\n                }\n                we._INSTANCE = null;\n                var ye = i(82334);\n\n                function Ce(e) {\n                    return function(t, i) {\n                        let n = !1;\n                        return e && (n = e.mouseTargetIsWidget(i)), n || i.preventDefault(), i\n                    }\n                }\n                class xe extends M {\n                    constructor(e, t, i) {\n                        super(), this._context = e, this.viewController = t, this.viewHelper = i, this.mouseTargetFactory = new be(this._context, i), this._mouseDownOperation = this._register(new Se(this._context, this.viewController, this.viewHelper, ((e, t) => this._createMouseTarget(e, t)), (e => this._getMouseColumn(e)))), this.lastMouseLeaveTime = -1, this._height = this._context.configuration.options.get(129).height;\n                        const n = new I(this.viewHelper.viewDomNode);\n                        this._register(n.onContextMenu(this.viewHelper.viewDomNode, (e => this._onContextMenu(e, !0)))), this._register(n.onMouseMoveThrottled(this.viewHelper.viewDomNode, (e => this._onMouseMove(e)), Ce(this.mouseTargetFactory), xe.MOUSE_MOVE_MINIMUM_TIME)), this._register(n.onMouseUp(this.viewHelper.viewDomNode, (e => this._onMouseUp(e)))), this._register(n.onMouseLeave(this.viewHelper.viewDomNode, (e => this._onMouseLeave(e)))), this._register(n.onMouseDown(this.viewHelper.viewDomNode, (e => this._onMouseDown(e))));\n                        this._register(c.nm(this.viewHelper.viewDomNode, c.tw.MOUSE_WHEEL, (e => {\n                            if (this.viewController.emitMouseWheel(e), !this._context.configuration.options.get(67)) return;\n                            const t = new y.q(e);\n                            if (b.dz ? (e.metaKey || e.ctrlKey) && !e.shiftKey && !e.altKey : e.ctrlKey && !e.metaKey && !e.shiftKey && !e.altKey) {\n                                const e = ye.C.getZoomLevel(),\n                                    i = t.deltaY > 0 ? 1 : -1;\n                                ye.C.setZoomLevel(e + i), t.preventDefault(), t.stopPropagation()\n                            }\n                        }), {\n                            capture: !0,\n                            passive: !1\n                        })), this._context.addEventHandler(this)\n                    }\n                    dispose() {\n                        this._context.removeEventHandler(this), super.dispose()\n                    }\n                    onConfigurationChanged(e) {\n                        if (e.hasChanged(129)) {\n                            const e = this._context.configuration.options.get(129).height;\n                            this._height !== e && (this._height = e, this._mouseDownOperation.onHeightChanged())\n                        }\n                        return !1\n                    }\n                    onCursorStateChanged(e) {\n                        return this._mouseDownOperation.onCursorStateChanged(e), !1\n                    }\n                    onFocusChanged(e) {\n                        return !1\n                    }\n                    onScrollChanged(e) {\n                        return this._mouseDownOperation.onScrollChanged(), !1\n                    }\n                    getTargetAtClientPoint(e, t) {\n                        const i = new k(e, t).toPageCoordinates(),\n                            n = N(this.viewHelper.viewDomNode);\n                        return i.y < n.y || i.y > n.y + n.height || i.x < n.x || i.x > n.x + n.width ? null : this.mouseTargetFactory.createMouseTarget(this.viewHelper.getLastRenderData(), n, i, null)\n                    }\n                    _createMouseTarget(e, t) {\n                        let i = e.target;\n                        if (!this.viewHelper.viewDomNode.contains(i)) {\n                            const t = c.Ay(this.viewHelper.viewDomNode);\n                            t && (i = t.elementsFromPoint(e.posx, e.posy).find((e => this.viewHelper.viewDomNode.contains(e))))\n                        }\n                        return this.mouseTargetFactory.createMouseTarget(this.viewHelper.getLastRenderData(), e.editorPos, e.pos, t ? i : null)\n                    }\n                    _getMouseColumn(e) {\n                        return this.mouseTargetFactory.getMouseColumn(e.editorPos, e.pos)\n                    }\n                    _onContextMenu(e, t) {\n                        this.viewController.emitContextMenu({\n                            event: e,\n                            target: this._createMouseTarget(e, t)\n                        })\n                    }\n                    _onMouseMove(e) {\n                        if (this._mouseDownOperation.isActive()) return;\n                        e.timestamp < this.lastMouseLeaveTime || this.viewController.emitMouseMove({\n                            event: e,\n                            target: this._createMouseTarget(e, !0)\n                        })\n                    }\n                    _onMouseLeave(e) {\n                        this.lastMouseLeaveTime = (new Date).getTime(), this.viewController.emitMouseLeave({\n                            event: e,\n                            target: null\n                        })\n                    }\n                    _onMouseUp(e) {\n                        this.viewController.emitMouseUp({\n                            event: e,\n                            target: this._createMouseTarget(e, !0)\n                        })\n                    }\n                    _onMouseDown(e) {\n                        const t = this._createMouseTarget(e, !0),\n                            i = 6 === t.type || 7 === t.type,\n                            n = 2 === t.type || 3 === t.type || 4 === t.type,\n                            o = 3 === t.type,\n                            s = this._context.configuration.options.get(97),\n                            r = 8 === t.type || 5 === t.type,\n                            a = 9 === t.type;\n                        let l = e.leftButton || e.middleButton;\n                        b.dz && e.leftButton && e.ctrlKey && (l = !1);\n                        const c = () => {\n                            e.preventDefault(), this.viewHelper.focusTextArea()\n                        };\n                        if (l && (i || o && s)) c(), this._mouseDownOperation.start(t.type, e);\n                        else if (n) e.preventDefault();\n                        else if (r) {\n                            const i = t.detail;\n                            this.viewHelper.shouldSuppressMouseDownOnViewZone(i.viewZoneId) && (c(), this._mouseDownOperation.start(t.type, e), e.preventDefault())\n                        } else a && this.viewHelper.shouldSuppressMouseDownOnWidget(t.detail) && (c(), e.preventDefault());\n                        this.viewController.emitMouseDown({\n                            event: e,\n                            target: t\n                        })\n                    }\n                }\n                xe.MOUSE_MOVE_MINIMUM_TIME = 100;\n                class Se extends u.JT {\n                    constructor(e, t, i, n, o) {\n                        super(), this._context = e, this._viewController = t, this._viewHelper = i, this._createMouseTarget = n, this._getMouseColumn = o, this._mouseMoveMonitor = this._register(new T(this._viewHelper.viewDomNode)), this._onScrollTimeout = this._register(new C._F), this._mouseState = new ke, this._currentSelection = new v.Y(1, 1, 1, 1), this._isActive = !1, this._lastMouseEvent = null\n                    }\n                    dispose() {\n                        super.dispose()\n                    }\n                    isActive() {\n                        return this._isActive\n                    }\n                    _onMouseDownThenMove(e) {\n                        this._lastMouseEvent = e, this._mouseState.setModifiers(e);\n                        const t = this._findMousePosition(e, !0);\n                        t && (this._mouseState.isDragAndDrop ? this._viewController.emitMouseDrag({\n                            event: e,\n                            target: t\n                        }) : this._dispatchMouse(t, !0))\n                    }\n                    start(e, t) {\n                        this._lastMouseEvent = t, this._mouseState.setStartedOnLineNumbers(3 === e), this._mouseState.setStartButtons(t), this._mouseState.setModifiers(t);\n                        const i = this._findMousePosition(t, !0);\n                        if (!i || !i.position) return;\n                        this._mouseState.trySetCount(t.detail, i.position), t.detail = this._mouseState.count;\n                        const n = this._context.configuration.options;\n                        if (!n.get(80) && n.get(31) && !n.get(18) && !this._mouseState.altKey && t.detail < 2 && !this._isActive && !this._currentSelection.isEmpty() && 6 === i.type && i.position && this._currentSelection.containsPosition(i.position)) return this._mouseState.isDragAndDrop = !0, this._isActive = !0, void this._mouseMoveMonitor.startMonitoring(t.target, t.buttons, Ce(null), (e => this._onMouseDownThenMove(e)), (e => {\n                            const t = this._findMousePosition(this._lastMouseEvent, !0);\n                            e && e instanceof KeyboardEvent ? this._viewController.emitMouseDropCanceled() : this._viewController.emitMouseDrop({\n                                event: this._lastMouseEvent,\n                                target: t ? this._createMouseTarget(this._lastMouseEvent, !0) : null\n                            }), this._stop()\n                        }));\n                        this._mouseState.isDragAndDrop = !1, this._dispatchMouse(i, t.shiftKey), this._isActive || (this._isActive = !0, this._mouseMoveMonitor.startMonitoring(t.target, t.buttons, Ce(null), (e => this._onMouseDownThenMove(e)), (() => this._stop())))\n                    }\n                    _stop() {\n                        this._isActive = !1, this._onScrollTimeout.cancel()\n                    }\n                    onHeightChanged() {\n                        this._mouseMoveMonitor.stopMonitoring()\n                    }\n                    onScrollChanged() {\n                        this._isActive && this._onScrollTimeout.setIfNotSet((() => {\n                            if (!this._lastMouseEvent) return;\n                            const e = this._findMousePosition(this._lastMouseEvent, !1);\n                            e && (this._mouseState.isDragAndDrop || this._dispatchMouse(e, !0))\n                        }), 10)\n                    }\n                    onCursorStateChanged(e) {\n                        this._currentSelection = e.selections[0]\n                    }\n                    _getPositionOutsideEditor(e) {\n                        const t = e.editorPos,\n                            i = this._context.model,\n                            n = this._context.viewLayout,\n                            o = this._getMouseColumn(e);\n                        if (e.posy < t.y) {\n                            const i = Math.max(n.getCurrentScrollTop() - (t.y - e.posy), 0),\n                                s = pe.getZoneAtCoord(this._context, i);\n                            if (s) {\n                                const e = this._helpPositionJumpOverViewZone(s);\n                                if (e) return new ue(null, 13, o, e)\n                            }\n                            const r = n.getLineNumberAtVerticalOffset(i);\n                            return new ue(null, 13, o, new se.L(r, 1))\n                        }\n                        if (e.posy > t.y + t.height) {\n                            const s = n.getCurrentScrollTop() + (e.posy - t.y),\n                                r = pe.getZoneAtCoord(this._context, s);\n                            if (r) {\n                                const e = this._helpPositionJumpOverViewZone(r);\n                                if (e) return new ue(null, 13, o, e)\n                            }\n                            const a = n.getLineNumberAtVerticalOffset(s);\n                            return new ue(null, 13, o, new se.L(a, i.getLineMaxColumn(a)))\n                        }\n                        const s = n.getLineNumberAtVerticalOffset(n.getCurrentScrollTop() + (e.posy - t.y));\n                        return e.posx < t.x ? new ue(null, 13, o, new se.L(s, 1)) : e.posx > t.x + t.width ? new ue(null, 13, o, new se.L(s, i.getLineMaxColumn(s))) : null\n                    }\n                    _findMousePosition(e, t) {\n                        const i = this._getPositionOutsideEditor(e);\n                        if (i) return i;\n                        const n = this._createMouseTarget(e, t);\n                        if (!n.position) return null;\n                        if (8 === n.type || 5 === n.type) {\n                            const e = this._helpPositionJumpOverViewZone(n.detail);\n                            if (e) return new ue(n.element, n.type, n.mouseColumn, e, null, n.detail)\n                        }\n                        return n\n                    }\n                    _helpPositionJumpOverViewZone(e) {\n                        const t = new se.L(this._currentSelection.selectionStartLineNumber, this._currentSelection.selectionStartColumn),\n                            i = e.positionBefore,\n                            n = e.positionAfter;\n                        return i && n ? i.isBefore(t) ? i : n : null\n                    }\n                    _dispatchMouse(e, t) {\n                        e.position && this._viewController.dispatchMouse({\n                            position: e.position,\n                            mouseColumn: e.mouseColumn,\n                            startedOnLineNumbers: this._mouseState.startedOnLineNumbers,\n                            inSelectionMode: t,\n                            mouseDownCount: this._mouseState.count,\n                            altKey: this._mouseState.altKey,\n                            ctrlKey: this._mouseState.ctrlKey,\n                            metaKey: this._mouseState.metaKey,\n                            shiftKey: this._mouseState.shiftKey,\n                            leftButton: this._mouseState.leftButton,\n                            middleButton: this._mouseState.middleButton\n                        })\n                    }\n                }\n                class ke {\n                    constructor() {\n                        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\n                    }\n                    get altKey() {\n                        return this._altKey\n                    }\n                    get ctrlKey() {\n                        return this._ctrlKey\n                    }\n                    get metaKey() {\n                        return this._metaKey\n                    }\n                    get shiftKey() {\n                        return this._shiftKey\n                    }\n                    get leftButton() {\n                        return this._leftButton\n                    }\n                    get middleButton() {\n                        return this._middleButton\n                    }\n                    get startedOnLineNumbers() {\n                        return this._startedOnLineNumbers\n                    }\n                    get count() {\n                        return this._lastMouseDownCount\n                    }\n                    setModifiers(e) {\n                        this._altKey = e.altKey, this._ctrlKey = e.ctrlKey, this._metaKey = e.metaKey, this._shiftKey = e.shiftKey\n                    }\n                    setStartButtons(e) {\n                        this._leftButton = e.leftButton, this._middleButton = e.middleButton\n                    }\n                    setStartedOnLineNumbers(e) {\n                        this._startedOnLineNumbers = e\n                    }\n                    trySetCount(e, t) {\n                        const i = (new Date).getTime();\n                        i - this._lastSetMouseDownCountTime > ke.CLEAR_MOUSE_DOWN_COUNT_TIME && (e = 1), this._lastSetMouseDownCountTime = i, e > this._lastMouseDownCount + 1 && (e = this._lastMouseDownCount + 1), this._lastMouseDownPosition && this._lastMouseDownPosition.equals(t) ? this._lastMouseDownPositionEqualCount++ : this._lastMouseDownPositionEqualCount = 1, this._lastMouseDownPosition = t, this._lastMouseDownCount = Math.min(e, this._lastMouseDownPositionEqualCount)\n                    }\n                }\n                ke.CLEAR_MOUSE_DOWN_COUNT_TIME = 400;\n                var Le = i(10161),\n                    Ne = i(35715);\n                class De extends xe {\n                    constructor(e, t, i) {\n                        super(e, t, i), this._register(w.o.addTarget(this.viewHelper.linesContentDomNode)), this._register(c.nm(this.viewHelper.linesContentDomNode, w.t.Tap, (e => this.onTap(e)))), this._register(c.nm(this.viewHelper.linesContentDomNode, w.t.Change, (e => this.onChange(e)))), this._register(c.nm(this.viewHelper.linesContentDomNode, w.t.Contextmenu, (e => this._onContextMenu(new D(e, this.viewHelper.viewDomNode), !1)))), this._lastPointerType = \"mouse\", this._register(c.nm(this.viewHelper.linesContentDomNode, \"pointerdown\", (e => {\n                            const t = e.pointerType;\n                            this._lastPointerType = \"mouse\" !== t ? \"touch\" === t ? \"touch\" : \"pen\" : \"mouse\"\n                        })));\n                        const n = new E(this.viewHelper.viewDomNode);\n                        this._register(n.onPointerMoveThrottled(this.viewHelper.viewDomNode, (e => this._onMouseMove(e)), Ce(this.mouseTargetFactory), xe.MOUSE_MOVE_MINIMUM_TIME)), this._register(n.onPointerUp(this.viewHelper.viewDomNode, (e => this._onMouseUp(e)))), this._register(n.onPointerLeave(this.viewHelper.viewDomNode, (e => this._onMouseLeave(e)))), this._register(n.onPointerDown(this.viewHelper.viewDomNode, (e => this._onMouseDown(e))))\n                    }\n                    onTap(e) {\n                        if (!e.initialTarget || !this.viewHelper.linesContentDomNode.contains(e.initialTarget)) return;\n                        e.preventDefault(), this.viewHelper.focusTextArea();\n                        const t = this._createMouseTarget(new D(e, this.viewHelper.viewDomNode), !1);\n                        t.position && this.viewController.dispatchMouse({\n                            position: t.position,\n                            mouseColumn: t.position.column,\n                            startedOnLineNumbers: !1,\n                            mouseDownCount: e.tapCount,\n                            inSelectionMode: !1,\n                            altKey: !1,\n                            ctrlKey: !1,\n                            metaKey: !1,\n                            shiftKey: !1,\n                            leftButton: !1,\n                            middleButton: !1\n                        })\n                    }\n                    onChange(e) {\n                        \"touch\" === this._lastPointerType && this._context.model.deltaScrollNow(-e.translationX, -e.translationY)\n                    }\n                    _onMouseDown(e) {\n                        \"touch\" !== e.browserEvent.pointerType && super._onMouseDown(e)\n                    }\n                }\n                class Ie extends xe {\n                    constructor(e, t, i) {\n                        super(e, t, i), this._register(w.o.addTarget(this.viewHelper.linesContentDomNode)), this._register(c.nm(this.viewHelper.linesContentDomNode, w.t.Tap, (e => this.onTap(e)))), this._register(c.nm(this.viewHelper.linesContentDomNode, w.t.Change, (e => this.onChange(e)))), this._register(c.nm(this.viewHelper.linesContentDomNode, w.t.Contextmenu, (e => this._onContextMenu(new D(e, this.viewHelper.viewDomNode), !1))))\n                    }\n                    onTap(e) {\n                        e.preventDefault(), this.viewHelper.focusTextArea();\n                        const t = this._createMouseTarget(new D(e, this.viewHelper.viewDomNode), !1);\n                        if (t.position) {\n                            const e = document.createEvent(\"CustomEvent\");\n                            e.initEvent(Ne.pd.Tap, !1, !0), this.viewHelper.dispatchTextAreaEvent(e), this.viewController.moveTo(t.position)\n                        }\n                    }\n                    onChange(e) {\n                        this._context.model.deltaScrollNow(-e.translationX, -e.translationY)\n                    }\n                }\n                class Ee extends u.JT {\n                    constructor(e, t, i) {\n                        super(), b.gn && Le.D.pointerEvents ? this.handler = this._register(new De(e, t, i)) : window.TouchEvent ? this.handler = this._register(new Ie(e, t, i)) : this.handler = this._register(new xe(e, t, i))\n                    }\n                    getTargetAtClientPoint(e, t) {\n                        return this.handler.getTargetAtClientPoint(e, t)\n                    }\n                }\n                i(67142);\n                var Te = i(97295),\n                    Me = i(15887);\n                i(91364);\n                class Ae extends M {}\n                var Oe = i(27869),\n                    Pe = i(97781);\n                class Re extends Ae {\n                    constructor(e) {\n                        super(), this._context = e, this._readConfig(), this._lastCursorModelPosition = new se.L(1, 1), this._renderResult = null, this._activeLineNumber = 1, this._context.addEventHandler(this)\n                    }\n                    _readConfig() {\n                        const e = this._context.configuration.options;\n                        this._lineHeight = e.get(58);\n                        const t = e.get(59);\n                        this._renderLineNumbers = t.renderType, this._renderCustomLineNumbers = t.renderFn, this._renderFinalNewline = e.get(83);\n                        const i = e.get(129);\n                        this._lineNumbersLeft = i.lineNumbersLeft, this._lineNumbersWidth = i.lineNumbersWidth\n                    }\n                    dispose() {\n                        this._context.removeEventHandler(this), this._renderResult = null, super.dispose()\n                    }\n                    onConfigurationChanged(e) {\n                        return this._readConfig(), !0\n                    }\n                    onCursorStateChanged(e) {\n                        const t = e.selections[0].getPosition();\n                        this._lastCursorModelPosition = this._context.model.coordinatesConverter.convertViewPositionToModelPosition(t);\n                        let i = !1;\n                        return this._activeLineNumber !== t.lineNumber && (this._activeLineNumber = t.lineNumber, i = !0), 2 !== this._renderLineNumbers && 3 !== this._renderLineNumbers || (i = !0), i\n                    }\n                    onFlushed(e) {\n                        return !0\n                    }\n                    onLinesChanged(e) {\n                        return !0\n                    }\n                    onLinesDeleted(e) {\n                        return !0\n                    }\n                    onLinesInserted(e) {\n                        return !0\n                    }\n                    onScrollChanged(e) {\n                        return e.scrollTopChanged\n                    }\n                    onZonesChanged(e) {\n                        return !0\n                    }\n                    _getLineRenderLineNumber(e) {\n                        const t = this._context.model.coordinatesConverter.convertViewPositionToModelPosition(new se.L(e, 1));\n                        if (1 !== t.column) return \"\";\n                        const i = t.lineNumber;\n                        if (this._renderCustomLineNumbers) return this._renderCustomLineNumbers(i);\n                        if (2 === this._renderLineNumbers) {\n                            const e = Math.abs(this._lastCursorModelPosition.lineNumber - i);\n                            return 0 === e ? '<span class=\"relative-current-line-number\">' + i + \"</span>\" : String(e)\n                        }\n                        return 3 === this._renderLineNumbers ? this._lastCursorModelPosition.lineNumber === i || i % 10 == 0 ? String(i) : \"\" : String(i)\n                    }\n                    prepareRender(e) {\n                        if (0 === this._renderLineNumbers) return void(this._renderResult = null);\n                        const t = b.IJ ? this._lineHeight % 2 == 0 ? \" lh-even\" : \" lh-odd\" : \"\",\n                            i = e.visibleRange.startLineNumber,\n                            n = e.visibleRange.endLineNumber,\n                            o = '<div class=\"' + Re.CLASS_NAME + t + '\" style=\"left:' + this._lineNumbersLeft + \"px;width:\" + this._lineNumbersWidth + 'px;\">',\n                            s = this._context.model.getLineCount(),\n                            r = [];\n                        for (let e = i; e <= n; e++) {\n                            const n = e - i;\n                            if (!this._renderFinalNewline && e === s && 0 === this._context.model.getLineLength(e)) {\n                                r[n] = \"\";\n                                continue\n                            }\n                            const a = this._getLineRenderLineNumber(e);\n                            a ? e === this._activeLineNumber ? r[n] = '<div class=\"active-line-number ' + Re.CLASS_NAME + t + '\" style=\"left:' + this._lineNumbersLeft + \"px;width:\" + this._lineNumbersWidth + 'px;\">' + a + \"</div>\" : r[n] = o + a + \"</div>\" : r[n] = \"\"\n                        }\n                        this._renderResult = r\n                    }\n                    render(e, t) {\n                        if (!this._renderResult) return \"\";\n                        const i = t - e;\n                        return i < 0 || i >= this._renderResult.length ? \"\" : this._renderResult[i]\n                    }\n                }\n                Re.CLASS_NAME = \"line-numbers\", (0, Pe.Ic)(((e, t) => {\n                    const i = e.getColor(Oe.hw);\n                    i && t.addRule(`.monaco-editor .line-numbers { color: ${i}; }`);\n                    const n = e.getColor(Oe.DD);\n                    n && t.addRule(`.monaco-editor .line-numbers.active-line-number { color: ${n}; }`)\n                }));\n                class Fe extends A {\n                    constructor(e) {\n                        super(e);\n                        const t = this._context.configuration.options,\n                            i = t.get(129);\n                        this._canUseLayerHinting = !t.get(28), this._contentLeft = i.contentLeft, this._glyphMarginLeft = i.glyphMarginLeft, this._glyphMarginWidth = i.glyphMarginWidth, this._domNode = (0, _.X)(document.createElement(\"div\")), this._domNode.setClassName(Fe.OUTER_CLASS_NAME), this._domNode.setPosition(\"absolute\"), this._domNode.setAttribute(\"role\", \"presentation\"), this._domNode.setAttribute(\"aria-hidden\", \"true\"), this._glyphMarginBackgroundDomNode = (0, _.X)(document.createElement(\"div\")), this._glyphMarginBackgroundDomNode.setClassName(Fe.CLASS_NAME), this._domNode.appendChild(this._glyphMarginBackgroundDomNode)\n                    }\n                    dispose() {\n                        super.dispose()\n                    }\n                    getDomNode() {\n                        return this._domNode\n                    }\n                    onConfigurationChanged(e) {\n                        const t = this._context.configuration.options,\n                            i = t.get(129);\n                        return this._canUseLayerHinting = !t.get(28), this._contentLeft = i.contentLeft, this._glyphMarginLeft = i.glyphMarginLeft, this._glyphMarginWidth = i.glyphMarginWidth, !0\n                    }\n                    onScrollChanged(e) {\n                        return super.onScrollChanged(e) || e.scrollTopChanged\n                    }\n                    prepareRender(e) {}\n                    render(e) {\n                        this._domNode.setLayerHinting(this._canUseLayerHinting), this._domNode.setContain(\"strict\");\n                        const t = e.scrollTop - e.bigNumbersDelta;\n                        this._domNode.setTop(-t);\n                        const i = Math.min(e.scrollHeight, 1e6);\n                        this._domNode.setHeight(i), this._domNode.setWidth(this._contentLeft), this._glyphMarginBackgroundDomNode.setLeft(this._glyphMarginLeft), this._glyphMarginBackgroundDomNode.setWidth(this._glyphMarginWidth), this._glyphMarginBackgroundDomNode.setHeight(i)\n                    }\n                }\n                Fe.CLASS_NAME = \"glyph-margin\", Fe.OUTER_CLASS_NAME = \"margin\";\n                var Be = i(59410),\n                    Ve = i(96542);\n                class We {\n                    constructor(e, t, i) {\n                        this._visibleTextAreaBrand = void 0, this.top = e, this.left = t, this.width = i\n                    }\n                    setWidth(e) {\n                        return new We(this.top, this.left, e)\n                    }\n                }\n                const He = m.vU;\n                class ze extends A {\n                    constructor(e, t, i) {\n                        super(e), this._primaryCursorPosition = new se.L(1, 1), this._primaryCursorVisibleRange = null, this._viewController = t, this._viewHelper = i, this._scrollLeft = 0, this._scrollTop = 0;\n                        const n = this._context.configuration.options,\n                            o = n.get(129);\n                        this._setAccessibilityOptions(n), this._contentLeft = o.contentLeft, this._contentWidth = o.contentWidth, this._contentHeight = o.height, this._fontInfo = n.get(43), this._lineHeight = n.get(58), this._emptySelectionClipboard = n.get(32), this._copyWithSyntaxHighlighting = n.get(21), this._visibleTextArea = null, this._selections = [new v.Y(1, 1, 1, 1)], this._modelSelections = [new v.Y(1, 1, 1, 1)], this._lastRenderPosition = null, this.textArea = (0, _.X)(document.createElement(\"textarea\")), O.write(this.textArea, 6), this.textArea.setClassName(`inputarea ${Ve.S}`), this.textArea.setAttribute(\"wrap\", \"off\"), 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(\"tabindex\", String(n.get(111))), this.textArea.setAttribute(\"role\", \"textbox\"), this.textArea.setAttribute(\"aria-roledescription\", l.N(\"editor\", \"editor\")), this.textArea.setAttribute(\"aria-multiline\", \"true\"), this.textArea.setAttribute(\"aria-haspopup\", \"false\"), this.textArea.setAttribute(\"aria-autocomplete\", \"both\"), n.get(30) && n.get(80) && this.textArea.setAttribute(\"readonly\", \"true\"), this.textAreaCover = (0, _.X)(document.createElement(\"div\")), this.textAreaCover.setPosition(\"absolute\");\n                        const s = {\n                                getLineCount: () => this._context.model.getLineCount(),\n                                getLineMaxColumn: e => this._context.model.getLineMaxColumn(e),\n                                getValueInRange: (e, t) => this._context.model.getValueInRange(e, t)\n                            },\n                            r = {\n                                getDataToCopy: e => {\n                                    const t = this._context.model.getPlainTextToCopy(this._modelSelections, this._emptySelectionClipboard, b.ED),\n                                        i = this._context.model.getEOL(),\n                                        n = this._emptySelectionClipboard && 1 === this._modelSelections.length && this._modelSelections[0].isEmpty(),\n                                        o = Array.isArray(t) ? t : null,\n                                        s = Array.isArray(t) ? t.join(i) : t;\n                                    let r, a = null;\n                                    if (e && (Ne.RA.forceCopyWithSyntaxHighlighting || this._copyWithSyntaxHighlighting && s.length < 65536)) {\n                                        const e = this._context.model.getRichTextToCopy(this._modelSelections, this._emptySelectionClipboard);\n                                        e && (r = e.html, a = e.mode)\n                                    }\n                                    return {\n                                        isFromEmptySelection: n,\n                                        multicursorText: o,\n                                        text: s,\n                                        html: r,\n                                        mode: a\n                                    }\n                                },\n                                getScreenReaderContent: e => {\n                                    if (1 === this._accessibilitySupport) {\n                                        if (b.dz) {\n                                            const e = this._selections[0];\n                                            if (e.isEmpty()) {\n                                                const t = e.getStartPosition();\n                                                let i = this._getWordBeforePosition(t);\n                                                if (0 === i.length && (i = this._getCharacterBeforePosition(t)), i.length > 0) return new Me.un(i, i.length, i.length, t, t)\n                                            }\n                                        }\n                                        return Me.un.EMPTY\n                                    }\n                                    if (m.Dt) {\n                                        const e = this._selections[0];\n                                        if (e.isEmpty()) {\n                                            const t = e.getStartPosition(),\n                                                [i, n] = this._getAndroidWordAtPosition(t);\n                                            if (i.length > 0) return new Me.un(i, n, n, t, t)\n                                        }\n                                        return Me.un.EMPTY\n                                    }\n                                    return Me.ee.fromEditorSelection(e, s, this._selections[0], this._accessibilityPageSize, 0 === this._accessibilitySupport)\n                                },\n                                deduceModelPosition: (e, t, i) => this._context.model.deduceModelPositionRelativeToViewPosition(e, t, i)\n                            };\n                        this._textAreaInput = this._register(new Ne.Fz(r, this.textArea)), this._register(this._textAreaInput.onKeyDown((e => {\n                            this._viewController.emitKeyDown(e)\n                        }))), this._register(this._textAreaInput.onKeyUp((e => {\n                            this._viewController.emitKeyUp(e)\n                        }))), this._register(this._textAreaInput.onPaste((e => {\n                            let t = !1,\n                                i = null,\n                                n = null;\n                            e.metadata && (t = this._emptySelectionClipboard && !!e.metadata.isFromEmptySelection, i = void 0 !== e.metadata.multicursorText ? e.metadata.multicursorText : null, n = e.metadata.mode), this._viewController.paste(e.text, t, i, n)\n                        }))), this._register(this._textAreaInput.onCut((() => {\n                            this._viewController.cut()\n                        }))), this._register(this._textAreaInput.onType((e => {\n                            e.replacePrevCharCnt || e.replaceNextCharCnt || e.positionDelta ? (Me.al && console.log(` => compositionType: <<${e.text}>>, ${e.replacePrevCharCnt}, ${e.replaceNextCharCnt}, ${e.positionDelta}`), this._viewController.compositionType(e.text, e.replacePrevCharCnt, e.replaceNextCharCnt, e.positionDelta)) : (Me.al && console.log(` => type: <<${e.text}>>`), this._viewController.type(e.text))\n                        }))), this._register(this._textAreaInput.onSelectionChangeRequest((e => {\n                            this._viewController.setSelection(e)\n                        }))), this._register(this._textAreaInput.onCompositionStart((e => {\n                            const t = this._selections[0].startLineNumber,\n                                i = this._selections[0].startColumn + e.revealDeltaColumns;\n                            this._context.model.revealRange(\"keyboard\", !0, new re.e(t, i, t, i), 0, 1);\n                            const n = this._viewHelper.visibleRangeForPositionRelativeToEditor(t, i);\n                            n && (this._visibleTextArea = new We(this._context.viewLayout.getVerticalOffsetForLineNumber(t), n.left, He ? 0 : 1), this._render()), this.textArea.setClassName(`inputarea ${Ve.S} ime-input`), this._viewController.compositionStart(), this._context.model.onCompositionStart()\n                        }))), this._register(this._textAreaInput.onCompositionUpdate((e => {\n                            this._visibleTextArea && (this._visibleTextArea = this._visibleTextArea.setWidth(function(e, t) {\n                                const i = document.createElement(\"canvas\").getContext(\"2d\");\n                                i.font = (n = t, o = \"normal\", s = n.fontWeight, r = n.fontSize, a = n.lineHeight, l = n.fontFamily, `${o} normal ${s} ${r}px / ${a}px ${l}`);\n                                var n, o, s, r, a, l;\n                                const c = i.measureText(e);\n                                return m.vU ? c.width + 2 : c.width\n                            }(e.data, this._fontInfo)), this._render())\n                        }))), this._register(this._textAreaInput.onCompositionEnd((() => {\n                            this._visibleTextArea = null, this._render(), this.textArea.setClassName(`inputarea ${Ve.S}`), this._viewController.compositionEnd(), this._context.model.onCompositionEnd()\n                        }))), this._register(this._textAreaInput.onFocus((() => {\n                            this._context.model.setHasFocus(!0)\n                        }))), this._register(this._textAreaInput.onBlur((() => {\n                            this._context.model.setHasFocus(!1)\n                        })))\n                    }\n                    dispose() {\n                        super.dispose()\n                    }\n                    _getAndroidWordAtPosition(e) {\n                        const t = this._context.model.getLineContent(e.lineNumber),\n                            i = (0, Be.u)('`~!@#$%^&*()-=+[{]}\\\\|;:\",.<>/?');\n                        let n = !0,\n                            o = e.column,\n                            s = !0,\n                            r = e.column,\n                            a = 0;\n                        for (; a < 50 && (n || s);) {\n                            if (n && o <= 1 && (n = !1), n) {\n                                const e = t.charCodeAt(o - 2);\n                                0 !== i.get(e) ? n = !1 : o--\n                            }\n                            if (s && r > t.length && (s = !1), s) {\n                                const e = t.charCodeAt(r - 1);\n                                0 !== i.get(e) ? s = !1 : r++\n                            }\n                            a++\n                        }\n                        return [t.substring(o - 1, r - 1), e.column - o]\n                    }\n                    _getWordBeforePosition(e) {\n                        const t = this._context.model.getLineContent(e.lineNumber),\n                            i = (0, Be.u)(this._context.configuration.options.get(115));\n                        let n = e.column,\n                            o = 0;\n                        for (; n > 1;) {\n                            const s = t.charCodeAt(n - 2);\n                            if (0 !== i.get(s) || o > 50) return t.substring(n - 1, e.column - 1);\n                            o++, n--\n                        }\n                        return t.substring(0, e.column - 1)\n                    }\n                    _getCharacterBeforePosition(e) {\n                        if (e.column > 1) {\n                            const t = this._context.model.getLineContent(e.lineNumber).charAt(e.column - 2);\n                            if (!Te.ZG(t.charCodeAt(0))) return t\n                        }\n                        return \"\"\n                    }\n                    _getAriaLabel(e) {\n                        return 1 === e.get(2) ? l.N(\"accessibilityOffAriaLabel\", \"The editor is not accessible at this time. Press {0} for options.\", b.IJ ? \"Shift+Alt+F1\" : \"Alt+F1\") : e.get(4)\n                    }\n                    _setAccessibilityOptions(e) {\n                        this._accessibilitySupport = e.get(2);\n                        const t = e.get(3);\n                        2 === this._accessibilitySupport && t === K.BH.accessibilityPageSize.defaultValue ? this._accessibilityPageSize = 500 : this._accessibilityPageSize = t\n                    }\n                    onConfigurationChanged(e) {\n                        const t = this._context.configuration.options,\n                            i = t.get(129);\n                        return this._setAccessibilityOptions(t), this._contentLeft = i.contentLeft, this._contentWidth = i.contentWidth, this._contentHeight = i.height, this._fontInfo = t.get(43), this._lineHeight = t.get(58), this._emptySelectionClipboard = t.get(32), this._copyWithSyntaxHighlighting = t.get(21), this.textArea.setAttribute(\"aria-label\", this._getAriaLabel(t)), this.textArea.setAttribute(\"tabindex\", String(t.get(111))), (e.hasChanged(30) || e.hasChanged(80)) && (t.get(30) && t.get(80) ? this.textArea.setAttribute(\"readonly\", \"true\") : this.textArea.removeAttribute(\"readonly\")), e.hasChanged(2) && this._textAreaInput.writeScreenReaderContent(\"strategy changed\"), !0\n                    }\n                    onCursorStateChanged(e) {\n                        return this._selections = e.selections.slice(0), this._modelSelections = e.modelSelections.slice(0), this._textAreaInput.writeScreenReaderContent(\"selection changed\"), !0\n                    }\n                    onDecorationsChanged(e) {\n                        return !0\n                    }\n                    onFlushed(e) {\n                        return !0\n                    }\n                    onLinesChanged(e) {\n                        return !0\n                    }\n                    onLinesDeleted(e) {\n                        return !0\n                    }\n                    onLinesInserted(e) {\n                        return !0\n                    }\n                    onScrollChanged(e) {\n                        return this._scrollLeft = e.scrollLeft, this._scrollTop = e.scrollTop, !0\n                    }\n                    onZonesChanged(e) {\n                        return !0\n                    }\n                    isFocused() {\n                        return this._textAreaInput.isFocused()\n                    }\n                    focusTextArea() {\n                        this._textAreaInput.focusTextArea()\n                    }\n                    getLastRenderData() {\n                        return this._lastRenderPosition\n                    }\n                    setAriaOptions(e) {\n                        e.activeDescendant ? (this.textArea.setAttribute(\"aria-haspopup\", \"true\"), this.textArea.setAttribute(\"aria-autocomplete\", \"list\"), this.textArea.setAttribute(\"aria-activedescendant\", e.activeDescendant)) : (this.textArea.setAttribute(\"aria-haspopup\", \"false\"), this.textArea.setAttribute(\"aria-autocomplete\", \"both\"), this.textArea.removeAttribute(\"aria-activedescendant\")), e.role && this.textArea.setAttribute(\"role\", e.role)\n                    }\n                    prepareRender(e) {\n                        this._primaryCursorPosition = new se.L(this._selections[0].positionLineNumber, this._selections[0].positionColumn), this._primaryCursorVisibleRange = e.visibleRangeForPosition(this._primaryCursorPosition)\n                    }\n                    render(e) {\n                        this._textAreaInput.writeScreenReaderContent(\"render\"), this._render()\n                    }\n                    _render() {\n                        if (this._visibleTextArea) return void this._renderInsideEditor(null, this._visibleTextArea.top - this._scrollTop, this._contentLeft + this._visibleTextArea.left - this._scrollLeft, this._visibleTextArea.width, this._lineHeight);\n                        if (!this._primaryCursorVisibleRange) return void this._renderAtTopLeft();\n                        const e = this._contentLeft + this._primaryCursorVisibleRange.left - this._scrollLeft;\n                        if (e < this._contentLeft || e > this._contentLeft + this._contentWidth) return void this._renderAtTopLeft();\n                        const t = this._context.viewLayout.getVerticalOffsetForLineNumber(this._selections[0].positionLineNumber) - this._scrollTop;\n                        t < 0 || t > this._contentHeight ? this._renderAtTopLeft() : b.dz ? this._renderInsideEditor(this._primaryCursorPosition, t, e, He ? 0 : 1, this._lineHeight) : this._renderInsideEditor(this._primaryCursorPosition, t, e, He ? 0 : 1, He ? 0 : 1)\n                    }\n                    _renderInsideEditor(e, t, i, n, o) {\n                        this._lastRenderPosition = e;\n                        const s = this.textArea,\n                            r = this.textAreaCover;\n                        p.V.applyFontInfo(s, this._fontInfo), s.setTop(t), s.setLeft(i), s.setWidth(n), s.setHeight(o), r.setTop(0), r.setLeft(0), r.setWidth(0), r.setHeight(0)\n                    }\n                    _renderAtTopLeft() {\n                        this._lastRenderPosition = null;\n                        const e = this.textArea,\n                            t = this.textAreaCover;\n                        if (p.V.applyFontInfo(e, this._fontInfo), e.setTop(0), e.setLeft(0), t.setTop(0), t.setLeft(0), He) return e.setWidth(0), e.setHeight(0), t.setWidth(0), void t.setHeight(0);\n                        e.setWidth(1), e.setHeight(1), t.setWidth(1), t.setHeight(1);\n                        const i = this._context.configuration.options;\n                        i.get(49) ? t.setClassName(\"monaco-editor-background textAreaCover \" + Fe.OUTER_CLASS_NAME) : 0 !== i.get(59).renderType ? t.setClassName(\"monaco-editor-background textAreaCover \" + Re.CLASS_NAME) : t.setClassName(\"monaco-editor-background textAreaCover\")\n                    }\n                }\n                var je = i(18728);\n                class Ue {\n                    constructor(e, t, i, n) {\n                        this.configuration = e, this.viewModel = t, this.userInputEvents = i, this.commandDelegate = n\n                    }\n                    paste(e, t, i, n) {\n                        this.commandDelegate.paste(e, t, i, n)\n                    }\n                    type(e) {\n                        this.commandDelegate.type(e)\n                    }\n                    compositionType(e, t, i, n) {\n                        this.commandDelegate.compositionType(e, t, i, n)\n                    }\n                    compositionStart() {\n                        this.commandDelegate.startComposition()\n                    }\n                    compositionEnd() {\n                        this.commandDelegate.endComposition()\n                    }\n                    cut() {\n                        this.commandDelegate.cut()\n                    }\n                    setSelection(e) {\n                        je.CoreNavigationCommands.SetSelection.runCoreEditorCommand(this.viewModel, {\n                            source: \"keyboard\",\n                            selection: e\n                        })\n                    }\n                    _validateViewColumn(e) {\n                        const t = this.viewModel.getLineMinColumn(e.lineNumber);\n                        return e.column < t ? new se.L(e.lineNumber, t) : e\n                    }\n                    _hasMulticursorModifier(e) {\n                        switch (this.configuration.options.get(69)) {\n                            case \"altKey\":\n                                return e.altKey;\n                            case \"ctrlKey\":\n                                return e.ctrlKey;\n                            case \"metaKey\":\n                                return e.metaKey;\n                            default:\n                                return !1\n                        }\n                    }\n                    _hasNonMulticursorModifier(e) {\n                        switch (this.configuration.options.get(69)) {\n                            case \"altKey\":\n                                return e.ctrlKey || e.metaKey;\n                            case \"ctrlKey\":\n                                return e.altKey || e.metaKey;\n                            case \"metaKey\":\n                                return e.ctrlKey || e.altKey;\n                            default:\n                                return !1\n                        }\n                    }\n                    dispatchMouse(e) {\n                        const t = this.configuration.options,\n                            i = b.IJ && t.get(95),\n                            n = t.get(18);\n                        e.middleButton && !i ? this._columnSelect(e.position, e.mouseColumn, e.inSelectionMode) : e.startedOnLineNumbers ? this._hasMulticursorModifier(e) ? e.inSelectionMode ? this._lastCursorLineSelect(e.position) : this._createCursor(e.position, !0) : e.inSelectionMode ? this._lineSelectDrag(e.position) : this._lineSelect(e.position) : e.mouseDownCount >= 4 ? this._selectAll() : 3 === e.mouseDownCount ? this._hasMulticursorModifier(e) ? e.inSelectionMode ? this._lastCursorLineSelectDrag(e.position) : this._lastCursorLineSelect(e.position) : e.inSelectionMode ? this._lineSelectDrag(e.position) : this._lineSelect(e.position) : 2 === e.mouseDownCount ? this._hasMulticursorModifier(e) ? this._lastCursorWordSelect(e.position) : e.inSelectionMode ? this._wordSelectDrag(e.position) : this._wordSelect(e.position) : this._hasMulticursorModifier(e) ? this._hasNonMulticursorModifier(e) || (e.shiftKey ? this._columnSelect(e.position, e.mouseColumn, !0) : e.inSelectionMode ? this._lastCursorMoveToSelect(e.position) : this._createCursor(e.position, !1)) : e.inSelectionMode ? e.altKey || n ? this._columnSelect(e.position, e.mouseColumn, !0) : this._moveToSelect(e.position) : this.moveTo(e.position)\n                    }\n                    _usualArgs(e) {\n                        return e = this._validateViewColumn(e), {\n                            source: \"mouse\",\n                            position: this._convertViewToModelPosition(e),\n                            viewPosition: e\n                        }\n                    }\n                    moveTo(e) {\n                        je.CoreNavigationCommands.MoveTo.runCoreEditorCommand(this.viewModel, this._usualArgs(e))\n                    }\n                    _moveToSelect(e) {\n                        je.CoreNavigationCommands.MoveToSelect.runCoreEditorCommand(this.viewModel, this._usualArgs(e))\n                    }\n                    _columnSelect(e, t, i) {\n                        e = this._validateViewColumn(e), je.CoreNavigationCommands.ColumnSelect.runCoreEditorCommand(this.viewModel, {\n                            source: \"mouse\",\n                            position: this._convertViewToModelPosition(e),\n                            viewPosition: e,\n                            mouseColumn: t,\n                            doColumnSelect: i\n                        })\n                    }\n                    _createCursor(e, t) {\n                        e = this._validateViewColumn(e), je.CoreNavigationCommands.CreateCursor.runCoreEditorCommand(this.viewModel, {\n                            source: \"mouse\",\n                            position: this._convertViewToModelPosition(e),\n                            viewPosition: e,\n                            wholeLine: t\n                        })\n                    }\n                    _lastCursorMoveToSelect(e) {\n                        je.CoreNavigationCommands.LastCursorMoveToSelect.runCoreEditorCommand(this.viewModel, this._usualArgs(e))\n                    }\n                    _wordSelect(e) {\n                        je.CoreNavigationCommands.WordSelect.runCoreEditorCommand(this.viewModel, this._usualArgs(e))\n                    }\n                    _wordSelectDrag(e) {\n                        je.CoreNavigationCommands.WordSelectDrag.runCoreEditorCommand(this.viewModel, this._usualArgs(e))\n                    }\n                    _lastCursorWordSelect(e) {\n                        je.CoreNavigationCommands.LastCursorWordSelect.runCoreEditorCommand(this.viewModel, this._usualArgs(e))\n                    }\n                    _lineSelect(e) {\n                        je.CoreNavigationCommands.LineSelect.runCoreEditorCommand(this.viewModel, this._usualArgs(e))\n                    }\n                    _lineSelectDrag(e) {\n                        je.CoreNavigationCommands.LineSelectDrag.runCoreEditorCommand(this.viewModel, this._usualArgs(e))\n                    }\n                    _lastCursorLineSelect(e) {\n                        je.CoreNavigationCommands.LastCursorLineSelect.runCoreEditorCommand(this.viewModel, this._usualArgs(e))\n                    }\n                    _lastCursorLineSelectDrag(e) {\n                        je.CoreNavigationCommands.LastCursorLineSelectDrag.runCoreEditorCommand(this.viewModel, this._usualArgs(e))\n                    }\n                    _selectAll() {\n                        je.CoreNavigationCommands.SelectAll.runCoreEditorCommand(this.viewModel, {\n                            source: \"mouse\"\n                        })\n                    }\n                    _convertViewToModelPosition(e) {\n                        return this.viewModel.coordinatesConverter.convertViewPositionToModelPosition(e)\n                    }\n                    emitKeyDown(e) {\n                        this.userInputEvents.emitKeyDown(e)\n                    }\n                    emitKeyUp(e) {\n                        this.userInputEvents.emitKeyUp(e)\n                    }\n                    emitContextMenu(e) {\n                        this.userInputEvents.emitContextMenu(e)\n                    }\n                    emitMouseMove(e) {\n                        this.userInputEvents.emitMouseMove(e)\n                    }\n                    emitMouseLeave(e) {\n                        this.userInputEvents.emitMouseLeave(e)\n                    }\n                    emitMouseUp(e) {\n                        this.userInputEvents.emitMouseUp(e)\n                    }\n                    emitMouseDown(e) {\n                        this.userInputEvents.emitMouseDown(e)\n                    }\n                    emitMouseDrag(e) {\n                        this.userInputEvents.emitMouseDrag(e)\n                    }\n                    emitMouseDrop(e) {\n                        this.userInputEvents.emitMouseDrop(e)\n                    }\n                    emitMouseDropCanceled() {\n                        this.userInputEvents.emitMouseDropCanceled()\n                    }\n                    emitMouseWheel(e) {\n                        this.userInputEvents.emitMouseWheel(e)\n                    }\n                }\n                class $e {\n                    constructor(e) {\n                        this.onKeyDown = null, this.onKeyUp = null, this.onContextMenu = null, this.onMouseMove = null, this.onMouseLeave = null, this.onMouseDown = null, this.onMouseUp = null, this.onMouseDrag = null, this.onMouseDrop = null, this.onMouseDropCanceled = null, this.onMouseWheel = null, this._coordinatesConverter = e\n                    }\n                    emitKeyDown(e) {\n                        this.onKeyDown && this.onKeyDown(e)\n                    }\n                    emitKeyUp(e) {\n                        this.onKeyUp && this.onKeyUp(e)\n                    }\n                    emitContextMenu(e) {\n                        this.onContextMenu && this.onContextMenu(this._convertViewToModelMouseEvent(e))\n                    }\n                    emitMouseMove(e) {\n                        this.onMouseMove && this.onMouseMove(this._convertViewToModelMouseEvent(e))\n                    }\n                    emitMouseLeave(e) {\n                        this.onMouseLeave && this.onMouseLeave(this._convertViewToModelMouseEvent(e))\n                    }\n                    emitMouseDown(e) {\n                        this.onMouseDown && this.onMouseDown(this._convertViewToModelMouseEvent(e))\n                    }\n                    emitMouseUp(e) {\n                        this.onMouseUp && this.onMouseUp(this._convertViewToModelMouseEvent(e))\n                    }\n                    emitMouseDrag(e) {\n                        this.onMouseDrag && this.onMouseDrag(this._convertViewToModelMouseEvent(e))\n                    }\n                    emitMouseDrop(e) {\n                        this.onMouseDrop && this.onMouseDrop(this._convertViewToModelMouseEvent(e))\n                    }\n                    emitMouseDropCanceled() {\n                        this.onMouseDropCanceled && this.onMouseDropCanceled()\n                    }\n                    emitMouseWheel(e) {\n                        this.onMouseWheel && this.onMouseWheel(e)\n                    }\n                    _convertViewToModelMouseEvent(e) {\n                        return e.target ? {\n                            event: e.event,\n                            target: this._convertViewToModelMouseTarget(e.target)\n                        } : e\n                    }\n                    _convertViewToModelMouseTarget(e) {\n                        return $e.convertViewToModelMouseTarget(e, this._coordinatesConverter)\n                    }\n                    static convertViewToModelMouseTarget(e, t) {\n                        return new Ke(e.element, e.type, e.mouseColumn, e.position ? t.convertViewPositionToModelPosition(e.position) : null, e.range ? t.convertViewRangeToModelRange(e.range) : null, e.detail)\n                    }\n                }\n                class Ke {\n                    constructor(e, t, i, n, o, s) {\n                        this.element = e, this.type = t, this.mouseColumn = i, this.position = n, this.range = o, this.detail = s\n                    }\n                    toString() {\n                        return ue.toString(this)\n                    }\n                }\n                var qe, Ze = i(50072);\n                class Ge {\n                    constructor(e) {\n                        this._createLine = e, this._set(1, [])\n                    }\n                    flush() {\n                        this._set(1, [])\n                    }\n                    _set(e, t) {\n                        this._lines = t, this._rendLineNumberStart = e\n                    }\n                    _get() {\n                        return {\n                            rendLineNumberStart: this._rendLineNumberStart,\n                            lines: this._lines\n                        }\n                    }\n                    getStartLineNumber() {\n                        return this._rendLineNumberStart\n                    }\n                    getEndLineNumber() {\n                        return this._rendLineNumberStart + this._lines.length - 1\n                    }\n                    getCount() {\n                        return this._lines.length\n                    }\n                    getLine(e) {\n                        const t = e - this._rendLineNumberStart;\n                        if (t < 0 || t >= this._lines.length) throw new Error(\"Illegal value for lineNumber\");\n                        return this._lines[t]\n                    }\n                    onLinesDeleted(e, t) {\n                        if (0 === this.getCount()) return null;\n                        const i = this.getStartLineNumber(),\n                            n = this.getEndLineNumber();\n                        if (t < i) {\n                            const i = t - e + 1;\n                            return this._rendLineNumberStart -= i, null\n                        }\n                        if (e > n) return null;\n                        let o = 0,\n                            s = 0;\n                        for (let r = i; r <= n; r++) {\n                            const i = r - this._rendLineNumberStart;\n                            e <= r && r <= t && (0 === s ? (o = i, s = 1) : s++)\n                        }\n                        if (e < i) {\n                            let n = 0;\n                            n = t < i ? t - e + 1 : i - e, this._rendLineNumberStart -= n\n                        }\n                        return this._lines.splice(o, s)\n                    }\n                    onLinesChanged(e, t) {\n                        if (0 === this.getCount()) return !1;\n                        const i = this.getStartLineNumber(),\n                            n = this.getEndLineNumber();\n                        let o = !1;\n                        for (let s = e; s <= t; s++) s >= i && s <= n && (this._lines[s - this._rendLineNumberStart].onContentChanged(), o = !0);\n                        return o\n                    }\n                    onLinesInserted(e, t) {\n                        if (0 === this.getCount()) return null;\n                        const i = t - e + 1,\n                            n = this.getStartLineNumber(),\n                            o = this.getEndLineNumber();\n                        if (e <= n) return this._rendLineNumberStart += i, null;\n                        if (e > o) return null;\n                        if (i + e > o) {\n                            return this._lines.splice(e - this._rendLineNumberStart, o - e + 1)\n                        }\n                        const s = [];\n                        for (let e = 0; e < i; e++) s[e] = this._createLine();\n                        const r = e - this._rendLineNumberStart,\n                            a = this._lines.slice(0, r),\n                            l = this._lines.slice(r, this._lines.length - i),\n                            c = this._lines.slice(this._lines.length - i, this._lines.length);\n                        return this._lines = a.concat(s).concat(l), c\n                    }\n                    onTokensChanged(e) {\n                        if (0 === this.getCount()) return !1;\n                        const t = this.getStartLineNumber(),\n                            i = this.getEndLineNumber();\n                        let n = !1;\n                        for (let o = 0, s = e.length; o < s; o++) {\n                            const s = e[o];\n                            if (s.toLineNumber < t || s.fromLineNumber > i) continue;\n                            const r = Math.max(t, s.fromLineNumber),\n                                a = Math.min(i, s.toLineNumber);\n                            for (let e = r; e <= a; e++) {\n                                const t = e - this._rendLineNumberStart;\n                                this._lines[t].onTokensChanged(), n = !0\n                            }\n                        }\n                        return n\n                    }\n                }\n                class Ye {\n                    constructor(e) {\n                        this._host = e, this.domNode = this._createDomNode(), this._linesCollection = new Ge((() => this._host.createVisibleLine()))\n                    }\n                    _createDomNode() {\n                        const e = (0, _.X)(document.createElement(\"div\"));\n                        return e.setClassName(\"view-layer\"), e.setPosition(\"absolute\"), e.domNode.setAttribute(\"role\", \"presentation\"), e.domNode.setAttribute(\"aria-hidden\", \"true\"), e\n                    }\n                    onConfigurationChanged(e) {\n                        return !!e.hasChanged(129)\n                    }\n                    onFlushed(e) {\n                        return this._linesCollection.flush(), !0\n                    }\n                    onLinesChanged(e) {\n                        return this._linesCollection.onLinesChanged(e.fromLineNumber, e.toLineNumber)\n                    }\n                    onLinesDeleted(e) {\n                        const t = this._linesCollection.onLinesDeleted(e.fromLineNumber, e.toLineNumber);\n                        if (t)\n                            for (let e = 0, i = t.length; e < i; e++) {\n                                const i = t[e].getDomNode();\n                                i && this.domNode.domNode.removeChild(i)\n                            }\n                        return !0\n                    }\n                    onLinesInserted(e) {\n                        const t = this._linesCollection.onLinesInserted(e.fromLineNumber, e.toLineNumber);\n                        if (t)\n                            for (let e = 0, i = t.length; e < i; e++) {\n                                const i = t[e].getDomNode();\n                                i && this.domNode.domNode.removeChild(i)\n                            }\n                        return !0\n                    }\n                    onScrollChanged(e) {\n                        return e.scrollTopChanged\n                    }\n                    onTokensChanged(e) {\n                        return this._linesCollection.onTokensChanged(e.ranges)\n                    }\n                    onZonesChanged(e) {\n                        return !0\n                    }\n                    getStartLineNumber() {\n                        return this._linesCollection.getStartLineNumber()\n                    }\n                    getEndLineNumber() {\n                        return this._linesCollection.getEndLineNumber()\n                    }\n                    getVisibleLine(e) {\n                        return this._linesCollection.getLine(e)\n                    }\n                    renderLines(e) {\n                        const t = this._linesCollection._get(),\n                            i = new Qe(this.domNode.domNode, this._host, e),\n                            n = {\n                                rendLineNumberStart: t.rendLineNumberStart,\n                                lines: t.lines,\n                                linesLength: t.lines.length\n                            },\n                            o = i.render(n, e.startLineNumber, e.endLineNumber, e.relativeVerticalOffset);\n                        this._linesCollection._set(o.rendLineNumberStart, o.lines)\n                    }\n                }\n                class Qe {\n                    constructor(e, t, i) {\n                        this.domNode = e, this.host = t, this.viewportData = i\n                    }\n                    render(e, t, i, n) {\n                        const o = {\n                            rendLineNumberStart: e.rendLineNumberStart,\n                            lines: e.lines.slice(0),\n                            linesLength: e.linesLength\n                        };\n                        if (o.rendLineNumberStart + o.linesLength - 1 < t || i < o.rendLineNumberStart) {\n                            o.rendLineNumberStart = t, o.linesLength = i - t + 1, o.lines = [];\n                            for (let e = t; e <= i; e++) o.lines[e - t] = this.host.createVisibleLine();\n                            return this._finishRendering(o, !0, n), o\n                        }\n                        if (this._renderUntouchedLines(o, Math.max(t - o.rendLineNumberStart, 0), Math.min(i - o.rendLineNumberStart, o.linesLength - 1), n, t), o.rendLineNumberStart > t) {\n                            const e = t,\n                                s = Math.min(i, o.rendLineNumberStart - 1);\n                            e <= s && (this._insertLinesBefore(o, e, s, n, t), o.linesLength += s - e + 1)\n                        } else if (o.rendLineNumberStart < t) {\n                            const e = Math.min(o.linesLength, t - o.rendLineNumberStart);\n                            e > 0 && (this._removeLinesBefore(o, e), o.linesLength -= e)\n                        }\n                        if (o.rendLineNumberStart = t, o.rendLineNumberStart + o.linesLength - 1 < i) {\n                            const e = o.rendLineNumberStart + o.linesLength,\n                                s = i;\n                            e <= s && (this._insertLinesAfter(o, e, s, n, t), o.linesLength += s - e + 1)\n                        } else if (o.rendLineNumberStart + o.linesLength - 1 > i) {\n                            const e = Math.max(0, i - o.rendLineNumberStart + 1),\n                                t = o.linesLength - 1 - e + 1;\n                            t > 0 && (this._removeLinesAfter(o, t), o.linesLength -= t)\n                        }\n                        return this._finishRendering(o, !1, n), o\n                    }\n                    _renderUntouchedLines(e, t, i, n, o) {\n                        const s = e.rendLineNumberStart,\n                            r = e.lines;\n                        for (let e = t; e <= i; e++) {\n                            const t = s + e;\n                            r[e].layoutLine(t, n[t - o])\n                        }\n                    }\n                    _insertLinesBefore(e, t, i, n, o) {\n                        const s = [];\n                        let r = 0;\n                        for (let e = t; e <= i; e++) s[r++] = this.host.createVisibleLine();\n                        e.lines = s.concat(e.lines)\n                    }\n                    _removeLinesBefore(e, t) {\n                        for (let i = 0; i < t; i++) {\n                            const t = e.lines[i].getDomNode();\n                            t && this.domNode.removeChild(t)\n                        }\n                        e.lines.splice(0, t)\n                    }\n                    _insertLinesAfter(e, t, i, n, o) {\n                        const s = [];\n                        let r = 0;\n                        for (let e = t; e <= i; e++) s[r++] = this.host.createVisibleLine();\n                        e.lines = e.lines.concat(s)\n                    }\n                    _removeLinesAfter(e, t) {\n                        const i = e.linesLength - t;\n                        for (let n = 0; n < t; n++) {\n                            const t = e.lines[i + n].getDomNode();\n                            t && this.domNode.removeChild(t)\n                        }\n                        e.lines.splice(i, t)\n                    }\n                    _finishRenderingNewLines(e, t, i, n) {\n                        Qe._ttPolicy && (i = Qe._ttPolicy.createHTML(i));\n                        const o = this.domNode.lastChild;\n                        t || !o ? this.domNode.innerHTML = i : o.insertAdjacentHTML(\"afterend\", i);\n                        let s = this.domNode.lastChild;\n                        for (let t = e.linesLength - 1; t >= 0; t--) {\n                            const i = e.lines[t];\n                            n[t] && (i.setDomNode(s), s = s.previousSibling)\n                        }\n                    }\n                    _finishRenderingInvalidLines(e, t, i) {\n                        const n = document.createElement(\"div\");\n                        Qe._ttPolicy && (t = Qe._ttPolicy.createHTML(t)), n.innerHTML = t;\n                        for (let t = 0; t < e.linesLength; t++) {\n                            const o = e.lines[t];\n                            if (i[t]) {\n                                const e = n.firstChild,\n                                    t = o.getDomNode();\n                                t.parentNode.replaceChild(e, t), o.setDomNode(e)\n                            }\n                        }\n                    }\n                    _finishRendering(e, t, i) {\n                        const n = Qe._sb,\n                            o = e.linesLength,\n                            s = e.lines,\n                            r = e.rendLineNumberStart,\n                            a = []; {\n                            n.reset();\n                            let l = !1;\n                            for (let e = 0; e < o; e++) {\n                                const t = s[e];\n                                a[e] = !1;\n                                if (t.getDomNode()) continue;\n                                t.renderLine(e + r, i[e], this.viewportData, n) && (a[e] = !0, l = !0)\n                            }\n                            l && this._finishRenderingNewLines(e, t, n.build(), a)\n                        } {\n                            n.reset();\n                            let t = !1;\n                            const l = [];\n                            for (let e = 0; e < o; e++) {\n                                const o = s[e];\n                                if (l[e] = !1, a[e]) continue;\n                                o.renderLine(e + r, i[e], this.viewportData, n) && (l[e] = !0, t = !0)\n                            }\n                            t && this._finishRenderingInvalidLines(e, n.build(), l)\n                        }\n                    }\n                }\n                Qe._ttPolicy = null === (qe = window.trustedTypes) || void 0 === qe ? void 0 : qe.createPolicy(\"editorViewLayer\", {\n                    createHTML: e => e\n                }), Qe._sb = (0, Ze.l$)(1e5);\n                class Xe extends A {\n                    constructor(e) {\n                        super(e), this._visibleLines = new Ye(this), this.domNode = this._visibleLines.domNode, this._dynamicOverlays = [], this._isFocused = !1, this.domNode.setClassName(\"view-overlays\")\n                    }\n                    shouldRender() {\n                        if (super.shouldRender()) return !0;\n                        for (let e = 0, t = this._dynamicOverlays.length; e < t; e++) {\n                            if (this._dynamicOverlays[e].shouldRender()) return !0\n                        }\n                        return !1\n                    }\n                    dispose() {\n                        super.dispose();\n                        for (let e = 0, t = this._dynamicOverlays.length; e < t; e++) {\n                            this._dynamicOverlays[e].dispose()\n                        }\n                        this._dynamicOverlays = []\n                    }\n                    getDomNode() {\n                        return this.domNode\n                    }\n                    createVisibleLine() {\n                        return new Je(this._context.configuration, this._dynamicOverlays)\n                    }\n                    addDynamicOverlay(e) {\n                        this._dynamicOverlays.push(e)\n                    }\n                    onConfigurationChanged(e) {\n                        this._visibleLines.onConfigurationChanged(e);\n                        const t = this._visibleLines.getStartLineNumber(),\n                            i = this._visibleLines.getEndLineNumber();\n                        for (let n = t; n <= i; n++) {\n                            this._visibleLines.getVisibleLine(n).onConfigurationChanged(e)\n                        }\n                        return !0\n                    }\n                    onFlushed(e) {\n                        return this._visibleLines.onFlushed(e)\n                    }\n                    onFocusChanged(e) {\n                        return this._isFocused = e.isFocused, !0\n                    }\n                    onLinesChanged(e) {\n                        return this._visibleLines.onLinesChanged(e)\n                    }\n                    onLinesDeleted(e) {\n                        return this._visibleLines.onLinesDeleted(e)\n                    }\n                    onLinesInserted(e) {\n                        return this._visibleLines.onLinesInserted(e)\n                    }\n                    onScrollChanged(e) {\n                        return this._visibleLines.onScrollChanged(e) || !0\n                    }\n                    onTokensChanged(e) {\n                        return this._visibleLines.onTokensChanged(e)\n                    }\n                    onZonesChanged(e) {\n                        return this._visibleLines.onZonesChanged(e)\n                    }\n                    prepareRender(e) {\n                        const t = this._dynamicOverlays.filter((e => e.shouldRender()));\n                        for (let i = 0, n = t.length; i < n; i++) {\n                            const n = t[i];\n                            n.prepareRender(e), n.onDidRender()\n                        }\n                    }\n                    render(e) {\n                        this._viewOverlaysRender(e), this.domNode.toggleClassName(\"focused\", this._isFocused)\n                    }\n                    _viewOverlaysRender(e) {\n                        this._visibleLines.renderLines(e.viewportData)\n                    }\n                }\n                class Je {\n                    constructor(e, t) {\n                        this._configuration = e, this._lineHeight = this._configuration.options.get(58), this._dynamicOverlays = t, this._domNode = null, this._renderedContent = null\n                    }\n                    getDomNode() {\n                        return this._domNode ? this._domNode.domNode : null\n                    }\n                    setDomNode(e) {\n                        this._domNode = (0, _.X)(e)\n                    }\n                    onContentChanged() {}\n                    onTokensChanged() {}\n                    onConfigurationChanged(e) {\n                        this._lineHeight = this._configuration.options.get(58)\n                    }\n                    renderLine(e, t, i, n) {\n                        let o = \"\";\n                        for (let t = 0, n = this._dynamicOverlays.length; t < n; t++) {\n                            o += this._dynamicOverlays[t].render(i.startLineNumber, e)\n                        }\n                        return this._renderedContent !== o && (this._renderedContent = o, n.appendASCIIString('<div style=\"position:absolute;top:'), n.appendASCIIString(String(t)), n.appendASCIIString(\"px;width:100%;height:\"), n.appendASCIIString(String(this._lineHeight)), n.appendASCIIString('px;\">'), n.appendASCIIString(o), n.appendASCIIString(\"</div>\"), !0)\n                    }\n                    layoutLine(e, t) {\n                        this._domNode && (this._domNode.setTop(t), this._domNode.setHeight(this._lineHeight))\n                    }\n                }\n                class et extends Xe {\n                    constructor(e) {\n                        super(e);\n                        const t = this._context.configuration.options.get(129);\n                        this._contentWidth = t.contentWidth, this.domNode.setHeight(0)\n                    }\n                    onConfigurationChanged(e) {\n                        const t = this._context.configuration.options.get(129);\n                        return this._contentWidth = t.contentWidth, super.onConfigurationChanged(e) || !0\n                    }\n                    onScrollChanged(e) {\n                        return super.onScrollChanged(e) || e.scrollWidthChanged\n                    }\n                    _viewOverlaysRender(e) {\n                        super._viewOverlaysRender(e), this.domNode.setWidth(Math.max(e.scrollWidth, this._contentWidth))\n                    }\n                }\n                class tt extends Xe {\n                    constructor(e) {\n                        super(e);\n                        const t = this._context.configuration.options,\n                            i = t.get(129);\n                        this._contentLeft = i.contentLeft, this.domNode.setClassName(\"margin-view-overlays\"), this.domNode.setWidth(1), p.V.applyFontInfo(this.domNode, t.get(43))\n                    }\n                    onConfigurationChanged(e) {\n                        const t = this._context.configuration.options;\n                        p.V.applyFontInfo(this.domNode, t.get(43));\n                        const i = t.get(129);\n                        return this._contentLeft = i.contentLeft, super.onConfigurationChanged(e) || !0\n                    }\n                    onScrollChanged(e) {\n                        return super.onScrollChanged(e) || e.scrollHeightChanged\n                    }\n                    _viewOverlaysRender(e) {\n                        super._viewOverlaysRender(e);\n                        const t = Math.min(e.scrollHeight, 1e6);\n                        this.domNode.setHeight(t), this.domNode.setWidth(this._contentLeft)\n                    }\n                }\n                class it {\n                    constructor(e, t) {\n                        this._coordinateBrand = void 0, this.top = e, this.left = t\n                    }\n                }\n                class nt extends A {\n                    constructor(e, t) {\n                        super(e), this._viewDomNode = t, this._widgets = {}, this.domNode = (0, _.X)(document.createElement(\"div\")), O.write(this.domNode, 1), this.domNode.setClassName(\"contentWidgets\"), this.domNode.setPosition(\"absolute\"), this.domNode.setTop(0), this.overflowingContentWidgetsDomNode = (0, _.X)(document.createElement(\"div\")), O.write(this.overflowingContentWidgetsDomNode, 2), this.overflowingContentWidgetsDomNode.setClassName(\"overflowingContentWidgets\")\n                    }\n                    dispose() {\n                        super.dispose(), this._widgets = {}\n                    }\n                    onConfigurationChanged(e) {\n                        const t = Object.keys(this._widgets);\n                        for (const i of t) this._widgets[i].onConfigurationChanged(e);\n                        return !0\n                    }\n                    onDecorationsChanged(e) {\n                        return !0\n                    }\n                    onFlushed(e) {\n                        return !0\n                    }\n                    onLineMappingChanged(e) {\n                        const t = Object.keys(this._widgets);\n                        for (const i of t) this._widgets[i].onLineMappingChanged(e);\n                        return !0\n                    }\n                    onLinesChanged(e) {\n                        return !0\n                    }\n                    onLinesDeleted(e) {\n                        return !0\n                    }\n                    onLinesInserted(e) {\n                        return !0\n                    }\n                    onScrollChanged(e) {\n                        return !0\n                    }\n                    onZonesChanged(e) {\n                        return !0\n                    }\n                    addWidget(e) {\n                        const t = new ot(this._context, this._viewDomNode, e);\n                        this._widgets[t.id] = t, t.allowEditorOverflow ? this.overflowingContentWidgetsDomNode.appendChild(t.domNode) : this.domNode.appendChild(t.domNode), this.setShouldRender()\n                    }\n                    setWidgetPosition(e, t, i) {\n                        this._widgets[e.getId()].setPosition(t, i), this.setShouldRender()\n                    }\n                    removeWidget(e) {\n                        const t = e.getId();\n                        if (this._widgets.hasOwnProperty(t)) {\n                            const e = this._widgets[t];\n                            delete this._widgets[t];\n                            const i = e.domNode.domNode;\n                            i.parentNode.removeChild(i), i.removeAttribute(\"monaco-visible-content-widget\"), this.setShouldRender()\n                        }\n                    }\n                    shouldSuppressMouseDownOnWidget(e) {\n                        return !!this._widgets.hasOwnProperty(e) && this._widgets[e].suppressMouseDown\n                    }\n                    onBeforeRender(e) {\n                        const t = Object.keys(this._widgets);\n                        for (const i of t) this._widgets[i].onBeforeRender(e)\n                    }\n                    prepareRender(e) {\n                        const t = Object.keys(this._widgets);\n                        for (const i of t) this._widgets[i].prepareRender(e)\n                    }\n                    render(e) {\n                        const t = Object.keys(this._widgets);\n                        for (const i of t) this._widgets[i].render(e)\n                    }\n                }\n                class ot {\n                    constructor(e, t, i) {\n                        this._context = e, this._viewDomNode = t, this._actual = i, this.domNode = (0, _.X)(this._actual.getDomNode()), this.id = this._actual.getId(), this.allowEditorOverflow = this._actual.allowEditorOverflow || !1, this.suppressMouseDown = this._actual.suppressMouseDown || !1;\n                        const n = this._context.configuration.options,\n                            o = n.get(129);\n                        this._fixedOverflowWidgets = n.get(36), this._contentWidth = o.contentWidth, this._contentLeft = o.contentLeft, this._lineHeight = n.get(58), this._range = null, this._viewRange = null, this._preference = [], this._cachedDomNodeClientWidth = -1, this._cachedDomNodeClientHeight = -1, this._maxWidth = this._getMaxWidth(), this._isVisible = !1, this._renderData = null, this.domNode.setPosition(this._fixedOverflowWidgets && this.allowEditorOverflow ? \"fixed\" : \"absolute\"), this.domNode.setVisibility(\"hidden\"), this.domNode.setAttribute(\"widgetId\", this.id), this.domNode.setMaxWidth(this._maxWidth)\n                    }\n                    onConfigurationChanged(e) {\n                        const t = this._context.configuration.options;\n                        if (this._lineHeight = t.get(58), e.hasChanged(129)) {\n                            const e = t.get(129);\n                            this._contentLeft = e.contentLeft, this._contentWidth = e.contentWidth, this._maxWidth = this._getMaxWidth()\n                        }\n                    }\n                    onLineMappingChanged(e) {\n                        this._setPosition(this._range)\n                    }\n                    _setPosition(e) {\n                        if (this._range = e, this._viewRange = null, this._range) {\n                            const e = this._context.model.validateModelRange(this._range);\n                            (this._context.model.coordinatesConverter.modelPositionIsVisible(e.getStartPosition()) || this._context.model.coordinatesConverter.modelPositionIsVisible(e.getEndPosition())) && (this._viewRange = this._context.model.coordinatesConverter.convertModelRangeToViewRange(e))\n                        }\n                    }\n                    _getMaxWidth() {\n                        return this.allowEditorOverflow ? window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth : this._contentWidth\n                    }\n                    setPosition(e, t) {\n                        this._setPosition(e), this._preference = t, this._cachedDomNodeClientWidth = -1, this._cachedDomNodeClientHeight = -1\n                    }\n                    _layoutBoxInViewport(e, t, i, n, o) {\n                        const s = e.top,\n                            r = s,\n                            a = t.top + this._lineHeight,\n                            l = s - n,\n                            c = r >= n,\n                            d = a,\n                            h = o.viewportHeight - a >= n;\n                        let u = e.left,\n                            g = t.left;\n                        return u + i > o.scrollLeft + o.viewportWidth && (u = o.scrollLeft + o.viewportWidth - i), g + i > o.scrollLeft + o.viewportWidth && (g = o.scrollLeft + o.viewportWidth - i), u < o.scrollLeft && (u = o.scrollLeft), g < o.scrollLeft && (g = o.scrollLeft), {\n                            fitsAbove: c,\n                            aboveTop: l,\n                            aboveLeft: u,\n                            fitsBelow: h,\n                            belowTop: d,\n                            belowLeft: g\n                        }\n                    }\n                    _layoutHorizontalSegmentInPage(e, t, i, n) {\n                        const o = Math.max(0, t.left - n),\n                            s = Math.min(t.left + t.width + n, e.width);\n                        let r = t.left + i - c.DI.scrollX;\n                        if (r + n > s) {\n                            const e = r - (s - n);\n                            r -= e, i -= e\n                        }\n                        if (r < o) {\n                            const e = r - o;\n                            r -= e, i -= e\n                        }\n                        return [i, r]\n                    }\n                    _layoutBoxInPage(e, t, i, n, o) {\n                        const s = e.top - n,\n                            r = t.top + this._lineHeight,\n                            a = c.i(this._viewDomNode.domNode),\n                            l = a.top + s - c.DI.scrollY,\n                            d = a.top + r - c.DI.scrollY,\n                            h = c.D6(document.body),\n                            [u, g] = this._layoutHorizontalSegmentInPage(h, a, e.left - o.scrollLeft + this._contentLeft, i),\n                            [p, f] = this._layoutHorizontalSegmentInPage(h, a, t.left - o.scrollLeft + this._contentLeft, i),\n                            m = l >= 22,\n                            v = d + n <= h.height - 22;\n                        return this._fixedOverflowWidgets ? {\n                            fitsAbove: m,\n                            aboveTop: Math.max(l, 22),\n                            aboveLeft: g,\n                            fitsBelow: v,\n                            belowTop: d,\n                            belowLeft: f\n                        } : {\n                            fitsAbove: m,\n                            aboveTop: s,\n                            aboveLeft: u,\n                            fitsBelow: v,\n                            belowTop: r,\n                            belowLeft: p\n                        }\n                    }\n                    _prepareRenderWidgetAtExactPositionOverflowing(e) {\n                        return new it(e.top, e.left + this._contentLeft)\n                    }\n                    _getTopAndBottomLeft(e) {\n                        if (!this._viewRange) return [null, null];\n                        const t = e.linesVisibleRangesForRange(this._viewRange, !1);\n                        if (!t || 0 === t.length) return [null, null];\n                        let i = t[0],\n                            n = t[0];\n                        for (const e of t) e.lineNumber < i.lineNumber && (i = e), e.lineNumber > n.lineNumber && (n = e);\n                        let o = 1073741824;\n                        for (const e of i.ranges) e.left < o && (o = e.left);\n                        let s = 1073741824;\n                        for (const e of n.ranges) e.left < s && (s = e.left);\n                        const r = e.getVerticalOffsetForLineNumber(i.lineNumber) - e.scrollTop,\n                            a = new it(r, o),\n                            l = e.getVerticalOffsetForLineNumber(n.lineNumber) - e.scrollTop;\n                        return [a, new it(l, s)]\n                    }\n                    _prepareRenderWidget(e) {\n                        const [t, i] = this._getTopAndBottomLeft(e);\n                        if (!t || !i) return null;\n                        if (-1 === this._cachedDomNodeClientWidth || -1 === this._cachedDomNodeClientHeight) {\n                            let e = null;\n                            if (\"function\" == typeof this._actual.beforeRender && (e = st(this._actual.beforeRender, this._actual)), e) this._cachedDomNodeClientWidth = e.width, this._cachedDomNodeClientHeight = e.height;\n                            else {\n                                const e = this.domNode.domNode;\n                                this._cachedDomNodeClientWidth = e.clientWidth, this._cachedDomNodeClientHeight = e.clientHeight\n                            }\n                        }\n                        let n;\n                        if (n = this.allowEditorOverflow ? this._layoutBoxInPage(t, i, this._cachedDomNodeClientWidth, this._cachedDomNodeClientHeight, e) : this._layoutBoxInViewport(t, i, this._cachedDomNodeClientWidth, this._cachedDomNodeClientHeight, e), this._preference)\n                            for (let e = 1; e <= 2; e++)\n                                for (const i of this._preference)\n                                    if (1 === i) {\n                                        if (!n) return null;\n                                        if (2 === e || n.fitsAbove) return {\n                                            coordinate: new it(n.aboveTop, n.aboveLeft),\n                                            position: 1\n                                        }\n                                    } else {\n                                        if (2 !== i) return this.allowEditorOverflow ? {\n                                            coordinate: this._prepareRenderWidgetAtExactPositionOverflowing(t),\n                                            position: 0\n                                        } : {\n                                            coordinate: t,\n                                            position: 0\n                                        };\n                                        if (!n) return null;\n                                        if (2 === e || n.fitsBelow) return {\n                                            coordinate: new it(n.belowTop, n.belowLeft),\n                                            position: 2\n                                        }\n                                    } return null\n                    }\n                    onBeforeRender(e) {\n                        this._viewRange && this._preference && (this._viewRange.endLineNumber < e.startLineNumber || this._viewRange.startLineNumber > e.endLineNumber || this.domNode.setMaxWidth(this._maxWidth))\n                    }\n                    prepareRender(e) {\n                        this._renderData = this._prepareRenderWidget(e)\n                    }\n                    render(e) {\n                        if (!this._renderData) return this._isVisible && (this.domNode.removeAttribute(\"monaco-visible-content-widget\"), this._isVisible = !1, this.domNode.setVisibility(\"hidden\")), void(\"function\" == typeof this._actual.afterRender && st(this._actual.afterRender, this._actual, null));\n                        this.allowEditorOverflow ? (this.domNode.setTop(this._renderData.coordinate.top), this.domNode.setLeft(this._renderData.coordinate.left)) : (this.domNode.setTop(this._renderData.coordinate.top + e.scrollTop - e.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), \"function\" == typeof this._actual.afterRender && st(this._actual.afterRender, this._actual, this._renderData.position)\n                    }\n                }\n\n                function st(e, t, ...i) {\n                    try {\n                        return e.call(t, ...i)\n                    } catch (e) {\n                        return null\n                    }\n                }\n                i(54175);\n                var rt = i(9488);\n                let at = !0;\n                class lt extends Ae {\n                    constructor(e) {\n                        super(), this._context = e;\n                        const t = this._context.configuration.options,\n                            i = t.get(129);\n                        this._lineHeight = t.get(58), this._renderLineHighlight = t.get(84), this._renderLineHighlightOnlyWhenFocus = t.get(85), this._contentLeft = i.contentLeft, this._contentWidth = i.contentWidth, this._selectionIsEmpty = !0, this._focused = !1, this._cursorLineNumbers = [1], this._selections = [new v.Y(1, 1, 1, 1)], this._renderData = null, this._context.addEventHandler(this)\n                    }\n                    dispose() {\n                        this._context.removeEventHandler(this), super.dispose()\n                    }\n                    _readFromSelections() {\n                        let e = !1;\n                        const t = at ? this._selections.slice(0, 1) : this._selections,\n                            i = t.map((e => e.positionLineNumber));\n                        i.sort(((e, t) => e - t)), rt.fS(this._cursorLineNumbers, i) || (this._cursorLineNumbers = i, e = !0);\n                        const n = t.every((e => e.isEmpty()));\n                        return this._selectionIsEmpty !== n && (this._selectionIsEmpty = n, e = !0), e\n                    }\n                    onThemeChanged(e) {\n                        return this._readFromSelections()\n                    }\n                    onConfigurationChanged(e) {\n                        const t = this._context.configuration.options,\n                            i = t.get(129);\n                        return this._lineHeight = t.get(58), this._renderLineHighlight = t.get(84), this._renderLineHighlightOnlyWhenFocus = t.get(85), this._contentLeft = i.contentLeft, this._contentWidth = i.contentWidth, !0\n                    }\n                    onCursorStateChanged(e) {\n                        return this._selections = e.selections, this._readFromSelections()\n                    }\n                    onFlushed(e) {\n                        return !0\n                    }\n                    onLinesDeleted(e) {\n                        return !0\n                    }\n                    onLinesInserted(e) {\n                        return !0\n                    }\n                    onScrollChanged(e) {\n                        return e.scrollWidthChanged || e.scrollTopChanged\n                    }\n                    onZonesChanged(e) {\n                        return !0\n                    }\n                    onFocusChanged(e) {\n                        return !!this._renderLineHighlightOnlyWhenFocus && (this._focused = e.isFocused, !0)\n                    }\n                    prepareRender(e) {\n                        if (!this._shouldRenderThis()) return void(this._renderData = null);\n                        const t = this._renderOne(e),\n                            i = e.visibleRange.startLineNumber,\n                            n = e.visibleRange.endLineNumber,\n                            o = this._cursorLineNumbers.length;\n                        let s = 0;\n                        const r = [];\n                        for (let e = i; e <= n; e++) {\n                            const n = e - i;\n                            for (; s < o && this._cursorLineNumbers[s] < e;) s++;\n                            s < o && this._cursorLineNumbers[s] === e ? r[n] = t : r[n] = \"\"\n                        }\n                        this._renderData = r\n                    }\n                    render(e, t) {\n                        if (!this._renderData) return \"\";\n                        const i = t - e;\n                        return i >= this._renderData.length ? \"\" : this._renderData[i]\n                    }\n                }\n                class ct extends lt {\n                    _renderOne(e) {\n                        return `<div class=\"${\"current-line\"+(this._shouldRenderOther()?\" current-line-both\":\"\")}\" style=\"width:${Math.max(e.scrollWidth,this._contentWidth)}px; height:${this._lineHeight}px;\"></div>`\n                    }\n                    _shouldRenderThis() {\n                        return (\"line\" === this._renderLineHighlight || \"all\" === this._renderLineHighlight) && this._selectionIsEmpty && (!this._renderLineHighlightOnlyWhenFocus || this._focused)\n                    }\n                    _shouldRenderOther() {\n                        return (\"gutter\" === this._renderLineHighlight || \"all\" === this._renderLineHighlight) && (!this._renderLineHighlightOnlyWhenFocus || this._focused)\n                    }\n                }\n                class dt extends lt {\n                    _renderOne(e) {\n                        return `<div class=\"${\"current-line\"+(this._shouldRenderMargin()?\" current-line-margin\":\"\")+(this._shouldRenderOther()?\" current-line-margin-both\":\"\")}\" style=\"width:${this._contentLeft}px; height:${this._lineHeight}px;\"></div>`\n                    }\n                    _shouldRenderMargin() {\n                        return (\"gutter\" === this._renderLineHighlight || \"all\" === this._renderLineHighlight) && (!this._renderLineHighlightOnlyWhenFocus || this._focused)\n                    }\n                    _shouldRenderThis() {\n                        return !0\n                    }\n                    _shouldRenderOther() {\n                        return (\"line\" === this._renderLineHighlight || \"all\" === this._renderLineHighlight) && this._selectionIsEmpty && (!this._renderLineHighlightOnlyWhenFocus || this._focused)\n                    }\n                }(0, Pe.Ic)(((e, t) => {\n                    at = !1;\n                    const i = e.getColor(Oe.Kh);\n                    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() || e.defines(Oe.Mm)) {\n                        const i = e.getColor(Oe.Mm);\n                        i && (at = !0, t.addRule(`.monaco-editor .view-overlays .current-line { border: 2px solid ${i}; }`), t.addRule(`.monaco-editor .margin-view-overlays .current-line-margin { border: 2px solid ${i}; }`), \"hc\" === e.type && (t.addRule(\".monaco-editor .view-overlays .current-line { border-width: 1px; }\"), t.addRule(\".monaco-editor .margin-view-overlays .current-line-margin { border-width: 1px; }\")))\n                    }\n                }));\n                i(74953);\n                class ht extends Ae {\n                    constructor(e) {\n                        super(), this._context = e;\n                        const t = this._context.configuration.options;\n                        this._lineHeight = t.get(58), this._typicalHalfwidthCharacterWidth = t.get(43).typicalHalfwidthCharacterWidth, this._renderResult = null, this._context.addEventHandler(this)\n                    }\n                    dispose() {\n                        this._context.removeEventHandler(this), this._renderResult = null, super.dispose()\n                    }\n                    onConfigurationChanged(e) {\n                        const t = this._context.configuration.options;\n                        return this._lineHeight = t.get(58), this._typicalHalfwidthCharacterWidth = t.get(43).typicalHalfwidthCharacterWidth, !0\n                    }\n                    onDecorationsChanged(e) {\n                        return !0\n                    }\n                    onFlushed(e) {\n                        return !0\n                    }\n                    onLinesChanged(e) {\n                        return !0\n                    }\n                    onLinesDeleted(e) {\n                        return !0\n                    }\n                    onLinesInserted(e) {\n                        return !0\n                    }\n                    onScrollChanged(e) {\n                        return e.scrollTopChanged || e.scrollWidthChanged\n                    }\n                    onZonesChanged(e) {\n                        return !0\n                    }\n                    prepareRender(e) {\n                        const t = e.getDecorationsInViewport();\n                        let i = [],\n                            n = 0;\n                        for (let e = 0, o = t.length; e < o; e++) {\n                            const o = t[e];\n                            o.options.className && (i[n++] = o)\n                        }\n                        i = i.sort(((e, t) => {\n                            if (e.options.zIndex < t.options.zIndex) return -1;\n                            if (e.options.zIndex > t.options.zIndex) return 1;\n                            const i = e.options.className,\n                                n = t.options.className;\n                            return i < n ? -1 : i > n ? 1 : re.e.compareRangesUsingStarts(e.range, t.range)\n                        }));\n                        const o = e.visibleRange.startLineNumber,\n                            s = e.visibleRange.endLineNumber,\n                            r = [];\n                        for (let e = o; e <= s; e++) {\n                            r[e - o] = \"\"\n                        }\n                        this._renderWholeLineDecorations(e, i, r), this._renderNormalDecorations(e, i, r), this._renderResult = r\n                    }\n                    _renderWholeLineDecorations(e, t, i) {\n                        const n = String(this._lineHeight),\n                            o = e.visibleRange.startLineNumber,\n                            s = e.visibleRange.endLineNumber;\n                        for (let e = 0, r = t.length; e < r; e++) {\n                            const r = t[e];\n                            if (!r.options.isWholeLine) continue;\n                            const a = '<div class=\"cdr ' + r.options.className + '\" style=\"left:0;width:100%;height:' + n + 'px;\"></div>',\n                                l = Math.max(r.range.startLineNumber, o),\n                                c = Math.min(r.range.endLineNumber, s);\n                            for (let e = l; e <= c; e++) {\n                                i[e - o] += a\n                            }\n                        }\n                    }\n                    _renderNormalDecorations(e, t, i) {\n                        const n = String(this._lineHeight),\n                            o = e.visibleRange.startLineNumber;\n                        let s = null,\n                            r = !1,\n                            a = null;\n                        for (let l = 0, c = t.length; l < c; l++) {\n                            const c = t[l];\n                            if (c.options.isWholeLine) continue;\n                            const d = c.options.className,\n                                h = Boolean(c.options.showIfCollapsed);\n                            let u = c.range;\n                            h && 1 === u.endColumn && u.endLineNumber !== u.startLineNumber && (u = new re.e(u.startLineNumber, u.startColumn, u.endLineNumber - 1, this._context.model.getLineMaxColumn(u.endLineNumber - 1))), s === d && r === h && re.e.areIntersectingOrTouching(a, u) ? a = re.e.plusRange(a, u) : (null !== s && this._renderNormalDecoration(e, a, s, r, n, o, i), s = d, r = h, a = u)\n                        }\n                        null !== s && this._renderNormalDecoration(e, a, s, r, n, o, i)\n                    }\n                    _renderNormalDecoration(e, t, i, n, o, s, r) {\n                        const a = e.linesVisibleRangesForRange(t, \"findMatch\" === i);\n                        if (a)\n                            for (let e = 0, t = a.length; e < t; e++) {\n                                const t = a[e];\n                                if (t.outsideRenderedLine) continue;\n                                const l = t.lineNumber - s;\n                                if (n && 1 === t.ranges.length) {\n                                    const e = t.ranges[0];\n                                    0 === e.width && (t.ranges[0] = new B(e.left, this._typicalHalfwidthCharacterWidth))\n                                }\n                                for (let e = 0, n = t.ranges.length; e < n; e++) {\n                                    const n = t.ranges[e],\n                                        s = '<div class=\"cdr ' + i + '\" style=\"left:' + String(n.left) + \"px;width:\" + String(n.width) + \"px;height:\" + o + 'px;\"></div>';\n                                    r[l] += s\n                                }\n                            }\n                    }\n                    render(e, t) {\n                        if (!this._renderResult) return \"\";\n                        const i = t - e;\n                        return i < 0 || i >= this._renderResult.length ? \"\" : this._renderResult[i]\n                    }\n                }\n                var ut = i(9802),\n                    gt = i(73910);\n                class pt extends A {\n                    constructor(e, t, i, n) {\n                        super(e);\n                        const o = this._context.configuration.options,\n                            s = o.get(91),\n                            r = o.get(66),\n                            a = o.get(34),\n                            l = o.get(94),\n                            d = {\n                                listenOnDomNode: i.domNode,\n                                className: \"editor-scrollable \" + (0, Pe.m6)(e.theme.type),\n                                useShadows: !1,\n                                lazyRender: !0,\n                                vertical: s.vertical,\n                                horizontal: s.horizontal,\n                                verticalHasArrows: s.verticalHasArrows,\n                                horizontalHasArrows: s.horizontalHasArrows,\n                                verticalScrollbarSize: s.verticalScrollbarSize,\n                                verticalSliderSize: s.verticalSliderSize,\n                                horizontalScrollbarSize: s.horizontalScrollbarSize,\n                                horizontalSliderSize: s.horizontalSliderSize,\n                                handleMouseWheel: s.handleMouseWheel,\n                                alwaysConsumeMouseWheel: s.alwaysConsumeMouseWheel,\n                                arrowSize: s.arrowSize,\n                                mouseWheelScrollSensitivity: r,\n                                fastScrollSensitivity: a,\n                                scrollPredominantAxis: l,\n                                scrollByPage: s.scrollByPage\n                            };\n                        this.scrollbar = this._register(new ut.$Z(t.domNode, d, this._context.viewLayout.getScrollable())), O.write(this.scrollbar.getDomNode(), 5), this.scrollbarDomNode = (0, _.X)(this.scrollbar.getDomNode()), this.scrollbarDomNode.setPosition(\"absolute\"), this._setLayout();\n                        const h = (e, t, i) => {\n                            const n = {};\n                            if (t) {\n                                const t = e.scrollTop;\n                                t && (n.scrollTop = this._context.viewLayout.getCurrentScrollTop() + t, e.scrollTop = 0)\n                            }\n                            if (i) {\n                                const t = e.scrollLeft;\n                                t && (n.scrollLeft = this._context.viewLayout.getCurrentScrollLeft() + t, e.scrollLeft = 0)\n                            }\n                            this._context.model.setScrollPosition(n, 1)\n                        };\n                        this._register(c.nm(i.domNode, \"scroll\", (e => h(i.domNode, !0, !0)))), this._register(c.nm(t.domNode, \"scroll\", (e => h(t.domNode, !0, !1)))), this._register(c.nm(n.domNode, \"scroll\", (e => h(n.domNode, !0, !1)))), this._register(c.nm(this.scrollbarDomNode.domNode, \"scroll\", (e => h(this.scrollbarDomNode.domNode, !0, !1))))\n                    }\n                    dispose() {\n                        super.dispose()\n                    }\n                    _setLayout() {\n                        const e = this._context.configuration.options,\n                            t = e.get(129);\n                        this.scrollbarDomNode.setLeft(t.contentLeft);\n                        \"right\" === e.get(64).side ? this.scrollbarDomNode.setWidth(t.contentWidth + t.minimap.minimapWidth) : this.scrollbarDomNode.setWidth(t.contentWidth), this.scrollbarDomNode.setHeight(t.height)\n                    }\n                    getOverviewRulerLayoutInfo() {\n                        return this.scrollbar.getOverviewRulerLayoutInfo()\n                    }\n                    getDomNode() {\n                        return this.scrollbarDomNode\n                    }\n                    delegateVerticalScrollbarMouseDown(e) {\n                        this.scrollbar.delegateVerticalScrollbarMouseDown(e)\n                    }\n                    onConfigurationChanged(e) {\n                        if (e.hasChanged(91) || e.hasChanged(66) || e.hasChanged(34)) {\n                            const e = this._context.configuration.options,\n                                t = e.get(91),\n                                i = e.get(66),\n                                n = e.get(34),\n                                o = e.get(94),\n                                s = {\n                                    vertical: t.vertical,\n                                    horizontal: t.horizontal,\n                                    verticalScrollbarSize: t.verticalScrollbarSize,\n                                    horizontalScrollbarSize: t.horizontalScrollbarSize,\n                                    scrollByPage: t.scrollByPage,\n                                    handleMouseWheel: t.handleMouseWheel,\n                                    mouseWheelScrollSensitivity: i,\n                                    fastScrollSensitivity: n,\n                                    scrollPredominantAxis: o\n                                };\n                            this.scrollbar.updateOptions(s)\n                        }\n                        return e.hasChanged(129) && this._setLayout(), !0\n                    }\n                    onScrollChanged(e) {\n                        return !0\n                    }\n                    onThemeChanged(e) {\n                        return this.scrollbar.updateClassName(\"editor-scrollable \" + (0, Pe.m6)(this._context.theme.type)), !0\n                    }\n                    prepareRender(e) {}\n                    render(e) {\n                        this.scrollbar.renderNow()\n                    }\n                }(0, Pe.Ic)(((e, t) => {\n                    const i = e.getColor(gt._w);\n                    i && t.addRule(`\\n\\t\\t\\t.monaco-scrollable-element > .shadow.top {\\n\\t\\t\\t\\tbox-shadow: ${i} 0 6px 6px -6px inset;\\n\\t\\t\\t}\\n\\n\\t\\t\\t.monaco-scrollable-element > .shadow.left {\\n\\t\\t\\t\\tbox-shadow: ${i} 6px 0 6px -6px inset;\\n\\t\\t\\t}\\n\\n\\t\\t\\t.monaco-scrollable-element > .shadow.top.left {\\n\\t\\t\\t\\tbox-shadow: ${i} 6px 6px 6px -6px inset;\\n\\t\\t\\t}\\n\\t\\t`);\n                    const n = e.getColor(gt.et);\n                    n && t.addRule(`\\n\\t\\t\\t.monaco-scrollable-element > .scrollbar > .slider {\\n\\t\\t\\t\\tbackground: ${n};\\n\\t\\t\\t}\\n\\t\\t`);\n                    const o = e.getColor(gt.AB);\n                    o && t.addRule(`\\n\\t\\t\\t.monaco-scrollable-element > .scrollbar > .slider:hover {\\n\\t\\t\\t\\tbackground: ${o};\\n\\t\\t\\t}\\n\\t\\t`);\n                    const s = e.getColor(gt.yn);\n                    s && t.addRule(`\\n\\t\\t\\t.monaco-scrollable-element > .scrollbar > .slider.active {\\n\\t\\t\\t\\tbackground: ${s};\\n\\t\\t\\t}\\n\\t\\t`)\n                }));\n                i(15582);\n                class ft {\n                    constructor(e, t, i) {\n                        this._decorationToRenderBrand = void 0, this.startLineNumber = +e, this.endLineNumber = +t, this.className = String(i)\n                    }\n                }\n                class mt extends Ae {\n                    _render(e, t, i) {\n                        const n = [];\n                        for (let i = e; i <= t; i++) {\n                            n[i - e] = []\n                        }\n                        if (0 === i.length) return n;\n                        i.sort(((e, t) => e.className === t.className ? e.startLineNumber === t.startLineNumber ? e.endLineNumber - t.endLineNumber : e.startLineNumber - t.startLineNumber : e.className < t.className ? -1 : 1));\n                        let o = null,\n                            s = 0;\n                        for (let r = 0, a = i.length; r < a; r++) {\n                            const a = i[r],\n                                l = a.className;\n                            let c = Math.max(a.startLineNumber, e) - e;\n                            const d = Math.min(a.endLineNumber, t) - e;\n                            o === l ? (c = Math.max(s + 1, c), s = Math.max(s, d)) : (o = l, s = d);\n                            for (let e = c; e <= s; e++) n[e].push(o)\n                        }\n                        return n\n                    }\n                }\n                class vt extends mt {\n                    constructor(e) {\n                        super(), this._context = e;\n                        const t = this._context.configuration.options,\n                            i = t.get(129);\n                        this._lineHeight = t.get(58), this._glyphMargin = t.get(49), this._glyphMarginLeft = i.glyphMarginLeft, this._glyphMarginWidth = i.glyphMarginWidth, this._renderResult = null, this._context.addEventHandler(this)\n                    }\n                    dispose() {\n                        this._context.removeEventHandler(this), this._renderResult = null, super.dispose()\n                    }\n                    onConfigurationChanged(e) {\n                        const t = this._context.configuration.options,\n                            i = t.get(129);\n                        return this._lineHeight = t.get(58), this._glyphMargin = t.get(49), this._glyphMarginLeft = i.glyphMarginLeft, this._glyphMarginWidth = i.glyphMarginWidth, !0\n                    }\n                    onDecorationsChanged(e) {\n                        return !0\n                    }\n                    onFlushed(e) {\n                        return !0\n                    }\n                    onLinesChanged(e) {\n                        return !0\n                    }\n                    onLinesDeleted(e) {\n                        return !0\n                    }\n                    onLinesInserted(e) {\n                        return !0\n                    }\n                    onScrollChanged(e) {\n                        return e.scrollTopChanged\n                    }\n                    onZonesChanged(e) {\n                        return !0\n                    }\n                    _getDecorations(e) {\n                        const t = e.getDecorationsInViewport();\n                        let i = [],\n                            n = 0;\n                        for (let e = 0, o = t.length; e < o; e++) {\n                            const o = t[e],\n                                s = o.options.glyphMarginClassName;\n                            s && (i[n++] = new ft(o.range.startLineNumber, o.range.endLineNumber, s))\n                        }\n                        return i\n                    }\n                    prepareRender(e) {\n                        if (!this._glyphMargin) return void(this._renderResult = null);\n                        const t = e.visibleRange.startLineNumber,\n                            i = e.visibleRange.endLineNumber,\n                            n = this._render(t, i, this._getDecorations(e)),\n                            o = this._lineHeight.toString(),\n                            s = '\" style=\"left:' + this._glyphMarginLeft.toString() + \"px;width:\" + this._glyphMarginWidth.toString() + \"px;height:\" + o + 'px;\"></div>',\n                            r = [];\n                        for (let e = t; e <= i; e++) {\n                            const i = e - t,\n                                o = n[i];\n                            0 === o.length ? r[i] = \"\" : r[i] = '<div class=\"cgmr codicon ' + o.join(\" \") + s\n                        }\n                        this._renderResult = r\n                    }\n                    render(e, t) {\n                        if (!this._renderResult) return \"\";\n                        const i = t - e;\n                        return i < 0 || i >= this._renderResult.length ? \"\" : this._renderResult[i]\n                    }\n                }\n                i(28335);\n                var _t = i(84973),\n                    bt = i(44174),\n                    wt = i(98401);\n                class yt extends Ae {\n                    constructor(e) {\n                        super(), this._context = e, this._primaryPosition = null;\n                        const t = this._context.configuration.options,\n                            i = t.get(130),\n                            n = t.get(43);\n                        this._lineHeight = t.get(58), this._spaceWidth = n.spaceWidth, this._maxIndentLeft = -1 === i.wrappingColumn ? -1 : i.wrappingColumn * n.typicalHalfwidthCharacterWidth, this._bracketPairGuideOptions = t.get(13), this._renderResult = null, this._context.addEventHandler(this)\n                    }\n                    dispose() {\n                        this._context.removeEventHandler(this), this._renderResult = null, super.dispose()\n                    }\n                    onConfigurationChanged(e) {\n                        const t = this._context.configuration.options,\n                            i = t.get(130),\n                            n = t.get(43);\n                        return this._lineHeight = t.get(58), this._spaceWidth = n.spaceWidth, this._maxIndentLeft = -1 === i.wrappingColumn ? -1 : i.wrappingColumn * n.typicalHalfwidthCharacterWidth, this._bracketPairGuideOptions = t.get(13), !0\n                    }\n                    onCursorStateChanged(e) {\n                        var t;\n                        const i = e.selections[0].getPosition();\n                        return !(null === (t = this._primaryPosition) || void 0 === t ? void 0 : t.equals(i)) && (this._primaryPosition = i, !0)\n                    }\n                    onDecorationsChanged(e) {\n                        return !0\n                    }\n                    onFlushed(e) {\n                        return !0\n                    }\n                    onLinesChanged(e) {\n                        return !0\n                    }\n                    onLinesDeleted(e) {\n                        return !0\n                    }\n                    onLinesInserted(e) {\n                        return !0\n                    }\n                    onScrollChanged(e) {\n                        return e.scrollTopChanged\n                    }\n                    onZonesChanged(e) {\n                        return !0\n                    }\n                    onLanguageConfigurationChanged(e) {\n                        return !0\n                    }\n                    prepareRender(e) {\n                        var t, i, n, o;\n                        if (!this._bracketPairGuideOptions.indentation && !1 === this._bracketPairGuideOptions.bracketPairs) return void(this._renderResult = null);\n                        const s = e.visibleRange.startLineNumber,\n                            r = e.visibleRange.endLineNumber,\n                            a = e.scrollWidth,\n                            l = this._lineHeight,\n                            c = this._primaryPosition,\n                            d = this.getGuidesByLine(s, r, c),\n                            h = [];\n                        for (let c = s; c <= r; c++) {\n                            const r = c - s,\n                                u = d[r];\n                            let g = \"\";\n                            const p = null !== (i = null === (t = e.visibleRangeForPosition(new se.L(c, 1))) || void 0 === t ? void 0 : t.left) && void 0 !== i ? i : 0;\n                            for (const t of u) {\n                                const i = p + (t.visibleColumn - 1) * this._spaceWidth;\n                                if (i > a || this._maxIndentLeft > 0 && i > this._maxIndentLeft) break;\n                                const s = t.horizontalLine ? t.horizontalLine.top ? \"horizontal-top\" : \"horizontal-bottom\" : \"vertical\",\n                                    r = t.horizontalLine ? (null !== (o = null === (n = e.visibleRangeForPosition(new se.L(c, t.horizontalLine.endColumn))) || void 0 === n ? void 0 : n.left) && void 0 !== o ? o : i + this._spaceWidth) - i : this._spaceWidth;\n                                g += `<div class=\"core-guide ${t.className} ${s}\" style=\"left:${i}px;height:${l}px;width:${r}px\"></div>`\n                            }\n                            h[r] = g\n                        }\n                        this._renderResult = h\n                    }\n                    getGuidesByLine(e, t, i) {\n                        const n = !1 !== this._bracketPairGuideOptions.bracketPairs ? this._context.model.getBracketGuidesInRangeByLine(e, t, i, {\n                                highlightActive: this._bracketPairGuideOptions.highlightActiveBracketPair,\n                                horizontalGuides: !0 === this._bracketPairGuideOptions.bracketPairsHorizontal ? _t.s6.Enabled : \"active\" === this._bracketPairGuideOptions.bracketPairsHorizontal ? _t.s6.EnabledForActive : _t.s6.Disabled,\n                                includeInactive: !0 === this._bracketPairGuideOptions.bracketPairs\n                            }) : null,\n                            o = this._bracketPairGuideOptions.indentation ? this._context.model.getLinesIndentGuides(e, t) : null;\n                        let s = 0,\n                            r = 0,\n                            a = 0;\n                        if (this._bracketPairGuideOptions.highlightActiveIndentation && i) {\n                            const n = this._context.model.getActiveIndentGuide(i.lineNumber, e, t);\n                            s = n.startLineNumber, r = n.endLineNumber, a = n.indent\n                        }\n                        const {\n                            indentSize: l\n                        } = this._context.model.getTextModelOptions(), c = [];\n                        for (let i = e; i <= t; i++) {\n                            const t = new Array;\n                            c.push(t);\n                            const d = n ? n[i - e] : [],\n                                h = new rt.H9(d),\n                                u = o ? o[i - e] : [];\n                            for (let e = 1; e <= u; e++) {\n                                const n = (e - 1) * l + 1,\n                                    o = 0 === d.length && s <= i && i <= r && e === a;\n                                t.push(...h.takeWhile((e => e.visibleColumn < n)) || []);\n                                const c = h.peek();\n                                c && c.visibleColumn === n && !c.horizontalLine || t.push(new _t.UO(n, o ? \"core-guide-indent-active\" : \"core-guide-indent\", null))\n                            }\n                            t.push(...h.takeWhile((e => !0)) || [])\n                        }\n                        return c\n                    }\n                    render(e, t) {\n                        if (!this._renderResult) return \"\";\n                        const i = t - e;\n                        return i < 0 || i >= this._renderResult.length ? \"\" : this._renderResult[i]\n                    }\n                }\n\n                function Ct(e) {\n                    if (!e || !e.isTransparent()) return e\n                }(0, Pe.Ic)(((e, t) => {\n                    const i = e.getColor(Oe.tR);\n                    i && t.addRule(`.monaco-editor .lines-content .core-guide-indent { box-shadow: 1px 0 0 0 ${i} inset; }`);\n                    const n = e.getColor(Oe.Ym) || i;\n                    n && t.addRule(`.monaco-editor .lines-content .core-guide-indent-active { box-shadow: 1px 0 0 0 ${n} inset; }`);\n                    const o = [{\n                            bracketColor: Oe.zJ,\n                            guideColor: Oe.oV,\n                            guideColorActive: Oe.Qb\n                        }, {\n                            bracketColor: Oe.Vs,\n                            guideColor: Oe.m$,\n                            guideColorActive: Oe.m3\n                        }, {\n                            bracketColor: Oe.CE,\n                            guideColor: Oe.DS,\n                            guideColorActive: Oe.To\n                        }, {\n                            bracketColor: Oe.UP,\n                            guideColor: Oe.lS,\n                            guideColorActive: Oe.L7\n                        }, {\n                            bracketColor: Oe.r0,\n                            guideColor: Oe.Jn,\n                            guideColorActive: Oe.HV\n                        }, {\n                            bracketColor: Oe.m1,\n                            guideColor: Oe.YF,\n                            guideColorActive: Oe.f9\n                        }],\n                        s = new bt.WE;\n                    let r = o.map((t => {\n                        var i, n;\n                        const o = e.getColor(t.bracketColor),\n                            s = e.getColor(t.guideColor),\n                            r = e.getColor(t.guideColorActive),\n                            a = Ct(null !== (i = Ct(s)) && void 0 !== i ? i : null == o ? void 0 : o.transparent(.3)),\n                            l = Ct(null !== (n = Ct(r)) && void 0 !== n ? n : o);\n                        if (a && l) return {\n                            guideColor: a,\n                            guideColorActive: l\n                        }\n                    })).filter(wt.$K);\n                    if (r.length > 0) {\n                        for (let e = 0; e < 30; e++) {\n                            const i = r[e % r.length];\n                            t.addRule(`.monaco-editor .${s.getInlineClassNameOfLevel(e).replace(/ /g,\".\")} { --guide-color: ${i.guideColor}; --guide-color-active: ${i.guideColorActive}; }`)\n                        }\n                        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); }`)\n                    }\n                }));\n                i(20357);\n                class xt {\n                    constructor() {\n                        this._currentVisibleRange = new re.e(1, 1, 1, 1)\n                    }\n                    getCurrentVisibleRange() {\n                        return this._currentVisibleRange\n                    }\n                    setCurrentVisibleRange(e) {\n                        this._currentVisibleRange = e\n                    }\n                }\n                class St {\n                    constructor(e, t, i, n, o, s) {\n                        this.lineNumber = e, this.startColumn = t, this.endColumn = i, this.startScrollTop = n, this.stopScrollTop = o, this.scrollType = s, this.type = \"range\", this.minLineNumber = e, this.maxLineNumber = e\n                    }\n                }\n                class kt {\n                    constructor(e, t, i, n) {\n                        this.selections = e, this.startScrollTop = t, this.stopScrollTop = i, this.scrollType = n, this.type = \"selections\";\n                        let o = e[0].startLineNumber,\n                            s = e[0].endLineNumber;\n                        for (let t = 1, i = e.length; t < i; t++) {\n                            const i = e[t];\n                            o = Math.min(o, i.startLineNumber), s = Math.max(s, i.endLineNumber)\n                        }\n                        this.minLineNumber = o, this.maxLineNumber = s\n                    }\n                }\n                class Lt extends A {\n                    constructor(e, t) {\n                        super(e), this._linesContent = t, this._textRangeRestingSpot = document.createElement(\"div\"), this._visibleLines = new Ye(this), this.domNode = this._visibleLines.domNode;\n                        const i = this._context.configuration,\n                            n = this._context.configuration.options,\n                            o = n.get(43),\n                            s = n.get(130);\n                        this._lineHeight = n.get(58), this._typicalHalfwidthCharacterWidth = o.typicalHalfwidthCharacterWidth, this._isViewportWrapping = s.isViewportWrapping, this._revealHorizontalRightPadding = n.get(88), this._cursorSurroundingLines = n.get(25), this._cursorSurroundingLinesStyle = n.get(26), this._canUseLayerHinting = !n.get(28), this._viewLineOptions = new Y(i, this._context.theme.type), O.write(this.domNode, 7), this.domNode.setClassName(`view-lines ${Ve.S}`), p.V.applyFontInfo(this.domNode, o), this._maxLineWidth = 0, this._asyncUpdateLineWidths = new C.pY((() => {\n                            this._updateLineWidthsSlow()\n                        }), 200), this._asyncCheckMonospaceFontAssumptions = new C.pY((() => {\n                            this._checkMonospaceFontAssumptions()\n                        }), 2e3), this._lastRenderedData = new xt, this._horizontalRevealRequest = null\n                    }\n                    dispose() {\n                        this._asyncUpdateLineWidths.dispose(), this._asyncCheckMonospaceFontAssumptions.dispose(), super.dispose()\n                    }\n                    getDomNode() {\n                        return this.domNode\n                    }\n                    createVisibleLine() {\n                        return new Q(this._viewLineOptions)\n                    }\n                    onConfigurationChanged(e) {\n                        this._visibleLines.onConfigurationChanged(e), e.hasChanged(130) && (this._maxLineWidth = 0);\n                        const t = this._context.configuration.options,\n                            i = t.get(43),\n                            n = t.get(130);\n                        return this._lineHeight = t.get(58), this._typicalHalfwidthCharacterWidth = i.typicalHalfwidthCharacterWidth, this._isViewportWrapping = n.isViewportWrapping, this._revealHorizontalRightPadding = t.get(88), this._cursorSurroundingLines = t.get(25), this._cursorSurroundingLinesStyle = t.get(26), this._canUseLayerHinting = !t.get(28), p.V.applyFontInfo(this.domNode, i), this._onOptionsMaybeChanged(), e.hasChanged(129) && (this._maxLineWidth = 0), !0\n                    }\n                    _onOptionsMaybeChanged() {\n                        const e = this._context.configuration,\n                            t = new Y(e, this._context.theme.type);\n                        if (!this._viewLineOptions.equals(t)) {\n                            this._viewLineOptions = t;\n                            const e = this._visibleLines.getStartLineNumber(),\n                                i = this._visibleLines.getEndLineNumber();\n                            for (let t = e; t <= i; t++) {\n                                this._visibleLines.getVisibleLine(t).onOptionsChanged(this._viewLineOptions)\n                            }\n                            return !0\n                        }\n                        return !1\n                    }\n                    onCursorStateChanged(e) {\n                        const t = this._visibleLines.getStartLineNumber(),\n                            i = this._visibleLines.getEndLineNumber();\n                        let n = !1;\n                        for (let e = t; e <= i; e++) n = this._visibleLines.getVisibleLine(e).onSelectionChanged() || n;\n                        return n\n                    }\n                    onDecorationsChanged(e) {\n                        {\n                            const e = this._visibleLines.getStartLineNumber(),\n                                t = this._visibleLines.getEndLineNumber();\n                            for (let i = e; i <= t; i++) this._visibleLines.getVisibleLine(i).onDecorationsChanged()\n                        }\n                        return !0\n                    }\n                    onFlushed(e) {\n                        const t = this._visibleLines.onFlushed(e);\n                        return this._maxLineWidth = 0, t\n                    }\n                    onLinesChanged(e) {\n                        return this._visibleLines.onLinesChanged(e)\n                    }\n                    onLinesDeleted(e) {\n                        return this._visibleLines.onLinesDeleted(e)\n                    }\n                    onLinesInserted(e) {\n                        return this._visibleLines.onLinesInserted(e)\n                    }\n                    onRevealRangeRequest(e) {\n                        const t = this._computeScrollTopToRevealRange(this._context.viewLayout.getFutureViewport(), e.source, e.range, e.selections, e.verticalType);\n                        if (-1 === t) return !1;\n                        let i = this._context.viewLayout.validateScrollPosition({\n                            scrollTop: t\n                        });\n                        e.revealHorizontal ? e.range && e.range.startLineNumber !== e.range.endLineNumber ? i = {\n                            scrollTop: i.scrollTop,\n                            scrollLeft: 0\n                        } : e.range ? this._horizontalRevealRequest = new St(e.range.startLineNumber, e.range.startColumn, e.range.endColumn, this._context.viewLayout.getCurrentScrollTop(), i.scrollTop, e.scrollType) : e.selections && e.selections.length > 0 && (this._horizontalRevealRequest = new kt(e.selections, this._context.viewLayout.getCurrentScrollTop(), i.scrollTop, e.scrollType)) : this._horizontalRevealRequest = null;\n                        const n = Math.abs(this._context.viewLayout.getCurrentScrollTop() - i.scrollTop) <= this._lineHeight ? 1 : e.scrollType;\n                        return this._context.model.setScrollPosition(i, n), !0\n                    }\n                    onScrollChanged(e) {\n                        if (this._horizontalRevealRequest && e.scrollLeftChanged && (this._horizontalRevealRequest = null), this._horizontalRevealRequest && e.scrollTopChanged) {\n                            const t = Math.min(this._horizontalRevealRequest.startScrollTop, this._horizontalRevealRequest.stopScrollTop),\n                                i = Math.max(this._horizontalRevealRequest.startScrollTop, this._horizontalRevealRequest.stopScrollTop);\n                            (e.scrollTop < t || e.scrollTop > i) && (this._horizontalRevealRequest = null)\n                        }\n                        return this.domNode.setWidth(e.scrollWidth), this._visibleLines.onScrollChanged(e) || !0\n                    }\n                    onTokensChanged(e) {\n                        return this._visibleLines.onTokensChanged(e)\n                    }\n                    onZonesChanged(e) {\n                        return this._context.model.setMaxLineWidth(this._maxLineWidth), this._visibleLines.onZonesChanged(e)\n                    }\n                    onThemeChanged(e) {\n                        return this._onOptionsMaybeChanged()\n                    }\n                    getPositionFromDOMInfo(e, t) {\n                        const i = this._getViewLineDomNode(e);\n                        if (null === i) return null;\n                        const n = this._getLineNumberFor(i);\n                        if (-1 === n) return null;\n                        if (n < 1 || n > this._context.model.getLineCount()) return null;\n                        if (1 === this._context.model.getLineMaxColumn(n)) return new se.L(n, 1);\n                        const o = this._visibleLines.getStartLineNumber(),\n                            s = this._visibleLines.getEndLineNumber();\n                        if (n < o || n > s) return null;\n                        let r = this._visibleLines.getVisibleLine(n).getColumnOfNodeOffset(n, e, t);\n                        const a = this._context.model.getLineMinColumn(n);\n                        return r < a && (r = a), new se.L(n, r)\n                    }\n                    _getViewLineDomNode(e) {\n                        for (; e && 1 === e.nodeType;) {\n                            if (e.className === Q.CLASS_NAME) return e;\n                            e = e.parentElement\n                        }\n                        return null\n                    }\n                    _getLineNumberFor(e) {\n                        const t = this._visibleLines.getStartLineNumber(),\n                            i = this._visibleLines.getEndLineNumber();\n                        for (let n = t; n <= i; n++) {\n                            if (e === this._visibleLines.getVisibleLine(n).getDomNode()) return n\n                        }\n                        return -1\n                    }\n                    getLineWidth(e) {\n                        const t = this._visibleLines.getStartLineNumber(),\n                            i = this._visibleLines.getEndLineNumber();\n                        return e < t || e > i ? -1 : this._visibleLines.getVisibleLine(e).getWidth()\n                    }\n                    linesVisibleRangesForRange(e, t) {\n                        if (this.shouldRender()) return null;\n                        const i = e.endLineNumber,\n                            n = re.e.intersectRanges(e, this._lastRenderedData.getCurrentVisibleRange());\n                        if (!n) return null;\n                        let o = [],\n                            s = 0;\n                        const r = new G(this.domNode.domNode, this._textRangeRestingSpot);\n                        let a = 0;\n                        t && (a = this._context.model.coordinatesConverter.convertViewPositionToModelPosition(new se.L(n.startLineNumber, 1)).lineNumber);\n                        const l = this._visibleLines.getStartLineNumber(),\n                            c = this._visibleLines.getEndLineNumber();\n                        for (let e = n.startLineNumber; e <= n.endLineNumber; e++) {\n                            if (e < l || e > c) continue;\n                            const d = e === n.startLineNumber ? n.startColumn : 1,\n                                h = e === n.endLineNumber ? n.endColumn : this._context.model.getLineMaxColumn(e),\n                                u = this._visibleLines.getVisibleLine(e).getVisibleRangesForRange(e, d, h, r);\n                            if (u) {\n                                if (t && e < i) {\n                                    const t = a;\n                                    a = this._context.model.coordinatesConverter.convertViewPositionToModelPosition(new se.L(e + 1, 1)).lineNumber, t !== a && (u.ranges[u.ranges.length - 1].width += this._typicalHalfwidthCharacterWidth)\n                                }\n                                o[s++] = new F(u.outsideRenderedLine, e, B.from(u.ranges))\n                            }\n                        }\n                        return 0 === s ? null : o\n                    }\n                    _visibleRangesForLineRange(e, t, i) {\n                        return this.shouldRender() || e < this._visibleLines.getStartLineNumber() || e > this._visibleLines.getEndLineNumber() ? null : this._visibleLines.getVisibleLine(e).getVisibleRangesForRange(e, t, i, new G(this.domNode.domNode, this._textRangeRestingSpot))\n                    }\n                    visibleRangeForPosition(e) {\n                        const t = this._visibleRangesForLineRange(e.lineNumber, e.column, e.column);\n                        return t ? new W(t.outsideRenderedLine, t.ranges[0].left) : null\n                    }\n                    updateLineWidths() {\n                        this._updateLineWidths(!1)\n                    }\n                    _updateLineWidthsFast() {\n                        return this._updateLineWidths(!0)\n                    }\n                    _updateLineWidthsSlow() {\n                        this._updateLineWidths(!1)\n                    }\n                    _updateLineWidths(e) {\n                        const t = this._visibleLines.getStartLineNumber(),\n                            i = this._visibleLines.getEndLineNumber();\n                        let n = 1,\n                            o = !0;\n                        for (let s = t; s <= i; s++) {\n                            const t = this._visibleLines.getVisibleLine(s);\n                            !e || t.getWidthIsFast() ? n = Math.max(n, t.getWidth()) : o = !1\n                        }\n                        return o && 1 === t && i === this._context.model.getLineCount() && (this._maxLineWidth = 0), this._ensureMaxLineWidth(n), o\n                    }\n                    _checkMonospaceFontAssumptions() {\n                        let e = -1,\n                            t = -1;\n                        const i = this._visibleLines.getStartLineNumber(),\n                            n = this._visibleLines.getEndLineNumber();\n                        for (let o = i; o <= n; o++) {\n                            const i = this._visibleLines.getVisibleLine(o);\n                            if (i.needsMonospaceFontCheck()) {\n                                const n = i.getWidth();\n                                n > t && (t = n, e = o)\n                            }\n                        }\n                        if (-1 !== e && !this._visibleLines.getVisibleLine(e).monospaceAssumptionsAreValid())\n                            for (let e = i; e <= n; e++) {\n                                this._visibleLines.getVisibleLine(e).onMonospaceAssumptionsInvalidated()\n                            }\n                    }\n                    prepareRender() {\n                        throw new Error(\"Not supported\")\n                    }\n                    render() {\n                        throw new Error(\"Not supported\")\n                    }\n                    renderText(e) {\n                        if (this._visibleLines.renderLines(e), this._lastRenderedData.setCurrentVisibleRange(e.visibleRange), this.domNode.setWidth(this._context.viewLayout.getScrollWidth()), this.domNode.setHeight(Math.min(this._context.viewLayout.getScrollHeight(), 1e6)), this._horizontalRevealRequest) {\n                            const t = this._horizontalRevealRequest;\n                            if (e.startLineNumber <= t.minLineNumber && t.maxLineNumber <= e.endLineNumber) {\n                                this._horizontalRevealRequest = null, this.onDidRender();\n                                const e = this._computeScrollLeftToReveal(t);\n                                e && (this._isViewportWrapping || this._ensureMaxLineWidth(e.maxHorizontalOffset), this._context.model.setScrollPosition({\n                                    scrollLeft: e.scrollLeft\n                                }, t.scrollType))\n                            }\n                        }\n                        if (this._updateLineWidthsFast() || this._asyncUpdateLineWidths.schedule(), b.IJ && !this._asyncCheckMonospaceFontAssumptions.isScheduled()) {\n                            const e = this._visibleLines.getStartLineNumber(),\n                                t = this._visibleLines.getEndLineNumber();\n                            for (let i = e; i <= t; i++) {\n                                if (this._visibleLines.getVisibleLine(i).needsMonospaceFontCheck()) {\n                                    this._asyncCheckMonospaceFontAssumptions.schedule();\n                                    break\n                                }\n                            }\n                        }\n                        this._linesContent.setLayerHinting(this._canUseLayerHinting), this._linesContent.setContain(\"strict\");\n                        const t = this._context.viewLayout.getCurrentScrollTop() - e.bigNumbersDelta;\n                        this._linesContent.setTop(-t), this._linesContent.setLeft(-this._context.viewLayout.getCurrentScrollLeft())\n                    }\n                    _ensureMaxLineWidth(e) {\n                        const t = Math.ceil(e);\n                        this._maxLineWidth < t && (this._maxLineWidth = t, this._context.model.setMaxLineWidth(this._maxLineWidth))\n                    }\n                    _computeScrollTopToRevealRange(e, t, i, n, o) {\n                        const s = e.top,\n                            r = e.height,\n                            a = s + r;\n                        let l, c, d;\n                        if (n && n.length > 0) {\n                            let e = n[0].startLineNumber,\n                                t = n[0].endLineNumber;\n                            for (let i = 1, o = n.length; i < o; i++) {\n                                const o = n[i];\n                                e = Math.min(e, o.startLineNumber), t = Math.max(t, o.endLineNumber)\n                            }\n                            l = !1, c = this._context.viewLayout.getVerticalOffsetForLineNumber(e), d = this._context.viewLayout.getVerticalOffsetForLineNumber(t) + this._lineHeight\n                        } else {\n                            if (!i) return -1;\n                            l = !0, c = this._context.viewLayout.getVerticalOffsetForLineNumber(i.startLineNumber), d = this._context.viewLayout.getVerticalOffsetForLineNumber(i.endLineNumber) + this._lineHeight\n                        }\n                        if (!(\"mouse\" === t && \"default\" === this._cursorSurroundingLinesStyle)) {\n                            const e = Math.min(r / this._lineHeight / 2, this._cursorSurroundingLines);\n                            c -= e * this._lineHeight, d += Math.max(0, e - 1) * this._lineHeight\n                        }\n                        let h;\n                        if (0 !== o && 4 !== o || (d += this._lineHeight), d - c > r) {\n                            if (!l) return -1;\n                            h = c\n                        } else if (5 === o || 6 === o)\n                            if (6 === o && s <= c && d <= a) h = s;\n                            else {\n                                const e = c - Math.max(5 * this._lineHeight, .2 * r),\n                                    t = d - r;\n                                h = Math.max(t, e)\n                            }\n                        else if (1 === o || 2 === o)\n                            if (2 === o && s <= c && d <= a) h = s;\n                            else {\n                                const e = (c + d) / 2;\n                                h = Math.max(0, e - r / 2)\n                            }\n                        else h = this._computeMinimumScrolling(s, a, c, d, 3 === o, 4 === o);\n                        return h\n                    }\n                    _computeScrollLeftToReveal(e) {\n                        const t = this._context.viewLayout.getCurrentViewport(),\n                            i = t.left,\n                            n = i + t.width;\n                        let o = 1073741824,\n                            s = 0;\n                        if (\"range\" === e.type) {\n                            const t = this._visibleRangesForLineRange(e.lineNumber, e.startColumn, e.endColumn);\n                            if (!t) return null;\n                            for (const e of t.ranges) o = Math.min(o, Math.round(e.left)), s = Math.max(s, Math.round(e.left + e.width))\n                        } else\n                            for (const t of e.selections) {\n                                if (t.startLineNumber !== t.endLineNumber) return null;\n                                const e = this._visibleRangesForLineRange(t.startLineNumber, t.startColumn, t.endColumn);\n                                if (!e) return null;\n                                for (const t of e.ranges) o = Math.min(o, Math.round(t.left)), s = Math.max(s, Math.round(t.left + t.width))\n                            }\n                        if (o = Math.max(0, o - Lt.HORIZONTAL_EXTRA_PX), s += this._revealHorizontalRightPadding, \"selections\" === e.type && s - o > t.width) return null;\n                        return {\n                            scrollLeft: this._computeMinimumScrolling(i, n, o, s),\n                            maxHorizontalOffset: s\n                        }\n                    }\n                    _computeMinimumScrolling(e, t, i, n, o, s) {\n                        o = !!o, s = !!s;\n                        const r = (t |= 0) - (e |= 0);\n                        return (n |= 0) - (i |= 0) < r ? o ? i : s ? Math.max(0, n - r) : i < e ? i : n > t ? Math.max(0, n - r) : e : i\n                    }\n                }\n                Lt.HORIZONTAL_EXTRA_PX = 30;\n                i(84160);\n                class Nt extends mt {\n                    constructor(e) {\n                        super(), this._context = e;\n                        const t = this._context.configuration.options.get(129);\n                        this._decorationsLeft = t.decorationsLeft, this._decorationsWidth = t.decorationsWidth, this._renderResult = null, this._context.addEventHandler(this)\n                    }\n                    dispose() {\n                        this._context.removeEventHandler(this), this._renderResult = null, super.dispose()\n                    }\n                    onConfigurationChanged(e) {\n                        const t = this._context.configuration.options.get(129);\n                        return this._decorationsLeft = t.decorationsLeft, this._decorationsWidth = t.decorationsWidth, !0\n                    }\n                    onDecorationsChanged(e) {\n                        return !0\n                    }\n                    onFlushed(e) {\n                        return !0\n                    }\n                    onLinesChanged(e) {\n                        return !0\n                    }\n                    onLinesDeleted(e) {\n                        return !0\n                    }\n                    onLinesInserted(e) {\n                        return !0\n                    }\n                    onScrollChanged(e) {\n                        return e.scrollTopChanged\n                    }\n                    onZonesChanged(e) {\n                        return !0\n                    }\n                    _getDecorations(e) {\n                        const t = e.getDecorationsInViewport();\n                        let i = [],\n                            n = 0;\n                        for (let e = 0, o = t.length; e < o; e++) {\n                            const o = t[e],\n                                s = o.options.linesDecorationsClassName;\n                            s && (i[n++] = new ft(o.range.startLineNumber, o.range.endLineNumber, s));\n                            const r = o.options.firstLineDecorationClassName;\n                            r && (i[n++] = new ft(o.range.startLineNumber, o.range.startLineNumber, r))\n                        }\n                        return i\n                    }\n                    prepareRender(e) {\n                        const t = e.visibleRange.startLineNumber,\n                            i = e.visibleRange.endLineNumber,\n                            n = this._render(t, i, this._getDecorations(e)),\n                            o = '\" style=\"left:' + this._decorationsLeft.toString() + \"px;width:\" + this._decorationsWidth.toString() + 'px;\"></div>',\n                            s = [];\n                        for (let e = t; e <= i; e++) {\n                            const i = e - t,\n                                r = n[i];\n                            let a = \"\";\n                            for (let e = 0, t = r.length; e < t; e++) a += '<div class=\"cldr ' + r[e] + o;\n                            s[i] = a\n                        }\n                        this._renderResult = s\n                    }\n                    render(e, t) {\n                        return this._renderResult ? this._renderResult[t - e] : \"\"\n                    }\n                }\n                i(76206);\n                class Dt extends mt {\n                    constructor(e) {\n                        super(), this._context = e, this._renderResult = null, this._context.addEventHandler(this)\n                    }\n                    dispose() {\n                        this._context.removeEventHandler(this), this._renderResult = null, super.dispose()\n                    }\n                    onConfigurationChanged(e) {\n                        return !0\n                    }\n                    onDecorationsChanged(e) {\n                        return !0\n                    }\n                    onFlushed(e) {\n                        return !0\n                    }\n                    onLinesChanged(e) {\n                        return !0\n                    }\n                    onLinesDeleted(e) {\n                        return !0\n                    }\n                    onLinesInserted(e) {\n                        return !0\n                    }\n                    onScrollChanged(e) {\n                        return e.scrollTopChanged\n                    }\n                    onZonesChanged(e) {\n                        return !0\n                    }\n                    _getDecorations(e) {\n                        const t = e.getDecorationsInViewport();\n                        let i = [],\n                            n = 0;\n                        for (let e = 0, o = t.length; e < o; e++) {\n                            const o = t[e],\n                                s = o.options.marginClassName;\n                            s && (i[n++] = new ft(o.range.startLineNumber, o.range.endLineNumber, s))\n                        }\n                        return i\n                    }\n                    prepareRender(e) {\n                        const t = e.visibleRange.startLineNumber,\n                            i = e.visibleRange.endLineNumber,\n                            n = this._render(t, i, this._getDecorations(e)),\n                            o = [];\n                        for (let e = t; e <= i; e++) {\n                            const i = e - t,\n                                s = n[i];\n                            let r = \"\";\n                            for (let e = 0, t = s.length; e < t; e++) r += '<div class=\"cmdr ' + s[e] + '\" style=\"\"></div>';\n                            o[i] = r\n                        }\n                        this._renderResult = o\n                    }\n                    render(e, t) {\n                        return this._renderResult ? this._renderResult[t - e] : \"\"\n                    }\n                }\n                i(55229);\n                class It {\n                    constructor(e, t, i, n) {\n                        this._rgba8Brand = void 0, this.r = It._clamp(e), this.g = It._clamp(t), this.b = It._clamp(i), this.a = It._clamp(n)\n                    }\n                    equals(e) {\n                        return this.r === e.r && this.g === e.g && this.b === e.b && this.a === e.a\n                    }\n                    static _clamp(e) {\n                        return e < 0 ? 0 : e > 255 ? 255 : 0 | e\n                    }\n                }\n                It.Empty = new It(0, 0, 0, 0);\n                var Et = i(44101);\n                class Tt extends u.JT {\n                    constructor() {\n                        super(), this._onDidChange = new h.Q5, this.onDidChange = this._onDidChange.event, this._updateColorMap(), this._register(Et.RW.onDidChange((e => {\n                            e.changedColorMap && this._updateColorMap()\n                        })))\n                    }\n                    static getInstance() {\n                        return this._INSTANCE || (this._INSTANCE = (0, u.dk)(new Tt)), this._INSTANCE\n                    }\n                    _updateColorMap() {\n                        const e = Et.RW.getColorMap();\n                        if (!e) return this._colors = [It.Empty], void(this._backgroundIsLight = !0);\n                        this._colors = [It.Empty];\n                        for (let t = 1; t < e.length; t++) {\n                            const i = e[t].rgba;\n                            this._colors[t] = new It(i.r, i.g, i.b, Math.round(255 * i.a))\n                        }\n                        let t = e[2].getRelativeLuminance();\n                        this._backgroundIsLight = t >= .5, this._onDidChange.fire(void 0)\n                    }\n                    getColor(e) {\n                        return (e < 1 || e >= this._colors.length) && (e = 2), this._colors[e]\n                    }\n                    backgroundIsLight() {\n                        return this._backgroundIsLight\n                    }\n                }\n                Tt._INSTANCE = null;\n                var Mt = i(13824);\n                const At = (() => {\n                    const e = [];\n                    for (let t = 32; t <= 126; t++) e.push(t);\n                    return e.push(65533), e\n                })();\n                var Ot = i(85427);\n                class Pt {\n                    constructor(e, t) {\n                        this.scale = t, this._minimapCharRendererBrand = void 0, this.charDataNormal = Pt.soften(e, .8), this.charDataLight = Pt.soften(e, 50 / 60)\n                    }\n                    static soften(e, t) {\n                        let i = new Uint8ClampedArray(e.length);\n                        for (let n = 0, o = e.length; n < o; n++) i[n] = (0, Ot.K)(e[n] * t);\n                        return i\n                    }\n                    renderChar(e, t, i, n, o, s, r, a, l, c, d) {\n                        const h = 1 * this.scale,\n                            u = 2 * this.scale,\n                            g = d ? 1 : u;\n                        if (t + h > e.width || i + g > e.height) return void console.warn(\"bad render request outside image data\");\n                        const p = c ? this.charDataLight : this.charDataNormal,\n                            f = ((e, t) => (e -= 32) < 0 || e > 96 ? t <= 2 ? (e + 96) % 96 : 95 : e)(n, l),\n                            m = 4 * e.width,\n                            v = r.r,\n                            _ = r.g,\n                            b = r.b,\n                            w = o.r - v,\n                            y = o.g - _,\n                            C = o.b - b,\n                            x = Math.max(s, a),\n                            S = e.data;\n                        let k = f * h * u,\n                            L = i * m + 4 * t;\n                        for (let e = 0; e < g; e++) {\n                            let e = L;\n                            for (let t = 0; t < h; t++) {\n                                const t = p[k++] / 255 * (s / 255);\n                                S[e++] = v + w * t, S[e++] = _ + y * t, S[e++] = b + C * t, S[e++] = x\n                            }\n                            L += m\n                        }\n                    }\n                    blockRenderChar(e, t, i, n, o, s, r, a) {\n                        const l = 1 * this.scale,\n                            c = 2 * this.scale,\n                            d = a ? 1 : c;\n                        if (t + l > e.width || i + d > e.height) return void console.warn(\"bad render request outside image data\");\n                        const h = 4 * e.width,\n                            u = o / 255 * .5,\n                            g = s.r,\n                            p = s.g,\n                            f = s.b,\n                            m = g + (n.r - g) * u,\n                            v = p + (n.g - p) * u,\n                            _ = f + (n.b - f) * u,\n                            b = Math.max(o, r),\n                            w = e.data;\n                        let y = i * h + 4 * t;\n                        for (let e = 0; e < d; e++) {\n                            let e = y;\n                            for (let t = 0; t < l; t++) w[e++] = m, w[e++] = v, w[e++] = _, w[e++] = b;\n                            y += h\n                        }\n                    }\n                }\n                var Rt = i(88289);\n                const Ft = {\n                        0: 0,\n                        1: 1,\n                        2: 2,\n                        3: 3,\n                        4: 4,\n                        5: 5,\n                        6: 6,\n                        7: 7,\n                        8: 8,\n                        9: 9,\n                        A: 10,\n                        B: 11,\n                        C: 12,\n                        D: 13,\n                        E: 14,\n                        F: 15\n                    },\n                    Bt = e => {\n                        const t = new Uint8ClampedArray(e.length / 2);\n                        for (let i = 0; i < e.length; i += 2) t[i >> 1] = Ft[e[i]] << 4 | 15 & Ft[e[i + 1]];\n                        return t\n                    },\n                    Vt = {\n                        1: (0, Rt.I)((() => Bt(\"0000511D6300CF609C709645A78432005642574171487021003C451900274D35D762755E8B629C5BA856AF57BA649530C167D1512A272A3F6038604460398526BCA2A968DB6F8957C768BE5FBE2FB467CF5D8D5B795DC7625B5DFF50DE64C466DB2FC47CD860A65E9A2EB96CB54CE06DA763AB2EA26860524D3763536601005116008177A8705E53AB738E6A982F88BAA35B5F5B626D9C636B449B737E5B7B678598869A662F6B5B8542706C704C80736A607578685B70594A49715A4522E792\"))),\n                        2: (0, Rt.I)((() => Bt(\"000000000000000055394F383D2800008B8B1F210002000081B1CBCBCC820000847AAF6B9AAF2119BE08B8881AD60000A44FD07DCCF107015338130C00000000385972265F390B406E2437634B4B48031B12B8A0847000001E15B29A402F0000000000004B33460B00007A752C2A0000000000004D3900000084394B82013400ABA5CFC7AD9C0302A45A3E5A98AB000089A43382D97900008BA54AA087A70A0248A6A7AE6DBE0000BF6F94987EA40A01A06DCFA7A7A9030496C32F77891D0000A99FB1A0AFA80603B29AB9CA75930D010C0948354D3900000C0948354F37460D0028BE673D8400000000AF9D7B6E00002B007AA8933400007AA642675C2700007984CFB9C3985B768772A8A6B7B20000CAAECAAFC4B700009F94A6009F840009D09F9BA4CA9C0000CC8FC76DC87F0000C991C472A2000000A894A48CA7B501079BA2C9C69BA20000B19A5D3FA89000005CA6009DA2960901B0A7F0669FB200009D009E00B7890000DAD0F5D092820000D294D4C48BD10000B5A7A4A3B1A50402CAB6CBA6A2000000B5A7A4A3B1A8044FCDADD19D9CB00000B7778F7B8AAE0803C9AB5D3F5D3F00009EA09EA0BAB006039EA0989A8C7900009B9EF4D6B7C00000A9A7816CACA80000ABAC84705D3F000096DA635CDC8C00006F486F266F263D4784006124097B00374F6D2D6D2D6D4A3A95872322000000030000000000008D8939130000000000002E22A5C9CBC70600AB25C0B5C9B400061A2DB04CA67001082AA6BEBEBFC606002321DACBC19E03087AA08B6768380000282FBAC0B8CA7A88AD25BBA5A29900004C396C5894A6000040485A6E356E9442A32CD17EADA70000B4237923628600003E2DE9C1D7B500002F25BBA5A2990000231DB6AFB4A804023025C0B5CAB588062B2CBDBEC0C706882435A75CA20000002326BD6A82A908048B4B9A5A668000002423A09CB4BB060025259C9D8A7900001C1FCAB2C7C700002A2A9387ABA200002626A4A47D6E9D14333163A0C87500004B6F9C2D643A257049364936493647358A34438355497F1A0000A24C1D590000D38DFFBDD4CD3126\")))\n                    };\n                class Wt {\n                    static create(e, t) {\n                        if (this.lastCreated && e === this.lastCreated.scale && t === this.lastFontFamily) return this.lastCreated;\n                        let i;\n                        return i = Vt[e] ? new Pt(Vt[e](), e) : Wt.createFromSampleData(Wt.createSampleData(t).data, e), this.lastFontFamily = t, this.lastCreated = i, i\n                    }\n                    static createSampleData(e) {\n                        const t = document.createElement(\"canvas\"),\n                            i = t.getContext(\"2d\");\n                        t.style.height = \"16px\", t.height = 16, t.width = 960, t.style.width = \"960px\", i.fillStyle = \"#ffffff\", i.font = `bold 16px ${e}`, i.textBaseline = \"middle\";\n                        let n = 0;\n                        for (const e of At) i.fillText(String.fromCharCode(e), n, 8), n += 10;\n                        return i.getImageData(0, 0, 960, 16)\n                    }\n                    static createFromSampleData(e, t) {\n                        if (61440 !== e.length) throw new Error(\"Unexpected source in MinimapCharRenderer\");\n                        let i = Wt._downsample(e, t);\n                        return new Pt(i, t)\n                    }\n                    static _downsampleChar(e, t, i, n, o) {\n                        const s = 1 * o,\n                            r = 2 * o;\n                        let a = n,\n                            l = 0;\n                        for (let n = 0; n < r; n++) {\n                            const o = n / r * 16,\n                                c = (n + 1) / r * 16;\n                            for (let n = 0; n < s; n++) {\n                                const r = n / s * 10,\n                                    d = (n + 1) / s * 10;\n                                let h = 0,\n                                    u = 0;\n                                for (let i = o; i < c; i++) {\n                                    const n = t + 3840 * Math.floor(i),\n                                        o = 1 - (i - Math.floor(i));\n                                    for (let t = r; t < d; t++) {\n                                        const i = 1 - (t - Math.floor(t)),\n                                            s = n + 4 * Math.floor(t),\n                                            r = i * o;\n                                        u += r, h += e[s] * e[s + 3] / 255 * r\n                                    }\n                                }\n                                const g = h / u;\n                                l = Math.max(l, g), i[a++] = (0, Ot.K)(g)\n                            }\n                        }\n                        return l\n                    }\n                    static _downsample(e, t) {\n                        const i = 2 * t * 1 * t,\n                            n = 96 * i,\n                            o = new Uint8ClampedArray(n);\n                        let s = 0,\n                            r = 0,\n                            a = 0;\n                        for (let n = 0; n < 96; n++) a = Math.max(a, this._downsampleChar(e, r, o, s, t)), s += i, r += 40;\n                        if (a > 0) {\n                            const e = 255 / a;\n                            for (let t = 0; t < n; t++) o[t] *= e\n                        }\n                        return o\n                    }\n                }\n                class Ht {\n                    constructor(e, t, i) {\n                        const n = e.options,\n                            o = n.get(127),\n                            s = n.get(129),\n                            r = s.minimap,\n                            a = n.get(43),\n                            l = n.get(64);\n                        this.renderMinimap = r.renderMinimap, this.size = l.size, this.minimapHeightIsEditorHeight = r.minimapHeightIsEditorHeight, this.scrollBeyondLastLine = n.get(93), this.showSlider = l.showSlider, this.pixelRatio = o, this.typicalHalfwidthCharacterWidth = a.typicalHalfwidthCharacterWidth, this.lineHeight = n.get(58), this.minimapLeft = r.minimapLeft, this.minimapWidth = r.minimapWidth, this.minimapHeight = s.height, this.canvasInnerWidth = r.minimapCanvasInnerWidth, this.canvasInnerHeight = r.minimapCanvasInnerHeight, this.canvasOuterWidth = r.minimapCanvasOuterWidth, this.canvasOuterHeight = r.minimapCanvasOuterHeight, this.isSampling = r.minimapIsSampling, this.editorHeight = s.height, this.fontScale = r.minimapScale, this.minimapLineHeight = r.minimapLineHeight, this.minimapCharWidth = 1 * this.fontScale, this.charRenderer = (0, Rt.I)((() => Wt.create(this.fontScale, a.fontFamily))), this.defaultBackgroundColor = i.getColor(2), this.backgroundColor = Ht._getMinimapBackground(t, this.defaultBackgroundColor), this.foregroundAlpha = Ht._getMinimapForegroundOpacity(t)\n                    }\n                    static _getMinimapBackground(e, t) {\n                        const i = e.getColor(gt.kV);\n                        return i ? new It(i.rgba.r, i.rgba.g, i.rgba.b, Math.round(255 * i.rgba.a)) : t\n                    }\n                    static _getMinimapForegroundOpacity(e) {\n                        const t = e.getColor(gt.It);\n                        return t ? It._clamp(Math.round(255 * t.rgba.a)) : 255\n                    }\n                    equals(e) {\n                        return this.renderMinimap === e.renderMinimap && this.size === e.size && this.minimapHeightIsEditorHeight === e.minimapHeightIsEditorHeight && this.scrollBeyondLastLine === e.scrollBeyondLastLine && this.showSlider === e.showSlider && this.pixelRatio === e.pixelRatio && this.typicalHalfwidthCharacterWidth === e.typicalHalfwidthCharacterWidth && this.lineHeight === e.lineHeight && this.minimapLeft === e.minimapLeft && this.minimapWidth === e.minimapWidth && this.minimapHeight === e.minimapHeight && this.canvasInnerWidth === e.canvasInnerWidth && this.canvasInnerHeight === e.canvasInnerHeight && this.canvasOuterWidth === e.canvasOuterWidth && this.canvasOuterHeight === e.canvasOuterHeight && this.isSampling === e.isSampling && this.editorHeight === e.editorHeight && this.fontScale === e.fontScale && this.minimapLineHeight === e.minimapLineHeight && this.minimapCharWidth === e.minimapCharWidth && this.defaultBackgroundColor && this.defaultBackgroundColor.equals(e.defaultBackgroundColor) && this.backgroundColor && this.backgroundColor.equals(e.backgroundColor) && this.foregroundAlpha === e.foregroundAlpha\n                    }\n                }\n                class zt {\n                    constructor(e, t, i, n, o, s, r, a) {\n                        this.scrollTop = e, this.scrollHeight = t, this.sliderNeeded = i, this._computedSliderRatio = n, this.sliderTop = o, this.sliderHeight = s, this.startLineNumber = r, this.endLineNumber = a\n                    }\n                    getDesiredScrollTopFromDelta(e) {\n                        return Math.round(this.scrollTop + e / this._computedSliderRatio)\n                    }\n                    getDesiredScrollTopFromTouchLocation(e) {\n                        return Math.round((e - this.sliderHeight / 2) / this._computedSliderRatio)\n                    }\n                    static create(e, t, i, n, o, s, r, a, l, c, d) {\n                        const h = e.pixelRatio,\n                            u = e.minimapLineHeight,\n                            g = Math.floor(e.canvasInnerHeight / u),\n                            p = e.lineHeight;\n                        if (e.minimapHeightIsEditorHeight) {\n                            const t = a * e.lineHeight + (e.scrollBeyondLastLine ? o - e.lineHeight : 0),\n                                i = Math.max(1, Math.floor(o * o / t)),\n                                n = Math.max(0, e.minimapHeight - i),\n                                s = n / (c - o),\n                                d = l * s,\n                                h = n > 0,\n                                u = Math.floor(e.canvasInnerHeight / e.minimapLineHeight);\n                            return new zt(l, c, h, s, d, i, 1, Math.min(r, u))\n                        }\n                        let f, m;\n                        if (s && i !== r) {\n                            const e = i - t + 1;\n                            f = Math.floor(e * u / h)\n                        } else {\n                            const e = o / p;\n                            f = Math.floor(e * u / h)\n                        }\n                        m = e.scrollBeyondLastLine ? (r - 1) * u / h : Math.max(0, r * u / h - f), m = Math.min(e.minimapHeight - f, m);\n                        const v = m / (c - o),\n                            _ = l * v;\n                        let b = 0;\n                        if (e.scrollBeyondLastLine) {\n                            b = o / p - 1\n                        }\n                        if (g >= r + b) {\n                            return new zt(l, c, m > 0, v, _, f, 1, r)\n                        } {\n                            let e = Math.max(1, Math.floor(t - _ * h / u));\n                            d && d.scrollHeight === c && (d.scrollTop > l && (e = Math.min(e, d.startLineNumber)), d.scrollTop < l && (e = Math.max(e, d.startLineNumber)));\n                            const i = Math.min(r, e + g - 1);\n                            return new zt(l, c, !0, v, (t - e + (l - n) / p) * u / h, f, e, i)\n                        }\n                    }\n                }\n                class jt {\n                    constructor(e) {\n                        this.dy = e\n                    }\n                    onContentChanged() {\n                        this.dy = -1\n                    }\n                    onTokensChanged() {\n                        this.dy = -1\n                    }\n                }\n                jt.INVALID = new jt(-1);\n                class Ut {\n                    constructor(e, t, i) {\n                        this.renderedLayout = e, this._imageData = t, this._renderedLines = new Ge((() => jt.INVALID)), this._renderedLines._set(e.startLineNumber, i)\n                    }\n                    linesEquals(e) {\n                        if (!this.scrollEquals(e)) return !1;\n                        const t = this._renderedLines._get().lines;\n                        for (let e = 0, i = t.length; e < i; e++)\n                            if (-1 === t[e].dy) return !1;\n                        return !0\n                    }\n                    scrollEquals(e) {\n                        return this.renderedLayout.startLineNumber === e.startLineNumber && this.renderedLayout.endLineNumber === e.endLineNumber\n                    }\n                    _get() {\n                        const e = this._renderedLines._get();\n                        return {\n                            imageData: this._imageData,\n                            rendLineNumberStart: e.rendLineNumberStart,\n                            lines: e.lines\n                        }\n                    }\n                    onLinesChanged(e, t) {\n                        return this._renderedLines.onLinesChanged(e, t)\n                    }\n                    onLinesDeleted(e, t) {\n                        this._renderedLines.onLinesDeleted(e, t)\n                    }\n                    onLinesInserted(e, t) {\n                        this._renderedLines.onLinesInserted(e, t)\n                    }\n                    onTokensChanged(e) {\n                        return this._renderedLines.onTokensChanged(e)\n                    }\n                }\n                class $t {\n                    constructor(e, t, i, n) {\n                        this._backgroundFillData = $t._createBackgroundFillData(t, i, n), this._buffers = [e.createImageData(t, i), e.createImageData(t, i)], this._lastUsedBuffer = 0\n                    }\n                    getBuffer() {\n                        this._lastUsedBuffer = 1 - this._lastUsedBuffer;\n                        const e = this._buffers[this._lastUsedBuffer];\n                        return e.data.set(this._backgroundFillData), e\n                    }\n                    static _createBackgroundFillData(e, t, i) {\n                        const n = i.r,\n                            o = i.g,\n                            s = i.b,\n                            r = i.a,\n                            a = new Uint8ClampedArray(e * t * 4);\n                        let l = 0;\n                        for (let i = 0; i < t; i++)\n                            for (let t = 0; t < e; t++) a[l] = n, a[l + 1] = o, a[l + 2] = s, a[l + 3] = r, l += 4;\n                        return a\n                    }\n                }\n                class Kt {\n                    constructor(e, t) {\n                        this.samplingRatio = e, this.minimapLines = t\n                    }\n                    static compute(e, t, i) {\n                        if (0 === e.renderMinimap || !e.isSampling) return [null, []];\n                        const n = e.pixelRatio,\n                            o = e.lineHeight,\n                            s = e.scrollBeyondLastLine,\n                            {\n                                minimapLineCount: r\n                            } = K.gk.computeContainedMinimapLineCount({\n                                viewLineCount: t,\n                                scrollBeyondLastLine: s,\n                                height: e.editorHeight,\n                                lineHeight: o,\n                                pixelRatio: n\n                            }),\n                            a = t / r,\n                            l = a / 2;\n                        if (!i || 0 === i.minimapLines.length) {\n                            let e = [];\n                            if (e[0] = 1, r > 1) {\n                                for (let t = 0, i = r - 1; t < i; t++) e[t] = Math.round(t * a + l);\n                                e[r - 1] = t\n                            }\n                            return [new Kt(a, e), []]\n                        }\n                        const c = i.minimapLines,\n                            d = c.length;\n                        let h = [],\n                            u = 0,\n                            g = 0,\n                            p = 1;\n                        let f = [],\n                            m = null;\n                        for (let e = 0; e < r; e++) {\n                            const i = Math.max(p, Math.round(e * a)),\n                                n = Math.max(i, Math.round((e + 1) * a));\n                            for (; u < d && c[u] < i;) {\n                                if (f.length < 10) {\n                                    const e = u + 1 + g;\n                                    m && \"deleted\" === m.type && m._oldIndex === u - 1 ? m.deleteToLineNumber++ : (m = {\n                                        type: \"deleted\",\n                                        _oldIndex: u,\n                                        deleteFromLineNumber: e,\n                                        deleteToLineNumber: e\n                                    }, f.push(m)), g--\n                                }\n                                u++\n                            }\n                            let o;\n                            if (u < d && c[u] <= n) o = c[u], u++;\n                            else if (o = 0 === e ? 1 : e + 1 === r ? t : Math.round(e * a + l), f.length < 10) {\n                                const t = u + 1 + g;\n                                m && \"inserted\" === m.type && m._i === e - 1 ? m.insertToLineNumber++ : (m = {\n                                    type: \"inserted\",\n                                    _i: e,\n                                    insertFromLineNumber: t,\n                                    insertToLineNumber: t\n                                }, f.push(m)), g++\n                            }\n                            h[e] = o, p = o\n                        }\n                        if (f.length < 10)\n                            for (; u < d;) {\n                                const e = u + 1 + g;\n                                m && \"deleted\" === m.type && m._oldIndex === u - 1 ? m.deleteToLineNumber++ : (m = {\n                                    type: \"deleted\",\n                                    _oldIndex: u,\n                                    deleteFromLineNumber: e,\n                                    deleteToLineNumber: e\n                                }, f.push(m)), g--, u++\n                            } else f = [{\n                                type: \"flush\"\n                            }];\n                        return [new Kt(a, h), f]\n                    }\n                    modelLineToMinimapLine(e) {\n                        return Math.min(this.minimapLines.length, Math.max(1, Math.round(e / this.samplingRatio)))\n                    }\n                    modelLineRangeToMinimapLineRange(e, t) {\n                        let i = this.modelLineToMinimapLine(e) - 1;\n                        for (; i > 0 && this.minimapLines[i - 1] >= e;) i--;\n                        let n = this.modelLineToMinimapLine(t) - 1;\n                        for (; n + 1 < this.minimapLines.length && this.minimapLines[n + 1] <= t;) n++;\n                        if (i === n) {\n                            const n = this.minimapLines[i];\n                            if (n < e || n > t) return null\n                        }\n                        return [i + 1, n + 1]\n                    }\n                    decorationLineRangeToMinimapLineRange(e, t) {\n                        let i = this.modelLineToMinimapLine(e),\n                            n = this.modelLineToMinimapLine(t);\n                        return e !== t && n === i && (n === this.minimapLines.length ? i > 1 && i-- : n++), [i, n]\n                    }\n                    onLinesDeleted(e) {\n                        const t = e.toLineNumber - e.fromLineNumber + 1;\n                        let i = this.minimapLines.length,\n                            n = 0;\n                        for (let o = this.minimapLines.length - 1; o >= 0 && !(this.minimapLines[o] < e.fromLineNumber); o--) this.minimapLines[o] <= e.toLineNumber ? (this.minimapLines[o] = Math.max(1, e.fromLineNumber - 1), i = Math.min(i, o), n = Math.max(n, o)) : this.minimapLines[o] -= t;\n                        return [i, n]\n                    }\n                    onLinesInserted(e) {\n                        const t = e.toLineNumber - e.fromLineNumber + 1;\n                        for (let i = this.minimapLines.length - 1; i >= 0 && !(this.minimapLines[i] < e.fromLineNumber); i--) this.minimapLines[i] += t\n                    }\n                }\n                class qt extends A {\n                    constructor(e) {\n                        super(e), this.tokensColorTracker = Tt.getInstance(), this._selections = [], this._minimapSelections = null, this.options = new Ht(this._context.configuration, this._context.theme, this.tokensColorTracker);\n                        const [t] = Kt.compute(this.options, this._context.model.getLineCount(), null);\n                        this._samplingState = t, this._shouldCheckSampling = !1, this._actual = new Zt(e.theme, this)\n                    }\n                    dispose() {\n                        this._actual.dispose(), super.dispose()\n                    }\n                    getDomNode() {\n                        return this._actual.getDomNode()\n                    }\n                    _onOptionsMaybeChanged() {\n                        const e = new Ht(this._context.configuration, this._context.theme, this.tokensColorTracker);\n                        return !this.options.equals(e) && (this.options = e, this._recreateLineSampling(), this._actual.onDidChangeOptions(), !0)\n                    }\n                    onConfigurationChanged(e) {\n                        return this._onOptionsMaybeChanged()\n                    }\n                    onCursorStateChanged(e) {\n                        return this._selections = e.selections, this._minimapSelections = null, this._actual.onSelectionChanged()\n                    }\n                    onDecorationsChanged(e) {\n                        return !!e.affectsMinimap && this._actual.onDecorationsChanged()\n                    }\n                    onFlushed(e) {\n                        return this._samplingState && (this._shouldCheckSampling = !0), this._actual.onFlushed()\n                    }\n                    onLinesChanged(e) {\n                        if (this._samplingState) {\n                            const t = this._samplingState.modelLineRangeToMinimapLineRange(e.fromLineNumber, e.toLineNumber);\n                            return !!t && this._actual.onLinesChanged(t[0], t[1])\n                        }\n                        return this._actual.onLinesChanged(e.fromLineNumber, e.toLineNumber)\n                    }\n                    onLinesDeleted(e) {\n                        if (this._samplingState) {\n                            const [t, i] = this._samplingState.onLinesDeleted(e);\n                            return t <= i && this._actual.onLinesChanged(t + 1, i + 1), this._shouldCheckSampling = !0, !0\n                        }\n                        return this._actual.onLinesDeleted(e.fromLineNumber, e.toLineNumber)\n                    }\n                    onLinesInserted(e) {\n                        return this._samplingState ? (this._samplingState.onLinesInserted(e), this._shouldCheckSampling = !0, !0) : this._actual.onLinesInserted(e.fromLineNumber, e.toLineNumber)\n                    }\n                    onScrollChanged(e) {\n                        return this._actual.onScrollChanged()\n                    }\n                    onThemeChanged(e) {\n                        return this._context.model.invalidateMinimapColorCache(), this._actual.onThemeChanged(), this._onOptionsMaybeChanged(), !0\n                    }\n                    onTokensChanged(e) {\n                        if (this._samplingState) {\n                            let t = [];\n                            for (const i of e.ranges) {\n                                const e = this._samplingState.modelLineRangeToMinimapLineRange(i.fromLineNumber, i.toLineNumber);\n                                e && t.push({\n                                    fromLineNumber: e[0],\n                                    toLineNumber: e[1]\n                                })\n                            }\n                            return !!t.length && this._actual.onTokensChanged(t)\n                        }\n                        return this._actual.onTokensChanged(e.ranges)\n                    }\n                    onTokensColorsChanged(e) {\n                        return this._onOptionsMaybeChanged(), this._actual.onTokensColorsChanged()\n                    }\n                    onZonesChanged(e) {\n                        return this._actual.onZonesChanged()\n                    }\n                    prepareRender(e) {\n                        this._shouldCheckSampling && (this._shouldCheckSampling = !1, this._recreateLineSampling())\n                    }\n                    render(e) {\n                        let t = e.visibleRange.startLineNumber,\n                            i = e.visibleRange.endLineNumber;\n                        this._samplingState && (t = this._samplingState.modelLineToMinimapLine(t), i = this._samplingState.modelLineToMinimapLine(i));\n                        const n = {\n                            viewportContainsWhitespaceGaps: e.viewportData.whitespaceViewportData.length > 0,\n                            scrollWidth: e.scrollWidth,\n                            scrollHeight: e.scrollHeight,\n                            viewportStartLineNumber: t,\n                            viewportEndLineNumber: i,\n                            viewportStartLineNumberVerticalOffset: e.getVerticalOffsetForLineNumber(t),\n                            scrollTop: e.scrollTop,\n                            scrollLeft: e.scrollLeft,\n                            viewportWidth: e.viewportWidth,\n                            viewportHeight: e.viewportHeight\n                        };\n                        this._actual.render(n)\n                    }\n                    _recreateLineSampling() {\n                        this._minimapSelections = null;\n                        const e = Boolean(this._samplingState),\n                            [t, i] = Kt.compute(this.options, this._context.model.getLineCount(), this._samplingState);\n                        if (this._samplingState = t, e && this._samplingState)\n                            for (const e of i) switch (e.type) {\n                                case \"deleted\":\n                                    this._actual.onLinesDeleted(e.deleteFromLineNumber, e.deleteToLineNumber);\n                                    break;\n                                case \"inserted\":\n                                    this._actual.onLinesInserted(e.insertFromLineNumber, e.insertToLineNumber);\n                                    break;\n                                case \"flush\":\n                                    this._actual.onFlushed()\n                            }\n                    }\n                    getLineCount() {\n                        return this._samplingState ? this._samplingState.minimapLines.length : this._context.model.getLineCount()\n                    }\n                    getRealLineCount() {\n                        return this._context.model.getLineCount()\n                    }\n                    getLineContent(e) {\n                        return this._samplingState ? this._context.model.getLineContent(this._samplingState.minimapLines[e - 1]) : this._context.model.getLineContent(e)\n                    }\n                    getLineMaxColumn(e) {\n                        return this._samplingState ? this._context.model.getLineMaxColumn(this._samplingState.minimapLines[e - 1]) : this._context.model.getLineMaxColumn(e)\n                    }\n                    getMinimapLinesRenderingData(e, t, i) {\n                        if (this._samplingState) {\n                            let n = [];\n                            for (let o = 0, s = t - e + 1; o < s; o++) i[o] ? n[o] = this._context.model.getViewLineData(this._samplingState.minimapLines[e + o - 1]) : n[o] = null;\n                            return n\n                        }\n                        return this._context.model.getMinimapLinesRenderingData(e, t, i).data\n                    }\n                    getSelections() {\n                        if (null === this._minimapSelections)\n                            if (this._samplingState) {\n                                this._minimapSelections = [];\n                                for (const e of this._selections) {\n                                    const [t, i] = this._samplingState.decorationLineRangeToMinimapLineRange(e.startLineNumber, e.endLineNumber);\n                                    this._minimapSelections.push(new v.Y(t, e.startColumn, i, e.endColumn))\n                                }\n                            } else this._minimapSelections = this._selections;\n                        return this._minimapSelections\n                    }\n                    getMinimapDecorationsInViewport(e, t) {\n                        let i;\n                        if (this._samplingState) {\n                            const n = this._samplingState.minimapLines[e - 1],\n                                o = this._samplingState.minimapLines[t - 1];\n                            i = new re.e(n, 1, o, this._context.model.getLineMaxColumn(o))\n                        } else i = new re.e(e, 1, t, this._context.model.getLineMaxColumn(t));\n                        const n = this._context.model.getDecorationsInViewport(i);\n                        if (this._samplingState) {\n                            let e = [];\n                            for (const t of n) {\n                                if (!t.options.minimap) continue;\n                                const i = t.range,\n                                    n = this._samplingState.modelLineToMinimapLine(i.startLineNumber),\n                                    o = this._samplingState.modelLineToMinimapLine(i.endLineNumber);\n                                e.push(new Mt.$l(new re.e(n, i.startColumn, o, i.endColumn), t.options))\n                            }\n                            return e\n                        }\n                        return n\n                    }\n                    getOptions() {\n                        return this._context.model.getTextModelOptions()\n                    }\n                    revealLineNumber(e) {\n                        this._samplingState && (e = this._samplingState.minimapLines[e - 1]), this._context.model.revealRange(\"mouse\", !1, new re.e(e, 1, e, 1), 1, 0)\n                    }\n                    setScrollTop(e) {\n                        this._context.model.setScrollPosition({\n                            scrollTop: e\n                        }, 1)\n                    }\n                }\n                class Zt extends u.JT {\n                    constructor(e, t) {\n                        super(), this._renderDecorations = !1, this._gestureInProgress = !1, this._theme = e, this._model = t, this._lastRenderData = null, this._buffers = null, this._selectionColor = this._theme.getColor(gt.ov), this._domNode = (0, _.X)(document.createElement(\"div\")), O.write(this._domNode, 8), this._domNode.setClassName(this._getMinimapDomNodeClassName()), this._domNode.setPosition(\"absolute\"), this._domNode.setAttribute(\"role\", \"presentation\"), this._domNode.setAttribute(\"aria-hidden\", \"true\"), this._shadow = (0, _.X)(document.createElement(\"div\")), this._shadow.setClassName(\"minimap-shadow-hidden\"), this._domNode.appendChild(this._shadow), this._canvas = (0, _.X)(document.createElement(\"canvas\")), this._canvas.setPosition(\"absolute\"), this._canvas.setLeft(0), this._domNode.appendChild(this._canvas), this._decorationsCanvas = (0, _.X)(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, _.X)(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, _.X)(document.createElement(\"div\")), this._sliderHorizontal.setPosition(\"absolute\"), this._sliderHorizontal.setClassName(\"minimap-slider-horizontal\"), this._slider.appendChild(this._sliderHorizontal), this._applyLayout(), this._mouseDownListener = c.mu(this._domNode.domNode, \"mousedown\", (e => {\n                            e.preventDefault();\n                            if (0 === this._model.options.renderMinimap) return;\n                            if (!this._lastRenderData) return;\n                            if (\"proportional\" !== this._model.options.size) {\n                                if (e.leftButton && this._lastRenderData) {\n                                    const t = c.i(this._slider.domNode),\n                                        i = t.top + t.height / 2;\n                                    this._startSliderDragging(e.buttons, e.posx, i, e.posy, this._lastRenderData.renderedLayout)\n                                }\n                                return\n                            }\n                            const t = this._model.options.minimapLineHeight,\n                                i = this._model.options.canvasInnerHeight / this._model.options.canvasOuterHeight * e.browserEvent.offsetY;\n                            let n = Math.floor(i / t) + this._lastRenderData.renderedLayout.startLineNumber;\n                            n = Math.min(n, this._model.getLineCount()), this._model.revealLineNumber(n)\n                        })), this._sliderMouseMoveMonitor = new x.Z, this._sliderMouseDownListener = c.mu(this._slider.domNode, \"mousedown\", (e => {\n                            e.preventDefault(), e.stopPropagation(), e.leftButton && this._lastRenderData && this._startSliderDragging(e.buttons, e.posx, e.posy, e.posy, this._lastRenderData.renderedLayout)\n                        })), this._gestureDisposable = w.o.addTarget(this._domNode.domNode), this._sliderTouchStartListener = c.nm(this._domNode.domNode, w.t.Start, (e => {\n                            e.preventDefault(), e.stopPropagation(), this._lastRenderData && (this._slider.toggleClassName(\"active\", !0), this._gestureInProgress = !0, this.scrollDueToTouchEvent(e))\n                        }), {\n                            passive: !1\n                        }), this._sliderTouchMoveListener = c.nm(this._domNode.domNode, w.t.Change, (e => {\n                            e.preventDefault(), e.stopPropagation(), this._lastRenderData && this._gestureInProgress && this.scrollDueToTouchEvent(e)\n                        }), {\n                            passive: !1\n                        }), this._sliderTouchEndListener = c.mu(this._domNode.domNode, w.t.End, (e => {\n                            e.preventDefault(), e.stopPropagation(), this._gestureInProgress = !1, this._slider.toggleClassName(\"active\", !1)\n                        }))\n                    }\n                    _startSliderDragging(e, t, i, n, o) {\n                        this._slider.toggleClassName(\"active\", !0);\n                        const s = (e, n) => {\n                            const s = Math.abs(n - t);\n                            if (b.ED && s > 140) return void this._model.setScrollTop(o.scrollTop);\n                            const r = e - i;\n                            this._model.setScrollTop(o.getDesiredScrollTopFromDelta(r))\n                        };\n                        n !== i && s(n, t), this._sliderMouseMoveMonitor.startMonitoring(this._slider.domNode, e, x.e, (e => s(e.posy, e.posx)), (() => {\n                            this._slider.toggleClassName(\"active\", !1)\n                        }))\n                    }\n                    scrollDueToTouchEvent(e) {\n                        const t = this._domNode.domNode.getBoundingClientRect().top,\n                            i = this._lastRenderData.renderedLayout.getDesiredScrollTopFromTouchLocation(e.pageY - t);\n                        this._model.setScrollTop(i)\n                    }\n                    dispose() {\n                        this._mouseDownListener.dispose(), this._sliderMouseMoveMonitor.dispose(), this._sliderMouseDownListener.dispose(), this._gestureDisposable.dispose(), this._sliderTouchStartListener.dispose(), this._sliderTouchMoveListener.dispose(), this._sliderTouchEndListener.dispose(), super.dispose()\n                    }\n                    _getMinimapDomNodeClassName() {\n                        return \"always\" === this._model.options.showSlider ? \"minimap slider-always\" : \"minimap slider-mouseover\"\n                    }\n                    getDomNode() {\n                        return this._domNode\n                    }\n                    _applyLayout() {\n                        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)\n                    }\n                    _getBuffer() {\n                        return this._buffers || this._model.options.canvasInnerWidth > 0 && this._model.options.canvasInnerHeight > 0 && (this._buffers = new $t(this._canvas.domNode.getContext(\"2d\"), this._model.options.canvasInnerWidth, this._model.options.canvasInnerHeight, this._model.options.backgroundColor)), this._buffers ? this._buffers.getBuffer() : null\n                    }\n                    onDidChangeOptions() {\n                        this._lastRenderData = null, this._buffers = null, this._applyLayout(), this._domNode.setClassName(this._getMinimapDomNodeClassName())\n                    }\n                    onSelectionChanged() {\n                        return this._renderDecorations = !0, !0\n                    }\n                    onDecorationsChanged() {\n                        return this._renderDecorations = !0, !0\n                    }\n                    onFlushed() {\n                        return this._lastRenderData = null, !0\n                    }\n                    onLinesChanged(e, t) {\n                        return !!this._lastRenderData && this._lastRenderData.onLinesChanged(e, t)\n                    }\n                    onLinesDeleted(e, t) {\n                        return this._lastRenderData && this._lastRenderData.onLinesDeleted(e, t), !0\n                    }\n                    onLinesInserted(e, t) {\n                        return this._lastRenderData && this._lastRenderData.onLinesInserted(e, t), !0\n                    }\n                    onScrollChanged() {\n                        return this._renderDecorations = !0, !0\n                    }\n                    onThemeChanged() {\n                        return this._selectionColor = this._theme.getColor(gt.ov), this._renderDecorations = !0, !0\n                    }\n                    onTokensChanged(e) {\n                        return !!this._lastRenderData && this._lastRenderData.onTokensChanged(e)\n                    }\n                    onTokensColorsChanged() {\n                        return this._lastRenderData = null, this._buffers = null, !0\n                    }\n                    onZonesChanged() {\n                        return this._lastRenderData = null, !0\n                    }\n                    render(e) {\n                        if (0 === this._model.options.renderMinimap) return this._shadow.setClassName(\"minimap-shadow-hidden\"), this._sliderHorizontal.setWidth(0), void this._sliderHorizontal.setHeight(0);\n                        e.scrollLeft + e.viewportWidth >= e.scrollWidth ? this._shadow.setClassName(\"minimap-shadow-hidden\") : this._shadow.setClassName(\"minimap-shadow-visible\");\n                        const t = zt.create(this._model.options, e.viewportStartLineNumber, e.viewportEndLineNumber, e.viewportStartLineNumberVerticalOffset, e.viewportHeight, e.viewportContainsWhitespaceGaps, this._model.getLineCount(), this._model.getRealLineCount(), e.scrollTop, e.scrollHeight, this._lastRenderData ? this._lastRenderData.renderedLayout : null);\n                        this._slider.setDisplay(t.sliderNeeded ? \"block\" : \"none\"), this._slider.setTop(t.sliderTop), this._slider.setHeight(t.sliderHeight), this._sliderHorizontal.setLeft(0), this._sliderHorizontal.setWidth(this._model.options.minimapWidth), this._sliderHorizontal.setTop(0), this._sliderHorizontal.setHeight(t.sliderHeight), this.renderDecorations(t), this._lastRenderData = this.renderLines(t)\n                    }\n                    renderDecorations(e) {\n                        if (this._renderDecorations) {\n                            this._renderDecorations = !1;\n                            const t = this._model.getSelections();\n                            t.sort(re.e.compareRangesUsingStarts);\n                            const i = this._model.getMinimapDecorationsInViewport(e.startLineNumber, e.endLineNumber);\n                            i.sort(((e, t) => (e.options.zIndex || 0) - (t.options.zIndex || 0)));\n                            const {\n                                canvasInnerWidth: n,\n                                canvasInnerHeight: o\n                            } = this._model.options, s = this._model.options.minimapLineHeight, r = this._model.options.minimapCharWidth, a = this._model.getOptions().tabSize, l = this._decorationsCanvas.domNode.getContext(\"2d\");\n                            l.clearRect(0, 0, n, o);\n                            const c = new Gt(e.startLineNumber, e.endLineNumber, !1);\n                            this._renderSelectionLineHighlights(l, t, c, e, s), this._renderDecorationsLineHighlights(l, i, c, e, s);\n                            const d = new Gt(e.startLineNumber, e.endLineNumber, null);\n                            this._renderSelectionsHighlights(l, t, d, e, s, a, r, n), this._renderDecorationsHighlights(l, i, d, e, s, a, r, n)\n                        }\n                    }\n                    _renderSelectionLineHighlights(e, t, i, n, o) {\n                        if (!this._selectionColor || this._selectionColor.isTransparent()) return;\n                        e.fillStyle = this._selectionColor.transparent(.5).toString();\n                        let s = 0,\n                            r = 0;\n                        for (const a of t) {\n                            const t = Math.max(n.startLineNumber, a.startLineNumber),\n                                l = Math.min(n.endLineNumber, a.endLineNumber);\n                            if (t > l) continue;\n                            for (let e = t; e <= l; e++) i.set(e, !0);\n                            const c = (t - n.startLineNumber) * o,\n                                d = (l - n.startLineNumber) * o + o;\n                            r >= c || (r > s && e.fillRect(K.y0, s, e.canvas.width, r - s), s = c), r = d\n                        }\n                        r > s && e.fillRect(K.y0, s, e.canvas.width, r - s)\n                    }\n                    _renderDecorationsLineHighlights(e, t, i, n, o) {\n                        const s = new Map;\n                        for (let r = t.length - 1; r >= 0; r--) {\n                            const a = t[r],\n                                l = a.options.minimap;\n                            if (!l || l.position !== _t.F5.Inline) continue;\n                            const c = Math.max(n.startLineNumber, a.range.startLineNumber),\n                                d = Math.min(n.endLineNumber, a.range.endLineNumber);\n                            if (c > d) continue;\n                            const h = l.getColor(this._theme);\n                            if (!h || h.isTransparent()) continue;\n                            let u = s.get(h.toString());\n                            u || (u = h.transparent(.5).toString(), s.set(h.toString(), u)), e.fillStyle = u;\n                            for (let t = c; t <= d; t++) {\n                                if (i.has(t)) continue;\n                                i.set(t, !0);\n                                const s = (c - n.startLineNumber) * o;\n                                e.fillRect(K.y0, s, e.canvas.width, o)\n                            }\n                        }\n                    }\n                    _renderSelectionsHighlights(e, t, i, n, o, s, r, a) {\n                        if (this._selectionColor && !this._selectionColor.isTransparent())\n                            for (const l of t) {\n                                const t = Math.max(n.startLineNumber, l.startLineNumber),\n                                    c = Math.min(n.endLineNumber, l.endLineNumber);\n                                if (!(t > c))\n                                    for (let d = t; d <= c; d++) this.renderDecorationOnLine(e, i, l, this._selectionColor, n, d, o, o, s, r, a)\n                            }\n                    }\n                    _renderDecorationsHighlights(e, t, i, n, o, s, r, a) {\n                        for (const l of t) {\n                            const t = l.options.minimap;\n                            if (!t) continue;\n                            const c = Math.max(n.startLineNumber, l.range.startLineNumber),\n                                d = Math.min(n.endLineNumber, l.range.endLineNumber);\n                            if (c > d) continue;\n                            const h = t.getColor(this._theme);\n                            if (h && !h.isTransparent())\n                                for (let u = c; u <= d; u++) switch (t.position) {\n                                    case _t.F5.Inline:\n                                        this.renderDecorationOnLine(e, i, l.range, h, n, u, o, o, s, r, a);\n                                        continue;\n                                    case _t.F5.Gutter:\n                                        const t = (u - n.startLineNumber) * o,\n                                            c = 2;\n                                        this.renderDecoration(e, h, c, t, 2, o);\n                                        continue\n                                }\n                        }\n                    }\n                    renderDecorationOnLine(e, t, i, n, o, s, r, a, l, c, d) {\n                        const h = (s - o.startLineNumber) * a;\n                        if (h + r < 0 || h > this._model.options.canvasInnerHeight) return;\n                        const {\n                            startLineNumber: u,\n                            endLineNumber: g\n                        } = i, p = u === s ? i.startColumn : 1, f = g === s ? i.endColumn : this._model.getLineMaxColumn(s), m = this.getXOffsetForPosition(t, s, p, l, c, d), v = this.getXOffsetForPosition(t, s, f, l, c, d);\n                        this.renderDecoration(e, n, m, h, v - m, r)\n                    }\n                    getXOffsetForPosition(e, t, i, n, o, s) {\n                        if (1 === i) return K.y0;\n                        if ((i - 1) * o >= s) return s;\n                        let r = e.get(t);\n                        if (!r) {\n                            const i = this._model.getLineContent(t);\n                            r = [K.y0];\n                            let a = K.y0;\n                            for (let e = 1; e < i.length + 1; e++) {\n                                const t = i.charCodeAt(e - 1),\n                                    l = a + (9 === t ? n * o : Te.K7(t) ? 2 * o : o);\n                                if (l >= s) {\n                                    r[e] = s;\n                                    break\n                                }\n                                r[e] = l, a = l\n                            }\n                            e.set(t, r)\n                        }\n                        return i - 1 < r.length ? r[i - 1] : s\n                    }\n                    renderDecoration(e, t, i, n, o, s) {\n                        e.fillStyle = t && t.toString() || \"\", e.fillRect(i, n, o, s)\n                    }\n                    renderLines(e) {\n                        const t = e.startLineNumber,\n                            i = e.endLineNumber,\n                            n = this._model.options.minimapLineHeight;\n                        if (this._lastRenderData && this._lastRenderData.linesEquals(e)) {\n                            const t = this._lastRenderData._get();\n                            return new Ut(e, t.imageData, t.lines)\n                        }\n                        const o = this._getBuffer();\n                        if (!o) return null;\n                        let [s, r, a] = Zt._renderUntouchedLines(o, t, i, n, this._lastRenderData);\n                        const l = this._model.getMinimapLinesRenderingData(t, i, a),\n                            c = this._model.getOptions().tabSize,\n                            d = this._model.options.defaultBackgroundColor,\n                            h = this._model.options.backgroundColor,\n                            u = this._model.options.foregroundAlpha,\n                            g = this._model.tokensColorTracker,\n                            p = g.backgroundIsLight(),\n                            f = this._model.options.renderMinimap,\n                            m = this._model.options.charRenderer(),\n                            v = this._model.options.fontScale,\n                            _ = this._model.options.minimapCharWidth,\n                            b = (1 === f ? 2 : 3) * v,\n                            w = n > b ? Math.floor((n - b) / 2) : 0,\n                            y = h.a / 255,\n                            C = new It(Math.round((h.r - d.r) * y + d.r), Math.round((h.g - d.g) * y + d.g), Math.round((h.b - d.b) * y + d.b), 255);\n                        let x = 0;\n                        const S = [];\n                        for (let e = 0, s = i - t + 1; e < s; e++) a[e] && Zt._renderLine(o, C, h.a, p, f, _, g, u, m, x, w, c, l[e], v, n), S[e] = new jt(x), x += n;\n                        const k = -1 === s ? 0 : s,\n                            L = (-1 === r ? o.height : r) - k;\n                        return this._canvas.domNode.getContext(\"2d\").putImageData(o, 0, 0, 0, k, o.width, L), new Ut(e, o, S)\n                    }\n                    static _renderUntouchedLines(e, t, i, n, o) {\n                        const s = [];\n                        if (!o) {\n                            for (let e = 0, n = i - t + 1; e < n; e++) s[e] = !0;\n                            return [-1, -1, s]\n                        }\n                        const r = o._get(),\n                            a = r.imageData.data,\n                            l = r.rendLineNumberStart,\n                            c = r.lines,\n                            d = c.length,\n                            h = e.width,\n                            u = e.data,\n                            g = (i - t + 1) * n * h * 4;\n                        let p = -1,\n                            f = -1,\n                            m = -1,\n                            v = -1,\n                            _ = -1,\n                            b = -1,\n                            w = 0;\n                        for (let e = t; e <= i; e++) {\n                            const i = e - t,\n                                o = e - l,\n                                r = o >= 0 && o < d ? c[o].dy : -1;\n                            if (-1 === r) {\n                                s[i] = !0, w += n;\n                                continue\n                            }\n                            const y = r * h * 4,\n                                C = (r + n) * h * 4,\n                                x = w * h * 4,\n                                S = (w + n) * h * 4;\n                            v === y && b === x ? (v = C, b = S) : (-1 !== m && (u.set(a.subarray(m, v), _), -1 === p && 0 === m && m === _ && (p = v), -1 === f && v === g && m === _ && (f = m)), m = y, v = C, _ = x, b = S), s[i] = !1, w += n\n                        } - 1 !== m && (u.set(a.subarray(m, v), _), -1 === p && 0 === m && m === _ && (p = v), -1 === f && v === g && m === _ && (f = m));\n                        return [-1 === p ? -1 : p / (4 * h), -1 === f ? -1 : f / (4 * h), s]\n                    }\n                    static _renderLine(e, t, i, n, o, s, r, a, l, c, d, h, u, g, p) {\n                        const f = u.content,\n                            m = u.tokens,\n                            v = e.width - s,\n                            _ = 1 === p;\n                        let b = K.y0,\n                            w = 0,\n                            y = 0;\n                        for (let u = 0, p = m.getCount(); u < p; u++) {\n                            const p = m.getEndOffset(u),\n                                C = m.getForeground(u),\n                                x = r.getColor(C);\n                            for (; w < p; w++) {\n                                if (b > v) return;\n                                const r = f.charCodeAt(w);\n                                if (9 === r) {\n                                    const e = h - (w + y) % h;\n                                    y += e - 1, b += e * s\n                                } else if (32 === r) b += s;\n                                else {\n                                    const h = Te.K7(r) ? 2 : 1;\n                                    for (let u = 0; u < h; u++)\n                                        if (2 === o ? l.blockRenderChar(e, b, c + d, x, a, t, i, _) : l.renderChar(e, b, c + d, r, x, a, t, i, g, n, _), b += s, b > v) return\n                                }\n                            }\n                        }\n                    }\n                }\n                class Gt {\n                    constructor(e, t, i) {\n                        this._startLineNumber = e, this._endLineNumber = t, this._defaultValue = i, this._values = [];\n                        for (let e = 0, t = this._endLineNumber - this._startLineNumber + 1; e < t; e++) this._values[e] = i\n                    }\n                    has(e) {\n                        return this.get(e) !== this._defaultValue\n                    }\n                    set(e, t) {\n                        e < this._startLineNumber || e > this._endLineNumber || (this._values[e - this._startLineNumber] = t)\n                    }\n                    get(e) {\n                        return e < this._startLineNumber || e > this._endLineNumber ? this._defaultValue : this._values[e - this._startLineNumber]\n                    }\n                }(0, Pe.Ic)(((e, t) => {\n                    const i = e.getColor(gt.CA);\n                    i && t.addRule(`.monaco-editor .minimap-slider .minimap-slider-horizontal { background: ${i}; }`);\n                    const n = e.getColor(gt.Xy);\n                    n && t.addRule(`.monaco-editor .minimap-slider:hover .minimap-slider-horizontal { background: ${n}; }`);\n                    const o = e.getColor(gt.br);\n                    o && t.addRule(`.monaco-editor .minimap-slider.active .minimap-slider-horizontal { background: ${o}; }`);\n                    const s = e.getColor(gt._w);\n                    s && t.addRule(`.monaco-editor .minimap-shadow-visible { box-shadow: ${s} -6px 0 6px -6px inset; }`)\n                }));\n                i(73300);\n                class Yt extends A {\n                    constructor(e) {\n                        super(e);\n                        const t = this._context.configuration.options.get(129);\n                        this._widgets = {}, this._verticalScrollbarWidth = t.verticalScrollbarWidth, this._minimapWidth = t.minimap.minimapWidth, this._horizontalScrollbarHeight = t.horizontalScrollbarHeight, this._editorHeight = t.height, this._editorWidth = t.width, this._domNode = (0, _.X)(document.createElement(\"div\")), O.write(this._domNode, 4), this._domNode.setClassName(\"overlayWidgets\")\n                    }\n                    dispose() {\n                        super.dispose(), this._widgets = {}\n                    }\n                    getDomNode() {\n                        return this._domNode\n                    }\n                    onConfigurationChanged(e) {\n                        const t = this._context.configuration.options.get(129);\n                        return this._verticalScrollbarWidth = t.verticalScrollbarWidth, this._minimapWidth = t.minimap.minimapWidth, this._horizontalScrollbarHeight = t.horizontalScrollbarHeight, this._editorHeight = t.height, this._editorWidth = t.width, !0\n                    }\n                    addWidget(e) {\n                        const t = (0, _.X)(e.getDomNode());\n                        this._widgets[e.getId()] = {\n                            widget: e,\n                            preference: null,\n                            domNode: t\n                        }, t.setPosition(\"absolute\"), t.setAttribute(\"widgetId\", e.getId()), this._domNode.appendChild(t), this.setShouldRender()\n                    }\n                    setWidgetPosition(e, t) {\n                        const i = this._widgets[e.getId()];\n                        return i.preference !== t && (i.preference = t, this.setShouldRender(), !0)\n                    }\n                    removeWidget(e) {\n                        const t = e.getId();\n                        if (this._widgets.hasOwnProperty(t)) {\n                            const e = this._widgets[t].domNode.domNode;\n                            delete this._widgets[t], e.parentNode.removeChild(e), this.setShouldRender()\n                        }\n                    }\n                    _renderWidget(e) {\n                        const t = e.domNode;\n                        if (null !== e.preference)\n                            if (0 === e.preference) t.setTop(0), t.setRight(2 * this._verticalScrollbarWidth + this._minimapWidth);\n                            else if (1 === e.preference) {\n                            const e = t.domNode.clientHeight;\n                            t.setTop(this._editorHeight - e - 2 * this._horizontalScrollbarHeight), t.setRight(2 * this._verticalScrollbarWidth + this._minimapWidth)\n                        } else 2 === e.preference && (t.setTop(0), t.domNode.style.right = \"50%\");\n                        else t.unsetTop()\n                    }\n                    prepareRender(e) {}\n                    render(e) {\n                        this._domNode.setWidth(this._editorWidth);\n                        const t = Object.keys(this._widgets);\n                        for (let e = 0, i = t.length; e < i; e++) {\n                            const i = t[e];\n                            this._renderWidget(this._widgets[i])\n                        }\n                    }\n                }\n                var Qt = i(41264);\n                class Xt {\n                    constructor(e, t) {\n                        const i = e.options;\n                        this.lineHeight = i.get(58), this.pixelRatio = i.get(127), this.overviewRulerLanes = i.get(73), this.renderBorder = i.get(72);\n                        const n = t.getColor(Oe.zw);\n                        this.borderColor = n ? n.toString() : null, this.hideCursor = i.get(51);\n                        const o = t.getColor(Oe.n0);\n                        this.cursorColor = o ? o.transparent(.7).toString() : null, this.themeType = t.type;\n                        const s = i.get(64),\n                            r = s.enabled,\n                            a = s.side,\n                            l = r ? t.getColor(Oe.e_) || Et.RW.getDefaultBackground() : null;\n                        this.backgroundColor = null === l || \"left\" === a ? null : Qt.Il.Format.CSS.formatHex(l);\n                        const c = i.get(129).overviewRuler;\n                        this.top = c.top, this.right = c.right, this.domWidth = c.width, this.domHeight = c.height, 0 === this.overviewRulerLanes ? (this.canvasWidth = 0, this.canvasHeight = 0) : (this.canvasWidth = this.domWidth * this.pixelRatio | 0, this.canvasHeight = this.domHeight * this.pixelRatio | 0);\n                        const [d, h] = this._initLanes(1, this.canvasWidth, this.overviewRulerLanes);\n                        this.x = d, this.w = h\n                    }\n                    _initLanes(e, t, i) {\n                        const n = t - e;\n                        if (i >= 3) {\n                            const t = Math.floor(n / 3),\n                                i = Math.floor(n / 3),\n                                o = n - t - i,\n                                s = e + t;\n                            return [\n                                [0, e, s, e, e + t + o, e, s, e],\n                                [0, t, o, t + o, i, t + o + i, o + i, t + o + i]\n                            ]\n                        }\n                        if (2 === i) {\n                            const t = Math.floor(n / 2),\n                                i = n - t;\n                            return [\n                                [0, e, e, e, e + t, e, e, e],\n                                [0, t, t, t, i, t + i, t + i, t + i]\n                            ]\n                        }\n                        return [\n                            [0, e, e, e, e, e, e, e],\n                            [0, n, n, n, n, n, n, n]\n                        ]\n                    }\n                    equals(e) {\n                        return this.lineHeight === e.lineHeight && this.pixelRatio === e.pixelRatio && this.overviewRulerLanes === e.overviewRulerLanes && this.renderBorder === e.renderBorder && this.borderColor === e.borderColor && this.hideCursor === e.hideCursor && this.cursorColor === e.cursorColor && this.themeType === e.themeType && this.backgroundColor === e.backgroundColor && this.top === e.top && this.right === e.right && this.domWidth === e.domWidth && this.domHeight === e.domHeight && this.canvasWidth === e.canvasWidth && this.canvasHeight === e.canvasHeight\n                    }\n                }\n                class Jt extends A {\n                    constructor(e) {\n                        super(e), this._domNode = (0, _.X)(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 = Et.RW.onDidChange((e => {\n                            e.changedColorMap && this._updateSettings(!0)\n                        })), this._cursorPositions = []\n                    }\n                    dispose() {\n                        super.dispose(), this._tokensColorTrackerListener.dispose()\n                    }\n                    _updateSettings(e) {\n                        const t = new Xt(this._context.configuration, this._context.theme);\n                        return (!this._settings || !this._settings.equals(t)) && (this._settings = t, 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, e && this._render(), !0)\n                    }\n                    onConfigurationChanged(e) {\n                        return this._updateSettings(!1)\n                    }\n                    onCursorStateChanged(e) {\n                        this._cursorPositions = [];\n                        for (let t = 0, i = e.selections.length; t < i; t++) this._cursorPositions[t] = e.selections[t].getPosition();\n                        return this._cursorPositions.sort(se.L.compare), !0\n                    }\n                    onDecorationsChanged(e) {\n                        return !!e.affectsOverviewRuler\n                    }\n                    onFlushed(e) {\n                        return !0\n                    }\n                    onScrollChanged(e) {\n                        return e.scrollHeightChanged\n                    }\n                    onZonesChanged(e) {\n                        return !0\n                    }\n                    onThemeChanged(e) {\n                        return this._context.model.invalidateOverviewRulerColorCache(), this._updateSettings(!1)\n                    }\n                    getDomNode() {\n                        return this._domNode.domNode\n                    }\n                    prepareRender(e) {}\n                    render(e) {\n                        this._render()\n                    }\n                    _render() {\n                        if (0 === this._settings.overviewRulerLanes) return void this._domNode.setBackgroundColor(this._settings.backgroundColor ? this._settings.backgroundColor : \"\");\n                        const e = this._settings.canvasWidth,\n                            t = this._settings.canvasHeight,\n                            i = this._settings.lineHeight,\n                            n = this._context.viewLayout,\n                            o = t / this._context.viewLayout.getScrollHeight(),\n                            s = this._context.model.getAllOverviewRulerDecorations(this._context.theme),\n                            r = 6 * this._settings.pixelRatio | 0,\n                            a = r / 2 | 0,\n                            l = this._domNode.domNode.getContext(\"2d\");\n                        null === this._settings.backgroundColor ? l.clearRect(0, 0, e, t) : (l.fillStyle = this._settings.backgroundColor, l.fillRect(0, 0, e, t));\n                        const c = this._settings.x,\n                            d = this._settings.w;\n                        s.sort(Mt.SQ.cmp);\n                        for (const e of s) {\n                            const s = e.color,\n                                h = e.data;\n                            l.fillStyle = s;\n                            let u = 0,\n                                g = 0,\n                                p = 0;\n                            for (let e = 0, s = h.length / 3; e < s; e++) {\n                                const s = h[3 * e],\n                                    f = h[3 * e + 1],\n                                    m = h[3 * e + 2];\n                                let v = n.getVerticalOffsetForLineNumber(f) * o | 0,\n                                    _ = (n.getVerticalOffsetForLineNumber(m) + i) * o | 0;\n                                if (_ - v < r) {\n                                    let e = (v + _) / 2 | 0;\n                                    e < a ? e = a : e + a > t && (e = t - a), v = e - a, _ = e + a\n                                }\n                                v > p + 1 || s !== u ? (0 !== e && l.fillRect(c[u], g, d[u], p - g), u = s, g = v, p = _) : _ > p && (p = _)\n                            }\n                            l.fillRect(c[u], g, d[u], p - g)\n                        }\n                        if (!this._settings.hideCursor && this._settings.cursorColor) {\n                            const e = 2 * this._settings.pixelRatio | 0,\n                                i = e / 2 | 0,\n                                s = this._settings.x[7],\n                                r = this._settings.w[7];\n                            l.fillStyle = this._settings.cursorColor;\n                            let a = -100,\n                                c = -100;\n                            for (let d = 0, h = this._cursorPositions.length; d < h; d++) {\n                                const h = this._cursorPositions[d];\n                                let u = n.getVerticalOffsetForLineNumber(h.lineNumber) * o | 0;\n                                u < i ? u = i : u + i > t && (u = t - i);\n                                const g = u - i,\n                                    p = g + e;\n                                g > c + 1 ? (0 !== d && l.fillRect(s, a, r, c - a), a = g, c = p) : p > c && (c = p)\n                            }\n                            l.fillRect(s, a, r, c - a)\n                        }\n                        this._settings.renderBorder && this._settings.borderColor && this._settings.overviewRulerLanes > 0 && (l.beginPath(), l.lineWidth = 1, l.strokeStyle = this._settings.borderColor, l.moveTo(0, 0), l.lineTo(0, t), l.stroke(), l.moveTo(0, 0), l.lineTo(e, 0), l.stroke())\n                    }\n                }\n                var ei = i(92003);\n                class ti extends M {\n                    constructor(e, t) {\n                        super(), this._context = e;\n                        const i = this._context.configuration.options;\n                        this._domNode = (0, _.X)(document.createElement(\"canvas\")), this._domNode.setClassName(t), this._domNode.setPosition(\"absolute\"), this._domNode.setLayerHinting(!0), this._domNode.setContain(\"strict\"), this._zoneManager = new ei.Tj((e => this._context.viewLayout.getVerticalOffsetForLineNumber(e))), this._zoneManager.setDOMWidth(0), this._zoneManager.setDOMHeight(0), this._zoneManager.setOuterHeight(this._context.viewLayout.getScrollHeight()), this._zoneManager.setLineHeight(i.get(58)), this._zoneManager.setPixelRatio(i.get(127)), this._context.addEventHandler(this)\n                    }\n                    dispose() {\n                        this._context.removeEventHandler(this), super.dispose()\n                    }\n                    onConfigurationChanged(e) {\n                        const t = this._context.configuration.options;\n                        return e.hasChanged(58) && (this._zoneManager.setLineHeight(t.get(58)), this._render()), e.hasChanged(127) && (this._zoneManager.setPixelRatio(t.get(127)), 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\n                    }\n                    onFlushed(e) {\n                        return this._render(), !0\n                    }\n                    onScrollChanged(e) {\n                        return e.scrollHeightChanged && (this._zoneManager.setOuterHeight(e.scrollHeight), this._render()), !0\n                    }\n                    onZonesChanged(e) {\n                        return this._render(), !0\n                    }\n                    getDomNode() {\n                        return this._domNode.domNode\n                    }\n                    setLayout(e) {\n                        this._domNode.setTop(e.top), this._domNode.setRight(e.right);\n                        let t = !1;\n                        t = this._zoneManager.setDOMWidth(e.width) || t, t = this._zoneManager.setDOMHeight(e.height) || t, t && (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())\n                    }\n                    setZones(e) {\n                        this._zoneManager.setZones(e), this._render()\n                    }\n                    _render() {\n                        if (0 === this._zoneManager.getOuterHeight()) return !1;\n                        const e = this._zoneManager.getCanvasWidth(),\n                            t = this._zoneManager.getCanvasHeight(),\n                            i = this._zoneManager.resolveColorZones(),\n                            n = this._zoneManager.getId2Color(),\n                            o = this._domNode.domNode.getContext(\"2d\");\n                        return o.clearRect(0, 0, e, t), i.length > 0 && this._renderOneLane(o, i, n, e), !0\n                    }\n                    _renderOneLane(e, t, i, n) {\n                        let o = 0,\n                            s = 0,\n                            r = 0;\n                        for (const a of t) {\n                            const t = a.colorId,\n                                l = a.from,\n                                c = a.to;\n                            t !== o ? (e.fillRect(0, s, n, r - s), o = t, e.fillStyle = i[o], s = l, r = c) : r >= l ? r = Math.max(r, c) : (e.fillRect(0, s, n, r - s), s = l, r = c)\n                        }\n                        e.fillRect(0, s, n, r - s)\n                    }\n                }\n                i(63330);\n                class ii extends A {\n                    constructor(e) {\n                        super(e), this.domNode = (0, _.X)(document.createElement(\"div\")), this.domNode.setAttribute(\"role\", \"presentation\"), this.domNode.setAttribute(\"aria-hidden\", \"true\"), this.domNode.setClassName(\"view-rulers\"), this._renderedRulers = [];\n                        const t = this._context.configuration.options;\n                        this._rulers = t.get(90), this._typicalHalfwidthCharacterWidth = t.get(43).typicalHalfwidthCharacterWidth\n                    }\n                    dispose() {\n                        super.dispose()\n                    }\n                    onConfigurationChanged(e) {\n                        const t = this._context.configuration.options;\n                        return this._rulers = t.get(90), this._typicalHalfwidthCharacterWidth = t.get(43).typicalHalfwidthCharacterWidth, !0\n                    }\n                    onScrollChanged(e) {\n                        return e.scrollHeightChanged\n                    }\n                    prepareRender(e) {}\n                    _ensureRulersCount() {\n                        const e = this._renderedRulers.length,\n                            t = this._rulers.length;\n                        if (e === t) return;\n                        if (e < t) {\n                            const {\n                                tabSize: i\n                            } = this._context.model.getTextModelOptions(), n = i;\n                            let o = t - e;\n                            for (; o > 0;) {\n                                const e = (0, _.X)(document.createElement(\"div\"));\n                                e.setClassName(\"view-ruler\"), e.setWidth(n), this.domNode.appendChild(e), this._renderedRulers.push(e), o--\n                            }\n                            return\n                        }\n                        let i = e - t;\n                        for (; i > 0;) {\n                            const e = this._renderedRulers.pop();\n                            this.domNode.removeChild(e), i--\n                        }\n                    }\n                    render(e) {\n                        this._ensureRulersCount();\n                        for (let t = 0, i = this._rulers.length; t < i; t++) {\n                            const i = this._renderedRulers[t],\n                                n = this._rulers[t];\n                            i.setBoxShadow(n.color ? `1px 0 0 0 ${n.color} inset` : \"\"), i.setHeight(Math.min(e.scrollHeight, 1e6)), i.setLeft(n.column * this._typicalHalfwidthCharacterWidth)\n                        }\n                    }\n                }(0, Pe.Ic)(((e, t) => {\n                    const i = e.getColor(Oe.zk);\n                    i && t.addRule(`.monaco-editor .view-ruler { box-shadow: 1px 0 0 0 ${i} inset; }`)\n                }));\n                i(68182);\n                class ni extends A {\n                    constructor(e) {\n                        super(e), this._scrollTop = 0, this._width = 0, this._updateWidth(), this._shouldShow = !1;\n                        const t = this._context.configuration.options.get(91);\n                        this._useShadows = t.useShadows, this._domNode = (0, _.X)(document.createElement(\"div\")), this._domNode.setAttribute(\"role\", \"presentation\"), this._domNode.setAttribute(\"aria-hidden\", \"true\")\n                    }\n                    dispose() {\n                        super.dispose()\n                    }\n                    _updateShouldShow() {\n                        const e = this._useShadows && this._scrollTop > 0;\n                        return this._shouldShow !== e && (this._shouldShow = e, !0)\n                    }\n                    getDomNode() {\n                        return this._domNode\n                    }\n                    _updateWidth() {\n                        const e = this._context.configuration.options.get(129);\n                        0 === e.minimap.renderMinimap || e.minimap.minimapWidth > 0 && 0 === e.minimap.minimapLeft ? this._width = e.width : this._width = e.width - e.minimap.minimapWidth - e.verticalScrollbarWidth\n                    }\n                    onConfigurationChanged(e) {\n                        const t = this._context.configuration.options.get(91);\n                        return this._useShadows = t.useShadows, this._updateWidth(), this._updateShouldShow(), !0\n                    }\n                    onScrollChanged(e) {\n                        return this._scrollTop = e.scrollTop, this._updateShouldShow()\n                    }\n                    prepareRender(e) {}\n                    render(e) {\n                        this._domNode.setWidth(this._width), this._domNode.setClassName(this._shouldShow ? \"scroll-decoration\" : \"\")\n                    }\n                }(0, Pe.Ic)(((e, t) => {\n                    const i = e.getColor(gt._w);\n                    i && t.addRule(`.monaco-editor .scroll-decoration { box-shadow: ${i} 0 6px 6px -6px inset; }`)\n                }));\n                i(83254);\n                class oi {\n                    constructor(e) {\n                        this.left = e.left, this.width = e.width, this.startStyle = null, this.endStyle = null\n                    }\n                }\n                class si {\n                    constructor(e, t) {\n                        this.lineNumber = e, this.ranges = t\n                    }\n                }\n\n                function ri(e) {\n                    return new oi(e)\n                }\n\n                function ai(e) {\n                    return new si(e.lineNumber, e.ranges.map(ri))\n                }\n                class li extends Ae {\n                    constructor(e) {\n                        super(), this._previousFrameVisibleRangesWithStyle = [], this._context = e;\n                        const t = this._context.configuration.options;\n                        this._lineHeight = t.get(58), this._roundedSelection = t.get(89), this._typicalHalfwidthCharacterWidth = t.get(43).typicalHalfwidthCharacterWidth, this._selections = [], this._renderResult = null, this._context.addEventHandler(this)\n                    }\n                    dispose() {\n                        this._context.removeEventHandler(this), this._renderResult = null, super.dispose()\n                    }\n                    onConfigurationChanged(e) {\n                        const t = this._context.configuration.options;\n                        return this._lineHeight = t.get(58), this._roundedSelection = t.get(89), this._typicalHalfwidthCharacterWidth = t.get(43).typicalHalfwidthCharacterWidth, !0\n                    }\n                    onCursorStateChanged(e) {\n                        return this._selections = e.selections.slice(0), !0\n                    }\n                    onDecorationsChanged(e) {\n                        return !0\n                    }\n                    onFlushed(e) {\n                        return !0\n                    }\n                    onLinesChanged(e) {\n                        return !0\n                    }\n                    onLinesDeleted(e) {\n                        return !0\n                    }\n                    onLinesInserted(e) {\n                        return !0\n                    }\n                    onScrollChanged(e) {\n                        return e.scrollTopChanged\n                    }\n                    onZonesChanged(e) {\n                        return !0\n                    }\n                    _visibleRangesHaveGaps(e) {\n                        for (let t = 0, i = e.length; t < i; t++) {\n                            if (e[t].ranges.length > 1) return !0\n                        }\n                        return !1\n                    }\n                    _enrichVisibleRangesWithStyle(e, t, i) {\n                        const n = this._typicalHalfwidthCharacterWidth / 4;\n                        let o = null,\n                            s = null;\n                        if (i && i.length > 0 && t.length > 0) {\n                            const n = t[0].lineNumber;\n                            if (n === e.startLineNumber)\n                                for (let e = 0; !o && e < i.length; e++) i[e].lineNumber === n && (o = i[e].ranges[0]);\n                            const r = t[t.length - 1].lineNumber;\n                            if (r === e.endLineNumber)\n                                for (let e = i.length - 1; !s && e >= 0; e--) i[e].lineNumber === r && (s = i[e].ranges[0]);\n                            o && !o.startStyle && (o = null), s && !s.startStyle && (s = null)\n                        }\n                        for (let e = 0, i = t.length; e < i; e++) {\n                            const r = t[e].ranges[0],\n                                a = r.left,\n                                l = r.left + r.width,\n                                c = {\n                                    top: 0,\n                                    bottom: 0\n                                },\n                                d = {\n                                    top: 0,\n                                    bottom: 0\n                                };\n                            if (e > 0) {\n                                const i = t[e - 1].ranges[0].left,\n                                    o = t[e - 1].ranges[0].left + t[e - 1].ranges[0].width;\n                                ci(a - i) < n ? c.top = 2 : a > i && (c.top = 1), ci(l - o) < n ? d.top = 2 : i < l && l < o && (d.top = 1)\n                            } else o && (c.top = o.startStyle.top, d.top = o.endStyle.top);\n                            if (e + 1 < i) {\n                                const i = t[e + 1].ranges[0].left,\n                                    o = t[e + 1].ranges[0].left + t[e + 1].ranges[0].width;\n                                ci(a - i) < n ? c.bottom = 2 : i < a && a < o && (c.bottom = 1), ci(l - o) < n ? d.bottom = 2 : l < o && (d.bottom = 1)\n                            } else s && (c.bottom = s.startStyle.bottom, d.bottom = s.endStyle.bottom);\n                            r.startStyle = c, r.endStyle = d\n                        }\n                    }\n                    _getVisibleRangesWithStyle(e, t, i) {\n                        const n = (t.linesVisibleRangesForRange(e, !0) || []).map(ai);\n                        return !this._visibleRangesHaveGaps(n) && this._roundedSelection && this._enrichVisibleRangesWithStyle(t.visibleRange, n, i), n\n                    }\n                    _createSelectionPiece(e, t, i, n, o) {\n                        return '<div class=\"cslr ' + i + '\" style=\"top:' + e.toString() + \"px;left:\" + n.toString() + \"px;width:\" + o.toString() + \"px;height:\" + t + 'px;\"></div>'\n                    }\n                    _actualRenderOneSelection(e, t, i, n) {\n                        if (0 === n.length) return;\n                        const o = !!n[0].ranges[0].startStyle,\n                            s = this._lineHeight.toString(),\n                            r = (this._lineHeight - 1).toString(),\n                            a = n[0].lineNumber,\n                            l = n[n.length - 1].lineNumber;\n                        for (let c = 0, d = n.length; c < d; c++) {\n                            const d = n[c],\n                                h = d.lineNumber,\n                                u = h - t,\n                                g = i && (h === l || h === a) ? r : s,\n                                p = i && h === a ? 1 : 0;\n                            let f = \"\",\n                                m = \"\";\n                            for (let e = 0, t = d.ranges.length; e < t; e++) {\n                                const t = d.ranges[e];\n                                if (o) {\n                                    const e = t.startStyle,\n                                        i = t.endStyle;\n                                    if (1 === e.top || 1 === e.bottom) {\n                                        f += this._createSelectionPiece(p, g, li.SELECTION_CLASS_NAME, t.left - li.ROUNDED_PIECE_WIDTH, li.ROUNDED_PIECE_WIDTH);\n                                        let i = li.EDITOR_BACKGROUND_CLASS_NAME;\n                                        1 === e.top && (i += \" \" + li.SELECTION_TOP_RIGHT), 1 === e.bottom && (i += \" \" + li.SELECTION_BOTTOM_RIGHT), f += this._createSelectionPiece(p, g, i, t.left - li.ROUNDED_PIECE_WIDTH, li.ROUNDED_PIECE_WIDTH)\n                                    }\n                                    if (1 === i.top || 1 === i.bottom) {\n                                        f += this._createSelectionPiece(p, g, li.SELECTION_CLASS_NAME, t.left + t.width, li.ROUNDED_PIECE_WIDTH);\n                                        let e = li.EDITOR_BACKGROUND_CLASS_NAME;\n                                        1 === i.top && (e += \" \" + li.SELECTION_TOP_LEFT), 1 === i.bottom && (e += \" \" + li.SELECTION_BOTTOM_LEFT), f += this._createSelectionPiece(p, g, e, t.left + t.width, li.ROUNDED_PIECE_WIDTH)\n                                    }\n                                }\n                                let i = li.SELECTION_CLASS_NAME;\n                                if (o) {\n                                    const e = t.startStyle,\n                                        n = t.endStyle;\n                                    0 === e.top && (i += \" \" + li.SELECTION_TOP_LEFT), 0 === e.bottom && (i += \" \" + li.SELECTION_BOTTOM_LEFT), 0 === n.top && (i += \" \" + li.SELECTION_TOP_RIGHT), 0 === n.bottom && (i += \" \" + li.SELECTION_BOTTOM_RIGHT)\n                                }\n                                m += this._createSelectionPiece(p, g, i, t.left, t.width)\n                            }\n                            e[u][0] += f, e[u][1] += m\n                        }\n                    }\n                    prepareRender(e) {\n                        const t = [],\n                            i = e.visibleRange.startLineNumber,\n                            n = e.visibleRange.endLineNumber;\n                        for (let e = i; e <= n; e++) {\n                            t[e - i] = [\"\", \"\"]\n                        }\n                        const o = [];\n                        for (let n = 0, s = this._selections.length; n < s; n++) {\n                            const s = this._selections[n];\n                            if (s.isEmpty()) {\n                                o[n] = null;\n                                continue\n                            }\n                            const r = this._getVisibleRangesWithStyle(s, e, this._previousFrameVisibleRangesWithStyle[n]);\n                            o[n] = r, this._actualRenderOneSelection(t, i, this._selections.length > 1, r)\n                        }\n                        this._previousFrameVisibleRangesWithStyle = o, this._renderResult = t.map((([e, t]) => e + t))\n                    }\n                    render(e, t) {\n                        if (!this._renderResult) return \"\";\n                        const i = t - e;\n                        return i < 0 || i >= this._renderResult.length ? \"\" : this._renderResult[i]\n                    }\n                }\n\n                function ci(e) {\n                    return e < 0 ? -e : e\n                }\n                li.SELECTION_CLASS_NAME = \"selected-text\", li.SELECTION_TOP_LEFT = \"top-left-radius\", li.SELECTION_BOTTOM_LEFT = \"bottom-left-radius\", li.SELECTION_TOP_RIGHT = \"top-right-radius\", li.SELECTION_BOTTOM_RIGHT = \"bottom-right-radius\", li.EDITOR_BACKGROUND_CLASS_NAME = \"monaco-editor-background\", li.ROUNDED_PIECE_WIDTH = 10, (0, Pe.Ic)(((e, t) => {\n                    const i = e.getColor(gt.hE);\n                    i && t.addRule(`.monaco-editor .focused .selected-text { background-color: ${i}; }`);\n                    const n = e.getColor(gt.ES);\n                    n && t.addRule(`.monaco-editor .selected-text { background-color: ${n}; }`);\n                    const o = e.getColor(gt.yb);\n                    o && !o.isTransparent() && t.addRule(`.monaco-editor .view-line span.inline-selected-text { color: ${o}; }`)\n                }));\n                i(17441);\n                class di {\n                    constructor(e, t, i, n, o, s) {\n                        this.top = e, this.left = t, this.width = i, this.height = n, this.textContent = o, this.textContentClassName = s\n                    }\n                }\n                class hi {\n                    constructor(e) {\n                        this._context = e;\n                        const t = this._context.configuration.options,\n                            i = t.get(43);\n                        this._cursorStyle = t.get(24), this._lineHeight = t.get(58), this._typicalHalfwidthCharacterWidth = i.typicalHalfwidthCharacterWidth, this._lineCursorWidth = Math.min(t.get(27), this._typicalHalfwidthCharacterWidth), this._isVisible = !0, this._domNode = (0, _.X)(document.createElement(\"div\")), this._domNode.setClassName(`cursor ${Ve.S}`), this._domNode.setHeight(this._lineHeight), this._domNode.setTop(0), this._domNode.setLeft(0), p.V.applyFontInfo(this._domNode, i), this._domNode.setDisplay(\"none\"), this._position = new se.L(1, 1), this._lastRenderedContent = \"\", this._renderData = null\n                    }\n                    getDomNode() {\n                        return this._domNode\n                    }\n                    getPosition() {\n                        return this._position\n                    }\n                    show() {\n                        this._isVisible || (this._domNode.setVisibility(\"inherit\"), this._isVisible = !0)\n                    }\n                    hide() {\n                        this._isVisible && (this._domNode.setVisibility(\"hidden\"), this._isVisible = !1)\n                    }\n                    onConfigurationChanged(e) {\n                        const t = this._context.configuration.options,\n                            i = t.get(43);\n                        return this._cursorStyle = t.get(24), this._lineHeight = t.get(58), this._typicalHalfwidthCharacterWidth = i.typicalHalfwidthCharacterWidth, this._lineCursorWidth = Math.min(t.get(27), this._typicalHalfwidthCharacterWidth), p.V.applyFontInfo(this._domNode, i), !0\n                    }\n                    onCursorPositionChanged(e) {\n                        return this._position = e, !0\n                    }\n                    _prepareRender(e) {\n                        let t = \"\";\n                        if (this._cursorStyle === K.d2.Line || this._cursorStyle === K.d2.LineThin) {\n                            const i = e.visibleRangeForPosition(this._position);\n                            if (!i || i.outsideRenderedLine) return null;\n                            let n;\n                            if (this._cursorStyle === K.d2.Line) {\n                                if (n = c.Uh(this._lineCursorWidth > 0 ? this._lineCursorWidth : 2), n > 2) {\n                                    const e = this._context.model.getLineContent(this._position.lineNumber),\n                                        i = Te.vH(e, this._position.column - 1);\n                                    t = e.substr(this._position.column - 1, i)\n                                }\n                            } else n = c.Uh(1);\n                            let o = i.left;\n                            n >= 2 && o >= 1 && (o -= 1);\n                            const s = e.getVerticalOffsetForLineNumber(this._position.lineNumber) - e.bigNumbersDelta;\n                            return new di(s, o, n, this._lineHeight, t, \"\")\n                        }\n                        const i = this._context.model.getLineContent(this._position.lineNumber),\n                            n = Te.vH(i, this._position.column - 1),\n                            o = e.linesVisibleRangesForRange(new re.e(this._position.lineNumber, this._position.column, this._position.lineNumber, this._position.column + n), !1);\n                        if (!o || 0 === o.length) return null;\n                        const s = o[0];\n                        if (s.outsideRenderedLine || 0 === s.ranges.length) return null;\n                        const r = s.ranges[0],\n                            a = r.width < 1 ? this._typicalHalfwidthCharacterWidth : r.width;\n                        let l = \"\";\n                        if (this._cursorStyle === K.d2.Block) {\n                            const e = this._context.model.getViewLineData(this._position.lineNumber);\n                            t = i.substr(this._position.column - 1, n);\n                            const o = e.tokens.findTokenIndexAtOffset(this._position.column - 1);\n                            l = e.tokens.getClassName(o)\n                        }\n                        let d = e.getVerticalOffsetForLineNumber(this._position.lineNumber) - e.bigNumbersDelta,\n                            h = this._lineHeight;\n                        return this._cursorStyle !== K.d2.Underline && this._cursorStyle !== K.d2.UnderlineThin || (d += this._lineHeight - 2, h = 2), new di(d, r.left, a, h, t, l)\n                    }\n                    prepareRender(e) {\n                        this._renderData = this._prepareRender(e)\n                    }\n                    render(e) {\n                        return this._renderData ? (this._lastRenderedContent !== this._renderData.textContent && (this._lastRenderedContent = this._renderData.textContent, this._domNode.domNode.textContent = this._lastRenderedContent), this._domNode.setClassName(`cursor ${Ve.S} ${this._renderData.textContentClassName}`), this._domNode.setDisplay(\"block\"), this._domNode.setTop(this._renderData.top), this._domNode.setLeft(this._renderData.left), this._domNode.setWidth(this._renderData.width), this._domNode.setLineHeight(this._renderData.height), this._domNode.setHeight(this._renderData.height), {\n                            domNode: this._domNode.domNode,\n                            position: this._position,\n                            contentLeft: this._renderData.left,\n                            height: this._renderData.height,\n                            width: 2\n                        }) : (this._domNode.setDisplay(\"none\"), null)\n                    }\n                }\n                class ui extends A {\n                    constructor(e) {\n                        super(e);\n                        const t = this._context.configuration.options;\n                        this._readOnly = t.get(80), this._cursorBlinking = t.get(22), this._cursorStyle = t.get(24), this._cursorSmoothCaretAnimation = t.get(23), this._selectionIsEmpty = !0, this._isComposingInput = !1, this._isVisible = !1, this._primaryCursor = new hi(this._context), this._secondaryCursors = [], this._renderData = [], this._domNode = (0, _.X)(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 C._F, this._cursorFlatBlinkInterval = new C.zh, this._blinkingEnabled = !1, this._editorHasFocus = !1, this._updateBlinking()\n                    }\n                    dispose() {\n                        super.dispose(), this._startCursorBlinkAnimation.dispose(), this._cursorFlatBlinkInterval.dispose()\n                    }\n                    getDomNode() {\n                        return this._domNode\n                    }\n                    onCompositionStart(e) {\n                        return this._isComposingInput = !0, this._updateBlinking(), !0\n                    }\n                    onCompositionEnd(e) {\n                        return this._isComposingInput = !1, this._updateBlinking(), !0\n                    }\n                    onConfigurationChanged(e) {\n                        const t = this._context.configuration.options;\n                        this._readOnly = t.get(80), this._cursorBlinking = t.get(22), this._cursorStyle = t.get(24), this._cursorSmoothCaretAnimation = t.get(23), this._updateBlinking(), this._updateDomClassName(), this._primaryCursor.onConfigurationChanged(e);\n                        for (let t = 0, i = this._secondaryCursors.length; t < i; t++) this._secondaryCursors[t].onConfigurationChanged(e);\n                        return !0\n                    }\n                    _onCursorPositionChanged(e, t) {\n                        if (this._primaryCursor.onCursorPositionChanged(e), this._updateBlinking(), this._secondaryCursors.length < t.length) {\n                            const e = t.length - this._secondaryCursors.length;\n                            for (let t = 0; t < e; t++) {\n                                const e = new hi(this._context);\n                                this._domNode.domNode.insertBefore(e.getDomNode().domNode, this._primaryCursor.getDomNode().domNode.nextSibling), this._secondaryCursors.push(e)\n                            }\n                        } else if (this._secondaryCursors.length > t.length) {\n                            const e = this._secondaryCursors.length - t.length;\n                            for (let t = 0; t < e; t++) this._domNode.removeChild(this._secondaryCursors[0].getDomNode()), this._secondaryCursors.splice(0, 1)\n                        }\n                        for (let e = 0; e < t.length; e++) this._secondaryCursors[e].onCursorPositionChanged(t[e])\n                    }\n                    onCursorStateChanged(e) {\n                        const t = [];\n                        for (let i = 0, n = e.selections.length; i < n; i++) t[i] = e.selections[i].getPosition();\n                        this._onCursorPositionChanged(t[0], t.slice(1));\n                        const i = e.selections[0].isEmpty();\n                        return this._selectionIsEmpty !== i && (this._selectionIsEmpty = i, this._updateDomClassName()), !0\n                    }\n                    onDecorationsChanged(e) {\n                        return !0\n                    }\n                    onFlushed(e) {\n                        return !0\n                    }\n                    onFocusChanged(e) {\n                        return this._editorHasFocus = e.isFocused, this._updateBlinking(), !1\n                    }\n                    onLinesChanged(e) {\n                        return !0\n                    }\n                    onLinesDeleted(e) {\n                        return !0\n                    }\n                    onLinesInserted(e) {\n                        return !0\n                    }\n                    onScrollChanged(e) {\n                        return !0\n                    }\n                    onTokensChanged(e) {\n                        const t = t => {\n                            for (let i = 0, n = e.ranges.length; i < n; i++)\n                                if (e.ranges[i].fromLineNumber <= t.lineNumber && t.lineNumber <= e.ranges[i].toLineNumber) return !0;\n                            return !1\n                        };\n                        if (t(this._primaryCursor.getPosition())) return !0;\n                        for (const e of this._secondaryCursors)\n                            if (t(e.getPosition())) return !0;\n                        return !1\n                    }\n                    onZonesChanged(e) {\n                        return !0\n                    }\n                    _getCursorBlinking() {\n                        return this._isComposingInput ? 0 : this._editorHasFocus ? this._readOnly ? 5 : this._cursorBlinking : 0\n                    }\n                    _updateBlinking() {\n                        this._startCursorBlinkAnimation.cancel(), this._cursorFlatBlinkInterval.cancel();\n                        const e = this._getCursorBlinking(),\n                            t = 0 === e,\n                            i = 5 === e;\n                        t ? this._hide() : this._show(), this._blinkingEnabled = !1, this._updateDomClassName(), t || i || (1 === e ? this._cursorFlatBlinkInterval.cancelAndSet((() => {\n                            this._isVisible ? this._hide() : this._show()\n                        }), ui.BLINK_INTERVAL) : this._startCursorBlinkAnimation.setIfNotSet((() => {\n                            this._blinkingEnabled = !0, this._updateDomClassName()\n                        }), ui.BLINK_INTERVAL))\n                    }\n                    _updateDomClassName() {\n                        this._domNode.setClassName(this._getClassName())\n                    }\n                    _getClassName() {\n                        let e = \"cursors-layer\";\n                        switch (this._selectionIsEmpty || (e += \" has-selection\"), this._cursorStyle) {\n                            case K.d2.Line:\n                                e += \" cursor-line-style\";\n                                break;\n                            case K.d2.Block:\n                                e += \" cursor-block-style\";\n                                break;\n                            case K.d2.Underline:\n                                e += \" cursor-underline-style\";\n                                break;\n                            case K.d2.LineThin:\n                                e += \" cursor-line-thin-style\";\n                                break;\n                            case K.d2.BlockOutline:\n                                e += \" cursor-block-outline-style\";\n                                break;\n                            case K.d2.UnderlineThin:\n                                e += \" cursor-underline-thin-style\";\n                                break;\n                            default:\n                                e += \" cursor-line-style\"\n                        }\n                        if (this._blinkingEnabled) switch (this._getCursorBlinking()) {\n                            case 1:\n                                e += \" cursor-blink\";\n                                break;\n                            case 2:\n                                e += \" cursor-smooth\";\n                                break;\n                            case 3:\n                                e += \" cursor-phase\";\n                                break;\n                            case 4:\n                                e += \" cursor-expand\";\n                                break;\n                            default:\n                                e += \" cursor-solid\"\n                        } else e += \" cursor-solid\";\n                        return this._cursorSmoothCaretAnimation && (e += \" cursor-smooth-caret-animation\"), e\n                    }\n                    _show() {\n                        this._primaryCursor.show();\n                        for (let e = 0, t = this._secondaryCursors.length; e < t; e++) this._secondaryCursors[e].show();\n                        this._isVisible = !0\n                    }\n                    _hide() {\n                        this._primaryCursor.hide();\n                        for (let e = 0, t = this._secondaryCursors.length; e < t; e++) this._secondaryCursors[e].hide();\n                        this._isVisible = !1\n                    }\n                    prepareRender(e) {\n                        this._primaryCursor.prepareRender(e);\n                        for (let t = 0, i = this._secondaryCursors.length; t < i; t++) this._secondaryCursors[t].prepareRender(e)\n                    }\n                    render(e) {\n                        let t = [],\n                            i = 0;\n                        const n = this._primaryCursor.render(e);\n                        n && (t[i++] = n);\n                        for (let n = 0, o = this._secondaryCursors.length; n < o; n++) {\n                            const o = this._secondaryCursors[n].render(e);\n                            o && (t[i++] = o)\n                        }\n                        this._renderData = t\n                    }\n                    getLastRenderData() {\n                        return this._renderData\n                    }\n                }\n                ui.BLINK_INTERVAL = 500, (0, Pe.Ic)(((e, t) => {\n                    const i = e.getColor(Oe.n0);\n                    if (i) {\n                        let n = e.getColor(Oe.fY);\n                        n || (n = i.opposite()), t.addRule(`.monaco-editor .cursors-layer .cursor { background-color: ${i}; border-color: ${i}; color: ${n}; }`), \"hc\" === e.type && t.addRule(`.monaco-editor .cursors-layer.has-selection .cursor { border-left: 1px solid ${n}; border-right: 1px solid ${n}; }`)\n                    }\n                }));\n                const gi = () => {\n                    throw new Error(\"Invalid change accessor\")\n                };\n                class pi extends A {\n                    constructor(e) {\n                        super(e);\n                        const t = this._context.configuration.options,\n                            i = t.get(129);\n                        this._lineHeight = t.get(58), this._contentWidth = i.contentWidth, this._contentLeft = i.contentLeft, this.domNode = (0, _.X)(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, _.X)(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 = {}\n                    }\n                    dispose() {\n                        super.dispose(), this._zones = {}\n                    }\n                    _recomputeWhitespacesProps() {\n                        const e = this._context.viewLayout.getWhitespaces(),\n                            t = new Map;\n                        for (const i of e) t.set(i.id, i);\n                        let i = !1;\n                        return this._context.model.changeWhitespace((e => {\n                            const n = Object.keys(this._zones);\n                            for (let o = 0, s = n.length; o < s; o++) {\n                                const s = n[o],\n                                    r = this._zones[s],\n                                    a = this._computeWhitespaceProps(r.delegate);\n                                r.isInHiddenArea = a.isInHiddenArea;\n                                const l = t.get(s);\n                                !l || l.afterLineNumber === a.afterViewLineNumber && l.height === a.heightInPx || (e.changeOneWhitespace(s, a.afterViewLineNumber, a.heightInPx), this._safeCallOnComputedHeight(r.delegate, a.heightInPx), i = !0)\n                            }\n                        })), i\n                    }\n                    onConfigurationChanged(e) {\n                        const t = this._context.configuration.options,\n                            i = t.get(129);\n                        return this._lineHeight = t.get(58), this._contentWidth = i.contentWidth, this._contentLeft = i.contentLeft, e.hasChanged(58) && this._recomputeWhitespacesProps(), !0\n                    }\n                    onLineMappingChanged(e) {\n                        return this._recomputeWhitespacesProps()\n                    }\n                    onLinesDeleted(e) {\n                        return !0\n                    }\n                    onScrollChanged(e) {\n                        return e.scrollTopChanged || e.scrollWidthChanged\n                    }\n                    onZonesChanged(e) {\n                        return !0\n                    }\n                    onLinesInserted(e) {\n                        return !0\n                    }\n                    _getZoneOrdinal(e) {\n                        return void 0 !== e.afterColumn ? e.afterColumn : 1e4\n                    }\n                    _computeWhitespaceProps(e) {\n                        if (0 === e.afterLineNumber) return {\n                            isInHiddenArea: !1,\n                            afterViewLineNumber: 0,\n                            heightInPx: this._heightInPixels(e),\n                            minWidthInPx: this._minWidthInPixels(e)\n                        };\n                        let t, i;\n                        if (void 0 !== e.afterColumn) t = this._context.model.validateModelPosition({\n                            lineNumber: e.afterLineNumber,\n                            column: e.afterColumn\n                        });\n                        else {\n                            const i = this._context.model.validateModelPosition({\n                                lineNumber: e.afterLineNumber,\n                                column: 1\n                            }).lineNumber;\n                            t = new se.L(i, this._context.model.getModelLineMaxColumn(i))\n                        }\n                        i = t.column === this._context.model.getModelLineMaxColumn(t.lineNumber) ? this._context.model.validateModelPosition({\n                            lineNumber: t.lineNumber + 1,\n                            column: 1\n                        }) : this._context.model.validateModelPosition({\n                            lineNumber: t.lineNumber,\n                            column: t.column + 1\n                        });\n                        const n = this._context.model.coordinatesConverter.convertModelPositionToViewPosition(t),\n                            o = this._context.model.coordinatesConverter.modelPositionIsVisible(i);\n                        return {\n                            isInHiddenArea: !o,\n                            afterViewLineNumber: n.lineNumber,\n                            heightInPx: o ? this._heightInPixels(e) : 0,\n                            minWidthInPx: this._minWidthInPixels(e)\n                        }\n                    }\n                    changeViewZones(e) {\n                        let t = !1;\n                        return this._context.model.changeWhitespace((i => {\n                            const n = {\n                                addZone: e => (t = !0, this._addZone(i, e)),\n                                removeZone: e => {\n                                    e && (t = this._removeZone(i, e) || t)\n                                },\n                                layoutZone: e => {\n                                    e && (t = this._layoutZone(i, e) || t)\n                                }\n                            };\n                            ! function(e, t) {\n                                try {\n                                    return e(t)\n                                } catch (e) {\n                                    (0, d.dL)(e)\n                                }\n                            }(e, n), n.addZone = gi, n.removeZone = gi, n.layoutZone = gi\n                        })), t\n                    }\n                    _addZone(e, t) {\n                        const i = this._computeWhitespaceProps(t),\n                            n = {\n                                whitespaceId: e.insertWhitespace(i.afterViewLineNumber, this._getZoneOrdinal(t), i.heightInPx, i.minWidthInPx),\n                                delegate: t,\n                                isInHiddenArea: i.isInHiddenArea,\n                                isVisible: !1,\n                                domNode: (0, _.X)(t.domNode),\n                                marginDomNode: t.marginDomNode ? (0, _.X)(t.marginDomNode) : null\n                            };\n                        return this._safeCallOnComputedHeight(n.delegate, i.heightInPx), n.domNode.setPosition(\"absolute\"), n.domNode.domNode.style.width = \"100%\", n.domNode.setDisplay(\"none\"), n.domNode.setAttribute(\"monaco-view-zone\", n.whitespaceId), this.domNode.appendChild(n.domNode), n.marginDomNode && (n.marginDomNode.setPosition(\"absolute\"), n.marginDomNode.domNode.style.width = \"100%\", n.marginDomNode.setDisplay(\"none\"), n.marginDomNode.setAttribute(\"monaco-view-zone\", n.whitespaceId), this.marginDomNode.appendChild(n.marginDomNode)), this._zones[n.whitespaceId] = n, this.setShouldRender(), n.whitespaceId\n                    }\n                    _removeZone(e, t) {\n                        if (this._zones.hasOwnProperty(t)) {\n                            const i = this._zones[t];\n                            return delete this._zones[t], e.removeWhitespace(i.whitespaceId), i.domNode.removeAttribute(\"monaco-visible-view-zone\"), i.domNode.removeAttribute(\"monaco-view-zone\"), i.domNode.domNode.parentNode.removeChild(i.domNode.domNode), i.marginDomNode && (i.marginDomNode.removeAttribute(\"monaco-visible-view-zone\"), i.marginDomNode.removeAttribute(\"monaco-view-zone\"), i.marginDomNode.domNode.parentNode.removeChild(i.marginDomNode.domNode)), this.setShouldRender(), !0\n                        }\n                        return !1\n                    }\n                    _layoutZone(e, t) {\n                        if (this._zones.hasOwnProperty(t)) {\n                            const i = this._zones[t],\n                                n = this._computeWhitespaceProps(i.delegate);\n                            return i.isInHiddenArea = n.isInHiddenArea, e.changeOneWhitespace(i.whitespaceId, n.afterViewLineNumber, n.heightInPx), this._safeCallOnComputedHeight(i.delegate, n.heightInPx), this.setShouldRender(), !0\n                        }\n                        return !1\n                    }\n                    shouldSuppressMouseDownOnViewZone(e) {\n                        if (this._zones.hasOwnProperty(e)) {\n                            const t = this._zones[e];\n                            return Boolean(t.delegate.suppressMouseDown)\n                        }\n                        return !1\n                    }\n                    _heightInPixels(e) {\n                        return \"number\" == typeof e.heightInPx ? e.heightInPx : \"number\" == typeof e.heightInLines ? this._lineHeight * e.heightInLines : this._lineHeight\n                    }\n                    _minWidthInPixels(e) {\n                        return \"number\" == typeof e.minWidthInPx ? e.minWidthInPx : 0\n                    }\n                    _safeCallOnComputedHeight(e, t) {\n                        if (\"function\" == typeof e.onComputedHeight) try {\n                            e.onComputedHeight(t)\n                        } catch (e) {\n                            (0, d.dL)(e)\n                        }\n                    }\n                    _safeCallOnDomNodeTop(e, t) {\n                        if (\"function\" == typeof e.onDomNodeTop) try {\n                            e.onDomNodeTop(t)\n                        } catch (e) {\n                            (0, d.dL)(e)\n                        }\n                    }\n                    prepareRender(e) {}\n                    render(e) {\n                        const t = e.viewportData.whitespaceViewportData,\n                            i = {};\n                        let n = !1;\n                        for (const e of t) this._zones[e.id].isInHiddenArea || (i[e.id] = e, n = !0);\n                        const o = Object.keys(this._zones);\n                        for (let t = 0, n = o.length; t < n; t++) {\n                            const n = o[t],\n                                s = this._zones[n];\n                            let r = 0,\n                                a = 0,\n                                l = \"none\";\n                            i.hasOwnProperty(n) ? (r = i[n].verticalOffset - e.bigNumbersDelta, a = i[n].height, l = \"block\", s.isVisible || (s.domNode.setAttribute(\"monaco-visible-view-zone\", \"true\"), s.isVisible = !0), this._safeCallOnDomNodeTop(s.delegate, e.getScrolledTopFromAbsoluteTop(i[n].verticalOffset))) : (s.isVisible && (s.domNode.removeAttribute(\"monaco-visible-view-zone\"), s.isVisible = !1), this._safeCallOnDomNodeTop(s.delegate, e.getScrolledTopFromAbsoluteTop(-1e6))), s.domNode.setTop(r), s.domNode.setHeight(a), s.domNode.setDisplay(l), s.marginDomNode && (s.marginDomNode.setTop(r), s.marginDomNode.setHeight(a), s.marginDomNode.setDisplay(l))\n                        }\n                        n && (this.domNode.setWidth(Math.max(e.scrollWidth, this._contentWidth)), this.marginDomNode.setWidth(this._contentLeft))\n                    }\n                }\n                class fi {\n                    constructor(e) {\n                        this._theme = e\n                    }\n                    get type() {\n                        return this._theme.type\n                    }\n                    update(e) {\n                        this._theme = e\n                    }\n                    getColor(e) {\n                        return this._theme.getColor(e)\n                    }\n                }\n                class mi {\n                    constructor(e, t, i) {\n                        this.configuration = e, this.theme = new fi(t), this.model = i, this.viewLayout = i.viewLayout\n                    }\n                    addEventHandler(e) {\n                        this.model.addViewEventHandler(e)\n                    }\n                    removeEventHandler(e) {\n                        this.model.removeViewEventHandler(e)\n                    }\n                }\n                class vi {\n                    constructor(e, t, i, n) {\n                        this.selections = e, this.startLineNumber = 0 | t.startLineNumber, this.endLineNumber = 0 | t.endLineNumber, this.relativeVerticalOffset = t.relativeVerticalOffset, this.bigNumbersDelta = 0 | t.bigNumbersDelta, this.whitespaceViewportData = i, this._model = n, this.visibleRange = new re.e(t.startLineNumber, this._model.getLineMinColumn(t.startLineNumber), t.endLineNumber, this._model.getLineMaxColumn(t.endLineNumber))\n                    }\n                    getViewLineRenderingData(e) {\n                        return this._model.getViewLineRenderingData(this.visibleRange, e)\n                    }\n                    getDecorationsInViewport() {\n                        return this._model.getDecorationsInViewport(this.visibleRange)\n                    }\n                }\n                class _i extends M {\n                    constructor(e, t, i, n, o, s) {\n                        super(), this._selections = [new v.Y(1, 1, 1, 1)], this._renderAnimationFrame = null;\n                        const r = new Ue(t, n, o, e);\n                        this._context = new mi(t, i.getColorTheme(), n), this._configPixelRatio = this._context.configuration.options.get(127), this._context.addEventHandler(this), this._register(i.onDidColorThemeChange((e => {\n                            this._context.theme.update(e), this._context.model.onDidColorThemeChange(), this.render(!0, !1)\n                        }))), this._viewParts = [], this._textAreaHandler = new ze(this._context, r, this._createTextAreaHandlerHelper()), this._viewParts.push(this._textAreaHandler), this._linesContent = (0, _.X)(document.createElement(\"div\")), this._linesContent.setClassName(\"lines-content monaco-editor-background\"), this._linesContent.setPosition(\"absolute\"), this.domNode = (0, _.X)(document.createElement(\"div\")), this.domNode.setClassName(this._getEditorClassName()), this.domNode.setAttribute(\"role\", \"code\"), this._overflowGuardContainer = (0, _.X)(document.createElement(\"div\")), O.write(this._overflowGuardContainer, 3), this._overflowGuardContainer.setClassName(\"overflow-guard\"), this._scrollbar = new pt(this._context, this._linesContent, this.domNode, this._overflowGuardContainer), this._viewParts.push(this._scrollbar), this._viewLines = new Lt(this._context, this._linesContent), this._viewZones = new pi(this._context), this._viewParts.push(this._viewZones);\n                        const a = new Jt(this._context);\n                        this._viewParts.push(a);\n                        const l = new ni(this._context);\n                        this._viewParts.push(l);\n                        const c = new et(this._context);\n                        this._viewParts.push(c), c.addDynamicOverlay(new ct(this._context)), c.addDynamicOverlay(new li(this._context)), c.addDynamicOverlay(new yt(this._context)), c.addDynamicOverlay(new ht(this._context));\n                        const d = new tt(this._context);\n                        this._viewParts.push(d), d.addDynamicOverlay(new dt(this._context)), d.addDynamicOverlay(new vt(this._context)), d.addDynamicOverlay(new Dt(this._context)), d.addDynamicOverlay(new Nt(this._context)), d.addDynamicOverlay(new Re(this._context));\n                        const h = new Fe(this._context);\n                        h.getDomNode().appendChild(this._viewZones.marginDomNode), h.getDomNode().appendChild(d.getDomNode()), this._viewParts.push(h), this._contentWidgets = new nt(this._context, this.domNode), this._viewParts.push(this._contentWidgets), this._viewCursors = new ui(this._context), this._viewParts.push(this._viewCursors), this._overlayWidgets = new Yt(this._context), this._viewParts.push(this._overlayWidgets);\n                        const u = new ii(this._context);\n                        this._viewParts.push(u);\n                        const g = new qt(this._context);\n                        if (this._viewParts.push(g), a) {\n                            const e = this._scrollbar.getOverviewRulerLayoutInfo();\n                            e.parent.insertBefore(a.getDomNode(), e.insertBefore)\n                        }\n                        this._linesContent.appendChild(c.getDomNode()), this._linesContent.appendChild(u.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(h.getDomNode()), this._overflowGuardContainer.appendChild(this._scrollbar.getDomNode()), this._overflowGuardContainer.appendChild(l.getDomNode()), this._overflowGuardContainer.appendChild(this._textAreaHandler.textArea), this._overflowGuardContainer.appendChild(this._textAreaHandler.textAreaCover), this._overflowGuardContainer.appendChild(this._overlayWidgets.getDomNode()), this._overflowGuardContainer.appendChild(g.getDomNode()), this.domNode.appendChild(this._overflowGuardContainer), s ? s.appendChild(this._contentWidgets.overflowingContentWidgetsDomNode.domNode) : this.domNode.appendChild(this._contentWidgets.overflowingContentWidgetsDomNode), this._applyLayout(), this._pointerHandler = this._register(new Ee(this._context, r, this._createPointerHandlerHelper()))\n                    }\n                    _flushAccumulatedAndRenderNow() {\n                        this._renderNow()\n                    }\n                    _createPointerHandlerHelper() {\n                        return {\n                            viewDomNode: this.domNode.domNode,\n                            linesContentDomNode: this._linesContent.domNode,\n                            focusTextArea: () => {\n                                this.focus()\n                            },\n                            dispatchTextAreaEvent: e => {\n                                this._textAreaHandler.textArea.domNode.dispatchEvent(e)\n                            },\n                            getLastRenderData: () => {\n                                const e = this._viewCursors.getLastRenderData() || [],\n                                    t = this._textAreaHandler.getLastRenderData();\n                                return new he(e, t)\n                            },\n                            shouldSuppressMouseDownOnViewZone: e => this._viewZones.shouldSuppressMouseDownOnViewZone(e),\n                            shouldSuppressMouseDownOnWidget: e => this._contentWidgets.shouldSuppressMouseDownOnWidget(e),\n                            getPositionFromDOMInfo: (e, t) => (this._flushAccumulatedAndRenderNow(), this._viewLines.getPositionFromDOMInfo(e, t)),\n                            visibleRangeForPosition: (e, t) => (this._flushAccumulatedAndRenderNow(), this._viewLines.visibleRangeForPosition(new se.L(e, t))),\n                            getLineWidth: e => (this._flushAccumulatedAndRenderNow(), this._viewLines.getLineWidth(e))\n                        }\n                    }\n                    _createTextAreaHandlerHelper() {\n                        return {\n                            visibleRangeForPositionRelativeToEditor: (e, t) => (this._flushAccumulatedAndRenderNow(), this._viewLines.visibleRangeForPosition(new se.L(e, t)))\n                        }\n                    }\n                    _applyLayout() {\n                        const e = this._context.configuration.options.get(129);\n                        this.domNode.setWidth(e.width), this.domNode.setHeight(e.height), this._overflowGuardContainer.setWidth(e.width), this._overflowGuardContainer.setHeight(e.height), this._linesContent.setWidth(1e6), this._linesContent.setHeight(1e6)\n                    }\n                    _getEditorClassName() {\n                        const e = this._textAreaHandler.isFocused() ? \" focused\" : \"\";\n                        return this._context.configuration.options.get(126) + \" \" + (0, Pe.m6)(this._context.theme.type) + e\n                    }\n                    handleEvents(e) {\n                        super.handleEvents(e), this._scheduleRender()\n                    }\n                    onConfigurationChanged(e) {\n                        return this._configPixelRatio = this._context.configuration.options.get(127), this.domNode.setClassName(this._getEditorClassName()), this._applyLayout(), !1\n                    }\n                    onCursorStateChanged(e) {\n                        return this._selections = e.selections, !1\n                    }\n                    onFocusChanged(e) {\n                        return this.domNode.setClassName(this._getEditorClassName()), !1\n                    }\n                    onThemeChanged(e) {\n                        return this.domNode.setClassName(this._getEditorClassName()), !1\n                    }\n                    dispose() {\n                        null !== this._renderAnimationFrame && (this._renderAnimationFrame.dispose(), this._renderAnimationFrame = null), this._contentWidgets.overflowingContentWidgetsDomNode.domNode.remove(), this._context.removeEventHandler(this), this._viewLines.dispose();\n                        for (const e of this._viewParts) e.dispose();\n                        super.dispose()\n                    }\n                    _scheduleRender() {\n                        null === this._renderAnimationFrame && (this._renderAnimationFrame = c.lI(this._onRenderScheduled.bind(this), 100))\n                    }\n                    _onRenderScheduled() {\n                        this._renderAnimationFrame = null, this._flushAccumulatedAndRenderNow()\n                    }\n                    _renderNow() {\n                        ! function(e) {\n                            try {\n                                return e()\n                            } catch (e) {\n                                (0, d.dL)(e)\n                            }\n                        }((() => this._actualRender()))\n                    }\n                    _getViewPartsToRender() {\n                        let e = [],\n                            t = 0;\n                        for (const i of this._viewParts) i.shouldRender() && (e[t++] = i);\n                        return e\n                    }\n                    _actualRender() {\n                        if (!c.Uw(this.domNode.domNode)) return;\n                        let e = this._getViewPartsToRender();\n                        if (!this._viewLines.shouldRender() && 0 === e.length) return;\n                        const t = this._context.viewLayout.getLinesViewportData();\n                        this._context.model.setViewport(t.startLineNumber, t.endLineNumber, t.centeredLineNumber);\n                        const i = new vi(this._selections, t, this._context.viewLayout.getWhitespaceViewportData(), this._context.model);\n                        this._contentWidgets.shouldRender() && this._contentWidgets.onBeforeRender(i), this._viewLines.shouldRender() && (this._viewLines.renderText(i), this._viewLines.onDidRender(), e = this._getViewPartsToRender());\n                        const n = new R(this._context.viewLayout, i, this._viewLines);\n                        for (const t of e) t.prepareRender(n);\n                        for (const t of e) t.render(n), t.onDidRender();\n                        Math.abs(m.mX() - this._configPixelRatio) > .001 && this._context.configuration.updatePixelRatio()\n                    }\n                    delegateVerticalScrollbarMouseDown(e) {\n                        this._scrollbar.delegateVerticalScrollbarMouseDown(e)\n                    }\n                    restoreState(e) {\n                        this._context.model.setScrollPosition({\n                            scrollTop: e.scrollTop\n                        }, 1), this._context.model.tokenizeViewport(), this._renderNow(), this._viewLines.updateLineWidths(), this._context.model.setScrollPosition({\n                            scrollLeft: e.scrollLeft\n                        }, 1)\n                    }\n                    getOffsetForColumn(e, t) {\n                        const i = this._context.model.validateModelPosition({\n                                lineNumber: e,\n                                column: t\n                            }),\n                            n = this._context.model.coordinatesConverter.convertModelPositionToViewPosition(i);\n                        this._flushAccumulatedAndRenderNow();\n                        const o = this._viewLines.visibleRangeForPosition(new se.L(n.lineNumber, n.column));\n                        return o ? o.left : -1\n                    }\n                    getTargetAtClientPoint(e, t) {\n                        const i = this._pointerHandler.getTargetAtClientPoint(e, t);\n                        return i ? $e.convertViewToModelMouseTarget(i, this._context.model.coordinatesConverter) : null\n                    }\n                    createOverviewRuler(e) {\n                        return new ti(this._context, e)\n                    }\n                    change(e) {\n                        this._viewZones.changeViewZones(e), this._scheduleRender()\n                    }\n                    render(e, t) {\n                        if (t) {\n                            this._viewLines.forceShouldRender();\n                            for (const e of this._viewParts) e.forceShouldRender()\n                        }\n                        e ? this._flushAccumulatedAndRenderNow() : this._scheduleRender()\n                    }\n                    focus() {\n                        this._textAreaHandler.focusTextArea()\n                    }\n                    isFocused() {\n                        return this._textAreaHandler.isFocused()\n                    }\n                    setAriaOptions(e) {\n                        this._textAreaHandler.setAriaOptions(e)\n                    }\n                    addContentWidget(e) {\n                        this._contentWidgets.addWidget(e.widget), this.layoutContentWidget(e), this._scheduleRender()\n                    }\n                    layoutContentWidget(e) {\n                        let t = e.position && e.position.range || null;\n                        if (null === t) {\n                            const i = e.position ? e.position.position : null;\n                            null !== i && (t = new re.e(i.lineNumber, i.column, i.lineNumber, i.column))\n                        }\n                        const i = e.position ? e.position.preference : null;\n                        this._contentWidgets.setWidgetPosition(e.widget, t, i), this._scheduleRender()\n                    }\n                    removeContentWidget(e) {\n                        this._contentWidgets.removeWidget(e.widget), this._scheduleRender()\n                    }\n                    addOverlayWidget(e) {\n                        this._overlayWidgets.addWidget(e.widget), this.layoutOverlayWidget(e), this._scheduleRender()\n                    }\n                    layoutOverlayWidget(e) {\n                        const t = e.position ? e.position.preference : null;\n                        this._overlayWidgets.setWidgetPosition(e.widget, t) && this._scheduleRender()\n                    }\n                    removeOverlayWidget(e) {\n                        this._overlayWidgets.removeWidget(e.widget), this._scheduleRender()\n                    }\n                }\n                class bi {\n                    constructor(e) {\n                        this._selTrackedRange = null, this._trackSelection = !0, this._setState(e, new ae.rS(new re.e(1, 1, 1, 1), 0, new se.L(1, 1), 0), new ae.rS(new re.e(1, 1, 1, 1), 0, new se.L(1, 1), 0))\n                    }\n                    dispose(e) {\n                        this._removeTrackedRange(e)\n                    }\n                    startTrackingSelection(e) {\n                        this._trackSelection = !0, this._updateTrackedRange(e)\n                    }\n                    stopTrackingSelection(e) {\n                        this._trackSelection = !1, this._removeTrackedRange(e)\n                    }\n                    _updateTrackedRange(e) {\n                        this._trackSelection && (this._selTrackedRange = e.model._setTrackedRange(this._selTrackedRange, this.modelState.selection, 0))\n                    }\n                    _removeTrackedRange(e) {\n                        this._selTrackedRange = e.model._setTrackedRange(this._selTrackedRange, null, 0)\n                    }\n                    asCursorState() {\n                        return new ae.Vi(this.modelState, this.viewState)\n                    }\n                    readSelectionFromMarkers(e) {\n                        const t = e.model._getTrackedRange(this._selTrackedRange);\n                        return 0 === this.modelState.selection.getDirection() ? new v.Y(t.startLineNumber, t.startColumn, t.endLineNumber, t.endColumn) : new v.Y(t.endLineNumber, t.endColumn, t.startLineNumber, t.startColumn)\n                    }\n                    ensureValidState(e) {\n                        this._setState(e, this.modelState, this.viewState)\n                    }\n                    setState(e, t, i) {\n                        this._setState(e, t, i)\n                    }\n                    static _validatePositionWithCache(e, t, i, n) {\n                        return t.equals(i) ? n : e.normalizePosition(t, 2)\n                    }\n                    static _validateViewState(e, t) {\n                        const i = t.position,\n                            n = t.selectionStart.getStartPosition(),\n                            o = t.selectionStart.getEndPosition(),\n                            s = e.normalizePosition(i, 2),\n                            r = this._validatePositionWithCache(e, n, i, s),\n                            a = this._validatePositionWithCache(e, o, n, r);\n                        return i.equals(s) && n.equals(r) && o.equals(a) ? t : new ae.rS(re.e.fromPositions(r, a), t.selectionStartLeftoverVisibleColumns + n.column - r.column, s, t.leftoverVisibleColumns + i.column - s.column)\n                    }\n                    _setState(e, t, i) {\n                        if (i && (i = bi._validateViewState(e.viewModel, i)), t) {\n                            const i = e.model.validateRange(t.selectionStart),\n                                n = t.selectionStart.equalsRange(i) ? t.selectionStartLeftoverVisibleColumns : 0,\n                                o = e.model.validatePosition(t.position),\n                                s = t.position.equals(o) ? t.leftoverVisibleColumns : 0;\n                            t = new ae.rS(i, n, o, s)\n                        } else {\n                            if (!i) return;\n                            const n = e.model.validateRange(e.coordinatesConverter.convertViewRangeToModelRange(i.selectionStart)),\n                                o = e.model.validatePosition(e.coordinatesConverter.convertViewPositionToModelPosition(i.position));\n                            t = new ae.rS(n, i.selectionStartLeftoverVisibleColumns, o, i.leftoverVisibleColumns)\n                        }\n                        if (i) {\n                            const n = e.coordinatesConverter.validateViewRange(i.selectionStart, t.selectionStart),\n                                o = e.coordinatesConverter.validateViewPosition(i.position, t.position);\n                            i = new ae.rS(n, t.selectionStartLeftoverVisibleColumns, o, t.leftoverVisibleColumns)\n                        } else {\n                            const n = e.coordinatesConverter.convertModelPositionToViewPosition(new se.L(t.selectionStart.startLineNumber, t.selectionStart.startColumn)),\n                                o = e.coordinatesConverter.convertModelPositionToViewPosition(new se.L(t.selectionStart.endLineNumber, t.selectionStart.endColumn)),\n                                s = new re.e(n.lineNumber, n.column, o.lineNumber, o.column),\n                                r = e.coordinatesConverter.convertModelPositionToViewPosition(t.position);\n                            i = new ae.rS(s, t.selectionStartLeftoverVisibleColumns, r, t.leftoverVisibleColumns)\n                        }\n                        this.modelState = t, this.viewState = i, this._updateTrackedRange(e)\n                    }\n                }\n                class wi {\n                    constructor(e) {\n                        this.context = e, this.primaryCursor = new bi(e), this.secondaryCursors = [], this.lastAddedCursorIndex = 0\n                    }\n                    dispose() {\n                        this.primaryCursor.dispose(this.context), this.killSecondaryCursors()\n                    }\n                    startTrackingSelections() {\n                        this.primaryCursor.startTrackingSelection(this.context);\n                        for (let e = 0, t = this.secondaryCursors.length; e < t; e++) this.secondaryCursors[e].startTrackingSelection(this.context)\n                    }\n                    stopTrackingSelections() {\n                        this.primaryCursor.stopTrackingSelection(this.context);\n                        for (let e = 0, t = this.secondaryCursors.length; e < t; e++) this.secondaryCursors[e].stopTrackingSelection(this.context)\n                    }\n                    updateContext(e) {\n                        this.context = e\n                    }\n                    ensureValidState() {\n                        this.primaryCursor.ensureValidState(this.context);\n                        for (let e = 0, t = this.secondaryCursors.length; e < t; e++) this.secondaryCursors[e].ensureValidState(this.context)\n                    }\n                    readSelectionFromMarkers() {\n                        let e = [];\n                        e[0] = this.primaryCursor.readSelectionFromMarkers(this.context);\n                        for (let t = 0, i = this.secondaryCursors.length; t < i; t++) e[t + 1] = this.secondaryCursors[t].readSelectionFromMarkers(this.context);\n                        return e\n                    }\n                    getAll() {\n                        let e = [];\n                        e[0] = this.primaryCursor.asCursorState();\n                        for (let t = 0, i = this.secondaryCursors.length; t < i; t++) e[t + 1] = this.secondaryCursors[t].asCursorState();\n                        return e\n                    }\n                    getViewPositions() {\n                        let e = [];\n                        e[0] = this.primaryCursor.viewState.position;\n                        for (let t = 0, i = this.secondaryCursors.length; t < i; t++) e[t + 1] = this.secondaryCursors[t].viewState.position;\n                        return e\n                    }\n                    getTopMostViewPosition() {\n                        let e = this.primaryCursor.viewState.position;\n                        for (let t = 0, i = this.secondaryCursors.length; t < i; t++) {\n                            const i = this.secondaryCursors[t].viewState.position;\n                            i.isBefore(e) && (e = i)\n                        }\n                        return e\n                    }\n                    getBottomMostViewPosition() {\n                        let e = this.primaryCursor.viewState.position;\n                        for (let t = 0, i = this.secondaryCursors.length; t < i; t++) {\n                            const i = this.secondaryCursors[t].viewState.position;\n                            e.isBeforeOrEqual(i) && (e = i)\n                        }\n                        return e\n                    }\n                    getSelections() {\n                        let e = [];\n                        e[0] = this.primaryCursor.modelState.selection;\n                        for (let t = 0, i = this.secondaryCursors.length; t < i; t++) e[t + 1] = this.secondaryCursors[t].modelState.selection;\n                        return e\n                    }\n                    getViewSelections() {\n                        let e = [];\n                        e[0] = this.primaryCursor.viewState.selection;\n                        for (let t = 0, i = this.secondaryCursors.length; t < i; t++) e[t + 1] = this.secondaryCursors[t].viewState.selection;\n                        return e\n                    }\n                    setSelections(e) {\n                        this.setStates(ae.Vi.fromModelSelections(e))\n                    }\n                    getPrimaryCursor() {\n                        return this.primaryCursor.asCursorState()\n                    }\n                    setStates(e) {\n                        null !== e && (this.primaryCursor.setState(this.context, e[0].modelState, e[0].viewState), this._setSecondaryStates(e.slice(1)))\n                    }\n                    _setSecondaryStates(e) {\n                        const t = this.secondaryCursors.length,\n                            i = e.length;\n                        if (t < i) {\n                            let e = i - t;\n                            for (let t = 0; t < e; t++) this._addSecondaryCursor()\n                        } else if (t > i) {\n                            let e = t - i;\n                            for (let t = 0; t < e; t++) this._removeSecondaryCursor(this.secondaryCursors.length - 1)\n                        }\n                        for (let t = 0; t < i; t++) this.secondaryCursors[t].setState(this.context, e[t].modelState, e[t].viewState)\n                    }\n                    killSecondaryCursors() {\n                        this._setSecondaryStates([])\n                    }\n                    _addSecondaryCursor() {\n                        this.secondaryCursors.push(new bi(this.context)), this.lastAddedCursorIndex = this.secondaryCursors.length\n                    }\n                    getLastAddedCursorIndex() {\n                        return 0 === this.secondaryCursors.length || 0 === this.lastAddedCursorIndex ? 0 : this.lastAddedCursorIndex\n                    }\n                    _removeSecondaryCursor(e) {\n                        this.lastAddedCursorIndex >= e + 1 && this.lastAddedCursorIndex--, this.secondaryCursors[e].dispose(this.context), this.secondaryCursors.splice(e, 1)\n                    }\n                    _getAll() {\n                        let e = [];\n                        e[0] = this.primaryCursor;\n                        for (let t = 0, i = this.secondaryCursors.length; t < i; t++) e[t + 1] = this.secondaryCursors[t];\n                        return e\n                    }\n                    normalize() {\n                        if (0 === this.secondaryCursors.length) return;\n                        let e = this._getAll(),\n                            t = [];\n                        for (let i = 0, n = e.length; i < n; i++) t.push({\n                            index: i,\n                            selection: e[i].modelState.selection\n                        });\n                        t.sort(((e, t) => e.selection.startLineNumber === t.selection.startLineNumber ? e.selection.startColumn - t.selection.startColumn : e.selection.startLineNumber - t.selection.startLineNumber));\n                        for (let i = 0; i < t.length - 1; i++) {\n                            const n = t[i],\n                                o = t[i + 1],\n                                s = n.selection,\n                                r = o.selection;\n                            if (!this.context.cursorConfig.multiCursorMergeOverlapping) continue;\n                            let a;\n                            if (a = r.isEmpty() || s.isEmpty() ? r.getStartPosition().isBeforeOrEqual(s.getEndPosition()) : r.getStartPosition().isBefore(s.getEndPosition()), a) {\n                                const s = n.index < o.index ? i : i + 1,\n                                    r = n.index < o.index ? i + 1 : i,\n                                    a = t[r].index,\n                                    l = t[s].index,\n                                    c = t[r].selection,\n                                    d = t[s].selection;\n                                if (!c.equalsSelection(d)) {\n                                    const i = c.plusRange(d),\n                                        n = c.selectionStartLineNumber === c.startLineNumber && c.selectionStartColumn === c.startColumn,\n                                        o = d.selectionStartLineNumber === d.startLineNumber && d.selectionStartColumn === d.startColumn;\n                                    let r, h;\n                                    a === this.lastAddedCursorIndex ? (r = n, this.lastAddedCursorIndex = l) : r = o, h = r ? new v.Y(i.startLineNumber, i.startColumn, i.endLineNumber, i.endColumn) : new v.Y(i.endLineNumber, i.endColumn, i.startLineNumber, i.startColumn), t[s].selection = h;\n                                    const u = ae.Vi.fromModelSelection(h);\n                                    e[l].setState(this.context, u.modelState, u.viewState)\n                                }\n                                for (const e of t) e.index > a && e.index--;\n                                e.splice(a, 1), t.splice(r, 1), this._removeSecondaryCursor(a - 1), i--\n                            }\n                        }\n                    }\n                }\n                var yi = i(31380),\n                    Ci = i(23582),\n                    xi = i(83256);\n                class Si {\n                    constructor() {\n                        this.type = 0\n                    }\n                }\n                class ki {\n                    constructor() {\n                        this.type = 1\n                    }\n                }\n                class Li {\n                    constructor(e) {\n                        this.type = 2, this._source = e\n                    }\n                    hasChanged(e) {\n                        return this._source.hasChanged(e)\n                    }\n                }\n                class Ni {\n                    constructor(e, t) {\n                        this.type = 3, this.selections = e, this.modelSelections = t\n                    }\n                }\n                class Di {\n                    constructor(e) {\n                        this.type = 4, e ? (this.affectsMinimap = e.affectsMinimap, this.affectsOverviewRuler = e.affectsOverviewRuler) : (this.affectsMinimap = !0, this.affectsOverviewRuler = !0)\n                    }\n                }\n                class Ii {\n                    constructor() {\n                        this.type = 5\n                    }\n                }\n                class Ei {\n                    constructor(e) {\n                        this.type = 6, this.isFocused = e\n                    }\n                }\n                class Ti {\n                    constructor() {\n                        this.type = 7\n                    }\n                }\n                class Mi {\n                    constructor() {\n                        this.type = 8\n                    }\n                }\n                class Ai {\n                    constructor(e, t) {\n                        this.type = 9, this.fromLineNumber = e, this.toLineNumber = t\n                    }\n                }\n                class Oi {\n                    constructor(e, t) {\n                        this.type = 10, this.fromLineNumber = e, this.toLineNumber = t\n                    }\n                }\n                class Pi {\n                    constructor(e, t) {\n                        this.type = 11, this.fromLineNumber = e, this.toLineNumber = t\n                    }\n                }\n                class Ri {\n                    constructor(e, t, i, n, o, s) {\n                        this.type = 12, this.source = e, this.range = t, this.selections = i, this.verticalType = n, this.revealHorizontal = o, this.scrollType = s\n                    }\n                }\n                class Fi {\n                    constructor(e) {\n                        this.type = 13, this.scrollWidth = e.scrollWidth, this.scrollLeft = e.scrollLeft, this.scrollHeight = e.scrollHeight, this.scrollTop = e.scrollTop, this.scrollWidthChanged = e.scrollWidthChanged, this.scrollLeftChanged = e.scrollLeftChanged, this.scrollHeightChanged = e.scrollHeightChanged, this.scrollTopChanged = e.scrollTopChanged\n                    }\n                }\n                class Bi {\n                    constructor() {\n                        this.type = 14\n                    }\n                }\n                class Vi {\n                    constructor(e) {\n                        this.type = 15, this.ranges = e\n                    }\n                }\n                class Wi {\n                    constructor() {\n                        this.type = 16\n                    }\n                }\n                class Hi {\n                    constructor() {\n                        this.type = 17\n                    }\n                }\n                class zi extends u.JT {\n                    constructor() {\n                        super(), this._onEvent = this._register(new h.Q5), this.onEvent = this._onEvent.event, this._eventHandlers = [], this._viewEventQueue = null, this._isConsumingViewEventQueue = !1, this._collector = null, this._collectorCnt = 0, this._outgoingEvents = []\n                    }\n                    emitOutgoingEvent(e) {\n                        this._addOutgoingEvent(e), this._emitOutgoingEvents()\n                    }\n                    _addOutgoingEvent(e) {\n                        for (let t = 0, i = this._outgoingEvents.length; t < i; t++)\n                            if (this._outgoingEvents[t].kind === e.kind) return void(this._outgoingEvents[t] = this._outgoingEvents[t].merge(e));\n                        this._outgoingEvents.push(e)\n                    }\n                    _emitOutgoingEvents() {\n                        for (; this._outgoingEvents.length > 0;) {\n                            if (this._collector || this._isConsumingViewEventQueue) return;\n                            const e = this._outgoingEvents.shift();\n                            e.isNoOp() || this._onEvent.fire(e)\n                        }\n                    }\n                    addViewEventHandler(e) {\n                        for (let t = 0, i = this._eventHandlers.length; t < i; t++) this._eventHandlers[t] === e && console.warn(\"Detected duplicate listener in ViewEventDispatcher\", e);\n                        this._eventHandlers.push(e)\n                    }\n                    removeViewEventHandler(e) {\n                        for (let t = 0; t < this._eventHandlers.length; t++)\n                            if (this._eventHandlers[t] === e) {\n                                this._eventHandlers.splice(t, 1);\n                                break\n                            }\n                    }\n                    beginEmitViewEvents() {\n                        return this._collectorCnt++, 1 === this._collectorCnt && (this._collector = new ji), this._collector\n                    }\n                    endEmitViewEvents() {\n                        if (this._collectorCnt--, 0 === this._collectorCnt) {\n                            const e = this._collector.outgoingEvents,\n                                t = this._collector.viewEvents;\n                            this._collector = null;\n                            for (const t of e) this._addOutgoingEvent(t);\n                            t.length > 0 && this._emitMany(t)\n                        }\n                        this._emitOutgoingEvents()\n                    }\n                    emitSingleViewEvent(e) {\n                        try {\n                            this.beginEmitViewEvents().emitViewEvent(e)\n                        } finally {\n                            this.endEmitViewEvents()\n                        }\n                    }\n                    _emitMany(e) {\n                        this._viewEventQueue ? this._viewEventQueue = this._viewEventQueue.concat(e) : this._viewEventQueue = e, this._isConsumingViewEventQueue || this._consumeViewEventQueue()\n                    }\n                    _consumeViewEventQueue() {\n                        try {\n                            this._isConsumingViewEventQueue = !0, this._doConsumeQueue()\n                        } finally {\n                            this._isConsumingViewEventQueue = !1\n                        }\n                    }\n                    _doConsumeQueue() {\n                        for (; this._viewEventQueue;) {\n                            const e = this._viewEventQueue;\n                            this._viewEventQueue = null;\n                            const t = this._eventHandlers.slice(0);\n                            for (const i of t) i.handleEvents(e)\n                        }\n                    }\n                }\n                class ji {\n                    constructor() {\n                        this.viewEvents = [], this.outgoingEvents = []\n                    }\n                    emitViewEvent(e) {\n                        this.viewEvents.push(e)\n                    }\n                    emitOutgoingEvent(e) {\n                        this.outgoingEvents.push(e)\n                    }\n                }\n                class Ui {\n                    constructor(e, t, i, n) {\n                        this.kind = 0, this._oldContentWidth = e, this._oldContentHeight = t, this.contentWidth = i, this.contentHeight = n, this.contentWidthChanged = this._oldContentWidth !== this.contentWidth, this.contentHeightChanged = this._oldContentHeight !== this.contentHeight\n                    }\n                    isNoOp() {\n                        return !this.contentWidthChanged && !this.contentHeightChanged\n                    }\n                    merge(e) {\n                        return 0 !== e.kind ? this : new Ui(this._oldContentWidth, this._oldContentHeight, e.contentWidth, e.contentHeight)\n                    }\n                }\n                class $i {\n                    constructor(e, t) {\n                        this.kind = 1, this.oldHasFocus = e, this.hasFocus = t\n                    }\n                    isNoOp() {\n                        return this.oldHasFocus === this.hasFocus\n                    }\n                    merge(e) {\n                        return 1 !== e.kind ? this : new $i(this.oldHasFocus, e.hasFocus)\n                    }\n                }\n                class Ki {\n                    constructor(e, t, i, n, o, s, r, a) {\n                        this.kind = 2, this._oldScrollWidth = e, this._oldScrollLeft = t, this._oldScrollHeight = i, this._oldScrollTop = n, this.scrollWidth = o, this.scrollLeft = s, this.scrollHeight = r, this.scrollTop = a, this.scrollWidthChanged = this._oldScrollWidth !== this.scrollWidth, this.scrollLeftChanged = this._oldScrollLeft !== this.scrollLeft, this.scrollHeightChanged = this._oldScrollHeight !== this.scrollHeight, this.scrollTopChanged = this._oldScrollTop !== this.scrollTop\n                    }\n                    isNoOp() {\n                        return !(this.scrollWidthChanged || this.scrollLeftChanged || this.scrollHeightChanged || this.scrollTopChanged)\n                    }\n                    merge(e) {\n                        return 2 !== e.kind ? this : new Ki(this._oldScrollWidth, this._oldScrollLeft, this._oldScrollHeight, this._oldScrollTop, e.scrollWidth, e.scrollLeft, e.scrollHeight, e.scrollTop)\n                    }\n                }\n                class qi {\n                    constructor() {\n                        this.kind = 3\n                    }\n                    isNoOp() {\n                        return !1\n                    }\n                    merge(e) {\n                        return this\n                    }\n                }\n                class Zi {\n                    constructor(e, t, i, n, o, s, r) {\n                        this.kind = 6, this.oldSelections = e, this.selections = t, this.oldModelVersionId = i, this.modelVersionId = n, this.source = o, this.reason = s, this.reachedMaxCursorCount = r\n                    }\n                    static _selectionsAreEqual(e, t) {\n                        if (!e && !t) return !0;\n                        if (!e || !t) return !1;\n                        const i = e.length;\n                        if (i !== t.length) return !1;\n                        for (let n = 0; n < i; n++)\n                            if (!e[n].equalsSelection(t[n])) return !1;\n                        return !0\n                    }\n                    isNoOp() {\n                        return Zi._selectionsAreEqual(this.oldSelections, this.selections) && this.oldModelVersionId === this.modelVersionId\n                    }\n                    merge(e) {\n                        return 6 !== e.kind ? this : new Zi(this.oldSelections, e.selections, this.oldModelVersionId, e.modelVersionId, e.source, e.reason, this.reachedMaxCursorCount || e.reachedMaxCursorCount)\n                    }\n                }\n                class Gi {\n                    constructor() {\n                        this.kind = 5\n                    }\n                    isNoOp() {\n                        return !1\n                    }\n                    merge(e) {\n                        return this\n                    }\n                }\n                class Yi {\n                    constructor(e, t) {\n                        this.modelVersionId = e.getVersionId(), this.cursorState = t.getCursorStates()\n                    }\n                    equals(e) {\n                        if (!e) return !1;\n                        if (this.modelVersionId !== e.modelVersionId) return !1;\n                        if (this.cursorState.length !== e.cursorState.length) return !1;\n                        for (let t = 0, i = this.cursorState.length; t < i; t++)\n                            if (!this.cursorState[t].equals(e.cursorState[t])) return !1;\n                        return !0\n                    }\n                }\n                class Qi {\n                    constructor(e, t, i) {\n                        this._model = e, this._autoClosedCharactersDecorations = t, this._autoClosedEnclosingDecorations = i\n                    }\n                    static getAllAutoClosedCharacters(e) {\n                        let t = [];\n                        for (const i of e) t = t.concat(i.getAutoClosedCharactersRanges());\n                        return t\n                    }\n                    dispose() {\n                        this._autoClosedCharactersDecorations = this._model.deltaDecorations(this._autoClosedCharactersDecorations, []), this._autoClosedEnclosingDecorations = this._model.deltaDecorations(this._autoClosedEnclosingDecorations, [])\n                    }\n                    getAutoClosedCharactersRanges() {\n                        let e = [];\n                        for (let t = 0; t < this._autoClosedCharactersDecorations.length; t++) {\n                            const i = this._model.getDecorationRange(this._autoClosedCharactersDecorations[t]);\n                            i && e.push(i)\n                        }\n                        return e\n                    }\n                    isValid(e) {\n                        let t = [];\n                        for (let e = 0; e < this._autoClosedEnclosingDecorations.length; e++) {\n                            const i = this._model.getDecorationRange(this._autoClosedEnclosingDecorations[e]);\n                            if (i && (t.push(i), i.startLineNumber !== i.endLineNumber)) return !1\n                        }\n                        t.sort(re.e.compareRangesUsingStarts), e.sort(re.e.compareRangesUsingStarts);\n                        for (let i = 0; i < e.length; i++) {\n                            if (i >= t.length) return !1;\n                            if (!t[i].strictContainsRange(e[i])) return !1\n                        }\n                        return !0\n                    }\n                }\n                class Xi extends u.JT {\n                    constructor(e, t, i, n) {\n                        super(), this._model = e, this._knownModelVersionId = this._model.getVersionId(), this._viewModel = t, this._coordinatesConverter = i, this.context = new ae.zp(this._model, this._viewModel, this._coordinatesConverter, n), this._cursors = new wi(this.context), this._hasFocus = !1, this._isHandling = !1, this._isDoingComposition = !1, this._selectionsWhenCompositionStarted = null, this._columnSelectData = null, this._autoClosedActions = [], this._prevEditOperationType = 0\n                    }\n                    dispose() {\n                        this._cursors.dispose(), this._autoClosedActions = (0, u.B9)(this._autoClosedActions), super.dispose()\n                    }\n                    updateConfiguration(e) {\n                        this.context = new ae.zp(this._model, this._viewModel, this._coordinatesConverter, e), this._cursors.updateContext(this.context)\n                    }\n                    onLineMappingChanged(e) {\n                        this._knownModelVersionId === this._model.getVersionId() && this.setStates(e, \"viewModel\", 0, this.getCursorStates())\n                    }\n                    setHasFocus(e) {\n                        this._hasFocus = e\n                    }\n                    _validateAutoClosedActions() {\n                        if (this._autoClosedActions.length > 0) {\n                            let e = this._cursors.getSelections();\n                            for (let t = 0; t < this._autoClosedActions.length; t++) {\n                                const i = this._autoClosedActions[t];\n                                i.isValid(e) || (i.dispose(), this._autoClosedActions.splice(t, 1), t--)\n                            }\n                        }\n                    }\n                    getPrimaryCursorState() {\n                        return this._cursors.getPrimaryCursor()\n                    }\n                    getLastAddedCursorIndex() {\n                        return this._cursors.getLastAddedCursorIndex()\n                    }\n                    getCursorStates() {\n                        return this._cursors.getAll()\n                    }\n                    setStates(e, t, i, n) {\n                        let o = !1;\n                        null !== n && n.length > Xi.MAX_CURSOR_COUNT && (n = n.slice(0, Xi.MAX_CURSOR_COUNT), o = !0);\n                        const s = new Yi(this._model, this);\n                        return this._cursors.setStates(n), this._cursors.normalize(), this._columnSelectData = null, this._validateAutoClosedActions(), this._emitStateChangedIfNecessary(e, t, i, s, o)\n                    }\n                    setCursorColumnSelectData(e) {\n                        this._columnSelectData = e\n                    }\n                    revealPrimary(e, t, i, n) {\n                        const o = this._cursors.getViewPositions();\n                        if (o.length > 1) this._emitCursorRevealRange(e, t, null, this._cursors.getViewSelections(), 0, i, n);\n                        else {\n                            const s = o[0],\n                                r = new re.e(s.lineNumber, s.column, s.lineNumber, s.column);\n                            this._emitCursorRevealRange(e, t, r, null, 0, i, n)\n                        }\n                    }\n                    _revealPrimaryCursor(e, t, i, n, o) {\n                        const s = this._cursors.getViewPositions();\n                        if (s.length > 1) this._emitCursorRevealRange(e, t, null, this._cursors.getViewSelections(), i, n, o);\n                        else {\n                            const r = s[0],\n                                a = new re.e(r.lineNumber, r.column, r.lineNumber, r.column);\n                            this._emitCursorRevealRange(e, t, a, null, i, n, o)\n                        }\n                    }\n                    _emitCursorRevealRange(e, t, i, n, o, s, r) {\n                        e.emitViewEvent(new Ri(t, i, n, o, s, r))\n                    }\n                    saveState() {\n                        let e = [];\n                        const t = this._cursors.getSelections();\n                        for (let i = 0, n = t.length; i < n; i++) {\n                            const n = t[i];\n                            e.push({\n                                inSelectionMode: !n.isEmpty(),\n                                selectionStart: {\n                                    lineNumber: n.selectionStartLineNumber,\n                                    column: n.selectionStartColumn\n                                },\n                                position: {\n                                    lineNumber: n.positionLineNumber,\n                                    column: n.positionColumn\n                                }\n                            })\n                        }\n                        return e\n                    }\n                    restoreState(e, t) {\n                        let i = [];\n                        for (let e = 0, n = t.length; e < n; e++) {\n                            const n = t[e];\n                            let o = 1,\n                                s = 1;\n                            n.position && n.position.lineNumber && (o = n.position.lineNumber), n.position && n.position.column && (s = n.position.column);\n                            let r = o,\n                                a = s;\n                            n.selectionStart && n.selectionStart.lineNumber && (r = n.selectionStart.lineNumber), n.selectionStart && n.selectionStart.column && (a = n.selectionStart.column), i.push({\n                                selectionStartLineNumber: r,\n                                selectionStartColumn: a,\n                                positionLineNumber: o,\n                                positionColumn: s\n                            })\n                        }\n                        this.setStates(e, \"restoreState\", 0, ae.Vi.fromModelSelections(i)), this.revealPrimary(e, \"restoreState\", !0, 1)\n                    }\n                    onModelContentChanged(e, t) {\n                        if (t instanceof xi.D8) {\n                            if (this._isHandling) return;\n                            this._isHandling = !0;\n                            try {\n                                this.setStates(e, \"modelChange\", 0, this.getCursorStates())\n                            } finally {\n                                this._isHandling = !1\n                            }\n                        } else {\n                            if (this._knownModelVersionId = t.versionId, this._isHandling) return;\n                            const i = t.containsEvent(1);\n                            if (this._prevEditOperationType = 0, i) this._cursors.dispose(), this._cursors = new wi(this.context), this._validateAutoClosedActions(), this._emitStateChangedIfNecessary(e, \"model\", 1, null, !1);\n                            else if (this._hasFocus && t.resultingSelection && t.resultingSelection.length > 0) {\n                                const i = ae.Vi.fromModelSelections(t.resultingSelection);\n                                this.setStates(e, \"modelChange\", t.isUndoing ? 5 : t.isRedoing ? 6 : 2, i) && this._revealPrimaryCursor(e, \"modelChange\", 0, !0, 0)\n                            } else {\n                                const t = this._cursors.readSelectionFromMarkers();\n                                this.setStates(e, \"modelChange\", 2, ae.Vi.fromModelSelections(t))\n                            }\n                        }\n                    }\n                    getSelection() {\n                        return this._cursors.getPrimaryCursor().modelState.selection\n                    }\n                    getTopMostViewPosition() {\n                        return this._cursors.getTopMostViewPosition()\n                    }\n                    getBottomMostViewPosition() {\n                        return this._cursors.getBottomMostViewPosition()\n                    }\n                    getCursorColumnSelectData() {\n                        if (this._columnSelectData) return this._columnSelectData;\n                        const e = this._cursors.getPrimaryCursor(),\n                            t = e.viewState.selectionStart.getStartPosition(),\n                            i = e.viewState.position;\n                        return {\n                            isReal: !1,\n                            fromViewLineNumber: t.lineNumber,\n                            fromViewVisualColumn: ae.io.visibleColumnFromColumn2(this.context.cursorConfig, this._viewModel, t),\n                            toViewLineNumber: i.lineNumber,\n                            toViewVisualColumn: ae.io.visibleColumnFromColumn2(this.context.cursorConfig, this._viewModel, i)\n                        }\n                    }\n                    getSelections() {\n                        return this._cursors.getSelections()\n                    }\n                    setSelections(e, t, i, n) {\n                        this.setStates(e, t, n, ae.Vi.fromModelSelections(i))\n                    }\n                    getPrevEditOperationType() {\n                        return this._prevEditOperationType\n                    }\n                    setPrevEditOperationType(e) {\n                        this._prevEditOperationType = e\n                    }\n                    _pushAutoClosedAction(e, t) {\n                        let i = [],\n                            n = [];\n                        for (let o = 0, s = e.length; o < s; o++) i.push({\n                            range: e[o],\n                            options: {\n                                description: \"auto-closed-character\",\n                                inlineClassName: \"auto-closed-character\",\n                                stickiness: 1\n                            }\n                        }), n.push({\n                            range: t[o],\n                            options: {\n                                description: \"auto-closed-enclosing\",\n                                stickiness: 1\n                            }\n                        });\n                        const o = this._model.deltaDecorations([], i),\n                            s = this._model.deltaDecorations([], n);\n                        this._autoClosedActions.push(new Qi(this._model, o, s))\n                    }\n                    _executeEditOperation(e) {\n                        if (!e) return;\n                        e.shouldPushStackElementBefore && this._model.pushStackElement();\n                        const t = Ji.executeCommands(this._model, this._cursors.getSelections(), e.commands);\n                        if (t) {\n                            this._interpretCommandResult(t);\n                            let i = [],\n                                n = [];\n                            for (let t = 0; t < e.commands.length; t++) {\n                                const o = e.commands[t];\n                                o instanceof Ci.g && o.enclosingRange && o.closeCharacterRange && (i.push(o.closeCharacterRange), n.push(o.enclosingRange))\n                            }\n                            i.length > 0 && this._pushAutoClosedAction(i, n), this._prevEditOperationType = e.type\n                        }\n                        e.shouldPushStackElementAfter && this._model.pushStackElement()\n                    }\n                    _interpretCommandResult(e) {\n                        e && 0 !== e.length || (e = this._cursors.readSelectionFromMarkers()), this._columnSelectData = null, this._cursors.setSelections(e), this._cursors.normalize()\n                    }\n                    _emitStateChangedIfNecessary(e, t, i, n, o) {\n                        const s = new Yi(this._model, this);\n                        if (s.equals(n)) return !1;\n                        const r = this._cursors.getSelections(),\n                            a = this._cursors.getViewSelections();\n                        if (e.emitViewEvent(new Ni(a, r)), !n || n.cursorState.length !== s.cursorState.length || s.cursorState.some(((e, t) => !e.modelState.equals(n.cursorState[t].modelState)))) {\n                            const a = n ? n.cursorState.map((e => e.modelState.selection)) : null,\n                                l = n ? n.modelVersionId : 0;\n                            e.emitOutgoingEvent(new Zi(a, r, l, s.modelVersionId, t || \"keyboard\", i, o))\n                        }\n                        return !0\n                    }\n                    _findAutoClosingPairs(e) {\n                        if (!e.length) return null;\n                        let t = [];\n                        for (let i = 0, n = e.length; i < n; i++) {\n                            const n = e[i];\n                            if (!n.text || n.text.indexOf(\"\\n\") >= 0) return null;\n                            const o = n.text.match(/([)\\]}>'\"`])([^)\\]}>'\"`]*)$/);\n                            if (!o) return null;\n                            const s = o[1],\n                                r = this.context.cursorConfig.autoClosingPairs.autoClosingPairsCloseSingleChar.get(s);\n                            if (!r || 1 !== r.length) return null;\n                            const a = r[0].open,\n                                l = n.text.length - o[2].length - 1,\n                                c = n.text.lastIndexOf(a, l - 1);\n                            if (-1 === c) return null;\n                            t.push([c, l])\n                        }\n                        return t\n                    }\n                    executeEdits(e, t, i, n) {\n                        let o = null;\n                        \"snippet\" === t && (o = this._findAutoClosingPairs(i)), o && (i[0]._isTracked = !0);\n                        let s = [],\n                            r = [];\n                        const a = this._model.pushEditOperations(this.getSelections(), i, (e => {\n                            if (o)\n                                for (let t = 0, i = o.length; t < i; t++) {\n                                    const [i, n] = o[t], a = e[t], l = a.range.startLineNumber, c = a.range.startColumn - 1 + i, d = a.range.startColumn - 1 + n;\n                                    s.push(new re.e(l, d + 1, l, d + 2)), r.push(new re.e(l, c + 1, l, d + 2))\n                                }\n                            const t = n(e);\n                            return t && (this._isHandling = !0), t\n                        }));\n                        a && (this._isHandling = !1, this.setSelections(e, t, a, 0)), s.length > 0 && this._pushAutoClosedAction(s, r)\n                    }\n                    _executeEdit(e, t, i, n = 0) {\n                        if (this.context.cursorConfig.readOnly) return;\n                        const o = new Yi(this._model, this);\n                        this._cursors.stopTrackingSelections(), this._isHandling = !0;\n                        try {\n                            this._cursors.ensureValidState(), e()\n                        } catch (e) {\n                            (0, d.dL)(e)\n                        }\n                        this._isHandling = !1, this._cursors.startTrackingSelections(), this._validateAutoClosedActions(), this._emitStateChangedIfNecessary(t, i, n, o, !1) && this._revealPrimaryCursor(t, i, 0, !0, 0)\n                    }\n                    setIsDoingComposition(e) {\n                        this._isDoingComposition = e\n                    }\n                    getAutoClosedCharacters() {\n                        return Qi.getAllAutoClosedCharacters(this._autoClosedActions)\n                    }\n                    startComposition(e) {\n                        this._selectionsWhenCompositionStarted = this.getSelections().slice(0)\n                    }\n                    endComposition(e, t) {\n                        this._executeEdit((() => {\n                            \"keyboard\" === t && (this._executeEditOperation(Ci.u.compositionEndWithInterceptors(this._prevEditOperationType, this.context.cursorConfig, this._model, this._selectionsWhenCompositionStarted, this.getSelections(), this.getAutoClosedCharacters())), this._selectionsWhenCompositionStarted = null)\n                        }), e, t)\n                    }\n                    type(e, t, i) {\n                        this._executeEdit((() => {\n                            if (\"keyboard\" === i) {\n                                const e = t.length;\n                                let i = 0;\n                                for (; i < e;) {\n                                    const e = Te.vH(t, i),\n                                        n = t.substr(i, e);\n                                    this._executeEditOperation(Ci.u.typeWithInterceptors(this._isDoingComposition, this._prevEditOperationType, this.context.cursorConfig, this._model, this.getSelections(), this.getAutoClosedCharacters(), n)), i += e\n                                }\n                            } else this._executeEditOperation(Ci.u.typeWithoutInterceptors(this._prevEditOperationType, this.context.cursorConfig, this._model, this.getSelections(), t))\n                        }), e, i)\n                    }\n                    compositionType(e, t, i, n, o, s) {\n                        if (0 !== t.length || 0 !== i || 0 !== n) this._executeEdit((() => {\n                            this._executeEditOperation(Ci.u.compositionType(this._prevEditOperationType, this.context.cursorConfig, this._model, this.getSelections(), t, i, n, o))\n                        }), e, s);\n                        else if (0 !== o) {\n                            const t = this.getSelections().map((e => {\n                                const t = e.getPosition();\n                                return new v.Y(t.lineNumber, t.column + o, t.lineNumber, t.column + o)\n                            }));\n                            this.setSelections(e, s, t, 0)\n                        }\n                    }\n                    paste(e, t, i, n, o) {\n                        this._executeEdit((() => {\n                            this._executeEditOperation(Ci.u.paste(this.context.cursorConfig, this._model, this.getSelections(), t, i, n || []))\n                        }), e, o, 4)\n                    }\n                    cut(e, t) {\n                        this._executeEdit((() => {\n                            this._executeEditOperation(yi.A.cut(this.context.cursorConfig, this._model, this.getSelections()))\n                        }), e, t)\n                    }\n                    executeCommand(e, t, i) {\n                        this._executeEdit((() => {\n                            this._cursors.killSecondaryCursors(), this._executeEditOperation(new ae.Tp(0, [t], {\n                                shouldPushStackElementBefore: !1,\n                                shouldPushStackElementAfter: !1\n                            }))\n                        }), e, i)\n                    }\n                    executeCommands(e, t, i) {\n                        this._executeEdit((() => {\n                            this._executeEditOperation(new ae.Tp(0, t, {\n                                shouldPushStackElementBefore: !1,\n                                shouldPushStackElementAfter: !1\n                            }))\n                        }), e, i)\n                    }\n                }\n                Xi.MAX_CURSOR_COUNT = 1e4;\n                class Ji {\n                    static executeCommands(e, t, i) {\n                        const n = {\n                                model: e,\n                                selectionsBefore: t,\n                                trackedRanges: [],\n                                trackedRangesDirection: []\n                            },\n                            o = this._innerExecuteCommands(n, i);\n                        for (let e = 0, t = n.trackedRanges.length; e < t; e++) n.model._setTrackedRange(n.trackedRanges[e], null, 0);\n                        return o\n                    }\n                    static _innerExecuteCommands(e, t) {\n                        if (this._arrayIsEmpty(t)) return null;\n                        const i = this._getEditOperations(e, t);\n                        if (0 === i.operations.length) return null;\n                        const n = i.operations,\n                            o = this._getLoserCursorMap(n);\n                        if (o.hasOwnProperty(\"0\")) return console.warn(\"Ignoring commands\"), null;\n                        let s = [];\n                        for (let e = 0, t = n.length; e < t; e++) o.hasOwnProperty(n[e].identifier.major.toString()) || s.push(n[e]);\n                        i.hadTrackedEditOperation && s.length > 0 && (s[0]._isTracked = !0);\n                        let r = e.model.pushEditOperations(e.selectionsBefore, s, (i => {\n                            let n = [];\n                            for (let t = 0; t < e.selectionsBefore.length; t++) n[t] = [];\n                            for (const e of i) e.identifier && n[e.identifier.major].push(e);\n                            const o = (e, t) => e.identifier.minor - t.identifier.minor;\n                            let s = [];\n                            for (let i = 0; i < e.selectionsBefore.length; i++) n[i].length > 0 ? (n[i].sort(o), s[i] = t[i].computeCursorState(e.model, {\n                                getInverseEditOperations: () => n[i],\n                                getTrackedSelection: t => {\n                                    const i = parseInt(t, 10),\n                                        n = e.model._getTrackedRange(e.trackedRanges[i]);\n                                    return 0 === e.trackedRangesDirection[i] ? new v.Y(n.startLineNumber, n.startColumn, n.endLineNumber, n.endColumn) : new v.Y(n.endLineNumber, n.endColumn, n.startLineNumber, n.startColumn)\n                                }\n                            })) : s[i] = e.selectionsBefore[i];\n                            return s\n                        }));\n                        r || (r = e.selectionsBefore);\n                        let a = [];\n                        for (let e in o) o.hasOwnProperty(e) && a.push(parseInt(e, 10));\n                        a.sort(((e, t) => t - e));\n                        for (const e of a) r.splice(e, 1);\n                        return r\n                    }\n                    static _arrayIsEmpty(e) {\n                        for (let t = 0, i = e.length; t < i; t++)\n                            if (e[t]) return !1;\n                        return !0\n                    }\n                    static _getEditOperations(e, t) {\n                        let i = [],\n                            n = !1;\n                        for (let o = 0, s = t.length; o < s; o++) {\n                            const s = t[o];\n                            if (s) {\n                                const t = this._getEditOperationsFromCommand(e, o, s);\n                                i = i.concat(t.operations), n = n || t.hadTrackedEditOperation\n                            }\n                        }\n                        return {\n                            operations: i,\n                            hadTrackedEditOperation: n\n                        }\n                    }\n                    static _getEditOperationsFromCommand(e, t, i) {\n                        let n = [],\n                            o = 0;\n                        const s = (e, s, r = !1) => {\n                            re.e.isEmpty(e) && \"\" === s || n.push({\n                                identifier: {\n                                    major: t,\n                                    minor: o++\n                                },\n                                range: e,\n                                text: s,\n                                forceMoveMarkers: r,\n                                isAutoWhitespaceEdit: i.insertsAutoWhitespace\n                            })\n                        };\n                        let r = !1;\n                        const a = {\n                            addEditOperation: s,\n                            addTrackedEditOperation: (e, t, i) => {\n                                r = !0, s(e, t, i)\n                            },\n                            trackSelection: (t, i) => {\n                                const n = v.Y.liftSelection(t);\n                                let o;\n                                if (n.isEmpty())\n                                    if (\"boolean\" == typeof i) o = i ? 2 : 3;\n                                    else {\n                                        const t = e.model.getLineMaxColumn(n.startLineNumber);\n                                        o = n.startColumn === t ? 2 : 3\n                                    }\n                                else o = 1;\n                                const s = e.trackedRanges.length,\n                                    r = e.model._setTrackedRange(null, n, o);\n                                return e.trackedRanges[s] = r, e.trackedRangesDirection[s] = n.getDirection(), s.toString()\n                            }\n                        };\n                        try {\n                            i.getEditOperations(e.model, a)\n                        } catch (e) {\n                            return (0, d.dL)(e), {\n                                operations: [],\n                                hadTrackedEditOperation: !1\n                            }\n                        }\n                        return {\n                            operations: n,\n                            hadTrackedEditOperation: r\n                        }\n                    }\n                    static _getLoserCursorMap(e) {\n                        (e = e.slice(0)).sort(((e, t) => -re.e.compareRangesUsingEnds(e.range, t.range)));\n                        let t = {};\n                        for (let i = 1; i < e.length; i++) {\n                            const n = e[i - 1],\n                                o = e[i];\n                            if (re.e.getStartPosition(n.range).isBefore(re.e.getEndPosition(o.range))) {\n                                let s;\n                                s = n.identifier.major > o.identifier.major ? n.identifier.major : o.identifier.major, t[s.toString()] = !0;\n                                for (let t = 0; t < e.length; t++) e[t].identifier.major === s && (e.splice(t, 1), t < i && i--, t--);\n                                i > 0 && i--\n                            }\n                        }\n                        return t\n                    }\n                }\n                var en = i(30653),\n                    tn = i(96518),\n                    nn = i(29102),\n                    on = i(55713),\n                    sn = i(76633);\n                class rn {\n                    constructor() {\n                        this._hasPending = !1, this._inserts = [], this._changes = [], this._removes = []\n                    }\n                    insert(e) {\n                        this._hasPending = !0, this._inserts.push(e)\n                    }\n                    change(e) {\n                        this._hasPending = !0, this._changes.push(e)\n                    }\n                    remove(e) {\n                        this._hasPending = !0, this._removes.push(e)\n                    }\n                    mustCommit() {\n                        return this._hasPending\n                    }\n                    commit(e) {\n                        if (!this._hasPending) return;\n                        const t = this._inserts,\n                            i = this._changes,\n                            n = this._removes;\n                        this._hasPending = !1, this._inserts = [], this._changes = [], this._removes = [], e._commitPendingChanges(t, i, n)\n                    }\n                }\n                class an {\n                    constructor(e, t, i, n, o) {\n                        this.id = e, this.afterLineNumber = t, this.ordinal = i, this.height = n, this.minWidth = o, this.prefixSum = 0\n                    }\n                }\n                class ln {\n                    constructor(e, t, i, n) {\n                        this._instanceId = Te.PJ(++ln.INSTANCE_COUNT), this._pendingChanges = new rn, this._lastWhitespaceId = 0, this._arr = [], this._prefixSumValidIndex = -1, this._minWidth = -1, this._lineCount = e, this._lineHeight = t, this._paddingTop = i, this._paddingBottom = n\n                    }\n                    static findInsertionIndex(e, t, i) {\n                        let n = 0,\n                            o = e.length;\n                        for (; n < o;) {\n                            const s = n + o >>> 1;\n                            t === e[s].afterLineNumber ? i < e[s].ordinal ? o = s : n = s + 1 : t < e[s].afterLineNumber ? o = s : n = s + 1\n                        }\n                        return n\n                    }\n                    setLineHeight(e) {\n                        this._checkPendingChanges(), this._lineHeight = e\n                    }\n                    setPadding(e, t) {\n                        this._paddingTop = e, this._paddingBottom = t\n                    }\n                    onFlushed(e) {\n                        this._checkPendingChanges(), this._lineCount = e\n                    }\n                    changeWhitespace(e) {\n                        let t = !1;\n                        try {\n                            e({\n                                insertWhitespace: (e, i, n, o) => {\n                                    t = !0, e |= 0, i |= 0, n |= 0, o |= 0;\n                                    const s = this._instanceId + ++this._lastWhitespaceId;\n                                    return this._pendingChanges.insert(new an(s, e, i, n, o)), s\n                                },\n                                changeOneWhitespace: (e, i, n) => {\n                                    t = !0, i |= 0, n |= 0, this._pendingChanges.change({\n                                        id: e,\n                                        newAfterLineNumber: i,\n                                        newHeight: n\n                                    })\n                                },\n                                removeWhitespace: e => {\n                                    t = !0, this._pendingChanges.remove({\n                                        id: e\n                                    })\n                                }\n                            })\n                        } finally {\n                            this._pendingChanges.commit(this)\n                        }\n                        return t\n                    }\n                    _commitPendingChanges(e, t, i) {\n                        if ((e.length > 0 || i.length > 0) && (this._minWidth = -1), e.length + t.length + i.length <= 1) {\n                            for (const t of e) this._insertWhitespace(t);\n                            for (const e of t) this._changeOneWhitespace(e.id, e.newAfterLineNumber, e.newHeight);\n                            for (const e of i) {\n                                const t = this._findWhitespaceIndex(e.id); - 1 !== t && this._removeWhitespace(t)\n                            }\n                            return\n                        }\n                        const n = new Set;\n                        for (const e of i) n.add(e.id);\n                        const o = new Map;\n                        for (const e of t) o.set(e.id, e);\n                        const s = e => {\n                                let t = [];\n                                for (const i of e)\n                                    if (!n.has(i.id)) {\n                                        if (o.has(i.id)) {\n                                            const e = o.get(i.id);\n                                            i.afterLineNumber = e.newAfterLineNumber, i.height = e.newHeight\n                                        }\n                                        t.push(i)\n                                    } return t\n                            },\n                            r = s(this._arr).concat(s(e));\n                        r.sort(((e, t) => e.afterLineNumber === t.afterLineNumber ? e.ordinal - t.ordinal : e.afterLineNumber - t.afterLineNumber)), this._arr = r, this._prefixSumValidIndex = -1\n                    }\n                    _checkPendingChanges() {\n                        this._pendingChanges.mustCommit() && this._pendingChanges.commit(this)\n                    }\n                    _insertWhitespace(e) {\n                        const t = ln.findInsertionIndex(this._arr, e.afterLineNumber, e.ordinal);\n                        this._arr.splice(t, 0, e), this._prefixSumValidIndex = Math.min(this._prefixSumValidIndex, t - 1)\n                    }\n                    _findWhitespaceIndex(e) {\n                        const t = this._arr;\n                        for (let i = 0, n = t.length; i < n; i++)\n                            if (t[i].id === e) return i;\n                        return -1\n                    }\n                    _changeOneWhitespace(e, t, i) {\n                        const n = this._findWhitespaceIndex(e);\n                        if (-1 !== n && (this._arr[n].height !== i && (this._arr[n].height = i, this._prefixSumValidIndex = Math.min(this._prefixSumValidIndex, n - 1)), this._arr[n].afterLineNumber !== t)) {\n                            const e = this._arr[n];\n                            this._removeWhitespace(n), e.afterLineNumber = t, this._insertWhitespace(e)\n                        }\n                    }\n                    _removeWhitespace(e) {\n                        this._arr.splice(e, 1), this._prefixSumValidIndex = Math.min(this._prefixSumValidIndex, e - 1)\n                    }\n                    onLinesDeleted(e, t) {\n                        this._checkPendingChanges(), e |= 0, t |= 0, this._lineCount -= t - e + 1;\n                        for (let i = 0, n = this._arr.length; i < n; i++) {\n                            const n = this._arr[i].afterLineNumber;\n                            e <= n && n <= t ? this._arr[i].afterLineNumber = e - 1 : n > t && (this._arr[i].afterLineNumber -= t - e + 1)\n                        }\n                    }\n                    onLinesInserted(e, t) {\n                        this._checkPendingChanges(), e |= 0, t |= 0, this._lineCount += t - e + 1;\n                        for (let i = 0, n = this._arr.length; i < n; i++) {\n                            e <= this._arr[i].afterLineNumber && (this._arr[i].afterLineNumber += t - e + 1)\n                        }\n                    }\n                    getWhitespacesTotalHeight() {\n                        return this._checkPendingChanges(), 0 === this._arr.length ? 0 : this.getWhitespacesAccumulatedHeight(this._arr.length - 1)\n                    }\n                    getWhitespacesAccumulatedHeight(e) {\n                        this._checkPendingChanges(), e |= 0;\n                        let t = Math.max(0, this._prefixSumValidIndex + 1);\n                        0 === t && (this._arr[0].prefixSum = this._arr[0].height, t++);\n                        for (let i = t; i <= e; i++) this._arr[i].prefixSum = this._arr[i - 1].prefixSum + this._arr[i].height;\n                        return this._prefixSumValidIndex = Math.max(this._prefixSumValidIndex, e), this._arr[e].prefixSum\n                    }\n                    getLinesTotalHeight() {\n                        this._checkPendingChanges();\n                        return this._lineHeight * this._lineCount + this.getWhitespacesTotalHeight() + this._paddingTop + this._paddingBottom\n                    }\n                    getWhitespaceAccumulatedHeightBeforeLineNumber(e) {\n                        this._checkPendingChanges(), e |= 0;\n                        const t = this._findLastWhitespaceBeforeLineNumber(e);\n                        return -1 === t ? 0 : this.getWhitespacesAccumulatedHeight(t)\n                    }\n                    _findLastWhitespaceBeforeLineNumber(e) {\n                        e |= 0;\n                        const t = this._arr;\n                        let i = 0,\n                            n = t.length - 1;\n                        for (; i <= n;) {\n                            const o = i + ((n - i | 0) / 2 | 0) | 0;\n                            if (t[o].afterLineNumber < e) {\n                                if (o + 1 >= t.length || t[o + 1].afterLineNumber >= e) return o;\n                                i = o + 1 | 0\n                            } else n = o - 1 | 0\n                        }\n                        return -1\n                    }\n                    _findFirstWhitespaceAfterLineNumber(e) {\n                        e |= 0;\n                        const t = this._findLastWhitespaceBeforeLineNumber(e) + 1;\n                        return t < this._arr.length ? t : -1\n                    }\n                    getFirstWhitespaceIndexAfterLineNumber(e) {\n                        return this._checkPendingChanges(), e |= 0, this._findFirstWhitespaceAfterLineNumber(e)\n                    }\n                    getVerticalOffsetForLineNumber(e) {\n                        let t;\n                        this._checkPendingChanges(), t = (e |= 0) > 1 ? this._lineHeight * (e - 1) : 0;\n                        return t + this.getWhitespaceAccumulatedHeightBeforeLineNumber(e) + this._paddingTop\n                    }\n                    getWhitespaceMinWidth() {\n                        if (this._checkPendingChanges(), -1 === this._minWidth) {\n                            let e = 0;\n                            for (let t = 0, i = this._arr.length; t < i; t++) e = Math.max(e, this._arr[t].minWidth);\n                            this._minWidth = e\n                        }\n                        return this._minWidth\n                    }\n                    isAfterLines(e) {\n                        this._checkPendingChanges();\n                        return e > this.getLinesTotalHeight()\n                    }\n                    isInTopPadding(e) {\n                        return 0 !== this._paddingTop && (this._checkPendingChanges(), e < this._paddingTop)\n                    }\n                    isInBottomPadding(e) {\n                        if (0 === this._paddingBottom) return !1;\n                        this._checkPendingChanges();\n                        return e >= this.getLinesTotalHeight() - this._paddingBottom\n                    }\n                    getLineNumberAtOrAfterVerticalOffset(e) {\n                        if (this._checkPendingChanges(), (e |= 0) < 0) return 1;\n                        const t = 0 | this._lineCount,\n                            i = this._lineHeight;\n                        let n = 1,\n                            o = t;\n                        for (; n < o;) {\n                            const t = (n + o) / 2 | 0,\n                                s = 0 | this.getVerticalOffsetForLineNumber(t);\n                            if (e >= s + i) n = t + 1;\n                            else {\n                                if (e >= s) return t;\n                                o = t\n                            }\n                        }\n                        return n > t ? t : n\n                    }\n                    getLinesViewportData(e, t) {\n                        this._checkPendingChanges(), e |= 0, t |= 0;\n                        const i = this._lineHeight,\n                            n = 0 | this.getLineNumberAtOrAfterVerticalOffset(e),\n                            o = 0 | this.getVerticalOffsetForLineNumber(n);\n                        let s = 0 | this._lineCount,\n                            r = 0 | this.getFirstWhitespaceIndexAfterLineNumber(n);\n                        const a = 0 | this.getWhitespacesCount();\n                        let l, c; - 1 === r ? (r = a, c = s + 1, l = 0) : (c = 0 | this.getAfterLineNumberForWhitespaceIndex(r), l = 0 | this.getHeightForWhitespaceIndex(r));\n                        let d = o,\n                            h = d;\n                        const u = 5e5;\n                        let g = 0;\n                        o >= u && (g = Math.floor(o / u) * u, g = Math.floor(g / i) * i, h -= g);\n                        const p = [],\n                            f = e + (t - e) / 2;\n                        let m = -1;\n                        for (let e = n; e <= s; e++) {\n                            if (-1 === m) {\n                                (d <= f && f < d + i || d > f) && (m = e)\n                            }\n                            for (d += i, p[e - n] = h, h += i; c === e;) h += l, d += l, r++, r >= a ? c = s + 1 : (c = 0 | this.getAfterLineNumberForWhitespaceIndex(r), l = 0 | this.getHeightForWhitespaceIndex(r));\n                            if (d >= t) {\n                                s = e;\n                                break\n                            }\n                        } - 1 === m && (m = s);\n                        const v = 0 | this.getVerticalOffsetForLineNumber(s);\n                        let _ = n,\n                            b = s;\n                        return _ < b && o < e && _++, _ < b && v + i > t && b--, {\n                            bigNumbersDelta: g,\n                            startLineNumber: n,\n                            endLineNumber: s,\n                            relativeVerticalOffset: p,\n                            centeredLineNumber: m,\n                            completelyVisibleStartLineNumber: _,\n                            completelyVisibleEndLineNumber: b\n                        }\n                    }\n                    getVerticalOffsetForWhitespaceIndex(e) {\n                        this._checkPendingChanges(), e |= 0;\n                        const t = this.getAfterLineNumberForWhitespaceIndex(e);\n                        let i, n;\n                        return i = t >= 1 ? this._lineHeight * t : 0, n = e > 0 ? this.getWhitespacesAccumulatedHeight(e - 1) : 0, i + n + this._paddingTop\n                    }\n                    getWhitespaceIndexAtOrAfterVerticallOffset(e) {\n                        this._checkPendingChanges(), e |= 0;\n                        let t = 0,\n                            i = this.getWhitespacesCount() - 1;\n                        if (i < 0) return -1;\n                        if (e >= this.getVerticalOffsetForWhitespaceIndex(i) + this.getHeightForWhitespaceIndex(i)) return -1;\n                        for (; t < i;) {\n                            const n = Math.floor((t + i) / 2),\n                                o = this.getVerticalOffsetForWhitespaceIndex(n);\n                            if (e >= o + this.getHeightForWhitespaceIndex(n)) t = n + 1;\n                            else {\n                                if (e >= o) return n;\n                                i = n\n                            }\n                        }\n                        return t\n                    }\n                    getWhitespaceAtVerticalOffset(e) {\n                        this._checkPendingChanges(), e |= 0;\n                        const t = this.getWhitespaceIndexAtOrAfterVerticallOffset(e);\n                        if (t < 0) return null;\n                        if (t >= this.getWhitespacesCount()) return null;\n                        const i = this.getVerticalOffsetForWhitespaceIndex(t);\n                        if (i > e) return null;\n                        const n = this.getHeightForWhitespaceIndex(t);\n                        return {\n                            id: this.getIdForWhitespaceIndex(t),\n                            afterLineNumber: this.getAfterLineNumberForWhitespaceIndex(t),\n                            verticalOffset: i,\n                            height: n\n                        }\n                    }\n                    getWhitespaceViewportData(e, t) {\n                        this._checkPendingChanges(), e |= 0, t |= 0;\n                        const i = this.getWhitespaceIndexAtOrAfterVerticallOffset(e),\n                            n = this.getWhitespacesCount() - 1;\n                        if (i < 0) return [];\n                        let o = [];\n                        for (let e = i; e <= n; e++) {\n                            const i = this.getVerticalOffsetForWhitespaceIndex(e),\n                                n = this.getHeightForWhitespaceIndex(e);\n                            if (i >= t) break;\n                            o.push({\n                                id: this.getIdForWhitespaceIndex(e),\n                                afterLineNumber: this.getAfterLineNumberForWhitespaceIndex(e),\n                                verticalOffset: i,\n                                height: n\n                            })\n                        }\n                        return o\n                    }\n                    getWhitespaces() {\n                        return this._checkPendingChanges(), this._arr.slice(0)\n                    }\n                    getWhitespacesCount() {\n                        return this._checkPendingChanges(), this._arr.length\n                    }\n                    getIdForWhitespaceIndex(e) {\n                        return this._checkPendingChanges(), e |= 0, this._arr[e].id\n                    }\n                    getAfterLineNumberForWhitespaceIndex(e) {\n                        return this._checkPendingChanges(), e |= 0, this._arr[e].afterLineNumber\n                    }\n                    getHeightForWhitespaceIndex(e) {\n                        return this._checkPendingChanges(), e |= 0, this._arr[e].height\n                    }\n                }\n                ln.INSTANCE_COUNT = 0;\n                class cn {\n                    constructor(e, t, i, n) {\n                        (e |= 0) < 0 && (e = 0), (t |= 0) < 0 && (t = 0), (i |= 0) < 0 && (i = 0), (n |= 0) < 0 && (n = 0), this.width = e, this.contentWidth = t, this.scrollWidth = Math.max(e, t), this.height = i, this.contentHeight = n, this.scrollHeight = Math.max(i, n)\n                    }\n                    equals(e) {\n                        return this.width === e.width && this.contentWidth === e.contentWidth && this.height === e.height && this.contentHeight === e.contentHeight\n                    }\n                }\n                class dn extends u.JT {\n                    constructor(e, t) {\n                        super(), this._onDidContentSizeChange = this._register(new h.Q5), this.onDidContentSizeChange = this._onDidContentSizeChange.event, this._dimensions = new cn(0, 0, 0, 0), this._scrollable = this._register(new sn.Rm(e, t)), this.onDidScroll = this._scrollable.onScroll\n                    }\n                    getScrollable() {\n                        return this._scrollable\n                    }\n                    setSmoothScrollDuration(e) {\n                        this._scrollable.setSmoothScrollDuration(e)\n                    }\n                    validateScrollPosition(e) {\n                        return this._scrollable.validateScrollPosition(e)\n                    }\n                    getScrollDimensions() {\n                        return this._dimensions\n                    }\n                    setScrollDimensions(e) {\n                        if (this._dimensions.equals(e)) return;\n                        const t = this._dimensions;\n                        this._dimensions = e, this._scrollable.setScrollDimensions({\n                            width: e.width,\n                            scrollWidth: e.scrollWidth,\n                            height: e.height,\n                            scrollHeight: e.scrollHeight\n                        }, !0);\n                        const i = t.contentWidth !== e.contentWidth,\n                            n = t.contentHeight !== e.contentHeight;\n                        (i || n) && this._onDidContentSizeChange.fire(new Ui(t.contentWidth, t.contentHeight, e.contentWidth, e.contentHeight))\n                    }\n                    getFutureScrollPosition() {\n                        return this._scrollable.getFutureScrollPosition()\n                    }\n                    getCurrentScrollPosition() {\n                        return this._scrollable.getCurrentScrollPosition()\n                    }\n                    setScrollPositionNow(e) {\n                        this._scrollable.setScrollPositionNow(e)\n                    }\n                    setScrollPositionSmooth(e) {\n                        this._scrollable.setScrollPositionSmooth(e)\n                    }\n                }\n                class hn extends u.JT {\n                    constructor(e, t, i) {\n                        super(), this._configuration = e;\n                        const n = this._configuration.options,\n                            o = n.get(129),\n                            s = n.get(74);\n                        this._linesLayout = new ln(t, n.get(58), s.top, s.bottom), this._scrollable = this._register(new dn(0, i)), this._configureSmoothScrollDuration(), this._scrollable.setScrollDimensions(new cn(o.contentWidth, 0, o.height, 0)), this.onDidScroll = this._scrollable.onDidScroll, this.onDidContentSizeChange = this._scrollable.onDidContentSizeChange, this._updateHeight()\n                    }\n                    dispose() {\n                        super.dispose()\n                    }\n                    getScrollable() {\n                        return this._scrollable.getScrollable()\n                    }\n                    onHeightMaybeChanged() {\n                        this._updateHeight()\n                    }\n                    _configureSmoothScrollDuration() {\n                        this._scrollable.setSmoothScrollDuration(this._configuration.options.get(102) ? 125 : 0)\n                    }\n                    onConfigurationChanged(e) {\n                        const t = this._configuration.options;\n                        if (e.hasChanged(58) && this._linesLayout.setLineHeight(t.get(58)), e.hasChanged(74)) {\n                            const e = t.get(74);\n                            this._linesLayout.setPadding(e.top, e.bottom)\n                        }\n                        if (e.hasChanged(129)) {\n                            const e = t.get(129),\n                                i = e.contentWidth,\n                                n = e.height,\n                                o = this._scrollable.getScrollDimensions(),\n                                s = o.contentWidth;\n                            this._scrollable.setScrollDimensions(new cn(i, o.contentWidth, n, this._getContentHeight(i, n, s)))\n                        } else this._updateHeight();\n                        e.hasChanged(102) && this._configureSmoothScrollDuration()\n                    }\n                    onFlushed(e) {\n                        this._linesLayout.onFlushed(e)\n                    }\n                    onLinesDeleted(e, t) {\n                        this._linesLayout.onLinesDeleted(e, t)\n                    }\n                    onLinesInserted(e, t) {\n                        this._linesLayout.onLinesInserted(e, t)\n                    }\n                    _getHorizontalScrollbarHeight(e, t) {\n                        const i = this._configuration.options.get(91);\n                        return 2 === i.horizontal || e >= t ? 0 : i.horizontalScrollbarSize\n                    }\n                    _getContentHeight(e, t, i) {\n                        const n = this._configuration.options;\n                        let o = this._linesLayout.getLinesTotalHeight();\n                        return n.get(93) ? o += Math.max(0, t - n.get(58) - n.get(74).bottom) : o += this._getHorizontalScrollbarHeight(e, i), o\n                    }\n                    _updateHeight() {\n                        const e = this._scrollable.getScrollDimensions(),\n                            t = e.width,\n                            i = e.height,\n                            n = e.contentWidth;\n                        this._scrollable.setScrollDimensions(new cn(t, e.contentWidth, i, this._getContentHeight(t, i, n)))\n                    }\n                    getCurrentViewport() {\n                        const e = this._scrollable.getScrollDimensions(),\n                            t = this._scrollable.getCurrentScrollPosition();\n                        return new Mt.l_(t.scrollTop, t.scrollLeft, e.width, e.height)\n                    }\n                    getFutureViewport() {\n                        const e = this._scrollable.getScrollDimensions(),\n                            t = this._scrollable.getFutureScrollPosition();\n                        return new Mt.l_(t.scrollTop, t.scrollLeft, e.width, e.height)\n                    }\n                    _computeContentWidth(e) {\n                        const t = this._configuration.options,\n                            i = t.get(130),\n                            n = t.get(43);\n                        if (i.isViewportWrapping) {\n                            const i = t.get(129),\n                                o = t.get(64);\n                            return e > i.contentWidth + n.typicalHalfwidthCharacterWidth && o.enabled && \"right\" === o.side ? e + i.verticalScrollbarWidth : e\n                        } {\n                            const i = t.get(92) * n.typicalHalfwidthCharacterWidth,\n                                o = this._linesLayout.getWhitespaceMinWidth();\n                            return Math.max(e + i, o)\n                        }\n                    }\n                    setMaxLineWidth(e) {\n                        const t = this._scrollable.getScrollDimensions();\n                        this._scrollable.setScrollDimensions(new cn(t.width, this._computeContentWidth(e), t.height, t.contentHeight)), this._updateHeight()\n                    }\n                    saveState() {\n                        const e = this._scrollable.getFutureScrollPosition();\n                        let t = e.scrollTop,\n                            i = this._linesLayout.getLineNumberAtOrAfterVerticalOffset(t);\n                        return {\n                            scrollTop: t,\n                            scrollTopWithoutViewZones: t - this._linesLayout.getWhitespaceAccumulatedHeightBeforeLineNumber(i),\n                            scrollLeft: e.scrollLeft\n                        }\n                    }\n                    changeWhitespace(e) {\n                        const t = this._linesLayout.changeWhitespace(e);\n                        return t && this.onHeightMaybeChanged(), t\n                    }\n                    getVerticalOffsetForLineNumber(e) {\n                        return this._linesLayout.getVerticalOffsetForLineNumber(e)\n                    }\n                    isAfterLines(e) {\n                        return this._linesLayout.isAfterLines(e)\n                    }\n                    isInTopPadding(e) {\n                        return this._linesLayout.isInTopPadding(e)\n                    }\n                    isInBottomPadding(e) {\n                        return this._linesLayout.isInBottomPadding(e)\n                    }\n                    getLineNumberAtVerticalOffset(e) {\n                        return this._linesLayout.getLineNumberAtOrAfterVerticalOffset(e)\n                    }\n                    getWhitespaceAtVerticalOffset(e) {\n                        return this._linesLayout.getWhitespaceAtVerticalOffset(e)\n                    }\n                    getLinesViewportData() {\n                        const e = this.getCurrentViewport();\n                        return this._linesLayout.getLinesViewportData(e.top, e.top + e.height)\n                    }\n                    getLinesViewportDataAtScrollTop(e) {\n                        const t = this._scrollable.getScrollDimensions();\n                        return e + t.height > t.scrollHeight && (e = t.scrollHeight - t.height), e < 0 && (e = 0), this._linesLayout.getLinesViewportData(e, e + t.height)\n                    }\n                    getWhitespaceViewportData() {\n                        const e = this.getCurrentViewport();\n                        return this._linesLayout.getWhitespaceViewportData(e.top, e.top + e.height)\n                    }\n                    getWhitespaces() {\n                        return this._linesLayout.getWhitespaces()\n                    }\n                    getContentWidth() {\n                        return this._scrollable.getScrollDimensions().contentWidth\n                    }\n                    getScrollWidth() {\n                        return this._scrollable.getScrollDimensions().scrollWidth\n                    }\n                    getContentHeight() {\n                        return this._scrollable.getScrollDimensions().contentHeight\n                    }\n                    getScrollHeight() {\n                        return this._scrollable.getScrollDimensions().scrollHeight\n                    }\n                    getCurrentScrollLeft() {\n                        return this._scrollable.getCurrentScrollPosition().scrollLeft\n                    }\n                    getCurrentScrollTop() {\n                        return this._scrollable.getCurrentScrollPosition().scrollTop\n                    }\n                    validateScrollPosition(e) {\n                        return this._scrollable.validateScrollPosition(e)\n                    }\n                    setScrollPosition(e, t) {\n                        1 === t ? this._scrollable.setScrollPositionNow(e) : this._scrollable.setScrollPositionSmooth(e)\n                    }\n                    deltaScrollNow(e, t) {\n                        const i = this._scrollable.getCurrentScrollPosition();\n                        this._scrollable.setScrollPositionNow({\n                            scrollLeft: i.scrollLeft + e,\n                            scrollTop: i.scrollTop + t\n                        })\n                    }\n                }\n                var un = i(78411),\n                    gn = i(3544);\n                class pn {\n                    constructor(e) {\n                        this._lines = e\n                    }\n                    convertViewPositionToModelPosition(e) {\n                        return this._lines.convertViewPositionToModelPosition(e.lineNumber, e.column)\n                    }\n                    convertViewRangeToModelRange(e) {\n                        return this._lines.convertViewRangeToModelRange(e)\n                    }\n                    validateViewPosition(e, t) {\n                        return this._lines.validateViewPosition(e.lineNumber, e.column, t)\n                    }\n                    validateViewRange(e, t) {\n                        return this._lines.validateViewRange(e, t)\n                    }\n                    convertModelPositionToViewPosition(e, t) {\n                        return this._lines.convertModelPositionToViewPosition(e.lineNumber, e.column, t)\n                    }\n                    convertModelRangeToViewRange(e, t) {\n                        return this._lines.convertModelRangeToViewRange(e, t)\n                    }\n                    modelPositionIsVisible(e) {\n                        return this._lines.modelPositionIsVisible(e.lineNumber, e.column)\n                    }\n                    getModelLineViewLineCount(e) {\n                        return this._lines.getModelLineViewLineCount(e)\n                    }\n                    getViewLineNumberOfModelPosition(e, t) {\n                        return this._lines.getViewLineNumberOfModelPosition(e, t)\n                    }\n                }\n                class fn {\n                    constructor(e) {\n                        this._counts = e, this._isValid = !1, this._validEndIndex = -1, this._modelToView = [], this._viewToModel = []\n                    }\n                    _invalidate(e) {\n                        this._isValid = !1, this._validEndIndex = Math.min(this._validEndIndex, e - 1)\n                    }\n                    _ensureValid() {\n                        if (!this._isValid) {\n                            for (let e = this._validEndIndex + 1, t = this._counts.length; e < t; e++) {\n                                const t = this._counts[e],\n                                    i = e > 0 ? this._modelToView[e - 1] : 0;\n                                this._modelToView[e] = i + t;\n                                for (let n = 0; n < t; n++) this._viewToModel[i + n] = e\n                            }\n                            this._modelToView.length = this._counts.length, this._viewToModel.length = this._modelToView[this._modelToView.length - 1], this._isValid = !0, this._validEndIndex = this._counts.length - 1\n                        }\n                    }\n                    changeValue(e, t) {\n                        this._counts[e] !== t && (this._counts[e] = t, this._invalidate(e))\n                    }\n                    removeValues(e, t) {\n                        this._counts.splice(e, t), this._invalidate(e)\n                    }\n                    insertValues(e, t) {\n                        this._counts = rt.Zv(this._counts, e, t), this._invalidate(e)\n                    }\n                    getTotalValue() {\n                        return this._ensureValid(), this._viewToModel.length\n                    }\n                    getAccumulatedValue(e) {\n                        return this._ensureValid(), this._modelToView[e]\n                    }\n                    getIndexOf(e) {\n                        this._ensureValid();\n                        const t = this._viewToModel[e],\n                            i = t > 0 ? this._modelToView[t - 1] : 0;\n                        return new gn.T(t, e - i)\n                    }\n                }\n                class mn {\n                    constructor(e, t, i, n, o, s, r, a, l) {\n                        this._editorId = e, this.model = t, this._validModelVersionId = -1, this._domLineBreaksComputerFactory = i, this._monospaceLineBreaksComputerFactory = n, this.fontInfo = o, this.tabSize = s, this.wrappingStrategy = r, this.wrappingColumn = a, this.wrappingIndent = l, this._constructLines(!0, null)\n                    }\n                    dispose() {\n                        this.hiddenAreasIds = this.model.deltaDecorations(this.hiddenAreasIds, [])\n                    }\n                    createCoordinatesConverter() {\n                        return new pn(this)\n                    }\n                    _constructLines(e, t) {\n                        this.lines = [], e && (this.hiddenAreasIds = []);\n                        const i = this.model.getLinesContent(),\n                            n = this.model.getInjectedTextDecorations(this._editorId),\n                            o = i.length,\n                            s = this.createLineBreaksComputer(),\n                            r = new rt.H9(xi.gk.fromDecorations(n));\n                        for (let e = 0; e < o; e++) {\n                            const n = r.takeWhile((t => t.lineNumber === e + 1));\n                            s.addRequest(i[e], n, t ? t[e] : null)\n                        }\n                        const a = s.finalize();\n                        let l = [],\n                            c = this.hiddenAreasIds.map((e => this.model.getDecorationRange(e))).sort(re.e.compareRangesUsingStarts),\n                            d = 1,\n                            h = 0,\n                            u = -1,\n                            g = u + 1 < c.length ? h + 1 : o + 2;\n                        for (let e = 0; e < o; e++) {\n                            let t = e + 1;\n                            t === g && (u++, d = c[u].startLineNumber, h = c[u].endLineNumber, g = u + 1 < c.length ? h + 1 : o + 2);\n                            let i = t >= d && t <= h,\n                                n = kn(a[e], !i);\n                            l[e] = n.getViewLineCount(), this.lines[e] = n\n                        }\n                        this._validModelVersionId = this.model.getVersionId(), this.prefixSumComputer = new fn(l)\n                    }\n                    getHiddenAreas() {\n                        return this.hiddenAreasIds.map((e => this.model.getDecorationRange(e)))\n                    }\n                    _reduceRanges(e) {\n                        if (0 === e.length) return [];\n                        let t = e.map((e => this.model.validateRange(e))).sort(re.e.compareRangesUsingStarts),\n                            i = [],\n                            n = t[0].startLineNumber,\n                            o = t[0].endLineNumber;\n                        for (let e = 1, s = t.length; e < s; e++) {\n                            let s = t[e];\n                            s.startLineNumber > o + 1 ? (i.push(new re.e(n, 1, o, 1)), n = s.startLineNumber, o = s.endLineNumber) : s.endLineNumber > o && (o = s.endLineNumber)\n                        }\n                        return i.push(new re.e(n, 1, o, 1)), i\n                    }\n                    setHiddenAreas(e) {\n                        let t = this._reduceRanges(e),\n                            i = this.hiddenAreasIds.map((e => this.model.getDecorationRange(e))).sort(re.e.compareRangesUsingStarts);\n                        if (t.length === i.length) {\n                            let e = !1;\n                            for (let n = 0; n < t.length; n++)\n                                if (!t[n].equalsRange(i[n])) {\n                                    e = !0;\n                                    break\n                                } if (!e) return !1\n                        }\n                        let n = [];\n                        for (const e of t) n.push({\n                            range: e,\n                            options: bt.qx.EMPTY\n                        });\n                        this.hiddenAreasIds = this.model.deltaDecorations(this.hiddenAreasIds, n);\n                        let o = t,\n                            s = 1,\n                            r = 0,\n                            a = -1,\n                            l = a + 1 < o.length ? r + 1 : this.lines.length + 2,\n                            c = !1;\n                        for (let e = 0; e < this.lines.length; e++) {\n                            let t = e + 1;\n                            t === l && (a++, s = o[a].startLineNumber, r = o[a].endLineNumber, l = a + 1 < o.length ? r + 1 : this.lines.length + 2);\n                            let i = !1;\n                            if (t >= s && t <= r ? this.lines[e].isVisible() && (this.lines[e] = this.lines[e].setVisible(!1), i = !0) : (c = !0, this.lines[e].isVisible() || (this.lines[e] = this.lines[e].setVisible(!0), i = !0)), i) {\n                                let t = this.lines[e].getViewLineCount();\n                                this.prefixSumComputer.changeValue(e, t)\n                            }\n                        }\n                        return c || this.setHiddenAreas([]), !0\n                    }\n                    modelPositionIsVisible(e, t) {\n                        return !(e < 1 || e > this.lines.length) && this.lines[e - 1].isVisible()\n                    }\n                    getModelLineViewLineCount(e) {\n                        return e < 1 || e > this.lines.length ? 1 : this.lines[e - 1].getViewLineCount()\n                    }\n                    setTabSize(e) {\n                        return this.tabSize !== e && (this.tabSize = e, this._constructLines(!1, null), !0)\n                    }\n                    setWrappingSettings(e, t, i, n) {\n                        const o = this.fontInfo.equals(e),\n                            s = this.wrappingStrategy === t,\n                            r = this.wrappingColumn === i,\n                            a = this.wrappingIndent === n;\n                        if (o && s && r && a) return !1;\n                        const l = o && s && !r && a;\n                        this.fontInfo = e, this.wrappingStrategy = t, this.wrappingColumn = i, this.wrappingIndent = n;\n                        let c = null;\n                        if (l) {\n                            c = [];\n                            for (let e = 0, t = this.lines.length; e < t; e++) c[e] = this.lines[e].getLineBreakData()\n                        }\n                        return this._constructLines(!1, c), !0\n                    }\n                    createLineBreaksComputer() {\n                        return (\"advanced\" === this.wrappingStrategy ? this._domLineBreaksComputerFactory : this._monospaceLineBreaksComputerFactory).createLineBreaksComputer(this.fontInfo, this.tabSize, this.wrappingColumn, this.wrappingIndent)\n                    }\n                    onModelFlushed() {\n                        this._constructLines(!0, null)\n                    }\n                    onModelLinesDeleted(e, t, i) {\n                        if (!e || e <= this._validModelVersionId) return null;\n                        let n = 1 === t ? 1 : this.prefixSumComputer.getAccumulatedValue(t - 2) + 1,\n                            o = this.prefixSumComputer.getAccumulatedValue(i - 1);\n                        return this.lines.splice(t - 1, i - t + 1), this.prefixSumComputer.removeValues(t - 1, i - t + 1), new Oi(n, o)\n                    }\n                    onModelLinesInserted(e, t, i, n) {\n                        if (!e || e <= this._validModelVersionId) return null;\n                        const o = t > 2 && !this.lines[t - 2].isVisible();\n                        let s = 1 === t ? 1 : this.prefixSumComputer.getAccumulatedValue(t - 2) + 1,\n                            r = 0,\n                            a = [],\n                            l = [];\n                        for (let e = 0, t = n.length; e < t; e++) {\n                            let t = kn(n[e], !o);\n                            a.push(t);\n                            let i = t.getViewLineCount();\n                            r += i, l[e] = i\n                        }\n                        return this.lines = this.lines.slice(0, t - 1).concat(a).concat(this.lines.slice(t - 1)), this.prefixSumComputer.insertValues(t - 1, l), new Pi(s, s + r - 1)\n                    }\n                    onModelLineChanged(e, t, i) {\n                        if (null !== e && e <= this._validModelVersionId) return [!1, null, null, null];\n                        let n = t - 1,\n                            o = this.lines[n].getViewLineCount(),\n                            s = kn(i, this.lines[n].isVisible());\n                        this.lines[n] = s;\n                        let r = this.lines[n].getViewLineCount(),\n                            a = !1,\n                            l = 0,\n                            c = -1,\n                            d = 0,\n                            h = -1,\n                            u = 0,\n                            g = -1;\n                        o > r ? (l = 1 === t ? 1 : this.prefixSumComputer.getAccumulatedValue(t - 2) + 1, c = l + r - 1, u = c + 1, g = u + (o - r) - 1, a = !0) : o < r ? (l = 1 === t ? 1 : this.prefixSumComputer.getAccumulatedValue(t - 2) + 1, c = l + o - 1, d = c + 1, h = d + (r - o) - 1, a = !0) : (l = 1 === t ? 1 : this.prefixSumComputer.getAccumulatedValue(t - 2) + 1, c = l + r - 1), this.prefixSumComputer.changeValue(n, r);\n                        return [a, l <= c ? new Ai(l, c) : null, d <= h ? new Pi(d, h) : null, u <= g ? new Oi(u, g) : null]\n                    }\n                    acceptVersionId(e) {\n                        this._validModelVersionId = e, 1 !== this.lines.length || this.lines[0].isVisible() || this.setHiddenAreas([])\n                    }\n                    getViewLineCount() {\n                        return this.prefixSumComputer.getTotalValue()\n                    }\n                    _toValidViewLineNumber(e) {\n                        if (e < 1) return 1;\n                        const t = this.getViewLineCount();\n                        return e > t ? t : 0 | e\n                    }\n                    getActiveIndentGuide(e, t, i) {\n                        e = this._toValidViewLineNumber(e), t = this._toValidViewLineNumber(t), i = this._toValidViewLineNumber(i);\n                        const n = this.convertViewPositionToModelPosition(e, this.getViewLineMinColumn(e)),\n                            o = this.convertViewPositionToModelPosition(t, this.getViewLineMinColumn(t)),\n                            s = this.convertViewPositionToModelPosition(i, this.getViewLineMinColumn(i)),\n                            r = this.model.getActiveIndentGuide(n.lineNumber, o.lineNumber, s.lineNumber),\n                            a = this.convertModelPositionToViewPosition(r.startLineNumber, 1),\n                            l = this.convertModelPositionToViewPosition(r.endLineNumber, this.model.getLineMaxColumn(r.endLineNumber));\n                        return {\n                            startLineNumber: a.lineNumber,\n                            endLineNumber: l.lineNumber,\n                            indent: r.indent\n                        }\n                    }\n                    getViewLineInfo(e) {\n                        e = this._toValidViewLineNumber(e);\n                        let t = this.prefixSumComputer.getIndexOf(e - 1),\n                            i = t.index,\n                            n = t.remainder;\n                        return new vn(i + 1, n)\n                    }\n                    getMinColumnOfViewLine(e) {\n                        return this.lines[e.modelLineNumber - 1].getViewLineMinColumn(this.model, e.modelLineNumber, e.modelLineWrappedLineIdx)\n                    }\n                    getModelStartPositionOfViewLine(e) {\n                        const t = this.lines[e.modelLineNumber - 1],\n                            i = t.getViewLineMinColumn(this.model, e.modelLineNumber, e.modelLineWrappedLineIdx),\n                            n = t.getModelColumnOfViewPosition(e.modelLineWrappedLineIdx, i);\n                        return new se.L(e.modelLineNumber, n)\n                    }\n                    getModelEndPositionOfViewLine(e) {\n                        const t = this.lines[e.modelLineNumber - 1],\n                            i = t.getViewLineMaxColumn(this.model, e.modelLineNumber, e.modelLineWrappedLineIdx),\n                            n = t.getModelColumnOfViewPosition(e.modelLineWrappedLineIdx, i);\n                        return new se.L(e.modelLineNumber, n)\n                    }\n                    getViewLineInfosGroupedByModelRanges(e, t) {\n                        const i = this.getViewLineInfo(e),\n                            n = this.getViewLineInfo(t),\n                            o = new Array;\n                        let s = this.getModelStartPositionOfViewLine(i),\n                            r = new Array;\n                        for (let e = i.modelLineNumber; e <= n.modelLineNumber; e++) {\n                            const t = this.lines[e - 1];\n                            if (t.isVisible()) {\n                                let o = e === i.modelLineNumber ? i.modelLineWrappedLineIdx : 0,\n                                    s = e === n.modelLineNumber ? n.modelLineWrappedLineIdx + 1 : t.getViewLineCount();\n                                for (let t = o; t < s; t++) r.push(new vn(e, t))\n                            }\n                            if (!t.isVisible() && s) {\n                                const t = new se.L(e - 1, this.model.getLineMaxColumn(e - 1) + 1),\n                                    i = re.e.fromPositions(s, t);\n                                o.push(new _n(i, r)), r = [], s = null\n                            } else t.isVisible() && !s && (s = new se.L(e, 1))\n                        }\n                        if (s) {\n                            const e = re.e.fromPositions(s, this.getModelEndPositionOfViewLine(n));\n                            o.push(new _n(e, r))\n                        }\n                        return o\n                    }\n                    getViewLinesBracketGuides(e, t, i, n) {\n                        const o = i ? this.convertViewPositionToModelPosition(i.lineNumber, i.column) : null,\n                            s = [];\n                        for (const i of this.getViewLineInfosGroupedByModelRanges(e, t)) {\n                            const e = i.modelRange.startLineNumber,\n                                t = this.model.getLinesBracketGuides(e, i.modelRange.endLineNumber, o, n);\n                            for (const n of i.viewLines)\n                                if (n.isWrappedLineContinuation && 1 === this.getMinColumnOfViewLine(n)) s.push([]);\n                                else {\n                                    let i = t[n.modelLineNumber - e];\n                                    i = i.map((e => e.horizontalLine ? new _t.UO(e.visibleColumn, e.className, new _t.vW(e.horizontalLine.top, this.convertModelPositionToViewPosition(n.modelLineNumber, e.horizontalLine.endColumn).column)) : e)), s.push(i)\n                                }\n                        }\n                        return s\n                    }\n                    getViewLinesIndentGuides(e, t) {\n                        e = this._toValidViewLineNumber(e), t = this._toValidViewLineNumber(t);\n                        const i = this.convertViewPositionToModelPosition(e, this.getViewLineMinColumn(e)),\n                            n = this.convertViewPositionToModelPosition(t, this.getViewLineMaxColumn(t));\n                        let o = [],\n                            s = [],\n                            r = [];\n                        const a = i.lineNumber - 1,\n                            l = n.lineNumber - 1;\n                        let c = null;\n                        for (let e = a; e <= l; e++) {\n                            const t = this.lines[e];\n                            if (t.isVisible()) {\n                                let n = t.getViewLineNumberOfModelPosition(0, e === a ? i.column : 1),\n                                    o = t.getViewLineNumberOfModelPosition(0, this.model.getLineMaxColumn(e + 1)),\n                                    l = o - n + 1,\n                                    d = 0;\n                                l > 1 && 1 === t.getViewLineMinColumn(this.model, e + 1, o) && (d = 0 === n ? 1 : 2), s.push(l), r.push(d), null === c && (c = new se.L(e + 1, 0))\n                            } else null !== c && (o = o.concat(this.model.getLinesIndentGuides(c.lineNumber, e)), c = null)\n                        }\n                        null !== c && (o = o.concat(this.model.getLinesIndentGuides(c.lineNumber, n.lineNumber)), c = null);\n                        const d = t - e + 1;\n                        let h = new Array(d),\n                            u = 0;\n                        for (let e = 0, t = o.length; e < t; e++) {\n                            let t, i = o[e],\n                                n = Math.min(d - u, s[e]),\n                                a = r[e];\n                            t = 2 === a ? 0 : 1 === a ? 1 : n;\n                            for (let e = 0; e < n; e++) e === t && (i = 0), h[u++] = i\n                        }\n                        return h\n                    }\n                    getViewLineContent(e) {\n                        e = this._toValidViewLineNumber(e);\n                        let t = this.prefixSumComputer.getIndexOf(e - 1),\n                            i = t.index,\n                            n = t.remainder;\n                        return this.lines[i].getViewLineContent(this.model, i + 1, n)\n                    }\n                    getViewLineLength(e) {\n                        e = this._toValidViewLineNumber(e);\n                        let t = this.prefixSumComputer.getIndexOf(e - 1),\n                            i = t.index,\n                            n = t.remainder;\n                        return this.lines[i].getViewLineLength(this.model, i + 1, n)\n                    }\n                    getViewLineMinColumn(e) {\n                        e = this._toValidViewLineNumber(e);\n                        let t = this.prefixSumComputer.getIndexOf(e - 1),\n                            i = t.index,\n                            n = t.remainder;\n                        return this.lines[i].getViewLineMinColumn(this.model, i + 1, n)\n                    }\n                    getViewLineMaxColumn(e) {\n                        e = this._toValidViewLineNumber(e);\n                        let t = this.prefixSumComputer.getIndexOf(e - 1),\n                            i = t.index,\n                            n = t.remainder;\n                        return this.lines[i].getViewLineMaxColumn(this.model, i + 1, n)\n                    }\n                    getViewLineData(e) {\n                        e = this._toValidViewLineNumber(e);\n                        let t = this.prefixSumComputer.getIndexOf(e - 1),\n                            i = t.index,\n                            n = t.remainder;\n                        return this.lines[i].getViewLineData(this.model, i + 1, n)\n                    }\n                    getViewLinesData(e, t, i) {\n                        e = this._toValidViewLineNumber(e), t = this._toValidViewLineNumber(t);\n                        let n = this.prefixSumComputer.getIndexOf(e - 1),\n                            o = e,\n                            s = n.index,\n                            r = n.remainder,\n                            a = [];\n                        for (let n = s, l = this.model.getLineCount(); n < l; n++) {\n                            let l = this.lines[n];\n                            if (!l.isVisible()) continue;\n                            let c = n === s ? r : 0,\n                                d = l.getViewLineCount() - c,\n                                h = !1;\n                            o + d > t && (h = !0, d = t - o + 1);\n                            let u = c + d;\n                            if (l.getViewLinesData(this.model, n + 1, c, u, o - e, i, a), o += d, h) break\n                        }\n                        return a\n                    }\n                    validateViewPosition(e, t, i) {\n                        e = this._toValidViewLineNumber(e);\n                        let n = this.prefixSumComputer.getIndexOf(e - 1),\n                            o = n.index,\n                            s = n.remainder,\n                            r = this.lines[o],\n                            a = r.getViewLineMinColumn(this.model, o + 1, s),\n                            l = r.getViewLineMaxColumn(this.model, o + 1, s);\n                        t < a && (t = a), t > l && (t = l);\n                        let c = r.getModelColumnOfViewPosition(s, t);\n                        return this.model.validatePosition(new se.L(o + 1, c)).equals(i) ? new se.L(e, t) : this.convertModelPositionToViewPosition(i.lineNumber, i.column)\n                    }\n                    validateViewRange(e, t) {\n                        const i = this.validateViewPosition(e.startLineNumber, e.startColumn, t.getStartPosition()),\n                            n = this.validateViewPosition(e.endLineNumber, e.endColumn, t.getEndPosition());\n                        return new re.e(i.lineNumber, i.column, n.lineNumber, n.column)\n                    }\n                    convertViewPositionToModelPosition(e, t) {\n                        e = this._toValidViewLineNumber(e);\n                        let i = this.prefixSumComputer.getIndexOf(e - 1),\n                            n = i.index,\n                            o = i.remainder,\n                            s = this.lines[n].getModelColumnOfViewPosition(o, t);\n                        return this.model.validatePosition(new se.L(n + 1, s))\n                    }\n                    convertViewRangeToModelRange(e) {\n                        const t = this.convertViewPositionToModelPosition(e.startLineNumber, e.startColumn),\n                            i = this.convertViewPositionToModelPosition(e.endLineNumber, e.endColumn);\n                        return new re.e(t.lineNumber, t.column, i.lineNumber, i.column)\n                    }\n                    convertModelPositionToViewPosition(e, t, i = 2) {\n                        const n = this.model.validatePosition(new se.L(e, t)),\n                            o = n.lineNumber,\n                            s = n.column;\n                        let r = o - 1,\n                            a = !1;\n                        for (; r > 0 && !this.lines[r].isVisible();) r--, a = !0;\n                        if (0 === r && !this.lines[r].isVisible()) return new se.L(1, 1);\n                        const l = 1 + (0 === r ? 0 : this.prefixSumComputer.getAccumulatedValue(r - 1));\n                        let c;\n                        return c = a ? this.lines[r].getViewPositionOfModelPosition(l, this.model.getLineMaxColumn(r + 1), i) : this.lines[o - 1].getViewPositionOfModelPosition(l, s, i), c\n                    }\n                    convertModelRangeToViewRange(e, t = 0) {\n                        if (e.isEmpty()) {\n                            const i = this.convertModelPositionToViewPosition(e.startLineNumber, e.startColumn, t);\n                            return re.e.fromPositions(i)\n                        } {\n                            const t = this.convertModelPositionToViewPosition(e.startLineNumber, e.startColumn, 1),\n                                i = this.convertModelPositionToViewPosition(e.endLineNumber, e.endColumn, 0);\n                            return new re.e(t.lineNumber, t.column, i.lineNumber, i.column)\n                        }\n                    }\n                    getViewLineNumberOfModelPosition(e, t) {\n                        let i = e - 1;\n                        if (this.lines[i].isVisible()) {\n                            const e = 1 + (0 === i ? 0 : this.prefixSumComputer.getAccumulatedValue(i - 1));\n                            return this.lines[i].getViewLineNumberOfModelPosition(e, t)\n                        }\n                        for (; i > 0 && !this.lines[i].isVisible();) i--;\n                        if (0 === i && !this.lines[i].isVisible()) return 1;\n                        const n = 1 + (0 === i ? 0 : this.prefixSumComputer.getAccumulatedValue(i - 1));\n                        return this.lines[i].getViewLineNumberOfModelPosition(n, this.model.getLineMaxColumn(i + 1))\n                    }\n                    getDecorationsInRange(e, t, i) {\n                        const n = this.convertViewPositionToModelPosition(e.startLineNumber, e.startColumn),\n                            o = this.convertViewPositionToModelPosition(e.endLineNumber, e.endColumn);\n                        if (o.lineNumber - n.lineNumber <= e.endLineNumber - e.startLineNumber) return this.model.getDecorationsInRange(new re.e(n.lineNumber, 1, o.lineNumber, o.column), t, i);\n                        let s = [];\n                        const r = n.lineNumber - 1,\n                            a = o.lineNumber - 1;\n                        let l = null;\n                        for (let e = r; e <= a; e++) {\n                            if (this.lines[e].isVisible()) null === l && (l = new se.L(e + 1, e === r ? n.column : 1));\n                            else if (null !== l) {\n                                const n = this.model.getLineMaxColumn(e);\n                                s = s.concat(this.model.getDecorationsInRange(new re.e(l.lineNumber, l.column, e, n), t, i)), l = null\n                            }\n                        }\n                        null !== l && (s = s.concat(this.model.getDecorationsInRange(new re.e(l.lineNumber, l.column, o.lineNumber, o.column), t, i)), l = null), s.sort(((e, t) => {\n                            const i = re.e.compareRangesUsingStarts(e.range, t.range);\n                            return 0 === i ? e.id < t.id ? -1 : e.id > t.id ? 1 : 0 : i\n                        }));\n                        let c = [],\n                            d = 0,\n                            h = null;\n                        for (const e of s) {\n                            const t = e.id;\n                            h !== t && (h = t, c[d++] = e)\n                        }\n                        return c\n                    }\n                    getInjectedTextAt(e) {\n                        const t = this._toValidViewLineNumber(e.lineNumber),\n                            i = this.prefixSumComputer.getIndexOf(t - 1),\n                            n = i.index,\n                            o = i.remainder;\n                        return this.lines[n].getInjectedTextAt(o, e.column)\n                    }\n                    normalizePosition(e, t) {\n                        const i = this._toValidViewLineNumber(e.lineNumber),\n                            n = this.prefixSumComputer.getIndexOf(i - 1),\n                            o = n.index,\n                            s = n.remainder;\n                        return this.lines[o].normalizePosition(this.model, o + 1, s, e, t)\n                    }\n                    getLineIndentColumn(e) {\n                        const t = this._toValidViewLineNumber(e),\n                            i = this.prefixSumComputer.getIndexOf(t - 1),\n                            n = i.index;\n                        return 0 === i.remainder ? this.model.getLineIndentColumn(n + 1) : 0\n                    }\n                }\n                class vn {\n                    constructor(e, t) {\n                        this.modelLineNumber = e, this.modelLineWrappedLineIdx = t\n                    }\n                    get isWrappedLineContinuation() {\n                        return this.modelLineWrappedLineIdx > 0\n                    }\n                }\n                class _n {\n                    constructor(e, t) {\n                        this.modelRange = e, this.viewLines = t\n                    }\n                }\n                class bn {\n                    constructor() {}\n                    isVisible() {\n                        return !0\n                    }\n                    setVisible(e) {\n                        return e ? this : wn.INSTANCE\n                    }\n                    getLineBreakData() {\n                        return null\n                    }\n                    getViewLineCount() {\n                        return 1\n                    }\n                    getViewLineContent(e, t, i) {\n                        return e.getLineContent(t)\n                    }\n                    getViewLineLength(e, t, i) {\n                        return e.getLineLength(t)\n                    }\n                    getViewLineMinColumn(e, t, i) {\n                        return e.getLineMinColumn(t)\n                    }\n                    getViewLineMaxColumn(e, t, i) {\n                        return e.getLineMaxColumn(t)\n                    }\n                    getViewLineData(e, t, i) {\n                        let n = e.getLineTokens(t),\n                            o = n.getLineContent();\n                        return new Mt.IP(o, !1, 1, o.length + 1, 0, n.inflate(), null)\n                    }\n                    getViewLinesData(e, t, i, n, o, s, r) {\n                        s[o] ? r[o] = this.getViewLineData(e, t, 0) : r[o] = null\n                    }\n                    getModelColumnOfViewPosition(e, t) {\n                        return t\n                    }\n                    getViewPositionOfModelPosition(e, t) {\n                        return new se.L(e, t)\n                    }\n                    getViewLineNumberOfModelPosition(e, t) {\n                        return e\n                    }\n                    normalizePosition(e, t, i, n, o) {\n                        return n\n                    }\n                    getInjectedTextAt(e, t) {\n                        return null\n                    }\n                }\n                bn.INSTANCE = new bn;\n                class wn {\n                    constructor() {}\n                    isVisible() {\n                        return !1\n                    }\n                    setVisible(e) {\n                        return e ? bn.INSTANCE : this\n                    }\n                    getLineBreakData() {\n                        return null\n                    }\n                    getViewLineCount() {\n                        return 0\n                    }\n                    getViewLineContent(e, t, i) {\n                        throw new Error(\"Not supported\")\n                    }\n                    getViewLineLength(e, t, i) {\n                        throw new Error(\"Not supported\")\n                    }\n                    getViewLineMinColumn(e, t, i) {\n                        throw new Error(\"Not supported\")\n                    }\n                    getViewLineMaxColumn(e, t, i) {\n                        throw new Error(\"Not supported\")\n                    }\n                    getViewLineData(e, t, i) {\n                        throw new Error(\"Not supported\")\n                    }\n                    getViewLinesData(e, t, i, n, o, s, r) {\n                        throw new Error(\"Not supported\")\n                    }\n                    getModelColumnOfViewPosition(e, t) {\n                        throw new Error(\"Not supported\")\n                    }\n                    getViewPositionOfModelPosition(e, t) {\n                        throw new Error(\"Not supported\")\n                    }\n                    getViewLineNumberOfModelPosition(e, t) {\n                        throw new Error(\"Not supported\")\n                    }\n                    normalizePosition(e, t, i, n, o) {\n                        throw new Error(\"Not supported\")\n                    }\n                    getInjectedTextAt(e, t) {\n                        throw new Error(\"Not supported\")\n                    }\n                }\n                wn.INSTANCE = new wn;\n                class yn {\n                    constructor(e, t) {\n                        this._lineBreakData = e, this._isVisible = t\n                    }\n                    isVisible() {\n                        return this._isVisible\n                    }\n                    setVisible(e) {\n                        return this._isVisible = e, this\n                    }\n                    getLineBreakData() {\n                        return this._lineBreakData\n                    }\n                    getViewLineCount() {\n                        return this._isVisible ? this._lineBreakData.breakOffsets.length : 0\n                    }\n                    getInputStartOffsetOfOutputLineIndex(e) {\n                        return this._lineBreakData.getInputOffsetOfOutputPosition(e, 0)\n                    }\n                    getInputEndOffsetOfOutputLineIndex(e, t, i) {\n                        return i + 1 === this._lineBreakData.breakOffsets.length ? e.getLineMaxColumn(t) - 1 : this._lineBreakData.getInputOffsetOfOutputPosition(i + 1, 0)\n                    }\n                    getViewLineContent(e, t, i) {\n                        if (!this._isVisible) throw new Error(\"Not supported\");\n                        const n = i > 0 ? this._lineBreakData.breakOffsets[i - 1] : 0,\n                            o = i < this._lineBreakData.breakOffsets.length ? this._lineBreakData.breakOffsets[i] : this._lineBreakData.breakOffsets[this._lineBreakData.breakOffsets.length - 1];\n                        let s;\n                        if (null !== this._lineBreakData.injectionOffsets) {\n                            const i = this._lineBreakData.injectionOffsets.map(((e, t) => new xi.gk(0, 0, e + 1, this._lineBreakData.injectionOptions[t], 0)));\n                            s = xi.gk.applyInjectedText(e.getLineContent(t), i).substring(n, o)\n                        } else s = e.getValueInRange({\n                            startLineNumber: t,\n                            startColumn: n + 1,\n                            endLineNumber: t,\n                            endColumn: o + 1\n                        });\n                        return i > 0 && (s = xn(this._lineBreakData.wrappedTextIndentLength) + s), s\n                    }\n                    getViewLineLength(e, t, i) {\n                        if (!this._isVisible) throw new Error(\"Not supported\");\n                        const n = i > 0 ? this._lineBreakData.breakOffsets[i - 1] : 0;\n                        let o = (i < this._lineBreakData.breakOffsets.length ? this._lineBreakData.breakOffsets[i] : this._lineBreakData.breakOffsets[this._lineBreakData.breakOffsets.length - 1]) - n;\n                        return i > 0 && (o = this._lineBreakData.wrappedTextIndentLength + o), o\n                    }\n                    getViewLineMinColumn(e, t, i) {\n                        if (!this._isVisible) throw new Error(\"Not supported\");\n                        return this._getViewLineMinColumn(i)\n                    }\n                    _getViewLineMinColumn(e) {\n                        return e > 0 ? this._lineBreakData.wrappedTextIndentLength + 1 : 1\n                    }\n                    getViewLineMaxColumn(e, t, i) {\n                        if (!this._isVisible) throw new Error(\"Not supported\");\n                        return this.getViewLineLength(e, t, i) + 1\n                    }\n                    getViewLineData(e, t, i) {\n                        if (!this._isVisible) throw new Error(\"Not supported\");\n                        const n = this._lineBreakData,\n                            o = i > 0 ? n.wrappedTextIndentLength : 0,\n                            s = n.injectionOffsets,\n                            r = n.injectionOptions;\n                        let a, l, c;\n                        if (s) {\n                            const d = e.getLineTokens(t).withInserted(s.map(((e, t) => ({\n                                    offset: e,\n                                    text: r[t].content,\n                                    tokenMetadata: un.A.defaultTokenMetadata\n                                })))),\n                                h = i > 0 ? n.breakOffsets[i - 1] : 0,\n                                u = n.breakOffsets[i];\n                            a = d.getLineContent().substring(h, u), l = d.sliceAndInflate(h, u, o), c = new Array;\n                            let g = 0;\n                            for (let e = 0; e < s.length; e++) {\n                                const t = r[e].content.length,\n                                    o = s[e] + g,\n                                    a = s[e] + g + t;\n                                if (o > u) break;\n                                if (h < a) {\n                                    const t = r[e];\n                                    if (t.inlineClassName) {\n                                        const e = i > 0 ? n.wrappedTextIndentLength : 0,\n                                            s = e + Math.max(o - h, 0),\n                                            r = e + Math.min(a - h, u);\n                                        s !== r && c.push(new Mt.Wx(s, r, t.inlineClassName, t.inlineClassNameAffectsLetterSpacing))\n                                    }\n                                }\n                                g += t\n                            }\n                        } else {\n                            const n = this.getInputStartOffsetOfOutputLineIndex(i),\n                                s = this.getInputEndOffsetOfOutputLineIndex(e, t, i),\n                                r = e.getLineTokens(t);\n                            a = e.getValueInRange({\n                                startLineNumber: t,\n                                startColumn: n + 1,\n                                endLineNumber: t,\n                                endColumn: s + 1\n                            }), l = r.sliceAndInflate(n, s, o), c = null\n                        }\n                        i > 0 && (a = xn(n.wrappedTextIndentLength) + a);\n                        const d = i > 0 ? n.wrappedTextIndentLength + 1 : 1,\n                            h = a.length + 1,\n                            u = i + 1 < this.getViewLineCount(),\n                            g = 0 === i ? 0 : n.breakOffsetsVisibleColumn[i - 1];\n                        return new Mt.IP(a, u, d, h, g, l, c)\n                    }\n                    getViewLinesData(e, t, i, n, o, s, r) {\n                        if (!this._isVisible) throw new Error(\"Not supported\");\n                        for (let a = i; a < n; a++) {\n                            let n = o + a - i;\n                            s[n] ? r[n] = this.getViewLineData(e, t, a) : r[n] = null\n                        }\n                    }\n                    getModelColumnOfViewPosition(e, t) {\n                        if (!this._isVisible) throw new Error(\"Not supported\");\n                        let i = t - 1;\n                        return e > 0 && (i < this._lineBreakData.wrappedTextIndentLength ? i = 0 : i -= this._lineBreakData.wrappedTextIndentLength), this._lineBreakData.getInputOffsetOfOutputPosition(e, i) + 1\n                    }\n                    getViewPositionOfModelPosition(e, t, i = 2) {\n                        if (!this._isVisible) throw new Error(\"Not supported\");\n                        let n = this._lineBreakData.getOutputPositionOfInputOffset(t - 1, i),\n                            o = n.outputLineIndex,\n                            s = n.outputOffset + 1;\n                        return o > 0 && (s += this._lineBreakData.wrappedTextIndentLength), new se.L(e + o, s)\n                    }\n                    getViewLineNumberOfModelPosition(e, t) {\n                        if (!this._isVisible) throw new Error(\"Not supported\");\n                        return e + this._lineBreakData.getOutputPositionOfInputOffset(t - 1).outputLineIndex\n                    }\n                    normalizePosition(e, t, i, n, o) {\n                        if (null !== this._lineBreakData.injectionOffsets) {\n                            const e = n.lineNumber - i,\n                                t = this._lineBreakData.outputPositionToOffsetInUnwrappedLine(i, n.column - 1),\n                                s = this._lineBreakData.normalizeOffsetAroundInjections(t, o);\n                            if (s !== t) return this._lineBreakData.getOutputPositionOfOffsetInUnwrappedLine(s, o).toPosition(e, this._lineBreakData.wrappedTextIndentLength)\n                        }\n                        if (0 === o) {\n                            if (i > 0 && n.column === this._getViewLineMinColumn(i)) return new se.L(n.lineNumber - 1, this.getViewLineMaxColumn(e, t, i - 1))\n                        } else if (1 === o) {\n                            if (i < this.getViewLineCount() - 1 && n.column === this.getViewLineMaxColumn(e, t, i)) return new se.L(n.lineNumber + 1, this._getViewLineMinColumn(i + 1))\n                        }\n                        return n\n                    }\n                    getInjectedTextAt(e, t) {\n                        return this._lineBreakData.getInjectedText(e, t - 1)\n                    }\n                }\n                let Cn = [\"\"];\n\n                function xn(e) {\n                    if (e >= Cn.length)\n                        for (let t = 1; t <= e; t++) Cn[t] = Sn(t);\n                    return Cn[e]\n                }\n\n                function Sn(e) {\n                    return new Array(e + 1).join(\" \")\n                }\n\n                function kn(e, t) {\n                    return null === e ? t ? bn.INSTANCE : wn.INSTANCE : new yn(e, t)\n                }\n                class Ln {\n                    constructor(e) {\n                        this._lines = e\n                    }\n                    _validPosition(e) {\n                        return this._lines.model.validatePosition(e)\n                    }\n                    _validRange(e) {\n                        return this._lines.model.validateRange(e)\n                    }\n                    convertViewPositionToModelPosition(e) {\n                        return this._validPosition(e)\n                    }\n                    convertViewRangeToModelRange(e) {\n                        return this._validRange(e)\n                    }\n                    validateViewPosition(e, t) {\n                        return this._validPosition(t)\n                    }\n                    validateViewRange(e, t) {\n                        return this._validRange(t)\n                    }\n                    convertModelPositionToViewPosition(e) {\n                        return this._validPosition(e)\n                    }\n                    convertModelRangeToViewRange(e) {\n                        return this._validRange(e)\n                    }\n                    modelPositionIsVisible(e) {\n                        const t = this._lines.model.getLineCount();\n                        return !(e.lineNumber < 1 || e.lineNumber > t)\n                    }\n                    getModelLineViewLineCount(e) {\n                        return 1\n                    }\n                    getViewLineNumberOfModelPosition(e, t) {\n                        return e\n                    }\n                }\n                class Nn {\n                    constructor(e) {\n                        this.model = e\n                    }\n                    dispose() {}\n                    createCoordinatesConverter() {\n                        return new Ln(this)\n                    }\n                    getHiddenAreas() {\n                        return []\n                    }\n                    setHiddenAreas(e) {\n                        return !1\n                    }\n                    setTabSize(e) {\n                        return !1\n                    }\n                    setWrappingSettings(e, t, i, n) {\n                        return !1\n                    }\n                    createLineBreaksComputer() {\n                        let e = [];\n                        return {\n                            addRequest: (t, i, n) => {\n                                e.push(null)\n                            },\n                            finalize: () => e\n                        }\n                    }\n                    onModelFlushed() {}\n                    onModelLinesDeleted(e, t, i) {\n                        return new Oi(t, i)\n                    }\n                    onModelLinesInserted(e, t, i, n) {\n                        return new Pi(t, i)\n                    }\n                    onModelLineChanged(e, t, i) {\n                        return [!1, new Ai(t, t), null, null]\n                    }\n                    acceptVersionId(e) {}\n                    getViewLineCount() {\n                        return this.model.getLineCount()\n                    }\n                    getActiveIndentGuide(e, t, i) {\n                        return {\n                            startLineNumber: e,\n                            endLineNumber: e,\n                            indent: 0\n                        }\n                    }\n                    getViewLinesBracketGuides(e, t, i) {\n                        return new Array(t - e + 1).fill([])\n                    }\n                    getViewLinesIndentGuides(e, t) {\n                        const i = t - e + 1;\n                        let n = new Array(i);\n                        for (let e = 0; e < i; e++) n[e] = 0;\n                        return n\n                    }\n                    getViewLineContent(e) {\n                        return this.model.getLineContent(e)\n                    }\n                    getViewLineLength(e) {\n                        return this.model.getLineLength(e)\n                    }\n                    getViewLineMinColumn(e) {\n                        return this.model.getLineMinColumn(e)\n                    }\n                    getViewLineMaxColumn(e) {\n                        return this.model.getLineMaxColumn(e)\n                    }\n                    getViewLineData(e) {\n                        let t = this.model.getLineTokens(e),\n                            i = t.getLineContent();\n                        return new Mt.IP(i, !1, 1, i.length + 1, 0, t.inflate(), null)\n                    }\n                    getViewLinesData(e, t, i) {\n                        const n = this.model.getLineCount();\n                        e = Math.min(Math.max(1, e), n), t = Math.min(Math.max(1, t), n);\n                        let o = [];\n                        for (let n = e; n <= t; n++) {\n                            let t = n - e;\n                            i[t] || (o[t] = null), o[t] = this.getViewLineData(n)\n                        }\n                        return o\n                    }\n                    getDecorationsInRange(e, t, i) {\n                        return this.model.getDecorationsInRange(e, t, i)\n                    }\n                    normalizePosition(e, t) {\n                        return this.model.normalizePosition(e, t)\n                    }\n                    getLineIndentColumn(e) {\n                        return this.model.getLineIndentColumn(e)\n                    }\n                    getInjectedTextAt(e) {\n                        return null\n                    }\n                }\n                class Dn {\n                    constructor(e, t, i, n, o) {\n                        this.editorId = e, this.model = t, this.configuration = i, this._linesCollection = n, this._coordinatesConverter = o, this._decorationsCache = Object.create(null), this._cachedModelDecorationsResolver = null, this._cachedModelDecorationsResolverViewRange = null\n                    }\n                    _clearCachedModelDecorationsResolver() {\n                        this._cachedModelDecorationsResolver = null, this._cachedModelDecorationsResolverViewRange = null\n                    }\n                    dispose() {\n                        this._decorationsCache = Object.create(null), this._clearCachedModelDecorationsResolver()\n                    }\n                    reset() {\n                        this._decorationsCache = Object.create(null), this._clearCachedModelDecorationsResolver()\n                    }\n                    onModelDecorationsChanged() {\n                        this._decorationsCache = Object.create(null), this._clearCachedModelDecorationsResolver()\n                    }\n                    onLineMappingChanged() {\n                        this._decorationsCache = Object.create(null), this._clearCachedModelDecorationsResolver()\n                    }\n                    _getOrCreateViewModelDecoration(e) {\n                        const t = e.id;\n                        let i = this._decorationsCache[t];\n                        if (!i) {\n                            const n = e.range,\n                                o = e.options;\n                            let s;\n                            if (o.isWholeLine) {\n                                const e = this._coordinatesConverter.convertModelPositionToViewPosition(new se.L(n.startLineNumber, 1), 0),\n                                    t = this._coordinatesConverter.convertModelPositionToViewPosition(new se.L(n.endLineNumber, this.model.getLineMaxColumn(n.endLineNumber)), 1);\n                                s = new re.e(e.lineNumber, e.column, t.lineNumber, t.column)\n                            } else s = this._coordinatesConverter.convertModelRangeToViewRange(n, 1);\n                            i = new Mt.$l(s, o), this._decorationsCache[t] = i\n                        }\n                        return i\n                    }\n                    getDecorationsViewportData(e) {\n                        let t = null !== this._cachedModelDecorationsResolver;\n                        return t = t && e.equalsRange(this._cachedModelDecorationsResolverViewRange), t || (this._cachedModelDecorationsResolver = this._getDecorationsViewportData(e), this._cachedModelDecorationsResolverViewRange = e), this._cachedModelDecorationsResolver\n                    }\n                    _getDecorationsViewportData(e) {\n                        const t = this._linesCollection.getDecorationsInRange(e, this.editorId, (0, K.$J)(this.configuration.options)),\n                            i = e.startLineNumber,\n                            n = e.endLineNumber;\n                        let o = [],\n                            s = 0,\n                            r = [];\n                        for (let e = i; e <= n; e++) r[e - i] = [];\n                        for (let e = 0, a = t.length; e < a; e++) {\n                            let a = t[e],\n                                l = a.options,\n                                c = this._getOrCreateViewModelDecoration(a),\n                                d = c.range;\n                            if (o[s++] = c, l.inlineClassName) {\n                                let e = new Mt.$t(d, l.inlineClassName, l.inlineClassNameAffectsLetterSpacing ? 3 : 0),\n                                    t = Math.max(i, d.startLineNumber),\n                                    o = Math.min(n, d.endLineNumber);\n                                for (let n = t; n <= o; n++) r[n - i].push(e)\n                            }\n                            if (l.beforeContentClassName && i <= d.startLineNumber && d.startLineNumber <= n) {\n                                let e = new Mt.$t(new re.e(d.startLineNumber, d.startColumn, d.startLineNumber, d.startColumn), l.beforeContentClassName, 1);\n                                r[d.startLineNumber - i].push(e)\n                            }\n                            if (l.afterContentClassName && i <= d.endLineNumber && d.endLineNumber <= n) {\n                                let e = new Mt.$t(new re.e(d.endLineNumber, d.endColumn, d.endLineNumber, d.endColumn), l.afterContentClassName, 2);\n                                r[d.endLineNumber - i].push(e)\n                            }\n                        }\n                        return {\n                            decorations: o,\n                            inlineDecorations: r\n                        }\n                    }\n                }\n                var In = i(71144);\n                class En extends u.JT {\n                    constructor(e, t, i, n, o, s) {\n                        if (super(), this._editorId = e, this._configuration = t, this.model = i, this._eventDispatcher = new zi, this.onEvent = this._eventDispatcher.onEvent, this.cursorConfig = new ae.LM(this.model.getLanguageId(), this.model.getOptions(), this._configuration), this._tokenizeViewportSoon = this._register(new C.pY((() => this.tokenizeViewport()), 50)), this._updateConfigurationViewLineCount = this._register(new C.pY((() => this._updateConfigurationViewLineCountNow()), 0)), this._hasFocus = !1, this._viewportStartLine = -1, this._viewportStartLineTrackedRange = null, this._viewportStartLineDelta = 0, this.model.isTooLargeForTokenization()) this._lines = new Nn(this.model);\n                        else {\n                            const e = this._configuration.options,\n                                t = e.get(43),\n                                i = e.get(123),\n                                s = e.get(130),\n                                r = e.get(122);\n                            this._lines = new mn(this._editorId, this.model, n, o, t, this.model.getOptions().tabSize, i, s.wrappingColumn, r)\n                        }\n                        this.coordinatesConverter = this._lines.createCoordinatesConverter(), this._cursor = this._register(new Xi(i, this, this.coordinatesConverter, this.cursorConfig)), this.viewLayout = this._register(new hn(this._configuration, this.getLineCount(), s)), this._register(this.viewLayout.onDidScroll((e => {\n                            e.scrollTopChanged && this._tokenizeViewportSoon.schedule(), this._eventDispatcher.emitSingleViewEvent(new Fi(e)), this._eventDispatcher.emitOutgoingEvent(new Ki(e.oldScrollWidth, e.oldScrollLeft, e.oldScrollHeight, e.oldScrollTop, e.scrollWidth, e.scrollLeft, e.scrollHeight, e.scrollTop))\n                        }))), this._register(this.viewLayout.onDidContentSizeChange((e => {\n                            this._eventDispatcher.emitOutgoingEvent(e)\n                        }))), this._decorations = new Dn(this._editorId, this.model, this._configuration, this._lines, this.coordinatesConverter), this._registerModelEvents(), this._register(this._configuration.onDidChangeFast((e => {\n                            try {\n                                const t = this._eventDispatcher.beginEmitViewEvents();\n                                this._onConfigurationChanged(t, e)\n                            } finally {\n                                this._eventDispatcher.endEmitViewEvents()\n                            }\n                        }))), this._register(Tt.getInstance().onDidChange((() => {\n                            this._eventDispatcher.emitSingleViewEvent(new Wi)\n                        }))), this._updateConfigurationViewLineCountNow()\n                    }\n                    dispose() {\n                        super.dispose(), this._decorations.dispose(), this._lines.dispose(), this.invalidateMinimapColorCache(), this._viewportStartLineTrackedRange = this.model._setTrackedRange(this._viewportStartLineTrackedRange, null, 1), this._eventDispatcher.dispose()\n                    }\n                    createLineBreaksComputer() {\n                        return this._lines.createLineBreaksComputer()\n                    }\n                    addViewEventHandler(e) {\n                        this._eventDispatcher.addViewEventHandler(e)\n                    }\n                    removeViewEventHandler(e) {\n                        this._eventDispatcher.removeViewEventHandler(e)\n                    }\n                    _updateConfigurationViewLineCountNow() {\n                        this._configuration.setViewLineCount(this._lines.getViewLineCount())\n                    }\n                    tokenizeViewport() {\n                        const e = this.viewLayout.getLinesViewportData(),\n                            t = new re.e(e.startLineNumber, this.getLineMinColumn(e.startLineNumber), e.endLineNumber, this.getLineMaxColumn(e.endLineNumber)),\n                            i = this._toModelVisibleRanges(t);\n                        for (const e of i) this.model.tokenizeViewport(e.startLineNumber, e.endLineNumber)\n                    }\n                    setHasFocus(e) {\n                        this._hasFocus = e, this._cursor.setHasFocus(e), this._eventDispatcher.emitSingleViewEvent(new Ei(e)), this._eventDispatcher.emitOutgoingEvent(new $i(!e, e))\n                    }\n                    onCompositionStart() {\n                        this._eventDispatcher.emitSingleViewEvent(new Si)\n                    }\n                    onCompositionEnd() {\n                        this._eventDispatcher.emitSingleViewEvent(new ki)\n                    }\n                    onDidColorThemeChange() {\n                        this._eventDispatcher.emitSingleViewEvent(new Bi)\n                    }\n                    _onConfigurationChanged(e, t) {\n                        let i = null;\n                        if (-1 !== this._viewportStartLine) {\n                            let e = new se.L(this._viewportStartLine, this.getLineMinColumn(this._viewportStartLine));\n                            i = this.coordinatesConverter.convertViewPositionToModelPosition(e)\n                        }\n                        let n = !1;\n                        const o = this._configuration.options,\n                            s = o.get(43),\n                            r = o.get(123),\n                            a = o.get(130),\n                            l = o.get(122);\n                        if (this._lines.setWrappingSettings(s, r, a.wrappingColumn, l) && (e.emitViewEvent(new Ii), e.emitViewEvent(new Mi), e.emitViewEvent(new Di(null)), this._cursor.onLineMappingChanged(e), this._decorations.onLineMappingChanged(), this.viewLayout.onFlushed(this.getLineCount()), 0 !== this.viewLayout.getCurrentScrollTop() && (n = !0), this._updateConfigurationViewLineCount.schedule()), t.hasChanged(80) && (this._decorations.reset(), e.emitViewEvent(new Di(null))), e.emitViewEvent(new Li(t)), this.viewLayout.onConfigurationChanged(t), n && i) {\n                            const e = this.coordinatesConverter.convertModelPositionToViewPosition(i),\n                                t = this.viewLayout.getVerticalOffsetForLineNumber(e.lineNumber);\n                            this.viewLayout.setScrollPosition({\n                                scrollTop: t + this._viewportStartLineDelta\n                            }, 1)\n                        }\n                        ae.LM.shouldRecreate(t) && (this.cursorConfig = new ae.LM(this.model.getLanguageId(), this.model.getOptions(), this._configuration), this._cursor.updateConfiguration(this.cursorConfig))\n                    }\n                    _registerModelEvents() {\n                        this._register(this.model.onDidChangeContentOrInjectedText((e => {\n                            try {\n                                const t = this._eventDispatcher.beginEmitViewEvents();\n                                let i = !1,\n                                    n = !1;\n                                const o = e.changes,\n                                    s = e instanceof xi.dQ ? e.versionId : null,\n                                    r = this._lines.createLineBreaksComputer();\n                                for (const e of o) switch (e.changeType) {\n                                    case 4:\n                                        for (let t = 0; t < e.detail.length; t++) {\n                                            const i = e.detail[t];\n                                            let n = e.injectedTexts[t];\n                                            n && (n = n.filter((e => !e.ownerId || e.ownerId === this._editorId))), r.addRequest(i, n, null)\n                                        }\n                                        break;\n                                    case 2: {\n                                        let t = null;\n                                        e.injectedText && (t = e.injectedText.filter((e => !e.ownerId || e.ownerId === this._editorId))), r.addRequest(e.detail, t, null);\n                                        break\n                                    }\n                                }\n                                const a = r.finalize();\n                                let l = 0;\n                                for (const e of o) switch (e.changeType) {\n                                    case 1:\n                                        this._lines.onModelFlushed(), t.emitViewEvent(new Ii), this._decorations.reset(), this.viewLayout.onFlushed(this.getLineCount()), i = !0;\n                                        break;\n                                    case 3: {\n                                        const n = this._lines.onModelLinesDeleted(s, e.fromLineNumber, e.toLineNumber);\n                                        null !== n && (t.emitViewEvent(n), this.viewLayout.onLinesDeleted(n.fromLineNumber, n.toLineNumber)), i = !0;\n                                        break\n                                    }\n                                    case 4: {\n                                        const n = a.slice(l, l + e.detail.length);\n                                        l += e.detail.length;\n                                        const o = this._lines.onModelLinesInserted(s, e.fromLineNumber, e.toLineNumber, n);\n                                        null !== o && (t.emitViewEvent(o), this.viewLayout.onLinesInserted(o.fromLineNumber, o.toLineNumber)), i = !0;\n                                        break\n                                    }\n                                    case 2: {\n                                        const i = a[l];\n                                        l++;\n                                        const [o, r, c, d] = this._lines.onModelLineChanged(s, e.lineNumber, i);\n                                        n = o, r && t.emitViewEvent(r), c && (t.emitViewEvent(c), this.viewLayout.onLinesInserted(c.fromLineNumber, c.toLineNumber)), d && (t.emitViewEvent(d), this.viewLayout.onLinesDeleted(d.fromLineNumber, d.toLineNumber));\n                                        break\n                                    }\n                                }\n                                null !== s && this._lines.acceptVersionId(s), this.viewLayout.onHeightMaybeChanged(), !i && n && (t.emitViewEvent(new Mi), t.emitViewEvent(new Di(null)), this._cursor.onLineMappingChanged(t), this._decorations.onLineMappingChanged())\n                            } finally {\n                                this._eventDispatcher.endEmitViewEvents()\n                            }\n                            if (this._viewportStartLine = -1, this._configuration.setMaxLineNumber(this.model.getLineCount()), this._updateConfigurationViewLineCountNow(), !this._hasFocus && this.model.getAttachedEditorCount() >= 2 && this._viewportStartLineTrackedRange) {\n                                const e = this.model._getTrackedRange(this._viewportStartLineTrackedRange);\n                                if (e) {\n                                    const t = this.coordinatesConverter.convertModelPositionToViewPosition(e.getStartPosition()),\n                                        i = this.viewLayout.getVerticalOffsetForLineNumber(t.lineNumber);\n                                    this.viewLayout.setScrollPosition({\n                                        scrollTop: i + this._viewportStartLineDelta\n                                    }, 1)\n                                }\n                            }\n                            try {\n                                const t = this._eventDispatcher.beginEmitViewEvents();\n                                this._cursor.onModelContentChanged(t, e)\n                            } finally {\n                                this._eventDispatcher.endEmitViewEvents()\n                            }\n                        }))), this._register(this.model.onDidChangeTokens((e => {\n                            let t = [];\n                            for (let i = 0, n = e.ranges.length; i < n; i++) {\n                                const n = e.ranges[i],\n                                    o = this.coordinatesConverter.convertModelPositionToViewPosition(new se.L(n.fromLineNumber, 1)).lineNumber,\n                                    s = this.coordinatesConverter.convertModelPositionToViewPosition(new se.L(n.toLineNumber, this.model.getLineMaxColumn(n.toLineNumber))).lineNumber;\n                                t[i] = {\n                                    fromLineNumber: o,\n                                    toLineNumber: s\n                                }\n                            }\n                            this._eventDispatcher.emitSingleViewEvent(new Vi(t)), e.tokenizationSupportChanged && this._tokenizeViewportSoon.schedule()\n                        }))), this._register(this.model.onDidChangeLanguageConfiguration((e => {\n                            this._eventDispatcher.emitSingleViewEvent(new Ti), this.cursorConfig = new ae.LM(this.model.getLanguageId(), this.model.getOptions(), this._configuration), this._cursor.updateConfiguration(this.cursorConfig)\n                        }))), this._register(this.model.onDidChangeLanguage((e => {\n                            this.cursorConfig = new ae.LM(this.model.getLanguageId(), this.model.getOptions(), this._configuration), this._cursor.updateConfiguration(this.cursorConfig)\n                        }))), this._register(this.model.onDidChangeOptions((e => {\n                            if (this._lines.setTabSize(this.model.getOptions().tabSize)) {\n                                try {\n                                    const e = this._eventDispatcher.beginEmitViewEvents();\n                                    e.emitViewEvent(new Ii), e.emitViewEvent(new Mi), e.emitViewEvent(new Di(null)), this._cursor.onLineMappingChanged(e), this._decorations.onLineMappingChanged(), this.viewLayout.onFlushed(this.getLineCount())\n                                } finally {\n                                    this._eventDispatcher.endEmitViewEvents()\n                                }\n                                this._updateConfigurationViewLineCount.schedule()\n                            }\n                            this.cursorConfig = new ae.LM(this.model.getLanguageId(), this.model.getOptions(), this._configuration), this._cursor.updateConfiguration(this.cursorConfig)\n                        }))), this._register(this.model.onDidChangeDecorations((e => {\n                            this._decorations.onModelDecorationsChanged(), this._eventDispatcher.emitSingleViewEvent(new Di(e))\n                        })))\n                    }\n                    setHiddenAreas(e) {\n                        let t = !1;\n                        try {\n                            const i = this._eventDispatcher.beginEmitViewEvents();\n                            t = this._lines.setHiddenAreas(e), t && (i.emitViewEvent(new Ii), i.emitViewEvent(new Mi), i.emitViewEvent(new Di(null)), this._cursor.onLineMappingChanged(i), this._decorations.onLineMappingChanged(), this.viewLayout.onFlushed(this.getLineCount()), this.viewLayout.onHeightMaybeChanged())\n                        } finally {\n                            this._eventDispatcher.endEmitViewEvents()\n                        }\n                        this._updateConfigurationViewLineCount.schedule(), t && this._eventDispatcher.emitOutgoingEvent(new qi)\n                    }\n                    getVisibleRangesPlusViewportAboveBelow() {\n                        const e = this._configuration.options.get(129),\n                            t = this._configuration.options.get(58),\n                            i = Math.max(20, Math.round(e.height / t)),\n                            n = this.viewLayout.getLinesViewportData(),\n                            o = Math.max(1, n.completelyVisibleStartLineNumber - i),\n                            s = Math.min(this.getLineCount(), n.completelyVisibleEndLineNumber + i);\n                        return this._toModelVisibleRanges(new re.e(o, this.getLineMinColumn(o), s, this.getLineMaxColumn(s)))\n                    }\n                    getVisibleRanges() {\n                        const e = this.getCompletelyVisibleViewRange();\n                        return this._toModelVisibleRanges(e)\n                    }\n                    _toModelVisibleRanges(e) {\n                        const t = this.coordinatesConverter.convertViewRangeToModelRange(e),\n                            i = this._lines.getHiddenAreas();\n                        if (0 === i.length) return [t];\n                        let n = [],\n                            o = 0,\n                            s = t.startLineNumber,\n                            r = t.startColumn,\n                            a = t.endLineNumber,\n                            l = t.endColumn;\n                        for (let e = 0, t = i.length; e < t; e++) {\n                            const t = i[e].startLineNumber,\n                                l = i[e].endLineNumber;\n                            l < s || (t > a || (s < t && (n[o++] = new re.e(s, r, t - 1, this.model.getLineMaxColumn(t - 1))), s = l + 1, r = 1))\n                        }\n                        return (s < a || s === a && r < l) && (n[o++] = new re.e(s, r, a, l)), n\n                    }\n                    getCompletelyVisibleViewRange() {\n                        const e = this.viewLayout.getLinesViewportData(),\n                            t = e.completelyVisibleStartLineNumber,\n                            i = e.completelyVisibleEndLineNumber;\n                        return new re.e(t, this.getLineMinColumn(t), i, this.getLineMaxColumn(i))\n                    }\n                    getCompletelyVisibleViewRangeAtScrollTop(e) {\n                        const t = this.viewLayout.getLinesViewportDataAtScrollTop(e),\n                            i = t.completelyVisibleStartLineNumber,\n                            n = t.completelyVisibleEndLineNumber;\n                        return new re.e(i, this.getLineMinColumn(i), n, this.getLineMaxColumn(n))\n                    }\n                    saveState() {\n                        const e = this.viewLayout.saveState(),\n                            t = e.scrollTop,\n                            i = this.viewLayout.getLineNumberAtVerticalOffset(t),\n                            n = this.coordinatesConverter.convertViewPositionToModelPosition(new se.L(i, this.getLineMinColumn(i))),\n                            o = this.viewLayout.getVerticalOffsetForLineNumber(i) - t;\n                        return {\n                            scrollLeft: e.scrollLeft,\n                            firstPosition: n,\n                            firstPositionDeltaTop: o\n                        }\n                    }\n                    reduceRestoreState(e) {\n                        if (void 0 === e.firstPosition) return this._reduceRestoreStateCompatibility(e);\n                        const t = this.model.validatePosition(e.firstPosition),\n                            i = this.coordinatesConverter.convertModelPositionToViewPosition(t),\n                            n = this.viewLayout.getVerticalOffsetForLineNumber(i.lineNumber) - e.firstPositionDeltaTop;\n                        return {\n                            scrollLeft: e.scrollLeft,\n                            scrollTop: n\n                        }\n                    }\n                    _reduceRestoreStateCompatibility(e) {\n                        return {\n                            scrollLeft: e.scrollLeft,\n                            scrollTop: e.scrollTopWithoutViewZones\n                        }\n                    }\n                    getTabSize() {\n                        return this.model.getOptions().tabSize\n                    }\n                    getTextModelOptions() {\n                        return this.model.getOptions()\n                    }\n                    getLineCount() {\n                        return this._lines.getViewLineCount()\n                    }\n                    setViewport(e, t, i) {\n                        this._viewportStartLine = e;\n                        let n = this.coordinatesConverter.convertViewPositionToModelPosition(new se.L(e, this.getLineMinColumn(e)));\n                        this._viewportStartLineTrackedRange = this.model._setTrackedRange(this._viewportStartLineTrackedRange, new re.e(n.lineNumber, n.column, n.lineNumber, n.column), 1);\n                        const o = this.viewLayout.getVerticalOffsetForLineNumber(e),\n                            s = this.viewLayout.getCurrentScrollTop();\n                        this._viewportStartLineDelta = s - o\n                    }\n                    getActiveIndentGuide(e, t, i) {\n                        return this._lines.getActiveIndentGuide(e, t, i)\n                    }\n                    getLinesIndentGuides(e, t) {\n                        return this._lines.getViewLinesIndentGuides(e, t)\n                    }\n                    getBracketGuidesInRangeByLine(e, t, i, n) {\n                        return this._lines.getViewLinesBracketGuides(e, t, i, n)\n                    }\n                    getLineContent(e) {\n                        return this._lines.getViewLineContent(e)\n                    }\n                    getLineLength(e) {\n                        return this._lines.getViewLineLength(e)\n                    }\n                    getLineMinColumn(e) {\n                        return this._lines.getViewLineMinColumn(e)\n                    }\n                    getLineMaxColumn(e) {\n                        return this._lines.getViewLineMaxColumn(e)\n                    }\n                    getLineFirstNonWhitespaceColumn(e) {\n                        const t = Te.LC(this.getLineContent(e));\n                        return -1 === t ? 0 : t + 1\n                    }\n                    getLineLastNonWhitespaceColumn(e) {\n                        const t = Te.ow(this.getLineContent(e));\n                        return -1 === t ? 0 : t + 2\n                    }\n                    getDecorationsInViewport(e) {\n                        return this._decorations.getDecorationsViewportData(e).decorations\n                    }\n                    getInjectedTextAt(e) {\n                        return this._lines.getInjectedTextAt(e)\n                    }\n                    getViewLineRenderingData(e, t) {\n                        let i = this.model.mightContainRTL(),\n                            n = this.model.mightContainNonBasicASCII(),\n                            o = this.getTabSize(),\n                            s = this._lines.getViewLineData(t),\n                            r = this._decorations.getDecorationsViewportData(e).inlineDecorations[t - e.startLineNumber];\n                        return s.inlineDecorations && (r = [...r, ...s.inlineDecorations.map((e => e.toInlineDecoration(t)))]), new Mt.wA(s.minColumn, s.maxColumn, s.content, s.continuesWithWrappedLine, i, n, s.tokens, r, o, s.startVisibleColumn)\n                    }\n                    getViewLineData(e) {\n                        return this._lines.getViewLineData(e)\n                    }\n                    getMinimapLinesRenderingData(e, t, i) {\n                        let n = this._lines.getViewLinesData(e, t, i);\n                        return new Mt.ud(this.getTabSize(), n)\n                    }\n                    getAllOverviewRulerDecorations(e) {\n                        const t = this.model.getOverviewRulerDecorations(this._editorId, (0, K.$J)(this._configuration.options)),\n                            i = new Tn;\n                        for (const n of t) {\n                            const t = n.options,\n                                o = t.overviewRuler;\n                            if (!o) continue;\n                            const s = o.position;\n                            if (0 === s) continue;\n                            const r = o.getColor(e),\n                                a = this.coordinatesConverter.getViewLineNumberOfModelPosition(n.range.startLineNumber, n.range.startColumn),\n                                l = this.coordinatesConverter.getViewLineNumberOfModelPosition(n.range.endLineNumber, n.range.endColumn);\n                            i.accept(r, t.zIndex, a, l, s)\n                        }\n                        return i.asArray\n                    }\n                    invalidateOverviewRulerColorCache() {\n                        const e = this.model.getOverviewRulerDecorations();\n                        for (const t of e) {\n                            const e = t.options.overviewRuler;\n                            e && e.invalidateCachedColor()\n                        }\n                    }\n                    invalidateMinimapColorCache() {\n                        const e = this.model.getAllDecorations();\n                        for (const t of e) {\n                            const e = t.options.minimap;\n                            e && e.invalidateCachedColor()\n                        }\n                    }\n                    getValueInRange(e, t) {\n                        const i = this.coordinatesConverter.convertViewRangeToModelRange(e);\n                        return this.model.getValueInRange(i, t)\n                    }\n                    getModelLineMaxColumn(e) {\n                        return this.model.getLineMaxColumn(e)\n                    }\n                    validateModelPosition(e) {\n                        return this.model.validatePosition(e)\n                    }\n                    validateModelRange(e) {\n                        return this.model.validateRange(e)\n                    }\n                    deduceModelPositionRelativeToViewPosition(e, t, i) {\n                        const n = this.coordinatesConverter.convertViewPositionToModelPosition(e);\n                        2 === this.model.getEOL().length && (t < 0 ? t -= i : t += i);\n                        const o = this.model.getOffsetAt(n) + t;\n                        return this.model.getPositionAt(o)\n                    }\n                    getEOL() {\n                        return this.model.getEOL()\n                    }\n                    getPlainTextToCopy(e, t, i) {\n                        const n = i ? \"\\r\\n\" : this.model.getEOL();\n                        (e = e.slice(0)).sort(re.e.compareRangesUsingStarts);\n                        let o = !1,\n                            s = !1;\n                        for (const t of e) t.isEmpty() ? o = !0 : s = !0;\n                        if (!s) {\n                            if (!t) return \"\";\n                            const i = e.map((e => e.startLineNumber));\n                            let o = \"\";\n                            for (let e = 0; e < i.length; e++) e > 0 && i[e - 1] === i[e] || (o += this.model.getLineContent(i[e]) + n);\n                            return o\n                        }\n                        if (o && t) {\n                            let t = [],\n                                n = 0;\n                            for (const o of e) {\n                                const e = o.startLineNumber;\n                                o.isEmpty() ? e !== n && t.push(this.model.getLineContent(e)) : t.push(this.model.getValueInRange(o, i ? 2 : 0)), n = e\n                            }\n                            return 1 === t.length ? t[0] : t\n                        }\n                        let r = [];\n                        for (const t of e) t.isEmpty() || r.push(this.model.getValueInRange(t, i ? 2 : 0));\n                        return 1 === r.length ? r[0] : r\n                    }\n                    getRichTextToCopy(e, t) {\n                        const i = this.model.getLanguageId();\n                        if (i === In.XT) return null;\n                        if (1 !== e.length) return null;\n                        let n = e[0];\n                        if (n.isEmpty()) {\n                            if (!t) return null;\n                            const e = n.startLineNumber;\n                            n = new re.e(e, this.model.getLineMinColumn(e), e, this.model.getLineMaxColumn(e))\n                        }\n                        const o = this._configuration.options.get(43),\n                            s = this._getColorMap();\n                        let r;\n                        if (/[:;\\\\\\/<>]/.test(o.fontFamily) || o.fontFamily === K.hL.fontFamily) r = K.hL.fontFamily;\n                        else {\n                            r = o.fontFamily, r = r.replace(/\"/g, \"'\");\n                            if (!/[,']/.test(r)) {\n                                /[+ ]/.test(r) && (r = `'${r}'`)\n                            }\n                            r = `${r}, ${K.hL.fontFamily}`\n                        }\n                        return {\n                            mode: i,\n                            html: `<div style=\"color: ${s[1]};background-color: ${s[2]};font-family: ${r};font-weight: ${o.fontWeight};font-size: ${o.fontSize}px;line-height: ${o.lineHeight}px;white-space: pre;\">` + this._getHTMLToCopy(n, s) + \"</div>\"\n                        }\n                    }\n                    _getHTMLToCopy(e, t) {\n                        const i = e.startLineNumber,\n                            n = e.startColumn,\n                            o = e.endLineNumber,\n                            s = e.endColumn,\n                            r = this.getTabSize();\n                        let a = \"\";\n                        for (let e = i; e <= o; e++) {\n                            const l = this.model.getLineTokens(e),\n                                c = l.getLineContent(),\n                                d = e === i ? n - 1 : 0,\n                                h = e === o ? s - 1 : c.length;\n                            a += \"\" === c ? \"<br>\" : (0, on.F)(c, l.inflate(), t, d, h, r, b.ED)\n                        }\n                        return a\n                    }\n                    _getColorMap() {\n                        let e = Et.RW.getColorMap(),\n                            t = [\"#000000\"];\n                        if (e)\n                            for (let i = 1, n = e.length; i < n; i++) t[i] = Qt.Il.Format.CSS.formatHex(e[i]);\n                        return t\n                    }\n                    pushStackElement() {\n                        this.model.pushStackElement()\n                    }\n                    getPrimaryCursorState() {\n                        return this._cursor.getPrimaryCursorState()\n                    }\n                    getLastAddedCursorIndex() {\n                        return this._cursor.getLastAddedCursorIndex()\n                    }\n                    getCursorStates() {\n                        return this._cursor.getCursorStates()\n                    }\n                    setCursorStates(e, t, i) {\n                        this._withViewEventsCollector((n => this._cursor.setStates(n, e, t, i)))\n                    }\n                    getCursorColumnSelectData() {\n                        return this._cursor.getCursorColumnSelectData()\n                    }\n                    getCursorAutoClosedCharacters() {\n                        return this._cursor.getAutoClosedCharacters()\n                    }\n                    setCursorColumnSelectData(e) {\n                        this._cursor.setCursorColumnSelectData(e)\n                    }\n                    getPrevEditOperationType() {\n                        return this._cursor.getPrevEditOperationType()\n                    }\n                    setPrevEditOperationType(e) {\n                        this._cursor.setPrevEditOperationType(e)\n                    }\n                    getSelection() {\n                        return this._cursor.getSelection()\n                    }\n                    getSelections() {\n                        return this._cursor.getSelections()\n                    }\n                    getPosition() {\n                        return this._cursor.getPrimaryCursorState().modelState.position\n                    }\n                    setSelections(e, t, i = 0) {\n                        this._withViewEventsCollector((n => this._cursor.setSelections(n, e, t, i)))\n                    }\n                    saveCursorState() {\n                        return this._cursor.saveState()\n                    }\n                    restoreCursorState(e) {\n                        this._withViewEventsCollector((t => this._cursor.restoreState(t, e)))\n                    }\n                    _executeCursorEdit(e) {\n                        this._cursor.context.cursorConfig.readOnly ? this._eventDispatcher.emitOutgoingEvent(new Gi) : this._withViewEventsCollector(e)\n                    }\n                    executeEdits(e, t, i) {\n                        this._executeCursorEdit((n => this._cursor.executeEdits(n, e, t, i)))\n                    }\n                    startComposition() {\n                        this._cursor.setIsDoingComposition(!0), this._executeCursorEdit((e => this._cursor.startComposition(e)))\n                    }\n                    endComposition(e) {\n                        this._cursor.setIsDoingComposition(!1), this._executeCursorEdit((t => this._cursor.endComposition(t, e)))\n                    }\n                    type(e, t) {\n                        this._executeCursorEdit((i => this._cursor.type(i, e, t)))\n                    }\n                    compositionType(e, t, i, n, o) {\n                        this._executeCursorEdit((s => this._cursor.compositionType(s, e, t, i, n, o)))\n                    }\n                    paste(e, t, i, n) {\n                        this._executeCursorEdit((o => this._cursor.paste(o, e, t, i, n)))\n                    }\n                    cut(e) {\n                        this._executeCursorEdit((t => this._cursor.cut(t, e)))\n                    }\n                    executeCommand(e, t) {\n                        this._executeCursorEdit((i => this._cursor.executeCommand(i, e, t)))\n                    }\n                    executeCommands(e, t) {\n                        this._executeCursorEdit((i => this._cursor.executeCommands(i, e, t)))\n                    }\n                    revealPrimaryCursor(e, t) {\n                        this._withViewEventsCollector((i => this._cursor.revealPrimary(i, e, t, 0)))\n                    }\n                    revealTopMostCursor(e) {\n                        const t = this._cursor.getTopMostViewPosition(),\n                            i = new re.e(t.lineNumber, t.column, t.lineNumber, t.column);\n                        this._withViewEventsCollector((t => t.emitViewEvent(new Ri(e, i, null, 0, !0, 0))))\n                    }\n                    revealBottomMostCursor(e) {\n                        const t = this._cursor.getBottomMostViewPosition(),\n                            i = new re.e(t.lineNumber, t.column, t.lineNumber, t.column);\n                        this._withViewEventsCollector((t => t.emitViewEvent(new Ri(e, i, null, 0, !0, 0))))\n                    }\n                    revealRange(e, t, i, n, o) {\n                        this._withViewEventsCollector((s => s.emitViewEvent(new Ri(e, i, null, n, t, o))))\n                    }\n                    getVerticalOffsetForLineNumber(e) {\n                        return this.viewLayout.getVerticalOffsetForLineNumber(e)\n                    }\n                    getScrollTop() {\n                        return this.viewLayout.getCurrentScrollTop()\n                    }\n                    setScrollTop(e, t) {\n                        this.viewLayout.setScrollPosition({\n                            scrollTop: e\n                        }, t)\n                    }\n                    setScrollPosition(e, t) {\n                        this.viewLayout.setScrollPosition(e, t)\n                    }\n                    deltaScrollNow(e, t) {\n                        this.viewLayout.deltaScrollNow(e, t)\n                    }\n                    changeWhitespace(e) {\n                        this.viewLayout.changeWhitespace(e) && (this._eventDispatcher.emitSingleViewEvent(new Hi), this._eventDispatcher.emitOutgoingEvent(new qi))\n                    }\n                    setMaxLineWidth(e) {\n                        this.viewLayout.setMaxLineWidth(e)\n                    }\n                    _withViewEventsCollector(e) {\n                        try {\n                            e(this._eventDispatcher.beginEmitViewEvents())\n                        } finally {\n                            this._eventDispatcher.endEmitViewEvents()\n                        }\n                    }\n                    normalizePosition(e, t) {\n                        return this._lines.normalizePosition(e, t)\n                    }\n                    getLineIndentColumn(e) {\n                        return this._lines.getLineIndentColumn(e)\n                    }\n                }\n                class Tn {\n                    constructor() {\n                        this._asMap = Object.create(null), this.asArray = []\n                    }\n                    accept(e, t, i, n, o) {\n                        const s = this._asMap[e];\n                        if (s) {\n                            const e = s.data,\n                                t = e[e.length - 3],\n                                r = e[e.length - 1];\n                            if (t === o && r + 1 >= i) return void(n > r && (e[e.length - 1] = n));\n                            e.push(o, i, n)\n                        } else {\n                            const s = new Mt.SQ(e, t, [o, i, n]);\n                            this._asMap[e] = s, this.asArray.push(s)\n                        }\n                    }\n                }\n                var Mn = i(94565),\n                    An = i(38819),\n                    On = i(72065),\n                    Pn = i(60972),\n                    Rn = i(59422),\n                    Fn = i(31106),\n                    Bn = i(44906);\n                class Vn extends Bn.N {\n                    constructor(e, t) {\n                        super(0);\n                        for (let t = 0; t < e.length; t++) this.set(e.charCodeAt(t), 1);\n                        for (let e = 0; e < t.length; e++) this.set(t.charCodeAt(e), 2)\n                    }\n                    get(e) {\n                        return e >= 0 && e < 256 ? this._asciiMap[e] : e >= 12352 && e <= 12543 || e >= 13312 && e <= 19903 || e >= 19968 && e <= 40959 ? 3 : this._map.get(e) || this._defaultValue\n                    }\n                }\n                let Wn = [],\n                    Hn = [];\n                class zn {\n                    constructor(e, t) {\n                        this.classifier = new Vn(e, t)\n                    }\n                    static create(e) {\n                        return new zn(e.get(118), e.get(117))\n                    }\n                    createLineBreaksComputer(e, t, i, n) {\n                        t |= 0, i = +i;\n                        const o = [],\n                            s = [],\n                            r = [];\n                        return {\n                            addRequest: (e, t, i) => {\n                                o.push(e), s.push(t), r.push(i)\n                            },\n                            finalize: () => {\n                                const a = e.typicalFullwidthCharacterWidth / e.typicalHalfwidthCharacterWidth;\n                                let l = [];\n                                for (let e = 0, c = o.length; e < c; e++) {\n                                    const c = s[e],\n                                        d = r[e];\n                                    !d || d.injectionOptions || c ? l[e] = Un(this.classifier, o[e], c, t, i, a, n) : l[e] = jn(this.classifier, d, o[e], t, i, a, n)\n                                }\n                                return Wn.length = 0, Hn.length = 0, l\n                            }\n                        }\n                    }\n                }\n\n                function jn(e, t, i, n, o, s, r) {\n                    if (-1 === o) return null;\n                    const a = i.length;\n                    if (a <= 1) return null;\n                    const l = t.breakOffsets,\n                        c = t.breakOffsetsVisibleColumn,\n                        d = Zn(i, n, o, s, r),\n                        h = o - d;\n                    let u = Wn,\n                        g = Hn,\n                        p = 0,\n                        f = 0,\n                        m = 0,\n                        v = o;\n                    const _ = l.length;\n                    let b = 0;\n                    if (b >= 0) {\n                        let e = Math.abs(c[b] - v);\n                        for (; b + 1 < _;) {\n                            const t = Math.abs(c[b + 1] - v);\n                            if (t >= e) break;\n                            e = t, b++\n                        }\n                    }\n                    for (; b < _;) {\n                        let t = b < 0 ? 0 : l[b],\n                            o = b < 0 ? 0 : c[b];\n                        f > t && (t = f, o = m);\n                        let r = 0,\n                            d = 0,\n                            w = 0,\n                            y = 0;\n                        if (o <= v) {\n                            let m = o,\n                                _ = 0 === t ? 0 : i.charCodeAt(t - 1),\n                                b = 0 === t ? 0 : e.get(_),\n                                C = !0;\n                            for (let o = t; o < a; o++) {\n                                const t = o,\n                                    a = i.charCodeAt(o);\n                                let l, c;\n                                if (Te.ZG(a) ? (o++, l = 0, c = 2) : (l = e.get(a), c = $n(a, m, n, s)), t > f && qn(_, b, a, l) && (r = t, d = m), m += c, m > v) {\n                                    t > f ? (w = t, y = m - c) : (w = o + 1, y = m), m - d > h && (r = 0), C = !1;\n                                    break\n                                }\n                                _ = a, b = l\n                            }\n                            if (C) {\n                                p > 0 && (u[p] = l[l.length - 1], g[p] = c[l.length - 1], p++);\n                                break\n                            }\n                        }\n                        if (0 === r) {\n                            let a = o,\n                                l = i.charCodeAt(t),\n                                c = e.get(l),\n                                u = !1;\n                            for (let n = t - 1; n >= f; n--) {\n                                const t = n + 1,\n                                    o = i.charCodeAt(n);\n                                if (9 === o) {\n                                    u = !0;\n                                    break\n                                }\n                                let g, p;\n                                if (Te.YK(o) ? (n--, g = 0, p = 2) : (g = e.get(o), p = Te.K7(o) ? s : 1), a <= v) {\n                                    if (0 === w && (w = t, y = a), a <= v - h) break;\n                                    if (qn(o, g, l, c)) {\n                                        r = t, d = a;\n                                        break\n                                    }\n                                }\n                                a -= p, l = o, c = g\n                            }\n                            if (0 !== r) {\n                                const e = h - (y - d);\n                                if (e <= n) {\n                                    const t = i.charCodeAt(w);\n                                    let o;\n                                    o = Te.ZG(t) ? 2 : $n(t, y, n, s), e - o < 0 && (r = 0)\n                                }\n                            }\n                            if (u) {\n                                b--;\n                                continue\n                            }\n                        }\n                        if (0 === r && (r = w, d = y), r <= f) {\n                            const e = i.charCodeAt(f);\n                            Te.ZG(e) ? (r = f + 2, d = m + 2) : (r = f + 1, d = m + $n(e, m, n, s))\n                        }\n                        for (f = r, u[p] = r, m = d, g[p] = d, p++, v = d + h; b < 0 || b < _ && c[b] < d;) b++;\n                        let C = Math.abs(c[b] - v);\n                        for (; b + 1 < _;) {\n                            const e = Math.abs(c[b + 1] - v);\n                            if (e >= C) break;\n                            C = e, b++\n                        }\n                    }\n                    return 0 === p ? null : (u.length = p, g.length = p, Wn = t.breakOffsets, Hn = t.breakOffsetsVisibleColumn, t.breakOffsets = u, t.breakOffsetsVisibleColumn = g, t.wrappedTextIndentLength = d, t)\n                }\n\n                function Un(e, t, i, n, o, s, r) {\n                    const a = xi.gk.applyInjectedText(t, i);\n                    let l, c;\n                    if (i && i.length > 0 ? (l = i.map((e => e.options)), c = i.map((e => e.column - 1))) : (l = null, c = null), -1 === o) return l ? new Mt.le([a.length], [], 0, c, l) : null;\n                    const d = a.length;\n                    if (d <= 1) return l ? new Mt.le([a.length], [], 0, c, l) : null;\n                    const h = Zn(a, n, o, s, r),\n                        u = o - h;\n                    let g = [],\n                        p = [],\n                        f = 0,\n                        m = 0,\n                        v = 0,\n                        _ = o,\n                        b = a.charCodeAt(0),\n                        w = e.get(b),\n                        y = $n(b, 0, n, s),\n                        C = 1;\n                    Te.ZG(b) && (y += 1, b = a.charCodeAt(1), w = e.get(b), C++);\n                    for (let t = C; t < d; t++) {\n                        const i = t,\n                            o = a.charCodeAt(t);\n                        let r, l;\n                        Te.ZG(o) ? (t++, r = 0, l = 2) : (r = e.get(o), l = $n(o, y, n, s)), qn(b, w, o, r) && (m = i, v = y), y += l, y > _ && ((0 === m || y - v > u) && (m = i, v = y - l), g[f] = m, p[f] = v, f++, _ = v + u, m = 0), b = o, w = r\n                    }\n                    return 0 !== f || i && 0 !== i.length ? (g[f] = d, p[f] = y, new Mt.le(g, p, h, c, l)) : null\n                }\n\n                function $n(e, t, i, n) {\n                    return 9 === e ? i - t % i : Te.K7(e) || e < 32 ? n : 1\n                }\n\n                function Kn(e, t) {\n                    return t - e % t\n                }\n\n                function qn(e, t, i, n) {\n                    return 32 !== i && (2 === t || 3 === t && 2 !== n || 1 === n || 3 === n && 1 !== t)\n                }\n\n                function Zn(e, t, i, n, o) {\n                    let s = 0;\n                    if (0 !== o) {\n                        const r = Te.LC(e);\n                        if (-1 !== r) {\n                            for (let i = 0; i < r; i++) {\n                                s += 9 === e.charCodeAt(i) ? Kn(s, t) : 1\n                            }\n                            const a = 3 === o ? 2 : 2 === o ? 1 : 0;\n                            for (let e = 0; e < a; e++) {\n                                s += Kn(s, t)\n                            }\n                            s + n > i && (s = 0)\n                        }\n                    }\n                    return s\n                }\n                var Gn;\n                const Yn = null === (Gn = window.trustedTypes) || void 0 === Gn ? void 0 : Gn.createPolicy(\"domLineBreaksComputer\", {\n                    createHTML: e => e\n                });\n                class Qn {\n                    static create() {\n                        return new Qn\n                    }\n                    constructor() {}\n                    createLineBreaksComputer(e, t, i, n) {\n                        t |= 0, i = +i;\n                        let o = [],\n                            s = [];\n                        return {\n                            addRequest: (e, t, i) => {\n                                o.push(e), s.push(t)\n                            },\n                            finalize: () => function(e, t, i, n, o, s) {\n                                var r;\n\n                                function a(t) {\n                                    const i = s[t];\n                                    if (i) {\n                                        const n = xi.gk.applyInjectedText(e[t], i),\n                                            o = i.map((e => e.options)),\n                                            s = i.map((e => e.column - 1));\n                                        return new Mt.le([n.length], [], 0, s, o)\n                                    }\n                                    return null\n                                }\n                                if (-1 === n) {\n                                    const t = [];\n                                    for (let i = 0, n = e.length; i < n; i++) t[i] = a(i);\n                                    return t\n                                }\n                                const l = Math.round(n * t.typicalHalfwidthCharacterWidth),\n                                    c = 3 === o ? 2 : 2 === o ? 1 : 0,\n                                    d = Math.round(i * c),\n                                    h = Math.ceil(t.spaceWidth * d),\n                                    u = document.createElement(\"div\");\n                                p.V.applyFontInfoSlow(u, t);\n                                const g = (0, Ze.l$)(1e4),\n                                    f = [],\n                                    m = [],\n                                    v = [],\n                                    _ = [],\n                                    b = [];\n                                for (let n = 0; n < e.length; n++) {\n                                    const r = xi.gk.applyInjectedText(e[n], s[n]);\n                                    let a = 0,\n                                        c = 0,\n                                        d = l;\n                                    if (0 !== o)\n                                        if (a = Te.LC(r), -1 === a) a = 0;\n                                        else {\n                                            for (let e = 0; e < a; e++) {\n                                                c += 9 === r.charCodeAt(e) ? i - c % i : 1\n                                            }\n                                            const e = Math.ceil(t.spaceWidth * c);\n                                            e + t.typicalFullwidthCharacterWidth > l ? (a = 0, c = 0) : d = l - e\n                                        } const u = r.substr(a),\n                                        p = Xn(u, c, i, d, g, h);\n                                    f[n] = a, m[n] = c, v[n] = u, _[n] = p[0], b[n] = p[1]\n                                }\n                                const w = g.build(),\n                                    y = null !== (r = null == Yn ? void 0 : Yn.createHTML(w)) && void 0 !== r ? r : w;\n                                u.innerHTML = y, u.style.position = \"absolute\", u.style.top = \"10000\", u.style.wordWrap = \"break-word\", document.body.appendChild(u);\n                                let C = document.createRange();\n                                const x = Array.prototype.slice.call(u.children, 0);\n                                let S = [];\n                                for (let t = 0; t < e.length; t++) {\n                                    const e = Jn(C, x[t], v[t], _[t]);\n                                    if (null === e) {\n                                        S[t] = a(t);\n                                        continue\n                                    }\n                                    const i = f[t],\n                                        n = m[t] + d,\n                                        o = b[t],\n                                        r = [];\n                                    for (let t = 0, i = e.length; t < i; t++) r[t] = o[e[t]];\n                                    if (0 !== i)\n                                        for (let t = 0, n = e.length; t < n; t++) e[t] += i;\n                                    let l, c;\n                                    const h = s[t];\n                                    h ? (l = h.map((e => e.options)), c = h.map((e => e.column - 1))) : (l = null, c = null), S[t] = new Mt.le(e, r, n, c, l)\n                                }\n                                return document.body.removeChild(u), S\n                            }(o, e, t, i, n, s)\n                        }\n                    }\n                }\n\n                function Xn(e, t, i, n, o, s) {\n                    if (0 !== s) {\n                        let e = String(s);\n                        o.appendASCIIString('<div style=\"text-indent: -'), o.appendASCIIString(e), o.appendASCIIString(\"px; padding-left: \"), o.appendASCIIString(e), o.appendASCIIString(\"px; box-sizing: border-box; width:\")\n                    } else o.appendASCIIString('<div style=\"width:');\n                    o.appendASCIIString(String(n)), o.appendASCIIString('px;\">');\n                    const r = e.length;\n                    let a = t,\n                        l = 0,\n                        c = [],\n                        d = [],\n                        h = 0 < r ? e.charCodeAt(0) : 0;\n                    o.appendASCIIString(\"<span>\");\n                    for (let t = 0; t < r; t++) {\n                        0 !== t && t % 16384 == 0 && o.appendASCIIString(\"</span><span>\"), c[t] = l, d[t] = a;\n                        const n = h;\n                        h = t + 1 < r ? e.charCodeAt(t + 1) : 0;\n                        let s = 1,\n                            u = 1;\n                        switch (n) {\n                            case 9:\n                                s = i - a % i, u = s;\n                                for (let e = 1; e <= s; e++) e < s ? o.write1(160) : o.appendASCII(32);\n                                break;\n                            case 32:\n                                32 === h ? o.write1(160) : o.appendASCII(32);\n                                break;\n                            case 60:\n                                o.appendASCIIString(\"&lt;\");\n                                break;\n                            case 62:\n                                o.appendASCIIString(\"&gt;\");\n                                break;\n                            case 38:\n                                o.appendASCIIString(\"&amp;\");\n                                break;\n                            case 0:\n                                o.appendASCIIString(\"&#00;\");\n                                break;\n                            case 65279:\n                            case 8232:\n                            case 8233:\n                            case 133:\n                                o.write1(65533);\n                                break;\n                            default:\n                                Te.K7(n) && u++, n < 32 ? o.write1(9216 + n) : o.write1(n)\n                        }\n                        l += s, a += u\n                    }\n                    return o.appendASCIIString(\"</span>\"), c[e.length] = l, d[e.length] = a, o.appendASCIIString(\"</div>\"), [c, d]\n                }\n\n                function Jn(e, t, i, n) {\n                    if (i.length <= 1) return null;\n                    const o = Array.prototype.slice.call(t.children, 0),\n                        s = [];\n                    try {\n                        eo(e, o, n, 0, null, i.length - 1, null, s)\n                    } catch (e) {\n                        return console.log(e), null\n                    }\n                    return 0 === s.length ? null : (s.push(i.length), s)\n                }\n\n                function eo(e, t, i, n, o, s, r, a) {\n                    if (n === s) return;\n                    if (o = o || to(e, t, i[n], i[n + 1]), r = r || to(e, t, i[s], i[s + 1]), Math.abs(o[0].top - r[0].top) <= .1) return;\n                    if (n + 1 === s) return void a.push(s);\n                    const l = n + (s - n) / 2 | 0,\n                        c = to(e, t, i[l], i[l + 1]);\n                    eo(e, t, i, n, o, l, c, a), eo(e, t, i, l, c, s, r, a)\n                }\n\n                function to(e, t, i, n) {\n                    return e.setStart(t[i / 16384 | 0].firstChild, i % 16384), e.setEnd(t[n / 16384 | 0].firstChild, n % 16384), e.getClientRects()\n                }\n                var io = i(5795),\n                    no = function(e, t, i, n) {\n                        var o, s = arguments.length,\n                            r = s < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n                        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) r = Reflect.decorate(e, t, i, n);\n                        else\n                            for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (r = (s < 3 ? o(r) : s > 3 ? o(t, i, r) : o(t, i)) || r);\n                        return s > 3 && r && Object.defineProperty(t, i, r), r\n                    },\n                    oo = function(e, t) {\n                        return function(i, n) {\n                            t(i, n, e)\n                        }\n                    };\n                let so = 0;\n                class ro {\n                    constructor(e, t, i, n, o) {\n                        this.model = e, this.viewModel = t, this.view = i, this.hasRealView = n, this.listenersToRemove = o\n                    }\n                    dispose() {\n                        (0, u.B9)(this.listenersToRemove), this.model.onBeforeDetached(), this.hasRealView && this.view.dispose(), this.viewModel.dispose()\n                    }\n                }\n                let ao = class e extends u.JT {\n                    constructor(e, t, i, n, s, r, a, l, c, u) {\n                        super(), this._onDidDispose = this._register(new h.Q5), this.onDidDispose = this._onDidDispose.event, this._onDidChangeModelContent = this._register(new h.Q5), this.onDidChangeModelContent = this._onDidChangeModelContent.event, this._onDidChangeModelLanguage = this._register(new h.Q5), this.onDidChangeModelLanguage = this._onDidChangeModelLanguage.event, this._onDidChangeModelLanguageConfiguration = this._register(new h.Q5), this.onDidChangeModelLanguageConfiguration = this._onDidChangeModelLanguageConfiguration.event, this._onDidChangeModelOptions = this._register(new h.Q5), this.onDidChangeModelOptions = this._onDidChangeModelOptions.event, this._onDidChangeModelDecorations = this._register(new h.Q5), this.onDidChangeModelDecorations = this._onDidChangeModelDecorations.event, this._onDidChangeConfiguration = this._register(new h.Q5), this.onDidChangeConfiguration = this._onDidChangeConfiguration.event, this._onDidChangeModel = this._register(new h.Q5), this.onDidChangeModel = this._onDidChangeModel.event, this._onDidChangeCursorPosition = this._register(new h.Q5), this.onDidChangeCursorPosition = this._onDidChangeCursorPosition.event, this._onDidChangeCursorSelection = this._register(new h.Q5), this.onDidChangeCursorSelection = this._onDidChangeCursorSelection.event, this._onDidAttemptReadOnlyEdit = this._register(new h.Q5), this.onDidAttemptReadOnlyEdit = this._onDidAttemptReadOnlyEdit.event, this._onDidLayoutChange = this._register(new h.Q5), this.onDidLayoutChange = this._onDidLayoutChange.event, this._editorTextFocus = this._register(new lo), this.onDidFocusEditorText = this._editorTextFocus.onDidChangeToTrue, this.onDidBlurEditorText = this._editorTextFocus.onDidChangeToFalse, this._editorWidgetFocus = this._register(new lo), this.onDidFocusEditorWidget = this._editorWidgetFocus.onDidChangeToTrue, this.onDidBlurEditorWidget = this._editorWidgetFocus.onDidChangeToFalse, this._onWillType = this._register(new h.Q5), this.onWillType = this._onWillType.event, this._onDidType = this._register(new h.Q5), this.onDidType = this._onDidType.event, this._onDidCompositionStart = this._register(new h.Q5), this.onDidCompositionStart = this._onDidCompositionStart.event, this._onDidCompositionEnd = this._register(new h.Q5), this.onDidCompositionEnd = this._onDidCompositionEnd.event, this._onDidPaste = this._register(new h.Q5), this.onDidPaste = this._onDidPaste.event, this._onMouseUp = this._register(new h.Q5), this.onMouseUp = this._onMouseUp.event, this._onMouseDown = this._register(new h.Q5), this.onMouseDown = this._onMouseDown.event, this._onMouseDrag = this._register(new h.Q5), this.onMouseDrag = this._onMouseDrag.event, this._onMouseDrop = this._register(new h.Q5), this.onMouseDrop = this._onMouseDrop.event, this._onMouseDropCanceled = this._register(new h.Q5), this.onMouseDropCanceled = this._onMouseDropCanceled.event, this._onContextMenu = this._register(new h.Q5), this.onContextMenu = this._onContextMenu.event, this._onMouseMove = this._register(new h.Q5), this.onMouseMove = this._onMouseMove.event, this._onMouseLeave = this._register(new h.Q5), this.onMouseLeave = this._onMouseLeave.event, this._onMouseWheel = this._register(new h.Q5), this.onMouseWheel = this._onMouseWheel.event, this._onKeyUp = this._register(new h.Q5), this.onKeyUp = this._onKeyUp.event, this._onKeyDown = this._register(new h.Q5), this.onKeyDown = this._onKeyDown.event, this._onDidContentSizeChange = this._register(new h.Q5), this.onDidContentSizeChange = this._onDidContentSizeChange.event, this._onDidScrollChange = this._register(new h.Q5), this.onDidScrollChange = this._onDidScrollChange.event, this._onDidChangeViewZones = this._register(new h.Q5), this.onDidChangeViewZones = this._onDidChangeViewZones.event, this._onDidChangeHiddenAreas = this._register(new h.Q5), this.onDidChangeHiddenAreas = this._onDidChangeHiddenAreas.event;\n                        const g = Object.assign({}, t);\n                        let p;\n                        this._domElement = e, this._overflowWidgetsDomNode = g.overflowWidgetsDomNode, delete g.overflowWidgetsDomNode, this._id = ++so, this._decorationTypeKeysToIds = {}, this._decorationTypeSubtypes = {}, this.isSimpleWidget = i.isSimpleWidget || !1, this._telemetryData = i.telemetryData, this._configuration = this._register(this._createConfiguration(g, u)), this._register(this._configuration.onDidChange((e => {\n                            this._onDidChangeConfiguration.fire(e);\n                            const t = this._configuration.options;\n                            if (e.hasChanged(129)) {\n                                const e = t.get(129);\n                                this._onDidLayoutChange.fire(e)\n                            }\n                        }))), this._contextKeyService = this._register(a.createScoped(this._domElement)), this._notificationService = c, this._codeEditorService = s, this._commandService = r, this._themeService = l, this._register(new co(this, this._contextKeyService)), this._register(new ho(this, this._contextKeyService)), this._instantiationService = n.createChild(new Pn.y([An.i6, this._contextKeyService])), this._modelData = null, this._contributions = {}, this._actions = {}, this._focusTracker = new uo(e), this._register(this._focusTracker.onChange((() => {\n                            this._editorWidgetFocus.setValue(this._focusTracker.hasFocus())\n                        }))), this._contentWidgets = {}, this._overlayWidgets = {}, p = Array.isArray(i.contributions) ? i.contributions : o.Uc.getEditorContributions();\n                        for (const e of p)\n                            if (this._contributions[e.id])(0, d.dL)(new Error(`Cannot have two contributions with the same id ${e.id}`));\n                            else try {\n                                const t = this._instantiationService.createInstance(e.ctor, this);\n                                this._contributions[e.id] = t\n                            } catch (e) {\n                                (0, d.dL)(e)\n                            }\n                        o.Uc.getEditorActions().forEach((e => {\n                            if (this._actions[e.id]) return void(0, d.dL)(new Error(`Cannot have two actions with the same id ${e.id}`));\n                            const t = new en.p(e.id, e.label, e.alias, (0, wt.f6)(e.precondition), (() => this._instantiationService.invokeFunction((t => Promise.resolve(e.runEditorCommand(t, this, null))))), this._contextKeyService);\n                            this._actions[t.id] = t\n                        })), this._codeEditorService.addCodeEditor(this)\n                    }\n                    _createConfiguration(e, t) {\n                        return new p.V(this.isSimpleWidget, e, this._domElement, t)\n                    }\n                    getId() {\n                        return this.getEditorType() + \":\" + this._id\n                    }\n                    getEditorType() {\n                        return tn.g.ICodeEditor\n                    }\n                    dispose() {\n                        this._codeEditorService.removeCodeEditor(this), this._focusTracker.dispose();\n                        const e = Object.keys(this._contributions);\n                        for (let t = 0, i = e.length; t < i; t++) {\n                            const i = e[t];\n                            this._contributions[i].dispose()\n                        }\n                        this._contributions = {}, this._actions = {}, this._contentWidgets = {}, this._overlayWidgets = {}, this._removeDecorationTypes(), this._postDetachModelCleanup(this._detachModel()), this._onDidDispose.fire(), super.dispose()\n                    }\n                    invokeWithinContext(e) {\n                        return this._instantiationService.invokeFunction(e)\n                    }\n                    updateOptions(e) {\n                        this._configuration.updateOptions(e)\n                    }\n                    getOptions() {\n                        return this._configuration.options\n                    }\n                    getOption(e) {\n                        return this._configuration.options.get(e)\n                    }\n                    getRawOptions() {\n                        return this._configuration.getRawOptions()\n                    }\n                    getOverflowWidgetsDomNode() {\n                        return this._overflowWidgetsDomNode\n                    }\n                    getConfiguredWordAtPosition(e) {\n                        return this._modelData ? io.w.getWordAtPosition(this._modelData.model, this._configuration.options.get(115), e) : null\n                    }\n                    getValue(e = null) {\n                        if (!this._modelData) return \"\";\n                        const t = !(!e || !e.preserveBOM);\n                        let i = 0;\n                        return e && e.lineEnding && \"\\n\" === e.lineEnding ? i = 1 : e && e.lineEnding && \"\\r\\n\" === e.lineEnding && (i = 2), this._modelData.model.getValue(i, t)\n                    }\n                    setValue(e) {\n                        this._modelData && this._modelData.model.setValue(e)\n                    }\n                    getModel() {\n                        return this._modelData ? this._modelData.model : null\n                    }\n                    setModel(e = null) {\n                        const t = e;\n                        if (null === this._modelData && null === t) return;\n                        if (this._modelData && this._modelData.model === t) return;\n                        const i = this.hasTextFocus(),\n                            n = this._detachModel();\n                        this._attachModel(t), i && this.hasModel() && this.focus();\n                        const o = {\n                            oldModelUrl: n ? n.uri : null,\n                            newModelUrl: t ? t.uri : null\n                        };\n                        this._removeDecorationTypes(), this._onDidChangeModel.fire(o), this._postDetachModelCleanup(n)\n                    }\n                    _removeDecorationTypes() {\n                        if (this._decorationTypeKeysToIds = {}, this._decorationTypeSubtypes) {\n                            for (let e in this._decorationTypeSubtypes) {\n                                const t = this._decorationTypeSubtypes[e];\n                                for (let i in t) this._removeDecorationType(e + \"-\" + i)\n                            }\n                            this._decorationTypeSubtypes = {}\n                        }\n                    }\n                    getVisibleRanges() {\n                        return this._modelData ? this._modelData.viewModel.getVisibleRanges() : []\n                    }\n                    getVisibleRangesPlusViewportAboveBelow() {\n                        return this._modelData ? this._modelData.viewModel.getVisibleRangesPlusViewportAboveBelow() : []\n                    }\n                    getWhitespaces() {\n                        return this._modelData ? this._modelData.viewModel.viewLayout.getWhitespaces() : []\n                    }\n                    static _getVerticalOffsetForPosition(e, t, i) {\n                        const n = e.model.validatePosition({\n                                lineNumber: t,\n                                column: i\n                            }),\n                            o = e.viewModel.coordinatesConverter.convertModelPositionToViewPosition(n);\n                        return e.viewModel.viewLayout.getVerticalOffsetForLineNumber(o.lineNumber)\n                    }\n                    getTopForLineNumber(t) {\n                        return this._modelData ? e._getVerticalOffsetForPosition(this._modelData, t, 1) : -1\n                    }\n                    getTopForPosition(t, i) {\n                        return this._modelData ? e._getVerticalOffsetForPosition(this._modelData, t, i) : -1\n                    }\n                    setHiddenAreas(e) {\n                        this._modelData && this._modelData.viewModel.setHiddenAreas(e.map((e => re.e.lift(e))))\n                    }\n                    getVisibleColumnFromPosition(e) {\n                        if (!this._modelData) return e.column;\n                        const t = this._modelData.model.validatePosition(e),\n                            i = this._modelData.model.getOptions().tabSize;\n                        return ae.io.visibleColumnFromColumn(this._modelData.model.getLineContent(t.lineNumber), t.column, i) + 1\n                    }\n                    getPosition() {\n                        return this._modelData ? this._modelData.viewModel.getPosition() : null\n                    }\n                    setPosition(e) {\n                        if (this._modelData) {\n                            if (!se.L.isIPosition(e)) throw new Error(\"Invalid arguments\");\n                            this._modelData.viewModel.setSelections(\"api\", [{\n                                selectionStartLineNumber: e.lineNumber,\n                                selectionStartColumn: e.column,\n                                positionLineNumber: e.lineNumber,\n                                positionColumn: e.column\n                            }])\n                        }\n                    }\n                    _sendRevealRange(e, t, i, n) {\n                        if (!this._modelData) return;\n                        if (!re.e.isIRange(e)) throw new Error(\"Invalid arguments\");\n                        const o = this._modelData.model.validateRange(e),\n                            s = this._modelData.viewModel.coordinatesConverter.convertModelRangeToViewRange(o);\n                        this._modelData.viewModel.revealRange(\"api\", i, s, t, n)\n                    }\n                    revealLine(e, t = 0) {\n                        this._revealLine(e, 0, t)\n                    }\n                    revealLineInCenter(e, t = 0) {\n                        this._revealLine(e, 1, t)\n                    }\n                    revealLineInCenterIfOutsideViewport(e, t = 0) {\n                        this._revealLine(e, 2, t)\n                    }\n                    revealLineNearTop(e, t = 0) {\n                        this._revealLine(e, 5, t)\n                    }\n                    _revealLine(e, t, i) {\n                        if (\"number\" != typeof e) throw new Error(\"Invalid arguments\");\n                        this._sendRevealRange(new re.e(e, 1, e, 1), t, !1, i)\n                    }\n                    revealPosition(e, t = 0) {\n                        this._revealPosition(e, 0, !0, t)\n                    }\n                    revealPositionInCenter(e, t = 0) {\n                        this._revealPosition(e, 1, !0, t)\n                    }\n                    revealPositionInCenterIfOutsideViewport(e, t = 0) {\n                        this._revealPosition(e, 2, !0, t)\n                    }\n                    revealPositionNearTop(e, t = 0) {\n                        this._revealPosition(e, 5, !0, t)\n                    }\n                    _revealPosition(e, t, i, n) {\n                        if (!se.L.isIPosition(e)) throw new Error(\"Invalid arguments\");\n                        this._sendRevealRange(new re.e(e.lineNumber, e.column, e.lineNumber, e.column), t, i, n)\n                    }\n                    getSelection() {\n                        return this._modelData ? this._modelData.viewModel.getSelection() : null\n                    }\n                    getSelections() {\n                        return this._modelData ? this._modelData.viewModel.getSelections() : null\n                    }\n                    setSelection(e) {\n                        const t = v.Y.isISelection(e),\n                            i = re.e.isIRange(e);\n                        if (!t && !i) throw new Error(\"Invalid arguments\");\n                        if (t) this._setSelectionImpl(e);\n                        else if (i) {\n                            const t = {\n                                selectionStartLineNumber: e.startLineNumber,\n                                selectionStartColumn: e.startColumn,\n                                positionLineNumber: e.endLineNumber,\n                                positionColumn: e.endColumn\n                            };\n                            this._setSelectionImpl(t)\n                        }\n                    }\n                    _setSelectionImpl(e) {\n                        if (!this._modelData) return;\n                        const t = new v.Y(e.selectionStartLineNumber, e.selectionStartColumn, e.positionLineNumber, e.positionColumn);\n                        this._modelData.viewModel.setSelections(\"api\", [t])\n                    }\n                    revealLines(e, t, i = 0) {\n                        this._revealLines(e, t, 0, i)\n                    }\n                    revealLinesInCenter(e, t, i = 0) {\n                        this._revealLines(e, t, 1, i)\n                    }\n                    revealLinesInCenterIfOutsideViewport(e, t, i = 0) {\n                        this._revealLines(e, t, 2, i)\n                    }\n                    revealLinesNearTop(e, t, i = 0) {\n                        this._revealLines(e, t, 5, i)\n                    }\n                    _revealLines(e, t, i, n) {\n                        if (\"number\" != typeof e || \"number\" != typeof t) throw new Error(\"Invalid arguments\");\n                        this._sendRevealRange(new re.e(e, 1, t, 1), i, !1, n)\n                    }\n                    revealRange(e, t = 0, i = !1, n = !0) {\n                        this._revealRange(e, i ? 1 : 0, n, t)\n                    }\n                    revealRangeInCenter(e, t = 0) {\n                        this._revealRange(e, 1, !0, t)\n                    }\n                    revealRangeInCenterIfOutsideViewport(e, t = 0) {\n                        this._revealRange(e, 2, !0, t)\n                    }\n                    revealRangeNearTop(e, t = 0) {\n                        this._revealRange(e, 5, !0, t)\n                    }\n                    revealRangeNearTopIfOutsideViewport(e, t = 0) {\n                        this._revealRange(e, 6, !0, t)\n                    }\n                    revealRangeAtTop(e, t = 0) {\n                        this._revealRange(e, 3, !0, t)\n                    }\n                    _revealRange(e, t, i, n) {\n                        if (!re.e.isIRange(e)) throw new Error(\"Invalid arguments\");\n                        this._sendRevealRange(re.e.lift(e), t, i, n)\n                    }\n                    setSelections(e, t = \"api\", i = 0) {\n                        if (this._modelData) {\n                            if (!e || 0 === e.length) throw new Error(\"Invalid arguments\");\n                            for (let t = 0, i = e.length; t < i; t++)\n                                if (!v.Y.isISelection(e[t])) throw new Error(\"Invalid arguments\");\n                            this._modelData.viewModel.setSelections(t, e, i)\n                        }\n                    }\n                    getContentWidth() {\n                        return this._modelData ? this._modelData.viewModel.viewLayout.getContentWidth() : -1\n                    }\n                    getScrollWidth() {\n                        return this._modelData ? this._modelData.viewModel.viewLayout.getScrollWidth() : -1\n                    }\n                    getScrollLeft() {\n                        return this._modelData ? this._modelData.viewModel.viewLayout.getCurrentScrollLeft() : -1\n                    }\n                    getContentHeight() {\n                        return this._modelData ? this._modelData.viewModel.viewLayout.getContentHeight() : -1\n                    }\n                    getScrollHeight() {\n                        return this._modelData ? this._modelData.viewModel.viewLayout.getScrollHeight() : -1\n                    }\n                    getScrollTop() {\n                        return this._modelData ? this._modelData.viewModel.viewLayout.getCurrentScrollTop() : -1\n                    }\n                    setScrollLeft(e, t = 1) {\n                        if (this._modelData) {\n                            if (\"number\" != typeof e) throw new Error(\"Invalid arguments\");\n                            this._modelData.viewModel.setScrollPosition({\n                                scrollLeft: e\n                            }, t)\n                        }\n                    }\n                    setScrollTop(e, t = 1) {\n                        if (this._modelData) {\n                            if (\"number\" != typeof e) throw new Error(\"Invalid arguments\");\n                            this._modelData.viewModel.setScrollPosition({\n                                scrollTop: e\n                            }, t)\n                        }\n                    }\n                    setScrollPosition(e, t = 1) {\n                        this._modelData && this._modelData.viewModel.setScrollPosition(e, t)\n                    }\n                    saveViewState() {\n                        if (!this._modelData) return null;\n                        const e = {},\n                            t = Object.keys(this._contributions);\n                        for (const i of t) {\n                            const t = this._contributions[i];\n                            \"function\" == typeof t.saveViewState && (e[i] = t.saveViewState())\n                        }\n                        return {\n                            cursorState: this._modelData.viewModel.saveCursorState(),\n                            viewState: this._modelData.viewModel.saveState(),\n                            contributionsState: e\n                        }\n                    }\n                    restoreViewState(e) {\n                        if (!this._modelData || !this._modelData.hasRealView) return;\n                        const t = e;\n                        if (t && t.cursorState && t.viewState) {\n                            const e = t.cursorState;\n                            Array.isArray(e) ? this._modelData.viewModel.restoreCursorState(e) : this._modelData.viewModel.restoreCursorState([e]);\n                            const i = t.contributionsState || {},\n                                n = Object.keys(this._contributions);\n                            for (let e = 0, t = n.length; e < t; e++) {\n                                const t = n[e],\n                                    o = this._contributions[t];\n                                \"function\" == typeof o.restoreViewState && o.restoreViewState(i[t])\n                            }\n                            const o = this._modelData.viewModel.reduceRestoreState(t.viewState);\n                            this._modelData.view.restoreState(o)\n                        }\n                    }\n                    getContribution(e) {\n                        return this._contributions[e] || null\n                    }\n                    getActions() {\n                        const e = [],\n                            t = Object.keys(this._actions);\n                        for (let i = 0, n = t.length; i < n; i++) {\n                            const n = t[i];\n                            e.push(this._actions[n])\n                        }\n                        return e\n                    }\n                    getSupportedActions() {\n                        let e = this.getActions();\n                        return e = e.filter((e => e.isSupported())), e\n                    }\n                    getAction(e) {\n                        return this._actions[e] || null\n                    }\n                    trigger(e, t, i) {\n                        switch (i = i || {}, t) {\n                            case \"compositionStart\":\n                                return void this._startComposition();\n                            case \"compositionEnd\":\n                                return void this._endComposition(e);\n                            case \"type\": {\n                                const t = i;\n                                return void this._type(e, t.text || \"\")\n                            }\n                            case \"replacePreviousChar\": {\n                                const t = i;\n                                return void this._compositionType(e, t.text || \"\", t.replaceCharCnt || 0, 0, 0)\n                            }\n                            case \"compositionType\": {\n                                const t = i;\n                                return void this._compositionType(e, t.text || \"\", t.replacePrevCharCnt || 0, t.replaceNextCharCnt || 0, t.positionDelta || 0)\n                            }\n                            case \"paste\": {\n                                const t = i;\n                                return void this._paste(e, t.text || \"\", t.pasteOnNewLine || !1, t.multicursorText || null, t.mode || null)\n                            }\n                            case \"cut\":\n                                return void this._cut(e)\n                        }\n                        const n = this.getAction(t);\n                        n ? Promise.resolve(n.run()).then(void 0, d.dL) : this._modelData && (this._triggerEditorCommand(e, t, i) || this._triggerCommand(t, i))\n                    }\n                    _triggerCommand(e, t) {\n                        this._commandService.executeCommand(e, t)\n                    }\n                    _startComposition() {\n                        this._modelData && (this._modelData.viewModel.startComposition(), this._onDidCompositionStart.fire())\n                    }\n                    _endComposition(e) {\n                        this._modelData && (this._modelData.viewModel.endComposition(e), this._onDidCompositionEnd.fire())\n                    }\n                    _type(e, t) {\n                        this._modelData && 0 !== t.length && (\"keyboard\" === e && this._onWillType.fire(t), this._modelData.viewModel.type(t, e), \"keyboard\" === e && this._onDidType.fire(t))\n                    }\n                    _compositionType(e, t, i, n, o) {\n                        this._modelData && this._modelData.viewModel.compositionType(t, i, n, o, e)\n                    }\n                    _paste(e, t, i, n, o) {\n                        if (!this._modelData || 0 === t.length) return;\n                        const s = this._modelData.viewModel.getSelection().getStartPosition();\n                        this._modelData.viewModel.paste(t, i, n, e);\n                        const r = this._modelData.viewModel.getSelection().getStartPosition();\n                        \"keyboard\" === e && this._onDidPaste.fire({\n                            range: new re.e(s.lineNumber, s.column, r.lineNumber, r.column),\n                            languageId: o\n                        })\n                    }\n                    _cut(e) {\n                        this._modelData && this._modelData.viewModel.cut(e)\n                    }\n                    _triggerEditorCommand(e, t, i) {\n                        const n = o.Uc.getEditorCommand(t);\n                        return !!n && ((i = i || {}).source = e, this._instantiationService.invokeFunction((e => {\n                            Promise.resolve(n.runEditorCommand(e, this, i)).then(void 0, d.dL)\n                        })), !0)\n                    }\n                    _getViewModel() {\n                        return this._modelData ? this._modelData.viewModel : null\n                    }\n                    pushUndoStop() {\n                        return !!this._modelData && (!this._configuration.options.get(80) && (this._modelData.model.pushStackElement(), !0))\n                    }\n                    popUndoStop() {\n                        return !!this._modelData && (!this._configuration.options.get(80) && (this._modelData.model.popStackElement(), !0))\n                    }\n                    executeEdits(e, t, i) {\n                        if (!this._modelData) return !1;\n                        if (this._configuration.options.get(80)) return !1;\n                        let n;\n                        return n = i ? Array.isArray(i) ? () => i : i : () => null, this._modelData.viewModel.executeEdits(e, t, n), !0\n                    }\n                    executeCommand(e, t) {\n                        this._modelData && this._modelData.viewModel.executeCommand(t, e)\n                    }\n                    executeCommands(e, t) {\n                        this._modelData && this._modelData.viewModel.executeCommands(t, e)\n                    }\n                    changeDecorations(e) {\n                        return this._modelData ? this._modelData.model.changeDecorations(e, this._id) : null\n                    }\n                    getLineDecorations(e) {\n                        return this._modelData ? this._modelData.model.getLineDecorations(e, this._id, (0, K.$J)(this._configuration.options)) : null\n                    }\n                    deltaDecorations(e, t) {\n                        return this._modelData ? 0 === e.length && 0 === t.length ? e : this._modelData.model.deltaDecorations(e, t, this._id) : []\n                    }\n                    removeDecorations(e) {\n                        const t = this._decorationTypeKeysToIds[e];\n                        t && this.deltaDecorations(t, []), this._decorationTypeKeysToIds.hasOwnProperty(e) && delete this._decorationTypeKeysToIds[e], this._decorationTypeSubtypes.hasOwnProperty(e) && delete this._decorationTypeSubtypes[e]\n                    }\n                    getLayoutInfo() {\n                        return this._configuration.options.get(129)\n                    }\n                    createOverviewRuler(e) {\n                        return this._modelData && this._modelData.hasRealView ? this._modelData.view.createOverviewRuler(e) : null\n                    }\n                    getContainerDomNode() {\n                        return this._domElement\n                    }\n                    getDomNode() {\n                        return this._modelData && this._modelData.hasRealView ? this._modelData.view.domNode.domNode : null\n                    }\n                    delegateVerticalScrollbarMouseDown(e) {\n                        this._modelData && this._modelData.hasRealView && this._modelData.view.delegateVerticalScrollbarMouseDown(e)\n                    }\n                    layout(e) {\n                        this._configuration.observeReferenceElement(e), this.render()\n                    }\n                    focus() {\n                        this._modelData && this._modelData.hasRealView && this._modelData.view.focus()\n                    }\n                    hasTextFocus() {\n                        return !(!this._modelData || !this._modelData.hasRealView) && this._modelData.view.isFocused()\n                    }\n                    hasWidgetFocus() {\n                        return this._focusTracker && this._focusTracker.hasFocus()\n                    }\n                    addContentWidget(e) {\n                        const t = {\n                            widget: e,\n                            position: e.getPosition()\n                        };\n                        this._contentWidgets.hasOwnProperty(e.getId()) && console.warn(\"Overwriting a content widget with the same id.\"), this._contentWidgets[e.getId()] = t, this._modelData && this._modelData.hasRealView && this._modelData.view.addContentWidget(t)\n                    }\n                    layoutContentWidget(e) {\n                        const t = e.getId();\n                        if (this._contentWidgets.hasOwnProperty(t)) {\n                            const i = this._contentWidgets[t];\n                            i.position = e.getPosition(), this._modelData && this._modelData.hasRealView && this._modelData.view.layoutContentWidget(i)\n                        }\n                    }\n                    removeContentWidget(e) {\n                        const t = e.getId();\n                        if (this._contentWidgets.hasOwnProperty(t)) {\n                            const e = this._contentWidgets[t];\n                            delete this._contentWidgets[t], this._modelData && this._modelData.hasRealView && this._modelData.view.removeContentWidget(e)\n                        }\n                    }\n                    addOverlayWidget(e) {\n                        const t = {\n                            widget: e,\n                            position: e.getPosition()\n                        };\n                        this._overlayWidgets.hasOwnProperty(e.getId()) && console.warn(\"Overwriting an overlay widget with the same id.\"), this._overlayWidgets[e.getId()] = t, this._modelData && this._modelData.hasRealView && this._modelData.view.addOverlayWidget(t)\n                    }\n                    layoutOverlayWidget(e) {\n                        const t = e.getId();\n                        if (this._overlayWidgets.hasOwnProperty(t)) {\n                            const i = this._overlayWidgets[t];\n                            i.position = e.getPosition(), this._modelData && this._modelData.hasRealView && this._modelData.view.layoutOverlayWidget(i)\n                        }\n                    }\n                    removeOverlayWidget(e) {\n                        const t = e.getId();\n                        if (this._overlayWidgets.hasOwnProperty(t)) {\n                            const e = this._overlayWidgets[t];\n                            delete this._overlayWidgets[t], this._modelData && this._modelData.hasRealView && this._modelData.view.removeOverlayWidget(e)\n                        }\n                    }\n                    changeViewZones(e) {\n                        this._modelData && this._modelData.hasRealView && this._modelData.view.change(e)\n                    }\n                    getTargetAtClientPoint(e, t) {\n                        return this._modelData && this._modelData.hasRealView ? this._modelData.view.getTargetAtClientPoint(e, t) : null\n                    }\n                    getScrolledVisiblePosition(t) {\n                        if (!this._modelData || !this._modelData.hasRealView) return null;\n                        const i = this._modelData.model.validatePosition(t),\n                            n = this._configuration.options,\n                            o = n.get(129);\n                        return {\n                            top: e._getVerticalOffsetForPosition(this._modelData, i.lineNumber, i.column) - this.getScrollTop(),\n                            left: this._modelData.view.getOffsetForColumn(i.lineNumber, i.column) + o.glyphMarginWidth + o.lineNumbersWidth + o.decorationsWidth - this.getScrollLeft(),\n                            height: n.get(58)\n                        }\n                    }\n                    getOffsetForColumn(e, t) {\n                        return this._modelData && this._modelData.hasRealView ? this._modelData.view.getOffsetForColumn(e, t) : -1\n                    }\n                    render(e = !1) {\n                        this._modelData && this._modelData.hasRealView && this._modelData.view.render(!0, e)\n                    }\n                    setAriaOptions(e) {\n                        this._modelData && this._modelData.hasRealView && this._modelData.view.setAriaOptions(e)\n                    }\n                    applyFontInfo(e) {\n                        p.V.applyFontInfoSlow(e, this._configuration.options.get(43))\n                    }\n                    _attachModel(e) {\n                        if (!e) return void(this._modelData = null);\n                        const t = [];\n                        this._domElement.setAttribute(\"data-mode-id\", e.getLanguageId()), this._configuration.setIsDominatedByLongLines(e.isDominatedByLongLines()), this._configuration.setMaxLineNumber(e.getLineCount()), e.onBeforeAttached();\n                        const i = new En(this._id, this._configuration, e, Qn.create(), zn.create(this._configuration.options), (e => c.jL(e)));\n                        t.push(e.onDidChangeDecorations((e => this._onDidChangeModelDecorations.fire(e)))), t.push(e.onDidChangeLanguage((t => {\n                            this._domElement.setAttribute(\"data-mode-id\", e.getLanguageId()), this._onDidChangeModelLanguage.fire(t)\n                        }))), t.push(e.onDidChangeLanguageConfiguration((e => this._onDidChangeModelLanguageConfiguration.fire(e)))), t.push(e.onDidChangeContent((e => this._onDidChangeModelContent.fire(e)))), t.push(e.onDidChangeOptions((e => this._onDidChangeModelOptions.fire(e)))), t.push(e.onWillDispose((() => this.setModel(null)))), t.push(i.onEvent((e => {\n                            switch (e.kind) {\n                                case 0:\n                                    this._onDidContentSizeChange.fire(e);\n                                    break;\n                                case 1:\n                                    this._editorTextFocus.setValue(e.hasFocus);\n                                    break;\n                                case 2:\n                                    this._onDidScrollChange.fire(e);\n                                    break;\n                                case 3:\n                                    this._onDidChangeViewZones.fire();\n                                    break;\n                                case 4:\n                                    this._onDidChangeHiddenAreas.fire();\n                                    break;\n                                case 5:\n                                    this._onDidAttemptReadOnlyEdit.fire();\n                                    break;\n                                case 6: {\n                                    e.reachedMaxCursorCount && this._notificationService.warn(l.N(\"cursors.maximum\", \"The number of cursors has been limited to {0}.\", Xi.MAX_CURSOR_COUNT));\n                                    const t = [];\n                                    for (let i = 0, n = e.selections.length; i < n; i++) t[i] = e.selections[i].getPosition();\n                                    const i = {\n                                        position: t[0],\n                                        secondaryPositions: t.slice(1),\n                                        reason: e.reason,\n                                        source: e.source\n                                    };\n                                    this._onDidChangeCursorPosition.fire(i);\n                                    const n = {\n                                        selection: e.selections[0],\n                                        secondarySelections: e.selections.slice(1),\n                                        modelVersionId: e.modelVersionId,\n                                        oldSelections: e.oldSelections,\n                                        oldModelVersionId: e.oldModelVersionId,\n                                        source: e.source,\n                                        reason: e.reason\n                                    };\n                                    this._onDidChangeCursorSelection.fire(n);\n                                    break\n                                }\n                            }\n                        })));\n                        const [n, o] = this._createView(i);\n                        if (o) {\n                            this._domElement.appendChild(n.domNode.domNode);\n                            let t = Object.keys(this._contentWidgets);\n                            for (let e = 0, i = t.length; e < i; e++) {\n                                const i = t[e];\n                                n.addContentWidget(this._contentWidgets[i])\n                            }\n                            t = Object.keys(this._overlayWidgets);\n                            for (let e = 0, i = t.length; e < i; e++) {\n                                const i = t[e];\n                                n.addOverlayWidget(this._overlayWidgets[i])\n                            }\n                            n.render(!1, !0), n.domNode.domNode.setAttribute(\"data-uri\", e.uri.toString())\n                        }\n                        this._modelData = new ro(e, i, n, o, t)\n                    }\n                    _createView(e) {\n                        let t;\n                        t = this.isSimpleWidget ? {\n                            paste: (e, t, i, n) => {\n                                this._paste(\"keyboard\", e, t, i, n)\n                            },\n                            type: e => {\n                                this._type(\"keyboard\", e)\n                            },\n                            compositionType: (e, t, i, n) => {\n                                this._compositionType(\"keyboard\", e, t, i, n)\n                            },\n                            startComposition: () => {\n                                this._startComposition()\n                            },\n                            endComposition: () => {\n                                this._endComposition(\"keyboard\")\n                            },\n                            cut: () => {\n                                this._cut(\"keyboard\")\n                            }\n                        } : {\n                            paste: (e, t, i, n) => {\n                                const o = {\n                                    text: e,\n                                    pasteOnNewLine: t,\n                                    multicursorText: i,\n                                    mode: n\n                                };\n                                this._commandService.executeCommand(\"paste\", o)\n                            },\n                            type: e => {\n                                const t = {\n                                    text: e\n                                };\n                                this._commandService.executeCommand(\"type\", t)\n                            },\n                            compositionType: (e, t, i, n) => {\n                                if (i || n) {\n                                    const o = {\n                                        text: e,\n                                        replacePrevCharCnt: t,\n                                        replaceNextCharCnt: i,\n                                        positionDelta: n\n                                    };\n                                    this._commandService.executeCommand(\"compositionType\", o)\n                                } else {\n                                    const i = {\n                                        text: e,\n                                        replaceCharCnt: t\n                                    };\n                                    this._commandService.executeCommand(\"replacePreviousChar\", i)\n                                }\n                            },\n                            startComposition: () => {\n                                this._commandService.executeCommand(\"compositionStart\", {})\n                            },\n                            endComposition: () => {\n                                this._commandService.executeCommand(\"compositionEnd\", {})\n                            },\n                            cut: () => {\n                                this._commandService.executeCommand(\"cut\", {})\n                            }\n                        };\n                        const i = new $e(e.coordinatesConverter);\n                        i.onKeyDown = e => this._onKeyDown.fire(e), i.onKeyUp = e => this._onKeyUp.fire(e), i.onContextMenu = e => this._onContextMenu.fire(e), i.onMouseMove = e => this._onMouseMove.fire(e), i.onMouseLeave = e => this._onMouseLeave.fire(e), i.onMouseDown = e => this._onMouseDown.fire(e), i.onMouseUp = e => this._onMouseUp.fire(e), i.onMouseDrag = e => this._onMouseDrag.fire(e), i.onMouseDrop = e => this._onMouseDrop.fire(e), i.onMouseDropCanceled = e => this._onMouseDropCanceled.fire(e), i.onMouseWheel = e => this._onMouseWheel.fire(e);\n                        return [new _i(t, this._configuration, this._themeService, e, i, this._overflowWidgetsDomNode), !0]\n                    }\n                    _postDetachModelCleanup(e) {\n                        e && e.removeAllDecorationsWithOwnerId(this._id)\n                    }\n                    _detachModel() {\n                        if (!this._modelData) return null;\n                        const e = this._modelData.model,\n                            t = this._modelData.hasRealView ? this._modelData.view.domNode.domNode : null;\n                        return this._modelData.dispose(), this._modelData = null, this._domElement.removeAttribute(\"data-mode-id\"), t && this._domElement.contains(t) && this._domElement.removeChild(t), e\n                    }\n                    _removeDecorationType(e) {\n                        this._codeEditorService.removeDecorationType(e)\n                    }\n                    hasModel() {\n                        return null !== this._modelData\n                    }\n                };\n                ao = no([oo(3, On.TG), oo(4, f.$), oo(5, Mn.H), oo(6, An.i6), oo(7, Pe.XE), oo(8, Rn.lT), oo(9, Fn.F)], ao);\n                class lo extends u.JT {\n                    constructor() {\n                        super(), this._onDidChangeToTrue = this._register(new h.Q5), this.onDidChangeToTrue = this._onDidChangeToTrue.event, this._onDidChangeToFalse = this._register(new h.Q5), this.onDidChangeToFalse = this._onDidChangeToFalse.event, this._value = 0\n                    }\n                    setValue(e) {\n                        const t = e ? 2 : 1;\n                        this._value !== t && (this._value = t, 2 === this._value ? this._onDidChangeToTrue.fire() : 1 === this._value && this._onDidChangeToFalse.fire())\n                    }\n                }\n                class co extends u.JT {\n                    constructor(e, t) {\n                        super(), this._editor = e, t.createKey(\"editorId\", e.getId()), this._editorSimpleInput = nn.u.editorSimpleInput.bindTo(t), this._editorFocus = nn.u.focus.bindTo(t), this._textInputFocus = nn.u.textInputFocus.bindTo(t), this._editorTextFocus = nn.u.editorTextFocus.bindTo(t), this._editorTabMovesFocus = nn.u.tabMovesFocus.bindTo(t), this._editorReadonly = nn.u.readOnly.bindTo(t), this._inDiffEditor = nn.u.inDiffEditor.bindTo(t), this._editorColumnSelection = nn.u.columnSelection.bindTo(t), this._hasMultipleSelections = nn.u.hasMultipleSelections.bindTo(t), this._hasNonEmptySelection = nn.u.hasNonEmptySelection.bindTo(t), this._canUndo = nn.u.canUndo.bindTo(t), this._canRedo = nn.u.canRedo.bindTo(t), 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._updateFromConfig(), this._updateFromSelection(), this._updateFromFocus(), this._updateFromModel(), this._editorSimpleInput.set(this._editor.isSimpleWidget)\n                    }\n                    _updateFromConfig() {\n                        const e = this._editor.getOptions();\n                        this._editorTabMovesFocus.set(e.get(128)), this._editorReadonly.set(e.get(80)), this._inDiffEditor.set(e.get(53)), this._editorColumnSelection.set(e.get(18))\n                    }\n                    _updateFromSelection() {\n                        const e = this._editor.getSelections();\n                        e ? (this._hasMultipleSelections.set(e.length > 1), this._hasNonEmptySelection.set(e.some((e => !e.isEmpty())))) : (this._hasMultipleSelections.reset(), this._hasNonEmptySelection.reset())\n                    }\n                    _updateFromFocus() {\n                        this._editorFocus.set(this._editor.hasWidgetFocus() && !this._editor.isSimpleWidget), this._editorTextFocus.set(this._editor.hasTextFocus() && !this._editor.isSimpleWidget), this._textInputFocus.set(this._editor.hasTextFocus())\n                    }\n                    _updateFromModel() {\n                        const e = this._editor.getModel();\n                        this._canUndo.set(Boolean(e && e.canUndo())), this._canRedo.set(Boolean(e && e.canRedo()))\n                    }\n                }\n                class ho extends u.JT {\n                    constructor(e, t) {\n                        super(), this._editor = e, this._contextKeyService = t, this._langId = nn.u.languageId.bindTo(t), this._hasCompletionItemProvider = nn.u.hasCompletionItemProvider.bindTo(t), this._hasCodeActionsProvider = nn.u.hasCodeActionsProvider.bindTo(t), this._hasCodeLensProvider = nn.u.hasCodeLensProvider.bindTo(t), this._hasDefinitionProvider = nn.u.hasDefinitionProvider.bindTo(t), this._hasDeclarationProvider = nn.u.hasDeclarationProvider.bindTo(t), this._hasImplementationProvider = nn.u.hasImplementationProvider.bindTo(t), this._hasTypeDefinitionProvider = nn.u.hasTypeDefinitionProvider.bindTo(t), this._hasHoverProvider = nn.u.hasHoverProvider.bindTo(t), this._hasDocumentHighlightProvider = nn.u.hasDocumentHighlightProvider.bindTo(t), this._hasDocumentSymbolProvider = nn.u.hasDocumentSymbolProvider.bindTo(t), this._hasReferenceProvider = nn.u.hasReferenceProvider.bindTo(t), this._hasRenameProvider = nn.u.hasRenameProvider.bindTo(t), this._hasSignatureHelpProvider = nn.u.hasSignatureHelpProvider.bindTo(t), this._hasInlayHintsProvider = nn.u.hasInlayHintsProvider.bindTo(t), this._hasDocumentFormattingProvider = nn.u.hasDocumentFormattingProvider.bindTo(t), this._hasDocumentSelectionFormattingProvider = nn.u.hasDocumentSelectionFormattingProvider.bindTo(t), this._hasMultipleDocumentFormattingProvider = nn.u.hasMultipleDocumentFormattingProvider.bindTo(t), this._hasMultipleDocumentSelectionFormattingProvider = nn.u.hasMultipleDocumentSelectionFormattingProvider.bindTo(t), this._isInWalkThrough = nn.u.isInWalkThroughSnippet.bindTo(t);\n                        const i = () => this._update();\n                        this._register(e.onDidChangeModel(i)), this._register(e.onDidChangeModelLanguage(i)), this._register(Et.KZ.onDidChange(i)), this._register(Et.H9.onDidChange(i)), this._register(Et.He.onDidChange(i)), this._register(Et.Ct.onDidChange(i)), this._register(Et.RN.onDidChange(i)), this._register(Et.vI.onDidChange(i)), this._register(Et.tA.onDidChange(i)), this._register(Et.xp.onDidChange(i)), this._register(Et.vH.onDidChange(i)), this._register(Et.vJ.onDidChange(i)), this._register(Et.FL.onDidChange(i)), this._register(Et.G0.onDidChange(i)), this._register(Et.Az.onDidChange(i)), this._register(Et.vN.onDidChange(i)), this._register(Et.nD.onDidChange(i)), this._register(Et.mX.onDidChange(i)), i()\n                    }\n                    dispose() {\n                        super.dispose()\n                    }\n                    reset() {\n                        this._contextKeyService.bufferChangeEvents((() => {\n                            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._isInWalkThrough.reset()\n                        }))\n                    }\n                    _update() {\n                        const e = this._editor.getModel();\n                        e ? this._contextKeyService.bufferChangeEvents((() => {\n                            this._langId.set(e.getLanguageId()), this._hasCompletionItemProvider.set(Et.KZ.has(e)), this._hasCodeActionsProvider.set(Et.H9.has(e)), this._hasCodeLensProvider.set(Et.He.has(e)), this._hasDefinitionProvider.set(Et.Ct.has(e)), this._hasDeclarationProvider.set(Et.RN.has(e)), this._hasImplementationProvider.set(Et.vI.has(e)), this._hasTypeDefinitionProvider.set(Et.tA.has(e)), this._hasHoverProvider.set(Et.xp.has(e)), this._hasDocumentHighlightProvider.set(Et.vH.has(e)), this._hasDocumentSymbolProvider.set(Et.vJ.has(e)), this._hasReferenceProvider.set(Et.FL.has(e)), this._hasRenameProvider.set(Et.G0.has(e)), this._hasSignatureHelpProvider.set(Et.nD.has(e)), this._hasInlayHintsProvider.set(Et.mX.has(e)), this._hasDocumentFormattingProvider.set(Et.Az.has(e) || Et.vN.has(e)), this._hasDocumentSelectionFormattingProvider.set(Et.vN.has(e)), this._hasMultipleDocumentFormattingProvider.set(Et.Az.all(e).length + Et.vN.all(e).length > 1), this._hasMultipleDocumentSelectionFormattingProvider.set(Et.vN.all(e).length > 1), this._isInWalkThrough.set(e.uri.scheme === g.lg.walkThroughSnippet)\n                        })) : this.reset()\n                    }\n                }\n                class uo extends u.JT {\n                    constructor(e) {\n                        super(), this._onChange = this._register(new h.Q5), this.onChange = this._onChange.event, this._hasFocus = !1, this._domFocusTracker = this._register(c.go(e)), this._register(this._domFocusTracker.onDidFocus((() => {\n                            this._hasFocus = !0, this._onChange.fire(void 0)\n                        }))), this._register(this._domFocusTracker.onDidBlur((() => {\n                            this._hasFocus = !1, this._onChange.fire(void 0)\n                        })))\n                    }\n                    hasFocus() {\n                        return this._hasFocus\n                    }\n                }\n                const go = encodeURIComponent(\"<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 3' enable-background='new 0 0 6 3' height='3' width='6'><g fill='\"),\n                    po = encodeURIComponent(\"'><polygon points='5.5,0 2.5,3 1.1,3 4.1,0'/><polygon points='4,0 6,2 6,0.6 5.4,0'/><polygon points='0,2 1,3 2.4,3 0,0.6'/></g></svg>\");\n\n                function fo(e) {\n                    return go + encodeURIComponent(e.toString()) + po\n                }\n                const mo = encodeURIComponent('<svg xmlns=\"https://www.w3.org/2000/svg\" height=\"3\" width=\"12\"><g fill=\"'),\n                    vo = encodeURIComponent('\"><circle cx=\"1\" cy=\"1\" r=\"1\"/><circle cx=\"5\" cy=\"1\" r=\"1\"/><circle cx=\"9\" cy=\"1\" r=\"1\"/></g></svg>');\n                (0, Pe.Ic)(((e, t) => {\n                    const i = e.getColor(gt.b6);\n                    i && t.addRule(`.monaco-editor .squiggly-error { border-bottom: 4px double ${i}; }`);\n                    const n = e.getColor(gt.lX);\n                    n && t.addRule(`.monaco-editor .squiggly-error { background: url(\"data:image/svg+xml,${fo(n)}\") repeat-x bottom left; }`);\n                    const o = e.getColor(gt.A2);\n                    o && t.addRule(`.monaco-editor .squiggly-error::before { display: block; content: ''; width: 100%; height: 100%; background: ${o}; }`);\n                    const s = e.getColor(gt.pW);\n                    s && t.addRule(`.monaco-editor .squiggly-warning { border-bottom: 4px double ${s}; }`);\n                    const r = e.getColor(gt.uo);\n                    r && t.addRule(`.monaco-editor .squiggly-warning { background: url(\"data:image/svg+xml,${fo(r)}\") repeat-x bottom left; }`);\n                    const a = e.getColor(gt.gp);\n                    a && t.addRule(`.monaco-editor .squiggly-warning::before { display: block; content: ''; width: 100%; height: 100%; background: ${a}; }`);\n                    const l = e.getColor(gt.T8);\n                    l && t.addRule(`.monaco-editor .squiggly-info { border-bottom: 4px double ${l}; }`);\n                    const c = e.getColor(gt.c6);\n                    c && t.addRule(`.monaco-editor .squiggly-info { background: url(\"data:image/svg+xml,${fo(c)}\") repeat-x bottom left; }`);\n                    const d = e.getColor(gt.fe);\n                    d && t.addRule(`.monaco-editor .squiggly-info::before { display: block; content: ''; width: 100%; height: 100%; background: ${d}; }`);\n                    const h = e.getColor(gt.fE);\n                    h && t.addRule(`.monaco-editor .squiggly-hint { border-bottom: 2px dotted ${h}; }`);\n                    const u = e.getColor(gt.Du);\n                    u && t.addRule(`.monaco-editor .squiggly-hint { background: url(\"data:image/svg+xml,${function(e){return mo+encodeURIComponent(e.toString())+vo}(u)}\") no-repeat bottom left; }`);\n                    const g = e.getColor(Oe.zu);\n                    g && t.addRule(`.monaco-editor.showUnused .squiggly-inline-unnecessary { opacity: ${g.rgba.a}; }`);\n                    const p = e.getColor(Oe.kp);\n                    p && t.addRule(`.monaco-editor.showUnused .squiggly-unnecessary { border-bottom: 2px dashed ${p}; }`);\n                    const f = e.getColor(gt.NO) || \"inherit\";\n                    t.addRule(`.monaco-editor.showDeprecated .squiggly-inline-deprecated { text-decoration: line-through; text-decoration-color: ${f}}`)\n                }))\n            },\n            84527: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    H: () => p\n                });\n                var n = i(36248),\n                    o = i(11640),\n                    s = i(32073),\n                    r = i(94565),\n                    a = i(38819),\n                    l = i(72065),\n                    c = i(59422),\n                    d = i(97781),\n                    h = i(31106),\n                    u = function(e, t, i, n) {\n                        var o, s = arguments.length,\n                            r = s < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n                        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) r = Reflect.decorate(e, t, i, n);\n                        else\n                            for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (r = (s < 3 ? o(r) : s > 3 ? o(t, i, r) : o(t, i)) || r);\n                        return s > 3 && r && Object.defineProperty(t, i, r), r\n                    },\n                    g = function(e, t) {\n                        return function(i, n) {\n                            t(i, n, e)\n                        }\n                    };\n                let p = class extends s.Gm {\n                    constructor(e, t, i, n, o, s, r, a, l, c) {\n                        super(e, Object.assign(Object.assign({}, i.getRawOptions()), {\n                            overflowWidgetsDomNode: i.getOverflowWidgetsDomNode()\n                        }), {}, n, o, s, r, a, l, c), this._parentEditor = i, this._overwriteOptions = t, super.updateOptions(this._overwriteOptions), this._register(i.onDidChangeConfiguration((e => this._onParentConfigurationChanged(e))))\n                    }\n                    getParentEditor() {\n                        return this._parentEditor\n                    }\n                    _onParentConfigurationChanged(e) {\n                        super.updateOptions(this._parentEditor.getRawOptions()), super.updateOptions(this._overwriteOptions)\n                    }\n                    updateOptions(e) {\n                        n.jB(this._overwriteOptions, e, !0), super.updateOptions(this._overwriteOptions)\n                    }\n                };\n                p = u([g(3, l.TG), g(4, o.$), g(5, r.H), g(6, a.i6), g(7, d.XE), g(8, c.lT), g(9, h.F)], p)\n            },\n            61329: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    OY: () => s,\n                    Sj: () => r,\n                    T4: () => o,\n                    Uo: () => a,\n                    hP: () => l\n                });\n                var n = i(3860);\n                class o {\n                    constructor(e, t, i = !1) {\n                        this._range = e, this._text = t, this.insertsAutoWhitespace = i\n                    }\n                    getEditOperations(e, t) {\n                        t.addTrackedEditOperation(this._range, this._text)\n                    }\n                    computeCursorState(e, t) {\n                        let i = t.getInverseEditOperations()[0].range;\n                        return new n.Y(i.endLineNumber, i.endColumn, i.endLineNumber, i.endColumn)\n                    }\n                }\n                class s {\n                    constructor(e, t) {\n                        this._range = e, this._text = t\n                    }\n                    getEditOperations(e, t) {\n                        t.addTrackedEditOperation(this._range, this._text)\n                    }\n                    computeCursorState(e, t) {\n                        const i = t.getInverseEditOperations()[0].range;\n                        return new n.Y(i.startLineNumber, i.startColumn, i.endLineNumber, i.endColumn)\n                    }\n                }\n                class r {\n                    constructor(e, t, i = !1) {\n                        this._range = e, this._text = t, this.insertsAutoWhitespace = i\n                    }\n                    getEditOperations(e, t) {\n                        t.addTrackedEditOperation(this._range, this._text)\n                    }\n                    computeCursorState(e, t) {\n                        let i = t.getInverseEditOperations()[0].range;\n                        return new n.Y(i.startLineNumber, i.startColumn, i.startLineNumber, i.startColumn)\n                    }\n                }\n                class a {\n                    constructor(e, t, i, n, o = !1) {\n                        this._range = e, this._text = t, this._columnDeltaOffset = n, this._lineNumberDeltaOffset = i, this.insertsAutoWhitespace = o\n                    }\n                    getEditOperations(e, t) {\n                        t.addTrackedEditOperation(this._range, this._text)\n                    }\n                    computeCursorState(e, t) {\n                        let i = t.getInverseEditOperations()[0].range;\n                        return new n.Y(i.endLineNumber + this._lineNumberDeltaOffset, i.endColumn + this._columnDeltaOffset, i.endLineNumber + this._lineNumberDeltaOffset, i.endColumn + this._columnDeltaOffset)\n                    }\n                }\n                class l {\n                    constructor(e, t, i, n = !1) {\n                        this._range = e, this._text = t, this._initialSelection = i, this._forceMoveMarkers = n, this._selectionId = null\n                    }\n                    getEditOperations(e, t) {\n                        t.addTrackedEditOperation(this._range, this._text, this._forceMoveMarkers), this._selectionId = t.trackSelection(this._initialSelection)\n                    }\n                    computeCursorState(e, t) {\n                        return t.getTrackedSelection(this._selectionId)\n                    }\n                }\n            },\n            10291: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    U: () => d\n                });\n                var n = i(97295),\n                    o = i(33181),\n                    s = i(24314),\n                    r = i(3860),\n                    a = i(83831);\n                const l = Object.create(null);\n\n                function c(e, t) {\n                    if (t <= 0) return \"\";\n                    l[e] || (l[e] = [\"\", e]);\n                    const i = l[e];\n                    for (let n = i.length; n <= t; n++) i[n] = i[n - 1] + e;\n                    return i[t]\n                }\n                class d {\n                    constructor(e, t) {\n                        this._opts = t, this._selection = e, this._selectionId = null, this._useLastEditRangeForCursorEndPosition = !1, this._selectionStartColumnStaysPut = !1\n                    }\n                    static unshiftIndent(e, t, i, n, s) {\n                        const r = o.io.visibleColumnFromColumn(e, t, i);\n                        if (s) {\n                            const e = c(\" \", n);\n                            return c(e, o.io.prevIndentTabStop(r, n) / n)\n                        }\n                        return c(\"\\t\", o.io.prevRenderTabStop(r, i) / i)\n                    }\n                    static shiftIndent(e, t, i, n, s) {\n                        const r = o.io.visibleColumnFromColumn(e, t, i);\n                        if (s) {\n                            const e = c(\" \", n);\n                            return c(e, o.io.nextIndentTabStop(r, n) / n)\n                        }\n                        return c(\"\\t\", o.io.nextRenderTabStop(r, i) / i)\n                    }\n                    _addEditOperation(e, t, i) {\n                        this._useLastEditRangeForCursorEndPosition ? e.addTrackedEditOperation(t, i) : e.addEditOperation(t, i)\n                    }\n                    getEditOperations(e, t) {\n                        const i = this._selection.startLineNumber;\n                        let r = this._selection.endLineNumber;\n                        1 === this._selection.endColumn && i !== r && (r -= 1);\n                        const {\n                            tabSize: l,\n                            indentSize: h,\n                            insertSpaces: u\n                        } = this._opts, g = i === r;\n                        if (this._opts.useTabStops) {\n                            this._selection.isEmpty() && /^\\s*$/.test(e.getLineContent(i)) && (this._useLastEditRangeForCursorEndPosition = !0);\n                            let c = 0,\n                                p = 0;\n                            for (let f = i; f <= r; f++, c = p) {\n                                p = 0;\n                                let r, m = e.getLineContent(f),\n                                    v = n.LC(m);\n                                if ((!this._opts.isUnshift || 0 !== m.length && 0 !== v) && (g || this._opts.isUnshift || 0 !== m.length)) {\n                                    if (-1 === v && (v = m.length), f > 1) {\n                                        if (o.io.visibleColumnFromColumn(m, v + 1, l) % h != 0 && e.isCheapToTokenize(f - 1)) {\n                                            let t = a.zu.getEnterAction(this._opts.autoIndent, e, new s.e(f - 1, e.getLineMaxColumn(f - 1), f - 1, e.getLineMaxColumn(f - 1)));\n                                            if (t) {\n                                                if (p = c, t.appendText)\n                                                    for (let e = 0, i = t.appendText.length; e < i && p < h && 32 === t.appendText.charCodeAt(e); e++) p++;\n                                                t.removeText && (p = Math.max(0, p - t.removeText));\n                                                for (let e = 0; e < p && (0 !== v && 32 === m.charCodeAt(v - 1)); e++) v--\n                                            }\n                                        }\n                                    }\n                                    this._opts.isUnshift && 0 === v || (r = this._opts.isUnshift ? d.unshiftIndent(m, v + 1, l, h, u) : d.shiftIndent(m, v + 1, l, h, u), this._addEditOperation(t, new s.e(f, 1, f, v + 1), r), f !== i || this._selection.isEmpty() || (this._selectionStartColumnStaysPut = this._selection.startColumn <= v + 1))\n                                }\n                            }\n                        } else {\n                            !this._opts.isUnshift && this._selection.isEmpty() && 0 === e.getLineLength(i) && (this._useLastEditRangeForCursorEndPosition = !0);\n                            const o = u ? c(\" \", h) : \"\\t\";\n                            for (let a = i; a <= r; a++) {\n                                const r = e.getLineContent(a);\n                                let l = n.LC(r);\n                                if ((!this._opts.isUnshift || 0 !== r.length && 0 !== l) && ((g || this._opts.isUnshift || 0 !== r.length) && (-1 === l && (l = r.length), !this._opts.isUnshift || 0 !== l)))\n                                    if (this._opts.isUnshift) {\n                                        l = Math.min(l, h);\n                                        for (let e = 0; e < l; e++) {\n                                            if (9 === r.charCodeAt(e)) {\n                                                l = e + 1;\n                                                break\n                                            }\n                                        }\n                                        this._addEditOperation(t, new s.e(a, 1, a, l + 1), \"\")\n                                    } else this._addEditOperation(t, new s.e(a, 1, a, 1), o), a !== i || this._selection.isEmpty() || (this._selectionStartColumnStaysPut = 1 === this._selection.startColumn)\n                            }\n                        }\n                        this._selectionId = t.trackSelection(this._selection)\n                    }\n                    computeCursorState(e, t) {\n                        if (this._useLastEditRangeForCursorEndPosition) {\n                            let e = t.getInverseEditOperations()[0];\n                            return new r.Y(e.range.endLineNumber, e.range.endColumn, e.range.endLineNumber, e.range.endColumn)\n                        }\n                        const i = t.getTrackedSelection(this._selectionId);\n                        if (this._selectionStartColumnStaysPut) {\n                            let e = this._selection.startColumn;\n                            return i.startColumn <= e ? i : 0 === i.getDirection() ? new r.Y(i.startLineNumber, e, i.endLineNumber, i.endColumn) : new r.Y(i.endLineNumber, i.endColumn, i.startLineNumber, e)\n                        }\n                        return i\n                    }\n                }\n            },\n            56345: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    Pe: () => D,\n                    ei: () => N,\n                    fv: () => w,\n                    nG: () => p\n                });\n                var n = i(63580),\n                    o = i(4669),\n                    s = i(5976),\n                    r = i(36248),\n                    a = i(9488),\n                    l = i(64141),\n                    c = i(82334),\n                    d = i(27374),\n                    h = i(23193),\n                    u = i(89872),\n                    g = i(6626);\n                const p = new class {\n                        constructor() {\n                            this._tabFocus = !1, this._onDidChangeTabFocus = new o.Q5, this.onDidChangeTabFocus = this._onDidChangeTabFocus.event\n                        }\n                        getTabFocusMode() {\n                            return this._tabFocus\n                        }\n                        setTabFocusMode(e) {\n                            this._tabFocus !== e && (this._tabFocus = e, this._onDidChangeTabFocus.fire(this._tabFocus))\n                        }\n                    },\n                    f = Object.hasOwnProperty;\n                class m {\n                    constructor() {\n                        this._values = []\n                    }\n                    _read(e) {\n                        return this._values[e]\n                    }\n                    get(e) {\n                        return this._values[e]\n                    }\n                    _write(e, t) {\n                        this._values[e] = t\n                    }\n                }\n                class v {\n                    constructor() {\n                        this._values = []\n                    }\n                    _read(e) {\n                        return this._values[e]\n                    }\n                    _write(e, t) {\n                        this._values[e] = t\n                    }\n                }\n                class _ {\n                    static readOptions(e) {\n                        const t = e,\n                            i = new v;\n                        for (const e of l.Bc) {\n                            const n = \"_never_\" === e.name ? void 0 : t[e.name];\n                            i._write(e.id, n)\n                        }\n                        return i\n                    }\n                    static validateOptions(e) {\n                        const t = new l.hu;\n                        for (const i of l.Bc) t._write(i.id, i.validate(e._read(i.id)));\n                        return t\n                    }\n                    static computeOptions(e, t) {\n                        const i = new m;\n                        for (const n of l.Bc) i._write(n.id, n.compute(t, i, e._read(n.id)));\n                        return i\n                    }\n                    static _deepEquals(e, t) {\n                        if (\"object\" != typeof e || \"object\" != typeof t) return e === t;\n                        if (Array.isArray(e) || Array.isArray(t)) return !(!Array.isArray(e) || !Array.isArray(t)) && a.fS(e, t);\n                        for (let i in e)\n                            if (!_._deepEquals(e[i], t[i])) return !1;\n                        return !0\n                    }\n                    static checkEquals(e, t) {\n                        const i = [];\n                        let n = !1;\n                        for (const o of l.Bc) {\n                            const s = !_._deepEquals(e._read(o.id), t._read(o.id));\n                            i[o.id] = s, s && (n = !0)\n                        }\n                        return n ? new l.Bb(i) : null\n                    }\n                }\n\n                function b(e) {\n                    const t = r.I8(e);\n                    return function(e) {\n                        const t = e.wordWrap;\n                        !0 === t ? e.wordWrap = \"on\" : !1 === t && (e.wordWrap = \"off\");\n                        const i = e.lineNumbers;\n                        !0 === i ? e.lineNumbers = \"on\" : !1 === i && (e.lineNumbers = \"off\"), !1 === e.autoClosingBrackets && (e.autoClosingBrackets = \"never\", e.autoClosingQuotes = \"never\", e.autoSurround = \"never\"), \"visible\" === e.cursorBlinking && (e.cursorBlinking = \"solid\");\n                        const n = e.renderWhitespace;\n                        !0 === n ? e.renderWhitespace = \"boundary\" : !1 === n && (e.renderWhitespace = \"none\");\n                        const o = e.renderLineHighlight;\n                        !0 === o ? e.renderLineHighlight = \"line\" : !1 === o && (e.renderLineHighlight = \"none\");\n                        const s = e.acceptSuggestionOnEnter;\n                        !0 === s ? e.acceptSuggestionOnEnter = \"on\" : !1 === s && (e.acceptSuggestionOnEnter = \"off\");\n                        const r = e.tabCompletion;\n                        !1 === r ? e.tabCompletion = \"off\" : !0 === r && (e.tabCompletion = \"onlySnippets\");\n                        const a = e.suggest;\n                        if (a && \"object\" == typeof a.filteredTypes && a.filteredTypes) {\n                            const e = {\n                                method: \"showMethods\",\n                                function: \"showFunctions\",\n                                constructor: \"showConstructors\",\n                                deprecated: \"showDeprecated\",\n                                field: \"showFields\",\n                                variable: \"showVariables\",\n                                class: \"showClasses\",\n                                struct: \"showStructs\",\n                                interface: \"showInterfaces\",\n                                module: \"showModules\",\n                                property: \"showProperties\",\n                                event: \"showEvents\",\n                                operator: \"showOperators\",\n                                unit: \"showUnits\",\n                                value: \"showValues\",\n                                constant: \"showConstants\",\n                                enum: \"showEnums\",\n                                enumMember: \"showEnumMembers\",\n                                keyword: \"showKeywords\",\n                                text: \"showWords\",\n                                color: \"showColors\",\n                                file: \"showFiles\",\n                                reference: \"showReferences\",\n                                folder: \"showFolders\",\n                                typeParameter: \"showTypeParameters\",\n                                snippet: \"showSnippets\"\n                            };\n                            (0, g.E)(e, (e => {\n                                const t = a.filteredTypes[e.key];\n                                !1 === t && (a[e.value] = t)\n                            }))\n                        }\n                        const l = e.hover;\n                        !0 === l ? e.hover = {\n                            enabled: !0\n                        } : !1 === l && (e.hover = {\n                            enabled: !1\n                        });\n                        const c = e.parameterHints;\n                        !0 === c ? e.parameterHints = {\n                            enabled: !0\n                        } : !1 === c && (e.parameterHints = {\n                            enabled: !1\n                        });\n                        const d = e.autoIndent;\n                        !0 === d ? e.autoIndent = \"full\" : !1 === d && (e.autoIndent = \"advanced\");\n                        const h = e.matchBrackets;\n                        !0 === h ? e.matchBrackets = \"always\" : !1 === h && (e.matchBrackets = \"never\");\n                        const {\n                            renderIndentGuides: u,\n                            highlightActiveIndentGuide: p\n                        } = e;\n                        e.guides || (e.guides = {}), void 0 !== u && (e.guides.indentation = !!u), void 0 !== p && (e.guides.highlightActiveIndentation = !!p)\n                    }(t), t\n                }\n                class w extends s.JT {\n                    constructor(e, t) {\n                        super(), this._onDidChange = this._register(new o.Q5), this.onDidChange = this._onDidChange.event, this._onDidChangeFast = this._register(new o.Q5), this.onDidChangeFast = this._onDidChangeFast.event, this.isSimpleWidget = e, this._isDominatedByLongLines = !1, this._computeOptionsMemory = new l.LJ, this._viewLineCount = 1, this._lineNumbersDigitCount = 1, this._rawOptions = b(t), this._readOptions = _.readOptions(this._rawOptions), this._validatedOptions = _.validateOptions(this._readOptions), this._register(c.C.onDidChangeZoomLevel((e => this._recomputeOptions()))), this._register(p.onDidChangeTabFocus((e => this._recomputeOptions())))\n                    }\n                    observeReferenceElement(e) {}\n                    updatePixelRatio() {}\n                    _recomputeOptions() {\n                        const e = this.options,\n                            t = this._computeInternalOptions();\n                        if (e) {\n                            const i = _.checkEquals(e, t);\n                            if (null === i) return;\n                            this.options = t, this._onDidChangeFast.fire(i), this._onDidChange.fire(i)\n                        } else this.options = t\n                    }\n                    getRawOptions() {\n                        return this._rawOptions\n                    }\n                    _computeInternalOptions() {\n                        const e = this._getEnvConfiguration(),\n                            t = d.E4.createFromValidatedSettings(this._validatedOptions, e.zoomLevel, e.pixelRatio, this.isSimpleWidget),\n                            i = {\n                                memory: this._computeOptionsMemory,\n                                outerWidth: e.outerWidth,\n                                outerHeight: e.outerHeight,\n                                fontInfo: this.readConfiguration(t),\n                                extraEditorClassName: e.extraEditorClassName,\n                                isDominatedByLongLines: this._isDominatedByLongLines,\n                                viewLineCount: this._viewLineCount,\n                                lineNumbersDigitCount: this._lineNumbersDigitCount,\n                                emptySelectionClipboard: e.emptySelectionClipboard,\n                                pixelRatio: e.pixelRatio,\n                                tabFocusMode: p.getTabFocusMode(),\n                                accessibilitySupport: e.accessibilitySupport\n                            };\n                        return _.computeOptions(this._validatedOptions, i)\n                    }\n                    static _subsetEquals(e, t) {\n                        for (const i in t)\n                            if (f.call(t, i)) {\n                                const n = t[i],\n                                    o = e[i];\n                                if (o === n) continue;\n                                if (Array.isArray(o) && Array.isArray(n)) {\n                                    if (!a.fS(o, n)) return !1;\n                                    continue\n                                }\n                                if (o && \"object\" == typeof o && n && \"object\" == typeof n) {\n                                    if (!this._subsetEquals(o, n)) return !1;\n                                    continue\n                                }\n                                return !1\n                            } return !0\n                    }\n                    updateOptions(e) {\n                        if (void 0 === e) return;\n                        const t = b(e);\n                        w._subsetEquals(this._rawOptions, t) || (this._rawOptions = r.jB(this._rawOptions, t || {}), this._readOptions = _.readOptions(this._rawOptions), this._validatedOptions = _.validateOptions(this._readOptions), this._recomputeOptions())\n                    }\n                    setIsDominatedByLongLines(e) {\n                        this._isDominatedByLongLines = e, this._recomputeOptions()\n                    }\n                    setMaxLineNumber(e) {\n                        const t = w._digitCount(e);\n                        this._lineNumbersDigitCount !== t && (this._lineNumbersDigitCount = t, this._recomputeOptions())\n                    }\n                    setViewLineCount(e) {\n                        this._viewLineCount !== e && (this._viewLineCount = e, this._recomputeOptions())\n                    }\n                    static _digitCount(e) {\n                        let t = 0;\n                        for (; e;) e = Math.floor(e / 10), t++;\n                        return t || 1\n                    }\n                }\n                const y = Object.freeze({\n                        id: \"editor\",\n                        order: 5,\n                        type: \"object\",\n                        title: n.N(\"editorConfigurationTitle\", \"Editor\"),\n                        scope: 5\n                    }),\n                    C = u.B.as(h.IP.Configuration),\n                    x = Object.assign(Object.assign({}, y), {\n                        properties: {\n                            \"editor.tabSize\": {\n                                type: \"number\",\n                                default: l.DB.tabSize,\n                                minimum: 1,\n                                markdownDescription: n.N(\"tabSize\", \"The number of spaces a tab is equal to. This setting is overridden based on the file contents when `#editor.detectIndentation#` is on.\")\n                            },\n                            \"editor.insertSpaces\": {\n                                type: \"boolean\",\n                                default: l.DB.insertSpaces,\n                                markdownDescription: n.N(\"insertSpaces\", \"Insert spaces when pressing `Tab`. This setting is overridden based on the file contents when `#editor.detectIndentation#` is on.\")\n                            },\n                            \"editor.detectIndentation\": {\n                                type: \"boolean\",\n                                default: l.DB.detectIndentation,\n                                markdownDescription: n.N(\"detectIndentation\", \"Controls whether `#editor.tabSize#` and `#editor.insertSpaces#` will be automatically detected when a file is opened based on the file contents.\")\n                            },\n                            \"editor.trimAutoWhitespace\": {\n                                type: \"boolean\",\n                                default: l.DB.trimAutoWhitespace,\n                                description: n.N(\"trimAutoWhitespace\", \"Remove trailing auto inserted whitespace.\")\n                            },\n                            \"editor.largeFileOptimizations\": {\n                                type: \"boolean\",\n                                default: l.DB.largeFileOptimizations,\n                                description: n.N(\"largeFileOptimizations\", \"Special handling for large files to disable certain memory intensive features.\")\n                            },\n                            \"editor.wordBasedSuggestions\": {\n                                type: \"boolean\",\n                                default: !0,\n                                description: n.N(\"wordBasedSuggestions\", \"Controls whether completions should be computed based on words in the document.\")\n                            },\n                            \"editor.wordBasedSuggestionsMode\": {\n                                enum: [\"currentDocument\", \"matchingDocuments\", \"allDocuments\"],\n                                default: \"matchingDocuments\",\n                                enumDescriptions: [n.N(\"wordBasedSuggestionsMode.currentDocument\", \"Only suggest words from the active document.\"), n.N(\"wordBasedSuggestionsMode.matchingDocuments\", \"Suggest words from all open documents of the same language.\"), n.N(\"wordBasedSuggestionsMode.allDocuments\", \"Suggest words from all open documents.\")],\n                                description: n.N(\"wordBasedSuggestionsMode\", \"Controls from which documents word based completions are computed.\")\n                            },\n                            \"editor.semanticHighlighting.enabled\": {\n                                enum: [!0, !1, \"configuredByTheme\"],\n                                enumDescriptions: [n.N(\"semanticHighlighting.true\", \"Semantic highlighting enabled for all color themes.\"), n.N(\"semanticHighlighting.false\", \"Semantic highlighting disabled for all color themes.\"), n.N(\"semanticHighlighting.configuredByTheme\", \"Semantic highlighting is configured by the current color theme's `semanticHighlighting` setting.\")],\n                                default: \"configuredByTheme\",\n                                description: n.N(\"semanticHighlighting.enabled\", \"Controls whether the semanticHighlighting is shown for the languages that support it.\")\n                            },\n                            \"editor.stablePeek\": {\n                                type: \"boolean\",\n                                default: !1,\n                                markdownDescription: n.N(\"stablePeek\", \"Keep peek editors open even when double clicking their content or when hitting `Escape`.\")\n                            },\n                            \"editor.maxTokenizationLineLength\": {\n                                type: \"integer\",\n                                default: 2e4,\n                                description: n.N(\"maxTokenizationLineLength\", \"Lines above this length will not be tokenized for performance reasons\")\n                            },\n                            \"editor.language.brackets\": {\n                                type: \"array\",\n                                default: !1,\n                                description: n.N(\"schema.brackets\", \"Defines the bracket symbols that increase or decrease the indentation.\"),\n                                items: {\n                                    type: \"array\",\n                                    items: [{\n                                        type: \"string\",\n                                        description: n.N(\"schema.openBracket\", \"The opening bracket character or string sequence.\")\n                                    }, {\n                                        type: \"string\",\n                                        description: n.N(\"schema.closeBracket\", \"The closing bracket character or string sequence.\")\n                                    }]\n                                }\n                            },\n                            \"editor.language.colorizedBracketPairs\": {\n                                type: \"array\",\n                                default: !1,\n                                description: n.N(\"schema.colorizedBracketPairs\", \"Defines the bracket pairs that are colorized by their nesting level if bracket pair colorization is enabled.\"),\n                                items: {\n                                    type: \"array\",\n                                    items: [{\n                                        type: \"string\",\n                                        description: n.N(\"schema.openBracket\", \"The opening bracket character or string sequence.\")\n                                    }, {\n                                        type: \"string\",\n                                        description: n.N(\"schema.closeBracket\", \"The closing bracket character or string sequence.\")\n                                    }]\n                                }\n                            },\n                            \"diffEditor.maxComputationTime\": {\n                                type: \"number\",\n                                default: 5e3,\n                                description: n.N(\"maxComputationTime\", new Language(modifyState.language).timeoutInTimeDiff())\n                            },\n                            \"diffEditor.maxFileSize\": {\n                                type: \"number\",\n                                default: 50,\n                                description: n.N(\"maxFileSize\", new Language(modifyState.language).fileSizeInMBForDiff())\n                            },\n                            \"diffEditor.renderSideBySide\": {\n                                type: \"boolean\",\n                                default: !0,\n                                description: n.N(\"sideBySide\", \"控制 diff 编辑器是并排还是内联显示 diff\")\n                            },\n                            \"diffEditor.ignoreTrimWhitespace\": {\n                                type: \"boolean\",\n                                default: !0,\n                                description: n.N(\"ignoreTrimWhitespace\", \"When enabled, the diff editor ignores changes in leading or trailing whitespace.\")\n                            },\n                            \"diffEditor.renderIndicators\": {\n                                type: \"boolean\",\n                                default: !0,\n                                description: n.N(\"renderIndicators\", \"Controls whether the diff editor shows +/- indicators for added/removed changes.\")\n                            },\n                            \"diffEditor.codeLens\": {\n                                type: \"boolean\",\n                                default: !1,\n                                description: n.N(\"codeLens\", \"Controls whether the editor shows CodeLens.\")\n                            },\n                            \"diffEditor.wordWrap\": {\n                                type: \"string\",\n                                enum: [\"off\", \"on\", \"inherit\"],\n                                default: \"inherit\",\n                                markdownEnumDescriptions: [n.N(\"wordWrap.off\", \"Lines will never wrap.\"), n.N(\"wordWrap.on\", \"Lines will wrap at the viewport width.\"), n.N(\"wordWrap.inherit\", \"Lines will wrap according to the `#editor.wordWrap#` setting.\")]\n                            }\n                        }\n                    });\n                for (const e of l.Bc) {\n                    const t = e.schema;\n                    if (void 0 !== t)\n                        if (void 0 !== (S = t).type || void 0 !== S.anyOf) x.properties[`editor.${e.name}`] = t;\n                        else\n                            for (let e in t) f.call(t, e) && (x.properties[e] = t[e])\n                }\n                var S;\n                let k = null;\n\n                function L() {\n                    return null === k && (k = Object.create(null), Object.keys(x.properties).forEach((e => {\n                        k[e] = !0\n                    }))), k\n                }\n\n                function N(e) {\n                    return L()[`editor.${e}`] || !1\n                }\n\n                function D(e) {\n                    return L()[`diffEditor.${e}`] || !1\n                }\n                C.registerConfiguration(x)\n            },\n            64141: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    $J: () => L,\n                    BH: () => A,\n                    Bb: () => a,\n                    Bc: () => T,\n                    DB: () => E,\n                    LJ: () => c,\n                    NY: () => b,\n                    O7: () => g,\n                    Zc: () => f,\n                    d2: () => C,\n                    gk: () => k,\n                    hL: () => I,\n                    hu: () => l,\n                    n0: () => x,\n                    y0: () => r\n                });\n                var n = i(63580),\n                    o = i(1432),\n                    s = i(97461);\n                const r = 8;\n                class a {\n                    constructor(e) {\n                        this._values = e\n                    }\n                    hasChanged(e) {\n                        return this._values[e]\n                    }\n                }\n                class l {\n                    constructor() {\n                        this._values = []\n                    }\n                    _read(e) {\n                        return this._values[e]\n                    }\n                    get(e) {\n                        return this._values[e]\n                    }\n                    _write(e, t) {\n                        this._values[e] = t\n                    }\n                }\n                class c {\n                    constructor() {\n                        this.stableMinimapLayoutInput = null, this.stableFitMaxMinimapScale = 0, this.stableFitRemainingWidth = 0\n                    }\n                }\n                class d {\n                    constructor(e, t, i, n) {\n                        this.id = e, this.name = t, this.defaultValue = i, this.schema = n\n                    }\n                    compute(e, t, i) {\n                        return i\n                    }\n                }\n                class h {\n                    constructor(e, t = null) {\n                        this.schema = void 0, this.id = e, this.name = \"_never_\", this.defaultValue = void 0, this.deps = t\n                    }\n                    validate(e) {\n                        return this.defaultValue\n                    }\n                }\n                class u {\n                    constructor(e, t, i, n) {\n                        this.id = e, this.name = t, this.defaultValue = i, this.schema = n\n                    }\n                    validate(e) {\n                        return void 0 === e ? this.defaultValue : e\n                    }\n                    compute(e, t, i) {\n                        return i\n                    }\n                }\n\n                function g(e, t) {\n                    return void 0 === e ? t : \"false\" !== e && Boolean(e)\n                }\n                class p extends u {\n                    constructor(e, t, i, n = void 0) {\n                        void 0 !== n && (n.type = \"boolean\", n.default = i), super(e, t, i, n)\n                    }\n                    validate(e) {\n                        return g(e, this.defaultValue)\n                    }\n                }\n\n                function f(e, t, i, n) {\n                    if (void 0 === e) return t;\n                    let o = parseInt(e, 10);\n                    return isNaN(o) ? t : (o = Math.max(i, o), o = Math.min(n, o), 0 | o)\n                }\n                class m extends u {\n                    constructor(e, t, i, n, o, s = void 0) {\n                        void 0 !== s && (s.type = \"integer\", s.default = i, s.minimum = n, s.maximum = o), super(e, t, i, s), this.minimum = n, this.maximum = o\n                    }\n                    static clampedInt(e, t, i, n) {\n                        return f(e, t, i, n)\n                    }\n                    validate(e) {\n                        return m.clampedInt(e, this.defaultValue, this.minimum, this.maximum)\n                    }\n                }\n                class v extends u {\n                    constructor(e, t, i, n, o) {\n                        void 0 !== o && (o.type = \"number\", o.default = i), super(e, t, i, o), this.validationFn = n\n                    }\n                    static clamp(e, t, i) {\n                        return e < t ? t : e > i ? i : e\n                    }\n                    static float(e, t) {\n                        if (\"number\" == typeof e) return e;\n                        if (void 0 === e) return t;\n                        const i = parseFloat(e);\n                        return isNaN(i) ? t : i\n                    }\n                    validate(e) {\n                        return this.validationFn(v.float(e, this.defaultValue))\n                    }\n                }\n                class _ extends u {\n                    static string(e, t) {\n                        return \"string\" != typeof e ? t : e\n                    }\n                    constructor(e, t, i, n = void 0) {\n                        void 0 !== n && (n.type = \"string\", n.default = i), super(e, t, i, n)\n                    }\n                    validate(e) {\n                        return _.string(e, this.defaultValue)\n                    }\n                }\n\n                function b(e, t, i) {\n                    return \"string\" != typeof e || -1 === i.indexOf(e) ? t : e\n                }\n                class w extends u {\n                    constructor(e, t, i, n, o = void 0) {\n                        void 0 !== o && (o.type = \"string\", o.enum = n, o.default = i), super(e, t, i, o), this._allowedValues = n\n                    }\n                    validate(e) {\n                        return b(e, this.defaultValue, this._allowedValues)\n                    }\n                }\n                class y extends d {\n                    constructor(e, t, i, n, o, s, r = void 0) {\n                        void 0 !== r && (r.type = \"string\", r.enum = o, r.default = n), super(e, t, i, r), this._allowedValues = o, this._convert = s\n                    }\n                    validate(e) {\n                        return \"string\" != typeof e || -1 === this._allowedValues.indexOf(e) ? this.defaultValue : this._convert(e)\n                    }\n                }\n                var C;\n                ! function(e) {\n                    e[e.Line = 1] = \"Line\", e[e.Block = 2] = \"Block\", e[e.Underline = 3] = \"Underline\", e[e.LineThin = 4] = \"LineThin\", e[e.BlockOutline = 5] = \"BlockOutline\", e[e.UnderlineThin = 6] = \"UnderlineThin\"\n                }(C || (C = {}));\n                class x extends d {\n                    constructor() {\n                        super(44, \"fontLigatures\", x.OFF, {\n                            anyOf: [{\n                                type: \"boolean\",\n                                description: n.N(\"fontLigatures\", \"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.\")\n                            }, {\n                                type: \"string\",\n                                description: n.N(\"fontFeatureSettings\", \"Explicit 'font-feature-settings' CSS property. A boolean can be passed instead if one only needs to turn on/off ligatures.\")\n                            }],\n                            description: n.N(\"fontLigaturesGeneral\", \"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.\"),\n                            default: !1\n                        })\n                    }\n                    validate(e) {\n                        return void 0 === e ? this.defaultValue : \"string\" == typeof e ? \"false\" === e ? x.OFF : \"true\" === e ? x.ON : e : Boolean(e) ? x.ON : x.OFF\n                    }\n                }\n                x.OFF = '\"liga\" off, \"calt\" off', x.ON = '\"liga\" on, \"calt\" on';\n                class S extends d {\n                    constructor() {\n                        super(46, \"fontWeight\", I.fontWeight, {\n                            anyOf: [{\n                                type: \"number\",\n                                minimum: S.MINIMUM_VALUE,\n                                maximum: S.MAXIMUM_VALUE,\n                                errorMessage: n.N(\"fontWeightErrorMessage\", 'Only \"normal\" and \"bold\" keywords or numbers between 1 and 1000 are allowed.')\n                            }, {\n                                type: \"string\",\n                                pattern: \"^(normal|bold|1000|[1-9][0-9]{0,2})$\"\n                            }, {\n                                enum: S.SUGGESTION_VALUES\n                            }],\n                            default: I.fontWeight,\n                            description: n.N(\"fontWeight\", 'Controls the font weight. Accepts \"normal\" and \"bold\" keywords or numbers between 1 and 1000.')\n                        })\n                    }\n                    validate(e) {\n                        return \"normal\" === e || \"bold\" === e ? e : String(m.clampedInt(e, I.fontWeight, S.MINIMUM_VALUE, S.MAXIMUM_VALUE))\n                    }\n                }\n                S.SUGGESTION_VALUES = [\"normal\", \"bold\", \"100\", \"200\", \"300\", \"400\", \"500\", \"600\", \"700\", \"800\", \"900\"], S.MINIMUM_VALUE = 1, S.MAXIMUM_VALUE = 1e3;\n                class k extends h {\n                    constructor() {\n                        super(129, [49, 57, 37, 64, 91, 59, 60, 93, 116, 119, 120, 121, 2])\n                    }\n                    compute(e, t, i) {\n                        return k.computeLayout(t, {\n                            memory: e.memory,\n                            outerWidth: e.outerWidth,\n                            outerHeight: e.outerHeight,\n                            isDominatedByLongLines: e.isDominatedByLongLines,\n                            lineHeight: e.fontInfo.lineHeight,\n                            viewLineCount: e.viewLineCount,\n                            lineNumbersDigitCount: e.lineNumbersDigitCount,\n                            typicalHalfwidthCharacterWidth: e.fontInfo.typicalHalfwidthCharacterWidth,\n                            maxDigitWidth: e.fontInfo.maxDigitWidth,\n                            pixelRatio: e.pixelRatio\n                        })\n                    }\n                    static computeContainedMinimapLineCount(e) {\n                        const t = e.height / e.lineHeight,\n                            i = e.scrollBeyondLastLine ? t - 1 : 0,\n                            n = (e.viewLineCount + i) / (e.pixelRatio * e.height);\n                        return {\n                            typicalViewportLineCount: t,\n                            extraLinesBeyondLastLine: i,\n                            desiredRatio: n,\n                            minimapLineCount: Math.floor(e.viewLineCount / n)\n                        }\n                    }\n                    static _computeMinimapLayout(e, t) {\n                        const i = e.outerWidth,\n                            n = e.outerHeight,\n                            o = e.pixelRatio;\n                        if (!e.minimap.enabled) return {\n                            renderMinimap: 0,\n                            minimapLeft: 0,\n                            minimapWidth: 0,\n                            minimapHeightIsEditorHeight: !1,\n                            minimapIsSampling: !1,\n                            minimapScale: 1,\n                            minimapLineHeight: 1,\n                            minimapCanvasInnerWidth: 0,\n                            minimapCanvasInnerHeight: Math.floor(o * n),\n                            minimapCanvasOuterWidth: 0,\n                            minimapCanvasOuterHeight: n\n                        };\n                        const s = t.stableMinimapLayoutInput,\n                            a = s && e.outerHeight === s.outerHeight && e.lineHeight === s.lineHeight && e.typicalHalfwidthCharacterWidth === s.typicalHalfwidthCharacterWidth && e.pixelRatio === s.pixelRatio && e.scrollBeyondLastLine === s.scrollBeyondLastLine && e.minimap.enabled === s.minimap.enabled && e.minimap.side === s.minimap.side && e.minimap.size === s.minimap.size && e.minimap.showSlider === s.minimap.showSlider && e.minimap.renderCharacters === s.minimap.renderCharacters && e.minimap.maxColumn === s.minimap.maxColumn && e.minimap.scale === s.minimap.scale && e.verticalScrollbarWidth === s.verticalScrollbarWidth && e.isViewportWrapping === s.isViewportWrapping,\n                            l = e.lineHeight,\n                            c = e.typicalHalfwidthCharacterWidth,\n                            d = e.scrollBeyondLastLine,\n                            h = e.minimap.renderCharacters;\n                        let u = o >= 2 ? Math.round(2 * e.minimap.scale) : e.minimap.scale;\n                        const g = e.minimap.maxColumn,\n                            p = e.minimap.size,\n                            f = e.minimap.side,\n                            m = e.verticalScrollbarWidth,\n                            v = e.viewLineCount,\n                            _ = e.remainingWidth,\n                            b = e.isViewportWrapping,\n                            w = h ? 2 : 3;\n                        let y = Math.floor(o * n);\n                        const C = y / o;\n                        let x = !1,\n                            S = !1,\n                            L = w * u,\n                            N = u / o,\n                            D = 1;\n                        if (\"fill\" === p || \"fit\" === p) {\n                            const {\n                                typicalViewportLineCount: i,\n                                extraLinesBeyondLastLine: s,\n                                desiredRatio: r,\n                                minimapLineCount: c\n                            } = k.computeContainedMinimapLineCount({\n                                viewLineCount: v,\n                                scrollBeyondLastLine: d,\n                                height: n,\n                                lineHeight: l,\n                                pixelRatio: o\n                            });\n                            if (v / c > 1) x = !0, S = !0, u = 1, L = 1, N = u / o;\n                            else {\n                                let n = !1,\n                                    c = u + 1;\n                                if (\"fit\" === p) {\n                                    const e = Math.ceil((v + s) * L);\n                                    b && a && _ <= t.stableFitRemainingWidth ? (n = !0, c = t.stableFitMaxMinimapScale) : n = e > y\n                                }\n                                if (\"fill\" === p || n) {\n                                    x = !0;\n                                    const n = u;\n                                    L = Math.min(l * o, Math.max(1, Math.floor(1 / r))), b && a && _ <= t.stableFitRemainingWidth && (c = t.stableFitMaxMinimapScale), u = Math.min(c, Math.max(1, Math.floor(L / w))), u > n && (D = Math.min(2, u / n)), N = u / o / D, y = Math.ceil(Math.max(i, v + s) * L), b ? (t.stableMinimapLayoutInput = e, t.stableFitRemainingWidth = _, t.stableFitMaxMinimapScale = u) : (t.stableMinimapLayoutInput = null, t.stableFitRemainingWidth = 0)\n                                }\n                            }\n                        }\n                        const I = Math.floor(g * N),\n                            E = Math.min(I, Math.max(0, Math.floor((_ - m - 2) * N / (c + N))) + r);\n                        let T = Math.floor(o * E);\n                        const M = T / o;\n                        T = Math.floor(T * D);\n                        return {\n                            renderMinimap: h ? 1 : 2,\n                            minimapLeft: \"left\" === f ? 0 : i - E - m,\n                            minimapWidth: E,\n                            minimapHeightIsEditorHeight: x,\n                            minimapIsSampling: S,\n                            minimapScale: u,\n                            minimapLineHeight: L,\n                            minimapCanvasInnerWidth: T,\n                            minimapCanvasInnerHeight: y,\n                            minimapCanvasOuterWidth: M,\n                            minimapCanvasOuterHeight: C\n                        }\n                    }\n                    static computeLayout(e, t) {\n                        const i = 0 | t.outerWidth,\n                            n = 0 | t.outerHeight,\n                            o = 0 | t.lineHeight,\n                            s = 0 | t.lineNumbersDigitCount,\n                            r = t.typicalHalfwidthCharacterWidth,\n                            a = t.maxDigitWidth,\n                            l = t.pixelRatio,\n                            d = t.viewLineCount,\n                            h = e.get(121),\n                            u = \"inherit\" === h ? e.get(120) : h,\n                            g = \"inherit\" === u ? e.get(116) : u,\n                            p = e.get(119),\n                            f = e.get(2),\n                            v = t.isDominatedByLongLines,\n                            _ = e.get(49),\n                            b = 0 !== e.get(59).renderType,\n                            w = e.get(60),\n                            y = e.get(93),\n                            C = e.get(64),\n                            x = e.get(91),\n                            S = x.verticalScrollbarSize,\n                            L = x.verticalHasArrows,\n                            N = x.arrowSize,\n                            D = x.horizontalScrollbarSize,\n                            I = e.get(57),\n                            E = e.get(37);\n                        let T;\n                        if (\"string\" == typeof I && /^\\d+(\\.\\d+)?ch$/.test(I)) {\n                            const e = parseFloat(I.substr(0, I.length - 2));\n                            T = m.clampedInt(e * r, 0, 0, 1e3)\n                        } else T = m.clampedInt(I, 0, 0, 1e3);\n                        E && (T += 16);\n                        let M = 0;\n                        if (b) {\n                            const e = Math.max(s, w);\n                            M = Math.round(e * a)\n                        }\n                        let A = 0;\n                        _ && (A = o);\n                        let O = 0,\n                            P = O + A,\n                            R = P + M,\n                            F = R + T;\n                        const B = i - A - M - T;\n                        let V = !1,\n                            W = !1,\n                            H = -1;\n                        2 !== f && (\"inherit\" === u && v ? (V = !0, W = !0) : \"on\" === g || \"bounded\" === g ? W = !0 : \"wordWrapColumn\" === g && (H = p));\n                        const z = k._computeMinimapLayout({\n                            outerWidth: i,\n                            outerHeight: n,\n                            lineHeight: o,\n                            typicalHalfwidthCharacterWidth: r,\n                            pixelRatio: l,\n                            scrollBeyondLastLine: y,\n                            minimap: C,\n                            verticalScrollbarWidth: S,\n                            viewLineCount: d,\n                            remainingWidth: B,\n                            isViewportWrapping: W\n                        }, t.memory || new c);\n                        0 !== z.renderMinimap && 0 === z.minimapLeft && (O += z.minimapWidth, P += z.minimapWidth, R += z.minimapWidth, F += z.minimapWidth);\n                        const j = B - z.minimapWidth,\n                            U = Math.max(1, Math.floor((j - S - 2) / r)),\n                            $ = L ? N : 0;\n                        return W && (H = Math.max(1, U), \"bounded\" === g && (H = Math.min(H, p))), {\n                            width: i,\n                            height: n,\n                            glyphMarginLeft: O,\n                            glyphMarginWidth: A,\n                            lineNumbersLeft: P,\n                            lineNumbersWidth: M,\n                            decorationsLeft: R,\n                            decorationsWidth: T,\n                            contentLeft: F,\n                            contentWidth: j,\n                            minimap: z,\n                            viewportColumn: U,\n                            isWordWrapMinified: V,\n                            isViewportWrapping: W,\n                            wrappingColumn: H,\n                            verticalScrollbarWidth: S,\n                            horizontalScrollbarHeight: D,\n                            overviewRuler: {\n                                top: $,\n                                width: S,\n                                height: n - 2 * $,\n                                right: 0\n                            }\n                        }\n                    }\n                }\n\n                function L(e) {\n                    const t = e.get(86);\n                    return \"editable\" === t ? e.get(80) : \"on\" !== t\n                }\n\n                function N(e, t) {\n                    if (\"string\" != typeof e) return t;\n                    switch (e) {\n                        case \"hidden\":\n                            return 2;\n                        case \"visible\":\n                            return 3;\n                        default:\n                            return 1\n                    }\n                }\n\n                function D(e, t, i) {\n                    const n = i.indexOf(e);\n                    return -1 === n ? t : i[n]\n                }\n                const I = {\n                        fontFamily: o.dz ? \"Menlo, Monaco, 'Courier New', monospace\" : o.IJ ? \"'Droid Sans Mono', 'monospace', monospace, 'Droid Sans Fallback'\" : \"Consolas, 'Courier New', monospace\",\n                        fontWeight: \"normal\",\n                        fontSize: o.dz ? 12 : 14,\n                        lineHeight: 0,\n                        letterSpacing: 0\n                    },\n                    E = {\n                        tabSize: 4,\n                        indentSize: 4,\n                        insertSpaces: !0,\n                        detectIndentation: !0,\n                        trimAutoWhitespace: !0,\n                        largeFileOptimizations: !0,\n                        bracketPairColorizationOptions: {\n                            enabled: !1\n                        }\n                    },\n                    T = [];\n\n                function M(e) {\n                    return T[e.id] = e, e\n                }\n                const A = {\n                    acceptSuggestionOnCommitCharacter: M(new p(0, \"acceptSuggestionOnCommitCharacter\", !0, {\n                        markdownDescription: n.N(\"acceptSuggestionOnCommitCharacter\", \"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.\")\n                    })),\n                    acceptSuggestionOnEnter: M(new w(1, \"acceptSuggestionOnEnter\", \"on\", [\"on\", \"smart\", \"off\"], {\n                        markdownEnumDescriptions: [\"\", n.N(\"acceptSuggestionOnEnterSmart\", \"Only accept a suggestion with `Enter` when it makes a textual change.\"), \"\"],\n                        markdownDescription: n.N(\"acceptSuggestionOnEnter\", \"Controls whether suggestions should be accepted on `Enter`, in addition to `Tab`. Helps to avoid ambiguity between inserting new lines or accepting suggestions.\")\n                    })),\n                    accessibilitySupport: M(new class extends d {\n                        constructor() {\n                            super(2, \"accessibilitySupport\", 0, {\n                                type: \"string\",\n                                enum: [\"auto\", \"on\", \"off\"],\n                                enumDescriptions: [n.N(\"accessibilitySupport.auto\", \"The editor will use platform APIs to detect when a Screen Reader is attached.\"), n.N(\"accessibilitySupport.on\", \"The editor will be permanently optimized for usage with a Screen Reader. Word wrapping will be disabled.\"), n.N(\"accessibilitySupport.off\", \"The editor will never be optimized for usage with a Screen Reader.\")],\n                                default: \"auto\",\n                                description: n.N(\"accessibilitySupport\", \"Controls whether the editor should run in a mode where it is optimized for screen readers. Setting to on will disable word wrapping.\")\n                            })\n                        }\n                        validate(e) {\n                            switch (e) {\n                                case \"auto\":\n                                    return 0;\n                                case \"off\":\n                                    return 1;\n                                case \"on\":\n                                    return 2\n                            }\n                            return this.defaultValue\n                        }\n                        compute(e, t, i) {\n                            return 0 === i ? e.accessibilitySupport : i\n                        }\n                    }),\n                    accessibilityPageSize: M(new m(3, \"accessibilityPageSize\", 10, 1, 1073741824, {\n                        description: n.N(\"accessibilityPageSize\", \"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.\")\n                    })),\n                    ariaLabel: M(new _(4, \"ariaLabel\", n.N(\"editorViewAccessibleLabel\", \"Editor content\"))),\n                    autoClosingBrackets: M(new w(5, \"autoClosingBrackets\", \"languageDefined\", [\"always\", \"languageDefined\", \"beforeWhitespace\", \"never\"], {\n                        enumDescriptions: [\"\", n.N(\"editor.autoClosingBrackets.languageDefined\", \"Use language configurations to determine when to autoclose brackets.\"), n.N(\"editor.autoClosingBrackets.beforeWhitespace\", \"Autoclose brackets only when the cursor is to the left of whitespace.\"), \"\"],\n                        description: n.N(\"autoClosingBrackets\", \"Controls whether the editor should automatically close brackets after the user adds an opening bracket.\")\n                    })),\n                    autoClosingDelete: M(new w(6, \"autoClosingDelete\", \"auto\", [\"always\", \"auto\", \"never\"], {\n                        enumDescriptions: [\"\", n.N(\"editor.autoClosingDelete.auto\", \"Remove adjacent closing quotes or brackets only if they were automatically inserted.\"), \"\"],\n                        description: n.N(\"autoClosingDelete\", \"Controls whether the editor should remove adjacent closing quotes or brackets when deleting.\")\n                    })),\n                    autoClosingOvertype: M(new w(7, \"autoClosingOvertype\", \"auto\", [\"always\", \"auto\", \"never\"], {\n                        enumDescriptions: [\"\", n.N(\"editor.autoClosingOvertype.auto\", \"Type over closing quotes or brackets only if they were automatically inserted.\"), \"\"],\n                        description: n.N(\"autoClosingOvertype\", \"Controls whether the editor should type over closing quotes or brackets.\")\n                    })),\n                    autoClosingQuotes: M(new w(8, \"autoClosingQuotes\", \"languageDefined\", [\"always\", \"languageDefined\", \"beforeWhitespace\", \"never\"], {\n                        enumDescriptions: [\"\", n.N(\"editor.autoClosingQuotes.languageDefined\", \"Use language configurations to determine when to autoclose quotes.\"), n.N(\"editor.autoClosingQuotes.beforeWhitespace\", \"Autoclose quotes only when the cursor is to the left of whitespace.\"), \"\"],\n                        description: n.N(\"autoClosingQuotes\", \"Controls whether the editor should automatically close quotes after the user adds an opening quote.\")\n                    })),\n                    autoIndent: M(new y(9, \"autoIndent\", 4, \"full\", [\"none\", \"keep\", \"brackets\", \"advanced\", \"full\"], (function(e) {\n                        switch (e) {\n                            case \"none\":\n                                return 0;\n                            case \"keep\":\n                                return 1;\n                            case \"brackets\":\n                                return 2;\n                            case \"advanced\":\n                                return 3;\n                            case \"full\":\n                                return 4\n                        }\n                    }), {\n                        enumDescriptions: [n.N(\"editor.autoIndent.none\", \"The editor will not insert indentation automatically.\"), n.N(\"editor.autoIndent.keep\", \"The editor will keep the current line's indentation.\"), n.N(\"editor.autoIndent.brackets\", \"The editor will keep the current line's indentation and honor language defined brackets.\"), n.N(\"editor.autoIndent.advanced\", \"The editor will keep the current line's indentation, honor language defined brackets and invoke special onEnterRules defined by languages.\"), n.N(\"editor.autoIndent.full\", \"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.\")],\n                        description: n.N(\"autoIndent\", \"Controls whether the editor should automatically adjust the indentation when users type, paste, move or indent lines.\")\n                    })),\n                    automaticLayout: M(new p(10, \"automaticLayout\", !1)),\n                    autoSurround: M(new w(11, \"autoSurround\", \"languageDefined\", [\"languageDefined\", \"quotes\", \"brackets\", \"never\"], {\n                        enumDescriptions: [n.N(\"editor.autoSurround.languageDefined\", \"Use language configurations to determine when to automatically surround selections.\"), n.N(\"editor.autoSurround.quotes\", \"Surround with quotes but not brackets.\"), n.N(\"editor.autoSurround.brackets\", \"Surround with brackets but not quotes.\"), \"\"],\n                        description: n.N(\"autoSurround\", \"Controls whether the editor should automatically surround selections when typing quotes or brackets.\")\n                    })),\n                    bracketPairColorization: M(new class extends d {\n                        constructor() {\n                            const e = {\n                                enabled: E.bracketPairColorizationOptions.enabled\n                            };\n                            super(12, \"bracketPairColorization\", e, {\n                                \"editor.bracketPairColorization.enabled\": {\n                                    type: \"boolean\",\n                                    default: e.enabled,\n                                    description: n.N(\"bracketPairColorization.enabled\", \"Controls whether bracket pair colorization is enabled or not. Use 'workbench.colorCustomizations' to override the bracket highlight colors.\")\n                                }\n                            })\n                        }\n                        validate(e) {\n                            if (!e || \"object\" != typeof e) return this.defaultValue;\n                            return {\n                                enabled: g(e.enabled, this.defaultValue.enabled)\n                            }\n                        }\n                    }),\n                    bracketPairGuides: M(new class extends d {\n                        constructor() {\n                            const e = {\n                                bracketPairs: !1,\n                                bracketPairsHorizontal: \"active\",\n                                highlightActiveBracketPair: !0,\n                                indentation: !0,\n                                highlightActiveIndentation: !0\n                            };\n                            super(13, \"guides\", e, {\n                                \"editor.guides.bracketPairs\": {\n                                    type: [\"boolean\", \"string\"],\n                                    enum: [!0, \"active\", !1],\n                                    enumDescriptions: [n.N(\"editor.guides.bracketPairs.true\", \"Enables bracket pair guides.\"), n.N(\"editor.guides.bracketPairs.active\", \"Enables bracket pair guides only for the active bracket pair.\"), n.N(\"editor.guides.bracketPairs.false\", \"Disables bracket pair guides.\")],\n                                    default: e.bracketPairs,\n                                    description: n.N(\"editor.guides.bracketPairs\", \"Controls whether bracket pair guides are enabled or not.\")\n                                },\n                                \"editor.guides.bracketPairsHorizontal\": {\n                                    type: [\"boolean\", \"string\"],\n                                    enum: [!0, \"active\", !1],\n                                    enumDescriptions: [n.N(\"editor.guides.bracketPairsHorizontal.true\", \"Enables horizontal guides as addition to vertical bracket pair guides.\"), n.N(\"editor.guides.bracketPairsHorizontal.active\", \"Enables horizontal guides only for the active bracket pair.\"), n.N(\"editor.guides.bracketPairsHorizontal.false\", \"Disables horizontal bracket pair guides.\")],\n                                    default: e.bracketPairsHorizontal,\n                                    description: n.N(\"editor.guides.bracketPairsHorizontal\", \"Controls whether horizontal bracket pair guides are enabled or not.\")\n                                },\n                                \"editor.guides.highlightActiveBracketPair\": {\n                                    type: \"boolean\",\n                                    default: e.highlightActiveBracketPair,\n                                    description: n.N(\"editor.guides.highlightActiveBracketPair\", \"Controls whether bracket pair guides are enabled or not.\")\n                                },\n                                \"editor.guides.indentation\": {\n                                    type: \"boolean\",\n                                    default: e.indentation,\n                                    description: n.N(\"editor.guides.indentation\", \"Controls whether the editor should render indent guides.\")\n                                },\n                                \"editor.guides.highlightActiveIndentation\": {\n                                    type: \"boolean\",\n                                    default: e.highlightActiveIndentation,\n                                    description: n.N(\"editor.guides.highlightActiveIndentation\", \"Controls whether the editor should highlight the active indent guide.\")\n                                }\n                            })\n                        }\n                        validate(e) {\n                            if (!e || \"object\" != typeof e) return this.defaultValue;\n                            const t = e;\n                            return {\n                                bracketPairs: D(t.bracketPairs, this.defaultValue.bracketPairs, [!0, !1, \"active\"]),\n                                bracketPairsHorizontal: D(t.bracketPairsHorizontal, this.defaultValue.bracketPairsHorizontal, [!0, !1, \"active\"]),\n                                highlightActiveBracketPair: g(t.highlightActiveBracketPair, this.defaultValue.highlightActiveBracketPair),\n                                indentation: g(t.indentation, this.defaultValue.indentation),\n                                highlightActiveIndentation: g(t.highlightActiveIndentation, this.defaultValue.highlightActiveIndentation)\n                            }\n                        }\n                    }),\n                    stickyTabStops: M(new p(103, \"stickyTabStops\", !1, {\n                        description: n.N(\"stickyTabStops\", \"Emulate selection behavior of tab characters when using spaces for indentation. Selection will stick to tab stops.\")\n                    })),\n                    codeLens: M(new p(14, \"codeLens\", !0, {\n                        description: n.N(\"codeLens\", \"Controls whether the editor shows CodeLens.\")\n                    })),\n                    codeLensFontFamily: M(new _(15, \"codeLensFontFamily\", \"\", {\n                        description: n.N(\"codeLensFontFamily\", \"Controls the font family for CodeLens.\")\n                    })),\n                    codeLensFontSize: M(new m(16, \"codeLensFontSize\", 0, 0, 100, {\n                        type: \"number\",\n                        default: 0,\n                        minimum: 0,\n                        maximum: 100,\n                        markdownDescription: n.N(\"codeLensFontSize\", \"Controls the font size in pixels for CodeLens. When set to `0`, the 90% of `#editor.fontSize#` is used.\")\n                    })),\n                    colorDecorators: M(new p(17, \"colorDecorators\", !0, {\n                        description: n.N(\"colorDecorators\", \"Controls whether the editor should render the inline color decorators and color picker.\")\n                    })),\n                    columnSelection: M(new p(18, \"columnSelection\", !1, {\n                        description: n.N(\"columnSelection\", \"Enable that the selection with the mouse and keys is doing column selection.\")\n                    })),\n                    comments: M(new class extends d {\n                        constructor() {\n                            const e = {\n                                insertSpace: !0,\n                                ignoreEmptyLines: !0\n                            };\n                            super(19, \"comments\", e, {\n                                \"editor.comments.insertSpace\": {\n                                    type: \"boolean\",\n                                    default: e.insertSpace,\n                                    description: n.N(\"comments.insertSpace\", \"Controls whether a space character is inserted when commenting.\")\n                                },\n                                \"editor.comments.ignoreEmptyLines\": {\n                                    type: \"boolean\",\n                                    default: e.ignoreEmptyLines,\n                                    description: n.N(\"comments.ignoreEmptyLines\", \"Controls if empty lines should be ignored with toggle, add or remove actions for line comments.\")\n                                }\n                            })\n                        }\n                        validate(e) {\n                            if (!e || \"object\" != typeof e) return this.defaultValue;\n                            const t = e;\n                            return {\n                                insertSpace: g(t.insertSpace, this.defaultValue.insertSpace),\n                                ignoreEmptyLines: g(t.ignoreEmptyLines, this.defaultValue.ignoreEmptyLines)\n                            }\n                        }\n                    }),\n                    contextmenu: M(new p(20, \"contextmenu\", !0)),\n                    copyWithSyntaxHighlighting: M(new p(21, \"copyWithSyntaxHighlighting\", !0, {\n                        description: n.N(\"copyWithSyntaxHighlighting\", \"Controls whether syntax highlighting should be copied into the clipboard.\")\n                    })),\n                    cursorBlinking: M(new y(22, \"cursorBlinking\", 1, \"blink\", [\"blink\", \"smooth\", \"phase\", \"expand\", \"solid\"], (function(e) {\n                        switch (e) {\n                            case \"blink\":\n                                return 1;\n                            case \"smooth\":\n                                return 2;\n                            case \"phase\":\n                                return 3;\n                            case \"expand\":\n                                return 4;\n                            case \"solid\":\n                                return 5\n                        }\n                    }), {\n                        description: n.N(\"cursorBlinking\", \"Control the cursor animation style.\")\n                    })),\n                    cursorSmoothCaretAnimation: M(new p(23, \"cursorSmoothCaretAnimation\", !1, {\n                        description: n.N(\"cursorSmoothCaretAnimation\", \"Controls whether the smooth caret animation should be enabled.\")\n                    })),\n                    cursorStyle: M(new y(24, \"cursorStyle\", C.Line, \"line\", [\"line\", \"block\", \"underline\", \"line-thin\", \"block-outline\", \"underline-thin\"], (function(e) {\n                        switch (e) {\n                            case \"line\":\n                                return C.Line;\n                            case \"block\":\n                                return C.Block;\n                            case \"underline\":\n                                return C.Underline;\n                            case \"line-thin\":\n                                return C.LineThin;\n                            case \"block-outline\":\n                                return C.BlockOutline;\n                            case \"underline-thin\":\n                                return C.UnderlineThin\n                        }\n                    }), {\n                        description: n.N(\"cursorStyle\", \"Controls the cursor style.\")\n                    })),\n                    cursorSurroundingLines: M(new m(25, \"cursorSurroundingLines\", 0, 0, 1073741824, {\n                        description: n.N(\"cursorSurroundingLines\", \"Controls the minimal number of visible leading and trailing lines surrounding the cursor. Known as 'scrollOff' or 'scrollOffset' in some other editors.\")\n                    })),\n                    cursorSurroundingLinesStyle: M(new w(26, \"cursorSurroundingLinesStyle\", \"default\", [\"default\", \"all\"], {\n                        enumDescriptions: [n.N(\"cursorSurroundingLinesStyle.default\", \"`cursorSurroundingLines` is enforced only when triggered via the keyboard or API.\"), n.N(\"cursorSurroundingLinesStyle.all\", \"`cursorSurroundingLines` is enforced always.\")],\n                        description: n.N(\"cursorSurroundingLinesStyle\", \"Controls when `cursorSurroundingLines` should be enforced.\")\n                    })),\n                    cursorWidth: M(new m(27, \"cursorWidth\", 0, 0, 1073741824, {\n                        markdownDescription: n.N(\"cursorWidth\", \"Controls the width of the cursor when `#editor.cursorStyle#` is set to `line`.\")\n                    })),\n                    disableLayerHinting: M(new p(28, \"disableLayerHinting\", !1)),\n                    disableMonospaceOptimizations: M(new p(29, \"disableMonospaceOptimizations\", !1)),\n                    domReadOnly: M(new p(30, \"domReadOnly\", !1)),\n                    dragAndDrop: M(new p(31, \"dragAndDrop\", !0, {\n                        description: n.N(\"dragAndDrop\", \"Controls whether the editor should allow moving selections via drag and drop.\")\n                    })),\n                    emptySelectionClipboard: M(new class extends p {\n                        constructor() {\n                            super(32, \"emptySelectionClipboard\", !0, {\n                                description: n.N(\"emptySelectionClipboard\", \"Controls whether copying without a selection copies the current line.\")\n                            })\n                        }\n                        compute(e, t, i) {\n                            return i && e.emptySelectionClipboard\n                        }\n                    }),\n                    extraEditorClassName: M(new _(33, \"extraEditorClassName\", \"\")),\n                    fastScrollSensitivity: M(new v(34, \"fastScrollSensitivity\", 5, (e => e <= 0 ? 5 : e), {\n                        markdownDescription: n.N(\"fastScrollSensitivity\", \"Scrolling speed multiplier when pressing `Alt`.\")\n                    })),\n                    find: M(new class extends d {\n                        constructor() {\n                            const e = {\n                                cursorMoveOnType: !0,\n                                seedSearchStringFromSelection: \"always\",\n                                autoFindInSelection: \"never\",\n                                globalFindClipboard: !1,\n                                addExtraSpaceOnTop: !0,\n                                loop: !0\n                            };\n                            super(35, \"find\", e, {\n                                \"editor.find.cursorMoveOnType\": {\n                                    type: \"boolean\",\n                                    default: e.cursorMoveOnType,\n                                    description: n.N(\"find.cursorMoveOnType\", \"Controls whether the cursor should jump to find matches while typing.\")\n                                },\n                                \"editor.find.seedSearchStringFromSelection\": {\n                                    type: \"string\",\n                                    enum: [\"never\", \"always\", \"selection\"],\n                                    default: e.seedSearchStringFromSelection,\n                                    enumDescriptions: [n.N(\"editor.find.seedSearchStringFromSelection.never\", \"Never seed search string from the editor selection.\"), n.N(\"editor.find.seedSearchStringFromSelection.always\", \"Always seed search string from the editor selection, including word at cursor position.\"), n.N(\"editor.find.seedSearchStringFromSelection.selection\", \"Only seed search string from the editor selection.\")],\n                                    description: n.N(\"find.seedSearchStringFromSelection\", \"Controls whether the search string in the Find Widget is seeded from the editor selection.\")\n                                },\n                                \"editor.find.autoFindInSelection\": {\n                                    type: \"string\",\n                                    enum: [\"never\", \"always\", \"multiline\"],\n                                    default: e.autoFindInSelection,\n                                    enumDescriptions: [n.N(\"editor.find.autoFindInSelection.never\", \"Never turn on Find in Selection automatically (default).\"), n.N(\"editor.find.autoFindInSelection.always\", \"Always turn on Find in Selection automatically.\"), n.N(\"editor.find.autoFindInSelection.multiline\", \"Turn on Find in Selection automatically when multiple lines of content are selected.\")],\n                                    description: n.N(\"find.autoFindInSelection\", \"Controls the condition for turning on Find in Selection automatically.\")\n                                },\n                                \"editor.find.globalFindClipboard\": {\n                                    type: \"boolean\",\n                                    default: e.globalFindClipboard,\n                                    description: n.N(\"find.globalFindClipboard\", \"Controls whether the Find Widget should read or modify the shared find clipboard on macOS.\"),\n                                    included: o.dz\n                                },\n                                \"editor.find.addExtraSpaceOnTop\": {\n                                    type: \"boolean\",\n                                    default: e.addExtraSpaceOnTop,\n                                    description: n.N(\"find.addExtraSpaceOnTop\", \"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.\")\n                                },\n                                \"editor.find.loop\": {\n                                    type: \"boolean\",\n                                    default: e.loop,\n                                    description: n.N(\"find.loop\", \"Controls whether the search automatically restarts from the beginning (or the end) when no further matches can be found.\")\n                                }\n                            })\n                        }\n                        validate(e) {\n                            if (!e || \"object\" != typeof e) return this.defaultValue;\n                            const t = e;\n                            return {\n                                cursorMoveOnType: g(t.cursorMoveOnType, this.defaultValue.cursorMoveOnType),\n                                seedSearchStringFromSelection: \"boolean\" == typeof e.seedSearchStringFromSelection ? e.seedSearchStringFromSelection ? \"always\" : \"never\" : b(t.seedSearchStringFromSelection, this.defaultValue.seedSearchStringFromSelection, [\"never\", \"always\", \"selection\"]),\n                                autoFindInSelection: \"boolean\" == typeof e.autoFindInSelection ? e.autoFindInSelection ? \"always\" : \"never\" : b(t.autoFindInSelection, this.defaultValue.autoFindInSelection, [\"never\", \"always\", \"multiline\"]),\n                                globalFindClipboard: g(t.globalFindClipboard, this.defaultValue.globalFindClipboard),\n                                addExtraSpaceOnTop: g(t.addExtraSpaceOnTop, this.defaultValue.addExtraSpaceOnTop),\n                                loop: g(t.loop, this.defaultValue.loop)\n                            }\n                        }\n                    }),\n                    fixedOverflowWidgets: M(new p(36, \"fixedOverflowWidgets\", !1)),\n                    folding: M(new p(37, \"folding\", !0, {\n                        description: n.N(\"folding\", \"Controls whether the editor has code folding enabled.\")\n                    })),\n                    foldingStrategy: M(new w(38, \"foldingStrategy\", \"auto\", [\"auto\", \"indentation\"], {\n                        enumDescriptions: [n.N(\"foldingStrategy.auto\", \"Use a language-specific folding strategy if available, else the indentation-based one.\"), n.N(\"foldingStrategy.indentation\", \"Use the indentation-based folding strategy.\")],\n                        description: n.N(\"foldingStrategy\", \"Controls the strategy for computing folding ranges.\")\n                    })),\n                    foldingHighlight: M(new p(39, \"foldingHighlight\", !0, {\n                        description: n.N(\"foldingHighlight\", \"Controls whether the editor should highlight folded ranges.\")\n                    })),\n                    foldingImportsByDefault: M(new p(40, \"foldingImportsByDefault\", !1, {\n                        description: n.N(\"foldingImportsByDefault\", \"Controls whether the editor automatically collapses import ranges.\")\n                    })),\n                    unfoldOnClickAfterEndOfLine: M(new p(41, \"unfoldOnClickAfterEndOfLine\", !1, {\n                        description: n.N(\"unfoldOnClickAfterEndOfLine\", \"Controls whether clicking on the empty content after a folded line will unfold the line.\")\n                    })),\n                    fontFamily: M(new _(42, \"fontFamily\", I.fontFamily, {\n                        description: n.N(\"fontFamily\", \"Controls the font family.\")\n                    })),\n                    fontInfo: M(new class extends h {\n                        constructor() {\n                            super(43)\n                        }\n                        compute(e, t, i) {\n                            return e.fontInfo\n                        }\n                    }),\n                    fontLigatures2: M(new x),\n                    fontSize: M(new class extends u {\n                        constructor() {\n                            super(45, \"fontSize\", I.fontSize, {\n                                type: \"number\",\n                                minimum: 6,\n                                maximum: 100,\n                                default: I.fontSize,\n                                description: n.N(\"fontSize\", \"Controls the font size in pixels.\")\n                            })\n                        }\n                        validate(e) {\n                            let t = v.float(e, this.defaultValue);\n                            return 0 === t ? I.fontSize : v.clamp(t, 6, 100)\n                        }\n                        compute(e, t, i) {\n                            return e.fontInfo.fontSize\n                        }\n                    }),\n                    fontWeight: M(new S),\n                    formatOnPaste: M(new p(47, \"formatOnPaste\", !1, {\n                        description: n.N(\"formatOnPaste\", \"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.\")\n                    })),\n                    formatOnType: M(new p(48, \"formatOnType\", !1, {\n                        description: n.N(\"formatOnType\", \"Controls whether the editor should automatically format the line after typing.\")\n                    })),\n                    glyphMargin: M(new p(49, \"glyphMargin\", !0, {\n                        description: n.N(\"glyphMargin\", \"Controls whether the editor should render the vertical glyph margin. Glyph margin is mostly used for debugging.\")\n                    })),\n                    gotoLocation: M(new class extends d {\n                        constructor() {\n                            const e = {\n                                    multiple: \"peek\",\n                                    multipleDefinitions: \"peek\",\n                                    multipleTypeDefinitions: \"peek\",\n                                    multipleDeclarations: \"peek\",\n                                    multipleImplementations: \"peek\",\n                                    multipleReferences: \"peek\",\n                                    alternativeDefinitionCommand: \"editor.action.goToReferences\",\n                                    alternativeTypeDefinitionCommand: \"editor.action.goToReferences\",\n                                    alternativeDeclarationCommand: \"editor.action.goToReferences\",\n                                    alternativeImplementationCommand: \"\",\n                                    alternativeReferenceCommand: \"\"\n                                },\n                                t = {\n                                    type: \"string\",\n                                    enum: [\"peek\", \"gotoAndPeek\", \"goto\"],\n                                    default: e.multiple,\n                                    enumDescriptions: [n.N(\"editor.gotoLocation.multiple.peek\", \"Show peek view of the results (default)\"), n.N(\"editor.gotoLocation.multiple.gotoAndPeek\", \"Go to the primary result and show a peek view\"), n.N(\"editor.gotoLocation.multiple.goto\", \"Go to the primary result and enable peek-less navigation to others\")]\n                                },\n                                i = [\"\", \"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\"];\n                            super(50, \"gotoLocation\", e, {\n                                \"editor.gotoLocation.multiple\": {\n                                    deprecationMessage: n.N(\"editor.gotoLocation.multiple.deprecated\", \"This setting is deprecated, please use separate settings like 'editor.editor.gotoLocation.multipleDefinitions' or 'editor.editor.gotoLocation.multipleImplementations' instead.\")\n                                },\n                                \"editor.gotoLocation.multipleDefinitions\": Object.assign({\n                                    description: n.N(\"editor.editor.gotoLocation.multipleDefinitions\", \"Controls the behavior the 'Go to Definition'-command when multiple target locations exist.\")\n                                }, t),\n                                \"editor.gotoLocation.multipleTypeDefinitions\": Object.assign({\n                                    description: n.N(\"editor.editor.gotoLocation.multipleTypeDefinitions\", \"Controls the behavior the 'Go to Type Definition'-command when multiple target locations exist.\")\n                                }, t),\n                                \"editor.gotoLocation.multipleDeclarations\": Object.assign({\n                                    description: n.N(\"editor.editor.gotoLocation.multipleDeclarations\", \"Controls the behavior the 'Go to Declaration'-command when multiple target locations exist.\")\n                                }, t),\n                                \"editor.gotoLocation.multipleImplementations\": Object.assign({\n                                    description: n.N(\"editor.editor.gotoLocation.multipleImplemenattions\", \"Controls the behavior the 'Go to Implementations'-command when multiple target locations exist.\")\n                                }, t),\n                                \"editor.gotoLocation.multipleReferences\": Object.assign({\n                                    description: n.N(\"editor.editor.gotoLocation.multipleReferences\", \"Controls the behavior the 'Go to References'-command when multiple target locations exist.\")\n                                }, t),\n                                \"editor.gotoLocation.alternativeDefinitionCommand\": {\n                                    type: \"string\",\n                                    default: e.alternativeDefinitionCommand,\n                                    enum: i,\n                                    description: n.N(\"alternativeDefinitionCommand\", \"Alternative command id that is being executed when the result of 'Go to Definition' is the current location.\")\n                                },\n                                \"editor.gotoLocation.alternativeTypeDefinitionCommand\": {\n                                    type: \"string\",\n                                    default: e.alternativeTypeDefinitionCommand,\n                                    enum: i,\n                                    description: n.N(\"alternativeTypeDefinitionCommand\", \"Alternative command id that is being executed when the result of 'Go to Type Definition' is the current location.\")\n                                },\n                                \"editor.gotoLocation.alternativeDeclarationCommand\": {\n                                    type: \"string\",\n                                    default: e.alternativeDeclarationCommand,\n                                    enum: i,\n                                    description: n.N(\"alternativeDeclarationCommand\", \"Alternative command id that is being executed when the result of 'Go to Declaration' is the current location.\")\n                                },\n                                \"editor.gotoLocation.alternativeImplementationCommand\": {\n                                    type: \"string\",\n                                    default: e.alternativeImplementationCommand,\n                                    enum: i,\n                                    description: n.N(\"alternativeImplementationCommand\", \"Alternative command id that is being executed when the result of 'Go to Implementation' is the current location.\")\n                                },\n                                \"editor.gotoLocation.alternativeReferenceCommand\": {\n                                    type: \"string\",\n                                    default: e.alternativeReferenceCommand,\n                                    enum: i,\n                                    description: n.N(\"alternativeReferenceCommand\", \"Alternative command id that is being executed when the result of 'Go to Reference' is the current location.\")\n                                }\n                            })\n                        }\n                        validate(e) {\n                            var t, i, n, o, s;\n                            if (!e || \"object\" != typeof e) return this.defaultValue;\n                            const r = e;\n                            return {\n                                multiple: b(r.multiple, this.defaultValue.multiple, [\"peek\", \"gotoAndPeek\", \"goto\"]),\n                                multipleDefinitions: null !== (t = r.multipleDefinitions) && void 0 !== t ? t : b(r.multipleDefinitions, \"peek\", [\"peek\", \"gotoAndPeek\", \"goto\"]),\n                                multipleTypeDefinitions: null !== (i = r.multipleTypeDefinitions) && void 0 !== i ? i : b(r.multipleTypeDefinitions, \"peek\", [\"peek\", \"gotoAndPeek\", \"goto\"]),\n                                multipleDeclarations: null !== (n = r.multipleDeclarations) && void 0 !== n ? n : b(r.multipleDeclarations, \"peek\", [\"peek\", \"gotoAndPeek\", \"goto\"]),\n                                multipleImplementations: null !== (o = r.multipleImplementations) && void 0 !== o ? o : b(r.multipleImplementations, \"peek\", [\"peek\", \"gotoAndPeek\", \"goto\"]),\n                                multipleReferences: null !== (s = r.multipleReferences) && void 0 !== s ? s : b(r.multipleReferences, \"peek\", [\"peek\", \"gotoAndPeek\", \"goto\"]),\n                                alternativeDefinitionCommand: _.string(r.alternativeDefinitionCommand, this.defaultValue.alternativeDefinitionCommand),\n                                alternativeTypeDefinitionCommand: _.string(r.alternativeTypeDefinitionCommand, this.defaultValue.alternativeTypeDefinitionCommand),\n                                alternativeDeclarationCommand: _.string(r.alternativeDeclarationCommand, this.defaultValue.alternativeDeclarationCommand),\n                                alternativeImplementationCommand: _.string(r.alternativeImplementationCommand, this.defaultValue.alternativeImplementationCommand),\n                                alternativeReferenceCommand: _.string(r.alternativeReferenceCommand, this.defaultValue.alternativeReferenceCommand)\n                            }\n                        }\n                    }),\n                    hideCursorInOverviewRuler: M(new p(51, \"hideCursorInOverviewRuler\", !1, {\n                        description: n.N(\"hideCursorInOverviewRuler\", \"Controls whether the cursor should be hidden in the overview ruler.\")\n                    })),\n                    hover: M(new class extends d {\n                        constructor() {\n                            const e = {\n                                enabled: !0,\n                                delay: 300,\n                                sticky: !0,\n                                above: !0\n                            };\n                            super(52, \"hover\", e, {\n                                \"editor.hover.enabled\": {\n                                    type: \"boolean\",\n                                    default: e.enabled,\n                                    description: n.N(\"hover.enabled\", \"Controls whether the hover is shown.\")\n                                },\n                                \"editor.hover.delay\": {\n                                    type: \"number\",\n                                    default: e.delay,\n                                    description: n.N(\"hover.delay\", \"Controls the delay in milliseconds after which the hover is shown.\")\n                                },\n                                \"editor.hover.sticky\": {\n                                    type: \"boolean\",\n                                    default: e.sticky,\n                                    description: n.N(\"hover.sticky\", \"Controls whether the hover should remain visible when mouse is moved over it.\")\n                                },\n                                \"editor.hover.above\": {\n                                    type: \"boolean\",\n                                    default: e.above,\n                                    description: n.N(\"hover.above\", \"Prefer showing hovers above the line, if there's space.\")\n                                }\n                            })\n                        }\n                        validate(e) {\n                            if (!e || \"object\" != typeof e) return this.defaultValue;\n                            const t = e;\n                            return {\n                                enabled: g(t.enabled, this.defaultValue.enabled),\n                                delay: m.clampedInt(t.delay, this.defaultValue.delay, 0, 1e4),\n                                sticky: g(t.sticky, this.defaultValue.sticky),\n                                above: g(t.above, this.defaultValue.above)\n                            }\n                        }\n                    }),\n                    inDiffEditor: M(new p(53, \"inDiffEditor\", !1)),\n                    letterSpacing: M(new v(55, \"letterSpacing\", I.letterSpacing, (e => v.clamp(e, -5, 20)), {\n                        description: n.N(\"letterSpacing\", \"Controls the letter spacing in pixels.\")\n                    })),\n                    lightbulb: M(new class extends d {\n                        constructor() {\n                            const e = {\n                                enabled: !0\n                            };\n                            super(56, \"lightbulb\", e, {\n                                \"editor.lightbulb.enabled\": {\n                                    type: \"boolean\",\n                                    default: e.enabled,\n                                    description: n.N(\"codeActions\", \"Enables the code action lightbulb in the editor.\")\n                                }\n                            })\n                        }\n                        validate(e) {\n                            if (!e || \"object\" != typeof e) return this.defaultValue;\n                            return {\n                                enabled: g(e.enabled, this.defaultValue.enabled)\n                            }\n                        }\n                    }),\n                    lineDecorationsWidth: M(new u(57, \"lineDecorationsWidth\", 10)),\n                    lineHeight: M(new class extends v {\n                        constructor() {\n                            super(58, \"lineHeight\", I.lineHeight, (e => v.clamp(e, 0, 150)), {\n                                markdownDescription: n.N(\"lineHeight\", \"Controls the line height. \\n - Use 0 to automatically compute the line height from the font size.\\n - Values between 0 and 8 will be used as a multiplier with the font size.\\n - Values greater than or equal to 8 will be used as effective values.\")\n                            })\n                        }\n                        compute(e, t, i) {\n                            return e.fontInfo.lineHeight\n                        }\n                    }),\n                    lineNumbers: M(new class extends d {\n                        constructor() {\n                            super(59, \"lineNumbers\", {\n                                renderType: 1,\n                                renderFn: null\n                            }, {\n                                type: \"string\",\n                                enum: [\"off\", \"on\", \"relative\", \"interval\"],\n                                enumDescriptions: [n.N(\"lineNumbers.off\", \"Line numbers are not rendered.\"), n.N(\"lineNumbers.on\", \"Line numbers are rendered as absolute number.\"), n.N(\"lineNumbers.relative\", \"Line numbers are rendered as distance in lines to cursor position.\"), n.N(\"lineNumbers.interval\", \"Line numbers are rendered every 10 lines.\")],\n                                default: \"on\",\n                                description: n.N(\"lineNumbers\", \"Controls the display of line numbers.\")\n                            })\n                        }\n                        validate(e) {\n                            let t = this.defaultValue.renderType,\n                                i = this.defaultValue.renderFn;\n                            return void 0 !== e && (\"function\" == typeof e ? (t = 4, i = e) : t = \"interval\" === e ? 3 : \"relative\" === e ? 2 : \"on\" === e ? 1 : 0), {\n                                renderType: t,\n                                renderFn: i\n                            }\n                        }\n                    }),\n                    lineNumbersMinChars: M(new m(60, \"lineNumbersMinChars\", 5, 1, 300)),\n                    linkedEditing: M(new p(61, \"linkedEditing\", !1, {\n                        description: n.N(\"linkedEditing\", \"Controls whether the editor has linked editing enabled. Depending on the language, related symbols, e.g. HTML tags, are updated while editing.\")\n                    })),\n                    links: M(new p(62, \"links\", !0, {\n                        description: n.N(\"links\", \"Controls whether the editor should detect links and make them clickable.\")\n                    })),\n                    matchBrackets: M(new w(63, \"matchBrackets\", \"always\", [\"always\", \"near\", \"never\"], {\n                        description: n.N(\"matchBrackets\", \"Highlight matching brackets.\")\n                    })),\n                    minimap: M(new class extends d {\n                        constructor() {\n                            const e = {\n                                enabled: !0,\n                                size: \"proportional\",\n                                side: \"right\",\n                                showSlider: \"mouseover\",\n                                renderCharacters: !0,\n                                maxColumn: 120,\n                                scale: 1\n                            };\n                            super(64, \"minimap\", e, {\n                                \"editor.minimap.enabled\": {\n                                    type: \"boolean\",\n                                    default: e.enabled,\n                                    description: n.N(\"minimap.enabled\", \"Controls whether the minimap is shown.\")\n                                },\n                                \"editor.minimap.size\": {\n                                    type: \"string\",\n                                    enum: [\"proportional\", \"fill\", \"fit\"],\n                                    enumDescriptions: [n.N(\"minimap.size.proportional\", \"The minimap has the same size as the editor contents (and might scroll).\"), n.N(\"minimap.size.fill\", \"The minimap will stretch or shrink as necessary to fill the height of the editor (no scrolling).\"), n.N(\"minimap.size.fit\", \"The minimap will shrink as necessary to never be larger than the editor (no scrolling).\")],\n                                    default: e.size,\n                                    description: n.N(\"minimap.size\", \"Controls the size of the minimap.\")\n                                },\n                                \"editor.minimap.side\": {\n                                    type: \"string\",\n                                    enum: [\"left\", \"right\"],\n                                    default: e.side,\n                                    description: n.N(\"minimap.side\", \"Controls the side where to render the minimap.\")\n                                },\n                                \"editor.minimap.showSlider\": {\n                                    type: \"string\",\n                                    enum: [\"always\", \"mouseover\"],\n                                    default: e.showSlider,\n                                    description: n.N(\"minimap.showSlider\", \"Controls when the minimap slider is shown.\")\n                                },\n                                \"editor.minimap.scale\": {\n                                    type: \"number\",\n                                    default: e.scale,\n                                    minimum: 1,\n                                    maximum: 3,\n                                    enum: [1, 2, 3],\n                                    description: n.N(\"minimap.scale\", \"Scale of content drawn in the minimap: 1, 2 or 3.\")\n                                },\n                                \"editor.minimap.renderCharacters\": {\n                                    type: \"boolean\",\n                                    default: e.renderCharacters,\n                                    description: n.N(\"minimap.renderCharacters\", \"Render the actual characters on a line as opposed to color blocks.\")\n                                },\n                                \"editor.minimap.maxColumn\": {\n                                    type: \"number\",\n                                    default: e.maxColumn,\n                                    description: n.N(\"minimap.maxColumn\", \"Limit the width of the minimap to render at most a certain number of columns.\")\n                                }\n                            })\n                        }\n                        validate(e) {\n                            if (!e || \"object\" != typeof e) return this.defaultValue;\n                            const t = e;\n                            return {\n                                enabled: g(t.enabled, this.defaultValue.enabled),\n                                size: b(t.size, this.defaultValue.size, [\"proportional\", \"fill\", \"fit\"]),\n                                side: b(t.side, this.defaultValue.side, [\"right\", \"left\"]),\n                                showSlider: b(t.showSlider, this.defaultValue.showSlider, [\"always\", \"mouseover\"]),\n                                renderCharacters: g(t.renderCharacters, this.defaultValue.renderCharacters),\n                                scale: m.clampedInt(t.scale, 1, 1, 3),\n                                maxColumn: m.clampedInt(t.maxColumn, this.defaultValue.maxColumn, 1, 1e4)\n                            }\n                        }\n                    }),\n                    mouseStyle: M(new w(65, \"mouseStyle\", \"text\", [\"text\", \"default\", \"copy\"])),\n                    mouseWheelScrollSensitivity: M(new v(66, \"mouseWheelScrollSensitivity\", 1, (e => 0 === e ? 1 : e), {\n                        markdownDescription: n.N(\"mouseWheelScrollSensitivity\", \"A multiplier to be used on the `deltaX` and `deltaY` of mouse wheel scroll events.\")\n                    })),\n                    mouseWheelZoom: M(new p(67, \"mouseWheelZoom\", !1, {\n                        markdownDescription: n.N(\"mouseWheelZoom\", \"Zoom the font of the editor when using mouse wheel and holding `Ctrl`.\")\n                    })),\n                    multiCursorMergeOverlapping: M(new p(68, \"multiCursorMergeOverlapping\", !0, {\n                        description: n.N(\"multiCursorMergeOverlapping\", \"Merge multiple cursors when they are overlapping.\")\n                    })),\n                    multiCursorModifier: M(new y(69, \"multiCursorModifier\", \"altKey\", \"alt\", [\"ctrlCmd\", \"alt\"], (function(e) {\n                        return \"ctrlCmd\" === e ? o.dz ? \"metaKey\" : \"ctrlKey\" : \"altKey\"\n                    }), {\n                        markdownEnumDescriptions: [n.N(\"multiCursorModifier.ctrlCmd\", \"Maps to `Control` on Windows and Linux and to `Command` on macOS.\"), n.N(\"multiCursorModifier.alt\", \"Maps to `Alt` on Windows and Linux and to `Option` on macOS.\")],\n                        markdownDescription: n.N({\n                            key: \"multiCursorModifier\",\n                            comment: [\"- `ctrlCmd` refers to a value the setting can take and should not be localized.\", \"- `Control` and `Command` refer to the modifier keys Ctrl or Cmd on the keyboard and can be localized.\"]\n                        }, \"The modifier to be used to add multiple cursors with the mouse. The 前往 Definition and Open Link mouse gestures will adapt such that they do not conflict with the multicursor modifier. [Read more](https://code.visualstudio.com/docs/editor/codebasics#_multicursor-modifier).\")\n                    })),\n                    multiCursorPaste: M(new w(70, \"multiCursorPaste\", \"spread\", [\"spread\", \"full\"], {\n                        markdownEnumDescriptions: [n.N(\"multiCursorPaste.spread\", \"Each cursor pastes a single line of the text.\"), n.N(\"multiCursorPaste.full\", \"Each cursor pastes the full text.\")],\n                        markdownDescription: n.N(\"multiCursorPaste\", \"Controls pasting when the line count of the pasted text matches the cursor count.\")\n                    })),\n                    occurrencesHighlight: M(new p(71, \"occurrencesHighlight\", !0, {\n                        description: n.N(\"occurrencesHighlight\", \"Controls whether the editor should highlight semantic symbol occurrences.\")\n                    })),\n                    overviewRulerBorder: M(new p(72, \"overviewRulerBorder\", !0, {\n                        description: n.N(\"overviewRulerBorder\", \"Controls whether a border should be drawn around the overview ruler.\")\n                    })),\n                    overviewRulerLanes: M(new m(73, \"overviewRulerLanes\", 3, 0, 3)),\n                    padding: M(new class extends d {\n                        constructor() {\n                            super(74, \"padding\", {\n                                top: 0,\n                                bottom: 0\n                            }, {\n                                \"editor.padding.top\": {\n                                    type: \"number\",\n                                    default: 0,\n                                    minimum: 0,\n                                    maximum: 1e3,\n                                    description: n.N(\"padding.top\", \"Controls the amount of space between the top edge of the editor and the first line.\")\n                                },\n                                \"editor.padding.bottom\": {\n                                    type: \"number\",\n                                    default: 0,\n                                    minimum: 0,\n                                    maximum: 1e3,\n                                    description: n.N(\"padding.bottom\", \"Controls the amount of space between the bottom edge of the editor and the last line.\")\n                                }\n                            })\n                        }\n                        validate(e) {\n                            if (!e || \"object\" != typeof e) return this.defaultValue;\n                            const t = e;\n                            return {\n                                top: m.clampedInt(t.top, 0, 0, 1e3),\n                                bottom: m.clampedInt(t.bottom, 0, 0, 1e3)\n                            }\n                        }\n                    }),\n                    parameterHints: M(new class extends d {\n                        constructor() {\n                            const e = {\n                                enabled: !0,\n                                cycle: !1\n                            };\n                            super(75, \"parameterHints\", e, {\n                                \"editor.parameterHints.enabled\": {\n                                    type: \"boolean\",\n                                    default: e.enabled,\n                                    description: n.N(\"parameterHints.enabled\", \"Enables a pop-up that shows parameter documentation and type information as you type.\")\n                                },\n                                \"editor.parameterHints.cycle\": {\n                                    type: \"boolean\",\n                                    default: e.cycle,\n                                    description: n.N(\"parameterHints.cycle\", \"Controls whether the parameter hints menu cycles or closes when reaching the end of the list.\")\n                                }\n                            })\n                        }\n                        validate(e) {\n                            if (!e || \"object\" != typeof e) return this.defaultValue;\n                            const t = e;\n                            return {\n                                enabled: g(t.enabled, this.defaultValue.enabled),\n                                cycle: g(t.cycle, this.defaultValue.cycle)\n                            }\n                        }\n                    }),\n                    peekWidgetDefaultFocus: M(new w(76, \"peekWidgetDefaultFocus\", \"tree\", [\"tree\", \"editor\"], {\n                        enumDescriptions: [n.N(\"peekWidgetDefaultFocus.tree\", \"Focus the tree when opening peek\"), n.N(\"peekWidgetDefaultFocus.editor\", \"Focus the editor when opening peek\")],\n                        description: n.N(\"peekWidgetDefaultFocus\", \"Controls whether to focus the inline editor or the tree in the peek widget.\")\n                    })),\n                    definitionLinkOpensInPeek: M(new p(77, \"definitionLinkOpensInPeek\", !1, {\n                        description: n.N(\"definitionLinkOpensInPeek\", \"Controls whether the 前往 Definition mouse gesture always opens the peek widget.\")\n                    })),\n                    quickSuggestions: M(new class extends d {\n                        constructor() {\n                            const e = {\n                                other: !0,\n                                comments: !1,\n                                strings: !1\n                            };\n                            super(78, \"quickSuggestions\", e, {\n                                anyOf: [{\n                                    type: \"boolean\"\n                                }, {\n                                    type: \"object\",\n                                    properties: {\n                                        strings: {\n                                            type: \"boolean\",\n                                            default: e.strings,\n                                            description: n.N(\"quickSuggestions.strings\", \"Enable quick suggestions inside strings.\")\n                                        },\n                                        comments: {\n                                            type: \"boolean\",\n                                            default: e.comments,\n                                            description: n.N(\"quickSuggestions.comments\", \"Enable quick suggestions inside comments.\")\n                                        },\n                                        other: {\n                                            type: \"boolean\",\n                                            default: e.other,\n                                            description: n.N(\"quickSuggestions.other\", \"Enable quick suggestions outside of strings and comments.\")\n                                        }\n                                    }\n                                }],\n                                default: e,\n                                description: n.N(\"quickSuggestions\", \"Controls whether suggestions should automatically show up while typing.\")\n                            }), this.defaultValue = e\n                        }\n                        validate(e) {\n                            if (\"boolean\" == typeof e) return e;\n                            if (e && \"object\" == typeof e) {\n                                const t = e,\n                                    i = {\n                                        other: g(t.other, this.defaultValue.other),\n                                        comments: g(t.comments, this.defaultValue.comments),\n                                        strings: g(t.strings, this.defaultValue.strings)\n                                    };\n                                return !!(i.other && i.comments && i.strings) || !!(i.other || i.comments || i.strings) && i\n                            }\n                            return this.defaultValue\n                        }\n                    }),\n                    quickSuggestionsDelay: M(new m(79, \"quickSuggestionsDelay\", 10, 0, 1073741824, {\n                        description: n.N(\"quickSuggestionsDelay\", \"Controls the delay in milliseconds after which quick suggestions will show up.\")\n                    })),\n                    readOnly: M(new p(80, \"readOnly\", !1)),\n                    renameOnType: M(new p(81, \"renameOnType\", !1, {\n                        description: n.N(\"renameOnType\", \"Controls whether the editor auto renames on type.\"),\n                        markdownDeprecationMessage: n.N(\"renameOnTypeDeprecate\", \"Deprecated, use `editor.linkedEditing` instead.\")\n                    })),\n                    renderControlCharacters: M(new p(82, \"renderControlCharacters\", !0, {\n                        description: n.N(\"renderControlCharacters\", \"Controls whether the editor should render control characters.\"),\n                        restricted: !0\n                    })),\n                    renderFinalNewline: M(new p(83, \"renderFinalNewline\", !0, {\n                        description: n.N(\"renderFinalNewline\", \"Render last line number when the file ends with a newline.\")\n                    })),\n                    renderLineHighlight: M(new w(84, \"renderLineHighlight\", \"line\", [\"none\", \"gutter\", \"line\", \"all\"], {\n                        enumDescriptions: [\"\", \"\", \"\", n.N(\"renderLineHighlight.all\", \"Highlights both the gutter and the current line.\")],\n                        description: n.N(\"renderLineHighlight\", \"Controls how the editor should render the current line highlight.\")\n                    })),\n                    renderLineHighlightOnlyWhenFocus: M(new p(85, \"renderLineHighlightOnlyWhenFocus\", !1, {\n                        description: n.N(\"renderLineHighlightOnlyWhenFocus\", \"Controls if the editor should render the current line highlight only when the editor is focused.\")\n                    })),\n                    renderValidationDecorations: M(new w(86, \"renderValidationDecorations\", \"editable\", [\"editable\", \"on\", \"off\"])),\n                    renderWhitespace: M(new w(87, \"renderWhitespace\", \"selection\", [\"none\", \"boundary\", \"selection\", \"trailing\", \"all\"], {\n                        enumDescriptions: [\"\", n.N(\"renderWhitespace.boundary\", \"Render whitespace characters except for single spaces between words.\"), n.N(\"renderWhitespace.selection\", \"Render whitespace characters only on selected text.\"), n.N(\"renderWhitespace.trailing\", \"Render only trailing whitespace characters.\"), \"\"],\n                        description: n.N(\"renderWhitespace\", \"Controls how the editor should render whitespace characters.\")\n                    })),\n                    revealHorizontalRightPadding: M(new m(88, \"revealHorizontalRightPadding\", 30, 0, 1e3)),\n                    roundedSelection: M(new p(89, \"roundedSelection\", !0, {\n                        description: n.N(\"roundedSelection\", \"Controls whether selections should have rounded corners.\")\n                    })),\n                    rulers: M(new class extends d {\n                        constructor() {\n                            const e = [],\n                                t = {\n                                    type: \"number\",\n                                    description: n.N(\"rulers.size\", \"Number of monospace characters at which this editor ruler will render.\")\n                                };\n                            super(90, \"rulers\", e, {\n                                type: \"array\",\n                                items: {\n                                    anyOf: [t, {\n                                        type: [\"object\"],\n                                        properties: {\n                                            column: t,\n                                            color: {\n                                                type: \"string\",\n                                                description: n.N(\"rulers.color\", \"Color of this editor ruler.\"),\n                                                format: \"color-hex\"\n                                            }\n                                        }\n                                    }]\n                                },\n                                default: e,\n                                description: n.N(\"rulers\", \"Render vertical rulers after a certain number of monospace characters. Use multiple values for multiple rulers. No rulers are drawn if array is empty.\")\n                            })\n                        }\n                        validate(e) {\n                            if (Array.isArray(e)) {\n                                let t = [];\n                                for (let i of e)\n                                    if (\"number\" == typeof i) t.push({\n                                        column: m.clampedInt(i, 0, 0, 1e4),\n                                        color: null\n                                    });\n                                    else if (i && \"object\" == typeof i) {\n                                    const e = i;\n                                    t.push({\n                                        column: m.clampedInt(e.column, 0, 0, 1e4),\n                                        color: e.color\n                                    })\n                                }\n                                return t.sort(((e, t) => e.column - t.column)), t\n                            }\n                            return this.defaultValue\n                        }\n                    }),\n                    scrollbar: M(new class extends d {\n                        constructor() {\n                            const e = {\n                                vertical: 1,\n                                horizontal: 1,\n                                arrowSize: 11,\n                                useShadows: !0,\n                                verticalHasArrows: !1,\n                                horizontalHasArrows: !1,\n                                horizontalScrollbarSize: 12,\n                                horizontalSliderSize: 12,\n                                verticalScrollbarSize: 14,\n                                verticalSliderSize: 14,\n                                handleMouseWheel: !0,\n                                alwaysConsumeMouseWheel: !0,\n                                scrollByPage: !1\n                            };\n                            super(91, \"scrollbar\", e, {\n                                \"editor.scrollbar.vertical\": {\n                                    type: \"string\",\n                                    enum: [\"auto\", \"visible\", \"hidden\"],\n                                    enumDescriptions: [n.N(\"scrollbar.vertical.auto\", \"The vertical scrollbar will be visible only when necessary.\"), n.N(\"scrollbar.vertical.visible\", \"The vertical scrollbar will always be visible.\"), n.N(\"scrollbar.vertical.fit\", \"The vertical scrollbar will always be hidden.\")],\n                                    default: \"auto\",\n                                    description: n.N(\"scrollbar.vertical\", \"Controls the visibility of the vertical scrollbar.\")\n                                },\n                                \"editor.scrollbar.horizontal\": {\n                                    type: \"string\",\n                                    enum: [\"auto\", \"visible\", \"hidden\"],\n                                    enumDescriptions: [n.N(\"scrollbar.horizontal.auto\", \"The horizontal scrollbar will be visible only when necessary.\"), n.N(\"scrollbar.horizontal.visible\", \"The horizontal scrollbar will always be visible.\"), n.N(\"scrollbar.horizontal.fit\", \"The horizontal scrollbar will always be hidden.\")],\n                                    default: \"auto\",\n                                    description: n.N(\"scrollbar.horizontal\", \"Controls the visibility of the horizontal scrollbar.\")\n                                },\n                                \"editor.scrollbar.verticalScrollbarSize\": {\n                                    type: \"number\",\n                                    default: e.verticalScrollbarSize,\n                                    description: n.N(\"scrollbar.verticalScrollbarSize\", \"The width of the vertical scrollbar.\")\n                                },\n                                \"editor.scrollbar.horizontalScrollbarSize\": {\n                                    type: \"number\",\n                                    default: e.horizontalScrollbarSize,\n                                    description: n.N(\"scrollbar.horizontalScrollbarSize\", \"The height of the horizontal scrollbar.\")\n                                },\n                                \"editor.scrollbar.scrollByPage\": {\n                                    type: \"boolean\",\n                                    default: e.scrollByPage,\n                                    description: n.N(\"scrollbar.scrollByPage\", \"Controls whether clicks scroll by page or jump to click position.\")\n                                }\n                            })\n                        }\n                        validate(e) {\n                            if (!e || \"object\" != typeof e) return this.defaultValue;\n                            const t = e,\n                                i = m.clampedInt(t.horizontalScrollbarSize, this.defaultValue.horizontalScrollbarSize, 0, 1e3),\n                                n = m.clampedInt(t.verticalScrollbarSize, this.defaultValue.verticalScrollbarSize, 0, 1e3);\n                            return {\n                                arrowSize: m.clampedInt(t.arrowSize, this.defaultValue.arrowSize, 0, 1e3),\n                                vertical: N(t.vertical, this.defaultValue.vertical),\n                                horizontal: N(t.horizontal, this.defaultValue.horizontal),\n                                useShadows: g(t.useShadows, this.defaultValue.useShadows),\n                                verticalHasArrows: g(t.verticalHasArrows, this.defaultValue.verticalHasArrows),\n                                horizontalHasArrows: g(t.horizontalHasArrows, this.defaultValue.horizontalHasArrows),\n                                handleMouseWheel: g(t.handleMouseWheel, this.defaultValue.handleMouseWheel),\n                                alwaysConsumeMouseWheel: g(t.alwaysConsumeMouseWheel, this.defaultValue.alwaysConsumeMouseWheel),\n                                horizontalScrollbarSize: i,\n                                horizontalSliderSize: m.clampedInt(t.horizontalSliderSize, i, 0, 1e3),\n                                verticalScrollbarSize: n,\n                                verticalSliderSize: m.clampedInt(t.verticalSliderSize, n, 0, 1e3),\n                                scrollByPage: g(t.scrollByPage, this.defaultValue.scrollByPage)\n                            }\n                        }\n                    }),\n                    scrollBeyondLastColumn: M(new m(92, \"scrollBeyondLastColumn\", 5, 0, 1073741824, {\n                        description: n.N(\"scrollBeyondLastColumn\", \"Controls the number of extra characters beyond which the editor will scroll horizontally.\")\n                    })),\n                    scrollBeyondLastLine: M(new p(93, \"scrollBeyondLastLine\", !0, {\n                        description: n.N(\"scrollBeyondLastLine\", \"Controls whether the editor will scroll beyond the last line.\")\n                    })),\n                    scrollPredominantAxis: M(new p(94, \"scrollPredominantAxis\", !0, {\n                        description: n.N(\"scrollPredominantAxis\", \"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.\")\n                    })),\n                    selectionClipboard: M(new p(95, \"selectionClipboard\", !0, {\n                        description: n.N(\"selectionClipboard\", \"Controls whether the Linux primary clipboard should be supported.\"),\n                        included: o.IJ\n                    })),\n                    selectionHighlight: M(new p(96, \"selectionHighlight\", !0, {\n                        description: n.N(\"selectionHighlight\", \"Controls whether the editor should highlight matches similar to the selection.\")\n                    })),\n                    selectOnLineNumbers: M(new p(97, \"selectOnLineNumbers\", !0)),\n                    showFoldingControls: M(new w(98, \"showFoldingControls\", \"mouseover\", [\"always\", \"mouseover\"], {\n                        enumDescriptions: [n.N(\"showFoldingControls.always\", \"Always show the folding controls.\"), n.N(\"showFoldingControls.mouseover\", \"Only show the folding controls when the mouse is over the gutter.\")],\n                        description: n.N(\"showFoldingControls\", \"Controls when the folding controls on the gutter are shown.\")\n                    })),\n                    showUnused: M(new p(99, \"showUnused\", !0, {\n                        description: n.N(\"showUnused\", \"Controls fading out of unused code.\")\n                    })),\n                    showDeprecated: M(new p(124, \"showDeprecated\", !0, {\n                        description: n.N(\"showDeprecated\", \"Controls strikethrough deprecated variables.\")\n                    })),\n                    inlayHints: M(new class extends d {\n                        constructor() {\n                            const e = {\n                                enabled: !0,\n                                fontSize: 0,\n                                fontFamily: \"\"\n                            };\n                            super(125, \"inlayHints\", e, {\n                                \"editor.inlayHints.enabled\": {\n                                    type: \"boolean\",\n                                    default: e.enabled,\n                                    description: n.N(\"inlayHints.enable\", \"Enables the inlay hints in the editor.\")\n                                },\n                                \"editor.inlayHints.fontSize\": {\n                                    type: \"number\",\n                                    default: e.fontSize,\n                                    markdownDescription: n.N(\"inlayHints.fontSize\", \"Controls font size of inlay hints in the editor. A default of 90% of `#editor.fontSize#` is used when the configured value is less than `5` or greater than the editor font size.\")\n                                },\n                                \"editor.inlayHints.fontFamily\": {\n                                    type: \"string\",\n                                    default: e.fontFamily,\n                                    markdownDescription: n.N(\"inlayHints.fontFamily\", \"Controls font family of inlay hints in the editor. When set to empty, the `#editor.fontFamily#` is used.\")\n                                }\n                            })\n                        }\n                        validate(e) {\n                            if (!e || \"object\" != typeof e) return this.defaultValue;\n                            const t = e;\n                            return {\n                                enabled: g(t.enabled, this.defaultValue.enabled),\n                                fontSize: m.clampedInt(t.fontSize, this.defaultValue.fontSize, 0, 100),\n                                fontFamily: _.string(t.fontFamily, this.defaultValue.fontFamily)\n                            }\n                        }\n                    }),\n                    snippetSuggestions: M(new w(100, \"snippetSuggestions\", \"inline\", [\"top\", \"bottom\", \"inline\", \"none\"], {\n                        enumDescriptions: [n.N(\"snippetSuggestions.top\", \"Show snippet suggestions on top of other suggestions.\"), n.N(\"snippetSuggestions.bottom\", \"Show snippet suggestions below other suggestions.\"), n.N(\"snippetSuggestions.inline\", \"Show snippets suggestions with other suggestions.\"), n.N(\"snippetSuggestions.none\", \"Do not show snippet suggestions.\")],\n                        description: n.N(\"snippetSuggestions\", \"Controls whether snippets are shown with other suggestions and how they are sorted.\")\n                    })),\n                    smartSelect: M(new class extends d {\n                        constructor() {\n                            super(101, \"smartSelect\", {\n                                selectLeadingAndTrailingWhitespace: !0\n                            }, {\n                                \"editor.smartSelect.selectLeadingAndTrailingWhitespace\": {\n                                    description: n.N(\"selectLeadingAndTrailingWhitespace\", \"Whether leading and trailing whitespace should always be selected.\"),\n                                    default: !0,\n                                    type: \"boolean\"\n                                }\n                            })\n                        }\n                        validate(e) {\n                            return e && \"object\" == typeof e ? {\n                                selectLeadingAndTrailingWhitespace: g(e.selectLeadingAndTrailingWhitespace, this.defaultValue.selectLeadingAndTrailingWhitespace)\n                            } : this.defaultValue\n                        }\n                    }),\n                    smoothScrolling: M(new p(102, \"smoothScrolling\", !1, {\n                        description: n.N(\"smoothScrolling\", \"Controls whether the editor will scroll using an animation.\")\n                    })),\n                    stopRenderingLineAfter: M(new m(104, \"stopRenderingLineAfter\", 1e4, -1, 1073741824)),\n                    suggest: M(new class extends d {\n                        constructor() {\n                            const e = {\n                                insertMode: \"insert\",\n                                filterGraceful: !0,\n                                snippetsPreventQuickSuggestions: !0,\n                                localityBonus: !1,\n                                shareSuggestSelections: !1,\n                                showIcons: !0,\n                                showStatusBar: !1,\n                                preview: !1,\n                                previewMode: \"subwordSmart\",\n                                showInlineDetails: !0,\n                                showMethods: !0,\n                                showFunctions: !0,\n                                showConstructors: !0,\n                                showDeprecated: !0,\n                                showFields: !0,\n                                showVariables: !0,\n                                showClasses: !0,\n                                showStructs: !0,\n                                showInterfaces: !0,\n                                showModules: !0,\n                                showProperties: !0,\n                                showEvents: !0,\n                                showOperators: !0,\n                                showUnits: !0,\n                                showValues: !0,\n                                showConstants: !0,\n                                showEnums: !0,\n                                showEnumMembers: !0,\n                                showKeywords: !0,\n                                showWords: !0,\n                                showColors: !0,\n                                showFiles: !0,\n                                showReferences: !0,\n                                showFolders: !0,\n                                showTypeParameters: !0,\n                                showSnippets: !0,\n                                showUsers: !0,\n                                showIssues: !0\n                            };\n                            super(105, \"suggest\", e, {\n                                \"editor.suggest.insertMode\": {\n                                    type: \"string\",\n                                    enum: [\"insert\", \"replace\"],\n                                    enumDescriptions: [n.N(\"suggest.insertMode.insert\", \"Insert suggestion without overwriting text right of the cursor.\"), n.N(\"suggest.insertMode.replace\", \"Insert suggestion and overwrite text right of the cursor.\")],\n                                    default: e.insertMode,\n                                    description: n.N(\"suggest.insertMode\", \"Controls whether words are overwritten when accepting completions. Note that this depends on extensions opting into this feature.\")\n                                },\n                                \"editor.suggest.filterGraceful\": {\n                                    type: \"boolean\",\n                                    default: e.filterGraceful,\n                                    description: n.N(\"suggest.filterGraceful\", \"Controls whether filtering and sorting suggestions accounts for small typos.\")\n                                },\n                                \"editor.suggest.localityBonus\": {\n                                    type: \"boolean\",\n                                    default: e.localityBonus,\n                                    description: n.N(\"suggest.localityBonus\", \"Controls whether sorting favors words that appear close to the cursor.\")\n                                },\n                                \"editor.suggest.shareSuggestSelections\": {\n                                    type: \"boolean\",\n                                    default: e.shareSuggestSelections,\n                                    markdownDescription: n.N(\"suggest.shareSuggestSelections\", \"Controls whether remembered suggestion selections are shared between multiple workspaces and windows (needs `#editor.suggestSelection#`).\")\n                                },\n                                \"editor.suggest.snippetsPreventQuickSuggestions\": {\n                                    type: \"boolean\",\n                                    default: e.snippetsPreventQuickSuggestions,\n                                    description: n.N(\"suggest.snippetsPreventQuickSuggestions\", \"Controls whether an active snippet prevents quick suggestions.\")\n                                },\n                                \"editor.suggest.showIcons\": {\n                                    type: \"boolean\",\n                                    default: e.showIcons,\n                                    description: n.N(\"suggest.showIcons\", \"Controls whether to show or hide icons in suggestions.\")\n                                },\n                                \"editor.suggest.showStatusBar\": {\n                                    type: \"boolean\",\n                                    default: e.showStatusBar,\n                                    description: n.N(\"suggest.showStatusBar\", \"Controls the visibility of the status bar at the bottom of the suggest widget.\")\n                                },\n                                \"editor.suggest.preview\": {\n                                    type: \"boolean\",\n                                    default: e.preview,\n                                    description: n.N(\"suggest.preview\", \"Controls whether to preview the suggestion outcome in the editor.\")\n                                },\n                                \"editor.suggest.showInlineDetails\": {\n                                    type: \"boolean\",\n                                    default: e.showInlineDetails,\n                                    description: n.N(\"suggest.showInlineDetails\", \"Controls whether suggest details show inline with the label or only in the details widget\")\n                                },\n                                \"editor.suggest.maxVisibleSuggestions\": {\n                                    type: \"number\",\n                                    deprecationMessage: n.N(\"suggest.maxVisibleSuggestions.dep\", \"This setting is deprecated. The suggest widget can now be resized.\")\n                                },\n                                \"editor.suggest.filteredTypes\": {\n                                    type: \"object\",\n                                    deprecationMessage: n.N(\"deprecated\", \"This setting is deprecated, please use separate settings like 'editor.suggest.showKeywords' or 'editor.suggest.showSnippets' instead.\")\n                                },\n                                \"editor.suggest.showMethods\": {\n                                    type: \"boolean\",\n                                    default: !0,\n                                    markdownDescription: n.N(\"editor.suggest.showMethods\", \"When enabled IntelliSense shows `method`-suggestions.\")\n                                },\n                                \"editor.suggest.showFunctions\": {\n                                    type: \"boolean\",\n                                    default: !0,\n                                    markdownDescription: n.N(\"editor.suggest.showFunctions\", \"When enabled IntelliSense shows `function`-suggestions.\")\n                                },\n                                \"editor.suggest.showConstructors\": {\n                                    type: \"boolean\",\n                                    default: !0,\n                                    markdownDescription: n.N(\"editor.suggest.showConstructors\", \"When enabled IntelliSense shows `constructor`-suggestions.\")\n                                },\n                                \"editor.suggest.showDeprecated\": {\n                                    type: \"boolean\",\n                                    default: !0,\n                                    markdownDescription: n.N(\"editor.suggest.showDeprecated\", \"When enabled IntelliSense shows `deprecated`-suggestions.\")\n                                },\n                                \"editor.suggest.showFields\": {\n                                    type: \"boolean\",\n                                    default: !0,\n                                    markdownDescription: n.N(\"editor.suggest.showFields\", \"When enabled IntelliSense shows `field`-suggestions.\")\n                                },\n                                \"editor.suggest.showVariables\": {\n                                    type: \"boolean\",\n                                    default: !0,\n                                    markdownDescription: n.N(\"editor.suggest.showVariables\", \"When enabled IntelliSense shows `variable`-suggestions.\")\n                                },\n                                \"editor.suggest.showClasses\": {\n                                    type: \"boolean\",\n                                    default: !0,\n                                    markdownDescription: n.N(\"editor.suggest.showClasss\", \"When enabled IntelliSense shows `class`-suggestions.\")\n                                },\n                                \"editor.suggest.showStructs\": {\n                                    type: \"boolean\",\n                                    default: !0,\n                                    markdownDescription: n.N(\"editor.suggest.showStructs\", \"When enabled IntelliSense shows `struct`-suggestions.\")\n                                },\n                                \"editor.suggest.showInterfaces\": {\n                                    type: \"boolean\",\n                                    default: !0,\n                                    markdownDescription: n.N(\"editor.suggest.showInterfaces\", \"When enabled IntelliSense shows `interface`-suggestions.\")\n                                },\n                                \"editor.suggest.showModules\": {\n                                    type: \"boolean\",\n                                    default: !0,\n                                    markdownDescription: n.N(\"editor.suggest.showModules\", \"When enabled IntelliSense shows `module`-suggestions.\")\n                                },\n                                \"editor.suggest.showProperties\": {\n                                    type: \"boolean\",\n                                    default: !0,\n                                    markdownDescription: n.N(\"editor.suggest.showPropertys\", \"When enabled IntelliSense shows `property`-suggestions.\")\n                                },\n                                \"editor.suggest.showEvents\": {\n                                    type: \"boolean\",\n                                    default: !0,\n                                    markdownDescription: n.N(\"editor.suggest.showEvents\", \"When enabled IntelliSense shows `event`-suggestions.\")\n                                },\n                                \"editor.suggest.showOperators\": {\n                                    type: \"boolean\",\n                                    default: !0,\n                                    markdownDescription: n.N(\"editor.suggest.showOperators\", \"When enabled IntelliSense shows `operator`-suggestions.\")\n                                },\n                                \"editor.suggest.showUnits\": {\n                                    type: \"boolean\",\n                                    default: !0,\n                                    markdownDescription: n.N(\"editor.suggest.showUnits\", \"When enabled IntelliSense shows `unit`-suggestions.\")\n                                },\n                                \"editor.suggest.showValues\": {\n                                    type: \"boolean\",\n                                    default: !0,\n                                    markdownDescription: n.N(\"editor.suggest.showValues\", \"When enabled IntelliSense shows `value`-suggestions.\")\n                                },\n                                \"editor.suggest.showConstants\": {\n                                    type: \"boolean\",\n                                    default: !0,\n                                    markdownDescription: n.N(\"editor.suggest.showConstants\", \"When enabled IntelliSense shows `constant`-suggestions.\")\n                                },\n                                \"editor.suggest.showEnums\": {\n                                    type: \"boolean\",\n                                    default: !0,\n                                    markdownDescription: n.N(\"editor.suggest.showEnums\", \"When enabled IntelliSense shows `enum`-suggestions.\")\n                                },\n                                \"editor.suggest.showEnumMembers\": {\n                                    type: \"boolean\",\n                                    default: !0,\n                                    markdownDescription: n.N(\"editor.suggest.showEnumMembers\", \"When enabled IntelliSense shows `enumMember`-suggestions.\")\n                                },\n                                \"editor.suggest.showKeywords\": {\n                                    type: \"boolean\",\n                                    default: !0,\n                                    markdownDescription: n.N(\"editor.suggest.showKeywords\", \"When enabled IntelliSense shows `keyword`-suggestions.\")\n                                },\n                                \"editor.suggest.showWords\": {\n                                    type: \"boolean\",\n                                    default: !0,\n                                    markdownDescription: n.N(\"editor.suggest.showTexts\", \"When enabled IntelliSense shows `text`-suggestions.\")\n                                },\n                                \"editor.suggest.showColors\": {\n                                    type: \"boolean\",\n                                    default: !0,\n                                    markdownDescription: n.N(\"editor.suggest.showColors\", \"When enabled IntelliSense shows `color`-suggestions.\")\n                                },\n                                \"editor.suggest.showFiles\": {\n                                    type: \"boolean\",\n                                    default: !0,\n                                    markdownDescription: n.N(\"editor.suggest.showFiles\", \"When enabled IntelliSense shows `file`-suggestions.\")\n                                },\n                                \"editor.suggest.showReferences\": {\n                                    type: \"boolean\",\n                                    default: !0,\n                                    markdownDescription: n.N(\"editor.suggest.showReferences\", \"When enabled IntelliSense shows `reference`-suggestions.\")\n                                },\n                                \"editor.suggest.showCustomcolors\": {\n                                    type: \"boolean\",\n                                    default: !0,\n                                    markdownDescription: n.N(\"editor.suggest.showCustomcolors\", \"When enabled IntelliSense shows `customcolor`-suggestions.\")\n                                },\n                                \"editor.suggest.showFolders\": {\n                                    type: \"boolean\",\n                                    default: !0,\n                                    markdownDescription: n.N(\"editor.suggest.showFolders\", \"When enabled IntelliSense shows `folder`-suggestions.\")\n                                },\n                                \"editor.suggest.showTypeParameters\": {\n                                    type: \"boolean\",\n                                    default: !0,\n                                    markdownDescription: n.N(\"editor.suggest.showTypeParameters\", \"When enabled IntelliSense shows `typeParameter`-suggestions.\")\n                                },\n                                \"editor.suggest.showSnippets\": {\n                                    type: \"boolean\",\n                                    default: !0,\n                                    markdownDescription: n.N(\"editor.suggest.showSnippets\", \"When enabled IntelliSense shows `snippet`-suggestions.\")\n                                },\n                                \"editor.suggest.showUsers\": {\n                                    type: \"boolean\",\n                                    default: !0,\n                                    markdownDescription: n.N(\"editor.suggest.showUsers\", \"When enabled IntelliSense shows `user`-suggestions.\")\n                                },\n                                \"editor.suggest.showIssues\": {\n                                    type: \"boolean\",\n                                    default: !0,\n                                    markdownDescription: n.N(\"editor.suggest.showIssues\", \"When enabled IntelliSense shows `issues`-suggestions.\")\n                                }\n                            })\n                        }\n                        validate(e) {\n                            if (!e || \"object\" != typeof e) return this.defaultValue;\n                            const t = e;\n                            return {\n                                insertMode: b(t.insertMode, this.defaultValue.insertMode, [\"insert\", \"replace\"]),\n                                filterGraceful: g(t.filterGraceful, this.defaultValue.filterGraceful),\n                                snippetsPreventQuickSuggestions: g(t.snippetsPreventQuickSuggestions, this.defaultValue.filterGraceful),\n                                localityBonus: g(t.localityBonus, this.defaultValue.localityBonus),\n                                shareSuggestSelections: g(t.shareSuggestSelections, this.defaultValue.shareSuggestSelections),\n                                showIcons: g(t.showIcons, this.defaultValue.showIcons),\n                                showStatusBar: g(t.showStatusBar, this.defaultValue.showStatusBar),\n                                preview: g(t.preview, this.defaultValue.preview),\n                                previewMode: b(t.previewMode, this.defaultValue.previewMode, [\"prefix\", \"subword\", \"subwordSmart\"]),\n                                showInlineDetails: g(t.showInlineDetails, this.defaultValue.showInlineDetails),\n                                showMethods: g(t.showMethods, this.defaultValue.showMethods),\n                                showFunctions: g(t.showFunctions, this.defaultValue.showFunctions),\n                                showConstructors: g(t.showConstructors, this.defaultValue.showConstructors),\n                                showDeprecated: g(t.showDeprecated, this.defaultValue.showDeprecated),\n                                showFields: g(t.showFields, this.defaultValue.showFields),\n                                showVariables: g(t.showVariables, this.defaultValue.showVariables),\n                                showClasses: g(t.showClasses, this.defaultValue.showClasses),\n                                showStructs: g(t.showStructs, this.defaultValue.showStructs),\n                                showInterfaces: g(t.showInterfaces, this.defaultValue.showInterfaces),\n                                showModules: g(t.showModules, this.defaultValue.showModules),\n                                showProperties: g(t.showProperties, this.defaultValue.showProperties),\n                                showEvents: g(t.showEvents, this.defaultValue.showEvents),\n                                showOperators: g(t.showOperators, this.defaultValue.showOperators),\n                                showUnits: g(t.showUnits, this.defaultValue.showUnits),\n                                showValues: g(t.showValues, this.defaultValue.showValues),\n                                showConstants: g(t.showConstants, this.defaultValue.showConstants),\n                                showEnums: g(t.showEnums, this.defaultValue.showEnums),\n                                showEnumMembers: g(t.showEnumMembers, this.defaultValue.showEnumMembers),\n                                showKeywords: g(t.showKeywords, this.defaultValue.showKeywords),\n                                showWords: g(t.showWords, this.defaultValue.showWords),\n                                showColors: g(t.showColors, this.defaultValue.showColors),\n                                showFiles: g(t.showFiles, this.defaultValue.showFiles),\n                                showReferences: g(t.showReferences, this.defaultValue.showReferences),\n                                showFolders: g(t.showFolders, this.defaultValue.showFolders),\n                                showTypeParameters: g(t.showTypeParameters, this.defaultValue.showTypeParameters),\n                                showSnippets: g(t.showSnippets, this.defaultValue.showSnippets),\n                                showUsers: g(t.showUsers, this.defaultValue.showUsers),\n                                showIssues: g(t.showIssues, this.defaultValue.showIssues)\n                            }\n                        }\n                    }),\n                    inlineSuggest: M(new class extends d {\n                        constructor() {\n                            const e = {\n                                enabled: !0,\n                                mode: \"subwordSmart\"\n                            };\n                            super(54, \"inlineSuggest\", e, {\n                                \"editor.inlineSuggest.enabled\": {\n                                    type: \"boolean\",\n                                    default: e.enabled,\n                                    description: n.N(\"inlineSuggest.enabled\", \"Controls whether to automatically show inline suggestions in the editor.\")\n                                }\n                            })\n                        }\n                        validate(e) {\n                            if (!e || \"object\" != typeof e) return this.defaultValue;\n                            const t = e;\n                            return {\n                                enabled: g(t.enabled, this.defaultValue.enabled),\n                                mode: b(t.mode, this.defaultValue.mode, [\"prefix\", \"subword\", \"subwordSmart\"])\n                            }\n                        }\n                    }),\n                    suggestFontSize: M(new m(106, \"suggestFontSize\", 0, 0, 1e3, {\n                        markdownDescription: n.N(\"suggestFontSize\", \"Font size for the suggest widget. When set to `0`, the value of `#editor.fontSize#` is used.\")\n                    })),\n                    suggestLineHeight: M(new m(107, \"suggestLineHeight\", 0, 0, 1e3, {\n                        markdownDescription: n.N(\"suggestLineHeight\", \"Line height for the suggest widget. When set to `0`, the value of `#editor.lineHeight#` is used. The minimum value is 8.\")\n                    })),\n                    suggestOnTriggerCharacters: M(new p(108, \"suggestOnTriggerCharacters\", !0, {\n                        description: n.N(\"suggestOnTriggerCharacters\", \"Controls whether suggestions should automatically show up when typing trigger characters.\")\n                    })),\n                    suggestSelection: M(new w(109, \"suggestSelection\", \"recentlyUsed\", [\"first\", \"recentlyUsed\", \"recentlyUsedByPrefix\"], {\n                        markdownEnumDescriptions: [n.N(\"suggestSelection.first\", \"Always select the first suggestion.\"), n.N(\"suggestSelection.recentlyUsed\", \"Select recent suggestions unless further typing selects one, e.g. `console.| -> console.log` because `log` has been completed recently.\"), n.N(\"suggestSelection.recentlyUsedByPrefix\", \"Select suggestions based on previous prefixes that have completed those suggestions, e.g. `co -> console` and `con -> const`.\")],\n                        description: n.N(\"suggestSelection\", \"Controls how suggestions are pre-selected when showing the suggest list.\")\n                    })),\n                    tabCompletion: M(new w(110, \"tabCompletion\", \"off\", [\"on\", \"off\", \"onlySnippets\"], {\n                        enumDescriptions: [n.N(\"tabCompletion.on\", \"Tab complete will insert the best matching suggestion when pressing tab.\"), n.N(\"tabCompletion.off\", \"Disable tab completions.\"), n.N(\"tabCompletion.onlySnippets\", \"Tab complete snippets when their prefix match. Works best when 'quickSuggestions' aren't enabled.\")],\n                        description: n.N(\"tabCompletion\", \"Enables tab completions.\")\n                    })),\n                    tabIndex: M(new m(111, \"tabIndex\", 0, -1, 1073741824)),\n                    unusualLineTerminators: M(new w(112, \"unusualLineTerminators\", \"prompt\", [\"auto\", \"off\", \"prompt\"], {\n                        enumDescriptions: [n.N(\"unusualLineTerminators.auto\", \"Unusual line terminators are automatically removed.\"), n.N(\"unusualLineTerminators.off\", \"Unusual line terminators are ignored.\"), n.N(\"unusualLineTerminators.prompt\", \"Unusual line terminators prompt to be removed.\")],\n                        description: n.N(\"unusualLineTerminators\", \"Remove unusual line terminators that might cause problems.\")\n                    })),\n                    useShadowDOM: M(new p(113, \"useShadowDOM\", !0)),\n                    useTabStops: M(new p(114, \"useTabStops\", !0, {\n                        description: n.N(\"useTabStops\", \"Inserting and deleting whitespace follows tab stops.\")\n                    })),\n                    wordSeparators: M(new _(115, \"wordSeparators\", s.vu, {\n                        description: n.N(\"wordSeparators\", \"Characters that will be used as word separators when doing word related navigations or operations.\")\n                    })),\n                    wordWrap: M(new w(116, \"wordWrap\", \"off\", [\"off\", \"on\", \"wordWrapColumn\", \"bounded\"], {\n                        markdownEnumDescriptions: [n.N(\"wordWrap.off\", \"Lines will never wrap.\"), n.N(\"wordWrap.on\", \"Lines will wrap at the viewport width.\"), n.N({\n                            key: \"wordWrap.wordWrapColumn\",\n                            comment: [\"- `editor.wordWrapColumn` refers to a different setting and should not be localized.\"]\n                        }, \"Lines will wrap at `#editor.wordWrapColumn#`.\"), n.N({\n                            key: \"wordWrap.bounded\",\n                            comment: [\"- viewport means the edge of the visible window size.\", \"- `editor.wordWrapColumn` refers to a different setting and should not be localized.\"]\n                        }, \"Lines will wrap at the minimum of viewport and `#editor.wordWrapColumn#`.\")],\n                        description: n.N({\n                            key: \"wordWrap\",\n                            comment: [\"- 'off', 'on', 'wordWrapColumn' and 'bounded' refer to values the setting can take and should not be localized.\", \"- `editor.wordWrapColumn` refers to a different setting and should not be localized.\"]\n                        }, \"Controls how lines should wrap.\")\n                    })),\n                    wordWrapBreakAfterCharacters: M(new _(117, \"wordWrapBreakAfterCharacters\", \" \\t})]?|/&.,;¢°′″‰℃、。｡､￠，．：；？！％・･ゝゞヽヾーァィゥェォッャュョヮヵヶぁぃぅぇぉっゃゅょゎゕゖㇰㇱㇲㇳㇴㇵㇶㇷㇸㇹㇺㇻㇼㇽㇾㇿ々〻ｧｨｩｪｫｬｭｮｯｰ”〉》」』】〕）］｝｣\")),\n                    wordWrapBreakBeforeCharacters: M(new _(118, \"wordWrapBreakBeforeCharacters\", \"([{‘“〈《「『【〔（［｛｢£¥＄￡￥+＋\")),\n                    wordWrapColumn: M(new m(119, \"wordWrapColumn\", 80, 1, 1073741824, {\n                        markdownDescription: n.N({\n                            key: \"wordWrapColumn\",\n                            comment: [\"- `editor.wordWrap` refers to a different setting and should not be localized.\", \"- 'wordWrapColumn' and 'bounded' refer to values the different setting can take and should not be localized.\"]\n                        }, \"Controls the wrapping column of the editor when `#editor.wordWrap#` is `wordWrapColumn` or `bounded`.\")\n                    })),\n                    wordWrapOverride1: M(new w(120, \"wordWrapOverride1\", \"inherit\", [\"off\", \"on\", \"inherit\"])),\n                    wordWrapOverride2: M(new w(121, \"wordWrapOverride2\", \"inherit\", [\"off\", \"on\", \"inherit\"])),\n                    wrappingIndent: M(new y(122, \"wrappingIndent\", 1, \"same\", [\"none\", \"same\", \"indent\", \"deepIndent\"], (function(e) {\n                        switch (e) {\n                            case \"none\":\n                                return 0;\n                            case \"same\":\n                                return 1;\n                            case \"indent\":\n                                return 2;\n                            case \"deepIndent\":\n                                return 3\n                        }\n                    }), {\n                        enumDescriptions: [n.N(\"wrappingIndent.none\", \"No indentation. Wrapped lines begin at column 1.\"), n.N(\"wrappingIndent.same\", \"Wrapped lines get the same indentation as the parent.\"), n.N(\"wrappingIndent.indent\", \"Wrapped lines get +1 indentation toward the parent.\"), n.N(\"wrappingIndent.deepIndent\", \"Wrapped lines get +2 indentation toward the parent.\")],\n                        description: n.N(\"wrappingIndent\", \"Controls the indentation of wrapped lines.\")\n                    })),\n                    wrappingStrategy: M(new w(123, \"wrappingStrategy\", \"simple\", [\"simple\", \"advanced\"], {\n                        enumDescriptions: [n.N(\"wrappingStrategy.simple\", \"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.\"), n.N(\"wrappingStrategy.advanced\", \"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.\")],\n                        description: n.N(\"wrappingStrategy\", \"Controls the algorithm that computes wrapping points.\")\n                    })),\n                    editorClassName: M(new class extends h {\n                        constructor() {\n                            super(126, [65, 33])\n                        }\n                        compute(e, t, i) {\n                            const n = [\"monaco-editor\"];\n                            return t.get(33) && n.push(t.get(33)), e.extraEditorClassName && n.push(e.extraEditorClassName), \"default\" === t.get(65) ? n.push(\"mouse-default\") : \"copy\" === t.get(65) && n.push(\"mouse-copy\"), t.get(99) && n.push(\"showUnused\"), t.get(124) && n.push(\"showDeprecated\"), n.join(\" \")\n                        }\n                    }),\n                    pixelRatio: M(new class extends h {\n                        constructor() {\n                            super(127)\n                        }\n                        compute(e, t, i) {\n                            return e.pixelRatio\n                        }\n                    }),\n                    tabFocusMode: M(new class extends h {\n                        constructor() {\n                            super(128, [80])\n                        }\n                        compute(e, t, i) {\n                            return !!t.get(80) || e.tabFocusMode\n                        }\n                    }),\n                    layoutInfo: M(new k),\n                    wrappingInfo: M(new class extends h {\n                        constructor() {\n                            super(130, [129])\n                        }\n                        compute(e, t, i) {\n                            const n = t.get(129);\n                            return {\n                                isDominatedByLongLines: e.isDominatedByLongLines,\n                                isWordWrapMinified: n.isWordWrapMinified,\n                                isViewportWrapping: n.isViewportWrapping,\n                                wrappingColumn: n.wrappingColumn\n                            }\n                        }\n                    })\n                }\n            },\n            82334: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    C: () => o\n                });\n                var n = i(4669);\n                const o = new class {\n                    constructor() {\n                        this._zoomLevel = 0, this._onDidChangeZoomLevel = new n.Q5, this.onDidChangeZoomLevel = this._onDidChangeZoomLevel.event\n                    }\n                    getZoomLevel() {\n                        return this._zoomLevel\n                    }\n                    setZoomLevel(e) {\n                        e = Math.min(Math.max(-5, e), 20), this._zoomLevel !== e && (this._zoomLevel = e, this._onDidChangeZoomLevel.fire(this._zoomLevel))\n                    }\n                }\n            },\n            27374: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    E4: () => r,\n                    pR: () => a\n                });\n                var n = i(1432),\n                    o = i(82334);\n                const s = n.dz ? 1.5 : 1.35;\n                class r {\n                    constructor(e) {\n                        this._bareFontInfoBrand = void 0, this.zoomLevel = e.zoomLevel, this.pixelRatio = e.pixelRatio, this.fontFamily = String(e.fontFamily), this.fontWeight = String(e.fontWeight), this.fontSize = e.fontSize, this.fontFeatureSettings = e.fontFeatureSettings, this.lineHeight = 0 | e.lineHeight, this.letterSpacing = e.letterSpacing\n                    }\n                    static createFromValidatedSettings(e, t, i, n) {\n                        const o = e.get(42),\n                            s = e.get(46),\n                            a = e.get(45),\n                            l = e.get(44),\n                            c = e.get(58),\n                            d = e.get(55);\n                        return r._create(o, s, a, l, c, d, t, i, n)\n                    }\n                    static _create(e, t, i, n, a, l, c, d, h) {\n                        0 === a ? a = s * i : a < 8 && (a *= i), (a = Math.round(a)) < 8 && (a = 8);\n                        const u = 1 + (h ? 0 : .1 * o.C.getZoomLevel());\n                        return new r({\n                            zoomLevel: c,\n                            pixelRatio: d,\n                            fontFamily: e,\n                            fontWeight: t,\n                            fontSize: i *= u,\n                            fontFeatureSettings: n,\n                            lineHeight: a *= u,\n                            letterSpacing: l\n                        })\n                    }\n                    getId() {\n                        return this.zoomLevel + \"-\" + this.pixelRatio + \"-\" + this.fontFamily + \"-\" + this.fontWeight + \"-\" + this.fontSize + \"-\" + this.fontFeatureSettings + \"-\" + this.lineHeight + \"-\" + this.letterSpacing\n                    }\n                    getMassagedFontFamily(e) {\n                        const t = r._wrapInQuotes(this.fontFamily);\n                        return e && this.fontFamily !== e ? `${t}, ${e}` : t\n                    }\n                    static _wrapInQuotes(e) {\n                        return /[,\"']/.test(e) ? e : /[+ ]/.test(e) ? `\"${e}\"` : e\n                    }\n                }\n                class a extends r {\n                    constructor(e, t) {\n                        super(e), this._editorStylingBrand = void 0, this.version = 1, this.isTrusted = t, this.isMonospace = e.isMonospace, this.typicalHalfwidthCharacterWidth = e.typicalHalfwidthCharacterWidth, this.typicalFullwidthCharacterWidth = e.typicalFullwidthCharacterWidth, this.canUseHalfwidthRightwardsArrow = e.canUseHalfwidthRightwardsArrow, this.spaceWidth = e.spaceWidth, this.middotWidth = e.middotWidth, this.wsmiddotWidth = e.wsmiddotWidth, this.maxDigitWidth = e.maxDigitWidth\n                    }\n                    equals(e) {\n                        return this.fontFamily === e.fontFamily && this.fontWeight === e.fontWeight && this.fontSize === e.fontSize && this.fontFeatureSettings === e.fontFeatureSettings && this.lineHeight === e.lineHeight && this.letterSpacing === e.letterSpacing && this.typicalHalfwidthCharacterWidth === e.typicalHalfwidthCharacterWidth && this.typicalFullwidthCharacterWidth === e.typicalFullwidthCharacterWidth && this.canUseHalfwidthRightwardsArrow === e.canUseHalfwidthRightwardsArrow && this.spaceWidth === e.spaceWidth && this.middotWidth === e.middotWidth && this.wsmiddotWidth === e.wsmiddotWidth && this.maxDigitWidth === e.maxDigitWidth\n                    }\n                }\n            },\n            3675: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    l: () => o\n                });\n                var n = i(33181);\n                class o {\n                    static whitespaceVisibleColumn(e, t, i) {\n                        const o = e.length;\n                        let s = 0,\n                            r = -1,\n                            a = -1;\n                        for (let l = 0; l < o; l++) {\n                            if (l === t) return [r, a, s];\n                            s % i == 0 && (r = l, a = s);\n                            switch (e.charCodeAt(l)) {\n                                case 32:\n                                    s += 1;\n                                    break;\n                                case 9:\n                                    s = n.io.nextRenderTabStop(s, i);\n                                    break;\n                                default:\n                                    return [-1, -1, -1]\n                            }\n                        }\n                        return t === o ? [r, a, s] : [-1, -1, -1]\n                    }\n                    static atomicPosition(e, t, i, s) {\n                        const r = e.length,\n                            [a, l, c] = o.whitespaceVisibleColumn(e, t, i);\n                        if (-1 === c) return -1;\n                        let d;\n                        switch (s) {\n                            case 0:\n                                d = !0;\n                                break;\n                            case 1:\n                                d = !1;\n                                break;\n                            case 2:\n                                if (c % i == 0) return t;\n                                d = c % i <= i / 2\n                        }\n                        if (d) {\n                            if (-1 === a) return -1;\n                            let t = l;\n                            for (let o = a; o < r; ++o) {\n                                if (t === l + i) return a;\n                                switch (e.charCodeAt(o)) {\n                                    case 32:\n                                        t += 1;\n                                        break;\n                                    case 9:\n                                        t = n.io.nextRenderTabStop(t, i);\n                                        break;\n                                    default:\n                                        return -1\n                                }\n                            }\n                            return t === l + i ? a : -1\n                        }\n                        const h = n.io.nextRenderTabStop(c, i);\n                        let u = c;\n                        for (let o = t; o < r; o++) {\n                            if (u === h) return o;\n                            switch (e.charCodeAt(o)) {\n                                case 32:\n                                    u += 1;\n                                    break;\n                                case 9:\n                                    u = n.io.nextRenderTabStop(u, i);\n                                    break;\n                                default:\n                                    return -1\n                            }\n                        }\n                        return u === h ? r : -1\n                    }\n                }\n            },\n            47707: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    i: () => o\n                });\n                var n = i(97295);\n                class o {\n                    static visibleColumnFromColumn(e, t, i) {\n                        const s = e.length,\n                            r = t - 1 < s ? t - 1 : s;\n                        let a = 0,\n                            l = 0;\n                        for (; l < r;) {\n                            const t = n.ZH(e, r, l);\n                            if (l += t >= 65536 ? 2 : 1, 9 === t) a = o.nextRenderTabStop(a, i);\n                            else {\n                                let i = n.S6(t);\n                                for (; l < r;) {\n                                    const t = n.ZH(e, r, l),\n                                        o = n.S6(t);\n                                    if (n.fi(i, o)) break;\n                                    l += t >= 65536 ? 2 : 1, i = o\n                                }\n                                n.K7(t) || n.C8(t) ? a += 2 : a += 1\n                            }\n                        }\n                        return a\n                    }\n                    static visibleColumnsByColumns(e, t) {\n                        const i = e.length;\n                        let s = new Array;\n                        s.push(-1);\n                        let r = 0,\n                            a = 0;\n                        for (; a < i;) {\n                            const l = n.ZH(e, i, a);\n                            if (a += l >= 65536 ? 2 : 1, s.push(r), l >= 65536 && s.push(r), 9 === l) r = o.nextRenderTabStop(r, t);\n                            else {\n                                let t = n.S6(l);\n                                for (; a < i;) {\n                                    const o = n.ZH(e, i, a),\n                                        c = n.S6(o);\n                                    if (n.fi(t, c)) break;\n                                    a += o >= 65536 ? 2 : 1, s.push(r), l >= 65536 && s.push(r), t = c\n                                }\n                                n.K7(l) || n.C8(l) ? r += 2 : r += 1\n                            }\n                        }\n                        return s.push(r), s\n                    }\n                    static visibleColumnFromColumn2(e, t, i) {\n                        return this.visibleColumnFromColumn(t.getLineContent(i.lineNumber), i.column, e.tabSize)\n                    }\n                    static columnFromVisibleColumn(e, t, i) {\n                        if (t <= 0) return 1;\n                        const s = e.length;\n                        let r = 0,\n                            a = 1,\n                            l = 0;\n                        for (; l < s;) {\n                            const c = n.ZH(e, s, l);\n                            let d;\n                            if (l += c >= 65536 ? 2 : 1, 9 === c) d = o.nextRenderTabStop(r, i);\n                            else {\n                                let t = n.S6(c);\n                                for (; l < s;) {\n                                    const i = n.ZH(e, s, l),\n                                        o = n.S6(i);\n                                    if (n.fi(t, o)) break;\n                                    l += i >= 65536 ? 2 : 1, t = o\n                                }\n                                d = n.K7(c) || n.C8(c) ? r + 2 : r + 1\n                            }\n                            const h = l + 1;\n                            if (d >= t) {\n                                return d - t < t - r ? h : a\n                            }\n                            r = d, a = h\n                        }\n                        return s + 1\n                    }\n                    static columnFromVisibleColumn2(e, t, i, n) {\n                        let o = this.columnFromVisibleColumn(t.getLineContent(i), n, e.tabSize),\n                            s = t.getLineMinColumn(i);\n                        if (o < s) return s;\n                        let r = t.getLineMaxColumn(i);\n                        return o > r ? r : o\n                    }\n                    static nextRenderTabStop(e, t) {\n                        return e + t - e % t\n                    }\n                    static nextIndentTabStop(e, t) {\n                        return e + t - e % t\n                    }\n                    static prevRenderTabStop(e, t) {\n                        return Math.max(0, e - 1 - (e - 1) % t)\n                    }\n                    static prevIndentTabStop(e, t) {\n                        return Math.max(0, e - 1 - (e - 1) % t)\n                    }\n                }\n            },\n            33181: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    LM: () => g,\n                    LN: () => w,\n                    Tp: () => b,\n                    Vi: () => _,\n                    io: () => c.i,\n                    rS: () => p,\n                    zp: () => f\n                });\n                var n = i(17301),\n                    o = i(50187),\n                    s = i(24314),\n                    r = i(3860),\n                    a = i(44174),\n                    l = i(83831),\n                    c = i(47707);\n                const d = () => !0,\n                    h = () => !1,\n                    u = e => \" \" === e || \"\\t\" === e;\n                class g {\n                    constructor(e, t, i) {\n                        this._cursorMoveConfigurationBrand = void 0, this._languageId = e;\n                        const n = i.options,\n                            o = n.get(129);\n                        this.readOnly = n.get(80), this.tabSize = t.tabSize, this.indentSize = t.indentSize, this.insertSpaces = t.insertSpaces, this.stickyTabStops = n.get(103), this.lineHeight = n.get(58), this.pageSize = Math.max(1, Math.floor(o.height / this.lineHeight) - 2), this.useTabStops = n.get(114), this.wordSeparators = n.get(115), this.emptySelectionClipboard = n.get(32), this.copyWithSyntaxHighlighting = n.get(21), this.multiCursorMergeOverlapping = n.get(68), this.multiCursorPaste = n.get(70), this.autoClosingBrackets = n.get(5), this.autoClosingQuotes = n.get(8), this.autoClosingDelete = n.get(6), this.autoClosingOvertype = n.get(7), this.autoSurround = n.get(11), this.autoIndent = n.get(9), this.surroundingPairs = {}, this._electricChars = null, this.shouldAutoCloseBefore = {\n                            quote: g._getShouldAutoClose(e, this.autoClosingQuotes),\n                            bracket: g._getShouldAutoClose(e, this.autoClosingBrackets)\n                        }, this.autoClosingPairs = l.zu.getAutoClosingPairs(e);\n                        let s = g._getSurroundingPairs(e);\n                        if (s)\n                            for (const e of s) this.surroundingPairs[e.open] = e.close\n                    }\n                    static shouldRecreate(e) {\n                        return e.hasChanged(129) || e.hasChanged(115) || e.hasChanged(32) || e.hasChanged(68) || e.hasChanged(70) || e.hasChanged(5) || e.hasChanged(8) || e.hasChanged(6) || e.hasChanged(7) || e.hasChanged(11) || e.hasChanged(114) || e.hasChanged(58) || e.hasChanged(80)\n                    }\n                    get electricChars() {\n                        if (!this._electricChars) {\n                            this._electricChars = {};\n                            let e = g._getElectricCharacters(this._languageId);\n                            if (e)\n                                for (const t of e) this._electricChars[t] = !0\n                        }\n                        return this._electricChars\n                    }\n                    normalizeIndentation(e) {\n                        return a.yO.normalizeIndentation(e, this.indentSize, this.insertSpaces)\n                    }\n                    static _getElectricCharacters(e) {\n                        try {\n                            return l.zu.getElectricCharacters(e)\n                        } catch (e) {\n                            return (0, n.dL)(e), null\n                        }\n                    }\n                    static _getShouldAutoClose(e, t) {\n                        switch (t) {\n                            case \"beforeWhitespace\":\n                                return u;\n                            case \"languageDefined\":\n                                return g._getLanguageDefinedShouldAutoClose(e);\n                            case \"always\":\n                                return d;\n                            case \"never\":\n                                return h\n                        }\n                    }\n                    static _getLanguageDefinedShouldAutoClose(e) {\n                        try {\n                            const t = l.zu.getAutoCloseBeforeSet(e);\n                            return e => -1 !== t.indexOf(e)\n                        } catch (e) {\n                            return (0, n.dL)(e), h\n                        }\n                    }\n                    static _getSurroundingPairs(e) {\n                        try {\n                            return l.zu.getSurroundingPairs(e)\n                        } catch (e) {\n                            return (0, n.dL)(e), null\n                        }\n                    }\n                }\n                class p {\n                    constructor(e, t, i, n) {\n                        this._singleCursorStateBrand = void 0, this.selectionStart = e, this.selectionStartLeftoverVisibleColumns = t, this.position = i, this.leftoverVisibleColumns = n, this.selection = p._computeSelection(this.selectionStart, this.position)\n                    }\n                    equals(e) {\n                        return this.selectionStartLeftoverVisibleColumns === e.selectionStartLeftoverVisibleColumns && this.leftoverVisibleColumns === e.leftoverVisibleColumns && this.position.equals(e.position) && this.selectionStart.equalsRange(e.selectionStart)\n                    }\n                    hasSelection() {\n                        return !this.selection.isEmpty() || !this.selectionStart.isEmpty()\n                    }\n                    move(e, t, i, n) {\n                        return e ? new p(this.selectionStart, this.selectionStartLeftoverVisibleColumns, new o.L(t, i), n) : new p(new s.e(t, i, t, i), n, new o.L(t, i), n)\n                    }\n                    static _computeSelection(e, t) {\n                        let i, n, o, s;\n                        return e.isEmpty() ? (i = e.startLineNumber, n = e.startColumn, o = t.lineNumber, s = t.column) : t.isBeforeOrEqual(e.getStartPosition()) ? (i = e.endLineNumber, n = e.endColumn, o = t.lineNumber, s = t.column) : (i = e.startLineNumber, n = e.startColumn, o = t.lineNumber, s = t.column), new r.Y(i, n, o, s)\n                    }\n                }\n                class f {\n                    constructor(e, t, i, n) {\n                        this._cursorContextBrand = void 0, this.model = e, this.viewModel = t, this.coordinatesConverter = i, this.cursorConfig = n\n                    }\n                }\n                class m {\n                    constructor(e) {\n                        this.modelState = e, this.viewState = null\n                    }\n                }\n                class v {\n                    constructor(e) {\n                        this.modelState = null, this.viewState = e\n                    }\n                }\n                class _ {\n                    constructor(e, t) {\n                        this._cursorStateBrand = void 0, this.modelState = e, this.viewState = t\n                    }\n                    static fromModelState(e) {\n                        return new m(e)\n                    }\n                    static fromViewState(e) {\n                        return new v(e)\n                    }\n                    static fromModelSelection(e) {\n                        const t = e.selectionStartLineNumber,\n                            i = e.selectionStartColumn,\n                            n = e.positionLineNumber,\n                            r = e.positionColumn,\n                            a = new p(new s.e(t, i, t, i), 0, new o.L(n, r), 0);\n                        return _.fromModelState(a)\n                    }\n                    static fromModelSelections(e) {\n                        let t = [];\n                        for (let i = 0, n = e.length; i < n; i++) t[i] = this.fromModelSelection(e[i]);\n                        return t\n                    }\n                    equals(e) {\n                        return this.viewState.equals(e.viewState) && this.modelState.equals(e.modelState)\n                    }\n                }\n                class b {\n                    constructor(e, t, i) {\n                        this._editOperationResultBrand = void 0, this.type = e, this.commands = t, this.shouldPushStackElementBefore = i.shouldPushStackElementBefore, this.shouldPushStackElementAfter = i.shouldPushStackElementAfter\n                    }\n                }\n\n                function w(e) {\n                    return \"'\" === e || '\"' === e || \"`\" === e\n                }\n            },\n            31380: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    A: () => c\n                });\n                var n = i(97295),\n                    o = i(61329),\n                    s = i(33181),\n                    r = i(88784),\n                    a = i(24314),\n                    l = i(50187);\n                class c {\n                    static deleteRight(e, t, i, n) {\n                        let s = [],\n                            l = 3 !== e;\n                        for (let e = 0, c = n.length; e < c; e++) {\n                            const c = n[e];\n                            let d = c;\n                            if (d.isEmpty()) {\n                                let e = c.getPosition(),\n                                    n = r.o.right(t, i, e);\n                                d = new a.e(n.lineNumber, n.column, e.lineNumber, e.column)\n                            }\n                            d.isEmpty() ? s[e] = null : (d.startLineNumber !== d.endLineNumber && (l = !0), s[e] = new o.T4(d, \"\"))\n                        }\n                        return [l, s]\n                    }\n                    static isAutoClosingPairDelete(e, t, i, n, o, r, a) {\n                        if (\"never\" === t && \"never\" === i) return !1;\n                        if (\"never\" === e) return !1;\n                        for (let l = 0, c = r.length; l < c; l++) {\n                            const c = r[l],\n                                d = c.getPosition();\n                            if (!c.isEmpty()) return !1;\n                            const h = o.getLineContent(d.lineNumber);\n                            if (d.column < 2 || d.column >= h.length + 1) return !1;\n                            const u = h.charAt(d.column - 2),\n                                g = n.get(u);\n                            if (!g) return !1;\n                            if ((0, s.LN)(u)) {\n                                if (\"never\" === i) return !1\n                            } else if (\"never\" === t) return !1;\n                            const p = h.charAt(d.column - 1);\n                            let f = !1;\n                            for (const e of g) e.open === u && e.close === p && (f = !0);\n                            if (!f) return !1;\n                            if (\"auto\" === e) {\n                                let e = !1;\n                                for (let t = 0, i = a.length; t < i; t++) {\n                                    const i = a[t];\n                                    if (d.lineNumber === i.startLineNumber && d.column === i.startColumn) {\n                                        e = !0;\n                                        break\n                                    }\n                                }\n                                if (!e) return !1\n                            }\n                        }\n                        return !0\n                    }\n                    static _runAutoClosingPairDelete(e, t, i) {\n                        let n = [];\n                        for (let e = 0, t = i.length; e < t; e++) {\n                            const t = i[e].getPosition(),\n                                s = new a.e(t.lineNumber, t.column - 1, t.lineNumber, t.column + 1);\n                            n[e] = new o.T4(s, \"\")\n                        }\n                        return [!0, n]\n                    }\n                    static deleteLeft(e, t, i, n, s) {\n                        if (this.isAutoClosingPairDelete(t.autoClosingDelete, t.autoClosingBrackets, t.autoClosingQuotes, t.autoClosingPairs.autoClosingPairsOpenByEnd, i, n, s)) return this._runAutoClosingPairDelete(t, i, n);\n                        const r = [];\n                        let a = 2 !== e;\n                        for (let e = 0, s = n.length; e < s; e++) {\n                            let s = c.getDeleteRange(n[e], i, t);\n                            s.isEmpty() ? r[e] = null : (s.startLineNumber !== s.endLineNumber && (a = !0), r[e] = new o.T4(s, \"\"))\n                        }\n                        return [a, r]\n                    }\n                    static getDeleteRange(e, t, i) {\n                        if (!e.isEmpty()) return e;\n                        const o = e.getPosition();\n                        if (i.useTabStops && o.column > 1) {\n                            const e = t.getLineContent(o.lineNumber),\n                                r = n.LC(e),\n                                l = -1 === r ? e.length + 1 : r + 1;\n                            if (o.column <= l) {\n                                const e = s.io.visibleColumnFromColumn2(i, t, o),\n                                    n = s.io.prevIndentTabStop(e, i.indentSize),\n                                    r = s.io.columnFromVisibleColumn2(i, t, o.lineNumber, n);\n                                return new a.e(o.lineNumber, r, o.lineNumber, o.column)\n                            }\n                        }\n                        return a.e.fromPositions(c.getPositionAfterDeleteLeft(o, t), o)\n                    }\n                    static getPositionAfterDeleteLeft(e, t) {\n                        if (e.column > 1) {\n                            const i = n.oH(e.column - 1, t.getLineContent(e.lineNumber));\n                            return e.with(void 0, i + 1)\n                        }\n                        if (e.lineNumber > 1) {\n                            const i = e.lineNumber - 1;\n                            return new l.L(i, t.getLineMaxColumn(i))\n                        }\n                        return e\n                    }\n                    static cut(e, t, i) {\n                        let n = [],\n                            r = null;\n                        i.sort(((e, t) => l.L.compare(e.getStartPosition(), t.getEndPosition())));\n                        for (let s = 0, l = i.length; s < l; s++) {\n                            const l = i[s];\n                            if (l.isEmpty())\n                                if (e.emptySelectionClipboard) {\n                                    let e, i, c, d, h = l.getPosition();\n                                    h.lineNumber < t.getLineCount() ? (e = h.lineNumber, i = 1, c = h.lineNumber + 1, d = 1) : h.lineNumber > 1 && (null == r ? void 0 : r.endLineNumber) !== h.lineNumber ? (e = h.lineNumber - 1, i = t.getLineMaxColumn(h.lineNumber - 1), c = h.lineNumber, d = t.getLineMaxColumn(h.lineNumber)) : (e = h.lineNumber, i = 1, c = h.lineNumber, d = t.getLineMaxColumn(h.lineNumber));\n                                    let u = new a.e(e, i, c, d);\n                                    r = u, u.isEmpty() ? n[s] = null : n[s] = new o.T4(u, \"\")\n                                } else n[s] = null;\n                            else n[s] = new o.T4(l, \"\")\n                        }\n                        return new s.Tp(0, n, {\n                            shouldPushStackElementBefore: !0,\n                            shouldPushStackElementAfter: !0\n                        })\n                    }\n                }\n            },\n            83814: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    N: () => n,\n                    P: () => d\n                });\n                var n, o = i(98401),\n                    s = i(33181),\n                    r = i(88784),\n                    a = i(5795),\n                    l = i(50187),\n                    c = i(24314);\n                class d {\n                    static addCursorDown(e, t, i) {\n                        let n = [],\n                            o = 0;\n                        for (let a = 0, l = t.length; a < l; a++) {\n                            const l = t[a];\n                            n[o++] = new s.Vi(l.modelState, l.viewState), n[o++] = i ? s.Vi.fromModelState(r.o.translateDown(e.cursorConfig, e.model, l.modelState)) : s.Vi.fromViewState(r.o.translateDown(e.cursorConfig, e, l.viewState))\n                        }\n                        return n\n                    }\n                    static addCursorUp(e, t, i) {\n                        let n = [],\n                            o = 0;\n                        for (let a = 0, l = t.length; a < l; a++) {\n                            const l = t[a];\n                            n[o++] = new s.Vi(l.modelState, l.viewState), n[o++] = i ? s.Vi.fromModelState(r.o.translateUp(e.cursorConfig, e.model, l.modelState)) : s.Vi.fromViewState(r.o.translateUp(e.cursorConfig, e, l.viewState))\n                        }\n                        return n\n                    }\n                    static moveToBeginningOfLine(e, t, i) {\n                        let n = [];\n                        for (let o = 0, s = t.length; o < s; o++) {\n                            const s = t[o];\n                            n[o] = this._moveToLineStart(e, s, i)\n                        }\n                        return n\n                    }\n                    static _moveToLineStart(e, t, i) {\n                        const n = t.viewState.position.column,\n                            o = n === t.modelState.position.column,\n                            s = t.viewState.position.lineNumber,\n                            r = e.getLineFirstNonWhitespaceColumn(s);\n                        return o || n === r ? this._moveToLineStartByModel(e, t, i) : this._moveToLineStartByView(e, t, i)\n                    }\n                    static _moveToLineStartByView(e, t, i) {\n                        return s.Vi.fromViewState(r.o.moveToBeginningOfLine(e.cursorConfig, e, t.viewState, i))\n                    }\n                    static _moveToLineStartByModel(e, t, i) {\n                        return s.Vi.fromModelState(r.o.moveToBeginningOfLine(e.cursorConfig, e.model, t.modelState, i))\n                    }\n                    static moveToEndOfLine(e, t, i, n) {\n                        let o = [];\n                        for (let s = 0, r = t.length; s < r; s++) {\n                            const r = t[s];\n                            o[s] = this._moveToLineEnd(e, r, i, n)\n                        }\n                        return o\n                    }\n                    static _moveToLineEnd(e, t, i, n) {\n                        const o = t.viewState.position,\n                            s = e.getLineMaxColumn(o.lineNumber),\n                            r = o.column === s,\n                            a = t.modelState.position,\n                            l = e.model.getLineMaxColumn(a.lineNumber),\n                            c = s - o.column == l - a.column;\n                        return r || c ? this._moveToLineEndByModel(e, t, i, n) : this._moveToLineEndByView(e, t, i, n)\n                    }\n                    static _moveToLineEndByView(e, t, i, n) {\n                        return s.Vi.fromViewState(r.o.moveToEndOfLine(e.cursorConfig, e, t.viewState, i, n))\n                    }\n                    static _moveToLineEndByModel(e, t, i, n) {\n                        return s.Vi.fromModelState(r.o.moveToEndOfLine(e.cursorConfig, e.model, t.modelState, i, n))\n                    }\n                    static expandLineSelection(e, t) {\n                        let i = [];\n                        for (let n = 0, o = t.length; n < o; n++) {\n                            const o = t[n],\n                                r = o.modelState.selection.startLineNumber,\n                                a = e.model.getLineCount();\n                            let d, h = o.modelState.selection.endLineNumber;\n                            h === a ? d = e.model.getLineMaxColumn(a) : (h++, d = 1), i[n] = s.Vi.fromModelState(new s.rS(new c.e(r, 1, r, 1), 0, new l.L(h, d), 0))\n                        }\n                        return i\n                    }\n                    static moveToBeginningOfBuffer(e, t, i) {\n                        let n = [];\n                        for (let o = 0, a = t.length; o < a; o++) {\n                            const a = t[o];\n                            n[o] = s.Vi.fromModelState(r.o.moveToBeginningOfBuffer(e.cursorConfig, e.model, a.modelState, i))\n                        }\n                        return n\n                    }\n                    static moveToEndOfBuffer(e, t, i) {\n                        let n = [];\n                        for (let o = 0, a = t.length; o < a; o++) {\n                            const a = t[o];\n                            n[o] = s.Vi.fromModelState(r.o.moveToEndOfBuffer(e.cursorConfig, e.model, a.modelState, i))\n                        }\n                        return n\n                    }\n                    static selectAll(e, t) {\n                        const i = e.model.getLineCount(),\n                            n = e.model.getLineMaxColumn(i);\n                        return s.Vi.fromModelState(new s.rS(new c.e(1, 1, 1, 1), 0, new l.L(i, n), 0))\n                    }\n                    static line(e, t, i, n, o) {\n                        const r = e.model.validatePosition(n),\n                            a = o ? e.coordinatesConverter.validateViewPosition(new l.L(o.lineNumber, o.column), r) : e.coordinatesConverter.convertModelPositionToViewPosition(r);\n                        if (!i || !t.modelState.hasSelection()) {\n                            const t = e.model.getLineCount();\n                            let i = r.lineNumber + 1,\n                                n = 1;\n                            return i > t && (i = t, n = e.model.getLineMaxColumn(i)), s.Vi.fromModelState(new s.rS(new c.e(r.lineNumber, 1, i, n), 0, new l.L(i, n), 0))\n                        }\n                        const d = t.modelState.selectionStart.getStartPosition().lineNumber;\n                        if (r.lineNumber < d) return s.Vi.fromViewState(t.viewState.move(t.modelState.hasSelection(), a.lineNumber, 1, 0));\n                        if (r.lineNumber > d) {\n                            const i = e.getLineCount();\n                            let n = a.lineNumber + 1,\n                                o = 1;\n                            return n > i && (n = i, o = e.getLineMaxColumn(n)), s.Vi.fromViewState(t.viewState.move(t.modelState.hasSelection(), n, o, 0))\n                        } {\n                            const e = t.modelState.selectionStart.getEndPosition();\n                            return s.Vi.fromModelState(t.modelState.move(t.modelState.hasSelection(), e.lineNumber, e.column, 0))\n                        }\n                    }\n                    static word(e, t, i, n) {\n                        const o = e.model.validatePosition(n);\n                        return s.Vi.fromModelState(a.w.word(e.cursorConfig, e.model, t.modelState, i, o))\n                    }\n                    static cancelSelection(e, t) {\n                        if (!t.modelState.hasSelection()) return new s.Vi(t.modelState, t.viewState);\n                        const i = t.viewState.position.lineNumber,\n                            n = t.viewState.position.column;\n                        return s.Vi.fromViewState(new s.rS(new c.e(i, n, i, n), 0, new l.L(i, n), 0))\n                    }\n                    static moveTo(e, t, i, n, o) {\n                        const r = e.model.validatePosition(n),\n                            a = o ? e.coordinatesConverter.validateViewPosition(new l.L(o.lineNumber, o.column), r) : e.coordinatesConverter.convertModelPositionToViewPosition(r);\n                        return s.Vi.fromViewState(t.viewState.move(i, a.lineNumber, a.column, 0))\n                    }\n                    static simpleMove(e, t, i, n, o, a) {\n                        switch (i) {\n                            case 0:\n                                return 4 === a ? this._moveHalfLineLeft(e, t, n) : this._moveLeft(e, t, n, o);\n                            case 1:\n                                return 4 === a ? this._moveHalfLineRight(e, t, n) : this._moveRight(e, t, n, o);\n                            case 2:\n                                return 2 === a ? this._moveUpByViewLines(e, t, n, o) : this._moveUpByModelLines(e, t, n, o);\n                            case 3:\n                                return 2 === a ? this._moveDownByViewLines(e, t, n, o) : this._moveDownByModelLines(e, t, n, o);\n                            case 4:\n                                return 2 === a ? t.map((t => s.Vi.fromViewState(r.o.moveToPrevBlankLine(e.cursorConfig, e, t.viewState, n)))) : t.map((t => s.Vi.fromModelState(r.o.moveToPrevBlankLine(e.cursorConfig, e.model, t.modelState, n))));\n                            case 5:\n                                return 2 === a ? t.map((t => s.Vi.fromViewState(r.o.moveToNextBlankLine(e.cursorConfig, e, t.viewState, n)))) : t.map((t => s.Vi.fromModelState(r.o.moveToNextBlankLine(e.cursorConfig, e.model, t.modelState, n))));\n                            case 6:\n                                return this._moveToViewMinColumn(e, t, n);\n                            case 7:\n                                return this._moveToViewFirstNonWhitespaceColumn(e, t, n);\n                            case 8:\n                                return this._moveToViewCenterColumn(e, t, n);\n                            case 9:\n                                return this._moveToViewMaxColumn(e, t, n);\n                            case 10:\n                                return this._moveToViewLastNonWhitespaceColumn(e, t, n);\n                            default:\n                                return null\n                        }\n                    }\n                    static viewportMove(e, t, i, n, o) {\n                        const s = e.getCompletelyVisibleViewRange(),\n                            r = e.coordinatesConverter.convertViewRangeToModelRange(s);\n                        switch (i) {\n                            case 11: {\n                                const i = this._firstLineNumberInRange(e.model, r, o),\n                                    s = e.model.getLineFirstNonWhitespaceColumn(i);\n                                return [this._moveToModelPosition(e, t[0], n, i, s)]\n                            }\n                            case 13: {\n                                const i = this._lastLineNumberInRange(e.model, r, o),\n                                    s = e.model.getLineFirstNonWhitespaceColumn(i);\n                                return [this._moveToModelPosition(e, t[0], n, i, s)]\n                            }\n                            case 12: {\n                                const i = Math.round((r.startLineNumber + r.endLineNumber) / 2),\n                                    o = e.model.getLineFirstNonWhitespaceColumn(i);\n                                return [this._moveToModelPosition(e, t[0], n, i, o)]\n                            }\n                            case 14: {\n                                let i = [];\n                                for (let o = 0, r = t.length; o < r; o++) {\n                                    const r = t[o];\n                                    i[o] = this.findPositionInViewportIfOutside(e, r, s, n)\n                                }\n                                return i\n                            }\n                            default:\n                                return null\n                        }\n                    }\n                    static findPositionInViewportIfOutside(e, t, i, n) {\n                        let o = t.viewState.position.lineNumber;\n                        if (i.startLineNumber <= o && o <= i.endLineNumber - 1) return new s.Vi(t.modelState, t.viewState); {\n                            let a;\n                            a = o > i.endLineNumber - 1 ? i.endLineNumber - 1 : o < i.startLineNumber ? i.startLineNumber : o;\n                            const l = r.o.vertical(e.cursorConfig, e, o, t.viewState.position.column, t.viewState.leftoverVisibleColumns, a, !1);\n                            return s.Vi.fromViewState(t.viewState.move(n, l.lineNumber, l.column, l.leftoverVisibleColumns))\n                        }\n                    }\n                    static _firstLineNumberInRange(e, t, i) {\n                        let n = t.startLineNumber;\n                        return t.startColumn !== e.getLineMinColumn(n) && n++, Math.min(t.endLineNumber, n + i - 1)\n                    }\n                    static _lastLineNumberInRange(e, t, i) {\n                        let n = t.startLineNumber;\n                        return t.startColumn !== e.getLineMinColumn(n) && n++, Math.max(n, t.endLineNumber - i + 1)\n                    }\n                    static _moveLeft(e, t, i, n) {\n                        return t.map((t => s.Vi.fromViewState(r.o.moveLeft(e.cursorConfig, e, t.viewState, i, n))))\n                    }\n                    static _moveHalfLineLeft(e, t, i) {\n                        let n = [];\n                        for (let o = 0, a = t.length; o < a; o++) {\n                            const a = t[o],\n                                l = a.viewState.position.lineNumber,\n                                c = Math.round(e.getLineContent(l).length / 2);\n                            n[o] = s.Vi.fromViewState(r.o.moveLeft(e.cursorConfig, e, a.viewState, i, c))\n                        }\n                        return n\n                    }\n                    static _moveRight(e, t, i, n) {\n                        return t.map((t => s.Vi.fromViewState(r.o.moveRight(e.cursorConfig, e, t.viewState, i, n))))\n                    }\n                    static _moveHalfLineRight(e, t, i) {\n                        let n = [];\n                        for (let o = 0, a = t.length; o < a; o++) {\n                            const a = t[o],\n                                l = a.viewState.position.lineNumber,\n                                c = Math.round(e.getLineContent(l).length / 2);\n                            n[o] = s.Vi.fromViewState(r.o.moveRight(e.cursorConfig, e, a.viewState, i, c))\n                        }\n                        return n\n                    }\n                    static _moveDownByViewLines(e, t, i, n) {\n                        let o = [];\n                        for (let a = 0, l = t.length; a < l; a++) {\n                            const l = t[a];\n                            o[a] = s.Vi.fromViewState(r.o.moveDown(e.cursorConfig, e, l.viewState, i, n))\n                        }\n                        return o\n                    }\n                    static _moveDownByModelLines(e, t, i, n) {\n                        let o = [];\n                        for (let a = 0, l = t.length; a < l; a++) {\n                            const l = t[a];\n                            o[a] = s.Vi.fromModelState(r.o.moveDown(e.cursorConfig, e.model, l.modelState, i, n))\n                        }\n                        return o\n                    }\n                    static _moveUpByViewLines(e, t, i, n) {\n                        let o = [];\n                        for (let a = 0, l = t.length; a < l; a++) {\n                            const l = t[a];\n                            o[a] = s.Vi.fromViewState(r.o.moveUp(e.cursorConfig, e, l.viewState, i, n))\n                        }\n                        return o\n                    }\n                    static _moveUpByModelLines(e, t, i, n) {\n                        let o = [];\n                        for (let a = 0, l = t.length; a < l; a++) {\n                            const l = t[a];\n                            o[a] = s.Vi.fromModelState(r.o.moveUp(e.cursorConfig, e.model, l.modelState, i, n))\n                        }\n                        return o\n                    }\n                    static _moveToViewPosition(e, t, i, n, o) {\n                        return s.Vi.fromViewState(t.viewState.move(i, n, o, 0))\n                    }\n                    static _moveToModelPosition(e, t, i, n, o) {\n                        return s.Vi.fromModelState(t.modelState.move(i, n, o, 0))\n                    }\n                    static _moveToViewMinColumn(e, t, i) {\n                        let n = [];\n                        for (let o = 0, s = t.length; o < s; o++) {\n                            const s = t[o],\n                                r = s.viewState.position.lineNumber,\n                                a = e.getLineMinColumn(r);\n                            n[o] = this._moveToViewPosition(e, s, i, r, a)\n                        }\n                        return n\n                    }\n                    static _moveToViewFirstNonWhitespaceColumn(e, t, i) {\n                        let n = [];\n                        for (let o = 0, s = t.length; o < s; o++) {\n                            const s = t[o],\n                                r = s.viewState.position.lineNumber,\n                                a = e.getLineFirstNonWhitespaceColumn(r);\n                            n[o] = this._moveToViewPosition(e, s, i, r, a)\n                        }\n                        return n\n                    }\n                    static _moveToViewCenterColumn(e, t, i) {\n                        let n = [];\n                        for (let o = 0, s = t.length; o < s; o++) {\n                            const s = t[o],\n                                r = s.viewState.position.lineNumber,\n                                a = Math.round((e.getLineMaxColumn(r) + e.getLineMinColumn(r)) / 2);\n                            n[o] = this._moveToViewPosition(e, s, i, r, a)\n                        }\n                        return n\n                    }\n                    static _moveToViewMaxColumn(e, t, i) {\n                        let n = [];\n                        for (let o = 0, s = t.length; o < s; o++) {\n                            const s = t[o],\n                                r = s.viewState.position.lineNumber,\n                                a = e.getLineMaxColumn(r);\n                            n[o] = this._moveToViewPosition(e, s, i, r, a)\n                        }\n                        return n\n                    }\n                    static _moveToViewLastNonWhitespaceColumn(e, t, i) {\n                        let n = [];\n                        for (let o = 0, s = t.length; o < s; o++) {\n                            const s = t[o],\n                                r = s.viewState.position.lineNumber,\n                                a = e.getLineLastNonWhitespaceColumn(r);\n                            n[o] = this._moveToViewPosition(e, s, i, r, a)\n                        }\n                        return n\n                    }\n                }! function(e) {\n                    e.description = {\n                        description: \"Move cursor to a logical position in the view\",\n                        args: [{\n                            name: \"Cursor move argument object\",\n                            description: \"Property-value pairs that can be passed through this argument:\\n\\t\\t\\t\\t\\t* 'to': A mandatory logical position value providing where to move the cursor.\\n\\t\\t\\t\\t\\t\\t```\\n\\t\\t\\t\\t\\t\\t'left', 'right', 'up', 'down', 'prevBlankLine', 'nextBlankLine',\\n\\t\\t\\t\\t\\t\\t'wrappedLineStart', 'wrappedLineEnd', 'wrappedLineColumnCenter'\\n\\t\\t\\t\\t\\t\\t'wrappedLineFirstNonWhitespaceCharacter', 'wrappedLineLastNonWhitespaceCharacter'\\n\\t\\t\\t\\t\\t\\t'viewPortTop', 'viewPortCenter', 'viewPortBottom', 'viewPortIfOutside'\\n\\t\\t\\t\\t\\t\\t```\\n\\t\\t\\t\\t\\t* 'by': Unit to move. Default is computed based on 'to' value.\\n\\t\\t\\t\\t\\t\\t```\\n\\t\\t\\t\\t\\t\\t'line', 'wrappedLine', 'character', 'halfLine'\\n\\t\\t\\t\\t\\t\\t```\\n\\t\\t\\t\\t\\t* 'value': Number of units to move. Default is '1'.\\n\\t\\t\\t\\t\\t* 'select': If 'true' makes the selection. Default is 'false'.\\n\\t\\t\\t\\t\",\n                            constraint: function(e) {\n                                if (!o.Kn(e)) return !1;\n                                let t = e;\n                                return !!o.HD(t.to) && (!(!o.o8(t.select) && !o.jn(t.select)) && (!(!o.o8(t.by) && !o.HD(t.by)) && !(!o.o8(t.value) && !o.hj(t.value))))\n                            },\n                            schema: {\n                                type: \"object\",\n                                required: [\"to\"],\n                                properties: {\n                                    to: {\n                                        type: \"string\",\n                                        enum: [\"left\", \"right\", \"up\", \"down\", \"prevBlankLine\", \"nextBlankLine\", \"wrappedLineStart\", \"wrappedLineEnd\", \"wrappedLineColumnCenter\", \"wrappedLineFirstNonWhitespaceCharacter\", \"wrappedLineLastNonWhitespaceCharacter\", \"viewPortTop\", \"viewPortCenter\", \"viewPortBottom\", \"viewPortIfOutside\"]\n                                    },\n                                    by: {\n                                        type: \"string\",\n                                        enum: [\"line\", \"wrappedLine\", \"character\", \"halfLine\"]\n                                    },\n                                    value: {\n                                        type: \"number\",\n                                        default: 1\n                                    },\n                                    select: {\n                                        type: \"boolean\",\n                                        default: !1\n                                    }\n                                }\n                            }\n                        }]\n                    }, e.RawDirection = {\n                        Left: \"left\",\n                        Right: \"right\",\n                        Up: \"up\",\n                        Down: \"down\",\n                        PrevBlankLine: \"prevBlankLine\",\n                        NextBlankLine: \"nextBlankLine\",\n                        WrappedLineStart: \"wrappedLineStart\",\n                        WrappedLineFirstNonWhitespaceCharacter: \"wrappedLineFirstNonWhitespaceCharacter\",\n                        WrappedLineColumnCenter: \"wrappedLineColumnCenter\",\n                        WrappedLineEnd: \"wrappedLineEnd\",\n                        WrappedLineLastNonWhitespaceCharacter: \"wrappedLineLastNonWhitespaceCharacter\",\n                        ViewPortTop: \"viewPortTop\",\n                        ViewPortCenter: \"viewPortCenter\",\n                        ViewPortBottom: \"viewPortBottom\",\n                        ViewPortIfOutside: \"viewPortIfOutside\"\n                    }, e.RawUnit = {\n                        Line: \"line\",\n                        WrappedLine: \"wrappedLine\",\n                        Character: \"character\",\n                        HalfLine: \"halfLine\"\n                    }, e.parse = function(t) {\n                        if (!t.to) return null;\n                        let i;\n                        switch (t.to) {\n                            case e.RawDirection.Left:\n                                i = 0;\n                                break;\n                            case e.RawDirection.Right:\n                                i = 1;\n                                break;\n                            case e.RawDirection.Up:\n                                i = 2;\n                                break;\n                            case e.RawDirection.Down:\n                                i = 3;\n                                break;\n                            case e.RawDirection.PrevBlankLine:\n                                i = 4;\n                                break;\n                            case e.RawDirection.NextBlankLine:\n                                i = 5;\n                                break;\n                            case e.RawDirection.WrappedLineStart:\n                                i = 6;\n                                break;\n                            case e.RawDirection.WrappedLineFirstNonWhitespaceCharacter:\n                                i = 7;\n                                break;\n                            case e.RawDirection.WrappedLineColumnCenter:\n                                i = 8;\n                                break;\n                            case e.RawDirection.WrappedLineEnd:\n                                i = 9;\n                                break;\n                            case e.RawDirection.WrappedLineLastNonWhitespaceCharacter:\n                                i = 10;\n                                break;\n                            case e.RawDirection.ViewPortTop:\n                                i = 11;\n                                break;\n                            case e.RawDirection.ViewPortBottom:\n                                i = 13;\n                                break;\n                            case e.RawDirection.ViewPortCenter:\n                                i = 12;\n                                break;\n                            case e.RawDirection.ViewPortIfOutside:\n                                i = 14;\n                                break;\n                            default:\n                                return null\n                        }\n                        let n = 0;\n                        switch (t.by) {\n                            case e.RawUnit.Line:\n                                n = 1;\n                                break;\n                            case e.RawUnit.WrappedLine:\n                                n = 2;\n                                break;\n                            case e.RawUnit.Character:\n                                n = 3;\n                                break;\n                            case e.RawUnit.HalfLine:\n                                n = 4\n                        }\n                        return {\n                            direction: i,\n                            unit: n,\n                            select: !!t.select,\n                            value: t.value || 1\n                        }\n                    }\n                }(n || (n = {}))\n            },\n            88784: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    o: () => c\n                });\n                var n = i(33181),\n                    o = i(50187),\n                    s = i(24314),\n                    r = i(97295),\n                    a = i(3675);\n                class l {\n                    constructor(e, t, i) {\n                        this._cursorPositionBrand = void 0, this.lineNumber = e, this.column = t, this.leftoverVisibleColumns = i\n                    }\n                }\n                class c {\n                    static leftPosition(e, t) {\n                        if (t.column > e.getLineMinColumn(t.lineNumber)) return t.delta(void 0, -r.HO(e.getLineContent(t.lineNumber), t.column - 1));\n                        if (t.lineNumber > 1) {\n                            const i = t.lineNumber - 1;\n                            return new o.L(i, e.getLineMaxColumn(i))\n                        }\n                        return t\n                    }\n                    static leftPositionAtomicSoftTabs(e, t, i) {\n                        if (t.column <= e.getLineIndentColumn(t.lineNumber)) {\n                            const n = e.getLineMinColumn(t.lineNumber),\n                                s = e.getLineContent(t.lineNumber),\n                                r = a.l.atomicPosition(s, t.column - 1, i, 0);\n                            if (-1 !== r && r + 1 >= n) return new o.L(t.lineNumber, r + 1)\n                        }\n                        return this.leftPosition(e, t)\n                    }\n                    static left(e, t, i) {\n                        const n = e.stickyTabStops ? c.leftPositionAtomicSoftTabs(t, i, e.tabSize) : c.leftPosition(t, i);\n                        return new l(n.lineNumber, n.column, 0)\n                    }\n                    static moveLeft(e, t, i, n, o) {\n                        let s, r;\n                        if (i.hasSelection() && !n) s = i.selection.startLineNumber, r = i.selection.startColumn;\n                        else {\n                            const n = i.position.delta(void 0, -(o - 1)),\n                                a = t.normalizePosition(c.clipPositionColumn(n, t), 0),\n                                l = c.left(e, t, a);\n                            s = l.lineNumber, r = l.column\n                        }\n                        return i.move(n, s, r, 0)\n                    }\n                    static clipPositionColumn(e, t) {\n                        return new o.L(e.lineNumber, c.clipRange(e.column, t.getLineMinColumn(e.lineNumber), t.getLineMaxColumn(e.lineNumber)))\n                    }\n                    static clipRange(e, t, i) {\n                        return e < t ? t : e > i ? i : e\n                    }\n                    static rightPosition(e, t, i) {\n                        return i < e.getLineMaxColumn(t) ? i += r.vH(e.getLineContent(t), i - 1) : t < e.getLineCount() && (t += 1, i = e.getLineMinColumn(t)), new o.L(t, i)\n                    }\n                    static rightPositionAtomicSoftTabs(e, t, i, n, s) {\n                        if (i < e.getLineIndentColumn(t)) {\n                            const s = e.getLineContent(t),\n                                r = a.l.atomicPosition(s, i - 1, n, 1);\n                            if (-1 !== r) return new o.L(t, r + 1)\n                        }\n                        return this.rightPosition(e, t, i)\n                    }\n                    static right(e, t, i) {\n                        const n = e.stickyTabStops ? c.rightPositionAtomicSoftTabs(t, i.lineNumber, i.column, e.tabSize, e.indentSize) : c.rightPosition(t, i.lineNumber, i.column);\n                        return new l(n.lineNumber, n.column, 0)\n                    }\n                    static moveRight(e, t, i, n, o) {\n                        let s, r;\n                        if (i.hasSelection() && !n) s = i.selection.endLineNumber, r = i.selection.endColumn;\n                        else {\n                            const n = i.position.delta(void 0, o - 1),\n                                a = t.normalizePosition(c.clipPositionColumn(n, t), 1),\n                                l = c.right(e, t, a);\n                            s = l.lineNumber, r = l.column\n                        }\n                        return i.move(n, s, r, 0)\n                    }\n                    static vertical(e, t, i, o, s, r, a) {\n                        const c = n.io.visibleColumnFromColumn(t.getLineContent(i), o, e.tabSize) + s,\n                            d = t.getLineCount(),\n                            h = 1 === i && 1 === o,\n                            u = i === d && o === t.getLineMaxColumn(i),\n                            g = r < i ? h : u;\n                        return (i = r) < 1 ? (i = 1, o = a ? t.getLineMinColumn(i) : Math.min(t.getLineMaxColumn(i), o)) : i > d ? (i = d, o = a ? t.getLineMaxColumn(i) : Math.min(t.getLineMaxColumn(i), o)) : o = n.io.columnFromVisibleColumn2(e, t, i, c), s = g ? 0 : c - n.io.visibleColumnFromColumn(t.getLineContent(i), o, e.tabSize), new l(i, o, s)\n                    }\n                    static down(e, t, i, n, o, s, r) {\n                        return this.vertical(e, t, i, n, o, i + s, r)\n                    }\n                    static moveDown(e, t, i, n, o) {\n                        let s, r;\n                        i.hasSelection() && !n ? (s = i.selection.endLineNumber, r = i.selection.endColumn) : (s = i.position.lineNumber, r = i.position.column);\n                        let a = c.down(e, t, s, r, i.leftoverVisibleColumns, o, !0);\n                        return i.move(n, a.lineNumber, a.column, a.leftoverVisibleColumns)\n                    }\n                    static translateDown(e, t, i) {\n                        let r = i.selection,\n                            a = c.down(e, t, r.selectionStartLineNumber, r.selectionStartColumn, i.selectionStartLeftoverVisibleColumns, 1, !1),\n                            l = c.down(e, t, r.positionLineNumber, r.positionColumn, i.leftoverVisibleColumns, 1, !1);\n                        return new n.rS(new s.e(a.lineNumber, a.column, a.lineNumber, a.column), a.leftoverVisibleColumns, new o.L(l.lineNumber, l.column), l.leftoverVisibleColumns)\n                    }\n                    static up(e, t, i, n, o, s, r) {\n                        return this.vertical(e, t, i, n, o, i - s, r)\n                    }\n                    static moveUp(e, t, i, n, o) {\n                        let s, r;\n                        i.hasSelection() && !n ? (s = i.selection.startLineNumber, r = i.selection.startColumn) : (s = i.position.lineNumber, r = i.position.column);\n                        let a = c.up(e, t, s, r, i.leftoverVisibleColumns, o, !0);\n                        return i.move(n, a.lineNumber, a.column, a.leftoverVisibleColumns)\n                    }\n                    static translateUp(e, t, i) {\n                        let r = i.selection,\n                            a = c.up(e, t, r.selectionStartLineNumber, r.selectionStartColumn, i.selectionStartLeftoverVisibleColumns, 1, !1),\n                            l = c.up(e, t, r.positionLineNumber, r.positionColumn, i.leftoverVisibleColumns, 1, !1);\n                        return new n.rS(new s.e(a.lineNumber, a.column, a.lineNumber, a.column), a.leftoverVisibleColumns, new o.L(l.lineNumber, l.column), l.leftoverVisibleColumns)\n                    }\n                    static _isBlankLine(e, t) {\n                        return 0 === e.getLineFirstNonWhitespaceColumn(t)\n                    }\n                    static moveToPrevBlankLine(e, t, i, n) {\n                        let o = i.position.lineNumber;\n                        for (; o > 1 && this._isBlankLine(t, o);) o--;\n                        for (; o > 1 && !this._isBlankLine(t, o);) o--;\n                        return i.move(n, o, t.getLineMinColumn(o), 0)\n                    }\n                    static moveToNextBlankLine(e, t, i, n) {\n                        const o = t.getLineCount();\n                        let s = i.position.lineNumber;\n                        for (; s < o && this._isBlankLine(t, s);) s++;\n                        for (; s < o && !this._isBlankLine(t, s);) s++;\n                        return i.move(n, s, t.getLineMinColumn(s), 0)\n                    }\n                    static moveToBeginningOfLine(e, t, i, n) {\n                        let o, s = i.position.lineNumber,\n                            r = t.getLineMinColumn(s),\n                            a = t.getLineFirstNonWhitespaceColumn(s) || r;\n                        return o = i.position.column === a ? r : a, i.move(n, s, o, 0)\n                    }\n                    static moveToEndOfLine(e, t, i, n, o) {\n                        let s = i.position.lineNumber,\n                            r = t.getLineMaxColumn(s);\n                        return i.move(n, s, r, o ? 1073741824 - r : 0)\n                    }\n                    static moveToBeginningOfBuffer(e, t, i, n) {\n                        return i.move(n, 1, 1, 0)\n                    }\n                    static moveToEndOfBuffer(e, t, i, n) {\n                        let o = t.getLineCount(),\n                            s = t.getLineMaxColumn(o);\n                        return i.move(n, o, s, 0)\n                    }\n                }\n            },\n            23582: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    u: () => p,\n                    g: () => f\n                });\n                var n = i(17301),\n                    o = i(97295),\n                    s = i(61329),\n                    r = i(10291),\n                    a = i(24314),\n                    l = i(3860);\n                class c {\n                    constructor(e, t, i) {\n                        this._range = e, this._charBeforeSelection = t, this._charAfterSelection = i\n                    }\n                    getEditOperations(e, t) {\n                        t.addTrackedEditOperation(new a.e(this._range.startLineNumber, this._range.startColumn, this._range.startLineNumber, this._range.startColumn), this._charBeforeSelection), t.addTrackedEditOperation(new a.e(this._range.endLineNumber, this._range.endColumn, this._range.endLineNumber, this._range.endColumn), this._charAfterSelection)\n                    }\n                    computeCursorState(e, t) {\n                        let i = t.getInverseEditOperations(),\n                            n = i[0].range,\n                            o = i[1].range;\n                        return new l.Y(n.endLineNumber, n.endColumn, o.endLineNumber, o.endColumn - this._charAfterSelection.length)\n                    }\n                }\n                var d = i(33181),\n                    h = i(59410),\n                    u = i(97354),\n                    g = i(83831);\n                class p {\n                    static indent(e, t, i) {\n                        if (null === t || null === i) return [];\n                        let n = [];\n                        for (let t = 0, o = i.length; t < o; t++) n[t] = new r.U(i[t], {\n                            isUnshift: !1,\n                            tabSize: e.tabSize,\n                            indentSize: e.indentSize,\n                            insertSpaces: e.insertSpaces,\n                            useTabStops: e.useTabStops,\n                            autoIndent: e.autoIndent\n                        });\n                        return n\n                    }\n                    static outdent(e, t, i) {\n                        let n = [];\n                        for (let t = 0, o = i.length; t < o; t++) n[t] = new r.U(i[t], {\n                            isUnshift: !0,\n                            tabSize: e.tabSize,\n                            indentSize: e.indentSize,\n                            insertSpaces: e.insertSpaces,\n                            useTabStops: e.useTabStops,\n                            autoIndent: e.autoIndent\n                        });\n                        return n\n                    }\n                    static shiftIndent(e, t, i) {\n                        return i = i || 1, r.U.shiftIndent(t, t.length + i, e.tabSize, e.indentSize, e.insertSpaces)\n                    }\n                    static unshiftIndent(e, t, i) {\n                        return i = i || 1, r.U.unshiftIndent(t, t.length + i, e.tabSize, e.indentSize, e.insertSpaces)\n                    }\n                    static _distributedPaste(e, t, i, n) {\n                        let o = [];\n                        for (let e = 0, t = i.length; e < t; e++) o[e] = new s.T4(i[e], n[e]);\n                        return new d.Tp(0, o, {\n                            shouldPushStackElementBefore: !0,\n                            shouldPushStackElementAfter: !0\n                        })\n                    }\n                    static _simplePaste(e, t, i, n, o) {\n                        let r = [];\n                        for (let e = 0, t = i.length; e < t; e++) {\n                            const t = i[e];\n                            let l = t.getPosition();\n                            if (o && !t.isEmpty() && (o = !1), o && n.indexOf(\"\\n\") !== n.length - 1 && (o = !1), o) {\n                                let i = new a.e(l.lineNumber, 1, l.lineNumber, 1);\n                                r[e] = new s.hP(i, n, t, !0)\n                            } else r[e] = new s.T4(t, n)\n                        }\n                        return new d.Tp(0, r, {\n                            shouldPushStackElementBefore: !0,\n                            shouldPushStackElementAfter: !0\n                        })\n                    }\n                    static _distributePasteToCursors(e, t, i, n, s) {\n                        if (n) return null;\n                        if (1 === t.length) return null;\n                        if (s && s.length === t.length) return s;\n                        if (\"spread\" === e.multiCursorPaste) {\n                            10 === i.charCodeAt(i.length - 1) && (i = i.substr(0, i.length - 1)), 13 === i.charCodeAt(i.length - 1) && (i = i.substr(0, i.length - 1));\n                            let e = o.uq(i);\n                            if (e.length === t.length) return e\n                        }\n                        return null\n                    }\n                    static paste(e, t, i, n, o, s) {\n                        const r = this._distributePasteToCursors(e, i, n, o, s);\n                        return r ? (i = i.sort(a.e.compareRangesUsingStarts), this._distributedPaste(e, t, i, r)) : this._simplePaste(e, t, i, n, o)\n                    }\n                    static _goodIndentForLine(e, t, i) {\n                        let n = null,\n                            s = \"\";\n                        const r = g.zu.getInheritIndentForLine(e.autoIndent, t, i, !1);\n                        if (r) n = r.action, s = r.indentation;\n                        else if (i > 1) {\n                            let n;\n                            for (n = i - 1; n >= 1; n--) {\n                                const e = t.getLineContent(n);\n                                if (o.ow(e) >= 0) break\n                            }\n                            if (n < 1) return null;\n                            const r = t.getLineMaxColumn(n),\n                                l = g.zu.getEnterAction(e.autoIndent, t, new a.e(n, r, n, r));\n                            l && (s = l.indentation + l.appendText)\n                        }\n                        return n && (n === u.wU.Indent && (s = p.shiftIndent(e, s)), n === u.wU.Outdent && (s = p.unshiftIndent(e, s)), s = e.normalizeIndentation(s)), s || null\n                    }\n                    static _replaceJumpToNextIndent(e, t, i, n) {\n                        let o = \"\",\n                            r = i.getStartPosition();\n                        if (e.insertSpaces) {\n                            let i = d.io.visibleColumnFromColumn2(e, t, r),\n                                n = e.indentSize,\n                                s = n - i % n;\n                            for (let e = 0; e < s; e++) o += \" \"\n                        } else o = \"\\t\";\n                        return new s.T4(i, o, n)\n                    }\n                    static tab(e, t, i) {\n                        let n = [];\n                        for (let o = 0, l = i.length; o < l; o++) {\n                            const l = i[o];\n                            if (l.isEmpty()) {\n                                let i = t.getLineContent(l.startLineNumber);\n                                if (/^\\s*$/.test(i) && t.isCheapToTokenize(l.startLineNumber)) {\n                                    let r = this._goodIndentForLine(e, t, l.startLineNumber);\n                                    r = r || \"\\t\";\n                                    let c = e.normalizeIndentation(r);\n                                    if (!i.startsWith(c)) {\n                                        n[o] = new s.T4(new a.e(l.startLineNumber, 1, l.startLineNumber, i.length + 1), c, !0);\n                                        continue\n                                    }\n                                }\n                                n[o] = this._replaceJumpToNextIndent(e, t, l, !0)\n                            } else {\n                                if (l.startLineNumber === l.endLineNumber) {\n                                    let i = t.getLineMaxColumn(l.startLineNumber);\n                                    if (1 !== l.startColumn || l.endColumn !== i) {\n                                        n[o] = this._replaceJumpToNextIndent(e, t, l, !1);\n                                        continue\n                                    }\n                                }\n                                n[o] = new r.U(l, {\n                                    isUnshift: !1,\n                                    tabSize: e.tabSize,\n                                    indentSize: e.indentSize,\n                                    insertSpaces: e.insertSpaces,\n                                    useTabStops: e.useTabStops,\n                                    autoIndent: e.autoIndent\n                                })\n                            }\n                        }\n                        return n\n                    }\n                    static compositionType(e, t, i, n, o, s, r, a) {\n                        const l = n.map((e => this._compositionType(i, e, o, s, r, a)));\n                        return new d.Tp(4, l, {\n                            shouldPushStackElementBefore: v(e, 4),\n                            shouldPushStackElementAfter: !1\n                        })\n                    }\n                    static _compositionType(e, t, i, n, o, r) {\n                        if (!t.isEmpty()) return null;\n                        const l = t.getPosition(),\n                            c = Math.max(1, l.column - n),\n                            d = Math.min(e.getLineMaxColumn(l.lineNumber), l.column + o),\n                            h = new a.e(l.lineNumber, c, l.lineNumber, d);\n                        return e.getValueInRange(h) === i && 0 === r ? null : new s.Uo(h, i, 0, r)\n                    }\n                    static _typeCommand(e, t, i) {\n                        return i ? new s.Sj(e, t, !0) : new s.T4(e, t, !0)\n                    }\n                    static _enter(e, t, i, n) {\n                        if (0 === e.autoIndent) return p._typeCommand(n, \"\\n\", i);\n                        if (!t.isCheapToTokenize(n.getStartPosition().lineNumber) || 1 === e.autoIndent) {\n                            let s = t.getLineContent(n.startLineNumber),\n                                r = o.V8(s).substring(0, n.startColumn - 1);\n                            return p._typeCommand(n, \"\\n\" + e.normalizeIndentation(r), i)\n                        }\n                        const r = g.zu.getEnterAction(e.autoIndent, t, n);\n                        if (r) {\n                            if (r.indentAction === u.wU.None) return p._typeCommand(n, \"\\n\" + e.normalizeIndentation(r.indentation + r.appendText), i);\n                            if (r.indentAction === u.wU.Indent) return p._typeCommand(n, \"\\n\" + e.normalizeIndentation(r.indentation + r.appendText), i);\n                            if (r.indentAction === u.wU.IndentOutdent) {\n                                const t = e.normalizeIndentation(r.indentation),\n                                    o = e.normalizeIndentation(r.indentation + r.appendText),\n                                    a = \"\\n\" + o + \"\\n\" + t;\n                                return i ? new s.Sj(n, a, !0) : new s.Uo(n, a, -1, o.length - t.length, !0)\n                            }\n                            if (r.indentAction === u.wU.Outdent) {\n                                const t = p.unshiftIndent(e, r.indentation);\n                                return p._typeCommand(n, \"\\n\" + e.normalizeIndentation(t + r.appendText), i)\n                            }\n                        }\n                        const a = t.getLineContent(n.startLineNumber),\n                            l = o.V8(a).substring(0, n.startColumn - 1);\n                        if (e.autoIndent >= 4) {\n                            const r = g.zu.getIndentForEnter(e.autoIndent, t, n, {\n                                unshiftIndent: t => p.unshiftIndent(e, t),\n                                shiftIndent: t => p.shiftIndent(e, t),\n                                normalizeIndentation: t => e.normalizeIndentation(t)\n                            });\n                            if (r) {\n                                let a = d.io.visibleColumnFromColumn2(e, t, n.getEndPosition());\n                                const l = n.endColumn,\n                                    c = t.getLineContent(n.endLineNumber),\n                                    h = o.LC(c);\n                                if (n = h >= 0 ? n.setEndPosition(n.endLineNumber, Math.max(n.endColumn, h + 1)) : n.setEndPosition(n.endLineNumber, t.getLineMaxColumn(n.endLineNumber)), i) return new s.Sj(n, \"\\n\" + e.normalizeIndentation(r.afterEnter), !0); {\n                                    let t = 0;\n                                    return l <= h + 1 && (e.insertSpaces || (a = Math.ceil(a / e.indentSize)), t = Math.min(a + 1 - e.normalizeIndentation(r.afterEnter).length - 1, 0)), new s.Uo(n, \"\\n\" + e.normalizeIndentation(r.afterEnter), 0, t, !0)\n                                }\n                            }\n                        }\n                        return p._typeCommand(n, \"\\n\" + e.normalizeIndentation(l), i)\n                    }\n                    static _isAutoIndentType(e, t, i) {\n                        if (e.autoIndent < 4) return !1;\n                        for (let e = 0, n = i.length; e < n; e++)\n                            if (!t.isCheapToTokenize(i[e].getEndPosition().lineNumber)) return !1;\n                        return !0\n                    }\n                    static _runAutoIndentType(e, t, i, n) {\n                        const o = g.zu.getIndentationAtPosition(t, i.startLineNumber, i.startColumn),\n                            s = g.zu.getIndentActionForType(e.autoIndent, t, i, n, {\n                                shiftIndent: t => p.shiftIndent(e, t),\n                                unshiftIndent: t => p.unshiftIndent(e, t)\n                            });\n                        if (null === s) return null;\n                        if (s !== e.normalizeIndentation(o)) {\n                            const o = t.getLineFirstNonWhitespaceColumn(i.startLineNumber);\n                            return 0 === o ? p._typeCommand(new a.e(i.startLineNumber, 1, i.endLineNumber, i.endColumn), e.normalizeIndentation(s) + n, !1) : p._typeCommand(new a.e(i.startLineNumber, 1, i.endLineNumber, i.endColumn), e.normalizeIndentation(s) + t.getLineContent(i.startLineNumber).substring(o - 1, i.startColumn - 1) + n, !1)\n                        }\n                        return null\n                    }\n                    static _isAutoClosingOvertype(e, t, i, n, o) {\n                        if (\"never\" === e.autoClosingOvertype) return !1;\n                        if (!e.autoClosingPairs.autoClosingPairsCloseSingleChar.has(o)) return !1;\n                        for (let s = 0, r = i.length; s < r; s++) {\n                            const r = i[s];\n                            if (!r.isEmpty()) return !1;\n                            const a = r.getPosition(),\n                                l = t.getLineContent(a.lineNumber);\n                            if (l.charAt(a.column - 1) !== o) return !1;\n                            const c = (0, d.LN)(o);\n                            if (92 === (a.column > 2 ? l.charCodeAt(a.column - 2) : 0) && c) return !1;\n                            if (\"auto\" === e.autoClosingOvertype) {\n                                let e = !1;\n                                for (let t = 0, i = n.length; t < i; t++) {\n                                    const i = n[t];\n                                    if (a.lineNumber === i.startLineNumber && a.column === i.startColumn) {\n                                        e = !0;\n                                        break\n                                    }\n                                }\n                                if (!e) return !1\n                            }\n                        }\n                        return !0\n                    }\n                    static _runAutoClosingOvertype(e, t, i, n, o) {\n                        let r = [];\n                        for (let e = 0, t = n.length; e < t; e++) {\n                            const t = n[e].getPosition(),\n                                i = new a.e(t.lineNumber, t.column, t.lineNumber, t.column + 1);\n                            r[e] = new s.T4(i, o)\n                        }\n                        return new d.Tp(4, r, {\n                            shouldPushStackElementBefore: v(e, 4),\n                            shouldPushStackElementAfter: !1\n                        })\n                    }\n                    static _isBeforeClosingBrace(e, t) {\n                        const i = t.charAt(0),\n                            n = e.autoClosingPairs.autoClosingPairsOpenByStart.get(i) || [],\n                            o = e.autoClosingPairs.autoClosingPairsCloseByStart.get(i) || [],\n                            s = n.some((e => t.startsWith(e.open))),\n                            r = o.some((e => t.startsWith(e.close)));\n                        return !s && r\n                    }\n                    static _findAutoClosingPairOpen(e, t, i, n) {\n                        const o = e.autoClosingPairs.autoClosingPairsOpenByEnd.get(n);\n                        if (!o) return null;\n                        let s = null;\n                        for (const e of o)\n                            if (null === s || e.open.length > s.open.length) {\n                                let o = !0;\n                                for (const s of i) {\n                                    if (t.getValueInRange(new a.e(s.lineNumber, s.column - e.open.length + 1, s.lineNumber, s.column)) + n !== e.open) {\n                                        o = !1;\n                                        break\n                                    }\n                                }\n                                o && (s = e)\n                            } return s\n                    }\n                    static _findSubAutoClosingPairClose(e, t) {\n                        if (t.open.length <= 1) return \"\";\n                        const i = t.close.charAt(t.close.length - 1),\n                            n = e.autoClosingPairs.autoClosingPairsCloseByEnd.get(i) || [];\n                        let o = null;\n                        for (const e of n) e.open !== t.open && t.open.includes(e.open) && t.close.endsWith(e.close) && (!o || e.open.length > o.open.length) && (o = e);\n                        return o ? o.close : \"\"\n                    }\n                    static _getAutoClosingPairClose(e, t, i, o, s) {\n                        const r = (0, d.LN)(o),\n                            a = r ? e.autoClosingQuotes : e.autoClosingBrackets;\n                        if (\"never\" === a) return null;\n                        const l = this._findAutoClosingPairOpen(e, t, i.map((e => e.getPosition())), o);\n                        if (!l) return null;\n                        const c = this._findSubAutoClosingPairClose(e, l);\n                        let u = !0;\n                        const f = r ? e.shouldAutoCloseBefore.quote : e.shouldAutoCloseBefore.bracket;\n                        for (let r = 0, d = i.length; r < d; r++) {\n                            const d = i[r];\n                            if (!d.isEmpty()) return null;\n                            const m = d.getPosition(),\n                                v = t.getLineContent(m.lineNumber),\n                                _ = v.substring(m.column - 1);\n                            if (_.startsWith(c) || (u = !1), v.length > m.column - 1) {\n                                const t = v.charAt(m.column - 1);\n                                if (!p._isBeforeClosingBrace(e, _) && !f(t)) return null\n                            }\n                            if (!t.isCheapToTokenize(m.lineNumber)) return null;\n                            if (1 === l.open.length && (\"'\" === o || '\"' === o) && \"always\" !== a) {\n                                const t = (0, h.u)(e.wordSeparators);\n                                if (s && m.column > 1 && 0 === t.get(v.charCodeAt(m.column - 2))) return null;\n                                if (!s && m.column > 2 && 0 === t.get(v.charCodeAt(m.column - 3))) return null\n                            }\n                            t.forceTokenization(m.lineNumber);\n                            const b = t.getLineTokens(m.lineNumber);\n                            let w = !1;\n                            try {\n                                w = g.zu.shouldAutoClosePair(l, b, s ? m.column : m.column - 1)\n                            } catch (e) {\n                                (0, n.dL)(e)\n                            }\n                            if (!w) return null\n                        }\n                        return u ? l.close.substring(0, l.close.length - c.length) : l.close\n                    }\n                    static _runAutoClosingOpenCharType(e, t, i, n, o, s, r) {\n                        let a = [];\n                        for (let e = 0, t = n.length; e < t; e++) {\n                            const t = n[e];\n                            a[e] = new f(t, o, s, r)\n                        }\n                        return new d.Tp(4, a, {\n                            shouldPushStackElementBefore: !0,\n                            shouldPushStackElementAfter: !1\n                        })\n                    }\n                    static _shouldSurroundChar(e, t) {\n                        return (0, d.LN)(t) ? \"quotes\" === e.autoSurround || \"languageDefined\" === e.autoSurround : \"brackets\" === e.autoSurround || \"languageDefined\" === e.autoSurround\n                    }\n                    static _isSurroundSelectionType(e, t, i, n) {\n                        if (!p._shouldSurroundChar(e, n) || !e.surroundingPairs.hasOwnProperty(n)) return !1;\n                        const o = (0, d.LN)(n);\n                        for (let e = 0, n = i.length; e < n; e++) {\n                            const n = i[e];\n                            if (n.isEmpty()) return !1;\n                            let s = !0;\n                            for (let e = n.startLineNumber; e <= n.endLineNumber; e++) {\n                                const i = t.getLineContent(e),\n                                    o = e === n.startLineNumber ? n.startColumn - 1 : 0,\n                                    r = e === n.endLineNumber ? n.endColumn - 1 : i.length,\n                                    a = i.substring(o, r);\n                                if (/[^ \\t]/.test(a)) {\n                                    s = !1;\n                                    break\n                                }\n                            }\n                            if (s) return !1;\n                            if (o && n.startLineNumber === n.endLineNumber && n.startColumn + 1 === n.endColumn) {\n                                const e = t.getValueInRange(n);\n                                if ((0, d.LN)(e)) return !1\n                            }\n                        }\n                        return !0\n                    }\n                    static _runSurroundSelectionType(e, t, i, n, o) {\n                        let s = [];\n                        for (let e = 0, i = n.length; e < i; e++) {\n                            const i = n[e],\n                                r = t.surroundingPairs[o];\n                            s[e] = new c(i, o, r)\n                        }\n                        return new d.Tp(0, s, {\n                            shouldPushStackElementBefore: !0,\n                            shouldPushStackElementAfter: !0\n                        })\n                    }\n                    static _isTypeInterceptorElectricChar(e, t, i) {\n                        return !(1 !== i.length || !t.isCheapToTokenize(i[0].getEndPosition().lineNumber))\n                    }\n                    static _typeInterceptorElectricChar(e, t, i, r, l) {\n                        if (!t.electricChars.hasOwnProperty(l) || !r.isEmpty()) return null;\n                        let c = r.getPosition();\n                        i.forceTokenization(c.lineNumber);\n                        let h, u = i.getLineTokens(c.lineNumber);\n                        try {\n                            h = g.zu.onElectricCharacter(l, u, c.column)\n                        } catch (e) {\n                            return (0, n.dL)(e), null\n                        }\n                        if (!h) return null;\n                        if (h.matchOpenBracket) {\n                            let n = (u.getLineContent() + l).lastIndexOf(h.matchOpenBracket) + 1,\n                                r = i.findMatchingBracketUp(h.matchOpenBracket, {\n                                    lineNumber: c.lineNumber,\n                                    column: n\n                                });\n                            if (r) {\n                                if (r.startLineNumber === c.lineNumber) return null;\n                                let n = i.getLineContent(r.startLineNumber),\n                                    h = o.V8(n),\n                                    u = t.normalizeIndentation(h),\n                                    g = i.getLineContent(c.lineNumber),\n                                    p = i.getLineFirstNonWhitespaceColumn(c.lineNumber) || c.column,\n                                    f = u + g.substring(p - 1, c.column - 1) + l,\n                                    v = new a.e(c.lineNumber, 1, c.lineNumber, c.column);\n                                const _ = new s.T4(v, f);\n                                return new d.Tp(m(f, e), [_], {\n                                    shouldPushStackElementBefore: !1,\n                                    shouldPushStackElementAfter: !0\n                                })\n                            }\n                        }\n                        return null\n                    }\n                    static compositionEndWithInterceptors(e, t, i, n, o, r) {\n                        if (!n || l.Y.selectionsArrEqual(n, o)) return null;\n                        let c = null;\n                        for (const e of o) {\n                            if (!e.isEmpty()) return null;\n                            const t = e.getPosition(),\n                                n = i.getValueInRange(new a.e(t.lineNumber, t.column - 1, t.lineNumber, t.column));\n                            if (null === c) c = n;\n                            else if (c !== n) return null\n                        }\n                        if (!c) return null;\n                        if (this._isAutoClosingOvertype(t, i, o, r, c)) {\n                            const e = o.map((e => new s.T4(new a.e(e.positionLineNumber, e.positionColumn, e.positionLineNumber, e.positionColumn + 1), \"\", !1)));\n                            return new d.Tp(4, e, {\n                                shouldPushStackElementBefore: !0,\n                                shouldPushStackElementAfter: !1\n                            })\n                        }\n                        const h = this._getAutoClosingPairClose(t, i, o, c, !1);\n                        return null !== h ? this._runAutoClosingOpenCharType(e, t, i, o, c, !1, h) : null\n                    }\n                    static typeWithInterceptors(e, t, i, n, o, r, a) {\n                        if (!e && \"\\n\" === a) {\n                            let e = [];\n                            for (let t = 0, s = o.length; t < s; t++) e[t] = p._enter(i, n, !1, o[t]);\n                            return new d.Tp(4, e, {\n                                shouldPushStackElementBefore: !0,\n                                shouldPushStackElementAfter: !1\n                            })\n                        }\n                        if (!e && this._isAutoIndentType(i, n, o)) {\n                            let e = [],\n                                t = !1;\n                            for (let s = 0, r = o.length; s < r; s++)\n                                if (e[s] = this._runAutoIndentType(i, n, o[s], a), !e[s]) {\n                                    t = !0;\n                                    break\n                                } if (!t) return new d.Tp(4, e, {\n                                shouldPushStackElementBefore: !0,\n                                shouldPushStackElementAfter: !1\n                            })\n                        }\n                        if (!e && this._isAutoClosingOvertype(i, n, o, r, a)) return this._runAutoClosingOvertype(t, i, n, o, a);\n                        if (!e) {\n                            const e = this._getAutoClosingPairClose(i, n, o, a, !0);\n                            if (e) return this._runAutoClosingOpenCharType(t, i, n, o, a, !0, e)\n                        }\n                        if (this._isSurroundSelectionType(i, n, o, a)) return this._runSurroundSelectionType(t, i, n, o, a);\n                        if (!e && this._isTypeInterceptorElectricChar(i, n, o)) {\n                            const e = this._typeInterceptorElectricChar(t, i, n, o[0], a);\n                            if (e) return e\n                        }\n                        let l = [];\n                        for (let e = 0, t = o.length; e < t; e++) l[e] = new s.T4(o[e], a);\n                        const c = m(a, t);\n                        return new d.Tp(c, l, {\n                            shouldPushStackElementBefore: v(t, c),\n                            shouldPushStackElementAfter: !1\n                        })\n                    }\n                    static typeWithoutInterceptors(e, t, i, n, o) {\n                        let r = [];\n                        for (let e = 0, t = n.length; e < t; e++) r[e] = new s.T4(n[e], o);\n                        const a = m(o, e);\n                        return new d.Tp(a, r, {\n                            shouldPushStackElementBefore: v(e, a),\n                            shouldPushStackElementAfter: !1\n                        })\n                    }\n                    static lineInsertBefore(e, t, i) {\n                        if (null === t || null === i) return [];\n                        let n = [];\n                        for (let o = 0, r = i.length; o < r; o++) {\n                            let r = i[o].positionLineNumber;\n                            if (1 === r) n[o] = new s.Sj(new a.e(1, 1, 1, 1), \"\\n\");\n                            else {\n                                r--;\n                                let i = t.getLineMaxColumn(r);\n                                n[o] = this._enter(e, t, !1, new a.e(r, i, r, i))\n                            }\n                        }\n                        return n\n                    }\n                    static lineInsertAfter(e, t, i) {\n                        if (null === t || null === i) return [];\n                        let n = [];\n                        for (let o = 0, s = i.length; o < s; o++) {\n                            const s = i[o].positionLineNumber;\n                            let r = t.getLineMaxColumn(s);\n                            n[o] = this._enter(e, t, !1, new a.e(s, r, s, r))\n                        }\n                        return n\n                    }\n                    static lineBreakInsert(e, t, i) {\n                        let n = [];\n                        for (let o = 0, s = i.length; o < s; o++) n[o] = this._enter(e, t, !0, i[o]);\n                        return n\n                    }\n                }\n                class f extends s.Uo {\n                    constructor(e, t, i, n) {\n                        super(e, (i ? t : \"\") + n, 0, -n.length), this._openCharacter = t, this._closeCharacter = n, this.closeCharacterRange = null, this.enclosingRange = null\n                    }\n                    computeCursorState(e, t) {\n                        let i = t.getInverseEditOperations()[0].range;\n                        return this.closeCharacterRange = new a.e(i.startLineNumber, i.endColumn - this._closeCharacter.length, i.endLineNumber, i.endColumn), this.enclosingRange = new a.e(i.startLineNumber, i.endColumn - this._openCharacter.length - this._closeCharacter.length, i.endLineNumber, i.endColumn), super.computeCursorState(e, t)\n                    }\n                }\n\n                function m(e, t) {\n                    return \" \" === e ? 5 === t || 6 === t ? 6 : 5 : 4\n                }\n\n                function v(e, t) {\n                    return !(!b(e) || b(t)) || 5 !== e && _(e) !== _(t)\n                }\n\n                function _(e) {\n                    return 6 === e || 5 === e ? \"space\" : e\n                }\n\n                function b(e) {\n                    return 4 === e || 5 === e || 6 === e\n                }\n            },\n            5795: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    L: () => d,\n                    w: () => c\n                });\n                var n = i(97295),\n                    o = i(33181),\n                    s = i(31380),\n                    r = i(59410),\n                    a = i(50187),\n                    l = i(24314);\n                class c {\n                    static _createWord(e, t, i, n, o) {\n                        return {\n                            start: n,\n                            end: o,\n                            wordType: t,\n                            nextCharClass: i\n                        }\n                    }\n                    static _findPreviousWordOnLine(e, t, i) {\n                        let n = t.getLineContent(i.lineNumber);\n                        return this._doFindPreviousWordOnLine(n, e, i)\n                    }\n                    static _doFindPreviousWordOnLine(e, t, i) {\n                        let n = 0;\n                        for (let o = i.column - 2; o >= 0; o--) {\n                            let i = e.charCodeAt(o),\n                                s = t.get(i);\n                            if (0 === s) {\n                                if (2 === n) return this._createWord(e, n, s, o + 1, this._findEndOfWord(e, t, n, o + 1));\n                                n = 1\n                            } else if (2 === s) {\n                                if (1 === n) return this._createWord(e, n, s, o + 1, this._findEndOfWord(e, t, n, o + 1));\n                                n = 2\n                            } else if (1 === s && 0 !== n) return this._createWord(e, n, s, o + 1, this._findEndOfWord(e, t, n, o + 1))\n                        }\n                        return 0 !== n ? this._createWord(e, n, 1, 0, this._findEndOfWord(e, t, n, 0)) : null\n                    }\n                    static _findEndOfWord(e, t, i, n) {\n                        let o = e.length;\n                        for (let s = n; s < o; s++) {\n                            let n = e.charCodeAt(s),\n                                o = t.get(n);\n                            if (1 === o) return s;\n                            if (1 === i && 2 === o) return s;\n                            if (2 === i && 0 === o) return s\n                        }\n                        return o\n                    }\n                    static _findNextWordOnLine(e, t, i) {\n                        let n = t.getLineContent(i.lineNumber);\n                        return this._doFindNextWordOnLine(n, e, i)\n                    }\n                    static _doFindNextWordOnLine(e, t, i) {\n                        let n = 0,\n                            o = e.length;\n                        for (let s = i.column - 1; s < o; s++) {\n                            let i = e.charCodeAt(s),\n                                o = t.get(i);\n                            if (0 === o) {\n                                if (2 === n) return this._createWord(e, n, o, this._findStartOfWord(e, t, n, s - 1), s);\n                                n = 1\n                            } else if (2 === o) {\n                                if (1 === n) return this._createWord(e, n, o, this._findStartOfWord(e, t, n, s - 1), s);\n                                n = 2\n                            } else if (1 === o && 0 !== n) return this._createWord(e, n, o, this._findStartOfWord(e, t, n, s - 1), s)\n                        }\n                        return 0 !== n ? this._createWord(e, n, 1, this._findStartOfWord(e, t, n, o - 1), o) : null\n                    }\n                    static _findStartOfWord(e, t, i, n) {\n                        for (let o = n; o >= 0; o--) {\n                            let n = e.charCodeAt(o),\n                                s = t.get(n);\n                            if (1 === s) return o + 1;\n                            if (1 === i && 2 === s) return o + 1;\n                            if (2 === i && 0 === s) return o + 1\n                        }\n                        return 0\n                    }\n                    static moveWordLeft(e, t, i, n) {\n                        let o = i.lineNumber,\n                            s = i.column;\n                        1 === s && o > 1 && (o -= 1, s = t.getLineMaxColumn(o));\n                        let r = c._findPreviousWordOnLine(e, t, new a.L(o, s));\n                        if (0 === n) return new a.L(o, r ? r.start + 1 : 1);\n                        if (1 === n) return r && 2 === r.wordType && r.end - r.start == 1 && 0 === r.nextCharClass && (r = c._findPreviousWordOnLine(e, t, new a.L(o, r.start + 1))), new a.L(o, r ? r.start + 1 : 1);\n                        if (3 === n) {\n                            for (; r && 2 === r.wordType;) r = c._findPreviousWordOnLine(e, t, new a.L(o, r.start + 1));\n                            return new a.L(o, r ? r.start + 1 : 1)\n                        }\n                        return r && s <= r.end + 1 && (r = c._findPreviousWordOnLine(e, t, new a.L(o, r.start + 1))), new a.L(o, r ? r.end + 1 : 1)\n                    }\n                    static _moveWordPartLeft(e, t) {\n                        const i = t.lineNumber,\n                            o = e.getLineMaxColumn(i);\n                        if (1 === t.column) return i > 1 ? new a.L(i - 1, e.getLineMaxColumn(i - 1)) : t;\n                        const s = e.getLineContent(i);\n                        for (let e = t.column - 1; e > 1; e--) {\n                            const t = s.charCodeAt(e - 2),\n                                r = s.charCodeAt(e - 1);\n                            if (95 === t && 95 !== r) return new a.L(i, e);\n                            if (n.mK(t) && n.df(r)) return new a.L(i, e);\n                            if (n.df(t) && n.df(r) && e + 1 < o) {\n                                const t = s.charCodeAt(e);\n                                if (n.mK(t)) return new a.L(i, e)\n                            }\n                        }\n                        return new a.L(i, 1)\n                    }\n                    static moveWordRight(e, t, i, n) {\n                        let o = i.lineNumber,\n                            s = i.column,\n                            r = !1;\n                        s === t.getLineMaxColumn(o) && o < t.getLineCount() && (r = !0, o += 1, s = 1);\n                        let l = c._findNextWordOnLine(e, t, new a.L(o, s));\n                        if (2 === n) l && 2 === l.wordType && l.end - l.start == 1 && 0 === l.nextCharClass && (l = c._findNextWordOnLine(e, t, new a.L(o, l.end + 1))), s = l ? l.end + 1 : t.getLineMaxColumn(o);\n                        else if (3 === n) {\n                            for (r && (s = 0); l && (2 === l.wordType || l.start + 1 <= s);) l = c._findNextWordOnLine(e, t, new a.L(o, l.end + 1));\n                            s = l ? l.start + 1 : t.getLineMaxColumn(o)\n                        } else l && !r && s >= l.start + 1 && (l = c._findNextWordOnLine(e, t, new a.L(o, l.end + 1))), s = l ? l.start + 1 : t.getLineMaxColumn(o);\n                        return new a.L(o, s)\n                    }\n                    static _moveWordPartRight(e, t) {\n                        const i = t.lineNumber,\n                            o = e.getLineMaxColumn(i);\n                        if (t.column === o) return i < e.getLineCount() ? new a.L(i + 1, 1) : t;\n                        const s = e.getLineContent(i);\n                        for (let e = t.column + 1; e < o; e++) {\n                            const t = s.charCodeAt(e - 2),\n                                r = s.charCodeAt(e - 1);\n                            if (95 !== t && 95 === r) return new a.L(i, e);\n                            if (n.mK(t) && n.df(r)) return new a.L(i, e);\n                            if (n.df(t) && n.df(r) && e + 1 < o) {\n                                const t = s.charCodeAt(e);\n                                if (n.mK(t)) return new a.L(i, e)\n                            }\n                        }\n                        return new a.L(i, o)\n                    }\n                    static _deleteWordLeftWhitespace(e, t) {\n                        const i = e.getLineContent(t.lineNumber),\n                            o = t.column - 2,\n                            s = n.ow(i, o);\n                        return s + 1 < o ? new l.e(t.lineNumber, s + 2, t.lineNumber, t.column) : null\n                    }\n                    static deleteWordLeft(e, t) {\n                        const i = e.wordSeparators,\n                            n = e.model,\n                            o = e.selection,\n                            r = e.whitespaceHeuristics;\n                        if (!o.isEmpty()) return o;\n                        if (s.A.isAutoClosingPairDelete(e.autoClosingDelete, e.autoClosingBrackets, e.autoClosingQuotes, e.autoClosingPairs.autoClosingPairsOpenByEnd, e.model, [e.selection], e.autoClosedCharacters)) {\n                            const t = e.selection.getPosition();\n                            return new l.e(t.lineNumber, t.column - 1, t.lineNumber, t.column + 1)\n                        }\n                        const d = new a.L(o.positionLineNumber, o.positionColumn);\n                        let h = d.lineNumber,\n                            u = d.column;\n                        if (1 === h && 1 === u) return null;\n                        if (r) {\n                            let e = this._deleteWordLeftWhitespace(n, d);\n                            if (e) return e\n                        }\n                        let g = c._findPreviousWordOnLine(i, n, d);\n                        return 0 === t ? g ? u = g.start + 1 : u > 1 ? u = 1 : (h--, u = n.getLineMaxColumn(h)) : (g && u <= g.end + 1 && (g = c._findPreviousWordOnLine(i, n, new a.L(h, g.start + 1))), g ? u = g.end + 1 : u > 1 ? u = 1 : (h--, u = n.getLineMaxColumn(h))), new l.e(h, u, d.lineNumber, d.column)\n                    }\n                    static deleteInsideWord(e, t, i) {\n                        if (!i.isEmpty()) return i;\n                        const n = new a.L(i.positionLineNumber, i.positionColumn);\n                        let o = this._deleteInsideWordWhitespace(t, n);\n                        return o || this._deleteInsideWordDetermineDeleteRange(e, t, n)\n                    }\n                    static _charAtIsWhitespace(e, t) {\n                        const i = e.charCodeAt(t);\n                        return 32 === i || 9 === i\n                    }\n                    static _deleteInsideWordWhitespace(e, t) {\n                        const i = e.getLineContent(t.lineNumber),\n                            n = i.length;\n                        if (0 === n) return null;\n                        let o = Math.max(t.column - 2, 0);\n                        if (!this._charAtIsWhitespace(i, o)) return null;\n                        let s = Math.min(t.column - 1, n - 1);\n                        if (!this._charAtIsWhitespace(i, s)) return null;\n                        for (; o > 0 && this._charAtIsWhitespace(i, o - 1);) o--;\n                        for (; s + 1 < n && this._charAtIsWhitespace(i, s + 1);) s++;\n                        return new l.e(t.lineNumber, o + 1, t.lineNumber, s + 2)\n                    }\n                    static _deleteInsideWordDetermineDeleteRange(e, t, i) {\n                        const n = t.getLineContent(i.lineNumber),\n                            o = n.length;\n                        if (0 === o) return i.lineNumber > 1 ? new l.e(i.lineNumber - 1, t.getLineMaxColumn(i.lineNumber - 1), i.lineNumber, 1) : i.lineNumber < t.getLineCount() ? new l.e(i.lineNumber, 1, i.lineNumber + 1, 1) : new l.e(i.lineNumber, 1, i.lineNumber, 1);\n                        const s = e => e.start + 1 <= i.column && i.column <= e.end + 1,\n                            r = (e, t) => (e = Math.min(e, i.column), t = Math.max(t, i.column), new l.e(i.lineNumber, e, i.lineNumber, t)),\n                            a = e => {\n                                let t = e.start + 1,\n                                    i = e.end + 1,\n                                    s = !1;\n                                for (; i - 1 < o && this._charAtIsWhitespace(n, i - 1);) s = !0, i++;\n                                if (!s)\n                                    for (; t > 1 && this._charAtIsWhitespace(n, t - 2);) t--;\n                                return r(t, i)\n                            },\n                            d = c._findPreviousWordOnLine(e, t, i);\n                        if (d && s(d)) return a(d);\n                        const h = c._findNextWordOnLine(e, t, i);\n                        return h && s(h) ? a(h) : d && h ? r(d.end + 1, h.start + 1) : d ? r(d.start + 1, d.end + 1) : h ? r(h.start + 1, h.end + 1) : r(1, o + 1)\n                    }\n                    static _deleteWordPartLeft(e, t) {\n                        if (!t.isEmpty()) return t;\n                        const i = t.getPosition(),\n                            n = c._moveWordPartLeft(e, i);\n                        return new l.e(i.lineNumber, i.column, n.lineNumber, n.column)\n                    }\n                    static _findFirstNonWhitespaceChar(e, t) {\n                        let i = e.length;\n                        for (let n = t; n < i; n++) {\n                            let t = e.charAt(n);\n                            if (\" \" !== t && \"\\t\" !== t) return n\n                        }\n                        return i\n                    }\n                    static _deleteWordRightWhitespace(e, t) {\n                        const i = e.getLineContent(t.lineNumber),\n                            n = t.column - 1,\n                            o = this._findFirstNonWhitespaceChar(i, n);\n                        return n + 1 < o ? new l.e(t.lineNumber, t.column, t.lineNumber, o + 1) : null\n                    }\n                    static deleteWordRight(e, t) {\n                        const i = e.wordSeparators,\n                            n = e.model,\n                            o = e.selection,\n                            s = e.whitespaceHeuristics;\n                        if (!o.isEmpty()) return o;\n                        const r = new a.L(o.positionLineNumber, o.positionColumn);\n                        let d = r.lineNumber,\n                            h = r.column;\n                        const u = n.getLineCount(),\n                            g = n.getLineMaxColumn(d);\n                        if (d === u && h === g) return null;\n                        if (s) {\n                            let e = this._deleteWordRightWhitespace(n, r);\n                            if (e) return e\n                        }\n                        let p = c._findNextWordOnLine(i, n, r);\n                        return 2 === t ? p ? h = p.end + 1 : h < g || d === u ? h = g : (d++, p = c._findNextWordOnLine(i, n, new a.L(d, 1)), h = p ? p.start + 1 : n.getLineMaxColumn(d)) : (p && h >= p.start + 1 && (p = c._findNextWordOnLine(i, n, new a.L(d, p.end + 1))), p ? h = p.start + 1 : h < g || d === u ? h = g : (d++, p = c._findNextWordOnLine(i, n, new a.L(d, 1)), h = p ? p.start + 1 : n.getLineMaxColumn(d))), new l.e(d, h, r.lineNumber, r.column)\n                    }\n                    static _deleteWordPartRight(e, t) {\n                        if (!t.isEmpty()) return t;\n                        const i = t.getPosition(),\n                            n = c._moveWordPartRight(e, i);\n                        return new l.e(i.lineNumber, i.column, n.lineNumber, n.column)\n                    }\n                    static _createWordAtPosition(e, t, i) {\n                        const n = new l.e(t, i.start + 1, t, i.end + 1);\n                        return {\n                            word: e.getValueInRange(n),\n                            startColumn: n.startColumn,\n                            endColumn: n.endColumn\n                        }\n                    }\n                    static getWordAtPosition(e, t, i) {\n                        const n = (0, r.u)(t),\n                            o = c._findPreviousWordOnLine(n, e, i);\n                        if (o && 1 === o.wordType && o.start <= i.column - 1 && i.column - 1 <= o.end) return c._createWordAtPosition(e, i.lineNumber, o);\n                        const s = c._findNextWordOnLine(n, e, i);\n                        return s && 1 === s.wordType && s.start <= i.column - 1 && i.column - 1 <= s.end ? c._createWordAtPosition(e, i.lineNumber, s) : null\n                    }\n                    static word(e, t, i, n, s) {\n                        const d = (0, r.u)(e.wordSeparators);\n                        let h, u, g = c._findPreviousWordOnLine(d, t, s),\n                            p = c._findNextWordOnLine(d, t, s);\n                        if (!n) {\n                            let e, i;\n                            return g && 1 === g.wordType && g.start <= s.column - 1 && s.column - 1 <= g.end ? (e = g.start + 1, i = g.end + 1) : p && 1 === p.wordType && p.start <= s.column - 1 && s.column - 1 <= p.end ? (e = p.start + 1, i = p.end + 1) : (e = g ? g.end + 1 : 1, i = p ? p.start + 1 : t.getLineMaxColumn(s.lineNumber)), new o.rS(new l.e(s.lineNumber, e, s.lineNumber, i), 0, new a.L(s.lineNumber, i), 0)\n                        }\n                        g && 1 === g.wordType && g.start < s.column - 1 && s.column - 1 < g.end ? (h = g.start + 1, u = g.end + 1) : p && 1 === p.wordType && p.start < s.column - 1 && s.column - 1 < p.end ? (h = p.start + 1, u = p.end + 1) : (h = s.column, u = s.column);\n                        let f, m = s.lineNumber;\n                        if (i.selectionStart.containsPosition(s)) f = i.selectionStart.endColumn;\n                        else if (s.isBeforeOrEqual(i.selectionStart.getStartPosition())) {\n                            f = h;\n                            let e = new a.L(m, f);\n                            i.selectionStart.containsPosition(e) && (f = i.selectionStart.endColumn)\n                        } else {\n                            f = u;\n                            let e = new a.L(m, f);\n                            i.selectionStart.containsPosition(e) && (f = i.selectionStart.startColumn)\n                        }\n                        return i.move(!0, m, f, 0)\n                    }\n                }\n                class d extends c {\n                    static deleteWordPartLeft(e) {\n                        const t = h([c.deleteWordLeft(e, 0), c.deleteWordLeft(e, 2), c._deleteWordPartLeft(e.model, e.selection)]);\n                        return t.sort(l.e.compareRangesUsingEnds), t[2]\n                    }\n                    static deleteWordPartRight(e) {\n                        const t = h([c.deleteWordRight(e, 0), c.deleteWordRight(e, 2), c._deleteWordPartRight(e.model, e.selection)]);\n                        return t.sort(l.e.compareRangesUsingStarts), t[0]\n                    }\n                    static moveWordPartLeft(e, t, i) {\n                        const n = h([c.moveWordLeft(e, t, i, 0), c.moveWordLeft(e, t, i, 2), c._moveWordPartLeft(t, i)]);\n                        return n.sort(a.L.compare), n[2]\n                    }\n                    static moveWordPartRight(e, t, i) {\n                        const n = h([c.moveWordRight(e, t, i, 0), c.moveWordRight(e, t, i, 2), c._moveWordPartRight(t, i)]);\n                        return n.sort(a.L.compare), n[0]\n                    }\n                }\n\n                function h(e) {\n                    return e.filter((e => Boolean(e)))\n                }\n            },\n            59410: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    u: () => s\n                });\n                var n = i(44906);\n                class o extends n.N {\n                    constructor(e) {\n                        super(0);\n                        for (let t = 0, i = e.length; t < i; t++) this.set(e.charCodeAt(t), 2);\n                        this.set(32, 1), this.set(9, 1)\n                    }\n                }\n                const s = function(e) {\n                    let t = {};\n                    return i => (t.hasOwnProperty(i) || (t[i] = e(i)), t[i])\n                }((e => new o(e)))\n            },\n            44906: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    N: () => o,\n                    q: () => s\n                });\n                var n = i(85427);\n                class o {\n                    constructor(e) {\n                        let t = (0, n.K)(e);\n                        this._defaultValue = t, this._asciiMap = o._createAsciiMap(t), this._map = new Map\n                    }\n                    static _createAsciiMap(e) {\n                        let t = new Uint8Array(256);\n                        for (let i = 0; i < 256; i++) t[i] = e;\n                        return t\n                    }\n                    set(e, t) {\n                        let i = (0, n.K)(t);\n                        e >= 0 && e < 256 ? this._asciiMap[e] = i : this._map.set(e, i)\n                    }\n                    get(e) {\n                        return e >= 0 && e < 256 ? this._asciiMap[e] : this._map.get(e) || this._defaultValue\n                    }\n                }\n                class s {\n                    constructor() {\n                        this._actual = new o(0)\n                    }\n                    add(e) {\n                        this._actual.set(e, 1)\n                    }\n                    has(e) {\n                        return 1 === this._actual.get(e)\n                    }\n                }\n            },\n            69386: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    h: () => o\n                });\n                var n = i(24314);\n                class o {\n                    static insert(e, t) {\n                        return {\n                            range: new n.e(e.lineNumber, e.column, e.lineNumber, e.column),\n                            text: t,\n                            forceMoveMarkers: !0\n                        }\n                    }\n                    static delete(e) {\n                        return {\n                            range: e,\n                            text: null\n                        }\n                    }\n                    static replace(e, t) {\n                        return {\n                            range: e,\n                            text: t\n                        }\n                    }\n                    static replaceMove(e, t) {\n                        return {\n                            range: e,\n                            text: t,\n                            forceMoveMarkers: !0\n                        }\n                    }\n                }\n            },\n            78411: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    A: () => o\n                });\n                var n = i(44101);\n                class o {\n                    constructor(e, t, i) {\n                        this._lineTokensBrand = void 0, this._tokens = e, this._tokensCount = this._tokens.length >>> 1, this._text = t, this._languageIdCodec = i\n                    }\n                    static createEmpty(e, t) {\n                        const i = o.defaultTokenMetadata,\n                            n = new Uint32Array(2);\n                        return n[0] = e.length, n[1] = i, new o(n, e, t)\n                    }\n                    equals(e) {\n                        return e instanceof o && this.slicedEquals(e, 0, this._tokensCount)\n                    }\n                    slicedEquals(e, t, i) {\n                        if (this._text !== e._text) return !1;\n                        if (this._tokensCount !== e._tokensCount) return !1;\n                        const n = t << 1,\n                            o = n + (i << 1);\n                        for (let t = n; t < o; t++)\n                            if (this._tokens[t] !== e._tokens[t]) return !1;\n                        return !0\n                    }\n                    getLineContent() {\n                        return this._text\n                    }\n                    getCount() {\n                        return this._tokensCount\n                    }\n                    getStartOffset(e) {\n                        return e > 0 ? this._tokens[e - 1 << 1] : 0\n                    }\n                    getMetadata(e) {\n                        return this._tokens[1 + (e << 1)]\n                    }\n                    getLanguageId(e) {\n                        const t = this._tokens[1 + (e << 1)],\n                            i = n.NX.getLanguageId(t);\n                        return this._languageIdCodec.decodeLanguageId(i)\n                    }\n                    getStandardTokenType(e) {\n                        const t = this._tokens[1 + (e << 1)];\n                        return n.NX.getTokenType(t)\n                    }\n                    getForeground(e) {\n                        const t = this._tokens[1 + (e << 1)];\n                        return n.NX.getForeground(t)\n                    }\n                    getClassName(e) {\n                        const t = this._tokens[1 + (e << 1)];\n                        return n.NX.getClassNameFromMetadata(t)\n                    }\n                    getInlineStyle(e, t) {\n                        const i = this._tokens[1 + (e << 1)];\n                        return n.NX.getInlineStyleFromMetadata(i, t)\n                    }\n                    getEndOffset(e) {\n                        return this._tokens[e << 1]\n                    }\n                    findTokenIndexAtOffset(e) {\n                        return o.findIndexInTokensArray(this._tokens, e)\n                    }\n                    inflate() {\n                        return this\n                    }\n                    sliceAndInflate(e, t, i) {\n                        return new s(this, e, t, i)\n                    }\n                    static convertToEndOffset(e, t) {\n                        const i = (e.length >>> 1) - 1;\n                        for (let t = 0; t < i; t++) e[t << 1] = e[t + 1 << 1];\n                        e[i << 1] = t\n                    }\n                    static findIndexInTokensArray(e, t) {\n                        if (e.length <= 2) return 0;\n                        let i = 0,\n                            n = (e.length >>> 1) - 1;\n                        for (; i < n;) {\n                            const o = i + Math.floor((n - i) / 2),\n                                s = e[o << 1];\n                            if (s === t) return o + 1;\n                            s < t ? i = o + 1 : s > t && (n = o)\n                        }\n                        return i\n                    }\n                    withInserted(e) {\n                        if (0 === e.length) return this;\n                        let t = 0,\n                            i = 0,\n                            n = \"\";\n                        const s = new Array;\n                        let r = 0;\n                        for (;;) {\n                            let o = t < this._tokensCount ? this._tokens[t << 1] : -1,\n                                a = i < e.length ? e[i] : null;\n                            if (-1 !== o && (null === a || o <= a.offset)) {\n                                n += this._text.substring(r, o);\n                                const e = this._tokens[1 + (t << 1)];\n                                s.push(n.length, e), t++, r = o\n                            } else {\n                                if (!a) break;\n                                if (a.offset > r) {\n                                    n += this._text.substring(r, a.offset);\n                                    const e = this._tokens[1 + (t << 1)];\n                                    s.push(n.length, e), r = a.offset\n                                }\n                                n += a.text, s.push(n.length, a.tokenMetadata), i++\n                            }\n                        }\n                        return new o(new Uint32Array(s), n, this._languageIdCodec)\n                    }\n                }\n                o.defaultTokenMetadata = 16793600;\n                class s {\n                    constructor(e, t, i, n) {\n                        this._source = e, this._startOffset = t, this._endOffset = i, this._deltaOffset = n, this._firstTokenIndex = e.findTokenIndexAtOffset(t), this._tokensCount = 0;\n                        for (let t = this._firstTokenIndex, n = e.getCount(); t < n; t++) {\n                            if (e.getStartOffset(t) >= i) break;\n                            this._tokensCount++\n                        }\n                    }\n                    equals(e) {\n                        return e instanceof s && (this._startOffset === e._startOffset && this._endOffset === e._endOffset && this._deltaOffset === e._deltaOffset && this._source.slicedEquals(e._source, this._firstTokenIndex, this._tokensCount))\n                    }\n                    getCount() {\n                        return this._tokensCount\n                    }\n                    getForeground(e) {\n                        return this._source.getForeground(this._firstTokenIndex + e)\n                    }\n                    getEndOffset(e) {\n                        const t = this._source.getEndOffset(this._firstTokenIndex + e);\n                        return Math.min(this._endOffset, t) - this._startOffset + this._deltaOffset\n                    }\n                    getClassName(e) {\n                        return this._source.getClassName(this._firstTokenIndex + e)\n                    }\n                    getInlineStyle(e, t) {\n                        return this._source.getInlineStyle(this._firstTokenIndex + e, t)\n                    }\n                    findTokenIndexAtOffset(e) {\n                        return this._source.findTokenIndexAtOffset(e + this._startOffset - this._deltaOffset) - this._firstTokenIndex\n                    }\n                }\n            },\n            50187: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    L: () => n\n                });\n                class n {\n                    constructor(e, t) {\n                        this.lineNumber = e, this.column = t\n                    }\n                    with(e = this.lineNumber, t = this.column) {\n                        return e === this.lineNumber && t === this.column ? this : new n(e, t)\n                    }\n                    delta(e = 0, t = 0) {\n                        return this.with(this.lineNumber + e, this.column + t)\n                    }\n                    equals(e) {\n                        return n.equals(this, e)\n                    }\n                    static equals(e, t) {\n                        return !e && !t || !!e && !!t && e.lineNumber === t.lineNumber && e.column === t.column\n                    }\n                    isBefore(e) {\n                        return n.isBefore(this, e)\n                    }\n                    static isBefore(e, t) {\n                        return e.lineNumber < t.lineNumber || !(t.lineNumber < e.lineNumber) && e.column < t.column\n                    }\n                    isBeforeOrEqual(e) {\n                        return n.isBeforeOrEqual(this, e)\n                    }\n                    static isBeforeOrEqual(e, t) {\n                        return e.lineNumber < t.lineNumber || !(t.lineNumber < e.lineNumber) && e.column <= t.column\n                    }\n                    static compare(e, t) {\n                        let i = 0 | e.lineNumber,\n                            n = 0 | t.lineNumber;\n                        if (i === n) {\n                            return (0 | e.column) - (0 | t.column)\n                        }\n                        return i - n\n                    }\n                    clone() {\n                        return new n(this.lineNumber, this.column)\n                    }\n                    toString() {\n                        return \"(\" + this.lineNumber + \",\" + this.column + \")\"\n                    }\n                    static lift(e) {\n                        return new n(e.lineNumber, e.column)\n                    }\n                    static isIPosition(e) {\n                        return e && \"number\" == typeof e.lineNumber && \"number\" == typeof e.column\n                    }\n                }\n            },\n            24314: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    e: () => o\n                });\n                var n = i(50187);\n                class o {\n                    constructor(e, t, i, n) {\n                        e > i || e === i && t > n ? (this.startLineNumber = i, this.startColumn = n, this.endLineNumber = e, this.endColumn = t) : (this.startLineNumber = e, this.startColumn = t, this.endLineNumber = i, this.endColumn = n)\n                    }\n                    isEmpty() {\n                        return o.isEmpty(this)\n                    }\n                    static isEmpty(e) {\n                        return e.startLineNumber === e.endLineNumber && e.startColumn === e.endColumn\n                    }\n                    containsPosition(e) {\n                        return o.containsPosition(this, e)\n                    }\n                    static containsPosition(e, t) {\n                        return !(t.lineNumber < e.startLineNumber || t.lineNumber > e.endLineNumber) && (!(t.lineNumber === e.startLineNumber && t.column < e.startColumn) && !(t.lineNumber === e.endLineNumber && t.column > e.endColumn))\n                    }\n                    containsRange(e) {\n                        return o.containsRange(this, e)\n                    }\n                    static containsRange(e, t) {\n                        return !(t.startLineNumber < e.startLineNumber || t.endLineNumber < e.startLineNumber) && (!(t.startLineNumber > e.endLineNumber || t.endLineNumber > e.endLineNumber) && (!(t.startLineNumber === e.startLineNumber && t.startColumn < e.startColumn) && !(t.endLineNumber === e.endLineNumber && t.endColumn > e.endColumn)))\n                    }\n                    strictContainsRange(e) {\n                        return o.strictContainsRange(this, e)\n                    }\n                    static strictContainsRange(e, t) {\n                        return !(t.startLineNumber < e.startLineNumber || t.endLineNumber < e.startLineNumber) && (!(t.startLineNumber > e.endLineNumber || t.endLineNumber > e.endLineNumber) && (!(t.startLineNumber === e.startLineNumber && t.startColumn <= e.startColumn) && !(t.endLineNumber === e.endLineNumber && t.endColumn >= e.endColumn)))\n                    }\n                    plusRange(e) {\n                        return o.plusRange(this, e)\n                    }\n                    static plusRange(e, t) {\n                        let i, n, s, r;\n                        return t.startLineNumber < e.startLineNumber ? (i = t.startLineNumber, n = t.startColumn) : t.startLineNumber === e.startLineNumber ? (i = t.startLineNumber, n = Math.min(t.startColumn, e.startColumn)) : (i = e.startLineNumber, n = e.startColumn), t.endLineNumber > e.endLineNumber ? (s = t.endLineNumber, r = t.endColumn) : t.endLineNumber === e.endLineNumber ? (s = t.endLineNumber, r = Math.max(t.endColumn, e.endColumn)) : (s = e.endLineNumber, r = e.endColumn), new o(i, n, s, r)\n                    }\n                    intersectRanges(e) {\n                        return o.intersectRanges(this, e)\n                    }\n                    static intersectRanges(e, t) {\n                        let i = e.startLineNumber,\n                            n = e.startColumn,\n                            s = e.endLineNumber,\n                            r = e.endColumn,\n                            a = t.startLineNumber,\n                            l = t.startColumn,\n                            c = t.endLineNumber,\n                            d = t.endColumn;\n                        return i < a ? (i = a, n = l) : i === a && (n = Math.max(n, l)), s > c ? (s = c, r = d) : s === c && (r = Math.min(r, d)), i > s || i === s && n > r ? null : new o(i, n, s, r)\n                    }\n                    equalsRange(e) {\n                        return o.equalsRange(this, e)\n                    }\n                    static equalsRange(e, t) {\n                        return !!e && !!t && e.startLineNumber === t.startLineNumber && e.startColumn === t.startColumn && e.endLineNumber === t.endLineNumber && e.endColumn === t.endColumn\n                    }\n                    getEndPosition() {\n                        return o.getEndPosition(this)\n                    }\n                    static getEndPosition(e) {\n                        return new n.L(e.endLineNumber, e.endColumn)\n                    }\n                    getStartPosition() {\n                        return o.getStartPosition(this)\n                    }\n                    static getStartPosition(e) {\n                        return new n.L(e.startLineNumber, e.startColumn)\n                    }\n                    toString() {\n                        return \"[\" + this.startLineNumber + \",\" + this.startColumn + \" -> \" + this.endLineNumber + \",\" + this.endColumn + \"]\"\n                    }\n                    setEndPosition(e, t) {\n                        return new o(this.startLineNumber, this.startColumn, e, t)\n                    }\n                    setStartPosition(e, t) {\n                        return new o(e, t, this.endLineNumber, this.endColumn)\n                    }\n                    collapseToStart() {\n                        return o.collapseToStart(this)\n                    }\n                    static collapseToStart(e) {\n                        return new o(e.startLineNumber, e.startColumn, e.startLineNumber, e.startColumn)\n                    }\n                    static fromPositions(e, t = e) {\n                        return new o(e.lineNumber, e.column, t.lineNumber, t.column)\n                    }\n                    static lift(e) {\n                        return e ? new o(e.startLineNumber, e.startColumn, e.endLineNumber, e.endColumn) : null\n                    }\n                    static isIRange(e) {\n                        return e && \"number\" == typeof e.startLineNumber && \"number\" == typeof e.startColumn && \"number\" == typeof e.endLineNumber && \"number\" == typeof e.endColumn\n                    }\n                    static areIntersectingOrTouching(e, t) {\n                        return !(e.endLineNumber < t.startLineNumber || e.endLineNumber === t.startLineNumber && e.endColumn < t.startColumn) && !(t.endLineNumber < e.startLineNumber || t.endLineNumber === e.startLineNumber && t.endColumn < e.startColumn)\n                    }\n                    static areIntersecting(e, t) {\n                        return !(e.endLineNumber < t.startLineNumber || e.endLineNumber === t.startLineNumber && e.endColumn <= t.startColumn) && !(t.endLineNumber < e.startLineNumber || t.endLineNumber === e.startLineNumber && t.endColumn <= e.startColumn)\n                    }\n                    static compareRangesUsingStarts(e, t) {\n                        if (e && t) {\n                            const i = 0 | e.startLineNumber,\n                                n = 0 | t.startLineNumber;\n                            if (i === n) {\n                                const i = 0 | e.startColumn,\n                                    n = 0 | t.startColumn;\n                                if (i === n) {\n                                    const i = 0 | e.endLineNumber,\n                                        n = 0 | t.endLineNumber;\n                                    if (i === n) {\n                                        return (0 | e.endColumn) - (0 | t.endColumn)\n                                    }\n                                    return i - n\n                                }\n                                return i - n\n                            }\n                            return i - n\n                        }\n                        return (e ? 1 : 0) - (t ? 1 : 0)\n                    }\n                    static compareRangesUsingEnds(e, t) {\n                        return e.endLineNumber === t.endLineNumber ? e.endColumn === t.endColumn ? e.startLineNumber === t.startLineNumber ? e.startColumn - t.startColumn : e.startLineNumber - t.startLineNumber : e.endColumn - t.endColumn : e.endLineNumber - t.endLineNumber\n                    }\n                    static spansMultipleLines(e) {\n                        return e.endLineNumber > e.startLineNumber\n                    }\n                }\n            },\n            3860: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    Y: () => s\n                });\n                var n = i(50187),\n                    o = i(24314);\n                class s extends o.e {\n                    constructor(e, t, i, n) {\n                        super(e, t, i, n), this.selectionStartLineNumber = e, this.selectionStartColumn = t, this.positionLineNumber = i, this.positionColumn = n\n                    }\n                    toString() {\n                        return \"[\" + this.selectionStartLineNumber + \",\" + this.selectionStartColumn + \" -> \" + this.positionLineNumber + \",\" + this.positionColumn + \"]\"\n                    }\n                    equalsSelection(e) {\n                        return s.selectionsEqual(this, e)\n                    }\n                    static selectionsEqual(e, t) {\n                        return e.selectionStartLineNumber === t.selectionStartLineNumber && e.selectionStartColumn === t.selectionStartColumn && e.positionLineNumber === t.positionLineNumber && e.positionColumn === t.positionColumn\n                    }\n                    getDirection() {\n                        return this.selectionStartLineNumber === this.startLineNumber && this.selectionStartColumn === this.startColumn ? 0 : 1\n                    }\n                    setEndPosition(e, t) {\n                        return 0 === this.getDirection() ? new s(this.startLineNumber, this.startColumn, e, t) : new s(e, t, this.startLineNumber, this.startColumn)\n                    }\n                    getPosition() {\n                        return new n.L(this.positionLineNumber, this.positionColumn)\n                    }\n                    setStartPosition(e, t) {\n                        return 0 === this.getDirection() ? new s(e, t, this.endLineNumber, this.endColumn) : new s(this.endLineNumber, this.endColumn, e, t)\n                    }\n                    static fromPositions(e, t = e) {\n                        return new s(e.lineNumber, e.column, t.lineNumber, t.column)\n                    }\n                    static liftSelection(e) {\n                        return new s(e.selectionStartLineNumber, e.selectionStartColumn, e.positionLineNumber, e.positionColumn)\n                    }\n                    static selectionsArrEqual(e, t) {\n                        if (e && !t || !e && t) return !1;\n                        if (!e && !t) return !0;\n                        if (e.length !== t.length) return !1;\n                        for (let i = 0, n = e.length; i < n; i++)\n                            if (!this.selectionsEqual(e[i], t[i])) return !1;\n                        return !0\n                    }\n                    static isISelection(e) {\n                        return e && \"number\" == typeof e.selectionStartLineNumber && \"number\" == typeof e.selectionStartColumn && \"number\" == typeof e.positionLineNumber && \"number\" == typeof e.positionColumn\n                    }\n                    static createWithDirection(e, t, i, n, o) {\n                        return 0 === o ? new s(e, t, i, n) : new s(i, n, e, t)\n                    }\n                }\n            },\n            50072: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    kH: () => g,\n                    l$: () => u,\n                    lZ: () => h,\n                    oe: () => d\n                });\n                var n = i(97295),\n                    o = i(1432),\n                    s = i(53060);\n                let r, a, l;\n\n                function c() {\n                    return r || (r = new TextDecoder(\"UTF-16LE\")), r\n                }\n\n                function d() {\n                    return l || (l = o.r() ? c() : (a || (a = new TextDecoder(\"UTF-16BE\")), a)), l\n                }\n                const h = \"undefined\" != typeof TextDecoder;\n                let u, g;\n\n                function p(e, t, i) {\n                    let n = [],\n                        o = 0;\n                    for (let r = 0; r < i; r++) {\n                        const i = s.mP(e, t);\n                        t += 2, n[o++] = String.fromCharCode(i)\n                    }\n                    return n.join(\"\")\n                }\n                h ? (u = e => new f(e), g = function(e, t, i) {\n                    const n = new Uint16Array(e.buffer, t, i);\n                    if (i > 0 && (65279 === n[0] || 65534 === n[0])) return p(e, t, i);\n                    return c().decode(n)\n                }) : (u = e => new m, g = p);\n                class f {\n                    constructor(e) {\n                        this._capacity = 0 | e, this._buffer = new Uint16Array(this._capacity), this._completedStrings = null, this._bufferLength = 0\n                    }\n                    reset() {\n                        this._completedStrings = null, this._bufferLength = 0\n                    }\n                    build() {\n                        return null !== this._completedStrings ? (this._flushBuffer(), this._completedStrings.join(\"\")) : this._buildBuffer()\n                    }\n                    _buildBuffer() {\n                        if (0 === this._bufferLength) return \"\";\n                        const e = new Uint16Array(this._buffer.buffer, 0, this._bufferLength);\n                        return d().decode(e)\n                    }\n                    _flushBuffer() {\n                        const e = this._buildBuffer();\n                        this._bufferLength = 0, null === this._completedStrings ? this._completedStrings = [e] : this._completedStrings[this._completedStrings.length] = e\n                    }\n                    write1(e) {\n                        const t = this._capacity - this._bufferLength;\n                        t <= 1 && (0 === t || n.ZG(e)) && this._flushBuffer(), this._buffer[this._bufferLength++] = e\n                    }\n                    appendASCII(e) {\n                        this._bufferLength === this._capacity && this._flushBuffer(), this._buffer[this._bufferLength++] = e\n                    }\n                    appendASCIIString(e) {\n                        const t = e.length;\n                        if (this._bufferLength + t >= this._capacity) return this._flushBuffer(), void(this._completedStrings[this._completedStrings.length] = e);\n                        for (let i = 0; i < t; i++) this._buffer[this._bufferLength++] = e.charCodeAt(i)\n                    }\n                }\n                class m {\n                    constructor() {\n                        this._pieces = [], this._piecesLen = 0\n                    }\n                    reset() {\n                        this._pieces = [], this._piecesLen = 0\n                    }\n                    build() {\n                        return this._pieces.join(\"\")\n                    }\n                    write1(e) {\n                        this._pieces[this._piecesLen++] = String.fromCharCode(e)\n                    }\n                    appendASCII(e) {\n                        this._pieces[this._piecesLen++] = String.fromCharCode(e)\n                    }\n                    appendASCIIString(e) {\n                        this._pieces[this._piecesLen++] = e\n                    }\n                }\n            },\n            85600: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    Hi: () => s,\n                    WU: () => n,\n                    hG: () => o\n                });\n                class n {\n                    constructor(e, t, i) {\n                        this._tokenBrand = void 0, this.offset = 0 | e, this.type = t, this.language = i\n                    }\n                    toString() {\n                        return \"(\" + this.offset + \", \" + this.type + \")\"\n                    }\n                }\n                class o {\n                    constructor(e, t) {\n                        this._tokenizationResultBrand = void 0, this.tokens = e, this.endState = t\n                    }\n                }\n                class s {\n                    constructor(e, t) {\n                        this._tokenizationResult2Brand = void 0, this.tokens = e, this.endState = t\n                    }\n                }\n            },\n            30653: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    p: () => n\n                });\n                class n {\n                    constructor(e, t, i, n, o, s) {\n                        this.id = e, this.label = t, this.alias = i, this._precondition = n, this._run = o, this._contextKeyService = s\n                    }\n                    isSupported() {\n                        return this._contextKeyService.contextMatchesRules(this._precondition)\n                    }\n                    run() {\n                        return this.isSupported() ? this._run() : Promise.resolve(void 0)\n                    }\n                }\n            },\n            96518: (e, t, i) => {\n                \"use strict\";\n\n                function n(e) {\n                    return e && \"string\" == typeof e.id\n                }\n                i.d(t, {\n                    I: () => n,\n                    g: () => o\n                });\n                const o = {\n                    ICodeEditor: \"vs.editor.ICodeEditor\",\n                    IDiffEditor: \"vs.editor.IDiffEditor\"\n                }\n            },\n            29102: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    u: () => n\n                });\n                var n, o = i(63580),\n                    s = i(38819);\n                ! function(e) {\n                    e.editorSimpleInput = new s.uy(\"editorSimpleInput\", !1, !0), e.editorTextFocus = new s.uy(\"editorTextFocus\", !1, o.N(\"editorTextFocus\", \"Whether the editor text has focus (cursor is blinking)\")), e.focus = new s.uy(\"editorFocus\", !1, o.N(\"editorFocus\", \"Whether the editor or an editor widget has focus (e.g. focus is in the find widget)\")), e.textInputFocus = new s.uy(\"textInputFocus\", !1, o.N(\"textInputFocus\", \"Whether an editor or a rich text input has focus (cursor is blinking)\")), e.readOnly = new s.uy(\"editorReadonly\", !1, o.N(\"editorReadonly\", \"Whether the editor is read only\")), e.inDiffEditor = new s.uy(\"inDiffEditor\", !1, o.N(\"inDiffEditor\", \"Whether the context is a diff editor\")), e.columnSelection = new s.uy(\"editorColumnSelection\", !1, o.N(\"editorColumnSelection\", \"Whether `editor.columnSelection` is enabled\")), e.writable = e.readOnly.toNegated(), e.hasNonEmptySelection = new s.uy(\"editorHasSelection\", !1, o.N(\"editorHasSelection\", \"Whether the editor has text selected\")), e.hasOnlyEmptySelection = e.hasNonEmptySelection.toNegated(), e.hasMultipleSelections = new s.uy(\"editorHasMultipleSelections\", !1, o.N(\"editorHasMultipleSelections\", \"Whether the editor has multiple selections\")), e.hasSingleSelection = e.hasMultipleSelections.toNegated(), e.tabMovesFocus = new s.uy(\"editorTabMovesFocus\", !1, o.N(\"editorTabMovesFocus\", \"Whether `Tab` will move focus out of the editor\")), e.tabDoesNotMoveFocus = e.tabMovesFocus.toNegated(), e.isInWalkThroughSnippet = new s.uy(\"isInEmbeddedEditor\", !1, !0), e.canUndo = new s.uy(\"canUndo\", !1, !0), e.canRedo = new s.uy(\"canRedo\", !1, !0), e.hoverVisible = new s.uy(\"editorHoverVisible\", !1, o.N(\"editorHoverVisible\", \"Whether the editor hover is visible\")), e.inCompositeEditor = new s.uy(\"inCompositeEditor\", void 0, o.N(\"inCompositeEditor\", \"Whether the editor is part of a larger editor (e.g. notebooks)\")), e.notInCompositeEditor = e.inCompositeEditor.toNegated(), e.languageId = new s.uy(\"editorLangId\", \"\", o.N(\"editorLangId\", \"The language identifier of the editor\")), e.hasCompletionItemProvider = new s.uy(\"editorHasCompletionItemProvider\", !1, o.N(\"editorHasCompletionItemProvider\", \"Whether the editor has a completion item provider\")), e.hasCodeActionsProvider = new s.uy(\"editorHasCodeActionsProvider\", !1, o.N(\"editorHasCodeActionsProvider\", \"Whether the editor has a code actions provider\")), e.hasCodeLensProvider = new s.uy(\"editorHasCodeLensProvider\", !1, o.N(\"editorHasCodeLensProvider\", \"Whether the editor has a code lens provider\")), e.hasDefinitionProvider = new s.uy(\"editorHasDefinitionProvider\", !1, o.N(\"editorHasDefinitionProvider\", \"Whether the editor has a definition provider\")), e.hasDeclarationProvider = new s.uy(\"editorHasDeclarationProvider\", !1, o.N(\"editorHasDeclarationProvider\", \"Whether the editor has a declaration provider\")), e.hasImplementationProvider = new s.uy(\"editorHasImplementationProvider\", !1, o.N(\"editorHasImplementationProvider\", \"Whether the editor has an implementation provider\")), e.hasTypeDefinitionProvider = new s.uy(\"editorHasTypeDefinitionProvider\", !1, o.N(\"editorHasTypeDefinitionProvider\", \"Whether the editor has a type definition provider\")), e.hasHoverProvider = new s.uy(\"editorHasHoverProvider\", !1, o.N(\"editorHasHoverProvider\", \"Whether the editor has a hover provider\")), e.hasDocumentHighlightProvider = new s.uy(\"editorHasDocumentHighlightProvider\", !1, o.N(\"editorHasDocumentHighlightProvider\", \"Whether the editor has a document highlight provider\")), e.hasDocumentSymbolProvider = new s.uy(\"editorHasDocumentSymbolProvider\", !1, o.N(\"editorHasDocumentSymbolProvider\", \"Whether the editor has a document symbol provider\")), e.hasReferenceProvider = new s.uy(\"editorHasReferenceProvider\", !1, o.N(\"editorHasReferenceProvider\", \"Whether the editor has a reference provider\")), e.hasRenameProvider = new s.uy(\"editorHasRenameProvider\", !1, o.N(\"editorHasRenameProvider\", \"Whether the editor has a rename provider\")), e.hasSignatureHelpProvider = new s.uy(\"editorHasSignatureHelpProvider\", !1, o.N(\"editorHasSignatureHelpProvider\", \"Whether the editor has a signature help provider\")), e.hasInlayHintsProvider = new s.uy(\"editorHasInlayHintsProvider\", !1, o.N(\"editorHasInlayHintsProvider\", \"Whether the editor has an inline hints provider\")), e.hasDocumentFormattingProvider = new s.uy(\"editorHasDocumentFormattingProvider\", !1, o.N(\"editorHasDocumentFormattingProvider\", \"Whether the editor has a document formatting provider\")), e.hasDocumentSelectionFormattingProvider = new s.uy(\"editorHasDocumentSelectionFormattingProvider\", !1, o.N(\"editorHasDocumentSelectionFormattingProvider\", \"Whether the editor has a document selection formatting provider\")), e.hasMultipleDocumentFormattingProvider = new s.uy(\"editorHasMultipleDocumentFormattingProvider\", !1, o.N(\"editorHasMultipleDocumentFormattingProvider\", \"Whether the editor has multiple document formatting providers\")), e.hasMultipleDocumentSelectionFormattingProvider = new s.uy(\"editorHasMultipleDocumentSelectionFormattingProvider\", !1, o.N(\"editorHasMultipleDocumentSelectionFormattingProvider\", \"Whether the editor has multiple document selection formatting providers\"))\n                }(n || (n = {}))\n            },\n            84973: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    F5: () => o,\n                    Qi: () => h,\n                    UO: () => c,\n                    dJ: () => a,\n                    je: () => u,\n                    s6: () => s,\n                    sh: () => n,\n                    tk: () => l,\n                    vW: () => d\n                });\n                var n, o, s, r = i(36248);\n                ! function(e) {\n                    e[e.Left = 1] = \"Left\", e[e.Center = 2] = \"Center\", e[e.Right = 4] = \"Right\", e[e.Full = 7] = \"Full\"\n                }(n || (n = {})),\n                function(e) {\n                    e[e.Inline = 1] = \"Inline\", e[e.Gutter = 2] = \"Gutter\"\n                }(o || (o = {}));\n                class a {\n                    constructor(e) {\n                        this._textModelResolvedOptionsBrand = void 0, this.tabSize = Math.max(1, 0 | e.tabSize), this.indentSize = 0 | e.tabSize, this.insertSpaces = Boolean(e.insertSpaces), this.defaultEOL = 0 | e.defaultEOL, this.trimAutoWhitespace = Boolean(e.trimAutoWhitespace), this.bracketPairColorizationOptions = e.bracketPairColorizationOptions\n                    }\n                    equals(e) {\n                        return this.tabSize === e.tabSize && this.indentSize === e.indentSize && this.insertSpaces === e.insertSpaces && this.defaultEOL === e.defaultEOL && this.trimAutoWhitespace === e.trimAutoWhitespace && (0, r.fS)(this.bracketPairColorizationOptions, e.bracketPairColorizationOptions)\n                    }\n                    createChangeEvent(e) {\n                        return {\n                            tabSize: this.tabSize !== e.tabSize,\n                            indentSize: this.indentSize !== e.indentSize,\n                            insertSpaces: this.insertSpaces !== e.insertSpaces,\n                            trimAutoWhitespace: this.trimAutoWhitespace !== e.trimAutoWhitespace\n                        }\n                    }\n                }\n                class l {\n                    constructor(e, t) {\n                        this._findMatchBrand = void 0, this.range = e, this.matches = t\n                    }\n                }! function(e) {\n                    e[e.Disabled = 0] = \"Disabled\", e[e.EnabledForActive = 1] = \"EnabledForActive\", e[e.Enabled = 2] = \"Enabled\"\n                }(s || (s = {}));\n                class c {\n                    constructor(e, t, i) {\n                        this.visibleColumn = e, this.className = t, this.horizontalLine = i\n                    }\n                }\n                class d {\n                    constructor(e, t) {\n                        this.top = e, this.endColumn = t\n                    }\n                }\n                class h {\n                    constructor(e, t, i, n, o, s) {\n                        this.identifier = e, this.range = t, this.text = i, this.forceMoveMarkers = n, this.isAutoWhitespaceEdit = o, this._isTracked = s\n                    }\n                }\n                class u {\n                    constructor(e, t, i) {\n                        this.reverseEdits = e, this.changes = t, this.trimAutoWhitespaceLineNumbers = i\n                    }\n                }\n            },\n            95215: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    NL: () => m,\n                    e9: () => f\n                });\n                var n = i(63580),\n                    o = i(17301),\n                    s = i(3860),\n                    r = i(70666),\n                    a = i(60962),\n                    l = i(53060),\n                    c = i(95935);\n\n                function d(e) {\n                    return e.toString()\n                }\n                class h {\n                    constructor(e, t, i, n, o, s, r) {\n                        this.beforeVersionId = e, this.afterVersionId = t, this.beforeEOL = i, this.afterEOL = n, this.beforeCursorState = o, this.afterCursorState = s, this.changes = r\n                    }\n                    static create(e, t) {\n                        const i = e.getAlternativeVersionId(),\n                            n = p(e);\n                        return new h(i, i, n, n, t, t, [])\n                    }\n                    append(e, t, i, n, o) {\n                        t.length > 0 && (this.changes = (0, a.b)(this.changes, t)), this.afterEOL = i, this.afterVersionId = n, this.afterCursorState = o\n                    }\n                    static _writeSelectionsSize(e) {\n                        return 4 + 16 * (e ? e.length : 0)\n                    }\n                    static _writeSelections(e, t, i) {\n                        if (l.T4(e, t ? t.length : 0, i), i += 4, t)\n                            for (const n of t) l.T4(e, n.selectionStartLineNumber, i), i += 4, l.T4(e, n.selectionStartColumn, i), i += 4, l.T4(e, n.positionLineNumber, i), i += 4, l.T4(e, n.positionColumn, i), i += 4;\n                        return i\n                    }\n                    static _readSelections(e, t, i) {\n                        const n = l.Ag(e, t);\n                        t += 4;\n                        for (let o = 0; o < n; o++) {\n                            const n = l.Ag(e, t);\n                            t += 4;\n                            const o = l.Ag(e, t);\n                            t += 4;\n                            const r = l.Ag(e, t);\n                            t += 4;\n                            const a = l.Ag(e, t);\n                            t += 4, i.push(new s.Y(n, o, r, a))\n                        }\n                        return t\n                    }\n                    serialize() {\n                        let e = 10 + h._writeSelectionsSize(this.beforeCursorState) + h._writeSelectionsSize(this.afterCursorState) + 4;\n                        for (const t of this.changes) e += t.writeSize();\n                        const t = new Uint8Array(e);\n                        let i = 0;\n                        l.T4(t, this.beforeVersionId, i), i += 4, l.T4(t, this.afterVersionId, i), i += 4, l.Cg(t, this.beforeEOL, i), i += 1, l.Cg(t, this.afterEOL, i), i += 1, i = h._writeSelections(t, this.beforeCursorState, i), i = h._writeSelections(t, this.afterCursorState, i), l.T4(t, this.changes.length, i), i += 4;\n                        for (const e of this.changes) i = e.write(t, i);\n                        return t.buffer\n                    }\n                    static deserialize(e) {\n                        const t = new Uint8Array(e);\n                        let i = 0;\n                        const n = l.Ag(t, i);\n                        i += 4;\n                        const o = l.Ag(t, i);\n                        i += 4;\n                        const s = l.Q$(t, i);\n                        i += 1;\n                        const r = l.Q$(t, i);\n                        i += 1;\n                        const c = [];\n                        i = h._readSelections(t, i, c);\n                        const d = [];\n                        i = h._readSelections(t, i, d);\n                        const u = l.Ag(t, i);\n                        i += 4;\n                        const g = [];\n                        for (let e = 0; e < u; e++) i = a.q.read(t, i, g);\n                        return new h(n, o, s, r, c, d, g)\n                    }\n                }\n                class u {\n                    constructor(e, t) {\n                        this.model = e, this._data = h.create(e, t)\n                    }\n                    get type() {\n                        return 0\n                    }\n                    get resource() {\n                        return r.o.isUri(this.model) ? this.model : this.model.uri\n                    }\n                    get label() {\n                        return n.N(\"edit\", \"Typing\")\n                    }\n                    toString() {\n                        return (this._data instanceof h ? this._data : h.deserialize(this._data)).changes.map((e => e.toString())).join(\", \")\n                    }\n                    matchesResource(e) {\n                        return (r.o.isUri(this.model) ? this.model : this.model.uri).toString() === e.toString()\n                    }\n                    setModel(e) {\n                        this.model = e\n                    }\n                    canAppend(e) {\n                        return this.model === e && this._data instanceof h\n                    }\n                    append(e, t, i, n, o) {\n                        this._data instanceof h && this._data.append(e, t, i, n, o)\n                    }\n                    close() {\n                        this._data instanceof h && (this._data = this._data.serialize())\n                    }\n                    open() {\n                        this._data instanceof h || (this._data = h.deserialize(this._data))\n                    }\n                    undo() {\n                        if (r.o.isUri(this.model)) throw new Error(\"Invalid SingleModelEditStackElement\");\n                        this._data instanceof h && (this._data = this._data.serialize());\n                        const e = h.deserialize(this._data);\n                        this.model._applyUndo(e.changes, e.beforeEOL, e.beforeVersionId, e.beforeCursorState)\n                    }\n                    redo() {\n                        if (r.o.isUri(this.model)) throw new Error(\"Invalid SingleModelEditStackElement\");\n                        this._data instanceof h && (this._data = this._data.serialize());\n                        const e = h.deserialize(this._data);\n                        this.model._applyRedo(e.changes, e.afterEOL, e.afterVersionId, e.afterCursorState)\n                    }\n                    heapSize() {\n                        return this._data instanceof h && (this._data = this._data.serialize()), this._data.byteLength + 168\n                    }\n                }\n                class g {\n                    constructor(e, t) {\n                        this.type = 1, this.label = e, this._isOpen = !0, this._editStackElementsArr = t.slice(0), this._editStackElementsMap = new Map;\n                        for (const e of this._editStackElementsArr) {\n                            const t = d(e.resource);\n                            this._editStackElementsMap.set(t, e)\n                        }\n                        this._delegate = null\n                    }\n                    get resources() {\n                        return this._editStackElementsArr.map((e => e.resource))\n                    }\n                    prepareUndoRedo() {\n                        if (this._delegate) return this._delegate.prepareUndoRedo(this)\n                    }\n                    matchesResource(e) {\n                        const t = d(e);\n                        return this._editStackElementsMap.has(t)\n                    }\n                    setModel(e) {\n                        const t = d(r.o.isUri(e) ? e : e.uri);\n                        this._editStackElementsMap.has(t) && this._editStackElementsMap.get(t).setModel(e)\n                    }\n                    canAppend(e) {\n                        if (!this._isOpen) return !1;\n                        const t = d(e.uri);\n                        if (this._editStackElementsMap.has(t)) {\n                            return this._editStackElementsMap.get(t).canAppend(e)\n                        }\n                        return !1\n                    }\n                    append(e, t, i, n, o) {\n                        const s = d(e.uri);\n                        this._editStackElementsMap.get(s).append(e, t, i, n, o)\n                    }\n                    close() {\n                        this._isOpen = !1\n                    }\n                    open() {}\n                    undo() {\n                        this._isOpen = !1;\n                        for (const e of this._editStackElementsArr) e.undo()\n                    }\n                    redo() {\n                        for (const e of this._editStackElementsArr) e.redo()\n                    }\n                    heapSize(e) {\n                        const t = d(e);\n                        if (this._editStackElementsMap.has(t)) {\n                            return this._editStackElementsMap.get(t).heapSize()\n                        }\n                        return 0\n                    }\n                    split() {\n                        return this._editStackElementsArr\n                    }\n                    toString() {\n                        let e = [];\n                        for (const t of this._editStackElementsArr) e.push(`${(0,c.EZ)(t.resource)}: ${t}`);\n                        return `{${e.join(\", \")}}`\n                    }\n                }\n\n                function p(e) {\n                    return \"\\n\" === e.getEOL() ? 0 : 1\n                }\n\n                function f(e) {\n                    return !!e && (e instanceof u || e instanceof g)\n                }\n                class m {\n                    constructor(e, t) {\n                        this._model = e, this._undoRedoService = t\n                    }\n                    pushStackElement() {\n                        const e = this._undoRedoService.getLastElement(this._model.uri);\n                        f(e) && e.close()\n                    }\n                    popStackElement() {\n                        const e = this._undoRedoService.getLastElement(this._model.uri);\n                        f(e) && e.open()\n                    }\n                    clear() {\n                        this._undoRedoService.removeElements(this._model.uri)\n                    }\n                    _getOrCreateEditStackElement(e) {\n                        const t = this._undoRedoService.getLastElement(this._model.uri);\n                        if (f(t) && t.canAppend(this._model)) return t;\n                        const i = new u(this._model, e);\n                        return this._undoRedoService.pushElement(i), i\n                    }\n                    pushEOL(e) {\n                        const t = this._getOrCreateEditStackElement(null);\n                        this._model.setEOL(e), t.append(this._model, [], p(this._model), this._model.getAlternativeVersionId(), null)\n                    }\n                    pushEditOperation(e, t, i) {\n                        const n = this._getOrCreateEditStackElement(e),\n                            o = this._model.applyEdits(t, !0),\n                            s = m._computeCursorState(i, o),\n                            r = o.map(((e, t) => ({\n                                index: t,\n                                textChange: e.textChange\n                            })));\n                        return r.sort(((e, t) => e.textChange.oldPosition === t.textChange.oldPosition ? e.index - t.index : e.textChange.oldPosition - t.textChange.oldPosition)), n.append(this._model, r.map((e => e.textChange)), p(this._model), this._model.getAlternativeVersionId(), s), s\n                    }\n                    static _computeCursorState(e, t) {\n                        try {\n                            return e ? e(t) : null\n                        } catch (e) {\n                            return (0, o.dL)(e), null\n                        }\n                    }\n                }\n            },\n            60962: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    b: () => a,\n                    q: () => r\n                });\n                var n = i(53060),\n                    o = i(50072);\n\n                function s(e) {\n                    return e.replace(/\\n/g, \"\\\\n\").replace(/\\r/g, \"\\\\r\")\n                }\n                class r {\n                    constructor(e, t, i, n) {\n                        this.oldPosition = e, this.oldText = t, this.newPosition = i, this.newText = n\n                    }\n                    get oldLength() {\n                        return this.oldText.length\n                    }\n                    get oldEnd() {\n                        return this.oldPosition + this.oldText.length\n                    }\n                    get newLength() {\n                        return this.newText.length\n                    }\n                    get newEnd() {\n                        return this.newPosition + this.newText.length\n                    }\n                    toString() {\n                        return 0 === this.oldText.length ? `(insert@${this.oldPosition} \"${s(this.newText)}\")` : 0 === this.newText.length ? `(delete@${this.oldPosition} \"${s(this.oldText)}\")` : `(replace@${this.oldPosition} \"${s(this.oldText)}\" with \"${s(this.newText)}\")`\n                    }\n                    static _writeStringSize(e) {\n                        return 4 + 2 * e.length\n                    }\n                    static _writeString(e, t, i) {\n                        const o = t.length;\n                        n.T4(e, o, i), i += 4;\n                        for (let s = 0; s < o; s++) n.oq(e, t.charCodeAt(s), i), i += 2;\n                        return i\n                    }\n                    static _readString(e, t) {\n                        const i = n.Ag(e, t);\n                        return t += 4, (0, o.kH)(e, t, i)\n                    }\n                    writeSize() {\n                        return 8 + r._writeStringSize(this.oldText) + r._writeStringSize(this.newText)\n                    }\n                    write(e, t) {\n                        return n.T4(e, this.oldPosition, t), t += 4, n.T4(e, this.newPosition, t), t += 4, t = r._writeString(e, this.oldText, t), t = r._writeString(e, this.newText, t)\n                    }\n                    static read(e, t, i) {\n                        const o = n.Ag(e, t);\n                        t += 4;\n                        const s = n.Ag(e, t);\n                        t += 4;\n                        const a = r._readString(e, t);\n                        t += r._writeStringSize(a);\n                        const l = r._readString(e, t);\n                        return t += r._writeStringSize(l), i.push(new r(o, a, s, l)), t\n                    }\n                }\n\n                function a(e, t) {\n                    if (null === e || 0 === e.length) return t;\n                    return new l(e, t).compress()\n                }\n                class l {\n                    constructor(e, t) {\n                        this._prevEdits = e, this._currEdits = t, this._result = [], this._resultLen = 0, this._prevLen = this._prevEdits.length, this._prevDeltaOffset = 0, this._currLen = this._currEdits.length, this._currDeltaOffset = 0\n                    }\n                    compress() {\n                        let e = 0,\n                            t = 0,\n                            i = this._getPrev(e),\n                            n = this._getCurr(t);\n                        for (; e < this._prevLen || t < this._currLen;) {\n                            if (null === i) {\n                                this._acceptCurr(n), n = this._getCurr(++t);\n                                continue\n                            }\n                            if (null === n) {\n                                this._acceptPrev(i), i = this._getPrev(++e);\n                                continue\n                            }\n                            if (n.oldEnd <= i.newPosition) {\n                                this._acceptCurr(n), n = this._getCurr(++t);\n                                continue\n                            }\n                            if (i.newEnd <= n.oldPosition) {\n                                this._acceptPrev(i), i = this._getPrev(++e);\n                                continue\n                            }\n                            if (n.oldPosition < i.newPosition) {\n                                const [e, t] = l._splitCurr(n, i.newPosition - n.oldPosition);\n                                this._acceptCurr(e), n = t;\n                                continue\n                            }\n                            if (i.newPosition < n.oldPosition) {\n                                const [e, t] = l._splitPrev(i, n.oldPosition - i.newPosition);\n                                this._acceptPrev(e), i = t;\n                                continue\n                            }\n                            let o, s;\n                            if (n.oldEnd === i.newEnd) o = i, s = n, i = this._getPrev(++e), n = this._getCurr(++t);\n                            else if (n.oldEnd < i.newEnd) {\n                                const [e, r] = l._splitPrev(i, n.oldLength);\n                                o = e, s = n, i = r, n = this._getCurr(++t)\n                            } else {\n                                const [t, r] = l._splitCurr(n, i.newLength);\n                                o = i, s = t, i = this._getPrev(++e), n = r\n                            }\n                            this._result[this._resultLen++] = new r(o.oldPosition, o.oldText, s.newPosition, s.newText), this._prevDeltaOffset += o.newLength - o.oldLength, this._currDeltaOffset += s.newLength - s.oldLength\n                        }\n                        const o = l._merge(this._result);\n                        return l._removeNoOps(o)\n                    }\n                    _acceptCurr(e) {\n                        this._result[this._resultLen++] = l._rebaseCurr(this._prevDeltaOffset, e), this._currDeltaOffset += e.newLength - e.oldLength\n                    }\n                    _getCurr(e) {\n                        return e < this._currLen ? this._currEdits[e] : null\n                    }\n                    _acceptPrev(e) {\n                        this._result[this._resultLen++] = l._rebasePrev(this._currDeltaOffset, e), this._prevDeltaOffset += e.newLength - e.oldLength\n                    }\n                    _getPrev(e) {\n                        return e < this._prevLen ? this._prevEdits[e] : null\n                    }\n                    static _rebaseCurr(e, t) {\n                        return new r(t.oldPosition - e, t.oldText, t.newPosition, t.newText)\n                    }\n                    static _rebasePrev(e, t) {\n                        return new r(t.oldPosition, t.oldText, t.newPosition + e, t.newText)\n                    }\n                    static _splitPrev(e, t) {\n                        const i = e.newText.substr(0, t),\n                            n = e.newText.substr(t);\n                        return [new r(e.oldPosition, e.oldText, e.newPosition, i), new r(e.oldEnd, \"\", e.newPosition + t, n)]\n                    }\n                    static _splitCurr(e, t) {\n                        const i = e.oldText.substr(0, t),\n                            n = e.oldText.substr(t);\n                        return [new r(e.oldPosition, i, e.newPosition, e.newText), new r(e.oldPosition + t, n, e.newEnd, \"\")]\n                    }\n                    static _merge(e) {\n                        if (0 === e.length) return e;\n                        let t = [],\n                            i = 0,\n                            n = e[0];\n                        for (let o = 1; o < e.length; o++) {\n                            const s = e[o];\n                            n.oldEnd === s.oldPosition ? n = new r(n.oldPosition, n.oldText + s.oldText, n.newPosition, n.newText + s.newText) : (t[i++] = n, n = s)\n                        }\n                        return t[i++] = n, t\n                    }\n                    static _removeNoOps(e) {\n                        if (0 === e.length) return e;\n                        let t = [],\n                            i = 0;\n                        for (let n = 0; n < e.length; n++) {\n                            const o = e[n];\n                            o.oldText !== o.newText && (t[i++] = o)\n                        }\n                        return t\n                    }\n                }\n            },\n            44174: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    WE: () => zt,\n                    qx: () => Qt,\n                    yO: () => Ht\n                });\n                var n = i(17301),\n                    o = i(4669),\n                    s = i(5976),\n                    r = i(97295),\n                    a = i(70666),\n                    l = i(64141),\n                    c = i(50187),\n                    d = i(24314),\n                    h = i(3860),\n                    u = i(84973),\n                    g = i(95215);\n                class p {\n                    constructor() {\n                        this.spacesDiff = 0, this.looksLikeAlignment = !1\n                    }\n                }\n\n                function f(e, t, i, n, o) {\n                    let s;\n                    for (o.spacesDiff = 0, o.looksLikeAlignment = !1, s = 0; s < t && s < n; s++) {\n                        if (e.charCodeAt(s) !== i.charCodeAt(s)) break\n                    }\n                    let r = 0,\n                        a = 0;\n                    for (let i = s; i < t; i++) {\n                        32 === e.charCodeAt(i) ? r++ : a++\n                    }\n                    let l = 0,\n                        c = 0;\n                    for (let e = s; e < n; e++) {\n                        32 === i.charCodeAt(e) ? l++ : c++\n                    }\n                    if (r > 0 && a > 0) return;\n                    if (l > 0 && c > 0) return;\n                    let d = Math.abs(a - c),\n                        h = Math.abs(r - l);\n                    if (0 === d) return o.spacesDiff = h, void(h > 0 && 0 <= l - 1 && l - 1 < e.length && l < i.length && 32 !== i.charCodeAt(l) && 32 === e.charCodeAt(l - 1) && 44 === e.charCodeAt(e.length - 1) && (o.looksLikeAlignment = !0));\n                    h % d != 0 || (o.spacesDiff = h / d)\n                }\n\n                function m(e, t, i) {\n                    const n = Math.min(e.getLineCount(), 1e4);\n                    let o = 0,\n                        s = 0,\n                        r = \"\",\n                        a = 0;\n                    const l = [2, 4, 6, 8, 3, 5, 7];\n                    let c = [0, 0, 0, 0, 0, 0, 0, 0, 0],\n                        d = new p;\n                    for (let l = 1; l <= n; l++) {\n                        let n = e.getLineLength(l),\n                            h = e.getLineContent(l);\n                        const u = n <= 65536;\n                        let g = !1,\n                            p = 0,\n                            m = 0,\n                            v = 0;\n                        for (let t = 0, i = n; t < i; t++) {\n                            let i = u ? h.charCodeAt(t) : e.getLineCharCode(l, t);\n                            if (9 === i) v++;\n                            else {\n                                if (32 !== i) {\n                                    g = !0, p = t;\n                                    break\n                                }\n                                m++\n                            }\n                        }\n                        if (!g) continue;\n                        if (v > 0 ? o++ : m > 1 && s++, f(r, a, h, p, d), d.looksLikeAlignment && (!i || t !== d.spacesDiff)) continue;\n                        let _ = d.spacesDiff;\n                        _ <= 8 && c[_]++, r = h, a = p\n                    }\n                    let h = i;\n                    o !== s && (h = o < s);\n                    let u = t;\n                    if (h) {\n                        let e = h ? 0 : .1 * n;\n                        l.forEach((t => {\n                            let i = c[t];\n                            i > e && (e = i, u = t)\n                        })), 4 === u && c[4] > 0 && c[2] > 0 && c[2] >= c[4] / 2 && (u = 2)\n                    }\n                    return {\n                        insertSpaces: h,\n                        tabSize: u\n                    }\n                }\n\n                function v(e) {\n                    return (1 & e.metadata) >>> 0\n                }\n\n                function _(e, t) {\n                    e.metadata = 254 & e.metadata | t << 0\n                }\n\n                function b(e) {\n                    return (2 & e.metadata) >>> 1 == 1\n                }\n\n                function w(e, t) {\n                    e.metadata = 253 & e.metadata | (t ? 1 : 0) << 1\n                }\n\n                function y(e) {\n                    return (4 & e.metadata) >>> 2 == 1\n                }\n\n                function C(e, t) {\n                    e.metadata = 251 & e.metadata | (t ? 1 : 0) << 2\n                }\n\n                function x(e, t) {\n                    e.metadata = 231 & e.metadata | t << 3\n                }\n\n                function S(e, t) {\n                    e.metadata = 223 & e.metadata | (t ? 1 : 0) << 5\n                }\n                class k {\n                    constructor(e, t, i) {\n                        this.metadata = 0, this.parent = this, this.left = this, this.right = this, _(this, 1), this.start = t, this.end = i, this.delta = 0, this.maxEnd = i, this.id = e, this.ownerId = 0, this.options = null, C(this, !1), x(this, 1), S(this, !1), this.cachedVersionId = 0, this.cachedAbsoluteStart = t, this.cachedAbsoluteEnd = i, this.range = null, w(this, !1)\n                    }\n                    reset(e, t, i, n) {\n                        this.start = t, this.end = i, this.maxEnd = i, this.cachedVersionId = e, this.cachedAbsoluteStart = t, this.cachedAbsoluteEnd = i, this.range = n\n                    }\n                    setOptions(e) {\n                        this.options = e;\n                        let t = this.options.className;\n                        C(this, \"squiggly-error\" === t || \"squiggly-warning\" === t || \"squiggly-info\" === t), x(this, this.options.stickiness), S(this, this.options.collapseOnReplaceEdit)\n                    }\n                    setCachedOffsets(e, t, i) {\n                        this.cachedVersionId !== i && (this.range = null), this.cachedVersionId = i, this.cachedAbsoluteStart = e, this.cachedAbsoluteEnd = t\n                    }\n                    detach() {\n                        this.parent = null, this.left = null, this.right = null\n                    }\n                }\n                const L = new k(null, 0, 0);\n                L.parent = L, L.left = L, L.right = L, _(L, 0);\n                class N {\n                    constructor() {\n                        this.root = L, this.requestNormalizeDelta = !1\n                    }\n                    intervalSearch(e, t, i, n, o) {\n                        return this.root === L ? [] : function(e, t, i, n, o, s) {\n                            let r = e.root,\n                                a = 0,\n                                l = 0,\n                                c = 0,\n                                d = 0,\n                                h = [],\n                                u = 0;\n                            for (; r !== L;)\n                                if (b(r)) w(r.left, !1), w(r.right, !1), r === r.parent.right && (a -= r.parent.delta), r = r.parent;\n                                else {\n                                    if (!b(r.left)) {\n                                        if (l = a + r.maxEnd, l < t) {\n                                            w(r, !0);\n                                            continue\n                                        }\n                                        if (r.left !== L) {\n                                            r = r.left;\n                                            continue\n                                        }\n                                    }\n                                    if (c = a + r.start, c > i) w(r, !0);\n                                    else {\n                                        if (d = a + r.end, d >= t) {\n                                            r.setCachedOffsets(c, d, s);\n                                            let e = !0;\n                                            n && r.ownerId && r.ownerId !== n && (e = !1), o && y(r) && (e = !1), e && (h[u++] = r)\n                                        }\n                                        w(r, !0), r.right === L || b(r.right) || (a += r.delta, r = r.right)\n                                    }\n                                } return w(e.root, !1), h\n                        }(this, e, t, i, n, o)\n                    }\n                    search(e, t, i) {\n                        return this.root === L ? [] : function(e, t, i, n) {\n                            let o = e.root,\n                                s = 0,\n                                r = 0,\n                                a = 0,\n                                l = [],\n                                c = 0;\n                            for (; o !== L;) {\n                                if (b(o)) {\n                                    w(o.left, !1), w(o.right, !1), o === o.parent.right && (s -= o.parent.delta), o = o.parent;\n                                    continue\n                                }\n                                if (o.left !== L && !b(o.left)) {\n                                    o = o.left;\n                                    continue\n                                }\n                                r = s + o.start, a = s + o.end, o.setCachedOffsets(r, a, n);\n                                let e = !0;\n                                t && o.ownerId && o.ownerId !== t && (e = !1), i && y(o) && (e = !1), e && (l[c++] = o), w(o, !0), o.right === L || b(o.right) || (s += o.delta, o = o.right)\n                            }\n                            return w(e.root, !1), l\n                        }(this, e, t, i)\n                    }\n                    collectNodesFromOwner(e) {\n                        return function(e, t) {\n                            let i = e.root,\n                                n = [],\n                                o = 0;\n                            for (; i !== L;) b(i) ? (w(i.left, !1), w(i.right, !1), i = i.parent) : i.left === L || b(i.left) ? (i.ownerId === t && (n[o++] = i), w(i, !0), i.right === L || b(i.right) || (i = i.right)) : i = i.left;\n                            return w(e.root, !1), n\n                        }(this, e)\n                    }\n                    collectNodesPostOrder() {\n                        return function(e) {\n                            let t = e.root,\n                                i = [],\n                                n = 0;\n                            for (; t !== L;) b(t) ? (w(t.left, !1), w(t.right, !1), t = t.parent) : t.left === L || b(t.left) ? t.right === L || b(t.right) ? (i[n++] = t, w(t, !0)) : t = t.right : t = t.left;\n                            return w(e.root, !1), i\n                        }(this)\n                    }\n                    insert(e) {\n                        E(this, e), this._normalizeDeltaIfNecessary()\n                    }\n                    delete(e) {\n                        T(this, e), this._normalizeDeltaIfNecessary()\n                    }\n                    resolveNode(e, t) {\n                        const i = e;\n                        let n = 0;\n                        for (; e !== this.root;) e === e.parent.right && (n += e.parent.delta), e = e.parent;\n                        const o = i.start + n,\n                            s = i.end + n;\n                        i.setCachedOffsets(o, s, t)\n                    }\n                    acceptReplace(e, t, i, n) {\n                        const o = function(e, t, i) {\n                            let n = e.root,\n                                o = 0,\n                                s = 0,\n                                r = 0,\n                                a = 0,\n                                l = [],\n                                c = 0;\n                            for (; n !== L;)\n                                if (b(n)) w(n.left, !1), w(n.right, !1), n === n.parent.right && (o -= n.parent.delta), n = n.parent;\n                                else {\n                                    if (!b(n.left)) {\n                                        if (s = o + n.maxEnd, s < t) {\n                                            w(n, !0);\n                                            continue\n                                        }\n                                        if (n.left !== L) {\n                                            n = n.left;\n                                            continue\n                                        }\n                                    }\n                                    r = o + n.start, r > i ? w(n, !0) : (a = o + n.end, a >= t && (n.setCachedOffsets(r, a, 0), l[c++] = n), w(n, !0), n.right === L || b(n.right) || (o += n.delta, n = n.right))\n                                } return w(e.root, !1), l\n                        }(this, e, e + t);\n                        for (let e = 0, t = o.length; e < t; e++) {\n                            T(this, o[e])\n                        }\n                        this._normalizeDeltaIfNecessary(),\n                            function(e, t, i, n) {\n                                let o = e.root,\n                                    s = 0,\n                                    r = 0,\n                                    a = 0;\n                                const l = n - (i - t);\n                                for (; o !== L;)\n                                    if (b(o)) w(o.left, !1), w(o.right, !1), o === o.parent.right && (s -= o.parent.delta), R(o), o = o.parent;\n                                    else {\n                                        if (!b(o.left)) {\n                                            if (r = s + o.maxEnd, r < t) {\n                                                w(o, !0);\n                                                continue\n                                            }\n                                            if (o.left !== L) {\n                                                o = o.left;\n                                                continue\n                                            }\n                                        }\n                                        a = s + o.start, a > i ? (o.start += l, o.end += l, o.delta += l, (o.delta < -1073741824 || o.delta > 1073741824) && (e.requestNormalizeDelta = !0), w(o, !0)) : (w(o, !0), o.right === L || b(o.right) || (s += o.delta, o = o.right))\n                                    } w(e.root, !1)\n                            }(this, e, e + t, i), this._normalizeDeltaIfNecessary();\n                        for (let s = 0, r = o.length; s < r; s++) {\n                            const r = o[s];\n                            r.start = r.cachedAbsoluteStart, r.end = r.cachedAbsoluteEnd, I(r, e, e + t, i, n), r.maxEnd = r.end, E(this, r)\n                        }\n                        this._normalizeDeltaIfNecessary()\n                    }\n                    _normalizeDeltaIfNecessary() {\n                        this.requestNormalizeDelta && (this.requestNormalizeDelta = !1, function(e) {\n                            let t = e.root,\n                                i = 0;\n                            for (; t !== L;) t.left === L || b(t.left) ? t.right === L || b(t.right) ? (t.start = i + t.start, t.end = i + t.end, t.delta = 0, R(t), w(t, !0), w(t.left, !1), w(t.right, !1), t === t.parent.right && (i -= t.parent.delta), t = t.parent) : (i += t.delta, t = t.right) : t = t.left;\n                            w(e.root, !1)\n                        }(this))\n                    }\n                }\n\n                function D(e, t, i, n) {\n                    return e < i || !(e > i) && (1 !== n && (2 === n || t))\n                }\n\n                function I(e, t, i, n, o) {\n                    const s = function(e) {\n                            return (24 & e.metadata) >>> 3\n                        }(e),\n                        r = 0 === s || 2 === s,\n                        a = 1 === s || 2 === s,\n                        l = i - t,\n                        c = n,\n                        d = Math.min(l, c),\n                        h = e.start;\n                    let u = !1;\n                    const g = e.end;\n                    let p = !1;\n                    t <= h && g <= i && function(e) {\n                        return (32 & e.metadata) >>> 5 == 1\n                    }(e) && (e.start = t, u = !0, e.end = t, p = !0); {\n                        const e = o ? 1 : l > 0 ? 2 : 0;\n                        !u && D(h, r, t, e) && (u = !0), !p && D(g, a, t, e) && (p = !0)\n                    }\n                    if (d > 0 && !o) {\n                        const e = l > c ? 2 : 0;\n                        !u && D(h, r, t + d, e) && (u = !0), !p && D(g, a, t + d, e) && (p = !0)\n                    } {\n                        const n = o ? 1 : 0;\n                        !u && D(h, r, i, n) && (e.start = t + c, u = !0), !p && D(g, a, i, n) && (e.end = t + c, p = !0)\n                    }\n                    const f = c - l;\n                    u || (e.start = Math.max(0, h + f)), p || (e.end = Math.max(0, g + f)), e.start > e.end && (e.end = e.start)\n                }\n\n                function E(e, t) {\n                    if (e.root === L) return t.parent = L, t.left = L, t.right = L, _(t, 0), e.root = t, e.root;\n                    ! function(e, t) {\n                        let i = 0,\n                            n = e.root;\n                        const o = t.start,\n                            s = t.end;\n                        for (;;) {\n                            if (B(o, s, n.start + i, n.end + i) < 0) {\n                                if (n.left === L) {\n                                    t.start -= i, t.end -= i, t.maxEnd -= i, n.left = t;\n                                    break\n                                }\n                                n = n.left\n                            } else {\n                                if (n.right === L) {\n                                    t.start -= i + n.delta, t.end -= i + n.delta, t.maxEnd -= i + n.delta, n.right = t;\n                                    break\n                                }\n                                i += n.delta, n = n.right\n                            }\n                        }\n                        t.parent = n, t.left = L, t.right = L, _(t, 1)\n                    }(e, t), F(t.parent);\n                    let i = t;\n                    for (; i !== e.root && 1 === v(i.parent);)\n                        if (i.parent === i.parent.parent.left) {\n                            const t = i.parent.parent.right;\n                            1 === v(t) ? (_(i.parent, 0), _(t, 0), _(i.parent.parent, 1), i = i.parent.parent) : (i === i.parent.right && (i = i.parent, A(e, i)), _(i.parent, 0), _(i.parent.parent, 1), O(e, i.parent.parent))\n                        } else {\n                            const t = i.parent.parent.left;\n                            1 === v(t) ? (_(i.parent, 0), _(t, 0), _(i.parent.parent, 1), i = i.parent.parent) : (i === i.parent.left && (i = i.parent, O(e, i)), _(i.parent, 0), _(i.parent.parent, 1), A(e, i.parent.parent))\n                        } return _(e.root, 0), t\n                }\n\n                function T(e, t) {\n                    let i, n;\n                    if (t.left === L ? (i = t.right, n = t, i.delta += t.delta, (i.delta < -1073741824 || i.delta > 1073741824) && (e.requestNormalizeDelta = !0), i.start += t.delta, i.end += t.delta) : t.right === L ? (i = t.left, n = t) : (n = function(e) {\n                            for (; e.left !== L;) e = e.left;\n                            return e\n                        }(t.right), i = n.right, i.start += n.delta, i.end += n.delta, i.delta += n.delta, (i.delta < -1073741824 || i.delta > 1073741824) && (e.requestNormalizeDelta = !0), n.start += t.delta, n.end += t.delta, n.delta = t.delta, (n.delta < -1073741824 || n.delta > 1073741824) && (e.requestNormalizeDelta = !0)), n === e.root) return e.root = i, _(i, 0), t.detach(), M(), R(i), void(e.root.parent = L);\n                    let o, s = 1 === v(n);\n                    if (n === n.parent.left ? n.parent.left = i : n.parent.right = i, n === t ? i.parent = n.parent : (n.parent === t ? i.parent = n : i.parent = n.parent, n.left = t.left, n.right = t.right, n.parent = t.parent, _(n, v(t)), t === e.root ? e.root = n : t === t.parent.left ? t.parent.left = n : t.parent.right = n, n.left !== L && (n.left.parent = n), n.right !== L && (n.right.parent = n)), t.detach(), s) return F(i.parent), n !== t && (F(n), F(n.parent)), void M();\n                    for (F(i), F(i.parent), n !== t && (F(n), F(n.parent)); i !== e.root && 0 === v(i);) i === i.parent.left ? (o = i.parent.right, 1 === v(o) && (_(o, 0), _(i.parent, 1), A(e, i.parent), o = i.parent.right), 0 === v(o.left) && 0 === v(o.right) ? (_(o, 1), i = i.parent) : (0 === v(o.right) && (_(o.left, 0), _(o, 1), O(e, o), o = i.parent.right), _(o, v(i.parent)), _(i.parent, 0), _(o.right, 0), A(e, i.parent), i = e.root)) : (o = i.parent.left, 1 === v(o) && (_(o, 0), _(i.parent, 1), O(e, i.parent), o = i.parent.left), 0 === v(o.left) && 0 === v(o.right) ? (_(o, 1), i = i.parent) : (0 === v(o.left) && (_(o.right, 0), _(o, 1), A(e, o), o = i.parent.left), _(o, v(i.parent)), _(i.parent, 0), _(o.left, 0), O(e, i.parent), i = e.root));\n                    _(i, 0), M()\n                }\n\n                function M() {\n                    L.parent = L, L.delta = 0, L.start = 0, L.end = 0\n                }\n\n                function A(e, t) {\n                    const i = t.right;\n                    i.delta += t.delta, (i.delta < -1073741824 || i.delta > 1073741824) && (e.requestNormalizeDelta = !0), i.start += t.delta, i.end += t.delta, t.right = i.left, i.left !== L && (i.left.parent = t), i.parent = t.parent, t.parent === L ? e.root = i : t === t.parent.left ? t.parent.left = i : t.parent.right = i, i.left = t, t.parent = i, R(t), R(i)\n                }\n\n                function O(e, t) {\n                    const i = t.left;\n                    t.delta -= i.delta, (t.delta < -1073741824 || t.delta > 1073741824) && (e.requestNormalizeDelta = !0), t.start -= i.delta, t.end -= i.delta, t.left = i.right, i.right !== L && (i.right.parent = t), i.parent = t.parent, t.parent === L ? e.root = i : t === t.parent.right ? t.parent.right = i : t.parent.left = i, i.right = t, t.parent = i, R(t), R(i)\n                }\n\n                function P(e) {\n                    let t = e.end;\n                    if (e.left !== L) {\n                        const i = e.left.maxEnd;\n                        i > t && (t = i)\n                    }\n                    if (e.right !== L) {\n                        const i = e.right.maxEnd + e.delta;\n                        i > t && (t = i)\n                    }\n                    return t\n                }\n\n                function R(e) {\n                    e.maxEnd = P(e)\n                }\n\n                function F(e) {\n                    for (; e !== L;) {\n                        const t = P(e);\n                        if (e.maxEnd === t) return;\n                        e.maxEnd = t, e = e.parent\n                    }\n                }\n\n                function B(e, t, i, n) {\n                    return e === i ? t - n : e - i\n                }\n                class V {\n                    constructor(e, t) {\n                        this.piece = e, this.color = t, this.size_left = 0, this.lf_left = 0, this.parent = this, this.left = this, this.right = this\n                    }\n                    next() {\n                        if (this.right !== W) return H(this.right);\n                        let e = this;\n                        for (; e.parent !== W && e.parent.left !== e;) e = e.parent;\n                        return e.parent === W ? W : e.parent\n                    }\n                    prev() {\n                        if (this.left !== W) return z(this.left);\n                        let e = this;\n                        for (; e.parent !== W && e.parent.right !== e;) e = e.parent;\n                        return e.parent === W ? W : e.parent\n                    }\n                    detach() {\n                        this.parent = null, this.left = null, this.right = null\n                    }\n                }\n                const W = new V(null, 0);\n\n                function H(e) {\n                    for (; e.left !== W;) e = e.left;\n                    return e\n                }\n\n                function z(e) {\n                    for (; e.right !== W;) e = e.right;\n                    return e\n                }\n\n                function j(e) {\n                    return e === W ? 0 : e.size_left + e.piece.length + j(e.right)\n                }\n\n                function U(e) {\n                    return e === W ? 0 : e.lf_left + e.piece.lineFeedCnt + U(e.right)\n                }\n\n                function $() {\n                    W.parent = W\n                }\n\n                function K(e, t) {\n                    let i = t.right;\n                    i.size_left += t.size_left + (t.piece ? t.piece.length : 0), i.lf_left += t.lf_left + (t.piece ? t.piece.lineFeedCnt : 0), t.right = i.left, i.left !== W && (i.left.parent = t), i.parent = t.parent, t.parent === W ? e.root = i : t.parent.left === t ? t.parent.left = i : t.parent.right = i, i.left = t, t.parent = i\n                }\n\n                function q(e, t) {\n                    let i = t.left;\n                    t.left = i.right, i.right !== W && (i.right.parent = t), i.parent = t.parent, t.size_left -= i.size_left + (i.piece ? i.piece.length : 0), t.lf_left -= i.lf_left + (i.piece ? i.piece.lineFeedCnt : 0), t.parent === W ? e.root = i : t === t.parent.right ? t.parent.right = i : t.parent.left = i, i.right = t, t.parent = i\n                }\n\n                function Z(e, t) {\n                    let i, n;\n                    if (t.left === W ? (n = t, i = n.right) : t.right === W ? (n = t, i = n.left) : (n = H(t.right), i = n.right), n === e.root) return e.root = i, i.color = 0, t.detach(), $(), void(e.root.parent = W);\n                    let o, s = 1 === n.color;\n                    if (n === n.parent.left ? n.parent.left = i : n.parent.right = i, n === t ? (i.parent = n.parent, Q(e, i)) : (n.parent === t ? i.parent = n : i.parent = n.parent, Q(e, i), n.left = t.left, n.right = t.right, n.parent = t.parent, n.color = t.color, t === e.root ? e.root = n : t === t.parent.left ? t.parent.left = n : t.parent.right = n, n.left !== W && (n.left.parent = n), n.right !== W && (n.right.parent = n), n.size_left = t.size_left, n.lf_left = t.lf_left, Q(e, n)), t.detach(), i.parent.left === i) {\n                        let t = j(i),\n                            n = U(i);\n                        if (t !== i.parent.size_left || n !== i.parent.lf_left) {\n                            let o = t - i.parent.size_left,\n                                s = n - i.parent.lf_left;\n                            i.parent.size_left = t, i.parent.lf_left = n, Y(e, i.parent, o, s)\n                        }\n                    }\n                    if (Q(e, i.parent), s) $();\n                    else {\n                        for (; i !== e.root && 0 === i.color;) i === i.parent.left ? (o = i.parent.right, 1 === o.color && (o.color = 0, i.parent.color = 1, K(e, i.parent), o = i.parent.right), 0 === o.left.color && 0 === o.right.color ? (o.color = 1, i = i.parent) : (0 === o.right.color && (o.left.color = 0, o.color = 1, q(e, o), o = i.parent.right), o.color = i.parent.color, i.parent.color = 0, o.right.color = 0, K(e, i.parent), i = e.root)) : (o = i.parent.left, 1 === o.color && (o.color = 0, i.parent.color = 1, q(e, i.parent), o = i.parent.left), 0 === o.left.color && 0 === o.right.color ? (o.color = 1, i = i.parent) : (0 === o.left.color && (o.right.color = 0, o.color = 1, K(e, o), o = i.parent.left), o.color = i.parent.color, i.parent.color = 0, o.left.color = 0, q(e, i.parent), i = e.root));\n                        i.color = 0, $()\n                    }\n                }\n\n                function G(e, t) {\n                    for (Q(e, t); t !== e.root && 1 === t.parent.color;)\n                        if (t.parent === t.parent.parent.left) {\n                            const i = t.parent.parent.right;\n                            1 === i.color ? (t.parent.color = 0, i.color = 0, t.parent.parent.color = 1, t = t.parent.parent) : (t === t.parent.right && K(e, t = t.parent), t.parent.color = 0, t.parent.parent.color = 1, q(e, t.parent.parent))\n                        } else {\n                            const i = t.parent.parent.left;\n                            1 === i.color ? (t.parent.color = 0, i.color = 0, t.parent.parent.color = 1, t = t.parent.parent) : (t === t.parent.left && q(e, t = t.parent), t.parent.color = 0, t.parent.parent.color = 1, K(e, t.parent.parent))\n                        } e.root.color = 0\n                }\n\n                function Y(e, t, i, n) {\n                    for (; t !== e.root && t !== W;) t.parent.left === t && (t.parent.size_left += i, t.parent.lf_left += n), t = t.parent\n                }\n\n                function Q(e, t) {\n                    let i = 0,\n                        n = 0;\n                    if (t !== e.root) {\n                        for (; t !== e.root && t === t.parent.right;) t = t.parent;\n                        if (t !== e.root)\n                            for (i = j((t = t.parent).left) - t.size_left, n = U(t.left) - t.lf_left, t.size_left += i, t.lf_left += n; t !== e.root && (0 !== i || 0 !== n);) t.parent.left === t && (t.parent.size_left += i, t.parent.lf_left += n), t = t.parent\n                    }\n                }\n                W.parent = W, W.left = W, W.right = W, W.color = 0;\n                var X = i(77277);\n                const J = 65535;\n\n                function ee(e) {\n                    let t;\n                    return t = e[e.length - 1] < 65536 ? new Uint16Array(e.length) : new Uint32Array(e.length), t.set(e, 0), t\n                }\n                class te {\n                    constructor(e, t, i, n, o) {\n                        this.lineStarts = e, this.cr = t, this.lf = i, this.crlf = n, this.isBasicASCII = o\n                    }\n                }\n\n                function ie(e, t = !0) {\n                    let i = [0],\n                        n = 1;\n                    for (let t = 0, o = e.length; t < o; t++) {\n                        const s = e.charCodeAt(t);\n                        13 === s ? t + 1 < o && 10 === e.charCodeAt(t + 1) ? (i[n++] = t + 2, t++) : i[n++] = t + 1 : 10 === s && (i[n++] = t + 1)\n                    }\n                    return t ? ee(i) : i\n                }\n                class ne {\n                    constructor(e, t, i, n, o) {\n                        this.bufferIndex = e, this.start = t, this.end = i, this.lineFeedCnt = n, this.length = o\n                    }\n                }\n                class oe {\n                    constructor(e, t) {\n                        this.buffer = e, this.lineStarts = t\n                    }\n                }\n                class se {\n                    constructor(e, t) {\n                        this._pieces = [], this._tree = e, this._BOM = t, this._index = 0, e.root !== W && e.iterate(e.root, (e => (e !== W && this._pieces.push(e.piece), !0)))\n                    }\n                    read() {\n                        return 0 === this._pieces.length ? 0 === this._index ? (this._index++, this._BOM) : null : this._index > this._pieces.length - 1 ? null : 0 === this._index ? this._BOM + this._tree.getPieceContent(this._pieces[this._index++]) : this._tree.getPieceContent(this._pieces[this._index++])\n                    }\n                }\n                class re {\n                    constructor(e) {\n                        this._limit = e, this._cache = []\n                    }\n                    get(e) {\n                        for (let t = this._cache.length - 1; t >= 0; t--) {\n                            let i = this._cache[t];\n                            if (i.nodeStartOffset <= e && i.nodeStartOffset + i.node.piece.length >= e) return i\n                        }\n                        return null\n                    }\n                    get2(e) {\n                        for (let t = this._cache.length - 1; t >= 0; t--) {\n                            let i = this._cache[t];\n                            if (i.nodeStartLineNumber && i.nodeStartLineNumber < e && i.nodeStartLineNumber + i.node.piece.lineFeedCnt >= e) return i\n                        }\n                        return null\n                    }\n                    set(e) {\n                        this._cache.length >= this._limit && this._cache.shift(), this._cache.push(e)\n                    }\n                    validate(e) {\n                        let t = !1,\n                            i = this._cache;\n                        for (let n = 0; n < i.length; n++) {\n                            let o = i[n];\n                            (null === o.node.parent || o.nodeStartOffset >= e) && (i[n] = null, t = !0)\n                        }\n                        if (t) {\n                            let e = [];\n                            for (const t of i) null !== t && e.push(t);\n                            this._cache = e\n                        }\n                    }\n                }\n                class ae {\n                    constructor(e, t, i) {\n                        this.create(e, t, i)\n                    }\n                    create(e, t, i) {\n                        this._buffers = [new oe(\"\", [0])], this._lastChangeBufferPos = {\n                            line: 0,\n                            column: 0\n                        }, this.root = W, this._lineCnt = 1, this._length = 0, this._EOL = t, this._EOLLength = t.length, this._EOLNormalized = i;\n                        let n = null;\n                        for (let t = 0, i = e.length; t < i; t++)\n                            if (e[t].buffer.length > 0) {\n                                e[t].lineStarts || (e[t].lineStarts = ie(e[t].buffer));\n                                let i = new ne(t + 1, {\n                                    line: 0,\n                                    column: 0\n                                }, {\n                                    line: e[t].lineStarts.length - 1,\n                                    column: e[t].buffer.length - e[t].lineStarts[e[t].lineStarts.length - 1]\n                                }, e[t].lineStarts.length - 1, e[t].buffer.length);\n                                this._buffers.push(e[t]), n = this.rbInsertRight(n, i)\n                            } this._searchCache = new re(1), this._lastVisitedLine = {\n                            lineNumber: 0,\n                            value: \"\"\n                        }, this.computeBufferMetadata()\n                    }\n                    normalizeEOL(e) {\n                        let t = 65535 - Math.floor(21845),\n                            i = 2 * t,\n                            n = \"\",\n                            o = 0,\n                            s = [];\n                        if (this.iterate(this.root, (r => {\n                                let a = this.getNodeContent(r),\n                                    l = a.length;\n                                if (o <= t || o + l < i) return n += a, o += l, !0;\n                                let c = n.replace(/\\r\\n|\\r|\\n/g, e);\n                                return s.push(new oe(c, ie(c))), n = a, o = l, !0\n                            })), o > 0) {\n                            let t = n.replace(/\\r\\n|\\r|\\n/g, e);\n                            s.push(new oe(t, ie(t)))\n                        }\n                        this.create(s, e, !0)\n                    }\n                    getEOL() {\n                        return this._EOL\n                    }\n                    setEOL(e) {\n                        this._EOL = e, this._EOLLength = this._EOL.length, this.normalizeEOL(e)\n                    }\n                    createSnapshot(e) {\n                        return new se(this, e)\n                    }\n                    getOffsetAt(e, t) {\n                        let i = 0,\n                            n = this.root;\n                        for (; n !== W;)\n                            if (n.left !== W && n.lf_left + 1 >= e) n = n.left;\n                            else {\n                                if (n.lf_left + n.piece.lineFeedCnt + 1 >= e) {\n                                    return i += n.size_left, i + (this.getAccumulatedValue(n, e - n.lf_left - 2) + t - 1)\n                                }\n                                e -= n.lf_left + n.piece.lineFeedCnt, i += n.size_left + n.piece.length, n = n.right\n                            } return i\n                    }\n                    getPositionAt(e) {\n                        e = Math.floor(e), e = Math.max(0, e);\n                        let t = this.root,\n                            i = 0,\n                            n = e;\n                        for (; t !== W;)\n                            if (0 !== t.size_left && t.size_left >= e) t = t.left;\n                            else {\n                                if (t.size_left + t.piece.length >= e) {\n                                    let o = this.getIndexOf(t, e - t.size_left);\n                                    if (i += t.lf_left + o.index, 0 === o.index) {\n                                        let e = n - this.getOffsetAt(i + 1, 1);\n                                        return new c.L(i + 1, e + 1)\n                                    }\n                                    return new c.L(i + 1, o.remainder + 1)\n                                }\n                                if (e -= t.size_left + t.piece.length, i += t.lf_left + t.piece.lineFeedCnt, t.right === W) {\n                                    let t = n - e - this.getOffsetAt(i + 1, 1);\n                                    return new c.L(i + 1, t + 1)\n                                }\n                                t = t.right\n                            } return new c.L(1, 1)\n                    }\n                    getValueInRange(e, t) {\n                        if (e.startLineNumber === e.endLineNumber && e.startColumn === e.endColumn) return \"\";\n                        let i = this.nodeAt2(e.startLineNumber, e.startColumn),\n                            n = this.nodeAt2(e.endLineNumber, e.endColumn),\n                            o = this.getValueInRange2(i, n);\n                        return t ? t === this._EOL && this._EOLNormalized && t === this.getEOL() && this._EOLNormalized ? o : o.replace(/\\r\\n|\\r|\\n/g, t) : o\n                    }\n                    getValueInRange2(e, t) {\n                        if (e.node === t.node) {\n                            let i = e.node,\n                                n = this._buffers[i.piece.bufferIndex].buffer,\n                                o = this.offsetInBuffer(i.piece.bufferIndex, i.piece.start);\n                            return n.substring(o + e.remainder, o + t.remainder)\n                        }\n                        let i = e.node,\n                            n = this._buffers[i.piece.bufferIndex].buffer,\n                            o = this.offsetInBuffer(i.piece.bufferIndex, i.piece.start),\n                            s = n.substring(o + e.remainder, o + i.piece.length);\n                        for (i = i.next(); i !== W;) {\n                            let e = this._buffers[i.piece.bufferIndex].buffer,\n                                n = this.offsetInBuffer(i.piece.bufferIndex, i.piece.start);\n                            if (i === t.node) {\n                                s += e.substring(n, n + t.remainder);\n                                break\n                            }\n                            s += e.substr(n, i.piece.length), i = i.next()\n                        }\n                        return s\n                    }\n                    getLinesContent() {\n                        let e = [],\n                            t = 0,\n                            i = \"\",\n                            n = !1;\n                        return this.iterate(this.root, (o => {\n                            if (o === W) return !0;\n                            const s = o.piece;\n                            let r = s.length;\n                            if (0 === r) return !0;\n                            const a = this._buffers[s.bufferIndex].buffer,\n                                l = this._buffers[s.bufferIndex].lineStarts,\n                                c = s.start.line,\n                                d = s.end.line;\n                            let h = l[c] + s.start.column;\n                            if (n && (10 === a.charCodeAt(h) && (h++, r--), e[t++] = i, i = \"\", n = !1, 0 === r)) return !0;\n                            if (c === d) return this._EOLNormalized || 13 !== a.charCodeAt(h + r - 1) ? i += a.substr(h, r) : (n = !0, i += a.substr(h, r - 1)), !0;\n                            i += this._EOLNormalized ? a.substring(h, Math.max(h, l[c + 1] - this._EOLLength)) : a.substring(h, l[c + 1]).replace(/(\\r\\n|\\r|\\n)$/, \"\"), e[t++] = i;\n                            for (let n = c + 1; n < d; n++) i = this._EOLNormalized ? a.substring(l[n], l[n + 1] - this._EOLLength) : a.substring(l[n], l[n + 1]).replace(/(\\r\\n|\\r|\\n)$/, \"\"), e[t++] = i;\n                            return this._EOLNormalized || 13 !== a.charCodeAt(l[d] + s.end.column - 1) ? i = a.substr(l[d], s.end.column) : (n = !0, 0 === s.end.column ? t-- : i = a.substr(l[d], s.end.column - 1)), !0\n                        })), n && (e[t++] = i, i = \"\"), e[t++] = i, e\n                    }\n                    getLength() {\n                        return this._length\n                    }\n                    getLineCount() {\n                        return this._lineCnt\n                    }\n                    getLineContent(e) {\n                        return this._lastVisitedLine.lineNumber === e || (this._lastVisitedLine.lineNumber = e, e === this._lineCnt ? this._lastVisitedLine.value = this.getLineRawContent(e) : this._EOLNormalized ? this._lastVisitedLine.value = this.getLineRawContent(e, this._EOLLength) : this._lastVisitedLine.value = this.getLineRawContent(e).replace(/(\\r\\n|\\r|\\n)$/, \"\")), this._lastVisitedLine.value\n                    }\n                    _getCharCode(e) {\n                        if (e.remainder === e.node.piece.length) {\n                            let t = e.node.next();\n                            if (!t) return 0;\n                            let i = this._buffers[t.piece.bufferIndex],\n                                n = this.offsetInBuffer(t.piece.bufferIndex, t.piece.start);\n                            return i.buffer.charCodeAt(n)\n                        } {\n                            let t = this._buffers[e.node.piece.bufferIndex],\n                                i = this.offsetInBuffer(e.node.piece.bufferIndex, e.node.piece.start) + e.remainder;\n                            return t.buffer.charCodeAt(i)\n                        }\n                    }\n                    getLineCharCode(e, t) {\n                        let i = this.nodeAt2(e, t + 1);\n                        return this._getCharCode(i)\n                    }\n                    getLineLength(e) {\n                        if (e === this.getLineCount()) {\n                            let t = this.getOffsetAt(e, 1);\n                            return this.getLength() - t\n                        }\n                        return this.getOffsetAt(e + 1, 1) - this.getOffsetAt(e, 1) - this._EOLLength\n                    }\n                    findMatchesInNode(e, t, i, n, o, s, r, a, l, c, h) {\n                        let u, g, p, f = this._buffers[e.piece.bufferIndex],\n                            m = this.offsetInBuffer(e.piece.bufferIndex, e.piece.start),\n                            v = this.offsetInBuffer(e.piece.bufferIndex, o),\n                            _ = this.offsetInBuffer(e.piece.bufferIndex, s),\n                            b = {\n                                line: 0,\n                                column: 0\n                            };\n                        t._wordSeparators ? (g = f.buffer.substring(v, _), p = e => e + v, t.reset(0)) : (g = f.buffer, p = e => e, t.reset(v));\n                        do {\n                            if (u = t.next(g), u) {\n                                if (p(u.index) >= _) return c;\n                                this.positionInBuffer(e, p(u.index) - m, b);\n                                let t = this.getLineFeedCnt(e.piece.bufferIndex, o, b),\n                                    s = b.line === o.line ? b.column - o.column + n : b.column + 1,\n                                    r = s + u[0].length;\n                                if (h[c++] = (0, X.iE)(new d.e(i + t, s, i + t, r), u, a), p(u.index) + u[0].length >= _) return c;\n                                if (c >= l) return c\n                            }\n                        } while (u);\n                        return c\n                    }\n                    findMatchesLineByLine(e, t, i, n) {\n                        const o = [];\n                        let s = 0;\n                        const r = new X.sz(t.wordSeparators, t.regex);\n                        let a = this.nodeAt2(e.startLineNumber, e.startColumn);\n                        if (null === a) return [];\n                        let l = this.nodeAt2(e.endLineNumber, e.endColumn);\n                        if (null === l) return [];\n                        let c = this.positionInBuffer(a.node, a.remainder),\n                            d = this.positionInBuffer(l.node, l.remainder);\n                        if (a.node === l.node) return this.findMatchesInNode(a.node, r, e.startLineNumber, e.startColumn, c, d, t, i, n, s, o), o;\n                        let h = e.startLineNumber,\n                            u = a.node;\n                        for (; u !== l.node;) {\n                            let l = this.getLineFeedCnt(u.piece.bufferIndex, c, u.piece.end);\n                            if (l >= 1) {\n                                let a = this._buffers[u.piece.bufferIndex].lineStarts,\n                                    d = this.offsetInBuffer(u.piece.bufferIndex, u.piece.start),\n                                    g = a[c.line + l],\n                                    p = h === e.startLineNumber ? e.startColumn : 1;\n                                if (s = this.findMatchesInNode(u, r, h, p, c, this.positionInBuffer(u, g - d), t, i, n, s, o), s >= n) return o;\n                                h += l\n                            }\n                            let d = h === e.startLineNumber ? e.startColumn - 1 : 0;\n                            if (h === e.endLineNumber) {\n                                const a = this.getLineContent(h).substring(d, e.endColumn - 1);\n                                return s = this._findMatchesInLine(t, r, a, e.endLineNumber, d, s, o, i, n), o\n                            }\n                            if (s = this._findMatchesInLine(t, r, this.getLineContent(h).substr(d), h, d, s, o, i, n), s >= n) return o;\n                            h++, a = this.nodeAt2(h, 1), u = a.node, c = this.positionInBuffer(a.node, a.remainder)\n                        }\n                        if (h === e.endLineNumber) {\n                            let a = h === e.startLineNumber ? e.startColumn - 1 : 0;\n                            const l = this.getLineContent(h).substring(a, e.endColumn - 1);\n                            return s = this._findMatchesInLine(t, r, l, e.endLineNumber, a, s, o, i, n), o\n                        }\n                        let g = h === e.startLineNumber ? e.startColumn : 1;\n                        return s = this.findMatchesInNode(l.node, r, h, g, c, d, t, i, n, s, o), o\n                    }\n                    _findMatchesInLine(e, t, i, n, o, s, r, a, l) {\n                        const c = e.wordSeparators;\n                        if (!a && e.simpleSearch) {\n                            const t = e.simpleSearch,\n                                a = t.length,\n                                h = i.length;\n                            let g = -a;\n                            for (; - 1 !== (g = i.indexOf(t, g + a));)\n                                if ((!c || (0, X.cM)(c, i, h, g, a)) && (r[s++] = new u.tk(new d.e(n, g + 1 + o, n, g + 1 + a + o), null), s >= l)) return s;\n                            return s\n                        }\n                        let h;\n                        t.reset(0);\n                        do {\n                            if (h = t.next(i), h && (r[s++] = (0, X.iE)(new d.e(n, h.index + 1 + o, n, h.index + 1 + h[0].length + o), h, a), s >= l)) return s\n                        } while (h);\n                        return s\n                    }\n                    insert(e, t, i = !1) {\n                        if (this._EOLNormalized = this._EOLNormalized && i, this._lastVisitedLine.lineNumber = 0, this._lastVisitedLine.value = \"\", this.root !== W) {\n                            let {\n                                node: i,\n                                remainder: n,\n                                nodeStartOffset: o\n                            } = this.nodeAt(e), s = i.piece, r = s.bufferIndex, a = this.positionInBuffer(i, n);\n                            if (0 === i.piece.bufferIndex && s.end.line === this._lastChangeBufferPos.line && s.end.column === this._lastChangeBufferPos.column && o + s.length === e && t.length < J) return this.appendToNode(i, t), void this.computeBufferMetadata();\n                            if (o === e) this.insertContentToNodeLeft(t, i), this._searchCache.validate(e);\n                            else if (o + i.piece.length > e) {\n                                let e = [],\n                                    o = new ne(s.bufferIndex, a, s.end, this.getLineFeedCnt(s.bufferIndex, a, s.end), this.offsetInBuffer(r, s.end) - this.offsetInBuffer(r, a));\n                                if (this.shouldCheckCRLF() && this.endWithCR(t)) {\n                                    if (10 === this.nodeCharCodeAt(i, n)) {\n                                        let e = {\n                                            line: o.start.line + 1,\n                                            column: 0\n                                        };\n                                        o = new ne(o.bufferIndex, e, o.end, this.getLineFeedCnt(o.bufferIndex, e, o.end), o.length - 1), t += \"\\n\"\n                                    }\n                                }\n                                if (this.shouldCheckCRLF() && this.startWithLF(t)) {\n                                    if (13 === this.nodeCharCodeAt(i, n - 1)) {\n                                        let o = this.positionInBuffer(i, n - 1);\n                                        this.deleteNodeTail(i, o), t = \"\\r\" + t, 0 === i.piece.length && e.push(i)\n                                    } else this.deleteNodeTail(i, a)\n                                } else this.deleteNodeTail(i, a);\n                                let l = this.createNewPieces(t);\n                                o.length > 0 && this.rbInsertRight(i, o);\n                                let c = i;\n                                for (let e = 0; e < l.length; e++) c = this.rbInsertRight(c, l[e]);\n                                this.deleteNodes(e)\n                            } else this.insertContentToNodeRight(t, i)\n                        } else {\n                            let e = this.createNewPieces(t),\n                                i = this.rbInsertLeft(null, e[0]);\n                            for (let t = 1; t < e.length; t++) i = this.rbInsertRight(i, e[t])\n                        }\n                        this.computeBufferMetadata()\n                    }\n                    delete(e, t) {\n                        if (this._lastVisitedLine.lineNumber = 0, this._lastVisitedLine.value = \"\", t <= 0 || this.root === W) return;\n                        let i = this.nodeAt(e),\n                            n = this.nodeAt(e + t),\n                            o = i.node,\n                            s = n.node;\n                        if (o === s) {\n                            let s = this.positionInBuffer(o, i.remainder),\n                                r = this.positionInBuffer(o, n.remainder);\n                            if (i.nodeStartOffset === e) {\n                                if (t === o.piece.length) {\n                                    let e = o.next();\n                                    return Z(this, o), this.validateCRLFWithPrevNode(e), void this.computeBufferMetadata()\n                                }\n                                return this.deleteNodeHead(o, r), this._searchCache.validate(e), this.validateCRLFWithPrevNode(o), void this.computeBufferMetadata()\n                            }\n                            return i.nodeStartOffset + o.piece.length === e + t ? (this.deleteNodeTail(o, s), this.validateCRLFWithNextNode(o), void this.computeBufferMetadata()) : (this.shrinkNode(o, s, r), void this.computeBufferMetadata())\n                        }\n                        let r = [],\n                            a = this.positionInBuffer(o, i.remainder);\n                        this.deleteNodeTail(o, a), this._searchCache.validate(e), 0 === o.piece.length && r.push(o);\n                        let l = this.positionInBuffer(s, n.remainder);\n                        this.deleteNodeHead(s, l), 0 === s.piece.length && r.push(s);\n                        for (let e = o.next(); e !== W && e !== s; e = e.next()) r.push(e);\n                        let c = 0 === o.piece.length ? o.prev() : o;\n                        this.deleteNodes(r), this.validateCRLFWithNextNode(c), this.computeBufferMetadata()\n                    }\n                    insertContentToNodeLeft(e, t) {\n                        let i = [];\n                        if (this.shouldCheckCRLF() && this.endWithCR(e) && this.startWithLF(t)) {\n                            let n = t.piece,\n                                o = {\n                                    line: n.start.line + 1,\n                                    column: 0\n                                },\n                                s = new ne(n.bufferIndex, o, n.end, this.getLineFeedCnt(n.bufferIndex, o, n.end), n.length - 1);\n                            t.piece = s, e += \"\\n\", Y(this, t, -1, -1), 0 === t.piece.length && i.push(t)\n                        }\n                        let n = this.createNewPieces(e),\n                            o = this.rbInsertLeft(t, n[n.length - 1]);\n                        for (let e = n.length - 2; e >= 0; e--) o = this.rbInsertLeft(o, n[e]);\n                        this.validateCRLFWithPrevNode(o), this.deleteNodes(i)\n                    }\n                    insertContentToNodeRight(e, t) {\n                        this.adjustCarriageReturnFromNext(e, t) && (e += \"\\n\");\n                        let i = this.createNewPieces(e),\n                            n = this.rbInsertRight(t, i[0]),\n                            o = n;\n                        for (let e = 1; e < i.length; e++) o = this.rbInsertRight(o, i[e]);\n                        this.validateCRLFWithPrevNode(n)\n                    }\n                    positionInBuffer(e, t, i) {\n                        let n = e.piece,\n                            o = e.piece.bufferIndex,\n                            s = this._buffers[o].lineStarts,\n                            r = s[n.start.line] + n.start.column + t,\n                            a = n.start.line,\n                            l = n.end.line,\n                            c = 0,\n                            d = 0,\n                            h = 0;\n                        for (; a <= l && (c = a + (l - a) / 2 | 0, h = s[c], c !== l);)\n                            if (d = s[c + 1], r < h) l = c - 1;\n                            else {\n                                if (!(r >= d)) break;\n                                a = c + 1\n                            } return i ? (i.line = c, i.column = r - h, null) : {\n                            line: c,\n                            column: r - h\n                        }\n                    }\n                    getLineFeedCnt(e, t, i) {\n                        if (0 === i.column) return i.line - t.line;\n                        let n = this._buffers[e].lineStarts;\n                        if (i.line === n.length - 1) return i.line - t.line;\n                        let o = n[i.line + 1],\n                            s = n[i.line] + i.column;\n                        if (o > s + 1) return i.line - t.line;\n                        let r = s - 1;\n                        return 13 === this._buffers[e].buffer.charCodeAt(r) ? i.line - t.line + 1 : i.line - t.line\n                    }\n                    offsetInBuffer(e, t) {\n                        return this._buffers[e].lineStarts[t.line] + t.column\n                    }\n                    deleteNodes(e) {\n                        for (let t = 0; t < e.length; t++) Z(this, e[t])\n                    }\n                    createNewPieces(e) {\n                        if (e.length > J) {\n                            let t = [];\n                            for (; e.length > J;) {\n                                const i = e.charCodeAt(65534);\n                                let n;\n                                13 === i || i >= 55296 && i <= 56319 ? (n = e.substring(0, 65534), e = e.substring(65534)) : (n = e.substring(0, J), e = e.substring(J));\n                                let o = ie(n);\n                                t.push(new ne(this._buffers.length, {\n                                    line: 0,\n                                    column: 0\n                                }, {\n                                    line: o.length - 1,\n                                    column: n.length - o[o.length - 1]\n                                }, o.length - 1, n.length)), this._buffers.push(new oe(n, o))\n                            }\n                            let i = ie(e);\n                            return t.push(new ne(this._buffers.length, {\n                                line: 0,\n                                column: 0\n                            }, {\n                                line: i.length - 1,\n                                column: e.length - i[i.length - 1]\n                            }, i.length - 1, e.length)), this._buffers.push(new oe(e, i)), t\n                        }\n                        let t = this._buffers[0].buffer.length;\n                        const i = ie(e, !1);\n                        let n = this._lastChangeBufferPos;\n                        if (this._buffers[0].lineStarts[this._buffers[0].lineStarts.length - 1] === t && 0 !== t && this.startWithLF(e) && this.endWithCR(this._buffers[0].buffer)) {\n                            this._lastChangeBufferPos = {\n                                line: this._lastChangeBufferPos.line,\n                                column: this._lastChangeBufferPos.column + 1\n                            }, n = this._lastChangeBufferPos;\n                            for (let e = 0; e < i.length; e++) i[e] += t + 1;\n                            this._buffers[0].lineStarts = this._buffers[0].lineStarts.concat(i.slice(1)), this._buffers[0].buffer += \"_\" + e, t += 1\n                        } else {\n                            if (0 !== t)\n                                for (let e = 0; e < i.length; e++) i[e] += t;\n                            this._buffers[0].lineStarts = this._buffers[0].lineStarts.concat(i.slice(1)), this._buffers[0].buffer += e\n                        }\n                        const o = this._buffers[0].buffer.length;\n                        let s = this._buffers[0].lineStarts.length - 1,\n                            r = {\n                                line: s,\n                                column: o - this._buffers[0].lineStarts[s]\n                            },\n                            a = new ne(0, n, r, this.getLineFeedCnt(0, n, r), o - t);\n                        return this._lastChangeBufferPos = r, [a]\n                    }\n                    getLineRawContent(e, t = 0) {\n                        let i = this.root,\n                            n = \"\",\n                            o = this._searchCache.get2(e);\n                        if (o) {\n                            i = o.node;\n                            let s = this.getAccumulatedValue(i, e - o.nodeStartLineNumber - 1),\n                                r = this._buffers[i.piece.bufferIndex].buffer,\n                                a = this.offsetInBuffer(i.piece.bufferIndex, i.piece.start);\n                            if (o.nodeStartLineNumber + i.piece.lineFeedCnt !== e) {\n                                let n = this.getAccumulatedValue(i, e - o.nodeStartLineNumber);\n                                return r.substring(a + s, a + n - t)\n                            }\n                            n = r.substring(a + s, a + i.piece.length)\n                        } else {\n                            let o = 0;\n                            const s = e;\n                            for (; i !== W;)\n                                if (i.left !== W && i.lf_left >= e - 1) i = i.left;\n                                else {\n                                    if (i.lf_left + i.piece.lineFeedCnt > e - 1) {\n                                        let n = this.getAccumulatedValue(i, e - i.lf_left - 2),\n                                            r = this.getAccumulatedValue(i, e - i.lf_left - 1),\n                                            a = this._buffers[i.piece.bufferIndex].buffer,\n                                            l = this.offsetInBuffer(i.piece.bufferIndex, i.piece.start);\n                                        return o += i.size_left, this._searchCache.set({\n                                            node: i,\n                                            nodeStartOffset: o,\n                                            nodeStartLineNumber: s - (e - 1 - i.lf_left)\n                                        }), a.substring(l + n, l + r - t)\n                                    }\n                                    if (i.lf_left + i.piece.lineFeedCnt === e - 1) {\n                                        let t = this.getAccumulatedValue(i, e - i.lf_left - 2),\n                                            o = this._buffers[i.piece.bufferIndex].buffer,\n                                            s = this.offsetInBuffer(i.piece.bufferIndex, i.piece.start);\n                                        n = o.substring(s + t, s + i.piece.length);\n                                        break\n                                    }\n                                    e -= i.lf_left + i.piece.lineFeedCnt, o += i.size_left + i.piece.length, i = i.right\n                                }\n                        }\n                        for (i = i.next(); i !== W;) {\n                            let e = this._buffers[i.piece.bufferIndex].buffer;\n                            if (i.piece.lineFeedCnt > 0) {\n                                let o = this.getAccumulatedValue(i, 0),\n                                    s = this.offsetInBuffer(i.piece.bufferIndex, i.piece.start);\n                                return n += e.substring(s, s + o - t), n\n                            } {\n                                let t = this.offsetInBuffer(i.piece.bufferIndex, i.piece.start);\n                                n += e.substr(t, i.piece.length)\n                            }\n                            i = i.next()\n                        }\n                        return n\n                    }\n                    computeBufferMetadata() {\n                        let e = this.root,\n                            t = 1,\n                            i = 0;\n                        for (; e !== W;) t += e.lf_left + e.piece.lineFeedCnt, i += e.size_left + e.piece.length, e = e.right;\n                        this._lineCnt = t, this._length = i, this._searchCache.validate(this._length)\n                    }\n                    getIndexOf(e, t) {\n                        let i = e.piece,\n                            n = this.positionInBuffer(e, t),\n                            o = n.line - i.start.line;\n                        if (this.offsetInBuffer(i.bufferIndex, i.end) - this.offsetInBuffer(i.bufferIndex, i.start) === t) {\n                            let t = this.getLineFeedCnt(e.piece.bufferIndex, i.start, n);\n                            if (t !== o) return {\n                                index: t,\n                                remainder: 0\n                            }\n                        }\n                        return {\n                            index: o,\n                            remainder: n.column\n                        }\n                    }\n                    getAccumulatedValue(e, t) {\n                        if (t < 0) return 0;\n                        let i = e.piece,\n                            n = this._buffers[i.bufferIndex].lineStarts,\n                            o = i.start.line + t + 1;\n                        return o > i.end.line ? n[i.end.line] + i.end.column - n[i.start.line] - i.start.column : n[o] - n[i.start.line] - i.start.column\n                    }\n                    deleteNodeTail(e, t) {\n                        const i = e.piece,\n                            n = i.lineFeedCnt,\n                            o = this.offsetInBuffer(i.bufferIndex, i.end),\n                            s = t,\n                            r = this.offsetInBuffer(i.bufferIndex, s),\n                            a = this.getLineFeedCnt(i.bufferIndex, i.start, s),\n                            l = a - n,\n                            c = r - o,\n                            d = i.length + c;\n                        e.piece = new ne(i.bufferIndex, i.start, s, a, d), Y(this, e, c, l)\n                    }\n                    deleteNodeHead(e, t) {\n                        const i = e.piece,\n                            n = i.lineFeedCnt,\n                            o = this.offsetInBuffer(i.bufferIndex, i.start),\n                            s = t,\n                            r = this.getLineFeedCnt(i.bufferIndex, s, i.end),\n                            a = r - n,\n                            l = o - this.offsetInBuffer(i.bufferIndex, s),\n                            c = i.length + l;\n                        e.piece = new ne(i.bufferIndex, s, i.end, r, c), Y(this, e, l, a)\n                    }\n                    shrinkNode(e, t, i) {\n                        const n = e.piece,\n                            o = n.start,\n                            s = n.end,\n                            r = n.length,\n                            a = n.lineFeedCnt,\n                            l = t,\n                            c = this.getLineFeedCnt(n.bufferIndex, n.start, l),\n                            d = this.offsetInBuffer(n.bufferIndex, t) - this.offsetInBuffer(n.bufferIndex, o);\n                        e.piece = new ne(n.bufferIndex, n.start, l, c, d), Y(this, e, d - r, c - a);\n                        let h = new ne(n.bufferIndex, i, s, this.getLineFeedCnt(n.bufferIndex, i, s), this.offsetInBuffer(n.bufferIndex, s) - this.offsetInBuffer(n.bufferIndex, i)),\n                            u = this.rbInsertRight(e, h);\n                        this.validateCRLFWithPrevNode(u)\n                    }\n                    appendToNode(e, t) {\n                        this.adjustCarriageReturnFromNext(t, e) && (t += \"\\n\");\n                        const i = this.shouldCheckCRLF() && this.startWithLF(t) && this.endWithCR(e),\n                            n = this._buffers[0].buffer.length;\n                        this._buffers[0].buffer += t;\n                        const o = ie(t, !1);\n                        for (let e = 0; e < o.length; e++) o[e] += n;\n                        if (i) {\n                            let e = this._buffers[0].lineStarts[this._buffers[0].lineStarts.length - 2];\n                            this._buffers[0].lineStarts.pop(), this._lastChangeBufferPos = {\n                                line: this._lastChangeBufferPos.line - 1,\n                                column: n - e\n                            }\n                        }\n                        this._buffers[0].lineStarts = this._buffers[0].lineStarts.concat(o.slice(1));\n                        const s = this._buffers[0].lineStarts.length - 1,\n                            r = {\n                                line: s,\n                                column: this._buffers[0].buffer.length - this._buffers[0].lineStarts[s]\n                            },\n                            a = e.piece.length + t.length,\n                            l = e.piece.lineFeedCnt,\n                            c = this.getLineFeedCnt(0, e.piece.start, r),\n                            d = c - l;\n                        e.piece = new ne(e.piece.bufferIndex, e.piece.start, r, c, a), this._lastChangeBufferPos = r, Y(this, e, t.length, d)\n                    }\n                    nodeAt(e) {\n                        let t = this.root,\n                            i = this._searchCache.get(e);\n                        if (i) return {\n                            node: i.node,\n                            nodeStartOffset: i.nodeStartOffset,\n                            remainder: e - i.nodeStartOffset\n                        };\n                        let n = 0;\n                        for (; t !== W;)\n                            if (t.size_left > e) t = t.left;\n                            else {\n                                if (t.size_left + t.piece.length >= e) {\n                                    n += t.size_left;\n                                    let i = {\n                                        node: t,\n                                        remainder: e - t.size_left,\n                                        nodeStartOffset: n\n                                    };\n                                    return this._searchCache.set(i), i\n                                }\n                                e -= t.size_left + t.piece.length, n += t.size_left + t.piece.length, t = t.right\n                            } return null\n                    }\n                    nodeAt2(e, t) {\n                        let i = this.root,\n                            n = 0;\n                        for (; i !== W;)\n                            if (i.left !== W && i.lf_left >= e - 1) i = i.left;\n                            else {\n                                if (i.lf_left + i.piece.lineFeedCnt > e - 1) {\n                                    let o = this.getAccumulatedValue(i, e - i.lf_left - 2),\n                                        s = this.getAccumulatedValue(i, e - i.lf_left - 1);\n                                    return n += i.size_left, {\n                                        node: i,\n                                        remainder: Math.min(o + t - 1, s),\n                                        nodeStartOffset: n\n                                    }\n                                }\n                                if (i.lf_left + i.piece.lineFeedCnt === e - 1) {\n                                    let o = this.getAccumulatedValue(i, e - i.lf_left - 2);\n                                    if (o + t - 1 <= i.piece.length) return {\n                                        node: i,\n                                        remainder: o + t - 1,\n                                        nodeStartOffset: n\n                                    };\n                                    t -= i.piece.length - o;\n                                    break\n                                }\n                                e -= i.lf_left + i.piece.lineFeedCnt, n += i.size_left + i.piece.length, i = i.right\n                            } for (i = i.next(); i !== W;) {\n                            if (i.piece.lineFeedCnt > 0) {\n                                let e = this.getAccumulatedValue(i, 0),\n                                    n = this.offsetOfNode(i);\n                                return {\n                                    node: i,\n                                    remainder: Math.min(t - 1, e),\n                                    nodeStartOffset: n\n                                }\n                            }\n                            if (i.piece.length >= t - 1) {\n                                return {\n                                    node: i,\n                                    remainder: t - 1,\n                                    nodeStartOffset: this.offsetOfNode(i)\n                                }\n                            }\n                            t -= i.piece.length, i = i.next()\n                        }\n                        return null\n                    }\n                    nodeCharCodeAt(e, t) {\n                        if (e.piece.lineFeedCnt < 1) return -1;\n                        let i = this._buffers[e.piece.bufferIndex],\n                            n = this.offsetInBuffer(e.piece.bufferIndex, e.piece.start) + t;\n                        return i.buffer.charCodeAt(n)\n                    }\n                    offsetOfNode(e) {\n                        if (!e) return 0;\n                        let t = e.size_left;\n                        for (; e !== this.root;) e.parent.right === e && (t += e.parent.size_left + e.parent.piece.length), e = e.parent;\n                        return t\n                    }\n                    shouldCheckCRLF() {\n                        return !(this._EOLNormalized && \"\\n\" === this._EOL)\n                    }\n                    startWithLF(e) {\n                        if (\"string\" == typeof e) return 10 === e.charCodeAt(0);\n                        if (e === W || 0 === e.piece.lineFeedCnt) return !1;\n                        let t = e.piece,\n                            i = this._buffers[t.bufferIndex].lineStarts,\n                            n = t.start.line,\n                            o = i[n] + t.start.column;\n                        return n !== i.length - 1 && (!(i[n + 1] > o + 1) && 10 === this._buffers[t.bufferIndex].buffer.charCodeAt(o))\n                    }\n                    endWithCR(e) {\n                        return \"string\" == typeof e ? 13 === e.charCodeAt(e.length - 1) : e !== W && 0 !== e.piece.lineFeedCnt && 13 === this.nodeCharCodeAt(e, e.piece.length - 1)\n                    }\n                    validateCRLFWithPrevNode(e) {\n                        if (this.shouldCheckCRLF() && this.startWithLF(e)) {\n                            let t = e.prev();\n                            this.endWithCR(t) && this.fixCRLF(t, e)\n                        }\n                    }\n                    validateCRLFWithNextNode(e) {\n                        if (this.shouldCheckCRLF() && this.endWithCR(e)) {\n                            let t = e.next();\n                            this.startWithLF(t) && this.fixCRLF(e, t)\n                        }\n                    }\n                    fixCRLF(e, t) {\n                        let i, n = [],\n                            o = this._buffers[e.piece.bufferIndex].lineStarts;\n                        i = 0 === e.piece.end.column ? {\n                            line: e.piece.end.line - 1,\n                            column: o[e.piece.end.line] - o[e.piece.end.line - 1] - 1\n                        } : {\n                            line: e.piece.end.line,\n                            column: e.piece.end.column - 1\n                        };\n                        const s = e.piece.length - 1,\n                            r = e.piece.lineFeedCnt - 1;\n                        e.piece = new ne(e.piece.bufferIndex, e.piece.start, i, r, s), Y(this, e, -1, -1), 0 === e.piece.length && n.push(e);\n                        let a = {\n                            line: t.piece.start.line + 1,\n                            column: 0\n                        };\n                        const l = t.piece.length - 1,\n                            c = this.getLineFeedCnt(t.piece.bufferIndex, a, t.piece.end);\n                        t.piece = new ne(t.piece.bufferIndex, a, t.piece.end, c, l), Y(this, t, -1, -1), 0 === t.piece.length && n.push(t);\n                        let d = this.createNewPieces(\"\\r\\n\");\n                        this.rbInsertRight(e, d[0]);\n                        for (let e = 0; e < n.length; e++) Z(this, n[e])\n                    }\n                    adjustCarriageReturnFromNext(e, t) {\n                        if (this.shouldCheckCRLF() && this.endWithCR(e)) {\n                            let i = t.next();\n                            if (this.startWithLF(i)) {\n                                if (e += \"\\n\", 1 === i.piece.length) Z(this, i);\n                                else {\n                                    const e = i.piece,\n                                        t = {\n                                            line: e.start.line + 1,\n                                            column: 0\n                                        },\n                                        n = e.length - 1,\n                                        o = this.getLineFeedCnt(e.bufferIndex, t, e.end);\n                                    i.piece = new ne(e.bufferIndex, t, e.end, o, n), Y(this, i, -1, -1)\n                                }\n                                return !0\n                            }\n                        }\n                        return !1\n                    }\n                    iterate(e, t) {\n                        if (e === W) return t(W);\n                        let i = this.iterate(e.left, t);\n                        return i ? t(e) && this.iterate(e.right, t) : i\n                    }\n                    getNodeContent(e) {\n                        if (e === W) return \"\";\n                        let t, i = this._buffers[e.piece.bufferIndex],\n                            n = e.piece,\n                            o = this.offsetInBuffer(n.bufferIndex, n.start),\n                            s = this.offsetInBuffer(n.bufferIndex, n.end);\n                        return t = i.buffer.substring(o, s), t\n                    }\n                    getPieceContent(e) {\n                        let t = this._buffers[e.bufferIndex],\n                            i = this.offsetInBuffer(e.bufferIndex, e.start),\n                            n = this.offsetInBuffer(e.bufferIndex, e.end);\n                        return t.buffer.substring(i, n)\n                    }\n                    rbInsertRight(e, t) {\n                        let i = new V(t, 1);\n                        if (i.left = W, i.right = W, i.parent = W, i.size_left = 0, i.lf_left = 0, this.root === W) this.root = i, i.color = 0;\n                        else if (e.right === W) e.right = i, i.parent = e;\n                        else {\n                            let t = H(e.right);\n                            t.left = i, i.parent = t\n                        }\n                        return G(this, i), i\n                    }\n                    rbInsertLeft(e, t) {\n                        let i = new V(t, 1);\n                        if (i.left = W, i.right = W, i.parent = W, i.size_left = 0, i.lf_left = 0, this.root === W) this.root = i, i.color = 0;\n                        else if (e.left === W) e.left = i, i.parent = e;\n                        else {\n                            let t = z(e.left);\n                            t.right = i, i.parent = t\n                        }\n                        return G(this, i), i\n                    }\n                }\n                var le = i(58409),\n                    ce = i(60962);\n                class de extends s.JT {\n                    constructor(e, t, i, n, s, r, a) {\n                        super(), this._onDidChangeContent = this._register(new o.Q5), this._BOM = t, this._mightContainNonBasicASCII = !r, this._mightContainRTL = n, this._mightContainUnusualLineTerminators = s, this._pieceTree = new ae(e, i, a)\n                    }\n                    mightContainRTL() {\n                        return this._mightContainRTL\n                    }\n                    mightContainUnusualLineTerminators() {\n                        return this._mightContainUnusualLineTerminators\n                    }\n                    resetMightContainUnusualLineTerminators() {\n                        this._mightContainUnusualLineTerminators = !1\n                    }\n                    mightContainNonBasicASCII() {\n                        return this._mightContainNonBasicASCII\n                    }\n                    getBOM() {\n                        return this._BOM\n                    }\n                    getEOL() {\n                        return this._pieceTree.getEOL()\n                    }\n                    createSnapshot(e) {\n                        return this._pieceTree.createSnapshot(e ? this._BOM : \"\")\n                    }\n                    getOffsetAt(e, t) {\n                        return this._pieceTree.getOffsetAt(e, t)\n                    }\n                    getPositionAt(e) {\n                        return this._pieceTree.getPositionAt(e)\n                    }\n                    getRangeAt(e, t) {\n                        let i = e + t;\n                        const n = this.getPositionAt(e),\n                            o = this.getPositionAt(i);\n                        return new d.e(n.lineNumber, n.column, o.lineNumber, o.column)\n                    }\n                    getValueInRange(e, t = 0) {\n                        if (e.isEmpty()) return \"\";\n                        const i = this._getEndOfLine(t);\n                        return this._pieceTree.getValueInRange(e, i)\n                    }\n                    getValueLengthInRange(e, t = 0) {\n                        if (e.isEmpty()) return 0;\n                        if (e.startLineNumber === e.endLineNumber) return e.endColumn - e.startColumn;\n                        let i = this.getOffsetAt(e.startLineNumber, e.startColumn);\n                        return this.getOffsetAt(e.endLineNumber, e.endColumn) - i\n                    }\n                    getCharacterCountInRange(e, t = 0) {\n                        if (this._mightContainNonBasicASCII) {\n                            let i = 0;\n                            const n = e.startLineNumber,\n                                o = e.endLineNumber;\n                            for (let t = n; t <= o; t++) {\n                                const s = this.getLineContent(t),\n                                    a = t === n ? e.startColumn - 1 : 0,\n                                    l = t === o ? e.endColumn - 1 : s.length;\n                                for (let e = a; e < l; e++) r.ZG(s.charCodeAt(e)) ? (i += 1, e += 1) : i += 1\n                            }\n                            return i += this._getEndOfLine(t).length * (o - n), i\n                        }\n                        return this.getValueLengthInRange(e, t)\n                    }\n                    getLength() {\n                        return this._pieceTree.getLength()\n                    }\n                    getLineCount() {\n                        return this._pieceTree.getLineCount()\n                    }\n                    getLinesContent() {\n                        return this._pieceTree.getLinesContent()\n                    }\n                    getLineContent(e) {\n                        return this._pieceTree.getLineContent(e)\n                    }\n                    getLineCharCode(e, t) {\n                        return this._pieceTree.getLineCharCode(e, t)\n                    }\n                    getLineLength(e) {\n                        return this._pieceTree.getLineLength(e)\n                    }\n                    getLineFirstNonWhitespaceColumn(e) {\n                        const t = r.LC(this.getLineContent(e));\n                        return -1 === t ? 0 : t + 1\n                    }\n                    getLineLastNonWhitespaceColumn(e) {\n                        const t = r.ow(this.getLineContent(e));\n                        return -1 === t ? 0 : t + 2\n                    }\n                    _getEndOfLine(e) {\n                        switch (e) {\n                            case 1:\n                                return \"\\n\";\n                            case 2:\n                                return \"\\r\\n\";\n                            case 0:\n                                return this.getEOL();\n                            default:\n                                throw new Error(\"Unknown EOL preference\")\n                        }\n                    }\n                    setEOL(e) {\n                        this._pieceTree.setEOL(e)\n                    }\n                    applyEdits(e, t, i) {\n                        let n = this._mightContainRTL,\n                            o = this._mightContainUnusualLineTerminators,\n                            s = this._mightContainNonBasicASCII,\n                            a = !0,\n                            l = [];\n                        for (let t = 0; t < e.length; t++) {\n                            let i = e[t];\n                            a && i._isTracked && (a = !1);\n                            let c = i.range;\n                            if (i.text) {\n                                let e = !0;\n                                s || (e = !r.$i(i.text), s = e), !n && e && (n = r.Ut(i.text)), !o && e && (o = r.ab(i.text))\n                            }\n                            let d = \"\",\n                                h = 0,\n                                u = 0,\n                                g = 0;\n                            if (i.text) {\n                                let e;\n                                [h, u, g, e] = (0, le.QZ)(i.text);\n                                const t = this.getEOL();\n                                d = 0 === e || e === (\"\\r\\n\" === t ? 2 : 1) ? i.text : i.text.replace(/\\r\\n|\\r|\\n/g, t)\n                            }\n                            l[t] = {\n                                sortIndex: t,\n                                identifier: i.identifier || null,\n                                range: c,\n                                rangeOffset: this.getOffsetAt(c.startLineNumber, c.startColumn),\n                                rangeLength: this.getValueLengthInRange(c),\n                                text: d,\n                                eolCount: h,\n                                firstLineLength: u,\n                                lastLineLength: g,\n                                forceMoveMarkers: Boolean(i.forceMoveMarkers),\n                                isAutoWhitespaceEdit: i.isAutoWhitespaceEdit || !1\n                            }\n                        }\n                        l.sort(de._sortOpsAscending);\n                        let c = !1;\n                        for (let e = 0, t = l.length - 1; e < t; e++) {\n                            let t = l[e].range.getEndPosition(),\n                                i = l[e + 1].range.getStartPosition();\n                            if (i.isBeforeOrEqual(t)) {\n                                if (i.isBefore(t)) throw new Error(\"Overlapping ranges are not allowed!\");\n                                c = !0\n                            }\n                        }\n                        a && (l = this._reduceOperations(l));\n                        let d = i || t ? de._getInverseEditRanges(l) : [],\n                            h = [];\n                        if (t)\n                            for (let e = 0; e < l.length; e++) {\n                                let t = l[e],\n                                    i = d[e];\n                                if (t.isAutoWhitespaceEdit && t.range.isEmpty())\n                                    for (let e = i.startLineNumber; e <= i.endLineNumber; e++) {\n                                        let n = \"\";\n                                        e === i.startLineNumber && (n = this.getLineContent(t.range.startLineNumber), -1 !== r.LC(n)) || h.push({\n                                            lineNumber: e,\n                                            oldContent: n\n                                        })\n                                    }\n                            }\n                        let g = null;\n                        if (i) {\n                            let e = 0;\n                            g = [];\n                            for (let t = 0; t < l.length; t++) {\n                                const i = l[t],\n                                    n = d[t],\n                                    o = this.getValueInRange(i.range),\n                                    s = i.rangeOffset + e;\n                                e += i.text.length - o.length, g[t] = {\n                                    sortIndex: i.sortIndex,\n                                    identifier: i.identifier,\n                                    range: n,\n                                    text: o,\n                                    textChange: new ce.q(i.rangeOffset, o, s, i.text)\n                                }\n                            }\n                            c || g.sort(((e, t) => e.sortIndex - t.sortIndex))\n                        }\n                        this._mightContainRTL = n, this._mightContainUnusualLineTerminators = o, this._mightContainNonBasicASCII = s;\n                        const p = this._doApplyEdits(l);\n                        let f = null;\n                        if (t && h.length > 0) {\n                            h.sort(((e, t) => t.lineNumber - e.lineNumber)), f = [];\n                            for (let e = 0, t = h.length; e < t; e++) {\n                                let t = h[e].lineNumber;\n                                if (e > 0 && h[e - 1].lineNumber === t) continue;\n                                let i = h[e].oldContent,\n                                    n = this.getLineContent(t);\n                                0 !== n.length && n !== i && -1 === r.LC(n) && f.push(t)\n                            }\n                        }\n                        return this._onDidChangeContent.fire(), new u.je(g, p, f)\n                    }\n                    _reduceOperations(e) {\n                        return e.length < 1e3 ? e : [this._toSingleEditOperation(e)]\n                    }\n                    _toSingleEditOperation(e) {\n                        let t = !1;\n                        const i = e[0].range,\n                            n = e[e.length - 1].range,\n                            o = new d.e(i.startLineNumber, i.startColumn, n.endLineNumber, n.endColumn);\n                        let s = i.startLineNumber,\n                            r = i.startColumn;\n                        const a = [];\n                        for (let i = 0, n = e.length; i < n; i++) {\n                            const n = e[i],\n                                o = n.range;\n                            t = t || n.forceMoveMarkers, a.push(this.getValueInRange(new d.e(s, r, o.startLineNumber, o.startColumn))), n.text.length > 0 && a.push(n.text), s = o.endLineNumber, r = o.endColumn\n                        }\n                        const l = a.join(\"\"),\n                            [c, h, u] = (0, le.QZ)(l);\n                        return {\n                            sortIndex: 0,\n                            identifier: e[0].identifier,\n                            range: o,\n                            rangeOffset: this.getOffsetAt(o.startLineNumber, o.startColumn),\n                            rangeLength: this.getValueLengthInRange(o, 0),\n                            text: l,\n                            eolCount: c,\n                            firstLineLength: h,\n                            lastLineLength: u,\n                            forceMoveMarkers: t,\n                            isAutoWhitespaceEdit: !1\n                        }\n                    }\n                    _doApplyEdits(e) {\n                        e.sort(de._sortOpsDescending);\n                        let t = [];\n                        for (let i = 0; i < e.length; i++) {\n                            let n = e[i];\n                            const o = n.range.startLineNumber,\n                                s = n.range.startColumn,\n                                r = n.range.endLineNumber,\n                                a = n.range.endColumn;\n                            if (o === r && s === a && 0 === n.text.length) continue;\n                            n.text ? (this._pieceTree.delete(n.rangeOffset, n.rangeLength), this._pieceTree.insert(n.rangeOffset, n.text, !0)) : this._pieceTree.delete(n.rangeOffset, n.rangeLength);\n                            const l = new d.e(o, s, r, a);\n                            t.push({\n                                range: l,\n                                rangeLength: n.rangeLength,\n                                text: n.text,\n                                rangeOffset: n.rangeOffset,\n                                forceMoveMarkers: n.forceMoveMarkers\n                            })\n                        }\n                        return t\n                    }\n                    findMatchesLineByLine(e, t, i, n) {\n                        return this._pieceTree.findMatchesLineByLine(e, t, i, n)\n                    }\n                    static _getInverseEditRanges(e) {\n                        let t = [],\n                            i = 0,\n                            n = 0,\n                            o = null;\n                        for (let s = 0, r = e.length; s < r; s++) {\n                            let r, a, l, c = e[s];\n                            if (o ? o.range.endLineNumber === c.range.startLineNumber ? (r = i, a = n + (c.range.startColumn - o.range.endColumn)) : (r = i + (c.range.startLineNumber - o.range.endLineNumber), a = c.range.startColumn) : (r = c.range.startLineNumber, a = c.range.startColumn), c.text.length > 0) {\n                                const e = c.eolCount + 1;\n                                l = 1 === e ? new d.e(r, a, r, a + c.firstLineLength) : new d.e(r, a, r + e - 1, c.lastLineLength + 1)\n                            } else l = new d.e(r, a, r, a);\n                            i = l.endLineNumber, n = l.endColumn, t.push(l), o = c\n                        }\n                        return t\n                    }\n                    static _sortOpsAscending(e, t) {\n                        let i = d.e.compareRangesUsingEnds(e.range, t.range);\n                        return 0 === i ? e.sortIndex - t.sortIndex : i\n                    }\n                    static _sortOpsDescending(e, t) {\n                        let i = d.e.compareRangesUsingEnds(e.range, t.range);\n                        return 0 === i ? t.sortIndex - e.sortIndex : -i\n                    }\n                }\n                class he {\n                    constructor(e, t, i, n, o, s, r, a, l) {\n                        this._chunks = e, this._bom = t, this._cr = i, this._lf = n, this._crlf = o, this._containsRTL = s, this._containsUnusualLineTerminators = r, this._isBasicASCII = a, this._normalizeEOL = l\n                    }\n                    _getEOL(e) {\n                        const t = this._cr + this._lf + this._crlf,\n                            i = this._cr + this._crlf;\n                        return 0 === t ? 1 === e ? \"\\n\" : \"\\r\\n\" : i > t / 2 ? \"\\r\\n\" : \"\\n\"\n                    }\n                    create(e) {\n                        const t = this._getEOL(e);\n                        let i = this._chunks;\n                        if (this._normalizeEOL && (\"\\r\\n\" === t && (this._cr > 0 || this._lf > 0) || \"\\n\" === t && (this._cr > 0 || this._crlf > 0)))\n                            for (let e = 0, n = i.length; e < n; e++) {\n                                let n = i[e].buffer.replace(/\\r\\n|\\r|\\n/g, t),\n                                    o = ie(n);\n                                i[e] = new oe(n, o)\n                            }\n                        const n = new de(i, this._bom, t, this._containsRTL, this._containsUnusualLineTerminators, this._isBasicASCII, this._normalizeEOL);\n                        return {\n                            textBuffer: n,\n                            disposable: n\n                        }\n                    }\n                }\n                class ue {\n                    constructor() {\n                        this.chunks = [], this.BOM = \"\", this._hasPreviousChar = !1, this._previousChar = 0, this._tmpLineStarts = [], this.cr = 0, this.lf = 0, this.crlf = 0, this.containsRTL = !1, this.containsUnusualLineTerminators = !1, this.isBasicASCII = !0\n                    }\n                    acceptChunk(e) {\n                        if (0 === e.length) return;\n                        0 === this.chunks.length && r.uS(e) && (this.BOM = r.c1, e = e.substr(1));\n                        const t = e.charCodeAt(e.length - 1);\n                        13 === t || t >= 55296 && t <= 56319 ? (this._acceptChunk1(e.substr(0, e.length - 1), !1), this._hasPreviousChar = !0, this._previousChar = t) : (this._acceptChunk1(e, !1), this._hasPreviousChar = !1, this._previousChar = t)\n                    }\n                    _acceptChunk1(e, t) {\n                        (t || 0 !== e.length) && (this._hasPreviousChar ? this._acceptChunk2(String.fromCharCode(this._previousChar) + e) : this._acceptChunk2(e))\n                    }\n                    _acceptChunk2(e) {\n                        const t = function(e, t) {\n                            e.length = 0, e[0] = 0;\n                            let i = 1,\n                                n = 0,\n                                o = 0,\n                                s = 0,\n                                r = !0;\n                            for (let a = 0, l = t.length; a < l; a++) {\n                                const c = t.charCodeAt(a);\n                                13 === c ? a + 1 < l && 10 === t.charCodeAt(a + 1) ? (s++, e[i++] = a + 2, a++) : (n++, e[i++] = a + 1) : 10 === c ? (o++, e[i++] = a + 1) : r && 9 !== c && (c < 32 || c > 126) && (r = !1)\n                            }\n                            const a = new te(ee(e), n, o, s, r);\n                            return e.length = 0, a\n                        }(this._tmpLineStarts, e);\n                        this.chunks.push(new oe(e, t.lineStarts)), this.cr += t.cr, this.lf += t.lf, this.crlf += t.crlf, this.isBasicASCII && (this.isBasicASCII = t.isBasicASCII), this.isBasicASCII || this.containsRTL || (this.containsRTL = r.Ut(e)), this.isBasicASCII || this.containsUnusualLineTerminators || (this.containsUnusualLineTerminators = r.ab(e))\n                    }\n                    finish(e = !0) {\n                        return this._finish(), new he(this.chunks, this.BOM, this.cr, this.lf, this.crlf, this.containsRTL, this.containsUnusualLineTerminators, this.isBasicASCII, e)\n                    }\n                    _finish() {\n                        if (0 === this.chunks.length && this._acceptChunk1(\"\", !0), this._hasPreviousChar) {\n                            this._hasPreviousChar = !1;\n                            let e = this.chunks[this.chunks.length - 1];\n                            e.buffer += String.fromCharCode(this._previousChar);\n                            let t = ie(e.buffer);\n                            e.lineStarts = t, 13 === this._previousChar && this.cr++\n                        }\n                    }\n                }\n                var ge = i(83256),\n                    pe = i(9488),\n                    fe = i(78411),\n                    me = i(44101),\n                    ve = i(28111),\n                    _e = i(84013),\n                    be = i(1432);\n                class we {\n                    constructor() {\n                        this._beginState = [], this._valid = [], this._len = 0, this._invalidLineStartIndex = 0\n                    }\n                    _reset(e) {\n                        this._beginState = [], this._valid = [], this._len = 0, this._invalidLineStartIndex = 0, e && this._setBeginState(0, e)\n                    }\n                    flush(e) {\n                        this._reset(e)\n                    }\n                    get invalidLineStartIndex() {\n                        return this._invalidLineStartIndex\n                    }\n                    _invalidateLine(e) {\n                        e < this._len && (this._valid[e] = !1), e < this._invalidLineStartIndex && (this._invalidLineStartIndex = e)\n                    }\n                    _isValid(e) {\n                        return e < this._len && this._valid[e]\n                    }\n                    getBeginState(e) {\n                        return e < this._len ? this._beginState[e] : null\n                    }\n                    _ensureLine(e) {\n                        for (; e >= this._len;) this._beginState[this._len] = null, this._valid[this._len] = !1, this._len++\n                    }\n                    _deleteLines(e, t) {\n                        0 !== t && (e + t > this._len && (t = this._len - e), this._beginState.splice(e, t), this._valid.splice(e, t), this._len -= t)\n                    }\n                    _insertLines(e, t) {\n                        if (0 === t) return;\n                        const i = [],\n                            n = [];\n                        for (let e = 0; e < t; e++) i[e] = null, n[e] = !1;\n                        this._beginState = pe.Zv(this._beginState, e, i), this._valid = pe.Zv(this._valid, e, n), this._len += t\n                    }\n                    _setValid(e, t) {\n                        this._ensureLine(e), this._valid[e] = t\n                    }\n                    _setBeginState(e, t) {\n                        this._ensureLine(e), this._beginState[e] = t\n                    }\n                    setEndState(e, t, i) {\n                        if (this._setValid(t, !0), this._invalidLineStartIndex = t + 1, t === e - 1) return;\n                        const n = this.getBeginState(t + 1);\n                        if (null === n || !i.equals(n)) return this._setBeginState(t + 1, i), void this._invalidateLine(t + 1);\n                        let o = t + 1;\n                        for (; o < e && this._isValid(o);) o++;\n                        this._invalidLineStartIndex = o\n                    }\n                    setFakeTokens(e) {\n                        this._setValid(e, !1)\n                    }\n                    applyEdits(e, t) {\n                        const i = e.endLineNumber - e.startLineNumber,\n                            n = t;\n                        for (let t = Math.min(i, n); t >= 0; t--) this._invalidateLine(e.startLineNumber + t - 1);\n                        this._acceptDeleteRange(e), this._acceptInsertText(new c.L(e.startLineNumber, e.startColumn), t)\n                    }\n                    _acceptDeleteRange(e) {\n                        e.startLineNumber - 1 >= this._len || this._deleteLines(e.startLineNumber, e.endLineNumber - e.startLineNumber)\n                    }\n                    _acceptInsertText(e, t) {\n                        e.lineNumber - 1 >= this._len || this._insertLines(e.lineNumber, t)\n                    }\n                }\n                class ye extends s.JT {\n                    constructor(e, t) {\n                        super(), this._textModel = e, this._languageIdCodec = t, this._isDisposed = !1, this._tokenizationStateStore = new we, this._tokenizationSupport = null, this._register(me.RW.onDidChange((e => {\n                            const t = this._textModel.getLanguageId(); - 1 !== e.changedLanguages.indexOf(t) && (this._resetTokenizationState(), this._textModel.clearTokens())\n                        }))), this._register(this._textModel.onDidChangeContentFast((e => {\n                            if (e.isFlush) this._resetTokenizationState();\n                            else {\n                                for (let t = 0, i = e.changes.length; t < i; t++) {\n                                    const i = e.changes[t],\n                                        [n] = (0, le.QZ)(i.text);\n                                    this._tokenizationStateStore.applyEdits(i.range, n)\n                                }\n                                this._beginBackgroundTokenization()\n                            }\n                        }))), this._register(this._textModel.onDidChangeAttached((() => {\n                            this._beginBackgroundTokenization()\n                        }))), this._register(this._textModel.onDidChangeLanguage((() => {\n                            this._resetTokenizationState(), this._textModel.clearTokens()\n                        }))), this._resetTokenizationState()\n                    }\n                    dispose() {\n                        this._isDisposed = !0, super.dispose()\n                    }\n                    _resetTokenizationState() {\n                        const [e, t] = function(e) {\n                            const t = e.getLanguageId();\n                            let i = e.isTooLargeForTokenization() ? null : me.RW.get(t),\n                                o = null;\n                            if (i) try {\n                                o = i.getInitialState()\n                            } catch (e) {\n                                (0, n.dL)(e), i = null\n                            }\n                            return [i, o]\n                        }(this._textModel);\n                        this._tokenizationSupport = e, this._tokenizationStateStore.flush(t), this._beginBackgroundTokenization()\n                    }\n                    _beginBackgroundTokenization() {\n                        this._textModel.isAttachedToEditor() && this._hasLinesToTokenize() && be.xS((() => {\n                            this._isDisposed || this._revalidateTokensNow()\n                        }))\n                    }\n                    _revalidateTokensNow() {\n                        const e = this._textModel.getLineCount(),\n                            t = new le.DA,\n                            i = _e.G.create(!1);\n                        let n = -1;\n                        for (; this._hasLinesToTokenize() && !(i.elapsed() > 1) && (n = this._tokenizeOneInvalidLine(t), !(n >= e)););\n                        this._beginBackgroundTokenization(), this._textModel.setTokens(t.tokens, !this._hasLinesToTokenize())\n                    }\n                    tokenizeViewport(e, t) {\n                        const i = new le.DA;\n                        this._tokenizeViewport(i, e, t), this._textModel.setTokens(i.tokens, !this._hasLinesToTokenize())\n                    }\n                    reset() {\n                        this._resetTokenizationState(), this._textModel.clearTokens()\n                    }\n                    forceTokenization(e) {\n                        const t = new le.DA;\n                        this._updateTokensUntilLine(t, e), this._textModel.setTokens(t.tokens, !this._hasLinesToTokenize())\n                    }\n                    isCheapToTokenize(e) {\n                        if (!this._tokenizationSupport) return !0;\n                        const t = this._tokenizationStateStore.invalidLineStartIndex + 1;\n                        return !(e > t) && (e < t || this._textModel.getLineLength(e) < 2048)\n                    }\n                    _hasLinesToTokenize() {\n                        return !!this._tokenizationSupport && this._tokenizationStateStore.invalidLineStartIndex < this._textModel.getLineCount()\n                    }\n                    _tokenizeOneInvalidLine(e) {\n                        if (!this._hasLinesToTokenize()) return this._textModel.getLineCount() + 1;\n                        const t = this._tokenizationStateStore.invalidLineStartIndex + 1;\n                        return this._updateTokensUntilLine(e, t), t\n                    }\n                    _updateTokensUntilLine(e, t) {\n                        if (!this._tokenizationSupport) return;\n                        const i = this._textModel.getLanguageId(),\n                            n = this._textModel.getLineCount(),\n                            o = t - 1;\n                        for (let t = this._tokenizationStateStore.invalidLineStartIndex; t <= o; t++) {\n                            const o = this._textModel.getLineContent(t + 1),\n                                s = this._tokenizationStateStore.getBeginState(t),\n                                r = Ce(this._languageIdCodec, i, this._tokenizationSupport, o, !0, s);\n                            e.add(t + 1, r.tokens), this._tokenizationStateStore.setEndState(n, t, r.endState), t = this._tokenizationStateStore.invalidLineStartIndex - 1\n                        }\n                    }\n                    _tokenizeViewport(e, t, i) {\n                        if (!this._tokenizationSupport) return;\n                        if (i <= this._tokenizationStateStore.invalidLineStartIndex) return;\n                        if (t <= this._tokenizationStateStore.invalidLineStartIndex) return void this._updateTokensUntilLine(e, i);\n                        let n = this._textModel.getLineFirstNonWhitespaceColumn(t);\n                        const o = [];\n                        let s = null;\n                        for (let e = t - 1; n > 1 && e >= 1; e--) {\n                            const t = this._textModel.getLineFirstNonWhitespaceColumn(e);\n                            if (0 !== t && t < n) {\n                                if (s = this._tokenizationStateStore.getBeginState(e - 1), s) break;\n                                o.push(this._textModel.getLineContent(e)), n = t\n                            }\n                        }\n                        s || (s = this._tokenizationSupport.getInitialState());\n                        const r = this._textModel.getLanguageId();\n                        let a = s;\n                        for (let e = o.length - 1; e >= 0; e--) {\n                            a = Ce(this._languageIdCodec, r, this._tokenizationSupport, o[e], !1, a).endState\n                        }\n                        for (let n = t; n <= i; n++) {\n                            const t = this._textModel.getLineContent(n),\n                                i = Ce(this._languageIdCodec, r, this._tokenizationSupport, t, !0, a);\n                            e.add(n, i.tokens), this._tokenizationStateStore.setFakeTokens(n - 1), a = i.endState\n                        }\n                    }\n                }\n\n                function Ce(e, t, i, o, s, r) {\n                    let a = null;\n                    if (i) try {\n                        a = i.tokenize2(o, s, r.clone(), 0)\n                    } catch (e) {\n                        (0, n.dL)(e)\n                    }\n                    return a || (a = (0, ve.mh)(e.encodeLanguageId(t), o, r, 0)), fe.A.convertToEndOffset(a.tokens, o.length), a\n                }\n                var xe = i(97461),\n                    Se = i(83831),\n                    ke = i(40764),\n                    Le = i(34227),\n                    Ne = i(41264),\n                    De = i(64862);\n                class Ie {\n                    constructor(e, t, i) {\n                        this.range = e, this.nestingLevel = t, this.isInvalid = i\n                    }\n                }\n                class Ee {\n                    constructor(e, t, i, n) {\n                        this.range = e, this.openingBracketRange = t, this.closingBracketRange = i, this.nestingLevel = n\n                    }\n                }\n                class Te extends Ee {\n                    constructor(e, t, i, n, o) {\n                        super(e, t, i, n), this.minVisibleColumnIndentation = o\n                    }\n                }\n                class Me {\n                    constructor(e, t) {\n                        this.lineCount = e, this.columnCount = t\n                    }\n                    toString() {\n                        return `${this.lineCount},${this.columnCount}`\n                    }\n                }\n                const Ae = Math.pow(2, 26);\n\n                function Oe(e, t) {\n                    return e * Ae + t\n                }\n\n                function Pe(e) {\n                    const t = e,\n                        i = Math.floor(t / Ae);\n                    return new Me(i, t - i * Ae)\n                }\n\n                function Re(e, t) {\n                    return t < Ae ? e + t : e - e % Ae + t\n                }\n\n                function Fe(e, t) {\n                    return e < t\n                }\n\n                function Be(e, t) {\n                    return e <= t\n                }\n\n                function Ve(e, t) {\n                    return e >= t\n                }\n\n                function We(e) {\n                    return Oe(e.lineNumber - 1, e.column - 1)\n                }\n\n                function He(e, t) {\n                    const i = e,\n                        n = Math.floor(i / Ae),\n                        o = i - n * Ae,\n                        s = t,\n                        r = Math.floor(s / Ae),\n                        a = s - r * Ae;\n                    return new d.e(n + 1, o + 1, r + 1, a + 1)\n                }\n                class ze {\n                    constructor(e, t, i) {\n                        this.startOffset = e, this.endOffset = t, this.newLength = i\n                    }\n                }\n                class je {\n                    constructor(e, t) {\n                        this.documentLength = t, this.nextEditIdx = 0, this.deltaOldToNewLineCount = 0, this.deltaOldToNewColumnCount = 0, this.deltaLineIdxInOld = -1, this.edits = e.map((e => Ue.from(e)))\n                    }\n                    getOffsetBeforeChange(e) {\n                        return this.adjustNextEdit(e), this.translateCurToOld(e)\n                    }\n                    getDistanceToNextChange(e) {\n                        this.adjustNextEdit(e);\n                        const t = this.edits[this.nextEditIdx];\n                        return function(e, t) {\n                            const i = e,\n                                n = t;\n                            if (n - i <= 0) return 0;\n                            const o = Math.floor(i / Ae),\n                                s = Math.floor(n / Ae),\n                                r = n - s * Ae;\n                            if (o === s) return Oe(0, r - (i - o * Ae));\n                            return Oe(s - o, r)\n                        }(e, t ? this.translateOldToCur(t.offsetObj) : this.documentLength)\n                    }\n                    translateOldToCur(e) {\n                        return e.lineCount === this.deltaLineIdxInOld ? Oe(e.lineCount + this.deltaOldToNewLineCount, e.columnCount + this.deltaOldToNewColumnCount) : Oe(e.lineCount + this.deltaOldToNewLineCount, e.columnCount)\n                    }\n                    translateCurToOld(e) {\n                        const t = Pe(e);\n                        return t.lineCount - this.deltaOldToNewLineCount === this.deltaLineIdxInOld ? Oe(t.lineCount - this.deltaOldToNewLineCount, t.columnCount - this.deltaOldToNewColumnCount) : Oe(t.lineCount - this.deltaOldToNewLineCount, t.columnCount)\n                    }\n                    adjustNextEdit(e) {\n                        for (; this.nextEditIdx < this.edits.length;) {\n                            const t = this.edits[this.nextEditIdx],\n                                i = this.translateOldToCur(t.endOffsetAfterObj);\n                            if (!Be(i, e)) break; {\n                                this.nextEditIdx++;\n                                const e = Pe(i),\n                                    n = Pe(this.translateOldToCur(t.endOffsetBeforeObj)),\n                                    o = e.lineCount - n.lineCount;\n                                this.deltaOldToNewLineCount += o;\n                                const s = this.deltaLineIdxInOld === t.endOffsetBeforeObj.lineCount ? this.deltaOldToNewColumnCount : 0,\n                                    r = e.columnCount - n.columnCount;\n                                this.deltaOldToNewColumnCount = s + r, this.deltaLineIdxInOld = t.endOffsetBeforeObj.lineCount\n                            }\n                        }\n                    }\n                }\n                class Ue {\n                    constructor(e, t, i) {\n                        this.endOffsetBeforeObj = Pe(t), this.endOffsetAfterObj = Pe(Re(e, i)), this.offsetObj = Pe(e)\n                    }\n                    static from(e) {\n                        return new Ue(e.startOffset, e.endOffset, e.newLength)\n                    }\n                }\n                var $e = i(47707);\n                const Ke = new Array;\n                class qe {\n                    constructor(e, t) {\n                        this.items = e, this.additionalItems = t\n                    }\n                    static create(e, t) {\n                        if (e <= 128 && 0 === t.length) {\n                            let i = qe.cache[e];\n                            return i || (i = new qe(e, t), qe.cache[e] = i), i\n                        }\n                        return new qe(e, t)\n                    }\n                    static getEmpty() {\n                        return this.empty\n                    }\n                    add(e, t) {\n                        const i = t.getKey(e);\n                        let n = i >> 5;\n                        if (0 === n) {\n                            const e = 1 << i | this.items;\n                            return e === this.items ? this : qe.create(e, this.additionalItems)\n                        }\n                        n--;\n                        const o = this.additionalItems.slice(0);\n                        for (; o.length < n;) o.push(0);\n                        return o[n] |= 1 << (31 & i), qe.create(this.items, o)\n                    }\n                    merge(e) {\n                        const t = this.items | e.items;\n                        if (this.additionalItems === Ke && e.additionalItems === Ke) return t === this.items ? this : t === e.items ? e : qe.create(t, Ke);\n                        const i = new Array;\n                        for (let t = 0; t < Math.max(this.additionalItems.length, e.additionalItems.length); t++) {\n                            const n = this.additionalItems[t] || 0,\n                                o = e.additionalItems[t] || 0;\n                            i.push(n | o)\n                        }\n                        return qe.create(t, i)\n                    }\n                    intersects(e) {\n                        if (0 != (this.items & e.items)) return !0;\n                        for (let t = 0; t < Math.min(this.additionalItems.length, e.additionalItems.length); t++)\n                            if (0 != (this.additionalItems[t] & e.additionalItems[t])) return !0;\n                        return !1\n                    }\n                }\n                qe.cache = new Array(129), qe.empty = qe.create(0, Ke);\n                const Ze = {\n                    getKey: e => e\n                };\n                class Ge {\n                    constructor() {\n                        this.items = new Map\n                    }\n                    getKey(e) {\n                        let t = this.items.get(e);\n                        return void 0 === t && (t = this.items.size, this.items.set(e, t)), t\n                    }\n                }\n                class Ye {\n                    constructor(e) {\n                        this._length = e\n                    }\n                    get length() {\n                        return this._length\n                    }\n                }\n                class Qe extends Ye {\n                    constructor(e, t, i, n, o) {\n                        super(e), this.openingBracket = t, this.child = i, this.closingBracket = n, this.missingOpeningBracketIds = o\n                    }\n                    static create(e, t, i) {\n                        let n = e.length;\n                        return t && (n = Re(n, t.length)), i && (n = Re(n, i.length)), new Qe(n, e, t, i, t ? t.missingOpeningBracketIds : qe.getEmpty())\n                    }\n                    get kind() {\n                        return 2\n                    }\n                    get listHeight() {\n                        return 0\n                    }\n                    get childrenLength() {\n                        return 3\n                    }\n                    getChild(e) {\n                        switch (e) {\n                            case 0:\n                                return this.openingBracket;\n                            case 1:\n                                return this.child;\n                            case 2:\n                                return this.closingBracket\n                        }\n                        throw new Error(\"Invalid child index\")\n                    }\n                    get children() {\n                        const e = new Array;\n                        return e.push(this.openingBracket), this.child && e.push(this.child), this.closingBracket && e.push(this.closingBracket), e\n                    }\n                    canBeReused(e) {\n                        return null !== this.closingBracket && !e.intersects(this.missingOpeningBracketIds)\n                    }\n                    deepClone() {\n                        return new Qe(this.length, this.openingBracket.deepClone(), this.child && this.child.deepClone(), this.closingBracket && this.closingBracket.deepClone(), this.missingOpeningBracketIds)\n                    }\n                    computeMinIndentation(e, t) {\n                        return this.child ? this.child.computeMinIndentation(Re(e, this.openingBracket.length), t) : Number.MAX_SAFE_INTEGER\n                    }\n                }\n                class Xe extends Ye {\n                    constructor(e, t, i) {\n                        super(e), this.listHeight = t, this._missingOpeningBracketIds = i, this.cachedMinIndentation = -1\n                    }\n                    static create23(e, t, i, n = !1) {\n                        let o = e.length,\n                            s = e.missingOpeningBracketIds;\n                        if (e.listHeight !== t.listHeight) throw new Error(\"Invalid list heights\");\n                        if (o = Re(o, t.length), s = s.merge(t.missingOpeningBracketIds), i) {\n                            if (e.listHeight !== i.listHeight) throw new Error(\"Invalid list heights\");\n                            o = Re(o, i.length), s = s.merge(i.missingOpeningBracketIds)\n                        }\n                        return n ? new et(o, e.listHeight + 1, e, t, i, s) : new Je(o, e.listHeight + 1, e, t, i, s)\n                    }\n                    static getEmpty() {\n                        return new it(0, 0, [], qe.getEmpty())\n                    }\n                    get kind() {\n                        return 4\n                    }\n                    get missingOpeningBracketIds() {\n                        return this._missingOpeningBracketIds\n                    }\n                    throwIfImmutable() {}\n                    makeLastElementMutable() {\n                        this.throwIfImmutable();\n                        const e = this.childrenLength;\n                        if (0 === e) return;\n                        const t = this.getChild(e - 1),\n                            i = 4 === t.kind ? t.toMutable() : t;\n                        return t !== i && this.setChild(e - 1, i), i\n                    }\n                    makeFirstElementMutable() {\n                        this.throwIfImmutable();\n                        if (0 === this.childrenLength) return;\n                        const e = this.getChild(0),\n                            t = 4 === e.kind ? e.toMutable() : e;\n                        return e !== t && this.setChild(0, t), t\n                    }\n                    canBeReused(e) {\n                        if (e.intersects(this.missingOpeningBracketIds)) return !1;\n                        let t, i = this;\n                        for (; 4 === i.kind && (t = i.childrenLength) > 0;) i = i.getChild(t - 1);\n                        return i.canBeReused(e)\n                    }\n                    handleChildrenChanged() {\n                        this.throwIfImmutable();\n                        const e = this.childrenLength;\n                        let t = this.getChild(0).length,\n                            i = this.getChild(0).missingOpeningBracketIds;\n                        for (let n = 1; n < e; n++) {\n                            const e = this.getChild(n);\n                            t = Re(t, e.length), i = i.merge(e.missingOpeningBracketIds)\n                        }\n                        this._length = t, this._missingOpeningBracketIds = i, this.cachedMinIndentation = -1\n                    }\n                    computeMinIndentation(e, t) {\n                        if (-1 !== this.cachedMinIndentation) return this.cachedMinIndentation;\n                        let i = Number.MAX_SAFE_INTEGER,\n                            n = e;\n                        for (let e = 0; e < this.childrenLength; e++) {\n                            const o = this.getChild(e);\n                            o && (i = Math.min(i, o.computeMinIndentation(n, t)), n = Re(n, o.length))\n                        }\n                        return this.cachedMinIndentation = i, i\n                    }\n                }\n                class Je extends Xe {\n                    constructor(e, t, i, n, o, s) {\n                        super(e, t, s), this._item1 = i, this._item2 = n, this._item3 = o\n                    }\n                    get childrenLength() {\n                        return null !== this._item3 ? 3 : 2\n                    }\n                    getChild(e) {\n                        switch (e) {\n                            case 0:\n                                return this._item1;\n                            case 1:\n                                return this._item2;\n                            case 2:\n                                return this._item3\n                        }\n                        throw new Error(\"Invalid child index\")\n                    }\n                    setChild(e, t) {\n                        switch (e) {\n                            case 0:\n                                return void(this._item1 = t);\n                            case 1:\n                                return void(this._item2 = t);\n                            case 2:\n                                return void(this._item3 = t)\n                        }\n                        throw new Error(\"Invalid child index\")\n                    }\n                    get children() {\n                        return this._item3 ? [this._item1, this._item2, this._item3] : [this._item1, this._item2]\n                    }\n                    get item1() {\n                        return this._item1\n                    }\n                    get item2() {\n                        return this._item2\n                    }\n                    get item3() {\n                        return this._item3\n                    }\n                    deepClone() {\n                        return new Je(this.length, this.listHeight, this._item1.deepClone(), this._item2.deepClone(), this._item3 ? this._item3.deepClone() : null, this.missingOpeningBracketIds)\n                    }\n                    appendChildOfSameHeight(e) {\n                        if (this._item3) throw new Error(\"Cannot append to a full (2,3) tree node\");\n                        this.throwIfImmutable(), this._item3 = e, this.handleChildrenChanged()\n                    }\n                    unappendChild() {\n                        if (!this._item3) throw new Error(\"Cannot remove from a non-full (2,3) tree node\");\n                        this.throwIfImmutable();\n                        const e = this._item3;\n                        return this._item3 = null, this.handleChildrenChanged(), e\n                    }\n                    prependChildOfSameHeight(e) {\n                        if (this._item3) throw new Error(\"Cannot prepend to a full (2,3) tree node\");\n                        this.throwIfImmutable(), this._item3 = this._item2, this._item2 = this._item1, this._item1 = e, this.handleChildrenChanged()\n                    }\n                    unprependChild() {\n                        if (!this._item3) throw new Error(\"Cannot remove from a non-full (2,3) tree node\");\n                        this.throwIfImmutable();\n                        const e = this._item1;\n                        return this._item1 = this._item2, this._item2 = this._item3, this._item3 = null, this.handleChildrenChanged(), e\n                    }\n                    toMutable() {\n                        return this\n                    }\n                }\n                class et extends Je {\n                    toMutable() {\n                        return new Je(this.length, this.listHeight, this.item1, this.item2, this.item3, this.missingOpeningBracketIds)\n                    }\n                    throwIfImmutable() {\n                        throw new Error(\"this instance is immutable\")\n                    }\n                }\n                class tt extends Xe {\n                    constructor(e, t, i, n) {\n                        super(e, t, n), this._children = i\n                    }\n                    get childrenLength() {\n                        return this._children.length\n                    }\n                    getChild(e) {\n                        return this._children[e]\n                    }\n                    setChild(e, t) {\n                        this._children[e] = t\n                    }\n                    get children() {\n                        return this._children\n                    }\n                    deepClone() {\n                        const e = new Array(this._children.length);\n                        for (let t = 0; t < this._children.length; t++) e[t] = this._children[t].deepClone();\n                        return new tt(this.length, this.listHeight, e, this.missingOpeningBracketIds)\n                    }\n                    appendChildOfSameHeight(e) {\n                        this.throwIfImmutable(), this._children.push(e), this.handleChildrenChanged()\n                    }\n                    unappendChild() {\n                        this.throwIfImmutable();\n                        const e = this._children.pop();\n                        return this.handleChildrenChanged(), e\n                    }\n                    prependChildOfSameHeight(e) {\n                        this.throwIfImmutable(), this._children.unshift(e), this.handleChildrenChanged()\n                    }\n                    unprependChild() {\n                        this.throwIfImmutable();\n                        const e = this._children.shift();\n                        return this.handleChildrenChanged(), e\n                    }\n                    toMutable() {\n                        return this\n                    }\n                }\n                class it extends tt {\n                    toMutable() {\n                        return new tt(this.length, this.listHeight, [...this.children], this.missingOpeningBracketIds)\n                    }\n                    throwIfImmutable() {\n                        throw new Error(\"this instance is immutable\")\n                    }\n                }\n                const nt = [];\n                class ot extends Ye {\n                    get listHeight() {\n                        return 0\n                    }\n                    get childrenLength() {\n                        return 0\n                    }\n                    getChild(e) {\n                        return null\n                    }\n                    get children() {\n                        return nt\n                    }\n                    deepClone() {\n                        return this\n                    }\n                }\n                class st extends ot {\n                    get kind() {\n                        return 0\n                    }\n                    get missingOpeningBracketIds() {\n                        return qe.getEmpty()\n                    }\n                    canBeReused(e) {\n                        return !0\n                    }\n                    computeMinIndentation(e, t) {\n                        const i = Pe(e),\n                            n = (0 === i.columnCount ? i.lineCount : i.lineCount + 1) + 1,\n                            o = (s = Re(e, this.length), Math.floor(s / Ae) + 1);\n                        var s;\n                        let r = Number.MAX_SAFE_INTEGER;\n                        for (let e = n; e <= o; e++) {\n                            const i = t.getLineFirstNonWhitespaceColumn(e),\n                                n = t.getLineContent(e);\n                            if (0 === i) continue;\n                            const o = $e.i.visibleColumnFromColumn(n, i, t.getOptions().tabSize);\n                            r = Math.min(r, o)\n                        }\n                        return r\n                    }\n                }\n                class rt extends ot {\n                    constructor(e) {\n                        super(e)\n                    }\n                    static create(e) {\n                        const t = e,\n                            i = rt.cacheByLength.get(t);\n                        if (i) return i;\n                        const n = new rt(e);\n                        return rt.cacheByLength.set(t, n), n\n                    }\n                    get kind() {\n                        return 1\n                    }\n                    get missingOpeningBracketIds() {\n                        return qe.getEmpty()\n                    }\n                    canBeReused(e) {\n                        return !1\n                    }\n                    computeMinIndentation(e, t) {\n                        return Number.MAX_SAFE_INTEGER\n                    }\n                }\n                rt.cacheByLength = new Map;\n                class at extends ot {\n                    constructor(e, t) {\n                        super(t), this.missingOpeningBracketIds = e\n                    }\n                    get kind() {\n                        return 3\n                    }\n                    canBeReused(e) {\n                        return !e.intersects(this.missingOpeningBracketIds)\n                    }\n                    computeMinIndentation(e, t) {\n                        return Number.MAX_SAFE_INTEGER\n                    }\n                }\n                class lt {\n                    constructor(e, t, i, n, o) {\n                        this.length = e, this.kind = t, this.bracketId = i, this.bracketIds = n, this.astNode = o\n                    }\n                }\n                class ct {\n                    constructor(e, t) {\n                        this.textModel = e, this.bracketTokens = t, this.reader = new dt(this.textModel, this.bracketTokens), this._offset = 0, this.didPeek = !1, this.peeked = null, this.textBufferLineCount = e.getLineCount(), this.textBufferLastLineLength = e.getLineLength(this.textBufferLineCount)\n                    }\n                    get offset() {\n                        return this._offset\n                    }\n                    get length() {\n                        return Oe(this.textBufferLineCount, this.textBufferLastLineLength)\n                    }\n                    skip(e) {\n                        this.didPeek = !1, this._offset = Re(this._offset, e);\n                        const t = Pe(this._offset);\n                        this.reader.setPosition(t.lineCount, t.columnCount)\n                    }\n                    read() {\n                        let e;\n                        return this.peeked ? (this.didPeek = !1, e = this.peeked) : e = this.reader.read(), e && (this._offset = Re(this._offset, e.length)), e\n                    }\n                    peek() {\n                        return this.didPeek || (this.peeked = this.reader.read(), this.didPeek = !0), this.peeked\n                    }\n                }\n                class dt {\n                    constructor(e, t) {\n                        this.textModel = e, this.bracketTokens = t, this.lineIdx = 0, this.line = null, this.lineCharOffset = 0, this.lineTokens = null, this.lineTokenOffset = 0, this.peekedToken = null, this.textBufferLineCount = e.getLineCount(), this.textBufferLastLineLength = e.getLineLength(this.textBufferLineCount)\n                    }\n                    setPosition(e, t) {\n                        e === this.lineIdx ? (this.lineCharOffset = t, this.lineTokenOffset = 0 === this.lineCharOffset ? 0 : this.lineTokens.findTokenIndexAtOffset(this.lineCharOffset)) : (this.lineIdx = e, this.lineCharOffset = t, this.line = null), this.peekedToken = null\n                    }\n                    read() {\n                        if (this.peekedToken) {\n                            const e = this.peekedToken;\n                            return this.peekedToken = null, this.lineCharOffset += e.length, e\n                        }\n                        if (this.lineIdx > this.textBufferLineCount - 1 || this.lineIdx === this.textBufferLineCount - 1 && this.lineCharOffset >= this.textBufferLastLineLength) return null;\n                        null === this.line && (this.lineTokens = this.textModel.getLineTokens(this.lineIdx + 1), this.line = this.lineTokens.getLineContent(), this.lineTokenOffset = 0 === this.lineCharOffset ? 0 : this.lineTokens.findTokenIndexAtOffset(this.lineCharOffset));\n                        const e = this.lineIdx,\n                            t = this.lineCharOffset;\n                        let i = 0;\n                        for (;;) {\n                            const n = this.lineTokens,\n                                o = n.getCount();\n                            let s = null;\n                            if (this.lineTokenOffset < o) {\n                                const r = n.getMetadata(this.lineTokenOffset);\n                                for (; this.lineTokenOffset + 1 < o && r === n.getMetadata(this.lineTokenOffset + 1);) this.lineTokenOffset++;\n                                const a = 0 === me.NX.getTokenType(r),\n                                    l = n.getEndOffset(this.lineTokenOffset);\n                                if (a && l !== this.lineCharOffset) {\n                                    const e = n.getLanguageId(this.lineTokenOffset),\n                                        t = this.line.substring(this.lineCharOffset, l),\n                                        i = this.bracketTokens.getSingleLanguageBracketTokens(e),\n                                        o = i.regExpGlobal;\n                                    if (o) {\n                                        o.lastIndex = 0;\n                                        const e = o.exec(t);\n                                        e && (s = i.getToken(e[0]), s && (this.lineCharOffset += e.index))\n                                    }\n                                }\n                                if (i += l - this.lineCharOffset, s) {\n                                    if (e !== this.lineIdx || t !== this.lineCharOffset) {\n                                        this.peekedToken = s;\n                                        break\n                                    }\n                                    return this.lineCharOffset += s.length, s\n                                }\n                                this.lineTokenOffset++, this.lineCharOffset = l\n                            } else {\n                                if (this.lineIdx === this.textBufferLineCount - 1) break;\n                                if (this.lineIdx++, this.lineTokens = this.textModel.getLineTokens(this.lineIdx + 1), this.lineTokenOffset = 0, this.line = this.lineTokens.getLineContent(), this.lineCharOffset = 0, i += 33, i > 1e3) break\n                            }\n                            if (i > 1500) break\n                        }\n                        const n = (o = e, s = t, r = this.lineIdx, a = this.lineCharOffset, o !== r ? Oe(r - o, a) : Oe(0, a - s));\n                        var o, s, r, a;\n                        return new lt(n, 0, -1, qe.getEmpty(), new st(n))\n                    }\n                }\n                class ht {\n                    constructor(e, t) {\n                        this.text = e, this._offset = 0, this.idx = 0;\n                        const i = t.getRegExpStr() ? new RegExp(t.getRegExpStr() + \"|\\n\", \"g\") : null,\n                            n = [];\n                        let o, s = 0,\n                            r = 0,\n                            a = 0,\n                            l = 0;\n                        const c = new Array;\n                        for (let e = 0; e < 60; e++) c.push(new lt(Oe(0, e), 0, -1, qe.getEmpty(), new st(Oe(0, e))));\n                        const d = new Array;\n                        for (let e = 0; e < 60; e++) d.push(new lt(Oe(1, e), 0, -1, qe.getEmpty(), new st(Oe(1, e))));\n                        if (i)\n                            for (i.lastIndex = 0; null !== (o = i.exec(e));) {\n                                const e = o.index,\n                                    i = o[0];\n                                if (\"\\n\" === i) s++, r = e + 1;\n                                else {\n                                    if (a !== e) {\n                                        let t;\n                                        if (l === s) {\n                                            const i = e - a;\n                                            if (i < c.length) t = c[i];\n                                            else {\n                                                const e = Oe(0, i);\n                                                t = new lt(e, 0, -1, qe.getEmpty(), new st(e))\n                                            }\n                                        } else {\n                                            const i = s - l,\n                                                n = e - r;\n                                            if (1 === i && n < d.length) t = d[n];\n                                            else {\n                                                const e = Oe(i, n);\n                                                t = new lt(e, 0, -1, qe.getEmpty(), new st(e))\n                                            }\n                                        }\n                                        n.push(t)\n                                    }\n                                    n.push(t.getToken(i)), a = e + i.length, l = s\n                                }\n                            }\n                        const h = e.length;\n                        if (a !== h) {\n                            const e = l === s ? Oe(0, h - a) : Oe(s - l, h - r);\n                            n.push(new lt(e, 0, -1, qe.getEmpty(), new st(e)))\n                        }\n                        this.length = Oe(s, h - r), this.tokens = n\n                    }\n                    get offset() {\n                        return this._offset\n                    }\n                    read() {\n                        return this.tokens[this.idx++] || null\n                    }\n                    peek() {\n                        return this.tokens[this.idx] || null\n                    }\n                    skip(e) {\n                        throw new n.B8\n                    }\n                }\n                class ut {\n                    constructor(e) {\n                        this.map = e, this.hasRegExp = !1, this._regExpGlobal = null\n                    }\n                    static createFromLanguage(e, t) {\n                        function i(e, i) {\n                            return t.getKey(`${e}:::${i}`)\n                        }\n                        const n = e.characterPair.getColorizedBrackets(),\n                            o = new Map,\n                            s = new Set;\n                        for (const [t, r] of n) {\n                            s.add(t);\n                            let n = o.get(r);\n                            const a = i(e.languageId, t);\n                            n || (n = {\n                                openingBrackets: qe.getEmpty(),\n                                first: a\n                            }, o.set(r, n)), n.openingBrackets = n.openingBrackets.add(a, Ze)\n                        }\n                        const r = new Map;\n                        for (const [e, t] of o) {\n                            const i = Oe(0, e.length);\n                            r.set(e, new lt(i, 2, t.first, t.openingBrackets, rt.create(i)))\n                        }\n                        for (const t of s) {\n                            const n = Oe(0, t.length),\n                                o = i(e.languageId, t);\n                            r.set(t, new lt(n, 1, o, qe.getEmpty().add(o, Ze), rt.create(n)))\n                        }\n                        return new ut(r)\n                    }\n                    getRegExpStr() {\n                        if (this.isEmpty) return null; {\n                            const e = [...this.map.keys()];\n                            return e.sort(), e.reverse(), e.map((e => function(e) {\n                                const t = (0, r.ec)(e);\n                                return /^[\\w ]+$/.test(e) ? `\\\\b${t}\\\\b` : t\n                            }(e))).join(\"|\")\n                        }\n                    }\n                    get regExpGlobal() {\n                        if (!this.hasRegExp) {\n                            const e = this.getRegExpStr();\n                            this._regExpGlobal = e ? new RegExp(e, \"g\") : null, this.hasRegExp = !0\n                        }\n                        return this._regExpGlobal\n                    }\n                    getToken(e) {\n                        return this.map.get(e)\n                    }\n                    get isEmpty() {\n                        return 0 === this.map.size\n                    }\n                }\n                class gt {\n                    constructor(e, t) {\n                        this.denseKeyProvider = e, this.getLanguageConfiguration = t, this.languageIdToBracketTokens = new Map\n                    }\n                    didLanguageChange(e) {\n                        const t = this.languageIdToBracketTokens.get(e);\n                        if (!t) return !1;\n                        const i = ut.createFromLanguage(this.getLanguageConfiguration(e), this.denseKeyProvider).getRegExpStr();\n                        return t.getRegExpStr() !== i\n                    }\n                    getSingleLanguageBracketTokens(e) {\n                        let t = this.languageIdToBracketTokens.get(e);\n                        return t || (t = ut.createFromLanguage(this.getLanguageConfiguration(e), this.denseKeyProvider), this.languageIdToBracketTokens.set(e, t)), t\n                    }\n                }\n\n                function pt(e, t = !1) {\n                    if (0 === e.length) return null;\n                    if (1 === e.length) return e[0];\n                    let i = e.length;\n                    for (; i > 3;) {\n                        const n = i >> 1;\n                        for (let o = 0; o < n; o++) {\n                            const n = o << 1;\n                            e[o] = Xe.create23(e[n], e[n + 1], n + 3 === i ? e[n + 2] : null, t)\n                        }\n                        i = n\n                    }\n                    return Xe.create23(e[0], e[1], i >= 3 ? e[2] : null, t)\n                }\n\n                function ft(e, t) {\n                    return Math.abs(e.listHeight - t.listHeight)\n                }\n\n                function mt(e, t) {\n                    return e.listHeight === t.listHeight ? Xe.create23(e, t, null, !1) : e.listHeight > t.listHeight ? function(e, t) {\n                        let i = e = e.toMutable();\n                        const n = new Array;\n                        let o;\n                        for (;;) {\n                            if (t.listHeight === i.listHeight) {\n                                o = t;\n                                break\n                            }\n                            if (4 !== i.kind) throw new Error(\"unexpected\");\n                            n.push(i), i = i.makeLastElementMutable()\n                        }\n                        for (let e = n.length - 1; e >= 0; e--) {\n                            const t = n[e];\n                            o ? t.childrenLength >= 3 ? o = Xe.create23(t.unappendChild(), o, null, !1) : (t.appendChildOfSameHeight(o), o = void 0) : t.handleChildrenChanged()\n                        }\n                        return o ? Xe.create23(e, o, null, !1) : e\n                    }(e, t) : function(e, t) {\n                        let i = e = e.toMutable();\n                        const n = new Array;\n                        for (; t.listHeight !== i.listHeight;) {\n                            if (4 !== i.kind) throw new Error(\"unexpected\");\n                            n.push(i), i = i.makeFirstElementMutable()\n                        }\n                        let o = t;\n                        for (let e = n.length - 1; e >= 0; e--) {\n                            const t = n[e];\n                            o ? t.childrenLength >= 3 ? o = Xe.create23(o, t.unprependChild(), null, !1) : (t.prependChildOfSameHeight(o), o = void 0) : t.handleChildrenChanged()\n                        }\n                        return o ? Xe.create23(o, e, null, !1) : e\n                    }(t, e)\n                }\n                class vt {\n                    constructor(e) {\n                        this.lastOffset = 0, this.nextNodes = [e], this.offsets = [0], this.idxs = []\n                    }\n                    readLongestNodeAt(e, t) {\n                        if (Fe(e, this.lastOffset)) throw new Error(\"Invalid offset\");\n                        for (this.lastOffset = e;;) {\n                            const i = bt(this.nextNodes);\n                            if (!i) return;\n                            const n = bt(this.offsets);\n                            if (Fe(e, n)) return;\n                            if (Fe(n, e))\n                                if (Re(n, i.length) <= e) this.nextNodeAfterCurrent();\n                                else {\n                                    const e = _t(i); - 1 !== e ? (this.nextNodes.push(i.getChild(e)), this.offsets.push(n), this.idxs.push(e)) : this.nextNodeAfterCurrent()\n                                }\n                            else {\n                                if (t(i)) return this.nextNodeAfterCurrent(), i; {\n                                    const e = _t(i);\n                                    if (-1 === e) return void this.nextNodeAfterCurrent();\n                                    this.nextNodes.push(i.getChild(e)), this.offsets.push(n), this.idxs.push(e)\n                                }\n                            }\n                        }\n                    }\n                    nextNodeAfterCurrent() {\n                        for (;;) {\n                            const e = bt(this.offsets),\n                                t = bt(this.nextNodes);\n                            if (this.nextNodes.pop(), this.offsets.pop(), 0 === this.idxs.length) break;\n                            const i = bt(this.nextNodes),\n                                n = _t(i, this.idxs[this.idxs.length - 1]);\n                            if (-1 !== n) {\n                                this.nextNodes.push(i.getChild(n)), this.offsets.push(Re(e, t.length)), this.idxs[this.idxs.length - 1] = n;\n                                break\n                            }\n                            this.idxs.pop()\n                        }\n                    }\n                }\n\n                function _t(e, t = -1) {\n                    for (;;) {\n                        if (++t >= e.childrenLength) return -1;\n                        if (e.getChild(t)) return t\n                    }\n                }\n\n                function bt(e) {\n                    return e.length > 0 ? e[e.length - 1] : void 0\n                }\n\n                function wt(e, t, i, n) {\n                    return new yt(e, t, i, n).parseDocument()\n                }\n                class yt {\n                    constructor(e, t, i, n) {\n                        if (this.tokenizer = e, this.createImmutableLists = n, this._itemsConstructed = 0, this._itemsFromCache = 0, i && n) throw new Error(\"Not supported\");\n                        this.oldNodeReader = i ? new vt(i) : void 0, this.positionMapper = new je(t, e.length)\n                    }\n                    parseDocument() {\n                        this._itemsConstructed = 0, this._itemsFromCache = 0;\n                        let e = this.parseList(qe.getEmpty());\n                        return e || (e = Xe.getEmpty()), e\n                    }\n                    parseList(e) {\n                        const t = new Array;\n                        for (;;) {\n                            const i = this.tokenizer.peek();\n                            if (!i || 2 === i.kind && i.bracketIds.intersects(e)) break;\n                            const n = this.parseChild(e);\n                            4 === n.kind && 0 === n.childrenLength || t.push(n)\n                        }\n                        const i = this.oldNodeReader ? function(e) {\n                            if (0 === e.length) return null;\n                            if (1 === e.length) return e[0];\n                            let t = 0;\n\n                            function i() {\n                                if (t >= e.length) return null;\n                                const i = t,\n                                    n = e[i].listHeight;\n                                for (t++; t < e.length && e[t].listHeight === n;) t++;\n                                return t - i >= 2 ? pt(0 === i && t === e.length ? e : e.slice(i, t), !1) : e[i]\n                            }\n                            let n = i(),\n                                o = i();\n                            if (!o) return n;\n                            for (let e = i(); e; e = i()) ft(n, o) <= ft(o, e) ? (n = mt(n, o), o = e) : o = mt(o, e);\n                            return mt(n, o)\n                        }(t) : pt(t, this.createImmutableLists);\n                        return i\n                    }\n                    parseChild(e) {\n                        if (this.oldNodeReader) {\n                            const t = this.positionMapper.getDistanceToNextChange(this.tokenizer.offset);\n                            if (0 !== t) {\n                                const i = this.oldNodeReader.readLongestNodeAt(this.positionMapper.getOffsetBeforeChange(this.tokenizer.offset), (i => {\n                                    if (!Fe(i.length, t)) return !1;\n                                    return i.canBeReused(e)\n                                }));\n                                if (i) return this._itemsFromCache++, this.tokenizer.skip(i.length), i\n                            }\n                        }\n                        this._itemsConstructed++;\n                        const t = this.tokenizer.read();\n                        switch (t.kind) {\n                            case 2:\n                                return new at(t.bracketIds, t.length);\n                            case 0:\n                                return t.astNode;\n                            case 1:\n                                const i = e.merge(t.bracketIds),\n                                    n = this.parseList(i),\n                                    o = this.tokenizer.peek();\n                                return o && 2 === o.kind && (o.bracketId === t.bracketId || o.bracketIds.intersects(t.bracketIds)) ? (this.tokenizer.read(), Qe.create(t.astNode, n, o.astNode)) : Qe.create(t.astNode, n, null);\n                            default:\n                                throw new Error(\"unexpected\")\n                        }\n                    }\n                }\n                class Ct extends s.JT {\n                    constructor(e, t) {\n                        super(), this.textModel = e, this.languageConfigurationService = t, this.cache = this._register(new s.XK), this.onDidChangeEmitter = new o.Q5, this.onDidChange = this.onDidChangeEmitter.event, this.bracketsRequested = !1, this._register(e.onDidChangeOptions((e => {\n                            this.cache.clear(), this.updateCache()\n                        }))), this._register(e.onDidChangeLanguage((e => {\n                            this.cache.clear(), this.updateCache()\n                        }))), this._register(this.languageConfigurationService.onDidChange((e => {\n                            var t;\n                            e.languageId && !(null === (t = this.cache.value) || void 0 === t ? void 0 : t.object.didLanguageChange(e.languageId)) || (this.cache.clear(), this.updateCache())\n                        })))\n                    }\n                    get isDocumentSupported() {\n                        return this.textModel.getValueLength() <= 5e6\n                    }\n                    updateCache() {\n                        if (this.bracketsRequested && this.isDocumentSupported) {\n                            if (!this.cache.value) {\n                                const i = new s.SL;\n                                this.cache.value = (e = i.add(new xt(this.textModel, (e => this.languageConfigurationService.getLanguageConfiguration(e)))), t = i, {\n                                    object: e,\n                                    dispose: () => null == t ? void 0 : t.dispose()\n                                }), i.add(this.cache.value.object.onDidChange((e => this.onDidChangeEmitter.fire(e)))), this.onDidChangeEmitter.fire()\n                            }\n                        } else this.cache.clear(), this.onDidChangeEmitter.fire();\n                        var e, t\n                    }\n                    handleContentChanged(e) {\n                        var t;\n                        null === (t = this.cache.value) || void 0 === t || t.object.handleContentChanged(e)\n                    }\n                    getBracketPairsInRange(e) {\n                        var t;\n                        return this.bracketsRequested = !0, this.updateCache(), (null === (t = this.cache.value) || void 0 === t ? void 0 : t.object.getBracketPairsInRange(e, !1)) || []\n                    }\n                    getBracketPairsInRangeWithMinIndentation(e) {\n                        var t;\n                        return this.bracketsRequested = !0, this.updateCache(), (null === (t = this.cache.value) || void 0 === t ? void 0 : t.object.getBracketPairsInRange(e, !0)) || []\n                    }\n                    getBracketsInRange(e) {\n                        var t;\n                        return this.bracketsRequested = !0, this.updateCache(), (null === (t = this.cache.value) || void 0 === t ? void 0 : t.object.getBracketsInRange(e)) || []\n                    }\n                }\n                class xt extends s.JT {\n                    constructor(e, t) {\n                        if (super(), this.textModel = e, this.getLanguageConfiguration = t, this.didChangeEmitter = new o.Q5, this.denseKeyProvider = new Ge, this.brackets = new gt(this.denseKeyProvider, this.getLanguageConfiguration), this.onDidChange = this.didChangeEmitter.event, this._register(e.onBackgroundTokenizationStateChanged((() => {\n                                if (2 === e.backgroundTokenizationState) {\n                                    const e = void 0 === this.initialAstWithoutTokens;\n                                    this.initialAstWithoutTokens = void 0, e || this.didChangeEmitter.fire()\n                                }\n                            }))), this._register(e.onDidChangeTokens((({\n                                ranges: e\n                            }) => {\n                                const t = e.map((e => new ze(Oe(e.fromLineNumber - 1, 0), Oe(e.toLineNumber, 0), Oe(e.toLineNumber - e.fromLineNumber + 1, 0))));\n                                this.astWithTokens = this.parseDocumentFromTextBuffer(t, this.astWithTokens, !1), this.initialAstWithoutTokens || this.didChangeEmitter.fire()\n                            }))), 0 === e.backgroundTokenizationState) {\n                            const e = this.brackets.getSingleLanguageBracketTokens(this.textModel.getLanguageId()),\n                                t = new ht(this.textModel.getValue(), e);\n                            this.initialAstWithoutTokens = wt(t, [], void 0, !0), this.astWithTokens = this.initialAstWithoutTokens\n                        } else 2 === e.backgroundTokenizationState ? (this.initialAstWithoutTokens = void 0, this.astWithTokens = this.parseDocumentFromTextBuffer([], void 0, !1)) : 1 === e.backgroundTokenizationState && (this.initialAstWithoutTokens = this.parseDocumentFromTextBuffer([], void 0, !0), this.astWithTokens = this.initialAstWithoutTokens)\n                    }\n                    didLanguageChange(e) {\n                        return this.brackets.didLanguageChange(e)\n                    }\n                    handleContentChanged(e) {\n                        const t = e.changes.map((e => {\n                            const t = d.e.lift(e.range);\n                            return new ze(We(t.getStartPosition()), We(t.getEndPosition()), function(e) {\n                                const t = (0, r.uq)(e);\n                                return Oe(t.length - 1, t[t.length - 1].length)\n                            }(e.text))\n                        })).reverse();\n                        this.astWithTokens = this.parseDocumentFromTextBuffer(t, this.astWithTokens, !1), this.initialAstWithoutTokens && (this.initialAstWithoutTokens = this.parseDocumentFromTextBuffer(t, this.initialAstWithoutTokens, !1))\n                    }\n                    parseDocumentFromTextBuffer(e, t, i) {\n                        const n = t;\n                        return wt(new ct(this.textModel, this.brackets), e, n, i)\n                    }\n                    getBracketsInRange(e) {\n                        const t = Oe(e.startLineNumber - 1, e.startColumn - 1),\n                            i = Oe(e.endLineNumber - 1, e.endColumn - 1),\n                            n = new Array,\n                            o = this.initialAstWithoutTokens || this.astWithTokens;\n                        return St(o, 0, o.length, t, i, n), n\n                    }\n                    getBracketPairsInRange(e, t) {\n                        const i = new Array,\n                            n = We(e.getStartPosition()),\n                            o = We(e.getEndPosition()),\n                            s = this.initialAstWithoutTokens || this.astWithTokens,\n                            r = new kt(i, t, this.textModel);\n                        return Lt(s, 0, s.length, n, o, r), i\n                    }\n                }\n\n                function St(e, t, i, n, o, s, r = 0) {\n                    if (1 === e.kind) {\n                        const e = He(t, i);\n                        s.push(new Ie(e, r - 1, !1))\n                    } else if (3 === e.kind) {\n                        const e = He(t, i);\n                        s.push(new Ie(e, r - 1, !0))\n                    } else if (4 === e.kind)\n                        for (const a of e.children) i = Re(t, a.length), Be(t, o) && Ve(i, n) && St(a, t, i, n, o, s, r), t = i;\n                    else if (2 === e.kind) {\n                        r++; {\n                            const a = e.openingBracket;\n                            i = Re(t, a.length), Be(t, o) && Ve(i, n) && St(a, t, i, n, o, s, r), t = i\n                        }\n                        if (e.child) {\n                            const a = e.child;\n                            i = Re(t, a.length), Be(t, o) && Ve(i, n) && St(a, t, i, n, o, s, r), t = i\n                        }\n                        if (e.closingBracket) {\n                            const a = e.closingBracket;\n                            i = Re(t, a.length), Be(t, o) && Ve(i, n) && St(a, t, i, n, o, s, r), t = i\n                        }\n                    }\n                }\n                class kt {\n                    constructor(e, t, i) {\n                        this.result = e, this.includeMinIndentation = t, this.textModel = i\n                    }\n                }\n\n                function Lt(e, t, i, n, o, s, r = 0) {\n                    var a;\n                    if (2 === e.kind) {\n                        const n = Re(t, e.openingBracket.length);\n                        let o = -1;\n                        s.includeMinIndentation && (o = e.computeMinIndentation(t, s.textModel)), s.result.push(new Te(He(t, i), He(t, n), e.closingBracket ? He(Re(n, (null === (a = e.child) || void 0 === a ? void 0 : a.length) || 0), i) : void 0, r, o)), r++\n                    }\n                    let l = t;\n                    for (const t of e.children) {\n                        const e = l;\n                        l = Re(l, t.length), Be(e, o) && Be(n, l) && Lt(t, e, l, n, o, s, r)\n                    }\n                }\n                var Nt = i(27869),\n                    Dt = i(97781);\n                class It extends s.JT {\n                    constructor(e) {\n                        super(), this.textModel = e, this.colorProvider = new Et, this.onDidChangeEmitter = new o.Q5, this.onDidChange = this.onDidChangeEmitter.event, this.colorizationOptions = e.getOptions().bracketPairColorizationOptions, this._register(e.onDidChangeOptions((t => {\n                            this.colorizationOptions = e.getOptions().bracketPairColorizationOptions\n                        }))), this._register(e.bracketPairs.onDidChange((e => {\n                            this.onDidChangeEmitter.fire()\n                        })))\n                    }\n                    getDecorationsInRange(e, t, i) {\n                        if (void 0 === t) return [];\n                        if (!this.colorizationOptions.enabled) return [];\n                        const n = new Array,\n                            o = this.textModel.bracketPairs.getBracketsInRange(e);\n                        for (const e of o) n.push({\n                            id: `bracket${e.range.toString()}-${e.nestingLevel}`,\n                            options: {\n                                description: \"BracketPairColorization\",\n                                inlineClassName: this.colorProvider.getInlineClassName(e)\n                            },\n                            ownerId: 0,\n                            range: e.range\n                        });\n                        return n\n                    }\n                    getAllDecorations(e, t) {\n                        return void 0 === e ? [] : this.colorizationOptions.enabled ? this.getDecorationsInRange(new d.e(1, 1, this.textModel.getLineCount(), 1), e, t) : []\n                    }\n                }\n                class Et {\n                    constructor() {\n                        this.unexpectedClosingBracketClassName = \"unexpected-closing-bracket\"\n                    }\n                    getInlineClassName(e) {\n                        return e.isInvalid ? this.unexpectedClosingBracketClassName : this.getInlineClassNameOfLevel(e.nestingLevel)\n                    }\n                    getInlineClassNameOfLevel(e) {\n                        return \"bracket-highlighting-\" + e % 30\n                    }\n                }(0, Dt.Ic)(((e, t) => {\n                    const i = [Nt.zJ, Nt.Vs, Nt.CE, Nt.UP, Nt.r0, Nt.m1],\n                        n = new Et;\n                    t.addRule(`.monaco-editor .${n.unexpectedClosingBracketClassName} { color: ${e.getColor(Nt.ts)}; }`);\n                    let o = i.map((t => e.getColor(t))).filter((e => !!e)).filter((e => !e.isTransparent()));\n                    for (let e = 0; e < 30; e++) {\n                        const i = o[e % o.length];\n                        t.addRule(`.monaco-editor .${n.getInlineClassNameOfLevel(e)} { color: ${i}; }`)\n                    }\n                }));\n                var Tt = i(71531),\n                    Mt = function(e, t, i, n) {\n                        var o, s = arguments.length,\n                            r = s < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n                        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) r = Reflect.decorate(e, t, i, n);\n                        else\n                            for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (r = (s < 3 ? o(r) : s > 3 ? o(t, i, r) : o(t, i)) || r);\n                        return s > 3 && r && Object.defineProperty(t, i, r), r\n                    },\n                    At = function(e, t) {\n                        return function(i, n) {\n                            t(i, n, e)\n                        }\n                    };\n\n                function Ot(e) {\n                    const t = new ue;\n                    return t.acceptChunk(e), t.finish()\n                }\n\n                function Pt(e, t) {\n                    return (\"string\" == typeof e ? Ot(e) : e).create(t)\n                }\n                let Rt = 0;\n                class Ft {\n                    constructor(e) {\n                        this._source = e, this._eos = !1\n                    }\n                    read() {\n                        if (this._eos) return null;\n                        let e = [],\n                            t = 0,\n                            i = 0;\n                        for (;;) {\n                            let n = this._source.read();\n                            if (null === n) return this._eos = !0, 0 === t ? null : e.join(\"\");\n                            if (n.length > 0 && (e[t++] = n, i += n.length), i >= 65536) return e.join(\"\")\n                        }\n                    }\n                }\n                const Bt = () => {\n                    throw new Error(\"Invalid change accessor\")\n                };\n                class Vt {\n                    constructor() {\n                        this._searchCanceledBrand = void 0\n                    }\n                }\n\n                function Wt(e) {\n                    return e instanceof Vt ? null : e\n                }\n                Vt.INSTANCE = new Vt;\n                let Ht = class e extends s.JT {\n                    constructor(t, i, n, s = null, l, c, h) {\n                        super(), this._undoRedoService = l, this._modeService = c, this._languageConfigurationService = h, this._onWillDispose = this._register(new o.Q5), this.onWillDispose = this._onWillDispose.event, this._onDidChangeDecorations = this._register(new ei((e => this.handleBeforeFireDecorationsChangedEvent(e)))), this.onDidChangeDecorations = this._onDidChangeDecorations.event, this._onDidChangeLanguage = this._register(new o.Q5), this.onDidChangeLanguage = this._onDidChangeLanguage.event, this._onDidChangeLanguageConfiguration = this._register(new o.Q5), this.onDidChangeLanguageConfiguration = this._onDidChangeLanguageConfiguration.event, this._onDidChangeTokens = this._register(new o.Q5), this.onDidChangeTokens = this._onDidChangeTokens.event, this._onDidChangeOptions = this._register(new o.Q5), this.onDidChangeOptions = this._onDidChangeOptions.event, this._onDidChangeAttached = this._register(new o.Q5), this.onDidChangeAttached = this._onDidChangeAttached.event, this._onDidChangeContentOrInjectedText = this._register(new o.Q5), this.onDidChangeContentOrInjectedText = this._onDidChangeContentOrInjectedText.event, this._eventEmitter = this._register(new ti), this._backgroundTokenizationState = 0, this._onBackgroundTokenizationStateChanged = this._register(new o.Q5), this.onBackgroundTokenizationStateChanged = this._onBackgroundTokenizationStateChanged.event, this._register(this._eventEmitter.fastEvent((e => {\n                            this._onDidChangeContentOrInjectedText.fire(e.rawContentChangedEvent)\n                        }))), Rt++, this.id = \"$model\" + Rt, this.isForSimpleWidget = i.isForSimpleWidget, this._associatedResource = null == s ? a.o.parse(\"inmemory://model/\" + Rt) : s, this._attachedEditorCount = 0;\n                        const {\n                            textBuffer: u,\n                            disposable: p\n                        } = Pt(t, i.defaultEOL);\n                        this._buffer = u, this._bufferDisposable = p, this._options = e.resolveOptions(this._buffer, i);\n                        const f = this._buffer.getLineCount(),\n                            m = this._buffer.getValueLengthInRange(new d.e(1, 1, f, this._buffer.getLineLength(f) + 1), 0);\n                        i.largeFileOptimizations ? this._isTooLargeForTokenization = m > e.LARGE_FILE_SIZE_THRESHOLD || f > e.LARGE_FILE_LINE_COUNT_THRESHOLD : this._isTooLargeForTokenization = !1, this._isTooLargeForSyncing = m > e.MODEL_SYNC_LIMIT, this._versionId = 1, this._alternativeVersionId = 1, this._initialUndoRedoSnapshot = null, this._isDisposed = !1, this._isDisposing = !1, this._languageId = n || ve.TG, this._languageRegistryListener = this._languageConfigurationService.onDidChange((e => {\n                            e.affects(this._languageId) && this._onDidChangeLanguageConfiguration.fire({})\n                        })), this._instanceId = r.PJ(Rt), this._lastDecorationId = 0, this._decorations = Object.create(null), this._decorationsTree = new $t, this._commandManager = new g.NL(this, this._undoRedoService), this._isUndoing = !1, this._isRedoing = !1, this._trimAutoWhitespaceLines = null, this._tokens = new le.Rl(this._modeService.languageIdCodec), this._tokens2 = new le.cx(this._modeService.languageIdCodec), this._tokenization = new ye(this, this._modeService.languageIdCodec), this._bracketPairColorizer = this._register(new Ct(this, this._languageConfigurationService)), this._decorationProvider = this._register(new It(this)), this._register(this._decorationProvider.onDidChange((() => {\n                            this._onDidChangeDecorations.beginDeferredEmit(), this._onDidChangeDecorations.fire(), this._onDidChangeDecorations.endDeferredEmit()\n                        })))\n                    }\n                    static resolveOptions(e, t) {\n                        if (t.detectIndentation) {\n                            const i = m(e, t.tabSize, t.insertSpaces);\n                            return new u.dJ({\n                                tabSize: i.tabSize,\n                                indentSize: i.tabSize,\n                                insertSpaces: i.insertSpaces,\n                                trimAutoWhitespace: t.trimAutoWhitespace,\n                                defaultEOL: t.defaultEOL,\n                                bracketPairColorizationOptions: t.bracketPairColorizationOptions\n                            })\n                        }\n                        return new u.dJ({\n                            tabSize: t.tabSize,\n                            indentSize: t.indentSize,\n                            insertSpaces: t.insertSpaces,\n                            trimAutoWhitespace: t.trimAutoWhitespace,\n                            defaultEOL: t.defaultEOL,\n                            bracketPairColorizationOptions: t.bracketPairColorizationOptions\n                        })\n                    }\n                    onDidChangeContentFast(e) {\n                        return this._eventEmitter.fastEvent((t => e(t.contentChangedEvent)))\n                    }\n                    onDidChangeContent(e) {\n                        return this._eventEmitter.slowEvent((t => e(t.contentChangedEvent)))\n                    }\n                    get bracketPairs() {\n                        return this._bracketPairColorizer\n                    }\n                    get backgroundTokenizationState() {\n                        return this._backgroundTokenizationState\n                    }\n                    handleTokenizationProgress(e) {\n                        if (2 === this._backgroundTokenizationState) return;\n                        const t = e ? 2 : 1;\n                        this._backgroundTokenizationState !== t && (this._backgroundTokenizationState = t, this._onBackgroundTokenizationStateChanged.fire())\n                    }\n                    dispose() {\n                        this._isDisposing = !0, this._onWillDispose.fire(), this._languageRegistryListener.dispose(), this._tokenization.dispose(), this._isDisposed = !0, super.dispose(), this._bufferDisposable.dispose(), this._isDisposing = !1;\n                        const e = new de([], \"\", \"\\n\", !1, !1, !0, !0);\n                        e.dispose(), this._buffer = e\n                    }\n                    _assertNotDisposed() {\n                        if (this._isDisposed) throw new Error(\"Model is disposed!\")\n                    }\n                    _emitContentChangedEvent(e, t) {\n                        this._bracketPairColorizer.handleContentChanged(t), this._isDisposing || this._eventEmitter.fire(new ge.fV(e, t))\n                    }\n                    setValue(e) {\n                        if (this._assertNotDisposed(), null === e) return;\n                        const {\n                            textBuffer: t,\n                            disposable: i\n                        } = Pt(e, this._options.defaultEOL);\n                        this._setValueFromTextBuffer(t, i)\n                    }\n                    _createContentChanged2(e, t, i, n, o, s, r) {\n                        return {\n                            changes: [{\n                                range: e,\n                                rangeOffset: t,\n                                rangeLength: i,\n                                text: n\n                            }],\n                            eol: this._buffer.getEOL(),\n                            versionId: this.getVersionId(),\n                            isUndoing: o,\n                            isRedoing: s,\n                            isFlush: r\n                        }\n                    }\n                    _setValueFromTextBuffer(e, t) {\n                        this._assertNotDisposed();\n                        const i = this.getFullModelRange(),\n                            n = this.getValueLengthInRange(i),\n                            o = this.getLineCount(),\n                            s = this.getLineMaxColumn(o);\n                        this._buffer = e, this._bufferDisposable.dispose(), this._bufferDisposable = t, this._increaseVersionId(), this._tokens.flush(), this._tokens2.flush(), this._decorations = Object.create(null), this._decorationsTree = new $t, this._commandManager.clear(), this._trimAutoWhitespaceLines = null, this._emitContentChangedEvent(new ge.dQ([new ge.Jx], this._versionId, !1, !1), this._createContentChanged2(new d.e(1, 1, o, s), 0, n, this.getValue(), !1, !1, !0))\n                    }\n                    setEOL(e) {\n                        this._assertNotDisposed();\n                        const t = 1 === e ? \"\\r\\n\" : \"\\n\";\n                        if (this._buffer.getEOL() === t) return;\n                        const i = this.getFullModelRange(),\n                            n = this.getValueLengthInRange(i),\n                            o = this.getLineCount(),\n                            s = this.getLineMaxColumn(o);\n                        this._onBeforeEOLChange(), this._buffer.setEOL(t), this._increaseVersionId(), this._onAfterEOLChange(), this._emitContentChangedEvent(new ge.dQ([new ge.CZ], this._versionId, !1, !1), this._createContentChanged2(new d.e(1, 1, o, s), 0, n, this.getValue(), !1, !1, !1))\n                    }\n                    _onBeforeEOLChange() {\n                        this._decorationsTree.ensureAllNodesHaveRanges(this)\n                    }\n                    _onAfterEOLChange() {\n                        const e = this.getVersionId(),\n                            t = this._decorationsTree.collectNodesPostOrder();\n                        for (let i = 0, n = t.length; i < n; i++) {\n                            const n = t[i],\n                                o = n.range,\n                                s = n.cachedAbsoluteStart - n.start,\n                                r = this._buffer.getOffsetAt(o.startLineNumber, o.startColumn),\n                                a = this._buffer.getOffsetAt(o.endLineNumber, o.endColumn);\n                            n.cachedAbsoluteStart = r, n.cachedAbsoluteEnd = a, n.cachedVersionId = e, n.start = r - s, n.end = a - s, R(n)\n                        }\n                    }\n                    onBeforeAttached() {\n                        this._attachedEditorCount++, 1 === this._attachedEditorCount && this._onDidChangeAttached.fire(void 0)\n                    }\n                    onBeforeDetached() {\n                        this._attachedEditorCount--, 0 === this._attachedEditorCount && this._onDidChangeAttached.fire(void 0)\n                    }\n                    isAttachedToEditor() {\n                        return this._attachedEditorCount > 0\n                    }\n                    getAttachedEditorCount() {\n                        return this._attachedEditorCount\n                    }\n                    isTooLargeForSyncing() {\n                        return this._isTooLargeForSyncing\n                    }\n                    isTooLargeForTokenization() {\n                        return this._isTooLargeForTokenization\n                    }\n                    isDisposed() {\n                        return this._isDisposed\n                    }\n                    isDominatedByLongLines() {\n                        if (this._assertNotDisposed(), this.isTooLargeForTokenization()) return !1;\n                        let e = 0,\n                            t = 0;\n                        const i = this._buffer.getLineCount();\n                        for (let n = 1; n <= i; n++) {\n                            const i = this._buffer.getLineLength(n);\n                            i >= 1e4 ? t += i : e += i\n                        }\n                        return t > e\n                    }\n                    get uri() {\n                        return this._associatedResource\n                    }\n                    getOptions() {\n                        return this._assertNotDisposed(), this._options\n                    }\n                    getFormattingOptions() {\n                        return {\n                            tabSize: this._options.indentSize,\n                            insertSpaces: this._options.insertSpaces\n                        }\n                    }\n                    updateOptions(e) {\n                        this._assertNotDisposed();\n                        let t = void 0 !== e.tabSize ? e.tabSize : this._options.tabSize,\n                            i = void 0 !== e.indentSize ? e.indentSize : this._options.indentSize,\n                            n = void 0 !== e.insertSpaces ? e.insertSpaces : this._options.insertSpaces,\n                            o = void 0 !== e.trimAutoWhitespace ? e.trimAutoWhitespace : this._options.trimAutoWhitespace,\n                            s = void 0 !== e.bracketColorizationOptions ? e.bracketColorizationOptions : this._options.bracketPairColorizationOptions,\n                            r = new u.dJ({\n                                tabSize: t,\n                                indentSize: i,\n                                insertSpaces: n,\n                                defaultEOL: this._options.defaultEOL,\n                                trimAutoWhitespace: o,\n                                bracketPairColorizationOptions: s\n                            });\n                        if (this._options.equals(r)) return;\n                        let a = this._options.createChangeEvent(r);\n                        this._options = r, this._onDidChangeOptions.fire(a)\n                    }\n                    detectIndentation(e, t) {\n                        this._assertNotDisposed();\n                        let i = m(this._buffer, t, e);\n                        this.updateOptions({\n                            insertSpaces: i.insertSpaces,\n                            tabSize: i.tabSize,\n                            indentSize: i.tabSize\n                        })\n                    }\n                    static _normalizeIndentationFromWhitespace(e, t, i) {\n                        let n = 0;\n                        for (let i = 0; i < e.length; i++) \"\\t\" === e.charAt(i) ? n += t : n++;\n                        let o = \"\";\n                        if (!i) {\n                            let e = Math.floor(n / t);\n                            n %= t;\n                            for (let t = 0; t < e; t++) o += \"\\t\"\n                        }\n                        for (let e = 0; e < n; e++) o += \" \";\n                        return o\n                    }\n                    static normalizeIndentation(t, i, n) {\n                        let o = r.LC(t);\n                        return -1 === o && (o = t.length), e._normalizeIndentationFromWhitespace(t.substring(0, o), i, n) + t.substring(o)\n                    }\n                    normalizeIndentation(t) {\n                        return this._assertNotDisposed(), e.normalizeIndentation(t, this._options.indentSize, this._options.insertSpaces)\n                    }\n                    getVersionId() {\n                        return this._assertNotDisposed(), this._versionId\n                    }\n                    mightContainRTL() {\n                        return this._buffer.mightContainRTL()\n                    }\n                    mightContainUnusualLineTerminators() {\n                        return this._buffer.mightContainUnusualLineTerminators()\n                    }\n                    removeUnusualLineTerminators(e = null) {\n                        const t = this.findMatches(r.Qe.source, !1, !0, !1, null, !1, 1073741824);\n                        this._buffer.resetMightContainUnusualLineTerminators(), this.pushEditOperations(e, t.map((e => ({\n                            range: e.range,\n                            text: null\n                        }))), (() => null))\n                    }\n                    mightContainNonBasicASCII() {\n                        return this._buffer.mightContainNonBasicASCII()\n                    }\n                    getAlternativeVersionId() {\n                        return this._assertNotDisposed(), this._alternativeVersionId\n                    }\n                    getInitialUndoRedoSnapshot() {\n                        return this._assertNotDisposed(), this._initialUndoRedoSnapshot\n                    }\n                    getOffsetAt(e) {\n                        this._assertNotDisposed();\n                        let t = this._validatePosition(e.lineNumber, e.column, 0);\n                        return this._buffer.getOffsetAt(t.lineNumber, t.column)\n                    }\n                    getPositionAt(e) {\n                        this._assertNotDisposed();\n                        let t = Math.min(this._buffer.getLength(), Math.max(0, e));\n                        return this._buffer.getPositionAt(t)\n                    }\n                    _increaseVersionId() {\n                        this._versionId = this._versionId + 1, this._alternativeVersionId = this._versionId\n                    }\n                    _overwriteVersionId(e) {\n                        this._versionId = e\n                    }\n                    _overwriteAlternativeVersionId(e) {\n                        this._alternativeVersionId = e\n                    }\n                    _overwriteInitialUndoRedoSnapshot(e) {\n                        this._initialUndoRedoSnapshot = e\n                    }\n                    getValue(e, t = !1) {\n                        this._assertNotDisposed();\n                        const i = this.getFullModelRange(),\n                            n = this.getValueInRange(i, e);\n                        return t ? this._buffer.getBOM() + n : n\n                    }\n                    createSnapshot(e = !1) {\n                        return new Ft(this._buffer.createSnapshot(e))\n                    }\n                    getValueLength(e, t = !1) {\n                        this._assertNotDisposed();\n                        const i = this.getFullModelRange(),\n                            n = this.getValueLengthInRange(i, e);\n                        return t ? this._buffer.getBOM().length + n : n\n                    }\n                    getValueInRange(e, t = 0) {\n                        return this._assertNotDisposed(), this._buffer.getValueInRange(this.validateRange(e), t)\n                    }\n                    getValueLengthInRange(e, t = 0) {\n                        return this._assertNotDisposed(), this._buffer.getValueLengthInRange(this.validateRange(e), t)\n                    }\n                    getCharacterCountInRange(e, t = 0) {\n                        return this._assertNotDisposed(), this._buffer.getCharacterCountInRange(this.validateRange(e), t)\n                    }\n                    getLineCount() {\n                        return this._assertNotDisposed(), this._buffer.getLineCount()\n                    }\n                    getLineContent(e) {\n                        if (this._assertNotDisposed(), e < 1 || e > this.getLineCount()) throw new Error(\"Illegal value for lineNumber\");\n                        return this._buffer.getLineContent(e)\n                    }\n                    getLineLength(e) {\n                        if (this._assertNotDisposed(), e < 1 || e > this.getLineCount()) throw new Error(\"Illegal value for lineNumber\");\n                        return this._buffer.getLineLength(e)\n                    }\n                    getLinesContent() {\n                        return this._assertNotDisposed(), this._buffer.getLinesContent()\n                    }\n                    getEOL() {\n                        return this._assertNotDisposed(), this._buffer.getEOL()\n                    }\n                    getEndOfLineSequence() {\n                        return this._assertNotDisposed(), \"\\n\" === this._buffer.getEOL() ? 0 : 1\n                    }\n                    getLineMinColumn(e) {\n                        return this._assertNotDisposed(), 1\n                    }\n                    getLineMaxColumn(e) {\n                        if (this._assertNotDisposed(), e < 1 || e > this.getLineCount()) throw new Error(\"Illegal value for lineNumber\");\n                        return this._buffer.getLineLength(e) + 1\n                    }\n                    getLineFirstNonWhitespaceColumn(e) {\n                        if (this._assertNotDisposed(), e < 1 || e > this.getLineCount()) throw new Error(\"Illegal value for lineNumber\");\n                        return this._buffer.getLineFirstNonWhitespaceColumn(e)\n                    }\n                    getLineLastNonWhitespaceColumn(e) {\n                        if (this._assertNotDisposed(), e < 1 || e > this.getLineCount()) throw new Error(\"Illegal value for lineNumber\");\n                        return this._buffer.getLineLastNonWhitespaceColumn(e)\n                    }\n                    _validateRangeRelaxedNoAllocations(e) {\n                        const t = this._buffer.getLineCount(),\n                            i = e.startLineNumber,\n                            n = e.startColumn;\n                        let o = Math.floor(\"number\" != typeof i || isNaN(i) ? 1 : i),\n                            s = Math.floor(\"number\" != typeof n || isNaN(n) ? 1 : n);\n                        if (o < 1) o = 1, s = 1;\n                        else if (o > t) o = t, s = this.getLineMaxColumn(o);\n                        else if (s <= 1) s = 1;\n                        else {\n                            const e = this.getLineMaxColumn(o);\n                            s >= e && (s = e)\n                        }\n                        const r = e.endLineNumber,\n                            a = e.endColumn;\n                        let l = Math.floor(\"number\" != typeof r || isNaN(r) ? 1 : r),\n                            c = Math.floor(\"number\" != typeof a || isNaN(a) ? 1 : a);\n                        if (l < 1) l = 1, c = 1;\n                        else if (l > t) l = t, c = this.getLineMaxColumn(l);\n                        else if (c <= 1) c = 1;\n                        else {\n                            const e = this.getLineMaxColumn(l);\n                            c >= e && (c = e)\n                        }\n                        return i === o && n === s && r === l && a === c && e instanceof d.e && !(e instanceof h.Y) ? e : new d.e(o, s, l, c)\n                    }\n                    _isValidPosition(e, t, i) {\n                        if (\"number\" != typeof e || \"number\" != typeof t) return !1;\n                        if (isNaN(e) || isNaN(t)) return !1;\n                        if (e < 1 || t < 1) return !1;\n                        if ((0 | e) !== e || (0 | t) !== t) return !1;\n                        if (e > this._buffer.getLineCount()) return !1;\n                        if (1 === t) return !0;\n                        if (t > this.getLineMaxColumn(e)) return !1;\n                        if (1 === i) {\n                            const i = this._buffer.getLineCharCode(e, t - 2);\n                            if (r.ZG(i)) return !1\n                        }\n                        return !0\n                    }\n                    _validatePosition(e, t, i) {\n                        const n = Math.floor(\"number\" != typeof e || isNaN(e) ? 1 : e),\n                            o = Math.floor(\"number\" != typeof t || isNaN(t) ? 1 : t),\n                            s = this._buffer.getLineCount();\n                        if (n < 1) return new c.L(1, 1);\n                        if (n > s) return new c.L(s, this.getLineMaxColumn(s));\n                        if (o <= 1) return new c.L(n, 1);\n                        const a = this.getLineMaxColumn(n);\n                        if (o >= a) return new c.L(n, a);\n                        if (1 === i) {\n                            const e = this._buffer.getLineCharCode(n, o - 2);\n                            if (r.ZG(e)) return new c.L(n, o - 1)\n                        }\n                        return new c.L(n, o)\n                    }\n                    validatePosition(e) {\n                        return this._assertNotDisposed(), e instanceof c.L && this._isValidPosition(e.lineNumber, e.column, 1) ? e : this._validatePosition(e.lineNumber, e.column, 1)\n                    }\n                    _isValidRange(e, t) {\n                        const i = e.startLineNumber,\n                            n = e.startColumn,\n                            o = e.endLineNumber,\n                            s = e.endColumn;\n                        if (!this._isValidPosition(i, n, 0)) return !1;\n                        if (!this._isValidPosition(o, s, 0)) return !1;\n                        if (1 === t) {\n                            const e = n > 1 ? this._buffer.getLineCharCode(i, n - 2) : 0,\n                                t = s > 1 && s <= this._buffer.getLineLength(o) ? this._buffer.getLineCharCode(o, s - 2) : 0,\n                                a = r.ZG(e),\n                                l = r.ZG(t);\n                            return !a && !l\n                        }\n                        return !0\n                    }\n                    validateRange(e) {\n                        if (this._assertNotDisposed(), e instanceof d.e && !(e instanceof h.Y) && this._isValidRange(e, 1)) return e;\n                        const t = this._validatePosition(e.startLineNumber, e.startColumn, 0),\n                            i = this._validatePosition(e.endLineNumber, e.endColumn, 0),\n                            n = t.lineNumber,\n                            o = t.column,\n                            s = i.lineNumber,\n                            a = i.column; {\n                            const e = o > 1 ? this._buffer.getLineCharCode(n, o - 2) : 0,\n                                t = a > 1 && a <= this._buffer.getLineLength(s) ? this._buffer.getLineCharCode(s, a - 2) : 0,\n                                i = r.ZG(e),\n                                l = r.ZG(t);\n                            return i || l ? n === s && o === a ? new d.e(n, o - 1, s, a - 1) : i && l ? new d.e(n, o - 1, s, a + 1) : i ? new d.e(n, o - 1, s, a) : new d.e(n, o, s, a + 1) : new d.e(n, o, s, a)\n                        }\n                    }\n                    modifyPosition(e, t) {\n                        this._assertNotDisposed();\n                        let i = this.getOffsetAt(e) + t;\n                        return this.getPositionAt(Math.min(this._buffer.getLength(), Math.max(0, i)))\n                    }\n                    getFullModelRange() {\n                        this._assertNotDisposed();\n                        const e = this.getLineCount();\n                        return new d.e(1, 1, e, this.getLineMaxColumn(e))\n                    }\n                    findMatchesLineByLine(e, t, i, n) {\n                        return this._buffer.findMatchesLineByLine(e, t, i, n)\n                    }\n                    findMatches(e, t, i, n, o, s, r = 999) {\n                        this._assertNotDisposed();\n                        let a = null;\n                        null !== t && (Array.isArray(t) || (t = [t]), t.every((e => d.e.isIRange(e))) && (a = t.map((e => this.validateRange(e))))), null === a && (a = [this.getFullModelRange()]), a = a.sort(((e, t) => e.startLineNumber - t.startLineNumber || e.startColumn - t.startColumn));\n                        const l = [];\n                        let c;\n                        if (l.push(a.reduce(((e, t) => d.e.areIntersecting(e, t) ? e.plusRange(t) : (l.push(e), t)))), !i && e.indexOf(\"\\n\") < 0) {\n                            const t = new X.bc(e, i, n, o).parseSearchRequest();\n                            if (!t) return [];\n                            c = e => this.findMatchesLineByLine(e, t, s, r)\n                        } else c = t => X.pM.findMatches(this, new X.bc(e, i, n, o), t, s, r);\n                        return l.map(c).reduce(((e, t) => e.concat(t)), [])\n                    }\n                    findNextMatch(e, t, i, n, o, s) {\n                        this._assertNotDisposed();\n                        const r = this.validatePosition(t);\n                        if (!i && e.indexOf(\"\\n\") < 0) {\n                            const t = new X.bc(e, i, n, o).parseSearchRequest();\n                            if (!t) return null;\n                            const a = this.getLineCount();\n                            let l = new d.e(r.lineNumber, r.column, a, this.getLineMaxColumn(a)),\n                                c = this.findMatchesLineByLine(l, t, s, 1);\n                            return X.pM.findNextMatch(this, new X.bc(e, i, n, o), r, s), c.length > 0 ? c[0] : (l = new d.e(1, 1, r.lineNumber, this.getLineMaxColumn(r.lineNumber)), c = this.findMatchesLineByLine(l, t, s, 1), c.length > 0 ? c[0] : null)\n                        }\n                        return X.pM.findNextMatch(this, new X.bc(e, i, n, o), r, s)\n                    }\n                    findPreviousMatch(e, t, i, n, o, s) {\n                        this._assertNotDisposed();\n                        const r = this.validatePosition(t);\n                        return X.pM.findPreviousMatch(this, new X.bc(e, i, n, o), r, s)\n                    }\n                    pushStackElement() {\n                        this._commandManager.pushStackElement()\n                    }\n                    popStackElement() {\n                        this._commandManager.popStackElement()\n                    }\n                    pushEOL(e) {\n                        if ((\"\\n\" === this.getEOL() ? 0 : 1) !== e) try {\n                            this._onDidChangeDecorations.beginDeferredEmit(), this._eventEmitter.beginDeferredEmit(), null === this._initialUndoRedoSnapshot && (this._initialUndoRedoSnapshot = this._undoRedoService.createSnapshot(this.uri)), this._commandManager.pushEOL(e)\n                        } finally {\n                            this._eventEmitter.endDeferredEmit(), this._onDidChangeDecorations.endDeferredEmit()\n                        }\n                    }\n                    _validateEditOperation(e) {\n                        return e instanceof u.Qi ? e : new u.Qi(e.identifier || null, this.validateRange(e.range), e.text, e.forceMoveMarkers || !1, e.isAutoWhitespaceEdit || !1, e._isTracked || !1)\n                    }\n                    _validateEditOperations(e) {\n                        const t = [];\n                        for (let i = 0, n = e.length; i < n; i++) t[i] = this._validateEditOperation(e[i]);\n                        return t\n                    }\n                    pushEditOperations(e, t, i) {\n                        try {\n                            return this._onDidChangeDecorations.beginDeferredEmit(), this._eventEmitter.beginDeferredEmit(), this._pushEditOperations(e, this._validateEditOperations(t), i)\n                        } finally {\n                            this._eventEmitter.endDeferredEmit(), this._onDidChangeDecorations.endDeferredEmit()\n                        }\n                    }\n                    _pushEditOperations(e, t, i) {\n                        if (this._options.trimAutoWhitespace && this._trimAutoWhitespaceLines) {\n                            let i = t.map((e => ({\n                                    range: this.validateRange(e.range),\n                                    text: e.text\n                                }))),\n                                n = !0;\n                            if (e)\n                                for (let t = 0, o = e.length; t < o; t++) {\n                                    let o = e[t],\n                                        s = !1;\n                                    for (let e = 0, t = i.length; e < t; e++) {\n                                        let t = i[e].range,\n                                            n = t.startLineNumber > o.endLineNumber,\n                                            r = o.startLineNumber > t.endLineNumber;\n                                        if (!n && !r) {\n                                            s = !0;\n                                            break\n                                        }\n                                    }\n                                    if (!s) {\n                                        n = !1;\n                                        break\n                                    }\n                                }\n                            if (n)\n                                for (let e = 0, n = this._trimAutoWhitespaceLines.length; e < n; e++) {\n                                    let n = this._trimAutoWhitespaceLines[e],\n                                        o = this.getLineMaxColumn(n),\n                                        s = !0;\n                                    for (let e = 0, t = i.length; e < t; e++) {\n                                        let t = i[e].range,\n                                            r = i[e].text;\n                                        if (!(n < t.startLineNumber || n > t.endLineNumber) && !(n === t.startLineNumber && t.startColumn === o && t.isEmpty() && r && r.length > 0 && \"\\n\" === r.charAt(0) || n === t.startLineNumber && 1 === t.startColumn && t.isEmpty() && r && r.length > 0 && \"\\n\" === r.charAt(r.length - 1))) {\n                                            s = !1;\n                                            break\n                                        }\n                                    }\n                                    if (s) {\n                                        const e = new d.e(n, 1, n, o);\n                                        t.push(new u.Qi(null, e, null, !1, !1, !1))\n                                    }\n                                }\n                            this._trimAutoWhitespaceLines = null\n                        }\n                        return null === this._initialUndoRedoSnapshot && (this._initialUndoRedoSnapshot = this._undoRedoService.createSnapshot(this.uri)), this._commandManager.pushEditOperation(e, t, i)\n                    }\n                    _applyUndo(e, t, i, n) {\n                        const o = e.map((e => {\n                            const t = this.getPositionAt(e.newPosition),\n                                i = this.getPositionAt(e.newEnd);\n                            return {\n                                range: new d.e(t.lineNumber, t.column, i.lineNumber, i.column),\n                                text: e.oldText\n                            }\n                        }));\n                        this._applyUndoRedoEdits(o, t, !0, !1, i, n)\n                    }\n                    _applyRedo(e, t, i, n) {\n                        const o = e.map((e => {\n                            const t = this.getPositionAt(e.oldPosition),\n                                i = this.getPositionAt(e.oldEnd);\n                            return {\n                                range: new d.e(t.lineNumber, t.column, i.lineNumber, i.column),\n                                text: e.newText\n                            }\n                        }));\n                        this._applyUndoRedoEdits(o, t, !1, !0, i, n)\n                    }\n                    _applyUndoRedoEdits(e, t, i, n, o, s) {\n                        try {\n                            this._onDidChangeDecorations.beginDeferredEmit(), this._eventEmitter.beginDeferredEmit(), this._isUndoing = i, this._isRedoing = n, this.applyEdits(e, !1), this.setEOL(t), this._overwriteAlternativeVersionId(o)\n                        } finally {\n                            this._isUndoing = !1, this._isRedoing = !1, this._eventEmitter.endDeferredEmit(s), this._onDidChangeDecorations.endDeferredEmit()\n                        }\n                    }\n                    applyEdits(e, t = !1) {\n                        try {\n                            this._onDidChangeDecorations.beginDeferredEmit(), this._eventEmitter.beginDeferredEmit();\n                            const i = this._validateEditOperations(e);\n                            return this._doApplyEdits(i, t)\n                        } finally {\n                            this._eventEmitter.endDeferredEmit(), this._onDidChangeDecorations.endDeferredEmit()\n                        }\n                    }\n                    _doApplyEdits(e, t) {\n                        const i = this._buffer.getLineCount(),\n                            n = this._buffer.applyEdits(e, this._options.trimAutoWhitespace, t),\n                            o = this._buffer.getLineCount(),\n                            s = n.changes;\n                        if (this._trimAutoWhitespaceLines = n.trimAutoWhitespaceLineNumbers, 0 !== s.length) {\n                            for (let e = 0, t = s.length; e < t; e++) {\n                                const t = s[e],\n                                    [i, n, o] = (0, le.QZ)(t.text);\n                                this._tokens.acceptEdit(t.range, i, n), this._tokens2.acceptEdit(t.range, i, n, o, t.text.length > 0 ? t.text.charCodeAt(0) : 0), this._decorationsTree.acceptReplace(t.rangeOffset, t.rangeLength, t.text.length, t.forceMoveMarkers)\n                            }\n                            let e = [];\n                            this._increaseVersionId();\n                            let t = i;\n                            for (let i = 0, n = s.length; i < n; i++) {\n                                const n = s[i],\n                                    [r] = (0, le.QZ)(n.text);\n                                this._onDidChangeDecorations.fire();\n                                const a = n.range.startLineNumber,\n                                    l = n.range.endLineNumber,\n                                    d = l - a,\n                                    h = r,\n                                    u = Math.min(d, h),\n                                    g = h - d,\n                                    p = o - t - g + a,\n                                    f = p,\n                                    m = p + h,\n                                    v = this._decorationsTree.getInjectedTextInInterval(this, this.getOffsetAt(new c.L(f, 1)), this.getOffsetAt(new c.L(m, this.getLineMaxColumn(m))), 0),\n                                    _ = ge.gk.fromDecorations(v),\n                                    b = new pe.H9(_);\n                                for (let t = u; t >= 0; t--) {\n                                    const i = a + t,\n                                        n = p + t;\n                                    b.takeFromEndWhile((e => e.lineNumber > n));\n                                    const o = b.takeFromEndWhile((e => e.lineNumber === n));\n                                    e.push(new ge.rU(i, this.getLineContent(n), o))\n                                }\n                                if (u < d) {\n                                    const t = a + u;\n                                    e.push(new ge.lN(t + 1, l))\n                                }\n                                if (u < h) {\n                                    const i = new pe.H9(_),\n                                        n = a + u,\n                                        s = h - u,\n                                        r = o - t - s + n + 1;\n                                    let l = [],\n                                        c = [];\n                                    for (let e = 0; e < s; e++) {\n                                        let t = r + e;\n                                        c[e] = this.getLineContent(t), i.takeWhile((e => e.lineNumber < t)), l[e] = i.takeWhile((e => e.lineNumber === t))\n                                    }\n                                    e.push(new ge.Tx(n + 1, a + h, c, l))\n                                }\n                                t += g\n                            }\n                            this._emitContentChangedEvent(new ge.dQ(e, this.getVersionId(), this._isUndoing, this._isRedoing), {\n                                changes: s,\n                                eol: this._buffer.getEOL(),\n                                versionId: this.getVersionId(),\n                                isUndoing: this._isUndoing,\n                                isRedoing: this._isRedoing,\n                                isFlush: !1\n                            })\n                        }\n                        return null === n.reverseEdits ? void 0 : n.reverseEdits\n                    }\n                    undo() {\n                        return this._undoRedoService.undo(this.uri)\n                    }\n                    canUndo() {\n                        return this._undoRedoService.canUndo(this.uri)\n                    }\n                    redo() {\n                        return this._undoRedoService.redo(this.uri)\n                    }\n                    canRedo() {\n                        return this._undoRedoService.canRedo(this.uri)\n                    }\n                    handleBeforeFireDecorationsChangedEvent(e) {\n                        if (null === e || 0 === e.size) return;\n                        const t = [...e].map((e => new ge.rU(e, this.getLineContent(e), this._getInjectedTextInLine(e))));\n                        this._onDidChangeContentOrInjectedText.fire(new ge.D8(t))\n                    }\n                    changeDecorations(e, t = 0) {\n                        this._assertNotDisposed();\n                        try {\n                            return this._onDidChangeDecorations.beginDeferredEmit(), this._changeDecorations(t, e)\n                        } finally {\n                            this._onDidChangeDecorations.endDeferredEmit()\n                        }\n                    }\n                    _changeDecorations(e, t) {\n                        let i = {\n                                addDecoration: (t, i) => this._deltaDecorationsImpl(e, [], [{\n                                    range: t,\n                                    options: i\n                                }])[0],\n                                changeDecoration: (e, t) => {\n                                    this._changeDecorationImpl(e, t)\n                                },\n                                changeDecorationOptions: (e, t) => {\n                                    this._changeDecorationOptionsImpl(e, Jt(t))\n                                },\n                                removeDecoration: t => {\n                                    this._deltaDecorationsImpl(e, [t], [])\n                                },\n                                deltaDecorations: (t, i) => 0 === t.length && 0 === i.length ? [] : this._deltaDecorationsImpl(e, t, i)\n                            },\n                            o = null;\n                        try {\n                            o = t(i)\n                        } catch (e) {\n                            (0, n.dL)(e)\n                        }\n                        return i.addDecoration = Bt, i.changeDecoration = Bt, i.changeDecorationOptions = Bt, i.removeDecoration = Bt, i.deltaDecorations = Bt, o\n                    }\n                    deltaDecorations(e, t, i = 0) {\n                        if (this._assertNotDisposed(), e || (e = []), 0 === e.length && 0 === t.length) return [];\n                        try {\n                            return this._onDidChangeDecorations.beginDeferredEmit(), this._deltaDecorationsImpl(i, e, t)\n                        } finally {\n                            this._onDidChangeDecorations.endDeferredEmit()\n                        }\n                    }\n                    _getTrackedRange(e) {\n                        return this.getDecorationRange(e)\n                    }\n                    _setTrackedRange(e, t, i) {\n                        const n = e ? this._decorations[e] : null;\n                        if (!n) return t ? this._deltaDecorationsImpl(0, [], [{\n                            range: t,\n                            options: Xt[i]\n                        }])[0] : null;\n                        if (!t) return this._decorationsTree.delete(n), delete this._decorations[n.id], null;\n                        const o = this._validateRangeRelaxedNoAllocations(t),\n                            s = this._buffer.getOffsetAt(o.startLineNumber, o.startColumn),\n                            r = this._buffer.getOffsetAt(o.endLineNumber, o.endColumn);\n                        return this._decorationsTree.delete(n), n.reset(this.getVersionId(), s, r, o), n.setOptions(Xt[i]), this._decorationsTree.insert(n), n.id\n                    }\n                    removeAllDecorationsWithOwnerId(e) {\n                        if (this._isDisposed) return;\n                        const t = this._decorationsTree.collectNodesFromOwner(e);\n                        for (let e = 0, i = t.length; e < i; e++) {\n                            const i = t[e];\n                            this._decorationsTree.delete(i), delete this._decorations[i.id]\n                        }\n                    }\n                    getDecorationOptions(e) {\n                        const t = this._decorations[e];\n                        return t ? t.options : null\n                    }\n                    getDecorationRange(e) {\n                        const t = this._decorations[e];\n                        return t ? this._decorationsTree.getNodeRange(this, t) : null\n                    }\n                    getLineDecorations(e, t = 0, i = !1) {\n                        return e < 1 || e > this.getLineCount() ? [] : this.getLinesDecorations(e, e, t, i)\n                    }\n                    getLinesDecorations(e, t, i = 0, n = !1) {\n                        let o = this.getLineCount(),\n                            s = Math.min(o, Math.max(1, e)),\n                            r = Math.min(o, Math.max(1, t)),\n                            a = this.getLineMaxColumn(r);\n                        const l = new d.e(s, 1, r, a),\n                            c = this._getDecorationsInRange(l, i, n);\n                        return c.push(...this._decorationProvider.getDecorationsInRange(l, i, n)), c\n                    }\n                    getDecorationsInRange(e, t = 0, i = !1) {\n                        let n = this.validateRange(e);\n                        const o = this._getDecorationsInRange(n, t, i);\n                        return o.push(...this._decorationProvider.getDecorationsInRange(n, t, i)), o\n                    }\n                    getOverviewRulerDecorations(e = 0, t = !1) {\n                        return this._decorationsTree.getAll(this, e, t, !0)\n                    }\n                    getInjectedTextDecorations(e = 0) {\n                        return this._decorationsTree.getAllInjectedText(this, e)\n                    }\n                    _getInjectedTextInLine(e) {\n                        const t = this._buffer.getOffsetAt(e, 1),\n                            i = t + this._buffer.getLineLength(e),\n                            n = this._decorationsTree.getInjectedTextInInterval(this, t, i, 0);\n                        return ge.gk.fromDecorations(n).filter((t => t.lineNumber === e))\n                    }\n                    getAllDecorations(e = 0, t = !1) {\n                        let i = this._decorationsTree.getAll(this, e, t, !1);\n                        return i = i.concat(this._decorationProvider.getAllDecorations(e, t)), i\n                    }\n                    _getDecorationsInRange(e, t, i) {\n                        const n = this._buffer.getOffsetAt(e.startLineNumber, e.startColumn),\n                            o = this._buffer.getOffsetAt(e.endLineNumber, e.endColumn);\n                        return this._decorationsTree.getAllInInterval(this, n, o, t, i)\n                    }\n                    getRangeAt(e, t) {\n                        return this._buffer.getRangeAt(e, t - e)\n                    }\n                    _changeDecorationImpl(e, t) {\n                        const i = this._decorations[e];\n                        if (!i) return;\n                        if (i.options.after) {\n                            const t = this.getDecorationRange(e);\n                            this._onDidChangeDecorations.recordLineAffectedByInjectedText(t.endLineNumber)\n                        }\n                        if (i.options.before) {\n                            const t = this.getDecorationRange(e);\n                            this._onDidChangeDecorations.recordLineAffectedByInjectedText(t.startLineNumber)\n                        }\n                        const n = this._validateRangeRelaxedNoAllocations(t),\n                            o = this._buffer.getOffsetAt(n.startLineNumber, n.startColumn),\n                            s = this._buffer.getOffsetAt(n.endLineNumber, n.endColumn);\n                        this._decorationsTree.delete(i), i.reset(this.getVersionId(), o, s, n), this._decorationsTree.insert(i), this._onDidChangeDecorations.checkAffectedAndFire(i.options), i.options.after && this._onDidChangeDecorations.recordLineAffectedByInjectedText(n.endLineNumber), i.options.before && this._onDidChangeDecorations.recordLineAffectedByInjectedText(n.startLineNumber)\n                    }\n                    _changeDecorationOptionsImpl(e, t) {\n                        const i = this._decorations[e];\n                        if (!i) return;\n                        const n = !(!i.options.overviewRuler || !i.options.overviewRuler.color),\n                            o = !(!t.overviewRuler || !t.overviewRuler.color);\n                        if (this._onDidChangeDecorations.checkAffectedAndFire(i.options), this._onDidChangeDecorations.checkAffectedAndFire(t), i.options.after || t.after) {\n                            const e = this._decorationsTree.getNodeRange(this, i);\n                            this._onDidChangeDecorations.recordLineAffectedByInjectedText(e.endLineNumber)\n                        }\n                        if (i.options.before || t.before) {\n                            const e = this._decorationsTree.getNodeRange(this, i);\n                            this._onDidChangeDecorations.recordLineAffectedByInjectedText(e.startLineNumber)\n                        }\n                        n !== o ? (this._decorationsTree.delete(i), i.setOptions(t), this._decorationsTree.insert(i)) : i.setOptions(t)\n                    }\n                    _deltaDecorationsImpl(e, t, i) {\n                        const n = this.getVersionId(),\n                            o = t.length;\n                        let s = 0;\n                        const r = i.length;\n                        let a = 0,\n                            l = new Array(r);\n                        for (; s < o || a < r;) {\n                            let c = null;\n                            if (s < o) {\n                                do {\n                                    c = this._decorations[t[s++]]\n                                } while (!c && s < o);\n                                if (c) {\n                                    if (c.options.after) {\n                                        const e = this._decorationsTree.getNodeRange(this, c);\n                                        this._onDidChangeDecorations.recordLineAffectedByInjectedText(e.endLineNumber)\n                                    }\n                                    if (c.options.before) {\n                                        const e = this._decorationsTree.getNodeRange(this, c);\n                                        this._onDidChangeDecorations.recordLineAffectedByInjectedText(e.startLineNumber)\n                                    }\n                                    this._decorationsTree.delete(c), this._onDidChangeDecorations.checkAffectedAndFire(c.options)\n                                }\n                            }\n                            if (a < r) {\n                                if (!c) {\n                                    const e = ++this._lastDecorationId,\n                                        t = `${this._instanceId};${e}`;\n                                    c = new k(t, 0, 0), this._decorations[t] = c\n                                }\n                                const t = i[a],\n                                    o = this._validateRangeRelaxedNoAllocations(t.range),\n                                    s = Jt(t.options),\n                                    r = this._buffer.getOffsetAt(o.startLineNumber, o.startColumn),\n                                    d = this._buffer.getOffsetAt(o.endLineNumber, o.endColumn);\n                                c.ownerId = e, c.reset(n, r, d, o), c.setOptions(s), c.options.after && this._onDidChangeDecorations.recordLineAffectedByInjectedText(o.endLineNumber), c.options.before && this._onDidChangeDecorations.recordLineAffectedByInjectedText(o.startLineNumber), this._onDidChangeDecorations.checkAffectedAndFire(s), this._decorationsTree.insert(c), l[a] = c.id, a++\n                            } else c && delete this._decorations[c.id]\n                        }\n                        return l\n                    }\n                    setTokens(e, t = !1) {\n                        if (0 !== e.length) {\n                            let t = [];\n                            for (let i = 0, n = e.length; i < n; i++) {\n                                const n = e[i];\n                                let o = 0,\n                                    s = 0,\n                                    r = !1;\n                                for (let e = 0, t = n.tokens.length; e < t; e++) {\n                                    const t = n.startLineNumber + e;\n                                    if (r) this._tokens.setTokens(this._languageId, t - 1, this._buffer.getLineLength(t), n.tokens[e], !1), s = t;\n                                    else {\n                                        this._tokens.setTokens(this._languageId, t - 1, this._buffer.getLineLength(t), n.tokens[e], !0) && (r = !0, o = t, s = t)\n                                    }\n                                }\n                                r && t.push({\n                                    fromLineNumber: o,\n                                    toLineNumber: s\n                                })\n                            }\n                            t.length > 0 && this._emitModelTokensChangedEvent({\n                                tokenizationSupportChanged: !1,\n                                semanticTokensApplied: !1,\n                                ranges: t\n                            })\n                        }\n                        this.handleTokenizationProgress(t)\n                    }\n                    setSemanticTokens(e, t) {\n                        this._tokens2.set(e, t), this._emitModelTokensChangedEvent({\n                            tokenizationSupportChanged: !1,\n                            semanticTokensApplied: null !== e,\n                            ranges: [{\n                                fromLineNumber: 1,\n                                toLineNumber: this.getLineCount()\n                            }]\n                        })\n                    }\n                    hasCompleteSemanticTokens() {\n                        return this._tokens2.isComplete()\n                    }\n                    hasSomeSemanticTokens() {\n                        return !this._tokens2.isEmpty()\n                    }\n                    setPartialSemanticTokens(e, t) {\n                        if (this.hasCompleteSemanticTokens()) return;\n                        const i = this._tokens2.setPartial(e, t);\n                        this._emitModelTokensChangedEvent({\n                            tokenizationSupportChanged: !1,\n                            semanticTokensApplied: !0,\n                            ranges: [{\n                                fromLineNumber: i.startLineNumber,\n                                toLineNumber: i.endLineNumber\n                            }]\n                        })\n                    }\n                    tokenizeViewport(e, t) {\n                        e = Math.max(1, e), t = Math.min(this._buffer.getLineCount(), t), this._tokenization.tokenizeViewport(e, t)\n                    }\n                    clearTokens() {\n                        this._tokens.flush(), this._emitModelTokensChangedEvent({\n                            tokenizationSupportChanged: !0,\n                            semanticTokensApplied: !1,\n                            ranges: [{\n                                fromLineNumber: 1,\n                                toLineNumber: this._buffer.getLineCount()\n                            }]\n                        })\n                    }\n                    _emitModelTokensChangedEvent(e) {\n                        this._isDisposing || this._onDidChangeTokens.fire(e)\n                    }\n                    resetTokenization() {\n                        this._tokenization.reset()\n                    }\n                    forceTokenization(e) {\n                        if (e < 1 || e > this.getLineCount()) throw new Error(\"Illegal value for lineNumber\");\n                        this._tokenization.forceTokenization(e)\n                    }\n                    isCheapToTokenize(e) {\n                        return this._tokenization.isCheapToTokenize(e)\n                    }\n                    tokenizeIfCheap(e) {\n                        this.isCheapToTokenize(e) && this.forceTokenization(e)\n                    }\n                    getLineTokens(e) {\n                        if (e < 1 || e > this.getLineCount()) throw new Error(\"Illegal value for lineNumber\");\n                        return this._getLineTokens(e)\n                    }\n                    _getLineTokens(e) {\n                        const t = this.getLineContent(e),\n                            i = this._tokens.getTokens(this._languageId, e - 1, t);\n                        return this._tokens2.addSemanticTokens(e, i)\n                    }\n                    getLanguageId() {\n                        return this._languageId\n                    }\n                    setMode(e) {\n                        if (this._languageId === e) return;\n                        let t = {\n                            oldLanguage: this._languageId,\n                            newLanguage: e\n                        };\n                        this._languageId = e, this._onDidChangeLanguage.fire(t), this._onDidChangeLanguageConfiguration.fire({})\n                    }\n                    getLanguageIdAtPosition(e, t) {\n                        const i = this.validatePosition(new c.L(e, t)),\n                            n = this.getLineTokens(i.lineNumber);\n                        return n.getLanguageId(n.findTokenIndexAtOffset(i.column - 1))\n                    }\n                    getLanguageConfiguration(e) {\n                        return this._languageConfigurationService.getLanguageConfiguration(e)\n                    }\n                    getWordAtPosition(t) {\n                        this._assertNotDisposed();\n                        const i = this.validatePosition(t),\n                            n = this.getLineContent(i.lineNumber),\n                            o = this._getLineTokens(i.lineNumber),\n                            s = o.findTokenIndexAtOffset(i.column - 1),\n                            [r, a] = e._findLanguageBoundaries(o, s),\n                            l = (0, xe.t2)(i.column, this.getLanguageConfiguration(o.getLanguageId(s)).getWordDefinition(), n.substring(r, a), r);\n                        if (l && l.startColumn <= t.column && t.column <= l.endColumn) return l;\n                        if (s > 0 && r === i.column - 1) {\n                            const [r, a] = e._findLanguageBoundaries(o, s - 1), l = (0, xe.t2)(i.column, this.getLanguageConfiguration(o.getLanguageId(s - 1)).getWordDefinition(), n.substring(r, a), r);\n                            if (l && l.startColumn <= t.column && t.column <= l.endColumn) return l\n                        }\n                        return null\n                    }\n                    static _findLanguageBoundaries(e, t) {\n                        const i = e.getLanguageId(t);\n                        let n = 0;\n                        for (let o = t; o >= 0 && e.getLanguageId(o) === i; o--) n = e.getStartOffset(o);\n                        let o = e.getLineContent().length;\n                        for (let n = t, s = e.getCount(); n < s && e.getLanguageId(n) === i; n++) o = e.getEndOffset(n);\n                        return [n, o]\n                    }\n                    getWordUntilPosition(e) {\n                        const t = this.getWordAtPosition(e);\n                        return t ? {\n                            word: t.word.substr(0, e.column - t.startColumn),\n                            startColumn: t.startColumn,\n                            endColumn: e.column\n                        } : {\n                            word: \"\",\n                            startColumn: e.column,\n                            endColumn: e.column\n                        }\n                    }\n                    findMatchingBracketUp(e, t) {\n                        let i = e.toLowerCase(),\n                            n = this.validatePosition(t),\n                            o = this._getLineTokens(n.lineNumber),\n                            s = o.getLanguageId(o.findTokenIndexAtOffset(n.column - 1)),\n                            r = this.getLanguageConfiguration(s).brackets;\n                        if (!r) return null;\n                        let a = r.textIsBracket[i];\n                        return a ? Wt(this._findMatchingBracketUp(a, n, null)) : null\n                    }\n                    matchBracket(e) {\n                        return this._matchBracket(this.validatePosition(e))\n                    }\n                    _establishBracketSearchOffsets(e, t, i, n) {\n                        const o = t.getCount(),\n                            s = t.getLanguageId(n);\n                        let r = Math.max(0, e.column - 1 - i.maxBracketLength);\n                        for (let e = n - 1; e >= 0; e--) {\n                            const i = t.getEndOffset(e);\n                            if (i <= r) break;\n                            if ((0, ke.Bu)(t.getStandardTokenType(e)) || t.getLanguageId(e) !== s) {\n                                r = i;\n                                break\n                            }\n                        }\n                        let a = Math.min(t.getLineContent().length, e.column - 1 + i.maxBracketLength);\n                        for (let e = n + 1; e < o; e++) {\n                            const i = t.getStartOffset(e);\n                            if (i >= a) break;\n                            if ((0, ke.Bu)(t.getStandardTokenType(e)) || t.getLanguageId(e) !== s) {\n                                a = i;\n                                break\n                            }\n                        }\n                        return {\n                            searchStartOffset: r,\n                            searchEndOffset: a\n                        }\n                    }\n                    _matchBracket(e) {\n                        const t = e.lineNumber,\n                            i = this._getLineTokens(t),\n                            n = this._buffer.getLineContent(t),\n                            o = i.findTokenIndexAtOffset(e.column - 1);\n                        if (o < 0) return null;\n                        const s = this.getLanguageConfiguration(i.getLanguageId(o)).brackets;\n                        if (s && !(0, ke.Bu)(i.getStandardTokenType(o))) {\n                            let {\n                                searchStartOffset: r,\n                                searchEndOffset: a\n                            } = this._establishBracketSearchOffsets(e, i, s, o), l = null;\n                            for (;;) {\n                                const i = Le.Vr.findNextBracketInRange(s.forwardRegex, t, n, r, a);\n                                if (!i) break;\n                                if (i.startColumn <= e.column && e.column <= i.endColumn) {\n                                    const e = n.substring(i.startColumn - 1, i.endColumn - 1).toLowerCase(),\n                                        t = this._matchFoundBracket(i, s.textIsBracket[e], s.textIsOpenBracket[e], null);\n                                    if (t) {\n                                        if (t instanceof Vt) return null;\n                                        l = t\n                                    }\n                                }\n                                r = i.endColumn - 1\n                            }\n                            if (l) return l\n                        }\n                        if (o > 0 && i.getStartOffset(o) === e.column - 1) {\n                            const s = o - 1,\n                                r = this.getLanguageConfiguration(i.getLanguageId(s)).brackets;\n                            if (r && !(0, ke.Bu)(i.getStandardTokenType(s))) {\n                                let {\n                                    searchStartOffset: o,\n                                    searchEndOffset: a\n                                } = this._establishBracketSearchOffsets(e, i, r, s);\n                                const l = Le.Vr.findPrevBracketInRange(r.reversedRegex, t, n, o, a);\n                                if (l && l.startColumn <= e.column && e.column <= l.endColumn) {\n                                    const e = n.substring(l.startColumn - 1, l.endColumn - 1).toLowerCase(),\n                                        t = this._matchFoundBracket(l, r.textIsBracket[e], r.textIsOpenBracket[e], null);\n                                    if (t) return t instanceof Vt ? null : t\n                                }\n                            }\n                        }\n                        return null\n                    }\n                    _matchFoundBracket(e, t, i, n) {\n                        if (!t) return null;\n                        const o = i ? this._findMatchingBracketDown(t, e.getEndPosition(), n) : this._findMatchingBracketUp(t, e.getStartPosition(), n);\n                        return o ? o instanceof Vt ? o : [e, o] : null\n                    }\n                    _findMatchingBracketUp(e, t, i) {\n                        const n = e.languageId,\n                            o = e.reversedRegex;\n                        let s = -1,\n                            r = 0;\n                        const a = (t, n, a, l) => {\n                            for (;;) {\n                                if (i && ++r % 100 == 0 && !i()) return Vt.INSTANCE;\n                                const c = Le.Vr.findPrevBracketInRange(o, t, n, a, l);\n                                if (!c) break;\n                                const d = n.substring(c.startColumn - 1, c.endColumn - 1).toLowerCase();\n                                if (e.isOpen(d) ? s++ : e.isClose(d) && s--, 0 === s) return c;\n                                l = c.startColumn - 1\n                            }\n                            return null\n                        };\n                        for (let e = t.lineNumber; e >= 1; e--) {\n                            const i = this._getLineTokens(e),\n                                o = i.getCount(),\n                                s = this._buffer.getLineContent(e);\n                            let r = o - 1,\n                                l = s.length,\n                                c = s.length;\n                            e === t.lineNumber && (r = i.findTokenIndexAtOffset(t.column - 1), l = t.column - 1, c = t.column - 1);\n                            let d = !0;\n                            for (; r >= 0; r--) {\n                                const t = i.getLanguageId(r) === n && !(0, ke.Bu)(i.getStandardTokenType(r));\n                                if (t) d ? l = i.getStartOffset(r) : (l = i.getStartOffset(r), c = i.getEndOffset(r));\n                                else if (d && l !== c) {\n                                    const t = a(e, s, l, c);\n                                    if (t) return t\n                                }\n                                d = t\n                            }\n                            if (d && l !== c) {\n                                const t = a(e, s, l, c);\n                                if (t) return t\n                            }\n                        }\n                        return null\n                    }\n                    _findMatchingBracketDown(e, t, i) {\n                        const n = e.languageId,\n                            o = e.forwardRegex;\n                        let s = 1,\n                            r = 0;\n                        const a = (t, n, a, l) => {\n                                for (;;) {\n                                    if (i && ++r % 100 == 0 && !i()) return Vt.INSTANCE;\n                                    const c = Le.Vr.findNextBracketInRange(o, t, n, a, l);\n                                    if (!c) break;\n                                    const d = n.substring(c.startColumn - 1, c.endColumn - 1).toLowerCase();\n                                    if (e.isOpen(d) ? s++ : e.isClose(d) && s--, 0 === s) return c;\n                                    a = c.endColumn - 1\n                                }\n                                return null\n                            },\n                            l = this.getLineCount();\n                        for (let e = t.lineNumber; e <= l; e++) {\n                            const i = this._getLineTokens(e),\n                                o = i.getCount(),\n                                s = this._buffer.getLineContent(e);\n                            let r = 0,\n                                l = 0,\n                                c = 0;\n                            e === t.lineNumber && (r = i.findTokenIndexAtOffset(t.column - 1), l = t.column - 1, c = t.column - 1);\n                            let d = !0;\n                            for (; r < o; r++) {\n                                const t = i.getLanguageId(r) === n && !(0, ke.Bu)(i.getStandardTokenType(r));\n                                if (t) d || (l = i.getStartOffset(r)), c = i.getEndOffset(r);\n                                else if (d && l !== c) {\n                                    const t = a(e, s, l, c);\n                                    if (t) return t\n                                }\n                                d = t\n                            }\n                            if (d && l !== c) {\n                                const t = a(e, s, l, c);\n                                if (t) return t\n                            }\n                        }\n                        return null\n                    }\n                    findPrevBracket(e) {\n                        const t = this.validatePosition(e);\n                        let i = null,\n                            n = null;\n                        for (let e = t.lineNumber; e >= 1; e--) {\n                            const o = this._getLineTokens(e),\n                                s = o.getCount(),\n                                r = this._buffer.getLineContent(e);\n                            let a = s - 1,\n                                l = r.length,\n                                c = r.length;\n                            if (e === t.lineNumber) {\n                                a = o.findTokenIndexAtOffset(t.column - 1), l = t.column - 1, c = t.column - 1;\n                                const e = o.getLanguageId(a);\n                                i !== e && (i = e, n = this.getLanguageConfiguration(i).brackets)\n                            }\n                            let d = !0;\n                            for (; a >= 0; a--) {\n                                const t = o.getLanguageId(a);\n                                if (i !== t) {\n                                    if (n && d && l !== c) {\n                                        const t = Le.Vr.findPrevBracketInRange(n.reversedRegex, e, r, l, c);\n                                        if (t) return this._toFoundBracket(n, t);\n                                        d = !1\n                                    }\n                                    i = t, n = this.getLanguageConfiguration(i).brackets\n                                }\n                                const s = !!n && !(0, ke.Bu)(o.getStandardTokenType(a));\n                                if (s) d ? l = o.getStartOffset(a) : (l = o.getStartOffset(a), c = o.getEndOffset(a));\n                                else if (n && d && l !== c) {\n                                    const t = Le.Vr.findPrevBracketInRange(n.reversedRegex, e, r, l, c);\n                                    if (t) return this._toFoundBracket(n, t)\n                                }\n                                d = s\n                            }\n                            if (n && d && l !== c) {\n                                const t = Le.Vr.findPrevBracketInRange(n.reversedRegex, e, r, l, c);\n                                if (t) return this._toFoundBracket(n, t)\n                            }\n                        }\n                        return null\n                    }\n                    findNextBracket(e) {\n                        const t = this.validatePosition(e),\n                            i = this.getLineCount();\n                        let n = null,\n                            o = null;\n                        for (let e = t.lineNumber; e <= i; e++) {\n                            const i = this._getLineTokens(e),\n                                s = i.getCount(),\n                                r = this._buffer.getLineContent(e);\n                            let a = 0,\n                                l = 0,\n                                c = 0;\n                            if (e === t.lineNumber) {\n                                a = i.findTokenIndexAtOffset(t.column - 1), l = t.column - 1, c = t.column - 1;\n                                const e = i.getLanguageId(a);\n                                n !== e && (n = e, o = this.getLanguageConfiguration(n).brackets)\n                            }\n                            let d = !0;\n                            for (; a < s; a++) {\n                                const t = i.getLanguageId(a);\n                                if (n !== t) {\n                                    if (o && d && l !== c) {\n                                        const t = Le.Vr.findNextBracketInRange(o.forwardRegex, e, r, l, c);\n                                        if (t) return this._toFoundBracket(o, t);\n                                        d = !1\n                                    }\n                                    n = t, o = this.getLanguageConfiguration(n).brackets\n                                }\n                                const s = !!o && !(0, ke.Bu)(i.getStandardTokenType(a));\n                                if (s) d || (l = i.getStartOffset(a)), c = i.getEndOffset(a);\n                                else if (o && d && l !== c) {\n                                    const t = Le.Vr.findNextBracketInRange(o.forwardRegex, e, r, l, c);\n                                    if (t) return this._toFoundBracket(o, t)\n                                }\n                                d = s\n                            }\n                            if (o && d && l !== c) {\n                                const t = Le.Vr.findNextBracketInRange(o.forwardRegex, e, r, l, c);\n                                if (t) return this._toFoundBracket(o, t)\n                            }\n                        }\n                        return null\n                    }\n                    findEnclosingBrackets(e, t) {\n                        let i;\n                        if (void 0 === t) i = null;\n                        else {\n                            const e = Date.now();\n                            i = () => Date.now() - e <= t\n                        }\n                        const n = this.validatePosition(e),\n                            o = this.getLineCount(),\n                            s = new Map;\n                        let r = [];\n                        const a = (e, t) => {\n                            if (!s.has(e)) {\n                                let i = [];\n                                for (let e = 0, n = t ? t.brackets.length : 0; e < n; e++) i[e] = 0;\n                                s.set(e, i)\n                            }\n                            r = s.get(e)\n                        };\n                        let l = 0;\n                        const c = (e, t, n, o, s) => {\n                            for (;;) {\n                                if (i && ++l % 100 == 0 && !i()) return Vt.INSTANCE;\n                                const a = Le.Vr.findNextBracketInRange(e.forwardRegex, t, n, o, s);\n                                if (!a) break;\n                                const c = n.substring(a.startColumn - 1, a.endColumn - 1).toLowerCase(),\n                                    d = e.textIsBracket[c];\n                                if (d && (d.isOpen(c) ? r[d.index]++ : d.isClose(c) && r[d.index]--, -1 === r[d.index])) return this._matchFoundBracket(a, d, !1, i);\n                                o = a.endColumn - 1\n                            }\n                            return null\n                        };\n                        let d = null,\n                            h = null;\n                        for (let e = n.lineNumber; e <= o; e++) {\n                            const t = this._getLineTokens(e),\n                                i = t.getCount(),\n                                o = this._buffer.getLineContent(e);\n                            let s = 0,\n                                r = 0,\n                                l = 0;\n                            if (e === n.lineNumber) {\n                                s = t.findTokenIndexAtOffset(n.column - 1), r = n.column - 1, l = n.column - 1;\n                                const e = t.getLanguageId(s);\n                                d !== e && (d = e, h = this.getLanguageConfiguration(d).brackets, a(d, h))\n                            }\n                            let u = !0;\n                            for (; s < i; s++) {\n                                const i = t.getLanguageId(s);\n                                if (d !== i) {\n                                    if (h && u && r !== l) {\n                                        const t = c(h, e, o, r, l);\n                                        if (t) return Wt(t);\n                                        u = !1\n                                    }\n                                    d = i, h = this.getLanguageConfiguration(d).brackets, a(d, h)\n                                }\n                                const n = !!h && !(0, ke.Bu)(t.getStandardTokenType(s));\n                                if (n) u || (r = t.getStartOffset(s)), l = t.getEndOffset(s);\n                                else if (h && u && r !== l) {\n                                    const t = c(h, e, o, r, l);\n                                    if (t) return Wt(t)\n                                }\n                                u = n\n                            }\n                            if (h && u && r !== l) {\n                                const t = c(h, e, o, r, l);\n                                if (t) return Wt(t)\n                            }\n                        }\n                        return null\n                    }\n                    _toFoundBracket(e, t) {\n                        if (!t) return null;\n                        let i = this.getValueInRange(t);\n                        i = i.toLowerCase();\n                        let n = e.textIsBracket[i];\n                        return n ? {\n                            range: t,\n                            open: n.open,\n                            close: n.close,\n                            isOpen: e.textIsOpenBracket[i]\n                        } : null\n                    }\n                    static computeIndentLevel(e, t) {\n                        let i = 0,\n                            n = 0,\n                            o = e.length;\n                        for (; n < o;) {\n                            let o = e.charCodeAt(n);\n                            if (32 === o) i++;\n                            else {\n                                if (9 !== o) break;\n                                i = i - i % t + t\n                            }\n                            n++\n                        }\n                        return n === o ? -1 : i\n                    }\n                    _computeIndentLevel(t) {\n                        return e.computeIndentLevel(this._buffer.getLineContent(t + 1), this._options.tabSize)\n                    }\n                    getActiveIndentGuide(e, t, i) {\n                        this._assertNotDisposed();\n                        const n = this.getLineCount();\n                        if (e < 1 || e > n) throw new Error(\"Illegal value for lineNumber\");\n                        const o = this.getLanguageConfiguration(this._languageId).foldingRules,\n                            s = Boolean(o && o.offSide);\n                        let r = -2,\n                            a = -1,\n                            l = -2,\n                            c = -1;\n                        const d = e => {\n                            if (-1 !== r && (-2 === r || r > e - 1)) {\n                                r = -1, a = -1;\n                                for (let t = e - 2; t >= 0; t--) {\n                                    let e = this._computeIndentLevel(t);\n                                    if (e >= 0) {\n                                        r = t, a = e;\n                                        break\n                                    }\n                                }\n                            }\n                            if (-2 === l) {\n                                l = -1, c = -1;\n                                for (let t = e; t < n; t++) {\n                                    let e = this._computeIndentLevel(t);\n                                    if (e >= 0) {\n                                        l = t, c = e;\n                                        break\n                                    }\n                                }\n                            }\n                        };\n                        let h = -2,\n                            u = -1,\n                            g = -2,\n                            p = -1;\n                        const f = e => {\n                            if (-2 === h) {\n                                h = -1, u = -1;\n                                for (let t = e - 2; t >= 0; t--) {\n                                    let e = this._computeIndentLevel(t);\n                                    if (e >= 0) {\n                                        h = t, u = e;\n                                        break\n                                    }\n                                }\n                            }\n                            if (-1 !== g && (-2 === g || g < e - 1)) {\n                                g = -1, p = -1;\n                                for (let t = e; t < n; t++) {\n                                    let e = this._computeIndentLevel(t);\n                                    if (e >= 0) {\n                                        g = t, p = e;\n                                        break\n                                    }\n                                }\n                            }\n                        };\n                        let m = 0,\n                            v = !0,\n                            _ = 0,\n                            b = !0,\n                            w = 0,\n                            y = 0;\n                        for (let o = 0; v || b; o++) {\n                            const r = e - o,\n                                g = e + o;\n                            o > 1 && (r < 1 || r < t) && (v = !1), o > 1 && (g > n || g > i) && (b = !1), o > 5e4 && (v = !1, b = !1);\n                            let C = -1;\n                            if (v) {\n                                const e = this._computeIndentLevel(r - 1);\n                                e >= 0 ? (l = r - 1, c = e, C = Math.ceil(e / this._options.indentSize)) : (d(r), C = this._getIndentLevelForWhitespaceLine(s, a, c))\n                            }\n                            let x = -1;\n                            if (b) {\n                                const e = this._computeIndentLevel(g - 1);\n                                e >= 0 ? (h = g - 1, u = e, x = Math.ceil(e / this._options.indentSize)) : (f(g), x = this._getIndentLevelForWhitespaceLine(s, u, p))\n                            }\n                            if (0 !== o) {\n                                if (1 === o) {\n                                    if (g <= n && x >= 0 && y + 1 === x) {\n                                        v = !1, m = g, _ = g, w = x;\n                                        continue\n                                    }\n                                    if (r >= 1 && C >= 0 && C - 1 === y) {\n                                        b = !1, m = r, _ = r, w = C;\n                                        continue\n                                    }\n                                    if (m = e, _ = e, w = y, 0 === w) return {\n                                        startLineNumber: m,\n                                        endLineNumber: _,\n                                        indent: w\n                                    }\n                                }\n                                v && (C >= w ? m = r : v = !1), b && (x >= w ? _ = g : b = !1)\n                            } else y = C\n                        }\n                        return {\n                            startLineNumber: m,\n                            endLineNumber: _,\n                            indent: w\n                        }\n                    }\n                    getLinesBracketGuides(e, t, i, n) {\n                        var o, s, a, l, c;\n                        const h = [],\n                            g = this._bracketPairColorizer.getBracketPairsInRangeWithMinIndentation(new d.e(e, 1, t, this.getLineMaxColumn(t)));\n                        let p;\n                        if (i && g.length > 0) {\n                            const n = e <= i.lineNumber && i.lineNumber <= t ? g.filter((e => e.range.containsPosition(i))) : this._bracketPairColorizer.getBracketPairsInRange(d.e.fromPositions(i));\n                            p = null === (o = (0, pe.dF)(n, (e => e.range.startLineNumber !== e.range.endLineNumber))) || void 0 === o ? void 0 : o.range\n                        }\n                        const f = new pe.H9(g),\n                            m = new Array,\n                            v = new Array,\n                            _ = new zt;\n                        for (let i = e; i <= t; i++) {\n                            let e = new Array;\n                            v.length > 0 && (e = e.concat(v), v.length = 0), h.push(e);\n                            for (const e of f.takeWhile((e => e.openingBracketRange.startLineNumber <= i)) || []) {\n                                if (e.range.startLineNumber === e.range.endLineNumber) continue;\n                                const t = Math.min(this.getVisibleColumnFromPosition(e.openingBracketRange.getStartPosition()), this.getVisibleColumnFromPosition(null !== (a = null === (s = e.closingBracketRange) || void 0 === s ? void 0 : s.getStartPosition()) && void 0 !== a ? a : e.range.getEndPosition()), e.minVisibleColumnIndentation + 1);\n                                let i = !1;\n                                if (e.closingBracketRange) {\n                                    r.LC(this.getLineContent(e.closingBracketRange.startLineNumber)) < e.closingBracketRange.startColumn - 1 && (i = !0)\n                                }\n                                const n = e.openingBracketRange.getStartPosition(),\n                                    o = null !== (c = null === (l = e.closingBracketRange) || void 0 === l ? void 0 : l.getStartPosition()) && void 0 !== c ? c : e.range.getEndPosition();\n                                void 0 === e.closingBracketRange ? m[e.nestingLevel] = null : m[e.nestingLevel] = {\n                                    nestingLevel: e.nestingLevel,\n                                    guideVisibleColumn: t,\n                                    start: n,\n                                    visibleStartColumn: this.getVisibleColumnFromPosition(n),\n                                    end: o,\n                                    visibleEndColumn: this.getVisibleColumnFromPosition(o),\n                                    bracketPair: e,\n                                    renderHorizontalEndLineAtTheBottom: i\n                                }\n                            }\n                            for (const t of m) {\n                                if (!t) continue;\n                                const o = p && t.bracketPair.range.equalsRange(p),\n                                    s = _.getInlineClassNameOfLevel(t.nestingLevel) + (n.highlightActive && o ? \" \" + _.activeClassName : \"\");\n                                (o && n.horizontalGuides !== u.s6.Disabled || n.includeInactive && n.horizontalGuides === u.s6.Enabled) && (t.start.lineNumber === i && t.guideVisibleColumn < t.visibleStartColumn && e.push(new u.UO(t.guideVisibleColumn, s, new u.vW(!1, t.start.column))), t.end.lineNumber === i + 1 && t.guideVisibleColumn < t.visibleEndColumn && v.push(new u.UO(t.guideVisibleColumn, s, new u.vW(!t.renderHorizontalEndLineAtTheBottom, t.end.column))))\n                            }\n                            let t = Number.MAX_SAFE_INTEGER;\n                            for (let o = m.length - 1; o >= 0; o--) {\n                                const s = m[o];\n                                if (!s) continue;\n                                const r = n.highlightActive && p && s.bracketPair.range.equalsRange(p),\n                                    a = _.getInlineClassNameOfLevel(s.nestingLevel) + (r ? \" \" + _.activeClassName : \"\");\n                                (r || n.includeInactive) && s.renderHorizontalEndLineAtTheBottom && s.end.lineNumber === i + 1 && v.push(new u.UO(s.guideVisibleColumn, a, null)), s.end.lineNumber <= i || s.start.lineNumber >= i || (s.guideVisibleColumn >= t && !r || (t = s.guideVisibleColumn, (r || n.includeInactive) && e.push(new u.UO(s.guideVisibleColumn, a, null))))\n                            }\n                            e.sort(((e, t) => e.visibleColumn - t.visibleColumn))\n                        }\n                        return h\n                    }\n                    getVisibleColumnFromPosition(e) {\n                        return $e.i.visibleColumnFromColumn(this.getLineContent(e.lineNumber), e.column, this._options.tabSize) + 1\n                    }\n                    getLinesIndentGuides(e, t) {\n                        this._assertNotDisposed();\n                        const i = this.getLineCount();\n                        if (e < 1 || e > i) throw new Error(\"Illegal value for startLineNumber\");\n                        if (t < 1 || t > i) throw new Error(\"Illegal value for endLineNumber\");\n                        const n = this.getLanguageConfiguration(this._languageId).foldingRules,\n                            o = Boolean(n && n.offSide);\n                        let s = new Array(t - e + 1),\n                            r = -2,\n                            a = -1,\n                            l = -2,\n                            c = -1;\n                        for (let n = e; n <= t; n++) {\n                            let t = n - e;\n                            const d = this._computeIndentLevel(n - 1);\n                            if (d >= 0) r = n - 1, a = d, s[t] = Math.ceil(d / this._options.indentSize);\n                            else {\n                                if (-2 === r) {\n                                    r = -1, a = -1;\n                                    for (let e = n - 2; e >= 0; e--) {\n                                        let t = this._computeIndentLevel(e);\n                                        if (t >= 0) {\n                                            r = e, a = t;\n                                            break\n                                        }\n                                    }\n                                }\n                                if (-1 !== l && (-2 === l || l < n - 1)) {\n                                    l = -1, c = -1;\n                                    for (let e = n; e < i; e++) {\n                                        let t = this._computeIndentLevel(e);\n                                        if (t >= 0) {\n                                            l = e, c = t;\n                                            break\n                                        }\n                                    }\n                                }\n                                s[t] = this._getIndentLevelForWhitespaceLine(o, a, c)\n                            }\n                        }\n                        return s\n                    }\n                    _getIndentLevelForWhitespaceLine(e, t, i) {\n                        return -1 === t || -1 === i ? 0 : t < i ? 1 + Math.floor(t / this._options.indentSize) : t === i || e ? Math.ceil(i / this._options.indentSize) : 1 + Math.floor(i / this._options.indentSize)\n                    }\n                    normalizePosition(e, t) {\n                        return e\n                    }\n                    getLineIndentColumn(e) {\n                        return function(e) {\n                            let t = 0;\n                            for (const i of e) {\n                                if (\" \" !== i && \"\\t\" !== i) break;\n                                t++\n                            }\n                            return t\n                        }(this.getLineContent(e)) + 1\n                    }\n                };\n                Ht.MODEL_SYNC_LIMIT = 52428800, Ht.LARGE_FILE_SIZE_THRESHOLD = 20971520, Ht.LARGE_FILE_LINE_COUNT_THRESHOLD = 3e5, Ht.DEFAULT_CREATION_OPTIONS = {\n                    isForSimpleWidget: !1,\n                    tabSize: l.DB.tabSize,\n                    indentSize: l.DB.indentSize,\n                    insertSpaces: l.DB.insertSpaces,\n                    detectIndentation: !1,\n                    defaultEOL: 1,\n                    trimAutoWhitespace: l.DB.trimAutoWhitespace,\n                    largeFileOptimizations: l.DB.largeFileOptimizations,\n                    bracketPairColorizationOptions: l.DB.bracketPairColorizationOptions\n                }, Ht = Mt([At(4, De.tJ), At(5, Tt.h), At(6, Se.c_)], Ht);\n                class zt {\n                    constructor() {\n                        this.activeClassName = \"indent-active\"\n                    }\n                    getInlineClassNameOfLevel(e) {\n                        return \"bracket-indent-guide lvl-\" + e % 30\n                    }\n                }\n\n                function jt(e) {\n                    return !(!e.options.overviewRuler || !e.options.overviewRuler.color)\n                }\n\n                function Ut(e) {\n                    return !!e.options.after || !!e.options.before\n                }\n                class $t {\n                    constructor() {\n                        this._decorationsTree0 = new N, this._decorationsTree1 = new N, this._injectedTextDecorationsTree = new N\n                    }\n                    ensureAllNodesHaveRanges(e) {\n                        this.getAll(e, 0, !1, !1)\n                    }\n                    _ensureNodesHaveRanges(e, t) {\n                        for (const i of t) null === i.range && (i.range = e.getRangeAt(i.cachedAbsoluteStart, i.cachedAbsoluteEnd));\n                        return t\n                    }\n                    getAllInInterval(e, t, i, n, o) {\n                        const s = e.getVersionId(),\n                            r = this._intervalSearch(t, i, n, o, s);\n                        return this._ensureNodesHaveRanges(e, r)\n                    }\n                    _intervalSearch(e, t, i, n, o) {\n                        const s = this._decorationsTree0.intervalSearch(e, t, i, n, o),\n                            r = this._decorationsTree1.intervalSearch(e, t, i, n, o),\n                            a = this._injectedTextDecorationsTree.intervalSearch(e, t, i, n, o);\n                        return s.concat(r).concat(a)\n                    }\n                    getInjectedTextInInterval(e, t, i, n) {\n                        const o = e.getVersionId(),\n                            s = this._injectedTextDecorationsTree.intervalSearch(t, i, n, !1, o);\n                        return this._ensureNodesHaveRanges(e, s).filter((e => e.options.showIfCollapsed || !e.range.isEmpty()))\n                    }\n                    getAllInjectedText(e, t) {\n                        const i = e.getVersionId(),\n                            n = this._injectedTextDecorationsTree.search(t, !1, i);\n                        return this._ensureNodesHaveRanges(e, n).filter((e => e.options.showIfCollapsed || !e.range.isEmpty()))\n                    }\n                    getAll(e, t, i, n) {\n                        const o = e.getVersionId(),\n                            s = this._search(t, i, n, o);\n                        return this._ensureNodesHaveRanges(e, s)\n                    }\n                    _search(e, t, i, n) {\n                        if (i) return this._decorationsTree1.search(e, t, n); {\n                            const i = this._decorationsTree0.search(e, t, n),\n                                o = this._decorationsTree1.search(e, t, n),\n                                s = this._injectedTextDecorationsTree.search(e, t, n);\n                            return i.concat(o).concat(s)\n                        }\n                    }\n                    collectNodesFromOwner(e) {\n                        const t = this._decorationsTree0.collectNodesFromOwner(e),\n                            i = this._decorationsTree1.collectNodesFromOwner(e),\n                            n = this._injectedTextDecorationsTree.collectNodesFromOwner(e);\n                        return t.concat(i).concat(n)\n                    }\n                    collectNodesPostOrder() {\n                        const e = this._decorationsTree0.collectNodesPostOrder(),\n                            t = this._decorationsTree1.collectNodesPostOrder(),\n                            i = this._injectedTextDecorationsTree.collectNodesPostOrder();\n                        return e.concat(t).concat(i)\n                    }\n                    insert(e) {\n                        Ut(e) ? this._injectedTextDecorationsTree.insert(e) : jt(e) ? this._decorationsTree1.insert(e) : this._decorationsTree0.insert(e)\n                    }\n                    delete(e) {\n                        Ut(e) ? this._injectedTextDecorationsTree.delete(e) : jt(e) ? this._decorationsTree1.delete(e) : this._decorationsTree0.delete(e)\n                    }\n                    getNodeRange(e, t) {\n                        const i = e.getVersionId();\n                        return t.cachedVersionId !== i && this._resolveNode(t, i), null === t.range && (t.range = e.getRangeAt(t.cachedAbsoluteStart, t.cachedAbsoluteEnd)), t.range\n                    }\n                    _resolveNode(e, t) {\n                        Ut(e) ? this._injectedTextDecorationsTree.resolveNode(e, t) : jt(e) ? this._decorationsTree1.resolveNode(e, t) : this._decorationsTree0.resolveNode(e, t)\n                    }\n                    acceptReplace(e, t, i, n) {\n                        this._decorationsTree0.acceptReplace(e, t, i, n), this._decorationsTree1.acceptReplace(e, t, i, n), this._injectedTextDecorationsTree.acceptReplace(e, t, i, n)\n                    }\n                }\n\n                function Kt(e) {\n                    return e.replace(/[^a-z0-9\\-_]/gi, \" \")\n                }\n                class qt {\n                    constructor(e) {\n                        this.color = e.color || \"\", this.darkColor = e.darkColor || \"\"\n                    }\n                }\n                class Zt extends qt {\n                    constructor(e) {\n                        super(e), this._resolvedColor = null, this.position = \"number\" == typeof e.position ? e.position : u.sh.Center\n                    }\n                    getColor(e) {\n                        return this._resolvedColor || (\"light\" !== e.type && this.darkColor ? this._resolvedColor = this._resolveColor(this.darkColor, e) : this._resolvedColor = this._resolveColor(this.color, e)), this._resolvedColor\n                    }\n                    invalidateCachedColor() {\n                        this._resolvedColor = null\n                    }\n                    _resolveColor(e, t) {\n                        if (\"string\" == typeof e) return e;\n                        let i = e ? t.getColor(e.id) : null;\n                        return i ? i.toString() : \"\"\n                    }\n                }\n                class Gt extends qt {\n                    constructor(e) {\n                        super(e), this.position = e.position\n                    }\n                    getColor(e) {\n                        return this._resolvedColor || (\"light\" !== e.type && this.darkColor ? this._resolvedColor = this._resolveColor(this.darkColor, e) : this._resolvedColor = this._resolveColor(this.color, e)), this._resolvedColor\n                    }\n                    invalidateCachedColor() {\n                        this._resolvedColor = void 0\n                    }\n                    _resolveColor(e, t) {\n                        return \"string\" == typeof e ? Ne.Il.fromHex(e) : t.getColor(e.id)\n                    }\n                }\n                class Yt {\n                    constructor(e) {\n                        this.content = e.content || \"\", this.inlineClassName = e.inlineClassName || null, this.inlineClassNameAffectsLetterSpacing = e.inlineClassNameAffectsLetterSpacing || !1\n                    }\n                    static from(e) {\n                        return e instanceof Yt ? e : new Yt(e)\n                    }\n                }\n                class Qt {\n                    constructor(e) {\n                        this.description = e.description, this.stickiness = e.stickiness || 0, this.zIndex = e.zIndex || 0, this.className = e.className ? Kt(e.className) : null, this.hoverMessage = e.hoverMessage || null, this.glyphMarginHoverMessage = e.glyphMarginHoverMessage || null, this.isWholeLine = e.isWholeLine || !1, this.showIfCollapsed = e.showIfCollapsed || !1, this.collapseOnReplaceEdit = e.collapseOnReplaceEdit || !1, this.overviewRuler = e.overviewRuler ? new Zt(e.overviewRuler) : null, this.minimap = e.minimap ? new Gt(e.minimap) : null, this.glyphMarginClassName = e.glyphMarginClassName ? Kt(e.glyphMarginClassName) : null, this.linesDecorationsClassName = e.linesDecorationsClassName ? Kt(e.linesDecorationsClassName) : null, this.firstLineDecorationClassName = e.firstLineDecorationClassName ? Kt(e.firstLineDecorationClassName) : null, this.marginClassName = e.marginClassName ? Kt(e.marginClassName) : null, this.inlineClassName = e.inlineClassName ? Kt(e.inlineClassName) : null, this.inlineClassNameAffectsLetterSpacing = e.inlineClassNameAffectsLetterSpacing || !1, this.beforeContentClassName = e.beforeContentClassName ? Kt(e.beforeContentClassName) : null, this.afterContentClassName = e.afterContentClassName ? Kt(e.afterContentClassName) : null, this.after = e.after ? Yt.from(e.after) : null, this.before = e.before ? Yt.from(e.before) : null\n                    }\n                    static register(e) {\n                        return new Qt(e)\n                    }\n                    static createDynamic(e) {\n                        return new Qt(e)\n                    }\n                }\n                Qt.EMPTY = Qt.register({\n                    description: \"empty\"\n                });\n                const Xt = [Qt.register({\n                    description: \"tracked-range-always-grows-when-typing-at-edges\",\n                    stickiness: 0\n                }), Qt.register({\n                    description: \"tracked-range-never-grows-when-typing-at-edges\",\n                    stickiness: 1\n                }), Qt.register({\n                    description: \"tracked-range-grows-only-when-typing-before\",\n                    stickiness: 2\n                }), Qt.register({\n                    description: \"tracked-range-grows-only-when-typing-after\",\n                    stickiness: 3\n                })];\n\n                function Jt(e) {\n                    return e instanceof Qt ? e : Qt.createDynamic(e)\n                }\n                class ei extends s.JT {\n                    constructor(e) {\n                        super(), this.handleBeforeFire = e, this._actual = this._register(new o.Q5), this.event = this._actual.event, this._affectedInjectedTextLines = null, this._deferredCnt = 0, this._shouldFire = !1, this._affectsMinimap = !1, this._affectsOverviewRuler = !1\n                    }\n                    beginDeferredEmit() {\n                        this._deferredCnt++\n                    }\n                    endDeferredEmit() {\n                        var e;\n                        if (this._deferredCnt--, 0 === this._deferredCnt) {\n                            if (this._shouldFire) {\n                                this.handleBeforeFire(this._affectedInjectedTextLines);\n                                const e = {\n                                    affectsMinimap: this._affectsMinimap,\n                                    affectsOverviewRuler: this._affectsOverviewRuler\n                                };\n                                this._shouldFire = !1, this._affectsMinimap = !1, this._affectsOverviewRuler = !1, this._actual.fire(e)\n                            }\n                            null === (e = this._affectedInjectedTextLines) || void 0 === e || e.clear(), this._affectedInjectedTextLines = null\n                        }\n                    }\n                    recordLineAffectedByInjectedText(e) {\n                        this._affectedInjectedTextLines || (this._affectedInjectedTextLines = new Set), this._affectedInjectedTextLines.add(e)\n                    }\n                    checkAffectedAndFire(e) {\n                        this._affectsMinimap || (this._affectsMinimap = !(!e.minimap || !e.minimap.position)), this._affectsOverviewRuler || (this._affectsOverviewRuler = !(!e.overviewRuler || !e.overviewRuler.color)), this._shouldFire = !0\n                    }\n                    fire() {\n                        this._affectsMinimap = !0, this._affectsOverviewRuler = !0, this._shouldFire = !0\n                    }\n                }\n                class ti extends s.JT {\n                    constructor() {\n                        super(), this._fastEmitter = this._register(new o.Q5), this.fastEvent = this._fastEmitter.event, this._slowEmitter = this._register(new o.Q5), this.slowEvent = this._slowEmitter.event, this._deferredCnt = 0, this._deferredEvent = null\n                    }\n                    beginDeferredEmit() {\n                        this._deferredCnt++\n                    }\n                    endDeferredEmit(e = null) {\n                        if (this._deferredCnt--, 0 === this._deferredCnt && null !== this._deferredEvent) {\n                            this._deferredEvent.rawContentChangedEvent.resultingSelection = e;\n                            const t = this._deferredEvent;\n                            this._deferredEvent = null, this._fastEmitter.fire(t), this._slowEmitter.fire(t)\n                        }\n                    }\n                    fire(e) {\n                        this._deferredCnt > 0 ? this._deferredEvent ? this._deferredEvent = this._deferredEvent.merge(e) : this._deferredEvent = e : (this._fastEmitter.fire(e), this._slowEmitter.fire(e))\n                    }\n                }\n            },\n            83256: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    CZ: () => l,\n                    D8: () => d,\n                    Jx: () => n,\n                    Tx: () => a,\n                    dQ: () => c,\n                    fV: () => h,\n                    gk: () => o,\n                    lN: () => r,\n                    rU: () => s\n                });\n                class n {\n                    constructor() {\n                        this.changeType = 1\n                    }\n                }\n                class o {\n                    constructor(e, t, i, n, o) {\n                        this.ownerId = e, this.lineNumber = t, this.column = i, this.options = n, this.order = o\n                    }\n                    static applyInjectedText(e, t) {\n                        if (!t || 0 === t.length) return e;\n                        let i = \"\",\n                            n = 0;\n                        for (const o of t) i += e.substring(n, o.column - 1), n = o.column - 1, i += o.options.content;\n                        return i += e.substring(n), i\n                    }\n                    static fromDecorations(e) {\n                        const t = [];\n                        for (const i of e) i.options.before && i.options.before.content.length > 0 && t.push(new o(i.ownerId, i.range.startLineNumber, i.range.startColumn, i.options.before, 0)), i.options.after && i.options.after.content.length > 0 && t.push(new o(i.ownerId, i.range.endLineNumber, i.range.endColumn, i.options.after, 1));\n                        return t.sort(((e, t) => e.lineNumber === t.lineNumber ? e.column === t.column ? e.order - t.order : e.column - t.column : e.lineNumber - t.lineNumber)), t\n                    }\n                }\n                class s {\n                    constructor(e, t, i) {\n                        this.changeType = 2, this.lineNumber = e, this.detail = t, this.injectedText = i\n                    }\n                }\n                class r {\n                    constructor(e, t) {\n                        this.changeType = 3, this.fromLineNumber = e, this.toLineNumber = t\n                    }\n                }\n                class a {\n                    constructor(e, t, i, n) {\n                        this.changeType = 4, this.injectedTexts = n, this.fromLineNumber = e, this.toLineNumber = t, this.detail = i\n                    }\n                }\n                class l {\n                    constructor() {\n                        this.changeType = 5\n                    }\n                }\n                class c {\n                    constructor(e, t, i, n) {\n                        this.changes = e, this.versionId = t, this.isUndoing = i, this.isRedoing = n, this.resultingSelection = null\n                    }\n                    containsEvent(e) {\n                        for (let t = 0, i = this.changes.length; t < i; t++) {\n                            if (this.changes[t].changeType === e) return !0\n                        }\n                        return !1\n                    }\n                    static merge(e, t) {\n                        const i = [].concat(e.changes).concat(t.changes),\n                            n = t.versionId,\n                            o = e.isUndoing || t.isUndoing,\n                            s = e.isRedoing || t.isRedoing;\n                        return new c(i, n, o, s)\n                    }\n                }\n                class d {\n                    constructor(e) {\n                        this.changes = e\n                    }\n                }\n                class h {\n                    constructor(e, t) {\n                        this.rawContentChangedEvent = e, this.contentChangedEvent = t\n                    }\n                    merge(e) {\n                        const t = c.merge(this.rawContentChangedEvent, e.rawContentChangedEvent),\n                            i = h._mergeChangeEvents(this.contentChangedEvent, e.contentChangedEvent);\n                        return new h(t, i)\n                    }\n                    static _mergeChangeEvents(e, t) {\n                        return {\n                            changes: [].concat(e.changes).concat(t.changes),\n                            eol: t.eol,\n                            versionId: t.versionId,\n                            isUndoing: e.isUndoing || t.isUndoing,\n                            isRedoing: e.isRedoing || t.isRedoing,\n                            isFlush: e.isFlush || t.isFlush\n                        }\n                    }\n                }\n            },\n            77277: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    bc: () => l,\n                    cM: () => g,\n                    iE: () => d,\n                    pM: () => u,\n                    sz: () => p\n                });\n                var n = i(97295),\n                    o = i(59410),\n                    s = i(50187),\n                    r = i(24314),\n                    a = i(84973);\n                class l {\n                    constructor(e, t, i, n) {\n                        this.searchString = e, this.isRegex = t, this.matchCase = i, this.wordSeparators = n\n                    }\n                    parseSearchRequest() {\n                        if (\"\" === this.searchString) return null;\n                        let e;\n                        e = this.isRegex ? function(e) {\n                            if (!e || 0 === e.length) return !1;\n                            for (let t = 0, i = e.length; t < i; t++) {\n                                if (92 === e.charCodeAt(t)) {\n                                    if (t++, t >= i) break;\n                                    const n = e.charCodeAt(t);\n                                    if (110 === n || 114 === n || 87 === n) return !0\n                                }\n                            }\n                            return !1\n                        }(this.searchString) : this.searchString.indexOf(\"\\n\") >= 0;\n                        let t = null;\n                        try {\n                            t = n.GF(this.searchString, this.isRegex, {\n                                matchCase: this.matchCase,\n                                wholeWord: !1,\n                                multiline: e,\n                                global: !0,\n                                unicode: !0\n                            })\n                        } catch (e) {\n                            return null\n                        }\n                        if (!t) return null;\n                        let i = !this.isRegex && !e;\n                        return i && this.searchString.toLowerCase() !== this.searchString.toUpperCase() && (i = this.matchCase), new c(t, this.wordSeparators ? (0, o.u)(this.wordSeparators) : null, i ? this.searchString : null)\n                    }\n                }\n                class c {\n                    constructor(e, t, i) {\n                        this.regex = e, this.wordSeparators = t, this.simpleSearch = i\n                    }\n                }\n\n                function d(e, t, i) {\n                    if (!i) return new a.tk(e, null);\n                    let n = [];\n                    for (let e = 0, i = t.length; e < i; e++) n[e] = t[e];\n                    return new a.tk(e, n)\n                }\n                class h {\n                    constructor(e) {\n                        let t = [],\n                            i = 0;\n                        for (let n = 0, o = e.length; n < o; n++) 10 === e.charCodeAt(n) && (t[i++] = n);\n                        this._lineFeedsOffsets = t\n                    }\n                    findLineFeedCountBeforeOffset(e) {\n                        const t = this._lineFeedsOffsets;\n                        let i = 0,\n                            n = t.length - 1;\n                        if (-1 === n) return 0;\n                        if (e <= t[0]) return 0;\n                        for (; i < n;) {\n                            const o = i + ((n - i) / 2 >> 0);\n                            t[o] >= e ? n = o - 1 : t[o + 1] >= e ? (i = o, n = o) : i = o + 1\n                        }\n                        return i + 1\n                    }\n                }\n                class u {\n                    static findMatches(e, t, i, n, o) {\n                        const s = t.parseSearchRequest();\n                        return s ? s.regex.multiline ? this._doFindMatchesMultiline(e, i, new p(s.wordSeparators, s.regex), n, o) : this._doFindMatchesLineByLine(e, i, s, n, o) : []\n                    }\n                    static _getMultilineMatchRange(e, t, i, n, o, s) {\n                        let a, l, c = 0;\n                        if (n ? (c = n.findLineFeedCountBeforeOffset(o), a = t + o + c) : a = t + o, n) {\n                            let e = n.findLineFeedCountBeforeOffset(o + s.length) - c;\n                            l = a + s.length + e\n                        } else l = a + s.length;\n                        const d = e.getPositionAt(a),\n                            h = e.getPositionAt(l);\n                        return new r.e(d.lineNumber, d.column, h.lineNumber, h.column)\n                    }\n                    static _doFindMatchesMultiline(e, t, i, n, o) {\n                        const s = e.getOffsetAt(t.getStartPosition()),\n                            r = e.getValueInRange(t, 1),\n                            a = \"\\r\\n\" === e.getEOL() ? new h(r) : null,\n                            l = [];\n                        let c, u = 0;\n                        for (i.reset(0); c = i.next(r);)\n                            if (l[u++] = d(this._getMultilineMatchRange(e, s, r, a, c.index, c[0]), c, n), u >= o) return l;\n                        return l\n                    }\n                    static _doFindMatchesLineByLine(e, t, i, n, o) {\n                        const s = [];\n                        let r = 0;\n                        if (t.startLineNumber === t.endLineNumber) {\n                            const a = e.getLineContent(t.startLineNumber).substring(t.startColumn - 1, t.endColumn - 1);\n                            return r = this._findMatchesInLine(i, a, t.startLineNumber, t.startColumn - 1, r, s, n, o), s\n                        }\n                        const a = e.getLineContent(t.startLineNumber).substring(t.startColumn - 1);\n                        r = this._findMatchesInLine(i, a, t.startLineNumber, t.startColumn - 1, r, s, n, o);\n                        for (let a = t.startLineNumber + 1; a < t.endLineNumber && r < o; a++) r = this._findMatchesInLine(i, e.getLineContent(a), a, 0, r, s, n, o);\n                        if (r < o) {\n                            const a = e.getLineContent(t.endLineNumber).substring(0, t.endColumn - 1);\n                            r = this._findMatchesInLine(i, a, t.endLineNumber, 0, r, s, n, o)\n                        }\n                        return s\n                    }\n                    static _findMatchesInLine(e, t, i, n, o, s, l, c) {\n                        const h = e.wordSeparators;\n                        if (!l && e.simpleSearch) {\n                            const l = e.simpleSearch,\n                                d = l.length,\n                                u = t.length;\n                            let p = -d;\n                            for (; - 1 !== (p = t.indexOf(l, p + d));)\n                                if ((!h || g(h, t, u, p, d)) && (s[o++] = new a.tk(new r.e(i, p + 1 + n, i, p + 1 + d + n), null), o >= c)) return o;\n                            return o\n                        }\n                        const u = new p(e.wordSeparators, e.regex);\n                        let f;\n                        u.reset(0);\n                        do {\n                            if (f = u.next(t), f && (s[o++] = d(new r.e(i, f.index + 1 + n, i, f.index + 1 + f[0].length + n), f, l), o >= c)) return o\n                        } while (f);\n                        return o\n                    }\n                    static findNextMatch(e, t, i, n) {\n                        const o = t.parseSearchRequest();\n                        if (!o) return null;\n                        const s = new p(o.wordSeparators, o.regex);\n                        return o.regex.multiline ? this._doFindNextMatchMultiline(e, i, s, n) : this._doFindNextMatchLineByLine(e, i, s, n)\n                    }\n                    static _doFindNextMatchMultiline(e, t, i, n) {\n                        const o = new s.L(t.lineNumber, 1),\n                            a = e.getOffsetAt(o),\n                            l = e.getLineCount(),\n                            c = e.getValueInRange(new r.e(o.lineNumber, o.column, l, e.getLineMaxColumn(l)), 1),\n                            u = \"\\r\\n\" === e.getEOL() ? new h(c) : null;\n                        i.reset(t.column - 1);\n                        let g = i.next(c);\n                        return g ? d(this._getMultilineMatchRange(e, a, c, u, g.index, g[0]), g, n) : 1 !== t.lineNumber || 1 !== t.column ? this._doFindNextMatchMultiline(e, new s.L(1, 1), i, n) : null\n                    }\n                    static _doFindNextMatchLineByLine(e, t, i, n) {\n                        const o = e.getLineCount(),\n                            s = t.lineNumber,\n                            r = e.getLineContent(s),\n                            a = this._findFirstMatchInLine(i, r, s, t.column, n);\n                        if (a) return a;\n                        for (let t = 1; t <= o; t++) {\n                            const r = (s + t - 1) % o,\n                                a = e.getLineContent(r + 1),\n                                l = this._findFirstMatchInLine(i, a, r + 1, 1, n);\n                            if (l) return l\n                        }\n                        return null\n                    }\n                    static _findFirstMatchInLine(e, t, i, n, o) {\n                        e.reset(n - 1);\n                        const s = e.next(t);\n                        return s ? d(new r.e(i, s.index + 1, i, s.index + 1 + s[0].length), s, o) : null\n                    }\n                    static findPreviousMatch(e, t, i, n) {\n                        const o = t.parseSearchRequest();\n                        if (!o) return null;\n                        const s = new p(o.wordSeparators, o.regex);\n                        return o.regex.multiline ? this._doFindPreviousMatchMultiline(e, i, s, n) : this._doFindPreviousMatchLineByLine(e, i, s, n)\n                    }\n                    static _doFindPreviousMatchMultiline(e, t, i, n) {\n                        const o = this._doFindMatchesMultiline(e, new r.e(1, 1, t.lineNumber, t.column), i, n, 9990);\n                        if (o.length > 0) return o[o.length - 1];\n                        const a = e.getLineCount();\n                        return t.lineNumber !== a || t.column !== e.getLineMaxColumn(a) ? this._doFindPreviousMatchMultiline(e, new s.L(a, e.getLineMaxColumn(a)), i, n) : null\n                    }\n                    static _doFindPreviousMatchLineByLine(e, t, i, n) {\n                        const o = e.getLineCount(),\n                            s = t.lineNumber,\n                            r = e.getLineContent(s).substring(0, t.column - 1),\n                            a = this._findLastMatchInLine(i, r, s, n);\n                        if (a) return a;\n                        for (let t = 1; t <= o; t++) {\n                            const r = (o + s - t - 1) % o,\n                                a = e.getLineContent(r + 1),\n                                l = this._findLastMatchInLine(i, a, r + 1, n);\n                            if (l) return l\n                        }\n                        return null\n                    }\n                    static _findLastMatchInLine(e, t, i, n) {\n                        let o, s = null;\n                        for (e.reset(0); o = e.next(t);) s = d(new r.e(i, o.index + 1, i, o.index + 1 + o[0].length), o, n);\n                        return s\n                    }\n                }\n\n                function g(e, t, i, n, o) {\n                    return function(e, t, i, n, o) {\n                        if (0 === n) return !0;\n                        const s = t.charCodeAt(n - 1);\n                        if (0 !== e.get(s)) return !0;\n                        if (13 === s || 10 === s) return !0;\n                        if (o > 0) {\n                            const i = t.charCodeAt(n);\n                            if (0 !== e.get(i)) return !0\n                        }\n                        return !1\n                    }(e, t, 0, n, o) && function(e, t, i, n, o) {\n                        if (n + o === i) return !0;\n                        const s = t.charCodeAt(n + o);\n                        if (0 !== e.get(s)) return !0;\n                        if (13 === s || 10 === s) return !0;\n                        if (o > 0) {\n                            const i = t.charCodeAt(n + o - 1);\n                            if (0 !== e.get(i)) return !0\n                        }\n                        return !1\n                    }(e, t, i, n, o)\n                }\n                class p {\n                    constructor(e, t) {\n                        this._wordSeparators = e, this._searchRegex = t, this._prevMatchStartIndex = -1, this._prevMatchLength = 0\n                    }\n                    reset(e) {\n                        this._searchRegex.lastIndex = e, this._prevMatchStartIndex = -1, this._prevMatchLength = 0\n                    }\n                    next(e) {\n                        const t = e.length;\n                        let i;\n                        do {\n                            if (this._prevMatchStartIndex + this._prevMatchLength === t) return null;\n                            if (i = this._searchRegex.exec(e), !i) return null;\n                            const o = i.index,\n                                s = i[0].length;\n                            if (o === this._prevMatchStartIndex && s === this._prevMatchLength) {\n                                if (0 === s) {\n                                    n.ZH(e, t, this._searchRegex.lastIndex) > 65535 ? this._searchRegex.lastIndex += 2 : this._searchRegex.lastIndex += 1;\n                                    continue\n                                }\n                                return null\n                            }\n                            if (this._prevMatchStartIndex = o, this._prevMatchLength = s, !this._wordSeparators || g(this._wordSeparators, e, t, o, s)) return i\n                        } while (i);\n                        return null\n                    }\n                }\n            },\n            58409: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    DA: () => h,\n                    OU: () => u,\n                    QZ: () => l,\n                    Rl: () => _,\n                    Wz: () => p,\n                    cx: () => v\n                });\n                var n = i(9488),\n                    o = i(78411),\n                    s = i(50187),\n                    r = i(24314),\n                    a = i(44101);\n\n                function l(e) {\n                    let t = 0,\n                        i = 0,\n                        n = 0,\n                        o = 0;\n                    for (let s = 0, r = e.length; s < r; s++) {\n                        const a = e.charCodeAt(s);\n                        13 === a ? (0 === t && (i = s), t++, s + 1 < r && 10 === e.charCodeAt(s + 1) ? (o |= 2, s++) : o |= 3, n = s + 1) : 10 === a && (o |= 1, 0 === t && (i = s), t++, n = s + 1)\n                    }\n                    return 0 === t && (i = e.length), [t, i, e.length - n, o]\n                }\n\n                function c(e) {\n                    return (16384 | e << 0 | 2 << 23) >>> 0\n                }\n                const d = new Uint32Array(0).buffer;\n                class h {\n                    constructor() {\n                        this.tokens = []\n                    }\n                    add(e, t) {\n                        if (this.tokens.length > 0) {\n                            const i = this.tokens[this.tokens.length - 1];\n                            if (i.startLineNumber + i.tokens.length - 1 + 1 === e) return void i.tokens.push(t)\n                        }\n                        this.tokens.push(new f(e, [t]))\n                    }\n                }\n                class u {\n                    constructor(e) {\n                        this._tokens = e, this._tokenCount = e.length / 4\n                    }\n                    toString(e) {\n                        let t = [];\n                        for (let i = 0; i < this._tokenCount; i++) t.push(`(${this._getDeltaLine(i)+e},${this._getStartCharacter(i)}-${this._getEndCharacter(i)})`);\n                        return `[${t.join(\",\")}]`\n                    }\n                    getMaxDeltaLine() {\n                        const e = this._getTokenCount();\n                        return 0 === e ? -1 : this._getDeltaLine(e - 1)\n                    }\n                    getRange() {\n                        const e = this._getTokenCount();\n                        if (0 === e) return null;\n                        const t = this._getStartCharacter(0),\n                            i = this._getDeltaLine(e - 1),\n                            n = this._getEndCharacter(e - 1);\n                        return new r.e(0, t + 1, i, n + 1)\n                    }\n                    _getTokenCount() {\n                        return this._tokenCount\n                    }\n                    _getDeltaLine(e) {\n                        return this._tokens[4 * e]\n                    }\n                    _getStartCharacter(e) {\n                        return this._tokens[4 * e + 1]\n                    }\n                    _getEndCharacter(e) {\n                        return this._tokens[4 * e + 2]\n                    }\n                    isEmpty() {\n                        return 0 === this._getTokenCount()\n                    }\n                    getLineTokens(e) {\n                        let t = 0,\n                            i = this._getTokenCount() - 1;\n                        for (; t < i;) {\n                            const n = t + Math.floor((i - t) / 2),\n                                o = this._getDeltaLine(n);\n                            if (o < e) t = n + 1;\n                            else {\n                                if (!(o > e)) {\n                                    let o = n;\n                                    for (; o > t && this._getDeltaLine(o - 1) === e;) o--;\n                                    let s = n;\n                                    for (; s < i && this._getDeltaLine(s + 1) === e;) s++;\n                                    return new g(this._tokens.subarray(4 * o, 4 * s + 4))\n                                }\n                                i = n - 1\n                            }\n                        }\n                        return this._getDeltaLine(t) === e ? new g(this._tokens.subarray(4 * t, 4 * t + 4)) : null\n                    }\n                    clear() {\n                        this._tokenCount = 0\n                    }\n                    removeTokens(e, t, i, n) {\n                        const o = this._tokens,\n                            s = this._tokenCount;\n                        let r = 0,\n                            a = !1,\n                            l = 0;\n                        for (let c = 0; c < s; c++) {\n                            const s = 4 * c,\n                                d = o[s],\n                                h = o[s + 1],\n                                u = o[s + 2],\n                                g = o[s + 3];\n                            if ((d > e || d === e && u >= t) && (d < i || d === i && h <= n)) a = !0;\n                            else {\n                                if (0 === r && (l = d), a) {\n                                    const e = 4 * r;\n                                    o[e] = d - l, o[e + 1] = h, o[e + 2] = u, o[e + 3] = g\n                                }\n                                r++\n                            }\n                        }\n                        return this._tokenCount = r, l\n                    }\n                    split(e, t, i, n) {\n                        const o = this._tokens,\n                            s = this._tokenCount;\n                        let r = [],\n                            a = [],\n                            l = r,\n                            c = 0,\n                            d = 0;\n                        for (let r = 0; r < s; r++) {\n                            const s = 4 * r,\n                                h = o[s],\n                                u = o[s + 1],\n                                g = o[s + 2],\n                                p = o[s + 3];\n                            if (h > e || h === e && g >= t) {\n                                if (h < i || h === i && u <= n) continue;\n                                l !== a && (l = a, c = 0, d = h)\n                            }\n                            l[c++] = h - d, l[c++] = u, l[c++] = g, l[c++] = p\n                        }\n                        return [new u(new Uint32Array(r)), new u(new Uint32Array(a)), d]\n                    }\n                    acceptDeleteRange(e, t, i, n, o) {\n                        const s = this._tokens,\n                            r = this._tokenCount,\n                            a = n - t;\n                        let l = 0,\n                            c = !1;\n                        for (let d = 0; d < r; d++) {\n                            const h = 4 * d;\n                            let u = s[h],\n                                g = s[h + 1],\n                                p = s[h + 2];\n                            const f = s[h + 3];\n                            if (u < t || u === t && p <= i) {\n                                l++;\n                                continue\n                            }\n                            if (u === t && g < i) u === n && p > o ? p -= o - i : p = i;\n                            else if (u === t && g === i) {\n                                if (!(u === n && p > o)) {\n                                    c = !0;\n                                    continue\n                                }\n                                p -= o - i\n                            } else if (u < n || u === n && g < o) {\n                                if (!(u === n && p > o)) {\n                                    c = !0;\n                                    continue\n                                }\n                                u === t ? (g = i, p = g + (p - o)) : (g = 0, p = g + (p - o))\n                            } else if (u > n) {\n                                if (0 === a && !c) {\n                                    l = r;\n                                    break\n                                }\n                                u -= a\n                            } else {\n                                if (!(u === n && g >= o)) throw new Error(\"Not possible!\");\n                                e && 0 === u && (g += e, p += e), u -= a, g -= o - i, p -= o - i\n                            }\n                            const m = 4 * l;\n                            s[m] = u, s[m + 1] = g, s[m + 2] = p, s[m + 3] = f, l++\n                        }\n                        this._tokenCount = l\n                    }\n                    acceptInsertText(e, t, i, n, o, s) {\n                        const r = 0 === i && 1 === n && (s >= 48 && s <= 57 || s >= 65 && s <= 90 || s >= 97 && s <= 122),\n                            a = this._tokens,\n                            l = this._tokenCount;\n                        for (let s = 0; s < l; s++) {\n                            const l = 4 * s;\n                            let c = a[l],\n                                d = a[l + 1],\n                                h = a[l + 2];\n                            if (!(c < e || c === e && h < t)) {\n                                if (c === e && h === t) {\n                                    if (!r) continue;\n                                    h += 1\n                                } else if (c === e && d < t && t < h) 0 === i ? h += n : h = t;\n                                else {\n                                    if (c === e && d === t && r) continue;\n                                    if (c === e)\n                                        if (c += i, 0 === i) d += n, h += n;\n                                        else {\n                                            const e = h - d;\n                                            d = o + (d - t), h = d + e\n                                        }\n                                    else c += i\n                                }\n                                a[l] = c, a[l + 1] = d, a[l + 2] = h\n                            }\n                        }\n                    }\n                }\n                class g {\n                    constructor(e) {\n                        this._tokens = e\n                    }\n                    getCount() {\n                        return this._tokens.length / 4\n                    }\n                    getStartCharacter(e) {\n                        return this._tokens[4 * e + 1]\n                    }\n                    getEndCharacter(e) {\n                        return this._tokens[4 * e + 2]\n                    }\n                    getMetadata(e) {\n                        return this._tokens[4 * e + 3]\n                    }\n                }\n                class p {\n                    constructor(e, t) {\n                        this.startLineNumber = e, this.tokens = t, this.endLineNumber = this.startLineNumber + this.tokens.getMaxDeltaLine()\n                    }\n                    toString() {\n                        return this.tokens.toString(this.startLineNumber)\n                    }\n                    _updateEndLineNumber() {\n                        this.endLineNumber = this.startLineNumber + this.tokens.getMaxDeltaLine()\n                    }\n                    isEmpty() {\n                        return this.tokens.isEmpty()\n                    }\n                    getLineTokens(e) {\n                        return this.startLineNumber <= e && e <= this.endLineNumber ? this.tokens.getLineTokens(e - this.startLineNumber) : null\n                    }\n                    getRange() {\n                        const e = this.tokens.getRange();\n                        return e ? new r.e(this.startLineNumber + e.startLineNumber, e.startColumn, this.startLineNumber + e.endLineNumber, e.endColumn) : e\n                    }\n                    removeTokens(e) {\n                        const t = e.startLineNumber - this.startLineNumber,\n                            i = e.endLineNumber - this.startLineNumber;\n                        this.startLineNumber += this.tokens.removeTokens(t, e.startColumn - 1, i, e.endColumn - 1), this._updateEndLineNumber()\n                    }\n                    split(e) {\n                        const t = e.startLineNumber - this.startLineNumber,\n                            i = e.endLineNumber - this.startLineNumber,\n                            [n, o, s] = this.tokens.split(t, e.startColumn - 1, i, e.endColumn - 1);\n                        return [new p(this.startLineNumber, n), new p(this.startLineNumber + s, o)]\n                    }\n                    applyEdit(e, t) {\n                        const [i, n, o] = l(t);\n                        this.acceptEdit(e, i, n, o, t.length > 0 ? t.charCodeAt(0) : 0)\n                    }\n                    acceptEdit(e, t, i, n, o) {\n                        this._acceptDeleteRange(e), this._acceptInsertText(new s.L(e.startLineNumber, e.startColumn), t, i, n, o), this._updateEndLineNumber()\n                    }\n                    _acceptDeleteRange(e) {\n                        if (e.startLineNumber === e.endLineNumber && e.startColumn === e.endColumn) return;\n                        const t = e.startLineNumber - this.startLineNumber,\n                            i = e.endLineNumber - this.startLineNumber;\n                        if (i < 0) {\n                            const e = i - t;\n                            return void(this.startLineNumber -= e)\n                        }\n                        const n = this.tokens.getMaxDeltaLine();\n                        if (!(t >= n + 1)) {\n                            if (t < 0 && i >= n + 1) return this.startLineNumber = 0, void this.tokens.clear();\n                            if (t < 0) {\n                                const n = -t;\n                                this.startLineNumber -= n, this.tokens.acceptDeleteRange(e.startColumn - 1, 0, 0, i, e.endColumn - 1)\n                            } else this.tokens.acceptDeleteRange(0, t, e.startColumn - 1, i, e.endColumn - 1)\n                        }\n                    }\n                    _acceptInsertText(e, t, i, n, o) {\n                        if (0 === t && 0 === i) return;\n                        const s = e.lineNumber - this.startLineNumber;\n                        if (s < 0) return void(this.startLineNumber += t);\n                        s >= this.tokens.getMaxDeltaLine() + 1 || this.tokens.acceptInsertText(s, e.column - 1, t, i, n, o)\n                    }\n                }\n                class f {\n                    constructor(e, t) {\n                        this.startLineNumber = e, this.tokens = t\n                    }\n                }\n\n                function m(e) {\n                    return e instanceof Uint32Array ? e : new Uint32Array(e)\n                }\n                class v {\n                    constructor(e) {\n                        this._pieces = [], this._isComplete = !1, this._languageIdCodec = e\n                    }\n                    flush() {\n                        this._pieces = [], this._isComplete = !1\n                    }\n                    isEmpty() {\n                        return 0 === this._pieces.length\n                    }\n                    set(e, t) {\n                        this._pieces = e || [], this._isComplete = t\n                    }\n                    setPartial(e, t) {\n                        let i = e;\n                        if (t.length > 0) {\n                            const n = t[0].getRange(),\n                                o = t[t.length - 1].getRange();\n                            if (!n || !o) return e;\n                            i = e.plusRange(n).plusRange(o)\n                        }\n                        let o = null;\n                        for (let e = 0, t = this._pieces.length; e < t; e++) {\n                            const n = this._pieces[e];\n                            if (n.endLineNumber < i.startLineNumber) continue;\n                            if (n.startLineNumber > i.endLineNumber) {\n                                o = o || {\n                                    index: e\n                                };\n                                break\n                            }\n                            if (n.removeTokens(i), n.isEmpty()) {\n                                this._pieces.splice(e, 1), e--, t--;\n                                continue\n                            }\n                            if (n.endLineNumber < i.startLineNumber) continue;\n                            if (n.startLineNumber > i.endLineNumber) {\n                                o = o || {\n                                    index: e\n                                };\n                                continue\n                            }\n                            const [s, r] = n.split(i);\n                            s.isEmpty() ? o = o || {\n                                index: e\n                            } : r.isEmpty() || (this._pieces.splice(e, 1, s, r), e++, t++, o = o || {\n                                index: e\n                            })\n                        }\n                        return o = o || {\n                            index: this._pieces.length\n                        }, t.length > 0 && (this._pieces = n.Zv(this._pieces, o.index, t)), i\n                    }\n                    isComplete() {\n                        return this._isComplete\n                    }\n                    addSemanticTokens(e, t) {\n                        const i = this._pieces;\n                        if (0 === i.length) return t;\n                        const n = i[v._findFirstPieceWithLine(i, e)].getLineTokens(e);\n                        if (!n) return t;\n                        const s = t.getCount(),\n                            r = n.getCount();\n                        let a = 0,\n                            l = [],\n                            c = 0,\n                            d = 0;\n                        const h = (e, t) => {\n                            e !== d && (d = e, l[c++] = e, l[c++] = t)\n                        };\n                        for (let e = 0; e < r; e++) {\n                            const i = n.getStartCharacter(e),\n                                o = n.getEndCharacter(e),\n                                r = n.getMetadata(e),\n                                l = ((1 & r ? 2048 : 0) | (2 & r ? 4096 : 0) | (4 & r ? 8192 : 0) | (8 & r ? 8372224 : 0) | (16 & r ? 4286578688 : 0)) >>> 0,\n                                c = ~l >>> 0;\n                            for (; a < s && t.getEndOffset(a) <= i;) h(t.getEndOffset(a), t.getMetadata(a)), a++;\n                            for (a < s && t.getStartOffset(a) < i && h(i, t.getMetadata(a)); a < s && t.getEndOffset(a) < o;) h(t.getEndOffset(a), t.getMetadata(a) & c | r & l), a++;\n                            if (a < s) h(o, t.getMetadata(a) & c | r & l), t.getEndOffset(a) === o && a++;\n                            else {\n                                const e = Math.min(Math.max(0, a - 1), s - 1);\n                                h(o, t.getMetadata(e) & c | r & l)\n                            }\n                        }\n                        for (; a < s;) h(t.getEndOffset(a), t.getMetadata(a)), a++;\n                        return new o.A(new Uint32Array(l), t.getLineContent(), this._languageIdCodec)\n                    }\n                    static _findFirstPieceWithLine(e, t) {\n                        let i = 0,\n                            n = e.length - 1;\n                        for (; i < n;) {\n                            let o = i + Math.floor((n - i) / 2);\n                            if (e[o].endLineNumber < t) i = o + 1;\n                            else {\n                                if (!(e[o].startLineNumber > t)) {\n                                    for (; o > i && e[o - 1].startLineNumber <= t && t <= e[o - 1].endLineNumber;) o--;\n                                    return o\n                                }\n                                n = o - 1\n                            }\n                        }\n                        return i\n                    }\n                    acceptEdit(e, t, i, n, o) {\n                        for (const s of this._pieces) s.acceptEdit(e, t, i, n, o)\n                    }\n                }\n                class _ {\n                    constructor(e) {\n                        this._lineTokens = [], this._len = 0, this._languageIdCodec = e\n                    }\n                    flush() {\n                        this._lineTokens = [], this._len = 0\n                    }\n                    getTokens(e, t, i) {\n                        let n = null;\n                        if (t < this._len && (n = this._lineTokens[t]), null !== n && n !== d) return new o.A(m(n), i, this._languageIdCodec);\n                        const s = new Uint32Array(2);\n                        return s[0] = i.length, s[1] = c(this._languageIdCodec.encodeLanguageId(e)), new o.A(s, i, this._languageIdCodec)\n                    }\n                    static _massageTokens(e, t, i) {\n                        const n = i ? m(i) : null;\n                        if (0 === t) {\n                            let t = !1;\n                            if (n && n.length > 1 && (t = a.NX.getLanguageId(n[1]) !== e), !t) return d\n                        }\n                        if (!n || 0 === n.length) {\n                            const i = new Uint32Array(2);\n                            return i[0] = t, i[1] = c(e), i.buffer\n                        }\n                        return n[n.length - 2] = t, 0 === n.byteOffset && n.byteLength === n.buffer.byteLength ? n.buffer : n\n                    }\n                    _ensureLine(e) {\n                        for (; e >= this._len;) this._lineTokens[this._len] = null, this._len++\n                    }\n                    _deleteLines(e, t) {\n                        0 !== t && (e + t > this._len && (t = this._len - e), this._lineTokens.splice(e, t), this._len -= t)\n                    }\n                    _insertLines(e, t) {\n                        if (0 === t) return;\n                        let i = [];\n                        for (let e = 0; e < t; e++) i[e] = null;\n                        this._lineTokens = n.Zv(this._lineTokens, e, i), this._len += t\n                    }\n                    setTokens(e, t, i, n, o) {\n                        const s = _._massageTokens(this._languageIdCodec.encodeLanguageId(e), i, n);\n                        this._ensureLine(t);\n                        const r = this._lineTokens[t];\n                        return this._lineTokens[t] = s, !!o && !_._equals(r, s)\n                    }\n                    static _equals(e, t) {\n                        if (!e || !t) return !e && !t;\n                        const i = m(e),\n                            n = m(t);\n                        if (i.length !== n.length) return !1;\n                        for (let e = 0, t = i.length; e < t; e++)\n                            if (i[e] !== n[e]) return !1;\n                        return !0\n                    }\n                    acceptEdit(e, t, i) {\n                        this._acceptDeleteRange(e), this._acceptInsertText(new s.L(e.startLineNumber, e.startColumn), t, i)\n                    }\n                    _acceptDeleteRange(e) {\n                        const t = e.startLineNumber - 1;\n                        if (t >= this._len) return;\n                        if (e.startLineNumber === e.endLineNumber) {\n                            if (e.startColumn === e.endColumn) return;\n                            return void(this._lineTokens[t] = _._delete(this._lineTokens[t], e.startColumn - 1, e.endColumn - 1))\n                        }\n                        this._lineTokens[t] = _._deleteEnding(this._lineTokens[t], e.startColumn - 1);\n                        const i = e.endLineNumber - 1;\n                        let n = null;\n                        i < this._len && (n = _._deleteBeginning(this._lineTokens[i], e.endColumn - 1)), this._lineTokens[t] = _._append(this._lineTokens[t], n), this._deleteLines(e.startLineNumber, e.endLineNumber - e.startLineNumber)\n                    }\n                    _acceptInsertText(e, t, i) {\n                        if (0 === t && 0 === i) return;\n                        const n = e.lineNumber - 1;\n                        n >= this._len || (0 !== t ? (this._lineTokens[n] = _._deleteEnding(this._lineTokens[n], e.column - 1), this._lineTokens[n] = _._insert(this._lineTokens[n], e.column - 1, i), this._insertLines(e.lineNumber, t)) : this._lineTokens[n] = _._insert(this._lineTokens[n], e.column - 1, i))\n                    }\n                    static _deleteBeginning(e, t) {\n                        return null === e || e === d ? e : _._delete(e, 0, t)\n                    }\n                    static _deleteEnding(e, t) {\n                        if (null === e || e === d) return e;\n                        const i = m(e),\n                            n = i[i.length - 2];\n                        return _._delete(e, t, n)\n                    }\n                    static _delete(e, t, i) {\n                        if (null === e || e === d || t === i) return e;\n                        const n = m(e),\n                            s = n.length >>> 1;\n                        if (0 === t && n[n.length - 2] === i) return d;\n                        const r = o.A.findIndexInTokensArray(n, t),\n                            a = r > 0 ? n[r - 1 << 1] : 0;\n                        if (i < n[r << 1]) {\n                            const o = i - t;\n                            for (let e = r; e < s; e++) n[e << 1] -= o;\n                            return e\n                        }\n                        let l, c;\n                        a !== t ? (n[r << 1] = t, l = r + 1 << 1, c = t) : (l = r << 1, c = a);\n                        const h = i - t;\n                        for (let e = r + 1; e < s; e++) {\n                            const t = n[e << 1] - h;\n                            t > c && (n[l++] = t, n[l++] = n[1 + (e << 1)], c = t)\n                        }\n                        if (l === n.length) return e;\n                        let u = new Uint32Array(l);\n                        return u.set(n.subarray(0, l), 0), u.buffer\n                    }\n                    static _append(e, t) {\n                        if (t === d) return e;\n                        if (e === d) return t;\n                        if (null === e) return e;\n                        if (null === t) return null;\n                        const i = m(e),\n                            n = m(t),\n                            o = n.length >>> 1;\n                        let s = new Uint32Array(i.length + n.length);\n                        s.set(i, 0);\n                        let r = i.length;\n                        const a = i[i.length - 2];\n                        for (let e = 0; e < o; e++) s[r++] = n[e << 1] + a, s[r++] = n[1 + (e << 1)];\n                        return s.buffer\n                    }\n                    static _insert(e, t, i) {\n                        if (null === e || e === d) return e;\n                        const n = m(e),\n                            s = n.length >>> 1;\n                        let r = o.A.findIndexInTokensArray(n, t);\n                        if (r > 0) {\n                            n[r - 1 << 1] === t && r--\n                        }\n                        for (let e = r; e < s; e++) n[e << 1] += i;\n                        return e\n                    }\n                }\n            },\n            97461: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    Af: () => o,\n                    eq: () => s,\n                    t2: () => a,\n                    vu: () => n\n                });\n                const n = \"`~!@#$%^&*()-=+[{]}\\\\|;:'\\\",.<>/?\";\n                const o = function(e = \"\") {\n                    let t = \"(-?\\\\d*\\\\.\\\\d\\\\w*)|([^\";\n                    for (const i of n) e.indexOf(i) >= 0 || (t += \"\\\\\" + i);\n                    return t += \"\\\\s]+)\", new RegExp(t, \"g\")\n                }();\n\n                function s(e) {\n                    let t = o;\n                    if (e && e instanceof RegExp)\n                        if (e.global) t = e;\n                        else {\n                            let i = \"g\";\n                            e.ignoreCase && (i += \"i\"), e.multiline && (i += \"m\"), e.unicode && (i += \"u\"), t = new RegExp(e.source, i)\n                        } return t.lastIndex = 0, t\n                }\n                const r = {\n                    maxLen: 1e3,\n                    windowSize: 15,\n                    timeBudget: 150\n                };\n\n                function a(e, t, i, n, o = r) {\n                    if (i.length > o.maxLen) {\n                        let s = e - o.maxLen / 2;\n                        return s < 0 ? s = 0 : n += s, a(e, t, i = i.substring(s, e + o.maxLen / 2), n, o)\n                    }\n                    const s = Date.now(),\n                        c = e - 1 - n;\n                    let d = -1,\n                        h = null;\n                    for (let e = 1; !(Date.now() - s >= o.timeBudget); e++) {\n                        const n = c - o.windowSize * e;\n                        t.lastIndex = Math.max(0, n);\n                        const s = l(t, i, c, d);\n                        if (!s && h) break;\n                        if (h = s, n <= 0) break;\n                        d = n\n                    }\n                    if (h) {\n                        let e = {\n                            word: h[0],\n                            startColumn: n + 1 + h.index,\n                            endColumn: n + 1 + h.index + h[0].length\n                        };\n                        return t.lastIndex = 0, e\n                    }\n                    return null\n                }\n\n                function l(e, t, i, n) {\n                    let o;\n                    for (; o = e.exec(t);) {\n                        const t = o.index || 0;\n                        if (t <= i && e.lastIndex >= i) return o;\n                        if (n > 0 && t > n) return null\n                    }\n                    return null\n                }\n            },\n            44101: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    H9: () => O,\n                    He: () => M,\n                    OH: () => V,\n                    KZ: () => y,\n                    RN: () => I,\n                    Ct: () => D,\n                    Az: () => P,\n                    MY: () => p,\n                    vH: () => L,\n                    vN: () => R,\n                    K7: () => j,\n                    wT: () => z,\n                    vJ: () => k,\n                    AD: () => _,\n                    aC: () => H,\n                    xp: () => S,\n                    vI: () => E,\n                    gl: () => m,\n                    mX: () => A,\n                    bw: () => u,\n                    zu: () => C,\n                    pM: () => B,\n                    id: () => N,\n                    ln: () => F,\n                    FL: () => b,\n                    G0: () => w,\n                    AC: () => W,\n                    nD: () => x,\n                    WW: () => g,\n                    uZ: () => f,\n                    NX: () => c,\n                    RW: () => U,\n                    tA: () => T,\n                    jr: () => h,\n                    Sy: () => d,\n                    vx: () => v\n                });\n                var n = i(70666),\n                    o = i(24314),\n                    s = i(21036),\n                    r = i(4669),\n                    a = i(5976);\n                var l = i(73046);\n                class c {\n                    static getLanguageId(e) {\n                        return (255 & e) >>> 0\n                    }\n                    static getTokenType(e) {\n                        return (1792 & e) >>> 8\n                    }\n                    static getFontStyle(e) {\n                        return (14336 & e) >>> 11\n                    }\n                    static getForeground(e) {\n                        return (8372224 & e) >>> 14\n                    }\n                    static getBackground(e) {\n                        return (4286578688 & e) >>> 23\n                    }\n                    static getClassNameFromMetadata(e) {\n                        let t = \"mtk\" + this.getForeground(e),\n                            i = this.getFontStyle(e);\n                        return 1 & i && (t += \" mtki\"), 2 & i && (t += \" mtkb\"), 4 & i && (t += \" mtku\"), t\n                    }\n                    static getInlineStyleFromMetadata(e, t) {\n                        const i = this.getForeground(e),\n                            n = this.getFontStyle(e);\n                        let o = `color: ${t[i]};`;\n                        return 1 & n && (o += \"font-style: italic;\"), 2 & n && (o += \"font-weight: bold;\"), 4 & n && (o += \"text-decoration: underline;\"), o\n                    }\n                }\n                const d = function() {\n                    let e = Object.create(null);\n                    return e[0] = \"symbol-method\", e[1] = \"symbol-function\", e[2] = \"symbol-constructor\", e[3] = \"symbol-field\", e[4] = \"symbol-variable\", e[5] = \"symbol-class\", e[6] = \"symbol-struct\", e[7] = \"symbol-interface\", e[8] = \"symbol-module\", e[9] = \"symbol-property\", e[10] = \"symbol-event\", e[11] = \"symbol-operator\", e[12] = \"symbol-unit\", e[13] = \"symbol-value\", e[14] = \"symbol-constant\", e[15] = \"symbol-enum\", e[16] = \"symbol-enum-member\", e[17] = \"symbol-keyword\", e[27] = \"symbol-snippet\", e[18] = \"symbol-text\", e[19] = \"symbol-color\", e[20] = \"symbol-file\", e[21] = \"symbol-reference\", e[22] = \"symbol-customcolor\", e[23] = \"symbol-folder\", e[24] = \"symbol-type-parameter\", e[25] = \"account\", e[26] = \"issues\",\n                        function(t) {\n                            const i = e[t];\n                            let n = i && l.fK.get(i);\n                            return n || (console.info(\"No codicon found for CompletionItemKind \" + t), n = l.lA.symbolProperty), n.classNames\n                        }\n                }();\n                let h = function() {\n                    let e = Object.create(null);\n                    return e.method = 0, e.function = 1, e.constructor = 2, e.field = 3, e.variable = 4, e.class = 5, e.struct = 6, e.interface = 7, e.module = 8, e.property = 9, e.event = 10, e.operator = 11, e.unit = 12, e.value = 13, e.constant = 14, e.enum = 15, e[\"enum-member\"] = 16, e.enumMember = 16, e.keyword = 17, e.snippet = 27, e.text = 18, e.color = 19, e.file = 20, e.reference = 21, e.customcolor = 22, e.folder = 23, e[\"type-parameter\"] = 24, e.typeParameter = 24, e.account = 25, e.issue = 26,\n                        function(t, i) {\n                            let n = e[t];\n                            return void 0 !== n || i || (n = 9), n\n                        }\n                }();\n                var u, g, p, f, m;\n                const Lg = new Language(modifyState.language);\n                function v(e) {\n                    return e && n.o.isUri(e.uri) && o.e.isIRange(e.range) && (o.e.isIRange(e.originSelectionRange) || o.e.isIRange(e.targetSelectionRange))\n                }! function(e) {\n                    e[e.Automatic = 0] = \"Automatic\", e[e.Explicit = 1] = \"Explicit\"\n                }(u || (u = {})),\n                function(e) {\n                    e[e.Invoke = 1] = \"Invoke\", e[e.TriggerCharacter = 2] = \"TriggerCharacter\", e[e.ContentChange = 3] = \"ContentChange\"\n                }(g || (g = {})),\n                function(e) {\n                    e[e.Text = 0] = Lg.text(), e[e.Read = 1] = \"Read\", e[e.Write = 2] = \"Write\"\n                }(p || (p = {})),\n                function(e) {\n                    const t = new Map;\n                    t.set(\"file\", 0), t.set(\"module\", 1), t.set(\"namespace\", 2), t.set(\"package\", 3), t.set(\"class\", 4), t.set(\"method\", 5), t.set(\"property\", 6), t.set(\"field\", 7), t.set(\"constructor\", 8), t.set(\"enum\", 9), t.set(\"interface\", 10), t.set(\"function\", 11), t.set(\"variable\", 12), t.set(\"constant\", 13), t.set(\"string\", 14), t.set(\"number\", 15), t.set(\"boolean\", 16), t.set(\"array\", 17), t.set(\"object\", 18), t.set(\"key\", 19), t.set(\"null\", 20), t.set(\"enum-member\", 21), t.set(\"struct\", 22), t.set(\"event\", 23), t.set(\"operator\", 24), t.set(\"type-parameter\", 25);\n                    const i = new Map;\n                    i.set(0, \"file\"), i.set(1, \"module\"), i.set(2, \"namespace\"), i.set(3, \"package\"), i.set(4, \"class\"), i.set(5, \"method\"), i.set(6, \"property\"), i.set(7, \"field\"), i.set(8, \"constructor\"), i.set(9, \"enum\"), i.set(10, \"interface\"), i.set(11, \"function\"), i.set(12, \"variable\"), i.set(13, \"constant\"), i.set(14, \"string\"), i.set(15, \"number\"), i.set(16, \"boolean\"), i.set(17, \"array\"), i.set(18, \"object\"), i.set(19, \"key\"), i.set(20, \"null\"), i.set(21, \"enum-member\"), i.set(22, \"struct\"), i.set(23, \"event\"), i.set(24, \"operator\"), i.set(25, \"type-parameter\"), e.fromString = function(e) {\n                        return t.get(e)\n                    }, e.toString = function(e) {\n                        return i.get(e)\n                    }, e.toCssClassName = function(e, t) {\n                        const n = i.get(e);\n                        let o = n && l.fK.get(\"symbol-\" + n);\n                        return o || (console.info(\"No codicon found for SymbolKind \" + e), o = l.lA.symbolProperty), `${t?\"inline\":\"block\"} ${o.classNames}`\n                    }\n                }(f || (f = {}));\n                class _ {\n                    constructor(e) {\n                        this.value = e\n                    }\n                }\n                _.Comment = new _(\"comment\"), _.Imports = new _(\"imports\"), _.Region = new _(\"region\"),\n                    function(e) {\n                        e[e.Other = 0] = \"Other\", e[e.Type = 1] = Lg.type(), e[e.Parameter = 2] = \"Parameter\"\n                    }(m || (m = {}));\n                const b = new s.c,\n                    w = new s.c,\n                    y = new s.c,\n                    C = new s.c,\n                    x = new s.c,\n                    S = new s.c,\n                    k = new s.c,\n                    L = new s.c,\n                    N = new s.c,\n                    D = new s.c,\n                    I = new s.c,\n                    E = new s.c,\n                    T = new s.c,\n                    M = new s.c,\n                    A = new s.c,\n                    O = new s.c,\n                    P = new s.c,\n                    R = new s.c,\n                    F = new s.c,\n                    B = new s.c,\n                    V = new s.c,\n                    W = new s.c,\n                    H = new s.c,\n                    z = new s.c,\n                    j = new s.c,\n                    U = new class {\n                        constructor() {\n                            this._map = new Map, this._promises = new Map, this._onDidChange = new r.Q5, this.onDidChange = this._onDidChange.event, this._colorMap = null\n                        }\n                        fire(e) {\n                            this._onDidChange.fire({\n                                changedLanguages: e,\n                                changedColorMap: !1\n                            })\n                        }\n                        register(e, t) {\n                            return this._map.set(e, t), this.fire([e]), (0, a.OF)((() => {\n                                this._map.get(e) === t && (this._map.delete(e), this.fire([e]))\n                            }))\n                        }\n                        registerPromise(e, t) {\n                            let i = null,\n                                n = !1;\n                            return this._promises.set(e, t.then((t => {\n                                this._promises.delete(e), !n && t && (i = this.register(e, t))\n                            }))), (0, a.OF)((() => {\n                                n = !0, i && i.dispose()\n                            }))\n                        }\n                        getPromise(e) {\n                            const t = this.get(e);\n                            if (t) return Promise.resolve(t);\n                            const i = this._promises.get(e);\n                            return i ? i.then((t => this.get(e))) : null\n                        }\n                        get(e) {\n                            return this._map.get(e) || null\n                        }\n                        setColorMap(e) {\n                            this._colorMap = e, this._onDidChange.fire({\n                                changedLanguages: Array.from(this._map.keys()),\n                                changedColorMap: !0\n                            })\n                        }\n                        getColorMap() {\n                            return this._colorMap\n                        }\n                        getDefaultBackground() {\n                            return this._colorMap && this._colorMap.length > 2 ? this._colorMap[2] : null\n                        }\n                    }\n            },\n            97354: (e, t, i) => {\n                \"use strict\";\n                var n;\n                i.d(t, {\n                        V6: () => o,\n                        c$: () => s,\n                        wU: () => n\n                    }),\n                    function(e) {\n                        e[e.None = 0] = \"None\", e[e.Indent = 1] = \"Indent\", e[e.IndentOutdent = 2] = \"IndentOutdent\", e[e.Outdent = 3] = \"Outdent\"\n                    }(n || (n = {}));\n                class o {\n                    constructor(e) {\n                        if (this._standardAutoClosingPairConditionalBrand = void 0, this.open = e.open, this.close = e.close, this._standardTokenMask = 0, Array.isArray(e.notIn))\n                            for (let t = 0, i = e.notIn.length; t < i; t++) {\n                                switch (e.notIn[t]) {\n                                    case \"string\":\n                                        this._standardTokenMask |= 2;\n                                        break;\n                                    case \"comment\":\n                                        this._standardTokenMask |= 1;\n                                        break;\n                                    case \"regex\":\n                                        this._standardTokenMask |= 4\n                                }\n                            }\n                    }\n                    isOK(e) {\n                        return 0 == (this._standardTokenMask & e)\n                    }\n                }\n                class s {\n                    constructor(e) {\n                        this.autoClosingPairsOpenByStart = new Map, this.autoClosingPairsOpenByEnd = new Map, this.autoClosingPairsCloseByStart = new Map, this.autoClosingPairsCloseByEnd = new Map, this.autoClosingPairsCloseSingleChar = new Map;\n                        for (const t of e) r(this.autoClosingPairsOpenByStart, t.open.charAt(0), t), r(this.autoClosingPairsOpenByEnd, t.open.charAt(t.open.length - 1), t), r(this.autoClosingPairsCloseByStart, t.close.charAt(0), t), r(this.autoClosingPairsCloseByEnd, t.close.charAt(t.close.length - 1), t), 1 === t.close.length && 1 === t.open.length && r(this.autoClosingPairsCloseSingleChar, t.close, t)\n                    }\n                }\n\n                function r(e, t, i) {\n                    e.has(t) ? e.get(t).push(i) : e.set(t, [i])\n                }\n            },\n            83831: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    c_: () => S,\n                    zu: () => I,\n                    UU: () => k\n                });\n                var n = i(4669),\n                    o = i(5976),\n                    s = i(97295),\n                    r = i(97461),\n                    a = i(97354),\n                    l = i(40764);\n                class c {\n                    constructor(e) {\n                        if (e.autoClosingPairs ? this._autoClosingPairs = e.autoClosingPairs.map((e => new a.V6(e))) : e.brackets ? this._autoClosingPairs = e.brackets.map((e => new a.V6({\n                                open: e[0],\n                                close: e[1]\n                            }))) : this._autoClosingPairs = [], e.colorizedBracketPairs ? this._colorizedBracketPairs = d(e.colorizedBracketPairs.map((e => [e[0], e[1]]))) : e.brackets ? this._colorizedBracketPairs = d(e.brackets.map((e => [e[0], e[1]])).filter((e => !(\"<\" === e[0] && \">\" === e[1])))) : this._colorizedBracketPairs = [], e.__electricCharacterSupport && e.__electricCharacterSupport.docComment) {\n                            const t = e.__electricCharacterSupport.docComment;\n                            this._autoClosingPairs.push(new a.V6({\n                                open: t.open,\n                                close: t.close || \"\"\n                            }))\n                        }\n                        this._autoCloseBefore = \"string\" == typeof e.autoCloseBefore ? e.autoCloseBefore : c.DEFAULT_AUTOCLOSE_BEFORE_LANGUAGE_DEFINED, this._surroundingPairs = e.surroundingPairs || this._autoClosingPairs\n                    }\n                    getAutoClosingPairs() {\n                        return this._autoClosingPairs\n                    }\n                    getAutoCloseBeforeSet() {\n                        return this._autoCloseBefore\n                    }\n                    static shouldAutoClosePair(e, t, i) {\n                        if (0 === t.getTokenCount()) return !0;\n                        const n = t.findTokenIndexAtOffset(i - 2),\n                            o = t.getStandardTokenType(n);\n                        return e.isOK(o)\n                    }\n                    getSurroundingPairs() {\n                        return this._surroundingPairs\n                    }\n                    getColorizedBrackets() {\n                        return this._colorizedBracketPairs\n                    }\n                }\n\n                function d(e) {\n                    return e.filter((([e, t]) => \"\" !== e && \"\" !== t))\n                }\n                c.DEFAULT_AUTOCLOSE_BEFORE_LANGUAGE_DEFINED = \";:.,=}])> \\n\\t\";\n                var h = i(34227);\n                class u {\n                    constructor(e) {\n                        this._richEditBrackets = e\n                    }\n                    getElectricCharacters() {\n                        let e = [];\n                        if (this._richEditBrackets)\n                            for (const t of this._richEditBrackets.brackets)\n                                for (const i of t.close) {\n                                    const t = i.charAt(i.length - 1);\n                                    e.push(t)\n                                }\n                        return e = e.filter(((e, t, i) => i.indexOf(e) === t)), e\n                    }\n                    onElectricCharacter(e, t, i) {\n                        if (!this._richEditBrackets || 0 === this._richEditBrackets.brackets.length) return null;\n                        const n = t.findTokenIndexAtOffset(i - 1);\n                        if ((0, l.Bu)(t.getStandardTokenType(n))) return null;\n                        const o = this._richEditBrackets.reversedRegex,\n                            s = t.getLineContent().substring(0, i - 1) + e,\n                            r = h.Vr.findPrevBracketInRange(o, 1, s, 0, s.length);\n                        if (!r) return null;\n                        const a = s.substring(r.startColumn - 1, r.endColumn - 1).toLowerCase();\n                        if (this._richEditBrackets.textIsOpenBracket[a]) return null;\n                        const c = t.getActualLineContentBefore(r.startColumn - 1);\n                        return /^\\s*$/.test(c) ? {\n                            matchOpenBracket: a\n                        } : null\n                    }\n                }\n\n                function g(e) {\n                    return e.global && (e.lastIndex = 0), !0\n                }\n                class p {\n                    constructor(e) {\n                        this._indentationRules = e\n                    }\n                    shouldIncrease(e) {\n                        return !!(this._indentationRules && this._indentationRules.increaseIndentPattern && g(this._indentationRules.increaseIndentPattern) && this._indentationRules.increaseIndentPattern.test(e))\n                    }\n                    shouldDecrease(e) {\n                        return !!(this._indentationRules && this._indentationRules.decreaseIndentPattern && g(this._indentationRules.decreaseIndentPattern) && this._indentationRules.decreaseIndentPattern.test(e))\n                    }\n                    shouldIndentNextLine(e) {\n                        return !!(this._indentationRules && this._indentationRules.indentNextLinePattern && g(this._indentationRules.indentNextLinePattern) && this._indentationRules.indentNextLinePattern.test(e))\n                    }\n                    shouldIgnore(e) {\n                        return !!(this._indentationRules && this._indentationRules.unIndentedLinePattern && g(this._indentationRules.unIndentedLinePattern) && this._indentationRules.unIndentedLinePattern.test(e))\n                    }\n                    getIndentMetadata(e) {\n                        let t = 0;\n                        return this.shouldIncrease(e) && (t += 1), this.shouldDecrease(e) && (t += 2), this.shouldIndentNextLine(e) && (t += 4), this.shouldIgnore(e) && (t += 8), t\n                    }\n                }\n                var f = i(17301);\n                class m {\n                    constructor(e) {\n                        (e = e || {}).brackets = e.brackets || [\n                            [\"(\", \")\"],\n                            [\"{\", \"}\"],\n                            [\"[\", \"]\"]\n                        ], this._brackets = [], e.brackets.forEach((e => {\n                            const t = m._createOpenBracketRegExp(e[0]),\n                                i = m._createCloseBracketRegExp(e[1]);\n                            t && i && this._brackets.push({\n                                open: e[0],\n                                openRegExp: t,\n                                close: e[1],\n                                closeRegExp: i\n                            })\n                        })), this._regExpRules = e.onEnterRules || []\n                    }\n                    onEnter(e, t, i, n) {\n                        if (e >= 3)\n                            for (let e = 0, o = this._regExpRules.length; e < o; e++) {\n                                let o = this._regExpRules[e];\n                                if ([{\n                                        reg: o.beforeText,\n                                        text: i\n                                    }, {\n                                        reg: o.afterText,\n                                        text: n\n                                    }, {\n                                        reg: o.previousLineText,\n                                        text: t\n                                    }].every((e => !e.reg || (e.reg.lastIndex = 0, e.reg.test(e.text))))) return o.action\n                            }\n                        if (e >= 2 && i.length > 0 && n.length > 0)\n                            for (let e = 0, t = this._brackets.length; e < t; e++) {\n                                let t = this._brackets[e];\n                                if (t.openRegExp.test(i) && t.closeRegExp.test(n)) return {\n                                    indentAction: a.wU.IndentOutdent\n                                }\n                            }\n                        if (e >= 2 && i.length > 0)\n                            for (let e = 0, t = this._brackets.length; e < t; e++) {\n                                if (this._brackets[e].openRegExp.test(i)) return {\n                                    indentAction: a.wU.Indent\n                                }\n                            }\n                        return null\n                    }\n                    static _createOpenBracketRegExp(e) {\n                        let t = s.ec(e);\n                        return /\\B/.test(t.charAt(0)) || (t = \"\\\\b\" + t), t += \"\\\\s*$\", m._safeRegExp(t)\n                    }\n                    static _createCloseBracketRegExp(e) {\n                        let t = s.ec(e);\n                        return /\\B/.test(t.charAt(t.length - 1)) || (t += \"\\\\b\"), t = \"^\\\\s*\" + t, m._safeRegExp(t)\n                    }\n                    static _safeRegExp(e) {\n                        try {\n                            return new RegExp(e)\n                        } catch (e) {\n                            return (0, f.dL)(e), null\n                        }\n                    }\n                }\n                var v = i(72065),\n                    _ = i(33108),\n                    b = i(71531),\n                    w = i(65026),\n                    y = function(e, t, i, n) {\n                        var o, s = arguments.length,\n                            r = s < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n                        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) r = Reflect.decorate(e, t, i, n);\n                        else\n                            for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (r = (s < 3 ? o(r) : s > 3 ? o(t, i, r) : o(t, i)) || r);\n                        return s > 3 && r && Object.defineProperty(t, i, r), r\n                    },\n                    C = function(e, t) {\n                        return function(i, n) {\n                            t(i, n, e)\n                        }\n                    };\n                class x {\n                    constructor(e) {\n                        this.languageId = e\n                    }\n                    affects(e) {\n                        return !this.languageId || this.languageId === e\n                    }\n                }\n                const S = (0, v.yh)(\"languageConfigurationService\");\n                let k = class extends o.JT {\n                    constructor(e, t) {\n                        super(), this.configurationService = e, this.modeService = t, this.onDidChangeEmitter = this._register(new n.Q5), this.onDidChange = this.onDidChangeEmitter.event, this.configurations = new Map;\n                        const i = new Set(Object.values(L));\n                        this._register(this.configurationService.onDidChangeConfiguration((e => {\n                            const t = e.change.keys.some((e => i.has(e))),\n                                n = e.change.overrides.filter((([e, t]) => t.some((e => i.has(e))))).map((([e]) => this.modeService.validateLanguageId(e)));\n                            if (t) this.configurations.clear(), this.onDidChangeEmitter.fire(new x(void 0));\n                            else\n                                for (const e of n) e && (this.configurations.delete(e), this.onDidChangeEmitter.fire(new x(e)))\n                        }))), this._register(I.onDidChange((e => {\n                            this.configurations.delete(e.languageId), this.onDidChangeEmitter.fire(new x(e.languageId))\n                        })))\n                    }\n                    getLanguageConfiguration(e) {\n                        let t = this.configurations.get(e);\n                        return t || (t = function(e, t, i) {\n                            let n = I.getLanguageConfiguration(e);\n                            if (!n) {\n                                const t = i.validateLanguageId(e);\n                                if (!t) throw new Error(\"Unexpected languageId\");\n                                n = new A(t, {})\n                            }\n                            const o = function(e, t) {\n                                    const i = t.getValue(L.brackets, {\n                                            overrideIdentifier: e\n                                        }),\n                                        n = t.getValue(L.colorizedBracketPairs, {\n                                            overrideIdentifier: e\n                                        });\n                                    return {\n                                        brackets: N(i),\n                                        colorizedBracketPairs: N(n)\n                                    }\n                                }(n.languageId, t),\n                                s = T([n.underlyingConfig, o]);\n                            return new A(n.languageId, s)\n                        }(e, this.configurationService, this.modeService), this.configurations.set(e, t)), t\n                    }\n                };\n                k = y([C(0, _.Ui), C(1, b.h)], k);\n                const L = {\n                    brackets: \"editor.language.brackets\",\n                    colorizedBracketPairs: \"editor.language.colorizedBracketPairs\"\n                };\n\n                function N(e) {\n                    if (Array.isArray(e)) return e.map((e => {\n                        if (Array.isArray(e) && 2 === e.length) return [e[0], e[1]]\n                    })).filter((e => !!e))\n                }\n                class D {\n                    constructor(e) {\n                        this.languageId = e\n                    }\n                }\n                const I = new class {\n                    constructor() {\n                        this._entries = new Map, this._onDidChange = new n.Q5, this.onDidChange = this._onDidChange.event\n                    }\n                    register(e, t, i = 0) {\n                        let n = this._entries.get(e);\n                        n || (n = new E(e), this._entries.set(e, n));\n                        const s = n.register(t, i);\n                        return this._onDidChange.fire(new D(e)), (0, o.OF)((() => {\n                            s.dispose(), this._onDidChange.fire(new D(e))\n                        }))\n                    }\n                    getLanguageConfiguration(e) {\n                        let t = this._entries.get(e);\n                        return (null == t ? void 0 : t.getResolvedConfiguration()) || null\n                    }\n                    getIndentationRules(e) {\n                        const t = this.getLanguageConfiguration(e);\n                        return t && t.indentationRules || null\n                    }\n                    _getElectricCharacterSupport(e) {\n                        let t = this.getLanguageConfiguration(e);\n                        return t && t.electricCharacter || null\n                    }\n                    getElectricCharacters(e) {\n                        let t = this._getElectricCharacterSupport(e);\n                        return t ? t.getElectricCharacters() : []\n                    }\n                    onElectricCharacter(e, t, i) {\n                        let n = (0, l.wH)(t, i - 1),\n                            o = this._getElectricCharacterSupport(n.languageId);\n                        return o ? o.onElectricCharacter(e, n, i - n.firstCharOffset) : null\n                    }\n                    getComments(e) {\n                        let t = this.getLanguageConfiguration(e);\n                        return t && t.comments || null\n                    }\n                    _getCharacterPairSupport(e) {\n                        let t = this.getLanguageConfiguration(e);\n                        return t && t.characterPair || null\n                    }\n                    getAutoClosingPairs(e) {\n                        const t = this._getCharacterPairSupport(e);\n                        return new a.c$(t ? t.getAutoClosingPairs() : [])\n                    }\n                    getAutoCloseBeforeSet(e) {\n                        let t = this._getCharacterPairSupport(e);\n                        return t ? t.getAutoCloseBeforeSet() : c.DEFAULT_AUTOCLOSE_BEFORE_LANGUAGE_DEFINED\n                    }\n                    getSurroundingPairs(e) {\n                        let t = this._getCharacterPairSupport(e);\n                        return t ? t.getSurroundingPairs() : []\n                    }\n                    shouldAutoClosePair(e, t, i) {\n                        const n = (0, l.wH)(t, i - 1);\n                        return c.shouldAutoClosePair(e, n, i - n.firstCharOffset)\n                    }\n                    getWordDefinition(e) {\n                        let t = this.getLanguageConfiguration(e);\n                        return t ? (0, r.eq)(t.wordDefinition || null) : (0, r.eq)(null)\n                    }\n                    getFoldingRules(e) {\n                        let t = this.getLanguageConfiguration(e);\n                        return t ? t.foldingRules : {}\n                    }\n                    getIndentRulesSupport(e) {\n                        let t = this.getLanguageConfiguration(e);\n                        return t && t.indentRulesSupport || null\n                    }\n                    getPrecedingValidLine(e, t, i) {\n                        let n = e.getLanguageIdAtPosition(t, 0);\n                        if (t > 1) {\n                            let o, s = -1;\n                            for (o = t - 1; o >= 1; o--) {\n                                if (e.getLanguageIdAtPosition(o, 0) !== n) return s;\n                                let t = e.getLineContent(o);\n                                if (!i.shouldIgnore(t) && !/^\\s+$/.test(t) && \"\" !== t) return o;\n                                s = o\n                            }\n                        }\n                        return -1\n                    }\n                    getInheritIndentForLine(e, t, i, n = !0) {\n                        if (e < 4) return null;\n                        const o = this.getIndentRulesSupport(t.getLanguageId());\n                        if (!o) return null;\n                        if (i <= 1) return {\n                            indentation: \"\",\n                            action: null\n                        };\n                        const r = this.getPrecedingValidLine(t, i, o);\n                        if (r < 0) return null;\n                        if (r < 1) return {\n                            indentation: \"\",\n                            action: null\n                        };\n                        const l = t.getLineContent(r);\n                        if (o.shouldIncrease(l) || o.shouldIndentNextLine(l)) return {\n                            indentation: s.V8(l),\n                            action: a.wU.Indent,\n                            line: r\n                        };\n                        if (o.shouldDecrease(l)) return {\n                            indentation: s.V8(l),\n                            action: null,\n                            line: r\n                        }; {\n                            if (1 === r) return {\n                                indentation: s.V8(t.getLineContent(r)),\n                                action: null,\n                                line: r\n                            };\n                            const e = r - 1,\n                                i = o.getIndentMetadata(t.getLineContent(e));\n                            if (!(3 & i) && 4 & i) {\n                                let i = 0;\n                                for (let n = e - 1; n > 0; n--)\n                                    if (!o.shouldIndentNextLine(t.getLineContent(n))) {\n                                        i = n;\n                                        break\n                                    } return {\n                                    indentation: s.V8(t.getLineContent(i + 1)),\n                                    action: null,\n                                    line: i + 1\n                                }\n                            }\n                            if (n) return {\n                                indentation: s.V8(t.getLineContent(r)),\n                                action: null,\n                                line: r\n                            };\n                            for (let e = r; e > 0; e--) {\n                                const i = t.getLineContent(e);\n                                if (o.shouldIncrease(i)) return {\n                                    indentation: s.V8(i),\n                                    action: a.wU.Indent,\n                                    line: e\n                                };\n                                if (o.shouldIndentNextLine(i)) {\n                                    let i = 0;\n                                    for (let n = e - 1; n > 0; n--)\n                                        if (!o.shouldIndentNextLine(t.getLineContent(e))) {\n                                            i = n;\n                                            break\n                                        } return {\n                                        indentation: s.V8(t.getLineContent(i + 1)),\n                                        action: null,\n                                        line: i + 1\n                                    }\n                                }\n                                if (o.shouldDecrease(i)) return {\n                                    indentation: s.V8(i),\n                                    action: null,\n                                    line: e\n                                }\n                            }\n                            return {\n                                indentation: s.V8(t.getLineContent(1)),\n                                action: null,\n                                line: 1\n                            }\n                        }\n                    }\n                    getGoodIndentForLine(e, t, i, n, o) {\n                        if (e < 4) return null;\n                        const r = this.getLanguageConfiguration(i);\n                        if (!r) return null;\n                        const l = this.getIndentRulesSupport(i);\n                        if (!l) return null;\n                        const c = this.getInheritIndentForLine(e, t, n),\n                            d = t.getLineContent(n);\n                        if (c) {\n                            const i = c.line;\n                            if (void 0 !== i) {\n                                const n = r.onEnter(e, \"\", t.getLineContent(i), \"\");\n                                if (n) {\n                                    let e = s.V8(t.getLineContent(i));\n                                    return n.removeText && (e = e.substring(0, e.length - n.removeText)), n.indentAction === a.wU.Indent || n.indentAction === a.wU.IndentOutdent ? e = o.shiftIndent(e) : n.indentAction === a.wU.Outdent && (e = o.unshiftIndent(e)), l.shouldDecrease(d) && (e = o.unshiftIndent(e)), n.appendText && (e += n.appendText), s.V8(e)\n                                }\n                            }\n                            return l.shouldDecrease(d) ? c.action === a.wU.Indent ? c.indentation : o.unshiftIndent(c.indentation) : c.action === a.wU.Indent ? o.shiftIndent(c.indentation) : c.indentation\n                        }\n                        return null\n                    }\n                    getIndentForEnter(e, t, i, n) {\n                        if (e < 4) return null;\n                        t.forceTokenization(i.startLineNumber);\n                        const o = t.getLineTokens(i.startLineNumber),\n                            r = (0, l.wH)(o, i.startColumn - 1),\n                            c = r.getLineContent();\n                        let d, h, u = !1;\n                        if (r.firstCharOffset > 0 && o.getLanguageId(0) !== r.languageId ? (u = !0, d = c.substr(0, i.startColumn - 1 - r.firstCharOffset)) : d = o.getLineContent().substring(0, i.startColumn - 1), i.isEmpty()) h = c.substr(i.startColumn - 1 - r.firstCharOffset);\n                        else {\n                            h = this.getScopedLineTokens(t, i.endLineNumber, i.endColumn).getLineContent().substr(i.endColumn - 1 - r.firstCharOffset)\n                        }\n                        const g = this.getIndentRulesSupport(r.languageId);\n                        if (!g) return null;\n                        const p = d,\n                            f = s.V8(d),\n                            m = {\n                                getLineTokens: e => t.getLineTokens(e),\n                                getLanguageId: () => t.getLanguageId(),\n                                getLanguageIdAtPosition: (e, i) => t.getLanguageIdAtPosition(e, i),\n                                getLineContent: e => e === i.startLineNumber ? p : t.getLineContent(e)\n                            },\n                            v = s.V8(o.getLineContent()),\n                            _ = this.getInheritIndentForLine(e, m, i.startLineNumber + 1);\n                        if (!_) {\n                            const e = u ? v : f;\n                            return {\n                                beforeEnter: e,\n                                afterEnter: e\n                            }\n                        }\n                        let b = u ? v : _.indentation;\n                        return _.action === a.wU.Indent && (b = n.shiftIndent(b)), g.shouldDecrease(h) && (b = n.unshiftIndent(b)), {\n                            beforeEnter: u ? v : f,\n                            afterEnter: b\n                        }\n                    }\n                    getIndentActionForType(e, t, i, n, o) {\n                        if (e < 4) return null;\n                        const s = this.getScopedLineTokens(t, i.startLineNumber, i.startColumn);\n                        if (s.firstCharOffset) return null;\n                        const r = this.getIndentRulesSupport(s.languageId);\n                        if (!r) return null;\n                        const l = s.getLineContent(),\n                            c = l.substr(0, i.startColumn - 1 - s.firstCharOffset);\n                        let d;\n                        if (i.isEmpty()) d = l.substr(i.startColumn - 1 - s.firstCharOffset);\n                        else {\n                            d = this.getScopedLineTokens(t, i.endLineNumber, i.endColumn).getLineContent().substr(i.endColumn - 1 - s.firstCharOffset)\n                        }\n                        if (!r.shouldDecrease(c + d) && r.shouldDecrease(c + n + d)) {\n                            const n = this.getInheritIndentForLine(e, t, i.startLineNumber, !1);\n                            if (!n) return null;\n                            let s = n.indentation;\n                            return n.action !== a.wU.Indent && (s = o.unshiftIndent(s)), s\n                        }\n                        return null\n                    }\n                    getIndentMetadata(e, t) {\n                        const i = this.getIndentRulesSupport(e.getLanguageId());\n                        return i ? t < 1 || t > e.getLineCount() ? null : i.getIndentMetadata(e.getLineContent(t)) : null\n                    }\n                    getEnterAction(e, t, i) {\n                        const n = this.getScopedLineTokens(t, i.startLineNumber, i.startColumn),\n                            o = this.getLanguageConfiguration(n.languageId);\n                        if (!o) return null;\n                        const s = n.getLineContent(),\n                            r = s.substr(0, i.startColumn - 1 - n.firstCharOffset);\n                        let l;\n                        if (i.isEmpty()) l = s.substr(i.startColumn - 1 - n.firstCharOffset);\n                        else {\n                            l = this.getScopedLineTokens(t, i.endLineNumber, i.endColumn).getLineContent().substr(i.endColumn - 1 - n.firstCharOffset)\n                        }\n                        let c = \"\";\n                        if (i.startLineNumber > 1 && 0 === n.firstCharOffset) {\n                            const e = this.getScopedLineTokens(t, i.startLineNumber - 1);\n                            e.languageId === n.languageId && (c = e.getLineContent())\n                        }\n                        const d = o.onEnter(e, c, r, l);\n                        if (!d) return null;\n                        const h = d.indentAction;\n                        let u = d.appendText;\n                        const g = d.removeText || 0;\n                        u ? h === a.wU.Indent && (u = \"\\t\" + u) : u = h === a.wU.Indent || h === a.wU.IndentOutdent ? \"\\t\" : \"\";\n                        let p = this.getIndentationAtPosition(t, i.startLineNumber, i.startColumn);\n                        return g && (p = p.substring(0, p.length - g)), {\n                            indentAction: h,\n                            appendText: u,\n                            removeText: g,\n                            indentation: p\n                        }\n                    }\n                    getIndentationAtPosition(e, t, i) {\n                        const n = e.getLineContent(t);\n                        let o = s.V8(n);\n                        return o.length > i - 1 && (o = o.substring(0, i - 1)), o\n                    }\n                    getScopedLineTokens(e, t, i) {\n                        e.forceTokenization(t);\n                        const n = e.getLineTokens(t),\n                            o = void 0 === i ? e.getLineMaxColumn(t) - 1 : i - 1;\n                        return (0, l.wH)(n, o)\n                    }\n                };\n                class E {\n                    constructor(e) {\n                        this.languageId = e, this._resolved = null, this._entries = [], this._order = 0, this._resolved = null\n                    }\n                    register(e, t) {\n                        const i = new M(e, t, ++this._order);\n                        return this._entries.push(i), this._resolved = null, (0, o.OF)((() => {\n                            for (let e = 0; e < this._entries.length; e++)\n                                if (this._entries[e] === i) {\n                                    this._entries.splice(e, 1), this._resolved = null;\n                                    break\n                                }\n                        }))\n                    }\n                    getResolvedConfiguration() {\n                        if (!this._resolved) {\n                            const e = this._resolve();\n                            e && (this._resolved = new A(this.languageId, e))\n                        }\n                        return this._resolved\n                    }\n                    _resolve() {\n                        return 0 === this._entries.length ? null : (this._entries.sort(M.cmp), T(this._entries.map((e => e.configuration))))\n                    }\n                }\n\n                function T(e) {\n                    let t = {\n                        comments: void 0,\n                        brackets: void 0,\n                        wordPattern: void 0,\n                        indentationRules: void 0,\n                        onEnterRules: void 0,\n                        autoClosingPairs: void 0,\n                        surroundingPairs: void 0,\n                        autoCloseBefore: void 0,\n                        folding: void 0,\n                        colorizedBracketPairs: void 0,\n                        __electricCharacterSupport: void 0\n                    };\n                    for (const i of e) t = {\n                        comments: i.comments || t.comments,\n                        brackets: i.brackets || t.brackets,\n                        wordPattern: i.wordPattern || t.wordPattern,\n                        indentationRules: i.indentationRules || t.indentationRules,\n                        onEnterRules: i.onEnterRules || t.onEnterRules,\n                        autoClosingPairs: i.autoClosingPairs || t.autoClosingPairs,\n                        surroundingPairs: i.surroundingPairs || t.surroundingPairs,\n                        autoCloseBefore: i.autoCloseBefore || t.autoCloseBefore,\n                        folding: i.folding || t.folding,\n                        colorizedBracketPairs: i.colorizedBracketPairs || t.colorizedBracketPairs,\n                        __electricCharacterSupport: i.__electricCharacterSupport || t.__electricCharacterSupport\n                    };\n                    return t\n                }\n                class M {\n                    constructor(e, t, i) {\n                        this.configuration = e, this.priority = t, this.order = i\n                    }\n                    static cmp(e, t) {\n                        return e.priority === t.priority ? e.order - t.order : e.priority - t.priority\n                    }\n                }\n                class A {\n                    constructor(e, t) {\n                        this.languageId = e, this.underlyingConfig = t, this._brackets = null, this._electricCharacter = null, this._onEnterSupport = this.underlyingConfig.brackets || this.underlyingConfig.indentationRules || this.underlyingConfig.onEnterRules ? new m(this.underlyingConfig) : null, this.comments = A._handleComments(this.underlyingConfig), this.characterPair = new c(this.underlyingConfig), this.wordDefinition = this.underlyingConfig.wordPattern || r.Af, this.indentationRules = this.underlyingConfig.indentationRules, this.underlyingConfig.indentationRules ? this.indentRulesSupport = new p(this.underlyingConfig.indentationRules) : this.indentRulesSupport = null, this.foldingRules = this.underlyingConfig.folding || {}\n                    }\n                    getWordDefinition() {\n                        return (0, r.eq)(this.wordDefinition)\n                    }\n                    get brackets() {\n                        return !this._brackets && this.underlyingConfig.brackets && (this._brackets = new h.EA(this.languageId, this.underlyingConfig.brackets)), this._brackets\n                    }\n                    get electricCharacter() {\n                        return this._electricCharacter || (this._electricCharacter = new u(this.brackets)), this._electricCharacter\n                    }\n                    onEnter(e, t, i, n) {\n                        return this._onEnterSupport ? this._onEnterSupport.onEnter(e, t, i, n) : null\n                    }\n                    static _handleComments(e) {\n                        let t = e.comments;\n                        if (!t) return null;\n                        let i = {};\n                        if (t.lineComment && (i.lineCommentToken = t.lineComment), t.blockComment) {\n                            let [e, n] = t.blockComment;\n                            i.blockCommentStartToken = e, i.blockCommentEndToken = n\n                        }\n                        return i\n                    }\n                }(0, w.z)(S, k)\n            },\n            21036: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    c: () => g,\n                    Y: () => m\n                });\n                var n = i(4669),\n                    o = i(89954),\n                    s = i(5976),\n                    r = i(43702),\n                    a = i(59870),\n                    l = i(14118),\n                    c = i(88721);\n\n                function d(e, t, i, n) {\n                    if (Array.isArray(e)) {\n                        let o = 0;\n                        for (const s of e) {\n                            const e = d(s, t, i, n);\n                            if (10 === e) return e;\n                            e > o && (o = e)\n                        }\n                        return o\n                    }\n                    if (\"string\" == typeof e) return n ? \"*\" === e ? 5 : e === i ? 10 : 0 : 0;\n                    if (e) {\n                        const {\n                            language: o,\n                            pattern: s,\n                            scheme: r,\n                            hasAccessToAllModels: a\n                        } = e;\n                        if (!n && !a) return 0;\n                        let d = 0;\n                        if (r)\n                            if (r === t.scheme) d = 10;\n                            else {\n                                if (\"*\" !== r) return 0;\n                                d = 5\n                            } if (o)\n                            if (o === i) d = 10;\n                            else {\n                                if (\"*\" !== o) return 0;\n                                d = Math.max(d, 5)\n                            } if (s) {\n                            let e;\n                            if (e = \"string\" == typeof s ? s : Object.assign(Object.assign({}, s), {\n                                    base: (0, c.Fv)(s.base)\n                                }), e !== t.fsPath && !(0, l.EQ)(e, t.fsPath)) return 0;\n                            d = 10\n                        }\n                        return d\n                    }\n                    return 0\n                }\n                var h = i(51200);\n\n                function u(e) {\n                    return \"string\" != typeof e && (Array.isArray(e) ? e.every(u) : !!e.exclusive)\n                }\n                class g {\n                    constructor() {\n                        this._clock = 0, this._entries = [], this._onDidChange = new n.Q5\n                    }\n                    get onDidChange() {\n                        return this._onDidChange.event\n                    }\n                    register(e, t) {\n                        let i = {\n                            selector: e,\n                            provider: t,\n                            _score: -1,\n                            _time: this._clock++\n                        };\n                        return this._entries.push(i), this._lastCandidate = void 0, this._onDidChange.fire(this._entries.length), (0, s.OF)((() => {\n                            if (i) {\n                                let e = this._entries.indexOf(i);\n                                e >= 0 && (this._entries.splice(e, 1), this._lastCandidate = void 0, this._onDidChange.fire(this._entries.length), i = void 0)\n                            }\n                        }))\n                    }\n                    has(e) {\n                        return this.all(e).length > 0\n                    }\n                    all(e) {\n                        if (!e) return [];\n                        this._updateScores(e);\n                        const t = [];\n                        for (let e of this._entries) e._score > 0 && t.push(e.provider);\n                        return t\n                    }\n                    ordered(e) {\n                        const t = [];\n                        return this._orderedForEach(e, (e => t.push(e.provider))), t\n                    }\n                    orderedGroups(e) {\n                        const t = [];\n                        let i, n;\n                        return this._orderedForEach(e, (e => {\n                            i && n === e._score ? i.push(e.provider) : (n = e._score, i = [e.provider], t.push(i))\n                        })), t\n                    }\n                    _orderedForEach(e, t) {\n                        if (e) {\n                            this._updateScores(e);\n                            for (const e of this._entries) e._score > 0 && t(e)\n                        }\n                    }\n                    _updateScores(e) {\n                        let t = {\n                            uri: e.uri.toString(),\n                            language: e.getLanguageId()\n                        };\n                        if (!this._lastCandidate || this._lastCandidate.language !== t.language || this._lastCandidate.uri !== t.uri) {\n                            this._lastCandidate = t;\n                            for (let t of this._entries)\n                                if (t._score = d(t.selector, e.uri, e.getLanguageId(), (0, h.p)(e)), u(t.selector) && t._score > 0) {\n                                    for (let e of this._entries) e._score = 0;\n                                    t._score = 1e3;\n                                    break\n                                } this._entries.sort(g._compareByScoreAndTime)\n                        }\n                    }\n                    static _compareByScoreAndTime(e, t) {\n                        return e._score < t._score ? 1 : e._score > t._score ? -1 : e._time < t._time ? 1 : e._time > t._time ? -1 : 0\n                    }\n                }\n                const p = new WeakMap;\n                let f = 0;\n                class m {\n                    constructor(e, t, i = Number.MAX_SAFE_INTEGER) {\n                        this._registry = e, this.min = t, this.max = i, this._cache = new r.z6(50, .7)\n                    }\n                    _key(e) {\n                        return e.id + this._registry.all(e).reduce(((e, t) => (0, o.SP)(function(e) {\n                            let t = p.get(e);\n                            return void 0 === t && (t = ++f, p.set(e, t)), t\n                        }(t), e)), 0)\n                    }\n                    _clamp(e) {\n                        return void 0 === e ? this.min : Math.min(this.max, Math.max(this.min, Math.floor(1.3 * e)))\n                    }\n                    get(e) {\n                        const t = this._key(e),\n                            i = this._cache.get(t);\n                        return this._clamp(null == i ? void 0 : i.value)\n                    }\n                    update(e, t) {\n                        const i = this._key(e);\n                        let n = this._cache.get(i);\n                        return n || (n = new a.n, this._cache.set(i, n)), n.update(t), this.get(e)\n                    }\n                }\n            },\n            71144: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    XT: () => c,\n                    dQ: () => l\n                });\n                var n = i(63580),\n                    o = i(4669),\n                    s = i(83831),\n                    r = i(89872),\n                    a = i(81170);\n                const l = new class {\n                    constructor() {\n                        this._onDidChangeLanguages = new o.Q5, this.onDidChangeLanguages = this._onDidChangeLanguages.event, this._languages = [], this._dynamicLanguages = []\n                    }\n                    registerLanguage(e) {\n                        return this._languages.push(e), this._onDidChangeLanguages.fire(void 0), {\n                            dispose: () => {\n                                for (let t = 0, i = this._languages.length; t < i; t++)\n                                    if (this._languages[t] === e) return void this._languages.splice(t, 1)\n                            }\n                        }\n                    }\n                    getLanguages() {\n                        return [].concat(this._languages).concat(this._dynamicLanguages)\n                    }\n                };\n                r.B.add(\"editor.modesRegistry\", l);\n                const c = \"plaintext\";\n                l.registerLanguage({\n                    id: c,\n                    extensions: [\".txt\"],\n                    aliases: [n.N(\"plainText.alias\", \"Plain Text\"), \"text\"],\n                    mimetypes: [a.vW.text]\n                }), s.zu.register(c, {\n                    brackets: [\n                        [\"(\", \")\"],\n                        [\"[\", \"]\"],\n                        [\"{\", \"}\"]\n                    ],\n                    surroundingPairs: [{\n                        open: \"{\",\n                        close: \"}\"\n                    }, {\n                        open: \"[\",\n                        close: \"]\"\n                    }, {\n                        open: \"(\",\n                        close: \")\"\n                    }, {\n                        open: \"<\",\n                        close: \">\"\n                    }, {\n                        open: '\"',\n                        close: '\"'\n                    }, {\n                        open: \"'\",\n                        close: \"'\"\n                    }, {\n                        open: \"`\",\n                        close: \"`\"\n                    }],\n                    colorizedBracketPairs: [],\n                    folding: {\n                        offSide: !0\n                    }\n                }, 0)\n            },\n            28111: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    Ri: () => r,\n                    TG: () => s,\n                    mh: () => a,\n                    nO: () => o\n                });\n                var n = i(85600);\n                const o = new class {\n                        clone() {\n                            return this\n                        }\n                        equals(e) {\n                            return this === e\n                        }\n                    },\n                    s = \"vs.editor.nullMode\";\n\n                function r(e, t, i, o) {\n                    return new n.hG([new n.WU(o, \"\", e)], i)\n                }\n\n                function a(e, t, i, s) {\n                    let r = new Uint32Array(2);\n                    return r[0] = s, r[1] = (16384 | e << 0 | 2 << 23) >>> 0, new n.Hi(r, null === i ? o : i)\n                }\n            },\n            40764: (e, t, i) => {\n                \"use strict\";\n\n                function n(e, t) {\n                    let i = e.getCount(),\n                        n = e.findTokenIndexAtOffset(t),\n                        s = e.getLanguageId(n),\n                        r = n;\n                    for (; r + 1 < i && e.getLanguageId(r + 1) === s;) r++;\n                    let a = n;\n                    for (; a > 0 && e.getLanguageId(a - 1) === s;) a--;\n                    return new o(e, s, a, r + 1, e.getStartOffset(a), e.getEndOffset(r))\n                }\n                i.d(t, {\n                    Bu: () => s,\n                    wH: () => n\n                });\n                class o {\n                    constructor(e, t, i, n, o, s) {\n                        this._scopedLineTokensBrand = void 0, this._actual = e, this.languageId = t, this._firstTokenIndex = i, this._lastTokenIndex = n, this.firstCharOffset = o, this._lastCharOffset = s\n                    }\n                    getLineContent() {\n                        return this._actual.getLineContent().substring(this.firstCharOffset, this._lastCharOffset)\n                    }\n                    getActualLineContentBefore(e) {\n                        return this._actual.getLineContent().substring(0, this.firstCharOffset + e)\n                    }\n                    getTokenCount() {\n                        return this._lastTokenIndex - this._firstTokenIndex\n                    }\n                    findTokenIndexAtOffset(e) {\n                        return this._actual.findTokenIndexAtOffset(e + this.firstCharOffset) - this._firstTokenIndex\n                    }\n                    getStandardTokenType(e) {\n                        return this._actual.getStandardTokenType(e + this._firstTokenIndex)\n                    }\n                }\n\n                function s(e) {\n                    return 0 != (7 & e)\n                }\n            },\n            34227: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    EA: () => a,\n                    Vr: () => p\n                });\n                var n = i(97295),\n                    o = i(50072),\n                    s = i(24314);\n                class r {\n                    constructor(e, t, i, n, o, s) {\n                        this._richEditBracketBrand = void 0, this.languageId = e, this.index = t, this.open = i, this.close = n, this.forwardRegex = o, this.reversedRegex = s, this._openSet = r._toSet(this.open), this._closeSet = r._toSet(this.close)\n                    }\n                    isOpen(e) {\n                        return this._openSet.has(e)\n                    }\n                    isClose(e) {\n                        return this._closeSet.has(e)\n                    }\n                    static _toSet(e) {\n                        const t = new Set;\n                        for (const i of e) t.add(i);\n                        return t\n                    }\n                }\n                class a {\n                    constructor(e, t) {\n                        this._richEditBracketsBrand = void 0;\n                        const i = function(e) {\n                            const t = e.length;\n                            e = e.map((e => [e[0].toLowerCase(), e[1].toLowerCase()]));\n                            const i = [];\n                            for (let e = 0; e < t; e++) i[e] = e;\n                            const n = (e, t) => {\n                                    const [i, n] = e, [o, s] = t;\n                                    return i === o || i === s || n === o || n === s\n                                },\n                                o = (e, n) => {\n                                    const o = Math.min(e, n),\n                                        s = Math.max(e, n);\n                                    for (let e = 0; e < t; e++) i[e] === s && (i[e] = o)\n                                };\n                            for (let s = 0; s < t; s++) {\n                                const r = e[s];\n                                for (let a = s + 1; a < t; a++) n(r, e[a]) && o(i[s], i[a])\n                            }\n                            const s = [];\n                            for (let n = 0; n < t; n++) {\n                                let o = [],\n                                    r = [];\n                                for (let s = 0; s < t; s++)\n                                    if (i[s] === n) {\n                                        const [t, i] = e[s];\n                                        o.push(t), r.push(i)\n                                    } o.length > 0 && s.push({\n                                    open: o,\n                                    close: r\n                                })\n                            }\n                            return s\n                        }(t);\n                        this.brackets = i.map(((t, n) => new r(e, n, t.open, t.close, function(e, t, i, n) {\n                            let o = [];\n                            o = o.concat(e), o = o.concat(t);\n                            for (let e = 0, t = o.length; e < t; e++) l(o[e], i, n, o);\n                            return o = d(o), o.sort(c), o.reverse(), u(o)\n                        }(t.open, t.close, i, n), function(e, t, i, n) {\n                            let o = [];\n                            o = o.concat(e), o = o.concat(t);\n                            for (let e = 0, t = o.length; e < t; e++) l(o[e], i, n, o);\n                            return o = d(o), o.sort(c), o.reverse(), u(o.map(g))\n                        }(t.open, t.close, i, n)))), this.forwardRegex = function(e) {\n                            let t = [];\n                            for (const i of e) {\n                                for (const e of i.open) t.push(e);\n                                for (const e of i.close) t.push(e)\n                            }\n                            return t = d(t), u(t)\n                        }(this.brackets), this.reversedRegex = function(e) {\n                            let t = [];\n                            for (const i of e) {\n                                for (const e of i.open) t.push(e);\n                                for (const e of i.close) t.push(e)\n                            }\n                            return t = d(t), u(t.map(g))\n                        }(this.brackets), this.textIsBracket = {}, this.textIsOpenBracket = {}, this.maxBracketLength = 0;\n                        for (const e of this.brackets) {\n                            for (const t of e.open) this.textIsBracket[t] = e, this.textIsOpenBracket[t] = !0, this.maxBracketLength = Math.max(this.maxBracketLength, t.length);\n                            for (const t of e.close) this.textIsBracket[t] = e, this.textIsOpenBracket[t] = !1, this.maxBracketLength = Math.max(this.maxBracketLength, t.length)\n                        }\n                    }\n                }\n\n                function l(e, t, i, n) {\n                    for (let o = 0, s = t.length; o < s; o++) {\n                        if (o === i) continue;\n                        const s = t[o];\n                        for (const t of s.open) t.indexOf(e) >= 0 && n.push(t);\n                        for (const t of s.close) t.indexOf(e) >= 0 && n.push(t)\n                    }\n                }\n\n                function c(e, t) {\n                    return e.length - t.length\n                }\n\n                function d(e) {\n                    if (e.length <= 1) return e;\n                    const t = [],\n                        i = new Set;\n                    for (const n of e) i.has(n) || (t.push(n), i.add(n));\n                    return t\n                }\n\n                function h(e) {\n                    const t = /^[\\w ]+$/.test(e);\n                    return e = n.ec(e), t ? `\\\\b${e}\\\\b` : e\n                }\n\n                function u(e) {\n                    let t = `(${e.map(h).join(\")|(\")})`;\n                    return n.GF(t, !0)\n                }\n                const g = function() {\n                    let e = null,\n                        t = null;\n                    return function(i) {\n                        return e !== i && (e = i, t = function(e) {\n                            if (o.lZ) {\n                                const t = new Uint16Array(e.length);\n                                let i = 0;\n                                for (let n = e.length - 1; n >= 0; n--) t[i++] = e.charCodeAt(n);\n                                return o.oe().decode(t)\n                            } {\n                                let t = [],\n                                    i = 0;\n                                for (let n = e.length - 1; n >= 0; n--) t[i++] = e.charAt(n);\n                                return t.join(\"\")\n                            }\n                        }(e)), t\n                    }\n                }();\n                class p {\n                    static _findPrevBracketInText(e, t, i, n) {\n                        let o = i.match(e);\n                        if (!o) return null;\n                        let r = i.length - (o.index || 0),\n                            a = o[0].length,\n                            l = n + r;\n                        return new s.e(t, l - a + 1, t, l + 1)\n                    }\n                    static findPrevBracketInRange(e, t, i, n, o) {\n                        const s = g(i).substring(i.length - o, i.length - n);\n                        return this._findPrevBracketInText(e, t, s, n)\n                    }\n                    static findNextBracketInText(e, t, i, n) {\n                        let o = i.match(e);\n                        if (!o) return null;\n                        let r = o.index || 0,\n                            a = o[0].length;\n                        if (0 === a) return null;\n                        let l = n + r;\n                        return new s.e(t, l + 1, t, l + 1 + a)\n                    }\n                    static findNextBracketInRange(e, t, i, n, o) {\n                        const s = i.substring(n, o);\n                        return this.findNextBracketInText(e, t, s, n)\n                    }\n                }\n            },\n            55713: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    C: () => a,\n                    F: () => l\n                });\n                var n = i(97295),\n                    o = i(78411),\n                    s = i(28111);\n                const r = {\n                    getInitialState: () => s.nO,\n                    tokenize2: (e, t, i, n) => (0, s.mh)(0, e, i, n)\n                };\n\n                function a(e, t, i = r) {\n                    return function(e, t, i) {\n                        let s = '<div class=\"monaco-tokenized-source\">';\n                        const r = n.uq(e);\n                        let a = i.getInitialState();\n                        for (let e = 0, l = r.length; e < l; e++) {\n                            const l = r[e];\n                            e > 0 && (s += \"<br/>\");\n                            const c = i.tokenize2(l, !0, a, 0);\n                            o.A.convertToEndOffset(c.tokens, l.length);\n                            const d = new o.A(c.tokens, l, t).inflate();\n                            let h = 0;\n                            for (let e = 0, t = d.getCount(); e < t; e++) {\n                                const t = d.getClassName(e),\n                                    i = d.getEndOffset(e);\n                                s += `<span class=\"${t}\">${n.YU(l.substring(h,i))}</span>`, h = i\n                            }\n                            a = c.endState\n                        }\n                        return s += \"</div>\", s\n                    }(e, t, i || r)\n                }\n\n                function l(e, t, i, n, o, s, r) {\n                    let a = \"<div>\",\n                        l = n,\n                        c = 0,\n                        d = !0;\n                    for (let h = 0, u = t.getCount(); h < u; h++) {\n                        const u = t.getEndOffset(h);\n                        if (u <= n) continue;\n                        let g = \"\";\n                        for (; l < u && l < o; l++) {\n                            const t = e.charCodeAt(l);\n                            switch (t) {\n                                case 9:\n                                    let e = s - (l + c) % s;\n                                    for (c += e - 1; e > 0;) r && d ? (g += \"&#160;\", d = !1) : (g += \" \", d = !0), e--;\n                                    break;\n                                case 60:\n                                    g += \"&lt;\", d = !1;\n                                    break;\n                                case 62:\n                                    g += \"&gt;\", d = !1;\n                                    break;\n                                case 38:\n                                    g += \"&amp;\", d = !1;\n                                    break;\n                                case 0:\n                                    g += \"&#00;\", d = !1;\n                                    break;\n                                case 65279:\n                                case 8232:\n                                case 8233:\n                                case 133:\n                                    g += \"�\", d = !1;\n                                    break;\n                                case 13:\n                                    g += \"&#8203\", d = !1;\n                                    break;\n                                case 32:\n                                    r && d ? (g += \"&#160;\", d = !1) : (g += \" \", d = !0);\n                                    break;\n                                default:\n                                    g += String.fromCharCode(t), d = !1\n                            }\n                        }\n                        if (a += `<span style=\"${t.getInlineStyle(h,i)}\">${g}</span>`, u > o || l >= o) break\n                    }\n                    return a += \"</div>\", a\n                }\n            },\n            90469: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    p: () => n\n                });\n                const n = (0, i(72065).yh)(\"editorWorkerService\")\n            },\n            89510: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    OG: () => x,\n                    ML: () => b,\n                    KO: () => y,\n                    Jc: () => _,\n                    Vl: () => f,\n                    Vj: () => m\n                });\n                var n = i(71050),\n                    o = i(17301),\n                    s = i(70666),\n                    r = i(44101),\n                    a = i(51200),\n                    l = i(94565),\n                    c = i(98401),\n                    d = i(53060),\n                    h = i(1432);\n\n                function u(e) {\n                    const t = new Uint32Array(function(e) {\n                        let t = 0;\n                        if (t += 2, \"full\" === e.type) t += 1 + e.data.length;\n                        else {\n                            t += 1, t += 3 * e.deltas.length;\n                            for (const i of e.deltas) i.data && (t += i.data.length)\n                        }\n                        return t\n                    }(e));\n                    let i = 0;\n                    if (t[i++] = e.id, \"full\" === e.type) t[i++] = 1, t[i++] = e.data.length, t.set(e.data, i), i += e.data.length;\n                    else {\n                        t[i++] = 2, t[i++] = e.deltas.length;\n                        for (const n of e.deltas) t[i++] = n.start, t[i++] = n.deleteCount, n.data ? (t[i++] = n.data.length, t.set(n.data, i), i += n.data.length) : t[i++] = 0\n                    }\n                    return function(e) {\n                        const t = new Uint8Array(e.buffer, e.byteOffset, 4 * e.length);\n                        return h.r() || function(e) {\n                            for (let t = 0, i = e.length; t < i; t += 4) {\n                                const i = e[t + 0],\n                                    n = e[t + 1],\n                                    o = e[t + 2],\n                                    s = e[t + 3];\n                                e[t + 0] = s, e[t + 1] = o, e[t + 2] = n, e[t + 3] = i\n                            }\n                        }(t), d.KN.wrap(t)\n                    }(t)\n                }\n                var g = i(24314),\n                    p = function(e, t, i, n) {\n                        return new(i || (i = Promise))((function(o, s) {\n                            function r(e) {\n                                try {\n                                    l(n.next(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function a(e) {\n                                try {\n                                    l(n.throw(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function l(e) {\n                                var t;\n                                e.done ? o(e.value) : (t = e.value, t instanceof i ? t : new i((function(e) {\n                                    e(t)\n                                }))).then(r, a)\n                            }\n                            l((n = n.apply(e, t || [])).next())\n                        }))\n                    };\n\n                function f(e) {\n                    return e && !!e.data\n                }\n\n                function m(e) {\n                    return e && Array.isArray(e.edits)\n                }\n                class v {\n                    constructor(e, t) {\n                        this.provider = e, this.tokens = t\n                    }\n                }\n\n                function _(e) {\n                    return r.wT.has(e)\n                }\n\n                function b(e, t, i, n) {\n                    return p(this, void 0, void 0, (function*() {\n                        const s = function(e) {\n                                const t = r.wT.orderedGroups(e);\n                                return t.length > 0 ? t[0] : []\n                            }(e),\n                            a = yield Promise.all(s.map((s => p(this, void 0, void 0, (function*() {\n                                let r;\n                                try {\n                                    r = yield s.provideDocumentSemanticTokens(e, s === t ? i : null, n)\n                                } catch (e) {\n                                    (0, o.Cp)(e), r = null\n                                }\n                                return r && (f(r) || m(r)) || (r = null), new v(s, r)\n                            })))));\n                        for (const e of a)\n                            if (e.tokens) return e;\n                        return a.length > 0 ? a[0] : null\n                    }))\n                }\n                class w {\n                    constructor(e, t) {\n                        this.provider = e, this.tokens = t\n                    }\n                }\n\n                function y(e) {\n                    return r.K7.has(e)\n                }\n\n                function C(e) {\n                    const t = r.K7.orderedGroups(e);\n                    return t.length > 0 ? t[0] : []\n                }\n\n                function x(e, t, i) {\n                    return p(this, void 0, void 0, (function*() {\n                        const n = C(e),\n                            s = yield Promise.all(n.map((n => p(this, void 0, void 0, (function*() {\n                                let s;\n                                try {\n                                    s = yield n.provideDocumentRangeSemanticTokens(e, t, i)\n                                } catch (e) {\n                                    (0, o.Cp)(e), s = null\n                                }\n                                return s && f(s) || (s = null), new w(n, s)\n                            })))));\n                        for (const e of s)\n                            if (e.tokens) return e;\n                        return s.length > 0 ? s[0] : null\n                    }))\n                }\n                l.P.registerCommand(\"_provideDocumentSemanticTokensLegend\", ((e, ...t) => p(void 0, void 0, void 0, (function*() {\n                    const [i] = t;\n                    (0, c.p_)(i instanceof s.o);\n                    const n = e.get(a.q).getModel(i);\n                    if (!n) return;\n                    const o = function(e) {\n                        const t = r.wT.orderedGroups(e);\n                        return t.length > 0 ? t[0] : null\n                    }(n);\n                    return o ? o[0].getLegend() : e.get(l.H).executeCommand(\"_provideDocumentRangeSemanticTokensLegend\", i)\n                })))), l.P.registerCommand(\"_provideDocumentSemanticTokens\", ((e, ...t) => p(void 0, void 0, void 0, (function*() {\n                    const [i] = t;\n                    (0, c.p_)(i instanceof s.o);\n                    const o = e.get(a.q).getModel(i);\n                    if (!o) return;\n                    if (!_(o)) return e.get(l.H).executeCommand(\"_provideDocumentRangeSemanticTokens\", i, o.getFullModelRange());\n                    const r = yield b(o, null, null, n.T.None);\n                    if (!r) return;\n                    const {\n                        provider: d,\n                        tokens: h\n                    } = r;\n                    if (!h || !f(h)) return;\n                    const g = u({\n                        id: 0,\n                        type: \"full\",\n                        data: h.data\n                    });\n                    return h.resultId && d.releaseDocumentSemanticTokens(h.resultId), g\n                })))), l.P.registerCommand(\"_provideDocumentRangeSemanticTokensLegend\", ((e, ...t) => p(void 0, void 0, void 0, (function*() {\n                    const [i, o] = t;\n                    (0, c.p_)(i instanceof s.o);\n                    const r = e.get(a.q).getModel(i);\n                    if (!r) return;\n                    const l = C(r);\n                    if (0 === l.length) return;\n                    if (1 === l.length) return l[0].getLegend();\n                    if (!o || !g.e.isIRange(o)) return console.warn(\"provideDocumentRangeSemanticTokensLegend might be out-of-sync with provideDocumentRangeSemanticTokens unless a range argument is passed in\"), l[0].getLegend();\n                    const d = yield x(r, g.e.lift(o), n.T.None);\n                    return d ? d.provider.getLegend() : void 0\n                })))), l.P.registerCommand(\"_provideDocumentRangeSemanticTokens\", ((e, ...t) => p(void 0, void 0, void 0, (function*() {\n                    const [i, o] = t;\n                    (0, c.p_)(i instanceof s.o), (0, c.p_)(g.e.isIRange(o));\n                    const r = e.get(a.q).getModel(i);\n                    if (!r) return;\n                    const l = yield x(r, g.e.lift(o), n.T.None);\n                    return l && l.tokens ? u({\n                        id: 0,\n                        type: \"full\",\n                        data: l.tokens.data\n                    }) : void 0\n                }))))\n            },\n            26479: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    i: () => n\n                });\n                const n = (0, i(72065).yh)(\"markerDecorationsService\")\n            },\n            71531: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    h: () => n\n                });\n                const n = (0, i(72065).yh)(\"modeService\")\n            },\n            51200: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    p: () => o,\n                    q: () => n\n                });\n                const n = (0, i(72065).yh)(\"modelService\");\n\n                function o(e) {\n                    return !e.isTooLargeForSyncing() && !e.isForSimpleWidget\n                }\n            },\n            32334: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    BR: () => A,\n                    e3: () => O,\n                    tw: () => P\n                });\n                var n = i(4669),\n                    o = i(5976),\n                    s = i(1432),\n                    r = i(17301),\n                    a = i(64141),\n                    l = i(44174),\n                    c = i(44101),\n                    d = i(71144),\n                    h = i(71531),\n                    u = i(33187),\n                    g = i(33108),\n                    p = i(15393),\n                    f = i(71050),\n                    m = i(97781),\n                    v = i(43557),\n                    _ = i(64862),\n                    b = i(89954),\n                    w = i(95215),\n                    y = i(66663),\n                    C = i(65072),\n                    x = i(89510),\n                    S = i(36248),\n                    k = i(83831),\n                    L = function(e, t, i, n) {\n                        var o, s = arguments.length,\n                            r = s < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n                        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) r = Reflect.decorate(e, t, i, n);\n                        else\n                            for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (r = (s < 3 ? o(r) : s > 3 ? o(t, i, r) : o(t, i)) || r);\n                        return s > 3 && r && Object.defineProperty(t, i, r), r\n                    },\n                    N = function(e, t) {\n                        return function(i, n) {\n                            t(i, n, e)\n                        }\n                    };\n\n                function D(e) {\n                    return e.toString()\n                }\n\n                function I(e) {\n                    const t = new b.yP,\n                        i = e.createSnapshot();\n                    let n;\n                    for (; n = i.read();) t.update(n);\n                    return t.digest()\n                }\n                class E {\n                    constructor(e, t, i) {\n                        this._modelEventListeners = new o.SL, this.model = e, this._languageSelection = null, this._languageSelectionListener = null, this._modelEventListeners.add(e.onWillDispose((() => t(e)))), this._modelEventListeners.add(e.onDidChangeLanguage((t => i(e, t))))\n                    }\n                    _disposeLanguageSelection() {\n                        this._languageSelectionListener && (this._languageSelectionListener.dispose(), this._languageSelectionListener = null)\n                    }\n                    dispose() {\n                        this._modelEventListeners.dispose(), this._disposeLanguageSelection()\n                    }\n                    setLanguage(e) {\n                        this._disposeLanguageSelection(), this._languageSelection = e, this._languageSelectionListener = this._languageSelection.onDidChange((() => this.model.setMode(e.languageId))), this.model.setMode(e.languageId)\n                    }\n                }\n                const T = s.IJ || s.dz ? 1 : 2;\n                class M {\n                    constructor(e, t, i, n, o, s, r, a) {\n                        this.uri = e, this.initialUndoRedoSnapshot = t, this.time = i, this.sharesUndoRedoStack = n, this.heapSize = o, this.sha1 = s, this.versionId = r, this.alternativeVersionId = a\n                    }\n                }\n                let A = class e extends o.JT {\n                    constructor(e, t, i, o, s, r, a) {\n                        super(), this._configurationService = e, this._resourcePropertiesService = t, this._themeService = i, this._logService = o, this._undoRedoService = s, this._modeService = r, this._languageConfigurationService = a, this._onModelAdded = this._register(new n.Q5), this.onModelAdded = this._onModelAdded.event, this._onModelRemoved = this._register(new n.Q5), this.onModelRemoved = this._onModelRemoved.event, this._onModelModeChanged = this._register(new n.Q5), this.onModelModeChanged = this._onModelModeChanged.event, this._modelCreationOptionsByLanguageAndResource = Object.create(null), this._models = {}, this._disposedModels = new Map, this._disposedModelsHeapSize = 0, this._semanticStyling = this._register(new F(this._themeService, this._modeService, this._logService)), this._register(this._configurationService.onDidChangeConfiguration((() => this._updateModelOptions()))), this._updateModelOptions(), this._register(new R(this, this._themeService, this._configurationService, this._semanticStyling))\n                    }\n                    static _readModelOptions(e, t) {\n                        var i;\n                        let n = a.DB.tabSize;\n                        if (e.editor && void 0 !== e.editor.tabSize) {\n                            const t = parseInt(e.editor.tabSize, 10);\n                            isNaN(t) || (n = t), n < 1 && (n = 1)\n                        }\n                        let o = n;\n                        if (e.editor && void 0 !== e.editor.indentSize && \"tabSize\" !== e.editor.indentSize) {\n                            const t = parseInt(e.editor.indentSize, 10);\n                            isNaN(t) || (o = t), o < 1 && (o = 1)\n                        }\n                        let s = a.DB.insertSpaces;\n                        e.editor && void 0 !== e.editor.insertSpaces && (s = \"false\" !== e.editor.insertSpaces && Boolean(e.editor.insertSpaces));\n                        let r = T;\n                        const l = e.eol;\n                        \"\\r\\n\" === l ? r = 2 : \"\\n\" === l && (r = 1);\n                        let c = a.DB.trimAutoWhitespace;\n                        e.editor && void 0 !== e.editor.trimAutoWhitespace && (c = \"false\" !== e.editor.trimAutoWhitespace && Boolean(e.editor.trimAutoWhitespace));\n                        let d = a.DB.detectIndentation;\n                        e.editor && void 0 !== e.editor.detectIndentation && (d = \"false\" !== e.editor.detectIndentation && Boolean(e.editor.detectIndentation));\n                        let h = a.DB.largeFileOptimizations;\n                        e.editor && void 0 !== e.editor.largeFileOptimizations && (h = \"false\" !== e.editor.largeFileOptimizations && Boolean(e.editor.largeFileOptimizations));\n                        let u = a.DB.bracketPairColorizationOptions;\n                        return (null === (i = e.editor) || void 0 === i ? void 0 : i.bracketPairColorization) && \"object\" == typeof e.editor.bracketPairColorization && (u = {\n                            enabled: !!e.editor.bracketPairColorization.enabled\n                        }), {\n                            isForSimpleWidget: t,\n                            tabSize: n,\n                            indentSize: o,\n                            insertSpaces: s,\n                            detectIndentation: d,\n                            defaultEOL: r,\n                            trimAutoWhitespace: c,\n                            largeFileOptimizations: h,\n                            bracketPairColorizationOptions: u\n                        }\n                    }\n                    _getEOL(e, t) {\n                        if (e) return this._resourcePropertiesService.getEOL(e, t);\n                        const i = this._configurationService.getValue(\"files.eol\", {\n                            overrideIdentifier: t\n                        });\n                        return i && \"string\" == typeof i && \"auto\" !== i ? i : 3 === s.OS || 2 === s.OS ? \"\\n\" : \"\\r\\n\"\n                    }\n                    _shouldRestoreUndoStack() {\n                        const e = this._configurationService.getValue(\"files.restoreUndoStack\");\n                        return \"boolean\" != typeof e || e\n                    }\n                    getCreationOptions(t, i, n) {\n                        let o = this._modelCreationOptionsByLanguageAndResource[t + i];\n                        if (!o) {\n                            const s = this._configurationService.getValue(\"editor\", {\n                                    overrideIdentifier: t,\n                                    resource: i\n                                }),\n                                r = this._getEOL(i, t);\n                            o = e._readModelOptions({\n                                editor: s,\n                                eol: r\n                            }, n), this._modelCreationOptionsByLanguageAndResource[t + i] = o\n                        }\n                        return o\n                    }\n                    _updateModelOptions() {\n                        const t = this._modelCreationOptionsByLanguageAndResource;\n                        this._modelCreationOptionsByLanguageAndResource = Object.create(null);\n                        const i = Object.keys(this._models);\n                        for (let n = 0, o = i.length; n < o; n++) {\n                            const o = i[n],\n                                s = this._models[o],\n                                r = s.model.getLanguageId(),\n                                a = s.model.uri,\n                                l = t[r + a],\n                                c = this.getCreationOptions(r, a, s.model.isForSimpleWidget);\n                            e._setModelOptionsForModel(s.model, c, l)\n                        }\n                    }\n                    static _setModelOptionsForModel(e, t, i) {\n                        i && i.defaultEOL !== t.defaultEOL && 1 === e.getLineCount() && e.setEOL(1 === t.defaultEOL ? 0 : 1), i && i.detectIndentation === t.detectIndentation && i.insertSpaces === t.insertSpaces && i.tabSize === t.tabSize && i.indentSize === t.indentSize && i.trimAutoWhitespace === t.trimAutoWhitespace && (0, S.fS)(i.bracketPairColorizationOptions, t.bracketPairColorizationOptions) || (t.detectIndentation ? (e.detectIndentation(t.insertSpaces, t.tabSize), e.updateOptions({\n                            trimAutoWhitespace: t.trimAutoWhitespace,\n                            bracketColorizationOptions: t.bracketPairColorizationOptions\n                        })) : e.updateOptions({\n                            insertSpaces: t.insertSpaces,\n                            tabSize: t.tabSize,\n                            indentSize: t.indentSize,\n                            trimAutoWhitespace: t.trimAutoWhitespace,\n                            bracketColorizationOptions: t.bracketPairColorizationOptions\n                        }))\n                    }\n                    _insertDisposedModel(e) {\n                        this._disposedModels.set(D(e.uri), e), this._disposedModelsHeapSize += e.heapSize\n                    }\n                    _removeDisposedModel(e) {\n                        const t = this._disposedModels.get(D(e));\n                        return t && (this._disposedModelsHeapSize -= t.heapSize), this._disposedModels.delete(D(e)), t\n                    }\n                    _ensureDisposedModelsHeapSize(e) {\n                        if (this._disposedModelsHeapSize > e) {\n                            const t = [];\n                            for (this._disposedModels.forEach((e => {\n                                    e.sharesUndoRedoStack || t.push(e)\n                                })), t.sort(((e, t) => e.time - t.time)); t.length > 0 && this._disposedModelsHeapSize > e;) {\n                                const e = t.shift();\n                                this._removeDisposedModel(e.uri), null !== e.initialUndoRedoSnapshot && this._undoRedoService.restoreSnapshot(e.initialUndoRedoSnapshot)\n                            }\n                        }\n                    }\n                    _createModelData(e, t, i, n) {\n                        const o = this.getCreationOptions(t, i, n),\n                            s = new l.yO(e, o, t, i, this._undoRedoService, this._modeService, this._languageConfigurationService);\n                        if (i && this._disposedModels.has(D(i))) {\n                            const e = this._removeDisposedModel(i),\n                                t = this._undoRedoService.getElements(i),\n                                n = I(s) === e.sha1;\n                            if (n || e.sharesUndoRedoStack) {\n                                for (const e of t.past)(0, w.e9)(e) && e.matchesResource(i) && e.setModel(s);\n                                for (const e of t.future)(0, w.e9)(e) && e.matchesResource(i) && e.setModel(s);\n                                this._undoRedoService.setElementsValidFlag(i, !0, (e => (0, w.e9)(e) && e.matchesResource(i))), n && (s._overwriteVersionId(e.versionId), s._overwriteAlternativeVersionId(e.alternativeVersionId), s._overwriteInitialUndoRedoSnapshot(e.initialUndoRedoSnapshot))\n                            } else null !== e.initialUndoRedoSnapshot && this._undoRedoService.restoreSnapshot(e.initialUndoRedoSnapshot)\n                        }\n                        const r = D(s.uri);\n                        if (this._models[r]) throw new Error(\"ModelService: Cannot add model because it already exists!\");\n                        const a = new E(s, (e => this._onWillDispose(e)), ((e, t) => this._onDidChangeLanguage(e, t)));\n                        return this._models[r] = a, a\n                    }\n                    createModel(e, t, i, n = !1) {\n                        let o;\n                        return t ? (o = this._createModelData(e, t.languageId, i, n), this.setMode(o.model, t)) : o = this._createModelData(e, d.XT, i, n), this._onModelAdded.fire(o.model), o.model\n                    }\n                    setMode(e, t) {\n                        if (!t) return;\n                        const i = this._models[D(e.uri)];\n                        i && i.setLanguage(t)\n                    }\n                    getModels() {\n                        const e = [],\n                            t = Object.keys(this._models);\n                        for (let i = 0, n = t.length; i < n; i++) {\n                            const n = t[i];\n                            e.push(this._models[n].model)\n                        }\n                        return e\n                    }\n                    getModel(e) {\n                        const t = D(e),\n                            i = this._models[t];\n                        return i ? i.model : null\n                    }\n                    getSemanticTokensProviderStyling(e) {\n                        return this._semanticStyling.get(e)\n                    }\n                    _schemaShouldMaintainUndoRedoElements(e) {\n                        return e.scheme === y.lg.file || e.scheme === y.lg.vscodeRemote || e.scheme === y.lg.userData || e.scheme === y.lg.vscodeNotebookCell || \"fake-fs\" === e.scheme\n                    }\n                    _onWillDispose(t) {\n                        const i = D(t.uri),\n                            n = this._models[i],\n                            o = this._undoRedoService.getUriComparisonKey(t.uri) !== t.uri.toString();\n                        let s = !1,\n                            r = 0;\n                        if (o || this._shouldRestoreUndoStack() && this._schemaShouldMaintainUndoRedoElements(t.uri)) {\n                            const e = this._undoRedoService.getElements(t.uri);\n                            if (e.past.length > 0 || e.future.length > 0) {\n                                for (const i of e.past)(0, w.e9)(i) && i.matchesResource(t.uri) && (s = !0, r += i.heapSize(t.uri), i.setModel(t.uri));\n                                for (const i of e.future)(0, w.e9)(i) && i.matchesResource(t.uri) && (s = !0, r += i.heapSize(t.uri), i.setModel(t.uri))\n                            }\n                        }\n                        const a = e.MAX_MEMORY_FOR_CLOSED_FILES_UNDO_STACK;\n                        if (s)\n                            if (!o && r > a) {\n                                const e = n.model.getInitialUndoRedoSnapshot();\n                                null !== e && this._undoRedoService.restoreSnapshot(e)\n                            } else this._ensureDisposedModelsHeapSize(a - r), this._undoRedoService.setElementsValidFlag(t.uri, !1, (e => (0, w.e9)(e) && e.matchesResource(t.uri))), this._insertDisposedModel(new M(t.uri, n.model.getInitialUndoRedoSnapshot(), Date.now(), o, r, I(t), t.getVersionId(), t.getAlternativeVersionId()));\n                        else if (!o) {\n                            const e = n.model.getInitialUndoRedoSnapshot();\n                            null !== e && this._undoRedoService.restoreSnapshot(e)\n                        }\n                        delete this._models[i], n.dispose(), delete this._modelCreationOptionsByLanguageAndResource[t.getLanguageId() + t.uri], this._onModelRemoved.fire(t)\n                    }\n                    _onDidChangeLanguage(t, i) {\n                        const n = i.oldLanguage,\n                            o = t.getLanguageId(),\n                            s = this.getCreationOptions(n, t.uri, t.isForSimpleWidget),\n                            r = this.getCreationOptions(o, t.uri, t.isForSimpleWidget);\n                        e._setModelOptionsForModel(t, r, s), this._onModelModeChanged.fire({\n                            model: t,\n                            oldModeId: n\n                        })\n                    }\n                };\n                A.MAX_MEMORY_FOR_CLOSED_FILES_UNDO_STACK = 20971520, A = L([N(0, g.Ui), N(1, u.y), N(2, m.XE), N(3, v.VZ), N(4, _.tJ), N(5, h.h), N(6, k.c_)], A);\n                const O = \"editor.semanticHighlighting\";\n\n                function P(e, t, i) {\n                    var n;\n                    const o = null === (n = i.getValue(O, {\n                        overrideIdentifier: e.getLanguageId(),\n                        resource: e.uri\n                    })) || void 0 === n ? void 0 : n.enabled;\n                    return \"boolean\" == typeof o ? o : t.getColorTheme().semanticHighlighting\n                }\n                class R extends o.JT {\n                    constructor(e, t, i, n) {\n                        super(), this._watchers = Object.create(null), this._semanticStyling = n;\n                        const o = e => {\n                                this._watchers[e.uri.toString()] = new V(e, t, this._semanticStyling)\n                            },\n                            s = (e, t) => {\n                                t.dispose(), delete this._watchers[e.uri.toString()]\n                            },\n                            r = () => {\n                                for (let n of e.getModels()) {\n                                    const e = this._watchers[n.uri.toString()];\n                                    P(n, t, i) ? e || o(n) : e && s(n, e)\n                                }\n                            };\n                        this._register(e.onModelAdded((e => {\n                            P(e, t, i) && o(e)\n                        }))), this._register(e.onModelRemoved((e => {\n                            const t = this._watchers[e.uri.toString()];\n                            t && s(e, t)\n                        }))), this._register(i.onDidChangeConfiguration((e => {\n                            e.affectsConfiguration(O) && r()\n                        }))), this._register(t.onDidColorThemeChange(r))\n                    }\n                }\n                class F extends o.JT {\n                    constructor(e, t, i) {\n                        super(), this._themeService = e, this._modeService = t, this._logService = i, this._caches = new WeakMap, this._register(this._themeService.onDidColorThemeChange((() => {\n                            this._caches = new WeakMap\n                        })))\n                    }\n                    get(e) {\n                        return this._caches.has(e) || this._caches.set(e, new C.$(e.getLegend(), this._themeService, this._modeService, this._logService)), this._caches.get(e)\n                    }\n                }\n                class B {\n                    constructor(e, t, i) {\n                        this.provider = e, this.resultId = t, this.data = i\n                    }\n                    dispose() {\n                        this.provider.releaseDocumentSemanticTokens(this.resultId)\n                    }\n                }\n                class V extends o.JT {\n                    constructor(e, t, i) {\n                        super(), this._isDisposed = !1, this._model = e, this._semanticStyling = i, this._fetchDocumentSemanticTokens = this._register(new p.pY((() => this._fetchDocumentSemanticTokensNow()), V.FETCH_DOCUMENT_SEMANTIC_TOKENS_DELAY)), this._currentDocumentResponse = null, this._currentDocumentRequestCancellationTokenSource = null, this._documentProvidersChangeListeners = [], this._register(this._model.onDidChangeContent((() => {\n                            this._fetchDocumentSemanticTokens.isScheduled() || this._fetchDocumentSemanticTokens.schedule()\n                        }))), this._register(this._model.onDidChangeLanguage((() => {\n                            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)\n                        })));\n                        const n = () => {\n                            (0, o.B9)(this._documentProvidersChangeListeners), this._documentProvidersChangeListeners = [];\n                            for (const t of c.wT.all(e)) \"function\" == typeof t.onDidChange && this._documentProvidersChangeListeners.push(t.onDidChange((() => this._fetchDocumentSemanticTokens.schedule(0))))\n                        };\n                        n(), this._register(c.wT.onDidChange((() => {\n                            n(), this._fetchDocumentSemanticTokens.schedule()\n                        }))), this._register(t.onDidColorThemeChange((e => {\n                            this._setDocumentSemanticTokens(null, null, null, []), this._fetchDocumentSemanticTokens.schedule()\n                        }))), this._fetchDocumentSemanticTokens.schedule(0)\n                    }\n                    dispose() {\n                        this._currentDocumentResponse && (this._currentDocumentResponse.dispose(), this._currentDocumentResponse = null), this._currentDocumentRequestCancellationTokenSource && (this._currentDocumentRequestCancellationTokenSource.cancel(), this._currentDocumentRequestCancellationTokenSource = null), this._setDocumentSemanticTokens(null, null, null, []), this._isDisposed = !0, super.dispose()\n                    }\n                    _fetchDocumentSemanticTokensNow() {\n                        if (this._currentDocumentRequestCancellationTokenSource) return;\n                        if (!(0, x.Jc)(this._model)) return void(this._currentDocumentResponse && this._model.setSemanticTokens(null, !1));\n                        const e = new f.A,\n                            t = this._currentDocumentResponse ? this._currentDocumentResponse.provider : null,\n                            i = this._currentDocumentResponse && this._currentDocumentResponse.resultId || null,\n                            n = (0, x.ML)(this._model, t, i, e.token);\n                        this._currentDocumentRequestCancellationTokenSource = e;\n                        const o = [],\n                            s = this._model.onDidChangeContent((e => {\n                                o.push(e)\n                            }));\n                        n.then((e => {\n                            if (this._currentDocumentRequestCancellationTokenSource = null, s.dispose(), e) {\n                                const {\n                                    provider: t,\n                                    tokens: i\n                                } = e, n = this._semanticStyling.get(t);\n                                this._setDocumentSemanticTokens(t, i || null, n, o)\n                            } else this._setDocumentSemanticTokens(null, null, null, o)\n                        }), (e => {\n                            e && (r.VV(e) || \"string\" == typeof e.message && -1 !== e.message.indexOf(\"busy\")) || r.dL(e), this._currentDocumentRequestCancellationTokenSource = null, s.dispose(), o.length > 0 && (this._fetchDocumentSemanticTokens.isScheduled() || this._fetchDocumentSemanticTokens.schedule())\n                        }))\n                    }\n                    static _copy(e, t, i, n, o) {\n                        for (let s = 0; s < o; s++) i[n + s] = e[t + s]\n                    }\n                    _setDocumentSemanticTokens(e, t, i, n) {\n                        const o = this._currentDocumentResponse,\n                            s = () => {\n                                n.length > 0 && !this._fetchDocumentSemanticTokens.isScheduled() && this._fetchDocumentSemanticTokens.schedule()\n                            };\n                        if (this._currentDocumentResponse && (this._currentDocumentResponse.dispose(), this._currentDocumentResponse = null), this._isDisposed) e && t && e.releaseDocumentSemanticTokens(t.resultId);\n                        else if (e && i) {\n                            if (!t) return this._model.setSemanticTokens(null, !0), void s();\n                            if ((0, x.Vj)(t)) {\n                                if (!o) return void this._model.setSemanticTokens(null, !0);\n                                if (0 === t.edits.length) t = {\n                                    resultId: t.resultId,\n                                    data: o.data\n                                };\n                                else {\n                                    let e = 0;\n                                    for (const i of t.edits) e += (i.data ? i.data.length : 0) - i.deleteCount;\n                                    const i = o.data,\n                                        n = new Uint32Array(i.length + e);\n                                    let s = i.length,\n                                        r = n.length;\n                                    for (let e = t.edits.length - 1; e >= 0; e--) {\n                                        const o = t.edits[e],\n                                            a = s - (o.start + o.deleteCount);\n                                        a > 0 && (V._copy(i, s - a, n, r - a, a), r -= a), o.data && (V._copy(o.data, 0, n, r - o.data.length, o.data.length), r -= o.data.length), s = o.start\n                                    }\n                                    s > 0 && V._copy(i, 0, n, 0, s), t = {\n                                        resultId: t.resultId,\n                                        data: n\n                                    }\n                                }\n                            }\n                            if ((0, x.Vl)(t)) {\n                                this._currentDocumentResponse = new B(e, t.resultId, t.data);\n                                const o = (0, C.h)(t, i, this._model.getLanguageId());\n                                if (n.length > 0)\n                                    for (const e of n)\n                                        for (const t of o)\n                                            for (const i of e.changes) t.applyEdit(i.range, i.text);\n                                this._model.setSemanticTokens(o, !0)\n                            } else this._model.setSemanticTokens(null, !0);\n                            s()\n                        } else this._model.setSemanticTokens(null, !1)\n                    }\n                }\n                V.FETCH_DOCUMENT_SEMANTIC_TOKENS_DELAY = 300\n            },\n            88216: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    S: () => n\n                });\n                const n = (0, i(72065).yh)(\"textModelService\")\n            },\n            65072: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    $: () => d,\n                    h: () => h\n                });\n                var n = i(44101),\n                    o = i(97781),\n                    s = i(43557),\n                    r = i(58409),\n                    a = i(71531),\n                    l = function(e, t, i, n) {\n                        var o, s = arguments.length,\n                            r = s < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n                        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) r = Reflect.decorate(e, t, i, n);\n                        else\n                            for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (r = (s < 3 ? o(r) : s > 3 ? o(t, i, r) : o(t, i)) || r);\n                        return s > 3 && r && Object.defineProperty(t, i, r), r\n                    },\n                    c = function(e, t) {\n                        return function(i, n) {\n                            t(i, n, e)\n                        }\n                    };\n                let d = class {\n                    constructor(e, t, i, n) {\n                        this._legend = e, this._themeService = t, this._modeService = i, this._logService = n, this._hashTable = new g, this._hasWarnedOverlappingTokens = !1\n                    }\n                    getMetadata(e, t, i) {\n                        const o = this._modeService.languageIdCodec.encodeLanguageId(i),\n                            r = this._hashTable.get(e, t, o);\n                        let a;\n                        if (r) a = r.metadata, this._logService.getLevel() === s.in.Trace && this._logService.trace(`SemanticTokensProviderStyling [CACHED] ${e} / ${t}: foreground ${n.NX.getForeground(a)}, fontStyle ${n.NX.getFontStyle(a).toString(2)}`);\n                        else {\n                            let r = this._legend.tokenTypes[e];\n                            const l = [];\n                            if (r) {\n                                let e = t;\n                                for (let t = 0; e > 0 && t < this._legend.tokenModifiers.length; t++) 1 & e && l.push(this._legend.tokenModifiers[t]), e >>= 1;\n                                e > 0 && this._logService.getLevel() === s.in.Trace && (this._logService.trace(`SemanticTokensProviderStyling: unknown token modifier index: ${t.toString(2)} for legend: ${JSON.stringify(this._legend.tokenModifiers)}`), l.push(\"not-in-legend\"));\n                                const n = this._themeService.getColorTheme().getTokenStyleMetadata(r, l, i);\n                                if (void 0 === n) a = 2147483647;\n                                else {\n                                    if (a = 0, void 0 !== n.italic) {\n                                        a |= 1 | (n.italic ? 1 : 0) << 11\n                                    }\n                                    if (void 0 !== n.bold) {\n                                        a |= 2 | (n.bold ? 2 : 0) << 11\n                                    }\n                                    if (void 0 !== n.underline) {\n                                        a |= 4 | (n.underline ? 4 : 0) << 11\n                                    }\n                                    if (n.foreground) {\n                                        a |= 8 | n.foreground << 14\n                                    }\n                                    0 === a && (a = 2147483647)\n                                }\n                            } else this._logService.getLevel() === s.in.Trace && this._logService.trace(`SemanticTokensProviderStyling: unknown token type index: ${e} for legend: ${JSON.stringify(this._legend.tokenTypes)}`), a = 2147483647, r = \"not-in-legend\";\n                            this._hashTable.add(e, t, o, a), this._logService.getLevel() === s.in.Trace && this._logService.trace(`SemanticTokensProviderStyling ${e} (${r}) / ${t} (${l.join(\" \")}): foreground ${n.NX.getForeground(a)}, fontStyle ${n.NX.getFontStyle(a).toString(2)}`)\n                        }\n                        return a\n                    }\n                    warnOverlappingSemanticTokens(e, t) {\n                        this._hasWarnedOverlappingTokens || (this._hasWarnedOverlappingTokens = !0, console.warn(`Overlapping semantic tokens detected at lineNumber ${e}, column ${t}`))\n                    }\n                };\n\n                function h(e, t, i) {\n                    const n = e.data,\n                        o = e.data.length / 5 | 0,\n                        s = Math.max(Math.ceil(o / 1024), 400),\n                        a = [];\n                    let l = 0,\n                        c = 1,\n                        d = 0;\n                    for (; l < o;) {\n                        const e = l;\n                        let h = Math.min(e + s, o);\n                        if (h < o) {\n                            let t = h;\n                            for (; t - 1 > e && 0 === n[5 * t];) t--;\n                            if (t - 1 === e) {\n                                let e = h;\n                                for (; e + 1 < o && 0 === n[5 * e];) e++;\n                                h = e\n                            } else h = t\n                        }\n                        let u = new Uint32Array(4 * (h - e)),\n                            g = 0,\n                            p = 0,\n                            f = 0,\n                            m = 0,\n                            v = 0;\n                        for (; l < h;) {\n                            const e = 5 * l,\n                                o = n[e],\n                                s = n[e + 1],\n                                r = c + o | 0,\n                                a = 0 === o ? d + s | 0 : s,\n                                h = n[e + 2],\n                                _ = n[e + 3],\n                                b = n[e + 4],\n                                w = t.getMetadata(_, b, i);\n                            2147483647 !== w && (0 === p && (p = r), f === r && v > a && (t.warnOverlappingSemanticTokens(r, a + 1), m < a ? u[g - 4 + 2] = a : g -= 4), u[g] = r - p, u[g + 1] = a, u[g + 2] = a + h, u[g + 3] = w, g += 4, f = r, m = a, v = a + h), c = r, d = a, l++\n                        }\n                        g !== u.length && (u = u.subarray(0, g));\n                        const _ = new r.Wz(p, new r.OU(u));\n                        a.push(_)\n                    }\n                    return a\n                }\n                d = l([c(1, o.XE), c(2, a.h), c(3, s.VZ)], d);\n                class u {\n                    constructor(e, t, i, n) {\n                        this.tokenTypeIndex = e, this.tokenModifierSet = t, this.languageId = i, this.metadata = n, this.next = null\n                    }\n                }\n                class g {\n                    constructor() {\n                        this._elementsCount = 0, this._currentLengthIndex = 0, this._currentLength = g._SIZES[this._currentLengthIndex], this._growCount = Math.round(this._currentLengthIndex + 1 < g._SIZES.length ? 2 / 3 * this._currentLength : 0), this._elements = [], g._nullOutEntries(this._elements, this._currentLength)\n                    }\n                    static _nullOutEntries(e, t) {\n                        for (let i = 0; i < t; i++) e[i] = null\n                    }\n                    _hash2(e, t) {\n                        return (e << 5) - e + t | 0\n                    }\n                    _hashFunc(e, t, i) {\n                        return this._hash2(this._hash2(e, t), i) % this._currentLength\n                    }\n                    get(e, t, i) {\n                        const n = this._hashFunc(e, t, i);\n                        let o = this._elements[n];\n                        for (; o;) {\n                            if (o.tokenTypeIndex === e && o.tokenModifierSet === t && o.languageId === i) return o;\n                            o = o.next\n                        }\n                        return null\n                    }\n                    add(e, t, i, n) {\n                        if (this._elementsCount++, 0 !== this._growCount && this._elementsCount >= this._growCount) {\n                            const e = this._elements;\n                            this._currentLengthIndex++, this._currentLength = g._SIZES[this._currentLengthIndex], this._growCount = Math.round(this._currentLengthIndex + 1 < g._SIZES.length ? 2 / 3 * this._currentLength : 0), this._elements = [], g._nullOutEntries(this._elements, this._currentLength);\n                            for (const t of e) {\n                                let e = t;\n                                for (; e;) {\n                                    const t = e.next;\n                                    e.next = null, this._add(e), e = t\n                                }\n                            }\n                        }\n                        this._add(new u(e, t, i, n))\n                    }\n                    _add(e) {\n                        const t = this._hashFunc(e.tokenTypeIndex, e.tokenModifierSet, e.languageId);\n                        e.next = this._elements[t], this._elements[t] = e\n                    }\n                }\n                g._SIZES = [3, 7, 13, 31, 61, 127, 251, 509, 1021, 2039, 4093, 8191, 16381, 32749, 65521, 131071, 262139, 524287, 1048573, 2097143]\n            },\n            33187: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    V: () => o,\n                    y: () => s\n                });\n                var n = i(72065);\n                const o = (0, n.yh)(\"textResourceConfigurationService\"),\n                    s = (0, n.yh)(\"textResourcePropertiesService\")\n            },\n            20913: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    B8: () => c,\n                    Oe: () => n,\n                    UL: () => h,\n                    UX: () => a,\n                    aq: () => l,\n                    ld: () => r,\n                    qq: () => s,\n                    ug: () => o,\n                    xi: () => d\n                });\n                var n, o, s, r, a, l, c, d, h, u = i(63580);\n                ! function(e) {\n                    e.noSelection = u.N(\"noSelection\", \"No selection\"), e.singleSelectionRange = u.N(\"singleSelectionRange\", \"Line {0}, Column {1} ({2} selected)\"), e.singleSelection = u.N(\"singleSelection\", \"Line {0}, Column {1}\"), e.multiSelectionRange = u.N(\"multiSelectionRange\", \"{0} selections ({1} characters selected)\"), e.multiSelection = u.N(\"multiSelection\", \"{0} selections\"), e.emergencyConfOn = u.N(\"emergencyConfOn\", \"Now changing the setting `accessibilitySupport` to 'on'.\"), e.openingDocs = u.N(\"openingDocs\", \"Now opening the Editor Accessibility documentation page.\"), e.readonlyDiffEditor = u.N(\"readonlyDiffEditor\", \" in a read-only pane of a diff editor.\"), e.editableDiffEditor = u.N(\"editableDiffEditor\", \" in a pane of a diff editor.\"), e.readonlyEditor = u.N(\"readonlyEditor\", \" in a read-only code editor\"), e.editableEditor = u.N(\"editableEditor\", \" in a code editor\"), e.changeConfigToOnMac = u.N(\"changeConfigToOnMac\", \"To configure the editor to be optimized for usage with a Screen Reader press Command+E now.\"), e.changeConfigToOnWinLinux = u.N(\"changeConfigToOnWinLinux\", \"To configure the editor to be optimized for usage with a Screen Reader press Control+E now.\"), e.auto_on = u.N(\"auto_on\", \"The editor is configured to be optimized for usage with a Screen Reader.\"), e.auto_off = u.N(\"auto_off\", \"The editor is configured to never be optimized for usage with a Screen Reader, which is not the case at this time.\"), e.tabFocusModeOnMsg = u.N(\"tabFocusModeOnMsg\", \"Pressing Tab in the current editor will move focus to the next focusable element. Toggle this behavior by pressing {0}.\"), e.tabFocusModeOnMsgNoKb = u.N(\"tabFocusModeOnMsgNoKb\", \"Pressing Tab in the current editor will move focus to the next focusable element. The command {0} is currently not triggerable by a keybinding.\"), e.tabFocusModeOffMsg = u.N(\"tabFocusModeOffMsg\", \"Pressing Tab in the current editor will insert the tab character. Toggle this behavior by pressing {0}.\"), e.tabFocusModeOffMsgNoKb = u.N(\"tabFocusModeOffMsgNoKb\", \"Pressing Tab in the current editor will insert the tab character. The command {0} is currently not triggerable by a keybinding.\"), e.openDocMac = u.N(\"openDocMac\", \"Press Command+H now to open a browser window with more information related to editor accessibility.\"), e.openDocWinLinux = u.N(\"openDocWinLinux\", \"Press Control+H now to open a browser window with more information related to editor accessibility.\"), e.outroMsg = u.N(\"outroMsg\", \"You can dismiss this tooltip and return to the editor by pressing Escape or Shift+Escape.\"), e.showAccessibilityHelpAction = u.N(\"showAccessibilityHelpAction\", \"Show Accessibility Help\")\n                }(n || (n = {})),\n                function(e) {\n                    e.inspectTokensAction = u.N(\"inspectTokens\", \"Developer: Inspect Tokens\")\n                }(o || (o = {})),\n                function(e) {\n                    e.gotoLineActionLabel = u.N(\"gotoLineActionLabel\", \"Go to Line/Column...\")\n                }(s || (s = {})),\n                function(e) {\n                    e.helpQuickAccessActionLabel = u.N(\"helpQuickAccess\", \"Show all Quick Access Providers\")\n                }(r || (r = {})),\n                function(e) {\n                    e.quickCommandActionLabel = u.N(\"quickCommandActionLabel\", \"Command Palette\"), e.quickCommandHelp = u.N(\"quickCommandActionHelp\", \"Show And Run Commands\")\n                }(a || (a = {})),\n                function(e) {\n                    e.quickOutlineActionLabel = u.N(\"quickOutlineActionLabel\", \"Go to Symbol...\"), e.quickOutlineByCategoryActionLabel = u.N(\"quickOutlineByCategoryActionLabel\", \"Go to Symbol by Category...\")\n                }(l || (l = {})),\n                function(e) {\n                    e.editorViewAccessibleLabel = u.N(\"editorViewAccessibleLabel\", \"Editor content\"), e.accessibilityHelpMessage = u.N(\"accessibilityHelpMessage\", \"Press Alt+F1 for Accessibility Options.\")\n                }(c || (c = {})),\n                function(e) {\n                    e.toggleHighContrast = u.N(\"toggleHighContrast\", \"Toggle High Contrast Theme\")\n                }(d || (d = {})),\n                function(e) {\n                    e.bulkEditServiceSummary = u.N(\"bulkEditServiceSummary\", \"Made {0} edits in {1} files\")\n                }(h || (h = {}))\n            },\n            27869: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    CE: () => V,\n                    DD: () => w,\n                    DS: () => K,\n                    Dl: () => S,\n                    HV: () => ee,\n                    Jn: () => Z,\n                    Kh: () => a,\n                    L7: () => J,\n                    Mm: () => l,\n                    N5: () => T,\n                    Qb: () => Y,\n                    Re: () => P,\n                    TC: () => x,\n                    To: () => X,\n                    UP: () => W,\n                    Vs: () => B,\n                    YF: () => G,\n                    Ym: () => v,\n                    Yp: () => C,\n                    eS: () => R,\n                    e_: () => L,\n                    f9: () => te,\n                    fY: () => p,\n                    hw: () => _,\n                    kp: () => D,\n                    lK: () => O,\n                    lS: () => q,\n                    m$: () => $,\n                    m1: () => z,\n                    m3: () => Q,\n                    m9: () => A,\n                    n0: () => g,\n                    oV: () => U,\n                    r0: () => H,\n                    tR: () => m,\n                    ts: () => j,\n                    x3: () => E,\n                    zJ: () => F,\n                    zk: () => y,\n                    zu: () => I,\n                    zw: () => k\n                });\n                var n = i(63580),\n                    o = i(41264),\n                    s = i(73910),\n                    r = i(97781);\n                const a = (0, s.P6)(\"editor.lineHighlightBackground\", {\n                        dark: null,\n                        light: null,\n                        hc: null\n                    }, n.N(\"lineHighlight\", \"Background color for the highlight of line at the cursor position.\")),\n                    l = (0, s.P6)(\"editor.lineHighlightBorder\", {\n                        dark: \"#282828\",\n                        light: \"#eeeeee\",\n                        hc: \"#f38518\"\n                    }, n.N(\"lineHighlightBorderBox\", \"Background color for the border around the line at the cursor position.\")),\n                    c = (0, s.P6)(\"editor.rangeHighlightBackground\", {\n                        dark: \"#ffffff0b\",\n                        light: \"#fdff0033\",\n                        hc: null\n                    }, n.N(\"rangeHighlight\", \"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),\n                    d = (0, s.P6)(\"editor.rangeHighlightBorder\", {\n                        dark: null,\n                        light: null,\n                        hc: s.xL\n                    }, n.N(\"rangeHighlightBorder\", \"Background color of the border around highlighted ranges.\"), !0),\n                    h = (0, s.P6)(\"editor.symbolHighlightBackground\", {\n                        dark: s.MU,\n                        light: s.MU,\n                        hc: null\n                    }, n.N(\"symbolHighlight\", \"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),\n                    u = (0, s.P6)(\"editor.symbolHighlightBorder\", {\n                        dark: null,\n                        light: null,\n                        hc: s.xL\n                    }, n.N(\"symbolHighlightBorder\", \"Background color of the border around highlighted symbols.\"), !0),\n                    g = (0, s.P6)(\"editorCursor.foreground\", {\n                        dark: \"#AEAFAD\",\n                        light: o.Il.black,\n                        hc: o.Il.white\n                    }, n.N(\"caret\", \"Color of the editor cursor.\")),\n                    p = (0, s.P6)(\"editorCursor.background\", null, n.N(\"editorCursorBackground\", \"The background color of the editor cursor. Allows customizing the color of a character overlapped by a block cursor.\")),\n                    f = (0, s.P6)(\"editorWhitespace.foreground\", {\n                        dark: \"#e3e4e229\",\n                        light: \"#33333333\",\n                        hc: \"#e3e4e229\"\n                    }, n.N(\"editorWhitespaces\", \"Color of whitespace characters in the editor.\")),\n                    m = (0, s.P6)(\"editorIndentGuide.background\", {\n                        dark: f,\n                        light: f,\n                        hc: f\n                    }, n.N(\"editorIndentGuides\", \"Color of the editor indentation guides.\")),\n                    v = (0, s.P6)(\"editorIndentGuide.activeBackground\", {\n                        dark: f,\n                        light: f,\n                        hc: f\n                    }, n.N(\"editorActiveIndentGuide\", \"Color of the active editor indentation guides.\")),\n                    _ = (0, s.P6)(\"editorLineNumber.foreground\", {\n                        dark: \"#858585\",\n                        light: \"#237893\",\n                        hc: o.Il.white\n                    }, n.N(\"editorLineNumbers\", \"Color of editor line numbers.\")),\n                    b = (0, s.P6)(\"editorActiveLineNumber.foreground\", {\n                        dark: \"#b4b4b4\",\n                        light: \"#0B216F\",\n                        hc: s.xL\n                    }, n.N(\"editorActiveLineNumber\", \"Color of editor active line number\"), !1, n.N(\"deprecatedEditorActiveLineNumber\", \"Id is deprecated. Use 'editorLineNumber.activeForeground' instead.\")),\n                    w = (0, s.P6)(\"editorLineNumber.activeForeground\", {\n                        dark: b,\n                        light: b,\n                        hc: b\n                    }, n.N(\"editorActiveLineNumber\", \"Color of editor active line number\")),\n                    y = (0, s.P6)(\"editorRuler.foreground\", {\n                        dark: \"#5A5A5A\",\n                        light: o.Il.lightgrey,\n                        hc: o.Il.white\n                    }, n.N(\"editorRuler\", \"Color of the editor rulers.\")),\n                    C = (0, s.P6)(\"editorCodeLens.foreground\", {\n                        dark: \"#999999\",\n                        light: \"#919191\",\n                        hc: \"#999999\"\n                    }, n.N(\"editorCodeLensForeground\", \"Foreground color of editor CodeLens\")),\n                    x = (0, s.P6)(\"editorBracketMatch.background\", {\n                        dark: \"#0064001a\",\n                        light: \"#0064001a\",\n                        hc: \"#0064001a\"\n                    }, n.N(\"editorBracketMatchBackground\", \"Background color behind matching brackets\")),\n                    S = (0, s.P6)(\"editorBracketMatch.border\", {\n                        dark: \"#888\",\n                        light: \"#B9B9B9\",\n                        hc: s.lR\n                    }, n.N(\"editorBracketMatchBorder\", \"Color for matching brackets boxes\")),\n                    k = (0, s.P6)(\"editorOverviewRuler.border\", {\n                        dark: \"#7f7f7f4d\",\n                        light: \"#7f7f7f4d\",\n                        hc: \"#7f7f7f4d\"\n                    }, n.N(\"editorOverviewRulerBorder\", \"Color of the overview ruler border.\")),\n                    L = (0, s.P6)(\"editorOverviewRuler.background\", null, n.N(\"editorOverviewRulerBackground\", \"Background color of the editor overview ruler. Only used when the minimap is enabled and placed on the right side of the editor.\")),\n                    N = (0, s.P6)(\"editorGutter.background\", {\n                        dark: s.cv,\n                        light: s.cv,\n                        hc: s.cv\n                    }, n.N(\"editorGutter\", \"Background color of the editor gutter. The gutter contains the glyph margins and the line numbers.\")),\n                    D = (0, s.P6)(\"editorUnnecessaryCode.border\", {\n                        dark: null,\n                        light: null,\n                        hc: o.Il.fromHex(\"#fff\").transparent(.8)\n                    }, n.N(\"unnecessaryCodeBorder\", \"Border color of unnecessary (unused) source code in the editor.\")),\n                    I = (0, s.P6)(\"editorUnnecessaryCode.opacity\", {\n                        dark: o.Il.fromHex(\"#000a\"),\n                        light: o.Il.fromHex(\"#0007\"),\n                        hc: null\n                    }, n.N(\"unnecessaryCodeOpacity\", \"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.\")),\n                    E = (0, s.P6)(\"editorGhostText.border\", {\n                        dark: null,\n                        light: null,\n                        hc: o.Il.fromHex(\"#fff\").transparent(.8)\n                    }, n.N(\"editorGhostTextBorder\", \"Border color of ghost text in the editor.\")),\n                    T = (0, s.P6)(\"editorGhostText.foreground\", {\n                        dark: o.Il.fromHex(\"#ffffff56\"),\n                        light: o.Il.fromHex(\"#0007\"),\n                        hc: null\n                    }, n.N(\"editorGhostTextForeground\", \"Foreground color of the ghost text in the editor.\")),\n                    M = new o.Il(new o.VS(0, 122, 204, .6)),\n                    A = (0, s.P6)(\"editorOverviewRuler.rangeHighlightForeground\", {\n                        dark: M,\n                        light: M,\n                        hc: M\n                    }, n.N(\"overviewRulerRangeHighlight\", \"Overview ruler marker color for range highlights. The color must not be opaque so as not to hide underlying decorations.\"), !0),\n                    O = (0, s.P6)(\"editorOverviewRuler.errorForeground\", {\n                        dark: new o.Il(new o.VS(255, 18, 18, .7)),\n                        light: new o.Il(new o.VS(255, 18, 18, .7)),\n                        hc: new o.Il(new o.VS(255, 50, 50, 1))\n                    }, n.N(\"overviewRuleError\", \"Overview ruler marker color for errors.\")),\n                    P = (0, s.P6)(\"editorOverviewRuler.warningForeground\", {\n                        dark: s.uo,\n                        light: s.uo,\n                        hc: s.pW\n                    }, n.N(\"overviewRuleWarning\", \"Overview ruler marker color for warnings.\")),\n                    R = (0, s.P6)(\"editorOverviewRuler.infoForeground\", {\n                        dark: s.c6,\n                        light: s.c6,\n                        hc: s.T8\n                    }, n.N(\"overviewRuleInfo\", \"Overview ruler marker color for infos.\")),\n                    F = (0, s.P6)(\"editorBracketHighlight.foreground1\", {\n                        dark: \"#FFD700\",\n                        light: \"#0431FAFF\",\n                        hc: \"#FFD700\"\n                    }, n.N(\"editorBracketHighlightForeground1\", \"Foreground color of brackets (1). Requires enabling bracket pair colorization.\")),\n                    B = (0, s.P6)(\"editorBracketHighlight.foreground2\", {\n                        dark: \"#DA70D6\",\n                        light: \"#319331FF\",\n                        hc: \"#DA70D6\"\n                    }, n.N(\"editorBracketHighlightForeground2\", \"Foreground color of brackets (2). Requires enabling bracket pair colorization.\")),\n                    V = (0, s.P6)(\"editorBracketHighlight.foreground3\", {\n                        dark: \"#179FFF\",\n                        light: \"#7B3814FF\",\n                        hc: \"#87CEFA\"\n                    }, n.N(\"editorBracketHighlightForeground3\", \"Foreground color of brackets (3). Requires enabling bracket pair colorization.\")),\n                    W = (0, s.P6)(\"editorBracketHighlight.foreground4\", {\n                        dark: \"#00000000\",\n                        light: \"#00000000\",\n                        hc: \"#00000000\"\n                    }, n.N(\"editorBracketHighlightForeground4\", \"Foreground color of brackets (4). Requires enabling bracket pair colorization.\")),\n                    H = (0, s.P6)(\"editorBracketHighlight.foreground5\", {\n                        dark: \"#00000000\",\n                        light: \"#00000000\",\n                        hc: \"#00000000\"\n                    }, n.N(\"editorBracketHighlightForeground5\", \"Foreground color of brackets (5). Requires enabling bracket pair colorization.\")),\n                    z = (0, s.P6)(\"editorBracketHighlight.foreground6\", {\n                        dark: \"#00000000\",\n                        light: \"#00000000\",\n                        hc: \"#00000000\"\n                    }, n.N(\"editorBracketHighlightForeground6\", \"Foreground color of brackets (6). Requires enabling bracket pair colorization.\")),\n                    j = (0, s.P6)(\"editorBracketHighlight.unexpectedBracket.foreground\", {\n                        dark: new o.Il(new o.VS(255, 18, 18, .8)),\n                        light: new o.Il(new o.VS(255, 18, 18, .8)),\n                        hc: new o.Il(new o.VS(255, 50, 50, 1))\n                    }, n.N(\"editorBracketHighlightUnexpectedBracketForeground\", \"Foreground color of unexpected brackets.\")),\n                    U = (0, s.P6)(\"editorBracketPairGuide.background1\", {\n                        dark: \"#00000000\",\n                        light: \"#00000000\",\n                        hc: \"#00000000\"\n                    }, n.N(\"editorBracketPairGuide.background1\", \"Background color of inactive bracket pair guides (1). Requires enabling bracket pair guides.\")),\n                    $ = (0, s.P6)(\"editorBracketPairGuide.background2\", {\n                        dark: \"#00000000\",\n                        light: \"#00000000\",\n                        hc: \"#00000000\"\n                    }, n.N(\"editorBracketPairGuide.background2\", \"Background color of inactive bracket pair guides (2). Requires enabling bracket pair guides.\")),\n                    K = (0, s.P6)(\"editorBracketPairGuide.background3\", {\n                        dark: \"#00000000\",\n                        light: \"#00000000\",\n                        hc: \"#00000000\"\n                    }, n.N(\"editorBracketPairGuide.background3\", \"Background color of inactive bracket pair guides (3). Requires enabling bracket pair guides.\")),\n                    q = (0, s.P6)(\"editorBracketPairGuide.background4\", {\n                        dark: \"#00000000\",\n                        light: \"#00000000\",\n                        hc: \"#00000000\"\n                    }, n.N(\"editorBracketPairGuide.background4\", \"Background color of inactive bracket pair guides (4). Requires enabling bracket pair guides.\")),\n                    Z = (0, s.P6)(\"editorBracketPairGuide.background5\", {\n                        dark: \"#00000000\",\n                        light: \"#00000000\",\n                        hc: \"#00000000\"\n                    }, n.N(\"editorBracketPairGuide.background5\", \"Background color of inactive bracket pair guides (5). Requires enabling bracket pair guides.\")),\n                    G = (0, s.P6)(\"editorBracketPairGuide.background6\", {\n                        dark: \"#00000000\",\n                        light: \"#00000000\",\n                        hc: \"#00000000\"\n                    }, n.N(\"editorBracketPairGuide.background6\", \"Background color of inactive bracket pair guides (6). Requires enabling bracket pair guides.\")),\n                    Y = (0, s.P6)(\"editorBracketPairGuide.activeBackground1\", {\n                        dark: \"#00000000\",\n                        light: \"#00000000\",\n                        hc: \"#00000000\"\n                    }, n.N(\"editorBracketPairGuide.activeBackground1\", \"Background color of active bracket pair guides (1). Requires enabling bracket pair guides.\")),\n                    Q = (0, s.P6)(\"editorBracketPairGuide.activeBackground2\", {\n                        dark: \"#00000000\",\n                        light: \"#00000000\",\n                        hc: \"#00000000\"\n                    }, n.N(\"editorBracketPairGuide.activeBackground2\", \"Background color of active bracket pair guides (2). Requires enabling bracket pair guides.\")),\n                    X = (0, s.P6)(\"editorBracketPairGuide.activeBackground3\", {\n                        dark: \"#00000000\",\n                        light: \"#00000000\",\n                        hc: \"#00000000\"\n                    }, n.N(\"editorBracketPairGuide.activeBackground3\", \"Background color of active bracket pair guides (3). Requires enabling bracket pair guides.\")),\n                    J = (0, s.P6)(\"editorBracketPairGuide.activeBackground4\", {\n                        dark: \"#00000000\",\n                        light: \"#00000000\",\n                        hc: \"#00000000\"\n                    }, n.N(\"editorBracketPairGuide.activeBackground4\", \"Background color of active bracket pair guides (4). Requires enabling bracket pair guides.\")),\n                    ee = (0, s.P6)(\"editorBracketPairGuide.activeBackground5\", {\n                        dark: \"#00000000\",\n                        light: \"#00000000\",\n                        hc: \"#00000000\"\n                    }, n.N(\"editorBracketPairGuide.activeBackground5\", \"Background color of active bracket pair guides (5). Requires enabling bracket pair guides.\")),\n                    te = (0, s.P6)(\"editorBracketPairGuide.activeBackground6\", {\n                        dark: \"#00000000\",\n                        light: \"#00000000\",\n                        hc: \"#00000000\"\n                    }, n.N(\"editorBracketPairGuide.activeBackground6\", \"Background color of active bracket pair guides (6). Requires enabling bracket pair guides.\"));\n                (0, r.Ic)(((e, t) => {\n                    const i = e.getColor(s.cv);\n                    i && t.addRule(`.monaco-editor, .monaco-editor-background, .monaco-editor .inputarea.ime-input { background-color: ${i}; }`);\n                    const n = e.getColor(s.NO);\n                    n && t.addRule(`.monaco-editor, .monaco-editor .inputarea.ime-input { color: ${n}; }`);\n                    const o = e.getColor(N);\n                    o && t.addRule(`.monaco-editor .margin { background-color: ${o}; }`);\n                    const r = e.getColor(c);\n                    r && t.addRule(`.monaco-editor .rangeHighlight { background-color: ${r}; }`);\n                    const a = e.getColor(d);\n                    a && t.addRule(`.monaco-editor .rangeHighlight { border: 1px ${\"hc\"===e.type?\"dotted\":\"solid\"} ${a}; }`);\n                    const l = e.getColor(h);\n                    l && t.addRule(`.monaco-editor .symbolHighlight { background-color: ${l}; }`);\n                    const g = e.getColor(u);\n                    g && t.addRule(`.monaco-editor .symbolHighlight { border: 1px ${\"hc\"===e.type?\"dotted\":\"solid\"} ${g}; }`);\n                    const p = e.getColor(f);\n                    p && (t.addRule(`.monaco-editor .mtkw { color: ${p} !important; }`), t.addRule(`.monaco-editor .mtkz { color: ${p} !important; }`))\n                }))\n            },\n            92003: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    EY: () => o,\n                    Tj: () => s\n                });\n                class n {\n                    constructor(e, t, i) {\n                        this._colorZoneBrand = void 0, this.from = 0 | e, this.to = 0 | t, this.colorId = 0 | i\n                    }\n                    static compare(e, t) {\n                        return e.colorId === t.colorId ? e.from === t.from ? e.to - t.to : e.from - t.from : e.colorId - t.colorId\n                    }\n                }\n                class o {\n                    constructor(e, t, i) {\n                        this._overviewRulerZoneBrand = void 0, this.startLineNumber = e, this.endLineNumber = t, this.color = i, this._colorZone = null\n                    }\n                    static compare(e, t) {\n                        return e.color === t.color ? e.startLineNumber === t.startLineNumber ? e.endLineNumber - t.endLineNumber : e.startLineNumber - t.startLineNumber : e.color < t.color ? -1 : 1\n                    }\n                    setColorZone(e) {\n                        this._colorZone = e\n                    }\n                    getColorZones() {\n                        return this._colorZone\n                    }\n                }\n                class s {\n                    constructor(e) {\n                        this._getVerticalOffsetForLine = e, this._zones = [], this._colorZonesInvalid = !1, this._lineHeight = 0, this._domWidth = 0, this._domHeight = 0, this._outerHeight = 0, this._pixelRatio = 1, this._lastAssignedId = 0, this._color2Id = Object.create(null), this._id2Color = []\n                    }\n                    getId2Color() {\n                        return this._id2Color\n                    }\n                    setZones(e) {\n                        this._zones = e, this._zones.sort(o.compare)\n                    }\n                    setLineHeight(e) {\n                        return this._lineHeight !== e && (this._lineHeight = e, this._colorZonesInvalid = !0, !0)\n                    }\n                    setPixelRatio(e) {\n                        this._pixelRatio = e, this._colorZonesInvalid = !0\n                    }\n                    getDOMWidth() {\n                        return this._domWidth\n                    }\n                    getCanvasWidth() {\n                        return this._domWidth * this._pixelRatio\n                    }\n                    setDOMWidth(e) {\n                        return this._domWidth !== e && (this._domWidth = e, this._colorZonesInvalid = !0, !0)\n                    }\n                    getDOMHeight() {\n                        return this._domHeight\n                    }\n                    getCanvasHeight() {\n                        return this._domHeight * this._pixelRatio\n                    }\n                    setDOMHeight(e) {\n                        return this._domHeight !== e && (this._domHeight = e, this._colorZonesInvalid = !0, !0)\n                    }\n                    getOuterHeight() {\n                        return this._outerHeight\n                    }\n                    setOuterHeight(e) {\n                        return this._outerHeight !== e && (this._outerHeight = e, this._colorZonesInvalid = !0, !0)\n                    }\n                    resolveColorZones() {\n                        const e = this._colorZonesInvalid,\n                            t = Math.floor(this._lineHeight),\n                            i = Math.floor(this.getCanvasHeight()),\n                            o = i / Math.floor(this._outerHeight),\n                            s = Math.floor(4 * this._pixelRatio / 2);\n                        let r = [];\n                        for (let a = 0, l = this._zones.length; a < l; a++) {\n                            const l = this._zones[a];\n                            if (!e) {\n                                const e = l.getColorZones();\n                                if (e) {\n                                    r.push(e);\n                                    continue\n                                }\n                            }\n                            const c = Math.floor(o * this._getVerticalOffsetForLine(l.startLineNumber)),\n                                d = Math.floor(o * (this._getVerticalOffsetForLine(l.endLineNumber) + t));\n                            let h = Math.floor((c + d) / 2),\n                                u = d - h;\n                            u < s && (u = s), h - u < 0 && (h = u), h + u > i && (h = i - u);\n                            const g = l.color;\n                            let p = this._color2Id[g];\n                            p || (p = ++this._lastAssignedId, this._color2Id[g] = p, this._id2Color[p] = g);\n                            const f = new n(h - u, h + u, p);\n                            l.setColorZone(f), r.push(f)\n                        }\n                        return this._colorZonesInvalid = !1, r.sort(n.compare), r\n                    }\n                }\n            },\n            92550: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    Kp: () => o,\n                    k: () => a\n                });\n                var n = i(97295);\n                class o {\n                    constructor(e, t, i, n) {\n                        this.startColumn = e, this.endColumn = t, this.className = i, this.type = n, this._lineDecorationBrand = void 0\n                    }\n                    static _equals(e, t) {\n                        return e.startColumn === t.startColumn && e.endColumn === t.endColumn && e.className === t.className && e.type === t.type\n                    }\n                    static equalsArr(e, t) {\n                        const i = e.length;\n                        if (i !== t.length) return !1;\n                        for (let n = 0; n < i; n++)\n                            if (!o._equals(e[n], t[n])) return !1;\n                        return !0\n                    }\n                    static extractWrapped(e, t, i) {\n                        if (0 === e.length) return e;\n                        const n = t + 1,\n                            s = i + 1,\n                            r = i - t,\n                            a = [];\n                        let l = 0;\n                        for (const t of e) t.endColumn <= n || t.startColumn >= s || (a[l++] = new o(Math.max(1, t.startColumn - n + 1), Math.min(r + 1, t.endColumn - n + 1), t.className, t.type));\n                        return a\n                    }\n                    static filter(e, t, i, n) {\n                        if (0 === e.length) return [];\n                        let s = [],\n                            r = 0;\n                        for (let a = 0, l = e.length; a < l; a++) {\n                            const l = e[a],\n                                c = l.range;\n                            if (c.endLineNumber < t || c.startLineNumber > t) continue;\n                            if (c.isEmpty() && (0 === l.type || 3 === l.type)) continue;\n                            const d = c.startLineNumber === t ? c.startColumn : i,\n                                h = c.endLineNumber === t ? c.endColumn : n;\n                            s[r++] = new o(d, h, l.inlineClassName, l.type)\n                        }\n                        return s\n                    }\n                    static _typeCompare(e, t) {\n                        const i = [2, 0, 1, 3];\n                        return i[e] - i[t]\n                    }\n                    static compare(e, t) {\n                        if (e.startColumn !== t.startColumn) return e.startColumn - t.startColumn;\n                        if (e.endColumn !== t.endColumn) return e.endColumn - t.endColumn;\n                        const i = o._typeCompare(e.type, t.type);\n                        return 0 !== i ? i : e.className !== t.className ? e.className < t.className ? -1 : 1 : 0\n                    }\n                }\n                class s {\n                    constructor(e, t, i, n) {\n                        this.startOffset = e, this.endOffset = t, this.className = i, this.metadata = n\n                    }\n                }\n                class r {\n                    constructor() {\n                        this.stopOffsets = [], this.classNames = [], this.metadata = [], this.count = 0\n                    }\n                    static _metadata(e) {\n                        let t = 0;\n                        for (let i = 0, n = e.length; i < n; i++) t |= e[i];\n                        return t\n                    }\n                    consumeLowerThan(e, t, i) {\n                        for (; this.count > 0 && this.stopOffsets[0] < e;) {\n                            let e = 0;\n                            for (; e + 1 < this.count && this.stopOffsets[e] === this.stopOffsets[e + 1];) e++;\n                            i.push(new s(t, this.stopOffsets[e], this.classNames.join(\" \"), r._metadata(this.metadata))), t = this.stopOffsets[e] + 1, this.stopOffsets.splice(0, e + 1), this.classNames.splice(0, e + 1), this.metadata.splice(0, e + 1), this.count -= e + 1\n                        }\n                        return this.count > 0 && t < e && (i.push(new s(t, e - 1, this.classNames.join(\" \"), r._metadata(this.metadata))), t = e), t\n                    }\n                    insert(e, t, i) {\n                        if (0 === this.count || this.stopOffsets[this.count - 1] <= e) this.stopOffsets.push(e), this.classNames.push(t), this.metadata.push(i);\n                        else\n                            for (let n = 0; n < this.count; n++)\n                                if (this.stopOffsets[n] >= e) {\n                                    this.stopOffsets.splice(n, 0, e), this.classNames.splice(n, 0, t), this.metadata.splice(n, 0, i);\n                                    break\n                                } this.count++\n                    }\n                }\n                class a {\n                    static normalize(e, t) {\n                        if (0 === t.length) return [];\n                        let i = [];\n                        const o = new r;\n                        let s = 0;\n                        for (let r = 0, a = t.length; r < a; r++) {\n                            const a = t[r];\n                            let l = a.startColumn,\n                                c = a.endColumn;\n                            const d = a.className,\n                                h = 1 === a.type ? 2 : 2 === a.type ? 4 : 0;\n                            if (l > 1) {\n                                const t = e.charCodeAt(l - 2);\n                                n.ZG(t) && l--\n                            }\n                            if (c > 1) {\n                                const t = e.charCodeAt(c - 2);\n                                n.ZG(t) && c--\n                            }\n                            const u = l - 1,\n                                g = c - 2;\n                            s = o.consumeLowerThan(u, s, i), 0 === o.count && (s = u), o.insert(g, d, h)\n                        }\n                        return o.consumeLowerThan(1073741824, s, i), i\n                    }\n                }\n            },\n            77736: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    IJ: () => l,\n                    Nd: () => c,\n                    d1: () => u,\n                    tF: () => p,\n                    zG: () => a\n                });\n                var n = i(97295),\n                    o = i(50072),\n                    s = i(92550);\n                class r {\n                    constructor(e, t, i) {\n                        this._linePartBrand = void 0, this.endIndex = e, this.type = t, this.metadata = i\n                    }\n                    isWhitespace() {\n                        return !!(1 & this.metadata)\n                    }\n                    isPseudoAfter() {\n                        return !!(4 & this.metadata)\n                    }\n                }\n                class a {\n                    constructor(e, t) {\n                        this.startOffset = e, this.endOffset = t\n                    }\n                    equals(e) {\n                        return this.startOffset === e.startOffset && this.endOffset === e.endOffset\n                    }\n                }\n                class l {\n                    constructor(e, t, i, n, o, r, a, l, c, d, h, u, g, p, f, m, v, _, b) {\n                        this.useMonospaceOptimizations = e, this.canUseHalfwidthRightwardsArrow = t, this.lineContent = i, this.continuesWithWrappedLine = n, this.isBasicASCII = o, this.containsRTL = r, this.fauxIndentLength = a, this.lineTokens = l, this.lineDecorations = c.sort(s.Kp.compare), this.tabSize = d, this.startVisibleColumn = h, this.spaceWidth = u, this.stopRenderingLineAfter = f, this.renderWhitespace = \"all\" === m ? 4 : \"boundary\" === m ? 1 : \"selection\" === m ? 2 : \"trailing\" === m ? 3 : 0, this.renderControlCharacters = v, this.fontLigatures = _, this.selectionsOnLine = b && b.sort(((e, t) => e.startOffset < t.startOffset ? -1 : 1));\n                        Math.abs(p - u) < Math.abs(g - u) ? (this.renderSpaceWidth = p, this.renderSpaceCharCode = 11825) : (this.renderSpaceWidth = g, this.renderSpaceCharCode = 183)\n                    }\n                    sameSelection(e) {\n                        if (null === this.selectionsOnLine) return null === e;\n                        if (null === e) return !1;\n                        if (e.length !== this.selectionsOnLine.length) return !1;\n                        for (let t = 0; t < this.selectionsOnLine.length; t++)\n                            if (!this.selectionsOnLine[t].equals(e[t])) return !1;\n                        return !0\n                    }\n                    equals(e) {\n                        return this.useMonospaceOptimizations === e.useMonospaceOptimizations && this.canUseHalfwidthRightwardsArrow === e.canUseHalfwidthRightwardsArrow && this.lineContent === e.lineContent && this.continuesWithWrappedLine === e.continuesWithWrappedLine && this.isBasicASCII === e.isBasicASCII && this.containsRTL === e.containsRTL && this.fauxIndentLength === e.fauxIndentLength && this.tabSize === e.tabSize && this.startVisibleColumn === e.startVisibleColumn && this.spaceWidth === e.spaceWidth && this.renderSpaceWidth === e.renderSpaceWidth && this.renderSpaceCharCode === e.renderSpaceCharCode && this.stopRenderingLineAfter === e.stopRenderingLineAfter && this.renderWhitespace === e.renderWhitespace && this.renderControlCharacters === e.renderControlCharacters && this.fontLigatures === e.fontLigatures && s.Kp.equalsArr(this.lineDecorations, e.lineDecorations) && this.lineTokens.equals(e.lineTokens) && this.sameSelection(e.selectionsOnLine)\n                    }\n                }\n                class c {\n                    constructor(e, t) {\n                        this.partIndex = e, this.charIndex = t\n                    }\n                }\n                class d {\n                    constructor(e, t) {\n                        this.length = e, this._data = new Uint32Array(this.length), this._absoluteOffsets = new Uint32Array(this.length)\n                    }\n                    static getPartIndex(e) {\n                        return (4294901760 & e) >>> 16\n                    }\n                    static getCharIndex(e) {\n                        return (65535 & e) >>> 0\n                    }\n                    setColumnInfo(e, t, i, n) {\n                        const o = (t << 16 | i << 0) >>> 0;\n                        this._data[e - 1] = o, this._absoluteOffsets[e - 1] = n + i\n                    }\n                    getAbsoluteOffset(e) {\n                        return 0 === this._absoluteOffsets.length ? 0 : this._absoluteOffsets[e - 1]\n                    }\n                    charOffsetToPartData(e) {\n                        return 0 === this.length ? 0 : e < 0 ? this._data[0] : e >= this.length ? this._data[this.length - 1] : this._data[e]\n                    }\n                    getDomPosition(e) {\n                        const t = this.charOffsetToPartData(e - 1),\n                            i = d.getPartIndex(t),\n                            n = d.getCharIndex(t);\n                        return new c(i, n)\n                    }\n                    getColumn(e, t) {\n                        return this.partDataToCharOffset(e.partIndex, t, e.charIndex) + 1\n                    }\n                    partDataToCharOffset(e, t, i) {\n                        if (0 === this.length) return 0;\n                        let n = (e << 16 | i << 0) >>> 0,\n                            o = 0,\n                            s = this.length - 1;\n                        for (; o + 1 < s;) {\n                            let e = o + s >>> 1,\n                                t = this._data[e];\n                            if (t === n) return e;\n                            t > n ? s = e : o = e\n                        }\n                        if (o === s) return o;\n                        let r = this._data[o],\n                            a = this._data[s];\n                        if (r === n) return o;\n                        if (a === n) return s;\n                        let l, c = d.getPartIndex(r),\n                            h = d.getCharIndex(r);\n                        return l = c !== d.getPartIndex(a) ? t : d.getCharIndex(a), i - h <= l - i ? o : s\n                    }\n                }\n                class h {\n                    constructor(e, t, i) {\n                        this._renderLineOutputBrand = void 0, this.characterMapping = e, this.containsRTL = t, this.containsForeignElements = i\n                    }\n                }\n\n                function u(e, t) {\n                    if (0 === e.lineContent.length) {\n                        if (e.lineDecorations.length > 0) {\n                            t.appendASCIIString(\"<span>\");\n                            let i = 0,\n                                n = 0,\n                                o = 0;\n                            for (const s of e.lineDecorations) 1 !== s.type && 2 !== s.type || (t.appendASCIIString('<span class=\"'), t.appendASCIIString(s.className), t.appendASCIIString('\"></span>'), 1 === s.type && (o |= 1, i++), 2 === s.type && (o |= 2, n++));\n                            t.appendASCIIString(\"</span>\");\n                            const s = new d(1, i + n);\n                            return s.setColumnInfo(1, i, 0, 0), new h(s, !1, o)\n                        }\n                        return t.appendASCIIString(\"<span><span></span></span>\"), new h(new d(0, 0), !1, 0)\n                    }\n                    return function(e, t) {\n                        const i = e.fontIsMonospace,\n                            o = e.canUseHalfwidthRightwardsArrow,\n                            s = e.containsForeignElements,\n                            r = e.lineContent,\n                            a = e.len,\n                            l = e.isOverflowing,\n                            c = e.parts,\n                            u = e.fauxIndentLength,\n                            g = e.tabSize,\n                            p = e.startVisibleColumn,\n                            f = e.containsRTL,\n                            _ = e.spaceWidth,\n                            b = e.renderSpaceCharCode,\n                            w = e.renderWhitespace,\n                            y = e.renderControlCharacters,\n                            C = new d(a + 1, c.length);\n                        let x = !1,\n                            S = 0,\n                            k = p,\n                            L = 0,\n                            N = 0,\n                            D = 0,\n                            I = 0;\n                        f ? t.appendASCIIString('<span dir=\"ltr\">') : t.appendASCIIString(\"<span>\");\n                        for (let e = 0, l = c.length; e < l; e++) {\n                            I += D;\n                            const l = c[e],\n                                d = l.endIndex,\n                                h = l.type,\n                                p = 0 !== w && l.isWhitespace(),\n                                f = p && !i && (\"mtkw\" === h || !s),\n                                E = S === d && l.isPseudoAfter();\n                            if (L = 0, t.appendASCIIString('<span class=\"'), t.appendASCIIString(f ? \"mtkz\" : h), t.appendASCII(34), p) {\n                                let i = 0; {\n                                    let e = S,\n                                        t = k;\n                                    for (; e < d; e++) {\n                                        const n = 0 | (9 === r.charCodeAt(e) ? g - t % g : 1);\n                                        i += n, e >= u && (t += n)\n                                    }\n                                }\n                                for (f && (t.appendASCIIString(' style=\"width:'), t.appendASCIIString(String(_ * i)), t.appendASCIIString('px\"')), t.appendASCII(62); S < d; S++) {\n                                    C.setColumnInfo(S + 1, e - N, L, I), N = 0;\n                                    let i;\n                                    if (9 === r.charCodeAt(S)) {\n                                        i = g - k % g | 0, !o || i > 1 ? t.write1(8594) : t.write1(65515);\n                                        for (let e = 2; e <= i; e++) t.write1(160)\n                                    } else i = 1, t.write1(b);\n                                    L += i, S >= u && (k += i)\n                                }\n                                D = i\n                            } else {\n                                let i = 0;\n                                for (t.appendASCII(62); S < d; S++) {\n                                    C.setColumnInfo(S + 1, e - N, L, I), N = 0;\n                                    const o = r.charCodeAt(S);\n                                    let s = 1,\n                                        a = 1;\n                                    switch (o) {\n                                        case 9:\n                                            s = g - k % g, a = s;\n                                            for (let e = 1; e <= s; e++) t.write1(160);\n                                            break;\n                                        case 32:\n                                            t.write1(160);\n                                            break;\n                                        case 60:\n                                            t.appendASCIIString(\"&lt;\");\n                                            break;\n                                        case 62:\n                                            t.appendASCIIString(\"&gt;\");\n                                            break;\n                                        case 38:\n                                            t.appendASCIIString(\"&amp;\");\n                                            break;\n                                        case 0:\n                                            y ? t.write1(9216) : t.appendASCIIString(\"&#00;\");\n                                            break;\n                                        case 65279:\n                                        case 8232:\n                                        case 8233:\n                                        case 133:\n                                            t.write1(65533);\n                                            break;\n                                        default:\n                                            n.K7(o) && a++, y && o < 32 ? t.write1(9216 + o) : y && 127 === o ? t.write1(9249) : y && m(o) ? (t.appendASCIIString(\"[U+\"), t.appendASCIIString(v(o)), t.appendASCIIString(\"]\"), s = 8) : t.write1(o)\n                                    }\n                                    L += s, i += s, S >= u && (k += a)\n                                }\n                                D = i\n                            }\n                            E ? N++ : N = 0, S >= a && !x && l.isPseudoAfter() && (x = !0, C.setColumnInfo(S + 1, e, L, I)), t.appendASCIIString(\"</span>\")\n                        }\n                        x || C.setColumnInfo(a + 1, c.length - 1, L, I);\n                        l && t.appendASCIIString(\"<span>&hellip;</span>\");\n                        return t.appendASCIIString(\"</span>\"), new h(C, f, s)\n                    }(function(e) {\n                        const t = e.lineContent;\n                        let i, o; - 1 !== e.stopRenderingLineAfter && e.stopRenderingLineAfter < t.length ? (i = !0, o = e.stopRenderingLineAfter) : (i = !1, o = t.length);\n                        let a = function(e, t, i) {\n                            let n = [],\n                                o = 0;\n                            t > 0 && (n[o++] = new r(t, \"\", 0));\n                            for (let s = 0, a = e.getCount(); s < a; s++) {\n                                const a = e.getEndOffset(s);\n                                if (a <= t) continue;\n                                const l = e.getClassName(s);\n                                if (a >= i) {\n                                    n[o++] = new r(i, l, 0);\n                                    break\n                                }\n                                n[o++] = new r(a, l, 0)\n                            }\n                            return n\n                        }(e.lineTokens, e.fauxIndentLength, o);\n                        (4 === e.renderWhitespace || 1 === e.renderWhitespace || 2 === e.renderWhitespace && e.selectionsOnLine || 3 === e.renderWhitespace) && (a = function(e, t, i, o) {\n                            const s = e.continuesWithWrappedLine,\n                                a = e.fauxIndentLength,\n                                l = e.tabSize,\n                                c = e.startVisibleColumn,\n                                d = e.useMonospaceOptimizations,\n                                h = e.selectionsOnLine,\n                                u = 1 === e.renderWhitespace,\n                                g = 3 === e.renderWhitespace,\n                                p = e.renderSpaceWidth !== e.spaceWidth;\n                            let f = [],\n                                m = 0,\n                                v = 0,\n                                _ = o[v].type,\n                                b = o[v].endIndex;\n                            const w = o.length;\n                            let y, C = !1,\n                                x = n.LC(t); - 1 === x ? (C = !0, x = i, y = i) : y = n.ow(t);\n                            let S = !1,\n                                k = 0,\n                                L = h && h[k],\n                                N = c % l;\n                            for (let e = a; e < i; e++) {\n                                const s = t.charCodeAt(e);\n                                let c;\n                                if (L && e >= L.endOffset && (k++, L = h && h[k]), e < x || e > y) c = !0;\n                                else if (9 === s) c = !0;\n                                else if (32 === s)\n                                    if (u)\n                                        if (S) c = !0;\n                                        else {\n                                            const n = e + 1 < i ? t.charCodeAt(e + 1) : 0;\n                                            c = 32 === n || 9 === n\n                                        }\n                                else c = !0;\n                                else c = !1;\n                                if (c && h && (c = !!L && L.startOffset <= e && L.endOffset > e), c && g && (c = C || e > y), S) {\n                                    if (!c || !d && N >= l) {\n                                        if (p) {\n                                            for (let t = (m > 0 ? f[m - 1].endIndex : a) + 1; t <= e; t++) f[m++] = new r(t, \"mtkw\", 1)\n                                        } else f[m++] = new r(e, \"mtkw\", 1);\n                                        N %= l\n                                    }\n                                } else(e === b || c && e > a) && (f[m++] = new r(e, _, 0), N %= l);\n                                for (9 === s ? N = l : n.K7(s) ? N += 2 : N++, S = c; e === b && (v++, v < w);) _ = o[v].type, b = o[v].endIndex\n                            }\n                            let D = !1;\n                            if (S)\n                                if (s && u) {\n                                    let e = i > 0 ? t.charCodeAt(i - 1) : 0,\n                                        n = i > 1 ? t.charCodeAt(i - 2) : 0;\n                                    32 === e && 32 !== n && 9 !== n || (D = !0)\n                                } else D = !0;\n                            if (D)\n                                if (p) {\n                                    for (let e = (m > 0 ? f[m - 1].endIndex : a) + 1; e <= i; e++) f[m++] = new r(e, \"mtkw\", 1)\n                                } else f[m++] = new r(i, \"mtkw\", 1);\n                            else f[m++] = new r(i, _, 0);\n                            return f\n                        }(e, t, o, a));\n                        let l = 0;\n                        if (e.lineDecorations.length > 0) {\n                            for (let t = 0, i = e.lineDecorations.length; t < i; t++) {\n                                const i = e.lineDecorations[t];\n                                3 === i.type || 1 === i.type ? l |= 1 : 2 === i.type && (l |= 2)\n                            }\n                            a = function(e, t, i, n) {\n                                n.sort(s.Kp.compare);\n                                const o = s.k.normalize(e, n),\n                                    a = o.length;\n                                let l = 0,\n                                    c = [],\n                                    d = 0,\n                                    h = 0;\n                                for (let e = 0, t = i.length; e < t; e++) {\n                                    const t = i[e],\n                                        n = t.endIndex,\n                                        s = t.type,\n                                        u = t.metadata;\n                                    for (; l < a && o[l].startOffset < n;) {\n                                        const e = o[l];\n                                        if (e.startOffset > h && (h = e.startOffset, c[d++] = new r(h, s, u)), !(e.endOffset + 1 <= n)) {\n                                            h = n, c[d++] = new r(h, s + \" \" + e.className, u | e.metadata);\n                                            break\n                                        }\n                                        h = e.endOffset + 1, c[d++] = new r(h, s + \" \" + e.className, u | e.metadata), l++\n                                    }\n                                    n > h && (h = n, c[d++] = new r(h, s, u))\n                                }\n                                const u = i[i.length - 1].endIndex;\n                                if (l < a && o[l].startOffset === u)\n                                    for (; l < a && o[l].startOffset === u;) {\n                                        const e = o[l];\n                                        c[d++] = new r(h, e.className, e.metadata), l++\n                                    }\n                                return c\n                            }(t, 0, a, e.lineDecorations)\n                        }\n                        e.containsRTL || (a = function(e, t, i) {\n                            let n = 0,\n                                o = [],\n                                s = 0;\n                            if (i)\n                                for (let i = 0, a = t.length; i < a; i++) {\n                                    const a = t[i],\n                                        l = a.endIndex;\n                                    if (n + 50 < l) {\n                                        const t = a.type,\n                                            i = a.metadata;\n                                        let c = -1,\n                                            d = n;\n                                        for (let a = n; a < l; a++) 32 === e.charCodeAt(a) && (c = a), -1 !== c && a - d >= 50 && (o[s++] = new r(c + 1, t, i), d = c + 1, c = -1);\n                                        d !== l && (o[s++] = new r(l, t, i))\n                                    } else o[s++] = a;\n                                    n = l\n                                } else\n                                    for (let e = 0, i = t.length; e < i; e++) {\n                                        const i = t[e],\n                                            a = i.endIndex;\n                                        let l = a - n;\n                                        if (l > 50) {\n                                            const e = i.type,\n                                                t = i.metadata,\n                                                c = Math.ceil(l / 50);\n                                            for (let i = 1; i < c; i++) {\n                                                let a = n + 50 * i;\n                                                o[s++] = new r(a, e, t)\n                                            }\n                                            o[s++] = new r(a, e, t)\n                                        } else o[s++] = i;\n                                        n = a\n                                    }\n                            return o\n                        }(t, a, !e.isBasicASCII || e.fontLigatures));\n                        e.renderControlCharacters && !e.isBasicASCII && (a = function(e, t) {\n                            let i = [],\n                                n = new r(0, \"\", 0),\n                                o = 0;\n                            for (const s of t) {\n                                const t = s.endIndex;\n                                for (; o < t; o++) {\n                                    m(e.charCodeAt(o)) && (o > n.endIndex && (n = new r(o, s.type, s.metadata), i.push(n)), n = new r(o + 1, \"mtkcontrol\", s.metadata), i.push(n))\n                                }\n                                o > n.endIndex && (n = new r(t, s.type, s.metadata), i.push(n))\n                            }\n                            return i\n                        }(t, a));\n                        return new f(e.useMonospaceOptimizations, e.canUseHalfwidthRightwardsArrow, t, o, i, a, l, e.fauxIndentLength, e.tabSize, e.startVisibleColumn, e.containsRTL, e.spaceWidth, e.renderSpaceCharCode, e.renderWhitespace, e.renderControlCharacters)\n                    }(e), t)\n                }\n                class g {\n                    constructor(e, t, i, n) {\n                        this.characterMapping = e, this.html = t, this.containsRTL = i, this.containsForeignElements = n\n                    }\n                }\n\n                function p(e) {\n                    let t = (0, o.l$)(1e4),\n                        i = u(e, t);\n                    return new g(i.characterMapping, t.build(), i.containsRTL, i.containsForeignElements)\n                }\n                class f {\n                    constructor(e, t, i, n, o, s, r, a, l, c, d, h, u, g, p) {\n                        this.fontIsMonospace = e, this.canUseHalfwidthRightwardsArrow = t, this.lineContent = i, this.len = n, this.isOverflowing = o, this.parts = s, this.containsForeignElements = r, this.fauxIndentLength = a, this.tabSize = l, this.startVisibleColumn = c, this.containsRTL = d, this.spaceWidth = h, this.renderSpaceCharCode = u, this.renderWhitespace = g, this.renderControlCharacters = p\n                    }\n                }\n\n                function m(e) {\n                    return e < 32 ? 9 !== e : 127 === e || (e >= 8234 && e <= 8238 || e >= 8294 && e <= 8297 || e >= 8206 && e <= 8207 || 1564 === e)\n                }\n\n                function v(e) {\n                    return e.toString(16).toUpperCase().padStart(4, \"0\")\n                }\n            },\n            3544: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    T: () => o,\n                    o: () => s\n                });\n                var n = i(85427);\n                class o {\n                    constructor(e, t) {\n                        this._prefixSumIndexOfResultBrand = void 0, this.index = e, this.remainder = t\n                    }\n                }\n                class s {\n                    constructor(e) {\n                        this.values = e, this.prefixSum = new Uint32Array(e.length), this.prefixSumValidIndex = new Int32Array(1), this.prefixSumValidIndex[0] = -1\n                    }\n                    insertValues(e, t) {\n                        e = (0, n.A)(e);\n                        const i = this.values,\n                            o = this.prefixSum,\n                            s = t.length;\n                        return 0 !== s && (this.values = new Uint32Array(i.length + s), this.values.set(i.subarray(0, e), 0), this.values.set(i.subarray(e), e + s), this.values.set(t, e), e - 1 < this.prefixSumValidIndex[0] && (this.prefixSumValidIndex[0] = e - 1), this.prefixSum = new Uint32Array(this.values.length), this.prefixSumValidIndex[0] >= 0 && this.prefixSum.set(o.subarray(0, this.prefixSumValidIndex[0] + 1)), !0)\n                    }\n                    changeValue(e, t) {\n                        return e = (0, n.A)(e), t = (0, n.A)(t), this.values[e] !== t && (this.values[e] = t, e - 1 < this.prefixSumValidIndex[0] && (this.prefixSumValidIndex[0] = e - 1), !0)\n                    }\n                    removeValues(e, t) {\n                        e = (0, n.A)(e), t = (0, n.A)(t);\n                        const i = this.values,\n                            o = this.prefixSum;\n                        if (e >= i.length) return !1;\n                        let s = i.length - e;\n                        return t >= s && (t = s), 0 !== t && (this.values = new Uint32Array(i.length - t), this.values.set(i.subarray(0, e), 0), this.values.set(i.subarray(e + t), e), this.prefixSum = new Uint32Array(this.values.length), e - 1 < this.prefixSumValidIndex[0] && (this.prefixSumValidIndex[0] = e - 1), this.prefixSumValidIndex[0] >= 0 && this.prefixSum.set(o.subarray(0, this.prefixSumValidIndex[0] + 1)), !0)\n                    }\n                    getTotalSum() {\n                        return 0 === this.values.length ? 0 : this._getPrefixSum(this.values.length - 1)\n                    }\n                    getPrefixSum(e) {\n                        return e < 0 ? 0 : (e = (0, n.A)(e), this._getPrefixSum(e))\n                    }\n                    _getPrefixSum(e) {\n                        if (e <= this.prefixSumValidIndex[0]) return this.prefixSum[e];\n                        let t = this.prefixSumValidIndex[0] + 1;\n                        0 === t && (this.prefixSum[0] = this.values[0], t++), e >= this.values.length && (e = this.values.length - 1);\n                        for (let i = t; i <= e; i++) this.prefixSum[i] = this.prefixSum[i - 1] + this.values[i];\n                        return this.prefixSumValidIndex[0] = Math.max(this.prefixSumValidIndex[0], e), this.prefixSum[e]\n                    }\n                    getIndexOf(e) {\n                        e = Math.floor(e), this.getTotalSum();\n                        let t = 0,\n                            i = this.values.length - 1,\n                            n = 0,\n                            s = 0,\n                            r = 0;\n                        for (; t <= i;)\n                            if (n = t + (i - t) / 2 | 0, s = this.prefixSum[n], r = s - this.values[n], e < r) i = n - 1;\n                            else {\n                                if (!(e >= s)) break;\n                                t = n + 1\n                            } return new o(n, e - r)\n                    }\n                }\n            },\n            13824: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    $l: () => p,\n                    $t: () => u,\n                    IP: () => d,\n                    SQ: () => f,\n                    Wx: () => g,\n                    l_: () => r,\n                    le: () => l,\n                    ud: () => c,\n                    wA: () => h\n                });\n                var n = i(97295),\n                    o = i(50187),\n                    s = i(24314);\n                class r {\n                    constructor(e, t, i, n) {\n                        this._viewportBrand = void 0, this.top = 0 | e, this.left = 0 | t, this.width = 0 | i, this.height = 0 | n\n                    }\n                }\n                class a {\n                    constructor(e, t) {\n                        this.outputLineIndex = e, this.outputOffset = t\n                    }\n                    toString() {\n                        return `${this.outputLineIndex}:${this.outputOffset}`\n                    }\n                    toPosition(e, t) {\n                        const i = this.outputLineIndex > 0 ? t : 0;\n                        return new o.L(e + this.outputLineIndex, i + this.outputOffset + 1)\n                    }\n                }\n                class l {\n                    constructor(e, t, i, n, o) {\n                        this.breakOffsets = e, this.breakOffsetsVisibleColumn = t, this.wrappedTextIndentLength = i, this.injectionOffsets = n, this.injectionOptions = o\n                    }\n                    getInputOffsetOfOutputPosition(e, t) {\n                        let i = 0;\n                        if (i = 0 === e ? t : this.breakOffsets[e - 1] + t, null !== this.injectionOffsets)\n                            for (let e = 0; e < this.injectionOffsets.length && i > this.injectionOffsets[e]; e++) i < this.injectionOffsets[e] + this.injectionOptions[e].content.length ? i = this.injectionOffsets[e] : i -= this.injectionOptions[e].content.length;\n                        return i\n                    }\n                    getOutputPositionOfInputOffset(e, t = 2) {\n                        let i = 0;\n                        if (null !== this.injectionOffsets)\n                            for (let n = 0; n < this.injectionOffsets.length && !(e < this.injectionOffsets[n]) && (1 === t || e !== this.injectionOffsets[n]); n++) i += this.injectionOptions[n].content.length;\n                        return e += i, this.getOutputPositionOfOffsetInUnwrappedLine(e, t)\n                    }\n                    getOutputPositionOfOffsetInUnwrappedLine(e, t = 2) {\n                        let i = 0,\n                            n = this.breakOffsets.length - 1,\n                            o = 0,\n                            s = 0;\n                        for (; i <= n;) {\n                            o = i + (n - i) / 2 | 0;\n                            const r = this.breakOffsets[o];\n                            if (s = o > 0 ? this.breakOffsets[o - 1] : 0, 0 === t)\n                                if (e <= s) n = o - 1;\n                                else {\n                                    if (!(e > r)) break;\n                                    i = o + 1\n                                }\n                            else if (e < s) n = o - 1;\n                            else {\n                                if (!(e >= r)) break;\n                                i = o + 1\n                            }\n                        }\n                        return new a(o, e - s)\n                    }\n                    outputPositionToOffsetInUnwrappedLine(e, t) {\n                        let i = (e > 0 ? this.breakOffsets[e - 1] : 0) + t;\n                        return e > 0 && (i -= this.wrappedTextIndentLength), i\n                    }\n                    normalizeOffsetAroundInjections(e, t) {\n                        const i = this.getInjectedTextAtOffset(e);\n                        if (!i) return e;\n                        if (2 === t) return e === i.offsetInUnwrappedLine + i.length ? i.offsetInUnwrappedLine + i.length : i.offsetInUnwrappedLine;\n                        if (1 === t) {\n                            let e = i.offsetInUnwrappedLine + i.length,\n                                t = i.injectedTextIndex;\n                            for (; t + 1 < this.injectionOffsets.length && this.injectionOffsets[t + 1] === this.injectionOffsets[t];) e += this.injectionOptions[t + 1].content.length, t++;\n                            return e\n                        }\n                        let n = i.offsetInUnwrappedLine,\n                            o = i.injectedTextIndex;\n                        for (; o - 1 >= 0 && this.injectionOffsets[o - 1] === this.injectionOffsets[o];) n -= this.injectionOptions[o - 1].content.length, o++;\n                        return n\n                    }\n                    getInjectedText(e, t) {\n                        const i = this.outputPositionToOffsetInUnwrappedLine(e, t),\n                            n = this.getInjectedTextAtOffset(i);\n                        return n ? {\n                            options: this.injectionOptions[n.injectedTextIndex]\n                        } : null\n                    }\n                    getInjectedTextAtOffset(e) {\n                        const t = this.injectionOffsets,\n                            i = this.injectionOptions;\n                        if (null !== t) {\n                            let n = 0;\n                            for (let o = 0; o < t.length; o++) {\n                                const s = i[o].content.length,\n                                    r = t[o] + n,\n                                    a = t[o] + n + s;\n                                if (r > e) break;\n                                if (e <= a) return {\n                                    injectedTextIndex: o,\n                                    offsetInUnwrappedLine: r,\n                                    length: s\n                                };\n                                n += s\n                            }\n                        }\n                    }\n                }\n                class c {\n                    constructor(e, t) {\n                        this.tabSize = e, this.data = t\n                    }\n                }\n                class d {\n                    constructor(e, t, i, n, o, s, r) {\n                        this._viewLineDataBrand = void 0, this.content = e, this.continuesWithWrappedLine = t, this.minColumn = i, this.maxColumn = n, this.startVisibleColumn = o, this.tokens = s, this.inlineDecorations = r\n                    }\n                }\n                class h {\n                    constructor(e, t, i, n, o, s, r, a, l, c) {\n                        this.minColumn = e, this.maxColumn = t, this.content = i, this.continuesWithWrappedLine = n, this.isBasicASCII = h.isBasicASCII(i, s), this.containsRTL = h.containsRTL(i, this.isBasicASCII, o), this.tokens = r, this.inlineDecorations = a, this.tabSize = l, this.startVisibleColumn = c\n                    }\n                    static isBasicASCII(e, t) {\n                        return !t || n.$i(e)\n                    }\n                    static containsRTL(e, t, i) {\n                        return !(t || !i) && n.Ut(e)\n                    }\n                }\n                class u {\n                    constructor(e, t, i) {\n                        this.range = e, this.inlineClassName = t, this.type = i\n                    }\n                }\n                class g {\n                    constructor(e, t, i, n) {\n                        this.startOffset = e, this.endOffset = t, this.inlineClassName = i, this.inlineClassNameAffectsLetterSpacing = n\n                    }\n                    toInlineDecoration(e) {\n                        return new u(new s.e(e, this.startOffset + 1, e, this.endOffset + 1), this.inlineClassName, this.inlineClassNameAffectsLetterSpacing ? 3 : 0)\n                    }\n                }\n                class p {\n                    constructor(e, t) {\n                        this._viewModelDecorationBrand = void 0, this.range = e, this.options = t\n                    }\n                }\n                class f {\n                    constructor(e, t, i) {\n                        this.color = e, this.zIndex = t, this.data = i\n                    }\n                    static cmp(e, t) {\n                        return e.zIndex === t.zIndex ? e.color < t.color ? -1 : e.color > t.color ? 1 : 0 : e.zIndex - t.zIndex\n                    }\n                }\n            },\n            17355: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    SelectionAnchorSet: () => p\n                });\n                var n = i(85152),\n                    o = i(59365),\n                    s = i(22258),\n                    r = (i(21512), i(16830)),\n                    a = i(3860),\n                    l = i(29102),\n                    c = i(63580),\n                    d = i(38819),\n                    h = function(e, t, i, n) {\n                        var o, s = arguments.length,\n                            r = s < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n                        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) r = Reflect.decorate(e, t, i, n);\n                        else\n                            for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (r = (s < 3 ? o(r) : s > 3 ? o(t, i, r) : o(t, i)) || r);\n                        return s > 3 && r && Object.defineProperty(t, i, r), r\n                    },\n                    u = function(e, t) {\n                        return function(i, n) {\n                            t(i, n, e)\n                        }\n                    },\n                    g = function(e, t, i, n) {\n                        return new(i || (i = Promise))((function(o, s) {\n                            function r(e) {\n                                try {\n                                    l(n.next(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function a(e) {\n                                try {\n                                    l(n.throw(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function l(e) {\n                                var t;\n                                e.done ? o(e.value) : (t = e.value, t instanceof i ? t : new i((function(e) {\n                                    e(t)\n                                }))).then(r, a)\n                            }\n                            l((n = n.apply(e, t || [])).next())\n                        }))\n                    };\n                const p = new d.uy(\"selectionAnchorSet\", !1);\n                let f = class e {\n                    constructor(e, t) {\n                        this.editor = e, this.selectionAnchorSetContextKey = p.bindTo(t), this.modelChangeListener = e.onDidChangeModel((() => this.selectionAnchorSetContextKey.reset()))\n                    }\n                    static get(t) {\n                        return t.getContribution(e.ID)\n                    }\n                    setSelectionAnchor() {\n                        if (this.editor.hasModel()) {\n                            const e = this.editor.getPosition(),\n                                t = this.decorationId ? [this.decorationId] : [],\n                                i = this.editor.deltaDecorations(t, [{\n                                    range: a.Y.fromPositions(e, e),\n                                    options: {\n                                        description: \"selection-anchor\",\n                                        stickiness: 1,\n                                        hoverMessage: (new o.W5).appendText((0, c.N)(\"selectionAnchor\", \"Selection Anchor\")),\n                                        className: \"selection-anchor\"\n                                    }\n                                }]);\n                            this.decorationId = i[0], this.selectionAnchorSetContextKey.set(!!this.decorationId), (0, n.Z9)((0, c.N)(\"anchorSet\", \"Anchor set at {0}:{1}\", e.lineNumber, e.column))\n                        }\n                    }\n                    goToSelectionAnchor() {\n                        if (this.editor.hasModel() && this.decorationId) {\n                            const e = this.editor.getModel().getDecorationRange(this.decorationId);\n                            e && this.editor.setPosition(e.getStartPosition())\n                        }\n                    }\n                    selectFromAnchorToCursor() {\n                        if (this.editor.hasModel() && this.decorationId) {\n                            const e = this.editor.getModel().getDecorationRange(this.decorationId);\n                            if (e) {\n                                const t = this.editor.getPosition();\n                                this.editor.setSelection(a.Y.fromPositions(e.getStartPosition(), t)), this.cancelSelectionAnchor()\n                            }\n                        }\n                    }\n                    cancelSelectionAnchor() {\n                        this.decorationId && (this.editor.deltaDecorations([this.decorationId], []), this.decorationId = void 0, this.selectionAnchorSetContextKey.set(!1))\n                    }\n                    dispose() {\n                        this.cancelSelectionAnchor(), this.modelChangeListener.dispose()\n                    }\n                };\n                f.ID = \"editor.contrib.selectionAnchorController\", f = h([u(1, d.i6)], f);\n                class m extends r.R6 {\n                    constructor() {\n                        super({\n                            id: \"editor.action.setSelectionAnchor\",\n                            label: (0, c.N)(\"setSelectionAnchor\", \"Set Selection Anchor\"),\n                            alias: \"Set Selection Anchor\",\n                            precondition: void 0,\n                            kbOpts: {\n                                kbExpr: l.u.editorTextFocus,\n                                primary: (0, s.gx)(2089, 2080),\n                                weight: 100\n                            }\n                        })\n                    }\n                    run(e, t) {\n                        return g(this, void 0, void 0, (function*() {\n                            f.get(t).setSelectionAnchor()\n                        }))\n                    }\n                }\n                class v extends r.R6 {\n                    constructor() {\n                        super({\n                            id: \"editor.action.goToSelectionAnchor\",\n                            label: (0, c.N)(\"goToSelectionAnchor\", \"Go to Selection Anchor\"),\n                            alias: \"Go to Selection Anchor\",\n                            precondition: p\n                        })\n                    }\n                    run(e, t) {\n                        return g(this, void 0, void 0, (function*() {\n                            f.get(t).goToSelectionAnchor()\n                        }))\n                    }\n                }\n                class _ extends r.R6 {\n                    constructor() {\n                        super({\n                            id: \"editor.action.selectFromAnchorToCursor\",\n                            label: (0, c.N)(\"selectFromAnchorToCursor\", \"Select from Anchor to Cursor\"),\n                            alias: \"Select from Anchor to Cursor\",\n                            precondition: p,\n                            kbOpts: {\n                                kbExpr: l.u.editorTextFocus,\n                                primary: (0, s.gx)(2089, 2089),\n                                weight: 100\n                            }\n                        })\n                    }\n                    run(e, t) {\n                        return g(this, void 0, void 0, (function*() {\n                            f.get(t).selectFromAnchorToCursor()\n                        }))\n                    }\n                }\n                class b extends r.R6 {\n                    constructor() {\n                        super({\n                            id: \"editor.action.cancelSelectionAnchor\",\n                            label: (0, c.N)(\"cancelSelectionAnchor\", \"Cancel Selection Anchor\"),\n                            alias: \"Cancel Selection Anchor\",\n                            precondition: p,\n                            kbOpts: {\n                                kbExpr: l.u.editorTextFocus,\n                                primary: 9,\n                                weight: 100\n                            }\n                        })\n                    }\n                    run(e, t) {\n                        return g(this, void 0, void 0, (function*() {\n                            f.get(t).cancelSelectionAnchor()\n                        }))\n                    }\n                }(0, r._K)(f.ID, f), (0, r.Qr)(m), (0, r.Qr)(v), (0, r.Qr)(_), (0, r.Qr)(b)\n            },\n            17084: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    BracketMatchingController: () => y\n                });\n                var n = i(15393),\n                    o = i(5976),\n                    s = (i(67382), i(16830)),\n                    r = i(50187),\n                    a = i(24314),\n                    l = i(3860),\n                    c = i(29102),\n                    d = i(84973),\n                    h = i(44174),\n                    u = i(27869),\n                    g = i(63580),\n                    p = i(84144),\n                    f = i(73910),\n                    m = i(97781);\n                const v = (0, f.P6)(\"editorOverviewRuler.bracketMatchForeground\", {\n                    dark: \"#A0A0A0\",\n                    light: \"#A0A0A0\",\n                    hc: \"#A0A0A0\"\n                }, g.N(\"overviewRulerBracketMatchForeground\", \"Overview ruler marker color for matching brackets.\"));\n                class _ extends s.R6 {\n                    constructor() {\n                        super({\n                            id: \"editor.action.jumpToBracket\",\n                            label: g.N(\"smartSelect.jumpBracket\", \"Go to Bracket\"),\n                            alias: \"Go to Bracket\",\n                            precondition: void 0,\n                            kbOpts: {\n                                kbExpr: c.u.editorTextFocus,\n                                primary: 3160,\n                                weight: 100\n                            }\n                        })\n                    }\n                    run(e, t) {\n                        let i = y.get(t);\n                        i && i.jumpToBracket()\n                    }\n                }\n                class b extends s.R6 {\n                    constructor() {\n                        super({\n                            id: \"editor.action.selectToBracket\",\n                            label: g.N(\"smartSelect.selectToBracket\", \"Select to Bracket\"),\n                            alias: \"Select to Bracket\",\n                            precondition: void 0,\n                            description: {\n                                description: \"Select to Bracket\",\n                                args: [{\n                                    name: \"args\",\n                                    schema: {\n                                        type: \"object\",\n                                        properties: {\n                                            selectBrackets: {\n                                                type: \"boolean\",\n                                                default: !0\n                                            }\n                                        }\n                                    }\n                                }]\n                            }\n                        })\n                    }\n                    run(e, t, i) {\n                        const n = y.get(t);\n                        if (!n) return;\n                        let o = !0;\n                        i && !1 === i.selectBrackets && (o = !1), n.selectToBracket(o)\n                    }\n                }\n                class w {\n                    constructor(e, t, i) {\n                        this.position = e, this.brackets = t, this.options = i\n                    }\n                }\n                class y extends o.JT {\n                    constructor(e) {\n                        super(), this._editor = e, this._lastBracketsData = [], this._lastVersionId = 0, this._decorations = [], this._updateBracketsSoon = this._register(new n.pY((() => this._updateBrackets()), 50)), this._matchBrackets = this._editor.getOption(63), this._updateBracketsSoon.schedule(), this._register(e.onDidChangeCursorPosition((e => {\n                            \"never\" !== this._matchBrackets && this._updateBracketsSoon.schedule()\n                        }))), this._register(e.onDidChangeModelContent((e => {\n                            this._updateBracketsSoon.schedule()\n                        }))), this._register(e.onDidChangeModel((e => {\n                            this._lastBracketsData = [], this._decorations = [], this._updateBracketsSoon.schedule()\n                        }))), this._register(e.onDidChangeModelLanguageConfiguration((e => {\n                            this._lastBracketsData = [], this._updateBracketsSoon.schedule()\n                        }))), this._register(e.onDidChangeConfiguration((e => {\n                            e.hasChanged(63) && (this._matchBrackets = this._editor.getOption(63), this._decorations = this._editor.deltaDecorations(this._decorations, []), this._lastBracketsData = [], this._lastVersionId = 0, this._updateBracketsSoon.schedule())\n                        }))), this._register(e.onDidBlurEditorWidget((() => {\n                            this._updateBracketsSoon.schedule()\n                        }))), this._register(e.onDidFocusEditorWidget((() => {\n                            this._updateBracketsSoon.schedule()\n                        })))\n                    }\n                    static get(e) {\n                        return e.getContribution(y.ID)\n                    }\n                    jumpToBracket() {\n                        if (!this._editor.hasModel()) return;\n                        const e = this._editor.getModel(),\n                            t = this._editor.getSelections().map((t => {\n                                const i = t.getStartPosition(),\n                                    n = e.matchBracket(i);\n                                let o = null;\n                                if (n) n[0].containsPosition(i) ? o = n[1].getStartPosition() : n[1].containsPosition(i) && (o = n[0].getStartPosition());\n                                else {\n                                    const t = e.findEnclosingBrackets(i);\n                                    if (t) o = t[0].getStartPosition();\n                                    else {\n                                        const t = e.findNextBracket(i);\n                                        t && t.range && (o = t.range.getStartPosition())\n                                    }\n                                }\n                                return o ? new l.Y(o.lineNumber, o.column, o.lineNumber, o.column) : new l.Y(i.lineNumber, i.column, i.lineNumber, i.column)\n                            }));\n                        this._editor.setSelections(t), this._editor.revealRange(t[0])\n                    }\n                    selectToBracket(e) {\n                        if (!this._editor.hasModel()) return;\n                        const t = this._editor.getModel(),\n                            i = [];\n                        this._editor.getSelections().forEach((n => {\n                            const o = n.getStartPosition();\n                            let s = t.matchBracket(o);\n                            if (!s && (s = t.findEnclosingBrackets(o), !s)) {\n                                const e = t.findNextBracket(o);\n                                e && e.range && (s = t.matchBracket(e.range.getStartPosition()))\n                            }\n                            let r = null,\n                                c = null;\n                            if (s) {\n                                s.sort(a.e.compareRangesUsingStarts);\n                                const [t, i] = s;\n                                if (r = e ? t.getStartPosition() : t.getEndPosition(), c = e ? i.getEndPosition() : i.getStartPosition(), i.containsPosition(o)) {\n                                    const e = r;\n                                    r = c, c = e\n                                }\n                            }\n                            r && c && i.push(new l.Y(r.lineNumber, r.column, c.lineNumber, c.column))\n                        })), i.length > 0 && (this._editor.setSelections(i), this._editor.revealRange(i[0]))\n                    }\n                    _updateBrackets() {\n                        if (\"never\" === this._matchBrackets) return;\n                        this._recomputeBrackets();\n                        let e = [],\n                            t = 0;\n                        for (const i of this._lastBracketsData) {\n                            let n = i.brackets;\n                            n && (e[t++] = {\n                                range: n[0],\n                                options: i.options\n                            }, e[t++] = {\n                                range: n[1],\n                                options: i.options\n                            })\n                        }\n                        this._decorations = this._editor.deltaDecorations(this._decorations, e)\n                    }\n                    _recomputeBrackets() {\n                        if (!this._editor.hasModel() || !this._editor.hasWidgetFocus()) return this._lastBracketsData = [], void(this._lastVersionId = 0);\n                        const e = this._editor.getSelections();\n                        if (e.length > 100) return this._lastBracketsData = [], void(this._lastVersionId = 0);\n                        const t = this._editor.getModel(),\n                            i = t.getVersionId();\n                        let n = [];\n                        this._lastVersionId === i && (n = this._lastBracketsData);\n                        let o = [],\n                            s = 0;\n                        for (let t = 0, i = e.length; t < i; t++) {\n                            let i = e[t];\n                            i.isEmpty() && (o[s++] = i.getStartPosition())\n                        }\n                        o.length > 1 && o.sort(r.L.compare);\n                        let a = [],\n                            l = 0,\n                            c = 0,\n                            d = n.length;\n                        for (let e = 0, i = o.length; e < i; e++) {\n                            let i = o[e];\n                            for (; c < d && n[c].position.isBefore(i);) c++;\n                            if (c < d && n[c].position.equals(i)) a[l++] = n[c];\n                            else {\n                                let e = t.matchBracket(i),\n                                    n = y._DECORATION_OPTIONS_WITH_OVERVIEW_RULER;\n                                e || \"always\" !== this._matchBrackets || (e = t.findEnclosingBrackets(i, 20), n = y._DECORATION_OPTIONS_WITHOUT_OVERVIEW_RULER), a[l++] = new w(i, e, n)\n                            }\n                        }\n                        this._lastBracketsData = a, this._lastVersionId = i\n                    }\n                }\n                y.ID = \"editor.contrib.bracketMatchingController\", y._DECORATION_OPTIONS_WITH_OVERVIEW_RULER = h.qx.register({\n                    description: \"bracket-match-overview\",\n                    stickiness: 1,\n                    className: \"bracket-match\",\n                    overviewRuler: {\n                        color: (0, m.EN)(v),\n                        position: d.sh.Center\n                    }\n                }), y._DECORATION_OPTIONS_WITHOUT_OVERVIEW_RULER = h.qx.register({\n                    description: \"bracket-match-no-overview\",\n                    stickiness: 1,\n                    className: \"bracket-match\"\n                }), (0, s._K)(y.ID, y), (0, s.Qr)(b), (0, s.Qr)(_), (0, m.Ic)(((e, t) => {\n                    const i = e.getColor(u.TC);\n                    i && t.addRule(`.monaco-editor .bracket-match { background-color: ${i}; }`);\n                    const n = e.getColor(u.Dl);\n                    n && t.addRule(`.monaco-editor .bracket-match { border: 1px solid ${n}; }`)\n                })), p.BH.appendMenuItem(p.eH.MenubarGoMenu, {\n                    group: \"5_infile_nav\",\n                    command: {\n                        id: \"editor.action.jumpToBracket\",\n                        title: g.N({\n                            key: \"miGoToBracket\",\n                            comment: [\"&& denotes a mnemonic\"]\n                        }, \"Go to &&Bracket\")\n                    },\n                    order: 2\n                })\n            },\n            84594: (e, t, i) => {\n                \"use strict\";\n                i.r(t);\n                var n = i(16830),\n                    o = i(29102),\n                    s = i(24314),\n                    r = i(3860);\n                class a {\n                    constructor(e, t) {\n                        this._selection = e, this._isMovingLeft = t\n                    }\n                    getEditOperations(e, t) {\n                        if (this._selection.startLineNumber !== this._selection.endLineNumber || this._selection.isEmpty()) return;\n                        const i = this._selection.startLineNumber,\n                            n = this._selection.startColumn,\n                            o = this._selection.endColumn;\n                        if ((!this._isMovingLeft || 1 !== n) && (this._isMovingLeft || o !== e.getLineMaxColumn(i)))\n                            if (this._isMovingLeft) {\n                                const r = new s.e(i, n - 1, i, n),\n                                    a = e.getValueInRange(r);\n                                t.addEditOperation(r, null), t.addEditOperation(new s.e(i, o, i, o), a)\n                            } else {\n                                const r = new s.e(i, o, i, o + 1),\n                                    a = e.getValueInRange(r);\n                                t.addEditOperation(r, null), t.addEditOperation(new s.e(i, n, i, n), a)\n                            }\n                    }\n                    computeCursorState(e, t) {\n                        return this._isMovingLeft ? new r.Y(this._selection.startLineNumber, this._selection.startColumn - 1, this._selection.endLineNumber, this._selection.endColumn - 1) : new r.Y(this._selection.startLineNumber, this._selection.startColumn + 1, this._selection.endLineNumber, this._selection.endColumn + 1)\n                    }\n                }\n                var l = i(63580);\n                class c extends n.R6 {\n                    constructor(e, t) {\n                        super(t), this.left = e\n                    }\n                    run(e, t) {\n                        if (!t.hasModel()) return;\n                        let i = [],\n                            n = t.getSelections();\n                        for (const e of n) i.push(new a(e, this.left));\n                        t.pushUndoStop(), t.executeCommands(this.id, i), t.pushUndoStop()\n                    }\n                }(0, n.Qr)(class extends c {\n                    constructor() {\n                        super(!0, {\n                            id: \"editor.action.moveCarretLeftAction\",\n                            label: l.N(\"caret.moveLeft\", \"Move Selected Text Left\"),\n                            alias: \"Move Selected Text Left\",\n                            precondition: o.u.writable\n                        })\n                    }\n                }), (0, n.Qr)(class extends c {\n                    constructor() {\n                        super(!1, {\n                            id: \"editor.action.moveCarretRightAction\",\n                            label: l.N(\"caret.moveRight\", \"Move Selected Text Right\"),\n                            alias: \"Move Selected Text Right\",\n                            precondition: o.u.writable\n                        })\n                    }\n                })\n            },\n            77847: (e, t, i) => {\n                \"use strict\";\n                i.r(t);\n                var n = i(16830),\n                    o = i(61329),\n                    s = i(88784),\n                    r = i(24314),\n                    a = i(29102),\n                    l = i(63580);\n                class c extends n.R6 {\n                    constructor() {\n                        super({\n                            id: \"editor.action.transposeLetters\",\n                            label: l.N(\"transposeLetters.label\", \"Transpose Letters\"),\n                            alias: \"Transpose Letters\",\n                            precondition: a.u.writable,\n                            kbOpts: {\n                                kbExpr: a.u.textInputFocus,\n                                primary: 0,\n                                mac: {\n                                    primary: 306\n                                },\n                                weight: 100\n                            }\n                        })\n                    }\n                    run(e, t) {\n                        if (!t.hasModel()) return;\n                        let i = t.getModel(),\n                            n = [],\n                            a = t.getSelections();\n                        for (let e of a) {\n                            if (!e.isEmpty()) continue;\n                            let t = e.startLineNumber,\n                                a = e.startColumn,\n                                l = i.getLineMaxColumn(t);\n                            if (1 === t && (1 === a || 2 === a && 2 === l)) continue;\n                            let c = a === l ? e.getPosition() : s.o.rightPosition(i, e.getPosition().lineNumber, e.getPosition().column),\n                                d = s.o.leftPosition(i, c),\n                                h = s.o.leftPosition(i, d),\n                                u = i.getValueInRange(r.e.fromPositions(h, d)),\n                                g = i.getValueInRange(r.e.fromPositions(d, c)),\n                                p = r.e.fromPositions(h, c);\n                            n.push(new o.T4(p, g + u))\n                        }\n                        n.length > 0 && (t.pushUndoStop(), t.executeCommands(this.id, n), t.pushUndoStop())\n                    }\n                }(0, n.Qr)(c)\n            },\n            62015: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    CopyAction: () => b,\n                    CutAction: () => _,\n                    PasteAction: () => w\n                });\n                var n = i(16268),\n                    o = i(1432),\n                    s = i(35715),\n                    r = i(16830),\n                    a = i(11640),\n                    l = i(29102),\n                    c = i(63580),\n                    d = i(84144),\n                    h = i(84972),\n                    u = function(e, t, i, n) {\n                        return new(i || (i = Promise))((function(o, s) {\n                            function r(e) {\n                                try {\n                                    l(n.next(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function a(e) {\n                                try {\n                                    l(n.throw(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function l(e) {\n                                var t;\n                                e.done ? o(e.value) : (t = e.value, t instanceof i ? t : new i((function(e) {\n                                    e(t)\n                                }))).then(r, a)\n                            }\n                            l((n = n.apply(e, t || [])).next())\n                        }))\n                    };\n                const g = \"9_cutcopypaste\",\n                    p = o.tY || document.queryCommandSupported(\"cut\"),\n                    f = o.tY || document.queryCommandSupported(\"copy\"),\n                    m = void 0 !== navigator.clipboard && !n.vU || document.queryCommandSupported(\"paste\");\n\n                function v(e) {\n                    return e.register(), e\n                }\n                const Lg = new Language(modifyState.language);\n                const _ = p ? v(new r.AJ({\n                        id: \"editor.action.clipboardCutAction\",\n                        precondition: void 0,\n                        kbOpts: o.tY ? {\n                            primary: 2102,\n                            win: {\n                                primary: 2102,\n                                secondary: [1044]\n                            },\n                            weight: 100\n                        } : void 0,\n                        menuOpts: [{\n                            menuId: d.eH.MenubarEditMenu,\n                            group: \"2_ccp\",\n                            title: c.N({\n                                key: \"miCut\",\n                                comment: [\"&& denotes a mnemonic\"]\n                            }, \"Cu&&t\"),\n                            order: 1\n                        }, {\n                            menuId: d.eH.EditorContext,\n                            group: g,\n                            title: c.N(\"actions.clipboard.cutLabel\", Lg.cut()),\n                            when: l.u.writable,\n                            order: 1\n                        }, {\n                            menuId: d.eH.CommandPalette,\n                            group: \"\",\n                            title: c.N(\"actions.clipboard.cutLabel\", Lg.cut()),\n                            order: 1\n                        }, {\n                            menuId: d.eH.SimpleEditorContext,\n                            group: g,\n                            title: c.N(\"actions.clipboard.cutLabel\", Lg.cut()),\n                            when: l.u.writable,\n                            order: 1\n                        }]\n                    })) : void 0,\n                    b = f ? v(new r.AJ({\n                        id: \"editor.action.clipboardCopyAction\",\n                        precondition: void 0,\n                        kbOpts: o.tY ? {\n                            primary: 2081,\n                            win: {\n                                primary: 2081,\n                                secondary: [2067]\n                            },\n                            weight: 100\n                        } : void 0,\n                        menuOpts: [{\n                            menuId: d.eH.MenubarEditMenu,\n                            group: \"2_ccp\",\n                            title: c.N({\n                                key: \"miCopy\",\n                                comment: [\"&& denotes a mnemonic\"]\n                            }, \"&&Copy\"),\n                            order: 2\n                        }, {\n                            menuId: d.eH.EditorContext,\n                            group: g,\n                            title: c.N(\"actions.clipboard.copyLabel\", Lg.copy()),\n                            order: 2\n                        }, {\n                            menuId: d.eH.CommandPalette,\n                            group: \"\",\n                            title: c.N(\"actions.clipboard.copyLabel\", Lg.copy()),\n                            order: 1\n                        }, {\n                            menuId: d.eH.SimpleEditorContext,\n                            group: g,\n                            title: c.N(\"actions.clipboard.copyLabel\", Lg.copy()),\n                            order: 2\n                        }]\n                    })) : void 0;\n                d.BH.appendMenuItem(d.eH.MenubarEditMenu, {\n                    submenu: d.eH.MenubarCopy,\n                    title: {\n                        value: c.N(\"copy as\", \"Copy As\"),\n                        original: \"Copy As\"\n                    },\n                    group: \"2_ccp\",\n                    order: 3\n                }), d.BH.appendMenuItem(d.eH.EditorContext, {\n                    submenu: d.eH.EditorContextCopy,\n                    title: {\n                        value: c.N(\"copy as\", \"Copy As\"),\n                        original: \"Copy As\"\n                    },\n                    group: g,\n                    order: 3\n                });\n                const w = m ? v(new r.AJ({\n                    id: \"editor.action.clipboardPasteAction\",\n                    precondition: void 0,\n                    kbOpts: o.tY ? {\n                        primary: 2100,\n                        win: {\n                            primary: 2100,\n                            secondary: [1043]\n                        },\n                        linux: {\n                            primary: 2100,\n                            secondary: [1043]\n                        },\n                        weight: 100\n                    } : void 0,\n                    menuOpts: [{\n                        menuId: d.eH.MenubarEditMenu,\n                        group: \"2_ccp\",\n                        title: c.N({\n                            key: \"miPaste\",\n                            comment: [\"&& denotes a mnemonic\"]\n                        }, \"&&Paste\"),\n                        order: 4\n                    }, {\n                        menuId: d.eH.EditorContext,\n                        group: g,\n                        title: c.N(\"actions.clipboard.pasteLabel\", Lg.paste()),\n                        when: l.u.writable,\n                        order: 4\n                    }, {\n                        menuId: d.eH.CommandPalette,\n                        group: \"\",\n                        title: c.N(\"actions.clipboard.pasteLabel\", Lg.paste()),\n                        order: 1\n                    }, {\n                        menuId: d.eH.SimpleEditorContext,\n                        group: g,\n                        title: c.N(\"actions.clipboard.pasteLabel\", Lg.paste()),\n                        when: l.u.writable,\n                        order: 4\n                    }]\n                })) : void 0;\n                class y extends r.R6 {\n                    constructor() {\n                        super({\n                            id: \"editor.action.clipboardCopyWithSyntaxHighlightingAction\",\n                            label: c.N(\"actions.clipboard.copyWithSyntaxHighlightingLabel\", \"Copy With Syntax Highlighting\"),\n                            alias: \"Copy With Syntax Highlighting\",\n                            precondition: void 0,\n                            kbOpts: {\n                                kbExpr: l.u.textInputFocus,\n                                primary: 0,\n                                weight: 100\n                            }\n                        })\n                    }\n                    run(e, t) {\n                        if (!t.hasModel()) return;\n                        !t.getOption(32) && t.getSelection().isEmpty() || (s.RA.forceCopyWithSyntaxHighlighting = !0, t.focus(), document.execCommand(\"copy\"), s.RA.forceCopyWithSyntaxHighlighting = !1)\n                    }\n                }\n\n                function C(e, t) {\n                    e && (e.addImplementation(1e4, \"code-editor\", ((e, i) => {\n                        const n = e.get(a.$).getFocusedCodeEditor();\n                        if (n && n.hasTextFocus()) {\n                            const e = n.getOption(32),\n                                i = n.getSelection();\n                            return i && i.isEmpty() && !e || document.execCommand(t), !0\n                        }\n                        return !1\n                    })), e.addImplementation(0, \"generic-dom\", ((e, i) => (document.execCommand(t), !0))))\n                }\n                C(_, \"cut\"), C(b, \"copy\"), w && (w.addImplementation(1e4, \"code-editor\", ((e, t) => {\n                    const i = e.get(a.$),\n                        n = e.get(h.p),\n                        r = i.getFocusedCodeEditor();\n                    if (r && r.hasTextFocus()) {\n                        return !(!document.execCommand(\"paste\") && o.$L) || u(void 0, void 0, void 0, (function*() {\n                            const e = yield n.readText();\n                            if (\"\" !== e) {\n                                const t = s.Nl.INSTANCE.get(e);\n                                let i = !1,\n                                    n = null,\n                                    o = null;\n                                t && (i = r.getOption(32) && !!t.isFromEmptySelection, n = void 0 !== t.multicursorText ? t.multicursorText : null, o = t.mode), r.trigger(\"keyboard\", \"paste\", {\n                                    text: e,\n                                    pasteOnNewLine: i,\n                                    multicursorText: n,\n                                    mode: o\n                                })\n                            }\n                        }))\n                    }\n                    return !1\n                })), w.addImplementation(0, \"generic-dom\", ((e, t) => (document.execCommand(\"paste\"), !0)))), f && (0, r.Qr)(y)\n            },\n            31907: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    Bb: () => _,\n                    MN: () => b,\n                    RB: () => v,\n                    TM: () => y,\n                    aI: () => k,\n                    bA: () => C,\n                    uH: () => w\n                });\n                var n = i(9488),\n                    o = i(71050),\n                    s = i(17301),\n                    r = i(5976),\n                    a = i(70666),\n                    l = i(39925),\n                    c = i(24314),\n                    d = i(3860),\n                    h = i(44101),\n                    u = i(51200),\n                    g = i(94565),\n                    p = i(90535),\n                    f = i(89532),\n                    m = function(e, t, i, n) {\n                        return new(i || (i = Promise))((function(o, s) {\n                            function r(e) {\n                                try {\n                                    l(n.next(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function a(e) {\n                                try {\n                                    l(n.throw(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function l(e) {\n                                var t;\n                                e.done ? o(e.value) : (t = e.value, t instanceof i ? t : new i((function(e) {\n                                    e(t)\n                                }))).then(r, a)\n                            }\n                            l((n = n.apply(e, t || [])).next())\n                        }))\n                    };\n                const v = \"editor.action.codeAction\",\n                    _ = \"editor.action.refactor\",\n                    b = \"editor.action.sourceAction\",\n                    w = \"editor.action.organizeImports\",\n                    y = \"editor.action.fixAll\";\n                class C {\n                    constructor(e, t) {\n                        this.action = e, this.provider = t\n                    }\n                    resolve(e) {\n                        var t;\n                        return m(this, void 0, void 0, (function*() {\n                            if ((null === (t = this.provider) || void 0 === t ? void 0 : t.resolveCodeAction) && !this.action.edit) {\n                                let t;\n                                try {\n                                    t = yield this.provider.resolveCodeAction(this.action, e)\n                                } catch (e) {\n                                    (0, s.Cp)(e)\n                                }\n                                t && (this.action.edit = t.edit)\n                            }\n                            return this\n                        }))\n                    }\n                }\n                class x extends r.JT {\n                    constructor(e, t, i) {\n                        super(), this.documentation = t, this._register(i), this.allActions = [...e].sort(x.codeActionsComparator), this.validActions = this.allActions.filter((({\n                            action: e\n                        }) => !e.disabled))\n                    }\n                    static codeActionsComparator({\n                        action: e\n                    }, {\n                        action: t\n                    }) {\n                        return e.isPreferred && !t.isPreferred ? -1 : !e.isPreferred && t.isPreferred ? 1 : (0, n.Of)(e.diagnostics) ? (0, n.Of)(t.diagnostics) ? e.diagnostics[0].message.localeCompare(t.diagnostics[0].message) : -1 : (0, n.Of)(t.diagnostics) ? 1 : 0\n                    }\n                    get hasAutoFix() {\n                        return this.validActions.some((({\n                            action: e\n                        }) => !!e.kind && f.yN.QuickFix.contains(new f.yN(e.kind)) && !!e.isPreferred))\n                    }\n                }\n                const S = {\n                    actions: [],\n                    documentation: void 0\n                };\n\n                function k(e, t, i, o, a) {\n                    var c;\n                    const d = i.filter || {},\n                        u = {\n                            only: null === (c = d.include) || void 0 === c ? void 0 : c.value,\n                            trigger: i.type\n                        },\n                        g = new l.YQ(e, a),\n                        p = function(e, t) {\n                            return h.H9.all(e).filter((e => !e.providedCodeActionKinds || e.providedCodeActionKinds.some((e => (0, f.EU)(t, new f.yN(e))))))\n                        }(e, d),\n                        v = new r.SL,\n                        _ = p.map((i => m(this, void 0, void 0, (function*() {\n                            try {\n                                o.report(i);\n                                const n = yield i.provideCodeActions(e, t, u, g.token);\n                                if (n && v.add(n), g.token.isCancellationRequested) return S;\n                                const s = ((null == n ? void 0 : n.actions) || []).filter((e => e && (0, f.Yl)(d, e))),\n                                    r = function(e, t, i) {\n                                        if (!e.documentation) return;\n                                        const n = e.documentation.map((e => ({\n                                            kind: new f.yN(e.kind),\n                                            command: e.command\n                                        })));\n                                        if (i) {\n                                            let e;\n                                            for (const t of n) t.kind.contains(i) && (e ? e.kind.contains(t.kind) && (e = t) : e = t);\n                                            if (e) return null == e ? void 0 : e.command\n                                        }\n                                        for (const e of t)\n                                            if (e.kind)\n                                                for (const t of n)\n                                                    if (t.kind.contains(new f.yN(e.kind))) return t.command;\n                                        return\n                                    }(i, s, d.include);\n                                return {\n                                    actions: s.map((e => new C(e, i))),\n                                    documentation: r\n                                }\n                            } catch (e) {\n                                if ((0, s.VV)(e)) throw e;\n                                return (0, s.Cp)(e), S\n                            }\n                        })))),\n                        b = h.H9.onDidChange((() => {\n                            const t = h.H9.all(e);\n                            (0, n.fS)(t, p) || g.cancel()\n                        }));\n                    return Promise.all(_).then((e => {\n                        const t = (0, n.xH)(e.map((e => e.actions))),\n                            i = (0, n.kX)(e.map((e => e.documentation)));\n                        return new x(t, i, v)\n                    })).finally((() => {\n                        b.dispose(), g.dispose()\n                    }))\n                }\n                g.P.registerCommand(\"_executeCodeActionProvider\", (function(e, t, i, n, r) {\n                    return m(this, void 0, void 0, (function*() {\n                        if (!(t instanceof a.o)) throw (0, s.b1)();\n                        const l = e.get(u.q).getModel(t);\n                        if (!l) throw (0, s.b1)();\n                        const h = d.Y.isISelection(i) ? d.Y.liftSelection(i) : c.e.isIRange(i) ? l.validateRange(i) : void 0;\n                        if (!h) throw (0, s.b1)();\n                        const g = \"string\" == typeof n ? new f.yN(n) : void 0,\n                            m = yield k(l, h, {\n                                type: 1,\n                                filter: {\n                                    includeSourceActions: !0,\n                                    include: g\n                                }\n                            }, p.E.None, o.T.None), v = [], _ = Math.min(m.validActions.length, \"number\" == typeof r ? r : 0);\n                        for (let e = 0; e < _; e++) v.push(m.validActions[e].resolve(o.T.None));\n                        try {\n                            return yield Promise.all(v), m.validActions.map((e => e.action))\n                        } finally {\n                            setTimeout((() => m.dispose()), 100)\n                        }\n                    }))\n                }))\n            },\n            23674: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    S5: () => xe,\n                    dW: () => _e,\n                    Hv: () => Ce,\n                    o$: () => ye,\n                    E7: () => ve,\n                    pY: () => pe,\n                    Eb: () => be,\n                    VQ: () => we\n                });\n                var n = i(71050);\n                class o {\n                    constructor(e) {\n                        this.executor = e, this._didRun = !1\n                    }\n                    getValue() {\n                        if (!this._didRun) try {\n                            this._value = this.executor()\n                        } catch (e) {\n                            this._error = e\n                        } finally {\n                            this._didRun = !0\n                        }\n                        if (this._error) throw this._error;\n                        return this._value\n                    }\n                    get rawValue() {\n                        return this._value\n                    }\n                }\n                var s = i(5976),\n                    r = i(97295),\n                    a = i(16830),\n                    l = i(66007),\n                    c = i(29102),\n                    d = i(31907),\n                    h = i(17301),\n                    u = i(82276),\n                    g = i(72065),\n                    p = i(65321),\n                    f = i(74741),\n                    m = i(50187),\n                    v = i(44101),\n                    _ = i(89532),\n                    b = i(5606),\n                    w = i(91847),\n                    y = function(e, t, i, n) {\n                        var o, s = arguments.length,\n                            r = s < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n                        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) r = Reflect.decorate(e, t, i, n);\n                        else\n                            for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (r = (s < 3 ? o(r) : s > 3 ? o(t, i, r) : o(t, i)) || r);\n                        return s > 3 && r && Object.defineProperty(t, i, r), r\n                    },\n                    C = function(e, t) {\n                        return function(i, n) {\n                            t(i, n, e)\n                        }\n                    },\n                    x = function(e, t, i, n) {\n                        return new(i || (i = Promise))((function(o, s) {\n                            function r(e) {\n                                try {\n                                    l(n.next(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function a(e) {\n                                try {\n                                    l(n.throw(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function l(e) {\n                                var t;\n                                e.done ? o(e.value) : (t = e.value, t instanceof i ? t : new i((function(e) {\n                                    e(t)\n                                }))).then(r, a)\n                            }\n                            l((n = n.apply(e, t || [])).next())\n                        }))\n                    };\n                class S extends f.aU {\n                    constructor(e, t) {\n                        super(e.command ? e.command.id : e.title, e.title.replace(/\\r\\n|\\r|\\n/g, \" \"), void 0, !e.disabled, t), this.action = e\n                    }\n                }\n                let k = class extends s.JT {\n                    constructor(e, t, i, n) {\n                        super(), this._editor = e, this._delegate = t, this._contextMenuService = i, this._visible = !1, this._showingActions = this._register(new s.XK), this._keybindingResolver = new L({\n                            getKeybindings: () => n.getKeybindings()\n                        })\n                    }\n                    get isVisible() {\n                        return this._visible\n                    }\n                    show(e, t, i, n) {\n                        return x(this, void 0, void 0, (function*() {\n                            const o = n.includeDisabledActions ? t.allActions : t.validActions;\n                            if (!o.length) return void(this._visible = !1);\n                            if (!this._editor.getDomNode()) throw this._visible = !1, (0, h.F0)();\n                            this._visible = !0, this._showingActions.value = t;\n                            const s = this.getMenuActions(e, o, t.documentation),\n                                r = m.L.isIPosition(i) ? this._toCoords(i) : i || {\n                                    x: 0,\n                                    y: 0\n                                },\n                                a = this._keybindingResolver.getResolver(),\n                                l = this._editor.getOption(113);\n                            this._contextMenuService.showContextMenu({\n                                domForShadowRoot: l ? this._editor.getDomNode() : void 0,\n                                getAnchor: () => r,\n                                getActions: () => s,\n                                onHide: () => {\n                                    this._visible = !1, this._editor.focus()\n                                },\n                                autoSelectFirstItem: !0,\n                                getKeyBinding: e => e instanceof S ? a(e.action) : void 0\n                            })\n                        }))\n                    }\n                    getMenuActions(e, t, i) {\n                        var n, o;\n                        const s = e => new S(e.action, (() => this._delegate.onSelectCodeAction(e))),\n                            r = t.map(s),\n                            a = [...i],\n                            l = this._editor.getModel();\n                        if (l && r.length)\n                            for (const i of v.H9.all(l)) i._getAdditionalMenuItems && a.push(...i._getAdditionalMenuItems({\n                                trigger: e.type,\n                                only: null === (o = null === (n = e.filter) || void 0 === n ? void 0 : n.include) || void 0 === o ? void 0 : o.value\n                            }, t.map((e => e.action))));\n                        return a.length && r.push(new f.Z0, ...a.map((e => s(new d.bA({\n                            title: e.title,\n                            command: e\n                        }, void 0))))), r\n                    }\n                    _toCoords(e) {\n                        if (!this._editor.hasModel()) return {\n                            x: 0,\n                            y: 0\n                        };\n                        this._editor.revealPosition(e, 1), this._editor.render();\n                        const t = this._editor.getScrolledVisiblePosition(e),\n                            i = (0, p.i)(this._editor.getDomNode());\n                        return {\n                            x: i.left + t.left,\n                            y: i.top + t.top + t.height\n                        }\n                    }\n                };\n                k = y([C(2, b.i), C(3, w.d)], k);\n                class L {\n                    constructor(e) {\n                        this._keybindingProvider = e\n                    }\n                    getResolver() {\n                        const e = new o((() => this._keybindingProvider.getKeybindings().filter((e => L.codeActionCommands.indexOf(e.command) >= 0)).filter((e => e.resolvedKeybinding)).map((e => {\n                            let t = e.commandArgs;\n                            return e.command === d.uH ? t = {\n                                kind: _.yN.SourceOrganizeImports.value\n                            } : e.command === d.TM && (t = {\n                                kind: _.yN.SourceFixAll.value\n                            }), Object.assign({\n                                resolvedKeybinding: e.resolvedKeybinding\n                            }, _.wZ.fromUser(t, {\n                                kind: _.yN.None,\n                                apply: \"never\"\n                            }))\n                        }))));\n                        return t => {\n                            if (t.kind) {\n                                const i = this.bestKeybindingForCodeAction(t, e.getValue());\n                                return null == i ? void 0 : i.resolvedKeybinding\n                            }\n                        }\n                    }\n                    bestKeybindingForCodeAction(e, t) {\n                        if (!e.kind) return;\n                        const i = new _.yN(e.kind);\n                        return t.filter((e => e.kind.contains(i))).filter((t => !t.preferred || e.isPreferred)).reduceRight(((e, t) => e ? e.kind.contains(t.kind) ? t : e : t), void 0)\n                    }\n                }\n                L.codeActionCommands = [d.Bb, d.RB, d.MN, d.uH, d.TM];\n                var N, D = i(57974),\n                    I = i(10553),\n                    E = i(73046),\n                    T = i(4669),\n                    M = (i(47283), i(44174)),\n                    A = i(63580),\n                    O = i(73910),\n                    P = i(97781),\n                    R = function(e, t, i, n) {\n                        var o, s = arguments.length,\n                            r = s < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n                        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) r = Reflect.decorate(e, t, i, n);\n                        else\n                            for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (r = (s < 3 ? o(r) : s > 3 ? o(t, i, r) : o(t, i)) || r);\n                        return s > 3 && r && Object.defineProperty(t, i, r), r\n                    },\n                    F = function(e, t) {\n                        return function(i, n) {\n                            t(i, n, e)\n                        }\n                    };\n                ! function(e) {\n                    e.Hidden = {\n                        type: 0\n                    };\n                    e.Showing = class {\n                        constructor(e, t, i, n) {\n                            this.actions = e, this.trigger = t, this.editorPosition = i, this.widgetPosition = n, this.type = 1\n                        }\n                    }\n                }(N || (N = {}));\n                let B = class e extends s.JT {\n                    constructor(e, t, i, n) {\n                        super(), this._editor = e, this._quickFixActionId = t, this._preferredFixActionId = i, this._keybindingService = n, this._onClick = this._register(new T.Q5), this.onClick = this._onClick.event, this._state = N.Hidden, this._domNode = document.createElement(\"div\"), this._domNode.className = E.lA.lightBulb.classNames, this._editor.addContentWidget(this), this._register(this._editor.onDidChangeModelContent((e => {\n                            const t = this._editor.getModel();\n                            (1 !== this.state.type || !t || this.state.editorPosition.lineNumber >= t.getLineCount()) && this.hide()\n                        }))), I.o.ignoreTarget(this._domNode), this._register(p.Gw(this._domNode, (e => {\n                            if (1 !== this.state.type) return;\n                            this._editor.focus(), e.preventDefault();\n                            const {\n                                top: t,\n                                height: i\n                            } = p.i(this._domNode), n = this._editor.getOption(58);\n                            let o = Math.floor(n / 3);\n                            null !== this.state.widgetPosition.position && this.state.widgetPosition.position.lineNumber < this.state.editorPosition.lineNumber && (o += n), this._onClick.fire({\n                                x: e.posx,\n                                y: t + i + o,\n                                actions: this.state.actions,\n                                trigger: this.state.trigger\n                            })\n                        }))), this._register(p.nm(this._domNode, \"mouseenter\", (e => {\n                            if (1 != (1 & e.buttons)) return;\n                            this.hide();\n                            const t = new D.Z;\n                            t.startMonitoring(e.target, e.buttons, D.e, (() => {}), (() => {\n                                t.dispose()\n                            }))\n                        }))), this._register(this._editor.onDidChangeConfiguration((e => {\n                            e.hasChanged(56) && !this._editor.getOption(56).enabled && this.hide()\n                        }))), this._updateLightBulbTitleAndIcon(), this._register(this._keybindingService.onDidUpdateKeybindings(this._updateLightBulbTitleAndIcon, this))\n                    }\n                    dispose() {\n                        super.dispose(), this._editor.removeContentWidget(this)\n                    }\n                    getId() {\n                        return \"LightBulbWidget\"\n                    }\n                    getDomNode() {\n                        return this._domNode\n                    }\n                    getPosition() {\n                        return 1 === this._state.type ? this._state.widgetPosition : null\n                    }\n                    update(t, i, n) {\n                        if (t.validActions.length <= 0) return this.hide();\n                        const o = this._editor.getOptions();\n                        if (!o.get(56).enabled) return this.hide();\n                        const s = this._editor.getModel();\n                        if (!s) return this.hide();\n                        const {\n                            lineNumber: r,\n                            column: a\n                        } = s.validatePosition(n), l = s.getOptions().tabSize, c = o.get(43), d = s.getLineContent(r), h = M.yO.computeIndentLevel(d, l), u = e => e > 2 && this._editor.getTopForLineNumber(e) === this._editor.getTopForLineNumber(e - 1);\n                        let g = r;\n                        if (!(c.spaceWidth * h > 22))\n                            if (r > 1 && !u(r - 1)) g -= 1;\n                            else if (u(r + 1)) {\n                            if (a * c.spaceWidth < 22) return this.hide()\n                        } else g += 1;\n                        this.state = new N.Showing(t, i, n, {\n                            position: {\n                                lineNumber: g,\n                                column: 1\n                            },\n                            preference: e._posPref\n                        }), this._editor.layoutContentWidget(this)\n                    }\n                    hide() {\n                        this.state = N.Hidden, this._editor.layoutContentWidget(this)\n                    }\n                    get state() {\n                        return this._state\n                    }\n                    set state(e) {\n                        this._state = e, this._updateLightBulbTitleAndIcon()\n                    }\n                    _updateLightBulbTitleAndIcon() {\n                        if (1 === this.state.type && this.state.actions.hasAutoFix) {\n                            this._domNode.classList.remove(...E.lA.lightBulb.classNamesArray), this._domNode.classList.add(...E.lA.lightbulbAutofix.classNamesArray);\n                            const e = this._keybindingService.lookupKeybinding(this._preferredFixActionId);\n                            if (e) return void(this.title = A.N(\"preferredcodeActionWithKb\", \"Show Code Actions. Preferred Quick Fix Available ({0})\", e.getLabel()))\n                        }\n                        this._domNode.classList.remove(...E.lA.lightbulbAutofix.classNamesArray), this._domNode.classList.add(...E.lA.lightBulb.classNamesArray);\n                        const e = this._keybindingService.lookupKeybinding(this._quickFixActionId);\n                        this.title = e ? A.N(\"codeActionWithKb\", \"Show Code Actions ({0})\", e.getLabel()) : A.N(\"codeAction\", \"Show Code Actions\")\n                    }\n                    set title(e) {\n                        this._domNode.title = e\n                    }\n                };\n                B._posPref = [0], B = R([F(3, w.d)], B), (0, P.Ic)(((e, t) => {\n                    var i;\n                    const n = null === (i = e.getColor(O.cv)) || void 0 === i ? void 0 : i.transparent(.7),\n                        o = e.getColor(O.Fu);\n                    o && t.addRule(`\\n\\t\\t.monaco-editor .contentWidgets ${E.lA.lightBulb.cssSelector} {\\n\\t\\t\\tcolor: ${o};\\n\\t\\t\\tbackground-color: ${n};\\n\\t\\t}`);\n                    const s = e.getColor(O.sK);\n                    s && t.addRule(`\\n\\t\\t.monaco-editor .contentWidgets ${E.lA.lightbulbAutofix.cssSelector} {\\n\\t\\t\\tcolor: ${s};\\n\\t\\t\\tbackground-color: ${n};\\n\\t\\t}`)\n                }));\n                var V, W = function(e, t, i, n) {\n                        var o, s = arguments.length,\n                            r = s < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n                        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) r = Reflect.decorate(e, t, i, n);\n                        else\n                            for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (r = (s < 3 ? o(r) : s > 3 ? o(t, i, r) : o(t, i)) || r);\n                        return s > 3 && r && Object.defineProperty(t, i, r), r\n                    },\n                    H = function(e, t) {\n                        return function(i, n) {\n                            t(i, n, e)\n                        }\n                    },\n                    z = function(e, t, i, n) {\n                        return new(i || (i = Promise))((function(o, s) {\n                            function r(e) {\n                                try {\n                                    l(n.next(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function a(e) {\n                                try {\n                                    l(n.throw(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function l(e) {\n                                var t;\n                                e.done ? o(e.value) : (t = e.value, t instanceof i ? t : new i((function(e) {\n                                    e(t)\n                                }))).then(r, a)\n                            }\n                            l((n = n.apply(e, t || [])).next())\n                        }))\n                    },\n                    j = function(e, t, i, n, o) {\n                        if (\"m\" === n) throw new TypeError(\"Private method is not writable\");\n                        if (\"a\" === n && !o) throw new TypeError(\"Private accessor was defined without a setter\");\n                        if (\"function\" == typeof t ? e !== t || !o : !t.has(e)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n                        return \"a\" === n ? o.call(e, i) : o ? o.value = i : t.set(e, i), i\n                    },\n                    U = function(e, t, i, n) {\n                        if (\"a\" === i && !n) throw new TypeError(\"Private accessor was defined without a getter\");\n                        if (\"function\" == typeof t ? e !== t || !n : !t.has(e)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n                        return \"m\" === i ? n : \"a\" === i ? n.call(e) : n ? n.value : t.get(e)\n                    };\n                let $ = class extends s.JT {\n                    constructor(e, t, i, n, r) {\n                        super(), this._editor = e, this.delegate = n, this._activeCodeActions = this._register(new s.XK), V.set(this, !1), this._codeActionWidget = new o((() => this._register(r.createInstance(k, this._editor, {\n                            onSelectCodeAction: e => z(this, void 0, void 0, (function*() {\n                                this.delegate.applyCodeAction(e, !0)\n                            }))\n                        })))), this._lightBulbWidget = new o((() => {\n                            const e = this._register(r.createInstance(B, this._editor, t, i));\n                            return this._register(e.onClick((e => this.showCodeActionList(e.trigger, e.actions, e, {\n                                includeDisabledActions: !1\n                            })))), e\n                        }))\n                    }\n                    dispose() {\n                        j(this, V, !0, \"f\"), super.dispose()\n                    }\n                    update(e) {\n                        var t, i, n;\n                        return z(this, void 0, void 0, (function*() {\n                            if (1 !== e.type) return void(null === (t = this._lightBulbWidget.rawValue) || void 0 === t || t.hide());\n                            let o;\n                            try {\n                                o = yield e.actions\n                            } catch (e) {\n                                return void(0, h.dL)(e)\n                            }\n                            if (!U(this, V, \"f\"))\n                                if (this._lightBulbWidget.getValue().update(o, e.trigger, e.position), 1 === e.trigger.type) {\n                                    if (null === (i = e.trigger.filter) || void 0 === i ? void 0 : i.include) {\n                                        const t = this.tryGetValidActionToApply(e.trigger, o);\n                                        if (t) {\n                                            try {\n                                                this._lightBulbWidget.getValue().hide(), yield this.delegate.applyCodeAction(t, !1)\n                                            } finally {\n                                                o.dispose()\n                                            }\n                                            return\n                                        }\n                                        if (e.trigger.context) {\n                                            const t = this.getInvalidActionThatWouldHaveBeenApplied(e.trigger, o);\n                                            if (t && t.action.disabled) return u.O.get(this._editor).showMessage(t.action.disabled, e.trigger.context.position), void o.dispose()\n                                        }\n                                    }\n                                    const t = !!(null === (n = e.trigger.filter) || void 0 === n ? void 0 : n.include);\n                                    if (e.trigger.context && (!o.allActions.length || !t && !o.validActions.length)) return u.O.get(this._editor).showMessage(e.trigger.context.notAvailableMessage, e.trigger.context.position), this._activeCodeActions.value = o, void o.dispose();\n                                    this._activeCodeActions.value = o, this._codeActionWidget.getValue().show(e.trigger, o, e.position, {\n                                        includeDisabledActions: t\n                                    })\n                                } else this._codeActionWidget.getValue().isVisible ? o.dispose() : this._activeCodeActions.value = o\n                        }))\n                    }\n                    getInvalidActionThatWouldHaveBeenApplied(e, t) {\n                        if (t.allActions.length) return \"first\" === e.autoApply && 0 === t.validActions.length || \"ifSingle\" === e.autoApply && 1 === t.allActions.length ? t.allActions.find((({\n                            action: e\n                        }) => e.disabled)) : void 0\n                    }\n                    tryGetValidActionToApply(e, t) {\n                        if (t.validActions.length) return \"first\" === e.autoApply && t.validActions.length > 0 || \"ifSingle\" === e.autoApply && 1 === t.validActions.length ? t.validActions[0] : void 0\n                    }\n                    showCodeActionList(e, t, i, n) {\n                        return z(this, void 0, void 0, (function*() {\n                            this._codeActionWidget.getValue().show(e, t, i, n)\n                        }))\n                    }\n                };\n                V = new WeakMap, $ = W([H(4, g.TG)], $);\n                var K, q = i(94565),\n                    Z = i(38819),\n                    G = i(98674),\n                    Y = i(59422),\n                    Q = i(90535),\n                    X = i(10829),\n                    J = i(15393),\n                    ee = i(95935),\n                    te = i(24314),\n                    ie = function(e, t, i, n) {\n                        if (\"a\" === i && !n) throw new TypeError(\"Private accessor was defined without a getter\");\n                        if (\"function\" == typeof t ? e !== t || !n : !t.has(e)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n                        return \"m\" === i ? n : \"a\" === i ? n.call(e) : n ? n.value : t.get(e)\n                    },\n                    ne = function(e, t, i, n, o) {\n                        if (\"m\" === n) throw new TypeError(\"Private method is not writable\");\n                        if (\"a\" === n && !o) throw new TypeError(\"Private accessor was defined without a setter\");\n                        if (\"function\" == typeof t ? e !== t || !o : !t.has(e)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n                        return \"a\" === n ? o.call(e, i) : o ? o.value = i : t.set(e, i), i\n                    };\n                const oe = new Z.uy(\"supportedCodeAction\", \"\");\n                class se extends s.JT {\n                    constructor(e, t, i, n = 250) {\n                        super(), this._editor = e, this._markerService = t, this._signalChange = i, this._delay = n, this._autoTriggerTimer = this._register(new J._F), this._register(this._markerService.onMarkerChanged((e => this._onMarkerChanges(e)))), this._register(this._editor.onDidChangeCursorPosition((() => this._onCursorChange())))\n                    }\n                    trigger(e) {\n                        const t = this._getRangeOfSelectionUnlessWhitespaceEnclosed(e);\n                        return this._createEventAndSignalChange(e, t)\n                    }\n                    _onMarkerChanges(e) {\n                        const t = this._editor.getModel();\n                        t && e.some((e => (0, ee.Xy)(e, t.uri))) && this._autoTriggerTimer.cancelAndSet((() => {\n                            this.trigger({\n                                type: 2\n                            })\n                        }), this._delay)\n                    }\n                    _onCursorChange() {\n                        this._autoTriggerTimer.cancelAndSet((() => {\n                            this.trigger({\n                                type: 2\n                            })\n                        }), this._delay)\n                    }\n                    _getRangeOfMarker(e) {\n                        const t = this._editor.getModel();\n                        if (t)\n                            for (const i of this._markerService.read({\n                                    resource: t.uri\n                                })) {\n                                const n = t.validateRange(i);\n                                if (te.e.intersectRanges(n, e)) return te.e.lift(n)\n                            }\n                    }\n                    _getRangeOfSelectionUnlessWhitespaceEnclosed(e) {\n                        if (!this._editor.hasModel()) return;\n                        const t = this._editor.getModel(),\n                            i = this._editor.getSelection();\n                        if (i.isEmpty() && 2 === e.type) {\n                            const {\n                                lineNumber: e,\n                                column: n\n                            } = i.getPosition(), o = t.getLineContent(e);\n                            if (0 === o.length) return;\n                            if (1 === n) {\n                                if (/\\s/.test(o[0])) return\n                            } else if (n === t.getLineMaxColumn(e)) {\n                                if (/\\s/.test(o[o.length - 1])) return\n                            } else if (/\\s/.test(o[n - 2]) && /\\s/.test(o[n - 1])) return\n                        }\n                        return i\n                    }\n                    _createEventAndSignalChange(e, t) {\n                        const i = this._editor.getModel();\n                        if (!t || !i) return void this._signalChange(void 0);\n                        const n = this._getRangeOfMarker(t),\n                            o = n ? n.getStartPosition() : t.getStartPosition(),\n                            s = {\n                                trigger: e,\n                                selection: t,\n                                position: o\n                            };\n                        return this._signalChange(s), s\n                    }\n                }\n                var re;\n                ! function(e) {\n                    e.Empty = {\n                        type: 0\n                    };\n                    e.Triggered = class {\n                        constructor(e, t, i, n) {\n                            this.trigger = e, this.rangeOrSelection = t, this.position = i, this._cancellablePromise = n, this.type = 1, this.actions = n.catch((e => {\n                                if ((0, h.VV)(e)) return ae;\n                                throw e\n                            }))\n                        }\n                        cancel() {\n                            this._cancellablePromise.cancel()\n                        }\n                    }\n                }(re || (re = {}));\n                const ae = {\n                    allActions: [],\n                    validActions: [],\n                    dispose: () => {},\n                    documentation: [],\n                    hasAutoFix: !1\n                };\n                class le extends s.JT {\n                    constructor(e, t, i, n) {\n                        super(), this._editor = e, this._markerService = t, this._progressService = n, this._codeActionOracle = this._register(new s.XK), this._state = re.Empty, this._onDidChangeState = this._register(new T.Q5), this.onDidChangeState = this._onDidChangeState.event, K.set(this, !1), this._supportedCodeActions = oe.bindTo(i), this._register(this._editor.onDidChangeModel((() => this._update()))), this._register(this._editor.onDidChangeModelLanguage((() => this._update()))), this._register(v.H9.onDidChange((() => this._update()))), this._update()\n                    }\n                    dispose() {\n                        ie(this, K, \"f\") || (ne(this, K, !0, \"f\"), super.dispose(), this.setState(re.Empty, !0))\n                    }\n                    _update() {\n                        if (ie(this, K, \"f\")) return;\n                        this._codeActionOracle.value = void 0, this.setState(re.Empty);\n                        const e = this._editor.getModel();\n                        if (e && v.H9.has(e) && !this._editor.getOption(80)) {\n                            const t = [];\n                            for (const i of v.H9.all(e)) Array.isArray(i.providedCodeActionKinds) && t.push(...i.providedCodeActionKinds);\n                            this._supportedCodeActions.set(t.join(\" \")), this._codeActionOracle.value = new se(this._editor, this._markerService, (t => {\n                                var i;\n                                if (!t) return void this.setState(re.Empty);\n                                const n = (0, J.PG)((i => (0, d.aI)(e, t.selection, t.trigger, Q.E.None, i)));\n                                1 === t.trigger.type && (null === (i = this._progressService) || void 0 === i || i.showWhile(n, 250)), this.setState(new re.Triggered(t.trigger, t.selection, t.position, n))\n                            }), void 0), this._codeActionOracle.value.trigger({\n                                type: 2\n                            })\n                        } else this._supportedCodeActions.reset()\n                    }\n                    trigger(e) {\n                        this._codeActionOracle.value && this._codeActionOracle.value.trigger(e)\n                    }\n                    setState(e, t) {\n                        e !== this._state && (1 === this._state.type && this._state.cancel(), this._state = e, t || ie(this, K, \"f\") || this._onDidChangeState.fire(e))\n                    }\n                }\n                K = new WeakMap;\n                var ce = function(e, t, i, n) {\n                        var o, s = arguments.length,\n                            r = s < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n                        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) r = Reflect.decorate(e, t, i, n);\n                        else\n                            for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (r = (s < 3 ? o(r) : s > 3 ? o(t, i, r) : o(t, i)) || r);\n                        return s > 3 && r && Object.defineProperty(t, i, r), r\n                    },\n                    de = function(e, t) {\n                        return function(i, n) {\n                            t(i, n, e)\n                        }\n                    },\n                    he = function(e, t, i, n) {\n                        return new(i || (i = Promise))((function(o, s) {\n                            function r(e) {\n                                try {\n                                    l(n.next(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function a(e) {\n                                try {\n                                    l(n.throw(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function l(e) {\n                                var t;\n                                e.done ? o(e.value) : (t = e.value, t instanceof i ? t : new i((function(e) {\n                                    e(t)\n                                }))).then(r, a)\n                            }\n                            l((n = n.apply(e, t || [])).next())\n                        }))\n                    };\n\n                function ue(e) {\n                    return Z.Ao.regex(oe.keys()[0], new RegExp(\"(\\\\s|^)\" + (0, r.ec)(e.value) + \"\\\\b\"))\n                }\n                const ge = {\n                    type: \"object\",\n                    defaultSnippets: [{\n                        body: {\n                            kind: \"\"\n                        }\n                    }],\n                    properties: {\n                        kind: {\n                            type: \"string\",\n                            description: A.N(\"args.schema.kind\", \"Kind of the code action to run.\")\n                        },\n                        apply: {\n                            type: \"string\",\n                            description: A.N(\"args.schema.apply\", \"Controls when the returned actions are applied.\"),\n                            default: \"ifSingle\",\n                            enum: [\"first\", \"ifSingle\", \"never\"],\n                            enumDescriptions: [A.N(\"args.schema.apply.first\", \"Always apply the first returned code action.\"), A.N(\"args.schema.apply.ifSingle\", \"Apply the first returned code action if it is the only one.\"), A.N(\"args.schema.apply.never\", \"Do not apply the returned code actions.\")]\n                        },\n                        preferred: {\n                            type: \"boolean\",\n                            default: !1,\n                            description: A.N(\"args.schema.preferred\", \"Controls if only preferred code actions should be returned.\")\n                        }\n                    }\n                };\n                let pe = class e extends s.JT {\n                    constructor(e, t, i, n, s) {\n                        super(), this._instantiationService = s, this._editor = e, this._model = this._register(new le(this._editor, t, i, n)), this._register(this._model.onDidChangeState((e => this.update(e)))), this._ui = new o((() => this._register(new $(e, ve.Id, xe.Id, {\n                            applyCodeAction: (e, t) => he(this, void 0, void 0, (function*() {\n                                try {\n                                    yield this._applyCodeAction(e)\n                                } finally {\n                                    t && this._trigger({\n                                        type: 2,\n                                        filter: {}\n                                    })\n                                }\n                            }))\n                        }, this._instantiationService))))\n                    }\n                    static get(t) {\n                        return t.getContribution(e.ID)\n                    }\n                    update(e) {\n                        this._ui.getValue().update(e)\n                    }\n                    showCodeActions(e, t, i) {\n                        return this._ui.getValue().showCodeActionList(e, t, i, {\n                            includeDisabledActions: !1\n                        })\n                    }\n                    manualTriggerAtCurrentPosition(e, t, i) {\n                        if (!this._editor.hasModel()) return;\n                        u.O.get(this._editor).closeMessage();\n                        const n = this._editor.getPosition();\n                        this._trigger({\n                            type: 1,\n                            filter: t,\n                            autoApply: i,\n                            context: {\n                                notAvailableMessage: e,\n                                position: n\n                            }\n                        })\n                    }\n                    _trigger(e) {\n                        return this._model.trigger(e)\n                    }\n                    _applyCodeAction(e) {\n                        return this._instantiationService.invokeFunction(fe, e, this._editor)\n                    }\n                };\n\n                function fe(e, t, i) {\n                    return he(this, void 0, void 0, (function*() {\n                        const o = e.get(l.vu),\n                            s = e.get(q.H),\n                            r = e.get(X.b),\n                            a = e.get(Y.lT);\n                        if (r.publicLog2(\"codeAction.applyCodeAction\", {\n                                codeActionTitle: t.action.title,\n                                codeActionKind: t.action.kind,\n                                codeActionIsPreferred: !!t.action.isPreferred\n                            }), yield t.resolve(n.T.None), t.action.edit && (yield o.apply(l.fo.convert(t.action.edit), {\n                                editor: i,\n                                label: t.action.title\n                            })), t.action.command) try {\n                            yield s.executeCommand(t.action.command.id, ...t.action.command.arguments || [])\n                        } catch (e) {\n                            const t = function(e) {\n                                return \"string\" == typeof e ? e : e instanceof Error && \"string\" == typeof e.message ? e.message : void 0\n                            }(e);\n                            a.error(\"string\" == typeof t ? t : A.N(\"applyCodeActionFailed\", \"An unknown error occurred while applying the code action\"))\n                        }\n                    }))\n                }\n\n                function me(e, t, i, n) {\n                    if (e.hasModel()) {\n                        const o = pe.get(e);\n                        o && o.manualTriggerAtCurrentPosition(t, i, n)\n                    }\n                }\n                pe.ID = \"editor.contrib.quickFixController\", pe = ce([de(1, G.lT), de(2, Z.i6), de(3, Q.e), de(4, g.TG)], pe);\n                class ve extends a.R6 {\n                    constructor() {\n                        super({\n                            id: ve.Id,\n                            label: A.N(\"quickfix.trigger.label\", \"Quick Fix...\"),\n                            alias: \"Quick Fix...\",\n                            precondition: Z.Ao.and(c.u.writable, c.u.hasCodeActionsProvider),\n                            kbOpts: {\n                                kbExpr: c.u.editorTextFocus,\n                                primary: 2132,\n                                weight: 100\n                            }\n                        })\n                    }\n                    run(e, t) {\n                        return me(t, A.N(\"editor.action.quickFix.noneMessage\", \"No code actions available\"), void 0, void 0)\n                    }\n                }\n                ve.Id = \"editor.action.quickFix\";\n                class _e extends a._l {\n                    constructor() {\n                        super({\n                            id: d.RB,\n                            precondition: Z.Ao.and(c.u.writable, c.u.hasCodeActionsProvider),\n                            description: {\n                                description: \"Trigger a code action\",\n                                args: [{\n                                    name: \"args\",\n                                    schema: ge\n                                }]\n                            }\n                        })\n                    }\n                    runEditorCommand(e, t, i) {\n                        const n = _.wZ.fromUser(i, {\n                            kind: _.yN.Empty,\n                            apply: \"ifSingle\"\n                        });\n                        return me(t, \"string\" == typeof(null == i ? void 0 : i.kind) ? n.preferred ? A.N(\"editor.action.codeAction.noneMessage.preferred.kind\", \"No preferred code actions for '{0}' available\", i.kind) : A.N(\"editor.action.codeAction.noneMessage.kind\", \"No code actions for '{0}' available\", i.kind) : n.preferred ? A.N(\"editor.action.codeAction.noneMessage.preferred\", \"No preferred code actions available\") : A.N(\"editor.action.codeAction.noneMessage\", \"No code actions available\"), {\n                            include: n.kind,\n                            includeSourceActions: !0,\n                            onlyIncludePreferredActions: n.preferred\n                        }, n.apply)\n                    }\n                }\n                class be extends a.R6 {\n                    constructor() {\n                        super({\n                            id: d.Bb,\n                            label: A.N(\"refactor.label\", \"Refactor...\"),\n                            alias: \"Refactor...\",\n                            precondition: Z.Ao.and(c.u.writable, c.u.hasCodeActionsProvider),\n                            kbOpts: {\n                                kbExpr: c.u.editorTextFocus,\n                                primary: 3120,\n                                mac: {\n                                    primary: 1328\n                                },\n                                weight: 100\n                            },\n                            contextMenuOpts: {\n                                group: \"1_modification\",\n                                order: 2,\n                                when: Z.Ao.and(c.u.writable, ue(_.yN.Refactor))\n                            },\n                            description: {\n                                description: \"Refactor...\",\n                                args: [{\n                                    name: \"args\",\n                                    schema: ge\n                                }]\n                            }\n                        })\n                    }\n                    run(e, t, i) {\n                        const n = _.wZ.fromUser(i, {\n                            kind: _.yN.Refactor,\n                            apply: \"never\"\n                        });\n                        return me(t, \"string\" == typeof(null == i ? void 0 : i.kind) ? n.preferred ? A.N(\"editor.action.refactor.noneMessage.preferred.kind\", \"No preferred refactorings for '{0}' available\", i.kind) : A.N(\"editor.action.refactor.noneMessage.kind\", \"No refactorings for '{0}' available\", i.kind) : n.preferred ? A.N(\"editor.action.refactor.noneMessage.preferred\", \"No preferred refactorings available\") : A.N(\"editor.action.refactor.noneMessage\", \"No refactorings available\"), {\n                            include: _.yN.Refactor.contains(n.kind) ? n.kind : _.yN.None,\n                            onlyIncludePreferredActions: n.preferred\n                        }, n.apply)\n                    }\n                }\n                class we extends a.R6 {\n                    constructor() {\n                        super({\n                            id: d.MN,\n                            label: A.N(\"source.label\", \"Source Action...\"),\n                            alias: \"Source Action...\",\n                            precondition: Z.Ao.and(c.u.writable, c.u.hasCodeActionsProvider),\n                            contextMenuOpts: {\n                                group: \"1_modification\",\n                                order: 2.1,\n                                when: Z.Ao.and(c.u.writable, ue(_.yN.Source))\n                            },\n                            description: {\n                                description: \"Source Action...\",\n                                args: [{\n                                    name: \"args\",\n                                    schema: ge\n                                }]\n                            }\n                        })\n                    }\n                    run(e, t, i) {\n                        const n = _.wZ.fromUser(i, {\n                            kind: _.yN.Source,\n                            apply: \"never\"\n                        });\n                        return me(t, \"string\" == typeof(null == i ? void 0 : i.kind) ? n.preferred ? A.N(\"editor.action.source.noneMessage.preferred.kind\", \"No preferred source actions for '{0}' available\", i.kind) : A.N(\"editor.action.source.noneMessage.kind\", \"No source actions for '{0}' available\", i.kind) : n.preferred ? A.N(\"editor.action.source.noneMessage.preferred\", \"No preferred source actions available\") : A.N(\"editor.action.source.noneMessage\", \"No source actions available\"), {\n                            include: _.yN.Source.contains(n.kind) ? n.kind : _.yN.None,\n                            includeSourceActions: !0,\n                            onlyIncludePreferredActions: n.preferred\n                        }, n.apply)\n                    }\n                }\n                class ye extends a.R6 {\n                    constructor() {\n                        super({\n                            id: d.uH,\n                            label: A.N(\"organizeImports.label\", \"Organize Imports\"),\n                            alias: \"Organize Imports\",\n                            precondition: Z.Ao.and(c.u.writable, ue(_.yN.SourceOrganizeImports)),\n                            kbOpts: {\n                                kbExpr: c.u.editorTextFocus,\n                                primary: 1581,\n                                weight: 100\n                            }\n                        })\n                    }\n                    run(e, t) {\n                        return me(t, A.N(\"editor.action.organize.noneMessage\", \"No organize imports action available\"), {\n                            include: _.yN.SourceOrganizeImports,\n                            includeSourceActions: !0\n                        }, \"ifSingle\")\n                    }\n                }\n                class Ce extends a.R6 {\n                    constructor() {\n                        super({\n                            id: d.TM,\n                            label: A.N(\"fixAll.label\", \"Fix All\"),\n                            alias: \"Fix All\",\n                            precondition: Z.Ao.and(c.u.writable, ue(_.yN.SourceFixAll))\n                        })\n                    }\n                    run(e, t) {\n                        return me(t, A.N(\"fixAll.noneMessage\", \"No fix all action available\"), {\n                            include: _.yN.SourceFixAll,\n                            includeSourceActions: !0\n                        }, \"ifSingle\")\n                    }\n                }\n                class xe extends a.R6 {\n                    constructor() {\n                        super({\n                            id: xe.Id,\n                            label: A.N(\"autoFix.label\", \"Auto Fix...\"),\n                            alias: \"Auto Fix...\",\n                            precondition: Z.Ao.and(c.u.writable, ue(_.yN.QuickFix)),\n                            kbOpts: {\n                                kbExpr: c.u.editorTextFocus,\n                                primary: 1620,\n                                mac: {\n                                    primary: 2644\n                                },\n                                weight: 100\n                            }\n                        })\n                    }\n                    run(e, t) {\n                        return me(t, A.N(\"editor.action.autoFix.noneMessage\", \"No auto fixes available\"), {\n                            include: _.yN.QuickFix,\n                            onlyIncludePreferredActions: !0\n                        }, \"ifSingle\")\n                    }\n                }\n                xe.Id = \"editor.action.autoFix\"\n            },\n            9093: (e, t, i) => {\n                \"use strict\";\n                i.r(t);\n                var n = i(16830),\n                    o = i(23674);\n                (0, n._K)(o.pY.ID, o.pY), (0, n.Qr)(o.E7), (0, n.Qr)(o.Eb), (0, n.Qr)(o.VQ), (0, n.Qr)(o.o$), (0, n.Qr)(o.S5), (0, n.Qr)(o.Hv), (0, n.fK)(new o.dW)\n            },\n            89532: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    EU: () => o,\n                    Yl: () => s,\n                    wZ: () => a,\n                    yN: () => n\n                });\n                class n {\n                    constructor(e) {\n                        this.value = e\n                    }\n                    equals(e) {\n                        return this.value === e.value\n                    }\n                    contains(e) {\n                        return this.equals(e) || \"\" === this.value || e.value.startsWith(this.value + n.sep)\n                    }\n                    intersects(e) {\n                        return this.contains(e) || e.contains(this)\n                    }\n                    append(e) {\n                        return new n(this.value + n.sep + e)\n                    }\n                }\n\n                function o(e, t) {\n                    return !(e.include && !e.include.intersects(t)) && ((!e.excludes || !e.excludes.some((i => r(t, i, e.include)))) && !(!e.includeSourceActions && n.Source.contains(t)))\n                }\n\n                function s(e, t) {\n                    const i = t.kind ? new n(t.kind) : void 0;\n                    return !!(!e.include || i && e.include.contains(i)) && (!(e.excludes && i && e.excludes.some((t => r(i, t, e.include)))) && (!(!e.includeSourceActions && i && n.Source.contains(i)) && !(e.onlyIncludePreferredActions && !t.isPreferred)))\n                }\n\n                function r(e, t, i) {\n                    return !!t.contains(e) && (!i || !t.contains(i))\n                }\n                n.sep = \".\", n.None = new n(\"@@none@@\"), n.Empty = new n(\"\"), n.QuickFix = new n(\"quickfix\"), n.Refactor = new n(\"refactor\"), n.Source = new n(\"source\"), n.SourceOrganizeImports = n.Source.append(\"organizeImports\"), n.SourceFixAll = n.Source.append(\"fixAll\");\n                class a {\n                    constructor(e, t, i) {\n                        this.kind = e, this.apply = t, this.preferred = i\n                    }\n                    static fromUser(e, t) {\n                        return e && \"object\" == typeof e ? new a(a.getKindFromUser(e, t.kind), a.getApplyFromUser(e, t.apply), a.getPreferredUser(e)) : new a(t.kind, t.apply, !1)\n                    }\n                    static getApplyFromUser(e, t) {\n                        switch (\"string\" == typeof e.apply ? e.apply.toLowerCase() : \"\") {\n                            case \"first\":\n                                return \"first\";\n                            case \"never\":\n                                return \"never\";\n                            case \"ifsingle\":\n                                return \"ifSingle\";\n                            default:\n                                return t\n                        }\n                    }\n                    static getKindFromUser(e, t) {\n                        return \"string\" == typeof e.kind ? new n(e.kind) : t\n                    }\n                    static getPreferredUser(e) {\n                        return \"boolean\" == typeof e.preferred && e.preferred\n                    }\n                }\n            },\n            53832: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    CodeLensContribution: () => Z\n                });\n                var n = i(65321),\n                    o = i(15393),\n                    s = i(17301),\n                    r = i(89954),\n                    a = i(5976),\n                    l = i(39925),\n                    c = i(16830),\n                    d = i(64141),\n                    h = i(29102),\n                    u = i(44101),\n                    g = i(21036),\n                    p = i(71050),\n                    f = i(98401),\n                    m = i(70666),\n                    v = i(51200),\n                    _ = i(94565),\n                    b = function(e, t, i, n) {\n                        return new(i || (i = Promise))((function(o, s) {\n                            function r(e) {\n                                try {\n                                    l(n.next(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function a(e) {\n                                try {\n                                    l(n.throw(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function l(e) {\n                                var t;\n                                e.done ? o(e.value) : (t = e.value, t instanceof i ? t : new i((function(e) {\n                                    e(t)\n                                }))).then(r, a)\n                            }\n                            l((n = n.apply(e, t || [])).next())\n                        }))\n                    };\n                class w {\n                    constructor() {\n                        this.lenses = [], this._disposables = new a.SL\n                    }\n                    dispose() {\n                        this._disposables.dispose()\n                    }\n                    add(e, t) {\n                        this._disposables.add(e);\n                        for (const i of e.lenses) this.lenses.push({\n                            symbol: i,\n                            provider: t\n                        })\n                    }\n                }\n\n                function y(e, t) {\n                    return b(this, void 0, void 0, (function*() {\n                        const i = u.He.ordered(e),\n                            n = new Map,\n                            o = new w,\n                            r = i.map(((i, r) => b(this, void 0, void 0, (function*() {\n                                n.set(i, r);\n                                try {\n                                    const n = yield Promise.resolve(i.provideCodeLenses(e, t));\n                                    n && o.add(n, i)\n                                } catch (e) {\n                                    (0, s.Cp)(e)\n                                }\n                            }))));\n                        return yield Promise.all(r), o.lenses = o.lenses.sort(((e, t) => e.symbol.range.startLineNumber < t.symbol.range.startLineNumber ? -1 : e.symbol.range.startLineNumber > t.symbol.range.startLineNumber ? 1 : n.get(e.provider) < n.get(t.provider) ? -1 : n.get(e.provider) > n.get(t.provider) ? 1 : e.symbol.range.startColumn < t.symbol.range.startColumn ? -1 : e.symbol.range.startColumn > t.symbol.range.startColumn ? 1 : 0)), o\n                    }))\n                }\n                _.P.registerCommand(\"_executeCodeLensProvider\", (function(e, ...t) {\n                    let [i, n] = t;\n                    (0, f.p_)(m.o.isUri(i)), (0, f.p_)(\"number\" == typeof n || !n);\n                    const o = e.get(v.q).getModel(i);\n                    if (!o) throw (0, s.b1)();\n                    const r = [],\n                        l = new a.SL;\n                    return y(o, p.T.None).then((e => {\n                        l.add(e);\n                        let t = [];\n                        for (const i of e.lenses) null == n || Boolean(i.symbol.command) ? r.push(i.symbol) : n-- > 0 && i.provider.resolveCodeLens && t.push(Promise.resolve(i.provider.resolveCodeLens(o, i.symbol, p.T.None)).then((e => r.push(e || i.symbol))));\n                        return Promise.all(t)\n                    })).then((() => r)).finally((() => {\n                        setTimeout((() => l.dispose()), 100)\n                    }))\n                }));\n                var C = i(88289),\n                    x = i(43702),\n                    S = i(24314),\n                    k = i(65026),\n                    L = i(72065),\n                    N = i(26904),\n                    D = function(e, t, i, n) {\n                        var o, s = arguments.length,\n                            r = s < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n                        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) r = Reflect.decorate(e, t, i, n);\n                        else\n                            for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (r = (s < 3 ? o(r) : s > 3 ? o(t, i, r) : o(t, i)) || r);\n                        return s > 3 && r && Object.defineProperty(t, i, r), r\n                    },\n                    I = function(e, t) {\n                        return function(i, n) {\n                            t(i, n, e)\n                        }\n                    };\n                const E = (0, L.yh)(\"ICodeLensCache\");\n                class T {\n                    constructor(e, t) {\n                        this.lineCount = e, this.data = t\n                    }\n                }\n                let M = class {\n                    constructor(e) {\n                        this._fakeProvider = new class {\n                            provideCodeLenses() {\n                                throw new Error(\"not supported\")\n                            }\n                        }, this._cache = new x.z6(20, .75);\n                        (0, o.To)((() => e.remove(\"codelens/cache\", 1)));\n                        const t = \"codelens/cache2\",\n                            i = e.get(t, 1, \"{}\");\n                        this._deserialize(i), (0, C.I)(e.onWillSaveState)((i => {\n                            i.reason === N.fk.SHUTDOWN && e.store(t, this._serialize(), 1, 1)\n                        }))\n                    }\n                    put(e, t) {\n                        const i = t.lenses.map((e => {\n                                var t;\n                                return {\n                                    range: e.symbol.range,\n                                    command: e.symbol.command && {\n                                        id: \"\",\n                                        title: null === (t = e.symbol.command) || void 0 === t ? void 0 : t.title\n                                    }\n                                }\n                            })),\n                            n = new w;\n                        n.add({\n                            lenses: i,\n                            dispose: () => {}\n                        }, this._fakeProvider);\n                        const o = new T(e.getLineCount(), n);\n                        this._cache.set(e.uri.toString(), o)\n                    }\n                    get(e) {\n                        const t = this._cache.get(e.uri.toString());\n                        return t && t.lineCount === e.getLineCount() ? t.data : void 0\n                    }\n                    delete(e) {\n                        this._cache.delete(e.uri.toString())\n                    }\n                    _serialize() {\n                        const e = Object.create(null);\n                        for (const [t, i] of this._cache) {\n                            const n = new Set;\n                            for (const e of i.data.lenses) n.add(e.symbol.range.startLineNumber);\n                            e[t] = {\n                                lineCount: i.lineCount,\n                                lines: [...n.values()]\n                            }\n                        }\n                        return JSON.stringify(e)\n                    }\n                    _deserialize(e) {\n                        try {\n                            const t = JSON.parse(e);\n                            for (const e in t) {\n                                const i = t[e],\n                                    n = [];\n                                for (const e of i.lines) n.push({\n                                    range: new S.e(e, 1, e, 11)\n                                });\n                                const o = new w;\n                                o.add({\n                                    lenses: n,\n                                    dispose() {}\n                                }, this._fakeProvider), this._cache.set(e, new T(i.lineCount, o))\n                            }\n                        } catch (e) {}\n                    }\n                };\n                M = D([I(0, N.Uy)], M), (0, k.z)(E, M);\n                var A = i(56811),\n                    O = (i(26197), i(44174)),\n                    P = i(27869),\n                    R = i(73910),\n                    F = i(97781);\n                class B {\n                    constructor(e, t, i) {\n                        this.afterLineNumber = e, this.heightInPx = t, this._onHeight = i, this.suppressMouseDown = !0, this.domNode = document.createElement(\"div\")\n                    }\n                    onComputedHeight(e) {\n                        void 0 === this._lastHeight ? this._lastHeight = e : this._lastHeight !== e && (this._lastHeight = e, this._onHeight())\n                    }\n                    isVisible() {\n                        return 0 !== this._lastHeight && this.domNode.hasAttribute(\"monaco-visible-view-zone\")\n                    }\n                }\n                class V {\n                    constructor(e, t, i) {\n                        this.allowEditorOverflow = !1, this.suppressMouseDown = !0, this._commands = new Map, this._isEmpty = !0, this._editor = e, this._id = \"codelens.widget-\" + V._idPool++, this.updatePosition(i), this._domNode = document.createElement(\"span\"), this._domNode.className = `codelens-decoration ${t}`\n                    }\n                    withCommands(e, t) {\n                        this._commands.clear();\n                        let i = [],\n                            o = !1;\n                        for (let t = 0; t < e.length; t++) {\n                            const s = e[t];\n                            if (s && (o = !0, s.command)) {\n                                const o = (0, A.T)(s.command.title.trim());\n                                s.command.id ? (i.push(n.$(\"a\", {\n                                    id: String(t),\n                                    title: s.command.tooltip\n                                }, ...o)), this._commands.set(String(t), s.command)) : i.push(n.$(\"span\", {\n                                    title: s.command.tooltip\n                                }, ...o)), t + 1 < e.length && i.push(n.$(\"span\", void 0, \" | \"))\n                            }\n                        }\n                        o ? (n.mc(this._domNode, ...i), this._isEmpty && t && this._domNode.classList.add(\"fadein\"), this._isEmpty = !1) : n.mc(this._domNode, n.$(\"span\", void 0, \"no commands\"))\n                    }\n                    getCommand(e) {\n                        return e.parentElement === this._domNode ? this._commands.get(e.id) : void 0\n                    }\n                    getId() {\n                        return this._id\n                    }\n                    getDomNode() {\n                        return this._domNode\n                    }\n                    updatePosition(e) {\n                        const t = this._editor.getModel().getLineFirstNonWhitespaceColumn(e);\n                        this._widgetPosition = {\n                            position: {\n                                lineNumber: e,\n                                column: t\n                            },\n                            preference: [1]\n                        }\n                    }\n                    getPosition() {\n                        return this._widgetPosition || null\n                    }\n                }\n                V._idPool = 0;\n                class W {\n                    constructor() {\n                        this._removeDecorations = [], this._addDecorations = [], this._addDecorationsCallbacks = []\n                    }\n                    addDecoration(e, t) {\n                        this._addDecorations.push(e), this._addDecorationsCallbacks.push(t)\n                    }\n                    removeDecoration(e) {\n                        this._removeDecorations.push(e)\n                    }\n                    commit(e) {\n                        let t = e.deltaDecorations(this._removeDecorations, this._addDecorations);\n                        for (let e = 0, i = t.length; e < i; e++) this._addDecorationsCallbacks[e](t[e])\n                    }\n                }\n                class H {\n                    constructor(e, t, i, n, o, s, r) {\n                        let a;\n                        this._isDisposed = !1, this._editor = t, this._className = i, this._data = e, this._decorationIds = [];\n                        let l = [];\n                        this._data.forEach(((e, t) => {\n                            e.symbol.command && l.push(e.symbol), n.addDecoration({\n                                range: e.symbol.range,\n                                options: O.qx.EMPTY\n                            }, (e => this._decorationIds[t] = e)), a = a ? S.e.plusRange(a, e.symbol.range) : S.e.lift(e.symbol.range)\n                        })), this._viewZone = new B(a.startLineNumber - 1, s, r), this._viewZoneId = o.addZone(this._viewZone), l.length > 0 && (this._createContentWidgetIfNecessary(), this._contentWidget.withCommands(l, !1))\n                    }\n                    _createContentWidgetIfNecessary() {\n                        this._contentWidget ? this._editor.layoutContentWidget(this._contentWidget) : (this._contentWidget = new V(this._editor, this._className, this._viewZone.afterLineNumber + 1), this._editor.addContentWidget(this._contentWidget))\n                    }\n                    dispose(e, t) {\n                        this._decorationIds.forEach(e.removeDecoration, e), this._decorationIds = [], t && t.removeZone(this._viewZoneId), this._contentWidget && (this._editor.removeContentWidget(this._contentWidget), this._contentWidget = void 0), this._isDisposed = !0\n                    }\n                    isDisposed() {\n                        return this._isDisposed\n                    }\n                    isValid() {\n                        return this._decorationIds.some(((e, t) => {\n                            const i = this._editor.getModel().getDecorationRange(e),\n                                n = this._data[t].symbol;\n                            return !(!i || S.e.isEmpty(n.range) !== i.isEmpty())\n                        }))\n                    }\n                    updateCodeLensSymbols(e, t) {\n                        this._decorationIds.forEach(t.removeDecoration, t), this._decorationIds = [], this._data = e, this._data.forEach(((e, i) => {\n                            t.addDecoration({\n                                range: e.symbol.range,\n                                options: O.qx.EMPTY\n                            }, (e => this._decorationIds[i] = e))\n                        }))\n                    }\n                    updateHeight(e, t) {\n                        this._viewZone.heightInPx = e, t.layoutZone(this._viewZoneId), this._contentWidget && this._editor.layoutContentWidget(this._contentWidget)\n                    }\n                    computeIfNecessary(e) {\n                        if (!this._viewZone.isVisible()) return null;\n                        for (let t = 0; t < this._decorationIds.length; t++) {\n                            const i = e.getDecorationRange(this._decorationIds[t]);\n                            i && (this._data[t].symbol.range = i)\n                        }\n                        return this._data\n                    }\n                    updateCommands(e) {\n                        this._createContentWidgetIfNecessary(), this._contentWidget.withCommands(e, !0);\n                        for (let t = 0; t < this._data.length; t++) {\n                            const i = e[t];\n                            if (i) {\n                                const {\n                                    symbol: e\n                                } = this._data[t];\n                                e.command = i.command || e.command\n                            }\n                        }\n                    }\n                    getCommand(e) {\n                        var t;\n                        return null === (t = this._contentWidget) || void 0 === t ? void 0 : t.getCommand(e)\n                    }\n                    getLineNumber() {\n                        const e = this._editor.getModel().getDecorationRange(this._decorationIds[0]);\n                        return e ? e.startLineNumber : -1\n                    }\n                    update(e) {\n                        if (this.isValid()) {\n                            const t = this._editor.getModel().getDecorationRange(this._decorationIds[0]);\n                            t && (this._viewZone.afterLineNumber = t.startLineNumber - 1, e.layoutZone(this._viewZoneId), this._contentWidget && (this._contentWidget.updatePosition(t.startLineNumber), this._editor.layoutContentWidget(this._contentWidget)))\n                        }\n                    }\n                    getItems() {\n                        return this._data\n                    }\n                }(0, F.Ic)(((e, t) => {\n                    const i = e.getColor(P.Yp);\n                    i && (t.addRule(`.monaco-editor .codelens-decoration { color: ${i}; }`), t.addRule(`.monaco-editor .codelens-decoration .codicon { color: ${i}; }`));\n                    const n = e.getColor(R._Y);\n                    n && (t.addRule(`.monaco-editor .codelens-decoration > a:hover { color: ${n} !important; }`), t.addRule(`.monaco-editor .codelens-decoration > a:hover .codicon { color: ${n} !important; }`))\n                }));\n                var z = i(63580),\n                    j = i(59422),\n                    U = i(41157),\n                    $ = function(e, t, i, n) {\n                        var o, s = arguments.length,\n                            r = s < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n                        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) r = Reflect.decorate(e, t, i, n);\n                        else\n                            for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (r = (s < 3 ? o(r) : s > 3 ? o(t, i, r) : o(t, i)) || r);\n                        return s > 3 && r && Object.defineProperty(t, i, r), r\n                    },\n                    K = function(e, t) {\n                        return function(i, n) {\n                            t(i, n, e)\n                        }\n                    },\n                    q = function(e, t, i, n) {\n                        return new(i || (i = Promise))((function(o, s) {\n                            function r(e) {\n                                try {\n                                    l(n.next(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function a(e) {\n                                try {\n                                    l(n.throw(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function l(e) {\n                                var t;\n                                e.done ? o(e.value) : (t = e.value, t instanceof i ? t : new i((function(e) {\n                                    e(t)\n                                }))).then(r, a)\n                            }\n                            l((n = n.apply(e, t || [])).next())\n                        }))\n                    };\n                let Z = class {\n                    constructor(e, t, i, s) {\n                        this._editor = e, this._commandService = t, this._notificationService = i, this._codeLensCache = s, this._disposables = new a.SL, this._localToDispose = new a.SL, this._lenses = [], this._getCodeLensModelDelays = new g.Y(u.He, 250, 2500), this._oldCodeLensModels = new a.SL, this._resolveCodeLensesDelays = new g.Y(u.He, 250, 2500), this._resolveCodeLensesScheduler = new o.pY((() => this._resolveCodeLensesInViewport()), this._resolveCodeLensesDelays.min), this._disposables.add(this._editor.onDidChangeModel((() => this._onModelChange()))), this._disposables.add(this._editor.onDidChangeModelLanguage((() => this._onModelChange()))), this._disposables.add(this._editor.onDidChangeConfiguration((e => {\n                            (e.hasChanged(43) || e.hasChanged(16) || e.hasChanged(15)) && this._updateLensStyle(), e.hasChanged(14) && this._onModelChange()\n                        }))), this._disposables.add(u.He.onDidChange(this._onModelChange, this)), this._onModelChange(), this._styleClassName = \"_\" + (0, r.vp)(this._editor.getId()).toString(16), this._styleElement = n.dS(n.OO(this._editor.getContainerDomNode()) ? this._editor.getContainerDomNode() : void 0), this._updateLensStyle()\n                    }\n                    dispose() {\n                        var e;\n                        this._localDispose(), this._disposables.dispose(), this._oldCodeLensModels.dispose(), null === (e = this._currentCodeLensModel) || void 0 === e || e.dispose(), this._styleElement.remove()\n                    }\n                    _getLayoutInfo() {\n                        let e, t = this._editor.getOption(16);\n                        return !t || t < 5 ? (t = .9 * this._editor.getOption(45) | 0, e = this._editor.getOption(58)) : e = t * Math.max(1.3, this._editor.getOption(58) / this._editor.getOption(45)) | 0, {\n                            codeLensHeight: e,\n                            fontSize: t\n                        }\n                    }\n                    _updateLensStyle() {\n                        const {\n                            codeLensHeight: e,\n                            fontSize: t\n                        } = this._getLayoutInfo(), i = this._editor.getOption(15), n = this._editor.getOption(43), o = `--codelens-font-family${this._styleClassName}`, s = `--codelens-font-features${this._styleClassName}`;\n                        let r = `\\n\\t\\t.monaco-editor .codelens-decoration.${this._styleClassName} { line-height: ${e}px; font-size: ${t}px; padding-right: ${Math.round(.5*t)}px; font-feature-settings: var(${s}) }\\n\\t\\t.monaco-editor .codelens-decoration.${this._styleClassName} span.codicon { line-height: ${e}px; font-size: ${t}px; }\\n\\t\\t`;\n                        i && (r += `.monaco-editor .codelens-decoration.${this._styleClassName} { font-family: var(${o}), ${d.hL.fontFamily}}`), this._styleElement.textContent = r, this._editor.getContainerDomNode().style.setProperty(o, null != i ? i : \"inherit\"), this._editor.getContainerDomNode().style.setProperty(s, n.fontFeatureSettings), this._editor.changeViewZones((t => {\n                            for (let i of this._lenses) i.updateHeight(e, t)\n                        }))\n                    }\n                    _localDispose() {\n                        var e, t, i;\n                        null === (e = this._getCodeLensModelPromise) || void 0 === e || e.cancel(), this._getCodeLensModelPromise = void 0, null === (t = this._resolveCodeLensesPromise) || void 0 === t || t.cancel(), this._resolveCodeLensesPromise = void 0, this._localToDispose.clear(), this._oldCodeLensModels.clear(), null === (i = this._currentCodeLensModel) || void 0 === i || i.dispose()\n                    }\n                    _onModelChange() {\n                        this._localDispose();\n                        const e = this._editor.getModel();\n                        if (!e) return;\n                        if (!this._editor.getOption(14)) return;\n                        const t = this._codeLensCache.get(e);\n                        if (t && this._renderCodeLensSymbols(t), !u.He.has(e)) return void(t && this._localToDispose.add((0, o.Vg)((() => {\n                            const i = this._codeLensCache.get(e);\n                            t === i && (this._codeLensCache.delete(e), this._onModelChange())\n                        }), 3e4)));\n                        for (const t of u.He.all(e))\n                            if (\"function\" == typeof t.onDidChange) {\n                                let e = t.onDidChange((() => i.schedule()));\n                                this._localToDispose.add(e)\n                            } const i = new o.pY((() => {\n                            var t;\n                            const n = Date.now();\n                            null === (t = this._getCodeLensModelPromise) || void 0 === t || t.cancel(), this._getCodeLensModelPromise = (0, o.PG)((t => y(e, t))), this._getCodeLensModelPromise.then((t => {\n                                this._currentCodeLensModel && this._oldCodeLensModels.add(this._currentCodeLensModel), this._currentCodeLensModel = t, this._codeLensCache.put(e, t);\n                                const o = this._getCodeLensModelDelays.update(e, Date.now() - n);\n                                i.delay = o, this._renderCodeLensSymbols(t), this._resolveCodeLensesInViewportSoon()\n                            }), s.dL)\n                        }), this._getCodeLensModelDelays.get(e));\n                        this._localToDispose.add(i), this._localToDispose.add((0, a.OF)((() => this._resolveCodeLensesScheduler.cancel()))), this._localToDispose.add(this._editor.onDidChangeModelContent((() => {\n                            this._editor.changeDecorations((e => {\n                                this._editor.changeViewZones((t => {\n                                    let i = [],\n                                        n = -1;\n                                    this._lenses.forEach((e => {\n                                        e.isValid() && n !== e.getLineNumber() ? (e.update(t), n = e.getLineNumber()) : i.push(e)\n                                    }));\n                                    let o = new W;\n                                    i.forEach((e => {\n                                        e.dispose(o, t), this._lenses.splice(this._lenses.indexOf(e), 1)\n                                    })), o.commit(e)\n                                }))\n                            })), i.schedule()\n                        }))), this._localToDispose.add(this._editor.onDidFocusEditorWidget((() => {\n                            i.schedule()\n                        }))), this._localToDispose.add(this._editor.onDidScrollChange((e => {\n                            e.scrollTopChanged && this._lenses.length > 0 && this._resolveCodeLensesInViewportSoon()\n                        }))), this._localToDispose.add(this._editor.onDidLayoutChange((() => {\n                            this._resolveCodeLensesInViewportSoon()\n                        }))), this._localToDispose.add((0, a.OF)((() => {\n                            if (this._editor.getModel()) {\n                                const e = l.ZF.capture(this._editor);\n                                this._editor.changeDecorations((e => {\n                                    this._editor.changeViewZones((t => {\n                                        this._disposeAllLenses(e, t)\n                                    }))\n                                })), e.restore(this._editor)\n                            } else this._disposeAllLenses(void 0, void 0)\n                        }))), this._localToDispose.add(this._editor.onMouseDown((e => {\n                            if (9 !== e.target.type) return;\n                            let t = e.target.element;\n                            if (\"SPAN\" === (null == t ? void 0 : t.tagName) && (t = t.parentElement), \"A\" === (null == t ? void 0 : t.tagName))\n                                for (const e of this._lenses) {\n                                    let i = e.getCommand(t);\n                                    if (i) {\n                                        this._commandService.executeCommand(i.id, ...i.arguments || []).catch((e => this._notificationService.error(e)));\n                                        break\n                                    }\n                                }\n                        }))), i.schedule()\n                    }\n                    _disposeAllLenses(e, t) {\n                        const i = new W;\n                        for (const e of this._lenses) e.dispose(i, t);\n                        e && i.commit(e), this._lenses.length = 0\n                    }\n                    _renderCodeLensSymbols(e) {\n                        if (!this._editor.hasModel()) return;\n                        let t, i = this._editor.getModel().getLineCount(),\n                            n = [];\n                        for (let o of e.lenses) {\n                            let e = o.symbol.range.startLineNumber;\n                            e < 1 || e > i || (t && t[t.length - 1].symbol.range.startLineNumber === e ? t.push(o) : (t = [o], n.push(t)))\n                        }\n                        const o = l.ZF.capture(this._editor),\n                            s = this._getLayoutInfo();\n                        this._editor.changeDecorations((e => {\n                            this._editor.changeViewZones((t => {\n                                const i = new W;\n                                let o = 0,\n                                    r = 0;\n                                for (; r < n.length && o < this._lenses.length;) {\n                                    let e = n[r][0].symbol.range.startLineNumber,\n                                        a = this._lenses[o].getLineNumber();\n                                    a < e ? (this._lenses[o].dispose(i, t), this._lenses.splice(o, 1)) : a === e ? (this._lenses[o].updateCodeLensSymbols(n[r], i), r++, o++) : (this._lenses.splice(o, 0, new H(n[r], this._editor, this._styleClassName, i, t, s.codeLensHeight, (() => this._resolveCodeLensesInViewportSoon()))), o++, r++)\n                                }\n                                for (; o < this._lenses.length;) this._lenses[o].dispose(i, t), this._lenses.splice(o, 1);\n                                for (; r < n.length;) this._lenses.push(new H(n[r], this._editor, this._styleClassName, i, t, s.codeLensHeight, (() => this._resolveCodeLensesInViewportSoon()))), r++;\n                                i.commit(e)\n                            }))\n                        })), o.restore(this._editor)\n                    }\n                    _resolveCodeLensesInViewportSoon() {\n                        this._editor.getModel() && this._resolveCodeLensesScheduler.schedule()\n                    }\n                    _resolveCodeLensesInViewport() {\n                        var e;\n                        null === (e = this._resolveCodeLensesPromise) || void 0 === e || e.cancel(), this._resolveCodeLensesPromise = void 0;\n                        const t = this._editor.getModel();\n                        if (!t) return;\n                        const i = [],\n                            n = [];\n                        if (this._lenses.forEach((e => {\n                                const o = e.computeIfNecessary(t);\n                                o && (i.push(o), n.push(e))\n                            })), 0 === i.length) return;\n                        const r = Date.now(),\n                            a = (0, o.PG)((e => {\n                                const o = i.map(((i, o) => {\n                                    const r = new Array(i.length),\n                                        a = i.map(((i, n) => i.symbol.command || \"function\" != typeof i.provider.resolveCodeLens ? (r[n] = i.symbol, Promise.resolve(void 0)) : Promise.resolve(i.provider.resolveCodeLens(t, i.symbol, e)).then((e => {\n                                            r[n] = e\n                                        }), s.Cp)));\n                                    return Promise.all(a).then((() => {\n                                        e.isCancellationRequested || n[o].isDisposed() || n[o].updateCommands(r)\n                                    }))\n                                }));\n                                return Promise.all(o)\n                            }));\n                        this._resolveCodeLensesPromise = a, this._resolveCodeLensesPromise.then((() => {\n                            const e = this._resolveCodeLensesDelays.update(t, Date.now() - r);\n                            this._resolveCodeLensesScheduler.delay = e, this._currentCodeLensModel && this._codeLensCache.put(t, this._currentCodeLensModel), this._oldCodeLensModels.clear(), a === this._resolveCodeLensesPromise && (this._resolveCodeLensesPromise = void 0)\n                        }), (e => {\n                            (0, s.dL)(e), a === this._resolveCodeLensesPromise && (this._resolveCodeLensesPromise = void 0)\n                        }))\n                    }\n                    getLenses() {\n                        return this._lenses\n                    }\n                };\n                Z.ID = \"css.editor.codeLens\", Z = $([K(1, _.H), K(2, j.lT), K(3, E)], Z), (0, c._K)(Z.ID, Z), (0, c.Qr)(class extends c.R6 {\n                    constructor() {\n                        super({\n                            id: \"codelens.showLensesInCurrentLine\",\n                            precondition: h.u.hasCodeLensProvider,\n                            label: (0, z.N)(\"showLensOnLine\", \"Show CodeLens Commands For Current Line\"),\n                            alias: \"Show CodeLens Commands For Current Line\"\n                        })\n                    }\n                    run(e, t) {\n                        return q(this, void 0, void 0, (function*() {\n                            if (!t.hasModel()) return;\n                            const i = e.get(U.eJ),\n                                n = e.get(_.H),\n                                o = e.get(j.lT),\n                                s = t.getSelection().positionLineNumber,\n                                r = t.getContribution(Z.ID),\n                                a = [];\n                            for (let e of r.getLenses())\n                                if (e.getLineNumber() === s)\n                                    for (let t of e.getItems()) {\n                                        const {\n                                            command: e\n                                        } = t.symbol;\n                                        e && a.push({\n                                            label: e.title,\n                                            command: e\n                                        })\n                                    }\n                            if (0 === a.length) return;\n                            const l = yield i.pick(a, {\n                                canPickMany: !1\n                            });\n                            if (l) try {\n                                yield n.executeCommand(l.command.id, ...l.command.arguments || [])\n                            } catch (e) {\n                                o.error(e)\n                            }\n                        }))\n                    }\n                })\n            },\n            83308: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    E: () => d,\n                    R: () => h\n                });\n                var n = i(71050),\n                    o = i(17301),\n                    s = i(70666),\n                    r = i(24314),\n                    a = i(44101),\n                    l = i(51200),\n                    c = i(94565);\n\n                function d(e, t) {\n                    const i = [],\n                        n = a.OH.ordered(e).reverse().map((n => Promise.resolve(n.provideDocumentColors(e, t)).then((e => {\n                            if (Array.isArray(e))\n                                for (let t of e) i.push({\n                                    colorInfo: t,\n                                    provider: n\n                                })\n                        }))));\n                    return Promise.all(n).then((() => i))\n                }\n\n                function h(e, t, i, n) {\n                    return Promise.resolve(i.provideColorPresentations(e, t, n))\n                }\n                c.P.registerCommand(\"_executeDocumentColorProvider\", (function(e, ...t) {\n                    const [i] = t;\n                    if (!(i instanceof s.o)) throw (0, o.b1)();\n                    const r = e.get(l.q).getModel(i);\n                    if (!r) throw (0, o.b1)();\n                    const c = [],\n                        d = a.OH.ordered(r).reverse().map((e => Promise.resolve(e.provideDocumentColors(r, n.T.None)).then((e => {\n                            if (Array.isArray(e))\n                                for (let t of e) c.push({\n                                    range: t.range,\n                                    color: [t.color.red, t.color.green, t.color.blue, t.color.alpha]\n                                })\n                        }))));\n                    return Promise.all(d).then((() => c))\n                })), c.P.registerCommand(\"_executeColorPresentationProvider\", (function(e, ...t) {\n                    const [i, c] = t, {\n                        uri: d,\n                        range: h\n                    } = c;\n                    if (!(d instanceof s.o && Array.isArray(i) && 4 === i.length && r.e.isIRange(h))) throw (0, o.b1)();\n                    const [u, g, p, f] = i, m = e.get(l.q).getModel(d);\n                    if (!m) throw (0, o.b1)();\n                    const v = {\n                            range: h,\n                            color: {\n                                red: u,\n                                green: g,\n                                blue: p,\n                                alpha: f\n                            }\n                        },\n                        _ = [],\n                        b = a.OH.ordered(m).reverse().map((e => Promise.resolve(e.provideColorPresentations(m, v, n.T.None)).then((e => {\n                            Array.isArray(e) && _.push(...e)\n                        }))));\n                    return Promise.all(b).then((() => _))\n                }))\n            },\n            77956: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    ColorContribution: () => a\n                });\n                var n = i(5976),\n                    o = i(16830),\n                    s = i(24314),\n                    r = (i(64494), i(67247));\n                class a extends n.JT {\n                    constructor(e) {\n                        super(), this._editor = e, this._register(e.onMouseDown((e => this.onMouseDown(e))))\n                    }\n                    dispose() {\n                        super.dispose()\n                    }\n                    onMouseDown(e) {\n                        var t;\n                        if (6 !== e.target.type) return;\n                        if (![...(null === (t = e.target.element) || void 0 === t ? void 0 : t.classList.values()) || []].find((e => e.startsWith(\"ced-colorBox\")))) return;\n                        if (!e.target.range) return;\n                        const i = this._editor.getContribution(r.ModesHoverController.ID);\n                        if (!i.isColorPickerVisible()) {\n                            const t = new s.e(e.target.range.startLineNumber, e.target.range.startColumn + 1, e.target.range.endLineNumber, e.target.range.endColumn + 1);\n                            i.showContentHover(t, 0, !1)\n                        }\n                    }\n                }\n                a.ID = \"editor.contrib.colorContribution\", (0, o._K)(a.ID, a)\n            },\n            64494: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    i: () => v\n                });\n                var n = i(15393),\n                    o = i(41264),\n                    s = i(17301),\n                    r = i(89954),\n                    a = i(5976),\n                    l = i(16830),\n                    c = i(11640),\n                    d = i(24314),\n                    h = i(44174),\n                    u = i(44101),\n                    g = i(83308),\n                    p = i(33108),\n                    f = function(e, t, i, n) {\n                        var o, s = arguments.length,\n                            r = s < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n                        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) r = Reflect.decorate(e, t, i, n);\n                        else\n                            for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (r = (s < 3 ? o(r) : s > 3 ? o(t, i, r) : o(t, i)) || r);\n                        return s > 3 && r && Object.defineProperty(t, i, r), r\n                    },\n                    m = function(e, t) {\n                        return function(i, n) {\n                            t(i, n, e)\n                        }\n                    };\n                let v = class e extends a.JT {\n                    constructor(e, t, i) {\n                        super(), this._editor = e, this._codeEditorService = t, this._configurationService = i, this._localToDispose = this._register(new a.SL), this._decorationsIds = [], this._colorDatas = new Map, this._colorDecoratorIds = [], this._decorationsTypes = new Set, this._register(e.onDidChangeModel((() => {\n                            this._isEnabled = this.isEnabled(), this.onModelChanged()\n                        }))), this._register(e.onDidChangeModelLanguage((() => this.onModelChanged()))), this._register(u.OH.onDidChange((() => this.onModelChanged()))), this._register(e.onDidChangeConfiguration((() => {\n                            let e = this._isEnabled;\n                            this._isEnabled = this.isEnabled(), e !== this._isEnabled && (this._isEnabled ? this.onModelChanged() : this.removeAllDecorations())\n                        }))), this._timeoutTimer = null, this._computePromise = null, this._isEnabled = this.isEnabled(), this.onModelChanged()\n                    }\n                    isEnabled() {\n                        const e = this._editor.getModel();\n                        if (!e) return !1;\n                        const t = e.getLanguageId(),\n                            i = this._configurationService.getValue(t);\n                        if (i && \"object\" == typeof i) {\n                            const e = i.colorDecorators;\n                            if (e && void 0 !== e.enable && !e.enable) return e.enable\n                        }\n                        return this._editor.getOption(17)\n                    }\n                    static get(e) {\n                        return e.getContribution(this.ID)\n                    }\n                    dispose() {\n                        this.stop(), this.removeAllDecorations(), super.dispose()\n                    }\n                    onModelChanged() {\n                        if (this.stop(), !this._isEnabled) return;\n                        const t = this._editor.getModel();\n                        t && u.OH.has(t) && (this._localToDispose.add(this._editor.onDidChangeModelContent((() => {\n                            this._timeoutTimer || (this._timeoutTimer = new n._F, this._timeoutTimer.cancelAndSet((() => {\n                                this._timeoutTimer = null, this.beginCompute()\n                            }), e.RECOMPUTE_TIME))\n                        }))), this.beginCompute())\n                    }\n                    beginCompute() {\n                        this._computePromise = (0, n.PG)((e => {\n                            const t = this._editor.getModel();\n                            return t ? (0, g.E)(t, e) : Promise.resolve([])\n                        })), this._computePromise.then((e => {\n                            this.updateDecorations(e), this.updateColorDecorators(e), this._computePromise = null\n                        }), s.dL)\n                    }\n                    stop() {\n                        this._timeoutTimer && (this._timeoutTimer.cancel(), this._timeoutTimer = null), this._computePromise && (this._computePromise.cancel(), this._computePromise = null), this._localToDispose.clear()\n                    }\n                    updateDecorations(e) {\n                        const t = e.map((e => ({\n                            range: {\n                                startLineNumber: e.colorInfo.range.startLineNumber,\n                                startColumn: e.colorInfo.range.startColumn,\n                                endLineNumber: e.colorInfo.range.endLineNumber,\n                                endColumn: e.colorInfo.range.endColumn\n                            },\n                            options: h.qx.EMPTY\n                        })));\n                        this._decorationsIds = this._editor.deltaDecorations(this._decorationsIds, t), this._colorDatas = new Map, this._decorationsIds.forEach(((t, i) => this._colorDatas.set(t, e[i])))\n                    }\n                    updateColorDecorators(e) {\n                        let t = [],\n                            i = {};\n                        for (let n = 0; n < e.length && t.length < 500; n++) {\n                            const {\n                                red: s,\n                                green: a,\n                                blue: l,\n                                alpha: c\n                            } = e[n].colorInfo.color, d = new o.VS(Math.round(255 * s), Math.round(255 * a), Math.round(255 * l), c);\n                            let h = (0, r.vp)(`rgba(${d.r},${d.g},${d.b},${d.a})`).toString(16),\n                                u = `rgba(${d.r}, ${d.g}, ${d.b}, ${d.a})`,\n                                g = \"colorBox-\" + h;\n                            this._decorationsTypes.has(g) || i[g] || this._codeEditorService.registerDecorationType(\"color-detector-color\", g, {\n                                before: {\n                                    contentText: \" \",\n                                    border: \"solid 0.1em #000\",\n                                    margin: \"0.1em 0.2em 0 0.2em\",\n                                    width: \"0.8em\",\n                                    height: \"0.8em\",\n                                    backgroundColor: u\n                                },\n                                dark: {\n                                    before: {\n                                        border: \"solid 0.1em #eee\"\n                                    }\n                                }\n                            }, void 0, this._editor), i[g] = !0, t.push({\n                                range: {\n                                    startLineNumber: e[n].colorInfo.range.startLineNumber,\n                                    startColumn: e[n].colorInfo.range.startColumn,\n                                    endLineNumber: e[n].colorInfo.range.endLineNumber,\n                                    endColumn: e[n].colorInfo.range.endColumn\n                                },\n                                options: this._codeEditorService.resolveDecorationOptions(g, !0)\n                            })\n                        }\n                        this._decorationsTypes.forEach((e => {\n                            i[e] || this._codeEditorService.removeDecorationType(e)\n                        })), this._colorDecoratorIds = this._editor.deltaDecorations(this._colorDecoratorIds, t)\n                    }\n                    removeAllDecorations() {\n                        this._decorationsIds = this._editor.deltaDecorations(this._decorationsIds, []), this._colorDecoratorIds = this._editor.deltaDecorations(this._colorDecoratorIds, []), this._decorationsTypes.forEach((e => {\n                            this._codeEditorService.removeDecorationType(e)\n                        }))\n                    }\n                    getColorData(e) {\n                        const t = this._editor.getModel();\n                        if (!t) return null;\n                        const i = t.getDecorationsInRange(d.e.fromPositions(e, e)).filter((e => this._colorDatas.has(e.id)));\n                        return 0 === i.length ? null : this._colorDatas.get(i[0].id)\n                    }\n                };\n                v.ID = \"editor.contrib.colorDetector\", v.RECOMPUTE_TIME = 1e3, v = f([m(1, c.$), m(2, p.Ui)], v), (0, l._K)(v.ID, v)\n            },\n            89098: (e, t, i) => {\n                \"use strict\";\n                i.r(t);\n                var n = i(22258),\n                    o = i(16830),\n                    s = i(24314),\n                    r = i(29102),\n                    a = i(69386),\n                    l = i(50187),\n                    c = i(3860),\n                    d = i(83831);\n                class h {\n                    constructor(e, t) {\n                        this._selection = e, this._insertSpace = t, this._usedEndToken = null\n                    }\n                    static _haystackHasNeedleAtOffset(e, t, i) {\n                        if (i < 0) return !1;\n                        const n = t.length;\n                        if (i + n > e.length) return !1;\n                        for (let o = 0; o < n; o++) {\n                            const n = e.charCodeAt(i + o),\n                                s = t.charCodeAt(o);\n                            if (n !== s && !(n >= 65 && n <= 90 && n + 32 === s || s >= 65 && s <= 90 && s + 32 === n)) return !1\n                        }\n                        return !0\n                    }\n                    _createOperationsForBlockComment(e, t, i, n, o, r) {\n                        const a = e.startLineNumber,\n                            l = e.startColumn,\n                            c = e.endLineNumber,\n                            d = e.endColumn,\n                            u = o.getLineContent(a),\n                            g = o.getLineContent(c);\n                        let p, f = u.lastIndexOf(t, l - 1 + t.length),\n                            m = g.indexOf(i, d - 1 - i.length);\n                        if (-1 !== f && -1 !== m)\n                            if (a === c) {\n                                u.substring(f + t.length, m).indexOf(i) >= 0 && (f = -1, m = -1)\n                            } else {\n                                const e = u.substring(f + t.length),\n                                    n = g.substring(0, m);\n                                (e.indexOf(i) >= 0 || n.indexOf(i) >= 0) && (f = -1, m = -1)\n                            } - 1 !== f && -1 !== m ? (n && f + t.length < u.length && 32 === u.charCodeAt(f + t.length) && (t += \" \"), n && m > 0 && 32 === g.charCodeAt(m - 1) && (i = \" \" + i, m -= 1), p = h._createRemoveBlockCommentOperations(new s.e(a, f + t.length + 1, c, m + 1), t, i)) : (p = h._createAddBlockCommentOperations(e, t, i, this._insertSpace), this._usedEndToken = 1 === p.length ? i : null);\n                        for (const e of p) r.addTrackedEditOperation(e.range, e.text)\n                    }\n                    static _createRemoveBlockCommentOperations(e, t, i) {\n                        let n = [];\n                        return s.e.isEmpty(e) ? n.push(a.h.delete(new s.e(e.startLineNumber, e.startColumn - t.length, e.endLineNumber, e.endColumn + i.length))) : (n.push(a.h.delete(new s.e(e.startLineNumber, e.startColumn - t.length, e.startLineNumber, e.startColumn))), n.push(a.h.delete(new s.e(e.endLineNumber, e.endColumn, e.endLineNumber, e.endColumn + i.length)))), n\n                    }\n                    static _createAddBlockCommentOperations(e, t, i, n) {\n                        let o = [];\n                        return s.e.isEmpty(e) ? o.push(a.h.replace(new s.e(e.startLineNumber, e.startColumn, e.endLineNumber, e.endColumn), t + \"  \" + i)) : (o.push(a.h.insert(new l.L(e.startLineNumber, e.startColumn), t + (n ? \" \" : \"\"))), o.push(a.h.insert(new l.L(e.endLineNumber, e.endColumn), (n ? \" \" : \"\") + i))), o\n                    }\n                    getEditOperations(e, t) {\n                        const i = this._selection.startLineNumber,\n                            n = this._selection.startColumn;\n                        e.tokenizeIfCheap(i);\n                        const o = e.getLanguageIdAtPosition(i, n),\n                            s = d.zu.getComments(o);\n                        s && s.blockCommentStartToken && s.blockCommentEndToken && this._createOperationsForBlockComment(this._selection, s.blockCommentStartToken, s.blockCommentEndToken, this._insertSpace, e, t)\n                    }\n                    computeCursorState(e, t) {\n                        const i = t.getInverseEditOperations();\n                        if (2 === i.length) {\n                            const e = i[0],\n                                t = i[1];\n                            return new c.Y(e.range.endLineNumber, e.range.endColumn, t.range.startLineNumber, t.range.startColumn)\n                        } {\n                            const e = i[0].range,\n                                t = this._usedEndToken ? -this._usedEndToken.length - 1 : 0;\n                            return new c.Y(e.endLineNumber, e.endColumn + t, e.endLineNumber, e.endColumn + t)\n                        }\n                    }\n                }\n                var u = i(97295);\n                class g {\n                    constructor(e, t, i, n, o, s) {\n                        this._selection = e, this._tabSize = t, this._type = i, this._insertSpace = n, this._selectionId = null, this._deltaColumn = 0, this._moveEndPositionDown = !1, this._ignoreEmptyLines = o, this._ignoreFirstLine = s || !1\n                    }\n                    static _gatherPreflightCommentStrings(e, t, i) {\n                        e.tokenizeIfCheap(t);\n                        const n = e.getLanguageIdAtPosition(t, 1),\n                            o = d.zu.getComments(n),\n                            s = o ? o.lineCommentToken : null;\n                        if (!s) return null;\n                        let r = [];\n                        for (let e = 0, n = i - t + 1; e < n; e++) r[e] = {\n                            ignore: !1,\n                            commentStr: s,\n                            commentStrOffset: 0,\n                            commentStrLength: s.length\n                        };\n                        return r\n                    }\n                    static _analyzeLines(e, t, i, n, o, s, r) {\n                        let a, l = !0;\n                        a = 0 === e || 1 !== e;\n                        for (let c = 0, d = n.length; c < d; c++) {\n                            const d = n[c],\n                                g = o + c;\n                            if (g === o && r) {\n                                d.ignore = !0;\n                                continue\n                            }\n                            const p = i.getLineContent(g),\n                                f = u.LC(p);\n                            if (-1 !== f) {\n                                if (l = !1, d.ignore = !1, d.commentStrOffset = f, a && !h._haystackHasNeedleAtOffset(p, d.commentStr, f) && (0 === e ? a = !1 : 1 === e || (d.ignore = !0)), a && t) {\n                                    const e = f + d.commentStrLength;\n                                    e < p.length && 32 === p.charCodeAt(e) && (d.commentStrLength += 1)\n                                }\n                            } else d.ignore = s, d.commentStrOffset = p.length\n                        }\n                        if (0 === e && l) {\n                            a = !1;\n                            for (let e = 0, t = n.length; e < t; e++) n[e].ignore = !1\n                        }\n                        return {\n                            supported: !0,\n                            shouldRemoveComments: a,\n                            lines: n\n                        }\n                    }\n                    static _gatherPreflightData(e, t, i, n, o, s, r) {\n                        const a = g._gatherPreflightCommentStrings(i, n, o);\n                        return null === a ? {\n                            supported: !1\n                        } : g._analyzeLines(e, t, i, a, n, s, r)\n                    }\n                    _executeLineComments(e, t, i, n) {\n                        let o;\n                        i.shouldRemoveComments ? o = g._createRemoveLineCommentsOperations(i.lines, n.startLineNumber) : (g._normalizeInsertionPoint(e, i.lines, n.startLineNumber, this._tabSize), o = this._createAddLineCommentsOperations(i.lines, n.startLineNumber));\n                        const r = new l.L(n.positionLineNumber, n.positionColumn);\n                        for (let i = 0, n = o.length; i < n; i++)\n                            if (t.addEditOperation(o[i].range, o[i].text), s.e.isEmpty(o[i].range) && s.e.getStartPosition(o[i].range).equals(r)) {\n                                e.getLineContent(r.lineNumber).length + 1 === r.column && (this._deltaColumn = (o[i].text || \"\").length)\n                            } this._selectionId = t.trackSelection(n)\n                    }\n                    _attemptRemoveBlockComment(e, t, i, n) {\n                        let o = t.startLineNumber,\n                            r = t.endLineNumber,\n                            a = n.length + Math.max(e.getLineFirstNonWhitespaceColumn(t.startLineNumber), t.startColumn),\n                            l = e.getLineContent(o).lastIndexOf(i, a - 1),\n                            c = e.getLineContent(r).indexOf(n, t.endColumn - 1 - i.length);\n                        return -1 !== l && -1 === c && (c = e.getLineContent(o).indexOf(n, l + i.length), r = o), -1 === l && -1 !== c && (l = e.getLineContent(r).lastIndexOf(i, c), o = r), !t.isEmpty() || -1 !== l && -1 !== c || (l = e.getLineContent(o).indexOf(i), -1 !== l && (c = e.getLineContent(o).indexOf(n, l + i.length))), -1 !== l && 32 === e.getLineContent(o).charCodeAt(l + i.length) && (i += \" \"), -1 !== c && 32 === e.getLineContent(r).charCodeAt(c - 1) && (n = \" \" + n, c -= 1), -1 !== l && -1 !== c ? h._createRemoveBlockCommentOperations(new s.e(o, l + i.length + 1, r, c + 1), i, n) : null\n                    }\n                    _executeBlockComment(e, t, i) {\n                        e.tokenizeIfCheap(i.startLineNumber);\n                        let n = e.getLanguageIdAtPosition(i.startLineNumber, 1),\n                            o = d.zu.getComments(n);\n                        if (!o || !o.blockCommentStartToken || !o.blockCommentEndToken) return;\n                        const r = o.blockCommentStartToken,\n                            a = o.blockCommentEndToken;\n                        let l = this._attemptRemoveBlockComment(e, i, r, a);\n                        if (!l) {\n                            if (i.isEmpty()) {\n                                const t = e.getLineContent(i.startLineNumber);\n                                let n = u.LC(t); - 1 === n && (n = t.length), l = h._createAddBlockCommentOperations(new s.e(i.startLineNumber, n + 1, i.startLineNumber, t.length + 1), r, a, this._insertSpace)\n                            } else l = h._createAddBlockCommentOperations(new s.e(i.startLineNumber, e.getLineFirstNonWhitespaceColumn(i.startLineNumber), i.endLineNumber, e.getLineMaxColumn(i.endLineNumber)), r, a, this._insertSpace);\n                            1 === l.length && (this._deltaColumn = r.length + 1)\n                        }\n                        this._selectionId = t.trackSelection(i);\n                        for (const e of l) t.addEditOperation(e.range, e.text)\n                    }\n                    getEditOperations(e, t) {\n                        let i = this._selection;\n                        if (this._moveEndPositionDown = !1, i.startLineNumber === i.endLineNumber && this._ignoreFirstLine) return t.addEditOperation(new s.e(i.startLineNumber, e.getLineMaxColumn(i.startLineNumber), i.startLineNumber + 1, 1), i.startLineNumber === e.getLineCount() ? \"\" : \"\\n\"), void(this._selectionId = t.trackSelection(i));\n                        i.startLineNumber < i.endLineNumber && 1 === i.endColumn && (this._moveEndPositionDown = !0, i = i.setEndPosition(i.endLineNumber - 1, e.getLineMaxColumn(i.endLineNumber - 1)));\n                        const n = g._gatherPreflightData(this._type, this._insertSpace, e, i.startLineNumber, i.endLineNumber, this._ignoreEmptyLines, this._ignoreFirstLine);\n                        return n.supported ? this._executeLineComments(e, t, n, i) : this._executeBlockComment(e, t, i)\n                    }\n                    computeCursorState(e, t) {\n                        let i = t.getTrackedSelection(this._selectionId);\n                        return this._moveEndPositionDown && (i = i.setEndPosition(i.endLineNumber + 1, 1)), new c.Y(i.selectionStartLineNumber, i.selectionStartColumn + this._deltaColumn, i.positionLineNumber, i.positionColumn + this._deltaColumn)\n                    }\n                    static _createRemoveLineCommentsOperations(e, t) {\n                        let i = [];\n                        for (let n = 0, o = e.length; n < o; n++) {\n                            const o = e[n];\n                            o.ignore || i.push(a.h.delete(new s.e(t + n, o.commentStrOffset + 1, t + n, o.commentStrOffset + o.commentStrLength + 1)))\n                        }\n                        return i\n                    }\n                    _createAddLineCommentsOperations(e, t) {\n                        let i = [];\n                        const n = this._insertSpace ? \" \" : \"\";\n                        for (let o = 0, s = e.length; o < s; o++) {\n                            const s = e[o];\n                            s.ignore || i.push(a.h.insert(new l.L(t + o, s.commentStrOffset + 1), s.commentStr + n))\n                        }\n                        return i\n                    }\n                    static nextVisibleColumn(e, t, i, n) {\n                        return i ? e + (t - e % t) : e + n\n                    }\n                    static _normalizeInsertionPoint(e, t, i, n) {\n                        let o, s, r = 1073741824;\n                        for (let o = 0, s = t.length; o < s; o++) {\n                            if (t[o].ignore) continue;\n                            const s = e.getLineContent(i + o);\n                            let a = 0;\n                            for (let e = 0, i = t[o].commentStrOffset; a < r && e < i; e++) a = g.nextVisibleColumn(a, n, 9 === s.charCodeAt(e), 1);\n                            a < r && (r = a)\n                        }\n                        r = Math.floor(r / n) * n;\n                        for (let a = 0, l = t.length; a < l; a++) {\n                            if (t[a].ignore) continue;\n                            const l = e.getLineContent(i + a);\n                            let c = 0;\n                            for (o = 0, s = t[a].commentStrOffset; c < r && o < s; o++) c = g.nextVisibleColumn(c, n, 9 === l.charCodeAt(o), 1);\n                            t[a].commentStrOffset = c > r ? o - 1 : o\n                        }\n                    }\n                }\n                var p = i(63580),\n                    f = i(84144);\n                class m extends o.R6 {\n                    constructor(e, t) {\n                        super(t), this._type = e\n                    }\n                    run(e, t) {\n                        if (!t.hasModel()) return;\n                        const i = [],\n                            n = t.getModel().getOptions(),\n                            o = t.getOption(19),\n                            r = t.getSelections().map(((e, t) => ({\n                                selection: e,\n                                index: t,\n                                ignoreFirstLine: !1\n                            })));\n                        r.sort(((e, t) => s.e.compareRangesUsingStarts(e.selection, t.selection)));\n                        let a = r[0];\n                        for (let e = 1; e < r.length; e++) {\n                            const t = r[e];\n                            a.selection.endLineNumber === t.selection.startLineNumber && (a.index < t.index ? t.ignoreFirstLine = !0 : (a.ignoreFirstLine = !0, a = t))\n                        }\n                        for (const e of r) i.push(new g(e.selection, n.tabSize, this._type, o.insertSpace, o.ignoreEmptyLines, e.ignoreFirstLine));\n                        t.pushUndoStop(), t.executeCommands(this.id, i), t.pushUndoStop()\n                    }\n                }\n                class v extends o.R6 {\n                    constructor() {\n                        super({\n                            id: \"editor.action.blockComment\",\n                            label: p.N(\"comment.block\", \"Toggle Block Comment\"),\n                            alias: \"Toggle Block Comment\",\n                            precondition: r.u.writable,\n                            kbOpts: {\n                                kbExpr: r.u.editorTextFocus,\n                                primary: 1567,\n                                linux: {\n                                    primary: 3103\n                                },\n                                weight: 100\n                            },\n                            menuOpts: {\n                                menuId: f.eH.MenubarEditMenu,\n                                group: \"5_insert\",\n                                title: p.N({\n                                    key: \"miToggleBlockComment\",\n                                    comment: [\"&& denotes a mnemonic\"]\n                                }, \"Toggle &&Block Comment\"),\n                                order: 2\n                            }\n                        })\n                    }\n                    run(e, t) {\n                        if (!t.hasModel()) return;\n                        const i = t.getOption(19),\n                            n = [],\n                            o = t.getSelections();\n                        for (const e of o) n.push(new h(e, i.insertSpace));\n                        t.pushUndoStop(), t.executeCommands(this.id, n), t.pushUndoStop()\n                    }\n                }(0, o.Qr)(class extends m {\n                    constructor() {\n                        super(0, {\n                            id: \"editor.action.commentLine\",\n                            label: p.N(\"comment.line\", \"Toggle Line Comment\"),\n                            alias: \"Toggle Line Comment\",\n                            precondition: r.u.writable,\n                            kbOpts: {\n                                kbExpr: r.u.editorTextFocus,\n                                primary: 2133,\n                                weight: 100\n                            },\n                            menuOpts: {\n                                menuId: f.eH.MenubarEditMenu,\n                                group: \"5_insert\",\n                                title: p.N({\n                                    key: \"miToggleLineComment\",\n                                    comment: [\"&& denotes a mnemonic\"]\n                                }, \"&&Toggle Line Comment\"),\n                                order: 1\n                            }\n                        })\n                    }\n                }), (0, o.Qr)(class extends m {\n                    constructor() {\n                        super(1, {\n                            id: \"editor.action.addCommentLine\",\n                            label: p.N(\"comment.line.add\", \"Add Line Comment\"),\n                            alias: \"Add Line Comment\",\n                            precondition: r.u.writable,\n                            kbOpts: {\n                                kbExpr: r.u.editorTextFocus,\n                                primary: (0, n.gx)(2089, 2081),\n                                weight: 100\n                            }\n                        })\n                    }\n                }), (0, o.Qr)(class extends m {\n                    constructor() {\n                        super(2, {\n                            id: \"editor.action.removeCommentLine\",\n                            label: p.N(\"comment.line.remove\", \"Remove Line Comment\"),\n                            alias: \"Remove Line Comment\",\n                            precondition: r.u.writable,\n                            kbOpts: {\n                                kbExpr: r.u.editorTextFocus,\n                                primary: (0, n.gx)(2089, 2099),\n                                weight: 100\n                            }\n                        })\n                    }\n                }), (0, o.Qr)(v)\n            },\n            76522: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    ContextMenuController: () => v\n                });\n                var n = i(65321),\n                    o = i(76033),\n                    s = i(74741),\n                    r = i(5976),\n                    a = i(1432),\n                    l = i(16830),\n                    c = i(29102),\n                    d = i(63580),\n                    h = i(84144),\n                    u = i(38819),\n                    g = i(5606),\n                    p = i(91847),\n                    f = function(e, t, i, n) {\n                        var o, s = arguments.length,\n                            r = s < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n                        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) r = Reflect.decorate(e, t, i, n);\n                        else\n                            for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (r = (s < 3 ? o(r) : s > 3 ? o(t, i, r) : o(t, i)) || r);\n                        return s > 3 && r && Object.defineProperty(t, i, r), r\n                    },\n                    m = function(e, t) {\n                        return function(i, n) {\n                            t(i, n, e)\n                        }\n                    };\n                let v = class e {\n                    constructor(e, t, i, o, s, a) {\n                        this._contextMenuService = t, this._contextViewService = i, this._contextKeyService = o, this._keybindingService = s, this._menuService = a, this._toDispose = new r.SL, this._contextMenuIsBeingShownCount = 0, this._editor = e, this._toDispose.add(this._editor.onContextMenu((e => this._onContextMenu(e)))), this._toDispose.add(this._editor.onMouseWheel((e => {\n                            if (this._contextMenuIsBeingShownCount > 0) {\n                                const t = this._contextViewService.getContextViewElement(),\n                                    i = e.srcElement;\n                                i.shadowRoot && n.Ay(t) === i.shadowRoot || this._contextViewService.hideContextView()\n                            }\n                        }))), this._toDispose.add(this._editor.onKeyDown((e => {\n                            58 === e.keyCode && (e.preventDefault(), e.stopPropagation(), this.showContextMenu())\n                        })))\n                    }\n                    static get(t) {\n                        return t.getContribution(e.ID)\n                    }\n                    _onContextMenu(e) {\n                        if (!this._editor.hasModel()) return;\n                        if (!this._editor.getOption(20)) return this._editor.focus(), void(e.target.position && !this._editor.getSelection().containsPosition(e.target.position) && this._editor.setPosition(e.target.position));\n                        if (12 === e.target.type) return;\n                        if (e.event.preventDefault(), e.event.stopPropagation(), 6 !== e.target.type && 7 !== e.target.type && 1 !== e.target.type) return;\n                        if (this._editor.focus(), e.target.position) {\n                            let t = !1;\n                            for (const i of this._editor.getSelections())\n                                if (i.containsPosition(e.target.position)) {\n                                    t = !0;\n                                    break\n                                } t || this._editor.setPosition(e.target.position)\n                        }\n                        let t = null;\n                        1 !== e.target.type && (t = {\n                            x: e.event.posx - 1,\n                            width: 2,\n                            y: e.event.posy - 1,\n                            height: 2\n                        }), this.showContextMenu(t)\n                    }\n                    showContextMenu(e) {\n                        if (!this._editor.getOption(20)) return;\n                        if (!this._editor.hasModel()) return;\n                        if (!this._contextMenuService) return void this._editor.focus();\n                        const t = this._getMenuActions(this._editor.getModel(), this._editor.isSimpleWidget ? h.eH.SimpleEditorContext : h.eH.EditorContext);\n                        t.length > 0 && this._doShowContextMenu(t, e)\n                    }\n                    _getMenuActions(e, t) {\n                        const i = [],\n                            n = this._menuService.createMenu(t, this._contextKeyService),\n                            o = n.getActions({\n                                arg: e.uri\n                            });\n                        n.dispose();\n                        for (let t of o) {\n                            const [, n] = t;\n                            let o = 0;\n                            for (const t of n)\n                                if (t instanceof h.NZ) {\n                                    const n = this._getMenuActions(e, t.item.submenu);\n                                    n.length > 0 && (i.push(new s.wY(t.id, t.label, n)), o++)\n                                } else i.push(t), o++;\n                            o && i.push(new s.Z0)\n                        }\n                        return i.length && i.pop(), i\n                    }\n                    _doShowContextMenu(e, t = null) {\n                        if (!this._editor.hasModel()) return;\n                        const i = this._editor.getOption(52);\n                        if (this._editor.updateOptions({\n                                hover: {\n                                    enabled: !1\n                                }\n                            }), !t) {\n                            this._editor.revealPosition(this._editor.getPosition(), 1), this._editor.render();\n                            const e = this._editor.getScrolledVisiblePosition(this._editor.getPosition()),\n                                i = n.i(this._editor.getDomNode()),\n                                o = i.left + e.left,\n                                s = i.top + e.top + e.height;\n                            t = {\n                                x: o,\n                                y: s\n                            }\n                        }\n                        const s = this._editor.getOption(113) && !a.gn;\n                        this._contextMenuIsBeingShownCount++, this._contextMenuService.showContextMenu({\n                            domForShadowRoot: s ? this._editor.getDomNode() : void 0,\n                            getAnchor: () => t,\n                            getActions: () => e,\n                            getActionViewItem: e => {\n                                const t = this._keybindingFor(e);\n                                if (t) return new o.g(e, e, {\n                                    label: !0,\n                                    keybinding: t.getLabel(),\n                                    isMenu: !0\n                                });\n                                const i = e;\n                                return \"function\" == typeof i.getActionViewItem ? i.getActionViewItem() : new o.g(e, e, {\n                                    icon: !0,\n                                    label: !0,\n                                    isMenu: !0\n                                })\n                            },\n                            getKeyBinding: e => this._keybindingFor(e),\n                            onHide: e => {\n                                this._contextMenuIsBeingShownCount--, this._editor.focus(), this._editor.updateOptions({\n                                    hover: i\n                                })\n                            }\n                        })\n                    }\n                    _keybindingFor(e) {\n                        return this._keybindingService.lookupKeybinding(e.id)\n                    }\n                    dispose() {\n                        this._contextMenuIsBeingShownCount > 0 && this._contextViewService.hideContextView(), this._toDispose.dispose()\n                    }\n                };\n                v.ID = \"editor.contrib.contextmenu\", v = f([m(1, g.i), m(2, g.u), m(3, u.i6), m(4, p.d), m(5, h.co)], v);\n                class _ extends l.R6 {\n                    constructor() {\n                        super({\n                            id: \"editor.action.showContextMenu\",\n                            label: d.N(\"action.showContextMenu.label\", \"Show Editor Context Menu\"),\n                            alias: \"Show Editor Context Menu\",\n                            precondition: void 0,\n                            kbOpts: {\n                                kbExpr: c.u.textInputFocus,\n                                primary: 1092,\n                                weight: 100\n                            }\n                        })\n                    }\n                    run(e, t) {\n                        v.get(t).showContextMenu()\n                    }\n                }(0, l._K)(v.ID, v), (0, l.Qr)(_)\n            },\n            42834: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    CursorRedo: () => h,\n                    CursorUndo: () => d,\n                    CursorUndoRedoController: () => c\n                });\n                var n = i(5976),\n                    o = i(16830),\n                    s = i(29102),\n                    r = i(63580);\n                class a {\n                    constructor(e) {\n                        this.selections = e\n                    }\n                    equals(e) {\n                        const t = this.selections.length;\n                        if (t !== e.selections.length) return !1;\n                        for (let i = 0; i < t; i++)\n                            if (!this.selections[i].equalsSelection(e.selections[i])) return !1;\n                        return !0\n                    }\n                }\n                class l {\n                    constructor(e, t, i) {\n                        this.cursorState = e, this.scrollTop = t, this.scrollLeft = i\n                    }\n                }\n                class c extends n.JT {\n                    constructor(e) {\n                        super(), this._editor = e, this._isCursorUndoRedo = !1, this._undoStack = [], this._redoStack = [], this._register(e.onDidChangeModel((e => {\n                            this._undoStack = [], this._redoStack = []\n                        }))), this._register(e.onDidChangeModelContent((e => {\n                            this._undoStack = [], this._redoStack = []\n                        }))), this._register(e.onDidChangeCursorSelection((t => {\n                            if (this._isCursorUndoRedo) return;\n                            if (!t.oldSelections) return;\n                            if (t.oldModelVersionId !== t.modelVersionId) return;\n                            const i = new a(t.oldSelections);\n                            this._undoStack.length > 0 && this._undoStack[this._undoStack.length - 1].cursorState.equals(i) || (this._undoStack.push(new l(i, e.getScrollTop(), e.getScrollLeft())), this._redoStack = [], this._undoStack.length > 50 && this._undoStack.shift())\n                        })))\n                    }\n                    static get(e) {\n                        return e.getContribution(c.ID)\n                    }\n                    cursorUndo() {\n                        this._editor.hasModel() && 0 !== this._undoStack.length && (this._redoStack.push(new l(new a(this._editor.getSelections()), this._editor.getScrollTop(), this._editor.getScrollLeft())), this._applyState(this._undoStack.pop()))\n                    }\n                    cursorRedo() {\n                        this._editor.hasModel() && 0 !== this._redoStack.length && (this._undoStack.push(new l(new a(this._editor.getSelections()), this._editor.getScrollTop(), this._editor.getScrollLeft())), this._applyState(this._redoStack.pop()))\n                    }\n                    _applyState(e) {\n                        this._isCursorUndoRedo = !0, this._editor.setSelections(e.cursorState.selections), this._editor.setScrollPosition({\n                            scrollTop: e.scrollTop,\n                            scrollLeft: e.scrollLeft\n                        }), this._isCursorUndoRedo = !1\n                    }\n                }\n                c.ID = \"editor.contrib.cursorUndoRedoController\";\n                class d extends o.R6 {\n                    constructor() {\n                        super({\n                            id: \"cursorUndo\",\n                            label: r.N(\"cursor.undo\", \"Cursor Undo\"),\n                            alias: \"Cursor Undo\",\n                            precondition: void 0,\n                            kbOpts: {\n                                kbExpr: s.u.textInputFocus,\n                                primary: 2099,\n                                weight: 100\n                            }\n                        })\n                    }\n                    run(e, t, i) {\n                        c.get(t).cursorUndo()\n                    }\n                }\n                class h extends o.R6 {\n                    constructor() {\n                        super({\n                            id: \"cursorRedo\",\n                            label: r.N(\"cursor.redo\", \"Cursor Redo\"),\n                            alias: \"Cursor Redo\",\n                            precondition: void 0\n                        })\n                    }\n                    run(e, t, i) {\n                        c.get(t).cursorRedo()\n                    }\n                }(0, o._K)(c.ID, c), (0, o.Qr)(d), (0, o.Qr)(h)\n            },\n            7441: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    DragAndDropController: () => u\n                });\n                var n = i(5976),\n                    o = i(1432),\n                    s = (i(22115), i(16830)),\n                    r = i(50187),\n                    a = i(24314),\n                    l = i(3860),\n                    c = i(44174);\n                class d {\n                    constructor(e, t, i) {\n                        this.selection = e, this.targetPosition = t, this.copy = i, this.targetSelection = null\n                    }\n                    getEditOperations(e, t) {\n                        let i = e.getValueInRange(this.selection);\n                        this.copy || t.addEditOperation(this.selection, null), t.addEditOperation(new a.e(this.targetPosition.lineNumber, this.targetPosition.column, this.targetPosition.lineNumber, this.targetPosition.column), i), !this.selection.containsPosition(this.targetPosition) || this.copy && (this.selection.getEndPosition().equals(this.targetPosition) || this.selection.getStartPosition().equals(this.targetPosition)) ? this.copy ? this.targetSelection = new l.Y(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) : this.targetPosition.lineNumber > this.selection.endLineNumber ? this.targetSelection = new l.Y(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) : this.targetPosition.lineNumber < this.selection.endLineNumber ? this.targetSelection = new l.Y(this.targetPosition.lineNumber, this.targetPosition.column, this.targetPosition.lineNumber + this.selection.endLineNumber - this.selection.startLineNumber, this.selection.startLineNumber === this.selection.endLineNumber ? this.targetPosition.column + this.selection.endColumn - this.selection.startColumn : this.selection.endColumn) : this.selection.endColumn <= this.targetPosition.column ? this.targetSelection = new l.Y(this.targetPosition.lineNumber - this.selection.endLineNumber + this.selection.startLineNumber, (this.selection.startLineNumber, this.selection.endLineNumber, this.targetPosition.column - this.selection.endColumn + this.selection.startColumn), this.targetPosition.lineNumber, this.selection.startLineNumber === this.selection.endLineNumber ? this.targetPosition.column : this.selection.endColumn) : this.targetSelection = new l.Y(this.targetPosition.lineNumber - this.selection.endLineNumber + this.selection.startLineNumber, this.targetPosition.column, this.targetPosition.lineNumber, this.targetPosition.column + this.selection.endColumn - this.selection.startColumn) : this.targetSelection = this.selection\n                    }\n                    computeCursorState(e, t) {\n                        return this.targetSelection\n                    }\n                }\n\n                function h(e) {\n                    return o.dz ? e.altKey : e.ctrlKey\n                }\n                class u extends n.JT {\n                    constructor(e) {\n                        super(), this._editor = e, this._register(this._editor.onMouseDown((e => this._onEditorMouseDown(e)))), this._register(this._editor.onMouseUp((e => this._onEditorMouseUp(e)))), this._register(this._editor.onMouseDrag((e => this._onEditorMouseDrag(e)))), this._register(this._editor.onMouseDrop((e => this._onEditorMouseDrop(e)))), this._register(this._editor.onMouseDropCanceled((() => this._onEditorMouseDropCanceled()))), this._register(this._editor.onKeyDown((e => this.onEditorKeyDown(e)))), this._register(this._editor.onKeyUp((e => this.onEditorKeyUp(e)))), this._register(this._editor.onDidBlurEditorWidget((() => this.onEditorBlur()))), this._register(this._editor.onDidBlurEditorText((() => this.onEditorBlur()))), this._dndDecorationIds = [], this._mouseDown = !1, this._modifierPressed = !1, this._dragSelection = null\n                    }\n                    onEditorBlur() {\n                        this._removeDecoration(), this._dragSelection = null, this._mouseDown = !1, this._modifierPressed = !1\n                    }\n                    onEditorKeyDown(e) {\n                        this._editor.getOption(31) && !this._editor.getOption(18) && (h(e) && (this._modifierPressed = !0), this._mouseDown && h(e) && this._editor.updateOptions({\n                            mouseStyle: \"copy\"\n                        }))\n                    }\n                    onEditorKeyUp(e) {\n                        this._editor.getOption(31) && !this._editor.getOption(18) && (h(e) && (this._modifierPressed = !1), this._mouseDown && e.keyCode === u.TRIGGER_KEY_VALUE && this._editor.updateOptions({\n                            mouseStyle: \"default\"\n                        }))\n                    }\n                    _onEditorMouseDown(e) {\n                        this._mouseDown = !0\n                    }\n                    _onEditorMouseUp(e) {\n                        this._mouseDown = !1, this._editor.updateOptions({\n                            mouseStyle: \"text\"\n                        })\n                    }\n                    _onEditorMouseDrag(e) {\n                        let t = e.target;\n                        if (null === this._dragSelection) {\n                            let e = (this._editor.getSelections() || []).filter((e => t.position && e.containsPosition(t.position)));\n                            if (1 !== e.length) return;\n                            this._dragSelection = e[0]\n                        }\n                        h(e.event) ? this._editor.updateOptions({\n                            mouseStyle: \"copy\"\n                        }) : this._editor.updateOptions({\n                            mouseStyle: \"default\"\n                        }), t.position && (this._dragSelection.containsPosition(t.position) ? this._removeDecoration() : this.showAt(t.position))\n                    }\n                    _onEditorMouseDropCanceled() {\n                        this._editor.updateOptions({\n                            mouseStyle: \"text\"\n                        }), this._removeDecoration(), this._dragSelection = null, this._mouseDown = !1\n                    }\n                    _onEditorMouseDrop(e) {\n                        if (e.target && (this._hitContent(e.target) || this._hitMargin(e.target)) && e.target.position) {\n                            let t = new r.L(e.target.position.lineNumber, e.target.position.column);\n                            if (null === this._dragSelection) {\n                                let i = null;\n                                if (e.event.shiftKey) {\n                                    let e = this._editor.getSelection();\n                                    if (e) {\n                                        const {\n                                            selectionStartLineNumber: n,\n                                            selectionStartColumn: o\n                                        } = e;\n                                        i = [new l.Y(n, o, t.lineNumber, t.column)]\n                                    }\n                                } else i = (this._editor.getSelections() || []).map((e => e.containsPosition(t) ? new l.Y(t.lineNumber, t.column, t.lineNumber, t.column) : e));\n                                this._editor.setSelections(i || [], \"mouse\", 3)\n                            } else(!this._dragSelection.containsPosition(t) || (h(e.event) || this._modifierPressed) && (this._dragSelection.getEndPosition().equals(t) || this._dragSelection.getStartPosition().equals(t))) && (this._editor.pushUndoStop(), this._editor.executeCommand(u.ID, new d(this._dragSelection, t, h(e.event) || this._modifierPressed)), this._editor.pushUndoStop())\n                        }\n                        this._editor.updateOptions({\n                            mouseStyle: \"text\"\n                        }), this._removeDecoration(), this._dragSelection = null, this._mouseDown = !1\n                    }\n                    showAt(e) {\n                        let t = [{\n                            range: new a.e(e.lineNumber, e.column, e.lineNumber, e.column),\n                            options: u._DECORATION_OPTIONS\n                        }];\n                        this._dndDecorationIds = this._editor.deltaDecorations(this._dndDecorationIds, t), this._editor.revealPosition(e, 1)\n                    }\n                    _removeDecoration() {\n                        this._dndDecorationIds = this._editor.deltaDecorations(this._dndDecorationIds, [])\n                    }\n                    _hitContent(e) {\n                        return 6 === e.type || 7 === e.type\n                    }\n                    _hitMargin(e) {\n                        return 2 === e.type || 3 === e.type || 4 === e.type\n                    }\n                    dispose() {\n                        this._removeDecoration(), this._dragSelection = null, this._mouseDown = !1, this._modifierPressed = !1, super.dispose()\n                    }\n                }\n                u.ID = \"editor.contrib.dragAndDrop\", u.TRIGGER_KEY_VALUE = o.dz ? 6 : 5, u._DECORATION_OPTIONS = c.qx.register({\n                    description: \"dnd-target\",\n                    className: \"dnd-target\"\n                }), (0, s._K)(u.ID, u)\n            },\n            81372: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    getDocumentSymbols: () => h\n                });\n                var n = i(71050),\n                    o = i(98401),\n                    s = i(70666),\n                    r = i(51200),\n                    a = i(88216),\n                    l = i(86895),\n                    c = i(94565),\n                    d = function(e, t, i, n) {\n                        return new(i || (i = Promise))((function(o, s) {\n                            function r(e) {\n                                try {\n                                    l(n.next(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function a(e) {\n                                try {\n                                    l(n.throw(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function l(e) {\n                                var t;\n                                e.done ? o(e.value) : (t = e.value, t instanceof i ? t : new i((function(e) {\n                                    e(t)\n                                }))).then(r, a)\n                            }\n                            l((n = n.apply(e, t || [])).next())\n                        }))\n                    };\n\n                function h(e, t, i) {\n                    return d(this, void 0, void 0, (function*() {\n                        const n = yield l.C3.create(e, i);\n                        return t ? n.asListOfDocumentSymbols() : n.getTopLevelSymbols()\n                    }))\n                }\n                c.P.registerCommand(\"_executeDocumentSymbolProvider\", (function(e, ...t) {\n                    return d(this, void 0, void 0, (function*() {\n                        const [i] = t;\n                        (0, o.p_)(s.o.isUri(i));\n                        const l = e.get(r.q).getModel(i);\n                        if (l) return h(l, !1, n.T.None);\n                        const c = yield e.get(a.S).createModelReference(i);\n                        try {\n                            return yield h(c.object.textEditorModel, !1, n.T.None)\n                        } finally {\n                            c.dispose()\n                        }\n                    }))\n                }))\n            },\n            86895: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    C3: () => p\n                });\n                var n = i(9488),\n                    o = i(71050),\n                    s = i(17301),\n                    r = i(53725),\n                    a = i(43702),\n                    l = i(24314),\n                    c = i(44101),\n                    d = i(21036);\n                class h {\n                    remove() {\n                        this.parent && this.parent.children.delete(this.id)\n                    }\n                    static findId(e, t) {\n                        let i;\n                        \"string\" == typeof e ? i = `${t.id}/${e}` : (i = `${t.id}/${e.name}`, void 0 !== t.children.get(i) && (i = `${t.id}/${e.name}_${e.range.startLineNumber}_${e.range.startColumn}`));\n                        let n = i;\n                        for (let e = 0; void 0 !== t.children.get(n); e++) n = `${i}_${e}`;\n                        return n\n                    }\n                    static empty(e) {\n                        return 0 === e.children.size\n                    }\n                }\n                class u extends h {\n                    constructor(e, t, i) {\n                        super(), this.id = e, this.parent = t, this.symbol = i, this.children = new Map\n                    }\n                }\n                class g extends h {\n                    constructor(e, t, i, n) {\n                        super(), this.id = e, this.parent = t, this.label = i, this.order = n, this.children = new Map\n                    }\n                }\n                class p extends h {\n                    constructor(e) {\n                        super(), this.uri = e, this.id = \"root\", this.parent = void 0, this._groups = new Map, this.children = new Map, this.id = \"root\", this.parent = void 0\n                    }\n                    static create(e, t) {\n                        let i = this._keys.for(e, !0),\n                            n = p._requests.get(i);\n                        if (!n) {\n                            let t = new o.A;\n                            n = {\n                                promiseCnt: 0,\n                                source: t,\n                                promise: p._create(e, t.token),\n                                model: void 0\n                            }, p._requests.set(i, n);\n                            const s = Date.now();\n                            n.promise.then((() => {\n                                this._requestDurations.update(e, Date.now() - s)\n                            }))\n                        }\n                        return n.model ? Promise.resolve(n.model) : (n.promiseCnt += 1, t.onCancellationRequested((() => {\n                            0 == --n.promiseCnt && (n.source.cancel(), p._requests.delete(i))\n                        })), new Promise(((e, t) => {\n                            n.promise.then((t => {\n                                n.model = t, e(t)\n                            }), (e => {\n                                p._requests.delete(i), t(e)\n                            }))\n                        })))\n                    }\n                    static _create(e, t) {\n                        const i = new o.A(t),\n                            r = new p(e.uri),\n                            a = c.vJ.ordered(e),\n                            l = a.map(((t, n) => {\n                                var o;\n                                let a = h.findId(`provider_${n}`, r),\n                                    l = new g(a, r, null !== (o = t.displayName) && void 0 !== o ? o : \"Unknown Outline Provider\", n);\n                                return Promise.resolve(t.provideDocumentSymbols(e, i.token)).then((e => {\n                                    for (const t of e || []) p._makeOutlineElement(t, l);\n                                    return l\n                                }), (e => ((0, s.Cp)(e), l))).then((e => {\n                                    h.empty(e) ? e.remove() : r._groups.set(a, e)\n                                }))\n                            })),\n                            d = c.vJ.onDidChange((() => {\n                                const t = c.vJ.ordered(e);\n                                (0, n.fS)(t, a) || i.cancel()\n                            }));\n                        return Promise.all(l).then((() => i.token.isCancellationRequested && !t.isCancellationRequested ? p._create(e, t) : r._compact())).finally((() => {\n                            d.dispose()\n                        }))\n                    }\n                    static _makeOutlineElement(e, t) {\n                        let i = h.findId(e, t),\n                            n = new u(i, t, e);\n                        if (e.children)\n                            for (const t of e.children) p._makeOutlineElement(t, n);\n                        t.children.set(n.id, n)\n                    }\n                    _compact() {\n                        let e = 0;\n                        for (const [t, i] of this._groups) 0 === i.children.size ? this._groups.delete(t) : e += 1;\n                        if (1 !== e) this.children = this._groups;\n                        else {\n                            let e = r.$.first(this._groups.values());\n                            for (let [, t] of e.children) t.parent = this, this.children.set(t.id, t)\n                        }\n                        return this\n                    }\n                    getTopLevelSymbols() {\n                        const e = [];\n                        for (const t of this.children.values()) t instanceof u ? e.push(t.symbol) : e.push(...r.$.map(t.children.values(), (e => e.symbol)));\n                        return e.sort(((e, t) => l.e.compareRangesUsingStarts(e.range, t.range)))\n                    }\n                    asListOfDocumentSymbols() {\n                        const e = this.getTopLevelSymbols(),\n                            t = [];\n                        return p._flattenDocumentSymbols(t, e, \"\"), t.sort(((e, t) => l.e.compareRangesUsingStarts(e.range, t.range)))\n                    }\n                    static _flattenDocumentSymbols(e, t, i) {\n                        for (const n of t) e.push({\n                            kind: n.kind,\n                            tags: n.tags,\n                            name: n.name,\n                            detail: n.detail,\n                            containerName: n.containerName || i,\n                            range: n.range,\n                            selectionRange: n.selectionRange,\n                            children: void 0\n                        }), n.children && p._flattenDocumentSymbols(e, n.children, n.name)\n                    }\n                }\n                p._requestDurations = new d.Y(c.vJ, 350), p._requests = new a.z6(9, .75), p._keys = new class {\n                    constructor() {\n                        this._counter = 1, this._data = new WeakMap\n                    }\n                    for (e, t) {\n                        return `${e.id}/${t?e.getVersionId():\"\"}/${this._hash(c.vJ.all(e))}`\n                    }\n                    _hash(e) {\n                        let t = \"\";\n                        for (const i of e) {\n                            let e = this._data.get(i);\n                            void 0 === e && (e = this._counter++, this._data.set(i, e)), t += e\n                        }\n                        return t\n                    }\n                }\n            },\n            92142: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    CommonFindController: () => Et,\n                    FindController: () => Tt,\n                    MatchFindAction: () => Ot,\n                    NextMatchFindAction: () => Pt,\n                    NextSelectionMatchFindAction: () => Bt,\n                    PreviousMatchFindAction: () => Rt,\n                    PreviousSelectionMatchFindAction: () => Vt,\n                    SelectionMatchFindAction: () => Ft,\n                    StartFindAction: () => Mt,\n                    StartFindReplaceAction: () => Wt,\n                    StartFindWithSelectionAction: () => At,\n                    getSelectionSearchString: () => It\n                });\n                var n = i(15393),\n                    o = i(5976),\n                    s = i(97295),\n                    r = i(16830),\n                    a = i(29102),\n                    l = i(9488),\n                    c = i(61329),\n                    d = i(50187),\n                    h = i(24314),\n                    u = i(3860),\n                    g = i(77277),\n                    p = i(84973),\n                    f = i(44174),\n                    m = i(73910),\n                    v = i(97781);\n                class _ {\n                    constructor(e) {\n                        this._editor = e, this._decorations = [], this._overviewRulerApproximateDecorations = [], this._findScopeDecorationIds = [], this._rangeHighlightDecorationId = null, this._highlightedDecorationId = null, this._startPosition = this._editor.getPosition()\n                    }\n                    dispose() {\n                        this._editor.deltaDecorations(this._allDecorations(), []), this._decorations = [], this._overviewRulerApproximateDecorations = [], this._findScopeDecorationIds = [], this._rangeHighlightDecorationId = null, this._highlightedDecorationId = null\n                    }\n                    reset() {\n                        this._decorations = [], this._overviewRulerApproximateDecorations = [], this._findScopeDecorationIds = [], this._rangeHighlightDecorationId = null, this._highlightedDecorationId = null\n                    }\n                    getCount() {\n                        return this._decorations.length\n                    }\n                    getFindScope() {\n                        return this._findScopeDecorationIds[0] ? this._editor.getModel().getDecorationRange(this._findScopeDecorationIds[0]) : null\n                    }\n                    getFindScopes() {\n                        if (this._findScopeDecorationIds.length) {\n                            const e = this._findScopeDecorationIds.map((e => this._editor.getModel().getDecorationRange(e))).filter((e => !!e));\n                            if (e.length) return e\n                        }\n                        return null\n                    }\n                    getStartPosition() {\n                        return this._startPosition\n                    }\n                    setStartPosition(e) {\n                        this._startPosition = e, this.setCurrentFindMatch(null)\n                    }\n                    _getDecorationIndex(e) {\n                        const t = this._decorations.indexOf(e);\n                        return t >= 0 ? t + 1 : 1\n                    }\n                    getCurrentMatchesPosition(e) {\n                        let t = this._editor.getModel().getDecorationsInRange(e);\n                        for (const e of t) {\n                            const t = e.options;\n                            if (t === _._FIND_MATCH_DECORATION || t === _._CURRENT_FIND_MATCH_DECORATION) return this._getDecorationIndex(e.id)\n                        }\n                        return 0\n                    }\n                    setCurrentFindMatch(e) {\n                        let t = null,\n                            i = 0;\n                        if (e)\n                            for (let n = 0, o = this._decorations.length; n < o; n++) {\n                                let o = this._editor.getModel().getDecorationRange(this._decorations[n]);\n                                if (e.equalsRange(o)) {\n                                    t = this._decorations[n], i = n + 1;\n                                    break\n                                }\n                            }\n                        return null === this._highlightedDecorationId && null === t || this._editor.changeDecorations((e => {\n                            if (null !== this._highlightedDecorationId && (e.changeDecorationOptions(this._highlightedDecorationId, _._FIND_MATCH_DECORATION), this._highlightedDecorationId = null), null !== t && (this._highlightedDecorationId = t, e.changeDecorationOptions(this._highlightedDecorationId, _._CURRENT_FIND_MATCH_DECORATION)), null !== this._rangeHighlightDecorationId && (e.removeDecoration(this._rangeHighlightDecorationId), this._rangeHighlightDecorationId = null), null !== t) {\n                                let i = this._editor.getModel().getDecorationRange(t);\n                                if (i.startLineNumber !== i.endLineNumber && 1 === i.endColumn) {\n                                    let e = i.endLineNumber - 1,\n                                        t = this._editor.getModel().getLineMaxColumn(e);\n                                    i = new h.e(i.startLineNumber, i.startColumn, e, t)\n                                }\n                                this._rangeHighlightDecorationId = e.addDecoration(i, _._RANGE_HIGHLIGHT_DECORATION)\n                            }\n                        })), i\n                    }\n                    set(e, t) {\n                        this._editor.changeDecorations((i => {\n                            let n = _._FIND_MATCH_DECORATION,\n                                o = [];\n                            if (e.length > 1e3) {\n                                n = _._FIND_MATCH_NO_OVERVIEW_DECORATION;\n                                const t = this._editor.getModel().getLineCount(),\n                                    i = this._editor.getLayoutInfo().height / t,\n                                    s = Math.max(2, Math.ceil(3 / i));\n                                let r = e[0].range.startLineNumber,\n                                    a = e[0].range.endLineNumber;\n                                for (let t = 1, i = e.length; t < i; t++) {\n                                    const i = e[t].range;\n                                    a + s >= i.startLineNumber ? i.endLineNumber > a && (a = i.endLineNumber) : (o.push({\n                                        range: new h.e(r, 1, a, 1),\n                                        options: _._FIND_MATCH_ONLY_OVERVIEW_DECORATION\n                                    }), r = i.startLineNumber, a = i.endLineNumber)\n                                }\n                                o.push({\n                                    range: new h.e(r, 1, a, 1),\n                                    options: _._FIND_MATCH_ONLY_OVERVIEW_DECORATION\n                                })\n                            }\n                            let s = new Array(e.length);\n                            for (let t = 0, i = e.length; t < i; t++) s[t] = {\n                                range: e[t].range,\n                                options: n\n                            };\n                            this._decorations = i.deltaDecorations(this._decorations, s), this._overviewRulerApproximateDecorations = i.deltaDecorations(this._overviewRulerApproximateDecorations, o), this._rangeHighlightDecorationId && (i.removeDecoration(this._rangeHighlightDecorationId), this._rangeHighlightDecorationId = null), this._findScopeDecorationIds.length && (this._findScopeDecorationIds.forEach((e => i.removeDecoration(e))), this._findScopeDecorationIds = []), (null == t ? void 0 : t.length) && (this._findScopeDecorationIds = t.map((e => i.addDecoration(e, _._FIND_SCOPE_DECORATION))))\n                        }))\n                    }\n                    matchBeforePosition(e) {\n                        if (0 === this._decorations.length) return null;\n                        for (let t = this._decorations.length - 1; t >= 0; t--) {\n                            let i = this._decorations[t],\n                                n = this._editor.getModel().getDecorationRange(i);\n                            if (n && !(n.endLineNumber > e.lineNumber)) {\n                                if (n.endLineNumber < e.lineNumber) return n;\n                                if (!(n.endColumn > e.column)) return n\n                            }\n                        }\n                        return this._editor.getModel().getDecorationRange(this._decorations[this._decorations.length - 1])\n                    }\n                    matchAfterPosition(e) {\n                        if (0 === this._decorations.length) return null;\n                        for (let t = 0, i = this._decorations.length; t < i; t++) {\n                            let i = this._decorations[t],\n                                n = this._editor.getModel().getDecorationRange(i);\n                            if (n && !(n.startLineNumber < e.lineNumber)) {\n                                if (n.startLineNumber > e.lineNumber) return n;\n                                if (!(n.startColumn < e.column)) return n\n                            }\n                        }\n                        return this._editor.getModel().getDecorationRange(this._decorations[0])\n                    }\n                    _allDecorations() {\n                        let e = [];\n                        return e = e.concat(this._decorations), e = e.concat(this._overviewRulerApproximateDecorations), this._findScopeDecorationIds.length && e.push(...this._findScopeDecorationIds), this._rangeHighlightDecorationId && e.push(this._rangeHighlightDecorationId), e\n                    }\n                }\n                _._CURRENT_FIND_MATCH_DECORATION = f.qx.register({\n                    description: \"current-find-match\",\n                    stickiness: 1,\n                    zIndex: 13,\n                    className: \"currentFindMatch\",\n                    showIfCollapsed: !0,\n                    overviewRuler: {\n                        color: (0, v.EN)(m.Fm),\n                        position: p.sh.Center\n                    },\n                    minimap: {\n                        color: (0, v.EN)(m.KT),\n                        position: p.F5.Inline\n                    }\n                }), _._FIND_MATCH_DECORATION = f.qx.register({\n                    description: \"find-match\",\n                    stickiness: 1,\n                    zIndex: 10,\n                    className: \"findMatch\",\n                    showIfCollapsed: !0,\n                    overviewRuler: {\n                        color: (0, v.EN)(m.Fm),\n                        position: p.sh.Center\n                    },\n                    minimap: {\n                        color: (0, v.EN)(m.KT),\n                        position: p.F5.Inline\n                    }\n                }), _._FIND_MATCH_NO_OVERVIEW_DECORATION = f.qx.register({\n                    description: \"find-match-no-overview\",\n                    stickiness: 1,\n                    className: \"findMatch\",\n                    showIfCollapsed: !0\n                }), _._FIND_MATCH_ONLY_OVERVIEW_DECORATION = f.qx.register({\n                    description: \"find-match-only-overview\",\n                    stickiness: 1,\n                    overviewRuler: {\n                        color: (0, v.EN)(m.Fm),\n                        position: p.sh.Center\n                    }\n                }), _._RANGE_HIGHLIGHT_DECORATION = f.qx.register({\n                    description: \"find-range-highlight\",\n                    stickiness: 1,\n                    className: \"rangeHighlight\",\n                    isWholeLine: !0\n                }), _._FIND_SCOPE_DECORATION = f.qx.register({\n                    description: \"find-scope\",\n                    className: \"findScope\",\n                    isWholeLine: !0\n                });\n                class b {\n                    constructor(e, t, i) {\n                        this._editorSelection = e, this._ranges = t, this._replaceStrings = i, this._trackedEditorSelectionId = null\n                    }\n                    getEditOperations(e, t) {\n                        if (this._ranges.length > 0) {\n                            let e = [];\n                            for (let t = 0; t < this._ranges.length; t++) e.push({\n                                range: this._ranges[t],\n                                text: this._replaceStrings[t]\n                            });\n                            e.sort(((e, t) => h.e.compareRangesUsingStarts(e.range, t.range)));\n                            let i = [],\n                                n = e[0];\n                            for (let t = 1; t < e.length; t++) n.range.endLineNumber === e[t].range.startLineNumber && n.range.endColumn === e[t].range.startColumn ? (n.range = n.range.plusRange(e[t].range), n.text = n.text + e[t].text) : (i.push(n), n = e[t]);\n                            i.push(n);\n                            for (const e of i) t.addEditOperation(e.range, e.text)\n                        }\n                        this._trackedEditorSelectionId = t.trackSelection(this._editorSelection)\n                    }\n                    computeCursorState(e, t) {\n                        return t.getTrackedSelection(this._trackedEditorSelectionId)\n                    }\n                }\n\n                function w(e, t) {\n                    if (e && \"\" !== e[0]) {\n                        const i = y(e, t, \"-\"),\n                            n = y(e, t, \"_\");\n                        return i && !n ? C(e, t, \"-\") : !i && n ? C(e, t, \"_\") : e[0].toUpperCase() === e[0] ? t.toUpperCase() : e[0].toLowerCase() === e[0] ? t.toLowerCase() : s.Kw(e[0][0]) && t.length > 0 ? t[0].toUpperCase() + t.substr(1) : e[0][0].toUpperCase() !== e[0][0] && t.length > 0 ? t[0].toLowerCase() + t.substr(1) : t\n                    }\n                    return t\n                }\n\n                function y(e, t, i) {\n                    return -1 !== e[0].indexOf(i) && -1 !== t.indexOf(i) && e[0].split(i).length === t.split(i).length\n                }\n\n                function C(e, t, i) {\n                    const n = t.split(i),\n                        o = e[0].split(i);\n                    let s = \"\";\n                    return n.forEach(((e, t) => {\n                        s += w([o[t]], e) + i\n                    })), s.slice(0, -1)\n                }\n                class x {\n                    constructor(e) {\n                        this.staticValue = e, this.kind = 0\n                    }\n                }\n                class S {\n                    constructor(e) {\n                        this.pieces = e, this.kind = 1\n                    }\n                }\n                class k {\n                    constructor(e) {\n                        e && 0 !== e.length ? 1 === e.length && null !== e[0].staticValue ? this._state = new x(e[0].staticValue) : this._state = new S(e) : this._state = new x(\"\")\n                    }\n                    static fromStaticValue(e) {\n                        return new k([L.staticValue(e)])\n                    }\n                    get hasReplacementPatterns() {\n                        return 1 === this._state.kind\n                    }\n                    buildReplaceString(e, t) {\n                        if (0 === this._state.kind) return t ? w(e, this._state.staticValue) : this._state.staticValue;\n                        let i = \"\";\n                        for (let t = 0, n = this._state.pieces.length; t < n; t++) {\n                            let n = this._state.pieces[t];\n                            if (null !== n.staticValue) {\n                                i += n.staticValue;\n                                continue\n                            }\n                            let o = k._substitute(n.matchIndex, e);\n                            if (null !== n.caseOps && n.caseOps.length > 0) {\n                                let e = [],\n                                    t = n.caseOps.length,\n                                    i = 0;\n                                for (let s = 0, r = o.length; s < r; s++) {\n                                    if (i >= t) {\n                                        e.push(o.slice(s));\n                                        break\n                                    }\n                                    switch (n.caseOps[i]) {\n                                        case \"U\":\n                                            e.push(o[s].toUpperCase());\n                                            break;\n                                        case \"u\":\n                                            e.push(o[s].toUpperCase()), i++;\n                                            break;\n                                        case \"L\":\n                                            e.push(o[s].toLowerCase());\n                                            break;\n                                        case \"l\":\n                                            e.push(o[s].toLowerCase()), i++;\n                                            break;\n                                        default:\n                                            e.push(o[s])\n                                    }\n                                }\n                                o = e.join(\"\")\n                            }\n                            i += o\n                        }\n                        return i\n                    }\n                    static _substitute(e, t) {\n                        if (null === t) return \"\";\n                        if (0 === e) return t[0];\n                        let i = \"\";\n                        for (; e > 0;) {\n                            if (e < t.length) {\n                                return (t[e] || \"\") + i\n                            }\n                            i = String(e % 10) + i, e = Math.floor(e / 10)\n                        }\n                        return \"$\" + i\n                    }\n                }\n                class L {\n                    constructor(e, t, i) {\n                        this.staticValue = e, this.matchIndex = t, i && 0 !== i.length ? this.caseOps = i.slice(0) : this.caseOps = null\n                    }\n                    static staticValue(e) {\n                        return new L(e, -1, null)\n                    }\n                    static caseOps(e, t) {\n                        return new L(null, e, t)\n                    }\n                }\n                class N {\n                    constructor(e) {\n                        this._source = e, this._lastCharIndex = 0, this._result = [], this._resultLen = 0, this._currentStaticPiece = \"\"\n                    }\n                    emitUnchanged(e) {\n                        this._emitStatic(this._source.substring(this._lastCharIndex, e)), this._lastCharIndex = e\n                    }\n                    emitStatic(e, t) {\n                        this._emitStatic(e), this._lastCharIndex = t\n                    }\n                    _emitStatic(e) {\n                        0 !== e.length && (this._currentStaticPiece += e)\n                    }\n                    emitMatchIndex(e, t, i) {\n                        0 !== this._currentStaticPiece.length && (this._result[this._resultLen++] = L.staticValue(this._currentStaticPiece), this._currentStaticPiece = \"\"), this._result[this._resultLen++] = L.caseOps(e, i), this._lastCharIndex = t\n                    }\n                    finalize() {\n                        return this.emitUnchanged(this._source.length), 0 !== this._currentStaticPiece.length && (this._result[this._resultLen++] = L.staticValue(this._currentStaticPiece), this._currentStaticPiece = \"\"), new k(this._result)\n                    }\n                }\n                var D = i(38819);\n                const I = new D.uy(\"findWidgetVisible\", !1),\n                    E = new D.uy(\"findInputFocussed\", !1),\n                    T = new D.uy(\"replaceInputFocussed\", !1),\n                    M = {\n                        primary: 545,\n                        mac: {\n                            primary: 2593\n                        }\n                    },\n                    A = {\n                        primary: 565,\n                        mac: {\n                            primary: 2613\n                        }\n                    },\n                    O = {\n                        primary: 560,\n                        mac: {\n                            primary: 2608\n                        }\n                    },\n                    P = {\n                        primary: 554,\n                        mac: {\n                            primary: 2602\n                        }\n                    },\n                    R = {\n                        primary: 558,\n                        mac: {\n                            primary: 2606\n                        }\n                    },\n                    F = \"actions.find\",\n                    B = \"actions.findWithSelection\",\n                    V = \"editor.action.nextMatchFindAction\",\n                    W = \"editor.action.previousMatchFindAction\",\n                    H = \"editor.action.nextSelectionMatchFindAction\",\n                    z = \"editor.action.previousSelectionMatchFindAction\",\n                    j = \"editor.action.startFindReplaceAction\",\n                    U = \"closeFindWidget\",\n                    $ = \"toggleFindCaseSensitive\",\n                    K = \"toggleFindWholeWord\",\n                    q = \"toggleFindRegex\",\n                    Z = \"toggleFindInSelection\",\n                    G = \"togglePreserveCase\",\n                    Y = \"editor.action.replaceOne\",\n                    Q = \"editor.action.replaceAll\",\n                    X = \"editor.action.selectAllMatches\",\n                    J = 19999;\n                class ee {\n                    constructor(e, t) {\n                        this._toDispose = new o.SL, this._editor = e, this._state = t, this._isDisposed = !1, this._startSearchingTimer = new n._F, this._decorations = new _(e), this._toDispose.add(this._decorations), this._updateDecorationsScheduler = new n.pY((() => this.research(!1)), 100), this._toDispose.add(this._updateDecorationsScheduler), this._toDispose.add(this._editor.onDidChangeCursorPosition((e => {\n                            3 !== e.reason && 5 !== e.reason && 6 !== e.reason || this._decorations.setStartPosition(this._editor.getPosition())\n                        }))), this._ignoreModelContentChanged = !1, this._toDispose.add(this._editor.onDidChangeModelContent((e => {\n                            this._ignoreModelContentChanged || (e.isFlush && this._decorations.reset(), this._decorations.setStartPosition(this._editor.getPosition()), this._updateDecorationsScheduler.schedule())\n                        }))), this._toDispose.add(this._state.onFindReplaceStateChange((e => this._onStateChanged(e)))), this.research(!1, this._state.searchScope)\n                    }\n                    dispose() {\n                        this._isDisposed = !0, (0, o.B9)(this._startSearchingTimer), this._toDispose.dispose()\n                    }\n                    _onStateChanged(e) {\n                        if (!this._isDisposed && this._editor.hasModel() && (e.searchString || e.isReplaceRevealed || e.isRegex || e.wholeWord || e.matchCase || e.searchScope)) {\n                            this._editor.getModel().isTooLargeForSyncing() ? (this._startSearchingTimer.cancel(), this._startSearchingTimer.setIfNotSet((() => {\n                                e.searchScope ? this.research(e.moveCursor, this._state.searchScope) : this.research(e.moveCursor)\n                            }), 240)) : e.searchScope ? this.research(e.moveCursor, this._state.searchScope) : this.research(e.moveCursor)\n                        }\n                    }\n                    static _getSearchRange(e, t) {\n                        return t || e.getFullModelRange()\n                    }\n                    research(e, t) {\n                        let i = null;\n                        void 0 !== t ? null !== t && (i = Array.isArray(t) ? t : [t]) : i = this._decorations.getFindScopes(), null !== i && (i = i.map((e => {\n                            if (e.startLineNumber !== e.endLineNumber) {\n                                let t = e.endLineNumber;\n                                return 1 === e.endColumn && (t -= 1), new h.e(e.startLineNumber, 1, t, this._editor.getModel().getLineMaxColumn(t))\n                            }\n                            return e\n                        })));\n                        let n = this._findMatches(i, !1, J);\n                        this._decorations.set(n, i);\n                        const o = this._editor.getSelection();\n                        let s = this._decorations.getCurrentMatchesPosition(o);\n                        if (0 === s && n.length > 0) {\n                            const e = (0, l.lG)(n.map((e => e.range)), (e => h.e.compareRangesUsingStarts(e, o) >= 0));\n                            s = e > 0 ? e - 1 + 1 : s\n                        }\n                        this._state.changeMatchInfo(s, this._decorations.getCount(), void 0), e && this._editor.getOption(35).cursorMoveOnType && this._moveToNextMatch(this._decorations.getStartPosition())\n                    }\n                    _hasMatches() {\n                        return this._state.matchesCount > 0\n                    }\n                    _cannotFind() {\n                        if (!this._hasMatches()) {\n                            let e = this._decorations.getFindScope();\n                            return e && this._editor.revealRangeInCenterIfOutsideViewport(e, 0), !0\n                        }\n                        return !1\n                    }\n                    _setCurrentFindMatch(e) {\n                        let t = this._decorations.setCurrentFindMatch(e);\n                        this._state.changeMatchInfo(t, this._decorations.getCount(), e), this._editor.setSelection(e), this._editor.revealRangeInCenterIfOutsideViewport(e, 0)\n                    }\n                    _prevSearchPosition(e) {\n                        let t = this._state.isRegex && (this._state.searchString.indexOf(\"^\") >= 0 || this._state.searchString.indexOf(\"$\") >= 0),\n                            {\n                                lineNumber: i,\n                                column: n\n                            } = e,\n                            o = this._editor.getModel();\n                        return t || 1 === n ? (1 === i ? i = o.getLineCount() : i--, n = o.getLineMaxColumn(i)) : n--, new d.L(i, n)\n                    }\n                    _moveToPrevMatch(e, t = !1) {\n                        if (!this._state.canNavigateBack()) {\n                            const t = this._decorations.matchAfterPosition(e);\n                            return void(t && this._setCurrentFindMatch(t))\n                        }\n                        if (this._decorations.getCount() < J) {\n                            let t = this._decorations.matchBeforePosition(e);\n                            return t && t.isEmpty() && t.getStartPosition().equals(e) && (e = this._prevSearchPosition(e), t = this._decorations.matchBeforePosition(e)), void(t && this._setCurrentFindMatch(t))\n                        }\n                        if (this._cannotFind()) return;\n                        let i = this._decorations.getFindScope(),\n                            n = ee._getSearchRange(this._editor.getModel(), i);\n                        n.getEndPosition().isBefore(e) && (e = n.getEndPosition()), e.isBefore(n.getStartPosition()) && (e = n.getEndPosition());\n                        let {\n                            lineNumber: o,\n                            column: s\n                        } = e, r = this._editor.getModel(), a = new d.L(o, s), l = r.findPreviousMatch(this._state.searchString, a, this._state.isRegex, this._state.matchCase, this._state.wholeWord ? this._editor.getOption(115) : null, !1);\n                        return l && l.range.isEmpty() && l.range.getStartPosition().equals(a) && (a = this._prevSearchPosition(a), l = r.findPreviousMatch(this._state.searchString, a, this._state.isRegex, this._state.matchCase, this._state.wholeWord ? this._editor.getOption(115) : null, !1)), l ? t || n.containsRange(l.range) ? void this._setCurrentFindMatch(l.range) : this._moveToPrevMatch(l.range.getStartPosition(), !0) : void 0\n                    }\n                    moveToPrevMatch() {\n                        this._moveToPrevMatch(this._editor.getSelection().getStartPosition())\n                    }\n                    _nextSearchPosition(e) {\n                        let t = this._state.isRegex && (this._state.searchString.indexOf(\"^\") >= 0 || this._state.searchString.indexOf(\"$\") >= 0),\n                            {\n                                lineNumber: i,\n                                column: n\n                            } = e,\n                            o = this._editor.getModel();\n                        return t || n === o.getLineMaxColumn(i) ? (i === o.getLineCount() ? i = 1 : i++, n = 1) : n++, new d.L(i, n)\n                    }\n                    _moveToNextMatch(e) {\n                        if (!this._state.canNavigateForward()) {\n                            const t = this._decorations.matchBeforePosition(e);\n                            return void(t && this._setCurrentFindMatch(t))\n                        }\n                        if (this._decorations.getCount() < J) {\n                            let t = this._decorations.matchAfterPosition(e);\n                            return t && t.isEmpty() && t.getStartPosition().equals(e) && (e = this._nextSearchPosition(e), t = this._decorations.matchAfterPosition(e)), void(t && this._setCurrentFindMatch(t))\n                        }\n                        let t = this._getNextMatch(e, !1, !0);\n                        t && this._setCurrentFindMatch(t.range)\n                    }\n                    _getNextMatch(e, t, i, n = !1) {\n                        if (this._cannotFind()) return null;\n                        let o = this._decorations.getFindScope(),\n                            s = ee._getSearchRange(this._editor.getModel(), o);\n                        s.getEndPosition().isBefore(e) && (e = s.getStartPosition()), e.isBefore(s.getStartPosition()) && (e = s.getStartPosition());\n                        let {\n                            lineNumber: r,\n                            column: a\n                        } = e, l = this._editor.getModel(), c = new d.L(r, a), h = l.findNextMatch(this._state.searchString, c, this._state.isRegex, this._state.matchCase, this._state.wholeWord ? this._editor.getOption(115) : null, t);\n                        return i && h && h.range.isEmpty() && h.range.getStartPosition().equals(c) && (c = this._nextSearchPosition(c), h = l.findNextMatch(this._state.searchString, c, this._state.isRegex, this._state.matchCase, this._state.wholeWord ? this._editor.getOption(115) : null, t)), h ? n || s.containsRange(h.range) ? h : this._getNextMatch(h.range.getEndPosition(), t, i, !0) : null\n                    }\n                    moveToNextMatch() {\n                        this._moveToNextMatch(this._editor.getSelection().getEndPosition())\n                    }\n                    _getReplacePattern() {\n                        return this._state.isRegex ? function(e) {\n                            if (!e || 0 === e.length) return new k(null);\n                            let t = [],\n                                i = new N(e);\n                            for (let n = 0, o = e.length; n < o; n++) {\n                                let s = e.charCodeAt(n);\n                                if (92 !== s) {\n                                    if (36 === s) {\n                                        if (n++, n >= o) break;\n                                        let s = e.charCodeAt(n);\n                                        if (36 === s) {\n                                            i.emitUnchanged(n - 1), i.emitStatic(\"$\", n + 1);\n                                            continue\n                                        }\n                                        if (48 === s || 38 === s) {\n                                            i.emitUnchanged(n - 1), i.emitMatchIndex(0, n + 1, t), t.length = 0;\n                                            continue\n                                        }\n                                        if (49 <= s && s <= 57) {\n                                            let r = s - 48;\n                                            if (n + 1 < o) {\n                                                let o = e.charCodeAt(n + 1);\n                                                if (48 <= o && o <= 57) {\n                                                    n++, r = 10 * r + (o - 48), i.emitUnchanged(n - 2), i.emitMatchIndex(r, n + 1, t), t.length = 0;\n                                                    continue\n                                                }\n                                            }\n                                            i.emitUnchanged(n - 1), i.emitMatchIndex(r, n + 1, t), t.length = 0;\n                                            continue\n                                        }\n                                    }\n                                } else {\n                                    if (n++, n >= o) break;\n                                    let s = e.charCodeAt(n);\n                                    switch (s) {\n                                        case 92:\n                                            i.emitUnchanged(n - 1), i.emitStatic(\"\\\\\", n + 1);\n                                            break;\n                                        case 110:\n                                            i.emitUnchanged(n - 1), i.emitStatic(\"\\n\", n + 1);\n                                            break;\n                                        case 116:\n                                            i.emitUnchanged(n - 1), i.emitStatic(\"\\t\", n + 1);\n                                            break;\n                                        case 117:\n                                        case 85:\n                                        case 108:\n                                        case 76:\n                                            i.emitUnchanged(n - 1), i.emitStatic(\"\", n + 1), t.push(String.fromCharCode(s))\n                                    }\n                                }\n                            }\n                            return i.finalize()\n                        }(this._state.replaceString) : k.fromStaticValue(this._state.replaceString)\n                    }\n                    replace() {\n                        if (!this._hasMatches()) return;\n                        let e = this._getReplacePattern(),\n                            t = this._editor.getSelection(),\n                            i = this._getNextMatch(t.getStartPosition(), !0, !1);\n                        if (i)\n                            if (t.equalsRange(i.range)) {\n                                let n = e.buildReplaceString(i.matches, this._state.preserveCase),\n                                    o = new c.T4(t, n);\n                                this._executeEditorCommand(\"replace\", o), this._decorations.setStartPosition(new d.L(t.startLineNumber, t.startColumn + n.length)), this.research(!0)\n                            } else this._decorations.setStartPosition(this._editor.getPosition()), this._setCurrentFindMatch(i.range)\n                    }\n                    _findMatches(e, t, i) {\n                        const n = (e || [null]).map((e => ee._getSearchRange(this._editor.getModel(), e)));\n                        return this._editor.getModel().findMatches(this._state.searchString, n, this._state.isRegex, this._state.matchCase, this._state.wholeWord ? this._editor.getOption(115) : null, t, i)\n                    }\n                    replaceAll() {\n                        if (!this._hasMatches()) return;\n                        const e = this._decorations.getFindScopes();\n                        null === e && this._state.matchesCount >= J ? this._largeReplaceAll() : this._regularReplaceAll(e), this.research(!1)\n                    }\n                    _largeReplaceAll() {\n                        const e = new g.bc(this._state.searchString, this._state.isRegex, this._state.matchCase, this._state.wholeWord ? this._editor.getOption(115) : null).parseSearchRequest();\n                        if (!e) return;\n                        let t = e.regex;\n                        if (!t.multiline) {\n                            let e = \"mu\";\n                            t.ignoreCase && (e += \"i\"), t.global && (e += \"g\"), t = new RegExp(t.source, e)\n                        }\n                        const i = this._editor.getModel(),\n                            n = i.getValue(1),\n                            o = i.getFullModelRange(),\n                            s = this._getReplacePattern();\n                        let r;\n                        const a = this._state.preserveCase;\n                        r = s.hasReplacementPatterns || a ? n.replace(t, (function() {\n                            return s.buildReplaceString(arguments, a)\n                        })) : n.replace(t, s.buildReplaceString(null, a));\n                        let l = new c.hP(o, r, this._editor.getSelection());\n                        this._executeEditorCommand(\"replaceAll\", l)\n                    }\n                    _regularReplaceAll(e) {\n                        const t = this._getReplacePattern();\n                        let i = this._findMatches(e, t.hasReplacementPatterns || this._state.preserveCase, 1073741824),\n                            n = [];\n                        for (let e = 0, o = i.length; e < o; e++) n[e] = t.buildReplaceString(i[e].matches, this._state.preserveCase);\n                        let o = new b(this._editor.getSelection(), i.map((e => e.range)), n);\n                        this._executeEditorCommand(\"replaceAll\", o)\n                    }\n                    selectAllMatches() {\n                        if (!this._hasMatches()) return;\n                        let e = this._decorations.getFindScopes(),\n                            t = this._findMatches(e, !1, 1073741824).map((e => new u.Y(e.range.startLineNumber, e.range.startColumn, e.range.endLineNumber, e.range.endColumn))),\n                            i = this._editor.getSelection();\n                        for (let e = 0, n = t.length; e < n; e++) {\n                            if (t[e].equalsRange(i)) {\n                                t = [i].concat(t.slice(0, e)).concat(t.slice(e + 1));\n                                break\n                            }\n                        }\n                        this._editor.setSelections(t)\n                    }\n                    _executeEditorCommand(e, t) {\n                        try {\n                            this._ignoreModelContentChanged = !0, this._editor.pushUndoStop(), this._editor.executeCommand(e, t), this._editor.pushUndoStop()\n                        } finally {\n                            this._ignoreModelContentChanged = !1\n                        }\n                    }\n                }\n                var te = i(65321),\n                    ie = i(93794),\n                    ne = i(73046),\n                    oe = i(41264),\n                    se = i(4669);\n                i(67633);\n                const re = {\n                    inputActiveOptionBorder: oe.Il.fromHex(\"#007ACC00\"),\n                    inputActiveOptionForeground: oe.Il.fromHex(\"#FFFFFF\"),\n                    inputActiveOptionBackground: oe.Il.fromHex(\"#0E639C50\")\n                };\n                class ae extends ie.$ {\n                    constructor(e) {\n                        super(), this._onChange = this._register(new se.Q5), this.onChange = this._onChange.event, this._onKeyDown = this._register(new se.Q5), this.onKeyDown = this._onKeyDown.event, this._opts = Object.assign(Object.assign({}, re), e), this._checked = this._opts.isChecked;\n                        const t = [\"monaco-custom-checkbox\"];\n                        this._opts.icon && t.push(...ne.dT.asClassNameArray(this._opts.icon)), this._opts.actionClassName && t.push(...this._opts.actionClassName.split(\" \")), this._checked && t.push(\"checked\"), this.domNode = document.createElement(\"div\"), this.domNode.title = this._opts.title, this.domNode.classList.add(...t), 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, (e => {\n                            this.checked = !this._checked, this._onChange.fire(!1), e.preventDefault()\n                        })), this.ignoreGesture(this.domNode), this.onkeydown(this.domNode, (e => {\n                            if (10 === e.keyCode || 3 === e.keyCode) return this.checked = !this._checked, this._onChange.fire(!0), void e.preventDefault();\n                            this._onKeyDown.fire(e)\n                        }))\n                    }\n                    get enabled() {\n                        return \"true\" !== this.domNode.getAttribute(\"aria-disabled\")\n                    }\n                    focus() {\n                        this.domNode.focus()\n                    }\n                    get checked() {\n                        return this._checked\n                    }\n                    set checked(e) {\n                        this._checked = e, this.domNode.setAttribute(\"aria-checked\", String(this._checked)), this.domNode.classList.toggle(\"checked\", this._checked), this.applyStyles()\n                    }\n                    width() {\n                        return 22\n                    }\n                    style(e) {\n                        e.inputActiveOptionBorder && (this._opts.inputActiveOptionBorder = e.inputActiveOptionBorder), e.inputActiveOptionForeground && (this._opts.inputActiveOptionForeground = e.inputActiveOptionForeground), e.inputActiveOptionBackground && (this._opts.inputActiveOptionBackground = e.inputActiveOptionBackground), this.applyStyles()\n                    }\n                    applyStyles() {\n                        this.domNode && (this.domNode.style.borderColor = this._checked && this._opts.inputActiveOptionBorder ? this._opts.inputActiveOptionBorder.toString() : \"transparent\", this.domNode.style.color = this._checked && this._opts.inputActiveOptionForeground ? this._opts.inputActiveOptionForeground.toString() : \"inherit\", this.domNode.style.backgroundColor = this._checked && this._opts.inputActiveOptionBackground ? this._opts.inputActiveOptionBackground.toString() : \"transparent\")\n                    }\n                    enable() {\n                        this.domNode.setAttribute(\"aria-disabled\", String(!1))\n                    }\n                    disable() {\n                        this.domNode.setAttribute(\"aria-disabled\", String(!0))\n                    }\n                }\n                var le = i(63580);\n                const ce = le.N(\"caseDescription\", new Language(modifyState.language).matchCase()),\n                    de = le.N(\"wordsDescription\", new Language(modifyState.language).matchWholeWord()),\n                    he = le.N(\"regexDescription\", new Language(modifyState.language).useRegularExpression());\n                class ue extends ae {\n                    constructor(e) {\n                        super({\n                            icon: ne.lA.caseSensitive,\n                            title: ce + e.appendTitle,\n                            isChecked: e.isChecked,\n                            inputActiveOptionBorder: e.inputActiveOptionBorder,\n                            inputActiveOptionForeground: e.inputActiveOptionForeground,\n                            inputActiveOptionBackground: e.inputActiveOptionBackground\n                        })\n                    }\n                }\n                class ge extends ae {\n                    constructor(e) {\n                        super({\n                            icon: ne.lA.wholeWord,\n                            title: de + e.appendTitle,\n                            isChecked: e.isChecked,\n                            inputActiveOptionBorder: e.inputActiveOptionBorder,\n                            inputActiveOptionForeground: e.inputActiveOptionForeground,\n                            inputActiveOptionBackground: e.inputActiveOptionBackground\n                        })\n                    }\n                }\n                class pe extends ae {\n                    constructor(e) {\n                        super({\n                            icon: ne.lA.regex,\n                            title: he + e.appendTitle,\n                            isChecked: e.isChecked,\n                            inputActiveOptionBorder: e.inputActiveOptionBorder,\n                            inputActiveOptionForeground: e.inputActiveOptionForeground,\n                            inputActiveOptionBackground: e.inputActiveOptionBackground\n                        })\n                    }\n                }\n                class fe extends ie.$ {\n                    constructor(e, t, i, o) {\n                        super(), this._hideSoon = this._register(new n.pY((() => this._hide()), 2e3)), this._isVisible = !1, this._editor = e, this._state = t, this._keybindingService = i, this._domNode = document.createElement(\"div\"), this._domNode.className = \"findOptionsWidget\", this._domNode.style.display = \"none\", this._domNode.style.top = \"10px\", this._domNode.setAttribute(\"role\", \"presentation\"), this._domNode.setAttribute(\"aria-hidden\", \"true\");\n                        const s = o.getColorTheme().getColor(m.PR),\n                            r = o.getColorTheme().getColor(m.Pv),\n                            a = o.getColorTheme().getColor(m.XE);\n                        this.caseSensitive = this._register(new ue({\n                            appendTitle: this._keybindingLabelFor($),\n                            isChecked: this._state.matchCase,\n                            inputActiveOptionBorder: s,\n                            inputActiveOptionForeground: r,\n                            inputActiveOptionBackground: a\n                        })), this._domNode.appendChild(this.caseSensitive.domNode), this._register(this.caseSensitive.onChange((() => {\n                            this._state.change({\n                                matchCase: this.caseSensitive.checked\n                            }, !1)\n                        }))), this.wholeWords = this._register(new ge({\n                            appendTitle: this._keybindingLabelFor(K),\n                            isChecked: this._state.wholeWord,\n                            inputActiveOptionBorder: s,\n                            inputActiveOptionForeground: r,\n                            inputActiveOptionBackground: a\n                        })), this._domNode.appendChild(this.wholeWords.domNode), this._register(this.wholeWords.onChange((() => {\n                            this._state.change({\n                                wholeWord: this.wholeWords.checked\n                            }, !1)\n                        }))), this.regex = this._register(new pe({\n                            appendTitle: this._keybindingLabelFor(q),\n                            isChecked: this._state.isRegex,\n                            inputActiveOptionBorder: s,\n                            inputActiveOptionForeground: r,\n                            inputActiveOptionBackground: a\n                        })), this._domNode.appendChild(this.regex.domNode), this._register(this.regex.onChange((() => {\n                            this._state.change({\n                                isRegex: this.regex.checked\n                            }, !1)\n                        }))), this._editor.addOverlayWidget(this), this._register(this._state.onFindReplaceStateChange((e => {\n                            let t = !1;\n                            e.isRegex && (this.regex.checked = this._state.isRegex, t = !0), e.wholeWord && (this.wholeWords.checked = this._state.wholeWord, t = !0), e.matchCase && (this.caseSensitive.checked = this._state.matchCase, t = !0), !this._state.isRevealed && t && this._revealTemporarily()\n                        }))), this._register(te.j_(this._domNode, (e => this._onMouseOut()))), this._register(te.nm(this._domNode, \"mouseover\", (e => this._onMouseOver()))), this._applyTheme(o.getColorTheme()), this._register(o.onDidColorThemeChange(this._applyTheme.bind(this)))\n                    }\n                    _keybindingLabelFor(e) {\n                        let t = this._keybindingService.lookupKeybinding(e);\n                        return t ? ` (${t.getLabel()})` : \"\"\n                    }\n                    dispose() {\n                        this._editor.removeOverlayWidget(this), super.dispose()\n                    }\n                    getId() {\n                        return fe.ID\n                    }\n                    getDomNode() {\n                        return this._domNode\n                    }\n                    getPosition() {\n                        return {\n                            preference: 0\n                        }\n                    }\n                    highlightFindOptions() {\n                        this._revealTemporarily()\n                    }\n                    _revealTemporarily() {\n                        this._show(), this._hideSoon.schedule()\n                    }\n                    _onMouseOut() {\n                        this._hideSoon.schedule()\n                    }\n                    _onMouseOver() {\n                        this._hideSoon.cancel()\n                    }\n                    _show() {\n                        this._isVisible || (this._isVisible = !0, this._domNode.style.display = \"block\")\n                    }\n                    _hide() {\n                        this._isVisible && (this._isVisible = !1, this._domNode.style.display = \"none\")\n                    }\n                    _applyTheme(e) {\n                        let t = {\n                            inputActiveOptionBorder: e.getColor(m.PR),\n                            inputActiveOptionForeground: e.getColor(m.Pv),\n                            inputActiveOptionBackground: e.getColor(m.XE)\n                        };\n                        this.caseSensitive.style(t), this.wholeWords.style(t), this.regex.style(t)\n                    }\n                }\n\n                function me(e, t) {\n                    return 1 === e || 2 !== e && t\n                }\n                fe.ID = \"editor.contrib.findOptionsWidget\", (0, v.Ic)(((e, t) => {\n                    const i = e.getColor(m.D0);\n                    i && t.addRule(`.monaco-editor .findOptionsWidget { background-color: ${i}; }`);\n                    const n = e.getColor(m.Hf);\n                    n && t.addRule(`.monaco-editor .findOptionsWidget { color: ${n}; }`);\n                    const o = e.getColor(m.rh);\n                    o && t.addRule(`.monaco-editor .findOptionsWidget { box-shadow: 0 0 8px 2px ${o}; }`);\n                    const s = e.getColor(m.lR);\n                    s && t.addRule(`.monaco-editor .findOptionsWidget { border: 2px solid ${s}; }`)\n                }));\n                class ve extends o.JT {\n                    constructor() {\n                        super(), this._onFindReplaceStateChange = this._register(new se.Q5), 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\n                    }\n                    get searchString() {\n                        return this._searchString\n                    }\n                    get replaceString() {\n                        return this._replaceString\n                    }\n                    get isRevealed() {\n                        return this._isRevealed\n                    }\n                    get isReplaceRevealed() {\n                        return this._isReplaceRevealed\n                    }\n                    get isRegex() {\n                        return me(this._isRegexOverride, this._isRegex)\n                    }\n                    get wholeWord() {\n                        return me(this._wholeWordOverride, this._wholeWord)\n                    }\n                    get matchCase() {\n                        return me(this._matchCaseOverride, this._matchCase)\n                    }\n                    get preserveCase() {\n                        return me(this._preserveCaseOverride, this._preserveCase)\n                    }\n                    get actualIsRegex() {\n                        return this._isRegex\n                    }\n                    get actualWholeWord() {\n                        return this._wholeWord\n                    }\n                    get actualMatchCase() {\n                        return this._matchCase\n                    }\n                    get actualPreserveCase() {\n                        return this._preserveCase\n                    }\n                    get searchScope() {\n                        return this._searchScope\n                    }\n                    get matchesPosition() {\n                        return this._matchesPosition\n                    }\n                    get matchesCount() {\n                        return this._matchesCount\n                    }\n                    get currentMatch() {\n                        return this._currentMatch\n                    }\n                    changeMatchInfo(e, t, i) {\n                        let n = {\n                                moveCursor: !1,\n                                updateHistory: !1,\n                                searchString: !1,\n                                replaceString: !1,\n                                isRevealed: !1,\n                                isReplaceRevealed: !1,\n                                isRegex: !1,\n                                wholeWord: !1,\n                                matchCase: !1,\n                                preserveCase: !1,\n                                searchScope: !1,\n                                matchesPosition: !1,\n                                matchesCount: !1,\n                                currentMatch: !1,\n                                loop: !1\n                            },\n                            o = !1;\n                        0 === t && (e = 0), e > t && (e = t), this._matchesPosition !== e && (this._matchesPosition = e, n.matchesPosition = !0, o = !0), this._matchesCount !== t && (this._matchesCount = t, n.matchesCount = !0, o = !0), void 0 !== i && (h.e.equalsRange(this._currentMatch, i) || (this._currentMatch = i, n.currentMatch = !0, o = !0)), o && this._onFindReplaceStateChange.fire(n)\n                    }\n                    change(e, t, i = !0) {\n                        var n;\n                        let o = {\n                                moveCursor: t,\n                                updateHistory: i,\n                                searchString: !1,\n                                replaceString: !1,\n                                isRevealed: !1,\n                                isReplaceRevealed: !1,\n                                isRegex: !1,\n                                wholeWord: !1,\n                                matchCase: !1,\n                                preserveCase: !1,\n                                searchScope: !1,\n                                matchesPosition: !1,\n                                matchesCount: !1,\n                                currentMatch: !1,\n                                loop: !1\n                            },\n                            s = !1;\n                        const r = this.isRegex,\n                            a = this.wholeWord,\n                            l = this.matchCase,\n                            c = this.preserveCase;\n                        void 0 !== e.searchString && this._searchString !== e.searchString && (this._searchString = e.searchString, o.searchString = !0, s = !0), void 0 !== e.replaceString && this._replaceString !== e.replaceString && (this._replaceString = e.replaceString, o.replaceString = !0, s = !0), void 0 !== e.isRevealed && this._isRevealed !== e.isRevealed && (this._isRevealed = e.isRevealed, o.isRevealed = !0, s = !0), void 0 !== e.isReplaceRevealed && this._isReplaceRevealed !== e.isReplaceRevealed && (this._isReplaceRevealed = e.isReplaceRevealed, o.isReplaceRevealed = !0, s = !0), void 0 !== e.isRegex && (this._isRegex = e.isRegex), void 0 !== e.wholeWord && (this._wholeWord = e.wholeWord), void 0 !== e.matchCase && (this._matchCase = e.matchCase), void 0 !== e.preserveCase && (this._preserveCase = e.preserveCase), void 0 !== e.searchScope && ((null === (n = e.searchScope) || void 0 === n ? void 0 : n.every((e => {\n                            var t;\n                            return null === (t = this._searchScope) || void 0 === t ? void 0 : t.some((t => !h.e.equalsRange(t, e)))\n                        }))) || (this._searchScope = e.searchScope, o.searchScope = !0, s = !0)), void 0 !== e.loop && this._loop !== e.loop && (this._loop = e.loop, o.loop = !0, s = !0), this._isRegexOverride = void 0 !== e.isRegexOverride ? e.isRegexOverride : 0, this._wholeWordOverride = void 0 !== e.wholeWordOverride ? e.wholeWordOverride : 0, this._matchCaseOverride = void 0 !== e.matchCaseOverride ? e.matchCaseOverride : 0, this._preserveCaseOverride = void 0 !== e.preserveCaseOverride ? e.preserveCaseOverride : 0, r !== this.isRegex && (s = !0, o.isRegex = !0), a !== this.wholeWord && (s = !0, o.wholeWord = !0), l !== this.matchCase && (s = !0, o.matchCase = !0), c !== this.preserveCase && (s = !0, o.preserveCase = !0), s && this._onFindReplaceStateChange.fire(o)\n                    }\n                    canNavigateBack() {\n                        return this.canNavigateInLoop() || 1 !== this.matchesPosition\n                    }\n                    canNavigateForward() {\n                        return this.canNavigateInLoop() || this.matchesPosition < this.matchesCount\n                    }\n                    canNavigateInLoop() {\n                        return this._loop || this.matchesCount >= J\n                    }\n                }\n                var _e = i(85152),\n                    be = i(73098),\n                    we = i(17301),\n                    ye = i(1432),\n                    Ce = (i(80668), i(77927));\n                i(31214);\n                const xe = le.N(\"defaultLabel\", \"input\");\n                class Se extends ie.$ {\n                    constructor(e, t, i, n) {\n                        super(), this._showOptionButtons = i, this.fixFocusOnOptionClickEnabled = !0, this.imeSessionInProgress = !1, this._onDidOptionChange = this._register(new se.Q5), this.onDidOptionChange = this._onDidOptionChange.event, this._onKeyDown = this._register(new se.Q5), this.onKeyDown = this._onKeyDown.event, this._onMouseDown = this._register(new se.Q5), this.onMouseDown = this._onMouseDown.event, this._onInput = this._register(new se.Q5), this._onKeyUp = this._register(new se.Q5), this._onCaseSensitiveKeyDown = this._register(new se.Q5), this.onCaseSensitiveKeyDown = this._onCaseSensitiveKeyDown.event, this._onRegexKeyDown = this._register(new se.Q5), this.onRegexKeyDown = this._onRegexKeyDown.event, this._lastHighlightFindOptions = 0, this.contextViewProvider = t, this.placeholder = n.placeholder || \"\", this.validation = n.validation, this.label = n.label || xe, this.inputActiveOptionBorder = n.inputActiveOptionBorder, this.inputActiveOptionForeground = n.inputActiveOptionForeground, this.inputActiveOptionBackground = n.inputActiveOptionBackground, this.inputBackground = n.inputBackground, this.inputForeground = n.inputForeground, this.inputBorder = n.inputBorder, this.inputValidationInfoBorder = n.inputValidationInfoBorder, this.inputValidationInfoBackground = n.inputValidationInfoBackground, this.inputValidationInfoForeground = n.inputValidationInfoForeground, this.inputValidationWarningBorder = n.inputValidationWarningBorder, this.inputValidationWarningBackground = n.inputValidationWarningBackground, this.inputValidationWarningForeground = n.inputValidationWarningForeground, this.inputValidationErrorBorder = n.inputValidationErrorBorder, this.inputValidationErrorBackground = n.inputValidationErrorBackground, this.inputValidationErrorForeground = n.inputValidationErrorForeground;\n                        const o = n.appendCaseSensitiveLabel || \"\",\n                            s = n.appendWholeWordsLabel || \"\",\n                            r = n.appendRegexLabel || \"\",\n                            a = n.history || [],\n                            l = !!n.flexibleHeight,\n                            c = !!n.flexibleWidth,\n                            d = n.flexibleMaxHeight;\n                        this.domNode = document.createElement(\"div\"), this.domNode.classList.add(\"monaco-findInput\"), this.inputBox = this._register(new Ce.p(this.domNode, this.contextViewProvider, {\n                            placeholder: this.placeholder || \"\",\n                            ariaLabel: this.label || \"\",\n                            validationOptions: {\n                                validation: this.validation\n                            },\n                            inputBackground: this.inputBackground,\n                            inputForeground: this.inputForeground,\n                            inputBorder: this.inputBorder,\n                            inputValidationInfoBackground: this.inputValidationInfoBackground,\n                            inputValidationInfoForeground: this.inputValidationInfoForeground,\n                            inputValidationInfoBorder: this.inputValidationInfoBorder,\n                            inputValidationWarningBackground: this.inputValidationWarningBackground,\n                            inputValidationWarningForeground: this.inputValidationWarningForeground,\n                            inputValidationWarningBorder: this.inputValidationWarningBorder,\n                            inputValidationErrorBackground: this.inputValidationErrorBackground,\n                            inputValidationErrorForeground: this.inputValidationErrorForeground,\n                            inputValidationErrorBorder: this.inputValidationErrorBorder,\n                            history: a,\n                            showHistoryHint: n.showHistoryHint,\n                            flexibleHeight: l,\n                            flexibleWidth: c,\n                            flexibleMaxHeight: d\n                        })), this.regex = this._register(new pe({\n                            appendTitle: r,\n                            isChecked: !1,\n                            inputActiveOptionBorder: this.inputActiveOptionBorder,\n                            inputActiveOptionForeground: this.inputActiveOptionForeground,\n                            inputActiveOptionBackground: this.inputActiveOptionBackground\n                        })), this._register(this.regex.onChange((e => {\n                            this._onDidOptionChange.fire(e), !e && this.fixFocusOnOptionClickEnabled && this.inputBox.focus(), this.validate()\n                        }))), this._register(this.regex.onKeyDown((e => {\n                            this._onRegexKeyDown.fire(e)\n                        }))), this.wholeWords = this._register(new ge({\n                            appendTitle: s,\n                            isChecked: !1,\n                            inputActiveOptionBorder: this.inputActiveOptionBorder,\n                            inputActiveOptionForeground: this.inputActiveOptionForeground,\n                            inputActiveOptionBackground: this.inputActiveOptionBackground\n                        })), this._register(this.wholeWords.onChange((e => {\n                            this._onDidOptionChange.fire(e), !e && this.fixFocusOnOptionClickEnabled && this.inputBox.focus(), this.validate()\n                        }))), this.caseSensitive = this._register(new ue({\n                            appendTitle: o,\n                            isChecked: !1,\n                            inputActiveOptionBorder: this.inputActiveOptionBorder,\n                            inputActiveOptionForeground: this.inputActiveOptionForeground,\n                            inputActiveOptionBackground: this.inputActiveOptionBackground\n                        })), this._register(this.caseSensitive.onChange((e => {\n                            this._onDidOptionChange.fire(e), !e && this.fixFocusOnOptionClickEnabled && this.inputBox.focus(), this.validate()\n                        }))), this._register(this.caseSensitive.onKeyDown((e => {\n                            this._onCaseSensitiveKeyDown.fire(e)\n                        }))), this._showOptionButtons && (this.inputBox.paddingRight = this.caseSensitive.width() + this.wholeWords.width() + this.regex.width());\n                        let h = [this.caseSensitive.domNode, this.wholeWords.domNode, this.regex.domNode];\n                        this.onkeydown(this.domNode, (e => {\n                            if (e.equals(15) || e.equals(17) || e.equals(9)) {\n                                let t = h.indexOf(document.activeElement);\n                                if (t >= 0) {\n                                    let i = -1;\n                                    e.equals(17) ? i = (t + 1) % h.length : e.equals(15) && (i = 0 === t ? h.length - 1 : t - 1), e.equals(9) ? (h[t].blur(), this.inputBox.focus()) : i >= 0 && h[i].focus(), te.zB.stop(e, !0)\n                                }\n                            }\n                        }));\n                        let u = document.createElement(\"div\");\n                        u.className = \"controls\", u.style.display = this._showOptionButtons ? \"block\" : \"none\", u.appendChild(this.caseSensitive.domNode), u.appendChild(this.wholeWords.domNode), u.appendChild(this.regex.domNode), this.domNode.appendChild(u), e && e.appendChild(this.domNode), this._register(te.nm(this.inputBox.inputElement, \"compositionstart\", (e => {\n                            this.imeSessionInProgress = !0\n                        }))), this._register(te.nm(this.inputBox.inputElement, \"compositionend\", (e => {\n                            this.imeSessionInProgress = !1, this._onInput.fire()\n                        }))), this.onkeydown(this.inputBox.inputElement, (e => this._onKeyDown.fire(e))), this.onkeyup(this.inputBox.inputElement, (e => this._onKeyUp.fire(e))), this.oninput(this.inputBox.inputElement, (e => this._onInput.fire())), this.onmousedown(this.inputBox.inputElement, (e => this._onMouseDown.fire(e)))\n                    }\n                    enable() {\n                        this.domNode.classList.remove(\"disabled\"), this.inputBox.enable(), this.regex.enable(), this.wholeWords.enable(), this.caseSensitive.enable()\n                    }\n                    disable() {\n                        this.domNode.classList.add(\"disabled\"), this.inputBox.disable(), this.regex.disable(), this.wholeWords.disable(), this.caseSensitive.disable()\n                    }\n                    setFocusInputOnOptionClick(e) {\n                        this.fixFocusOnOptionClickEnabled = e\n                    }\n                    setEnabled(e) {\n                        e ? this.enable() : this.disable()\n                    }\n                    getValue() {\n                        return this.inputBox.value\n                    }\n                    setValue(e) {\n                        this.inputBox.value !== e && (this.inputBox.value = e)\n                    }\n                    style(e) {\n                        this.inputActiveOptionBorder = e.inputActiveOptionBorder, this.inputActiveOptionForeground = e.inputActiveOptionForeground, this.inputActiveOptionBackground = e.inputActiveOptionBackground, this.inputBackground = e.inputBackground, this.inputForeground = e.inputForeground, this.inputBorder = e.inputBorder, this.inputValidationInfoBackground = e.inputValidationInfoBackground, this.inputValidationInfoForeground = e.inputValidationInfoForeground, this.inputValidationInfoBorder = e.inputValidationInfoBorder, this.inputValidationWarningBackground = e.inputValidationWarningBackground, this.inputValidationWarningForeground = e.inputValidationWarningForeground, this.inputValidationWarningBorder = e.inputValidationWarningBorder, this.inputValidationErrorBackground = e.inputValidationErrorBackground, this.inputValidationErrorForeground = e.inputValidationErrorForeground, this.inputValidationErrorBorder = e.inputValidationErrorBorder, this.applyStyles()\n                    }\n                    applyStyles() {\n                        if (this.domNode) {\n                            const e = {\n                                inputActiveOptionBorder: this.inputActiveOptionBorder,\n                                inputActiveOptionForeground: this.inputActiveOptionForeground,\n                                inputActiveOptionBackground: this.inputActiveOptionBackground\n                            };\n                            this.regex.style(e), this.wholeWords.style(e), this.caseSensitive.style(e);\n                            const t = {\n                                inputBackground: this.inputBackground,\n                                inputForeground: this.inputForeground,\n                                inputBorder: this.inputBorder,\n                                inputValidationInfoBackground: this.inputValidationInfoBackground,\n                                inputValidationInfoForeground: this.inputValidationInfoForeground,\n                                inputValidationInfoBorder: this.inputValidationInfoBorder,\n                                inputValidationWarningBackground: this.inputValidationWarningBackground,\n                                inputValidationWarningForeground: this.inputValidationWarningForeground,\n                                inputValidationWarningBorder: this.inputValidationWarningBorder,\n                                inputValidationErrorBackground: this.inputValidationErrorBackground,\n                                inputValidationErrorForeground: this.inputValidationErrorForeground,\n                                inputValidationErrorBorder: this.inputValidationErrorBorder\n                            };\n                            this.inputBox.style(t)\n                        }\n                    }\n                    select() {\n                        this.inputBox.select()\n                    }\n                    focus() {\n                        this.inputBox.focus()\n                    }\n                    getCaseSensitive() {\n                        return this.caseSensitive.checked\n                    }\n                    setCaseSensitive(e) {\n                        this.caseSensitive.checked = e\n                    }\n                    getWholeWords() {\n                        return this.wholeWords.checked\n                    }\n                    setWholeWords(e) {\n                        this.wholeWords.checked = e\n                    }\n                    getRegex() {\n                        return this.regex.checked\n                    }\n                    setRegex(e) {\n                        this.regex.checked = e, this.validate()\n                    }\n                    focusOnCaseSensitive() {\n                        this.caseSensitive.focus()\n                    }\n                    highlightFindOptions() {\n                        this.domNode.classList.remove(\"highlight-\" + this._lastHighlightFindOptions), this._lastHighlightFindOptions = 1 - this._lastHighlightFindOptions, this.domNode.classList.add(\"highlight-\" + this._lastHighlightFindOptions)\n                    }\n                    validate() {\n                        this.inputBox.validate()\n                    }\n                    clearMessage() {\n                        this.inputBox.hideMessage()\n                    }\n                }\n                const Lg = new Language(modifyState.language);\n                const ke = le.N(\"defaultLabel\", \"input\"),\n                    Le = le.N(\"label.preserveCaseCheckbox\", Lg.preserveCase());\n                class Ne extends ae {\n                    constructor(e) {\n                        super({\n                            icon: ne.lA.preserveCase,\n                            title: Le + e.appendTitle,\n                            isChecked: e.isChecked,\n                            inputActiveOptionBorder: e.inputActiveOptionBorder,\n                            inputActiveOptionForeground: e.inputActiveOptionForeground,\n                            inputActiveOptionBackground: e.inputActiveOptionBackground\n                        })\n                    }\n                }\n                class De extends ie.$ {\n                    constructor(e, t, i, n) {\n                        super(), this._showOptionButtons = i, this.fixFocusOnOptionClickEnabled = !0, this.cachedOptionsWidth = 0, this._onDidOptionChange = this._register(new se.Q5), this.onDidOptionChange = this._onDidOptionChange.event, this._onKeyDown = this._register(new se.Q5), this.onKeyDown = this._onKeyDown.event, this._onMouseDown = this._register(new se.Q5), this._onInput = this._register(new se.Q5), this._onKeyUp = this._register(new se.Q5), this._onPreserveCaseKeyDown = this._register(new se.Q5), this.onPreserveCaseKeyDown = this._onPreserveCaseKeyDown.event, this.contextViewProvider = t, this.placeholder = n.placeholder || \"\", this.validation = n.validation, this.label = n.label || ke, this.inputActiveOptionBorder = n.inputActiveOptionBorder, this.inputActiveOptionForeground = n.inputActiveOptionForeground, this.inputActiveOptionBackground = n.inputActiveOptionBackground, this.inputBackground = n.inputBackground, this.inputForeground = n.inputForeground, this.inputBorder = n.inputBorder, this.inputValidationInfoBorder = n.inputValidationInfoBorder, this.inputValidationInfoBackground = n.inputValidationInfoBackground, this.inputValidationInfoForeground = n.inputValidationInfoForeground, this.inputValidationWarningBorder = n.inputValidationWarningBorder, this.inputValidationWarningBackground = n.inputValidationWarningBackground, this.inputValidationWarningForeground = n.inputValidationWarningForeground, this.inputValidationErrorBorder = n.inputValidationErrorBorder, this.inputValidationErrorBackground = n.inputValidationErrorBackground, this.inputValidationErrorForeground = n.inputValidationErrorForeground;\n                        const o = n.appendPreserveCaseLabel || \"\",\n                            s = n.history || [],\n                            r = !!n.flexibleHeight,\n                            a = !!n.flexibleWidth,\n                            l = n.flexibleMaxHeight;\n                        this.domNode = document.createElement(\"div\"), this.domNode.classList.add(\"monaco-findInput\"), this.inputBox = this._register(new Ce.p(this.domNode, this.contextViewProvider, {\n                            ariaLabel: this.label || \"\",\n                            placeholder: this.placeholder || \"\",\n                            validationOptions: {\n                                validation: this.validation\n                            },\n                            inputBackground: this.inputBackground,\n                            inputForeground: this.inputForeground,\n                            inputBorder: this.inputBorder,\n                            inputValidationInfoBackground: this.inputValidationInfoBackground,\n                            inputValidationInfoForeground: this.inputValidationInfoForeground,\n                            inputValidationInfoBorder: this.inputValidationInfoBorder,\n                            inputValidationWarningBackground: this.inputValidationWarningBackground,\n                            inputValidationWarningForeground: this.inputValidationWarningForeground,\n                            inputValidationWarningBorder: this.inputValidationWarningBorder,\n                            inputValidationErrorBackground: this.inputValidationErrorBackground,\n                            inputValidationErrorForeground: this.inputValidationErrorForeground,\n                            inputValidationErrorBorder: this.inputValidationErrorBorder,\n                            history: s,\n                            showHistoryHint: n.showHistoryHint,\n                            flexibleHeight: r,\n                            flexibleWidth: a,\n                            flexibleMaxHeight: l\n                        })), this.preserveCase = this._register(new Ne({\n                            appendTitle: o,\n                            isChecked: !1,\n                            inputActiveOptionBorder: this.inputActiveOptionBorder,\n                            inputActiveOptionForeground: this.inputActiveOptionForeground,\n                            inputActiveOptionBackground: this.inputActiveOptionBackground\n                        })), this._register(this.preserveCase.onChange((e => {\n                            this._onDidOptionChange.fire(e), !e && this.fixFocusOnOptionClickEnabled && this.inputBox.focus(), this.validate()\n                        }))), this._register(this.preserveCase.onKeyDown((e => {\n                            this._onPreserveCaseKeyDown.fire(e)\n                        }))), this._showOptionButtons ? this.cachedOptionsWidth = this.preserveCase.width() : this.cachedOptionsWidth = 0;\n                        let c = [this.preserveCase.domNode];\n                        this.onkeydown(this.domNode, (e => {\n                            if (e.equals(15) || e.equals(17) || e.equals(9)) {\n                                let t = c.indexOf(document.activeElement);\n                                if (t >= 0) {\n                                    let i = -1;\n                                    e.equals(17) ? i = (t + 1) % c.length : e.equals(15) && (i = 0 === t ? c.length - 1 : t - 1), e.equals(9) ? (c[t].blur(), this.inputBox.focus()) : i >= 0 && c[i].focus(), te.zB.stop(e, !0)\n                                }\n                            }\n                        }));\n                        let d = document.createElement(\"div\");\n                        d.className = \"controls\", d.style.display = this._showOptionButtons ? \"block\" : \"none\", d.appendChild(this.preserveCase.domNode), this.domNode.appendChild(d), e && e.appendChild(this.domNode), this.onkeydown(this.inputBox.inputElement, (e => this._onKeyDown.fire(e))), this.onkeyup(this.inputBox.inputElement, (e => this._onKeyUp.fire(e))), this.oninput(this.inputBox.inputElement, (e => this._onInput.fire())), this.onmousedown(this.inputBox.inputElement, (e => this._onMouseDown.fire(e)))\n                    }\n                    enable() {\n                        this.domNode.classList.remove(\"disabled\"), this.inputBox.enable(), this.preserveCase.enable()\n                    }\n                    disable() {\n                        this.domNode.classList.add(\"disabled\"), this.inputBox.disable(), this.preserveCase.disable()\n                    }\n                    setEnabled(e) {\n                        e ? this.enable() : this.disable()\n                    }\n                    style(e) {\n                        this.inputActiveOptionBorder = e.inputActiveOptionBorder, this.inputActiveOptionForeground = e.inputActiveOptionForeground, this.inputActiveOptionBackground = e.inputActiveOptionBackground, this.inputBackground = e.inputBackground, this.inputForeground = e.inputForeground, this.inputBorder = e.inputBorder, this.inputValidationInfoBackground = e.inputValidationInfoBackground, this.inputValidationInfoForeground = e.inputValidationInfoForeground, this.inputValidationInfoBorder = e.inputValidationInfoBorder, this.inputValidationWarningBackground = e.inputValidationWarningBackground, this.inputValidationWarningForeground = e.inputValidationWarningForeground, this.inputValidationWarningBorder = e.inputValidationWarningBorder, this.inputValidationErrorBackground = e.inputValidationErrorBackground, this.inputValidationErrorForeground = e.inputValidationErrorForeground, this.inputValidationErrorBorder = e.inputValidationErrorBorder, this.applyStyles()\n                    }\n                    applyStyles() {\n                        if (this.domNode) {\n                            const e = {\n                                inputActiveOptionBorder: this.inputActiveOptionBorder,\n                                inputActiveOptionForeground: this.inputActiveOptionForeground,\n                                inputActiveOptionBackground: this.inputActiveOptionBackground\n                            };\n                            this.preserveCase.style(e);\n                            const t = {\n                                inputBackground: this.inputBackground,\n                                inputForeground: this.inputForeground,\n                                inputBorder: this.inputBorder,\n                                inputValidationInfoBackground: this.inputValidationInfoBackground,\n                                inputValidationInfoForeground: this.inputValidationInfoForeground,\n                                inputValidationInfoBorder: this.inputValidationInfoBorder,\n                                inputValidationWarningBackground: this.inputValidationWarningBackground,\n                                inputValidationWarningForeground: this.inputValidationWarningForeground,\n                                inputValidationWarningBorder: this.inputValidationWarningBorder,\n                                inputValidationErrorBackground: this.inputValidationErrorBackground,\n                                inputValidationErrorForeground: this.inputValidationErrorForeground,\n                                inputValidationErrorBorder: this.inputValidationErrorBorder\n                            };\n                            this.inputBox.style(t)\n                        }\n                    }\n                    select() {\n                        this.inputBox.select()\n                    }\n                    focus() {\n                        this.inputBox.focus()\n                    }\n                    getPreserveCase() {\n                        return this.preserveCase.checked\n                    }\n                    setPreserveCase(e) {\n                        this.preserveCase.checked = e\n                    }\n                    focusOnPreserve() {\n                        this.preserveCase.focus()\n                    }\n                    validate() {\n                        this.inputBox && this.inputBox.validate()\n                    }\n                    set width(e) {\n                        this.inputBox.paddingRight = this.cachedOptionsWidth, this.inputBox.width = e, this.domNode.style.width = e + \"px\"\n                    }\n                    dispose() {\n                        super.dispose()\n                    }\n                }\n                var Ie = i(49989),\n                    Ee = i(79599),\n                    Te = function(e, t, i, n) {\n                        var o, s = arguments.length,\n                            r = s < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n                        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) r = Reflect.decorate(e, t, i, n);\n                        else\n                            for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (r = (s < 3 ? o(r) : s > 3 ? o(t, i, r) : o(t, i)) || r);\n                        return s > 3 && r && Object.defineProperty(t, i, r), r\n                    },\n                    Me = function(e, t) {\n                        return function(i, n) {\n                            t(i, n, e)\n                        }\n                    };\n                const Ae = \"historyNavigationWidget\",\n                    Oe = \"historyNavigationForwardsEnabled\",\n                    Pe = \"historyNavigationBackwardsEnabled\";\n\n                function Re(e, t) {\n                    return e.getContext(document.activeElement).getValue(t)\n                }\n\n                function Fe(e, t) {\n                    const i = function(e, t) {\n                        return e.createScoped(t.target)\n                    }(e, t);\n                    ! function(e, t, i) {\n                        new D.uy(i, t).bindTo(e)\n                    }(i, t, Ae);\n                    return {\n                        scopedContextKeyService: i,\n                        historyNavigationForwardsEnablement: new D.uy(Oe, !0).bindTo(i),\n                        historyNavigationBackwardsEnablement: new D.uy(Pe, !0).bindTo(i)\n                    }\n                }\n                let Be = class extends Se {\n                    constructor(e, t, i, n, o = !1) {\n                        super(e, t, o, i), this._register(Fe(n, {\n                            target: this.inputBox.element,\n                            historyNavigator: this.inputBox\n                        }).scopedContextKeyService)\n                    }\n                };\n                Be = Te([Me(3, D.i6)], Be);\n                let Ve = class extends De {\n                    constructor(e, t, i, n, o = !1) {\n                        super(e, t, o, i), this._register(Fe(n, {\n                            target: this.inputBox.element,\n                            historyNavigator: this.inputBox\n                        }).scopedContextKeyService)\n                    }\n                };\n\n                function We(e) {\n                    var t, i;\n                    return \"Up\" === (null === (t = e.lookupKeybinding(\"history.showPrevious\")) || void 0 === t ? void 0 : t.getElectronAccelerator()) && \"Down\" === (null === (i = e.lookupKeybinding(\"history.showNext\")) || void 0 === i ? void 0 : i.getElectronAccelerator())\n                }\n                Ve = Te([Me(3, D.i6)], Ve), Ie.W.registerCommandAndKeybindingRule({\n                    id: \"history.showPrevious\",\n                    weight: 200,\n                    when: D.Ao.and(D.Ao.has(Ae), D.Ao.equals(Pe, !0), Ee._y.Visible.isEqualTo(!1)),\n                    primary: 16,\n                    secondary: [528],\n                    handler: e => {\n                        const t = Re(e.get(D.i6), Ae);\n                        if (t) {\n                            t.historyNavigator.showPreviousValue()\n                        }\n                    }\n                }), Ie.W.registerCommandAndKeybindingRule({\n                    id: \"history.showNext\",\n                    weight: 200,\n                    when: D.Ao.and(D.Ao.has(Ae), D.Ao.equals(Oe, !0), Ee._y.Visible.isEqualTo(!1)),\n                    primary: 18,\n                    secondary: [530],\n                    handler: e => {\n                        const t = Re(e.get(D.i6), Ae);\n                        if (t) {\n                            t.historyNavigator.showNextValue()\n                        }\n                    }\n                });\n                var He = i(59554),\n                    ze = function(e, t, i, n) {\n                        return new(i || (i = Promise))((function(o, s) {\n                            function r(e) {\n                                try {\n                                    l(n.next(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function a(e) {\n                                try {\n                                    l(n.throw(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function l(e) {\n                                var t;\n                                e.done ? o(e.value) : (t = e.value, t instanceof i ? t : new i((function(e) {\n                                    e(t)\n                                }))).then(r, a)\n                            }\n                            l((n = n.apply(e, t || [])).next())\n                        }))\n                    };\n                const je = (0, He.q5)(\"find-selection\", ne.lA.selection, le.N(\"findSelectionIcon\", \"Icon for 'Find in Selection' in the editor find widget.\")),\n                    Ue = (0, He.q5)(\"find-collapsed\", ne.lA.chevronRight, le.N(\"findCollapsedIcon\", \"Icon to indicate that the editor find widget is collapsed.\")),\n                    $e = (0, He.q5)(\"find-expanded\", ne.lA.chevronDown, le.N(\"findExpandedIcon\", \"Icon to indicate that the editor find widget is expanded.\")),\n                    Ke = (0, He.q5)(\"find-replace\", ne.lA.replace, le.N(\"findReplaceIcon\", \"Icon for 'Replace' in the editor find widget.\")),\n                    qe = (0, He.q5)(\"find-replace-all\", ne.lA.replaceAll, le.N(\"findReplaceAllIcon\", \"Icon for 'Replace All' in the editor find widget.\")),\n                    Ze = (0, He.q5)(\"find-previous-match\", ne.lA.arrowUp, le.N(\"findPreviousMatchIcon\", \"Icon for 'Find Previous' in the editor find widget.\")),\n                    Ge = (0, He.q5)(\"find-next-match\", ne.lA.arrowDown, le.N(\"findNextMatchIcon\", \"Icon for 'Find Next' in the editor find widget.\")),\n                    Ye = le.N(\"label.find\", Lg.find()),\n                    Qe = le.N(\"placeholder.find\", Lg.find()),\n                    Xe = le.N(\"label.previousMatchButton\", Lg.previousMatch()),\n                    Je = le.N(\"label.nextMatchButton\", Lg.nextMatch()),\n                    et = le.N(\"label.toggleSelectionFind\", Lg.findinSelection()),\n                    tt = le.N(\"label.closeButton\", Lg.close()),\n                    it = le.N(\"label.replace\", Lg.replace()),\n                    nt = le.N(\"placeholder.replace\", Lg.replace()),\n                    ot = le.N(\"label.replaceButton\", Lg.replace()),\n                    st = le.N(\"label.replaceAllButton\", Lg.replaceAll()),\n                    rt = le.N(\"label.toggleReplaceButton\", Lg.toggleReplace()),\n                    at = le.N(\"title.matchesCountLimit\", Lg.resultHighlighted(), J),\n                    lt = le.N(\"label.matchesLocation\", Lg.numberOf()),\n                    ct = le.N(\"label.noResults\", Lg.noResults()),\n                    dt = 419;\n                let ht = 69;\n                const ut = \"ctrlEnterReplaceAll.windows.donotask\",\n                    gt = ye.dz ? 256 : 2048;\n                class pt {\n                    constructor(e) {\n                        this.afterLineNumber = e, this.heightInPx = 33, this.suppressMouseDown = !1, this.domNode = document.createElement(\"div\"), this.domNode.className = \"dock-find-viewzone\"\n                    }\n                }\n\n                function ft(e, t, i) {\n                    const n = !!t.match(/\\n/);\n                    i && n && i.selectionStart > 0 && e.stopPropagation()\n                }\n\n                function mt(e, t, i) {\n                    const n = !!t.match(/\\n/);\n                    i && n && i.selectionEnd < i.value.length && e.stopPropagation()\n                }\n                class vt extends ie.$ {\n                    constructor(e, t, i, s, r, a, l, c, d) {\n                        super(), this._cachedHeight = null, this._revealTimeouts = [], this._codeEditor = e, this._controller = t, this._state = i, this._contextViewProvider = s, this._keybindingService = r, this._contextKeyService = a, this._storageService = c, this._notificationService = d, this._ctrlEnterReplaceAllWarningPrompted = !!c.getBoolean(ut, 0), this._isVisible = !1, this._isReplaceVisible = !1, this._ignoreChangeEvent = !1, this._updateHistoryDelayer = new n.vp(500), this._register((0, o.OF)((() => this._updateHistoryDelayer.cancel()))), this._register(this._state.onFindReplaceStateChange((e => this._onStateChanged(e)))), this._buildDomNode(), this._updateButtons(), this._tryUpdateWidgetWidth(), this._findInput.inputBox.layout(), this._register(this._codeEditor.onDidChangeConfiguration((e => {\n                            if (e.hasChanged(80) && (this._codeEditor.getOption(80) && this._state.change({\n                                    isReplaceRevealed: !1\n                                }, !1), this._updateButtons()), e.hasChanged(129) && this._tryUpdateWidgetWidth(), e.hasChanged(2) && this.updateAccessibilitySupport(), e.hasChanged(35)) {\n                                const e = this._codeEditor.getOption(35).addExtraSpaceOnTop;\n                                e && !this._viewZone && (this._viewZone = new pt(0), this._showViewZone()), !e && this._viewZone && this._removeViewZone()\n                            }\n                        }))), this.updateAccessibilitySupport(), this._register(this._codeEditor.onDidChangeCursorSelection((() => {\n                            this._isVisible && this._updateToggleSelectionFindButton()\n                        }))), this._register(this._codeEditor.onDidFocusEditorWidget((() => ze(this, void 0, void 0, (function*() {\n                            if (this._isVisible) {\n                                let e = yield this._controller.getGlobalBufferTerm();\n                                e && e !== this._state.searchString && (this._state.change({\n                                    searchString: e\n                                }, !1), this._findInput.select())\n                            }\n                        }))))), this._findInputFocused = E.bindTo(a), this._findFocusTracker = this._register(te.go(this._findInput.inputBox.inputElement)), this._register(this._findFocusTracker.onDidFocus((() => {\n                            this._findInputFocused.set(!0), this._updateSearchScope()\n                        }))), this._register(this._findFocusTracker.onDidBlur((() => {\n                            this._findInputFocused.set(!1)\n                        }))), this._replaceInputFocused = T.bindTo(a), this._replaceFocusTracker = this._register(te.go(this._replaceInput.inputBox.inputElement)), this._register(this._replaceFocusTracker.onDidFocus((() => {\n                            this._replaceInputFocused.set(!0), this._updateSearchScope()\n                        }))), this._register(this._replaceFocusTracker.onDidBlur((() => {\n                            this._replaceInputFocused.set(!1)\n                        }))), this._codeEditor.addOverlayWidget(this), this._codeEditor.getOption(35).addExtraSpaceOnTop && (this._viewZone = new pt(0)), this._applyTheme(l.getColorTheme()), this._register(l.onDidColorThemeChange(this._applyTheme.bind(this))), this._register(this._codeEditor.onDidChangeModel((() => {\n                            this._isVisible && (this._viewZoneId = void 0)\n                        }))), this._register(this._codeEditor.onDidScrollChange((e => {\n                            e.scrollTopChanged ? this._layoutViewZone() : setTimeout((() => {\n                                this._layoutViewZone()\n                            }), 0)\n                        })))\n                    }\n                    getId() {\n                        return vt.ID\n                    }\n                    getDomNode() {\n                        return this._domNode\n                    }\n                    getPosition() {\n                        return this._isVisible ? {\n                            preference: 0\n                        } : null\n                    }\n                    _onStateChanged(e) {\n                        if (e.searchString) {\n                            try {\n                                this._ignoreChangeEvent = !0, this._findInput.setValue(this._state.searchString)\n                            } finally {\n                                this._ignoreChangeEvent = !1\n                            }\n                            this._updateButtons()\n                        }\n                        if (e.replaceString && (this._replaceInput.inputBox.value = this._state.replaceString), e.isRevealed && (this._state.isRevealed ? this._reveal() : this._hide(!0)), e.isReplaceRevealed && (this._state.isReplaceRevealed ? this._codeEditor.getOption(80) || this._isReplaceVisible || (this._isReplaceVisible = !0, this._replaceInput.width = te.w(this._findInput.domNode), this._updateButtons(), this._replaceInput.inputBox.layout()) : this._isReplaceVisible && (this._isReplaceVisible = !1, this._updateButtons())), (e.isRevealed || e.isReplaceRevealed) && (this._state.isRevealed || this._state.isReplaceRevealed) && this._tryUpdateHeight() && this._showViewZone(), e.isRegex && this._findInput.setRegex(this._state.isRegex), e.wholeWord && this._findInput.setWholeWords(this._state.wholeWord), e.matchCase && this._findInput.setCaseSensitive(this._state.matchCase), e.preserveCase && this._replaceInput.setPreserveCase(this._state.preserveCase), e.searchScope && (this._state.searchScope ? this._toggleSelectionFind.checked = !0 : this._toggleSelectionFind.checked = !1, this._updateToggleSelectionFindButton()), e.searchString || e.matchesCount || e.matchesPosition) {\n                            let e = this._state.searchString.length > 0 && 0 === this._state.matchesCount;\n                            this._domNode.classList.toggle(\"no-results\", e), this._updateMatchesCount(), this._updateButtons()\n                        }(e.searchString || e.currentMatch) && this._layoutViewZone(), e.updateHistory && this._delayedUpdateHistory(), e.loop && this._updateButtons()\n                    }\n                    _delayedUpdateHistory() {\n                        this._updateHistoryDelayer.trigger(this._updateHistory.bind(this)).then(void 0, we.dL)\n                    }\n                    _updateHistory() {\n                        this._state.searchString && this._findInput.inputBox.addToHistory(), this._state.replaceString && this._replaceInput.inputBox.addToHistory()\n                    }\n                    _updateMatchesCount() {\n                        let e;\n                        if (this._matchesCount.style.minWidth = ht + \"px\", this._state.matchesCount >= J ? this._matchesCount.title = at : this._matchesCount.title = \"\", this._matchesCount.firstChild && this._matchesCount.removeChild(this._matchesCount.firstChild), this._state.matchesCount > 0) {\n                            let t = String(this._state.matchesCount);\n                            this._state.matchesCount >= J && (t += \"+\");\n                            let i = String(this._state.matchesPosition);\n                            \"0\" === i && (i = \"?\"), e = s.WU(lt, i, t)\n                        } else e = ct;\n                        this._matchesCount.appendChild(document.createTextNode(e)), (0, _e.Z9)(this._getAriaLabel(e, this._state.currentMatch, this._state.searchString)), ht = Math.max(ht, this._matchesCount.clientWidth)\n                    }\n                    _getAriaLabel(e, t, i) {\n                        if (e === ct) return \"\" === i ? le.N(\"ariaSearchNoResultEmpty\", \"{0} found\", e) : le.N(\"ariaSearchNoResult\", \"{0} found for '{1}'\", e, i);\n                        if (t) {\n                            const n = le.N(\"ariaSearchNoResultWithLineNum\", \"{0} found for '{1}', at {2}\", e, i, t.startLineNumber + \":\" + t.startColumn),\n                                o = this._codeEditor.getModel();\n                            if (o && t.startLineNumber <= o.getLineCount() && t.startLineNumber >= 1) {\n                                return `${o.getLineContent(t.startLineNumber)}, ${n}`\n                            }\n                            return n\n                        }\n                        return le.N(\"ariaSearchNoResultWithLineNumNoCurrentMatch\", \"{0} found for '{1}'\", e, i)\n                    }\n                    _updateToggleSelectionFindButton() {\n                        let e = this._codeEditor.getSelection(),\n                            t = !!e && (e.startLineNumber !== e.endLineNumber || e.startColumn !== e.endColumn),\n                            i = this._toggleSelectionFind.checked;\n                        this._isVisible && (i || t) ? this._toggleSelectionFind.enable() : this._toggleSelectionFind.disable()\n                    }\n                    _updateButtons() {\n                        this._findInput.setEnabled(this._isVisible), this._replaceInput.setEnabled(this._isVisible && this._isReplaceVisible), this._updateToggleSelectionFindButton(), this._closeBtn.setEnabled(this._isVisible);\n                        let e = this._state.searchString.length > 0,\n                            t = !!this._state.matchesCount;\n                        this._prevBtn.setEnabled(this._isVisible && e && t && this._state.canNavigateBack()), this._nextBtn.setEnabled(this._isVisible && e && t && this._state.canNavigateForward()), this._replaceBtn.setEnabled(this._isVisible && this._isReplaceVisible && e), this._replaceAllBtn.setEnabled(this._isVisible && this._isReplaceVisible && e), this._domNode.classList.toggle(\"replaceToggled\", this._isReplaceVisible), this._toggleReplaceBtn.setExpanded(this._isReplaceVisible);\n                        let i = !this._codeEditor.getOption(80);\n                        this._toggleReplaceBtn.setEnabled(this._isVisible && i)\n                    }\n                    _reveal() {\n                        if (this._revealTimeouts.forEach((e => {\n                                clearTimeout(e)\n                            })), this._revealTimeouts = [], !this._isVisible) {\n                            this._isVisible = !0;\n                            const e = this._codeEditor.getSelection();\n                            switch (this._codeEditor.getOption(35).autoFindInSelection) {\n                                case \"always\":\n                                    this._toggleSelectionFind.checked = !0;\n                                    break;\n                                case \"never\":\n                                    this._toggleSelectionFind.checked = !1;\n                                    break;\n                                case \"multiline\":\n                                    const t = !!e && e.startLineNumber !== e.endLineNumber;\n                                    this._toggleSelectionFind.checked = t\n                            }\n                            this._tryUpdateWidgetWidth(), this._updateButtons(), this._revealTimeouts.push(setTimeout((() => {\n                                this._domNode.classList.add(\"visible\"), this._domNode.setAttribute(\"aria-hidden\", \"false\")\n                            }), 0)), this._revealTimeouts.push(setTimeout((() => {\n                                this._findInput.validate()\n                            }), 200)), this._codeEditor.layoutOverlayWidget(this);\n                            let t = !0;\n                            if (this._codeEditor.getOption(35).seedSearchStringFromSelection && e) {\n                                const i = this._codeEditor.getDomNode();\n                                if (i) {\n                                    const n = te.i(i),\n                                        o = this._codeEditor.getScrolledVisiblePosition(e.getStartPosition()),\n                                        s = n.left + (o ? o.left : 0),\n                                        r = o ? o.top : 0;\n                                    if (this._viewZone && r < this._viewZone.heightInPx) {\n                                        e.endLineNumber > e.startLineNumber && (t = !1);\n                                        const i = te.xQ(this._domNode).left;\n                                        s > i && (t = !1);\n                                        const o = this._codeEditor.getScrolledVisiblePosition(e.getEndPosition());\n                                        n.left + (o ? o.left : 0) > i && (t = !1)\n                                    }\n                                }\n                            }\n                            this._showViewZone(t)\n                        }\n                    }\n                    _hide(e) {\n                        this._revealTimeouts.forEach((e => {\n                            clearTimeout(e)\n                        })), this._revealTimeouts = [], this._isVisible && (this._isVisible = !1, this._updateButtons(), this._domNode.classList.remove(\"visible\"), this._domNode.setAttribute(\"aria-hidden\", \"true\"), this._findInput.clearMessage(), e && this._codeEditor.focus(), this._codeEditor.layoutOverlayWidget(this), this._removeViewZone())\n                    }\n                    _layoutViewZone(e) {\n                        if (!this._codeEditor.getOption(35).addExtraSpaceOnTop) return void this._removeViewZone();\n                        if (!this._isVisible) return;\n                        const t = this._viewZone;\n                        void 0 === this._viewZoneId && t && this._codeEditor.changeViewZones((i => {\n                            t.heightInPx = this._getHeight(), this._viewZoneId = i.addZone(t), this._codeEditor.setScrollTop(e || this._codeEditor.getScrollTop() + t.heightInPx)\n                        }))\n                    }\n                    _showViewZone(e = !0) {\n                        if (!this._isVisible) return;\n                        if (!this._codeEditor.getOption(35).addExtraSpaceOnTop) return;\n                        void 0 === this._viewZone && (this._viewZone = new pt(0));\n                        const t = this._viewZone;\n                        this._codeEditor.changeViewZones((i => {\n                            if (void 0 !== this._viewZoneId) {\n                                const n = this._getHeight();\n                                if (n === t.heightInPx) return;\n                                let o = n - t.heightInPx;\n                                return t.heightInPx = n, i.layoutZone(this._viewZoneId), void(e && this._codeEditor.setScrollTop(this._codeEditor.getScrollTop() + o))\n                            } {\n                                let n = this._getHeight();\n                                if (n -= this._codeEditor.getOption(74).top, n <= 0) return;\n                                t.heightInPx = n, this._viewZoneId = i.addZone(t), e && this._codeEditor.setScrollTop(this._codeEditor.getScrollTop() + n)\n                            }\n                        }))\n                    }\n                    _removeViewZone() {\n                        this._codeEditor.changeViewZones((e => {\n                            void 0 !== this._viewZoneId && (e.removeZone(this._viewZoneId), this._viewZoneId = void 0, this._viewZone && (this._codeEditor.setScrollTop(this._codeEditor.getScrollTop() - this._viewZone.heightInPx), this._viewZone = void 0))\n                        }))\n                    }\n                    _applyTheme(e) {\n                        let t = {\n                            inputActiveOptionBorder: e.getColor(m.PR),\n                            inputActiveOptionBackground: e.getColor(m.XE),\n                            inputActiveOptionForeground: e.getColor(m.Pv),\n                            inputBackground: e.getColor(m.sE),\n                            inputForeground: e.getColor(m.zJ),\n                            inputBorder: e.getColor(m.dt),\n                            inputValidationInfoBackground: e.getColor(m._l),\n                            inputValidationInfoForeground: e.getColor(m.YI),\n                            inputValidationInfoBorder: e.getColor(m.EP),\n                            inputValidationWarningBackground: e.getColor(m.RV),\n                            inputValidationWarningForeground: e.getColor(m.SU),\n                            inputValidationWarningBorder: e.getColor(m.C3),\n                            inputValidationErrorBackground: e.getColor(m.p),\n                            inputValidationErrorForeground: e.getColor(m._t),\n                            inputValidationErrorBorder: e.getColor(m.OZ)\n                        };\n                        this._findInput.style(t), this._replaceInput.style(t), this._toggleSelectionFind.style(t)\n                    }\n                    _tryUpdateWidgetWidth() {\n                        if (!this._isVisible) return;\n                        if (!te.Uw(this._domNode)) return;\n                        const e = this._codeEditor.getLayoutInfo();\n                        if (e.contentWidth <= 0) return void this._domNode.classList.add(\"hiddenEditor\");\n                        this._domNode.classList.contains(\"hiddenEditor\") && this._domNode.classList.remove(\"hiddenEditor\");\n                        const t = e.width,\n                            i = e.minimap.minimapWidth;\n                        let n = !1,\n                            o = !1,\n                            s = !1;\n                        if (this._resized) {\n                            if (te.w(this._domNode) > dt) return this._domNode.style.maxWidth = t - 28 - i - 15 + \"px\", void(this._replaceInput.width = te.w(this._findInput.domNode))\n                        }\n                        if (447 + i >= t && (o = !0), 447 + i - ht >= t && (s = !0), 447 + i - ht >= t + 50 && (n = !0), this._domNode.classList.toggle(\"collapsed-find-widget\", n), this._domNode.classList.toggle(\"narrow-find-widget\", s), this._domNode.classList.toggle(\"reduced-find-widget\", o), s || n || (this._domNode.style.maxWidth = t - 28 - i - 15 + \"px\"), this._resized) {\n                            this._findInput.inputBox.layout();\n                            let e = this._findInput.inputBox.element.clientWidth;\n                            e > 0 && (this._replaceInput.width = e)\n                        } else this._isReplaceVisible && (this._replaceInput.width = te.w(this._findInput.domNode))\n                    }\n                    _getHeight() {\n                        let e = 0;\n                        return e += 4, e += this._findInput.inputBox.height + 2, this._isReplaceVisible && (e += 4, e += this._replaceInput.inputBox.height + 2), e += 4, e\n                    }\n                    _tryUpdateHeight() {\n                        const e = this._getHeight();\n                        return (null === this._cachedHeight || this._cachedHeight !== e) && (this._cachedHeight = e, this._domNode.style.height = `${e}px`, !0)\n                    }\n                    focusFindInput() {\n                        this._findInput.select(), this._findInput.focus()\n                    }\n                    focusReplaceInput() {\n                        this._replaceInput.select(), this._replaceInput.focus()\n                    }\n                    highlightFindOptions() {\n                        this._findInput.highlightFindOptions()\n                    }\n                    _updateSearchScope() {\n                        if (this._codeEditor.hasModel() && this._toggleSelectionFind.checked) {\n                            let e = this._codeEditor.getSelections();\n                            e.map((e => {\n                                1 === e.endColumn && e.endLineNumber > e.startLineNumber && (e = e.setEndPosition(e.endLineNumber - 1, this._codeEditor.getModel().getLineMaxColumn(e.endLineNumber - 1)));\n                                const t = this._state.currentMatch;\n                                return e.startLineNumber === e.endLineNumber || h.e.equalsRange(e, t) ? null : e\n                            })).filter((e => !!e)), e.length && this._state.change({\n                                searchScope: e\n                            }, !0)\n                        }\n                    }\n                    _onFindInputMouseDown(e) {\n                        e.middleButton && e.stopPropagation()\n                    }\n                    _onFindInputKeyDown(e) {\n                        return e.equals(3 | gt) ? (this._keybindingService.dispatchEvent(e, e.target) || this._findInput.inputBox.insertAtCursor(\"\\n\"), void e.preventDefault()) : e.equals(2) ? (this._isReplaceVisible ? this._replaceInput.focus() : this._findInput.focusOnCaseSensitive(), void e.preventDefault()) : e.equals(2066) ? (this._codeEditor.focus(), void e.preventDefault()) : e.equals(16) ? ft(e, this._findInput.getValue(), this._findInput.domNode.querySelector(\"textarea\")) : e.equals(18) ? mt(e, this._findInput.getValue(), this._findInput.domNode.querySelector(\"textarea\")) : void 0\n                    }\n                    _onReplaceInputKeyDown(e) {\n                        return e.equals(3 | gt) ? (this._keybindingService.dispatchEvent(e, e.target) || (ye.ED && ye.tY && !this._ctrlEnterReplaceAllWarningPrompted && (this._notificationService.info(le.N(\"ctrlEnter.keybindingChanged\", \"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(ut, !0, 0, 0)), this._replaceInput.inputBox.insertAtCursor(\"\\n\")), void e.preventDefault()) : e.equals(2) ? (this._findInput.focusOnCaseSensitive(), void e.preventDefault()) : e.equals(1026) ? (this._findInput.focus(), void e.preventDefault()) : e.equals(2066) ? (this._codeEditor.focus(), void e.preventDefault()) : e.equals(16) ? ft(e, this._replaceInput.inputBox.value, this._replaceInput.inputBox.element.querySelector(\"textarea\")) : e.equals(18) ? mt(e, this._replaceInput.inputBox.value, this._replaceInput.inputBox.element.querySelector(\"textarea\")) : void 0\n                    }\n                    getVerticalSashLeft(e) {\n                        return 0\n                    }\n                    _keybindingLabelFor(e) {\n                        let t = this._keybindingService.lookupKeybinding(e);\n                        return t ? ` (${t.getLabel()})` : \"\"\n                    }\n                    _buildDomNode() {\n                        this._findInput = this._register(new Be(null, this._contextViewProvider, {\n                            width: 221,\n                            label: Ye,\n                            placeholder: Qe,\n                            appendCaseSensitiveLabel: this._keybindingLabelFor($),\n                            appendWholeWordsLabel: this._keybindingLabelFor(K),\n                            appendRegexLabel: this._keybindingLabelFor(q),\n                            validation: e => {\n                                if (0 === e.length || !this._findInput.getRegex()) return null;\n                                try {\n                                    return new RegExp(e, \"gu\"), null\n                                } catch (e) {\n                                    return {\n                                        content: e.message\n                                    }\n                                }\n                            },\n                            flexibleHeight: true,\n                            flexibleWidth: true,\n                            flexibleMaxHeight: 118,\n                            showHistoryHint: () => We(this._keybindingService)\n                        }, this._contextKeyService, !0)), this._findInput.setRegex(!!this._state.isRegex), this._findInput.setCaseSensitive(!!this._state.matchCase), this._findInput.setWholeWords(!!this._state.wholeWord), this._register(this._findInput.onKeyDown((e => this._onFindInputKeyDown(e)))), this._register(this._findInput.inputBox.onDidChange((() => {\n                            this._ignoreChangeEvent || this._state.change({\n                                searchString: this._findInput.getValue()\n                            }, !0)\n                        }))), this._register(this._findInput.onDidOptionChange((() => {\n                            this._state.change({\n                                isRegex: this._findInput.getRegex(),\n                                wholeWord: this._findInput.getWholeWords(),\n                                matchCase: this._findInput.getCaseSensitive()\n                            }, !0)\n                        }))), this._register(this._findInput.onCaseSensitiveKeyDown((e => {\n                            e.equals(1026) && this._isReplaceVisible && (this._replaceInput.focus(), e.preventDefault())\n                        }))), this._register(this._findInput.onRegexKeyDown((e => {\n                            e.equals(2) && this._isReplaceVisible && (this._replaceInput.focusOnPreserve(), e.preventDefault())\n                        }))), this._register(this._findInput.inputBox.onDidHeightChange((e => {\n                            this._tryUpdateHeight() && this._showViewZone()\n                        }))), ye.IJ && this._register(this._findInput.onMouseDown((e => this._onFindInputMouseDown(e)))), this._matchesCount = document.createElement(\"div\"), this._matchesCount.className = \"matchesCount\", this._updateMatchesCount(), this._prevBtn = this._register(new _t({\n                            label: Xe + this._keybindingLabelFor(W),\n                            icon: Ze,\n                            onTrigger: () => {\n                                this._codeEditor.getAction(W).run().then(void 0, we.dL)\n                            }\n                        })), this._nextBtn = this._register(new _t({\n                            label: Je + this._keybindingLabelFor(V),\n                            icon: Ge,\n                            onTrigger: () => {\n                                this._codeEditor.getAction(V).run().then(void 0, we.dL)\n                            }\n                        }));\n                        let e = document.createElement(\"div\");\n                        e.className = \"find-part\", e.appendChild(this._findInput.domNode);\n                        const t = document.createElement(\"div\");\n                        t.className = \"find-actions\", e.appendChild(t), t.appendChild(this._matchesCount), t.appendChild(this._prevBtn.domNode), t.appendChild(this._nextBtn.domNode), this._toggleSelectionFind = this._register(new ae({\n                            icon: je,\n                            title: et + this._keybindingLabelFor(Z),\n                            isChecked: !1\n                        })), this._register(this._toggleSelectionFind.onChange((() => {\n                            if (this._toggleSelectionFind.checked) {\n                                if (this._codeEditor.hasModel()) {\n                                    let e = this._codeEditor.getSelections();\n                                    e.map((e => (1 === e.endColumn && e.endLineNumber > e.startLineNumber && (e = e.setEndPosition(e.endLineNumber - 1, this._codeEditor.getModel().getLineMaxColumn(e.endLineNumber - 1))), e.isEmpty() ? null : e))).filter((e => !!e)), e.length && this._state.change({\n                                        searchScope: e\n                                    }, !0)\n                                }\n                            } else this._state.change({\n                                searchScope: null\n                            }, !0)\n                        }))), t.appendChild(this._toggleSelectionFind.domNode), this._closeBtn = this._register(new _t({\n                            label: tt + this._keybindingLabelFor(U),\n                            icon: He.s_,\n                            onTrigger: () => {\n                                this._state.change({\n                                    isRevealed: !1,\n                                    searchScope: null\n                                }, !1)\n                            },\n                            onKeyDown: e => {\n                                e.equals(2) && this._isReplaceVisible && (this._replaceBtn.isEnabled() ? this._replaceBtn.focus() : this._codeEditor.focus(), e.preventDefault())\n                            }\n                        })), t.appendChild(this._closeBtn.domNode), this._replaceInput = this._register(new Ve(null, void 0, {\n                            label: it,\n                            placeholder: nt,\n                            appendPreserveCaseLabel: this._keybindingLabelFor(G),\n                            history: [],\n                            flexibleHeight: true,\n                            flexibleWidth: true,\n                            flexibleMaxHeight: 118,\n                            showHistoryHint: () => We(this._keybindingService)\n                        }, this._contextKeyService, !0)), this._replaceInput.setPreserveCase(!!this._state.preserveCase), this._register(this._replaceInput.onKeyDown((e => this._onReplaceInputKeyDown(e)))), this._register(this._replaceInput.inputBox.onDidChange((() => {\n                            this._state.change({\n                                replaceString: this._replaceInput.inputBox.value\n                            }, !1)\n                        }))), this._register(this._replaceInput.inputBox.onDidHeightChange((e => {\n                            this._isReplaceVisible && this._tryUpdateHeight() && this._showViewZone()\n                        }))), this._register(this._replaceInput.onDidOptionChange((() => {\n                            this._state.change({\n                                preserveCase: this._replaceInput.getPreserveCase()\n                            }, !0)\n                        }))), this._register(this._replaceInput.onPreserveCaseKeyDown((e => {\n                            e.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(), e.preventDefault())\n                        }))), this._replaceBtn = this._register(new _t({\n                            label: ot + this._keybindingLabelFor(Y),\n                            icon: Ke,\n                            onTrigger: () => {\n                                this._controller.replace()\n                            },\n                            onKeyDown: e => {\n                                e.equals(1026) && (this._closeBtn.focus(), e.preventDefault())\n                            }\n                        })), this._replaceAllBtn = this._register(new _t({\n                            label: st + this._keybindingLabelFor(Q),\n                            icon: qe,\n                            onTrigger: () => {\n                                this._controller.replaceAll()\n                            }\n                        }));\n                        let i = document.createElement(\"div\");\n                        i.className = \"replace-part\", i.appendChild(this._replaceInput.domNode);\n                        const n = document.createElement(\"div\");\n                        n.className = \"replace-actions\", i.appendChild(n), n.appendChild(this._replaceBtn.domNode), n.appendChild(this._replaceAllBtn.domNode), this._toggleReplaceBtn = this._register(new _t({\n                            label: rt,\n                            className: \"codicon toggle left\",\n                            onTrigger: () => {\n                                this._state.change({\n                                    isReplaceRevealed: !this._isReplaceVisible\n                                }, !1), this._isReplaceVisible && (this._replaceInput.width = te.w(this._findInput.domNode), this._replaceInput.inputBox.layout()), this._showViewZone()\n                            }\n                        })), 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.style.width = \"419px\", this._domNode.appendChild(this._toggleReplaceBtn.domNode), this._domNode.appendChild(e), this._domNode.appendChild(i), this._resizeSash = new be.g(this._domNode, this, {\n                            orientation: 0,\n                            size: 2\n                        }), this._resized = !1;\n                        let o = dt;\n                        this._register(this._resizeSash.onDidStart((() => {\n                            o = te.w(this._domNode)\n                        }))), this._register(this._resizeSash.onDidChange((e => {\n                            this._resized = !0;\n                            let t = o + e.startX - e.currentX;\n                            if (t < dt) return;\n                            t > (parseFloat(te.Dx(this._domNode).maxWidth) || 0) || (this._domNode.style.width = `${t}px`, this._isReplaceVisible && (this._replaceInput.width = te.w(this._findInput.domNode)), this._findInput.inputBox.layout(), this._tryUpdateHeight())\n                        }))), this._register(this._resizeSash.onDidReset((() => {\n                            const e = te.w(this._domNode);\n                            if (e < dt) return;\n                            let t = dt;\n                            if (!this._resized || e === dt) {\n                                const e = this._codeEditor.getLayoutInfo();\n                                t = e.width - 28 - e.minimap.minimapWidth - 15, this._resized = !0\n                            }\n                            this._domNode.style.width = `${t}px`, this._isReplaceVisible && (this._replaceInput.width = te.w(this._findInput.domNode)), this._findInput.inputBox.layout()\n                        })))\n                    }\n                    updateAccessibilitySupport() {\n                        const e = this._codeEditor.getOption(2);\n                        this._findInput.setFocusInputOnOptionClick(2 !== e)\n                    }\n                }\n                vt.ID = \"editor.contrib.findWidget\";\n                class _t extends ie.$ {\n                    constructor(e) {\n                        super(), this._opts = e;\n                        let t = \"button\";\n                        this._opts.className && (t = t + \" \" + this._opts.className), this._opts.icon && (t = t + \" \" + v.kS.asClassName(this._opts.icon)), this._domNode = document.createElement(\"div\"), this._domNode.title = this._opts.label, this._domNode.tabIndex = 0, this._domNode.className = t, this._domNode.setAttribute(\"role\", \"button\"), this._domNode.setAttribute(\"aria-label\", this._opts.label), this.onclick(this._domNode, (e => {\n                            this._opts.onTrigger(), e.preventDefault()\n                        })), this.onkeydown(this._domNode, (e => {\n                            if (e.equals(10) || e.equals(3)) return this._opts.onTrigger(), void e.preventDefault();\n                            this._opts.onKeyDown && this._opts.onKeyDown(e)\n                        }))\n                    }\n                    get domNode() {\n                        return this._domNode\n                    }\n                    isEnabled() {\n                        return this._domNode.tabIndex >= 0\n                    }\n                    focus() {\n                        this._domNode.focus()\n                    }\n                    setEnabled(e) {\n                        this._domNode.classList.toggle(\"disabled\", !e), this._domNode.setAttribute(\"aria-disabled\", String(!e)), this._domNode.tabIndex = e ? 0 : -1\n                    }\n                    setExpanded(e) {\n                        this._domNode.setAttribute(\"aria-expanded\", String(!!e)), e ? (this._domNode.classList.remove(...v.kS.asClassNameArray(Ue)), this._domNode.classList.add(...v.kS.asClassNameArray($e))) : (this._domNode.classList.remove(...v.kS.asClassNameArray($e)), this._domNode.classList.add(...v.kS.asClassNameArray(Ue)))\n                    }\n                }(0, v.Ic)(((e, t) => {\n                    const i = (e, i) => {\n                        i && t.addRule(`.monaco-editor ${e} { background-color: ${i}; }`)\n                    };\n                    i(\".findMatch\", e.getColor(m.MU)), i(\".currentFindMatch\", e.getColor(m.ny)), i(\".findScope\", e.getColor(m.jU));\n                    i(\".find-widget\", e.getColor(m.D0));\n                    const n = e.getColor(m.rh);\n                    n && t.addRule(`.monaco-editor .find-widget { box-shadow: 0 0 8px 2px ${n}; }`);\n                    const o = e.getColor(m.Ei);\n                    o && t.addRule(`.monaco-editor .findMatch { border: 1px ${\"hc\"===e.type?\"dotted\":\"solid\"} ${o}; box-sizing: border-box; }`);\n                    const s = e.getColor(m.pn);\n                    s && t.addRule(`.monaco-editor .currentFindMatch { border: 2px solid ${s}; padding: 1px; box-sizing: border-box; }`);\n                    const r = e.getColor(m.gk);\n                    r && t.addRule(`.monaco-editor .findScope { border: 1px ${\"hc\"===e.type?\"dashed\":\"solid\"} ${r}; }`);\n                    const a = e.getColor(m.lR);\n                    a && t.addRule(`.monaco-editor .find-widget { border: 1px solid ${a}; }`);\n                    const l = e.getColor(m.Hf);\n                    l && t.addRule(`.monaco-editor .find-widget { color: ${l}; }`);\n                    const c = e.getColor(m.Id);\n                    c && t.addRule(`.monaco-editor .find-widget.no-results .matchesCount { color: ${c}; }`);\n                    const d = e.getColor(m.Ng);\n                    if (d) t.addRule(`.monaco-editor .find-widget .monaco-sash { background-color: ${d}; }`);\n                    else {\n                        const i = e.getColor(m.D1);\n                        i && t.addRule(`.monaco-editor .find-widget .monaco-sash { background-color: ${i}; }`)\n                    }\n                    const h = e.getColor(m.lU);\n                    h && t.addRule(`\\n\\t\\t.monaco-editor .find-widget .button:not(.disabled):hover,\\n\\t\\t.monaco-editor .find-widget .codicon-find-selection:hover {\\n\\t\\t\\tbackground-color: ${h} !important;\\n\\t\\t}\\n\\t`);\n                    const u = e.getColor(m.R8);\n                    u && t.addRule(`.monaco-editor .find-widget .monaco-inputbox.synthetic-focus { outline-color: ${u}; }`)\n                }));\n                var bt = i(84144),\n                    wt = i(84972),\n                    yt = i(5606),\n                    Ct = i(91847),\n                    xt = i(59422),\n                    St = i(26904),\n                    kt = function(e, t, i, n) {\n                        var o, s = arguments.length,\n                            r = s < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n                        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) r = Reflect.decorate(e, t, i, n);\n                        else\n                            for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (r = (s < 3 ? o(r) : s > 3 ? o(t, i, r) : o(t, i)) || r);\n                        return s > 3 && r && Object.defineProperty(t, i, r), r\n                    },\n                    Lt = function(e, t) {\n                        return function(i, n) {\n                            t(i, n, e)\n                        }\n                    },\n                    Nt = function(e, t, i, n) {\n                        return new(i || (i = Promise))((function(o, s) {\n                            function r(e) {\n                                try {\n                                    l(n.next(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function a(e) {\n                                try {\n                                    l(n.throw(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function l(e) {\n                                var t;\n                                e.done ? o(e.value) : (t = e.value, t instanceof i ? t : new i((function(e) {\n                                    e(t)\n                                }))).then(r, a)\n                            }\n                            l((n = n.apply(e, t || [])).next())\n                        }))\n                    };\n                const Dt = 524288;\n\n                function It(e, t = \"single\", i = !1) {\n                    if (!e.hasModel()) return null;\n                    const n = e.getSelection();\n                    if (\"single\" === t && n.startLineNumber === n.endLineNumber || \"multiple\" === t)\n                        if (n.isEmpty()) {\n                            const t = e.getConfiguredWordAtPosition(n.getStartPosition());\n                            if (t && !1 === i) return t.word\n                        } else if (e.getModel().getValueLengthInRange(n) < Dt) return e.getModel().getValueInRange(n);\n                    return null\n                }\n                let Et = class e extends o.JT {\n                    constructor(e, t, i, o) {\n                        super(), this._editor = e, this._findWidgetVisible = I.bindTo(t), this._contextKeyService = t, this._storageService = i, this._clipboardService = o, this._updateHistoryDelayer = new n.vp(500), this._state = this._register(new ve), this.loadQueryState(), this._register(this._state.onFindReplaceStateChange((e => this._onStateChanged(e)))), this._model = null, this._register(this._editor.onDidChangeModel((() => {\n                            let e = this._editor.getModel() && this._state.isRevealed;\n                            this.disposeModel(), this._state.change({\n                                searchScope: null,\n                                matchCase: this._storageService.getBoolean(\"editor.matchCase\", 1, !1),\n                                wholeWord: this._storageService.getBoolean(\"editor.wholeWord\", 1, !1),\n                                isRegex: this._storageService.getBoolean(\"editor.isRegex\", 1, !1),\n                                preserveCase: this._storageService.getBoolean(\"editor.preserveCase\", 1, !1)\n                            }, !1), e && this._start({\n                                forceRevealReplace: !1,\n                                seedSearchStringFromSelection: \"none\",\n                                seedSearchStringFromNonEmptySelection: !1,\n                                seedSearchStringFromGlobalClipboard: !1,\n                                shouldFocus: 0,\n                                shouldAnimate: !1,\n                                updateSearchScope: !1,\n                                loop: this._editor.getOption(35).loop\n                            })\n                        })))\n                    }\n                    get editor() {\n                        return this._editor\n                    }\n                    static get(t) {\n                        return t.getContribution(e.ID)\n                    }\n                    dispose() {\n                        this.disposeModel(), super.dispose()\n                    }\n                    disposeModel() {\n                        this._model && (this._model.dispose(), this._model = null)\n                    }\n                    _onStateChanged(e) {\n                        this.saveQueryState(e), e.isRevealed && (this._state.isRevealed ? this._findWidgetVisible.set(!0) : (this._findWidgetVisible.reset(), this.disposeModel())), e.searchString && this.setGlobalBufferTerm(this._state.searchString)\n                    }\n                    saveQueryState(e) {\n                        e.isRegex && this._storageService.store(\"editor.isRegex\", this._state.actualIsRegex, 1, 0), e.wholeWord && this._storageService.store(\"editor.wholeWord\", this._state.actualWholeWord, 1, 0), e.matchCase && this._storageService.store(\"editor.matchCase\", this._state.actualMatchCase, 1, 0), e.preserveCase && this._storageService.store(\"editor.preserveCase\", this._state.actualPreserveCase, 1, 0)\n                    }\n                    loadQueryState() {\n                        this._state.change({\n                            matchCase: this._storageService.getBoolean(\"editor.matchCase\", 1, this._state.matchCase),\n                            wholeWord: this._storageService.getBoolean(\"editor.wholeWord\", 1, this._state.wholeWord),\n                            isRegex: this._storageService.getBoolean(\"editor.isRegex\", 1, this._state.isRegex),\n                            preserveCase: this._storageService.getBoolean(\"editor.preserveCase\", 1, this._state.preserveCase)\n                        }, !1)\n                    }\n                    isFindInputFocused() {\n                        return !!E.getValue(this._contextKeyService)\n                    }\n                    getState() {\n                        return this._state\n                    }\n                    closeFindWidget() {\n                        this._state.change({\n                            isRevealed: !1,\n                            searchScope: null\n                        }, !1), this._editor.focus()\n                    }\n                    toggleCaseSensitive() {\n                        this._state.change({\n                            matchCase: !this._state.matchCase\n                        }, !1), this._state.isRevealed || this.highlightFindOptions()\n                    }\n                    toggleWholeWords() {\n                        this._state.change({\n                            wholeWord: !this._state.wholeWord\n                        }, !1), this._state.isRevealed || this.highlightFindOptions()\n                    }\n                    toggleRegex() {\n                        this._state.change({\n                            isRegex: !this._state.isRegex\n                        }, !1), this._state.isRevealed || this.highlightFindOptions()\n                    }\n                    togglePreserveCase() {\n                        this._state.change({\n                            preserveCase: !this._state.preserveCase\n                        }, !1), this._state.isRevealed || this.highlightFindOptions()\n                    }\n                    toggleSearchScope() {\n                        if (this._state.searchScope) this._state.change({\n                            searchScope: null\n                        }, !0);\n                        else if (this._editor.hasModel()) {\n                            let e = this._editor.getSelections();\n                            e.map((e => (1 === e.endColumn && e.endLineNumber > e.startLineNumber && (e = e.setEndPosition(e.endLineNumber - 1, this._editor.getModel().getLineMaxColumn(e.endLineNumber - 1))), e.isEmpty() ? null : e))).filter((e => !!e)), e.length && this._state.change({\n                                searchScope: e\n                            }, !0)\n                        }\n                    }\n                    setSearchString(e) {\n                        this._state.isRegex && (e = s.ec(e)), this._state.change({\n                            searchString: e\n                        }, !1)\n                    }\n                    highlightFindOptions(e = !1) {}\n                    _start(e) {\n                        return Nt(this, void 0, void 0, (function*() {\n                            if (this.disposeModel(), !this._editor.hasModel()) return;\n                            let t = {\n                                isRevealed: !0\n                            };\n                            if (\"single\" === e.seedSearchStringFromSelection) {\n                                let i = It(this._editor, e.seedSearchStringFromSelection, e.seedSearchStringFromNonEmptySelection);\n                                i && (this._state.isRegex ? t.searchString = s.ec(i) : t.searchString = i)\n                            } else if (\"multiple\" === e.seedSearchStringFromSelection && !e.updateSearchScope) {\n                                let i = It(this._editor, e.seedSearchStringFromSelection);\n                                i && (t.searchString = i)\n                            }\n                            if (!t.searchString && e.seedSearchStringFromGlobalClipboard) {\n                                let e = yield this.getGlobalBufferTerm();\n                                if (!this._editor.hasModel()) return;\n                                e && (t.searchString = e)\n                            }\n                            if (e.forceRevealReplace ? t.isReplaceRevealed = !0 : this._findWidgetVisible.get() || (t.isReplaceRevealed = !1), e.updateSearchScope) {\n                                let e = this._editor.getSelections();\n                                e.some((e => !e.isEmpty())) && (t.searchScope = e)\n                            }\n                            t.loop = e.loop, this._state.change(t, !1), this._model || (this._model = new ee(this._editor, this._state))\n                        }))\n                    }\n                    start(e) {\n                        return this._start(e)\n                    }\n                    moveToNextMatch() {\n                        return !!this._model && (this._model.moveToNextMatch(), !0)\n                    }\n                    moveToPrevMatch() {\n                        return !!this._model && (this._model.moveToPrevMatch(), !0)\n                    }\n                    replace() {\n                        return !!this._model && (this._model.replace(), !0)\n                    }\n                    replaceAll() {\n                        return !!this._model && (this._model.replaceAll(), !0)\n                    }\n                    selectAllMatches() {\n                        return !!this._model && (this._model.selectAllMatches(), this._editor.focus(), !0)\n                    }\n                    getGlobalBufferTerm() {\n                        return Nt(this, void 0, void 0, (function*() {\n                            return this._editor.getOption(35).globalFindClipboard && this._editor.hasModel() && !this._editor.getModel().isTooLargeForSyncing() ? this._clipboardService.readFindText() : \"\"\n                        }))\n                    }\n                    setGlobalBufferTerm(e) {\n                        this._editor.getOption(35).globalFindClipboard && this._editor.hasModel() && !this._editor.getModel().isTooLargeForSyncing() && this._clipboardService.writeFindText(e)\n                    }\n                };\n                Et.ID = \"editor.contrib.findController\", Et = kt([Lt(1, D.i6), Lt(2, St.Uy), Lt(3, wt.p)], Et);\n                let Tt = class extends Et {\n                    constructor(e, t, i, n, o, s, r, a) {\n                        super(e, i, r, a), this._contextViewService = t, this._keybindingService = n, this._themeService = o, this._notificationService = s, this._widget = null, this._findOptionsWidget = null\n                    }\n                    _start(e) {\n                        const t = Object.create(null, {\n                            _start: {\n                                get: () => super._start\n                            }\n                        });\n                        return Nt(this, void 0, void 0, (function*() {\n                            this._widget || this._createFindWidget();\n                            const i = this._editor.getSelection();\n                            let n = !1;\n                            switch (this._editor.getOption(35).autoFindInSelection) {\n                                case \"always\":\n                                    n = !0;\n                                    break;\n                                case \"never\":\n                                    n = !1;\n                                    break;\n                                case \"multiline\":\n                                    n = !!i && i.startLineNumber !== i.endLineNumber\n                            }\n                            e.updateSearchScope = n, yield t._start.call(this, e), this._widget && (2 === e.shouldFocus ? this._widget.focusReplaceInput() : 1 === e.shouldFocus && this._widget.focusFindInput())\n                        }))\n                    }\n                    highlightFindOptions(e = !1) {\n                        this._widget || this._createFindWidget(), this._state.isRevealed && !e ? this._widget.highlightFindOptions() : this._findOptionsWidget.highlightFindOptions()\n                    }\n                    _createFindWidget() {\n                        this._widget = this._register(new vt(this._editor, this, this._state, this._contextViewService, this._keybindingService, this._contextKeyService, this._themeService, this._storageService, this._notificationService)), this._findOptionsWidget = this._register(new fe(this._editor, this._state, this._keybindingService, this._themeService))\n                    }\n                };\n                Tt = kt([Lt(1, yt.u), Lt(2, D.i6), Lt(3, Ct.d), Lt(4, v.XE), Lt(5, xt.lT), Lt(6, St.Uy), Lt(7, wt.p)], Tt);\n                const Mt = (0, r.rn)(new r.jY({\n                    id: F,\n                    label: le.N(\"startFindAction\", \"Find\"),\n                    alias: \"Find\",\n                    precondition: D.Ao.or(a.u.focus, D.Ao.has(\"editorIsOpen\")),\n                    kbOpts: {\n                        kbExpr: null,\n                        primary: 2084,\n                        weight: 100\n                    },\n                    menuOpts: {\n                        menuId: bt.eH.MenubarEditMenu,\n                        group: \"3_find\",\n                        title: le.N({\n                            key: \"miFind\",\n                            comment: [\"&& denotes a mnemonic\"]\n                        }, \"&&Find\"),\n                        order: 1\n                    }\n                }));\n                Mt.addImplementation(0, ((e, t, i) => {\n                    const n = Et.get(t);\n                    return !!n && n.start({\n                        forceRevealReplace: !1,\n                        seedSearchStringFromSelection: \"never\" !== t.getOption(35).seedSearchStringFromSelection ? \"single\" : \"none\",\n                        seedSearchStringFromNonEmptySelection: \"selection\" === t.getOption(35).seedSearchStringFromSelection,\n                        seedSearchStringFromGlobalClipboard: t.getOption(35).globalFindClipboard,\n                        shouldFocus: 1,\n                        shouldAnimate: !0,\n                        updateSearchScope: !1,\n                        loop: t.getOption(35).loop\n                    })\n                }));\n                class At extends r.R6 {\n                    constructor() {\n                        super({\n                            id: B,\n                            label: le.N(\"startFindWithSelectionAction\", \"Find With Selection\"),\n                            alias: \"Find With Selection\",\n                            precondition: void 0,\n                            kbOpts: {\n                                kbExpr: null,\n                                primary: 0,\n                                mac: {\n                                    primary: 2083\n                                },\n                                weight: 100\n                            }\n                        })\n                    }\n                    run(e, t) {\n                        return Nt(this, void 0, void 0, (function*() {\n                            let e = Et.get(t);\n                            e && (yield e.start({\n                                forceRevealReplace: !1,\n                                seedSearchStringFromSelection: \"multiple\",\n                                seedSearchStringFromNonEmptySelection: !1,\n                                seedSearchStringFromGlobalClipboard: !1,\n                                shouldFocus: 0,\n                                shouldAnimate: !0,\n                                updateSearchScope: !1,\n                                loop: t.getOption(35).loop\n                            }), e.setGlobalBufferTerm(e.getState().searchString))\n                        }))\n                    }\n                }\n                class Ot extends r.R6 {\n                    run(e, t) {\n                        return Nt(this, void 0, void 0, (function*() {\n                            let e = Et.get(t);\n                            e && !this._run(e) && (yield e.start({\n                                forceRevealReplace: !1,\n                                seedSearchStringFromSelection: 0 === e.getState().searchString.length && \"never\" !== t.getOption(35).seedSearchStringFromSelection ? \"single\" : \"none\",\n                                seedSearchStringFromNonEmptySelection: \"selection\" === t.getOption(35).seedSearchStringFromSelection,\n                                seedSearchStringFromGlobalClipboard: !0,\n                                shouldFocus: 0,\n                                shouldAnimate: !0,\n                                updateSearchScope: !1,\n                                loop: t.getOption(35).loop\n                            }), this._run(e))\n                        }))\n                    }\n                }\n                class Pt extends Ot {\n                    constructor() {\n                        super({\n                            id: V,\n                            label: le.N(\"findNextMatchAction\", \"Find Next\"),\n                            alias: \"Find Next\",\n                            precondition: void 0,\n                            kbOpts: [{\n                                kbExpr: a.u.focus,\n                                primary: 61,\n                                mac: {\n                                    primary: 2085,\n                                    secondary: [61]\n                                },\n                                weight: 100\n                            }, {\n                                kbExpr: D.Ao.and(a.u.focus, E),\n                                primary: 3,\n                                weight: 100\n                            }]\n                        })\n                    }\n                    _run(e) {\n                        return !!e.moveToNextMatch() && (e.editor.pushUndoStop(), !0)\n                    }\n                }\n                class Rt extends Ot {\n                    constructor() {\n                        super({\n                            id: W,\n                            label: le.N(\"findPreviousMatchAction\", \"Find Previous\"),\n                            alias: \"Find Previous\",\n                            precondition: void 0,\n                            kbOpts: [{\n                                kbExpr: a.u.focus,\n                                primary: 1085,\n                                mac: {\n                                    primary: 3109,\n                                    secondary: [1085]\n                                },\n                                weight: 100\n                            }, {\n                                kbExpr: D.Ao.and(a.u.focus, E),\n                                primary: 1027,\n                                weight: 100\n                            }]\n                        })\n                    }\n                    _run(e) {\n                        return e.moveToPrevMatch()\n                    }\n                }\n                class Ft extends r.R6 {\n                    run(e, t) {\n                        return Nt(this, void 0, void 0, (function*() {\n                            let e = Et.get(t);\n                            if (!e) return;\n                            const i = \"selection\" === t.getOption(35).seedSearchStringFromSelection;\n                            let n = null;\n                            \"never\" !== t.getOption(35).seedSearchStringFromSelection && (n = It(t, \"single\", i)), n && e.setSearchString(n), this._run(e) || (yield e.start({\n                                forceRevealReplace: !1,\n                                seedSearchStringFromSelection: \"never\" !== t.getOption(35).seedSearchStringFromSelection ? \"single\" : \"none\",\n                                seedSearchStringFromNonEmptySelection: i,\n                                seedSearchStringFromGlobalClipboard: !1,\n                                shouldFocus: 0,\n                                shouldAnimate: !0,\n                                updateSearchScope: !1,\n                                loop: t.getOption(35).loop\n                            }), this._run(e))\n                        }))\n                    }\n                }\n                class Bt extends Ft {\n                    constructor() {\n                        super({\n                            id: H,\n                            label: le.N(\"nextSelectionMatchFindAction\", \"Find Next Selection\"),\n                            alias: \"Find Next Selection\",\n                            precondition: void 0,\n                            kbOpts: {\n                                kbExpr: a.u.focus,\n                                primary: 2109,\n                                weight: 100\n                            }\n                        })\n                    }\n                    _run(e) {\n                        return e.moveToNextMatch()\n                    }\n                }\n                class Vt extends Ft {\n                    constructor() {\n                        super({\n                            id: z,\n                            label: le.N(\"previousSelectionMatchFindAction\", \"Find Previous Selection\"),\n                            alias: \"Find Previous Selection\",\n                            precondition: void 0,\n                            kbOpts: {\n                                kbExpr: a.u.focus,\n                                primary: 3133,\n                                weight: 100\n                            }\n                        })\n                    }\n                    _run(e) {\n                        return e.moveToPrevMatch()\n                    }\n                }\n                const Wt = (0, r.rn)(new r.jY({\n                    id: j,\n                    label: le.N(\"startReplace\", \"Replace\"),\n                    alias: \"Replace\",\n                    precondition: D.Ao.or(a.u.focus, D.Ao.has(\"editorIsOpen\")),\n                    kbOpts: {\n                        kbExpr: null,\n                        primary: 2086,\n                        mac: {\n                            primary: 2596\n                        },\n                        weight: 100\n                    },\n                    menuOpts: {\n                        menuId: bt.eH.MenubarEditMenu,\n                        group: \"3_find\",\n                        title: le.N({\n                            key: \"miReplace\",\n                            comment: [\"&& denotes a mnemonic\"]\n                        }, \"&&Replace\"),\n                        order: 2\n                    }\n                }));\n                Wt.addImplementation(0, ((e, t, i) => {\n                    if (!t.hasModel() || t.getOption(80)) return !1;\n                    const n = Et.get(t);\n                    if (!n) return !1;\n                    const o = t.getSelection(),\n                        s = n.isFindInputFocused(),\n                        r = !o.isEmpty() && o.startLineNumber === o.endLineNumber && \"never\" !== t.getOption(35).seedSearchStringFromSelection && !s,\n                        a = s || r ? 2 : 1;\n                    return n.start({\n                        forceRevealReplace: !0,\n                        seedSearchStringFromSelection: r ? \"single\" : \"none\",\n                        seedSearchStringFromNonEmptySelection: \"selection\" === t.getOption(35).seedSearchStringFromSelection,\n                        seedSearchStringFromGlobalClipboard: \"never\" !== t.getOption(35).seedSearchStringFromSelection,\n                        shouldFocus: a,\n                        shouldAnimate: !0,\n                        updateSearchScope: !1,\n                        loop: t.getOption(35).loop\n                    })\n                })), (0, r._K)(Et.ID, Tt), (0, r.Qr)(At), (0, r.Qr)(Pt), (0, r.Qr)(Rt), (0, r.Qr)(Bt), (0, r.Qr)(Vt);\n                const Ht = r._l.bindToContribution(Et.get);\n                (0, r.fK)(new Ht({\n                    id: U,\n                    precondition: I,\n                    handler: e => e.closeFindWidget(),\n                    kbOpts: {\n                        weight: 105,\n                        kbExpr: D.Ao.and(a.u.focus, D.Ao.not(\"isComposing\")),\n                        primary: 9,\n                        secondary: [1033]\n                    }\n                })), (0, r.fK)(new Ht({\n                    id: $,\n                    precondition: void 0,\n                    handler: e => e.toggleCaseSensitive(),\n                    kbOpts: {\n                        weight: 105,\n                        kbExpr: a.u.focus,\n                        primary: M.primary,\n                        mac: M.mac,\n                        win: M.win,\n                        linux: M.linux\n                    }\n                })), (0, r.fK)(new Ht({\n                    id: K,\n                    precondition: void 0,\n                    handler: e => e.toggleWholeWords(),\n                    kbOpts: {\n                        weight: 105,\n                        kbExpr: a.u.focus,\n                        primary: A.primary,\n                        mac: A.mac,\n                        win: A.win,\n                        linux: A.linux\n                    }\n                })), (0, r.fK)(new Ht({\n                    id: q,\n                    precondition: void 0,\n                    handler: e => e.toggleRegex(),\n                    kbOpts: {\n                        weight: 105,\n                        kbExpr: a.u.focus,\n                        primary: O.primary,\n                        mac: O.mac,\n                        win: O.win,\n                        linux: O.linux\n                    }\n                })), (0, r.fK)(new Ht({\n                    id: Z,\n                    precondition: void 0,\n                    handler: e => e.toggleSearchScope(),\n                    kbOpts: {\n                        weight: 105,\n                        kbExpr: a.u.focus,\n                        primary: P.primary,\n                        mac: P.mac,\n                        win: P.win,\n                        linux: P.linux\n                    }\n                })), (0, r.fK)(new Ht({\n                    id: G,\n                    precondition: void 0,\n                    handler: e => e.togglePreserveCase(),\n                    kbOpts: {\n                        weight: 105,\n                        kbExpr: a.u.focus,\n                        primary: R.primary,\n                        mac: R.mac,\n                        win: R.win,\n                        linux: R.linux\n                    }\n                })), (0, r.fK)(new Ht({\n                    id: Y,\n                    precondition: I,\n                    handler: e => e.replace(),\n                    kbOpts: {\n                        weight: 105,\n                        kbExpr: a.u.focus,\n                        primary: 3094\n                    }\n                })), (0, r.fK)(new Ht({\n                    id: Y,\n                    precondition: I,\n                    handler: e => e.replace(),\n                    kbOpts: {\n                        weight: 105,\n                        kbExpr: D.Ao.and(a.u.focus, T),\n                        primary: 3\n                    }\n                })), (0, r.fK)(new Ht({\n                    id: Q,\n                    precondition: I,\n                    handler: e => e.replaceAll(),\n                    kbOpts: {\n                        weight: 105,\n                        kbExpr: a.u.focus,\n                        primary: 2563\n                    }\n                })), (0, r.fK)(new Ht({\n                    id: Q,\n                    precondition: I,\n                    handler: e => e.replaceAll(),\n                    kbOpts: {\n                        weight: 105,\n                        kbExpr: D.Ao.and(a.u.focus, T),\n                        primary: void 0,\n                        mac: {\n                            primary: 2051\n                        }\n                    }\n                })), (0, r.fK)(new Ht({\n                    id: X,\n                    precondition: I,\n                    handler: e => e.selectAllMatches(),\n                    kbOpts: {\n                        weight: 105,\n                        kbExpr: a.u.focus,\n                        primary: 515\n                    }\n                }))\n            },\n            62943: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    FoldingController: () => Q,\n                    editorFoldForeground: () => ie,\n                    foldBackgroundBackground: () => te\n                });\n                var n = i(15393),\n                    o = i(17301),\n                    s = i(22258),\n                    r = i(5976),\n                    a = i(97295),\n                    l = i(98401),\n                    c = (i(42680), i(39925)),\n                    d = i(16830),\n                    h = i(29102),\n                    u = i(44101),\n                    g = i(83831),\n                    p = i(4669);\n                const f = 16777215,\n                    m = 4278190080;\n                class v {\n                    constructor(e, t, i) {\n                        if (e.length !== t.length || e.length > 65535) throw new Error(\"invalid startIndexes or endIndexes size\");\n                        this._startIndexes = e, this._endIndexes = t, this._collapseStates = new Uint32Array(Math.ceil(e.length / 32)), this._types = i, this._parentsComputed = !1\n                    }\n                    ensureParentIndices() {\n                        if (!this._parentsComputed) {\n                            this._parentsComputed = !0;\n                            let e = [],\n                                t = (t, i) => {\n                                    let n = e[e.length - 1];\n                                    return this.getStartLineNumber(n) <= t && this.getEndLineNumber(n) >= i\n                                };\n                            for (let i = 0, n = this._startIndexes.length; i < n; i++) {\n                                let n = this._startIndexes[i],\n                                    o = this._endIndexes[i];\n                                if (n > f || o > f) throw new Error(\"startLineNumber or endLineNumber must not exceed \" + f);\n                                for (; e.length > 0 && !t(n, o);) e.pop();\n                                let s = e.length > 0 ? e[e.length - 1] : -1;\n                                e.push(i), this._startIndexes[i] = n + ((255 & s) << 24), this._endIndexes[i] = o + ((65280 & s) << 16)\n                            }\n                        }\n                    }\n                    get length() {\n                        return this._startIndexes.length\n                    }\n                    getStartLineNumber(e) {\n                        return this._startIndexes[e] & f\n                    }\n                    getEndLineNumber(e) {\n                        return this._endIndexes[e] & f\n                    }\n                    getType(e) {\n                        return this._types ? this._types[e] : void 0\n                    }\n                    hasTypes() {\n                        return !!this._types\n                    }\n                    isCollapsed(e) {\n                        let t = e / 32 | 0,\n                            i = e % 32;\n                        return 0 != (this._collapseStates[t] & 1 << i)\n                    }\n                    setCollapsed(e, t) {\n                        let i = e / 32 | 0,\n                            n = e % 32,\n                            o = this._collapseStates[i];\n                        this._collapseStates[i] = t ? o | 1 << n : o & ~(1 << n)\n                    }\n                    setCollapsedAllOfType(e, t) {\n                        let i = !1;\n                        if (this._types)\n                            for (let n = 0; n < this._types.length; n++) this._types[n] === e && (this.setCollapsed(n, t), i = !0);\n                        return i\n                    }\n                    toRegion(e) {\n                        return new _(this, e)\n                    }\n                    getParentIndex(e) {\n                        this.ensureParentIndices();\n                        let t = ((this._startIndexes[e] & m) >>> 24) + ((this._endIndexes[e] & m) >>> 16);\n                        return 65535 === t ? -1 : t\n                    }\n                    contains(e, t) {\n                        return this.getStartLineNumber(e) <= t && this.getEndLineNumber(e) >= t\n                    }\n                    findIndex(e) {\n                        let t = 0,\n                            i = this._startIndexes.length;\n                        if (0 === i) return -1;\n                        for (; t < i;) {\n                            let n = Math.floor((t + i) / 2);\n                            e < this.getStartLineNumber(n) ? i = n : t = n + 1\n                        }\n                        return t - 1\n                    }\n                    findRange(e) {\n                        let t = this.findIndex(e);\n                        if (t >= 0) {\n                            if (this.getEndLineNumber(t) >= e) return t;\n                            for (t = this.getParentIndex(t); - 1 !== t;) {\n                                if (this.contains(t, e)) return t;\n                                t = this.getParentIndex(t)\n                            }\n                        }\n                        return -1\n                    }\n                    toString() {\n                        let e = [];\n                        for (let t = 0; t < this.length; t++) e[t] = `[${this.isCollapsed(t)?\"+\":\"-\"}] ${this.getStartLineNumber(t)}/${this.getEndLineNumber(t)}`;\n                        return e.join(\", \")\n                    }\n                }\n                class _ {\n                    constructor(e, t) {\n                        this.ranges = e, this.index = t\n                    }\n                    get startLineNumber() {\n                        return this.ranges.getStartLineNumber(this.index)\n                    }\n                    get endLineNumber() {\n                        return this.ranges.getEndLineNumber(this.index)\n                    }\n                    get regionIndex() {\n                        return this.index\n                    }\n                    get parentIndex() {\n                        return this.ranges.getParentIndex(this.index)\n                    }\n                    get isCollapsed() {\n                        return this.ranges.isCollapsed(this.index)\n                    }\n                    containedBy(e) {\n                        return e.startLineNumber <= this.startLineNumber && e.endLineNumber >= this.endLineNumber\n                    }\n                    containsLine(e) {\n                        return this.startLineNumber <= e && e <= this.endLineNumber\n                    }\n                }\n                class b {\n                    constructor(e, t) {\n                        this._updateEventEmitter = new p.Q5, this.onDidChange = this._updateEventEmitter.event, this._textModel = e, this._decorationProvider = t, this._regions = new v(new Uint32Array(0), new Uint32Array(0)), this._editorDecorationIds = [], this._isInitialized = !1\n                    }\n                    get regions() {\n                        return this._regions\n                    }\n                    get textModel() {\n                        return this._textModel\n                    }\n                    get isInitialized() {\n                        return this._isInitialized\n                    }\n                    toggleCollapseState(e) {\n                        if (!e.length) return;\n                        e = e.sort(((e, t) => e.regionIndex - t.regionIndex));\n                        const t = {};\n                        this._decorationProvider.changeDecorations((i => {\n                            let n = 0,\n                                o = -1,\n                                s = -1;\n                            const r = e => {\n                                for (; n < e;) {\n                                    const e = this._regions.getEndLineNumber(n),\n                                        t = this._regions.isCollapsed(n);\n                                    e <= o && i.changeDecorationOptions(this._editorDecorationIds[n], this._decorationProvider.getDecorationOption(t, e <= s)), t && e > s && (s = e), n++\n                                }\n                            };\n                            for (let i of e) {\n                                let e = i.regionIndex,\n                                    n = this._editorDecorationIds[e];\n                                if (n && !t[n]) {\n                                    t[n] = !0, r(e);\n                                    let i = !this._regions.isCollapsed(e);\n                                    this._regions.setCollapsed(e, i), o = Math.max(o, this._regions.getEndLineNumber(e))\n                                }\n                            }\n                            r(this._regions.length)\n                        })), this._updateEventEmitter.fire({\n                            model: this,\n                            collapseStateChanged: e\n                        })\n                    }\n                    update(e, t = []) {\n                        let i = [],\n                            n = -1,\n                            o = (o, s) => {\n                                const r = e.getStartLineNumber(o),\n                                    a = e.getEndLineNumber(o);\n                                s || (s = e.isCollapsed(o)), s && ((e, i) => {\n                                    for (let n of t)\n                                        if (e < n && n <= i) return !0;\n                                    return !1\n                                })(r, a) && (s = !1), e.setCollapsed(o, s);\n                                const l = this._textModel.getLineMaxColumn(r),\n                                    c = {\n                                        startLineNumber: r,\n                                        startColumn: Math.max(l - 1, 1),\n                                        endLineNumber: r,\n                                        endColumn: l\n                                    };\n                                i.push({\n                                    range: c,\n                                    options: this._decorationProvider.getDecorationOption(s, a <= n)\n                                }), s && a > n && (n = a)\n                            },\n                            s = 0,\n                            r = () => {\n                                for (; s < this._regions.length;) {\n                                    let e = this._regions.isCollapsed(s);\n                                    if (s++, e) return s - 1\n                                }\n                                return -1\n                            },\n                            a = 0,\n                            l = r();\n                        for (; - 1 !== l && a < e.length;) {\n                            let t = this._textModel.getDecorationRange(this._editorDecorationIds[l]);\n                            if (t) {\n                                let i = t.startLineNumber;\n                                if (t.startColumn === Math.max(t.endColumn - 1, 1) && this._textModel.getLineMaxColumn(i) === t.endColumn)\n                                    for (; a < e.length;) {\n                                        let t = e.getStartLineNumber(a);\n                                        if (!(i >= t)) break;\n                                        o(a, i === t), a++\n                                    }\n                            }\n                            l = r()\n                        }\n                        for (; a < e.length;) o(a, !1), a++;\n                        this._editorDecorationIds = this._decorationProvider.deltaDecorations(this._editorDecorationIds, i), this._regions = e, this._isInitialized = !0, this._updateEventEmitter.fire({\n                            model: this\n                        })\n                    }\n                    getMemento() {\n                        let e = [];\n                        for (let t = 0; t < this._regions.length; t++)\n                            if (this._regions.isCollapsed(t)) {\n                                let i = this._textModel.getDecorationRange(this._editorDecorationIds[t]);\n                                if (i) {\n                                    let n = i.startLineNumber,\n                                        o = i.endLineNumber + this._regions.getEndLineNumber(t) - this._regions.getStartLineNumber(t);\n                                    e.push({\n                                        startLineNumber: n,\n                                        endLineNumber: o\n                                    })\n                                }\n                            } if (e.length > 0) return e\n                    }\n                    applyMemento(e) {\n                        if (!Array.isArray(e)) return;\n                        let t = [];\n                        for (let i of e) {\n                            let e = this.getRegionAtLine(i.startLineNumber);\n                            e && !e.isCollapsed && t.push(e)\n                        }\n                        this.toggleCollapseState(t)\n                    }\n                    dispose() {\n                        this._decorationProvider.deltaDecorations(this._editorDecorationIds, [])\n                    }\n                    getAllRegionsAtLine(e, t) {\n                        let i = [];\n                        if (this._regions) {\n                            let n = this._regions.findRange(e),\n                                o = 1;\n                            for (; n >= 0;) {\n                                let e = this._regions.toRegion(n);\n                                t && !t(e, o) || i.push(e), o++, n = e.parentIndex\n                            }\n                        }\n                        return i\n                    }\n                    getRegionAtLine(e) {\n                        if (this._regions) {\n                            let t = this._regions.findRange(e);\n                            if (t >= 0) return this._regions.toRegion(t)\n                        }\n                        return null\n                    }\n                    getRegionsInside(e, t) {\n                        let i = [],\n                            n = e ? e.regionIndex + 1 : 0,\n                            o = e ? e.endLineNumber : Number.MAX_VALUE;\n                        if (t && 2 === t.length) {\n                            const e = [];\n                            for (let s = n, r = this._regions.length; s < r; s++) {\n                                let n = this._regions.toRegion(s);\n                                if (!(this._regions.getStartLineNumber(s) < o)) break;\n                                for (; e.length > 0 && !n.containedBy(e[e.length - 1]);) e.pop();\n                                e.push(n), t(n, e.length) && i.push(n)\n                            }\n                        } else\n                            for (let e = n, s = this._regions.length; e < s; e++) {\n                                let n = this._regions.toRegion(e);\n                                if (!(this._regions.getStartLineNumber(e) < o)) break;\n                                t && !t(n) || i.push(n)\n                            }\n                        return i\n                    }\n                }\n\n                function w(e, t, i = Number.MAX_VALUE, n) {\n                    let o = [];\n                    if (n && n.length > 0)\n                        for (let s of n) {\n                            let n = e.getRegionAtLine(s);\n                            if (n && (n.isCollapsed !== t && o.push(n), i > 1)) {\n                                let s = e.getRegionsInside(n, ((e, n) => e.isCollapsed !== t && n < i));\n                                o.push(...s)\n                            }\n                        } else {\n                            let n = e.getRegionsInside(null, ((e, n) => e.isCollapsed !== t && n < i));\n                            o.push(...n)\n                        }\n                    e.toggleCollapseState(o)\n                }\n\n                function y(e, t, i, n) {\n                    let o = [];\n                    for (let s of n) {\n                        let n = e.getAllRegionsAtLine(s, ((e, n) => e.isCollapsed !== t && n <= i));\n                        o.push(...n)\n                    }\n                    e.toggleCollapseState(o)\n                }\n\n                function C(e, t, i) {\n                    let n = [];\n                    for (let t of i) n.push(e.getAllRegionsAtLine(t, void 0)[0]);\n                    let o = e.getRegionsInside(null, (e => n.every((t => !t.containedBy(e) && !e.containedBy(t))) && e.isCollapsed !== t));\n                    e.toggleCollapseState(o)\n                }\n\n                function x(e, t, i) {\n                    let n = e.textModel,\n                        o = e.regions,\n                        s = [];\n                    for (let e = o.length - 1; e >= 0; e--)\n                        if (i !== o.isCollapsed(e)) {\n                            let i = o.getStartLineNumber(e);\n                            t.test(n.getLineContent(i)) && s.push(o.toRegion(e))\n                        } e.toggleCollapseState(s)\n                }\n\n                function S(e, t, i) {\n                    let n = e.regions,\n                        o = [];\n                    for (let e = n.length - 1; e >= 0; e--) i !== n.isCollapsed(e) && t === n.getType(e) && o.push(n.toRegion(e));\n                    e.toggleCollapseState(o)\n                }\n                var k = i(9488),\n                    L = i(24314);\n                class N {\n                    constructor(e) {\n                        this._updateEventEmitter = new p.Q5, this._foldingModel = e, this._foldingModelListener = e.onDidChange((e => this.updateHiddenRanges())), this._hiddenRanges = [], e.regions.length && this.updateHiddenRanges()\n                    }\n                    get onDidChange() {\n                        return this._updateEventEmitter.event\n                    }\n                    get hiddenRanges() {\n                        return this._hiddenRanges\n                    }\n                    updateHiddenRanges() {\n                        let e = !1,\n                            t = [],\n                            i = 0,\n                            n = 0,\n                            o = Number.MAX_VALUE,\n                            s = -1,\n                            r = this._foldingModel.regions;\n                        for (; i < r.length; i++) {\n                            if (!r.isCollapsed(i)) continue;\n                            let a = r.getStartLineNumber(i) + 1,\n                                l = r.getEndLineNumber(i);\n                            o <= a && l <= s || (!e && n < this._hiddenRanges.length && this._hiddenRanges[n].startLineNumber === a && this._hiddenRanges[n].endLineNumber === l ? (t.push(this._hiddenRanges[n]), n++) : (e = !0, t.push(new L.e(a, 1, l, 1))), o = a, s = l)\n                        }(e || n < this._hiddenRanges.length) && this.applyHiddenRanges(t)\n                    }\n                    applyMemento(e) {\n                        if (!Array.isArray(e) || 0 === e.length) return !1;\n                        let t = [];\n                        for (let i of e) {\n                            if (!i.startLineNumber || !i.endLineNumber) return !1;\n                            t.push(new L.e(i.startLineNumber + 1, 1, i.endLineNumber, 1))\n                        }\n                        return this.applyHiddenRanges(t), !0\n                    }\n                    getMemento() {\n                        return this._hiddenRanges.map((e => ({\n                            startLineNumber: e.startLineNumber - 1,\n                            endLineNumber: e.endLineNumber\n                        })))\n                    }\n                    applyHiddenRanges(e) {\n                        this._hiddenRanges = e, this._updateEventEmitter.fire(e)\n                    }\n                    hasRanges() {\n                        return this._hiddenRanges.length > 0\n                    }\n                    isHidden(e) {\n                        return null !== D(this._hiddenRanges, e)\n                    }\n                    adjustSelections(e) {\n                        let t = !1,\n                            i = this._foldingModel.textModel,\n                            n = null,\n                            o = e => (n && function(e, t) {\n                                return e >= t.startLineNumber && e <= t.endLineNumber\n                            }(e, n) || (n = D(this._hiddenRanges, e)), n ? n.startLineNumber - 1 : null);\n                        for (let n = 0, s = e.length; n < s; n++) {\n                            let s = e[n],\n                                r = o(s.startLineNumber);\n                            r && (s = s.setStartPosition(r, i.getLineMaxColumn(r)), t = !0);\n                            let a = o(s.endLineNumber);\n                            a && (s = s.setEndPosition(a, i.getLineMaxColumn(a)), t = !0), e[n] = s\n                        }\n                        return t\n                    }\n                    dispose() {\n                        this.hiddenRanges.length > 0 && (this._hiddenRanges = [], this._updateEventEmitter.fire(this._hiddenRanges)), this._foldingModelListener && (this._foldingModelListener.dispose(), this._foldingModelListener = null)\n                    }\n                }\n\n                function D(e, t) {\n                    let i = (0, k.lG)(e, (e => t < e.startLineNumber)) - 1;\n                    return i >= 0 && e[i].endLineNumber >= t ? e[i] : null\n                }\n                var I = i(44174);\n                class E {\n                    constructor(e) {\n                        this.editorModel = e, this.id = \"indent\"\n                    }\n                    dispose() {}\n                    compute(e) {\n                        let t = g.zu.getFoldingRules(this.editorModel.getLanguageId()),\n                            i = t && !!t.offSide,\n                            n = t && t.markers;\n                        return Promise.resolve(function(e, t, i, n = 5e3) {\n                            const o = e.getOptions().tabSize;\n                            let s, r = new T(n);\n                            i && (s = new RegExp(`(${i.start.source})|(?:${i.end.source})`));\n                            let a = [],\n                                l = e.getLineCount() + 1;\n                            a.push({\n                                indent: -1,\n                                endAbove: l,\n                                line: l\n                            });\n                            for (let i = e.getLineCount(); i > 0; i--) {\n                                let n, l = e.getLineContent(i),\n                                    c = I.yO.computeIndentLevel(l, o),\n                                    d = a[a.length - 1];\n                                if (-1 !== c) {\n                                    if (s && (n = l.match(s))) {\n                                        if (!n[1]) {\n                                            a.push({\n                                                indent: -2,\n                                                endAbove: i,\n                                                line: i\n                                            });\n                                            continue\n                                        } {\n                                            let e = a.length - 1;\n                                            for (; e > 0 && -2 !== a[e].indent;) e--;\n                                            if (e > 0) {\n                                                a.length = e + 1, d = a[e], r.insertFirst(i, d.line, c), d.line = i, d.indent = c, d.endAbove = i;\n                                                continue\n                                            }\n                                        }\n                                    }\n                                    if (d.indent > c) {\n                                        do {\n                                            a.pop(), d = a[a.length - 1]\n                                        } while (d.indent > c);\n                                        let e = d.endAbove - 1;\n                                        e - i >= 1 && r.insertFirst(i, e, c)\n                                    }\n                                    d.indent === c ? d.endAbove = i : a.push({\n                                        indent: c,\n                                        endAbove: i,\n                                        line: i\n                                    })\n                                } else t && (d.endAbove = i)\n                            }\n                            return r.toIndentRanges(e)\n                        }(this.editorModel, i, n))\n                    }\n                }\n                class T {\n                    constructor(e) {\n                        this._startIndexes = [], this._endIndexes = [], this._indentOccurrences = [], this._length = 0, this._foldingRangesLimit = e\n                    }\n                    insertFirst(e, t, i) {\n                        if (e > f || t > f) return;\n                        let n = this._length;\n                        this._startIndexes[n] = e, this._endIndexes[n] = t, this._length++, i < 1e3 && (this._indentOccurrences[i] = (this._indentOccurrences[i] || 0) + 1)\n                    }\n                    toIndentRanges(e) {\n                        if (this._length <= this._foldingRangesLimit) {\n                            let e = new Uint32Array(this._length),\n                                t = new Uint32Array(this._length);\n                            for (let i = this._length - 1, n = 0; i >= 0; i--, n++) e[n] = this._startIndexes[i], t[n] = this._endIndexes[i];\n                            return new v(e, t)\n                        } {\n                            let t = 0,\n                                i = this._indentOccurrences.length;\n                            for (let e = 0; e < this._indentOccurrences.length; e++) {\n                                let n = this._indentOccurrences[e];\n                                if (n) {\n                                    if (n + t > this._foldingRangesLimit) {\n                                        i = e;\n                                        break\n                                    }\n                                    t += n\n                                }\n                            }\n                            const n = e.getOptions().tabSize;\n                            let o = new Uint32Array(this._foldingRangesLimit),\n                                s = new Uint32Array(this._foldingRangesLimit);\n                            for (let r = this._length - 1, a = 0; r >= 0; r--) {\n                                let l = this._startIndexes[r],\n                                    c = e.getLineContent(l),\n                                    d = I.yO.computeIndentLevel(c, n);\n                                (d < i || d === i && t++ < this._foldingRangesLimit) && (o[a] = l, s[a] = this._endIndexes[r], a++)\n                            }\n                            return new v(o, s)\n                        }\n                    }\n                }\n                const M = {},\n                    A = \"syntax\";\n                class O {\n                    constructor(e, t, i, n = 5e3) {\n                        this.editorModel = e, this.providers = t, this.limit = n, this.id = A;\n                        for (const e of t) \"function\" == typeof e.onDidChange && (this.disposables || (this.disposables = new r.SL), this.disposables.add(e.onDidChange(i)))\n                    }\n                    compute(e) {\n                        return function(e, t, i) {\n                            let n = null,\n                                s = e.map(((e, s) => Promise.resolve(e.provideFoldingRanges(t, M, i)).then((e => {\n                                    if (!i.isCancellationRequested && Array.isArray(e)) {\n                                        Array.isArray(n) || (n = []);\n                                        let i = t.getLineCount();\n                                        for (let t of e) t.start > 0 && t.end > t.start && t.end <= i && n.push({\n                                            start: t.start,\n                                            end: t.end,\n                                            rank: s,\n                                            kind: t.kind\n                                        })\n                                    }\n                                }), o.Cp)));\n                            return Promise.all(s).then((e => n))\n                        }(this.providers, this.editorModel, e).then((e => {\n                            if (e) {\n                                return R(e, this.limit)\n                            }\n                            return null\n                        }))\n                    }\n                    dispose() {\n                        var e;\n                        null === (e = this.disposables) || void 0 === e || e.dispose()\n                    }\n                }\n                class P {\n                    constructor(e) {\n                        this._startIndexes = [], this._endIndexes = [], this._nestingLevels = [], this._nestingLevelCounts = [], this._types = [], this._length = 0, this._foldingRangesLimit = e\n                    }\n                    add(e, t, i, n) {\n                        if (e > f || t > f) return;\n                        let o = this._length;\n                        this._startIndexes[o] = e, this._endIndexes[o] = t, this._nestingLevels[o] = n, this._types[o] = i, this._length++, n < 30 && (this._nestingLevelCounts[n] = (this._nestingLevelCounts[n] || 0) + 1)\n                    }\n                    toIndentRanges() {\n                        if (this._length <= this._foldingRangesLimit) {\n                            let e = new Uint32Array(this._length),\n                                t = new Uint32Array(this._length);\n                            for (let i = 0; i < this._length; i++) e[i] = this._startIndexes[i], t[i] = this._endIndexes[i];\n                            return new v(e, t, this._types)\n                        } {\n                            let e = 0,\n                                t = this._nestingLevelCounts.length;\n                            for (let i = 0; i < this._nestingLevelCounts.length; i++) {\n                                let n = this._nestingLevelCounts[i];\n                                if (n) {\n                                    if (n + e > this._foldingRangesLimit) {\n                                        t = i;\n                                        break\n                                    }\n                                    e += n\n                                }\n                            }\n                            let i = new Uint32Array(this._foldingRangesLimit),\n                                n = new Uint32Array(this._foldingRangesLimit),\n                                o = [];\n                            for (let s = 0, r = 0; s < this._length; s++) {\n                                let a = this._nestingLevels[s];\n                                (a < t || a === t && e++ < this._foldingRangesLimit) && (i[r] = this._startIndexes[s], n[r] = this._endIndexes[s], o[r] = this._types[s], r++)\n                            }\n                            return new v(i, n, o)\n                        }\n                    }\n                }\n\n                function R(e, t) {\n                    let i, n = e.sort(((e, t) => {\n                            let i = e.start - t.start;\n                            return 0 === i && (i = e.rank - t.rank), i\n                        })),\n                        o = new P(t),\n                        s = [];\n                    for (let e of n)\n                        if (i) {\n                            if (e.start > i.start)\n                                if (e.end <= i.end) s.push(i), i = e, o.add(e.start, e.end, e.kind && e.kind.value, s.length);\n                                else {\n                                    if (e.start > i.end) {\n                                        do {\n                                            i = s.pop()\n                                        } while (i && e.start > i.end);\n                                        i && s.push(i), i = e\n                                    }\n                                    o.add(e.start, e.end, e.kind && e.kind.value, s.length)\n                                }\n                        } else i = e, o.add(e.start, e.end, e.kind && e.kind.value, s.length);\n                    return o.toIndentRanges()\n                }\n                const F = \"init\";\n                class B {\n                    constructor(e, t, i, n) {\n                        if (this.editorModel = e, this.id = F, t.length) {\n                            let o = t => ({\n                                range: {\n                                    startLineNumber: t.startLineNumber,\n                                    startColumn: 0,\n                                    endLineNumber: t.endLineNumber,\n                                    endColumn: e.getLineLength(t.endLineNumber)\n                                },\n                                options: {\n                                    description: \"folding-initializing-range-provider\",\n                                    stickiness: 1\n                                }\n                            });\n                            this.decorationIds = e.deltaDecorations([], t.map(o)), this.timeout = setTimeout(i, n)\n                        }\n                    }\n                    dispose() {\n                        this.decorationIds && (this.editorModel.deltaDecorations(this.decorationIds, []), this.decorationIds = void 0), \"number\" == typeof this.timeout && (clearTimeout(this.timeout), this.timeout = void 0)\n                    }\n                    compute(e) {\n                        let t = [];\n                        if (this.decorationIds)\n                            for (let e of this.decorationIds) {\n                                let i = this.editorModel.getDecorationRange(e);\n                                i && t.push({\n                                    start: i.startLineNumber,\n                                    end: i.endLineNumber,\n                                    rank: 1\n                                })\n                            }\n                        return Promise.resolve(R(t, Number.MAX_VALUE))\n                    }\n                }\n                var V = i(63580),\n                    W = i(38819),\n                    H = i(73910),\n                    z = i(97781),\n                    j = i(73046),\n                    U = i(59554);\n                const $ = (0, U.q5)(\"folding-expanded\", j.lA.chevronDown, (0, V.N)(\"foldingExpandedIcon\", \"Icon for expanded ranges in the editor glyph margin.\")),\n                    K = (0, U.q5)(\"folding-collapsed\", j.lA.chevronRight, (0, V.N)(\"foldingCollapsedIcon\", \"Icon for collapsed ranges in the editor glyph margin.\"));\n                class q {\n                    constructor(e) {\n                        this.editor = e, this.autoHideFoldingControls = !0, this.showFoldingHighlights = !0\n                    }\n                    getDecorationOption(e, t) {\n                        return t ? q.HIDDEN_RANGE_DECORATION : e ? this.showFoldingHighlights ? q.COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION : q.COLLAPSED_VISUAL_DECORATION : this.autoHideFoldingControls ? q.EXPANDED_AUTO_HIDE_VISUAL_DECORATION : q.EXPANDED_VISUAL_DECORATION\n                    }\n                    deltaDecorations(e, t) {\n                        return this.editor.deltaDecorations(e, t)\n                    }\n                    changeDecorations(e) {\n                        return this.editor.changeDecorations(e)\n                    }\n                }\n                q.COLLAPSED_VISUAL_DECORATION = I.qx.register({\n                    description: \"folding-collapsed-visual-decoration\",\n                    stickiness: 1,\n                    afterContentClassName: \"inline-folded\",\n                    isWholeLine: !0,\n                    firstLineDecorationClassName: z.kS.asClassName(K)\n                }), q.COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION = I.qx.register({\n                    description: \"folding-collapsed-highlighted-visual-decoration\",\n                    stickiness: 1,\n                    afterContentClassName: \"inline-folded\",\n                    className: \"folded-background\",\n                    isWholeLine: !0,\n                    firstLineDecorationClassName: z.kS.asClassName(K)\n                }), q.EXPANDED_AUTO_HIDE_VISUAL_DECORATION = I.qx.register({\n                    description: \"folding-expanded-auto-hide-visual-decoration\",\n                    stickiness: 1,\n                    isWholeLine: !0,\n                    firstLineDecorationClassName: z.kS.asClassName($)\n                }), q.EXPANDED_VISUAL_DECORATION = I.qx.register({\n                    description: \"folding-expanded-visual-decoration\",\n                    stickiness: 1,\n                    isWholeLine: !0,\n                    firstLineDecorationClassName: \"alwaysShowFoldIcons \" + z.kS.asClassName($)\n                }), q.HIDDEN_RANGE_DECORATION = I.qx.register({\n                    description: \"folding-hidden-range-decoration\",\n                    stickiness: 1\n                });\n                var Z = function(e, t, i, n) {\n                        var o, s = arguments.length,\n                            r = s < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n                        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) r = Reflect.decorate(e, t, i, n);\n                        else\n                            for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (r = (s < 3 ? o(r) : s > 3 ? o(t, i, r) : o(t, i)) || r);\n                        return s > 3 && r && Object.defineProperty(t, i, r), r\n                    },\n                    G = function(e, t) {\n                        return function(i, n) {\n                            t(i, n, e)\n                        }\n                    };\n                const Y = new W.uy(\"foldingEnabled\", !1);\n                let Q = class e extends r.JT {\n                    constructor(e, t) {\n                        super(), this.contextKeyService = t, this.localToDispose = this._register(new r.SL), this.editor = e;\n                        const i = this.editor.getOptions();\n                        this._isEnabled = i.get(37), this._useFoldingProviders = \"indentation\" !== i.get(38), this._unfoldOnClickAfterEndOfLine = i.get(41), this._restoringViewState = !1, this._currentModelHasFoldedImports = !1, this._foldingImportsByDefault = i.get(40), this.foldingModel = null, this.hiddenRangeModel = null, this.rangeProvider = null, this.foldingRegionPromise = null, this.foldingStateMemento = null, this.foldingModelPromise = null, this.updateScheduler = null, this.cursorChangedScheduler = null, this.mouseDownInfo = null, this.foldingDecorationProvider = new q(e), this.foldingDecorationProvider.autoHideFoldingControls = \"mouseover\" === i.get(98), this.foldingDecorationProvider.showFoldingHighlights = i.get(39), this.foldingEnabled = Y.bindTo(this.contextKeyService), this.foldingEnabled.set(this._isEnabled), this._register(this.editor.onDidChangeModel((() => this.onModelChanged()))), this._register(this.editor.onDidChangeConfiguration((e => {\n                            if (e.hasChanged(37) && (this._isEnabled = this.editor.getOptions().get(37), this.foldingEnabled.set(this._isEnabled), this.onModelChanged()), e.hasChanged(98) || e.hasChanged(39)) {\n                                const e = this.editor.getOptions();\n                                this.foldingDecorationProvider.autoHideFoldingControls = \"mouseover\" === e.get(98), this.foldingDecorationProvider.showFoldingHighlights = e.get(39), this.onModelContentChanged()\n                            }\n                            e.hasChanged(38) && (this._useFoldingProviders = \"indentation\" !== this.editor.getOptions().get(38), this.onFoldingStrategyChanged()), e.hasChanged(41) && (this._unfoldOnClickAfterEndOfLine = this.editor.getOptions().get(41)), e.hasChanged(40) && (this._foldingImportsByDefault = this.editor.getOptions().get(40))\n                        }))), this.onModelChanged()\n                    }\n                    static get(t) {\n                        return t.getContribution(e.ID)\n                    }\n                    saveViewState() {\n                        let e = this.editor.getModel();\n                        if (!e || !this._isEnabled || e.isTooLargeForTokenization()) return {};\n                        if (this.foldingModel) {\n                            let t = this.foldingModel.isInitialized ? this.foldingModel.getMemento() : this.hiddenRangeModel.getMemento(),\n                                i = this.rangeProvider ? this.rangeProvider.id : void 0;\n                            return {\n                                collapsedRegions: t,\n                                lineCount: e.getLineCount(),\n                                provider: i,\n                                foldedImports: this._currentModelHasFoldedImports\n                            }\n                        }\n                    }\n                    restoreViewState(e) {\n                        let t = this.editor.getModel();\n                        if (!t || !this._isEnabled || t.isTooLargeForTokenization() || !this.hiddenRangeModel) return;\n                        if (!e || e.lineCount !== t.getLineCount()) return;\n                        if (this._currentModelHasFoldedImports = !!e.foldedImports, !e.collapsedRegions) return;\n                        e.provider !== A && e.provider !== F || (this.foldingStateMemento = e);\n                        const i = e.collapsedRegions;\n                        if (this.hiddenRangeModel.applyMemento(i)) {\n                            const e = this.getFoldingModel();\n                            e && e.then((e => {\n                                if (e) {\n                                    this._restoringViewState = !0;\n                                    try {\n                                        e.applyMemento(i)\n                                    } finally {\n                                        this._restoringViewState = !1\n                                    }\n                                }\n                            })).then(void 0, o.dL)\n                        }\n                    }\n                    onModelChanged() {\n                        this.localToDispose.clear();\n                        let e = this.editor.getModel();\n                        this._isEnabled && e && !e.isTooLargeForTokenization() && (this._currentModelHasFoldedImports = !1, this.foldingModel = new b(e, this.foldingDecorationProvider), this.localToDispose.add(this.foldingModel), this.hiddenRangeModel = new N(this.foldingModel), this.localToDispose.add(this.hiddenRangeModel), this.localToDispose.add(this.hiddenRangeModel.onDidChange((e => this.onHiddenRangesChanges(e)))), this.updateScheduler = new n.vp(200), this.cursorChangedScheduler = new n.pY((() => this.revealCursor()), 200), this.localToDispose.add(this.cursorChangedScheduler), this.localToDispose.add(u.aC.onDidChange((() => this.onFoldingStrategyChanged()))), this.localToDispose.add(this.editor.onDidChangeModelLanguageConfiguration((() => this.onFoldingStrategyChanged()))), this.localToDispose.add(this.editor.onDidChangeModelContent((() => this.onModelContentChanged()))), this.localToDispose.add(this.editor.onDidChangeCursorPosition((() => this.onCursorPositionChanged()))), this.localToDispose.add(this.editor.onMouseDown((e => this.onEditorMouseDown(e)))), this.localToDispose.add(this.editor.onMouseUp((e => this.onEditorMouseUp(e)))), this.localToDispose.add({\n                            dispose: () => {\n                                this.foldingRegionPromise && (this.foldingRegionPromise.cancel(), this.foldingRegionPromise = null), this.updateScheduler && this.updateScheduler.cancel(), this.updateScheduler = null, this.foldingModel = null, this.foldingModelPromise = null, this.hiddenRangeModel = null, this.cursorChangedScheduler = null, this.foldingStateMemento = null, this.rangeProvider && this.rangeProvider.dispose(), this.rangeProvider = null\n                            }\n                        }), this.onModelContentChanged())\n                    }\n                    onFoldingStrategyChanged() {\n                        this.rangeProvider && this.rangeProvider.dispose(), this.rangeProvider = null, this.onModelContentChanged()\n                    }\n                    getRangeProvider(e) {\n                        if (this.rangeProvider) return this.rangeProvider;\n                        if (this.rangeProvider = new E(e), this._useFoldingProviders && this.foldingModel) {\n                            let t = u.aC.ordered(this.foldingModel.textModel);\n                            if (0 === t.length && this.foldingStateMemento && this.foldingStateMemento.collapsedRegions) {\n                                return this.rangeProvider = new B(e, this.foldingStateMemento.collapsedRegions, (() => {\n                                    this.foldingStateMemento = null, this.onFoldingStrategyChanged()\n                                }), 3e4)\n                            }\n                            t.length > 0 && (this.rangeProvider = new O(e, t, (() => this.onModelContentChanged())))\n                        }\n                        return this.foldingStateMemento = null, this.rangeProvider\n                    }\n                    getFoldingModel() {\n                        return this.foldingModelPromise\n                    }\n                    onModelContentChanged() {\n                        this.updateScheduler && (this.foldingRegionPromise && (this.foldingRegionPromise.cancel(), this.foldingRegionPromise = null), this.foldingModelPromise = this.updateScheduler.trigger((() => {\n                            const e = this.foldingModel;\n                            if (!e) return null;\n                            const t = this.getRangeProvider(e.textModel);\n                            let i = this.foldingRegionPromise = (0, n.PG)((e => t.compute(e)));\n                            return i.then((t => {\n                                if (t && i === this.foldingRegionPromise) {\n                                    let i;\n                                    if (this._foldingImportsByDefault && !this._currentModelHasFoldedImports) {\n                                        const e = t.setCollapsedAllOfType(u.AD.Imports.value, !0);\n                                        e && (i = c.ZF.capture(this.editor), this._currentModelHasFoldedImports = e)\n                                    }\n                                    let n = this.editor.getSelections(),\n                                        o = n ? n.map((e => e.startLineNumber)) : [];\n                                    e.update(t, o), i && i.restore(this.editor)\n                                }\n                                return e\n                            }))\n                        })).then(void 0, (e => ((0, o.dL)(e), null))))\n                    }\n                    onHiddenRangesChanges(e) {\n                        if (this.hiddenRangeModel && e.length && !this._restoringViewState) {\n                            let e = this.editor.getSelections();\n                            e && this.hiddenRangeModel.adjustSelections(e) && this.editor.setSelections(e)\n                        }\n                        this.editor.setHiddenAreas(e)\n                    }\n                    onCursorPositionChanged() {\n                        this.hiddenRangeModel && this.hiddenRangeModel.hasRanges() && this.cursorChangedScheduler.schedule()\n                    }\n                    revealCursor() {\n                        const e = this.getFoldingModel();\n                        e && e.then((e => {\n                            if (e) {\n                                let t = this.editor.getSelections();\n                                if (t && t.length > 0) {\n                                    let i = [];\n                                    for (let n of t) {\n                                        let t = n.selectionStartLineNumber;\n                                        this.hiddenRangeModel && this.hiddenRangeModel.isHidden(t) && i.push(...e.getAllRegionsAtLine(t, (e => e.isCollapsed && t > e.startLineNumber)))\n                                    }\n                                    i.length && (e.toggleCollapseState(i), this.reveal(t[0].getPosition()))\n                                }\n                            }\n                        })).then(void 0, o.dL)\n                    }\n                    onEditorMouseDown(e) {\n                        if (this.mouseDownInfo = null, !this.hiddenRangeModel || !e.target || !e.target.range) return;\n                        if (!e.event.leftButton && !e.event.middleButton) return;\n                        const t = e.target.range;\n                        let i = !1;\n                        switch (e.target.type) {\n                            case 4:\n                                const n = e.target.detail,\n                                    o = e.target.element.offsetLeft;\n                                if (n.offsetX - o < 5) return;\n                                i = !0;\n                                break;\n                            case 7:\n                                if (this._unfoldOnClickAfterEndOfLine && this.hiddenRangeModel.hasRanges()) {\n                                    if (!e.target.detail.isAfterLines) break\n                                }\n                                return;\n                            case 6:\n                                if (this.hiddenRangeModel.hasRanges()) {\n                                    let e = this.editor.getModel();\n                                    if (e && t.startColumn === e.getLineMaxColumn(t.startLineNumber)) break\n                                }\n                                return;\n                            default:\n                                return\n                        }\n                        this.mouseDownInfo = {\n                            lineNumber: t.startLineNumber,\n                            iconClicked: i\n                        }\n                    }\n                    onEditorMouseUp(e) {\n                        const t = this.getFoldingModel();\n                        if (!t || !this.mouseDownInfo || !e.target) return;\n                        let i = this.mouseDownInfo.lineNumber,\n                            n = this.mouseDownInfo.iconClicked,\n                            s = e.target.range;\n                        if (s && s.startLineNumber === i) {\n                            if (n) {\n                                if (4 !== e.target.type) return\n                            } else {\n                                let e = this.editor.getModel();\n                                if (!e || s.startColumn !== e.getLineMaxColumn(i)) return\n                            }\n                            t.then((t => {\n                                if (t) {\n                                    let o = t.getRegionAtLine(i);\n                                    if (o && o.startLineNumber === i) {\n                                        let s = o.isCollapsed;\n                                        if (n || s) {\n                                            let n = [];\n                                            if (e.event.altKey) {\n                                                let e = e => !e.containedBy(o) && !o.containedBy(e),\n                                                    i = t.getRegionsInside(null, e);\n                                                for (const e of i) e.isCollapsed && n.push(e);\n                                                0 === n.length && (n = i)\n                                            } else {\n                                                let i = e.event.middleButton || e.event.shiftKey;\n                                                if (i)\n                                                    for (const e of t.getRegionsInside(o)) e.isCollapsed === s && n.push(e);\n                                                !s && i && 0 !== n.length || n.push(o)\n                                            }\n                                            t.toggleCollapseState(n), this.reveal({\n                                                lineNumber: i,\n                                                column: 1\n                                            })\n                                        }\n                                    }\n                                }\n                            })).then(void 0, o.dL)\n                        }\n                    }\n                    reveal(e) {\n                        this.editor.revealPositionInCenterIfOutsideViewport(e, 0)\n                    }\n                };\n                Q.ID = \"editor.contrib.folding\", Q = Z([G(1, W.i6)], Q);\n                class X extends d.R6 {\n                    runEditorCommand(e, t, i) {\n                        let n = Q.get(t);\n                        if (!n) return;\n                        let o = n.getFoldingModel();\n                        return o ? (this.reportTelemetry(e, t), o.then((e => {\n                            if (e) {\n                                this.invoke(n, e, t, i);\n                                const o = t.getSelection();\n                                o && n.reveal(o.getStartPosition())\n                            }\n                        }))) : void 0\n                    }\n                    getSelectedLines(e) {\n                        let t = e.getSelections();\n                        return t ? t.map((e => e.startLineNumber)) : []\n                    }\n                    getLineNumbers(e, t) {\n                        return e && e.selectionLines ? e.selectionLines.map((e => e + 1)) : this.getSelectedLines(t)\n                    }\n                    run(e, t) {}\n                }\n\n                function J(e) {\n                    if (!l.o8(e)) {\n                        if (!l.Kn(e)) return !1;\n                        const t = e;\n                        if (!l.o8(t.levels) && !l.hj(t.levels)) return !1;\n                        if (!l.o8(t.direction) && !l.HD(t.direction)) return !1;\n                        if (!(l.o8(t.selectionLines) || l.kJ(t.selectionLines) && t.selectionLines.every(l.hj))) return !1\n                    }\n                    return !0\n                }\n                class ee extends X {\n                    getFoldingLevel() {\n                        return parseInt(this.id.substr(ee.ID_PREFIX.length))\n                    }\n                    invoke(e, t, i) {\n                        ! function(e, t, i, n) {\n                            let o = e.getRegionsInside(null, ((e, o) => o === t && e.isCollapsed !== i && !n.some((t => e.containsLine(t)))));\n                            e.toggleCollapseState(o)\n                        }(t, this.getFoldingLevel(), !0, this.getSelectedLines(i))\n                    }\n                }\n                ee.ID_PREFIX = \"editor.foldLevel\", ee.ID = e => ee.ID_PREFIX + e;\n                (0, d._K)(Q.ID, Q), (0, d.Qr)(class extends X {\n                    constructor() {\n                        super({\n                            id: \"editor.unfold\",\n                            label: V.N(\"unfoldAction.label\", \"Unfold\"),\n                            alias: \"Unfold\",\n                            precondition: Y,\n                            kbOpts: {\n                                kbExpr: h.u.editorTextFocus,\n                                primary: 3161,\n                                mac: {\n                                    primary: 2649\n                                },\n                                weight: 100\n                            },\n                            description: {\n                                description: \"Unfold the content in the editor\",\n                                args: [{\n                                    name: \"Unfold editor argument\",\n                                    description: \"Property-value pairs that can be passed through this argument:\\n\\t\\t\\t\\t\\t\\t* 'levels': Number of levels to unfold. If not set, defaults to 1.\\n\\t\\t\\t\\t\\t\\t* 'direction': If 'up', unfold given number of levels up otherwise unfolds down.\\n\\t\\t\\t\\t\\t\\t* 'selectionLines': 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.\\n\\t\\t\\t\\t\\t\\t\",\n                                    constraint: J,\n                                    schema: {\n                                        type: \"object\",\n                                        properties: {\n                                            levels: {\n                                                type: \"number\",\n                                                default: 1\n                                            },\n                                            direction: {\n                                                type: \"string\",\n                                                enum: [\"up\", \"down\"],\n                                                default: \"down\"\n                                            },\n                                            selectionLines: {\n                                                type: \"array\",\n                                                items: {\n                                                    type: \"number\"\n                                                }\n                                            }\n                                        }\n                                    }\n                                }]\n                            }\n                        })\n                    }\n                    invoke(e, t, i, n) {\n                        let o = n && n.levels || 1,\n                            s = this.getLineNumbers(n, i);\n                        n && \"up\" === n.direction ? y(t, !1, o, s) : w(t, !1, o, s)\n                    }\n                }), (0, d.Qr)(class extends X {\n                    constructor() {\n                        super({\n                            id: \"editor.unfoldRecursively\",\n                            label: V.N(\"unFoldRecursivelyAction.label\", \"Unfold Recursively\"),\n                            alias: \"Unfold Recursively\",\n                            precondition: Y,\n                            kbOpts: {\n                                kbExpr: h.u.editorTextFocus,\n                                primary: (0, s.gx)(2089, 2137),\n                                weight: 100\n                            }\n                        })\n                    }\n                    invoke(e, t, i, n) {\n                        w(t, !1, Number.MAX_VALUE, this.getSelectedLines(i))\n                    }\n                }), (0, d.Qr)(class extends X {\n                    constructor() {\n                        super({\n                            id: \"editor.fold\",\n                            label: V.N(\"foldAction.label\", \"Fold\"),\n                            alias: \"Fold\",\n                            precondition: Y,\n                            kbOpts: {\n                                kbExpr: h.u.editorTextFocus,\n                                primary: 3159,\n                                mac: {\n                                    primary: 2647\n                                },\n                                weight: 100\n                            },\n                            description: {\n                                description: \"Fold the content in the editor\",\n                                args: [{\n                                    name: \"Fold editor argument\",\n                                    description: \"Property-value pairs that can be passed through this argument:\\n\\t\\t\\t\\t\\t\\t\\t* 'levels': Number of levels to fold.\\n\\t\\t\\t\\t\\t\\t\\t* 'direction': If 'up', folds given number of levels up otherwise folds down.\\n\\t\\t\\t\\t\\t\\t\\t* 'selectionLines': 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.\\n\\t\\t\\t\\t\\t\\t\\tIf no levels or direction is set, folds the region at the locations or if already collapsed, the first uncollapsed parent instead.\\n\\t\\t\\t\\t\\t\\t\",\n                                    constraint: J,\n                                    schema: {\n                                        type: \"object\",\n                                        properties: {\n                                            levels: {\n                                                type: \"number\"\n                                            },\n                                            direction: {\n                                                type: \"string\",\n                                                enum: [\"up\", \"down\"]\n                                            },\n                                            selectionLines: {\n                                                type: \"array\",\n                                                items: {\n                                                    type: \"number\"\n                                                }\n                                            }\n                                        }\n                                    }\n                                }]\n                            }\n                        })\n                    }\n                    invoke(e, t, i, n) {\n                        let o = this.getLineNumbers(n, i);\n                        const s = n && n.levels,\n                            r = n && n.direction;\n                        \"number\" != typeof s && \"string\" != typeof r ? function(e, t, i) {\n                            let n = [];\n                            for (let o of i) {\n                                let i = e.getAllRegionsAtLine(o, (e => e.isCollapsed !== t));\n                                i.length > 0 && n.push(i[0])\n                            }\n                            e.toggleCollapseState(n)\n                        }(t, !0, o) : \"up\" === r ? y(t, !0, s || 1, o) : w(t, !0, s || 1, o)\n                    }\n                }), (0, d.Qr)(class extends X {\n                    constructor() {\n                        super({\n                            id: \"editor.foldRecursively\",\n                            label: V.N(\"foldRecursivelyAction.label\", \"Fold Recursively\"),\n                            alias: \"Fold Recursively\",\n                            precondition: Y,\n                            kbOpts: {\n                                kbExpr: h.u.editorTextFocus,\n                                primary: (0, s.gx)(2089, 2135),\n                                weight: 100\n                            }\n                        })\n                    }\n                    invoke(e, t, i) {\n                        let n = this.getSelectedLines(i);\n                        w(t, !0, Number.MAX_VALUE, n)\n                    }\n                }), (0, d.Qr)(class extends X {\n                    constructor() {\n                        super({\n                            id: \"editor.foldAll\",\n                            label: V.N(\"foldAllAction.label\", \"Fold All\"),\n                            alias: \"Fold All\",\n                            precondition: Y,\n                            kbOpts: {\n                                kbExpr: h.u.editorTextFocus,\n                                primary: (0, s.gx)(2089, 2069),\n                                weight: 100\n                            }\n                        })\n                    }\n                    invoke(e, t, i) {\n                        w(t, !0)\n                    }\n                }), (0, d.Qr)(class extends X {\n                    constructor() {\n                        super({\n                            id: \"editor.unfoldAll\",\n                            label: V.N(\"unfoldAllAction.label\", \"Unfold All\"),\n                            alias: \"Unfold All\",\n                            precondition: Y,\n                            kbOpts: {\n                                kbExpr: h.u.editorTextFocus,\n                                primary: (0, s.gx)(2089, 2088),\n                                weight: 100\n                            }\n                        })\n                    }\n                    invoke(e, t, i) {\n                        w(t, !1)\n                    }\n                }), (0, d.Qr)(class extends X {\n                    constructor() {\n                        super({\n                            id: \"editor.foldAllBlockComments\",\n                            label: V.N(\"foldAllBlockComments.label\", \"Fold All Block Comments\"),\n                            alias: \"Fold All Block Comments\",\n                            precondition: Y,\n                            kbOpts: {\n                                kbExpr: h.u.editorTextFocus,\n                                primary: (0, s.gx)(2089, 2133),\n                                weight: 100\n                            }\n                        })\n                    }\n                    invoke(e, t, i) {\n                        if (t.regions.hasTypes()) S(t, u.AD.Comment.value, !0);\n                        else {\n                            const e = i.getModel();\n                            if (!e) return;\n                            const n = g.zu.getComments(e.getLanguageId());\n                            if (n && n.blockCommentStartToken) {\n                                x(t, new RegExp(\"^\\\\s*\" + (0, a.ec)(n.blockCommentStartToken)), !0)\n                            }\n                        }\n                    }\n                }), (0, d.Qr)(class extends X {\n                    constructor() {\n                        super({\n                            id: \"editor.foldAllMarkerRegions\",\n                            label: V.N(\"foldAllMarkerRegions.label\", \"Fold All Regions\"),\n                            alias: \"Fold All Regions\",\n                            precondition: Y,\n                            kbOpts: {\n                                kbExpr: h.u.editorTextFocus,\n                                primary: (0, s.gx)(2089, 2077),\n                                weight: 100\n                            }\n                        })\n                    }\n                    invoke(e, t, i) {\n                        if (t.regions.hasTypes()) S(t, u.AD.Region.value, !0);\n                        else {\n                            const e = i.getModel();\n                            if (!e) return;\n                            const n = g.zu.getFoldingRules(e.getLanguageId());\n                            if (n && n.markers && n.markers.start) {\n                                x(t, new RegExp(n.markers.start), !0)\n                            }\n                        }\n                    }\n                }), (0, d.Qr)(class extends X {\n                    constructor() {\n                        super({\n                            id: \"editor.unfoldAllMarkerRegions\",\n                            label: V.N(\"unfoldAllMarkerRegions.label\", \"Unfold All Regions\"),\n                            alias: \"Unfold All Regions\",\n                            precondition: Y,\n                            kbOpts: {\n                                kbExpr: h.u.editorTextFocus,\n                                primary: (0, s.gx)(2089, 2078),\n                                weight: 100\n                            }\n                        })\n                    }\n                    invoke(e, t, i) {\n                        if (t.regions.hasTypes()) S(t, u.AD.Region.value, !1);\n                        else {\n                            const e = i.getModel();\n                            if (!e) return;\n                            const n = g.zu.getFoldingRules(e.getLanguageId());\n                            if (n && n.markers && n.markers.start) {\n                                x(t, new RegExp(n.markers.start), !1)\n                            }\n                        }\n                    }\n                }), (0, d.Qr)(class extends X {\n                    constructor() {\n                        super({\n                            id: \"editor.foldAllExcept\",\n                            label: V.N(\"foldAllExcept.label\", \"Fold All Regions Except Selected\"),\n                            alias: \"Fold All Regions Except Selected\",\n                            precondition: Y,\n                            kbOpts: {\n                                kbExpr: h.u.editorTextFocus,\n                                primary: (0, s.gx)(2089, 2131),\n                                weight: 100\n                            }\n                        })\n                    }\n                    invoke(e, t, i) {\n                        C(t, !0, this.getSelectedLines(i))\n                    }\n                }), (0, d.Qr)(class extends X {\n                    constructor() {\n                        super({\n                            id: \"editor.unfoldAllExcept\",\n                            label: V.N(\"unfoldAllExcept.label\", \"Unfold All Regions Except Selected\"),\n                            alias: \"Unfold All Regions Except Selected\",\n                            precondition: Y,\n                            kbOpts: {\n                                kbExpr: h.u.editorTextFocus,\n                                primary: (0, s.gx)(2089, 2129),\n                                weight: 100\n                            }\n                        })\n                    }\n                    invoke(e, t, i) {\n                        C(t, !1, this.getSelectedLines(i))\n                    }\n                }), (0, d.Qr)(class extends X {\n                    constructor() {\n                        super({\n                            id: \"editor.toggleFold\",\n                            label: V.N(\"toggleFoldAction.label\", \"Toggle Fold\"),\n                            alias: \"Toggle Fold\",\n                            precondition: Y,\n                            kbOpts: {\n                                kbExpr: h.u.editorTextFocus,\n                                primary: (0, s.gx)(2089, 2090),\n                                weight: 100\n                            }\n                        })\n                    }\n                    invoke(e, t, i) {\n                        ! function(e, t, i) {\n                            let n = [];\n                            for (let o of i) {\n                                let i = e.getRegionAtLine(o);\n                                if (i) {\n                                    const o = !i.isCollapsed;\n                                    if (n.push(i), t > 1) {\n                                        let s = e.getRegionsInside(i, ((e, i) => e.isCollapsed !== o && i < t));\n                                        n.push(...s)\n                                    }\n                                }\n                            }\n                            e.toggleCollapseState(n)\n                        }(t, 1, this.getSelectedLines(i))\n                    }\n                }), (0, d.Qr)(class extends X {\n                    constructor() {\n                        super({\n                            id: \"editor.gotoParentFold\",\n                            label: V.N(\"gotoParentFold.label\", \"Go to Parent Fold\"),\n                            alias: \"Go to Parent Fold\",\n                            precondition: Y,\n                            kbOpts: {\n                                kbExpr: h.u.editorTextFocus,\n                                weight: 100\n                            }\n                        })\n                    }\n                    invoke(e, t, i) {\n                        let n = this.getSelectedLines(i);\n                        if (n.length > 0) {\n                            let e = function(e, t) {\n                                let i = null,\n                                    n = t.getRegionAtLine(e);\n                                if (null !== n && (i = n.startLineNumber, e === i)) {\n                                    let e = n.parentIndex;\n                                    i = -1 !== e ? t.regions.getStartLineNumber(e) : null\n                                }\n                                return i\n                            }(n[0], t);\n                            null !== e && i.setSelection({\n                                startLineNumber: e,\n                                startColumn: 1,\n                                endLineNumber: e,\n                                endColumn: 1\n                            })\n                        }\n                    }\n                }), (0, d.Qr)(class extends X {\n                    constructor() {\n                        super({\n                            id: \"editor.gotoPreviousFold\",\n                            label: V.N(\"gotoPreviousFold.label\", \"Go to Previous Folding Range\"),\n                            alias: \"Go to Previous Folding Range\",\n                            precondition: Y,\n                            kbOpts: {\n                                kbExpr: h.u.editorTextFocus,\n                                weight: 100\n                            }\n                        })\n                    }\n                    invoke(e, t, i) {\n                        let n = this.getSelectedLines(i);\n                        if (n.length > 0) {\n                            let e = function(e, t) {\n                                let i = t.getRegionAtLine(e);\n                                if (null !== i && i.startLineNumber === e) {\n                                    if (e !== i.startLineNumber) return i.startLineNumber; {\n                                        let e = i.parentIndex,\n                                            n = 0;\n                                        for (-1 !== e && (n = t.regions.getStartLineNumber(i.parentIndex)); null !== i;) {\n                                            if (!(i.regionIndex > 0)) return null;\n                                            if (i = t.regions.toRegion(i.regionIndex - 1), i.startLineNumber <= n) return null;\n                                            if (i.parentIndex === e) return i.startLineNumber\n                                        }\n                                    }\n                                } else if (t.regions.length > 0)\n                                    for (i = t.regions.toRegion(t.regions.length - 1); null !== i;) {\n                                        if (i.startLineNumber < e) return i.startLineNumber;\n                                        i = i.regionIndex > 0 ? t.regions.toRegion(i.regionIndex - 1) : null\n                                    }\n                                return null\n                            }(n[0], t);\n                            null !== e && i.setSelection({\n                                startLineNumber: e,\n                                startColumn: 1,\n                                endLineNumber: e,\n                                endColumn: 1\n                            })\n                        }\n                    }\n                }), (0, d.Qr)(class extends X {\n                    constructor() {\n                        super({\n                            id: \"editor.gotoNextFold\",\n                            label: V.N(\"gotoNextFold.label\", \"Go to Next Folding Range\"),\n                            alias: \"Go to Next Folding Range\",\n                            precondition: Y,\n                            kbOpts: {\n                                kbExpr: h.u.editorTextFocus,\n                                weight: 100\n                            }\n                        })\n                    }\n                    invoke(e, t, i) {\n                        let n = this.getSelectedLines(i);\n                        if (n.length > 0) {\n                            let e = function(e, t) {\n                                let i = t.getRegionAtLine(e);\n                                if (null !== i && i.startLineNumber === e) {\n                                    let e = i.parentIndex,\n                                        n = 0;\n                                    if (-1 !== e) n = t.regions.getEndLineNumber(i.parentIndex);\n                                    else {\n                                        if (0 === t.regions.length) return null;\n                                        n = t.regions.getEndLineNumber(t.regions.length - 1)\n                                    }\n                                    for (; null !== i;) {\n                                        if (!(i.regionIndex < t.regions.length)) return null;\n                                        if (i = t.regions.toRegion(i.regionIndex + 1), i.startLineNumber >= n) return null;\n                                        if (i.parentIndex === e) return i.startLineNumber\n                                    }\n                                } else if (t.regions.length > 0)\n                                    for (i = t.regions.toRegion(0); null !== i;) {\n                                        if (i.startLineNumber > e) return i.startLineNumber;\n                                        i = i.regionIndex < t.regions.length ? t.regions.toRegion(i.regionIndex + 1) : null\n                                    }\n                                return null\n                            }(n[0], t);\n                            null !== e && i.setSelection({\n                                startLineNumber: e,\n                                startColumn: 1,\n                                endLineNumber: e,\n                                endColumn: 1\n                            })\n                        }\n                    }\n                });\n                for (let e = 1; e <= 7; e++)(0, d.QG)(new ee({\n                    id: ee.ID(e),\n                    label: V.N(\"foldLevelAction.label\", \"Fold Level {0}\", e),\n                    alias: `Fold Level ${e}`,\n                    precondition: Y,\n                    kbOpts: {\n                        kbExpr: h.u.editorTextFocus,\n                        primary: (0, s.gx)(2089, 2048 | 21 + e),\n                        weight: 100\n                    }\n                }));\n                const te = (0, H.P6)(\"editor.foldBackground\", {\n                        light: (0, H.Zn)(H.hE, .3),\n                        dark: (0, H.Zn)(H.hE, .3),\n                        hc: null\n                    }, V.N(\"foldBackgroundBackground\", \"Background color behind folded ranges. The color must not be opaque so as not to hide underlying decorations.\"), !0),\n                    ie = (0, H.P6)(\"editorGutter.foldingControlForeground\", {\n                        dark: H.XZ,\n                        light: H.XZ,\n                        hc: H.XZ\n                    }, V.N(\"editorGutter.foldingControlForeground\", \"Color of the folding control in the editor gutter.\"));\n                (0, z.Ic)(((e, t) => {\n                    const i = e.getColor(te);\n                    i && t.addRule(`.monaco-editor .folded-background { background-color: ${i}; }`);\n                    const n = e.getColor(ie);\n                    n && t.addRule(`\\n\\t\\t.monaco-editor .cldr${z.kS.asCSSSelector($)},\\n\\t\\t.monaco-editor .cldr${z.kS.asCSSSelector(K)} {\\n\\t\\t\\tcolor: ${n} !important;\\n\\t\\t}\\n\\t\\t`)\n                }))\n            },\n            23111: (e, t, i) => {\n                \"use strict\";\n                i.r(t);\n                var n = i(16830),\n                    o = i(82334),\n                    s = i(63580);\n                class r extends n.R6 {\n                    constructor() {\n                        super({\n                            id: \"editor.action.fontZoomIn\",\n                            label: s.N(\"EditorFontZoomIn.label\", \"Editor Font Zoom In\"),\n                            alias: \"Editor Font Zoom In\",\n                            precondition: void 0\n                        })\n                    }\n                    run(e, t) {\n                        o.C.setZoomLevel(o.C.getZoomLevel() + 1)\n                    }\n                }\n                class a extends n.R6 {\n                    constructor() {\n                        super({\n                            id: \"editor.action.fontZoomOut\",\n                            label: s.N(\"EditorFontZoomOut.label\", \"Editor Font Zoom Out\"),\n                            alias: \"Editor Font Zoom Out\",\n                            precondition: void 0\n                        })\n                    }\n                    run(e, t) {\n                        o.C.setZoomLevel(o.C.getZoomLevel() - 1)\n                    }\n                }\n                class l extends n.R6 {\n                    constructor() {\n                        super({\n                            id: \"editor.action.fontZoomReset\",\n                            label: s.N(\"EditorFontZoomReset.label\", \"Editor Font Zoom Reset\"),\n                            alias: \"Editor Font Zoom Reset\",\n                            precondition: void 0\n                        })\n                    }\n                    run(e, t) {\n                        o.C.setZoomLevel(0)\n                    }\n                }(0, n.Qr)(r), (0, n.Qr)(a), (0, n.Qr)(l)\n            },\n            23606: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    xC: () => N,\n                    Zg: () => k,\n                    x$: () => D,\n                    Qq: () => E,\n                    Qs: () => M\n                });\n                var n = i(85152),\n                    o = i(9488),\n                    s = i(71050),\n                    r = i(17301),\n                    a = i(53725),\n                    l = i(91741),\n                    c = i(98401),\n                    d = i(70666),\n                    h = i(39925),\n                    u = i(65520),\n                    g = i(50187),\n                    p = i(24314),\n                    f = i(3860),\n                    m = i(44101),\n                    v = i(90469),\n                    _ = i(88216),\n                    b = i(69939),\n                    w = i(63580),\n                    y = i(94565);\n                class C {\n                    constructor(e) {\n                        this.value = e, this._lower = e.toLowerCase()\n                    }\n                    static toKey(e) {\n                        return \"string\" == typeof e ? e.toLowerCase() : e._lower\n                    }\n                }\n                var x = i(72065),\n                    S = function(e, t, i, n) {\n                        return new(i || (i = Promise))((function(o, s) {\n                            function r(e) {\n                                try {\n                                    l(n.next(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function a(e) {\n                                try {\n                                    l(n.throw(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function l(e) {\n                                var t;\n                                e.done ? o(e.value) : (t = e.value, t instanceof i ? t : new i((function(e) {\n                                    e(t)\n                                }))).then(r, a)\n                            }\n                            l((n = n.apply(e, t || [])).next())\n                        }))\n                    };\n\n                function k(e) {\n                    if (!(e = e.filter((e => e.range))).length) return;\n                    let {\n                        range: t\n                    } = e[0];\n                    for (let i = 1; i < e.length; i++) t = p.e.plusRange(t, e[i].range);\n                    const {\n                        startLineNumber: i,\n                        endLineNumber: o\n                    } = t;\n                    i === o ? 1 === e.length ? (0, n.Z9)(w.N(\"hint11\", \"Made 1 formatting edit on line {0}\", i)) : (0, n.Z9)(w.N(\"hintn1\", \"Made {0} formatting edits on line {1}\", e.length, i)) : 1 === e.length ? (0, n.Z9)(w.N(\"hint1n\", \"Made 1 formatting edit between lines {0} and {1}\", i, o)) : (0, n.Z9)(w.N(\"hintnn\", \"Made {0} formatting edits between lines {1} and {2}\", e.length, i, o))\n                }\n\n                function L(e) {\n                    const t = [],\n                        i = new Set,\n                        n = m.Az.ordered(e);\n                    for (const e of n) t.push(e), e.extensionId && i.add(C.toKey(e.extensionId));\n                    const o = m.vN.ordered(e);\n                    for (const e of o) {\n                        if (e.extensionId) {\n                            if (i.has(C.toKey(e.extensionId))) continue;\n                            i.add(C.toKey(e.extensionId))\n                        }\n                        t.push({\n                            displayName: e.displayName,\n                            extensionId: e.extensionId,\n                            provideDocumentFormattingEdits: (t, i, n) => e.provideDocumentRangeFormattingEdits(t, t.getFullModelRange(), i, n)\n                        })\n                    }\n                    return t\n                }\n                class N {\n                    static setFormatterSelector(e) {\n                        return {\n                            dispose: N._selectors.unshift(e)\n                        }\n                    }\n                    static select(e, t, i) {\n                        return S(this, void 0, void 0, (function*() {\n                            if (0 === e.length) return;\n                            const n = a.$.first(N._selectors);\n                            return n ? yield n(e, t, i): void 0\n                        }))\n                    }\n                }\n\n                function D(e, t, i, n, o, s) {\n                    return S(this, void 0, void 0, (function*() {\n                        const r = e.get(x.TG),\n                            a = (0, u.CL)(t) ? t.getModel() : t,\n                            l = m.vN.ordered(a),\n                            c = yield N.select(l, a, n);\n                        c && (o.report(c), yield r.invokeFunction(I, c, t, i, s))\n                    }))\n                }\n\n                function I(e, t, i, n, s) {\n                    return S(this, void 0, void 0, (function*() {\n                        const r = e.get(v.p);\n                        let a, l;\n                        (0, u.CL)(i) ? (a = i.getModel(), l = new h.Dl(i, 5, void 0, s)) : (a = i, l = new h.YQ(i, s));\n                        let c = [],\n                            d = 0;\n                        for (let e of (0, o._2)(n).sort(p.e.compareRangesUsingStarts)) d > 0 && p.e.areIntersectingOrTouching(c[d - 1], e) ? c[d - 1] = p.e.fromPositions(c[d - 1].getStartPosition(), e.getEndPosition()) : d = c.push(e);\n                        const g = e => S(this, void 0, void 0, (function*() {\n                                return (yield t.provideDocumentRangeFormattingEdits(a, e, a.getFormattingOptions(), l.token)) || []\n                            })),\n                            m = (e, t) => {\n                                if (!e.length || !t.length) return !1;\n                                const i = e.reduce(((e, t) => p.e.plusRange(e, t.range)), e[0].range);\n                                if (!t.some((e => p.e.intersectRanges(i, e.range)))) return !1;\n                                for (let i of e)\n                                    for (let e of t)\n                                        if (p.e.intersectRanges(i.range, e.range)) return !0;\n                                return !1\n                            },\n                            _ = [],\n                            w = [];\n                        try {\n                            for (let e of c) {\n                                if (l.token.isCancellationRequested) return !0;\n                                w.push(yield g(e))\n                            }\n                            for (let e = 0; e < c.length; ++e)\n                                for (let t = e + 1; t < c.length; ++t) {\n                                    if (l.token.isCancellationRequested) return !0;\n                                    if (m(w[e], w[t])) {\n                                        const i = p.e.plusRange(c[e], c[t]),\n                                            n = yield g(i);\n                                        c.splice(t, 1), c.splice(e, 1), c.push(i), w.splice(t, 1), w.splice(e, 1), w.push(n), e = 0, t = 0\n                                    }\n                                }\n                            for (let e of w) {\n                                if (l.token.isCancellationRequested) return !0;\n                                const t = yield r.computeMoreMinimalEdits(a.uri, e);\n                                t && _.push(...t)\n                            }\n                        } finally {\n                            l.dispose()\n                        }\n                        if (0 === _.length) return !1;\n                        if ((0, u.CL)(i)) b.V.execute(i, _, !0), k(_), i.revealPositionInCenterIfOutsideViewport(i.getPosition(), 1);\n                        else {\n                            const [{\n                                range: e\n                            }] = _, t = new f.Y(e.startLineNumber, e.startColumn, e.endLineNumber, e.endColumn);\n                            a.pushEditOperations([t], _.map((e => ({\n                                text: e.text,\n                                range: p.e.lift(e.range),\n                                forceMoveMarkers: !0\n                            }))), (e => {\n                                for (const {\n                                        range: i\n                                    } of e)\n                                    if (p.e.areIntersectingOrTouching(i, t)) return [new f.Y(i.startLineNumber, i.startColumn, i.endLineNumber, i.endColumn)];\n                                return null\n                            }))\n                        }\n                        return !0\n                    }))\n                }\n\n                function E(e, t, i, n, o) {\n                    return S(this, void 0, void 0, (function*() {\n                        const s = e.get(x.TG),\n                            r = (0, u.CL)(t) ? t.getModel() : t,\n                            a = L(r),\n                            l = yield N.select(a, r, i);\n                        l && (n.report(l), yield s.invokeFunction(T, l, t, i, o))\n                    }))\n                }\n\n                function T(e, t, i, n, o) {\n                    return S(this, void 0, void 0, (function*() {\n                        const s = e.get(v.p);\n                        let r, a, l;\n                        (0, u.CL)(i) ? (r = i.getModel(), a = new h.Dl(i, 5, void 0, o)) : (r = i, a = new h.YQ(i, o));\n                        try {\n                            const e = yield t.provideDocumentFormattingEdits(r, r.getFormattingOptions(), a.token);\n                            if (l = yield s.computeMoreMinimalEdits(r.uri, e), a.token.isCancellationRequested) return !0\n                        } finally {\n                            a.dispose()\n                        }\n                        if (!l || 0 === l.length) return !1;\n                        if ((0, u.CL)(i)) b.V.execute(i, l, 2 !== n), 2 !== n && (k(l), i.revealPositionInCenterIfOutsideViewport(i.getPosition(), 1));\n                        else {\n                            const [{\n                                range: e\n                            }] = l, t = new f.Y(e.startLineNumber, e.startColumn, e.endLineNumber, e.endColumn);\n                            r.pushEditOperations([t], l.map((e => ({\n                                text: e.text,\n                                range: p.e.lift(e.range),\n                                forceMoveMarkers: !0\n                            }))), (e => {\n                                for (const {\n                                        range: i\n                                    } of e)\n                                    if (p.e.areIntersectingOrTouching(i, t)) return [new f.Y(i.startLineNumber, i.startColumn, i.endLineNumber, i.endColumn)];\n                                return null\n                            }))\n                        }\n                        return !0\n                    }))\n                }\n\n                function M(e, t, i, n, o) {\n                    const a = m.ln.ordered(t);\n                    return 0 === a.length || a[0].autoFormatTriggerCharacters.indexOf(n) < 0 ? Promise.resolve(void 0) : Promise.resolve(a[0].provideOnTypeFormattingEdits(t, i, n, o, s.T.None)).catch(r.Cp).then((i => e.computeMoreMinimalEdits(t.uri, i)))\n                }\n                N._selectors = new l.S, y.P.registerCommand(\"_executeFormatRangeProvider\", (function(e, ...t) {\n                    return S(this, void 0, void 0, (function*() {\n                        const [i, n, a] = t;\n                        (0, c.p_)(d.o.isUri(i)), (0, c.p_)(p.e.isIRange(n));\n                        const l = e.get(_.S),\n                            h = e.get(v.p),\n                            u = yield l.createModelReference(i);\n                        try {\n                            return function(e, t, i, n, s) {\n                                return S(this, void 0, void 0, (function*() {\n                                    const a = m.vN.ordered(t);\n                                    for (const l of a) {\n                                        let a = yield Promise.resolve(l.provideDocumentRangeFormattingEdits(t, i, n, s)).catch(r.Cp);\n                                        if ((0, o.Of)(a)) return yield e.computeMoreMinimalEdits(t.uri, a)\n                                    }\n                                }))\n                            }(h, u.object.textEditorModel, p.e.lift(n), a, s.T.None)\n                        } finally {\n                            u.dispose()\n                        }\n                    }))\n                })), y.P.registerCommand(\"_executeFormatDocumentProvider\", (function(e, ...t) {\n                    return S(this, void 0, void 0, (function*() {\n                        const [i, n] = t;\n                        (0, c.p_)(d.o.isUri(i));\n                        const a = e.get(_.S),\n                            l = e.get(v.p),\n                            h = yield a.createModelReference(i);\n                        try {\n                            return function(e, t, i, n) {\n                                return S(this, void 0, void 0, (function*() {\n                                    const s = L(t);\n                                    for (const a of s) {\n                                        let s = yield Promise.resolve(a.provideDocumentFormattingEdits(t, i, n)).catch(r.Cp);\n                                        if ((0, o.Of)(s)) return yield e.computeMoreMinimalEdits(t.uri, s)\n                                    }\n                                }))\n                            }(l, h.object.textEditorModel, n, s.T.None)\n                        } finally {\n                            h.dispose()\n                        }\n                    }))\n                })), y.P.registerCommand(\"_executeFormatOnTypeProvider\", (function(e, ...t) {\n                    return S(this, void 0, void 0, (function*() {\n                        const [i, n, o, s] = t;\n                        (0, c.p_)(d.o.isUri(i)), (0, c.p_)(g.L.isIPosition(n)), (0, c.p_)(\"string\" == typeof o);\n                        const r = e.get(_.S),\n                            a = e.get(v.p),\n                            l = yield r.createModelReference(i);\n                        try {\n                            return M(a, l.object.textEditorModel, g.L.lift(n), o, s)\n                        } finally {\n                            l.dispose()\n                        }\n                    }))\n                }))\n            },\n            44818: (e, t, i) => {\n                \"use strict\";\n                i.r(t);\n                var n = i(9488),\n                    o = i(71050),\n                    s = i(17301),\n                    r = i(22258),\n                    a = i(5976),\n                    l = i(16830),\n                    c = i(11640),\n                    d = i(44906),\n                    h = i(24314),\n                    u = i(29102),\n                    g = i(44101),\n                    p = i(90469),\n                    f = i(23606),\n                    m = i(69939),\n                    v = i(63580),\n                    _ = i(94565),\n                    b = i(38819),\n                    w = i(72065),\n                    y = i(90535),\n                    C = function(e, t, i, n) {\n                        var o, s = arguments.length,\n                            r = s < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n                        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) r = Reflect.decorate(e, t, i, n);\n                        else\n                            for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (r = (s < 3 ? o(r) : s > 3 ? o(t, i, r) : o(t, i)) || r);\n                        return s > 3 && r && Object.defineProperty(t, i, r), r\n                    },\n                    x = function(e, t) {\n                        return function(i, n) {\n                            t(i, n, e)\n                        }\n                    },\n                    S = function(e, t, i, n) {\n                        return new(i || (i = Promise))((function(o, s) {\n                            function r(e) {\n                                try {\n                                    l(n.next(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function a(e) {\n                                try {\n                                    l(n.throw(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function l(e) {\n                                var t;\n                                e.done ? o(e.value) : (t = e.value, t instanceof i ? t : new i((function(e) {\n                                    e(t)\n                                }))).then(r, a)\n                            }\n                            l((n = n.apply(e, t || [])).next())\n                        }))\n                    };\n                let k = class {\n                    constructor(e, t) {\n                        this._workerService = t, this._callOnDispose = new a.SL, this._callOnModel = new a.SL, this._editor = e, this._callOnDispose.add(e.onDidChangeConfiguration((() => this._update()))), this._callOnDispose.add(e.onDidChangeModel((() => this._update()))), this._callOnDispose.add(e.onDidChangeModelLanguage((() => this._update()))), this._callOnDispose.add(g.ln.onDidChange(this._update, this))\n                    }\n                    dispose() {\n                        this._callOnDispose.dispose(), this._callOnModel.dispose()\n                    }\n                    _update() {\n                        if (this._callOnModel.clear(), !this._editor.getOption(48)) return;\n                        if (!this._editor.hasModel()) return;\n                        const e = this._editor.getModel(),\n                            [t] = g.ln.ordered(e);\n                        if (!t || !t.autoFormatTriggerCharacters) return;\n                        let i = new d.q;\n                        for (let e of t.autoFormatTriggerCharacters) i.add(e.charCodeAt(0));\n                        this._callOnModel.add(this._editor.onDidType((e => {\n                            let t = e.charCodeAt(e.length - 1);\n                            i.has(t) && this._trigger(String.fromCharCode(t))\n                        })))\n                    }\n                    _trigger(e) {\n                        if (!this._editor.hasModel()) return;\n                        if (this._editor.getSelections().length > 1 || !this._editor.getSelection().isEmpty()) return;\n                        const t = this._editor.getModel(),\n                            i = this._editor.getPosition();\n                        let o = !1;\n                        const s = this._editor.onDidChangeModelContent((e => {\n                            if (e.isFlush) return o = !0, void s.dispose();\n                            for (let t = 0, n = e.changes.length; t < n; t++) {\n                                if (e.changes[t].range.endLineNumber <= i.lineNumber) return o = !0, void s.dispose()\n                            }\n                        }));\n                        (0, f.Qs)(this._workerService, t, i, e, t.getFormattingOptions()).then((e => {\n                            s.dispose(), o || (0, n.Of)(e) && (m.V.execute(this._editor, e, !0), (0, f.Zg)(e))\n                        }), (e => {\n                            throw s.dispose(), e\n                        }))\n                    }\n                };\n                k.ID = \"editor.contrib.autoFormat\", k = C([x(1, p.p)], k);\n                let L = class {\n                    constructor(e, t) {\n                        this.editor = e, this._instantiationService = t, this._callOnDispose = new a.SL, this._callOnModel = new a.SL, this._callOnDispose.add(e.onDidChangeConfiguration((() => this._update()))), this._callOnDispose.add(e.onDidChangeModel((() => this._update()))), this._callOnDispose.add(e.onDidChangeModelLanguage((() => this._update()))), this._callOnDispose.add(g.vN.onDidChange(this._update, this))\n                    }\n                    dispose() {\n                        this._callOnDispose.dispose(), this._callOnModel.dispose()\n                    }\n                    _update() {\n                        this._callOnModel.clear(), this.editor.getOption(47) && this.editor.hasModel() && g.vN.has(this.editor.getModel()) && this._callOnModel.add(this.editor.onDidPaste((({\n                            range: e\n                        }) => this._trigger(e))))\n                    }\n                    _trigger(e) {\n                        this.editor.hasModel() && (this.editor.getSelections().length > 1 || this._instantiationService.invokeFunction(f.x$, this.editor, e, 2, y.E.None, o.T.None).catch(s.dL))\n                    }\n                };\n                L.ID = \"editor.contrib.formatOnPaste\", L = C([x(1, w.TG)], L);\n                class N extends l.R6 {\n                    constructor() {\n                        super({\n                            id: \"editor.action.formatDocument\",\n                            label: v.N(\"formatDocument.label\", \"Format Document\"),\n                            alias: \"Format Document\",\n                            precondition: b.Ao.and(u.u.notInCompositeEditor, u.u.writable, u.u.hasDocumentFormattingProvider),\n                            kbOpts: {\n                                kbExpr: u.u.editorTextFocus,\n                                primary: 1572,\n                                linux: {\n                                    primary: 3111\n                                },\n                                weight: 100\n                            },\n                            contextMenuOpts: {\n                                group: \"1_modification\",\n                                order: 1.3\n                            }\n                        })\n                    }\n                    run(e, t) {\n                        return S(this, void 0, void 0, (function*() {\n                            if (t.hasModel()) {\n                                const i = e.get(w.TG),\n                                    n = e.get(y.e);\n                                yield n.showWhile(i.invokeFunction(f.Qq, t, 1, y.E.None, o.T.None), 250)\n                            }\n                        }))\n                    }\n                }\n                class D extends l.R6 {\n                    constructor() {\n                        super({\n                            id: \"editor.action.formatSelection\",\n                            label: v.N(\"formatSelection.label\", \"Format Selection\"),\n                            alias: \"Format Selection\",\n                            precondition: b.Ao.and(u.u.writable, u.u.hasDocumentSelectionFormattingProvider),\n                            kbOpts: {\n                                kbExpr: u.u.editorTextFocus,\n                                primary: (0, r.gx)(2089, 2084),\n                                weight: 100\n                            },\n                            contextMenuOpts: {\n                                when: u.u.hasNonEmptySelection,\n                                group: \"1_modification\",\n                                order: 1.31\n                            }\n                        })\n                    }\n                    run(e, t) {\n                        return S(this, void 0, void 0, (function*() {\n                            if (!t.hasModel()) return;\n                            const i = e.get(w.TG),\n                                n = t.getModel(),\n                                s = t.getSelections().map((e => e.isEmpty() ? new h.e(e.startLineNumber, 1, e.startLineNumber, n.getLineMaxColumn(e.startLineNumber)) : e)),\n                                r = e.get(y.e);\n                            yield r.showWhile(i.invokeFunction(f.x$, t, s, 1, y.E.None, o.T.None), 250)\n                        }))\n                    }\n                }(0, l._K)(k.ID, k), (0, l._K)(L.ID, L), (0, l.Qr)(N), (0, l.Qr)(D), _.P.registerCommand(\"editor.action.format\", (e => S(void 0, void 0, void 0, (function*() {\n                    const t = e.get(c.$).getFocusedCodeEditor();\n                    if (!t || !t.hasModel()) return;\n                    const i = e.get(_.H);\n                    t.getSelection().isEmpty() ? yield i.executeCommand(\"editor.action.formatDocument\"): yield i.executeCommand(\"editor.action.formatSelection\")\n                }))))\n            },\n            69939: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    V: () => s\n                });\n                var n = i(69386),\n                    o = i(24314);\n                class s {\n                    static _handleEolEdits(e, t) {\n                        let i, n = [];\n                        for (let e of t) \"number\" == typeof e.eol && (i = e.eol), e.range && \"string\" == typeof e.text && n.push(e);\n                        return \"number\" == typeof i && e.hasModel() && e.getModel().pushEOL(i), n\n                    }\n                    static _isFullModelReplaceEdit(e, t) {\n                        if (!e.hasModel()) return !1;\n                        const i = e.getModel(),\n                            n = i.validateRange(t.range);\n                        return i.getFullModelRange().equalsRange(n)\n                    }\n                    static execute(e, t, i) {\n                        i && e.pushUndoStop();\n                        const r = s._handleEolEdits(e, t);\n                        1 === r.length && s._isFullModelReplaceEdit(e, r[0]) ? e.executeEdits(\"formatEditsCommand\", r.map((e => n.h.replace(o.e.lift(e.range), e.text)))) : e.executeEdits(\"formatEditsCommand\", r.map((e => n.h.replaceMove(o.e.lift(e.range), e.text)))), i && e.pushUndoStop()\n                    }\n                }\n            },\n            42698: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    MarkerController: () => oe,\n                    NextMarkerAction: () => re\n                });\n                var n = i(73046),\n                    o = i(5976),\n                    s = i(16830),\n                    r = i(11640),\n                    a = i(50187),\n                    l = i(24314),\n                    c = i(29102),\n                    d = i(9488),\n                    h = i(4669),\n                    u = i(91741),\n                    g = i(97295),\n                    p = i(70666),\n                    f = i(65026),\n                    m = i(72065),\n                    v = i(98674),\n                    _ = function(e, t, i, n) {\n                        var o, s = arguments.length,\n                            r = s < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n                        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) r = Reflect.decorate(e, t, i, n);\n                        else\n                            for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (r = (s < 3 ? o(r) : s > 3 ? o(t, i, r) : o(t, i)) || r);\n                        return s > 3 && r && Object.defineProperty(t, i, r), r\n                    },\n                    b = function(e, t) {\n                        return function(i, n) {\n                            t(i, n, e)\n                        }\n                    };\n                class w {\n                    constructor(e, t, i) {\n                        this.marker = e, this.index = t, this.total = i\n                    }\n                }\n                let y = class e {\n                    constructor(t, i) {\n                        this._markerService = i, this._onDidChange = new h.Q5, this.onDidChange = this._onDidChange.event, this._dispoables = new o.SL, this._markers = [], this._nextIdx = -1, p.o.isUri(t) ? this._resourceFilter = e => e.toString() === t.toString() : t && (this._resourceFilter = t);\n                        const n = () => {\n                            this._markers = this._markerService.read({\n                                resource: p.o.isUri(t) ? t : void 0,\n                                severities: v.ZL.Error | v.ZL.Warning | v.ZL.Info\n                            }), \"function\" == typeof t && (this._markers = this._markers.filter((e => this._resourceFilter(e.resource)))), this._markers.sort(e._compareMarker)\n                        };\n                        n(), this._dispoables.add(i.onMarkerChanged((e => {\n                            this._resourceFilter && !e.some((e => this._resourceFilter(e))) || (n(), this._nextIdx = -1, this._onDidChange.fire())\n                        })))\n                    }\n                    dispose() {\n                        this._dispoables.dispose(), this._onDidChange.dispose()\n                    }\n                    matches(e) {\n                        return !this._resourceFilter && !e || !(!this._resourceFilter || !e) && this._resourceFilter(e)\n                    }\n                    get selected() {\n                        const e = this._markers[this._nextIdx];\n                        return e && new w(e, this._nextIdx + 1, this._markers.length)\n                    }\n                    _initIdx(e, t, i) {\n                        let n = !1,\n                            o = this._markers.findIndex((t => t.resource.toString() === e.uri.toString()));\n                        o < 0 && (o = (0, d.ry)(this._markers, {\n                            resource: e.uri\n                        }, ((e, t) => (0, g.qu)(e.resource.toString(), t.resource.toString()))), o < 0 && (o = ~o));\n                        for (let i = o; i < this._markers.length; i++) {\n                            let o = l.e.lift(this._markers[i]);\n                            if (o.isEmpty()) {\n                                const t = e.getWordAtPosition(o.getStartPosition());\n                                t && (o = new l.e(o.startLineNumber, t.startColumn, o.startLineNumber, t.endColumn))\n                            }\n                            if (t && (o.containsPosition(t) || t.isBeforeOrEqual(o.getStartPosition()))) {\n                                this._nextIdx = i, n = !0;\n                                break\n                            }\n                            if (this._markers[i].resource.toString() !== e.uri.toString()) break\n                        }\n                        n || (this._nextIdx = i ? 0 : this._markers.length - 1), this._nextIdx < 0 && (this._nextIdx = this._markers.length - 1)\n                    }\n                    resetIndex() {\n                        this._nextIdx = -1\n                    }\n                    move(e, t, i) {\n                        if (0 === this._markers.length) return !1;\n                        let n = this._nextIdx;\n                        return -1 === this._nextIdx ? this._initIdx(t, i, e) : e ? this._nextIdx = (this._nextIdx + 1) % this._markers.length : e || (this._nextIdx = (this._nextIdx - 1 + this._markers.length) % this._markers.length), n !== this._nextIdx\n                    }\n                    find(e, t) {\n                        let i = this._markers.findIndex((t => t.resource.toString() === e.toString()));\n                        if (!(i < 0))\n                            for (; i < this._markers.length; i++)\n                                if (l.e.containsPosition(this._markers[i], t)) return new w(this._markers[i], i + 1, this._markers.length)\n                    }\n                    static _compareMarker(e, t) {\n                        let i = (0, g.qu)(e.resource.toString(), t.resource.toString());\n                        return 0 === i && (i = v.ZL.compare(e.severity, t.severity)), 0 === i && (i = l.e.compareRangesUsingStarts(e, t)), i\n                    }\n                };\n                y = _([b(1, v.lT)], y);\n                const C = (0, m.yh)(\"IMarkerNavigationService\");\n                let x = class {\n                    constructor(e) {\n                        this._markerService = e, this._provider = new u.S\n                    }\n                    getMarkerList(e) {\n                        for (let t of this._provider) {\n                            const i = t.getMarkerList(e);\n                            if (i) return i\n                        }\n                        return new y(e, this._markerService)\n                    }\n                };\n                x = _([b(0, v.lT)], x), (0, f.z)(C, x, !0);\n                var S, k = i(63580),\n                    L = i(84144),\n                    N = i(38819),\n                    D = i(59554),\n                    I = i(65321),\n                    E = i(9802),\n                    T = i(41264),\n                    M = i(68843),\n                    A = i(95935),\n                    O = (i(81367), i(22043)),\n                    P = i(58335),\n                    R = i(44349),\n                    F = i(50988),\n                    B = i(14603),\n                    V = i(73910),\n                    W = i(97781);\n                ! function(e) {\n                    e.className = function(e) {\n                        switch (e) {\n                            case B.Z.Ignore:\n                                return \"severity-ignore \" + n.lA.info.classNames;\n                            case B.Z.Info:\n                                return n.lA.info.classNames;\n                            case B.Z.Warning:\n                                return n.lA.warning.classNames;\n                            case B.Z.Error:\n                                return n.lA.error.classNames;\n                            default:\n                                return \"\"\n                        }\n                    }\n                }(S || (S = {})), (0, W.Ic)(((e, t) => {\n                    const i = e.getColor(V.Jp);\n                    if (i) {\n                        const e = n.lA.error.cssSelector;\n                        t.addRule(`\\n\\t\\t\\t.monaco-editor .zone-widget ${e},\\n\\t\\t\\t.markers-panel .marker-icon${e},\\n\\t\\t\\t.text-search-provider-messages .providerMessage ${e},\\n\\t\\t\\t.extensions-viewlet > .extensions ${e} {\\n\\t\\t\\t\\tcolor: ${i};\\n\\t\\t\\t}\\n\\t\\t`)\n                    }\n                    const o = e.getColor(V.BO);\n                    if (o) {\n                        const e = n.lA.warning.cssSelector;\n                        t.addRule(`\\n\\t\\t\\t.monaco-editor .zone-widget ${e},\\n\\t\\t\\t.markers-panel .marker-icon${e},\\n\\t\\t\\t.extensions-viewlet > .extensions ${e},\\n\\t\\t\\t.extension-editor ${e},\\n\\t\\t\\t.text-search-provider-messages .providerMessage ${e},\\n\\t\\t\\t.preferences-editor ${e} {\\n\\t\\t\\t\\tcolor: ${o};\\n\\t\\t\\t}\\n\\t\\t`)\n                    }\n                    const s = e.getColor(V.OL);\n                    if (s) {\n                        const e = n.lA.info.cssSelector;\n                        t.addRule(`\\n\\t\\t\\t.monaco-editor .zone-widget ${e},\\n\\t\\t\\t.markers-panel .marker-icon${e},\\n\\t\\t\\t.extensions-viewlet > .extensions ${e},\\n\\t\\t\\t.text-search-provider-messages .providerMessage ${e},\\n\\t\\t\\t.extension-editor ${e} {\\n\\t\\t\\t\\tcolor: ${s};\\n\\t\\t\\t}\\n\\t\\t`)\n                    }\n                }));\n                var H = function(e, t, i, n) {\n                        var o, s = arguments.length,\n                            r = s < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n                        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) r = Reflect.decorate(e, t, i, n);\n                        else\n                            for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (r = (s < 3 ? o(r) : s > 3 ? o(t, i, r) : o(t, i)) || r);\n                        return s > 3 && r && Object.defineProperty(t, i, r), r\n                    },\n                    z = function(e, t) {\n                        return function(i, n) {\n                            t(i, n, e)\n                        }\n                    };\n                class j {\n                    constructor(e, t, i, n, s) {\n                        this._openerService = n, this._labelService = s, this._lines = 0, this._longestLineLength = 0, this._relatedDiagnostics = new WeakMap, this._disposables = new o.SL, this._editor = t;\n                        const r = document.createElement(\"div\");\n                        r.className = \"descriptioncontainer\", this._messageBlock = document.createElement(\"div\"), this._messageBlock.classList.add(\"message\"), this._messageBlock.setAttribute(\"aria-live\", \"assertive\"), this._messageBlock.setAttribute(\"role\", \"alert\"), r.appendChild(this._messageBlock), this._relatedBlock = document.createElement(\"div\"), r.appendChild(this._relatedBlock), this._disposables.add(I.mu(this._relatedBlock, \"click\", (e => {\n                            e.preventDefault();\n                            const t = this._relatedDiagnostics.get(e.target);\n                            t && i(t)\n                        }))), this._scrollable = new E.NB(r, {\n                            horizontal: 1,\n                            vertical: 1,\n                            useShadows: !1,\n                            horizontalScrollbarSize: 3,\n                            verticalScrollbarSize: 3\n                        }), e.appendChild(this._scrollable.getDomNode()), this._disposables.add(this._scrollable.onScroll((e => {\n                            r.style.left = `-${e.scrollLeft}px`, r.style.top = `-${e.scrollTop}px`\n                        }))), this._disposables.add(this._scrollable)\n                    }\n                    dispose() {\n                        (0, o.B9)(this._disposables)\n                    }\n                    update(e) {\n                        const {\n                            source: t,\n                            message: i,\n                            relatedInformation: n,\n                            code: o\n                        } = e;\n                        let s = ((null == t ? void 0 : t.length) || 0) + 2;\n                        o && (s += \"string\" == typeof o ? o.length : o.value.length);\n                        const r = (0, g.uq)(i);\n                        this._lines = r.length, this._longestLineLength = 0;\n                        for (const e of r) this._longestLineLength = Math.max(e.length + s, this._longestLineLength);\n                        I.PO(this._messageBlock), this._messageBlock.setAttribute(\"aria-label\", this.getAriaLabel(e)), this._editor.applyFontInfo(this._messageBlock);\n                        let a = this._messageBlock;\n                        for (const e of r) a = document.createElement(\"div\"), a.innerText = e, \"\" === e && (a.style.height = this._messageBlock.style.lineHeight), this._messageBlock.appendChild(a);\n                        if (t || o) {\n                            const e = document.createElement(\"span\");\n                            if (e.classList.add(\"details\"), a.appendChild(e), t) {\n                                const i = document.createElement(\"span\");\n                                i.innerText = t, i.classList.add(\"source\"), e.appendChild(i)\n                            }\n                            if (o)\n                                if (\"string\" == typeof o) {\n                                    const t = document.createElement(\"span\");\n                                    t.innerText = `(${o})`, t.classList.add(\"code\"), e.appendChild(t)\n                                } else {\n                                    this._codeLink = I.$(\"a.code-link\"), this._codeLink.setAttribute(\"href\", `${o.target.toString()}`), this._codeLink.onclick = e => {\n                                        this._openerService.open(o.target, {\n                                            allowCommands: !0\n                                        }), e.preventDefault(), e.stopPropagation()\n                                    };\n                                    I.R3(this._codeLink, I.$(\"span\")).innerText = o.value, e.appendChild(this._codeLink)\n                                }\n                        }\n                        if (I.PO(this._relatedBlock), this._editor.applyFontInfo(this._relatedBlock), (0, d.Of)(n)) {\n                            const e = this._relatedBlock.appendChild(document.createElement(\"div\"));\n                            e.style.paddingTop = `${Math.floor(.66*this._editor.getOption(58))}px`, this._lines += 1;\n                            for (const t of n) {\n                                let i = document.createElement(\"div\"),\n                                    n = document.createElement(\"a\");\n                                n.classList.add(\"filename\"), n.innerText = `${(0,M.p)(t.resource)}(${t.startLineNumber}, ${t.startColumn}): `, n.title = this._labelService.getUriLabel(t.resource), this._relatedDiagnostics.set(n, t);\n                                let o = document.createElement(\"span\");\n                                o.innerText = t.message, i.appendChild(n), i.appendChild(o), this._lines += 1, e.appendChild(i)\n                            }\n                        }\n                        const l = this._editor.getOption(43),\n                            c = Math.ceil(l.typicalFullwidthCharacterWidth * this._longestLineLength * .75),\n                            h = l.lineHeight * this._lines;\n                        this._scrollable.setScrollDimensions({\n                            scrollWidth: c,\n                            scrollHeight: h\n                        })\n                    }\n                    layout(e, t) {\n                        this._scrollable.getDomNode().style.height = `${e}px`, this._scrollable.getDomNode().style.width = `${t}px`, this._scrollable.setScrollDimensions({\n                            width: t,\n                            height: e\n                        })\n                    }\n                    getHeightInLines() {\n                        return Math.min(17, this._lines)\n                    }\n                    getAriaLabel(e) {\n                        let t = \"\";\n                        switch (e.severity) {\n                            case v.ZL.Error:\n                                t = k.N(\"错误\", \"错误\");\n                                break;\n                            case v.ZL.Warning:\n                                t = k.N(\"Warning\", \"Warning\");\n                                break;\n                            case v.ZL.Info:\n                                t = k.N(\"Info\", \"Info\");\n                                break;\n                            case v.ZL.Hint:\n                                t = k.N(\"Hint\", \"Hint\")\n                        }\n                        let i = k.N(\"marker aria\", \"{0} at {1}. \", t, e.startLineNumber + \":\" + e.startColumn);\n                        const n = this._editor.getModel();\n                        if (n && e.startLineNumber <= n.getLineCount() && e.startLineNumber >= 1) {\n                            i = `${n.getLineContent(e.startLineNumber)}, ${i}`\n                        }\n                        return i\n                    }\n                }\n                let U = class e extends O.vk {\n                    constructor(e, t, i, n, s, r, a) {\n                        super(e, {\n                            showArrow: !0,\n                            showFrame: !0,\n                            isAccessible: !0,\n                            frameWidth: 1\n                        }, s), this._themeService = t, this._openerService = i, this._menuService = n, this._contextKeyService = r, this._labelService = a, this._callOnDispose = new o.SL, this._onDidSelectRelatedInformation = new h.Q5, this.onDidSelectRelatedInformation = this._onDidSelectRelatedInformation.event, this._severity = v.ZL.Warning, this._backgroundColor = T.Il.white, this._applyTheme(t.getColorTheme()), this._callOnDispose.add(t.onDidColorThemeChange(this._applyTheme.bind(this))), this.create()\n                    }\n                    _applyTheme(e) {\n                        this._backgroundColor = e.getColor(ee);\n                        let t = Z,\n                            i = G;\n                        this._severity === v.ZL.Warning ? (t = Y, i = Q) : this._severity === v.ZL.Info && (t = X, i = J);\n                        const n = e.getColor(t),\n                            o = e.getColor(i);\n                        this.style({\n                            arrowColor: n,\n                            frameColor: n,\n                            headerBackgroundColor: o,\n                            primaryHeadingColor: e.getColor(O.IH),\n                            secondaryHeadingColor: e.getColor(O.R7)\n                        })\n                    }\n                    _applyStyles() {\n                        this._parentContainer && (this._parentContainer.style.backgroundColor = this._backgroundColor ? this._backgroundColor.toString() : \"\"), super._applyStyles()\n                    }\n                    dispose() {\n                        this._callOnDispose.dispose(), super.dispose()\n                    }\n                    _fillHead(t) {\n                        super._fillHead(t), this._disposables.add(this._actionbarWidget.actionRunner.onBeforeRun((e => this.editor.focus())));\n                        const i = [],\n                            n = this._menuService.createMenu(e.TitleMenu, this._contextKeyService);\n                        (0, P.vr)(n, void 0, i), this._actionbarWidget.push(i, {\n                            label: !1,\n                            icon: !0,\n                            index: 0\n                        }), n.dispose()\n                    }\n                    _fillTitleIcon(e) {\n                        this._icon = I.R3(e, I.$(\"\"))\n                    }\n                    _fillBody(e) {\n                        this._parentContainer = e, e.classList.add(\"marker-widget\"), this._parentContainer.tabIndex = 0, this._parentContainer.setAttribute(\"role\", \"tooltip\"), this._container = document.createElement(\"div\"), e.appendChild(this._container), this._message = new j(this._container, this.editor, (e => this._onDidSelectRelatedInformation.fire(e)), this._openerService, this._labelService), this._disposables.add(this._message)\n                    }\n                    show() {\n                        throw new Error(\"call showAtMarker\")\n                    }\n                    showAtMarker(e, t, i) {\n                        this._container.classList.remove(\"stale\"), this._message.update(e), this._severity = e.severity, this._applyTheme(this._themeService.getColorTheme());\n                        let n = l.e.lift(e);\n                        const o = this.editor.getPosition();\n                        let s = o && n.containsPosition(o) ? o : n.getStartPosition();\n                        super.show(s, this.computeRequiredHeight());\n                        const r = this.editor.getModel();\n                        if (r) {\n                            const e = i > 1 ? k.N(\"problems\", \"{0} of {1} problems\", t, i) : k.N(\"change\", \"{0} of {1} problem\", t, i);\n                            this.setTitle((0, A.EZ)(r.uri), e)\n                        }\n                        this._icon.className = `codicon ${S.className(v.ZL.toSeverity(this._severity))}`, this.editor.revealPositionNearTop(s, 0), this.editor.focus()\n                    }\n                    updateMarker(e) {\n                        this._container.classList.remove(\"stale\"), this._message.update(e)\n                    }\n                    showStale() {\n                        this._container.classList.add(\"stale\"), this._relayout()\n                    }\n                    _doLayoutBody(e, t) {\n                        super._doLayoutBody(e, t), this._heightInPixel = e, this._message.layout(e, t), this._container.style.height = `${e}px`\n                    }\n                    _onWidth(e) {\n                        this._message.layout(this._heightInPixel, e)\n                    }\n                    _relayout() {\n                        super._relayout(this.computeRequiredHeight())\n                    }\n                    computeRequiredHeight() {\n                        return 3 + this._message.getHeightInLines()\n                    }\n                };\n                U.TitleMenu = new L.eH(\"gotoErrorTitleMenu\"), U = H([z(1, W.XE), z(2, F.v4), z(3, L.co), z(4, m.TG), z(5, N.i6), z(6, R.e)], U);\n                let $ = (0, V.kw)(V.lX, V.b6),\n                    K = (0, V.kw)(V.uo, V.pW),\n                    q = (0, V.kw)(V.c6, V.T8);\n                const Z = (0, V.P6)(\"editorMarkerNavigationError.background\", {\n                        dark: $,\n                        light: $,\n                        hc: V.lR\n                    }, k.N(\"editorMarkerNavigationError\", \"Editor marker navigation widget error color.\")),\n                    G = (0, V.P6)(\"editorMarkerNavigationError.headerBackground\", {\n                        dark: (0, V.Zn)(Z, .1),\n                        light: (0, V.Zn)(Z, .1),\n                        hc: null\n                    }, k.N(\"editorMarkerNavigationErrorHeaderBackground\", \"Editor marker navigation widget error heading background.\")),\n                    Y = (0, V.P6)(\"editorMarkerNavigationWarning.background\", {\n                        dark: K,\n                        light: K,\n                        hc: V.lR\n                    }, k.N(\"editorMarkerNavigationWarning\", \"Editor marker navigation widget warning color.\")),\n                    Q = (0, V.P6)(\"editorMarkerNavigationWarning.headerBackground\", {\n                        dark: (0, V.Zn)(Y, .1),\n                        light: (0, V.Zn)(Y, .1),\n                        hc: \"#0C141F\"\n                    }, k.N(\"editorMarkerNavigationWarningBackground\", \"Editor marker navigation widget warning heading background.\")),\n                    X = (0, V.P6)(\"editorMarkerNavigationInfo.background\", {\n                        dark: q,\n                        light: q,\n                        hc: V.lR\n                    }, k.N(\"editorMarkerNavigationInfo\", \"Editor marker navigation widget info color.\")),\n                    J = (0, V.P6)(\"editorMarkerNavigationInfo.headerBackground\", {\n                        dark: (0, V.Zn)(X, .1),\n                        light: (0, V.Zn)(X, .1),\n                        hc: null\n                    }, k.N(\"editorMarkerNavigationInfoHeaderBackground\", \"Editor marker navigation widget info heading background.\")),\n                    ee = (0, V.P6)(\"editorMarkerNavigation.background\", {\n                        dark: V.cv,\n                        light: V.cv,\n                        hc: V.cv\n                    }, k.N(\"editorMarkerNavigationBackground\", \"Editor marker navigation widget background.\"));\n                (0, W.Ic)(((e, t) => {\n                    const i = e.getColor(V.ur);\n                    i && t.addRule(`.monaco-editor .marker-widget a.code-link span { color: ${i}; }`);\n                    const n = e.getColor(V.sg);\n                    n && t.addRule(`.monaco-editor .marker-widget a.code-link span:hover { color: ${n}; }`)\n                }));\n                var te = function(e, t, i, n) {\n                        var o, s = arguments.length,\n                            r = s < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n                        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) r = Reflect.decorate(e, t, i, n);\n                        else\n                            for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (r = (s < 3 ? o(r) : s > 3 ? o(t, i, r) : o(t, i)) || r);\n                        return s > 3 && r && Object.defineProperty(t, i, r), r\n                    },\n                    ie = function(e, t) {\n                        return function(i, n) {\n                            t(i, n, e)\n                        }\n                    },\n                    ne = function(e, t, i, n) {\n                        return new(i || (i = Promise))((function(o, s) {\n                            function r(e) {\n                                try {\n                                    l(n.next(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function a(e) {\n                                try {\n                                    l(n.throw(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function l(e) {\n                                var t;\n                                e.done ? o(e.value) : (t = e.value, t instanceof i ? t : new i((function(e) {\n                                    e(t)\n                                }))).then(r, a)\n                            }\n                            l((n = n.apply(e, t || [])).next())\n                        }))\n                    };\n                let oe = class e {\n                    constructor(e, t, i, n, s) {\n                        this._markerNavigationService = t, this._contextKeyService = i, this._editorService = n, this._instantiationService = s, this._sessionDispoables = new o.SL, this._editor = e, this._widgetVisible = le.bindTo(this._contextKeyService)\n                    }\n                    static get(t) {\n                        return t.getContribution(e.ID)\n                    }\n                    dispose() {\n                        this._cleanUp(), this._sessionDispoables.dispose()\n                    }\n                    _cleanUp() {\n                        this._widgetVisible.reset(), this._sessionDispoables.clear(), this._widget = void 0, this._model = void 0\n                    }\n                    _getOrCreateModel(e) {\n                        if (this._model && this._model.matches(e)) return this._model;\n                        let t = !1;\n                        return this._model && (t = !0, this._cleanUp()), this._model = this._markerNavigationService.getMarkerList(e), t && this._model.move(!0, this._editor.getModel(), this._editor.getPosition()), this._widget = this._instantiationService.createInstance(U, 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((e => {\n                            var t, i, n;\n                            (null === (t = this._model) || void 0 === t ? void 0 : t.selected) && l.e.containsPosition(null === (i = this._model) || void 0 === i ? void 0 : i.selected.marker, e.position) || null === (n = this._model) || void 0 === n || n.resetIndex()\n                        }))), this._sessionDispoables.add(this._model.onDidChange((() => {\n                            if (!this._widget || !this._widget.position || !this._model) return;\n                            const e = this._model.find(this._editor.getModel().uri, this._widget.position);\n                            e ? this._widget.updateMarker(e.marker) : this._widget.showStale()\n                        }))), this._sessionDispoables.add(this._widget.onDidSelectRelatedInformation((e => {\n                            this._editorService.openCodeEditor({\n                                resource: e.resource,\n                                options: {\n                                    pinned: !0,\n                                    revealIfOpened: !0,\n                                    selection: l.e.lift(e).collapseToStart()\n                                }\n                            }, this._editor), this.close(!1)\n                        }))), this._sessionDispoables.add(this._editor.onDidChangeModel((() => this._cleanUp()))), this._model\n                    }\n                    close(e = !0) {\n                        this._cleanUp(), e && this._editor.focus()\n                    }\n                    showAtMarker(e) {\n                        if (this._editor.hasModel()) {\n                            const t = this._getOrCreateModel(this._editor.getModel().uri);\n                            t.resetIndex(), t.move(!0, this._editor.getModel(), new a.L(e.startLineNumber, e.startColumn)), t.selected && this._widget.showAtMarker(t.selected.marker, t.selected.index, t.selected.total)\n                        }\n                    }\n                    nagivate(t, i) {\n                        return ne(this, void 0, void 0, (function*() {\n                            if (this._editor.hasModel()) {\n                                const n = this._getOrCreateModel(i ? void 0 : this._editor.getModel().uri);\n                                if (n.move(t, this._editor.getModel(), this._editor.getPosition()), !n.selected) return;\n                                if (n.selected.marker.resource.toString() !== this._editor.getModel().uri.toString()) {\n                                    this._cleanUp();\n                                    const o = yield this._editorService.openCodeEditor({\n                                        resource: n.selected.marker.resource,\n                                        options: {\n                                            pinned: !1,\n                                            revealIfOpened: !0,\n                                            selectionRevealType: 2,\n                                            selection: n.selected.marker\n                                        }\n                                    }, this._editor);\n                                    o && (e.get(o).close(), e.get(o).nagivate(t, i))\n                                } else this._widget.showAtMarker(n.selected.marker, n.selected.index, n.selected.total)\n                            }\n                        }))\n                    }\n                };\n                oe.ID = \"editor.contrib.markerController\", oe = te([ie(1, C), ie(2, N.i6), ie(3, r.$), ie(4, m.TG)], oe);\n                class se extends s.R6 {\n                    constructor(e, t, i) {\n                        super(i), this._next = e, this._multiFile = t\n                    }\n                    run(e, t) {\n                        return ne(this, void 0, void 0, (function*() {\n                            t.hasModel() && oe.get(t).nagivate(this._next, this._multiFile)\n                        }))\n                    }\n                }\n                class re extends se {\n                    constructor() {\n                        super(!0, !1, {\n                            id: re.ID,\n                            label: re.LABEL,\n                            alias: \"Go to Next Problem (Error, Warning, Info)\",\n                            precondition: void 0,\n                            kbOpts: {\n                                kbExpr: c.u.focus,\n                                primary: 578,\n                                weight: 100\n                            },\n                            menuOpts: {\n                                menuId: U.TitleMenu,\n                                title: re.LABEL,\n                                icon: (0, D.q5)(\"marker-navigation-next\", n.lA.arrowDown, k.N(\"nextMarkerIcon\", \"Icon for goto next marker.\")),\n                                group: \"navigation\",\n                                order: 1\n                            }\n                        })\n                    }\n                }\n                re.ID = \"editor.action.marker.next\", re.LABEL = k.N(\"markerAction.next.label\", \"Go to Next Problem (Error, Warning, Info)\");\n                class ae extends se {\n                    constructor() {\n                        super(!1, !1, {\n                            id: ae.ID,\n                            label: ae.LABEL,\n                            alias: \"Go to Previous Problem (Error, Warning, Info)\",\n                            precondition: void 0,\n                            kbOpts: {\n                                kbExpr: c.u.focus,\n                                primary: 1602,\n                                weight: 100\n                            },\n                            menuOpts: {\n                                menuId: U.TitleMenu,\n                                title: re.LABEL,\n                                icon: (0, D.q5)(\"marker-navigation-previous\", n.lA.arrowUp, k.N(\"previousMarkerIcon\", \"Icon for goto previous marker.\")),\n                                group: \"navigation\",\n                                order: 2\n                            }\n                        })\n                    }\n                }\n                ae.ID = \"editor.action.marker.prev\", ae.LABEL = k.N(\"markerAction.previous.label\", \"Go to Previous Problem (Error, Warning, Info)\");\n                (0, s._K)(oe.ID, oe), (0, s.Qr)(re), (0, s.Qr)(ae), (0, s.Qr)(class extends se {\n                    constructor() {\n                        super(!0, !0, {\n                            id: \"editor.action.marker.nextInFiles\",\n                            label: k.N(\"markerAction.nextInFiles.label\", \"Go to Next Problem in Files (Error, Warning, Info)\"),\n                            alias: \"Go to Next Problem in Files (Error, Warning, Info)\",\n                            precondition: void 0,\n                            kbOpts: {\n                                kbExpr: c.u.focus,\n                                primary: 66,\n                                weight: 100\n                            },\n                            menuOpts: {\n                                menuId: L.eH.MenubarGoMenu,\n                                title: k.N({\n                                    key: \"miGotoNextProblem\",\n                                    comment: [\"&& denotes a mnemonic\"]\n                                }, \"Next &&Problem\"),\n                                group: \"6_problem_nav\",\n                                order: 1\n                            }\n                        })\n                    }\n                }), (0, s.Qr)(class extends se {\n                    constructor() {\n                        super(!1, !0, {\n                            id: \"editor.action.marker.prevInFiles\",\n                            label: k.N(\"markerAction.previousInFiles.label\", \"Go to Previous Problem in Files (Error, Warning, Info)\"),\n                            alias: \"Go to Previous Problem in Files (Error, Warning, Info)\",\n                            precondition: void 0,\n                            kbOpts: {\n                                kbExpr: c.u.focus,\n                                primary: 1090,\n                                weight: 100\n                            },\n                            menuOpts: {\n                                menuId: L.eH.MenubarGoMenu,\n                                title: k.N({\n                                    key: \"miGotoPreviousProblem\",\n                                    comment: [\"&& denotes a mnemonic\"]\n                                }, \"Previous &&Problem\"),\n                                group: \"6_problem_nav\",\n                                order: 2\n                            }\n                        })\n                    }\n                });\n                const le = new N.uy(\"markersNavigationVisible\", !1),\n                    ce = s._l.bindToContribution(oe.get);\n                (0, s.fK)(new ce({\n                    id: \"closeMarkersNavigation\",\n                    precondition: le,\n                    handler: e => e.close(),\n                    kbOpts: {\n                        weight: 150,\n                        kbExpr: c.u.focus,\n                        primary: 9,\n                        secondary: [1033]\n                    }\n                }))\n            },\n            92729: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    DefinitionAction: () => te\n                });\n                var n = i(16268),\n                    o = i(85152),\n                    s = i(15393),\n                    r = i(22258),\n                    a = i(1432),\n                    l = i(98401),\n                    c = i(70666),\n                    d = i(39925),\n                    h = i(65520),\n                    u = i(16830),\n                    g = i(11640),\n                    p = i(84527),\n                    f = i(50187),\n                    m = i(24314),\n                    v = i(29102),\n                    _ = i(44101),\n                    b = i(44318),\n                    w = i(71455),\n                    y = i(4669),\n                    C = i(5976),\n                    x = i(95935),\n                    S = i(63580),\n                    k = i(38819),\n                    L = i(65026),\n                    N = i(72065),\n                    D = i(91847),\n                    I = i(49989),\n                    E = i(59422),\n                    T = function(e, t, i, n) {\n                        var o, s = arguments.length,\n                            r = s < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n                        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) r = Reflect.decorate(e, t, i, n);\n                        else\n                            for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (r = (s < 3 ? o(r) : s > 3 ? o(t, i, r) : o(t, i)) || r);\n                        return s > 3 && r && Object.defineProperty(t, i, r), r\n                    },\n                    M = function(e, t) {\n                        return function(i, n) {\n                            t(i, n, e)\n                        }\n                    };\n                const A = new k.uy(\"hasSymbols\", !1, (0, S.N)(\"hasSymbols\", \"Whether there are symbol locations that can be navigated via keyboard-only.\")),\n                    O = (0, N.yh)(\"ISymbolNavigationService\");\n                let P = class {\n                    constructor(e, t, i, n) {\n                        this._editorService = t, this._notificationService = i, this._keybindingService = n, this._currentModel = void 0, this._currentIdx = -1, this._ignoreEditorChange = !1, this._ctxHasSymbols = A.bindTo(e)\n                    }\n                    reset() {\n                        var e, t;\n                        this._ctxHasSymbols.reset(), null === (e = this._currentState) || void 0 === e || e.dispose(), null === (t = this._currentMessage) || void 0 === t || t.dispose(), this._currentModel = void 0, this._currentIdx = -1\n                    }\n                    put(e) {\n                        const t = e.parent.parent;\n                        if (t.references.length <= 1) return void this.reset();\n                        this._currentModel = t, this._currentIdx = t.references.indexOf(e), this._ctxHasSymbols.set(!0), this._showMessage();\n                        const i = new R(this._editorService),\n                            n = i.onDidChange((e => {\n                                if (this._ignoreEditorChange) return;\n                                const i = this._editorService.getActiveCodeEditor();\n                                if (!i) return;\n                                const n = i.getModel(),\n                                    o = i.getPosition();\n                                if (!n || !o) return;\n                                let s = !1,\n                                    r = !1;\n                                for (const e of t.references)\n                                    if ((0, x.Xy)(e.uri, n.uri)) s = !0, r = r || m.e.containsPosition(e.range, o);\n                                    else if (s) break;\n                                s && r || this.reset()\n                            }));\n                        this._currentState = (0, C.F8)(i, n)\n                    }\n                    revealNext(e) {\n                        if (!this._currentModel) return Promise.resolve();\n                        this._currentIdx += 1, this._currentIdx %= this._currentModel.references.length;\n                        const t = this._currentModel.references[this._currentIdx];\n                        return this._showMessage(), this._ignoreEditorChange = !0, this._editorService.openCodeEditor({\n                            resource: t.uri,\n                            options: {\n                                selection: m.e.collapseToStart(t.range),\n                                selectionRevealType: 3\n                            }\n                        }, e).finally((() => {\n                            this._ignoreEditorChange = !1\n                        }))\n                    }\n                    _showMessage() {\n                        var e;\n                        null === (e = this._currentMessage) || void 0 === e || e.dispose();\n                        const t = this._keybindingService.lookupKeybinding(\"editor.gotoNextSymbolFromResult\"),\n                            i = t ? (0, S.N)(\"location.kb\", \"Symbol {0} of {1}, {2} for next\", this._currentIdx + 1, this._currentModel.references.length, t.getLabel()) : (0, S.N)(\"location\", \"Symbol {0} of {1}\", this._currentIdx + 1, this._currentModel.references.length);\n                        this._currentMessage = this._notificationService.status(i)\n                    }\n                };\n                P = T([M(0, k.i6), M(1, g.$), M(2, E.lT), M(3, D.d)], P), (0, L.z)(O, P, !0), (0, u.fK)(new class extends u._l {\n                    constructor() {\n                        super({\n                            id: \"editor.gotoNextSymbolFromResult\",\n                            precondition: A,\n                            kbOpts: {\n                                weight: 100,\n                                primary: 70\n                            }\n                        })\n                    }\n                    runEditorCommand(e, t) {\n                        return e.get(O).revealNext(t)\n                    }\n                }), I.W.registerCommandAndKeybindingRule({\n                    id: \"editor.gotoNextSymbolFromResult.cancel\",\n                    weight: 100,\n                    when: A,\n                    primary: 9,\n                    handler(e) {\n                        e.get(O).reset()\n                    }\n                });\n                let R = class {\n                    constructor(e) {\n                        this._listener = new Map, this._disposables = new C.SL, this._onDidChange = new y.Q5, this.onDidChange = this._onDidChange.event, this._disposables.add(e.onCodeEditorRemove(this._onDidRemoveEditor, this)), this._disposables.add(e.onCodeEditorAdd(this._onDidAddEditor, this)), e.listCodeEditors().forEach(this._onDidAddEditor, this)\n                    }\n                    dispose() {\n                        this._disposables.dispose(), this._onDidChange.dispose(), (0, C.B9)(this._listener.values())\n                    }\n                    _onDidAddEditor(e) {\n                        this._listener.set(e, (0, C.F8)(e.onDidChangeCursorPosition((t => this._onDidChange.fire({\n                            editor: e\n                        }))), e.onDidChangeModelContent((t => this._onDidChange.fire({\n                            editor: e\n                        })))))\n                    }\n                    _onDidRemoveEditor(e) {\n                        var t;\n                        null === (t = this._listener.get(e)) || void 0 === t || t.dispose(), this._listener.delete(e)\n                    }\n                };\n                R = T([M(0, g.$)], R);\n                var F, B, V, W, H, z, j, U, $ = i(82276),\n                    K = i(22043),\n                    q = i(84144),\n                    Z = i(94565),\n                    G = i(90535),\n                    Y = i(91691),\n                    Q = function(e, t, i, n) {\n                        return new(i || (i = Promise))((function(o, s) {\n                            function r(e) {\n                                try {\n                                    l(n.next(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function a(e) {\n                                try {\n                                    l(n.throw(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function l(e) {\n                                var t;\n                                e.done ? o(e.value) : (t = e.value, t instanceof i ? t : new i((function(e) {\n                                    e(t)\n                                }))).then(r, a)\n                            }\n                            l((n = n.apply(e, t || [])).next())\n                        }))\n                    };\n                q.BH.appendMenuItem(q.eH.EditorContext, {\n                    submenu: q.eH.EditorContextPeek,\n                    title: S.N(\"peek.submenu\", \"Peek\"),\n                    group: \"navigation\",\n                    order: 100\n                });\n                const X = new Set;\n\n                function J(e) {\n                    const t = new e;\n                    return (0, u.QG)(t), X.add(t.id), t\n                }\n                class ee extends u.R6 {\n                    constructor(e, t) {\n                        super(t), this._configuration = e\n                    }\n                    run(e, t) {\n                        if (!t.hasModel()) return Promise.resolve(void 0);\n                        const i = e.get(E.lT),\n                            n = e.get(g.$),\n                            r = e.get(G.e),\n                            a = e.get(O),\n                            l = t.getModel(),\n                            c = t.getPosition(),\n                            h = new d.Dl(t, 5),\n                            u = (0, s.eP)(this._getLocationModel(l, c, h.token), h.token).then((e => Q(this, void 0, void 0, (function*() {\n                                if (!e || h.token.isCancellationRequested) return;\n                                let i;\n                                if ((0, o.Z9)(e.ariaMessage), e.referenceAt(l.uri, c)) {\n                                    const e = this._getAlternativeCommand(t);\n                                    e !== this.id && X.has(e) && (i = t.getAction(e))\n                                }\n                                const s = e.references.length;\n                                if (0 === s) {\n                                    if (!this._configuration.muteMessage) {\n                                        const e = l.getWordAtPosition(c);\n                                        $.O.get(t).showMessage(this._getNoResultFoundMessage(e), c)\n                                    }\n                                } else {\n                                    if (1 !== s || !i) return this._onResult(n, a, t, e);\n                                    i.run()\n                                }\n                            }))), (e => {\n                                i.error(e)\n                            })).finally((() => {\n                                h.dispose()\n                            }));\n                        return r.showWhile(u, 250), u\n                    }\n                    _onResult(e, t, i, n) {\n                        return Q(this, void 0, void 0, (function*() {\n                            const o = this._getGoToPreference(i);\n                            if (i instanceof p.H || !(this._configuration.openInPeek || \"peek\" === o && n.references.length > 1)) {\n                                const s = n.firstReference(),\n                                    r = n.references.length > 1 && \"gotoAndPeek\" === o,\n                                    a = yield this._openReference(i, e, s, this._configuration.openToSide, !r);\n                                r && a ? this._openInPeek(a, n) : n.dispose(), \"goto\" === o && t.put(s)\n                            } else this._openInPeek(i, n)\n                        }))\n                    }\n                    _openReference(e, t, i, n, o) {\n                        return Q(this, void 0, void 0, (function*() {\n                            let s;\n                            if ((0, _.vx)(i) && (s = i.targetSelectionRange), s || (s = i.range), !s) return;\n                            const r = yield t.openCodeEditor({\n                                resource: i.uri,\n                                options: {\n                                    selection: m.e.collapseToStart(s),\n                                    selectionRevealType: 3\n                                }\n                            }, e, n);\n                            if (r) {\n                                if (o) {\n                                    const e = r.getModel(),\n                                        t = r.deltaDecorations([], [{\n                                            range: s,\n                                            options: {\n                                                description: \"symbol-navigate-action-highlight\",\n                                                className: \"symbolHighlight\"\n                                            }\n                                        }]);\n                                    setTimeout((() => {\n                                        r.getModel() === e && r.deltaDecorations(t, [])\n                                    }), 350)\n                                }\n                                return r\n                            }\n                        }))\n                    }\n                    _openInPeek(e, t) {\n                        let i = b.J.get(e);\n                        i && e.hasModel() ? i.toggleWidget(e.getSelection(), (0, s.PG)((e => Promise.resolve(t))), this._configuration.openInPeek) : t.dispose()\n                    }\n                }\n                class te extends ee {\n                    _getLocationModel(e, t, i) {\n                        return Q(this, void 0, void 0, (function*() {\n                            return new w.oQ(yield(0, Y.nD)(e, t, i), S.N(\"def.title\", \"Definitions\"))\n                        }))\n                    }\n                    _getNoResultFoundMessage(e) {\n                        return e && e.word ? S.N(\"noResultWord\", \"No definition found for '{0}'\", e.word) : S.N(\"generic.noResults\", \"No definition found\")\n                    }\n                    _getAlternativeCommand(e) {\n                        return e.getOption(50).alternativeDefinitionCommand\n                    }\n                    _getGoToPreference(e) {\n                        return e.getOption(50).multipleDefinitions\n                    }\n                }\n                const ie = a.$L && !n.$W ? 2118 : 70;\n                J(((F = class e extends te {\n                    constructor() {\n                        super({\n                            openToSide: !1,\n                            openInPeek: !1,\n                            muteMessage: !1\n                        }, {\n                            id: e.id,\n                            label: S.N(\"actions.goToDecl.label\", \"Go to Definition\"),\n                            alias: \"Go to Definition\",\n                            precondition: k.Ao.and(v.u.hasDefinitionProvider, v.u.isInWalkThroughSnippet.toNegated()),\n                            kbOpts: {\n                                kbExpr: v.u.editorTextFocus,\n                                primary: ie,\n                                weight: 100\n                            },\n                            contextMenuOpts: {\n                                group: \"navigation\",\n                                order: 1.1\n                            }\n                        }), Z.P.registerCommandAlias(\"editor.action.goToDeclaration\", e.id)\n                    }\n                }).id = \"editor.action.revealDefinition\", F)), J(((B = class e extends te {\n                    constructor() {\n                        super({\n                            openToSide: !0,\n                            openInPeek: !1,\n                            muteMessage: !1\n                        }, {\n                            id: e.id,\n                            label: S.N(\"actions.goToDeclToSide.label\", \"Open Definition to the Side\"),\n                            alias: \"Open Definition to the Side\",\n                            precondition: k.Ao.and(v.u.hasDefinitionProvider, v.u.isInWalkThroughSnippet.toNegated()),\n                            kbOpts: {\n                                kbExpr: v.u.editorTextFocus,\n                                primary: (0, r.gx)(2089, ie),\n                                weight: 100\n                            }\n                        }), Z.P.registerCommandAlias(\"editor.action.openDeclarationToTheSide\", e.id)\n                    }\n                }).id = \"editor.action.revealDefinitionAside\", B)), J(((V = class e extends te {\n                    constructor() {\n                        super({\n                            openToSide: !1,\n                            openInPeek: !0,\n                            muteMessage: !1\n                        }, {\n                            id: e.id,\n                            label: S.N(\"actions.previewDecl.label\", \"Peek Definition\"),\n                            alias: \"Peek Definition\",\n                            precondition: k.Ao.and(v.u.hasDefinitionProvider, K.Jy.notInPeekEditor, v.u.isInWalkThroughSnippet.toNegated()),\n                            kbOpts: {\n                                kbExpr: v.u.editorTextFocus,\n                                primary: 582,\n                                linux: {\n                                    primary: 3140\n                                },\n                                weight: 100\n                            },\n                            contextMenuOpts: {\n                                menuId: q.eH.EditorContextPeek,\n                                group: \"peek\",\n                                order: 2\n                            }\n                        }), Z.P.registerCommandAlias(\"editor.action.previewDeclaration\", e.id)\n                    }\n                }).id = \"editor.action.peekDefinition\", V));\n                class ne extends ee {\n                    _getLocationModel(e, t, i) {\n                        return Q(this, void 0, void 0, (function*() {\n                            return new w.oQ(yield(0, Y.zq)(e, t, i), S.N(\"decl.title\", \"Declarations\"))\n                        }))\n                    }\n                    _getNoResultFoundMessage(e) {\n                        return e && e.word ? S.N(\"decl.noResultWord\", \"No declaration found for '{0}'\", e.word) : S.N(\"decl.generic.noResults\", \"No declaration found\")\n                    }\n                    _getAlternativeCommand(e) {\n                        return e.getOption(50).alternativeDeclarationCommand\n                    }\n                    _getGoToPreference(e) {\n                        return e.getOption(50).multipleDeclarations\n                    }\n                }\n                J(((W = class e extends ne {\n                    constructor() {\n                        super({\n                            openToSide: !1,\n                            openInPeek: !1,\n                            muteMessage: !1\n                        }, {\n                            id: e.id,\n                            label: S.N(\"actions.goToDeclaration.label\", \"Go to Declaration\"),\n                            alias: \"Go to Declaration\",\n                            precondition: k.Ao.and(v.u.hasDeclarationProvider, v.u.isInWalkThroughSnippet.toNegated()),\n                            contextMenuOpts: {\n                                group: \"navigation\",\n                                order: 1.3\n                            }\n                        })\n                    }\n                    _getNoResultFoundMessage(e) {\n                        return e && e.word ? S.N(\"decl.noResultWord\", \"No declaration found for '{0}'\", e.word) : S.N(\"decl.generic.noResults\", \"No declaration found\")\n                    }\n                }).id = \"editor.action.revealDeclaration\", W)), J(class extends ne {\n                    constructor() {\n                        super({\n                            openToSide: !1,\n                            openInPeek: !0,\n                            muteMessage: !1\n                        }, {\n                            id: \"editor.action.peekDeclaration\",\n                            label: S.N(\"actions.peekDecl.label\", \"Peek Declaration\"),\n                            alias: \"Peek Declaration\",\n                            precondition: k.Ao.and(v.u.hasDeclarationProvider, K.Jy.notInPeekEditor, v.u.isInWalkThroughSnippet.toNegated()),\n                            contextMenuOpts: {\n                                menuId: q.eH.EditorContextPeek,\n                                group: \"peek\",\n                                order: 3\n                            }\n                        })\n                    }\n                });\n                class oe extends ee {\n                    _getLocationModel(e, t, i) {\n                        return Q(this, void 0, void 0, (function*() {\n                            return new w.oQ(yield(0, Y.L3)(e, t, i), S.N(\"typedef.title\", \"Type Definitions\"))\n                        }))\n                    }\n                    _getNoResultFoundMessage(e) {\n                        return e && e.word ? S.N(\"goToTypeDefinition.noResultWord\", \"No type definition found for '{0}'\", e.word) : S.N(\"goToTypeDefinition.generic.noResults\", \"No type definition found\")\n                    }\n                    _getAlternativeCommand(e) {\n                        return e.getOption(50).alternativeTypeDefinitionCommand\n                    }\n                    _getGoToPreference(e) {\n                        return e.getOption(50).multipleTypeDefinitions\n                    }\n                }\n                J(((H = class e extends oe {\n                    constructor() {\n                        super({\n                            openToSide: !1,\n                            openInPeek: !1,\n                            muteMessage: !1\n                        }, {\n                            id: e.ID,\n                            label: S.N(\"actions.goToTypeDefinition.label\", \"Go to Type Definition\"),\n                            alias: \"Go to Type Definition\",\n                            precondition: k.Ao.and(v.u.hasTypeDefinitionProvider, v.u.isInWalkThroughSnippet.toNegated()),\n                            kbOpts: {\n                                kbExpr: v.u.editorTextFocus,\n                                primary: 0,\n                                weight: 100\n                            },\n                            contextMenuOpts: {\n                                group: \"navigation\",\n                                order: 1.4\n                            }\n                        })\n                    }\n                }).ID = \"editor.action.goToTypeDefinition\", H)), J(((z = class e extends oe {\n                    constructor() {\n                        super({\n                            openToSide: !1,\n                            openInPeek: !0,\n                            muteMessage: !1\n                        }, {\n                            id: e.ID,\n                            label: S.N(\"actions.peekTypeDefinition.label\", \"Peek Type Definition\"),\n                            alias: \"Peek Type Definition\",\n                            precondition: k.Ao.and(v.u.hasTypeDefinitionProvider, K.Jy.notInPeekEditor, v.u.isInWalkThroughSnippet.toNegated()),\n                            contextMenuOpts: {\n                                menuId: q.eH.EditorContextPeek,\n                                group: \"peek\",\n                                order: 4\n                            }\n                        })\n                    }\n                }).ID = \"editor.action.peekTypeDefinition\", z));\n                class se extends ee {\n                    _getLocationModel(e, t, i) {\n                        return Q(this, void 0, void 0, (function*() {\n                            return new w.oQ(yield(0, Y.f4)(e, t, i), S.N(\"impl.title\", \"Implementations\"))\n                        }))\n                    }\n                    _getNoResultFoundMessage(e) {\n                        return e && e.word ? S.N(\"goToImplementation.noResultWord\", \"No implementation found for '{0}'\", e.word) : S.N(\"goToImplementation.generic.noResults\", \"No implementation found\")\n                    }\n                    _getAlternativeCommand(e) {\n                        return e.getOption(50).alternativeImplementationCommand\n                    }\n                    _getGoToPreference(e) {\n                        return e.getOption(50).multipleImplementations\n                    }\n                }\n                J(((j = class e extends se {\n                    constructor() {\n                        super({\n                            openToSide: !1,\n                            openInPeek: !1,\n                            muteMessage: !1\n                        }, {\n                            id: e.ID,\n                            label: S.N(\"actions.goToImplementation.label\", \"Go to Implementations\"),\n                            alias: \"Go to Implementations\",\n                            precondition: k.Ao.and(v.u.hasImplementationProvider, v.u.isInWalkThroughSnippet.toNegated()),\n                            kbOpts: {\n                                kbExpr: v.u.editorTextFocus,\n                                primary: 2118,\n                                weight: 100\n                            },\n                            contextMenuOpts: {\n                                group: \"navigation\",\n                                order: 1.45\n                            }\n                        })\n                    }\n                }).ID = \"editor.action.goToImplementation\", j)), J(((U = class e extends se {\n                    constructor() {\n                        super({\n                            openToSide: !1,\n                            openInPeek: !0,\n                            muteMessage: !1\n                        }, {\n                            id: e.ID,\n                            label: S.N(\"actions.peekImplementation.label\", \"Peek Implementations\"),\n                            alias: \"Peek Implementations\",\n                            precondition: k.Ao.and(v.u.hasImplementationProvider, K.Jy.notInPeekEditor, v.u.isInWalkThroughSnippet.toNegated()),\n                            kbOpts: {\n                                kbExpr: v.u.editorTextFocus,\n                                primary: 3142,\n                                weight: 100\n                            },\n                            contextMenuOpts: {\n                                menuId: q.eH.EditorContextPeek,\n                                group: \"peek\",\n                                order: 5\n                            }\n                        })\n                    }\n                }).ID = \"editor.action.peekImplementation\", U));\n                class re extends ee {\n                    _getNoResultFoundMessage(e) {\n                        return e ? S.N(\"references.no\", \"No references found for '{0}'\", e.word) : S.N(\"references.noGeneric\", \"No references found\")\n                    }\n                    _getAlternativeCommand(e) {\n                        return e.getOption(50).alternativeReferenceCommand\n                    }\n                    _getGoToPreference(e) {\n                        return e.getOption(50).multipleReferences\n                    }\n                }\n                J(class extends re {\n                    constructor() {\n                        super({\n                            openToSide: !1,\n                            openInPeek: !1,\n                            muteMessage: !1\n                        }, {\n                            id: \"editor.action.goToReferences\",\n                            label: S.N(\"goToReferences.label\", \"Go to References\"),\n                            alias: \"Go to References\",\n                            precondition: k.Ao.and(v.u.hasReferenceProvider, K.Jy.notInPeekEditor, v.u.isInWalkThroughSnippet.toNegated()),\n                            kbOpts: {\n                                kbExpr: v.u.editorTextFocus,\n                                primary: 1094,\n                                weight: 100\n                            },\n                            contextMenuOpts: {\n                                group: \"navigation\",\n                                order: 1.45\n                            }\n                        })\n                    }\n                    _getLocationModel(e, t, i) {\n                        return Q(this, void 0, void 0, (function*() {\n                            return new w.oQ(yield(0, Y.aA)(e, t, !0, i), S.N(\"ref.title\", \"References\"))\n                        }))\n                    }\n                }), J(class extends re {\n                    constructor() {\n                        super({\n                            openToSide: !1,\n                            openInPeek: !0,\n                            muteMessage: !1\n                        }, {\n                            id: \"editor.action.referenceSearch.trigger\",\n                            label: S.N(\"references.action.label\", \"Peek References\"),\n                            alias: \"Peek References\",\n                            precondition: k.Ao.and(v.u.hasReferenceProvider, K.Jy.notInPeekEditor, v.u.isInWalkThroughSnippet.toNegated()),\n                            contextMenuOpts: {\n                                menuId: q.eH.EditorContextPeek,\n                                group: \"peek\",\n                                order: 6\n                            }\n                        })\n                    }\n                    _getLocationModel(e, t, i) {\n                        return Q(this, void 0, void 0, (function*() {\n                            return new w.oQ(yield(0, Y.aA)(e, t, !1, i), S.N(\"ref.title\", \"References\"))\n                        }))\n                    }\n                });\n                class ae extends ee {\n                    constructor(e, t, i) {\n                        super(e, {\n                            id: \"editor.action.goToLocation\",\n                            label: S.N(\"label.generic\", \"Go to Any Symbol\"),\n                            alias: \"Go to Any Symbol\",\n                            precondition: k.Ao.and(K.Jy.notInPeekEditor, v.u.isInWalkThroughSnippet.toNegated())\n                        }), this._references = t, this._gotoMultipleBehaviour = i\n                    }\n                    _getLocationModel(e, t, i) {\n                        return Q(this, void 0, void 0, (function*() {\n                            return new w.oQ(this._references, S.N(\"generic.title\", \"Locations\"))\n                        }))\n                    }\n                    _getNoResultFoundMessage(e) {\n                        return e && S.N(\"generic.noResult\", \"No results for '{0}'\", e.word) || \"\"\n                    }\n                    _getGoToPreference(e) {\n                        var t;\n                        return null !== (t = this._gotoMultipleBehaviour) && void 0 !== t ? t : e.getOption(50).multipleReferences\n                    }\n                    _getAlternativeCommand() {\n                        return \"\"\n                    }\n                }\n                Z.P.registerCommand({\n                    id: \"editor.action.goToLocations\",\n                    description: {\n                        description: \"Go to locations from a position in a file\",\n                        args: [{\n                            name: \"uri\",\n                            description: \"The text document in which to start\",\n                            constraint: c.o\n                        }, {\n                            name: \"position\",\n                            description: \"The position at which to start\",\n                            constraint: f.L.isIPosition\n                        }, {\n                            name: \"locations\",\n                            description: \"An array of locations.\",\n                            constraint: Array\n                        }, {\n                            name: \"multiple\",\n                            description: \"Define what to do when having multiple results, either `peek`, `gotoAndPeek`, or `goto\"\n                        }, {\n                            name: \"noResultsMessage\",\n                            description: \"Human readable message that shows when locations is empty.\"\n                        }]\n                    },\n                    handler: (e, t, i, n, o, s, r) => Q(void 0, void 0, void 0, (function*() {\n                        (0, l.p_)(c.o.isUri(t)), (0, l.p_)(f.L.isIPosition(i)), (0, l.p_)(Array.isArray(n)), (0, l.p_)(void 0 === o || \"string\" == typeof o), (0, l.p_)(void 0 === r || \"boolean\" == typeof r);\n                        const a = e.get(g.$),\n                            d = yield a.openCodeEditor({\n                                resource: t\n                            }, a.getFocusedCodeEditor());\n                        if ((0, h.CL)(d)) return d.setPosition(i), d.revealPositionInCenterIfOutsideViewport(i, 0), d.invokeWithinContext((e => {\n                            const t = new class extends ae {\n                                _getNoResultFoundMessage(e) {\n                                    return s || super._getNoResultFoundMessage(e)\n                                }\n                            }({\n                                muteMessage: !Boolean(s),\n                                openInPeek: Boolean(r),\n                                openToSide: !1\n                            }, n, o);\n                            e.get(N.TG).invokeFunction(t.run.bind(t), d)\n                        }))\n                    }))\n                }), Z.P.registerCommand({\n                    id: \"editor.action.peekLocations\",\n                    description: {\n                        description: \"Peek locations from a position in a file\",\n                        args: [{\n                            name: \"uri\",\n                            description: \"The text document in which to start\",\n                            constraint: c.o\n                        }, {\n                            name: \"position\",\n                            description: \"The position at which to start\",\n                            constraint: f.L.isIPosition\n                        }, {\n                            name: \"locations\",\n                            description: \"An array of locations.\",\n                            constraint: Array\n                        }, {\n                            name: \"multiple\",\n                            description: \"Define what to do when having multiple results, either `peek`, `gotoAndPeek`, or `goto\"\n                        }]\n                    },\n                    handler: (e, t, i, n, o) => Q(void 0, void 0, void 0, (function*() {\n                        e.get(Z.H).executeCommand(\"editor.action.goToLocations\", t, i, n, o, void 0, !0)\n                    }))\n                }), Z.P.registerCommand({\n                    id: \"editor.action.findReferences\",\n                    handler: (e, t, i) => {\n                        (0, l.p_)(c.o.isUri(t)), (0, l.p_)(f.L.isIPosition(i));\n                        const n = e.get(g.$);\n                        return n.openCodeEditor({\n                            resource: t\n                        }, n.getFocusedCodeEditor()).then((e => {\n                            if (!(0, h.CL)(e) || !e.hasModel()) return;\n                            const t = b.J.get(e);\n                            if (!t) return;\n                            const n = (0, s.PG)((t => (0, Y.aA)(e.getModel(), f.L.lift(i), !1, t).then((e => new w.oQ(e, S.N(\"ref.title\", \"References\")))))),\n                                o = new m.e(i.lineNumber, i.column, i.lineNumber, i.column);\n                            return Promise.resolve(t.toggleWidget(o, n, !1))\n                        }))\n                    }\n                }), Z.P.registerCommandAlias(\"editor.action.showReferences\", \"editor.action.peekLocations\"), q.BH.appendMenuItems([{\n                    id: q.eH.MenubarGoMenu,\n                    item: {\n                        command: {\n                            id: \"editor.action.revealDefinition\",\n                            title: S.N({\n                                key: \"miGotoDefinition\",\n                                comment: [\"&& denotes a mnemonic\"]\n                            }, \"Go to &&Definition\")\n                        },\n                        group: \"4_symbol_nav\",\n                        order: 2\n                    }\n                }, {\n                    id: q.eH.MenubarGoMenu,\n                    item: {\n                        command: {\n                            id: \"editor.action.revealDeclaration\",\n                            title: S.N({\n                                key: \"miGotoDeclaration\",\n                                comment: [\"&& denotes a mnemonic\"]\n                            }, \"Go to &&Declaration\")\n                        },\n                        group: \"4_symbol_nav\",\n                        order: 3\n                    }\n                }, {\n                    id: q.eH.MenubarGoMenu,\n                    item: {\n                        command: {\n                            id: \"editor.action.goToTypeDefinition\",\n                            title: S.N({\n                                key: \"miGotoTypeDefinition\",\n                                comment: [\"&& denotes a mnemonic\"]\n                            }, \"Go to &&Type Definition\")\n                        },\n                        group: \"4_symbol_nav\",\n                        order: 3\n                    }\n                }, {\n                    id: q.eH.MenubarGoMenu,\n                    item: {\n                        command: {\n                            id: \"editor.action.goToImplementation\",\n                            title: S.N({\n                                key: \"miGotoImplementation\",\n                                comment: [\"&& denotes a mnemonic\"]\n                            }, \"Go to &&Implementations\")\n                        },\n                        group: \"4_symbol_nav\",\n                        order: 4\n                    }\n                }, {\n                    id: q.eH.MenubarGoMenu,\n                    item: {\n                        command: {\n                            id: \"editor.action.goToReferences\",\n                            title: S.N({\n                                key: \"miGotoReference\",\n                                comment: [\"&& denotes a mnemonic\"]\n                            }, \"Go to &&References\")\n                        },\n                        group: \"4_symbol_nav\",\n                        order: 5\n                    }\n                }])\n            },\n            91691: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    L3: () => g,\n                    aA: () => p,\n                    f4: () => u,\n                    nD: () => d,\n                    zq: () => h\n                });\n                var n = i(71050),\n                    o = i(17301),\n                    s = i(16830),\n                    r = i(44101),\n                    a = i(71455),\n                    l = function(e, t, i, n) {\n                        return new(i || (i = Promise))((function(o, s) {\n                            function r(e) {\n                                try {\n                                    l(n.next(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function a(e) {\n                                try {\n                                    l(n.throw(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function l(e) {\n                                var t;\n                                e.done ? o(e.value) : (t = e.value, t instanceof i ? t : new i((function(e) {\n                                    e(t)\n                                }))).then(r, a)\n                            }\n                            l((n = n.apply(e, t || [])).next())\n                        }))\n                    };\n\n                function c(e, t, i, n) {\n                    const s = i.ordered(e).map((i => Promise.resolve(n(i, e, t)).then(void 0, (e => {\n                        (0, o.Cp)(e)\n                    }))));\n                    return Promise.all(s).then((e => {\n                        const t = [];\n                        for (let i of e) Array.isArray(i) ? t.push(...i) : i && t.push(i);\n                        return t\n                    }))\n                }\n\n                function d(e, t, i) {\n                    return c(e, t, r.Ct, ((e, t, n) => e.provideDefinition(t, n, i)))\n                }\n\n                function h(e, t, i) {\n                    return c(e, t, r.RN, ((e, t, n) => e.provideDeclaration(t, n, i)))\n                }\n\n                function u(e, t, i) {\n                    return c(e, t, r.vI, ((e, t, n) => e.provideImplementation(t, n, i)))\n                }\n\n                function g(e, t, i) {\n                    return c(e, t, r.tA, ((e, t, n) => e.provideTypeDefinition(t, n, i)))\n                }\n\n                function p(e, t, i, n) {\n                    return c(e, t, r.FL, ((e, t, o) => l(this, void 0, void 0, (function*() {\n                        const s = yield e.provideReferences(t, o, {\n                            includeDeclaration: !0\n                        }, n);\n                        if (!i || !s || 2 !== s.length) return s;\n                        const r = yield e.provideReferences(t, o, {\n                            includeDeclaration: !1\n                        }, n);\n                        return r && 1 === r.length ? r : s\n                    }))))\n                }\n\n                function f(e) {\n                    return l(this, void 0, void 0, (function*() {\n                        const t = yield e(), i = new a.oQ(t, \"\"), n = i.references.map((e => e.link));\n                        return i.dispose(), n\n                    }))\n                }(0, s.sb)(\"_executeDefinitionProvider\", ((e, t) => f((() => d(e, t, n.T.None))))), (0, s.sb)(\"_executeDeclarationProvider\", ((e, t) => f((() => h(e, t, n.T.None))))), (0, s.sb)(\"_executeImplementationProvider\", ((e, t) => f((() => u(e, t, n.T.None))))), (0, s.sb)(\"_executeTypeDefinitionProvider\", ((e, t) => f((() => g(e, t, n.T.None))))), (0, s.sb)(\"_executeReferenceProvider\", ((e, t) => f((() => p(e, t, !1, n.T.None)))))\n            },\n            69241: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    yN: () => h\n                });\n                var n = i(4669),\n                    o = i(5976),\n                    s = i(1432);\n\n                function r(e, t) {\n                    return !!e[t]\n                }\n                class a {\n                    constructor(e, t) {\n                        this.target = e.target, this.hasTriggerModifier = r(e.event, t.triggerModifier), this.hasSideBySideModifier = r(e.event, t.triggerSideBySideModifier), this.isNoneOrSingleMouseDown = e.event.detail <= 1\n                    }\n                }\n                class l {\n                    constructor(e, t) {\n                        this.keyCodeIsTriggerKey = e.keyCode === t.triggerKey, this.keyCodeIsSideBySideKey = e.keyCode === t.triggerSideBySideKey, this.hasTriggerModifier = r(e, t.triggerModifier)\n                    }\n                }\n                class c {\n                    constructor(e, t, i, n) {\n                        this.triggerKey = e, this.triggerModifier = t, this.triggerSideBySideKey = i, this.triggerSideBySideModifier = n\n                    }\n                    equals(e) {\n                        return this.triggerKey === e.triggerKey && this.triggerModifier === e.triggerModifier && this.triggerSideBySideKey === e.triggerSideBySideKey && this.triggerSideBySideModifier === e.triggerSideBySideModifier\n                    }\n                }\n\n                function d(e) {\n                    return \"altKey\" === e ? s.dz ? new c(57, \"metaKey\", 6, \"altKey\") : new c(5, \"ctrlKey\", 6, \"altKey\") : s.dz ? new c(6, \"altKey\", 57, \"metaKey\") : new c(6, \"altKey\", 5, \"ctrlKey\")\n                }\n                class h extends o.JT {\n                    constructor(e) {\n                        super(), this._onMouseMoveOrRelevantKeyDown = this._register(new n.Q5), this.onMouseMoveOrRelevantKeyDown = this._onMouseMoveOrRelevantKeyDown.event, this._onExecute = this._register(new n.Q5), this.onExecute = this._onExecute.event, this._onCancel = this._register(new n.Q5), this.onCancel = this._onCancel.event, this._editor = e, this._opts = d(this._editor.getOption(69)), this._lastMouseMoveEvent = null, this._hasTriggerKeyOnMouseDown = !1, this._lineNumberOnMouseDown = 0, this._register(this._editor.onDidChangeConfiguration((e => {\n                            if (e.hasChanged(69)) {\n                                const e = d(this._editor.getOption(69));\n                                if (this._opts.equals(e)) return;\n                                this._opts = e, this._lastMouseMoveEvent = null, this._hasTriggerKeyOnMouseDown = !1, this._lineNumberOnMouseDown = 0, this._onCancel.fire()\n                            }\n                        }))), this._register(this._editor.onMouseMove((e => this._onEditorMouseMove(new a(e, this._opts))))), this._register(this._editor.onMouseDown((e => this._onEditorMouseDown(new a(e, this._opts))))), this._register(this._editor.onMouseUp((e => this._onEditorMouseUp(new a(e, this._opts))))), this._register(this._editor.onKeyDown((e => this._onEditorKeyDown(new l(e, this._opts))))), this._register(this._editor.onKeyUp((e => this._onEditorKeyUp(new l(e, this._opts))))), this._register(this._editor.onMouseDrag((() => this._resetHandler()))), this._register(this._editor.onDidChangeCursorSelection((e => this._onDidChangeCursorSelection(e)))), this._register(this._editor.onDidChangeModel((e => this._resetHandler()))), this._register(this._editor.onDidChangeModelContent((() => this._resetHandler()))), this._register(this._editor.onDidScrollChange((e => {\n                            (e.scrollTopChanged || e.scrollLeftChanged) && this._resetHandler()\n                        })))\n                    }\n                    _onDidChangeCursorSelection(e) {\n                        e.selection && e.selection.startColumn !== e.selection.endColumn && this._resetHandler()\n                    }\n                    _onEditorMouseMove(e) {\n                        this._lastMouseMoveEvent = e, this._onMouseMoveOrRelevantKeyDown.fire([e, null])\n                    }\n                    _onEditorMouseDown(e) {\n                        this._hasTriggerKeyOnMouseDown = e.hasTriggerModifier, this._lineNumberOnMouseDown = e.target.position ? e.target.position.lineNumber : 0\n                    }\n                    _onEditorMouseUp(e) {\n                        const t = e.target.position ? e.target.position.lineNumber : 0;\n                        this._hasTriggerKeyOnMouseDown && this._lineNumberOnMouseDown && this._lineNumberOnMouseDown === t && this._onExecute.fire(e)\n                    }\n                    _onEditorKeyDown(e) {\n                        this._lastMouseMoveEvent && (e.keyCodeIsTriggerKey || e.keyCodeIsSideBySideKey && e.hasTriggerModifier) ? this._onMouseMoveOrRelevantKeyDown.fire([this._lastMouseMoveEvent, e]) : e.hasTriggerModifier && this._onCancel.fire()\n                    }\n                    _onEditorKeyUp(e) {\n                        e.keyCodeIsTriggerKey && this._onCancel.fire()\n                    }\n                    _resetHandler() {\n                        this._lastMouseMoveEvent = null, this._hasTriggerKeyOnMouseDown = !1, this._onCancel.fire()\n                    }\n                }\n            },\n            10365: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    GotoDefinitionAtPositionEditorContribution: () => k\n                });\n                var n = i(15393),\n                    o = i(17301),\n                    s = i(59365),\n                    r = i(5976),\n                    a = i(98401),\n                    l = (i(96394), i(39925)),\n                    c = i(16830),\n                    d = i(50187),\n                    h = i(24314),\n                    u = i(44101),\n                    g = i(71531),\n                    p = i(88216),\n                    f = i(69241),\n                    m = i(22043),\n                    v = i(63580),\n                    _ = i(38819),\n                    b = i(73910),\n                    w = i(97781),\n                    y = i(92729),\n                    C = i(91691),\n                    x = function(e, t, i, n) {\n                        var o, s = arguments.length,\n                            r = s < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n                        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) r = Reflect.decorate(e, t, i, n);\n                        else\n                            for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (r = (s < 3 ? o(r) : s > 3 ? o(t, i, r) : o(t, i)) || r);\n                        return s > 3 && r && Object.defineProperty(t, i, r), r\n                    },\n                    S = function(e, t) {\n                        return function(i, n) {\n                            t(i, n, e)\n                        }\n                    };\n                let k = class e {\n                    constructor(e, t, i) {\n                        this.textModelResolverService = t, this.modeService = i, this.toUnhook = new r.SL, this.toUnhookForKeyboard = new r.SL, this.linkDecorations = [], this.currentWordAtPosition = null, this.previousPromise = null, this.editor = e;\n                        let n = new f.yN(e);\n                        this.toUnhook.add(n), this.toUnhook.add(n.onMouseMoveOrRelevantKeyDown((([e, t]) => {\n                            this.startFindDefinitionFromMouse(e, (0, a.f6)(t))\n                        }))), this.toUnhook.add(n.onExecute((e => {\n                            this.isEnabled(e) && this.gotoDefinition(e.target.position, e.hasSideBySideModifier).then((() => {\n                                this.removeLinkDecorations()\n                            }), (e => {\n                                this.removeLinkDecorations(), (0, o.dL)(e)\n                            }))\n                        }))), this.toUnhook.add(n.onCancel((() => {\n                            this.removeLinkDecorations(), this.currentWordAtPosition = null\n                        })))\n                    }\n                    static get(t) {\n                        return t.getContribution(e.ID)\n                    }\n                    startFindDefinitionFromCursor(e) {\n                        return this.startFindDefinition(e).then((() => {\n                            this.toUnhookForKeyboard.add(this.editor.onDidChangeCursorPosition((() => {\n                                this.currentWordAtPosition = null, this.removeLinkDecorations(), this.toUnhookForKeyboard.clear()\n                            }))), this.toUnhookForKeyboard.add(this.editor.onKeyDown((e => {\n                                e && (this.currentWordAtPosition = null, this.removeLinkDecorations(), this.toUnhookForKeyboard.clear())\n                            })))\n                        }))\n                    }\n                    startFindDefinitionFromMouse(e, t) {\n                        if (9 === e.target.type && this.linkDecorations.length > 0) return;\n                        if (!this.editor.hasModel() || !this.isEnabled(e, t)) return this.currentWordAtPosition = null, void this.removeLinkDecorations();\n                        const i = e.target.position;\n                        this.startFindDefinition(i)\n                    }\n                    startFindDefinition(e) {\n                        var t;\n                        this.toUnhookForKeyboard.clear();\n                        const i = e ? null === (t = this.editor.getModel()) || void 0 === t ? void 0 : t.getWordAtPosition(e) : null;\n                        if (!i) return this.currentWordAtPosition = null, this.removeLinkDecorations(), Promise.resolve(0);\n                        if (this.currentWordAtPosition && this.currentWordAtPosition.startColumn === i.startColumn && this.currentWordAtPosition.endColumn === i.endColumn && this.currentWordAtPosition.word === i.word) return Promise.resolve(0);\n                        this.currentWordAtPosition = i;\n                        let r = new l.yy(this.editor, 15);\n                        return this.previousPromise && (this.previousPromise.cancel(), this.previousPromise = null), this.previousPromise = (0, n.PG)((t => this.findDefinition(e, t))), this.previousPromise.then((t => {\n                            if (t && t.length && r.validate(this.editor))\n                                if (t.length > 1) this.addDecoration(new h.e(e.lineNumber, i.startColumn, e.lineNumber, i.endColumn), (new s.W5).appendText(v.N(\"multipleResults\", \"Click to show {0} definitions.\", t.length)));\n                                else {\n                                    let n = t[0];\n                                    if (!n.uri) return;\n                                    this.textModelResolverService.createModelReference(n.uri).then((t => {\n                                        if (!t.object || !t.object.textEditorModel) return void t.dispose();\n                                        const {\n                                            object: {\n                                                textEditorModel: o\n                                            }\n                                        } = t, {\n                                            startLineNumber: r\n                                        } = n.range;\n                                        if (r < 1 || r > o.getLineCount()) return void t.dispose();\n                                        const a = this.getPreviewValue(o, r, n);\n                                        let l;\n                                        l = n.originSelectionRange ? h.e.lift(n.originSelectionRange) : new h.e(e.lineNumber, i.startColumn, e.lineNumber, i.endColumn);\n                                        const c = this.modeService.getModeIdByFilepathOrFirstLine(o.uri);\n                                        this.addDecoration(l, (new s.W5).appendCodeblock(c || \"\", a)), t.dispose()\n                                    }))\n                                }\n                            else this.removeLinkDecorations()\n                        })).then(void 0, o.dL)\n                    }\n                    getPreviewValue(t, i, n) {\n                        let o = n.targetSelectionRange ? n.range : this.getPreviewRangeBasedOnBrackets(t, i);\n                        o.endLineNumber - o.startLineNumber >= e.MAX_SOURCE_PREVIEW_LINES && (o = this.getPreviewRangeBasedOnIndentation(t, i));\n                        return this.stripIndentationFromPreviewRange(t, i, o)\n                    }\n                    stripIndentationFromPreviewRange(e, t, i) {\n                        let n = e.getLineFirstNonWhitespaceColumn(t);\n                        for (let o = t + 1; o < i.endLineNumber; o++) {\n                            const t = e.getLineFirstNonWhitespaceColumn(o);\n                            n = Math.min(n, t)\n                        }\n                        return e.getValueInRange(i).replace(new RegExp(`^\\\\s{${n-1}}`, \"gm\"), \"\").trim()\n                    }\n                    getPreviewRangeBasedOnIndentation(t, i) {\n                        const n = t.getLineFirstNonWhitespaceColumn(i),\n                            o = Math.min(t.getLineCount(), i + e.MAX_SOURCE_PREVIEW_LINES);\n                        let s = i + 1;\n                        for (; s < o; s++) {\n                            if (n === t.getLineFirstNonWhitespaceColumn(s)) break\n                        }\n                        return new h.e(i, 1, s + 1, 1)\n                    }\n                    getPreviewRangeBasedOnBrackets(t, i) {\n                        const n = Math.min(t.getLineCount(), i + e.MAX_SOURCE_PREVIEW_LINES),\n                            o = [];\n                        let s = !0,\n                            r = t.findNextBracket(new d.L(i, 1));\n                        for (; null !== r;) {\n                            if (0 === o.length) o.push(r);\n                            else {\n                                const e = o[o.length - 1];\n                                if (e.open[0] === r.open[0] && e.isOpen && !r.isOpen ? o.pop() : o.push(r), 0 === o.length) {\n                                    if (!s) return new h.e(i, 1, r.range.endLineNumber + 1, 1);\n                                    s = !1\n                                }\n                            }\n                            const e = t.getLineMaxColumn(i);\n                            let a = r.range.endLineNumber,\n                                l = r.range.endColumn;\n                            if (e === r.range.endColumn && (a++, l = 1), a > n) return new h.e(i, 1, n + 1, 1);\n                            r = t.findNextBracket(new d.L(a, l))\n                        }\n                        return new h.e(i, 1, n + 1, 1)\n                    }\n                    addDecoration(e, t) {\n                        const i = {\n                            range: e,\n                            options: {\n                                description: \"goto-definition-link\",\n                                inlineClassName: \"goto-definition-link\",\n                                hoverMessage: t\n                            }\n                        };\n                        this.linkDecorations = this.editor.deltaDecorations(this.linkDecorations, [i])\n                    }\n                    removeLinkDecorations() {\n                        this.linkDecorations.length > 0 && (this.linkDecorations = this.editor.deltaDecorations(this.linkDecorations, []))\n                    }\n                    isEnabled(e, t) {\n                        return this.editor.hasModel() && e.isNoneOrSingleMouseDown && 6 === e.target.type && (e.hasTriggerModifier || !!t && t.keyCodeIsTriggerKey) && u.Ct.has(this.editor.getModel())\n                    }\n                    findDefinition(e, t) {\n                        const i = this.editor.getModel();\n                        return i ? (0, C.nD)(i, e, t) : Promise.resolve(null)\n                    }\n                    gotoDefinition(e, t) {\n                        return this.editor.setPosition(e), this.editor.invokeWithinContext((e => {\n                            const i = !t && this.editor.getOption(77) && !this.isInPeekEditor(e);\n                            return new y.DefinitionAction({\n                                openToSide: t,\n                                openInPeek: i,\n                                muteMessage: !0\n                            }, {\n                                alias: \"\",\n                                label: \"\",\n                                id: \"\",\n                                precondition: void 0\n                            }).run(e, this.editor)\n                        }))\n                    }\n                    isInPeekEditor(e) {\n                        const t = e.get(_.i6);\n                        return m.Jy.inPeekEditor.getValue(t)\n                    }\n                    dispose() {\n                        this.toUnhook.dispose()\n                    }\n                };\n                k.ID = \"editor.contrib.gotodefinitionatposition\", k.MAX_SOURCE_PREVIEW_LINES = 8, k = x([S(1, p.S), S(2, g.h)], k), (0, c._K)(k.ID, k), (0, w.Ic)(((e, t) => {\n                    const i = e.getColor(b._Y);\n                    i && t.addRule(`.monaco-editor .goto-definition-link { color: ${i} !important; }`)\n                }))\n            },\n            44318: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    J: () => he\n                });\n                var n = i(15393),\n                    o = i(17301),\n                    s = i(22258),\n                    r = i(5976),\n                    a = i(11640),\n                    l = i(50187),\n                    c = i(24314),\n                    d = i(22043),\n                    h = i(63580),\n                    u = i(94565),\n                    g = i(33108),\n                    p = i(38819),\n                    f = i(72065),\n                    m = i(49989),\n                    v = i(20343),\n                    _ = i(59422),\n                    b = i(26904),\n                    w = i(71455),\n                    y = i(65321),\n                    C = i(23937),\n                    x = i(41264),\n                    S = i(4669),\n                    k = i(66663),\n                    L = i(95935),\n                    N = (i(67055), i(84527)),\n                    D = i(44174),\n                    I = i(83831),\n                    E = i(71531),\n                    T = i(88216),\n                    M = i(67488),\n                    A = i(34650),\n                    O = i(48801),\n                    P = i(75392),\n                    R = i(68843),\n                    F = i(91847),\n                    B = i(44349),\n                    V = i(88810),\n                    W = i(97781),\n                    H = function(e, t, i, n) {\n                        var o, s = arguments.length,\n                            r = s < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n                        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) r = Reflect.decorate(e, t, i, n);\n                        else\n                            for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (r = (s < 3 ? o(r) : s > 3 ? o(t, i, r) : o(t, i)) || r);\n                        return s > 3 && r && Object.defineProperty(t, i, r), r\n                    },\n                    z = function(e, t) {\n                        return function(i, n) {\n                            t(i, n, e)\n                        }\n                    };\n                let j = class {\n                    constructor(e) {\n                        this._resolverService = e\n                    }\n                    hasChildren(e) {\n                        return e instanceof w.oQ || e instanceof w.F2\n                    }\n                    getChildren(e) {\n                        if (e instanceof w.oQ) return e.groups;\n                        if (e instanceof w.F2) return e.resolve(this._resolverService).then((e => e.children));\n                        throw new Error(\"bad tree\")\n                    }\n                };\n                j = H([z(0, T.S)], j);\n                class U {\n                    getHeight() {\n                        return 23\n                    }\n                    getTemplateId(e) {\n                        return e instanceof w.F2 ? Z.id : Y.id\n                    }\n                }\n                let $ = class {\n                    constructor(e) {\n                        this._keybindingService = e\n                    }\n                    getKeyboardNavigationLabel(e) {\n                        var t;\n                        if (e instanceof w.WX) {\n                            const i = null === (t = e.parent.getPreview(e)) || void 0 === t ? void 0 : t.preview(e.range);\n                            if (i) return i.value\n                        }\n                        return (0, L.EZ)(e.uri)\n                    }\n                };\n                $ = H([z(0, F.d)], $);\n                class K {\n                    getId(e) {\n                        return e instanceof w.WX ? e.id : e.uri\n                    }\n                }\n                let q = class extends r.JT {\n                    constructor(e, t, i) {\n                        super(), this._uriLabel = t;\n                        const n = document.createElement(\"div\");\n                        n.classList.add(\"reference-file\"), this.file = this._register(new O.g(n, {\n                            supportHighlights: !0\n                        })), this.badge = new M.Z(y.R3(n, y.$(\".count\"))), this._register((0, V.WZ)(this.badge, i)), e.appendChild(n)\n                    }\n                    set(e, t) {\n                        let i = (0, L.XX)(e.uri);\n                        this.file.setLabel((0, R.p)(e.uri), this._uriLabel.getUriLabel(i, {\n                            relative: !0\n                        }), {\n                            title: this._uriLabel.getUriLabel(e.uri),\n                            matches: t\n                        });\n                        const n = e.children.length;\n                        this.badge.setCount(n), n > 1 ? this.badge.setTitleFormat((0, h.N)(\"referencesCount\", \"{0} references\", n)) : this.badge.setTitleFormat((0, h.N)(\"referenceCount\", \"{0} reference\", n))\n                    }\n                };\n                q = H([z(1, B.e), z(2, W.XE)], q);\n                let Z = class e {\n                    constructor(t) {\n                        this._instantiationService = t, this.templateId = e.id\n                    }\n                    renderTemplate(e) {\n                        return this._instantiationService.createInstance(q, e)\n                    }\n                    renderElement(e, t, i) {\n                        i.set(e.element, (0, P.mB)(e.filterData))\n                    }\n                    disposeTemplate(e) {\n                        e.dispose()\n                    }\n                };\n                Z.id = \"FileReferencesRenderer\", Z = H([z(0, f.TG)], Z);\n                class G {\n                    constructor(e) {\n                        this.label = new A.q(e, !1)\n                    }\n                    set(e, t) {\n                        var i;\n                        const n = null === (i = e.parent.getPreview(e)) || void 0 === i ? void 0 : i.preview(e.range);\n                        if (n && n.value) {\n                            const {\n                                value: e,\n                                highlight: i\n                            } = n;\n                            t && !P.CL.isDefault(t) ? (this.label.element.classList.toggle(\"referenceMatch\", !1), this.label.set(e, (0, P.mB)(t))) : (this.label.element.classList.toggle(\"referenceMatch\", !0), this.label.set(e, [i]))\n                        } else this.label.set(`${(0,L.EZ)(e.uri)}:${e.range.startLineNumber+1}:${e.range.startColumn+1}`)\n                    }\n                }\n                class Y {\n                    constructor() {\n                        this.templateId = Y.id\n                    }\n                    renderTemplate(e) {\n                        return new G(e)\n                    }\n                    renderElement(e, t, i) {\n                        i.set(e.element, e.filterData)\n                    }\n                    disposeTemplate() {}\n                }\n                Y.id = \"OneReferenceRenderer\";\n                class Q {\n                    getWidgetAriaLabel() {\n                        return (0, h.N)(\"treeAriaLabel\", \"References\")\n                    }\n                    getAriaLabel(e) {\n                        return e.ariaMessage\n                    }\n                }\n                var X = i(73910),\n                    J = i(64862),\n                    ee = function(e, t, i, n) {\n                        var o, s = arguments.length,\n                            r = s < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n                        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) r = Reflect.decorate(e, t, i, n);\n                        else\n                            for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (r = (s < 3 ? o(r) : s > 3 ? o(t, i, r) : o(t, i)) || r);\n                        return s > 3 && r && Object.defineProperty(t, i, r), r\n                    },\n                    te = function(e, t) {\n                        return function(i, n) {\n                            t(i, n, e)\n                        }\n                    },\n                    ie = function(e, t, i, n) {\n                        return new(i || (i = Promise))((function(o, s) {\n                            function r(e) {\n                                try {\n                                    l(n.next(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function a(e) {\n                                try {\n                                    l(n.throw(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function l(e) {\n                                var t;\n                                e.done ? o(e.value) : (t = e.value, t instanceof i ? t : new i((function(e) {\n                                    e(t)\n                                }))).then(r, a)\n                            }\n                            l((n = n.apply(e, t || [])).next())\n                        }))\n                    };\n                class ne {\n                    constructor(e, t) {\n                        this._editor = e, this._model = t, this._decorations = new Map, this._decorationIgnoreSet = new Set, this._callOnDispose = new r.SL, this._callOnModelChange = new r.SL, this._callOnDispose.add(this._editor.onDidChangeModel((() => this._onModelChanged()))), this._onModelChanged()\n                    }\n                    dispose() {\n                        this._callOnModelChange.dispose(), this._callOnDispose.dispose(), this.removeDecorations()\n                    }\n                    _onModelChanged() {\n                        this._callOnModelChange.clear();\n                        const e = this._editor.getModel();\n                        if (e)\n                            for (let t of this._model.references)\n                                if (t.uri.toString() === e.uri.toString()) return void this._addDecorations(t.parent)\n                    }\n                    _addDecorations(e) {\n                        if (!this._editor.hasModel()) return;\n                        this._callOnModelChange.add(this._editor.getModel().onDidChangeDecorations((() => this._onDecorationChanged())));\n                        const t = [],\n                            i = [];\n                        for (let n = 0, o = e.children.length; n < o; n++) {\n                            let o = e.children[n];\n                            this._decorationIgnoreSet.has(o.id) || o.uri.toString() === this._editor.getModel().uri.toString() && (t.push({\n                                range: o.range,\n                                options: ne.DecorationOptions\n                            }), i.push(n))\n                        }\n                        const n = this._editor.deltaDecorations([], t);\n                        for (let t = 0; t < n.length; t++) this._decorations.set(n[t], e.children[i[t]])\n                    }\n                    _onDecorationChanged() {\n                        const e = [],\n                            t = this._editor.getModel();\n                        if (t) {\n                            for (let [i, n] of this._decorations) {\n                                const o = t.getDecorationRange(i);\n                                if (!o) continue;\n                                let s = !1;\n                                if (!c.e.equalsRange(o, n.range)) {\n                                    if (c.e.spansMultipleLines(o)) s = !0;\n                                    else {\n                                        n.range.endColumn - n.range.startColumn !== o.endColumn - o.startColumn && (s = !0)\n                                    }\n                                    s ? (this._decorationIgnoreSet.add(n.id), e.push(i)) : n.range = o\n                                }\n                            }\n                            for (let t = 0, i = e.length; t < i; t++) this._decorations.delete(e[t]);\n                            this._editor.deltaDecorations(e, [])\n                        }\n                    }\n                    removeDecorations() {\n                        this._editor.deltaDecorations([...this._decorations.keys()], []), this._decorations.clear()\n                    }\n                }\n                ne.DecorationOptions = D.qx.register({\n                    description: \"reference-decoration\",\n                    stickiness: 1,\n                    className: \"reference-decoration\"\n                });\n                class oe {\n                    constructor() {\n                        this.ratio = .7, this.heightInLines = 18\n                    }\n                    static fromJSON(e) {\n                        let t, i;\n                        try {\n                            const n = JSON.parse(e);\n                            t = n.ratio, i = n.heightInLines\n                        } catch (e) {}\n                        return {\n                            ratio: t || .7,\n                            heightInLines: i || 18\n                        }\n                    }\n                }\n                class se extends v.ls {}\n                let re = class extends d.vk {\n                    constructor(e, t, i, n, o, s, a, l, c, d, h, u) {\n                        super(e, {\n                            showFrame: !1,\n                            showArrow: !0,\n                            isResizeable: !0,\n                            isAccessible: !0,\n                            supportOnTitleClick: !0\n                        }, s), this._defaultTreeKeyboardSupport = t, this.layoutData = i, this._textModelResolverService = o, this._instantiationService = s, this._peekViewService = a, this._uriLabel = l, this._undoRedoService = c, this._keybindingService = d, this._modeService = h, this._languageConfigurationService = u, this._disposeOnNewModel = new r.SL, this._callOnDispose = new r.SL, this._onDidSelectReference = new S.Q5, this.onDidSelectReference = this._onDidSelectReference.event, this._dim = new y.Ro(0, 0), this._applyTheme(n.getColorTheme()), this._callOnDispose.add(n.onDidColorThemeChange(this._applyTheme.bind(this))), this._peekViewService.addExclusiveWidget(e, this), this.create()\n                    }\n                    dispose() {\n                        this.setModel(void 0), this._callOnDispose.dispose(), this._disposeOnNewModel.dispose(), (0, r.B9)(this._preview), (0, r.B9)(this._previewNotAvailableMessage), (0, r.B9)(this._tree), (0, r.B9)(this._previewModelReference), this._splitView.dispose(), super.dispose()\n                    }\n                    _applyTheme(e) {\n                        const t = e.getColor(d.SC) || x.Il.transparent;\n                        this.style({\n                            arrowColor: t,\n                            frameColor: t,\n                            headerBackgroundColor: e.getColor(d.KY) || x.Il.transparent,\n                            primaryHeadingColor: e.getColor(d.IH),\n                            secondaryHeadingColor: e.getColor(d.R7)\n                        })\n                    }\n                    show(e) {\n                        this.editor.revealRangeInCenterIfOutsideViewport(e, 0), super.show(e, this.layoutData.heightInLines || 18)\n                    }\n                    focusOnReferenceTree() {\n                        this._tree.domFocus()\n                    }\n                    focusOnPreviewEditor() {\n                        this._preview.focus()\n                    }\n                    isPreviewEditorFocused() {\n                        return this._preview.hasTextFocus()\n                    }\n                    _onTitleClick(e) {\n                        this._preview && this._preview.getModel() && this._onDidSelectReference.fire({\n                            element: this._getFocusedReference(),\n                            kind: e.ctrlKey || e.metaKey || e.altKey ? \"side\" : \"open\",\n                            source: \"title\"\n                        })\n                    }\n                    _fillBody(e) {\n                        this.setCssClass(\"reference-zone-widget\"), this._messageContainer = y.R3(e, y.$(\"div.messages\")), y.Cp(this._messageContainer), this._splitView = new C.z(e, {\n                            orientation: 1\n                        }), this._previewContainer = y.R3(e, y.$(\"div.preview.inline\"));\n                        this._preview = this._instantiationService.createInstance(N.H, this._previewContainer, {\n                            scrollBeyondLastLine: !1,\n                            scrollbar: {\n                                verticalScrollbarSize: 14,\n                                horizontal: \"auto\",\n                                useShadows: !0,\n                                verticalHasArrows: !1,\n                                horizontalHasArrows: !1,\n                                alwaysConsumeMouseWheel: !1\n                            },\n                            overviewRulerLanes: 2,\n                            fixedOverflowWidgets: !0,\n                            minimap: {\n                                enabled: !1\n                            }\n                        }, this.editor), y.Cp(this._previewContainer), this._previewNotAvailableMessage = new D.yO(h.N(\"missingPreviewMessage\", \"no preview available\"), D.yO.DEFAULT_CREATION_OPTIONS, null, null, this._undoRedoService, this._modeService, this._languageConfigurationService), this._treeContainer = y.R3(e, y.$(\"div.ref-tree.inline\"));\n                        const t = {\n                            keyboardSupport: this._defaultTreeKeyboardSupport,\n                            accessibilityProvider: new Q,\n                            keyboardNavigationLabelProvider: this._instantiationService.createInstance($),\n                            identityProvider: new K,\n                            openOnSingleClick: !0,\n                            selectionNavigation: !0,\n                            overrideStyles: {\n                                listBackground: d.M8\n                            }\n                        };\n                        this._defaultTreeKeyboardSupport && this._callOnDispose.add(y.mu(this._treeContainer, \"keydown\", (e => {\n                            e.equals(9) && (this._keybindingService.dispatchEvent(e, e.target), e.stopPropagation())\n                        }), !0)), this._tree = this._instantiationService.createInstance(se, \"ReferencesWidget\", this._treeContainer, new U, [this._instantiationService.createInstance(Z), this._instantiationService.createInstance(Y)], this._instantiationService.createInstance(j), t), this._splitView.addView({\n                            onDidChange: S.ju.None,\n                            element: this._previewContainer,\n                            minimumSize: 200,\n                            maximumSize: Number.MAX_VALUE,\n                            layout: e => {\n                                this._preview.layout({\n                                    height: this._dim.height,\n                                    width: e\n                                })\n                            }\n                        }, C.M.Distribute), this._splitView.addView({\n                            onDidChange: S.ju.None,\n                            element: this._treeContainer,\n                            minimumSize: 100,\n                            maximumSize: Number.MAX_VALUE,\n                            layout: e => {\n                                this._treeContainer.style.height = `${this._dim.height}px`, this._treeContainer.style.width = `${e}px`, this._tree.layout(this._dim.height, e)\n                            }\n                        }, C.M.Distribute), this._disposables.add(this._splitView.onDidSashChange((() => {\n                            this._dim.width && (this.layoutData.ratio = this._splitView.getViewSize(0) / this._dim.width)\n                        }), void 0));\n                        let i = (e, t) => {\n                            e instanceof w.WX && (\"show\" === t && this._revealReference(e, !1), this._onDidSelectReference.fire({\n                                element: e,\n                                kind: t,\n                                source: \"tree\"\n                            }))\n                        };\n                        this._tree.onDidOpen((e => {\n                            e.sideBySide ? i(e.element, \"side\") : e.editorOptions.pinned ? i(e.element, \"goto\") : i(e.element, \"show\")\n                        })), y.Cp(this._treeContainer)\n                    }\n                    _onWidth(e) {\n                        this._dim && this._doLayoutBody(this._dim.height, e)\n                    }\n                    _doLayoutBody(e, t) {\n                        super._doLayoutBody(e, t), this._dim = new y.Ro(t, e), this.layoutData.heightInLines = this._viewZone ? this._viewZone.heightInLines : this.layoutData.heightInLines, this._splitView.layout(t), this._splitView.resizeView(0, t * this.layoutData.ratio)\n                    }\n                    setSelection(e) {\n                        return this._revealReference(e, !0).then((() => {\n                            this._model && (this._tree.setSelection([e]), this._tree.setFocus([e]))\n                        }))\n                    }\n                    setModel(e) {\n                        return this._disposeOnNewModel.clear(), this._model = e, this._model ? this._onNewModel() : Promise.resolve()\n                    }\n                    _onNewModel() {\n                        const Lg = new Language(modifyState.language);\n                        return this._model ? this._model.isEmpty ? (this.setTitle(\"\"), this._messageContainer.innerText = h.N(\"noResults\", Lg.noResults()), y.$Z(this._messageContainer), Promise.resolve(void 0)) : (y.Cp(this._messageContainer), this._decorationsManager = new ne(this._preview, this._model), this._disposeOnNewModel.add(this._decorationsManager), this._disposeOnNewModel.add(this._model.onDidChangeReferenceRange((e => this._tree.rerender(e)))), this._disposeOnNewModel.add(this._preview.onMouseDown((e => {\n                            const {\n                                event: t,\n                                target: i\n                            } = e;\n                            if (2 !== t.detail) return;\n                            const n = this._getFocusedReference();\n                            n && this._onDidSelectReference.fire({\n                                element: {\n                                    uri: n.uri,\n                                    range: i.range\n                                },\n                                kind: t.ctrlKey || t.metaKey || t.altKey ? \"side\" : \"open\",\n                                source: \"editor\"\n                            })\n                        }))), this.container.classList.add(\"results-loaded\"), y.$Z(this._treeContainer), y.$Z(this._previewContainer), this._splitView.layout(this._dim.width), this.focusOnReferenceTree(), this._tree.setInput(1 === this._model.groups.length ? this._model.groups[0] : this._model)) : Promise.resolve(void 0)\n                    }\n                    _getFocusedReference() {\n                        const [e] = this._tree.getFocus();\n                        return e instanceof w.WX ? e : e instanceof w.F2 && e.children.length > 0 ? e.children[0] : void 0\n                    }\n                    revealReference(e) {\n                        return ie(this, void 0, void 0, (function*() {\n                            yield this._revealReference(e, !1), this._onDidSelectReference.fire({\n                                element: e,\n                                kind: \"goto\",\n                                source: \"tree\"\n                            })\n                        }))\n                    }\n                    _revealReference(e, t) {\n                        return ie(this, void 0, void 0, (function*() {\n                            if (this._revealedReference === e) return;\n                            this._revealedReference = e, e.uri.scheme !== k.lg.inMemory ? this.setTitle((0, L.Hx)(e.uri), this._uriLabel.getUriLabel((0, L.XX)(e.uri))) : this.setTitle(h.N(\"peekView.alternateTitle\", \"References\"));\n                            const i = this._textModelResolverService.createModelReference(e.uri);\n                            this._tree.getInput() === e.parent || (t && this._tree.reveal(e.parent), yield this._tree.expand(e.parent)), this._tree.reveal(e);\n                            const n = yield i;\n                            if (!this._model) return void n.dispose();\n                            (0, r.B9)(this._previewModelReference);\n                            const o = n.object;\n                            if (o) {\n                                const t = this._preview.getModel() === o.textEditorModel ? 0 : 1,\n                                    i = c.e.lift(e.range).collapseToStart();\n                                this._previewModelReference = n, this._preview.setModel(o.textEditorModel), this._preview.setSelection(i), this._preview.revealRangeInCenter(i, t)\n                            } else this._preview.setModel(this._previewNotAvailableMessage), n.dispose()\n                        }))\n                    }\n                };\n                re = ee([te(3, W.XE), te(4, T.S), te(5, f.TG), te(6, d.Fw), te(7, B.e), te(8, J.tJ), te(9, F.d), te(10, E.h), te(11, I.c_)], re), (0, W.Ic)(((e, t) => {\n                    const i = e.getColor(d.F8);\n                    i && t.addRule(`.monaco-editor .reference-zone-widget .ref-tree .referenceMatch .highlight { background-color: ${i}; }`);\n                    const n = e.getColor(d.WL);\n                    n && t.addRule(`.monaco-editor .reference-zone-widget .preview .reference-decoration { background-color: ${n}; }`);\n                    const o = e.getColor(d.xH);\n                    o && t.addRule(`.monaco-editor .reference-zone-widget .preview .reference-decoration { border: 2px solid ${o}; box-sizing: border-box; }`);\n                    const s = e.getColor(X.xL);\n                    s && t.addRule(`.monaco-editor .reference-zone-widget .ref-tree .referenceMatch .highlight { border: 1px dotted ${s}; box-sizing: border-box; }`);\n                    const r = e.getColor(d.M8);\n                    r && t.addRule(`.monaco-editor .reference-zone-widget .ref-tree { background-color: ${r}; }`);\n                    const a = e.getColor(d.xk);\n                    a && t.addRule(`.monaco-editor .reference-zone-widget .ref-tree { color: ${a}; }`);\n                    const l = e.getColor(d.a7);\n                    l && t.addRule(`.monaco-editor .reference-zone-widget .ref-tree .reference-file { color: ${l}; }`);\n                    const c = e.getColor(d.Zj);\n                    c && t.addRule(`.monaco-editor .reference-zone-widget .ref-tree .monaco-list:focus .monaco-list-rows > .monaco-list-row.selected:not(.highlighted) { background-color: ${c}; }`);\n                    const h = e.getColor(d.IY);\n                    h && t.addRule(`.monaco-editor .reference-zone-widget .ref-tree .monaco-list:focus .monaco-list-rows > .monaco-list-row.selected:not(.highlighted) { color: ${h} !important; }`);\n                    const u = e.getColor(d.RX);\n                    u && t.addRule(`.monaco-editor .reference-zone-widget .preview .monaco-editor .monaco-editor-background,.monaco-editor .reference-zone-widget .preview .monaco-editor .inputarea.ime-input {\\tbackground-color: ${u};}`);\n                    const g = e.getColor(d.sH);\n                    g && t.addRule(`.monaco-editor .reference-zone-widget .preview .monaco-editor .margin {\\tbackground-color: ${g};}`)\n                }));\n                var ae = function(e, t, i, n) {\n                        var o, s = arguments.length,\n                            r = s < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n                        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) r = Reflect.decorate(e, t, i, n);\n                        else\n                            for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (r = (s < 3 ? o(r) : s > 3 ? o(t, i, r) : o(t, i)) || r);\n                        return s > 3 && r && Object.defineProperty(t, i, r), r\n                    },\n                    le = function(e, t) {\n                        return function(i, n) {\n                            t(i, n, e)\n                        }\n                    },\n                    ce = function(e, t, i, n) {\n                        return new(i || (i = Promise))((function(o, s) {\n                            function r(e) {\n                                try {\n                                    l(n.next(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function a(e) {\n                                try {\n                                    l(n.throw(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function l(e) {\n                                var t;\n                                e.done ? o(e.value) : (t = e.value, t instanceof i ? t : new i((function(e) {\n                                    e(t)\n                                }))).then(r, a)\n                            }\n                            l((n = n.apply(e, t || [])).next())\n                        }))\n                    };\n                const de = new p.uy(\"referenceSearchVisible\", !1, h.N(\"referenceSearchVisible\", \"Whether reference peek is visible, like 'Peek References' or 'Peek Definition'\"));\n                let he = class e {\n                    constructor(e, t, i, n, o, s, a, l) {\n                        this._defaultTreeKeyboardSupport = e, this._editor = t, this._editorService = n, this._notificationService = o, this._instantiationService = s, this._storageService = a, this._configurationService = l, this._disposables = new r.SL, this._requestIdPool = 0, this._ignoreModelChangeEvent = !1, this._referenceSearchVisible = de.bindTo(i)\n                    }\n                    static get(t) {\n                        return t.getContribution(e.ID)\n                    }\n                    dispose() {\n                        var e, t;\n                        this._referenceSearchVisible.reset(), this._disposables.dispose(), null === (e = this._widget) || void 0 === e || e.dispose(), null === (t = this._model) || void 0 === t || t.dispose(), this._widget = void 0, this._model = void 0\n                    }\n                    toggleWidget(e, t, i) {\n                        let n;\n                        if (this._widget && (n = this._widget.position), this.closeWidget(), n && e.containsPosition(n)) return;\n                        this._peekMode = i, this._referenceSearchVisible.set(!0), this._disposables.add(this._editor.onDidChangeModelLanguage((() => {\n                            this.closeWidget()\n                        }))), this._disposables.add(this._editor.onDidChangeModel((() => {\n                            this._ignoreModelChangeEvent || this.closeWidget()\n                        })));\n                        const o = \"peekViewLayout\",\n                            s = oe.fromJSON(this._storageService.get(o, 0, \"{}\"));\n                        this._widget = this._instantiationService.createInstance(re, this._editor, this._defaultTreeKeyboardSupport, s), this._widget.setTitle(h.N(\"labelLoading\", \"正在加载...\")), this._widget.show(e), this._disposables.add(this._widget.onDidClose((() => {\n                            t.cancel(), this._widget && (this._storageService.store(o, JSON.stringify(this._widget.layoutData), 0, 1), this._widget = void 0), this.closeWidget()\n                        }))), this._disposables.add(this._widget.onDidSelectReference((e => {\n                            let {\n                                element: t,\n                                kind: n\n                            } = e;\n                            if (t) switch (n) {\n                                case \"open\":\n                                    \"editor\" === e.source && this._configurationService.getValue(\"editor.stablePeek\") || this.openReference(t, !1, !1);\n                                    break;\n                                case \"side\":\n                                    this.openReference(t, !0, !1);\n                                    break;\n                                case \"goto\":\n                                    i ? this._gotoReference(t) : this.openReference(t, !1, !0)\n                            }\n                        })));\n                        const r = ++this._requestIdPool;\n                        t.then((t => {\n                            var i;\n                            if (r === this._requestIdPool && this._widget) return null === (i = this._model) || void 0 === i || i.dispose(), this._model = t, this._widget.setModel(this._model).then((() => {\n                                if (this._widget && this._model && this._editor.hasModel()) {\n                                    this._model.isEmpty ? this._widget.setMetaTitle(\"\") : this._widget.setMetaTitle(h.N(\"metaTitle.N\", \"{0} ({1})\", this._model.title, this._model.references.length));\n                                    let t = this._editor.getModel().uri,\n                                        i = new l.L(e.startLineNumber, e.startColumn),\n                                        n = this._model.nearestReference(t, i);\n                                    if (n) return this._widget.setSelection(n).then((() => {\n                                        this._widget && \"editor\" === this._editor.getOption(76) && this._widget.focusOnPreviewEditor()\n                                    }))\n                                }\n                            }));\n                            t.dispose()\n                        }), (e => {\n                            this._notificationService.error(e)\n                        }))\n                    }\n                    changeFocusBetweenPreviewAndReferences() {\n                        this._widget && (this._widget.isPreviewEditorFocused() ? this._widget.focusOnReferenceTree() : this._widget.focusOnPreviewEditor())\n                    }\n                    goToNextOrPreviousReference(e) {\n                        return ce(this, void 0, void 0, (function*() {\n                            if (!this._editor.hasModel() || !this._model || !this._widget) return;\n                            const t = this._widget.position;\n                            if (!t) return;\n                            const i = this._model.nearestReference(this._editor.getModel().uri, t);\n                            if (!i) return;\n                            const n = this._model.nextOrPreviousReference(i, e),\n                                o = this._editor.hasTextFocus(),\n                                s = this._widget.isPreviewEditorFocused();\n                            yield this._widget.setSelection(n), yield this._gotoReference(n), o ? this._editor.focus() : this._widget && s && this._widget.focusOnPreviewEditor()\n                        }))\n                    }\n                    revealReference(e) {\n                        return ce(this, void 0, void 0, (function*() {\n                            this._editor.hasModel() && this._model && this._widget && (yield this._widget.revealReference(e))\n                        }))\n                    }\n                    closeWidget(e = !0) {\n                        var t, i;\n                        null === (t = this._widget) || void 0 === t || t.dispose(), null === (i = this._model) || void 0 === i || i.dispose(), this._referenceSearchVisible.reset(), this._disposables.clear(), this._widget = void 0, this._model = void 0, e && this._editor.focus(), this._requestIdPool += 1\n                    }\n                    _gotoReference(t) {\n                        this._widget && this._widget.hide(), this._ignoreModelChangeEvent = !0;\n                        const i = c.e.lift(t.range).collapseToStart();\n                        return this._editorService.openCodeEditor({\n                            resource: t.uri,\n                            options: {\n                                selection: i\n                            }\n                        }, this._editor).then((t => {\n                            var o;\n                            if (this._ignoreModelChangeEvent = !1, t && this._widget)\n                                if (this._editor === t) this._widget.show(i), this._widget.focusOnReferenceTree();\n                                else {\n                                    const s = e.get(t),\n                                        r = this._model.clone();\n                                    this.closeWidget(), t.focus(), s.toggleWidget(i, (0, n.PG)((e => Promise.resolve(r))), null !== (o = this._peekMode) && void 0 !== o && o)\n                                }\n                            else this.closeWidget()\n                        }), (e => {\n                            this._ignoreModelChangeEvent = !1, (0, o.dL)(e)\n                        }))\n                    }\n                    openReference(e, t, i) {\n                        t || this.closeWidget();\n                        const {\n                            uri: n,\n                            range: o\n                        } = e;\n                        this._editorService.openCodeEditor({\n                            resource: n,\n                            options: {\n                                selection: o,\n                                pinned: i\n                            }\n                        }, this._editor, t)\n                    }\n                };\n\n                function ue(e, t) {\n                    const i = (0, d.rc)(e);\n                    if (!i) return;\n                    let n = he.get(i);\n                    n && t(n)\n                }\n                he.ID = \"editor.contrib.referencesController\", he = ae([le(2, p.i6), le(3, a.$), le(4, _.lT), le(5, f.TG), le(6, b.Uy), le(7, g.Ui)], he), m.W.registerCommandAndKeybindingRule({\n                    id: \"togglePeekWidgetFocus\",\n                    weight: 100,\n                    primary: (0, s.gx)(2089, 60),\n                    when: p.Ao.or(de, d.Jy.inPeekEditor),\n                    handler(e) {\n                        ue(e, (e => {\n                            e.changeFocusBetweenPreviewAndReferences()\n                        }))\n                    }\n                }), m.W.registerCommandAndKeybindingRule({\n                    id: \"goToNextReference\",\n                    weight: 90,\n                    primary: 62,\n                    secondary: [70],\n                    when: p.Ao.or(de, d.Jy.inPeekEditor),\n                    handler(e) {\n                        ue(e, (e => {\n                            e.goToNextOrPreviousReference(!0)\n                        }))\n                    }\n                }), m.W.registerCommandAndKeybindingRule({\n                    id: \"goToPreviousReference\",\n                    weight: 90,\n                    primary: 1086,\n                    secondary: [1094],\n                    when: p.Ao.or(de, d.Jy.inPeekEditor),\n                    handler(e) {\n                        ue(e, (e => {\n                            e.goToNextOrPreviousReference(!1)\n                        }))\n                    }\n                }), u.P.registerCommandAlias(\"goToNextReferenceFromEmbeddedEditor\", \"goToNextReference\"), u.P.registerCommandAlias(\"goToPreviousReferenceFromEmbeddedEditor\", \"goToPreviousReference\"), u.P.registerCommandAlias(\"closeReferenceSearchEditor\", \"closeReferenceSearch\"), u.P.registerCommand(\"closeReferenceSearch\", (e => ue(e, (e => e.closeWidget())))), m.W.registerKeybindingRule({\n                    id: \"closeReferenceSearch\",\n                    weight: -1,\n                    primary: 9,\n                    secondary: [1033],\n                    when: p.Ao.and(d.Jy.inPeekEditor, p.Ao.not(\"config.editor.stablePeek\"))\n                }), m.W.registerKeybindingRule({\n                    id: \"closeReferenceSearch\",\n                    weight: 250,\n                    primary: 9,\n                    secondary: [1033],\n                    when: p.Ao.and(de, p.Ao.not(\"config.editor.stablePeek\"))\n                }), m.W.registerCommandAndKeybindingRule({\n                    id: \"revealReference\",\n                    weight: 200,\n                    primary: 3,\n                    mac: {\n                        primary: 3,\n                        secondary: [2066]\n                    },\n                    when: p.Ao.and(de, v.CQ),\n                    handler(e) {\n                        var t;\n                        const i = null === (t = e.get(v.Lw).lastFocusedList) || void 0 === t ? void 0 : t.getFocus();\n                        Array.isArray(i) && i[0] instanceof w.WX && ue(e, (e => e.revealReference(i[0])))\n                    }\n                }), m.W.registerCommandAndKeybindingRule({\n                    id: \"openReferenceToSide\",\n                    weight: 100,\n                    primary: 2051,\n                    mac: {\n                        primary: 259\n                    },\n                    when: p.Ao.and(de, v.CQ),\n                    handler(e) {\n                        var t;\n                        const i = null === (t = e.get(v.Lw).lastFocusedList) || void 0 === t ? void 0 : t.getFocus();\n                        Array.isArray(i) && i[0] instanceof w.WX && ue(e, (e => e.openReference(i[0], !0, !0)))\n                    }\n                }), u.P.registerCommand(\"openReference\", (e => {\n                    var t;\n                    const i = null === (t = e.get(v.Lw).lastFocusedList) || void 0 === t ? void 0 : t.getFocus();\n                    Array.isArray(i) && i[0] instanceof w.WX && ue(e, (e => e.openReference(i[0], !1, !0)))\n                }))\n            },\n            71455: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    F2: () => f,\n                    WX: () => g,\n                    oQ: () => m\n                });\n                var n = i(17301),\n                    o = i(4669),\n                    s = i(44742),\n                    r = i(5976),\n                    a = i(43702),\n                    l = i(95935),\n                    c = i(97295),\n                    d = i(24314),\n                    h = i(63580),\n                    u = function(e, t, i, n) {\n                        return new(i || (i = Promise))((function(o, s) {\n                            function r(e) {\n                                try {\n                                    l(n.next(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function a(e) {\n                                try {\n                                    l(n.throw(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function l(e) {\n                                var t;\n                                e.done ? o(e.value) : (t = e.value, t instanceof i ? t : new i((function(e) {\n                                    e(t)\n                                }))).then(r, a)\n                            }\n                            l((n = n.apply(e, t || [])).next())\n                        }))\n                    };\n                class g {\n                    constructor(e, t, i, n) {\n                        this.isProviderFirst = e, this.parent = t, this.link = i, this._rangeCallback = n, this.id = s.a.nextId()\n                    }\n                    get uri() {\n                        return this.link.uri\n                    }\n                    get range() {\n                        var e, t;\n                        return null !== (t = null !== (e = this._range) && void 0 !== e ? e : this.link.targetSelectionRange) && void 0 !== t ? t : this.link.range\n                    }\n                    set range(e) {\n                        this._range = e, this._rangeCallback(this)\n                    }\n                    get ariaMessage() {\n                        var e;\n                        const t = null === (e = this.parent.getPreview(this)) || void 0 === e ? void 0 : e.preview(this.range);\n                        return t ? (0, h.N)({\n                            key: \"aria.oneReference.preview\",\n                            comment: [\"Placeholders are: 0: filename, 1:line number, 2: column number, 3: preview snippet of source code\"]\n                        }, \"symbol in {0} on line {1} at column {2}, {3}\", (0, l.EZ)(this.uri), this.range.startLineNumber, this.range.startColumn, t.value) : (0, h.N)(\"aria.oneReference\", \"symbol in {0} on line {1} at column {2}\", (0, l.EZ)(this.uri), this.range.startLineNumber, this.range.startColumn)\n                    }\n                }\n                class p {\n                    constructor(e) {\n                        this._modelReference = e\n                    }\n                    dispose() {\n                        this._modelReference.dispose()\n                    }\n                    preview(e, t = 8) {\n                        const i = this._modelReference.object.textEditorModel;\n                        if (!i) return;\n                        const {\n                            startLineNumber: n,\n                            startColumn: o,\n                            endLineNumber: s,\n                            endColumn: r\n                        } = e, a = i.getWordUntilPosition({\n                            lineNumber: n,\n                            column: o - t\n                        }), l = new d.e(n, a.startColumn, n, o), c = new d.e(s, r, s, 1073741824), h = i.getValueInRange(l).replace(/^\\s+/, \"\"), u = i.getValueInRange(e);\n                        return {\n                            value: h + u + i.getValueInRange(c).replace(/\\s+$/, \"\"),\n                            highlight: {\n                                start: h.length,\n                                end: h.length + u.length\n                            }\n                        }\n                    }\n                }\n                class f {\n                    constructor(e, t) {\n                        this.parent = e, this.uri = t, this.children = [], this._previews = new a.Y9\n                    }\n                    dispose() {\n                        (0, r.B9)(this._previews.values()), this._previews.clear()\n                    }\n                    getPreview(e) {\n                        return this._previews.get(e.uri)\n                    }\n                    get ariaMessage() {\n                        const e = this.children.length;\n                        return 1 === e ? (0, h.N)(\"aria.fileReferences.1\", \"1 symbol in {0}, full path {1}\", (0, l.EZ)(this.uri), this.uri.fsPath) : (0, h.N)(\"aria.fileReferences.N\", \"{0} symbols in {1}, full path {2}\", e, (0, l.EZ)(this.uri), this.uri.fsPath)\n                    }\n                    resolve(e) {\n                        return u(this, void 0, void 0, (function*() {\n                            if (0 !== this._previews.size) return this;\n                            for (let t of this.children)\n                                if (!this._previews.has(t.uri)) try {\n                                    const i = yield e.createModelReference(t.uri);\n                                    this._previews.set(t.uri, new p(i))\n                                } catch (e) {\n                                    (0, n.dL)(e)\n                                }\n                            return this\n                        }))\n                    }\n                }\n                class m {\n                    constructor(e, t) {\n                        this.groups = [], this.references = [], this._onDidChangeReferenceRange = new o.Q5, this.onDidChangeReferenceRange = this._onDidChangeReferenceRange.event, this._links = e, this._title = t;\n                        const [i] = e;\n                        let n;\n                        e.sort(m._compareReferences);\n                        for (let t of e)\n                            if (n && l.SF.isEqual(n.uri, t.uri, !0) || (n = new f(this, t.uri), this.groups.push(n)), 0 === n.children.length || 0 !== m._compareReferences(t, n.children[n.children.length - 1])) {\n                                const e = new g(i === t, n, t, (e => this._onDidChangeReferenceRange.fire(e)));\n                                this.references.push(e), n.children.push(e)\n                            }\n                    }\n                    dispose() {\n                        (0, r.B9)(this.groups), this._onDidChangeReferenceRange.dispose(), this.groups.length = 0\n                    }\n                    clone() {\n                        return new m(this._links, this._title)\n                    }\n                    get title() {\n                        return this._title\n                    }\n                    get isEmpty() {\n                        return 0 === this.groups.length\n                    }\n                    get ariaMessage() {\n                        return this.isEmpty ? (0, h.N)(\"aria.result.0\", \"No results found\") : 1 === this.references.length ? (0, h.N)(\"aria.result.1\", \"Found 1 symbol in {0}\", this.references[0].uri.fsPath) : 1 === this.groups.length ? (0, h.N)(\"aria.result.n1\", \"Found {0} symbols in {1}\", this.references.length, this.groups[0].uri.fsPath) : (0, h.N)(\"aria.result.nm\", \"Found {0} symbols in {1} files\", this.references.length, this.groups.length)\n                    }\n                    nextOrPreviousReference(e, t) {\n                        let {\n                            parent: i\n                        } = e, n = i.children.indexOf(e), o = i.children.length, s = i.parent.groups.length;\n                        return 1 === s || t && n + 1 < o || !t && n > 0 ? (n = t ? (n + 1) % o : (n + o - 1) % o, i.children[n]) : (n = i.parent.groups.indexOf(i), t ? (n = (n + 1) % s, i.parent.groups[n].children[0]) : (n = (n + s - 1) % s, i.parent.groups[n].children[i.parent.groups[n].children.length - 1]))\n                    }\n                    nearestReference(e, t) {\n                        const i = this.references.map(((i, n) => ({\n                            idx: n,\n                            prefixLen: c.Mh(i.uri.toString(), e.toString()),\n                            offsetDist: 100 * Math.abs(i.range.startLineNumber - t.lineNumber) + Math.abs(i.range.startColumn - t.column)\n                        }))).sort(((e, t) => e.prefixLen > t.prefixLen ? -1 : e.prefixLen < t.prefixLen ? 1 : e.offsetDist < t.offsetDist ? -1 : e.offsetDist > t.offsetDist ? 1 : 0))[0];\n                        if (i) return this.references[i.idx]\n                    }\n                    referenceAt(e, t) {\n                        for (const i of this.references)\n                            if (i.uri.toString() === e.toString() && d.e.containsPosition(i.range, t)) return i\n                    }\n                    firstReference() {\n                        for (const e of this.references)\n                            if (e.isProviderFirst) return e;\n                        return this.references[0]\n                    }\n                    static _compareReferences(e, t) {\n                        return l.SF.compare(e.uri, t.uri) || d.e.compareRangesUsingStarts(e.range, t.range)\n                    }\n                }\n            },\n            67247: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    ModesHoverController: () => Ue\n                });\n                var n = i(22258),\n                    o = i(5976),\n                    s = i(16830),\n                    r = i(24314),\n                    a = i(29102),\n                    l = i(71531),\n                    c = i(10365),\n                    d = i(65321),\n                    h = i(9802);\n                i(17535);\n                const u = d.$;\n                class g extends o.JT {\n                    constructor() {\n                        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 h.s$(this.contentsDomNode, {\n                            consumeMouseWheelIfScrollbarIsNeeded: !0\n                        })), this.containerDomNode.appendChild(this._scrollbar.getDomNode())\n                    }\n                    onContentsChanged() {\n                        this._scrollbar.scanDomNode()\n                    }\n                }\n                class p extends o.JT {\n                    constructor(e, t, i) {\n                        super(), this.actionContainer = d.R3(e, u(\"div.action-container\")), this.action = d.R3(this.actionContainer, u(\"a.action\")), this.action.setAttribute(\"href\", \"#\"), this.action.setAttribute(\"role\", \"button\"), t.iconClass && d.R3(this.action, u(`span.icon.${t.iconClass}`));\n                        d.R3(this.action, u(\"span\")).textContent = i ? `${t.label} (${i})` : t.label, this._register(d.nm(this.actionContainer, d.tw.MOUSE_DOWN, (e => {\n                            e.stopPropagation(), e.preventDefault(), t.run(this.actionContainer)\n                        }))), this.setEnabled(!0)\n                    }\n                    static render(e, t, i) {\n                        return new p(e, t, i)\n                    }\n                    setEnabled(e) {\n                        e ? (this.actionContainer.classList.remove(\"disabled\"), this.actionContainer.removeAttribute(\"aria-disabled\")) : (this.actionContainer.classList.add(\"disabled\"), this.actionContainer.setAttribute(\"aria-disabled\", \"true\"))\n                    }\n                }\n                var f = i(93794),\n                    m = i(9488),\n                    v = i(50187),\n                    _ = i(44174),\n                    b = i(44101),\n                    w = i(71050),\n                    y = i(41264),\n                    C = i(83308),\n                    x = i(64494),\n                    S = i(4669);\n                class k {\n                    constructor(e, t, i) {\n                        this.presentationIndex = i, this._onColorFlushed = new S.Q5, this.onColorFlushed = this._onColorFlushed.event, this._onDidChangeColor = new S.Q5, this.onDidChangeColor = this._onDidChangeColor.event, this._onDidChangePresentation = new S.Q5, this.onDidChangePresentation = this._onDidChangePresentation.event, this.originalColor = e, this._color = e, this._colorPresentations = t\n                    }\n                    get color() {\n                        return this._color\n                    }\n                    set color(e) {\n                        this._color.equals(e) || (this._color = e, this._onDidChangeColor.fire(e))\n                    }\n                    get presentation() {\n                        return this.colorPresentations[this.presentationIndex]\n                    }\n                    get colorPresentations() {\n                        return this._colorPresentations\n                    }\n                    set colorPresentations(e) {\n                        this._colorPresentations = e, this.presentationIndex > e.length - 1 && (this.presentationIndex = 0), this._onDidChangePresentation.fire(this.presentation)\n                    }\n                    selectNextColorPresentation() {\n                        this.presentationIndex = (this.presentationIndex + 1) % this.colorPresentations.length, this.flushColor(), this._onDidChangePresentation.fire(this.presentation)\n                    }\n                    guessColorPresentation(e, t) {\n                        for (let e = 0; e < this.colorPresentations.length; e++)\n                            if (t.toLowerCase() === this.colorPresentations[e].label) {\n                                this.presentationIndex = e, this._onDidChangePresentation.fire(this.presentation);\n                                break\n                            }\n                    }\n                    flushColor() {\n                        this._onColorFlushed.fire(this._color)\n                    }\n                }\n                var L = i(16268),\n                    N = i(57974),\n                    D = (i(85290), i(63580)),\n                    I = i(73910),\n                    E = i(97781);\n                const T = d.$;\n                class M extends o.JT {\n                    constructor(e, t, i) {\n                        super(), this.model = t, this.domNode = T(\".colorpicker-header\"), d.R3(e, this.domNode), this.pickedColorNode = d.R3(this.domNode, T(\".picked-color\"));\n                        const n = (0, D.N)(\"clickToToggleColorOptions\", \"Click to toggle color options (rgb/hsl/hex)\");\n                        this.pickedColorNode.setAttribute(\"title\", n);\n                        const o = d.R3(this.domNode, T(\".original-color\"));\n                        o.style.backgroundColor = y.Il.Format.CSS.format(this.model.originalColor) || \"\", this.backgroundColor = i.getColorTheme().getColor(I.yJ) || y.Il.white, this._register((0, E.Ic)(((e, t) => {\n                            this.backgroundColor = e.getColor(I.yJ) || y.Il.white\n                        }))), this._register(d.nm(this.pickedColorNode, d.tw.CLICK, (() => this.model.selectNextColorPresentation()))), this._register(d.nm(o, d.tw.CLICK, (() => {\n                            this.model.color = this.model.originalColor, this.model.flushColor()\n                        }))), this._register(t.onDidChangeColor(this.onDidChangeColor, this)), this._register(t.onDidChangePresentation(this.onDidChangePresentation, this)), this.pickedColorNode.style.backgroundColor = y.Il.Format.CSS.format(t.color) || \"\", this.pickedColorNode.classList.toggle(\"light\", t.color.rgba.a < .5 ? this.backgroundColor.isLighter() : t.color.isLighter())\n                    }\n                    onDidChangeColor(e) {\n                        this.pickedColorNode.style.backgroundColor = y.Il.Format.CSS.format(e) || \"\", this.pickedColorNode.classList.toggle(\"light\", e.rgba.a < .5 ? this.backgroundColor.isLighter() : e.isLighter()), this.onDidChangePresentation()\n                    }\n                    onDidChangePresentation() {\n                        this.pickedColorNode.textContent = this.model.presentation ? this.model.presentation.label : \"\", this.pickedColorNode.prepend(T(\".codicon.codicon-color-mode\"))\n                    }\n                }\n                class A extends o.JT {\n                    constructor(e, t, i) {\n                        super(), this.model = t, this.pixelRatio = i, this.domNode = T(\".colorpicker-body\"), d.R3(e, this.domNode), this.saturationBox = new O(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), this._register(this.opacityStrip), this._register(this.opacityStrip.onDidChange(this.onDidOpacityChange, this)), this._register(this.opacityStrip.onColorFlushed(this.flushColor, this)), this.hueStrip = new F(this.domNode, this.model), this._register(this.hueStrip), this._register(this.hueStrip.onDidChange(this.onDidHueChange, this)), this._register(this.hueStrip.onColorFlushed(this.flushColor, this))\n                    }\n                    flushColor() {\n                        this.model.flushColor()\n                    }\n                    onDidSaturationValueChange({\n                        s: e,\n                        v: t\n                    }) {\n                        const i = this.model.color.hsva;\n                        this.model.color = new y.Il(new y.tx(i.h, e, t, i.a))\n                    }\n                    onDidOpacityChange(e) {\n                        const t = this.model.color.hsva;\n                        this.model.color = new y.Il(new y.tx(t.h, t.s, t.v, e))\n                    }\n                    onDidHueChange(e) {\n                        const t = this.model.color.hsva,\n                            i = 360 * (1 - e);\n                        this.model.color = new y.Il(new y.tx(360 === i ? 0 : i, t.s, t.v, t.a))\n                    }\n                    layout() {\n                        this.saturationBox.layout(), this.opacityStrip.layout(), this.hueStrip.layout()\n                    }\n                }\n                class O extends o.JT {\n                    constructor(e, t, i) {\n                        super(), this.model = t, this.pixelRatio = i, this._onDidChange = new S.Q5, this.onDidChange = this._onDidChange.event, this._onColorFlushed = new S.Q5, this.onColorFlushed = this._onColorFlushed.event, this.domNode = T(\".saturation-wrap\"), d.R3(e, this.domNode), this.canvas = document.createElement(\"canvas\"), this.canvas.className = \"saturation-box\", d.R3(this.domNode, this.canvas), this.selection = T(\".saturation-selection\"), d.R3(this.domNode, this.selection), this.layout(), this._register(d.Lo(this.domNode, (e => this.onMouseDown(e)))), this._register(this.model.onDidChangeColor(this.onDidChangeColor, this)), this.monitor = null\n                    }\n                    onMouseDown(e) {\n                        this.monitor = this._register(new N.Z);\n                        const t = d.i(this.domNode);\n                        e.target !== this.selection && this.onDidChangePosition(e.offsetX, e.offsetY), this.monitor.startMonitoring(e.target, e.buttons, N.e, (e => this.onDidChangePosition(e.posx - t.left, e.posy - t.top)), (() => null));\n                        const i = d.qV(document, (() => {\n                            this._onColorFlushed.fire(), i.dispose(), this.monitor && (this.monitor.stopMonitoring(!0), this.monitor = null)\n                        }), !0)\n                    }\n                    onDidChangePosition(e, t) {\n                        const i = Math.max(0, Math.min(1, e / this.width)),\n                            n = Math.max(0, Math.min(1, 1 - t / this.height));\n                        this.paintSelection(i, n), this._onDidChange.fire({\n                            s: i,\n                            v: n\n                        })\n                    }\n                    layout() {\n                        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();\n                        const e = this.model.color.hsva;\n                        this.paintSelection(e.s, e.v)\n                    }\n                    paint() {\n                        const e = this.model.color.hsva,\n                            t = new y.Il(new y.tx(e.h, 1, 1, 1)),\n                            i = this.canvas.getContext(\"2d\"),\n                            n = i.createLinearGradient(0, 0, this.canvas.width, 0);\n                        n.addColorStop(0, \"rgba(255, 255, 255, 1)\"), n.addColorStop(.5, \"rgba(255, 255, 255, 0.5)\"), n.addColorStop(1, \"rgba(255, 255, 255, 0)\");\n                        const o = i.createLinearGradient(0, 0, 0, this.canvas.height);\n                        o.addColorStop(0, \"rgba(0, 0, 0, 0)\"), o.addColorStop(1, \"rgba(0, 0, 0, 1)\"), i.rect(0, 0, this.canvas.width, this.canvas.height), i.fillStyle = y.Il.Format.CSS.format(t), i.fill(), i.fillStyle = n, i.fill(), i.fillStyle = o, i.fill()\n                    }\n                    paintSelection(e, t) {\n                        this.selection.style.left = e * this.width + \"px\", this.selection.style.top = this.height - t * this.height + \"px\"\n                    }\n                    onDidChangeColor() {\n                        this.monitor && this.monitor.isMonitoring() || this.paint()\n                    }\n                }\n                class P extends o.JT {\n                    constructor(e, t) {\n                        super(), this.model = t, this._onDidChange = new S.Q5, this.onDidChange = this._onDidChange.event, this._onColorFlushed = new S.Q5, this.onColorFlushed = this._onColorFlushed.event, this.domNode = d.R3(e, T(\".strip\")), this.overlay = d.R3(this.domNode, T(\".overlay\")), this.slider = d.R3(this.domNode, T(\".slider\")), this.slider.style.top = \"0px\", this._register(d.Lo(this.domNode, (e => this.onMouseDown(e)))), this.layout()\n                    }\n                    layout() {\n                        this.height = this.domNode.offsetHeight - this.slider.offsetHeight;\n                        const e = this.getValue(this.model.color);\n                        this.updateSliderPosition(e)\n                    }\n                    onMouseDown(e) {\n                        const t = this._register(new N.Z),\n                            i = d.i(this.domNode);\n                        this.domNode.classList.add(\"grabbing\"), e.target !== this.slider && this.onDidChangeTop(e.offsetY), t.startMonitoring(e.target, e.buttons, N.e, (e => this.onDidChangeTop(e.posy - i.top)), (() => null));\n                        const n = d.qV(document, (() => {\n                            this._onColorFlushed.fire(), n.dispose(), t.stopMonitoring(!0), this.domNode.classList.remove(\"grabbing\")\n                        }), !0)\n                    }\n                    onDidChangeTop(e) {\n                        const t = Math.max(0, Math.min(1, 1 - e / this.height));\n                        this.updateSliderPosition(t), this._onDidChange.fire(t)\n                    }\n                    updateSliderPosition(e) {\n                        this.slider.style.top = (1 - e) * this.height + \"px\"\n                    }\n                }\n                class R extends P {\n                    constructor(e, t) {\n                        super(e, t), this.domNode.classList.add(\"opacity-strip\"), this._register(t.onDidChangeColor(this.onDidChangeColor, this)), this.onDidChangeColor(this.model.color)\n                    }\n                    onDidChangeColor(e) {\n                        const {\n                            r: t,\n                            g: i,\n                            b: n\n                        } = e.rgba, o = new y.Il(new y.VS(t, i, n, 1)), s = new y.Il(new y.VS(t, i, n, 0));\n                        this.overlay.style.background = `linear-gradient(to bottom, ${o} 0%, ${s} 100%)`\n                    }\n                    getValue(e) {\n                        return e.hsva.a\n                    }\n                }\n                class F extends P {\n                    constructor(e, t) {\n                        super(e, t), this.domNode.classList.add(\"hue-strip\")\n                    }\n                    getValue(e) {\n                        return 1 - e.hsva.h / 360\n                    }\n                }\n                class B extends f.$ {\n                    constructor(e, t, i, n) {\n                        super(), this.model = t, this.pixelRatio = i, this._register((0, L.fX)((() => this.layout())));\n                        const o = T(\".colorpicker-widget\");\n                        e.appendChild(o);\n                        const s = new M(o, this.model, n);\n                        this.body = new A(o, this.model, this.pixelRatio), this._register(s), this._register(this.body)\n                    }\n                    layout() {\n                        this.body.layout()\n                    }\n                }\n                var V = function(e, t, i, n) {\n                        var o, s = arguments.length,\n                            r = s < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n                        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) r = Reflect.decorate(e, t, i, n);\n                        else\n                            for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (r = (s < 3 ? o(r) : s > 3 ? o(t, i, r) : o(t, i)) || r);\n                        return s > 3 && r && Object.defineProperty(t, i, r), r\n                    },\n                    W = function(e, t) {\n                        return function(i, n) {\n                            t(i, n, e)\n                        }\n                    },\n                    H = function(e, t, i, n) {\n                        return new(i || (i = Promise))((function(o, s) {\n                            function r(e) {\n                                try {\n                                    l(n.next(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function a(e) {\n                                try {\n                                    l(n.throw(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function l(e) {\n                                var t;\n                                e.done ? o(e.value) : (t = e.value, t instanceof i ? t : new i((function(e) {\n                                    e(t)\n                                }))).then(r, a)\n                            }\n                            l((n = n.apply(e, t || [])).next())\n                        }))\n                    };\n                class z {\n                    constructor(e, t, i, n) {\n                        this.owner = e, this.range = t, this.model = i, this.provider = n, this.forceShowAtRange = !0\n                    }\n                    isValidForHoverAnchor(e) {\n                        return 1 === e.type && this.range.startColumn <= e.range.startColumn && this.range.endColumn >= e.range.endColumn\n                    }\n                }\n                let j = class {\n                    constructor(e, t, i) {\n                        this._editor = e, this._hover = t, this._themeService = i\n                    }\n                    computeSync(e, t) {\n                        return []\n                    }\n                    computeAsync(e, t, i) {\n                        return H(this, void 0, void 0, (function*() {\n                            if (!this._editor.hasModel()) return [];\n                            const e = x.i.get(this._editor);\n                            for (const i of t) {\n                                if (\"color-detector-color\" !== i.options.description) continue;\n                                const t = e.getColorData(i.range.getStartPosition());\n                                if (t) {\n                                    return [yield this._createColorHover(this._editor.getModel(), t.colorInfo, t.provider)]\n                                }\n                            }\n                            return []\n                        }))\n                    }\n                    _createColorHover(e, t, i) {\n                        return H(this, void 0, void 0, (function*() {\n                            const n = e.getValueInRange(t.range),\n                                {\n                                    red: o,\n                                    green: s,\n                                    blue: a,\n                                    alpha: l\n                                } = t.color,\n                                c = new y.VS(Math.round(255 * o), Math.round(255 * s), Math.round(255 * a), l),\n                                d = new y.Il(c),\n                                h = yield(0, C.R)(e, t, i, w.T.None), u = new k(d, [], 0);\n                            return u.colorPresentations = h || [], u.guessColorPresentation(d, n), new z(this, r.e.lift(t.range), u, i)\n                        }))\n                    }\n                    renderHoverParts(e, t, i) {\n                        if (0 === e.length || !this._editor.hasModel()) return o.JT.None;\n                        const n = new o.SL,\n                            s = e[0],\n                            a = this._editor.getModel(),\n                            l = s.model,\n                            c = n.add(new B(t, l, this._editor.getOption(127), this._themeService));\n                        let d = new r.e(s.range.startLineNumber, s.range.startColumn, s.range.endLineNumber, s.range.endColumn);\n                        const h = () => {\n                                let e, t;\n                                if (l.presentation.textEdit) {\n                                    e = [l.presentation.textEdit], t = new r.e(l.presentation.textEdit.range.startLineNumber, l.presentation.textEdit.range.startColumn, l.presentation.textEdit.range.endLineNumber, l.presentation.textEdit.range.endColumn);\n                                    const i = this._editor.getModel()._setTrackedRange(null, t, 3);\n                                    this._editor.pushUndoStop(), this._editor.executeEdits(\"colorpicker\", e), t = this._editor.getModel()._getTrackedRange(i) || t\n                                } else e = [{\n                                    identifier: null,\n                                    range: d,\n                                    text: l.presentation.label,\n                                    forceMoveMarkers: !1\n                                }], t = d.setEndPosition(d.endLineNumber, d.startColumn + l.presentation.label.length), this._editor.pushUndoStop(), this._editor.executeEdits(\"colorpicker\", e);\n                                l.presentation.additionalTextEdits && (e = [...l.presentation.additionalTextEdits], this._editor.executeEdits(\"colorpicker\", e), this._hover.hide()), this._editor.pushUndoStop(), d = t\n                            },\n                            u = e => (0, C.R)(a, {\n                                range: d,\n                                color: {\n                                    red: e.rgba.r / 255,\n                                    green: e.rgba.g / 255,\n                                    blue: e.rgba.b / 255,\n                                    alpha: e.rgba.a\n                                }\n                            }, s.provider, w.T.None).then((e => {\n                                l.colorPresentations = e || []\n                            }));\n                        return n.add(l.onColorFlushed((e => {\n                            u(e).then(h)\n                        }))), n.add(l.onDidChangeColor(u)), this._hover.setColorPicker(c), n\n                    }\n                };\n                j = V([W(2, E.XE)], j);\n                var U = i(15393),\n                    $ = i(17301);\n                class K {\n                    constructor(e, t, i, n, o) {\n                        this._computer = e, this._state = 0, this._hoverTime = o, this._firstWaitScheduler = new U.pY((() => this._triggerAsyncComputation()), 0), this._secondWaitScheduler = new U.pY((() => this._triggerSyncComputation()), 0), this._loadingMessageScheduler = new U.pY((() => this._showLoadingMessage()), 0), this._asyncComputationPromise = null, this._asyncComputationPromiseDone = !1, this._completeCallback = t, this._errorCallback = i, this._progressCallback = n\n                    }\n                    setHoverTime(e) {\n                        this._hoverTime = e\n                    }\n                    _firstWaitTime() {\n                        return this._hoverTime / 2\n                    }\n                    _secondWaitTime() {\n                        return this._hoverTime / 2\n                    }\n                    _loadingMessageTime() {\n                        return 3 * this._hoverTime\n                    }\n                    _triggerAsyncComputation() {\n                        this._state = 2, this._secondWaitScheduler.schedule(this._secondWaitTime()), this._computer.computeAsync ? (this._asyncComputationPromiseDone = !1, this._asyncComputationPromise = (0, U.PG)((e => this._computer.computeAsync(e))), this._asyncComputationPromise.then((e => {\n                            this._asyncComputationPromiseDone = !0, this._withAsyncResult(e)\n                        }), (e => this._onError(e)))) : this._asyncComputationPromiseDone = !0\n                    }\n                    _triggerSyncComputation() {\n                        this._computer.computeSync && this._computer.onResult(this._computer.computeSync(), !0), this._asyncComputationPromiseDone ? (this._state = 0, this._onComplete(this._computer.getResult())) : (this._state = 3, this._onProgress(this._computer.getResult()))\n                    }\n                    _showLoadingMessage() {\n                        3 === this._state && this._onProgress(this._computer.getResultWithLoadingMessage())\n                    }\n                    _withAsyncResult(e) {\n                        e && this._computer.onResult(e, !1), 3 === this._state && (this._state = 0, this._onComplete(this._computer.getResult()))\n                    }\n                    _onComplete(e) {\n                        this._completeCallback(e)\n                    }\n                    _onError(e) {\n                        this._errorCallback ? this._errorCallback(e) : (0, $.dL)(e)\n                    }\n                    _onProgress(e) {\n                        this._progressCallback(e)\n                    }\n                    start(e) {\n                        if (0 === e) 0 === this._state && (this._state = 1, this._firstWaitScheduler.schedule(this._firstWaitTime()), this._loadingMessageScheduler.schedule(this._loadingMessageTime()));\n                        else switch (this._state) {\n                            case 0:\n                                this._triggerAsyncComputation(), this._secondWaitScheduler.cancel(), this._triggerSyncComputation();\n                                break;\n                            case 2:\n                                this._secondWaitScheduler.cancel(), this._triggerSyncComputation()\n                        }\n                    }\n                    cancel() {\n                        this._loadingMessageScheduler.cancel(), 1 === this._state && this._firstWaitScheduler.cancel(), 2 === this._state && (this._secondWaitScheduler.cancel(), this._asyncComputationPromise && (this._asyncComputationPromise.cancel(), this._asyncComputationPromise = null)), 3 === this._state && this._asyncComputationPromise && (this._asyncComputationPromise.cancel(), this._asyncComputationPromise = null), this._state = 0\n                    }\n                }\n                class q {\n                    constructor(e, t) {\n                        this.priority = e, this.range = t, this.type = 1\n                    }\n                    equals(e) {\n                        return 1 === e.type && this.range.equalsRange(e.range)\n                    }\n                    canAdoptVisibleHover(e, t) {\n                        return 1 === e.type && t.lineNumber === this.range.startLineNumber\n                    }\n                }\n                class Z {\n                    constructor(e, t, i) {\n                        this.priority = e, this.owner = t, this.range = i, this.type = 2\n                    }\n                    equals(e) {\n                        return 2 === e.type && this.owner === e.owner\n                    }\n                    canAdoptVisibleHover(e, t) {\n                        return 2 === e.type && this.owner === e.owner\n                    }\n                }\n                var G = i(59365),\n                    Y = i(43256);\n\n                function Q(e, t, i) {\n                    const n = b.xp.ordered(e).map((n => Promise.resolve(n.provideHover(e, t, i)).then((e => e && function(e) {\n                        const t = void 0 !== e.range,\n                            i = void 0 !== e.contents && e.contents && e.contents.length > 0;\n                        return t && i\n                    }(e) ? e : void 0), (e => {\n                        (0, $.Cp)(e)\n                    }))));\n                    return Promise.all(n).then(m.kX)\n                }(0, s.sb)(\"_executeHoverProvider\", ((e, t) => Q(e, t, w.T.None)));\n                var X = i(33108),\n                    J = i(50988),\n                    ee = function(e, t, i, n) {\n                        var o, s = arguments.length,\n                            r = s < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n                        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) r = Reflect.decorate(e, t, i, n);\n                        else\n                            for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (r = (s < 3 ? o(r) : s > 3 ? o(t, i, r) : o(t, i)) || r);\n                        return s > 3 && r && Object.defineProperty(t, i, r), r\n                    },\n                    te = function(e, t) {\n                        return function(i, n) {\n                            t(i, n, e)\n                        }\n                    },\n                    ie = function(e, t, i, n) {\n                        return new(i || (i = Promise))((function(o, s) {\n                            function r(e) {\n                                try {\n                                    l(n.next(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function a(e) {\n                                try {\n                                    l(n.throw(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function l(e) {\n                                var t;\n                                e.done ? o(e.value) : (t = e.value, t instanceof i ? t : new i((function(e) {\n                                    e(t)\n                                }))).then(r, a)\n                            }\n                            l((n = n.apply(e, t || [])).next())\n                        }))\n                    };\n                const ne = d.$;\n                class oe {\n                    constructor(e, t, i) {\n                        this.owner = e, this.range = t, this.contents = i\n                    }\n                    isValidForHoverAnchor(e) {\n                        return 1 === e.type && this.range.startColumn <= e.range.startColumn && this.range.endColumn >= e.range.endColumn\n                    }\n                }\n                let se = class {\n                    constructor(e, t, i, n, o) {\n                        this._editor = e, this._hover = t, this._modeService = i, this._openerService = n, this._configurationService = o\n                    }\n                    createLoadingMessage(e) {\n                        return new oe(this, e.range, [(new G.W5).appendText(D.N(\"modesContentHover.loading\", \"正在加载...\"))])\n                    }\n                    computeSync(e, t) {\n                        if (!this._editor.hasModel() || 1 !== e.type) return [];\n                        const i = this._editor.getModel(),\n                            n = e.range.startLineNumber,\n                            o = i.getLineMaxColumn(n),\n                            s = [];\n                        for (const i of t) {\n                            const t = i.range.startLineNumber === n ? i.range.startColumn : 1,\n                                a = i.range.endLineNumber === n ? i.range.endColumn : o,\n                                l = i.options.hoverMessage;\n                            if (!l || (0, G.CP)(l)) continue;\n                            const c = new r.e(e.range.startLineNumber, t, e.range.startLineNumber, a);\n                            s.push(new oe(this, c, (0, m._2)(l)))\n                        }\n                        const a = i.getLineLength(n),\n                            l = i.getLanguageIdAtPosition(e.range.startLineNumber, e.range.startColumn),\n                            c = this._configurationService.getValue(\"editor.maxTokenizationLineLength\", {\n                                overrideIdentifier: l\n                            });\n                        return \"number\" == typeof c && a >= c && s.push(new oe(this, e.range, [{\n                            value: D.N(\"too many characters\", \"Tokenization is skipped for long lines for performance reasons. This can be configured via `editor.maxTokenizationLineLength`.\")\n                        }])), s\n                    }\n                    computeAsync(e, t, i) {\n                        return ie(this, void 0, void 0, (function*() {\n                            if (!this._editor.hasModel() || 1 !== e.type) return Promise.resolve([]);\n                            const t = this._editor.getModel();\n                            if (!b.xp.has(t)) return Promise.resolve([]);\n                            const n = yield Q(t, new v.L(e.range.startLineNumber, e.range.startColumn), i), o = [];\n                            for (const t of n) {\n                                if ((0, G.CP)(t.contents)) continue;\n                                const i = t.range ? r.e.lift(t.range) : e.range;\n                                o.push(new oe(this, i, t.contents))\n                            }\n                            return o\n                        }))\n                    }\n                    renderHoverParts(e, t, i) {\n                        const n = new o.SL;\n                        for (const i of e)\n                            for (const e of i.contents) {\n                                if ((0, G.CP)(e)) continue;\n                                const i = ne(\"div.hover-row.markdown-hover\"),\n                                    o = d.R3(i, ne(\"div.hover-contents\")),\n                                    s = n.add(new Y.$({\n                                        editor: this._editor\n                                    }, this._modeService, this._openerService));\n                                n.add(s.onDidRenderAsync((() => {\n                                    o.className = \"hover-contents code-hover-contents\", this._hover.onContentsChanged()\n                                })));\n                                const r = n.add(s.render(e));\n                                o.appendChild(r.element), t.appendChild(i)\n                            }\n                        return n\n                    }\n                };\n                se = ee([te(2, l.h), te(3, J.v4), te(4, X.Ui)], se);\n                var re = i(95935),\n                    ae = i(26479),\n                    le = i(31907),\n                    ce = i(23674),\n                    de = i(89532),\n                    he = i(42698),\n                    ue = i(98674),\n                    ge = i(90535),\n                    pe = function(e, t, i, n) {\n                        var o, s = arguments.length,\n                            r = s < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n                        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) r = Reflect.decorate(e, t, i, n);\n                        else\n                            for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (r = (s < 3 ? o(r) : s > 3 ? o(t, i, r) : o(t, i)) || r);\n                        return s > 3 && r && Object.defineProperty(t, i, r), r\n                    },\n                    fe = function(e, t) {\n                        return function(i, n) {\n                            t(i, n, e)\n                        }\n                    };\n                const me = d.$;\n                class ve {\n                    constructor(e, t, i) {\n                        this.owner = e, this.range = t, this.marker = i\n                    }\n                    isValidForHoverAnchor(e) {\n                        return 1 === e.type && this.range.startColumn <= e.range.startColumn && this.range.endColumn >= e.range.endColumn\n                    }\n                }\n                const _e = {\n                    type: 1,\n                    filter: {\n                        include: de.yN.QuickFix\n                    }\n                };\n                let be = class {\n                    constructor(e, t, i, n) {\n                        this._editor = e, this._hover = t, this._markerDecorationsService = i, this._openerService = n, this.recentMarkerCodeActionsInfo = void 0\n                    }\n                    computeSync(e, t) {\n                        if (!this._editor.hasModel() || 1 !== e.type) return [];\n                        const i = this._editor.getModel(),\n                            n = e.range.startLineNumber,\n                            o = i.getLineMaxColumn(n),\n                            s = [];\n                        for (const a of t) {\n                            const t = a.range.startLineNumber === n ? a.range.startColumn : 1,\n                                l = a.range.endLineNumber === n ? a.range.endColumn : o,\n                                c = this._markerDecorationsService.getMarker(i.uri, a);\n                            if (!c) continue;\n                            const d = new r.e(e.range.startLineNumber, t, e.range.startLineNumber, l);\n                            s.push(new ve(this, d, c))\n                        }\n                        return s\n                    }\n                    renderHoverParts(e, t, i) {\n                        if (!e.length) return o.JT.None;\n                        const n = new o.SL;\n                        e.forEach((e => t.appendChild(this.renderMarkerHover(e, n))));\n                        const s = 1 === e.length ? e[0] : e.sort(((e, t) => ue.ZL.compare(e.marker.severity, t.marker.severity)))[0];\n                        return this.renderMarkerStatusbar(s, i, n), n\n                    }\n                    renderMarkerHover(e, t) {\n                        const i = me(\"div.hover-row\"),\n                            n = d.R3(i, me(\"div.marker.hover-contents\")),\n                            {\n                                source: o,\n                                message: s,\n                                code: r,\n                                relatedInformation: a\n                            } = e.marker;\n                        this._editor.applyFontInfo(n);\n                        const l = d.R3(n, me(\"span\"));\n                        if (l.style.whiteSpace = \"pre-wrap\", l.innerText = s, o || r)\n                            if (r && \"string\" != typeof r) {\n                                const e = me(\"span\");\n                                if (o) {\n                                    d.R3(e, me(\"span\")).innerText = o\n                                }\n                                const i = d.R3(e, me(\"a.code-link\"));\n                                i.setAttribute(\"href\", r.target.toString()), t.add(d.nm(i, \"click\", (e => {\n                                    this._openerService.open(r.target, {\n                                        allowCommands: !0\n                                    }), e.preventDefault(), e.stopPropagation()\n                                })));\n                                d.R3(i, me(\"span\")).innerText = r.value;\n                                const s = d.R3(n, e);\n                                s.style.opacity = \"0.6\", s.style.paddingLeft = \"6px\"\n                            } else {\n                                const e = d.R3(n, me(\"span\"));\n                                e.style.opacity = \"0.6\", e.style.paddingLeft = \"6px\", e.innerText = o && r ? `${o}(${r})` : o || `(${r})`\n                            } if ((0, m.Of)(a))\n                            for (const {\n                                    message: e,\n                                    resource: i,\n                                    startLineNumber: o,\n                                    startColumn: s\n                                } of a) {\n                                const r = d.R3(n, me(\"div\"));\n                                r.style.marginTop = \"8px\";\n                                const a = d.R3(r, me(\"a\"));\n                                a.innerText = `${(0,re.EZ)(i)}(${o}, ${s}): `, a.style.cursor = \"pointer\", t.add(d.nm(a, \"click\", (e => {\n                                    e.stopPropagation(), e.preventDefault(), this._openerService && this._openerService.open(i, {\n                                        fromUserGesture: !0,\n                                        editorOptions: {\n                                            selection: {\n                                                startLineNumber: o,\n                                                startColumn: s\n                                            }\n                                        }\n                                    }).catch($.dL)\n                                })));\n                                const l = d.R3(r, me(\"span\"));\n                                l.innerText = e, this._editor.applyFontInfo(l)\n                            }\n                        return i\n                    }\n                    renderMarkerStatusbar(e, t, i) {\n                        if (e.marker.severity !== ue.ZL.Error && e.marker.severity !== ue.ZL.Warning && e.marker.severity !== ue.ZL.Info || t.addAction({\n                                label: D.N(\"view problem\", \"View Problem\"),\n                                commandId: he.NextMarkerAction.ID,\n                                run: () => {\n                                    this._hover.hide(), he.MarkerController.get(this._editor).showAtMarker(e.marker), this._editor.focus()\n                                }\n                            }), !this._editor.getOption(80)) {\n                            const n = t.append(me(\"div\"));\n                            this.recentMarkerCodeActionsInfo && (ue.H0.makeKey(this.recentMarkerCodeActionsInfo.marker) === ue.H0.makeKey(e.marker) ? this.recentMarkerCodeActionsInfo.hasCodeActions || (n.textContent = D.N(\"noQuickFixes\", \"No quick fixes available\")) : this.recentMarkerCodeActionsInfo = void 0);\n                            const s = this.recentMarkerCodeActionsInfo && !this.recentMarkerCodeActionsInfo.hasCodeActions ? o.JT.None : i.add((0, U.Vg)((() => n.textContent = D.N(\"checkingForQuickFixes\", \"Checking for quick fixes...\")), 200));\n                            n.textContent || (n.textContent = String.fromCharCode(160));\n                            const r = this.getCodeActions(e.marker);\n                            i.add((0, o.OF)((() => r.cancel()))), r.then((r => {\n                                if (s.dispose(), this.recentMarkerCodeActionsInfo = {\n                                        marker: e.marker,\n                                        hasCodeActions: r.validActions.length > 0\n                                    }, !this.recentMarkerCodeActionsInfo.hasCodeActions) return r.dispose(), void(n.textContent = D.N(\"noQuickFixes\", \"No quick fixes available\"));\n                                n.style.display = \"none\";\n                                let a = !1;\n                                i.add((0, o.OF)((() => {\n                                    a || r.dispose()\n                                }))), t.addAction({\n                                    label: D.N(\"quick fixes\", \"Quick Fix...\"),\n                                    commandId: ce.E7.Id,\n                                    run: e => {\n                                        a = !0;\n                                        const t = ce.pY.get(this._editor),\n                                            i = d.i(e);\n                                        this._hover.hide(), t.showCodeActions(_e, r, {\n                                            x: i.left + 6,\n                                            y: i.top + i.height + 6\n                                        })\n                                    }\n                                })\n                            }), $.dL)\n                        }\n                    }\n                    getCodeActions(e) {\n                        return (0, U.PG)((t => (0, le.aI)(this._editor.getModel(), new r.e(e.startLineNumber, e.startColumn, e.endLineNumber, e.endColumn), _e, ge.E.None, t)))\n                    }\n                };\n                be = pe([fe(2, ae.i), fe(3, J.v4)], be), (0, E.Ic)(((e, t) => {\n                    const i = e.getColor(I.ur);\n                    i && t.addRule(`.monaco-hover .hover-contents a.code-link span { color: ${i}; }`);\n                    const n = e.getColor(I.sg);\n                    n && t.addRule(`.monaco-hover .hover-contents a.code-link span:hover { color: ${n}; }`)\n                }));\n                var we = i(43818),\n                    ye = i(31106),\n                    Ce = i(84144),\n                    xe = i(94565),\n                    Se = i(38819),\n                    ke = function(e, t, i, n) {\n                        var o, s = arguments.length,\n                            r = s < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n                        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) r = Reflect.decorate(e, t, i, n);\n                        else\n                            for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (r = (s < 3 ? o(r) : s > 3 ? o(t, i, r) : o(t, i)) || r);\n                        return s > 3 && r && Object.defineProperty(t, i, r), r\n                    },\n                    Le = function(e, t) {\n                        return function(i, n) {\n                            t(i, n, e)\n                        }\n                    };\n                class Ne {\n                    constructor(e, t, i) {\n                        this.owner = e, this.range = t, this.controller = i\n                    }\n                    isValidForHoverAnchor(e) {\n                        return 1 === e.type && this.range.startColumn <= e.range.startColumn && this.range.endColumn >= e.range.endColumn\n                    }\n                    hasMultipleSuggestions() {\n                        return this.controller.hasMultipleInlineCompletions()\n                    }\n                }\n                let De = class {\n                    constructor(e, t, i, n, o, s, r, a) {\n                        this._editor = e, this._hover = t, this._commandService = i, this._menuService = n, this._contextKeyService = o, this._modeService = s, this._openerService = r, this.accessibilityService = a\n                    }\n                    suggestHoverAnchor(e) {\n                        const t = we.GhostTextController.get(this._editor);\n                        if (!t) return null;\n                        if (8 === e.target.type) {\n                            const i = e.target.detail;\n                            if (t.shouldShowHoverAtViewZone(i.viewZoneId)) return new Z(1e3, this, r.e.fromPositions(i.positionBefore || i.position, i.positionBefore || i.position))\n                        }\n                        if (7 === e.target.type && e.target.range && t.shouldShowHoverAt(e.target.range)) return new Z(1e3, this, e.target.range);\n                        if (6 === e.target.type && e.target.range && e.target.detail) {\n                            if (e.target.detail.mightBeForeignElement && t.shouldShowHoverAt(e.target.range)) return new Z(1e3, this, e.target.range)\n                        }\n                        return null\n                    }\n                    computeSync(e, t) {\n                        const i = we.GhostTextController.get(this._editor);\n                        return i && i.shouldShowHoverAt(e.range) ? [new Ne(this, e.range, i)] : []\n                    }\n                    renderHoverParts(e, t, i) {\n                        const n = new o.SL,\n                            s = e[0];\n                        this.accessibilityService.isScreenReaderOptimized() && this.renderScreenReaderText(s, t, n);\n                        const r = n.add(this._menuService.createMenu(Ce.eH.InlineCompletionsActions, this._contextKeyService)),\n                            a = i.addAction({\n                                label: D.N(\"showNextInlineSuggestion\", \"Next\"),\n                                commandId: we.ShowNextInlineSuggestionAction.ID,\n                                run: () => this._commandService.executeCommand(we.ShowNextInlineSuggestionAction.ID)\n                            }),\n                            l = i.addAction({\n                                label: D.N(\"showPreviousInlineSuggestion\", \"Previous\"),\n                                commandId: we.ShowPreviousInlineSuggestionAction.ID,\n                                run: () => this._commandService.executeCommand(we.ShowPreviousInlineSuggestionAction.ID)\n                            });\n                        i.addAction({\n                            label: D.N(\"acceptInlineSuggestion\", \"Accept\"),\n                            commandId: we.commitInlineSuggestionAction.id,\n                            run: () => this._commandService.executeCommand(we.commitInlineSuggestionAction.id)\n                        });\n                        const c = [a, l];\n                        for (const e of c) e.setEnabled(!1);\n                        s.hasMultipleSuggestions().then((e => {\n                            for (const t of c) t.setEnabled(e)\n                        }));\n                        for (const [e, t] of r.getActions())\n                            for (const e of t) e instanceof Ce.U8 && i.addAction({\n                                label: e.label,\n                                commandId: e.item.id,\n                                run: () => this._commandService.executeCommand(e.item.id)\n                            });\n                        return n\n                    }\n                    renderScreenReaderText(e, t, i) {\n                        var n, o;\n                        const s = d.$,\n                            r = s(\"div.hover-row.markdown-hover\"),\n                            a = d.R3(r, s(\"div.hover-contents\")),\n                            l = i.add(new Y.$({\n                                editor: this._editor\n                            }, this._modeService, this._openerService)),\n                            c = e => {\n                                i.add(l.onDidRenderAsync((() => {\n                                    a.className = \"hover-contents code-hover-contents\", this._hover.onContentsChanged()\n                                })));\n                                const t = D.N(\"inlineSuggestionFollows\", \"Suggestion:\"),\n                                    n = i.add(l.render((new G.W5).appendText(t).appendCodeblock(\"text\", e)));\n                                a.replaceChildren(n.element)\n                            },\n                            h = null === (o = null === (n = e.controller.activeModel) || void 0 === n ? void 0 : n.inlineCompletionsModel) || void 0 === o ? void 0 : o.ghostText;\n                        if (h) {\n                            const e = this._editor.getModel().getLineContent(h.lineNumber);\n                            c(h.renderForScreenReader(e))\n                        }\n                        t.appendChild(r)\n                    }\n                };\n                De = ke([Le(2, xe.H), Le(3, Ce.co), Le(4, Se.i6), Le(5, l.h), Le(6, J.v4), Le(7, ye.F)], De);\n                var Ie = i(72065),\n                    Ee = i(91847),\n                    Te = i(79599),\n                    Me = function(e, t, i, n) {\n                        var o, s = arguments.length,\n                            r = s < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n                        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) r = Reflect.decorate(e, t, i, n);\n                        else\n                            for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (r = (s < 3 ? o(r) : s > 3 ? o(t, i, r) : o(t, i)) || r);\n                        return s > 3 && r && Object.defineProperty(t, i, r), r\n                    },\n                    Ae = function(e, t) {\n                        return function(i, n) {\n                            t(i, n, e)\n                        }\n                    },\n                    Oe = function(e, t, i, n) {\n                        return new(i || (i = Promise))((function(o, s) {\n                            function r(e) {\n                                try {\n                                    l(n.next(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function a(e) {\n                                try {\n                                    l(n.throw(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function l(e) {\n                                var t;\n                                e.done ? o(e.value) : (t = e.value, t instanceof i ? t : new i((function(e) {\n                                    e(t)\n                                }))).then(r, a)\n                            }\n                            l((n = n.apply(e, t || [])).next())\n                        }))\n                    };\n                const Pe = d.$;\n                let Re = class extends o.JT {\n                    constructor(e) {\n                        super(), this._keybindingService = e, this._hasContent = !1, this.hoverElement = Pe(\"div.hover-row.status-bar\"), this.actionsElement = d.R3(this.hoverElement, Pe(\"div.actions\"))\n                    }\n                    get hasContent() {\n                        return this._hasContent\n                    }\n                    addAction(e) {\n                        const t = this._keybindingService.lookupKeybinding(e.commandId),\n                            i = t ? t.getLabel() : null;\n                        return this._hasContent = !0, this._register(p.render(this.actionsElement, e, i))\n                    }\n                    append(e) {\n                        const t = d.R3(this.actionsElement, e);\n                        return this._hasContent = !0, t\n                    }\n                };\n                Re = Me([Ae(0, Ee.d)], Re);\n                class Fe {\n                    constructor(e, t) {\n                        this._participants = t, this._editor = e, this._result = [], this._anchor = null\n                    }\n                    setAnchor(e) {\n                        this._anchor = e, this._result = []\n                    }\n                    clearResult() {\n                        this._result = []\n                    }\n                    static _getLineDecorations(e, t) {\n                        if (1 !== t.type) return [];\n                        const i = e.getModel(),\n                            n = t.range.startLineNumber,\n                            o = i.getLineMaxColumn(n);\n                        return e.getLineDecorations(n).filter((e => {\n                            if (e.options.isWholeLine) return !0;\n                            const i = e.range.startLineNumber === n ? e.range.startColumn : 1,\n                                s = e.range.endLineNumber === n ? e.range.endColumn : o;\n                            return !(i > t.range.startColumn || t.range.endColumn > s)\n                        }))\n                    }\n                    computeAsync(e) {\n                        return Oe(this, void 0, void 0, (function*() {\n                            const t = this._anchor;\n                            if (!this._editor.hasModel() || !t) return Promise.resolve([]);\n                            const i = Fe._getLineDecorations(this._editor, t),\n                                n = yield Promise.all(this._participants.map((n => this._computeAsync(n, i, t, e))));\n                            return (0, m.xH)(n)\n                        }))\n                    }\n                    _computeAsync(e, t, i, n) {\n                        return Oe(this, void 0, void 0, (function*() {\n                            return e.computeAsync ? e.computeAsync(i, t, n) : []\n                        }))\n                    }\n                    computeSync() {\n                        if (!this._editor.hasModel() || !this._anchor) return [];\n                        const e = Fe._getLineDecorations(this._editor, this._anchor);\n                        let t = [];\n                        for (const i of this._participants) t = t.concat(i.computeSync(this._anchor, e));\n                        return (0, m.kX)(t)\n                    }\n                    onResult(e, t) {\n                        this._result = t ? e.concat(this._result) : this._result.concat(e)\n                    }\n                    getResult() {\n                        return this._result.slice(0)\n                    }\n                    getResultWithLoadingMessage() {\n                        if (this._anchor)\n                            for (const e of this._participants)\n                                if (e.createLoadingMessage) {\n                                    const t = e.createLoadingMessage(this._anchor);\n                                    if (t) return this._result.slice(0).concat([t])\n                                } return this._result.slice(0)\n                    }\n                }\n                let Be = class e extends f.$ {\n                    constructor(e, t, i, n, o) {\n                        super(), this._hoverVisibleKey = t, this._keybindingService = n, this._contextKeyService = o, this.allowEditorOverflow = !0, this._participants = [i.createInstance(j, e, this), i.createInstance(se, e, this), i.createInstance(De, e, this), i.createInstance(be, e, this)], this._editor = e, this._isVisible = !1, this._stoleFocus = !1, this._renderDisposable = null, this._hover = this._register(new g), this._hover.containerDomNode.classList.toggle(\"hidden\", !this._isVisible), this.onkeydown(this._hover.containerDomNode, (e => {\n                            e.equals(9) && this.hide()\n                        })), this._register(this._editor.onDidChangeConfiguration((e => {\n                            e.hasChanged(43) && this._updateFont()\n                        }))), this._editor.onDidLayoutChange((() => this.layout())), this.layout(), this._editor.addContentWidget(this), this._showAtPosition = null, this._showAtRange = null, this._stoleFocus = !1, this._messages = [], this._lastAnchor = null, this._computer = new Fe(this._editor, this._participants), this._highlightDecorations = [], this._isChangingDecorations = !1, this._shouldFocus = !1, this._colorPicker = null, this._preferAbove = this._editor.getOption(52).above, this._hoverOperation = new K(this._computer, (e => this._withResult(e, !0)), null, (e => this._withResult(e, !1)), this._editor.getOption(52).delay), this._register(d.mu(this.getDomNode(), d.tw.FOCUS, (() => {\n                            this._colorPicker && this.getDomNode().classList.add(\"colorpicker-hover\")\n                        }))), this._register(d.mu(this.getDomNode(), d.tw.BLUR, (() => {\n                            this.getDomNode().classList.remove(\"colorpicker-hover\")\n                        }))), this._register(e.onDidChangeConfiguration((() => {\n                            this._hoverOperation.setHoverTime(this._editor.getOption(52).delay), this._preferAbove = this._editor.getOption(52).above\n                        }))), this._register(b.RW.onDidChange((() => {\n                            this._isVisible && this._lastAnchor && this._messages.length > 0 && (this._hover.contentsDomNode.textContent = \"\", this._renderMessages(this._lastAnchor, this._messages))\n                        })))\n                    }\n                    dispose() {\n                        this._hoverOperation.cancel(), this._editor.removeContentWidget(this), super.dispose()\n                    }\n                    getId() {\n                        return e.ID\n                    }\n                    getDomNode() {\n                        return this._hover.containerDomNode\n                    }\n                    _shouldShowAt(e) {\n                        const t = e.target.type;\n                        if (6 === t) return !0;\n                        if (7 === t) {\n                            const t = this._editor.getOption(43).typicalHalfwidthCharacterWidth / 2,\n                                i = e.target.detail;\n                            if (i && !i.isAfterLines && \"number\" == typeof i.horizontalDistanceToText && i.horizontalDistanceToText < t) return !0\n                        }\n                        return !1\n                    }\n                    maybeShowAt(e) {\n                        var t;\n                        const i = [];\n                        for (const t of this._participants)\n                            if (\"function\" == typeof t.suggestHoverAnchor) {\n                                const n = t.suggestHoverAnchor(e);\n                                n && i.push(n)\n                            } if (this._shouldShowAt(e) && e.target.range) {\n                            const n = [...(null === (t = e.target.element) || void 0 === t ? void 0 : t.classList.values()) || []].find((e => e.startsWith(\"ced-colorBox\"))) && e.target.range.endColumn - e.target.range.startColumn == 1 ? new r.e(e.target.range.startLineNumber, e.target.range.startColumn + 1, e.target.range.endLineNumber, e.target.range.endColumn + 1) : e.target.range;\n                            i.push(new q(0, n))\n                        }\n                        return 0 !== i.length && (i.sort(((e, t) => t.priority - e.priority)), this._startShowingAt(i[0], 0, !1), !0)\n                    }\n                    _showAt(e, t, i) {\n                        this._showAtPosition = e, this._showAtRange = t, this._hoverVisibleKey.set(!0), this._isVisible = !0, this._hover.containerDomNode.classList.toggle(\"hidden\", !this._isVisible), this._editor.layoutContentWidget(this), this._editor.render(), this._stoleFocus = i, i && this._hover.containerDomNode.focus()\n                    }\n                    getPosition() {\n                        if (this._isVisible) {\n                            let e = this._preferAbove;\n                            return !e && this._contextKeyService.getContextKeyValue(Te._y.Visible.key) && (e = !0), {\n                                position: this._showAtPosition,\n                                range: this._showAtRange,\n                                preference: e ? [1, 2] : [2, 1]\n                            }\n                        }\n                        return null\n                    }\n                    _updateFont() {\n                        Array.prototype.slice.call(this._hover.contentsDomNode.getElementsByClassName(\"code\")).forEach((e => this._editor.applyFontInfo(e)))\n                    }\n                    _updateContents(e) {\n                        this._hover.contentsDomNode.textContent = \"\", this._hover.contentsDomNode.appendChild(e), this._updateFont(), this._editor.layoutContentWidget(this), this._hover.onContentsChanged()\n                    }\n                    layout() {\n                        const e = Math.max(this._editor.getLayoutInfo().height / 4, 250),\n                            {\n                                fontSize: t,\n                                lineHeight: i\n                            } = this._editor.getOption(43);\n                        this._hover.contentsDomNode.style.fontSize = `${t}px`, this._hover.contentsDomNode.style.lineHeight = \"\" + i / t, this._hover.contentsDomNode.style.maxHeight = `${e}px`, this._hover.contentsDomNode.style.maxWidth = `${Math.max(.66*this._editor.getLayoutInfo().width,500)}px`\n                    }\n                    onModelDecorationsChanged() {\n                        this._isChangingDecorations || this._isVisible && (this._hoverOperation.cancel(), this._computer.clearResult(), this._colorPicker || this._hoverOperation.start(0))\n                    }\n                    startShowingAtRange(e, t, i) {\n                        this._startShowingAt(new q(0, e), t, i)\n                    }\n                    _startShowingAt(e, t, i) {\n                        if (!this._lastAnchor || !this._lastAnchor.equals(e)) {\n                            if (this._hoverOperation.cancel(), this._isVisible)\n                                if (this._showAtPosition && this._lastAnchor && e.canAdoptVisibleHover(this._lastAnchor, this._showAtPosition)) {\n                                    const t = this._messages.filter((t => t.isValidForHoverAnchor(e)));\n                                    if (0 === t.length) this.hide();\n                                    else {\n                                        if (t.length === this._messages.length) return;\n                                        this._renderMessages(e, t)\n                                    }\n                                } else this.hide();\n                            this._lastAnchor = e, this._computer.setAnchor(e), this._shouldFocus = i, this._hoverOperation.start(t)\n                        }\n                    }\n                    hide() {\n                        this._lastAnchor = null, this._hoverOperation.cancel(), this._isVisible && (setTimeout((() => {\n                            this._isVisible || this._hoverVisibleKey.set(!1)\n                        }), 0), this._isVisible = !1, this._hover.containerDomNode.classList.toggle(\"hidden\", !this._isVisible), this._editor.layoutContentWidget(this), this._stoleFocus && this._editor.focus()), this._isChangingDecorations = !0, this._highlightDecorations = this._editor.deltaDecorations(this._highlightDecorations, []), this._isChangingDecorations = !1, this._renderDisposable && (this._renderDisposable.dispose(), this._renderDisposable = null), this._colorPicker = null\n                    }\n                    isColorPickerVisible() {\n                        return !!this._colorPicker\n                    }\n                    setColorPicker(e) {\n                        this._colorPicker = e\n                    }\n                    onContentsChanged() {\n                        this._hover.onContentsChanged()\n                    }\n                    _withResult(e, t) {\n                        this._messages = e, this._lastAnchor && this._messages.length > 0 ? this._renderMessages(this._lastAnchor, this._messages) : t && this.hide()\n                    }\n                    _renderMessages(t, i) {\n                        this._renderDisposable && (this._renderDisposable.dispose(), this._renderDisposable = null), this._colorPicker = null;\n                        let n = 1073741824,\n                            s = i[0].range,\n                            a = null,\n                            l = document.createDocumentFragment();\n                        const c = new o.SL,\n                            d = new Map;\n                        for (const e of i) {\n                            n = Math.min(n, e.range.startColumn), s = r.e.plusRange(s, e.range), e.forceShowAtRange && (a = e.range), d.has(e.owner) || d.set(e.owner, []);\n                            d.get(e.owner).push(e)\n                        }\n                        const h = c.add(new Re(this._keybindingService));\n                        for (const [e, t] of d) c.add(e.renderHoverParts(t, l, h));\n                        h.hasContent && l.appendChild(h.hoverElement), this._renderDisposable = c, l.hasChildNodes() && (a ? this._showAt(a.getStartPosition(), a, this._shouldFocus) : this._showAt(new v.L(t.range.startLineNumber, n), s, this._shouldFocus), this._updateContents(l)), this._colorPicker && this._colorPicker.layout(), this._isChangingDecorations = !0, this._highlightDecorations = this._editor.deltaDecorations(this._highlightDecorations, s ? [{\n                            range: s,\n                            options: e._DECORATION_OPTIONS\n                        }] : []), this._isChangingDecorations = !1\n                    }\n                };\n                Be.ID = \"editor.contrib.modesContentHoverWidget\", Be._DECORATION_OPTIONS = _.qx.register({\n                    description: \"content-hover-highlight\",\n                    className: \"hoverHighlight\"\n                }), Be = Me([Ae(2, Ie.TG), Ae(3, Ee.d), Ae(4, Se.i6)], Be);\n                const Ve = d.$;\n                class We {\n                    constructor(e) {\n                        this._editor = e, this._lineNumber = -1, this._result = []\n                    }\n                    setLineNumber(e) {\n                        this._lineNumber = e, this._result = []\n                    }\n                    clearResult() {\n                        this._result = []\n                    }\n                    computeSync() {\n                        const e = e => ({\n                                value: e\n                            }),\n                            t = this._editor.getLineDecorations(this._lineNumber),\n                            i = [];\n                        if (!t) return i;\n                        for (const n of t) {\n                            if (!n.options.glyphMarginClassName) continue;\n                            const t = n.options.glyphMarginHoverMessage;\n                            t && !(0, G.CP)(t) && i.push(...(0, m._2)(t).map(e))\n                        }\n                        return i\n                    }\n                    onResult(e, t) {\n                        this._result = this._result.concat(e)\n                    }\n                    getResult() {\n                        return this._result\n                    }\n                    getResultWithLoadingMessage() {\n                        return this.getResult()\n                    }\n                }\n                class He extends f.$ {\n                    constructor(e, t, i = J.SW) {\n                        super(), this._renderDisposeables = this._register(new o.SL), this._editor = e, this._isVisible = !1, this._messages = [], this._lastLineNumber = -1, this._hover = this._register(new g), this._hover.containerDomNode.classList.toggle(\"hidden\", !this._isVisible), this._markdownRenderer = this._register(new Y.$({\n                            editor: this._editor\n                        }, t, i)), this._computer = new We(this._editor), this._hoverOperation = new K(this._computer, (e => this._withResult(e)), void 0, (e => this._withResult(e)), 300), this._register(this._editor.onDidChangeConfiguration((e => {\n                            e.hasChanged(43) && this._updateFont()\n                        }))), this._editor.addOverlayWidget(this)\n                    }\n                    dispose() {\n                        this._hoverOperation.cancel(), this._editor.removeOverlayWidget(this), super.dispose()\n                    }\n                    getId() {\n                        return He.ID\n                    }\n                    getDomNode() {\n                        return this._hover.containerDomNode\n                    }\n                    getPosition() {\n                        return null\n                    }\n                    _showAt(e) {\n                        this._isVisible || (this._isVisible = !0, this._hover.containerDomNode.classList.toggle(\"hidden\", !this._isVisible));\n                        const t = this._editor.getLayoutInfo(),\n                            i = this._editor.getTopForLineNumber(e),\n                            n = this._editor.getScrollTop(),\n                            o = this._editor.getOption(58),\n                            s = i - n - (this._hover.containerDomNode.clientHeight - o) / 2;\n                        this._hover.containerDomNode.style.left = `${t.glyphMarginLeft+t.glyphMarginWidth}px`, this._hover.containerDomNode.style.top = `${Math.max(Math.round(s),0)}px`\n                    }\n                    _updateFont() {\n                        Array.prototype.slice.call(this._hover.contentsDomNode.getElementsByClassName(\"code\")).forEach((e => this._editor.applyFontInfo(e)))\n                    }\n                    _updateContents(e) {\n                        this._hover.contentsDomNode.textContent = \"\", this._hover.contentsDomNode.appendChild(e), this._updateFont()\n                    }\n                    onModelDecorationsChanged() {\n                        this._isVisible && (this._hoverOperation.cancel(), this._computer.clearResult(), this._hoverOperation.start(0))\n                    }\n                    startShowingAt(e) {\n                        this._lastLineNumber !== e && (this._hoverOperation.cancel(), this.hide(), this._lastLineNumber = e, this._computer.setLineNumber(e), this._hoverOperation.start(0))\n                    }\n                    hide() {\n                        this._lastLineNumber = -1, this._hoverOperation.cancel(), this._isVisible && (this._isVisible = !1, this._hover.containerDomNode.classList.toggle(\"hidden\", !this._isVisible))\n                    }\n                    _withResult(e) {\n                        this._messages = e, this._messages.length > 0 ? this._renderMessages(this._lastLineNumber, this._messages) : this.hide()\n                    }\n                    _renderMessages(e, t) {\n                        this._renderDisposeables.clear();\n                        const i = document.createDocumentFragment();\n                        for (const e of t) {\n                            const t = Ve(\"div.hover-row.markdown-hover\"),\n                                n = d.R3(t, Ve(\"div.hover-contents\")),\n                                o = this._renderDisposeables.add(this._markdownRenderer.render(e.value));\n                            n.appendChild(o.element), i.appendChild(t)\n                        }\n                        this._updateContents(i), this._showAt(e)\n                    }\n                }\n                He.ID = \"editor.contrib.modesGlyphHoverWidget\";\n                var ze = function(e, t, i, n) {\n                        var o, s = arguments.length,\n                            r = s < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n                        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) r = Reflect.decorate(e, t, i, n);\n                        else\n                            for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (r = (s < 3 ? o(r) : s > 3 ? o(t, i, r) : o(t, i)) || r);\n                        return s > 3 && r && Object.defineProperty(t, i, r), r\n                    },\n                    je = function(e, t) {\n                        return function(i, n) {\n                            t(i, n, e)\n                        }\n                    };\n                let Ue = class e {\n                    constructor(e, t, i, n, s) {\n                        this._editor = e, this._instantiationService = t, this._openerService = i, this._modeService = n, this._toUnhook = new o.SL, this._isMouseDown = !1, this._hoverClicked = !1, this._contentWidget = null, this._glyphWidget = null, this._hookEvents(), this._didChangeConfigurationHandler = this._editor.onDidChangeConfiguration((e => {\n                            e.hasChanged(52) && (this._unhookEvents(), this._hookEvents())\n                        })), this._hoverVisibleKey = a.u.hoverVisible.bindTo(s)\n                    }\n                    static get(t) {\n                        return t.getContribution(e.ID)\n                    }\n                    _hookEvents() {\n                        const e = () => this._hideWidgets(),\n                            t = this._editor.getOption(52);\n                        this._isHoverEnabled = t.enabled, this._isHoverSticky = t.sticky, this._isHoverEnabled ? (this._toUnhook.add(this._editor.onMouseDown((e => this._onEditorMouseDown(e)))), this._toUnhook.add(this._editor.onMouseUp((e => this._onEditorMouseUp(e)))), this._toUnhook.add(this._editor.onMouseMove((e => this._onEditorMouseMove(e)))), this._toUnhook.add(this._editor.onKeyDown((e => this._onKeyDown(e)))), this._toUnhook.add(this._editor.onDidChangeModelDecorations((() => this._onModelDecorationsChanged())))) : (this._toUnhook.add(this._editor.onMouseMove((e => this._onEditorMouseMove(e)))), this._toUnhook.add(this._editor.onKeyDown((e => this._onKeyDown(e))))), this._toUnhook.add(this._editor.onMouseLeave(e)), this._toUnhook.add(this._editor.onDidChangeModel(e)), this._toUnhook.add(this._editor.onDidScrollChange((e => this._onEditorScrollChanged(e))))\n                    }\n                    _unhookEvents() {\n                        this._toUnhook.clear()\n                    }\n                    _onModelDecorationsChanged() {\n                        var e, t;\n                        null === (e = this._contentWidget) || void 0 === e || e.onModelDecorationsChanged(), null === (t = this._glyphWidget) || void 0 === t || t.onModelDecorationsChanged()\n                    }\n                    _onEditorScrollChanged(e) {\n                        (e.scrollTopChanged || e.scrollLeftChanged) && this._hideWidgets()\n                    }\n                    _onEditorMouseDown(e) {\n                        this._isMouseDown = !0;\n                        const t = e.target.type;\n                        9 !== t || e.target.detail !== Be.ID ? 12 === t && e.target.detail === He.ID || (12 !== t && e.target.detail !== He.ID && (this._hoverClicked = !1), this._hideWidgets()) : this._hoverClicked = !0\n                    }\n                    _onEditorMouseUp(e) {\n                        this._isMouseDown = !1\n                    }\n                    _onEditorMouseMove(e) {\n                        var t, i, n, o, s;\n                        let r = e.target.type;\n                        if (this._isMouseDown && this._hoverClicked) return;\n                        if (this._isHoverSticky && 9 === r && e.target.detail === Be.ID) return;\n                        if (this._isHoverSticky && !(null === (i = null === (t = e.event.browserEvent.view) || void 0 === t ? void 0 : t.getSelection()) || void 0 === i ? void 0 : i.isCollapsed)) return;\n                        if (!this._isHoverSticky && 9 === r && e.target.detail === Be.ID && (null === (n = this._contentWidget) || void 0 === n ? void 0 : n.isColorPickerVisible())) return;\n                        if (this._isHoverSticky && 12 === r && e.target.detail === He.ID) return;\n                        if (!this._isHoverEnabled) return void this._hideWidgets();\n                        if (!this._getOrCreateContentWidget().maybeShowAt(e)) return 2 === r && e.target.position ? (null === (s = this._contentWidget) || void 0 === s || s.hide(), this._glyphWidget || (this._glyphWidget = new He(this._editor, this._modeService, this._openerService)), void this._glyphWidget.startShowingAt(e.target.position.lineNumber)) : void this._hideWidgets();\n                        null === (o = this._glyphWidget) || void 0 === o || o.hide()\n                    }\n                    _onKeyDown(e) {\n                        5 !== e.keyCode && 6 !== e.keyCode && 57 !== e.keyCode && 4 !== e.keyCode && this._hideWidgets()\n                    }\n                    _hideWidgets() {\n                        var e, t, i;\n                        this._isMouseDown && this._hoverClicked && (null === (e = this._contentWidget) || void 0 === e ? void 0 : e.isColorPickerVisible()) || (this._hoverClicked = !1, null === (t = this._glyphWidget) || void 0 === t || t.hide(), null === (i = this._contentWidget) || void 0 === i || i.hide())\n                    }\n                    _getOrCreateContentWidget() {\n                        return this._contentWidget || (this._contentWidget = this._instantiationService.createInstance(Be, this._editor, this._hoverVisibleKey)), this._contentWidget\n                    }\n                    isColorPickerVisible() {\n                        var e;\n                        return (null === (e = this._contentWidget) || void 0 === e ? void 0 : e.isColorPickerVisible()) || !1\n                    }\n                    showContentHover(e, t, i) {\n                        this._getOrCreateContentWidget().startShowingAtRange(e, t, i)\n                    }\n                    dispose() {\n                        var e, t;\n                        this._unhookEvents(), this._toUnhook.dispose(), this._didChangeConfigurationHandler.dispose(), null === (e = this._glyphWidget) || void 0 === e || e.dispose(), null === (t = this._contentWidget) || void 0 === t || t.dispose()\n                    }\n                };\n                Ue.ID = \"editor.contrib.hover\", Ue = ze([je(1, Ie.TG), je(2, J.v4), je(3, l.h), je(4, Se.i6)], Ue);\n                class $e extends s.R6 {\n                    constructor() {\n                        super({\n                            id: \"editor.action.showHover\",\n                            label: D.N({\n                                key: \"showHover\",\n                                comment: [\"Label for action that will trigger the showing of a hover in the editor.\", \"This allows for users to show the hover without using the mouse.\"]\n                            }, \"Show Hover\"),\n                            alias: \"Show Hover\",\n                            precondition: void 0,\n                            kbOpts: {\n                                kbExpr: a.u.editorTextFocus,\n                                primary: (0, n.gx)(2089, 2087),\n                                weight: 100\n                            }\n                        })\n                    }\n                    run(e, t) {\n                        if (!t.hasModel()) return;\n                        let i = Ue.get(t);\n                        if (!i) return;\n                        const n = t.getPosition(),\n                            o = new r.e(n.lineNumber, n.column, n.lineNumber, n.column),\n                            s = 2 === t.getOption(2);\n                        i.showContentHover(o, 1, s)\n                    }\n                }\n                class Ke extends s.R6 {\n                    constructor() {\n                        super({\n                            id: \"editor.action.showDefinitionPreviewHover\",\n                            label: D.N({\n                                key: \"showDefinitionPreviewHover\",\n                                comment: [\"Label for action that will trigger the showing of definition preview hover in the editor.\", \"This allows for users to show the definition preview hover without using the mouse.\"]\n                            }, \"Show Definition Preview Hover\"),\n                            alias: \"Show Definition Preview Hover\",\n                            precondition: void 0\n                        })\n                    }\n                    run(e, t) {\n                        let i = Ue.get(t);\n                        if (!i) return;\n                        const n = t.getPosition();\n                        if (!n) return;\n                        const o = new r.e(n.lineNumber, n.column, n.lineNumber, n.column);\n                        c.GotoDefinitionAtPositionEditorContribution.get(t).startFindDefinitionFromCursor(n).then((() => {\n                            i.showContentHover(o, 1, !0)\n                        }))\n                    }\n                }(0, s._K)(Ue.ID, Ue), (0, s.Qr)($e), (0, s.Qr)(Ke), (0, E.Ic)(((e, t) => {\n                    const i = e.getColor(I.pt);\n                    i && t.addRule(`.monaco-editor .hoverHighlight { background-color: ${i}; }`);\n                    const n = e.getColor(I.yJ);\n                    n && t.addRule(`.monaco-editor .monaco-hover { background-color: ${n}; }`);\n                    const o = e.getColor(I.CN);\n                    o && (t.addRule(`.monaco-editor .monaco-hover { border: 1px solid ${o}; }`), t.addRule(`.monaco-editor .monaco-hover .hover-row:not(:first-child):not(:empty) { border-top: 1px solid ${o.transparent(.5)}; }`), t.addRule(`.monaco-editor .monaco-hover hr { border-top: 1px solid ${o.transparent(.5)}; }`), t.addRule(`.monaco-editor .monaco-hover hr { border-bottom: 0px solid ${o.transparent(.5)}; }`));\n                    const s = e.getColor(I.ur);\n                    s && t.addRule(`.monaco-editor .monaco-hover a { color: ${s}; }`);\n                    const r = e.getColor(I.sg);\n                    r && t.addRule(`.monaco-editor .monaco-hover a:hover { color: ${r}; }`);\n                    const a = e.getColor(I.Sb);\n                    a && t.addRule(`.monaco-editor .monaco-hover { color: ${a}; }`);\n                    const l = e.getColor(I.Lo);\n                    l && t.addRule(`.monaco-editor .monaco-hover .hover-row .actions { background-color: ${l}; }`);\n                    const c = e.getColor(I.Sw);\n                    c && t.addRule(`.monaco-editor .monaco-hover code { background-color: ${c}; }`)\n                }))\n            },\n            83554: (e, t, i) => {\n                \"use strict\";\n                i.r(t);\n                var n = i(15393),\n                    o = i(17301),\n                    s = i(39925),\n                    r = i(16830),\n                    a = i(24314),\n                    l = i(3860),\n                    c = i(29102),\n                    d = i(44174),\n                    h = i(90469),\n                    u = i(27869),\n                    g = i(63580),\n                    p = i(97781);\n                class f {\n                    constructor(e, t, i) {\n                        this._editRange = e, this._originalSelection = t, this._text = i\n                    }\n                    getEditOperations(e, t) {\n                        t.addTrackedEditOperation(this._editRange, this._text)\n                    }\n                    computeCursorState(e, t) {\n                        const i = t.getInverseEditOperations()[0].range;\n                        return this._originalSelection.isEmpty() ? new l.Y(i.endLineNumber, Math.min(this._originalSelection.positionColumn, i.endColumn), i.endLineNumber, Math.min(this._originalSelection.positionColumn, i.endColumn)) : new l.Y(i.endLineNumber, i.endColumn - this._text.length, i.endLineNumber, i.endColumn)\n                    }\n                }\n                var m = function(e, t, i, n) {\n                        var o, s = arguments.length,\n                            r = s < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n                        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) r = Reflect.decorate(e, t, i, n);\n                        else\n                            for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (r = (s < 3 ? o(r) : s > 3 ? o(t, i, r) : o(t, i)) || r);\n                        return s > 3 && r && Object.defineProperty(t, i, r), r\n                    },\n                    v = function(e, t) {\n                        return function(i, n) {\n                            t(i, n, e)\n                        }\n                    };\n                let _ = class e {\n                    constructor(e, t) {\n                        this.decorationIds = [], this.editor = e, this.editorWorkerService = t\n                    }\n                    static get(t) {\n                        return t.getContribution(e.ID)\n                    }\n                    dispose() {}\n                    run(t, i) {\n                        this.currentRequest && this.currentRequest.cancel();\n                        const r = this.editor.getSelection(),\n                            c = this.editor.getModel();\n                        if (!c || !r) return;\n                        let d = r;\n                        if (d.startLineNumber !== d.endLineNumber) return;\n                        const h = new s.yy(this.editor, 5),\n                            u = c.uri;\n                        return this.editorWorkerService.canNavigateValueSet(u) ? (this.currentRequest = (0, n.PG)((e => this.editorWorkerService.navigateValueSet(u, d, i))), this.currentRequest.then((i => {\n                            if (!i || !i.range || !i.value) return;\n                            if (!h.validate(this.editor)) return;\n                            let s = a.e.lift(i.range),\n                                r = i.range,\n                                c = i.value.length - (d.endColumn - d.startColumn);\n                            r = {\n                                startLineNumber: r.startLineNumber,\n                                startColumn: r.startColumn,\n                                endLineNumber: r.endLineNumber,\n                                endColumn: r.startColumn + i.value.length\n                            }, c > 1 && (d = new l.Y(d.startLineNumber, d.startColumn, d.endLineNumber, d.endColumn + c - 1));\n                            const u = new f(s, d, i.value);\n                            this.editor.pushUndoStop(), this.editor.executeCommand(t, u), this.editor.pushUndoStop(), this.decorationIds = this.editor.deltaDecorations(this.decorationIds, [{\n                                range: r,\n                                options: e.DECORATION\n                            }]), this.decorationRemover && this.decorationRemover.cancel(), this.decorationRemover = (0, n.Vs)(350), this.decorationRemover.then((() => this.decorationIds = this.editor.deltaDecorations(this.decorationIds, []))).catch(o.dL)\n                        })).catch(o.dL)) : Promise.resolve(void 0)\n                    }\n                };\n                _.ID = \"editor.contrib.inPlaceReplaceController\", _.DECORATION = d.qx.register({\n                    description: \"in-place-replace\",\n                    className: \"valueSetReplacement\"\n                }), _ = m([v(1, h.p)], _);\n                class b extends r.R6 {\n                    constructor() {\n                        super({\n                            id: \"editor.action.inPlaceReplace.up\",\n                            label: g.N(\"InPlaceReplaceAction.previous.label\", \"Replace with Previous Value\"),\n                            alias: \"Replace with Previous Value\",\n                            precondition: c.u.writable,\n                            kbOpts: {\n                                kbExpr: c.u.editorTextFocus,\n                                primary: 3154,\n                                weight: 100\n                            }\n                        })\n                    }\n                    run(e, t) {\n                        const i = _.get(t);\n                        return i ? i.run(this.id, !0) : Promise.resolve(void 0)\n                    }\n                }\n                class w extends r.R6 {\n                    constructor() {\n                        super({\n                            id: \"editor.action.inPlaceReplace.down\",\n                            label: g.N(\"InPlaceReplaceAction.next.label\", \"Replace with Next Value\"),\n                            alias: \"Replace with Next Value\",\n                            precondition: c.u.writable,\n                            kbOpts: {\n                                kbExpr: c.u.editorTextFocus,\n                                primary: 3156,\n                                weight: 100\n                            }\n                        })\n                    }\n                    run(e, t) {\n                        const i = _.get(t);\n                        return i ? i.run(this.id, !1) : Promise.resolve(void 0)\n                    }\n                }(0, r._K)(_.ID, _), (0, r.Qr)(b), (0, r.Qr)(w), (0, p.Ic)(((e, t) => {\n                    const i = e.getColor(u.Dl);\n                    i && t.addRule(`.monaco-editor.vs .valueSetReplacement { outline: solid 2px ${i}; }`)\n                }))\n            },\n            51491: (e, t, i) => {\n                \"use strict\";\n\n                function n(e, t) {\n                    let i = 0;\n                    for (let n = 0; n < e.length; n++) \"\\t\" === e.charAt(n) ? i += t : i++;\n                    return i\n                }\n\n                function o(e, t, i) {\n                    e = e < 0 ? 0 : e;\n                    let n = \"\";\n                    if (!i) {\n                        let i = Math.floor(e / t);\n                        e %= t;\n                        for (let e = 0; e < i; e++) n += \"\\t\"\n                    }\n                    for (let t = 0; t < e; t++) n += \" \";\n                    return n\n                }\n                i.d(t, {\n                    J: () => o,\n                    Y: () => n\n                })\n            },\n            80638: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    AutoIndentOnPaste: () => N,\n                    AutoIndentOnPasteCommand: () => L,\n                    ChangeIndentationSizeAction: () => w,\n                    DetectIndentation: () => x,\n                    IndentUsingSpaces: () => C,\n                    IndentUsingTabs: () => y,\n                    IndentationToSpacesAction: () => _,\n                    IndentationToSpacesCommand: () => I,\n                    IndentationToTabsAction: () => b,\n                    IndentationToTabsCommand: () => E,\n                    ReindentLinesAction: () => S,\n                    ReindentSelectedLinesAction: () => k,\n                    getReindentEditOperations: () => v\n                });\n                var n = i(5976),\n                    o = i(97295),\n                    s = i(16830),\n                    r = i(10291),\n                    a = i(69386),\n                    l = i(24314),\n                    c = i(3860),\n                    d = i(29102),\n                    h = i(44174),\n                    u = i(83831),\n                    g = i(51200),\n                    p = i(51491),\n                    f = i(63580),\n                    m = i(41157);\n\n                function v(e, t, i, n) {\n                    if (1 === e.getLineCount() && 1 === e.getLineMaxColumn(1)) return [];\n                    const s = u.zu.getIndentationRules(e.getLanguageId());\n                    if (!s) return [];\n                    for (i = Math.min(i, e.getLineCount()); t <= i && s.unIndentedLinePattern;) {\n                        let i = e.getLineContent(t);\n                        if (!s.unIndentedLinePattern.test(i)) break;\n                        t++\n                    }\n                    if (t > i - 1) return [];\n                    const {\n                        tabSize: l,\n                        indentSize: d,\n                        insertSpaces: g\n                    } = e.getOptions(), p = (e, t) => (t = t || 1, r.U.shiftIndent(e, e.length + t, l, d, g)), f = (e, t) => (t = t || 1, r.U.unshiftIndent(e, e.length + t, l, d, g));\n                    let m, v = [],\n                        _ = e.getLineContent(t),\n                        b = _;\n                    if (null != n) {\n                        m = n;\n                        let e = o.V8(_);\n                        b = m + _.substring(e.length), s.decreaseIndentPattern && s.decreaseIndentPattern.test(b) && (m = f(m), b = m + _.substring(e.length)), _ !== b && v.push(a.h.replaceMove(new c.Y(t, 1, t, e.length + 1), h.yO.normalizeIndentation(m, d, g)))\n                    } else m = o.V8(_);\n                    let w = m;\n                    s.increaseIndentPattern && s.increaseIndentPattern.test(b) ? (w = p(w), m = p(m)) : s.indentNextLinePattern && s.indentNextLinePattern.test(b) && (w = p(w));\n                    for (let n = ++t; n <= i; n++) {\n                        let t = e.getLineContent(n),\n                            i = o.V8(t),\n                            r = w + t.substring(i.length);\n                        s.decreaseIndentPattern && s.decreaseIndentPattern.test(r) && (w = f(w), m = f(m)), i !== w && v.push(a.h.replaceMove(new c.Y(n, 1, n, i.length + 1), h.yO.normalizeIndentation(w, d, g))), s.unIndentedLinePattern && s.unIndentedLinePattern.test(t) || (s.increaseIndentPattern && s.increaseIndentPattern.test(r) ? (m = p(m), w = m) : w = s.indentNextLinePattern && s.indentNextLinePattern.test(r) ? p(w) : m)\n                    }\n                    return v\n                }\n                class _ extends s.R6 {\n                    constructor() {\n                        super({\n                            id: _.ID,\n                            label: f.N(\"indentationToSpaces\", \"Convert Indentation to Spaces\"),\n                            alias: \"Convert Indentation to Spaces\",\n                            precondition: d.u.writable\n                        })\n                    }\n                    run(e, t) {\n                        let i = t.getModel();\n                        if (!i) return;\n                        let n = i.getOptions(),\n                            o = t.getSelection();\n                        if (!o) return;\n                        const s = new I(o, n.tabSize);\n                        t.pushUndoStop(), t.executeCommands(this.id, [s]), t.pushUndoStop(), i.updateOptions({\n                            insertSpaces: !0\n                        })\n                    }\n                }\n                _.ID = \"editor.action.indentationToSpaces\";\n                class b extends s.R6 {\n                    constructor() {\n                        super({\n                            id: b.ID,\n                            label: f.N(\"indentationToTabs\", \"Convert Indentation to Tabs\"),\n                            alias: \"Convert Indentation to Tabs\",\n                            precondition: d.u.writable\n                        })\n                    }\n                    run(e, t) {\n                        let i = t.getModel();\n                        if (!i) return;\n                        let n = i.getOptions(),\n                            o = t.getSelection();\n                        if (!o) return;\n                        const s = new E(o, n.tabSize);\n                        t.pushUndoStop(), t.executeCommands(this.id, [s]), t.pushUndoStop(), i.updateOptions({\n                            insertSpaces: !1\n                        })\n                    }\n                }\n                b.ID = \"editor.action.indentationToTabs\";\n                class w extends s.R6 {\n                    constructor(e, t) {\n                        super(t), this.insertSpaces = e\n                    }\n                    run(e, t) {\n                        const i = e.get(m.eJ),\n                            n = e.get(g.q);\n                        let o = t.getModel();\n                        if (!o) return;\n                        const s = n.getCreationOptions(o.getLanguageId(), o.uri, o.isForSimpleWidget),\n                            r = [1, 2, 3, 4, 5, 6, 7, 8].map((e => ({\n                                id: e.toString(),\n                                label: e.toString(),\n                                description: e === s.tabSize ? f.N(\"configuredTabSize\", \"Configured Tab Size\") : void 0\n                            }))),\n                            a = Math.min(o.getOptions().tabSize - 1, 7);\n                        setTimeout((() => {\n                            i.pick(r, {\n                                placeHolder: f.N({\n                                    key: \"selectTabWidth\",\n                                    comment: [\"Tab corresponds to the tab key\"]\n                                }, \"Select Tab Size for Current File\"),\n                                activeItem: r[a]\n                            }).then((e => {\n                                e && o && !o.isDisposed() && o.updateOptions({\n                                    tabSize: parseInt(e.label, 10),\n                                    insertSpaces: this.insertSpaces\n                                })\n                            }))\n                        }), 50)\n                    }\n                }\n                class y extends w {\n                    constructor() {\n                        super(!1, {\n                            id: y.ID,\n                            label: f.N(\"indentUsingTabs\", \"Indent Using Tabs\"),\n                            alias: \"Indent Using Tabs\",\n                            precondition: void 0\n                        })\n                    }\n                }\n                y.ID = \"editor.action.indentUsingTabs\";\n                class C extends w {\n                    constructor() {\n                        super(!0, {\n                            id: C.ID,\n                            label: f.N(\"indentUsingSpaces\", \"Indent Using Spaces\"),\n                            alias: \"Indent Using Spaces\",\n                            precondition: void 0\n                        })\n                    }\n                }\n                C.ID = \"editor.action.indentUsingSpaces\";\n                class x extends s.R6 {\n                    constructor() {\n                        super({\n                            id: x.ID,\n                            label: f.N(\"detectIndentation\", \"Detect Indentation from Content\"),\n                            alias: \"Detect Indentation from Content\",\n                            precondition: void 0\n                        })\n                    }\n                    run(e, t) {\n                        const i = e.get(g.q);\n                        let n = t.getModel();\n                        if (!n) return;\n                        const o = i.getCreationOptions(n.getLanguageId(), n.uri, n.isForSimpleWidget);\n                        n.detectIndentation(o.insertSpaces, o.tabSize)\n                    }\n                }\n                x.ID = \"editor.action.detectIndentation\";\n                class S extends s.R6 {\n                    constructor() {\n                        super({\n                            id: \"editor.action.reindentlines\",\n                            label: f.N(\"editor.reindentlines\", \"Reindent Lines\"),\n                            alias: \"Reindent Lines\",\n                            precondition: d.u.writable\n                        })\n                    }\n                    run(e, t) {\n                        let i = t.getModel();\n                        if (!i) return;\n                        let n = v(i, 1, i.getLineCount());\n                        n.length > 0 && (t.pushUndoStop(), t.executeEdits(this.id, n), t.pushUndoStop())\n                    }\n                }\n                class k extends s.R6 {\n                    constructor() {\n                        super({\n                            id: \"editor.action.reindentselectedlines\",\n                            label: f.N(\"editor.reindentselectedlines\", \"Reindent Selected Lines\"),\n                            alias: \"Reindent Selected Lines\",\n                            precondition: d.u.writable\n                        })\n                    }\n                    run(e, t) {\n                        let i = t.getModel();\n                        if (!i) return;\n                        let n = t.getSelections();\n                        if (null === n) return;\n                        let o = [];\n                        for (let e of n) {\n                            let t = e.startLineNumber,\n                                n = e.endLineNumber;\n                            if (t !== n && 1 === e.endColumn && n--, 1 === t) {\n                                if (t === n) continue\n                            } else t--;\n                            let s = v(i, t, n);\n                            o.push(...s)\n                        }\n                        o.length > 0 && (t.pushUndoStop(), t.executeEdits(this.id, o), t.pushUndoStop())\n                    }\n                }\n                class L {\n                    constructor(e, t) {\n                        this._initialSelection = t, this._edits = [], this._selectionId = null;\n                        for (let t of e) t.range && \"string\" == typeof t.text && this._edits.push(t)\n                    }\n                    getEditOperations(e, t) {\n                        for (let e of this._edits) t.addEditOperation(l.e.lift(e.range), e.text);\n                        let i = !1;\n                        Array.isArray(this._edits) && 1 === this._edits.length && this._initialSelection.isEmpty() && (this._edits[0].range.startColumn === this._initialSelection.endColumn && this._edits[0].range.startLineNumber === this._initialSelection.endLineNumber ? (i = !0, this._selectionId = t.trackSelection(this._initialSelection, !0)) : this._edits[0].range.endColumn === this._initialSelection.startColumn && this._edits[0].range.endLineNumber === this._initialSelection.startLineNumber && (i = !0, this._selectionId = t.trackSelection(this._initialSelection, !1))), i || (this._selectionId = t.trackSelection(this._initialSelection))\n                    }\n                    computeCursorState(e, t) {\n                        return t.getTrackedSelection(this._selectionId)\n                    }\n                }\n                class N {\n                    constructor(e) {\n                        this.callOnDispose = new n.SL, this.callOnModel = new n.SL, this.editor = e, this.callOnDispose.add(e.onDidChangeConfiguration((() => this.update()))), this.callOnDispose.add(e.onDidChangeModel((() => this.update()))), this.callOnDispose.add(e.onDidChangeModelLanguage((() => this.update())))\n                    }\n                    update() {\n                        this.callOnModel.clear(), this.editor.getOption(9) < 4 || this.editor.getOption(47) || this.editor.hasModel() && this.callOnModel.add(this.editor.onDidPaste((({\n                            range: e\n                        }) => {\n                            this.trigger(e)\n                        })))\n                    }\n                    trigger(e) {\n                        let t = this.editor.getSelections();\n                        if (null === t || t.length > 1) return;\n                        const i = this.editor.getModel();\n                        if (!i) return;\n                        if (!i.isCheapToTokenize(e.getStartPosition().lineNumber)) return;\n                        const n = this.editor.getOption(9),\n                            {\n                                tabSize: s,\n                                indentSize: a,\n                                insertSpaces: c\n                            } = i.getOptions();\n                        let d = [],\n                            h = {\n                                shiftIndent: e => r.U.shiftIndent(e, e.length + 1, s, a, c),\n                                unshiftIndent: e => r.U.unshiftIndent(e, e.length + 1, s, a, c)\n                            },\n                            g = e.startLineNumber;\n                        for (; g <= e.endLineNumber && this.shouldIgnoreLine(i, g);) g++;\n                        if (g > e.endLineNumber) return;\n                        let f = i.getLineContent(g);\n                        if (!/\\S/.test(f.substring(0, e.startColumn - 1))) {\n                            const e = u.zu.getGoodIndentForLine(n, i, i.getLanguageId(), g, h);\n                            if (null !== e) {\n                                let t = o.V8(f),\n                                    n = p.Y(e, s);\n                                if (n !== p.Y(t, s)) {\n                                    let e = p.J(n, s, c);\n                                    d.push({\n                                        range: new l.e(g, 1, g, t.length + 1),\n                                        text: e\n                                    }), f = e + f.substr(t.length)\n                                } else {\n                                    let e = u.zu.getIndentMetadata(i, g);\n                                    if (0 === e || 8 === e) return\n                                }\n                            }\n                        }\n                        const m = g;\n                        for (; g < e.endLineNumber && !/\\S/.test(i.getLineContent(g + 1));) g++;\n                        if (g !== e.endLineNumber) {\n                            let t = {\n                                    getLineTokens: e => i.getLineTokens(e),\n                                    getLanguageId: () => i.getLanguageId(),\n                                    getLanguageIdAtPosition: (e, t) => i.getLanguageIdAtPosition(e, t),\n                                    getLineContent: e => e === m ? f : i.getLineContent(e)\n                                },\n                                r = u.zu.getGoodIndentForLine(n, t, i.getLanguageId(), g + 1, h);\n                            if (null !== r) {\n                                let t = p.Y(r, s),\n                                    n = p.Y(o.V8(i.getLineContent(g + 1)), s);\n                                if (t !== n) {\n                                    let r = t - n;\n                                    for (let t = g + 1; t <= e.endLineNumber; t++) {\n                                        let e = i.getLineContent(t),\n                                            n = o.V8(e),\n                                            a = p.Y(n, s) + r,\n                                            h = p.J(a, s, c);\n                                        h !== n && d.push({\n                                            range: new l.e(t, 1, t, n.length + 1),\n                                            text: h\n                                        })\n                                    }\n                                }\n                            }\n                        }\n                        if (d.length > 0) {\n                            this.editor.pushUndoStop();\n                            let e = new L(d, this.editor.getSelection());\n                            this.editor.executeCommand(\"autoIndentOnPaste\", e), this.editor.pushUndoStop()\n                        }\n                    }\n                    shouldIgnoreLine(e, t) {\n                        e.forceTokenization(t);\n                        let i = e.getLineFirstNonWhitespaceColumn(t);\n                        if (0 === i) return !0;\n                        let n = e.getLineTokens(t);\n                        if (n.getCount() > 0) {\n                            let e = n.findTokenIndexAtOffset(i);\n                            if (e >= 0 && 1 === n.getStandardTokenType(e)) return !0\n                        }\n                        return !1\n                    }\n                    dispose() {\n                        this.callOnDispose.dispose(), this.callOnModel.dispose()\n                    }\n                }\n\n                function D(e, t, i, n) {\n                    if (1 === e.getLineCount() && 1 === e.getLineMaxColumn(1)) return;\n                    let o = \"\";\n                    for (let e = 0; e < i; e++) o += \" \";\n                    let s = new RegExp(o, \"gi\");\n                    for (let i = 1, r = e.getLineCount(); i <= r; i++) {\n                        let r = e.getLineFirstNonWhitespaceColumn(i);\n                        if (0 === r && (r = e.getLineMaxColumn(i)), 1 === r) continue;\n                        const a = new l.e(i, 1, i, r),\n                            c = e.getValueInRange(a),\n                            d = n ? c.replace(/\\t/gi, o) : c.replace(s, \"\\t\");\n                        t.addEditOperation(a, d)\n                    }\n                }\n                N.ID = \"editor.contrib.autoIndentOnPaste\";\n                class I {\n                    constructor(e, t) {\n                        this.selection = e, this.tabSize = t, this.selectionId = null\n                    }\n                    getEditOperations(e, t) {\n                        this.selectionId = t.trackSelection(this.selection), D(e, t, this.tabSize, !0)\n                    }\n                    computeCursorState(e, t) {\n                        return t.getTrackedSelection(this.selectionId)\n                    }\n                }\n                class E {\n                    constructor(e, t) {\n                        this.selection = e, this.tabSize = t, this.selectionId = null\n                    }\n                    getEditOperations(e, t) {\n                        this.selectionId = t.trackSelection(this.selection), D(e, t, this.tabSize, !1)\n                    }\n                    computeCursorState(e, t) {\n                        return t.getTrackedSelection(this.selectionId)\n                    }\n                }(0, s._K)(N.ID, N), (0, s.Qr)(_), (0, s.Qr)(b), (0, s.Qr)(y), (0, s.Qr)(C), (0, s.Qr)(x), (0, s.Qr)(S), (0, s.Qr)(k)\n            },\n            87586: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    InlayHintsController: () => D,\n                    getInlayHints: () => L\n                });\n                var n = i(15393),\n                    o = i(71050),\n                    s = i(17301),\n                    r = i(89954),\n                    a = i(5976),\n                    l = i(43702),\n                    c = i(98401),\n                    d = i(70666),\n                    h = i(16830),\n                    u = i(11640),\n                    g = i(64141),\n                    p = i(50187),\n                    f = i(24314),\n                    m = i(44101),\n                    v = i(21036),\n                    _ = i(88216),\n                    b = i(94565),\n                    w = i(73910),\n                    y = i(97781),\n                    C = function(e, t, i, n) {\n                        var o, s = arguments.length,\n                            r = s < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n                        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) r = Reflect.decorate(e, t, i, n);\n                        else\n                            for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (r = (s < 3 ? o(r) : s > 3 ? o(t, i, r) : o(t, i)) || r);\n                        return s > 3 && r && Object.defineProperty(t, i, r), r\n                    },\n                    x = function(e, t) {\n                        return function(i, n) {\n                            t(i, n, e)\n                        }\n                    },\n                    S = function(e, t, i, n) {\n                        return new(i || (i = Promise))((function(o, s) {\n                            function r(e) {\n                                try {\n                                    l(n.next(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function a(e) {\n                                try {\n                                    l(n.throw(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function l(e) {\n                                var t;\n                                e.done ? o(e.value) : (t = e.value, t instanceof i ? t : new i((function(e) {\n                                    e(t)\n                                }))).then(r, a)\n                            }\n                            l((n = n.apply(e, t || [])).next())\n                        }))\n                    };\n                class k {\n                    constructor() {\n                        this._data = new l.Y9\n                    }\n                    push(e, t) {\n                        const i = this._data.get(e.uri);\n                        void 0 === i ? this._data.set(e.uri, new Set([t])) : i.add(t)\n                    }\n                    pop(e, t) {\n                        const i = this._data.get(e.uri);\n                        i && (i.delete(t), 0 === i.size && this._data.delete(e.uri))\n                    }\n                    has(e, t) {\n                        var i;\n                        return Boolean(null === (i = this._data.get(e.uri)) || void 0 === i ? void 0 : i.has(t))\n                    }\n                }\n\n                function L(e, t, i, n) {\n                    return S(this, void 0, void 0, (function*() {\n                        const o = [],\n                            r = m.mX.ordered(e).reverse().map((r => t.map((t => S(this, void 0, void 0, (function*() {\n                                try {\n                                    i.push(e, r);\n                                    const s = yield r.provideInlayHints(e, t, n);\n                                    (null == s ? void 0 : s.length) && o.push(s.filter((e => t.containsPosition(e.position))))\n                                } catch (e) {\n                                    (0, s.Cp)(e)\n                                } finally {\n                                    i.pop(e, r)\n                                }\n                            }))))));\n                        return yield Promise.all(r.flat()), o.flat().sort(((e, t) => p.L.compare(e.position, t.position)))\n                    }))\n                }\n                class N {\n                    constructor() {\n                        this._entries = new l.z6(50)\n                    }\n                    get(e) {\n                        const t = N._key(e);\n                        return this._entries.get(t)\n                    }\n                    set(e, t) {\n                        const i = N._key(e);\n                        this._entries.set(i, t)\n                    }\n                    static _key(e) {\n                        return `${e.uri.toString()}/${e.getVersionId()}`\n                    }\n                }\n                let D = class e {\n                    constructor(t, i) {\n                        this._editor = t, this._codeEditorService = i, this._decorationOwnerId = ++e._decorationOwnerIdPool, this._disposables = new a.SL, this._sessionDisposables = new a.SL, this._getInlayHintsDelays = new v.Y(m.mX, 25, 500), this._cache = new N, this._decorations = new Map, this._disposables.add(m.mX.onDidChange((() => this._update()))), this._disposables.add(t.onDidChangeModel((() => this._update()))), this._disposables.add(t.onDidChangeModelLanguage((() => this._update()))), this._disposables.add(t.onDidChangeConfiguration((e => {\n                            e.hasChanged(125) && this._update()\n                        }))), this._update()\n                    }\n                    dispose() {\n                        this._sessionDisposables.dispose(), this._removeAllDecorations(), this._disposables.dispose()\n                    }\n                    _update() {\n                        if (this._sessionDisposables.clear(), this._removeAllDecorations(), !this._editor.getOption(125).enabled) return;\n                        const e = this._editor.getModel();\n                        if (!e || !m.mX.has(e)) return;\n                        const t = this._cache.get(e);\n                        t && this._updateHintsDecorators([e.getFullModelRange()], t);\n                        const i = new k,\n                            s = new n.pY((() => S(this, void 0, void 0, (function*() {\n                                const t = Date.now(),\n                                    n = new o.A;\n                                this._sessionDisposables.add((0, a.OF)((() => n.dispose(!0))));\n                                const r = this._getHintsRanges(),\n                                    l = yield L(e, r, i, n.token);\n                                s.delay = this._getInlayHintsDelays.update(e, Date.now() - t), n.token.isCancellationRequested || (this._updateHintsDecorators(r, l), this._cache.set(e, Array.from(this._decorations.values()).map((e => e.hint))))\n                            }))), this._getInlayHintsDelays.get(e));\n                        this._sessionDisposables.add(s), this._sessionDisposables.add(this._editor.onDidChangeModelContent((() => s.schedule()))), this._disposables.add(this._editor.onDidScrollChange((() => s.schedule()))), s.schedule();\n                        const r = new a.SL;\n                        this._sessionDisposables.add(r);\n                        for (const t of m.mX.all(e)) \"function\" == typeof t.onDidChangeInlayHints && r.add(t.onDidChangeInlayHints((() => {\n                            i.has(e, t) || s.schedule()\n                        })))\n                    }\n                    _getHintsRanges() {\n                        const e = this._editor.getModel(),\n                            t = this._editor.getVisibleRangesPlusViewportAboveBelow(),\n                            i = [];\n                        for (const n of t.sort(f.e.compareRangesUsingStarts)) {\n                            const t = e.validateRange(new f.e(n.startLineNumber - 30, n.startColumn, n.endLineNumber + 30, n.endColumn));\n                            0 !== i.length && f.e.areIntersectingOrTouching(i[i.length - 1], t) ? i[i.length - 1] = f.e.plusRange(i[i.length - 1], t) : i.push(t)\n                        }\n                        return i\n                    }\n                    _updateHintsDecorators(e, t) {\n                        const {\n                            fontSize: i,\n                            fontFamily: n\n                        } = this._getLayoutInfo(), o = this._editor.getModel(), s = [], a = [], l = \"--code-editorInlayHintsFontFamily\";\n                        this._editor.getContainerDomNode().style.setProperty(l, n);\n                        for (const e of t) {\n                            const {\n                                text: t,\n                                position: n,\n                                whitespaceBefore: c,\n                                whitespaceAfter: d\n                            } = e, h = c ? i / 3 | 0 : 0, u = d ? i / 3 | 0 : 0, p = {\n                                contentText: E(t),\n                                fontSize: `${i}px`,\n                                margin: `0px ${u}px 0px ${h}px`,\n                                fontFamily: `var(${l}), ${g.hL.fontFamily}`,\n                                padding: `1px ${0|Math.max(1,i/4)}px`,\n                                borderRadius: (i / 4 | 0) + \"px\",\n                                verticalAlign: \"middle\",\n                                backgroundColor: (0, y.EN)(w.Pp),\n                                color: (0, y.EN)(w.VV)\n                            };\n                            e.kind === m.gl.Parameter ? (p.backgroundColor = (0, y.EN)(w.ph), p.color = (0, y.EN)(w.HC)) : e.kind === m.gl.Type && (p.backgroundColor = (0, y.EN)(w.bK), p.color = (0, y.EN)(w.hX));\n                            let v = {\n                                    beforeInjectedText: Object.assign(Object.assign({}, p), {\n                                        affectsLetterSpacing: !0\n                                    })\n                                },\n                                _ = f.e.fromPositions(n),\n                                b = o.getWordAtPosition(n),\n                                C = !1;\n                            b && (b.endColumn === n.column ? (v.afterInjectedText = v.beforeInjectedText, v.beforeInjectedText = void 0, C = !0, _ = I(b, n.lineNumber)) : b.startColumn === n.column && (C = !0, _ = I(b, n.lineNumber)));\n                            const x = \"inlayHints-\" + (0, r.vp)(v).toString(16);\n                            this._codeEditorService.registerDecorationType(\"inlay-hints-controller\", x, v, void 0, this._editor), s.push(x);\n                            if (a.push({\n                                    range: _,\n                                    options: Object.assign(Object.assign({}, this._codeEditorService.resolveDecorationOptions(x, !0)), {\n                                        showIfCollapsed: !C,\n                                        stickiness: 0\n                                    })\n                                }) > 1500) break\n                        }\n                        const c = [];\n                        for (const t of e)\n                            for (const {\n                                    id: e\n                                } of o.getDecorationsInRange(t, this._decorationOwnerId, !0)) {\n                                const t = this._decorations.get(e);\n                                t && (c.push(e), this._codeEditorService.removeDecorationType(t.decorationTypeId), this._decorations.delete(e))\n                            }\n                        const d = o.deltaDecorations(c, a, this._decorationOwnerId);\n                        for (let e = 0; e < d.length; e++) this._decorations.set(d[e], {\n                            hint: t[e],\n                            decorationTypeId: s[e]\n                        })\n                    }\n                    _getLayoutInfo() {\n                        const e = this._editor.getOption(125),\n                            t = this._editor.getOption(45);\n                        let i = e.fontSize;\n                        (!i || i < 5 || i > t) && (i = .9 * t | 0);\n                        return {\n                            fontSize: i,\n                            fontFamily: e.fontFamily || this._editor.getOption(42)\n                        }\n                    }\n                    _removeAllDecorations() {\n                        this._editor.deltaDecorations(Array.from(this._decorations.keys()), []);\n                        for (let e of this._decorations.values()) this._codeEditorService.removeDecorationType(e.decorationTypeId);\n                        this._decorations.clear()\n                    }\n                };\n\n                function I(e, t) {\n                    return new f.e(t, e.startColumn, t, e.endColumn)\n                }\n\n                function E(e) {\n                    return e.replace(/[ \\t]/g, \" \")\n                }\n                D.ID = \"editor.contrib.InlayHints\", D._decorationOwnerIdPool = 0, D = C([x(1, u.$)], D), (0, h._K)(D.ID, D), b.P.registerCommand(\"_executeInlayHintProvider\", ((e, ...t) => S(void 0, void 0, void 0, (function*() {\n                    const [i, n] = t;\n                    (0, c.p_)(d.o.isUri(i)), (0, c.p_)(f.e.isIRange(n));\n                    const s = yield e.get(_.S).createModelReference(i);\n                    try {\n                        return yield L(s.object.textEditorModel, [f.e.lift(n)], new k, o.T.None)\n                    } finally {\n                        s.dispose()\n                    }\n                }))))\n            },\n            43818: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    ActiveGhostTextController: () => Ne,\n                    GhostTextController: () => ke,\n                    ShowNextInlineSuggestionAction: () => Ee,\n                    ShowPreviousInlineSuggestionAction: () => Te,\n                    TriggerInlineSuggestionAction: () => Me,\n                    commitInlineSuggestionAction: () => Ie\n                });\n                var n = i(5976),\n                    o = i(97295),\n                    s = i(16830),\n                    r = i(47707),\n                    a = i(29102);\n                const l = \"editor.action.inlineSuggest.commit\";\n                var c = i(4669),\n                    d = i(50187),\n                    h = i(44101),\n                    u = i(15393),\n                    g = i(71050),\n                    p = i(17301),\n                    f = i(18728),\n                    m = i(69386),\n                    v = i(24314);\n                class _ {\n                    constructor(e, t, i = 0) {\n                        this.lineNumber = e, this.parts = t, this.additionalReservedLineCount = i\n                    }\n                    renderForScreenReader(e) {\n                        if (0 === this.parts.length) return \"\";\n                        const t = this.parts[this.parts.length - 1];\n                        return function(e, t) {\n                            const i = new b(e),\n                                n = t.map((e => {\n                                    const t = v.e.lift(e.range);\n                                    return {\n                                        startOffset: i.getOffset(t.getStartPosition()),\n                                        endOffset: i.getOffset(t.getEndPosition()),\n                                        text: e.text\n                                    }\n                                }));\n                            n.sort(((e, t) => t.startOffset - e.startOffset));\n                            for (const t of n) e = e.substring(0, t.startOffset) + t.text + e.substring(t.endOffset);\n                            return e\n                        }(e.substr(0, t.column - 1), this.parts.map((e => ({\n                            range: {\n                                startLineNumber: 1,\n                                endLineNumber: 1,\n                                startColumn: e.column,\n                                endColumn: e.column\n                            },\n                            text: e.lines.join(\"\\n\")\n                        })))).substring(this.parts[0].column - 1)\n                    }\n                }\n                class b {\n                    constructor(e) {\n                        this.lineStartOffsetByLineIdx = [], this.lineStartOffsetByLineIdx.push(0);\n                        for (let t = 0; t < e.length; t++) \"\\n\" === e.charAt(t) && this.lineStartOffsetByLineIdx.push(t + 1)\n                    }\n                    getOffset(e) {\n                        return this.lineStartOffsetByLineIdx[e.lineNumber - 1] + e.column - 1\n                    }\n                }\n                class w {\n                    constructor(e, t, i) {\n                        this.column = e, this.lines = t, this.preview = i\n                    }\n                }\n                class y extends n.JT {\n                    constructor(e) {\n                        super(), this.editor = e, this._expanded = void 0, this.onDidChangeEmitter = new c.Q5, this.onDidChange = this.onDidChangeEmitter.event, this._register(e.onDidChangeConfiguration((e => {\n                            e.hasChanged(105) && void 0 === this._expanded && this.onDidChangeEmitter.fire()\n                        })))\n                    }\n                    setExpanded(e) {\n                        this._expanded = !0, this.onDidChangeEmitter.fire()\n                    }\n                }\n                var C = i(94565),\n                    x = i(2484);\n\n                function S(e, t, i, n, s = 0) {\n                    if (e.range.startLineNumber !== e.range.endLineNumber) return;\n                    const r = t.getLineContent(e.range.startLineNumber),\n                        a = o.V8(r).length;\n                    if (e.range.startColumn - 1 <= a) {\n                        const t = o.V8(e.text).length,\n                            i = r.substring(e.range.startColumn - 1, a),\n                            n = v.e.fromPositions(e.range.getStartPosition().delta(0, i.length), e.range.getEndPosition()),\n                            s = e.text.startsWith(i) ? e.text.substring(i.length) : e.text.substring(t);\n                        e = {\n                            range: n,\n                            text: s,\n                            command: e.command\n                        }\n                    }\n                    const l = t.getValueInRange(e.range),\n                        c = function(e, t) {\n                            if ((null == k ? void 0 : k.originalValue) === e && (null == k ? void 0 : k.newValue) === t) return null == k ? void 0 : k.changes; {\n                                const i = function(e, t) {\n                                    if (e.length > 5e3 || t.length > 5e3) return;\n\n                                    function i(e) {\n                                        let t = 0;\n                                        for (let i = 0, n = e.length; i < n; i++) {\n                                            const n = e.charCodeAt(i);\n                                            n > t && (t = n)\n                                        }\n                                        return t\n                                    }\n                                    const n = Math.max(i(e), i(t));\n\n                                    function o(e) {\n                                        if (e < 0) throw new Error(\"unexpected\");\n                                        return n + e + 1\n                                    }\n\n                                    function s(e) {\n                                        let t = 0,\n                                            i = 0;\n                                        const n = new Int32Array(e.length);\n                                        for (let s = 0, r = e.length; s < r; s++) {\n                                            const r = 100 * i + t;\n                                            \"(\" === e[s] ? (n[s] = o(2 * r), t++) : \")\" === e[s] ? (n[s] = o(2 * r + 1), 1 === t && i++, t = Math.max(t - 1, 0)) : n[s] = e.charCodeAt(s)\n                                        }\n                                        return n\n                                    }\n                                    const r = s(e),\n                                        a = s(t);\n                                    return new x.Hs({\n                                        getElements: () => r\n                                    }, {\n                                        getElements: () => a\n                                    }).ComputeDiff(!1).changes\n                                }(e, t);\n                                return k = {\n                                    originalValue: e,\n                                    newValue: t,\n                                    changes: i\n                                }, i\n                            }\n                        }(l, e.text);\n                    if (!c) return;\n                    const d = e.range.startLineNumber,\n                        h = new Array;\n                    if (\"prefix\" === i) {\n                        const e = c.filter((e => 0 === e.originalLength));\n                        if (e.length > 1 || 1 === e.length && e[0].originalStart !== l.length) return\n                    }\n                    const u = e.text.length - s;\n                    for (const t of c) {\n                        const s = e.range.startColumn + t.originalStart + t.originalLength;\n                        if (\"subwordSmart\" === i && n && n.lineNumber === e.range.startLineNumber && s < n.column) return;\n                        if (t.originalLength > 0) return;\n                        if (0 === t.modifiedLength) continue;\n                        const r = t.modifiedStart + t.modifiedLength,\n                            a = Math.max(t.modifiedStart, Math.min(r, u)),\n                            l = e.text.substring(t.modifiedStart, a),\n                            c = e.text.substring(a, Math.max(t.modifiedStart, r));\n                        if (l.length > 0) {\n                            const e = o.uq(l);\n                            h.push(new w(s, e, !1))\n                        }\n                        if (c.length > 0) {\n                            const e = o.uq(c);\n                            h.push(new w(s, e, !0))\n                        }\n                    }\n                    return new _(d, h, 0)\n                }\n                let k;\n                var L = function(e, t, i, n) {\n                        var o, s = arguments.length,\n                            r = s < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n                        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) r = Reflect.decorate(e, t, i, n);\n                        else\n                            for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (r = (s < 3 ? o(r) : s > 3 ? o(t, i, r) : o(t, i)) || r);\n                        return s > 3 && r && Object.defineProperty(t, i, r), r\n                    },\n                    N = function(e, t) {\n                        return function(i, n) {\n                            t(i, n, e)\n                        }\n                    },\n                    D = function(e, t, i, n) {\n                        return new(i || (i = Promise))((function(o, s) {\n                            function r(e) {\n                                try {\n                                    l(n.next(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function a(e) {\n                                try {\n                                    l(n.throw(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function l(e) {\n                                var t;\n                                e.done ? o(e.value) : (t = e.value, t instanceof i ? t : new i((function(e) {\n                                    e(t)\n                                }))).then(r, a)\n                            }\n                            l((n = n.apply(e, t || [])).next())\n                        }))\n                    };\n                let I = class extends n.JT {\n                    constructor(e, t, i) {\n                        super(), this.editor = e, this.cache = t, this.commandService = i, this.onDidChangeEmitter = new c.Q5, this.onDidChange = this.onDidChangeEmitter.event, this.completionSession = this._register(new n.XK), this.active = !1, this.disposed = !1, this._register(i.onDidExecuteCommand((t => {\n                            new Set([s.n_.id, s.kz.id, f.CoreEditingCommands.Tab.id, f.CoreEditingCommands.DeleteLeft.id, f.CoreEditingCommands.DeleteRight.id, l, \"acceptSelectedSuggestion\"]).has(t.commandId) && e.hasTextFocus() && this.handleUserInput()\n                        }))), this._register(this.editor.onDidType((e => {\n                            this.handleUserInput()\n                        }))), this._register(this.editor.onDidChangeCursorPosition((e => {\n                            this.session && !this.session.isValid && this.hide()\n                        }))), this._register((0, n.OF)((() => {\n                            this.disposed = !0\n                        }))), this._register(this.editor.onDidBlurEditorWidget((() => {\n                            this.hide()\n                        })))\n                    }\n                    handleUserInput() {\n                        this.session && !this.session.isValid && this.hide(), setTimeout((() => {\n                            this.disposed || this.startSessionIfTriggered()\n                        }), 0)\n                    }\n                    get session() {\n                        return this.completionSession.value\n                    }\n                    get ghostText() {\n                        var e;\n                        return null === (e = this.session) || void 0 === e ? void 0 : e.ghostText\n                    }\n                    get minReservedLineCount() {\n                        return this.session ? this.session.minReservedLineCount : 0\n                    }\n                    setExpanded(e) {\n                        var t;\n                        null === (t = this.session) || void 0 === t || t.setExpanded(e)\n                    }\n                    setActive(e) {\n                        var t;\n                        this.active = e, e && (null === (t = this.session) || void 0 === t || t.scheduleAutomaticUpdate())\n                    }\n                    startSessionIfTriggered() {\n                        this.editor.getOption(54).enabled && (this.session && this.session.isValid || this.trigger(h.bw.Automatic))\n                    }\n                    trigger(e) {\n                        this.completionSession.value ? e === h.bw.Explicit && this.completionSession.value.ensureUpdateWithExplicitContext() : (this.completionSession.value = new E(this.editor, this.editor.getPosition(), (() => this.active), this.commandService, this.cache, e), this.completionSession.value.takeOwnership(this.completionSession.value.onDidChange((() => {\n                            this.onDidChangeEmitter.fire()\n                        }))))\n                    }\n                    hide() {\n                        this.completionSession.clear(), this.onDidChangeEmitter.fire()\n                    }\n                    commitCurrentSuggestion() {\n                        var e;\n                        null === (e = this.session) || void 0 === e || e.commitCurrentCompletion()\n                    }\n                    showNext() {\n                        var e;\n                        null === (e = this.session) || void 0 === e || e.showNextInlineCompletion()\n                    }\n                    showPrevious() {\n                        var e;\n                        null === (e = this.session) || void 0 === e || e.showPreviousInlineCompletion()\n                    }\n                    hasMultipleInlineCompletions() {\n                        var e;\n                        return D(this, void 0, void 0, (function*() {\n                            const t = yield null === (e = this.session) || void 0 === e ? void 0 : e.hasMultipleInlineCompletions();\n                            return void 0 !== t && t\n                        }))\n                    }\n                };\n                I = L([N(2, C.H)], I);\n                class E extends y {\n                    constructor(e, t, i, o, s, r) {\n                        let a;\n                        super(e), this.triggerPosition = t, this.shouldUpdate = i, this.commandService = o, this.cache = s, this.initialTriggerKind = r, this.minReservedLineCount = 0, this.updateOperation = this._register(new n.XK), this.updateSoon = this._register(new u.pY((() => {\n                            let e = this.initialTriggerKind;\n                            return this.initialTriggerKind = h.bw.Automatic, this.update(e)\n                        }), 50)), this.currentlySelectedCompletionId = void 0, this._register(this.onDidChange((() => {\n                            const e = this.currentCompletion;\n                            if (e && e.sourceInlineCompletion !== a) {\n                                a = e.sourceInlineCompletion;\n                                const t = e.sourceProvider;\n                                t.handleItemDidShow && t.handleItemDidShow(e.sourceInlineCompletions, a)\n                            }\n                        }))), this._register((0, n.OF)((() => {\n                            this.cache.clear()\n                        }))), this._register(this.editor.onDidChangeCursorPosition((e => {\n                            this.cache.value && this.onDidChangeEmitter.fire()\n                        }))), this._register(this.editor.onDidChangeModelContent((e => {\n                            this.scheduleAutomaticUpdate()\n                        }))), this._register(h.zu.onDidChange((() => {\n                            this.updateSoon.schedule()\n                        }))), this.scheduleAutomaticUpdate()\n                    }\n                    fixAndGetIndexOfCurrentSelection() {\n                        if (!this.currentlySelectedCompletionId || !this.cache.value) return 0;\n                        if (0 === this.cache.value.completions.length) return 0;\n                        const e = this.cache.value.completions.findIndex((e => e.semanticId === this.currentlySelectedCompletionId));\n                        return -1 === e ? (this.currentlySelectedCompletionId = void 0, 0) : e\n                    }\n                    get currentCachedCompletion() {\n                        if (this.cache.value) return this.cache.value.completions[this.fixAndGetIndexOfCurrentSelection()]\n                    }\n                    showNextInlineCompletion() {\n                        var e;\n                        return D(this, void 0, void 0, (function*() {\n                            yield this.ensureUpdateWithExplicitContext();\n                            const t = (null === (e = this.cache.value) || void 0 === e ? void 0 : e.completions) || [];\n                            if (t.length > 0) {\n                                const e = (this.fixAndGetIndexOfCurrentSelection() + 1) % t.length;\n                                this.currentlySelectedCompletionId = t[e].semanticId\n                            } else this.currentlySelectedCompletionId = void 0;\n                            this.onDidChangeEmitter.fire()\n                        }))\n                    }\n                    showPreviousInlineCompletion() {\n                        var e;\n                        return D(this, void 0, void 0, (function*() {\n                            yield this.ensureUpdateWithExplicitContext();\n                            const t = (null === (e = this.cache.value) || void 0 === e ? void 0 : e.completions) || [];\n                            if (t.length > 0) {\n                                const e = (this.fixAndGetIndexOfCurrentSelection() + t.length - 1) % t.length;\n                                this.currentlySelectedCompletionId = t[e].semanticId\n                            } else this.currentlySelectedCompletionId = void 0;\n                            this.onDidChangeEmitter.fire()\n                        }))\n                    }\n                    ensureUpdateWithExplicitContext() {\n                        var e;\n                        return D(this, void 0, void 0, (function*() {\n                            this.updateOperation.value ? this.updateOperation.value.triggerKind === h.bw.Explicit ? yield this.updateOperation.value.promise: yield this.update(h.bw.Explicit): (null === (e = this.cache.value) || void 0 === e ? void 0 : e.triggerKind) !== h.bw.Explicit && (yield this.update(h.bw.Explicit))\n                        }))\n                    }\n                    hasMultipleInlineCompletions() {\n                        var e;\n                        return D(this, void 0, void 0, (function*() {\n                            return yield this.ensureUpdateWithExplicitContext(), ((null === (e = this.cache.value) || void 0 === e ? void 0 : e.completions.length) || 0) > 1\n                        }))\n                    }\n                    get ghostText() {\n                        const e = this.currentCompletion,\n                            t = this.editor.getOptions().get(54).mode;\n                        return e ? S(e, this.editor.getModel(), t, this.editor.getPosition()) : void 0\n                    }\n                    get currentCompletion() {\n                        const e = this.currentCachedCompletion;\n                        if (e) return e.toLiveInlineCompletion()\n                    }\n                    get isValid() {\n                        return this.editor.getPosition().lineNumber === this.triggerPosition.lineNumber\n                    }\n                    scheduleAutomaticUpdate() {\n                        this.updateOperation.clear(), this.updateSoon.schedule()\n                    }\n                    update(e) {\n                        return D(this, void 0, void 0, (function*() {\n                            if (!this.shouldUpdate()) return;\n                            const t = this.editor.getPosition(),\n                                i = (0, u.PG)((i => D(this, void 0, void 0, (function*() {\n                                    let n;\n                                    try {\n                                        n = yield O(t, this.editor.getModel(), {\n                                            triggerKind: e,\n                                            selectedSuggestionInfo: void 0\n                                        }, i)\n                                    } catch (e) {\n                                        return void(0, p.dL)(e)\n                                    }\n                                    i.isCancellationRequested || (this.cache.setValue(this.editor, n, e), this.onDidChangeEmitter.fire())\n                                })))),\n                                n = new T(i, e);\n                            this.updateOperation.value = n, yield i, this.updateOperation.value === n && this.updateOperation.clear()\n                        }))\n                    }\n                    takeOwnership(e) {\n                        this._register(e)\n                    }\n                    commitCurrentCompletion() {\n                        if (!this.ghostText) return;\n                        const e = this.currentCompletion;\n                        e && this.commit(e)\n                    }\n                    commit(e) {\n                        const t = this.cache.clearAndLeak();\n                        this.editor.executeEdits(\"inlineSuggestion.accept\", [m.h.replaceMove(e.range, e.text)]), e.command ? this.commandService.executeCommand(e.command.id, ...e.command.arguments || []).finally((() => {\n                            null == t || t.dispose()\n                        })).then(void 0, p.Cp) : null == t || t.dispose(), this.onDidChangeEmitter.fire()\n                    }\n                }\n                class T {\n                    constructor(e, t) {\n                        this.promise = e, this.triggerKind = t\n                    }\n                    dispose() {\n                        this.promise.cancel()\n                    }\n                }\n                class M extends n.JT {\n                    constructor(e, t, i, o) {\n                        super(), this.triggerKind = o;\n                        const s = e.deltaDecorations([], t.items.map((e => ({\n                            range: e.range,\n                            options: {\n                                description: \"inline-completion-tracking-range\"\n                            }\n                        }))));\n                        this._register((0, n.OF)((() => {\n                            e.deltaDecorations(s, [])\n                        }))), this.completions = t.items.map(((e, t) => new A(e, s[t]))), this._register(e.onDidChangeModelContent((() => {\n                            let t = !1;\n                            const n = e.getModel();\n                            for (const e of this.completions) {\n                                const i = n.getDecorationRange(e.decorationId);\n                                i ? e.synchronizedRange.equalsRange(i) || (t = !0, e.synchronizedRange = i) : (0, p.dL)(new Error(\"Decoration has no range\"))\n                            }\n                            t && i()\n                        }))), this._register(t)\n                    }\n                }\n                class A {\n                    constructor(e, t) {\n                        this.inlineCompletion = e, this.decorationId = t, this.semanticId = JSON.stringify({\n                            text: this.inlineCompletion.text,\n                            startLine: this.inlineCompletion.range.startLineNumber,\n                            startColumn: this.inlineCompletion.range.startColumn,\n                            command: this.inlineCompletion.command\n                        }), this.synchronizedRange = e.range\n                    }\n                    toLiveInlineCompletion() {\n                        return {\n                            text: this.inlineCompletion.text,\n                            range: this.synchronizedRange,\n                            command: this.inlineCompletion.command,\n                            sourceProvider: this.inlineCompletion.sourceProvider,\n                            sourceInlineCompletions: this.inlineCompletion.sourceInlineCompletions,\n                            sourceInlineCompletion: this.inlineCompletion.sourceInlineCompletion\n                        }\n                    }\n                }\n\n                function O(e, t, i, n = g.T.None) {\n                    return D(this, void 0, void 0, (function*() {\n                        const o = function(e, t) {\n                                const i = t.getWordAtPosition(e),\n                                    n = t.getLineMaxColumn(e.lineNumber);\n                                return i ? new v.e(e.lineNumber, i.startColumn, e.lineNumber, n) : v.e.fromPositions(e, e.with(void 0, n))\n                            }(e, t),\n                            s = h.zu.all(t),\n                            r = yield Promise.all(s.map((o => D(this, void 0, void 0, (function*() {\n                                const s = yield o.provideInlineCompletions(t, e, i, n);\n                                return {\n                                    completions: s,\n                                    provider: o,\n                                    dispose: () => {\n                                        s && o.freeInlineCompletions(s)\n                                    }\n                                }\n                            }))))), a = new Map;\n                        for (const e of r) {\n                            const t = e.completions;\n                            if (t)\n                                for (const i of t.items.map((i => ({\n                                        text: i.text,\n                                        range: i.range ? v.e.lift(i.range) : o,\n                                        command: i.command,\n                                        sourceProvider: e.provider,\n                                        sourceInlineCompletions: t,\n                                        sourceInlineCompletion: i\n                                    })))) i.range.startLineNumber === i.range.endLineNumber && a.set(JSON.stringify({\n                                    text: i.text,\n                                    range: i.range\n                                }), i)\n                        }\n                        return {\n                            items: [...a.values()],\n                            dispose: () => {\n                                for (const e of r) e.dispose()\n                            }\n                        }\n                    }))\n                }\n\n                function P(e, t) {\n                    if (!t) return t;\n                    const i = e.getValueInRange(t.range),\n                        n = (0, o.Mh)(i, t.text),\n                        s = e.getOffsetAt(t.range.getStartPosition()) + n,\n                        r = e.getPositionAt(s),\n                        a = i.substr(n),\n                        l = (0, o.P1)(a, t.text),\n                        c = e.getPositionAt(Math.max(s, e.getOffsetAt(t.range.getEndPosition()) - l));\n                    return {\n                        range: v.e.fromPositions(r, c),\n                        text: t.text.substr(n, t.text.length - n - l)\n                    }\n                }\n                var R = i(63472),\n                    F = i(87548),\n                    B = i(88250);\n                class V extends n.JT {\n                    constructor(e, t) {\n                        super(), this.editor = e, this.suggestControllerPreselector = t, this.isSuggestWidgetVisible = !1, this.isShiftKeyPressed = !1, this._isActive = !1, this._currentInlineCompletion = void 0, this.onDidChangeEmitter = new c.Q5, this.onDidChange = this.onDidChangeEmitter.event, this.setInactiveDelayed = this._register(new u.pY((() => {\n                            this.isSuggestWidgetVisible || this._isActive && (this._isActive = !1, this.onDidChangeEmitter.fire())\n                        }), 100)), this._register(e.onKeyDown((e => {\n                            e.shiftKey && !this.isShiftKeyPressed && (this.isShiftKeyPressed = !0, this.update(this._isActive))\n                        }))), this._register(e.onKeyUp((e => {\n                            e.shiftKey && this.isShiftKeyPressed && (this.isShiftKeyPressed = !1, this.update(this._isActive))\n                        })));\n                        const i = B.SuggestController.get(this.editor);\n                        if (i) {\n                            this._register(i.registerSelector({\n                                priority: 100,\n                                select: (e, t, n) => {\n                                    const o = this.editor.getModel(),\n                                        s = P(o, this.suggestControllerPreselector());\n                                    if (!s) return -1;\n                                    const r = d.L.lift(t),\n                                        a = function(e, t) {\n                                            let i;\n                                            for (const n of e)(void 0 === i || t(n, i) > 0) && (i = n);\n                                            return i\n                                        }(n.map(((e, t) => {\n                                            const n = W(i, r, e, this.isShiftKeyPressed),\n                                                a = P(o, n);\n                                            if (!a) return;\n                                            var l, c;\n                                            return {\n                                                index: t,\n                                                valid: (l = s.range, c = a.range, l.startLineNumber === c.startLineNumber && l.startColumn === c.startColumn && (l.endLineNumber < c.endLineNumber || l.endLineNumber === c.endLineNumber && l.endColumn <= c.endColumn) && s.text.startsWith(a.text)),\n                                                prefixLength: a.text.length,\n                                                suggestItem: e\n                                            }\n                                        })).filter((e => e && e.valid)), (l = e => e.prefixLength, c = (e, t) => e - t, (e, t) => c(l(e), l(t))));\n                                    var l, c;\n                                    return a ? a.index : -1\n                                }\n                            }));\n                            let e = !1;\n                            const t = () => {\n                                e || (e = !0, this._register(i.widget.value.onDidShow((() => {\n                                    this.isSuggestWidgetVisible = !0, this.update(!0)\n                                }))), this._register(i.widget.value.onDidHide((() => {\n                                    this.isSuggestWidgetVisible = !1, this.setInactiveDelayed.schedule(), this.update(this._isActive)\n                                }))), this._register(i.widget.value.onDidFocus((() => {\n                                    this.isSuggestWidgetVisible = !0, this.update(!0)\n                                }))))\n                            };\n                            this._register(c.ju.once(i.model.onDidTrigger)((e => {\n                                t()\n                            })))\n                        }\n                        this.update(this._isActive)\n                    }\n                    get state() {\n                        if (this._isActive) return {\n                            selectedItemAsInlineCompletion: this._currentInlineCompletion\n                        }\n                    }\n                    update(e) {\n                        const t = this.getInlineCompletion();\n                        let i = !1;\n                        var n, o;\n                        (n = this._currentInlineCompletion) === (o = t) || n && o && n.range.equalsRange(o.range) && n.text === o.text && n.command === o.command || (this._currentInlineCompletion = t, i = !0), this._isActive !== e && (this._isActive = e, i = !0), i && this.onDidChangeEmitter.fire()\n                    }\n                    getInlineCompletion() {\n                        const e = B.SuggestController.get(this.editor);\n                        if (!e) return;\n                        if (!this.isSuggestWidgetVisible) return;\n                        const t = e.widget.value.getFocusedItem();\n                        return t ? W(e, this.editor.getPosition(), t.item, this.isShiftKeyPressed) : void 0\n                    }\n                    stopForceRenderingAbove() {\n                        const e = B.SuggestController.get(this.editor);\n                        e && e.stopForceRenderingAbove()\n                    }\n                    forceRenderingAbove() {\n                        const e = B.SuggestController.get(this.editor);\n                        e && e.forceRenderingAbove()\n                    }\n                }\n\n                function W(e, t, i, n) {\n                    if (Array.isArray(i.completion.additionalTextEdits) && i.completion.additionalTextEdits.length > 0) return {\n                        text: \"\",\n                        range: v.e.fromPositions(t, t)\n                    };\n                    let {\n                        insertText: o\n                    } = i.completion;\n                    if (4 & i.completion.insertTextRules) {\n                        const i = (new R.Yj).parse(o),\n                            n = e.editor.getModel();\n                        if (i.children.length > 100) return;\n                        F.l.adjustWhitespace(n, t, i, !0, !0), o = i.toString()\n                    }\n                    const s = e.getOverwriteInfo(i, n);\n                    return {\n                        text: o,\n                        range: v.e.fromPositions(t.delta(0, -s.overwriteBefore), t.delta(0, Math.max(s.overwriteAfter, 0)))\n                    }\n                }\n                var H = function(e, t, i, n) {\n                    return new(i || (i = Promise))((function(o, s) {\n                        function r(e) {\n                            try {\n                                l(n.next(e))\n                            } catch (e) {\n                                s(e)\n                            }\n                        }\n\n                        function a(e) {\n                            try {\n                                l(n.throw(e))\n                            } catch (e) {\n                                s(e)\n                            }\n                        }\n\n                        function l(e) {\n                            var t;\n                            e.done ? o(e.value) : (t = e.value, t instanceof i ? t : new i((function(e) {\n                                e(t)\n                            }))).then(r, a)\n                        }\n                        l((n = n.apply(e, t || [])).next())\n                    }))\n                };\n                class z extends y {\n                    constructor(e, t) {\n                        super(e), this.cache = t, this.suggestionInlineCompletionSource = this._register(new V(this.editor, (() => {\n                            var e, t;\n                            return null === (t = null === (e = this.cache.value) || void 0 === e ? void 0 : e.completions[0]) || void 0 === t ? void 0 : t.toLiveInlineCompletion()\n                        }))), this.updateOperation = this._register(new n.XK), this.updateCacheSoon = this._register(new u.pY((() => this.updateCache()), 50)), this.minReservedLineCount = 0, this._register(this.suggestionInlineCompletionSource.onDidChange((() => {\n                            this.updateCacheSoon.schedule();\n                            this.suggestionInlineCompletionSource.state || (this.minReservedLineCount = 0);\n                            const e = this.ghostText;\n                            e && (this.minReservedLineCount = Math.max(this.minReservedLineCount, e.parts.map((e => e.lines.length - 1)).reduce(((e, t) => e + t), 0))), this.minReservedLineCount >= 1 && this.isSuggestionPreviewEnabled() ? this.suggestionInlineCompletionSource.forceRenderingAbove() : this.suggestionInlineCompletionSource.stopForceRenderingAbove(), this.onDidChangeEmitter.fire()\n                        }))), this._register(this.cache.onDidChange((() => {\n                            this.onDidChangeEmitter.fire()\n                        }))), this._register(this.editor.onDidChangeCursorPosition((e => {\n                            this.isSuggestionPreviewEnabled() && (this.minReservedLineCount = 0, this.updateCacheSoon.schedule(), this.onDidChangeEmitter.fire())\n                        }))), this._register((0, n.OF)((() => this.suggestionInlineCompletionSource.stopForceRenderingAbove())))\n                    }\n                    get isActive() {\n                        return void 0 !== this.suggestionInlineCompletionSource.state\n                    }\n                    isSuggestionPreviewEnabled() {\n                        return this.editor.getOption(105).preview\n                    }\n                    updateCache() {\n                        return H(this, void 0, void 0, (function*() {\n                            const e = this.suggestionInlineCompletionSource.state;\n                            if (!e || !e.selectedItemAsInlineCompletion) return;\n                            const t = {\n                                    text: e.selectedItemAsInlineCompletion.text,\n                                    range: e.selectedItemAsInlineCompletion.range\n                                },\n                                i = this.editor.getPosition(),\n                                n = (0, u.PG)((e => H(this, void 0, void 0, (function*() {\n                                    let n;\n                                    try {\n                                        n = yield O(i, this.editor.getModel(), {\n                                            triggerKind: h.bw.Automatic,\n                                            selectedSuggestionInfo: t\n                                        }, e)\n                                    } catch (e) {\n                                        return void(0, p.dL)(e)\n                                    }\n                                    e.isCancellationRequested || (this.cache.setValue(this.editor, n, h.bw.Automatic), this.onDidChangeEmitter.fire())\n                                })))),\n                                o = new T(n, h.bw.Automatic);\n                            this.updateOperation.value = o, yield n, this.updateOperation.value === o && this.updateOperation.clear()\n                        }))\n                    }\n                    get ghostText() {\n                        var e, t;\n                        if (!this.isSuggestionPreviewEnabled()) return;\n                        const i = this.suggestionInlineCompletionSource.state,\n                            n = P(this.editor.getModel(), null == i ? void 0 : i.selectedItemAsInlineCompletion),\n                            o = P(this.editor.getModel(), null === (t = null === (e = this.cache.value) || void 0 === e ? void 0 : e.completions[0]) || void 0 === t ? void 0 : t.toLiveInlineCompletion()),\n                            s = o && n && o.text.startsWith(n.text) && o.range.equalsRange(n.range) ? o : n || o,\n                            r = n ? ((null == s ? void 0 : s.text.length) || 0) - n.text.length : 0;\n                        return (e => {\n                            const t = this.editor.getOptions().get(105).previewMode;\n                            return e ? S(e, this.editor.getModel(), t, this.editor.getPosition(), r) || new _(e.range.endLineNumber, [], this.minReservedLineCount) : void 0\n                        })(s)\n                    }\n                }\n                var j = function(e, t, i, n) {\n                        var o, s = arguments.length,\n                            r = s < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n                        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) r = Reflect.decorate(e, t, i, n);\n                        else\n                            for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (r = (s < 3 ? o(r) : s > 3 ? o(t, i, r) : o(t, i)) || r);\n                        return s > 3 && r && Object.defineProperty(t, i, r), r\n                    },\n                    U = function(e, t) {\n                        return function(i, n) {\n                            t(i, n, e)\n                        }\n                    },\n                    $ = function(e, t, i, n) {\n                        return new(i || (i = Promise))((function(o, s) {\n                            function r(e) {\n                                try {\n                                    l(n.next(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function a(e) {\n                                try {\n                                    l(n.throw(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function l(e) {\n                                var t;\n                                e.done ? o(e.value) : (t = e.value, t instanceof i ? t : new i((function(e) {\n                                    e(t)\n                                }))).then(r, a)\n                            }\n                            l((n = n.apply(e, t || [])).next())\n                        }))\n                    };\n                class K extends n.JT {\n                    constructor() {\n                        super(...arguments), this.onDidChangeEmitter = new c.Q5, this.onDidChange = this.onDidChangeEmitter.event, this.hasCachedGhostText = !1, this.currentModelRef = this._register(new n.XK)\n                    }\n                    get targetModel() {\n                        var e;\n                        return null === (e = this.currentModelRef.value) || void 0 === e ? void 0 : e.object\n                    }\n                    setTargetModel(e) {\n                        var t, i, n;\n                        (null === (t = this.currentModelRef.value) || void 0 === t ? void 0 : t.object) !== e && (this.currentModelRef.clear(), this.currentModelRef.value = e ? (i = e, n = e.onDidChange((() => {\n                            this.hasCachedGhostText = !1, this.onDidChangeEmitter.fire()\n                        })), {\n                            object: i,\n                            dispose: () => null == n ? void 0 : n.dispose()\n                        }) : void 0, this.hasCachedGhostText = !1, this.onDidChangeEmitter.fire())\n                    }\n                    get ghostText() {\n                        var e, t;\n                        return this.hasCachedGhostText || (this.cachedGhostText = null === (t = null === (e = this.currentModelRef.value) || void 0 === e ? void 0 : e.object) || void 0 === t ? void 0 : t.ghostText, this.hasCachedGhostText = !0), this.cachedGhostText\n                    }\n                    setExpanded(e) {\n                        var t;\n                        null === (t = this.targetModel) || void 0 === t || t.setExpanded(e)\n                    }\n                    get minReservedLineCount() {\n                        return this.targetModel ? this.targetModel.minReservedLineCount : 0\n                    }\n                }\n                let q = class extends K {\n                    constructor(e, t) {\n                        super(), this.editor = e, this.commandService = t, this.sharedCache = this._register(new Z), this.suggestWidgetAdapterModel = this._register(new z(this.editor, this.sharedCache)), this.inlineCompletionsModel = this._register(new I(this.editor, this.sharedCache, this.commandService)), this._register(this.suggestWidgetAdapterModel.onDidChange((() => {\n                            this.updateModel()\n                        }))), this.updateModel()\n                    }\n                    get activeInlineCompletionsModel() {\n                        if (this.targetModel === this.inlineCompletionsModel) return this.inlineCompletionsModel\n                    }\n                    updateModel() {\n                        this.setTargetModel(this.suggestWidgetAdapterModel.isActive ? this.suggestWidgetAdapterModel : this.inlineCompletionsModel), this.inlineCompletionsModel.setActive(this.targetModel === this.inlineCompletionsModel)\n                    }\n                    shouldShowHoverAt(e) {\n                        var t;\n                        const i = null === (t = this.activeInlineCompletionsModel) || void 0 === t ? void 0 : t.ghostText;\n                        return !!i && i.parts.some((t => e.containsPosition(new d.L(i.lineNumber, t.column))))\n                    }\n                    triggerInlineCompletion() {\n                        var e;\n                        null === (e = this.activeInlineCompletionsModel) || void 0 === e || e.trigger(h.bw.Explicit)\n                    }\n                    commitInlineCompletion() {\n                        var e;\n                        null === (e = this.activeInlineCompletionsModel) || void 0 === e || e.commitCurrentSuggestion()\n                    }\n                    hideInlineCompletion() {\n                        var e;\n                        null === (e = this.activeInlineCompletionsModel) || void 0 === e || e.hide()\n                    }\n                    showNextInlineCompletion() {\n                        var e;\n                        null === (e = this.activeInlineCompletionsModel) || void 0 === e || e.showNext()\n                    }\n                    showPreviousInlineCompletion() {\n                        var e;\n                        null === (e = this.activeInlineCompletionsModel) || void 0 === e || e.showPrevious()\n                    }\n                    hasMultipleInlineCompletions() {\n                        var e;\n                        return $(this, void 0, void 0, (function*() {\n                            const t = yield null === (e = this.activeInlineCompletionsModel) || void 0 === e ? void 0 : e.hasMultipleInlineCompletions();\n                            return void 0 !== t && t\n                        }))\n                    }\n                };\n                q = j([U(1, C.H)], q);\n                class Z extends n.JT {\n                    constructor() {\n                        super(...arguments), this.onDidChangeEmitter = new c.Q5, this.onDidChange = this.onDidChangeEmitter.event, this.cache = this._register(new n.XK)\n                    }\n                    get value() {\n                        return this.cache.value\n                    }\n                    setValue(e, t, i) {\n                        this.cache.value = new M(e, t, (() => this.onDidChangeEmitter.fire()), i)\n                    }\n                    clearAndLeak() {\n                        return this.cache.clearAndLeak()\n                    }\n                    clear() {\n                        this.cache.clear()\n                    }\n                }\n                var G, Y = i(65321),\n                    Q = i(41264),\n                    X = (i(80949), i(89052)),\n                    J = i(11640),\n                    ee = i(64141),\n                    te = i(33181),\n                    ie = i(78411),\n                    ne = i(50072),\n                    oe = i(71531),\n                    se = i(27869),\n                    re = i(92550),\n                    ae = i(77736),\n                    le = i(38819),\n                    ce = i(72065),\n                    de = i(97781),\n                    he = function(e, t, i, n) {\n                        var o, s = arguments.length,\n                            r = s < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n                        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) r = Reflect.decorate(e, t, i, n);\n                        else\n                            for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (r = (s < 3 ? o(r) : s > 3 ? o(t, i, r) : o(t, i)) || r);\n                        return s > 3 && r && Object.defineProperty(t, i, r), r\n                    },\n                    ue = function(e, t) {\n                        return function(i, n) {\n                            t(i, n, e)\n                        }\n                    };\n                const ge = null === (G = window.trustedTypes) || void 0 === G ? void 0 : G.createPolicy(\"editorGhostText\", {\n                    createHTML: e => e\n                });\n                let pe = class extends n.JT {\n                    constructor(e, t, i, o) {\n                        super(), this.editor = e, this.model = t, this.instantiationService = i, this.modeService = o, this.disposed = !1, this.partsWidget = this._register(this.instantiationService.createInstance(fe, this.editor)), this.additionalLinesWidget = this._register(new ve(this.editor, this.modeService.languageIdCodec)), this.viewMoreContentWidget = void 0, this._register(this.editor.onDidChangeConfiguration((e => {\n                            (e.hasChanged(29) || e.hasChanged(104) || e.hasChanged(87) || e.hasChanged(82) || e.hasChanged(44) || e.hasChanged(43) || e.hasChanged(58)) && this.update()\n                        }))), this._register((0, n.OF)((() => {\n                            var e;\n                            this.disposed = !0, this.update(), null === (e = this.viewMoreContentWidget) || void 0 === e || e.dispose(), this.viewMoreContentWidget = void 0\n                        }))), this._register(t.onDidChange((() => {\n                            this.update()\n                        }))), this.update()\n                    }\n                    shouldShowHoverAtViewZone(e) {\n                        return this.additionalLinesWidget.viewZoneId === e\n                    }\n                    update() {\n                        var e;\n                        const t = this.model.ghostText;\n                        if (!this.editor.hasModel() || !t || this.disposed) return this.partsWidget.clear(), void this.additionalLinesWidget.clear();\n                        const i = new Array,\n                            n = new Array;\n\n                        function o(e, t) {\n                            if (n.length > 0) {\n                                const i = n[n.length - 1];\n                                t && i.decorations.push(new re.Kp(i.content.length + 1, i.content.length + 1 + e[0].length, t, 0)), i.content += e[0], e = e.slice(1)\n                            }\n                            for (const i of e) n.push({\n                                content: i,\n                                decorations: t ? [new re.Kp(1, i.length + 1, t, 0)] : []\n                            })\n                        }\n                        const s = this.editor.getModel().getLineContent(t.lineNumber);\n                        let r;\n                        this.editor.getModel().getLineTokens(t.lineNumber);\n                        let a = 0;\n                        for (const e of t.parts) {\n                            let t = e.lines;\n                            void 0 === r ? (i.push({\n                                column: e.column,\n                                text: t[0],\n                                preview: e.preview\n                            }), t = t.slice(1)) : o([s.substring(a, e.column - 1)], void 0), t.length > 0 && (o(t, \"ghost-text\"), void 0 === r && e.column <= s.length && (r = e.column)), a = e.column - 1\n                        }\n                        void 0 !== r && o([s.substring(a)], void 0), this.partsWidget.setParts(t.lineNumber, i, void 0 !== r ? {\n                            column: r,\n                            length: s.length + 1 - r\n                        } : void 0), this.additionalLinesWidget.updateLines(t.lineNumber, n, t.additionalReservedLineCount), t.parts.some((e => e.lines.length < 0)) ? this.viewMoreContentWidget = this.renderViewMoreLines(new d.L(t.lineNumber, this.editor.getModel().getLineMaxColumn(t.lineNumber)), \"\", 0) : (null === (e = this.viewMoreContentWidget) || void 0 === e || e.dispose(), this.viewMoreContentWidget = void 0)\n                    }\n                    renderViewMoreLines(e, t, i) {\n                        const o = this.editor.getOption(43),\n                            s = document.createElement(\"div\");\n                        s.className = \"suggest-preview-additional-widget\", X.V.applyFontInfoSlow(s, o);\n                        const r = document.createElement(\"span\");\n                        r.className = \"content-spacer\", r.append(t), s.append(r);\n                        const a = document.createElement(\"span\");\n                        a.className = \"content-newline suggest-preview-text\", a.append(\"⏎  \"), s.append(a);\n                        const l = new n.SL,\n                            c = document.createElement(\"div\");\n                        return c.className = \"button suggest-preview-text\", c.append(`+${i} lines…`), l.add(Y.mu(c, \"mousedown\", (e => {\n                            var t;\n                            null === (t = this.model) || void 0 === t || t.setExpanded(!0), e.preventDefault(), this.editor.focus()\n                        }))), s.append(c), new be(this.editor, e, s, l)\n                    }\n                };\n                pe = he([ue(2, ce.TG), ue(3, oe.h)], pe);\n                let fe = class {\n                    constructor(e, t, i, o) {\n                        this.editor = e, this.codeEditorService = t, this.themeService = i, this.contextKeyService = o, this.decorationIds = [], this.disposableStore = new n.SL\n                    }\n                    dispose() {\n                        this.clear(), this.disposableStore.dispose()\n                    }\n                    clear() {\n                        this.editor.deltaDecorations(this.decorationIds, []), this.disposableStore.clear()\n                    }\n                    setParts(e, t, i) {\n                        this.disposableStore.clear();\n                        const n = this.themeService.getColorTheme(),\n                            o = n.getColor(se.N5);\n                        let s, r;\n                        o && (s = String(o.rgba.a), r = Q.Il.Format.CSS.format(me(o)));\n                        const a = n.getColor(se.x3);\n                        let l;\n                        a && (l = `2px dashed ${a}`);\n                        const c = this.editor.getModel();\n                        if (!c) return;\n                        const {\n                            tabSize: h\n                        } = c.getOptions(), u = c.getLineContent(e) || \"\";\n                        let g = 0,\n                            p = \"\";\n                        const f = new Array;\n                        i && f.push({\n                            range: v.e.fromPositions(new d.L(e, i.column), new d.L(e, i.column + i.length)),\n                            options: {\n                                inlineClassName: \"ghost-text-hidden\",\n                                description: \"ghost-text-hidden\"\n                            }\n                        });\n                        const m = this.contextKeyService.getContextKeyValue(\"config.editor.useInjectedText\"),\n                            _ = void 0 === m || !!m;\n                        this.decorationIds = this.editor.deltaDecorations(this.decorationIds, t.map((t => {\n                            p += u.substring(g, t.column - 1), g = t.column - 1;\n                            const i = _ ? t.text : this.renderSingleLineText(t.text, p, h, !1),\n                                n = this.disposableStore.add(function(e, t, i, n) {\n                                    const o = i + _e++;\n                                    return e.registerDecorationType(t, o, n), {\n                                        dispose() {\n                                            e.removeDecorationType(o)\n                                        },\n                                        resolve: () => e.resolveDecorationOptions(o, !0)\n                                    }\n                                }(this.codeEditorService, \"ghost-text\", \"0-ghost-text-\", {\n                                    after: {\n                                        contentText: i,\n                                        opacity: s,\n                                        color: r,\n                                        border: l,\n                                        fontWeight: t.preview ? \"bold\" : \"normal\"\n                                    }\n                                }));\n                            return {\n                                range: v.e.fromPositions(new d.L(e, t.column)),\n                                options: _ ? {\n                                    description: \"ghost-text\",\n                                    after: {\n                                        content: i,\n                                        inlineClassName: t.preview ? \"ghost-text-decoration-preview\" : \"ghost-text-decoration\"\n                                    },\n                                    showIfCollapsed: !0\n                                } : Object.assign({}, n.resolve())\n                            }\n                        })).concat(f))\n                    }\n                    renderSingleLineText(e, t, i, n) {\n                        const o = t + e,\n                            s = te.io.visibleColumnsByColumns(o, i);\n                        let r = \"\",\n                            a = t.length + 1;\n                        for (const t of e) {\n                            if (\"\\t\" === t) {\n                                const e = s[a + 1] - s[a];\n                                if (n) {\n                                    r += \"→\";\n                                    for (let t = 1; t < e; t++) r += \" \"\n                                } else\n                                    for (let t = 0; t < e; t++) r += \" \"\n                            } else r += \" \" === t ? n ? \"·\" : \" \" : t;\n                            a += 1\n                        }\n                        return r\n                    }\n                };\n\n                function me(e) {\n                    const {\n                        r: t,\n                        b: i,\n                        g: n\n                    } = e.rgba;\n                    return new Q.Il(new Q.VS(t, n, i, 255))\n                }\n                fe = he([ue(1, J.$), ue(2, de.XE), ue(3, le.i6)], fe);\n                class ve {\n                    constructor(e, t) {\n                        this.editor = e, this.languageIdCodec = t, this._viewZoneId = void 0\n                    }\n                    get viewZoneId() {\n                        return this._viewZoneId\n                    }\n                    dispose() {\n                        this.clear()\n                    }\n                    clear() {\n                        this.editor.changeViewZones((e => {\n                            this._viewZoneId && (e.removeZone(this._viewZoneId), this._viewZoneId = void 0)\n                        }))\n                    }\n                    updateLines(e, t, i) {\n                        const n = this.editor.getModel();\n                        if (!n) return;\n                        const {\n                            tabSize: s\n                        } = n.getOptions();\n                        this.editor.changeViewZones((n => {\n                            this._viewZoneId && (n.removeZone(this._viewZoneId), this._viewZoneId = void 0);\n                            const r = Math.max(t.length, i);\n                            if (r > 0) {\n                                const i = document.createElement(\"div\");\n                                ! function(e, t, i, n, s) {\n                                    const r = n.get(29),\n                                        a = n.get(104),\n                                        l = \"none\",\n                                        c = n.get(82),\n                                        d = n.get(44),\n                                        h = n.get(43),\n                                        u = n.get(58),\n                                        g = (0, ne.l$)(1e4);\n                                    g.appendASCIIString('<div class=\"suggest-preview-text\">');\n                                    for (let e = 0, n = i.length; e < n; e++) {\n                                        const n = i[e],\n                                            p = n.content;\n                                        g.appendASCIIString('<div class=\"view-line'), g.appendASCIIString('\" style=\"top:'), g.appendASCIIString(String(e * u)), g.appendASCIIString('px;width:1000000px;\">');\n                                        const f = o.$i(p),\n                                            m = o.Ut(p),\n                                            v = ie.A.createEmpty(p, s);\n                                        (0, ae.d1)(new ae.IJ(h.isMonospace && !r, h.canUseHalfwidthRightwardsArrow, p, !1, f, m, 0, v, n.decorations, t, 0, h.spaceWidth, h.middotWidth, h.wsmiddotWidth, a, l, c, d !== ee.n0.OFF, null), g), g.appendASCIIString(\"</div>\")\n                                    }\n                                    g.appendASCIIString(\"</div>\"), X.V.applyFontInfoSlow(e, h);\n                                    const p = g.build(),\n                                        f = ge ? ge.createHTML(p) : p;\n                                    e.innerHTML = f\n                                }(i, s, t, this.editor.getOptions(), this.languageIdCodec), this._viewZoneId = n.addZone({\n                                    afterLineNumber: e,\n                                    heightInLines: r,\n                                    domNode: i\n                                })\n                            }\n                        }))\n                    }\n                }\n                let _e = 0;\n                class be extends n.JT {\n                    constructor(e, t, i, o) {\n                        super(), this.editor = e, this.position = t, this.domNode = i, this.allowEditorOverflow = !1, this.suppressMouseDown = !1, this._register(o), this._register((0, n.OF)((() => {\n                            this.editor.removeContentWidget(this)\n                        }))), this.editor.addContentWidget(this)\n                    }\n                    getId() {\n                        return \"editor.widget.viewMoreLinesWidget\"\n                    }\n                    getDomNode() {\n                        return this.domNode\n                    }\n                    getPosition() {\n                        return {\n                            position: this.position,\n                            preference: [0]\n                        }\n                    }\n                }(0, de.Ic)(((e, t) => {\n                    const i = e.getColor(se.N5);\n                    if (i) {\n                        const e = String(i.rgba.a),\n                            n = Q.Il.Format.CSS.format(me(i));\n                        t.addRule(`.monaco-editor .ghost-text-decoration { opacity: ${e} !important; color: ${n} !important; }`), t.addRule(`.monaco-editor .ghost-text-decoration-preview { color: ${i.toString()} !important; }`), t.addRule(`.monaco-editor .suggest-preview-text .ghost-text { opacity: ${e} !important; color: ${n} !important; }`)\n                    }\n                    const n = e.getColor(se.x3);\n                    n && (t.addRule(`.monaco-editor .suggest-preview-text .ghost-text { border: 1px solid ${n}; }`), t.addRule(`.monaco-editor .ghost-text-decoration { border: 1px solid ${n}; }`), t.addRule(`.monaco-editor .ghost-text-decoration-preview { border: 1px solid ${n}; }`))\n                }));\n                var we = i(63580),\n                    ye = i(49989),\n                    Ce = function(e, t, i, n) {\n                        var o, s = arguments.length,\n                            r = s < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n                        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) r = Reflect.decorate(e, t, i, n);\n                        else\n                            for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (r = (s < 3 ? o(r) : s > 3 ? o(t, i, r) : o(t, i)) || r);\n                        return s > 3 && r && Object.defineProperty(t, i, r), r\n                    },\n                    xe = function(e, t) {\n                        return function(i, n) {\n                            t(i, n, e)\n                        }\n                    },\n                    Se = function(e, t, i, n) {\n                        return new(i || (i = Promise))((function(o, s) {\n                            function r(e) {\n                                try {\n                                    l(n.next(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function a(e) {\n                                try {\n                                    l(n.throw(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function l(e) {\n                                var t;\n                                e.done ? o(e.value) : (t = e.value, t instanceof i ? t : new i((function(e) {\n                                    e(t)\n                                }))).then(r, a)\n                            }\n                            l((n = n.apply(e, t || [])).next())\n                        }))\n                    };\n                let ke = class e extends n.JT {\n                    constructor(e, t) {\n                        super(), this.editor = e, this.instantiationService = t, this.triggeredExplicitly = !1, this.activeController = this._register(new n.XK), this._register(this.editor.onDidChangeModel((() => {\n                            this.updateModelController()\n                        }))), this._register(this.editor.onDidChangeConfiguration((e => {\n                            e.hasChanged(105) && this.updateModelController(), e.hasChanged(54) && this.updateModelController()\n                        }))), this.updateModelController()\n                    }\n                    static get(t) {\n                        return t.getContribution(e.ID)\n                    }\n                    get activeModel() {\n                        var e;\n                        return null === (e = this.activeController.value) || void 0 === e ? void 0 : e.model\n                    }\n                    updateModelController() {\n                        const e = this.editor.getOption(105),\n                            t = this.editor.getOption(54);\n                        this.activeController.value = void 0, this.activeController.value = this.editor.hasModel() && (e.preview || t.enabled || this.triggeredExplicitly) ? this.instantiationService.createInstance(Ne, this.editor) : void 0\n                    }\n                    shouldShowHoverAt(e) {\n                        var t;\n                        return (null === (t = this.activeModel) || void 0 === t ? void 0 : t.shouldShowHoverAt(e)) || !1\n                    }\n                    shouldShowHoverAtViewZone(e) {\n                        var t, i;\n                        return (null === (i = null === (t = this.activeController.value) || void 0 === t ? void 0 : t.widget) || void 0 === i ? void 0 : i.shouldShowHoverAtViewZone(e)) || !1\n                    }\n                    trigger() {\n                        var e;\n                        this.triggeredExplicitly = !0, this.activeController.value || this.updateModelController(), null === (e = this.activeModel) || void 0 === e || e.triggerInlineCompletion()\n                    }\n                    commit() {\n                        var e;\n                        null === (e = this.activeModel) || void 0 === e || e.commitInlineCompletion()\n                    }\n                    hide() {\n                        var e;\n                        null === (e = this.activeModel) || void 0 === e || e.hideInlineCompletion()\n                    }\n                    showNextInlineCompletion() {\n                        var e;\n                        null === (e = this.activeModel) || void 0 === e || e.showNextInlineCompletion()\n                    }\n                    showPreviousInlineCompletion() {\n                        var e;\n                        null === (e = this.activeModel) || void 0 === e || e.showPreviousInlineCompletion()\n                    }\n                    hasMultipleInlineCompletions() {\n                        var e;\n                        return Se(this, void 0, void 0, (function*() {\n                            const t = yield null === (e = this.activeModel) || void 0 === e ? void 0 : e.hasMultipleInlineCompletions();\n                            return void 0 !== t && t\n                        }))\n                    }\n                };\n                ke.inlineSuggestionVisible = new le.uy(\"inlineSuggestionVisible\", !1, we.N(\"inlineSuggestionVisible\", \"Whether an inline suggestion is visible\")), ke.inlineSuggestionHasIndentation = new le.uy(\"inlineSuggestionHasIndentation\", !1, we.N(\"inlineSuggestionHasIndentation\", \"Whether the inline suggestion starts with whitespace\")), ke.inlineSuggestionHasIndentationLessThanTabSize = new le.uy(\"inlineSuggestionHasIndentationLessThanTabSize\", !0, we.N(\"inlineSuggestionHasIndentationLessThanTabSize\", \"Whether the inline suggestion starts with whitespace that is less than what would be inserted by tab\")), ke.ID = \"editor.contrib.ghostTextController\", ke = Ce([xe(1, ce.TG)], ke);\n                class Le {\n                    constructor(e) {\n                        this.contextKeyService = e, this.inlineCompletionVisible = ke.inlineSuggestionVisible.bindTo(this.contextKeyService), this.inlineCompletionSuggestsIndentation = ke.inlineSuggestionHasIndentation.bindTo(this.contextKeyService), this.inlineCompletionSuggestsIndentationLessThanTabSize = ke.inlineSuggestionHasIndentationLessThanTabSize.bindTo(this.contextKeyService)\n                    }\n                }\n                let Ne = class extends n.JT {\n                    constructor(e, t, i) {\n                        super(), this.editor = e, this.instantiationService = t, this.contextKeyService = i, this.contextKeys = new Le(this.contextKeyService), this.model = this._register(this.instantiationService.createInstance(q, this.editor)), this.widget = this._register(this.instantiationService.createInstance(pe, this.editor, this.model)), this._register((0, n.OF)((() => {\n                            this.contextKeys.inlineCompletionVisible.set(!1), this.contextKeys.inlineCompletionSuggestsIndentation.set(!1), this.contextKeys.inlineCompletionSuggestsIndentationLessThanTabSize.set(!0)\n                        }))), this._register(this.model.onDidChange((() => {\n                            this.updateContextKeys()\n                        }))), this.updateContextKeys()\n                    }\n                    updateContextKeys() {\n                        var e;\n                        this.contextKeys.inlineCompletionVisible.set(void 0 !== (null === (e = this.model.activeInlineCompletionsModel) || void 0 === e ? void 0 : e.ghostText));\n                        let t = !1,\n                            i = !0;\n                        const n = this.model.inlineCompletionsModel.ghostText;\n                        if (this.model.activeInlineCompletionsModel && n && n.parts.length > 0) {\n                            const {\n                                column: e,\n                                lines: s\n                            } = n.parts[0], a = s[0];\n                            if (e <= this.editor.getModel().getLineIndentColumn(n.lineNumber)) {\n                                let e = (0, o.LC)(a); - 1 === e && (e = a.length - 1), t = e > 0;\n                                const n = this.editor.getModel().getOptions().tabSize;\n                                i = r.i.visibleColumnFromColumn(a, e + 1, n) < n\n                            }\n                        }\n                        this.contextKeys.inlineCompletionSuggestsIndentation.set(t), this.contextKeys.inlineCompletionSuggestsIndentationLessThanTabSize.set(i)\n                    }\n                };\n                Ne = Ce([xe(1, ce.TG), xe(2, le.i6)], Ne);\n                const De = s._l.bindToContribution(ke.get),\n                    Ie = new De({\n                        id: l,\n                        precondition: ke.inlineSuggestionVisible,\n                        handler(e) {\n                            e.commit(), e.editor.focus()\n                        }\n                    });\n                (0, s.fK)(Ie), ye.W.registerKeybindingRule({\n                    primary: 2,\n                    weight: 200,\n                    id: Ie.id,\n                    when: le.Ao.and(Ie.precondition, a.u.tabMovesFocus.toNegated(), ke.inlineSuggestionHasIndentationLessThanTabSize)\n                }), (0, s.fK)(new De({\n                    id: \"editor.action.inlineSuggest.hide\",\n                    precondition: ke.inlineSuggestionVisible,\n                    kbOpts: {\n                        weight: 100,\n                        primary: 9\n                    },\n                    handler(e) {\n                        e.hide()\n                    }\n                }));\n                class Ee extends s.R6 {\n                    constructor() {\n                        super({\n                            id: Ee.ID,\n                            label: we.N(\"action.inlineSuggest.showNext\", \"Show Next Inline Suggestion\"),\n                            alias: \"Show Next Inline Suggestion\",\n                            precondition: le.Ao.and(a.u.writable, ke.inlineSuggestionVisible),\n                            kbOpts: {\n                                weight: 100,\n                                primary: 601\n                            }\n                        })\n                    }\n                    run(e, t) {\n                        return Se(this, void 0, void 0, (function*() {\n                            const e = ke.get(t);\n                            e && (e.showNextInlineCompletion(), t.focus())\n                        }))\n                    }\n                }\n                Ee.ID = \"editor.action.inlineSuggest.showNext\";\n                class Te extends s.R6 {\n                    constructor() {\n                        super({\n                            id: Te.ID,\n                            label: we.N(\"action.inlineSuggest.showPrevious\", \"Show Previous Inline Suggestion\"),\n                            alias: \"Show Previous Inline Suggestion\",\n                            precondition: le.Ao.and(a.u.writable, ke.inlineSuggestionVisible),\n                            kbOpts: {\n                                weight: 100,\n                                primary: 599\n                            }\n                        })\n                    }\n                    run(e, t) {\n                        return Se(this, void 0, void 0, (function*() {\n                            const e = ke.get(t);\n                            e && (e.showPreviousInlineCompletion(), t.focus())\n                        }))\n                    }\n                }\n                Te.ID = \"editor.action.inlineSuggest.showPrevious\";\n                class Me extends s.R6 {\n                    constructor() {\n                        super({\n                            id: \"editor.action.inlineSuggest.trigger\",\n                            label: we.N(\"action.inlineSuggest.trigger\", \"Trigger Inline Suggestion\"),\n                            alias: \"Trigger Inline Suggestion\",\n                            precondition: a.u.writable\n                        })\n                    }\n                    run(e, t) {\n                        return Se(this, void 0, void 0, (function*() {\n                            const e = ke.get(t);\n                            e && e.trigger()\n                        }))\n                    }\n                }(0, s._K)(ke.ID, ke), (0, s.Qr)(Me), (0, s.Qr)(Ee), (0, s.Qr)(Te)\n            },\n            42408: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    AbstractCaseAction: () => j,\n                    AbstractDeleteAllToBoundaryAction: () => B,\n                    AbstractSortLinesAction: () => D,\n                    DeleteAllLeftAction: () => V,\n                    DeleteAllRightAction: () => W,\n                    DeleteDuplicateLinesAction: () => T,\n                    DeleteLinesAction: () => A,\n                    DuplicateSelectionAction: () => L,\n                    IndentLinesAction: () => O,\n                    InsertLineAfterAction: () => F,\n                    InsertLineBeforeAction: () => R,\n                    JoinLinesAction: () => H,\n                    LowerCaseAction: () => $,\n                    SnakeCaseAction: () => Z,\n                    SortLinesAscendingAction: () => I,\n                    SortLinesDescendingAction: () => E,\n                    TitleCaseAction: () => q,\n                    TransposeAction: () => z,\n                    TrimTrailingWhitespaceAction: () => M,\n                    UpperCaseAction: () => U\n                });\n                var n = i(22258),\n                    o = i(18728),\n                    s = i(16830),\n                    r = i(61329),\n                    a = i(97295),\n                    l = i(69386),\n                    c = i(24314);\n                class d {\n                    constructor(e, t) {\n                        this._selection = e, this._cursors = t, this._selectionId = null\n                    }\n                    getEditOperations(e, t) {\n                        let i = function(e, t) {\n                            t.sort(((e, t) => e.lineNumber === t.lineNumber ? e.column - t.column : e.lineNumber - t.lineNumber));\n                            for (let e = t.length - 2; e >= 0; e--) t[e].lineNumber === t[e + 1].lineNumber && t.splice(e, 1);\n                            let i = [],\n                                n = 0,\n                                o = 0,\n                                s = t.length;\n                            for (let r = 1, d = e.getLineCount(); r <= d; r++) {\n                                let d = e.getLineContent(r),\n                                    h = d.length + 1,\n                                    u = 0;\n                                if (o < s && t[o].lineNumber === r && (u = t[o].column, o++, u === h)) continue;\n                                if (0 === d.length) continue;\n                                let g = a.ow(d),\n                                    p = 0;\n                                if (-1 === g) p = 1;\n                                else {\n                                    if (g === d.length - 1) continue;\n                                    p = g + 2\n                                }\n                                p = Math.max(u, p), i[n++] = l.h.delete(new c.e(r, p, r, h))\n                            }\n                            return i\n                        }(e, this._cursors);\n                        for (let e = 0, n = i.length; e < n; e++) {\n                            let n = i[e];\n                            t.addEditOperation(n.range, n.text)\n                        }\n                        this._selectionId = t.trackSelection(this._selection)\n                    }\n                    computeCursorState(e, t) {\n                        return t.getTrackedSelection(this._selectionId)\n                    }\n                }\n                var h = i(23582),\n                    u = i(50187),\n                    g = i(3860),\n                    p = i(29102);\n                class f {\n                    constructor(e, t, i) {\n                        this._selection = e, this._isCopyingDown = t, this._noop = i || !1, this._selectionDirection = 0, this._selectionId = null, this._startLineNumberDelta = 0, this._endLineNumberDelta = 0\n                    }\n                    getEditOperations(e, t) {\n                        let i = this._selection;\n                        this._startLineNumberDelta = 0, this._endLineNumberDelta = 0, i.startLineNumber < i.endLineNumber && 1 === i.endColumn && (this._endLineNumberDelta = 1, i = i.setEndPosition(i.endLineNumber - 1, e.getLineMaxColumn(i.endLineNumber - 1)));\n                        let n = [];\n                        for (let t = i.startLineNumber; t <= i.endLineNumber; t++) n.push(e.getLineContent(t));\n                        const o = n.join(\"\\n\");\n                        \"\" === o && this._isCopyingDown && (this._startLineNumberDelta++, this._endLineNumberDelta++), this._noop ? t.addEditOperation(new c.e(i.endLineNumber, e.getLineMaxColumn(i.endLineNumber), i.endLineNumber + 1, 1), i.endLineNumber === e.getLineCount() ? \"\" : \"\\n\") : this._isCopyingDown ? t.addEditOperation(new c.e(i.startLineNumber, 1, i.startLineNumber, 1), o + \"\\n\") : t.addEditOperation(new c.e(i.endLineNumber, e.getLineMaxColumn(i.endLineNumber), i.endLineNumber, e.getLineMaxColumn(i.endLineNumber)), \"\\n\" + o), this._selectionId = t.trackSelection(i), this._selectionDirection = this._selection.getDirection()\n                    }\n                    computeCursorState(e, t) {\n                        let i = t.getTrackedSelection(this._selectionId);\n                        if (0 !== this._startLineNumberDelta || 0 !== this._endLineNumberDelta) {\n                            let e = i.startLineNumber,\n                                t = i.startColumn,\n                                n = i.endLineNumber,\n                                o = i.endColumn;\n                            0 !== this._startLineNumberDelta && (e += this._startLineNumberDelta, t = 1), 0 !== this._endLineNumberDelta && (n += this._endLineNumberDelta, o = 1), i = g.Y.createWithDirection(e, t, n, o, this._selectionDirection)\n                        }\n                        return i\n                    }\n                }\n                var m = i(10291),\n                    v = i(97354),\n                    _ = i(83831),\n                    b = i(51491);\n                class w {\n                    constructor(e, t, i) {\n                        this._selection = e, this._isMovingDown = t, this._autoIndent = i, this._selectionId = null, this._moveEndLineSelectionShrink = !1\n                    }\n                    getEditOperations(e, t) {\n                        let i = e.getLineCount();\n                        if (this._isMovingDown && this._selection.endLineNumber === i) return void(this._selectionId = t.trackSelection(this._selection));\n                        if (!this._isMovingDown && 1 === this._selection.startLineNumber) return void(this._selectionId = t.trackSelection(this._selection));\n                        this._moveEndPositionDown = !1;\n                        let n = this._selection;\n                        n.startLineNumber < n.endLineNumber && 1 === n.endColumn && (this._moveEndPositionDown = !0, n = n.setEndPosition(n.endLineNumber - 1, e.getLineMaxColumn(n.endLineNumber - 1)));\n                        const {\n                            tabSize: o,\n                            indentSize: s,\n                            insertSpaces: r\n                        } = e.getOptions();\n                        let l = this.buildIndentConverter(o, s, r),\n                            d = {\n                                getLineTokens: t => e.getLineTokens(t),\n                                getLanguageId: () => e.getLanguageId(),\n                                getLanguageIdAtPosition: (t, i) => e.getLanguageIdAtPosition(t, i),\n                                getLineContent: null\n                            };\n                        if (n.startLineNumber === n.endLineNumber && 1 === e.getLineMaxColumn(n.startLineNumber)) {\n                            let i = n.startLineNumber,\n                                o = this._isMovingDown ? i + 1 : i - 1;\n                            1 === e.getLineMaxColumn(o) ? t.addEditOperation(new c.e(1, 1, 1, 1), null) : (t.addEditOperation(new c.e(i, 1, i, 1), e.getLineContent(o)), t.addEditOperation(new c.e(o, 1, o, e.getLineMaxColumn(o)), null)), n = new g.Y(o, 1, o, 1)\n                        } else {\n                            let i, s;\n                            if (this._isMovingDown) {\n                                i = n.endLineNumber + 1, s = e.getLineContent(i), t.addEditOperation(new c.e(i - 1, e.getLineMaxColumn(i - 1), i, e.getLineMaxColumn(i)), null);\n                                let h = s;\n                                if (this.shouldAutoIndent(e, n)) {\n                                    let u = this.matchEnterRule(e, l, o, i, n.startLineNumber - 1);\n                                    if (null !== u) {\n                                        let t = a.V8(e.getLineContent(i)),\n                                            n = u + b.Y(t, o),\n                                            l = b.J(n, o, r);\n                                        h = l + this.trimLeft(s)\n                                    } else {\n                                        d.getLineContent = t => t === n.startLineNumber ? e.getLineContent(i) : e.getLineContent(t);\n                                        let t = _.zu.getGoodIndentForLine(this._autoIndent, d, e.getLanguageIdAtPosition(i, 1), n.startLineNumber, l);\n                                        if (null !== t) {\n                                            let n = a.V8(e.getLineContent(i)),\n                                                l = b.Y(t, o);\n                                            if (l !== b.Y(n, o)) {\n                                                let e = b.J(l, o, r);\n                                                h = e + this.trimLeft(s)\n                                            }\n                                        }\n                                    }\n                                    t.addEditOperation(new c.e(n.startLineNumber, 1, n.startLineNumber, 1), h + \"\\n\");\n                                    let g = this.matchEnterRuleMovingDown(e, l, o, n.startLineNumber, i, h);\n                                    if (null !== g) 0 !== g && this.getIndentEditsOfMovingBlock(e, t, n, o, r, g);\n                                    else {\n                                        d.getLineContent = t => t === n.startLineNumber ? h : t >= n.startLineNumber + 1 && t <= n.endLineNumber + 1 ? e.getLineContent(t - 1) : e.getLineContent(t);\n                                        let s = _.zu.getGoodIndentForLine(this._autoIndent, d, e.getLanguageIdAtPosition(i, 1), n.startLineNumber + 1, l);\n                                        if (null !== s) {\n                                            const i = a.V8(e.getLineContent(n.startLineNumber)),\n                                                l = b.Y(s, o),\n                                                c = b.Y(i, o);\n                                            if (l !== c) {\n                                                const i = l - c;\n                                                this.getIndentEditsOfMovingBlock(e, t, n, o, r, i)\n                                            }\n                                        }\n                                    }\n                                } else t.addEditOperation(new c.e(n.startLineNumber, 1, n.startLineNumber, 1), h + \"\\n\")\n                            } else if (i = n.startLineNumber - 1, s = e.getLineContent(i), t.addEditOperation(new c.e(i, 1, i + 1, 1), null), t.addEditOperation(new c.e(n.endLineNumber, e.getLineMaxColumn(n.endLineNumber), n.endLineNumber, e.getLineMaxColumn(n.endLineNumber)), \"\\n\" + s), this.shouldAutoIndent(e, n)) {\n                                d.getLineContent = t => t === i ? e.getLineContent(n.startLineNumber) : e.getLineContent(t);\n                                let s = this.matchEnterRule(e, l, o, n.startLineNumber, n.startLineNumber - 2);\n                                if (null !== s) 0 !== s && this.getIndentEditsOfMovingBlock(e, t, n, o, r, s);\n                                else {\n                                    let s = _.zu.getGoodIndentForLine(this._autoIndent, d, e.getLanguageIdAtPosition(n.startLineNumber, 1), i, l);\n                                    if (null !== s) {\n                                        let i = a.V8(e.getLineContent(n.startLineNumber)),\n                                            l = b.Y(s, o),\n                                            c = b.Y(i, o);\n                                        if (l !== c) {\n                                            let i = l - c;\n                                            this.getIndentEditsOfMovingBlock(e, t, n, o, r, i)\n                                        }\n                                    }\n                                }\n                            }\n                        }\n                        this._selectionId = t.trackSelection(n)\n                    }\n                    buildIndentConverter(e, t, i) {\n                        return {\n                            shiftIndent: n => m.U.shiftIndent(n, n.length + 1, e, t, i),\n                            unshiftIndent: n => m.U.unshiftIndent(n, n.length + 1, e, t, i)\n                        }\n                    }\n                    parseEnterResult(e, t, i, n, o) {\n                        if (o) {\n                            let s = o.indentation;\n                            o.indentAction === v.wU.None || o.indentAction === v.wU.Indent ? s = o.indentation + o.appendText : o.indentAction === v.wU.IndentOutdent ? s = o.indentation : o.indentAction === v.wU.Outdent && (s = t.unshiftIndent(o.indentation) + o.appendText);\n                            let r = e.getLineContent(n);\n                            if (this.trimLeft(r).indexOf(this.trimLeft(s)) >= 0) {\n                                let o = a.V8(e.getLineContent(n)),\n                                    r = a.V8(s),\n                                    l = _.zu.getIndentMetadata(e, n);\n                                return null !== l && 2 & l && (r = t.unshiftIndent(r)), b.Y(r, i) - b.Y(o, i)\n                            }\n                        }\n                        return null\n                    }\n                    matchEnterRuleMovingDown(e, t, i, n, o, s) {\n                        if (a.ow(s) >= 0) {\n                            let s = e.getLineMaxColumn(o),\n                                r = _.zu.getEnterAction(this._autoIndent, e, new c.e(o, s, o, s));\n                            return this.parseEnterResult(e, t, i, n, r)\n                        } {\n                            let o = n - 1;\n                            for (; o >= 1;) {\n                                let t = e.getLineContent(o);\n                                if (a.ow(t) >= 0) break;\n                                o--\n                            }\n                            if (o < 1 || n > e.getLineCount()) return null;\n                            let s = e.getLineMaxColumn(o),\n                                r = _.zu.getEnterAction(this._autoIndent, e, new c.e(o, s, o, s));\n                            return this.parseEnterResult(e, t, i, n, r)\n                        }\n                    }\n                    matchEnterRule(e, t, i, n, o, s) {\n                        let r = o;\n                        for (; r >= 1;) {\n                            let t;\n                            if (t = r === o && void 0 !== s ? s : e.getLineContent(r), a.ow(t) >= 0) break;\n                            r--\n                        }\n                        if (r < 1 || n > e.getLineCount()) return null;\n                        let l = e.getLineMaxColumn(r),\n                            d = _.zu.getEnterAction(this._autoIndent, e, new c.e(r, l, r, l));\n                        return this.parseEnterResult(e, t, i, n, d)\n                    }\n                    trimLeft(e) {\n                        return e.replace(/^\\s+/, \"\")\n                    }\n                    shouldAutoIndent(e, t) {\n                        if (this._autoIndent < 4) return !1;\n                        if (!e.isCheapToTokenize(t.startLineNumber)) return !1;\n                        let i = e.getLanguageIdAtPosition(t.startLineNumber, 1);\n                        return i === e.getLanguageIdAtPosition(t.endLineNumber, 1) && null !== _.zu.getIndentRulesSupport(i)\n                    }\n                    getIndentEditsOfMovingBlock(e, t, i, n, o, s) {\n                        for (let r = i.startLineNumber; r <= i.endLineNumber; r++) {\n                            let l = e.getLineContent(r),\n                                d = a.V8(l),\n                                h = b.Y(d, n) + s,\n                                u = b.J(h, n, o);\n                            u !== d && (t.addEditOperation(new c.e(r, 1, r, d.length + 1), u), r === i.endLineNumber && i.endColumn <= d.length + 1 && \"\" === u && (this._moveEndLineSelectionShrink = !0))\n                        }\n                    }\n                    computeCursorState(e, t) {\n                        let i = t.getTrackedSelection(this._selectionId);\n                        return this._moveEndPositionDown && (i = i.setEndPosition(i.endLineNumber + 1, 1)), this._moveEndLineSelectionShrink && i.startLineNumber < i.endLineNumber && (i = i.setEndPosition(i.endLineNumber, 2)), i\n                    }\n                }\n                class y {\n                    constructor(e, t) {\n                        this.selection = e, this.descending = t, this.selectionId = null\n                    }\n                    static getCollator() {\n                        return y._COLLATOR || (y._COLLATOR = new Intl.Collator), y._COLLATOR\n                    }\n                    getEditOperations(e, t) {\n                        let i = function(e, t, i) {\n                            let n = C(e, t, i);\n                            if (!n) return null;\n                            return l.h.replace(new c.e(n.startLineNumber, 1, n.endLineNumber, e.getLineMaxColumn(n.endLineNumber)), n.after.join(\"\\n\"))\n                        }(e, this.selection, this.descending);\n                        i && t.addEditOperation(i.range, i.text), this.selectionId = t.trackSelection(this.selection)\n                    }\n                    computeCursorState(e, t) {\n                        return t.getTrackedSelection(this.selectionId)\n                    }\n                    static canRun(e, t, i) {\n                        if (null === e) return !1;\n                        let n = C(e, t, i);\n                        if (!n) return !1;\n                        for (let e = 0, t = n.before.length; e < t; e++)\n                            if (n.before[e] !== n.after[e]) return !0;\n                        return !1\n                    }\n                }\n\n                function C(e, t, i) {\n                    let n = t.startLineNumber,\n                        o = t.endLineNumber;\n                    if (1 === t.endColumn && o--, n >= o) return null;\n                    let s = [];\n                    for (let t = n; t <= o; t++) s.push(e.getLineContent(t));\n                    let r = s.slice(0);\n                    return r.sort(y.getCollator().compare), !0 === i && (r = r.reverse()), {\n                        startLineNumber: n,\n                        endLineNumber: o,\n                        before: s,\n                        after: r\n                    }\n                }\n                y._COLLATOR = null;\n                var x = i(63580),\n                    S = i(84144);\n                class k extends s.R6 {\n                    constructor(e, t) {\n                        super(t), this.down = e\n                    }\n                    run(e, t) {\n                        if (!t.hasModel()) return;\n                        const i = t.getSelections().map(((e, t) => ({\n                            selection: e,\n                            index: t,\n                            ignore: !1\n                        })));\n                        i.sort(((e, t) => c.e.compareRangesUsingStarts(e.selection, t.selection)));\n                        let n = i[0];\n                        for (let e = 1; e < i.length; e++) {\n                            const t = i[e];\n                            n.selection.endLineNumber === t.selection.startLineNumber && (n.index < t.index ? t.ignore = !0 : (n.ignore = !0, n = t))\n                        }\n                        const o = [];\n                        for (const e of i) o.push(new f(e.selection, this.down, e.ignore));\n                        t.pushUndoStop(), t.executeCommands(this.id, o), t.pushUndoStop()\n                    }\n                }\n                class L extends s.R6 {\n                    constructor() {\n                        super({\n                            id: \"editor.action.duplicateSelection\",\n                            label: x.N(\"duplicateSelection\", \"Duplicate Selection\"),\n                            alias: \"Duplicate Selection\",\n                            precondition: p.u.writable,\n                            menuOpts: {\n                                menuId: S.eH.MenubarSelectionMenu,\n                                group: \"2_line\",\n                                title: x.N({\n                                    key: \"miDuplicateSelection\",\n                                    comment: [\"&& denotes a mnemonic\"]\n                                }, \"&&Duplicate Selection\"),\n                                order: 5\n                            }\n                        })\n                    }\n                    run(e, t, i) {\n                        if (!t.hasModel()) return;\n                        const n = [],\n                            o = t.getSelections(),\n                            s = t.getModel();\n                        for (const e of o)\n                            if (e.isEmpty()) n.push(new f(e, !0));\n                            else {\n                                const t = new g.Y(e.endLineNumber, e.endColumn, e.endLineNumber, e.endColumn);\n                                n.push(new r.OY(t, s.getValueInRange(e)))\n                            } t.pushUndoStop(), t.executeCommands(this.id, n), t.pushUndoStop()\n                    }\n                }\n                class N extends s.R6 {\n                    constructor(e, t) {\n                        super(t), this.down = e\n                    }\n                    run(e, t) {\n                        let i = [],\n                            n = t.getSelections() || [];\n                        const o = t.getOption(9);\n                        for (const e of n) i.push(new w(e, this.down, o));\n                        t.pushUndoStop(), t.executeCommands(this.id, i), t.pushUndoStop()\n                    }\n                }\n                class D extends s.R6 {\n                    constructor(e, t) {\n                        super(t), this.descending = e\n                    }\n                    run(e, t) {\n                        const i = t.getSelections() || [];\n                        for (const e of i)\n                            if (!y.canRun(t.getModel(), e, this.descending)) return;\n                        let n = [];\n                        for (let e = 0, t = i.length; e < t; e++) n[e] = new y(i[e], this.descending);\n                        t.pushUndoStop(), t.executeCommands(this.id, n), t.pushUndoStop()\n                    }\n                }\n                class I extends D {\n                    constructor() {\n                        super(!1, {\n                            id: \"editor.action.sortLinesAscending\",\n                            label: x.N(\"lines.sortAscending\", \"Sort Lines Ascending\"),\n                            alias: \"Sort Lines Ascending\",\n                            precondition: p.u.writable\n                        })\n                    }\n                }\n                class E extends D {\n                    constructor() {\n                        super(!0, {\n                            id: \"editor.action.sortLinesDescending\",\n                            label: x.N(\"lines.sortDescending\", \"Sort Lines Descending\"),\n                            alias: \"Sort Lines Descending\",\n                            precondition: p.u.writable\n                        })\n                    }\n                }\n                class T extends s.R6 {\n                    constructor() {\n                        super({\n                            id: \"editor.action.removeDuplicateLines\",\n                            label: x.N(\"lines.deleteDuplicates\", \"Delete Duplicate Lines\"),\n                            alias: \"Delete Duplicate Lines\",\n                            precondition: p.u.writable\n                        })\n                    }\n                    run(e, t) {\n                        if (!t.hasModel()) return;\n                        let i = t.getModel();\n                        if (1 === i.getLineCount() && 1 === i.getLineMaxColumn(1)) return;\n                        let n = [],\n                            o = [],\n                            s = 0;\n                        for (let e of t.getSelections()) {\n                            let t = new Set,\n                                r = [];\n                            for (let n = e.startLineNumber; n <= e.endLineNumber; n++) {\n                                let e = i.getLineContent(n);\n                                t.has(e) || (r.push(e), t.add(e))\n                            }\n                            let a = new g.Y(e.startLineNumber, 1, e.endLineNumber, i.getLineMaxColumn(e.endLineNumber)),\n                                c = e.startLineNumber - s,\n                                d = new g.Y(c, 1, c + r.length - 1, r[r.length - 1].length);\n                            n.push(l.h.replace(a, r.join(\"\\n\"))), o.push(d), s += e.endLineNumber - e.startLineNumber + 1 - r.length\n                        }\n                        t.pushUndoStop(), t.executeEdits(this.id, n, o), t.pushUndoStop()\n                    }\n                }\n                class M extends s.R6 {\n                    constructor() {\n                        super({\n                            id: M.ID,\n                            label: x.N(\"lines.trimTrailingWhitespace\", \"Trim Trailing Whitespace\"),\n                            alias: \"Trim Trailing Whitespace\",\n                            precondition: p.u.writable,\n                            kbOpts: {\n                                kbExpr: p.u.editorTextFocus,\n                                primary: (0, n.gx)(2089, 2102),\n                                weight: 100\n                            }\n                        })\n                    }\n                    run(e, t, i) {\n                        let n = [];\n                        \"auto-save\" === i.reason && (n = (t.getSelections() || []).map((e => new u.L(e.positionLineNumber, e.positionColumn))));\n                        let o = t.getSelection();\n                        if (null === o) return;\n                        let s = new d(o, n);\n                        t.pushUndoStop(), t.executeCommands(this.id, [s]), t.pushUndoStop()\n                    }\n                }\n                M.ID = \"editor.action.trimTrailingWhitespace\";\n                class A extends s.R6 {\n                    constructor() {\n                        super({\n                            id: \"editor.action.deleteLines\",\n                            label: x.N(\"lines.delete\", \"Delete Line\"),\n                            alias: \"Delete Line\",\n                            precondition: p.u.writable,\n                            kbOpts: {\n                                kbExpr: p.u.textInputFocus,\n                                primary: 3113,\n                                weight: 100\n                            }\n                        })\n                    }\n                    run(e, t) {\n                        if (!t.hasModel()) return;\n                        let i = this._getLinesToRemove(t),\n                            n = t.getModel();\n                        if (1 === n.getLineCount() && 1 === n.getLineMaxColumn(1)) return;\n                        let o = 0,\n                            s = [],\n                            r = [];\n                        for (let e = 0, t = i.length; e < t; e++) {\n                            const t = i[e];\n                            let a = t.startLineNumber,\n                                c = t.endLineNumber,\n                                d = 1,\n                                h = n.getLineMaxColumn(c);\n                            c < n.getLineCount() ? (c += 1, h = 1) : a > 1 && (a -= 1, d = n.getLineMaxColumn(a)), s.push(l.h.replace(new g.Y(a, d, c, h), \"\")), r.push(new g.Y(a - o, t.positionColumn, a - o, t.positionColumn)), o += t.endLineNumber - t.startLineNumber + 1\n                        }\n                        t.pushUndoStop(), t.executeEdits(this.id, s, r), t.pushUndoStop()\n                    }\n                    _getLinesToRemove(e) {\n                        let t = e.getSelections().map((e => {\n                            let t = e.endLineNumber;\n                            return e.startLineNumber < e.endLineNumber && 1 === e.endColumn && (t -= 1), {\n                                startLineNumber: e.startLineNumber,\n                                selectionStartColumn: e.selectionStartColumn,\n                                endLineNumber: t,\n                                positionColumn: e.positionColumn\n                            }\n                        }));\n                        t.sort(((e, t) => e.startLineNumber === t.startLineNumber ? e.endLineNumber - t.endLineNumber : e.startLineNumber - t.startLineNumber));\n                        let i = [],\n                            n = t[0];\n                        for (let e = 1; e < t.length; e++) n.endLineNumber + 1 >= t[e].startLineNumber ? n.endLineNumber = t[e].endLineNumber : (i.push(n), n = t[e]);\n                        return i.push(n), i\n                    }\n                }\n                class O extends s.R6 {\n                    constructor() {\n                        super({\n                            id: \"editor.action.indentLines\",\n                            label: x.N(\"lines.indent\", \"Indent Line\"),\n                            alias: \"Indent Line\",\n                            precondition: p.u.writable,\n                            kbOpts: {\n                                kbExpr: p.u.editorTextFocus,\n                                primary: 2137,\n                                weight: 100\n                            }\n                        })\n                    }\n                    run(e, t) {\n                        const i = t._getViewModel();\n                        i && (t.pushUndoStop(), t.executeCommands(this.id, h.u.indent(i.cursorConfig, t.getModel(), t.getSelections())), t.pushUndoStop())\n                    }\n                }\n                class P extends s.R6 {\n                    constructor() {\n                        super({\n                            id: \"editor.action.outdentLines\",\n                            label: x.N(\"lines.outdent\", \"Outdent Line\"),\n                            alias: \"Outdent Line\",\n                            precondition: p.u.writable,\n                            kbOpts: {\n                                kbExpr: p.u.editorTextFocus,\n                                primary: 2135,\n                                weight: 100\n                            }\n                        })\n                    }\n                    run(e, t) {\n                        o.CoreEditingCommands.Outdent.runEditorCommand(e, t, null)\n                    }\n                }\n                class R extends s.R6 {\n                    constructor() {\n                        super({\n                            id: \"editor.action.insertLineBefore\",\n                            label: x.N(\"lines.insertBefore\", \"Insert Line Above\"),\n                            alias: \"Insert Line Above\",\n                            precondition: p.u.writable,\n                            kbOpts: {\n                                kbExpr: p.u.editorTextFocus,\n                                primary: 3075,\n                                weight: 100\n                            }\n                        })\n                    }\n                    run(e, t) {\n                        const i = t._getViewModel();\n                        i && (t.pushUndoStop(), t.executeCommands(this.id, h.u.lineInsertBefore(i.cursorConfig, t.getModel(), t.getSelections())))\n                    }\n                }\n                class F extends s.R6 {\n                    constructor() {\n                        super({\n                            id: \"editor.action.insertLineAfter\",\n                            label: x.N(\"lines.insertAfter\", \"Insert Line Below\"),\n                            alias: \"Insert Line Below\",\n                            precondition: p.u.writable,\n                            kbOpts: {\n                                kbExpr: p.u.editorTextFocus,\n                                primary: 2051,\n                                weight: 100\n                            }\n                        })\n                    }\n                    run(e, t) {\n                        const i = t._getViewModel();\n                        i && (t.pushUndoStop(), t.executeCommands(this.id, h.u.lineInsertAfter(i.cursorConfig, t.getModel(), t.getSelections())))\n                    }\n                }\n                class B extends s.R6 {\n                    run(e, t) {\n                        if (!t.hasModel()) return;\n                        const i = t.getSelection();\n                        let n = this._getRangesToDelete(t),\n                            o = [];\n                        for (let e = 0, t = n.length - 1; e < t; e++) {\n                            let t = n[e],\n                                i = n[e + 1];\n                            null === c.e.intersectRanges(t, i) ? o.push(t) : n[e + 1] = c.e.plusRange(t, i)\n                        }\n                        o.push(n[n.length - 1]);\n                        let s = this._getEndCursorState(i, o),\n                            r = o.map((e => l.h.replace(e, \"\")));\n                        t.pushUndoStop(), t.executeEdits(this.id, r, s), t.pushUndoStop()\n                    }\n                }\n                class V extends B {\n                    constructor() {\n                        super({\n                            id: \"deleteAllLeft\",\n                            label: x.N(\"lines.deleteAllLeft\", \"Delete All Left\"),\n                            alias: \"Delete All Left\",\n                            precondition: p.u.writable,\n                            kbOpts: {\n                                kbExpr: p.u.textInputFocus,\n                                primary: 0,\n                                mac: {\n                                    primary: 2049\n                                },\n                                weight: 100\n                            }\n                        })\n                    }\n                    _getEndCursorState(e, t) {\n                        let i = null,\n                            n = [],\n                            o = 0;\n                        return t.forEach((t => {\n                            let s;\n                            if (1 === t.endColumn && o > 0) {\n                                let e = t.startLineNumber - o;\n                                s = new g.Y(e, t.startColumn, e, t.startColumn)\n                            } else s = new g.Y(t.startLineNumber, t.startColumn, t.startLineNumber, t.startColumn);\n                            o += t.endLineNumber - t.startLineNumber, t.intersectRanges(e) ? i = s : n.push(s)\n                        })), i && n.unshift(i), n\n                    }\n                    _getRangesToDelete(e) {\n                        let t = e.getSelections();\n                        if (null === t) return [];\n                        let i = t,\n                            n = e.getModel();\n                        return null === n ? [] : (i.sort(c.e.compareRangesUsingStarts), i = i.map((e => {\n                            if (e.isEmpty()) {\n                                if (1 === e.startColumn) {\n                                    let t = Math.max(1, e.startLineNumber - 1),\n                                        i = 1 === e.startLineNumber ? 1 : n.getLineContent(t).length + 1;\n                                    return new c.e(t, i, e.startLineNumber, 1)\n                                }\n                                return new c.e(e.startLineNumber, 1, e.startLineNumber, e.startColumn)\n                            }\n                            return new c.e(e.startLineNumber, 1, e.endLineNumber, e.endColumn)\n                        })), i)\n                    }\n                }\n                class W extends B {\n                    constructor() {\n                        super({\n                            id: \"deleteAllRight\",\n                            label: x.N(\"lines.deleteAllRight\", \"Delete All Right\"),\n                            alias: \"Delete All Right\",\n                            precondition: p.u.writable,\n                            kbOpts: {\n                                kbExpr: p.u.textInputFocus,\n                                primary: 0,\n                                mac: {\n                                    primary: 297,\n                                    secondary: [2068]\n                                },\n                                weight: 100\n                            }\n                        })\n                    }\n                    _getEndCursorState(e, t) {\n                        let i = null,\n                            n = [];\n                        for (let o = 0, s = t.length, r = 0; o < s; o++) {\n                            let s = t[o],\n                                a = new g.Y(s.startLineNumber - r, s.startColumn, s.startLineNumber - r, s.startColumn);\n                            s.intersectRanges(e) ? i = a : n.push(a)\n                        }\n                        return i && n.unshift(i), n\n                    }\n                    _getRangesToDelete(e) {\n                        let t = e.getModel();\n                        if (null === t) return [];\n                        let i = e.getSelections();\n                        if (null === i) return [];\n                        let n = i.map((e => {\n                            if (e.isEmpty()) {\n                                const i = t.getLineMaxColumn(e.startLineNumber);\n                                return e.startColumn === i ? new c.e(e.startLineNumber, e.startColumn, e.startLineNumber + 1, 1) : new c.e(e.startLineNumber, e.startColumn, e.startLineNumber, i)\n                            }\n                            return e\n                        }));\n                        return n.sort(c.e.compareRangesUsingStarts), n\n                    }\n                }\n                class H extends s.R6 {\n                    constructor() {\n                        super({\n                            id: \"editor.action.joinLines\",\n                            label: x.N(\"lines.joinLines\", \"Join Lines\"),\n                            alias: \"Join Lines\",\n                            precondition: p.u.writable,\n                            kbOpts: {\n                                kbExpr: p.u.editorTextFocus,\n                                primary: 0,\n                                mac: {\n                                    primary: 296\n                                },\n                                weight: 100\n                            }\n                        })\n                    }\n                    run(e, t) {\n                        let i = t.getSelections();\n                        if (null === i) return;\n                        let n = t.getSelection();\n                        if (null === n) return;\n                        i.sort(c.e.compareRangesUsingStarts);\n                        let o = [],\n                            s = i.reduce(((e, t) => e.isEmpty() ? e.endLineNumber === t.startLineNumber ? (n.equalsSelection(e) && (n = t), t) : t.startLineNumber > e.endLineNumber + 1 ? (o.push(e), t) : new g.Y(e.startLineNumber, e.startColumn, t.endLineNumber, t.endColumn) : t.startLineNumber > e.endLineNumber ? (o.push(e), t) : new g.Y(e.startLineNumber, e.startColumn, t.endLineNumber, t.endColumn)));\n                        o.push(s);\n                        let r = t.getModel();\n                        if (null === r) return;\n                        let a = [],\n                            d = [],\n                            h = n,\n                            u = 0;\n                        for (let e = 0, t = o.length; e < t; e++) {\n                            let t, i, s = o[e],\n                                p = s.startLineNumber,\n                                f = 1,\n                                m = 0,\n                                v = r.getLineContent(s.endLineNumber).length - s.endColumn;\n                            if (s.isEmpty() || s.startLineNumber === s.endLineNumber) {\n                                let e = s.getStartPosition();\n                                e.lineNumber < r.getLineCount() ? (t = p + 1, i = r.getLineMaxColumn(t)) : (t = e.lineNumber, i = r.getLineMaxColumn(e.lineNumber))\n                            } else t = s.endLineNumber, i = r.getLineMaxColumn(t);\n                            let _ = r.getLineContent(p);\n                            for (let e = p + 1; e <= t; e++) {\n                                let t = r.getLineContent(e),\n                                    i = r.getLineFirstNonWhitespaceColumn(e);\n                                if (i >= 1) {\n                                    let e = !0;\n                                    \"\" === _ && (e = !1), !e || \" \" !== _.charAt(_.length - 1) && \"\\t\" !== _.charAt(_.length - 1) || (e = !1, _ = _.replace(/[\\s\\uFEFF\\xA0]+$/g, \" \"));\n                                    let n = t.substr(i - 1);\n                                    _ += (e ? \" \" : \"\") + n, m = e ? n.length + 1 : n.length\n                                } else m = 0\n                            }\n                            let b = new c.e(p, f, t, i);\n                            if (!b.isEmpty()) {\n                                let e;\n                                s.isEmpty() ? (a.push(l.h.replace(b, _)), e = new g.Y(b.startLineNumber - u, _.length - m + 1, p - u, _.length - m + 1)) : s.startLineNumber === s.endLineNumber ? (a.push(l.h.replace(b, _)), e = new g.Y(s.startLineNumber - u, s.startColumn, s.endLineNumber - u, s.endColumn)) : (a.push(l.h.replace(b, _)), e = new g.Y(s.startLineNumber - u, s.startColumn, s.startLineNumber - u, _.length - v)), null !== c.e.intersectRanges(b, n) ? h = e : d.push(e)\n                            }\n                            u += b.endLineNumber - b.startLineNumber\n                        }\n                        d.unshift(h), t.pushUndoStop(), t.executeEdits(this.id, a, d), t.pushUndoStop()\n                    }\n                }\n                class z extends s.R6 {\n                    constructor() {\n                        super({\n                            id: \"editor.action.transpose\",\n                            label: x.N(\"editor.transpose\", \"Transpose characters around the cursor\"),\n                            alias: \"Transpose characters around the cursor\",\n                            precondition: p.u.writable\n                        })\n                    }\n                    run(e, t) {\n                        let i = t.getSelections();\n                        if (null === i) return;\n                        let n = t.getModel();\n                        if (null === n) return;\n                        let o = [];\n                        for (let e = 0, t = i.length; e < t; e++) {\n                            let t = i[e];\n                            if (!t.isEmpty()) continue;\n                            let s = t.getStartPosition(),\n                                a = n.getLineMaxColumn(s.lineNumber);\n                            if (s.column >= a) {\n                                if (s.lineNumber === n.getLineCount()) continue;\n                                let e = new c.e(s.lineNumber, Math.max(1, s.column - 1), s.lineNumber + 1, 1),\n                                    t = n.getValueInRange(e).split(\"\").reverse().join(\"\");\n                                o.push(new r.T4(new g.Y(s.lineNumber, Math.max(1, s.column - 1), s.lineNumber + 1, 1), t))\n                            } else {\n                                let e = new c.e(s.lineNumber, Math.max(1, s.column - 1), s.lineNumber, s.column + 1),\n                                    t = n.getValueInRange(e).split(\"\").reverse().join(\"\");\n                                o.push(new r.hP(e, t, new g.Y(s.lineNumber, s.column + 1, s.lineNumber, s.column + 1)))\n                            }\n                        }\n                        t.pushUndoStop(), t.executeCommands(this.id, o), t.pushUndoStop()\n                    }\n                }\n                class j extends s.R6 {\n                    run(e, t) {\n                        const i = t.getSelections();\n                        if (null === i) return;\n                        const n = t.getModel();\n                        if (null === n) return;\n                        const o = t.getOption(115),\n                            s = [];\n                        for (const e of i)\n                            if (e.isEmpty()) {\n                                const i = e.getStartPosition(),\n                                    r = t.getConfiguredWordAtPosition(i);\n                                if (!r) continue;\n                                const a = new c.e(i.lineNumber, r.startColumn, i.lineNumber, r.endColumn),\n                                    d = n.getValueInRange(a);\n                                s.push(l.h.replace(a, this._modifyText(d, o)))\n                            } else {\n                                const t = n.getValueInRange(e);\n                                s.push(l.h.replace(e, this._modifyText(t, o)))\n                            } t.pushUndoStop(), t.executeEdits(this.id, s), t.pushUndoStop()\n                    }\n                }\n                class U extends j {\n                    constructor() {\n                        super({\n                            id: \"editor.action.transformToUppercase\",\n                            label: x.N(\"editor.transformToUppercase\", \"Transform to Uppercase\"),\n                            alias: \"Transform to Uppercase\",\n                            precondition: p.u.writable\n                        })\n                    }\n                    _modifyText(e, t) {\n                        return e.toLocaleUpperCase()\n                    }\n                }\n                class $ extends j {\n                    constructor() {\n                        super({\n                            id: \"editor.action.transformToLowercase\",\n                            label: x.N(\"editor.transformToLowercase\", \"Transform to Lowercase\"),\n                            alias: \"Transform to Lowercase\",\n                            precondition: p.u.writable\n                        })\n                    }\n                    _modifyText(e, t) {\n                        return e.toLocaleLowerCase()\n                    }\n                }\n                class K {\n                    constructor(e, t) {\n                        this._pattern = e, this._flags = t, this._actual = null, this._evaluated = !1\n                    }\n                    get() {\n                        if (!this._evaluated) {\n                            this._evaluated = !0;\n                            try {\n                                this._actual = new RegExp(this._pattern, this._flags)\n                            } catch (e) {}\n                        }\n                        return this._actual\n                    }\n                    isSupported() {\n                        return null !== this.get()\n                    }\n                }\n                class q extends j {\n                    constructor() {\n                        super({\n                            id: \"editor.action.transformToTitlecase\",\n                            label: x.N(\"editor.transformToTitlecase\", \"Transform to Title Case\"),\n                            alias: \"Transform to Title Case\",\n                            precondition: p.u.writable\n                        })\n                    }\n                    _modifyText(e, t) {\n                        const i = q.titleBoundary.get();\n                        return i ? e.toLocaleLowerCase().replace(i, (e => e.toLocaleUpperCase())) : e\n                    }\n                }\n                q.titleBoundary = new K(\"(^|[^\\\\p{L}\\\\p{N}']|((^|\\\\P{L})'))\\\\p{L}\", \"gmu\");\n                class Z extends j {\n                    constructor() {\n                        super({\n                            id: \"editor.action.transformToSnakecase\",\n                            label: x.N(\"editor.transformToSnakecase\", \"Transform to Snake Case\"),\n                            alias: \"Transform to Snake Case\",\n                            precondition: p.u.writable\n                        })\n                    }\n                    _modifyText(e, t) {\n                        const i = Z.caseBoundary.get(),\n                            n = Z.singleLetters.get();\n                        return i && n ? e.replace(i, \"$1_$2\").replace(n, \"$1_$2$3\").toLocaleLowerCase() : e\n                    }\n                }\n                Z.caseBoundary = new K(\"(\\\\p{Ll})(\\\\p{Lu})\", \"gmu\"), Z.singleLetters = new K(\"(\\\\p{Lu}|\\\\p{N})(\\\\p{Lu})(\\\\p{Ll})\", \"gmu\"), (0, s.Qr)(class extends k {\n                    constructor() {\n                        super(!1, {\n                            id: \"editor.action.copyLinesUpAction\",\n                            label: x.N(\"lines.copyUp\", \"Copy Line Up\"),\n                            alias: \"Copy Line Up\",\n                            precondition: p.u.writable,\n                            kbOpts: {\n                                kbExpr: p.u.editorTextFocus,\n                                primary: 1552,\n                                linux: {\n                                    primary: 3600\n                                },\n                                weight: 100\n                            },\n                            menuOpts: {\n                                menuId: S.eH.MenubarSelectionMenu,\n                                group: \"2_line\",\n                                title: x.N({\n                                    key: \"miCopyLinesUp\",\n                                    comment: [\"&& denotes a mnemonic\"]\n                                }, \"&&Copy Line Up\"),\n                                order: 1\n                            }\n                        })\n                    }\n                }), (0, s.Qr)(class extends k {\n                    constructor() {\n                        super(!0, {\n                            id: \"editor.action.copyLinesDownAction\",\n                            label: x.N(\"lines.copyDown\", \"Copy Line Down\"),\n                            alias: \"Copy Line Down\",\n                            precondition: p.u.writable,\n                            kbOpts: {\n                                kbExpr: p.u.editorTextFocus,\n                                primary: 1554,\n                                linux: {\n                                    primary: 3602\n                                },\n                                weight: 100\n                            },\n                            menuOpts: {\n                                menuId: S.eH.MenubarSelectionMenu,\n                                group: \"2_line\",\n                                title: x.N({\n                                    key: \"miCopyLinesDown\",\n                                    comment: [\"&& denotes a mnemonic\"]\n                                }, \"Co&&py Line Down\"),\n                                order: 2\n                            }\n                        })\n                    }\n                }), (0, s.Qr)(L), (0, s.Qr)(class extends N {\n                    constructor() {\n                        super(!1, {\n                            id: \"editor.action.moveLinesUpAction\",\n                            label: x.N(\"lines.moveUp\", \"Move Line Up\"),\n                            alias: \"Move Line Up\",\n                            precondition: p.u.writable,\n                            kbOpts: {\n                                kbExpr: p.u.editorTextFocus,\n                                primary: 528,\n                                linux: {\n                                    primary: 528\n                                },\n                                weight: 100\n                            },\n                            menuOpts: {\n                                menuId: S.eH.MenubarSelectionMenu,\n                                group: \"2_line\",\n                                title: x.N({\n                                    key: \"miMoveLinesUp\",\n                                    comment: [\"&& denotes a mnemonic\"]\n                                }, \"Mo&&ve Line Up\"),\n                                order: 3\n                            }\n                        })\n                    }\n                }), (0, s.Qr)(class extends N {\n                    constructor() {\n                        super(!0, {\n                            id: \"editor.action.moveLinesDownAction\",\n                            label: x.N(\"lines.moveDown\", \"Move Line Down\"),\n                            alias: \"Move Line Down\",\n                            precondition: p.u.writable,\n                            kbOpts: {\n                                kbExpr: p.u.editorTextFocus,\n                                primary: 530,\n                                linux: {\n                                    primary: 530\n                                },\n                                weight: 100\n                            },\n                            menuOpts: {\n                                menuId: S.eH.MenubarSelectionMenu,\n                                group: \"2_line\",\n                                title: x.N({\n                                    key: \"miMoveLinesDown\",\n                                    comment: [\"&& denotes a mnemonic\"]\n                                }, \"Move &&Line Down\"),\n                                order: 4\n                            }\n                        })\n                    }\n                }), (0, s.Qr)(I), (0, s.Qr)(E), (0, s.Qr)(T), (0, s.Qr)(M), (0, s.Qr)(A), (0, s.Qr)(O), (0, s.Qr)(P), (0, s.Qr)(R), (0, s.Qr)(F), (0, s.Qr)(V), (0, s.Qr)(W), (0, s.Qr)(H), (0, s.Qr)(z), (0, s.Qr)(U), (0, s.Qr)($), Z.caseBoundary.isSupported() && Z.singleLetters.isSupported() && (0, s.Qr)(Z), q.titleBoundary.isSupported() && (0, s.Qr)(q)\n            },\n            80674: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    CONTEXT_ONTYPE_RENAME_INPUT_VISIBLE: () => L,\n                    LinkedEditingAction: () => I,\n                    LinkedEditingContribution: () => D,\n                    editorLinkedEditingBackground: () => M\n                });\n                var n = i(9488),\n                    o = i(15393),\n                    s = i(71050),\n                    r = i(41264),\n                    a = i(17301),\n                    l = i(5976),\n                    c = i(97295),\n                    d = i(70666),\n                    h = i(16830),\n                    u = i(11640),\n                    g = i(50187),\n                    p = i(24314),\n                    f = i(29102),\n                    m = i(44174),\n                    v = i(44101),\n                    _ = i(83831),\n                    b = i(63580),\n                    w = i(38819),\n                    y = i(73910),\n                    C = i(97781),\n                    x = function(e, t, i, n) {\n                        var o, s = arguments.length,\n                            r = s < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n                        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) r = Reflect.decorate(e, t, i, n);\n                        else\n                            for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (r = (s < 3 ? o(r) : s > 3 ? o(t, i, r) : o(t, i)) || r);\n                        return s > 3 && r && Object.defineProperty(t, i, r), r\n                    },\n                    S = function(e, t) {\n                        return function(i, n) {\n                            t(i, n, e)\n                        }\n                    },\n                    k = function(e, t, i, n) {\n                        return new(i || (i = Promise))((function(o, s) {\n                            function r(e) {\n                                try {\n                                    l(n.next(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function a(e) {\n                                try {\n                                    l(n.throw(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function l(e) {\n                                var t;\n                                e.done ? o(e.value) : (t = e.value, t instanceof i ? t : new i((function(e) {\n                                    e(t)\n                                }))).then(r, a)\n                            }\n                            l((n = n.apply(e, t || [])).next())\n                        }))\n                    };\n                const L = new w.uy(\"LinkedEditingInputVisible\", !1),\n                    N = \"linked-editing-decoration\";\n                let D = class e extends l.JT {\n                    constructor(e, t) {\n                        super(), this._debounceDuration = 200, this._localToDispose = this._register(new l.SL), this._editor = e, this._enabled = !1, this._visibleContextKey = L.bindTo(t), this._currentDecorations = [], this._languageWordPattern = null, this._currentWordPattern = null, this._ignoreChangeEvent = !1, this._localToDispose = this._register(new l.SL), this._rangeUpdateTriggerPromise = null, this._rangeSyncTriggerPromise = null, this._currentRequest = null, this._currentRequestPosition = null, this._currentRequestModelVersion = null, this._register(this._editor.onDidChangeModel((() => this.reinitialize(!0)))), this._register(this._editor.onDidChangeConfiguration((e => {\n                            (e.hasChanged(61) || e.hasChanged(81)) && this.reinitialize(!1)\n                        }))), this._register(v.id.onDidChange((() => this.reinitialize(!1)))), this._register(this._editor.onDidChangeModelLanguage((() => this.reinitialize(!0)))), this.reinitialize(!0)\n                    }\n                    static get(t) {\n                        return t.getContribution(e.ID)\n                    }\n                    reinitialize(e) {\n                        const t = this._editor.getModel(),\n                            i = null !== t && (this._editor.getOption(61) || this._editor.getOption(81)) && v.id.has(t);\n                        if (i === this._enabled && !e) return;\n                        if (this._enabled = i, this.clearRanges(), this._localToDispose.clear(), !i || null === t) return;\n                        this._languageWordPattern = _.zu.getWordDefinition(t.getLanguageId()), this._localToDispose.add(t.onDidChangeLanguageConfiguration((() => {\n                            this._languageWordPattern = _.zu.getWordDefinition(t.getLanguageId())\n                        })));\n                        const n = new o.vp(this._debounceDuration),\n                            s = () => {\n                                this._rangeUpdateTriggerPromise = n.trigger((() => this.updateRanges()), this._debounceDuration)\n                            },\n                            r = new o.vp(0),\n                            a = e => {\n                                this._rangeSyncTriggerPromise = r.trigger((() => this._syncRanges(e)))\n                            };\n                        this._localToDispose.add(this._editor.onDidChangeCursorPosition((() => {\n                            s()\n                        }))), this._localToDispose.add(this._editor.onDidChangeModelContent((e => {\n                            if (!this._ignoreChangeEvent && this._currentDecorations.length > 0) {\n                                const i = t.getDecorationRange(this._currentDecorations[0]);\n                                if (i && e.changes.every((e => i.intersectRanges(e.range)))) return void a(this._currentDecorations)\n                            }\n                            s()\n                        }))), this._localToDispose.add({\n                            dispose: () => {\n                                n.cancel(), r.cancel()\n                            }\n                        }), this.updateRanges()\n                    }\n                    _syncRanges(e) {\n                        if (!this._editor.hasModel() || e !== this._currentDecorations || 0 === e.length) return;\n                        const t = this._editor.getModel(),\n                            i = t.getDecorationRange(e[0]);\n                        if (!i || i.startLineNumber !== i.endLineNumber) return this.clearRanges();\n                        const n = t.getValueInRange(i);\n                        if (this._currentWordPattern) {\n                            const e = n.match(this._currentWordPattern);\n                            if ((e ? e[0].length : 0) !== n.length) return this.clearRanges()\n                        }\n                        let o = [];\n                        for (let i = 1, s = e.length; i < s; i++) {\n                            const s = t.getDecorationRange(e[i]);\n                            if (s)\n                                if (s.startLineNumber !== s.endLineNumber) o.push({\n                                    range: s,\n                                    text: n\n                                });\n                                else {\n                                    let e = t.getValueInRange(s),\n                                        i = n,\n                                        r = s.startColumn,\n                                        a = s.endColumn;\n                                    const l = c.Mh(e, i);\n                                    r += l, e = e.substr(l), i = i.substr(l);\n                                    const d = c.P1(e, i);\n                                    a -= d, e = e.substr(0, e.length - d), i = i.substr(0, i.length - d), r === a && 0 === i.length || o.push({\n                                        range: new p.e(s.startLineNumber, r, s.endLineNumber, a),\n                                        text: i\n                                    })\n                                }\n                        }\n                        if (0 !== o.length) try {\n                            this._editor.popUndoStop(), this._ignoreChangeEvent = !0;\n                            const e = this._editor._getViewModel().getPrevEditOperationType();\n                            this._editor.executeEdits(\"linkedEditing\", o), this._editor._getViewModel().setPrevEditOperationType(e)\n                        } finally {\n                            this._ignoreChangeEvent = !1\n                        }\n                    }\n                    dispose() {\n                        this.clearRanges(), super.dispose()\n                    }\n                    clearRanges() {\n                        this._visibleContextKey.set(!1), this._currentDecorations = this._editor.deltaDecorations(this._currentDecorations, []), this._currentRequest && (this._currentRequest.cancel(), this._currentRequest = null, this._currentRequestPosition = null)\n                    }\n                    updateRanges(t = !1) {\n                        return k(this, void 0, void 0, (function*() {\n                            if (!this._editor.hasModel()) return void this.clearRanges();\n                            const i = this._editor.getPosition();\n                            if (!this._enabled && !t || this._editor.getSelections().length > 1) return void this.clearRanges();\n                            const n = this._editor.getModel(),\n                                s = n.getVersionId();\n                            if (this._currentRequestPosition && this._currentRequestModelVersion === s) {\n                                if (i.equals(this._currentRequestPosition)) return;\n                                if (this._currentDecorations && this._currentDecorations.length > 0) {\n                                    const e = n.getDecorationRange(this._currentDecorations[0]);\n                                    if (e && e.containsPosition(i)) return\n                                }\n                            }\n                            this._currentRequestPosition = i, this._currentRequestModelVersion = s;\n                            const r = (0, o.PG)((t => k(this, void 0, void 0, (function*() {\n                                try {\n                                    const o = yield T(n, i, t);\n                                    if (r !== this._currentRequest) return;\n                                    if (this._currentRequest = null, s !== n.getVersionId()) return;\n                                    let a = [];\n                                    (null == o ? void 0 : o.ranges) && (a = o.ranges), this._currentWordPattern = (null == o ? void 0 : o.wordPattern) || this._languageWordPattern;\n                                    let l = !1;\n                                    for (let e = 0, t = a.length; e < t; e++)\n                                        if (p.e.containsPosition(a[e], i)) {\n                                            if (l = !0, 0 !== e) {\n                                                const t = a[e];\n                                                a.splice(e, 1), a.unshift(t)\n                                            }\n                                            break\n                                        } if (!l) return void this.clearRanges();\n                                    const c = a.map((t => ({\n                                        range: t,\n                                        options: e.DECORATION\n                                    })));\n                                    this._visibleContextKey.set(!0), this._currentDecorations = this._editor.deltaDecorations(this._currentDecorations, c)\n                                } catch (e) {\n                                    (0, a.VV)(e) || (0, a.dL)(e), this._currentRequest !== r && this._currentRequest || this.clearRanges()\n                                }\n                            }))));\n                            return this._currentRequest = r, r\n                        }))\n                    }\n                };\n                D.ID = \"editor.contrib.linkedEditing\", D.DECORATION = m.qx.register({\n                    description: \"linked-editing\",\n                    stickiness: 0,\n                    className: N\n                }), D = x([S(1, w.i6)], D);\n                class I extends h.R6 {\n                    constructor() {\n                        super({\n                            id: \"editor.action.linkedEditing\",\n                            label: b.N(\"linkedEditing.label\", \"Start Linked Editing\"),\n                            alias: \"Start Linked Editing\",\n                            precondition: w.Ao.and(f.u.writable, f.u.hasRenameProvider),\n                            kbOpts: {\n                                kbExpr: f.u.editorTextFocus,\n                                primary: 3132,\n                                weight: 100\n                            }\n                        })\n                    }\n                    runCommand(e, t) {\n                        const i = e.get(u.$),\n                            [n, o] = Array.isArray(t) && t || [void 0, void 0];\n                        return d.o.isUri(n) && g.L.isIPosition(o) ? i.openCodeEditor({\n                            resource: n\n                        }, i.getActiveCodeEditor()).then((e => {\n                            e && (e.setPosition(o), e.invokeWithinContext((t => (this.reportTelemetry(t, e), this.run(t, e)))))\n                        }), a.dL) : super.runCommand(e, t)\n                    }\n                    run(e, t) {\n                        const i = D.get(t);\n                        return i ? Promise.resolve(i.updateRanges(!0)) : Promise.resolve()\n                    }\n                }\n                const E = h._l.bindToContribution(D.get);\n\n                function T(e, t, i) {\n                    const s = v.id.ordered(e);\n                    return (0, o.Ps)(s.map((n => () => k(this, void 0, void 0, (function*() {\n                        try {\n                            return yield n.provideLinkedEditingRanges(e, t, i)\n                        } catch (e) {\n                            return void(0, a.Cp)(e)\n                        }\n                    })))), (e => !!e && n.Of(null == e ? void 0 : e.ranges)))\n                }(0, h.fK)(new E({\n                    id: \"cancelLinkedEditingInput\",\n                    precondition: L,\n                    handler: e => e.clearRanges(),\n                    kbOpts: {\n                        kbExpr: f.u.editorTextFocus,\n                        weight: 199,\n                        primary: 9,\n                        secondary: [1033]\n                    }\n                }));\n                const M = (0, y.P6)(\"editor.linkedEditingBackground\", {\n                    dark: r.Il.fromHex(\"#f00\").transparent(.3),\n                    light: r.Il.fromHex(\"#f00\").transparent(.3),\n                    hc: r.Il.fromHex(\"#f00\").transparent(.3)\n                }, b.N(\"editorLinkedEditingBackground\", \"Background color when the editor auto renames on type.\"));\n                (0, C.Ic)(((e, t) => {\n                    const i = e.getColor(M);\n                    i && t.addRule(`.monaco-editor .${N} { background: ${i}; border-left-color: ${i}; }`)\n                })), (0, h.sb)(\"_executeLinkedEditingProvider\", ((e, t) => T(e, t, s.T.None))), (0, h._K)(D.ID, D), (0, h.Qr)(I)\n            },\n            34800: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    LinkDetector: () => P\n                });\n                var n = i(15393),\n                    o = i(71050),\n                    s = i(17301),\n                    r = i(59365),\n                    a = i(5976),\n                    l = i(66663),\n                    c = i(1432),\n                    d = i(95935),\n                    h = i(70666),\n                    u = (i(59072), i(16830)),\n                    g = i(44174),\n                    p = i(44101),\n                    f = i(69241),\n                    m = i(9488),\n                    v = i(98401),\n                    _ = i(24314),\n                    b = i(51200),\n                    w = i(94565),\n                    y = function(e, t, i, n) {\n                        return new(i || (i = Promise))((function(o, s) {\n                            function r(e) {\n                                try {\n                                    l(n.next(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function a(e) {\n                                try {\n                                    l(n.throw(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function l(e) {\n                                var t;\n                                e.done ? o(e.value) : (t = e.value, t instanceof i ? t : new i((function(e) {\n                                    e(t)\n                                }))).then(r, a)\n                            }\n                            l((n = n.apply(e, t || [])).next())\n                        }))\n                    };\n                class C {\n                    constructor(e, t) {\n                        this._link = e, this._provider = t\n                    }\n                    toJSON() {\n                        return {\n                            range: this.range,\n                            url: this.url,\n                            tooltip: this.tooltip\n                        }\n                    }\n                    get range() {\n                        return this._link.range\n                    }\n                    get url() {\n                        return this._link.url\n                    }\n                    get tooltip() {\n                        return this._link.tooltip\n                    }\n                    resolve(e) {\n                        return y(this, void 0, void 0, (function*() {\n                            return this._link.url ? this._link.url : \"function\" == typeof this._provider.resolveLink ? Promise.resolve(this._provider.resolveLink(this._link, e)).then((t => (this._link = t || this._link, this._link.url ? this.resolve(e) : Promise.reject(new Error(\"missing\"))))) : Promise.reject(new Error(\"missing\"))\n                        }))\n                    }\n                }\n                class x {\n                    constructor(e) {\n                        this._disposables = new a.SL;\n                        let t = [];\n                        for (const [i, n] of e) {\n                            const e = i.links.map((e => new C(e, n)));\n                            t = x._union(t, e), (0, a.Wf)(i) && this._disposables.add(i)\n                        }\n                        this.links = t\n                    }\n                    dispose() {\n                        this._disposables.dispose(), this.links.length = 0\n                    }\n                    static _union(e, t) {\n                        let i, n, o, s, r = [];\n                        for (i = 0, o = 0, n = e.length, s = t.length; i < n && o < s;) {\n                            const n = e[i],\n                                s = t[o];\n                            if (_.e.areIntersectingOrTouching(n.range, s.range)) {\n                                i++;\n                                continue\n                            }\n                            _.e.compareRangesUsingStarts(n.range, s.range) < 0 ? (r.push(n), i++) : (r.push(s), o++)\n                        }\n                        for (; i < n; i++) r.push(e[i]);\n                        for (; o < s; o++) r.push(t[o]);\n                        return r\n                    }\n                }\n\n                function S(e, t) {\n                    const i = [],\n                        n = p.pM.ordered(e).reverse().map(((n, o) => Promise.resolve(n.provideLinks(e, t)).then((e => {\n                            e && (i[o] = [e, n])\n                        }), s.Cp)));\n                    return Promise.all(n).then((() => {\n                        const e = new x((0, m.kX)(i));\n                        return t.isCancellationRequested ? (e.dispose(), new x([])) : e\n                    }))\n                }\n                w.P.registerCommand(\"_executeLinkProvider\", ((e, ...t) => y(void 0, void 0, void 0, (function*() {\n                    let [i, n] = t;\n                    (0, v.p_)(i instanceof h.o), \"number\" != typeof n && (n = 0);\n                    const s = e.get(b.q).getModel(i);\n                    if (!s) return [];\n                    const r = yield S(s, o.T.None);\n                    if (!r) return [];\n                    for (let e = 0; e < Math.min(n, r.links.length); e++) yield r.links[e].resolve(o.T.None);\n                    const a = r.links.slice(0);\n                    return r.dispose(), a\n                }))));\n                var k = i(63580),\n                    L = i(59422),\n                    N = i(50988),\n                    D = i(73910),\n                    I = i(97781),\n                    E = function(e, t, i, n) {\n                        var o, s = arguments.length,\n                            r = s < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n                        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) r = Reflect.decorate(e, t, i, n);\n                        else\n                            for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (r = (s < 3 ? o(r) : s > 3 ? o(t, i, r) : o(t, i)) || r);\n                        return s > 3 && r && Object.defineProperty(t, i, r), r\n                    },\n                    T = function(e, t) {\n                        return function(i, n) {\n                            t(i, n, e)\n                        }\n                    },\n                    M = function(e, t, i, n) {\n                        return new(i || (i = Promise))((function(o, s) {\n                            function r(e) {\n                                try {\n                                    l(n.next(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function a(e) {\n                                try {\n                                    l(n.throw(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function l(e) {\n                                var t;\n                                e.done ? o(e.value) : (t = e.value, t instanceof i ? t : new i((function(e) {\n                                    e(t)\n                                }))).then(r, a)\n                            }\n                            l((n = n.apply(e, t || [])).next())\n                        }))\n                    };\n                const A = {\n                    general: g.qx.register({\n                        description: \"detected-link\",\n                        stickiness: 1,\n                        collapseOnReplaceEdit: !0,\n                        inlineClassName: \"detected-link\"\n                    }),\n                    active: g.qx.register({\n                        description: \"detected-link-active\",\n                        stickiness: 1,\n                        collapseOnReplaceEdit: !0,\n                        inlineClassName: \"detected-link-active\"\n                    })\n                };\n                class O {\n                    constructor(e, t) {\n                        this.link = e, this.decorationId = t\n                    }\n                    static decoration(e, t) {\n                        return {\n                            range: e.range,\n                            options: O._getOptions(e, t, !1)\n                        }\n                    }\n                    static _getOptions(e, t, i) {\n                        const n = Object.assign({}, i ? A.active : A.general);\n                        const Lg = new Language(modifyState.language);\n                        return n.hoverMessage = function(e, t) {\n                            const i = e.url && /^command:/i.test(e.url.toString()),\n                                n = e.tooltip ? e.tooltip : i ? k.N(\"links.navigate.executeCmd\", Lg.executeCommand()) : k.N(\"links.navigate.follow\", Lg.followLink()),\n                                o = t ? c.dz ? k.N(\"links.navigate.kb.meta.mac\", \"cmd + click\") : k.N(\"links.navigate.kb.meta\", \"ctrl + click\") : c.dz ? k.N(\"links.navigate.kb.alt.mac\", \"option + click\") : k.N(\"links.navigate.kb.alt\", \"alt + click\");\n                            if (e.url) {\n                                let t = \"\";\n                                if (/^command:/i.test(e.url.toString())) {\n                                    const i = e.url.toString().match(/^command:([^?#]+)/);\n                                    if (i) {\n                                        const e = i[1];\n                                        t = ` \"${k.N(\"tooltip.explanation\",\"Execute command {0}\",e)}\"`\n                                    }\n                                }\n                                return new r.W5(\"\", !0).appendMarkdown(`[${n}](${e.url.toString(!0).replace(/ /g,\"%20\")}${t}) (${o})`)\n                            }\n                            return (new r.W5).appendText(`${n} (${o})`)\n                        }(e, t), n\n                    }\n                    activate(e, t) {\n                        e.changeDecorationOptions(this.decorationId, O._getOptions(this.link, t, !0))\n                    }\n                    deactivate(e, t) {\n                        e.changeDecorationOptions(this.decorationId, O._getOptions(this.link, t, !1))\n                    }\n                }\n                let P = class e {\n                    constructor(e, t, i) {\n                        this.listenersToRemove = new a.SL, this.editor = e, this.openerService = t, this.notificationService = i;\n                        let o = new f.yN(e);\n                        this.listenersToRemove.add(o), this.listenersToRemove.add(o.onMouseMoveOrRelevantKeyDown((([e, t]) => {\n                            this._onEditorMouseMove(e, t)\n                        }))), this.listenersToRemove.add(o.onExecute((e => {\n                            this.onEditorMouseUp(e)\n                        }))), this.listenersToRemove.add(o.onCancel((e => {\n                            this.cleanUpActiveLinkDecoration()\n                        }))), this.enabled = e.getOption(62), this.listenersToRemove.add(e.onDidChangeConfiguration((t => {\n                            const i = e.getOption(62);\n                            this.enabled !== i && (this.enabled = i, this.updateDecorations([]), this.stop(), this.beginCompute())\n                        }))), this.listenersToRemove.add(e.onDidChangeModelContent((e => this.onChange()))), this.listenersToRemove.add(e.onDidChangeModel((e => this.onModelChanged()))), this.listenersToRemove.add(e.onDidChangeModelLanguage((e => this.onModelModeChanged()))), this.listenersToRemove.add(p.pM.onDidChange((e => this.onModelModeChanged()))), this.timeout = new n._F, this.computePromise = null, this.activeLinksList = null, this.currentOccurrences = {}, this.activeLinkDecorationId = null, this.beginCompute()\n                    }\n                    static get(t) {\n                        return t.getContribution(e.ID)\n                    }\n                    onModelChanged() {\n                        this.currentOccurrences = {}, this.activeLinkDecorationId = null, this.stop(), this.beginCompute()\n                    }\n                    onModelModeChanged() {\n                        this.stop(), this.beginCompute()\n                    }\n                    onChange() {\n                        this.timeout.setIfNotSet((() => this.beginCompute()), e.RECOMPUTE_TIME)\n                    }\n                    beginCompute() {\n                        return M(this, void 0, void 0, (function*() {\n                            if (!this.editor.hasModel() || !this.enabled) return;\n                            const e = this.editor.getModel();\n                            if (p.pM.has(e)) {\n                                this.activeLinksList && (this.activeLinksList.dispose(), this.activeLinksList = null), this.computePromise = n.PG((t => S(e, t)));\n                                try {\n                                    this.activeLinksList = yield this.computePromise, this.updateDecorations(this.activeLinksList.links)\n                                } catch (e) {\n                                    (0, s.dL)(e)\n                                } finally {\n                                    this.computePromise = null\n                                }\n                            }\n                        }))\n                    }\n                    updateDecorations(e) {\n                        const t = \"altKey\" === this.editor.getOption(69);\n                        let i = [],\n                            n = Object.keys(this.currentOccurrences);\n                        for (let e = 0, t = n.length; e < t; e++) {\n                            let t = n[e],\n                                o = this.currentOccurrences[t];\n                            i.push(o.decorationId)\n                        }\n                        let o = [];\n                        if (e)\n                            for (const i of e) o.push(O.decoration(i, t));\n                        let s = this.editor.deltaDecorations(i, o);\n                        this.currentOccurrences = {}, this.activeLinkDecorationId = null;\n                        for (let t = 0, i = s.length; t < i; t++) {\n                            let i = new O(e[t], s[t]);\n                            this.currentOccurrences[i.decorationId] = i\n                        }\n                    }\n                    _onEditorMouseMove(e, t) {\n                        const i = \"altKey\" === this.editor.getOption(69);\n                        if (this.isEnabled(e, t)) {\n                            this.cleanUpActiveLinkDecoration();\n                            const t = this.getLinkOccurrence(e.target.position);\n                            t && this.editor.changeDecorations((e => {\n                                t.activate(e, i), this.activeLinkDecorationId = t.decorationId\n                            }))\n                        } else this.cleanUpActiveLinkDecoration()\n                    }\n                    cleanUpActiveLinkDecoration() {\n                        const e = \"altKey\" === this.editor.getOption(69);\n                        if (this.activeLinkDecorationId) {\n                            const t = this.currentOccurrences[this.activeLinkDecorationId];\n                            t && this.editor.changeDecorations((i => {\n                                t.deactivate(i, e)\n                            })), this.activeLinkDecorationId = null\n                        }\n                    }\n                    onEditorMouseUp(e) {\n                        if (!this.isEnabled(e)) return;\n                        const t = this.getLinkOccurrence(e.target.position);\n                        t && this.openLinkOccurrence(t, e.hasSideBySideModifier, !0)\n                    }\n                    openLinkOccurrence(e, t, i = !1) {\n                        if (!this.openerService) return;\n                        const {\n                            link: n\n                        } = e;\n                        n.resolve(o.T.None).then((e => {\n                            if (\"string\" == typeof e && this.editor.hasModel()) {\n                                const t = this.editor.getModel().uri;\n                                if (t.scheme === l.lg.file && e.startsWith(`${l.lg.file}:`)) {\n                                    const i = h.o.parse(e);\n                                    if (i.scheme === l.lg.file) {\n                                        const n = d.z_(i);\n                                        let o = null;\n                                        n.startsWith(\"/./\") ? o = `.${n.substr(1)}` : n.startsWith(\"//./\") && (o = `.${n.substr(2)}`), o && (e = d.Vo(t, o))\n                                    }\n                                }\n                            }\n                            return this.openerService.open(e, {\n                                openToSide: t,\n                                fromUserGesture: i,\n                                allowContributedOpeners: !0,\n                                allowCommands: !0\n                            })\n                        }), (e => {\n                            const t = e instanceof Error ? e.message : e;\n                            \"invalid\" === t ? this.notificationService.warn(k.N(\"invalid.url\", \"Failed to open this link because it is not well-formed: {0}\", n.url.toString())) : \"missing\" === t ? this.notificationService.warn(k.N(\"missing.url\", \"Failed to open this link because its target is missing.\")) : (0, s.dL)(e)\n                        }))\n                    }\n                    getLinkOccurrence(e) {\n                        if (!this.editor.hasModel() || !e) return null;\n                        const t = this.editor.getModel().getDecorationsInRange({\n                            startLineNumber: e.lineNumber,\n                            startColumn: e.column,\n                            endLineNumber: e.lineNumber,\n                            endColumn: e.column\n                        }, 0, !0);\n                        for (const e of t) {\n                            const t = this.currentOccurrences[e.id];\n                            if (t) return t\n                        }\n                        return null\n                    }\n                    isEnabled(e, t) {\n                        return Boolean(6 === e.target.type && (e.hasTriggerModifier || t && t.keyCodeIsTriggerKey))\n                    }\n                    stop() {\n                        var e;\n                        this.timeout.cancel(), this.activeLinksList && (null === (e = this.activeLinksList) || void 0 === e || e.dispose(), this.activeLinksList = null), this.computePromise && (this.computePromise.cancel(), this.computePromise = null)\n                    }\n                    dispose() {\n                        this.listenersToRemove.dispose(), this.stop(), this.timeout.dispose()\n                    }\n                };\n                P.ID = \"editor.linkDetector\", P.RECOMPUTE_TIME = 1e3, P = E([T(1, N.v4), T(2, L.lT)], P);\n                class R extends u.R6 {\n                    constructor() {\n                        super({\n                            id: \"editor.action.openLink\",\n                            label: k.N(\"label\", \"Open Link\"),\n                            alias: \"Open Link\",\n                            precondition: void 0\n                        })\n                    }\n                    run(e, t) {\n                        let i = P.get(t);\n                        if (!i) return;\n                        if (!t.hasModel()) return;\n                        let n = t.getSelections();\n                        for (let e of n) {\n                            let t = i.getLinkOccurrence(e.getEndPosition());\n                            t && i.openLinkOccurrence(t, !1)\n                        }\n                    }\n                }(0, u._K)(P.ID, P), (0, u.Qr)(R), (0, I.Ic)(((e, t) => {\n                    const i = e.getColor(D._Y);\n                    i && t.addRule(`.monaco-editor .detected-link-active { color: ${i} !important; }`)\n                }))\n            },\n            82276: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    O: () => f\n                });\n                var n = i(85152),\n                    o = i(15393),\n                    s = i(5976),\n                    r = (i(27189), i(16830)),\n                    a = i(24314),\n                    l = i(63580),\n                    c = i(38819),\n                    d = i(73910),\n                    h = i(92321),\n                    u = i(97781),\n                    g = function(e, t, i, n) {\n                        var o, s = arguments.length,\n                            r = s < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n                        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) r = Reflect.decorate(e, t, i, n);\n                        else\n                            for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (r = (s < 3 ? o(r) : s > 3 ? o(t, i, r) : o(t, i)) || r);\n                        return s > 3 && r && Object.defineProperty(t, i, r), r\n                    },\n                    p = function(e, t) {\n                        return function(i, n) {\n                            t(i, n, e)\n                        }\n                    };\n                const Lg = new Language(modifyState.language);\n                let f = class e {\n                    constructor(t, i) {\n                        this._messageWidget = new s.XK, this._messageListeners = new s.SL, this._editor = t, this._visible = e.MESSAGE_VISIBLE.bindTo(i), this._editorListener = this._editor.onDidAttemptReadOnlyEdit((() => this._onDidAttemptReadOnlyEdit()))\n                    }\n                    static get(t) {\n                        return t.getContribution(e.ID)\n                    }\n                    dispose() {\n                        this._editorListener.dispose(), this._messageListeners.dispose(), this._messageWidget.dispose(), this._visible.reset()\n                    }\n                    showMessage(e, t) {\n                        let i;\n                        (0, n.Z9)(e), this._visible.set(!0), this._messageWidget.clear(), this._messageListeners.clear(), this._messageWidget.value = new v(this._editor, t, e), this._messageListeners.add(this._editor.onDidBlurEditorText((() => 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(new o._F((() => this.closeMessage()), 3e3)), this._messageListeners.add(this._editor.onMouseMove((e => {\n                            e.target.position && (i ? i.containsPosition(e.target.position) || this.closeMessage() : i = new a.e(t.lineNumber - 3, 1, e.target.position.lineNumber + 3, 1))\n                        })))\n                    }\n                    closeMessage() {\n                        this._visible.reset(), this._messageListeners.clear(), this._messageWidget.value && this._messageListeners.add(v.fadeOut(this._messageWidget.value))\n                    }\n                    _onDidAttemptReadOnlyEdit() {\n                        this._editor.hasModel() && this.showMessage(l.N(\"editor.readonly\", Lg.cannotEditReadOnlyEditor()), this._editor.getPosition())\n                    }\n                };\n                f.ID = \"editor.contrib.messageController\", f.MESSAGE_VISIBLE = new c.uy(\"messageVisible\", !1, l.N(\"messageVisible\", \"Whether the editor is currently showing an inline message\")), f = g([p(1, c.i6)], f);\n                const m = r._l.bindToContribution(f.get);\n                (0, r.fK)(new m({\n                    id: \"leaveEditorMessage\",\n                    precondition: f.MESSAGE_VISIBLE,\n                    handler: e => e.closeMessage(),\n                    kbOpts: {\n                        weight: 130,\n                        primary: 9\n                    }\n                }));\n                class v {\n                    constructor(e, {\n                        lineNumber: t,\n                        column: i\n                    }, n) {\n                        this.allowEditorOverflow = !0, this.suppressMouseDown = !1, this._editor = e, this._editor.revealLinesInCenterIfOutsideViewport(t, t, 0), this._position = {\n                            lineNumber: t,\n                            column: i - 1\n                        }, this._domNode = document.createElement(\"div\"), this._domNode.classList.add(\"monaco-editor-overlaymessage\");\n                        const o = document.createElement(\"div\");\n                        o.classList.add(\"anchor\", \"top\"), this._domNode.appendChild(o);\n                        const s = document.createElement(\"div\");\n                        s.classList.add(\"message\"), s.textContent = n, this._domNode.appendChild(s);\n                        const r = document.createElement(\"div\");\n                        r.classList.add(\"anchor\", \"below\"), this._domNode.appendChild(r), this._editor.addContentWidget(this), this._domNode.classList.add(\"fadeIn\")\n                    }\n                    static fadeOut(e) {\n                        let t;\n                        const i = () => {\n                            e.dispose(), clearTimeout(t), e.getDomNode().removeEventListener(\"animationend\", i)\n                        };\n                        return t = setTimeout(i, 110), e.getDomNode().addEventListener(\"animationend\", i), e.getDomNode().classList.add(\"fadeOut\"), {\n                            dispose: i\n                        }\n                    }\n                    dispose() {\n                        this._editor.removeContentWidget(this)\n                    }\n                    getId() {\n                        return \"messageoverlay\"\n                    }\n                    getDomNode() {\n                        return this._domNode\n                    }\n                    getPosition() {\n                        return {\n                            position: this._position,\n                            preference: [1, 2]\n                        }\n                    }\n                    afterRender(e) {\n                        this._domNode.classList.toggle(\"below\", 2 === e)\n                    }\n                }(0, r._K)(f.ID, f), (0, u.Ic)(((e, t) => {\n                    const i = e.getColor(d.EP);\n                    if (i) {\n                        let n = e.type === h.e.HIGH_CONTRAST ? 2 : 1;\n                        t.addRule(`.monaco-editor .monaco-editor-overlaymessage .anchor.below { border-top-color: ${i}; }`), t.addRule(`.monaco-editor .monaco-editor-overlaymessage .anchor.top { border-bottom-color: ${i}; }`), t.addRule(`.monaco-editor .monaco-editor-overlaymessage .message { border: ${n}px solid ${i}; }`)\n                    }\n                    const n = e.getColor(d._l);\n                    n && t.addRule(`.monaco-editor .monaco-editor-overlaymessage .message { background-color: ${n}; }`);\n                    const o = e.getColor(d.YI);\n                    o && t.addRule(`.monaco-editor .monaco-editor-overlaymessage .message { color: ${o}; }`)\n                }))\n            },\n            38486: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    AddSelectionToNextFindMatchAction: () => T,\n                    AddSelectionToPreviousFindMatchAction: () => M,\n                    CompatChangeAll: () => R,\n                    InsertCursorAbove: () => C,\n                    InsertCursorBelow: () => x,\n                    MoveSelectionToNextFindMatchAction: () => A,\n                    MoveSelectionToPreviousFindMatchAction: () => O,\n                    MultiCursorSelectionController: () => I,\n                    MultiCursorSelectionControllerAction: () => E,\n                    MultiCursorSession: () => D,\n                    MultiCursorSessionResult: () => N,\n                    SelectHighlightsAction: () => P,\n                    SelectionHighlighter: () => B\n                });\n                var n = i(85152),\n                    o = i(15393),\n                    s = i(22258),\n                    r = i(5976),\n                    a = i(16830),\n                    l = i(83814),\n                    c = i(24314),\n                    d = i(3860),\n                    h = i(29102),\n                    u = i(84973),\n                    g = i(44174),\n                    p = i(44101),\n                    f = i(92142),\n                    m = i(63580),\n                    v = i(84144),\n                    _ = i(38819),\n                    b = i(73910),\n                    w = i(97781);\n\n                function y(e, t) {\n                    const i = t.filter((t => !e.find((e => e.equals(t)))));\n                    if (i.length >= 1) {\n                        const e = i.map((e => `line ${e.viewState.position.lineNumber} column ${e.viewState.position.column}`)).join(\", \"),\n                            t = 1 === i.length ? m.N(\"cursorAdded\", \"Cursor added: {0}\", e) : m.N(\"cursorsAdded\", \"Cursors added: {0}\", e);\n                        (0, n.i7)(t)\n                    }\n                }\n                class C extends a.R6 {\n                    constructor() {\n                        super({\n                            id: \"editor.action.insertCursorAbove\",\n                            label: m.N(\"mutlicursor.insertAbove\", \"Add Cursor Above\"),\n                            alias: \"Add Cursor Above\",\n                            precondition: void 0,\n                            kbOpts: {\n                                kbExpr: h.u.editorTextFocus,\n                                primary: 2576,\n                                linux: {\n                                    primary: 1552,\n                                    secondary: [3088]\n                                },\n                                weight: 100\n                            },\n                            menuOpts: {\n                                menuId: v.eH.MenubarSelectionMenu,\n                                group: \"3_multi\",\n                                title: m.N({\n                                    key: \"miInsertCursorAbove\",\n                                    comment: [\"&& denotes a mnemonic\"]\n                                }, \"&&Add Cursor Above\"),\n                                order: 2\n                            }\n                        })\n                    }\n                    run(e, t, i) {\n                        if (!t.hasModel()) return;\n                        let n = !0;\n                        i && !1 === i.logicalLine && (n = !1);\n                        const o = t._getViewModel();\n                        if (o.cursorConfig.readOnly) return;\n                        o.pushStackElement();\n                        const s = o.getCursorStates();\n                        o.setCursorStates(i.source, 3, l.P.addCursorUp(o, s, n)), o.revealTopMostCursor(i.source), y(s, o.getCursorStates())\n                    }\n                }\n                class x extends a.R6 {\n                    constructor() {\n                        super({\n                            id: \"editor.action.insertCursorBelow\",\n                            label: m.N(\"mutlicursor.insertBelow\", \"Add Cursor Below\"),\n                            alias: \"Add Cursor Below\",\n                            precondition: void 0,\n                            kbOpts: {\n                                kbExpr: h.u.editorTextFocus,\n                                primary: 2578,\n                                linux: {\n                                    primary: 1554,\n                                    secondary: [3090]\n                                },\n                                weight: 100\n                            },\n                            menuOpts: {\n                                menuId: v.eH.MenubarSelectionMenu,\n                                group: \"3_multi\",\n                                title: m.N({\n                                    key: \"miInsertCursorBelow\",\n                                    comment: [\"&& denotes a mnemonic\"]\n                                }, \"A&&dd Cursor Below\"),\n                                order: 3\n                            }\n                        })\n                    }\n                    run(e, t, i) {\n                        if (!t.hasModel()) return;\n                        let n = !0;\n                        i && !1 === i.logicalLine && (n = !1);\n                        const o = t._getViewModel();\n                        if (o.cursorConfig.readOnly) return;\n                        o.pushStackElement();\n                        const s = o.getCursorStates();\n                        o.setCursorStates(i.source, 3, l.P.addCursorDown(o, s, n)), o.revealBottomMostCursor(i.source), y(s, o.getCursorStates())\n                    }\n                }\n                class S extends a.R6 {\n                    constructor() {\n                        super({\n                            id: \"editor.action.insertCursorAtEndOfEachLineSelected\",\n                            label: m.N(\"mutlicursor.insertAtEndOfEachLineSelected\", \"Add Cursors to Line Ends\"),\n                            alias: \"Add Cursors to Line Ends\",\n                            precondition: void 0,\n                            kbOpts: {\n                                kbExpr: h.u.editorTextFocus,\n                                primary: 1575,\n                                weight: 100\n                            },\n                            menuOpts: {\n                                menuId: v.eH.MenubarSelectionMenu,\n                                group: \"3_multi\",\n                                title: m.N({\n                                    key: \"miInsertCursorAtEndOfEachLineSelected\",\n                                    comment: [\"&& denotes a mnemonic\"]\n                                }, \"Add C&&ursors to Line Ends\"),\n                                order: 4\n                            }\n                        })\n                    }\n                    getCursorsForSelection(e, t, i) {\n                        if (!e.isEmpty()) {\n                            for (let n = e.startLineNumber; n < e.endLineNumber; n++) {\n                                let e = t.getLineMaxColumn(n);\n                                i.push(new d.Y(n, e, n, e))\n                            }\n                            e.endColumn > 1 && i.push(new d.Y(e.endLineNumber, e.endColumn, e.endLineNumber, e.endColumn))\n                        }\n                    }\n                    run(e, t) {\n                        if (!t.hasModel()) return;\n                        const i = t.getModel(),\n                            n = t.getSelections(),\n                            o = t._getViewModel(),\n                            s = o.getCursorStates();\n                        let r = [];\n                        n.forEach((e => this.getCursorsForSelection(e, i, r))), r.length > 0 && t.setSelections(r), y(s, o.getCursorStates())\n                    }\n                }\n                class k extends a.R6 {\n                    constructor() {\n                        super({\n                            id: \"editor.action.addCursorsToBottom\",\n                            label: m.N(\"mutlicursor.addCursorsToBottom\", \"Add Cursors To Bottom\"),\n                            alias: \"Add Cursors To Bottom\",\n                            precondition: void 0\n                        })\n                    }\n                    run(e, t) {\n                        if (!t.hasModel()) return;\n                        const i = t.getSelections(),\n                            n = t.getModel().getLineCount();\n                        let o = [];\n                        for (let e = i[0].startLineNumber; e <= n; e++) o.push(new d.Y(e, i[0].startColumn, e, i[0].endColumn));\n                        const s = t._getViewModel(),\n                            r = s.getCursorStates();\n                        o.length > 0 && t.setSelections(o), y(r, s.getCursorStates())\n                    }\n                }\n                class L extends a.R6 {\n                    constructor() {\n                        super({\n                            id: \"editor.action.addCursorsToTop\",\n                            label: m.N(\"mutlicursor.addCursorsToTop\", \"Add Cursors To Top\"),\n                            alias: \"Add Cursors To Top\",\n                            precondition: void 0\n                        })\n                    }\n                    run(e, t) {\n                        if (!t.hasModel()) return;\n                        const i = t.getSelections();\n                        let n = [];\n                        for (let e = i[0].startLineNumber; e >= 1; e--) n.push(new d.Y(e, i[0].startColumn, e, i[0].endColumn));\n                        const o = t._getViewModel(),\n                            s = o.getCursorStates();\n                        n.length > 0 && t.setSelections(n), y(s, o.getCursorStates())\n                    }\n                }\n                class N {\n                    constructor(e, t, i) {\n                        this.selections = e, this.revealRange = t, this.revealScrollType = i\n                    }\n                }\n                class D {\n                    constructor(e, t, i, n, o, s, r) {\n                        this._editor = e, this.findController = t, this.isDisconnectedFromFindController = i, this.searchText = n, this.wholeWord = o, this.matchCase = s, this.currentMatch = r\n                    }\n                    static create(e, t) {\n                        if (!e.hasModel()) return null;\n                        const i = t.getState();\n                        if (!e.hasTextFocus() && i.isRevealed && i.searchString.length > 0) return new D(e, t, !1, i.searchString, i.wholeWord, i.matchCase, null);\n                        let n, o, s = !1;\n                        const r = e.getSelections();\n                        1 === r.length && r[0].isEmpty() ? (s = !0, n = !0, o = !0) : (n = i.wholeWord, o = i.matchCase);\n                        const a = e.getSelection();\n                        let l, c = null;\n                        if (a.isEmpty()) {\n                            const t = e.getConfiguredWordAtPosition(a.getStartPosition());\n                            if (!t) return null;\n                            l = t.word, c = new d.Y(a.startLineNumber, t.startColumn, a.startLineNumber, t.endColumn)\n                        } else l = e.getModel().getValueInRange(a).replace(/\\r\\n/g, \"\\n\");\n                        return new D(e, t, s, l, n, o, c)\n                    }\n                    addSelectionToNextFindMatch() {\n                        if (!this._editor.hasModel()) return null;\n                        const e = this._getNextMatch();\n                        if (!e) return null;\n                        const t = this._editor.getSelections();\n                        return new N(t.concat(e), e, 0)\n                    }\n                    moveSelectionToNextFindMatch() {\n                        if (!this._editor.hasModel()) return null;\n                        const e = this._getNextMatch();\n                        if (!e) return null;\n                        const t = this._editor.getSelections();\n                        return new N(t.slice(0, t.length - 1).concat(e), e, 0)\n                    }\n                    _getNextMatch() {\n                        if (!this._editor.hasModel()) return null;\n                        if (this.currentMatch) {\n                            const e = this.currentMatch;\n                            return this.currentMatch = null, e\n                        }\n                        this.findController.highlightFindOptions();\n                        const e = this._editor.getSelections(),\n                            t = e[e.length - 1],\n                            i = this._editor.getModel().findNextMatch(this.searchText, t.getEndPosition(), !1, this.matchCase, this.wholeWord ? this._editor.getOption(115) : null, !1);\n                        return i ? new d.Y(i.range.startLineNumber, i.range.startColumn, i.range.endLineNumber, i.range.endColumn) : null\n                    }\n                    addSelectionToPreviousFindMatch() {\n                        if (!this._editor.hasModel()) return null;\n                        const e = this._getPreviousMatch();\n                        if (!e) return null;\n                        const t = this._editor.getSelections();\n                        return new N(t.concat(e), e, 0)\n                    }\n                    moveSelectionToPreviousFindMatch() {\n                        if (!this._editor.hasModel()) return null;\n                        const e = this._getPreviousMatch();\n                        if (!e) return null;\n                        const t = this._editor.getSelections();\n                        return new N(t.slice(0, t.length - 1).concat(e), e, 0)\n                    }\n                    _getPreviousMatch() {\n                        if (!this._editor.hasModel()) return null;\n                        if (this.currentMatch) {\n                            const e = this.currentMatch;\n                            return this.currentMatch = null, e\n                        }\n                        this.findController.highlightFindOptions();\n                        const e = this._editor.getSelections(),\n                            t = e[e.length - 1],\n                            i = this._editor.getModel().findPreviousMatch(this.searchText, t.getStartPosition(), !1, this.matchCase, this.wholeWord ? this._editor.getOption(115) : null, !1);\n                        return i ? new d.Y(i.range.startLineNumber, i.range.startColumn, i.range.endLineNumber, i.range.endColumn) : null\n                    }\n                    selectAll() {\n                        return this._editor.hasModel() ? (this.findController.highlightFindOptions(), this._editor.getModel().findMatches(this.searchText, !0, !1, this.matchCase, this.wholeWord ? this._editor.getOption(115) : null, !1, 1073741824)) : []\n                    }\n                }\n                class I extends r.JT {\n                    constructor(e) {\n                        super(), this._sessionDispose = this._register(new r.SL), this._editor = e, this._ignoreSelectionChange = !1, this._session = null\n                    }\n                    static get(e) {\n                        return e.getContribution(I.ID)\n                    }\n                    dispose() {\n                        this._endSession(), super.dispose()\n                    }\n                    _beginSessionIfNeeded(e) {\n                        if (!this._session) {\n                            const t = D.create(this._editor, e);\n                            if (!t) return;\n                            this._session = t;\n                            const i = {\n                                searchString: this._session.searchText\n                            };\n                            this._session.isDisconnectedFromFindController && (i.wholeWordOverride = 1, i.matchCaseOverride = 1, i.isRegexOverride = 2), e.getState().change(i, !1), this._sessionDispose.add(this._editor.onDidChangeCursorSelection((e => {\n                                this._ignoreSelectionChange || this._endSession()\n                            }))), this._sessionDispose.add(this._editor.onDidBlurEditorText((() => {\n                                this._endSession()\n                            }))), this._sessionDispose.add(e.getState().onFindReplaceStateChange((e => {\n                                (e.matchCase || e.wholeWord) && this._endSession()\n                            })))\n                        }\n                    }\n                    _endSession() {\n                        if (this._sessionDispose.clear(), this._session && this._session.isDisconnectedFromFindController) {\n                            const e = {\n                                wholeWordOverride: 0,\n                                matchCaseOverride: 0,\n                                isRegexOverride: 0\n                            };\n                            this._session.findController.getState().change(e, !1)\n                        }\n                        this._session = null\n                    }\n                    _setSelections(e) {\n                        this._ignoreSelectionChange = !0, this._editor.setSelections(e), this._ignoreSelectionChange = !1\n                    }\n                    _expandEmptyToWord(e, t) {\n                        if (!t.isEmpty()) return t;\n                        const i = this._editor.getConfiguredWordAtPosition(t.getStartPosition());\n                        return i ? new d.Y(t.startLineNumber, i.startColumn, t.startLineNumber, i.endColumn) : t\n                    }\n                    _applySessionResult(e) {\n                        e && (this._setSelections(e.selections), e.revealRange && this._editor.revealRangeInCenterIfOutsideViewport(e.revealRange, e.revealScrollType))\n                    }\n                    getSession(e) {\n                        return this._session\n                    }\n                    addSelectionToNextFindMatch(e) {\n                        if (this._editor.hasModel()) {\n                            if (!this._session) {\n                                const t = this._editor.getSelections();\n                                if (t.length > 1) {\n                                    const i = e.getState().matchCase;\n                                    if (!V(this._editor.getModel(), t, i)) {\n                                        const e = this._editor.getModel();\n                                        let i = [];\n                                        for (let n = 0, o = t.length; n < o; n++) i[n] = this._expandEmptyToWord(e, t[n]);\n                                        return void this._editor.setSelections(i)\n                                    }\n                                }\n                            }\n                            this._beginSessionIfNeeded(e), this._session && this._applySessionResult(this._session.addSelectionToNextFindMatch())\n                        }\n                    }\n                    addSelectionToPreviousFindMatch(e) {\n                        this._beginSessionIfNeeded(e), this._session && this._applySessionResult(this._session.addSelectionToPreviousFindMatch())\n                    }\n                    moveSelectionToNextFindMatch(e) {\n                        this._beginSessionIfNeeded(e), this._session && this._applySessionResult(this._session.moveSelectionToNextFindMatch())\n                    }\n                    moveSelectionToPreviousFindMatch(e) {\n                        this._beginSessionIfNeeded(e), this._session && this._applySessionResult(this._session.moveSelectionToPreviousFindMatch())\n                    }\n                    selectAll(e) {\n                        if (!this._editor.hasModel()) return;\n                        let t = null;\n                        const i = e.getState();\n                        if (i.isRevealed && i.searchString.length > 0 && i.isRegex) t = this._editor.getModel().findMatches(i.searchString, !0, i.isRegex, i.matchCase, i.wholeWord ? this._editor.getOption(115) : null, !1, 1073741824);\n                        else {\n                            if (this._beginSessionIfNeeded(e), !this._session) return;\n                            t = this._session.selectAll()\n                        }\n                        if (i.searchScope) {\n                            const e = i.searchScope;\n                            let n = [];\n                            t.forEach((t => {\n                                e.forEach((e => {\n                                    t.range.endLineNumber <= e.endLineNumber && t.range.startLineNumber >= e.startLineNumber && n.push(t)\n                                }))\n                            })), t = n\n                        }\n                        if (t.length > 0) {\n                            const e = this._editor.getSelection();\n                            for (let i = 0, n = t.length; i < n; i++) {\n                                const n = t[i];\n                                if (n.range.intersectRanges(e)) {\n                                    t[i] = t[0], t[0] = n;\n                                    break\n                                }\n                            }\n                            this._setSelections(t.map((e => new d.Y(e.range.startLineNumber, e.range.startColumn, e.range.endLineNumber, e.range.endColumn))))\n                        }\n                    }\n                }\n                I.ID = \"editor.contrib.multiCursorController\";\n                class E extends a.R6 {\n                    run(e, t) {\n                        const i = I.get(t);\n                        if (!i) return;\n                        const n = f.CommonFindController.get(t);\n                        if (!n) return;\n                        const o = t._getViewModel();\n                        if (o) {\n                            const e = o.getCursorStates();\n                            this._run(i, n), y(e, o.getCursorStates())\n                        }\n                    }\n                }\n                class T extends E {\n                    constructor() {\n                        super({\n                            id: \"editor.action.addSelectionToNextFindMatch\",\n                            label: m.N(\"addSelectionToNextFindMatch\", \"Add Selection To Next Find Match\"),\n                            alias: \"Add Selection To Next Find Match\",\n                            precondition: void 0,\n                            kbOpts: {\n                                kbExpr: h.u.focus,\n                                primary: 2082,\n                                weight: 100\n                            },\n                            menuOpts: {\n                                menuId: v.eH.MenubarSelectionMenu,\n                                group: \"3_multi\",\n                                title: m.N({\n                                    key: \"miAddSelectionToNextFindMatch\",\n                                    comment: [\"&& denotes a mnemonic\"]\n                                }, \"Add &&Next Occurrence\"),\n                                order: 5\n                            }\n                        })\n                    }\n                    _run(e, t) {\n                        e.addSelectionToNextFindMatch(t)\n                    }\n                }\n                class M extends E {\n                    constructor() {\n                        super({\n                            id: \"editor.action.addSelectionToPreviousFindMatch\",\n                            label: m.N(\"addSelectionToPreviousFindMatch\", \"Add Selection To Previous Find Match\"),\n                            alias: \"Add Selection To Previous Find Match\",\n                            precondition: void 0,\n                            menuOpts: {\n                                menuId: v.eH.MenubarSelectionMenu,\n                                group: \"3_multi\",\n                                title: m.N({\n                                    key: \"miAddSelectionToPreviousFindMatch\",\n                                    comment: [\"&& denotes a mnemonic\"]\n                                }, \"Add P&&revious Occurrence\"),\n                                order: 6\n                            }\n                        })\n                    }\n                    _run(e, t) {\n                        e.addSelectionToPreviousFindMatch(t)\n                    }\n                }\n                class A extends E {\n                    constructor() {\n                        super({\n                            id: \"editor.action.moveSelectionToNextFindMatch\",\n                            label: m.N(\"moveSelectionToNextFindMatch\", \"Move Last Selection To Next Find Match\"),\n                            alias: \"Move Last Selection To Next Find Match\",\n                            precondition: void 0,\n                            kbOpts: {\n                                kbExpr: h.u.focus,\n                                primary: (0, s.gx)(2089, 2082),\n                                weight: 100\n                            }\n                        })\n                    }\n                    _run(e, t) {\n                        e.moveSelectionToNextFindMatch(t)\n                    }\n                }\n                class O extends E {\n                    constructor() {\n                        super({\n                            id: \"editor.action.moveSelectionToPreviousFindMatch\",\n                            label: m.N(\"moveSelectionToPreviousFindMatch\", \"Move Last Selection To Previous Find Match\"),\n                            alias: \"Move Last Selection To Previous Find Match\",\n                            precondition: void 0\n                        })\n                    }\n                    _run(e, t) {\n                        e.moveSelectionToPreviousFindMatch(t)\n                    }\n                }\n                class P extends E {\n                    constructor() {\n                        super({\n                            id: \"editor.action.selectHighlights\",\n                            label: m.N(\"selectAllOccurrencesOfFindMatch\", \"Select All Occurrences of Find Match\"),\n                            alias: \"Select All Occurrences of Find Match\",\n                            precondition: void 0,\n                            kbOpts: {\n                                kbExpr: h.u.focus,\n                                primary: 3114,\n                                weight: 100\n                            },\n                            menuOpts: {\n                                menuId: v.eH.MenubarSelectionMenu,\n                                group: \"3_multi\",\n                                title: m.N({\n                                    key: \"miSelectHighlights\",\n                                    comment: [\"&& denotes a mnemonic\"]\n                                }, \"Select All &&Occurrences\"),\n                                order: 7\n                            }\n                        })\n                    }\n                    _run(e, t) {\n                        e.selectAll(t)\n                    }\n                }\n                class R extends E {\n                    constructor() {\n                        super({\n                            id: \"editor.action.changeAll\",\n                            label: m.N(\"changeAll.label\", \"Change All Occurrences\"),\n                            alias: \"Change All Occurrences\",\n                            precondition: _.Ao.and(h.u.writable, h.u.editorTextFocus),\n                            kbOpts: {\n                                kbExpr: h.u.editorTextFocus,\n                                primary: 2108,\n                                weight: 100\n                            },\n                            contextMenuOpts: {\n                                group: \"1_modification\",\n                                order: 1.2\n                            }\n                        })\n                    }\n                    _run(e, t) {\n                        e.selectAll(t)\n                    }\n                }\n                class F {\n                    constructor(e, t, i, n) {\n                        this.searchText = e, this.matchCase = t, this.wordSeparators = i, this.modelVersionId = n\n                    }\n                    static softEquals(e, t) {\n                        return !e && !t || !(!e || !t) && (e.searchText === t.searchText && e.matchCase === t.matchCase && e.wordSeparators === t.wordSeparators && e.modelVersionId === t.modelVersionId)\n                    }\n                }\n                class B extends r.JT {\n                    constructor(e) {\n                        super(), this.editor = e, this._isEnabled = e.getOption(96), this.decorations = [], this.updateSoon = this._register(new o.pY((() => this._update()), 300)), this.state = null, this._register(e.onDidChangeConfiguration((t => {\n                            this._isEnabled = e.getOption(96)\n                        }))), this._register(e.onDidChangeCursorSelection((e => {\n                            this._isEnabled && (e.selection.isEmpty() ? 3 === e.reason ? (this.state && this._setState(null), this.updateSoon.schedule()) : this._setState(null) : this._update())\n                        }))), this._register(e.onDidChangeModel((e => {\n                            this._setState(null)\n                        }))), this._register(e.onDidChangeModelContent((e => {\n                            this._isEnabled && this.updateSoon.schedule()\n                        }))), this._register(f.CommonFindController.get(e).getState().onFindReplaceStateChange((e => {\n                            this._update()\n                        })))\n                    }\n                    _update() {\n                        this._setState(B._createState(this._isEnabled, this.editor))\n                    }\n                    static _createState(e, t) {\n                        if (!e) return null;\n                        if (!t.hasModel()) return null;\n                        const i = t.getSelection();\n                        if (i.startLineNumber !== i.endLineNumber) return null;\n                        const n = I.get(t);\n                        if (!n) return null;\n                        const o = f.CommonFindController.get(t);\n                        if (!o) return null;\n                        let s = n.getSession(o);\n                        if (!s) {\n                            const e = t.getSelections();\n                            if (e.length > 1) {\n                                const i = o.getState().matchCase;\n                                if (!V(t.getModel(), e, i)) return null\n                            }\n                            s = D.create(t, o)\n                        }\n                        if (!s) return null;\n                        if (s.currentMatch) return null;\n                        if (/^[ \\t]+$/.test(s.searchText)) return null;\n                        if (s.searchText.length > 200) return null;\n                        const r = o.getState(),\n                            a = r.matchCase;\n                        if (r.isRevealed) {\n                            let e = r.searchString;\n                            a || (e = e.toLowerCase());\n                            let t = s.searchText;\n                            if (a || (t = t.toLowerCase()), e === t && s.matchCase === r.matchCase && s.wholeWord === r.wholeWord && !r.isRegex) return null\n                        }\n                        return new F(s.searchText, s.matchCase, s.wholeWord ? t.getOption(115) : null, t.getModel().getVersionId())\n                    }\n                    _setState(e) {\n                        if (F.softEquals(this.state, e)) return void(this.state = e);\n                        if (this.state = e, !this.state) return void(this.decorations = this.editor.deltaDecorations(this.decorations, []));\n                        if (!this.editor.hasModel()) return;\n                        const t = this.editor.getModel();\n                        if (t.isTooLargeForTokenization()) return;\n                        const i = p.vH.has(t) && this.editor.getOption(71);\n                        let n = t.findMatches(this.state.searchText, !0, !1, this.state.matchCase, this.state.wordSeparators, !1).map((e => e.range));\n                        n.sort(c.e.compareRangesUsingStarts);\n                        let o = this.editor.getSelections();\n                        o.sort(c.e.compareRangesUsingStarts);\n                        let s = [];\n                        for (let e = 0, t = 0, i = n.length, r = o.length; e < i;) {\n                            const i = n[e];\n                            if (t >= r) s.push(i), e++;\n                            else {\n                                const n = c.e.compareRangesUsingStarts(i, o[t]);\n                                n < 0 ? (!o[t].isEmpty() && c.e.areIntersecting(i, o[t]) || s.push(i), e++) : (n > 0 || e++, t++)\n                            }\n                        }\n                        const r = s.map((e => ({\n                            range: e,\n                            options: i ? B._SELECTION_HIGHLIGHT : B._SELECTION_HIGHLIGHT_OVERVIEW\n                        })));\n                        this.decorations = this.editor.deltaDecorations(this.decorations, r)\n                    }\n                    dispose() {\n                        this._setState(null), super.dispose()\n                    }\n                }\n\n                function V(e, t, i) {\n                    const n = W(e, t[0], !i);\n                    for (let o = 1, s = t.length; o < s; o++) {\n                        const s = t[o];\n                        if (s.isEmpty()) return !1;\n                        if (n !== W(e, s, !i)) return !1\n                    }\n                    return !0\n                }\n\n                function W(e, t, i) {\n                    const n = e.getValueInRange(t);\n                    return i ? n.toLowerCase() : n\n                }\n                B.ID = \"editor.contrib.selectionHighlighter\", B._SELECTION_HIGHLIGHT_OVERVIEW = g.qx.register({\n                    description: \"selection-highlight-overview\",\n                    stickiness: 1,\n                    className: \"selectionHighlight\",\n                    minimap: {\n                        color: (0, w.EN)(b.IY),\n                        position: u.F5.Inline\n                    },\n                    overviewRuler: {\n                        color: (0, w.EN)(b.SP),\n                        position: u.sh.Center\n                    }\n                }), B._SELECTION_HIGHLIGHT = g.qx.register({\n                    description: \"selection-highlight\",\n                    stickiness: 1,\n                    className: \"selectionHighlight\"\n                }), (0, a._K)(I.ID, I), (0, a._K)(B.ID, B), (0, a.Qr)(C), (0, a.Qr)(x), (0, a.Qr)(S), (0, a.Qr)(T), (0, a.Qr)(M), (0, a.Qr)(A), (0, a.Qr)(O), (0, a.Qr)(P), (0, a.Qr)(R), (0, a.Qr)(k), (0, a.Qr)(L)\n            },\n            40517: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    TriggerParameterHintsAction: () => G\n                });\n                var n = i(5976),\n                    o = i(16830),\n                    s = i(29102),\n                    r = i(44101),\n                    a = i(71050),\n                    l = i(17301),\n                    c = i(98401),\n                    d = i(70666),\n                    h = i(50187),\n                    u = i(88216),\n                    g = i(94565),\n                    p = i(38819),\n                    f = function(e, t, i, n) {\n                        return new(i || (i = Promise))((function(o, s) {\n                            function r(e) {\n                                try {\n                                    l(n.next(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function a(e) {\n                                try {\n                                    l(n.throw(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function l(e) {\n                                var t;\n                                e.done ? o(e.value) : (t = e.value, t instanceof i ? t : new i((function(e) {\n                                    e(t)\n                                }))).then(r, a)\n                            }\n                            l((n = n.apply(e, t || [])).next())\n                        }))\n                    };\n                const m = {\n                    Visible: new p.uy(\"parameterHintsVisible\", !1),\n                    MultipleSignatures: new p.uy(\"parameterHintsMultipleSignatures\", !1)\n                };\n\n                function v(e, t, i, n) {\n                    return f(this, void 0, void 0, (function*() {\n                        const o = r.nD.ordered(e);\n                        for (const s of o) try {\n                            const o = yield s.provideSignatureHelp(e, t, n, i);\n                            if (o) return o\n                        } catch (e) {\n                            (0, l.Cp)(e)\n                        }\n                    }))\n                }\n                g.P.registerCommand(\"_executeSignatureHelpProvider\", ((e, ...t) => f(void 0, void 0, void 0, (function*() {\n                    const [i, n, o] = t;\n                    (0, c.p_)(d.o.isUri(i)), (0, c.p_)(h.L.isIPosition(n)), (0, c.p_)(\"string\" == typeof o || !o);\n                    const s = yield e.get(u.S).createModelReference(i);\n                    try {\n                        const e = yield v(s.object.textEditorModel, h.L.lift(n), {\n                            triggerKind: r.WW.Invoke,\n                            isRetrigger: !1,\n                            triggerCharacter: o\n                        }, a.T.None);\n                        if (!e) return;\n                        return setTimeout((() => e.dispose()), 0), e.value\n                    } finally {\n                        s.dispose()\n                    }\n                }))));\n                var _, b = i(63580),\n                    w = i(72065),\n                    y = i(65321),\n                    C = i(85152),\n                    x = i(9802),\n                    S = i(73046),\n                    k = i(4669),\n                    L = i(97295),\n                    N = (i(44735), i(43256)),\n                    D = i(71531),\n                    I = i(15393),\n                    E = i(44906),\n                    T = function(e, t, i, n) {\n                        return new(i || (i = Promise))((function(o, s) {\n                            function r(e) {\n                                try {\n                                    l(n.next(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function a(e) {\n                                try {\n                                    l(n.throw(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function l(e) {\n                                var t;\n                                e.done ? o(e.value) : (t = e.value, t instanceof i ? t : new i((function(e) {\n                                    e(t)\n                                }))).then(r, a)\n                            }\n                            l((n = n.apply(e, t || [])).next())\n                        }))\n                    };\n                ! function(e) {\n                    e.Default = {\n                        type: 0\n                    };\n                    e.Pending = class {\n                        constructor(e, t) {\n                            this.request = e, this.previouslyActiveHints = t, this.type = 2\n                        }\n                    };\n                    e.Active = class {\n                        constructor(e) {\n                            this.hints = e, this.type = 1\n                        }\n                    }\n                }(_ || (_ = {}));\n                class M extends n.JT {\n                    constructor(e, t = M.DEFAULT_DELAY) {\n                        super(), this._onChangedHints = this._register(new k.Q5), this.onChangedHints = this._onChangedHints.event, this.triggerOnType = !1, this._state = _.Default, this._pendingTriggers = [], this._lastSignatureHelpResult = this._register(new n.XK), this.triggerChars = new E.q, this.retriggerChars = new E.q, this.triggerId = 0, this.editor = e, this.throttledDelayer = new I.vp(t), this._register(this.editor.onDidBlurEditorWidget((() => this.cancel()))), this._register(this.editor.onDidChangeConfiguration((() => this.onEditorConfigurationChange()))), this._register(this.editor.onDidChangeModel((e => this.onModelChanged()))), this._register(this.editor.onDidChangeModelLanguage((e => this.onModelChanged()))), this._register(this.editor.onDidChangeCursorSelection((e => this.onCursorChange(e)))), this._register(this.editor.onDidChangeModelContent((e => this.onModelContentChange()))), this._register(r.nD.onDidChange(this.onModelChanged, this)), this._register(this.editor.onDidType((e => this.onDidType(e)))), this.onEditorConfigurationChange(), this.onModelChanged()\n                    }\n                    get state() {\n                        return this._state\n                    }\n                    set state(e) {\n                        2 === this._state.type && this._state.request.cancel(), this._state = e\n                    }\n                    cancel(e = !1) {\n                        this.state = _.Default, this.throttledDelayer.cancel(), e || this._onChangedHints.fire(void 0)\n                    }\n                    trigger(e, t) {\n                        const i = this.editor.getModel();\n                        if (!i || !r.nD.has(i)) return;\n                        const n = ++this.triggerId;\n                        this._pendingTriggers.push(e), this.throttledDelayer.trigger((() => this.doTrigger(n)), t).catch(l.dL)\n                    }\n                    next() {\n                        if (1 !== this.state.type) return;\n                        const e = this.state.hints.signatures.length,\n                            t = this.state.hints.activeSignature,\n                            i = t % e == e - 1,\n                            n = this.editor.getOption(75).cycle;\n                        !(e < 2 || i) || n ? this.updateActiveSignature(i && n ? 0 : t + 1) : this.cancel()\n                    }\n                    previous() {\n                        if (1 !== this.state.type) return;\n                        const e = this.state.hints.signatures.length,\n                            t = this.state.hints.activeSignature,\n                            i = 0 === t,\n                            n = this.editor.getOption(75).cycle;\n                        !(e < 2 || i) || n ? this.updateActiveSignature(i && n ? e - 1 : t - 1) : this.cancel()\n                    }\n                    updateActiveSignature(e) {\n                        1 === this.state.type && (this.state = new _.Active(Object.assign(Object.assign({}, this.state.hints), {\n                            activeSignature: e\n                        })), this._onChangedHints.fire(this.state.hints))\n                    }\n                    doTrigger(e) {\n                        return T(this, void 0, void 0, (function*() {\n                            const t = 1 === this.state.type || 2 === this.state.type,\n                                i = this.getLastActiveHints();\n                            if (this.cancel(!0), 0 === this._pendingTriggers.length) return !1;\n                            const n = this._pendingTriggers.reduce(A);\n                            this._pendingTriggers = [];\n                            const o = {\n                                triggerKind: n.triggerKind,\n                                triggerCharacter: n.triggerCharacter,\n                                isRetrigger: t,\n                                activeSignatureHelp: i\n                            };\n                            if (!this.editor.hasModel()) return !1;\n                            const s = this.editor.getModel(),\n                                r = this.editor.getPosition();\n                            this.state = new _.Pending((0, I.PG)((e => v(s, r, o, e))), i);\n                            try {\n                                const t = yield this.state.request;\n                                return e !== this.triggerId ? (null == t || t.dispose(), !1) : t && t.value.signatures && 0 !== t.value.signatures.length ? (this.state = new _.Active(t.value), this._lastSignatureHelpResult.value = t, this._onChangedHints.fire(this.state.hints), !0) : (null == t || t.dispose(), this._lastSignatureHelpResult.clear(), this.cancel(), !1)\n                            } catch (t) {\n                                return e === this.triggerId && (this.state = _.Default), (0, l.dL)(t), !1\n                            }\n                        }))\n                    }\n                    getLastActiveHints() {\n                        switch (this.state.type) {\n                            case 1:\n                                return this.state.hints;\n                            case 2:\n                                return this.state.previouslyActiveHints;\n                            default:\n                                return\n                        }\n                    }\n                    get isTriggered() {\n                        return 1 === this.state.type || 2 === this.state.type || this.throttledDelayer.isTriggered()\n                    }\n                    onModelChanged() {\n                        this.cancel(), this.triggerChars = new E.q, this.retriggerChars = new E.q;\n                        const e = this.editor.getModel();\n                        if (e)\n                            for (const t of r.nD.ordered(e)) {\n                                for (const e of t.signatureHelpTriggerCharacters || []) this.triggerChars.add(e.charCodeAt(0)), this.retriggerChars.add(e.charCodeAt(0));\n                                for (const e of t.signatureHelpRetriggerCharacters || []) this.retriggerChars.add(e.charCodeAt(0))\n                            }\n                    }\n                    onDidType(e) {\n                        if (!this.triggerOnType) return;\n                        const t = e.length - 1,\n                            i = e.charCodeAt(t);\n                        (this.triggerChars.has(i) || this.isTriggered && this.retriggerChars.has(i)) && this.trigger({\n                            triggerKind: r.WW.TriggerCharacter,\n                            triggerCharacter: e.charAt(t)\n                        })\n                    }\n                    onCursorChange(e) {\n                        \"mouse\" === e.source ? this.cancel() : this.isTriggered && this.trigger({\n                            triggerKind: r.WW.ContentChange\n                        })\n                    }\n                    onModelContentChange() {\n                        this.isTriggered && this.trigger({\n                            triggerKind: r.WW.ContentChange\n                        })\n                    }\n                    onEditorConfigurationChange() {\n                        this.triggerOnType = this.editor.getOption(75).enabled, this.triggerOnType || this.cancel()\n                    }\n                    dispose() {\n                        this.cancel(!0), super.dispose()\n                    }\n                }\n\n                function A(e, t) {\n                    switch (t.triggerKind) {\n                        case r.WW.Invoke:\n                            return t;\n                        case r.WW.ContentChange:\n                            return e;\n                        case r.WW.TriggerCharacter:\n                        default:\n                            return t\n                    }\n                }\n                M.DEFAULT_DELAY = 120;\n                var O = i(50988),\n                    P = i(73910),\n                    R = i(59554),\n                    F = i(92321),\n                    B = i(97781),\n                    V = function(e, t, i, n) {\n                        var o, s = arguments.length,\n                            r = s < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n                        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) r = Reflect.decorate(e, t, i, n);\n                        else\n                            for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (r = (s < 3 ? o(r) : s > 3 ? o(t, i, r) : o(t, i)) || r);\n                        return s > 3 && r && Object.defineProperty(t, i, r), r\n                    },\n                    W = function(e, t) {\n                        return function(i, n) {\n                            t(i, n, e)\n                        }\n                    };\n                const H = y.$,\n                    z = (0, R.q5)(\"parameter-hints-next\", S.lA.chevronDown, b.N(\"parameterHintsNextIcon\", \"Icon for show next parameter hint.\")),\n                    j = (0, R.q5)(\"parameter-hints-previous\", S.lA.chevronUp, b.N(\"parameterHintsPreviousIcon\", \"Icon for show previous parameter hint.\"));\n                let U = class e extends n.JT {\n                    constructor(e, t, i, o) {\n                        super(), this.editor = e, this.renderDisposeables = this._register(new n.SL), this.visible = !1, this.announcedLabel = null, this.allowEditorOverflow = !0, this.markdownRenderer = this._register(new N.$({\n                            editor: e\n                        }, o, i)), this.model = this._register(new M(e)), this.keyVisible = m.Visible.bindTo(t), this.keyMultipleSignatures = m.MultipleSignatures.bindTo(t), this._register(this.model.onChangedHints((e => {\n                            e ? (this.show(), this.render(e)) : this.hide()\n                        })))\n                    }\n                    createParameterHintDOMNodes() {\n                        const e = H(\".editor-widget.parameter-hints-widget\"),\n                            t = y.R3(e, H(\".phwrapper\"));\n                        t.tabIndex = -1;\n                        const i = y.R3(t, H(\".controls\")),\n                            n = y.R3(i, H(\".button\" + B.kS.asCSSSelector(j))),\n                            o = y.R3(i, H(\".overloads\")),\n                            s = y.R3(i, H(\".button\" + B.kS.asCSSSelector(z)));\n                        this._register(y.nm(n, \"click\", (e => {\n                            y.zB.stop(e), this.previous()\n                        }))), this._register(y.nm(s, \"click\", (e => {\n                            y.zB.stop(e), this.next()\n                        })));\n                        const r = H(\".body\"),\n                            a = new x.s$(r, {});\n                        this._register(a), t.appendChild(a.getDomNode());\n                        const l = y.R3(r, H(\".signature\")),\n                            c = y.R3(r, H(\".docs\"));\n                        e.style.userSelect = \"text\", this.domNodes = {\n                            element: e,\n                            signature: l,\n                            overloads: o,\n                            docs: c,\n                            scrollbar: a\n                        }, this.editor.addContentWidget(this), this.hide(), this._register(this.editor.onDidChangeCursorSelection((e => {\n                            this.visible && this.editor.layoutContentWidget(this)\n                        })));\n                        const d = () => {\n                            if (!this.domNodes) return;\n                            const e = this.editor.getOption(43);\n                            this.domNodes.element.style.fontSize = `${e.fontSize}px`, this.domNodes.element.style.lineHeight = \"\" + e.lineHeight / e.fontSize\n                        };\n                        d(), this._register(k.ju.chain(this.editor.onDidChangeConfiguration.bind(this.editor)).filter((e => e.hasChanged(43))).on(d, null)), this._register(this.editor.onDidLayoutChange((e => this.updateMaxHeight()))), this.updateMaxHeight()\n                    }\n                    show() {\n                        this.visible || (this.domNodes || this.createParameterHintDOMNodes(), this.keyVisible.set(!0), this.visible = !0, setTimeout((() => {\n                            this.domNodes && this.domNodes.element.classList.add(\"visible\")\n                        }), 100), this.editor.layoutContentWidget(this))\n                    }\n                    hide() {\n                        this.renderDisposeables.clear(), this.visible && (this.keyVisible.reset(), this.visible = !1, this.announcedLabel = null, this.domNodes && this.domNodes.element.classList.remove(\"visible\"), this.editor.layoutContentWidget(this))\n                    }\n                    getPosition() {\n                        return this.visible ? {\n                            position: this.editor.getPosition(),\n                            preference: [1, 2]\n                        } : null\n                    }\n                    render(e) {\n                        var t;\n                        if (this.renderDisposeables.clear(), !this.domNodes) return;\n                        const i = e.signatures.length > 1;\n                        this.domNodes.element.classList.toggle(\"multiple\", i), this.keyMultipleSignatures.set(i), this.domNodes.signature.innerText = \"\", this.domNodes.docs.innerText = \"\";\n                        const n = e.signatures[e.activeSignature];\n                        if (!n) return;\n                        const o = y.R3(this.domNodes.signature, H(\".code\")),\n                            s = this.editor.getOption(43);\n                        o.style.fontSize = `${s.fontSize}px`, o.style.fontFamily = s.fontFamily;\n                        const r = n.parameters.length > 0,\n                            a = null !== (t = n.activeParameter) && void 0 !== t ? t : e.activeParameter;\n                        if (r) this.renderParameters(o, n, a);\n                        else {\n                            y.R3(o, H(\"span\")).textContent = n.label\n                        }\n                        const l = n.parameters[a];\n                        if (null == l ? void 0 : l.documentation) {\n                            const e = H(\"span.documentation\");\n                            if (\"string\" == typeof l.documentation) e.textContent = l.documentation;\n                            else {\n                                const t = this.renderMarkdownDocs(l.documentation);\n                                e.appendChild(t.element)\n                            }\n                            y.R3(this.domNodes.docs, H(\"p\", {}, e))\n                        }\n                        if (void 0 === n.documentation);\n                        else if (\"string\" == typeof n.documentation) y.R3(this.domNodes.docs, H(\"p\", {}, n.documentation));\n                        else {\n                            const e = this.renderMarkdownDocs(n.documentation);\n                            y.R3(this.domNodes.docs, e.element)\n                        }\n                        const c = this.hasDocs(n, l);\n                        if (this.domNodes.signature.classList.toggle(\"has-docs\", c), this.domNodes.docs.classList.toggle(\"empty\", !c), this.domNodes.overloads.textContent = String(e.activeSignature + 1).padStart(e.signatures.length.toString().length, \"0\") + \"/\" + e.signatures.length, l) {\n                            let e = \"\";\n                            const t = n.parameters[a];\n                            e = Array.isArray(t.label) ? n.label.substring(t.label[0], t.label[1]) : t.label, t.documentation && (e += \"string\" == typeof t.documentation ? `, ${t.documentation}` : `, ${t.documentation.value}`), n.documentation && (e += \"string\" == typeof n.documentation ? `, ${n.documentation}` : `, ${n.documentation.value}`), this.announcedLabel !== e && (C.Z9(b.N(\"hint\", \"{0}, hint\", e)), this.announcedLabel = e)\n                        }\n                        this.editor.layoutContentWidget(this), this.domNodes.scrollbar.scanDomNode()\n                    }\n                    renderMarkdownDocs(e) {\n                        const t = this.renderDisposeables.add(this.markdownRenderer.render(e, {\n                            asyncRenderCallback: () => {\n                                var e;\n                                null === (e = this.domNodes) || void 0 === e || e.scrollbar.scanDomNode()\n                            }\n                        }));\n                        return t.element.classList.add(\"markdown-docs\"), t\n                    }\n                    hasDocs(e, t) {\n                        return !!(t && \"string\" == typeof t.documentation && (0, c.cW)(t.documentation).length > 0) || (!!(t && \"object\" == typeof t.documentation && (0, c.cW)(t.documentation).value.length > 0) || (!!(e.documentation && \"string\" == typeof e.documentation && (0, c.cW)(e.documentation).length > 0) || !!(e.documentation && \"object\" == typeof e.documentation && (0, c.cW)(e.documentation.value).length > 0)))\n                    }\n                    renderParameters(e, t, i) {\n                        const [n, o] = this.getParameterLabelOffsets(t, i), s = document.createElement(\"span\");\n                        s.textContent = t.label.substring(0, n);\n                        const r = document.createElement(\"span\");\n                        r.textContent = t.label.substring(n, o), r.className = \"parameter active\";\n                        const a = document.createElement(\"span\");\n                        a.textContent = t.label.substring(o), y.R3(e, s, r, a)\n                    }\n                    getParameterLabelOffsets(e, t) {\n                        const i = e.parameters[t];\n                        if (i) {\n                            if (Array.isArray(i.label)) return i.label;\n                            if (i.label.length) {\n                                const t = new RegExp(`(\\\\W|^)${(0,L.ec)(i.label)}(?=\\\\W|$)`, \"g\");\n                                t.test(e.label);\n                                const n = t.lastIndex - i.label.length;\n                                return n >= 0 ? [n, t.lastIndex] : [0, 0]\n                            }\n                            return [0, 0]\n                        }\n                        return [0, 0]\n                    }\n                    next() {\n                        this.editor.focus(), this.model.next()\n                    }\n                    previous() {\n                        this.editor.focus(), this.model.previous()\n                    }\n                    cancel() {\n                        this.model.cancel()\n                    }\n                    getDomNode() {\n                        return this.domNodes || this.createParameterHintDOMNodes(), this.domNodes.element\n                    }\n                    getId() {\n                        return e.ID\n                    }\n                    trigger(e) {\n                        this.model.trigger(e, 0)\n                    }\n                    updateMaxHeight() {\n                        if (!this.domNodes) return;\n                        const e = `${Math.max(this.editor.getLayoutInfo().height/4,250)}px`;\n                        this.domNodes.element.style.maxHeight = e;\n                        const t = this.domNodes.element.getElementsByClassName(\"phwrapper\");\n                        t.length && (t[0].style.maxHeight = e)\n                    }\n                };\n                U.ID = \"editor.widget.parameterHintsWidget\", U = V([W(1, p.i6), W(2, O.v4), W(3, D.h)], U);\n                const $ = (0, P.P6)(\"editorHoverWidget.highlightForeground\", {\n                    dark: P.Gw,\n                    light: P.Gw,\n                    hc: P.Gw\n                }, b.N(\"editorHoverWidgetHighlightForeground\", \"Foreground color of the active item in the parameter hint.\"));\n                (0, B.Ic)(((e, t) => {\n                    const i = e.getColor(P.CN);\n                    if (i) {\n                        const n = e.type === F.e.HIGH_CONTRAST ? 2 : 1;\n                        t.addRule(`.monaco-editor .parameter-hints-widget { border: ${n}px solid ${i}; }`), t.addRule(`.monaco-editor .parameter-hints-widget.multiple .body { border-left: 1px solid ${i.transparent(.5)}; }`), t.addRule(`.monaco-editor .parameter-hints-widget .signature.has-docs { border-bottom: 1px solid ${i.transparent(.5)}; }`)\n                    }\n                    const n = e.getColor(P.yJ);\n                    n && t.addRule(`.monaco-editor .parameter-hints-widget { background-color: ${n}; }`);\n                    const o = e.getColor(P.ur);\n                    o && t.addRule(`.monaco-editor .parameter-hints-widget a { color: ${o}; }`);\n                    const s = e.getColor(P.sg);\n                    s && t.addRule(`.monaco-editor .parameter-hints-widget a:hover { color: ${s}; }`);\n                    const r = e.getColor(P.Sb);\n                    r && t.addRule(`.monaco-editor .parameter-hints-widget { color: ${r}; }`);\n                    const a = e.getColor(P.Sw);\n                    a && t.addRule(`.monaco-editor .parameter-hints-widget code { background-color: ${a}; }`);\n                    const l = e.getColor($);\n                    l && t.addRule(`.monaco-editor .parameter-hints-widget .parameter.active { color: ${l}}`)\n                }));\n                var K = function(e, t, i, n) {\n                        var o, s = arguments.length,\n                            r = s < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n                        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) r = Reflect.decorate(e, t, i, n);\n                        else\n                            for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (r = (s < 3 ? o(r) : s > 3 ? o(t, i, r) : o(t, i)) || r);\n                        return s > 3 && r && Object.defineProperty(t, i, r), r\n                    },\n                    q = function(e, t) {\n                        return function(i, n) {\n                            t(i, n, e)\n                        }\n                    };\n                let Z = class e extends n.JT {\n                    constructor(e, t) {\n                        super(), this.editor = e, this.widget = this._register(t.createInstance(U, this.editor))\n                    }\n                    static get(t) {\n                        return t.getContribution(e.ID)\n                    }\n                    cancel() {\n                        this.widget.cancel()\n                    }\n                    previous() {\n                        this.widget.previous()\n                    }\n                    next() {\n                        this.widget.next()\n                    }\n                    trigger(e) {\n                        this.widget.trigger(e)\n                    }\n                };\n                Z.ID = \"editor.controller.parameterHints\", Z = K([q(1, w.TG)], Z);\n                class G extends o.R6 {\n                    constructor() {\n                        super({\n                            id: \"editor.action.triggerParameterHints\",\n                            label: b.N(\"parameterHints.trigger.label\", \"Trigger Parameter Hints\"),\n                            alias: \"Trigger Parameter Hints\",\n                            precondition: s.u.hasSignatureHelpProvider,\n                            kbOpts: {\n                                kbExpr: s.u.editorTextFocus,\n                                primary: 3082,\n                                weight: 100\n                            }\n                        })\n                    }\n                    run(e, t) {\n                        const i = Z.get(t);\n                        i && i.trigger({\n                            triggerKind: r.WW.Invoke\n                        })\n                    }\n                }(0, o._K)(Z.ID, Z), (0, o.Qr)(G);\n                const Y = o._l.bindToContribution(Z.get);\n                (0, o.fK)(new Y({\n                    id: \"closeParameterHints\",\n                    precondition: m.Visible,\n                    handler: e => e.cancel(),\n                    kbOpts: {\n                        weight: 175,\n                        kbExpr: s.u.focus,\n                        primary: 9,\n                        secondary: [1033]\n                    }\n                })), (0, o.fK)(new Y({\n                    id: \"showPrevParameterHint\",\n                    precondition: p.Ao.and(m.Visible, m.MultipleSignatures),\n                    handler: e => e.previous(),\n                    kbOpts: {\n                        weight: 175,\n                        kbExpr: s.u.focus,\n                        primary: 16,\n                        secondary: [528],\n                        mac: {\n                            primary: 16,\n                            secondary: [528, 302]\n                        }\n                    }\n                })), (0, o.fK)(new Y({\n                    id: \"showNextParameterHint\",\n                    precondition: p.Ao.and(m.Visible, m.MultipleSignatures),\n                    handler: e => e.next(),\n                    kbOpts: {\n                        weight: 175,\n                        kbExpr: s.u.focus,\n                        primary: 18,\n                        secondary: [530],\n                        mac: {\n                            primary: 18,\n                            secondary: [530, 300]\n                        }\n                    }\n                }))\n            },\n            22043: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    Fw: () => M,\n                    Jy: () => A,\n                    vk: () => F,\n                    rc: () => P,\n                    SC: () => H,\n                    RX: () => q,\n                    sH: () => Z,\n                    WL: () => Y,\n                    xH: () => Q,\n                    M8: () => z,\n                    a7: () => U,\n                    xk: () => j,\n                    F8: () => G,\n                    Zj: () => $,\n                    IY: () => K,\n                    KY: () => B,\n                    IH: () => V,\n                    R7: () => W\n                });\n                var n = i(65321),\n                    o = i(90317),\n                    s = i(74741),\n                    r = i(73046),\n                    a = i(41264),\n                    l = i(4669),\n                    c = i(36248),\n                    d = (i(42048), i(16830)),\n                    h = i(11640),\n                    u = i(84527),\n                    g = i(73098),\n                    p = i(44742),\n                    f = i(5976),\n                    m = (i(82132), i(24314)),\n                    v = i(44174);\n                const _ = new a.Il(new a.VS(0, 122, 204)),\n                    b = {\n                        showArrow: !0,\n                        showFrame: !0,\n                        className: \"\",\n                        frameColor: _,\n                        arrowColor: _,\n                        keepEditorSelection: !1\n                    };\n                class w {\n                    constructor(e, t, i, n, o, s) {\n                        this.id = \"\", this.domNode = e, this.afterLineNumber = t, this.afterColumn = i, this.heightInLines = n, this._onDomNodeTop = o, this._onComputedHeight = s\n                    }\n                    onDomNodeTop(e) {\n                        this._onDomNodeTop(e)\n                    }\n                    onComputedHeight(e) {\n                        this._onComputedHeight(e)\n                    }\n                }\n                class y {\n                    constructor(e, t) {\n                        this._id = e, this._domNode = t\n                    }\n                    getId() {\n                        return this._id\n                    }\n                    getDomNode() {\n                        return this._domNode\n                    }\n                    getPosition() {\n                        return null\n                    }\n                }\n                class C {\n                    constructor(e) {\n                        this._editor = e, this._ruleName = C._IdGenerator.nextId(), this._decorations = [], this._color = null, this._height = -1\n                    }\n                    dispose() {\n                        this.hide(), n.uN(this._ruleName)\n                    }\n                    set color(e) {\n                        this._color !== e && (this._color = e, this._updateStyle())\n                    }\n                    set height(e) {\n                        this._height !== e && (this._height = e, this._updateStyle())\n                    }\n                    _updateStyle() {\n                        n.uN(this._ruleName), n.fk(`.monaco-editor ${this._ruleName}`, `border-style: solid; border-color: transparent; border-bottom-color: ${this._color}; border-width: ${this._height}px; bottom: -${this._height}px; margin-left: -${this._height}px; `)\n                    }\n                    show(e) {\n                        this._decorations = this._editor.deltaDecorations(this._decorations, [{\n                            range: m.e.fromPositions(e),\n                            options: {\n                                description: \"zone-widget-arrow\",\n                                className: this._ruleName,\n                                stickiness: 1\n                            }\n                        }])\n                    }\n                    hide() {\n                        this._editor.deltaDecorations(this._decorations, [])\n                    }\n                }\n                C._IdGenerator = new p.R(\".arrow-decoration-\");\n                class x {\n                    constructor(e, t = {}) {\n                        this._arrow = null, this._overlayWidget = null, this._resizeSash = null, this._positionMarkerId = [], this._viewZone = null, this._disposables = new f.SL, this.container = null, this._isShowing = !1, this.editor = e, this.options = c.I8(t), c.jB(this.options, b, !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((e => {\n                            const t = this._getWidth(e);\n                            this.domNode.style.width = t + \"px\", this.domNode.style.left = this._getLeft(e) + \"px\", this._onWidth(t)\n                        })))\n                    }\n                    dispose() {\n                        this._overlayWidget && (this.editor.removeOverlayWidget(this._overlayWidget), this._overlayWidget = null), this._viewZone && this.editor.changeViewZones((e => {\n                            this._viewZone && e.removeZone(this._viewZone.id), this._viewZone = null\n                        })), this.editor.deltaDecorations(this._positionMarkerId, []), this._positionMarkerId = [], this._disposables.dispose()\n                    }\n                    create() {\n                        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 C(this.editor), this._disposables.add(this._arrow)), this._fillContainer(this.container), this._initSash(), this._applyStyles()\n                    }\n                    style(e) {\n                        e.frameColor && (this.options.frameColor = e.frameColor), e.arrowColor && (this.options.arrowColor = e.arrowColor), this._applyStyles()\n                    }\n                    _applyStyles() {\n                        if (this.container && this.options.frameColor) {\n                            let e = this.options.frameColor.toString();\n                            this.container.style.borderTopColor = e, this.container.style.borderBottomColor = e\n                        }\n                        if (this._arrow && this.options.arrowColor) {\n                            let e = this.options.arrowColor.toString();\n                            this._arrow.color = e\n                        }\n                    }\n                    _getWidth(e) {\n                        return e.width - e.minimap.minimapWidth - e.verticalScrollbarWidth\n                    }\n                    _getLeft(e) {\n                        return e.minimap.minimapWidth > 0 && 0 === e.minimap.minimapLeft ? e.minimap.minimapWidth : 0\n                    }\n                    _onViewZoneTop(e) {\n                        this.domNode.style.top = e + \"px\"\n                    }\n                    _onViewZoneHeight(e) {\n                        if (this.domNode.style.height = `${e}px`, this.container) {\n                            let t = e - this._decoratingElementsHeight();\n                            this.container.style.height = `${t}px`;\n                            const i = this.editor.getLayoutInfo();\n                            this._doLayout(t, this._getWidth(i))\n                        }\n                        this._resizeSash && this._resizeSash.layout()\n                    }\n                    get position() {\n                        const [e] = this._positionMarkerId;\n                        if (!e) return;\n                        const t = this.editor.getModel();\n                        if (!t) return;\n                        const i = t.getDecorationRange(e);\n                        return i ? i.getStartPosition() : void 0\n                    }\n                    show(e, t) {\n                        const i = m.e.isIRange(e) ? m.e.lift(e) : m.e.fromPositions(e);\n                        this._isShowing = !0, this._showImpl(i, t), this._isShowing = !1, this._positionMarkerId = this.editor.deltaDecorations(this._positionMarkerId, [{\n                            range: i,\n                            options: v.qx.EMPTY\n                        }])\n                    }\n                    hide() {\n                        this._viewZone && (this.editor.changeViewZones((e => {\n                            this._viewZone && e.removeZone(this._viewZone.id)\n                        })), this._viewZone = null), this._overlayWidget && (this.editor.removeOverlayWidget(this._overlayWidget), this._overlayWidget = null), this._arrow && this._arrow.hide()\n                    }\n                    _decoratingElementsHeight() {\n                        let e = this.editor.getOption(58),\n                            t = 0;\n                        if (this.options.showArrow) {\n                            t += 2 * Math.round(e / 3)\n                        }\n                        if (this.options.showFrame) {\n                            t += 2 * Math.round(e / 9)\n                        }\n                        return t\n                    }\n                    _showImpl(e, t) {\n                        const i = e.getStartPosition(),\n                            n = this.editor.getLayoutInfo(),\n                            o = this._getWidth(n);\n                        this.domNode.style.width = `${o}px`, this.domNode.style.left = this._getLeft(n) + \"px\";\n                        const s = document.createElement(\"div\");\n                        s.style.overflow = \"hidden\";\n                        const r = this.editor.getOption(58),\n                            a = Math.max(12, this.editor.getLayoutInfo().height / r * .8);\n                        t = Math.min(t, a);\n                        let l = 0,\n                            c = 0;\n                        if (this._arrow && this.options.showArrow && (l = Math.round(r / 3), this._arrow.height = l, this._arrow.show(i)), this.options.showFrame && (c = Math.round(r / 9)), this.editor.changeViewZones((e => {\n                                this._viewZone && e.removeZone(this._viewZone.id), this._overlayWidget && (this.editor.removeOverlayWidget(this._overlayWidget), this._overlayWidget = null), this.domNode.style.top = \"-1000px\", this._viewZone = new w(s, i.lineNumber, i.column, t, (e => this._onViewZoneTop(e)), (e => this._onViewZoneHeight(e))), this._viewZone.id = e.addZone(this._viewZone), this._overlayWidget = new y(\"vs.editor.contrib.zoneWidget\" + this._viewZone.id, this.domNode), this.editor.addOverlayWidget(this._overlayWidget)\n                            })), this.container && this.options.showFrame) {\n                            const e = this.options.frameWidth ? this.options.frameWidth : c;\n                            this.container.style.borderTopWidth = e + \"px\", this.container.style.borderBottomWidth = e + \"px\"\n                        }\n                        let d = t * r - this._decoratingElementsHeight();\n                        this.container && (this.container.style.top = l + \"px\", this.container.style.height = d + \"px\", this.container.style.overflow = \"hidden\"), this._doLayout(d, o), this.options.keepEditorSelection || this.editor.setSelection(e);\n                        const h = this.editor.getModel();\n                        if (h) {\n                            const t = e.endLineNumber + 1;\n                            t <= h.getLineCount() ? this.revealLine(t, !1) : this.revealLine(h.getLineCount(), !0)\n                        }\n                    }\n                    revealLine(e, t) {\n                        t ? this.editor.revealLineInCenter(e, 0) : this.editor.revealLine(e, 0)\n                    }\n                    setCssClass(e, t) {\n                        this.container && (t && this.container.classList.remove(t), this.container.classList.add(e))\n                    }\n                    _onWidth(e) {}\n                    _doLayout(e, t) {}\n                    _relayout(e) {\n                        this._viewZone && this._viewZone.heightInLines !== e && this.editor.changeViewZones((t => {\n                            this._viewZone && (this._viewZone.heightInLines = e, t.layoutZone(this._viewZone.id))\n                        }))\n                    }\n                    _initSash() {\n                        if (this._resizeSash) return;\n                        let e;\n                        this._resizeSash = this._disposables.add(new g.g(this.domNode, this, {\n                            orientation: 1\n                        })), this.options.isResizeable || (this._resizeSash.hide(), this._resizeSash.state = 0), this._disposables.add(this._resizeSash.onDidStart((t => {\n                            this._viewZone && (e = {\n                                startY: t.startY,\n                                heightInLines: this._viewZone.heightInLines\n                            })\n                        }))), this._disposables.add(this._resizeSash.onDidEnd((() => {\n                            e = void 0\n                        }))), this._disposables.add(this._resizeSash.onDidChange((t => {\n                            if (e) {\n                                let i = (t.currentY - e.startY) / this.editor.getOption(58),\n                                    n = i < 0 ? Math.ceil(i) : Math.floor(i),\n                                    o = e.heightInLines + n;\n                                o > 5 && o < 35 && this._relayout(o)\n                            }\n                        })))\n                    }\n                    getHorizontalSashLeft() {\n                        return 0\n                    }\n                    getHorizontalSashTop() {\n                        return (null === this.domNode.style.height ? 0 : parseInt(this.domNode.style.height)) - this._decoratingElementsHeight() / 2\n                    }\n                    getHorizontalSashWidth() {\n                        const e = this.editor.getLayoutInfo();\n                        return e.width - e.minimap.minimapWidth\n                    }\n                }\n                var S = i(63580),\n                    k = i(58335),\n                    L = i(38819),\n                    N = i(65026),\n                    D = i(72065),\n                    I = i(73910),\n                    E = function(e, t, i, n) {\n                        var o, s = arguments.length,\n                            r = s < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n                        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) r = Reflect.decorate(e, t, i, n);\n                        else\n                            for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (r = (s < 3 ? o(r) : s > 3 ? o(t, i, r) : o(t, i)) || r);\n                        return s > 3 && r && Object.defineProperty(t, i, r), r\n                    },\n                    T = function(e, t) {\n                        return function(i, n) {\n                            t(i, n, e)\n                        }\n                    };\n                const M = (0, D.yh)(\"IPeekViewService\");\n                var A;\n                (0, N.z)(M, class {\n                    constructor() {\n                        this._widgets = new Map\n                    }\n                    addExclusiveWidget(e, t) {\n                        const i = this._widgets.get(e);\n                        i && (i.listener.dispose(), i.widget.dispose());\n                        this._widgets.set(e, {\n                            widget: t,\n                            listener: t.onDidClose((() => {\n                                const i = this._widgets.get(e);\n                                i && i.widget === t && (i.listener.dispose(), this._widgets.delete(e))\n                            }))\n                        })\n                    }\n                }),\n                function(e) {\n                    e.inPeekEditor = new L.uy(\"inReferenceSearchEditor\", !0, S.N(\"inReferenceSearchEditor\", \"Whether the current code editor is embedded inside peek\")), e.notInPeekEditor = e.inPeekEditor.toNegated()\n                }(A || (A = {}));\n                let O = class {\n                    constructor(e, t) {\n                        e instanceof u.H && A.inPeekEditor.bindTo(t)\n                    }\n                    dispose() {}\n                };\n\n                function P(e) {\n                    let t = e.get(h.$).getFocusedCodeEditor();\n                    return t instanceof u.H ? t.getParentEditor() : t\n                }\n                O.ID = \"editor.contrib.referenceController\", O = E([T(1, L.i6)], O), (0, d._K)(O.ID, O);\n                const R = {\n                    headerBackgroundColor: a.Il.white,\n                    primaryHeadingColor: a.Il.fromHex(\"#333333\"),\n                    secondaryHeadingColor: a.Il.fromHex(\"#6c6c6cb3\")\n                };\n                let F = class extends x {\n                    constructor(e, t, i) {\n                        super(e, t), this.instantiationService = i, this._onDidClose = new l.Q5, this.onDidClose = this._onDidClose.event, c.jB(this.options, R, !1)\n                    }\n                    dispose() {\n                        this.disposed || (this.disposed = !0, super.dispose(), this._onDidClose.fire(this))\n                    }\n                    style(e) {\n                        let t = this.options;\n                        e.headerBackgroundColor && (t.headerBackgroundColor = e.headerBackgroundColor), e.primaryHeadingColor && (t.primaryHeadingColor = e.primaryHeadingColor), e.secondaryHeadingColor && (t.secondaryHeadingColor = e.secondaryHeadingColor), super.style(e)\n                    }\n                    _applyStyles() {\n                        super._applyStyles();\n                        let e = this.options;\n                        this._headElement && e.headerBackgroundColor && (this._headElement.style.backgroundColor = e.headerBackgroundColor.toString()), this._primaryHeading && e.primaryHeadingColor && (this._primaryHeading.style.color = e.primaryHeadingColor.toString()), this._secondaryHeading && e.secondaryHeadingColor && (this._secondaryHeading.style.color = e.secondaryHeadingColor.toString()), this._bodyElement && e.frameColor && (this._bodyElement.style.borderColor = e.frameColor.toString())\n                    }\n                    _fillContainer(e) {\n                        this.setCssClass(\"peekview-widget\"), this._headElement = n.$(\".head\"), this._bodyElement = n.$(\".body\"), this._fillHead(this._headElement), this._fillBody(this._bodyElement), e.appendChild(this._headElement), e.appendChild(this._bodyElement)\n                    }\n                    _fillHead(e, t) {\n                        const i = n.$(\".peekview-title\");\n                        this.options.supportOnTitleClick && (i.classList.add(\"clickable\"), n.mu(i, \"click\", (e => this._onTitleClick(e)))), n.R3(this._headElement, i), this._fillTitleIcon(i), this._primaryHeading = n.$(\"span.filename\"), this._secondaryHeading = n.$(\"span.dirname\"), this._metaHeading = n.$(\"span.meta\"), n.R3(i, this._primaryHeading, this._secondaryHeading, this._metaHeading);\n                        const a = n.$(\".peekview-actions\");\n                        n.R3(this._headElement, a);\n                        const l = this._getActionBarOptions();\n                        this._actionbarWidget = new o.o(a, l), this._disposables.add(this._actionbarWidget), t || this._actionbarWidget.push(new s.aU(\"peekview.close\", S.N(\"label.close\", \"Close\"), r.lA.close.classNames, !0, (() => (this.dispose(), Promise.resolve()))), {\n                            label: !1,\n                            icon: !0\n                        })\n                    }\n                    _fillTitleIcon(e) {}\n                    _getActionBarOptions() {\n                        return {\n                            actionViewItemProvider: k.Id.bind(void 0, this.instantiationService),\n                            orientation: 0\n                        }\n                    }\n                    _onTitleClick(e) {}\n                    setTitle(e, t) {\n                        this._primaryHeading && this._secondaryHeading && (this._primaryHeading.innerText = e, this._primaryHeading.setAttribute(\"title\", e), t ? this._secondaryHeading.innerText = t : n.PO(this._secondaryHeading))\n                    }\n                    setMetaTitle(e) {\n                        this._metaHeading && (e ? (this._metaHeading.innerText = e, n.$Z(this._metaHeading)) : n.Cp(this._metaHeading))\n                    }\n                    _doLayout(e, t) {\n                        if (!this._isShowing && e < 0) return void this.dispose();\n                        const i = Math.ceil(1.2 * this.editor.getOption(58)),\n                            n = Math.round(e - (i + 2));\n                        this._doLayoutHead(i, t), this._doLayoutBody(n, t)\n                    }\n                    _doLayoutHead(e, t) {\n                        this._headElement && (this._headElement.style.height = `${e}px`, this._headElement.style.lineHeight = this._headElement.style.height)\n                    }\n                    _doLayoutBody(e, t) {\n                        this._bodyElement && (this._bodyElement.style.height = `${e}px`)\n                    }\n                };\n                F = E([T(2, D.TG)], F);\n                const B = (0, I.P6)(\"peekViewTitle.background\", {\n                        dark: (0, I.Zn)(I.c6, .1),\n                        light: (0, I.Zn)(I.c6, .1),\n                        hc: null\n                    }, S.N(\"peekViewTitleBackground\", \"Background color of the peek view title area.\")),\n                    V = (0, I.P6)(\"peekViewTitleLabel.foreground\", {\n                        dark: a.Il.white,\n                        light: a.Il.black,\n                        hc: a.Il.white\n                    }, S.N(\"peekViewTitleForeground\", \"Color of the peek view title.\")),\n                    W = (0, I.P6)(\"peekViewTitleDescription.foreground\", {\n                        dark: \"#ccccccb3\",\n                        light: \"#616161\",\n                        hc: \"#FFFFFF99\"\n                    }, S.N(\"peekViewTitleInfoForeground\", \"Color of the peek view title info.\")),\n                    H = (0, I.P6)(\"peekView.border\", {\n                        dark: I.c6,\n                        light: I.c6,\n                        hc: I.lR\n                    }, S.N(\"peekViewBorder\", \"Color of the peek view borders and arrow.\")),\n                    z = (0, I.P6)(\"peekViewResult.background\", {\n                        dark: \"#252526\",\n                        light: \"#F3F3F3\",\n                        hc: a.Il.black\n                    }, S.N(\"peekViewResultsBackground\", \"Background color of the peek view result list.\")),\n                    j = (0, I.P6)(\"peekViewResult.lineForeground\", {\n                        dark: \"#bbbbbb\",\n                        light: \"#646465\",\n                        hc: a.Il.white\n                    }, S.N(\"peekViewResultsMatchForeground\", \"Foreground color for line nodes in the peek view result list.\")),\n                    U = (0, I.P6)(\"peekViewResult.fileForeground\", {\n                        dark: a.Il.white,\n                        light: \"#1E1E1E\",\n                        hc: a.Il.white\n                    }, S.N(\"peekViewResultsFileForeground\", \"Foreground color for file nodes in the peek view result list.\")),\n                    $ = (0, I.P6)(\"peekViewResult.selectionBackground\", {\n                        dark: \"#3399ff33\",\n                        light: \"#3399ff33\",\n                        hc: null\n                    }, S.N(\"peekViewResultsSelectionBackground\", \"Background color of the selected entry in the peek view result list.\")),\n                    K = (0, I.P6)(\"peekViewResult.selectionForeground\", {\n                        dark: a.Il.white,\n                        light: \"#6C6C6C\",\n                        hc: a.Il.white\n                    }, S.N(\"peekViewResultsSelectionForeground\", \"Foreground color of the selected entry in the peek view result list.\")),\n                    q = (0, I.P6)(\"peekViewEditor.background\", {\n                        dark: \"#001F33\",\n                        light: \"#F2F8FC\",\n                        hc: a.Il.black\n                    }, S.N(\"peekViewEditorBackground\", \"Background color of the peek view editor.\")),\n                    Z = (0, I.P6)(\"peekViewEditorGutter.background\", {\n                        dark: q,\n                        light: q,\n                        hc: q\n                    }, S.N(\"peekViewEditorGutterBackground\", \"Background color of the gutter in the peek view editor.\")),\n                    G = (0, I.P6)(\"peekViewResult.matchHighlightBackground\", {\n                        dark: \"#ea5c004d\",\n                        light: \"#ea5c004d\",\n                        hc: null\n                    }, S.N(\"peekViewResultsMatchHighlight\", \"Match highlight color in the peek view result list.\")),\n                    Y = (0, I.P6)(\"peekViewEditor.matchHighlightBackground\", {\n                        dark: \"#ff8f0099\",\n                        light: \"#f5d802de\",\n                        hc: null\n                    }, S.N(\"peekViewEditorMatchHighlight\", \"Match highlight color in the peek view editor.\")),\n                    Q = (0, I.P6)(\"peekViewEditor.matchHighlightBorder\", {\n                        dark: null,\n                        light: null,\n                        hc: I.xL\n                    }, S.N(\"peekViewEditorMatchHighlightBorder\", \"Match highlight border in the peek view editor.\"))\n            },\n            98275: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    X: () => d\n                });\n                var n = i(88289),\n                    o = i(5976),\n                    s = i(98401),\n                    r = i(65520),\n                    a = i(84973),\n                    l = i(27869),\n                    c = i(97781);\n                class d {\n                    constructor(e) {\n                        this.options = e, this.rangeHighlightDecorationId = void 0\n                    }\n                    provide(e, t) {\n                        var i;\n                        const n = new o.SL;\n                        e.canAcceptInBackground = !!(null === (i = this.options) || void 0 === i ? void 0 : i.canAcceptInBackground), e.matchOnLabel = e.matchOnDescription = e.matchOnDetail = e.sortByLabel = !1;\n                        const s = n.add(new o.XK);\n                        return s.value = this.doProvide(e, t), n.add(this.onDidActiveTextEditorControlChange((() => {\n                            s.value = void 0, s.value = this.doProvide(e, t)\n                        }))), n\n                    }\n                    doProvide(e, t) {\n                        const i = new o.SL,\n                            a = this.activeTextEditorControl;\n                        if (a && this.canProvideWithTextEditor(a)) {\n                            const l = {\n                                    editor: a\n                                },\n                                c = (0, r.Pi)(a);\n                            if (c) {\n                                let e = (0, s.f6)(a.saveViewState());\n                                i.add(c.onDidChangeCursorPosition((() => {\n                                    e = (0, s.f6)(a.saveViewState())\n                                }))), l.restoreViewState = () => {\n                                    e && a === this.activeTextEditorControl && a.restoreViewState(e)\n                                }, i.add((0, n.I)(t.onCancellationRequested)((() => {\n                                    var e;\n                                    return null === (e = l.restoreViewState) || void 0 === e ? void 0 : e.call(l)\n                                })))\n                            }\n                            i.add((0, o.OF)((() => this.clearDecorations(a)))), i.add(this.provideWithTextEditor(l, e, t))\n                        } else i.add(this.provideWithoutTextEditor(e, t));\n                        return i\n                    }\n                    canProvideWithTextEditor(e) {\n                        return !0\n                    }\n                    gotoLocation({\n                        editor: e\n                    }, t) {\n                        e.setSelection(t.range), e.revealRangeInCenter(t.range, 0), t.preserveFocus || e.focus()\n                    }\n                    getModel(e) {\n                        var t;\n                        return (0, r.QI)(e) ? null === (t = e.getModel()) || void 0 === t ? void 0 : t.modified : e.getModel()\n                    }\n                    addDecorations(e, t) {\n                        e.changeDecorations((e => {\n                            const i = [];\n                            this.rangeHighlightDecorationId && (i.push(this.rangeHighlightDecorationId.overviewRulerDecorationId), i.push(this.rangeHighlightDecorationId.rangeHighlightId), this.rangeHighlightDecorationId = void 0);\n                            const n = [{\n                                    range: t,\n                                    options: {\n                                        description: \"quick-access-range-highlight\",\n                                        className: \"rangeHighlight\",\n                                        isWholeLine: !0\n                                    }\n                                }, {\n                                    range: t,\n                                    options: {\n                                        description: \"quick-access-range-highlight-overview\",\n                                        overviewRuler: {\n                                            color: (0, c.EN)(l.m9),\n                                            position: a.sh.Full\n                                        }\n                                    }\n                                }],\n                                [o, s] = e.deltaDecorations(i, n);\n                            this.rangeHighlightDecorationId = {\n                                rangeHighlightId: o,\n                                overviewRulerDecorationId: s\n                            }\n                        }))\n                    }\n                    clearDecorations(e) {\n                        const t = this.rangeHighlightDecorationId;\n                        t && (e.changeDecorations((e => {\n                            e.deltaDecorations([t.overviewRulerDecorationId, t.rangeHighlightId], [])\n                        })), this.rangeHighlightDecorationId = void 0)\n                    }\n                }\n            },\n            4454: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    RenameAction: () => H,\n                    rename: () => V\n                });\n                var n = i(85152),\n                    o = i(15393),\n                    s = i(71050),\n                    r = i(17301),\n                    a = i(5976),\n                    l = i(98401),\n                    c = i(70666),\n                    d = i(39925),\n                    h = i(16830),\n                    u = i(66007),\n                    g = i(11640),\n                    p = i(50187),\n                    f = i(24314),\n                    m = i(29102),\n                    v = i(44101),\n                    _ = i(33187),\n                    b = i(82276),\n                    w = i(63580),\n                    y = i(23193),\n                    C = i(38819),\n                    x = i(72065),\n                    S = i(43557),\n                    k = i(59422),\n                    L = i(90535),\n                    N = i(89872),\n                    D = (i(36999), i(91847)),\n                    I = i(73910),\n                    E = i(97781),\n                    T = function(e, t, i, n) {\n                        var o, s = arguments.length,\n                            r = s < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n                        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) r = Reflect.decorate(e, t, i, n);\n                        else\n                            for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (r = (s < 3 ? o(r) : s > 3 ? o(t, i, r) : o(t, i)) || r);\n                        return s > 3 && r && Object.defineProperty(t, i, r), r\n                    },\n                    M = function(e, t) {\n                        return function(i, n) {\n                            t(i, n, e)\n                        }\n                    };\n                const A = new C.uy(\"renameInputVisible\", !1, (0, w.N)(\"renameInputVisible\", \"Whether the rename input widget is visible\"));\n                let O = class {\n                    constructor(e, t, i, n, o) {\n                        this._editor = e, this._acceptKeybindings = t, this._themeService = i, this._keybindingService = n, this._disposables = new a.SL, this.allowEditorOverflow = !0, this._visibleContextKey = A.bindTo(o), this._editor.addContentWidget(this), this._disposables.add(this._editor.onDidChangeConfiguration((e => {\n                            e.hasChanged(43) && this._updateFont()\n                        }))), this._disposables.add(i.onDidColorThemeChange(this._updateStyles, this))\n                    }\n                    dispose() {\n                        this._disposables.dispose(), this._editor.removeContentWidget(this)\n                    }\n                    getId() {\n                        return \"__renameInputWidget\"\n                    }\n                    getDomNode() {\n                        if (!this._domNode) {\n                            this._domNode = document.createElement(\"div\"), this._domNode.className = \"monaco-editor rename-box\", this._input = document.createElement(\"input\"), this._input.className = \"rename-input\", this._input.type = \"text\", this._input.setAttribute(\"aria-label\", (0, w.N)(\"renameAriaLabel\", \"Rename input. Type new name and press Enter to commit.\")), this._domNode.appendChild(this._input), this._label = document.createElement(\"div\"), this._label.className = \"rename-label\", this._domNode.appendChild(this._label);\n                            const e = () => {\n                                var e, t;\n                                const [i, n] = this._acceptKeybindings;\n                                this._keybindingService.lookupKeybinding(i), this._label.innerText = (0, w.N)({\n                                    key: \"label\",\n                                    comment: ['placeholders are keybindings, e.g \"F2 to Rename, Shift+F2 to Preview\"']\n                                }, \"{0} to Rename, {1} to Preview\", null === (e = this._keybindingService.lookupKeybinding(i)) || void 0 === e ? void 0 : e.getLabel(), null === (t = this._keybindingService.lookupKeybinding(n)) || void 0 === t ? void 0 : t.getLabel())\n                            };\n                            e(), this._disposables.add(this._keybindingService.onDidUpdateKeybindings(e)), this._updateFont(), this._updateStyles(this._themeService.getColorTheme())\n                        }\n                        return this._domNode\n                    }\n                    _updateStyles(e) {\n                        var t, i, n, o;\n                        if (!this._input || !this._domNode) return;\n                        const s = e.getColor(I.rh);\n                        this._domNode.style.backgroundColor = String(null !== (t = e.getColor(I.D0)) && void 0 !== t ? t : \"\"), this._domNode.style.boxShadow = s ? ` 0 0 8px 2px ${s}` : \"\", this._domNode.style.color = String(null !== (i = e.getColor(I.zJ)) && void 0 !== i ? i : \"\"), this._input.style.backgroundColor = String(null !== (n = e.getColor(I.sE)) && void 0 !== n ? n : \"\");\n                        const r = e.getColor(I.dt);\n                        this._input.style.borderWidth = r ? \"1px\" : \"0px\", this._input.style.borderStyle = r ? \"solid\" : \"none\", this._input.style.borderColor = null !== (o = null == r ? void 0 : r.toString()) && void 0 !== o ? o : \"none\"\n                    }\n                    _updateFont() {\n                        if (!this._input || !this._label) return;\n                        const e = this._editor.getOption(43);\n                        this._input.style.fontFamily = e.fontFamily, this._input.style.fontWeight = e.fontWeight, this._input.style.fontSize = `${e.fontSize}px`, this._label.style.fontSize = .8 * e.fontSize + \"px\"\n                    }\n                    getPosition() {\n                        return this._visible ? {\n                            position: this._position,\n                            preference: [2, 1]\n                        } : null\n                    }\n                    afterRender(e) {\n                        e || this.cancelInput(!0)\n                    }\n                    acceptInput(e) {\n                        this._currentAcceptInput && this._currentAcceptInput(e)\n                    }\n                    cancelInput(e) {\n                        this._currentCancelInput && this._currentCancelInput(e)\n                    }\n                    getInput(e, t, i, n, o, s) {\n                        this._domNode.classList.toggle(\"preview\", o), this._position = new p.L(e.startLineNumber, e.startColumn), this._input.value = t, this._input.setAttribute(\"selectionStart\", i.toString()), this._input.setAttribute(\"selectionEnd\", n.toString()), this._input.size = Math.max(1.1 * (e.endColumn - e.startColumn), 20);\n                        const r = new a.SL;\n                        return new Promise((e => {\n                            this._currentCancelInput = t => (this._currentAcceptInput = void 0, this._currentCancelInput = void 0, e(t), !0), this._currentAcceptInput = i => {\n                                0 !== this._input.value.trim().length && this._input.value !== t ? (this._currentAcceptInput = void 0, this._currentCancelInput = void 0, e({\n                                    newName: this._input.value,\n                                    wantsPreview: o && i\n                                })) : this.cancelInput(!0)\n                            }, s.onCancellationRequested((() => this.cancelInput(!0))), r.add(this._editor.onDidBlurEditorWidget((() => this.cancelInput(!1)))), this._show()\n                        })).finally((() => {\n                            r.dispose(), this._hide()\n                        }))\n                    }\n                    _show() {\n                        this._editor.revealLineInCenterIfOutsideViewport(this._position.lineNumber, 0), this._visible = !0, this._visibleContextKey.set(!0), this._editor.layoutContentWidget(this), setTimeout((() => {\n                            this._input.focus(), this._input.setSelectionRange(parseInt(this._input.getAttribute(\"selectionStart\")), parseInt(this._input.getAttribute(\"selectionEnd\")))\n                        }), 100)\n                    }\n                    _hide() {\n                        this._visible = !1, this._visibleContextKey.reset(), this._editor.layoutContentWidget(this)\n                    }\n                };\n                O = T([M(2, E.XE), M(3, D.d), M(4, C.i6)], O);\n                var P = function(e, t, i, n) {\n                        var o, s = arguments.length,\n                            r = s < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n                        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) r = Reflect.decorate(e, t, i, n);\n                        else\n                            for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (r = (s < 3 ? o(r) : s > 3 ? o(t, i, r) : o(t, i)) || r);\n                        return s > 3 && r && Object.defineProperty(t, i, r), r\n                    },\n                    R = function(e, t) {\n                        return function(i, n) {\n                            t(i, n, e)\n                        }\n                    },\n                    F = function(e, t, i, n) {\n                        return new(i || (i = Promise))((function(o, s) {\n                            function r(e) {\n                                try {\n                                    l(n.next(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function a(e) {\n                                try {\n                                    l(n.throw(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function l(e) {\n                                var t;\n                                e.done ? o(e.value) : (t = e.value, t instanceof i ? t : new i((function(e) {\n                                    e(t)\n                                }))).then(r, a)\n                            }\n                            l((n = n.apply(e, t || [])).next())\n                        }))\n                    };\n                class B {\n                    constructor(e, t) {\n                        this.model = e, this.position = t, this._providerRenameIdx = 0, this._providers = v.G0.ordered(e)\n                    }\n                    hasProvider() {\n                        return this._providers.length > 0\n                    }\n                    resolveRenameLocation(e) {\n                        return F(this, void 0, void 0, (function*() {\n                            const t = [];\n                            for (this._providerRenameIdx = 0; this._providerRenameIdx < this._providers.length; this._providerRenameIdx++) {\n                                const i = this._providers[this._providerRenameIdx];\n                                if (!i.resolveRenameLocation) break;\n                                let n = yield i.resolveRenameLocation(this.model, this.position, e);\n                                if (n) {\n                                    if (!n.rejectReason) return n;\n                                    t.push(n.rejectReason)\n                                }\n                            }\n                            const i = this.model.getWordAtPosition(this.position);\n                            return i ? {\n                                range: new f.e(this.position.lineNumber, i.startColumn, this.position.lineNumber, i.endColumn),\n                                text: i.word,\n                                rejectReason: t.length > 0 ? t.join(\"\\n\") : void 0\n                            } : {\n                                range: f.e.fromPositions(this.position),\n                                text: \"\",\n                                rejectReason: t.length > 0 ? t.join(\"\\n\") : void 0\n                            }\n                        }))\n                    }\n                    provideRenameEdits(e, t) {\n                        return F(this, void 0, void 0, (function*() {\n                            return this._provideRenameEdits(e, this._providerRenameIdx, [], t)\n                        }))\n                    }\n                    _provideRenameEdits(e, t, i, n) {\n                        return F(this, void 0, void 0, (function*() {\n                            const o = this._providers[t];\n                            if (!o) return {\n                                edits: [],\n                                rejectReason: i.join(\"\\n\")\n                            };\n                            const s = yield o.provideRenameEdits(this.model, this.position, e, n);\n                            return s ? s.rejectReason ? this._provideRenameEdits(e, t + 1, i.concat(s.rejectReason), n) : s : this._provideRenameEdits(e, t + 1, i.concat(w.N(\"no result\", \"No result.\")), n)\n                        }))\n                    }\n                }\n\n                function V(e, t, i) {\n                    return F(this, void 0, void 0, (function*() {\n                        const n = new B(e, t),\n                            o = yield n.resolveRenameLocation(s.T.None);\n                        return (null == o ? void 0 : o.rejectReason) ? {\n                            edits: [],\n                            rejectReason: o.rejectReason\n                        } : n.provideRenameEdits(i, s.T.None)\n                    }))\n                }\n                let W = class e {\n                    constructor(e, t, i, n, r, l, c) {\n                        this.editor = e, this._instaService = t, this._notificationService = i, this._bulkEditService = n, this._progressService = r, this._logService = l, this._configService = c, this._dispoableStore = new a.SL, this._cts = new s.A, this._renameInputField = this._dispoableStore.add(new o.Ue((() => this._dispoableStore.add(this._instaService.createInstance(O, this.editor, [\"acceptRenameInput\", \"acceptRenameInputWithPreview\"])))))\n                    }\n                    static get(t) {\n                        return t.getContribution(e.ID)\n                    }\n                    dispose() {\n                        this._dispoableStore.dispose(), this._cts.dispose(!0)\n                    }\n                    run() {\n                        return F(this, void 0, void 0, (function*() {\n                            if (this._cts.dispose(!0), !this.editor.hasModel()) return;\n                            const e = this.editor.getPosition(),\n                                t = new B(this.editor.getModel(), e);\n                            if (!t.hasProvider()) return;\n                            let i;\n                            this._cts = new d.Dl(this.editor, 5);\n                            try {\n                                const e = t.resolveRenameLocation(this._cts.token);\n                                this._progressService.showWhile(e, 250), i = yield e\n                            } catch (t) {\n                                return void b.O.get(this.editor).showMessage(t || w.N(\"resolveRenameLocationFailed\", \"An unknown error occurred while resolving rename location\"), e)\n                            }\n                            if (!i) return;\n                            if (i.rejectReason) return void b.O.get(this.editor).showMessage(i.rejectReason, e);\n                            if (this._cts.token.isCancellationRequested) return;\n                            this._cts.dispose(), this._cts = new d.Dl(this.editor, 5, i.range);\n                            let s = this.editor.getSelection(),\n                                r = 0,\n                                a = i.text.length;\n                            f.e.isEmpty(s) || f.e.spansMultipleLines(s) || !f.e.containsRange(i.range, s) || (r = Math.max(0, s.startColumn - i.range.startColumn), a = Math.min(i.range.endColumn, s.endColumn) - i.range.startColumn);\n                            const l = this._bulkEditService.hasPreviewHandler() && this._configService.getValue(this.editor.getModel().uri, \"editor.rename.enablePreview\"),\n                                c = yield this._renameInputField.value.getInput(i.range, i.text, r, a, l, this._cts.token);\n                            if (\"boolean\" == typeof c) return void(c && this.editor.focus());\n                            this.editor.focus();\n                            const h = (0, o.eP)(t.provideRenameEdits(c.newName, this._cts.token), this._cts.token).then((e => F(this, void 0, void 0, (function*() {\n                                e && this.editor.hasModel() && (e.rejectReason ? this._notificationService.info(e.rejectReason) : (this.editor.setSelection(f.e.fromPositions(this.editor.getSelection().getPosition())), this._bulkEditService.apply(u.fo.convert(e), {\n                                    editor: this.editor,\n                                    showPreview: c.wantsPreview,\n                                    label: w.N(\"label\", \"Renaming '{0}'\", null == i ? void 0 : i.text),\n                                    quotableLabel: w.N(\"quotableLabel\", \"Renaming {0}\", null == i ? void 0 : i.text)\n                                }).then((e => {\n                                    e.ariaSummary && (0, n.Z9)(w.N(\"aria\", \"Successfully renamed '{0}' to '{1}'. Summary: {2}\", i.text, c.newName, e.ariaSummary))\n                                })).catch((e => {\n                                    this._notificationService.error(w.N(\"rename.failedApply\", \"Rename failed to apply edits\")), this._logService.error(e)\n                                }))))\n                            }))), (e => {\n                                this._notificationService.error(w.N(\"rename.failed\", \"Rename failed to compute edits\")), this._logService.error(e)\n                            }));\n                            return this._progressService.showWhile(h, 250), h\n                        }))\n                    }\n                    acceptRenameInput(e) {\n                        this._renameInputField.value.acceptInput(e)\n                    }\n                    cancelRenameInput() {\n                        this._renameInputField.value.cancelInput(!0)\n                    }\n                };\n                W.ID = \"editor.contrib.renameController\", W = P([R(1, x.TG), R(2, k.lT), R(3, u.vu), R(4, L.e), R(5, S.VZ), R(6, _.V)], W);\n                class H extends h.R6 {\n                    constructor() {\n                        super({\n                            id: \"editor.action.rename\",\n                            label: w.N(\"rename.label\", \"Rename Symbol\"),\n                            alias: \"Rename Symbol\",\n                            precondition: C.Ao.and(m.u.writable, m.u.hasRenameProvider),\n                            kbOpts: {\n                                kbExpr: m.u.editorTextFocus,\n                                primary: 60,\n                                weight: 100\n                            },\n                            contextMenuOpts: {\n                                group: \"1_modification\",\n                                order: 1.1\n                            }\n                        })\n                    }\n                    runCommand(e, t) {\n                        const i = e.get(g.$),\n                            [n, o] = Array.isArray(t) && t || [void 0, void 0];\n                        return c.o.isUri(n) && p.L.isIPosition(o) ? i.openCodeEditor({\n                            resource: n\n                        }, i.getActiveCodeEditor()).then((e => {\n                            e && (e.setPosition(o), e.invokeWithinContext((t => (this.reportTelemetry(t, e), this.run(t, e)))))\n                        }), r.dL) : super.runCommand(e, t)\n                    }\n                    run(e, t) {\n                        const i = W.get(t);\n                        return i ? i.run() : Promise.resolve()\n                    }\n                }(0, h._K)(W.ID, W), (0, h.Qr)(H);\n                const z = h._l.bindToContribution(W.get);\n                (0, h.fK)(new z({\n                    id: \"acceptRenameInput\",\n                    precondition: A,\n                    handler: e => e.acceptRenameInput(!1),\n                    kbOpts: {\n                        weight: 199,\n                        kbExpr: m.u.focus,\n                        primary: 3\n                    }\n                })), (0, h.fK)(new z({\n                    id: \"acceptRenameInputWithPreview\",\n                    precondition: C.Ao.and(A, C.Ao.has(\"config.editor.rename.enablePreview\")),\n                    handler: e => e.acceptRenameInput(!0),\n                    kbOpts: {\n                        weight: 199,\n                        kbExpr: m.u.focus,\n                        primary: 1027\n                    }\n                })), (0, h.fK)(new z({\n                    id: \"cancelRenameInput\",\n                    precondition: A,\n                    handler: e => e.cancelRenameInput(),\n                    kbOpts: {\n                        weight: 199,\n                        kbExpr: m.u.focus,\n                        primary: 9,\n                        secondary: [1033]\n                    }\n                })), (0, h.sb)(\"_executeDocumentRenameProvider\", (function(e, t, ...i) {\n                    const [n] = i;\n                    return (0, l.p_)(\"string\" == typeof n), V(e, t, n)\n                })), (0, h.sb)(\"_executePrepareRename\", (function(e, t) {\n                    return F(this, void 0, void 0, (function*() {\n                        const i = new B(e, t),\n                            n = yield i.resolveRenameLocation(s.T.None);\n                        if (null == n ? void 0 : n.rejectReason) throw new Error(n.rejectReason);\n                        return n\n                    }))\n                })), N.B.as(y.IP.Configuration).registerConfiguration({\n                    id: \"editor\",\n                    properties: {\n                        \"editor.rename.enablePreview\": {\n                            scope: 5,\n                            description: w.N(\"enablePreview\", \"Enable/disable the ability to preview changes before renaming\"),\n                            default: !0,\n                            type: \"boolean\"\n                        }\n                    }\n                })\n            },\n            80689: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    x: () => a\n                });\n                var n = i(91741),\n                    o = i(50187),\n                    s = i(24314),\n                    r = function(e, t, i, n) {\n                        return new(i || (i = Promise))((function(o, s) {\n                            function r(e) {\n                                try {\n                                    l(n.next(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function a(e) {\n                                try {\n                                    l(n.throw(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function l(e) {\n                                var t;\n                                e.done ? o(e.value) : (t = e.value, t instanceof i ? t : new i((function(e) {\n                                    e(t)\n                                }))).then(r, a)\n                            }\n                            l((n = n.apply(e, t || [])).next())\n                        }))\n                    };\n                class a {\n                    provideSelectionRanges(e, t) {\n                        return r(this, void 0, void 0, (function*() {\n                            const i = [];\n                            for (const n of t) {\n                                const t = [];\n                                i.push(t);\n                                const o = new Map;\n                                yield new Promise((t => a._bracketsRightYield(t, 0, e, n, o))), yield new Promise((i => a._bracketsLeftYield(i, 0, e, n, o, t)))\n                            }\n                            return i\n                        }))\n                    }\n                    static _bracketsRightYield(e, t, i, o, s) {\n                        const r = new Map,\n                            l = Date.now();\n                        for (;;) {\n                            if (t >= a._maxRounds) {\n                                e();\n                                break\n                            }\n                            if (!o) {\n                                e();\n                                break\n                            }\n                            let c = i.findNextBracket(o);\n                            if (!c) {\n                                e();\n                                break\n                            }\n                            if (Date.now() - l > a._maxDuration) {\n                                setTimeout((() => a._bracketsRightYield(e, t + 1, i, o, s)));\n                                break\n                            }\n                            const d = c.close[0];\n                            if (c.isOpen) {\n                                let e = r.has(d) ? r.get(d) : 0;\n                                r.set(d, e + 1)\n                            } else {\n                                let e = r.has(d) ? r.get(d) : 0;\n                                if (e -= 1, r.set(d, Math.max(0, e)), e < 0) {\n                                    let e = s.get(d);\n                                    e || (e = new n.S, s.set(d, e)), e.push(c.range)\n                                }\n                            }\n                            o = c.range.getEndPosition()\n                        }\n                    }\n                    static _bracketsLeftYield(e, t, i, n, o, r) {\n                        const l = new Map,\n                            c = Date.now();\n                        for (;;) {\n                            if (t >= a._maxRounds && 0 === o.size) {\n                                e();\n                                break\n                            }\n                            if (!n) {\n                                e();\n                                break\n                            }\n                            let d = i.findPrevBracket(n);\n                            if (!d) {\n                                e();\n                                break\n                            }\n                            if (Date.now() - c > a._maxDuration) {\n                                setTimeout((() => a._bracketsLeftYield(e, t + 1, i, n, o, r)));\n                                break\n                            }\n                            const h = d.close[0];\n                            if (d.isOpen) {\n                                let e = l.has(h) ? l.get(h) : 0;\n                                if (e -= 1, l.set(h, Math.max(0, e)), e < 0) {\n                                    let e = o.get(h);\n                                    if (e) {\n                                        let t = e.shift();\n                                        0 === e.size && o.delete(h);\n                                        const n = s.e.fromPositions(d.range.getEndPosition(), t.getStartPosition()),\n                                            l = s.e.fromPositions(d.range.getStartPosition(), t.getEndPosition());\n                                        r.push({\n                                            range: n\n                                        }), r.push({\n                                            range: l\n                                        }), a._addBracketLeading(i, l, r)\n                                    }\n                                }\n                            } else {\n                                let e = l.has(h) ? l.get(h) : 0;\n                                l.set(h, e + 1)\n                            }\n                            n = d.range.getStartPosition()\n                        }\n                    }\n                    static _addBracketLeading(e, t, i) {\n                        if (t.startLineNumber === t.endLineNumber) return;\n                        const n = t.startLineNumber,\n                            r = e.getLineFirstNonWhitespaceColumn(n);\n                        0 !== r && r !== t.startColumn && (i.push({\n                            range: s.e.fromPositions(new o.L(n, r), t.getEndPosition())\n                        }), i.push({\n                            range: s.e.fromPositions(new o.L(n, 1), t.getEndPosition())\n                        }));\n                        const a = n - 1;\n                        if (a > 0) {\n                            const n = e.getLineFirstNonWhitespaceColumn(a);\n                            n === t.startColumn && n !== e.getLineLastNonWhitespaceColumn(a) && (i.push({\n                                range: s.e.fromPositions(new o.L(a, n), t.getEndPosition())\n                            }), i.push({\n                                range: s.e.fromPositions(new o.L(a, 1), t.getEndPosition())\n                            }))\n                        }\n                    }\n                }\n                a._maxDuration = 30, a._maxRounds = 2\n            },\n            81955: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    provideSelectionRanges: () => y\n                });\n                var n = i(9488),\n                    o = i(71050),\n                    s = i(17301),\n                    r = i(16830),\n                    a = i(50187),\n                    l = i(24314),\n                    c = i(3860),\n                    d = i(29102),\n                    h = i(44101),\n                    u = i(80689),\n                    g = i(97295);\n                var p = i(63580),\n                    f = i(84144),\n                    m = i(94565),\n                    v = function(e, t, i, n) {\n                        return new(i || (i = Promise))((function(o, s) {\n                            function r(e) {\n                                try {\n                                    l(n.next(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function a(e) {\n                                try {\n                                    l(n.throw(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function l(e) {\n                                var t;\n                                e.done ? o(e.value) : (t = e.value, t instanceof i ? t : new i((function(e) {\n                                    e(t)\n                                }))).then(r, a)\n                            }\n                            l((n = n.apply(e, t || [])).next())\n                        }))\n                    };\n                class _ {\n                    constructor(e, t) {\n                        this.index = e, this.ranges = t\n                    }\n                    mov(e) {\n                        let t = this.index + (e ? 1 : -1);\n                        if (t < 0 || t >= this.ranges.length) return this;\n                        const i = new _(t, this.ranges);\n                        return i.ranges[t].equalsRange(this.ranges[this.index]) ? i.mov(e) : i\n                    }\n                }\n                class b {\n                    constructor(e) {\n                        this._editor = e, this._ignoreSelection = !1\n                    }\n                    static get(e) {\n                        return e.getContribution(b.ID)\n                    }\n                    dispose() {\n                        var e;\n                        null === (e = this._selectionListener) || void 0 === e || e.dispose()\n                    }\n                    run(e) {\n                        return v(this, void 0, void 0, (function*() {\n                            if (!this._editor.hasModel()) return;\n                            const t = this._editor.getSelections(),\n                                i = this._editor.getModel();\n                            if (!h.AC.has(i)) return;\n                            if (this._state || (yield y(i, t.map((e => e.getPosition())), this._editor.getOption(101), o.T.None).then((e => {\n                                    var i;\n                                    if (n.Of(e) && e.length === t.length && this._editor.hasModel() && n.fS(this._editor.getSelections(), t, ((e, t) => e.equalsSelection(t)))) {\n                                        for (let i = 0; i < e.length; i++) e[i] = e[i].filter((e => e.containsPosition(t[i].getStartPosition()) && e.containsPosition(t[i].getEndPosition()))), e[i].unshift(t[i]);\n                                        this._state = e.map((e => new _(0, e))), null === (i = this._selectionListener) || void 0 === i || i.dispose(), this._selectionListener = this._editor.onDidChangeCursorPosition((() => {\n                                            var e;\n                                            this._ignoreSelection || (null === (e = this._selectionListener) || void 0 === e || e.dispose(), this._state = void 0)\n                                        }))\n                                    }\n                                }))), !this._state) return;\n                            this._state = this._state.map((t => t.mov(e)));\n                            const s = this._state.map((e => c.Y.fromPositions(e.ranges[e.index].getStartPosition(), e.ranges[e.index].getEndPosition())));\n                            this._ignoreSelection = !0;\n                            try {\n                                this._editor.setSelections(s)\n                            } finally {\n                                this._ignoreSelection = !1\n                            }\n                        }))\n                    }\n                }\n                b.ID = \"editor.contrib.smartSelectController\";\n                class w extends r.R6 {\n                    constructor(e, t) {\n                        super(t), this._forward = e\n                    }\n                    run(e, t) {\n                        return v(this, void 0, void 0, (function*() {\n                            let e = b.get(t);\n                            e && (yield e.run(this._forward))\n                        }))\n                    }\n                }\n                m.P.registerCommandAlias(\"editor.action.smartSelect.grow\", \"editor.action.smartSelect.expand\");\n\n                function y(e, t, i, o) {\n                    return v(this, void 0, void 0, (function*() {\n                        const r = h.AC.all(e);\n                        1 === r.length && r.unshift(new u.x);\n                        let c = [],\n                            d = [];\n                        for (const i of r) c.push(Promise.resolve(i.provideSelectionRanges(e, t, o)).then((e => {\n                            if (n.Of(e) && e.length === t.length)\n                                for (let i = 0; i < t.length; i++) {\n                                    d[i] || (d[i] = []);\n                                    for (const n of e[i]) l.e.isIRange(n.range) && l.e.containsPosition(n.range, t[i]) && d[i].push(l.e.lift(n.range))\n                                }\n                        }), s.Cp));\n                        return yield Promise.all(c), d.map((t => {\n                            if (0 === t.length) return [];\n                            t.sort(((e, t) => a.L.isBefore(e.getStartPosition(), t.getStartPosition()) ? 1 : a.L.isBefore(t.getStartPosition(), e.getStartPosition()) || a.L.isBefore(e.getEndPosition(), t.getEndPosition()) ? -1 : a.L.isBefore(t.getEndPosition(), e.getEndPosition()) ? 1 : 0));\n                            let n, o = [];\n                            for (const e of t)(!n || l.e.containsRange(e, n) && !l.e.equalsRange(e, n)) && (o.push(e), n = e);\n                            if (!i.selectLeadingAndTrailingWhitespace) return o;\n                            let s = [o[0]];\n                            for (let t = 1; t < o.length; t++) {\n                                const i = o[t - 1],\n                                    n = o[t];\n                                if (n.startLineNumber !== i.startLineNumber || n.endLineNumber !== i.endLineNumber) {\n                                    const t = new l.e(i.startLineNumber, e.getLineFirstNonWhitespaceColumn(i.startLineNumber), i.endLineNumber, e.getLineLastNonWhitespaceColumn(i.endLineNumber));\n                                    t.containsRange(i) && !t.equalsRange(i) && n.containsRange(t) && !n.equalsRange(t) && s.push(t);\n                                    const o = new l.e(i.startLineNumber, 1, i.endLineNumber, e.getLineMaxColumn(i.endLineNumber));\n                                    o.containsRange(i) && !o.equalsRange(t) && n.containsRange(o) && !n.equalsRange(o) && s.push(o)\n                                }\n                                s.push(n)\n                            }\n                            return s\n                        }))\n                    }))\n                }(0, r._K)(b.ID, b), (0, r.Qr)(class extends w {\n                    constructor() {\n                        super(!0, {\n                            id: \"editor.action.smartSelect.expand\",\n                            label: p.N(\"smartSelect.expand\", \"Expand Selection\"),\n                            alias: \"Expand Selection\",\n                            precondition: void 0,\n                            kbOpts: {\n                                kbExpr: d.u.editorTextFocus,\n                                primary: 1553,\n                                mac: {\n                                    primary: 3345,\n                                    secondary: [1297]\n                                },\n                                weight: 100\n                            },\n                            menuOpts: {\n                                menuId: f.eH.MenubarSelectionMenu,\n                                group: \"1_basic\",\n                                title: p.N({\n                                    key: \"miSmartSelectGrow\",\n                                    comment: [\"&& denotes a mnemonic\"]\n                                }, \"&&Expand Selection\"),\n                                order: 2\n                            }\n                        })\n                    }\n                }), (0, r.Qr)(class extends w {\n                    constructor() {\n                        super(!1, {\n                            id: \"editor.action.smartSelect.shrink\",\n                            label: p.N(\"smartSelect.shrink\", \"Shrink Selection\"),\n                            alias: \"Shrink Selection\",\n                            precondition: void 0,\n                            kbOpts: {\n                                kbExpr: d.u.editorTextFocus,\n                                primary: 1551,\n                                mac: {\n                                    primary: 3343,\n                                    secondary: [1295]\n                                },\n                                weight: 100\n                            },\n                            menuOpts: {\n                                menuId: f.eH.MenubarSelectionMenu,\n                                group: \"1_basic\",\n                                title: p.N({\n                                    key: \"miSmartSelectShrink\",\n                                    comment: [\"&& denotes a mnemonic\"]\n                                }, \"&&Shrink Selection\"),\n                                order: 3\n                            }\n                        })\n                    }\n                }), h.AC.register(\"*\", new class {\n                    provideSelectionRanges(e, t) {\n                        const i = [];\n                        for (const n of t) {\n                            const t = [];\n                            i.push(t), this._addInWordRanges(t, e, n), this._addWordRanges(t, e, n), this._addWhitespaceLine(t, e, n), t.push({\n                                range: e.getFullModelRange()\n                            })\n                        }\n                        return i\n                    }\n                    _addInWordRanges(e, t, i) {\n                        const n = t.getWordAtPosition(i);\n                        if (!n) return;\n                        let {\n                            word: o,\n                            startColumn: s\n                        } = n, r = i.column - s, a = r, c = r, d = 0;\n                        for (; a >= 0; a--) {\n                            let e = o.charCodeAt(a);\n                            if (a !== r && (95 === e || 45 === e)) break;\n                            if ((0, g.mK)(e) && (0, g.df)(d)) break;\n                            d = e\n                        }\n                        for (a += 1; c < o.length; c++) {\n                            let e = o.charCodeAt(c);\n                            if ((0, g.df)(e) && (0, g.mK)(d)) break;\n                            if (95 === e || 45 === e) break;\n                            d = e\n                        }\n                        a < c && e.push({\n                            range: new l.e(i.lineNumber, s + a, i.lineNumber, s + c)\n                        })\n                    }\n                    _addWordRanges(e, t, i) {\n                        const n = t.getWordAtPosition(i);\n                        n && e.push({\n                            range: new l.e(i.lineNumber, n.startColumn, i.lineNumber, n.endColumn)\n                        })\n                    }\n                    _addWhitespaceLine(e, t, i) {\n                        t.getLineLength(i.lineNumber) > 0 && 0 === t.getLineFirstNonWhitespaceColumn(i.lineNumber) && 0 === t.getLineLastNonWhitespaceColumn(i.lineNumber) && e.push({\n                            range: new l.e(i.lineNumber, 1, i.lineNumber, t.getLineMaxColumn(i.lineNumber))\n                        })\n                    }\n                }), (0, r.f)(\"_executeSelectionRangeProvider\", (function(e, ...t) {\n                    const [i] = t;\n                    return y(e, i, {\n                        selectLeadingAndTrailingWhitespace: !0\n                    }, o.T.None)\n                }))\n            },\n            93379: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    SnippetController2: () => m\n                });\n                var n = i(5976),\n                    o = i(16830),\n                    s = i(24314),\n                    r = i(3860),\n                    a = i(29102),\n                    l = i(79599),\n                    c = i(63580),\n                    d = i(38819),\n                    h = i(43557),\n                    u = i(87548),\n                    g = function(e, t, i, n) {\n                        var o, s = arguments.length,\n                            r = s < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n                        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) r = Reflect.decorate(e, t, i, n);\n                        else\n                            for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (r = (s < 3 ? o(r) : s > 3 ? o(t, i, r) : o(t, i)) || r);\n                        return s > 3 && r && Object.defineProperty(t, i, r), r\n                    },\n                    p = function(e, t) {\n                        return function(i, n) {\n                            t(i, n, e)\n                        }\n                    };\n                const f = {\n                    overwriteBefore: 0,\n                    overwriteAfter: 0,\n                    undoStopBefore: !0,\n                    undoStopAfter: !0,\n                    adjustWhitespace: !0,\n                    clipboardText: void 0,\n                    overtypingCapturer: void 0\n                };\n                let m = class e {\n                    constructor(t, i, o) {\n                        this._editor = t, this._logService = i, this._snippetListener = new n.SL, this._modelVersionId = -1, this._inSnippet = e.InSnippetMode.bindTo(o), this._hasNextTabstop = e.HasNextTabstop.bindTo(o), this._hasPrevTabstop = e.HasPrevTabstop.bindTo(o)\n                    }\n                    static get(t) {\n                        return t.getContribution(e.ID)\n                    }\n                    dispose() {\n                        var e;\n                        this._inSnippet.reset(), this._hasPrevTabstop.reset(), this._hasNextTabstop.reset(), null === (e = this._session) || void 0 === e || e.dispose(), this._snippetListener.dispose()\n                    }\n                    insert(e, t) {\n                        try {\n                            this._doInsert(e, void 0 === t ? f : Object.assign(Object.assign({}, f), t))\n                        } catch (t) {\n                            this.cancel(), this._logService.error(t), this._logService.error(\"snippet_error\"), this._logService.error(\"insert_template=\", e), this._logService.error(\"existing_template=\", this._session ? this._session._logInfo() : \"<no_session>\")\n                        }\n                    }\n                    _doInsert(e, t) {\n                        this._editor.hasModel() && (this._snippetListener.clear(), t.undoStopBefore && this._editor.getModel().pushStackElement(), this._session ? this._session.merge(e, t) : (this._modelVersionId = this._editor.getModel().getAlternativeVersionId(), this._session = new u.l(this._editor, e, t), this._session.insert()), t.undoStopAfter && this._editor.getModel().pushStackElement(), this._updateState(), this._snippetListener.add(this._editor.onDidChangeModelContent((e => e.isFlush && this.cancel()))), this._snippetListener.add(this._editor.onDidChangeModel((() => this.cancel()))), this._snippetListener.add(this._editor.onDidChangeCursorSelection((() => this._updateState()))))\n                    }\n                    _updateState() {\n                        if (this._session && this._editor.hasModel()) {\n                            if (this._modelVersionId === this._editor.getModel().getAlternativeVersionId()) return this.cancel();\n                            if (!this._session.hasPlaceholder) return this.cancel();\n                            if (this._session.isAtLastPlaceholder || !this._session.isSelectionWithinPlaceholders()) return this.cancel();\n                            this._inSnippet.set(!0), this._hasPrevTabstop.set(!this._session.isAtFirstPlaceholder), this._hasNextTabstop.set(!this._session.isAtLastPlaceholder), this._handleChoice()\n                        }\n                    }\n                    _handleChoice() {\n                        if (!this._session || !this._editor.hasModel()) return void(this._currentChoice = void 0);\n                        const {\n                            choice: e\n                        } = this._session;\n                        if (e) {\n                            if (this._currentChoice !== e) {\n                                this._currentChoice = e, this._editor.setSelections(this._editor.getSelections().map((e => r.Y.fromPositions(e.getStartPosition()))));\n                                const [t] = e.options;\n                                (0, l.i5)(this._editor, e.options.map(((e, i) => ({\n                                    kind: 13,\n                                    label: e.value,\n                                    insertText: e.value,\n                                    sortText: \"a\".repeat(i + 1),\n                                    range: s.e.fromPositions(this._editor.getPosition(), this._editor.getPosition().delta(0, t.value.length))\n                                }))))\n                            }\n                        } else this._currentChoice = void 0\n                    }\n                    finish() {\n                        for (; this._inSnippet.get();) this.next()\n                    }\n                    cancel(e = !1) {\n                        var t;\n                        this._inSnippet.reset(), this._hasPrevTabstop.reset(), this._hasNextTabstop.reset(), this._snippetListener.clear(), null === (t = this._session) || void 0 === t || t.dispose(), this._session = void 0, this._modelVersionId = -1, e && this._editor.setSelections([this._editor.getSelection()])\n                    }\n                    prev() {\n                        this._session && this._session.prev(), this._updateState()\n                    }\n                    next() {\n                        this._session && this._session.next(), this._updateState()\n                    }\n                    isInSnippet() {\n                        return Boolean(this._inSnippet.get())\n                    }\n                };\n                m.ID = \"snippetController2\", m.InSnippetMode = new d.uy(\"inSnippetMode\", !1, (0, c.N)(\"inSnippetMode\", \"Whether the editor in current in snippet mode\")), m.HasNextTabstop = new d.uy(\"hasNextTabstop\", !1, (0, c.N)(\"hasNextTabstop\", \"Whether there is a next tab stop when in snippet mode\")), m.HasPrevTabstop = new d.uy(\"hasPrevTabstop\", !1, (0, c.N)(\"hasPrevTabstop\", \"Whether there is a previous tab stop when in snippet mode\")), m = g([p(1, h.VZ), p(2, d.i6)], m), (0, o._K)(m.ID, m);\n                const v = o._l.bindToContribution(m.get);\n                (0, o.fK)(new v({\n                    id: \"jumpToNextSnippetPlaceholder\",\n                    precondition: d.Ao.and(m.InSnippetMode, m.HasNextTabstop),\n                    handler: e => e.next(),\n                    kbOpts: {\n                        weight: 130,\n                        kbExpr: a.u.editorTextFocus,\n                        primary: 2\n                    }\n                })), (0, o.fK)(new v({\n                    id: \"jumpToPrevSnippetPlaceholder\",\n                    precondition: d.Ao.and(m.InSnippetMode, m.HasPrevTabstop),\n                    handler: e => e.prev(),\n                    kbOpts: {\n                        weight: 130,\n                        kbExpr: a.u.editorTextFocus,\n                        primary: 1026\n                    }\n                })), (0, o.fK)(new v({\n                    id: \"leaveSnippet\",\n                    precondition: m.InSnippetMode,\n                    handler: e => e.cancel(!0),\n                    kbOpts: {\n                        weight: 130,\n                        kbExpr: a.u.editorTextFocus,\n                        primary: 9,\n                        secondary: [1033]\n                    }\n                })), (0, o.fK)(new v({\n                    id: \"acceptSnippet\",\n                    precondition: m.InSnippetMode,\n                    handler: e => e.finish()\n                }))\n            },\n            63472: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    Lv: () => l,\n                    Vm: () => a,\n                    Yj: () => p,\n                    xv: () => s\n                });\n                class n {\n                    constructor() {\n                        this.value = \"\", this.pos = 0\n                    }\n                    static isDigitCharacter(e) {\n                        return e >= 48 && e <= 57\n                    }\n                    static isVariableCharacter(e) {\n                        return 95 === e || e >= 97 && e <= 122 || e >= 65 && e <= 90\n                    }\n                    text(e) {\n                        this.value = e, this.pos = 0\n                    }\n                    tokenText(e) {\n                        return this.value.substr(e.pos, e.len)\n                    }\n                    next() {\n                        if (this.pos >= this.value.length) return {\n                            type: 14,\n                            pos: this.pos,\n                            len: 0\n                        };\n                        let e, t = this.pos,\n                            i = 0,\n                            o = this.value.charCodeAt(t);\n                        if (e = n._table[o], \"number\" == typeof e) return this.pos += 1, {\n                            type: e,\n                            pos: t,\n                            len: 1\n                        };\n                        if (n.isDigitCharacter(o)) {\n                            e = 8;\n                            do {\n                                i += 1, o = this.value.charCodeAt(t + i)\n                            } while (n.isDigitCharacter(o));\n                            return this.pos += i, {\n                                type: e,\n                                pos: t,\n                                len: i\n                            }\n                        }\n                        if (n.isVariableCharacter(o)) {\n                            e = 9;\n                            do {\n                                o = this.value.charCodeAt(t + ++i)\n                            } while (n.isVariableCharacter(o) || n.isDigitCharacter(o));\n                            return this.pos += i, {\n                                type: e,\n                                pos: t,\n                                len: i\n                            }\n                        }\n                        e = 10;\n                        do {\n                            i += 1, o = this.value.charCodeAt(t + i)\n                        } while (!isNaN(o) && void 0 === n._table[o] && !n.isDigitCharacter(o) && !n.isVariableCharacter(o));\n                        return this.pos += i, {\n                            type: e,\n                            pos: t,\n                            len: i\n                        }\n                    }\n                }\n                n._table = {\n                    36: 0,\n                    58: 1,\n                    44: 2,\n                    123: 3,\n                    125: 4,\n                    92: 5,\n                    47: 6,\n                    124: 7,\n                    43: 11,\n                    45: 12,\n                    63: 13\n                };\n                class o {\n                    constructor() {\n                        this._children = []\n                    }\n                    appendChild(e) {\n                        return e instanceof s && this._children[this._children.length - 1] instanceof s ? this._children[this._children.length - 1].value += e.value : (e.parent = this, this._children.push(e)), this\n                    }\n                    replace(e, t) {\n                        const {\n                            parent: i\n                        } = e, n = i.children.indexOf(e), o = i.children.slice(0);\n                        o.splice(n, 1, ...t), i._children = o,\n                            function e(t, i) {\n                                for (const n of t) n.parent = i, e(n.children, n)\n                            }(t, i)\n                    }\n                    get children() {\n                        return this._children\n                    }\n                    get snippet() {\n                        let e = this;\n                        for (;;) {\n                            if (!e) return;\n                            if (e instanceof g) return e;\n                            e = e.parent\n                        }\n                    }\n                    toString() {\n                        return this.children.reduce(((e, t) => e + t.toString()), \"\")\n                    }\n                    len() {\n                        return 0\n                    }\n                }\n                class s extends o {\n                    constructor(e) {\n                        super(), this.value = e\n                    }\n                    toString() {\n                        return this.value\n                    }\n                    len() {\n                        return this.value.length\n                    }\n                    clone() {\n                        return new s(this.value)\n                    }\n                }\n                class r extends o {}\n                class a extends r {\n                    constructor(e) {\n                        super(), this.index = e\n                    }\n                    static compareByIndex(e, t) {\n                        return e.index === t.index ? 0 : e.isFinalTabstop ? 1 : t.isFinalTabstop || e.index < t.index ? -1 : e.index > t.index ? 1 : 0\n                    }\n                    get isFinalTabstop() {\n                        return 0 === this.index\n                    }\n                    get choice() {\n                        return 1 === this._children.length && this._children[0] instanceof l ? this._children[0] : void 0\n                    }\n                    clone() {\n                        let e = new a(this.index);\n                        return this.transform && (e.transform = this.transform.clone()), e._children = this.children.map((e => e.clone())), e\n                    }\n                }\n                class l extends o {\n                    constructor() {\n                        super(...arguments), this.options = []\n                    }\n                    appendChild(e) {\n                        return e instanceof s && (e.parent = this, this.options.push(e)), this\n                    }\n                    toString() {\n                        return this.options[0].value\n                    }\n                    len() {\n                        return this.options[0].len()\n                    }\n                    clone() {\n                        let e = new l;\n                        return this.options.forEach(e.appendChild, e), e\n                    }\n                }\n                class c extends o {\n                    constructor() {\n                        super(...arguments), this.regexp = new RegExp(\"\")\n                    }\n                    resolve(e) {\n                        const t = this;\n                        let i = !1,\n                            n = e.replace(this.regexp, (function() {\n                                return i = !0, t._replace(Array.prototype.slice.call(arguments, 0, -2))\n                            }));\n                        return !i && this._children.some((e => e instanceof d && Boolean(e.elseValue))) && (n = this._replace([])), n\n                    }\n                    _replace(e) {\n                        let t = \"\";\n                        for (const i of this._children)\n                            if (i instanceof d) {\n                                let n = e[i.index] || \"\";\n                                n = i.resolve(n), t += n\n                            } else t += i.toString();\n                        return t\n                    }\n                    toString() {\n                        return \"\"\n                    }\n                    clone() {\n                        let e = new c;\n                        return e.regexp = new RegExp(this.regexp.source, (this.regexp.ignoreCase ? \"i\" : \"\") + (this.regexp.global ? \"g\" : \"\")), e._children = this.children.map((e => e.clone())), e\n                    }\n                }\n                class d extends o {\n                    constructor(e, t, i, n) {\n                        super(), this.index = e, this.shorthandName = t, this.ifValue = i, this.elseValue = n\n                    }\n                    resolve(e) {\n                        return \"upcase\" === this.shorthandName ? e ? e.toLocaleUpperCase() : \"\" : \"downcase\" === this.shorthandName ? e ? e.toLocaleLowerCase() : \"\" : \"capitalize\" === this.shorthandName ? e ? e[0].toLocaleUpperCase() + e.substr(1) : \"\" : \"pascalcase\" === this.shorthandName ? e ? this._toPascalCase(e) : \"\" : \"camelcase\" === this.shorthandName ? e ? this._toCamelCase(e) : \"\" : Boolean(e) && \"string\" == typeof this.ifValue ? this.ifValue : Boolean(e) || \"string\" != typeof this.elseValue ? e || \"\" : this.elseValue\n                    }\n                    _toPascalCase(e) {\n                        const t = e.match(/[a-z0-9]+/gi);\n                        return t ? t.map((e => e.charAt(0).toUpperCase() + e.substr(1).toLowerCase())).join(\"\") : e\n                    }\n                    _toCamelCase(e) {\n                        const t = e.match(/[a-z0-9]+/gi);\n                        return t ? t.map(((e, t) => 0 === t ? e.toLowerCase() : e.charAt(0).toUpperCase() + e.substr(1).toLowerCase())).join(\"\") : e\n                    }\n                    clone() {\n                        return new d(this.index, this.shorthandName, this.ifValue, this.elseValue)\n                    }\n                }\n                class h extends r {\n                    constructor(e) {\n                        super(), this.name = e\n                    }\n                    resolve(e) {\n                        let t = e.resolve(this);\n                        return this.transform && (t = this.transform.resolve(t || \"\")), void 0 !== t && (this._children = [new s(t)], !0)\n                    }\n                    clone() {\n                        const e = new h(this.name);\n                        return this.transform && (e.transform = this.transform.clone()), e._children = this.children.map((e => e.clone())), e\n                    }\n                }\n\n                function u(e, t) {\n                    const i = [...e];\n                    for (; i.length > 0;) {\n                        const e = i.shift();\n                        if (!t(e)) break;\n                        i.unshift(...e.children)\n                    }\n                }\n                class g extends o {\n                    get placeholderInfo() {\n                        if (!this._placeholders) {\n                            let e, t = [];\n                            this.walk((function(i) {\n                                return i instanceof a && (t.push(i), e = !e || e.index < i.index ? i : e), !0\n                            })), this._placeholders = {\n                                all: t,\n                                last: e\n                            }\n                        }\n                        return this._placeholders\n                    }\n                    get placeholders() {\n                        const {\n                            all: e\n                        } = this.placeholderInfo;\n                        return e\n                    }\n                    offset(e) {\n                        let t = 0,\n                            i = !1;\n                        return this.walk((n => n === e ? (i = !0, !1) : (t += n.len(), !0))), i ? t : -1\n                    }\n                    fullLen(e) {\n                        let t = 0;\n                        return u([e], (e => (t += e.len(), !0))), t\n                    }\n                    enclosingPlaceholders(e) {\n                        let t = [],\n                            {\n                                parent: i\n                            } = e;\n                        for (; i;) i instanceof a && t.push(i), i = i.parent;\n                        return t\n                    }\n                    resolveVariables(e) {\n                        return this.walk((t => (t instanceof h && t.resolve(e) && (this._placeholders = void 0), !0))), this\n                    }\n                    appendChild(e) {\n                        return this._placeholders = void 0, super.appendChild(e)\n                    }\n                    replace(e, t) {\n                        return this._placeholders = void 0, super.replace(e, t)\n                    }\n                    clone() {\n                        let e = new g;\n                        return this._children = this.children.map((e => e.clone())), e\n                    }\n                    walk(e) {\n                        u(this.children, e)\n                    }\n                }\n                class p {\n                    constructor() {\n                        this._scanner = new n, this._token = {\n                            type: 14,\n                            pos: 0,\n                            len: 0\n                        }\n                    }\n                    static escape(e) {\n                        return e.replace(/\\$|}|\\\\/g, \"\\\\$&\")\n                    }\n                    static guessNeedsClipboard(e) {\n                        return /\\${?CLIPBOARD/.test(e)\n                    }\n                    parse(e, t, i) {\n                        this._scanner.text(e), this._token = this._scanner.next();\n                        const n = new g;\n                        for (; this._parse(n););\n                        const o = new Map,\n                            s = [];\n                        let r = 0;\n                        n.walk((e => (e instanceof a && (r += 1, e.isFinalTabstop ? o.set(0, void 0) : !o.has(e.index) && e.children.length > 0 ? o.set(e.index, e.children) : s.push(e)), !0)));\n                        for (const e of s) {\n                            const t = o.get(e.index);\n                            if (t) {\n                                const i = new a(e.index);\n                                i.transform = e.transform;\n                                for (const e of t) i.appendChild(e.clone());\n                                n.replace(e, [i])\n                            }\n                        }\n                        return i || (i = r > 0 && t), !o.has(0) && i && n.appendChild(new a(0)), n\n                    }\n                    _accept(e, t) {\n                        if (void 0 === e || this._token.type === e) {\n                            let e = !t || this._scanner.tokenText(this._token);\n                            return this._token = this._scanner.next(), e\n                        }\n                        return !1\n                    }\n                    _backTo(e) {\n                        return this._scanner.pos = e.pos + e.len, this._token = e, !1\n                    }\n                    _until(e) {\n                        const t = this._token;\n                        for (; this._token.type !== e;) {\n                            if (14 === this._token.type) return !1;\n                            if (5 === this._token.type) {\n                                const e = this._scanner.next();\n                                if (0 !== e.type && 4 !== e.type && 5 !== e.type) return !1\n                            }\n                            this._token = this._scanner.next()\n                        }\n                        const i = this._scanner.value.substring(t.pos, this._token.pos).replace(/\\\\(\\$|}|\\\\)/g, \"$1\");\n                        return this._token = this._scanner.next(), i\n                    }\n                    _parse(e) {\n                        return this._parseEscaped(e) || this._parseTabstopOrVariableName(e) || this._parseComplexPlaceholder(e) || this._parseComplexVariable(e) || this._parseAnything(e)\n                    }\n                    _parseEscaped(e) {\n                        let t;\n                        return !!(t = this._accept(5, !0)) && (t = this._accept(0, !0) || this._accept(4, !0) || this._accept(5, !0) || t, e.appendChild(new s(t)), !0)\n                    }\n                    _parseTabstopOrVariableName(e) {\n                        let t;\n                        const i = this._token;\n                        return this._accept(0) && (t = this._accept(9, !0) || this._accept(8, !0)) ? (e.appendChild(/^\\d+$/.test(t) ? new a(Number(t)) : new h(t)), !0) : this._backTo(i)\n                    }\n                    _parseComplexPlaceholder(e) {\n                        let t;\n                        const i = this._token;\n                        if (!(this._accept(0) && this._accept(3) && (t = this._accept(8, !0)))) return this._backTo(i);\n                        const n = new a(Number(t));\n                        if (this._accept(1))\n                            for (;;) {\n                                if (this._accept(4)) return e.appendChild(n), !0;\n                                if (!this._parse(n)) return e.appendChild(new s(\"${\" + t + \":\")), n.children.forEach(e.appendChild, e), !0\n                            } else {\n                                if (!(n.index > 0 && this._accept(7))) return this._accept(6) ? this._parseTransform(n) ? (e.appendChild(n), !0) : (this._backTo(i), !1) : this._accept(4) ? (e.appendChild(n), !0) : this._backTo(i); {\n                                    const t = new l;\n                                    for (;;) {\n                                        if (this._parseChoiceElement(t)) {\n                                            if (this._accept(2)) continue;\n                                            if (this._accept(7) && (n.appendChild(t), this._accept(4))) return e.appendChild(n), !0\n                                        }\n                                        return this._backTo(i), !1\n                                    }\n                                }\n                            }\n                    }\n                    _parseChoiceElement(e) {\n                        const t = this._token,\n                            i = [];\n                        for (; 2 !== this._token.type && 7 !== this._token.type;) {\n                            let e;\n                            if (e = (e = this._accept(5, !0)) ? this._accept(2, !0) || this._accept(7, !0) || this._accept(5, !0) || e : this._accept(void 0, !0), !e) return this._backTo(t), !1;\n                            i.push(e)\n                        }\n                        return 0 === i.length ? (this._backTo(t), !1) : (e.appendChild(new s(i.join(\"\"))), !0)\n                    }\n                    _parseComplexVariable(e) {\n                        let t;\n                        const i = this._token;\n                        if (!(this._accept(0) && this._accept(3) && (t = this._accept(9, !0)))) return this._backTo(i);\n                        const n = new h(t);\n                        if (!this._accept(1)) return this._accept(6) ? this._parseTransform(n) ? (e.appendChild(n), !0) : (this._backTo(i), !1) : this._accept(4) ? (e.appendChild(n), !0) : this._backTo(i);\n                        for (;;) {\n                            if (this._accept(4)) return e.appendChild(n), !0;\n                            if (!this._parse(n)) return e.appendChild(new s(\"${\" + t + \":\")), n.children.forEach(e.appendChild, e), !0\n                        }\n                    }\n                    _parseTransform(e) {\n                        let t = new c,\n                            i = \"\",\n                            n = \"\";\n                        for (; !this._accept(6);) {\n                            let e;\n                            if (e = this._accept(5, !0)) e = this._accept(6, !0) || e, i += e;\n                            else {\n                                if (14 === this._token.type) return !1;\n                                i += this._accept(void 0, !0)\n                            }\n                        }\n                        for (; !this._accept(6);) {\n                            let e;\n                            if (e = this._accept(5, !0)) e = this._accept(5, !0) || this._accept(6, !0) || e, t.appendChild(new s(e));\n                            else if (!this._parseFormatString(t) && !this._parseAnything(t)) return !1\n                        }\n                        for (; !this._accept(4);) {\n                            if (14 === this._token.type) return !1;\n                            n += this._accept(void 0, !0)\n                        }\n                        try {\n                            t.regexp = new RegExp(i, n)\n                        } catch (e) {\n                            return !1\n                        }\n                        return e.transform = t, !0\n                    }\n                    _parseFormatString(e) {\n                        const t = this._token;\n                        if (!this._accept(0)) return !1;\n                        let i = !1;\n                        this._accept(3) && (i = !0);\n                        let n = this._accept(8, !0);\n                        if (!n) return this._backTo(t), !1;\n                        if (!i) return e.appendChild(new d(Number(n))), !0;\n                        if (this._accept(4)) return e.appendChild(new d(Number(n))), !0;\n                        if (!this._accept(1)) return this._backTo(t), !1;\n                        if (this._accept(6)) {\n                            let i = this._accept(9, !0);\n                            return i && this._accept(4) ? (e.appendChild(new d(Number(n), i)), !0) : (this._backTo(t), !1)\n                        }\n                        if (this._accept(11)) {\n                            let t = this._until(4);\n                            if (t) return e.appendChild(new d(Number(n), void 0, t, void 0)), !0\n                        } else if (this._accept(12)) {\n                            let t = this._until(4);\n                            if (t) return e.appendChild(new d(Number(n), void 0, void 0, t)), !0\n                        } else if (this._accept(13)) {\n                            let t = this._until(1);\n                            if (t) {\n                                let i = this._until(4);\n                                if (i) return e.appendChild(new d(Number(n), void 0, t, i)), !0\n                            }\n                        } else {\n                            let t = this._until(4);\n                            if (t) return e.appendChild(new d(Number(n), void 0, void 0, t)), !0\n                        }\n                        return this._backTo(t), !1\n                    }\n                    _parseAnything(e) {\n                        return 14 !== this._token.type && (e.appendChild(new s(this._scanner.tokenText(this._token))), this._accept(void 0), !0)\n                    }\n                }\n            },\n            87548: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    l: () => R\n                });\n                var n = i(9488),\n                    o = i(5976),\n                    s = i(97295),\n                    r = (i(27124), i(69386)),\n                    a = i(24314),\n                    l = i(3860),\n                    c = i(44174),\n                    d = i(44349),\n                    h = i(73910),\n                    u = i(97781),\n                    g = i(40382),\n                    p = i(63472),\n                    f = i(68843),\n                    m = i(88721),\n                    v = i(95935);\n                const _ = new Uint8Array(16),\n                    b = [];\n                for (let e = 0; e < 256; e++) b.push(e.toString(16).padStart(2, \"0\"));\n                let w;\n                w = \"object\" == typeof crypto && \"function\" == typeof crypto.getRandomValues ? crypto.getRandomValues.bind(crypto) : function(e) {\n                    for (let t = 0; t < e.length; t++) e[t] = Math.floor(256 * Math.random());\n                    return e\n                };\n                var y = i(83831),\n                    C = i(63580),\n                    x = i(70666);\n                const S = \"code-workspace\";\n\n                function k(e) {\n                    const t = e;\n                    return \"string\" == typeof(null == t ? void 0 : t.id) && x.o.isUri(t.uri)\n                }\n                class L {\n                    constructor(e) {\n                        this._delegates = e\n                    }\n                    resolve(e) {\n                        for (const t of this._delegates) {\n                            let i = t.resolve(e);\n                            if (void 0 !== i) return i\n                        }\n                    }\n                }\n                class N {\n                    constructor(e, t, i, n) {\n                        this._model = e, this._selection = t, this._selectionIdx = i, this._overtypingCapturer = n\n                    }\n                    resolve(e) {\n                        const {\n                            name: t\n                        } = e;\n                        if (\"SELECTION\" === t || \"TM_SELECTED_TEXT\" === t) {\n                            let t = this._model.getValueInRange(this._selection) || void 0,\n                                i = this._selection.startLineNumber !== this._selection.endLineNumber;\n                            if (!t && this._overtypingCapturer) {\n                                const e = this._overtypingCapturer.getLastOvertypedInfo(this._selectionIdx);\n                                e && (t = e.value, i = e.multiline)\n                            }\n                            if (t && i && e.snippet) {\n                                const i = this._model.getLineContent(this._selection.startLineNumber),\n                                    n = (0, s.V8)(i, 0, this._selection.startColumn - 1);\n                                let o = n;\n                                e.snippet.walk((t => t !== e && (t instanceof p.xv && (o = (0, s.V8)((0, s.uq)(t.value).pop())), !0)));\n                                const r = (0, s.Mh)(o, n);\n                                t = t.replace(/(\\r\\n|\\r|\\n)(.*)/g, ((e, t, i) => `${t}${o.substr(r)}${i}`))\n                            }\n                            return t\n                        }\n                        if (\"TM_CURRENT_LINE\" === t) return this._model.getLineContent(this._selection.positionLineNumber);\n                        if (\"TM_CURRENT_WORD\" === t) {\n                            const e = this._model.getWordAtPosition({\n                                lineNumber: this._selection.positionLineNumber,\n                                column: this._selection.positionColumn\n                            });\n                            return e && e.word || void 0\n                        }\n                        return \"TM_LINE_INDEX\" === t ? String(this._selection.positionLineNumber - 1) : \"TM_LINE_NUMBER\" === t ? String(this._selection.positionLineNumber) : void 0\n                    }\n                }\n                class D {\n                    constructor(e, t) {\n                        this._labelService = e, this._model = t\n                    }\n                    resolve(e) {\n                        const {\n                            name: t\n                        } = e;\n                        if (\"TM_FILENAME\" === t) return m.EZ(this._model.uri.fsPath);\n                        if (\"TM_FILENAME_BASE\" === t) {\n                            const e = m.EZ(this._model.uri.fsPath),\n                                t = e.lastIndexOf(\".\");\n                            return t <= 0 ? e : e.slice(0, t)\n                        }\n                        return \"TM_DIRECTORY\" === t ? \".\" === m.XX(this._model.uri.fsPath) ? \"\" : this._labelService.getUriLabel((0, v.XX)(this._model.uri)) : \"TM_FILEPATH\" === t ? this._labelService.getUriLabel(this._model.uri) : \"RELATIVE_FILEPATH\" === t ? this._labelService.getUriLabel(this._model.uri, {\n                            relative: !0,\n                            noPrefix: !0\n                        }) : void 0\n                    }\n                }\n                class I {\n                    constructor(e, t, i, n) {\n                        this._readClipboardText = e, this._selectionIdx = t, this._selectionCount = i, this._spread = n\n                    }\n                    resolve(e) {\n                        if (\"CLIPBOARD\" !== e.name) return;\n                        const t = this._readClipboardText();\n                        if (t) {\n                            if (this._spread) {\n                                const e = t.split(/\\r\\n|\\n|\\r/).filter((e => !(0, s.m5)(e)));\n                                if (e.length === this._selectionCount) return e[this._selectionIdx]\n                            }\n                            return t\n                        }\n                    }\n                }\n                class E {\n                    constructor(e, t) {\n                        this._model = e, this._selection = t\n                    }\n                    resolve(e) {\n                        const {\n                            name: t\n                        } = e, i = this._model.getLanguageIdAtPosition(this._selection.selectionStartLineNumber, this._selection.selectionStartColumn), n = y.zu.getComments(i);\n                        if (n) return \"LINE_COMMENT\" === t ? n.lineCommentToken || void 0 : \"BLOCK_COMMENT_START\" === t ? n.blockCommentStartToken || void 0 : \"BLOCK_COMMENT_END\" === t && n.blockCommentEndToken || void 0\n                    }\n                }\n                class T {\n                    constructor() {\n                        this._date = new Date\n                    }\n                    resolve(e) {\n                        const {\n                            name: t\n                        } = e;\n                        return \"CURRENT_YEAR\" === t ? String(this._date.getFullYear()) : \"CURRENT_YEAR_SHORT\" === t ? String(this._date.getFullYear()).slice(-2) : \"CURRENT_MONTH\" === t ? String(this._date.getMonth().valueOf() + 1).padStart(2, \"0\") : \"CURRENT_DATE\" === t ? String(this._date.getDate().valueOf()).padStart(2, \"0\") : \"CURRENT_HOUR\" === t ? String(this._date.getHours().valueOf()).padStart(2, \"0\") : \"CURRENT_MINUTE\" === t ? String(this._date.getMinutes().valueOf()).padStart(2, \"0\") : \"CURRENT_SECOND\" === t ? String(this._date.getSeconds().valueOf()).padStart(2, \"0\") : \"CURRENT_DAY_NAME\" === t ? T.dayNames[this._date.getDay()] : \"CURRENT_DAY_NAME_SHORT\" === t ? T.dayNamesShort[this._date.getDay()] : \"CURRENT_MONTH_NAME\" === t ? T.monthNames[this._date.getMonth()] : \"CURRENT_MONTH_NAME_SHORT\" === t ? T.monthNamesShort[this._date.getMonth()] : \"CURRENT_SECONDS_UNIX\" === t ? String(Math.floor(this._date.getTime() / 1e3)) : void 0\n                    }\n                }\n                T.dayNames = [C.N(\"Sunday\", \"Sunday\"), C.N(\"Monday\", \"Monday\"), C.N(\"Tuesday\", \"Tuesday\"), C.N(\"Wednesday\", \"Wednesday\"), C.N(\"Thursday\", \"Thursday\"), C.N(\"Friday\", \"Friday\"), C.N(\"Saturday\", \"Saturday\")], T.dayNamesShort = [C.N(\"SundayShort\", \"Sun\"), C.N(\"MondayShort\", \"Mon\"), C.N(\"TuesdayShort\", \"Tue\"), C.N(\"WednesdayShort\", \"Wed\"), C.N(\"ThursdayShort\", \"Thu\"), C.N(\"FridayShort\", \"Fri\"), C.N(\"SaturdayShort\", \"Sat\")], T.monthNames = [C.N(\"January\", \"January\"), C.N(\"February\", \"February\"), C.N(\"March\", \"March\"), C.N(\"April\", \"April\"), C.N(\"May\", \"May\"), C.N(\"June\", \"June\"), C.N(\"July\", \"July\"), C.N(\"August\", \"August\"), C.N(\"September\", \"September\"), C.N(\"October\", \"October\"), C.N(\"November\", \"November\"), C.N(\"December\", \"December\")], T.monthNamesShort = [C.N(\"JanuaryShort\", \"Jan\"), C.N(\"FebruaryShort\", \"Feb\"), C.N(\"MarchShort\", \"Mar\"), C.N(\"AprilShort\", \"Apr\"), C.N(\"MayShort\", \"May\"), C.N(\"JuneShort\", \"Jun\"), C.N(\"JulyShort\", \"Jul\"), C.N(\"AugustShort\", \"Aug\"), C.N(\"SeptemberShort\", \"Sep\"), C.N(\"OctoberShort\", \"Oct\"), C.N(\"NovemberShort\", \"Nov\"), C.N(\"DecemberShort\", \"Dec\")];\n                class M {\n                    constructor(e) {\n                        this._workspaceService = e\n                    }\n                    resolve(e) {\n                        if (!this._workspaceService) return;\n                        const t = function(e) {\n                            return e.configuration ? {\n                                id: e.id,\n                                configPath: e.configuration\n                            } : 1 === e.folders.length ? {\n                                id: e.id,\n                                uri: e.folders[0].uri\n                            } : void 0\n                        }(this._workspaceService.getWorkspace());\n                        return t ? \"WORKSPACE_NAME\" === e.name ? this._resolveWorkspaceName(t) : \"WORKSPACE_FOLDER\" === e.name ? this._resoveWorkspacePath(t) : void 0 : void 0\n                    }\n                    _resolveWorkspaceName(e) {\n                        if (k(e)) return m.EZ(e.uri.path);\n                        let t = m.EZ(e.configPath.path);\n                        return t.endsWith(S) && (t = t.substr(0, t.length - 14 - 1)), t\n                    }\n                    _resoveWorkspacePath(e) {\n                        if (k(e)) return (0, f.D)(e.uri.fsPath);\n                        let t = m.EZ(e.configPath.path),\n                            i = e.configPath.fsPath;\n                        return i.endsWith(t) && (i = i.substr(0, i.length - t.length - 1)), i ? (0, f.D)(i) : \"/\"\n                    }\n                }\n                class A {\n                    resolve(e) {\n                        const {\n                            name: t\n                        } = e;\n                        return \"RANDOM\" === t ? Math.random().toString().slice(-6) : \"RANDOM_HEX\" === t ? Math.random().toString(16).slice(-6) : \"UUID\" === t ? function() {\n                            w(_), _[6] = 15 & _[6] | 64, _[8] = 63 & _[8] | 128;\n                            let e = 0,\n                                t = \"\";\n                            return t += b[_[e++]], t += b[_[e++]], t += b[_[e++]], t += b[_[e++]], t += \"-\", t += b[_[e++]], t += b[_[e++]], t += \"-\", t += b[_[e++]], t += b[_[e++]], t += \"-\", t += b[_[e++]], t += b[_[e++]], t += \"-\", t += b[_[e++]], t += b[_[e++]], t += b[_[e++]], t += b[_[e++]], t += b[_[e++]], t += b[_[e++]], t\n                        }() : void 0\n                    }\n                }(0, u.Ic)(((e, t) => {\n                    function i(t) {\n                        const i = e.getColor(t);\n                        return i ? i.toString() : \"transparent\"\n                    }\n                    t.addRule(`.monaco-editor .snippet-placeholder { background-color: ${i(h.u2)}; outline-color: ${i(h.Pk)}; }`), t.addRule(`.monaco-editor .finish-snippet-placeholder { background-color: ${i(h.I1)}; outline-color: ${i(h.U6)}; }`)\n                }));\n                class O {\n                    constructor(e, t, i, o) {\n                        this._editor = e, this._snippet = t, this._offset = i, this._snippetLineLeadingWhitespace = o, this._nestingLevel = 1, this._placeholderGroups = (0, n.vM)(t.placeholders, p.Vm.compareByIndex), this._placeholderGroupsIdx = -1\n                    }\n                    dispose() {\n                        this._placeholderDecorations && this._editor.deltaDecorations([...this._placeholderDecorations.values()], []), this._placeholderGroups.length = 0\n                    }\n                    _initDecorations() {\n                        if (this._placeholderDecorations) return;\n                        this._placeholderDecorations = new Map;\n                        const e = this._editor.getModel();\n                        this._editor.changeDecorations((t => {\n                            for (const i of this._snippet.placeholders) {\n                                const n = this._snippet.offset(i),\n                                    o = this._snippet.fullLen(i),\n                                    s = a.e.fromPositions(e.getPositionAt(this._offset + n), e.getPositionAt(this._offset + n + o)),\n                                    r = i.isFinalTabstop ? O._decor.inactiveFinal : O._decor.inactive,\n                                    l = t.addDecoration(s, r);\n                                this._placeholderDecorations.set(i, l)\n                            }\n                        }))\n                    }\n                    move(e) {\n                        if (!this._editor.hasModel()) return [];\n                        if (this._initDecorations(), this._placeholderGroupsIdx >= 0) {\n                            let e = [];\n                            for (const t of this._placeholderGroups[this._placeholderGroupsIdx])\n                                if (t.transform) {\n                                    const i = this._placeholderDecorations.get(t),\n                                        n = this._editor.getModel().getDecorationRange(i),\n                                        o = this._editor.getModel().getValueInRange(n),\n                                        s = t.transform.resolve(o).split(/\\r\\n|\\r|\\n/);\n                                    for (let e = 1; e < s.length; e++) s[e] = this._editor.getModel().normalizeIndentation(this._snippetLineLeadingWhitespace + s[e]);\n                                    e.push(r.h.replace(n, s.join(this._editor.getModel().getEOL())))\n                                } e.length > 0 && this._editor.executeEdits(\"snippet.placeholderTransform\", e)\n                        }\n                        let t = !1;\n                        !0 === e && this._placeholderGroupsIdx < this._placeholderGroups.length - 1 ? (this._placeholderGroupsIdx += 1, t = !0) : !1 === e && this._placeholderGroupsIdx > 0 && (this._placeholderGroupsIdx -= 1, t = !0);\n                        const i = this._editor.getModel().changeDecorations((e => {\n                            const i = new Set,\n                                n = [];\n                            for (const o of this._placeholderGroups[this._placeholderGroupsIdx]) {\n                                const s = this._placeholderDecorations.get(o),\n                                    r = this._editor.getModel().getDecorationRange(s);\n                                n.push(new l.Y(r.startLineNumber, r.startColumn, r.endLineNumber, r.endColumn)), t = t && this._hasPlaceholderBeenCollapsed(o), e.changeDecorationOptions(s, o.isFinalTabstop ? O._decor.activeFinal : O._decor.active), i.add(o);\n                                for (const t of this._snippet.enclosingPlaceholders(o)) {\n                                    const n = this._placeholderDecorations.get(t);\n                                    e.changeDecorationOptions(n, t.isFinalTabstop ? O._decor.activeFinal : O._decor.active), i.add(t)\n                                }\n                            }\n                            for (const [t, n] of this._placeholderDecorations) i.has(t) || e.changeDecorationOptions(n, t.isFinalTabstop ? O._decor.inactiveFinal : O._decor.inactive);\n                            return n\n                        }));\n                        return t ? this.move(e) : null != i ? i : []\n                    }\n                    _hasPlaceholderBeenCollapsed(e) {\n                        let t = e;\n                        for (; t;) {\n                            if (t instanceof p.Vm) {\n                                const e = this._placeholderDecorations.get(t);\n                                if (this._editor.getModel().getDecorationRange(e).isEmpty() && t.toString().length > 0) return !0\n                            }\n                            t = t.parent\n                        }\n                        return !1\n                    }\n                    get isAtFirstPlaceholder() {\n                        return this._placeholderGroupsIdx <= 0 || 0 === this._placeholderGroups.length\n                    }\n                    get isAtLastPlaceholder() {\n                        return this._placeholderGroupsIdx === this._placeholderGroups.length - 1\n                    }\n                    get hasPlaceholder() {\n                        return this._snippet.placeholders.length > 0\n                    }\n                    computePossibleSelections() {\n                        const e = new Map;\n                        for (const t of this._placeholderGroups) {\n                            let i;\n                            for (const n of t) {\n                                if (n.isFinalTabstop) break;\n                                i || (i = [], e.set(n.index, i));\n                                const t = this._placeholderDecorations.get(n),\n                                    o = this._editor.getModel().getDecorationRange(t);\n                                if (!o) {\n                                    e.delete(n.index);\n                                    break\n                                }\n                                i.push(o)\n                            }\n                        }\n                        return e\n                    }\n                    get choice() {\n                        return this._placeholderGroups[this._placeholderGroupsIdx][0].choice\n                    }\n                    merge(e) {\n                        const t = this._editor.getModel();\n                        this._nestingLevel *= 10, this._editor.changeDecorations((i => {\n                            for (const n of this._placeholderGroups[this._placeholderGroupsIdx]) {\n                                const o = e.shift();\n                                console.assert(!o._placeholderDecorations);\n                                const s = o._snippet.placeholderInfo.last.index;\n                                for (const e of o._snippet.placeholderInfo.all) e.isFinalTabstop ? e.index = n.index + (s + 1) / this._nestingLevel : e.index = n.index + e.index / this._nestingLevel;\n                                this._snippet.replace(n, o._snippet.children);\n                                const r = this._placeholderDecorations.get(n);\n                                i.removeDecoration(r), this._placeholderDecorations.delete(n);\n                                for (const e of o._snippet.placeholders) {\n                                    const n = o._snippet.offset(e),\n                                        s = o._snippet.fullLen(e),\n                                        r = a.e.fromPositions(t.getPositionAt(o._offset + n), t.getPositionAt(o._offset + n + s)),\n                                        l = i.addDecoration(r, O._decor.inactive);\n                                    this._placeholderDecorations.set(e, l)\n                                }\n                            }\n                            this._placeholderGroups = (0, n.vM)(this._snippet.placeholders, p.Vm.compareByIndex)\n                        }))\n                    }\n                }\n                O._decor = {\n                    active: c.qx.register({\n                        description: \"snippet-placeholder-1\",\n                        stickiness: 0,\n                        className: \"snippet-placeholder\"\n                    }),\n                    inactive: c.qx.register({\n                        description: \"snippet-placeholder-2\",\n                        stickiness: 1,\n                        className: \"snippet-placeholder\"\n                    }),\n                    activeFinal: c.qx.register({\n                        description: \"snippet-placeholder-3\",\n                        stickiness: 1,\n                        className: \"finish-snippet-placeholder\"\n                    }),\n                    inactiveFinal: c.qx.register({\n                        description: \"snippet-placeholder-4\",\n                        stickiness: 1,\n                        className: \"finish-snippet-placeholder\"\n                    })\n                };\n                const P = {\n                    overwriteBefore: 0,\n                    overwriteAfter: 0,\n                    adjustWhitespace: !0,\n                    clipboardText: void 0,\n                    overtypingCapturer: void 0\n                };\n                class R {\n                    constructor(e, t, i = P) {\n                        this._templateMerges = [], this._snippets = [], this._editor = e, this._template = t, this._options = i\n                    }\n                    static adjustWhitespace(e, t, i, n, o) {\n                        const r = e.getLineContent(t.lineNumber),\n                            a = (0, s.V8)(r, 0, t.column - 1);\n                        let l;\n                        return i.walk((t => {\n                            if (!(t instanceof p.xv) || t.parent instanceof p.Lv) return !0;\n                            const o = t.value.split(/\\r\\n|\\r|\\n/);\n                            if (n) {\n                                const n = i.offset(t);\n                                if (0 === n) o[0] = e.normalizeIndentation(o[0]);\n                                else {\n                                    l = null != l ? l : i.toString();\n                                    let t = l.charCodeAt(n - 1);\n                                    10 !== t && 13 !== t || (o[0] = e.normalizeIndentation(a + o[0]))\n                                }\n                                for (let t = 1; t < o.length; t++) o[t] = e.normalizeIndentation(a + o[t])\n                            }\n                            const s = o.join(e.getEOL());\n                            return s !== t.value && (t.parent.replace(t, [new p.xv(s)]), l = void 0), !0\n                        })), a\n                    }\n                    static adjustSelection(e, t, i, n) {\n                        if (0 !== i || 0 !== n) {\n                            const {\n                                positionLineNumber: o,\n                                positionColumn: s\n                            } = t, r = s - i, a = s + n, c = e.validateRange({\n                                startLineNumber: o,\n                                startColumn: r,\n                                endLineNumber: o,\n                                endColumn: a\n                            });\n                            t = l.Y.createWithDirection(c.startLineNumber, c.startColumn, c.endLineNumber, c.endColumn, t.getDirection())\n                        }\n                        return t\n                    }\n                    static createEditsAndSnippets(e, t, i, n, o, s, l, c) {\n                        const h = [],\n                            u = [];\n                        if (!e.hasModel()) return {\n                            edits: h,\n                            snippets: u\n                        };\n                        const f = e.getModel(),\n                            m = e.invokeWithinContext((e => e.get(g.ec))),\n                            v = e.invokeWithinContext((e => new D(e.get(d.e), f))),\n                            _ = () => l;\n                        let b = 0,\n                            w = f.getValueInRange(R.adjustSelection(f, e.getSelection(), i, 0)),\n                            y = f.getValueInRange(R.adjustSelection(f, e.getSelection(), 0, n)),\n                            C = f.getLineFirstNonWhitespaceColumn(e.getSelection().positionLineNumber);\n                        const x = e.getSelections().map(((e, t) => ({\n                            selection: e,\n                            idx: t\n                        }))).sort(((e, t) => a.e.compareRangesUsingStarts(e.selection, t.selection)));\n                        for (const {\n                                selection: a,\n                                idx: l\n                            } of x) {\n                            let d = R.adjustSelection(f, a, i, 0),\n                                g = R.adjustSelection(f, a, 0, n);\n                            w !== f.getValueInRange(d) && (d = a), y !== f.getValueInRange(g) && (g = a);\n                            const S = a.setStartPosition(d.startLineNumber, d.startColumn).setEndPosition(g.endLineNumber, g.endColumn),\n                                k = (new p.Yj).parse(t, !0, o),\n                                D = S.getStartPosition(),\n                                P = R.adjustWhitespace(f, D, k, s || l > 0 && C !== f.getLineFirstNonWhitespaceColumn(a.positionLineNumber), !0);\n                            k.resolveVariables(new L([v, new I(_, l, x.length, \"spread\" === e.getOption(70)), new N(f, a, l, c), new E(f, a), new T, new M(m), new A]));\n                            const F = f.getOffsetAt(D) + b;\n                            b += k.toString().length - f.getValueLengthInRange(S), h[l] = r.h.replace(S, k.toString()), h[l].identifier = {\n                                major: l,\n                                minor: 0\n                            }, u[l] = new O(e, k, F, P)\n                        }\n                        return {\n                            edits: h,\n                            snippets: u\n                        }\n                    }\n                    dispose() {\n                        (0, o.B9)(this._snippets)\n                    }\n                    _logInfo() {\n                        return `template=\"${this._template}\", merged_templates=\"${this._templateMerges.join(\" -> \")}\"`\n                    }\n                    insert() {\n                        if (!this._editor.hasModel()) return;\n                        const {\n                            edits: e,\n                            snippets: t\n                        } = R.createEditsAndSnippets(this._editor, this._template, this._options.overwriteBefore, this._options.overwriteAfter, !1, this._options.adjustWhitespace, this._options.clipboardText, this._options.overtypingCapturer);\n                        this._snippets = t, this._editor.executeEdits(\"snippet\", e, (e => this._snippets[0].hasPlaceholder ? this._move(!0) : e.filter((e => !!e.identifier)).map((e => l.Y.fromPositions(e.range.getEndPosition()))))), this._editor.revealRange(this._editor.getSelections()[0])\n                    }\n                    merge(e, t = P) {\n                        if (!this._editor.hasModel()) return;\n                        this._templateMerges.push([this._snippets[0]._nestingLevel, this._snippets[0]._placeholderGroupsIdx, e]);\n                        const {\n                            edits: i,\n                            snippets: n\n                        } = R.createEditsAndSnippets(this._editor, e, t.overwriteBefore, t.overwriteAfter, !0, t.adjustWhitespace, t.clipboardText, t.overtypingCapturer);\n                        this._editor.executeEdits(\"snippet\", i, (e => {\n                            for (const e of this._snippets) e.merge(n);\n                            return console.assert(0 === n.length), this._snippets[0].hasPlaceholder ? this._move(void 0) : e.filter((e => !!e.identifier)).map((e => l.Y.fromPositions(e.range.getEndPosition())))\n                        }))\n                    }\n                    next() {\n                        const e = this._move(!0);\n                        this._editor.setSelections(e), this._editor.revealPositionInCenterIfOutsideViewport(e[0].getPosition())\n                    }\n                    prev() {\n                        const e = this._move(!1);\n                        this._editor.setSelections(e), this._editor.revealPositionInCenterIfOutsideViewport(e[0].getPosition())\n                    }\n                    _move(e) {\n                        const t = [];\n                        for (const i of this._snippets) {\n                            const n = i.move(e);\n                            t.push(...n)\n                        }\n                        return t\n                    }\n                    get isAtFirstPlaceholder() {\n                        return this._snippets[0].isAtFirstPlaceholder\n                    }\n                    get isAtLastPlaceholder() {\n                        return this._snippets[0].isAtLastPlaceholder\n                    }\n                    get hasPlaceholder() {\n                        return this._snippets[0].hasPlaceholder\n                    }\n                    get choice() {\n                        return this._snippets[0].choice\n                    }\n                    isSelectionWithinPlaceholders() {\n                        if (!this.hasPlaceholder) return !1;\n                        const e = this._editor.getSelections();\n                        if (e.length < this._snippets.length) return !1;\n                        let t = new Map;\n                        for (const i of this._snippets) {\n                            const n = i.computePossibleSelections();\n                            if (0 === t.size)\n                                for (const [i, o] of n) {\n                                    o.sort(a.e.compareRangesUsingStarts);\n                                    for (const n of e)\n                                        if (o[0].containsRange(n)) {\n                                            t.set(i, []);\n                                            break\n                                        }\n                                }\n                            if (0 === t.size) return !1;\n                            t.forEach(((e, t) => {\n                                e.push(...n.get(t))\n                            }))\n                        }\n                        e.sort(a.e.compareRangesUsingStarts);\n                        for (let [i, n] of t)\n                            if (n.length === e.length) {\n                                n.sort(a.e.compareRangesUsingStarts);\n                                for (let o = 0; o < n.length; o++) n[o].containsRange(e[o]) || t.delete(i)\n                            } else t.delete(i);\n                        return t.size > 0\n                    }\n                }\n            },\n            79599: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    A9: () => x,\n                    GI: () => y,\n                    ZJ: () => k,\n                    _y: () => w,\n                    i5: () => M,\n                    kL: () => N,\n                    wg: () => E\n                });\n                var n = i(71050),\n                    o = i(17301),\n                    s = i(75392),\n                    r = i(5976),\n                    a = i(84013),\n                    l = i(98401),\n                    c = i(70666),\n                    d = i(50187),\n                    h = i(24314),\n                    u = i(44101),\n                    g = i(88216),\n                    p = i(63472),\n                    f = i(63580),\n                    m = i(84144),\n                    v = i(94565),\n                    _ = i(38819),\n                    b = function(e, t, i, n) {\n                        return new(i || (i = Promise))((function(o, s) {\n                            function r(e) {\n                                try {\n                                    l(n.next(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function a(e) {\n                                try {\n                                    l(n.throw(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function l(e) {\n                                var t;\n                                e.done ? o(e.value) : (t = e.value, t instanceof i ? t : new i((function(e) {\n                                    e(t)\n                                }))).then(r, a)\n                            }\n                            l((n = n.apply(e, t || [])).next())\n                        }))\n                    };\n                const w = {\n                        Visible: new _.uy(\"suggestWidgetVisible\", !1, (0, f.N)(\"suggestWidgetVisible\", \"Whether suggestion are visible\")),\n                        DetailsVisible: new _.uy(\"suggestWidgetDetailsVisible\", !1, (0, f.N)(\"suggestWidgetDetailsVisible\", \"Whether suggestion details are visible\")),\n                        MultipleSuggestions: new _.uy(\"suggestWidgetMultipleSuggestions\", !1, (0, f.N)(\"suggestWidgetMultipleSuggestions\", \"Whether there are multiple suggestions to pick from\")),\n                        MakesTextEdit: new _.uy(\"suggestionMakesTextEdit\", !0, (0, f.N)(\"suggestionMakesTextEdit\", \"Whether inserting the current suggestion yields in a change or has everything already been typed\")),\n                        AcceptSuggestionsOnEnter: new _.uy(\"acceptSuggestionOnEnter\", !0, (0, f.N)(\"acceptSuggestionOnEnter\", \"Whether suggestions are inserted when pressing Enter\")),\n                        HasInsertAndReplaceRange: new _.uy(\"suggestionHasInsertAndReplaceRange\", !1, (0, f.N)(\"suggestionHasInsertAndReplaceRange\", \"Whether the current suggestion has insert and replace behaviour\")),\n                        InsertMode: new _.uy(\"suggestionInsertMode\", void 0, {\n                            type: \"string\",\n                            description: (0, f.N)(\"suggestionInsertMode\", \"Whether the default behaviour is to insert or replace\")\n                        }),\n                        CanResolve: new _.uy(\"suggestionCanResolve\", !1, (0, f.N)(\"suggestionCanResolve\", \"Whether the current suggestion supports to resolve further details\"))\n                    },\n                    y = new m.eH(\"suggestWidgetStatusBar\");\n                class C {\n                    constructor(e, t, i, n) {\n                        this.position = e, this.completion = t, this.container = i, this.provider = n, this.isInvalid = !1, this.score = s.CL.Default, this.distance = 0, this.textLabel = \"string\" == typeof t.label ? t.label : t.label.label, this.labelLow = this.textLabel.toLowerCase(), this.isInvalid = !this.textLabel, this.sortTextLow = t.sortText && t.sortText.toLowerCase(), this.filterTextLow = t.filterText && t.filterText.toLowerCase(), h.e.isIRange(t.range) ? (this.editStart = new d.L(t.range.startLineNumber, t.range.startColumn), this.editInsertEnd = new d.L(t.range.endLineNumber, t.range.endColumn), this.editReplaceEnd = new d.L(t.range.endLineNumber, t.range.endColumn), this.isInvalid = this.isInvalid || h.e.spansMultipleLines(t.range) || t.range.startLineNumber !== e.lineNumber) : (this.editStart = new d.L(t.range.insert.startLineNumber, t.range.insert.startColumn), this.editInsertEnd = new d.L(t.range.insert.endLineNumber, t.range.insert.endColumn), this.editReplaceEnd = new d.L(t.range.replace.endLineNumber, t.range.replace.endColumn), this.isInvalid = this.isInvalid || h.e.spansMultipleLines(t.range.insert) || h.e.spansMultipleLines(t.range.replace) || t.range.insert.startLineNumber !== e.lineNumber || t.range.replace.startLineNumber !== e.lineNumber || t.range.insert.startColumn !== t.range.replace.startColumn), \"function\" != typeof n.resolveCompletionItem && (this._resolveCache = Promise.resolve(), this._isResolved = !0)\n                    }\n                    get isResolved() {\n                        return !!this._isResolved\n                    }\n                    resolve(e) {\n                        return b(this, void 0, void 0, (function*() {\n                            if (!this._resolveCache) {\n                                const t = e.onCancellationRequested((() => {\n                                    this._resolveCache = void 0, this._isResolved = !1\n                                }));\n                                this._resolveCache = Promise.resolve(this.provider.resolveCompletionItem(this.completion, e)).then((e => {\n                                    Object.assign(this.completion, e), this._isResolved = !0, t.dispose()\n                                }), (e => {\n                                    (0, o.VV)(e) && (this._resolveCache = void 0, this._isResolved = !1)\n                                }))\n                            }\n                            return this._resolveCache\n                        }))\n                    }\n                }\n                class x {\n                    constructor(e = 2, t = new Set, i = new Set, n = !0) {\n                        this.snippetSortOrder = e, this.kindFilter = t, this.providerFilter = i, this.showDeprecated = n\n                    }\n                }\n                let S;\n\n                function k() {\n                    return S\n                }\n                x.default = new x;\n                class L {\n                    constructor(e, t, i, n) {\n                        this.items = e, this.needsClipboard = t, this.durations = i, this.disposable = n\n                    }\n                }\n\n                function N(e, t, i = x.default, s = {\n                    triggerKind: 0\n                }, l = n.T.None) {\n                    return b(this, void 0, void 0, (function*() {\n                        const n = new a.G(!0);\n                        t = t.clone();\n                        const c = e.getWordAtPosition(t),\n                            d = c ? new h.e(t.lineNumber, c.startColumn, t.lineNumber, c.endColumn) : h.e.fromPositions(t),\n                            g = {\n                                replace: d,\n                                insert: d.setEndPosition(t.lineNumber, t.column)\n                            },\n                            f = [],\n                            m = new r.SL,\n                            v = [];\n                        let _ = !1;\n                        const w = (e, n, o) => {\n                                var s, a, l;\n                                if (n) {\n                                    for (let o of n.suggestions)\n                                        if (!i.kindFilter.has(o.kind)) {\n                                            if (!i.showDeprecated && (null === (s = null == o ? void 0 : o.tags) || void 0 === s ? void 0 : s.includes(1))) continue;\n                                            o.range || (o.range = g), o.sortText || (o.sortText = \"string\" == typeof o.label ? o.label : o.label.label), !_ && o.insertTextRules && 4 & o.insertTextRules && (_ = p.Yj.guessNeedsClipboard(o.insertText)), f.push(new C(t, o, n, e))\n                                        }(0, r.Wf)(n) && m.add(n), v.push({\n                                        providerName: null !== (a = e._debugDisplayName) && void 0 !== a ? a : \"unkown_provider\",\n                                        elapsedProvider: null !== (l = n.duration) && void 0 !== l ? l : -1,\n                                        elapsedOverall: o.elapsed()\n                                    })\n                                }\n                            },\n                            y = (() => b(this, void 0, void 0, (function*() {\n                                if (!S || i.kindFilter.has(27)) return;\n                                if (i.providerFilter.size > 0 && !i.providerFilter.has(S)) return;\n                                const n = new a.G(!0),\n                                    o = yield S.provideCompletionItems(e, t, s, l);\n                                w(S, o, n)\n                            })))();\n                        for (let n of u.KZ.orderedGroups(e)) {\n                            let r = f.length;\n                            if (yield Promise.all(n.map((n => b(this, void 0, void 0, (function*() {\n                                    if (!(i.providerFilter.size > 0) || i.providerFilter.has(n)) try {\n                                        const i = new a.G(!0),\n                                            o = yield n.provideCompletionItems(e, t, s, l);\n                                        w(n, o, i)\n                                    } catch (e) {\n                                        (0, o.Cp)(e)\n                                    }\n                                }))))), r !== f.length || l.isCancellationRequested) break\n                        }\n                        return yield y, l.isCancellationRequested ? (m.dispose(), Promise.reject((0, o.F0)())) : new L(f.sort(E(i.snippetSortOrder)), _, {\n                            entries: v,\n                            elapsed: n.elapsed()\n                        }, m)\n                    }))\n                }\n\n                function D(e, t) {\n                    if (e.sortTextLow && t.sortTextLow) {\n                        if (e.sortTextLow < t.sortTextLow) return -1;\n                        if (e.sortTextLow > t.sortTextLow) return 1\n                    }\n                    return e.completion.label < t.completion.label ? -1 : e.completion.label > t.completion.label ? 1 : e.completion.kind - t.completion.kind\n                }\n                const I = new Map;\n\n                function E(e) {\n                    return I.get(e)\n                }\n                I.set(0, (function(e, t) {\n                    if (e.completion.kind !== t.completion.kind) {\n                        if (27 === e.completion.kind) return -1;\n                        if (27 === t.completion.kind) return 1\n                    }\n                    return D(e, t)\n                })), I.set(2, (function(e, t) {\n                    if (e.completion.kind !== t.completion.kind) {\n                        if (27 === e.completion.kind) return 1;\n                        if (27 === t.completion.kind) return -1\n                    }\n                    return D(e, t)\n                })), I.set(1, D), v.P.registerCommand(\"_executeCompletionItemProvider\", ((e, ...t) => b(void 0, void 0, void 0, (function*() {\n                    const [i, o, s, r] = t;\n                    (0, l.p_)(c.o.isUri(i)), (0, l.p_)(d.L.isIPosition(o)), (0, l.p_)(\"string\" == typeof s || !s), (0, l.p_)(\"number\" == typeof r || !r);\n                    const a = yield e.get(g.S).createModelReference(i);\n                    try {\n                        const e = {\n                                incomplete: !1,\n                                suggestions: []\n                            },\n                            t = [],\n                            i = yield N(a.object.textEditorModel, d.L.lift(o), void 0, {\n                                triggerCharacter: s,\n                                triggerKind: s ? 1 : 0\n                            });\n                        for (const o of i.items) t.length < (null != r ? r : 0) && t.push(o.resolve(n.T.None)), e.incomplete = e.incomplete || o.container.incomplete, e.suggestions.push(o.completion);\n                        try {\n                            return yield Promise.all(t), e\n                        } finally {\n                            setTimeout((() => i.disposable.dispose()), 100)\n                        }\n                    } finally {\n                        a.dispose()\n                    }\n                }))));\n                const T = new class {\n                    constructor() {\n                        this.onlyOnceSuggestions = []\n                    }\n                    provideCompletionItems() {\n                        let e = {\n                            suggestions: this.onlyOnceSuggestions.slice(0)\n                        };\n                        return this.onlyOnceSuggestions.length = 0, e\n                    }\n                };\n\n                function M(e, t) {\n                    setTimeout((() => {\n                        T.onlyOnceSuggestions.push(...t), e.getContribution(\"editor.contrib.suggestController\").triggerSuggest((new Set).add(T))\n                    }), 0)\n                }\n                u.KZ.register(\"*\", T)\n            },\n            88250: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    SuggestController: () => _t,\n                    TriggerSuggestAction: () => wt\n                });\n                var n = i(85152),\n                    o = i(9488),\n                    s = i(15393),\n                    r = i(71050),\n                    a = i(17301),\n                    l = i(4669),\n                    c = i(8313),\n                    d = i(5976),\n                    h = i(1432),\n                    u = i(84013),\n                    g = i(98401),\n                    p = i(39925),\n                    f = i(16830),\n                    m = i(69386),\n                    v = i(50187),\n                    _ = i(24314),\n                    b = i(29102),\n                    w = i(93379),\n                    y = i(63472),\n                    C = i(43702),\n                    x = i(44101),\n                    S = i(33108),\n                    k = i(65026),\n                    L = i(72065),\n                    N = i(26904),\n                    D = function(e, t, i, n) {\n                        var o, s = arguments.length,\n                            r = s < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n                        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) r = Reflect.decorate(e, t, i, n);\n                        else\n                            for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (r = (s < 3 ? o(r) : s > 3 ? o(t, i, r) : o(t, i)) || r);\n                        return s > 3 && r && Object.defineProperty(t, i, r), r\n                    },\n                    I = function(e, t) {\n                        return function(i, n) {\n                            t(i, n, e)\n                        }\n                    };\n                class E {\n                    constructor(e) {\n                        this.name = e\n                    }\n                    select(e, t, i) {\n                        if (0 === i.length) return 0;\n                        let n = i[0].score[0];\n                        for (let e = 0; e < i.length; e++) {\n                            const {\n                                score: t,\n                                completion: o\n                            } = i[e];\n                            if (t[0] !== n) break;\n                            if (o.preselect) return e\n                        }\n                        return 0\n                    }\n                }\n                class T extends E {\n                    constructor() {\n                        super(\"first\")\n                    }\n                    memorize(e, t, i) {}\n                    toJSON() {}\n                    fromJSON() {}\n                }\n                let M = class e {\n                    constructor(e, t) {\n                        this._storageService = e, this._configService = t, this._disposables = new d.SL, this._persistSoon = new s.pY((() => this._saveState()), 500), this._disposables.add(e.onWillSaveState((e => {\n                            e.reason === N.fk.SHUTDOWN && this._saveState()\n                        })))\n                    }\n                    dispose() {\n                        this._disposables.dispose(), this._persistSoon.dispose()\n                    }\n                    memorize(e, t, i) {\n                        this._withStrategy(e, t).memorize(e, t, i), this._persistSoon.schedule()\n                    }\n                    select(e, t, i) {\n                        return this._withStrategy(e, t).select(e, t, i)\n                    }\n                    _withStrategy(t, i) {\n                        var n;\n                        const o = this._configService.getValue(\"editor.suggestSelection\", {\n                            overrideIdentifier: t.getLanguageIdAtPosition(i.lineNumber, i.column),\n                            resource: t.uri\n                        });\n                        if ((null === (n = this._strategy) || void 0 === n ? void 0 : n.name) !== o) {\n                            this._saveState();\n                            const t = e._strategyCtors.get(o) || T;\n                            this._strategy = new t;\n                            try {\n                                const t = this._configService.getValue(\"editor.suggest.shareSuggestSelections\") ? 0 : 1,\n                                    i = this._storageService.get(`${e._storagePrefix}/${o}`, t);\n                                i && this._strategy.fromJSON(JSON.parse(i))\n                            } catch (e) {}\n                        }\n                        return this._strategy\n                    }\n                    _saveState() {\n                        if (this._strategy) {\n                            const t = this._configService.getValue(\"editor.suggest.shareSuggestSelections\") ? 0 : 1,\n                                i = JSON.stringify(this._strategy);\n                            this._storageService.store(`${e._storagePrefix}/${this._strategy.name}`, i, t, 1)\n                        }\n                    }\n                };\n                M._strategyCtors = new Map([\n                    [\"recentlyUsedByPrefix\", class extends E {\n                        constructor() {\n                            super(\"recentlyUsedByPrefix\"), this._trie = C.Id.forStrings(), this._seq = 0\n                        }\n                        memorize(e, t, i) {\n                            const {\n                                word: n\n                            } = e.getWordUntilPosition(t), o = `${e.getLanguageId()}/${n}`;\n                            this._trie.set(o, {\n                                type: i.completion.kind,\n                                insertText: i.completion.insertText,\n                                touch: this._seq++\n                            })\n                        }\n                        select(e, t, i) {\n                            let {\n                                word: n\n                            } = e.getWordUntilPosition(t);\n                            if (!n) return super.select(e, t, i);\n                            let o = `${e.getLanguageId()}/${n}`,\n                                s = this._trie.get(o);\n                            if (s || (s = this._trie.findSubstr(o)), s)\n                                for (let e = 0; e < i.length; e++) {\n                                    let {\n                                        kind: t,\n                                        insertText: n\n                                    } = i[e].completion;\n                                    if (t === s.type && n === s.insertText) return e\n                                }\n                            return super.select(e, t, i)\n                        }\n                        toJSON() {\n                            let e = [];\n                            return this._trie.forEach(((t, i) => e.push([i, t]))), e.sort(((e, t) => -(e[1].touch - t[1].touch))).forEach(((e, t) => e[1].touch = t)), e.slice(0, 200)\n                        }\n                        fromJSON(e) {\n                            if (this._trie.clear(), e.length > 0) {\n                                this._seq = e[0][1].touch + 1;\n                                for (const [t, i] of e) i.type = \"number\" == typeof i.type ? i.type : (0, x.jr)(i.type), this._trie.set(t, i)\n                            }\n                        }\n                    }],\n                    [\"recentlyUsed\", class extends E {\n                        constructor() {\n                            super(\"recentlyUsed\"), this._cache = new C.z6(300, .66), this._seq = 0\n                        }\n                        memorize(e, t, i) {\n                            const n = `${e.getLanguageId()}/${i.textLabel}`;\n                            this._cache.set(n, {\n                                touch: this._seq++,\n                                type: i.completion.kind,\n                                insertText: i.completion.insertText\n                            })\n                        }\n                        select(e, t, i) {\n                            if (0 === i.length) return 0;\n                            const n = e.getLineContent(t.lineNumber).substr(t.column - 10, t.column - 1);\n                            if (/\\s$/.test(n)) return super.select(e, t, i);\n                            let o = i[0].score[0],\n                                s = -1,\n                                r = -1,\n                                a = -1;\n                            for (let t = 0; t < i.length && i[t].score[0] === o; t++) {\n                                const n = `${e.getLanguageId()}/${i[t].textLabel}`,\n                                    o = this._cache.peek(n);\n                                if (o && o.touch > a && o.type === i[t].completion.kind && o.insertText === i[t].completion.insertText && (a = o.touch, r = t), i[t].completion.preselect && -1 === s) return t\n                            }\n                            return -1 !== r ? r : -1 !== s ? s : 0\n                        }\n                        toJSON() {\n                            return this._cache.toJSON()\n                        }\n                        fromJSON(e) {\n                            this._cache.clear();\n                            for (const [t, i] of e) i.touch = 0, i.type = \"number\" == typeof i.type ? i.type : (0, x.jr)(i.type), this._cache.set(t, i);\n                            this._seq = this._cache.size\n                        }\n                    }],\n                    [\"first\", T]\n                ]), M._storagePrefix = \"suggest/memories\", M = D([I(0, N.Uy), I(1, S.Ui)], M);\n                const A = (0, L.yh)(\"ISuggestMemories\");\n                (0, k.z)(A, M, !0);\n                var O = i(38819),\n                    P = function(e, t, i, n) {\n                        var o, s = arguments.length,\n                            r = s < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n                        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) r = Reflect.decorate(e, t, i, n);\n                        else\n                            for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (r = (s < 3 ? o(r) : s > 3 ? o(t, i, r) : o(t, i)) || r);\n                        return s > 3 && r && Object.defineProperty(t, i, r), r\n                    },\n                    R = function(e, t) {\n                        return function(i, n) {\n                            t(i, n, e)\n                        }\n                    };\n                let F = class e {\n                    constructor(t, i) {\n                        this._editor = t, this._enabled = !1, this._ckAtEnd = e.AtEnd.bindTo(i), this._configListener = this._editor.onDidChangeConfiguration((e => e.hasChanged(110) && this._update())), this._update()\n                    }\n                    dispose() {\n                        var e;\n                        this._configListener.dispose(), null === (e = this._selectionListener) || void 0 === e || e.dispose(), this._ckAtEnd.reset()\n                    }\n                    _update() {\n                        const e = \"on\" === this._editor.getOption(110);\n                        if (this._enabled !== e)\n                            if (this._enabled = e, this._enabled) {\n                                const e = () => {\n                                    if (!this._editor.hasModel()) return void this._ckAtEnd.set(!1);\n                                    const e = this._editor.getModel(),\n                                        t = this._editor.getSelection(),\n                                        i = e.getWordAtPosition(t.getStartPosition());\n                                    i ? this._ckAtEnd.set(i.endColumn === t.getStartPosition().column) : this._ckAtEnd.set(!1)\n                                };\n                                this._selectionListener = this._editor.onDidChangeCursorSelection(e), e()\n                            } else this._selectionListener && (this._ckAtEnd.reset(), this._selectionListener.dispose(), this._selectionListener = void 0)\n                    }\n                };\n                F.AtEnd = new O.uy(\"atEndOfWord\", !1), F = P([R(1, O.i6)], F);\n                var B = i(63580),\n                    V = i(84144),\n                    W = i(94565),\n                    H = i(49989),\n                    z = i(43557),\n                    j = i(79599),\n                    U = function(e, t, i, n) {\n                        var o, s = arguments.length,\n                            r = s < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n                        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) r = Reflect.decorate(e, t, i, n);\n                        else\n                            for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (r = (s < 3 ? o(r) : s > 3 ? o(t, i, r) : o(t, i)) || r);\n                        return s > 3 && r && Object.defineProperty(t, i, r), r\n                    },\n                    $ = function(e, t) {\n                        return function(i, n) {\n                            t(i, n, e)\n                        }\n                    };\n                let K = class e {\n                    constructor(t, i) {\n                        this._editor = t, this._index = 0, this._ckOtherSuggestions = e.OtherSuggestions.bindTo(i)\n                    }\n                    dispose() {\n                        this.reset()\n                    }\n                    reset() {\n                        var e;\n                        this._ckOtherSuggestions.reset(), null === (e = this._listener) || void 0 === e || e.dispose(), this._model = void 0, this._acceptNext = void 0, this._ignore = !1\n                    }\n                    set({\n                        model: t,\n                        index: i\n                    }, n) {\n                        if (0 === t.items.length) return void this.reset();\n                        e._moveIndex(!0, t, i) !== i ? (this._acceptNext = n, this._model = t, this._index = i, this._listener = this._editor.onDidChangeCursorPosition((() => {\n                            this._ignore || this.reset()\n                        })), this._ckOtherSuggestions.set(!0)) : this.reset()\n                    }\n                    static _moveIndex(e, t, i) {\n                        let n = i;\n                        for (; n = (n + t.items.length + (e ? 1 : -1)) % t.items.length, n !== i && t.items[n].completion.additionalTextEdits;);\n                        return n\n                    }\n                    next() {\n                        this._move(!0)\n                    }\n                    prev() {\n                        this._move(!1)\n                    }\n                    _move(t) {\n                        if (this._model) try {\n                            this._ignore = !0, this._index = e._moveIndex(t, this._model, this._index), this._acceptNext({\n                                index: this._index,\n                                item: this._model.items[this._index],\n                                model: this._model\n                            })\n                        } finally {\n                            this._ignore = !1\n                        }\n                    }\n                };\n                K.OtherSuggestions = new O.uy(\"hasOtherSuggestions\", !1), K = U([$(1, O.i6)], K);\n                var q = i(44906);\n                class Z {\n                    constructor(e, t, i) {\n                        this._disposables = new d.SL, this._disposables.add(t.onDidShow((() => this._onItem(t.getFocusedItem())))), this._disposables.add(t.onDidFocus(this._onItem, this)), this._disposables.add(t.onDidHide(this.reset, this)), this._disposables.add(e.onWillType((n => {\n                            if (this._active && !t.isFrozen()) {\n                                const t = n.charCodeAt(n.length - 1);\n                                this._active.acceptCharacters.has(t) && e.getOption(0) && i(this._active.item)\n                            }\n                        })))\n                    }\n                    _onItem(e) {\n                        if (!e || !(0, o.Of)(e.item.completion.commitCharacters)) return void this.reset();\n                        if (this._active && this._active.item.item === e.item) return;\n                        const t = new q.q;\n                        for (const i of e.item.completion.commitCharacters) i.length > 0 && t.add(i.charCodeAt(0));\n                        this._active = {\n                            acceptCharacters: t,\n                            item: e\n                        }\n                    }\n                    reset() {\n                        this._active = void 0\n                    }\n                    dispose() {\n                        this._disposables.dispose()\n                    }\n                }\n                var G = i(97295),\n                    Y = i(3860),\n                    Q = i(90469),\n                    X = i(80689),\n                    J = function(e, t, i, n) {\n                        return new(i || (i = Promise))((function(o, s) {\n                            function r(e) {\n                                try {\n                                    l(n.next(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function a(e) {\n                                try {\n                                    l(n.throw(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function l(e) {\n                                var t;\n                                e.done ? o(e.value) : (t = e.value, t instanceof i ? t : new i((function(e) {\n                                    e(t)\n                                }))).then(r, a)\n                            }\n                            l((n = n.apply(e, t || [])).next())\n                        }))\n                    };\n                class ee {\n                    static create(e, t) {\n                        return J(this, void 0, void 0, (function*() {\n                            if (!t.getOption(105).localityBonus) return ee.None;\n                            if (!t.hasModel()) return ee.None;\n                            const i = t.getModel(),\n                                n = t.getPosition();\n                            if (!e.canComputeWordRanges(i.uri)) return ee.None;\n                            const [s] = yield(new X.x).provideSelectionRanges(i, [n]);\n                            if (0 === s.length) return ee.None;\n                            const r = yield e.computeWordRanges(i.uri, s[0].range);\n                            if (!r) return ee.None;\n                            const a = i.getWordUntilPosition(n);\n                            return delete r[a.word], new class extends ee {\n                                distance(e, i) {\n                                    if (!n.equals(t.getPosition())) return 0;\n                                    if (17 === i.kind) return 2 << 20;\n                                    let a = \"string\" == typeof i.label ? i.label : i.label.label,\n                                        l = r[a];\n                                    if ((0, o.XY)(l)) return 2 << 20;\n                                    let c = (0, o.ry)(l, _.e.fromPositions(e), _.e.compareRangesUsingStarts),\n                                        d = c >= 0 ? l[c] : l[Math.max(0, ~c - 1)],\n                                        h = s.length;\n                                    for (const e of s) {\n                                        if (!_.e.containsRange(e.range, d)) break;\n                                        h -= 1\n                                    }\n                                    return h\n                                }\n                            }\n                        }))\n                    }\n                }\n                ee.None = new class extends ee {\n                    distance() {\n                        return 0\n                    }\n                };\n                var te = i(84972),\n                    ie = i(10829),\n                    ne = i(75392);\n                class oe {\n                    constructor(e, t, i, n, o, s, r) {\n                        this.clipboardText = r, this._snippetCompareFn = oe._compareCompletionItems, this._items = e, this._column = t, this._wordDistance = n, this._options = o, this._refilterKind = 1, this._lineContext = i, \"top\" === s ? this._snippetCompareFn = oe._compareCompletionItemsSnippetsUp : \"bottom\" === s && (this._snippetCompareFn = oe._compareCompletionItemsSnippetsDown)\n                    }\n                    get lineContext() {\n                        return this._lineContext\n                    }\n                    set lineContext(e) {\n                        this._lineContext.leadingLineContent === e.leadingLineContent && this._lineContext.characterCountDelta === e.characterCountDelta || (this._refilterKind = this._lineContext.characterCountDelta < e.characterCountDelta && this._filteredItems ? 2 : 1, this._lineContext = e)\n                    }\n                    get items() {\n                        return this._ensureCachedState(), this._filteredItems\n                    }\n                    get allProvider() {\n                        return this._ensureCachedState(), this._providerInfo.keys()\n                    }\n                    get incomplete() {\n                        this._ensureCachedState();\n                        const e = new Set;\n                        for (let [t, i] of this._providerInfo) i && e.add(t);\n                        return e\n                    }\n                    adopt(e) {\n                        let t = [];\n                        for (let i = 0; i < this._items.length;) e.has(this._items[i].provider) ? i++ : (t.push(this._items[i]), this._items[i] = this._items[this._items.length - 1], this._items.pop());\n                        return this._refilterKind = 1, t\n                    }\n                    get stats() {\n                        return this._ensureCachedState(), this._stats\n                    }\n                    _ensureCachedState() {\n                        0 !== this._refilterKind && this._createCachedState()\n                    }\n                    _createCachedState() {\n                        this._providerInfo = new Map;\n                        const e = [],\n                            {\n                                leadingLineContent: t,\n                                characterCountDelta: i\n                            } = this._lineContext;\n                        let n = \"\",\n                            s = \"\";\n                        const r = 1 === this._refilterKind ? this._items : this._filteredItems,\n                            a = [],\n                            l = !this._options.filterGraceful || r.length > 2e3 ? ne.EW : ne.l7;\n                        for (let o = 0; o < r.length; o++) {\n                            const c = r[o];\n                            if (c.isInvalid) continue;\n                            this._providerInfo.set(c.provider, Boolean(c.container.incomplete));\n                            const d = c.position.column - c.editStart.column,\n                                h = d + i - (c.position.column - this._column);\n                            if (n.length !== h && (n = 0 === h ? \"\" : t.slice(-h), s = n.toLowerCase()), c.word = n, 0 === h) c.score = ne.CL.Default;\n                            else {\n                                let e = 0;\n                                for (; e < d;) {\n                                    const t = n.charCodeAt(e);\n                                    if (32 !== t && 9 !== t) break;\n                                    e += 1\n                                }\n                                if (e >= h) c.score = ne.CL.Default;\n                                else if (\"string\" == typeof c.completion.filterText) {\n                                    let t = l(n, s, e, c.completion.filterText, c.filterTextLow, 0, !1);\n                                    if (!t) continue;\n                                    0 === (0, G.zY)(c.completion.filterText, c.textLabel) ? c.score = t : (c.score = (0, ne.jB)(n, s, e, c.textLabel, c.labelLow, 0), c.score[0] = t[0])\n                                } else {\n                                    let t = l(n, s, e, c.textLabel, c.labelLow, 0, !1);\n                                    if (!t) continue;\n                                    c.score = t\n                                }\n                            }\n                            c.idx = o, c.distance = this._wordDistance.distance(c.position, c.completion), a.push(c), e.push(c.textLabel.length)\n                        }\n                        this._filteredItems = a.sort(this._snippetCompareFn), this._refilterKind = 0, this._stats = {\n                            pLabelLen: e.length ? (0, o.HW)(e.length - .85, e, ((e, t) => e - t)) : 0\n                        }\n                    }\n                    static _compareCompletionItems(e, t) {\n                        return e.score[0] > t.score[0] ? -1 : e.score[0] < t.score[0] ? 1 : e.distance < t.distance ? -1 : e.distance > t.distance ? 1 : e.idx < t.idx ? -1 : e.idx > t.idx ? 1 : 0\n                    }\n                    static _compareCompletionItemsSnippetsDown(e, t) {\n                        if (e.completion.kind !== t.completion.kind) {\n                            if (27 === e.completion.kind) return 1;\n                            if (27 === t.completion.kind) return -1\n                        }\n                        return oe._compareCompletionItems(e, t)\n                    }\n                    static _compareCompletionItemsSnippetsUp(e, t) {\n                        if (e.completion.kind !== t.completion.kind) {\n                            if (27 === e.completion.kind) return -1;\n                            if (27 === t.completion.kind) return 1\n                        }\n                        return oe._compareCompletionItems(e, t)\n                    }\n                }\n                var se = function(e, t, i, n) {\n                        var o, s = arguments.length,\n                            r = s < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n                        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) r = Reflect.decorate(e, t, i, n);\n                        else\n                            for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (r = (s < 3 ? o(r) : s > 3 ? o(t, i, r) : o(t, i)) || r);\n                        return s > 3 && r && Object.defineProperty(t, i, r), r\n                    },\n                    re = function(e, t) {\n                        return function(i, n) {\n                            t(i, n, e)\n                        }\n                    },\n                    ae = function(e, t, i, n) {\n                        return new(i || (i = Promise))((function(o, s) {\n                            function r(e) {\n                                try {\n                                    l(n.next(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function a(e) {\n                                try {\n                                    l(n.throw(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function l(e) {\n                                var t;\n                                e.done ? o(e.value) : (t = e.value, t instanceof i ? t : new i((function(e) {\n                                    e(t)\n                                }))).then(r, a)\n                            }\n                            l((n = n.apply(e, t || [])).next())\n                        }))\n                    };\n                class le {\n                    constructor(e, t, i, n) {\n                        this.leadingLineContent = e.getLineContent(t.lineNumber).substr(0, t.column - 1), this.leadingWord = e.getWordUntilPosition(t), this.lineNumber = t.lineNumber, this.column = t.column, this.auto = i, this.shy = n\n                    }\n                    static shouldAutoTrigger(e) {\n                        if (!e.hasModel()) return !1;\n                        const t = e.getModel(),\n                            i = e.getPosition();\n                        t.tokenizeIfCheap(i.lineNumber);\n                        const n = t.getWordAtPosition(i);\n                        return !!n && (n.endColumn === i.column && !!isNaN(Number(n.word)))\n                    }\n                }\n                let ce = class e {\n                    constructor(e, t, i, n, o, r, a) {\n                        this._editor = e, this._editorWorkerService = t, this._clipboardService = i, this._telemetryService = n, this._logService = o, this._contextKeyService = r, this._configurationService = a, this._toDispose = new d.SL, this._quickSuggestDelay = 10, this._triggerCharacterListener = new d.SL, this._triggerQuickSuggest = new s._F, this._state = 0, this._completionDisposables = new d.SL, this._onDidCancel = new l.Q5, this._onDidTrigger = new l.Q5, this._onDidSuggest = new l.Q5, this.onDidCancel = this._onDidCancel.event, this.onDidTrigger = this._onDidTrigger.event, this.onDidSuggest = this._onDidSuggest.event, this._telemetryGate = 0, this._currentSelection = this._editor.getSelection() || new Y.Y(1, 1, 1, 1), this._toDispose.add(this._editor.onDidChangeModel((() => {\n                            this._updateTriggerCharacters(), this.cancel()\n                        }))), this._toDispose.add(this._editor.onDidChangeModelLanguage((() => {\n                            this._updateTriggerCharacters(), this.cancel()\n                        }))), this._toDispose.add(this._editor.onDidChangeConfiguration((() => {\n                            this._updateTriggerCharacters(), this._updateQuickSuggest()\n                        }))), this._toDispose.add(x.KZ.onDidChange((() => {\n                            this._updateTriggerCharacters(), this._updateActiveSuggestSession()\n                        }))), this._toDispose.add(this._editor.onDidChangeCursorSelection((e => {\n                            this._onCursorChange(e)\n                        })));\n                        let c = !1;\n                        this._toDispose.add(this._editor.onDidCompositionStart((() => {\n                            c = !0\n                        }))), this._toDispose.add(this._editor.onDidCompositionEnd((() => {\n                            c = !1, this._onCompositionEnd()\n                        }))), this._toDispose.add(this._editor.onDidChangeModelContent((() => {\n                            c || this._refilterCompletionItems()\n                        }))), this._updateTriggerCharacters(), this._updateQuickSuggest()\n                    }\n                    dispose() {\n                        (0, d.B9)(this._triggerCharacterListener), (0, d.B9)([this._onDidCancel, this._onDidSuggest, this._onDidTrigger, this._triggerQuickSuggest]), this._toDispose.dispose(), this._completionDisposables.dispose(), this.cancel()\n                    }\n                    _updateQuickSuggest() {\n                        this._quickSuggestDelay = this._editor.getOption(79), (isNaN(this._quickSuggestDelay) || !this._quickSuggestDelay && 0 !== this._quickSuggestDelay || this._quickSuggestDelay < 0) && (this._quickSuggestDelay = 10)\n                    }\n                    _updateTriggerCharacters() {\n                        if (this._triggerCharacterListener.clear(), this._editor.getOption(80) || !this._editor.hasModel() || !this._editor.getOption(108)) return;\n                        const e = new Map;\n                        for (const t of x.KZ.all(this._editor.getModel()))\n                            for (const i of t.triggerCharacters || []) {\n                                let n = e.get(i);\n                                n || (n = new Set, n.add((0, j.ZJ)()), e.set(i, n)), n.add(t)\n                            }\n                        const t = t => {\n                            if (! function(e, t, i) {\n                                    if (!Boolean(t.getContextKeyValue(\"inlineSuggestionVisible\"))) return !0;\n                                    const n = i.getValue(\"editor.inlineSuggest.allowSuggestOnTriggerCharacters\");\n                                    return void 0 !== n && Boolean(n)\n                                }(this._editor, this._contextKeyService, this._configurationService)) return;\n                            if (le.shouldAutoTrigger(this._editor)) return;\n                            if (!t) {\n                                const e = this._editor.getPosition();\n                                t = this._editor.getModel().getLineContent(e.lineNumber).substr(0, e.column - 1)\n                            }\n                            let i = \"\";\n                            (0, G.YK)(t.charCodeAt(t.length - 1)) ? (0, G.ZG)(t.charCodeAt(t.length - 2)) && (i = t.substr(t.length - 2)) : i = t.charAt(t.length - 1);\n                            const n = e.get(i);\n                            if (n) {\n                                const e = this._completionModel ? {\n                                    items: this._completionModel.adopt(n),\n                                    clipboardText: this._completionModel.clipboardText\n                                } : void 0;\n                                this.trigger({\n                                    auto: !0,\n                                    shy: !1,\n                                    triggerCharacter: i\n                                }, Boolean(this._completionModel), n, e)\n                            }\n                        };\n                        this._triggerCharacterListener.add(this._editor.onDidType(t)), this._triggerCharacterListener.add(this._editor.onDidCompositionEnd(t))\n                    }\n                    get state() {\n                        return this._state\n                    }\n                    cancel(e = !1) {\n                        var t;\n                        0 !== this._state && (this._triggerQuickSuggest.cancel(), null === (t = this._requestToken) || void 0 === t || t.cancel(), this._requestToken = void 0, this._state = 0, this._completionModel = void 0, this._context = void 0, this._onDidCancel.fire({\n                            retrigger: e\n                        }))\n                    }\n                    clear() {\n                        this._completionDisposables.clear()\n                    }\n                    _updateActiveSuggestSession() {\n                        0 !== this._state && (this._editor.hasModel() && x.KZ.has(this._editor.getModel()) ? this.trigger({\n                            auto: 2 === this._state,\n                            shy: !1\n                        }, !0) : this.cancel())\n                    }\n                    _onCursorChange(e) {\n                        if (!this._editor.hasModel()) return;\n                        const t = this._currentSelection;\n                        this._currentSelection = this._editor.getSelection(), !e.selection.isEmpty() || 0 !== e.reason && 3 !== e.reason || \"keyboard\" !== e.source && \"deleteLeft\" !== e.source ? this.cancel() : 0 === this._state && 0 === e.reason ? (t.containsRange(this._currentSelection) || t.getEndPosition().isBeforeOrEqual(this._currentSelection.getPosition())) && this._doTriggerQuickSuggest() : 0 !== this._state && 3 === e.reason && this._refilterCompletionItems()\n                    }\n                    _onCompositionEnd() {\n                        0 === this._state ? this._doTriggerQuickSuggest() : this._refilterCompletionItems()\n                    }\n                    _doTriggerQuickSuggest() {\n                        !1 !== this._editor.getOption(78) && (this._editor.getOption(105).snippetsPreventQuickSuggestions && w.SnippetController2.get(this._editor).isInSnippet() || (this.cancel(), this._triggerQuickSuggest.cancelAndSet((() => {\n                            if (0 !== this._state) return;\n                            if (!le.shouldAutoTrigger(this._editor)) return;\n                            if (!this._editor.hasModel()) return;\n                            const e = this._editor.getModel(),\n                                t = this._editor.getPosition(),\n                                i = this._editor.getOption(78);\n                            if (!1 !== i) {\n                                if (!0 === i);\n                                else {\n                                    e.tokenizeIfCheap(t.lineNumber);\n                                    const n = e.getLineTokens(t.lineNumber),\n                                        o = n.getStandardTokenType(n.findTokenIndexAtOffset(Math.max(t.column - 1 - 1, 0)));\n                                    if (!(i.other && 0 === o || i.comments && 1 === o || i.strings && 2 === o)) return\n                                }(function(e, t, i) {\n                                    if (!Boolean(t.getContextKeyValue(\"inlineSuggestionVisible\"))) return !0;\n                                    const n = i.getValue(\"editor.inlineSuggest.allowQuickSuggestions\");\n                                    return void 0 !== n && Boolean(n)\n                                })(this._editor, this._contextKeyService, this._configurationService) && x.KZ.has(e) && this.trigger({\n                                    auto: !0,\n                                    shy: !1\n                                })\n                            }\n                        }), this._quickSuggestDelay)))\n                    }\n                    _refilterCompletionItems() {\n                        Promise.resolve().then((() => {\n                            if (0 === this._state) return;\n                            if (!this._editor.hasModel()) return;\n                            const e = this._editor.getModel(),\n                                t = this._editor.getPosition(),\n                                i = new le(e, t, 2 === this._state, !1);\n                            this._onNewContext(i)\n                        }))\n                    }\n                    trigger(t, i = !1, n, o) {\n                        var s;\n                        if (!this._editor.hasModel()) return;\n                        const l = this._editor.getModel(),\n                            c = t.auto,\n                            d = new le(l, this._editor.getPosition(), c, t.shy);\n                        this.cancel(i), this._state = c ? 2 : 1, this._onDidTrigger.fire({\n                            auto: c,\n                            shy: t.shy,\n                            position: this._editor.getPosition()\n                        }), this._context = d;\n                        let h = {\n                            triggerKind: null !== (s = t.triggerKind) && void 0 !== s ? s : 0\n                        };\n                        t.triggerCharacter && (h = {\n                            triggerKind: 1,\n                            triggerCharacter: t.triggerCharacter\n                        }), this._requestToken = new r.A;\n                        const u = this._editor.getOption(100);\n                        let g = 1;\n                        switch (u) {\n                            case \"top\":\n                                g = 0;\n                                break;\n                            case \"bottom\":\n                                g = 2\n                        }\n                        const {\n                            itemKind: p,\n                            showDeprecated: f\n                        } = e._createSuggestFilter(this._editor), m = ee.create(this._editorWorkerService, this._editor), v = (0, j.kL)(l, this._editor.getPosition(), new j.A9(g, p, n, f), h, this._requestToken.token);\n                        Promise.all([v, m]).then((([e, i]) => ae(this, void 0, void 0, (function*() {\n                            var n;\n                            if (null === (n = this._requestToken) || void 0 === n || n.dispose(), !this._editor.hasModel()) return;\n                            let s = null == o ? void 0 : o.clipboardText;\n                            if (!s && e.needsClipboard && (s = yield this._clipboardService.readText()), 0 === this._state) return;\n                            const r = this._editor.getModel();\n                            let a = e.items;\n                            if (o) {\n                                const e = (0, j.wg)(g);\n                                a = a.concat(o.items).sort(e)\n                            }\n                            const l = new le(r, this._editor.getPosition(), c, t.shy);\n                            this._completionModel = new oe(a, this._context.column, {\n                                leadingLineContent: l.leadingLineContent,\n                                characterCountDelta: l.column - this._context.column\n                            }, i, this._editor.getOption(105), this._editor.getOption(100), s), this._completionDisposables.add(e.disposable), this._onNewContext(l), this._reportDurationsTelemetry(e.durations)\n                        })))).catch(a.dL)\n                    }\n                    _reportDurationsTelemetry(e) {\n                        this._telemetryGate++ % 230 == 0 && setTimeout((() => {\n                            this._telemetryService.publicLog2(\"suggest.durations.json\", {\n                                data: JSON.stringify(e)\n                            }), this._logService.debug(\"suggest.durations.json\", e)\n                        }))\n                    }\n                    static _createSuggestFilter(e) {\n                        const t = new Set;\n                        \"none\" === e.getOption(100) && t.add(27);\n                        const i = e.getOption(105);\n                        return i.showMethods || t.add(0), i.showFunctions || t.add(1), i.showConstructors || t.add(2), i.showFields || t.add(3), i.showVariables || t.add(4), i.showClasses || t.add(5), i.showStructs || t.add(6), i.showInterfaces || t.add(7), i.showModules || t.add(8), i.showProperties || t.add(9), i.showEvents || t.add(10), i.showOperators || t.add(11), i.showUnits || t.add(12), i.showValues || t.add(13), i.showConstants || t.add(14), i.showEnums || t.add(15), i.showEnumMembers || t.add(16), i.showKeywords || t.add(17), i.showWords || t.add(18), i.showColors || t.add(19), i.showFiles || t.add(20), i.showReferences || t.add(21), i.showColors || t.add(22), i.showFolders || t.add(23), i.showTypeParameters || t.add(24), i.showSnippets || t.add(27), i.showUsers || t.add(25), i.showIssues || t.add(26), {\n                            itemKind: t,\n                            showDeprecated: i.showDeprecated\n                        }\n                    }\n                    _onNewContext(e) {\n                        if (this._context)\n                            if (e.lineNumber === this._context.lineNumber)\n                                if ((0, G.V8)(e.leadingLineContent) === (0, G.V8)(this._context.leadingLineContent)) {\n                                    if (e.column < this._context.column) e.leadingWord.word ? this.trigger({\n                                        auto: this._context.auto,\n                                        shy: !1\n                                    }, !0) : this.cancel();\n                                    else if (this._completionModel)\n                                        if (0 !== e.leadingWord.word.length && e.leadingWord.startColumn > this._context.leadingWord.startColumn) {\n                                            const e = new Set(x.KZ.all(this._editor.getModel()));\n                                            for (let t of this._completionModel.allProvider) e.delete(t);\n                                            const t = this._completionModel.adopt(new Set);\n                                            this.trigger({\n                                                auto: this._context.auto,\n                                                shy: !1\n                                            }, !0, e, {\n                                                items: t,\n                                                clipboardText: this._completionModel.clipboardText\n                                            })\n                                        } else if (e.column > this._context.column && this._completionModel.incomplete.size > 0 && 0 !== e.leadingWord.word.length) {\n                                        const {\n                                            incomplete: e\n                                        } = this._completionModel, t = this._completionModel.adopt(e);\n                                        this.trigger({\n                                            auto: 2 === this._state,\n                                            shy: !1,\n                                            triggerKind: 2\n                                        }, !0, e, {\n                                            items: t,\n                                            clipboardText: this._completionModel.clipboardText\n                                        })\n                                    } else {\n                                        let t = this._completionModel.lineContext,\n                                            i = !1;\n                                        if (this._completionModel.lineContext = {\n                                                leadingLineContent: e.leadingLineContent,\n                                                characterCountDelta: e.column - this._context.column\n                                            }, 0 === this._completionModel.items.length) {\n                                            if (le.shouldAutoTrigger(this._editor) && this._context.leadingWord.endColumn < e.leadingWord.startColumn) return void this.trigger({\n                                                auto: this._context.auto,\n                                                shy: !1\n                                            }, !0);\n                                            if (this._context.auto) return void this.cancel();\n                                            if (this._completionModel.lineContext = t, i = this._completionModel.items.length > 0, i && 0 === e.leadingWord.word.length) return void this.cancel()\n                                        }\n                                        this._onDidSuggest.fire({\n                                            completionModel: this._completionModel,\n                                            auto: this._context.auto,\n                                            shy: this._context.shy,\n                                            isFrozen: i\n                                        })\n                                    }\n                                } else this.cancel();\n                        else this.cancel()\n                    }\n                };\n                ce = se([re(1, Q.p), re(2, te.p), re(3, ie.b), re(4, z.VZ), re(5, O.i6), re(6, S.Ui)], ce);\n                class de {\n                    constructor(e, t) {\n                        this._disposables = new d.SL, this._lastOvertyped = [], this._empty = !0, this._disposables.add(e.onWillType((() => {\n                            if (!this._empty) return;\n                            if (!e.hasModel()) return;\n                            const t = e.getSelections(),\n                                i = t.length;\n                            let n = !1;\n                            for (let e = 0; e < i; e++)\n                                if (!t[e].isEmpty()) {\n                                    n = !0;\n                                    break\n                                } if (!n) return;\n                            this._lastOvertyped = [];\n                            const o = e.getModel();\n                            for (let e = 0; e < i; e++) {\n                                const i = t[e];\n                                if (o.getValueLengthInRange(i) > de._maxSelectionLength) return;\n                                this._lastOvertyped[e] = {\n                                    value: o.getValueInRange(i),\n                                    multiline: i.startLineNumber !== i.endLineNumber\n                                }\n                            }\n                            this._empty = !1\n                        }))), this._disposables.add(t.onDidCancel((e => {\n                            this._empty || e.retrigger || (this._empty = !0)\n                        })))\n                    }\n                    getLastOvertypedInfo(e) {\n                        if (!this._empty && e >= 0 && e < this._lastOvertyped.length) return this._lastOvertyped[e]\n                    }\n                    dispose() {\n                        this._disposables.dispose()\n                    }\n                }\n                de._maxSelectionLength = 51200;\n                var he = i(65321),\n                    ue = (i(28609), i(43799)),\n                    ge = i(59870),\n                    pe = (i(89401), i(84527)),\n                    fe = i(90317),\n                    me = i(58335),\n                    ve = function(e, t, i, n) {\n                        var o, s = arguments.length,\n                            r = s < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n                        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) r = Reflect.decorate(e, t, i, n);\n                        else\n                            for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (r = (s < 3 ? o(r) : s > 3 ? o(t, i, r) : o(t, i)) || r);\n                        return s > 3 && r && Object.defineProperty(t, i, r), r\n                    },\n                    _e = function(e, t) {\n                        return function(i, n) {\n                            t(i, n, e)\n                        }\n                    };\n                class be extends me.Mm {\n                    updateLabel() {\n                        const e = this._keybindingService.lookupKeybinding(this._action.id, this._contextKeyService);\n                        if (!e) return super.updateLabel();\n                        this.label && (this.label.textContent = (0, B.N)(\"ddd\", \"{0} ({1})\", this._action.label, be.symbolPrintEnter(e)))\n                    }\n                    static symbolPrintEnter(e) {\n                        var t;\n                        return null === (t = e.getLabel()) || void 0 === t ? void 0 : t.replace(/\\benter\\b/gi, \"⏎\")\n                    }\n                }\n                let we = class {\n                    constructor(e, t, i, n) {\n                        this._menuService = i, this._contextKeyService = n, this._menuDisposables = new d.SL, this.element = he.R3(e, he.$(\".suggest-status-bar\"));\n                        const o = e => e instanceof V.U8 ? t.createInstance(be, e, void 0) : void 0;\n                        this._leftActions = new fe.o(this.element, {\n                            actionViewItemProvider: o\n                        }), this._rightActions = new fe.o(this.element, {\n                            actionViewItemProvider: o\n                        }), this._leftActions.domNode.classList.add(\"left\"), this._rightActions.domNode.classList.add(\"right\")\n                    }\n                    dispose() {\n                        this._menuDisposables.dispose(), this.element.remove()\n                    }\n                    show() {\n                        const e = this._menuService.createMenu(j.GI, this._contextKeyService),\n                            t = () => {\n                                const t = [],\n                                    i = [];\n                                for (let [n, o] of e.getActions()) \"left\" === n ? t.push(...o) : i.push(...o);\n                                this._leftActions.clear(), this._leftActions.push(t), this._rightActions.clear(), this._rightActions.push(i)\n                            };\n                        this._menuDisposables.add(e.onDidChange((() => t()))), this._menuDisposables.add(e)\n                    }\n                    hide() {\n                        this._menuDisposables.clear()\n                    }\n                };\n                we = ve([_e(1, L.TG), _e(2, V.co), _e(3, O.i6)], we);\n                i(24954);\n                var ye = i(73910),\n                    Ce = i(88810),\n                    xe = i(97781),\n                    Se = i(73098);\n                class ke {\n                    constructor() {\n                        let e;\n                        this._onDidWillResize = new l.Q5, this.onDidWillResize = this._onDidWillResize.event, this._onDidResize = new l.Q5, this.onDidResize = this._onDidResize.event, this._sashListener = new d.SL, this._size = new he.Ro(0, 0), this._minSize = new he.Ro(0, 0), this._maxSize = new he.Ro(Number.MAX_SAFE_INTEGER, Number.MAX_SAFE_INTEGER), this.domNode = document.createElement(\"div\"), this._eastSash = new Se.g(this.domNode, {\n                            getVerticalSashLeft: () => this._size.width\n                        }, {\n                            orientation: 0\n                        }), this._westSash = new Se.g(this.domNode, {\n                            getVerticalSashLeft: () => 0\n                        }, {\n                            orientation: 0\n                        }), this._northSash = new Se.g(this.domNode, {\n                            getHorizontalSashTop: () => 0\n                        }, {\n                            orientation: 1,\n                            orthogonalEdge: Se.l.North\n                        }), this._southSash = new Se.g(this.domNode, {\n                            getHorizontalSashTop: () => this._size.height\n                        }, {\n                            orientation: 1,\n                            orthogonalEdge: Se.l.South\n                        }), this._northSash.orthogonalStartSash = this._westSash, this._northSash.orthogonalEndSash = this._eastSash, this._southSash.orthogonalStartSash = this._westSash, this._southSash.orthogonalEndSash = this._eastSash;\n                        let t = 0,\n                            i = 0;\n                        this._sashListener.add(l.ju.any(this._northSash.onDidStart, this._eastSash.onDidStart, this._southSash.onDidStart, this._westSash.onDidStart)((() => {\n                            void 0 === e && (this._onDidWillResize.fire(), e = this._size, t = 0, i = 0)\n                        }))), this._sashListener.add(l.ju.any(this._northSash.onDidEnd, this._eastSash.onDidEnd, this._southSash.onDidEnd, this._westSash.onDidEnd)((() => {\n                            void 0 !== e && (e = void 0, t = 0, i = 0, this._onDidResize.fire({\n                                dimension: this._size,\n                                done: !0\n                            }))\n                        }))), this._sashListener.add(this._eastSash.onDidChange((n => {\n                            e && (i = n.currentX - n.startX, this.layout(e.height + t, e.width + i), this._onDidResize.fire({\n                                dimension: this._size,\n                                done: !1,\n                                east: !0\n                            }))\n                        }))), this._sashListener.add(this._westSash.onDidChange((n => {\n                            e && (i = -(n.currentX - n.startX), this.layout(e.height + t, e.width + i), this._onDidResize.fire({\n                                dimension: this._size,\n                                done: !1,\n                                west: !0\n                            }))\n                        }))), this._sashListener.add(this._northSash.onDidChange((n => {\n                            e && (t = -(n.currentY - n.startY), this.layout(e.height + t, e.width + i), this._onDidResize.fire({\n                                dimension: this._size,\n                                done: !1,\n                                north: !0\n                            }))\n                        }))), this._sashListener.add(this._southSash.onDidChange((n => {\n                            e && (t = n.currentY - n.startY, this.layout(e.height + t, e.width + i), this._onDidResize.fire({\n                                dimension: this._size,\n                                done: !1,\n                                south: !0\n                            }))\n                        }))), this._sashListener.add(l.ju.any(this._eastSash.onDidReset, this._westSash.onDidReset)((e => {\n                            this._preferredSize && (this.layout(this._size.height, this._preferredSize.width), this._onDidResize.fire({\n                                dimension: this._size,\n                                done: !0\n                            }))\n                        }))), this._sashListener.add(l.ju.any(this._northSash.onDidReset, this._southSash.onDidReset)((e => {\n                            this._preferredSize && (this.layout(this._preferredSize.height, this._size.width), this._onDidResize.fire({\n                                dimension: this._size,\n                                done: !0\n                            }))\n                        })))\n                    }\n                    dispose() {\n                        this._northSash.dispose(), this._southSash.dispose(), this._eastSash.dispose(), this._westSash.dispose(), this._sashListener.dispose(), this._onDidResize.dispose(), this._onDidWillResize.dispose(), this.domNode.remove()\n                    }\n                    enableSashes(e, t, i, n) {\n                        this._northSash.state = e ? 3 : 0, this._eastSash.state = t ? 3 : 0, this._southSash.state = i ? 3 : 0, this._westSash.state = n ? 3 : 0\n                    }\n                    layout(e = this.size.height, t = this.size.width) {\n                        const {\n                            height: i,\n                            width: n\n                        } = this._minSize, {\n                            height: o,\n                            width: s\n                        } = this._maxSize;\n                        e = Math.max(i, Math.min(o, e)), t = Math.max(n, Math.min(s, t));\n                        const r = new he.Ro(t, e);\n                        he.Ro.equals(r, this._size) || (this.domNode.style.height = e + \"px\", this.domNode.style.width = t + \"px\", this._size = r, this._northSash.layout(), this._eastSash.layout(), this._southSash.layout(), this._westSash.layout())\n                    }\n                    clearSashHoverState() {\n                        this._eastSash.clearSashHoverState(), this._westSash.clearSashHoverState(), this._northSash.clearSashHoverState(), this._southSash.clearSashHoverState()\n                    }\n                    get size() {\n                        return this._size\n                    }\n                    set maxSize(e) {\n                        this._maxSize = e\n                    }\n                    get maxSize() {\n                        return this._maxSize\n                    }\n                    set minSize(e) {\n                        this._minSize = e\n                    }\n                    get minSize() {\n                        return this._minSize\n                    }\n                    set preferredSize(e) {\n                        this._preferredSize = e\n                    }\n                    get preferredSize() {\n                        return this._preferredSize\n                    }\n                }\n                var Le = i(16268),\n                    Ne = i(9802),\n                    De = i(73046),\n                    Ie = i(59365),\n                    Ee = i(43256),\n                    Te = i(64141),\n                    Me = function(e, t, i, n) {\n                        var o, s = arguments.length,\n                            r = s < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n                        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) r = Reflect.decorate(e, t, i, n);\n                        else\n                            for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (r = (s < 3 ? o(r) : s > 3 ? o(t, i, r) : o(t, i)) || r);\n                        return s > 3 && r && Object.defineProperty(t, i, r), r\n                    },\n                    Ae = function(e, t) {\n                        return function(i, n) {\n                            t(i, n, e)\n                        }\n                    };\n\n                function Oe(e) {\n                    return !!e && Boolean(e.completion.documentation || e.completion.detail && e.completion.detail !== e.completion.label)\n                }\n                let Pe = class {\n                    constructor(e, t) {\n                        this._editor = e, this._onDidClose = new l.Q5, this.onDidClose = this._onDidClose.event, this._onDidChangeContents = new l.Q5, this.onDidChangeContents = this._onDidChangeContents.event, this._disposables = new d.SL, this._renderDisposeable = new d.SL, this._borderWidth = 1, this._size = new he.Ro(330, 0), this.domNode = he.$(\".suggest-details\"), this.domNode.classList.add(\"no-docs\"), this._markdownRenderer = t.createInstance(Ee.$, {\n                            editor: e\n                        }), this._body = he.$(\".body\"), this._scrollbar = new Ne.s$(this._body, {}), he.R3(this.domNode, this._scrollbar.getDomNode()), this._disposables.add(this._scrollbar), this._header = he.R3(this._body, he.$(\".header\")), this._close = he.R3(this._header, he.$(\"span\" + De.lA.close.cssSelector)), this._close.title = B.N(\"details.close\", \"Close\"), this._type = he.R3(this._header, he.$(\"p.type\")), this._docs = he.R3(this._body, he.$(\"p.docs\")), this._configureFont(), this._disposables.add(this._editor.onDidChangeConfiguration((e => {\n                            e.hasChanged(43) && this._configureFont()\n                        })))\n                    }\n                    dispose() {\n                        this._disposables.dispose(), this._renderDisposeable.dispose()\n                    }\n                    _configureFont() {\n                        const e = this._editor.getOptions(),\n                            t = e.get(43),\n                            i = t.getMassagedFontFamily(Le.G6 ? Te.hL.fontFamily : null),\n                            n = e.get(106) || t.fontSize,\n                            o = e.get(107) || t.lineHeight,\n                            s = t.fontWeight,\n                            r = `${n}px`,\n                            a = `${o}px`;\n                        this.domNode.style.fontSize = r, this.domNode.style.lineHeight = \"\" + o / n, this.domNode.style.fontWeight = s, this.domNode.style.fontFeatureSettings = t.fontFeatureSettings, this._type.style.fontFamily = i, this._close.style.height = a, this._close.style.width = a\n                    }\n                    getLayoutInfo() {\n                        const e = this._editor.getOption(107) || this._editor.getOption(43).lineHeight,\n                            t = this._borderWidth;\n                        return {\n                            lineHeight: e,\n                            borderWidth: t,\n                            borderHeight: 2 * t,\n                            verticalPadding: 22,\n                            horizontalPadding: 14\n                        }\n                    }\n                    renderLoading() {\n                        this._type.textContent = B.N(\"loading\", \"正在加载...\"), this._docs.textContent = \"\", this.domNode.classList.remove(\"no-docs\", \"no-type\"), this.layout(this.size.width, 2 * this.getLayoutInfo().lineHeight), this._onDidChangeContents.fire(this)\n                    }\n                    renderItem(e, t) {\n                        var i, n;\n                        this._renderDisposeable.clear();\n                        let {\n                            detail: o,\n                            documentation: s\n                        } = e.completion;\n                        if (t) {\n                            let t = \"\";\n                            t += `score: ${e.score[0]}\\n`, t += `prefix: ${null!==(i=e.word)&&void 0!==i?i:\"(no prefix)\"}\\n`, t += `word: ${e.completion.filterText?e.completion.filterText+\" (filterText)\":e.textLabel}\\n`, t += `distance: ${e.distance} (localityBonus-setting)\\n`, t += `index: ${e.idx}, based on ${e.completion.sortText&&`sortText: \"${e.completion.sortText}\"`||\"label\"}\\n`, t += `commit_chars: ${null===(n=e.completion.commitCharacters)||void 0===n?void 0:n.join(\"\")}\\n`, s = (new Ie.W5).appendCodeblock(\"empty\", t), o = `Provider: ${e.provider._debugDisplayName}`\n                        }\n                        if (t || Oe(e)) {\n                            if (this.domNode.classList.remove(\"no-docs\", \"no-type\"), o) {\n                                const e = o.length > 1e5 ? `${o.substr(0,1e5)}…` : o;\n                                this._type.textContent = e, this._type.title = e, he.$Z(this._type), this._type.classList.toggle(\"auto-wrap\", !/\\r?\\n^\\s+/gim.test(e))\n                            } else he.PO(this._type), this._type.title = \"\", he.Cp(this._type), this.domNode.classList.add(\"no-type\");\n                            if (he.PO(this._docs), \"string\" == typeof s) this._docs.classList.remove(\"markdown-docs\"), this._docs.textContent = s;\n                            else if (s) {\n                                this._docs.classList.add(\"markdown-docs\"), he.PO(this._docs);\n                                const e = this._markdownRenderer.render(s);\n                                this._docs.appendChild(e.element), this._renderDisposeable.add(e), this._renderDisposeable.add(this._markdownRenderer.onDidRenderAsync((() => {\n                                    this.layout(this._size.width, this._type.clientHeight + this._docs.clientHeight), this._onDidChangeContents.fire(this)\n                                })))\n                            }\n                            this.domNode.style.userSelect = \"text\", this.domNode.tabIndex = -1, this._close.onmousedown = e => {\n                                e.preventDefault(), e.stopPropagation()\n                            }, this._close.onclick = e => {\n                                e.preventDefault(), e.stopPropagation(), this._onDidClose.fire()\n                            }, this._body.scrollTop = 0, this.layout(this._size.width, this._type.clientHeight + this._docs.clientHeight), this._onDidChangeContents.fire(this)\n                        } else this.clearContents()\n                    }\n                    clearContents() {\n                        this.domNode.classList.add(\"no-docs\"), this._type.textContent = \"\", this._docs.textContent = \"\"\n                    }\n                    get size() {\n                        return this._size\n                    }\n                    layout(e, t) {\n                        const i = new he.Ro(e, t);\n                        he.Ro.equals(i, this._size) || (this._size = i, he.dp(this.domNode, e, t)), this._scrollbar.scanDomNode()\n                    }\n                    scrollDown(e = 8) {\n                        this._body.scrollTop += e\n                    }\n                    scrollUp(e = 8) {\n                        this._body.scrollTop -= e\n                    }\n                    scrollTop() {\n                        this._body.scrollTop = 0\n                    }\n                    scrollBottom() {\n                        this._body.scrollTop = this._body.scrollHeight\n                    }\n                    pageDown() {\n                        this.scrollDown(80)\n                    }\n                    pageUp() {\n                        this.scrollUp(80)\n                    }\n                    set borderWidth(e) {\n                        this._borderWidth = e\n                    }\n                    get borderWidth() {\n                        return this._borderWidth\n                    }\n                };\n                Pe = Me([Ae(1, L.TG)], Pe);\n                class Re {\n                    constructor(e, t) {\n                        let i, n;\n                        this.widget = e, this._editor = t, this._disposables = new d.SL, this._added = !1, this._resizable = new ke, this._resizable.domNode.classList.add(\"suggest-details-container\"), this._resizable.domNode.appendChild(e.domNode), this._resizable.enableSashes(!1, !0, !0, !1);\n                        let o = 0,\n                            s = 0;\n                        this._disposables.add(this._resizable.onDidWillResize((() => {\n                            i = this._topLeft, n = this._resizable.size\n                        }))), this._disposables.add(this._resizable.onDidResize((e => {\n                            if (i && n) {\n                                this.widget.layout(e.dimension.width, e.dimension.height);\n                                let t = !1;\n                                e.west && (s = n.width - e.dimension.width, t = !0), e.north && (o = n.height - e.dimension.height, t = !0), t && this._applyTopLeft({\n                                    top: i.top + o,\n                                    left: i.left + s\n                                })\n                            }\n                            e.done && (i = void 0, n = void 0, o = 0, s = 0, this._userSize = e.dimension)\n                        }))), this._disposables.add(this.widget.onDidChangeContents((() => {\n                            var e;\n                            this._anchorBox && this._placeAtAnchor(this._anchorBox, null !== (e = this._userSize) && void 0 !== e ? e : this.widget.size)\n                        })))\n                    }\n                    dispose() {\n                        this._resizable.dispose(), this._disposables.dispose(), this.hide()\n                    }\n                    getId() {\n                        return \"suggest.details\"\n                    }\n                    getDomNode() {\n                        return this._resizable.domNode\n                    }\n                    getPosition() {\n                        return null\n                    }\n                    show() {\n                        this._added || (this._editor.addOverlayWidget(this), this.getDomNode().style.position = \"fixed\", this._added = !0)\n                    }\n                    hide(e = !1) {\n                        this._resizable.clearSashHoverState(), this._added && (this._editor.removeOverlayWidget(this), this._added = !1, this._anchorBox = void 0, this._topLeft = void 0), e && (this._userSize = void 0, this.widget.clearContents())\n                    }\n                    placeAtAnchor(e) {\n                        var t;\n                        const i = he.i(e);\n                        this._anchorBox = i, this._placeAtAnchor(this._anchorBox, null !== (t = this._userSize) && void 0 !== t ? t : this.widget.size)\n                    }\n                    _placeAtAnchor(e, t) {\n                        var i;\n                        const n = he.D6(document.body),\n                            o = this.widget.getLayoutInfo(),\n                            s = new he.Ro(220, 2 * o.lineHeight),\n                            r = e.top,\n                            a = function() {\n                                const i = n.width - (e.left + e.width + o.borderWidth + o.horizontalPadding),\n                                    a = -o.borderWidth + e.left + e.width,\n                                    l = new he.Ro(i, n.height - e.top - o.borderHeight - o.verticalPadding),\n                                    c = l.with(void 0, e.top + e.height - o.borderHeight - o.verticalPadding);\n                                return {\n                                    top: r,\n                                    left: a,\n                                    fit: i - t.width,\n                                    maxSizeTop: l,\n                                    maxSizeBottom: c,\n                                    minSize: s.with(Math.min(i, s.width))\n                                }\n                            }(),\n                            l = [a, function() {\n                                const i = e.left - o.borderWidth - o.horizontalPadding,\n                                    a = Math.max(o.horizontalPadding, e.left - t.width - o.borderWidth),\n                                    l = new he.Ro(i, n.height - e.top - o.borderHeight - o.verticalPadding),\n                                    c = l.with(void 0, e.top + e.height - o.borderHeight - o.verticalPadding);\n                                return {\n                                    top: r,\n                                    left: a,\n                                    fit: i - t.width,\n                                    maxSizeTop: l,\n                                    maxSizeBottom: c,\n                                    minSize: s.with(Math.min(i, s.width))\n                                }\n                            }(), function() {\n                                const i = e.left,\n                                    r = -o.borderWidth + e.top + e.height,\n                                    a = new he.Ro(e.width - o.borderHeight, n.height - e.top - e.height - o.verticalPadding);\n                                return {\n                                    top: r,\n                                    left: i,\n                                    fit: a.height - t.height,\n                                    maxSizeBottom: a,\n                                    maxSizeTop: a,\n                                    minSize: s.with(a.width)\n                                }\n                            }()],\n                            c = null !== (i = l.find((e => e.fit >= 0))) && void 0 !== i ? i : l.sort(((e, t) => t.fit - e.fit))[0],\n                            d = e.top + e.height - o.borderHeight;\n                        let h, u = t.height;\n                        const g = Math.max(c.maxSizeTop.height, c.maxSizeBottom.height);\n                        let p;\n                        u > g && (u = g), u <= c.maxSizeTop.height ? (h = !0, p = c.maxSizeTop) : (h = !1, p = c.maxSizeBottom), this._applyTopLeft({\n                            left: c.left,\n                            top: h ? c.top : d - u\n                        }), this.getDomNode().style.position = \"fixed\", this._resizable.enableSashes(!h, c === a, h, c !== a), this._resizable.minSize = c.minSize, this._resizable.maxSize = p, this._resizable.layout(u, Math.min(p.width, t.width)), this.widget.layout(this._resizable.size.width, this._resizable.size.height)\n                    }\n                    _applyTopLeft(e) {\n                        this._topLeft = e, this.getDomNode().style.left = `${this._topLeft.left}px`, this.getDomNode().style.top = `${this._topLeft.top}px`\n                    }\n                }\n                var Fe, Be = i(48801),\n                    Ve = i(70666),\n                    We = i(66663),\n                    He = i(95935),\n                    ze = i(71144);\n\n                function je(e, t, i, n) {\n                    const o = n === Fe.ROOT_FOLDER ? [\"rootfolder-icon\"] : n === Fe.FOLDER ? [\"folder-icon\"] : [\"file-icon\"];\n                    if (i) {\n                        let s;\n                        if (i.scheme === We.lg.data) {\n                            s = He.Vb.parseMetaData(i).get(He.Vb.META_DATA_LABEL)\n                        } else s = Ue((0, He.Hx)(i).toLowerCase());\n                        if (n === Fe.FOLDER) o.push(`${s}-name-folder-icon`);\n                        else {\n                            if (s) {\n                                if (o.push(`${s}-name-file-icon`), s.length <= 255) {\n                                    const e = s.split(\".\");\n                                    for (let t = 1; t < e.length; t++) o.push(`${e.slice(t).join(\".\")}-ext-file-icon`)\n                                }\n                                o.push(\"ext-file-icon\")\n                            }\n                            const n = function(e, t, i) {\n                                if (!i) return null;\n                                let n = null;\n                                if (i.scheme === We.lg.data) {\n                                    const e = He.Vb.parseMetaData(i).get(He.Vb.META_DATA_MIME);\n                                    e && (n = t.getModeId(e))\n                                } else {\n                                    const t = e.getModel(i);\n                                    t && (n = t.getLanguageId())\n                                }\n                                if (n && n !== ze.XT) return n;\n                                return t.getModeIdByFilepathOrFirstLine(i)\n                            }(e, t, i);\n                            n && o.push(`${Ue(n)}-lang-file-icon`)\n                        }\n                    }\n                    return o\n                }\n\n                function Ue(e) {\n                    return e.replace(/[\\11\\12\\14\\15\\40]/g, \"/\")\n                }! function(e) {\n                    e[e.FILE = 0] = \"FILE\", e[e.FOLDER = 1] = \"FOLDER\", e[e.ROOT_FOLDER = 2] = \"ROOT_FOLDER\"\n                }(Fe || (Fe = {}));\n                var $e, Ke = i(51200),\n                    qe = i(71531),\n                    Ze = function(e, t, i, n) {\n                        var o, s = arguments.length,\n                            r = s < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n                        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) r = Reflect.decorate(e, t, i, n);\n                        else\n                            for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (r = (s < 3 ? o(r) : s > 3 ? o(t, i, r) : o(t, i)) || r);\n                        return s > 3 && r && Object.defineProperty(t, i, r), r\n                    },\n                    Ge = function(e, t) {\n                        return function(i, n) {\n                            t(i, n, e)\n                        }\n                    };\n\n                function Ye(e) {\n                    return `suggest-aria-id:${e}`\n                }\n                const Qe = (0, i(59554).q5)(\"suggest-more-info\", De.lA.chevronRight, B.N(\"suggestMoreInfoIcon\", \"Icon for more information in the suggest widget.\")),\n                    Xe = new(($e = class e {\n                        extract(t, i) {\n                            if (t.textLabel.match(e._regexStrict)) return i[0] = t.textLabel, !0;\n                            if (t.completion.detail && t.completion.detail.match(e._regexStrict)) return i[0] = t.completion.detail, !0;\n                            if (\"string\" == typeof t.completion.documentation) {\n                                const n = e._regexRelaxed.exec(t.completion.documentation);\n                                if (n && (0 === n.index || n.index + n[0].length === t.completion.documentation.length)) return i[0] = n[0], !0\n                            }\n                            return !1\n                        }\n                    })._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*\\))/, $e._regexStrict = new RegExp(`^${$e._regexRelaxed.source}$`, \"i\"), $e);\n                let Je = class {\n                    constructor(e, t, i, n) {\n                        this._editor = e, this._modelService = t, this._modeService = i, this._themeService = n, this._onDidToggleDetails = new l.Q5, this.onDidToggleDetails = this._onDidToggleDetails.event, this.templateId = \"suggestion\"\n                    }\n                    dispose() {\n                        this._onDidToggleDetails.dispose()\n                    }\n                    renderTemplate(e) {\n                        const t = Object.create(null);\n                        t.disposables = new d.SL, t.root = e, t.root.classList.add(\"show-file-icons\"), t.icon = (0, he.R3)(e, (0, he.$)(\".icon\")), t.colorspan = (0, he.R3)(t.icon, (0, he.$)(\"span.colorspan\"));\n                        const i = (0, he.R3)(e, (0, he.$)(\".contents\")),\n                            n = (0, he.R3)(i, (0, he.$)(\".main\"));\n                        t.iconContainer = (0, he.R3)(n, (0, he.$)(\".icon-label.codicon\")), t.left = (0, he.R3)(n, (0, he.$)(\"span.left\")), t.right = (0, he.R3)(n, (0, he.$)(\"span.right\")), t.iconLabel = new Be.g(t.left, {\n                            supportHighlights: !0,\n                            supportIcons: !0\n                        }), t.disposables.add(t.iconLabel), t.parametersLabel = (0, he.R3)(t.left, (0, he.$)(\"span.signature-label\")), t.qualifierLabel = (0, he.R3)(t.left, (0, he.$)(\"span.qualifier-label\")), t.detailsLabel = (0, he.R3)(t.right, (0, he.$)(\"span.details-label\")), t.readMore = (0, he.R3)(t.right, (0, he.$)(\"span.readMore\" + xe.kS.asCSSSelector(Qe))), t.readMore.title = B.N(\"readMore\", \"Read More\");\n                        const o = () => {\n                            const e = this._editor.getOptions(),\n                                i = e.get(43),\n                                o = i.getMassagedFontFamily(Le.G6 ? Te.hL.fontFamily : null),\n                                s = i.fontFeatureSettings,\n                                r = e.get(106) || i.fontSize,\n                                a = e.get(107) || i.lineHeight,\n                                l = i.fontWeight,\n                                c = `${r}px`,\n                                d = `${a}px`;\n                            t.root.style.fontSize = c, t.root.style.fontWeight = l, n.style.fontFamily = o, n.style.fontFeatureSettings = s, n.style.lineHeight = d, t.icon.style.height = d, t.icon.style.width = d, t.readMore.style.height = d, t.readMore.style.width = d\n                        };\n                        return o(), t.disposables.add(this._editor.onDidChangeConfiguration((e => {\n                            (e.hasChanged(43) || e.hasChanged(106) || e.hasChanged(107)) && o()\n                        }))), t\n                    }\n                    renderElement(e, t, i) {\n                        const {\n                            completion: n\n                        } = e;\n                        i.root.id = Ye(t), i.colorspan.style.backgroundColor = \"\";\n                        const s = {\n                            labelEscapeNewLines: !0,\n                            matches: (0, ne.mB)(e.score)\n                        };\n                        let r = [];\n                        if (19 === n.kind && Xe.extract(e, r)) i.icon.className = \"icon customcolor\", i.iconContainer.className = \"icon hide\", i.colorspan.style.backgroundColor = r[0];\n                        else if (20 === n.kind && this._themeService.getFileIconTheme().hasFileIcons) {\n                            i.icon.className = \"icon hide\", i.iconContainer.className = \"icon hide\";\n                            const t = je(this._modelService, this._modeService, Ve.o.from({\n                                    scheme: \"fake\",\n                                    path: e.textLabel\n                                }), Fe.FILE),\n                                o = je(this._modelService, this._modeService, Ve.o.from({\n                                    scheme: \"fake\",\n                                    path: n.detail\n                                }), Fe.FILE);\n                            s.extraClasses = t.length > o.length ? t : o\n                        } else 23 === n.kind && this._themeService.getFileIconTheme().hasFolderIcons ? (i.icon.className = \"icon hide\", i.iconContainer.className = \"icon hide\", s.extraClasses = (0, o.xH)([je(this._modelService, this._modeService, Ve.o.from({\n                            scheme: \"fake\",\n                            path: e.textLabel\n                        }), Fe.FOLDER), je(this._modelService, this._modeService, Ve.o.from({\n                            scheme: \"fake\",\n                            path: n.detail\n                        }), Fe.FOLDER)])) : (i.icon.className = \"icon hide\", i.iconContainer.className = \"\", i.iconContainer.classList.add(\"suggest-icon\", ...(0, x.Sy)(n.kind).split(\" \")));\n                        n.tags && n.tags.indexOf(1) >= 0 && (s.extraClasses = (s.extraClasses || []).concat([\"deprecated\"]), s.matches = []), i.iconLabel.setLabel(e.textLabel, void 0, s), \"string\" == typeof n.label ? (i.parametersLabel.textContent = \"\", i.detailsLabel.textContent = et(n.detail || \"\"), i.root.classList.add(\"string-label\")) : (i.parametersLabel.textContent = et(n.label.detail || \"\"), i.detailsLabel.textContent = et(n.label.description || \"\"), i.root.classList.remove(\"string-label\")), this._editor.getOption(105).showInlineDetails ? (0, he.$Z)(i.detailsLabel) : (0, he.Cp)(i.detailsLabel), Oe(e) ? (i.right.classList.add(\"can-expand-details\"), (0, he.$Z)(i.readMore), i.readMore.onmousedown = e => {\n                            e.stopPropagation(), e.preventDefault()\n                        }, i.readMore.onclick = e => {\n                            e.stopPropagation(), e.preventDefault(), this._onDidToggleDetails.fire()\n                        }) : (i.right.classList.remove(\"can-expand-details\"), (0, he.Cp)(i.readMore), i.readMore.onmousedown = null, i.readMore.onclick = null)\n                    }\n                    disposeTemplate(e) {\n                        e.disposables.dispose()\n                    }\n                };\n\n                function et(e) {\n                    return e.replace(/\\r\\n|\\r|\\n/g, \"\")\n                }\n                Je = Ze([Ge(1, Ke.q), Ge(2, qe.h), Ge(3, xe.XE)], Je);\n                var tt = function(e, t, i, n) {\n                        var o, s = arguments.length,\n                            r = s < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n                        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) r = Reflect.decorate(e, t, i, n);\n                        else\n                            for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (r = (s < 3 ? o(r) : s > 3 ? o(t, i, r) : o(t, i)) || r);\n                        return s > 3 && r && Object.defineProperty(t, i, r), r\n                    },\n                    it = function(e, t) {\n                        return function(i, n) {\n                            t(i, n, e)\n                        }\n                    },\n                    nt = function(e, t, i, n) {\n                        return new(i || (i = Promise))((function(o, s) {\n                            function r(e) {\n                                try {\n                                    l(n.next(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function a(e) {\n                                try {\n                                    l(n.throw(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function l(e) {\n                                var t;\n                                e.done ? o(e.value) : (t = e.value, t instanceof i ? t : new i((function(e) {\n                                    e(t)\n                                }))).then(r, a)\n                            }\n                            l((n = n.apply(e, t || [])).next())\n                        }))\n                    };\n                const ot = (0, ye.P6)(\"editorSuggestWidget.background\", {\n                        dark: ye.D0,\n                        light: ye.D0,\n                        hc: ye.D0\n                    }, B.N(\"editorSuggestWidgetBackground\", \"Background color of the suggest widget.\")),\n                    st = (0, ye.P6)(\"editorSuggestWidget.border\", {\n                        dark: ye.D1,\n                        light: ye.D1,\n                        hc: ye.D1\n                    }, B.N(\"editorSuggestWidgetBorder\", \"Border color of the suggest widget.\")),\n                    rt = (0, ye.P6)(\"editorSuggestWidget.foreground\", {\n                        dark: ye.NO,\n                        light: ye.NO,\n                        hc: ye.NO\n                    }, B.N(\"editorSuggestWidgetForeground\", \"Foreground color of the suggest widget.\")),\n                    at = (0, ye.P6)(\"editorSuggestWidget.selectedForeground\", {\n                        dark: ye.NP,\n                        light: ye.NP,\n                        hc: ye.NP\n                    }, B.N(\"editorSuggestWidgetSelectedForeground\", \"Foreground color of the selected entry in the suggest widget.\")),\n                    lt = (0, ye.P6)(\"editorSuggestWidget.selectedIconForeground\", {\n                        dark: ye.cb,\n                        light: ye.cb,\n                        hc: ye.cb\n                    }, B.N(\"editorSuggestWidgetSelectedIconForeground\", \"Icon foreground color of the selected entry in the suggest widget.\")),\n                    ct = (0, ye.P6)(\"editorSuggestWidget.selectedBackground\", {\n                        dark: ye.Vq,\n                        light: ye.Vq,\n                        hc: ye.Vq\n                    }, B.N(\"editorSuggestWidgetSelectedBackground\", \"Background color of the selected entry in the suggest widget.\")),\n                    dt = (0, ye.P6)(\"editorSuggestWidget.highlightForeground\", {\n                        dark: ye.Gw,\n                        light: ye.Gw,\n                        hc: ye.Gw\n                    }, B.N(\"editorSuggestWidgetHighlightForeground\", \"Color of the match highlights in the suggest widget.\")),\n                    ht = (0, ye.P6)(\"editorSuggestWidget.focusHighlightForeground\", {\n                        dark: ye.PX,\n                        light: ye.PX,\n                        hc: ye.PX\n                    }, B.N(\"editorSuggestWidgetFocusHighlightForeground\", \"Color of the match highlights in the suggest widget when an item is focused.\"));\n                class ut {\n                    constructor(e, t) {\n                        this._service = e, this._key = `suggestWidget.size/${t.getEditorType()}/${t instanceof pe.H}`\n                    }\n                    restore() {\n                        var e;\n                        const t = null !== (e = this._service.get(this._key, 0)) && void 0 !== e ? e : \"\";\n                        try {\n                            const e = JSON.parse(t);\n                            if (he.Ro.is(e)) return he.Ro.lift(e)\n                        } catch (e) {}\n                    }\n                    store(e) {\n                        this._service.store(this._key, JSON.stringify(e), 0, 1)\n                    }\n                    reset() {\n                        this._service.remove(this._key, 0)\n                    }\n                }\n                let gt = class e {\n                    constructor(e, t, i, n, o) {\n                        this.editor = e, this._storageService = t, this._state = 0, this._isAuto = !1, this._ignoreFocusEvents = !1, this._forceRenderingAbove = !1, this._explainMode = !1, this._showTimeout = new s._F, this._disposables = new d.SL, this._onDidSelect = new l.Q5, this._onDidFocus = new l.Q5, this._onDidHide = new l.Q5, this._onDidShow = new l.Q5, this.onDidSelect = this._onDidSelect.event, this.onDidFocus = this._onDidFocus.event, this.onDidHide = this._onDidHide.event, this.onDidShow = this._onDidShow.event, this._onDetailsKeydown = new l.Q5, this.onDetailsKeyDown = this._onDetailsKeydown.event, this.element = new ke, this.element.domNode.classList.add(\"editor-widget\", \"suggest-widget\"), this._contentWidget = new pt(this, e), this._persistedSize = new ut(t, e);\n                        class r {\n                            constructor(e, t, i = !1, n = !1) {\n                                this.persistedSize = e, this.currentSize = t, this.persistHeight = i, this.persistWidth = n\n                            }\n                        }\n                        let a;\n                        this._disposables.add(this.element.onDidWillResize((() => {\n                            this._contentWidget.lockPreference(), a = new r(this._persistedSize.restore(), this.element.size)\n                        }))), this._disposables.add(this.element.onDidResize((e => {\n                            var t, i, n, o;\n                            if (this._resize(e.dimension.width, e.dimension.height), a && (a.persistHeight = a.persistHeight || !!e.north || !!e.south, a.persistWidth = a.persistWidth || !!e.east || !!e.west), e.done) {\n                                if (a) {\n                                    const {\n                                        itemHeight: e,\n                                        defaultSize: s\n                                    } = this.getLayoutInfo(), r = Math.round(e / 2);\n                                    let {\n                                        width: l,\n                                        height: c\n                                    } = this.element.size;\n                                    (!a.persistHeight || Math.abs(a.currentSize.height - c) <= r) && (c = null !== (i = null === (t = a.persistedSize) || void 0 === t ? void 0 : t.height) && void 0 !== i ? i : s.height), (!a.persistWidth || Math.abs(a.currentSize.width - l) <= r) && (l = null !== (o = null === (n = a.persistedSize) || void 0 === n ? void 0 : n.width) && void 0 !== o ? o : s.width), this._persistedSize.store(new he.Ro(l, c))\n                                }\n                                this._contentWidget.unlockPreference(), a = void 0\n                            }\n                        }))), this._messageElement = he.R3(this.element.domNode, he.$(\".message\")), this._listElement = he.R3(this.element.domNode, he.$(\".tree\"));\n                        const c = o.createInstance(Pe, this.editor);\n                        c.onDidClose(this.toggleDetails, this, this._disposables), this._details = new Re(c, this.editor);\n                        const h = () => this.element.domNode.classList.toggle(\"no-icons\", !this.editor.getOption(105).showIcons);\n                        h();\n                        const u = o.createInstance(Je, this.editor);\n                        this._disposables.add(u), this._disposables.add(u.onDidToggleDetails((() => this.toggleDetails()))), this._list = new ue.aV(\"SuggestWidget\", this._listElement, {\n                            getHeight: e => this.getLayoutInfo().itemHeight,\n                            getTemplateId: e => \"suggestion\"\n                        }, [u], {\n                            alwaysConsumeMouseWheel: !0,\n                            useShadows: !1,\n                            mouseSupport: !1,\n                            accessibilityProvider: {\n                                getRole: () => \"option\",\n                                getAriaLabel: e => {\n                                    if (e.isResolved && this._isDetailsVisible()) {\n                                        const {\n                                            documentation: t,\n                                            detail: i\n                                        } = e.completion, n = G.WU(\"{0}{1}\", i || \"\", t ? \"string\" == typeof t ? t : t.value : \"\");\n                                        return B.N(\"ariaCurrenttSuggestionReadDetails\", \"{0}, docs: {1}\", e.textLabel, n)\n                                    }\n                                    return e.textLabel\n                                },\n                                getWidgetAriaLabel: () => B.N(\"suggest\", \"Suggest\"),\n                                getWidgetRole: () => \"listbox\"\n                            }\n                        }), this._status = o.createInstance(we, this.element.domNode);\n                        const g = () => this.element.domNode.classList.toggle(\"with-status-bar\", this.editor.getOption(105).showStatusBar);\n                        g(), this._disposables.add((0, Ce.Jl)(this._list, n, {\n                            listInactiveFocusBackground: ct,\n                            listInactiveFocusOutline: ye.xL\n                        })), this._disposables.add(n.onDidColorThemeChange((e => this._onThemeChange(e)))), this._onThemeChange(n.getColorTheme()), this._disposables.add(this._list.onMouseDown((e => this._onListMouseDownOrTap(e)))), this._disposables.add(this._list.onTap((e => this._onListMouseDownOrTap(e)))), this._disposables.add(this._list.onDidChangeSelection((e => this._onListSelection(e)))), this._disposables.add(this._list.onDidChangeFocus((e => this._onListFocus(e)))), this._disposables.add(this.editor.onDidChangeCursorSelection((() => this._onCursorSelectionChanged()))), this._disposables.add(this.editor.onDidChangeConfiguration((e => {\n                            e.hasChanged(105) && (g(), h())\n                        }))), this._ctxSuggestWidgetVisible = j._y.Visible.bindTo(i), this._ctxSuggestWidgetDetailsVisible = j._y.DetailsVisible.bindTo(i), this._ctxSuggestWidgetMultipleSuggestions = j._y.MultipleSuggestions.bindTo(i), this._disposables.add(he.mu(this._details.widget.domNode, \"keydown\", (e => {\n                            this._onDetailsKeydown.fire(e)\n                        }))), this._disposables.add(this.editor.onMouseDown((e => this._onEditorMouseDown(e))))\n                    }\n                    dispose() {\n                        var e;\n                        this._details.widget.dispose(), this._details.dispose(), this._list.dispose(), this._status.dispose(), this._disposables.dispose(), null === (e = this._loadingTimeout) || void 0 === e || e.dispose(), this._showTimeout.dispose(), this._contentWidget.dispose(), this.element.dispose()\n                    }\n                    _onEditorMouseDown(e) {\n                        this._details.widget.domNode.contains(e.target.element) ? this._details.widget.domNode.focus() : this.element.domNode.contains(e.target.element) && this.editor.focus()\n                    }\n                    _onCursorSelectionChanged() {\n                        0 !== this._state && this._contentWidget.layout()\n                    }\n                    _onListMouseDownOrTap(e) {\n                        void 0 !== e.element && void 0 !== e.index && (e.browserEvent.preventDefault(), e.browserEvent.stopPropagation(), this._select(e.element, e.index))\n                    }\n                    _onListSelection(e) {\n                        e.elements.length && this._select(e.elements[0], e.indexes[0])\n                    }\n                    _select(e, t) {\n                        const i = this._completionModel;\n                        i && (this._onDidSelect.fire({\n                            item: e,\n                            index: t,\n                            model: i\n                        }), this.editor.focus())\n                    }\n                    _onThemeChange(e) {\n                        const t = e.getColor(ot);\n                        t && (this.element.domNode.style.backgroundColor = t.toString(), this._messageElement.style.backgroundColor = t.toString(), this._details.widget.domNode.style.backgroundColor = t.toString());\n                        const i = e.getColor(st);\n                        i && (this.element.domNode.style.borderColor = i.toString(), this._messageElement.style.borderColor = i.toString(), this._status.element.style.borderTopColor = i.toString(), this._details.widget.domNode.style.borderColor = i.toString(), this._detailsBorderColor = i.toString());\n                        const n = e.getColor(ye.R8);\n                        n && (this._detailsFocusBorderColor = n.toString()), this._details.widget.borderWidth = \"hc\" === e.type ? 2 : 1\n                    }\n                    _onListFocus(e) {\n                        var t;\n                        if (this._ignoreFocusEvents) return;\n                        if (!e.elements.length) return this._currentSuggestionDetails && (this._currentSuggestionDetails.cancel(), this._currentSuggestionDetails = void 0, this._focusedItem = void 0), void this.editor.setAriaOptions({\n                            activeDescendant: void 0\n                        });\n                        if (!this._completionModel) return;\n                        const i = e.elements[0],\n                            n = e.indexes[0];\n                        i !== this._focusedItem && (null === (t = this._currentSuggestionDetails) || void 0 === t || t.cancel(), this._currentSuggestionDetails = void 0, this._focusedItem = i, this._list.reveal(n), this._currentSuggestionDetails = (0, s.PG)((e => nt(this, void 0, void 0, (function*() {\n                            const t = (0, s.Vg)((() => {\n                                this._isDetailsVisible() && this.showDetails(!0)\n                            }), 250);\n                            e.onCancellationRequested((() => t.dispose()));\n                            const n = yield i.resolve(e);\n                            return t.dispose(), n\n                        })))), this._currentSuggestionDetails.then((() => {\n                            n >= this._list.length || i !== this._list.element(n) || (this._ignoreFocusEvents = !0, this._list.splice(n, 1, [i]), this._list.setFocus([n]), this._ignoreFocusEvents = !1, this._isDetailsVisible() ? this.showDetails(!1) : this.element.domNode.classList.remove(\"docs-side\"), this.editor.setAriaOptions({\n                                activeDescendant: Ye(n)\n                            }))\n                        })).catch(a.dL)), this._onDidFocus.fire({\n                            item: i,\n                            index: n,\n                            model: this._completionModel\n                        })\n                    }\n                    _setState(t) {\n                        if (this._state !== t) switch (this._state = t, this.element.domNode.classList.toggle(\"frozen\", 4 === t), this.element.domNode.classList.remove(\"message\"), t) {\n                            case 0:\n                                he.Cp(this._messageElement, this._listElement, this._status.element), this._details.hide(!0), this._status.hide(), this._contentWidget.hide(), this._ctxSuggestWidgetVisible.reset(), this._ctxSuggestWidgetMultipleSuggestions.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;\n                                break;\n                            case 1:\n                                this.element.domNode.classList.add(\"message\"), this._messageElement.textContent = e.LOADING_MESSAGE, he.Cp(this._listElement, this._status.element), he.$Z(this._messageElement), this._details.hide(), this._show(), this._focusedItem = void 0;\n                                break;\n                            case 2:\n                                this.element.domNode.classList.add(\"message\"), this._messageElement.textContent = e.NO_SUGGESTIONS_MESSAGE, he.Cp(this._listElement, this._status.element), he.$Z(this._messageElement), this._details.hide(), this._show(), this._focusedItem = void 0;\n                                break;\n                            case 3:\n                            case 4:\n                                he.Cp(this._messageElement), he.$Z(this._listElement, this._status.element), this._show();\n                                break;\n                            case 5:\n                                he.Cp(this._messageElement), he.$Z(this._listElement, this._status.element), this._details.show(), this._show()\n                        }\n                    }\n                    _show() {\n                        this._status.show(), this._contentWidget.show(), this._layout(this._persistedSize.restore()), this._ctxSuggestWidgetVisible.set(!0), this._showTimeout.cancelAndSet((() => {\n                            this.element.domNode.classList.add(\"visible\"), this._onDidShow.fire(this)\n                        }), 100)\n                    }\n                    showTriggered(e, t) {\n                        0 === this._state && (this._contentWidget.setPosition(this.editor.getPosition()), this._isAuto = !!e, this._isAuto || (this._loadingTimeout = (0, s.Vg)((() => this._setState(1)), t)))\n                    }\n                    showSuggestions(e, t, i, n) {\n                        var o, s;\n                        if (this._contentWidget.setPosition(this.editor.getPosition()), null === (o = this._loadingTimeout) || void 0 === o || o.dispose(), null === (s = this._currentSuggestionDetails) || void 0 === s || s.cancel(), this._currentSuggestionDetails = void 0, this._completionModel !== e && (this._completionModel = e), i && 2 !== this._state && 0 !== this._state) return void this._setState(4);\n                        const r = this._completionModel.items.length,\n                            a = 0 === r;\n                        if (this._ctxSuggestWidgetMultipleSuggestions.set(r > 1), a) return this._setState(n ? 0 : 2), void(this._completionModel = void 0);\n                        this._focusedItem = void 0, this._list.splice(0, this._list.length, this._completionModel.items), this._setState(i ? 4 : 3), this._list.reveal(t, 0), this._list.setFocus([t]), this._layout(this.element.size), this._detailsBorderColor && (this._details.widget.domNode.style.borderColor = this._detailsBorderColor)\n                    }\n                    selectNextPage() {\n                        switch (this._state) {\n                            case 0:\n                                return !1;\n                            case 5:\n                                return this._details.widget.pageDown(), !0;\n                            case 1:\n                                return !this._isAuto;\n                            default:\n                                return this._list.focusNextPage(), !0\n                        }\n                    }\n                    selectNext() {\n                        switch (this._state) {\n                            case 0:\n                                return !1;\n                            case 1:\n                                return !this._isAuto;\n                            default:\n                                return this._list.focusNext(1, !0), !0\n                        }\n                    }\n                    selectLast() {\n                        switch (this._state) {\n                            case 0:\n                                return !1;\n                            case 5:\n                                return this._details.widget.scrollBottom(), !0;\n                            case 1:\n                                return !this._isAuto;\n                            default:\n                                return this._list.focusLast(), !0\n                        }\n                    }\n                    selectPreviousPage() {\n                        switch (this._state) {\n                            case 0:\n                                return !1;\n                            case 5:\n                                return this._details.widget.pageUp(), !0;\n                            case 1:\n                                return !this._isAuto;\n                            default:\n                                return this._list.focusPreviousPage(), !0\n                        }\n                    }\n                    selectPrevious() {\n                        switch (this._state) {\n                            case 0:\n                                return !1;\n                            case 1:\n                                return !this._isAuto;\n                            default:\n                                return this._list.focusPrevious(1, !0), !1\n                        }\n                    }\n                    selectFirst() {\n                        switch (this._state) {\n                            case 0:\n                                return !1;\n                            case 5:\n                                return this._details.widget.scrollTop(), !0;\n                            case 1:\n                                return !this._isAuto;\n                            default:\n                                return this._list.focusFirst(), !0\n                        }\n                    }\n                    getFocusedItem() {\n                        if (0 !== this._state && 2 !== this._state && 1 !== this._state && this._completionModel) return {\n                            item: this._list.getFocusedElements()[0],\n                            index: this._list.getFocus()[0],\n                            model: this._completionModel\n                        }\n                    }\n                    toggleDetailsFocus() {\n                        5 === this._state ? (this._setState(3), this._detailsBorderColor && (this._details.widget.domNode.style.borderColor = this._detailsBorderColor)) : 3 === this._state && this._isDetailsVisible() && (this._setState(5), this._detailsFocusBorderColor && (this._details.widget.domNode.style.borderColor = this._detailsFocusBorderColor))\n                    }\n                    toggleDetails() {\n                        this._isDetailsVisible() ? (this._ctxSuggestWidgetDetailsVisible.set(!1), this._setDetailsVisible(!1), this._details.hide(), this.element.domNode.classList.remove(\"shows-details\")) : !Oe(this._list.getFocusedElements()[0]) && !this._explainMode || 3 !== this._state && 5 !== this._state && 4 !== this._state || (this._ctxSuggestWidgetDetailsVisible.set(!0), this._setDetailsVisible(!0), this.showDetails(!1))\n                    }\n                    showDetails(e) {\n                        this._details.show(), e ? this._details.widget.renderLoading() : this._details.widget.renderItem(this._list.getFocusedElements()[0], this._explainMode), this._positionDetails(), this.editor.focus(), this.element.domNode.classList.add(\"shows-details\")\n                    }\n                    toggleExplainMode() {\n                        this._list.getFocusedElements()[0] && (this._explainMode = !this._explainMode, this._isDetailsVisible() ? this.showDetails(!1) : this.toggleDetails())\n                    }\n                    resetPersistedSize() {\n                        this._persistedSize.reset()\n                    }\n                    hideWidget() {\n                        var e;\n                        null === (e = this._loadingTimeout) || void 0 === e || e.dispose(), this._setState(0), this._onDidHide.fire(this), this.element.clearSashHoverState();\n                        const t = this._persistedSize.restore(),\n                            i = Math.ceil(4.3 * this.getLayoutInfo().itemHeight);\n                        t && t.height < i && this._persistedSize.store(t.with(void 0, i))\n                    }\n                    isFrozen() {\n                        return 4 === this._state\n                    }\n                    _afterRender(e) {\n                        null !== e ? 2 !== this._state && 1 !== this._state && (this._isDetailsVisible() && this._details.show(), this._positionDetails()) : this._isDetailsVisible() && this._details.hide()\n                    }\n                    _layout(e) {\n                        var t, i, n;\n                        if (!this.editor.hasModel()) return;\n                        if (!this.editor.getDomNode()) return;\n                        const o = he.D6(document.body),\n                            s = this.getLayoutInfo();\n                        e || (e = s.defaultSize);\n                        let r = e.height,\n                            a = e.width;\n                        if (this._status.element.style.lineHeight = `${s.itemHeight}px`, 2 === this._state || 1 === this._state) r = s.itemHeight + s.borderHeight, a = s.defaultSize.width / 2, this.element.enableSashes(!1, !1, !1, !1), this.element.minSize = this.element.maxSize = new he.Ro(a, r), this._contentWidget.setPreference(2);\n                        else {\n                            const l = o.width - s.borderHeight - 2 * s.horizontalPadding;\n                            a > l && (a = l);\n                            const c = this._completionModel ? this._completionModel.stats.pLabelLen * s.typicalHalfwidthCharacterWidth : a,\n                                d = s.statusBarHeight + this._list.contentHeight + s.borderHeight,\n                                h = s.itemHeight + s.statusBarHeight,\n                                u = he.i(this.editor.getDomNode()),\n                                g = this.editor.getScrolledVisiblePosition(this.editor.getPosition()),\n                                p = u.top + g.top + g.height,\n                                f = Math.min(o.height - p - s.verticalPadding, d),\n                                m = u.top + g.top - s.verticalPadding,\n                                v = Math.min(m, d);\n                            let _ = Math.min(Math.max(v, f) + s.borderHeight, d);\n                            r === (null === (t = this._cappedHeight) || void 0 === t ? void 0 : t.capped) && (r = this._cappedHeight.wanted), r < h && (r = h), r > _ && (r = _);\n                            const b = 150;\n                            r > f || this._forceRenderingAbove && m > b ? (this._contentWidget.setPreference(1), this.element.enableSashes(!0, !0, !1, !1), _ = v) : (this._contentWidget.setPreference(2), this.element.enableSashes(!1, !0, !0, !1), _ = f), this.element.preferredSize = new he.Ro(c, s.defaultSize.height), this.element.maxSize = new he.Ro(l, _), this.element.minSize = new he.Ro(220, h), this._cappedHeight = r === d ? {\n                                wanted: null !== (n = null === (i = this._cappedHeight) || void 0 === i ? void 0 : i.wanted) && void 0 !== n ? n : e.height,\n                                capped: r\n                            } : void 0\n                        }\n                        this._resize(a, r)\n                    }\n                    _resize(e, t) {\n                        const {\n                            width: i,\n                            height: n\n                        } = this.element.maxSize;\n                        e = Math.min(i, e), t = Math.min(n, t);\n                        const {\n                            statusBarHeight: o\n                        } = this.getLayoutInfo();\n                        this._list.layout(t - o, e), this._listElement.style.height = t - o + \"px\", this.element.layout(t, e), this._contentWidget.layout(), this._positionDetails()\n                    }\n                    _positionDetails() {\n                        this._isDetailsVisible() && this._details.placeAtAnchor(this.element.domNode)\n                    }\n                    getLayoutInfo() {\n                        const e = this.editor.getOption(43),\n                            t = (0, ge.u)(this.editor.getOption(107) || e.lineHeight, 8, 1e3),\n                            i = this.editor.getOption(105).showStatusBar && 2 !== this._state && 1 !== this._state ? t : 0,\n                            n = this._details.widget.borderWidth,\n                            o = 2 * n;\n                        return {\n                            itemHeight: t,\n                            statusBarHeight: i,\n                            borderWidth: n,\n                            borderHeight: o,\n                            typicalHalfwidthCharacterWidth: e.typicalHalfwidthCharacterWidth,\n                            verticalPadding: 22,\n                            horizontalPadding: 14,\n                            defaultSize: new he.Ro(430, i + 12 * t + o)\n                        }\n                    }\n                    _isDetailsVisible() {\n                        return this._storageService.getBoolean(\"expandSuggestionDocs\", 0, !1)\n                    }\n                    _setDetailsVisible(e) {\n                        this._storageService.store(\"expandSuggestionDocs\", e, 0, 0)\n                    }\n                    forceRenderingAbove() {\n                        this._forceRenderingAbove || (this._forceRenderingAbove = !0, this._layout(this._persistedSize.restore()))\n                    }\n                    stopForceRenderingAbove() {\n                        this._forceRenderingAbove = !1\n                    }\n                };\n                gt.LOADING_MESSAGE = B.N(\"suggestWidget.loading\", \"正在加载...\"), gt.NO_SUGGESTIONS_MESSAGE = B.N(\"suggestWidget.noSuggestions\", \"No suggestions.\"), gt = tt([it(1, N.Uy), it(2, O.i6), it(3, xe.XE), it(4, L.TG)], gt);\n                class pt {\n                    constructor(e, t) {\n                        this._widget = e, this._editor = t, this.allowEditorOverflow = !0, this.suppressMouseDown = !1, this._preferenceLocked = !1, this._added = !1, this._hidden = !1\n                    }\n                    dispose() {\n                        this._added && (this._added = !1, this._editor.removeContentWidget(this))\n                    }\n                    getId() {\n                        return \"editor.widget.suggestWidget\"\n                    }\n                    getDomNode() {\n                        return this._widget.element.domNode\n                    }\n                    show() {\n                        this._hidden = !1, this._added || (this._added = !0, this._editor.addContentWidget(this))\n                    }\n                    hide() {\n                        this._hidden || (this._hidden = !0, this.layout())\n                    }\n                    layout() {\n                        this._editor.layoutContentWidget(this)\n                    }\n                    getPosition() {\n                        return !this._hidden && this._position && this._preference ? {\n                            position: this._position,\n                            preference: [this._preference]\n                        } : null\n                    }\n                    beforeRender() {\n                        const {\n                            height: e,\n                            width: t\n                        } = this._widget.element.size, {\n                            borderWidth: i,\n                            horizontalPadding: n\n                        } = this._widget.getLayoutInfo();\n                        return new he.Ro(t + 2 * i + n, e + 2 * i)\n                    }\n                    afterRender(e) {\n                        this._widget._afterRender(e)\n                    }\n                    setPreference(e) {\n                        this._preferenceLocked || (this._preference = e)\n                    }\n                    lockPreference() {\n                        this._preferenceLocked = !0\n                    }\n                    unlockPreference() {\n                        this._preferenceLocked = !1\n                    }\n                    setPosition(e) {\n                        this._position = e\n                    }\n                }(0, xe.Ic)(((e, t) => {\n                    const i = e.getColor(dt);\n                    i && t.addRule(`.monaco-editor .suggest-widget .monaco-list .monaco-list-row .monaco-highlighted-label .highlight { color: ${i}; }`);\n                    const n = e.getColor(ht);\n                    i && t.addRule(`.monaco-editor .suggest-widget .monaco-list .monaco-list-row.focused .monaco-highlighted-label .highlight { color: ${n}; }`);\n                    const o = e.getColor(rt);\n                    o && t.addRule(`.monaco-editor .suggest-widget, .monaco-editor .suggest-details { color: ${o}; }`);\n                    const s = e.getColor(at);\n                    s && t.addRule(`.monaco-editor .suggest-widget .monaco-list .monaco-list-row.focused { color: ${s}; }`);\n                    const r = e.getColor(lt);\n                    r && t.addRule(`.monaco-editor .suggest-widget .monaco-list .monaco-list-row.focused .codicon { color: ${r}; }`);\n                    const a = e.getColor(ye.ur);\n                    a && t.addRule(`.monaco-editor .suggest-details a { color: ${a}; }`);\n                    const l = e.getColor(ye.sg);\n                    l && t.addRule(`.monaco-editor .suggest-details a:hover { color: ${l}; }`);\n                    const c = e.getColor(ye.Sw);\n                    c && t.addRule(`.monaco-editor .suggest-details code { background-color: ${c}; }`)\n                }));\n                var ft = function(e, t, i, n) {\n                        var o, s = arguments.length,\n                            r = s < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n                        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) r = Reflect.decorate(e, t, i, n);\n                        else\n                            for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (r = (s < 3 ? o(r) : s > 3 ? o(t, i, r) : o(t, i)) || r);\n                        return s > 3 && r && Object.defineProperty(t, i, r), r\n                    },\n                    mt = function(e, t) {\n                        return function(i, n) {\n                            t(i, n, e)\n                        }\n                    };\n                class vt {\n                    constructor(e, t) {\n                        this._model = e, this._position = t;\n                        if (e.getLineMaxColumn(t.lineNumber) !== t.column) {\n                            const i = e.getOffsetAt(t),\n                                n = e.getPositionAt(i + 1);\n                            this._marker = e.deltaDecorations([], [{\n                                range: _.e.fromPositions(t, n),\n                                options: {\n                                    description: \"suggest-line-suffix\",\n                                    stickiness: 1\n                                }\n                            }])\n                        }\n                    }\n                    dispose() {\n                        this._marker && !this._model.isDisposed() && this._model.deltaDecorations(this._marker, [])\n                    }\n                    delta(e) {\n                        if (this._model.isDisposed() || this._position.lineNumber !== e.lineNumber) return 0;\n                        if (this._marker) {\n                            const t = this._model.getDecorationRange(this._marker[0]);\n                            return this._model.getOffsetAt(t.getStartPosition()) - this._model.getOffsetAt(e)\n                        }\n                        return this._model.getLineMaxColumn(e.lineNumber) - e.column\n                    }\n                }\n                let _t = class e {\n                    constructor(e, t, i, n, o, r) {\n                        this._memoryService = t, this._commandService = i, this._contextKeyService = n, this._instantiationService = o, this._logService = r, this._lineSuffix = new d.XK, this._toDispose = new d.SL, this._selectors = new bt((e => e.priority)), this.editor = e, this.model = o.createInstance(ce, this.editor);\n                        const a = j._y.InsertMode.bindTo(n);\n                        a.set(e.getOption(105).insertMode), this.model.onDidTrigger((() => a.set(e.getOption(105).insertMode))), this.widget = this._toDispose.add(new s.Ue((() => {\n                            const e = this._instantiationService.createInstance(gt, this.editor);\n                            this._toDispose.add(e), this._toDispose.add(e.onDidSelect((e => this._insertSuggestion(e, 0)), this));\n                            const t = new Z(this.editor, e, (e => this._insertSuggestion(e, 2)));\n                            this._toDispose.add(t), this._toDispose.add(this.model.onDidSuggest((e => {\n                                0 === e.completionModel.items.length && t.reset()\n                            })));\n                            const i = j._y.MakesTextEdit.bindTo(this._contextKeyService),\n                                n = j._y.HasInsertAndReplaceRange.bindTo(this._contextKeyService),\n                                o = j._y.CanResolve.bindTo(this._contextKeyService);\n                            return this._toDispose.add((0, d.OF)((() => {\n                                i.reset(), n.reset(), o.reset()\n                            }))), this._toDispose.add(e.onDidFocus((({\n                                item: e\n                            }) => {\n                                const t = this.editor.getPosition(),\n                                    s = e.editStart.column,\n                                    r = t.column;\n                                let a = !0;\n                                if (!(\"smart\" !== this.editor.getOption(1) || 2 !== this.model.state || e.completion.additionalTextEdits || 4 & e.completion.insertTextRules || r - s !== e.completion.insertText.length)) {\n                                    a = this.editor.getModel().getValueInRange({\n                                        startLineNumber: t.lineNumber,\n                                        startColumn: s,\n                                        endLineNumber: t.lineNumber,\n                                        endColumn: r\n                                    }) !== e.completion.insertText\n                                }\n                                i.set(a), n.set(!v.L.equals(e.editInsertEnd, e.editReplaceEnd)), o.set(Boolean(e.provider.resolveCompletionItem) || Boolean(e.completion.documentation) || e.completion.detail !== e.completion.label)\n                            }))), this._toDispose.add(e.onDetailsKeyDown((e => {\n                                e.toKeybinding().equals(new c.QC(!0, !1, !1, !1, 33)) || h.dz && e.toKeybinding().equals(new c.QC(!1, !1, !1, !0, 33)) ? e.stopPropagation() : e.toKeybinding().isModifierKey() || this.editor.focus()\n                            }))), e\n                        }))), this._overtypingCapturer = this._toDispose.add(new s.Ue((() => this._toDispose.add(new de(this.editor, this.model))))), this._alternatives = this._toDispose.add(new s.Ue((() => this._toDispose.add(new K(this.editor, this._contextKeyService))))), this._toDispose.add(o.createInstance(F, e)), this._toDispose.add(this.model.onDidTrigger((e => {\n                            this.widget.value.showTriggered(e.auto, e.shy ? 250 : 50), this._lineSuffix.value = new vt(this.editor.getModel(), e.position)\n                        }))), this._toDispose.add(this.model.onDidSuggest((e => {\n                            if (!e.shy) {\n                                let t = -1;\n                                for (const i of this._selectors.itemsOrderedByPriorityDesc)\n                                    if (t = i.select(this.editor.getModel(), this.editor.getPosition(), e.completionModel.items), -1 !== t) break; - 1 === t && (t = this._memoryService.select(this.editor.getModel(), this.editor.getPosition(), e.completionModel.items)), this.widget.value.showSuggestions(e.completionModel, t, e.isFrozen, e.auto)\n                            }\n                        }))), this._toDispose.add(this.model.onDidCancel((e => {\n                            e.retrigger || this.widget.value.hideWidget()\n                        }))), this._toDispose.add(this.editor.onDidBlurEditorWidget((() => {\n                            this.model.cancel(), this.model.clear()\n                        })));\n                        let l = j._y.AcceptSuggestionsOnEnter.bindTo(n),\n                            u = () => {\n                                const e = this.editor.getOption(1);\n                                l.set(\"on\" === e || \"smart\" === e)\n                            };\n                        this._toDispose.add(this.editor.onDidChangeConfiguration((() => u()))), u()\n                    }\n                    static get(t) {\n                        return t.getContribution(e.ID)\n                    }\n                    dispose() {\n                        this._alternatives.dispose(), this._toDispose.dispose(), this.widget.dispose(), this.model.dispose(), this._lineSuffix.dispose()\n                    }\n                    _insertSuggestion(e, t) {\n                        if (!e || !e.item) return this._alternatives.value.reset(), this.model.cancel(), void this.model.clear();\n                        if (!this.editor.hasModel()) return;\n                        const i = this.editor.getModel(),\n                            n = i.getAlternativeVersionId(),\n                            {\n                                item: o\n                            } = e,\n                            s = [],\n                            l = new r.A;\n                        1 & t || this.editor.pushUndoStop();\n                        const c = this.getOverwriteInfo(o, Boolean(8 & t));\n                        if (this._memoryService.memorize(i, this.editor.getPosition(), o), Array.isArray(o.completion.additionalTextEdits)) {\n                            const e = p.ZF.capture(this.editor);\n                            this.editor.executeEdits(\"suggestController.additionalTextEdits.sync\", o.completion.additionalTextEdits.map((e => m.h.replace(_.e.lift(e.range), e.text)))), e.restoreRelativeVerticalPositionOfCursor(this.editor)\n                        } else if (!o.isResolved) {\n                            const e = new u.G(!0);\n                            let n;\n                            const r = i.onDidChangeContent((e => {\n                                if (e.isFlush) return l.cancel(), void r.dispose();\n                                for (let t of e.changes) {\n                                    const e = _.e.getEndPosition(t.range);\n                                    n && !v.L.isBefore(e, n) || (n = e)\n                                }\n                            }));\n                            let a = t;\n                            t |= 2;\n                            let c = !1,\n                                d = this.editor.onWillType((() => {\n                                    d.dispose(), c = !0, 2 & a || this.editor.pushUndoStop()\n                                }));\n                            s.push(o.resolve(l.token).then((() => {\n                                if (!o.completion.additionalTextEdits || l.token.isCancellationRequested) return !1;\n                                if (n && o.completion.additionalTextEdits.some((e => v.L.isBefore(n, _.e.getStartPosition(e.range))))) return !1;\n                                c && this.editor.pushUndoStop();\n                                const e = p.ZF.capture(this.editor);\n                                return this.editor.executeEdits(\"suggestController.additionalTextEdits.async\", o.completion.additionalTextEdits.map((e => m.h.replace(_.e.lift(e.range), e.text)))), e.restoreRelativeVerticalPositionOfCursor(this.editor), !c && 2 & a || this.editor.pushUndoStop(), !0\n                            })).then((t => {\n                                this._logService.trace(\"[suggest] async resolving of edits DONE (ms, applied?)\", e.elapsed(), t), r.dispose(), d.dispose()\n                            })))\n                        }\n                        let {\n                            insertText: d\n                        } = o.completion;\n                        4 & o.completion.insertTextRules || (d = y.Yj.escape(d)), w.SnippetController2.get(this.editor).insert(d, {\n                            overwriteBefore: c.overwriteBefore,\n                            overwriteAfter: c.overwriteAfter,\n                            undoStopBefore: !1,\n                            undoStopAfter: !1,\n                            adjustWhitespace: !(1 & o.completion.insertTextRules),\n                            clipboardText: e.model.clipboardText,\n                            overtypingCapturer: this._overtypingCapturer.value\n                        }), 2 & t || this.editor.pushUndoStop(), o.completion.command ? o.completion.command.id === wt.id ? this.model.trigger({\n                            auto: !0,\n                            shy: !1\n                        }, !0) : (s.push(this._commandService.executeCommand(o.completion.command.id, ...o.completion.command.arguments ? [...o.completion.command.arguments] : []).catch(a.dL)), this.model.cancel()) : this.model.cancel(), 4 & t && this._alternatives.value.set(e, (e => {\n                            for (l.cancel(); i.canUndo();) {\n                                n !== i.getAlternativeVersionId() && i.undo(), this._insertSuggestion(e, 3 | (8 & t ? 8 : 0));\n                                break\n                            }\n                        })), this._alertCompletionItem(o), Promise.all(s).finally((() => {\n                            this.model.clear(), l.dispose()\n                        }))\n                    }\n                    getOverwriteInfo(e, t) {\n                        (0, g.p_)(this.editor.hasModel());\n                        let i = \"replace\" === this.editor.getOption(105).insertMode;\n                        t && (i = !i);\n                        const n = e.position.column - e.editStart.column,\n                            o = (i ? e.editReplaceEnd.column : e.editInsertEnd.column) - e.position.column;\n                        return {\n                            overwriteBefore: n + (this.editor.getPosition().column - e.position.column),\n                            overwriteAfter: o + (this._lineSuffix.value ? this._lineSuffix.value.delta(this.editor.getPosition()) : 0)\n                        }\n                    }\n                    _alertCompletionItem(e) {\n                        if ((0, o.Of)(e.completion.additionalTextEdits)) {\n                            let t = B.N(\"aria.alert.snippet\", \"Accepting '{0}' made {1} additional edits\", e.textLabel, e.completion.additionalTextEdits.length);\n                            (0, n.Z9)(t)\n                        }\n                    }\n                    triggerSuggest(e) {\n                        this.editor.hasModel() && (this.model.trigger({\n                            auto: !1,\n                            shy: !1\n                        }, !1, e), this.editor.revealPosition(this.editor.getPosition(), 0), this.editor.focus())\n                    }\n                    triggerSuggestAndAcceptBest(e) {\n                        if (!this.editor.hasModel()) return;\n                        const t = this.editor.getPosition(),\n                            i = () => {\n                                t.equals(this.editor.getPosition()) && this._commandService.executeCommand(e.fallback)\n                            },\n                            n = e => {\n                                if (4 & e.completion.insertTextRules || e.completion.additionalTextEdits) return !0;\n                                const t = this.editor.getPosition(),\n                                    i = e.editStart.column,\n                                    n = t.column;\n                                if (n - i !== e.completion.insertText.length) return !0;\n                                return this.editor.getModel().getValueInRange({\n                                    startLineNumber: t.lineNumber,\n                                    startColumn: i,\n                                    endLineNumber: t.lineNumber,\n                                    endColumn: n\n                                }) !== e.completion.insertText\n                            };\n                        l.ju.once(this.model.onDidTrigger)((e => {\n                            let t = [];\n                            l.ju.any(this.model.onDidTrigger, this.model.onDidCancel)((() => {\n                                (0, d.B9)(t), i()\n                            }), void 0, t), this.model.onDidSuggest((({\n                                completionModel: e\n                            }) => {\n                                if ((0, d.B9)(t), 0 === e.items.length) return void i();\n                                const o = this._memoryService.select(this.editor.getModel(), this.editor.getPosition(), e.items),\n                                    s = e.items[o];\n                                n(s) ? (this.editor.pushUndoStop(), this._insertSuggestion({\n                                    index: o,\n                                    item: s,\n                                    model: e\n                                }, 7)) : i()\n                            }), void 0, t)\n                        })), this.model.trigger({\n                            auto: !1,\n                            shy: !0\n                        }), this.editor.revealPosition(t, 0), this.editor.focus()\n                    }\n                    acceptSelectedSuggestion(e, t) {\n                        const i = this.widget.value.getFocusedItem();\n                        let n = 0;\n                        e && (n |= 4), t && (n |= 8), this._insertSuggestion(i, n)\n                    }\n                    acceptNextSuggestion() {\n                        this._alternatives.value.next()\n                    }\n                    acceptPrevSuggestion() {\n                        this._alternatives.value.prev()\n                    }\n                    cancelSuggestWidget() {\n                        this.model.cancel(), this.model.clear(), this.widget.value.hideWidget()\n                    }\n                    selectNextSuggestion() {\n                        this.widget.value.selectNext()\n                    }\n                    selectNextPageSuggestion() {\n                        this.widget.value.selectNextPage()\n                    }\n                    selectLastSuggestion() {\n                        this.widget.value.selectLast()\n                    }\n                    selectPrevSuggestion() {\n                        this.widget.value.selectPrevious()\n                    }\n                    selectPrevPageSuggestion() {\n                        this.widget.value.selectPreviousPage()\n                    }\n                    selectFirstSuggestion() {\n                        this.widget.value.selectFirst()\n                    }\n                    toggleSuggestionDetails() {\n                        this.widget.value.toggleDetails()\n                    }\n                    toggleExplainMode() {\n                        this.widget.value.toggleExplainMode()\n                    }\n                    toggleSuggestionFocus() {\n                        this.widget.value.toggleDetailsFocus()\n                    }\n                    resetWidgetSize() {\n                        this.widget.value.resetPersistedSize()\n                    }\n                    forceRenderingAbove() {\n                        this.widget.value.forceRenderingAbove()\n                    }\n                    stopForceRenderingAbove() {\n                        this.widget.isInitialized && this.widget.value.stopForceRenderingAbove()\n                    }\n                    registerSelector(e) {\n                        return this._selectors.register(e)\n                    }\n                };\n                _t.ID = \"editor.contrib.suggestController\", _t = ft([mt(1, A), mt(2, W.H), mt(3, O.i6), mt(4, L.TG), mt(5, z.VZ)], _t);\n                class bt {\n                    constructor(e) {\n                        this.prioritySelector = e, this._items = new Array\n                    }\n                    register(e) {\n                        if (-1 !== this._items.indexOf(e)) throw new Error(\"Value is already registered\");\n                        return this._items.push(e), this._items.sort(((e, t) => this.prioritySelector(t) - this.prioritySelector(e))), {\n                            dispose: () => {\n                                const t = this._items.indexOf(e);\n                                t >= 0 && this._items.splice(t, 1)\n                            }\n                        }\n                    }\n                    get itemsOrderedByPriorityDesc() {\n                        return this._items\n                    }\n                }\n                class wt extends f.R6 {\n                    constructor() {\n                        super({\n                            id: wt.id,\n                            label: B.N(\"suggest.trigger.label\", \"Trigger Suggest\"),\n                            alias: \"Trigger Suggest\",\n                            precondition: O.Ao.and(b.u.writable, b.u.hasCompletionItemProvider),\n                            kbOpts: {\n                                kbExpr: b.u.textInputFocus,\n                                primary: 2058,\n                                secondary: [2087],\n                                mac: {\n                                    primary: 266,\n                                    secondary: [521, 2087]\n                                },\n                                weight: 100\n                            }\n                        })\n                    }\n                    run(e, t) {\n                        const i = _t.get(t);\n                        i && i.triggerSuggest()\n                    }\n                }\n                wt.id = \"editor.action.triggerSuggest\", (0, f._K)(_t.ID, _t), (0, f.Qr)(wt);\n                const yt = 190,\n                    Ct = f._l.bindToContribution(_t.get);\n                (0, f.fK)(new Ct({\n                    id: \"acceptSelectedSuggestion\",\n                    precondition: j._y.Visible,\n                    handler(e) {\n                        e.acceptSelectedSuggestion(!0, !1)\n                    }\n                })), H.W.registerKeybindingRule({\n                    id: \"acceptSelectedSuggestion\",\n                    when: O.Ao.and(j._y.Visible, b.u.textInputFocus),\n                    primary: 2,\n                    weight: yt\n                }), H.W.registerKeybindingRule({\n                    id: \"acceptSelectedSuggestion\",\n                    when: O.Ao.and(j._y.Visible, b.u.textInputFocus, j._y.AcceptSuggestionsOnEnter, j._y.MakesTextEdit),\n                    primary: 3,\n                    weight: yt\n                }), V.BH.appendMenuItem(j.GI, {\n                    command: {\n                        id: \"acceptSelectedSuggestion\",\n                        title: B.N(\"accept.insert\", \"Insert\")\n                    },\n                    group: \"left\",\n                    order: 1,\n                    when: j._y.HasInsertAndReplaceRange.toNegated()\n                }), V.BH.appendMenuItem(j.GI, {\n                    command: {\n                        id: \"acceptSelectedSuggestion\",\n                        title: B.N(\"accept.insert\", \"Insert\")\n                    },\n                    group: \"left\",\n                    order: 1,\n                    when: O.Ao.and(j._y.HasInsertAndReplaceRange, j._y.InsertMode.isEqualTo(\"insert\"))\n                }), V.BH.appendMenuItem(j.GI, {\n                    command: {\n                        id: \"acceptSelectedSuggestion\",\n                        title: B.N(\"accept.replace\", \"替换\")\n                    },\n                    group: \"left\",\n                    order: 1,\n                    when: O.Ao.and(j._y.HasInsertAndReplaceRange, j._y.InsertMode.isEqualTo(\"replace\"))\n                }), (0, f.fK)(new Ct({\n                    id: \"acceptAlternativeSelectedSuggestion\",\n                    precondition: O.Ao.and(j._y.Visible, b.u.textInputFocus),\n                    kbOpts: {\n                        weight: yt,\n                        kbExpr: b.u.textInputFocus,\n                        primary: 1027,\n                        secondary: [1026]\n                    },\n                    handler(e) {\n                        e.acceptSelectedSuggestion(!1, !0)\n                    },\n                    menuOpts: [{\n                        menuId: j.GI,\n                        group: \"left\",\n                        order: 2,\n                        when: O.Ao.and(j._y.HasInsertAndReplaceRange, j._y.InsertMode.isEqualTo(\"insert\")),\n                        title: B.N(\"accept.replace\", \"替换\")\n                    }, {\n                        menuId: j.GI,\n                        group: \"left\",\n                        order: 2,\n                        when: O.Ao.and(j._y.HasInsertAndReplaceRange, j._y.InsertMode.isEqualTo(\"replace\")),\n                        title: B.N(\"accept.insert\", \"Insert\")\n                    }]\n                })), W.P.registerCommandAlias(\"acceptSelectedSuggestionOnEnter\", \"acceptSelectedSuggestion\"), (0, f.fK)(new Ct({\n                    id: \"hideSuggestWidget\",\n                    precondition: j._y.Visible,\n                    handler: e => e.cancelSuggestWidget(),\n                    kbOpts: {\n                        weight: yt,\n                        kbExpr: b.u.textInputFocus,\n                        primary: 9,\n                        secondary: [1033]\n                    }\n                })), (0, f.fK)(new Ct({\n                    id: \"selectNextSuggestion\",\n                    precondition: O.Ao.and(j._y.Visible, j._y.MultipleSuggestions),\n                    handler: e => e.selectNextSuggestion(),\n                    kbOpts: {\n                        weight: yt,\n                        kbExpr: b.u.textInputFocus,\n                        primary: 18,\n                        secondary: [2066],\n                        mac: {\n                            primary: 18,\n                            secondary: [2066, 300]\n                        }\n                    }\n                })), (0, f.fK)(new Ct({\n                    id: \"selectNextPageSuggestion\",\n                    precondition: O.Ao.and(j._y.Visible, j._y.MultipleSuggestions),\n                    handler: e => e.selectNextPageSuggestion(),\n                    kbOpts: {\n                        weight: yt,\n                        kbExpr: b.u.textInputFocus,\n                        primary: 12,\n                        secondary: [2060]\n                    }\n                })), (0, f.fK)(new Ct({\n                    id: \"selectLastSuggestion\",\n                    precondition: O.Ao.and(j._y.Visible, j._y.MultipleSuggestions),\n                    handler: e => e.selectLastSuggestion()\n                })), (0, f.fK)(new Ct({\n                    id: \"selectPrevSuggestion\",\n                    precondition: O.Ao.and(j._y.Visible, j._y.MultipleSuggestions),\n                    handler: e => e.selectPrevSuggestion(),\n                    kbOpts: {\n                        weight: yt,\n                        kbExpr: b.u.textInputFocus,\n                        primary: 16,\n                        secondary: [2064],\n                        mac: {\n                            primary: 16,\n                            secondary: [2064, 302]\n                        }\n                    }\n                })), (0, f.fK)(new Ct({\n                    id: \"selectPrevPageSuggestion\",\n                    precondition: O.Ao.and(j._y.Visible, j._y.MultipleSuggestions),\n                    handler: e => e.selectPrevPageSuggestion(),\n                    kbOpts: {\n                        weight: yt,\n                        kbExpr: b.u.textInputFocus,\n                        primary: 11,\n                        secondary: [2059]\n                    }\n                })), (0, f.fK)(new Ct({\n                    id: \"selectFirstSuggestion\",\n                    precondition: O.Ao.and(j._y.Visible, j._y.MultipleSuggestions),\n                    handler: e => e.selectFirstSuggestion()\n                })), (0, f.fK)(new Ct({\n                    id: \"toggleSuggestionDetails\",\n                    precondition: j._y.Visible,\n                    handler: e => e.toggleSuggestionDetails(),\n                    kbOpts: {\n                        weight: yt,\n                        kbExpr: b.u.textInputFocus,\n                        primary: 2058,\n                        secondary: [2087],\n                        mac: {\n                            primary: 266,\n                            secondary: [2087]\n                        }\n                    },\n                    menuOpts: [{\n                        menuId: j.GI,\n                        group: \"right\",\n                        order: 1,\n                        when: O.Ao.and(j._y.DetailsVisible, j._y.CanResolve),\n                        title: B.N(\"detail.more\", \"show less\")\n                    }, {\n                        menuId: j.GI,\n                        group: \"right\",\n                        order: 1,\n                        when: O.Ao.and(j._y.DetailsVisible.toNegated(), j._y.CanResolve),\n                        title: B.N(\"detail.less\", \"show more\")\n                    }]\n                })), (0, f.fK)(new Ct({\n                    id: \"toggleExplainMode\",\n                    precondition: j._y.Visible,\n                    handler: e => e.toggleExplainMode(),\n                    kbOpts: {\n                        weight: 100,\n                        primary: 2133\n                    }\n                })), (0, f.fK)(new Ct({\n                    id: \"toggleSuggestionFocus\",\n                    precondition: j._y.Visible,\n                    handler: e => e.toggleSuggestionFocus(),\n                    kbOpts: {\n                        weight: yt,\n                        kbExpr: b.u.textInputFocus,\n                        primary: 2570,\n                        mac: {\n                            primary: 778\n                        }\n                    }\n                })), (0, f.fK)(new Ct({\n                    id: \"insertBestCompletion\",\n                    precondition: O.Ao.and(b.u.textInputFocus, O.Ao.equals(\"config.editor.tabCompletion\", \"on\"), F.AtEnd, j._y.Visible.toNegated(), K.OtherSuggestions.toNegated(), w.SnippetController2.InSnippetMode.toNegated()),\n                    handler: (e, t) => {\n                        e.triggerSuggestAndAcceptBest((0, g.Kn)(t) ? Object.assign({\n                            fallback: \"tab\"\n                        }, t) : {\n                            fallback: \"tab\"\n                        })\n                    },\n                    kbOpts: {\n                        weight: yt,\n                        primary: 2\n                    }\n                })), (0, f.fK)(new Ct({\n                    id: \"insertNextSuggestion\",\n                    precondition: O.Ao.and(b.u.textInputFocus, O.Ao.equals(\"config.editor.tabCompletion\", \"on\"), K.OtherSuggestions, j._y.Visible.toNegated(), w.SnippetController2.InSnippetMode.toNegated()),\n                    handler: e => e.acceptNextSuggestion(),\n                    kbOpts: {\n                        weight: yt,\n                        kbExpr: b.u.textInputFocus,\n                        primary: 2\n                    }\n                })), (0, f.fK)(new Ct({\n                    id: \"insertPrevSuggestion\",\n                    precondition: O.Ao.and(b.u.textInputFocus, O.Ao.equals(\"config.editor.tabCompletion\", \"on\"), K.OtherSuggestions, j._y.Visible.toNegated(), w.SnippetController2.InSnippetMode.toNegated()),\n                    handler: e => e.acceptPrevSuggestion(),\n                    kbOpts: {\n                        weight: yt,\n                        kbExpr: b.u.textInputFocus,\n                        primary: 1026\n                    }\n                })), (0, f.Qr)(class extends f.R6 {\n                    constructor() {\n                        super({\n                            id: \"editor.action.resetSuggestSize\",\n                            label: B.N(\"suggest.reset.label\", \"Reset Suggest Widget Size\"),\n                            alias: \"Reset Suggest Widget Size\",\n                            precondition: void 0\n                        })\n                    }\n                    run(e, t) {\n                        _t.get(t).resetWidgetSize()\n                    }\n                })\n            },\n            24954: (e, t, i) => {\n                \"use strict\";\n                var n = i(73046),\n                    o = i(63580),\n                    s = i(73910),\n                    r = i(97781);\n                const a = (0, s.P6)(\"symbolIcon.arrayForeground\", {\n                        dark: s.dR,\n                        light: s.dR,\n                        hc: s.dR\n                    }, (0, o.N)(\"symbolIcon.arrayForeground\", \"The foreground color for array symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\")),\n                    l = (0, s.P6)(\"symbolIcon.booleanForeground\", {\n                        dark: s.dR,\n                        light: s.dR,\n                        hc: s.dR\n                    }, (0, o.N)(\"symbolIcon.booleanForeground\", \"The foreground color for boolean symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\")),\n                    c = (0, s.P6)(\"symbolIcon.classForeground\", {\n                        dark: \"#EE9D28\",\n                        light: \"#D67E00\",\n                        hc: \"#EE9D28\"\n                    }, (0, o.N)(\"symbolIcon.classForeground\", \"The foreground color for class symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\")),\n                    d = (0, s.P6)(\"symbolIcon.colorForeground\", {\n                        dark: s.dR,\n                        light: s.dR,\n                        hc: s.dR\n                    }, (0, o.N)(\"symbolIcon.colorForeground\", \"The foreground color for color symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\")),\n                    h = (0, s.P6)(\"symbolIcon.constantForeground\", {\n                        dark: s.dR,\n                        light: s.dR,\n                        hc: s.dR\n                    }, (0, o.N)(\"symbolIcon.constantForeground\", \"The foreground color for constant symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\")),\n                    u = (0, s.P6)(\"symbolIcon.constructorForeground\", {\n                        dark: \"#B180D7\",\n                        light: \"#652D90\",\n                        hc: \"#B180D7\"\n                    }, (0, o.N)(\"symbolIcon.constructorForeground\", \"The foreground color for constructor symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\")),\n                    g = (0, s.P6)(\"symbolIcon.enumeratorForeground\", {\n                        dark: \"#EE9D28\",\n                        light: \"#D67E00\",\n                        hc: \"#EE9D28\"\n                    }, (0, o.N)(\"symbolIcon.enumeratorForeground\", \"The foreground color for enumerator symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\")),\n                    p = (0, s.P6)(\"symbolIcon.enumeratorMemberForeground\", {\n                        dark: \"#75BEFF\",\n                        light: \"#007ACC\",\n                        hc: \"#75BEFF\"\n                    }, (0, o.N)(\"symbolIcon.enumeratorMemberForeground\", \"The foreground color for enumerator member symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\")),\n                    f = (0, s.P6)(\"symbolIcon.eventForeground\", {\n                        dark: \"#EE9D28\",\n                        light: \"#D67E00\",\n                        hc: \"#EE9D28\"\n                    }, (0, o.N)(\"symbolIcon.eventForeground\", \"The foreground color for event symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\")),\n                    m = (0, s.P6)(\"symbolIcon.fieldForeground\", {\n                        dark: \"#75BEFF\",\n                        light: \"#007ACC\",\n                        hc: \"#75BEFF\"\n                    }, (0, o.N)(\"symbolIcon.fieldForeground\", \"The foreground color for field symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\")),\n                    v = (0, s.P6)(\"symbolIcon.fileForeground\", {\n                        dark: s.dR,\n                        light: s.dR,\n                        hc: s.dR\n                    }, (0, o.N)(\"symbolIcon.fileForeground\", \"The foreground color for file symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\")),\n                    _ = (0, s.P6)(\"symbolIcon.folderForeground\", {\n                        dark: s.dR,\n                        light: s.dR,\n                        hc: s.dR\n                    }, (0, o.N)(\"symbolIcon.folderForeground\", \"The foreground color for folder symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\")),\n                    b = (0, s.P6)(\"symbolIcon.functionForeground\", {\n                        dark: \"#B180D7\",\n                        light: \"#652D90\",\n                        hc: \"#B180D7\"\n                    }, (0, o.N)(\"symbolIcon.functionForeground\", \"The foreground color for function symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\")),\n                    w = (0, s.P6)(\"symbolIcon.interfaceForeground\", {\n                        dark: \"#75BEFF\",\n                        light: \"#007ACC\",\n                        hc: \"#75BEFF\"\n                    }, (0, o.N)(\"symbolIcon.interfaceForeground\", \"The foreground color for interface symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\")),\n                    y = (0, s.P6)(\"symbolIcon.keyForeground\", {\n                        dark: s.dR,\n                        light: s.dR,\n                        hc: s.dR\n                    }, (0, o.N)(\"symbolIcon.keyForeground\", \"The foreground color for key symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\")),\n                    C = (0, s.P6)(\"symbolIcon.keywordForeground\", {\n                        dark: s.dR,\n                        light: s.dR,\n                        hc: s.dR\n                    }, (0, o.N)(\"symbolIcon.keywordForeground\", \"The foreground color for keyword symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\")),\n                    x = (0, s.P6)(\"symbolIcon.methodForeground\", {\n                        dark: \"#B180D7\",\n                        light: \"#652D90\",\n                        hc: \"#B180D7\"\n                    }, (0, o.N)(\"symbolIcon.methodForeground\", \"The foreground color for method symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\")),\n                    S = (0, s.P6)(\"symbolIcon.moduleForeground\", {\n                        dark: s.dR,\n                        light: s.dR,\n                        hc: s.dR\n                    }, (0, o.N)(\"symbolIcon.moduleForeground\", \"The foreground color for module symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\")),\n                    k = (0, s.P6)(\"symbolIcon.namespaceForeground\", {\n                        dark: s.dR,\n                        light: s.dR,\n                        hc: s.dR\n                    }, (0, o.N)(\"symbolIcon.namespaceForeground\", \"The foreground color for namespace symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\")),\n                    L = (0, s.P6)(\"symbolIcon.nullForeground\", {\n                        dark: s.dR,\n                        light: s.dR,\n                        hc: s.dR\n                    }, (0, o.N)(\"symbolIcon.nullForeground\", \"The foreground color for null symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\")),\n                    N = (0, s.P6)(\"symbolIcon.numberForeground\", {\n                        dark: s.dR,\n                        light: s.dR,\n                        hc: s.dR\n                    }, (0, o.N)(\"symbolIcon.numberForeground\", \"The foreground color for number symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\")),\n                    D = (0, s.P6)(\"symbolIcon.objectForeground\", {\n                        dark: s.dR,\n                        light: s.dR,\n                        hc: s.dR\n                    }, (0, o.N)(\"symbolIcon.objectForeground\", \"The foreground color for object symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\")),\n                    I = (0, s.P6)(\"symbolIcon.operatorForeground\", {\n                        dark: s.dR,\n                        light: s.dR,\n                        hc: s.dR\n                    }, (0, o.N)(\"symbolIcon.operatorForeground\", \"The foreground color for operator symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\")),\n                    E = (0, s.P6)(\"symbolIcon.packageForeground\", {\n                        dark: s.dR,\n                        light: s.dR,\n                        hc: s.dR\n                    }, (0, o.N)(\"symbolIcon.packageForeground\", \"The foreground color for package symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\")),\n                    T = (0, s.P6)(\"symbolIcon.propertyForeground\", {\n                        dark: s.dR,\n                        light: s.dR,\n                        hc: s.dR\n                    }, (0, o.N)(\"symbolIcon.propertyForeground\", \"The foreground color for property symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\")),\n                    M = (0, s.P6)(\"symbolIcon.referenceForeground\", {\n                        dark: s.dR,\n                        light: s.dR,\n                        hc: s.dR\n                    }, (0, o.N)(\"symbolIcon.referenceForeground\", \"The foreground color for reference symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\")),\n                    A = (0, s.P6)(\"symbolIcon.snippetForeground\", {\n                        dark: s.dR,\n                        light: s.dR,\n                        hc: s.dR\n                    }, (0, o.N)(\"symbolIcon.snippetForeground\", \"The foreground color for snippet symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\")),\n                    O = (0, s.P6)(\"symbolIcon.stringForeground\", {\n                        dark: s.dR,\n                        light: s.dR,\n                        hc: s.dR\n                    }, (0, o.N)(\"symbolIcon.stringForeground\", \"The foreground color for string symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\")),\n                    P = (0, s.P6)(\"symbolIcon.structForeground\", {\n                        dark: s.dR,\n                        light: s.dR,\n                        hc: s.dR\n                    }, (0, o.N)(\"symbolIcon.structForeground\", \"The foreground color for struct symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\")),\n                    R = (0, s.P6)(\"symbolIcon.textForeground\", {\n                        dark: s.dR,\n                        light: s.dR,\n                        hc: s.dR\n                    }, (0, o.N)(\"symbolIcon.textForeground\", \"The foreground color for text symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\")),\n                    F = (0, s.P6)(\"symbolIcon.typeParameterForeground\", {\n                        dark: s.dR,\n                        light: s.dR,\n                        hc: s.dR\n                    }, (0, o.N)(\"symbolIcon.typeParameterForeground\", \"The foreground color for type parameter symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\")),\n                    B = (0, s.P6)(\"symbolIcon.unitForeground\", {\n                        dark: s.dR,\n                        light: s.dR,\n                        hc: s.dR\n                    }, (0, o.N)(\"symbolIcon.unitForeground\", \"The foreground color for unit symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\")),\n                    V = (0, s.P6)(\"symbolIcon.variableForeground\", {\n                        dark: \"#75BEFF\",\n                        light: \"#007ACC\",\n                        hc: \"#75BEFF\"\n                    }, (0, o.N)(\"symbolIcon.variableForeground\", \"The foreground color for variable symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\"));\n                (0, r.Ic)(((e, t) => {\n                    const i = e.getColor(a);\n                    i && t.addRule(`${n.lA.symbolArray.cssSelector} { color: ${i}; }`);\n                    const o = e.getColor(l);\n                    o && t.addRule(`${n.lA.symbolBoolean.cssSelector} { color: ${o}; }`);\n                    const s = e.getColor(c);\n                    s && t.addRule(`${n.lA.symbolClass.cssSelector} { color: ${s}; }`);\n                    const r = e.getColor(x);\n                    r && t.addRule(`${n.lA.symbolMethod.cssSelector} { color: ${r}; }`);\n                    const W = e.getColor(d);\n                    W && t.addRule(`${n.lA.symbolColor.cssSelector} { color: ${W}; }`);\n                    const H = e.getColor(h);\n                    H && t.addRule(`${n.lA.symbolConstant.cssSelector} { color: ${H}; }`);\n                    const z = e.getColor(u);\n                    z && t.addRule(`${n.lA.symbolConstructor.cssSelector} { color: ${z}; }`);\n                    const j = e.getColor(g);\n                    j && t.addRule(`\\n\\t\\t\\t${n.lA.symbolValue.cssSelector},${n.lA.symbolEnum.cssSelector} { color: ${j}; }`);\n                    const U = e.getColor(p);\n                    U && t.addRule(`${n.lA.symbolEnumMember.cssSelector} { color: ${U}; }`);\n                    const $ = e.getColor(f);\n                    $ && t.addRule(`${n.lA.symbolEvent.cssSelector} { color: ${$}; }`);\n                    const K = e.getColor(m);\n                    K && t.addRule(`${n.lA.symbolField.cssSelector} { color: ${K}; }`);\n                    const q = e.getColor(v);\n                    q && t.addRule(`${n.lA.symbolFile.cssSelector} { color: ${q}; }`);\n                    const Z = e.getColor(_);\n                    Z && t.addRule(`${n.lA.symbolFolder.cssSelector} { color: ${Z}; }`);\n                    const G = e.getColor(b);\n                    G && t.addRule(`${n.lA.symbolFunction.cssSelector} { color: ${G}; }`);\n                    const Y = e.getColor(w);\n                    Y && t.addRule(`${n.lA.symbolInterface.cssSelector} { color: ${Y}; }`);\n                    const Q = e.getColor(y);\n                    Q && t.addRule(`${n.lA.symbolKey.cssSelector} { color: ${Q}; }`);\n                    const X = e.getColor(C);\n                    X && t.addRule(`${n.lA.symbolKeyword.cssSelector} { color: ${X}; }`);\n                    const J = e.getColor(S);\n                    J && t.addRule(`${n.lA.symbolModule.cssSelector} { color: ${J}; }`);\n                    const ee = e.getColor(k);\n                    ee && t.addRule(`${n.lA.symbolNamespace.cssSelector} { color: ${ee}; }`);\n                    const te = e.getColor(L);\n                    te && t.addRule(`${n.lA.symbolNull.cssSelector} { color: ${te}; }`);\n                    const ie = e.getColor(N);\n                    ie && t.addRule(`${n.lA.symbolNumber.cssSelector} { color: ${ie}; }`);\n                    const ne = e.getColor(D);\n                    ne && t.addRule(`${n.lA.symbolObject.cssSelector} { color: ${ne}; }`);\n                    const oe = e.getColor(I);\n                    oe && t.addRule(`${n.lA.symbolOperator.cssSelector} { color: ${oe}; }`);\n                    const se = e.getColor(E);\n                    se && t.addRule(`${n.lA.symbolPackage.cssSelector} { color: ${se}; }`);\n                    const re = e.getColor(T);\n                    re && t.addRule(`${n.lA.symbolProperty.cssSelector} { color: ${re}; }`);\n                    const ae = e.getColor(M);\n                    ae && t.addRule(`${n.lA.symbolReference.cssSelector} { color: ${ae}; }`);\n                    const le = e.getColor(A);\n                    le && t.addRule(`${n.lA.symbolSnippet.cssSelector} { color: ${le}; }`);\n                    const ce = e.getColor(O);\n                    ce && t.addRule(`${n.lA.symbolString.cssSelector} { color: ${ce}; }`);\n                    const de = e.getColor(P);\n                    de && t.addRule(`${n.lA.symbolStruct.cssSelector} { color: ${de}; }`);\n                    const he = e.getColor(R);\n                    he && t.addRule(`${n.lA.symbolText.cssSelector} { color: ${he}; }`);\n                    const ue = e.getColor(F);\n                    ue && t.addRule(`${n.lA.symbolTypeParameter.cssSelector} { color: ${ue}; }`);\n                    const ge = e.getColor(B);\n                    ge && t.addRule(`${n.lA.symbolUnit.cssSelector} { color: ${ge}; }`);\n                    const pe = e.getColor(V);\n                    pe && t.addRule(`${n.lA.symbolVariable.cssSelector} { color: ${pe}; }`)\n                }))\n            },\n            19720: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    ToggleTabFocusModeAction: () => a\n                });\n                var n = i(85152),\n                    o = i(16830),\n                    s = i(56345),\n                    r = i(63580);\n                class a extends o.R6 {\n                    constructor() {\n                        super({\n                            id: a.ID,\n                            label: r.N({\n                                key: \"toggle.tabMovesFocus\",\n                                comment: [\"Turn on/off use of tab key for moving focus around VS Code\"]\n                            }, \"Toggle Tab Key Moves Focus\"),\n                            alias: \"Toggle Tab Key Moves Focus\",\n                            precondition: void 0,\n                            kbOpts: {\n                                kbExpr: null,\n                                primary: 2091,\n                                mac: {\n                                    primary: 1323\n                                },\n                                weight: 100\n                            }\n                        })\n                    }\n                    run(e, t) {\n                        const i = !s.nG.getTabFocusMode();\n                        s.nG.setTabFocusMode(i), i ? (0, n.Z9)(r.N(\"toggle.tabMovesFocus.on\", \"Pressing Tab will now move focus to the next focusable element\")) : (0, n.Z9)(r.N(\"toggle.tabMovesFocus.off\", \"Pressing Tab will now insert the tab character\"))\n                    }\n                }\n                a.ID = \"editor.action.toggleTabFocusMode\", (0, o.Qr)(a)\n            },\n            31725: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    UnusualLineTerminatorsDetector: () => g\n                });\n                var n = i(5976),\n                    o = i(95935),\n                    s = i(16830),\n                    r = i(11640),\n                    a = i(63580),\n                    l = i(28820),\n                    c = function(e, t, i, n) {\n                        var o, s = arguments.length,\n                            r = s < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n                        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) r = Reflect.decorate(e, t, i, n);\n                        else\n                            for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (r = (s < 3 ? o(r) : s > 3 ? o(t, i, r) : o(t, i)) || r);\n                        return s > 3 && r && Object.defineProperty(t, i, r), r\n                    },\n                    d = function(e, t) {\n                        return function(i, n) {\n                            t(i, n, e)\n                        }\n                    },\n                    h = function(e, t, i, n) {\n                        return new(i || (i = Promise))((function(o, s) {\n                            function r(e) {\n                                try {\n                                    l(n.next(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function a(e) {\n                                try {\n                                    l(n.throw(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function l(e) {\n                                var t;\n                                e.done ? o(e.value) : (t = e.value, t instanceof i ? t : new i((function(e) {\n                                    e(t)\n                                }))).then(r, a)\n                            }\n                            l((n = n.apply(e, t || [])).next())\n                        }))\n                    };\n                const u = \"ignoreUnusualLineTerminators\";\n                let g = class extends n.JT {\n                    constructor(e, t, i) {\n                        super(), this._editor = e, this._dialogService = t, this._codeEditorService = i, this._config = this._editor.getOption(112), this._register(this._editor.onDidChangeConfiguration((e => {\n                            e.hasChanged(112) && (this._config = this._editor.getOption(112), this._checkForUnusualLineTerminators())\n                        }))), this._register(this._editor.onDidChangeModel((() => {\n                            this._checkForUnusualLineTerminators()\n                        }))), this._register(this._editor.onDidChangeModelContent((e => {\n                            e.isUndoing || this._checkForUnusualLineTerminators()\n                        })))\n                    }\n                    _checkForUnusualLineTerminators() {\n                        return h(this, void 0, void 0, (function*() {\n                            if (\"off\" === this._config) return;\n                            if (!this._editor.hasModel()) return;\n                            const e = this._editor.getModel();\n                            if (!e.mightContainUnusualLineTerminators()) return;\n                            const t = function(e, t) {\n                                return e.getModelProperty(t.uri, u)\n                            }(this._codeEditorService, e);\n                            if (!0 === t) return;\n                            if (this._editor.getOption(80)) return;\n                            if (\"auto\" === this._config) return void e.removeUnusualLineTerminators(this._editor.getSelections());\n                            (yield this._dialogService.confirm({\n                                title: a.N(\"unusualLineTerminators.title\", \"Unusual Line Terminators\"),\n                                message: a.N(\"unusualLineTerminators.message\", \"Detected unusual line terminators\"),\n                                detail: a.N(\"unusualLineTerminators.detail\", \"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, o.EZ)(e.uri)),\n                                primaryButton: a.N(\"unusualLineTerminators.fix\", \"Remove Unusual Line Terminators\"),\n                                secondaryButton: a.N(\"unusualLineTerminators.ignore\", \"Ignore\")\n                            })).confirmed ? e.removeUnusualLineTerminators(this._editor.getSelections()) : function(e, t, i) {\n                                e.setModelProperty(t.uri, u, i)\n                            }(this._codeEditorService, e, !0)\n                        }))\n                    }\n                };\n                g.ID = \"editor.contrib.unusualLineTerminatorsDetector\", g = c([d(1, l.S), d(2, r.$)], g), (0, s._K)(g.ID, g)\n            },\n            70185: (e, t, i) => {\n                \"use strict\";\n                i.r(t);\n                var n = i(15393),\n                    o = i(5976),\n                    s = i(16830),\n                    r = i(44101),\n                    a = i(89510),\n                    l = i(51200),\n                    c = i(32334),\n                    d = i(65072),\n                    h = i(33108),\n                    u = i(97781),\n                    g = function(e, t, i, n) {\n                        var o, s = arguments.length,\n                            r = s < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n                        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) r = Reflect.decorate(e, t, i, n);\n                        else\n                            for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (r = (s < 3 ? o(r) : s > 3 ? o(t, i, r) : o(t, i)) || r);\n                        return s > 3 && r && Object.defineProperty(t, i, r), r\n                    },\n                    p = function(e, t) {\n                        return function(i, n) {\n                            t(i, n, e)\n                        }\n                    };\n                let f = class extends o.JT {\n                    constructor(e, t, i, o) {\n                        super(), this._modelService = t, this._themeService = i, this._configurationService = o, this._editor = e, this._tokenizeViewport = new n.pY((() => this._tokenizeViewportNow()), 100), this._outstandingRequests = [], this._register(this._editor.onDidScrollChange((() => {\n                            this._tokenizeViewport.schedule()\n                        }))), this._register(this._editor.onDidChangeModel((() => {\n                            this._cancelAll(), this._tokenizeViewport.schedule()\n                        }))), this._register(this._editor.onDidChangeModelContent((e => {\n                            this._cancelAll(), this._tokenizeViewport.schedule()\n                        }))), this._register(r.K7.onDidChange((() => {\n                            this._cancelAll(), this._tokenizeViewport.schedule()\n                        }))), this._register(this._configurationService.onDidChangeConfiguration((e => {\n                            e.affectsConfiguration(c.e3) && (this._cancelAll(), this._tokenizeViewport.schedule())\n                        }))), this._register(this._themeService.onDidColorThemeChange((() => {\n                            this._cancelAll(), this._tokenizeViewport.schedule()\n                        })))\n                    }\n                    _cancelAll() {\n                        for (const e of this._outstandingRequests) e.cancel();\n                        this._outstandingRequests = []\n                    }\n                    _removeOutstandingRequest(e) {\n                        for (let t = 0, i = this._outstandingRequests.length; t < i; t++)\n                            if (this._outstandingRequests[t] === e) return void this._outstandingRequests.splice(t, 1)\n                    }\n                    _tokenizeViewportNow() {\n                        if (!this._editor.hasModel()) return;\n                        const e = this._editor.getModel();\n                        if (e.hasCompleteSemanticTokens()) return;\n                        if (!(0, c.tw)(e, this._themeService, this._configurationService)) return void(e.hasSomeSemanticTokens() && e.setSemanticTokens(null, !1));\n                        if (!(0, a.KO)(e)) return void(e.hasSomeSemanticTokens() && e.setSemanticTokens(null, !1));\n                        const t = this._editor.getVisibleRangesPlusViewportAboveBelow();\n                        this._outstandingRequests = this._outstandingRequests.concat(t.map((t => this._requestRange(e, t))))\n                    }\n                    _requestRange(e, t) {\n                        const i = e.getVersionId(),\n                            o = (0, n.PG)((i => Promise.resolve((0, a.OG)(e, t, i))));\n                        return o.then((n => {\n                            if (!n || !n.tokens || e.isDisposed() || e.getVersionId() !== i) return;\n                            const {\n                                provider: o,\n                                tokens: s\n                            } = n, r = this._modelService.getSemanticTokensProviderStyling(o);\n                            e.setPartialSemanticTokens(t, (0, d.h)(s, r, e.getLanguageId()))\n                        })).then((() => this._removeOutstandingRequest(o)), (() => this._removeOutstandingRequest(o))), o\n                    }\n                };\n                f.ID = \"editor.contrib.viewportSemanticTokens\", f = g([p(1, l.q), p(2, u.XE), p(3, h.Ui)], f), (0, s._K)(f.ID, f)\n            },\n            43497: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    getOccurrencesAtPosition: () => D\n                });\n                var n = i(85152),\n                    o = i(9488),\n                    s = i(15393),\n                    r = i(71050),\n                    a = i(17301),\n                    l = i(5976),\n                    c = i(16830),\n                    d = i(24314),\n                    h = i(29102),\n                    u = i(84973),\n                    g = i(44174),\n                    p = i(44101),\n                    f = i(63580),\n                    m = i(38819),\n                    v = i(73910),\n                    _ = i(97781),\n                    b = function(e, t, i, n) {\n                        var o, s = arguments.length,\n                            r = s < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n                        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) r = Reflect.decorate(e, t, i, n);\n                        else\n                            for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (r = (s < 3 ? o(r) : s > 3 ? o(t, i, r) : o(t, i)) || r);\n                        return s > 3 && r && Object.defineProperty(t, i, r), r\n                    },\n                    w = function(e, t) {\n                        return function(i, n) {\n                            t(i, n, e)\n                        }\n                    };\n                const y = (0, v.P6)(\"editor.wordHighlightBackground\", {\n                        dark: \"#575757B8\",\n                        light: \"#57575740\",\n                        hc: null\n                    }, f.N(\"wordHighlight\", \"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),\n                    C = (0, v.P6)(\"editor.wordHighlightStrongBackground\", {\n                        dark: \"#004972B8\",\n                        light: \"#0e639c40\",\n                        hc: null\n                    }, f.N(\"wordHighlightStrong\", \"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),\n                    x = (0, v.P6)(\"editor.wordHighlightBorder\", {\n                        light: null,\n                        dark: null,\n                        hc: v.xL\n                    }, f.N(\"wordHighlightBorder\", \"Border color of a symbol during read-access, like reading a variable.\")),\n                    S = (0, v.P6)(\"editor.wordHighlightStrongBorder\", {\n                        light: null,\n                        dark: null,\n                        hc: v.xL\n                    }, f.N(\"wordHighlightStrongBorder\", \"Border color of a symbol during write-access, like writing to a variable.\")),\n                    k = (0, v.P6)(\"editorOverviewRuler.wordHighlightForeground\", {\n                        dark: \"#A0A0A0CC\",\n                        light: \"#A0A0A0CC\",\n                        hc: \"#A0A0A0CC\"\n                    }, f.N(\"overviewRulerWordHighlightForeground\", \"Overview ruler marker color for symbol highlights. The color must not be opaque so as not to hide underlying decorations.\"), !0),\n                    L = (0, v.P6)(\"editorOverviewRuler.wordHighlightStrongForeground\", {\n                        dark: \"#C0A0C0CC\",\n                        light: \"#C0A0C0CC\",\n                        hc: \"#C0A0C0CC\"\n                    }, f.N(\"overviewRulerWordHighlightStrongForeground\", \"Overview ruler marker color for write-access symbol highlights. The color must not be opaque so as not to hide underlying decorations.\"), !0),\n                    N = new m.uy(\"hasWordHighlights\", !1);\n\n                function D(e, t, i) {\n                    const n = p.vH.ordered(e);\n                    return (0, s.Ps)(n.map((n => () => Promise.resolve(n.provideDocumentHighlights(e, t, i)).then(void 0, a.Cp))), o.Of)\n                }\n                class I {\n                    constructor(e, t, i) {\n                        this._wordRange = this._getCurrentWordRange(e, t), this.result = (0, s.PG)((n => this._compute(e, t, i, n)))\n                    }\n                    _getCurrentWordRange(e, t) {\n                        const i = e.getWordAtPosition(t.getPosition());\n                        return i ? new d.e(t.startLineNumber, i.startColumn, t.startLineNumber, i.endColumn) : null\n                    }\n                    isValid(e, t, i) {\n                        const n = t.startLineNumber,\n                            o = t.startColumn,\n                            s = t.endColumn,\n                            r = this._getCurrentWordRange(e, t);\n                        let a = Boolean(this._wordRange && this._wordRange.equalsRange(r));\n                        for (let t = 0, r = i.length; !a && t < r; t++) {\n                            let r = e.getDecorationRange(i[t]);\n                            r && r.startLineNumber === n && r.startColumn <= o && r.endColumn >= s && (a = !0)\n                        }\n                        return a\n                    }\n                    cancel() {\n                        this.result.cancel()\n                    }\n                }\n                class E extends I {\n                    _compute(e, t, i, n) {\n                        return D(e, t.getPosition(), n).then((e => e || []))\n                    }\n                }\n                class T extends I {\n                    constructor(e, t, i) {\n                        super(e, t, i), this._selectionIsEmpty = t.isEmpty()\n                    }\n                    _compute(e, t, i, n) {\n                        return (0, s.Vs)(250, n).then((() => {\n                            if (!t.isEmpty()) return [];\n                            const n = e.getWordAtPosition(t.getPosition());\n                            if (!n || n.word.length > 1e3) return [];\n                            return e.findMatches(n.word, !0, !1, !0, i, !1).map((e => ({\n                                range: e.range,\n                                kind: p.MY.Text\n                            })))\n                        }))\n                    }\n                    isValid(e, t, i) {\n                        const n = t.isEmpty();\n                        return this._selectionIsEmpty === n && super.isValid(e, t, i)\n                    }\n                }(0, c.sb)(\"_executeDocumentHighlights\", ((e, t) => D(e, t, r.T.None)));\n                class M {\n                    constructor(e, t) {\n                        this.toUnhook = new l.SL, this.workerRequestTokenId = 0, this.workerRequestCompleted = !1, this.workerRequestValue = [], this.lastCursorPositionChangeTime = 0, this.renderDecorationsTimer = -1, this.editor = e, this._hasWordHighlights = N.bindTo(t), this._ignorePositionChangeEvent = !1, this.occurrencesHighlight = this.editor.getOption(71), this.model = this.editor.getModel(), this.toUnhook.add(e.onDidChangeCursorPosition((e => {\n                            this._ignorePositionChangeEvent || this.occurrencesHighlight && this._onPositionChanged(e)\n                        }))), this.toUnhook.add(e.onDidChangeModelContent((e => {\n                            this._stopAll()\n                        }))), this.toUnhook.add(e.onDidChangeConfiguration((e => {\n                            let t = this.editor.getOption(71);\n                            this.occurrencesHighlight !== t && (this.occurrencesHighlight = t, this._stopAll())\n                        }))), this._decorationIds = [], this.workerRequestTokenId = 0, this.workerRequest = null, this.workerRequestCompleted = !1, this.lastCursorPositionChangeTime = 0, this.renderDecorationsTimer = -1\n                    }\n                    hasDecorations() {\n                        return this._decorationIds.length > 0\n                    }\n                    restore() {\n                        this.occurrencesHighlight && this._run()\n                    }\n                    _getSortedHighlights() {\n                        return o.kX(this._decorationIds.map((e => this.model.getDecorationRange(e))).sort(d.e.compareRangesUsingStarts))\n                    }\n                    moveNext() {\n                        let e = this._getSortedHighlights(),\n                            t = (e.findIndex((e => e.containsPosition(this.editor.getPosition()))) + 1) % e.length,\n                            i = e[t];\n                        try {\n                            this._ignorePositionChangeEvent = !0, this.editor.setPosition(i.getStartPosition()), this.editor.revealRangeInCenterIfOutsideViewport(i);\n                            const o = this._getWord();\n                            if (o) {\n                                const s = this.editor.getModel().getLineContent(i.startLineNumber);\n                                (0, n.Z9)(`${s}, ${t+1} of ${e.length} for '${o.word}'`)\n                            }\n                        } finally {\n                            this._ignorePositionChangeEvent = !1\n                        }\n                    }\n                    moveBack() {\n                        let e = this._getSortedHighlights(),\n                            t = (e.findIndex((e => e.containsPosition(this.editor.getPosition()))) - 1 + e.length) % e.length,\n                            i = e[t];\n                        try {\n                            this._ignorePositionChangeEvent = !0, this.editor.setPosition(i.getStartPosition()), this.editor.revealRangeInCenterIfOutsideViewport(i);\n                            const o = this._getWord();\n                            if (o) {\n                                const s = this.editor.getModel().getLineContent(i.startLineNumber);\n                                (0, n.Z9)(`${s}, ${t+1} of ${e.length} for '${o.word}'`)\n                            }\n                        } finally {\n                            this._ignorePositionChangeEvent = !1\n                        }\n                    }\n                    _removeDecorations() {\n                        this._decorationIds.length > 0 && (this._decorationIds = this.editor.deltaDecorations(this._decorationIds, []), this._hasWordHighlights.set(!1))\n                    }\n                    _stopAll() {\n                        this._removeDecorations(), -1 !== this.renderDecorationsTimer && (clearTimeout(this.renderDecorationsTimer), this.renderDecorationsTimer = -1), null !== this.workerRequest && (this.workerRequest.cancel(), this.workerRequest = null), this.workerRequestCompleted || (this.workerRequestTokenId++, this.workerRequestCompleted = !0)\n                    }\n                    _onPositionChanged(e) {\n                        this.occurrencesHighlight && 3 === e.reason ? this._run() : this._stopAll()\n                    }\n                    _getWord() {\n                        let e = this.editor.getSelection(),\n                            t = e.startLineNumber,\n                            i = e.startColumn;\n                        return this.model.getWordAtPosition({\n                            lineNumber: t,\n                            column: i\n                        })\n                    }\n                    _run() {\n                        let e = this.editor.getSelection();\n                        if (e.startLineNumber !== e.endLineNumber) return void this._stopAll();\n                        let t = e.startColumn,\n                            i = e.endColumn;\n                        const n = this._getWord();\n                        if (!n || n.startColumn > t || n.endColumn < i) return void this._stopAll();\n                        const o = this.workerRequest && this.workerRequest.isValid(this.model, e, this._decorationIds);\n                        if (this.lastCursorPositionChangeTime = (new Date).getTime(), o) this.workerRequestCompleted && -1 !== this.renderDecorationsTimer && (clearTimeout(this.renderDecorationsTimer), this.renderDecorationsTimer = -1, this._beginRenderDecorations());\n                        else {\n                            this._stopAll();\n                            let e = ++this.workerRequestTokenId;\n                            this.workerRequestCompleted = !1, this.workerRequest = (s = this.model, r = this.editor.getSelection(), l = this.editor.getOption(115), p.vH.has(s) ? new E(s, r, l) : new T(s, r, l)), this.workerRequest.result.then((t => {\n                                e === this.workerRequestTokenId && (this.workerRequestCompleted = !0, this.workerRequestValue = t || [], this._beginRenderDecorations())\n                            }), a.dL)\n                        }\n                        var s, r, l\n                    }\n                    _beginRenderDecorations() {\n                        let e = (new Date).getTime(),\n                            t = this.lastCursorPositionChangeTime + 250;\n                        e >= t ? (this.renderDecorationsTimer = -1, this.renderDecorations()) : this.renderDecorationsTimer = setTimeout((() => {\n                            this.renderDecorations()\n                        }), t - e)\n                    }\n                    renderDecorations() {\n                        this.renderDecorationsTimer = -1;\n                        let e = [];\n                        for (const t of this.workerRequestValue) t.range && e.push({\n                            range: t.range,\n                            options: M._getDecorationOptions(t.kind)\n                        });\n                        this._decorationIds = this.editor.deltaDecorations(this._decorationIds, e), this._hasWordHighlights.set(this.hasDecorations())\n                    }\n                    static _getDecorationOptions(e) {\n                        return e === p.MY.Write ? this._WRITE_OPTIONS : e === p.MY.Text ? this._TEXT_OPTIONS : this._REGULAR_OPTIONS\n                    }\n                    dispose() {\n                        this._stopAll(), this.toUnhook.dispose()\n                    }\n                }\n                M._WRITE_OPTIONS = g.qx.register({\n                    description: \"word-highlight-strong\",\n                    stickiness: 1,\n                    className: \"wordHighlightStrong\",\n                    overviewRuler: {\n                        color: (0, _.EN)(L),\n                        position: u.sh.Center\n                    },\n                    minimap: {\n                        color: (0, _.EN)(v.IY),\n                        position: u.F5.Inline\n                    }\n                }), M._TEXT_OPTIONS = g.qx.register({\n                    description: \"selection-highlight\",\n                    stickiness: 1,\n                    className: \"selectionHighlight\",\n                    overviewRuler: {\n                        color: (0, _.EN)(v.SP),\n                        position: u.sh.Center\n                    },\n                    minimap: {\n                        color: (0, _.EN)(v.IY),\n                        position: u.F5.Inline\n                    }\n                }), M._REGULAR_OPTIONS = g.qx.register({\n                    description: \"word-highlight\",\n                    stickiness: 1,\n                    className: \"wordHighlight\",\n                    overviewRuler: {\n                        color: (0, _.EN)(k),\n                        position: u.sh.Center\n                    },\n                    minimap: {\n                        color: (0, _.EN)(v.IY),\n                        position: u.F5.Inline\n                    }\n                });\n                let A = class e extends l.JT {\n                    constructor(e, t) {\n                        super(), this.wordHighlighter = null;\n                        const i = () => {\n                            e.hasModel() && (this.wordHighlighter = new M(e, t))\n                        };\n                        this._register(e.onDidChangeModel((e => {\n                            this.wordHighlighter && (this.wordHighlighter.dispose(), this.wordHighlighter = null), i()\n                        }))), i()\n                    }\n                    static get(t) {\n                        return t.getContribution(e.ID)\n                    }\n                    saveViewState() {\n                        return !(!this.wordHighlighter || !this.wordHighlighter.hasDecorations())\n                    }\n                    moveNext() {\n                        this.wordHighlighter && this.wordHighlighter.moveNext()\n                    }\n                    moveBack() {\n                        this.wordHighlighter && this.wordHighlighter.moveBack()\n                    }\n                    restoreViewState(e) {\n                        this.wordHighlighter && e && this.wordHighlighter.restore()\n                    }\n                    dispose() {\n                        this.wordHighlighter && (this.wordHighlighter.dispose(), this.wordHighlighter = null), super.dispose()\n                    }\n                };\n                A.ID = \"editor.contrib.wordHighlighter\", A = b([w(1, m.i6)], A);\n                class O extends c.R6 {\n                    constructor(e, t) {\n                        super(t), this._isNext = e\n                    }\n                    run(e, t) {\n                        const i = A.get(t);\n                        i && (this._isNext ? i.moveNext() : i.moveBack())\n                    }\n                }\n                class P extends c.R6 {\n                    constructor() {\n                        super({\n                            id: \"editor.action.wordHighlight.trigger\",\n                            label: f.N(\"wordHighlight.trigger.label\", \"Trigger Symbol Highlight\"),\n                            alias: \"Trigger Symbol Highlight\",\n                            precondition: N.toNegated(),\n                            kbOpts: {\n                                kbExpr: h.u.editorTextFocus,\n                                primary: 0,\n                                weight: 100\n                            }\n                        })\n                    }\n                    run(e, t, i) {\n                        const n = A.get(t);\n                        n && n.restoreViewState(!0)\n                    }\n                }(0, c._K)(A.ID, A), (0, c.Qr)(class extends O {\n                    constructor() {\n                        super(!0, {\n                            id: \"editor.action.wordHighlight.next\",\n                            label: f.N(\"wordHighlight.next.label\", \"Go to Next Symbol Highlight\"),\n                            alias: \"Go to Next Symbol Highlight\",\n                            precondition: N,\n                            kbOpts: {\n                                kbExpr: h.u.editorTextFocus,\n                                primary: 65,\n                                weight: 100\n                            }\n                        })\n                    }\n                }), (0, c.Qr)(class extends O {\n                    constructor() {\n                        super(!1, {\n                            id: \"editor.action.wordHighlight.prev\",\n                            label: f.N(\"wordHighlight.previous.label\", \"Go to Previous Symbol Highlight\"),\n                            alias: \"Go to Previous Symbol Highlight\",\n                            precondition: N,\n                            kbOpts: {\n                                kbExpr: h.u.editorTextFocus,\n                                primary: 1089,\n                                weight: 100\n                            }\n                        })\n                    }\n                }), (0, c.Qr)(P), (0, _.Ic)(((e, t) => {\n                    const i = e.getColor(v.Rz);\n                    i && (t.addRule(`.monaco-editor .focused .selectionHighlight { background-color: ${i}; }`), t.addRule(`.monaco-editor .selectionHighlight { background-color: ${i.transparent(.5)}; }`));\n                    const n = e.getColor(y);\n                    n && t.addRule(`.monaco-editor .wordHighlight { background-color: ${n}; }`);\n                    const o = e.getColor(C);\n                    o && t.addRule(`.monaco-editor .wordHighlightStrong { background-color: ${o}; }`);\n                    const s = e.getColor(v.g_);\n                    s && t.addRule(`.monaco-editor .selectionHighlight { border: 1px ${\"hc\"===e.type?\"dotted\":\"solid\"} ${s}; box-sizing: border-box; }`);\n                    const r = e.getColor(x);\n                    r && t.addRule(`.monaco-editor .wordHighlight { border: 1px ${\"hc\"===e.type?\"dashed\":\"solid\"} ${r}; box-sizing: border-box; }`);\n                    const a = e.getColor(S);\n                    a && t.addRule(`.monaco-editor .wordHighlightStrong { border: 1px ${\"hc\"===e.type?\"dashed\":\"solid\"} ${a}; box-sizing: border-box; }`)\n                }))\n            },\n            99453: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    CursorWordAccessibilityLeft: () => N,\n                    CursorWordAccessibilityLeftSelect: () => D,\n                    CursorWordAccessibilityRight: () => P,\n                    CursorWordAccessibilityRightSelect: () => R,\n                    CursorWordEndLeft: () => C,\n                    CursorWordEndLeftSelect: () => k,\n                    CursorWordEndRight: () => E,\n                    CursorWordEndRightSelect: () => A,\n                    CursorWordLeft: () => x,\n                    CursorWordLeftSelect: () => L,\n                    CursorWordRight: () => T,\n                    CursorWordRightSelect: () => O,\n                    CursorWordStartLeft: () => y,\n                    CursorWordStartLeftSelect: () => S,\n                    CursorWordStartRight: () => I,\n                    CursorWordStartRightSelect: () => M,\n                    DeleteInsideWord: () => K,\n                    DeleteWordCommand: () => F,\n                    DeleteWordEndLeft: () => H,\n                    DeleteWordEndRight: () => U,\n                    DeleteWordLeft: () => z,\n                    DeleteWordLeftCommand: () => B,\n                    DeleteWordRight: () => $,\n                    DeleteWordRightCommand: () => V,\n                    DeleteWordStartLeft: () => W,\n                    DeleteWordStartRight: () => j,\n                    MoveWordCommand: () => _,\n                    WordLeftCommand: () => b,\n                    WordRightCommand: () => w\n                });\n                var n = i(16830),\n                    o = i(61329),\n                    s = i(64141),\n                    r = i(33181),\n                    a = i(5795),\n                    l = i(59410),\n                    c = i(50187),\n                    d = i(24314),\n                    h = i(3860),\n                    u = i(29102),\n                    g = i(83831),\n                    p = i(63580),\n                    f = i(31106),\n                    m = i(38819),\n                    v = i(39282);\n                class _ extends n._l {\n                    constructor(e) {\n                        super(e), this._inSelectionMode = e.inSelectionMode, this._wordNavigationType = e.wordNavigationType\n                    }\n                    runEditorCommand(e, t, i) {\n                        if (!t.hasModel()) return;\n                        const n = (0, l.u)(t.getOption(115)),\n                            o = t.getModel(),\n                            s = t.getSelections().map((e => {\n                                const t = new c.L(e.positionLineNumber, e.positionColumn),\n                                    i = this._move(n, o, t, this._wordNavigationType);\n                                return this._moveTo(e, i, this._inSelectionMode)\n                            }));\n                        if (o.pushStackElement(), t._getViewModel().setCursorStates(\"moveWordCommand\", 3, s.map((e => r.Vi.fromModelSelection(e)))), 1 === s.length) {\n                            const e = new c.L(s[0].positionLineNumber, s[0].positionColumn);\n                            t.revealPosition(e, 0)\n                        }\n                    }\n                    _moveTo(e, t, i) {\n                        return i ? new h.Y(e.selectionStartLineNumber, e.selectionStartColumn, t.lineNumber, t.column) : new h.Y(t.lineNumber, t.column, t.lineNumber, t.column)\n                    }\n                }\n                class b extends _ {\n                    _move(e, t, i, n) {\n                        return a.w.moveWordLeft(e, t, i, n)\n                    }\n                }\n                class w extends _ {\n                    _move(e, t, i, n) {\n                        return a.w.moveWordRight(e, t, i, n)\n                    }\n                }\n                class y extends b {\n                    constructor() {\n                        super({\n                            inSelectionMode: !1,\n                            wordNavigationType: 0,\n                            id: \"cursorWordStartLeft\",\n                            precondition: void 0\n                        })\n                    }\n                }\n                class C extends b {\n                    constructor() {\n                        super({\n                            inSelectionMode: !1,\n                            wordNavigationType: 2,\n                            id: \"cursorWordEndLeft\",\n                            precondition: void 0\n                        })\n                    }\n                }\n                class x extends b {\n                    constructor() {\n                        var e;\n                        super({\n                            inSelectionMode: !1,\n                            wordNavigationType: 1,\n                            id: \"cursorWordLeft\",\n                            precondition: void 0,\n                            kbOpts: {\n                                kbExpr: m.Ao.and(u.u.textInputFocus, null === (e = m.Ao.and(f.U, v.c)) || void 0 === e ? void 0 : e.negate()),\n                                primary: 2063,\n                                mac: {\n                                    primary: 527\n                                },\n                                weight: 100\n                            }\n                        })\n                    }\n                }\n                class S extends b {\n                    constructor() {\n                        super({\n                            inSelectionMode: !0,\n                            wordNavigationType: 0,\n                            id: \"cursorWordStartLeftSelect\",\n                            precondition: void 0\n                        })\n                    }\n                }\n                class k extends b {\n                    constructor() {\n                        super({\n                            inSelectionMode: !0,\n                            wordNavigationType: 2,\n                            id: \"cursorWordEndLeftSelect\",\n                            precondition: void 0\n                        })\n                    }\n                }\n                class L extends b {\n                    constructor() {\n                        var e;\n                        super({\n                            inSelectionMode: !0,\n                            wordNavigationType: 1,\n                            id: \"cursorWordLeftSelect\",\n                            precondition: void 0,\n                            kbOpts: {\n                                kbExpr: m.Ao.and(u.u.textInputFocus, null === (e = m.Ao.and(f.U, v.c)) || void 0 === e ? void 0 : e.negate()),\n                                primary: 3087,\n                                mac: {\n                                    primary: 1551\n                                },\n                                weight: 100\n                            }\n                        })\n                    }\n                }\n                class N extends b {\n                    constructor() {\n                        super({\n                            inSelectionMode: !1,\n                            wordNavigationType: 3,\n                            id: \"cursorWordAccessibilityLeft\",\n                            precondition: void 0\n                        })\n                    }\n                    _move(e, t, i, n) {\n                        return super._move((0, l.u)(s.BH.wordSeparators.defaultValue), t, i, n)\n                    }\n                }\n                class D extends b {\n                    constructor() {\n                        super({\n                            inSelectionMode: !0,\n                            wordNavigationType: 3,\n                            id: \"cursorWordAccessibilityLeftSelect\",\n                            precondition: void 0\n                        })\n                    }\n                    _move(e, t, i, n) {\n                        return super._move((0, l.u)(s.BH.wordSeparators.defaultValue), t, i, n)\n                    }\n                }\n                class I extends w {\n                    constructor() {\n                        super({\n                            inSelectionMode: !1,\n                            wordNavigationType: 0,\n                            id: \"cursorWordStartRight\",\n                            precondition: void 0\n                        })\n                    }\n                }\n                class E extends w {\n                    constructor() {\n                        var e;\n                        super({\n                            inSelectionMode: !1,\n                            wordNavigationType: 2,\n                            id: \"cursorWordEndRight\",\n                            precondition: void 0,\n                            kbOpts: {\n                                kbExpr: m.Ao.and(u.u.textInputFocus, null === (e = m.Ao.and(f.U, v.c)) || void 0 === e ? void 0 : e.negate()),\n                                primary: 2065,\n                                mac: {\n                                    primary: 529\n                                },\n                                weight: 100\n                            }\n                        })\n                    }\n                }\n                class T extends w {\n                    constructor() {\n                        super({\n                            inSelectionMode: !1,\n                            wordNavigationType: 2,\n                            id: \"cursorWordRight\",\n                            precondition: void 0\n                        })\n                    }\n                }\n                class M extends w {\n                    constructor() {\n                        super({\n                            inSelectionMode: !0,\n                            wordNavigationType: 0,\n                            id: \"cursorWordStartRightSelect\",\n                            precondition: void 0\n                        })\n                    }\n                }\n                class A extends w {\n                    constructor() {\n                        var e;\n                        super({\n                            inSelectionMode: !0,\n                            wordNavigationType: 2,\n                            id: \"cursorWordEndRightSelect\",\n                            precondition: void 0,\n                            kbOpts: {\n                                kbExpr: m.Ao.and(u.u.textInputFocus, null === (e = m.Ao.and(f.U, v.c)) || void 0 === e ? void 0 : e.negate()),\n                                primary: 3089,\n                                mac: {\n                                    primary: 1553\n                                },\n                                weight: 100\n                            }\n                        })\n                    }\n                }\n                class O extends w {\n                    constructor() {\n                        super({\n                            inSelectionMode: !0,\n                            wordNavigationType: 2,\n                            id: \"cursorWordRightSelect\",\n                            precondition: void 0\n                        })\n                    }\n                }\n                class P extends w {\n                    constructor() {\n                        super({\n                            inSelectionMode: !1,\n                            wordNavigationType: 3,\n                            id: \"cursorWordAccessibilityRight\",\n                            precondition: void 0\n                        })\n                    }\n                    _move(e, t, i, n) {\n                        return super._move((0, l.u)(s.BH.wordSeparators.defaultValue), t, i, n)\n                    }\n                }\n                class R extends w {\n                    constructor() {\n                        super({\n                            inSelectionMode: !0,\n                            wordNavigationType: 3,\n                            id: \"cursorWordAccessibilityRightSelect\",\n                            precondition: void 0\n                        })\n                    }\n                    _move(e, t, i, n) {\n                        return super._move((0, l.u)(s.BH.wordSeparators.defaultValue), t, i, n)\n                    }\n                }\n                class F extends n._l {\n                    constructor(e) {\n                        super(e), this._whitespaceHeuristics = e.whitespaceHeuristics, this._wordNavigationType = e.wordNavigationType\n                    }\n                    runEditorCommand(e, t, i) {\n                        if (!t.hasModel()) return;\n                        const n = (0, l.u)(t.getOption(115)),\n                            s = t.getModel(),\n                            r = t.getSelections(),\n                            a = t.getOption(5),\n                            c = t.getOption(8),\n                            d = g.zu.getAutoClosingPairs(s.getLanguageId()),\n                            h = t._getViewModel(),\n                            u = r.map((e => {\n                                const i = this._delete({\n                                    wordSeparators: n,\n                                    model: s,\n                                    selection: e,\n                                    whitespaceHeuristics: this._whitespaceHeuristics,\n                                    autoClosingDelete: t.getOption(6),\n                                    autoClosingBrackets: a,\n                                    autoClosingQuotes: c,\n                                    autoClosingPairs: d,\n                                    autoClosedCharacters: h.getCursorAutoClosedCharacters()\n                                }, this._wordNavigationType);\n                                return new o.T4(i, \"\")\n                            }));\n                        t.pushUndoStop(), t.executeCommands(this.id, u), t.pushUndoStop()\n                    }\n                }\n                class B extends F {\n                    _delete(e, t) {\n                        let i = a.w.deleteWordLeft(e, t);\n                        return i || new d.e(1, 1, 1, 1)\n                    }\n                }\n                class V extends F {\n                    _delete(e, t) {\n                        let i = a.w.deleteWordRight(e, t);\n                        if (i) return i;\n                        const n = e.model.getLineCount(),\n                            o = e.model.getLineMaxColumn(n);\n                        return new d.e(n, o, n, o)\n                    }\n                }\n                class W extends B {\n                    constructor() {\n                        super({\n                            whitespaceHeuristics: !1,\n                            wordNavigationType: 0,\n                            id: \"deleteWordStartLeft\",\n                            precondition: u.u.writable\n                        })\n                    }\n                }\n                class H extends B {\n                    constructor() {\n                        super({\n                            whitespaceHeuristics: !1,\n                            wordNavigationType: 2,\n                            id: \"deleteWordEndLeft\",\n                            precondition: u.u.writable\n                        })\n                    }\n                }\n                class z extends B {\n                    constructor() {\n                        super({\n                            whitespaceHeuristics: !0,\n                            wordNavigationType: 0,\n                            id: \"deleteWordLeft\",\n                            precondition: u.u.writable,\n                            kbOpts: {\n                                kbExpr: u.u.textInputFocus,\n                                primary: 2049,\n                                mac: {\n                                    primary: 513\n                                },\n                                weight: 100\n                            }\n                        })\n                    }\n                }\n                class j extends V {\n                    constructor() {\n                        super({\n                            whitespaceHeuristics: !1,\n                            wordNavigationType: 0,\n                            id: \"deleteWordStartRight\",\n                            precondition: u.u.writable\n                        })\n                    }\n                }\n                class U extends V {\n                    constructor() {\n                        super({\n                            whitespaceHeuristics: !1,\n                            wordNavigationType: 2,\n                            id: \"deleteWordEndRight\",\n                            precondition: u.u.writable\n                        })\n                    }\n                }\n                class $ extends V {\n                    constructor() {\n                        super({\n                            whitespaceHeuristics: !0,\n                            wordNavigationType: 2,\n                            id: \"deleteWordRight\",\n                            precondition: u.u.writable,\n                            kbOpts: {\n                                kbExpr: u.u.textInputFocus,\n                                primary: 2068,\n                                mac: {\n                                    primary: 532\n                                },\n                                weight: 100\n                            }\n                        })\n                    }\n                }\n                class K extends n.R6 {\n                    constructor() {\n                        super({\n                            id: \"deleteInsideWord\",\n                            precondition: u.u.writable,\n                            label: p.N(\"deleteInsideWord\", \"Delete Word\"),\n                            alias: \"Delete Word\"\n                        })\n                    }\n                    run(e, t, i) {\n                        if (!t.hasModel()) return;\n                        const n = (0, l.u)(t.getOption(115)),\n                            s = t.getModel(),\n                            r = t.getSelections().map((e => {\n                                const t = a.w.deleteInsideWord(n, s, e);\n                                return new o.T4(t, \"\")\n                            }));\n                        t.pushUndoStop(), t.executeCommands(this.id, r), t.pushUndoStop()\n                    }\n                }(0, n.fK)(new y), (0, n.fK)(new C), (0, n.fK)(new x), (0, n.fK)(new S), (0, n.fK)(new k), (0, n.fK)(new L), (0, n.fK)(new I), (0, n.fK)(new E), (0, n.fK)(new T), (0, n.fK)(new M), (0, n.fK)(new A), (0, n.fK)(new O), (0, n.fK)(new N), (0, n.fK)(new D), (0, n.fK)(new P), (0, n.fK)(new R), (0, n.fK)(new W), (0, n.fK)(new H), (0, n.fK)(new z), (0, n.fK)(new j), (0, n.fK)(new U), (0, n.fK)(new $), (0, n.Qr)(K)\n            },\n            60661: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    CursorWordPartLeft: () => u,\n                    CursorWordPartLeftSelect: () => g,\n                    CursorWordPartRight: () => f,\n                    CursorWordPartRightSelect: () => m,\n                    DeleteWordPartLeft: () => c,\n                    DeleteWordPartRight: () => d,\n                    WordPartLeftCommand: () => h,\n                    WordPartRightCommand: () => p\n                });\n                var n = i(16830),\n                    o = i(5795),\n                    s = i(24314),\n                    r = i(29102),\n                    a = i(99453),\n                    l = i(94565);\n                class c extends a.DeleteWordCommand {\n                    constructor() {\n                        super({\n                            whitespaceHeuristics: !0,\n                            wordNavigationType: 0,\n                            id: \"deleteWordPartLeft\",\n                            precondition: r.u.writable,\n                            kbOpts: {\n                                kbExpr: r.u.textInputFocus,\n                                primary: 0,\n                                mac: {\n                                    primary: 769\n                                },\n                                weight: 100\n                            }\n                        })\n                    }\n                    _delete(e, t) {\n                        let i = o.L.deleteWordPartLeft(e);\n                        return i || new s.e(1, 1, 1, 1)\n                    }\n                }\n                class d extends a.DeleteWordCommand {\n                    constructor() {\n                        super({\n                            whitespaceHeuristics: !0,\n                            wordNavigationType: 2,\n                            id: \"deleteWordPartRight\",\n                            precondition: r.u.writable,\n                            kbOpts: {\n                                kbExpr: r.u.textInputFocus,\n                                primary: 0,\n                                mac: {\n                                    primary: 788\n                                },\n                                weight: 100\n                            }\n                        })\n                    }\n                    _delete(e, t) {\n                        let i = o.L.deleteWordPartRight(e);\n                        if (i) return i;\n                        const n = e.model.getLineCount(),\n                            r = e.model.getLineMaxColumn(n);\n                        return new s.e(n, r, n, r)\n                    }\n                }\n                class h extends a.MoveWordCommand {\n                    _move(e, t, i, n) {\n                        return o.L.moveWordPartLeft(e, t, i)\n                    }\n                }\n                class u extends h {\n                    constructor() {\n                        super({\n                            inSelectionMode: !1,\n                            wordNavigationType: 0,\n                            id: \"cursorWordPartLeft\",\n                            precondition: void 0,\n                            kbOpts: {\n                                kbExpr: r.u.textInputFocus,\n                                primary: 0,\n                                mac: {\n                                    primary: 783\n                                },\n                                weight: 100\n                            }\n                        })\n                    }\n                }\n                l.P.registerCommandAlias(\"cursorWordPartStartLeft\", \"cursorWordPartLeft\");\n                class g extends h {\n                    constructor() {\n                        super({\n                            inSelectionMode: !0,\n                            wordNavigationType: 0,\n                            id: \"cursorWordPartLeftSelect\",\n                            precondition: void 0,\n                            kbOpts: {\n                                kbExpr: r.u.textInputFocus,\n                                primary: 0,\n                                mac: {\n                                    primary: 1807\n                                },\n                                weight: 100\n                            }\n                        })\n                    }\n                }\n                l.P.registerCommandAlias(\"cursorWordPartStartLeftSelect\", \"cursorWordPartLeftSelect\");\n                class p extends a.MoveWordCommand {\n                    _move(e, t, i, n) {\n                        return o.L.moveWordPartRight(e, t, i)\n                    }\n                }\n                class f extends p {\n                    constructor() {\n                        super({\n                            inSelectionMode: !1,\n                            wordNavigationType: 2,\n                            id: \"cursorWordPartRight\",\n                            precondition: void 0,\n                            kbOpts: {\n                                kbExpr: r.u.textInputFocus,\n                                primary: 0,\n                                mac: {\n                                    primary: 785\n                                },\n                                weight: 100\n                            }\n                        })\n                    }\n                }\n                class m extends p {\n                    constructor() {\n                        super({\n                            inSelectionMode: !0,\n                            wordNavigationType: 2,\n                            id: \"cursorWordPartRightSelect\",\n                            precondition: void 0,\n                            kbOpts: {\n                                kbExpr: r.u.textInputFocus,\n                                primary: 0,\n                                mac: {\n                                    primary: 1809\n                                },\n                                weight: 100\n                            }\n                        })\n                    }\n                }(0, n.fK)(new c), (0, n.fK)(new d), (0, n.fK)(new u), (0, n.fK)(new g), (0, n.fK)(new f), (0, n.fK)(new m)\n            },\n            86211: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    KeyCode: () => yc,\n                    KeyMod: () => Cc,\n                    Selection: () => xc,\n                    editor: () => Sc,\n                    languages: () => kc\n                });\n                const Lg = new Language(modifyState.language);\n                var n, o, s, r, a, l, c, d, h, u, g, p, f, m, v, _, b, w, y, C, x, S, k, L, N, D, I, E, T, M, A, O, P, R, F, B = i(64141),\n                    V = i(71050),\n                    W = i(4669),\n                    H = i(22258),\n                    z = i(70666),\n                    j = i(50187),\n                    U = i(24314),\n                    $ = i(3860),\n                    K = i(85600);\n                ! function(e) {\n                    e[e.Unknown = 0] = \"Unknown\", e[e.Disabled = 1] = \"Disabled\", e[e.Enabled = 2] = \"Enabled\"\n                }(n || (n = {})),\n                function(e) {\n                    e[e.KeepWhitespace = 1] = \"KeepWhitespace\", e[e.InsertAsSnippet = 4] = \"InsertAsSnippet\"\n                }(o || (o = {})),\n                function(e) {\n                    e[e.Method = 0] = \"Method\", e[e.Function = 1] = \"Function\", e[e.Constructor = 2] = \"Constructor\", e[e.Field = 3] = \"Field\", e[e.Variable = 4] = \"Variable\", e[e.Class = 5] = \"Class\", e[e.Struct = 6] = \"Struct\", e[e.Interface = 7] = \"Interface\", e[e.Module = 8] = \"Module\", e[e.Property = 9] = \"Property\", e[e.Event = 10] = \"Event\", e[e.Operator = 11] = \"Operator\", e[e.Unit = 12] = \"Unit\", e[e.Value = 13] = \"Value\", e[e.Constant = 14] = \"Constant\", e[e.Enum = 15] = \"Enum\", e[e.EnumMember = 16] = \"EnumMember\", e[e.Keyword = 17] = \"Keyword\", e[e.Text = 18] = Lg.text(), e[e.Color = 19] = \"Color\", e[e.File = 20] = \"File\", e[e.Reference = 21] = \"Reference\", e[e.Customcolor = 22] = \"Customcolor\", e[e.Folder = 23] = \"Folder\", e[e.TypeParameter = 24] = \"TypeParameter\", e[e.User = 25] = \"User\", e[e.Issue = 26] = \"Issue\", e[e.Snippet = 27] = \"Snippet\"\n                }(s || (s = {})),\n                function(e) {\n                    e[e.Deprecated = 1] = \"Deprecated\"\n                }(r || (r = {})),\n                function(e) {\n                    e[e.Invoke = 0] = \"Invoke\", e[e.TriggerCharacter = 1] = \"TriggerCharacter\", e[e.TriggerForIncompleteCompletions = 2] = \"TriggerForIncompleteCompletions\"\n                }(a || (a = {})),\n                function(e) {\n                    e[e.EXACT = 0] = \"EXACT\", e[e.ABOVE = 1] = \"ABOVE\", e[e.BELOW = 2] = \"BELOW\"\n                }(l || (l = {})),\n                function(e) {\n                    e[e.NotSet = 0] = \"NotSet\", e[e.ContentFlush = 1] = \"ContentFlush\", e[e.RecoverFromMarkers = 2] = \"RecoverFromMarkers\", e[e.Explicit = 3] = \"Explicit\", e[e.Paste = 4] = \"Paste\", e[e.Undo = 5] = \"Undo\", e[e.Redo = 6] = \"Redo\"\n                }(c || (c = {})),\n                function(e) {\n                    e[e.LF = 1] = \"LF\", e[e.CRLF = 2] = \"CRLF\"\n                }(d || (d = {})),\n                function(e) {\n                    e[e.Text = 0] = Lg.text(), e[e.Read = 1] = \"Read\", e[e.Write = 2] = \"Write\"\n                }(h || (h = {})),\n                function(e) {\n                    e[e.None = 0] = \"None\", e[e.Keep = 1] = \"Keep\", e[e.Brackets = 2] = \"Brackets\", e[e.Advanced = 3] = \"Advanced\", e[e.Full = 4] = \"Full\"\n                }(u || (u = {})),\n                function(e) {\n                    e[e.acceptSuggestionOnCommitCharacter = 0] = \"acceptSuggestionOnCommitCharacter\", e[e.acceptSuggestionOnEnter = 1] = \"acceptSuggestionOnEnter\", e[e.accessibilitySupport = 2] = \"accessibilitySupport\", e[e.accessibilityPageSize = 3] = \"accessibilityPageSize\", e[e.ariaLabel = 4] = \"ariaLabel\", e[e.autoClosingBrackets = 5] = \"autoClosingBrackets\", e[e.autoClosingDelete = 6] = \"autoClosingDelete\", e[e.autoClosingOvertype = 7] = \"autoClosingOvertype\", e[e.autoClosingQuotes = 8] = \"autoClosingQuotes\", e[e.autoIndent = 9] = \"autoIndent\", e[e.automaticLayout = 10] = \"automaticLayout\", e[e.autoSurround = 11] = \"autoSurround\", e[e.bracketPairColorization = 12] = \"bracketPairColorization\", e[e.guides = 13] = \"guides\", e[e.codeLens = 14] = \"codeLens\", e[e.codeLensFontFamily = 15] = \"codeLensFontFamily\", e[e.codeLensFontSize = 16] = \"codeLensFontSize\", e[e.colorDecorators = 17] = \"colorDecorators\", e[e.columnSelection = 18] = \"columnSelection\", e[e.comments = 19] = \"comments\", e[e.contextmenu = 20] = \"contextmenu\", e[e.copyWithSyntaxHighlighting = 21] = \"copyWithSyntaxHighlighting\", e[e.cursorBlinking = 22] = \"cursorBlinking\", e[e.cursorSmoothCaretAnimation = 23] = \"cursorSmoothCaretAnimation\", e[e.cursorStyle = 24] = \"cursorStyle\", e[e.cursorSurroundingLines = 25] = \"cursorSurroundingLines\", e[e.cursorSurroundingLinesStyle = 26] = \"cursorSurroundingLinesStyle\", e[e.cursorWidth = 27] = \"cursorWidth\", e[e.disableLayerHinting = 28] = \"disableLayerHinting\", e[e.disableMonospaceOptimizations = 29] = \"disableMonospaceOptimizations\", e[e.domReadOnly = 30] = \"domReadOnly\", e[e.dragAndDrop = 31] = \"dragAndDrop\", e[e.emptySelectionClipboard = 32] = \"emptySelectionClipboard\", e[e.extraEditorClassName = 33] = \"extraEditorClassName\", e[e.fastScrollSensitivity = 34] = \"fastScrollSensitivity\", e[e.find = 35] = \"find\", e[e.fixedOverflowWidgets = 36] = \"fixedOverflowWidgets\", e[e.folding = 37] = \"folding\", e[e.foldingStrategy = 38] = \"foldingStrategy\", e[e.foldingHighlight = 39] = \"foldingHighlight\", e[e.foldingImportsByDefault = 40] = \"foldingImportsByDefault\", e[e.unfoldOnClickAfterEndOfLine = 41] = \"unfoldOnClickAfterEndOfLine\", e[e.fontFamily = 42] = \"fontFamily\", e[e.fontInfo = 43] = \"fontInfo\", e[e.fontLigatures = 44] = \"fontLigatures\", e[e.fontSize = 45] = \"fontSize\", e[e.fontWeight = 46] = \"fontWeight\", e[e.formatOnPaste = 47] = \"formatOnPaste\", e[e.formatOnType = 48] = \"formatOnType\", e[e.glyphMargin = 49] = \"glyphMargin\", e[e.gotoLocation = 50] = \"gotoLocation\", e[e.hideCursorInOverviewRuler = 51] = \"hideCursorInOverviewRuler\", e[e.hover = 52] = \"hover\", e[e.inDiffEditor = 53] = \"inDiffEditor\", e[e.inlineSuggest = 54] = \"inlineSuggest\", e[e.letterSpacing = 55] = \"letterSpacing\", e[e.lightbulb = 56] = \"lightbulb\", e[e.lineDecorationsWidth = 57] = \"lineDecorationsWidth\", e[e.lineHeight = 58] = \"lineHeight\", e[e.lineNumbers = 59] = \"lineNumbers\", e[e.lineNumbersMinChars = 60] = \"lineNumbersMinChars\", e[e.linkedEditing = 61] = \"linkedEditing\", e[e.links = 62] = \"links\", e[e.matchBrackets = 63] = \"matchBrackets\", e[e.minimap = 64] = \"minimap\", e[e.mouseStyle = 65] = \"mouseStyle\", e[e.mouseWheelScrollSensitivity = 66] = \"mouseWheelScrollSensitivity\", e[e.mouseWheelZoom = 67] = \"mouseWheelZoom\", e[e.multiCursorMergeOverlapping = 68] = \"multiCursorMergeOverlapping\", e[e.multiCursorModifier = 69] = \"multiCursorModifier\", e[e.multiCursorPaste = 70] = \"multiCursorPaste\", e[e.occurrencesHighlight = 71] = \"occurrencesHighlight\", e[e.overviewRulerBorder = 72] = \"overviewRulerBorder\", e[e.overviewRulerLanes = 73] = \"overviewRulerLanes\", e[e.padding = 74] = \"padding\", e[e.parameterHints = 75] = \"parameterHints\", e[e.peekWidgetDefaultFocus = 76] = \"peekWidgetDefaultFocus\", e[e.definitionLinkOpensInPeek = 77] = \"definitionLinkOpensInPeek\", e[e.quickSuggestions = 78] = \"quickSuggestions\", e[e.quickSuggestionsDelay = 79] = \"quickSuggestionsDelay\", e[e.readOnly = 80] = \"readOnly\", e[e.renameOnType = 81] = \"renameOnType\", e[e.renderControlCharacters = 82] = \"renderControlCharacters\", e[e.renderFinalNewline = 83] = \"renderFinalNewline\", e[e.renderLineHighlight = 84] = \"renderLineHighlight\", e[e.renderLineHighlightOnlyWhenFocus = 85] = \"renderLineHighlightOnlyWhenFocus\", e[e.renderValidationDecorations = 86] = \"renderValidationDecorations\", e[e.renderWhitespace = 87] = \"renderWhitespace\", e[e.revealHorizontalRightPadding = 88] = \"revealHorizontalRightPadding\", e[e.roundedSelection = 89] = \"roundedSelection\", e[e.rulers = 90] = \"rulers\", e[e.scrollbar = 91] = \"scrollbar\", e[e.scrollBeyondLastColumn = 92] = \"scrollBeyondLastColumn\", e[e.scrollBeyondLastLine = 93] = \"scrollBeyondLastLine\", e[e.scrollPredominantAxis = 94] = \"scrollPredominantAxis\", e[e.selectionClipboard = 95] = \"selectionClipboard\", e[e.selectionHighlight = 96] = \"selectionHighlight\", e[e.selectOnLineNumbers = 97] = \"selectOnLineNumbers\", e[e.showFoldingControls = 98] = \"showFoldingControls\", e[e.showUnused = 99] = \"showUnused\", e[e.snippetSuggestions = 100] = \"snippetSuggestions\", e[e.smartSelect = 101] = \"smartSelect\", e[e.smoothScrolling = 102] = \"smoothScrolling\", e[e.stickyTabStops = 103] = \"stickyTabStops\", e[e.stopRenderingLineAfter = 104] = \"stopRenderingLineAfter\", e[e.suggest = 105] = \"suggest\", e[e.suggestFontSize = 106] = \"suggestFontSize\", e[e.suggestLineHeight = 107] = \"suggestLineHeight\", e[e.suggestOnTriggerCharacters = 108] = \"suggestOnTriggerCharacters\", e[e.suggestSelection = 109] = \"suggestSelection\", e[e.tabCompletion = 110] = \"tabCompletion\", e[e.tabIndex = 111] = \"tabIndex\", e[e.unusualLineTerminators = 112] = \"unusualLineTerminators\", e[e.useShadowDOM = 113] = \"useShadowDOM\", e[e.useTabStops = 114] = \"useTabStops\", e[e.wordSeparators = 115] = \"wordSeparators\", e[e.wordWrap = 116] = \"wordWrap\", e[e.wordWrapBreakAfterCharacters = 117] = \"wordWrapBreakAfterCharacters\", e[e.wordWrapBreakBeforeCharacters = 118] = \"wordWrapBreakBeforeCharacters\", e[e.wordWrapColumn = 119] = \"wordWrapColumn\", e[e.wordWrapOverride1 = 120] = \"wordWrapOverride1\", e[e.wordWrapOverride2 = 121] = \"wordWrapOverride2\", e[e.wrappingIndent = 122] = \"wrappingIndent\", e[e.wrappingStrategy = 123] = \"wrappingStrategy\", e[e.showDeprecated = 124] = \"showDeprecated\", e[e.inlayHints = 125] = \"inlayHints\", e[e.editorClassName = 126] = \"editorClassName\", e[e.pixelRatio = 127] = \"pixelRatio\", e[e.tabFocusMode = 128] = \"tabFocusMode\", e[e.layoutInfo = 129] = \"layoutInfo\", e[e.wrappingInfo = 130] = \"wrappingInfo\"\n                }(g || (g = {})),\n                function(e) {\n                    e[e.TextDefined = 0] = \"TextDefined\", e[e.LF = 1] = \"LF\", e[e.CRLF = 2] = \"CRLF\"\n                }(p || (p = {})),\n                function(e) {\n                    e[e.LF = 0] = \"LF\", e[e.CRLF = 1] = \"CRLF\"\n                }(f || (f = {})),\n                function(e) {\n                    e[e.None = 0] = \"None\", e[e.Indent = 1] = \"Indent\", e[e.IndentOutdent = 2] = \"IndentOutdent\", e[e.Outdent = 3] = \"Outdent\"\n                }(m || (m = {})),\n                function(e) {\n                    e[e.Other = 0] = \"Other\", e[e.Type = 1] = Lg.type(), e[e.Parameter = 2] = \"Parameter\"\n                }(v || (v = {})),\n                function(e) {\n                    e[e.Automatic = 0] = \"Automatic\", e[e.Explicit = 1] = \"Explicit\"\n                }(_ || (_ = {})),\n                function(e) {\n                    e[e.DependsOnKbLayout = -1] = \"DependsOnKbLayout\", e[e.Unknown = 0] = \"Unknown\", e[e.Backspace = 1] = \"Backspace\", e[e.Tab = 2] = \"Tab\", e[e.Enter = 3] = \"Enter\", e[e.Shift = 4] = \"Shift\", e[e.Ctrl = 5] = \"Ctrl\", e[e.Alt = 6] = \"Alt\", e[e.PauseBreak = 7] = \"PauseBreak\", e[e.CapsLock = 8] = \"CapsLock\", e[e.Escape = 9] = \"Escape\", e[e.Space = 10] = \"Space\", e[e.PageUp = 11] = \"PageUp\", e[e.PageDown = 12] = \"PageDown\", e[e.End = 13] = \"End\", e[e.Home = 14] = \"Home\", e[e.LeftArrow = 15] = \"LeftArrow\", e[e.UpArrow = 16] = \"UpArrow\", e[e.RightArrow = 17] = \"RightArrow\", e[e.DownArrow = 18] = \"DownArrow\", e[e.Insert = 19] = \"Insert\", e[e.Delete = 20] = \"Delete\", e[e.Digit0 = 21] = \"Digit0\", e[e.Digit1 = 22] = \"Digit1\", e[e.Digit2 = 23] = \"Digit2\", e[e.Digit3 = 24] = \"Digit3\", e[e.Digit4 = 25] = \"Digit4\", e[e.Digit5 = 26] = \"Digit5\", e[e.Digit6 = 27] = \"Digit6\", e[e.Digit7 = 28] = \"Digit7\", e[e.Digit8 = 29] = \"Digit8\", e[e.Digit9 = 30] = \"Digit9\", e[e.KeyA = 31] = \"KeyA\", e[e.KeyB = 32] = \"KeyB\", e[e.KeyC = 33] = \"KeyC\", e[e.KeyD = 34] = \"KeyD\", e[e.KeyE = 35] = \"KeyE\", e[e.KeyF = 36] = \"KeyF\", e[e.KeyG = 37] = \"KeyG\", e[e.KeyH = 38] = \"KeyH\", e[e.KeyI = 39] = \"KeyI\", e[e.KeyJ = 40] = \"KeyJ\", e[e.KeyK = 41] = \"KeyK\", e[e.KeyL = 42] = \"KeyL\", e[e.KeyM = 43] = \"KeyM\", e[e.KeyN = 44] = \"KeyN\", e[e.KeyO = 45] = \"KeyO\", e[e.KeyP = 46] = \"KeyP\", e[e.KeyQ = 47] = \"KeyQ\", e[e.KeyR = 48] = \"KeyR\", e[e.KeyS = 49] = \"KeyS\", e[e.KeyT = 50] = \"KeyT\", e[e.KeyU = 51] = \"KeyU\", e[e.KeyV = 52] = \"KeyV\", e[e.KeyW = 53] = \"KeyW\", e[e.KeyX = 54] = \"KeyX\", e[e.KeyY = 55] = \"KeyY\", e[e.KeyZ = 56] = \"KeyZ\", e[e.Meta = 57] = \"Meta\", e[e.ContextMenu = 58] = \"ContextMenu\", e[e.F1 = 59] = \"F1\", e[e.F2 = 60] = \"F2\", e[e.F3 = 61] = \"F3\", e[e.F4 = 62] = \"F4\", e[e.F5 = 63] = \"F5\", e[e.F6 = 64] = \"F6\", e[e.F7 = 65] = \"F7\", e[e.F8 = 66] = \"F8\", e[e.F9 = 67] = \"F9\", e[e.F10 = 68] = \"F10\", e[e.F11 = 69] = \"F11\", e[e.F12 = 70] = \"F12\", e[e.F13 = 71] = \"F13\", e[e.F14 = 72] = \"F14\", e[e.F15 = 73] = \"F15\", e[e.F16 = 74] = \"F16\", e[e.F17 = 75] = \"F17\", e[e.F18 = 76] = \"F18\", e[e.F19 = 77] = \"F19\", e[e.NumLock = 78] = \"NumLock\", e[e.ScrollLock = 79] = \"ScrollLock\", e[e.Semicolon = 80] = \"Semicolon\", e[e.Equal = 81] = \"Equal\", e[e.Comma = 82] = \"Comma\", e[e.Minus = 83] = \"Minus\", e[e.Period = 84] = \"Period\", e[e.Slash = 85] = \"Slash\", e[e.Backquote = 86] = \"Backquote\", e[e.BracketLeft = 87] = \"BracketLeft\", e[e.Backslash = 88] = \"Backslash\", e[e.BracketRight = 89] = \"BracketRight\", e[e.Quote = 90] = \"Quote\", e[e.OEM_8 = 91] = \"OEM_8\", e[e.IntlBackslash = 92] = \"IntlBackslash\", e[e.Numpad0 = 93] = \"Numpad0\", e[e.Numpad1 = 94] = \"Numpad1\", e[e.Numpad2 = 95] = \"Numpad2\", e[e.Numpad3 = 96] = \"Numpad3\", e[e.Numpad4 = 97] = \"Numpad4\", e[e.Numpad5 = 98] = \"Numpad5\", e[e.Numpad6 = 99] = \"Numpad6\", e[e.Numpad7 = 100] = \"Numpad7\", e[e.Numpad8 = 101] = \"Numpad8\", e[e.Numpad9 = 102] = \"Numpad9\", e[e.NumpadMultiply = 103] = \"NumpadMultiply\", e[e.NumpadAdd = 104] = \"NumpadAdd\", e[e.NUMPAD_SEPARATOR = 105] = \"NUMPAD_SEPARATOR\", e[e.NumpadSubtract = 106] = \"NumpadSubtract\", e[e.NumpadDecimal = 107] = \"NumpadDecimal\", e[e.NumpadDivide = 108] = \"NumpadDivide\", e[e.KEY_IN_COMPOSITION = 109] = \"KEY_IN_COMPOSITION\", e[e.ABNT_C1 = 110] = \"ABNT_C1\", e[e.ABNT_C2 = 111] = \"ABNT_C2\", e[e.AudioVolumeMute = 112] = \"AudioVolumeMute\", e[e.AudioVolumeUp = 113] = \"AudioVolumeUp\", e[e.AudioVolumeDown = 114] = \"AudioVolumeDown\", e[e.BrowserSearch = 115] = \"BrowserSearch\", e[e.BrowserHome = 116] = \"BrowserHome\", e[e.BrowserBack = 117] = \"BrowserBack\", e[e.BrowserForward = 118] = \"BrowserForward\", e[e.MediaTrackNext = 119] = \"MediaTrackNext\", e[e.MediaTrackPrevious = 120] = \"MediaTrackPrevious\", e[e.MediaStop = 121] = \"MediaStop\", e[e.MediaPlayPause = 122] = \"MediaPlayPause\", e[e.LaunchMediaPlayer = 123] = \"LaunchMediaPlayer\", e[e.LaunchMail = 124] = \"LaunchMail\", e[e.LaunchApp2 = 125] = \"LaunchApp2\", e[e.MAX_VALUE = 126] = \"MAX_VALUE\"\n                }(b || (b = {})),\n                function(e) {\n                    e[e.Hint = 1] = \"Hint\", e[e.Info = 2] = \"Info\", e[e.Warning = 4] = \"Warning\", e[e.Error = 8] = \"错误\"\n                }(w || (w = {})),\n                function(e) {\n                    e[e.Unnecessary = 1] = \"Unnecessary\", e[e.Deprecated = 2] = \"Deprecated\"\n                }(y || (y = {})),\n                function(e) {\n                    e[e.Inline = 1] = \"Inline\", e[e.Gutter = 2] = \"Gutter\"\n                }(C || (C = {})),\n                function(e) {\n                    e[e.UNKNOWN = 0] = \"UNKNOWN\", e[e.TEXTAREA = 1] = \"TEXTAREA\", e[e.GUTTER_GLYPH_MARGIN = 2] = \"GUTTER_GLYPH_MARGIN\", e[e.GUTTER_LINE_NUMBERS = 3] = \"GUTTER_LINE_NUMBERS\", e[e.GUTTER_LINE_DECORATIONS = 4] = \"GUTTER_LINE_DECORATIONS\", e[e.GUTTER_VIEW_ZONE = 5] = \"GUTTER_VIEW_ZONE\", e[e.CONTENT_TEXT = 6] = \"CONTENT_TEXT\", e[e.CONTENT_EMPTY = 7] = \"CONTENT_EMPTY\", e[e.CONTENT_VIEW_ZONE = 8] = \"CONTENT_VIEW_ZONE\", e[e.CONTENT_WIDGET = 9] = \"CONTENT_WIDGET\", e[e.OVERVIEW_RULER = 10] = \"OVERVIEW_RULER\", e[e.SCROLLBAR = 11] = \"SCROLLBAR\", e[e.OVERLAY_WIDGET = 12] = \"OVERLAY_WIDGET\", e[e.OUTSIDE_EDITOR = 13] = \"OUTSIDE_EDITOR\"\n                }(x || (x = {})),\n                function(e) {\n                    e[e.TOP_RIGHT_CORNER = 0] = \"TOP_RIGHT_CORNER\", e[e.BOTTOM_RIGHT_CORNER = 1] = \"BOTTOM_RIGHT_CORNER\", e[e.TOP_CENTER = 2] = \"TOP_CENTER\"\n                }(S || (S = {})),\n                function(e) {\n                    e[e.Left = 1] = \"Left\", e[e.Center = 2] = \"Center\", e[e.Right = 4] = \"Right\", e[e.Full = 7] = \"Full\"\n                }(k || (k = {})),\n                function(e) {\n                    e[e.Off = 0] = \"Off\", e[e.On = 1] = \"On\", e[e.Relative = 2] = \"Relative\", e[e.Interval = 3] = \"Interval\", e[e.Custom = 4] = Lg.custom()\n                }(L || (L = {})),\n                function(e) {\n                    e[e.None = 0] = \"None\", e[e.Text = 1] = Lg.text(), e[e.Blocks = 2] = \"Blocks\"\n                }(N || (N = {})),\n                function(e) {\n                    e[e.Smooth = 0] = \"Smooth\", e[e.Immediate = 1] = \"Immediate\"\n                }(D || (D = {})),\n                function(e) {\n                    e[e.Auto = 1] = \"Auto\", e[e.Hidden = 2] = \"Hidden\", e[e.Visible = 3] = \"Visible\"\n                }(I || (I = {})),\n                function(e) {\n                    e[e.LTR = 0] = \"LTR\", e[e.RTL = 1] = \"RTL\"\n                }(E || (E = {})),\n                function(e) {\n                    e[e.Invoke = 1] = \"Invoke\", e[e.TriggerCharacter = 2] = \"TriggerCharacter\", e[e.ContentChange = 3] = \"ContentChange\"\n                }(T || (T = {})),\n                function(e) {\n                    e[e.File = 0] = \"File\", e[e.Module = 1] = \"Module\", e[e.Namespace = 2] = \"Namespace\", e[e.Package = 3] = \"Package\", e[e.Class = 4] = \"Class\", e[e.Method = 5] = \"Method\", e[e.Property = 6] = \"Property\", e[e.Field = 7] = \"Field\", e[e.Constructor = 8] = \"Constructor\", e[e.Enum = 9] = \"Enum\", e[e.Interface = 10] = \"Interface\", e[e.Function = 11] = \"Function\", e[e.Variable = 12] = \"Variable\", e[e.Constant = 13] = \"Constant\", e[e.String = 14] = \"String\", e[e.Number = 15] = \"Number\", e[e.Boolean = 16] = \"Boolean\", e[e.Array = 17] = \"Array\", e[e.Object = 18] = \"Object\", e[e.Key = 19] = \"Key\", e[e.Null = 20] = \"Null\", e[e.EnumMember = 21] = \"EnumMember\", e[e.Struct = 22] = \"Struct\", e[e.Event = 23] = \"Event\", e[e.Operator = 24] = \"Operator\", e[e.TypeParameter = 25] = \"TypeParameter\"\n                }(M || (M = {})),\n                function(e) {\n                    e[e.Deprecated = 1] = \"Deprecated\"\n                }(A || (A = {})),\n                function(e) {\n                    e[e.Hidden = 0] = \"Hidden\", e[e.Blink = 1] = \"Blink\", e[e.Smooth = 2] = \"Smooth\", e[e.Phase = 3] = \"Phase\", e[e.Expand = 4] = \"Expand\", e[e.Solid = 5] = \"Solid\"\n                }(O || (O = {})),\n                function(e) {\n                    e[e.Line = 1] = \"Line\", e[e.Block = 2] = \"Block\", e[e.Underline = 3] = \"Underline\", e[e.LineThin = 4] = \"LineThin\", e[e.BlockOutline = 5] = \"BlockOutline\", e[e.UnderlineThin = 6] = \"UnderlineThin\"\n                }(P || (P = {})),\n                function(e) {\n                    e[e.AlwaysGrowsWhenTypingAtEdges = 0] = \"AlwaysGrowsWhenTypingAtEdges\", e[e.NeverGrowsWhenTypingAtEdges = 1] = \"NeverGrowsWhenTypingAtEdges\", e[e.GrowsOnlyWhenTypingBefore = 2] = \"GrowsOnlyWhenTypingBefore\", e[e.GrowsOnlyWhenTypingAfter = 3] = \"GrowsOnlyWhenTypingAfter\"\n                }(R || (R = {})),\n                function(e) {\n                    e[e.None = 0] = \"None\", e[e.Same = 1] = \"Same\", e[e.Indent = 2] = \"Indent\", e[e.DeepIndent = 3] = \"DeepIndent\"\n                }(F || (F = {}));\n                class q {\n                    static chord(e, t) {\n                        return (0, H.gx)(e, t)\n                    }\n                }\n\n                function Z() {\n                    return {\n                        editor: void 0,\n                        languages: void 0,\n                        CancellationTokenSource: V.A,\n                        Emitter: W.Q5,\n                        KeyCode: b,\n                        KeyMod: q,\n                        Position: j.L,\n                        Range: U.e,\n                        Selection: $.Y,\n                        SelectionDirection: E,\n                        MarkerSeverity: w,\n                        MarkerTag: y,\n                        Uri: z.o,\n                        Token: K.WU\n                    }\n                }\n                q.CtrlCmd = 2048, q.Shift = 1024, q.Alt = 512, q.WinCtrl = 256;\n                i(4172);\n                var G, Y = i(11640),\n                    Q = i(65321),\n                    X = i(91741),\n                    J = i(43702),\n                    ee = i(23897),\n                    te = i(66663),\n                    ie = i(95935),\n                    ne = i(94565);\n                ! function(e) {\n                    e[e.API = 0] = \"API\", e[e.USER = 1] = \"USER\"\n                }(G || (G = {}));\n                var oe = i(50988),\n                    se = function(e, t, i, n) {\n                        var o, s = arguments.length,\n                            r = s < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n                        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) r = Reflect.decorate(e, t, i, n);\n                        else\n                            for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (r = (s < 3 ? o(r) : s > 3 ? o(t, i, r) : o(t, i)) || r);\n                        return s > 3 && r && Object.defineProperty(t, i, r), r\n                    },\n                    re = function(e, t) {\n                        return function(i, n) {\n                            t(i, n, e)\n                        }\n                    },\n                    ae = function(e, t, i, n) {\n                        return new(i || (i = Promise))((function(o, s) {\n                            function r(e) {\n                                try {\n                                    l(n.next(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function a(e) {\n                                try {\n                                    l(n.throw(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function l(e) {\n                                var t;\n                                e.done ? o(e.value) : (t = e.value, t instanceof i ? t : new i((function(e) {\n                                    e(t)\n                                }))).then(r, a)\n                            }\n                            l((n = n.apply(e, t || [])).next())\n                        }))\n                    };\n                let le = class {\n                    constructor(e) {\n                        this._commandService = e\n                    }\n                    open(e, t) {\n                        return ae(this, void 0, void 0, (function*() {\n                            if (!(0, oe.xn)(e, te.lg.command)) return !1;\n                            if (!(null == t ? void 0 : t.allowCommands)) return !0;\n                            \"string\" == typeof e && (e = z.o.parse(e));\n                            let i = [];\n                            try {\n                                i = (0, ee.Q)(decodeURIComponent(e.query))\n                            } catch (t) {\n                                try {\n                                    i = (0, ee.Q)(e.query)\n                                } catch (e) {}\n                            }\n                            return Array.isArray(i) || (i = [i]), yield this._commandService.executeCommand(e.path, ...i), !0\n                        }))\n                    }\n                };\n                le = se([re(0, ne.H)], le);\n                let ce = class {\n                    constructor(e) {\n                        this._editorService = e\n                    }\n                    open(e, t) {\n                        return ae(this, void 0, void 0, (function*() {\n                            let i;\n                            \"string\" == typeof e && (e = z.o.parse(e));\n                            const n = /^L?(\\d+)(?:,(\\d+))?/.exec(e.fragment);\n                            return n && (i = {\n                                startLineNumber: parseInt(n[1]),\n                                startColumn: n[2] ? parseInt(n[2]) : 1\n                            }, e = e.with({\n                                fragment: \"\"\n                            })), e.scheme === te.lg.file && (e = (0, ie.AH)(e)), yield this._editorService.openCodeEditor({\n                                resource: e,\n                                options: Object.assign({\n                                    selection: i,\n                                    context: (null == t ? void 0 : t.fromUserGesture) ? G.USER : G.API\n                                }, null == t ? void 0 : t.editorOptions)\n                            }, this._editorService.getFocusedCodeEditor(), null == t ? void 0 : t.openToSide), !0\n                        }))\n                    }\n                };\n                ce = se([re(0, Y.$)], ce);\n                let de = class {\n                    constructor(e, t) {\n                        this._openers = new X.S, this._validators = new X.S, this._resolvers = new X.S, this._resolvedUriTargets = new J.Y9((e => e.with({\n                            path: null,\n                            fragment: null,\n                            query: null\n                        }).toString())), this._externalOpeners = new X.S, this._defaultExternalOpener = {\n                            openExternal: e => ae(this, void 0, void 0, (function*() {\n                                return (0, oe.xn)(e, te.lg.http) || (0, oe.xn)(e, te.lg.https) ? Q.V3(e) : window.location.href = e, !0\n                            }))\n                        }, this._openers.push({\n                            open: (e, t) => ae(this, void 0, void 0, (function*() {\n                                return !!((null == t ? void 0 : t.openExternal) || (0, oe.xn)(e, te.lg.mailto) || (0, oe.xn)(e, te.lg.http) || (0, oe.xn)(e, te.lg.https)) && (yield this._doOpenExternal(e, t), !0)\n                            }))\n                        }), this._openers.push(new le(t)), this._openers.push(new ce(e))\n                    }\n                    registerOpener(e) {\n                        return {\n                            dispose: this._openers.unshift(e)\n                        }\n                    }\n                    registerValidator(e) {\n                        return {\n                            dispose: this._validators.push(e)\n                        }\n                    }\n                    registerExternalUriResolver(e) {\n                        return {\n                            dispose: this._resolvers.push(e)\n                        }\n                    }\n                    setDefaultExternalOpener(e) {\n                        this._defaultExternalOpener = e\n                    }\n                    registerExternalOpener(e) {\n                        return {\n                            dispose: this._externalOpeners.push(e)\n                        }\n                    }\n                    open(e, t) {\n                        var i;\n                        return ae(this, void 0, void 0, (function*() {\n                            const n = \"string\" == typeof e ? z.o.parse(e) : e,\n                                o = null !== (i = this._resolvedUriTargets.get(n)) && void 0 !== i ? i : e;\n                            for (const e of this._validators)\n                                if (!(yield e.shouldOpen(o))) return !1;\n                            for (const i of this._openers) {\n                                if (yield i.open(e, t)) return !0\n                            }\n                            return !1\n                        }))\n                    }\n                    resolveExternalUri(e, t) {\n                        return ae(this, void 0, void 0, (function*() {\n                            for (const i of this._resolvers) try {\n                                const n = yield i.resolveExternalUri(e, t);\n                                if (n) return this._resolvedUriTargets.has(n.resolved) || this._resolvedUriTargets.set(n.resolved, e), n\n                            } catch (e) {}\n                            throw new Error(\"Could not resolve external URI: \" + e.toString())\n                        }))\n                    }\n                    _doOpenExternal(e, t) {\n                        return ae(this, void 0, void 0, (function*() {\n                            const i = \"string\" == typeof e ? z.o.parse(e) : e;\n                            let n, o;\n                            try {\n                                n = (yield this.resolveExternalUri(i, t)).resolved\n                            } catch (e) {\n                                n = i\n                            }\n                            if (o = \"string\" == typeof e && i.toString() === n.toString() ? e : encodeURI(n.toString(!0)), null == t ? void 0 : t.allowContributedOpeners) {\n                                const e = \"string\" == typeof(null == t ? void 0 : t.allowContributedOpeners) ? null == t ? void 0 : t.allowContributedOpeners : void 0;\n                                for (const t of this._externalOpeners) {\n                                    if (yield t.openExternal(o, {\n                                            sourceUri: i,\n                                            preferredOpenerId: e\n                                        }, V.T.None)) return !0\n                                }\n                            }\n                            return this._defaultExternalOpener.openExternal(o, {\n                                sourceUri: i\n                            }, V.T.None)\n                        }))\n                    }\n                    dispose() {\n                        this._validators.clear()\n                    }\n                };\n                de = se([re(0, Y.$), re(1, ne.H)], de);\n                var he = i(35146),\n                    ue = i(5976),\n                    ge = i(36248);\n                const pe = {\n                    followsCaret: !0,\n                    ignoreCharChanges: !0,\n                    alwaysRevealFirst: !0\n                };\n                class fe extends ue.JT {\n                    constructor(e, t = {}) {\n                        super(), this._onDidUpdate = this._register(new W.Q5), this._editor = e, this._options = ge.jB(t, pe, !1), this.disposed = !1, this.nextIdx = -1, this.ranges = [], this.ignoreSelectionChange = !1, this.revealFirst = Boolean(this._options.alwaysRevealFirst), this._register(this._editor.onDidDispose((() => this.dispose()))), this._register(this._editor.onDidUpdateDiff((() => this._onDiffUpdated()))), this._options.followsCaret && this._register(this._editor.getModifiedEditor().onDidChangeCursorPosition((e => {\n                            this.ignoreSelectionChange || (this.nextIdx = -1)\n                        }))), this._options.alwaysRevealFirst && this._register(this._editor.getModifiedEditor().onDidChangeModel((e => {\n                            this.revealFirst = !0\n                        }))), this._init()\n                    }\n                    _init() {\n                        this._editor.getLineChanges()\n                    }\n                    _onDiffUpdated() {\n                        this._init(), this._compute(this._editor.getLineChanges()), this.revealFirst && null !== this._editor.getLineChanges() && (this.revealFirst = !1, this.nextIdx = -1, this.next(1))\n                    }\n                    _compute(e) {\n                        this.ranges = [], e && e.forEach((e => {\n                            !this._options.ignoreCharChanges && e.charChanges ? e.charChanges.forEach((e => {\n                                this.ranges.push({\n                                    rhs: !0,\n                                    range: new U.e(e.modifiedStartLineNumber, e.modifiedStartColumn, e.modifiedEndLineNumber, e.modifiedEndColumn)\n                                })\n                            })) : 0 === e.modifiedEndLineNumber ? this.ranges.push({\n                                rhs: !0,\n                                range: new U.e(e.modifiedStartLineNumber, 1, e.modifiedStartLineNumber + 1, 1)\n                            }) : this.ranges.push({\n                                rhs: !0,\n                                range: new U.e(e.modifiedStartLineNumber, 1, e.modifiedEndLineNumber + 1, 1)\n                            })\n                        })), this.ranges.sort(((e, t) => U.e.compareRangesUsingStarts(e.range, t.range))), this._onDidUpdate.fire(this)\n                    }\n                    _initIdx(e) {\n                        let t = !1,\n                            i = this._editor.getPosition();\n                        if (i) {\n                            for (let n = 0, o = this.ranges.length; n < o && !t; n++) {\n                                let o = this.ranges[n].range;\n                                i.isBeforeOrEqual(o.getStartPosition()) && (this.nextIdx = n + (e ? 0 : -1), t = !0)\n                            }\n                            t || (this.nextIdx = e ? 0 : this.ranges.length - 1), this.nextIdx < 0 && (this.nextIdx = this.ranges.length - 1)\n                        } else this.nextIdx = 0\n                    }\n                    _move(e, t) {\n                        if (he.ok(!this.disposed, \"Illegal State - diff navigator has been disposed\"), !this.canNavigate()) return; - 1 === this.nextIdx ? this._initIdx(e) : e ? (this.nextIdx += 1, this.nextIdx >= this.ranges.length && (this.nextIdx = 0)) : (this.nextIdx -= 1, this.nextIdx < 0 && (this.nextIdx = this.ranges.length - 1));\n                        let i = this.ranges[this.nextIdx];\n                        this.ignoreSelectionChange = !0;\n                        try {\n                            let e = i.range.getStartPosition();\n                            this._editor.setPosition(e), this._editor.revealRangeInCenter(i.range, t)\n                        } finally {\n                            this.ignoreSelectionChange = !1\n                        }\n                    }\n                    canNavigate() {\n                        return this.ranges && this.ranges.length > 0\n                    }\n                    next(e = 0) {\n                        this._move(!0, e)\n                    }\n                    previous(e = 0) {\n                        this._move(!1, e)\n                    }\n                    dispose() {\n                        super.dispose(), this.ranges = [], this.disposed = !0\n                    }\n                }\n                var me = i(27374),\n                    ve = i(96518),\n                    _e = i(84973),\n                    be = i(44101),\n                    we = i(28111),\n                    ye = i(90469),\n                    Ce = i(71531),\n                    xe = i(88216),\n                    Se = i(15393),\n                    ke = i(17301),\n                    Le = i(1432),\n                    Ne = i(98401),\n                    De = i(97295);\n                const Ie = \"$initialize\";\n                let Ee = !1;\n\n                function Te(e) {\n                    Le.$L && (Ee || (Ee = !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(e.message))\n                }\n                class Me {\n                    constructor(e, t, i, n) {\n                        this.vsWorker = e, this.req = t, this.method = i, this.args = n, this.type = 0\n                    }\n                }\n                class Ae {\n                    constructor(e, t, i, n) {\n                        this.vsWorker = e, this.seq = t, this.res = i, this.err = n, this.type = 1\n                    }\n                }\n                class Oe {\n                    constructor(e, t, i, n) {\n                        this.vsWorker = e, this.req = t, this.eventName = i, this.arg = n, this.type = 2\n                    }\n                }\n                class Pe {\n                    constructor(e, t, i) {\n                        this.vsWorker = e, this.req = t, this.event = i, this.type = 3\n                    }\n                }\n                class Re {\n                    constructor(e, t) {\n                        this.vsWorker = e, this.req = t, this.type = 4\n                    }\n                }\n                class Fe {\n                    constructor(e) {\n                        this._workerId = -1, this._handler = e, this._lastSentReq = 0, this._pendingReplies = Object.create(null), this._pendingEmitters = new Map, this._pendingEvents = new Map\n                    }\n                    setWorkerId(e) {\n                        this._workerId = e\n                    }\n                    sendMessage(e, t) {\n                        const i = String(++this._lastSentReq);\n                        return new Promise(((n, o) => {\n                            this._pendingReplies[i] = {\n                                resolve: n,\n                                reject: o\n                            }, this._send(new Me(this._workerId, i, e, t))\n                        }))\n                    }\n                    listen(e, t) {\n                        let i = null;\n                        const n = new W.Q5({\n                            onFirstListenerAdd: () => {\n                                i = String(++this._lastSentReq), this._pendingEmitters.set(i, n), this._send(new Oe(this._workerId, i, e, t))\n                            },\n                            onLastListenerRemove: () => {\n                                this._pendingEmitters.delete(i), this._send(new Re(this._workerId, i)), i = null\n                            }\n                        });\n                        return n.event\n                    }\n                    handleMessage(e) {\n                        e && e.vsWorker && (-1 !== this._workerId && e.vsWorker !== this._workerId || this._handleMessage(e))\n                    }\n                    _handleMessage(e) {\n                        switch (e.type) {\n                            case 1:\n                                return this._handleReplyMessage(e);\n                            case 0:\n                                return this._handleRequestMessage(e);\n                            case 2:\n                                return this._handleSubscribeEventMessage(e);\n                            case 3:\n                                return this._handleEventMessage(e);\n                            case 4:\n                                return this._handleUnsubscribeEventMessage(e)\n                        }\n                    }\n                    _handleReplyMessage(e) {\n                        if (!this._pendingReplies[e.seq]) return void console.warn(\"Got reply to unknown seq\");\n                        let t = this._pendingReplies[e.seq];\n                        if (delete this._pendingReplies[e.seq], e.err) {\n                            let i = e.err;\n                            return e.err.$isError && (i = new Error, i.name = e.err.name, i.message = e.err.message, i.stack = e.err.stack), void t.reject(i)\n                        }\n                        t.resolve(e.res)\n                    }\n                    _handleRequestMessage(e) {\n                        let t = e.req;\n                        this._handler.handleMessage(e.method, e.args).then((e => {\n                            this._send(new Ae(this._workerId, t, e, void 0))\n                        }), (e => {\n                            e.detail instanceof Error && (e.detail = (0, ke.ri)(e.detail)), this._send(new Ae(this._workerId, t, void 0, (0, ke.ri)(e)))\n                        }))\n                    }\n                    _handleSubscribeEventMessage(e) {\n                        const t = e.req,\n                            i = this._handler.handleEvent(e.eventName, e.arg)((e => {\n                                this._send(new Pe(this._workerId, t, e))\n                            }));\n                        this._pendingEvents.set(t, i)\n                    }\n                    _handleEventMessage(e) {\n                        this._pendingEmitters.has(e.req) ? this._pendingEmitters.get(e.req).fire(e.event) : console.warn(\"Got event for unknown req\")\n                    }\n                    _handleUnsubscribeEventMessage(e) {\n                        this._pendingEvents.has(e.req) ? (this._pendingEvents.get(e.req).dispose(), this._pendingEvents.delete(e.req)) : console.warn(\"Got unsubscribe for unknown req\")\n                    }\n                    _send(e) {\n                        let t = [];\n                        if (0 === e.type)\n                            for (let i = 0; i < e.args.length; i++) e.args[i] instanceof ArrayBuffer && t.push(e.args[i]);\n                        else 1 === e.type && e.res instanceof ArrayBuffer && t.push(e.res);\n                        this._handler.sendMessage(e, t)\n                    }\n                }\n                class Be extends ue.JT {\n                    constructor(e, t, i) {\n                        super();\n                        let n = null;\n                        this._worker = this._register(e.create(\"vs/base/common/worker/simpleWorker\", (e => {\n                            this._protocol.handleMessage(e)\n                        }), (e => {\n                            n && n(e)\n                        }))), this._protocol = new Fe({\n                            sendMessage: (e, t) => {\n                                this._worker.postMessage(e, t)\n                            },\n                            handleMessage: (e, t) => {\n                                if (\"function\" != typeof i[e]) return Promise.reject(new Error(\"Missing method \" + e + \" on main thread host.\"));\n                                try {\n                                    return Promise.resolve(i[e].apply(i, t))\n                                } catch (e) {\n                                    return Promise.reject(e)\n                                }\n                            },\n                            handleEvent: (e, t) => {\n                                if (We(e)) {\n                                    const n = i[e].call(i, t);\n                                    if (\"function\" != typeof n) throw new Error(`Missing dynamic event ${e} on main thread host.`);\n                                    return n\n                                }\n                                if (Ve(e)) {\n                                    const t = i[e];\n                                    if (\"function\" != typeof t) throw new Error(`Missing event ${e} on main thread host.`);\n                                    return t\n                                }\n                                throw new Error(`Malformed event name ${e}`)\n                            }\n                        }), this._protocol.setWorkerId(this._worker.getId());\n                        let o = null;\n                        void 0 !== Le.li.require && \"function\" == typeof Le.li.require.getConfig ? o = Le.li.require.getConfig() : void 0 !== Le.li.requirejs && (o = Le.li.requirejs.s.contexts._.config);\n                        const s = Ne.$E(i);\n                        this._onModuleLoaded = this._protocol.sendMessage(Ie, [this._worker.getId(), JSON.parse(JSON.stringify(o)), t, s]);\n                        const r = (e, t) => this._request(e, t),\n                            a = (e, t) => this._protocol.listen(e, t);\n                        this._lazyProxy = new Promise(((e, i) => {\n                            n = i, this._onModuleLoaded.then((t => {\n                                e(He(t, r, a))\n                            }), (e => {\n                                i(e), this._onError(\"Worker failed to load \" + t, e)\n                            }))\n                        }))\n                    }\n                    getProxyObject() {\n                        return this._lazyProxy\n                    }\n                    _request(e, t) {\n                        return new Promise(((i, n) => {\n                            this._onModuleLoaded.then((() => {\n                                this._protocol.sendMessage(e, t).then(i, n)\n                            }), n)\n                        }))\n                    }\n                    _onError(e, t) {\n                        console.error(e), console.info(t)\n                    }\n                }\n\n                function Ve(e) {\n                    return \"o\" === e[0] && \"n\" === e[1] && De.df(e.charCodeAt(2))\n                }\n\n                function We(e) {\n                    return /^onDynamic/.test(e) && De.df(e.charCodeAt(9))\n                }\n\n                function He(e, t, i) {\n                    const n = e => function() {\n                            const i = Array.prototype.slice.call(arguments, 0);\n                            return t(e, i)\n                        },\n                        o = e => function(t) {\n                            return i(e, t)\n                        };\n                    let s = {};\n                    for (const t of e) We(t) ? s[t] = o(t) : Ve(t) ? s[t] = i(t, void 0) : s[t] = n(t);\n                    return s\n                }\n                var ze;\n                const je = null === (ze = window.trustedTypes) || void 0 === ze ? void 0 : ze.createPolicy(\"defaultWorkerFactory\", {\n                    createScriptURL: e => e\n                });\n                class Ue {\n                    constructor(e, t, i, n, o) {\n                        this.id = t;\n                        const s = function(e, t) {\n                            if (Le.li.MonacoEnvironment) {\n                                if (\"function\" == typeof Le.li.MonacoEnvironment.getWorker) return Le.li.MonacoEnvironment.getWorker(e, t);\n                                if (\"function\" == typeof Le.li.MonacoEnvironment.getWorkerUrl) {\n                                    const i = Le.li.MonacoEnvironment.getWorkerUrl(e, t);\n                                    return new Worker(je ? je.createScriptURL(i) : i, {\n                                        name: t\n                                    })\n                                }\n                            }\n                            throw new Error(\"You must define a function MonacoEnvironment.getWorkerUrl or MonacoEnvironment.getWorker\")\n                        }(\"workerMain.js\", i);\n                        \"function\" == typeof s.then ? this.worker = s : this.worker = Promise.resolve(s), this.postMessage(e, []), this.worker.then((e => {\n                            e.onmessage = function(e) {\n                                n(e.data)\n                            }, e.onmessageerror = o, \"function\" == typeof e.addEventListener && e.addEventListener(\"error\", o)\n                        }))\n                    }\n                    getId() {\n                        return this.id\n                    }\n                    postMessage(e, t) {\n                        this.worker && this.worker.then((i => i.postMessage(e, t)))\n                    }\n                    dispose() {\n                        this.worker && this.worker.then((e => e.terminate())), this.worker = null\n                    }\n                }\n                class $e {\n                    constructor(e) {\n                        this._label = e, this._webWorkerFailedBeforeError = !1\n                    }\n                    create(e, t, i) {\n                        let n = ++$e.LAST_WORKER_ID;\n                        if (this._webWorkerFailedBeforeError) throw this._webWorkerFailedBeforeError;\n                        return new Ue(e, n, this._label || \"anonymous\" + n, t, (e => {\n                            Te(e), this._webWorkerFailedBeforeError = e, i(e)\n                        }))\n                    }\n                }\n                $e.LAST_WORKER_ID = 0;\n                var Ke = i(83831),\n                    qe = i(2484);\n\n                function Ze(e, t, i, n) {\n                    return new qe.Hs(e, t, i).ComputeDiff(n)\n                }\n                class Ge {\n                    constructor(e) {\n                        const t = [],\n                            i = [];\n                        for (let n = 0, o = e.length; n < o; n++) t[n] = et(e[n], 1), i[n] = tt(e[n], 1);\n                        this.lines = e, this._startColumns = t, this._endColumns = i\n                    }\n                    getElements() {\n                        const e = [];\n                        for (let t = 0, i = this.lines.length; t < i; t++) e[t] = this.lines[t].substring(this._startColumns[t] - 1, this._endColumns[t] - 1);\n                        return e\n                    }\n                    getStrictElement(e) {\n                        return this.lines[e]\n                    }\n                    getStartLineNumber(e) {\n                        return e + 1\n                    }\n                    getEndLineNumber(e) {\n                        return e + 1\n                    }\n                    createCharSequence(e, t, i) {\n                        const n = [],\n                            o = [],\n                            s = [];\n                        let r = 0;\n                        for (let a = t; a <= i; a++) {\n                            const t = this.lines[a],\n                                i = e ? this._startColumns[a] : 1,\n                                l = e ? this._endColumns[a] : t.length + 1;\n                            for (let e = i; e < l; e++) n[r] = t.charCodeAt(e - 1), o[r] = a + 1, s[r] = e, r++\n                        }\n                        return new Ye(n, o, s)\n                    }\n                }\n                class Ye {\n                    constructor(e, t, i) {\n                        this._charCodes = e, this._lineNumbers = t, this._columns = i\n                    }\n                    getElements() {\n                        return this._charCodes\n                    }\n                    getStartLineNumber(e) {\n                        return this._lineNumbers[e]\n                    }\n                    getStartColumn(e) {\n                        return this._columns[e]\n                    }\n                    getEndLineNumber(e) {\n                        return this._lineNumbers[e]\n                    }\n                    getEndColumn(e) {\n                        return this._columns[e] + 1\n                    }\n                }\n                class Qe {\n                    constructor(e, t, i, n, o, s, r, a) {\n                        this.originalStartLineNumber = e, this.originalStartColumn = t, this.originalEndLineNumber = i, this.originalEndColumn = n, this.modifiedStartLineNumber = o, this.modifiedStartColumn = s, this.modifiedEndLineNumber = r, this.modifiedEndColumn = a\n                    }\n                    static createFromDiffChange(e, t, i) {\n                        let n, o, s, r, a, l, c, d;\n                        return 0 === e.originalLength ? (n = 0, o = 0, s = 0, r = 0) : (n = t.getStartLineNumber(e.originalStart), o = t.getStartColumn(e.originalStart), s = t.getEndLineNumber(e.originalStart + e.originalLength - 1), r = t.getEndColumn(e.originalStart + e.originalLength - 1)), 0 === e.modifiedLength ? (a = 0, l = 0, c = 0, d = 0) : (a = i.getStartLineNumber(e.modifiedStart), l = i.getStartColumn(e.modifiedStart), c = i.getEndLineNumber(e.modifiedStart + e.modifiedLength - 1), d = i.getEndColumn(e.modifiedStart + e.modifiedLength - 1)), new Qe(n, o, s, r, a, l, c, d)\n                    }\n                }\n                class Xe {\n                    constructor(e, t, i, n, o) {\n                        this.originalStartLineNumber = e, this.originalEndLineNumber = t, this.modifiedStartLineNumber = i, this.modifiedEndLineNumber = n, this.charChanges = o\n                    }\n                    static createFromDiffResult(e, t, i, n, o, s, r) {\n                        let a, l, c, d, h;\n                        if (0 === t.originalLength ? (a = i.getStartLineNumber(t.originalStart) - 1, l = 0) : (a = i.getStartLineNumber(t.originalStart), l = i.getEndLineNumber(t.originalStart + t.originalLength - 1)), 0 === t.modifiedLength ? (c = n.getStartLineNumber(t.modifiedStart) - 1, d = 0) : (c = n.getStartLineNumber(t.modifiedStart), d = n.getEndLineNumber(t.modifiedStart + t.modifiedLength - 1)), s && t.originalLength > 0 && t.originalLength < 20 && t.modifiedLength > 0 && t.modifiedLength < 20 && o()) {\n                            const s = i.createCharSequence(e, t.originalStart, t.originalStart + t.originalLength - 1),\n                                a = n.createCharSequence(e, t.modifiedStart, t.modifiedStart + t.modifiedLength - 1);\n                            let l = Ze(s, a, o, !0).changes;\n                            r && (l = function(e) {\n                                if (e.length <= 1) return e;\n                                const t = [e[0]];\n                                let i = t[0];\n                                for (let n = 1, o = e.length; n < o; n++) {\n                                    const o = e[n],\n                                        s = o.originalStart - (i.originalStart + i.originalLength),\n                                        r = o.modifiedStart - (i.modifiedStart + i.modifiedLength);\n                                    Math.min(s, r) < 3 ? (i.originalLength = o.originalStart + o.originalLength - i.originalStart, i.modifiedLength = o.modifiedStart + o.modifiedLength - i.modifiedStart) : (t.push(o), i = o)\n                                }\n                                return t\n                            }(l)), h = [];\n                            for (let e = 0, t = l.length; e < t; e++) h.push(Qe.createFromDiffChange(l[e], s, a))\n                        }\n                        return new Xe(a, l, c, d, h)\n                    }\n                }\n                class Je {\n                    constructor(e, t, i) {\n                        this.shouldComputeCharChanges = i.shouldComputeCharChanges, this.shouldPostProcessCharChanges = i.shouldPostProcessCharChanges, this.shouldIgnoreTrimWhitespace = i.shouldIgnoreTrimWhitespace, this.shouldMakePrettyDiff = i.shouldMakePrettyDiff, this.originalLines = e, this.modifiedLines = t, this.original = new Ge(e), this.modified = new Ge(t), this.continueLineDiff = it(i.maxComputationTime), this.continueCharDiff = it(0 === i.maxComputationTime ? 0 : Math.min(i.maxComputationTime, 5e3))\n                    }\n                    computeDiff() {\n                        if (1 === this.original.lines.length && 0 === this.original.lines[0].length) return 1 === this.modified.lines.length && 0 === this.modified.lines[0].length ? {\n                            quitEarly: !1,\n                            changes: []\n                        } : {\n                            quitEarly: !1,\n                            changes: [{\n                                originalStartLineNumber: 1,\n                                originalEndLineNumber: 1,\n                                modifiedStartLineNumber: 1,\n                                modifiedEndLineNumber: this.modified.lines.length,\n                                charChanges: [{\n                                    modifiedEndColumn: 0,\n                                    modifiedEndLineNumber: 0,\n                                    modifiedStartColumn: 0,\n                                    modifiedStartLineNumber: 0,\n                                    originalEndColumn: 0,\n                                    originalEndLineNumber: 0,\n                                    originalStartColumn: 0,\n                                    originalStartLineNumber: 0\n                                }]\n                            }]\n                        };\n                        if (1 === this.modified.lines.length && 0 === this.modified.lines[0].length) return {\n                            quitEarly: !1,\n                            changes: [{\n                                originalStartLineNumber: 1,\n                                originalEndLineNumber: this.original.lines.length,\n                                modifiedStartLineNumber: 1,\n                                modifiedEndLineNumber: 1,\n                                charChanges: [{\n                                    modifiedEndColumn: 0,\n                                    modifiedEndLineNumber: 0,\n                                    modifiedStartColumn: 0,\n                                    modifiedStartLineNumber: 0,\n                                    originalEndColumn: 0,\n                                    originalEndLineNumber: 0,\n                                    originalStartColumn: 0,\n                                    originalStartLineNumber: 0\n                                }]\n                            }]\n                        };\n                        const e = Ze(this.original, this.modified, this.continueLineDiff, this.shouldMakePrettyDiff),\n                            t = e.changes,\n                            i = e.quitEarly;\n                        if (this.shouldIgnoreTrimWhitespace) {\n                            const e = [];\n                            for (let i = 0, n = t.length; i < n; i++) e.push(Xe.createFromDiffResult(this.shouldIgnoreTrimWhitespace, t[i], this.original, this.modified, this.continueCharDiff, this.shouldComputeCharChanges, this.shouldPostProcessCharChanges));\n                            return {\n                                quitEarly: i,\n                                changes: e\n                            }\n                        }\n                        const n = [];\n                        let o = 0,\n                            s = 0;\n                        for (let e = -1, i = t.length; e < i; e++) {\n                            const r = e + 1 < i ? t[e + 1] : null,\n                                a = r ? r.originalStart : this.originalLines.length,\n                                l = r ? r.modifiedStart : this.modifiedLines.length;\n                            for (; o < a && s < l;) {\n                                const e = this.originalLines[o],\n                                    t = this.modifiedLines[s];\n                                if (e !== t) {\n                                    {\n                                        let i = et(e, 1),\n                                            r = et(t, 1);\n                                        for (; i > 1 && r > 1;) {\n                                            if (e.charCodeAt(i - 2) !== t.charCodeAt(r - 2)) break;\n                                            i--, r--\n                                        }(i > 1 || r > 1) && this._pushTrimWhitespaceCharChange(n, o + 1, 1, i, s + 1, 1, r)\n                                    } {\n                                        let i = tt(e, 1),\n                                            r = tt(t, 1);\n                                        const a = e.length + 1,\n                                            l = t.length + 1;\n                                        for (; i < a && r < l;) {\n                                            if (e.charCodeAt(i - 1) !== e.charCodeAt(r - 1)) break;\n                                            i++, r++\n                                        }(i < a || r < l) && this._pushTrimWhitespaceCharChange(n, o + 1, i, a, s + 1, r, l)\n                                    }\n                                }\n                                o++, s++\n                            }\n                            r && (n.push(Xe.createFromDiffResult(this.shouldIgnoreTrimWhitespace, r, this.original, this.modified, this.continueCharDiff, this.shouldComputeCharChanges, this.shouldPostProcessCharChanges)), o += r.originalLength, s += r.modifiedLength)\n                        }\n                        return {\n                            quitEarly: i,\n                            changes: n\n                        }\n                    }\n                    _pushTrimWhitespaceCharChange(e, t, i, n, o, s, r) {\n                        if (this._mergeTrimWhitespaceCharChange(e, t, i, n, o, s, r)) return;\n                        let a;\n                        this.shouldComputeCharChanges && (a = [new Qe(t, i, t, n, o, s, o, r)]), e.push(new Xe(t, t, o, o, a))\n                    }\n                    _mergeTrimWhitespaceCharChange(e, t, i, n, o, s, r) {\n                        const a = e.length;\n                        if (0 === a) return !1;\n                        const l = e[a - 1];\n                        return 0 !== l.originalEndLineNumber && 0 !== l.modifiedEndLineNumber && (l.originalEndLineNumber + 1 === t && l.modifiedEndLineNumber + 1 === o && (l.originalEndLineNumber = t, l.modifiedEndLineNumber = o, this.shouldComputeCharChanges && l.charChanges && l.charChanges.push(new Qe(t, i, t, n, o, s, o, r)), !0))\n                    }\n                }\n\n                function et(e, t) {\n                    const i = De.LC(e);\n                    return -1 === i ? t : i + 1\n                }\n\n                function tt(e, t) {\n                    const i = De.ow(e);\n                    return -1 === i ? t : i + 2\n                }\n\n                function it(e) {\n                    if (0 === e) return () => !0;\n                    const t = Date.now();\n                    return () => Date.now() - t < e\n                }\n                var nt = i(3544);\n                class ot {\n                    constructor(e, t, i, n) {\n                        this._uri = e, this._lines = t, this._eol = i, this._versionId = n, this._lineStarts = null, this._cachedTextValue = null\n                    }\n                    dispose() {\n                        this._lines.length = 0\n                    }\n                    get version() {\n                        return this._versionId\n                    }\n                    getText() {\n                        return null === this._cachedTextValue && (this._cachedTextValue = this._lines.join(this._eol)), this._cachedTextValue\n                    }\n                    onEvents(e) {\n                        e.eol && e.eol !== this._eol && (this._eol = e.eol, this._lineStarts = null);\n                        const t = e.changes;\n                        for (const e of t) this._acceptDeleteRange(e.range), this._acceptInsertText(new j.L(e.range.startLineNumber, e.range.startColumn), e.text);\n                        this._versionId = e.versionId, this._cachedTextValue = null\n                    }\n                    _ensureLineStarts() {\n                        if (!this._lineStarts) {\n                            const e = this._eol.length,\n                                t = this._lines.length,\n                                i = new Uint32Array(t);\n                            for (let n = 0; n < t; n++) i[n] = this._lines[n].length + e;\n                            this._lineStarts = new nt.o(i)\n                        }\n                    }\n                    _setLineText(e, t) {\n                        this._lines[e] = t, this._lineStarts && this._lineStarts.changeValue(e, this._lines[e].length + this._eol.length)\n                    }\n                    _acceptDeleteRange(e) {\n                        if (e.startLineNumber !== e.endLineNumber) this._setLineText(e.startLineNumber - 1, this._lines[e.startLineNumber - 1].substring(0, e.startColumn - 1) + this._lines[e.endLineNumber - 1].substring(e.endColumn - 1)), this._lines.splice(e.startLineNumber, e.endLineNumber - e.startLineNumber), this._lineStarts && this._lineStarts.removeValues(e.startLineNumber, e.endLineNumber - e.startLineNumber);\n                        else {\n                            if (e.startColumn === e.endColumn) return;\n                            this._setLineText(e.startLineNumber - 1, this._lines[e.startLineNumber - 1].substring(0, e.startColumn - 1) + this._lines[e.startLineNumber - 1].substring(e.endColumn - 1))\n                        }\n                    }\n                    _acceptInsertText(e, t) {\n                        if (0 === t.length) return;\n                        let i = (0, De.uq)(t);\n                        if (1 === i.length) return void this._setLineText(e.lineNumber - 1, this._lines[e.lineNumber - 1].substring(0, e.column - 1) + i[0] + this._lines[e.lineNumber - 1].substring(e.column - 1));\n                        i[i.length - 1] += this._lines[e.lineNumber - 1].substring(e.column - 1), this._setLineText(e.lineNumber - 1, this._lines[e.lineNumber - 1].substring(0, e.column - 1) + i[0]);\n                        let n = new Uint32Array(i.length - 1);\n                        for (let t = 1; t < i.length; t++) this._lines.splice(e.lineNumber + t - 1, 0, i[t]), n[t - 1] = i[t].length + this._eol.length;\n                        this._lineStarts && this._lineStarts.insertValues(e.lineNumber, n)\n                    }\n                }\n                var st = i(97461),\n                    rt = i(44906);\n                class at {\n                    constructor(e, t, i) {\n                        const n = new Uint8Array(e * t);\n                        for (let o = 0, s = e * t; o < s; o++) n[o] = i;\n                        this._data = n, this.rows = e, this.cols = t\n                    }\n                    get(e, t) {\n                        return this._data[e * this.cols + t]\n                    }\n                    set(e, t, i) {\n                        this._data[e * this.cols + t] = i\n                    }\n                }\n                class lt {\n                    constructor(e) {\n                        let t = 0,\n                            i = 0;\n                        for (let n = 0, o = e.length; n < o; n++) {\n                            let [o, s, r] = e[n];\n                            s > t && (t = s), o > i && (i = o), r > i && (i = r)\n                        }\n                        t++, i++;\n                        let n = new at(i, t, 0);\n                        for (let t = 0, i = e.length; t < i; t++) {\n                            let [i, o, s] = e[t];\n                            n.set(i, o, s)\n                        }\n                        this._states = n, this._maxCharCode = t\n                    }\n                    nextState(e, t) {\n                        return t < 0 || t >= this._maxCharCode ? 0 : this._states.get(e, t)\n                    }\n                }\n                let ct = null;\n                let dt = null;\n                class ht {\n                    static _createLink(e, t, i, n, o) {\n                        let s = o - 1;\n                        do {\n                            const i = t.charCodeAt(s);\n                            if (2 !== e.get(i)) break;\n                            s--\n                        } while (s > n);\n                        if (n > 0) {\n                            const e = t.charCodeAt(n - 1),\n                                i = t.charCodeAt(s);\n                            (40 === e && 41 === i || 91 === e && 93 === i || 123 === e && 125 === i) && s--\n                        }\n                        return {\n                            range: {\n                                startLineNumber: i,\n                                startColumn: n + 1,\n                                endLineNumber: i,\n                                endColumn: s + 2\n                            },\n                            url: t.substring(n, s + 1)\n                        }\n                    }\n                    static computeLinks(e, t = function() {\n                        return null === ct && (ct = new lt([\n                            [1, 104, 2],\n                            [1, 72, 2],\n                            [1, 102, 6],\n                            [1, 70, 6],\n                            [2, 116, 3],\n                            [2, 84, 3],\n                            [3, 116, 4],\n                            [3, 84, 4],\n                            [4, 112, 5],\n                            [4, 80, 5],\n                            [5, 115, 9],\n                            [5, 83, 9],\n                            [5, 58, 10],\n                            [6, 105, 7],\n                            [6, 73, 7],\n                            [7, 108, 8],\n                            [7, 76, 8],\n                            [8, 101, 9],\n                            [8, 69, 9],\n                            [9, 58, 10],\n                            [10, 47, 11],\n                            [11, 47, 12]\n                        ])), ct\n                    }()) {\n                        const i = function() {\n                            if (null === dt) {\n                                dt = new rt.N(0);\n                                const e = \" \\t<>'\\\"、。｡､，．：；‘〈「『〔（［｛｢｣｝］）〕』」〉’｀～…\";\n                                for (let t = 0; t < e.length; t++) dt.set(e.charCodeAt(t), 1);\n                                const t = \".,;\";\n                                for (let e = 0; e < t.length; e++) dt.set(t.charCodeAt(e), 2)\n                            }\n                            return dt\n                        }();\n                        let n = [];\n                        for (let o = 1, s = e.getLineCount(); o <= s; o++) {\n                            const s = e.getLineContent(o),\n                                r = s.length;\n                            let a = 0,\n                                l = 0,\n                                c = 0,\n                                d = 1,\n                                h = !1,\n                                u = !1,\n                                g = !1,\n                                p = !1;\n                            for (; a < r;) {\n                                let e = !1;\n                                const r = s.charCodeAt(a);\n                                if (13 === d) {\n                                    let t;\n                                    switch (r) {\n                                        case 40:\n                                            h = !0, t = 0;\n                                            break;\n                                        case 41:\n                                            t = h ? 0 : 1;\n                                            break;\n                                        case 91:\n                                            g = !0, u = !0, t = 0;\n                                            break;\n                                        case 93:\n                                            g = !1, t = u ? 0 : 1;\n                                            break;\n                                        case 123:\n                                            p = !0, t = 0;\n                                            break;\n                                        case 125:\n                                            t = p ? 0 : 1;\n                                            break;\n                                        case 39:\n                                            t = 34 === c || 96 === c ? 0 : 1;\n                                            break;\n                                        case 34:\n                                            t = 39 === c || 96 === c ? 0 : 1;\n                                            break;\n                                        case 96:\n                                            t = 39 === c || 34 === c ? 0 : 1;\n                                            break;\n                                        case 42:\n                                            t = 42 === c ? 1 : 0;\n                                            break;\n                                        case 124:\n                                            t = 124 === c ? 1 : 0;\n                                            break;\n                                        case 32:\n                                            t = g ? 0 : 1;\n                                            break;\n                                        default:\n                                            t = i.get(r)\n                                    }\n                                    1 === t && (n.push(ht._createLink(i, s, o, l, a)), e = !0)\n                                } else if (12 === d) {\n                                    let t;\n                                    91 === r ? (u = !0, t = 0) : t = i.get(r), 1 === t ? e = !0 : d = 13\n                                } else d = t.nextState(d, r), 0 === d && (e = !0);\n                                e && (d = 1, h = !1, u = !1, p = !1, l = a + 1, c = r), a++\n                            }\n                            13 === d && n.push(ht._createLink(i, s, o, l, r))\n                        }\n                        return n\n                    }\n                }\n                class ut {\n                    constructor() {\n                        this._defaultValueSet = [\n                            [\"true\", \"false\"],\n                            [\"True\", \"False\"],\n                            [\"Private\", \"Public\", \"Friend\", \"ReadOnly\", \"Partial\", \"Protected\", \"WriteOnly\"],\n                            [\"public\", \"protected\", \"private\"]\n                        ]\n                    }\n                    navigateValueSet(e, t, i, n, o) {\n                        if (e && t) {\n                            let i = this.doNavigateValueSet(t, o);\n                            if (i) return {\n                                range: e,\n                                value: i\n                            }\n                        }\n                        if (i && n) {\n                            let e = this.doNavigateValueSet(n, o);\n                            if (e) return {\n                                range: i,\n                                value: e\n                            }\n                        }\n                        return null\n                    }\n                    doNavigateValueSet(e, t) {\n                        let i = this.numberReplace(e, t);\n                        return null !== i ? i : this.textReplace(e, t)\n                    }\n                    numberReplace(e, t) {\n                        let i = Math.pow(10, e.length - (e.lastIndexOf(\".\") + 1)),\n                            n = Number(e),\n                            o = parseFloat(e);\n                        return isNaN(n) || isNaN(o) || n !== o ? null : 0 !== n || t ? (n = Math.floor(n * i), n += t ? i : -i, String(n / i)) : null\n                    }\n                    textReplace(e, t) {\n                        return this.valueSetsReplace(this._defaultValueSet, e, t)\n                    }\n                    valueSetsReplace(e, t, i) {\n                        let n = null;\n                        for (let o = 0, s = e.length; null === n && o < s; o++) n = this.valueSetReplace(e[o], t, i);\n                        return n\n                    }\n                    valueSetReplace(e, t, i) {\n                        let n = e.indexOf(t);\n                        return n >= 0 ? (n += i ? 1 : -1, n < 0 ? n = e.length - 1 : n %= e.length, e[n]) : null\n                    }\n                }\n                ut.INSTANCE = new ut;\n                var gt = i(84013),\n                    pt = function(e, t, i, n) {\n                        return new(i || (i = Promise))((function(o, s) {\n                            function r(e) {\n                                try {\n                                    l(n.next(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function a(e) {\n                                try {\n                                    l(n.throw(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function l(e) {\n                                var t;\n                                e.done ? o(e.value) : (t = e.value, t instanceof i ? t : new i((function(e) {\n                                    e(t)\n                                }))).then(r, a)\n                            }\n                            l((n = n.apply(e, t || [])).next())\n                        }))\n                    };\n                class ft extends ot {\n                    get uri() {\n                        return this._uri\n                    }\n                    get eol() {\n                        return this._eol\n                    }\n                    getValue() {\n                        return this.getText()\n                    }\n                    getLinesContent() {\n                        return this._lines.slice(0)\n                    }\n                    getLineCount() {\n                        return this._lines.length\n                    }\n                    getLineContent(e) {\n                        return this._lines[e - 1]\n                    }\n                    getWordAtPosition(e, t) {\n                        let i = (0, st.t2)(e.column, (0, st.eq)(t), this._lines[e.lineNumber - 1], 0);\n                        return i ? new U.e(e.lineNumber, i.startColumn, e.lineNumber, i.endColumn) : null\n                    }\n                    words(e) {\n                        const t = this._lines,\n                            i = this._wordenize.bind(this);\n                        let n = 0,\n                            o = \"\",\n                            s = 0,\n                            r = [];\n                        return {\n                            *[Symbol.iterator]() {\n                                for (;;)\n                                    if (s < r.length) {\n                                        const e = o.substring(r[s].start, r[s].end);\n                                        s += 1, yield e\n                                    } else {\n                                        if (!(n < t.length)) break;\n                                        o = t[n], r = i(o, e), s = 0, n += 1\n                                    }\n                            }\n                        }\n                    }\n                    getLineWords(e, t) {\n                        let i = this._lines[e - 1],\n                            n = this._wordenize(i, t),\n                            o = [];\n                        for (const e of n) o.push({\n                            word: i.substring(e.start, e.end),\n                            startColumn: e.start + 1,\n                            endColumn: e.end + 1\n                        });\n                        return o\n                    }\n                    _wordenize(e, t) {\n                        const i = [];\n                        let n;\n                        for (t.lastIndex = 0;\n                            (n = t.exec(e)) && 0 !== n[0].length;) i.push({\n                            start: n.index,\n                            end: n.index + n[0].length\n                        });\n                        return i\n                    }\n                    getValueInRange(e) {\n                        if ((e = this._validateRange(e)).startLineNumber === e.endLineNumber) return this._lines[e.startLineNumber - 1].substring(e.startColumn - 1, e.endColumn - 1);\n                        let t = this._eol,\n                            i = e.startLineNumber - 1,\n                            n = e.endLineNumber - 1,\n                            o = [];\n                        o.push(this._lines[i].substring(e.startColumn - 1));\n                        for (let e = i + 1; e < n; e++) o.push(this._lines[e]);\n                        return o.push(this._lines[n].substring(0, e.endColumn - 1)), o.join(t)\n                    }\n                    offsetAt(e) {\n                        return e = this._validatePosition(e), this._ensureLineStarts(), this._lineStarts.getPrefixSum(e.lineNumber - 2) + (e.column - 1)\n                    }\n                    positionAt(e) {\n                        e = Math.floor(e), e = Math.max(0, e), this._ensureLineStarts();\n                        let t = this._lineStarts.getIndexOf(e),\n                            i = this._lines[t.index].length;\n                        return {\n                            lineNumber: 1 + t.index,\n                            column: 1 + Math.min(t.remainder, i)\n                        }\n                    }\n                    _validateRange(e) {\n                        const t = this._validatePosition({\n                                lineNumber: e.startLineNumber,\n                                column: e.startColumn\n                            }),\n                            i = this._validatePosition({\n                                lineNumber: e.endLineNumber,\n                                column: e.endColumn\n                            });\n                        return t.lineNumber !== e.startLineNumber || t.column !== e.startColumn || i.lineNumber !== e.endLineNumber || i.column !== e.endColumn ? {\n                            startLineNumber: t.lineNumber,\n                            startColumn: t.column,\n                            endLineNumber: i.lineNumber,\n                            endColumn: i.column\n                        } : e\n                    }\n                    _validatePosition(e) {\n                        if (!j.L.isIPosition(e)) throw new Error(\"bad position\");\n                        let {\n                            lineNumber: t,\n                            column: i\n                        } = e, n = !1;\n                        if (t < 1) t = 1, i = 1, n = !0;\n                        else if (t > this._lines.length) t = this._lines.length, i = this._lines[t - 1].length + 1, n = !0;\n                        else {\n                            let e = this._lines[t - 1].length + 1;\n                            i < 1 ? (i = 1, n = !0) : i > e && (i = e, n = !0)\n                        }\n                        return n ? {\n                            lineNumber: t,\n                            column: i\n                        } : e\n                    }\n                }\n                class mt {\n                    constructor(e, t) {\n                        this._host = e, this._models = Object.create(null), this._foreignModuleFactory = t, this._foreignModule = null\n                    }\n                    dispose() {\n                        this._models = Object.create(null)\n                    }\n                    _getModel(e) {\n                        return this._models[e]\n                    }\n                    _getModels() {\n                        let e = [];\n                        return Object.keys(this._models).forEach((t => e.push(this._models[t]))), e\n                    }\n                    acceptNewModel(e) {\n                        this._models[e.url] = new ft(z.o.parse(e.url), e.lines, e.EOL, e.versionId)\n                    }\n                    acceptModelChanged(e, t) {\n                        if (!this._models[e]) return;\n                        this._models[e].onEvents(t)\n                    }\n                    acceptRemovedModel(e) {\n                        this._models[e] && delete this._models[e]\n                    }\n                    computeDiff(e, t, i, n) {\n                        return pt(this, void 0, void 0, (function*() {\n                            const o = this._getModel(e),\n                                s = this._getModel(t);\n                            if (!o || !s) return null;\n                            const r = o.getLinesContent(),\n                                a = s.getLinesContent(),\n                                l = new Je(r, a, {\n                                    shouldComputeCharChanges: !0,\n                                    shouldPostProcessCharChanges: !0,\n                                    shouldIgnoreTrimWhitespace: i,\n                                    shouldMakePrettyDiff: !0,\n                                    maxComputationTime: n\n                                }).computeDiff(),\n                                c = !(l.changes.length > 0) && this._modelsAreIdentical(o, s);\n                            return {\n                                quitEarly: l.quitEarly,\n                                identical: c,\n                                changes: l.changes\n                            }\n                        }))\n                    }\n                    _modelsAreIdentical(e, t) {\n                        const i = e.getLineCount();\n                        if (i !== t.getLineCount()) return !1;\n                        for (let n = 1; n <= i; n++) {\n                            if (e.getLineContent(n) !== t.getLineContent(n)) return !1\n                        }\n                        return !0\n                    }\n                    computeMoreMinimalEdits(e, t) {\n                        return pt(this, void 0, void 0, (function*() {\n                            const i = this._getModel(e);\n                            if (!i) return t;\n                            const n = [];\n                            let o;\n                            t = t.slice(0).sort(((e, t) => {\n                                if (e.range && t.range) return U.e.compareRangesUsingStarts(e.range, t.range);\n                                return (e.range ? 0 : 1) - (t.range ? 0 : 1)\n                            }));\n                            for (let {\n                                    range: e,\n                                    text: s,\n                                    eol: r\n                                } of t) {\n                                if (\"number\" == typeof r && (o = r), U.e.isEmpty(e) && !s) continue;\n                                const t = i.getValueInRange(e);\n                                if (s = s.replace(/\\r\\n|\\n|\\r/g, i.eol), t === s) continue;\n                                if (Math.max(s.length, t.length) > mt._diffLimit) {\n                                    n.push({\n                                        range: e,\n                                        text: s\n                                    });\n                                    continue\n                                }\n                                const a = (0, qe.a$)(t, s, !1),\n                                    l = i.offsetAt(U.e.lift(e).getStartPosition());\n                                for (const e of a) {\n                                    const t = i.positionAt(l + e.originalStart),\n                                        o = i.positionAt(l + e.originalStart + e.originalLength),\n                                        r = {\n                                            text: s.substr(e.modifiedStart, e.modifiedLength),\n                                            range: {\n                                                startLineNumber: t.lineNumber,\n                                                startColumn: t.column,\n                                                endLineNumber: o.lineNumber,\n                                                endColumn: o.column\n                                            }\n                                        };\n                                    i.getValueInRange(r.range) !== r.text && n.push(r)\n                                }\n                            }\n                            return \"number\" == typeof o && n.push({\n                                eol: o,\n                                text: \"\",\n                                range: {\n                                    startLineNumber: 0,\n                                    startColumn: 0,\n                                    endLineNumber: 0,\n                                    endColumn: 0\n                                }\n                            }), n\n                        }))\n                    }\n                    computeLinks(e) {\n                        return pt(this, void 0, void 0, (function*() {\n                            let t = this._getModel(e);\n                            return t ? function(e) {\n                                return e && \"function\" == typeof e.getLineCount && \"function\" == typeof e.getLineContent ? ht.computeLinks(e) : []\n                            }(t) : null\n                        }))\n                    }\n                    textualSuggest(e, t, i, n) {\n                        return pt(this, void 0, void 0, (function*() {\n                            const o = new gt.G(!0),\n                                s = new RegExp(i, n),\n                                r = new Set;\n                            e: for (let i of e) {\n                                const e = this._getModel(i);\n                                if (e)\n                                    for (let i of e.words(s))\n                                        if (i !== t && isNaN(Number(i)) && (r.add(i), r.size > mt._suggestionsLimit)) break e\n                            }\n                            return {\n                                words: Array.from(r),\n                                duration: o.elapsed()\n                            }\n                        }))\n                    }\n                    computeWordRanges(e, t, i, n) {\n                        return pt(this, void 0, void 0, (function*() {\n                            let o = this._getModel(e);\n                            if (!o) return Object.create(null);\n                            const s = new RegExp(i, n),\n                                r = Object.create(null);\n                            for (let e = t.startLineNumber; e < t.endLineNumber; e++) {\n                                let t = o.getLineWords(e, s);\n                                for (const i of t) {\n                                    if (!isNaN(Number(i.word))) continue;\n                                    let t = r[i.word];\n                                    t || (t = [], r[i.word] = t), t.push({\n                                        startLineNumber: e,\n                                        startColumn: i.startColumn,\n                                        endLineNumber: e,\n                                        endColumn: i.endColumn\n                                    })\n                                }\n                            }\n                            return r\n                        }))\n                    }\n                    navigateValueSet(e, t, i, n, o) {\n                        return pt(this, void 0, void 0, (function*() {\n                            let s = this._getModel(e);\n                            if (!s) return null;\n                            let r = new RegExp(n, o);\n                            t.startColumn === t.endColumn && (t = {\n                                startLineNumber: t.startLineNumber,\n                                startColumn: t.startColumn,\n                                endLineNumber: t.endLineNumber,\n                                endColumn: t.endColumn + 1\n                            });\n                            let a = s.getValueInRange(t),\n                                l = s.getWordAtPosition({\n                                    lineNumber: t.startLineNumber,\n                                    column: t.startColumn\n                                }, r);\n                            if (!l) return null;\n                            let c = s.getValueInRange(l);\n                            return ut.INSTANCE.navigateValueSet(t, a, l, c, i)\n                        }))\n                    }\n                    loadForeignModule(e, t, i) {\n                        let n = {\n                            host: Ne.IU(i, ((e, t) => this._host.fhr(e, t))),\n                            getMirrorModels: () => this._getModels()\n                        };\n                        return this._foreignModuleFactory ? (this._foreignModule = this._foreignModuleFactory(n, t), Promise.resolve(Ne.$E(this._foreignModule))) : Promise.reject(new Error(\"Unexpected usage\"))\n                    }\n                    fmr(e, t) {\n                        if (!this._foreignModule || \"function\" != typeof this._foreignModule[e]) return Promise.reject(new Error(\"Missing requestHandler or method: \" + e));\n                        try {\n                            return Promise.resolve(this._foreignModule[e].apply(this._foreignModule, t))\n                        } catch (e) {\n                            return Promise.reject(e)\n                        }\n                    }\n                }\n                mt._diffLimit = 1e5, mt._suggestionsLimit = 1e4, \"function\" == typeof importScripts && (Le.li.monaco = Z());\n                var vt = i(51200),\n                    _t = i(33187),\n                    bt = i(9488),\n                    wt = i(43557),\n                    yt = function(e, t, i, n) {\n                        var o, s = arguments.length,\n                            r = s < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n                        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) r = Reflect.decorate(e, t, i, n);\n                        else\n                            for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (r = (s < 3 ? o(r) : s > 3 ? o(t, i, r) : o(t, i)) || r);\n                        return s > 3 && r && Object.defineProperty(t, i, r), r\n                    },\n                    Ct = function(e, t) {\n                        return function(i, n) {\n                            t(i, n, e)\n                        }\n                    },\n                    xt = function(e, t, i, n) {\n                        return new(i || (i = Promise))((function(o, s) {\n                            function r(e) {\n                                try {\n                                    l(n.next(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function a(e) {\n                                try {\n                                    l(n.throw(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function l(e) {\n                                var t;\n                                e.done ? o(e.value) : (t = e.value, t instanceof i ? t : new i((function(e) {\n                                    e(t)\n                                }))).then(r, a)\n                            }\n                            l((n = n.apply(e, t || [])).next())\n                        }))\n                    };\n                const St = 3e5;\n\n                function kt(e, t) {\n                    let i = e.getModel(t);\n                    return !!i && !i.isTooLargeForSyncing()\n                }\n                let Lt = class extends ue.JT {\n                    constructor(e, t, i) {\n                        super(), this._modelService = e, this._workerManager = this._register(new Dt(this._modelService)), this._logService = i, this._register(be.pM.register({\n                            language: \"*\",\n                            hasAccessToAllModels: !0\n                        }, {\n                            provideLinks: (e, t) => kt(this._modelService, e.uri) ? this._workerManager.withWorker().then((t => t.computeLinks(e.uri))).then((e => e && {\n                                links: e\n                            })) : Promise.resolve({\n                                links: []\n                            })\n                        })), this._register(be.KZ.register(\"*\", new Nt(this._workerManager, t, this._modelService)))\n                    }\n                    dispose() {\n                        super.dispose()\n                    }\n                    computeDiff(e, t, i, n) {\n                        return this._workerManager.withWorker().then((o => o.computeDiff(e, t, i, n)))\n                    }\n                    computeMoreMinimalEdits(e, t) {\n                        if ((0, bt.Of)(t)) {\n                            if (!kt(this._modelService, e)) return Promise.resolve(t);\n                            const i = gt.G.create(!0),\n                                n = this._workerManager.withWorker().then((i => i.computeMoreMinimalEdits(e, t)));\n                            return n.finally((() => this._logService.trace(\"FORMAT#computeMoreMinimalEdits\", e.toString(!0), i.elapsed()))), Promise.race([n, (0, Se.Vs)(1e3).then((() => t))])\n                        }\n                        return Promise.resolve(void 0)\n                    }\n                    canNavigateValueSet(e) {\n                        return kt(this._modelService, e)\n                    }\n                    navigateValueSet(e, t, i) {\n                        return this._workerManager.withWorker().then((n => n.navigateValueSet(e, t, i)))\n                    }\n                    canComputeWordRanges(e) {\n                        return kt(this._modelService, e)\n                    }\n                    computeWordRanges(e, t) {\n                        return this._workerManager.withWorker().then((i => i.computeWordRanges(e, t)))\n                    }\n                };\n                Lt = yt([Ct(0, vt.q), Ct(1, _t.V), Ct(2, wt.VZ)], Lt);\n                class Nt {\n                    constructor(e, t, i) {\n                        this._debugDisplayName = \"wordbasedCompletions\", this._workerManager = e, this._configurationService = t, this._modelService = i\n                    }\n                    provideCompletionItems(e, t) {\n                        return xt(this, void 0, void 0, (function*() {\n                            const i = this._configurationService.getValue(e.uri, t, \"editor\");\n                            if (!i.wordBasedSuggestions) return;\n                            const n = [];\n                            if (\"currentDocument\" === i.wordBasedSuggestionsMode) kt(this._modelService, e.uri) && n.push(e.uri);\n                            else\n                                for (const t of this._modelService.getModels()) kt(this._modelService, t.uri) && (t === e ? n.unshift(t.uri) : \"allDocuments\" !== i.wordBasedSuggestionsMode && t.getLanguageId() !== e.getLanguageId() || n.push(t.uri));\n                            if (0 === n.length) return;\n                            const o = Ke.zu.getWordDefinition(e.getLanguageId()),\n                                s = e.getWordAtPosition(t),\n                                r = s ? new U.e(t.lineNumber, s.startColumn, t.lineNumber, s.endColumn) : U.e.fromPositions(t),\n                                a = r.setEndPosition(t.lineNumber, t.column),\n                                l = yield this._workerManager.withWorker(), c = yield l.textualSuggest(n, null == s ? void 0 : s.word, o);\n                            return c ? {\n                                duration: c.duration,\n                                suggestions: c.words.map((e => ({\n                                    kind: 18,\n                                    label: e,\n                                    insertText: e,\n                                    range: {\n                                        insert: a,\n                                        replace: r\n                                    }\n                                })))\n                            } : void 0\n                        }))\n                    }\n                }\n                class Dt extends ue.JT {\n                    constructor(e) {\n                        super(), this._modelService = e, this._editorWorkerClient = null, this._lastWorkerUsedTime = (new Date).getTime(), this._register(new Se.zh).cancelAndSet((() => this._checkStopIdleWorker()), Math.round(15e4)), this._register(this._modelService.onModelRemoved((e => this._checkStopEmptyWorker())))\n                    }\n                    dispose() {\n                        this._editorWorkerClient && (this._editorWorkerClient.dispose(), this._editorWorkerClient = null), super.dispose()\n                    }\n                    _checkStopEmptyWorker() {\n                        if (!this._editorWorkerClient) return;\n                        0 === this._modelService.getModels().length && (this._editorWorkerClient.dispose(), this._editorWorkerClient = null)\n                    }\n                    _checkStopIdleWorker() {\n                        if (!this._editorWorkerClient) return;\n                        (new Date).getTime() - this._lastWorkerUsedTime > St && (this._editorWorkerClient.dispose(), this._editorWorkerClient = null)\n                    }\n                    withWorker() {\n                        return this._lastWorkerUsedTime = (new Date).getTime(), this._editorWorkerClient || (this._editorWorkerClient = new Mt(this._modelService, !1, \"editorWorkerService\")), Promise.resolve(this._editorWorkerClient)\n                    }\n                }\n                class It extends ue.JT {\n                    constructor(e, t, i) {\n                        if (super(), this._syncedModels = Object.create(null), this._syncedModelsLastUsedTime = Object.create(null), this._proxy = e, this._modelService = t, !i) {\n                            let e = new Se.zh;\n                            e.cancelAndSet((() => this._checkStopModelSync()), Math.round(3e4)), this._register(e)\n                        }\n                    }\n                    dispose() {\n                        for (let e in this._syncedModels)(0, ue.B9)(this._syncedModels[e]);\n                        this._syncedModels = Object.create(null), this._syncedModelsLastUsedTime = Object.create(null), super.dispose()\n                    }\n                    ensureSyncedResources(e, t) {\n                        for (const i of e) {\n                            let e = i.toString();\n                            this._syncedModels[e] || this._beginModelSync(i, t), this._syncedModels[e] && (this._syncedModelsLastUsedTime[e] = (new Date).getTime())\n                        }\n                    }\n                    _checkStopModelSync() {\n                        let e = (new Date).getTime(),\n                            t = [];\n                        for (let i in this._syncedModelsLastUsedTime) {\n                            e - this._syncedModelsLastUsedTime[i] > 6e4 && t.push(i)\n                        }\n                        for (const e of t) this._stopModelSync(e)\n                    }\n                    _beginModelSync(e, t) {\n                        let i = this._modelService.getModel(e);\n                        if (!i) return;\n                        if (!t && i.isTooLargeForSyncing()) return;\n                        let n = e.toString();\n                        this._proxy.acceptNewModel({\n                            url: i.uri.toString(),\n                            lines: i.getLinesContent(),\n                            EOL: i.getEOL(),\n                            versionId: i.getVersionId()\n                        });\n                        const o = new ue.SL;\n                        o.add(i.onDidChangeContent((e => {\n                            this._proxy.acceptModelChanged(n.toString(), e)\n                        }))), o.add(i.onWillDispose((() => {\n                            this._stopModelSync(n)\n                        }))), o.add((0, ue.OF)((() => {\n                            this._proxy.acceptRemovedModel(n)\n                        }))), this._syncedModels[n] = o\n                    }\n                    _stopModelSync(e) {\n                        let t = this._syncedModels[e];\n                        delete this._syncedModels[e], delete this._syncedModelsLastUsedTime[e], (0, ue.B9)(t)\n                    }\n                }\n                class Et {\n                    constructor(e) {\n                        this._instance = e, this._proxyObj = Promise.resolve(this._instance)\n                    }\n                    dispose() {\n                        this._instance.dispose()\n                    }\n                    getProxyObject() {\n                        return this._proxyObj\n                    }\n                }\n                class Tt {\n                    constructor(e) {\n                        this._workerClient = e\n                    }\n                    fhr(e, t) {\n                        return this._workerClient.fhr(e, t)\n                    }\n                }\n                class Mt extends ue.JT {\n                    constructor(e, t, i) {\n                        super(), this._disposed = !1, this._modelService = e, this._keepIdleModels = t, this._workerFactory = new $e(i), this._worker = null, this._modelManager = null\n                    }\n                    fhr(e, t) {\n                        throw new Error(\"Not implemented!\")\n                    }\n                    _getOrCreateWorker() {\n                        if (!this._worker) try {\n                            this._worker = this._register(new Be(this._workerFactory, \"vs/editor/common/services/editorSimpleWorker\", new Tt(this)))\n                        } catch (e) {\n                            Te(e), this._worker = new Et(new mt(new Tt(this), null))\n                        }\n                        return this._worker\n                    }\n                    _getProxy() {\n                        return this._getOrCreateWorker().getProxyObject().then(void 0, (e => (Te(e), this._worker = new Et(new mt(new Tt(this), null)), this._getOrCreateWorker().getProxyObject())))\n                    }\n                    _getOrCreateModelManager(e) {\n                        return this._modelManager || (this._modelManager = this._register(new It(e, this._modelService, this._keepIdleModels))), this._modelManager\n                    }\n                    _withSyncedResources(e, t = !1) {\n                        return xt(this, void 0, void 0, (function*() {\n                            return this._disposed ? Promise.reject((0, ke.F0)()) : this._getProxy().then((i => (this._getOrCreateModelManager(i).ensureSyncedResources(e, t), i)))\n                        }))\n                    }\n                    computeDiff(e, t, i, n) {\n                        return this._withSyncedResources([e, t], !0).then((o => o.computeDiff(e.toString(), t.toString(), i, n)))\n                    }\n                    computeMoreMinimalEdits(e, t) {\n                        return this._withSyncedResources([e]).then((i => i.computeMoreMinimalEdits(e.toString(), t)))\n                    }\n                    computeLinks(e) {\n                        return this._withSyncedResources([e]).then((t => t.computeLinks(e.toString())))\n                    }\n                    textualSuggest(e, t, i) {\n                        return xt(this, void 0, void 0, (function*() {\n                            const n = yield this._withSyncedResources(e), o = i.source, s = (0, De.mr)(i);\n                            return n.textualSuggest(e.map((e => e.toString())), t, o, s)\n                        }))\n                    }\n                    computeWordRanges(e, t) {\n                        return this._withSyncedResources([e]).then((i => {\n                            let n = this._modelService.getModel(e);\n                            if (!n) return Promise.resolve(null);\n                            let o = Ke.zu.getWordDefinition(n.getLanguageId()),\n                                s = o.source,\n                                r = (0, De.mr)(o);\n                            return i.computeWordRanges(e.toString(), t, s, r)\n                        }))\n                    }\n                    navigateValueSet(e, t, i) {\n                        return this._withSyncedResources([e]).then((n => {\n                            let o = this._modelService.getModel(e);\n                            if (!o) return null;\n                            let s = Ke.zu.getWordDefinition(o.getLanguageId()),\n                                r = s.source,\n                                a = (0, De.mr)(s);\n                            return n.navigateValueSet(e.toString(), t, i, r, a)\n                        }))\n                    }\n                    dispose() {\n                        super.dispose(), this._disposed = !0\n                    }\n                }\n                class At extends Mt {\n                    constructor(e, t) {\n                        super(e, t.keepIdleModels || !1, t.label), this._foreignModuleId = t.moduleId, this._foreignModuleCreateData = t.createData || null, this._foreignModuleHost = t.host || null, this._foreignProxy = null\n                    }\n                    fhr(e, t) {\n                        if (!this._foreignModuleHost || \"function\" != typeof this._foreignModuleHost[e]) return Promise.reject(new Error(\"Missing method \" + e + \" or missing main thread foreign host.\"));\n                        try {\n                            return Promise.resolve(this._foreignModuleHost[e].apply(this._foreignModuleHost, t))\n                        } catch (e) {\n                            return Promise.reject(e)\n                        }\n                    }\n                    _getForeignProxy() {\n                        return this._foreignProxy || (this._foreignProxy = this._getProxy().then((e => {\n                            const t = this._foreignModuleHost ? Ne.$E(this._foreignModuleHost) : [];\n                            return e.loadForeignModule(this._foreignModuleId, this._foreignModuleCreateData, t).then((t => {\n                                this._foreignModuleCreateData = null;\n                                const i = (t, i) => e.fmr(t, i),\n                                    n = (e, t) => function() {\n                                        const i = Array.prototype.slice.call(arguments, 0);\n                                        return t(e, i)\n                                    };\n                                let o = {};\n                                for (const e of t) o[e] = n(e, i);\n                                return o\n                            }))\n                        }))), this._foreignProxy\n                    }\n                    getProxy() {\n                        return this._getForeignProxy()\n                    }\n                    withSyncedResources(e) {\n                        return this._withSyncedResources(e).then((e => this.getProxy()))\n                    }\n                }\n                var Ot = i(78411),\n                    Pt = i(77736),\n                    Rt = i(13824);\n\n                function Ft(e) {\n                    return ! function(e) {\n                        return Array.isArray(e)\n                    }(e)\n                }\n\n                function Bt(e) {\n                    return \"string\" == typeof e\n                }\n\n                function Vt(e) {\n                    return !Bt(e)\n                }\n\n                function Wt(e) {\n                    return !e\n                }\n\n                function Ht(e, t) {\n                    return e.ignoreCase && t ? t.toLowerCase() : t\n                }\n\n                function zt(e) {\n                    return e.replace(/[&<>'\"_]/g, \"-\")\n                }\n\n                function jt(e, t) {\n                    return new Error(`${e.languageId}: ${t}`)\n                }\n\n                function Ut(e, t, i, n, o) {\n                    let s = null;\n                    return t.replace(/\\$((\\$)|(#)|(\\d\\d?)|[sS](\\d\\d?)|@(\\w+))/g, (function(t, r, a, l, c, d, h, u, g) {\n                        return Wt(a) ? Wt(l) ? !Wt(c) && c < n.length ? Ht(e, n[c]) : !Wt(h) && e && \"string\" == typeof e[h] ? e[h] : (null === s && (s = o.split(\".\"), s.unshift(o)), !Wt(d) && d < s.length ? Ht(e, s[d]) : \"\") : Ht(e, i) : \"$\"\n                    }))\n                }\n\n                function $t(e, t) {\n                    let i = t;\n                    for (; i && i.length > 0;) {\n                        const t = e.tokenizer[i];\n                        if (t) return t;\n                        const n = i.lastIndexOf(\".\");\n                        i = n < 0 ? null : i.substr(0, n)\n                    }\n                    return null\n                }\n                class Kt {\n                    constructor(e) {\n                        this._maxCacheDepth = e, this._entries = Object.create(null)\n                    }\n                    static create(e, t) {\n                        return this._INSTANCE.create(e, t)\n                    }\n                    create(e, t) {\n                        if (null !== e && e.depth >= this._maxCacheDepth) return new qt(e, t);\n                        let i = qt.getStackElementId(e);\n                        i.length > 0 && (i += \"|\"), i += t;\n                        let n = this._entries[i];\n                        return n || (n = new qt(e, t), this._entries[i] = n, n)\n                    }\n                }\n                Kt._INSTANCE = new Kt(5);\n                class qt {\n                    constructor(e, t) {\n                        this.parent = e, this.state = t, this.depth = (this.parent ? this.parent.depth : 0) + 1\n                    }\n                    static getStackElementId(e) {\n                        let t = \"\";\n                        for (; null !== e;) t.length > 0 && (t += \"|\"), t += e.state, e = e.parent;\n                        return t\n                    }\n                    static _equals(e, t) {\n                        for (; null !== e && null !== t;) {\n                            if (e === t) return !0;\n                            if (e.state !== t.state) return !1;\n                            e = e.parent, t = t.parent\n                        }\n                        return null === e && null === t\n                    }\n                    equals(e) {\n                        return qt._equals(this, e)\n                    }\n                    push(e) {\n                        return Kt.create(this, e)\n                    }\n                    pop() {\n                        return this.parent\n                    }\n                    popall() {\n                        let e = this;\n                        for (; e.parent;) e = e.parent;\n                        return e\n                    }\n                    switchTo(e) {\n                        return Kt.create(this.parent, e)\n                    }\n                }\n                class Zt {\n                    constructor(e, t) {\n                        this.languageId = e, this.state = t\n                    }\n                    equals(e) {\n                        return this.languageId === e.languageId && this.state.equals(e.state)\n                    }\n                    clone() {\n                        return this.state.clone() === this.state ? this : new Zt(this.languageId, this.state)\n                    }\n                }\n                class Gt {\n                    constructor(e) {\n                        this._maxCacheDepth = e, this._entries = Object.create(null)\n                    }\n                    static create(e, t) {\n                        return this._INSTANCE.create(e, t)\n                    }\n                    create(e, t) {\n                        if (null !== t) return new Yt(e, t);\n                        if (null !== e && e.depth >= this._maxCacheDepth) return new Yt(e, t);\n                        let i = qt.getStackElementId(e),\n                            n = this._entries[i];\n                        return n || (n = new Yt(e, null), this._entries[i] = n, n)\n                    }\n                }\n                Gt._INSTANCE = new Gt(5);\n                class Yt {\n                    constructor(e, t) {\n                        this.stack = e, this.embeddedModeData = t\n                    }\n                    clone() {\n                        return (this.embeddedModeData ? this.embeddedModeData.clone() : null) === this.embeddedModeData ? this : Gt.create(this.stack, this.embeddedModeData)\n                    }\n                    equals(e) {\n                        return e instanceof Yt && (!!this.stack.equals(e.stack) && (null === this.embeddedModeData && null === e.embeddedModeData || null !== this.embeddedModeData && null !== e.embeddedModeData && this.embeddedModeData.equals(e.embeddedModeData)))\n                    }\n                }\n                class Qt {\n                    constructor() {\n                        this._tokens = [], this._languageId = null, this._lastTokenType = null, this._lastTokenLanguage = null\n                    }\n                    enterMode(e, t) {\n                        this._languageId = t\n                    }\n                    emit(e, t) {\n                        this._lastTokenType === t && this._lastTokenLanguage === this._languageId || (this._lastTokenType = t, this._lastTokenLanguage = this._languageId, this._tokens.push(new K.WU(e, t, this._languageId)))\n                    }\n                    nestedModeTokenize(e, t, i, n) {\n                        const o = i.languageId,\n                            s = i.state,\n                            r = be.RW.get(o);\n                        if (!r) return this.enterMode(n, o), this.emit(n, \"\"), s;\n                        let a = r.tokenize(e, t, s, n);\n                        return this._tokens = this._tokens.concat(a.tokens), this._lastTokenType = null, this._lastTokenLanguage = null, this._languageId = null, a.endState\n                    }\n                    finalize(e) {\n                        return new K.hG(this._tokens, e)\n                    }\n                }\n                class Xt {\n                    constructor(e, t) {\n                        this._modeService = e, this._theme = t, this._prependTokens = null, this._tokens = [], this._currentLanguageId = 0, this._lastTokenMetadata = 0\n                    }\n                    enterMode(e, t) {\n                        this._currentLanguageId = this._modeService.languageIdCodec.encodeLanguageId(t)\n                    }\n                    emit(e, t) {\n                        let i = this._theme.match(this._currentLanguageId, t);\n                        this._lastTokenMetadata !== i && (this._lastTokenMetadata = i, this._tokens.push(e), this._tokens.push(i))\n                    }\n                    static _merge(e, t, i) {\n                        let n = null !== e ? e.length : 0,\n                            o = t.length,\n                            s = null !== i ? i.length : 0;\n                        if (0 === n && 0 === o && 0 === s) return new Uint32Array(0);\n                        if (0 === n && 0 === o) return i;\n                        if (0 === o && 0 === s) return e;\n                        let r = new Uint32Array(n + o + s);\n                        null !== e && r.set(e);\n                        for (let e = 0; e < o; e++) r[n + e] = t[e];\n                        return null !== i && r.set(i, n + o), r\n                    }\n                    nestedModeTokenize(e, t, i, n) {\n                        const o = i.languageId,\n                            s = i.state,\n                            r = be.RW.get(o);\n                        if (!r) return this.enterMode(n, o), this.emit(n, \"\"), s;\n                        let a = r.tokenize2(e, t, s, n);\n                        return this._prependTokens = Xt._merge(this._prependTokens, this._tokens, a.tokens), this._tokens = [], this._currentLanguageId = 0, this._lastTokenMetadata = 0, a.endState\n                    }\n                    finalize(e) {\n                        return new K.Hi(Xt._merge(this._prependTokens, this._tokens, null), e)\n                    }\n                }\n                class Jt {\n                    constructor(e, t, i, n) {\n                        this._modeService = e, this._standaloneThemeService = t, this._languageId = i, this._lexer = n, this._embeddedModes = Object.create(null), this.embeddedLoaded = Promise.resolve(void 0);\n                        let o = !1;\n                        this._tokenizationRegistryListener = be.RW.onDidChange((e => {\n                            if (o) return;\n                            let t = !1;\n                            for (let i = 0, n = e.changedLanguages.length; i < n; i++) {\n                                let n = e.changedLanguages[i];\n                                if (this._embeddedModes[n]) {\n                                    t = !0;\n                                    break\n                                }\n                            }\n                            t && (o = !0, be.RW.fire([this._languageId]), o = !1)\n                        }))\n                    }\n                    dispose() {\n                        this._tokenizationRegistryListener.dispose()\n                    }\n                    getLoadStatus() {\n                        let e = [];\n                        for (let t in this._embeddedModes) {\n                            const i = be.RW.get(t);\n                            if (i) {\n                                if (i instanceof Jt) {\n                                    const t = i.getLoadStatus();\n                                    !1 === t.loaded && e.push(t.promise)\n                                }\n                                continue\n                            }\n                            const n = be.RW.getPromise(t);\n                            n && e.push(n)\n                        }\n                        return 0 === e.length ? {\n                            loaded: !0\n                        } : {\n                            loaded: !1,\n                            promise: Promise.all(e).then((e => {}))\n                        }\n                    }\n                    getInitialState() {\n                        let e = Kt.create(null, this._lexer.start);\n                        return Gt.create(e, null)\n                    }\n                    tokenize(e, t, i, n) {\n                        let o = new Qt,\n                            s = this._tokenize(e, t, i, n, o);\n                        return o.finalize(s)\n                    }\n                    tokenize2(e, t, i, n) {\n                        let o = new Xt(this._modeService, this._standaloneThemeService.getColorTheme().tokenTheme),\n                            s = this._tokenize(e, t, i, n, o);\n                        return o.finalize(s)\n                    }\n                    _tokenize(e, t, i, n, o) {\n                        return i.embeddedModeData ? this._nestedTokenize(e, t, i, n, o) : this._myTokenize(e, t, i, n, o)\n                    }\n                    _findLeavingNestedModeOffset(e, t) {\n                        let i = this._lexer.tokenizer[t.stack.state];\n                        if (!i && (i = $t(this._lexer, t.stack.state), !i)) throw jt(this._lexer, \"tokenizer state is not defined: \" + t.stack.state);\n                        let n = -1,\n                            o = !1;\n                        for (const t of i) {\n                            if (!Vt(t.action) || \"@pop\" !== t.action.nextEmbedded) continue;\n                            o = !0;\n                            let i = t.regex,\n                                s = t.regex.source;\n                            if (\"^(?:\" === s.substr(0, 4) && \")\" === s.substr(s.length - 1, 1)) {\n                                let e = (i.ignoreCase ? \"i\" : \"\") + (i.unicode ? \"u\" : \"\");\n                                i = new RegExp(s.substr(4, s.length - 5), e)\n                            }\n                            let r = e.search(i); - 1 === r || 0 !== r && t.matchOnlyAtLineStart || (-1 === n || r < n) && (n = r)\n                        }\n                        if (!o) throw jt(this._lexer, 'no rule containing nextEmbedded: \"@pop\" in tokenizer embedded state: ' + t.stack.state);\n                        return n\n                    }\n                    _nestedTokenize(e, t, i, n, o) {\n                        let s = this._findLeavingNestedModeOffset(e, i);\n                        if (-1 === s) {\n                            let s = o.nestedModeTokenize(e, t, i.embeddedModeData, n);\n                            return Gt.create(i.stack, new Zt(i.embeddedModeData.languageId, s))\n                        }\n                        let r = e.substring(0, s);\n                        r.length > 0 && o.nestedModeTokenize(r, !1, i.embeddedModeData, n);\n                        let a = e.substring(s);\n                        return this._myTokenize(a, t, i, n + s, o)\n                    }\n                    _safeRuleName(e) {\n                        return e ? e.name : \"(unknown)\"\n                    }\n                    _myTokenize(e, t, i, n, o) {\n                        o.enterMode(n, this._languageId);\n                        const s = e.length,\n                            r = t && this._lexer.includeLF ? e + \"\\n\" : e,\n                            a = r.length;\n                        let l = i.embeddedModeData,\n                            c = i.stack,\n                            d = 0,\n                            h = null,\n                            u = !0;\n                        for (; u || d < a;) {\n                            const i = d,\n                                f = c.depth,\n                                m = h ? h.groups.length : 0,\n                                v = c.state;\n                            let _ = null,\n                                b = null,\n                                w = null,\n                                y = null,\n                                C = null;\n                            if (h) {\n                                _ = h.matches;\n                                const e = h.groups.shift();\n                                b = e.matched, w = e.action, y = h.rule, 0 === h.groups.length && (h = null)\n                            } else {\n                                if (!u && d >= a) break;\n                                u = !1;\n                                let e = this._lexer.tokenizer[v];\n                                if (!e && (e = $t(this._lexer, v), !e)) throw jt(this._lexer, \"tokenizer state is not defined: \" + v);\n                                let t = r.substr(d);\n                                for (const i of e)\n                                    if ((0 === d || !i.matchOnlyAtLineStart) && (_ = t.match(i.regex), _)) {\n                                        b = _[0], w = i.action;\n                                        break\n                                    }\n                            }\n                            if (_ || (_ = [\"\"], b = \"\"), w || (d < a && (_ = [r.charAt(d)], b = _[0]), w = this._lexer.defaultToken), null === b) break;\n                            for (d += b.length; Ft(w) && Vt(w) && w.test;) w = w.test(b, _, v, d === a);\n                            let x = null;\n                            if (\"string\" == typeof w || Array.isArray(w)) x = w;\n                            else if (w.group) x = w.group;\n                            else if (null !== w.token && void 0 !== w.token) {\n                                if (x = w.tokenSubst ? Ut(this._lexer, w.token, b, _, v) : w.token, w.nextEmbedded)\n                                    if (\"@pop\" === w.nextEmbedded) {\n                                        if (!l) throw jt(this._lexer, \"cannot pop embedded mode if not inside one\");\n                                        l = null\n                                    } else {\n                                        if (l) throw jt(this._lexer, \"cannot enter embedded mode from within an embedded mode\");\n                                        C = Ut(this._lexer, w.nextEmbedded, b, _, v)\n                                    } if (w.goBack && (d = Math.max(0, d - w.goBack)), w.switchTo && \"string\" == typeof w.switchTo) {\n                                    let e = Ut(this._lexer, w.switchTo, b, _, v);\n                                    if (\"@\" === e[0] && (e = e.substr(1)), !$t(this._lexer, e)) throw jt(this._lexer, \"trying to switch to a state '\" + e + \"' that is undefined in rule: \" + this._safeRuleName(y));\n                                    c = c.switchTo(e)\n                                } else {\n                                    if (w.transform && \"function\" == typeof w.transform) throw jt(this._lexer, \"action.transform not supported\");\n                                    if (w.next)\n                                        if (\"@push\" === w.next) {\n                                            if (c.depth >= this._lexer.maxStack) throw jt(this._lexer, \"maximum tokenizer stack size reached: [\" + c.state + \",\" + c.parent.state + \",...]\");\n                                            c = c.push(v)\n                                        } else if (\"@pop\" === w.next) {\n                                        if (c.depth <= 1) throw jt(this._lexer, \"trying to pop an empty stack in rule: \" + this._safeRuleName(y));\n                                        c = c.pop()\n                                    } else if (\"@popall\" === w.next) c = c.popall();\n                                    else {\n                                        let e = Ut(this._lexer, w.next, b, _, v);\n                                        if (\"@\" === e[0] && (e = e.substr(1)), !$t(this._lexer, e)) throw jt(this._lexer, \"trying to set a next state '\" + e + \"' that is undefined in rule: \" + this._safeRuleName(y));\n                                        c = c.push(e)\n                                    }\n                                }\n                                w.log && \"string\" == typeof w.log && (g = this._lexer, p = this._lexer.languageId + \": \" + Ut(this._lexer, w.log, b, _, v), console.log(`${g.languageId}: ${p}`))\n                            }\n                            if (null === x) throw jt(this._lexer, \"lexer rule has no well-defined action in rule: \" + this._safeRuleName(y));\n                            const S = i => {\n                                let s = this._modeService.getModeIdForLanguageName(i);\n                                s && (i = s);\n                                const r = this._getNestedEmbeddedModeData(i);\n                                if (d < a) {\n                                    const i = e.substr(d);\n                                    return this._nestedTokenize(i, t, Gt.create(c, r), n + d, o)\n                                }\n                                return Gt.create(c, r)\n                            };\n                            if (Array.isArray(x)) {\n                                if (h && h.groups.length > 0) throw jt(this._lexer, \"groups cannot be nested: \" + this._safeRuleName(y));\n                                if (_.length !== x.length + 1) throw jt(this._lexer, \"matched number of groups does not match the number of actions in rule: \" + this._safeRuleName(y));\n                                let e = 0;\n                                for (let t = 1; t < _.length; t++) e += _[t].length;\n                                if (e !== b.length) throw jt(this._lexer, \"with groups, all characters should be matched in consecutive groups in rule: \" + this._safeRuleName(y));\n                                h = {\n                                    rule: y,\n                                    matches: _,\n                                    groups: []\n                                };\n                                for (let e = 0; e < x.length; e++) h.groups[e] = {\n                                    action: x[e],\n                                    matched: _[e + 1]\n                                };\n                                d -= b.length\n                            } else {\n                                {\n                                    if (\"@rematch\" === x && (d -= b.length, b = \"\", _ = null, x = \"\", null !== C)) return S(C);\n                                    if (0 === b.length) {\n                                        if (0 === a || f !== c.depth || v !== c.state || (h ? h.groups.length : 0) !== m) continue;\n                                        throw jt(this._lexer, \"no progress in tokenizer in rule: \" + this._safeRuleName(y))\n                                    }\n                                    let e = null;\n                                    if (Bt(x) && 0 === x.indexOf(\"@brackets\")) {\n                                        let t = x.substr(9),\n                                            i = ei(this._lexer, b);\n                                        if (!i) throw jt(this._lexer, \"@brackets token returned but no bracket defined as: \" + b);\n                                        e = zt(i.token + t)\n                                    } else {\n                                        e = zt(\"\" === x ? \"\" : x + this._lexer.tokenPostfix)\n                                    }\n                                    i < s && o.emit(i + n, e)\n                                }\n                                if (null !== C) return S(C)\n                            }\n                        }\n                        var g, p;\n                        return Gt.create(c, l)\n                    }\n                    _getNestedEmbeddedModeData(e) {\n                        let t = this._locateMode(e);\n                        if (t) {\n                            let e = be.RW.get(t);\n                            if (e) return new Zt(t, e.getInitialState())\n                        }\n                        return new Zt(t || we.TG, we.nO)\n                    }\n                    _locateMode(e) {\n                        if (!e || !this._modeService.isRegisteredMode(e)) return null;\n                        if (e === this._languageId) return e;\n                        const t = this._modeService.getModeId(e);\n                        return t && (this._modeService.triggerMode(t), this._embeddedModes[t] = !0), t\n                    }\n                }\n\n                function ei(e, t) {\n                    if (!t) return null;\n                    t = Ht(e, t);\n                    let i = e.brackets;\n                    for (const e of i) {\n                        if (e.open === t) return {\n                            token: e.token,\n                            bracketType: 1\n                        };\n                        if (e.close === t) return {\n                            token: e.token,\n                            bracketType: -1\n                        }\n                    }\n                    return null\n                }\n                var ti;\n                const ii = null === (ti = window.trustedTypes) || void 0 === ti ? void 0 : ti.createPolicy(\"standaloneColorizer\", {\n                    createHTML: e => e\n                });\n                class ni {\n                    static colorizeElement(e, t, i, n) {\n                        let o = (n = n || {}).theme || \"vs\",\n                            s = n.mimeType || i.getAttribute(\"lang\") || i.getAttribute(\"data-lang\");\n                        if (!s) return console.error(\"Mode not detected\"), Promise.resolve();\n                        e.setTheme(o);\n                        let r = i.firstChild ? i.firstChild.nodeValue : \"\";\n                        i.className += \" \" + o;\n                        return this.colorize(t, r || \"\", s, n).then((e => {\n                            var t;\n                            const n = null !== (t = null == ii ? void 0 : ii.createHTML(e)) && void 0 !== t ? t : e;\n                            i.innerHTML = n\n                        }), (e => console.error(e)))\n                    }\n                    static colorize(e, t, i, n) {\n                        const o = e.languageIdCodec;\n                        let s = 4;\n                        n && \"number\" == typeof n.tabSize && (s = n.tabSize), De.uS(t) && (t = t.substr(1));\n                        let r = De.uq(t),\n                            a = e.getModeId(i);\n                        if (!a) return Promise.resolve(si(r, s, o));\n                        e.triggerMode(a);\n                        const l = be.RW.get(a);\n                        if (l) return oi(r, s, l, o);\n                        const c = be.RW.getPromise(a);\n                        return new Promise(c ? (e, t) => {\n                            c.then((i => {\n                                oi(r, s, i, o).then(e, t)\n                            }), t)\n                        } : (e, t) => {\n                            let i = null,\n                                n = null;\n                            const l = () => {\n                                i && (i.dispose(), i = null), n && (n.dispose(), n = null);\n                                const l = be.RW.get(a);\n                                l ? oi(r, s, l, o).then(e, t) : e(si(r, s, o))\n                            };\n                            n = new Se._F, n.cancelAndSet(l, 500), i = be.RW.onDidChange((e => {\n                                e.changedLanguages.indexOf(a) >= 0 && l()\n                            }))\n                        })\n                    }\n                    static colorizeLine(e, t, i, n, o = 4) {\n                        const s = Rt.wA.isBasicASCII(e, t),\n                            r = Rt.wA.containsRTL(e, s, i);\n                        return (0, Pt.tF)(new Pt.IJ(!1, !0, e, !1, s, r, 0, n, [], o, 0, 0, 0, 0, -1, \"none\", !1, !1, null)).html\n                    }\n                    static colorizeModelLine(e, t, i = 4) {\n                        let n = e.getLineContent(t);\n                        e.forceTokenization(t);\n                        let o = e.getLineTokens(t).inflate();\n                        return this.colorizeLine(n, e.mightContainNonBasicASCII(), e.mightContainRTL(), o, i)\n                    }\n                }\n\n                function oi(e, t, i, n) {\n                    return new Promise(((o, s) => {\n                        const r = () => {\n                            const a = function(e, t, i, n) {\n                                let o = [],\n                                    s = i.getInitialState();\n                                for (let r = 0, a = e.length; r < a; r++) {\n                                    let a = e[r],\n                                        l = i.tokenize2(a, !0, s, 0);\n                                    Ot.A.convertToEndOffset(l.tokens, a.length);\n                                    let c = new Ot.A(l.tokens, a, n);\n                                    const d = Rt.wA.isBasicASCII(a, !0),\n                                        h = Rt.wA.containsRTL(a, d, !0);\n                                    let u = (0, Pt.tF)(new Pt.IJ(!1, !0, a, !1, d, h, 0, c.inflate(), [], t, 0, 0, 0, 0, -1, \"none\", !1, !1, null));\n                                    o = o.concat(u.html), o.push(\"<br/>\"), s = l.endState\n                                }\n                                return o.join(\"\")\n                            }(e, t, i, n);\n                            if (i instanceof Jt) {\n                                const e = i.getLoadStatus();\n                                if (!1 === e.loaded) return void e.promise.then(r, s)\n                            }\n                            o(a)\n                        };\n                        r()\n                    }))\n                }\n\n                function si(e, t, i) {\n                    let n = [];\n                    const o = new Uint32Array(2);\n                    o[0] = 0, o[1] = 16793600;\n                    for (let s = 0, r = e.length; s < r; s++) {\n                        let r = e[s];\n                        o[0] = r.length;\n                        const a = new Ot.A(o, r, i),\n                            l = Rt.wA.isBasicASCII(r, !0),\n                            c = Rt.wA.containsRTL(r, l, !0);\n                        let d = (0, Pt.tF)(new Pt.IJ(!1, !0, r, !1, l, c, 0, a, [], t, 0, 0, 0, 0, -1, \"none\", !1, !1, null));\n                        n = n.concat(d.html), n.push(\"<br/>\")\n                    }\n                    return n.join(\"\")\n                }\n                var ri = i(59069),\n                    ai = i(8313),\n                    li = i(14603),\n                    ci = i(65520),\n                    di = i(66007),\n                    hi = i(56345),\n                    ui = i(69386),\n                    gi = i(33108),\n                    pi = i(23193);\n                class fi {\n                    constructor(e = {}, t = [], i = []) {\n                        this._contents = e, this._keys = t, this._overrides = i, this.isFrozen = !1, this.overrideConfigurations = new Map\n                    }\n                    get contents() {\n                        return this.checkAndFreeze(this._contents)\n                    }\n                    get overrides() {\n                        return this.checkAndFreeze(this._overrides)\n                    }\n                    get keys() {\n                        return this.checkAndFreeze(this._keys)\n                    }\n                    isEmpty() {\n                        return 0 === this._keys.length && 0 === Object.keys(this._contents).length && 0 === this._overrides.length\n                    }\n                    getValue(e) {\n                        return e ? (0, gi.Mt)(this.contents, e) : this.contents\n                    }\n                    override(e) {\n                        let t = this.overrideConfigurations.get(e);\n                        return t || (t = this.createOverrideConfigurationModel(e), this.overrideConfigurations.set(e, t)), t\n                    }\n                    merge(...e) {\n                        const t = ge.I8(this.contents),\n                            i = ge.I8(this.overrides),\n                            n = [...this.keys];\n                        for (const o of e) {\n                            this.mergeContents(t, o.contents);\n                            for (const e of o.overrides) {\n                                const [t] = i.filter((t => bt.fS(t.identifiers, e.identifiers)));\n                                t ? this.mergeContents(t.contents, e.contents) : i.push(ge.I8(e))\n                            }\n                            for (const e of o.keys) - 1 === n.indexOf(e) && n.push(e)\n                        }\n                        return new fi(t, n, i)\n                    }\n                    freeze() {\n                        return this.isFrozen = !0, this\n                    }\n                    createOverrideConfigurationModel(e) {\n                        const t = this.getContentsForOverrideIdentifer(e);\n                        if (!t || \"object\" != typeof t || !Object.keys(t).length) return this;\n                        let i = {};\n                        for (const e of bt.EB([...Object.keys(this.contents), ...Object.keys(t)])) {\n                            let n = this.contents[e],\n                                o = t[e];\n                            o && (\"object\" == typeof n && \"object\" == typeof o ? (n = ge.I8(n), this.mergeContents(n, o)) : n = o), i[e] = n\n                        }\n                        return new fi(i, this.keys, this.overrides)\n                    }\n                    mergeContents(e, t) {\n                        for (const i of Object.keys(t)) i in e && Ne.Kn(e[i]) && Ne.Kn(t[i]) ? this.mergeContents(e[i], t[i]) : e[i] = ge.I8(t[i])\n                    }\n                    checkAndFreeze(e) {\n                        return this.isFrozen && !Object.isFrozen(e) ? ge._A(e) : e\n                    }\n                    getContentsForOverrideIdentifer(e) {\n                        for (const t of this.overrides)\n                            if (-1 !== t.identifiers.indexOf(e)) return t.contents;\n                        return null\n                    }\n                    toJSON() {\n                        return {\n                            contents: this.contents,\n                            overrides: this.overrides,\n                            keys: this.keys\n                        }\n                    }\n                    setValue(e, t) {\n                        this.addKey(e), (0, gi.KV)(this.contents, e, t, (e => {\n                            throw new Error(e)\n                        }))\n                    }\n                    removeValue(e) {\n                        this.removeKey(e) && (0, gi.xL)(this.contents, e)\n                    }\n                    addKey(e) {\n                        let t = this.keys.length;\n                        for (let i = 0; i < t; i++) 0 === e.indexOf(this.keys[i]) && (t = i);\n                        this.keys.splice(t, 1, e)\n                    }\n                    removeKey(e) {\n                        let t = this.keys.indexOf(e);\n                        return -1 !== t && (this.keys.splice(t, 1), !0)\n                    }\n                }\n                class mi extends fi {\n                    constructor() {\n                        const e = (0, gi.O4)(),\n                            t = (0, gi.MR)(),\n                            i = [];\n                        for (const t of Object.keys(e)) pi.G1.test(t) && i.push({\n                            identifiers: [(0, pi.Uh)(t).trim()],\n                            keys: Object.keys(e[t]),\n                            contents: (0, gi.Od)(e[t], (e => console.error(`Conflict in default settings file: ${e}`)))\n                        });\n                        super(e, t, i)\n                    }\n                }\n                class vi {\n                    constructor(e, t, i = new fi, n = new fi, o = new J.Y9, s = new fi, r = new J.Y9, a = !0) {\n                        this._defaultConfiguration = e, this._localUserConfiguration = t, this._remoteUserConfiguration = i, this._workspaceConfiguration = n, this._folderConfigurations = o, this._memoryConfiguration = s, this._memoryConfigurationByResource = r, this._freeze = a, this._workspaceConsolidatedConfiguration = null, this._foldersConsolidatedConfigurations = new J.Y9, this._userConfiguration = null\n                    }\n                    getValue(e, t, i) {\n                        return this.getConsolidateConfigurationModel(t, i).getValue(e)\n                    }\n                    updateValue(e, t, i = {}) {\n                        let n;\n                        i.resource ? (n = this._memoryConfigurationByResource.get(i.resource), n || (n = new fi, this._memoryConfigurationByResource.set(i.resource, n))) : n = this._memoryConfiguration, void 0 === t ? n.removeValue(e) : n.setValue(e, t), i.resource || (this._workspaceConsolidatedConfiguration = null)\n                    }\n                    get userConfiguration() {\n                        return this._userConfiguration || (this._userConfiguration = this._remoteUserConfiguration.isEmpty() ? this._localUserConfiguration : this._localUserConfiguration.merge(this._remoteUserConfiguration), this._freeze && this._userConfiguration.freeze()), this._userConfiguration\n                    }\n                    getConsolidateConfigurationModel(e, t) {\n                        let i = this.getConsolidatedConfigurationModelForResource(e, t);\n                        return e.overrideIdentifier ? i.override(e.overrideIdentifier) : i\n                    }\n                    getConsolidatedConfigurationModelForResource({\n                        resource: e\n                    }, t) {\n                        let i = this.getWorkspaceConsolidatedConfiguration();\n                        if (t && e) {\n                            const n = t.getFolder(e);\n                            n && (i = this.getFolderConsolidatedConfiguration(n.uri) || i);\n                            const o = this._memoryConfigurationByResource.get(e);\n                            o && (i = i.merge(o))\n                        }\n                        return i\n                    }\n                    getWorkspaceConsolidatedConfiguration() {\n                        return this._workspaceConsolidatedConfiguration || (this._workspaceConsolidatedConfiguration = this._defaultConfiguration.merge(this.userConfiguration, this._workspaceConfiguration, this._memoryConfiguration), this._freeze && (this._workspaceConfiguration = this._workspaceConfiguration.freeze())), this._workspaceConsolidatedConfiguration\n                    }\n                    getFolderConsolidatedConfiguration(e) {\n                        let t = this._foldersConsolidatedConfigurations.get(e);\n                        if (!t) {\n                            const i = this.getWorkspaceConsolidatedConfiguration(),\n                                n = this._folderConfigurations.get(e);\n                            n ? (t = i.merge(n), this._freeze && (t = t.freeze()), this._foldersConsolidatedConfigurations.set(e, t)) : t = i\n                        }\n                        return t\n                    }\n                    toData() {\n                        return {\n                            defaults: {\n                                contents: this._defaultConfiguration.contents,\n                                overrides: this._defaultConfiguration.overrides,\n                                keys: this._defaultConfiguration.keys\n                            },\n                            user: {\n                                contents: this.userConfiguration.contents,\n                                overrides: this.userConfiguration.overrides,\n                                keys: this.userConfiguration.keys\n                            },\n                            workspace: {\n                                contents: this._workspaceConfiguration.contents,\n                                overrides: this._workspaceConfiguration.overrides,\n                                keys: this._workspaceConfiguration.keys\n                            },\n                            folders: [...this._folderConfigurations.keys()].reduce(((e, t) => {\n                                const {\n                                    contents: i,\n                                    overrides: n,\n                                    keys: o\n                                } = this._folderConfigurations.get(t);\n                                return e.push([t, {\n                                    contents: i,\n                                    overrides: n,\n                                    keys: o\n                                }]), e\n                            }), [])\n                        }\n                    }\n                    static parse(e) {\n                        const t = this.parseConfigurationModel(e.defaults),\n                            i = this.parseConfigurationModel(e.user),\n                            n = this.parseConfigurationModel(e.workspace),\n                            o = e.folders.reduce(((e, t) => (e.set(z.o.revive(t[0]), this.parseConfigurationModel(t[1])), e)), new J.Y9);\n                        return new vi(t, i, new fi, n, o, new fi, new J.Y9, !1)\n                    }\n                    static parseConfigurationModel(e) {\n                        return new fi(e.contents, e.keys, e.overrides).freeze()\n                    }\n                }\n                class _i {\n                    constructor(e, t, i, n) {\n                        this.change = e, this.previous = t, this.currentConfiguraiton = i, this.currentWorkspace = n, this._previousConfiguration = void 0;\n                        const o = new Set;\n                        e.keys.forEach((e => o.add(e))), e.overrides.forEach((([, e]) => e.forEach((e => o.add(e))))), this.affectedKeys = [...o.values()];\n                        const s = new fi;\n                        this.affectedKeys.forEach((e => s.setValue(e, {}))), this.affectedKeysTree = s.contents\n                    }\n                    get previousConfiguration() {\n                        return !this._previousConfiguration && this.previous && (this._previousConfiguration = vi.parse(this.previous.data)), this._previousConfiguration\n                    }\n                    affectsConfiguration(e, t) {\n                        var i;\n                        if (this.doesAffectedKeysTreeContains(this.affectedKeysTree, e)) {\n                            if (t) {\n                                const n = this.previousConfiguration ? this.previousConfiguration.getValue(e, t, null === (i = this.previous) || void 0 === i ? void 0 : i.workspace) : void 0,\n                                    o = this.currentConfiguraiton.getValue(e, t, this.currentWorkspace);\n                                return !ge.fS(n, o)\n                            }\n                            return !0\n                        }\n                        return !1\n                    }\n                    doesAffectedKeysTreeContains(e, t) {\n                        let i, n = (0, gi.Od)({\n                            [t]: !0\n                        }, (() => {}));\n                        for (;\n                            \"object\" == typeof n && (i = Object.keys(n)[0]);) {\n                            if (!(e = e[i])) return !1;\n                            n = n[i]\n                        }\n                        return !0\n                    }\n                }\n                var bi = i(63580);\n                const wi = /^(cursor|delete)/;\n                class yi extends ue.JT {\n                    constructor(e, t, i, n, o) {\n                        super(), this._contextKeyService = e, this._commandService = t, this._telemetryService = i, this._notificationService = n, this._logService = o, this._onDidUpdateKeybindings = this._register(new W.Q5), this._currentChord = null, this._currentChordChecker = new Se.zh, this._currentChordStatusMessage = null, this._ignoreSingleModifiers = Ci.EMPTY, this._currentSingleModifier = null, this._currentSingleModifierClearTimeout = new Se._F, this._logging = !1\n                    }\n                    get onDidUpdateKeybindings() {\n                        return this._onDidUpdateKeybindings ? this._onDidUpdateKeybindings.event : W.ju.None\n                    }\n                    dispose() {\n                        super.dispose()\n                    }\n                    _log(e) {\n                        this._logging && this._logService.info(`[KeybindingService]: ${e}`)\n                    }\n                    getKeybindings() {\n                        return this._getResolver().getKeybindings()\n                    }\n                    lookupKeybinding(e, t) {\n                        const i = this._getResolver().lookupPrimaryKeybinding(e, t || this._contextKeyService);\n                        if (i) return i.resolvedKeybinding\n                    }\n                    dispatchEvent(e, t) {\n                        return this._dispatch(e, t)\n                    }\n                    softDispatch(e, t) {\n                        const i = this.resolveKeyboardEvent(e);\n                        if (i.isChord()) return console.warn(\"Unexpected keyboard event mapped to a chord\"), null;\n                        const [n] = i.getDispatchParts();\n                        if (null === n) return null;\n                        const o = this._contextKeyService.getContext(t),\n                            s = this._currentChord ? this._currentChord.keypress : null;\n                        return this._getResolver().resolve(o, s, n)\n                    }\n                    _enterChordMode(e, t) {\n                        this._currentChord = {\n                            keypress: e,\n                            label: t\n                        }, this._currentChordStatusMessage = this._notificationService.status(bi.N(\"first.chord\", \"({0}) was pressed. Waiting for second key of chord...\", t));\n                        const i = Date.now();\n                        this._currentChordChecker.cancelAndSet((() => {\n                            this._documentHasFocus() ? Date.now() - i > 5e3 && this._leaveChordMode() : this._leaveChordMode()\n                        }), 500)\n                    }\n                    _leaveChordMode() {\n                        this._currentChordStatusMessage && (this._currentChordStatusMessage.dispose(), this._currentChordStatusMessage = null), this._currentChordChecker.cancel(), this._currentChord = null\n                    }\n                    _dispatch(e, t) {\n                        return this._doDispatch(this.resolveKeyboardEvent(e), t, !1)\n                    }\n                    _singleModifierDispatch(e, t) {\n                        const i = this.resolveKeyboardEvent(e),\n                            [n] = i.getSingleModifierDispatchParts();\n                        if (n) return this._ignoreSingleModifiers.has(n) ? (this._log(`+ Ignoring single modifier ${n} due to it being pressed together with other keys.`), this._ignoreSingleModifiers = Ci.EMPTY, this._currentSingleModifierClearTimeout.cancel(), this._currentSingleModifier = null, !1) : (this._ignoreSingleModifiers = Ci.EMPTY, null === this._currentSingleModifier ? (this._log(`+ Storing single modifier for possible chord ${n}.`), this._currentSingleModifier = n, this._currentSingleModifierClearTimeout.cancelAndSet((() => {\n                            this._log(\"+ Clearing single modifier due to 300ms elapsed.\"), this._currentSingleModifier = null\n                        }), 300), !1) : n === this._currentSingleModifier ? (this._log(`/ Dispatching single modifier chord ${n} ${n}`), this._currentSingleModifierClearTimeout.cancel(), this._currentSingleModifier = null, this._doDispatch(i, t, !0)) : (this._log(`+ Clearing single modifier due to modifier mismatch: ${this._currentSingleModifier} ${n}`), this._currentSingleModifierClearTimeout.cancel(), this._currentSingleModifier = null, !1));\n                        const [o] = i.getParts();\n                        return this._ignoreSingleModifiers = new Ci(o), null !== this._currentSingleModifier && this._log(\"+ Clearing single modifier due to other key up.\"), this._currentSingleModifierClearTimeout.cancel(), this._currentSingleModifier = null, !1\n                    }\n                    _doDispatch(e, t, i = !1) {\n                        let n = !1;\n                        if (e.isChord()) return console.warn(\"Unexpected keyboard event mapped to a chord\"), !1;\n                        let o = null,\n                            s = null;\n                        if (i) {\n                            const [t] = e.getSingleModifierDispatchParts();\n                            o = t, s = t\n                        } else [o] = e.getDispatchParts(), s = this._currentChord ? this._currentChord.keypress : null;\n                        if (null === o) return this._log(\"\\\\ Keyboard event cannot be dispatched in keydown phase.\"), n;\n                        const r = this._contextKeyService.getContext(t),\n                            a = e.getLabel(),\n                            l = this._getResolver().resolve(r, s, o);\n                        return this._logService.trace(\"KeybindingService#dispatch\", a, null == l ? void 0 : l.commandId), l && l.enterChord ? (n = !0, this._enterChordMode(o, a), n) : (this._currentChord && (l && l.commandId || (this._notificationService.status(bi.N(\"missing.chord\", \"The key combination ({0}, {1}) is not a command.\", this._currentChord.label, a), {\n                            hideAfter: 1e4\n                        }), n = !0)), this._leaveChordMode(), l && l.commandId && (l.bubble || (n = !0), void 0 === l.commandArgs ? this._commandService.executeCommand(l.commandId).then(void 0, (e => this._notificationService.warn(e))) : this._commandService.executeCommand(l.commandId, l.commandArgs).then(void 0, (e => this._notificationService.warn(e))), wi.test(l.commandId) || this._telemetryService.publicLog2(\"workbenchActionExecuted\", {\n                            id: l.commandId,\n                            from: \"keybinding\"\n                        })), n)\n                    }\n                    mightProducePrintableCharacter(e) {\n                        return !e.ctrlKey && !e.metaKey && (e.keyCode >= 31 && e.keyCode <= 56 || e.keyCode >= 21 && e.keyCode <= 30)\n                    }\n                }\n                class Ci {\n                    constructor(e) {\n                        this._ctrlKey = !!e && e.ctrlKey, this._shiftKey = !!e && e.shiftKey, this._altKey = !!e && e.altKey, this._metaKey = !!e && e.metaKey\n                    }\n                    has(e) {\n                        switch (e) {\n                            case \"ctrl\":\n                                return this._ctrlKey;\n                            case \"shift\":\n                                return this._shiftKey;\n                            case \"alt\":\n                                return this._altKey;\n                            case \"meta\":\n                                return this._metaKey\n                        }\n                    }\n                }\n                Ci.EMPTY = new Ci(null);\n                var xi = i(38819);\n                class Si {\n                    constructor(e, t, i) {\n                        this._log = i, this._defaultKeybindings = e, this._defaultBoundCommands = new Map;\n                        for (let t = 0, i = e.length; t < i; t++) {\n                            const i = e[t].command;\n                            i && this._defaultBoundCommands.set(i, !0)\n                        }\n                        this._map = new Map, this._lookupMap = new Map, this._keybindings = Si.combine(e, t);\n                        for (let e = 0, t = this._keybindings.length; e < t; e++) {\n                            let t = this._keybindings[e];\n                            0 !== t.keypressParts.length && (t.when && 0 === t.when.type || this._addKeyPress(t.keypressParts[0], t))\n                        }\n                    }\n                    static _isTargetedForRemoval(e, t, i, n, o) {\n                        if (e.command !== n) return !1;\n                        if (t && e.keypressParts[0] !== t) return !1;\n                        if (i && e.keypressParts[1] !== i) return !1;\n                        if (o) {\n                            if (!e.when) return !1;\n                            if (!(0, xi.Fb)(o, e.when)) return !1\n                        }\n                        return !0\n                    }\n                    static combine(e, t) {\n                        e = e.slice(0);\n                        let i = [];\n                        for (const n of t) {\n                            if (!n.command || 0 === n.command.length || \"-\" !== n.command.charAt(0)) {\n                                i.push(n);\n                                continue\n                            }\n                            const t = n.command.substr(1),\n                                o = n.keypressParts[0],\n                                s = n.keypressParts[1],\n                                r = n.when;\n                            for (let i = e.length - 1; i >= 0; i--) this._isTargetedForRemoval(e[i], o, s, t, r) && e.splice(i, 1)\n                        }\n                        return e.concat(i)\n                    }\n                    _addKeyPress(e, t) {\n                        const i = this._map.get(e);\n                        if (void 0 === i) return this._map.set(e, [t]), void this._addToLookupMap(t);\n                        for (let e = i.length - 1; e >= 0; e--) {\n                            let n = i[e];\n                            if (n.command === t.command) continue;\n                            const o = n.keypressParts.length > 1,\n                                s = t.keypressParts.length > 1;\n                            o && s && n.keypressParts[1] !== t.keypressParts[1] || Si.whenIsEntirelyIncluded(n.when, t.when) && this._removeFromLookupMap(n)\n                        }\n                        i.push(t), this._addToLookupMap(t)\n                    }\n                    _addToLookupMap(e) {\n                        if (!e.command) return;\n                        let t = this._lookupMap.get(e.command);\n                        void 0 === t ? (t = [e], this._lookupMap.set(e.command, t)) : t.push(e)\n                    }\n                    _removeFromLookupMap(e) {\n                        if (!e.command) return;\n                        let t = this._lookupMap.get(e.command);\n                        if (void 0 !== t)\n                            for (let i = 0, n = t.length; i < n; i++)\n                                if (t[i] === e) return void t.splice(i, 1)\n                    }\n                    static whenIsEntirelyIncluded(e, t) {\n                        return !t || 1 === t.type || !(!e || 1 === e.type) && (0, xi.K8)(e, t)\n                    }\n                    getKeybindings() {\n                        return this._keybindings\n                    }\n                    lookupPrimaryKeybinding(e, t) {\n                        const i = this._lookupMap.get(e);\n                        if (void 0 === i || 0 === i.length) return null;\n                        if (1 === i.length) return i[0];\n                        for (let e = i.length - 1; e >= 0; e--) {\n                            const n = i[e];\n                            if (t.contextMatchesRules(n.when)) return n\n                        }\n                        return i[i.length - 1]\n                    }\n                    resolve(e, t, i) {\n                        this._log(`| Resolving ${i}${t?` chorded from ${t}`:\"\"}`);\n                        let n = null;\n                        if (null !== t) {\n                            const e = this._map.get(t);\n                            if (void 0 === e) return this._log(\"\\\\ No keybinding entries.\"), null;\n                            n = [];\n                            for (let t = 0, o = e.length; t < o; t++) {\n                                let o = e[t];\n                                o.keypressParts[1] === i && n.push(o)\n                            }\n                        } else {\n                            const e = this._map.get(i);\n                            if (void 0 === e) return this._log(\"\\\\ No keybinding entries.\"), null;\n                            n = e\n                        }\n                        let o = this._findCommand(e, n);\n                        return o ? null === t && o.keypressParts.length > 1 && null !== o.keypressParts[1] ? (this._log(`\\\\ From ${n.length} keybinding entries, matched chord, when: ${ki(o.when)}, source: ${Li(o)}.`), {\n                            enterChord: !0,\n                            leaveChord: !1,\n                            commandId: null,\n                            commandArgs: null,\n                            bubble: !1\n                        }) : (this._log(`\\\\ From ${n.length} keybinding entries, matched ${o.command}, when: ${ki(o.when)}, source: ${Li(o)}.`), {\n                            enterChord: !1,\n                            leaveChord: o.keypressParts.length > 1,\n                            commandId: o.command,\n                            commandArgs: o.commandArgs,\n                            bubble: o.bubble\n                        }) : (this._log(`\\\\ From ${n.length} keybinding entries, no when clauses matched the context.`), null)\n                    }\n                    _findCommand(e, t) {\n                        for (let i = t.length - 1; i >= 0; i--) {\n                            let n = t[i];\n                            if (Si.contextMatchesRules(e, n.when)) return n\n                        }\n                        return null\n                    }\n                    static contextMatchesRules(e, t) {\n                        return !t || t.evaluate(e)\n                    }\n                }\n\n                function ki(e) {\n                    return e ? `${e.serialize()}` : \"no when condition\"\n                }\n\n                function Li(e) {\n                    return e.extensionId ? e.isBuiltinExtension ? `built-in extension ${e.extensionId}` : `user extension ${e.extensionId}` : e.isDefault ? \"built-in\" : \"user\"\n                }\n                var Ni = i(49989);\n                class Di {\n                    constructor(e, t, i, n, o, s, r) {\n                        this._resolvedKeybindingItemBrand = void 0, this.resolvedKeybinding = e, this.keypressParts = e ? Ii(e.getDispatchParts()) : [], e && 0 === this.keypressParts.length && (this.keypressParts = Ii(e.getSingleModifierDispatchParts())), this.bubble = !!t && 94 === t.charCodeAt(0), this.command = this.bubble ? t.substr(1) : t, this.commandArgs = i, this.when = n, this.isDefault = o, this.extensionId = s, this.isBuiltinExtension = r\n                    }\n                }\n\n                function Ii(e) {\n                    let t = [];\n                    for (let i = 0, n = e.length; i < n; i++) {\n                        const n = e[i];\n                        if (!n) return t;\n                        t.push(n)\n                    }\n                    return t\n                }\n                var Ei = i(8030);\n                class Ti extends ai.f1 {\n                    constructor(e, t) {\n                        if (super(), 0 === t.length) throw (0, ke.b1)(\"parts\");\n                        this._os = e, this._parts = t\n                    }\n                    getLabel() {\n                        return Ei.xo.toLabel(this._os, this._parts, (e => this._getLabel(e)))\n                    }\n                    getAriaLabel() {\n                        return Ei.X4.toLabel(this._os, this._parts, (e => this._getAriaLabel(e)))\n                    }\n                    getElectronAccelerator() {\n                        return this._parts.length > 1 || this._parts[0].isDuplicateModifierCase() ? null : Ei.jC.toLabel(this._os, this._parts, (e => this._getElectronAccelerator(e)))\n                    }\n                    isChord() {\n                        return this._parts.length > 1\n                    }\n                    getParts() {\n                        return this._parts.map((e => this._getPart(e)))\n                    }\n                    _getPart(e) {\n                        return new ai.BQ(e.ctrlKey, e.shiftKey, e.altKey, e.metaKey, this._getLabel(e), this._getAriaLabel(e))\n                    }\n                    getDispatchParts() {\n                        return this._parts.map((e => this._getDispatchPart(e)))\n                    }\n                    getSingleModifierDispatchParts() {\n                        return this._parts.map((e => this._getSingleModifierDispatchPart(e)))\n                    }\n                }\n                class Mi extends Ti {\n                    constructor(e, t) {\n                        super(t, e.parts)\n                    }\n                    _keyCodeToUILabel(e) {\n                        if (2 === this._os) switch (e) {\n                            case 15:\n                                return \"←\";\n                            case 16:\n                                return \"↑\";\n                            case 17:\n                                return \"→\";\n                            case 18:\n                                return \"↓\"\n                        }\n                        return H.kL.toString(e)\n                    }\n                    _getLabel(e) {\n                        return e.isDuplicateModifierCase() ? \"\" : this._keyCodeToUILabel(e.keyCode)\n                    }\n                    _getAriaLabel(e) {\n                        return e.isDuplicateModifierCase() ? \"\" : H.kL.toString(e.keyCode)\n                    }\n                    _getElectronAccelerator(e) {\n                        return H.kL.toElectronAccelerator(e.keyCode)\n                    }\n                    _getDispatchPart(e) {\n                        return Mi.getDispatchStr(e)\n                    }\n                    static getDispatchStr(e) {\n                        if (e.isModifierKey()) return null;\n                        let t = \"\";\n                        return e.ctrlKey && (t += \"ctrl+\"), e.shiftKey && (t += \"shift+\"), e.altKey && (t += \"alt+\"), e.metaKey && (t += \"meta+\"), t += H.kL.toString(e.keyCode), t\n                    }\n                    _getSingleModifierDispatchPart(e) {\n                        return 5 !== e.keyCode || e.shiftKey || e.altKey || e.metaKey ? 4 !== e.keyCode || e.ctrlKey || e.altKey || e.metaKey ? 6 !== e.keyCode || e.ctrlKey || e.shiftKey || e.metaKey ? 57 !== e.keyCode || e.ctrlKey || e.shiftKey || e.altKey ? null : \"meta\" : \"alt\" : \"shift\" : \"ctrl\"\n                    }\n                    static _scanCodeToKeyCode(e) {\n                        const t = H.Vd[e];\n                        if (-1 !== t) return t;\n                        switch (e) {\n                            case 10:\n                                return 31;\n                            case 11:\n                                return 32;\n                            case 12:\n                                return 33;\n                            case 13:\n                                return 34;\n                            case 14:\n                                return 35;\n                            case 15:\n                                return 36;\n                            case 16:\n                                return 37;\n                            case 17:\n                                return 38;\n                            case 18:\n                                return 39;\n                            case 19:\n                                return 40;\n                            case 20:\n                                return 41;\n                            case 21:\n                                return 42;\n                            case 22:\n                                return 43;\n                            case 23:\n                                return 44;\n                            case 24:\n                                return 45;\n                            case 25:\n                                return 46;\n                            case 26:\n                                return 47;\n                            case 27:\n                                return 48;\n                            case 28:\n                                return 49;\n                            case 29:\n                                return 50;\n                            case 30:\n                                return 51;\n                            case 31:\n                                return 52;\n                            case 32:\n                                return 53;\n                            case 33:\n                                return 54;\n                            case 34:\n                                return 55;\n                            case 35:\n                                return 56;\n                            case 36:\n                                return 22;\n                            case 37:\n                                return 23;\n                            case 38:\n                                return 24;\n                            case 39:\n                                return 25;\n                            case 40:\n                                return 26;\n                            case 41:\n                                return 27;\n                            case 42:\n                                return 28;\n                            case 43:\n                                return 29;\n                            case 44:\n                                return 30;\n                            case 45:\n                                return 21;\n                            case 51:\n                                return 83;\n                            case 52:\n                                return 81;\n                            case 53:\n                                return 87;\n                            case 54:\n                                return 89;\n                            case 55:\n                                return 88;\n                            case 56:\n                                return 0;\n                            case 57:\n                                return 80;\n                            case 58:\n                                return 90;\n                            case 59:\n                                return 86;\n                            case 60:\n                                return 82;\n                            case 61:\n                                return 84;\n                            case 62:\n                                return 85;\n                            case 106:\n                                return 92\n                        }\n                        return 0\n                    }\n                    static _resolveSimpleUserBinding(e) {\n                        if (!e) return null;\n                        if (e instanceof ai.QC) return e;\n                        const t = this._scanCodeToKeyCode(e.scanCode);\n                        return 0 === t ? null : new ai.QC(e.ctrlKey, e.shiftKey, e.altKey, e.metaKey, t)\n                    }\n                    static resolveUserBinding(e, t) {\n                        const i = Ii(e.map((e => this._resolveSimpleUserBinding(e))));\n                        return i.length > 0 ? [new Mi(new ai.X_(i), t)] : []\n                    }\n                }\n                var Ai = i(59422),\n                    Oi = i(40382),\n                    Pi = i(20913),\n                    Ri = function(e, t, i, n) {\n                        var o, s = arguments.length,\n                            r = s < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n                        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) r = Reflect.decorate(e, t, i, n);\n                        else\n                            for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (r = (s < 3 ? o(r) : s > 3 ? o(t, i, r) : o(t, i)) || r);\n                        return s > 3 && r && Object.defineProperty(t, i, r), r\n                    },\n                    Fi = function(e, t) {\n                        return function(i, n) {\n                            t(i, n, e)\n                        }\n                    },\n                    Bi = function(e, t, i, n) {\n                        return new(i || (i = Promise))((function(o, s) {\n                            function r(e) {\n                                try {\n                                    l(n.next(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function a(e) {\n                                try {\n                                    l(n.throw(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function l(e) {\n                                var t;\n                                e.done ? o(e.value) : (t = e.value, t instanceof i ? t : new i((function(e) {\n                                    e(t)\n                                }))).then(r, a)\n                            }\n                            l((n = n.apply(e, t || [])).next())\n                        }))\n                    };\n                class Vi {\n                    constructor(e) {\n                        this.disposed = !1, this.model = e, this._onWillDispose = new W.Q5\n                    }\n                    get textEditorModel() {\n                        return this.model\n                    }\n                    dispose() {\n                        this.disposed = !0, this._onWillDispose.fire()\n                    }\n                }\n                let Wi = class {\n                    constructor(e) {\n                        this.modelService = e\n                    }\n                    setEditor(e) {\n                        this.editor = e\n                    }\n                    createModelReference(e) {\n                        let t = null;\n                        var i, n, o;\n                        return this.editor && (i = this.editor, n = t => this.findModel(t, e), o = t => this.findModel(t.getOriginalEditor(), e) || this.findModel(t.getModifiedEditor(), e), t = (0, ci.CL)(i) ? n(i) : o(i)), t ? Promise.resolve(new ue.Jz(new Vi(t))) : Promise.reject(new Error(\"Model not found\"))\n                    }\n                    findModel(e, t) {\n                        let i = this.modelService.getModel(t);\n                        return i && i.uri.toString() !== t.toString() ? null : i\n                    }\n                };\n                Wi = Ri([Fi(0, vt.q)], Wi);\n                class Hi {\n                    show() {\n                        return Hi.NULL_PROGRESS_RUNNER\n                    }\n                    showWhile(e, t) {\n                        return Bi(this, void 0, void 0, (function*() {\n                            yield e\n                        }))\n                    }\n                }\n                Hi.NULL_PROGRESS_RUNNER = {\n                    done: () => {},\n                    total: () => {},\n                    worked: () => {}\n                };\n                class zi {\n                    confirm(e) {\n                        return this.doConfirm(e).then((e => ({\n                            confirmed: e,\n                            checkboxChecked: !1\n                        })))\n                    }\n                    doConfirm(e) {\n                        let t = e.message;\n                        return e.detail && (t = t + \"\\n\\n\" + e.detail), Promise.resolve(window.confirm(t))\n                    }\n                    show(e, t, i, n) {\n                        return Promise.resolve({\n                            choice: 0\n                        })\n                    }\n                }\n                class ji {\n                    info(e) {\n                        return this.notify({\n                            severity: li.Z.Info,\n                            message: e\n                        })\n                    }\n                    warn(e) {\n                        return this.notify({\n                            severity: li.Z.Warning,\n                            message: e\n                        })\n                    }\n                    error(e) {\n                        return this.notify({\n                            severity: li.Z.Error,\n                            message: e\n                        })\n                    }\n                    notify(e) {\n                        switch (e.severity) {\n                            case li.Z.Error:\n                                console.error(e.message);\n                                break;\n                            case li.Z.Warning:\n                                console.warn(e.message);\n                                break;\n                            default:\n                                console.log(e.message)\n                        }\n                        return ji.NO_OP\n                    }\n                    status(e, t) {\n                        return ue.JT.None\n                    }\n                }\n                ji.NO_OP = new Ai.EO;\n                class Ui {\n                    constructor(e) {\n                        this._onWillExecuteCommand = new W.Q5, this._onDidExecuteCommand = new W.Q5, this.onDidExecuteCommand = this._onDidExecuteCommand.event, this._instantiationService = e\n                    }\n                    executeCommand(e, ...t) {\n                        const i = ne.P.getCommand(e);\n                        if (!i) return Promise.reject(new Error(`command '${e}' not found`));\n                        try {\n                            this._onWillExecuteCommand.fire({\n                                commandId: e,\n                                args: t\n                            });\n                            const n = this._instantiationService.invokeFunction.apply(this._instantiationService, [i.handler, ...t]);\n                            return this._onDidExecuteCommand.fire({\n                                commandId: e,\n                                args: t\n                            }), Promise.resolve(n)\n                        } catch (e) {\n                            return Promise.reject(e)\n                        }\n                    }\n                }\n                class $i extends yi {\n                    constructor(e, t, i, n, o, s) {\n                        super(e, t, i, n, o), this._cachedResolver = null, this._dynamicKeybindings = [], this._register(Q.nm(s, Q.tw.KEY_DOWN, (e => {\n                            const t = new ri.y(e);\n                            this._dispatch(t, t.target) && (t.preventDefault(), t.stopPropagation())\n                        }))), this._register(Q.nm(window, Q.tw.KEY_UP, (e => {\n                            const t = new ri.y(e);\n                            this._singleModifierDispatch(t, t.target) && t.preventDefault()\n                        })))\n                    }\n                    addDynamicKeybinding(e, t, i, n) {\n                        const o = (0, ai.gm)(t, Le.OS),\n                            s = new ue.SL;\n                        return o && (this._dynamicKeybindings.push({\n                            keybinding: o.parts,\n                            command: e,\n                            when: n,\n                            weight1: 1e3,\n                            weight2: 0,\n                            extensionId: null,\n                            isBuiltinExtension: !1\n                        }), s.add((0, ue.OF)((() => {\n                            for (let t = 0; t < this._dynamicKeybindings.length; t++) {\n                                if (this._dynamicKeybindings[t].command === e) return this._dynamicKeybindings.splice(t, 1), void this.updateResolver({\n                                    source: 1\n                                })\n                            }\n                        })))), s.add(ne.P.registerCommand(e, i)), this.updateResolver({\n                            source: 1\n                        }), s\n                    }\n                    updateResolver(e) {\n                        this._cachedResolver = null, this._onDidUpdateKeybindings.fire(e)\n                    }\n                    _getResolver() {\n                        if (!this._cachedResolver) {\n                            const e = this._toNormalizedKeybindingItems(Ni.W.getDefaultKeybindings(), !0),\n                                t = this._toNormalizedKeybindingItems(this._dynamicKeybindings, !1);\n                            this._cachedResolver = new Si(e, t, (e => this._log(e)))\n                        }\n                        return this._cachedResolver\n                    }\n                    _documentHasFocus() {\n                        return document.hasFocus()\n                    }\n                    _toNormalizedKeybindingItems(e, t) {\n                        let i = [],\n                            n = 0;\n                        for (const o of e) {\n                            const e = o.when || void 0,\n                                s = o.keybinding;\n                            if (s) {\n                                const r = Mi.resolveUserBinding(s, Le.OS);\n                                for (const s of r) i[n++] = new Di(s, o.command, o.commandArgs, e, t, null, !1)\n                            } else i[n++] = new Di(void 0, o.command, o.commandArgs, e, t, null, !1)\n                        }\n                        return i\n                    }\n                    resolveKeyboardEvent(e) {\n                        let t = new ai.QC(e.ctrlKey, e.shiftKey, e.altKey, e.metaKey, e.keyCode).toChord();\n                        return new Mi(t, Le.OS)\n                    }\n                }\n\n                function Ki(e) {\n                    return e && \"object\" == typeof e && (!e.overrideIdentifier || \"string\" == typeof e.overrideIdentifier) && (!e.resource || e.resource instanceof z.o)\n                }\n                class qi {\n                    constructor() {\n                        this._onDidChangeConfiguration = new W.Q5, this.onDidChangeConfiguration = this._onDidChangeConfiguration.event, this._configuration = new vi(new mi, new fi)\n                    }\n                    getValue(e, t) {\n                        const i = \"string\" == typeof e ? e : void 0,\n                            n = Ki(e) ? e : Ki(t) ? t : {};\n                        return this._configuration.getValue(i, n, void 0)\n                    }\n                    updateValues(e) {\n                        const t = {\n                            data: this._configuration.toData()\n                        };\n                        let i = [];\n                        for (const t of e) {\n                            const [e, n] = t;\n                            this.getValue(e) !== n && (this._configuration.updateValue(e, n), i.push(e))\n                        }\n                        if (i.length > 0) {\n                            const e = new _i({\n                                keys: i,\n                                overrides: []\n                            }, t, this._configuration);\n                            e.source = 7, e.sourceConfig = null, this._onDidChangeConfiguration.fire(e)\n                        }\n                        return Promise.resolve()\n                    }\n                }\n                class Zi {\n                    constructor(e) {\n                        this.configurationService = e, this._onDidChangeConfiguration = new W.Q5, this.configurationService.onDidChangeConfiguration((e => {\n                            this._onDidChangeConfiguration.fire({\n                                affectedKeys: e.affectedKeys,\n                                affectsConfiguration: (t, i) => e.affectsConfiguration(i)\n                            })\n                        }))\n                    }\n                    getValue(e, t, i) {\n                        const n = (j.L.isIPosition(t) ? t : null) ? \"string\" == typeof i ? i : void 0 : \"string\" == typeof t ? t : void 0;\n                        return void 0 === n ? this.configurationService.getValue() : this.configurationService.getValue(n)\n                    }\n                }\n                let Gi = class {\n                    constructor(e) {\n                        this.configurationService = e\n                    }\n                    getEOL(e, t) {\n                        const i = this.configurationService.getValue(\"files.eol\", {\n                            overrideIdentifier: t,\n                            resource: e\n                        });\n                        return i && \"string\" == typeof i && \"auto\" !== i ? i : Le.IJ || Le.dz ? \"\\n\" : \"\\r\\n\"\n                    }\n                };\n                Gi = Ri([Fi(0, gi.Ui)], Gi);\n                class Yi {\n                    publicLog(e, t) {\n                        return Promise.resolve(void 0)\n                    }\n                    publicLog2(e, t) {\n                        return this.publicLog(e, t)\n                    }\n                }\n                class Qi {\n                    constructor() {\n                        const e = z.o.from({\n                            scheme: Qi.SCHEME,\n                            authority: \"model\",\n                            path: \"/\"\n                        });\n                        this.workspace = {\n                            id: \"4064f6ec-cb38-4ad0-af64-ee6467e63c82\",\n                            folders: [new Oi.md({\n                                uri: e,\n                                name: \"\",\n                                index: 0\n                            })]\n                        }\n                    }\n                    getWorkspace() {\n                        return this.workspace\n                    }\n                }\n\n                function Xi(e, t, i) {\n                    if (!t) return;\n                    if (!(e instanceof qi)) return;\n                    let n = [];\n                    Object.keys(t).forEach((e => {\n                        (0, hi.ei)(e) && n.push([`editor.${e}`, t[e]]), i && (0, hi.Pe)(e) && n.push([`diffEditor.${e}`, t[e]])\n                    })), n.length > 0 && e.updateValues(n)\n                }\n                Qi.SCHEME = \"inmemory\";\n                class Ji {\n                    constructor(e) {\n                        this._modelService = e\n                    }\n                    hasPreviewHandler() {\n                        return !1\n                    }\n                    apply(e, t) {\n                        return Bi(this, void 0, void 0, (function*() {\n                            const t = new Map;\n                            for (let i of e) {\n                                if (!(i instanceof di.Gl)) throw new Error(\"bad edit - only text edits are supported\");\n                                const e = this._modelService.getModel(i.resource);\n                                if (!e) throw new Error(\"bad edit - model not found\");\n                                if (\"number\" == typeof i.versionId && e.getVersionId() !== i.versionId) throw new Error(\"bad state - model changed in the meantime\");\n                                let n = t.get(e);\n                                n || (n = [], t.set(e, n)), n.push(ui.h.replaceMove(U.e.lift(i.textEdit.range), i.textEdit.text))\n                            }\n                            let i = 0,\n                                n = 0;\n                            for (const [e, o] of t) e.pushStackElement(), e.pushEditOperations([], o, (() => [])), e.pushStackElement(), n += 1, i += o.length;\n                            return {\n                                ariaSummary: De.WU(Pi.UL.bulkEditServiceSummary, i, n)\n                            }\n                        }))\n                    }\n                }\n                class en {\n                    getUriLabel(e, t) {\n                        return \"file\" === e.scheme ? e.fsPath : e.path\n                    }\n                }\n                class tn {\n                    constructor(e, t) {\n                        this._codeEditorService = e, this._container = t, this.onDidLayout = W.ju.None\n                    }\n                    get dimension() {\n                        return this._dimension || (this._dimension = Q.D6(window.document.body)), this._dimension\n                    }\n                    get container() {\n                        return this._container\n                    }\n                    focus() {\n                        var e;\n                        null === (e = this._codeEditorService.getFocusedCodeEditor()) || void 0 === e || e.focus()\n                    }\n                }\n                var nn, on = i(85152),\n                    sn = i(32073),\n                    rn = (i(67771), i(38626)),\n                    an = i(73098),\n                    ln = i(89052),\n                    cn = i(39925),\n                    dn = (i(62460), i(90317)),\n                    hn = i(9802),\n                    un = i(74741),\n                    gn = i(16830),\n                    pn = i(27869),\n                    fn = i(73910),\n                    mn = i(97781),\n                    vn = i(73046),\n                    _n = i(59554),\n                    bn = function(e, t, i, n) {\n                        var o, s = arguments.length,\n                            r = s < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n                        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) r = Reflect.decorate(e, t, i, n);\n                        else\n                            for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (r = (s < 3 ? o(r) : s > 3 ? o(t, i, r) : o(t, i)) || r);\n                        return s > 3 && r && Object.defineProperty(t, i, r), r\n                    },\n                    wn = function(e, t) {\n                        return function(i, n) {\n                            t(i, n, e)\n                        }\n                    },\n                    yn = function(e, t, i, n) {\n                        return new(i || (i = Promise))((function(o, s) {\n                            function r(e) {\n                                try {\n                                    l(n.next(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function a(e) {\n                                try {\n                                    l(n.throw(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function l(e) {\n                                var t;\n                                e.done ? o(e.value) : (t = e.value, t instanceof i ? t : new i((function(e) {\n                                    e(t)\n                                }))).then(r, a)\n                            }\n                            l((n = n.apply(e, t || [])).next())\n                        }))\n                    };\n                class Cn {\n                    constructor(e, t, i, n) {\n                        this.originalLineStart = e, this.originalLineEnd = t, this.modifiedLineStart = i, this.modifiedLineEnd = n\n                    }\n                    getType() {\n                        return 0 === this.originalLineStart ? 1 : 0 === this.modifiedLineStart ? 2 : 0\n                    }\n                }\n                class xn {\n                    constructor(e) {\n                        this.entries = e\n                    }\n                }\n                const Sn = (0, _n.q5)(\"diff-review-insert\", vn.lA.add, bi.N(\"diffReviewInsertIcon\", \"Icon for 'Insert' in diff review.\")),\n                    kn = (0, _n.q5)(\"diff-review-remove\", vn.lA.remove, bi.N(\"diffReviewRemoveIcon\", \"Icon for 'Remove' in diff review.\")),\n                    Ln = (0, _n.q5)(\"diff-review-close\", vn.lA.close, bi.N(\"diffReviewCloseIcon\", \"Icon for 'Close' in diff review.\"));\n                let Nn = class e extends ue.JT {\n                    constructor(e, t) {\n                        super(), this._modeService = t, this._width = 0, this._diffEditor = e, this._isVisible = !1, this.shadow = (0, rn.X)(document.createElement(\"div\")), this.shadow.setClassName(\"diff-review-shadow\"), this.actionBarContainer = (0, rn.X)(document.createElement(\"div\")), this.actionBarContainer.setClassName(\"diff-review-actions\"), this._actionBar = this._register(new dn.o(this.actionBarContainer.domNode)), this._actionBar.push(new un.aU(\"diffreview.close\", bi.N(\"label.close\", \"Close\"), \"close-diff-review \" + mn.kS.asClassName(Ln), !0, (() => yn(this, void 0, void 0, (function*() {\n                            return this.hide()\n                        })))), {\n                            label: !1,\n                            icon: !0\n                        }), this.domNode = (0, rn.X)(document.createElement(\"div\")), this.domNode.setClassName(\"diff-review monaco-editor-background\"), this._content = (0, rn.X)(document.createElement(\"div\")), this._content.setClassName(\"diff-review-content\"), this._content.setAttribute(\"role\", \"code\"), this.scrollbar = this._register(new hn.s$(this._content.domNode, {})), this.domNode.domNode.appendChild(this.scrollbar.getDomNode()), this._register(e.onDidUpdateDiff((() => {\n                            this._isVisible && (this._diffs = this._compute(), this._render())\n                        }))), this._register(e.getModifiedEditor().onDidChangeCursorPosition((() => {\n                            this._isVisible && this._render()\n                        }))), this._register(Q.mu(this.domNode.domNode, \"click\", (e => {\n                            e.preventDefault();\n                            let t = Q.Fx(e.target, \"diff-review-row\");\n                            t && this._goToRow(t)\n                        }))), this._register(Q.mu(this.domNode.domNode, \"keydown\", (e => {\n                            (e.equals(18) || e.equals(2066) || e.equals(530)) && (e.preventDefault(), this._goToRow(this._getNextRow())), (e.equals(16) || e.equals(2064) || e.equals(528)) && (e.preventDefault(), this._goToRow(this._getPrevRow())), (e.equals(9) || e.equals(2057) || e.equals(521) || e.equals(1033)) && (e.preventDefault(), this.hide()), (e.equals(10) || e.equals(3)) && (e.preventDefault(), this.accept())\n                        }))), this._diffs = [], this._currentDiff = null\n                    }\n                    prev() {\n                        let e = 0;\n                        if (this._isVisible || (this._diffs = this._compute()), this._isVisible) {\n                            let t = -1;\n                            for (let e = 0, i = this._diffs.length; e < i; e++)\n                                if (this._diffs[e] === this._currentDiff) {\n                                    t = e;\n                                    break\n                                } e = this._diffs.length + t - 1\n                        } else e = this._findDiffIndex(this._diffEditor.getPosition());\n                        if (0 === this._diffs.length) return;\n                        e %= this._diffs.length;\n                        const t = this._diffs[e].entries;\n                        this._diffEditor.setPosition(new j.L(t[0].modifiedLineStart, 1)), this._diffEditor.setSelection({\n                            startColumn: 1,\n                            startLineNumber: t[0].modifiedLineStart,\n                            endColumn: 1073741824,\n                            endLineNumber: t[t.length - 1].modifiedLineEnd\n                        }), this._isVisible = !0, this._diffEditor.doLayout(), this._render(), this._goToRow(this._getNextRow())\n                    }\n                    next() {\n                        let e = 0;\n                        if (this._isVisible || (this._diffs = this._compute()), this._isVisible) {\n                            let t = -1;\n                            for (let e = 0, i = this._diffs.length; e < i; e++)\n                                if (this._diffs[e] === this._currentDiff) {\n                                    t = e;\n                                    break\n                                } e = t + 1\n                        } else e = this._findDiffIndex(this._diffEditor.getPosition());\n                        if (0 === this._diffs.length) return;\n                        e %= this._diffs.length;\n                        const t = this._diffs[e].entries;\n                        this._diffEditor.setPosition(new j.L(t[0].modifiedLineStart, 1)), this._diffEditor.setSelection({\n                            startColumn: 1,\n                            startLineNumber: t[0].modifiedLineStart,\n                            endColumn: 1073741824,\n                            endLineNumber: t[t.length - 1].modifiedLineEnd\n                        }), this._isVisible = !0, this._diffEditor.doLayout(), this._render(), this._goToRow(this._getNextRow())\n                    }\n                    accept() {\n                        let e = -1,\n                            t = this._getCurrentFocusedRow();\n                        if (t) {\n                            let i = parseInt(t.getAttribute(\"data-line\"), 10);\n                            isNaN(i) || (e = i)\n                        }\n                        this.hide(), -1 !== e && (this._diffEditor.setPosition(new j.L(e, 1)), this._diffEditor.revealPosition(new j.L(e, 1), 1))\n                    }\n                    hide() {\n                        this._isVisible = !1, this._diffEditor.updateOptions({\n                            readOnly: !1\n                        }), this._diffEditor.focus(), this._diffEditor.doLayout(), this._render()\n                    }\n                    _getPrevRow() {\n                        let e = this._getCurrentFocusedRow();\n                        return e ? e.previousElementSibling ? e.previousElementSibling : e : this._getFirstRow()\n                    }\n                    _getNextRow() {\n                        let e = this._getCurrentFocusedRow();\n                        return e ? e.nextElementSibling ? e.nextElementSibling : e : this._getFirstRow()\n                    }\n                    _getFirstRow() {\n                        return this.domNode.domNode.querySelector(\".diff-review-row\")\n                    }\n                    _getCurrentFocusedRow() {\n                        let e = document.activeElement;\n                        return e && /diff-review-row/.test(e.className) ? e : null\n                    }\n                    _goToRow(e) {\n                        let t = this._getCurrentFocusedRow();\n                        e.tabIndex = 0, e.focus(), t && t !== e && (t.tabIndex = -1), this.scrollbar.scanDomNode()\n                    }\n                    isVisible() {\n                        return this._isVisible\n                    }\n                    layout(e, t, i) {\n                        this._width = t, this.shadow.setTop(e - 6), this.shadow.setWidth(t), this.shadow.setHeight(this._isVisible ? 6 : 0), this.domNode.setTop(e), this.domNode.setWidth(t), this.domNode.setHeight(i), this._content.setHeight(i), this._content.setWidth(t), this._isVisible ? (this.actionBarContainer.setAttribute(\"aria-hidden\", \"false\"), this.actionBarContainer.setDisplay(\"block\")) : (this.actionBarContainer.setAttribute(\"aria-hidden\", \"true\"), this.actionBarContainer.setDisplay(\"none\"))\n                    }\n                    _compute() {\n                        const t = this._diffEditor.getLineChanges();\n                        if (!t || 0 === t.length) return [];\n                        const i = this._diffEditor.getOriginalEditor().getModel(),\n                            n = this._diffEditor.getModifiedEditor().getModel();\n                        return i && n ? e._mergeAdjacent(t, i.getLineCount(), n.getLineCount()) : []\n                    }\n                    static _mergeAdjacent(e, t, i) {\n                        if (!e || 0 === e.length) return [];\n                        let n = [],\n                            o = 0;\n                        for (let s = 0, r = e.length; s < r; s++) {\n                            const a = e[s],\n                                l = a.originalStartLineNumber,\n                                c = a.originalEndLineNumber,\n                                d = a.modifiedStartLineNumber,\n                                h = a.modifiedEndLineNumber;\n                            let u = [],\n                                g = 0; {\n                                const t = 0 === c ? l : l - 1,\n                                    i = 0 === h ? d : d - 1;\n                                let n = 1,\n                                    o = 1;\n                                if (s > 0) {\n                                    const t = e[s - 1];\n                                    n = 0 === t.originalEndLineNumber ? t.originalStartLineNumber + 1 : t.originalEndLineNumber + 1, o = 0 === t.modifiedEndLineNumber ? t.modifiedStartLineNumber + 1 : t.modifiedEndLineNumber + 1\n                                }\n                                let r = t - 3 + 1,\n                                    a = i - 3 + 1;\n                                if (r < n) {\n                                    const e = n - r;\n                                    r += e, a += e\n                                }\n                                if (a < o) {\n                                    const e = o - a;\n                                    r += e, a += e\n                                }\n                                u[g++] = new Cn(r, t, a, i)\n                            }\n                            0 !== c && (u[g++] = new Cn(l, c, 0, 0)), 0 !== h && (u[g++] = new Cn(0, 0, d, h)); {\n                                const n = 0 === c ? l + 1 : c + 1,\n                                    o = 0 === h ? d + 1 : h + 1;\n                                let a = t,\n                                    p = i;\n                                if (s + 1 < r) {\n                                    const t = e[s + 1];\n                                    a = 0 === t.originalEndLineNumber ? t.originalStartLineNumber : t.originalStartLineNumber - 1, p = 0 === t.modifiedEndLineNumber ? t.modifiedStartLineNumber : t.modifiedStartLineNumber - 1\n                                }\n                                let f = n + 3 - 1,\n                                    m = o + 3 - 1;\n                                if (f > a) {\n                                    const e = a - f;\n                                    f += e, m += e\n                                }\n                                if (m > p) {\n                                    const e = p - m;\n                                    f += e, m += e\n                                }\n                                u[g++] = new Cn(n, f, o, m)\n                            }\n                            n[o++] = new xn(u)\n                        }\n                        let s = n[0].entries,\n                            r = [],\n                            a = 0;\n                        for (let e = 1, t = n.length; e < t; e++) {\n                            const t = n[e].entries,\n                                i = s[s.length - 1],\n                                o = t[0];\n                            0 === i.getType() && 0 === o.getType() && o.originalLineStart <= i.originalLineEnd ? (s[s.length - 1] = new Cn(i.originalLineStart, o.originalLineEnd, i.modifiedLineStart, o.modifiedLineEnd), s = s.concat(t.slice(1))) : (r[a++] = new xn(s), s = t)\n                        }\n                        return r[a++] = new xn(s), r\n                    }\n                    _findDiffIndex(e) {\n                        const t = e.lineNumber;\n                        for (let e = 0, i = this._diffs.length; e < i; e++) {\n                            const i = this._diffs[e].entries;\n                            if (t <= i[i.length - 1].modifiedLineEnd) return e\n                        }\n                        return 0\n                    }\n                    _render() {\n                        const t = this._diffEditor.getOriginalEditor().getOptions(),\n                            i = this._diffEditor.getModifiedEditor().getOptions(),\n                            n = this._diffEditor.getOriginalEditor().getModel(),\n                            o = this._diffEditor.getModifiedEditor().getModel(),\n                            s = n.getOptions(),\n                            r = o.getOptions();\n                        if (!this._isVisible || !n || !o) return Q.PO(this._content.domNode), this._currentDiff = null, void this.scrollbar.scanDomNode();\n                        this._diffEditor.updateOptions({\n                            readOnly: !0\n                        });\n                        const a = this._findDiffIndex(this._diffEditor.getPosition());\n                        if (this._diffs[a] === this._currentDiff) return;\n                        this._currentDiff = this._diffs[a];\n                        const l = this._diffs[a].entries;\n                        let c = document.createElement(\"div\");\n                        c.className = \"diff-review-table\", c.setAttribute(\"role\", \"list\"), c.setAttribute(\"aria-label\", 'Difference review. Use \"Stage | Unstage | Revert Selected Ranges\" commands'), ln.V.applyFontInfoSlow(c, i.get(43));\n                        let d = 0,\n                            h = 0,\n                            u = 0,\n                            g = 0;\n                        for (let e = 0, t = l.length; e < t; e++) {\n                            const t = l[e],\n                                i = t.originalLineStart,\n                                n = t.originalLineEnd,\n                                o = t.modifiedLineStart,\n                                s = t.modifiedLineEnd;\n                            0 !== i && (0 === d || i < d) && (d = i), 0 !== n && (0 === h || n > h) && (h = n), 0 !== o && (0 === u || o < u) && (u = o), 0 !== s && (0 === g || s > g) && (g = s)\n                        }\n                        let p = document.createElement(\"div\");\n                        p.className = \"diff-review-row\";\n                        let f = document.createElement(\"div\");\n                        f.className = \"diff-review-cell diff-review-summary\";\n                        const m = h - d + 1,\n                            v = g - u + 1;\n                        f.appendChild(document.createTextNode(`${a+1}/${this._diffs.length}: @@ -${d},${m} +${u},${v} @@`)), p.setAttribute(\"data-line\", String(u));\n                        const _ = e => 0 === e ? bi.N(\"no_lines_changed\", \"no lines changed\") : 1 === e ? bi.N(\"one_line_changed\", \"1 line changed\") : bi.N(\"more_lines_changed\", \"{0} lines changed\", e),\n                            b = _(m),\n                            w = _(v);\n                        p.setAttribute(\"aria-label\", bi.N({\n                            key: \"header\",\n                            comment: [\"This is the ARIA label for a git diff header.\", \"A git diff header looks like this: @@ -154,12 +159,39 @@.\", \"That encodes that at original line 154 (which is now line 159), 12 lines were removed/changed with 39 lines.\", \"Variables 0 and 1 refer to the diff index out of total number of diffs.\", \"Variables 2 and 4 will be numbers (a line number).\", 'Variables 3 and 5 will be \"no lines changed\", \"1 line changed\" or \"X lines changed\", localized separately.']\n                        }, \"Difference {0} of {1}: original line {2}, {3}, modified line {4}, {5}\", a + 1, this._diffs.length, d, b, u, w)), p.appendChild(f), p.setAttribute(\"role\", \"listitem\"), c.appendChild(p);\n                        const y = i.get(58);\n                        let C = u;\n                        for (let a = 0, d = l.length; a < d; a++) {\n                            const d = l[a];\n                            e._renderSection(c, d, C, y, this._width, t, n, s, i, o, r, this._modeService.languageIdCodec), 0 !== d.modifiedLineStart && (C = d.modifiedLineEnd)\n                        }\n                        Q.PO(this._content.domNode), this._content.domNode.appendChild(c), this.scrollbar.scanDomNode()\n                    }\n                    static _renderSection(t, i, n, o, s, r, a, l, c, d, h, u) {\n                        const g = i.getType();\n                        let p = \"diff-review-row\",\n                            f = \"\";\n                        let m = null;\n                        switch (g) {\n                            case 1:\n                                p = \"diff-review-row line-insert\", f = \" char-insert\", m = Sn;\n                                break;\n                            case 2:\n                                p = \"diff-review-row line-delete\", f = \" char-delete\", m = kn\n                        }\n                        const v = i.originalLineStart,\n                            _ = i.originalLineEnd,\n                            b = i.modifiedLineStart,\n                            w = i.modifiedLineEnd,\n                            y = Math.max(w - b, _ - v),\n                            C = r.get(129),\n                            x = C.glyphMarginWidth + C.lineNumbersWidth,\n                            S = c.get(129),\n                            k = 10 + S.glyphMarginWidth + S.lineNumbersWidth;\n                        for (let i = 0; i <= y; i++) {\n                            const _ = 0 === v ? 0 : v + i,\n                                w = 0 === b ? 0 : b + i,\n                                y = document.createElement(\"div\");\n                            y.style.minWidth = s + \"px\", y.className = p, y.setAttribute(\"role\", \"listitem\"), 0 !== w && (n = w), y.setAttribute(\"data-line\", String(n));\n                            let C = document.createElement(\"div\");\n                            C.className = \"diff-review-cell\", C.style.height = `${o}px`, y.appendChild(C);\n                            const S = document.createElement(\"span\");\n                            S.style.width = x + \"px\", S.style.minWidth = x + \"px\", S.className = \"diff-review-line-number\" + f, 0 !== _ ? S.appendChild(document.createTextNode(String(_))) : S.innerText = \" \", C.appendChild(S);\n                            const L = document.createElement(\"span\");\n                            L.style.width = k + \"px\", L.style.minWidth = k + \"px\", L.style.paddingRight = \"10px\", L.className = \"diff-review-line-number\" + f, 0 !== w ? L.appendChild(document.createTextNode(String(w))) : L.innerText = \" \", C.appendChild(L);\n                            const N = document.createElement(\"span\");\n                            if (N.className = \"diff-review-spacer\", m) {\n                                const e = document.createElement(\"span\");\n                                e.className = mn.kS.asClassName(m), e.innerText = \"  \", N.appendChild(e)\n                            } else N.innerText = \"  \";\n                            let D;\n                            if (C.appendChild(N), 0 !== w) {\n                                let t = this._renderLine(d, c, h.tabSize, w, u);\n                                e._ttPolicy && (t = e._ttPolicy.createHTML(t)), C.insertAdjacentHTML(\"beforeend\", t), D = d.getLineContent(w)\n                            } else {\n                                let t = this._renderLine(a, r, l.tabSize, _, u);\n                                e._ttPolicy && (t = e._ttPolicy.createHTML(t)), C.insertAdjacentHTML(\"beforeend\", t), D = a.getLineContent(_)\n                            }\n                            0 === D.length && (D = bi.N(\"blankLine\", \"blank\"));\n                            let I = \"\";\n                            switch (g) {\n                                case 0:\n                                    I = _ === w ? bi.N({\n                                        key: \"unchangedLine\",\n                                        comment: [\"The placeholders are contents of the line and should not be translated.\"]\n                                    }, \"{0} unchanged line {1}\", D, _) : bi.N(\"equalLine\", \"{0} original line {1} modified line {2}\", D, _, w);\n                                    break;\n                                case 1:\n                                    I = bi.N(\"insertLine\", \"+ {0} modified line {1}\", D, w);\n                                    break;\n                                case 2:\n                                    I = bi.N(\"deleteLine\", \"- {0} original line {1}\", D, _)\n                            }\n                            y.setAttribute(\"aria-label\", I), t.appendChild(y)\n                        }\n                    }\n                    static _renderLine(e, t, i, n, o) {\n                        const s = e.getLineContent(n),\n                            r = t.get(43),\n                            a = Ot.A.createEmpty(s, o),\n                            l = Rt.wA.isBasicASCII(s, e.mightContainNonBasicASCII()),\n                            c = Rt.wA.containsRTL(s, l, e.mightContainRTL());\n                        return (0, Pt.tF)(new Pt.IJ(r.isMonospace && !t.get(29), r.canUseHalfwidthRightwardsArrow, s, !1, l, c, 0, a, [], i, 0, r.spaceWidth, r.middotWidth, r.wsmiddotWidth, t.get(104), t.get(87), t.get(82), t.get(44) !== B.n0.OFF, null)).html\n                    }\n                };\n                Nn._ttPolicy = null === (nn = window.trustedTypes) || void 0 === nn ? void 0 : nn.createPolicy(\"diffReview\", {\n                    createHTML: e => e\n                }), Nn = bn([wn(1, Ce.h)], Nn), (0, mn.Ic)(((e, t) => {\n                    const i = e.getColor(pn.hw);\n                    i && t.addRule(`.monaco-diff-editor .diff-review-line-number { color: ${i}; }`);\n                    const n = e.getColor(fn._w);\n                    n && t.addRule(`.monaco-diff-editor .diff-review-shadow { box-shadow: ${n} 0 -6px 6px -6px inset; }`)\n                }));\n                class Dn extends gn.R6 {\n                    constructor() {\n                        super({\n                            id: \"editor.action.diffReview.next\",\n                            label: bi.N(\"editor.action.diffReview.next\", \"Go to Next Difference\"),\n                            alias: \"Go to Next Difference\",\n                            precondition: xi.Ao.has(\"isInDiffEditor\"),\n                            kbOpts: {\n                                kbExpr: null,\n                                primary: 65,\n                                weight: 100\n                            }\n                        })\n                    }\n                    run(e, t) {\n                        const i = En(e);\n                        i && i.diffReviewNext()\n                    }\n                }\n                class In extends gn.R6 {\n                    constructor() {\n                        super({\n                            id: \"editor.action.diffReview.prev\",\n                            label: bi.N(\"editor.action.diffReview.prev\", \"Go to Previous Difference\"),\n                            alias: \"Go to Previous Difference\",\n                            precondition: xi.Ao.has(\"isInDiffEditor\"),\n                            kbOpts: {\n                                kbExpr: null,\n                                primary: 1089,\n                                weight: 100\n                            }\n                        })\n                    }\n                    run(e, t) {\n                        const i = En(e);\n                        i && i.diffReviewPrev()\n                    }\n                }\n\n                function En(e) {\n                    const t = e.get(Y.$),\n                        i = t.listDiffEditors(),\n                        n = t.getActiveCodeEditor();\n                    if (!n) return null;\n                    for (let e = 0, t = i.length; e < t; e++) {\n                        const t = i[e];\n                        if (t.getModifiedEditor().getId() === n.getId() || t.getOriginalEditor().getId() === n.getId()) return t\n                    }\n                    return null\n                }(0, gn.Qr)(Dn), (0, gn.Qr)(In);\n                var Tn = i(50072),\n                    Mn = i(44174),\n                    An = i(92003),\n                    On = i(92550),\n                    Pn = i(72065),\n                    Rn = i(60972),\n                    Fn = i(5606),\n                    Bn = function(e, t, i, n) {\n                        return new(i || (i = Promise))((function(o, s) {\n                            function r(e) {\n                                try {\n                                    l(n.next(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function a(e) {\n                                try {\n                                    l(n.throw(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function l(e) {\n                                var t;\n                                e.done ? o(e.value) : (t = e.value, t instanceof i ? t : new i((function(e) {\n                                    e(t)\n                                }))).then(r, a)\n                            }\n                            l((n = n.apply(e, t || [])).next())\n                        }))\n                    };\n                class Vn extends ue.JT {\n                    constructor(e, t, i, n, o, s) {\n                        super(), this._viewZoneId = e, this._marginDomNode = t, this.editor = i, this.diff = n, this._contextMenuService = o, this._clipboardService = s, this._visibility = !1, this._marginDomNode.style.zIndex = \"10\", this._diffActions = document.createElement(\"div\"), this._diffActions.className = vn.lA.lightBulb.classNames + \" lightbulb-glyph\", this._diffActions.style.position = \"absolute\";\n                        const r = i.getOption(58),\n                            a = i.getModel().getEOL();\n                        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);\n                        const l = [],\n                            c = 0 === n.modifiedEndLineNumber;\n                        l.push(new un.aU(\"diff.clipboard.copyDeletedContent\", c ? n.originalEndLineNumber > n.modifiedStartLineNumber ? bi.N(\"diff.clipboard.copyDeletedLinesContent.label\", \"Copy deleted lines\") : bi.N(\"diff.clipboard.copyDeletedLinesContent.single.label\", \"Copy deleted line\") : n.originalEndLineNumber > n.modifiedStartLineNumber ? bi.N(\"diff.clipboard.copyChangedLinesContent.label\", \"Copy changed lines\") : bi.N(\"diff.clipboard.copyChangedLinesContent.single.label\", \"Copy changed line\"), void 0, !0, (() => Bn(this, void 0, void 0, (function*() {\n                            const e = new U.e(n.originalStartLineNumber, 1, n.originalEndLineNumber + 1, 1),\n                                t = n.originalModel.getValueInRange(e);\n                            yield this._clipboardService.writeText(t)\n                        })))));\n                        let d, h = 0;\n                        n.originalEndLineNumber > n.modifiedStartLineNumber && (d = new un.aU(\"diff.clipboard.copyDeletedLineContent\", c ? bi.N(\"diff.clipboard.copyDeletedLineContent.label\", \"Copy deleted line ({0})\", n.originalStartLineNumber) : bi.N(\"diff.clipboard.copyChangedLineContent.label\", \"Copy changed line ({0})\", n.originalStartLineNumber), void 0, !0, (() => Bn(this, void 0, void 0, (function*() {\n                            const e = n.originalModel.getLineContent(n.originalStartLineNumber + h);\n                            if (\"\" === e) {\n                                const e = n.originalModel.getEndOfLineSequence();\n                                yield this._clipboardService.writeText(0 === e ? \"\\n\" : \"\\r\\n\")\n                            } else yield this._clipboardService.writeText(e)\n                        })))), l.push(d));\n                        i.getOption(80) || l.push(new un.aU(\"diff.inline.revertChange\", bi.N(\"diff.inline.revertChange.label\", \"Revert this change\"), void 0, !0, (() => Bn(this, void 0, void 0, (function*() {\n                            const e = new U.e(n.originalStartLineNumber, 1, n.originalEndLineNumber, n.originalModel.getLineMaxColumn(n.originalEndLineNumber)),\n                                t = n.originalModel.getValueInRange(e);\n                            if (0 === n.modifiedEndLineNumber) {\n                                const e = i.getModel().getLineMaxColumn(n.modifiedStartLineNumber);\n                                i.executeEdits(\"diffEditor\", [{\n                                    range: new U.e(n.modifiedStartLineNumber, e, n.modifiedStartLineNumber, e),\n                                    text: a + t\n                                }])\n                            } else {\n                                const e = i.getModel().getLineMaxColumn(n.modifiedEndLineNumber);\n                                i.executeEdits(\"diffEditor\", [{\n                                    range: new U.e(n.modifiedStartLineNumber, 1, n.modifiedEndLineNumber, e),\n                                    text: t\n                                }])\n                            }\n                        })))));\n                        const u = (e, t) => {\n                            this._contextMenuService.showContextMenu({\n                                getAnchor: () => ({\n                                    x: e,\n                                    y: t\n                                }),\n                                getActions: () => (d && (d.label = c ? bi.N(\"diff.clipboard.copyDeletedLineContent.label\", \"Copy deleted line ({0})\", n.originalStartLineNumber + h) : bi.N(\"diff.clipboard.copyChangedLineContent.label\", \"Copy changed line ({0})\", n.originalStartLineNumber + h)), l),\n                                autoSelectFirstItem: !0\n                            })\n                        };\n                        this._register(Q.mu(this._diffActions, \"mousedown\", (e => {\n                            const {\n                                top: t,\n                                height: i\n                            } = Q.i(this._diffActions);\n                            let n = Math.floor(r / 3);\n                            e.preventDefault(), u(e.posx, t + i + n)\n                        }))), this._register(i.onMouseMove((e => {\n                            if (8 === e.target.type || 5 === e.target.type) {\n                                e.target.detail.viewZoneId === this._viewZoneId ? (this.visibility = !0, h = this._updateLightBulbPosition(this._marginDomNode, e.event.browserEvent.y, r)) : this.visibility = !1\n                            } else this.visibility = !1\n                        }))), this._register(i.onMouseDown((e => {\n                            if (e.event.rightButton && (8 === e.target.type || 5 === e.target.type)) {\n                                e.target.detail.viewZoneId === this._viewZoneId && (e.event.preventDefault(), h = this._updateLightBulbPosition(this._marginDomNode, e.event.browserEvent.y, r), u(e.event.posx, e.event.posy + r))\n                            }\n                        })))\n                    }\n                    get visibility() {\n                        return this._visibility\n                    }\n                    set visibility(e) {\n                        this._visibility !== e && (this._visibility = e, this._diffActions.style.visibility = e ? \"visible\" : \"hidden\")\n                    }\n                    _updateLightBulbPosition(e, t, i) {\n                        const {\n                            top: n\n                        } = Q.i(e), o = t - n, s = Math.floor(o / i), r = s * i;\n                        if (this._diffActions.style.top = `${r}px`, this.diff.viewLineCounts) {\n                            let e = 0;\n                            for (let t = 0; t < this.diff.viewLineCounts.length; t++)\n                                if (e += this.diff.viewLineCounts[t], s < e) return t\n                        }\n                        return s\n                    }\n                }\n                var Wn, Hn = i(84972),\n                    zn = i(90535),\n                    jn = i(54534),\n                    Un = i(96542),\n                    $n = function(e, t, i, n) {\n                        var o, s = arguments.length,\n                            r = s < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n                        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) r = Reflect.decorate(e, t, i, n);\n                        else\n                            for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (r = (s < 3 ? o(r) : s > 3 ? o(t, i, r) : o(t, i)) || r);\n                        return s > 3 && r && Object.defineProperty(t, i, r), r\n                    },\n                    Kn = function(e, t) {\n                        return function(i, n) {\n                            t(i, n, e)\n                        }\n                    };\n                class qn {\n                    constructor(e, t) {\n                        this._contextMenuService = e, this._clipboardService = t, this._zones = [], this._inlineDiffMargins = [], this._zonesMap = {}, this._decorations = []\n                    }\n                    getForeignViewZones(e) {\n                        return e.filter((e => !this._zonesMap[String(e.id)]))\n                    }\n                    clean(e) {\n                        this._zones.length > 0 && e.changeViewZones((e => {\n                            for (const t of this._zones) e.removeZone(t)\n                        })), this._zones = [], this._zonesMap = {}, this._decorations = e.deltaDecorations(this._decorations, [])\n                    }\n                    apply(e, t, i, n) {\n                        const o = n ? cn.ZF.capture(e) : null;\n                        e.changeViewZones((t => {\n                            var n;\n                            for (const e of this._zones) t.removeZone(e);\n                            for (const e of this._inlineDiffMargins) e.dispose();\n                            this._zones = [], this._zonesMap = {}, this._inlineDiffMargins = [];\n                            for (let o = 0, s = i.zones.length; o < s; o++) {\n                                const s = i.zones[o];\n                                s.suppressMouseDown = !0;\n                                const r = t.addZone(s);\n                                this._zones.push(r), this._zonesMap[String(r)] = !0, i.zones[o].diff && s.marginDomNode && (s.suppressMouseDown = !1, 0 !== (null === (n = i.zones[o].diff) || void 0 === n ? void 0 : n.originalModel.getValueLength()) && this._inlineDiffMargins.push(new Vn(r, s.marginDomNode, e, i.zones[o].diff, this._contextMenuService, this._clipboardService)))\n                            }\n                        })), o && o.restore(e), this._decorations = e.deltaDecorations(this._decorations, i.decorations), t && t.setZones(i.overviewZones)\n                    }\n                }\n                let Zn = 0;\n                const Gn = (0, _n.q5)(\"diff-insert\", vn.lA.add, bi.N(\"diffInsertIcon\", \"Line decoration for inserts in the diff editor.\")),\n                    Yn = (0, _n.q5)(\"diff-remove\", vn.lA.remove, bi.N(\"diffRemoveIcon\", \"Line decoration for removals in the diff editor.\")),\n                    Qn = null === (Wn = window.trustedTypes) || void 0 === Wn ? void 0 : Wn.createPolicy(\"diffEditorWidget\", {\n                        createHTML: e => e\n                    });\n                let Xn = class e extends ue.JT {\n                    constructor(t, i, n, o, s, r, a, l, c, d, h, u) {\n                        super(), this._editorProgressService = u, this._onDidDispose = this._register(new W.Q5), this.onDidDispose = this._onDidDispose.event, this._onDidUpdateDiff = this._register(new W.Q5), this.onDidUpdateDiff = this._onDidUpdateDiff.event, this._onDidContentSizeChange = this._register(new W.Q5), this._lastOriginalWarning = null, this._lastModifiedWarning = null, this._editorWorkerService = s, this._codeEditorService = l, this._contextKeyService = this._register(r.createScoped(t)), this._instantiationService = a.createChild(new Rn.y([xi.i6, this._contextKeyService])), this._contextKeyService.createKey(\"isInDiffEditor\", !0), this._themeService = c, this._notificationService = d, this._id = ++Zn, this._state = 0, this._updatingDiffProgress = null, this._domElement = t, i = i || {}, this._options = go(i, {\n                            enableSplitViewResizing: !0,\n                            renderSideBySide: !0,\n                            maxComputationTime: 5e3,\n                            maxFileSize: 50,\n                            ignoreTrimWhitespace: !0,\n                            renderIndicators: !0,\n                            originalEditable: !1,\n                            diffCodeLens: !1,\n                            renderOverviewRuler: !0,\n                            diffWordWrap: \"inherit\"\n                        }), void 0 !== i.isInEmbeddedEditor ? this._contextKeyService.createKey(\"isInEmbeddedDiffEditor\", i.isInEmbeddedEditor) : this._contextKeyService.createKey(\"isInEmbeddedDiffEditor\", !1), this._updateDecorationsRunner = this._register(new Se.pY((() => this._updateDecorations()), 0)), this._containerDomElement = document.createElement(\"div\"), this._containerDomElement.className = e._getClassName(this._themeService.getColorTheme(), this._options.renderSideBySide), this._containerDomElement.style.position = \"relative\", this._containerDomElement.style.height = \"100%\", this._domElement.appendChild(this._containerDomElement), this._overviewViewportDomElement = (0, rn.X)(document.createElement(\"div\")), this._overviewViewportDomElement.setClassName(\"diffViewport\"), this._overviewViewportDomElement.setPosition(\"absolute\"), this._overviewDomElement = document.createElement(\"div\"), this._overviewDomElement.className = \"diffOverview\", this._overviewDomElement.style.position = \"absolute\", this._overviewDomElement.appendChild(this._overviewViewportDomElement.domNode), this._register(Q.mu(this._overviewDomElement, \"mousedown\", (e => {\n                            this._modifiedEditor.delegateVerticalScrollbarMouseDown(e)\n                        }))), this._options.renderOverviewRuler && this._containerDomElement.appendChild(this._overviewDomElement), this._originalDomNode = document.createElement(\"div\"), this._originalDomNode.className = \"editor original\", this._originalDomNode.style.position = \"absolute\", this._originalDomNode.style.height = \"100%\", this._containerDomElement.appendChild(this._originalDomNode), this._modifiedDomNode = document.createElement(\"div\"), this._modifiedDomNode.className = \"editor modified\", this._modifiedDomNode.style.position = \"absolute\", this._modifiedDomNode.style.height = \"100%\", this._containerDomElement.appendChild(this._modifiedDomNode), this._beginUpdateDecorationsTimeout = -1, this._currentlyChangingViewZones = !1, this._diffComputationToken = 0, this._originalEditorState = new qn(h, o), this._modifiedEditorState = new qn(h, o), this._isVisible = !0, this._isHandlingScrollEvent = !1, this._elementSizeObserver = this._register(new jn.I(this._containerDomElement, i.dimension, (() => this._onDidContainerSizeChanged()))), i.automaticLayout && this._elementSizeObserver.startObserving(), this._diffComputationResult = null, this._originalEditor = this._createLeftHandSideEditor(i, n.originalEditor || {}), this._modifiedEditor = this._createRightHandSideEditor(i, n.modifiedEditor || {}), this._originalOverviewRuler = null, this._modifiedOverviewRuler = null, this._reviewPane = a.createInstance(Nn, this), this._containerDomElement.appendChild(this._reviewPane.domNode.domNode), this._containerDomElement.appendChild(this._reviewPane.shadow.domNode), this._containerDomElement.appendChild(this._reviewPane.actionBarContainer.domNode), this._options.renderSideBySide ? this._setStrategy(new oo(this._createDataSource(), this._options.enableSplitViewResizing)) : this._setStrategy(new ro(this._createDataSource(), this._options.enableSplitViewResizing)), this._register(c.onDidColorThemeChange((t => {\n                            this._strategy && this._strategy.applyColors(t) && this._updateDecorationsRunner.schedule(), this._containerDomElement.className = e._getClassName(this._themeService.getColorTheme(), this._options.renderSideBySide)\n                        })));\n                        const g = gn.Uc.getDiffEditorContributions();\n                        for (const e of g) try {\n                            this._register(a.createInstance(e.ctor, this))\n                        } catch (e) {\n                            (0, ke.dL)(e)\n                        }\n                        this._codeEditorService.addDiffEditor(this)\n                    }\n                    _setState(e) {\n                        this._state !== e && (this._state = e, this._updatingDiffProgress && (this._updatingDiffProgress.done(), this._updatingDiffProgress = null), 1 === this._state && (this._updatingDiffProgress = this._editorProgressService.show(!0, 1e3)))\n                    }\n                    diffReviewNext() {\n                        this._reviewPane.next()\n                    }\n                    diffReviewPrev() {\n                        this._reviewPane.prev()\n                    }\n                    static _getClassName(e, t) {\n                        let i = \"monaco-diff-editor monaco-editor-background \";\n                        return t && (i += \"side-by-side \"), i += (0, mn.m6)(e.type), i\n                    }\n                    _recreateOverviewRulers() {\n                        this._options.renderOverviewRuler && (this._originalOverviewRuler && (this._overviewDomElement.removeChild(this._originalOverviewRuler.getDomNode()), this._originalOverviewRuler.dispose()), this._originalEditor.hasModel() && (this._originalOverviewRuler = this._originalEditor.createOverviewRuler(\"original diffOverviewRuler\"), this._overviewDomElement.appendChild(this._originalOverviewRuler.getDomNode())), this._modifiedOverviewRuler && (this._overviewDomElement.removeChild(this._modifiedOverviewRuler.getDomNode()), this._modifiedOverviewRuler.dispose()), this._modifiedEditor.hasModel() && (this._modifiedOverviewRuler = this._modifiedEditor.createOverviewRuler(\"modified diffOverviewRuler\"), this._overviewDomElement.appendChild(this._modifiedOverviewRuler.getDomNode())), this._layoutOverviewRulers())\n                    }\n                    _createLeftHandSideEditor(t, i) {\n                        const n = this._createInnerEditor(this._instantiationService, this._originalDomNode, this._adjustOptionsForLeftHandSide(t), i);\n                        this._register(n.onDidScrollChange((e => {\n                            this._isHandlingScrollEvent || (e.scrollTopChanged || e.scrollLeftChanged || e.scrollHeightChanged) && (this._isHandlingScrollEvent = !0, this._modifiedEditor.setScrollPosition({\n                                scrollLeft: e.scrollLeft,\n                                scrollTop: e.scrollTop\n                            }), this._isHandlingScrollEvent = !1, this._layoutOverviewViewport())\n                        }))), this._register(n.onDidChangeViewZones((() => {\n                            this._onViewZonesChanged()\n                        }))), this._register(n.onDidChangeConfiguration((e => {\n                            n.getModel() && (e.hasChanged(43) && this._updateDecorationsRunner.schedule(), e.hasChanged(130) && (this._updateDecorationsRunner.cancel(), this._updateDecorations()))\n                        }))), this._register(n.onDidChangeHiddenAreas((() => {\n                            this._updateDecorationsRunner.cancel(), this._updateDecorations()\n                        }))), this._register(n.onDidChangeModelContent((() => {\n                            this._isVisible && this._beginUpdateDecorationsSoon()\n                        })));\n                        const o = this._contextKeyService.createKey(\"isInDiffLeftEditor\", n.hasWidgetFocus());\n                        return this._register(n.onDidFocusEditorWidget((() => o.set(!0)))), this._register(n.onDidBlurEditorWidget((() => o.set(!1)))), this._register(n.onDidContentSizeChange((t => {\n                            const i = this._originalEditor.getContentWidth() + this._modifiedEditor.getContentWidth() + e.ONE_OVERVIEW_WIDTH,\n                                n = Math.max(this._modifiedEditor.getContentHeight(), this._originalEditor.getContentHeight());\n                            this._onDidContentSizeChange.fire({\n                                contentHeight: n,\n                                contentWidth: i,\n                                contentHeightChanged: t.contentHeightChanged,\n                                contentWidthChanged: t.contentWidthChanged\n                            })\n                        }))), n\n                    }\n                    _createRightHandSideEditor(t, i) {\n                        const n = this._createInnerEditor(this._instantiationService, this._modifiedDomNode, this._adjustOptionsForRightHandSide(t), i);\n                        this._register(n.onDidScrollChange((e => {\n                            this._isHandlingScrollEvent || (e.scrollTopChanged || e.scrollLeftChanged || e.scrollHeightChanged) && (this._isHandlingScrollEvent = !0, this._originalEditor.setScrollPosition({\n                                scrollLeft: e.scrollLeft,\n                                scrollTop: e.scrollTop\n                            }), this._isHandlingScrollEvent = !1, this._layoutOverviewViewport())\n                        }))), this._register(n.onDidChangeViewZones((() => {\n                            this._onViewZonesChanged()\n                        }))), this._register(n.onDidChangeConfiguration((e => {\n                            n.getModel() && (e.hasChanged(43) && this._updateDecorationsRunner.schedule(), e.hasChanged(130) && (this._updateDecorationsRunner.cancel(), this._updateDecorations()))\n                        }))), this._register(n.onDidChangeHiddenAreas((() => {\n                            this._updateDecorationsRunner.cancel(), this._updateDecorations()\n                        }))), this._register(n.onDidChangeModelContent((() => {\n                            this._isVisible && this._beginUpdateDecorationsSoon()\n                        }))), this._register(n.onDidChangeModelOptions((e => {\n                            e.tabSize && this._updateDecorationsRunner.schedule()\n                        })));\n                        const o = this._contextKeyService.createKey(\"isInDiffRightEditor\", n.hasWidgetFocus());\n                        return this._register(n.onDidFocusEditorWidget((() => o.set(!0)))), this._register(n.onDidBlurEditorWidget((() => o.set(!1)))), this._register(n.onDidContentSizeChange((t => {\n                            const i = this._originalEditor.getContentWidth() + this._modifiedEditor.getContentWidth() + e.ONE_OVERVIEW_WIDTH,\n                                n = Math.max(this._modifiedEditor.getContentHeight(), this._originalEditor.getContentHeight());\n                            this._onDidContentSizeChange.fire({\n                                contentHeight: n,\n                                contentWidth: i,\n                                contentHeightChanged: t.contentHeightChanged,\n                                contentWidthChanged: t.contentWidthChanged\n                            })\n                        }))), n\n                    }\n                    _createInnerEditor(e, t, i, n) {\n                        return e.createInstance(sn.Gm, t, i, n)\n                    }\n                    dispose() {\n                        this._codeEditorService.removeDiffEditor(this), -1 !== this._beginUpdateDecorationsTimeout && (window.clearTimeout(this._beginUpdateDecorationsTimeout), this._beginUpdateDecorationsTimeout = -1), this._cleanViewZonesAndDecorations(), this._originalOverviewRuler && (this._overviewDomElement.removeChild(this._originalOverviewRuler.getDomNode()), this._originalOverviewRuler.dispose()), this._modifiedOverviewRuler && (this._overviewDomElement.removeChild(this._modifiedOverviewRuler.getDomNode()), this._modifiedOverviewRuler.dispose()), this._overviewDomElement.removeChild(this._overviewViewportDomElement.domNode), this._options.renderOverviewRuler && this._containerDomElement.removeChild(this._overviewDomElement), this._containerDomElement.removeChild(this._originalDomNode), this._originalEditor.dispose(), this._containerDomElement.removeChild(this._modifiedDomNode), this._modifiedEditor.dispose(), this._strategy.dispose(), this._containerDomElement.removeChild(this._reviewPane.domNode.domNode), this._containerDomElement.removeChild(this._reviewPane.shadow.domNode), this._containerDomElement.removeChild(this._reviewPane.actionBarContainer.domNode), this._reviewPane.dispose(), this._domElement.removeChild(this._containerDomElement), this._onDidDispose.fire(), super.dispose()\n                    }\n                    getId() {\n                        return this.getEditorType() + \":\" + this._id\n                    }\n                    getEditorType() {\n                        return ve.g.IDiffEditor\n                    }\n                    getLineChanges() {\n                        return this._diffComputationResult ? this._diffComputationResult.changes : null\n                    }\n                    getOriginalEditor() {\n                        return this._originalEditor\n                    }\n                    getModifiedEditor() {\n                        return this._modifiedEditor\n                    }\n                    updateOptions(t) {\n                        const i = go(t, this._options),\n                            n = (o = this._options, s = i, {\n                                enableSplitViewResizing: o.enableSplitViewResizing !== s.enableSplitViewResizing,\n                                renderSideBySide: o.renderSideBySide !== s.renderSideBySide,\n                                maxComputationTime: o.maxComputationTime !== s.maxComputationTime,\n                                maxFileSize: o.maxFileSize !== s.maxFileSize,\n                                ignoreTrimWhitespace: o.ignoreTrimWhitespace !== s.ignoreTrimWhitespace,\n                                renderIndicators: o.renderIndicators !== s.renderIndicators,\n                                originalEditable: o.originalEditable !== s.originalEditable,\n                                diffCodeLens: o.diffCodeLens !== s.diffCodeLens,\n                                renderOverviewRuler: o.renderOverviewRuler !== s.renderOverviewRuler,\n                                diffWordWrap: o.diffWordWrap !== s.diffWordWrap\n                            });\n                        var o, s;\n                        this._options = i;\n                        const r = n.ignoreTrimWhitespace || n.renderIndicators,\n                            a = this._isVisible && (n.maxComputationTime || n.maxFileSize);\n                        r ? this._beginUpdateDecorations() : a && this._beginUpdateDecorationsSoon(), this._modifiedEditor.updateOptions(this._adjustOptionsForRightHandSide(t)), this._originalEditor.updateOptions(this._adjustOptionsForLeftHandSide(t)), this._strategy.setEnableSplitViewResizing(this._options.enableSplitViewResizing), n.renderSideBySide && (this._options.renderSideBySide ? this._setStrategy(new oo(this._createDataSource(), this._options.enableSplitViewResizing)) : this._setStrategy(new ro(this._createDataSource(), this._options.enableSplitViewResizing)), this._containerDomElement.className = e._getClassName(this._themeService.getColorTheme(), this._options.renderSideBySide)), n.renderOverviewRuler && (this._options.renderOverviewRuler ? this._containerDomElement.appendChild(this._overviewDomElement) : this._containerDomElement.removeChild(this._overviewDomElement))\n                    }\n                    getModel() {\n                        return {\n                            original: this._originalEditor.getModel(),\n                            modified: this._modifiedEditor.getModel()\n                        }\n                    }\n                    setModel(e) {\n                        if (e && (!e.original || !e.modified)) throw new Error(e.original ? \"DiffEditorWidget.setModel: Modified model is null\" : \"DiffEditorWidget.setModel: Original model is null\");\n                        this._cleanViewZonesAndDecorations(), this._originalEditor.setModel(e ? e.original : null), this._modifiedEditor.setModel(e ? e.modified : null), this._updateDecorationsRunner.cancel(), e && (this._originalEditor.setScrollTop(0), this._modifiedEditor.setScrollTop(0)), this._diffComputationResult = null, this._diffComputationToken++, this._setState(0), e && (this._recreateOverviewRulers(), this._beginUpdateDecorations()), this._layoutOverviewViewport()\n                    }\n                    getDomNode() {\n                        return this._domElement\n                    }\n                    getVisibleColumnFromPosition(e) {\n                        return this._modifiedEditor.getVisibleColumnFromPosition(e)\n                    }\n                    getPosition() {\n                        return this._modifiedEditor.getPosition()\n                    }\n                    setPosition(e) {\n                        this._modifiedEditor.setPosition(e)\n                    }\n                    revealLine(e, t = 0) {\n                        this._modifiedEditor.revealLine(e, t)\n                    }\n                    revealLineInCenter(e, t = 0) {\n                        this._modifiedEditor.revealLineInCenter(e, t)\n                    }\n                    revealLineInCenterIfOutsideViewport(e, t = 0) {\n                        this._modifiedEditor.revealLineInCenterIfOutsideViewport(e, t)\n                    }\n                    revealLineNearTop(e, t = 0) {\n                        this._modifiedEditor.revealLineNearTop(e, t)\n                    }\n                    revealPosition(e, t = 0) {\n                        this._modifiedEditor.revealPosition(e, t)\n                    }\n                    revealPositionInCenter(e, t = 0) {\n                        this._modifiedEditor.revealPositionInCenter(e, t)\n                    }\n                    revealPositionInCenterIfOutsideViewport(e, t = 0) {\n                        this._modifiedEditor.revealPositionInCenterIfOutsideViewport(e, t)\n                    }\n                    revealPositionNearTop(e, t = 0) {\n                        this._modifiedEditor.revealPositionNearTop(e, t)\n                    }\n                    getSelection() {\n                        return this._modifiedEditor.getSelection()\n                    }\n                    getSelections() {\n                        return this._modifiedEditor.getSelections()\n                    }\n                    setSelection(e) {\n                        this._modifiedEditor.setSelection(e)\n                    }\n                    setSelections(e) {\n                        this._modifiedEditor.setSelections(e)\n                    }\n                    revealLines(e, t, i = 0) {\n                        this._modifiedEditor.revealLines(e, t, i)\n                    }\n                    revealLinesInCenter(e, t, i = 0) {\n                        this._modifiedEditor.revealLinesInCenter(e, t, i)\n                    }\n                    revealLinesInCenterIfOutsideViewport(e, t, i = 0) {\n                        this._modifiedEditor.revealLinesInCenterIfOutsideViewport(e, t, i)\n                    }\n                    revealLinesNearTop(e, t, i = 0) {\n                        this._modifiedEditor.revealLinesNearTop(e, t, i)\n                    }\n                    revealRange(e, t = 0, i = !1, n = !0) {\n                        this._modifiedEditor.revealRange(e, t, i, n)\n                    }\n                    revealRangeInCenter(e, t = 0) {\n                        this._modifiedEditor.revealRangeInCenter(e, t)\n                    }\n                    revealRangeInCenterIfOutsideViewport(e, t = 0) {\n                        this._modifiedEditor.revealRangeInCenterIfOutsideViewport(e, t)\n                    }\n                    revealRangeNearTop(e, t = 0) {\n                        this._modifiedEditor.revealRangeNearTop(e, t)\n                    }\n                    revealRangeNearTopIfOutsideViewport(e, t = 0) {\n                        this._modifiedEditor.revealRangeNearTopIfOutsideViewport(e, t)\n                    }\n                    revealRangeAtTop(e, t = 0) {\n                        this._modifiedEditor.revealRangeAtTop(e, t)\n                    }\n                    getSupportedActions() {\n                        return this._modifiedEditor.getSupportedActions()\n                    }\n                    saveViewState() {\n                        return {\n                            original: this._originalEditor.saveViewState(),\n                            modified: this._modifiedEditor.saveViewState()\n                        }\n                    }\n                    restoreViewState(e) {\n                        if (e && e.original && e.modified) {\n                            const t = e;\n                            this._originalEditor.restoreViewState(t.original), this._modifiedEditor.restoreViewState(t.modified)\n                        }\n                    }\n                    layout(e) {\n                        this._elementSizeObserver.observe(e)\n                    }\n                    focus() {\n                        this._modifiedEditor.focus()\n                    }\n                    hasTextFocus() {\n                        return this._originalEditor.hasTextFocus() || this._modifiedEditor.hasTextFocus()\n                    }\n                    trigger(e, t, i) {\n                        this._modifiedEditor.trigger(e, t, i)\n                    }\n                    changeDecorations(e) {\n                        return this._modifiedEditor.changeDecorations(e)\n                    }\n                    _onDidContainerSizeChanged() {\n                        this._doLayout()\n                    }\n                    _getReviewHeight() {\n                        return this._reviewPane.isVisible() ? this._elementSizeObserver.getHeight() : 0\n                    }\n                    _layoutOverviewRulers() {\n                        if (!this._options.renderOverviewRuler) return;\n                        if (!this._originalOverviewRuler || !this._modifiedOverviewRuler) return;\n                        const t = this._elementSizeObserver.getHeight(),\n                            i = this._getReviewHeight(),\n                            n = e.ENTIRE_DIFF_OVERVIEW_WIDTH - 2 * e.ONE_OVERVIEW_WIDTH;\n                        this._modifiedEditor.getLayoutInfo() && (this._originalOverviewRuler.setLayout({\n                            top: 0,\n                            width: e.ONE_OVERVIEW_WIDTH,\n                            right: n + e.ONE_OVERVIEW_WIDTH,\n                            height: t - i\n                        }), this._modifiedOverviewRuler.setLayout({\n                            top: 0,\n                            right: 0,\n                            width: e.ONE_OVERVIEW_WIDTH,\n                            height: t - i\n                        }))\n                    }\n                    _onViewZonesChanged() {\n                        this._currentlyChangingViewZones || this._updateDecorationsRunner.schedule()\n                    }\n                    _beginUpdateDecorationsSoon() {\n                        -1 !== this._beginUpdateDecorationsTimeout && (window.clearTimeout(this._beginUpdateDecorationsTimeout), this._beginUpdateDecorationsTimeout = -1), this._beginUpdateDecorationsTimeout = window.setTimeout((() => this._beginUpdateDecorations()), e.UPDATE_DIFF_DECORATIONS_DELAY)\n                    }\n                    static _equals(e, t) {\n                        return !e && !t || !(!e || !t) && e.toString() === t.toString()\n                    }\n                    _beginUpdateDecorations() {\n                        this._beginUpdateDecorationsTimeout = -1;\n                        const t = this._originalEditor.getModel(),\n                            i = this._modifiedEditor.getModel();\n                        if (!t || !i) return;\n                        this._diffComputationToken++;\n                        const n = this._diffComputationToken,\n                            o = 1024 * this._options.maxFileSize * 1024,\n                            s = e => {\n                                const t = e.getValueLength();\n                                return 0 === o || t <= o\n                            };\n                        s(t) && s(i) ? (this._setState(1), this._editorWorkerService.computeDiff(t.uri, i.uri, this._options.ignoreTrimWhitespace, this._options.maxComputationTime).then((e => {\n                            n === this._diffComputationToken && t === this._originalEditor.getModel() && i === this._modifiedEditor.getModel() && (this._setState(2), this._diffComputationResult = e, this._updateDecorationsRunner.schedule(), this._onDidUpdateDiff.fire())\n                        }), (e => {\n                            n === this._diffComputationToken && t === this._originalEditor.getModel() && i === this._modifiedEditor.getModel() && (this._setState(2), this._diffComputationResult = null, this._updateDecorationsRunner.schedule())\n                        }))) : e._equals(t.uri, this._lastOriginalWarning) && e._equals(i.uri, this._lastModifiedWarning) || (this._lastOriginalWarning = t.uri, this._lastModifiedWarning = i.uri, this._notificationService.warn(bi.N(\"diff.tooLarge\", \"Cannot compare files because one file is too large.\")))\n                    }\n                    _cleanViewZonesAndDecorations() {\n                        this._originalEditorState.clean(this._originalEditor), this._modifiedEditorState.clean(this._modifiedEditor)\n                    }\n                    _updateDecorations() {\n                        if (!this._originalEditor.getModel() || !this._modifiedEditor.getModel()) return;\n                        const e = this._diffComputationResult ? this._diffComputationResult.changes : [],\n                            t = this._originalEditorState.getForeignViewZones(this._originalEditor.getWhitespaces()),\n                            i = this._modifiedEditorState.getForeignViewZones(this._modifiedEditor.getWhitespaces()),\n                            n = this._strategy.getEditorsDiffDecorations(e, this._options.ignoreTrimWhitespace, this._options.renderIndicators, t, i);\n                        try {\n                            this._currentlyChangingViewZones = !0, this._originalEditorState.apply(this._originalEditor, this._originalOverviewRuler, n.original, !1), this._modifiedEditorState.apply(this._modifiedEditor, this._modifiedOverviewRuler, n.modified, !0)\n                        } finally {\n                            this._currentlyChangingViewZones = !1\n                        }\n                    }\n                    _adjustOptionsForSubEditor(e) {\n                        const t = Object.assign({}, e);\n                        return t.inDiffEditor = !0, t.automaticLayout = !1, t.scrollbar = Object.assign({}, t.scrollbar || {}), t.scrollbar.vertical = \"visible\", t.folding = !1, t.codeLens = this._options.diffCodeLens, t.fixedOverflowWidgets = !0, t.minimap = Object.assign({}, t.minimap || {}), t.minimap.enabled = !1, t\n                    }\n                    _adjustOptionsForLeftHandSide(e) {\n                        const t = this._adjustOptionsForSubEditor(e);\n                        return this._options.renderSideBySide ? t.wordWrapOverride1 = this._options.diffWordWrap : t.wordWrapOverride1 = \"off\", e.originalAriaLabel && (t.ariaLabel = e.originalAriaLabel), t.readOnly = !this._options.originalEditable, t.extraEditorClassName = \"original-in-monaco-diff-editor\", Object.assign(Object.assign({}, t), {\n                            dimension: {\n                                height: 0,\n                                width: 0\n                            }\n                        })\n                    }\n                    _adjustOptionsForRightHandSide(t) {\n                        const i = this._adjustOptionsForSubEditor(t);\n                        return t.modifiedAriaLabel && (i.ariaLabel = t.modifiedAriaLabel), i.wordWrapOverride1 = this._options.diffWordWrap, i.revealHorizontalRightPadding = B.BH.revealHorizontalRightPadding.defaultValue + e.ENTIRE_DIFF_OVERVIEW_WIDTH, i.scrollbar.verticalHasArrows = !1, i.extraEditorClassName = \"modified-in-monaco-diff-editor\", Object.assign(Object.assign({}, i), {\n                            dimension: {\n                                height: 0,\n                                width: 0\n                            }\n                        })\n                    }\n                    doLayout() {\n                        this._elementSizeObserver.observe(), this._doLayout()\n                    }\n                    _doLayout() {\n                        const t = this._elementSizeObserver.getWidth(),\n                            i = this._elementSizeObserver.getHeight(),\n                            n = this._getReviewHeight(),\n                            o = this._strategy.layout();\n                        this._originalDomNode.style.width = o + \"px\", this._originalDomNode.style.left = \"0px\", this._modifiedDomNode.style.width = t - o + \"px\", this._modifiedDomNode.style.left = o + \"px\", this._overviewDomElement.style.top = \"0px\", this._overviewDomElement.style.height = i - n + \"px\", this._overviewDomElement.style.width = e.ENTIRE_DIFF_OVERVIEW_WIDTH + \"px\", this._overviewDomElement.style.left = t - e.ENTIRE_DIFF_OVERVIEW_WIDTH + \"px\", this._overviewViewportDomElement.setWidth(e.ENTIRE_DIFF_OVERVIEW_WIDTH), this._overviewViewportDomElement.setHeight(30), this._originalEditor.layout({\n                            width: o,\n                            height: i - n\n                        }), this._modifiedEditor.layout({\n                            width: t - o - (this._options.renderOverviewRuler ? e.ENTIRE_DIFF_OVERVIEW_WIDTH : 0),\n                            height: i - n\n                        }), (this._originalOverviewRuler || this._modifiedOverviewRuler) && this._layoutOverviewRulers(), this._reviewPane.layout(i - n, t, n), this._layoutOverviewViewport()\n                    }\n                    _layoutOverviewViewport() {\n                        const e = this._computeOverviewViewport();\n                        e ? (this._overviewViewportDomElement.setTop(e.top), this._overviewViewportDomElement.setHeight(e.height)) : (this._overviewViewportDomElement.setTop(0), this._overviewViewportDomElement.setHeight(0))\n                    }\n                    _computeOverviewViewport() {\n                        const e = this._modifiedEditor.getLayoutInfo();\n                        if (!e) return null;\n                        const t = this._modifiedEditor.getScrollTop(),\n                            i = this._modifiedEditor.getScrollHeight(),\n                            n = Math.max(0, e.height),\n                            o = Math.max(0, n - 0),\n                            s = i > 0 ? o / i : 0;\n                        return {\n                            height: Math.max(0, Math.floor(e.height * s)),\n                            top: Math.floor(t * s)\n                        }\n                    }\n                    _createDataSource() {\n                        return {\n                            getWidth: () => this._elementSizeObserver.getWidth(),\n                            getHeight: () => this._elementSizeObserver.getHeight() - this._getReviewHeight(),\n                            getOptions: () => ({\n                                renderOverviewRuler: this._options.renderOverviewRuler\n                            }),\n                            getContainerDomNode: () => this._containerDomElement,\n                            relayoutEditors: () => {\n                                this._doLayout()\n                            },\n                            getOriginalEditor: () => this._originalEditor,\n                            getModifiedEditor: () => this._modifiedEditor\n                        }\n                    }\n                    _setStrategy(e) {\n                        this._strategy && this._strategy.dispose(), this._strategy = e, e.applyColors(this._themeService.getColorTheme()), this._diffComputationResult && this._updateDecorations(), this._doLayout()\n                    }\n                    _getLineChangeAtOrBeforeLineNumber(e, t) {\n                        const i = this._diffComputationResult ? this._diffComputationResult.changes : [];\n                        if (0 === i.length || e < t(i[0])) return null;\n                        let n = 0,\n                            o = i.length - 1;\n                        for (; n < o;) {\n                            const s = Math.floor((n + o) / 2),\n                                r = t(i[s]),\n                                a = s + 1 <= o ? t(i[s + 1]) : 1073741824;\n                            e < r ? o = s - 1 : e >= a ? n = s + 1 : (n = s, o = s)\n                        }\n                        return i[n]\n                    }\n                    _getEquivalentLineForOriginalLineNumber(e) {\n                        const t = this._getLineChangeAtOrBeforeLineNumber(e, (e => e.originalStartLineNumber));\n                        if (!t) return e;\n                        const i = t.originalStartLineNumber + (t.originalEndLineNumber > 0 ? -1 : 0),\n                            n = t.modifiedStartLineNumber + (t.modifiedEndLineNumber > 0 ? -1 : 0),\n                            o = t.originalEndLineNumber > 0 ? t.originalEndLineNumber - t.originalStartLineNumber + 1 : 0,\n                            s = t.modifiedEndLineNumber > 0 ? t.modifiedEndLineNumber - t.modifiedStartLineNumber + 1 : 0,\n                            r = e - i;\n                        return r <= o ? n + Math.min(r, s) : n + s - o + r\n                    }\n                    _getEquivalentLineForModifiedLineNumber(e) {\n                        const t = this._getLineChangeAtOrBeforeLineNumber(e, (e => e.modifiedStartLineNumber));\n                        if (!t) return e;\n                        const i = t.originalStartLineNumber + (t.originalEndLineNumber > 0 ? -1 : 0),\n                            n = t.modifiedStartLineNumber + (t.modifiedEndLineNumber > 0 ? -1 : 0),\n                            o = t.originalEndLineNumber > 0 ? t.originalEndLineNumber - t.originalStartLineNumber + 1 : 0,\n                            s = t.modifiedEndLineNumber > 0 ? t.modifiedEndLineNumber - t.modifiedStartLineNumber + 1 : 0,\n                            r = e - n;\n                        return r <= s ? i + Math.min(r, o) : i + o - s + r\n                    }\n                    getDiffLineInformationForOriginal(e) {\n                        return this._diffComputationResult ? {\n                            equivalentLineNumber: this._getEquivalentLineForOriginalLineNumber(e)\n                        } : null\n                    }\n                    getDiffLineInformationForModified(e) {\n                        return this._diffComputationResult ? {\n                            equivalentLineNumber: this._getEquivalentLineForModifiedLineNumber(e)\n                        } : null\n                    }\n                };\n                Xn.ONE_OVERVIEW_WIDTH = 15, Xn.ENTIRE_DIFF_OVERVIEW_WIDTH = 30, Xn.UPDATE_DIFF_DECORATIONS_DELAY = 200, Xn = $n([Kn(3, Hn.p), Kn(4, ye.p), Kn(5, xi.i6), Kn(6, Pn.TG), Kn(7, Y.$), Kn(8, mn.XE), Kn(9, Ai.lT), Kn(10, Fn.i), Kn(11, zn.e)], Xn);\n                class Jn extends ue.JT {\n                    constructor(e) {\n                        super(), this._dataSource = e, this._insertColor = null, this._removeColor = null\n                    }\n                    applyColors(e) {\n                        const t = (e.getColor(fn.yp) || fn.Cz).transparent(2),\n                            i = (e.getColor(fn.P4) || fn.ke).transparent(2),\n                            n = !t.equals(this._insertColor) || !i.equals(this._removeColor);\n                        return this._insertColor = t, this._removeColor = i, n\n                    }\n                    getEditorsDiffDecorations(e, t, i, n, o) {\n                        o = o.sort(((e, t) => e.afterLineNumber - t.afterLineNumber)), n = n.sort(((e, t) => e.afterLineNumber - t.afterLineNumber));\n                        const s = this._getViewZones(e, n, o, i),\n                            r = this._getOriginalEditorDecorations(e, t, i),\n                            a = this._getModifiedEditorDecorations(e, t, i);\n                        return {\n                            original: {\n                                decorations: r.decorations,\n                                overviewZones: r.overviewZones,\n                                zones: s.original\n                            },\n                            modified: {\n                                decorations: a.decorations,\n                                overviewZones: a.overviewZones,\n                                zones: s.modified\n                            }\n                        }\n                    }\n                }\n                class eo {\n                    constructor(e) {\n                        this._source = e, this._index = -1, this.current = null, this.advance()\n                    }\n                    advance() {\n                        this._index++, this._index < this._source.length ? this.current = this._source[this._index] : this.current = null\n                    }\n                }\n                class to {\n                    constructor(e, t, i, n, o) {\n                        this._lineChanges = e, this._originalForeignVZ = t, this._modifiedForeignVZ = i, this._originalEditor = n, this._modifiedEditor = o\n                    }\n                    static _getViewLineCount(e, t, i) {\n                        const n = e.getModel(),\n                            o = e._getViewModel();\n                        if (n && o) {\n                            const e = uo(n, o, t, i);\n                            return e.endLineNumber - e.startLineNumber + 1\n                        }\n                        return i - t + 1\n                    }\n                    getViewZones() {\n                        const e = this._originalEditor.getOption(58),\n                            t = this._modifiedEditor.getOption(58),\n                            i = -1 !== this._originalEditor.getOption(130).wrappingColumn,\n                            n = -1 !== this._modifiedEditor.getOption(130).wrappingColumn,\n                            o = i || n,\n                            s = this._originalEditor.getModel(),\n                            r = this._originalEditor._getViewModel().coordinatesConverter,\n                            a = this._modifiedEditor._getViewModel().coordinatesConverter,\n                            l = [],\n                            c = [];\n                        let d = 0,\n                            h = 0,\n                            u = 0,\n                            g = 0,\n                            p = 0,\n                            f = 0;\n                        const m = (e, t) => e.afterLineNumber - t.afterLineNumber,\n                            v = (e, t) => {\n                                if (null === t.domNode && e.length > 0) {\n                                    const i = e[e.length - 1];\n                                    if (i.afterLineNumber === t.afterLineNumber && null === i.domNode) return void(i.heightInLines += t.heightInLines)\n                                }\n                                e.push(t)\n                            },\n                            _ = new eo(this._modifiedForeignVZ),\n                            b = new eo(this._originalForeignVZ);\n                        let w = 1,\n                            y = 1;\n                        for (let i = 0, n = this._lineChanges.length; i <= n; i++) {\n                            const C = i < n ? this._lineChanges[i] : null;\n                            null !== C ? (u = C.originalStartLineNumber + (C.originalEndLineNumber > 0 ? -1 : 0), g = C.modifiedStartLineNumber + (C.modifiedEndLineNumber > 0 ? -1 : 0), h = C.originalEndLineNumber > 0 ? to._getViewLineCount(this._originalEditor, C.originalStartLineNumber, C.originalEndLineNumber) : 0, d = C.modifiedEndLineNumber > 0 ? to._getViewLineCount(this._modifiedEditor, C.modifiedStartLineNumber, C.modifiedEndLineNumber) : 0, p = Math.max(C.originalStartLineNumber, C.originalEndLineNumber), f = Math.max(C.modifiedStartLineNumber, C.modifiedEndLineNumber)) : (u += 1e7 + h, g += 1e7 + d, p = u, f = g);\n                            let x = [],\n                                S = [];\n                            if (o) {\n                                let e;\n                                e = C ? C.originalEndLineNumber > 0 ? C.originalStartLineNumber - w : C.modifiedStartLineNumber - y : s.getLineCount() - w;\n                                for (let t = 0; t < e; t++) {\n                                    const e = w + t,\n                                        i = y + t,\n                                        n = r.getModelLineViewLineCount(e),\n                                        o = a.getModelLineViewLineCount(i);\n                                    n < o ? x.push({\n                                        afterLineNumber: e,\n                                        heightInLines: o - n,\n                                        domNode: null,\n                                        marginDomNode: null\n                                    }) : n > o && S.push({\n                                        afterLineNumber: i,\n                                        heightInLines: n - o,\n                                        domNode: null,\n                                        marginDomNode: null\n                                    })\n                                }\n                                C && (w = (C.originalEndLineNumber > 0 ? C.originalEndLineNumber : C.originalStartLineNumber) + 1, y = (C.modifiedEndLineNumber > 0 ? C.modifiedEndLineNumber : C.modifiedStartLineNumber) + 1)\n                            }\n                            for (; _.current && _.current.afterLineNumber <= f;) {\n                                let e;\n                                e = _.current.afterLineNumber <= g ? u - g + _.current.afterLineNumber : p;\n                                let i = null;\n                                C && C.modifiedStartLineNumber <= _.current.afterLineNumber && _.current.afterLineNumber <= C.modifiedEndLineNumber && (i = this._createOriginalMarginDomNodeForModifiedForeignViewZoneInAddedRegion()), x.push({\n                                    afterLineNumber: e,\n                                    heightInLines: _.current.height / t,\n                                    domNode: null,\n                                    marginDomNode: i\n                                }), _.advance()\n                            }\n                            for (; b.current && b.current.afterLineNumber <= p;) {\n                                let t;\n                                t = b.current.afterLineNumber <= u ? g - u + b.current.afterLineNumber : f, S.push({\n                                    afterLineNumber: t,\n                                    heightInLines: b.current.height / e,\n                                    domNode: null\n                                }), b.advance()\n                            }\n                            if (null !== C && lo(C)) {\n                                const e = this._produceOriginalFromDiff(C, h, d);\n                                e && x.push(e)\n                            }\n                            if (null !== C && co(C)) {\n                                const e = this._produceModifiedFromDiff(C, h, d);\n                                e && S.push(e)\n                            }\n                            let k = 0,\n                                L = 0;\n                            for (x = x.sort(m), S = S.sort(m); k < x.length && L < S.length;) {\n                                const e = x[k],\n                                    t = S[L],\n                                    i = e.afterLineNumber - u,\n                                    n = t.afterLineNumber - g;\n                                i < n ? (v(l, e), k++) : n < i ? (v(c, t), L++) : e.shouldNotShrink ? (v(l, e), k++) : t.shouldNotShrink ? (v(c, t), L++) : e.heightInLines >= t.heightInLines ? (e.heightInLines -= t.heightInLines, L++) : (t.heightInLines -= e.heightInLines, k++)\n                            }\n                            for (; k < x.length;) v(l, x[k]), k++;\n                            for (; L < S.length;) v(c, S[L]), L++\n                        }\n                        return {\n                            original: to._ensureDomNodes(l),\n                            modified: to._ensureDomNodes(c)\n                        }\n                    }\n                    static _ensureDomNodes(e) {\n                        return e.map((e => (e.domNode || (e.domNode = ho()), e)))\n                    }\n                }\n\n                function io(e, t, i, n, o) {\n                    return {\n                        range: new U.e(e, t, i, n),\n                        options: o\n                    }\n                }\n                const no = {\n                    charDelete: Mn.qx.register({\n                        description: \"diff-editor-char-delete\",\n                        className: \"char-delete\"\n                    }),\n                    charDeleteWholeLine: Mn.qx.register({\n                        description: \"diff-editor-char-delete-whole-line\",\n                        className: \"char-delete\",\n                        isWholeLine: !0\n                    }),\n                    charInsert: Mn.qx.register({\n                        description: \"diff-editor-char-insert\",\n                        className: \"char-insert\"\n                    }),\n                    charInsertWholeLine: Mn.qx.register({\n                        description: \"diff-editor-char-insert-whole-line\",\n                        className: \"char-insert\",\n                        isWholeLine: !0\n                    }),\n                    lineInsert: Mn.qx.register({\n                        description: \"diff-editor-line-insert\",\n                        className: \"line-insert\",\n                        marginClassName: \"line-insert\",\n                        isWholeLine: !0\n                    }),\n                    lineInsertWithSign: Mn.qx.register({\n                        description: \"diff-editor-line-insert-with-sign\",\n                        className: \"line-insert\",\n                        linesDecorationsClassName: \"insert-sign \" + mn.kS.asClassName(Gn),\n                        marginClassName: \"line-insert\",\n                        isWholeLine: !0\n                    }),\n                    lineDelete: Mn.qx.register({\n                        description: \"diff-editor-line-delete\",\n                        className: \"line-delete\",\n                        marginClassName: \"line-delete\",\n                        isWholeLine: !0\n                    }),\n                    lineDeleteWithSign: Mn.qx.register({\n                        description: \"diff-editor-line-delete-with-sign\",\n                        className: \"line-delete\",\n                        linesDecorationsClassName: \"delete-sign \" + mn.kS.asClassName(Yn),\n                        marginClassName: \"line-delete\",\n                        isWholeLine: !0\n                    }),\n                    lineDeleteMargin: Mn.qx.register({\n                        description: \"diff-editor-line-delete-margin\",\n                        marginClassName: \"line-delete\"\n                    })\n                };\n                class oo extends Jn {\n                    constructor(e, t) {\n                        super(e), this._disableSash = !1 === t, this._sashRatio = null, this._sashPosition = null, this._startSashPosition = null, this._sash = this._register(new an.g(this._dataSource.getContainerDomNode(), this, {\n                            orientation: 0\n                        })), this._disableSash && (this._sash.state = 0), this._sash.onDidStart((() => this._onSashDragStart())), this._sash.onDidChange((e => this._onSashDrag(e))), this._sash.onDidEnd((() => this._onSashDragEnd())), this._sash.onDidReset((() => this._onSashReset()))\n                    }\n                    setEnableSplitViewResizing(e) {\n                        const t = !1 === e;\n                        this._disableSash !== t && (this._disableSash = t, this._sash.state = this._disableSash ? 0 : 3)\n                    }\n                    layout(e = this._sashRatio) {\n                        const t = this._dataSource.getWidth() - (this._dataSource.getOptions().renderOverviewRuler ? Xn.ENTIRE_DIFF_OVERVIEW_WIDTH : 0);\n                        let i = Math.floor((e || .5) * t);\n                        const n = Math.floor(.5 * t);\n                        return i = this._disableSash ? n : i || n, t > 2 * oo.MINIMUM_EDITOR_WIDTH ? (i < oo.MINIMUM_EDITOR_WIDTH && (i = oo.MINIMUM_EDITOR_WIDTH), i > t - oo.MINIMUM_EDITOR_WIDTH && (i = t - oo.MINIMUM_EDITOR_WIDTH)) : i = n, this._sashPosition !== i && (this._sashPosition = i, this._sash.layout()), this._sashPosition\n                    }\n                    _onSashDragStart() {\n                        this._startSashPosition = this._sashPosition\n                    }\n                    _onSashDrag(e) {\n                        const t = this._dataSource.getWidth() - (this._dataSource.getOptions().renderOverviewRuler ? Xn.ENTIRE_DIFF_OVERVIEW_WIDTH : 0),\n                            i = this.layout((this._startSashPosition + (e.currentX - e.startX)) / t);\n                        this._sashRatio = i / t, this._dataSource.relayoutEditors()\n                    }\n                    _onSashDragEnd() {\n                        this._sash.layout()\n                    }\n                    _onSashReset() {\n                        this._sashRatio = .5, this._dataSource.relayoutEditors(), this._sash.layout()\n                    }\n                    getVerticalSashTop(e) {\n                        return 0\n                    }\n                    getVerticalSashLeft(e) {\n                        return this._sashPosition\n                    }\n                    getVerticalSashHeight(e) {\n                        return this._dataSource.getHeight()\n                    }\n                    _getViewZones(e, t, i) {\n                        const n = this._dataSource.getOriginalEditor(),\n                            o = this._dataSource.getModifiedEditor();\n                        return new so(e, t, i, n, o).getViewZones()\n                    }\n                    _getOriginalEditorDecorations(e, t, i) {\n                        const n = this._dataSource.getOriginalEditor(),\n                            o = String(this._removeColor),\n                            s = {\n                                decorations: [],\n                                overviewZones: []\n                            },\n                            r = n.getModel(),\n                            a = n._getViewModel();\n                        for (const n of e)\n                            if (co(n)) {\n                                s.decorations.push({\n                                    range: new U.e(n.originalStartLineNumber, 1, n.originalEndLineNumber, 1073741824),\n                                    options: i ? no.lineDeleteWithSign : no.lineDelete\n                                }), lo(n) && n.charChanges || s.decorations.push(io(n.originalStartLineNumber, 1, n.originalEndLineNumber, 1073741824, no.charDeleteWholeLine));\n                                const e = uo(r, a, n.originalStartLineNumber, n.originalEndLineNumber);\n                                if (s.overviewZones.push(new An.EY(e.startLineNumber, e.endLineNumber, o)), n.charChanges)\n                                    for (const e of n.charChanges)\n                                        if (co(e))\n                                            if (t)\n                                                for (let t = e.originalStartLineNumber; t <= e.originalEndLineNumber; t++) {\n                                                    let i, n;\n                                                    i = t === e.originalStartLineNumber ? e.originalStartColumn : r.getLineFirstNonWhitespaceColumn(t), n = t === e.originalEndLineNumber ? e.originalEndColumn : r.getLineLastNonWhitespaceColumn(t), s.decorations.push(io(t, i, t, n, no.charDelete))\n                                                } else s.decorations.push(io(e.originalStartLineNumber, e.originalStartColumn, e.originalEndLineNumber, e.originalEndColumn, no.charDelete))\n                            } return s\n                    }\n                    _getModifiedEditorDecorations(e, t, i) {\n                        const n = this._dataSource.getModifiedEditor(),\n                            o = String(this._insertColor),\n                            s = {\n                                decorations: [],\n                                overviewZones: []\n                            },\n                            r = n.getModel(),\n                            a = n._getViewModel();\n                        for (const n of e)\n                            if (lo(n)) {\n                                s.decorations.push({\n                                    range: new U.e(n.modifiedStartLineNumber, 1, n.modifiedEndLineNumber, 1073741824),\n                                    options: i ? no.lineInsertWithSign : no.lineInsert\n                                }), co(n) && n.charChanges || s.decorations.push(io(n.modifiedStartLineNumber, 1, n.modifiedEndLineNumber, 1073741824, no.charInsertWholeLine));\n                                const e = uo(r, a, n.modifiedStartLineNumber, n.modifiedEndLineNumber);\n                                if (s.overviewZones.push(new An.EY(e.startLineNumber, e.endLineNumber, o)), n.charChanges)\n                                    for (const e of n.charChanges)\n                                        if (lo(e))\n                                            if (t)\n                                                for (let t = e.modifiedStartLineNumber; t <= e.modifiedEndLineNumber; t++) {\n                                                    let i, n;\n                                                    i = t === e.modifiedStartLineNumber ? e.modifiedStartColumn : r.getLineFirstNonWhitespaceColumn(t), n = t === e.modifiedEndLineNumber ? e.modifiedEndColumn : r.getLineLastNonWhitespaceColumn(t), s.decorations.push(io(t, i, t, n, no.charInsert))\n                                                } else s.decorations.push(io(e.modifiedStartLineNumber, e.modifiedStartColumn, e.modifiedEndLineNumber, e.modifiedEndColumn, no.charInsert))\n                            } return s\n                    }\n                }\n                oo.MINIMUM_EDITOR_WIDTH = 100;\n                class so extends to {\n                    constructor(e, t, i, n, o) {\n                        super(e, t, i, n, o)\n                    }\n                    _createOriginalMarginDomNodeForModifiedForeignViewZoneInAddedRegion() {\n                        return null\n                    }\n                    _produceOriginalFromDiff(e, t, i) {\n                        return i > t ? {\n                            afterLineNumber: Math.max(e.originalStartLineNumber, e.originalEndLineNumber),\n                            heightInLines: i - t,\n                            domNode: null\n                        } : null\n                    }\n                    _produceModifiedFromDiff(e, t, i) {\n                        return t > i ? {\n                            afterLineNumber: Math.max(e.modifiedStartLineNumber, e.modifiedEndLineNumber),\n                            heightInLines: t - i,\n                            domNode: null\n                        } : null\n                    }\n                }\n                class ro extends Jn {\n                    constructor(e, t) {\n                        super(e), this._decorationsLeft = e.getOriginalEditor().getLayoutInfo().decorationsLeft, this._register(e.getOriginalEditor().onDidLayoutChange((t => {\n                            this._decorationsLeft !== t.decorationsLeft && (this._decorationsLeft = t.decorationsLeft, e.relayoutEditors())\n                        })))\n                    }\n                    setEnableSplitViewResizing(e) {}\n                    _getViewZones(e, t, i, n) {\n                        const o = this._dataSource.getOriginalEditor(),\n                            s = this._dataSource.getModifiedEditor();\n                        return new ao(e, t, i, o, s, n).getViewZones()\n                    }\n                    _getOriginalEditorDecorations(e, t, i) {\n                        const n = String(this._removeColor),\n                            o = {\n                                decorations: [],\n                                overviewZones: []\n                            },\n                            s = this._dataSource.getOriginalEditor(),\n                            r = s.getModel(),\n                            a = s._getViewModel();\n                        for (const t of e)\n                            if (co(t)) {\n                                o.decorations.push({\n                                    range: new U.e(t.originalStartLineNumber, 1, t.originalEndLineNumber, 1073741824),\n                                    options: no.lineDeleteMargin\n                                });\n                                const e = uo(r, a, t.originalStartLineNumber, t.originalEndLineNumber);\n                                o.overviewZones.push(new An.EY(e.startLineNumber, e.endLineNumber, n))\n                            } return o\n                    }\n                    _getModifiedEditorDecorations(e, t, i) {\n                        const n = this._dataSource.getModifiedEditor(),\n                            o = String(this._insertColor),\n                            s = {\n                                decorations: [],\n                                overviewZones: []\n                            },\n                            r = n.getModel(),\n                            a = n._getViewModel();\n                        for (const n of e)\n                            if (lo(n)) {\n                                s.decorations.push({\n                                    range: new U.e(n.modifiedStartLineNumber, 1, n.modifiedEndLineNumber, 1073741824),\n                                    options: i ? no.lineInsertWithSign : no.lineInsert\n                                });\n                                const e = uo(r, a, n.modifiedStartLineNumber, n.modifiedEndLineNumber);\n                                if (s.overviewZones.push(new An.EY(e.startLineNumber, e.endLineNumber, o)), n.charChanges) {\n                                    for (const e of n.charChanges)\n                                        if (lo(e))\n                                            if (t)\n                                                for (let t = e.modifiedStartLineNumber; t <= e.modifiedEndLineNumber; t++) {\n                                                    let i, n;\n                                                    i = t === e.modifiedStartLineNumber ? e.modifiedStartColumn : r.getLineFirstNonWhitespaceColumn(t), n = t === e.modifiedEndLineNumber ? e.modifiedEndColumn : r.getLineLastNonWhitespaceColumn(t), s.decorations.push(io(t, i, t, n, no.charInsert))\n                                                } else s.decorations.push(io(e.modifiedStartLineNumber, e.modifiedStartColumn, e.modifiedEndLineNumber, e.modifiedEndColumn, no.charInsert))\n                                } else s.decorations.push(io(n.modifiedStartLineNumber, 1, n.modifiedEndLineNumber, 1073741824, no.charInsertWholeLine))\n                            } return s\n                    }\n                    layout() {\n                        return Math.max(5, this._decorationsLeft)\n                    }\n                }\n                class ao extends to {\n                    constructor(e, t, i, n, o, s) {\n                        super(e, t, i, n, o), this._originalModel = n.getModel(), this._renderIndicators = s, this._pendingLineChange = [], this._pendingViewZones = [], this._lineBreaksComputer = this._modifiedEditor._getViewModel().createLineBreaksComputer()\n                    }\n                    getViewZones() {\n                        const e = super.getViewZones();\n                        return this._finalize(e), e\n                    }\n                    _createOriginalMarginDomNodeForModifiedForeignViewZoneInAddedRegion() {\n                        const e = document.createElement(\"div\");\n                        return e.className = \"inline-added-margin-view-zone\", e\n                    }\n                    _produceOriginalFromDiff(e, t, i) {\n                        const n = document.createElement(\"div\");\n                        return n.className = \"inline-added-margin-view-zone\", {\n                            afterLineNumber: Math.max(e.originalStartLineNumber, e.originalEndLineNumber),\n                            heightInLines: i,\n                            domNode: document.createElement(\"div\"),\n                            marginDomNode: n\n                        }\n                    }\n                    _produceModifiedFromDiff(e, t, i) {\n                        const n = document.createElement(\"div\");\n                        n.className = `view-lines line-delete ${Un.S}`;\n                        const o = document.createElement(\"div\");\n                        o.className = \"inline-deleted-margin-view-zone\";\n                        const s = {\n                            shouldNotShrink: !0,\n                            afterLineNumber: 0 === e.modifiedEndLineNumber ? e.modifiedStartLineNumber : e.modifiedStartLineNumber - 1,\n                            heightInLines: t,\n                            minWidthInPx: 0,\n                            domNode: n,\n                            marginDomNode: o,\n                            diff: {\n                                originalStartLineNumber: e.originalStartLineNumber,\n                                originalEndLineNumber: e.originalEndLineNumber,\n                                modifiedStartLineNumber: e.modifiedStartLineNumber,\n                                modifiedEndLineNumber: e.modifiedEndLineNumber,\n                                originalModel: this._originalModel,\n                                viewLineCounts: null\n                            }\n                        };\n                        for (let t = e.originalStartLineNumber; t <= e.originalEndLineNumber; t++) this._lineBreaksComputer.addRequest(this._originalModel.getLineContent(t), null, null);\n                        return this._pendingLineChange.push(e), this._pendingViewZones.push(s), s\n                    }\n                    _finalize(e) {\n                        const t = this._modifiedEditor.getOptions(),\n                            i = this._modifiedEditor.getModel().getOptions().tabSize,\n                            n = t.get(43),\n                            o = t.get(29),\n                            s = n.typicalHalfwidthCharacterWidth,\n                            r = t.get(92),\n                            a = this._originalModel.mightContainNonBasicASCII(),\n                            l = this._originalModel.mightContainRTL(),\n                            c = t.get(58),\n                            d = t.get(129).decorationsWidth,\n                            h = t.get(104),\n                            u = t.get(87),\n                            g = t.get(82),\n                            p = t.get(44),\n                            f = this._lineBreaksComputer.finalize();\n                        let m = 0;\n                        for (let t = 0; t < this._pendingLineChange.length; t++) {\n                            const v = this._pendingLineChange[t],\n                                _ = this._pendingViewZones[t],\n                                b = _.domNode;\n                            ln.V.applyFontInfoSlow(b, n);\n                            const w = _.marginDomNode;\n                            ln.V.applyFontInfoSlow(w, n);\n                            const y = [];\n                            if (v.charChanges)\n                                for (const e of v.charChanges) co(e) && y.push(new Rt.$t(new U.e(e.originalStartLineNumber, e.originalStartColumn, e.originalEndLineNumber, e.originalEndColumn), \"char-delete\", 0));\n                            const C = y.length > 0,\n                                x = (0, Tn.l$)(1e4);\n                            let S = 0,\n                                k = 0,\n                                L = null;\n                            for (let t = v.originalStartLineNumber; t <= v.originalEndLineNumber; t++) {\n                                const s = t - v.originalStartLineNumber,\n                                    r = this._originalModel.getLineTokens(t),\n                                    b = r.getLineContent(),\n                                    N = f[m++],\n                                    D = On.Kp.filter(y, t, 1, b.length + 1);\n                                if (N) {\n                                    let f = 0;\n                                    for (const e of N.breakOffsets) {\n                                        const t = r.sliceAndInflate(f, e, 0),\n                                            s = b.substring(f, e);\n                                        S = Math.max(S, this._renderOriginalLine(k++, s, t, On.Kp.extractWrapped(D, f, e), C, a, l, n, o, c, d, h, u, g, p, i, x, w)), f = e\n                                    }\n                                    for (L || (L = []); L.length < s;) L[L.length] = 1;\n                                    L[s] = N.breakOffsets.length, _.heightInLines += N.breakOffsets.length - 1;\n                                    const m = document.createElement(\"div\");\n                                    m.className = \"line-delete\", e.original.push({\n                                        afterLineNumber: t,\n                                        afterColumn: 0,\n                                        heightInLines: N.breakOffsets.length - 1,\n                                        domNode: ho(),\n                                        marginDomNode: m\n                                    })\n                                } else S = Math.max(S, this._renderOriginalLine(k++, b, r, D, C, a, l, n, o, c, d, h, u, g, p, i, x, w))\n                            }\n                            S += r;\n                            const N = x.build(),\n                                D = Qn ? Qn.createHTML(N) : N;\n                            if (b.innerHTML = D, _.minWidthInPx = S * s, L) {\n                                const e = v.originalEndLineNumber - v.originalStartLineNumber;\n                                for (; L.length <= e;) L[L.length] = 1\n                            }\n                            _.diff.viewLineCounts = L\n                        }\n                        e.original.sort(((e, t) => e.afterLineNumber - t.afterLineNumber))\n                    }\n                    _renderOriginalLine(e, t, i, n, o, s, r, a, l, c, d, h, u, g, p, f, m, v) {\n                        m.appendASCIIString('<div class=\"view-line'), o || m.appendASCIIString(\" char-delete\"), m.appendASCIIString('\" style=\"top:'), m.appendASCIIString(String(e * c)), m.appendASCIIString('px;width:1000000px;\">');\n                        const _ = Rt.wA.isBasicASCII(t, s),\n                            b = Rt.wA.containsRTL(t, _, r),\n                            w = (0, Pt.d1)(new Pt.IJ(a.isMonospace && !l, a.canUseHalfwidthRightwardsArrow, t, !1, _, b, 0, i, n, f, 0, a.spaceWidth, a.middotWidth, a.wsmiddotWidth, h, u, g, p !== B.n0.OFF, null), m);\n                        if (m.appendASCIIString(\"</div>\"), this._renderIndicators) {\n                            const t = document.createElement(\"div\");\n                            t.className = `delete-sign ${mn.kS.asClassName(Yn)}`, t.setAttribute(\"style\", `position:absolute;top:${e*c}px;width:${d}px;height:${c}px;right:0;`), v.appendChild(t)\n                        }\n                        return w.characterMapping.getAbsoluteOffset(w.characterMapping.length)\n                    }\n                }\n\n                function lo(e) {\n                    return e.modifiedEndLineNumber > 0\n                }\n\n                function co(e) {\n                    return e.originalEndLineNumber > 0\n                }\n\n                function ho() {\n                    const e = document.createElement(\"div\");\n                    return e.className = \"diagonal-fill\", e\n                }\n\n                function uo(e, t, i, n) {\n                    const o = e.getLineCount();\n                    return i = Math.min(o, Math.max(1, i)), n = Math.min(o, Math.max(1, n)), t.coordinatesConverter.convertModelRangeToViewRange(new U.e(i, e.getLineMinColumn(i), n, e.getLineMaxColumn(n)))\n                }\n\n                function go(e, t) {\n                    return {\n                        enableSplitViewResizing: (0, B.O7)(e.enableSplitViewResizing, t.enableSplitViewResizing),\n                        renderSideBySide: (0, B.O7)(e.renderSideBySide, t.renderSideBySide),\n                        maxComputationTime: (0, B.Zc)(e.maxComputationTime, t.maxComputationTime, 0, 1073741824),\n                        maxFileSize: (0, B.Zc)(e.maxFileSize, t.maxFileSize, 0, 1073741824),\n                        ignoreTrimWhitespace: (0, B.O7)(e.ignoreTrimWhitespace, t.ignoreTrimWhitespace),\n                        renderIndicators: (0, B.O7)(e.renderIndicators, t.renderIndicators),\n                        originalEditable: (0, B.O7)(e.originalEditable, t.originalEditable),\n                        diffCodeLens: (0, B.O7)(e.diffCodeLens, t.diffCodeLens),\n                        renderOverviewRuler: (0, B.O7)(e.renderOverviewRuler, t.renderOverviewRuler),\n                        diffWordWrap: (i = e.diffWordWrap, n = t.diffWordWrap, (0, B.NY)(i, n, [\"off\", \"on\", \"inherit\"]))\n                    };\n                    var i, n\n                }(0, mn.Ic)(((e, t) => {\n                    const i = e.getColor(fn.yp);\n                    i && (t.addRule(`.monaco-editor .line-insert, .monaco-editor .char-insert { background-color: ${i}; }`), t.addRule(`.monaco-diff-editor .line-insert, .monaco-diff-editor .char-insert { background-color: ${i}; }`), t.addRule(`.monaco-editor .inline-added-margin-view-zone { background-color: ${i}; }`));\n                    const n = e.getColor(fn.P4);\n                    n && (t.addRule(`.monaco-editor .line-delete, .monaco-editor .char-delete { background-color: ${n}; }`), t.addRule(`.monaco-diff-editor .line-delete, .monaco-diff-editor .char-delete { background-color: ${n}; }`), t.addRule(`.monaco-editor .inline-deleted-margin-view-zone { background-color: ${n}; }`));\n                    const o = e.getColor(fn.XL);\n                    o && t.addRule(`.monaco-editor .line-insert, .monaco-editor .char-insert { border: 1px ${\"hc\"===e.type?\"dashed\":\"solid\"} ${o}; }`);\n                    const s = e.getColor(fn.mH);\n                    s && t.addRule(`.monaco-editor .line-delete, .monaco-editor .char-delete { border: 1px ${\"hc\"===e.type?\"dashed\":\"solid\"} ${s}; }`);\n                    const r = e.getColor(fn._w);\n                    r && t.addRule(`.monaco-diff-editor.side-by-side .editor.modified { box-shadow: -6px 0 5px -5px ${r}; }`);\n                    const a = e.getColor(fn.LL);\n                    a && t.addRule(`.monaco-diff-editor.side-by-side .editor.modified { border-left: 1px solid ${a}; }`);\n                    const l = e.getColor(fn.et);\n                    l && t.addRule(`\\n\\t\\t\\t.monaco-diff-editor .diffViewport {\\n\\t\\t\\t\\tbackground: ${l};\\n\\t\\t\\t}\\n\\t\\t`);\n                    const c = e.getColor(fn.AB);\n                    c && t.addRule(`\\n\\t\\t\\t.monaco-diff-editor .diffViewport:hover {\\n\\t\\t\\t\\tbackground: ${c};\\n\\t\\t\\t}\\n\\t\\t`);\n                    const d = e.getColor(fn.yn);\n                    d && t.addRule(`\\n\\t\\t\\t.monaco-diff-editor .diffViewport:active {\\n\\t\\t\\t\\tbackground: ${d};\\n\\t\\t\\t}\\n\\t\\t`);\n                    const h = e.getColor(fn.L_);\n                    t.addRule(`\\n\\t.monaco-editor .diagonal-fill {\\n\\t\\tbackground-image: linear-gradient(\\n\\t\\t\\t-45deg,\\n\\t\\t\\t${h} 12.5%,\\n\\t\\t\\t#0000 12.5%, #0000 50%,\\n\\t\\t\\t${h} 50%, ${h} 62.5%,\\n\\t\\t\\t#0000 62.5%, #0000 100%\\n\\t\\t);\\n\\t\\tbackground-size: 8px 8px;\\n\\t}\\n\\t`)\n                }));\n                var po = i(30653),\n                    fo = i(12095),\n                    mo = i(84144),\n                    vo = i(91847),\n                    _o = i(31106);\n                class bo extends ue.JT {\n                    constructor() {\n                        super(), this._onCodeEditorAdd = this._register(new W.Q5), this.onCodeEditorAdd = this._onCodeEditorAdd.event, this._onCodeEditorRemove = this._register(new W.Q5), this.onCodeEditorRemove = this._onCodeEditorRemove.event, this._onDiffEditorAdd = this._register(new W.Q5), this._onDiffEditorRemove = this._register(new W.Q5), this._onDecorationTypeRegistered = this._register(new W.Q5), this._modelProperties = new Map, this._codeEditors = Object.create(null), this._diffEditors = Object.create(null)\n                    }\n                    addCodeEditor(e) {\n                        this._codeEditors[e.getId()] = e, this._onCodeEditorAdd.fire(e)\n                    }\n                    removeCodeEditor(e) {\n                        delete this._codeEditors[e.getId()] && this._onCodeEditorRemove.fire(e)\n                    }\n                    listCodeEditors() {\n                        return Object.keys(this._codeEditors).map((e => this._codeEditors[e]))\n                    }\n                    addDiffEditor(e) {\n                        this._diffEditors[e.getId()] = e, this._onDiffEditorAdd.fire(e)\n                    }\n                    removeDiffEditor(e) {\n                        delete this._diffEditors[e.getId()] && this._onDiffEditorRemove.fire(e)\n                    }\n                    listDiffEditors() {\n                        return Object.keys(this._diffEditors).map((e => this._diffEditors[e]))\n                    }\n                    getFocusedCodeEditor() {\n                        let e = null;\n                        const t = this.listCodeEditors();\n                        for (const i of t) {\n                            if (i.hasTextFocus()) return i;\n                            i.hasWidgetFocus() && (e = i)\n                        }\n                        return e\n                    }\n                    setModelProperty(e, t, i) {\n                        const n = e.toString();\n                        let o;\n                        this._modelProperties.has(n) ? o = this._modelProperties.get(n) : (o = new Map, this._modelProperties.set(n, o)), o.set(t, i)\n                    }\n                    getModelProperty(e, t) {\n                        const i = e.toString();\n                        if (this._modelProperties.has(i)) {\n                            return this._modelProperties.get(i).get(t)\n                        }\n                    }\n                }\n                var wo = function(e, t, i, n) {\n                        var o, s = arguments.length,\n                            r = s < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n                        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) r = Reflect.decorate(e, t, i, n);\n                        else\n                            for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (r = (s < 3 ? o(r) : s > 3 ? o(t, i, r) : o(t, i)) || r);\n                        return s > 3 && r && Object.defineProperty(t, i, r), r\n                    },\n                    yo = function(e, t) {\n                        return function(i, n) {\n                            t(i, n, e)\n                        }\n                    };\n                class Co {\n                    constructor(e, t, i) {\n                        this._parent = e, this._editorId = t, this._styleSheet = i, this._refCount = 0\n                    }\n                    ref() {\n                        this._refCount++\n                    }\n                    unref() {\n                        var e;\n                        this._refCount--, 0 === this._refCount && (null === (e = this._styleSheet.parentNode) || void 0 === e || e.removeChild(this._styleSheet), this._parent._removeEditorStyleSheets(this._editorId))\n                    }\n                    insertRule(e, t) {\n                        this._styleSheet.sheet.insertRule(e, t)\n                    }\n                    removeRulesContainingSelector(e) {\n                        Q.uN(e, this._styleSheet)\n                    }\n                }\n                class xo {\n                    constructor(e) {\n                        this._styleSheet = e\n                    }\n                    ref() {}\n                    unref() {}\n                    insertRule(e, t) {\n                        this._styleSheet.sheet.insertRule(e, t)\n                    }\n                    removeRulesContainingSelector(e) {\n                        Q.uN(e, this._styleSheet)\n                    }\n                }\n                let So = class extends bo {\n                    constructor(e, t) {\n                        super(), this._decorationOptionProviders = new Map, this._editorStyleSheets = new Map, this._globalStyleSheet = e || null, this._themeService = t\n                    }\n                    _getOrCreateGlobalStyleSheet() {\n                        return this._globalStyleSheet || (this._globalStyleSheet = new xo(Q.dS())), this._globalStyleSheet\n                    }\n                    _getOrCreateStyleSheet(e) {\n                        if (!e) return this._getOrCreateGlobalStyleSheet();\n                        const t = e.getContainerDomNode();\n                        if (!Q.OO(t)) return this._getOrCreateGlobalStyleSheet();\n                        const i = e.getId();\n                        if (!this._editorStyleSheets.has(i)) {\n                            const e = new Co(this, i, Q.dS(t));\n                            this._editorStyleSheets.set(i, e)\n                        }\n                        return this._editorStyleSheets.get(i)\n                    }\n                    _removeEditorStyleSheets(e) {\n                        this._editorStyleSheets.delete(e)\n                    }\n                    registerDecorationType(e, t, i, n, o) {\n                        let s = this._decorationOptionProviders.get(t);\n                        if (!s) {\n                            const r = this._getOrCreateStyleSheet(o),\n                                a = {\n                                    styleSheet: r,\n                                    key: t,\n                                    parentTypeKey: n,\n                                    options: i || Object.create(null)\n                                };\n                            s = n ? new ko(this._themeService, r, a) : new Lo(e, this._themeService, r, a), this._decorationOptionProviders.set(t, s), this._onDecorationTypeRegistered.fire(t)\n                        }\n                        s.refCount++\n                    }\n                    removeDecorationType(e) {\n                        const t = this._decorationOptionProviders.get(e);\n                        t && (t.refCount--, t.refCount <= 0 && (this._decorationOptionProviders.delete(e), t.dispose(), this.listCodeEditors().forEach((t => t.removeDecorations(e)))))\n                    }\n                    resolveDecorationOptions(e, t) {\n                        const i = this._decorationOptionProviders.get(e);\n                        if (!i) throw new Error(\"Unknown decoration type key: \" + e);\n                        return i.getOptions(this, t)\n                    }\n                };\n                So = wo([yo(1, mn.XE)], So);\n                class ko {\n                    constructor(e, t, i) {\n                        this._styleSheet = t, this._styleSheet.ref(), this._parentTypeKey = i.parentTypeKey, this.refCount = 0, this._beforeContentRules = new Do(3, i, e), this._afterContentRules = new Do(4, i, e)\n                    }\n                    getOptions(e, t) {\n                        const i = e.resolveDecorationOptions(this._parentTypeKey, !0);\n                        return this._beforeContentRules && (i.beforeContentClassName = this._beforeContentRules.className), this._afterContentRules && (i.afterContentClassName = this._afterContentRules.className), i\n                    }\n                    dispose() {\n                        this._beforeContentRules && (this._beforeContentRules.dispose(), this._beforeContentRules = null), this._afterContentRules && (this._afterContentRules.dispose(), this._afterContentRules = null), this._styleSheet.unref()\n                    }\n                }\n                class Lo {\n                    constructor(e, t, i, n) {\n                        this._disposables = new ue.SL, this.description = e, this._styleSheet = i, this._styleSheet.ref(), this.refCount = 0;\n                        const o = e => {\n                                const i = new Do(e, n, t);\n                                if (this._disposables.add(i), i.hasContent) return i.className\n                            },\n                            s = e => {\n                                const i = new Do(e, n, t);\n                                return this._disposables.add(i), i.hasContent ? {\n                                    className: i.className,\n                                    hasLetterSpacing: i.hasLetterSpacing\n                                } : null\n                            };\n                        this.className = o(0);\n                        const r = s(1);\n                        if (r && (this.inlineClassName = r.className, this.inlineClassNameAffectsLetterSpacing = r.hasLetterSpacing), this.beforeContentClassName = o(3), this.afterContentClassName = o(4), n.options.beforeInjectedText && n.options.beforeInjectedText.contentText) {\n                            const e = s(5);\n                            this.beforeInjectedText = {\n                                content: n.options.beforeInjectedText.contentText,\n                                inlineClassName: null == e ? void 0 : e.className,\n                                inlineClassNameAffectsLetterSpacing: (null == e ? void 0 : e.hasLetterSpacing) || n.options.beforeInjectedText.affectsLetterSpacing\n                            }\n                        }\n                        if (n.options.afterInjectedText && n.options.afterInjectedText.contentText) {\n                            const e = s(6);\n                            this.afterInjectedText = {\n                                content: n.options.afterInjectedText.contentText,\n                                inlineClassName: null == e ? void 0 : e.className,\n                                inlineClassNameAffectsLetterSpacing: (null == e ? void 0 : e.hasLetterSpacing) || n.options.afterInjectedText.affectsLetterSpacing\n                            }\n                        }\n                        this.glyphMarginClassName = o(2);\n                        const a = n.options;\n                        this.isWholeLine = Boolean(a.isWholeLine), this.stickiness = a.rangeBehavior;\n                        const l = a.light && a.light.overviewRulerColor || a.overviewRulerColor,\n                            c = a.dark && a.dark.overviewRulerColor || a.overviewRulerColor;\n                        void 0 === l && void 0 === c || (this.overviewRuler = {\n                            color: l || c,\n                            darkColor: c || l,\n                            position: a.overviewRulerLane || _e.sh.Center\n                        })\n                    }\n                    getOptions(e, t) {\n                        return t ? {\n                            description: this.description,\n                            inlineClassName: this.inlineClassName,\n                            beforeContentClassName: this.beforeContentClassName,\n                            afterContentClassName: this.afterContentClassName,\n                            className: this.className,\n                            glyphMarginClassName: this.glyphMarginClassName,\n                            isWholeLine: this.isWholeLine,\n                            overviewRuler: this.overviewRuler,\n                            stickiness: this.stickiness,\n                            before: this.beforeInjectedText,\n                            after: this.afterInjectedText\n                        } : this\n                    }\n                    dispose() {\n                        this._disposables.dispose(), this._styleSheet.unref()\n                    }\n                }\n                const No = {\n                    color: \"color:{0} !important;\",\n                    opacity: \"opacity:{0};\",\n                    backgroundColor: \"background-color:{0};\",\n                    outline: \"outline:{0};\",\n                    outlineColor: \"outline-color:{0};\",\n                    outlineStyle: \"outline-style:{0};\",\n                    outlineWidth: \"outline-width:{0};\",\n                    border: \"border:{0};\",\n                    borderColor: \"border-color:{0};\",\n                    borderRadius: \"border-radius:{0};\",\n                    borderSpacing: \"border-spacing:{0};\",\n                    borderStyle: \"border-style:{0};\",\n                    borderWidth: \"border-width:{0};\",\n                    fontStyle: \"font-style:{0};\",\n                    fontWeight: \"font-weight:{0};\",\n                    fontSize: \"font-size:{0};\",\n                    fontFamily: \"font-family:{0};\",\n                    textDecoration: \"text-decoration:{0};\",\n                    cursor: \"cursor:{0};\",\n                    letterSpacing: \"letter-spacing:{0};\",\n                    gutterIconPath: \"background:{0} center center no-repeat;\",\n                    gutterIconSize: \"background-size:{0};\",\n                    contentText: \"content:'{0}';\",\n                    contentIconPath: \"content:{0};\",\n                    margin: \"margin:{0};\",\n                    padding: \"padding:{0};\",\n                    width: \"width:{0};\",\n                    height: \"height:{0};\",\n                    verticalAlign: \"vertical-align:{0};\"\n                };\n                class Do {\n                    constructor(e, t, i) {\n                        this._theme = i.getColorTheme(), this._ruleType = e, this._providerArgs = t, this._usesThemeColors = !1, this._hasContent = !1, this._hasLetterSpacing = !1;\n                        let n = Io.getClassName(this._providerArgs.key, e);\n                        this._providerArgs.parentTypeKey && (n = n + \" \" + Io.getClassName(this._providerArgs.parentTypeKey, e)), this._className = n, this._unThemedSelector = Io.getSelector(this._providerArgs.key, this._providerArgs.parentTypeKey, e), this._buildCSS(), this._usesThemeColors ? this._themeListener = i.onDidColorThemeChange((e => {\n                            this._theme = i.getColorTheme(), this._removeCSS(), this._buildCSS()\n                        })) : this._themeListener = null\n                    }\n                    dispose() {\n                        this._hasContent && (this._removeCSS(), this._hasContent = !1), this._themeListener && (this._themeListener.dispose(), this._themeListener = null)\n                    }\n                    get hasContent() {\n                        return this._hasContent\n                    }\n                    get hasLetterSpacing() {\n                        return this._hasLetterSpacing\n                    }\n                    get className() {\n                        return this._className\n                    }\n                    _buildCSS() {\n                        const e = this._providerArgs.options;\n                        let t, i, n;\n                        switch (this._ruleType) {\n                            case 0:\n                                t = this.getCSSTextForModelDecorationClassName(e), i = this.getCSSTextForModelDecorationClassName(e.light), n = this.getCSSTextForModelDecorationClassName(e.dark);\n                                break;\n                            case 1:\n                                t = this.getCSSTextForModelDecorationInlineClassName(e), i = this.getCSSTextForModelDecorationInlineClassName(e.light), n = this.getCSSTextForModelDecorationInlineClassName(e.dark);\n                                break;\n                            case 2:\n                                t = this.getCSSTextForModelDecorationGlyphMarginClassName(e), i = this.getCSSTextForModelDecorationGlyphMarginClassName(e.light), n = this.getCSSTextForModelDecorationGlyphMarginClassName(e.dark);\n                                break;\n                            case 3:\n                                t = this.getCSSTextForModelDecorationContentClassName(e.before), i = this.getCSSTextForModelDecorationContentClassName(e.light && e.light.before), n = this.getCSSTextForModelDecorationContentClassName(e.dark && e.dark.before);\n                                break;\n                            case 4:\n                                t = this.getCSSTextForModelDecorationContentClassName(e.after), i = this.getCSSTextForModelDecorationContentClassName(e.light && e.light.after), n = this.getCSSTextForModelDecorationContentClassName(e.dark && e.dark.after);\n                                break;\n                            case 5:\n                                t = this.getCSSTextForModelDecorationContentClassName(e.beforeInjectedText), i = this.getCSSTextForModelDecorationContentClassName(e.light && e.light.beforeInjectedText), n = this.getCSSTextForModelDecorationContentClassName(e.dark && e.dark.beforeInjectedText);\n                                break;\n                            case 6:\n                                t = this.getCSSTextForModelDecorationContentClassName(e.afterInjectedText), i = this.getCSSTextForModelDecorationContentClassName(e.light && e.light.afterInjectedText), n = this.getCSSTextForModelDecorationContentClassName(e.dark && e.dark.afterInjectedText);\n                                break;\n                            default:\n                                throw new Error(\"Unknown rule type: \" + this._ruleType)\n                        }\n                        const o = this._providerArgs.styleSheet;\n                        let s = !1;\n                        t.length > 0 && (o.insertRule(`${this._unThemedSelector} {${t}}`, 0), s = !0), i.length > 0 && (o.insertRule(`.vs${this._unThemedSelector} {${i}}`, 0), s = !0), n.length > 0 && (o.insertRule(`.vs-dark${this._unThemedSelector}, .hc-black${this._unThemedSelector} {${n}}`, 0), s = !0), this._hasContent = s\n                    }\n                    _removeCSS() {\n                        this._providerArgs.styleSheet.removeRulesContainingSelector(this._unThemedSelector)\n                    }\n                    getCSSTextForModelDecorationClassName(e) {\n                        if (!e) return \"\";\n                        const t = [];\n                        return this.collectCSSText(e, [\"backgroundColor\"], t), this.collectCSSText(e, [\"outline\", \"outlineColor\", \"outlineStyle\", \"outlineWidth\"], t), this.collectBorderSettingsCSSText(e, t), t.join(\"\")\n                    }\n                    getCSSTextForModelDecorationInlineClassName(e) {\n                        if (!e) return \"\";\n                        const t = [];\n                        return this.collectCSSText(e, [\"fontStyle\", \"fontWeight\", \"textDecoration\", \"cursor\", \"color\", \"opacity\", \"letterSpacing\"], t), e.letterSpacing && (this._hasLetterSpacing = !0), t.join(\"\")\n                    }\n                    getCSSTextForModelDecorationContentClassName(e) {\n                        if (!e) return \"\";\n                        const t = [];\n                        if (void 0 !== e) {\n                            if (this.collectBorderSettingsCSSText(e, t), void 0 !== e.contentIconPath && t.push(De.WU(No.contentIconPath, Q.wY(z.o.revive(e.contentIconPath)))), \"string\" == typeof e.contentText) {\n                                const i = e.contentText.match(/^.*$/m)[0].replace(/['\\\\]/g, \"\\\\$&\");\n                                t.push(De.WU(No.contentText, i))\n                            }\n                            this.collectCSSText(e, [\"verticalAlign\", \"fontStyle\", \"fontWeight\", \"fontSize\", \"fontFamily\", \"textDecoration\", \"color\", \"opacity\", \"backgroundColor\", \"margin\", \"padding\"], t), this.collectCSSText(e, [\"width\", \"height\"], t) && t.push(\"display:inline-block;\")\n                        }\n                        return t.join(\"\")\n                    }\n                    getCSSTextForModelDecorationGlyphMarginClassName(e) {\n                        if (!e) return \"\";\n                        const t = [];\n                        return void 0 !== e.gutterIconPath && (t.push(De.WU(No.gutterIconPath, Q.wY(z.o.revive(e.gutterIconPath)))), void 0 !== e.gutterIconSize && t.push(De.WU(No.gutterIconSize, e.gutterIconSize))), t.join(\"\")\n                    }\n                    collectBorderSettingsCSSText(e, t) {\n                        return !!this.collectCSSText(e, [\"border\", \"borderColor\", \"borderRadius\", \"borderSpacing\", \"borderStyle\", \"borderWidth\"], t) && (t.push(De.WU(\"box-sizing: border-box;\")), !0)\n                    }\n                    collectCSSText(e, t, i) {\n                        const n = i.length;\n                        for (let n of t) {\n                            const t = this.resolveValue(e[n]);\n                            \"string\" == typeof t && i.push(De.WU(No[n], t))\n                        }\n                        return i.length !== n\n                    }\n                    resolveValue(e) {\n                        if ((0, ve.I)(e)) {\n                            this._usesThemeColors = !0;\n                            const t = this._theme.getColor(e.id);\n                            return t ? t.toString() : \"transparent\"\n                        }\n                        return e\n                    }\n                }\n                class Io {\n                    static getClassName(e, t) {\n                        return \"ced-\" + e + \"-\" + t\n                    }\n                    static getSelector(e, t, i) {\n                        let n = \".monaco-editor .\" + this.getClassName(e, i);\n                        return t && (n = n + \".\" + this.getClassName(t, i)), 3 === i ? n += \"::before\" : 4 === i && (n += \"::after\"), n\n                    }\n                }\n                var Eo = function(e, t, i, n) {\n                        var o, s = arguments.length,\n                            r = s < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n                        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) r = Reflect.decorate(e, t, i, n);\n                        else\n                            for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (r = (s < 3 ? o(r) : s > 3 ? o(t, i, r) : o(t, i)) || r);\n                        return s > 3 && r && Object.defineProperty(t, i, r), r\n                    },\n                    To = function(e, t) {\n                        return function(i, n) {\n                            t(i, n, e)\n                        }\n                    };\n                let Mo = class extends So {\n                    constructor(e, t, i) {\n                        super(e, i), this.onCodeEditorAdd((() => this._checkContextKey())), this.onCodeEditorRemove((() => this._checkContextKey())), this._editorIsOpen = t.createKey(\"editorIsOpen\", !1), this._activeCodeEditor = null\n                    }\n                    _checkContextKey() {\n                        let e = !1;\n                        for (const t of this.listCodeEditors())\n                            if (!t.isSimpleWidget) {\n                                e = !0;\n                                break\n                            } this._editorIsOpen.set(e)\n                    }\n                    setActiveCodeEditor(e) {\n                        this._activeCodeEditor = e\n                    }\n                    getActiveCodeEditor() {\n                        return this._activeCodeEditor\n                    }\n                    openCodeEditor(e, t, i) {\n                        return t ? Promise.resolve(this.doOpenEditor(t, e)) : Promise.resolve(null)\n                    }\n                    doOpenEditor(e, t) {\n                        if (!this.findModel(e, t.resource)) {\n                            if (t.resource) {\n                                const i = t.resource.scheme;\n                                if (i === te.lg.http || i === te.lg.https) return (0, Q.V3)(t.resource.toString()), e\n                            }\n                            return null\n                        }\n                        const i = t.options ? t.options.selection : null;\n                        if (i)\n                            if (\"number\" == typeof i.endLineNumber && \"number\" == typeof i.endColumn) e.setSelection(i), e.revealRangeInCenter(i, 1);\n                            else {\n                                const t = {\n                                    lineNumber: i.startLineNumber,\n                                    column: i.startColumn\n                                };\n                                e.setPosition(t), e.revealPositionInCenter(t, 1)\n                            } return e\n                    }\n                    findModel(e, t) {\n                        const i = e.getModel();\n                        return i && i.uri.toString() !== t.toString() ? null : i\n                    }\n                };\n                Mo = Eo([To(1, xi.i6), To(2, mn.XE)], Mo);\n                var Ao = i(81170),\n                    Oo = function(e, t, i, n) {\n                        var o, s = arguments.length,\n                            r = s < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n                        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) r = Reflect.decorate(e, t, i, n);\n                        else\n                            for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (r = (s < 3 ? o(r) : s > 3 ? o(t, i, r) : o(t, i)) || r);\n                        return s > 3 && r && Object.defineProperty(t, i, r), r\n                    },\n                    Po = function(e, t) {\n                        return function(i, n) {\n                            t(i, n, e)\n                        }\n                    };\n                let Ro = 0,\n                    Fo = !1;\n                let Bo = class extends sn.Gm {\n                    constructor(e, t, i, n, o, s, r, a, l, c) {\n                        const d = Object.assign({}, t);\n                        d.ariaLabel = d.ariaLabel || Pi.B8.editorViewAccessibleLabel, d.ariaLabel = d.ariaLabel + \";\" + Pi.B8.accessibilityHelpMessage, super(e, d, {}, i, n, o, s, a, l, c), this._standaloneKeybindingService = r instanceof $i ? r : null,\n                            function(e) {\n                                if (!e) {\n                                    if (Fo) return;\n                                    Fo = !0\n                                }\n                                on.wW(e || document.body)\n                            }(d.ariaContainerElement)\n                    }\n                    addCommand(e, t, i) {\n                        if (!this._standaloneKeybindingService) return console.warn(\"Cannot add command because the editor is configured with an unrecognized KeybindingService\"), null;\n                        let n = \"DYNAMIC_\" + ++Ro,\n                            o = xi.Ao.deserialize(i);\n                        return this._standaloneKeybindingService.addDynamicKeybinding(n, e, t, o), n\n                    }\n                    createContextKey(e, t) {\n                        return this._contextKeyService.createKey(e, t)\n                    }\n                    addAction(e) {\n                        if (\"string\" != typeof e.id || \"string\" != typeof e.label || \"function\" != typeof e.run) throw new Error(\"Invalid action descriptor, `id`, `label` and `run` are required properties!\");\n                        if (!this._standaloneKeybindingService) return console.warn(\"Cannot add keybinding because the editor is configured with an unrecognized KeybindingService\"), ue.JT.None;\n                        const t = e.id,\n                            i = e.label,\n                            n = xi.Ao.and(xi.Ao.equals(\"editorId\", this.getId()), xi.Ao.deserialize(e.precondition)),\n                            o = e.keybindings,\n                            s = xi.Ao.and(n, xi.Ao.deserialize(e.keybindingContext)),\n                            r = e.contextMenuGroupId || null,\n                            a = e.contextMenuOrder || 0,\n                            l = (t, ...i) => Promise.resolve(e.run(this, ...i)),\n                            c = new ue.SL,\n                            d = this.getId() + \":\" + t;\n                        if (c.add(ne.P.registerCommand(d, l)), r) {\n                            let e = {\n                                command: {\n                                    id: d,\n                                    title: i\n                                },\n                                when: n,\n                                group: r,\n                                order: a\n                            };\n                            c.add(mo.BH.appendMenuItem(mo.eH.EditorContext, e))\n                        }\n                        if (Array.isArray(o))\n                            for (const e of o) c.add(this._standaloneKeybindingService.addDynamicKeybinding(d, e, l, s));\n                        let h = new po.p(d, i, i, n, l, this._contextKeyService);\n                        return this._actions[t] = h, c.add((0, ue.OF)((() => {\n                            delete this._actions[t]\n                        }))), c\n                    }\n                    _triggerCommand(e, t) {\n                        if (this._codeEditorService instanceof Mo) try {\n                            this._codeEditorService.setActiveCodeEditor(this), super._triggerCommand(e, t)\n                        } finally {\n                            this._codeEditorService.setActiveCodeEditor(null)\n                        } else super._triggerCommand(e, t)\n                    }\n                };\n                Bo = Oo([Po(2, Pn.TG), Po(3, Y.$), Po(4, ne.H), Po(5, xi.i6), Po(6, vo.d), Po(7, mn.XE), Po(8, Ai.lT), Po(9, _o.F)], Bo);\n                let Vo = class extends Bo {\n                    constructor(e, t, i, n, o, s, r, a, l, c, d, h, u, g, p) {\n                        const f = Object.assign({}, t);\n                        Xi(h, f, !1);\n                        const m = c.registerEditorContainer(e);\n                        \"string\" == typeof f.theme && c.setTheme(f.theme), void 0 !== f.autoDetectHighContrast && c.setAutoDetectHighContrast(Boolean(f.autoDetectHighContrast));\n                        let v, _ = f.model;\n                        if (delete f.model, super(e, f, n, o, s, r, a, c, d, u), this._contextViewService = l, this._configurationService = h, this._standaloneThemeService = c, this._register(i), this._register(m), void 0 === _ ? (v = Ho(g, p, f.value || \"\", f.language || Ao.vW.text, void 0), this._ownsModel = !0) : (v = _, this._ownsModel = !1), this._attachModel(v), v) {\n                            let e = {\n                                oldModelUrl: null,\n                                newModelUrl: v.uri\n                            };\n                            this._onDidChangeModel.fire(e)\n                        }\n                    }\n                    dispose() {\n                        super.dispose()\n                    }\n                    updateOptions(e) {\n                        Xi(this._configurationService, e, !1), \"string\" == typeof e.theme && this._standaloneThemeService.setTheme(e.theme), void 0 !== e.autoDetectHighContrast && this._standaloneThemeService.setAutoDetectHighContrast(Boolean(e.autoDetectHighContrast)), super.updateOptions(e)\n                    }\n                    _attachModel(e) {\n                        super._attachModel(e), this._modelData && this._contextViewService.setContainer(this._modelData.view.domNode.domNode)\n                    }\n                    _postDetachModelCleanup(e) {\n                        super._postDetachModelCleanup(e), e && this._ownsModel && (e.dispose(), this._ownsModel = !1)\n                    }\n                };\n                Vo = Oo([Po(3, Pn.TG), Po(4, Y.$), Po(5, ne.H), Po(6, xi.i6), Po(7, vo.d), Po(8, Fn.u), Po(9, fo.Z), Po(10, Ai.lT), Po(11, gi.Ui), Po(12, _o.F), Po(13, vt.q), Po(14, Ce.h)], Vo);\n                let Wo = class extends Xn {\n                    constructor(e, t, i, n, o, s, r, a, l, c, d, h, u, g, p) {\n                        const f = Object.assign({}, t);\n                        Xi(h, f, !0);\n                        const m = c.registerEditorContainer(e);\n                        \"string\" == typeof f.theme && c.setTheme(f.theme), void 0 !== f.autoDetectHighContrast && c.setAutoDetectHighContrast(Boolean(f.autoDetectHighContrast)), super(e, f, {}, p, a, o, n, l, c, d, u, g), this._contextViewService = r, this._configurationService = h, this._standaloneThemeService = c, this._register(i), this._register(m), this._contextViewService.setContainer(this._containerDomElement)\n                    }\n                    dispose() {\n                        super.dispose()\n                    }\n                    updateOptions(e) {\n                        Xi(this._configurationService, e, !0), \"string\" == typeof e.theme && this._standaloneThemeService.setTheme(e.theme), void 0 !== e.autoDetectHighContrast && this._standaloneThemeService.setAutoDetectHighContrast(Boolean(e.autoDetectHighContrast)), super.updateOptions(e)\n                    }\n                    _createInnerEditor(e, t, i) {\n                        return e.createInstance(Bo, t, i)\n                    }\n                    getOriginalEditor() {\n                        return super.getOriginalEditor()\n                    }\n                    getModifiedEditor() {\n                        return super.getModifiedEditor()\n                    }\n                    addCommand(e, t, i) {\n                        return this.getModifiedEditor().addCommand(e, t, i)\n                    }\n                    createContextKey(e, t) {\n                        return this.getModifiedEditor().createContextKey(e, t)\n                    }\n                    addAction(e) {\n                        return this.getModifiedEditor().addAction(e)\n                    }\n                };\n\n                function Ho(e, t, i, n, o) {\n                    if (i = i || \"\", !n) {\n                        const n = i.indexOf(\"\\n\");\n                        let s = i;\n                        return -1 !== n && (s = i.substring(0, n)), zo(e, i, t.createByFilepathOrFirstLine(o || null, s), o)\n                    }\n                    return zo(e, i, t.create(n), o)\n                }\n\n                function zo(e, t, i, n) {\n                    return e.createModel(t, i, n)\n                }\n                Wo = Oo([Po(3, Pn.TG), Po(4, xi.i6), Po(5, vo.d), Po(6, Fn.u), Po(7, ye.p), Po(8, Y.$), Po(9, fo.Z), Po(10, Ai.lT), Po(11, gi.Ui), Po(12, Fn.i), Po(13, zn.e), Po(14, Hn.p)], Wo);\n                var jo = i(71144),\n                    Uo = i(89872);\n                const $o = Object.prototype.hasOwnProperty;\n                class Ko {\n                    constructor() {\n                        this._languageIdToLanguage = [], this._languageToLanguageId = new Map, this._register(we.TG, 0), this._register(jo.XT, 1), this._nextLanguageId = 2\n                    }\n                    _register(e, t) {\n                        this._languageIdToLanguage[t] = e, this._languageToLanguageId.set(e, t)\n                    }\n                    register(e) {\n                        if (this._languageToLanguageId.has(e)) return;\n                        const t = this._nextLanguageId++;\n                        this._register(e, t)\n                    }\n                    encodeLanguageId(e) {\n                        return this._languageToLanguageId.get(e) || 0\n                    }\n                    decodeLanguageId(e) {\n                        return this._languageIdToLanguage[e] || we.TG\n                    }\n                }\n                class qo extends ue.JT {\n                    constructor(e = !0, t = !1) {\n                        super(), this._onDidChange = this._register(new W.Q5), this.onDidChange = this._onDidChange.event, qo.instanceCount++, this._warnOnOverwrite = t, this.languageIdCodec = new Ko, this._languages = {}, this._mimeTypesMap = {}, this._nameMap = {}, this._lowercaseNameMap = {}, e && (this._initializeFromRegistry(), this._register(jo.dQ.onDidChangeLanguages((e => {\n                            this._initializeFromRegistry()\n                        }))))\n                    }\n                    dispose() {\n                        qo.instanceCount--, super.dispose()\n                    }\n                    _initializeFromRegistry() {\n                        this._languages = {}, this._mimeTypesMap = {}, this._nameMap = {}, this._lowercaseNameMap = {}, Ao.bS();\n                        const e = jo.dQ.getLanguages();\n                        this._registerLanguages(e)\n                    }\n                    _registerLanguages(e) {\n                        for (const t of e) this._registerLanguage(t);\n                        this._mimeTypesMap = {}, this._nameMap = {}, this._lowercaseNameMap = {}, Object.keys(this._languages).forEach((e => {\n                            let t = this._languages[e];\n                            t.name && (this._nameMap[t.name] = t.identifier), t.aliases.forEach((e => {\n                                this._lowercaseNameMap[e.toLowerCase()] = t.identifier\n                            })), t.mimetypes.forEach((e => {\n                                this._mimeTypesMap[e] = t.identifier\n                            }))\n                        })), Uo.B.as(pi.IP.Configuration).registerOverrideIdentifiers(jo.dQ.getLanguages().map((e => e.id))), this._onDidChange.fire()\n                    }\n                    _registerLanguage(e) {\n                        const t = e.id;\n                        let i;\n                        $o.call(this._languages, t) ? i = this._languages[t] : (this.languageIdCodec.register(t), i = {\n                            identifier: t,\n                            name: null,\n                            mimetypes: [],\n                            aliases: [],\n                            extensions: [],\n                            filenames: [],\n                            configurationFiles: []\n                        }, this._languages[t] = i), this._mergeLanguage(i, e)\n                    }\n                    _mergeLanguage(e, t) {\n                        const i = t.id;\n                        let n = null;\n                        if (Array.isArray(t.mimetypes) && t.mimetypes.length > 0 && (e.mimetypes.push(...t.mimetypes), n = t.mimetypes[0]), n || (n = `text/x-${i}`, e.mimetypes.push(n)), Array.isArray(t.extensions)) {\n                            t.configuration ? e.extensions = t.extensions.concat(e.extensions) : e.extensions = e.extensions.concat(t.extensions);\n                            for (let e of t.extensions) Ao.sA({\n                                id: i,\n                                mime: n,\n                                extension: e\n                            }, this._warnOnOverwrite)\n                        }\n                        if (Array.isArray(t.filenames))\n                            for (let o of t.filenames) Ao.sA({\n                                id: i,\n                                mime: n,\n                                filename: o\n                            }, this._warnOnOverwrite), e.filenames.push(o);\n                        if (Array.isArray(t.filenamePatterns))\n                            for (let e of t.filenamePatterns) Ao.sA({\n                                id: i,\n                                mime: n,\n                                filepattern: e\n                            }, this._warnOnOverwrite);\n                        if (\"string\" == typeof t.firstLine && t.firstLine.length > 0) {\n                            let e = t.firstLine;\n                            \"^\" !== e.charAt(0) && (e = \"^\" + e);\n                            try {\n                                let t = new RegExp(e);\n                                De.IO(t) || Ao.sA({\n                                    id: i,\n                                    mime: n,\n                                    firstline: t\n                                }, this._warnOnOverwrite)\n                            } catch (e) {\n                                (0, ke.dL)(e)\n                            }\n                        }\n                        e.aliases.push(i);\n                        let o = null;\n                        if (void 0 !== t.aliases && Array.isArray(t.aliases) && (o = 0 === t.aliases.length ? [null] : t.aliases), null !== o)\n                            for (const t of o) t && 0 !== t.length && e.aliases.push(t);\n                        let s = null !== o && o.length > 0;\n                        if (s && null === o[0]);\n                        else {\n                            let t = (s ? o[0] : null) || i;\n                            !s && e.name || (e.name = t)\n                        }\n                        t.configuration && e.configurationFiles.push(t.configuration)\n                    }\n                    isRegisteredMode(e) {\n                        return !!$o.call(this._mimeTypesMap, e) || $o.call(this._languages, e)\n                    }\n                    getModeIdForLanguageNameLowercase(e) {\n                        return $o.call(this._lowercaseNameMap, e) ? this._lowercaseNameMap[e] : null\n                    }\n                    extractModeIds(e) {\n                        return e ? e.split(\",\").map((e => e.trim())).map((e => $o.call(this._mimeTypesMap, e) ? this._mimeTypesMap[e] : e)).filter((e => $o.call(this._languages, e))) : []\n                    }\n                    validateLanguageId(e) {\n                        return e && e !== we.TG ? $o.call(this._languages, e) ? e : null : we.TG\n                    }\n                    getModeIdsFromFilepathOrFirstLine(e, t) {\n                        if (!e && !t) return [];\n                        let i = Ao.G8(e, t);\n                        return this.extractModeIds(i.join(\",\"))\n                    }\n                }\n                qo.instanceCount = 0;\n                class Zo {\n                    constructor(e, t) {\n                        let i;\n                        this._selector = t, this.languageId = this._selector(), this._onDidChange = new W.Q5({\n                            onFirstListenerAdd: () => {\n                                i = e((() => this._evaluate()))\n                            },\n                            onLastListenerRemove: () => {\n                                i.dispose()\n                            }\n                        }), this.onDidChange = this._onDidChange.event\n                    }\n                    _evaluate() {\n                        const e = this._selector();\n                        e !== this.languageId && (this.languageId = e, this._onDidChange.fire(this.languageId))\n                    }\n                }\n                class Go extends ue.JT {\n                    constructor(e = !1) {\n                        super(), this._onDidEncounterLanguage = this._register(new W.Q5), this.onDidEncounterLanguage = this._onDidEncounterLanguage.event, this._onLanguagesMaybeChanged = this._register(new W.Q5({\n                            leakWarningThreshold: 200\n                        })), this.onLanguagesMaybeChanged = this._onLanguagesMaybeChanged.event, Go.instanceCount++, this._encounteredLanguages = new Set, this._registry = this._register(new qo(!0, e)), this.languageIdCodec = this._registry.languageIdCodec, this._register(this._registry.onDidChange((() => this._onLanguagesMaybeChanged.fire())))\n                    }\n                    dispose() {\n                        Go.instanceCount--, super.dispose()\n                    }\n                    isRegisteredMode(e) {\n                        return this._registry.isRegisteredMode(e)\n                    }\n                    getModeIdForLanguageName(e) {\n                        return this._registry.getModeIdForLanguageNameLowercase(e)\n                    }\n                    getModeIdByFilepathOrFirstLine(e, t) {\n                        const i = this._registry.getModeIdsFromFilepathOrFirstLine(e, t);\n                        return (0, bt.Xh)(i, null)\n                    }\n                    getModeId(e) {\n                        const t = this._registry.extractModeIds(e);\n                        return (0, bt.Xh)(t, null)\n                    }\n                    validateLanguageId(e) {\n                        return this._registry.validateLanguageId(e)\n                    }\n                    create(e) {\n                        return new Zo(this.onLanguagesMaybeChanged, (() => {\n                            const t = this.getModeId(e);\n                            return this._createModeAndGetLanguageIdentifier(t)\n                        }))\n                    }\n                    createByFilepathOrFirstLine(e, t) {\n                        return new Zo(this.onLanguagesMaybeChanged, (() => {\n                            const i = this.getModeIdByFilepathOrFirstLine(e, t);\n                            return this._createModeAndGetLanguageIdentifier(i)\n                        }))\n                    }\n                    _createModeAndGetLanguageIdentifier(e) {\n                        const t = this.validateLanguageId(e || \"plaintext\") || we.TG;\n                        return this._getOrCreateMode(t), t\n                    }\n                    triggerMode(e) {\n                        const t = this.getModeId(e);\n                        this._getOrCreateMode(t || \"plaintext\")\n                    }\n                    _getOrCreateMode(e) {\n                        if (!this._encounteredLanguages.has(e)) {\n                            this._encounteredLanguages.add(e);\n                            const t = this.validateLanguageId(e) || we.TG;\n                            this._onDidEncounterLanguage.fire(t)\n                        }\n                    }\n                }\n                Go.instanceCount = 0;\n                var Yo = i(32334),\n                    Qo = i(41264);\n                class Xo {\n                    constructor(e, t, i, n, o) {\n                        this._parsedThemeRuleBrand = void 0, this.token = e, this.index = t, this.fontStyle = i, this.foreground = n, this.background = o\n                    }\n                }\n                const Jo = /^#?([0-9A-Fa-f]{6})([0-9A-Fa-f]{2})?$/;\n                class es {\n                    constructor() {\n                        this._lastColorId = 0, this._id2color = [], this._color2id = new Map\n                    }\n                    getId(e) {\n                        if (null === e) return 0;\n                        const t = e.match(Jo);\n                        if (!t) throw new Error(\"Illegal value for token color: \" + e);\n                        e = t[1].toUpperCase();\n                        let i = this._color2id.get(e);\n                        return i || (i = ++this._lastColorId, this._color2id.set(e, i), this._id2color[i] = Qo.Il.fromHex(\"#\" + e), i)\n                    }\n                    getColorMap() {\n                        return this._id2color.slice(0)\n                    }\n                }\n                class ts {\n                    constructor(e, t) {\n                        this._colorMap = e, this._root = t, this._cache = new Map\n                    }\n                    static createFromRawTokenTheme(e, t) {\n                        return this.createFromParsedTokenTheme(function(e) {\n                            if (!e || !Array.isArray(e)) return [];\n                            let t = [],\n                                i = 0;\n                            for (let n = 0, o = e.length; n < o; n++) {\n                                let o = e[n],\n                                    s = -1;\n                                if (\"string\" == typeof o.fontStyle) {\n                                    s = 0;\n                                    let e = o.fontStyle.split(\" \");\n                                    for (let t = 0, i = e.length; t < i; t++) switch (e[t]) {\n                                        case \"italic\":\n                                            s |= 1;\n                                            break;\n                                        case \"bold\":\n                                            s |= 2;\n                                            break;\n                                        case \"underline\":\n                                            s |= 4\n                                    }\n                                }\n                                let r = null;\n                                \"string\" == typeof o.foreground && (r = o.foreground);\n                                let a = null;\n                                \"string\" == typeof o.background && (a = o.background), t[i++] = new Xo(o.token || \"\", n, s, r, a)\n                            }\n                            return t\n                        }(e), t)\n                    }\n                    static createFromParsedTokenTheme(e, t) {\n                        return function(e, t) {\n                            e.sort(((e, t) => {\n                                let i = function(e, t) {\n                                    return e < t ? -1 : e > t ? 1 : 0\n                                }(e.token, t.token);\n                                return 0 !== i ? i : e.index - t.index\n                            }));\n                            let i = 0,\n                                n = \"000000\",\n                                o = \"ffffff\";\n                            for (; e.length >= 1 && \"\" === e[0].token;) {\n                                let t = e.shift(); - 1 !== t.fontStyle && (i = t.fontStyle), null !== t.foreground && (n = t.foreground), null !== t.background && (o = t.background)\n                            }\n                            let s = new es;\n                            for (let e of t) s.getId(e);\n                            let r = s.getId(n),\n                                a = s.getId(o),\n                                l = new ns(i, r, a),\n                                c = new os(l);\n                            for (let t = 0, i = e.length; t < i; t++) {\n                                let i = e[t];\n                                c.insert(i.token, i.fontStyle, s.getId(i.foreground), s.getId(i.background))\n                            }\n                            return new ts(s, c)\n                        }(e, t)\n                    }\n                    getColorMap() {\n                        return this._colorMap.getColorMap()\n                    }\n                    _match(e) {\n                        return this._root.match(e)\n                    }\n                    match(e, t) {\n                        let i = this._cache.get(t);\n                        if (void 0 === i) {\n                            let e = this._match(t),\n                                n = function(e) {\n                                    let t = e.match(is);\n                                    if (!t) return 0;\n                                    switch (t[1]) {\n                                        case \"comment\":\n                                            return 1;\n                                        case \"string\":\n                                            return 2;\n                                        case \"regex\":\n                                        case \"regexp\":\n                                            return 4\n                                    }\n                                    throw new Error(\"Unexpected match for standard token type!\")\n                                }(t);\n                            i = (e.metadata | n << 8) >>> 0, this._cache.set(t, i)\n                        }\n                        return (i | e << 0) >>> 0\n                    }\n                }\n                const is = /\\b(comment|string|regex|regexp)\\b/;\n                class ns {\n                    constructor(e, t, i) {\n                        this._themeTrieElementRuleBrand = void 0, this._fontStyle = e, this._foreground = t, this._background = i, this.metadata = (this._fontStyle << 11 | this._foreground << 14 | this._background << 23) >>> 0\n                    }\n                    clone() {\n                        return new ns(this._fontStyle, this._foreground, this._background)\n                    }\n                    acceptOverwrite(e, t, i) {\n                        -1 !== e && (this._fontStyle = e), 0 !== t && (this._foreground = t), 0 !== i && (this._background = i), this.metadata = (this._fontStyle << 11 | this._foreground << 14 | this._background << 23) >>> 0\n                    }\n                }\n                class os {\n                    constructor(e) {\n                        this._themeTrieElementBrand = void 0, this._mainRule = e, this._children = new Map\n                    }\n                    match(e) {\n                        if (\"\" === e) return this._mainRule;\n                        let t, i, n = e.indexOf(\".\"); - 1 === n ? (t = e, i = \"\") : (t = e.substring(0, n), i = e.substring(n + 1));\n                        let o = this._children.get(t);\n                        return void 0 !== o ? o.match(i) : this._mainRule\n                    }\n                    insert(e, t, i, n) {\n                        if (\"\" === e) return void this._mainRule.acceptOverwrite(t, i, n);\n                        let o, s, r = e.indexOf(\".\"); - 1 === r ? (o = e, s = \"\") : (o = e.substring(0, r), s = e.substring(r + 1));\n                        let a = this._children.get(o);\n                        void 0 === a && (a = new os(this._mainRule.clone()), this._children.set(o, a)), a.insert(s, t, i, n)\n                    }\n                }\n                const ss = {\n                        base: \"vs\",\n                        inherit: !1,\n                        rules: [{\n                            token: \"\",\n                            foreground: \"000000\",\n                            background: \"fffffe\"\n                        }, {\n                            token: \"invalid\",\n                            foreground: \"cd3131\"\n                        }, {\n                            token: \"emphasis\",\n                            fontStyle: \"italic\"\n                        }, {\n                            token: \"strong\",\n                            fontStyle: \"bold\"\n                        }, {\n                            token: \"variable\",\n                            foreground: \"001188\"\n                        }, {\n                            token: \"variable.predefined\",\n                            foreground: \"4864AA\"\n                        }, {\n                            token: \"constant\",\n                            foreground: \"dd0000\"\n                        }, {\n                            token: \"comment\",\n                            foreground: \"008000\"\n                        }, {\n                            token: \"number\",\n                            foreground: \"098658\"\n                        }, {\n                            token: \"number.hex\",\n                            foreground: \"3030c0\"\n                        }, {\n                            token: \"regexp\",\n                            foreground: \"800000\"\n                        }, {\n                            token: \"annotation\",\n                            foreground: \"808080\"\n                        }, {\n                            token: \"type\",\n                            foreground: \"008080\"\n                        }, {\n                            token: \"delimiter\",\n                            foreground: \"000000\"\n                        }, {\n                            token: \"delimiter.html\",\n                            foreground: \"383838\"\n                        }, {\n                            token: \"delimiter.xml\",\n                            foreground: \"0000FF\"\n                        }, {\n                            token: \"tag\",\n                            foreground: \"800000\"\n                        }, {\n                            token: \"tag.id.pug\",\n                            foreground: \"4F76AC\"\n                        }, {\n                            token: \"tag.class.pug\",\n                            foreground: \"4F76AC\"\n                        }, {\n                            token: \"meta.scss\",\n                            foreground: \"800000\"\n                        }, {\n                            token: \"metatag\",\n                            foreground: \"e00000\"\n                        }, {\n                            token: \"metatag.content.html\",\n                            foreground: \"FF0000\"\n                        }, {\n                            token: \"metatag.html\",\n                            foreground: \"808080\"\n                        }, {\n                            token: \"metatag.xml\",\n                            foreground: \"808080\"\n                        }, {\n                            token: \"metatag.php\",\n                            fontStyle: \"bold\"\n                        }, {\n                            token: \"key\",\n                            foreground: \"863B00\"\n                        }, {\n                            token: \"string.key.json\",\n                            foreground: \"A31515\"\n                        }, {\n                            token: \"string.value.json\",\n                            foreground: \"0451A5\"\n                        }, {\n                            token: \"attribute.name\",\n                            foreground: \"FF0000\"\n                        }, {\n                            token: \"attribute.value\",\n                            foreground: \"0451A5\"\n                        }, {\n                            token: \"attribute.value.number\",\n                            foreground: \"098658\"\n                        }, {\n                            token: \"attribute.value.unit\",\n                            foreground: \"098658\"\n                        }, {\n                            token: \"attribute.value.html\",\n                            foreground: \"0000FF\"\n                        }, {\n                            token: \"attribute.value.xml\",\n                            foreground: \"0000FF\"\n                        }, {\n                            token: \"string\",\n                            foreground: \"A31515\"\n                        }, {\n                            token: \"string.html\",\n                            foreground: \"0000FF\"\n                        }, {\n                            token: \"string.sql\",\n                            foreground: \"FF0000\"\n                        }, {\n                            token: \"string.yaml\",\n                            foreground: \"0451A5\"\n                        }, {\n                            token: \"keyword\",\n                            foreground: \"0000FF\"\n                        }, {\n                            token: \"keyword.json\",\n                            foreground: \"0451A5\"\n                        }, {\n                            token: \"keyword.flow\",\n                            foreground: \"AF00DB\"\n                        }, {\n                            token: \"keyword.flow.scss\",\n                            foreground: \"0000FF\"\n                        }, {\n                            token: \"operator.scss\",\n                            foreground: \"666666\"\n                        }, {\n                            token: \"operator.sql\",\n                            foreground: \"778899\"\n                        }, {\n                            token: \"operator.swift\",\n                            foreground: \"666666\"\n                        }, {\n                            token: \"predefined.sql\",\n                            foreground: \"C700C7\"\n                        }],\n                        colors: {\n                            [fn.cv]: \"#FFFFFE\",\n                            [fn.NO]: \"#000000\",\n                            [fn.ES]: \"#E5EBF1\",\n                            [pn.tR]: \"#D3D3D3\",\n                            [pn.Ym]: \"#939393\",\n                            [fn.Rz]: \"#ADD6FF4D\"\n                        }\n                    },\n                    rs = {\n                        base: \"vs-dark\",\n                        inherit: !1,\n                        rules: [{\n                            token: \"\",\n                            foreground: \"D4D4D4\",\n                            background: \"1E1E1E\"\n                        }, {\n                            token: \"invalid\",\n                            foreground: \"f44747\"\n                        }, {\n                            token: \"emphasis\",\n                            fontStyle: \"italic\"\n                        }, {\n                            token: \"strong\",\n                            fontStyle: \"bold\"\n                        }, {\n                            token: \"variable\",\n                            foreground: \"74B0DF\"\n                        }, {\n                            token: \"variable.predefined\",\n                            foreground: \"4864AA\"\n                        }, {\n                            token: \"variable.parameter\",\n                            foreground: \"9CDCFE\"\n                        }, {\n                            token: \"constant\",\n                            foreground: \"569CD6\"\n                        }, {\n                            token: \"comment\",\n                            foreground: \"608B4E\"\n                        }, {\n                            token: \"number\",\n                            foreground: \"B5CEA8\"\n                        }, {\n                            token: \"number.hex\",\n                            foreground: \"5BB498\"\n                        }, {\n                            token: \"regexp\",\n                            foreground: \"B46695\"\n                        }, {\n                            token: \"annotation\",\n                            foreground: \"cc6666\"\n                        }, {\n                            token: \"type\",\n                            foreground: \"3DC9B0\"\n                        }, {\n                            token: \"delimiter\",\n                            foreground: \"DCDCDC\"\n                        }, {\n                            token: \"delimiter.html\",\n                            foreground: \"808080\"\n                        }, {\n                            token: \"delimiter.xml\",\n                            foreground: \"808080\"\n                        }, {\n                            token: \"tag\",\n                            foreground: \"569CD6\"\n                        }, {\n                            token: \"tag.id.pug\",\n                            foreground: \"4F76AC\"\n                        }, {\n                            token: \"tag.class.pug\",\n                            foreground: \"4F76AC\"\n                        }, {\n                            token: \"meta.scss\",\n                            foreground: \"A79873\"\n                        }, {\n                            token: \"meta.tag\",\n                            foreground: \"CE9178\"\n                        }, {\n                            token: \"metatag\",\n                            foreground: \"DD6A6F\"\n                        }, {\n                            token: \"metatag.content.html\",\n                            foreground: \"9CDCFE\"\n                        }, {\n                            token: \"metatag.html\",\n                            foreground: \"569CD6\"\n                        }, {\n                            token: \"metatag.xml\",\n                            foreground: \"569CD6\"\n                        }, {\n                            token: \"metatag.php\",\n                            fontStyle: \"bold\"\n                        }, {\n                            token: \"key\",\n                            foreground: \"9CDCFE\"\n                        }, {\n                            token: \"string.key.json\",\n                            foreground: \"9CDCFE\"\n                        }, {\n                            token: \"string.value.json\",\n                            foreground: \"CE9178\"\n                        }, {\n                            token: \"attribute.name\",\n                            foreground: \"9CDCFE\"\n                        }, {\n                            token: \"attribute.value\",\n                            foreground: \"CE9178\"\n                        }, {\n                            token: \"attribute.value.number.css\",\n                            foreground: \"B5CEA8\"\n                        }, {\n                            token: \"attribute.value.unit.css\",\n                            foreground: \"B5CEA8\"\n                        }, {\n                            token: \"attribute.value.hex.css\",\n                            foreground: \"D4D4D4\"\n                        }, {\n                            token: \"string\",\n                            foreground: \"CE9178\"\n                        }, {\n                            token: \"string.sql\",\n                            foreground: \"FF0000\"\n                        }, {\n                            token: \"keyword\",\n                            foreground: \"569CD6\"\n                        }, {\n                            token: \"keyword.flow\",\n                            foreground: \"C586C0\"\n                        }, {\n                            token: \"keyword.json\",\n                            foreground: \"CE9178\"\n                        }, {\n                            token: \"keyword.flow.scss\",\n                            foreground: \"569CD6\"\n                        }, {\n                            token: \"operator.scss\",\n                            foreground: \"909090\"\n                        }, {\n                            token: \"operator.sql\",\n                            foreground: \"778899\"\n                        }, {\n                            token: \"operator.swift\",\n                            foreground: \"909090\"\n                        }, {\n                            token: \"predefined.sql\",\n                            foreground: \"FF00FF\"\n                        }],\n                        colors: {\n                            [fn.cv]: \"#1E1E1E\",\n                            [fn.NO]: \"#D4D4D4\",\n                            [fn.ES]: \"#3A3D41\",\n                            [pn.tR]: \"#404040\",\n                            [pn.Ym]: \"#707070\",\n                            [fn.Rz]: \"#ADD6FF26\"\n                        }\n                    },\n                    as = {\n                        base: \"hc-black\",\n                        inherit: !1,\n                        rules: [{\n                            token: \"\",\n                            foreground: \"FFFFFF\",\n                            background: \"000000\"\n                        }, {\n                            token: \"invalid\",\n                            foreground: \"f44747\"\n                        }, {\n                            token: \"emphasis\",\n                            fontStyle: \"italic\"\n                        }, {\n                            token: \"strong\",\n                            fontStyle: \"bold\"\n                        }, {\n                            token: \"variable\",\n                            foreground: \"1AEBFF\"\n                        }, {\n                            token: \"variable.parameter\",\n                            foreground: \"9CDCFE\"\n                        }, {\n                            token: \"constant\",\n                            foreground: \"569CD6\"\n                        }, {\n                            token: \"comment\",\n                            foreground: \"608B4E\"\n                        }, {\n                            token: \"number\",\n                            foreground: \"FFFFFF\"\n                        }, {\n                            token: \"regexp\",\n                            foreground: \"C0C0C0\"\n                        }, {\n                            token: \"annotation\",\n                            foreground: \"569CD6\"\n                        }, {\n                            token: \"type\",\n                            foreground: \"3DC9B0\"\n                        }, {\n                            token: \"delimiter\",\n                            foreground: \"FFFF00\"\n                        }, {\n                            token: \"delimiter.html\",\n                            foreground: \"FFFF00\"\n                        }, {\n                            token: \"tag\",\n                            foreground: \"569CD6\"\n                        }, {\n                            token: \"tag.id.pug\",\n                            foreground: \"4F76AC\"\n                        }, {\n                            token: \"tag.class.pug\",\n                            foreground: \"4F76AC\"\n                        }, {\n                            token: \"meta\",\n                            foreground: \"D4D4D4\"\n                        }, {\n                            token: \"meta.tag\",\n                            foreground: \"CE9178\"\n                        }, {\n                            token: \"metatag\",\n                            foreground: \"569CD6\"\n                        }, {\n                            token: \"metatag.content.html\",\n                            foreground: \"1AEBFF\"\n                        }, {\n                            token: \"metatag.html\",\n                            foreground: \"569CD6\"\n                        }, {\n                            token: \"metatag.xml\",\n                            foreground: \"569CD6\"\n                        }, {\n                            token: \"metatag.php\",\n                            fontStyle: \"bold\"\n                        }, {\n                            token: \"key\",\n                            foreground: \"9CDCFE\"\n                        }, {\n                            token: \"string.key\",\n                            foreground: \"9CDCFE\"\n                        }, {\n                            token: \"string.value\",\n                            foreground: \"CE9178\"\n                        }, {\n                            token: \"attribute.name\",\n                            foreground: \"569CD6\"\n                        }, {\n                            token: \"attribute.value\",\n                            foreground: \"3FF23F\"\n                        }, {\n                            token: \"string\",\n                            foreground: \"CE9178\"\n                        }, {\n                            token: \"string.sql\",\n                            foreground: \"FF0000\"\n                        }, {\n                            token: \"keyword\",\n                            foreground: \"569CD6\"\n                        }, {\n                            token: \"keyword.flow\",\n                            foreground: \"C586C0\"\n                        }, {\n                            token: \"operator.sql\",\n                            foreground: \"778899\"\n                        }, {\n                            token: \"operator.swift\",\n                            foreground: \"909090\"\n                        }, {\n                            token: \"predefined.sql\",\n                            foreground: \"FF00FF\"\n                        }],\n                        colors: {\n                            [fn.cv]: \"#000000\",\n                            [fn.NO]: \"#FFFFFF\",\n                            [pn.tR]: \"#FFFFFF\",\n                            [pn.Ym]: \"#FFFFFF\"\n                        }\n                    };\n                var ls = i(92321);\n                const cs = \"vs\",\n                    ds = \"vs-dark\",\n                    hs = \"hc-black\",\n                    us = Uo.B.as(fn.IP.ColorContribution),\n                    gs = Uo.B.as(mn.IP.ThemingContribution);\n                class ps {\n                    constructor(e, t) {\n                        this.semanticHighlighting = !1, this.themeData = t;\n                        let i = t.base;\n                        e.length > 0 ? (fs(e) ? this.id = e : this.id = i + \" \" + e, this.themeName = e) : (this.id = i, this.themeName = i), this.colors = null, this.defaultColors = Object.create(null), this._tokenTheme = null\n                    }\n                    get base() {\n                        return this.themeData.base\n                    }\n                    notifyBaseUpdated() {\n                        this.themeData.inherit && (this.colors = null, this._tokenTheme = null)\n                    }\n                    getColors() {\n                        if (!this.colors) {\n                            const e = new Map;\n                            for (let t in this.themeData.colors) e.set(t, Qo.Il.fromHex(this.themeData.colors[t]));\n                            if (this.themeData.inherit) {\n                                let t = ms(this.themeData.base);\n                                for (let i in t.colors) e.has(i) || e.set(i, Qo.Il.fromHex(t.colors[i]))\n                            }\n                            this.colors = e\n                        }\n                        return this.colors\n                    }\n                    getColor(e, t) {\n                        const i = this.getColors().get(e);\n                        return i || (!1 !== t ? this.getDefault(e) : void 0)\n                    }\n                    getDefault(e) {\n                        let t = this.defaultColors[e];\n                        return t || (t = us.resolveDefaultColor(e, this), this.defaultColors[e] = t, t)\n                    }\n                    defines(e) {\n                        return Object.prototype.hasOwnProperty.call(this.getColors(), e)\n                    }\n                    get type() {\n                        switch (this.base) {\n                            case cs:\n                                return ls.e.LIGHT;\n                            case hs:\n                                return ls.e.HIGH_CONTRAST;\n                            default:\n                                return ls.e.DARK\n                        }\n                    }\n                    get tokenTheme() {\n                        if (!this._tokenTheme) {\n                            let e = [],\n                                t = [];\n                            if (this.themeData.inherit) {\n                                let i = ms(this.themeData.base);\n                                e = i.rules, i.encodedTokensColors && (t = i.encodedTokensColors)\n                            }\n                            const i = this.themeData.colors[\"editor.foreground\"],\n                                n = this.themeData.colors[\"editor.background\"];\n                            if (i || n) {\n                                const t = {\n                                    token: \"\"\n                                };\n                                i && (t.foreground = i), n && (t.background = n), e.push(t)\n                            }\n                            e = e.concat(this.themeData.rules), this.themeData.encodedTokensColors && (t = this.themeData.encodedTokensColors), this._tokenTheme = ts.createFromRawTokenTheme(e, t)\n                        }\n                        return this._tokenTheme\n                    }\n                    getTokenStyleMetadata(e, t, i) {\n                        const n = this.tokenTheme._match([e].concat(t).join(\".\")).metadata,\n                            o = be.NX.getForeground(n),\n                            s = be.NX.getFontStyle(n);\n                        return {\n                            foreground: o,\n                            italic: Boolean(1 & s),\n                            bold: Boolean(2 & s),\n                            underline: Boolean(4 & s)\n                        }\n                    }\n                }\n\n                function fs(e) {\n                    return e === cs || e === ds || e === hs\n                }\n\n                function ms(e) {\n                    switch (e) {\n                        case cs:\n                            return ss;\n                        case ds:\n                            return rs;\n                        case hs:\n                            return as\n                    }\n                }\n\n                function vs(e) {\n                    let t = ms(e);\n                    return new ps(e, t)\n                }\n                class _s extends ue.JT {\n                    constructor() {\n                        super(), this._onColorThemeChange = this._register(new W.Q5), this.onDidColorThemeChange = this._onColorThemeChange.event, this._environment = Object.create(null), this._autoDetectHighContrast = !0, this._knownThemes = new Map, this._knownThemes.set(cs, vs(cs)), this._knownThemes.set(ds, vs(ds)), this._knownThemes.set(hs, vs(hs));\n                        const e = function() {\n                            const e = new W.Q5,\n                                t = (0, _n.Ks)();\n                            return t.onDidChange((() => e.fire())), {\n                                onDidChange: e.event,\n                                getCSS() {\n                                    const e = {},\n                                        i = i => {\n                                            let n = i.defaults;\n                                            for (; mn.kS.isThemeIcon(n);) {\n                                                const e = t.getIcon(n.id);\n                                                if (!e) return;\n                                                n = e.defaults\n                                            }\n                                            const o = n.fontId;\n                                            if (o) {\n                                                const s = t.getIconFont(o);\n                                                if (s) return e[o] = s, `.codicon-${i.id}:before { content: '${n.fontCharacter}'; font-family: ${(0,Q._h)(o)}; }`\n                                            }\n                                            return `.codicon-${i.id}:before { content: '${n.fontCharacter}'; }`\n                                        },\n                                        n = [];\n                                    for (let e of t.getIcons()) {\n                                        const t = i(e);\n                                        t && n.push(t)\n                                    }\n                                    for (let t in e) {\n                                        const i = e[t].definition.src.map((e => `${(0,Q.wY)(e.location)} format('${e.format}')`)).join(\", \");\n                                        n.push(`@font-face { src: ${i}; font-family: ${(0,Q._h)(t)}; font-display: block; }`)\n                                    }\n                                    return n.join(\"\\n\")\n                                }\n                            }\n                        }();\n                        this._codiconCSS = e.getCSS(), this._themeCSS = \"\", this._allCSS = `${this._codiconCSS}\\n${this._themeCSS}`, this._globalStyleElement = null, this._styleElements = [], this._colorMapOverride = null, this.setTheme(cs), e.onDidChange((() => {\n                            this._codiconCSS = e.getCSS(), this._updateCSS()\n                        })), Q.uB(\"(forced-colors: active)\", (() => {\n                            this._updateActualTheme()\n                        }))\n                    }\n                    registerEditorContainer(e) {\n                        return Q.OO(e) ? this._registerShadowDomContainer(e) : this._registerRegularEditorContainer()\n                    }\n                    _registerRegularEditorContainer() {\n                        return this._globalStyleElement || (this._globalStyleElement = Q.dS(), this._globalStyleElement.className = \"monaco-colors\", this._globalStyleElement.textContent = this._allCSS, this._styleElements.push(this._globalStyleElement)), ue.JT.None\n                    }\n                    _registerShadowDomContainer(e) {\n                        const t = Q.dS(e);\n                        return t.className = \"monaco-colors\", t.textContent = this._allCSS, this._styleElements.push(t), {\n                            dispose: () => {\n                                for (let e = 0; e < this._styleElements.length; e++)\n                                    if (this._styleElements[e] === t) return void this._styleElements.splice(e, 1)\n                            }\n                        }\n                    }\n                    defineTheme(e, t) {\n                        if (!/^[a-z0-9\\-]+$/i.test(e)) throw new Error(\"Illegal theme name!\");\n                        if (!fs(t.base) && !fs(e)) throw new Error(\"Illegal theme base!\");\n                        this._knownThemes.set(e, new ps(e, t)), fs(e) && this._knownThemes.forEach((t => {\n                            t.base === e && t.notifyBaseUpdated()\n                        })), this._theme.themeName === e && this.setTheme(e)\n                    }\n                    getColorTheme() {\n                        return this._theme\n                    }\n                    setColorMapOverride(e) {\n                        this._colorMapOverride = e, this._updateThemeOrColorMap()\n                    }\n                    setTheme(e) {\n                        let t;\n                        t = this._knownThemes.has(e) ? this._knownThemes.get(e) : this._knownThemes.get(cs), this._desiredTheme = t, this._updateActualTheme()\n                    }\n                    _updateActualTheme() {\n                        const e = this._autoDetectHighContrast && window.matchMedia(\"(forced-colors: active)\").matches ? this._knownThemes.get(hs) : this._desiredTheme;\n                        this._theme !== e && (this._theme = e, this._updateThemeOrColorMap())\n                    }\n                    setAutoDetectHighContrast(e) {\n                        this._autoDetectHighContrast = e, this._updateActualTheme()\n                    }\n                    _updateThemeOrColorMap() {\n                        let e = [],\n                            t = {},\n                            i = {\n                                addRule: i => {\n                                    t[i] || (e.push(i), t[i] = !0)\n                                }\n                            };\n                        gs.getThemingParticipants().forEach((e => e(this._theme, i, this._environment)));\n                        const n = this._colorMapOverride || this._theme.tokenTheme.getColorMap();\n                        i.addRule(function(e) {\n                            let t = [];\n                            for (let i = 1, n = e.length; i < n; i++) {\n                                let n = e[i];\n                                t[i] = `.mtk${i} { color: ${n}; }`\n                            }\n                            return t.push(\".mtki { font-style: italic; }\"), t.push(\".mtkb { font-weight: bold; }\"), t.push(\".mtku { text-decoration: underline; text-underline-position: under; }\"), t.join(\"\\n\")\n                        }(n)), this._themeCSS = e.join(\"\\n\"), this._updateCSS(), be.RW.setColorMap(n), this._onColorThemeChange.fire(this._theme)\n                    }\n                    _updateCSS() {\n                        this._allCSS = `${this._codiconCSS}\\n${this._themeCSS}`, this._styleElements.forEach((e => e.textContent = this._allCSS))\n                    }\n                    getFileIconTheme() {\n                        return {\n                            hasFileIcons: !1,\n                            hasFolderIcons: !1,\n                            hidesExplorerArrows: !1\n                        }\n                    }\n                }\n                var bs = i(53725),\n                    ws = function(e, t, i, n) {\n                        var o, s = arguments.length,\n                            r = s < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n                        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) r = Reflect.decorate(e, t, i, n);\n                        else\n                            for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (r = (s < 3 ? o(r) : s > 3 ? o(t, i, r) : o(t, i)) || r);\n                        return s > 3 && r && Object.defineProperty(t, i, r), r\n                    },\n                    ys = function(e, t) {\n                        return function(i, n) {\n                            t(i, n, e)\n                        }\n                    };\n                const Cs = \"data-keybinding-context\";\n                class xs {\n                    constructor(e, t) {\n                        this._id = e, this._parent = t, this._value = Object.create(null), this._value._contextId = e\n                    }\n                    setValue(e, t) {\n                        return this._value[e] !== t && (this._value[e] = t, !0)\n                    }\n                    removeValue(e) {\n                        return e in this._value && (delete this._value[e], !0)\n                    }\n                    getValue(e) {\n                        const t = this._value[e];\n                        return void 0 === t && this._parent ? this._parent.getValue(e) : t\n                    }\n                }\n                class Ss extends xs {\n                    constructor() {\n                        super(-1, null)\n                    }\n                    setValue(e, t) {\n                        return !1\n                    }\n                    removeValue(e) {\n                        return !1\n                    }\n                    getValue(e) {}\n                }\n                Ss.INSTANCE = new Ss;\n                class ks extends xs {\n                    constructor(e, t, i) {\n                        super(e, null), this._configurationService = t, this._values = J.Id.forConfigKeys(), this._listener = this._configurationService.onDidChangeConfiguration((e => {\n                            if (6 === e.source) {\n                                const e = Array.from(bs.$.map(this._values, (([e]) => e)));\n                                this._values.clear(), i.fire(new Ds(e))\n                            } else {\n                                const t = [];\n                                for (const i of e.affectedKeys) {\n                                    const e = `config.${i}`,\n                                        n = this._values.findSuperstr(e);\n                                    void 0 !== n && (t.push(...bs.$.map(n, (([e]) => e))), this._values.deleteSuperstr(e)), this._values.has(e) && (t.push(e), this._values.delete(e))\n                                }\n                                i.fire(new Ds(t))\n                            }\n                        }))\n                    }\n                    dispose() {\n                        this._listener.dispose()\n                    }\n                    getValue(e) {\n                        if (0 !== e.indexOf(ks._keyPrefix)) return super.getValue(e);\n                        if (this._values.has(e)) return this._values.get(e);\n                        const t = e.substr(ks._keyPrefix.length),\n                            i = this._configurationService.getValue(t);\n                        let n;\n                        switch (typeof i) {\n                            case \"number\":\n                            case \"boolean\":\n                            case \"string\":\n                                n = i;\n                                break;\n                            default:\n                                n = Array.isArray(i) ? JSON.stringify(i) : i\n                        }\n                        return this._values.set(e, n), n\n                    }\n                    setValue(e, t) {\n                        return super.setValue(e, t)\n                    }\n                    removeValue(e) {\n                        return super.removeValue(e)\n                    }\n                }\n                ks._keyPrefix = \"config.\";\n                class Ls {\n                    constructor(e, t, i) {\n                        this._service = e, this._key = t, this._defaultValue = i, this.reset()\n                    }\n                    set(e) {\n                        this._service.setContext(this._key, e)\n                    }\n                    reset() {\n                        void 0 === this._defaultValue ? this._service.removeContext(this._key) : this._service.setContext(this._key, this._defaultValue)\n                    }\n                    get() {\n                        return this._service.getContextKeyValue(this._key)\n                    }\n                }\n                class Ns {\n                    constructor(e) {\n                        this.key = e\n                    }\n                    affectsSome(e) {\n                        return e.has(this.key)\n                    }\n                }\n                class Ds {\n                    constructor(e) {\n                        this.keys = e\n                    }\n                    affectsSome(e) {\n                        for (const t of this.keys)\n                            if (e.has(t)) return !0;\n                        return !1\n                    }\n                }\n                class Is {\n                    constructor(e) {\n                        this.events = e\n                    }\n                    affectsSome(e) {\n                        for (const t of this.events)\n                            if (t.affectsSome(e)) return !0;\n                        return !1\n                    }\n                }\n                class Es {\n                    constructor(e) {\n                        this._onDidChangeContext = new W.K3({\n                            merge: e => new Is(e)\n                        }), this.onDidChangeContext = this._onDidChangeContext.event, this._isDisposed = !1, this._myContextId = e\n                    }\n                    createKey(e, t) {\n                        if (this._isDisposed) throw new Error(\"AbstractContextKeyService has been disposed\");\n                        return new Ls(this, e, t)\n                    }\n                    bufferChangeEvents(e) {\n                        this._onDidChangeContext.pause();\n                        try {\n                            e()\n                        } finally {\n                            this._onDidChangeContext.resume()\n                        }\n                    }\n                    createScoped(e) {\n                        if (this._isDisposed) throw new Error(\"AbstractContextKeyService has been disposed\");\n                        return new Ms(this, e)\n                    }\n                    contextMatchesRules(e) {\n                        if (this._isDisposed) throw new Error(\"AbstractContextKeyService has been disposed\");\n                        const t = this.getContextValuesContainer(this._myContextId);\n                        return Si.contextMatchesRules(t, e)\n                    }\n                    getContextKeyValue(e) {\n                        if (!this._isDisposed) return this.getContextValuesContainer(this._myContextId).getValue(e)\n                    }\n                    setContext(e, t) {\n                        if (this._isDisposed) return;\n                        const i = this.getContextValuesContainer(this._myContextId);\n                        i && i.setValue(e, t) && this._onDidChangeContext.fire(new Ns(e))\n                    }\n                    removeContext(e) {\n                        this._isDisposed || this.getContextValuesContainer(this._myContextId).removeValue(e) && this._onDidChangeContext.fire(new Ns(e))\n                    }\n                    getContext(e) {\n                        return this._isDisposed ? Ss.INSTANCE : this.getContextValuesContainer(function(e) {\n                            for (; e;) {\n                                if (e.hasAttribute(Cs)) {\n                                    const t = e.getAttribute(Cs);\n                                    return t ? parseInt(t, 10) : NaN\n                                }\n                                e = e.parentElement\n                            }\n                            return 0\n                        }(e))\n                    }\n                }\n                let Ts = class extends Es {\n                    constructor(e) {\n                        super(0), this._contexts = new Map, this._toDispose = new ue.SL, this._lastContextId = 0;\n                        const t = new ks(this._myContextId, e, this._onDidChangeContext);\n                        this._contexts.set(this._myContextId, t), this._toDispose.add(t)\n                    }\n                    dispose() {\n                        this._onDidChangeContext.dispose(), this._isDisposed = !0, this._toDispose.dispose()\n                    }\n                    getContextValuesContainer(e) {\n                        return this._isDisposed ? Ss.INSTANCE : this._contexts.get(e) || Ss.INSTANCE\n                    }\n                    createChildContext(e = this._myContextId) {\n                        if (this._isDisposed) throw new Error(\"ContextKeyService has been disposed\");\n                        let t = ++this._lastContextId;\n                        return this._contexts.set(t, new xs(t, this.getContextValuesContainer(e))), t\n                    }\n                    disposeContext(e) {\n                        this._isDisposed || this._contexts.delete(e)\n                    }\n                };\n                Ts = ws([ys(0, gi.Ui)], Ts);\n                class Ms extends Es {\n                    constructor(e, t) {\n                        if (super(e.createChildContext()), this._parentChangeListener = new ue.XK, this._parent = e, this._updateParentChangeListener(), this._domNode = t, this._domNode.hasAttribute(Cs)) {\n                            let e = \"\";\n                            this._domNode.classList && (e = Array.from(this._domNode.classList.values()).join(\", \")), console.error(\"Element already has context attribute\" + (e ? \": \" + e : \"\"))\n                        }\n                        this._domNode.setAttribute(Cs, String(this._myContextId))\n                    }\n                    _updateParentChangeListener() {\n                        this._parentChangeListener.value = this._parent.onDidChangeContext(this._onDidChangeContext.fire, this._onDidChangeContext)\n                    }\n                    dispose() {\n                        this._isDisposed || (this._onDidChangeContext.dispose(), this._parent.disposeContext(this._myContextId), this._parentChangeListener.dispose(), this._domNode.removeAttribute(Cs), this._isDisposed = !0)\n                    }\n                    getContextValuesContainer(e) {\n                        return this._isDisposed ? Ss.INSTANCE : this._parent.getContextValuesContainer(e)\n                    }\n                    createChildContext(e = this._myContextId) {\n                        if (this._isDisposed) throw new Error(\"ScopedContextKeyService has been disposed\");\n                        return this._parent.createChildContext(e)\n                    }\n                    disposeContext(e) {\n                        this._isDisposed || this._parent.disposeContext(e)\n                    }\n                }\n                ne.P.registerCommand(xi.Eq, (function(e, t, i) {\n                    e.get(xi.i6).createKey(String(t), i)\n                })), ne.P.registerCommand({\n                    id: \"getContextKeyInfo\",\n                    handler: () => [...xi.uy.all()].sort(((e, t) => e.key.localeCompare(t.key))),\n                    description: {\n                        description: (0, bi.N)(\"getContextKeyInfo\", \"A command that returns information about context keys\"),\n                        args: []\n                    }\n                }), ne.P.registerCommand(\"_generateContextKeyInfo\", (function() {\n                    const e = [],\n                        t = new Set;\n                    for (let i of xi.uy.all()) t.has(i.key) || (t.add(i.key), e.push(i));\n                    e.sort(((e, t) => e.key.localeCompare(t.key))), console.log(JSON.stringify(e, void 0, 2))\n                }));\n                var As, Os = i(10829),\n                    Ps = i(23938),\n                    Rs = i(16268),\n                    Fs = i(10553),\n                    Bs = i(76033),\n                    Vs = i(28609),\n                    Ws = i(10161),\n                    Hs = i(61134);\n                i(2170);\n\n                function zs(e, t, i) {\n                    const n = i.mode === As.ALIGN ? i.offset : i.offset + i.size,\n                        o = i.mode === As.ALIGN ? i.offset + i.size : i.offset;\n                    return 0 === i.position ? t <= e - n ? n : t <= o ? o - t : Math.max(e - t, 0) : t <= o ? o - t : t <= e - n ? n : 0\n                }! function(e) {\n                    e[e.AVOID = 0] = \"AVOID\", e[e.ALIGN = 1] = \"ALIGN\"\n                }(As || (As = {}));\n                class js extends ue.JT {\n                    constructor(e, t) {\n                        super(), this.container = null, this.delegate = null, this.toDisposeOnClean = ue.JT.None, this.toDisposeOnSetContainer = ue.JT.None, this.shadowRoot = null, this.shadowRootHostElement = null, this.view = Q.$(\".context-view\"), this.useFixedPosition = !1, this.useShadowDOM = !1, Q.Cp(this.view), this.setContainer(e, t), this._register((0, ue.OF)((() => this.setContainer(null, 1))))\n                    }\n                    setContainer(e, t) {\n                        var i;\n                        if (this.container && (this.toDisposeOnSetContainer.dispose(), this.shadowRoot ? (this.shadowRoot.removeChild(this.view), this.shadowRoot = null, null === (i = this.shadowRootHostElement) || void 0 === i || i.remove(), this.shadowRootHostElement = null) : this.container.removeChild(this.view), this.container = null), e) {\n                            if (this.container = e, this.useFixedPosition = 1 !== t, this.useShadowDOM = 3 === t, this.useShadowDOM) {\n                                this.shadowRootHostElement = Q.$(\".shadow-root-host\"), this.container.appendChild(this.shadowRootHostElement), this.shadowRoot = this.shadowRootHostElement.attachShadow({\n                                    mode: \"open\"\n                                });\n                                const e = document.createElement(\"style\");\n                                e.textContent = Us, this.shadowRoot.appendChild(e), this.shadowRoot.appendChild(this.view), this.shadowRoot.appendChild(Q.$(\"slot\"))\n                            } else this.container.appendChild(this.view);\n                            const i = new ue.SL;\n                            js.BUBBLE_UP_EVENTS.forEach((e => {\n                                i.add(Q.mu(this.container, e, (e => {\n                                    this.onDOMEvent(e, !1)\n                                })))\n                            })), js.BUBBLE_DOWN_EVENTS.forEach((e => {\n                                i.add(Q.mu(this.container, e, (e => {\n                                    this.onDOMEvent(e, !0)\n                                }), !0))\n                            })), this.toDisposeOnSetContainer = i\n                        }\n                    }\n                    show(e) {\n                        this.isVisible() && this.hide(), Q.PO(this.view), this.view.className = \"context-view\", this.view.style.top = \"0px\", this.view.style.left = \"0px\", this.view.style.zIndex = \"2500\", this.view.style.position = this.useFixedPosition ? \"fixed\" : \"absolute\", Q.$Z(this.view), this.toDisposeOnClean = e.render(this.view) || ue.JT.None, this.delegate = e, this.doLayout(), this.delegate.focus && this.delegate.focus()\n                    }\n                    getViewElement() {\n                        return this.view\n                    }\n                    layout() {\n                        this.isVisible() && (!1 !== this.delegate.canRelayout || Le.gn && Ws.D.pointerEvents ? (this.delegate.layout && this.delegate.layout(), this.doLayout()) : this.hide())\n                    }\n                    doLayout() {\n                        if (!this.isVisible()) return;\n                        let e, t = this.delegate.getAnchor();\n                        if (Q.Re(t)) {\n                            let i = Q.i(t);\n                            e = {\n                                top: i.top,\n                                left: i.left,\n                                width: i.width,\n                                height: i.height\n                            }\n                        } else e = {\n                            top: t.y,\n                            left: t.x,\n                            width: t.width || 1,\n                            height: t.height || 2\n                        };\n                        const i = Q.w(this.view),\n                            n = Q.wn(this.view),\n                            o = this.delegate.anchorPosition || 0,\n                            s = this.delegate.anchorAlignment || 0;\n                        let r, a;\n                        if (0 === (this.delegate.anchorAxisAlignment || 0)) {\n                            const t = {\n                                    offset: e.top - window.pageYOffset,\n                                    size: e.height,\n                                    position: 0 === o ? 0 : 1\n                                },\n                                l = {\n                                    offset: e.left,\n                                    size: e.width,\n                                    position: 0 === s ? 0 : 1,\n                                    mode: As.ALIGN\n                                };\n                            r = zs(window.innerHeight, n, t) + window.pageYOffset, Hs.e.intersects({\n                                start: r,\n                                end: r + n\n                            }, {\n                                start: t.offset,\n                                end: t.offset + t.size\n                            }) && (l.mode = As.AVOID), a = zs(window.innerWidth, i, l)\n                        } else {\n                            const t = {\n                                    offset: e.left,\n                                    size: e.width,\n                                    position: 0 === s ? 0 : 1\n                                },\n                                l = {\n                                    offset: e.top,\n                                    size: e.height,\n                                    position: 0 === o ? 0 : 1,\n                                    mode: As.ALIGN\n                                };\n                            a = zs(window.innerWidth, i, t), Hs.e.intersects({\n                                start: a,\n                                end: a + i\n                            }, {\n                                start: t.offset,\n                                end: t.offset + t.size\n                            }) && (l.mode = As.AVOID), r = zs(window.innerHeight, n, l) + window.pageYOffset\n                        }\n                        this.view.classList.remove(\"top\", \"bottom\", \"left\", \"right\"), this.view.classList.add(0 === o ? \"bottom\" : \"top\"), this.view.classList.add(0 === s ? \"left\" : \"right\"), this.view.classList.toggle(\"fixed\", this.useFixedPosition);\n                        const l = Q.i(this.container);\n                        this.view.style.top = r - (this.useFixedPosition ? Q.i(this.view).top : l.top) + \"px\", this.view.style.left = a - (this.useFixedPosition ? Q.i(this.view).left : l.left) + \"px\", this.view.style.width = \"initial\"\n                    }\n                    hide(e) {\n                        const t = this.delegate;\n                        this.delegate = null, (null == t ? void 0 : t.onHide) && t.onHide(e), this.toDisposeOnClean.dispose(), Q.Cp(this.view)\n                    }\n                    isVisible() {\n                        return !!this.delegate\n                    }\n                    onDOMEvent(e, t) {\n                        this.delegate && (this.delegate.onDOMEvent ? this.delegate.onDOMEvent(e, document.activeElement) : t && !Q.jg(e.target, this.container) && this.hide())\n                    }\n                    dispose() {\n                        this.hide(), super.dispose()\n                    }\n                }\n                js.BUBBLE_UP_EVENTS = [\"click\", \"keydown\", \"focus\", \"blur\"], js.BUBBLE_DOWN_EVENTS = [\"click\"];\n                let Us = '\\n\\t:host {\\n\\t\\tall: initial; /* 1st rule so subsequent properties are reset. */\\n\\t}\\n\\n\\t@font-face {\\n\\t\\tfont-family: \"codicon\";\\n\\t\\tfont-display: block;\\n\\t\\tsrc: url(\"./codicon.ttf?5d4d76ab2ce5108968ad644d591a16a6\") format(\"truetype\");\\n\\t}\\n\\n\\t.codicon[class*=\\'codicon-\\'] {\\n\\t\\tfont: normal normal normal 16px/1 codicon;\\n\\t\\tdisplay: inline-block;\\n\\t\\ttext-decoration: none;\\n\\t\\ttext-rendering: auto;\\n\\t\\ttext-align: center;\\n\\t\\t-webkit-font-smoothing: antialiased;\\n\\t\\t-moz-osx-font-smoothing: grayscale;\\n\\t\\tuser-select: none;\\n\\t\\t-webkit-user-select: none;\\n\\t\\t-ms-user-select: none;\\n\\t}\\n\\n\\t:host {\\n\\t\\tfont-family: -apple-system, BlinkMacSystemFont, \"Segoe WPC\", \"Segoe UI\", \"HelveticaNeue-Light\", system-ui, \"Ubuntu\", \"Droid Sans\", sans-serif;\\n\\t}\\n\\n\\t:host-context(.mac) { font-family: -apple-system, BlinkMacSystemFont, sans-serif; }\\n\\t:host-context(.mac:lang(zh-Hans)) { font-family: -apple-system, BlinkMacSystemFont, \"PingFang SC\", \"Hiragino Sans GB\", sans-serif; }\\n\\t:host-context(.mac:lang(zh-Hant)) { font-family: -apple-system, BlinkMacSystemFont, \"PingFang TC\", sans-serif; }\\n\\t:host-context(.mac:lang(ja)) { font-family: -apple-system, BlinkMacSystemFont, \"Hiragino Kaku Gothic Pro\", sans-serif; }\\n\\t:host-context(.mac:lang(ko)) { font-family: -apple-system, BlinkMacSystemFont, \"Nanum Gothic\", \"Apple SD Gothic Neo\", \"AppleGothic\", sans-serif; }\\n\\n\\t:host-context(.windows) { font-family: \"Segoe WPC\", \"Segoe UI\", sans-serif; }\\n\\t:host-context(.windows:lang(zh-Hans)) { font-family: \"Segoe WPC\", \"Segoe UI\", \"Microsoft YaHei\", sans-serif; }\\n\\t:host-context(.windows:lang(zh-Hant)) { font-family: \"Segoe WPC\", \"Segoe UI\", \"Microsoft Jhenghei\", sans-serif; }\\n\\t:host-context(.windows:lang(ja)) { font-family: \"Segoe WPC\", \"Segoe UI\", \"Yu Gothic UI\", \"Meiryo UI\", sans-serif; }\\n\\t:host-context(.windows:lang(ko)) { font-family: \"Segoe WPC\", \"Segoe UI\", \"Malgun Gothic\", \"Dotom\", sans-serif; }\\n\\n\\t:host-context(.linux) { font-family: system-ui, \"Ubuntu\", \"Droid Sans\", sans-serif; }\\n\\t: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; }\\n\\t: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; }\\n\\t: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; }\\n\\t: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; }\\n';\n                var $s = i(21212);\n                const Ks = /\\(&([^\\s&])\\)|(^|[^&])&([^\\s&])/,\n                    qs = /(&amp;)?(&amp;)([^\\s&])/g,\n                    Zs = (0, vn.CM)(\"menu-selection\", vn.lA.check),\n                    Gs = (0, vn.CM)(\"menu-submenu\", vn.lA.chevronRight);\n                var Ys;\n                ! function(e) {\n                    e[e.Right = 0] = \"Right\", e[e.Left = 1] = \"Left\"\n                }(Ys || (Ys = {}));\n                class Qs extends dn.o {\n                    constructor(e, t, i = {}) {\n                        e.classList.add(\"monaco-menu-container\"), e.setAttribute(\"role\", \"presentation\");\n                        const n = document.createElement(\"div\");\n                        n.classList.add(\"monaco-menu\"), n.setAttribute(\"role\", \"presentation\"), super(n, {\n                            orientation: 1,\n                            actionViewItemProvider: e => this.doGetActionViewItem(e, i, o),\n                            context: i.context,\n                            actionRunner: i.actionRunner,\n                            ariaLabel: i.ariaLabel,\n                            focusOnlyEnabledItems: !0,\n                            triggerKeys: {\n                                keys: [3, ...Le.dz || Le.IJ ? [10] : []],\n                                keyDown: !0\n                            }\n                        }), this.menuElement = n, this.actionsList.setAttribute(\"role\", \"menu\"), this.actionsList.tabIndex = 0, this.menuDisposables = this._register(new ue.SL), this.initializeStyleSheet(e), this._register(Fs.o.addTarget(n)), (0, Q.nm)(n, Q.tw.KEY_DOWN, (e => {\n                            new ri.y(e).equals(2) && e.preventDefault()\n                        })), i.enableMnemonics && this.menuDisposables.add((0, Q.nm)(n, Q.tw.KEY_DOWN, (e => {\n                            const t = e.key.toLocaleLowerCase();\n                            if (this.mnemonics.has(t)) {\n                                Q.zB.stop(e, !0);\n                                const i = this.mnemonics.get(t);\n                                if (1 === i.length && (i[0] instanceof Js && i[0].container && this.focusItemByElement(i[0].container), i[0].onClick(e)), i.length > 1) {\n                                    const e = i.shift();\n                                    e && e.container && (this.focusItemByElement(e.container), i.push(e)), this.mnemonics.set(t, i)\n                                }\n                            }\n                        }))), Le.IJ && this._register((0, Q.nm)(n, Q.tw.KEY_DOWN, (e => {\n                            const t = new ri.y(e);\n                            t.equals(14) || t.equals(11) ? (this.focusedItem = this.viewItems.length - 1, this.focusNext(), Q.zB.stop(e, !0)) : (t.equals(13) || t.equals(12)) && (this.focusedItem = 0, this.focusPrevious(), Q.zB.stop(e, !0))\n                        }))), this._register((0, Q.nm)(this.domNode, Q.tw.MOUSE_OUT, (e => {\n                            let t = e.relatedTarget;\n                            (0, Q.jg)(t, this.domNode) || (this.focusedItem = void 0, this.updateFocus(), e.stopPropagation())\n                        }))), this._register((0, Q.nm)(this.actionsList, Q.tw.MOUSE_OVER, (e => {\n                            let t = e.target;\n                            if (t && (0, Q.jg)(t, this.actionsList) && t !== this.actionsList) {\n                                for (; t.parentElement !== this.actionsList && null !== t.parentElement;) t = t.parentElement;\n                                if (t.classList.contains(\"action-item\")) {\n                                    const e = this.focusedItem;\n                                    this.setFocusedItem(t), e !== this.focusedItem && this.updateFocus()\n                                }\n                            }\n                        }))), this._register(Fs.o.addTarget(this.actionsList)), this._register((0, Q.nm)(this.actionsList, Fs.t.Tap, (e => {\n                            let t = e.initialTarget;\n                            if (t && (0, Q.jg)(t, this.actionsList) && t !== this.actionsList) {\n                                for (; t.parentElement !== this.actionsList && null !== t.parentElement;) t = t.parentElement;\n                                if (t.classList.contains(\"action-item\")) {\n                                    const e = this.focusedItem;\n                                    this.setFocusedItem(t), e !== this.focusedItem && this.updateFocus()\n                                }\n                            }\n                        })));\n                        let o = {\n                            parent: this\n                        };\n                        this.mnemonics = new Map, this.scrollableElement = this._register(new hn.s$(n, {\n                            alwaysConsumeMouseWheel: !0,\n                            horizontal: 2,\n                            vertical: 3,\n                            verticalScrollbarSize: 7,\n                            handleMouseWheel: !0,\n                            useShadows: !0\n                        }));\n                        const s = this.scrollableElement.getDomNode();\n                        s.style.position = \"\", this._register((0, Q.nm)(n, Fs.t.Change, (e => {\n                            Q.zB.stop(e, !0);\n                            const t = this.scrollableElement.getScrollPosition().scrollTop;\n                            this.scrollableElement.setScrollPosition({\n                                scrollTop: t - e.translationY\n                            })\n                        }))), this._register((0, Q.nm)(s, Q.tw.MOUSE_UP, (e => {\n                            e.preventDefault()\n                        }))), n.style.maxHeight = `${Math.max(10,window.innerHeight-e.getBoundingClientRect().top-35)}px`, t = t.filter((e => {\n                            var t;\n                            return !(null === (t = i.submenuIds) || void 0 === t ? void 0 : t.has(e.id)) || (console.warn(`Found submenu cycle: ${e.id}`), !1)\n                        })), this.push(t, {\n                            icon: !0,\n                            label: !0,\n                            isMenu: !0\n                        }), e.appendChild(this.scrollableElement.getDomNode()), this.scrollableElement.scanDomNode(), this.viewItems.filter((e => !(e instanceof er))).forEach(((e, t, i) => {\n                            e.updatePositionInSet(t + 1, i.length)\n                        }))\n                    }\n                    initializeStyleSheet(e) {\n                        (0, Q.OO)(e) ? (this.styleSheet = (0, Q.dS)(e), this.styleSheet.textContent = tr) : (Qs.globalStyleSheet || (Qs.globalStyleSheet = (0, Q.dS)(), Qs.globalStyleSheet.textContent = tr), this.styleSheet = Qs.globalStyleSheet)\n                    }\n                    style(e) {\n                        const t = this.getContainer(),\n                            i = e.foregroundColor ? `${e.foregroundColor}` : \"\",\n                            n = e.backgroundColor ? `${e.backgroundColor}` : \"\",\n                            o = e.borderColor ? `1px solid ${e.borderColor}` : \"\",\n                            s = e.shadowColor ? `0 2px 4px ${e.shadowColor}` : \"\";\n                        t.style.border = o, this.domNode.style.color = i, this.domNode.style.backgroundColor = n, t.style.boxShadow = s, this.viewItems && this.viewItems.forEach((t => {\n                            (t instanceof Xs || t instanceof er) && t.style(e)\n                        }))\n                    }\n                    getContainer() {\n                        return this.scrollableElement.getDomNode()\n                    }\n                    get onScroll() {\n                        return this.scrollableElement.onScroll\n                    }\n                    focusItemByElement(e) {\n                        const t = this.focusedItem;\n                        this.setFocusedItem(e), t !== this.focusedItem && this.updateFocus()\n                    }\n                    setFocusedItem(e) {\n                        for (let t = 0; t < this.actionsList.children.length; t++) {\n                            if (e === this.actionsList.children[t]) {\n                                this.focusedItem = t;\n                                break\n                            }\n                        }\n                    }\n                    updateFocus(e) {\n                        super.updateFocus(e, !0), void 0 !== this.focusedItem && this.scrollableElement.setScrollPosition({\n                            scrollTop: Math.round(this.menuElement.scrollTop)\n                        })\n                    }\n                    doGetActionViewItem(e, t, i) {\n                        if (e instanceof un.Z0) return new er(t.context, e, {\n                            icon: !0\n                        });\n                        if (e instanceof un.wY) {\n                            const n = new Js(e, e.actions, i, Object.assign(Object.assign({}, t), {\n                                submenuIds: new Set([...t.submenuIds || [], e.id])\n                            }));\n                            if (t.enableMnemonics) {\n                                const e = n.getMnemonic();\n                                if (e && n.isEnabled()) {\n                                    let t = [];\n                                    this.mnemonics.has(e) && (t = this.mnemonics.get(e)), t.push(n), this.mnemonics.set(e, t)\n                                }\n                            }\n                            return n\n                        } {\n                            const i = {\n                                enableMnemonics: t.enableMnemonics,\n                                useEventAsContext: t.useEventAsContext\n                            };\n                            if (t.getKeyBinding) {\n                                const n = t.getKeyBinding(e);\n                                if (n) {\n                                    const e = n.getLabel();\n                                    e && (i.keybinding = e)\n                                }\n                            }\n                            const n = new Xs(t.context, e, i);\n                            if (t.enableMnemonics) {\n                                const e = n.getMnemonic();\n                                if (e && n.isEnabled()) {\n                                    let t = [];\n                                    this.mnemonics.has(e) && (t = this.mnemonics.get(e)), t.push(n), this.mnemonics.set(e, t)\n                                }\n                            }\n                            return n\n                        }\n                    }\n                }\n                class Xs extends Bs.Y {\n                    constructor(e, t, i = {}) {\n                        if (i.isMenu = !0, super(t, t, i), this.options = i, this.options.icon = void 0 !== i.icon && i.icon, this.options.label = void 0 === i.label || i.label, this.cssClass = \"\", this.options.label && i.enableMnemonics) {\n                            let e = this.getAction().label;\n                            if (e) {\n                                let t = Ks.exec(e);\n                                t && (this.mnemonic = (t[1] ? t[1] : t[3]).toLocaleLowerCase())\n                            }\n                        }\n                        this.runOnceToEnableMouseUp = new Se.pY((() => {\n                            this.element && (this._register((0, Q.nm)(this.element, Q.tw.MOUSE_UP, (e => {\n                                if (Q.zB.stop(e, !0), Rs.vU) {\n                                    if (new Ps.n(e).rightButton) return;\n                                    this.onClick(e)\n                                } else setTimeout((() => {\n                                    this.onClick(e)\n                                }), 0)\n                            }))), this._register((0, Q.nm)(this.element, Q.tw.CONTEXT_MENU, (e => {\n                                Q.zB.stop(e, !0)\n                            }))))\n                        }), 100), this._register(this.runOnceToEnableMouseUp)\n                    }\n                    render(e) {\n                        super.render(e), this.element && (this.container = e, this.item = (0, Q.R3)(this.element, (0, Q.$)(\"a.action-menu-item\")), this._action.id === un.Z0.ID ? this.item.setAttribute(\"role\", \"presentation\") : (this.item.setAttribute(\"role\", \"menuitem\"), this.mnemonic && this.item.setAttribute(\"aria-keyshortcuts\", `${this.mnemonic}`)), this.check = (0, Q.R3)(this.item, (0, Q.$)(\"span.menu-item-check\" + Zs.cssSelector)), this.check.setAttribute(\"role\", \"none\"), this.label = (0, Q.R3)(this.item, (0, Q.$)(\"span.action-label\")), this.options.label && this.options.keybinding && ((0, Q.R3)(this.item, (0, Q.$)(\"span.keybinding\")).textContent = this.options.keybinding), this.runOnceToEnableMouseUp.schedule(), this.updateClass(), this.updateLabel(), this.updateTooltip(), this.updateEnabled(), this.updateChecked())\n                    }\n                    blur() {\n                        super.blur(), this.applyStyle()\n                    }\n                    focus() {\n                        super.focus(), this.item && this.item.focus(), this.applyStyle()\n                    }\n                    updatePositionInSet(e, t) {\n                        this.item && (this.item.setAttribute(\"aria-posinset\", `${e}`), this.item.setAttribute(\"aria-setsize\", `${t}`))\n                    }\n                    updateLabel() {\n                        if (this.label && this.options.label) {\n                            (0, Q.PO)(this.label);\n                            let e = (0, $s.x$)(this.getAction().label);\n                            if (e) {\n                                const t = function(e) {\n                                    const t = Ks,\n                                        i = t.exec(e);\n                                    if (!i) return e;\n                                    const n = !i[1];\n                                    return e.replace(t, n ? \"$2$3\" : \"\").trim()\n                                }(e);\n                                this.options.enableMnemonics || (e = t), this.label.setAttribute(\"aria-label\", t.replace(/&&/g, \"&\"));\n                                const i = Ks.exec(e);\n                                if (i) {\n                                    e = De.YU(e), qs.lastIndex = 0;\n                                    let t = qs.exec(e);\n                                    for (; t && t[1];) t = qs.exec(e);\n                                    const n = e => e.replace(/&amp;&amp;/g, \"&amp;\");\n                                    t ? this.label.append(De.j3(n(e.substr(0, t.index)), \" \"), (0, Q.$)(\"u\", {\n                                        \"aria-hidden\": \"true\"\n                                    }, t[3]), De.oL(n(e.substr(t.index + t[0].length)), \" \")) : this.label.innerText = n(e).trim(), this.item && this.item.setAttribute(\"aria-keyshortcuts\", (i[1] ? i[1] : i[3]).toLocaleLowerCase())\n                                } else this.label.innerText = e.replace(/&&/g, \"&\").trim()\n                            }\n                        }\n                    }\n                    updateTooltip() {\n                        let e = null;\n                        this.getAction().tooltip ? e = this.getAction().tooltip : !this.options.label && this.getAction().label && this.options.icon && (e = this.getAction().label, this.options.keybinding && (e = bi.N({\n                            key: \"titleLabel\",\n                            comment: [\"action title\", \"action keybinding\"]\n                        }, \"{0} ({1})\", e, this.options.keybinding))), e && this.item && (this.item.title = e)\n                    }\n                    updateClass() {\n                        this.cssClass && this.item && this.item.classList.remove(...this.cssClass.split(\" \")), this.options.icon && this.label ? (this.cssClass = this.getAction().class || \"\", this.label.classList.add(\"icon\"), this.cssClass && this.label.classList.add(...this.cssClass.split(\" \")), this.updateEnabled()) : this.label && this.label.classList.remove(\"icon\")\n                    }\n                    updateEnabled() {\n                        this.getAction().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\")))\n                    }\n                    updateChecked() {\n                        if (!this.item) return;\n                        const e = this.getAction().checked;\n                        this.item.classList.toggle(\"checked\", !!e), void 0 !== e ? (this.item.setAttribute(\"role\", \"menuitemcheckbox\"), this.item.setAttribute(\"aria-checked\", e ? \"true\" : \"false\")) : (this.item.setAttribute(\"role\", \"menuitem\"), this.item.setAttribute(\"aria-checked\", \"\"))\n                    }\n                    getMnemonic() {\n                        return this.mnemonic\n                    }\n                    applyStyle() {\n                        if (!this.menuStyle) return;\n                        const e = this.element && this.element.classList.contains(\"focused\"),\n                            t = e && this.menuStyle.selectionForegroundColor ? this.menuStyle.selectionForegroundColor : this.menuStyle.foregroundColor,\n                            i = e && this.menuStyle.selectionBackgroundColor ? this.menuStyle.selectionBackgroundColor : void 0,\n                            n = e && this.menuStyle.selectionBorderColor ? `thin solid ${this.menuStyle.selectionBorderColor}` : \"\";\n                        this.item && (this.item.style.color = t ? t.toString() : \"\", this.item.style.backgroundColor = i ? i.toString() : \"\"), this.check && (this.check.style.color = t ? t.toString() : \"\"), this.container && (this.container.style.border = n)\n                    }\n                    style(e) {\n                        this.menuStyle = e, this.applyStyle()\n                    }\n                }\n                class Js extends Xs {\n                    constructor(e, t, i, n) {\n                        super(e, e, n), this.submenuActions = t, this.parentData = i, this.submenuOptions = n, this.mysubmenu = null, this.submenuDisposables = this._register(new ue.SL), this.mouseOver = !1, this.expandDirection = n && void 0 !== n.expandDirection ? n.expandDirection : Ys.Right, this.showScheduler = new Se.pY((() => {\n                            this.mouseOver && (this.cleanupExistingSubmenu(!1), this.createSubmenu(!1))\n                        }), 250), this.hideScheduler = new Se.pY((() => {\n                            this.element && !(0, Q.jg)((0, Q.vY)(), this.element) && this.parentData.submenu === this.mysubmenu && (this.parentData.parent.focus(!1), this.cleanupExistingSubmenu(!0))\n                        }), 750)\n                    }\n                    render(e) {\n                        super.render(e), 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, Q.R3)(this.item, (0, Q.$)(\"span.submenu-indicator\" + Gs.cssSelector)), this.submenuIndicator.setAttribute(\"aria-hidden\", \"true\")), this._register((0, Q.nm)(this.element, Q.tw.KEY_UP, (e => {\n                            let t = new ri.y(e);\n                            (t.equals(17) || t.equals(3)) && (Q.zB.stop(e, !0), this.createSubmenu(!0))\n                        }))), this._register((0, Q.nm)(this.element, Q.tw.KEY_DOWN, (e => {\n                            let t = new ri.y(e);\n                            (0, Q.vY)() === this.item && (t.equals(17) || t.equals(3)) && Q.zB.stop(e, !0)\n                        }))), this._register((0, Q.nm)(this.element, Q.tw.MOUSE_OVER, (e => {\n                            this.mouseOver || (this.mouseOver = !0, this.showScheduler.schedule())\n                        }))), this._register((0, Q.nm)(this.element, Q.tw.MOUSE_LEAVE, (e => {\n                            this.mouseOver = !1\n                        }))), this._register((0, Q.nm)(this.element, Q.tw.FOCUS_OUT, (e => {\n                            this.element && !(0, Q.jg)((0, Q.vY)(), this.element) && this.hideScheduler.schedule()\n                        }))), this._register(this.parentData.parent.onScroll((() => {\n                            this.parentData.parent.focus(!1), this.cleanupExistingSubmenu(!1)\n                        }))))\n                    }\n                    updateEnabled() {}\n                    onClick(e) {\n                        Q.zB.stop(e, !0), this.cleanupExistingSubmenu(!1), this.createSubmenu(!0)\n                    }\n                    cleanupExistingSubmenu(e) {\n                        if (this.parentData.submenu && (e || this.parentData.submenu !== this.mysubmenu)) {\n                            try {\n                                this.parentData.submenu.dispose()\n                            } catch (e) {}\n                            this.parentData.submenu = void 0, this.updateAriaExpanded(\"false\"), this.submenuContainer && (this.submenuDisposables.clear(), this.submenuContainer = void 0)\n                        }\n                    }\n                    calculateSubmenuMenuLayout(e, t, i, n) {\n                        const o = {\n                            top: 0,\n                            left: 0\n                        };\n                        return o.left = zs(e.width, t.width, {\n                            position: n === Ys.Right ? 0 : 1,\n                            offset: i.left,\n                            size: i.width\n                        }), o.left >= i.left && o.left < i.left + i.width && (i.left + 10 + t.width <= e.width && (o.left = i.left + 10), i.top += 10, i.height = 0), o.top = zs(e.height, t.height, {\n                            position: 0,\n                            offset: i.top,\n                            size: 0\n                        }), o.top + t.height === i.top && o.top + i.height + t.height <= e.height && (o.top += i.height), o\n                    }\n                    createSubmenu(e = !0) {\n                        if (this.element)\n                            if (this.parentData.submenu) this.parentData.submenu.focus(!1);\n                            else {\n                                this.updateAriaExpanded(\"true\"), this.submenuContainer = (0, Q.R3)(this.element, (0, Q.$)(\"div.monaco-submenu\")), this.submenuContainer.classList.add(\"menubar-menu-items-holder\", \"context-view\");\n                                const t = getComputedStyle(this.parentData.parent.domNode),\n                                    i = parseFloat(t.paddingTop || \"0\") || 0;\n                                this.submenuContainer.style.zIndex = \"1\", this.submenuContainer.style.position = \"fixed\", this.submenuContainer.style.top = \"0\", this.submenuContainer.style.left = \"0\", this.parentData.submenu = new Qs(this.submenuContainer, this.submenuActions.length ? this.submenuActions : [new un.eZ], this.submenuOptions), this.menuStyle && this.parentData.submenu.style(this.menuStyle);\n                                const n = this.element.getBoundingClientRect(),\n                                    o = {\n                                        top: n.top - i,\n                                        left: n.left,\n                                        height: n.height + 2 * i,\n                                        width: n.width\n                                    },\n                                    s = this.submenuContainer.getBoundingClientRect(),\n                                    {\n                                        top: r,\n                                        left: a\n                                    } = this.calculateSubmenuMenuLayout(new Q.Ro(window.innerWidth, window.innerHeight), Q.Ro.lift(s), o, this.expandDirection);\n                                this.submenuContainer.style.left = a - s.left + \"px\", this.submenuContainer.style.top = r - s.top + \"px\", this.submenuDisposables.add((0, Q.nm)(this.submenuContainer, Q.tw.KEY_UP, (e => {\n                                    new ri.y(e).equals(15) && (Q.zB.stop(e, !0), this.parentData.parent.focus(), this.cleanupExistingSubmenu(!0))\n                                }))), this.submenuDisposables.add((0, Q.nm)(this.submenuContainer, Q.tw.KEY_DOWN, (e => {\n                                    new ri.y(e).equals(15) && Q.zB.stop(e, !0)\n                                }))), this.submenuDisposables.add(this.parentData.submenu.onDidCancel((() => {\n                                    this.parentData.parent.focus(), this.cleanupExistingSubmenu(!0)\n                                }))), this.parentData.submenu.focus(e), this.mysubmenu = this.parentData.submenu\n                            }\n                    }\n                    updateAriaExpanded(e) {\n                        var t;\n                        this.item && (null === (t = this.item) || void 0 === t || t.setAttribute(\"aria-expanded\", e))\n                    }\n                    applyStyle() {\n                        if (super.applyStyle(), !this.menuStyle) return;\n                        const e = this.element && this.element.classList.contains(\"focused\") && this.menuStyle.selectionForegroundColor ? this.menuStyle.selectionForegroundColor : this.menuStyle.foregroundColor;\n                        this.submenuIndicator && (this.submenuIndicator.style.color = e ? `${e}` : \"\"), this.parentData.submenu && this.parentData.submenu.style(this.menuStyle)\n                    }\n                    dispose() {\n                        super.dispose(), this.hideScheduler.dispose(), this.mysubmenu && (this.mysubmenu.dispose(), this.mysubmenu = null), this.submenuContainer && (this.submenuContainer = void 0)\n                    }\n                }\n                class er extends Bs.g {\n                    style(e) {\n                        this.label && (this.label.style.borderBottomColor = e.separatorColor ? `${e.separatorColor}` : \"\")\n                    }\n                }\n                let tr = `\\n.monaco-menu {\\n\\tfont-size: 13px;\\n\\n}\\n\\n${(0,Vs.a)(Zs)}\\n${(0,Vs.a)(Gs)}\\n\\n.monaco-menu .monaco-action-bar {\\n\\ttext-align: right;\\n\\toverflow: hidden;\\n\\twhite-space: nowrap;\\n}\\n\\n.monaco-menu .monaco-action-bar .actions-container {\\n\\tdisplay: flex;\\n\\tmargin: 0 auto;\\n\\tpadding: 0;\\n\\twidth: 100%;\\n\\tjustify-content: flex-end;\\n}\\n\\n.monaco-menu .monaco-action-bar.vertical .actions-container {\\n\\tdisplay: inline-block;\\n}\\n\\n.monaco-menu .monaco-action-bar.reverse .actions-container {\\n\\tflex-direction: row-reverse;\\n}\\n\\n.monaco-menu .monaco-action-bar .action-item {\\n\\tcursor: pointer;\\n\\tdisplay: inline-block;\\n\\ttransition: transform 50ms ease;\\n\\tposition: relative;  /* DO NOT REMOVE - this is the key to preventing the ghosting icon bug in Chrome 42 */\\n}\\n\\n.monaco-menu .monaco-action-bar .action-item.disabled {\\n\\tcursor: default;\\n}\\n\\n.monaco-menu .monaco-action-bar.animated .action-item.active {\\n\\ttransform: scale(1.272019649, 1.272019649); /* 1.272019649 = √φ */\\n}\\n\\n.monaco-menu .monaco-action-bar .action-item .icon,\\n.monaco-menu .monaco-action-bar .action-item .codicon {\\n\\tdisplay: inline-block;\\n}\\n\\n.monaco-menu .monaco-action-bar .action-item .codicon {\\n\\tdisplay: flex;\\n\\talign-items: center;\\n}\\n\\n.monaco-menu .monaco-action-bar .action-label {\\n\\tfont-size: 11px;\\n\\tmargin-right: 4px;\\n}\\n\\n.monaco-menu .monaco-action-bar .action-item.disabled .action-label,\\n.monaco-menu .monaco-action-bar .action-item.disabled .action-label:hover {\\n\\topacity: 0.4;\\n}\\n\\n/* Vertical actions */\\n\\n.monaco-menu .monaco-action-bar.vertical {\\n\\ttext-align: left;\\n}\\n\\n.monaco-menu .monaco-action-bar.vertical .action-item {\\n\\tdisplay: block;\\n}\\n\\n.monaco-menu .monaco-action-bar.vertical .action-label.separator {\\n\\tdisplay: block;\\n\\tborder-bottom: 1px solid #bbb;\\n\\tpadding-top: 1px;\\n\\tmargin-left: .8em;\\n\\tmargin-right: .8em;\\n}\\n\\n.monaco-menu .secondary-actions .monaco-action-bar .action-label {\\n\\tmargin-left: 6px;\\n}\\n\\n/* Action Items */\\n.monaco-menu .monaco-action-bar .action-item.select-container {\\n\\toverflow: hidden; /* somehow the dropdown overflows its container, we prevent it here to not push */\\n\\tflex: 1;\\n\\tmax-width: 170px;\\n\\tmin-width: 60px;\\n\\tdisplay: flex;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n\\tmargin-right: 10px;\\n}\\n\\n.monaco-menu .monaco-action-bar.vertical {\\n\\tmargin-left: 0;\\n\\toverflow: visible;\\n}\\n\\n.monaco-menu .monaco-action-bar.vertical .actions-container {\\n\\tdisplay: block;\\n}\\n\\n.monaco-menu .monaco-action-bar.vertical .action-item {\\n\\tpadding: 0;\\n\\ttransform: none;\\n\\tdisplay: flex;\\n}\\n\\n.monaco-menu .monaco-action-bar.vertical .action-item.active {\\n\\ttransform: none;\\n}\\n\\n.monaco-menu .monaco-action-bar.vertical .action-menu-item {\\n\\tflex: 1 1 auto;\\n\\tdisplay: flex;\\n\\theight: 2em;\\n\\talign-items: center;\\n\\tposition: relative;\\n}\\n\\n.monaco-menu .monaco-action-bar.vertical .action-label {\\n\\tflex: 1 1 auto;\\n\\ttext-decoration: none;\\n\\tpadding: 0 1em;\\n\\tbackground: none;\\n\\tfont-size: 12px;\\n\\tline-height: 1;\\n}\\n\\n.monaco-menu .monaco-action-bar.vertical .keybinding,\\n.monaco-menu .monaco-action-bar.vertical .submenu-indicator {\\n\\tdisplay: inline-block;\\n\\tflex: 2 1 auto;\\n\\tpadding: 0 1em;\\n\\ttext-align: right;\\n\\tfont-size: 12px;\\n\\tline-height: 1;\\n}\\n\\n.monaco-menu .monaco-action-bar.vertical .submenu-indicator {\\n\\theight: 100%;\\n}\\n\\n.monaco-menu .monaco-action-bar.vertical .submenu-indicator.codicon {\\n\\tfont-size: 16px !important;\\n\\tdisplay: flex;\\n\\talign-items: center;\\n}\\n\\n.monaco-menu .monaco-action-bar.vertical .submenu-indicator.codicon::before {\\n\\tmargin-left: auto;\\n\\tmargin-right: -20px;\\n}\\n\\n.monaco-menu .monaco-action-bar.vertical .action-item.disabled .keybinding,\\n.monaco-menu .monaco-action-bar.vertical .action-item.disabled .submenu-indicator {\\n\\topacity: 0.4;\\n}\\n\\n.monaco-menu .monaco-action-bar.vertical .action-label:not(.separator) {\\n\\tdisplay: inline-block;\\n\\tbox-sizing: border-box;\\n\\tmargin: 0;\\n}\\n\\n.monaco-menu .monaco-action-bar.vertical .action-item {\\n\\tposition: static;\\n\\toverflow: visible;\\n}\\n\\n.monaco-menu .monaco-action-bar.vertical .action-item .monaco-submenu {\\n\\tposition: absolute;\\n}\\n\\n.monaco-menu .monaco-action-bar.vertical .action-label.separator {\\n\\tpadding: 0.5em 0 0 0;\\n\\tmargin-bottom: 0.5em;\\n\\twidth: 100%;\\n\\theight: 0px !important;\\n\\tmargin-left: .8em !important;\\n\\tmargin-right: .8em !important;\\n}\\n\\n.monaco-menu .monaco-action-bar.vertical .action-label.separator.text {\\n\\tpadding: 0.7em 1em 0.1em 1em;\\n\\tfont-weight: bold;\\n\\topacity: 1;\\n}\\n\\n.monaco-menu .monaco-action-bar.vertical .action-label:hover {\\n\\tcolor: inherit;\\n}\\n\\n.monaco-menu .monaco-action-bar.vertical .menu-item-check {\\n\\tposition: absolute;\\n\\tvisibility: hidden;\\n\\twidth: 1em;\\n\\theight: 100%;\\n}\\n\\n.monaco-menu .monaco-action-bar.vertical .action-menu-item.checked .menu-item-check {\\n\\tvisibility: visible;\\n\\tdisplay: flex;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\\n/* Context Menu */\\n\\n.context-view.monaco-menu-container {\\n\\toutline: 0;\\n\\tborder: none;\\n\\tanimation: fadeIn 0.083s linear;\\n\\t-webkit-app-region: no-drag;\\n}\\n\\n.context-view.monaco-menu-container :focus,\\n.context-view.monaco-menu-container .monaco-action-bar.vertical:focus,\\n.context-view.monaco-menu-container .monaco-action-bar.vertical :focus {\\n\\toutline: 0;\\n}\\n\\n.monaco-menu .monaco-action-bar.vertical .action-item {\\n\\tborder: thin solid transparent; /* prevents jumping behaviour on hover or focus */\\n}\\n\\n\\n/* High Contrast Theming */\\n:host-context(.hc-black) .context-view.monaco-menu-container {\\n\\tbox-shadow: none;\\n}\\n\\n:host-context(.hc-black) .monaco-menu .monaco-action-bar.vertical .action-item.focused {\\n\\tbackground: none;\\n}\\n\\n/* Vertical Action Bar Styles */\\n\\n.monaco-menu .monaco-action-bar.vertical {\\n\\tpadding: .5em 0;\\n}\\n\\n.monaco-menu .monaco-action-bar.vertical .action-menu-item {\\n\\theight: 1.8em;\\n}\\n\\n.monaco-menu .monaco-action-bar.vertical .action-label:not(.separator),\\n.monaco-menu .monaco-action-bar.vertical .keybinding {\\n\\tfont-size: inherit;\\n\\tpadding: 0 2em;\\n}\\n\\n.monaco-menu .monaco-action-bar.vertical .menu-item-check {\\n\\tfont-size: inherit;\\n\\twidth: 2em;\\n}\\n\\n.monaco-menu .monaco-action-bar.vertical .action-label.separator {\\n\\tfont-size: inherit;\\n\\tpadding: 0.2em 0 0 0;\\n\\tmargin-bottom: 0.2em;\\n}\\n\\n:host-context(.linux) .monaco-menu .monaco-action-bar.vertical .action-label.separator {\\n\\tmargin-left: 0;\\n\\tmargin-right: 0;\\n}\\n\\n.monaco-menu .monaco-action-bar.vertical .submenu-indicator {\\n\\tfont-size: 60%;\\n\\tpadding: 0 1.8em;\\n}\\n\\n:host-context(.linux) .monaco-menu .monaco-action-bar.vertical .submenu-indicator {\\n\\theight: 100%;\\n\\tmask-size: 10px 10px;\\n\\t-webkit-mask-size: 10px 10px;\\n}\\n\\n.monaco-menu .action-item {\\n\\tcursor: default;\\n}\\n\\n/* Arrows */\\n.monaco-scrollable-element > .scrollbar > .scra {\\n\\tcursor: pointer;\\n\\tfont-size: 11px !important;\\n}\\n\\n.monaco-scrollable-element > .visible {\\n\\topacity: 1;\\n\\n\\t/* Background rule added for IE9 - to allow clicks on dom node */\\n\\tbackground:rgba(0,0,0,0);\\n\\n\\ttransition: opacity 100ms linear;\\n}\\n.monaco-scrollable-element > .invisible {\\n\\topacity: 0;\\n\\tpointer-events: none;\\n}\\n.monaco-scrollable-element > .invisible.fade {\\n\\ttransition: opacity 800ms linear;\\n}\\n\\n/* Scrollable Content Inset Shadow */\\n.monaco-scrollable-element > .shadow {\\n\\tposition: absolute;\\n\\tdisplay: none;\\n}\\n.monaco-scrollable-element > .shadow.top {\\n\\tdisplay: block;\\n\\ttop: 0;\\n\\tleft: 3px;\\n\\theight: 3px;\\n\\twidth: 100%;\\n\\tbox-shadow: #DDD 0 6px 6px -6px inset;\\n}\\n.monaco-scrollable-element > .shadow.left {\\n\\tdisplay: block;\\n\\ttop: 3px;\\n\\tleft: 0;\\n\\theight: 100%;\\n\\twidth: 3px;\\n\\tbox-shadow: #DDD 6px 0 6px -6px inset;\\n}\\n.monaco-scrollable-element > .shadow.top-left-corner {\\n\\tdisplay: block;\\n\\ttop: 0;\\n\\tleft: 0;\\n\\theight: 3px;\\n\\twidth: 3px;\\n}\\n.monaco-scrollable-element > .shadow.top.left {\\n\\tbox-shadow: #DDD 6px 6px 6px -6px inset;\\n}\\n\\n/* ---------- Default Style ---------- */\\n\\n:host-context(.vs) .monaco-scrollable-element > .scrollbar > .slider {\\n\\tbackground: rgba(100, 100, 100, .4);\\n}\\n:host-context(.vs-dark) .monaco-scrollable-element > .scrollbar > .slider {\\n\\tbackground: rgba(121, 121, 121, .4);\\n}\\n:host-context(.hc-black) .monaco-scrollable-element > .scrollbar > .slider {\\n\\tbackground: rgba(111, 195, 223, .6);\\n}\\n\\n.monaco-scrollable-element > .scrollbar > .slider:hover {\\n\\tbackground: rgba(100, 100, 100, .7);\\n}\\n:host-context(.hc-black) .monaco-scrollable-element > .scrollbar > .slider:hover {\\n\\tbackground: rgba(111, 195, 223, .8);\\n}\\n\\n.monaco-scrollable-element > .scrollbar > .slider.active {\\n\\tbackground: rgba(0, 0, 0, .6);\\n}\\n:host-context(.vs-dark) .monaco-scrollable-element > .scrollbar > .slider.active {\\n\\tbackground: rgba(191, 191, 191, .4);\\n}\\n:host-context(.hc-black) .monaco-scrollable-element > .scrollbar > .slider.active {\\n\\tbackground: rgba(111, 195, 223, 1);\\n}\\n\\n:host-context(.vs-dark) .monaco-scrollable-element .shadow.top {\\n\\tbox-shadow: none;\\n}\\n\\n:host-context(.vs-dark) .monaco-scrollable-element .shadow.left {\\n\\tbox-shadow: #000 6px 0 6px -6px inset;\\n}\\n\\n:host-context(.vs-dark) .monaco-scrollable-element .shadow.top.left {\\n\\tbox-shadow: #000 6px 6px 6px -6px inset;\\n}\\n\\n:host-context(.hc-black) .monaco-scrollable-element .shadow.top {\\n\\tbox-shadow: none;\\n}\\n\\n:host-context(.hc-black) .monaco-scrollable-element .shadow.left {\\n\\tbox-shadow: none;\\n}\\n\\n:host-context(.hc-black) .monaco-scrollable-element .shadow.top.left {\\n\\tbox-shadow: none;\\n}\\n`;\n                i(67942);\n                var ir = i(88810);\n                class nr {\n                    constructor(e, t, i, n, o) {\n                        this.contextViewService = e, this.telemetryService = t, this.notificationService = i, this.keybindingService = n, this.themeService = o, this.focusToReturn = null, this.block = null, this.options = {\n                            blockMouse: !0\n                        }\n                    }\n                    configure(e) {\n                        this.options = e\n                    }\n                    showContextMenu(e) {\n                        const t = e.getActions();\n                        if (!t.length) return;\n                        let i;\n                        this.focusToReturn = document.activeElement;\n                        let n = (0, Q.Re)(e.domForShadowRoot) ? e.domForShadowRoot : void 0;\n                        this.contextViewService.showContextView({\n                            getAnchor: () => e.getAnchor(),\n                            canRelayout: !1,\n                            anchorAlignment: e.anchorAlignment,\n                            anchorAxisAlignment: e.anchorAxisAlignment,\n                            render: n => {\n                                let o = e.getMenuClassName ? e.getMenuClassName() : \"\";\n                                o && (n.className += \" \" + o), this.options.blockMouse && (this.block = n.appendChild((0, Q.$)(\".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\", (0, Q.nm)(this.block, Q.tw.MOUSE_DOWN, (e => e.stopPropagation())));\n                                const s = new ue.SL,\n                                    r = e.actionRunner || new un.Wi;\n                                return r.onBeforeRun(this.onActionRun, this, s), r.onDidRun(this.onDidActionRun, this, s), i = new Qs(n, t, {\n                                    actionViewItemProvider: e.getActionViewItem,\n                                    context: e.getActionsContext ? e.getActionsContext() : null,\n                                    actionRunner: r,\n                                    getKeyBinding: e.getKeyBinding ? e.getKeyBinding : e => this.keybindingService.lookupKeybinding(e.id)\n                                }), s.add((0, ir.tj)(i, this.themeService)), i.onDidCancel((() => this.contextViewService.hideContextView(!0)), null, s), i.onDidBlur((() => this.contextViewService.hideContextView(!0)), null, s), s.add((0, Q.nm)(window, Q.tw.BLUR, (() => this.contextViewService.hideContextView(!0)))), s.add((0, Q.nm)(window, Q.tw.MOUSE_DOWN, (e => {\n                                    if (e.defaultPrevented) return;\n                                    let t = new Ps.n(e),\n                                        i = t.target;\n                                    if (!t.rightButton) {\n                                        for (; i;) {\n                                            if (i === n) return;\n                                            i = i.parentElement\n                                        }\n                                        this.contextViewService.hideContextView(!0)\n                                    }\n                                }))), (0, ue.F8)(s, i)\n                            },\n                            focus: () => {\n                                i && i.focus(!!e.autoSelectFirstItem)\n                            },\n                            onHide: t => {\n                                e.onHide && e.onHide(!!t), this.block && (this.block.remove(), this.block = null), this.focusToReturn && this.focusToReturn.focus()\n                            }\n                        }, n, !!n)\n                    }\n                    onActionRun(e) {\n                        this.telemetryService.publicLog2(\"workbenchActionExecuted\", {\n                            id: e.action.id,\n                            from: \"contextMenu\"\n                        }), this.contextViewService.hideContextView(!1), this.focusToReturn && this.focusToReturn.focus()\n                    }\n                    onDidActionRun(e) {\n                        e.error && !(0, ke.VV)(e.error) && this.notificationService.error(e.error)\n                    }\n                }\n                var or = function(e, t, i, n) {\n                        var o, s = arguments.length,\n                            r = s < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n                        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) r = Reflect.decorate(e, t, i, n);\n                        else\n                            for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (r = (s < 3 ? o(r) : s > 3 ? o(t, i, r) : o(t, i)) || r);\n                        return s > 3 && r && Object.defineProperty(t, i, r), r\n                    },\n                    sr = function(e, t) {\n                        return function(i, n) {\n                            t(i, n, e)\n                        }\n                    };\n                let rr = class extends ue.JT {\n                    constructor(e, t, i, n, o) {\n                        super(), this.contextMenuHandler = new nr(i, e, t, n, o)\n                    }\n                    configure(e) {\n                        this.contextMenuHandler.configure(e)\n                    }\n                    showContextMenu(e) {\n                        this.contextMenuHandler.showContextMenu(e), Q._q.getInstance().resetKeyStatus()\n                    }\n                };\n                rr = or([sr(0, Os.b), sr(1, Ai.lT), sr(2, Fn.u), sr(3, vo.d), sr(4, mn.XE)], rr);\n                const ar = (0, Pn.yh)(\"layoutService\");\n                var lr = function(e, t, i, n) {\n                        var o, s = arguments.length,\n                            r = s < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n                        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) r = Reflect.decorate(e, t, i, n);\n                        else\n                            for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (r = (s < 3 ? o(r) : s > 3 ? o(t, i, r) : o(t, i)) || r);\n                        return s > 3 && r && Object.defineProperty(t, i, r), r\n                    },\n                    cr = function(e, t) {\n                        return function(i, n) {\n                            t(i, n, e)\n                        }\n                    };\n                let dr = class extends ue.JT {\n                    constructor(e) {\n                        super(), this.layoutService = e, this.currentViewDisposable = ue.JT.None, this.container = e.container, this.contextView = this._register(new js(this.container, 1)), this.layout(), this._register(e.onDidLayout((() => this.layout())))\n                    }\n                    setContainer(e, t) {\n                        this.contextView.setContainer(e, t || 1)\n                    }\n                    showContextView(e, t, i) {\n                        t ? t !== this.container && (this.container = t, this.setContainer(t, i ? 3 : 2)) : this.container !== this.layoutService.container && (this.container = this.layoutService.container, this.setContainer(this.container, 1)), this.contextView.show(e);\n                        const n = (0, ue.OF)((() => {\n                            this.currentViewDisposable === n && this.hideContextView()\n                        }));\n                        return this.currentViewDisposable = n, n\n                    }\n                    getContextViewElement() {\n                        return this.contextView.getViewElement()\n                    }\n                    layout() {\n                        this.contextView.layout()\n                    }\n                    hideContextView(e) {\n                        this.contextView.hide(e)\n                    }\n                };\n                dr = lr([cr(0, ar)], dr);\n                var hr = i(28820),\n                    ur = i(97108);\n                class gr {\n                    constructor(e) {\n                        this.incoming = new Map, this.outgoing = new Map, this.data = e\n                    }\n                }\n                class pr {\n                    constructor(e) {\n                        this._hashFn = e, this._nodes = new Map\n                    }\n                    roots() {\n                        const e = [];\n                        for (let t of this._nodes.values()) 0 === t.outgoing.size && e.push(t);\n                        return e\n                    }\n                    insertEdge(e, t) {\n                        const i = this.lookupOrInsertNode(e),\n                            n = this.lookupOrInsertNode(t);\n                        i.outgoing.set(this._hashFn(t), n), n.incoming.set(this._hashFn(e), i)\n                    }\n                    removeNode(e) {\n                        const t = this._hashFn(e);\n                        this._nodes.delete(t);\n                        for (let e of this._nodes.values()) e.outgoing.delete(t), e.incoming.delete(t)\n                    }\n                    lookupOrInsertNode(e) {\n                        const t = this._hashFn(e);\n                        let i = this._nodes.get(t);\n                        return i || (i = new gr(e), this._nodes.set(t, i)), i\n                    }\n                    isEmpty() {\n                        return 0 === this._nodes.size\n                    }\n                    toString() {\n                        let e = [];\n                        for (let [t, i] of this._nodes) e.push(`${t}, (incoming)[${[...i.incoming.keys()].join(\", \")}], (outgoing)[${[...i.outgoing.keys()].join(\",\")}]`);\n                        return e.join(\"\\n\")\n                    }\n                    findCycleSlow() {\n                        for (let [e, t] of this._nodes) {\n                            const i = new Set([e]),\n                                n = this._findCycle(t, i);\n                            if (n) return n\n                        }\n                    }\n                    _findCycle(e, t) {\n                        for (let [i, n] of e.outgoing) {\n                            if (t.has(i)) return [...t, i].join(\" -> \");\n                            t.add(i);\n                            const e = this._findCycle(n, t);\n                            if (e) return e;\n                            t.delete(i)\n                        }\n                    }\n                }\n                class fr extends Error {\n                    constructor(e) {\n                        var t;\n                        super(\"cyclic dependency between services\"), this.message = null !== (t = e.findCycleSlow()) && void 0 !== t ? t : `UNABLE to detect cycle, dumping graph: \\n${e.toString()}`\n                    }\n                }\n                class mr {\n                    constructor(e = new Rn.y, t = !1, i) {\n                        this._activeInstantiations = new Set, this._services = e, this._strict = t, this._parent = i, this._services.set(Pn.TG, this)\n                    }\n                    createChild(e) {\n                        return new mr(e, this._strict, this)\n                    }\n                    invokeFunction(e, ...t) {\n                        let i = vr.traceInvocation(e),\n                            n = !1;\n                        try {\n                            return e({\n                                get: (e, t) => {\n                                    if (n) throw (0, ke.L6)(\"service accessor is only valid during the invocation of its target method\");\n                                    const o = this._getOrCreateServiceInstance(e, i);\n                                    if (!o && t !== Pn.jt) throw new Error(`[invokeFunction] unknown service '${e}'`);\n                                    return o\n                                }\n                            }, ...t)\n                        } finally {\n                            n = !0, i.stop()\n                        }\n                    }\n                    createInstance(e, ...t) {\n                        let i, n;\n                        return e instanceof ur.M ? (i = vr.traceCreation(e.ctor), n = this._createInstance(e.ctor, e.staticArguments.concat(t), i)) : (i = vr.traceCreation(e), n = this._createInstance(e, t, i)), i.stop(), n\n                    }\n                    _createInstance(e, t = [], i) {\n                        let n = Pn.I8.getServiceDependencies(e).sort(((e, t) => e.index - t.index)),\n                            o = [];\n                        for (const t of n) {\n                            let n = this._getOrCreateServiceInstance(t.id, i);\n                            if (!n && this._strict && !t.optional) throw new Error(`[createInstance] ${e.name} depends on UNKNOWN service ${t.id}.`);\n                            o.push(n)\n                        }\n                        let s = n.length > 0 ? n[0].index : t.length;\n                        if (t.length !== s) {\n                            console.warn(`[createInstance] First service dependency of ${e.name} at position ${s+1} conflicts with ${t.length} static arguments`);\n                            let i = s - t.length;\n                            t = i > 0 ? t.concat(new Array(i)) : t.slice(0, s)\n                        }\n                        return new e(...[...t, ...o])\n                    }\n                    _setServiceInstance(e, t) {\n                        if (this._services.get(e) instanceof ur.M) this._services.set(e, t);\n                        else {\n                            if (!this._parent) throw new Error(\"illegalState - setting UNKNOWN service instance\");\n                            this._parent._setServiceInstance(e, t)\n                        }\n                    }\n                    _getServiceInstanceOrDescriptor(e) {\n                        let t = this._services.get(e);\n                        return !t && this._parent ? this._parent._getServiceInstanceOrDescriptor(e) : t\n                    }\n                    _getOrCreateServiceInstance(e, t) {\n                        let i = this._getServiceInstanceOrDescriptor(e);\n                        return i instanceof ur.M ? this._safeCreateAndCacheServiceInstance(e, i, t.branch(e, !0)) : (t.branch(e, !1), i)\n                    }\n                    _safeCreateAndCacheServiceInstance(e, t, i) {\n                        if (this._activeInstantiations.has(e)) throw new Error(`illegal state - RECURSIVELY instantiating service '${e}'`);\n                        this._activeInstantiations.add(e);\n                        try {\n                            return this._createAndCacheServiceInstance(e, t, i)\n                        } finally {\n                            this._activeInstantiations.delete(e)\n                        }\n                    }\n                    _createAndCacheServiceInstance(e, t, i) {\n                        const n = new pr((e => e.id.toString()));\n                        let o = 0;\n                        const s = [{\n                            id: e,\n                            desc: t,\n                            _trace: i\n                        }];\n                        for (; s.length;) {\n                            const t = s.pop();\n                            if (n.lookupOrInsertNode(t), o++ > 1e3) throw new fr(n);\n                            for (let i of Pn.I8.getServiceDependencies(t.desc.ctor)) {\n                                let o = this._getServiceInstanceOrDescriptor(i.id);\n                                if (o || i.optional || console.warn(`[createInstance] ${e} depends on ${i.id} which is NOT registered.`), o instanceof ur.M) {\n                                    const e = {\n                                        id: i.id,\n                                        desc: o,\n                                        _trace: t._trace.branch(i.id, !0)\n                                    };\n                                    n.insertEdge(t, e), s.push(e)\n                                }\n                            }\n                        }\n                        for (;;) {\n                            const e = n.roots();\n                            if (0 === e.length) {\n                                if (!n.isEmpty()) throw new fr(n);\n                                break\n                            }\n                            for (const {\n                                    data: t\n                                } of e) {\n                                if (this._getServiceInstanceOrDescriptor(t.id) instanceof ur.M) {\n                                    const e = this._createServiceInstanceWithOwner(t.id, t.desc.ctor, t.desc.staticArguments, t.desc.supportsDelayedInstantiation, t._trace);\n                                    this._setServiceInstance(t.id, e)\n                                }\n                                n.removeNode(t)\n                            }\n                        }\n                        return this._getServiceInstanceOrDescriptor(e)\n                    }\n                    _createServiceInstanceWithOwner(e, t, i = [], n, o) {\n                        if (this._services.get(e) instanceof ur.M) return this._createServiceInstance(t, i, n, o);\n                        if (this._parent) return this._parent._createServiceInstanceWithOwner(e, t, i, n, o);\n                        throw new Error(`illegalState - creating UNKNOWN service instance ${t.name}`)\n                    }\n                    _createServiceInstance(e, t = [], i, n) {\n                        if (i) {\n                            const i = new Se.Ue((() => this._createInstance(e, t, n)));\n                            return new Proxy(Object.create(null), {\n                                get(e, t) {\n                                    if (t in e) return e[t];\n                                    let n = i.value,\n                                        o = n[t];\n                                    return \"function\" != typeof o || (o = o.bind(n), e[t] = o), o\n                                },\n                                set: (e, t, n) => (i.value[t] = n, !0)\n                            })\n                        }\n                        return this._createInstance(e, t, n)\n                    }\n                }\n                class vr {\n                    constructor(e, t) {\n                        this.type = e, this.name = t, this._start = Date.now(), this._dep = []\n                    }\n                    static traceInvocation(e) {\n                        return vr._None\n                    }\n                    static traceCreation(e) {\n                        return vr._None\n                    }\n                    branch(e, t) {\n                        let i = new vr(2, e.toString());\n                        return this._dep.push([e, t, i]), i\n                    }\n                    stop() {\n                        let e = Date.now() - this._start;\n                        vr._totals += e;\n                        let t = !1;\n                        let i = [`${0===this.type?\"CREATE\":\"CALL\"} ${this.name}`, `${function e(i,n){let o=[],s=new Array(i+1).join(\"\\t\");for(const[r,a,l]of n._dep)if(a&&l){t=!0,o.push(`${s}CREATES -> ${r}`);let n=e(i+1,l);n&&o.push(n)}else o.push(`\n                            $ {\n                                s\n                            }\n                            uses - > $ {\n                                r\n                            }\n                            `);return o.join(\"\\n\")}(1,this)}`, `DONE, took ${e.toFixed(2)}ms (grand total ${vr._totals.toFixed(2)}ms)`\n                        ];\n                        (e > 2 || t) && console.log(i.join(\"\\n\"))\n                    }\n                }\n                vr._None = new class extends vr {\n                    constructor() {\n                        super(-1, null)\n                    }\n                    stop() {}\n                    branch() {\n                        return this\n                    }\n                }, vr._totals = 0;\n                var _r = i(44349),\n                    br = i(20343),\n                    wr = i(98674);\n                class yr {\n                    constructor() {\n                        this._byResource = new J.Y9, this._byOwner = new Map\n                    }\n                    set(e, t, i) {\n                        let n = this._byResource.get(e);\n                        n || (n = new Map, this._byResource.set(e, n)), n.set(t, i);\n                        let o = this._byOwner.get(t);\n                        o || (o = new J.Y9, this._byOwner.set(t, o)), o.set(e, i)\n                    }\n                    get(e, t) {\n                        let i = this._byResource.get(e);\n                        return null == i ? void 0 : i.get(t)\n                    }\n                    delete(e, t) {\n                        let i = !1,\n                            n = !1,\n                            o = this._byResource.get(e);\n                        o && (i = o.delete(t));\n                        let s = this._byOwner.get(t);\n                        if (s && (n = s.delete(e)), i !== n) throw new Error(\"illegal state\");\n                        return i && n\n                    }\n                    values(e) {\n                        var t, i, n, o;\n                        return \"string\" == typeof e ? null !== (i = null === (t = this._byOwner.get(e)) || void 0 === t ? void 0 : t.values()) && void 0 !== i ? i : bs.$.empty() : z.o.isUri(e) ? null !== (o = null === (n = this._byResource.get(e)) || void 0 === n ? void 0 : n.values()) && void 0 !== o ? o : bs.$.empty() : bs.$.map(bs.$.concat(...this._byOwner.values()), (e => e[1]))\n                    }\n                }\n                class Cr {\n                    constructor(e) {\n                        this.errors = 0, this.infos = 0, this.warnings = 0, this.unknowns = 0, this._data = new J.Y9, this._service = e, this._subscription = e.onMarkerChanged(this._update, this)\n                    }\n                    dispose() {\n                        this._subscription.dispose()\n                    }\n                    _update(e) {\n                        for (const t of e) {\n                            const e = this._data.get(t);\n                            e && this._substract(e);\n                            const i = this._resourceStats(t);\n                            this._add(i), this._data.set(t, i)\n                        }\n                    }\n                    _resourceStats(e) {\n                        const t = {\n                            errors: 0,\n                            warnings: 0,\n                            infos: 0,\n                            unknowns: 0\n                        };\n                        if (e.scheme === te.lg.inMemory || e.scheme === te.lg.walkThrough || e.scheme === te.lg.walkThroughSnippet) return t;\n                        for (const {\n                                severity: i\n                            } of this._service.read({\n                                resource: e\n                            })) i === wr.ZL.Error ? t.errors += 1 : i === wr.ZL.Warning ? t.warnings += 1 : i === wr.ZL.Info ? t.infos += 1 : t.unknowns += 1;\n                        return t\n                    }\n                    _substract(e) {\n                        this.errors -= e.errors, this.warnings -= e.warnings, this.infos -= e.infos, this.unknowns -= e.unknowns\n                    }\n                    _add(e) {\n                        this.errors += e.errors, this.warnings += e.warnings, this.infos += e.infos, this.unknowns += e.unknowns\n                    }\n                }\n                class xr {\n                    constructor() {\n                        this._onMarkerChanged = new W.D0({\n                            delay: 0,\n                            merge: xr._merge\n                        }), this.onMarkerChanged = this._onMarkerChanged.event, this._data = new yr, this._stats = new Cr(this)\n                    }\n                    dispose() {\n                        this._stats.dispose(), this._onMarkerChanged.dispose()\n                    }\n                    remove(e, t) {\n                        for (const i of t || []) this.changeOne(e, i, [])\n                    }\n                    changeOne(e, t, i) {\n                        if ((0, bt.XY)(i)) {\n                            this._data.delete(t, e) && this._onMarkerChanged.fire([t])\n                        } else {\n                            const n = [];\n                            for (const o of i) {\n                                const i = xr._toMarker(e, t, o);\n                                i && n.push(i)\n                            }\n                            this._data.set(t, e, n), this._onMarkerChanged.fire([t])\n                        }\n                    }\n                    static _toMarker(e, t, i) {\n                        let {\n                            code: n,\n                            severity: o,\n                            message: s,\n                            source: r,\n                            startLineNumber: a,\n                            startColumn: l,\n                            endLineNumber: c,\n                            endColumn: d,\n                            relatedInformation: h,\n                            tags: u\n                        } = i;\n                        if (s) return a = a > 0 ? a : 1, l = l > 0 ? l : 1, c = c >= a ? c : a, d = d > 0 ? d : l, {\n                            resource: t,\n                            owner: e,\n                            code: n,\n                            severity: o,\n                            message: s,\n                            source: r,\n                            startLineNumber: a,\n                            startColumn: l,\n                            endLineNumber: c,\n                            endColumn: d,\n                            relatedInformation: h,\n                            tags: u\n                        }\n                    }\n                    read(e = Object.create(null)) {\n                        let {\n                            owner: t,\n                            resource: i,\n                            severities: n,\n                            take: o\n                        } = e;\n                        if ((!o || o < 0) && (o = -1), t && i) {\n                            const e = this._data.get(i, t);\n                            if (e) {\n                                const t = [];\n                                for (const i of e)\n                                    if (xr._accept(i, n)) {\n                                        const e = t.push(i);\n                                        if (o > 0 && e === o) break\n                                    } return t\n                            }\n                            return []\n                        }\n                        if (t || i) {\n                            const e = this._data.values(null != i ? i : t),\n                                s = [];\n                            for (const t of e)\n                                for (const e of t)\n                                    if (xr._accept(e, n)) {\n                                        const t = s.push(e);\n                                        if (o > 0 && t === o) return s\n                                    } return s\n                        } {\n                            const e = [];\n                            for (let t of this._data.values())\n                                for (let i of t)\n                                    if (xr._accept(i, n)) {\n                                        const t = e.push(i);\n                                        if (o > 0 && t === o) return e\n                                    } return e\n                        }\n                    }\n                    static _accept(e, t) {\n                        return void 0 === t || (t & e.severity) === e.severity\n                    }\n                    static _merge(e) {\n                        const t = new J.Y9;\n                        for (let i of e)\n                            for (let e of i) t.set(e, !0);\n                        return Array.from(t.keys())\n                    }\n                }\n                var Sr = i(26904),\n                    kr = function(e, t, i, n) {\n                        var o, s = arguments.length,\n                            r = s < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n                        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) r = Reflect.decorate(e, t, i, n);\n                        else\n                            for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (r = (s < 3 ? o(r) : s > 3 ? o(t, i, r) : o(t, i)) || r);\n                        return s > 3 && r && Object.defineProperty(t, i, r), r\n                    },\n                    Lr = function(e, t) {\n                        return function(i, n) {\n                            t(i, n, e)\n                        }\n                    };\n                let Nr = class {\n                    constructor(e) {\n                        this._commandService = e\n                    }\n                    createMenu(e, t, i) {\n                        return new Dr(e, Object.assign({\n                            emitEventsForSubmenuChanges: !1,\n                            eventDebounceDelay: 50\n                        }, i), this._commandService, t, this)\n                    }\n                };\n                Nr = kr([Lr(0, ne.H)], Nr);\n                let Dr = class e {\n                    constructor(e, t, i, n, o) {\n                        this._id = e, this._options = t, this._commandService = i, this._contextKeyService = n, this._menuService = o, this._disposables = new ue.SL, this._menuGroups = [], this._contextKeys = new Set, this._build();\n                        const s = new Se.pY((() => {\n                            this._build(), this._onDidChange.fire(this)\n                        }), t.eventDebounceDelay);\n                        this._disposables.add(s), this._disposables.add(mo.BH.onDidChangeMenu((t => {\n                            t.has(e) && s.schedule()\n                        })));\n                        const r = this._disposables.add(new ue.SL);\n                        this._onDidChange = new W.Q5({\n                            onFirstListenerAdd: () => {\n                                const e = new Se.pY((() => this._onDidChange.fire(this)), t.eventDebounceDelay);\n                                r.add(e), r.add(n.onDidChangeContext((t => {\n                                    t.affectsSome(this._contextKeys) && e.schedule()\n                                })))\n                            },\n                            onLastListenerRemove: r.clear.bind(r)\n                        }), this.onDidChange = this._onDidChange.event\n                    }\n                    dispose() {\n                        this._disposables.dispose(), this._onDidChange.dispose()\n                    }\n                    _build() {\n                        this._menuGroups.length = 0, this._contextKeys.clear();\n                        const t = mo.BH.getMenuItems(this._id);\n                        let i;\n                        t.sort(e._compareMenuItems);\n                        for (const e of t) {\n                            const t = e.group || \"\";\n                            i && i[0] === t || (i = [t, []], this._menuGroups.push(i)), i[1].push(e), this._collectContextKeys(e)\n                        }\n                    }\n                    _collectContextKeys(t) {\n                        if (e._fillInKbExprKeys(t.when, this._contextKeys), (0, mo.vr)(t)) {\n                            if (t.command.precondition && e._fillInKbExprKeys(t.command.precondition, this._contextKeys), t.command.toggled) {\n                                const i = t.command.toggled.condition || t.command.toggled;\n                                e._fillInKbExprKeys(i, this._contextKeys)\n                            }\n                        } else this._options.emitEventsForSubmenuChanges && mo.BH.getMenuItems(t.submenu).forEach(this._collectContextKeys, this)\n                    }\n                    getActions(e) {\n                        const t = [];\n                        for (let i of this._menuGroups) {\n                            const [n, o] = i, s = [];\n                            for (const t of o)\n                                if (this._contextKeyService.contextMatchesRules(t.when)) {\n                                    const i = (0, mo.vr)(t) ? new mo.U8(t.command, t.alt, e, this._contextKeyService, this._commandService) : new mo.NZ(t, this._menuService, this._contextKeyService, e);\n                                    s.push(i)\n                                } s.length > 0 && t.push([n, s])\n                        }\n                        return t\n                    }\n                    static _fillInKbExprKeys(e, t) {\n                        if (e)\n                            for (let i of e.keys()) t.add(i)\n                    }\n                    static _compareMenuItems(t, i) {\n                        let n = t.group,\n                            o = i.group;\n                        if (n !== o) {\n                            if (!n) return 1;\n                            if (!o) return -1;\n                            if (\"navigation\" === n) return -1;\n                            if (\"navigation\" === o) return 1;\n                            let e = n.localeCompare(o);\n                            if (0 !== e) return e\n                        }\n                        let s = t.order || 0,\n                            r = i.order || 0;\n                        return s < r ? -1 : s > r ? 1 : e._compareTitles((0, mo.vr)(t) ? t.command.title : t.title, (0, mo.vr)(i) ? i.command.title : i.title)\n                    }\n                    static _compareTitles(e, t) {\n                        const i = \"string\" == typeof e ? e : e.original,\n                            n = \"string\" == typeof t ? t : t.original;\n                        return i.localeCompare(n)\n                    }\n                };\n                Dr = kr([Lr(2, ne.H), Lr(3, xi.i6), Lr(4, mo.co)], Dr);\n                var Ir = i(26479),\n                    Er = function(e, t, i, n) {\n                        var o, s = arguments.length,\n                            r = s < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n                        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) r = Reflect.decorate(e, t, i, n);\n                        else\n                            for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (r = (s < 3 ? o(r) : s > 3 ? o(t, i, r) : o(t, i)) || r);\n                        return s > 3 && r && Object.defineProperty(t, i, r), r\n                    },\n                    Tr = function(e, t) {\n                        return function(i, n) {\n                            t(i, n, e)\n                        }\n                    };\n                class Mr extends ue.JT {\n                    constructor(e) {\n                        super(), this.model = e, this._markersData = new Map, this._register((0, ue.OF)((() => {\n                            this.model.deltaDecorations([...this._markersData.keys()], []), this._markersData.clear()\n                        })))\n                    }\n                    update(e, t) {\n                        const i = [...this._markersData.keys()];\n                        this._markersData.clear();\n                        const n = this.model.deltaDecorations(i, t);\n                        for (let t = 0; t < n.length; t++) this._markersData.set(n[t], e[t]);\n                        return 0 !== i.length || 0 !== n.length\n                    }\n                    getMarker(e) {\n                        return this._markersData.get(e.id)\n                    }\n                }\n                let Ar = class extends ue.JT {\n                    constructor(e, t) {\n                        super(), this._markerService = t, this._onDidChangeMarker = this._register(new W.Q5), this._markerDecorations = new J.Y9, e.getModels().forEach((e => this._onModelAdded(e))), this._register(e.onModelAdded(this._onModelAdded, this)), this._register(e.onModelRemoved(this._onModelRemoved, this)), this._register(this._markerService.onMarkerChanged(this._handleMarkerChange, this))\n                    }\n                    dispose() {\n                        super.dispose(), this._markerDecorations.forEach((e => e.dispose())), this._markerDecorations.clear()\n                    }\n                    getMarker(e, t) {\n                        const i = this._markerDecorations.get(e);\n                        return i && i.getMarker(t) || null\n                    }\n                    _handleMarkerChange(e) {\n                        e.forEach((e => {\n                            const t = this._markerDecorations.get(e);\n                            t && this._updateDecorations(t)\n                        }))\n                    }\n                    _onModelAdded(e) {\n                        const t = new Mr(e);\n                        this._markerDecorations.set(e.uri, t), this._updateDecorations(t)\n                    }\n                    _onModelRemoved(e) {\n                        const t = this._markerDecorations.get(e.uri);\n                        t && (t.dispose(), this._markerDecorations.delete(e.uri)), e.uri.scheme !== te.lg.inMemory && e.uri.scheme !== te.lg.internal && e.uri.scheme !== te.lg.vscode || this._markerService && this._markerService.read({\n                            resource: e.uri\n                        }).map((e => e.owner)).forEach((t => this._markerService.remove(t, [e.uri])))\n                    }\n                    _updateDecorations(e) {\n                        const t = this._markerService.read({\n                            resource: e.model.uri,\n                            take: 500\n                        });\n                        let i = t.map((t => ({\n                            range: this._createDecorationRange(e.model, t),\n                            options: this._createDecorationOption(t)\n                        })));\n                        e.update(t, i) && this._onDidChangeMarker.fire(e.model)\n                    }\n                    _createDecorationRange(e, t) {\n                        let i = U.e.lift(t);\n                        return t.severity !== wr.ZL.Hint || this._hasMarkerTag(t, 1) || this._hasMarkerTag(t, 2) || (i = i.setEndPosition(i.startLineNumber, i.startColumn + 2)), e.validateRange(i)\n                    }\n                    _createDecorationOption(e) {\n                        let t, i, n, o, s;\n                        switch (e.severity) {\n                            case wr.ZL.Hint:\n                                t = this._hasMarkerTag(e, 2) ? void 0 : this._hasMarkerTag(e, 1) ? \"squiggly-unnecessary\" : \"squiggly-hint\", n = 0;\n                                break;\n                            case wr.ZL.Warning:\n                                t = \"squiggly-warning\", i = (0, mn.EN)(pn.Re), n = 20, s = {\n                                    color: (0, mn.EN)(fn.Iv),\n                                    position: _e.F5.Inline\n                                };\n                                break;\n                            case wr.ZL.Info:\n                                t = \"squiggly-info\", i = (0, mn.EN)(pn.eS), n = 10;\n                                break;\n                            case wr.ZL.Error:\n                            default:\n                                t = \"squiggly-error\", i = (0, mn.EN)(pn.lK), n = 30, s = {\n                                    color: (0, mn.EN)(fn.Gj),\n                                    position: _e.F5.Inline\n                                }\n                        }\n                        return e.tags && (-1 !== e.tags.indexOf(1) && (o = \"squiggly-inline-unnecessary\"), -1 !== e.tags.indexOf(2) && (o = \"squiggly-inline-deprecated\")), {\n                            description: \"marker-decoration\",\n                            stickiness: 1,\n                            className: t,\n                            showIfCollapsed: !0,\n                            overviewRuler: {\n                                color: i,\n                                position: _e.sh.Right\n                            },\n                            minimap: s,\n                            zIndex: n,\n                            inlineClassName: o\n                        }\n                    }\n                    _hasMarkerTag(e, t) {\n                        return !!e.tags && e.tags.indexOf(t) >= 0\n                    }\n                };\n                Ar = Er([Tr(0, vt.q), Tr(1, wr.lT)], Ar);\n                var Or = i(65026),\n                    Pr = function(e, t, i, n) {\n                        var o, s = arguments.length,\n                            r = s < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n                        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) r = Reflect.decorate(e, t, i, n);\n                        else\n                            for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (r = (s < 3 ? o(r) : s > 3 ? o(t, i, r) : o(t, i)) || r);\n                        return s > 3 && r && Object.defineProperty(t, i, r), r\n                    },\n                    Rr = function(e, t) {\n                        return function(i, n) {\n                            t(i, n, e)\n                        }\n                    };\n                let Fr = class extends ue.JT {\n                    constructor(e, t) {\n                        super(), this._contextKeyService = e, this._configurationService = t, this._accessibilitySupport = 0, this._onDidChangeScreenReaderOptimized = new W.Q5, this._accessibilityModeEnabledContext = _o.U.bindTo(this._contextKeyService);\n                        const i = () => this._accessibilityModeEnabledContext.set(this.isScreenReaderOptimized());\n                        this._register(this._configurationService.onDidChangeConfiguration((e => {\n                            e.affectsConfiguration(\"editor.accessibilitySupport\") && (i(), this._onDidChangeScreenReaderOptimized.fire())\n                        }))), i(), this.onDidChangeScreenReaderOptimized((() => i()))\n                    }\n                    get onDidChangeScreenReaderOptimized() {\n                        return this._onDidChangeScreenReaderOptimized.event\n                    }\n                    isScreenReaderOptimized() {\n                        const e = this._configurationService.getValue(\"editor.accessibilitySupport\");\n                        return \"on\" === e || \"auto\" === e && 2 === this._accessibilitySupport\n                    }\n                    getAccessibilitySupport() {\n                        return this._accessibilitySupport\n                    }\n                };\n                Fr = Pr([Rr(0, xi.i6), Rr(1, gi.Ui)], Fr);\n                var Br = function(e, t, i, n) {\n                    return new(i || (i = Promise))((function(o, s) {\n                        function r(e) {\n                            try {\n                                l(n.next(e))\n                            } catch (e) {\n                                s(e)\n                            }\n                        }\n\n                        function a(e) {\n                            try {\n                                l(n.throw(e))\n                            } catch (e) {\n                                s(e)\n                            }\n                        }\n\n                        function l(e) {\n                            var t;\n                            e.done ? o(e.value) : (t = e.value, t instanceof i ? t : new i((function(e) {\n                                e(t)\n                            }))).then(r, a)\n                        }\n                        l((n = n.apply(e, t || [])).next())\n                    }))\n                };\n                class Vr {\n                    constructor() {\n                        this.mapTextToType = new Map, this.findText = \"\"\n                    }\n                    writeText(e, t) {\n                        return Br(this, void 0, void 0, (function*() {\n                            if (t) return void this.mapTextToType.set(t, e);\n                            try {\n                                return yield navigator.clipboard.writeText(e)\n                            } catch (e) {\n                                console.error(e)\n                            }\n                            const i = document.activeElement,\n                                n = document.body.appendChild((0, Q.$)(\"textarea\", {\n                                    \"aria-hidden\": !0\n                                }));\n                            n.style.height = \"1px\", n.style.width = \"1px\", n.style.position = \"absolute\", n.value = e, n.focus(), n.select(), document.execCommand(\"copy\"), i instanceof HTMLElement && i.focus(), document.body.removeChild(n)\n                        }))\n                    }\n                    readText(e) {\n                        return Br(this, void 0, void 0, (function*() {\n                            if (e) return this.mapTextToType.get(e) || \"\";\n                            try {\n                                return yield navigator.clipboard.readText()\n                            } catch (e) {\n                                return console.error(e), \"\"\n                            }\n                        }))\n                    }\n                    readFindText() {\n                        return Br(this, void 0, void 0, (function*() {\n                            return this.findText\n                        }))\n                    }\n                    writeFindText(e) {\n                        return Br(this, void 0, void 0, (function*() {\n                            this.findText = e\n                        }))\n                    }\n                }\n                var Wr = i(64862),\n                    Hr = function(e, t, i, n) {\n                        var o, s = arguments.length,\n                            r = s < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n                        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) r = Reflect.decorate(e, t, i, n);\n                        else\n                            for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (r = (s < 3 ? o(r) : s > 3 ? o(t, i, r) : o(t, i)) || r);\n                        return s > 3 && r && Object.defineProperty(t, i, r), r\n                    },\n                    zr = function(e, t) {\n                        return function(i, n) {\n                            t(i, n, e)\n                        }\n                    },\n                    jr = function(e, t, i, n) {\n                        return new(i || (i = Promise))((function(o, s) {\n                            function r(e) {\n                                try {\n                                    l(n.next(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function a(e) {\n                                try {\n                                    l(n.throw(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function l(e) {\n                                var t;\n                                e.done ? o(e.value) : (t = e.value, t instanceof i ? t : new i((function(e) {\n                                    e(t)\n                                }))).then(r, a)\n                            }\n                            l((n = n.apply(e, t || [])).next())\n                        }))\n                    };\n                const Ur = !1;\n\n                function $r(e) {\n                    return e.scheme === te.lg.file ? e.fsPath : e.path\n                }\n                let Kr = 0;\n                class qr {\n                    constructor(e, t, i, n, o, s, r) {\n                        this.id = ++Kr, this.type = 0, this.actual = e, this.label = e.label, this.confirmBeforeUndo = e.confirmBeforeUndo || !1, this.resourceLabel = t, this.strResource = i, this.resourceLabels = [this.resourceLabel], this.strResources = [this.strResource], this.groupId = n, this.groupOrder = o, this.sourceId = s, this.sourceOrder = r, this.isValid = !0\n                    }\n                    setValid(e) {\n                        this.isValid = e\n                    }\n                    toString() {\n                        return `[id:${this.id}] [group:${this.groupId}] [${this.isValid?\"  VALID\":\"INVALID\"}] ${this.actual.constructor.name} - ${this.actual}`\n                    }\n                }\n                class Zr {\n                    constructor(e, t) {\n                        this.resourceLabel = e, this.reason = t\n                    }\n                }\n                class Gr {\n                    constructor() {\n                        this.elements = new Map\n                    }\n                    createMessage() {\n                        const e = [],\n                            t = [];\n                        for (const [, i] of this.elements) {\n                            (0 === i.reason ? e : t).push(i.resourceLabel)\n                        }\n                        let i = [];\n                        return e.length > 0 && i.push(bi.N({\n                            key: \"externalRemoval\",\n                            comment: [\"{0} is a list of filenames\"]\n                        }, \"The following files have been closed and modified on disk: {0}.\", e.join(\", \"))), t.length > 0 && i.push(bi.N({\n                            key: \"noParallelUniverses\",\n                            comment: [\"{0} is a list of filenames\"]\n                        }, \"The following files have been modified in an incompatible way: {0}.\", t.join(\", \"))), i.join(\"\\n\")\n                    }\n                    get size() {\n                        return this.elements.size\n                    }\n                    has(e) {\n                        return this.elements.has(e)\n                    }\n                    set(e, t) {\n                        this.elements.set(e, t)\n                    }\n                    delete(e) {\n                        return this.elements.delete(e)\n                    }\n                }\n                class Yr {\n                    constructor(e, t, i, n, o, s, r) {\n                        this.id = ++Kr, this.type = 1, this.actual = e, this.label = e.label, this.confirmBeforeUndo = e.confirmBeforeUndo || !1, this.resourceLabels = t, this.strResources = i, this.groupId = n, this.groupOrder = o, this.sourceId = s, this.sourceOrder = r, this.removedResources = null, this.invalidatedResources = null\n                    }\n                    canSplit() {\n                        return \"function\" == typeof this.actual.split\n                    }\n                    removeResource(e, t, i) {\n                        this.removedResources || (this.removedResources = new Gr), this.removedResources.has(t) || this.removedResources.set(t, new Zr(e, i))\n                    }\n                    setValid(e, t, i) {\n                        i ? this.invalidatedResources && (this.invalidatedResources.delete(t), 0 === this.invalidatedResources.size && (this.invalidatedResources = null)) : (this.invalidatedResources || (this.invalidatedResources = new Gr), this.invalidatedResources.has(t) || this.invalidatedResources.set(t, new Zr(e, 0)))\n                    }\n                    toString() {\n                        return `[id:${this.id}] [group:${this.groupId}] [${this.invalidatedResources?\"INVALID\":\"  VALID\"}] ${this.actual.constructor.name} - ${this.actual}`\n                    }\n                }\n                class Qr {\n                    constructor(e, t) {\n                        this.resourceLabel = e, this.strResource = t, this._past = [], this._future = [], this.locked = !1, this.versionId = 1\n                    }\n                    dispose() {\n                        for (const e of this._past) 1 === e.type && e.removeResource(this.resourceLabel, this.strResource, 0);\n                        for (const e of this._future) 1 === e.type && e.removeResource(this.resourceLabel, this.strResource, 0);\n                        this.versionId++\n                    }\n                    toString() {\n                        let e = [];\n                        e.push(`* ${this.strResource}:`);\n                        for (let t = 0; t < this._past.length; t++) e.push(`   * [UNDO] ${this._past[t]}`);\n                        for (let t = this._future.length - 1; t >= 0; t--) e.push(`   * [REDO] ${this._future[t]}`);\n                        return e.join(\"\\n\")\n                    }\n                    flushAllElements() {\n                        this._past = [], this._future = [], this.versionId++\n                    }\n                    _setElementValidFlag(e, t) {\n                        1 === e.type ? e.setValid(this.resourceLabel, this.strResource, t) : e.setValid(t)\n                    }\n                    setElementsValidFlag(e, t) {\n                        for (const i of this._past) t(i.actual) && this._setElementValidFlag(i, e);\n                        for (const i of this._future) t(i.actual) && this._setElementValidFlag(i, e)\n                    }\n                    pushElement(e) {\n                        for (const e of this._future) 1 === e.type && e.removeResource(this.resourceLabel, this.strResource, 1);\n                        this._future = [], this._past.push(e), this.versionId++\n                    }\n                    createSnapshot(e) {\n                        const t = [];\n                        for (let e = 0, i = this._past.length; e < i; e++) t.push(this._past[e].id);\n                        for (let e = this._future.length - 1; e >= 0; e--) t.push(this._future[e].id);\n                        return new Wr.YO(e, t)\n                    }\n                    restoreSnapshot(e) {\n                        const t = e.elements.length;\n                        let i = !0,\n                            n = 0,\n                            o = -1;\n                        for (let s = 0, r = this._past.length; s < r; s++, n++) {\n                            const r = this._past[s];\n                            i && (n >= t || r.id !== e.elements[n]) && (i = !1, o = 0), i || 1 !== r.type || r.removeResource(this.resourceLabel, this.strResource, 0)\n                        }\n                        let s = -1;\n                        for (let o = this._future.length - 1; o >= 0; o--, n++) {\n                            const r = this._future[o];\n                            i && (n >= t || r.id !== e.elements[n]) && (i = !1, s = o), i || 1 !== r.type || r.removeResource(this.resourceLabel, this.strResource, 0)\n                        } - 1 !== o && (this._past = this._past.slice(0, o)), -1 !== s && (this._future = this._future.slice(s + 1)), this.versionId++\n                    }\n                    getElements() {\n                        const e = [],\n                            t = [];\n                        for (const t of this._past) e.push(t.actual);\n                        for (const e of this._future) t.push(e.actual);\n                        return {\n                            past: e,\n                            future: t\n                        }\n                    }\n                    getClosestPastElement() {\n                        return 0 === this._past.length ? null : this._past[this._past.length - 1]\n                    }\n                    getSecondClosestPastElement() {\n                        return this._past.length < 2 ? null : this._past[this._past.length - 2]\n                    }\n                    getClosestFutureElement() {\n                        return 0 === this._future.length ? null : this._future[this._future.length - 1]\n                    }\n                    hasPastElements() {\n                        return this._past.length > 0\n                    }\n                    hasFutureElements() {\n                        return this._future.length > 0\n                    }\n                    splitPastWorkspaceElement(e, t) {\n                        for (let i = this._past.length - 1; i >= 0; i--)\n                            if (this._past[i] === e) {\n                                t.has(this.strResource) ? this._past[i] = t.get(this.strResource) : this._past.splice(i, 1);\n                                break\n                            } this.versionId++\n                    }\n                    splitFutureWorkspaceElement(e, t) {\n                        for (let i = this._future.length - 1; i >= 0; i--)\n                            if (this._future[i] === e) {\n                                t.has(this.strResource) ? this._future[i] = t.get(this.strResource) : this._future.splice(i, 1);\n                                break\n                            } this.versionId++\n                    }\n                    moveBackward(e) {\n                        this._past.pop(), this._future.push(e), this.versionId++\n                    }\n                    moveForward(e) {\n                        this._future.pop(), this._past.push(e), this.versionId++\n                    }\n                }\n                class Xr {\n                    constructor(e) {\n                        this.editStacks = e, this._versionIds = [];\n                        for (let e = 0, t = this.editStacks.length; e < t; e++) this._versionIds[e] = this.editStacks[e].versionId\n                    }\n                    isValid() {\n                        for (let e = 0, t = this.editStacks.length; e < t; e++)\n                            if (this._versionIds[e] !== this.editStacks[e].versionId) return !1;\n                        return !0\n                    }\n                }\n                const Jr = new Qr(\"\", \"\");\n                Jr.locked = !0;\n                let ea = class {\n                    constructor(e, t) {\n                        this._dialogService = e, this._notificationService = t, this._editStacks = new Map, this._uriComparisonKeyComputers = []\n                    }\n                    getUriComparisonKey(e) {\n                        for (const t of this._uriComparisonKeyComputers)\n                            if (t[0] === e.scheme) return t[1].getComparisonKey(e);\n                        return e.toString()\n                    }\n                    _print(e) {\n                        console.log(\"------------------------------------\"), console.log(`AFTER ${e}: `);\n                        let t = [];\n                        for (const e of this._editStacks) t.push(e[1].toString());\n                        console.log(t.join(\"\\n\"))\n                    }\n                    pushElement(e, t = Wr.Xt.None, i = Wr.gJ.None) {\n                        if (0 === e.type) {\n                            const n = $r(e.resource),\n                                o = this.getUriComparisonKey(e.resource);\n                            this._pushElement(new qr(e, n, o, t.id, t.nextOrder(), i.id, i.nextOrder()))\n                        } else {\n                            const n = new Set,\n                                o = [],\n                                s = [];\n                            for (const t of e.resources) {\n                                const e = $r(t),\n                                    i = this.getUriComparisonKey(t);\n                                n.has(i) || (n.add(i), o.push(e), s.push(i))\n                            }\n                            1 === o.length ? this._pushElement(new qr(e, o[0], s[0], t.id, t.nextOrder(), i.id, i.nextOrder())) : this._pushElement(new Yr(e, o, s, t.id, t.nextOrder(), i.id, i.nextOrder()))\n                        }\n                    }\n                    _pushElement(e) {\n                        for (let t = 0, i = e.strResources.length; t < i; t++) {\n                            const i = e.resourceLabels[t],\n                                n = e.strResources[t];\n                            let o;\n                            this._editStacks.has(n) ? o = this._editStacks.get(n) : (o = new Qr(i, n), this._editStacks.set(n, o)), o.pushElement(e)\n                        }\n                    }\n                    getLastElement(e) {\n                        const t = this.getUriComparisonKey(e);\n                        if (this._editStacks.has(t)) {\n                            const e = this._editStacks.get(t);\n                            if (e.hasFutureElements()) return null;\n                            const i = e.getClosestPastElement();\n                            return i ? i.actual : null\n                        }\n                        return null\n                    }\n                    _splitPastWorkspaceElement(e, t) {\n                        const i = e.actual.split(),\n                            n = new Map;\n                        for (const e of i) {\n                            const t = $r(e.resource),\n                                i = this.getUriComparisonKey(e.resource),\n                                o = new qr(e, t, i, 0, 0, 0, 0);\n                            n.set(o.strResource, o)\n                        }\n                        for (const i of e.strResources) {\n                            if (t && t.has(i)) continue;\n                            this._editStacks.get(i).splitPastWorkspaceElement(e, n)\n                        }\n                    }\n                    _splitFutureWorkspaceElement(e, t) {\n                        const i = e.actual.split(),\n                            n = new Map;\n                        for (const e of i) {\n                            const t = $r(e.resource),\n                                i = this.getUriComparisonKey(e.resource),\n                                o = new qr(e, t, i, 0, 0, 0, 0);\n                            n.set(o.strResource, o)\n                        }\n                        for (const i of e.strResources) {\n                            if (t && t.has(i)) continue;\n                            this._editStacks.get(i).splitFutureWorkspaceElement(e, n)\n                        }\n                    }\n                    removeElements(e) {\n                        const t = \"string\" == typeof e ? e : this.getUriComparisonKey(e);\n                        if (this._editStacks.has(t)) {\n                            this._editStacks.get(t).dispose(), this._editStacks.delete(t)\n                        }\n                    }\n                    setElementsValidFlag(e, t, i) {\n                        const n = this.getUriComparisonKey(e);\n                        if (this._editStacks.has(n)) {\n                            this._editStacks.get(n).setElementsValidFlag(t, i)\n                        }\n                    }\n                    createSnapshot(e) {\n                        const t = this.getUriComparisonKey(e);\n                        if (this._editStacks.has(t)) {\n                            return this._editStacks.get(t).createSnapshot(e)\n                        }\n                        return new Wr.YO(e, [])\n                    }\n                    restoreSnapshot(e) {\n                        const t = this.getUriComparisonKey(e.resource);\n                        if (this._editStacks.has(t)) {\n                            const i = this._editStacks.get(t);\n                            i.restoreSnapshot(e), i.hasPastElements() || i.hasFutureElements() || (i.dispose(), this._editStacks.delete(t))\n                        }\n                    }\n                    getElements(e) {\n                        const t = this.getUriComparisonKey(e);\n                        if (this._editStacks.has(t)) {\n                            return this._editStacks.get(t).getElements()\n                        }\n                        return {\n                            past: [],\n                            future: []\n                        }\n                    }\n                    _findClosestUndoElementWithSource(e) {\n                        if (!e) return [null, null];\n                        let t = null,\n                            i = null;\n                        for (const [n, o] of this._editStacks) {\n                            const s = o.getClosestPastElement();\n                            s && (s.sourceId === e && (!t || s.sourceOrder > t.sourceOrder) && (t = s, i = n))\n                        }\n                        return [t, i]\n                    }\n                    canUndo(e) {\n                        if (e instanceof Wr.gJ) {\n                            const [, t] = this._findClosestUndoElementWithSource(e.id);\n                            return !!t\n                        }\n                        const t = this.getUriComparisonKey(e);\n                        if (this._editStacks.has(t)) {\n                            return this._editStacks.get(t).hasPastElements()\n                        }\n                        return !1\n                    }\n                    _onError(e, t) {\n                        (0, ke.dL)(e);\n                        for (const e of t.strResources) this.removeElements(e);\n                        this._notificationService.error(e)\n                    }\n                    _acquireLocks(e) {\n                        for (const t of e.editStacks)\n                            if (t.locked) throw new Error(\"Cannot acquire edit stack lock\");\n                        for (const t of e.editStacks) t.locked = !0;\n                        return () => {\n                            for (const t of e.editStacks) t.locked = !1\n                        }\n                    }\n                    _safeInvokeWithLocks(e, t, i, n, o) {\n                        const s = this._acquireLocks(i);\n                        let r;\n                        try {\n                            r = t()\n                        } catch (t) {\n                            return s(), n.dispose(), this._onError(t, e)\n                        }\n                        return r ? r.then((() => (s(), n.dispose(), o())), (t => (s(), n.dispose(), this._onError(t, e)))) : (s(), n.dispose(), o())\n                    }\n                    _invokeWorkspacePrepare(e) {\n                        return jr(this, void 0, void 0, (function*() {\n                            if (void 0 === e.actual.prepareUndoRedo) return ue.JT.None;\n                            const t = e.actual.prepareUndoRedo();\n                            return void 0 === t ? ue.JT.None : t\n                        }))\n                    }\n                    _invokeResourcePrepare(e, t) {\n                        if (1 !== e.actual.type || void 0 === e.actual.prepareUndoRedo) return t(ue.JT.None);\n                        const i = e.actual.prepareUndoRedo();\n                        return i ? (0, ue.Wf)(i) ? t(i) : i.then((e => t(e))) : t(ue.JT.None)\n                    }\n                    _getAffectedEditStacks(e) {\n                        const t = [];\n                        for (const i of e.strResources) t.push(this._editStacks.get(i) || Jr);\n                        return new Xr(t)\n                    }\n                    _tryToSplitAndUndo(e, t, i, n) {\n                        if (t.canSplit()) return this._splitPastWorkspaceElement(t, i), this._notificationService.warn(n), new ta(this._undo(e, 0, !0));\n                        for (const e of t.strResources) this.removeElements(e);\n                        return this._notificationService.warn(n), new ta\n                    }\n                    _checkWorkspaceUndo(e, t, i, n) {\n                        if (t.removedResources) return this._tryToSplitAndUndo(e, t, t.removedResources, bi.N({\n                            key: \"cannotWorkspaceUndo\",\n                            comment: [\"{0} is a label for an operation. {1} is another message.\"]\n                        }, \"Could not undo '{0}' across all files. {1}\", t.label, t.removedResources.createMessage()));\n                        if (n && t.invalidatedResources) return this._tryToSplitAndUndo(e, t, t.invalidatedResources, bi.N({\n                            key: \"cannotWorkspaceUndo\",\n                            comment: [\"{0} is a label for an operation. {1} is another message.\"]\n                        }, \"Could not undo '{0}' across all files. {1}\", t.label, t.invalidatedResources.createMessage()));\n                        const o = [];\n                        for (const e of i.editStacks) e.getClosestPastElement() !== t && o.push(e.resourceLabel);\n                        if (o.length > 0) return this._tryToSplitAndUndo(e, t, null, bi.N({\n                            key: \"cannotWorkspaceUndoDueToChanges\",\n                            comment: [\"{0} is a label for an operation. {1} is a list of filenames.\"]\n                        }, \"Could not undo '{0}' across all files because changes were made to {1}\", t.label, o.join(\", \")));\n                        const s = [];\n                        for (const e of i.editStacks) e.locked && s.push(e.resourceLabel);\n                        return s.length > 0 ? this._tryToSplitAndUndo(e, t, null, bi.N({\n                            key: \"cannotWorkspaceUndoDueToInProgressUndoRedo\",\n                            comment: [\"{0} is a label for an operation. {1} is a list of filenames.\"]\n                        }, \"Could not undo '{0}' across all files because there is already an undo or redo operation running on {1}\", t.label, s.join(\", \"))) : i.isValid() ? null : this._tryToSplitAndUndo(e, t, null, bi.N({\n                            key: \"cannotWorkspaceUndoDueToInMeantimeUndoRedo\",\n                            comment: [\"{0} is a label for an operation. {1} is a list of filenames.\"]\n                        }, \"Could not undo '{0}' across all files because an undo or redo operation occurred in the meantime\", t.label))\n                    }\n                    _workspaceUndo(e, t, i) {\n                        const n = this._getAffectedEditStacks(t),\n                            o = this._checkWorkspaceUndo(e, t, n, !1);\n                        return o ? o.returnValue : this._confirmAndExecuteWorkspaceUndo(e, t, n, i)\n                    }\n                    _isPartOfUndoGroup(e) {\n                        if (!e.groupId) return !1;\n                        for (const [, t] of this._editStacks) {\n                            const i = t.getClosestPastElement();\n                            if (i) {\n                                if (i === e) {\n                                    const i = t.getSecondClosestPastElement();\n                                    if (i && i.groupId === e.groupId) return !0\n                                }\n                                if (i.groupId === e.groupId) return !0\n                            }\n                        }\n                        return !1\n                    }\n                    _confirmAndExecuteWorkspaceUndo(e, t, i, n) {\n                        return jr(this, void 0, void 0, (function*() {\n                            if (t.canSplit() && !this._isPartOfUndoGroup(t)) {\n                                const Lg = new Language(modifyState.language);\n                                const o = yield this._dialogService.show(li.Z.Info, bi.N(\"confirmWorkspace\", \"Would you like to undo '{0}' across all files?\", t.label), [bi.N({\n                                    key: \"ok\",\n                                    comment: [\"{0} denotes a number that is > 1\"]\n                                }, \"Undo in {0} Files\", i.editStacks.length), bi.N(\"nok\", \"Undo this File\"), bi.N(\"cancel\", Lg.cancel())], {\n                                    cancelId: 2\n                                });\n                                if (2 === o.choice) return;\n                                if (1 === o.choice) return this._splitPastWorkspaceElement(t, null), this._undo(e, 0, !0);\n                                const s = this._checkWorkspaceUndo(e, t, i, !1);\n                                if (s) return s.returnValue;\n                                n = !0\n                            }\n                            let o;\n                            try {\n                                o = yield this._invokeWorkspacePrepare(t)\n                            } catch (e) {\n                                return this._onError(e, t)\n                            }\n                            const s = this._checkWorkspaceUndo(e, t, i, !0);\n                            if (s) return o.dispose(), s.returnValue;\n                            for (const e of i.editStacks) e.moveBackward(t);\n                            return this._safeInvokeWithLocks(t, (() => t.actual.undo()), i, o, (() => this._continueUndoInGroup(t.groupId, n)))\n                        }))\n                    }\n                    _resourceUndo(e, t, i) {\n                        if (t.isValid) {\n                            if (!e.locked) return this._invokeResourcePrepare(t, (n => (e.moveBackward(t), this._safeInvokeWithLocks(t, (() => t.actual.undo()), new Xr([e]), n, (() => this._continueUndoInGroup(t.groupId, i)))))); {\n                                const e = bi.N({\n                                    key: \"cannotResourceUndoDueToInProgressUndoRedo\",\n                                    comment: [\"{0} is a label for an operation.\"]\n                                }, \"Could not undo '{0}' because there is already an undo or redo operation running.\", t.label);\n                                this._notificationService.warn(e)\n                            }\n                        } else e.flushAllElements()\n                    }\n                    _findClosestUndoElementInGroup(e) {\n                        if (!e) return [null, null];\n                        let t = null,\n                            i = null;\n                        for (const [n, o] of this._editStacks) {\n                            const s = o.getClosestPastElement();\n                            s && (s.groupId === e && (!t || s.groupOrder > t.groupOrder) && (t = s, i = n))\n                        }\n                        return [t, i]\n                    }\n                    _continueUndoInGroup(e, t) {\n                        if (!e) return;\n                        const [, i] = this._findClosestUndoElementInGroup(e);\n                        return i ? this._undo(i, 0, t) : void 0\n                    }\n                    undo(e) {\n                        if (e instanceof Wr.gJ) {\n                            const [, t] = this._findClosestUndoElementWithSource(e.id);\n                            return t ? this._undo(t, e.id, !1) : void 0\n                        }\n                        return \"string\" == typeof e ? this._undo(e, 0, !1) : this._undo(this.getUriComparisonKey(e), 0, !1)\n                    }\n                    _undo(e, t = 0, i) {\n                        if (!this._editStacks.has(e)) return;\n                        const n = this._editStacks.get(e),\n                            o = n.getClosestPastElement();\n                        if (!o) return;\n                        if (o.groupId) {\n                            const [e, n] = this._findClosestUndoElementInGroup(o.groupId);\n                            if (o !== e && n) return this._undo(n, t, i)\n                        }\n                        if ((o.sourceId !== t || o.confirmBeforeUndo) && !i) return this._confirmAndContinueUndo(e, t, o);\n                        try {\n                            return 1 === o.type ? this._workspaceUndo(e, o, i) : this._resourceUndo(n, o, i)\n                        } finally {\n                            Ur\n                        }\n                    }\n                    _confirmAndContinueUndo(e, t, i) {\n                        const Lg = new Language(modifyState.language);\n                        return jr(this, void 0, void 0, (function*() {\n                            if (1 !== (yield this._dialogService.show(li.Z.Info, bi.N(\"confirmDifferentSource\", \"Would you like to undo '{0}'?\", i.label), [bi.N(\"confirmDifferentSource.yes\", \"Yes\"), bi.N(\"cancel\", Lg.cancel())], {\n                                    cancelId: 1\n                                })).choice) return this._undo(e, t, !0)\n                        }))\n                    }\n                    _findClosestRedoElementWithSource(e) {\n                        if (!e) return [null, null];\n                        let t = null,\n                            i = null;\n                        for (const [n, o] of this._editStacks) {\n                            const s = o.getClosestFutureElement();\n                            s && (s.sourceId === e && (!t || s.sourceOrder < t.sourceOrder) && (t = s, i = n))\n                        }\n                        return [t, i]\n                    }\n                    canRedo(e) {\n                        if (e instanceof Wr.gJ) {\n                            const [, t] = this._findClosestRedoElementWithSource(e.id);\n                            return !!t\n                        }\n                        const t = this.getUriComparisonKey(e);\n                        if (this._editStacks.has(t)) {\n                            return this._editStacks.get(t).hasFutureElements()\n                        }\n                        return !1\n                    }\n                    _tryToSplitAndRedo(e, t, i, n) {\n                        if (t.canSplit()) return this._splitFutureWorkspaceElement(t, i), this._notificationService.warn(n), new ta(this._redo(e));\n                        for (const e of t.strResources) this.removeElements(e);\n                        return this._notificationService.warn(n), new ta\n                    }\n                    _checkWorkspaceRedo(e, t, i, n) {\n                        if (t.removedResources) return this._tryToSplitAndRedo(e, t, t.removedResources, bi.N({\n                            key: \"cannotWorkspaceRedo\",\n                            comment: [\"{0} is a label for an operation. {1} is another message.\"]\n                        }, \"Could not redo '{0}' across all files. {1}\", t.label, t.removedResources.createMessage()));\n                        if (n && t.invalidatedResources) return this._tryToSplitAndRedo(e, t, t.invalidatedResources, bi.N({\n                            key: \"cannotWorkspaceRedo\",\n                            comment: [\"{0} is a label for an operation. {1} is another message.\"]\n                        }, \"Could not redo '{0}' across all files. {1}\", t.label, t.invalidatedResources.createMessage()));\n                        const o = [];\n                        for (const e of i.editStacks) e.getClosestFutureElement() !== t && o.push(e.resourceLabel);\n                        if (o.length > 0) return this._tryToSplitAndRedo(e, t, null, bi.N({\n                            key: \"cannotWorkspaceRedoDueToChanges\",\n                            comment: [\"{0} is a label for an operation. {1} is a list of filenames.\"]\n                        }, \"Could not redo '{0}' across all files because changes were made to {1}\", t.label, o.join(\", \")));\n                        const s = [];\n                        for (const e of i.editStacks) e.locked && s.push(e.resourceLabel);\n                        return s.length > 0 ? this._tryToSplitAndRedo(e, t, null, bi.N({\n                            key: \"cannotWorkspaceRedoDueToInProgressUndoRedo\",\n                            comment: [\"{0} is a label for an operation. {1} is a list of filenames.\"]\n                        }, \"Could not redo '{0}' across all files because there is already an undo or redo operation running on {1}\", t.label, s.join(\", \"))) : i.isValid() ? null : this._tryToSplitAndRedo(e, t, null, bi.N({\n                            key: \"cannotWorkspaceRedoDueToInMeantimeUndoRedo\",\n                            comment: [\"{0} is a label for an operation. {1} is a list of filenames.\"]\n                        }, \"Could not redo '{0}' across all files because an undo or redo operation occurred in the meantime\", t.label))\n                    }\n                    _workspaceRedo(e, t) {\n                        const i = this._getAffectedEditStacks(t),\n                            n = this._checkWorkspaceRedo(e, t, i, !1);\n                        return n ? n.returnValue : this._executeWorkspaceRedo(e, t, i)\n                    }\n                    _executeWorkspaceRedo(e, t, i) {\n                        return jr(this, void 0, void 0, (function*() {\n                            let n;\n                            try {\n                                n = yield this._invokeWorkspacePrepare(t)\n                            } catch (e) {\n                                return this._onError(e, t)\n                            }\n                            const o = this._checkWorkspaceRedo(e, t, i, !0);\n                            if (o) return n.dispose(), o.returnValue;\n                            for (const e of i.editStacks) e.moveForward(t);\n                            return this._safeInvokeWithLocks(t, (() => t.actual.redo()), i, n, (() => this._continueRedoInGroup(t.groupId)))\n                        }))\n                    }\n                    _resourceRedo(e, t) {\n                        if (t.isValid) {\n                            if (!e.locked) return this._invokeResourcePrepare(t, (i => (e.moveForward(t), this._safeInvokeWithLocks(t, (() => t.actual.redo()), new Xr([e]), i, (() => this._continueRedoInGroup(t.groupId)))))); {\n                                const e = bi.N({\n                                    key: \"cannotResourceRedoDueToInProgressUndoRedo\",\n                                    comment: [\"{0} is a label for an operation.\"]\n                                }, \"Could not redo '{0}' because there is already an undo or redo operation running.\", t.label);\n                                this._notificationService.warn(e)\n                            }\n                        } else e.flushAllElements()\n                    }\n                    _findClosestRedoElementInGroup(e) {\n                        if (!e) return [null, null];\n                        let t = null,\n                            i = null;\n                        for (const [n, o] of this._editStacks) {\n                            const s = o.getClosestFutureElement();\n                            s && (s.groupId === e && (!t || s.groupOrder < t.groupOrder) && (t = s, i = n))\n                        }\n                        return [t, i]\n                    }\n                    _continueRedoInGroup(e) {\n                        if (!e) return;\n                        const [, t] = this._findClosestRedoElementInGroup(e);\n                        return t ? this._redo(t) : void 0\n                    }\n                    redo(e) {\n                        if (e instanceof Wr.gJ) {\n                            const [, t] = this._findClosestRedoElementWithSource(e.id);\n                            return t ? this._redo(t) : void 0\n                        }\n                        return \"string\" == typeof e ? this._redo(e) : this._redo(this.getUriComparisonKey(e))\n                    }\n                    _redo(e) {\n                        if (!this._editStacks.has(e)) return;\n                        const t = this._editStacks.get(e),\n                            i = t.getClosestFutureElement();\n                        if (i) {\n                            if (i.groupId) {\n                                const [e, t] = this._findClosestRedoElementInGroup(i.groupId);\n                                if (i !== e && t) return this._redo(t)\n                            }\n                            try {\n                                return 1 === i.type ? this._workspaceRedo(e, i) : this._resourceRedo(t, i)\n                            } finally {\n                                Ur\n                            }\n                        }\n                    }\n                };\n                ea = Hr([zr(0, hr.S), zr(1, Ai.lT)], ea);\n                class ta {\n                    constructor(e) {\n                        this.returnValue = e\n                    }\n                }(0, Or.z)(Wr.tJ, ea);\n                i(80359);\n                var ia = i(56811);\n                i(64962);\n                const na = {\n                    buttonBackground: Qo.Il.fromHex(\"#0E639C\"),\n                    buttonHoverBackground: Qo.Il.fromHex(\"#006BB3\"),\n                    buttonForeground: Qo.Il.white\n                };\n                class oa extends ue.JT {\n                    constructor(e, t) {\n                        super(), this._onDidClick = this._register(new W.Q5), this.options = t || Object.create(null), (0, ge.jB)(this.options, na, !1), this.buttonForeground = this.options.buttonForeground, this.buttonBackground = this.options.buttonBackground, this.buttonHoverBackground = this.options.buttonHoverBackground, this.buttonSecondaryForeground = this.options.buttonSecondaryForeground, this.buttonSecondaryBackground = this.options.buttonSecondaryBackground, this.buttonSecondaryHoverBackground = this.options.buttonSecondaryHoverBackground, this.buttonBorder = this.options.buttonBorder, this._element = document.createElement(\"a\"), this._element.classList.add(\"monaco-button\"), this._element.tabIndex = 0, this._element.setAttribute(\"role\", \"button\"), e.appendChild(this._element), this._register(Fs.o.addTarget(this._element)), [Q.tw.CLICK, Fs.t.Tap].forEach((e => {\n                            this._register((0, Q.nm)(this._element, e, (e => {\n                                this.enabled ? this._onDidClick.fire(e) : Q.zB.stop(e)\n                            })))\n                        })), this._register((0, Q.nm)(this._element, Q.tw.KEY_DOWN, (e => {\n                            const t = new ri.y(e);\n                            let i = !1;\n                            this.enabled && (t.equals(3) || t.equals(10)) ? (this._onDidClick.fire(e), i = !0) : t.equals(9) && (this._element.blur(), i = !0), i && Q.zB.stop(t, !0)\n                        }))), this._register((0, Q.nm)(this._element, Q.tw.MOUSE_OVER, (e => {\n                            this._element.classList.contains(\"disabled\") || this.setHoverBackground()\n                        }))), this._register((0, Q.nm)(this._element, Q.tw.MOUSE_OUT, (e => {\n                            this.applyStyles()\n                        }))), this.focusTracker = this._register((0, Q.go)(this._element)), this._register(this.focusTracker.onDidFocus((() => this.setHoverBackground()))), this._register(this.focusTracker.onDidBlur((() => this.applyStyles()))), this.applyStyles()\n                    }\n                    get onDidClick() {\n                        return this._onDidClick.event\n                    }\n                    setHoverBackground() {\n                        let e;\n                        e = this.options.secondary ? this.buttonSecondaryHoverBackground ? this.buttonSecondaryHoverBackground.toString() : null : this.buttonHoverBackground ? this.buttonHoverBackground.toString() : null, e && (this._element.style.backgroundColor = e)\n                    }\n                    style(e) {\n                        this.buttonForeground = e.buttonForeground, this.buttonBackground = e.buttonBackground, this.buttonHoverBackground = e.buttonHoverBackground, this.buttonSecondaryForeground = e.buttonSecondaryForeground, this.buttonSecondaryBackground = e.buttonSecondaryBackground, this.buttonSecondaryHoverBackground = e.buttonSecondaryHoverBackground, this.buttonBorder = e.buttonBorder, this.applyStyles()\n                    }\n                    applyStyles() {\n                        if (this._element) {\n                            let e, t;\n                            this.options.secondary ? (t = this.buttonSecondaryForeground ? this.buttonSecondaryForeground.toString() : \"\", e = this.buttonSecondaryBackground ? this.buttonSecondaryBackground.toString() : \"\") : (t = this.buttonForeground ? this.buttonForeground.toString() : \"\", e = this.buttonBackground ? this.buttonBackground.toString() : \"\");\n                            const i = this.buttonBorder ? this.buttonBorder.toString() : \"\";\n                            this._element.style.color = t, this._element.style.backgroundColor = e, this._element.style.borderWidth = i ? \"1px\" : \"\", this._element.style.borderStyle = i ? \"solid\" : \"\", this._element.style.borderColor = i\n                        }\n                    }\n                    get element() {\n                        return this._element\n                    }\n                    set label(e) {\n                        this._element.classList.add(\"monaco-text-button\"), this.options.supportIcons ? (0, Q.mc)(this._element, ...(0, ia.T)(e)) : this._element.textContent = e, \"string\" == typeof this.options.title ? this._element.title = this.options.title : this.options.title && (this._element.title = e)\n                    }\n                    set enabled(e) {\n                        e ? (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)))\n                    }\n                    get enabled() {\n                        return !this._element.classList.contains(\"disabled\")\n                    }\n                }\n                var sa = i(67488);\n                i(88444);\n                const ra = \"done\",\n                    aa = \"active\",\n                    la = \"infinite\",\n                    ca = \"discrete\",\n                    da = {\n                        progressBarBackground: Qo.Il.fromHex(\"#0E70C0\")\n                    };\n                class ha extends ue.JT {\n                    constructor(e, t) {\n                        super(), this.options = t || Object.create(null), (0, ge.jB)(this.options, da, !1), this.workedVal = 0, this.progressBarBackground = this.options.progressBarBackground, this._register(this.showDelayedScheduler = new Se.pY((() => (0, Q.$Z)(this.element)), 0)), this.create(e)\n                    }\n                    create(e) {\n                        this.element = document.createElement(\"div\"), this.element.classList.add(\"monaco-progress-container\"), this.element.setAttribute(\"role\", \"progressbar\"), this.element.setAttribute(\"aria-valuemin\", \"0\"), e.appendChild(this.element), this.bit = document.createElement(\"div\"), this.bit.classList.add(\"progress-bit\"), this.element.appendChild(this.bit), this.applyStyles()\n                    }\n                    off() {\n                        this.bit.style.width = \"inherit\", this.bit.style.opacity = \"1\", this.element.classList.remove(aa, la, ca), this.workedVal = 0, this.totalWork = void 0\n                    }\n                    stop() {\n                        return this.doDone(!1)\n                    }\n                    doDone(e) {\n                        return this.element.classList.add(ra), this.element.classList.contains(la) ? (this.bit.style.opacity = \"0\", e ? setTimeout((() => this.off()), 200) : this.off()) : (this.bit.style.width = \"inherit\", e ? setTimeout((() => this.off()), 200) : this.off()), this\n                    }\n                    infinite() {\n                        return this.bit.style.width = \"2%\", this.bit.style.opacity = \"1\", this.element.classList.remove(ca, ra), this.element.classList.add(aa, la), this\n                    }\n                    getContainer() {\n                        return this.element\n                    }\n                    style(e) {\n                        this.progressBarBackground = e.progressBarBackground, this.applyStyles()\n                    }\n                    applyStyles() {\n                        if (this.bit) {\n                            const e = this.progressBarBackground ? this.progressBarBackground.toString() : \"\";\n                            this.bit.style.backgroundColor = e\n                        }\n                    }\n                }\n                var ua = i(44742);\n                i(86323);\n                const ga = {},\n                    pa = new ua.R(\"quick-input-button-icon-\");\n\n                function fa(e) {\n                    if (!e) return;\n                    let t;\n                    const i = e.dark.toString();\n                    return ga[i] ? t = ga[i] : (t = pa.nextId(), Q.fk(`.${t}`, `background-image: ${Q.wY(e.light||e.dark)}`), Q.fk(`.vs-dark .${t}, .hc-black .${t}`, `background-image: ${Q.wY(e.dark)}`), ga[i] = t), t\n                }\n                var ma = i(67746),\n                    va = i(77927);\n                const _a = Q.$;\n                class ba extends ue.JT {\n                    constructor(e) {\n                        super(), this.parent = e, this.onKeyDown = e => Q.nm(this.inputBox.inputElement, Q.tw.KEY_DOWN, (t => {\n                            e(new ri.y(t))\n                        })), this.onMouseDown = e => Q.nm(this.inputBox.inputElement, Q.tw.MOUSE_DOWN, (t => {\n                            e(new Ps.n(t))\n                        })), this.onDidChange = e => this.inputBox.onDidChange(e), this.container = Q.R3(this.parent, _a(\".quick-input-box\")), this.inputBox = this._register(new va.W(this.container, void 0))\n                    }\n                    get value() {\n                        return this.inputBox.value\n                    }\n                    set value(e) {\n                        this.inputBox.value = e\n                    }\n                    select(e = null) {\n                        this.inputBox.select(e)\n                    }\n                    isSelectionAtEnd() {\n                        return this.inputBox.isSelectionAtEnd()\n                    }\n                    get placeholder() {\n                        return this.inputBox.inputElement.getAttribute(\"placeholder\") || \"\"\n                    }\n                    set placeholder(e) {\n                        this.inputBox.setPlaceHolder(e)\n                    }\n                    get ariaLabel() {\n                        return this.inputBox.getAriaLabel()\n                    }\n                    set ariaLabel(e) {\n                        this.inputBox.setAriaLabel(e)\n                    }\n                    get password() {\n                        return \"password\" === this.inputBox.inputElement.type\n                    }\n                    set password(e) {\n                        this.inputBox.inputElement.type = e ? \"password\" : \"text\"\n                    }\n                    setAttribute(e, t) {\n                        this.inputBox.inputElement.setAttribute(e, t)\n                    }\n                    removeAttribute(e) {\n                        this.inputBox.inputElement.removeAttribute(e)\n                    }\n                    showDecoration(e) {\n                        e === li.Z.Ignore ? this.inputBox.hideMessage() : this.inputBox.showMessage({\n                            type: e === li.Z.Info ? 1 : e === li.Z.Warning ? 2 : 3,\n                            content: \"\"\n                        })\n                    }\n                    stylesForType(e) {\n                        return this.inputBox.stylesForType(e === li.Z.Info ? 1 : e === li.Z.Warning ? 2 : 3)\n                    }\n                    setFocus() {\n                        this.inputBox.focus()\n                    }\n                    layout() {\n                        this.inputBox.layout()\n                    }\n                    style(e) {\n                        this.inputBox.style(e)\n                    }\n                }\n                var wa = i(34650),\n                    ya = i(48801);\n                i(3248);\n                const Ca = Q.$;\n                class xa {\n                    constructor(e, t, i) {\n                        this.os = t, this.keyElements = new Set, this.options = i || Object.create(null), this.labelBackground = this.options.keybindingLabelBackground, this.labelForeground = this.options.keybindingLabelForeground, this.labelBorder = this.options.keybindingLabelBorder, this.labelBottomBorder = this.options.keybindingLabelBottomBorder, this.labelShadow = this.options.keybindingLabelShadow, this.domNode = Q.R3(e, Ca(\".monaco-keybinding\")), this.didEverRender = !1, e.appendChild(this.domNode)\n                    }\n                    get element() {\n                        return this.domNode\n                    }\n                    set(e, t) {\n                        this.didEverRender && this.keybinding === e && xa.areSame(this.matches, t) || (this.keybinding = e, this.matches = t, this.render())\n                    }\n                    render() {\n                        if (this.clear(), this.keybinding) {\n                            let [e, t] = this.keybinding.getParts();\n                            e && this.renderPart(this.domNode, e, this.matches ? this.matches.firstPart : null), t && (Q.R3(this.domNode, Ca(\"span.monaco-keybinding-key-chord-separator\", void 0, \" \")), this.renderPart(this.domNode, t, this.matches ? this.matches.chordPart : null)), this.domNode.title = this.keybinding.getAriaLabel() || \"\"\n                        } else this.options && this.options.renderUnboundKeybindings && this.renderUnbound(this.domNode);\n                        this.applyStyles(), this.didEverRender = !0\n                    }\n                    clear() {\n                        Q.PO(this.domNode), this.keyElements.clear()\n                    }\n                    renderPart(e, t, i) {\n                        const n = Ei.xo.modifierLabels[this.os];\n                        t.ctrlKey && this.renderKey(e, n.ctrlKey, Boolean(null == i ? void 0 : i.ctrlKey), n.separator), t.shiftKey && this.renderKey(e, n.shiftKey, Boolean(null == i ? void 0 : i.shiftKey), n.separator), t.altKey && this.renderKey(e, n.altKey, Boolean(null == i ? void 0 : i.altKey), n.separator), t.metaKey && this.renderKey(e, n.metaKey, Boolean(null == i ? void 0 : i.metaKey), n.separator);\n                        const o = t.keyLabel;\n                        o && this.renderKey(e, o, Boolean(null == i ? void 0 : i.keyCode), \"\")\n                    }\n                    renderKey(e, t, i, n) {\n                        Q.R3(e, this.createKeyElement(t, i ? \".highlight\" : \"\")), n && Q.R3(e, Ca(\"span.monaco-keybinding-key-separator\", void 0, n))\n                    }\n                    renderUnbound(e) {\n                        Q.R3(e, this.createKeyElement((0, bi.N)(\"unbound\", \"Unbound\")))\n                    }\n                    createKeyElement(e, t = \"\") {\n                        const i = Ca(\"span.monaco-keybinding-key\" + t, void 0, e);\n                        return this.keyElements.add(i), i\n                    }\n                    style(e) {\n                        this.labelBackground = e.keybindingLabelBackground, this.labelForeground = e.keybindingLabelForeground, this.labelBorder = e.keybindingLabelBorder, this.labelBottomBorder = e.keybindingLabelBottomBorder, this.labelShadow = e.keybindingLabelShadow, this.applyStyles()\n                    }\n                    applyStyles() {\n                        var e;\n                        if (this.element) {\n                            for (const t of this.keyElements) this.labelBackground && (t.style.backgroundColor = null === (e = this.labelBackground) || void 0 === e ? void 0 : e.toString()), this.labelBorder && (t.style.borderColor = this.labelBorder.toString()), this.labelBottomBorder && (t.style.borderBottomColor = this.labelBottomBorder.toString()), this.labelShadow && (t.style.boxShadow = `inset 0 -1px 0 ${this.labelShadow}`);\n                            this.labelForeground && (this.element.style.color = this.labelForeground.toString())\n                        }\n                    }\n                    static areSame(e, t) {\n                        return e === t || !e && !t || !!e && !!t && (0, ge.fS)(e.firstPart, t.firstPart) && (0, ge.fS)(e.chordPart, t.chordPart)\n                    }\n                }\n                const Sa = new Se.Ue((() => {\n                    const e = new Intl.Collator(void 0, {\n                        numeric: !0,\n                        sensitivity: \"base\"\n                    });\n                    return {\n                        collator: e,\n                        collatorIsNumeric: e.resolvedOptions().numeric\n                    }\n                }));\n\n                function ka(e, t, i) {\n                    const n = e.toLowerCase(),\n                        o = t.toLowerCase(),\n                        s = function(e, t, i) {\n                            const n = e.toLowerCase(),\n                                o = t.toLowerCase(),\n                                s = n.startsWith(i),\n                                r = o.startsWith(i);\n                            if (s !== r) return s ? -1 : 1;\n                            if (s && r) {\n                                if (n.length < o.length) return -1;\n                                if (n.length > o.length) return 1\n                            }\n                            return 0\n                        }(e, t, i);\n                    if (s) return s;\n                    const r = n.endsWith(i);\n                    if (r !== o.endsWith(i)) return r ? -1 : 1;\n                    const a = function(e, t, i = !1) {\n                        const n = e || \"\",\n                            o = t || \"\",\n                            s = Sa.value.collator.compare(n, o);\n                        return Sa.value.collatorIsNumeric && 0 === s && n !== o ? n < o ? -1 : 1 : s\n                    }(n, o);\n                    return 0 !== a ? a : n.localeCompare(o)\n                }\n                var La = i(49898),\n                    Na = function(e, t, i, n) {\n                        var o, s = arguments.length,\n                            r = s < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n                        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) r = Reflect.decorate(e, t, i, n);\n                        else\n                            for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (r = (s < 3 ? o(r) : s > 3 ? o(t, i, r) : o(t, i)) || r);\n                        return s > 3 && r && Object.defineProperty(t, i, r), r\n                    },\n                    Da = function(e, t, i, n) {\n                        return new(i || (i = Promise))((function(o, s) {\n                            function r(e) {\n                                try {\n                                    l(n.next(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function a(e) {\n                                try {\n                                    l(n.throw(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function l(e) {\n                                var t;\n                                e.done ? o(e.value) : (t = e.value, t instanceof i ? t : new i((function(e) {\n                                    e(t)\n                                }))).then(r, a)\n                            }\n                            l((n = n.apply(e, t || [])).next())\n                        }))\n                    };\n                const Ia = Q.$;\n                class Ea {\n                    constructor(e) {\n                        this.hidden = !1, this._onChecked = new W.Q5, this.onChecked = this._onChecked.event, Object.assign(this, e)\n                    }\n                    get checked() {\n                        return !!this._checked\n                    }\n                    set checked(e) {\n                        e !== this._checked && (this._checked = e, this._onChecked.fire(e))\n                    }\n                    dispose() {\n                        this._onChecked.dispose()\n                    }\n                }\n                class Ta {\n                    get templateId() {\n                        return Ta.ID\n                    }\n                    renderTemplate(e) {\n                        const t = Object.create(null);\n                        t.toDisposeElement = [], t.toDisposeTemplate = [], t.entry = Q.R3(e, Ia(\".quick-input-list-entry\"));\n                        const i = Q.R3(t.entry, Ia(\"label.quick-input-list-label\"));\n                        t.toDisposeTemplate.push(Q.mu(i, Q.tw.CLICK, (e => {\n                            t.checkbox.offsetParent || e.preventDefault()\n                        }))), t.checkbox = Q.R3(i, Ia(\"input.quick-input-list-checkbox\")), t.checkbox.type = \"checkbox\", t.toDisposeTemplate.push(Q.mu(t.checkbox, Q.tw.CHANGE, (e => {\n                            t.element.checked = t.checkbox.checked\n                        })));\n                        const n = Q.R3(i, Ia(\".quick-input-list-rows\")),\n                            o = Q.R3(n, Ia(\".quick-input-list-row\")),\n                            s = Q.R3(n, Ia(\".quick-input-list-row\"));\n                        t.label = new ya.g(o, {\n                            supportHighlights: !0,\n                            supportDescriptionHighlights: !0,\n                            supportIcons: !0\n                        });\n                        const r = Q.R3(o, Ia(\".quick-input-list-entry-keybinding\"));\n                        t.keybinding = new xa(r, Le.OS);\n                        const a = Q.R3(s, Ia(\".quick-input-list-label-meta\"));\n                        return t.detail = new wa.q(a, !0), t.separator = Q.R3(t.entry, Ia(\".quick-input-list-separator\")), t.actionBar = new dn.o(t.entry), t.actionBar.domNode.classList.add(\"quick-input-list-entry-action-bar\"), t.toDisposeTemplate.push(t.actionBar), t\n                    }\n                    renderElement(e, t, i) {\n                        i.toDisposeElement = (0, ue.B9)(i.toDisposeElement), i.element = e, i.checkbox.checked = e.checked, i.toDisposeElement.push(e.onChecked((e => i.checkbox.checked = e)));\n                        const {\n                            labelHighlights: n,\n                            descriptionHighlights: o,\n                            detailHighlights: s\n                        } = e, r = Object.create(null);\n                        r.matches = n || [], r.descriptionTitle = e.saneDescription, r.descriptionMatches = o || [], r.extraClasses = e.item.iconClasses, r.italic = e.item.italic, r.strikethrough = e.item.strikethrough, i.label.setLabel(e.saneLabel, e.saneDescription, r), i.keybinding.set(e.item.keybinding), i.detail.set(e.saneDetail, s), e.separator && e.separator.label ? (i.separator.textContent = e.separator.label, i.separator.style.display = \"\") : i.separator.style.display = \"none\", i.entry.classList.toggle(\"quick-input-list-separator-border\", !!e.separator), i.actionBar.clear();\n                        const a = e.item.buttons;\n                        a && a.length ? (i.actionBar.push(a.map(((t, i) => {\n                            let n = t.iconClass || (t.iconPath ? fa(t.iconPath) : void 0);\n                            t.alwaysVisible && (n = n ? `${n} always-visible` : \"always-visible\");\n                            const o = new un.aU(`id-${i}`, \"\", n, !0, (() => Da(this, void 0, void 0, (function*() {\n                                e.fireButtonTriggered({\n                                    button: t,\n                                    item: e.item\n                                })\n                            }))));\n                            return o.tooltip = t.tooltip || \"\", o\n                        })), {\n                            icon: !0,\n                            label: !1\n                        }), i.entry.classList.add(\"has-actions\")) : i.entry.classList.remove(\"has-actions\")\n                    }\n                    disposeElement(e, t, i) {\n                        i.toDisposeElement = (0, ue.B9)(i.toDisposeElement)\n                    }\n                    disposeTemplate(e) {\n                        e.toDisposeElement = (0, ue.B9)(e.toDisposeElement), e.toDisposeTemplate = (0, ue.B9)(e.toDisposeTemplate)\n                    }\n                }\n                Ta.ID = \"listelement\";\n                class Ma {\n                    getHeight(e) {\n                        return e.saneDetail ? 44 : 22\n                    }\n                    getTemplateId(e) {\n                        return Ta.ID\n                    }\n                }\n                var Aa;\n                ! function(e) {\n                    e[e.First = 1] = \"First\", e[e.Second = 2] = \"Second\", e[e.Last = 3] = \"Last\", e[e.Next = 4] = \"Next\", e[e.Previous = 5] = \"Previous\", e[e.NextPage = 6] = \"NextPage\", e[e.PreviousPage = 7] = \"PreviousPage\"\n                }(Aa || (Aa = {}));\n                class Oa {\n                    constructor(e, t, i) {\n                        this.parent = e, this.inputElements = [], this.elements = [], this.elementsToIndexes = new Map, this.matchOnDescription = !1, this.matchOnDetail = !1, this.matchOnLabel = !0, this.matchOnMeta = !0, this.sortByLabel = !0, this._onChangedAllVisibleChecked = new W.Q5, this.onChangedAllVisibleChecked = this._onChangedAllVisibleChecked.event, this._onChangedCheckedCount = new W.Q5, this.onChangedCheckedCount = this._onChangedCheckedCount.event, this._onChangedVisibleCount = new W.Q5, this.onChangedVisibleCount = this._onChangedVisibleCount.event, this._onChangedCheckedElements = new W.Q5, this.onChangedCheckedElements = this._onChangedCheckedElements.event, this._onButtonTriggered = new W.Q5, this.onButtonTriggered = this._onButtonTriggered.event, this._onKeyDown = new W.Q5, this.onKeyDown = this._onKeyDown.event, this._onLeave = new W.Q5, this.onLeave = this._onLeave.event, this._fireCheckedEvents = !0, this.elementDisposables = [], this.disposables = [], this.id = t, this.container = Q.R3(this.parent, Ia(\".quick-input-list\"));\n                        const n = new Ma,\n                            o = new Pa;\n                        this.list = i.createList(\"QuickInput\", this.container, n, [new Ta], {\n                            identityProvider: {\n                                getId: e => e.saneLabel\n                            },\n                            setRowLineHeight: !1,\n                            multipleSelectionSupport: !1,\n                            horizontalScrolling: !1,\n                            accessibilityProvider: o\n                        }), this.list.getHTMLElement().id = t, this.disposables.push(this.list), this.disposables.push(this.list.onKeyDown((e => {\n                            const t = new ri.y(e);\n                            switch (t.keyCode) {\n                                case 10:\n                                    this.toggleCheckbox();\n                                    break;\n                                case 31:\n                                    (Le.dz ? e.metaKey : e.ctrlKey) && this.list.setFocus((0, bt.w6)(this.list.length));\n                                    break;\n                                case 16:\n                                    const t = this.list.getFocus();\n                                    1 === t.length && 0 === t[0] && this._onLeave.fire();\n                                    break;\n                                case 18:\n                                    const i = this.list.getFocus();\n                                    1 === i.length && i[0] === this.list.length - 1 && this._onLeave.fire()\n                            }\n                            this._onKeyDown.fire(t)\n                        }))), this.disposables.push(this.list.onMouseDown((e => {\n                            2 !== e.browserEvent.button && e.browserEvent.preventDefault()\n                        }))), this.disposables.push(Q.nm(this.container, Q.tw.CLICK, (e => {\n                            (e.x || e.y) && this._onLeave.fire()\n                        }))), this.disposables.push(this.list.onMouseMiddleClick((e => {\n                            this._onLeave.fire()\n                        }))), this.disposables.push(this.list.onContextMenu((e => {\n                            \"number\" == typeof e.index && (e.browserEvent.preventDefault(), this.list.setSelection([e.index]))\n                        }))), this.disposables.push(this._onChangedAllVisibleChecked, this._onChangedCheckedCount, this._onChangedVisibleCount, this._onChangedCheckedElements, this._onButtonTriggered, this._onLeave, this._onKeyDown)\n                    }\n                    get onDidChangeFocus() {\n                        return W.ju.map(this.list.onDidChangeFocus, (e => e.elements.map((e => e.item))))\n                    }\n                    get onDidChangeSelection() {\n                        return W.ju.map(this.list.onDidChangeSelection, (e => ({\n                            items: e.elements.map((e => e.item)),\n                            event: e.browserEvent\n                        })))\n                    }\n                    get scrollTop() {\n                        return this.list.scrollTop\n                    }\n                    set scrollTop(e) {\n                        this.list.scrollTop = e\n                    }\n                    getAllVisibleChecked() {\n                        return this.allVisibleChecked(this.elements, !1)\n                    }\n                    allVisibleChecked(e, t = !0) {\n                        for (let i = 0, n = e.length; i < n; i++) {\n                            const n = e[i];\n                            if (!n.hidden) {\n                                if (!n.checked) return !1;\n                                t = !0\n                            }\n                        }\n                        return t\n                    }\n                    getCheckedCount() {\n                        let e = 0;\n                        const t = this.elements;\n                        for (let i = 0, n = t.length; i < n; i++) t[i].checked && e++;\n                        return e\n                    }\n                    getVisibleCount() {\n                        let e = 0;\n                        const t = this.elements;\n                        for (let i = 0, n = t.length; i < n; i++) t[i].hidden || e++;\n                        return e\n                    }\n                    setAllVisibleChecked(e) {\n                        try {\n                            this._fireCheckedEvents = !1, this.elements.forEach((t => {\n                                t.hidden || (t.checked = e)\n                            }))\n                        } finally {\n                            this._fireCheckedEvents = !0, this.fireCheckedEvents()\n                        }\n                    }\n                    setElements(e) {\n                        this.elementDisposables = (0, ue.B9)(this.elementDisposables);\n                        const t = e => this.fireButtonTriggered(e);\n                        this.inputElements = e, this.elements = e.reduce(((i, n, o) => {\n                            var s, r, a;\n                            if (\"separator\" !== n.type) {\n                                const l = o && e[o - 1],\n                                    c = n.label && n.label.replace(/\\r?\\n/g, \" \"),\n                                    d = n.meta && n.meta.replace(/\\r?\\n/g, \" \"),\n                                    h = n.description && n.description.replace(/\\r?\\n/g, \" \"),\n                                    u = n.detail && n.detail.replace(/\\r?\\n/g, \" \"),\n                                    g = n.ariaLabel || [c, h, u].map((e => (0, vn.JL)(e))).filter((e => !!e)).join(\", \");\n                                i.push(new Ea({\n                                    index: o,\n                                    item: n,\n                                    saneLabel: c,\n                                    saneMeta: d,\n                                    saneAriaLabel: g,\n                                    saneDescription: h,\n                                    saneDetail: u,\n                                    labelHighlights: null === (s = n.highlights) || void 0 === s ? void 0 : s.label,\n                                    descriptionHighlights: null === (r = n.highlights) || void 0 === r ? void 0 : r.description,\n                                    detailHighlights: null === (a = n.highlights) || void 0 === a ? void 0 : a.detail,\n                                    checked: !1,\n                                    separator: l && \"separator\" === l.type ? l : void 0,\n                                    fireButtonTriggered: t\n                                }))\n                            }\n                            return i\n                        }), []), this.elementDisposables.push(...this.elements), this.elementDisposables.push(...this.elements.map((e => e.onChecked((() => this.fireCheckedEvents()))))), this.elementsToIndexes = this.elements.reduce(((e, t, i) => (e.set(t.item, i), e)), new Map), this.list.splice(0, this.list.length), this.list.splice(0, this.list.length, this.elements), this._onChangedVisibleCount.fire(this.elements.length)\n                    }\n                    getFocusedElements() {\n                        return this.list.getFocusedElements().map((e => e.item))\n                    }\n                    setFocusedElements(e) {\n                        if (this.list.setFocus(e.filter((e => this.elementsToIndexes.has(e))).map((e => this.elementsToIndexes.get(e)))), e.length > 0) {\n                            const e = this.list.getFocus()[0];\n                            \"number\" == typeof e && this.list.reveal(e)\n                        }\n                    }\n                    getActiveDescendant() {\n                        return this.list.getHTMLElement().getAttribute(\"aria-activedescendant\")\n                    }\n                    setSelectedElements(e) {\n                        this.list.setSelection(e.filter((e => this.elementsToIndexes.has(e))).map((e => this.elementsToIndexes.get(e))))\n                    }\n                    getCheckedElements() {\n                        return this.elements.filter((e => e.checked)).map((e => e.item))\n                    }\n                    setCheckedElements(e) {\n                        try {\n                            this._fireCheckedEvents = !1;\n                            const t = new Set;\n                            for (const i of e) t.add(i);\n                            for (const e of this.elements) e.checked = t.has(e.item)\n                        } finally {\n                            this._fireCheckedEvents = !0, this.fireCheckedEvents()\n                        }\n                    }\n                    set enabled(e) {\n                        this.list.getHTMLElement().style.pointerEvents = e ? \"\" : \"none\"\n                    }\n                    focus(e) {\n                        if (!this.list.length) return;\n                        switch (e === Aa.Next && this.list.getFocus()[0] === this.list.length - 1 && (e = Aa.First), e === Aa.Previous && 0 === this.list.getFocus()[0] && (e = Aa.Last), e === Aa.Second && this.list.length < 2 && (e = Aa.First), e) {\n                            case Aa.First:\n                                this.list.focusFirst();\n                                break;\n                            case Aa.Second:\n                                this.list.focusNth(1);\n                                break;\n                            case Aa.Last:\n                                this.list.focusLast();\n                                break;\n                            case Aa.Next:\n                                this.list.focusNext();\n                                break;\n                            case Aa.Previous:\n                                this.list.focusPrevious();\n                                break;\n                            case Aa.NextPage:\n                                this.list.focusNextPage();\n                                break;\n                            case Aa.PreviousPage:\n                                this.list.focusPreviousPage()\n                        }\n                        const t = this.list.getFocus()[0];\n                        \"number\" == typeof t && this.list.reveal(t)\n                    }\n                    clearFocus() {\n                        this.list.setFocus([])\n                    }\n                    domFocus() {\n                        this.list.domFocus()\n                    }\n                    layout(e) {\n                        this.list.getHTMLElement().style.maxHeight = e ? `calc(${44*Math.floor(e/44)}px)` : \"\", this.list.layout()\n                    }\n                    filter(e) {\n                        if (!(this.sortByLabel || this.matchOnLabel || this.matchOnDescription || this.matchOnDetail)) return this.list.layout(), !1;\n                        if ((e = e.trim()) && (this.matchOnLabel || this.matchOnDescription || this.matchOnDetail)) {\n                            let t;\n                            this.elements.forEach((i => {\n                                const n = this.matchOnLabel ? (0, Ne.f6)((0, $s.Gt)(e, (0, $s.Ho)(i.saneLabel))) : void 0,\n                                    o = this.matchOnDescription ? (0, Ne.f6)((0, $s.Gt)(e, (0, $s.Ho)(i.saneDescription || \"\"))) : void 0,\n                                    s = this.matchOnDetail ? (0, Ne.f6)((0, $s.Gt)(e, (0, $s.Ho)(i.saneDetail || \"\"))) : void 0,\n                                    r = this.matchOnMeta ? (0, Ne.f6)((0, $s.Gt)(e, (0, $s.Ho)(i.saneMeta || \"\"))) : void 0;\n                                if (n || o || s || r ? (i.labelHighlights = n, i.descriptionHighlights = o, i.detailHighlights = s, i.hidden = !1) : (i.labelHighlights = void 0, i.descriptionHighlights = void 0, i.detailHighlights = void 0, i.hidden = !i.item.alwaysShow), i.separator = void 0, !this.sortByLabel) {\n                                    const e = i.index && this.inputElements[i.index - 1];\n                                    t = e && \"separator\" === e.type ? e : t, t && !i.hidden && (i.separator = t, t = void 0)\n                                }\n                            }))\n                        } else this.elements.forEach((e => {\n                            e.labelHighlights = void 0, e.descriptionHighlights = void 0, e.detailHighlights = void 0, e.hidden = !1;\n                            const t = e.index && this.inputElements[e.index - 1];\n                            e.separator = t && \"separator\" === t.type ? t : void 0\n                        }));\n                        const t = this.elements.filter((e => !e.hidden));\n                        if (this.sortByLabel && e) {\n                            const i = e.toLowerCase();\n                            t.sort(((e, t) => function(e, t, i) {\n                                const n = e.labelHighlights || [],\n                                    o = t.labelHighlights || [];\n                                if (n.length && !o.length) return -1;\n                                if (!n.length && o.length) return 1;\n                                if (0 === n.length && 0 === o.length) return 0;\n                                return ka(e.saneLabel, t.saneLabel, i)\n                            }(e, t, i)))\n                        }\n                        return this.elementsToIndexes = t.reduce(((e, t, i) => (e.set(t.item, i), e)), new Map), this.list.splice(0, this.list.length, t), this.list.setFocus([]), this.list.layout(), this._onChangedAllVisibleChecked.fire(this.getAllVisibleChecked()), this._onChangedVisibleCount.fire(t.length), !0\n                    }\n                    toggleCheckbox() {\n                        try {\n                            this._fireCheckedEvents = !1;\n                            const e = this.list.getFocusedElements(),\n                                t = this.allVisibleChecked(e);\n                            for (const i of e) i.checked = !t\n                        } finally {\n                            this._fireCheckedEvents = !0, this.fireCheckedEvents()\n                        }\n                    }\n                    display(e) {\n                        this.container.style.display = e ? \"\" : \"none\"\n                    }\n                    isDisplayed() {\n                        return \"none\" !== this.container.style.display\n                    }\n                    dispose() {\n                        this.elementDisposables = (0, ue.B9)(this.elementDisposables), this.disposables = (0, ue.B9)(this.disposables)\n                    }\n                    fireCheckedEvents() {\n                        this._fireCheckedEvents && (this._onChangedAllVisibleChecked.fire(this.getAllVisibleChecked()), this._onChangedCheckedCount.fire(this.getCheckedCount()), this._onChangedCheckedElements.fire(this.getCheckedElements()))\n                    }\n                    fireButtonTriggered(e) {\n                        this._onButtonTriggered.fire(e)\n                    }\n                    style(e) {\n                        this.list.style(e)\n                    }\n                }\n                Na([La.H], Oa.prototype, \"onDidChangeFocus\", null), Na([La.H], Oa.prototype, \"onDidChangeSelection\", null);\n                class Pa {\n                    getWidgetAriaLabel() {\n                        return (0, bi.N)(\"quickInput\", \"Quick Input\")\n                    }\n                    getAriaLabel(e) {\n                        return e.saneAriaLabel\n                    }\n                    getWidgetRole() {\n                        return \"listbox\"\n                    }\n                    getRole() {\n                        return \"option\"\n                    }\n                }\n                var Ra = function(e, t, i, n) {\n                    return new(i || (i = Promise))((function(o, s) {\n                        function r(e) {\n                            try {\n                                l(n.next(e))\n                            } catch (e) {\n                                s(e)\n                            }\n                        }\n\n                        function a(e) {\n                            try {\n                                l(n.throw(e))\n                            } catch (e) {\n                                s(e)\n                            }\n                        }\n\n                        function l(e) {\n                            var t;\n                            e.done ? o(e.value) : (t = e.value, t instanceof i ? t : new i((function(e) {\n                                e(t)\n                            }))).then(r, a)\n                        }\n                        l((n = n.apply(e, t || [])).next())\n                    }))\n                };\n                const Fa = Q.$,\n                    Ba = {\n                        iconClass: (0, vn.CM)(\"quick-input-back\", vn.lA.arrowLeft).classNames,\n                        tooltip: (0, bi.N)(\"quickInput.back\", \"Back\"),\n                        handle: -1\n                    };\n                class Va extends ue.JT {\n                    constructor(e) {\n                        super(), this.ui = e, this.visible = !1, this._enabled = !0, this._busy = !1, this._ignoreFocusOut = !1, this._buttons = [], this.noValidationMessage = Va.noPromptMessage, this._severity = li.Z.Ignore, this.buttonsUpdated = !1, this.onDidTriggerButtonEmitter = this._register(new W.Q5), this.onDidHideEmitter = this._register(new W.Q5), this.onDisposeEmitter = this._register(new W.Q5), this.visibleDisposables = this._register(new ue.SL), this.onDidHide = this.onDidHideEmitter.event\n                    }\n                    get title() {\n                        return this._title\n                    }\n                    set title(e) {\n                        this._title = e, this.update()\n                    }\n                    get description() {\n                        return this._description\n                    }\n                    set description(e) {\n                        this._description = e, this.update()\n                    }\n                    get step() {\n                        return this._steps\n                    }\n                    set step(e) {\n                        this._steps = e, this.update()\n                    }\n                    get totalSteps() {\n                        return this._totalSteps\n                    }\n                    set totalSteps(e) {\n                        this._totalSteps = e, this.update()\n                    }\n                    get enabled() {\n                        return this._enabled\n                    }\n                    set enabled(e) {\n                        this._enabled = e, this.update()\n                    }\n                    get contextKey() {\n                        return this._contextKey\n                    }\n                    set contextKey(e) {\n                        this._contextKey = e, this.update()\n                    }\n                    get busy() {\n                        return this._busy\n                    }\n                    set busy(e) {\n                        this._busy = e, this.update()\n                    }\n                    get ignoreFocusOut() {\n                        return this._ignoreFocusOut\n                    }\n                    set ignoreFocusOut(e) {\n                        const t = this._ignoreFocusOut !== e && !Le.gn;\n                        this._ignoreFocusOut = e && !Le.gn, t && this.update()\n                    }\n                    get buttons() {\n                        return this._buttons\n                    }\n                    set buttons(e) {\n                        this._buttons = e, this.buttonsUpdated = !0, this.update()\n                    }\n                    get validationMessage() {\n                        return this._validationMessage\n                    }\n                    set validationMessage(e) {\n                        this._validationMessage = e, this.update()\n                    }\n                    get severity() {\n                        return this._severity\n                    }\n                    set severity(e) {\n                        this._severity = e, this.update()\n                    }\n                    show() {\n                        this.visible || (this.visibleDisposables.add(this.ui.onDidTriggerButton((e => {\n                            -1 !== this.buttons.indexOf(e) && this.onDidTriggerButtonEmitter.fire(e)\n                        }))), this.ui.show(this), this.visible = !0, this._lastValidationMessage = void 0, this._lastSeverity = void 0, this.buttons.length && (this.buttonsUpdated = !0), this.update())\n                    }\n                    hide() {\n                        this.visible && this.ui.hide()\n                    }\n                    didHide(e = ma.Jq.Other) {\n                        this.visible = !1, this.visibleDisposables.clear(), this.onDidHideEmitter.fire({\n                            reason: e\n                        })\n                    }\n                    update() {\n                        if (!this.visible) return;\n                        const e = this.getTitle();\n                        e && this.ui.title.textContent !== e ? this.ui.title.textContent = e : e || \"&nbsp;\" === this.ui.title.innerHTML || (this.ui.title.innerText = \" \");\n                        const t = this.getDescription();\n                        if (this.ui.description1.textContent !== t && (this.ui.description1.textContent = t), this.ui.description2.textContent !== t && (this.ui.description2.textContent = t), this.busy && !this.busyDelay && (this.busyDelay = new Se._F, this.busyDelay.setIfNotSet((() => {\n                                this.visible && this.ui.progressBar.infinite()\n                            }), 800)), !this.busy && this.busyDelay && (this.ui.progressBar.stop(), this.busyDelay.cancel(), this.busyDelay = void 0), this.buttonsUpdated) {\n                            this.buttonsUpdated = !1, this.ui.leftActionBar.clear();\n                            const e = this.buttons.filter((e => e === Ba));\n                            this.ui.leftActionBar.push(e.map(((e, t) => {\n                                const i = new un.aU(`id-${t}`, \"\", e.iconClass || fa(e.iconPath), !0, (() => Ra(this, void 0, void 0, (function*() {\n                                    this.onDidTriggerButtonEmitter.fire(e)\n                                }))));\n                                return i.tooltip = e.tooltip || \"\", i\n                            })), {\n                                icon: !0,\n                                label: !1\n                            }), this.ui.rightActionBar.clear();\n                            const t = this.buttons.filter((e => e !== Ba));\n                            this.ui.rightActionBar.push(t.map(((e, t) => {\n                                const i = new un.aU(`id-${t}`, \"\", e.iconClass || fa(e.iconPath), !0, (() => Ra(this, void 0, void 0, (function*() {\n                                    this.onDidTriggerButtonEmitter.fire(e)\n                                }))));\n                                return i.tooltip = e.tooltip || \"\", i\n                            })), {\n                                icon: !0,\n                                label: !1\n                            })\n                        }\n                        this.ui.ignoreFocusOut = this.ignoreFocusOut, this.ui.setEnabled(this.enabled), this.ui.setContextKey(this.contextKey);\n                        const i = this.validationMessage || this.noValidationMessage;\n                        this._lastValidationMessage !== i && (this._lastValidationMessage = i, Q.mc(this.ui.message, ...(0, ia.T)(i))), this._lastSeverity !== this.severity && (this._lastSeverity = this.severity, this.showMessageDecoration(this.severity))\n                    }\n                    getTitle() {\n                        return this.title && this.step ? `${this.title} (${this.getSteps()})` : this.title ? this.title : this.step ? this.getSteps() : \"\"\n                    }\n                    getDescription() {\n                        return this.description || \"\"\n                    }\n                    getSteps() {\n                        return this.step && this.totalSteps ? (0, bi.N)(\"quickInput.steps\", \"{0}/{1}\", this.step, this.totalSteps) : this.step ? String(this.step) : \"\"\n                    }\n                    showMessageDecoration(e) {\n                        if (this.ui.inputBox.showDecoration(e), e !== li.Z.Ignore) {\n                            const t = this.ui.inputBox.stylesForType(e);\n                            this.ui.message.style.color = t.foreground ? `${t.foreground}` : \"\", this.ui.message.style.backgroundColor = t.background ? `${t.background}` : \"\", this.ui.message.style.border = t.border ? `1px solid ${t.border}` : \"\", this.ui.message.style.paddingBottom = \"4px\"\n                        } else this.ui.message.style.color = \"\", this.ui.message.style.backgroundColor = \"\", this.ui.message.style.border = \"\", this.ui.message.style.paddingBottom = \"\"\n                    }\n                    dispose() {\n                        this.hide(), this.onDisposeEmitter.fire(), super.dispose()\n                    }\n                }\n                Va.noPromptMessage = (0, bi.N)(\"inputModeEntry\", \"Press 'Enter' to confirm your input or 'Escape' to cancel\");\n                class Wa extends Va {\n                    constructor() {\n                        super(...arguments), this._value = \"\", this.onDidChangeValueEmitter = this._register(new W.Q5), this.onWillAcceptEmitter = this._register(new W.Q5), this.onDidAcceptEmitter = this._register(new W.Q5), this.onDidCustomEmitter = this._register(new W.Q5), this._items = [], this.itemsUpdated = !1, this._canSelectMany = !1, this._canAcceptInBackground = !1, this._matchOnDescription = !1, this._matchOnDetail = !1, this._matchOnLabel = !0, this._sortByLabel = !0, this._autoFocusOnList = !0, this._keepScrollPosition = !1, this._itemActivation = this.ui.isScreenReaderOptimized() ? ma.jG.NONE : ma.jG.FIRST, this._activeItems = [], this.activeItemsUpdated = !1, this.activeItemsToConfirm = [], this.onDidChangeActiveEmitter = this._register(new W.Q5), this._selectedItems = [], this.selectedItemsUpdated = !1, this.selectedItemsToConfirm = [], this.onDidChangeSelectionEmitter = this._register(new W.Q5), this.onDidTriggerItemButtonEmitter = this._register(new W.Q5), this.valueSelectionUpdated = !0, this._ok = \"default\", this._customButton = !1, this.filterValue = e => e, 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\n                    }\n                    get quickNavigate() {\n                        return this._quickNavigate\n                    }\n                    set quickNavigate(e) {\n                        this._quickNavigate = e, this.update()\n                    }\n                    get value() {\n                        return this._value\n                    }\n                    set value(e) {\n                        this._value !== e && (this._value = e || \"\", this.update(), this.onDidChangeValueEmitter.fire(this._value))\n                    }\n                    set ariaLabel(e) {\n                        this._ariaLabel = e, this.update()\n                    }\n                    get ariaLabel() {\n                        return this._ariaLabel\n                    }\n                    get placeholder() {\n                        return this._placeholder\n                    }\n                    set placeholder(e) {\n                        this._placeholder = e, this.update()\n                    }\n                    get items() {\n                        return this._items\n                    }\n                    get scrollTop() {\n                        return this.ui.list.scrollTop\n                    }\n                    set scrollTop(e) {\n                        this.ui.list.scrollTop = e\n                    }\n                    set items(e) {\n                        this._items = e, this.itemsUpdated = !0, this.update()\n                    }\n                    get canSelectMany() {\n                        return this._canSelectMany\n                    }\n                    set canSelectMany(e) {\n                        this._canSelectMany = e, this.update()\n                    }\n                    get canAcceptInBackground() {\n                        return this._canAcceptInBackground\n                    }\n                    set canAcceptInBackground(e) {\n                        this._canAcceptInBackground = e\n                    }\n                    get matchOnDescription() {\n                        return this._matchOnDescription\n                    }\n                    set matchOnDescription(e) {\n                        this._matchOnDescription = e, this.update()\n                    }\n                    get matchOnDetail() {\n                        return this._matchOnDetail\n                    }\n                    set matchOnDetail(e) {\n                        this._matchOnDetail = e, this.update()\n                    }\n                    get matchOnLabel() {\n                        return this._matchOnLabel\n                    }\n                    set matchOnLabel(e) {\n                        this._matchOnLabel = e, this.update()\n                    }\n                    get sortByLabel() {\n                        return this._sortByLabel\n                    }\n                    set sortByLabel(e) {\n                        this._sortByLabel = e, this.update()\n                    }\n                    get autoFocusOnList() {\n                        return this._autoFocusOnList\n                    }\n                    set autoFocusOnList(e) {\n                        this._autoFocusOnList = e, this.update()\n                    }\n                    get keepScrollPosition() {\n                        return this._keepScrollPosition\n                    }\n                    set keepScrollPosition(e) {\n                        this._keepScrollPosition = e\n                    }\n                    get itemActivation() {\n                        return this._itemActivation\n                    }\n                    set itemActivation(e) {\n                        this._itemActivation = e\n                    }\n                    get activeItems() {\n                        return this._activeItems\n                    }\n                    set activeItems(e) {\n                        this._activeItems = e, this.activeItemsUpdated = !0, this.update()\n                    }\n                    get selectedItems() {\n                        return this._selectedItems\n                    }\n                    set selectedItems(e) {\n                        this._selectedItems = e, this.selectedItemsUpdated = !0, this.update()\n                    }\n                    get keyMods() {\n                        return this._quickNavigate ? ma.X5 : this.ui.keyMods\n                    }\n                    set valueSelection(e) {\n                        this._valueSelection = e, this.valueSelectionUpdated = !0, this.update()\n                    }\n                    get customButton() {\n                        return this._customButton\n                    }\n                    set customButton(e) {\n                        this._customButton = e, this.update()\n                    }\n                    get customLabel() {\n                        return this._customButtonLabel\n                    }\n                    set customLabel(e) {\n                        this._customButtonLabel = e, this.update()\n                    }\n                    get customHover() {\n                        return this._customButtonHover\n                    }\n                    set customHover(e) {\n                        this._customButtonHover = e, this.update()\n                    }\n                    get ok() {\n                        return this._ok\n                    }\n                    set ok(e) {\n                        this._ok = e, this.update()\n                    }\n                    get hideInput() {\n                        return !!this._hideInput\n                    }\n                    set hideInput(e) {\n                        this._hideInput = e, this.update()\n                    }\n                    trySelectFirst() {\n                        this.autoFocusOnList && (this.canSelectMany || this.ui.list.focus(Aa.First))\n                    }\n                    show() {\n                        this.visible || (this.visibleDisposables.add(this.ui.inputBox.onDidChange((e => {\n                            if (e === this.value) return;\n                            this._value = e;\n                            this.ui.list.filter(this.filterValue(this.ui.inputBox.value)) && this.trySelectFirst(), this.onDidChangeValueEmitter.fire(e)\n                        }))), this.visibleDisposables.add(this.ui.inputBox.onMouseDown((e => {\n                            this.autoFocusOnList || this.ui.list.clearFocus()\n                        }))), this.visibleDisposables.add((this._hideInput ? this.ui.list : this.ui.inputBox).onKeyDown((e => {\n                            switch (e.keyCode) {\n                                case 18:\n                                    this.ui.list.focus(Aa.Next), this.canSelectMany && this.ui.list.domFocus(), Q.zB.stop(e, !0);\n                                    break;\n                                case 16:\n                                    this.ui.list.getFocusedElements().length ? this.ui.list.focus(Aa.Previous) : this.ui.list.focus(Aa.Last), this.canSelectMany && this.ui.list.domFocus(), Q.zB.stop(e, !0);\n                                    break;\n                                case 12:\n                                    this.ui.list.focus(Aa.NextPage), this.canSelectMany && this.ui.list.domFocus(), Q.zB.stop(e, !0);\n                                    break;\n                                case 11:\n                                    this.ui.list.focus(Aa.PreviousPage), this.canSelectMany && this.ui.list.domFocus(), Q.zB.stop(e, !0);\n                                    break;\n                                case 17:\n                                    if (!this._canAcceptInBackground) return;\n                                    if (!this.ui.inputBox.isSelectionAtEnd()) return;\n                                    this.activeItems[0] && (this._selectedItems = [this.activeItems[0]], this.onDidChangeSelectionEmitter.fire(this.selectedItems), this.handleAccept(!0));\n                                    break;\n                                case 14:\n                                    !e.ctrlKey && !e.metaKey || e.shiftKey || e.altKey || (this.ui.list.focus(Aa.First), Q.zB.stop(e, !0));\n                                    break;\n                                case 13:\n                                    !e.ctrlKey && !e.metaKey || e.shiftKey || e.altKey || (this.ui.list.focus(Aa.Last), Q.zB.stop(e, !0))\n                            }\n                        }))), this.visibleDisposables.add(this.ui.onDidAccept((() => {\n                            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)\n                        }))), this.visibleDisposables.add(this.ui.onDidCustom((() => {\n                            this.onDidCustomEmitter.fire()\n                        }))), this.visibleDisposables.add(this.ui.list.onDidChangeFocus((e => {\n                            this.activeItemsUpdated || this.activeItemsToConfirm !== this._activeItems && (0, bt.fS)(e, this._activeItems, ((e, t) => e === t)) || (this._activeItems = e, this.onDidChangeActiveEmitter.fire(e))\n                        }))), this.visibleDisposables.add(this.ui.list.onDidChangeSelection((({\n                            items: e,\n                            event: t\n                        }) => {\n                            this.canSelectMany ? e.length && this.ui.list.setSelectedElements([]) : this.selectedItemsToConfirm !== this._selectedItems && (0, bt.fS)(e, this._selectedItems, ((e, t) => e === t)) || (this._selectedItems = e, this.onDidChangeSelectionEmitter.fire(e), e.length && this.handleAccept(t instanceof MouseEvent && 1 === t.button))\n                        }))), this.visibleDisposables.add(this.ui.list.onChangedCheckedElements((e => {\n                            this.canSelectMany && (this.selectedItemsToConfirm !== this._selectedItems && (0, bt.fS)(e, this._selectedItems, ((e, t) => e === t)) || (this._selectedItems = e, this.onDidChangeSelectionEmitter.fire(e)))\n                        }))), this.visibleDisposables.add(this.ui.list.onButtonTriggered((e => this.onDidTriggerItemButtonEmitter.fire(e)))), this.visibleDisposables.add(this.registerQuickNavigation()), this.valueSelectionUpdated = !0), super.show()\n                    }\n                    handleAccept(e) {\n                        let t = !1;\n                        this.onWillAcceptEmitter.fire({\n                            veto: () => t = !0\n                        }), t || this.onDidAcceptEmitter.fire({\n                            inBackground: e\n                        })\n                    }\n                    registerQuickNavigation() {\n                        return Q.nm(this.ui.container, Q.tw.KEY_UP, (e => {\n                            if (this.canSelectMany || !this._quickNavigate) return;\n                            const t = new ri.y(e),\n                                i = t.keyCode;\n                            this._quickNavigate.keybindings.some((e => {\n                                const [n, o] = e.getParts();\n                                return !o && (n.shiftKey && 4 === i ? !(t.ctrlKey || t.altKey || t.metaKey) : !(!n.altKey || 6 !== i) || (!(!n.ctrlKey || 5 !== i) || !(!n.metaKey || 57 !== i)))\n                            })) && (this.activeItems[0] && (this._selectedItems = [this.activeItems[0]], this.onDidChangeSelectionEmitter.fire(this.selectedItems), this.handleAccept(!1)), this._quickNavigate = void 0)\n                        }))\n                    }\n                    update() {\n                        if (!this.visible) return;\n                        const e = this.keepScrollPosition ? this.scrollTop : 0,\n                            t = !!this._hideInput && this._items.length > 0;\n                        this.ui.container.classList.toggle(\"hidden-input\", t && !this.description);\n                        const i = {\n                            title: !!this.title || !!this.step || !!this.buttons.length,\n                            description: !!this.description,\n                            checkAll: this.canSelectMany && !this._hideCheckAll,\n                            checkBox: this.canSelectMany,\n                            inputBox: !t,\n                            progressBar: !t,\n                            visibleCount: !0,\n                            count: this.canSelectMany,\n                            ok: \"default\" === this.ok ? this.canSelectMany : this.ok,\n                            list: !0,\n                            message: !!this.validationMessage,\n                            customButton: this.customButton\n                        };\n                        this.ui.setVisibilities(i), 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 && {\n                            start: this._valueSelection[0],\n                            end: this._valueSelection[1]\n                        })), this.ui.inputBox.placeholder !== (this.placeholder || \"\") && (this.ui.inputBox.placeholder = this.placeholder || \"\");\n                        const n = this.ariaLabel || this.placeholder || Wa.DEFAULT_ARIA_LABEL;\n                        if (this.ui.inputBox.ariaLabel !== n && (this.ui.inputBox.ariaLabel = n), this.ui.list.matchOnDescription = this.matchOnDescription, this.ui.list.matchOnDetail = this.matchOnDetail, this.ui.list.matchOnLabel = this.matchOnLabel, this.ui.list.sortByLabel = this.sortByLabel, this.itemsUpdated) switch (this.itemsUpdated = !1, this.ui.list.setElements(this.items), this.ui.list.filter(this.filterValue(this.ui.inputBox.value)), this.ui.checkAll.checked = this.ui.list.getAllVisibleChecked(), this.ui.visibleCount.setCount(this.ui.list.getVisibleCount()), this.ui.count.setCount(this.ui.list.getCheckedCount()), this._itemActivation) {\n                            case ma.jG.NONE:\n                                this._itemActivation = ma.jG.FIRST;\n                                break;\n                            case ma.jG.SECOND:\n                                this.ui.list.focus(Aa.Second), this._itemActivation = ma.jG.FIRST;\n                                break;\n                            case ma.jG.LAST:\n                                this.ui.list.focus(Aa.Last), this._itemActivation = ma.jG.FIRST;\n                                break;\n                            default:\n                                this.trySelectFirst()\n                        }\n                        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 || \"\", this.ui.setComboboxAccessibility(!0), i.inputBox || (this.ui.list.domFocus(), this.canSelectMany && this.ui.list.focus(Aa.First)), this.keepScrollPosition && (this.scrollTop = e)\n                    }\n                }\n                Wa.DEFAULT_ARIA_LABEL = (0, bi.N)(\"quickInputBox.ariaLabel\", \"Type to narrow down results.\");\n                class Ha extends ue.JT {\n                    constructor(e) {\n                        super(), this.options = e, this.comboboxAccessibility = !1, this.enabled = !0, this.onDidAcceptEmitter = this._register(new W.Q5), this.onDidCustomEmitter = this._register(new W.Q5), this.onDidTriggerButtonEmitter = this._register(new W.Q5), this.keyMods = {\n                            ctrlCmd: !1,\n                            alt: !1\n                        }, this.controller = null, this.onShowEmitter = this._register(new W.Q5), this.onShow = this.onShowEmitter.event, this.onHideEmitter = this._register(new W.Q5), this.onHide = this.onHideEmitter.event, this.idPrefix = e.idPrefix, this.parentElement = e.container, this.styles = e.styles, this.registerKeyModsListeners()\n                    }\n                    registerKeyModsListeners() {\n                        const e = e => {\n                            this.keyMods.ctrlCmd = e.ctrlKey || e.metaKey, this.keyMods.alt = e.altKey\n                        };\n                        this._register(Q.nm(window, Q.tw.KEY_DOWN, e, !0)), this._register(Q.nm(window, Q.tw.KEY_UP, e, !0)), this._register(Q.nm(window, Q.tw.MOUSE_DOWN, e, !0))\n                    }\n                    getUI() {\n                        if (this.ui) return this.ui;\n                        const e = Q.R3(this.parentElement, Fa(\".quick-input-widget.show-file-icons\"));\n                        e.tabIndex = -1, e.style.display = \"none\";\n                        const t = Q.dS(e),\n                            i = Q.R3(e, Fa(\".quick-input-titlebar\")),\n                            n = this._register(new dn.o(i));\n                        n.domNode.classList.add(\"quick-input-left-action-bar\");\n                        const o = Q.R3(i, Fa(\".quick-input-title\")),\n                            s = this._register(new dn.o(i));\n                        s.domNode.classList.add(\"quick-input-right-action-bar\");\n                        const r = Q.R3(e, Fa(\".quick-input-description\")),\n                            a = Q.R3(e, Fa(\".quick-input-header\")),\n                            l = Q.R3(a, Fa(\"input.quick-input-check-all\"));\n                        l.type = \"checkbox\", this._register(Q.mu(l, Q.tw.CHANGE, (e => {\n                            const t = l.checked;\n                            C.setAllVisibleChecked(t)\n                        }))), this._register(Q.nm(l, Q.tw.CLICK, (e => {\n                            (e.x || e.y) && u.setFocus()\n                        })));\n                        const c = Q.R3(a, Fa(\".quick-input-description\")),\n                            d = Q.R3(a, Fa(\".quick-input-and-message\")),\n                            h = Q.R3(d, Fa(\".quick-input-filter\")),\n                            u = this._register(new ba(h));\n                        u.setAttribute(\"aria-describedby\", `${this.idPrefix}message`);\n                        const g = Q.R3(h, Fa(\".quick-input-visible-count\"));\n                        g.setAttribute(\"aria-live\", \"polite\"), g.setAttribute(\"aria-atomic\", \"true\");\n                        const p = new sa.Z(g, {\n                                countFormat: (0, bi.N)({\n                                    key: \"quickInput.visibleCount\",\n                                    comment: [\"This tells the user how many items are shown in a list of items to select from. The items can be anything. Currently not visible, but read by screen readers.\"]\n                                }, \"{0} Results\")\n                            }),\n                            f = Q.R3(h, Fa(\".quick-input-count\"));\n                        f.setAttribute(\"aria-live\", \"polite\");\n                        const m = new sa.Z(f, {\n                                countFormat: (0, bi.N)({\n                                    key: \"quickInput.countSelected\",\n                                    comment: [\"This tells the user how many items are selected in a list of items to select from. The items can be anything.\"]\n                                }, \"{0} Selected\")\n                            }),\n                            v = Q.R3(a, Fa(\".quick-input-action\")),\n                            _ = new oa(v);\n                        _.label = (0, bi.N)(\"ok\", \"OK\"), this._register(_.onDidClick((e => {\n                            this.onDidAcceptEmitter.fire()\n                        })));\n                        const b = Q.R3(a, Fa(\".quick-input-action\")),\n                            w = new oa(b);\n                        w.label = (0, bi.N)(\"custom\", Lg.custom()), this._register(w.onDidClick((e => {\n                            this.onDidCustomEmitter.fire()\n                        })));\n                        const y = Q.R3(d, Fa(`#${this.idPrefix}message.quick-input-message`)),\n                            C = this._register(new Oa(e, this.idPrefix + \"list\", this.options));\n                        this._register(C.onChangedAllVisibleChecked((e => {\n                            l.checked = e\n                        }))), this._register(C.onChangedVisibleCount((e => {\n                            p.setCount(e)\n                        }))), this._register(C.onChangedCheckedCount((e => {\n                            m.setCount(e)\n                        }))), this._register(C.onLeave((() => {\n                            setTimeout((() => {\n                                u.setFocus(), this.controller instanceof Wa && this.controller.canSelectMany && C.clearFocus()\n                            }), 0)\n                        }))), this._register(C.onDidChangeFocus((() => {\n                            this.comboboxAccessibility && this.getUI().inputBox.setAttribute(\"aria-activedescendant\", this.getUI().list.getActiveDescendant() || \"\")\n                        })));\n                        const x = new ha(e);\n                        x.getContainer().classList.add(\"quick-input-progress\");\n                        const S = Q.go(e);\n                        return this._register(S), this._register(Q.nm(e, Q.tw.FOCUS, (e => {\n                            this.previousFocusElement = e.relatedTarget instanceof HTMLElement ? e.relatedTarget : void 0\n                        }), !0)), this._register(S.onDidBlur((() => {\n                            this.getUI().ignoreFocusOut || this.options.ignoreFocusOut() || this.hide(ma.Jq.Blur), this.previousFocusElement = void 0\n                        }))), this._register(Q.nm(e, Q.tw.FOCUS, (e => {\n                            u.setFocus()\n                        }))), this._register(Q.nm(e, Q.tw.KEY_DOWN, (t => {\n                            const i = new ri.y(t);\n                            switch (i.keyCode) {\n                                case 3:\n                                    Q.zB.stop(t, !0), this.onDidAcceptEmitter.fire();\n                                    break;\n                                case 9:\n                                    Q.zB.stop(t, !0), this.hide(ma.Jq.Gesture);\n                                    break;\n                                case 2:\n                                    if (!i.altKey && !i.ctrlKey && !i.metaKey) {\n                                        const n = [\".action-label.codicon\"];\n                                        e.classList.contains(\"show-checkboxes\") ? n.push(\"input\") : n.push(\"input[type=text]\"), this.getUI().list.isDisplayed() && n.push(\".monaco-list\");\n                                        const o = e.querySelectorAll(n.join(\", \"));\n                                        i.shiftKey && i.target === o[0] ? (Q.zB.stop(t, !0), o[o.length - 1].focus()) : i.shiftKey || i.target !== o[o.length - 1] || (Q.zB.stop(t, !0), o[0].focus())\n                                    }\n                            }\n                        }))), this.ui = {\n                            container: e,\n                            styleSheet: t,\n                            leftActionBar: n,\n                            titleBar: i,\n                            title: o,\n                            description1: r,\n                            description2: c,\n                            rightActionBar: s,\n                            checkAll: l,\n                            filterContainer: h,\n                            inputBox: u,\n                            visibleCountContainer: g,\n                            visibleCount: p,\n                            countContainer: f,\n                            count: m,\n                            okContainer: v,\n                            ok: _,\n                            message: y,\n                            customButtonContainer: b,\n                            customButton: w,\n                            list: C,\n                            progressBar: x,\n                            onDidAccept: this.onDidAcceptEmitter.event,\n                            onDidCustom: this.onDidCustomEmitter.event,\n                            onDidTriggerButton: this.onDidTriggerButtonEmitter.event,\n                            ignoreFocusOut: !1,\n                            keyMods: this.keyMods,\n                            isScreenReaderOptimized: () => this.options.isScreenReaderOptimized(),\n                            show: e => this.show(e),\n                            hide: () => this.hide(),\n                            setVisibilities: e => this.setVisibilities(e),\n                            setComboboxAccessibility: e => this.setComboboxAccessibility(e),\n                            setEnabled: e => this.setEnabled(e),\n                            setContextKey: e => this.options.setContextKey(e)\n                        }, this.updateStyles(), this.ui\n                    }\n                    pick(e, t = {}, i = V.T.None) {\n                        return new Promise(((n, o) => {\n                            let s = e => {\n                                s = n, t.onKeyMods && t.onKeyMods(r.keyMods), n(e)\n                            };\n                            if (i.isCancellationRequested) return void s(void 0);\n                            const r = this.createQuickPick();\n                            let a;\n                            const l = [r, r.onDidAccept((() => {\n                                if (r.canSelectMany) s(r.selectedItems.slice()), r.hide();\n                                else {\n                                    const e = r.activeItems[0];\n                                    e && (s(e), r.hide())\n                                }\n                            })), r.onDidChangeActive((e => {\n                                const i = e[0];\n                                i && t.onDidFocus && t.onDidFocus(i)\n                            })), r.onDidChangeSelection((e => {\n                                if (!r.canSelectMany) {\n                                    const t = e[0];\n                                    t && (s(t), r.hide())\n                                }\n                            })), r.onDidTriggerItemButton((e => t.onDidTriggerItemButton && t.onDidTriggerItemButton(Object.assign(Object.assign({}, e), {\n                                removeItem: () => {\n                                    const t = r.items.indexOf(e.item);\n                                    if (-1 !== t) {\n                                        const e = r.items.slice(),\n                                            i = e.splice(t, 1),\n                                            n = r.activeItems.filter((e => e !== i[0])),\n                                            o = r.keepScrollPosition;\n                                        r.keepScrollPosition = !0, r.items = e, n && (r.activeItems = n), r.keepScrollPosition = o\n                                    }\n                                }\n                            })))), r.onDidChangeValue((e => {\n                                !a || e || 1 === r.activeItems.length && r.activeItems[0] === a || (r.activeItems = [a])\n                            })), i.onCancellationRequested((() => {\n                                r.hide()\n                            })), r.onDidHide((() => {\n                                (0, ue.B9)(l), s(void 0)\n                            }))];\n                            r.title = t.title, r.canSelectMany = !!t.canPickMany, r.placeholder = t.placeHolder, r.ignoreFocusOut = !!t.ignoreFocusLost, r.matchOnDescription = !!t.matchOnDescription, r.matchOnDetail = !!t.matchOnDetail, r.matchOnLabel = void 0 === t.matchOnLabel || t.matchOnLabel, r.autoFocusOnList = void 0 === t.autoFocusOnList || t.autoFocusOnList, r.quickNavigate = t.quickNavigate, r.contextKey = t.contextKey, r.busy = !0, Promise.all([e, t.activeItem]).then((([e, t]) => {\n                                a = t, r.busy = !1, r.items = e, r.canSelectMany && (r.selectedItems = e.filter((e => \"separator\" !== e.type && e.picked))), a && (r.activeItems = [a])\n                            })), r.show(), Promise.resolve(e).then(void 0, (e => {\n                                o(e), r.hide()\n                            }))\n                        }))\n                    }\n                    createQuickPick() {\n                        const e = this.getUI();\n                        return new Wa(e)\n                    }\n                    show(e) {\n                        const t = this.getUI();\n                        this.onShowEmitter.fire();\n                        const i = this.controller;\n                        this.controller = e, i && i.didHide(), this.setEnabled(!0), t.leftActionBar.clear(), t.title.textContent = \"\", t.description1.textContent = \"\", t.description2.textContent = \"\", t.rightActionBar.clear(), t.checkAll.checked = !1, t.inputBox.placeholder = \"\", t.inputBox.password = !1, t.inputBox.showDecoration(li.Z.Ignore), t.visibleCount.setCount(0), t.count.setCount(0), Q.mc(t.message), t.progressBar.stop(), t.list.setElements([]), t.list.matchOnDescription = !1, t.list.matchOnDetail = !1, t.list.matchOnLabel = !0, t.list.sortByLabel = !0, t.ignoreFocusOut = !1, this.setComboboxAccessibility(!1), t.inputBox.ariaLabel = \"\";\n                        const n = this.options.backKeybindingLabel();\n                        Ba.tooltip = n ? (0, bi.N)(\"quickInput.backWithKeybinding\", \"Back ({0})\", n) : (0, bi.N)(\"quickInput.back\", \"Back\"), t.container.style.display = \"\", this.updateLayout(), t.inputBox.setFocus()\n                    }\n                    setVisibilities(e) {\n                        const t = this.getUI();\n                        t.title.style.display = e.title ? \"\" : \"none\", t.description1.style.display = e.description && (e.inputBox || e.checkAll) ? \"\" : \"none\", t.description2.style.display = !e.description || e.inputBox || e.checkAll ? \"none\" : \"\", t.checkAll.style.display = e.checkAll ? \"\" : \"none\", t.filterContainer.style.display = e.inputBox ? \"\" : \"none\", t.visibleCountContainer.style.display = e.visibleCount ? \"\" : \"none\", t.countContainer.style.display = e.count ? \"\" : \"none\", t.okContainer.style.display = e.ok ? \"\" : \"none\", t.customButtonContainer.style.display = e.customButton ? \"\" : \"none\", t.message.style.display = e.message ? \"\" : \"none\", t.progressBar.getContainer().style.display = e.progressBar ? \"\" : \"none\", t.list.display(!!e.list), t.container.classList[e.checkBox ? \"add\" : \"remove\"](\"show-checkboxes\"), this.updateLayout()\n                    }\n                    setComboboxAccessibility(e) {\n                        if (e !== this.comboboxAccessibility) {\n                            const t = this.getUI();\n                            this.comboboxAccessibility = e, this.comboboxAccessibility ? (t.inputBox.setAttribute(\"role\", \"combobox\"), t.inputBox.setAttribute(\"aria-haspopup\", \"true\"), t.inputBox.setAttribute(\"aria-autocomplete\", \"list\"), t.inputBox.setAttribute(\"aria-activedescendant\", t.list.getActiveDescendant() || \"\")) : (t.inputBox.removeAttribute(\"role\"), t.inputBox.removeAttribute(\"aria-haspopup\"), t.inputBox.removeAttribute(\"aria-autocomplete\"), t.inputBox.removeAttribute(\"aria-activedescendant\"))\n                        }\n                    }\n                    setEnabled(e) {\n                        if (e !== this.enabled) {\n                            this.enabled = e;\n                            for (const t of this.getUI().leftActionBar.viewItems) t.getAction().enabled = e;\n                            for (const t of this.getUI().rightActionBar.viewItems) t.getAction().enabled = e;\n                            this.getUI().checkAll.disabled = !e, this.getUI().ok.enabled = e, this.getUI().list.enabled = e\n                        }\n                    }\n                    hide(e) {\n                        var t;\n                        const i = this.controller;\n                        if (i) {\n                            const n = !(null === (t = this.ui) || void 0 === t ? void 0 : t.container.contains(document.activeElement));\n                            this.controller = null, this.onHideEmitter.fire(), this.getUI().container.style.display = \"none\", n || (this.previousFocusElement && this.previousFocusElement.offsetParent ? (this.previousFocusElement.focus(), this.previousFocusElement = void 0) : this.options.returnFocus()), i.didHide(e)\n                        }\n                    }\n                    layout(e, t) {\n                        this.dimension = e, this.titleBarOffset = t, this.updateLayout()\n                    }\n                    updateLayout() {\n                        if (this.ui) {\n                            this.ui.container.style.top = `${this.titleBarOffset}px`;\n                            const e = this.ui.container.style,\n                                t = Math.min(.62 * this.dimension.width, Ha.MAX_WIDTH);\n                            e.width = t + \"px\", e.marginLeft = \"-\" + t / 2 + \"px\", this.ui.inputBox.layout(), this.ui.list.layout(this.dimension && .4 * this.dimension.height)\n                        }\n                    }\n                    applyStyles(e) {\n                        this.styles = e, this.updateStyles()\n                    }\n                    updateStyles() {\n                        if (this.ui) {\n                            const {\n                                quickInputTitleBackground: e,\n                                quickInputBackground: t,\n                                quickInputForeground: i,\n                                contrastBorder: n,\n                                widgetShadow: o\n                            } = this.styles.widget;\n                            this.ui.titleBar.style.backgroundColor = e ? e.toString() : \"\", this.ui.container.style.backgroundColor = t ? t.toString() : \"\", this.ui.container.style.color = i ? i.toString() : \"\", this.ui.container.style.border = n ? `1px solid ${n}` : \"\", this.ui.container.style.boxShadow = o ? `0 0 8px 2px ${o}` : \"\", this.ui.inputBox.style(this.styles.inputBox), this.ui.count.style(this.styles.countBadge), this.ui.ok.style(this.styles.button), this.ui.customButton.style(this.styles.button), this.ui.progressBar.style(this.styles.progressBar), this.ui.list.style(this.styles.list);\n                            const s = [];\n                            this.styles.list.pickerGroupBorder && s.push(`.quick-input-list .quick-input-list-entry { border-top-color:  ${this.styles.list.pickerGroupBorder}; }`), this.styles.list.pickerGroupForeground && s.push(`.quick-input-list .quick-input-list-separator { color:  ${this.styles.list.pickerGroupForeground}; }`), (this.styles.keybindingLabel.keybindingLabelBackground || this.styles.keybindingLabel.keybindingLabelBorder || this.styles.keybindingLabel.keybindingLabelBottomBorder || this.styles.keybindingLabel.keybindingLabelShadow || this.styles.keybindingLabel.keybindingLabelForeground) && (s.push(\".quick-input-list .monaco-keybinding > .monaco-keybinding-key {\"), this.styles.keybindingLabel.keybindingLabelBackground && s.push(`background-color: ${this.styles.keybindingLabel.keybindingLabelBackground};`), this.styles.keybindingLabel.keybindingLabelBorder && s.push(`border-color: ${this.styles.keybindingLabel.keybindingLabelBorder};`), this.styles.keybindingLabel.keybindingLabelBottomBorder && s.push(`border-bottom-color: ${this.styles.keybindingLabel.keybindingLabelBottomBorder};`), this.styles.keybindingLabel.keybindingLabelShadow && s.push(`box-shadow: inset 0 -1px 0 ${this.styles.keybindingLabel.keybindingLabelShadow};`), this.styles.keybindingLabel.keybindingLabelForeground && s.push(`color: ${this.styles.keybindingLabel.keybindingLabelForeground};`), s.push(\"}\"));\n                            const r = s.join(\"\\n\");\n                            r !== this.ui.styleSheet.textContent && (this.ui.styleSheet.textContent = r)\n                        }\n                    }\n                }\n                Ha.MAX_WIDTH = 600;\n                var za = i(88289),\n                    ja = i(90725),\n                    Ua = i(41157),\n                    $a = function(e, t, i, n) {\n                        var o, s = arguments.length,\n                            r = s < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n                        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) r = Reflect.decorate(e, t, i, n);\n                        else\n                            for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (r = (s < 3 ? o(r) : s > 3 ? o(t, i, r) : o(t, i)) || r);\n                        return s > 3 && r && Object.defineProperty(t, i, r), r\n                    },\n                    Ka = function(e, t) {\n                        return function(i, n) {\n                            t(i, n, e)\n                        }\n                    };\n                let qa = class extends ue.JT {\n                    constructor(e, t) {\n                        super(), this.quickInputService = e, this.instantiationService = t, this.registry = Uo.B.as(ja.IP.Quickaccess), this.mapProviderToDescriptor = new Map, this.lastAcceptedPickerValues = new Map, this.visibleQuickAccess = void 0\n                    }\n                    show(e = \"\", t) {\n                        this.doShowOrPick(e, !1, t)\n                    }\n                    doShowOrPick(e, t, i) {\n                        var n;\n                        const [o, s] = this.getOrInstantiateProvider(e), r = this.visibleQuickAccess, a = null == r ? void 0 : r.descriptor;\n                        if (r && s && a === s) return e === s.prefix || (null == i ? void 0 : i.preserveValue) || (r.picker.value = e), void this.adjustValueSelection(r.picker, s, i);\n                        if (s && !(null == i ? void 0 : i.preserveValue)) {\n                            let t;\n                            if (r && a && a !== s) {\n                                const e = r.value.substr(a.prefix.length);\n                                e && (t = `${s.prefix}${e}`)\n                            }\n                            if (!t) {\n                                const e = null == o ? void 0 : o.defaultFilterValue;\n                                e === ja.Ry.LAST ? t = this.lastAcceptedPickerValues.get(s) : \"string\" == typeof e && (t = `${s.prefix}${e}`)\n                            }\n                            \"string\" == typeof t && (e = t)\n                        }\n                        const l = new ue.SL,\n                            c = l.add(this.quickInputService.createQuickPick());\n                        let d, h;\n                        c.value = e, this.adjustValueSelection(c, s, i), c.placeholder = null == s ? void 0 : s.placeholder, c.quickNavigate = null == i ? void 0 : i.quickNavigateConfiguration, c.hideInput = !!c.quickNavigate && !r, (\"number\" == typeof(null == i ? void 0 : i.itemActivation) || (null == i ? void 0 : i.quickNavigateConfiguration)) && (c.itemActivation = null !== (n = null == i ? void 0 : i.itemActivation) && void 0 !== n ? n : Ua.jG.SECOND), c.contextKey = null == s ? void 0 : s.contextKey, c.filterValue = e => e.substring(s ? s.prefix.length : 0), (null == s ? void 0 : s.placeholder) && (c.ariaLabel = null == s ? void 0 : s.placeholder), t && (d = new Promise((e => h = e)), l.add((0, za.I)(c.onWillAccept)((e => {\n                            e.veto(), c.hide()\n                        })))), l.add(this.registerPickerListeners(c, o, s, e));\n                        const u = l.add(new V.A);\n                        return o && l.add(o.provide(c, u.token)), (0, za.I)(c.onDidHide)((() => {\n                            0 === c.selectedItems.length && u.cancel(), l.dispose(), null == h || h(c.selectedItems)\n                        })), c.show(), t ? d : void 0\n                    }\n                    adjustValueSelection(e, t, i) {\n                        var n;\n                        let o;\n                        o = (null == i ? void 0 : i.preserveValue) ? [e.value.length, e.value.length] : [null !== (n = null == t ? void 0 : t.prefix.length) && void 0 !== n ? n : 0, e.value.length], e.valueSelection = o\n                    }\n                    registerPickerListeners(e, t, i, n) {\n                        const o = new ue.SL,\n                            s = this.visibleQuickAccess = {\n                                picker: e,\n                                descriptor: i,\n                                value: n\n                            };\n                        return o.add((0, ue.OF)((() => {\n                            s === this.visibleQuickAccess && (this.visibleQuickAccess = void 0)\n                        }))), o.add(e.onDidChangeValue((e => {\n                            const [i] = this.getOrInstantiateProvider(e);\n                            i !== t ? this.show(e, {\n                                preserveValue: !0\n                            }) : s.value = e\n                        }))), i && o.add(e.onDidAccept((() => {\n                            this.lastAcceptedPickerValues.set(i, e.value)\n                        }))), o\n                    }\n                    getOrInstantiateProvider(e) {\n                        const t = this.registry.getQuickAccessProvider(e);\n                        if (!t) return [void 0, void 0];\n                        let i = this.mapProviderToDescriptor.get(t);\n                        return i || (i = this.instantiationService.createInstance(t.ctor), this.mapProviderToDescriptor.set(t, i)), [i, t]\n                    }\n                };\n                qa = $a([Ka(0, Ua.eJ), Ka(1, Pn.TG)], qa);\n                var Za = function(e, t, i, n) {\n                        var o, s = arguments.length,\n                            r = s < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n                        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) r = Reflect.decorate(e, t, i, n);\n                        else\n                            for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (r = (s < 3 ? o(r) : s > 3 ? o(t, i, r) : o(t, i)) || r);\n                        return s > 3 && r && Object.defineProperty(t, i, r), r\n                    },\n                    Ga = function(e, t) {\n                        return function(i, n) {\n                            t(i, n, e)\n                        }\n                    };\n                let Ya = class extends mn.bB {\n                    constructor(e, t, i, n, o) {\n                        super(i), this.instantiationService = e, this.contextKeyService = t, this.accessibilityService = n, this.layoutService = o, this.contexts = new Map\n                    }\n                    get controller() {\n                        return this._controller || (this._controller = this._register(this.createController())), this._controller\n                    }\n                    get quickAccess() {\n                        return this._quickAccess || (this._quickAccess = this._register(this.instantiationService.createInstance(qa))), this._quickAccess\n                    }\n                    createController(e = this.layoutService, t) {\n                        var i, n;\n                        const o = {\n                                idPrefix: \"quickInput_\",\n                                container: e.container,\n                                ignoreFocusOut: () => !1,\n                                isScreenReaderOptimized: () => this.accessibilityService.isScreenReaderOptimized(),\n                                backKeybindingLabel: () => {},\n                                setContextKey: e => this.setContextKey(e),\n                                returnFocus: () => e.focus(),\n                                createList: (e, t, i, n, o) => this.instantiationService.createInstance(br.ev, e, t, i, n, o),\n                                styles: this.computeStyles()\n                            },\n                            s = this._register(new Ha(Object.assign(Object.assign({}, o), t)));\n                        return s.layout(e.dimension, null !== (n = null === (i = e.offset) || void 0 === i ? void 0 : i.top) && void 0 !== n ? n : 0), this._register(e.onDidLayout((t => {\n                            var i, n;\n                            return s.layout(t, null !== (n = null === (i = e.offset) || void 0 === i ? void 0 : i.top) && void 0 !== n ? n : 0)\n                        }))), this._register(s.onShow((() => this.resetContextKeys()))), this._register(s.onHide((() => this.resetContextKeys()))), s\n                    }\n                    setContextKey(e) {\n                        let t;\n                        e && (t = this.contexts.get(e), t || (t = new xi.uy(e, !1).bindTo(this.contextKeyService), this.contexts.set(e, t))), t && t.get() || (this.resetContextKeys(), t && t.set(!0))\n                    }\n                    resetContextKeys() {\n                        this.contexts.forEach((e => {\n                            e.get() && e.reset()\n                        }))\n                    }\n                    pick(e, t = {}, i = V.T.None) {\n                        return this.controller.pick(e, t, i)\n                    }\n                    createQuickPick() {\n                        return this.controller.createQuickPick()\n                    }\n                    updateStyles() {\n                        this.controller.applyStyles(this.computeStyles())\n                    }\n                    computeStyles() {\n                        return {\n                            widget: Object.assign({}, (0, ir.o)(this.theme, {\n                                quickInputBackground: fn.zK,\n                                quickInputForeground: fn.tZ,\n                                quickInputTitleBackground: fn.lo,\n                                contrastBorder: fn.lR,\n                                widgetShadow: fn.rh\n                            })),\n                            inputBox: (0, ir.o)(this.theme, {\n                                inputForeground: fn.zJ,\n                                inputBackground: fn.sE,\n                                inputBorder: fn.dt,\n                                inputValidationInfoBackground: fn._l,\n                                inputValidationInfoForeground: fn.YI,\n                                inputValidationInfoBorder: fn.EP,\n                                inputValidationWarningBackground: fn.RV,\n                                inputValidationWarningForeground: fn.SU,\n                                inputValidationWarningBorder: fn.C3,\n                                inputValidationErrorBackground: fn.p,\n                                inputValidationErrorForeground: fn._t,\n                                inputValidationErrorBorder: fn.OZ\n                            }),\n                            countBadge: (0, ir.o)(this.theme, {\n                                badgeBackground: fn.g8,\n                                badgeForeground: fn.qe,\n                                badgeBorder: fn.lR\n                            }),\n                            button: (0, ir.o)(this.theme, {\n                                buttonForeground: fn.j5,\n                                buttonBackground: fn.b7,\n                                buttonHoverBackground: fn.GO,\n                                buttonBorder: fn.lR\n                            }),\n                            progressBar: (0, ir.o)(this.theme, {\n                                progressBarBackground: fn.zR\n                            }),\n                            keybindingLabel: (0, ir.o)(this.theme, {\n                                keybindingLabelBackground: fn.oQ,\n                                keybindingLabelForeground: fn.lW,\n                                keybindingLabelBorder: fn.AW,\n                                keybindingLabelBottomBorder: fn.K1,\n                                keybindingLabelShadow: fn.rh\n                            }),\n                            list: (0, ir.o)(this.theme, {\n                                listBackground: fn.zK,\n                                listInactiveFocusForeground: fn.NP,\n                                listInactiveSelectionIconForeground: fn.cb,\n                                listInactiveFocusBackground: fn.Vq,\n                                listFocusOutline: fn.xL,\n                                listInactiveFocusOutline: fn.xL,\n                                pickerGroupBorder: fn.op,\n                                pickerGroupForeground: fn.kJ\n                            })\n                        }\n                    }\n                };\n                Ya = Za([Ga(0, Pn.TG), Ga(1, xi.i6), Ga(2, mn.XE), Ga(3, _o.F), Ga(4, ar)], Ya);\n                var Qa = function(e, t, i, n) {\n                        var o, s = arguments.length,\n                            r = s < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n                        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) r = Reflect.decorate(e, t, i, n);\n                        else\n                            for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (r = (s < 3 ? o(r) : s > 3 ? o(t, i, r) : o(t, i)) || r);\n                        return s > 3 && r && Object.defineProperty(t, i, r), r\n                    },\n                    Xa = function(e, t) {\n                        return function(i, n) {\n                            t(i, n, e)\n                        }\n                    };\n                let Ja = class extends Ya {\n                    constructor(e, t, i, n, o, s) {\n                        super(t, i, n, o, s), this.host = void 0;\n                        const r = tl.get(e);\n                        this.host = {\n                            _serviceBrand: void 0,\n                            get container() {\n                                return r.widget.getDomNode()\n                            },\n                            get dimension() {\n                                return e.getLayoutInfo()\n                            },\n                            get onDidLayout() {\n                                return e.onDidLayoutChange\n                            },\n                            focus: () => e.focus()\n                        }\n                    }\n                    createController() {\n                        return super.createController(this.host)\n                    }\n                };\n                Ja = Qa([Xa(1, Pn.TG), Xa(2, xi.i6), Xa(3, mn.XE), Xa(4, _o.F), Xa(5, ar)], Ja);\n                let el = class {\n                    constructor(e, t) {\n                        this.instantiationService = e, this.codeEditorService = t, this.mapEditorToService = new Map\n                    }\n                    get activeService() {\n                        const e = this.codeEditorService.getFocusedCodeEditor();\n                        if (!e) throw new Error(\"Quick input service needs a focused editor to work.\");\n                        let t = this.mapEditorToService.get(e);\n                        if (!t) {\n                            const i = t = this.instantiationService.createInstance(Ja, e);\n                            this.mapEditorToService.set(e, t), (0, za.I)(e.onDidDispose)((() => {\n                                i.dispose(), this.mapEditorToService.delete(e)\n                            }))\n                        }\n                        return t\n                    }\n                    get quickAccess() {\n                        return this.activeService.quickAccess\n                    }\n                    pick(e, t = {}, i = V.T.None) {\n                        return this.activeService.pick(e, t, i)\n                    }\n                    createQuickPick() {\n                        return this.activeService.createQuickPick()\n                    }\n                };\n                el = Qa([Xa(0, Pn.TG), Xa(1, Y.$)], el);\n                class tl {\n                    constructor(e) {\n                        this.editor = e, this.widget = new il(this.editor)\n                    }\n                    static get(e) {\n                        return e.getContribution(tl.ID)\n                    }\n                    dispose() {\n                        this.widget.dispose()\n                    }\n                }\n                tl.ID = \"editor.controller.quickInput\";\n                class il {\n                    constructor(e) {\n                        this.codeEditor = e, this.domNode = document.createElement(\"div\"), this.codeEditor.addOverlayWidget(this)\n                    }\n                    getId() {\n                        return il.ID\n                    }\n                    getDomNode() {\n                        return this.domNode\n                    }\n                    getPosition() {\n                        return {\n                            preference: 2\n                        }\n                    }\n                    dispose() {\n                        this.codeEditor.removeOverlayWidget(this)\n                    }\n                }\n                var nl;\n                il.ID = \"editor.contrib.quickInputWidget\", (0, gn._K)(tl.ID, tl),\n                    function(e) {\n                        const t = new Rn.y;\n                        class i {\n                            constructor(e, t) {\n                                this._serviceId = e, this._factory = t, this._value = null\n                            }\n                            get id() {\n                                return this._serviceId\n                            }\n                            get(e) {\n                                if (!this._value) {\n                                    if (e && (this._value = e[this._serviceId.toString()]), this._value || (this._value = this._factory(e)), !this._value) throw new Error(\"Service \" + this._serviceId + \" is missing!\");\n                                    t.set(this._serviceId, this._value)\n                                }\n                                return this._value\n                            }\n                        }\n                        e.LazyStaticService = i;\n                        let n = [];\n\n                        function o(e, t) {\n                            let o = new i(e, t);\n                            return n.push(o), o\n                        }\n                        e.init = function(e) {\n                            let t = new Rn.y;\n                            for (const [e, i] of (0, Or.d)()) t.set(e, i);\n                            for (let i in e) e.hasOwnProperty(i) && t.set((0, Pn.yh)(i), e[i]);\n                            n.forEach((i => t.set(i.id, i.get(e))));\n                            let i = new mr(t, !0);\n                            return t.set(Pn.TG, i), [t, i]\n                        }, e.instantiationService = o(Pn.TG, (() => new mr(t, !0)));\n                        const s = new qi;\n                        e.configurationService = o(gi.Ui, (() => s)), e.resourceConfigurationService = o(_t.V, (() => new Zi(s))), e.resourcePropertiesService = o(_t.y, (() => new Gi(s))), e.contextService = o(Oi.ec, (() => new Qi)), e.labelService = o(_r.e, (() => new en)), e.telemetryService = o(Os.b, (() => new Yi)), e.dialogService = o(hr.S, (() => new zi)), e.notificationService = o(Ai.lT, (() => new ji)), e.markerService = o(wr.lT, (() => new xr)), e.modeService = o(Ce.h, (e => new Go)), e.standaloneThemeService = o(fo.Z, (() => new _s)), e.logService = o(wt.VZ, (() => new wt.$V(new wt.kw))), e.undoRedoService = o(Wr.tJ, (t => new ea(e.dialogService.get(t), e.notificationService.get(t)))), e.languageConfigurationService = o(Ke.c_, (t => new Ke.UU(e.configurationService.get(t), e.modeService.get(t)))), e.modelService = o(vt.q, (t => new Yo.BR(e.configurationService.get(t), e.resourcePropertiesService.get(t), e.standaloneThemeService.get(t), e.logService.get(t), e.undoRedoService.get(t), e.modeService.get(t), e.languageConfigurationService.get(t)))), e.markerDecorationsService = o(Ir.i, (t => new Ar(e.modelService.get(t), e.markerService.get(t)))), e.contextKeyService = o(xi.i6, (t => new Ts(e.configurationService.get(t)))), e.codeEditorService = o(Y.$, (t => new Mo(null, e.contextKeyService.get(t), e.standaloneThemeService.get(t)))), e.editorProgressService = o(zn.e, (() => new Hi)), e.storageService = o(Sr.Uy, (() => new Sr.vm)), e.editorWorkerService = o(ye.p, (t => new Lt(e.modelService.get(t), e.resourceConfigurationService.get(t), e.logService.get(t))))\n                    }(nl || (nl = {}));\n                class ol extends ue.JT {\n                    constructor(e, t) {\n                        super();\n                        const [i, n] = nl.init(t);\n                        this._serviceCollection = i, this._instantiationService = n;\n                        const o = this.get(gi.Ui),\n                            s = this.get(Ai.lT),\n                            r = this.get(Os.b),\n                            a = this.get(mn.XE),\n                            l = this.get(wt.VZ),\n                            c = this.get(xi.i6);\n                        let d = (e, i) => {\n                            let n = null;\n                            return t && (n = t[e.toString()]), n || (n = i()), this._serviceCollection.set(e, n), n\n                        };\n                        d(_o.F, (() => new Fr(c, o))), d(br.Lw, (() => new br.XN(a)));\n                        let h = d(ne.H, (() => new Ui(this._instantiationService))),\n                            u = d(vo.d, (() => this._register(new $i(c, h, r, s, l, e)))),\n                            g = d(ar, (() => new tn(nl.codeEditorService.get(Y.$), e)));\n                        d(Ua.eJ, (() => new el(n, nl.codeEditorService.get(Y.$))));\n                        let p = d(Fn.u, (() => this._register(new dr(g))));\n                        d(Hn.p, (() => new Vr)), d(Fn.i, (() => {\n                            const e = new rr(r, s, p, u, a);\n                            return e.configure({\n                                blockMouse: !1\n                            }), this._register(e)\n                        })), d(mo.co, (() => new Nr(h))), d(di.vu, (() => new Ji(nl.modelService.get(vt.q))))\n                    }\n                    get(e) {\n                        let t = this._serviceCollection.get(e);\n                        if (!t) throw new Error(\"Missing service \" + e);\n                        return t\n                    }\n                    set(e, t) {\n                        this._serviceCollection.set(e, t)\n                    }\n                    has(e) {\n                        return this._serviceCollection.has(e)\n                    }\n                }\n\n                function sl(e, t, i) {\n                    let n = new ol(e, t),\n                        o = null;\n                    n.has(xe.S) || (o = new Wi(nl.modelService.get()), n.set(xe.S, o)), n.has(oe.v4) || n.set(oe.v4, new de(n.get(Y.$), n.get(ne.H)));\n                    let s = i(n);\n                    return o && o.setEditor(s), s\n                }\n\n                function rl(e, t, i) {\n                    return sl(e, i || {}, (i => new Vo(e, t, i, i.get(Pn.TG), i.get(Y.$), i.get(ne.H), i.get(xi.i6), i.get(vo.d), i.get(Fn.u), i.get(fo.Z), i.get(Ai.lT), i.get(gi.Ui), i.get(_o.F), i.get(vt.q), i.get(Ce.h))))\n                }\n\n                function al(e) {\n                    return nl.codeEditorService.get().onCodeEditorAdd((t => {\n                        e(t)\n                    }))\n                }\n\n                function ll(e, t, i) {\n                    return sl(e, i || {}, (i => new Wo(e, t, i, i.get(Pn.TG), i.get(xi.i6), i.get(vo.d), i.get(Fn.u), i.get(ye.p), i.get(Y.$), i.get(fo.Z), i.get(Ai.lT), i.get(gi.Ui), i.get(Fn.i), i.get(zn.e), i.get(Hn.p))))\n                }\n\n                function cl(e, t) {\n                    return new fe(e, t)\n                }\n\n                function dl(e, t, i) {\n                    return Ho(nl.modelService.get(), nl.modeService.get(), e, t, i)\n                }\n\n                function hl(e, t) {\n                    nl.modelService.get().setMode(e, nl.modeService.get().create(t))\n                }\n\n                function ul(e, t, i) {\n                    e && nl.markerService.get().changeOne(t, e.uri, i)\n                }\n\n                function gl(e) {\n                    return nl.markerService.get().read(e)\n                }\n\n                function pl(e) {\n                    return nl.markerService.get().onMarkerChanged(e)\n                }\n\n                function fl(e) {\n                    return nl.modelService.get().getModel(e)\n                }\n\n                function ml() {\n                    return nl.modelService.get().getModels()\n                }\n\n                function vl(e) {\n                    return nl.modelService.get().onModelAdded(e)\n                }\n\n                function _l(e) {\n                    return nl.modelService.get().onModelRemoved(e)\n                }\n\n                function bl(e) {\n                    return nl.modelService.get().onModelModeChanged((t => {\n                        e({\n                            model: t.model,\n                            oldLanguage: t.oldModeId\n                        })\n                    }))\n                }\n\n                function wl(e) {\n                    return function(e, t) {\n                        return new At(e, t)\n                    }(nl.modelService.get(), e)\n                }\n\n                function yl(e, t) {\n                    const i = nl.standaloneThemeService.get();\n                    return i.registerEditorContainer(e), ni.colorizeElement(i, nl.modeService.get(), e, t)\n                }\n\n                function Cl(e, t, i) {\n                    return nl.standaloneThemeService.get().registerEditorContainer(document.body), ni.colorize(nl.modeService.get(), e, t, i)\n                }\n\n                function xl(e, t, i = 4) {\n                    return nl.standaloneThemeService.get().registerEditorContainer(document.body), ni.colorizeModelLine(e, t, i)\n                }\n\n                function Sl(e, t) {\n                    nl.modeService.get().triggerMode(t);\n                    let i = function(e) {\n                            let t = be.RW.get(e);\n                            return t || {\n                                getInitialState: () => we.nO,\n                                tokenize: (t, i, n, o) => (0, we.Ri)(e, t, n, o)\n                            }\n                        }(t),\n                        n = (0, De.uq)(e),\n                        o = [],\n                        s = i.getInitialState();\n                    for (let e = 0, t = n.length; e < t; e++) {\n                        let t = n[e],\n                            r = i.tokenize(t, !0, s, 0);\n                        o[e] = r.tokens, s = r.endState\n                    }\n                    return o\n                }\n\n                function kl(e, t) {\n                    nl.standaloneThemeService.get().defineTheme(e, t)\n                }\n\n                function Ll(e) {\n                    nl.standaloneThemeService.get().setTheme(e)\n                }\n\n                function Nl() {\n                    (0, ln.P)()\n                }\n\n                function Dl(e, t) {\n                    return ne.P.registerCommand({\n                        id: e,\n                        handler: t\n                    })\n                }\n\n                function Il(e, t) {\n                    return \"boolean\" == typeof e ? e : t\n                }\n\n                function El(e, t) {\n                    return \"string\" == typeof e ? e : t\n                }\n\n                function Tl(e, t = !1) {\n                    t && (e = e.map((function(e) {\n                        return e.toLowerCase()\n                    })));\n                    const i = function(e) {\n                        const t = {};\n                        for (const i of e) t[i] = !0;\n                        return t\n                    }(e);\n                    return t ? function(e) {\n                        return void 0 !== i[e.toLowerCase()] && i.hasOwnProperty(e.toLowerCase())\n                    } : function(e) {\n                        return void 0 !== i[e] && i.hasOwnProperty(e)\n                    }\n                }\n\n                function Ml(e, t) {\n                    t = t.replace(/@@/g, \"\u0001\");\n                    let i, n = 0;\n                    do {\n                        i = !1, t = t.replace(/@(\\w+)/g, (function(n, o) {\n                            i = !0;\n                            let s = \"\";\n                            if (\"string\" == typeof e[o]) s = e[o];\n                            else {\n                                if (!(e[o] && e[o] instanceof RegExp)) throw void 0 === e[o] ? jt(e, \"language definition does not contain attribute '\" + o + \"', used at: \" + t) : jt(e, \"attribute reference '\" + o + \"' must be a string, used at: \" + t);\n                                s = e[o].source\n                            }\n                            return Wt(s) ? \"\" : \"(?:\" + s + \")\"\n                        })), n++\n                    } while (i && n < 5);\n                    t = t.replace(/\\x01/g, \"@\");\n                    let o = (e.ignoreCase ? \"i\" : \"\") + (e.unicode ? \"u\" : \"\");\n                    return new RegExp(t, o)\n                }\n\n                function Al(e, t, i, n) {\n                    let o = -1,\n                        s = i,\n                        r = i.match(/^\\$(([sS]?)(\\d\\d?)|#)(.*)$/);\n                    r && (r[3] && (o = parseInt(r[3]), r[2] && (o += 100)), s = r[4]);\n                    let a, l = \"~\",\n                        c = s;\n                    if (s && 0 !== s.length ? /^\\w*$/.test(c) ? l = \"==\" : (r = s.match(/^(@|!@|~|!~|==|!=)(.*)$/), r && (l = r[1], c = r[2])) : (l = \"!=\", c = \"\"), \"~\" !== l && \"!~\" !== l || !/^(\\w|\\|)*$/.test(c))\n                        if (\"@\" === l || \"!@\" === l) {\n                            let i = e[c];\n                            if (!i) throw jt(e, \"the @ match target '\" + c + \"' is not defined, in rule: \" + t);\n                            if (! function(e, t) {\n                                    if (!t) return !1;\n                                    if (!Array.isArray(t)) return !1;\n                                    for (const i of t)\n                                        if (!e(i)) return !1;\n                                    return !0\n                                }((function(e) {\n                                    return \"string\" == typeof e\n                                }), i)) throw jt(e, \"the @ match target '\" + c + \"' must be an array of strings, in rule: \" + t);\n                            let n = Tl(i, e.ignoreCase);\n                            a = function(e) {\n                                return \"@\" === l ? n(e) : !n(e)\n                            }\n                        } else if (\"~\" === l || \"!~\" === l)\n                        if (c.indexOf(\"$\") < 0) {\n                            let t = Ml(e, \"^\" + c + \"$\");\n                            a = function(e) {\n                                return \"~\" === l ? t.test(e) : !t.test(e)\n                            }\n                        } else a = function(t, i, n, o) {\n                            return Ml(e, \"^\" + Ut(e, c, i, n, o) + \"$\").test(t)\n                        };\n                    else if (c.indexOf(\"$\") < 0) {\n                        let t = Ht(e, c);\n                        a = function(e) {\n                            return \"==\" === l ? e === t : e !== t\n                        }\n                    } else {\n                        let t = Ht(e, c);\n                        a = function(i, n, o, s, r) {\n                            let a = Ut(e, t, n, o, s);\n                            return \"==\" === l ? i === a : i !== a\n                        }\n                    } else {\n                        let t = Tl(c.split(\"|\"), e.ignoreCase);\n                        a = function(e) {\n                            return \"~\" === l ? t(e) : !t(e)\n                        }\n                    }\n                    return -1 === o ? {\n                        name: i,\n                        value: n,\n                        test: function(e, t, i, n) {\n                            return a(e, e, t, i, n)\n                        }\n                    } : {\n                        name: i,\n                        value: n,\n                        test: function(e, t, i, n) {\n                            let s = function(e, t, i, n) {\n                                if (n < 0) return e;\n                                if (n < t.length) return t[n];\n                                if (n >= 100) {\n                                    n -= 100;\n                                    let e = i.split(\".\");\n                                    if (e.unshift(i), n < e.length) return e[n]\n                                }\n                                return null\n                            }(e, t, i, o);\n                            return a(s || \"\", e, t, i, n)\n                        }\n                    }\n                }\n\n                function Ol(e, t, i) {\n                    if (i) {\n                        if (\"string\" == typeof i) return i;\n                        if (i.token || \"\" === i.token) {\n                            if (\"string\" != typeof i.token) throw jt(e, \"a 'token' attribute must be of type string, in rule: \" + t); {\n                                let n = {\n                                    token: i.token\n                                };\n                                if (i.token.indexOf(\"$\") >= 0 && (n.tokenSubst = !0), \"string\" == typeof i.bracket)\n                                    if (\"@open\" === i.bracket) n.bracket = 1;\n                                    else {\n                                        if (\"@close\" !== i.bracket) throw jt(e, \"a 'bracket' attribute must be either '@open' or '@close', in rule: \" + t);\n                                        n.bracket = -1\n                                    } if (i.next) {\n                                    if (\"string\" != typeof i.next) throw jt(e, \"the next state must be a string value in rule: \" + t); {\n                                        let o = i.next;\n                                        if (!/^(@pop|@push|@popall)$/.test(o) && (\"@\" === o[0] && (o = o.substr(1)), o.indexOf(\"$\") < 0 && ! function(e, t) {\n                                                let i = t;\n                                                for (; i && i.length > 0;) {\n                                                    if (e.stateNames[i]) return !0;\n                                                    const t = i.lastIndexOf(\".\");\n                                                    i = t < 0 ? null : i.substr(0, t)\n                                                }\n                                                return !1\n                                            }(e, Ut(e, o, \"\", [], \"\")))) throw jt(e, \"the next state '\" + i.next + \"' is not defined in rule: \" + t);\n                                        n.next = o\n                                    }\n                                }\n                                return \"number\" == typeof i.goBack && (n.goBack = i.goBack), \"string\" == typeof i.switchTo && (n.switchTo = i.switchTo), \"string\" == typeof i.log && (n.log = i.log), \"string\" == typeof i.nextEmbedded && (n.nextEmbedded = i.nextEmbedded, e.usesEmbedded = !0), n\n                            }\n                        }\n                        if (Array.isArray(i)) {\n                            let n = [];\n                            for (let o = 0, s = i.length; o < s; o++) n[o] = Ol(e, t, i[o]);\n                            return {\n                                group: n\n                            }\n                        }\n                        if (i.cases) {\n                            let n = [];\n                            for (let o in i.cases)\n                                if (i.cases.hasOwnProperty(o)) {\n                                    const s = Ol(e, t, i.cases[o]);\n                                    \"@default\" === o || \"@\" === o || \"\" === o ? n.push({\n                                        test: void 0,\n                                        value: s,\n                                        name: o\n                                    }) : \"@eos\" === o ? n.push({\n                                        test: function(e, t, i, n) {\n                                            return n\n                                        },\n                                        value: s,\n                                        name: o\n                                    }) : n.push(Al(e, t, o, s))\n                                } const o = e.defaultToken;\n                            return {\n                                test: function(e, t, i, s) {\n                                    for (const o of n) {\n                                        if (!o.test || o.test(e, t, i, s)) return o.value\n                                    }\n                                    return o\n                                }\n                            }\n                        }\n                        throw jt(e, \"an action must be a string, an object with a 'token' or 'cases' attribute, or an array of actions; in rule: \" + t)\n                    }\n                    return {\n                        token: \"\"\n                    }\n                }\n                class Pl {\n                    constructor(e) {\n                        this.regex = new RegExp(\"\"), this.action = {\n                            token: \"\"\n                        }, this.matchOnlyAtLineStart = !1, this.name = \"\", this.name = e\n                    }\n                    setRegex(e, t) {\n                        let i;\n                        if (\"string\" == typeof t) i = t;\n                        else {\n                            if (!(t instanceof RegExp)) throw jt(e, \"rules must start with a match string or regular expression: \" + this.name);\n                            i = t.source\n                        }\n                        this.matchOnlyAtLineStart = i.length > 0 && \"^\" === i[0], this.name = this.name + \": \" + i, this.regex = Ml(e, \"^(?:\" + (this.matchOnlyAtLineStart ? i.substr(1) : i) + \")\")\n                    }\n                    setAction(e, t) {\n                        this.action = Ol(e, this.name, t)\n                    }\n                }\n\n                function Rl(e) {\n                    jo.dQ.registerLanguage(e)\n                }\n\n                function Fl() {\n                    let e = [];\n                    return e = e.concat(jo.dQ.getLanguages()), e\n                }\n\n                function Bl(e) {\n                    return nl.modeService.get().languageIdCodec.encodeLanguageId(e)\n                }\n\n                function Vl(e, t) {\n                    let i = nl.modeService.get().onDidEncounterLanguage((n => {\n                        n === e && (i.dispose(), t())\n                    }));\n                    return i\n                }\n\n                function Wl(e, t) {\n                    const i = nl.modeService.get().validateLanguageId(e);\n                    if (!i) throw new Error(`Cannot set configuration for unknown language ${e}`);\n                    return Ke.zu.register(i, t, 100)\n                }\n                class Hl {\n                    constructor(e, t) {\n                        this._languageId = e, this._actual = t\n                    }\n                    getInitialState() {\n                        return this._actual.getInitialState()\n                    }\n                    tokenize(e, t, i, n) {\n                        if (\"function\" == typeof this._actual.tokenize) return zl.adaptTokenize(this._languageId, this._actual, e, i, n);\n                        throw new Error(\"Not supported!\")\n                    }\n                    tokenize2(e, t, i) {\n                        let n = this._actual.tokenizeEncoded(e, i);\n                        return new K.Hi(n.tokens, n.endState)\n                    }\n                }\n                class zl {\n                    constructor(e, t, i, n) {\n                        this._languageId = e, this._actual = t, this._modeService = i, this._standaloneThemeService = n\n                    }\n                    getInitialState() {\n                        return this._actual.getInitialState()\n                    }\n                    static _toClassicTokens(e, t, i) {\n                        let n = [],\n                            o = 0;\n                        for (let s = 0, r = e.length; s < r; s++) {\n                            const r = e[s];\n                            let a = r.startIndex;\n                            0 === s ? a = 0 : a < o && (a = o), n[s] = new K.WU(a + i, r.scopes, t), o = a\n                        }\n                        return n\n                    }\n                    static adaptTokenize(e, t, i, n, o) {\n                        let s, r = t.tokenize(i, n),\n                            a = zl._toClassicTokens(r.tokens, e, o);\n                        return s = r.endState.equals(n) ? n : r.endState, new K.hG(a, s)\n                    }\n                    tokenize(e, t, i, n) {\n                        return zl.adaptTokenize(this._languageId, this._actual, e, i, n)\n                    }\n                    _toBinaryTokens(e, t, i) {\n                        const n = e.encodeLanguageId(this._languageId),\n                            o = this._standaloneThemeService.getColorTheme().tokenTheme;\n                        let s = [],\n                            r = 0,\n                            a = 0;\n                        for (let e = 0, l = t.length; e < l; e++) {\n                            const l = t[e],\n                                c = o.match(n, l.scopes);\n                            if (r > 0 && s[r - 1] === c) continue;\n                            let d = l.startIndex;\n                            0 === e ? d = 0 : d < a && (d = a), s[r++] = d + i, s[r++] = c, a = d\n                        }\n                        let l = new Uint32Array(r);\n                        for (let e = 0; e < r; e++) l[e] = s[e];\n                        return l\n                    }\n                    tokenize2(e, t, i, n) {\n                        let o, s = this._actual.tokenize(e, i),\n                            r = this._toBinaryTokens(this._modeService.languageIdCodec, s.tokens, n);\n                        return o = s.endState.equals(i) ? i : s.endState, new K.Hi(r, o)\n                    }\n                }\n\n                function jl(e) {\n                    return e && \"function\" == typeof e.then\n                }\n\n                function Ul(e) {\n                    if (e) {\n                        const t = [null];\n                        for (let i = 1, n = e.length; i < n; i++) t[i] = Qo.Il.fromHex(e[i]);\n                        nl.standaloneThemeService.get().setColorMapOverride(t)\n                    } else nl.standaloneThemeService.get().setColorMapOverride(null)\n                }\n\n                function $l(e, t) {\n                    const i = nl.modeService.get().validateLanguageId(e);\n                    if (!i) throw new Error(`Cannot set tokens provider for unknown language ${e}`);\n                    const n = e => function(e) {\n                        return \"tokenizeEncoded\" in e\n                    }(e) ? new Hl(i, e) : new zl(i, e, nl.modeService.get(), nl.standaloneThemeService.get());\n                    return jl(t) ? be.RW.registerPromise(e, t.then((e => n(e)))) : be.RW.register(e, n(t))\n                }\n\n                function Kl(e, t) {\n                    const i = t => function(e, t, i, n) {\n                        return new Jt(e, t, i, n)\n                    }(nl.modeService.get(), nl.standaloneThemeService.get(), e, function(e, t) {\n                        if (!t || \"object\" != typeof t) throw new Error(\"Monarch: expecting a language definition object\");\n                        let i = {};\n                        i.languageId = e, i.includeLF = Il(t.includeLF, !1), i.noThrow = !1, i.maxStack = 100, i.start = \"string\" == typeof t.start ? t.start : null, i.ignoreCase = Il(t.ignoreCase, !1), i.unicode = Il(t.unicode, !1), i.tokenPostfix = El(t.tokenPostfix, \".\" + i.languageId), i.defaultToken = El(t.defaultToken, \"source\"), i.usesEmbedded = !1;\n                        let n = t;\n\n                        function o(e, s, r) {\n                            for (const a of r) {\n                                let r = a.include;\n                                if (r) {\n                                    if (\"string\" != typeof r) throw jt(i, \"an 'include' attribute must be a string at: \" + e);\n                                    if (\"@\" === r[0] && (r = r.substr(1)), !t.tokenizer[r]) throw jt(i, \"include target '\" + r + \"' is not defined at: \" + e);\n                                    o(e + \".\" + r, s, t.tokenizer[r])\n                                } else {\n                                    const t = new Pl(e);\n                                    if (Array.isArray(a) && a.length >= 1 && a.length <= 3)\n                                        if (t.setRegex(n, a[0]), a.length >= 3)\n                                            if (\"string\" == typeof a[1]) t.setAction(n, {\n                                                token: a[1],\n                                                next: a[2]\n                                            });\n                                            else {\n                                                if (\"object\" != typeof a[1]) throw jt(i, \"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: \" + e); {\n                                                    const e = a[1];\n                                                    e.next = a[2], t.setAction(n, e)\n                                                }\n                                            }\n                                    else t.setAction(n, a[1]);\n                                    else {\n                                        if (!a.regex) throw jt(i, \"a rule must either be an array, or an object with a 'regex' or 'include' field at: \" + e);\n                                        a.name && \"string\" == typeof a.name && (t.name = a.name), a.matchOnlyAtStart && (t.matchOnlyAtLineStart = Il(a.matchOnlyAtLineStart, !1)), t.setRegex(n, a.regex), t.setAction(n, a.action)\n                                    }\n                                    s.push(t)\n                                }\n                            }\n                        }\n                        if (n.languageId = e, n.includeLF = i.includeLF, n.ignoreCase = i.ignoreCase, n.unicode = i.unicode, n.noThrow = i.noThrow, n.usesEmbedded = i.usesEmbedded, n.stateNames = t.tokenizer, n.defaultToken = i.defaultToken, !t.tokenizer || \"object\" != typeof t.tokenizer) throw jt(i, \"a language definition must define the 'tokenizer' attribute as an object\");\n                        i.tokenizer = [];\n                        for (let e in t.tokenizer)\n                            if (t.tokenizer.hasOwnProperty(e)) {\n                                i.start || (i.start = e);\n                                const n = t.tokenizer[e];\n                                i.tokenizer[e] = new Array, o(\"tokenizer.\" + e, i.tokenizer[e], n)\n                            } if (i.usesEmbedded = n.usesEmbedded, t.brackets) {\n                            if (!Array.isArray(t.brackets)) throw jt(i, \"the 'brackets' attribute must be defined as an array\")\n                        } else t.brackets = [{\n                            open: \"{\",\n                            close: \"}\",\n                            token: \"delimiter.curly\"\n                        }, {\n                            open: \"[\",\n                            close: \"]\",\n                            token: \"delimiter.square\"\n                        }, {\n                            open: \"(\",\n                            close: \")\",\n                            token: \"delimiter.parenthesis\"\n                        }, {\n                            open: \"<\",\n                            close: \">\",\n                            token: \"delimiter.angle\"\n                        }];\n                        let s = [];\n                        for (let e of t.brackets) {\n                            let t = e;\n                            if (t && Array.isArray(t) && 3 === t.length && (t = {\n                                    token: t[2],\n                                    open: t[0],\n                                    close: t[1]\n                                }), t.open === t.close) throw jt(i, \"open and close brackets in a 'brackets' attribute must be different: \" + t.open + \"\\n hint: use the 'bracket' attribute if matching on equal brackets is required.\");\n                            if (\"string\" != typeof t.open || \"string\" != typeof t.token || \"string\" != typeof t.close) throw jt(i, \"every element in the 'brackets' array must be a '{open,close,token}' object or array\");\n                            s.push({\n                                token: t.token + i.tokenPostfix,\n                                open: Ht(i, t.open),\n                                close: Ht(i, t.close)\n                            })\n                        }\n                        return i.brackets = s, i.noThrow = !0, i\n                    }(e, t));\n                    return jl(t) ? be.RW.registerPromise(e, t.then((e => i(e)))) : be.RW.register(e, i(t))\n                }\n\n                function ql(e, t) {\n                    return be.FL.register(e, t)\n                }\n\n                function Zl(e, t) {\n                    return be.G0.register(e, t)\n                }\n\n                function Gl(e, t) {\n                    return be.nD.register(e, t)\n                }\n\n                function Yl(e, t) {\n                    return be.xp.register(e, {\n                        provideHover: (e, i, n) => {\n                            let o = e.getWordAtPosition(i);\n                            return Promise.resolve(t.provideHover(e, i, n)).then((e => {\n                                if (e) return !e.range && o && (e.range = new U.e(i.lineNumber, o.startColumn, i.lineNumber, o.endColumn)), e.range || (e.range = new U.e(i.lineNumber, i.column, i.lineNumber, i.column)), e\n                            }))\n                        }\n                    })\n                }\n\n                function Ql(e, t) {\n                    return be.vJ.register(e, t)\n                }\n\n                function Xl(e, t) {\n                    return be.vH.register(e, t)\n                }\n\n                function Jl(e, t) {\n                    return be.id.register(e, t)\n                }\n\n                function ec(e, t) {\n                    return be.Ct.register(e, t)\n                }\n\n                function tc(e, t) {\n                    return be.vI.register(e, t)\n                }\n\n                function ic(e, t) {\n                    return be.tA.register(e, t)\n                }\n\n                function nc(e, t) {\n                    return be.He.register(e, t)\n                }\n\n                function oc(e, t, i) {\n                    return be.H9.register(e, {\n                        providedCodeActionKinds: null == i ? void 0 : i.providedCodeActionKinds,\n                        provideCodeActions: (e, i, n, o) => {\n                            let s = nl.markerService.get().read({\n                                resource: e.uri\n                            }).filter((e => U.e.areIntersectingOrTouching(e, i)));\n                            return t.provideCodeActions(e, i, {\n                                markers: s,\n                                only: n.only\n                            }, o)\n                        },\n                        resolveCodeAction: t.resolveCodeAction\n                    })\n                }\n\n                function sc(e, t) {\n                    return be.Az.register(e, t)\n                }\n\n                function rc(e, t) {\n                    return be.vN.register(e, t)\n                }\n\n                function ac(e, t) {\n                    return be.ln.register(e, t)\n                }\n\n                function lc(e, t) {\n                    return be.pM.register(e, t)\n                }\n\n                function cc(e, t) {\n                    return be.KZ.register(e, t)\n                }\n\n                function dc(e, t) {\n                    return be.OH.register(e, t)\n                }\n\n                function hc(e, t) {\n                    return be.aC.register(e, t)\n                }\n\n                function uc(e, t) {\n                    return be.RN.register(e, t)\n                }\n\n                function gc(e, t) {\n                    return be.AC.register(e, t)\n                }\n\n                function pc(e, t) {\n                    return be.wT.register(e, t)\n                }\n\n                function fc(e, t) {\n                    return be.K7.register(e, t)\n                }\n\n                function mc(e, t) {\n                    return be.zu.register(e, t)\n                }\n\n                function vc(e, t) {\n                    return be.mX.register(e, t)\n                }\n                var _c, bc = i(23606);\n                B.BH.wrappingIndent.defaultValue = 0, B.BH.glyphMargin.defaultValue = !1, B.BH.autoIndent.defaultValue = 3, B.BH.overviewRulerLanes.defaultValue = 2, bc.xC.setFormatterSelector(((e, t, i) => Promise.resolve(e[0])));\n                const wc = Z();\n                wc.editor = {\n                    create: rl,\n                    onDidCreateEditor: al,\n                    createDiffEditor: ll,\n                    createDiffNavigator: cl,\n                    createModel: dl,\n                    setModelLanguage: hl,\n                    setModelMarkers: ul,\n                    getModelMarkers: gl,\n                    onDidChangeMarkers: pl,\n                    getModels: ml,\n                    getModel: fl,\n                    onDidCreateModel: vl,\n                    onWillDisposeModel: _l,\n                    onDidChangeModelLanguage: bl,\n                    createWebWorker: wl,\n                    colorizeElement: yl,\n                    colorize: Cl,\n                    colorizeModelLine: xl,\n                    tokenize: Sl,\n                    defineTheme: kl,\n                    setTheme: Ll,\n                    remeasureFonts: Nl,\n                    registerCommand: Dl,\n                    AccessibilitySupport: n,\n                    ContentWidgetPositionPreference: l,\n                    CursorChangeReason: c,\n                    DefaultEndOfLine: d,\n                    EditorAutoIndentStrategy: u,\n                    EditorOption: g,\n                    EndOfLinePreference: p,\n                    EndOfLineSequence: f,\n                    MinimapPosition: C,\n                    MouseTargetType: x,\n                    OverlayWidgetPositionPreference: S,\n                    OverviewRulerLane: k,\n                    RenderLineNumbersType: L,\n                    RenderMinimap: N,\n                    ScrollbarVisibility: I,\n                    ScrollType: D,\n                    TextEditorCursorBlinkingStyle: O,\n                    TextEditorCursorStyle: P,\n                    TrackedRangeStickiness: R,\n                    WrappingIndent: F,\n                    ConfigurationChangedEvent: B.Bb,\n                    BareFontInfo: me.E4,\n                    FontInfo: me.pR,\n                    TextModelResolvedOptions: _e.dJ,\n                    FindMatch: _e.tk,\n                    EditorType: ve.g,\n                    EditorOptions: B.BH\n                }, wc.languages = {\n                    register: Rl,\n                    getLanguages: Fl,\n                    onLanguage: Vl,\n                    getEncodedLanguageId: Bl,\n                    setLanguageConfiguration: Wl,\n                    setColorMap: Ul,\n                    setTokensProvider: $l,\n                    setMonarchTokensProvider: Kl,\n                    registerReferenceProvider: ql,\n                    registerRenameProvider: Zl,\n                    registerCompletionItemProvider: cc,\n                    registerSignatureHelpProvider: Gl,\n                    registerHoverProvider: Yl,\n                    registerDocumentSymbolProvider: Ql,\n                    registerDocumentHighlightProvider: Xl,\n                    registerLinkedEditingRangeProvider: Jl,\n                    registerDefinitionProvider: ec,\n                    registerImplementationProvider: tc,\n                    registerTypeDefinitionProvider: ic,\n                    registerCodeLensProvider: nc,\n                    registerCodeActionProvider: oc,\n                    registerDocumentFormattingEditProvider: sc,\n                    registerDocumentRangeFormattingEditProvider: rc,\n                    registerOnTypeFormattingEditProvider: ac,\n                    registerLinkProvider: lc,\n                    registerColorProvider: dc,\n                    registerFoldingRangeProvider: hc,\n                    registerDeclarationProvider: uc,\n                    registerSelectionRangeProvider: gc,\n                    registerDocumentSemanticTokensProvider: pc,\n                    registerDocumentRangeSemanticTokensProvider: fc,\n                    registerInlineCompletionsProvider: mc,\n                    registerInlayHintsProvider: vc,\n                    DocumentHighlightKind: h,\n                    CompletionItemKind: s,\n                    CompletionItemTag: r,\n                    CompletionItemInsertTextRule: o,\n                    SymbolKind: M,\n                    SymbolTag: A,\n                    IndentAction: m,\n                    CompletionTriggerKind: a,\n                    SignatureHelpTriggerKind: T,\n                    InlayHintKind: v,\n                    InlineCompletionTriggerKind: _,\n                    FoldingRangeKind: be.AD\n                };\n                wc.CancellationTokenSource, wc.Emitter;\n                const yc = wc.KeyCode,\n                    Cc = wc.KeyMod,\n                    xc = (wc.Position, wc.Range, wc.Selection),\n                    Sc = (wc.SelectionDirection, wc.MarkerSeverity, wc.MarkerTag, wc.Uri, wc.Token, wc.editor),\n                    kc = wc.languages;\n                ((null === (_c = Le.li.MonacoEnvironment) || void 0 === _c ? void 0 : _c.globalAPI) || \"function\" == typeof define && i.amdO) && (self.monaco = wc), void 0 !== self.require && \"function\" == typeof self.require.config && self.require.config({\n                    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\"]\n                })\n            },\n            29477: (e, t, i) => {\n                \"use strict\";\n                i.r(t);\n                i(74617);\n                var n = i(65321),\n                    o = i(38626),\n                    s = i(48764),\n                    r = i(85152),\n                    a = i(93794),\n                    l = i(5976),\n                    c = i(1432),\n                    d = i(97295),\n                    h = i(70666),\n                    u = i(16830),\n                    g = i(29102),\n                    p = i(19720),\n                    f = i(38819),\n                    m = i(72065),\n                    v = i(91847),\n                    _ = i(50988),\n                    b = i(73910),\n                    w = i(97781),\n                    y = i(20913),\n                    C = function(e, t, i, n) {\n                        var o, s = arguments.length,\n                            r = s < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n                        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) r = Reflect.decorate(e, t, i, n);\n                        else\n                            for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (r = (s < 3 ? o(r) : s > 3 ? o(t, i, r) : o(t, i)) || r);\n                        return s > 3 && r && Object.defineProperty(t, i, r), r\n                    },\n                    x = function(e, t) {\n                        return function(i, n) {\n                            t(i, n, e)\n                        }\n                    };\n                const S = new f.uy(\"accessibilityHelpWidgetVisible\", !1);\n                let k = class e extends l.JT {\n                    constructor(e, t) {\n                        super(), this._editor = e, this._widget = this._register(t.createInstance(L, this._editor))\n                    }\n                    static get(t) {\n                        return t.getContribution(e.ID)\n                    }\n                    show() {\n                        this._widget.show()\n                    }\n                    hide() {\n                        this._widget.hide()\n                    }\n                };\n                k.ID = \"editor.contrib.accessibilityHelpController\", k = C([x(1, m.TG)], k);\n                let L = class e extends a.$ {\n                    constructor(e, t, i, s) {\n                        super(), this._contextKeyService = t, this._keybindingService = i, this._openerService = s, this._editor = e, this._isVisibleKey = S.bindTo(this._contextKeyService), this._domNode = (0, o.X)(document.createElement(\"div\")), this._domNode.setClassName(\"accessibilityHelpWidget\"), this._domNode.setDisplay(\"none\"), this._domNode.setAttribute(\"role\", \"dialog\"), this._domNode.setAttribute(\"aria-hidden\", \"true\"), this._contentDomNode = (0, o.X)(document.createElement(\"div\")), this._contentDomNode.setAttribute(\"role\", \"document\"), this._domNode.appendChild(this._contentDomNode), this._isVisible = !1, this._register(this._editor.onDidLayoutChange((() => {\n                            this._isVisible && this._layout()\n                        }))), this._register(n.mu(this._contentDomNode.domNode, \"keydown\", (e => {\n                            if (this._isVisible && (e.equals(2083) && ((0, r.Z9)(y.Oe.emergencyConfOn), this._editor.updateOptions({\n                                    accessibilitySupport: \"on\"\n                                }), n.PO(this._contentDomNode.domNode), this._buildContent(), this._contentDomNode.domNode.focus(), e.preventDefault(), e.stopPropagation()), e.equals(2086))) {\n                                (0, r.Z9)(y.Oe.openingDocs);\n                                let t = this._editor.getRawOptions().accessibilityHelpUrl;\n                                void 0 === t && (t = \"https://go.microsoft.com/fwlink/?linkid=852450\"), this._openerService.open(h.o.parse(t)), e.preventDefault(), e.stopPropagation()\n                            }\n                        }))), this.onblur(this._contentDomNode.domNode, (() => {\n                            this.hide()\n                        })), this._editor.addOverlayWidget(this)\n                    }\n                    dispose() {\n                        this._editor.removeOverlayWidget(this), super.dispose()\n                    }\n                    getId() {\n                        return e.ID\n                    }\n                    getDomNode() {\n                        return this._domNode.domNode\n                    }\n                    getPosition() {\n                        return {\n                            preference: null\n                        }\n                    }\n                    show() {\n                        this._isVisible || (this._isVisible = !0, this._isVisibleKey.set(!0), this._layout(), this._domNode.setDisplay(\"block\"), this._domNode.setAttribute(\"aria-hidden\", \"false\"), this._contentDomNode.domNode.tabIndex = 0, this._buildContent(), this._contentDomNode.domNode.focus())\n                    }\n                    _descriptionForCommand(e, t, i) {\n                        let n = this._keybindingService.lookupKeybinding(e);\n                        return n ? d.WU(t, n.getAriaLabel()) : d.WU(i, e)\n                    }\n                    _buildContent() {\n                        const e = this._editor.getOptions(),\n                            t = this._editor.getSelections();\n                        let i = 0;\n                        if (t) {\n                            const e = this._editor.getModel();\n                            e && t.forEach((t => {\n                                i += e.getValueLengthInRange(t)\n                            }))\n                        }\n                        let n = function(e, t) {\n                            return e && 0 !== e.length ? 1 === e.length ? t ? d.WU(y.Oe.singleSelectionRange, e[0].positionLineNumber, e[0].positionColumn, t) : d.WU(y.Oe.singleSelection, e[0].positionLineNumber, e[0].positionColumn) : t ? d.WU(y.Oe.multiSelectionRange, e.length, t) : e.length > 0 ? d.WU(y.Oe.multiSelection, e.length) : \"\" : y.Oe.noSelection\n                        }(t, i);\n                        e.get(53) ? e.get(80) ? n += y.Oe.readonlyDiffEditor : n += y.Oe.editableDiffEditor : e.get(80) ? n += y.Oe.readonlyEditor : n += y.Oe.editableEditor;\n                        const o = c.dz ? y.Oe.changeConfigToOnMac : y.Oe.changeConfigToOnWinLinux;\n                        switch (e.get(2)) {\n                            case 0:\n                                n += \"\\n\\n - \" + o;\n                                break;\n                            case 2:\n                                n += \"\\n\\n - \" + y.Oe.auto_on;\n                                break;\n                            case 1:\n                                n += \"\\n\\n - \" + y.Oe.auto_off, n += \" \" + o\n                        }\n                        e.get(128) ? n += \"\\n\\n - \" + this._descriptionForCommand(p.ToggleTabFocusModeAction.ID, y.Oe.tabFocusModeOnMsg, y.Oe.tabFocusModeOnMsgNoKb) : n += \"\\n\\n - \" + this._descriptionForCommand(p.ToggleTabFocusModeAction.ID, y.Oe.tabFocusModeOffMsg, y.Oe.tabFocusModeOffMsgNoKb);\n                        n += \"\\n\\n - \" + (c.dz ? y.Oe.openDocMac : y.Oe.openDocWinLinux), n += \"\\n\\n\" + y.Oe.outroMsg, this._contentDomNode.domNode.appendChild((0, s.BO)(n)), this._contentDomNode.domNode.setAttribute(\"aria-label\", n)\n                    }\n                    hide() {\n                        this._isVisible && (this._isVisible = !1, this._isVisibleKey.reset(), this._domNode.setDisplay(\"none\"), this._domNode.setAttribute(\"aria-hidden\", \"true\"), this._contentDomNode.domNode.tabIndex = -1, n.PO(this._contentDomNode.domNode), this._editor.focus())\n                    }\n                    _layout() {\n                        let t = this._editor.getLayoutInfo(),\n                            i = Math.max(5, Math.min(e.WIDTH, t.width - 40)),\n                            n = Math.max(5, Math.min(e.HEIGHT, t.height - 40));\n                        this._domNode.setWidth(i), this._domNode.setHeight(n);\n                        let o = Math.round((t.height - n) / 2);\n                        this._domNode.setTop(o);\n                        let s = Math.round((t.width - i) / 2);\n                        this._domNode.setLeft(s)\n                    }\n                };\n                L.ID = \"editor.contrib.accessibilityHelpWidget\", L.WIDTH = 500, L.HEIGHT = 300, L = C([x(1, f.i6), x(2, v.d), x(3, _.v4)], L);\n                class N extends u.R6 {\n                    constructor() {\n                        super({\n                            id: \"editor.action.showAccessibilityHelp\",\n                            label: y.Oe.showAccessibilityHelpAction,\n                            alias: \"Show Accessibility Help\",\n                            precondition: void 0,\n                            kbOpts: {\n                                primary: 571,\n                                weight: 100,\n                                linux: {\n                                    primary: 1595,\n                                    secondary: [571]\n                                }\n                            }\n                        })\n                    }\n                    run(e, t) {\n                        let i = k.get(t);\n                        i && i.show()\n                    }\n                }(0, u._K)(k.ID, k), (0, u.Qr)(N);\n                const D = u._l.bindToContribution(k.get);\n                (0, u.fK)(new D({\n                    id: \"closeAccessibilityHelp\",\n                    precondition: S,\n                    handler: e => e.hide(),\n                    kbOpts: {\n                        weight: 200,\n                        kbExpr: g.u.focus,\n                        primary: 9,\n                        secondary: [1033]\n                    }\n                })), (0, w.Ic)(((e, t) => {\n                    const i = e.getColor(b.D0);\n                    i && t.addRule(`.monaco-editor .accessibilityHelpWidget { background-color: ${i}; }`);\n                    const n = e.getColor(b.Hf);\n                    n && t.addRule(`.monaco-editor .accessibilityHelpWidget { color: ${n}; }`);\n                    const o = e.getColor(b.rh);\n                    o && t.addRule(`.monaco-editor .accessibilityHelpWidget { box-shadow: 0 2px 8px ${o}; }`);\n                    const s = e.getColor(b.lR);\n                    s && t.addRule(`.monaco-editor .accessibilityHelpWidget { border: 2px solid ${s}; }`)\n                }))\n            },\n            19646: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    IPadShowKeyboard: () => a\n                });\n                i(77203);\n                var n = i(65321),\n                    o = i(5976),\n                    s = i(16830),\n                    r = i(1432);\n                class a extends o.JT {\n                    constructor(e) {\n                        super(), this.editor = e, this.widget = null, r.gn && (this._register(e.onDidChangeConfiguration((() => this.update()))), this.update())\n                    }\n                    update() {\n                        const e = !this.editor.getOption(80);\n                        !this.widget && e ? this.widget = new l(this.editor) : this.widget && !e && (this.widget.dispose(), this.widget = null)\n                    }\n                    dispose() {\n                        super.dispose(), this.widget && (this.widget.dispose(), this.widget = null)\n                    }\n                }\n                a.ID = \"editor.contrib.iPadShowKeyboard\";\n                class l extends o.JT {\n                    constructor(e) {\n                        super(), this.editor = e, this._domNode = document.createElement(\"textarea\"), this._domNode.className = \"iPadShowKeyboard\", this._register(n.nm(this._domNode, \"touchstart\", (e => {\n                            this.editor.focus()\n                        }))), this._register(n.nm(this._domNode, \"focus\", (e => {\n                            this.editor.focus()\n                        }))), this.editor.addOverlayWidget(this)\n                    }\n                    dispose() {\n                        this.editor.removeOverlayWidget(this), super.dispose()\n                    }\n                    getId() {\n                        return l.ID\n                    }\n                    getDomNode() {\n                        return this._domNode\n                    }\n                    getPosition() {\n                        return {\n                            preference: 1\n                        }\n                    }\n                }\n                l.ID = \"editor.contrib.ShowKeyboardWidget\", (0, s._K)(a.ID, a)\n            },\n            97830: (e, t, i) => {\n                \"use strict\";\n                i.r(t);\n                i(7587);\n                var n = i(65321),\n                    o = i(41264),\n                    s = i(5976),\n                    r = i(16830),\n                    a = i(44101),\n                    l = i(28111),\n                    c = i(71531),\n                    d = i(12095),\n                    h = i(73910),\n                    u = i(97781),\n                    g = i(20913),\n                    p = i(92321),\n                    f = function(e, t, i, n) {\n                        var o, s = arguments.length,\n                            r = s < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n                        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) r = Reflect.decorate(e, t, i, n);\n                        else\n                            for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (r = (s < 3 ? o(r) : s > 3 ? o(t, i, r) : o(t, i)) || r);\n                        return s > 3 && r && Object.defineProperty(t, i, r), r\n                    },\n                    m = function(e, t) {\n                        return function(i, n) {\n                            t(i, n, e)\n                        }\n                    };\n                let v = class e extends s.JT {\n                    constructor(e, t, i) {\n                        super(), this._editor = e, this._modeService = i, this._widget = null, this._register(this._editor.onDidChangeModel((e => this.stop()))), this._register(this._editor.onDidChangeModelLanguage((e => this.stop()))), this._register(a.RW.onDidChange((e => this.stop()))), this._register(this._editor.onKeyUp((e => 9 === e.keyCode && this.stop())))\n                    }\n                    static get(t) {\n                        return t.getContribution(e.ID)\n                    }\n                    dispose() {\n                        this.stop(), super.dispose()\n                    }\n                    launch() {\n                        this._widget || this._editor.hasModel() && (this._widget = new b(this._editor, this._modeService))\n                    }\n                    stop() {\n                        this._widget && (this._widget.dispose(), this._widget = null)\n                    }\n                };\n                v.ID = \"editor.contrib.inspectTokens\", v = f([m(1, d.Z), m(2, c.h)], v);\n                class _ extends r.R6 {\n                    constructor() {\n                        super({\n                            id: \"editor.action.inspectTokens\",\n                            label: g.ug.inspectTokensAction,\n                            alias: \"Developer: Inspect Tokens\",\n                            precondition: void 0\n                        })\n                    }\n                    run(e, t) {\n                        let i = v.get(t);\n                        i && i.launch()\n                    }\n                }\n                class b extends s.JT {\n                    constructor(e, t) {\n                        super(), this.allowEditorOverflow = !0, this._editor = e, this._modeService = t, this._model = this._editor.getModel(), this._domNode = document.createElement(\"div\"), this._domNode.className = \"tokens-inspect-widget\", this._tokenizationSupport = function(e, t) {\n                            const i = a.RW.get(t);\n                            if (i) return i;\n                            const n = e.encodeLanguageId(t);\n                            return {\n                                getInitialState: () => l.nO,\n                                tokenize: (e, i, n, o) => (0, l.Ri)(t, e, n, o),\n                                tokenize2: (e, t, i, o) => (0, l.mh)(n, e, i, o)\n                            }\n                        }(this._modeService.languageIdCodec, this._model.getLanguageId()), this._compute(this._editor.getPosition()), this._register(this._editor.onDidChangeCursorPosition((e => this._compute(this._editor.getPosition())))), this._editor.addContentWidget(this)\n                    }\n                    dispose() {\n                        this._editor.removeContentWidget(this), super.dispose()\n                    }\n                    getId() {\n                        return b._ID\n                    }\n                    _compute(e) {\n                        let t = this._getTokensAtLine(e.lineNumber),\n                            i = 0;\n                        for (let n = t.tokens1.length - 1; n >= 0; n--) {\n                            let o = t.tokens1[n];\n                            if (e.column - 1 >= o.offset) {\n                                i = n;\n                                break\n                            }\n                        }\n                        let s = 0;\n                        for (let i = t.tokens2.length >>> 1; i >= 0; i--)\n                            if (e.column - 1 >= t.tokens2[i << 1]) {\n                                s = i;\n                                break\n                            } let r = this._model.getLineContent(e.lineNumber),\n                            a = \"\";\n                        if (i < t.tokens1.length) {\n                            let e = t.tokens1[i].offset,\n                                n = i + 1 < t.tokens1.length ? t.tokens1[i + 1].offset : r.length;\n                            a = r.substring(e, n)\n                        }(0, n.mc)(this._domNode, (0, n.$)(\"h2.tm-token\", void 0, function(e) {\n                            let t = \"\";\n                            for (let i = 0, n = e.length; i < n; i++) {\n                                let n = e.charCodeAt(i);\n                                switch (n) {\n                                    case 9:\n                                        t += \"→\";\n                                        break;\n                                    case 32:\n                                        t += \"·\";\n                                        break;\n                                    default:\n                                        t += String.fromCharCode(n)\n                                }\n                            }\n                            return t\n                        }(a), (0, n.$)(\"span.tm-token-length\", void 0, `${a.length} ${1===a.length?\"char\":\"chars\"}`))), (0, n.R3)(this._domNode, (0, n.$)(\"hr.tokens-inspect-separator\", {\n                            style: \"clear:both\"\n                        }));\n                        const l = 1 + (s << 1) < t.tokens2.length ? this._decodeMetadata(t.tokens2[1 + (s << 1)]) : null;\n                        (0, n.R3)(this._domNode, (0, n.$)(\"table.tm-metadata-table\", void 0, (0, n.$)(\"tbody\", void 0, (0, n.$)(\"tr\", void 0, (0, n.$)(\"td.tm-metadata-key\", void 0, \"language\"), (0, n.$)(\"td.tm-metadata-value\", void 0, `${l?l.languageId:\"-?-\"}`)), (0, n.$)(\"tr\", void 0, (0, n.$)(\"td.tm-metadata-key\", void 0, \"token type\"), (0, n.$)(\"td.tm-metadata-value\", void 0, `${l?this._tokenTypeToString(l.tokenType):\"-?-\"}`)), (0, n.$)(\"tr\", void 0, (0, n.$)(\"td.tm-metadata-key\", void 0, \"font style\"), (0, n.$)(\"td.tm-metadata-value\", void 0, `${l?this._fontStyleToString(l.fontStyle):\"-?-\"}`)), (0, n.$)(\"tr\", void 0, (0, n.$)(\"td.tm-metadata-key\", void 0, \"foreground\"), (0, n.$)(\"td.tm-metadata-value\", void 0, `${l?o.Il.Format.CSS.formatHex(l.foreground):\"-?-\"}`)), (0, n.$)(\"tr\", void 0, (0, n.$)(\"td.tm-metadata-key\", void 0, \"background\"), (0, n.$)(\"td.tm-metadata-value\", void 0, `${l?o.Il.Format.CSS.formatHex(l.background):\"-?-\"}`))))), (0, n.R3)(this._domNode, (0, n.$)(\"hr.tokens-inspect-separator\")), i < t.tokens1.length && (0, n.R3)(this._domNode, (0, n.$)(\"span.tm-token-type\", void 0, t.tokens1[i].type)), this._editor.layoutContentWidget(this)\n                    }\n                    _decodeMetadata(e) {\n                        let t = a.RW.getColorMap(),\n                            i = a.NX.getLanguageId(e),\n                            n = a.NX.getTokenType(e),\n                            o = a.NX.getFontStyle(e),\n                            s = a.NX.getForeground(e),\n                            r = a.NX.getBackground(e);\n                        return {\n                            languageId: this._modeService.languageIdCodec.decodeLanguageId(i),\n                            tokenType: n,\n                            fontStyle: o,\n                            foreground: t[s],\n                            background: t[r]\n                        }\n                    }\n                    _tokenTypeToString(e) {\n                        switch (e) {\n                            case 0:\n                                return \"Other\";\n                            case 1:\n                                return \"Comment\";\n                            case 2:\n                                return \"String\";\n                            case 4:\n                                return \"RegEx\";\n                            default:\n                                return \"??\"\n                        }\n                    }\n                    _fontStyleToString(e) {\n                        let t = \"\";\n                        return 1 & e && (t += \"italic \"), 2 & e && (t += \"bold \"), 4 & e && (t += \"underline \"), 0 === t.length && (t = \"---\"), t\n                    }\n                    _getTokensAtLine(e) {\n                        let t = this._getStateBeforeLine(e),\n                            i = this._tokenizationSupport.tokenize(this._model.getLineContent(e), !0, t, 0),\n                            n = this._tokenizationSupport.tokenize2(this._model.getLineContent(e), !0, t, 0);\n                        return {\n                            startState: t,\n                            tokens1: i.tokens,\n                            tokens2: n.tokens,\n                            endState: i.endState\n                        }\n                    }\n                    _getStateBeforeLine(e) {\n                        let t = this._tokenizationSupport.getInitialState();\n                        for (let i = 1; i < e; i++) {\n                            t = this._tokenizationSupport.tokenize(this._model.getLineContent(i), !0, t, 0).endState\n                        }\n                        return t\n                    }\n                    getDomNode() {\n                        return this._domNode\n                    }\n                    getPosition() {\n                        return {\n                            position: this._editor.getPosition(),\n                            preference: [2, 1]\n                        }\n                    }\n                }\n                b._ID = \"editor.contrib.inspectTokensWidget\", (0, r._K)(v.ID, v), (0, r.Qr)(_), (0, u.Ic)(((e, t) => {\n                    const i = e.getColor(h.CN);\n                    if (i) {\n                        let n = e.type === p.e.HIGH_CONTRAST ? 2 : 1;\n                        t.addRule(`.monaco-editor .tokens-inspect-widget { border: ${n}px solid ${i}; }`), t.addRule(`.monaco-editor .tokens-inspect-widget .tokens-inspect-separator { background-color: ${i}; }`)\n                    }\n                    const n = e.getColor(h.yJ);\n                    n && t.addRule(`.monaco-editor .tokens-inspect-widget { background-color: ${n}; }`);\n                    const o = e.getColor(h.Sb);\n                    o && t.addRule(`.monaco-editor .tokens-inspect-widget { color: ${o}; }`)\n                }))\n            },\n            97720: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    GotoLineAction: () => K,\n                    StandaloneCommandsQuickAccessProvider: () => $\n                });\n                var n = i(89872),\n                    o = i(90725),\n                    s = i(20913),\n                    r = i(11640),\n                    a = i(21212),\n                    l = i(9488),\n                    c = i(98401),\n                    d = i(63580);\n\n                function h(e, t) {\n                    return t && (e.stack || e.stacktrace) ? d.N(\"stackTrace.format\", \"{0}: {1}\", g(e), u(e.stack) || u(e.stacktrace)) : g(e)\n                }\n\n                function u(e) {\n                    return Array.isArray(e) ? e.join(\"\\n\") : e\n                }\n\n                function g(e) {\n                    return \"string\" == typeof e.code && \"number\" == typeof e.errno && \"string\" == typeof e.syscall ? d.N(\"nodeExceptionMessage\", \"A system error occurred ({0})\", e.message) : e.message || d.N(\"error.defaultMessage\", \"An unknown error occurred. Please consult the log for more details.\")\n                }\n\n                function p(e = null, t = !1) {\n                    if (!e) return d.N(\"error.defaultMessage\", \"An unknown error occurred. Please consult the log for more details.\");\n                    if (Array.isArray(e)) {\n                        const i = l.kX(e),\n                            n = p(i[0], t);\n                        return i.length > 1 ? d.N(\"error.moreErrors\", \"{0} ({1} errors in total)\", n, i.length) : n\n                    }\n                    if (c.HD(e)) return e;\n                    if (e.detail) {\n                        const i = e.detail;\n                        if (i.error) return h(i.error, t);\n                        if (i.exception) return h(i.exception, t)\n                    }\n                    return e.stack ? h(e, t) : e.message ? e.message : d.N(\"error.defaultMessage\", \"An unknown error occurred. Please consult the log for more details.\")\n                }\n                var f, m = i(17301),\n                    v = i(75392),\n                    _ = i(5976),\n                    b = i(43702),\n                    w = i(14603),\n                    y = i(94565),\n                    C = i(33108),\n                    x = i(28820),\n                    S = i(72065),\n                    k = i(91847),\n                    L = i(15393),\n                    N = i(71050),\n                    D = function(e, t, i, n) {\n                        return new(i || (i = Promise))((function(o, s) {\n                            function r(e) {\n                                try {\n                                    l(n.next(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function a(e) {\n                                try {\n                                    l(n.throw(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function l(e) {\n                                var t;\n                                e.done ? o(e.value) : (t = e.value, t instanceof i ? t : new i((function(e) {\n                                    e(t)\n                                }))).then(r, a)\n                            }\n                            l((n = n.apply(e, t || [])).next())\n                        }))\n                    };\n\n                function I(e) {\n                    const t = e;\n                    return Array.isArray(t.items)\n                }! function(e) {\n                    e[e.NO_ACTION = 0] = \"NO_ACTION\", e[e.CLOSE_PICKER = 1] = \"CLOSE_PICKER\", e[e.REFRESH_PICKER = 2] = \"REFRESH_PICKER\", e[e.REMOVE_ITEM = 3] = \"REMOVE_ITEM\"\n                }(f || (f = {}));\n                class E extends _.JT {\n                    constructor(e, t) {\n                        super(), this.prefix = e, this.options = t\n                    }\n                    provide(e, t) {\n                        var i;\n                        const n = new _.SL;\n                        let o;\n                        e.canAcceptInBackground = !!(null === (i = this.options) || void 0 === i ? void 0 : i.canAcceptInBackground), e.matchOnLabel = e.matchOnDescription = e.matchOnDetail = e.sortByLabel = !1;\n                        const s = n.add(new _.XK),\n                            r = () => D(this, void 0, void 0, (function*() {\n                                const i = s.value = new _.SL;\n                                null == o || o.dispose(!0), e.busy = !1, o = new N.A(t);\n                                const n = o.token,\n                                    r = e.value.substr(this.prefix.length).trim(),\n                                    a = this._getPicks(r, i, n),\n                                    l = (t, i) => {\n                                        var n;\n                                        let o, s;\n                                        if (I(t) ? (o = t.items, s = t.active) : o = t, 0 === o.length) {\n                                            if (i) return !1;\n                                            r.length > 0 && (null === (n = this.options) || void 0 === n ? void 0 : n.noResultsPick) && (o = [this.options.noResultsPick])\n                                        }\n                                        return e.items = o, s && (e.activeItems = [s]), !0\n                                    };\n                                if (null === a);\n                                else if (function(e) {\n                                        const t = e;\n                                        return !!t.picks && t.additionalPicks instanceof Promise\n                                    }(a)) {\n                                    let t = !1,\n                                        i = !1;\n                                    yield Promise.all([(() => D(this, void 0, void 0, (function*() {\n                                        yield(0, L.Vs)(E.FAST_PICKS_RACE_DELAY), n.isCancellationRequested || i || (t = l(a.picks, !0))\n                                    })))(), (() => D(this, void 0, void 0, (function*() {\n                                        e.busy = !0;\n                                        try {\n                                            const i = yield a.additionalPicks;\n                                            if (n.isCancellationRequested) return;\n                                            let o, s, r, c;\n                                            if (I(a.picks) ? (o = a.picks.items, s = a.picks.active) : o = a.picks, I(i) ? (r = i.items, c = i.active) : r = i, r.length > 0 || !t) {\n                                                let t;\n                                                if (!s && !c) {\n                                                    const i = e.activeItems[0];\n                                                    i && -1 !== o.indexOf(i) && (t = i)\n                                                }\n                                                l({\n                                                    items: [...o, ...r],\n                                                    active: s || c || t\n                                                })\n                                            }\n                                        } finally {\n                                            n.isCancellationRequested || (e.busy = !1), i = !0\n                                        }\n                                    })))()])\n                                } else if (a instanceof Promise) {\n                                    e.busy = !0;\n                                    try {\n                                        const e = yield a;\n                                        if (n.isCancellationRequested) return;\n                                        l(e)\n                                    } finally {\n                                        n.isCancellationRequested || (e.busy = !1)\n                                    }\n                                } else l(a)\n                            }));\n                        return n.add(e.onDidChangeValue((() => r()))), r(), n.add(e.onDidAccept((t => {\n                            const [i] = e.selectedItems;\n                            \"function\" == typeof(null == i ? void 0 : i.accept) && (t.inBackground || e.hide(), i.accept(e.keyMods, t))\n                        }))), n.add(e.onDidTriggerItemButton((({\n                            button: i,\n                            item: n\n                        }) => D(this, void 0, void 0, (function*() {\n                            var o, s;\n                            if (\"function\" == typeof n.trigger) {\n                                const a = null !== (s = null === (o = n.buttons) || void 0 === o ? void 0 : o.indexOf(i)) && void 0 !== s ? s : -1;\n                                if (a >= 0) {\n                                    const i = n.trigger(a, e.keyMods),\n                                        o = \"number\" == typeof i ? i : yield i;\n                                    if (t.isCancellationRequested) return;\n                                    switch (o) {\n                                        case f.NO_ACTION:\n                                            break;\n                                        case f.CLOSE_PICKER:\n                                            e.hide();\n                                            break;\n                                        case f.REFRESH_PICKER:\n                                            r();\n                                            break;\n                                        case f.REMOVE_ITEM:\n                                            const t = e.items.indexOf(n);\n                                            if (-1 !== t) {\n                                                const i = e.items.slice(),\n                                                    n = i.splice(t, 1),\n                                                    o = e.activeItems.filter((e => e !== n[0])),\n                                                    s = e.keepScrollPosition;\n                                                e.keepScrollPosition = !0, e.items = i, o && (e.activeItems = o), e.keepScrollPosition = s\n                                            }\n                                    }\n                                }\n                            }\n                        }))))), n\n                    }\n                }\n                E.FAST_PICKS_RACE_DELAY = 200;\n                var T = i(26904),\n                    M = i(10829),\n                    A = function(e, t, i, n) {\n                        var o, s = arguments.length,\n                            r = s < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n                        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) r = Reflect.decorate(e, t, i, n);\n                        else\n                            for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (r = (s < 3 ? o(r) : s > 3 ? o(t, i, r) : o(t, i)) || r);\n                        return s > 3 && r && Object.defineProperty(t, i, r), r\n                    },\n                    O = function(e, t) {\n                        return function(i, n) {\n                            t(i, n, e)\n                        }\n                    },\n                    P = function(e, t, i, n) {\n                        return new(i || (i = Promise))((function(o, s) {\n                            function r(e) {\n                                try {\n                                    l(n.next(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function a(e) {\n                                try {\n                                    l(n.throw(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function l(e) {\n                                var t;\n                                e.done ? o(e.value) : (t = e.value, t instanceof i ? t : new i((function(e) {\n                                    e(t)\n                                }))).then(r, a)\n                            }\n                            l((n = n.apply(e, t || [])).next())\n                        }))\n                    };\n                let R = class e extends E {\n                    constructor(t, i, n, o, s, r) {\n                        super(e.PREFIX, t), this.instantiationService = i, this.keybindingService = n, this.commandService = o, this.telemetryService = s, this.dialogService = r, this.commandsHistory = this._register(this.instantiationService.createInstance(F)), this.options = t\n                    }\n                    _getPicks(t, i, n) {\n                        return P(this, void 0, void 0, (function*() {\n                            const o = yield this.getCommandPicks(i, n);\n                            if (n.isCancellationRequested) return [];\n                            const s = [];\n                            for (const i of o) {\n                                const n = (0, c.f6)(e.WORD_FILTER(t, i.label)),\n                                    o = i.commandAlias ? (0, c.f6)(e.WORD_FILTER(t, i.commandAlias)) : void 0;\n                                n || o ? (i.highlights = {\n                                    label: n,\n                                    detail: this.options.showAlias ? o : void 0\n                                }, s.push(i)) : t === i.commandId && s.push(i)\n                            }\n                            const r = new Map;\n                            for (const e of s) {\n                                const t = r.get(e.label);\n                                t ? (e.description = e.commandId, t.description = t.commandId) : r.set(e.label, e)\n                            }\n                            s.sort(((e, t) => {\n                                const i = this.commandsHistory.peek(e.commandId),\n                                    n = this.commandsHistory.peek(t.commandId);\n                                return i && n ? i > n ? -1 : 1 : i ? -1 : n ? 1 : e.label.localeCompare(t.label)\n                            }));\n                            const a = [];\n                            let l = !1;\n                            for (let e = 0; e < s.length; e++) {\n                                const t = s[e],\n                                    i = this.keybindingService.lookupKeybinding(t.commandId),\n                                    n = i ? (0, d.N)(\"commandPickAriaLabelWithKeybinding\", \"{0}, {1}\", t.label, i.getAriaLabel()) : t.label;\n                                0 === e && this.commandsHistory.peek(t.commandId) && (a.push({\n                                    type: \"separator\",\n                                    label: (0, d.N)(\"recentlyUsed\", \"recently used\")\n                                }), l = !0), 0 !== e && l && !this.commandsHistory.peek(t.commandId) && (a.push({\n                                    type: \"separator\",\n                                    label: (0, d.N)(\"morecCommands\", \"other commands\")\n                                }), l = !1), a.push(Object.assign(Object.assign({}, t), {\n                                    ariaLabel: n,\n                                    detail: this.options.showAlias && t.commandAlias !== t.label ? t.commandAlias : void 0,\n                                    keybinding: i,\n                                    accept: () => P(this, void 0, void 0, (function*() {\n                                        this.commandsHistory.push(t.commandId), this.telemetryService.publicLog2(\"workbenchActionExecuted\", {\n                                            id: t.commandId,\n                                            from: \"quick open\"\n                                        });\n                                        try {\n                                            yield this.commandService.executeCommand(t.commandId)\n                                        } catch (e) {\n                                            (0, m.VV)(e) || this.dialogService.show(w.Z.Error, (0, d.N)(\"canNotRun\", \"Command '{0}' resulted in an error ({1})\", t.label, p(e)))\n                                        }\n                                    }))\n                                }))\n                            }\n                            return a\n                        }))\n                    }\n                };\n                R.PREFIX = \">\", R.WORD_FILTER = (0, v.or)(v.Ji, v.KZ, v.ir), R = A([O(1, S.TG), O(2, k.d), O(3, y.H), O(4, M.b), O(5, x.S)], R);\n                let F = class e extends _.JT {\n                    constructor(e, t) {\n                        super(), this.storageService = e, this.configurationService = t, this.configuredCommandsHistoryLength = 0, this.updateConfiguration(), this.load(), this.registerListeners()\n                    }\n                    registerListeners() {\n                        this._register(this.configurationService.onDidChangeConfiguration((() => this.updateConfiguration())))\n                    }\n                    updateConfiguration() {\n                        this.configuredCommandsHistoryLength = e.getConfiguredCommandHistoryLength(this.configurationService), e.cache && e.cache.limit !== this.configuredCommandsHistoryLength && (e.cache.limit = this.configuredCommandsHistoryLength, e.saveState(this.storageService))\n                    }\n                    load() {\n                        const t = this.storageService.get(e.PREF_KEY_CACHE, 0);\n                        let i;\n                        if (t) try {\n                            i = JSON.parse(t)\n                        } catch (e) {}\n                        const n = e.cache = new b.z6(this.configuredCommandsHistoryLength, 1);\n                        if (i) {\n                            let e;\n                            e = i.usesLRU ? i.entries : i.entries.sort(((e, t) => e.value - t.value)), e.forEach((e => n.set(e.key, e.value)))\n                        }\n                        e.counter = this.storageService.getNumber(e.PREF_KEY_COUNTER, 0, e.counter)\n                    }\n                    push(t) {\n                        e.cache && (e.cache.set(t, e.counter++), e.saveState(this.storageService))\n                    }\n                    peek(t) {\n                        var i;\n                        return null === (i = e.cache) || void 0 === i ? void 0 : i.peek(t)\n                    }\n                    static saveState(t) {\n                        if (!e.cache) return;\n                        const i = {\n                            usesLRU: !0,\n                            entries: []\n                        };\n                        e.cache.forEach(((e, t) => i.entries.push({\n                            key: t,\n                            value: e\n                        }))), t.store(e.PREF_KEY_CACHE, JSON.stringify(i), 0, 0), t.store(e.PREF_KEY_COUNTER, e.counter, 0, 0)\n                    }\n                    static getConfiguredCommandHistoryLength(t) {\n                        var i, n;\n                        const o = null === (n = null === (i = t.getValue().workbench) || void 0 === i ? void 0 : i.commandPalette) || void 0 === n ? void 0 : n.history;\n                        return \"number\" == typeof o ? o : e.DEFAULT_COMMANDS_HISTORY_LENGTH\n                    }\n                };\n                F.DEFAULT_COMMANDS_HISTORY_LENGTH = 50, F.PREF_KEY_CACHE = \"commandPalette.mru.cache\", F.PREF_KEY_COUNTER = \"commandPalette.mru.counter\", F.counter = 1, F = A([O(0, T.Uy), O(1, C.Ui)], F);\n                class B extends R {\n                    constructor(e, t, i, n, o, s) {\n                        super(e, t, i, n, o, s)\n                    }\n                    getCodeEditorCommandPicks() {\n                        const e = this.activeTextEditorControl;\n                        if (!e) return [];\n                        const t = [];\n                        for (const i of e.getSupportedActions()) t.push({\n                            commandId: i.id,\n                            commandAlias: i.alias,\n                            label: (0, a.x$)(i.label) || i.id\n                        });\n                        return t\n                    }\n                }\n                var V = i(16830),\n                    W = i(29102),\n                    H = i(41157),\n                    z = function(e, t, i, n) {\n                        var o, s = arguments.length,\n                            r = s < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n                        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) r = Reflect.decorate(e, t, i, n);\n                        else\n                            for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (r = (s < 3 ? o(r) : s > 3 ? o(t, i, r) : o(t, i)) || r);\n                        return s > 3 && r && Object.defineProperty(t, i, r), r\n                    },\n                    j = function(e, t) {\n                        return function(i, n) {\n                            t(i, n, e)\n                        }\n                    },\n                    U = function(e, t, i, n) {\n                        return new(i || (i = Promise))((function(o, s) {\n                            function r(e) {\n                                try {\n                                    l(n.next(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function a(e) {\n                                try {\n                                    l(n.throw(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function l(e) {\n                                var t;\n                                e.done ? o(e.value) : (t = e.value, t instanceof i ? t : new i((function(e) {\n                                    e(t)\n                                }))).then(r, a)\n                            }\n                            l((n = n.apply(e, t || [])).next())\n                        }))\n                    };\n                let $ = class extends B {\n                    constructor(e, t, i, n, o, s) {\n                        super({\n                            showAlias: !1\n                        }, e, i, n, o, s), this.codeEditorService = t\n                    }\n                    get activeTextEditorControl() {\n                        return (0, c.f6)(this.codeEditorService.getFocusedCodeEditor())\n                    }\n                    getCommandPicks() {\n                        return U(this, void 0, void 0, (function*() {\n                            return this.getCodeEditorCommandPicks()\n                        }))\n                    }\n                };\n                $ = z([j(0, S.TG), j(1, r.$), j(2, k.d), j(3, y.H), j(4, M.b), j(5, x.S)], $), n.B.as(o.IP.Quickaccess).registerQuickAccessProvider({\n                    ctor: $,\n                    prefix: $.PREFIX,\n                    helpEntries: [{\n                        description: s.UX.quickCommandHelp,\n                        needsEditor: !0\n                    }]\n                });\n                class K extends V.R6 {\n                    constructor() {\n                        super({\n                            id: \"editor.action.quickCommand\",\n                            label: s.UX.quickCommandActionLabel,\n                            alias: \"Command Palette\",\n                            precondition: void 0,\n                            kbOpts: {\n                                kbExpr: W.u.focus,\n                                primary: 59,\n                                weight: 100\n                            },\n                            contextMenuOpts: {\n                                group: \"z_commands\",\n                                order: 1\n                            }\n                        })\n                    }\n                    run(e) {\n                        e.get(H.eJ).quickAccess.show($.PREFIX)\n                    }\n                }(0, V.Qr)(K)\n            },\n            62097: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    GotoLineAction: () => w,\n                    StandaloneGotoLineQuickAccessProvider: () => b\n                });\n                var n = i(5976),\n                    o = i(65520),\n                    s = i(98275),\n                    r = i(63580);\n                class a extends s.X {\n                    constructor() {\n                        super({\n                            canAcceptInBackground: !0\n                        })\n                    }\n                    provideWithoutTextEditor(e) {\n                        const t = (0, r.N)(\"cannotRunGotoLine\", \"Open a text editor first to go to a line.\");\n                        return e.items = [{\n                            label: t\n                        }], e.ariaLabel = t, n.JT.None\n                    }\n                    provideWithTextEditor(e, t, i) {\n                        const s = e.editor,\n                            r = new n.SL;\n                        r.add(t.onDidAccept((i => {\n                            const [n] = t.selectedItems;\n                            if (n) {\n                                if (!this.isValidLineNumber(s, n.lineNumber)) return;\n                                this.gotoLocation(e, {\n                                    range: this.toRange(n.lineNumber, n.column),\n                                    keyMods: t.keyMods,\n                                    preserveFocus: i.inBackground\n                                }), i.inBackground || t.hide()\n                            }\n                        })));\n                        const l = () => {\n                            const e = this.parsePosition(s, t.value.trim().substr(a.PREFIX.length)),\n                                i = this.getPickLabel(s, e.lineNumber, e.column);\n                            if (t.items = [{\n                                    lineNumber: e.lineNumber,\n                                    column: e.column,\n                                    label: i\n                                }], t.ariaLabel = i, !this.isValidLineNumber(s, e.lineNumber)) return void this.clearDecorations(s);\n                            const n = this.toRange(e.lineNumber, e.column);\n                            s.revealRangeInCenter(n, 0), this.addDecorations(s, n)\n                        };\n                        l(), r.add(t.onDidChangeValue((() => l())));\n                        const c = (0, o.Pi)(s);\n                        if (c) {\n                            2 === c.getOptions().get(59).renderType && (c.updateOptions({\n                                lineNumbers: \"on\"\n                            }), r.add((0, n.OF)((() => c.updateOptions({\n                                lineNumbers: \"relative\"\n                            })))))\n                        }\n                        return r\n                    }\n                    toRange(e = 1, t = 1) {\n                        return {\n                            startLineNumber: e,\n                            startColumn: t,\n                            endLineNumber: e,\n                            endColumn: t\n                        }\n                    }\n                    parsePosition(e, t) {\n                        const i = t.split(/,|:|#/).map((e => parseInt(e, 10))).filter((e => !isNaN(e))),\n                            n = this.lineCount(e) + 1;\n                        return {\n                            lineNumber: i[0] > 0 ? i[0] : n + i[0],\n                            column: i[1]\n                        }\n                    }\n                    getPickLabel(e, t, i) {\n                        if (this.isValidLineNumber(e, t)) return this.isValidColumn(e, t, i) ? (0, r.N)(\"gotoLineColumnLabel\", \"Go to line {0} and character {1}.\", t, i) : (0, r.N)(\"gotoLineLabel\", \"Go to line {0}.\", t);\n                        const n = e.getPosition() || {\n                                lineNumber: 1,\n                                column: 1\n                            },\n                            o = this.lineCount(e);\n                        return o > 1 ? (0, r.N)(\"gotoLineLabelEmptyWithLimit\", \"Current Line: {0}, Character: {1}. Type a line number between 1 and {2} to navigate to.\", n.lineNumber, n.column, o) : (0, r.N)(\"gotoLineLabelEmpty\", \"Current Line: {0}, Character: {1}. Type a line number to navigate to.\", n.lineNumber, n.column)\n                    }\n                    isValidLineNumber(e, t) {\n                        return !(!t || \"number\" != typeof t) && (t > 0 && t <= this.lineCount(e))\n                    }\n                    isValidColumn(e, t, i) {\n                        if (!i || \"number\" != typeof i) return !1;\n                        const n = this.getModel(e);\n                        if (!n) return !1;\n                        const o = {\n                            lineNumber: t,\n                            column: i\n                        };\n                        return n.validatePosition(o).equals(o)\n                    }\n                    lineCount(e) {\n                        var t, i;\n                        return null !== (i = null === (t = this.getModel(e)) || void 0 === t ? void 0 : t.getLineCount()) && void 0 !== i ? i : 0\n                    }\n                }\n                a.PREFIX = \":\";\n                var l = i(89872),\n                    c = i(90725),\n                    d = i(11640),\n                    h = i(98401),\n                    u = i(20913),\n                    g = i(4669),\n                    p = i(16830),\n                    f = i(29102),\n                    m = i(41157),\n                    v = function(e, t, i, n) {\n                        var o, s = arguments.length,\n                            r = s < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n                        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) r = Reflect.decorate(e, t, i, n);\n                        else\n                            for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (r = (s < 3 ? o(r) : s > 3 ? o(t, i, r) : o(t, i)) || r);\n                        return s > 3 && r && Object.defineProperty(t, i, r), r\n                    },\n                    _ = function(e, t) {\n                        return function(i, n) {\n                            t(i, n, e)\n                        }\n                    };\n                let b = class extends a {\n                    constructor(e) {\n                        super(), this.editorService = e, this.onDidActiveTextEditorControlChange = g.ju.None\n                    }\n                    get activeTextEditorControl() {\n                        return (0, h.f6)(this.editorService.getFocusedCodeEditor())\n                    }\n                };\n                b = v([_(0, d.$)], b), l.B.as(c.IP.Quickaccess).registerQuickAccessProvider({\n                    ctor: b,\n                    prefix: b.PREFIX,\n                    helpEntries: [{\n                        description: u.qq.gotoLineActionLabel,\n                        needsEditor: !0\n                    }]\n                });\n                class w extends p.R6 {\n                    constructor() {\n                        super({\n                            id: \"editor.action.gotoLine\",\n                            label: u.qq.gotoLineActionLabel,\n                            alias: \"Go to Line/Column...\",\n                            precondition: void 0,\n                            kbOpts: {\n                                kbExpr: f.u.focus,\n                                primary: 2085,\n                                mac: {\n                                    primary: 293\n                                },\n                                weight: 100\n                            }\n                        })\n                    }\n                    run(e) {\n                        e.get(m.eJ).quickAccess.show(b.PREFIX)\n                    }\n                }(0, p.Qr)(w)\n            },\n            98936: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    GotoLineAction: () => H,\n                    StandaloneGotoSymbolQuickAccessProvider: () => W\n                });\n                i(28609), i(24954);\n                var n = i(71050),\n                    o = i(73046),\n                    s = i(75392),\n                    r = i(88721),\n                    a = i(1432),\n                    l = i(97295);\n                const c = [void 0, []];\n\n                function d(e, t, i = 0, n = 0) {\n                    const o = t;\n                    return o.values && o.values.length > 1 ? function(e, t, i, n) {\n                        let o = 0;\n                        const s = [];\n                        for (const r of t) {\n                            const [t, a] = h(e, r, i, n);\n                            if (\"number\" != typeof t) return c;\n                            o += t, s.push(...a)\n                        }\n                        return [o, u(s)]\n                    }(e, o.values, i, n) : h(e, t, i, n)\n                }\n\n                function h(e, t, i, n) {\n                    const o = (0, s.EW)(t.original, t.originalLowercase, i, e, e.toLowerCase(), n, !0);\n                    return o ? [o[0], (0, s.mB)(o)] : c\n                }\n\n                function u(e) {\n                    const t = e.sort(((e, t) => e.start - t.start)),\n                        i = [];\n                    let n;\n                    for (const e of t) n && g(n, e) ? (n.start = Math.min(n.start, e.start), n.end = Math.max(n.end, e.end)) : (n = e, i.push(e));\n                    return i\n                }\n\n                function g(e, t) {\n                    return !(e.end < t.start) && !(t.end < e.start)\n                }\n\n                function p(e) {\n                    return e.startsWith('\"') && e.endsWith('\"')\n                }\n                const f = \" \";\n\n                function m(e) {\n                    \"string\" != typeof e && (e = \"\");\n                    const t = e.toLowerCase(),\n                        {\n                            pathNormalized: i,\n                            normalized: n,\n                            normalizedLowercase: o\n                        } = v(e),\n                        s = i.indexOf(r.ir) >= 0,\n                        a = p(e);\n                    let l;\n                    const c = e.split(f);\n                    if (c.length > 1)\n                        for (const e of c) {\n                            const t = p(e),\n                                {\n                                    pathNormalized: i,\n                                    normalized: n,\n                                    normalizedLowercase: o\n                                } = v(e);\n                            n && (l || (l = []), l.push({\n                                original: e,\n                                originalLowercase: e.toLowerCase(),\n                                pathNormalized: i,\n                                normalized: n,\n                                normalizedLowercase: o,\n                                expectContiguousMatch: t\n                            }))\n                        }\n                    return {\n                        original: e,\n                        originalLowercase: t,\n                        pathNormalized: i,\n                        normalized: n,\n                        normalizedLowercase: o,\n                        values: l,\n                        containsPathSeparator: s,\n                        expectContiguousMatch: a\n                    }\n                }\n\n                function v(e) {\n                    let t;\n                    t = a.ED ? e.replace(/\\//g, r.ir) : e.replace(/\\\\/g, r.ir);\n                    const i = (0, l.R1)(t).replace(/\\s|\"/g, \"\");\n                    return {\n                        pathNormalized: t,\n                        normalized: i,\n                        normalizedLowercase: i.toLowerCase()\n                    }\n                }\n\n                function _(e) {\n                    return Array.isArray(e) ? m(e.map((e => e.original)).join(f)) : m(e.original)\n                }\n                var b = i(5976),\n                    w = i(24314),\n                    y = i(44101),\n                    C = i(86895),\n                    x = i(98275),\n                    S = i(63580),\n                    k = function(e, t, i, n) {\n                        return new(i || (i = Promise))((function(o, s) {\n                            function r(e) {\n                                try {\n                                    l(n.next(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function a(e) {\n                                try {\n                                    l(n.throw(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function l(e) {\n                                var t;\n                                e.done ? o(e.value) : (t = e.value, t instanceof i ? t : new i((function(e) {\n                                    e(t)\n                                }))).then(r, a)\n                            }\n                            l((n = n.apply(e, t || [])).next())\n                        }))\n                    };\n                class L extends x.X {\n                    constructor(e = Object.create(null)) {\n                        super(e), this.options = e, this.options.canAcceptInBackground = !0\n                    }\n                    provideWithoutTextEditor(e) {\n                        return this.provideLabelPick(e, (0, S.N)(\"cannotRunGotoSymbolWithoutEditor\", \"To go to a symbol, first open a text editor with symbol information.\")), b.JT.None\n                    }\n                    provideWithTextEditor(e, t, i) {\n                        const n = e.editor,\n                            o = this.getModel(n);\n                        return o ? y.vJ.has(o) ? this.doProvideWithEditorSymbols(e, o, t, i) : this.doProvideWithoutEditorSymbols(e, o, t, i) : b.JT.None\n                    }\n                    doProvideWithoutEditorSymbols(e, t, i, n) {\n                        const o = new b.SL;\n                        return this.provideLabelPick(i, (0, S.N)(\"cannotRunGotoSymbolWithoutSymbolProvider\", \"The active text editor does not provide symbol information.\")), (() => {\n                            k(this, void 0, void 0, (function*() {\n                                (yield this.waitForLanguageSymbolRegistry(t, o)) && !n.isCancellationRequested && o.add(this.doProvideWithEditorSymbols(e, t, i, n))\n                            }))\n                        })(), o\n                    }\n                    provideLabelPick(e, t) {\n                        e.items = [{\n                            label: t,\n                            index: 0,\n                            kind: 14\n                        }], e.ariaLabel = t\n                    }\n                    waitForLanguageSymbolRegistry(e, t) {\n                        return k(this, void 0, void 0, (function*() {\n                            if (y.vJ.has(e)) return !0;\n                            let i;\n                            const n = new Promise((e => i = e)),\n                                o = t.add(y.vJ.onDidChange((() => {\n                                    y.vJ.has(e) && (o.dispose(), i(!0))\n                                })));\n                            return t.add((0, b.OF)((() => i(!1)))), n\n                        }))\n                    }\n                    doProvideWithEditorSymbols(e, t, i, o) {\n                        const s = e.editor,\n                            r = new b.SL;\n                        r.add(i.onDidAccept((t => {\n                            const [n] = i.selectedItems;\n                            n && n.range && (this.gotoLocation(e, {\n                                range: n.range.selection,\n                                keyMods: i.keyMods,\n                                preserveFocus: t.inBackground\n                            }), t.inBackground || i.hide())\n                        }))), r.add(i.onDidTriggerItemButton((({\n                            item: t\n                        }) => {\n                            t && t.range && (this.gotoLocation(e, {\n                                range: t.range.selection,\n                                keyMods: i.keyMods,\n                                forceSideBySide: !0\n                            }), i.hide())\n                        })));\n                        const a = this.getDocumentSymbols(t, o);\n                        let l;\n                        const c = () => k(this, void 0, void 0, (function*() {\n                            null == l || l.dispose(!0), i.busy = !1, l = new n.A(o), i.busy = !0;\n                            try {\n                                const e = m(i.value.substr(L.PREFIX.length).trim()),\n                                    t = yield this.doGetSymbolPicks(a, e, void 0, l.token);\n                                if (o.isCancellationRequested) return;\n                                t.length > 0 ? i.items = t : e.original.length > 0 ? this.provideLabelPick(i, (0, S.N)(\"noMatchingSymbolResults\", \"No matching editor symbols\")) : this.provideLabelPick(i, (0, S.N)(\"noSymbolResults\", \"No editor symbols\"))\n                            } finally {\n                                o.isCancellationRequested || (i.busy = !1)\n                            }\n                        }));\n                        r.add(i.onDidChangeValue((() => c()))), c();\n                        let d = !0;\n                        return r.add(i.onDidChangeActive((() => {\n                            const [e] = i.activeItems;\n                            if (e && e.range) {\n                                if (d) return void(d = !1);\n                                s.revealRangeInCenter(e.range.selection, 0), this.addDecorations(s, e.range.decoration)\n                            }\n                        }))), r\n                    }\n                    doGetSymbolPicks(e, t, i, n) {\n                        return k(this, void 0, void 0, (function*() {\n                            const s = yield e;\n                            if (n.isCancellationRequested) return [];\n                            const r = 0 === t.original.indexOf(L.SCOPE_PREFIX),\n                                a = r ? 1 : 0;\n                            let c, h;\n                            t.values && t.values.length > 1 ? (c = _(t.values[0]), h = _(t.values.slice(1))) : c = t;\n                            const u = [];\n                            for (let f = 0; f < s.length; f++) {\n                                const m = s[f],\n                                    v = (0, l.fy)(m.name),\n                                    b = `$(symbol-${y.uZ.toString(m.kind)||\"property\"}) ${v}`,\n                                    C = b.length - v.length;\n                                let x, k, I, E, T = m.containerName;\n                                if ((null == i ? void 0 : i.extraContainerLabel) && (T = T ? `${i.extraContainerLabel} • ${T}` : i.extraContainerLabel), t.original.length > a) {\n                                    let A = !1;\n                                    if (c !== t && ([x, k] = d(b, Object.assign(Object.assign({}, t), {\n                                            values: void 0\n                                        }), a, C), \"number\" == typeof x && (A = !0)), \"number\" != typeof x && ([x, k] = d(b, c, a, C), \"number\" != typeof x)) continue;\n                                    if (!A && h) {\n                                        if (T && h.original.length > 0 && ([I, E] = d(T, h)), \"number\" != typeof I) continue;\n                                        \"number\" == typeof x && (x += I)\n                                    }\n                                }\n                                const M = m.tags && m.tags.indexOf(1) >= 0;\n                                u.push({\n                                    index: f,\n                                    kind: m.kind,\n                                    score: x,\n                                    label: b,\n                                    ariaLabel: v,\n                                    description: T,\n                                    highlights: M ? void 0 : {\n                                        label: k,\n                                        description: E\n                                    },\n                                    range: {\n                                        selection: w.e.collapseToStart(m.selectionRange),\n                                        decoration: m.range\n                                    },\n                                    strikethrough: M,\n                                    buttons: (() => {\n                                        var e, t;\n                                        const i = (null === (e = this.options) || void 0 === e ? void 0 : e.openSideBySideDirection) ? null === (t = this.options) || void 0 === t ? void 0 : t.openSideBySideDirection() : void 0;\n                                        if (i) return [{\n                                            iconClass: \"right\" === i ? o.lA.splitHorizontal.classNames : o.lA.splitVertical.classNames,\n                                            tooltip: \"right\" === i ? (0, S.N)(\"openToSide\", \"Open to the Side\") : (0, S.N)(\"openToBottom\", \"Open to the Bottom\")\n                                        }]\n                                    })()\n                                })\n                            }\n                            const g = u.sort(((e, t) => r ? this.compareByKindAndScore(e, t) : this.compareByScore(e, t)));\n                            let p = [];\n                            if (r) {\n                                let O, P, R = 0;\n\n                                function F() {\n                                    P && \"number\" == typeof O && R > 0 && (P.label = (0, l.WU)(D[O] || N, R))\n                                }\n                                for (const B of g) O !== B.kind ? (F(), O = B.kind, R = 1, P = {\n                                    type: \"separator\"\n                                }, p.push(P)) : R++, p.push(B);\n                                F()\n                            } else g.length > 0 && (p = [{\n                                label: (0, S.N)(\"symbols\", \"symbols ({0})\", u.length),\n                                type: \"separator\"\n                            }, ...g]);\n                            return p\n                        }))\n                    }\n                    compareByScore(e, t) {\n                        if (\"number\" != typeof e.score && \"number\" == typeof t.score) return 1;\n                        if (\"number\" == typeof e.score && \"number\" != typeof t.score) return -1;\n                        if (\"number\" == typeof e.score && \"number\" == typeof t.score) {\n                            if (e.score > t.score) return -1;\n                            if (e.score < t.score) return 1\n                        }\n                        return e.index < t.index ? -1 : e.index > t.index ? 1 : 0\n                    }\n                    compareByKindAndScore(e, t) {\n                        const i = D[e.kind] || N,\n                            n = D[t.kind] || N,\n                            o = i.localeCompare(n);\n                        return 0 === o ? this.compareByScore(e, t) : o\n                    }\n                    getDocumentSymbols(e, t) {\n                        return k(this, void 0, void 0, (function*() {\n                            const i = yield C.C3.create(e, t);\n                            return t.isCancellationRequested ? [] : i.asListOfDocumentSymbols()\n                        }))\n                    }\n                }\n                L.PREFIX = \"@\", L.SCOPE_PREFIX = \":\", L.PREFIX_BY_CATEGORY = `${L.PREFIX}${L.SCOPE_PREFIX}`;\n                const N = (0, S.N)(\"property\", \"properties ({0})\"),\n                    D = {\n                        5: (0, S.N)(\"method\", \"methods ({0})\"),\n                        11: (0, S.N)(\"function\", \"functions ({0})\"),\n                        8: (0, S.N)(\"_constructor\", \"constructors ({0})\"),\n                        12: (0, S.N)(\"variable\", \"variables ({0})\"),\n                        4: (0, S.N)(\"class\", \"classes ({0})\"),\n                        22: (0, S.N)(\"struct\", \"structs ({0})\"),\n                        23: (0, S.N)(\"event\", \"events ({0})\"),\n                        24: (0, S.N)(\"operator\", \"operators ({0})\"),\n                        10: (0, S.N)(\"interface\", \"interfaces ({0})\"),\n                        2: (0, S.N)(\"namespace\", \"namespaces ({0})\"),\n                        3: (0, S.N)(\"package\", \"packages ({0})\"),\n                        25: (0, S.N)(\"typeParameter\", \"type parameters ({0})\"),\n                        1: (0, S.N)(\"modules\", \"modules ({0})\"),\n                        6: (0, S.N)(\"property\", \"properties ({0})\"),\n                        9: (0, S.N)(\"enum\", \"enumerations ({0})\"),\n                        21: (0, S.N)(\"enumMember\", \"enumeration members ({0})\"),\n                        14: (0, S.N)(\"string\", \"strings ({0})\"),\n                        0: (0, S.N)(\"file\", \"files ({0})\"),\n                        17: (0, S.N)(\"array\", \"arrays ({0})\"),\n                        15: (0, S.N)(\"number\", \"numbers ({0})\"),\n                        16: (0, S.N)(\"boolean\", \"booleans ({0})\"),\n                        18: (0, S.N)(\"object\", \"objects ({0})\"),\n                        19: (0, S.N)(\"key\", \"keys ({0})\"),\n                        7: (0, S.N)(\"field\", \"fields ({0})\"),\n                        13: (0, S.N)(\"constant\", \"constants ({0})\")\n                    };\n                var I = i(89872),\n                    E = i(90725),\n                    T = i(11640),\n                    M = i(98401),\n                    A = i(20913),\n                    O = i(4669),\n                    P = i(16830),\n                    R = i(29102),\n                    F = i(41157),\n                    B = function(e, t, i, n) {\n                        var o, s = arguments.length,\n                            r = s < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n                        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) r = Reflect.decorate(e, t, i, n);\n                        else\n                            for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (r = (s < 3 ? o(r) : s > 3 ? o(t, i, r) : o(t, i)) || r);\n                        return s > 3 && r && Object.defineProperty(t, i, r), r\n                    },\n                    V = function(e, t) {\n                        return function(i, n) {\n                            t(i, n, e)\n                        }\n                    };\n                let W = class extends L {\n                    constructor(e) {\n                        super(), this.editorService = e, this.onDidActiveTextEditorControlChange = O.ju.None\n                    }\n                    get activeTextEditorControl() {\n                        return (0, M.f6)(this.editorService.getFocusedCodeEditor())\n                    }\n                };\n                W = B([V(0, T.$)], W), I.B.as(E.IP.Quickaccess).registerQuickAccessProvider({\n                    ctor: W,\n                    prefix: L.PREFIX,\n                    helpEntries: [{\n                        description: A.aq.quickOutlineActionLabel,\n                        prefix: L.PREFIX,\n                        needsEditor: !0\n                    }, {\n                        description: A.aq.quickOutlineByCategoryActionLabel,\n                        prefix: L.PREFIX_BY_CATEGORY,\n                        needsEditor: !0\n                    }]\n                });\n                class H extends P.R6 {\n                    constructor() {\n                        super({\n                            id: \"editor.action.quickOutline\",\n                            label: A.aq.quickOutlineActionLabel,\n                            alias: \"Go to Symbol...\",\n                            precondition: R.u.hasDocumentSymbolProvider,\n                            kbOpts: {\n                                kbExpr: R.u.focus,\n                                primary: 3117,\n                                weight: 100\n                            },\n                            contextMenuOpts: {\n                                group: \"navigation\",\n                                order: 3\n                            }\n                        })\n                    }\n                    run(e) {\n                        e.get(F.eJ).quickAccess.show(L.PREFIX)\n                    }\n                }(0, P.Qr)(H)\n            },\n            78944: (e, t, i) => {\n                \"use strict\";\n                i.r(t);\n                var n = i(89872),\n                    o = i(90725),\n                    s = i(20913),\n                    r = i(5976),\n                    a = i(63580),\n                    l = i(41157),\n                    c = function(e, t, i, n) {\n                        var o, s = arguments.length,\n                            r = s < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n                        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) r = Reflect.decorate(e, t, i, n);\n                        else\n                            for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (r = (s < 3 ? o(r) : s > 3 ? o(t, i, r) : o(t, i)) || r);\n                        return s > 3 && r && Object.defineProperty(t, i, r), r\n                    },\n                    d = function(e, t) {\n                        return function(i, n) {\n                            t(i, n, e)\n                        }\n                    };\n                let h = class e {\n                    constructor(e) {\n                        this.quickInputService = e, this.registry = n.B.as(o.IP.Quickaccess)\n                    }\n                    provide(t) {\n                        const i = new r.SL;\n                        i.add(t.onDidAccept((() => {\n                            const [e] = t.selectedItems;\n                            e && this.quickInputService.quickAccess.show(e.prefix, {\n                                preserveValue: !0\n                            })\n                        }))), i.add(t.onDidChangeValue((t => {\n                            const i = this.registry.getQuickAccessProvider(t.substr(e.PREFIX.length));\n                            i && i.prefix && i.prefix !== e.PREFIX && this.quickInputService.quickAccess.show(i.prefix, {\n                                preserveValue: !0\n                            })\n                        })));\n                        const {\n                            editorProviders: n,\n                            globalProviders: o\n                        } = this.getQuickAccessProviders();\n                        return t.items = 0 === n.length || 0 === o.length ? [...0 === n.length ? o : n] : [{\n                            label: (0, a.N)(\"globalCommands\", \"global commands\"),\n                            type: \"separator\"\n                        }, ...o, {\n                            label: (0, a.N)(\"editorCommands\", \"editor commands\"),\n                            type: \"separator\"\n                        }, ...n], i\n                    }\n                    getQuickAccessProviders() {\n                        const t = [],\n                            i = [];\n                        for (const n of this.registry.getQuickAccessProviders().sort(((e, t) => e.prefix.localeCompare(t.prefix))))\n                            if (n.prefix !== e.PREFIX)\n                                for (const e of n.helpEntries) {\n                                    const o = e.prefix || n.prefix,\n                                        s = o || \"…\";\n                                    (e.needsEditor ? i : t).push({\n                                        prefix: o,\n                                        label: s,\n                                        ariaLabel: (0, a.N)(\"helpPickAriaLabel\", \"{0}, {1}\", s, e.description),\n                                        description: e.description\n                                    })\n                                }\n                        return {\n                            editorProviders: i,\n                            globalProviders: t\n                        }\n                    }\n                };\n                h.PREFIX = \"?\", h = c([d(0, l.eJ)], h), n.B.as(o.IP.Quickaccess).registerQuickAccessProvider({\n                    ctor: h,\n                    prefix: \"\",\n                    helpEntries: [{\n                        description: s.ld.helpQuickAccessActionLabel,\n                        needsEditor: !0\n                    }]\n                })\n            },\n            45048: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    StandaloneReferencesController: () => g\n                });\n                var n = i(16830),\n                    o = i(11640),\n                    s = i(44318),\n                    r = i(33108),\n                    a = i(38819),\n                    l = i(72065),\n                    c = i(59422),\n                    d = i(26904),\n                    h = function(e, t, i, n) {\n                        var o, s = arguments.length,\n                            r = s < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n                        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) r = Reflect.decorate(e, t, i, n);\n                        else\n                            for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (r = (s < 3 ? o(r) : s > 3 ? o(t, i, r) : o(t, i)) || r);\n                        return s > 3 && r && Object.defineProperty(t, i, r), r\n                    },\n                    u = function(e, t) {\n                        return function(i, n) {\n                            t(i, n, e)\n                        }\n                    };\n                let g = class extends s.J {\n                    constructor(e, t, i, n, o, s, r) {\n                        super(!0, e, t, i, n, o, s, r)\n                    }\n                };\n                g = h([u(1, a.i6), u(2, o.$), u(3, c.lT), u(4, l.TG), u(5, d.Uy), u(6, r.Ui)], g), (0, n._K)(s.J.ID, g)\n            },\n            15662: (e, t, i) => {\n                \"use strict\";\n                i.r(t);\n                var n = i(16830),\n                    o = i(12095),\n                    s = i(20913);\n                class r extends n.R6 {\n                    constructor() {\n                        super({\n                            id: \"editor.action.toggleHighContrast\",\n                            label: s.xi.toggleHighContrast,\n                            alias: \"Toggle High Contrast Theme\",\n                            precondition: void 0\n                        }), this._originalThemeName = null\n                    }\n                    run(e, t) {\n                        const i = e.get(o.Z);\n                        this._originalThemeName ? (i.setTheme(this._originalThemeName), this._originalThemeName = null) : (this._originalThemeName = i.getColorTheme().themeName, i.setTheme(\"hc-black\"))\n                    }\n                }(0, n.Qr)(r)\n            },\n            12095: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    Z: () => n\n                });\n                const n = (0, i(72065).yh)(\"themeService\")\n            },\n            63580: (e, t, i) => {\n                \"use strict\";\n\n                function n(e, t, ...i) {\n                    return function(e, t) {\n                        let i;\n                        return i = 0 === t.length ? e : e.replace(/\\{(\\d+)\\}/g, (function(e, i) {\n                            const n = i[0];\n                            return void 0 !== t[n] ? t[n] : e\n                        })), i\n                    }(t, i)\n                }\n                i.d(t, {\n                    N: () => n\n                })\n            },\n            31106: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    F: () => o,\n                    U: () => s\n                });\n                var n = i(38819);\n                const o = (0, i(72065).yh)(\"accessibilityService\"),\n                    s = new n.uy(\"accessibilityModeEnabled\", !1)\n            },\n            58335: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    Mm: () => D,\n                    Id: () => T,\n                    vr: () => N\n                });\n                var n = i(65321),\n                    o = i(59069),\n                    s = i(76033),\n                    r = i(10553),\n                    a = i(74741),\n                    l = i(4669);\n                i(84843);\n                class c extends a.Wi {\n                    constructor(e, t) {\n                        super(), this._onDidChangeVisibility = this._register(new l.Q5), this.onDidChangeVisibility = this._onDidChangeVisibility.event, this._element = (0, n.R3)(e, (0, n.$)(\".monaco-dropdown\")), this._label = (0, n.R3)(this._element, (0, n.$)(\".dropdown-label\"));\n                        let i = t.labelRenderer;\n                        i || (i = e => (e.textContent = t.label || \"\", null));\n                        for (const e of [n.tw.CLICK, n.tw.MOUSE_DOWN, r.t.Tap]) this._register((0, n.nm)(this.element, e, (e => n.zB.stop(e, !0))));\n                        for (const e of [n.tw.MOUSE_DOWN, r.t.Tap]) this._register((0, n.nm)(this._label, e, (e => {\n                            e instanceof MouseEvent && e.detail > 1 || (this.visible ? this.hide() : this.show())\n                        })));\n                        this._register((0, n.nm)(this._label, n.tw.KEY_UP, (e => {\n                            const t = new o.y(e);\n                            (t.equals(3) || t.equals(10)) && (n.zB.stop(e, !0), this.visible ? this.hide() : this.show())\n                        })));\n                        const s = i(this._label);\n                        s && this._register(s), this._register(r.o.addTarget(this._label))\n                    }\n                    get element() {\n                        return this._element\n                    }\n                    show() {\n                        this.visible || (this.visible = !0, this._onDidChangeVisibility.fire(!0))\n                    }\n                    hide() {\n                        this.visible && (this.visible = !1, this._onDidChangeVisibility.fire(!1))\n                    }\n                    dispose() {\n                        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)\n                    }\n                }\n                class d extends c {\n                    constructor(e, t) {\n                        super(e, t), this._actions = [], this._contextMenuProvider = t.contextMenuProvider, this.actions = t.actions || [], this.actionProvider = t.actionProvider, this.menuClassName = t.menuClassName || \"\", this.menuAsChild = !!t.menuAsChild\n                    }\n                    set menuOptions(e) {\n                        this._menuOptions = e\n                    }\n                    get menuOptions() {\n                        return this._menuOptions\n                    }\n                    get actions() {\n                        return this.actionProvider ? this.actionProvider.getActions() : this._actions\n                    }\n                    set actions(e) {\n                        this._actions = e\n                    }\n                    show() {\n                        super.show(), this.element.classList.add(\"active\"), this._contextMenuProvider.showContextMenu({\n                            getAnchor: () => this.element,\n                            getActions: () => this.actions,\n                            getActionsContext: () => this.menuOptions ? this.menuOptions.context : null,\n                            getActionViewItem: e => this.menuOptions && this.menuOptions.actionViewItemProvider ? this.menuOptions.actionViewItemProvider(e) : void 0,\n                            getKeyBinding: e => this.menuOptions && this.menuOptions.getKeyBinding ? this.menuOptions.getKeyBinding(e) : void 0,\n                            getMenuClassName: () => this.menuClassName,\n                            onHide: () => this.onHide(),\n                            actionRunner: this.menuOptions ? this.menuOptions.actionRunner : void 0,\n                            anchorAlignment: this.menuOptions ? this.menuOptions.anchorAlignment : 0,\n                            domForShadowRoot: this.menuAsChild ? this.element : void 0\n                        })\n                    }\n                    hide() {\n                        super.hide()\n                    }\n                    onHide() {\n                        this.hide(), this.element.classList.remove(\"active\")\n                    }\n                }\n                class h extends s.Y {\n                    constructor(e, t, i, n = Object.create(null)) {\n                        super(null, e, n), this.actionItem = null, this._onDidChangeVisibility = this._register(new l.Q5), this.menuActionsOrProvider = t, this.contextMenuProvider = i, this.options = n, this.options.actionRunner && (this.actionRunner = this.options.actionRunner)\n                    }\n                    render(e) {\n                        this.actionItem = e;\n                        const t = Array.isArray(this.menuActionsOrProvider),\n                            i = {\n                                contextMenuProvider: this.contextMenuProvider,\n                                labelRenderer: e => {\n                                    this.element = (0, n.R3)(e, (0, n.$)(\"a.action-label\"));\n                                    let t = [];\n                                    return \"string\" == typeof this.options.classNames ? t = this.options.classNames.split(/\\s+/g).filter((e => !!e)) : this.options.classNames && (t = this.options.classNames), t.find((e => \"icon\" === e)) || t.push(\"codicon\"), this.element.classList.add(...t), this.element.setAttribute(\"role\", \"button\"), this.element.setAttribute(\"aria-haspopup\", \"true\"), this.element.setAttribute(\"aria-expanded\", \"false\"), this.element.title = this._action.label || \"\", null\n                                },\n                                menuAsChild: this.options.menuAsChild,\n                                actions: t ? this.menuActionsOrProvider : void 0,\n                                actionProvider: t ? void 0 : this.menuActionsOrProvider\n                            };\n                        if (this.dropdownMenu = this._register(new d(e, i)), this._register(this.dropdownMenu.onDidChangeVisibility((e => {\n                                var t;\n                                null === (t = this.element) || void 0 === t || t.setAttribute(\"aria-expanded\", `${e}`), this._onDidChangeVisibility.fire(e)\n                            }))), this.dropdownMenu.menuOptions = {\n                                actionViewItemProvider: this.options.actionViewItemProvider,\n                                actionRunner: this.actionRunner,\n                                getKeyBinding: this.options.keybindingProvider,\n                                context: this._context\n                            }, this.options.anchorAlignmentProvider) {\n                            const e = this;\n                            this.dropdownMenu.menuOptions = Object.assign(Object.assign({}, this.dropdownMenu.menuOptions), {\n                                get anchorAlignment() {\n                                    return e.options.anchorAlignmentProvider()\n                                }\n                            })\n                        }\n                        this.updateEnabled()\n                    }\n                    setActionContext(e) {\n                        super.setActionContext(e), this.dropdownMenu && (this.dropdownMenu.menuOptions ? this.dropdownMenu.menuOptions.context = e : this.dropdownMenu.menuOptions = {\n                            context: e\n                        })\n                    }\n                    updateEnabled() {\n                        var e, t;\n                        const i = !this.getAction().enabled;\n                        null === (e = this.actionItem) || void 0 === e || e.classList.toggle(\"disabled\", i), null === (t = this.element) || void 0 === t || t.classList.toggle(\"disabled\", i)\n                    }\n                }\n                var u = i(8030),\n                    g = i(5976),\n                    p = i(1432),\n                    f = (i(38453), i(63580)),\n                    m = i(84144),\n                    v = i(38819),\n                    _ = i(5606),\n                    b = i(72065),\n                    w = i(91847),\n                    y = i(59422),\n                    C = i(26904),\n                    x = i(97781),\n                    S = function(e, t, i, n) {\n                        var o, s = arguments.length,\n                            r = s < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n                        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) r = Reflect.decorate(e, t, i, n);\n                        else\n                            for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (r = (s < 3 ? o(r) : s > 3 ? o(t, i, r) : o(t, i)) || r);\n                        return s > 3 && r && Object.defineProperty(t, i, r), r\n                    },\n                    k = function(e, t) {\n                        return function(i, n) {\n                            t(i, n, e)\n                        }\n                    },\n                    L = function(e, t, i, n) {\n                        return new(i || (i = Promise))((function(o, s) {\n                            function r(e) {\n                                try {\n                                    l(n.next(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function a(e) {\n                                try {\n                                    l(n.throw(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function l(e) {\n                                var t;\n                                e.done ? o(e.value) : (t = e.value, t instanceof i ? t : new i((function(e) {\n                                    e(t)\n                                }))).then(r, a)\n                            }\n                            l((n = n.apply(e, t || [])).next())\n                        }))\n                    };\n\n                function N(e, t, i, n, o, s, r) {\n                    const l = e.getActions(t);\n                    return function(e, t, i, n = (e => \"navigation\" === e), o = Number.MAX_SAFE_INTEGER, s = (() => !1), r = !1) {\n                            let l, c;\n                            Array.isArray(t) ? (l = t, c = t) : (l = t.primary, c = t.secondary);\n                            const d = new Set;\n                            for (const [t, o] of e) {\n                                let e;\n                                n(t) ? (e = l, e.length > 0 && r && e.push(new a.Z0)) : (e = c, e.length > 0 && e.push(new a.Z0));\n                                for (let n of o) {\n                                    i && (n = n instanceof m.U8 && n.alt ? n.alt : n);\n                                    const o = e.push(n);\n                                    n instanceof a.wY && d.add({\n                                        group: t,\n                                        action: n,\n                                        index: o - 1\n                                    })\n                                }\n                            }\n                            for (const {\n                                    group: e,\n                                    action: t,\n                                    index: i\n                                } of d) {\n                                const r = n(e) ? l : c,\n                                    a = t.actions;\n                                (a.length <= 1 || r.length + a.length - 2 <= o) && s(t, e, r.length) && r.splice(i, 1, ...a)\n                            }\n                            if (l !== c && l.length > o) {\n                                const e = l.splice(o, l.length - o);\n                                c.unshift(...e, new a.Z0)\n                            }\n                        }(l, i, !1, \"string\" == typeof n ? e => e === n : n, o, s, r),\n                        function(e) {\n                            const t = new g.SL;\n                            for (const [, i] of e)\n                                for (const e of i) t.add(e);\n                            return t\n                        }(l)\n                }\n                let D = class extends s.g {\n                    constructor(e, t, i, o, s) {\n                        super(void 0, e, {\n                            icon: !(!e.class && !e.item.icon),\n                            label: !e.class && !e.item.icon,\n                            draggable: null == t ? void 0 : t.draggable\n                        }), this._keybindingService = i, this._notificationService = o, this._contextKeyService = s, this._wantsAltCommand = !1, this._itemClassDispose = this._register(new g.XK), this._altKey = n._q.getInstance()\n                    }\n                    get _menuItemAction() {\n                        return this._action\n                    }\n                    get _commandAction() {\n                        return this._wantsAltCommand && this._menuItemAction.alt || this._menuItemAction\n                    }\n                    onClick(e) {\n                        return L(this, void 0, void 0, (function*() {\n                            e.preventDefault(), e.stopPropagation();\n                            try {\n                                yield this.actionRunner.run(this._commandAction, this._context)\n                            } catch (e) {\n                                this._notificationService.error(e)\n                            }\n                        }))\n                    }\n                    render(e) {\n                        super.render(e), e.classList.add(\"menu-entry\"), this._updateItemClass(this._menuItemAction.item);\n                        let t = !1,\n                            i = this._altKey.keyStatus.altKey || (p.ED || p.IJ) && this._altKey.keyStatus.shiftKey;\n                        const o = () => {\n                            const e = t && i;\n                            e !== this._wantsAltCommand && (this._wantsAltCommand = e, this.updateLabel(), this.updateTooltip(), this.updateClass())\n                        };\n                        this._menuItemAction.alt && this._register(this._altKey.event((e => {\n                            i = e.altKey || (p.ED || p.IJ) && e.shiftKey, o()\n                        }))), this._register((0, n.nm)(e, \"mouseleave\", (e => {\n                            t = !1, o()\n                        }))), this._register((0, n.nm)(e, \"mouseenter\", (e => {\n                            t = !0, o()\n                        })))\n                    }\n                    updateLabel() {\n                        this.options.label && this.label && (this.label.textContent = this._commandAction.label)\n                    }\n                    updateTooltip() {\n                        if (this.label) {\n                            const e = this._keybindingService.lookupKeybinding(this._commandAction.id, this._contextKeyService),\n                                t = e && e.getLabel(),\n                                i = this._commandAction.tooltip || this._commandAction.label;\n                            let n = t ? (0, f.N)(\"titleAndKb\", \"{0} ({1})\", i, t) : i;\n                            if (!this._wantsAltCommand && this._menuItemAction.alt) {\n                                const e = this._menuItemAction.alt.tooltip || this._menuItemAction.alt.label,\n                                    t = this._keybindingService.lookupKeybinding(this._menuItemAction.alt.id, this._contextKeyService),\n                                    i = t && t.getLabel(),\n                                    o = i ? (0, f.N)(\"titleAndKb\", \"{0} ({1})\", e, i) : e;\n                                n += `\\n[${u.xo.modifierLabels[p.OS].altKey}] ${o}`\n                            }\n                            this.label.title = n\n                        }\n                    }\n                    updateClass() {\n                        this.options.icon && (this._commandAction !== this._menuItemAction ? this._menuItemAction.alt && this._updateItemClass(this._menuItemAction.alt.item) : this._menuItemAction.alt && this._updateItemClass(this._menuItemAction.item))\n                    }\n                    _updateItemClass(e) {\n                        var t;\n                        this._itemClassDispose.value = void 0;\n                        const {\n                            element: i,\n                            label: o\n                        } = this;\n                        if (!i || !o) return;\n                        const s = this._commandAction.checked && (null === (t = e.toggled) || void 0 === t ? void 0 : t.icon) ? e.toggled.icon : e.icon;\n                        if (s)\n                            if (x.kS.isThemeIcon(s)) {\n                                const e = x.kS.asClassNameArray(s);\n                                o.classList.add(...e), this._itemClassDispose.value = (0, g.OF)((() => {\n                                    o.classList.remove(...e)\n                                }))\n                            } else s.light && o.style.setProperty(\"--menu-entry-icon-light\", (0, n.wY)(s.light)), s.dark && o.style.setProperty(\"--menu-entry-icon-dark\", (0, n.wY)(s.dark)), o.classList.add(\"icon\"), this._itemClassDispose.value = (0, g.OF)((() => {\n                                o.classList.remove(\"icon\"), o.style.removeProperty(\"--menu-entry-icon-light\"), o.style.removeProperty(\"--menu-entry-icon-dark\")\n                            }))\n                    }\n                };\n                D = S([k(2, w.d), k(3, y.lT), k(4, v.i6)], D);\n                let I = class extends h {\n                    constructor(e, t, i) {\n                        var n, o;\n                        const s = Object.assign({}, null != t ? t : Object.create(null), {\n                            menuAsChild: null !== (n = null == t ? void 0 : t.menuAsChild) && void 0 !== n && n,\n                            classNames: null !== (o = null == t ? void 0 : t.classNames) && void 0 !== o ? o : x.kS.isThemeIcon(e.item.icon) ? x.kS.asClassName(e.item.icon) : void 0\n                        });\n                        super(e, {\n                            getActions: () => e.actions\n                        }, i, s)\n                    }\n                    render(e) {\n                        if (super.render(e), this.element) {\n                            e.classList.add(\"menu-entry\");\n                            const {\n                                icon: t\n                            } = this._action.item;\n                            t && !x.kS.isThemeIcon(t) && (this.element.classList.add(\"icon\"), t.light && this.element.style.setProperty(\"--menu-entry-icon-light\", (0, n.wY)(t.light)), t.dark && this.element.style.setProperty(\"--menu-entry-icon-dark\", (0, n.wY)(t.dark)))\n                        }\n                    }\n                };\n                I = S([k(2, _.i)], I);\n                let E = class extends s.Y {\n                    constructor(e, t, i, n, o, s, r, l) {\n                        var c, d, u;\n                        let g;\n                        super(null, e), this._keybindingService = i, this._notificationService = n, this._contextMenuService = o, this._menuService = s, this._instaService = r, this._storageService = l, this._container = null, this._storageKey = `${e.item.submenu._debugName}_lastActionId`;\n                        let p = l.get(this._storageKey, 1);\n                        p && (g = e.actions.find((e => p === e.id))), g || (g = e.actions[0]), this._defaultAction = this._instaService.createInstance(D, g, void 0);\n                        const f = Object.assign({}, null != t ? t : Object.create(null), {\n                            menuAsChild: null === (c = null == t ? void 0 : t.menuAsChild) || void 0 === c || c,\n                            classNames: null !== (d = null == t ? void 0 : t.classNames) && void 0 !== d ? d : [\"codicon\", \"codicon-chevron-down\"],\n                            actionRunner: null !== (u = null == t ? void 0 : t.actionRunner) && void 0 !== u ? u : new a.Wi\n                        });\n                        this._dropdown = new h(e, e.actions, this._contextMenuService, f), this._dropdown.actionRunner.onDidRun((e => {\n                            e.action instanceof m.U8 && this.update(e.action)\n                        }))\n                    }\n                    update(e) {\n                        this._storageService.store(this._storageKey, e.id, 1, 0), this._defaultAction.dispose(), this._defaultAction = this._instaService.createInstance(D, e, void 0), this._defaultAction.actionRunner = new class extends a.Wi {\n                            runAction(e, t) {\n                                return L(this, void 0, void 0, (function*() {\n                                    yield e.run(void 0)\n                                }))\n                            }\n                        }, this._container && this._defaultAction.render((0, n.Ce)(this._container, (0, n.$)(\".action-container\")))\n                    }\n                    setActionContext(e) {\n                        super.setActionContext(e), this._defaultAction.setActionContext(e), this._dropdown.setActionContext(e)\n                    }\n                    render(e) {\n                        this._container = e, super.render(this._container), this._container.classList.add(\"monaco-dropdown-with-default\");\n                        const t = (0, n.$)(\".action-container\");\n                        this._defaultAction.render((0, n.R3)(this._container, t)), this._register((0, n.nm)(t, n.tw.KEY_DOWN, (e => {\n                            const t = new o.y(e);\n                            t.equals(17) && (this._defaultAction.element.tabIndex = -1, this._dropdown.focus(), t.stopPropagation())\n                        })));\n                        const i = (0, n.$)(\".dropdown-action-container\");\n                        this._dropdown.render((0, n.R3)(this._container, i)), this._register((0, n.nm)(i, n.tw.KEY_DOWN, (e => {\n                            var t;\n                            const i = new o.y(e);\n                            i.equals(15) && (this._defaultAction.element.tabIndex = 0, this._dropdown.setFocusable(!1), null === (t = this._defaultAction.element) || void 0 === t || t.focus(), i.stopPropagation())\n                        })))\n                    }\n                    focus(e) {\n                        e ? this._dropdown.focus() : (this._defaultAction.element.tabIndex = 0, this._defaultAction.element.focus())\n                    }\n                    blur() {\n                        this._defaultAction.element.tabIndex = -1, this._dropdown.blur(), this._container.blur()\n                    }\n                    setFocusable(e) {\n                        e ? this._defaultAction.element.tabIndex = 0 : (this._defaultAction.element.tabIndex = -1, this._dropdown.setFocusable(!1))\n                    }\n                    dispose() {\n                        this._defaultAction.dispose(), this._dropdown.dispose(), super.dispose()\n                    }\n                };\n\n                function T(e, t, i) {\n                    return t instanceof m.U8 ? e.createInstance(D, t, void 0) : t instanceof m.NZ ? t.item.rememberDefaultAction ? e.createInstance(E, t, i) : e.createInstance(I, t, i) : void 0\n                }\n                E = S([k(2, w.d), k(3, y.lT), k(4, _.i), k(5, m.co), k(6, b.TG), k(7, C.Uy)], E)\n            },\n            84144: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    BH: () => _,\n                    NZ: () => b,\n                    U8: () => w,\n                    co: () => v,\n                    eH: () => m,\n                    vr: () => f\n                });\n                var n = i(74741),\n                    o = i(73046),\n                    s = i(4669),\n                    r = i(53725),\n                    a = i(5976),\n                    l = i(91741),\n                    c = i(94565),\n                    d = i(38819),\n                    h = i(72065),\n                    u = i(97781),\n                    g = function(e, t, i, n) {\n                        var o, s = arguments.length,\n                            r = s < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n                        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) r = Reflect.decorate(e, t, i, n);\n                        else\n                            for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (r = (s < 3 ? o(r) : s > 3 ? o(t, i, r) : o(t, i)) || r);\n                        return s > 3 && r && Object.defineProperty(t, i, r), r\n                    },\n                    p = function(e, t) {\n                        return function(i, n) {\n                            t(i, n, e)\n                        }\n                    };\n\n                function f(e) {\n                    return void 0 !== e.command\n                }\n                class m {\n                    constructor(e) {\n                        this.id = m._idPool++, this._debugName = e\n                    }\n                }\n                m._idPool = 0, m.CommandPalette = new m(\"CommandPalette\"), m.EditorContext = new m(\"EditorContext\"), m.SimpleEditorContext = new m(\"SimpleEditorContext\"), m.EditorContextCopy = new m(\"EditorContextCopy\"), m.EditorContextPeek = new m(\"EditorContextPeek\"), m.MenubarEditMenu = new m(\"MenubarEditMenu\"), m.MenubarCopy = new m(\"MenubarCopy\"), m.MenubarGoMenu = new m(\"MenubarGoMenu\"), m.MenubarSelectionMenu = new m(\"MenubarSelectionMenu\"), m.InlineCompletionsActions = new m(\"InlineCompletionsActions\");\n                const v = (0, h.yh)(\"menuService\"),\n                    _ = new class {\n                        constructor() {\n                            this._commands = new Map, this._menuItems = new Map, this._onDidChangeMenu = new s.Q5, this.onDidChangeMenu = this._onDidChangeMenu.event, this._commandPaletteChangeEvent = {\n                                has: e => e === m.CommandPalette\n                            }\n                        }\n                        addCommand(e) {\n                            return this.addCommands(r.$.single(e))\n                        }\n                        addCommands(e) {\n                            for (const t of e) this._commands.set(t.id, t);\n                            return this._onDidChangeMenu.fire(this._commandPaletteChangeEvent), (0, a.OF)((() => {\n                                let t = !1;\n                                for (const i of e) t = this._commands.delete(i.id) || t;\n                                t && this._onDidChangeMenu.fire(this._commandPaletteChangeEvent)\n                            }))\n                        }\n                        getCommand(e) {\n                            return this._commands.get(e)\n                        }\n                        getCommands() {\n                            const e = new Map;\n                            return this._commands.forEach(((t, i) => e.set(i, t))), e\n                        }\n                        appendMenuItem(e, t) {\n                            return this.appendMenuItems(r.$.single({\n                                id: e,\n                                item: t\n                            }))\n                        }\n                        appendMenuItems(e) {\n                            const t = new Set,\n                                i = new l.S;\n                            for (const {\n                                    id: n,\n                                    item: o\n                                } of e) {\n                                let e = this._menuItems.get(n);\n                                e || (e = new l.S, this._menuItems.set(n, e)), i.push(e.push(o)), t.add(n)\n                            }\n                            return this._onDidChangeMenu.fire(t), (0, a.OF)((() => {\n                                if (i.size > 0) {\n                                    for (let e of i) e();\n                                    this._onDidChangeMenu.fire(t), i.clear()\n                                }\n                            }))\n                        }\n                        getMenuItems(e) {\n                            let t;\n                            return t = this._menuItems.has(e) ? [...this._menuItems.get(e)] : [], e === m.CommandPalette && this._appendImplicitItems(t), t\n                        }\n                        _appendImplicitItems(e) {\n                            const t = new Set;\n                            for (const i of e) f(i) && (t.add(i.command.id), i.alt && t.add(i.alt.id));\n                            this._commands.forEach(((i, n) => {\n                                t.has(n) || e.push({\n                                    command: i\n                                })\n                            }))\n                        }\n                    };\n                class b extends n.wY {\n                    constructor(e, t, i, n) {\n                        super(`submenuitem.${e.submenu.id}`, \"string\" == typeof e.title ? e.title : e.title.value, [], \"submenu\"), this.item = e, this._menuService = t, this._contextKeyService = i, this._options = n\n                    }\n                    get actions() {\n                        const e = [],\n                            t = this._menuService.createMenu(this.item.submenu, this._contextKeyService),\n                            i = t.getActions(this._options);\n                        t.dispose();\n                        for (const [, t] of i) t.length > 0 && (e.push(...t), e.push(new n.Z0));\n                        return e.length && e.pop(), e\n                    }\n                }\n                let w = class e {\n                    constructor(t, i, n, s, r) {\n                        var a, l;\n                        if (this._commandService = r, this.id = t.id, this.label = (null == n ? void 0 : n.renderShortTitle) && t.shortTitle ? \"string\" == typeof t.shortTitle ? t.shortTitle : t.shortTitle.value : \"string\" == typeof t.title ? t.title : t.title.value, this.tooltip = null !== (l = \"string\" == typeof t.tooltip ? t.tooltip : null === (a = t.tooltip) || void 0 === a ? void 0 : a.value) && void 0 !== l ? l : \"\", this.enabled = !t.precondition || s.contextMatchesRules(t.precondition), this.checked = void 0, t.toggled) {\n                            const e = t.toggled.condition ? t.toggled : {\n                                condition: t.toggled\n                            };\n                            this.checked = s.contextMatchesRules(e.condition), this.checked && e.tooltip && (this.tooltip = \"string\" == typeof e.tooltip ? e.tooltip : e.tooltip.value), e.title && (this.label = \"string\" == typeof e.title ? e.title : e.title.value)\n                        }\n                        this.item = t, this.alt = i ? new e(i, void 0, n, s, r) : void 0, this._options = n, u.kS.isThemeIcon(t.icon) && (this.class = o.dT.asClassName(t.icon))\n                    }\n                    dispose() {}\n                    run(...e) {\n                        var t, i;\n                        let n = [];\n                        return (null === (t = this._options) || void 0 === t ? void 0 : t.arg) && (n = [...n, this._options.arg]), (null === (i = this._options) || void 0 === i ? void 0 : i.shouldForwardArgs) && (n = [...n, ...e]), this._commandService.executeCommand(this.id, ...n)\n                    }\n                };\n                w = g([p(3, d.i6), p(4, c.H)], w)\n            },\n            84972: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    p: () => n\n                });\n                const n = (0, i(72065).yh)(\"clipboardService\")\n            },\n            94565: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    H: () => l,\n                    P: () => c\n                });\n                var n = i(4669),\n                    o = i(53725),\n                    s = i(5976),\n                    r = i(91741),\n                    a = i(98401);\n                const l = (0, i(72065).yh)(\"commandService\"),\n                    c = new class {\n                        constructor() {\n                            this._commands = new Map, this._onDidRegisterCommand = new n.Q5, this.onDidRegisterCommand = this._onDidRegisterCommand.event\n                        }\n                        registerCommand(e, t) {\n                            if (!e) throw new Error(\"invalid command\");\n                            if (\"string\" == typeof e) {\n                                if (!t) throw new Error(\"invalid command\");\n                                return this.registerCommand({\n                                    id: e,\n                                    handler: t\n                                })\n                            }\n                            if (e.description) {\n                                const t = [];\n                                for (let i of e.description.args) t.push(i.constraint);\n                                const i = e.handler;\n                                e.handler = function(e, ...n) {\n                                    return (0, a.D8)(n, t), i(e, ...n)\n                                }\n                            }\n                            const {\n                                id: i\n                            } = e;\n                            let n = this._commands.get(i);\n                            n || (n = new r.S, this._commands.set(i, n));\n                            let o = n.unshift(e),\n                                l = (0, s.OF)((() => {\n                                    o();\n                                    const e = this._commands.get(i);\n                                    (null == e ? void 0 : e.isEmpty()) && this._commands.delete(i)\n                                }));\n                            return this._onDidRegisterCommand.fire(i), l\n                        }\n                        registerCommandAlias(e, t) {\n                            return c.registerCommand(e, ((e, ...i) => e.get(l).executeCommand(t, ...i)))\n                        }\n                        getCommand(e) {\n                            const t = this._commands.get(e);\n                            if (t && !t.isEmpty()) return o.$.first(t)\n                        }\n                        getCommands() {\n                            const e = new Map;\n                            for (const t of this._commands.keys()) {\n                                const i = this.getCommand(t);\n                                i && e.set(t, i)\n                            }\n                            return e\n                        }\n                    };\n                c.registerCommand(\"noop\", (() => {}))\n            },\n            33108: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    KV: () => l,\n                    MR: () => u,\n                    Mt: () => h,\n                    O4: () => g,\n                    Od: () => a,\n                    Ui: () => r,\n                    xL: () => c\n                });\n                var n = i(23193),\n                    o = i(72065),\n                    s = i(89872);\n                const r = (0, o.yh)(\"configurationService\");\n\n                function a(e, t) {\n                    const i = Object.create(null);\n                    for (let n in e) l(i, n, e[n], t);\n                    return i\n                }\n\n                function l(e, t, i, n) {\n                    const o = t.split(\".\"),\n                        s = o.pop();\n                    let r = e;\n                    for (let e = 0; e < o.length; e++) {\n                        let i = o[e],\n                            s = r[i];\n                        switch (typeof s) {\n                            case \"undefined\":\n                                s = r[i] = Object.create(null);\n                                break;\n                            case \"object\":\n                                break;\n                            default:\n                                return void n(`Ignoring ${t} as ${o.slice(0,e+1).join(\".\")} is ${JSON.stringify(s)}`)\n                        }\n                        r = s\n                    }\n                    if (\"object\" == typeof r && null !== r) try {\n                        r[s] = i\n                    } catch (e) {\n                        n(`Ignoring ${t} as ${o.join(\".\")} is ${JSON.stringify(r)}`)\n                    } else n(`Ignoring ${t} as ${o.join(\".\")} is ${JSON.stringify(r)}`)\n                }\n\n                function c(e, t) {\n                    d(e, t.split(\".\"))\n                }\n\n                function d(e, t) {\n                    const i = t.shift();\n                    if (0 !== t.length) {\n                        if (-1 !== Object.keys(e).indexOf(i)) {\n                            const n = e[i];\n                            \"object\" != typeof n || Array.isArray(n) || (d(n, t), 0 === Object.keys(n).length && delete e[i])\n                        }\n                    } else delete e[i]\n                }\n\n                function h(e, t, i) {\n                    const n = function(e, t) {\n                        let i = e;\n                        for (const e of t) {\n                            if (\"object\" != typeof i || null === i) return;\n                            i = i[e]\n                        }\n                        return i\n                    }(e, t.split(\".\"));\n                    return void 0 === n ? i : n\n                }\n\n                function u() {\n                    const e = s.B.as(n.IP.Configuration).getConfigurationProperties();\n                    return Object.keys(e)\n                }\n\n                function g() {\n                    const e = Object.create(null),\n                        t = s.B.as(n.IP.Configuration).getConfigurationProperties();\n                    for (let i in t) {\n                        l(e, i, t[i].default, (e => console.error(`Conflict in default settings: ${e}`)))\n                    }\n                    return e\n                }\n            },\n            23193: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    G1: () => v,\n                    IP: () => l,\n                    Uh: () => _\n                });\n                var n = i(4669),\n                    o = i(98401),\n                    s = i(63580),\n                    r = i(81294),\n                    a = i(89872);\n                const l = {\n                        Configuration: \"base.contributions.configuration\"\n                    },\n                    c = {\n                        properties: {},\n                        patternProperties: {}\n                    },\n                    d = {\n                        properties: {},\n                        patternProperties: {}\n                    },\n                    h = {\n                        properties: {},\n                        patternProperties: {}\n                    },\n                    u = {\n                        properties: {},\n                        patternProperties: {}\n                    },\n                    g = {\n                        properties: {},\n                        patternProperties: {}\n                    },\n                    p = {\n                        properties: {},\n                        patternProperties: {}\n                    },\n                    f = \"vscode://schemas/settings/resourceLanguage\",\n                    m = a.B.as(r.I.JSONContribution);\n                const v = new RegExp(\"\\\\[.*\\\\]$\");\n\n                function _(e) {\n                    return e.substring(1, e.length - 1)\n                }\n                const b = new class {\n                    constructor() {\n                        this.overrideIdentifiers = new Set, this._onDidSchemaChange = new n.Q5, this._onDidUpdateConfiguration = new n.Q5, this.defaultValues = {}, this.defaultLanguageConfigurationOverridesNode = {\n                            id: \"defaultOverrides\",\n                            title: s.N(\"defaultLanguageConfigurationOverrides.title\", \"Default Language Configuration Overrides\"),\n                            properties: {}\n                        }, this.configurationContributors = [this.defaultLanguageConfigurationOverridesNode], this.resourceLanguageSettingsSchema = {\n                            properties: {},\n                            patternProperties: {},\n                            additionalProperties: !1,\n                            errorMessage: \"Unknown editor configuration setting\",\n                            allowTrailingCommas: !0,\n                            allowComments: !0\n                        }, this.configurationProperties = {}, this.excludedConfigurationProperties = {}, m.registerSchema(f, this.resourceLanguageSettingsSchema)\n                    }\n                    registerConfiguration(e, t = !0) {\n                        this.registerConfigurations([e], t)\n                    }\n                    registerConfigurations(e, t = !0) {\n                        const i = this.doRegisterConfigurations(e, t);\n                        m.registerSchema(f, this.resourceLanguageSettingsSchema), this._onDidSchemaChange.fire(), this._onDidUpdateConfiguration.fire(i)\n                    }\n                    registerOverrideIdentifiers(e) {\n                        for (const t of e) this.overrideIdentifiers.add(t);\n                        this.updateOverridePropertyPatternKey()\n                    }\n                    doRegisterConfigurations(e, t) {\n                        const i = [];\n                        return e.forEach((e => {\n                            i.push(...this.validateAndRegisterProperties(e, t, e.extensionInfo)), this.configurationContributors.push(e), this.registerJSONConfiguration(e)\n                        })), i\n                    }\n                    validateAndRegisterProperties(e, t = !0, i, n = 3) {\n                        var s;\n                        n = o.Jp(e.scope) ? n : e.scope;\n                        let r = [],\n                            a = e.properties;\n                        if (a)\n                            for (let e in a) {\n                                if (t && w(e)) {\n                                    delete a[e];\n                                    continue\n                                }\n                                const l = a[e];\n                                this.updatePropertyDefaultValue(e, l), v.test(e) ? l.scope = void 0 : (l.scope = o.Jp(l.scope) ? n : l.scope, l.restricted = o.Jp(l.restricted) ? !!(null === (s = null == i ? void 0 : i.restrictedConfigurations) || void 0 === s ? void 0 : s.includes(e)) : l.restricted), !a[e].hasOwnProperty(\"included\") || a[e].included ? (this.configurationProperties[e] = a[e], !a[e].deprecationMessage && a[e].markdownDeprecationMessage && (a[e].deprecationMessage = a[e].markdownDeprecationMessage), r.push(e)) : (this.excludedConfigurationProperties[e] = a[e], delete a[e])\n                            }\n                        let l = e.allOf;\n                        if (l)\n                            for (let e of l) r.push(...this.validateAndRegisterProperties(e, t, i, n));\n                        return r\n                    }\n                    getConfigurationProperties() {\n                        return this.configurationProperties\n                    }\n                    registerJSONConfiguration(e) {\n                        const t = e => {\n                            let i = e.properties;\n                            if (i)\n                                for (const e in i) this.updateSchema(e, i[e]);\n                            let n = e.allOf;\n                            n && n.forEach(t)\n                        };\n                        t(e)\n                    }\n                    updateSchema(e, t) {\n                        switch (c.properties[e] = t, t.scope) {\n                            case 1:\n                                d.properties[e] = t;\n                                break;\n                            case 2:\n                                h.properties[e] = t;\n                                break;\n                            case 6:\n                                u.properties[e] = t;\n                                break;\n                            case 3:\n                                g.properties[e] = t;\n                                break;\n                            case 4:\n                                p.properties[e] = t;\n                                break;\n                            case 5:\n                                p.properties[e] = t, this.resourceLanguageSettingsSchema.properties[e] = t\n                        }\n                    }\n                    updateOverridePropertyPatternKey() {\n                        for (const e of this.overrideIdentifiers.values()) {\n                            const t = `[${e}]`,\n                                i = {\n                                    type: \"object\",\n                                    description: s.N(\"overrideSettings.defaultDescription\", \"Configure editor settings to be overridden for a language.\"),\n                                    errorMessage: s.N(\"overrideSettings.errorMessage\", \"This setting does not support per-language configuration.\"),\n                                    $ref: f\n                                };\n                            this.updatePropertyDefaultValue(t, i), c.properties[t] = i, d.properties[t] = i, h.properties[t] = i, u.properties[t] = i, g.properties[t] = i, p.properties[t] = i\n                        }\n                        this._onDidSchemaChange.fire()\n                    }\n                    updatePropertyDefaultValue(e, t) {\n                        let i = this.defaultValues[e];\n                        o.o8(i) && (i = t.default), o.o8(i) && (i = function(e) {\n                            switch (Array.isArray(e) ? e[0] : e) {\n                                case \"boolean\":\n                                    return !1;\n                                case \"integer\":\n                                case \"number\":\n                                    return 0;\n                                case \"string\":\n                                    return \"\";\n                                case \"array\":\n                                    return [];\n                                case \"object\":\n                                    return {};\n                                default:\n                                    return null\n                            }\n                        }(t.type)), t.default = i\n                    }\n                };\n\n                function w(e) {\n                    return e.trim() ? v.test(e) ? s.N(\"config.property.languageDefault\", \"Cannot register '{0}'. This matches property pattern '\\\\\\\\[.*\\\\\\\\]$' for describing language specific editor settings. Use 'configurationDefaults' contribution.\", e) : void 0 !== b.getConfigurationProperties()[e] ? s.N(\"config.property.duplicate\", \"Cannot register '{0}'. This property is already registered.\", e) : null : s.N(\"config.property.empty\", \"Cannot register an empty property\")\n                }\n                a.B.add(l.Configuration, b)\n            },\n            38819: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    Ao: () => c,\n                    Eq: () => M,\n                    Fb: () => d,\n                    K8: () => P,\n                    i6: () => T,\n                    uy: () => E\n                });\n                var n = i(1432),\n                    o = i(97295),\n                    s = i(72065);\n                let r = n.WE || \"\";\n                const a = new Map;\n                a.set(\"false\", !1), a.set(\"true\", !0), a.set(\"isMac\", n.dz), a.set(\"isLinux\", n.IJ), a.set(\"isWindows\", n.ED), a.set(\"isWeb\", n.$L), a.set(\"isMacNative\", n.dz && !n.$L), a.set(\"isEdge\", r.indexOf(\"Edg/\") >= 0), a.set(\"isFirefox\", r.indexOf(\"Firefox\") >= 0), a.set(\"isChrome\", r.indexOf(\"Chrome\") >= 0), a.set(\"isSafari\", r.indexOf(\"Safari\") >= 0);\n                const l = Object.prototype.hasOwnProperty;\n                class c {\n                    static has(e) {\n                        return p.create(e)\n                    }\n                    static equals(e, t) {\n                        return f.create(e, t)\n                    }\n                    static regex(e, t) {\n                        return k.create(e, t)\n                    }\n                    static not(e) {\n                        return b.create(e)\n                    }\n                    static and(...e) {\n                        return D.create(e, null)\n                    }\n                    static or(...e) {\n                        return I.create(e, null, !0)\n                    }\n                    static deserialize(e, t = !1) {\n                        if (e) return this._deserializeOrExpression(e, t)\n                    }\n                    static _deserializeOrExpression(e, t) {\n                        let i = e.split(\"||\");\n                        return I.create(i.map((e => this._deserializeAndExpression(e, t))), null, !0)\n                    }\n                    static _deserializeAndExpression(e, t) {\n                        let i = e.split(\"&&\");\n                        return D.create(i.map((e => this._deserializeOne(e, t))), null)\n                    }\n                    static _deserializeOne(e, t) {\n                        if ((e = e.trim()).indexOf(\"!=\") >= 0) {\n                            let i = e.split(\"!=\");\n                            return _.create(i[0].trim(), this._deserializeValue(i[1], t))\n                        }\n                        if (e.indexOf(\"==\") >= 0) {\n                            let i = e.split(\"==\");\n                            return f.create(i[0].trim(), this._deserializeValue(i[1], t))\n                        }\n                        if (e.indexOf(\"=~\") >= 0) {\n                            let i = e.split(\"=~\");\n                            return k.create(i[0].trim(), this._deserializeRegexValue(i[1], t))\n                        }\n                        if (e.indexOf(\" in \") >= 0) {\n                            let t = e.split(\" in \");\n                            return m.create(t[0].trim(), t[1].trim())\n                        }\n                        if (/^[^<=>]+>=[^<=>]+$/.test(e)) {\n                            const t = e.split(\">=\");\n                            return C.create(t[0].trim(), t[1].trim())\n                        }\n                        if (/^[^<=>]+>[^<=>]+$/.test(e)) {\n                            const t = e.split(\">\");\n                            return y.create(t[0].trim(), t[1].trim())\n                        }\n                        if (/^[^<=>]+<=[^<=>]+$/.test(e)) {\n                            const t = e.split(\"<=\");\n                            return S.create(t[0].trim(), t[1].trim())\n                        }\n                        if (/^[^<=>]+<[^<=>]+$/.test(e)) {\n                            const t = e.split(\"<\");\n                            return x.create(t[0].trim(), t[1].trim())\n                        }\n                        return /^\\!\\s*/.test(e) ? b.create(e.substr(1).trim()) : p.create(e)\n                    }\n                    static _deserializeValue(e, t) {\n                        if (\"true\" === (e = e.trim())) return !0;\n                        if (\"false\" === e) return !1;\n                        let i = /^'([^']*)'$/.exec(e);\n                        return i ? i[1].trim() : e\n                    }\n                    static _deserializeRegexValue(e, t) {\n                        if ((0, o.m5)(e)) {\n                            if (t) throw new Error(\"missing regexp-value for =~-expression\");\n                            return console.warn(\"missing regexp-value for =~-expression\"), null\n                        }\n                        let i = e.indexOf(\"/\"),\n                            n = e.lastIndexOf(\"/\");\n                        if (i === n || i < 0) {\n                            if (t) throw new Error(`bad regexp-value '${e}', missing /-enclosure`);\n                            return console.warn(`bad regexp-value '${e}', missing /-enclosure`), null\n                        }\n                        let s = e.slice(i + 1, n),\n                            r = \"i\" === e[n + 1] ? \"i\" : \"\";\n                        try {\n                            return new RegExp(s, r)\n                        } catch (i) {\n                            if (t) throw new Error(`bad regexp-value '${e}', parse error: ${i}`);\n                            return console.warn(`bad regexp-value '${e}', parse error: ${i}`), null\n                        }\n                    }\n                }\n\n                function d(e, t) {\n                    const i = e ? e.substituteConstants() : void 0,\n                        n = t ? t.substituteConstants() : void 0;\n                    return !i && !n || !(!i || !n) && i.equals(n)\n                }\n\n                function h(e, t) {\n                    return e.cmp(t)\n                }\n                class u {\n                    constructor() {\n                        this.type = 0\n                    }\n                    cmp(e) {\n                        return this.type - e.type\n                    }\n                    equals(e) {\n                        return e.type === this.type\n                    }\n                    substituteConstants() {\n                        return this\n                    }\n                    evaluate(e) {\n                        return !1\n                    }\n                    serialize() {\n                        return \"false\"\n                    }\n                    keys() {\n                        return []\n                    }\n                    negate() {\n                        return g.INSTANCE\n                    }\n                }\n                u.INSTANCE = new u;\n                class g {\n                    constructor() {\n                        this.type = 1\n                    }\n                    cmp(e) {\n                        return this.type - e.type\n                    }\n                    equals(e) {\n                        return e.type === this.type\n                    }\n                    substituteConstants() {\n                        return this\n                    }\n                    evaluate(e) {\n                        return !0\n                    }\n                    serialize() {\n                        return \"true\"\n                    }\n                    keys() {\n                        return []\n                    }\n                    negate() {\n                        return u.INSTANCE\n                    }\n                }\n                g.INSTANCE = new g;\n                class p {\n                    constructor(e, t) {\n                        this.key = e, this.negated = t, this.type = 2\n                    }\n                    static create(e, t = null) {\n                        const i = a.get(e);\n                        return \"boolean\" == typeof i ? i ? g.INSTANCE : u.INSTANCE : new p(e, t)\n                    }\n                    cmp(e) {\n                        return e.type !== this.type ? this.type - e.type : A(this.key, e.key)\n                    }\n                    equals(e) {\n                        return e.type === this.type && this.key === e.key\n                    }\n                    substituteConstants() {\n                        const e = a.get(this.key);\n                        return \"boolean\" == typeof e ? e ? g.INSTANCE : u.INSTANCE : this\n                    }\n                    evaluate(e) {\n                        return !!e.getValue(this.key)\n                    }\n                    serialize() {\n                        return this.key\n                    }\n                    keys() {\n                        return [this.key]\n                    }\n                    negate() {\n                        return this.negated || (this.negated = b.create(this.key, this)), this.negated\n                    }\n                }\n                class f {\n                    constructor(e, t, i) {\n                        this.key = e, this.value = t, this.negated = i, this.type = 4\n                    }\n                    static create(e, t, i = null) {\n                        if (\"boolean\" == typeof t) return t ? p.create(e, i) : b.create(e, i);\n                        const n = a.get(e);\n                        if (\"boolean\" == typeof n) {\n                            return t === (n ? \"true\" : \"false\") ? g.INSTANCE : u.INSTANCE\n                        }\n                        return new f(e, t, i)\n                    }\n                    cmp(e) {\n                        return e.type !== this.type ? this.type - e.type : O(this.key, this.value, e.key, e.value)\n                    }\n                    equals(e) {\n                        return e.type === this.type && (this.key === e.key && this.value === e.value)\n                    }\n                    substituteConstants() {\n                        const e = a.get(this.key);\n                        if (\"boolean\" == typeof e) {\n                            const t = e ? \"true\" : \"false\";\n                            return this.value === t ? g.INSTANCE : u.INSTANCE\n                        }\n                        return this\n                    }\n                    evaluate(e) {\n                        return e.getValue(this.key) == this.value\n                    }\n                    serialize() {\n                        return `${this.key} == '${this.value}'`\n                    }\n                    keys() {\n                        return [this.key]\n                    }\n                    negate() {\n                        return this.negated || (this.negated = _.create(this.key, this.value, this)), this.negated\n                    }\n                }\n                class m {\n                    constructor(e, t) {\n                        this.key = e, this.valueKey = t, this.type = 10, this.negated = null\n                    }\n                    static create(e, t) {\n                        return new m(e, t)\n                    }\n                    cmp(e) {\n                        return e.type !== this.type ? this.type - e.type : O(this.key, this.valueKey, e.key, e.valueKey)\n                    }\n                    equals(e) {\n                        return e.type === this.type && (this.key === e.key && this.valueKey === e.valueKey)\n                    }\n                    substituteConstants() {\n                        return this\n                    }\n                    evaluate(e) {\n                        const t = e.getValue(this.valueKey),\n                            i = e.getValue(this.key);\n                        return Array.isArray(t) ? t.indexOf(i) >= 0 : \"string\" == typeof i && \"object\" == typeof t && null !== t && l.call(t, i)\n                    }\n                    serialize() {\n                        return `${this.key} in '${this.valueKey}'`\n                    }\n                    keys() {\n                        return [this.key, this.valueKey]\n                    }\n                    negate() {\n                        return this.negated || (this.negated = v.create(this)), this.negated\n                    }\n                }\n                class v {\n                    constructor(e) {\n                        this._actual = e, this.type = 11\n                    }\n                    static create(e) {\n                        return new v(e)\n                    }\n                    cmp(e) {\n                        return e.type !== this.type ? this.type - e.type : this._actual.cmp(e._actual)\n                    }\n                    equals(e) {\n                        return e.type === this.type && this._actual.equals(e._actual)\n                    }\n                    substituteConstants() {\n                        return this\n                    }\n                    evaluate(e) {\n                        return !this._actual.evaluate(e)\n                    }\n                    serialize() {\n                        throw new Error(\"Method not implemented.\")\n                    }\n                    keys() {\n                        return this._actual.keys()\n                    }\n                    negate() {\n                        return this._actual\n                    }\n                }\n                class _ {\n                    constructor(e, t, i) {\n                        this.key = e, this.value = t, this.negated = i, this.type = 5\n                    }\n                    static create(e, t, i = null) {\n                        if (\"boolean\" == typeof t) return t ? b.create(e, i) : p.create(e, i);\n                        const n = a.get(e);\n                        if (\"boolean\" == typeof n) {\n                            return t === (n ? \"true\" : \"false\") ? u.INSTANCE : g.INSTANCE\n                        }\n                        return new _(e, t, i)\n                    }\n                    cmp(e) {\n                        return e.type !== this.type ? this.type - e.type : O(this.key, this.value, e.key, e.value)\n                    }\n                    equals(e) {\n                        return e.type === this.type && (this.key === e.key && this.value === e.value)\n                    }\n                    substituteConstants() {\n                        const e = a.get(this.key);\n                        if (\"boolean\" == typeof e) {\n                            const t = e ? \"true\" : \"false\";\n                            return this.value === t ? u.INSTANCE : g.INSTANCE\n                        }\n                        return this\n                    }\n                    evaluate(e) {\n                        return e.getValue(this.key) != this.value\n                    }\n                    serialize() {\n                        return `${this.key} != '${this.value}'`\n                    }\n                    keys() {\n                        return [this.key]\n                    }\n                    negate() {\n                        return this.negated || (this.negated = f.create(this.key, this.value, this)), this.negated\n                    }\n                }\n                class b {\n                    constructor(e, t) {\n                        this.key = e, this.negated = t, this.type = 3\n                    }\n                    static create(e, t = null) {\n                        const i = a.get(e);\n                        return \"boolean\" == typeof i ? i ? u.INSTANCE : g.INSTANCE : new b(e, t)\n                    }\n                    cmp(e) {\n                        return e.type !== this.type ? this.type - e.type : A(this.key, e.key)\n                    }\n                    equals(e) {\n                        return e.type === this.type && this.key === e.key\n                    }\n                    substituteConstants() {\n                        const e = a.get(this.key);\n                        return \"boolean\" == typeof e ? e ? u.INSTANCE : g.INSTANCE : this\n                    }\n                    evaluate(e) {\n                        return !e.getValue(this.key)\n                    }\n                    serialize() {\n                        return `!${this.key}`\n                    }\n                    keys() {\n                        return [this.key]\n                    }\n                    negate() {\n                        return this.negated || (this.negated = p.create(this.key, this)), this.negated\n                    }\n                }\n\n                function w(e, t) {\n                    if (\"string\" == typeof e) {\n                        const t = parseFloat(e);\n                        isNaN(t) || (e = t)\n                    }\n                    return \"string\" == typeof e || \"number\" == typeof e ? t(e) : u.INSTANCE\n                }\n                class y {\n                    constructor(e, t, i) {\n                        this.key = e, this.value = t, this.negated = i, this.type = 12\n                    }\n                    static create(e, t, i = null) {\n                        return w(t, (t => new y(e, t, i)))\n                    }\n                    cmp(e) {\n                        return e.type !== this.type ? this.type - e.type : O(this.key, this.value, e.key, e.value)\n                    }\n                    equals(e) {\n                        return e.type === this.type && (this.key === e.key && this.value === e.value)\n                    }\n                    substituteConstants() {\n                        return this\n                    }\n                    evaluate(e) {\n                        return \"string\" != typeof this.value && parseFloat(e.getValue(this.key)) > this.value\n                    }\n                    serialize() {\n                        return `${this.key} > ${this.value}`\n                    }\n                    keys() {\n                        return [this.key]\n                    }\n                    negate() {\n                        return this.negated || (this.negated = S.create(this.key, this.value, this)), this.negated\n                    }\n                }\n                class C {\n                    constructor(e, t, i) {\n                        this.key = e, this.value = t, this.negated = i, this.type = 13\n                    }\n                    static create(e, t, i = null) {\n                        return w(t, (t => new C(e, t, i)))\n                    }\n                    cmp(e) {\n                        return e.type !== this.type ? this.type - e.type : O(this.key, this.value, e.key, e.value)\n                    }\n                    equals(e) {\n                        return e.type === this.type && (this.key === e.key && this.value === e.value)\n                    }\n                    substituteConstants() {\n                        return this\n                    }\n                    evaluate(e) {\n                        return \"string\" != typeof this.value && parseFloat(e.getValue(this.key)) >= this.value\n                    }\n                    serialize() {\n                        return `${this.key} >= ${this.value}`\n                    }\n                    keys() {\n                        return [this.key]\n                    }\n                    negate() {\n                        return this.negated || (this.negated = x.create(this.key, this.value, this)), this.negated\n                    }\n                }\n                class x {\n                    constructor(e, t, i) {\n                        this.key = e, this.value = t, this.negated = i, this.type = 14\n                    }\n                    static create(e, t, i = null) {\n                        return w(t, (t => new x(e, t, i)))\n                    }\n                    cmp(e) {\n                        return e.type !== this.type ? this.type - e.type : O(this.key, this.value, e.key, e.value)\n                    }\n                    equals(e) {\n                        return e.type === this.type && (this.key === e.key && this.value === e.value)\n                    }\n                    substituteConstants() {\n                        return this\n                    }\n                    evaluate(e) {\n                        return \"string\" != typeof this.value && parseFloat(e.getValue(this.key)) < this.value\n                    }\n                    serialize() {\n                        return `${this.key} < ${this.value}`\n                    }\n                    keys() {\n                        return [this.key]\n                    }\n                    negate() {\n                        return this.negated || (this.negated = C.create(this.key, this.value, this)), this.negated\n                    }\n                }\n                class S {\n                    constructor(e, t, i) {\n                        this.key = e, this.value = t, this.negated = i, this.type = 15\n                    }\n                    static create(e, t, i = null) {\n                        return w(t, (t => new S(e, t, i)))\n                    }\n                    cmp(e) {\n                        return e.type !== this.type ? this.type - e.type : O(this.key, this.value, e.key, e.value)\n                    }\n                    equals(e) {\n                        return e.type === this.type && (this.key === e.key && this.value === e.value)\n                    }\n                    substituteConstants() {\n                        return this\n                    }\n                    evaluate(e) {\n                        return \"string\" != typeof this.value && parseFloat(e.getValue(this.key)) <= this.value\n                    }\n                    serialize() {\n                        return `${this.key} <= ${this.value}`\n                    }\n                    keys() {\n                        return [this.key]\n                    }\n                    negate() {\n                        return this.negated || (this.negated = y.create(this.key, this.value, this)), this.negated\n                    }\n                }\n                class k {\n                    constructor(e, t) {\n                        this.key = e, this.regexp = t, this.type = 7, this.negated = null\n                    }\n                    static create(e, t) {\n                        return new k(e, t)\n                    }\n                    cmp(e) {\n                        if (e.type !== this.type) return this.type - e.type;\n                        if (this.key < e.key) return -1;\n                        if (this.key > e.key) return 1;\n                        const t = this.regexp ? this.regexp.source : \"\",\n                            i = e.regexp ? e.regexp.source : \"\";\n                        return t < i ? -1 : t > i ? 1 : 0\n                    }\n                    equals(e) {\n                        if (e.type === this.type) {\n                            const t = this.regexp ? this.regexp.source : \"\",\n                                i = e.regexp ? e.regexp.source : \"\";\n                            return this.key === e.key && t === i\n                        }\n                        return !1\n                    }\n                    substituteConstants() {\n                        return this\n                    }\n                    evaluate(e) {\n                        let t = e.getValue(this.key);\n                        return !!this.regexp && this.regexp.test(t)\n                    }\n                    serialize() {\n                        const e = this.regexp ? `/${this.regexp.source}/${this.regexp.ignoreCase?\"i\":\"\"}` : \"/invalid/\";\n                        return `${this.key} =~ ${e}`\n                    }\n                    keys() {\n                        return [this.key]\n                    }\n                    negate() {\n                        return this.negated || (this.negated = L.create(this)), this.negated\n                    }\n                }\n                class L {\n                    constructor(e) {\n                        this._actual = e, this.type = 8\n                    }\n                    static create(e) {\n                        return new L(e)\n                    }\n                    cmp(e) {\n                        return e.type !== this.type ? this.type - e.type : this._actual.cmp(e._actual)\n                    }\n                    equals(e) {\n                        return e.type === this.type && this._actual.equals(e._actual)\n                    }\n                    substituteConstants() {\n                        return this\n                    }\n                    evaluate(e) {\n                        return !this._actual.evaluate(e)\n                    }\n                    serialize() {\n                        throw new Error(\"Method not implemented.\")\n                    }\n                    keys() {\n                        return this._actual.keys()\n                    }\n                    negate() {\n                        return this._actual\n                    }\n                }\n\n                function N(e) {\n                    let t = null;\n                    for (let i = 0, n = e.length; i < n; i++) {\n                        const n = e[i].substituteConstants();\n                        if (e[i] !== n && null === t) {\n                            t = [];\n                            for (let n = 0; n < i; n++) t[n] = e[n]\n                        }\n                        null !== t && (t[i] = n)\n                    }\n                    return null === t ? e : t\n                }\n                class D {\n                    constructor(e, t) {\n                        this.expr = e, this.negated = t, this.type = 6\n                    }\n                    static create(e, t) {\n                        return D._normalizeArr(e, t)\n                    }\n                    cmp(e) {\n                        if (e.type !== this.type) return this.type - e.type;\n                        if (this.expr.length < e.expr.length) return -1;\n                        if (this.expr.length > e.expr.length) return 1;\n                        for (let t = 0, i = this.expr.length; t < i; t++) {\n                            const i = h(this.expr[t], e.expr[t]);\n                            if (0 !== i) return i\n                        }\n                        return 0\n                    }\n                    equals(e) {\n                        if (e.type === this.type) {\n                            if (this.expr.length !== e.expr.length) return !1;\n                            for (let t = 0, i = this.expr.length; t < i; t++)\n                                if (!this.expr[t].equals(e.expr[t])) return !1;\n                            return !0\n                        }\n                        return !1\n                    }\n                    substituteConstants() {\n                        const e = N(this.expr);\n                        return e === this.expr ? this : D.create(e, this.negated)\n                    }\n                    evaluate(e) {\n                        for (let t = 0, i = this.expr.length; t < i; t++)\n                            if (!this.expr[t].evaluate(e)) return !1;\n                        return !0\n                    }\n                    static _normalizeArr(e, t) {\n                        const i = [];\n                        let n = !1;\n                        for (const t of e)\n                            if (t)\n                                if (1 !== t.type) {\n                                    if (0 === t.type) return u.INSTANCE;\n                                    6 !== t.type ? i.push(t) : i.push(...t.expr)\n                                } else n = !0;\n                        if (0 === i.length && n) return g.INSTANCE;\n                        if (0 !== i.length) {\n                            if (1 === i.length) return i[0];\n                            i.sort(h);\n                            for (let e = 1; e < i.length; e++) i[e - 1].equals(i[e]) && (i.splice(e, 1), e--);\n                            if (1 === i.length) return i[0];\n                            for (; i.length > 1;) {\n                                const e = i[i.length - 1];\n                                if (9 !== e.type) break;\n                                i.pop();\n                                const t = i.pop(),\n                                    n = 0 === i.length,\n                                    o = I.create(e.expr.map((e => D.create([e, t], null))), null, n);\n                                o && (i.push(o), i.sort(h))\n                            }\n                            return 1 === i.length ? i[0] : new D(i, t)\n                        }\n                    }\n                    serialize() {\n                        return this.expr.map((e => e.serialize())).join(\" && \")\n                    }\n                    keys() {\n                        const e = [];\n                        for (let t of this.expr) e.push(...t.keys());\n                        return e\n                    }\n                    negate() {\n                        if (!this.negated) {\n                            const e = [];\n                            for (let t of this.expr) e.push(t.negate());\n                            this.negated = I.create(e, this, !0)\n                        }\n                        return this.negated\n                    }\n                }\n                class I {\n                    constructor(e, t) {\n                        this.expr = e, this.negated = t, this.type = 9\n                    }\n                    static create(e, t, i) {\n                        return I._normalizeArr(e, t, i)\n                    }\n                    cmp(e) {\n                        if (e.type !== this.type) return this.type - e.type;\n                        if (this.expr.length < e.expr.length) return -1;\n                        if (this.expr.length > e.expr.length) return 1;\n                        for (let t = 0, i = this.expr.length; t < i; t++) {\n                            const i = h(this.expr[t], e.expr[t]);\n                            if (0 !== i) return i\n                        }\n                        return 0\n                    }\n                    equals(e) {\n                        if (e.type === this.type) {\n                            if (this.expr.length !== e.expr.length) return !1;\n                            for (let t = 0, i = this.expr.length; t < i; t++)\n                                if (!this.expr[t].equals(e.expr[t])) return !1;\n                            return !0\n                        }\n                        return !1\n                    }\n                    substituteConstants() {\n                        const e = N(this.expr);\n                        return e === this.expr ? this : I.create(e, this.negated, !1)\n                    }\n                    evaluate(e) {\n                        for (let t = 0, i = this.expr.length; t < i; t++)\n                            if (this.expr[t].evaluate(e)) return !0;\n                        return !1\n                    }\n                    static _normalizeArr(e, t, i) {\n                        let n = [],\n                            o = !1;\n                        if (e) {\n                            for (let t = 0, i = e.length; t < i; t++) {\n                                const i = e[t];\n                                if (i)\n                                    if (0 !== i.type) {\n                                        if (1 === i.type) return g.INSTANCE;\n                                        9 !== i.type ? n.push(i) : n = n.concat(i.expr)\n                                    } else o = !0\n                            }\n                            if (0 === n.length && o) return u.INSTANCE;\n                            n.sort(h)\n                        }\n                        if (0 !== n.length) {\n                            if (1 === n.length) return n[0];\n                            for (let e = 1; e < n.length; e++) n[e - 1].equals(n[e]) && (n.splice(e, 1), e--);\n                            if (1 === n.length) return n[0];\n                            if (i) {\n                                for (let e = 0; e < n.length; e++)\n                                    for (let t = e + 1; t < n.length; t++) P(n[e], n[t]) && (n.splice(t, 1), t--);\n                                if (1 === n.length) return n[0]\n                            }\n                            return new I(n, t)\n                        }\n                    }\n                    serialize() {\n                        return this.expr.map((e => e.serialize())).join(\" || \")\n                    }\n                    keys() {\n                        const e = [];\n                        for (let t of this.expr) e.push(...t.keys());\n                        return e\n                    }\n                    negate() {\n                        if (!this.negated) {\n                            let e = [];\n                            for (let t of this.expr) e.push(t.negate());\n                            for (; e.length > 1;) {\n                                const t = e.shift(),\n                                    i = e.shift(),\n                                    n = [];\n                                for (const e of R(t))\n                                    for (const t of R(i)) n.push(D.create([e, t], null));\n                                const o = 0 === e.length;\n                                e.unshift(I.create(n, null, o))\n                            }\n                            this.negated = e[0]\n                        }\n                        return this.negated\n                    }\n                }\n                class E extends p {\n                    constructor(e, t, i) {\n                        super(e, null), this._defaultValue = t, \"object\" == typeof i ? E._info.push(Object.assign(Object.assign({}, i), {\n                            key: e\n                        })) : !0 !== i && E._info.push({\n                            key: e,\n                            description: i,\n                            type: null != t ? typeof t : void 0\n                        })\n                    }\n                    static all() {\n                        return E._info.values()\n                    }\n                    bindTo(e) {\n                        return e.createKey(this.key, this._defaultValue)\n                    }\n                    getValue(e) {\n                        return e.getContextKeyValue(this.key)\n                    }\n                    toNegated() {\n                        return this.negate()\n                    }\n                    isEqualTo(e) {\n                        return f.create(this.key, e)\n                    }\n                }\n                E._info = [];\n                const T = (0, s.yh)(\"contextKeyService\"),\n                    M = \"setContext\";\n\n                function A(e, t) {\n                    return e < t ? -1 : e > t ? 1 : 0\n                }\n\n                function O(e, t, i, n) {\n                    return e < i ? -1 : e > i ? 1 : t < n ? -1 : t > n ? 1 : 0\n                }\n\n                function P(e, t) {\n                    if (6 === t.type && 9 !== e.type && 6 !== e.type)\n                        for (const i of t.expr)\n                            if (e.equals(i)) return !0;\n                    const i = R(e.negate()).concat(R(t));\n                    i.sort(h);\n                    for (let e = 0; e < i.length; e++) {\n                        const t = i[e].negate();\n                        for (let n = e + 1; n < i.length; n++) {\n                            const e = i[n];\n                            if (t.equals(e)) return !0\n                        }\n                    }\n                    return !1\n                }\n\n                function R(e) {\n                    return 9 === e.type ? e.expr : [e]\n                }\n            },\n            39282: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    c: () => s,\n                    d: () => r\n                });\n                var n = i(1432),\n                    o = i(63580);\n                const s = new(i(38819).uy)(\"isWindows\", n.ED, (0, o.N)(\"isWindows\", \"Whether the operating system is Windows\")),\n                    r = \"inputFocus\"\n            },\n            5606: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    i: () => s,\n                    u: () => o\n                });\n                var n = i(72065);\n                const o = (0, n.yh)(\"contextViewService\"),\n                    s = (0, n.yh)(\"contextMenuService\")\n            },\n            28820: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    S: () => n\n                });\n                const n = (0, i(72065).yh)(\"dialogService\")\n            },\n            97108: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    M: () => n\n                });\n                class n {\n                    constructor(e, t = [], i = !1) {\n                        this.ctor = e, this.staticArguments = t, this.supportsDelayedInstantiation = i\n                    }\n                }\n            },\n            65026: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    d: () => r,\n                    z: () => s\n                });\n                var n = i(97108);\n                const o = [];\n\n                function s(e, t, i) {\n                    t instanceof n.M || (t = new n.M(t, [], i)), o.push([e, t])\n                }\n\n                function r() {\n                    return o\n                }\n            },\n            72065: (e, t, i) => {\n                \"use strict\";\n                var n;\n                i.d(t, {\n                        I8: () => n,\n                        TG: () => o,\n                        jt: () => a,\n                        yh: () => r\n                    }),\n                    function(e) {\n                        e.serviceIds = new Map, e.DI_TARGET = \"$di$target\", e.DI_DEPENDENCIES = \"$di$dependencies\", e.getServiceDependencies = function(t) {\n                            return t[e.DI_DEPENDENCIES] || []\n                        }\n                    }(n || (n = {}));\n                const o = r(\"instantiationService\");\n\n                function s(e, t, i, o) {\n                    t[n.DI_TARGET] === t ? t[n.DI_DEPENDENCIES].push({\n                        id: e,\n                        index: i,\n                        optional: o\n                    }) : (t[n.DI_DEPENDENCIES] = [{\n                        id: e,\n                        index: i,\n                        optional: o\n                    }], t[n.DI_TARGET] = t)\n                }\n\n                function r(e) {\n                    if (n.serviceIds.has(e)) return n.serviceIds.get(e);\n                    const t = function(e, i, n) {\n                        if (3 !== arguments.length) throw new Error(\"@IServiceName-decorator can only be used to decorate a parameter\");\n                        s(t, e, n, !1)\n                    };\n                    return t.toString = () => e, n.serviceIds.set(e, t), t\n                }\n\n                function a(e) {\n                    return function(t, i, n) {\n                        if (3 !== arguments.length) throw new Error(\"@optional-decorator can only be used to decorate a parameter\");\n                        s(e, t, n, !0)\n                    }\n                }\n            },\n            60972: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    y: () => n\n                });\n                class n {\n                    constructor(...e) {\n                        this._entries = new Map;\n                        for (let [t, i] of e) this.set(t, i)\n                    }\n                    set(e, t) {\n                        const i = this._entries.get(e);\n                        return this._entries.set(e, t), i\n                    }\n                    has(e) {\n                        return this._entries.has(e)\n                    }\n                    get(e) {\n                        return this._entries.get(e)\n                    }\n                }\n            },\n            81294: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    I: () => s\n                });\n                var n = i(4669),\n                    o = i(89872);\n                const s = {\n                    JSONContribution: \"base.contributions.json\"\n                };\n                const r = new class {\n                    constructor() {\n                        this._onDidChangeSchema = new n.Q5, this.schemasById = {}\n                    }\n                    registerSchema(e, t) {\n                        var i;\n                        this.schemasById[(i = e, i.length > 0 && \"#\" === i.charAt(i.length - 1) ? i.substring(0, i.length - 1) : i)] = t, this._onDidChangeSchema.fire(e)\n                    }\n                    notifySchemaChanged(e) {\n                        this._onDidChangeSchema.fire(e)\n                    }\n                };\n                o.B.add(s.JSONContribution, r)\n            },\n            91847: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    d: () => n\n                });\n                const n = (0, i(72065).yh)(\"keybindingService\")\n            },\n            49989: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    W: () => l\n                });\n                var n = i(8313),\n                    o = i(1432),\n                    s = i(94565),\n                    r = i(89872);\n                class a {\n                    constructor() {\n                        this._coreKeybindings = [], this._extensionKeybindings = [], this._cachedMergedKeybindings = null\n                    }\n                    static bindToCurrentPlatform(e) {\n                        if (1 === o.OS) {\n                            if (e && e.win) return e.win\n                        } else if (2 === o.OS) {\n                            if (e && e.mac) return e.mac\n                        } else if (e && e.linux) return e.linux;\n                        return e\n                    }\n                    registerKeybindingRule(e) {\n                        const t = a.bindToCurrentPlatform(e);\n                        if (t && t.primary) {\n                            const i = (0, n.gm)(t.primary, o.OS);\n                            i && this._registerDefaultKeybinding(i, e.id, e.args, e.weight, 0, e.when)\n                        }\n                        if (t && Array.isArray(t.secondary))\n                            for (let i = 0, s = t.secondary.length; i < s; i++) {\n                                const s = t.secondary[i],\n                                    r = (0, n.gm)(s, o.OS);\n                                r && this._registerDefaultKeybinding(r, e.id, e.args, e.weight, -i - 1, e.when)\n                            }\n                    }\n                    registerCommandAndKeybindingRule(e) {\n                        this.registerKeybindingRule(e), s.P.registerCommand(e)\n                    }\n                    static _mightProduceChar(e) {\n                        return e >= 21 && e <= 30 || (e >= 31 && e <= 56 || (80 === e || 81 === e || 82 === e || 83 === e || 84 === e || 85 === e || 86 === e || 110 === e || 111 === e || 87 === e || 88 === e || 89 === e || 90 === e || 91 === e || 92 === e))\n                    }\n                    _assertNoCtrlAlt(e, t) {\n                        e.ctrlKey && e.altKey && !e.metaKey && a._mightProduceChar(e.keyCode) && console.warn(\"Ctrl+Alt+ keybindings should not be used by default under Windows. Offender: \", e, \" for \", t)\n                    }\n                    _registerDefaultKeybinding(e, t, i, n, s, r) {\n                        1 === o.OS && this._assertNoCtrlAlt(e.parts[0], t), this._coreKeybindings.push({\n                            keybinding: e.parts,\n                            command: t,\n                            commandArgs: i,\n                            when: r,\n                            weight1: n,\n                            weight2: s,\n                            extensionId: null,\n                            isBuiltinExtension: !1\n                        }), this._cachedMergedKeybindings = null\n                    }\n                    getDefaultKeybindings() {\n                        return this._cachedMergedKeybindings || (this._cachedMergedKeybindings = [].concat(this._coreKeybindings).concat(this._extensionKeybindings), this._cachedMergedKeybindings.sort(c)), this._cachedMergedKeybindings.slice(0)\n                    }\n                }\n                const l = new a;\n\n                function c(e, t) {\n                    return e.weight1 !== t.weight1 ? e.weight1 - t.weight1 : e.command < t.command ? -1 : e.command > t.command ? 1 : e.weight2 - t.weight2\n                }\n                r.B.add(\"platform.keybindingsRegistry\", l)\n            },\n            44349: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    e: () => n\n                });\n                const n = (0, i(72065).yh)(\"labelService\")\n            },\n            20343: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    Lw: () => qe,\n                    XN: () => Ze,\n                    ls: () => It,\n                    ev: () => _t,\n                    CQ: () => Qe\n                });\n                var n = i(65321),\n                    o = i(9488),\n                    s = i(71050),\n                    r = i(4669),\n                    a = i(5976),\n                    l = (i(60408), i(43799));\n                class c {\n                    constructor(e, t) {\n                        this.renderer = e, this.modelProvider = t\n                    }\n                    get templateId() {\n                        return this.renderer.templateId\n                    }\n                    renderTemplate(e) {\n                        return {\n                            data: this.renderer.renderTemplate(e),\n                            disposable: a.JT.None\n                        }\n                    }\n                    renderElement(e, t, i, n) {\n                        if (i.disposable && i.disposable.dispose(), !i.data) return;\n                        const o = this.modelProvider();\n                        if (o.isResolved(e)) return this.renderer.renderElement(o.get(e), e, i.data, n);\n                        const r = new s.A,\n                            a = o.resolve(e, r.token);\n                        i.disposable = {\n                            dispose: () => r.cancel()\n                        }, this.renderer.renderPlaceholder(e, i.data), a.then((t => this.renderer.renderElement(t, e, i.data, n)))\n                    }\n                    disposeTemplate(e) {\n                        e.disposable && (e.disposable.dispose(), e.disposable = void 0), e.data && (this.renderer.disposeTemplate(e.data), e.data = void 0)\n                    }\n                }\n                class d {\n                    constructor(e, t) {\n                        this.modelProvider = e, this.accessibilityProvider = t\n                    }\n                    getWidgetAriaLabel() {\n                        return this.accessibilityProvider.getWidgetAriaLabel()\n                    }\n                    getAriaLabel(e) {\n                        const t = this.modelProvider();\n                        return t.isResolved(e) ? this.accessibilityProvider.getAriaLabel(t.get(e)) : null\n                    }\n                }\n                class h {\n                    constructor(e, t, i, n, o = {}) {\n                        const s = () => this.model,\n                            r = n.map((e => new c(e, s)));\n                        this.list = new l.aV(e, t, i, r, function(e, t) {\n                            return Object.assign(Object.assign({}, t), {\n                                accessibilityProvider: t.accessibilityProvider && new d(e, t.accessibilityProvider)\n                            })\n                        }(s, o))\n                    }\n                    updateOptions(e) {\n                        this.list.updateOptions(e)\n                    }\n                    getHTMLElement() {\n                        return this.list.getHTMLElement()\n                    }\n                    get onDidFocus() {\n                        return this.list.onDidFocus\n                    }\n                    get onDidDispose() {\n                        return this.list.onDidDispose\n                    }\n                    get onMouseDblClick() {\n                        return r.ju.map(this.list.onMouseDblClick, (({\n                            element: e,\n                            index: t,\n                            browserEvent: i\n                        }) => ({\n                            element: void 0 === e ? void 0 : this._model.get(e),\n                            index: t,\n                            browserEvent: i\n                        })))\n                    }\n                    get onPointer() {\n                        return r.ju.map(this.list.onPointer, (({\n                            element: e,\n                            index: t,\n                            browserEvent: i\n                        }) => ({\n                            element: void 0 === e ? void 0 : this._model.get(e),\n                            index: t,\n                            browserEvent: i\n                        })))\n                    }\n                    get onDidChangeSelection() {\n                        return r.ju.map(this.list.onDidChangeSelection, (({\n                            elements: e,\n                            indexes: t,\n                            browserEvent: i\n                        }) => ({\n                            elements: e.map((e => this._model.get(e))),\n                            indexes: t,\n                            browserEvent: i\n                        })))\n                    }\n                    get model() {\n                        return this._model\n                    }\n                    set model(e) {\n                        this._model = e, this.list.splice(0, this.list.length, (0, o.w6)(e.length))\n                    }\n                    getFocus() {\n                        return this.list.getFocus()\n                    }\n                    getSelection() {\n                        return this.list.getSelection()\n                    }\n                    getSelectedElements() {\n                        return this.getSelection().map((e => this.model.get(e)))\n                    }\n                    style(e) {\n                        this.list.style(e)\n                    }\n                    dispose() {\n                        this.list.dispose()\n                    }\n                }\n                var u = i(23937);\n                i(87868);\n                class g {\n                    constructor(e, t, i) {\n                        this.columns = e, this.getColumnSize = i, this.templateId = g.TemplateId, this.renderedTemplates = new Set;\n                        const n = new Map(t.map((e => [e.templateId, e])));\n                        this.renderers = [];\n                        for (const t of e) {\n                            const e = n.get(t.templateId);\n                            if (!e) throw new Error(`Table cell renderer for template id ${t.templateId} not found.`);\n                            this.renderers.push(e)\n                        }\n                    }\n                    renderTemplate(e) {\n                        const t = (0, n.R3)(e, (0, n.$)(\".monaco-table-tr\")),\n                            i = [],\n                            o = [];\n                        for (let e = 0; e < this.columns.length; e++) {\n                            const s = this.renderers[e],\n                                r = (0, n.R3)(t, (0, n.$)(\".monaco-table-td\", {\n                                    \"data-col-index\": e\n                                }));\n                            r.style.width = `${this.getColumnSize(e)}px`, i.push(r), o.push(s.renderTemplate(r))\n                        }\n                        const s = {\n                            container: e,\n                            cellContainers: i,\n                            cellTemplateData: o\n                        };\n                        return this.renderedTemplates.add(s), s\n                    }\n                    renderElement(e, t, i, n) {\n                        for (let o = 0; o < this.columns.length; o++) {\n                            const s = this.columns[o].project(e);\n                            this.renderers[o].renderElement(s, t, i.cellTemplateData[o], n)\n                        }\n                    }\n                    disposeElement(e, t, i, n) {\n                        for (let o = 0; o < this.columns.length; o++) {\n                            const s = this.renderers[o];\n                            if (s.disposeElement) {\n                                const r = this.columns[o].project(e);\n                                s.disposeElement(r, t, i.cellTemplateData[o], n)\n                            }\n                        }\n                    }\n                    disposeTemplate(e) {\n                        for (let t = 0; t < this.columns.length; t++) {\n                            this.renderers[t].disposeTemplate(e.cellTemplateData[t])\n                        }(0, n.PO)(e.container), this.renderedTemplates.delete(e)\n                    }\n                    layoutColumn(e, t) {\n                        for (const {\n                                cellContainers: i\n                            } of this.renderedTemplates) i[e].style.width = `${t}px`\n                    }\n                }\n                g.TemplateId = \"row\";\n                class p {\n                    constructor(e, t) {\n                        this.column = e, this.index = t, this._onDidLayout = new r.Q5, this.onDidLayout = this._onDidLayout.event, this.element = (0, n.$)(\".monaco-table-th\", {\n                            \"data-col-index\": t,\n                            title: e.tooltip\n                        }, e.label)\n                    }\n                    get minimumSize() {\n                        var e;\n                        return null !== (e = this.column.minimumWidth) && void 0 !== e ? e : 120\n                    }\n                    get maximumSize() {\n                        var e;\n                        return null !== (e = this.column.maximumWidth) && void 0 !== e ? e : Number.POSITIVE_INFINITY\n                    }\n                    get onDidChange() {\n                        var e;\n                        return null !== (e = this.column.onDidChangeWidthConstraints) && void 0 !== e ? e : r.ju.None\n                    }\n                    layout(e) {\n                        this._onDidLayout.fire([this.index, e])\n                    }\n                }\n                class f {\n                    constructor(e, t, i, o, s, a) {\n                        this.virtualDelegate = i, this.domId = \"table_id_\" + ++f.InstanceCount, this.cachedHeight = 0, this.domNode = (0, n.R3)(t, (0, n.$)(`.monaco-table.${this.domId}`));\n                        const c = o.map(((e, t) => new p(e, t))),\n                            d = {\n                                size: c.reduce(((e, t) => e + t.column.weight), 0),\n                                views: c.map((e => ({\n                                    size: e.column.weight,\n                                    view: e\n                                })))\n                            };\n                        this.splitview = new u.z(this.domNode, {\n                            orientation: 1,\n                            scrollbarVisibility: 2,\n                            getSashOrthogonalSize: () => this.cachedHeight,\n                            descriptor: d\n                        }), this.splitview.el.style.height = `${i.headerRowHeight}px`, this.splitview.el.style.lineHeight = `${i.headerRowHeight}px`;\n                        const h = new g(o, s, (e => this.splitview.getViewSize(e)));\n                        var m;\n                        this.list = new l.aV(e, this.domNode, (m = i, {\n                            getHeight: e => m.getHeight(e),\n                            getTemplateId: () => g.TemplateId\n                        }), [h], a), this.columnLayoutDisposable = r.ju.any(...c.map((e => e.onDidLayout)))((([e, t]) => h.layoutColumn(e, t))), this.styleElement = (0, n.dS)(this.domNode), this.style({})\n                    }\n                    get onDidChangeFocus() {\n                        return this.list.onDidChangeFocus\n                    }\n                    get onDidChangeSelection() {\n                        return this.list.onDidChangeSelection\n                    }\n                    get onMouseDblClick() {\n                        return this.list.onMouseDblClick\n                    }\n                    get onPointer() {\n                        return this.list.onPointer\n                    }\n                    get onDidFocus() {\n                        return this.list.onDidFocus\n                    }\n                    get onDidDispose() {\n                        return this.list.onDidDispose\n                    }\n                    updateOptions(e) {\n                        this.list.updateOptions(e)\n                    }\n                    splice(e, t, i = []) {\n                        this.list.splice(e, t, i)\n                    }\n                    getHTMLElement() {\n                        return this.domNode\n                    }\n                    style(e) {\n                        const t = [];\n                        t.push(`.monaco-table.${this.domId} > .monaco-split-view2 .monaco-sash.vertical::before {\\n\\t\\t\\ttop: ${this.virtualDelegate.headerRowHeight+1}px;\\n\\t\\t\\theight: calc(100% - ${this.virtualDelegate.headerRowHeight}px);\\n\\t\\t}`), this.styleElement.textContent = t.join(\"\\n\"), this.list.style(e)\n                    }\n                    getSelectedElements() {\n                        return this.list.getSelectedElements()\n                    }\n                    getSelection() {\n                        return this.list.getSelection()\n                    }\n                    getFocus() {\n                        return this.list.getFocus()\n                    }\n                    dispose() {\n                        this.splitview.dispose(), this.list.dispose(), this.columnLayoutDisposable.dispose()\n                    }\n                }\n                f.InstanceCount = 0;\n                var m, v = i(25707),\n                    _ = i(23547),\n                    b = i(4850),\n                    w = i(59069);\n                ! function(e) {\n                    e[e.Unknown = 0] = \"Unknown\", e[e.Twistie = 1] = \"Twistie\", e[e.Element = 2] = \"Element\"\n                }(m || (m = {}));\n                class y extends Error {\n                    constructor(e, t) {\n                        super(`TreeError [${e}] ${t}`)\n                    }\n                }\n                class C {\n                    constructor(e) {\n                        this.fn = e, this._map = new WeakMap\n                    }\n                    map(e) {\n                        let t = this._map.get(e);\n                        return t || (t = this.fn(e), this._map.set(e, t)), t\n                    }\n                }\n                var x = i(2484),\n                    S = i(53725);\n\n                function k(e) {\n                    return \"object\" == typeof e && \"visibility\" in e && \"data\" in e\n                }\n\n                function L(e) {\n                    switch (e) {\n                        case !0:\n                            return 1;\n                        case !1:\n                            return 0;\n                        default:\n                            return e\n                    }\n                }\n\n                function N(e) {\n                    return \"boolean\" == typeof e.collapsible\n                }\n                class D {\n                    constructor(e, t, i, n = {}) {\n                        this.user = e, this.list = t, this.rootRef = [], this.eventBufferer = new r.E7, this._onDidChangeCollapseState = new r.Q5, this.onDidChangeCollapseState = this.eventBufferer.wrapEvent(this._onDidChangeCollapseState.event), this._onDidChangeRenderNodeCount = new r.Q5, this.onDidChangeRenderNodeCount = this.eventBufferer.wrapEvent(this._onDidChangeRenderNodeCount.event), this._onDidSplice = new r.Q5, this.onDidSplice = this._onDidSplice.event, this.collapseByDefault = void 0 !== n.collapseByDefault && n.collapseByDefault, this.filter = n.filter, this.autoExpandSingleChildren = void 0 !== n.autoExpandSingleChildren && n.autoExpandSingleChildren, this.root = {\n                            parent: void 0,\n                            element: i,\n                            children: [],\n                            depth: 0,\n                            visibleChildrenCount: 0,\n                            visibleChildIndex: -1,\n                            collapsible: !1,\n                            collapsed: !1,\n                            renderNodeCount: 0,\n                            visibility: 1,\n                            visible: !0,\n                            filterData: void 0\n                        }\n                    }\n                    splice(e, t, i = S.$.empty(), n = {}) {\n                        if (0 === e.length) throw new y(this.user, \"Invalid tree location\");\n                        n.diffIdentityProvider ? this.spliceSmart(n.diffIdentityProvider, e, t, i, n) : this.spliceSimple(e, t, i, n)\n                    }\n                    spliceSmart(e, t, i, n, o, s) {\n                        var r;\n                        void 0 === n && (n = S.$.empty()), void 0 === s && (s = null !== (r = o.diffDepth) && void 0 !== r ? r : 0);\n                        const {\n                            parentNode: a\n                        } = this.getParentNodeWithListIndex(t);\n                        if (!a.lastDiffIds) return this.spliceSimple(t, i, n, o);\n                        const l = [...n],\n                            c = t[t.length - 1],\n                            d = new x.Hs({\n                                getElements: () => a.lastDiffIds\n                            }, {\n                                getElements: () => [...a.children.slice(0, c), ...l, ...a.children.slice(c + i)].map((t => e.getId(t.element).toString()))\n                            }).ComputeDiff(!1);\n                        if (d.quitEarly) return a.lastDiffIds = void 0, this.spliceSimple(t, i, l, o);\n                        const h = t.slice(0, -1),\n                            u = (t, i, n) => {\n                                if (s > 0)\n                                    for (let r = 0; r < n; r++) t--, i--, this.spliceSmart(e, [...h, t, 0], Number.MAX_SAFE_INTEGER, l[i].children, o, s - 1)\n                            };\n                        let g = Math.min(a.children.length, c + i),\n                            p = l.length;\n                        for (const e of d.changes.sort(((e, t) => t.originalStart - e.originalStart))) u(g, p, g - (e.originalStart + e.originalLength)), g = e.originalStart, p = e.modifiedStart - c, this.spliceSimple([...h, g], e.originalLength, S.$.slice(l, p, p + e.modifiedLength), o);\n                        u(g, p, g)\n                    }\n                    spliceSimple(e, t, i = S.$.empty(), {\n                        onDidCreateNode: n,\n                        onDidDeleteNode: s,\n                        diffIdentityProvider: r\n                    }) {\n                        const {\n                            parentNode: a,\n                            listIndex: l,\n                            revealed: c,\n                            visible: d\n                        } = this.getParentNodeWithListIndex(e), h = [], u = S.$.map(i, (e => this.createTreeNode(e, a, a.visible ? 1 : 0, c, h, n))), g = e[e.length - 1], p = a.children.length > 0;\n                        let f = 0;\n                        for (let e = g; e >= 0 && e < a.children.length; e--) {\n                            const t = a.children[e];\n                            if (t.visible) {\n                                f = t.visibleChildIndex;\n                                break\n                            }\n                        }\n                        const m = [];\n                        let v = 0,\n                            _ = 0;\n                        for (const e of u) m.push(e), _ += e.renderNodeCount, e.visible && (e.visibleChildIndex = f + v++);\n                        const b = (0, o.db)(a.children, g, t, m);\n                        r ? a.lastDiffIds ? (0, o.db)(a.lastDiffIds, g, t, m.map((e => r.getId(e.element).toString()))) : a.lastDiffIds = a.children.map((e => r.getId(e.element).toString())) : a.lastDiffIds = void 0;\n                        let w = 0;\n                        for (const e of b) e.visible && w++;\n                        if (0 !== w)\n                            for (let e = g + m.length; e < a.children.length; e++) {\n                                const t = a.children[e];\n                                t.visible && (t.visibleChildIndex -= w)\n                            }\n                        if (a.visibleChildrenCount += v - w, c && d) {\n                            const e = b.reduce(((e, t) => e + (t.visible ? t.renderNodeCount : 0)), 0);\n                            this._updateAncestorsRenderNodeCount(a, _ - e), this.list.splice(l, e, h)\n                        }\n                        if (b.length > 0 && s) {\n                            const e = t => {\n                                s(t), t.children.forEach(e)\n                            };\n                            b.forEach(e)\n                        }\n                        const y = a.children.length > 0;\n                        p !== y && this.setCollapsible(e.slice(0, -1), y), this._onDidSplice.fire({\n                            insertedNodes: m,\n                            deletedNodes: b\n                        });\n                        let C = a;\n                        for (; C;) {\n                            if (2 === C.visibility) {\n                                this.refilter();\n                                break\n                            }\n                            C = C.parent\n                        }\n                    }\n                    rerender(e) {\n                        if (0 === e.length) throw new y(this.user, \"Invalid tree location\");\n                        const {\n                            node: t,\n                            listIndex: i,\n                            revealed: n\n                        } = this.getTreeNodeWithListIndex(e);\n                        t.visible && n && this.list.splice(i, 1, [t])\n                    }\n                    has(e) {\n                        return this.hasTreeNode(e)\n                    }\n                    getListIndex(e) {\n                        const {\n                            listIndex: t,\n                            visible: i,\n                            revealed: n\n                        } = this.getTreeNodeWithListIndex(e);\n                        return i && n ? t : -1\n                    }\n                    getListRenderCount(e) {\n                        return this.getTreeNode(e).renderNodeCount\n                    }\n                    isCollapsible(e) {\n                        return this.getTreeNode(e).collapsible\n                    }\n                    setCollapsible(e, t) {\n                        const i = this.getTreeNode(e);\n                        void 0 === t && (t = !i.collapsible);\n                        const n = {\n                            collapsible: t\n                        };\n                        return this.eventBufferer.bufferEvents((() => this._setCollapseState(e, n)))\n                    }\n                    isCollapsed(e) {\n                        return this.getTreeNode(e).collapsed\n                    }\n                    setCollapsed(e, t, i) {\n                        const n = this.getTreeNode(e);\n                        void 0 === t && (t = !n.collapsed);\n                        const o = {\n                            collapsed: t,\n                            recursive: i || !1\n                        };\n                        return this.eventBufferer.bufferEvents((() => this._setCollapseState(e, o)))\n                    }\n                    _setCollapseState(e, t) {\n                        const {\n                            node: i,\n                            listIndex: n,\n                            revealed: o\n                        } = this.getTreeNodeWithListIndex(e), s = this._setListNodeCollapseState(i, n, o, t);\n                        if (i !== this.root && this.autoExpandSingleChildren && s && !N(t) && i.collapsible && !i.collapsed && !t.recursive) {\n                            let n = -1;\n                            for (let e = 0; e < i.children.length; e++) {\n                                if (i.children[e].visible) {\n                                    if (n > -1) {\n                                        n = -1;\n                                        break\n                                    }\n                                    n = e\n                                }\n                            }\n                            n > -1 && this._setCollapseState([...e, n], t)\n                        }\n                        return s\n                    }\n                    _setListNodeCollapseState(e, t, i, n) {\n                        const o = this._setNodeCollapseState(e, n, !1);\n                        if (!i || !e.visible || !o) return o;\n                        const s = e.renderNodeCount,\n                            r = this.updateNodeAfterCollapseChange(e),\n                            a = s - (-1 === t ? 0 : 1);\n                        return this.list.splice(t + 1, a, r.slice(1)), o\n                    }\n                    _setNodeCollapseState(e, t, i) {\n                        let n;\n                        if (e === this.root ? n = !1 : (N(t) ? (n = e.collapsible !== t.collapsible, e.collapsible = t.collapsible) : e.collapsible ? (n = e.collapsed !== t.collapsed, e.collapsed = t.collapsed) : n = !1, n && this._onDidChangeCollapseState.fire({\n                                node: e,\n                                deep: i\n                            })), !N(t) && t.recursive)\n                            for (const i of e.children) n = this._setNodeCollapseState(i, t, !0) || n;\n                        return n\n                    }\n                    expandTo(e) {\n                        this.eventBufferer.bufferEvents((() => {\n                            let t = this.getTreeNode(e);\n                            for (; t.parent;) t = t.parent, e = e.slice(0, e.length - 1), t.collapsed && this._setCollapseState(e, {\n                                collapsed: !1,\n                                recursive: !1\n                            })\n                        }))\n                    }\n                    refilter() {\n                        const e = this.root.renderNodeCount,\n                            t = this.updateNodeAfterFilterChange(this.root);\n                        this.list.splice(0, e, t)\n                    }\n                    createTreeNode(e, t, i, n, o, s) {\n                        const r = {\n                                parent: t,\n                                element: e.element,\n                                children: [],\n                                depth: t.depth + 1,\n                                visibleChildrenCount: 0,\n                                visibleChildIndex: -1,\n                                collapsible: \"boolean\" == typeof e.collapsible ? e.collapsible : void 0 !== e.collapsed,\n                                collapsed: void 0 === e.collapsed ? this.collapseByDefault : e.collapsed,\n                                renderNodeCount: 1,\n                                visibility: 1,\n                                visible: !0,\n                                filterData: void 0\n                            },\n                            a = this._filterNode(r, i);\n                        r.visibility = a, n && o.push(r);\n                        const l = e.children || S.$.empty(),\n                            c = n && 0 !== a && !r.collapsed,\n                            d = S.$.map(l, (e => this.createTreeNode(e, r, a, c, o, s)));\n                        let h = 0,\n                            u = 1;\n                        for (const e of d) r.children.push(e), u += e.renderNodeCount, e.visible && (e.visibleChildIndex = h++);\n                        return r.collapsible = r.collapsible || r.children.length > 0, r.visibleChildrenCount = h, r.visible = 2 === a ? h > 0 : 1 === a, r.visible ? r.collapsed || (r.renderNodeCount = u) : (r.renderNodeCount = 0, n && o.pop()), s && s(r), r\n                    }\n                    updateNodeAfterCollapseChange(e) {\n                        const t = e.renderNodeCount,\n                            i = [];\n                        return this._updateNodeAfterCollapseChange(e, i), this._updateAncestorsRenderNodeCount(e.parent, i.length - t), i\n                    }\n                    _updateNodeAfterCollapseChange(e, t) {\n                        if (!1 === e.visible) return 0;\n                        if (t.push(e), e.renderNodeCount = 1, !e.collapsed)\n                            for (const i of e.children) e.renderNodeCount += this._updateNodeAfterCollapseChange(i, t);\n                        return this._onDidChangeRenderNodeCount.fire(e), e.renderNodeCount\n                    }\n                    updateNodeAfterFilterChange(e) {\n                        const t = e.renderNodeCount,\n                            i = [];\n                        return this._updateNodeAfterFilterChange(e, e.visible ? 1 : 0, i), this._updateAncestorsRenderNodeCount(e.parent, i.length - t), i\n                    }\n                    _updateNodeAfterFilterChange(e, t, i, n = !0) {\n                        let o;\n                        if (e !== this.root) {\n                            if (o = this._filterNode(e, t), 0 === o) return e.visible = !1, e.renderNodeCount = 0, !1;\n                            n && i.push(e)\n                        }\n                        const s = i.length;\n                        e.renderNodeCount = e === this.root ? 0 : 1;\n                        let r = !1;\n                        if (e.collapsed && 0 === o) e.visibleChildrenCount = 0;\n                        else {\n                            let t = 0;\n                            for (const s of e.children) r = this._updateNodeAfterFilterChange(s, o, i, n && !e.collapsed) || r, s.visible && (s.visibleChildIndex = t++);\n                            e.visibleChildrenCount = t\n                        }\n                        return e !== this.root && (e.visible = 2 === o ? r : 1 === o, e.visibility = o), e.visible ? e.collapsed || (e.renderNodeCount += i.length - s) : (e.renderNodeCount = 0, n && i.pop()), this._onDidChangeRenderNodeCount.fire(e), e.visible\n                    }\n                    _updateAncestorsRenderNodeCount(e, t) {\n                        if (0 !== t)\n                            for (; e;) e.renderNodeCount += t, this._onDidChangeRenderNodeCount.fire(e), e = e.parent\n                    }\n                    _filterNode(e, t) {\n                        const i = this.filter ? this.filter.filter(e.element, t) : 1;\n                        return \"boolean\" == typeof i ? (e.filterData = void 0, i ? 1 : 0) : k(i) ? (e.filterData = i.data, L(i.visibility)) : (e.filterData = void 0, L(i))\n                    }\n                    hasTreeNode(e, t = this.root) {\n                        if (!e || 0 === e.length) return !0;\n                        const [i, ...n] = e;\n                        return !(i < 0 || i > t.children.length) && this.hasTreeNode(n, t.children[i])\n                    }\n                    getTreeNode(e, t = this.root) {\n                        if (!e || 0 === e.length) return t;\n                        const [i, ...n] = e;\n                        if (i < 0 || i > t.children.length) throw new y(this.user, \"Invalid tree location\");\n                        return this.getTreeNode(n, t.children[i])\n                    }\n                    getTreeNodeWithListIndex(e) {\n                        if (0 === e.length) return {\n                            node: this.root,\n                            listIndex: -1,\n                            revealed: !0,\n                            visible: !1\n                        };\n                        const {\n                            parentNode: t,\n                            listIndex: i,\n                            revealed: n,\n                            visible: o\n                        } = this.getParentNodeWithListIndex(e), s = e[e.length - 1];\n                        if (s < 0 || s > t.children.length) throw new y(this.user, \"Invalid tree location\");\n                        const r = t.children[s];\n                        return {\n                            node: r,\n                            listIndex: i,\n                            revealed: n,\n                            visible: o && r.visible\n                        }\n                    }\n                    getParentNodeWithListIndex(e, t = this.root, i = 0, n = !0, o = !0) {\n                        const [s, ...r] = e;\n                        if (s < 0 || s > t.children.length) throw new y(this.user, \"Invalid tree location\");\n                        for (let e = 0; e < s; e++) i += t.children[e].renderNodeCount;\n                        return n = n && !t.collapsed, o = o && t.visible, 0 === r.length ? {\n                            parentNode: t,\n                            listIndex: i,\n                            revealed: n,\n                            visible: o\n                        } : this.getParentNodeWithListIndex(r, t.children[s], i + 1, n, o)\n                    }\n                    getNode(e = []) {\n                        return this.getTreeNode(e)\n                    }\n                    getNodeLocation(e) {\n                        const t = [];\n                        let i = e;\n                        for (; i.parent;) t.push(i.parent.children.indexOf(i)), i = i.parent;\n                        return t.reverse()\n                    }\n                    getParentNodeLocation(e) {\n                        return 0 === e.length ? void 0 : 1 === e.length ? [] : (0, o.JH)(e)[0]\n                    }\n                }\n                var I = i(73046);\n                const E = (0, I.CM)(\"tree-item-expanded\", I.lA.chevronDown),\n                    T = (0, I.CM)(\"tree-filter-on-type-on\", I.lA.listFilter),\n                    M = (0, I.CM)(\"tree-filter-on-type-off\", I.lA.listSelection),\n                    A = (0, I.CM)(\"tree-filter-clear\", I.lA.close),\n                    O = (0, I.CM)(\"tree-item-loading\", I.lA.loading);\n                var P, R = i(15393),\n                    F = i(6626),\n                    B = i(75392),\n                    V = i(59870),\n                    W = i(1432),\n                    H = (i(12812), i(63580));\n                class z extends v.kX {\n                    constructor(e) {\n                        super(e.elements.map((e => e.element))), this.data = e\n                    }\n                }\n\n                function j(e) {\n                    return e instanceof v.kX ? new z(e) : e\n                }\n                class U {\n                    constructor(e, t) {\n                        this.modelProvider = e, this.dnd = t, this.autoExpandDisposable = a.JT.None\n                    }\n                    getDragURI(e) {\n                        return this.dnd.getDragURI(e.element)\n                    }\n                    getDragLabel(e, t) {\n                        if (this.dnd.getDragLabel) return this.dnd.getDragLabel(e.map((e => e.element)), t)\n                    }\n                    onDragStart(e, t) {\n                        this.dnd.onDragStart && this.dnd.onDragStart(j(e), t)\n                    }\n                    onDragOver(e, t, i, n, s = !0) {\n                        const r = this.dnd.onDragOver(j(e), t && t.element, i, n),\n                            a = this.autoExpandNode !== t;\n                        if (a && (this.autoExpandDisposable.dispose(), this.autoExpandNode = t), void 0 === t) return r;\n                        if (a && \"boolean\" != typeof r && r.autoExpand && (this.autoExpandDisposable = (0, R.Vg)((() => {\n                                const e = this.modelProvider(),\n                                    i = e.getNodeLocation(t);\n                                e.isCollapsed(i) && e.setCollapsed(i, !1), this.autoExpandNode = void 0\n                            }), 500)), \"boolean\" == typeof r || !r.accept || void 0 === r.bubble || r.feedback) {\n                            if (!s) {\n                                return {\n                                    accept: \"boolean\" == typeof r ? r : r.accept,\n                                    effect: \"boolean\" == typeof r ? void 0 : r.effect,\n                                    feedback: [i]\n                                }\n                            }\n                            return r\n                        }\n                        if (1 === r.bubble) {\n                            const i = this.modelProvider(),\n                                o = i.getNodeLocation(t),\n                                s = i.getParentNodeLocation(o),\n                                r = i.getNode(s),\n                                a = s && i.getListIndex(s);\n                            return this.onDragOver(e, r, a, n, !1)\n                        }\n                        const l = this.modelProvider(),\n                            c = l.getNodeLocation(t),\n                            d = l.getListIndex(c),\n                            h = l.getListRenderCount(c);\n                        return Object.assign(Object.assign({}, r), {\n                            feedback: (0, o.w6)(d, d + h)\n                        })\n                    }\n                    drop(e, t, i, n) {\n                        this.autoExpandDisposable.dispose(), this.autoExpandNode = void 0, this.dnd.drop(j(e), t && t.element, i, n)\n                    }\n                    onDragEnd(e) {\n                        this.dnd.onDragEnd && this.dnd.onDragEnd(e)\n                    }\n                }\n                class $ {\n                    constructor(e) {\n                        this.delegate = e\n                    }\n                    getHeight(e) {\n                        return this.delegate.getHeight(e.element)\n                    }\n                    getTemplateId(e) {\n                        return this.delegate.getTemplateId(e.element)\n                    }\n                    hasDynamicHeight(e) {\n                        return !!this.delegate.hasDynamicHeight && this.delegate.hasDynamicHeight(e.element)\n                    }\n                    setDynamicHeight(e, t) {\n                        this.delegate.setDynamicHeight && this.delegate.setDynamicHeight(e.element, t)\n                    }\n                }! function(e) {\n                    e.None = \"none\", e.OnHover = \"onHover\", e.Always = \"always\"\n                }(P || (P = {}));\n                class K {\n                    constructor(e, t = []) {\n                        this._elements = t, this.onDidChange = r.ju.forEach(e, (e => this._elements = e))\n                    }\n                    get elements() {\n                        return this._elements\n                    }\n                }\n                class q {\n                    constructor(e, t, i, n, o = {}) {\n                        this.renderer = e, this.modelProvider = t, this.activeNodes = n, this.renderedElements = new Map, this.renderedNodes = new Map, this.indent = q.DefaultIndent, this.hideTwistiesOfChildlessElements = !1, this.shouldRenderIndentGuides = !1, this.renderedIndentGuides = new F.r, this.activeIndentNodes = new Set, this.indentGuidesDisposable = a.JT.None, this.disposables = new a.SL, this.templateId = e.templateId, this.updateOptions(o), r.ju.map(i, (e => e.node))(this.onDidChangeNodeTwistieState, this, this.disposables), e.onDidChangeTwistieState && e.onDidChangeTwistieState(this.onDidChangeTwistieState, this, this.disposables)\n                    }\n                    updateOptions(e = {}) {\n                        if (void 0 !== e.indent && (this.indent = (0, V.u)(e.indent, 0, 40)), void 0 !== e.renderIndentGuides) {\n                            const t = e.renderIndentGuides !== P.None;\n                            if (t !== this.shouldRenderIndentGuides && (this.shouldRenderIndentGuides = t, this.indentGuidesDisposable.dispose(), t)) {\n                                const e = new a.SL;\n                                this.activeNodes.onDidChange(this._onDidChangeActiveNodes, this, e), this.indentGuidesDisposable = e, this._onDidChangeActiveNodes(this.activeNodes.elements)\n                            }\n                        }\n                        void 0 !== e.hideTwistiesOfChildlessElements && (this.hideTwistiesOfChildlessElements = e.hideTwistiesOfChildlessElements)\n                    }\n                    renderTemplate(e) {\n                        const t = (0, n.R3)(e, (0, n.$)(\".monaco-tl-row\")),\n                            i = (0, n.R3)(t, (0, n.$)(\".monaco-tl-indent\")),\n                            o = (0, n.R3)(t, (0, n.$)(\".monaco-tl-twistie\")),\n                            s = (0, n.R3)(t, (0, n.$)(\".monaco-tl-contents\")),\n                            r = this.renderer.renderTemplate(s);\n                        return {\n                            container: e,\n                            indent: i,\n                            twistie: o,\n                            indentGuidesDisposable: a.JT.None,\n                            templateData: r\n                        }\n                    }\n                    renderElement(e, t, i, n) {\n                        \"number\" == typeof n && (this.renderedNodes.set(e, {\n                            templateData: i,\n                            height: n\n                        }), this.renderedElements.set(e.element, e));\n                        const o = q.DefaultIndent + (e.depth - 1) * this.indent;\n                        i.twistie.style.paddingLeft = `${o}px`, i.indent.style.width = o + this.indent - 16 + \"px\", this.renderTwistie(e, i), \"number\" == typeof n && this.renderIndentGuides(e, i), this.renderer.renderElement(e, t, i.templateData, n)\n                    }\n                    disposeElement(e, t, i, n) {\n                        i.indentGuidesDisposable.dispose(), this.renderer.disposeElement && this.renderer.disposeElement(e, t, i.templateData, n), \"number\" == typeof n && (this.renderedNodes.delete(e), this.renderedElements.delete(e.element))\n                    }\n                    disposeTemplate(e) {\n                        this.renderer.disposeTemplate(e.templateData)\n                    }\n                    onDidChangeTwistieState(e) {\n                        const t = this.renderedElements.get(e);\n                        t && this.onDidChangeNodeTwistieState(t)\n                    }\n                    onDidChangeNodeTwistieState(e) {\n                        const t = this.renderedNodes.get(e);\n                        t && (this.renderTwistie(e, t.templateData), this._onDidChangeActiveNodes(this.activeNodes.elements), this.renderIndentGuides(e, t.templateData))\n                    }\n                    renderTwistie(e, t) {\n                        t.twistie.classList.remove(...E.classNamesArray);\n                        let i = !1;\n                        this.renderer.renderTwistie && (i = this.renderer.renderTwistie(e.element, t.twistie)), e.collapsible && (!this.hideTwistiesOfChildlessElements || e.visibleChildrenCount > 0) ? (i || t.twistie.classList.add(...E.classNamesArray), t.twistie.classList.add(\"collapsible\"), t.twistie.classList.toggle(\"collapsed\", e.collapsed)) : t.twistie.classList.remove(\"collapsible\", \"collapsed\"), e.collapsible ? t.container.setAttribute(\"aria-expanded\", String(!e.collapsed)) : t.container.removeAttribute(\"aria-expanded\")\n                    }\n                    renderIndentGuides(e, t) {\n                        if ((0, n.PO)(t.indent), t.indentGuidesDisposable.dispose(), !this.shouldRenderIndentGuides) return;\n                        const i = new a.SL,\n                            o = this.modelProvider();\n                        let s = e;\n                        for (;;) {\n                            const e = o.getNodeLocation(s),\n                                r = o.getParentNodeLocation(e);\n                            if (!r) break;\n                            const l = o.getNode(r),\n                                c = (0, n.$)(\".indent-guide\", {\n                                    style: `width: ${this.indent}px`\n                                });\n                            this.activeIndentNodes.has(l) && c.classList.add(\"active\"), 0 === t.indent.childElementCount ? t.indent.appendChild(c) : t.indent.insertBefore(c, t.indent.firstElementChild), this.renderedIndentGuides.add(l, c), i.add((0, a.OF)((() => this.renderedIndentGuides.delete(l, c)))), s = l\n                        }\n                        t.indentGuidesDisposable = i\n                    }\n                    _onDidChangeActiveNodes(e) {\n                        if (!this.shouldRenderIndentGuides) return;\n                        const t = new Set,\n                            i = this.modelProvider();\n                        e.forEach((e => {\n                            const n = i.getNodeLocation(e);\n                            try {\n                                const o = i.getParentNodeLocation(n);\n                                e.collapsible && e.children.length > 0 && !e.collapsed ? t.add(e) : o && t.add(i.getNode(o))\n                            } catch (e) {}\n                        })), this.activeIndentNodes.forEach((e => {\n                            t.has(e) || this.renderedIndentGuides.forEach(e, (e => e.classList.remove(\"active\")))\n                        })), t.forEach((e => {\n                            this.activeIndentNodes.has(e) || this.renderedIndentGuides.forEach(e, (e => e.classList.add(\"active\")))\n                        })), this.activeIndentNodes = t\n                    }\n                    dispose() {\n                        this.renderedNodes.clear(), this.renderedElements.clear(), this.indentGuidesDisposable.dispose(), (0, a.B9)(this.disposables)\n                    }\n                }\n                q.DefaultIndent = 8;\n                class Z {\n                    constructor(e, t, i) {\n                        this.tree = e, this.keyboardNavigationLabelProvider = t, this._filter = i, this._totalCount = 0, this._matchCount = 0, this._pattern = \"\", this._lowercasePattern = \"\", this.disposables = new a.SL, e.onWillRefilter(this.reset, this, this.disposables)\n                    }\n                    get totalCount() {\n                        return this._totalCount\n                    }\n                    get matchCount() {\n                        return this._matchCount\n                    }\n                    set pattern(e) {\n                        this._pattern = e, this._lowercasePattern = e.toLowerCase()\n                    }\n                    filter(e, t) {\n                        if (this._filter) {\n                            const i = this._filter.filter(e, t);\n                            if (this.tree.options.simpleKeyboardNavigation) return i;\n                            let n;\n                            if (n = \"boolean\" == typeof i ? i ? 1 : 0 : k(i) ? L(i.visibility) : i, 0 === n) return !1\n                        }\n                        if (this._totalCount++, this.tree.options.simpleKeyboardNavigation || !this._pattern) return this._matchCount++, {\n                            data: B.CL.Default,\n                            visibility: !0\n                        };\n                        const i = this.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(e),\n                            n = Array.isArray(i) ? i : [i];\n                        for (const e of n) {\n                            const t = e && e.toString();\n                            if (void 0 === t) return {\n                                data: B.CL.Default,\n                                visibility: !0\n                            };\n                            const i = (0, B.EW)(this._pattern, this._lowercasePattern, 0, t, t.toLowerCase(), 0, !0);\n                            if (i) return this._matchCount++, 1 === n.length ? {\n                                data: i,\n                                visibility: !0\n                            } : {\n                                data: {\n                                    label: t,\n                                    score: i\n                                },\n                                visibility: !0\n                            }\n                        }\n                        return this.tree.options.filterOnType ? 2 : {\n                            data: B.CL.Default,\n                            visibility: !0\n                        }\n                    }\n                    reset() {\n                        this._totalCount = 0, this._matchCount = 0\n                    }\n                    dispose() {\n                        (0, a.B9)(this.disposables)\n                    }\n                }\n                class G {\n                    constructor(e, t, i, o, s) {\n                        this.tree = e, this.view = i, this.filter = o, this.keyboardNavigationDelegate = s, this._enabled = !1, this._pattern = \"\", this._empty = !1, this._onDidChangeEmptyState = new r.Q5, this.positionClassName = \"ne\", this.automaticKeyboardNavigation = !0, this.triggered = !1, this._onDidChangePattern = new r.Q5, this.enabledDisposables = new a.SL, this.disposables = new a.SL, this.domNode = (0, n.$)(`.monaco-list-type-filter.${this.positionClassName}`), this.domNode.draggable = !0, this.disposables.add((0, n.nm)(this.domNode, \"dragstart\", (() => this.onDragStart()))), this.messageDomNode = (0, n.R3)(i.getHTMLElement(), (0, n.$)(\".monaco-list-type-filter-message\")), this.labelDomNode = (0, n.R3)(this.domNode, (0, n.$)(\"span.label\"));\n                        const l = (0, n.R3)(this.domNode, (0, n.$)(\".controls\"));\n                        this._filterOnType = !!e.options.filterOnType, this.filterOnTypeDomNode = (0, n.R3)(l, (0, n.$)(\"input.filter\")), this.filterOnTypeDomNode.type = \"checkbox\", this.filterOnTypeDomNode.checked = this._filterOnType, this.filterOnTypeDomNode.tabIndex = -1, this.updateFilterOnTypeTitleAndIcon(), this.disposables.add((0, n.nm)(this.filterOnTypeDomNode, \"input\", (() => this.onDidChangeFilterOnType()))), this.clearDomNode = (0, n.R3)(l, (0, n.$)(\"button.clear\" + A.cssSelector)), this.clearDomNode.tabIndex = -1, this.clearDomNode.title = (0, H.N)(\"clear\", \"Clear\"), this.keyboardNavigationEventFilter = e.options.keyboardNavigationEventFilter, t.onDidSplice(this.onDidSpliceModel, this, this.disposables), this.updateOptions(e.options)\n                    }\n                    get enabled() {\n                        return this._enabled\n                    }\n                    get pattern() {\n                        return this._pattern\n                    }\n                    get filterOnType() {\n                        return this._filterOnType\n                    }\n                    updateOptions(e) {\n                        e.simpleKeyboardNavigation ? this.disable() : this.enable(), void 0 !== e.filterOnType && (this._filterOnType = !!e.filterOnType, this.filterOnTypeDomNode.checked = this._filterOnType, this.updateFilterOnTypeTitleAndIcon()), void 0 !== e.automaticKeyboardNavigation && (this.automaticKeyboardNavigation = e.automaticKeyboardNavigation), this.tree.refilter(), this.render(), this.automaticKeyboardNavigation || this.onEventOrInput(\"\")\n                    }\n                    enable() {\n                        if (this._enabled) return;\n                        const e = this.enabledDisposables.add(new b.Y(this.view.getHTMLElement(), \"keydown\")),\n                            t = r.ju.chain(e.event).filter((e => !(0, l.cK)(e.target) || e.target === this.filterOnTypeDomNode)).filter((e => \"Dead\" !== e.key && !/^Media/.test(e.key))).map((e => new w.y(e))).filter(this.keyboardNavigationEventFilter || (() => !0)).filter((() => this.automaticKeyboardNavigation || this.triggered)).filter((e => this.keyboardNavigationDelegate.mightProducePrintableCharacter(e) && !(18 === e.keyCode || 16 === e.keyCode || 15 === e.keyCode || 17 === e.keyCode) || (this.pattern.length > 0 || this.triggered) && (9 === e.keyCode || 1 === e.keyCode) && !e.altKey && !e.ctrlKey && !e.metaKey || 1 === e.keyCode && (W.dz ? e.altKey && !e.metaKey : e.ctrlKey) && !e.shiftKey)).forEach((e => {\n                                e.stopPropagation(), e.preventDefault()\n                            })).event,\n                            i = this.enabledDisposables.add(new b.Y(this.clearDomNode, \"click\"));\n                        r.ju.chain(r.ju.any(t, i.event)).event(this.onEventOrInput, this, this.enabledDisposables), this.filter.pattern = \"\", this.tree.refilter(), this.render(), this._enabled = !0, this.triggered = !1\n                    }\n                    disable() {\n                        this._enabled && (this.domNode.remove(), this.enabledDisposables.clear(), this.tree.refilter(), this.render(), this._enabled = !1, this.triggered = !1)\n                    }\n                    onEventOrInput(e) {\n                        \"string\" == typeof e ? this.onInput(e) : e instanceof MouseEvent || 9 === e.keyCode || 1 === e.keyCode && (W.dz ? e.altKey : e.ctrlKey) ? this.onInput(\"\") : 1 === e.keyCode ? this.onInput(0 === this.pattern.length ? \"\" : this.pattern.substr(0, this.pattern.length - 1)) : this.onInput(this.pattern + e.browserEvent.key)\n                    }\n                    onInput(e) {\n                        const t = this.view.getHTMLElement();\n                        e && !this.domNode.parentElement ? t.append(this.domNode) : !e && this.domNode.parentElement && (this.domNode.remove(), this.tree.domFocus()), this._pattern = e, this._onDidChangePattern.fire(e), this.filter.pattern = e, this.tree.refilter(), e && this.tree.focusNext(0, !0, void 0, (e => !B.CL.isDefault(e.filterData)));\n                        const i = this.tree.getFocus();\n                        if (i.length > 0) {\n                            const e = i[0];\n                            null === this.tree.getRelativeTop(e) && this.tree.reveal(e, .5)\n                        }\n                        this.render(), e || (this.triggered = !1)\n                    }\n                    onDragStart() {\n                        const e = this.view.getHTMLElement(),\n                            {\n                                left: t\n                            } = (0, n.i)(e),\n                            i = e.clientWidth,\n                            o = i / 2,\n                            s = this.domNode.clientWidth,\n                            r = new a.SL;\n                        let l = this.positionClassName;\n                        const c = () => {\n                                switch (l) {\n                                    case \"nw\":\n                                        this.domNode.style.top = \"4px\", this.domNode.style.left = \"4px\";\n                                        break;\n                                    case \"ne\":\n                                        this.domNode.style.top = \"4px\", this.domNode.style.left = i - s - 6 + \"px\"\n                                }\n                            },\n                            d = () => {\n                                this.positionClassName = l, this.domNode.className = `monaco-list-type-filter ${this.positionClassName}`, this.domNode.style.top = \"\", this.domNode.style.left = \"\", (0, a.B9)(r)\n                            };\n                        c(), this.domNode.classList.remove(l), this.domNode.classList.add(\"dragging\"), r.add((0, a.OF)((() => this.domNode.classList.remove(\"dragging\")))), r.add((0, n.nm)(document, \"dragover\", (e => (e => {\n                            e.preventDefault();\n                            const i = e.clientX - t;\n                            e.dataTransfer && (e.dataTransfer.dropEffect = \"none\"), l = i < o ? \"nw\" : \"ne\", c()\n                        })(e)))), r.add((0, n.nm)(this.domNode, \"dragend\", (() => d()))), _.P$.CurrentDragAndDropData = new _.TN(\"vscode-ui\"), r.add((0, a.OF)((() => _.P$.CurrentDragAndDropData = void 0)))\n                    }\n                    onDidSpliceModel() {\n                        this._enabled && 0 !== this.pattern.length && (this.tree.refilter(), this.render())\n                    }\n                    onDidChangeFilterOnType() {\n                        this.tree.updateOptions({\n                            filterOnType: this.filterOnTypeDomNode.checked\n                        }), this.tree.refilter(), this.tree.domFocus(), this.render(), this.updateFilterOnTypeTitleAndIcon()\n                    }\n                    updateFilterOnTypeTitleAndIcon() {\n                        this.filterOnType ? (this.filterOnTypeDomNode.classList.remove(...M.classNamesArray), this.filterOnTypeDomNode.classList.add(...T.classNamesArray), this.filterOnTypeDomNode.title = (0, H.N)(\"disable filter on type\", \"Disable Filter on Type\")) : (this.filterOnTypeDomNode.classList.remove(...T.classNamesArray), this.filterOnTypeDomNode.classList.add(...M.classNamesArray), this.filterOnTypeDomNode.title = (0, H.N)(\"enable filter on type\", \"Enable Filter on Type\"))\n                    }\n                    render() {\n                        const e = this.filter.totalCount > 0 && 0 === this.filter.matchCount;\n                        this.pattern && this.tree.options.filterOnType && e ? (this.messageDomNode.textContent = (0, H.N)(\"empty\", \"No elements found\"), this._empty = !0) : (this.messageDomNode.innerText = \"\", this._empty = !1), this.domNode.classList.toggle(\"no-matches\", e), this.domNode.title = (0, H.N)(\"found\", \"Matched {0} out of {1} elements\", this.filter.matchCount, this.filter.totalCount), this.labelDomNode.textContent = this.pattern.length > 16 ? \"…\" + this.pattern.substr(this.pattern.length - 16) : this.pattern, this._onDidChangeEmptyState.fire(this._empty)\n                    }\n                    shouldAllowFocus(e) {\n                        return !(this.enabled && this.pattern && !this.filterOnType) || (this.filter.totalCount > 0 && this.filter.matchCount <= 1 || !B.CL.isDefault(e.filterData))\n                    }\n                    dispose() {\n                        this._enabled && (this.domNode.remove(), this.enabledDisposables.dispose(), this._enabled = !1, this.triggered = !1), this._onDidChangePattern.dispose(), (0, a.B9)(this.disposables)\n                    }\n                }\n\n                function Y(e) {\n                    let t = m.Unknown;\n                    return (0, n.uU)(e.browserEvent.target, \"monaco-tl-twistie\", \"monaco-tl-row\") ? t = m.Twistie : (0, n.uU)(e.browserEvent.target, \"monaco-tl-contents\", \"monaco-tl-row\") && (t = m.Element), {\n                        browserEvent: e.browserEvent,\n                        element: e.element ? e.element.element : null,\n                        target: t\n                    }\n                }\n\n                function Q(e, t) {\n                    t(e), e.children.forEach((e => Q(e, t)))\n                }\n                class X {\n                    constructor(e, t) {\n                        this.getFirstViewElementWithTrait = e, this.identityProvider = t, this.nodes = [], this._onDidChange = new r.Q5, this.onDidChange = this._onDidChange.event\n                    }\n                    get nodeSet() {\n                        return this._nodeSet || (this._nodeSet = this.createNodeSet()), this._nodeSet\n                    }\n                    set(e, t) {\n                        var i;\n                        !(null === (i = t) || void 0 === i ? void 0 : i.__forceEvent) && (0, o.fS)(this.nodes, e) || this._set(e, !1, t)\n                    }\n                    _set(e, t, i) {\n                        if (this.nodes = [...e], this.elements = void 0, this._nodeSet = void 0, !t) {\n                            const e = this;\n                            this._onDidChange.fire({\n                                get elements() {\n                                    return e.get()\n                                },\n                                browserEvent: i\n                            })\n                        }\n                    }\n                    get() {\n                        return this.elements || (this.elements = this.nodes.map((e => e.element))), [...this.elements]\n                    }\n                    getNodes() {\n                        return this.nodes\n                    }\n                    has(e) {\n                        return this.nodeSet.has(e)\n                    }\n                    onDidModelSplice({\n                        insertedNodes: e,\n                        deletedNodes: t\n                    }) {\n                        if (!this.identityProvider) {\n                            const e = this.createNodeSet(),\n                                i = t => e.delete(t);\n                            return t.forEach((e => Q(e, i))), void this.set([...e.values()])\n                        }\n                        const i = new Set,\n                            n = e => i.add(this.identityProvider.getId(e.element).toString());\n                        t.forEach((e => Q(e, n)));\n                        const o = new Map,\n                            s = e => o.set(this.identityProvider.getId(e.element).toString(), e);\n                        e.forEach((e => Q(e, s)));\n                        const r = [];\n                        for (const e of this.nodes) {\n                            const t = this.identityProvider.getId(e.element).toString();\n                            if (i.has(t)) {\n                                const e = o.get(t);\n                                e && r.push(e)\n                            } else r.push(e)\n                        }\n                        if (this.nodes.length > 0 && 0 === r.length) {\n                            const e = this.getFirstViewElementWithTrait();\n                            e && r.push(e)\n                        }\n                        this._set(r, !0)\n                    }\n                    createNodeSet() {\n                        const e = new Set;\n                        for (const t of this.nodes) e.add(t);\n                        return e\n                    }\n                }\n                class J extends l.sx {\n                    constructor(e, t) {\n                        super(e), this.tree = t\n                    }\n                    onViewPointer(e) {\n                        if ((0, l.cK)(e.browserEvent.target) || (0, l.hD)(e.browserEvent.target)) return;\n                        const t = e.element;\n                        if (!t) return super.onViewPointer(e);\n                        if (this.isSelectionRangeChangeEvent(e) || this.isSelectionSingleChangeEvent(e)) return super.onViewPointer(e);\n                        const i = e.browserEvent.target,\n                            n = i.classList.contains(\"monaco-tl-twistie\") || i.classList.contains(\"monaco-icon-label\") && i.classList.contains(\"folder-icon\") && e.browserEvent.offsetX < 16;\n                        let o = !1;\n                        if (o = \"function\" == typeof this.tree.expandOnlyOnTwistieClick ? this.tree.expandOnlyOnTwistieClick(t.element) : !!this.tree.expandOnlyOnTwistieClick, o && !n && 2 !== e.browserEvent.detail) return super.onViewPointer(e);\n                        if (!this.tree.expandOnDoubleClick && 2 === e.browserEvent.detail) return super.onViewPointer(e);\n                        if (t.collapsible) {\n                            const i = this.tree.model,\n                                s = i.getNodeLocation(t),\n                                r = e.browserEvent.altKey;\n                            if (this.tree.setFocus([s]), i.setCollapsed(s, void 0, r), o && n) return\n                        }\n                        super.onViewPointer(e)\n                    }\n                    onDoubleClick(e) {\n                        !e.browserEvent.target.classList.contains(\"monaco-tl-twistie\") && this.tree.expandOnDoubleClick && super.onDoubleClick(e)\n                    }\n                }\n                class ee extends l.aV {\n                    constructor(e, t, i, n, o, s, r, a) {\n                        super(e, t, i, n, a), this.focusTrait = o, this.selectionTrait = s, this.anchorTrait = r\n                    }\n                    createMouseController(e) {\n                        return new J(this, e.tree)\n                    }\n                    splice(e, t, i = []) {\n                        if (super.splice(e, t, i), 0 === i.length) return;\n                        const n = [],\n                            s = [];\n                        let r;\n                        i.forEach(((t, i) => {\n                            this.focusTrait.has(t) && n.push(e + i), this.selectionTrait.has(t) && s.push(e + i), this.anchorTrait.has(t) && (r = e + i)\n                        })), n.length > 0 && super.setFocus((0, o.EB)([...super.getFocus(), ...n])), s.length > 0 && super.setSelection((0, o.EB)([...super.getSelection(), ...s])), \"number\" == typeof r && super.setAnchor(r)\n                    }\n                    setFocus(e, t, i = !1) {\n                        super.setFocus(e, t), i || this.focusTrait.set(e.map((e => this.element(e))), t)\n                    }\n                    setSelection(e, t, i = !1) {\n                        super.setSelection(e, t), i || this.selectionTrait.set(e.map((e => this.element(e))), t)\n                    }\n                    setAnchor(e, t = !1) {\n                        super.setAnchor(e), t || (void 0 === e ? this.anchorTrait.set([]) : this.anchorTrait.set([this.element(e)]))\n                    }\n                }\n                class te {\n                    constructor(e, t, i, o, s = {}) {\n                        this._options = s, this.eventBufferer = new r.E7, this.disposables = new a.SL, this._onWillRefilter = new r.Q5, this.onWillRefilter = this._onWillRefilter.event, this._onDidUpdateOptions = new r.Q5;\n                        const c = new $(i),\n                            d = new r.ZD,\n                            h = new r.ZD,\n                            u = new K(h.event);\n                        this.renderers = o.map((e => new q(e, (() => this.model), d.event, u, s)));\n                        for (let e of this.renderers) this.disposables.add(e);\n                        let g;\n                        var p, f;\n                        s.keyboardNavigationLabelProvider && (g = new Z(this, s.keyboardNavigationLabelProvider, s.filter), s = Object.assign(Object.assign({}, s), {\n                            filter: g\n                        }), this.disposables.add(g)), this.focus = new X((() => this.view.getFocusedElements()[0]), s.identityProvider), this.selection = new X((() => this.view.getSelectedElements()[0]), s.identityProvider), this.anchor = new X((() => this.view.getAnchorElement()), s.identityProvider), this.view = new ee(e, t, c, this.renderers, this.focus, this.selection, this.anchor, Object.assign(Object.assign({}, (p = () => this.model, (f = s) && Object.assign(Object.assign({}, f), {\n                            identityProvider: f.identityProvider && {\n                                getId: e => f.identityProvider.getId(e.element)\n                            },\n                            dnd: f.dnd && new U(p, f.dnd),\n                            multipleSelectionController: f.multipleSelectionController && {\n                                isSelectionSingleChangeEvent: e => f.multipleSelectionController.isSelectionSingleChangeEvent(Object.assign(Object.assign({}, e), {\n                                    element: e.element\n                                })),\n                                isSelectionRangeChangeEvent: e => f.multipleSelectionController.isSelectionRangeChangeEvent(Object.assign(Object.assign({}, e), {\n                                    element: e.element\n                                }))\n                            },\n                            accessibilityProvider: f.accessibilityProvider && Object.assign(Object.assign({}, f.accessibilityProvider), {\n                                getSetSize(e) {\n                                    const t = p(),\n                                        i = t.getNodeLocation(e),\n                                        n = t.getParentNodeLocation(i);\n                                    return t.getNode(n).visibleChildrenCount\n                                },\n                                getPosInSet: e => e.visibleChildIndex + 1,\n                                isChecked: f.accessibilityProvider && f.accessibilityProvider.isChecked ? e => f.accessibilityProvider.isChecked(e.element) : void 0,\n                                getRole: f.accessibilityProvider && f.accessibilityProvider.getRole ? e => f.accessibilityProvider.getRole(e.element) : () => \"treeitem\",\n                                getAriaLabel: e => f.accessibilityProvider.getAriaLabel(e.element),\n                                getWidgetAriaLabel: () => f.accessibilityProvider.getWidgetAriaLabel(),\n                                getWidgetRole: f.accessibilityProvider && f.accessibilityProvider.getWidgetRole ? () => f.accessibilityProvider.getWidgetRole() : () => \"tree\",\n                                getAriaLevel: f.accessibilityProvider && f.accessibilityProvider.getAriaLevel ? e => f.accessibilityProvider.getAriaLevel(e.element) : e => e.depth,\n                                getActiveDescendantId: f.accessibilityProvider.getActiveDescendantId && (e => f.accessibilityProvider.getActiveDescendantId(e.element))\n                            }),\n                            keyboardNavigationLabelProvider: f.keyboardNavigationLabelProvider && Object.assign(Object.assign({}, f.keyboardNavigationLabelProvider), {\n                                getKeyboardNavigationLabel: e => f.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(e.element)\n                            }),\n                            enableKeyboardNavigation: f.simpleKeyboardNavigation\n                        }))), {\n                            tree: this\n                        })), this.model = this.createModel(e, this.view, s), d.input = this.model.onDidChangeCollapseState;\n                        const m = r.ju.forEach(this.model.onDidSplice, (e => {\n                            this.eventBufferer.bufferEvents((() => {\n                                this.focus.onDidModelSplice(e), this.selection.onDidModelSplice(e)\n                            }))\n                        }));\n                        if (m((() => null), null, this.disposables), h.input = r.ju.chain(r.ju.any(m, this.focus.onDidChange, this.selection.onDidChange)).debounce((() => null), 0).map((() => {\n                                const e = new Set;\n                                for (const t of this.focus.getNodes()) e.add(t);\n                                for (const t of this.selection.getNodes()) e.add(t);\n                                return [...e.values()]\n                            })).event, !1 !== s.keyboardSupport) {\n                            const e = r.ju.chain(this.view.onKeyDown).filter((e => !(0, l.cK)(e.target))).map((e => new w.y(e)));\n                            e.filter((e => 15 === e.keyCode)).on(this.onLeftArrow, this, this.disposables), e.filter((e => 17 === e.keyCode)).on(this.onRightArrow, this, this.disposables), e.filter((e => 10 === e.keyCode)).on(this.onSpace, this, this.disposables)\n                        }\n                        if (s.keyboardNavigationLabelProvider) {\n                            const e = s.keyboardNavigationDelegate || l.WK;\n                            this.typeFilterController = new G(this, this.model, this.view, g, e), this.focusNavigationFilter = e => this.typeFilterController.shouldAllowFocus(e), this.disposables.add(this.typeFilterController)\n                        }\n                        this.styleElement = (0, n.dS)(this.view.getHTMLElement()), this.getHTMLElement().classList.toggle(\"always\", this._options.renderIndentGuides === P.Always)\n                    }\n                    get onDidChangeFocus() {\n                        return this.eventBufferer.wrapEvent(this.focus.onDidChange)\n                    }\n                    get onDidChangeSelection() {\n                        return this.eventBufferer.wrapEvent(this.selection.onDidChange)\n                    }\n                    get onMouseDblClick() {\n                        return r.ju.map(this.view.onMouseDblClick, Y)\n                    }\n                    get onPointer() {\n                        return r.ju.map(this.view.onPointer, Y)\n                    }\n                    get onDidFocus() {\n                        return this.view.onDidFocus\n                    }\n                    get onDidChangeCollapseState() {\n                        return this.model.onDidChangeCollapseState\n                    }\n                    get expandOnDoubleClick() {\n                        return void 0 === this._options.expandOnDoubleClick || this._options.expandOnDoubleClick\n                    }\n                    get expandOnlyOnTwistieClick() {\n                        return void 0 === this._options.expandOnlyOnTwistieClick || this._options.expandOnlyOnTwistieClick\n                    }\n                    get onDidDispose() {\n                        return this.view.onDidDispose\n                    }\n                    updateOptions(e = {}) {\n                        this._options = Object.assign(Object.assign({}, this._options), e);\n                        for (const t of this.renderers) t.updateOptions(e);\n                        this.view.updateOptions(Object.assign(Object.assign({}, this._options), {\n                            enableKeyboardNavigation: this._options.simpleKeyboardNavigation\n                        })), this.typeFilterController && this.typeFilterController.updateOptions(this._options), this._onDidUpdateOptions.fire(this._options), this.getHTMLElement().classList.toggle(\"always\", this._options.renderIndentGuides === P.Always)\n                    }\n                    get options() {\n                        return this._options\n                    }\n                    getHTMLElement() {\n                        return this.view.getHTMLElement()\n                    }\n                    get scrollTop() {\n                        return this.view.scrollTop\n                    }\n                    set scrollTop(e) {\n                        this.view.scrollTop = e\n                    }\n                    domFocus() {\n                        this.view.domFocus()\n                    }\n                    layout(e, t) {\n                        this.view.layout(e, t)\n                    }\n                    style(e) {\n                        const t = `.${this.view.domId}`,\n                            i = [];\n                        e.treeIndentGuidesStroke && (i.push(`.monaco-list${t}:hover .monaco-tl-indent > .indent-guide, .monaco-list${t}.always .monaco-tl-indent > .indent-guide  { border-color: ${e.treeIndentGuidesStroke.transparent(.4)}; }`), i.push(`.monaco-list${t} .monaco-tl-indent > .indent-guide.active { border-color: ${e.treeIndentGuidesStroke}; }`)), this.styleElement.textContent = i.join(\"\\n\"), this.view.style(e)\n                    }\n                    collapse(e, t = !1) {\n                        return this.model.setCollapsed(e, !0, t)\n                    }\n                    expand(e, t = !1) {\n                        return this.model.setCollapsed(e, !1, t)\n                    }\n                    isCollapsible(e) {\n                        return this.model.isCollapsible(e)\n                    }\n                    setCollapsible(e, t) {\n                        return this.model.setCollapsible(e, t)\n                    }\n                    isCollapsed(e) {\n                        return this.model.isCollapsed(e)\n                    }\n                    refilter() {\n                        this._onWillRefilter.fire(void 0), this.model.refilter()\n                    }\n                    setSelection(e, t) {\n                        const i = e.map((e => this.model.getNode(e)));\n                        this.selection.set(i, t);\n                        const n = e.map((e => this.model.getListIndex(e))).filter((e => e > -1));\n                        this.view.setSelection(n, t, !0)\n                    }\n                    getSelection() {\n                        return this.selection.get()\n                    }\n                    setFocus(e, t) {\n                        const i = e.map((e => this.model.getNode(e)));\n                        this.focus.set(i, t);\n                        const n = e.map((e => this.model.getListIndex(e))).filter((e => e > -1));\n                        this.view.setFocus(n, t, !0)\n                    }\n                    focusNext(e = 1, t = !1, i, n = this.focusNavigationFilter) {\n                        this.view.focusNext(e, t, i, n)\n                    }\n                    getFocus() {\n                        return this.focus.get()\n                    }\n                    reveal(e, t) {\n                        this.model.expandTo(e);\n                        const i = this.model.getListIndex(e); - 1 !== i && this.view.reveal(i, t)\n                    }\n                    getRelativeTop(e) {\n                        const t = this.model.getListIndex(e);\n                        return -1 === t ? null : this.view.getRelativeTop(t)\n                    }\n                    onLeftArrow(e) {\n                        e.preventDefault(), e.stopPropagation();\n                        const t = this.view.getFocusedElements();\n                        if (0 === t.length) return;\n                        const i = t[0],\n                            n = this.model.getNodeLocation(i);\n                        if (!this.model.setCollapsed(n, !0)) {\n                            const e = this.model.getParentNodeLocation(n);\n                            if (!e) return;\n                            const t = this.model.getListIndex(e);\n                            this.view.reveal(t), this.view.setFocus([t])\n                        }\n                    }\n                    onRightArrow(e) {\n                        e.preventDefault(), e.stopPropagation();\n                        const t = this.view.getFocusedElements();\n                        if (0 === t.length) return;\n                        const i = t[0],\n                            n = this.model.getNodeLocation(i);\n                        if (!this.model.setCollapsed(n, !1)) {\n                            if (!i.children.some((e => e.visible))) return;\n                            const [e] = this.view.getFocus(), t = e + 1;\n                            this.view.reveal(t), this.view.setFocus([t])\n                        }\n                    }\n                    onSpace(e) {\n                        e.preventDefault(), e.stopPropagation();\n                        const t = this.view.getFocusedElements();\n                        if (0 === t.length) return;\n                        const i = t[0],\n                            n = this.model.getNodeLocation(i),\n                            o = e.browserEvent.altKey;\n                        this.model.setCollapsed(n, void 0, o)\n                    }\n                    dispose() {\n                        (0, a.B9)(this.disposables), this.view.dispose()\n                    }\n                }\n                class ie {\n                    constructor(e, t, i = {}) {\n                        this.user = e, this.rootRef = null, this.nodes = new Map, this.nodesByIdentity = new Map, this.model = new D(e, t, null, i), this.onDidSplice = this.model.onDidSplice, this.onDidChangeCollapseState = this.model.onDidChangeCollapseState, this.onDidChangeRenderNodeCount = this.model.onDidChangeRenderNodeCount, i.sorter && (this.sorter = {\n                            compare: (e, t) => i.sorter.compare(e.element, t.element)\n                        }), this.identityProvider = i.identityProvider\n                    }\n                    setChildren(e, t = S.$.empty(), i = {}) {\n                        const n = this.getElementLocation(e);\n                        this._setChildren(n, this.preserveCollapseState(t), i)\n                    }\n                    _setChildren(e, t = S.$.empty(), i) {\n                        const n = new Set,\n                            o = new Set;\n                        this.model.splice([...e, 0], Number.MAX_VALUE, t, Object.assign(Object.assign({}, i), {\n                            onDidCreateNode: e => {\n                                var t;\n                                if (null === e.element) return;\n                                const s = e;\n                                if (n.add(s.element), this.nodes.set(s.element, s), this.identityProvider) {\n                                    const e = this.identityProvider.getId(s.element).toString();\n                                    o.add(e), this.nodesByIdentity.set(e, s)\n                                }\n                                null === (t = i.onDidCreateNode) || void 0 === t || t.call(i, s)\n                            },\n                            onDidDeleteNode: e => {\n                                var t;\n                                if (null === e.element) return;\n                                const s = e;\n                                if (n.has(s.element) || this.nodes.delete(s.element), this.identityProvider) {\n                                    const e = this.identityProvider.getId(s.element).toString();\n                                    o.has(e) || this.nodesByIdentity.delete(e)\n                                }\n                                null === (t = i.onDidDeleteNode) || void 0 === t || t.call(i, s)\n                            }\n                        }))\n                    }\n                    preserveCollapseState(e = S.$.empty()) {\n                        return this.sorter && (e = [...e].sort(this.sorter.compare.bind(this.sorter))), S.$.map(e, (e => {\n                            let t = this.nodes.get(e.element);\n                            if (!t && this.identityProvider) {\n                                const i = this.identityProvider.getId(e.element).toString();\n                                t = this.nodesByIdentity.get(i)\n                            }\n                            if (!t) return Object.assign(Object.assign({}, e), {\n                                children: this.preserveCollapseState(e.children)\n                            });\n                            const i = \"boolean\" == typeof e.collapsible ? e.collapsible : t.collapsible,\n                                n = void 0 !== e.collapsed ? e.collapsed : t.collapsed;\n                            return Object.assign(Object.assign({}, e), {\n                                collapsible: i,\n                                collapsed: n,\n                                children: this.preserveCollapseState(e.children)\n                            })\n                        }))\n                    }\n                    rerender(e) {\n                        const t = this.getElementLocation(e);\n                        this.model.rerender(t)\n                    }\n                    has(e) {\n                        return this.nodes.has(e)\n                    }\n                    getListIndex(e) {\n                        const t = this.getElementLocation(e);\n                        return this.model.getListIndex(t)\n                    }\n                    getListRenderCount(e) {\n                        const t = this.getElementLocation(e);\n                        return this.model.getListRenderCount(t)\n                    }\n                    isCollapsible(e) {\n                        const t = this.getElementLocation(e);\n                        return this.model.isCollapsible(t)\n                    }\n                    setCollapsible(e, t) {\n                        const i = this.getElementLocation(e);\n                        return this.model.setCollapsible(i, t)\n                    }\n                    isCollapsed(e) {\n                        const t = this.getElementLocation(e);\n                        return this.model.isCollapsed(t)\n                    }\n                    setCollapsed(e, t, i) {\n                        const n = this.getElementLocation(e);\n                        return this.model.setCollapsed(n, t, i)\n                    }\n                    expandTo(e) {\n                        const t = this.getElementLocation(e);\n                        this.model.expandTo(t)\n                    }\n                    refilter() {\n                        this.model.refilter()\n                    }\n                    getNode(e = null) {\n                        if (null === e) return this.model.getNode(this.model.rootRef);\n                        const t = this.nodes.get(e);\n                        if (!t) throw new y(this.user, `Tree element not found: ${e}`);\n                        return t\n                    }\n                    getNodeLocation(e) {\n                        return e.element\n                    }\n                    getParentNodeLocation(e) {\n                        if (null === e) throw new y(this.user, \"Invalid getParentNodeLocation call\");\n                        const t = this.nodes.get(e);\n                        if (!t) throw new y(this.user, `Tree element not found: ${e}`);\n                        const i = this.model.getNodeLocation(t),\n                            n = this.model.getParentNodeLocation(i);\n                        return this.model.getNode(n).element\n                    }\n                    getElementLocation(e) {\n                        if (null === e) return [];\n                        const t = this.nodes.get(e);\n                        if (!t) throw new y(this.user, `Tree element not found: ${e}`);\n                        return this.model.getNodeLocation(t)\n                    }\n                }\n\n                function ne(e) {\n                    return {\n                        element: {\n                            elements: [e.element],\n                            incompressible: e.incompressible || !1\n                        },\n                        children: S.$.map(S.$.from(e.children), ne),\n                        collapsible: e.collapsible,\n                        collapsed: e.collapsed\n                    }\n                }\n\n                function oe(e) {\n                    const t = [e.element],\n                        i = e.incompressible || !1;\n                    let n, o;\n                    for (;\n                        [o, n] = S.$.consume(S.$.from(e.children), 2), 1 === o.length && !o[0].incompressible;) e = o[0], t.push(e.element);\n                    return {\n                        element: {\n                            elements: t,\n                            incompressible: i\n                        },\n                        children: S.$.map(S.$.concat(o, n), oe),\n                        collapsible: e.collapsible,\n                        collapsed: e.collapsed\n                    }\n                }\n\n                function se(e, t = 0) {\n                    let i;\n                    return i = t < e.element.elements.length - 1 ? [se(e, t + 1)] : S.$.map(S.$.from(e.children), (e => se(e, 0))), 0 === t && e.element.incompressible ? {\n                        element: e.element.elements[t],\n                        children: i,\n                        incompressible: !0,\n                        collapsible: e.collapsible,\n                        collapsed: e.collapsed\n                    } : {\n                        element: e.element.elements[t],\n                        children: i,\n                        collapsible: e.collapsible,\n                        collapsed: e.collapsed\n                    }\n                }\n\n                function re(e) {\n                    return se(e, 0)\n                }\n\n                function ae(e, t, i) {\n                    return e.element === t ? Object.assign(Object.assign({}, e), {\n                        children: i\n                    }) : Object.assign(Object.assign({}, e), {\n                        children: S.$.map(S.$.from(e.children), (e => ae(e, t, i)))\n                    })\n                }\n                class le {\n                    constructor(e, t, i = {}) {\n                        this.user = e, this.rootRef = null, this.nodes = new Map, this.model = new ie(e, t, i), this.enabled = void 0 === i.compressionEnabled || i.compressionEnabled, this.identityProvider = i.identityProvider\n                    }\n                    get onDidSplice() {\n                        return this.model.onDidSplice\n                    }\n                    get onDidChangeCollapseState() {\n                        return this.model.onDidChangeCollapseState\n                    }\n                    get onDidChangeRenderNodeCount() {\n                        return this.model.onDidChangeRenderNodeCount\n                    }\n                    setChildren(e, t = S.$.empty(), i) {\n                        const n = i.diffIdentityProvider && (o = i.diffIdentityProvider, {\n                            getId: e => e.elements.map((e => o.getId(e).toString())).join(\"\\0\")\n                        });\n                        var o;\n                        if (null === e) {\n                            const e = S.$.map(t, this.enabled ? oe : ne);\n                            return void this._setChildren(null, e, {\n                                diffIdentityProvider: n,\n                                diffDepth: 1 / 0\n                            })\n                        }\n                        const s = this.nodes.get(e);\n                        if (!s) throw new Error(\"Unknown compressed tree node\");\n                        const r = this.model.getNode(s),\n                            a = this.model.getParentNodeLocation(s),\n                            l = this.model.getNode(a),\n                            c = ae(re(r), e, t),\n                            d = (this.enabled ? oe : ne)(c),\n                            h = l.children.map((e => e === r ? d : e));\n                        this._setChildren(l.element, h, {\n                            diffIdentityProvider: n,\n                            diffDepth: r.depth - l.depth\n                        })\n                    }\n                    setCompressionEnabled(e) {\n                        if (e === this.enabled) return;\n                        this.enabled = e;\n                        const t = this.model.getNode().children,\n                            i = S.$.map(t, re),\n                            n = S.$.map(i, e ? oe : ne);\n                        this._setChildren(null, n, {\n                            diffIdentityProvider: this.identityProvider,\n                            diffDepth: 1 / 0\n                        })\n                    }\n                    _setChildren(e, t, i) {\n                        const n = new Set;\n                        this.model.setChildren(e, t, Object.assign(Object.assign({}, i), {\n                            onDidCreateNode: e => {\n                                for (const t of e.element.elements) n.add(t), this.nodes.set(t, e.element)\n                            },\n                            onDidDeleteNode: e => {\n                                for (const t of e.element.elements) n.has(t) || this.nodes.delete(t)\n                            }\n                        }))\n                    }\n                    has(e) {\n                        return this.nodes.has(e)\n                    }\n                    getListIndex(e) {\n                        const t = this.getCompressedNode(e);\n                        return this.model.getListIndex(t)\n                    }\n                    getListRenderCount(e) {\n                        const t = this.getCompressedNode(e);\n                        return this.model.getListRenderCount(t)\n                    }\n                    getNode(e) {\n                        if (void 0 === e) return this.model.getNode();\n                        const t = this.getCompressedNode(e);\n                        return this.model.getNode(t)\n                    }\n                    getNodeLocation(e) {\n                        const t = this.model.getNodeLocation(e);\n                        return null === t ? null : t.elements[t.elements.length - 1]\n                    }\n                    getParentNodeLocation(e) {\n                        const t = this.getCompressedNode(e),\n                            i = this.model.getParentNodeLocation(t);\n                        return null === i ? null : i.elements[i.elements.length - 1]\n                    }\n                    isCollapsible(e) {\n                        const t = this.getCompressedNode(e);\n                        return this.model.isCollapsible(t)\n                    }\n                    setCollapsible(e, t) {\n                        const i = this.getCompressedNode(e);\n                        return this.model.setCollapsible(i, t)\n                    }\n                    isCollapsed(e) {\n                        const t = this.getCompressedNode(e);\n                        return this.model.isCollapsed(t)\n                    }\n                    setCollapsed(e, t, i) {\n                        const n = this.getCompressedNode(e);\n                        return this.model.setCollapsed(n, t, i)\n                    }\n                    expandTo(e) {\n                        const t = this.getCompressedNode(e);\n                        this.model.expandTo(t)\n                    }\n                    rerender(e) {\n                        const t = this.getCompressedNode(e);\n                        this.model.rerender(t)\n                    }\n                    refilter() {\n                        this.model.refilter()\n                    }\n                    getCompressedNode(e) {\n                        if (null === e) return null;\n                        const t = this.nodes.get(e);\n                        if (!t) throw new y(this.user, `Tree element not found: ${e}`);\n                        return t\n                    }\n                }\n                const ce = e => e[e.length - 1];\n                class de {\n                    constructor(e, t) {\n                        this.unwrapper = e, this.node = t\n                    }\n                    get element() {\n                        return null === this.node.element ? null : this.unwrapper(this.node.element)\n                    }\n                    get children() {\n                        return this.node.children.map((e => new de(this.unwrapper, e)))\n                    }\n                    get depth() {\n                        return this.node.depth\n                    }\n                    get visibleChildrenCount() {\n                        return this.node.visibleChildrenCount\n                    }\n                    get visibleChildIndex() {\n                        return this.node.visibleChildIndex\n                    }\n                    get collapsible() {\n                        return this.node.collapsible\n                    }\n                    get collapsed() {\n                        return this.node.collapsed\n                    }\n                    get visible() {\n                        return this.node.visible\n                    }\n                    get filterData() {\n                        return this.node.filterData\n                    }\n                }\n                class he {\n                    constructor(e, t, i = {}) {\n                        this.rootRef = null, this.elementMapper = i.elementMapper || ce;\n                        const n = e => this.elementMapper(e.elements);\n                        this.nodeMapper = new C((e => new de(n, e))), this.model = new le(e, function(e, t) {\n                            return {\n                                splice(i, n, o) {\n                                    t.splice(i, n, o.map((t => e.map(t))))\n                                },\n                                updateElementHeight(e, i) {\n                                    t.updateElementHeight(e, i)\n                                }\n                            }\n                        }(this.nodeMapper, t), function(e, t) {\n                            return Object.assign(Object.assign({}, t), {\n                                identityProvider: t.identityProvider && {\n                                    getId: i => t.identityProvider.getId(e(i))\n                                },\n                                sorter: t.sorter && {\n                                    compare: (e, i) => t.sorter.compare(e.elements[0], i.elements[0])\n                                },\n                                filter: t.filter && {\n                                    filter: (i, n) => t.filter.filter(e(i), n)\n                                }\n                            })\n                        }(n, i))\n                    }\n                    get onDidSplice() {\n                        return r.ju.map(this.model.onDidSplice, (({\n                            insertedNodes: e,\n                            deletedNodes: t\n                        }) => ({\n                            insertedNodes: e.map((e => this.nodeMapper.map(e))),\n                            deletedNodes: t.map((e => this.nodeMapper.map(e)))\n                        })))\n                    }\n                    get onDidChangeCollapseState() {\n                        return r.ju.map(this.model.onDidChangeCollapseState, (({\n                            node: e,\n                            deep: t\n                        }) => ({\n                            node: this.nodeMapper.map(e),\n                            deep: t\n                        })))\n                    }\n                    get onDidChangeRenderNodeCount() {\n                        return r.ju.map(this.model.onDidChangeRenderNodeCount, (e => this.nodeMapper.map(e)))\n                    }\n                    setChildren(e, t = S.$.empty(), i = {}) {\n                        this.model.setChildren(e, t, i)\n                    }\n                    setCompressionEnabled(e) {\n                        this.model.setCompressionEnabled(e)\n                    }\n                    has(e) {\n                        return this.model.has(e)\n                    }\n                    getListIndex(e) {\n                        return this.model.getListIndex(e)\n                    }\n                    getListRenderCount(e) {\n                        return this.model.getListRenderCount(e)\n                    }\n                    getNode(e) {\n                        return this.nodeMapper.map(this.model.getNode(e))\n                    }\n                    getNodeLocation(e) {\n                        return e.element\n                    }\n                    getParentNodeLocation(e) {\n                        return this.model.getParentNodeLocation(e)\n                    }\n                    isCollapsible(e) {\n                        return this.model.isCollapsible(e)\n                    }\n                    setCollapsible(e, t) {\n                        return this.model.setCollapsible(e, t)\n                    }\n                    isCollapsed(e) {\n                        return this.model.isCollapsed(e)\n                    }\n                    setCollapsed(e, t, i) {\n                        return this.model.setCollapsed(e, t, i)\n                    }\n                    expandTo(e) {\n                        return this.model.expandTo(e)\n                    }\n                    rerender(e) {\n                        return this.model.rerender(e)\n                    }\n                    refilter() {\n                        return this.model.refilter()\n                    }\n                    getCompressedTreeNode(e = null) {\n                        return this.model.getNode(e)\n                    }\n                }\n                var ue = i(49898),\n                    ge = function(e, t, i, n) {\n                        var o, s = arguments.length,\n                            r = s < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n                        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) r = Reflect.decorate(e, t, i, n);\n                        else\n                            for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (r = (s < 3 ? o(r) : s > 3 ? o(t, i, r) : o(t, i)) || r);\n                        return s > 3 && r && Object.defineProperty(t, i, r), r\n                    };\n                class pe extends te {\n                    constructor(e, t, i, n, o = {}) {\n                        super(e, t, i, n, o)\n                    }\n                    get onDidChangeCollapseState() {\n                        return this.model.onDidChangeCollapseState\n                    }\n                    setChildren(e, t = S.$.empty(), i) {\n                        this.model.setChildren(e, t, i)\n                    }\n                    rerender(e) {\n                        void 0 !== e ? this.model.rerender(e) : this.view.rerender()\n                    }\n                    hasElement(e) {\n                        return this.model.has(e)\n                    }\n                    createModel(e, t, i) {\n                        return new ie(e, t, i)\n                    }\n                }\n                class fe {\n                    constructor(e, t) {\n                        this._compressedTreeNodeProvider = e, this.renderer = t, this.templateId = t.templateId, t.onDidChangeTwistieState && (this.onDidChangeTwistieState = t.onDidChangeTwistieState)\n                    }\n                    get compressedTreeNodeProvider() {\n                        return this._compressedTreeNodeProvider()\n                    }\n                    renderTemplate(e) {\n                        return {\n                            compressedTreeNode: void 0,\n                            data: this.renderer.renderTemplate(e)\n                        }\n                    }\n                    renderElement(e, t, i, n) {\n                        const o = this.compressedTreeNodeProvider.getCompressedTreeNode(e.element);\n                        1 === o.element.elements.length ? (i.compressedTreeNode = void 0, this.renderer.renderElement(e, t, i.data, n)) : (i.compressedTreeNode = o, this.renderer.renderCompressedElements(o, t, i.data, n))\n                    }\n                    disposeElement(e, t, i, n) {\n                        i.compressedTreeNode ? this.renderer.disposeCompressedElements && this.renderer.disposeCompressedElements(i.compressedTreeNode, t, i.data, n) : this.renderer.disposeElement && this.renderer.disposeElement(e, t, i.data, n)\n                    }\n                    disposeTemplate(e) {\n                        this.renderer.disposeTemplate(e.data)\n                    }\n                    renderTwistie(e, t) {\n                        return !!this.renderer.renderTwistie && this.renderer.renderTwistie(e, t)\n                    }\n                }\n                ge([ue.H], fe.prototype, \"compressedTreeNodeProvider\", null);\n                class me extends pe {\n                    constructor(e, t, i, n, o = {}) {\n                        const s = () => this;\n                        super(e, t, i, n.map((e => new fe(s, e))), function(e, t) {\n                            return t && Object.assign(Object.assign({}, t), {\n                                keyboardNavigationLabelProvider: t.keyboardNavigationLabelProvider && {\n                                    getKeyboardNavigationLabel(i) {\n                                        let n;\n                                        try {\n                                            n = e().getCompressedTreeNode(i)\n                                        } catch (e) {\n                                            return t.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(i)\n                                        }\n                                        return 1 === n.element.elements.length ? t.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(i) : t.keyboardNavigationLabelProvider.getCompressedNodeKeyboardNavigationLabel(n.element.elements)\n                                    }\n                                }\n                            })\n                        }(s, o))\n                    }\n                    setChildren(e, t = S.$.empty(), i) {\n                        this.model.setChildren(e, t, i)\n                    }\n                    createModel(e, t, i) {\n                        return new he(e, t, i)\n                    }\n                    updateOptions(e = {}) {\n                        super.updateOptions(e), void 0 !== e.compressionEnabled && this.model.setCompressionEnabled(e.compressionEnabled)\n                    }\n                    getCompressedTreeNode(e = null) {\n                        return this.model.getCompressedTreeNode(e)\n                    }\n                }\n                var ve = i(17301),\n                    _e = function(e, t, i, n) {\n                        return new(i || (i = Promise))((function(o, s) {\n                            function r(e) {\n                                try {\n                                    l(n.next(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function a(e) {\n                                try {\n                                    l(n.throw(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function l(e) {\n                                var t;\n                                e.done ? o(e.value) : (t = e.value, t instanceof i ? t : new i((function(e) {\n                                    e(t)\n                                }))).then(r, a)\n                            }\n                            l((n = n.apply(e, t || [])).next())\n                        }))\n                    };\n\n                function be(e) {\n                    return Object.assign(Object.assign({}, e), {\n                        children: [],\n                        refreshPromise: void 0,\n                        stale: !0,\n                        slow: !1,\n                        collapsedByDefault: void 0\n                    })\n                }\n\n                function we(e, t) {\n                    return !!t.parent && (t.parent === e || we(e, t.parent))\n                }\n                class ye {\n                    constructor(e) {\n                        this.node = e\n                    }\n                    get element() {\n                        return this.node.element.element\n                    }\n                    get children() {\n                        return this.node.children.map((e => new ye(e)))\n                    }\n                    get depth() {\n                        return this.node.depth\n                    }\n                    get visibleChildrenCount() {\n                        return this.node.visibleChildrenCount\n                    }\n                    get visibleChildIndex() {\n                        return this.node.visibleChildIndex\n                    }\n                    get collapsible() {\n                        return this.node.collapsible\n                    }\n                    get collapsed() {\n                        return this.node.collapsed\n                    }\n                    get visible() {\n                        return this.node.visible\n                    }\n                    get filterData() {\n                        return this.node.filterData\n                    }\n                }\n                class Ce {\n                    constructor(e, t, i) {\n                        this.renderer = e, this.nodeMapper = t, this.onDidChangeTwistieState = i, this.renderedNodes = new Map, this.templateId = e.templateId\n                    }\n                    renderTemplate(e) {\n                        return {\n                            templateData: this.renderer.renderTemplate(e)\n                        }\n                    }\n                    renderElement(e, t, i, n) {\n                        this.renderer.renderElement(this.nodeMapper.map(e), t, i.templateData, n)\n                    }\n                    renderTwistie(e, t) {\n                        return e.slow ? (t.classList.add(...O.classNamesArray), !0) : (t.classList.remove(...O.classNamesArray), !1)\n                    }\n                    disposeElement(e, t, i, n) {\n                        this.renderer.disposeElement && this.renderer.disposeElement(this.nodeMapper.map(e), t, i.templateData, n)\n                    }\n                    disposeTemplate(e) {\n                        this.renderer.disposeTemplate(e.templateData)\n                    }\n                    dispose() {\n                        this.renderedNodes.clear()\n                    }\n                }\n\n                function xe(e) {\n                    return {\n                        browserEvent: e.browserEvent,\n                        elements: e.elements.map((e => e.element))\n                    }\n                }\n\n                function Se(e) {\n                    return {\n                        browserEvent: e.browserEvent,\n                        element: e.element && e.element.element,\n                        target: e.target\n                    }\n                }\n                class ke extends v.kX {\n                    constructor(e) {\n                        super(e.elements.map((e => e.element))), this.data = e\n                    }\n                }\n\n                function Le(e) {\n                    return e instanceof v.kX ? new ke(e) : e\n                }\n                class Ne {\n                    constructor(e) {\n                        this.dnd = e\n                    }\n                    getDragURI(e) {\n                        return this.dnd.getDragURI(e.element)\n                    }\n                    getDragLabel(e, t) {\n                        if (this.dnd.getDragLabel) return this.dnd.getDragLabel(e.map((e => e.element)), t)\n                    }\n                    onDragStart(e, t) {\n                        this.dnd.onDragStart && this.dnd.onDragStart(Le(e), t)\n                    }\n                    onDragOver(e, t, i, n, o = !0) {\n                        return this.dnd.onDragOver(Le(e), t && t.element, i, n)\n                    }\n                    drop(e, t, i, n) {\n                        this.dnd.drop(Le(e), t && t.element, i, n)\n                    }\n                    onDragEnd(e) {\n                        this.dnd.onDragEnd && this.dnd.onDragEnd(e)\n                    }\n                }\n\n                function De(e) {\n                    return e && Object.assign(Object.assign({}, e), {\n                        collapseByDefault: !0,\n                        identityProvider: e.identityProvider && {\n                            getId: t => e.identityProvider.getId(t.element)\n                        },\n                        dnd: e.dnd && new Ne(e.dnd),\n                        multipleSelectionController: e.multipleSelectionController && {\n                            isSelectionSingleChangeEvent: t => e.multipleSelectionController.isSelectionSingleChangeEvent(Object.assign(Object.assign({}, t), {\n                                element: t.element\n                            })),\n                            isSelectionRangeChangeEvent: t => e.multipleSelectionController.isSelectionRangeChangeEvent(Object.assign(Object.assign({}, t), {\n                                element: t.element\n                            }))\n                        },\n                        accessibilityProvider: e.accessibilityProvider && Object.assign(Object.assign({}, e.accessibilityProvider), {\n                            getPosInSet: void 0,\n                            getSetSize: void 0,\n                            getRole: e.accessibilityProvider.getRole ? t => e.accessibilityProvider.getRole(t.element) : () => \"treeitem\",\n                            isChecked: e.accessibilityProvider.isChecked ? t => {\n                                var i;\n                                return !!(null === (i = e.accessibilityProvider) || void 0 === i ? void 0 : i.isChecked(t.element))\n                            } : void 0,\n                            getAriaLabel: t => e.accessibilityProvider.getAriaLabel(t.element),\n                            getWidgetAriaLabel: () => e.accessibilityProvider.getWidgetAriaLabel(),\n                            getWidgetRole: e.accessibilityProvider.getWidgetRole ? () => e.accessibilityProvider.getWidgetRole() : () => \"tree\",\n                            getAriaLevel: e.accessibilityProvider.getAriaLevel && (t => e.accessibilityProvider.getAriaLevel(t.element)),\n                            getActiveDescendantId: e.accessibilityProvider.getActiveDescendantId && (t => e.accessibilityProvider.getActiveDescendantId(t.element))\n                        }),\n                        filter: e.filter && {\n                            filter: (t, i) => e.filter.filter(t.element, i)\n                        },\n                        keyboardNavigationLabelProvider: e.keyboardNavigationLabelProvider && Object.assign(Object.assign({}, e.keyboardNavigationLabelProvider), {\n                            getKeyboardNavigationLabel: t => e.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(t.element)\n                        }),\n                        sorter: void 0,\n                        expandOnlyOnTwistieClick: void 0 === e.expandOnlyOnTwistieClick ? void 0 : \"function\" != typeof e.expandOnlyOnTwistieClick ? e.expandOnlyOnTwistieClick : t => e.expandOnlyOnTwistieClick(t.element),\n                        additionalScrollHeight: e.additionalScrollHeight\n                    })\n                }\n\n                function Ie(e, t) {\n                    t(e), e.children.forEach((e => Ie(e, t)))\n                }\n                class Ee {\n                    constructor(e, t, i, n, o, s = {}) {\n                        this.user = e, this.dataSource = o, this.nodes = new Map, this.subTreeRefreshPromises = new Map, this.refreshPromises = new Map, this._onDidRender = new r.Q5, this._onDidChangeNodeSlowState = new r.Q5, this.nodeMapper = new C((e => new ye(e))), this.disposables = new a.SL, this.identityProvider = s.identityProvider, this.autoExpandSingleChildren = void 0 !== s.autoExpandSingleChildren && s.autoExpandSingleChildren, this.sorter = s.sorter, this.collapseByDefault = s.collapseByDefault, this.tree = this.createTree(e, t, i, n, s), this.root = be({\n                            element: void 0,\n                            parent: null,\n                            hasChildren: !0\n                        }), this.identityProvider && (this.root = Object.assign(Object.assign({}, this.root), {\n                            id: null\n                        })), this.nodes.set(null, this.root), this.tree.onDidChangeCollapseState(this._onDidChangeCollapseState, this, this.disposables)\n                    }\n                    get onDidChangeFocus() {\n                        return r.ju.map(this.tree.onDidChangeFocus, xe)\n                    }\n                    get onDidChangeSelection() {\n                        return r.ju.map(this.tree.onDidChangeSelection, xe)\n                    }\n                    get onMouseDblClick() {\n                        return r.ju.map(this.tree.onMouseDblClick, Se)\n                    }\n                    get onPointer() {\n                        return r.ju.map(this.tree.onPointer, Se)\n                    }\n                    get onDidFocus() {\n                        return this.tree.onDidFocus\n                    }\n                    get onDidDispose() {\n                        return this.tree.onDidDispose\n                    }\n                    createTree(e, t, i, n, o) {\n                        const s = new $(i),\n                            r = n.map((e => new Ce(e, this.nodeMapper, this._onDidChangeNodeSlowState.event))),\n                            a = De(o) || {};\n                        return new pe(e, t, s, r, a)\n                    }\n                    updateOptions(e = {}) {\n                        this.tree.updateOptions(e)\n                    }\n                    getHTMLElement() {\n                        return this.tree.getHTMLElement()\n                    }\n                    get scrollTop() {\n                        return this.tree.scrollTop\n                    }\n                    set scrollTop(e) {\n                        this.tree.scrollTop = e\n                    }\n                    domFocus() {\n                        this.tree.domFocus()\n                    }\n                    layout(e, t) {\n                        this.tree.layout(e, t)\n                    }\n                    style(e) {\n                        this.tree.style(e)\n                    }\n                    getInput() {\n                        return this.root.element\n                    }\n                    setInput(e, t) {\n                        return _e(this, void 0, void 0, (function*() {\n                            this.refreshPromises.forEach((e => e.cancel())), this.refreshPromises.clear(), this.root.element = e;\n                            const i = t && {\n                                viewState: t,\n                                focus: [],\n                                selection: []\n                            };\n                            yield this._updateChildren(e, !0, !1, i), i && (this.tree.setFocus(i.focus), this.tree.setSelection(i.selection)), t && \"number\" == typeof t.scrollTop && (this.scrollTop = t.scrollTop)\n                        }))\n                    }\n                    _updateChildren(e = this.root.element, t = !0, i = !1, n, o) {\n                        return _e(this, void 0, void 0, (function*() {\n                            if (void 0 === this.root.element) throw new y(this.user, \"Tree input not set\");\n                            this.root.refreshPromise && (yield this.root.refreshPromise, yield r.ju.toPromise(this._onDidRender.event));\n                            const s = this.getDataNode(e);\n                            if (yield this.refreshAndRenderNode(s, t, n, o), i) try {\n                                this.tree.rerender(s)\n                            } catch (e) {}\n                        }))\n                    }\n                    rerender(e) {\n                        if (void 0 === e || e === this.root.element) return void this.tree.rerender();\n                        const t = this.getDataNode(e);\n                        this.tree.rerender(t)\n                    }\n                    collapse(e, t = !1) {\n                        const i = this.getDataNode(e);\n                        return this.tree.collapse(i === this.root ? null : i, t)\n                    }\n                    expand(e, t = !1) {\n                        return _e(this, void 0, void 0, (function*() {\n                            if (void 0 === this.root.element) throw new y(this.user, \"Tree input not set\");\n                            this.root.refreshPromise && (yield this.root.refreshPromise, yield r.ju.toPromise(this._onDidRender.event));\n                            const i = this.getDataNode(e);\n                            if (this.tree.hasElement(i) && !this.tree.isCollapsible(i)) return !1;\n                            if (i.refreshPromise && (yield this.root.refreshPromise, yield r.ju.toPromise(this._onDidRender.event)), i !== this.root && !i.refreshPromise && !this.tree.isCollapsed(i)) return !1;\n                            const n = this.tree.expand(i === this.root ? null : i, t);\n                            return i.refreshPromise && (yield this.root.refreshPromise, yield r.ju.toPromise(this._onDidRender.event)), n\n                        }))\n                    }\n                    setSelection(e, t) {\n                        const i = e.map((e => this.getDataNode(e)));\n                        this.tree.setSelection(i, t)\n                    }\n                    getSelection() {\n                        return this.tree.getSelection().map((e => e.element))\n                    }\n                    setFocus(e, t) {\n                        const i = e.map((e => this.getDataNode(e)));\n                        this.tree.setFocus(i, t)\n                    }\n                    getFocus() {\n                        return this.tree.getFocus().map((e => e.element))\n                    }\n                    reveal(e, t) {\n                        this.tree.reveal(this.getDataNode(e), t)\n                    }\n                    getDataNode(e) {\n                        const t = this.nodes.get(e === this.root.element ? null : e);\n                        if (!t) throw new y(this.user, `Data tree node not found: ${e}`);\n                        return t\n                    }\n                    refreshAndRenderNode(e, t, i, n) {\n                        return _e(this, void 0, void 0, (function*() {\n                            yield this.refreshNode(e, t, i), this.render(e, i, n)\n                        }))\n                    }\n                    refreshNode(e, t, i) {\n                        return _e(this, void 0, void 0, (function*() {\n                            let n;\n                            return this.subTreeRefreshPromises.forEach(((o, s) => {\n                                !n && function(e, t) {\n                                    return e === t || we(e, t) || we(t, e)\n                                }(s, e) && (n = o.then((() => this.refreshNode(e, t, i))))\n                            })), n || this.doRefreshSubTree(e, t, i)\n                        }))\n                    }\n                    doRefreshSubTree(e, t, i) {\n                        return _e(this, void 0, void 0, (function*() {\n                            let n;\n                            e.refreshPromise = new Promise((e => n = e)), this.subTreeRefreshPromises.set(e, e.refreshPromise), e.refreshPromise.finally((() => {\n                                e.refreshPromise = void 0, this.subTreeRefreshPromises.delete(e)\n                            }));\n                            try {\n                                const n = yield this.doRefreshNode(e, t, i);\n                                e.stale = !1, yield R.jT.settled(n.map((e => this.doRefreshSubTree(e, t, i))))\n                            } finally {\n                                n()\n                            }\n                        }))\n                    }\n                    doRefreshNode(e, t, i) {\n                        return _e(this, void 0, void 0, (function*() {\n                            let n;\n                            if (e.hasChildren = !!this.dataSource.hasChildren(e.element), e.hasChildren) {\n                                const t = (0, R.Vs)(800);\n                                t.then((() => {\n                                    e.slow = !0, this._onDidChangeNodeSlowState.fire(e)\n                                }), (e => null)), n = this.doGetChildren(e).finally((() => t.cancel()))\n                            } else n = Promise.resolve(S.$.empty());\n                            try {\n                                const o = yield n;\n                                return this.setChildren(e, o, t, i)\n                            } catch (t) {\n                                if (e !== this.root && this.tree.hasElement(e) && this.tree.collapse(e), (0, ve.VV)(t)) return [];\n                                throw t\n                            } finally {\n                                e.slow && (e.slow = !1, this._onDidChangeNodeSlowState.fire(e))\n                            }\n                        }))\n                    }\n                    doGetChildren(e) {\n                        let t = this.refreshPromises.get(e);\n                        return t || (t = (0, R.PG)((() => _e(this, void 0, void 0, (function*() {\n                            const t = yield this.dataSource.getChildren(e.element);\n                            return this.processChildren(t)\n                        })))), this.refreshPromises.set(e, t), t.finally((() => {\n                            this.refreshPromises.delete(e)\n                        })))\n                    }\n                    _onDidChangeCollapseState({\n                        node: e,\n                        deep: t\n                    }) {\n                        null !== e.element && !e.collapsed && e.element.stale && (t ? this.collapse(e.element.element) : this.refreshAndRenderNode(e.element, !1).catch(ve.dL))\n                    }\n                    setChildren(e, t, i, n) {\n                        const o = [...t];\n                        if (0 === e.children.length && 0 === o.length) return [];\n                        const s = new Map,\n                            r = new Map;\n                        for (const t of e.children)\n                            if (s.set(t.element, t), this.identityProvider) {\n                                const e = this.tree.isCollapsed(t);\n                                r.set(t.id, {\n                                    node: t,\n                                    collapsed: e\n                                })\n                            } const a = [],\n                            l = o.map((t => {\n                                const o = !!this.dataSource.hasChildren(t);\n                                if (!this.identityProvider) {\n                                    const i = be({\n                                        element: t,\n                                        parent: e,\n                                        hasChildren: o\n                                    });\n                                    return o && this.collapseByDefault && !this.collapseByDefault(t) && (i.collapsedByDefault = !1, a.push(i)), i\n                                }\n                                const l = this.identityProvider.getId(t).toString(),\n                                    c = r.get(l);\n                                if (c) {\n                                    const e = c.node;\n                                    return s.delete(e.element), this.nodes.delete(e.element), this.nodes.set(t, e), e.element = t, e.hasChildren = o, i ? c.collapsed ? (e.children.forEach((e => Ie(e, (e => this.nodes.delete(e.element))))), e.children.splice(0, e.children.length), e.stale = !0) : a.push(e) : o && this.collapseByDefault && !this.collapseByDefault(t) && (e.collapsedByDefault = !1, a.push(e)), e\n                                }\n                                const d = be({\n                                    element: t,\n                                    parent: e,\n                                    id: l,\n                                    hasChildren: o\n                                });\n                                return n && n.viewState.focus && n.viewState.focus.indexOf(l) > -1 && n.focus.push(d), n && n.viewState.selection && n.viewState.selection.indexOf(l) > -1 && n.selection.push(d), n && n.viewState.expanded && n.viewState.expanded.indexOf(l) > -1 ? a.push(d) : o && this.collapseByDefault && !this.collapseByDefault(t) && (d.collapsedByDefault = !1, a.push(d)), d\n                            }));\n                        for (const e of s.values()) Ie(e, (e => this.nodes.delete(e.element)));\n                        for (const e of l) this.nodes.set(e.element, e);\n                        return e.children.splice(0, e.children.length, ...l), e !== this.root && this.autoExpandSingleChildren && 1 === l.length && 0 === a.length && (l[0].collapsedByDefault = !1, a.push(l[0])), a\n                    }\n                    render(e, t, i) {\n                        const n = e.children.map((e => this.asTreeElement(e, t))),\n                            o = i && Object.assign(Object.assign({}, i), {\n                                diffIdentityProvider: i.diffIdentityProvider && {\n                                    getId: e => i.diffIdentityProvider.getId(e.element)\n                                }\n                            });\n                        this.tree.setChildren(e === this.root ? null : e, n, o), e !== this.root && this.tree.setCollapsible(e, e.hasChildren), this._onDidRender.fire()\n                    }\n                    asTreeElement(e, t) {\n                        if (e.stale) return {\n                            element: e,\n                            collapsible: e.hasChildren,\n                            collapsed: !0\n                        };\n                        let i;\n                        return i = !(t && t.viewState.expanded && e.id && t.viewState.expanded.indexOf(e.id) > -1) && e.collapsedByDefault, e.collapsedByDefault = void 0, {\n                            element: e,\n                            children: e.hasChildren ? S.$.map(e.children, (e => this.asTreeElement(e, t))) : [],\n                            collapsible: e.hasChildren,\n                            collapsed: i\n                        }\n                    }\n                    processChildren(e) {\n                        return this.sorter && (e = [...e].sort(this.sorter.compare.bind(this.sorter))), e\n                    }\n                    dispose() {\n                        this.disposables.dispose()\n                    }\n                }\n                class Te {\n                    constructor(e) {\n                        this.node = e\n                    }\n                    get element() {\n                        return {\n                            elements: this.node.element.elements.map((e => e.element)),\n                            incompressible: this.node.element.incompressible\n                        }\n                    }\n                    get children() {\n                        return this.node.children.map((e => new Te(e)))\n                    }\n                    get depth() {\n                        return this.node.depth\n                    }\n                    get visibleChildrenCount() {\n                        return this.node.visibleChildrenCount\n                    }\n                    get visibleChildIndex() {\n                        return this.node.visibleChildIndex\n                    }\n                    get collapsible() {\n                        return this.node.collapsible\n                    }\n                    get collapsed() {\n                        return this.node.collapsed\n                    }\n                    get visible() {\n                        return this.node.visible\n                    }\n                    get filterData() {\n                        return this.node.filterData\n                    }\n                }\n                class Me {\n                    constructor(e, t, i, n) {\n                        this.renderer = e, this.nodeMapper = t, this.compressibleNodeMapperProvider = i, this.onDidChangeTwistieState = n, this.renderedNodes = new Map, this.disposables = [], this.templateId = e.templateId\n                    }\n                    renderTemplate(e) {\n                        return {\n                            templateData: this.renderer.renderTemplate(e)\n                        }\n                    }\n                    renderElement(e, t, i, n) {\n                        this.renderer.renderElement(this.nodeMapper.map(e), t, i.templateData, n)\n                    }\n                    renderCompressedElements(e, t, i, n) {\n                        this.renderer.renderCompressedElements(this.compressibleNodeMapperProvider().map(e), t, i.templateData, n)\n                    }\n                    renderTwistie(e, t) {\n                        return e.slow ? (t.classList.add(...O.classNamesArray), !0) : (t.classList.remove(...O.classNamesArray), !1)\n                    }\n                    disposeElement(e, t, i, n) {\n                        this.renderer.disposeElement && this.renderer.disposeElement(this.nodeMapper.map(e), t, i.templateData, n)\n                    }\n                    disposeCompressedElements(e, t, i, n) {\n                        this.renderer.disposeCompressedElements && this.renderer.disposeCompressedElements(this.compressibleNodeMapperProvider().map(e), t, i.templateData, n)\n                    }\n                    disposeTemplate(e) {\n                        this.renderer.disposeTemplate(e.templateData)\n                    }\n                    dispose() {\n                        this.renderedNodes.clear(), this.disposables = (0, a.B9)(this.disposables)\n                    }\n                }\n                class Ae extends Ee {\n                    constructor(e, t, i, n, o, s, r = {}) {\n                        super(e, t, i, o, s, r), this.compressionDelegate = n, this.compressibleNodeMapper = new C((e => new Te(e))), this.filter = r.filter\n                    }\n                    createTree(e, t, i, n, o) {\n                        const s = new $(i),\n                            r = n.map((e => new Me(e, this.nodeMapper, (() => this.compressibleNodeMapper), this._onDidChangeNodeSlowState.event))),\n                            a = function(e) {\n                                const t = e && De(e);\n                                return t && Object.assign(Object.assign({}, t), {\n                                    keyboardNavigationLabelProvider: t.keyboardNavigationLabelProvider && Object.assign(Object.assign({}, t.keyboardNavigationLabelProvider), {\n                                        getCompressedNodeKeyboardNavigationLabel: t => e.keyboardNavigationLabelProvider.getCompressedNodeKeyboardNavigationLabel(t.map((e => e.element)))\n                                    })\n                                })\n                            }(o) || {};\n                        return new me(e, t, s, r, a)\n                    }\n                    asTreeElement(e, t) {\n                        return Object.assign({\n                            incompressible: this.compressionDelegate.isIncompressible(e.element)\n                        }, super.asTreeElement(e, t))\n                    }\n                    updateOptions(e = {}) {\n                        this.tree.updateOptions(e)\n                    }\n                    render(e, t) {\n                        if (!this.identityProvider) return super.render(e, t);\n                        const i = e => this.identityProvider.getId(e).toString(),\n                            n = e => {\n                                const t = new Set;\n                                for (const n of e) {\n                                    const e = this.tree.getCompressedTreeNode(n === this.root ? null : n);\n                                    if (e.element)\n                                        for (const n of e.element.elements) t.add(i(n.element))\n                                }\n                                return t\n                            },\n                            o = n(this.tree.getSelection()),\n                            s = n(this.tree.getFocus());\n                        super.render(e, t);\n                        const r = this.getSelection();\n                        let a = !1;\n                        const l = this.getFocus();\n                        let c = !1;\n                        const d = e => {\n                            const t = e.element;\n                            if (t)\n                                for (let e = 0; e < t.elements.length; e++) {\n                                    const n = i(t.elements[e].element),\n                                        d = t.elements[t.elements.length - 1].element;\n                                    o.has(n) && -1 === r.indexOf(d) && (r.push(d), a = !0), s.has(n) && -1 === l.indexOf(d) && (l.push(d), c = !0)\n                                }\n                            e.children.forEach(d)\n                        };\n                        d(this.tree.getCompressedTreeNode(e === this.root ? null : e)), a && this.setSelection(r), c && this.setFocus(l)\n                    }\n                    processChildren(e) {\n                        return this.filter && (e = S.$.filter(e, (e => {\n                            const t = this.filter.filter(e, 1),\n                                i = \"boolean\" == typeof(n = t) ? n ? 1 : 0 : k(n) ? L(n.visibility) : L(n);\n                            var n;\n                            if (2 === i) throw new Error(\"Recursive tree visibility not supported in async data compressed trees\");\n                            return 1 === i\n                        }))), super.processChildren(e)\n                    }\n                }\n                class Oe extends te {\n                    constructor(e, t, i, n, o, s = {}) {\n                        super(e, t, i, n, s), this.user = e, this.dataSource = o, this.identityProvider = s.identityProvider\n                    }\n                    createModel(e, t, i) {\n                        return new ie(e, t, i)\n                    }\n                }\n                var Pe = i(31106),\n                    Re = i(33108),\n                    Fe = i(23193),\n                    Be = i(38819),\n                    Ve = i(39282),\n                    We = i(72065),\n                    He = i(91847),\n                    ze = i(89872),\n                    je = i(88810),\n                    Ue = i(97781),\n                    $e = function(e, t, i, n) {\n                        var o, s = arguments.length,\n                            r = s < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n                        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) r = Reflect.decorate(e, t, i, n);\n                        else\n                            for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (r = (s < 3 ? o(r) : s > 3 ? o(t, i, r) : o(t, i)) || r);\n                        return s > 3 && r && Object.defineProperty(t, i, r), r\n                    },\n                    Ke = function(e, t) {\n                        return function(i, n) {\n                            t(i, n, e)\n                        }\n                    };\n                const qe = (0, We.yh)(\"listService\");\n                let Ze = class {\n                    constructor(e) {\n                        this._themeService = e, this.disposables = new a.SL, this.lists = [], this._lastFocusedWidget = void 0, this._hasCreatedStyleController = !1\n                    }\n                    get lastFocusedList() {\n                        return this._lastFocusedWidget\n                    }\n                    register(e, t) {\n                        if (!this._hasCreatedStyleController) {\n                            this._hasCreatedStyleController = !0;\n                            const e = new l.wD((0, n.dS)(), \"\");\n                            this.disposables.add((0, je.Jl)(e, this._themeService))\n                        }\n                        if (this.lists.some((t => t.widget === e))) throw new Error(\"Cannot register the same widget multiple times\");\n                        const i = {\n                            widget: e,\n                            extraContextKeys: t\n                        };\n                        return this.lists.push(i), e.getHTMLElement() === document.activeElement && (this._lastFocusedWidget = e), (0, a.F8)(e.onDidFocus((() => this._lastFocusedWidget = e)), (0, a.OF)((() => this.lists.splice(this.lists.indexOf(i), 1))), e.onDidDispose((() => {\n                            this.lists = this.lists.filter((e => e !== i)), this._lastFocusedWidget === e && (this._lastFocusedWidget = void 0)\n                        })))\n                    }\n                    dispose() {\n                        this.disposables.dispose()\n                    }\n                };\n                Ze = $e([Ke(0, Ue.XE)], Ze);\n                const Ge = new Be.uy(\"listFocus\", !0),\n                    Ye = new Be.uy(\"listSupportsMultiselect\", !0),\n                    Qe = Be.Ao.and(Ge, Be.Ao.not(Ve.d)),\n                    Xe = new Be.uy(\"listHasSelectionOrFocus\", !1),\n                    Je = new Be.uy(\"listDoubleSelection\", !1),\n                    et = new Be.uy(\"listMultiSelection\", !1),\n                    tt = new Be.uy(\"listSelectionNavigation\", !1),\n                    it = \"listAutomaticKeyboardNavigation\";\n\n                function nt(e, t) {\n                    const i = e.createScoped(t.getHTMLElement());\n                    return Ge.bindTo(i), i\n                }\n                const ot = \"workbench.list.multiSelectModifier\",\n                    st = \"workbench.list.openMode\",\n                    rt = \"workbench.list.horizontalScrolling\",\n                    at = \"workbench.list.keyboardNavigation\",\n                    lt = \"workbench.list.automaticKeyboardNavigation\",\n                    ct = \"workbench.tree.indent\",\n                    dt = \"workbench.tree.renderIndentGuides\",\n                    ht = \"workbench.list.smoothScrolling\",\n                    ut = \"workbench.list.mouseWheelScrollSensitivity\",\n                    gt = \"workbench.list.fastScrollSensitivity\",\n                    pt = \"workbench.tree.expandMode\";\n\n                function ft(e) {\n                    return \"alt\" === e.getValue(ot)\n                }\n                class mt extends a.JT {\n                    constructor(e) {\n                        super(), this.configurationService = e, this.useAltAsMultipleSelectionModifier = ft(e), this.registerListeners()\n                    }\n                    registerListeners() {\n                        this._register(this.configurationService.onDidChangeConfiguration((e => {\n                            e.affectsConfiguration(ot) && (this.useAltAsMultipleSelectionModifier = ft(this.configurationService))\n                        })))\n                    }\n                    isSelectionSingleChangeEvent(e) {\n                        return this.useAltAsMultipleSelectionModifier ? e.browserEvent.altKey : (0, l.Zo)(e)\n                    }\n                    isSelectionRangeChangeEvent(e) {\n                        return (0, l.wn)(e)\n                    }\n                }\n\n                function vt(e, t, i) {\n                    var n;\n                    const o = new a.SL;\n                    return [Object.assign(Object.assign({}, e), {\n                        keyboardNavigationDelegate: {\n                            mightProducePrintableCharacter: e => i.mightProducePrintableCharacter(e)\n                        },\n                        smoothScrolling: Boolean(t.getValue(ht)),\n                        mouseWheelScrollSensitivity: t.getValue(ut),\n                        fastScrollSensitivity: t.getValue(gt),\n                        multipleSelectionController: null !== (n = e.multipleSelectionController) && void 0 !== n ? n : o.add(new mt(t))\n                    }), o]\n                }\n                let _t = class extends l.aV {\n                    constructor(e, t, i, n, o, s, r, a, l, c) {\n                        const d = void 0 !== o.horizontalScrolling ? o.horizontalScrolling : Boolean(l.getValue(rt)),\n                            [h, u] = vt(o, l, c);\n                        super(e, t, i, n, Object.assign(Object.assign(Object.assign({\n                            keyboardSupport: !1\n                        }, (0, je.o)(a.getColorTheme(), je.O2)), h), {\n                            horizontalScrolling: d\n                        })), this.disposables.add(u), this.contextKeyService = nt(s, this), this.themeService = a, this.listSupportsMultiSelect = Ye.bindTo(this.contextKeyService), this.listSupportsMultiSelect.set(!1 !== o.multipleSelectionSupport);\n                        tt.bindTo(this.contextKeyService).set(Boolean(o.selectionNavigation)), this.listHasSelectionOrFocus = Xe.bindTo(this.contextKeyService), this.listDoubleSelection = Je.bindTo(this.contextKeyService), this.listMultiSelection = et.bindTo(this.contextKeyService), this.horizontalScrolling = o.horizontalScrolling, this._useAltAsMultipleSelectionModifier = ft(l), this.disposables.add(this.contextKeyService), this.disposables.add(r.register(this)), o.overrideStyles && this.updateStyles(o.overrideStyles), this.disposables.add(this.onDidChangeSelection((() => {\n                            const e = this.getSelection(),\n                                t = this.getFocus();\n                            this.contextKeyService.bufferChangeEvents((() => {\n                                this.listHasSelectionOrFocus.set(e.length > 0 || t.length > 0), this.listMultiSelection.set(e.length > 1), this.listDoubleSelection.set(2 === e.length)\n                            }))\n                        }))), this.disposables.add(this.onDidChangeFocus((() => {\n                            const e = this.getSelection(),\n                                t = this.getFocus();\n                            this.listHasSelectionOrFocus.set(e.length > 0 || t.length > 0)\n                        }))), this.disposables.add(l.onDidChangeConfiguration((e => {\n                            e.affectsConfiguration(ot) && (this._useAltAsMultipleSelectionModifier = ft(l));\n                            let t = {};\n                            if (e.affectsConfiguration(rt) && void 0 === this.horizontalScrolling) {\n                                const e = Boolean(l.getValue(rt));\n                                t = Object.assign(Object.assign({}, t), {\n                                    horizontalScrolling: e\n                                })\n                            }\n                            if (e.affectsConfiguration(ht)) {\n                                const e = Boolean(l.getValue(ht));\n                                t = Object.assign(Object.assign({}, t), {\n                                    smoothScrolling: e\n                                })\n                            }\n                            if (e.affectsConfiguration(ut)) {\n                                const e = l.getValue(ut);\n                                t = Object.assign(Object.assign({}, t), {\n                                    mouseWheelScrollSensitivity: e\n                                })\n                            }\n                            if (e.affectsConfiguration(gt)) {\n                                const e = l.getValue(gt);\n                                t = Object.assign(Object.assign({}, t), {\n                                    fastScrollSensitivity: e\n                                })\n                            }\n                            Object.keys(t).length > 0 && this.updateOptions(t)\n                        }))), this.navigator = new Ct(this, Object.assign({\n                            configurationService: l\n                        }, o)), this.disposables.add(this.navigator)\n                    }\n                    updateOptions(e) {\n                        super.updateOptions(e), e.overrideStyles && this.updateStyles(e.overrideStyles), void 0 !== e.multipleSelectionSupport && this.listSupportsMultiSelect.set(!!e.multipleSelectionSupport)\n                    }\n                    updateStyles(e) {\n                        var t;\n                        null === (t = this._styler) || void 0 === t || t.dispose(), this._styler = (0, je.Jl)(this, this.themeService, e)\n                    }\n                    dispose() {\n                        var e;\n                        null === (e = this._styler) || void 0 === e || e.dispose(), super.dispose()\n                    }\n                };\n                _t = $e([Ke(5, Be.i6), Ke(6, qe), Ke(7, Ue.XE), Ke(8, Re.Ui), Ke(9, He.d)], _t);\n                let bt = class extends h {\n                    constructor(e, t, i, n, o, s, r, l, c, d) {\n                        const h = void 0 !== o.horizontalScrolling ? o.horizontalScrolling : Boolean(c.getValue(rt)),\n                            [u, g] = vt(o, c, d);\n                        super(e, t, i, n, Object.assign(Object.assign(Object.assign({\n                            keyboardSupport: !1\n                        }, (0, je.o)(l.getColorTheme(), je.O2)), u), {\n                            horizontalScrolling: h\n                        })), this.disposables = new a.SL, this.disposables.add(g), this.contextKeyService = nt(s, this), this.themeService = l, this.horizontalScrolling = o.horizontalScrolling, this.listSupportsMultiSelect = Ye.bindTo(this.contextKeyService), this.listSupportsMultiSelect.set(!1 !== o.multipleSelectionSupport);\n                        tt.bindTo(this.contextKeyService).set(Boolean(o.selectionNavigation)), this._useAltAsMultipleSelectionModifier = ft(c), this.disposables.add(this.contextKeyService), this.disposables.add(r.register(this)), o.overrideStyles && this.updateStyles(o.overrideStyles), o.overrideStyles && this.disposables.add((0, je.Jl)(this, l, o.overrideStyles)), this.disposables.add(c.onDidChangeConfiguration((e => {\n                            e.affectsConfiguration(ot) && (this._useAltAsMultipleSelectionModifier = ft(c));\n                            let t = {};\n                            if (e.affectsConfiguration(rt) && void 0 === this.horizontalScrolling) {\n                                const e = Boolean(c.getValue(rt));\n                                t = Object.assign(Object.assign({}, t), {\n                                    horizontalScrolling: e\n                                })\n                            }\n                            if (e.affectsConfiguration(ht)) {\n                                const e = Boolean(c.getValue(ht));\n                                t = Object.assign(Object.assign({}, t), {\n                                    smoothScrolling: e\n                                })\n                            }\n                            if (e.affectsConfiguration(ut)) {\n                                const e = c.getValue(ut);\n                                t = Object.assign(Object.assign({}, t), {\n                                    mouseWheelScrollSensitivity: e\n                                })\n                            }\n                            if (e.affectsConfiguration(gt)) {\n                                const e = c.getValue(gt);\n                                t = Object.assign(Object.assign({}, t), {\n                                    fastScrollSensitivity: e\n                                })\n                            }\n                            Object.keys(t).length > 0 && this.updateOptions(t)\n                        }))), this.navigator = new Ct(this, Object.assign({\n                            configurationService: c\n                        }, o)), this.disposables.add(this.navigator)\n                    }\n                    updateOptions(e) {\n                        super.updateOptions(e), e.overrideStyles && this.updateStyles(e.overrideStyles), void 0 !== e.multipleSelectionSupport && this.listSupportsMultiSelect.set(!!e.multipleSelectionSupport)\n                    }\n                    updateStyles(e) {\n                        var t;\n                        null === (t = this._styler) || void 0 === t || t.dispose(), this._styler = (0, je.Jl)(this, this.themeService, e)\n                    }\n                    dispose() {\n                        var e;\n                        null === (e = this._styler) || void 0 === e || e.dispose(), this.disposables.dispose(), super.dispose()\n                    }\n                };\n                bt = $e([Ke(5, Be.i6), Ke(6, qe), Ke(7, Ue.XE), Ke(8, Re.Ui), Ke(9, He.d)], bt);\n                let wt = class extends f {\n                    constructor(e, t, i, n, o, s, r, l, c, d, h) {\n                        const u = void 0 !== s.horizontalScrolling ? s.horizontalScrolling : Boolean(d.getValue(rt)),\n                            [g, p] = vt(s, d, h);\n                        super(e, t, i, n, o, Object.assign(Object.assign(Object.assign({\n                            keyboardSupport: !1\n                        }, (0, je.o)(c.getColorTheme(), je.O2)), g), {\n                            horizontalScrolling: u\n                        })), this.disposables = new a.SL, this.disposables.add(p), this.contextKeyService = nt(r, this), this.themeService = c, this.listSupportsMultiSelect = Ye.bindTo(this.contextKeyService), this.listSupportsMultiSelect.set(!1 !== s.multipleSelectionSupport);\n                        tt.bindTo(this.contextKeyService).set(Boolean(s.selectionNavigation)), this.listHasSelectionOrFocus = Xe.bindTo(this.contextKeyService), this.listDoubleSelection = Je.bindTo(this.contextKeyService), this.listMultiSelection = et.bindTo(this.contextKeyService), this.horizontalScrolling = s.horizontalScrolling, this._useAltAsMultipleSelectionModifier = ft(d), this.disposables.add(this.contextKeyService), this.disposables.add(l.register(this)), s.overrideStyles && this.updateStyles(s.overrideStyles), this.disposables.add(this.onDidChangeSelection((() => {\n                            const e = this.getSelection(),\n                                t = this.getFocus();\n                            this.contextKeyService.bufferChangeEvents((() => {\n                                this.listHasSelectionOrFocus.set(e.length > 0 || t.length > 0), this.listMultiSelection.set(e.length > 1), this.listDoubleSelection.set(2 === e.length)\n                            }))\n                        }))), this.disposables.add(this.onDidChangeFocus((() => {\n                            const e = this.getSelection(),\n                                t = this.getFocus();\n                            this.listHasSelectionOrFocus.set(e.length > 0 || t.length > 0)\n                        }))), this.disposables.add(d.onDidChangeConfiguration((e => {\n                            e.affectsConfiguration(ot) && (this._useAltAsMultipleSelectionModifier = ft(d));\n                            let t = {};\n                            if (e.affectsConfiguration(rt) && void 0 === this.horizontalScrolling) {\n                                const e = Boolean(d.getValue(rt));\n                                t = Object.assign(Object.assign({}, t), {\n                                    horizontalScrolling: e\n                                })\n                            }\n                            if (e.affectsConfiguration(ht)) {\n                                const e = Boolean(d.getValue(ht));\n                                t = Object.assign(Object.assign({}, t), {\n                                    smoothScrolling: e\n                                })\n                            }\n                            if (e.affectsConfiguration(ut)) {\n                                const e = d.getValue(ut);\n                                t = Object.assign(Object.assign({}, t), {\n                                    mouseWheelScrollSensitivity: e\n                                })\n                            }\n                            if (e.affectsConfiguration(gt)) {\n                                const e = d.getValue(gt);\n                                t = Object.assign(Object.assign({}, t), {\n                                    fastScrollSensitivity: e\n                                })\n                            }\n                            Object.keys(t).length > 0 && this.updateOptions(t)\n                        }))), this.navigator = new xt(this, Object.assign({\n                            configurationService: d\n                        }, s)), this.disposables.add(this.navigator)\n                    }\n                    updateOptions(e) {\n                        super.updateOptions(e), e.overrideStyles && this.updateStyles(e.overrideStyles), void 0 !== e.multipleSelectionSupport && this.listSupportsMultiSelect.set(!!e.multipleSelectionSupport)\n                    }\n                    updateStyles(e) {\n                        var t;\n                        null === (t = this._styler) || void 0 === t || t.dispose(), this._styler = (0, je.Jl)(this, this.themeService, e)\n                    }\n                    dispose() {\n                        var e;\n                        null === (e = this._styler) || void 0 === e || e.dispose(), this.disposables.dispose(), super.dispose()\n                    }\n                };\n                wt = $e([Ke(6, Be.i6), Ke(7, qe), Ke(8, Ue.XE), Ke(9, Re.Ui), Ke(10, He.d)], wt);\n                class yt extends a.JT {\n                    constructor(e, t) {\n                        var i;\n                        super(), this.widget = e, this._onDidOpen = this._register(new r.Q5), this.onDidOpen = this._onDidOpen.event, this._register(r.ju.filter(this.widget.onDidChangeSelection, (e => e.browserEvent instanceof KeyboardEvent))((e => this.onSelectionFromKeyboard(e)))), this._register(this.widget.onPointer((e => this.onPointer(e.element, e.browserEvent)))), this._register(this.widget.onMouseDblClick((e => this.onMouseDblClick(e.element, e.browserEvent)))), \"boolean\" != typeof(null == t ? void 0 : t.openOnSingleClick) && (null == t ? void 0 : t.configurationService) ? (this.openOnSingleClick = \"doubleClick\" !== (null == t ? void 0 : t.configurationService.getValue(st)), this._register(null == t ? void 0 : t.configurationService.onDidChangeConfiguration((() => {\n                            this.openOnSingleClick = \"doubleClick\" !== (null == t ? void 0 : t.configurationService.getValue(st))\n                        })))) : this.openOnSingleClick = null === (i = null == t ? void 0 : t.openOnSingleClick) || void 0 === i || i\n                    }\n                    onSelectionFromKeyboard(e) {\n                        if (1 !== e.elements.length) return;\n                        const t = e.browserEvent,\n                            i = \"boolean\" != typeof t.preserveFocus || t.preserveFocus,\n                            n = \"boolean\" == typeof t.pinned ? t.pinned : !i;\n                        this._open(this.getSelectedElement(), i, n, !1, e.browserEvent)\n                    }\n                    onPointer(e, t) {\n                        if (!this.openOnSingleClick) return;\n                        if (2 === t.detail) return;\n                        const i = 1 === t.button,\n                            n = t.ctrlKey || t.metaKey || t.altKey;\n                        this._open(e, !0, i, n, t)\n                    }\n                    onMouseDblClick(e, t) {\n                        if (!t) return;\n                        const i = t.target;\n                        if (i.classList.contains(\"monaco-tl-twistie\") || i.classList.contains(\"monaco-icon-label\") && i.classList.contains(\"folder-icon\") && t.offsetX < 16) return;\n                        const n = t.ctrlKey || t.metaKey || t.altKey;\n                        this._open(e, !1, !0, n, t)\n                    }\n                    _open(e, t, i, n, o) {\n                        e && this._onDidOpen.fire({\n                            editorOptions: {\n                                preserveFocus: t,\n                                pinned: i,\n                                revealIfVisible: !0\n                            },\n                            sideBySide: n,\n                            element: e,\n                            browserEvent: o\n                        })\n                    }\n                }\n                class Ct extends yt {\n                    constructor(e, t) {\n                        super(e, t), this.widget = e\n                    }\n                    getSelectedElement() {\n                        return this.widget.getSelectedElements()[0]\n                    }\n                }\n                class xt extends yt {\n                    constructor(e, t) {\n                        super(e, t)\n                    }\n                    getSelectedElement() {\n                        return this.widget.getSelectedElements()[0]\n                    }\n                }\n                class St extends yt {\n                    constructor(e, t) {\n                        super(e, t)\n                    }\n                    getSelectedElement() {\n                        var e;\n                        return null !== (e = this.widget.getSelection()[0]) && void 0 !== e ? e : void 0\n                    }\n                }\n\n                function kt(e, t) {\n                    let i = !1;\n                    return n => {\n                        if (i) return i = !1, !1;\n                        const o = t.softDispatch(n, e);\n                        return o && o.enterChord ? (i = !0, !1) : (i = !1, !0)\n                    }\n                }\n                let Lt = class extends pe {\n                    constructor(e, t, i, n, o, s, r, a, l, c, d) {\n                        const {\n                            options: h,\n                            getAutomaticKeyboardNavigation: u,\n                            disposable: g\n                        } = Tt(t, o, s, l, c, d);\n                        super(e, t, i, n, h), this.disposables.add(g), this.internals = new Mt(this, o, u, o.overrideStyles, s, r, a, l, d), this.disposables.add(this.internals)\n                    }\n                    updateOptions(e) {\n                        super.updateOptions(e), this.internals.updateOptions(e)\n                    }\n                };\n                Lt = $e([Ke(5, Be.i6), Ke(6, qe), Ke(7, Ue.XE), Ke(8, Re.Ui), Ke(9, He.d), Ke(10, Pe.F)], Lt);\n                let Nt = class extends me {\n                    constructor(e, t, i, n, o, s, r, a, l, c, d) {\n                        const {\n                            options: h,\n                            getAutomaticKeyboardNavigation: u,\n                            disposable: g\n                        } = Tt(t, o, s, l, c, d);\n                        super(e, t, i, n, h), this.disposables.add(g), this.internals = new Mt(this, o, u, o.overrideStyles, s, r, a, l, d), this.disposables.add(this.internals)\n                    }\n                    updateOptions(e = {}) {\n                        super.updateOptions(e), e.overrideStyles && this.internals.updateStyleOverrides(e.overrideStyles), this.internals.updateOptions(e)\n                    }\n                };\n                Nt = $e([Ke(5, Be.i6), Ke(6, qe), Ke(7, Ue.XE), Ke(8, Re.Ui), Ke(9, He.d), Ke(10, Pe.F)], Nt);\n                let Dt = class extends Oe {\n                    constructor(e, t, i, n, o, s, r, a, l, c, d, h) {\n                        const {\n                            options: u,\n                            getAutomaticKeyboardNavigation: g,\n                            disposable: p\n                        } = Tt(t, s, r, c, d, h);\n                        super(e, t, i, n, o, u), this.disposables.add(p), this.internals = new Mt(this, s, g, s.overrideStyles, r, a, l, c, h), this.disposables.add(this.internals)\n                    }\n                    updateOptions(e = {}) {\n                        super.updateOptions(e), e.overrideStyles && this.internals.updateStyleOverrides(e.overrideStyles), this.internals.updateOptions(e)\n                    }\n                };\n                Dt = $e([Ke(6, Be.i6), Ke(7, qe), Ke(8, Ue.XE), Ke(9, Re.Ui), Ke(10, He.d), Ke(11, Pe.F)], Dt);\n                let It = class extends Ee {\n                    constructor(e, t, i, n, o, s, r, a, l, c, d, h) {\n                        const {\n                            options: u,\n                            getAutomaticKeyboardNavigation: g,\n                            disposable: p\n                        } = Tt(t, s, r, c, d, h);\n                        super(e, t, i, n, o, u), this.disposables.add(p), this.internals = new Mt(this, s, g, s.overrideStyles, r, a, l, c, h), this.disposables.add(this.internals)\n                    }\n                    get onDidOpen() {\n                        return this.internals.onDidOpen\n                    }\n                    updateOptions(e = {}) {\n                        super.updateOptions(e), e.overrideStyles && this.internals.updateStyleOverrides(e.overrideStyles), this.internals.updateOptions(e)\n                    }\n                };\n                It = $e([Ke(6, Be.i6), Ke(7, qe), Ke(8, Ue.XE), Ke(9, Re.Ui), Ke(10, He.d), Ke(11, Pe.F)], It);\n                let Et = class extends Ae {\n                    constructor(e, t, i, n, o, s, r, a, l, c, d, h, u) {\n                        const {\n                            options: g,\n                            getAutomaticKeyboardNavigation: p,\n                            disposable: f\n                        } = Tt(t, r, a, d, h, u);\n                        super(e, t, i, n, o, s, g), this.disposables.add(f), this.internals = new Mt(this, r, p, r.overrideStyles, a, l, c, d, u), this.disposables.add(this.internals)\n                    }\n                    updateOptions(e) {\n                        super.updateOptions(e), this.internals.updateOptions(e)\n                    }\n                };\n\n                function Tt(e, t, i, n, o, s) {\n                    var r;\n                    const a = () => {\n                            let e = Boolean(i.getContextKeyValue(it));\n                            return e && (e = Boolean(n.getValue(lt))), e\n                        },\n                        l = s.isScreenReaderOptimized(),\n                        c = t.simpleKeyboardNavigation || l ? \"simple\" : n.getValue(at),\n                        d = void 0 !== t.horizontalScrolling ? t.horizontalScrolling : Boolean(n.getValue(rt)),\n                        [h, u] = vt(t, n, o),\n                        g = t.additionalScrollHeight;\n                    return {\n                        getAutomaticKeyboardNavigation: a,\n                        disposable: u,\n                        options: Object.assign(Object.assign({\n                            keyboardSupport: !1\n                        }, h), {\n                            indent: \"number\" == typeof n.getValue(ct) ? n.getValue(ct) : void 0,\n                            renderIndentGuides: n.getValue(dt),\n                            smoothScrolling: Boolean(n.getValue(ht)),\n                            automaticKeyboardNavigation: a(),\n                            simpleKeyboardNavigation: \"simple\" === c,\n                            filterOnType: \"filter\" === c,\n                            horizontalScrolling: d,\n                            keyboardNavigationEventFilter: kt(e, o),\n                            additionalScrollHeight: g,\n                            hideTwistiesOfChildlessElements: t.hideTwistiesOfChildlessElements,\n                            expandOnlyOnTwistieClick: null !== (r = t.expandOnlyOnTwistieClick) && void 0 !== r ? r : \"doubleClick\" === n.getValue(pt)\n                        })\n                    }\n                }\n                Et = $e([Ke(7, Be.i6), Ke(8, qe), Ke(9, Ue.XE), Ke(10, Re.Ui), Ke(11, He.d), Ke(12, Pe.F)], Et);\n                let Mt = class {\n                    constructor(e, t, i, n, o, s, r, a, l) {\n                        this.tree = e, this.themeService = r, this.disposables = [], this.contextKeyService = nt(o, e), this.listSupportsMultiSelect = Ye.bindTo(this.contextKeyService), this.listSupportsMultiSelect.set(!1 !== t.multipleSelectionSupport);\n                        tt.bindTo(this.contextKeyService).set(Boolean(t.selectionNavigation)), this.hasSelectionOrFocus = Xe.bindTo(this.contextKeyService), this.hasDoubleSelection = Je.bindTo(this.contextKeyService), this.hasMultiSelection = et.bindTo(this.contextKeyService), this._useAltAsMultipleSelectionModifier = ft(a);\n                        const c = new Set;\n                        c.add(it);\n                        const d = () => {\n                            const t = l.isScreenReaderOptimized() ? \"simple\" : a.getValue(at);\n                            e.updateOptions({\n                                simpleKeyboardNavigation: \"simple\" === t,\n                                filterOnType: \"filter\" === t\n                            })\n                        };\n                        this.updateStyleOverrides(n), this.disposables.push(this.contextKeyService, s.register(e), e.onDidChangeSelection((() => {\n                            const t = e.getSelection(),\n                                i = e.getFocus();\n                            this.contextKeyService.bufferChangeEvents((() => {\n                                this.hasSelectionOrFocus.set(t.length > 0 || i.length > 0), this.hasMultiSelection.set(t.length > 1), this.hasDoubleSelection.set(2 === t.length)\n                            }))\n                        })), e.onDidChangeFocus((() => {\n                            const t = e.getSelection(),\n                                i = e.getFocus();\n                            this.hasSelectionOrFocus.set(t.length > 0 || i.length > 0)\n                        })), a.onDidChangeConfiguration((n => {\n                            let o = {};\n                            if (n.affectsConfiguration(ot) && (this._useAltAsMultipleSelectionModifier = ft(a)), n.affectsConfiguration(ct)) {\n                                const e = a.getValue(ct);\n                                o = Object.assign(Object.assign({}, o), {\n                                    indent: e\n                                })\n                            }\n                            if (n.affectsConfiguration(dt)) {\n                                const e = a.getValue(dt);\n                                o = Object.assign(Object.assign({}, o), {\n                                    renderIndentGuides: e\n                                })\n                            }\n                            if (n.affectsConfiguration(ht)) {\n                                const e = Boolean(a.getValue(ht));\n                                o = Object.assign(Object.assign({}, o), {\n                                    smoothScrolling: e\n                                })\n                            }\n                            if (n.affectsConfiguration(at) && d(), n.affectsConfiguration(lt) && (o = Object.assign(Object.assign({}, o), {\n                                    automaticKeyboardNavigation: i()\n                                })), n.affectsConfiguration(rt) && void 0 === t.horizontalScrolling) {\n                                const e = Boolean(a.getValue(rt));\n                                o = Object.assign(Object.assign({}, o), {\n                                    horizontalScrolling: e\n                                })\n                            }\n                            if (n.affectsConfiguration(pt) && void 0 === t.expandOnlyOnTwistieClick && (o = Object.assign(Object.assign({}, o), {\n                                    expandOnlyOnTwistieClick: \"doubleClick\" === a.getValue(pt)\n                                })), n.affectsConfiguration(ut)) {\n                                const e = a.getValue(ut);\n                                o = Object.assign(Object.assign({}, o), {\n                                    mouseWheelScrollSensitivity: e\n                                })\n                            }\n                            if (n.affectsConfiguration(gt)) {\n                                const e = a.getValue(gt);\n                                o = Object.assign(Object.assign({}, o), {\n                                    fastScrollSensitivity: e\n                                })\n                            }\n                            Object.keys(o).length > 0 && e.updateOptions(o)\n                        })), this.contextKeyService.onDidChangeContext((t => {\n                            t.affectsSome(c) && e.updateOptions({\n                                automaticKeyboardNavigation: i()\n                            })\n                        })), l.onDidChangeScreenReaderOptimized((() => d()))), this.navigator = new St(e, Object.assign({\n                            configurationService: a\n                        }, t)), this.disposables.push(this.navigator)\n                    }\n                    get onDidOpen() {\n                        return this.navigator.onDidOpen\n                    }\n                    updateOptions(e) {\n                        void 0 !== e.multipleSelectionSupport && this.listSupportsMultiSelect.set(!!e.multipleSelectionSupport)\n                    }\n                    updateStyleOverrides(e) {\n                        (0, a.B9)(this.styler), this.styler = e ? (0, je.Jl)(this.tree, this.themeService, e) : a.JT.None\n                    }\n                    dispose() {\n                        this.disposables = (0, a.B9)(this.disposables), (0, a.B9)(this.styler), this.styler = void 0\n                    }\n                };\n                Mt = $e([Ke(4, Be.i6), Ke(5, qe), Ke(6, Ue.XE), Ke(7, Re.Ui), Ke(8, Pe.F)], Mt);\n                ze.B.as(Fe.IP.Configuration).registerConfiguration({\n                    id: \"workbench\",\n                    order: 7,\n                    title: (0, H.N)(\"workbenchConfigurationTitle\", \"Workbench\"),\n                    type: \"object\",\n                    properties: {\n                        [ot]: {\n                            type: \"string\",\n                            enum: [\"ctrlCmd\", \"alt\"],\n                            enumDescriptions: [(0, H.N)(\"multiSelectModifier.ctrlCmd\", \"Maps to `Control` on Windows and Linux and to `Command` on macOS.\"), (0, H.N)(\"multiSelectModifier.alt\", \"Maps to `Alt` on Windows and Linux and to `Option` on macOS.\")],\n                            default: \"ctrlCmd\",\n                            description: (0, H.N)({\n                                key: \"multiSelectModifier\",\n                                comment: [\"- `ctrlCmd` refers to a value the setting can take and should not be localized.\", \"- `Control` and `Command` refer to the modifier keys Ctrl or Cmd on the keyboard and can be localized.\"]\n                            }, \"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.\")\n                        },\n                        [st]: {\n                            type: \"string\",\n                            enum: [\"singleClick\", \"doubleClick\"],\n                            default: \"singleClick\",\n                            description: (0, H.N)({\n                                key: \"openModeModifier\",\n                                comment: [\"`singleClick` and `doubleClick` refers to a value the setting can take and should not be localized.\"]\n                            }, \"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.\")\n                        },\n                        [rt]: {\n                            type: \"boolean\",\n                            default: !1,\n                            description: (0, H.N)(\"horizontalScrolling setting\", \"Controls whether lists and trees support horizontal scrolling in the workbench. Warning: turning on this setting has a performance implication.\")\n                        },\n                        [ct]: {\n                            type: \"number\",\n                            default: 8,\n                            minimum: 0,\n                            maximum: 40,\n                            description: (0, H.N)(\"tree indent setting\", \"Controls tree indentation in pixels.\")\n                        },\n                        [dt]: {\n                            type: \"string\",\n                            enum: [\"none\", \"onHover\", \"always\"],\n                            default: \"onHover\",\n                            description: (0, H.N)(\"render tree indent guides\", \"Controls whether the tree should render indent guides.\")\n                        },\n                        [ht]: {\n                            type: \"boolean\",\n                            default: !1,\n                            description: (0, H.N)(\"list smoothScrolling setting\", \"Controls whether lists and trees have smooth scrolling.\")\n                        },\n                        [ut]: {\n                            type: \"number\",\n                            default: 1,\n                            description: (0, H.N)(\"Mouse Wheel Scroll Sensitivity\", \"A multiplier to be used on the `deltaX` and `deltaY` of mouse wheel scroll events.\")\n                        },\n                        [gt]: {\n                            type: \"number\",\n                            default: 5,\n                            description: (0, H.N)(\"Fast Scroll Sensitivity\", \"Scrolling speed multiplier when pressing `Alt`.\")\n                        },\n                        [at]: {\n                            type: \"string\",\n                            enum: [\"simple\", \"highlight\", \"filter\"],\n                            enumDescriptions: [(0, H.N)(\"keyboardNavigationSettingKey.simple\", \"Simple keyboard navigation focuses elements which match the keyboard input. Matching is done only on prefixes.\"), (0, H.N)(\"keyboardNavigationSettingKey.highlight\", \"Highlight keyboard navigation highlights elements which match the keyboard input. Further up and down navigation will traverse only the highlighted elements.\"), (0, H.N)(\"keyboardNavigationSettingKey.filter\", \"Filter keyboard navigation will filter out and hide all the elements which do not match the keyboard input.\")],\n                            default: \"highlight\",\n                            description: (0, H.N)(\"keyboardNavigationSettingKey\", \"Controls the keyboard navigation style for lists and trees in the workbench. Can be simple, highlight and filter.\")\n                        },\n                        [lt]: {\n                            type: \"boolean\",\n                            default: !0,\n                            markdownDescription: (0, H.N)(\"automatic keyboard navigation setting\", \"Controls whether keyboard navigation in lists and trees is automatically triggered simply by typing. If set to `false`, keyboard navigation is only triggered when executing the `list.toggleKeyboardNavigation` command, for which you can assign a keyboard shortcut.\")\n                        },\n                        [pt]: {\n                            type: \"string\",\n                            enum: [\"singleClick\", \"doubleClick\"],\n                            default: \"singleClick\",\n                            description: (0, H.N)(\"expand mode\", \"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.\")\n                        }\n                    }\n                })\n            },\n            43557: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    $V: () => d,\n                    VZ: () => s,\n                    in: () => r,\n                    kw: () => c\n                });\n                var n = i(4669),\n                    o = i(5976);\n                const s = (0, i(72065).yh)(\"logService\");\n                var r;\n                ! function(e) {\n                    e[e.Trace = 0] = \"Trace\", e[e.Debug = 1] = \"Debug\", e[e.Info = 2] = \"Info\", e[e.Warning = 3] = \"Warning\", e[e.Error = 4] = \"错误\", e[e.Critical = 5] = \"Critical\", e[e.Off = 6] = \"Off\"\n                }(r || (r = {}));\n                const a = r.Info;\n                class l extends o.JT {\n                    constructor() {\n                        super(...arguments), this.level = a, this._onDidChangeLogLevel = this._register(new n.Q5)\n                    }\n                    setLevel(e) {\n                        this.level !== e && (this.level = e, this._onDidChangeLogLevel.fire(this.level))\n                    }\n                    getLevel() {\n                        return this.level\n                    }\n                }\n                class c extends l {\n                    constructor(e = a) {\n                        super(), this.setLevel(e)\n                    }\n                    trace(e, ...t) {\n                        this.getLevel() <= r.Trace && console.log(\"%cTRACE\", \"color: #888\", e, ...t)\n                    }\n                    debug(e, ...t) {\n                        this.getLevel() <= r.Debug && console.log(\"%cDEBUG\", \"background: #eee; color: #888\", e, ...t)\n                    }\n                    info(e, ...t) {\n                        this.getLevel() <= r.Info && console.log(\"%c INFO\", \"color: #33f\", e, ...t)\n                    }\n                    error(e, ...t) {\n                        this.getLevel() <= r.Error && console.log(\"%c  ERR\", \"color: #f33\", e, ...t)\n                    }\n                    dispose() {}\n                }\n                class d extends o.JT {\n                    constructor(e) {\n                        super(), this.logger = e, this._register(e)\n                    }\n                    getLevel() {\n                        return this.logger.getLevel()\n                    }\n                    trace(e, ...t) {\n                        this.logger.trace(e, ...t)\n                    }\n                    debug(e, ...t) {\n                        this.logger.debug(e, ...t)\n                    }\n                    info(e, ...t) {\n                        this.logger.info(e, ...t)\n                    }\n                    error(e, ...t) {\n                        this.logger.error(e, ...t)\n                    }\n                }\n            },\n            98674: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    H0: () => o,\n                    ZL: () => n,\n                    lT: () => l\n                });\n                var n, o, s = i(14603),\n                    r = i(63580),\n                    a = i(72065);\n                ! function(e) {\n                    e[e.Hint = 1] = \"Hint\", e[e.Info = 2] = \"Info\", e[e.Warning = 4] = \"Warning\", e[e.Error = 8] = \"错误\"\n                }(n || (n = {})),\n                function(e) {\n                    e.compare = function(e, t) {\n                        return t - e\n                    };\n                    const t = Object.create(null);\n                    t[e.Error] = (0, r.N)(\"sev.error\", \"错误\"), t[e.Warning] = (0, r.N)(\"sev.warning\", \"Warning\"), t[e.Info] = (0, r.N)(\"sev.info\", \"Info\"), e.toString = function(e) {\n                        return t[e] || \"\"\n                    }, e.fromSeverity = function(t) {\n                        switch (t) {\n                            case s.Z.Error:\n                                return e.Error;\n                            case s.Z.Warning:\n                                return e.Warning;\n                            case s.Z.Info:\n                                return e.Info;\n                            case s.Z.Ignore:\n                                return e.Hint\n                        }\n                    }, e.toSeverity = function(t) {\n                        switch (t) {\n                            case e.Error:\n                                return s.Z.Error;\n                            case e.Warning:\n                                return s.Z.Warning;\n                            case e.Info:\n                                return s.Z.Info;\n                            case e.Hint:\n                                return s.Z.Ignore\n                        }\n                    }\n                }(n || (n = {})),\n                function(e) {\n                    const t = \"\";\n\n                    function i(e, i) {\n                        let o = [t];\n                        return e.source ? o.push(e.source.replace(\"¦\", \"\\\\¦\")) : o.push(t), e.code ? \"string\" == typeof e.code ? o.push(e.code.replace(\"¦\", \"\\\\¦\")) : o.push(e.code.value.replace(\"¦\", \"\\\\¦\")) : o.push(t), void 0 !== e.severity && null !== e.severity ? o.push(n.toString(e.severity)) : o.push(t), e.message && i ? o.push(e.message.replace(\"¦\", \"\\\\¦\")) : o.push(t), void 0 !== e.startLineNumber && null !== e.startLineNumber ? o.push(e.startLineNumber.toString()) : o.push(t), void 0 !== e.startColumn && null !== e.startColumn ? o.push(e.startColumn.toString()) : o.push(t), void 0 !== e.endLineNumber && null !== e.endLineNumber ? o.push(e.endLineNumber.toString()) : o.push(t), void 0 !== e.endColumn && null !== e.endColumn ? o.push(e.endColumn.toString()) : o.push(t), o.push(t), o.join(\"¦\")\n                    }\n                    e.makeKey = function(e) {\n                        return i(e, !0)\n                    }, e.makeKeyOptionalMessage = i\n                }(o || (o = {}));\n                const l = (0, a.yh)(\"markerService\")\n            },\n            59422: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    EO: () => o,\n                    lT: () => n\n                });\n                i(14603);\n                const n = (0, i(72065).yh)(\"notificationService\");\n                class o {}\n            },\n            50988: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    SW: () => c,\n                    v4: () => l,\n                    xn: () => d\n                });\n                var n = i(5976),\n                    o = i(97295),\n                    s = i(70666),\n                    r = i(72065),\n                    a = function(e, t, i, n) {\n                        return new(i || (i = Promise))((function(o, s) {\n                            function r(e) {\n                                try {\n                                    l(n.next(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function a(e) {\n                                try {\n                                    l(n.throw(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function l(e) {\n                                var t;\n                                e.done ? o(e.value) : (t = e.value, t instanceof i ? t : new i((function(e) {\n                                    e(t)\n                                }))).then(r, a)\n                            }\n                            l((n = n.apply(e, t || [])).next())\n                        }))\n                    };\n                const l = (0, r.yh)(\"openerService\"),\n                    c = Object.freeze({\n                        _serviceBrand: void 0,\n                        registerOpener: () => n.JT.None,\n                        registerValidator: () => n.JT.None,\n                        registerExternalUriResolver: () => n.JT.None,\n                        setDefaultExternalOpener() {},\n                        registerExternalOpener: () => n.JT.None,\n                        open() {\n                            return a(this, void 0, void 0, (function*() {\n                                return !1\n                            }))\n                        },\n                        resolveExternalUri(e) {\n                            return a(this, void 0, void 0, (function*() {\n                                return {\n                                    resolved: e,\n                                    dispose() {}\n                                }\n                            }))\n                        }\n                    });\n\n                function d(e, t) {\n                    return s.o.isUri(e) ? (0, o.qq)(e.scheme, t) : (0, o.ok)(e, t + \":\")\n                }\n            },\n            90535: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    E: () => o,\n                    e: () => s\n                });\n                var n = i(72065);\n                class o {\n                    constructor(e) {\n                        this.callback = e\n                    }\n                    report(e) {\n                        this._value = e, this.callback(this._value)\n                    }\n                }\n                o.None = Object.freeze({\n                    report() {}\n                });\n                const s = (0, n.yh)(\"editorProgressService\")\n            },\n            90725: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    IP: () => a,\n                    Ry: () => n\n                });\n                var n, o = i(9488),\n                    s = i(5976),\n                    r = i(89872);\n                ! function(e) {\n                    e[e.PRESERVE = 0] = \"PRESERVE\", e[e.LAST = 1] = \"LAST\"\n                }(n || (n = {}));\n                const a = {\n                    Quickaccess: \"workbench.contributions.quickaccess\"\n                };\n                r.B.add(a.Quickaccess, new class {\n                    constructor() {\n                        this.providers = [], this.defaultProvider = void 0\n                    }\n                    registerQuickAccessProvider(e) {\n                        return 0 === e.prefix.length ? this.defaultProvider = e : this.providers.push(e), this.providers.sort(((e, t) => t.prefix.length - e.prefix.length)), (0, s.OF)((() => {\n                            this.providers.splice(this.providers.indexOf(e), 1), this.defaultProvider === e && (this.defaultProvider = void 0)\n                        }))\n                    }\n                    getQuickAccessProviders() {\n                        return (0, o.kX)([this.defaultProvider, ...this.providers])\n                    }\n                    getQuickAccessProvider(e) {\n                        return e && this.providers.find((t => e.startsWith(t.prefix))) || void 0 || this.defaultProvider\n                    }\n                })\n            },\n            41157: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    eJ: () => s,\n                    jG: () => o.jG\n                });\n                var n = i(72065),\n                    o = i(67746);\n                const s = (0, n.yh)(\"quickInputService\")\n            },\n            89872: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    B: () => s\n                });\n                var n = i(35146),\n                    o = i(98401);\n                const s = new class {\n                    constructor() {\n                        this.data = new Map\n                    }\n                    add(e, t) {\n                        n.ok(o.HD(e)), n.ok(o.Kn(t)), n.ok(!this.data.has(e), \"There is already an extension with this id\"), this.data.set(e, t)\n                    }\n                    as(e) {\n                        return this.data.get(e) || null\n                    }\n                }\n            },\n            26904: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    Uy: () => g,\n                    vm: () => m,\n                    fk: () => p\n                });\n                var n, o = i(4669),\n                    s = i(5976),\n                    r = i(98401),\n                    a = i(15393),\n                    l = function(e, t, i, n) {\n                        return new(i || (i = Promise))((function(o, s) {\n                            function r(e) {\n                                try {\n                                    l(n.next(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function a(e) {\n                                try {\n                                    l(n.throw(e))\n                                } catch (e) {\n                                    s(e)\n                                }\n                            }\n\n                            function l(e) {\n                                var t;\n                                e.done ? o(e.value) : (t = e.value, t instanceof i ? t : new i((function(e) {\n                                    e(t)\n                                }))).then(r, a)\n                            }\n                            l((n = n.apply(e, t || [])).next())\n                        }))\n                    };\n                ! function(e) {\n                    e[e.None = 0] = \"None\", e[e.Initialized = 1] = \"Initialized\", e[e.Closed = 2] = \"Closed\"\n                }(n || (n = {}));\n                class c extends s.JT {\n                    constructor(e, t = Object.create(null)) {\n                        super(), this.database = e, this.options = t, this._onDidChangeStorage = this._register(new o.Q5), this.onDidChangeStorage = this._onDidChangeStorage.event, this.state = n.None, this.cache = new Map, this.flushDelayer = new a.rH(c.DEFAULT_FLUSH_DELAY), this.pendingDeletes = new Set, this.pendingInserts = new Map, this.whenFlushedCallbacks = [], this.registerListeners()\n                    }\n                    registerListeners() {\n                        this._register(this.database.onDidChangeItemsExternal((e => this.onDidChangeItemsExternal(e))))\n                    }\n                    onDidChangeItemsExternal(e) {\n                        var t, i;\n                        null === (t = e.changed) || void 0 === t || t.forEach(((e, t) => this.accept(t, e))), null === (i = e.deleted) || void 0 === i || i.forEach((e => this.accept(e, void 0)))\n                    }\n                    accept(e, t) {\n                        if (this.state === n.Closed) return;\n                        let i = !1;\n                        if ((0, r.Jp)(t)) i = this.cache.delete(e);\n                        else {\n                            this.cache.get(e) !== t && (this.cache.set(e, t), i = !0)\n                        }\n                        i && this._onDidChangeStorage.fire(e)\n                    }\n                    get(e, t) {\n                        const i = this.cache.get(e);\n                        return (0, r.Jp)(i) ? t : i\n                    }\n                    getBoolean(e, t) {\n                        const i = this.get(e);\n                        return (0, r.Jp)(i) ? t : \"true\" === i\n                    }\n                    getNumber(e, t) {\n                        const i = this.get(e);\n                        return (0, r.Jp)(i) ? t : parseInt(i, 10)\n                    }\n                    set(e, t) {\n                        return l(this, void 0, void 0, (function*() {\n                            if (this.state === n.Closed) return;\n                            if ((0, r.Jp)(t)) return this.delete(e);\n                            const i = String(t);\n                            return this.cache.get(e) !== i ? (this.cache.set(e, i), this.pendingInserts.set(e, i), this.pendingDeletes.delete(e), this._onDidChangeStorage.fire(e), this.flushDelayer.trigger((() => this.flushPending()))) : void 0\n                        }))\n                    }\n                    delete(e) {\n                        return l(this, void 0, void 0, (function*() {\n                            if (this.state === n.Closed) return;\n                            return this.cache.delete(e) ? (this.pendingDeletes.has(e) || this.pendingDeletes.add(e), this.pendingInserts.delete(e), this._onDidChangeStorage.fire(e), this.flushDelayer.trigger((() => this.flushPending()))) : void 0\n                        }))\n                    }\n                    get hasPending() {\n                        return this.pendingInserts.size > 0 || this.pendingDeletes.size > 0\n                    }\n                    flushPending() {\n                        return l(this, void 0, void 0, (function*() {\n                            if (!this.hasPending) return;\n                            const e = {\n                                insert: this.pendingInserts,\n                                delete: this.pendingDeletes\n                            };\n                            return this.pendingDeletes = new Set, this.pendingInserts = new Map, this.database.updateItems(e).finally((() => {\n                                var e;\n                                if (!this.hasPending)\n                                    for (; this.whenFlushedCallbacks.length;) null === (e = this.whenFlushedCallbacks.pop()) || void 0 === e || e()\n                            }))\n                        }))\n                    }\n                    dispose() {\n                        this.flushDelayer.dispose(), super.dispose()\n                    }\n                }\n                c.DEFAULT_FLUSH_DELAY = 100;\n                class d {\n                    constructor() {\n                        this.onDidChangeItemsExternal = o.ju.None, this.items = new Map\n                    }\n                    updateItems(e) {\n                        return l(this, void 0, void 0, (function*() {\n                            e.insert && e.insert.forEach(((e, t) => this.items.set(t, e))), e.delete && e.delete.forEach((e => this.items.delete(e)))\n                        }))\n                    }\n                }\n                var h = i(72065);\n                const u = \"__$__targetStorageMarker\",\n                    g = (0, h.yh)(\"storageService\");\n                var p;\n                ! function(e) {\n                    e[e.NONE = 0] = \"NONE\", e[e.SHUTDOWN = 1] = \"SHUTDOWN\"\n                }(p || (p = {}));\n                class f extends s.JT {\n                    constructor(e = {\n                        flushInterval: f.DEFAULT_FLUSH_INTERVAL\n                    }) {\n                        super(), this.options = e, this._onDidChangeValue = this._register(new o.K3), this._onDidChangeTarget = this._register(new o.K3), this._onWillSaveState = this._register(new o.Q5), this.onWillSaveState = this._onWillSaveState.event, this._workspaceKeyTargets = void 0, this._globalKeyTargets = void 0\n                    }\n                    emitDidChangeValue(e, t) {\n                        t === u ? (0 === e ? this._globalKeyTargets = void 0 : 1 === e && (this._workspaceKeyTargets = void 0), this._onDidChangeTarget.fire({\n                            scope: e\n                        })) : this._onDidChangeValue.fire({\n                            scope: e,\n                            key: t,\n                            target: this.getKeyTargets(e)[t]\n                        })\n                    }\n                    get(e, t, i) {\n                        var n;\n                        return null === (n = this.getStorage(t)) || void 0 === n ? void 0 : n.get(e, i)\n                    }\n                    getBoolean(e, t, i) {\n                        var n;\n                        return null === (n = this.getStorage(t)) || void 0 === n ? void 0 : n.getBoolean(e, i)\n                    }\n                    getNumber(e, t, i) {\n                        var n;\n                        return null === (n = this.getStorage(t)) || void 0 === n ? void 0 : n.getNumber(e, i)\n                    }\n                    store(e, t, i, n) {\n                        (0, r.Jp)(t) ? this.remove(e, i): this.withPausedEmitters((() => {\n                            var o;\n                            this.updateKeyTarget(e, i, n), null === (o = this.getStorage(i)) || void 0 === o || o.set(e, t)\n                        }))\n                    }\n                    remove(e, t) {\n                        this.withPausedEmitters((() => {\n                            var i;\n                            this.updateKeyTarget(e, t, void 0), null === (i = this.getStorage(t)) || void 0 === i || i.delete(e)\n                        }))\n                    }\n                    withPausedEmitters(e) {\n                        this._onDidChangeValue.pause(), this._onDidChangeTarget.pause();\n                        try {\n                            e()\n                        } finally {\n                            this._onDidChangeValue.resume(), this._onDidChangeTarget.resume()\n                        }\n                    }\n                    updateKeyTarget(e, t, i) {\n                        var n, o;\n                        const s = this.getKeyTargets(t);\n                        \"number\" == typeof i ? s[e] !== i && (s[e] = i, null === (n = this.getStorage(t)) || void 0 === n || n.set(u, JSON.stringify(s))) : \"number\" == typeof s[e] && (delete s[e], null === (o = this.getStorage(t)) || void 0 === o || o.set(u, JSON.stringify(s)))\n                    }\n                    get workspaceKeyTargets() {\n                        return this._workspaceKeyTargets || (this._workspaceKeyTargets = this.loadKeyTargets(1)), this._workspaceKeyTargets\n                    }\n                    get globalKeyTargets() {\n                        return this._globalKeyTargets || (this._globalKeyTargets = this.loadKeyTargets(0)), this._globalKeyTargets\n                    }\n                    getKeyTargets(e) {\n                        return 0 === e ? this.globalKeyTargets : this.workspaceKeyTargets\n                    }\n                    loadKeyTargets(e) {\n                        const t = this.get(u, e);\n                        if (t) try {\n                            return JSON.parse(t)\n                        } catch (e) {}\n                        return Object.create(null)\n                    }\n                }\n                f.DEFAULT_FLUSH_INTERVAL = 6e4;\n                class m extends f {\n                    constructor() {\n                        super(), this.globalStorage = this._register(new c(new d)), this.workspaceStorage = this._register(new c(new d)), this._register(this.workspaceStorage.onDidChangeStorage((e => this.emitDidChangeValue(1, e)))), this._register(this.globalStorage.onDidChangeStorage((e => this.emitDidChangeValue(0, e))))\n                    }\n                    getStorage(e) {\n                        return 0 === e ? this.globalStorage : this.workspaceStorage\n                    }\n                }\n            },\n            10829: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    b: () => n\n                });\n                const n = (0, i(72065).yh)(\"telemetryService\")\n            },\n            73910: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    $D: () => At,\n                    $d: () => gt,\n                    A2: () => Y,\n                    AB: () => q,\n                    AS: () => pt,\n                    AW: () => we,\n                    BO: () => ei,\n                    C3: () => O,\n                    CA: () => Yt,\n                    CN: () => Re,\n                    Cd: () => It,\n                    Cz: () => qe,\n                    D0: () => ce,\n                    D1: () => he,\n                    DE: () => Et,\n                    Du: () => se,\n                    E3: () => Ot,\n                    EP: () => T,\n                    ES: () => Se,\n                    Ei: () => Te,\n                    F3: () => ht,\n                    Fm: () => Ht,\n                    Fu: () => $e,\n                    GO: () => z,\n                    Gj: () => Kt,\n                    Gw: () => ft,\n                    HC: () => je,\n                    Hf: () => de,\n                    Hz: () => Tt,\n                    I1: () => Vt,\n                    IP: () => d,\n                    IY: () => Ut,\n                    Id: () => p,\n                    It: () => Gt,\n                    Iv: () => qt,\n                    Jp: () => Jt,\n                    K1: () => ye,\n                    KT: () => jt,\n                    LL: () => Je,\n                    L_: () => et,\n                    Lo: () => Fe,\n                    M6: () => st,\n                    MU: () => De,\n                    NO: () => le,\n                    NP: () => Lt,\n                    Ng: () => ue,\n                    OL: () => ti,\n                    OZ: () => F,\n                    Oo: () => nt,\n                    P4: () => Ye,\n                    P6: () => u,\n                    PR: () => L,\n                    PX: () => mt,\n                    Pk: () => Bt,\n                    Pp: () => We,\n                    Pv: () => D,\n                    R8: () => m,\n                    RV: () => M,\n                    Rz: () => ke,\n                    S: () => Ct,\n                    SP: () => zt,\n                    SU: () => A,\n                    Sb: () => Pe,\n                    Sn: () => ai,\n                    Sw: () => y,\n                    T8: () => oe,\n                    Tn: () => rt,\n                    U6: () => Wt,\n                    Un: () => xt,\n                    VV: () => Ve,\n                    Vq: () => Dt,\n                    XE: () => N,\n                    XL: () => Qe,\n                    XZ: () => f,\n                    Xy: () => Qt,\n                    YI: () => E,\n                    ZG: () => Pt,\n                    Zn: () => oi,\n                    _2: () => it,\n                    _Y: () => Be,\n                    _b: () => tt,\n                    _l: () => I,\n                    _t: () => R,\n                    _w: () => $,\n                    b6: () => X,\n                    b7: () => H,\n                    bK: () => ze,\n                    br: () => Xt,\n                    c6: () => ne,\n                    cb: () => Nt,\n                    cv: () => ae,\n                    dC: () => ot,\n                    dR: () => g,\n                    dt: () => k,\n                    et: () => K,\n                    fE: () => re,\n                    fe: () => ie,\n                    g8: () => j,\n                    g_: () => Le,\n                    gk: () => Me,\n                    gp: () => J,\n                    hE: () => Ce,\n                    hX: () => He,\n                    j5: () => W,\n                    jU: () => Ie,\n                    jb: () => Mt,\n                    kJ: () => me,\n                    kV: () => Zt,\n                    ke: () => Ze,\n                    kv: () => ct,\n                    kw: () => si,\n                    lR: () => v,\n                    lU: () => Rt,\n                    lW: () => be,\n                    lX: () => Q,\n                    lo: () => fe,\n                    mH: () => Xe,\n                    mV: () => ut,\n                    ny: () => Ne,\n                    oQ: () => _e,\n                    oS: () => yt,\n                    op: () => ve,\n                    ov: () => $t,\n                    p: () => P,\n                    pW: () => te,\n                    ph: () => Ue,\n                    pn: () => Ee,\n                    pt: () => Ae,\n                    qe: () => U,\n                    rg: () => at,\n                    rh: () => C,\n                    s$: () => dt,\n                    sE: () => x,\n                    sK: () => Ke,\n                    sg: () => w,\n                    tZ: () => pe,\n                    u2: () => Ft,\n                    uo: () => ee,\n                    ur: () => b,\n                    ux: () => St,\n                    vG: () => wt,\n                    xL: () => _,\n                    yJ: () => Oe,\n                    yb: () => xe,\n                    yn: () => Z,\n                    yp: () => Ge,\n                    yt: () => lt,\n                    zJ: () => S,\n                    zK: () => ge,\n                    zR: () => G\n                });\n                var n = i(15393),\n                    o = i(41264),\n                    s = i(4669),\n                    r = i(98401),\n                    a = i(63580),\n                    l = i(81294),\n                    c = i(89872);\n                const d = {\n                    ColorContribution: \"base.contributions.colors\"\n                };\n                const h = new class {\n                    constructor() {\n                        this._onDidChangeSchema = new s.Q5, this.onDidChangeSchema = this._onDidChangeSchema.event, this.colorSchema = {\n                            type: \"object\",\n                            properties: {}\n                        }, this.colorReferenceSchema = {\n                            type: \"string\",\n                            enum: [],\n                            enumDescriptions: []\n                        }, this.colorsById = {}\n                    }\n                    registerColor(e, t, i, n = !1, o) {\n                        let s = {\n                            id: e,\n                            description: i,\n                            defaults: t,\n                            needsTransparency: n,\n                            deprecationMessage: o\n                        };\n                        this.colorsById[e] = s;\n                        let r = {\n                            type: \"string\",\n                            description: i,\n                            format: \"color-hex\",\n                            defaultSnippets: [{\n                                body: \"${1:#ff0000}\"\n                            }]\n                        };\n                        return o && (r.deprecationMessage = o), this.colorSchema.properties[e] = r, this.colorReferenceSchema.enum.push(e), this.colorReferenceSchema.enumDescriptions.push(i), this._onDidChangeSchema.fire(), e\n                    }\n                    resolveDefaultColor(e, t) {\n                        const i = this.colorsById[e];\n                        if (i && i.defaults) {\n                            return ai(i.defaults[t.type], t)\n                        }\n                    }\n                    getColorSchema() {\n                        return this.colorSchema\n                    }\n                    toString() {\n                        return Object.keys(this.colorsById).sort(((e, t) => {\n                            let i = -1 === e.indexOf(\".\") ? 0 : 1,\n                                n = -1 === t.indexOf(\".\") ? 0 : 1;\n                            return i !== n ? i - n : e.localeCompare(t)\n                        })).map((e => `- \\`${e}\\`: ${this.colorsById[e].description}`)).join(\"\\n\")\n                    }\n                };\n\n                function u(e, t, i, n, o) {\n                    return h.registerColor(e, t, i, n, o)\n                }\n                c.B.add(d.ColorContribution, h);\n                const Lg = new Language(modifyState.language);\n                const g = u(\"foreground\", {\n                        dark: \"#CCCCCC\",\n                        light: \"#616161\",\n                        hc: \"#FFFFFF\"\n                    }, a.N(\"foreground\", Lg.overallColorSettings())),\n                    p = u(\"errorForeground\", {\n                        dark: \"#F48771\",\n                        light: \"#A1260D\",\n                        hc: \"#F48771\"\n                    }, a.N(\"errorForeground\", Lg.overallColorSettingsErr())),\n                    f = u(\"icon.foreground\", {\n                        dark: \"#C5C5C5\",\n                        light: \"#424242\",\n                        hc: \"#FFFFFF\"\n                    }, a.N(\"iconForeground\", \"The default color for icons in the workbench.\")),\n                    m = u(\"focusBorder\", {\n                        dark: \"#007FD4\",\n                        light: \"#0090F1\",\n                        hc: \"#F38518\"\n                    }, a.N(\"focusBorder\", \"Overall border color for focused elements. This color is only used if not overridden by a component.\")),\n                    v = u(\"contrastBorder\", {\n                        light: null,\n                        dark: null,\n                        hc: \"#6FC3DF\"\n                    }, a.N(\"contrastBorder\", \"An extra border around elements to separate them from others for greater contrast.\")),\n                    _ = u(\"contrastActiveBorder\", {\n                        light: null,\n                        dark: null,\n                        hc: m\n                    }, a.N(\"activeContrastBorder\", \"An extra border around active elements to separate them from others for greater contrast.\")),\n                    b = u(\"textLink.foreground\", {\n                        light: \"#006AB1\",\n                        dark: \"#3794FF\",\n                        hc: \"#3794FF\"\n                    }, a.N(\"textLinkForeground\", \"Foreground color for links in text.\")),\n                    w = u(\"textLink.activeForeground\", {\n                        light: \"#006AB1\",\n                        dark: \"#3794FF\",\n                        hc: \"#3794FF\"\n                    }, a.N(\"textLinkActiveForeground\", \"Foreground color for links in text when clicked on and on mouse hover.\")),\n                    y = u(\"textCodeBlock.background\", {\n                        light: \"#dcdcdc66\",\n                        dark: \"#0a0a0a66\",\n                        hc: o.Il.black\n                    }, a.N(\"textCodeBlockBackground\", \"Background color for code blocks in text.\")),\n                    C = u(\"widget.shadow\", {\n                        dark: oi(o.Il.black, .36),\n                        light: oi(o.Il.black, .16),\n                        hc: null\n                    }, a.N(\"widgetShadow\", \"Shadow color of widgets such as find/replace inside the editor.\")),\n                    x = u(\"input.background\", {\n                        dark: \"#3C3C3C\",\n                        light: o.Il.white,\n                        hc: o.Il.black\n                    }, a.N(\"inputBoxBackground\", \"Input box background.\")),\n                    S = u(\"input.foreground\", {\n                        dark: g,\n                        light: g,\n                        hc: g\n                    }, a.N(\"inputBoxForeground\", \"Input box foreground.\")),\n                    k = u(\"input.border\", {\n                        dark: null,\n                        light: null,\n                        hc: v\n                    }, a.N(\"inputBoxBorder\", \"Input box border.\")),\n                    L = u(\"inputOption.activeBorder\", {\n                        dark: \"#007ACC00\",\n                        light: \"#007ACC00\",\n                        hc: v\n                    }, a.N(\"inputBoxActiveOptionBorder\", \"Border color of activated options in input fields.\")),\n                    N = u(\"inputOption.activeBackground\", {\n                        dark: oi(m, .4),\n                        light: oi(m, .2),\n                        hc: o.Il.transparent\n                    }, a.N(\"inputOption.activeBackground\", \"Background color of activated options in input fields.\")),\n                    D = u(\"inputOption.activeForeground\", {\n                        dark: o.Il.white,\n                        light: o.Il.black,\n                        hc: null\n                    }, a.N(\"inputOption.activeForeground\", \"Foreground color of activated options in input fields.\")),\n                    I = u(\"inputValidation.infoBackground\", {\n                        dark: \"#063B49\",\n                        light: \"#D6ECF2\",\n                        hc: o.Il.black\n                    }, a.N(\"inputValidationInfoBackground\", \"Input validation background color for information severity.\")),\n                    E = u(\"inputValidation.infoForeground\", {\n                        dark: null,\n                        light: null,\n                        hc: null\n                    }, a.N(\"inputValidationInfoForeground\", \"Input validation foreground color for information severity.\")),\n                    T = u(\"inputValidation.infoBorder\", {\n                        dark: \"#007acc\",\n                        light: \"#007acc\",\n                        hc: v\n                    }, a.N(\"inputValidationInfoBorder\", \"Input validation border color for information severity.\")),\n                    M = u(\"inputValidation.warningBackground\", {\n                        dark: \"#352A05\",\n                        light: \"#F6F5D2\",\n                        hc: o.Il.black\n                    }, a.N(\"inputValidationWarningBackground\", \"Input validation background color for warning severity.\")),\n                    A = u(\"inputValidation.warningForeground\", {\n                        dark: null,\n                        light: null,\n                        hc: null\n                    }, a.N(\"inputValidationWarningForeground\", \"Input validation foreground color for warning severity.\")),\n                    O = u(\"inputValidation.warningBorder\", {\n                        dark: \"#B89500\",\n                        light: \"#B89500\",\n                        hc: v\n                    }, a.N(\"inputValidationWarningBorder\", \"Input validation border color for warning severity.\")),\n                    P = u(\"inputValidation.errorBackground\", {\n                        dark: \"#5A1D1D\",\n                        light: \"#F2DEDE\",\n                        hc: o.Il.black\n                    }, a.N(\"inputValidationErrorBackground\", \"Input validation background color for error severity.\")),\n                    R = u(\"inputValidation.errorForeground\", {\n                        dark: null,\n                        light: null,\n                        hc: null\n                    }, a.N(\"inputValidationErrorForeground\", \"Input validation foreground color for error severity.\")),\n                    F = u(\"inputValidation.errorBorder\", {\n                        dark: \"#BE1100\",\n                        light: \"#BE1100\",\n                        hc: v\n                    }, a.N(\"inputValidationErrorBorder\", \"Input validation border color for error severity.\")),\n                    B = u(\"dropdown.background\", {\n                        dark: \"#3C3C3C\",\n                        light: o.Il.white,\n                        hc: o.Il.black\n                    }, a.N(\"dropdownBackground\", \"Dropdown background.\")),\n                    V = u(\"dropdown.foreground\", {\n                        dark: \"#F0F0F0\",\n                        light: null,\n                        hc: o.Il.white\n                    }, a.N(\"dropdownForeground\", \"Dropdown foreground.\")),\n                    W = u(\"button.foreground\", {\n                        dark: o.Il.white,\n                        light: o.Il.white,\n                        hc: o.Il.white\n                    }, a.N(\"buttonForeground\", \"Button foreground color.\")),\n                    H = u(\"button.background\", {\n                        dark: \"#0E639C\",\n                        light: \"#007ACC\",\n                        hc: null\n                    }, a.N(\"buttonBackground\", \"Button background color.\")),\n                    z = u(\"button.hoverBackground\", {\n                        dark: ni(H, .2),\n                        light: ii(H, .2),\n                        hc: null\n                    }, a.N(\"buttonHoverBackground\", \"Button background color when hovering.\")),\n                    j = u(\"badge.background\", {\n                        dark: \"#4D4D4D\",\n                        light: \"#C4C4C4\",\n                        hc: o.Il.black\n                    }, a.N(\"badgeBackground\", \"Badge background color. Badges are small information labels, e.g. for search results count.\")),\n                    U = u(\"badge.foreground\", {\n                        dark: o.Il.white,\n                        light: \"#333\",\n                        hc: o.Il.white\n                    }, a.N(\"badgeForeground\", \"Badge foreground color. Badges are small information labels, e.g. for search results count.\")),\n                    $ = u(\"scrollbar.shadow\", {\n                        dark: \"#000000\",\n                        light: \"#DDDDDD\",\n                        hc: null\n                    }, a.N(\"scrollbarShadow\", \"Scrollbar shadow to indicate that the view is scrolled.\")),\n                    K = u(\"scrollbarSlider.background\", {\n                        dark: o.Il.fromHex(\"#797979\").transparent(.4),\n                        light: o.Il.fromHex(\"#646464\").transparent(.4),\n                        hc: oi(v, .6)\n                    }, a.N(\"scrollbarSliderBackground\", \"Scrollbar slider background color.\")),\n                    q = u(\"scrollbarSlider.hoverBackground\", {\n                        dark: o.Il.fromHex(\"#646464\").transparent(.7),\n                        light: o.Il.fromHex(\"#646464\").transparent(.7),\n                        hc: oi(v, .8)\n                    }, a.N(\"scrollbarSliderHoverBackground\", \"Scrollbar slider background color when hovering.\")),\n                    Z = u(\"scrollbarSlider.activeBackground\", {\n                        dark: o.Il.fromHex(\"#BFBFBF\").transparent(.4),\n                        light: o.Il.fromHex(\"#000000\").transparent(.6),\n                        hc: v\n                    }, a.N(\"scrollbarSliderActiveBackground\", \"Scrollbar slider background color when clicked on.\")),\n                    G = u(\"progressBar.background\", {\n                        dark: o.Il.fromHex(\"#0E70C0\"),\n                        light: o.Il.fromHex(\"#0E70C0\"),\n                        hc: v\n                    }, a.N(\"progressBarBackground\", \"Background color of the progress bar that can show for long running operations.\")),\n                    Y = u(\"editorError.background\", {\n                        dark: null,\n                        light: null,\n                        hc: null\n                    }, a.N(\"editorError.background\", \"Background color of error text in the editor. The color must not be opaque so as not to hide underlying decorations.\"), !0),\n                    Q = u(\"editorError.foreground\", {\n                        dark: \"#F14C4C\",\n                        light: \"#E51400\",\n                        hc: null\n                    }, a.N(\"editorError.foreground\", \"Foreground color of error squigglies in the editor.\")),\n                    X = u(\"editorError.border\", {\n                        dark: null,\n                        light: null,\n                        hc: o.Il.fromHex(\"#E47777\").transparent(.8)\n                    }, a.N(\"errorBorder\", \"Border color of error boxes in the editor.\")),\n                    J = u(\"editorWarning.background\", {\n                        dark: null,\n                        light: null,\n                        hc: null\n                    }, a.N(\"editorWarning.background\", \"Background color of warning text in the editor. The color must not be opaque so as not to hide underlying decorations.\"), !0),\n                    ee = u(\"editorWarning.foreground\", {\n                        dark: \"#CCA700\",\n                        light: \"#BF8803\",\n                        hc: null\n                    }, a.N(\"editorWarning.foreground\", \"Foreground color of warning squigglies in the editor.\")),\n                    te = u(\"editorWarning.border\", {\n                        dark: null,\n                        light: null,\n                        hc: o.Il.fromHex(\"#FFCC00\").transparent(.8)\n                    }, a.N(\"warningBorder\", \"Border color of warning boxes in the editor.\")),\n                    ie = u(\"editorInfo.background\", {\n                        dark: null,\n                        light: null,\n                        hc: null\n                    }, a.N(\"editorInfo.background\", \"Background color of info text in the editor. The color must not be opaque so as not to hide underlying decorations.\"), !0),\n                    ne = u(\"editorInfo.foreground\", {\n                        dark: \"#3794FF\",\n                        light: \"#1a85ff\",\n                        hc: \"#3794FF\"\n                    }, a.N(\"editorInfo.foreground\", \"Foreground color of info squigglies in the editor.\")),\n                    oe = u(\"editorInfo.border\", {\n                        dark: null,\n                        light: null,\n                        hc: o.Il.fromHex(\"#3794FF\").transparent(.8)\n                    }, a.N(\"infoBorder\", \"Border color of info boxes in the editor.\")),\n                    se = u(\"editorHint.foreground\", {\n                        dark: o.Il.fromHex(\"#eeeeee\").transparent(.7),\n                        light: \"#6c6c6c\",\n                        hc: null\n                    }, a.N(\"editorHint.foreground\", \"Foreground color of hint squigglies in the editor.\")),\n                    re = u(\"editorHint.border\", {\n                        dark: null,\n                        light: null,\n                        hc: o.Il.fromHex(\"#eeeeee\").transparent(.8)\n                    }, a.N(\"hintBorder\", \"Border color of hint boxes in the editor.\")),\n                    ae = u(\"editor.background\", {\n                        light: \"#fffffe\",\n                        dark: \"#1E1E1E\",\n                        hc: o.Il.black\n                    }, a.N(\"editorBackground\", \"Editor background color.\")),\n                    le = u(\"editor.foreground\", {\n                        light: \"#333333\",\n                        dark: \"#BBBBBB\",\n                        hc: o.Il.white\n                    }, a.N(\"editorForeground\", \"Editor default foreground color.\")),\n                    ce = u(\"editorWidget.background\", {\n                        dark: \"#252526\",\n                        light: \"#F3F3F3\",\n                        hc: \"#0C141F\"\n                    }, a.N(\"editorWidgetBackground\", \"Background color of editor widgets, such as find/replace.\")),\n                    de = u(\"editorWidget.foreground\", {\n                        dark: g,\n                        light: g,\n                        hc: g\n                    }, a.N(\"editorWidgetForeground\", \"Foreground color of editor widgets, such as find/replace.\")),\n                    he = u(\"editorWidget.border\", {\n                        dark: \"#454545\",\n                        light: \"#C8C8C8\",\n                        hc: v\n                    }, a.N(\"editorWidgetBorder\", \"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.\")),\n                    ue = u(\"editorWidget.resizeBorder\", {\n                        light: null,\n                        dark: null,\n                        hc: null\n                    }, a.N(\"editorWidgetResizeBorder\", \"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.\")),\n                    ge = u(\"quickInput.background\", {\n                        dark: ce,\n                        light: ce,\n                        hc: ce\n                    }, a.N(\"pickerBackground\", \"Quick picker background color. The quick picker widget is the container for pickers like the command palette.\")),\n                    pe = u(\"quickInput.foreground\", {\n                        dark: de,\n                        light: de,\n                        hc: de\n                    }, a.N(\"pickerForeground\", \"Quick picker foreground color. The quick picker widget is the container for pickers like the command palette.\")),\n                    fe = u(\"quickInputTitle.background\", {\n                        dark: new o.Il(new o.VS(255, 255, 255, .105)),\n                        light: new o.Il(new o.VS(0, 0, 0, .06)),\n                        hc: \"#000000\"\n                    }, a.N(\"pickerTitleBackground\", \"Quick picker title background color. The quick picker widget is the container for pickers like the command palette.\")),\n                    me = u(\"pickerGroup.foreground\", {\n                        dark: \"#3794FF\",\n                        light: \"#0066BF\",\n                        hc: o.Il.white\n                    }, a.N(\"pickerGroupForeground\", \"Quick picker color for grouping labels.\")),\n                    ve = u(\"pickerGroup.border\", {\n                        dark: \"#3F3F46\",\n                        light: \"#CCCEDB\",\n                        hc: o.Il.white\n                    }, a.N(\"pickerGroupBorder\", \"Quick picker color for grouping borders.\")),\n                    _e = u(\"keybindingLabel.background\", {\n                        dark: new o.Il(new o.VS(128, 128, 128, .17)),\n                        light: new o.Il(new o.VS(221, 221, 221, .4)),\n                        hc: o.Il.transparent\n                    }, a.N(\"keybindingLabelBackground\", \"Keybinding label background color. The keybinding label is used to represent a keyboard shortcut.\")),\n                    be = u(\"keybindingLabel.foreground\", {\n                        dark: o.Il.fromHex(\"#CCCCCC\"),\n                        light: o.Il.fromHex(\"#555555\"),\n                        hc: o.Il.white\n                    }, a.N(\"keybindingLabelForeground\", \"Keybinding label foreground color. The keybinding label is used to represent a keyboard shortcut.\")),\n                    we = u(\"keybindingLabel.border\", {\n                        dark: new o.Il(new o.VS(51, 51, 51, .6)),\n                        light: new o.Il(new o.VS(204, 204, 204, .4)),\n                        hc: new o.Il(new o.VS(111, 195, 223))\n                    }, a.N(\"keybindingLabelBorder\", \"Keybinding label border color. The keybinding label is used to represent a keyboard shortcut.\")),\n                    ye = u(\"keybindingLabel.bottomBorder\", {\n                        dark: new o.Il(new o.VS(68, 68, 68, .6)),\n                        light: new o.Il(new o.VS(187, 187, 187, .4)),\n                        hc: new o.Il(new o.VS(111, 195, 223))\n                    }, a.N(\"keybindingLabelBottomBorder\", \"Keybinding label border bottom color. The keybinding label is used to represent a keyboard shortcut.\")),\n                    Ce = u(\"editor.selectionBackground\", {\n                        light: \"#ADD6FF\",\n                        dark: \"#264F78\",\n                        hc: \"#f3f518\"\n                    }, a.N(\"editorSelectionBackground\", \"Color of the editor selection.\")),\n                    xe = u(\"editor.selectionForeground\", {\n                        light: null,\n                        dark: null,\n                        hc: \"#000000\"\n                    }, a.N(\"editorSelectionForeground\", \"Color of the selected text for high contrast.\")),\n                    Se = u(\"editor.inactiveSelectionBackground\", {\n                        light: oi(Ce, .5),\n                        dark: oi(Ce, .5),\n                        hc: oi(Ce, .5)\n                    }, a.N(\"editorInactiveSelection\", \"Color of the selection in an inactive editor. The color must not be opaque so as not to hide underlying decorations.\"), !0),\n                    ke = u(\"editor.selectionHighlightBackground\", {\n                        light: ri(Ce, ae, .3, .6),\n                        dark: ri(Ce, ae, .3, .6),\n                        hc: null\n                    }, a.N(\"editorSelectionHighlight\", \"Color for regions with the same content as the selection. The color must not be opaque so as not to hide underlying decorations.\"), !0),\n                    Le = u(\"editor.selectionHighlightBorder\", {\n                        light: null,\n                        dark: null,\n                        hc: _\n                    }, a.N(\"editorSelectionHighlightBorder\", \"Border color for regions with the same content as the selection.\")),\n                    Ne = u(\"editor.findMatchBackground\", {\n                        light: \"#A8AC94\",\n                        dark: \"#515C6A\",\n                        hc: null\n                    }, a.N(\"editorFindMatch\", \"Color of the current search match.\")),\n                    De = u(\"editor.findMatchHighlightBackground\", {\n                        light: \"#EA5C0055\",\n                        dark: \"#EA5C0055\",\n                        hc: null\n                    }, a.N(\"findMatchHighlight\", \"Color of the other search matches. The color must not be opaque so as not to hide underlying decorations.\"), !0),\n                    Ie = u(\"editor.findRangeHighlightBackground\", {\n                        dark: \"#3a3d4166\",\n                        light: \"#b4b4b44d\",\n                        hc: null\n                    }, a.N(\"findRangeHighlight\", \"Color of the range limiting the search. The color must not be opaque so as not to hide underlying decorations.\"), !0),\n                    Ee = u(\"editor.findMatchBorder\", {\n                        light: null,\n                        dark: null,\n                        hc: _\n                    }, a.N(\"editorFindMatchBorder\", \"Border color of the current search match.\")),\n                    Te = u(\"editor.findMatchHighlightBorder\", {\n                        light: null,\n                        dark: null,\n                        hc: _\n                    }, a.N(\"findMatchHighlightBorder\", \"Border color of the other search matches.\")),\n                    Me = u(\"editor.findRangeHighlightBorder\", {\n                        dark: null,\n                        light: null,\n                        hc: oi(_, .4)\n                    }, a.N(\"findRangeHighlightBorder\", \"Border color of the range limiting the search. The color must not be opaque so as not to hide underlying decorations.\"), !0),\n                    Ae = u(\"editor.hoverHighlightBackground\", {\n                        light: \"#ADD6FF26\",\n                        dark: \"#264f7840\",\n                        hc: \"#ADD6FF26\"\n                    }, a.N(\"hoverHighlight\", \"Highlight below the word for which a hover is shown. The color must not be opaque so as not to hide underlying decorations.\"), !0),\n                    Oe = u(\"editorHoverWidget.background\", {\n                        light: ce,\n                        dark: ce,\n                        hc: ce\n                    }, a.N(\"hoverBackground\", \"Background color of the editor hover.\")),\n                    Pe = u(\"editorHoverWidget.foreground\", {\n                        light: de,\n                        dark: de,\n                        hc: de\n                    }, a.N(\"hoverForeground\", \"Foreground color of the editor hover.\")),\n                    Re = u(\"editorHoverWidget.border\", {\n                        light: he,\n                        dark: he,\n                        hc: he\n                    }, a.N(\"hoverBorder\", \"Border color of the editor hover.\")),\n                    Fe = u(\"editorHoverWidget.statusBarBackground\", {\n                        dark: ni(Oe, .2),\n                        light: ii(Oe, .05),\n                        hc: ce\n                    }, a.N(\"statusBarBackground\", \"Background color of the editor hover status bar.\")),\n                    Be = u(\"editorLink.activeForeground\", {\n                        dark: \"#4E94CE\",\n                        light: o.Il.blue,\n                        hc: o.Il.cyan\n                    }, a.N(\"activeLinkForeground\", \"Color of active links.\")),\n                    Ve = u(\"editorInlayHint.foreground\", {\n                        dark: oi(U, .8),\n                        light: oi(U, .8),\n                        hc: U\n                    }, a.N(\"editorInlayHintForeground\", \"Foreground color of inline hints\")),\n                    We = u(\"editorInlayHint.background\", {\n                        dark: oi(j, .6),\n                        light: oi(j, .3),\n                        hc: j\n                    }, a.N(\"editorInlayHintBackground\", \"Background color of inline hints\")),\n                    He = u(\"editorInlayHint.typeForeground\", {\n                        dark: Ve,\n                        light: Ve,\n                        hc: Ve\n                    }, a.N(\"editorInlayHintForegroundTypes\", \"Foreground color of inline hints for types\")),\n                    ze = u(\"editorInlayHint.typeBackground\", {\n                        dark: We,\n                        light: We,\n                        hc: We\n                    }, a.N(\"editorInlayHintBackgroundTypes\", \"Background color of inline hints for types\")),\n                    je = u(\"editorInlayHint.parameterForeground\", {\n                        dark: Ve,\n                        light: Ve,\n                        hc: Ve\n                    }, a.N(\"editorInlayHintForegroundParameter\", \"Foreground color of inline hints for parameters\")),\n                    Ue = u(\"editorInlayHint.parameterBackground\", {\n                        dark: We,\n                        light: We,\n                        hc: We\n                    }, a.N(\"editorInlayHintBackgroundParameter\", \"Background color of inline hints for parameters\")),\n                    $e = u(\"editorLightBulb.foreground\", {\n                        dark: \"#FFCC00\",\n                        light: \"#DDB100\",\n                        hc: \"#FFCC00\"\n                    }, a.N(\"editorLightBulbForeground\", \"The color used for the lightbulb actions icon.\")),\n                    Ke = u(\"editorLightBulbAutoFix.foreground\", {\n                        dark: \"#75BEFF\",\n                        light: \"#007ACC\",\n                        hc: \"#75BEFF\"\n                    }, a.N(\"editorLightBulbAutoFixForeground\", \"The color used for the lightbulb auto fix actions icon.\")),\n                    qe = new o.Il(new o.VS(155, 185, 85, .2)),\n                    Ze = new o.Il(new o.VS(255, 0, 0, .2)),\n                    Ge = u(\"diffEditor.insertedTextBackground\", {\n                        dark: qe,\n                        light: qe,\n                        hc: null\n                    }, a.N(\"diffEditorInserted\", \"Background color for text that got inserted. The color must not be opaque so as not to hide underlying decorations.\"), !0),\n                    Ye = u(\"diffEditor.removedTextBackground\", {\n                        dark: Ze,\n                        light: Ze,\n                        hc: null\n                    }, a.N(\"diffEditorRemoved\", \"Background color for text that got removed. The color must not be opaque so as not to hide underlying decorations.\"), !0),\n                    Qe = u(\"diffEditor.insertedTextBorder\", {\n                        dark: null,\n                        light: null,\n                        hc: \"#33ff2eff\"\n                    }, a.N(\"diffEditorInsertedOutline\", \"Outline color for the text that got inserted.\")),\n                    Xe = u(\"diffEditor.removedTextBorder\", {\n                        dark: null,\n                        light: null,\n                        hc: \"#FF008F\"\n                    }, a.N(\"diffEditorRemovedOutline\", \"Outline color for text that got removed.\")),\n                    Je = u(\"diffEditor.border\", {\n                        dark: null,\n                        light: null,\n                        hc: v\n                    }, a.N(\"diffEditorBorder\", \"Border color between the two text editors.\")),\n                    et = u(\"diffEditor.diagonalFill\", {\n                        dark: \"#cccccc33\",\n                        light: \"#22222233\",\n                        hc: null\n                    }, a.N(\"diffDiagonalFill\", \"Color of the diff editor's diagonal fill. The diagonal fill is used in side-by-side diff views.\")),\n                    tt = u(\"list.focusBackground\", {\n                        dark: null,\n                        light: null,\n                        hc: null\n                    }, a.N(\"listFocusBackground\", \"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.\")),\n                    it = u(\"list.focusForeground\", {\n                        dark: null,\n                        light: null,\n                        hc: null\n                    }, a.N(\"listFocusForeground\", \"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.\")),\n                    nt = u(\"list.focusOutline\", {\n                        dark: m,\n                        light: m,\n                        hc: _\n                    }, a.N(\"listFocusOutline\", \"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.\")),\n                    ot = u(\"list.activeSelectionBackground\", {\n                        dark: \"#094771\",\n                        light: \"#0060C0\",\n                        hc: null\n                    }, a.N(\"listActiveSelectionBackground\", \"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.\")),\n                    st = u(\"list.activeSelectionForeground\", {\n                        dark: o.Il.white,\n                        light: o.Il.white,\n                        hc: null\n                    }, a.N(\"listActiveSelectionForeground\", \"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.\")),\n                    rt = u(\"list.activeSelectionIconForeground\", {\n                        dark: null,\n                        light: null,\n                        hc: null\n                    }, a.N(\"listActiveSelectionIconForeground\", \"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.\")),\n                    at = u(\"list.inactiveSelectionBackground\", {\n                        dark: \"#37373D\",\n                        light: \"#E4E6F1\",\n                        hc: null\n                    }, a.N(\"listInactiveSelectionBackground\", \"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.\")),\n                    lt = u(\"list.inactiveSelectionForeground\", {\n                        dark: null,\n                        light: null,\n                        hc: null\n                    }, a.N(\"listInactiveSelectionForeground\", \"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.\")),\n                    ct = u(\"list.inactiveSelectionIconForeground\", {\n                        dark: null,\n                        light: null,\n                        hc: null\n                    }, a.N(\"listInactiveSelectionIconForeground\", \"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.\")),\n                    dt = u(\"list.inactiveFocusBackground\", {\n                        dark: null,\n                        light: null,\n                        hc: null\n                    }, a.N(\"listInactiveFocusBackground\", \"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.\")),\n                    ht = u(\"list.inactiveFocusOutline\", {\n                        dark: null,\n                        light: null,\n                        hc: null\n                    }, a.N(\"listInactiveFocusOutline\", \"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.\")),\n                    ut = u(\"list.hoverBackground\", {\n                        dark: \"#2A2D2E\",\n                        light: \"#F0F0F0\",\n                        hc: null\n                    }, a.N(\"listHoverBackground\", \"List/Tree background when hovering over items using the mouse.\")),\n                    gt = u(\"list.hoverForeground\", {\n                        dark: null,\n                        light: null,\n                        hc: null\n                    }, a.N(\"listHoverForeground\", \"List/Tree foreground when hovering over items using the mouse.\")),\n                    pt = u(\"list.dropBackground\", {\n                        dark: \"#062F4A\",\n                        light: \"#D6EBFF\",\n                        hc: null\n                    }, a.N(\"listDropBackground\", \"List/Tree drag and drop background when moving items around using the mouse.\")),\n                    ft = u(\"list.highlightForeground\", {\n                        dark: \"#18A3FF\",\n                        light: \"#0066BF\",\n                        hc: m\n                    }, a.N(\"highlight\", \"List/Tree foreground color of the match highlights when searching inside the list/tree.\")),\n                    mt = u(\"list.focusHighlightForeground\", {\n                        dark: ft,\n                        light: (vt = ot, _t = ft, bt = \"#9DDDFF\", {\n                            op: 5,\n                            if: vt,\n                            then: _t,\n                            else: bt\n                        }),\n                        hc: ft\n                    }, a.N(\"listFocusHighlightForeground\", \"List/Tree foreground color of the match highlights on actively focused items when searching inside the list/tree.\"));\n                var vt, _t, bt;\n                const wt = u(\"listFilterWidget.background\", {\n                        light: \"#efc1ad\",\n                        dark: \"#653723\",\n                        hc: o.Il.black\n                    }, a.N(\"listFilterWidgetBackground\", \"Background color of the type filter widget in lists and trees.\")),\n                    yt = u(\"listFilterWidget.outline\", {\n                        dark: o.Il.transparent,\n                        light: o.Il.transparent,\n                        hc: \"#f38518\"\n                    }, a.N(\"listFilterWidgetOutline\", \"Outline color of the type filter widget in lists and trees.\")),\n                    Ct = u(\"listFilterWidget.noMatchesOutline\", {\n                        dark: \"#BE1100\",\n                        light: \"#BE1100\",\n                        hc: v\n                    }, a.N(\"listFilterWidgetNoMatchesOutline\", \"Outline color of the type filter widget in lists and trees, when there are no matches.\")),\n                    xt = u(\"tree.indentGuidesStroke\", {\n                        dark: \"#585858\",\n                        light: \"#a9a9a9\",\n                        hc: \"#a9a9a9\"\n                    }, a.N(\"treeIndentGuidesStroke\", \"Tree stroke color for the indentation guides.\")),\n                    St = u(\"tree.tableColumnsBorder\", {\n                        dark: \"#CCCCCC20\",\n                        light: \"#61616120\",\n                        hc: null\n                    }, a.N(\"treeIndentGuidesStroke\", \"Tree stroke color for the indentation guides.\")),\n                    kt = u(\"quickInput.list.focusBackground\", {\n                        dark: null,\n                        light: null,\n                        hc: null\n                    }, \"\", void 0, a.N(\"quickInput.list.focusBackground deprecation\", \"Please use quickInputList.focusBackground instead\")),\n                    Lt = u(\"quickInputList.focusForeground\", {\n                        dark: st,\n                        light: st,\n                        hc: st\n                    }, a.N(\"quickInput.listFocusForeground\", \"Quick picker foreground color for the focused item.\")),\n                    Nt = u(\"quickInputList.focusIconForeground\", {\n                        dark: rt,\n                        light: rt,\n                        hc: rt\n                    }, a.N(\"quickInput.listFocusIconForeground\", \"Quick picker icon foreground color for the focused item.\")),\n                    Dt = u(\"quickInputList.focusBackground\", {\n                        dark: si(kt, ot),\n                        light: si(kt, ot),\n                        hc: null\n                    }, a.N(\"quickInput.listFocusBackground\", \"Quick picker background color for the focused item.\")),\n                    It = u(\"menu.border\", {\n                        dark: null,\n                        light: null,\n                        hc: v\n                    }, a.N(\"menuBorder\", \"Border color of menus.\")),\n                    Et = u(\"menu.foreground\", {\n                        dark: V,\n                        light: g,\n                        hc: V\n                    }, a.N(\"menuForeground\", \"Foreground color of menu items.\")),\n                    Tt = u(\"menu.background\", {\n                        dark: B,\n                        light: B,\n                        hc: B\n                    }, a.N(\"menuBackground\", \"Background color of menu items.\")),\n                    Mt = u(\"menu.selectionForeground\", {\n                        dark: st,\n                        light: st,\n                        hc: st\n                    }, a.N(\"menuSelectionForeground\", \"Foreground color of the selected menu item in menus.\")),\n                    At = u(\"menu.selectionBackground\", {\n                        dark: ot,\n                        light: ot,\n                        hc: ot\n                    }, a.N(\"menuSelectionBackground\", \"Background color of the selected menu item in menus.\")),\n                    Ot = u(\"menu.selectionBorder\", {\n                        dark: null,\n                        light: null,\n                        hc: _\n                    }, a.N(\"menuSelectionBorder\", \"Border color of the selected menu item in menus.\")),\n                    Pt = u(\"menu.separatorBackground\", {\n                        dark: \"#BBBBBB\",\n                        light: \"#888888\",\n                        hc: v\n                    }, a.N(\"menuSeparatorBackground\", \"Color of a separator menu item in menus.\")),\n                    Rt = u(\"toolbar.hoverBackground\", {\n                        dark: \"#5a5d5e50\",\n                        light: \"#b8b8b850\",\n                        hc: null\n                    }, a.N(\"toolbarHoverBackground\", \"Toolbar background when hovering over actions using the mouse\")),\n                    Ft = u(\"editor.snippetTabstopHighlightBackground\", {\n                        dark: new o.Il(new o.VS(124, 124, 124, .3)),\n                        light: new o.Il(new o.VS(10, 50, 100, .2)),\n                        hc: new o.Il(new o.VS(124, 124, 124, .3))\n                    }, a.N(\"snippetTabstopHighlightBackground\", \"Highlight background color of a snippet tabstop.\")),\n                    Bt = u(\"editor.snippetTabstopHighlightBorder\", {\n                        dark: null,\n                        light: null,\n                        hc: null\n                    }, a.N(\"snippetTabstopHighlightBorder\", \"Highlight border color of a snippet tabstop.\")),\n                    Vt = u(\"editor.snippetFinalTabstopHighlightBackground\", {\n                        dark: null,\n                        light: null,\n                        hc: null\n                    }, a.N(\"snippetFinalTabstopHighlightBackground\", \"Highlight background color of the final tabstop of a snippet.\")),\n                    Wt = u(\"editor.snippetFinalTabstopHighlightBorder\", {\n                        dark: \"#525252\",\n                        light: new o.Il(new o.VS(10, 50, 100, .5)),\n                        hc: \"#525252\"\n                    }, a.N(\"snippetFinalTabstopHighlightBorder\", \"Highlight border color of the final tabstop of a snippet.\")),\n                    Ht = u(\"editorOverviewRuler.findMatchForeground\", {\n                        dark: \"#d186167e\",\n                        light: \"#d186167e\",\n                        hc: \"#AB5A00\"\n                    }, a.N(\"overviewRulerFindMatchForeground\", \"Overview ruler marker color for find matches. The color must not be opaque so as not to hide underlying decorations.\"), !0),\n                    zt = u(\"editorOverviewRuler.selectionHighlightForeground\", {\n                        dark: \"#A0A0A0CC\",\n                        light: \"#A0A0A0CC\",\n                        hc: \"#A0A0A0CC\"\n                    }, a.N(\"overviewRulerSelectionHighlightForeground\", \"Overview ruler marker color for selection highlights. The color must not be opaque so as not to hide underlying decorations.\"), !0),\n                    jt = u(\"minimap.findMatchHighlight\", {\n                        light: \"#d18616\",\n                        dark: \"#d18616\",\n                        hc: \"#AB5A00\"\n                    }, a.N(\"minimapFindMatchHighlight\", \"Minimap marker color for find matches.\"), !0),\n                    Ut = u(\"minimap.selectionOccurrenceHighlight\", {\n                        light: \"#c9c9c9\",\n                        dark: \"#676767\",\n                        hc: \"#ffffff\"\n                    }, a.N(\"minimapSelectionOccurrenceHighlight\", \"Minimap marker color for repeating editor selections.\"), !0),\n                    $t = u(\"minimap.selectionHighlight\", {\n                        light: \"#ADD6FF\",\n                        dark: \"#264F78\",\n                        hc: \"#ffffff\"\n                    }, a.N(\"minimapSelectionHighlight\", \"Minimap marker color for the editor selection.\"), !0),\n                    Kt = u(\"minimap.errorHighlight\", {\n                        dark: new o.Il(new o.VS(255, 18, 18, .7)),\n                        light: new o.Il(new o.VS(255, 18, 18, .7)),\n                        hc: new o.Il(new o.VS(255, 50, 50, 1))\n                    }, a.N(\"minimapError\", \"Minimap marker color for errors.\")),\n                    qt = u(\"minimap.warningHighlight\", {\n                        dark: ee,\n                        light: ee,\n                        hc: te\n                    }, a.N(\"overviewRuleWarning\", \"Minimap marker color for warnings.\")),\n                    Zt = u(\"minimap.background\", {\n                        dark: null,\n                        light: null,\n                        hc: null\n                    }, a.N(\"minimapBackground\", \"Minimap background color.\")),\n                    Gt = u(\"minimap.foregroundOpacity\", {\n                        dark: o.Il.fromHex(\"#000f\"),\n                        light: o.Il.fromHex(\"#000f\"),\n                        hc: o.Il.fromHex(\"#000f\")\n                    }, a.N(\"minimapForegroundOpacity\", 'Opacity of foreground elements rendered in the minimap. For example, \"#000000c0\" will render the elements with 75% opacity.')),\n                    Yt = u(\"minimapSlider.background\", {\n                        light: oi(K, .5),\n                        dark: oi(K, .5),\n                        hc: oi(K, .5)\n                    }, a.N(\"minimapSliderBackground\", \"Minimap slider background color.\")),\n                    Qt = u(\"minimapSlider.hoverBackground\", {\n                        light: oi(q, .5),\n                        dark: oi(q, .5),\n                        hc: oi(q, .5)\n                    }, a.N(\"minimapSliderHoverBackground\", \"Minimap slider background color when hovering.\")),\n                    Xt = u(\"minimapSlider.activeBackground\", {\n                        light: oi(Z, .5),\n                        dark: oi(Z, .5),\n                        hc: oi(Z, .5)\n                    }, a.N(\"minimapSliderActiveBackground\", \"Minimap slider background color when clicked on.\")),\n                    Jt = u(\"problemsErrorIcon.foreground\", {\n                        dark: Q,\n                        light: Q,\n                        hc: Q\n                    }, a.N(\"problemsErrorIconForeground\", \"The color used for the problems error icon.\")),\n                    ei = u(\"problemsWarningIcon.foreground\", {\n                        dark: ee,\n                        light: ee,\n                        hc: ee\n                    }, a.N(\"problemsWarningIconForeground\", \"The color used for the problems warning icon.\")),\n                    ti = u(\"problemsInfoIcon.foreground\", {\n                        dark: ne,\n                        light: ne,\n                        hc: ne\n                    }, a.N(\"problemsInfoIconForeground\", \"The color used for the problems info icon.\"));\n\n                function ii(e, t) {\n                    return {\n                        op: 0,\n                        value: e,\n                        factor: t\n                    }\n                }\n\n                function ni(e, t) {\n                    return {\n                        op: 1,\n                        value: e,\n                        factor: t\n                    }\n                }\n\n                function oi(e, t) {\n                    return {\n                        op: 2,\n                        value: e,\n                        factor: t\n                    }\n                }\n\n                function si(...e) {\n                    return {\n                        op: 3,\n                        values: e\n                    }\n                }\n\n                function ri(e, t, i, n) {\n                    return {\n                        op: 4,\n                        value: e,\n                        background: t,\n                        factor: i,\n                        transparency: n\n                    }\n                }\n\n                function ai(e, t) {\n                    if (null !== e) return \"string\" == typeof e ? \"#\" === e[0] ? o.Il.fromHex(e) : t.getColor(e) : e instanceof o.Il ? e : \"object\" == typeof e ? function(e, t) {\n                        var i, n, s;\n                        switch (e.op) {\n                            case 0:\n                                return null === (i = ai(e.value, t)) || void 0 === i ? void 0 : i.darken(e.factor);\n                            case 1:\n                                return null === (n = ai(e.value, t)) || void 0 === n ? void 0 : n.lighten(e.factor);\n                            case 2:\n                                return null === (s = ai(e.value, t)) || void 0 === s ? void 0 : s.transparent(e.factor);\n                            case 3:\n                                for (const i of e.values) {\n                                    const e = ai(i, t);\n                                    if (e) return e\n                                }\n                                return;\n                            case 5:\n                                return ai(t.defines(e.if) ? e.then : e.else, t);\n                            case 4:\n                                const a = ai(e.value, t);\n                                if (!a) return;\n                                const l = ai(e.background, t);\n                                return l ? a.isDarkerThan(l) ? o.Il.getLighterColor(a, l, e.factor).transparent(e.transparency) : o.Il.getDarkerColor(a, l, e.factor).transparent(e.transparency) : a.transparent(e.factor * e.transparency);\n                            default:\n                                throw (0, r.vE)(e)\n                        }\n                    }(e, t) : void 0\n                }\n                const li = \"vscode://schemas/workbench-colors\";\n                let ci = c.B.as(l.I.JSONContribution);\n                ci.registerSchema(li, h.getColorSchema());\n                const di = new n.pY((() => ci.notifySchemaChanged(li)), 200);\n                h.onDidChangeSchema((() => {\n                    di.isScheduled() || di.schedule()\n                }))\n            },\n            59554: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    Ks: () => u,\n                    q5: () => h,\n                    s_: () => m\n                });\n                var n = i(15393),\n                    o = i(73046),\n                    s = i(4669),\n                    r = i(63580),\n                    a = i(81294),\n                    l = i(89872),\n                    c = i(97781);\n                const d = new class {\n                    constructor() {\n                        this._onDidChange = new s.Q5, this.onDidChange = this._onDidChange.event, this.iconSchema = {\n                            definitions: {\n                                icons: {\n                                    type: \"object\",\n                                    properties: {\n                                        fontId: {\n                                            type: \"string\",\n                                            description: (0, r.N)(\"iconDefintion.fontId\", \"The id of the font to use. If not set, the font that is defined first is used.\")\n                                        },\n                                        fontCharacter: {\n                                            type: \"string\",\n                                            description: (0, r.N)(\"iconDefintion.fontCharacter\", \"The font character associated with the icon definition.\")\n                                        }\n                                    },\n                                    additionalProperties: !1,\n                                    defaultSnippets: [{\n                                        body: {\n                                            fontCharacter: \"\\\\\\\\e030\"\n                                        }\n                                    }]\n                                }\n                            },\n                            type: \"object\",\n                            properties: {}\n                        }, this.iconReferenceSchema = {\n                            type: \"string\",\n                            pattern: `^${o.dT.iconNameExpression}$`,\n                            enum: [],\n                            enumDescriptions: []\n                        }, this.iconsById = {}, this.iconFontsById = {}\n                    }\n                    registerIcon(e, t, i, n) {\n                        const o = this.iconsById[e];\n                        if (o) {\n                            if (i && !o.description) {\n                                o.description = i, this.iconSchema.properties[e].markdownDescription = `${i} $(${e})`;\n                                const t = this.iconReferenceSchema.enum.indexOf(e); - 1 !== t && (this.iconReferenceSchema.enumDescriptions[t] = i), this._onDidChange.fire()\n                            }\n                            return o\n                        }\n                        let s = {\n                            id: e,\n                            description: i,\n                            defaults: t,\n                            deprecationMessage: n\n                        };\n                        this.iconsById[e] = s;\n                        let r = {\n                            $ref: \"#/definitions/icons\"\n                        };\n                        return n && (r.deprecationMessage = n), i && (r.markdownDescription = `${i}: $(${e})`), this.iconSchema.properties[e] = r, this.iconReferenceSchema.enum.push(e), this.iconReferenceSchema.enumDescriptions.push(i || \"\"), this._onDidChange.fire(), {\n                            id: e\n                        }\n                    }\n                    getIcons() {\n                        return Object.keys(this.iconsById).map((e => this.iconsById[e]))\n                    }\n                    getIcon(e) {\n                        return this.iconsById[e]\n                    }\n                    getIconSchema() {\n                        return this.iconSchema\n                    }\n                    getIconFont(e) {\n                        return this.iconFontsById[e]\n                    }\n                    toString() {\n                        const e = (e, t) => e.id.localeCompare(t.id),\n                            t = e => {\n                                for (; c.kS.isThemeIcon(e.defaults);) e = this.iconsById[e.defaults.id];\n                                return `codicon codicon-${e?e.id:\"\"}`\n                            };\n                        let i = [];\n                        i.push(\"| preview     | identifier                        | default codicon ID                | description\"), i.push(\"| ----------- | --------------------------------- | --------------------------------- | --------------------------------- |\");\n                        const n = Object.keys(this.iconsById).map((e => this.iconsById[e]));\n                        for (const o of n.filter((e => !!e.description)).sort(e)) i.push(`|<i class=\"${t(o)}\"></i>|${o.id}|${c.kS.isThemeIcon(o.defaults)?o.defaults.id:o.id}|${o.description||\"\"}|`);\n                        i.push(\"| preview     | identifier                        \"), i.push(\"| ----------- | --------------------------------- |\");\n                        for (const o of n.filter((e => !c.kS.isThemeIcon(e.defaults))).sort(e)) i.push(`|<i class=\"${t(o)}\"></i>|${o.id}|`);\n                        return i.join(\"\\n\")\n                    }\n                };\n\n                function h(e, t, i, n) {\n                    return d.registerIcon(e, t, i, n)\n                }\n\n                function u() {\n                    return d\n                }\n                l.B.add(\"base.contributions.icons\", d),\n                    function() {\n                        for (const e of o.fK.all) d.registerIcon(e.id, e.definition, e.description);\n                        o.fK.onDidRegister((e => d.registerIcon(e.id, e.definition, e.description)))\n                    }();\n                const g = \"vscode://schemas/icons\";\n                let p = l.B.as(a.I.JSONContribution);\n                p.registerSchema(g, d.getIconSchema());\n                const f = new n.pY((() => p.notifySchemaChanged(g)), 200);\n                d.onDidChange((() => {\n                    f.isScheduled() || f.schedule()\n                }));\n                const m = h(\"widget-close\", o.lA.close, (0, r.N)(\"widgetClose\", \"Icon for the close action in widgets.\"))\n            },\n            88810: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    Jl: () => a,\n                    O2: () => l,\n                    WZ: () => r,\n                    o: () => o,\n                    tj: () => d\n                });\n                var n = i(73910);\n\n                function o(e, t) {\n                    const i = Object.create(null);\n                    for (let o in t) {\n                        const s = t[o];\n                        s && (i[o] = (0, n.Sn)(s, e))\n                    }\n                    return i\n                }\n\n                function s(e, t, i) {\n                    function n() {\n                        const n = o(e.getColorTheme(), t);\n                        \"function\" == typeof i ? i(n) : i.style(n)\n                    }\n                    return n(), e.onDidColorThemeChange(n)\n                }\n\n                function r(e, t, i) {\n                    return s(t, {\n                        badgeBackground: (null == i ? void 0 : i.badgeBackground) || n.g8,\n                        badgeForeground: (null == i ? void 0 : i.badgeForeground) || n.qe,\n                        badgeBorder: n.lR\n                    }, e)\n                }\n\n                function a(e, t, i) {\n                    return s(t, Object.assign(Object.assign({}, l), i || {}), e)\n                }\n                const l = {\n                        listFocusBackground: n._b,\n                        listFocusForeground: n._2,\n                        listFocusOutline: n.Oo,\n                        listActiveSelectionBackground: n.dC,\n                        listActiveSelectionForeground: n.M6,\n                        listActiveSelectionIconForeground: n.Tn,\n                        listFocusAndSelectionBackground: n.dC,\n                        listFocusAndSelectionForeground: n.M6,\n                        listInactiveSelectionBackground: n.rg,\n                        listInactiveSelectionIconForeground: n.kv,\n                        listInactiveSelectionForeground: n.yt,\n                        listInactiveFocusBackground: n.s$,\n                        listInactiveFocusOutline: n.F3,\n                        listHoverBackground: n.mV,\n                        listHoverForeground: n.$d,\n                        listDropBackground: n.AS,\n                        listSelectionOutline: n.xL,\n                        listHoverOutline: n.xL,\n                        listFilterWidgetBackground: n.vG,\n                        listFilterWidgetOutline: n.oS,\n                        listFilterWidgetNoMatchesOutline: n.S,\n                        listMatchesShadow: n.rh,\n                        treeIndentGuidesStroke: n.Un,\n                        tableColumnsBorder: n.ux\n                    },\n                    c = {\n                        shadowColor: n.rh,\n                        borderColor: n.Cd,\n                        foregroundColor: n.DE,\n                        backgroundColor: n.Hz,\n                        selectionForegroundColor: n.jb,\n                        selectionBackgroundColor: n.$D,\n                        selectionBorderColor: n.E3,\n                        separatorColor: n.ZG\n                    };\n\n                function d(e, t, i) {\n                    return s(t, Object.assign(Object.assign({}, c), i), e)\n                }\n            },\n            92321: (e, t, i) => {\n                \"use strict\";\n                var n;\n                i.d(t, {\n                        e: () => n\n                    }),\n                    function(e) {\n                        e.DARK = \"dark\", e.LIGHT = \"light\", e.HIGH_CONTRAST = \"hc\"\n                    }(n || (n = {}))\n            },\n            97781: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    EN: () => u,\n                    IP: () => p,\n                    Ic: () => m,\n                    XE: () => c,\n                    bB: () => v,\n                    kS: () => h,\n                    m6: () => g\n                });\n                var n = i(73046),\n                    o = i(4669),\n                    s = i(5976),\n                    r = i(72065),\n                    a = i(89872),\n                    l = i(92321);\n                const c = (0, r.yh)(\"themeService\");\n                var d, h;\n\n                function u(e) {\n                    return {\n                        id: e\n                    }\n                }\n\n                function g(e) {\n                    switch (e) {\n                        case l.e.DARK:\n                            return \"vs-dark\";\n                        case l.e.HIGH_CONTRAST:\n                            return \"hc-black\";\n                        default:\n                            return \"vs\"\n                    }\n                }! function(e) {\n                    e.isThemeColor = function(e) {\n                        return e && \"object\" == typeof e && \"string\" == typeof e.id\n                    }\n                }(d || (d = {})),\n                function(e) {\n                    e.isThemeIcon = function(e) {\n                        return e && \"object\" == typeof e && \"string\" == typeof e.id && (void 0 === e.color || d.isThemeColor(e.color))\n                    };\n                    const t = new RegExp(`^\\\\$\\\\((${n.dT.iconNameExpression}(?:${n.dT.iconModifierExpression})?)\\\\)$`);\n                    e.fromString = function(e) {\n                        const i = t.exec(e);\n                        if (!i) return;\n                        let [, n] = i;\n                        return {\n                            id: n\n                        }\n                    }, e.modify = function(e, t) {\n                        let i = e.id;\n                        const n = i.lastIndexOf(\"~\");\n                        return -1 !== n && (i = i.substring(0, n)), t && (i = `${i}~${t}`), {\n                            id: i\n                        }\n                    }, e.isEqual = function(e, t) {\n                        var i, n;\n                        return e.id === t.id && (null === (i = e.color) || void 0 === i ? void 0 : i.id) === (null === (n = t.color) || void 0 === n ? void 0 : n.id)\n                    }, e.asThemeIcon = function(e, t) {\n                        return {\n                            id: e.id,\n                            color: t ? u(t) : void 0\n                        }\n                    }, e.asClassNameArray = n.dT.asClassNameArray, e.asClassName = n.dT.asClassName, e.asCSSSelector = n.dT.asCSSSelector\n                }(h || (h = {}));\n                const p = {\n                    ThemingContribution: \"base.contributions.theming\"\n                };\n                let f = new class {\n                    constructor() {\n                        this.themingParticipants = [], this.themingParticipants = [], this.onThemingParticipantAddedEmitter = new o.Q5\n                    }\n                    onColorThemeChange(e) {\n                        return this.themingParticipants.push(e), this.onThemingParticipantAddedEmitter.fire(e), (0, s.OF)((() => {\n                            const t = this.themingParticipants.indexOf(e);\n                            this.themingParticipants.splice(t, 1)\n                        }))\n                    }\n                    getThemingParticipants() {\n                        return this.themingParticipants\n                    }\n                };\n\n                function m(e) {\n                    return f.onColorThemeChange(e)\n                }\n                a.B.add(p.ThemingContribution, f);\n                class v extends s.JT {\n                    constructor(e) {\n                        super(), this.themeService = e, this.theme = e.getColorTheme(), this._register(this.themeService.onDidColorThemeChange((e => this.onThemeChange(e))))\n                    }\n                    onThemeChange(e) {\n                        this.theme = e, this.updateStyles()\n                    }\n                    updateStyles() {}\n                }\n            },\n            64862: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    Xt: () => s,\n                    YO: () => o,\n                    gJ: () => r,\n                    tJ: () => n\n                });\n                const n = (0, i(72065).yh)(\"undoRedoService\");\n                class o {\n                    constructor(e, t) {\n                        this.resource = e, this.elements = t\n                    }\n                }\n                class s {\n                    constructor() {\n                        this.id = s._ID++, this.order = 1\n                    }\n                    nextOrder() {\n                        return 0 === this.id ? 0 : this.order++\n                    }\n                }\n                s._ID = 0, s.None = new s;\n                class r {\n                    constructor() {\n                        this.id = r._ID++, this.order = 1\n                    }\n                    nextOrder() {\n                        return 0 === this.id ? 0 : this.order++\n                    }\n                }\n                r._ID = 0, r.None = new r\n            },\n            40382: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    ec: () => n,\n                    md: () => o\n                });\n                i(43702);\n                const n = (0, i(72065).yh)(\"contextService\");\n                class o {\n                    constructor(e, t) {\n                        this.raw = t, this.uri = e.uri, this.index = e.index, this.name = e.name\n                    }\n                    toJSON() {\n                        return {\n                            uri: this.uri,\n                            name: this.name,\n                            index: this.index\n                        }\n                    }\n                }\n            },\n            35666: e => {\n                var t = function(e) {\n                    \"use strict\";\n                    var t, i = Object.prototype,\n                        n = i.hasOwnProperty,\n                        o = \"function\" == typeof Symbol ? Symbol : {},\n                        s = o.iterator || \"@@iterator\",\n                        r = o.asyncIterator || \"@@asyncIterator\",\n                        a = o.toStringTag || \"@@toStringTag\";\n\n                    function l(e, t, i) {\n                        return Object.defineProperty(e, t, {\n                            value: i,\n                            enumerable: !0,\n                            configurable: !0,\n                            writable: !0\n                        }), e[t]\n                    }\n                    try {\n                        l({}, \"\")\n                    } catch (e) {\n                        l = function(e, t, i) {\n                            return e[t] = i\n                        }\n                    }\n\n                    function c(e, t, i, n) {\n                        var o = t && t.prototype instanceof m ? t : m,\n                            s = Object.create(o.prototype),\n                            r = new D(n || []);\n                        return s._invoke = function(e, t, i) {\n                            var n = h;\n                            return function(o, s) {\n                                if (n === g) throw new Error(\"Generator is already running\");\n                                if (n === p) {\n                                    if (\"throw\" === o) throw s;\n                                    return E()\n                                }\n                                for (i.method = o, i.arg = s;;) {\n                                    var r = i.delegate;\n                                    if (r) {\n                                        var a = k(r, i);\n                                        if (a) {\n                                            if (a === f) continue;\n                                            return a\n                                        }\n                                    }\n                                    if (\"next\" === i.method) i.sent = i._sent = i.arg;\n                                    else if (\"throw\" === i.method) {\n                                        if (n === h) throw n = p, i.arg;\n                                        i.dispatchException(i.arg)\n                                    } else \"return\" === i.method && i.abrupt(\"return\", i.arg);\n                                    n = g;\n                                    var l = d(e, t, i);\n                                    if (\"normal\" === l.type) {\n                                        if (n = i.done ? p : u, l.arg === f) continue;\n                                        return {\n                                            value: l.arg,\n                                            done: i.done\n                                        }\n                                    }\n                                    \"throw\" === l.type && (n = p, i.method = \"throw\", i.arg = l.arg)\n                                }\n                            }\n                        }(e, i, r), s\n                    }\n\n                    function d(e, t, i) {\n                        try {\n                            return {\n                                type: \"normal\",\n                                arg: e.call(t, i)\n                            }\n                        } catch (e) {\n                            return {\n                                type: \"throw\",\n                                arg: e\n                            }\n                        }\n                    }\n                    e.wrap = c;\n                    var h = \"suspendedStart\",\n                        u = \"suspendedYield\",\n                        g = \"executing\",\n                        p = \"completed\",\n                        f = {};\n\n                    function m() {}\n\n                    function v() {}\n\n                    function _() {}\n                    var b = {};\n                    b[s] = function() {\n                        return this\n                    };\n                    var w = Object.getPrototypeOf,\n                        y = w && w(w(I([])));\n                    y && y !== i && n.call(y, s) && (b = y);\n                    var C = _.prototype = m.prototype = Object.create(b);\n\n                    function x(e) {\n                        [\"next\", \"throw\", \"return\"].forEach((function(t) {\n                            l(e, t, (function(e) {\n                                return this._invoke(t, e)\n                            }))\n                        }))\n                    }\n\n                    function S(e, t) {\n                        function i(o, s, r, a) {\n                            var l = d(e[o], e, s);\n                            if (\"throw\" !== l.type) {\n                                var c = l.arg,\n                                    h = c.value;\n                                return h && \"object\" == typeof h && n.call(h, \"__await\") ? t.resolve(h.__await).then((function(e) {\n                                    i(\"next\", e, r, a)\n                                }), (function(e) {\n                                    i(\"throw\", e, r, a)\n                                })) : t.resolve(h).then((function(e) {\n                                    c.value = e, r(c)\n                                }), (function(e) {\n                                    return i(\"throw\", e, r, a)\n                                }))\n                            }\n                            a(l.arg)\n                        }\n                        var o;\n                        this._invoke = function(e, n) {\n                            function s() {\n                                return new t((function(t, o) {\n                                    i(e, n, t, o)\n                                }))\n                            }\n                            return o = o ? o.then(s, s) : s()\n                        }\n                    }\n\n                    function k(e, i) {\n                        var n = e.iterator[i.method];\n                        if (n === t) {\n                            if (i.delegate = null, \"throw\" === i.method) {\n                                if (e.iterator.return && (i.method = \"return\", i.arg = t, k(e, i), \"throw\" === i.method)) return f;\n                                i.method = \"throw\", i.arg = new TypeError(\"The iterator does not provide a 'throw' method\")\n                            }\n                            return f\n                        }\n                        var o = d(n, e.iterator, i.arg);\n                        if (\"throw\" === o.type) return i.method = \"throw\", i.arg = o.arg, i.delegate = null, f;\n                        var s = o.arg;\n                        return s ? s.done ? (i[e.resultName] = s.value, i.next = e.nextLoc, \"return\" !== i.method && (i.method = \"next\", i.arg = t), i.delegate = null, f) : s : (i.method = \"throw\", i.arg = new TypeError(\"iterator result is not an object\"), i.delegate = null, f)\n                    }\n\n                    function L(e) {\n                        var t = {\n                            tryLoc: e[0]\n                        };\n                        1 in e && (t.catchLoc = e[1]), 2 in e && (t.finallyLoc = e[2], t.afterLoc = e[3]), this.tryEntries.push(t)\n                    }\n\n                    function N(e) {\n                        var t = e.completion || {};\n                        t.type = \"normal\", delete t.arg, e.completion = t\n                    }\n\n                    function D(e) {\n                        this.tryEntries = [{\n                            tryLoc: \"root\"\n                        }], e.forEach(L, this), this.reset(!0)\n                    }\n\n                    function I(e) {\n                        if (e) {\n                            var i = e[s];\n                            if (i) return i.call(e);\n                            if (\"function\" == typeof e.next) return e;\n                            if (!isNaN(e.length)) {\n                                var o = -1,\n                                    r = function i() {\n                                        for (; ++o < e.length;)\n                                            if (n.call(e, o)) return i.value = e[o], i.done = !1, i;\n                                        return i.value = t, i.done = !0, i\n                                    };\n                                return r.next = r\n                            }\n                        }\n                        return {\n                            next: E\n                        }\n                    }\n\n                    function E() {\n                        return {\n                            value: t,\n                            done: !0\n                        }\n                    }\n                    return v.prototype = C.constructor = _, _.constructor = v, v.displayName = l(_, a, \"GeneratorFunction\"), e.isGeneratorFunction = function(e) {\n                        var t = \"function\" == typeof e && e.constructor;\n                        return !!t && (t === v || \"GeneratorFunction\" === (t.displayName || t.name))\n                    }, e.mark = function(e) {\n                        return Object.setPrototypeOf ? Object.setPrototypeOf(e, _) : (e.__proto__ = _, l(e, a, \"GeneratorFunction\")), e.prototype = Object.create(C), e\n                    }, e.awrap = function(e) {\n                        return {\n                            __await: e\n                        }\n                    }, x(S.prototype), S.prototype[r] = function() {\n                        return this\n                    }, e.AsyncIterator = S, e.async = function(t, i, n, o, s) {\n                        void 0 === s && (s = Promise);\n                        var r = new S(c(t, i, n, o), s);\n                        return e.isGeneratorFunction(i) ? r : r.next().then((function(e) {\n                            return e.done ? e.value : r.next()\n                        }))\n                    }, x(C), l(C, a, \"Generator\"), C[s] = function() {\n                        return this\n                    }, C.toString = function() {\n                        return \"[object Generator]\"\n                    }, e.keys = function(e) {\n                        var t = [];\n                        for (var i in e) t.push(i);\n                        return t.reverse(),\n                            function i() {\n                                for (; t.length;) {\n                                    var n = t.pop();\n                                    if (n in e) return i.value = n, i.done = !1, i\n                                }\n                                return i.done = !0, i\n                            }\n                    }, e.values = I, D.prototype = {\n                        constructor: D,\n                        reset: function(e) {\n                            if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(N), !e)\n                                for (var i in this) \"t\" === i.charAt(0) && n.call(this, i) && !isNaN(+i.slice(1)) && (this[i] = t)\n                        },\n                        stop: function() {\n                            this.done = !0;\n                            var e = this.tryEntries[0].completion;\n                            if (\"throw\" === e.type) throw e.arg;\n                            return this.rval\n                        },\n                        dispatchException: function(e) {\n                            if (this.done) throw e;\n                            var i = this;\n\n                            function o(n, o) {\n                                return a.type = \"throw\", a.arg = e, i.next = n, o && (i.method = \"next\", i.arg = t), !!o\n                            }\n                            for (var s = this.tryEntries.length - 1; s >= 0; --s) {\n                                var r = this.tryEntries[s],\n                                    a = r.completion;\n                                if (\"root\" === r.tryLoc) return o(\"end\");\n                                if (r.tryLoc <= this.prev) {\n                                    var l = n.call(r, \"catchLoc\"),\n                                        c = n.call(r, \"finallyLoc\");\n                                    if (l && c) {\n                                        if (this.prev < r.catchLoc) return o(r.catchLoc, !0);\n                                        if (this.prev < r.finallyLoc) return o(r.finallyLoc)\n                                    } else if (l) {\n                                        if (this.prev < r.catchLoc) return o(r.catchLoc, !0)\n                                    } else {\n                                        if (!c) throw new Error(\"try statement without catch or finally\");\n                                        if (this.prev < r.finallyLoc) return o(r.finallyLoc)\n                                    }\n                                }\n                            }\n                        },\n                        abrupt: function(e, t) {\n                            for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n                                var o = this.tryEntries[i];\n                                if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) {\n                                    var s = o;\n                                    break\n                                }\n                            }\n                            s && (\"break\" === e || \"continue\" === e) && s.tryLoc <= t && t <= s.finallyLoc && (s = null);\n                            var r = s ? s.completion : {};\n                            return r.type = e, r.arg = t, s ? (this.method = \"next\", this.next = s.finallyLoc, f) : this.complete(r)\n                        },\n                        complete: function(e, t) {\n                            if (\"throw\" === e.type) throw e.arg;\n                            return \"break\" === e.type || \"continue\" === e.type ? this.next = e.arg : \"return\" === e.type ? (this.rval = this.arg = e.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === e.type && t && (this.next = t), f\n                        },\n                        finish: function(e) {\n                            for (var t = this.tryEntries.length - 1; t >= 0; --t) {\n                                var i = this.tryEntries[t];\n                                if (i.finallyLoc === e) return this.complete(i.completion, i.afterLoc), N(i), f\n                            }\n                        },\n                        catch: function(e) {\n                            for (var t = this.tryEntries.length - 1; t >= 0; --t) {\n                                var i = this.tryEntries[t];\n                                if (i.tryLoc === e) {\n                                    var n = i.completion;\n                                    if (\"throw\" === n.type) {\n                                        var o = n.arg;\n                                        N(i)\n                                    }\n                                    return o\n                                }\n                            }\n                            throw new Error(\"illegal catch attempt\")\n                        },\n                        delegateYield: function(e, i, n) {\n                            return this.delegate = {\n                                iterator: I(e),\n                                resultName: i,\n                                nextLoc: n\n                            }, \"next\" === this.method && (this.arg = t), f\n                        }\n                    }, e\n                }(e.exports);\n                try {\n                    regeneratorRuntime = t\n                } catch (e) {\n                    Function(\"r\", \"regeneratorRuntime = r\")(t)\n                }\n            },\n            42016: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    Z: () => qe\n                });\n                var n = i(63038),\n                    o = i.n(n),\n                    s = i(59713),\n                    r = i.n(s),\n                    a = i(319),\n                    l = i.n(a),\n                    c = i(48926),\n                    d = i.n(c),\n                    h = i(87757),\n                    u = i.n(h),\n                    g = i(23321),\n                    p = i(24793),\n                    f = i.n(p),\n                    m = i(51109),\n                    v = i.n(m),\n                    _ = i(24883),\n                    b = i(33182),\n                    w = i(83566),\n                    y = i(72298);\n\n                function C(e, t) {\n                    var i = \"undefined\" != typeof Symbol && e[Symbol.iterator] || e[\"@@iterator\"];\n                    if (!i) {\n                        if (Array.isArray(e) || (i = function(e, t) {\n                                if (!e) return;\n                                if (\"string\" == typeof e) return x(e, t);\n                                var i = Object.prototype.toString.call(e).slice(8, -1);\n                                \"Object\" === i && e.constructor && (i = e.constructor.name);\n                                if (\"Map\" === i || \"Set\" === i) return Array.from(e);\n                                if (\"Arguments\" === i || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)) return x(e, t)\n                            }(e)) || t && e && \"number\" == typeof e.length) {\n                            i && (e = i);\n                            var n = 0,\n                                o = function() {};\n                            return {\n                                s: o,\n                                n: function() {\n                                    return n >= e.length ? {\n                                        done: !0\n                                    } : {\n                                        done: !1,\n                                        value: e[n++]\n                                    }\n                                },\n                                e: function(e) {\n                                    throw e\n                                },\n                                f: o\n                            }\n                        }\n                        throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")\n                    }\n                    var s, r = !0,\n                        a = !1;\n                    return {\n                        s: function() {\n                            i = i.call(e)\n                        },\n                        n: function() {\n                            var e = i.next();\n                            return r = e.done, e\n                        },\n                        e: function(e) {\n                            a = !0, s = e\n                        },\n                        f: function() {\n                            try {\n                                r || null == i.return || i.return()\n                            } finally {\n                                if (a) throw s\n                            }\n                        }\n                    }\n                }\n\n                function x(e, t) {\n                    (null == t || t > e.length) && (t = e.length);\n                    for (var i = 0, n = new Array(t); i < t; i++) n[i] = e[i];\n                    return n\n                }\n\n                function S(e, t) {\n                    var i = Object.keys(e);\n                    if (Object.getOwnPropertySymbols) {\n                        var n = Object.getOwnPropertySymbols(e);\n                        t && (n = n.filter((function(t) {\n                            return Object.getOwnPropertyDescriptor(e, t).enumerable\n                        }))), i.push.apply(i, n)\n                    }\n                    return i\n                }\n\n                function k(e) {\n                    for (var t = 1; t < arguments.length; t++) {\n                        var i = null != arguments[t] ? arguments[t] : {};\n                        t % 2 ? S(Object(i), !0).forEach((function(t) {\n                            r()(e, t, i[t])\n                        })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(i)) : S(Object(i)).forEach((function(t) {\n                            Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(i, t))\n                        }))\n                    }\n                    return e\n                }\n                var L = i(75110),\n                    N = i(71017),\n                    D = i(57147),\n                    I = i(24793);\n                const E = {\n                        props: [],\n                        data: function() {\n                            return {\n                                speed: {\n                                    up: 0,\n                                    down: 0\n                                },\n                                client: null,\n                                scriptResult: \"\",\n                                intervalID: null,\n                                trayIconImg: null,\n                                canvas: null,\n                                renderedData: null\n                            }\n                        },\n                        watch: {\n                            clashStatus: function(e) {\n                                e === b.Z.CONNECTED && (this.setupRequest(), this.updateInterval())\n                            },\n                            isWindowShow: function(e) {\n                                this.setupRequest()\n                            },\n                            isAppSuspend: function(e) {\n                                e || this.setupRequest()\n                            },\n                            \"settings.trayText\": function() {\n                                this.updateInterval()\n                            },\n                            \"settings.trayScriptPath\": function() {\n                                this.updateInterval()\n                            },\n                            \"settings.trayScriptInterval\": function() {\n                                this.updateInterval()\n                            },\n                            \"settings.trayScriptManualRunTime\": function() {\n                                this.updateInterval()\n                            },\n                            \"settings.trayOrders\": {\n                                deep: !0,\n                                handler: function(e, t) {\n                                    I.isEqual(e, t) || this.updateInterval()\n                                }\n                            }\n                        },\n                        computed: k(k(k({}, (0, g.mapState)(r()({\n                            confData: function(e) {\n                                return e.app.confData\n                            },\n                            clashStatus: function(e) {\n                                return e.app.clashStatus\n                            },\n                            status: function(e) {\n                                return e.app.status\n                            },\n                            shouldUseDarkTheme: function(e) {\n                                return e.app.shouldUseDarkTheme\n                            },\n                            isWindowShow: function(e) {\n                                return e.app.isWindowShow\n                            },\n                            isAppSuspend: function(e) {\n                                return e.app.isAppSuspend\n                            },\n                            isSystemProxyOn: function(e) {\n                                return e.app.isSystemProxyOn\n                            },\n                            mode: function(e) {\n                                return e.app.mode\n                            }\n                        }, \"clashStatus\", (function(e) {\n                            return e.app.clashStatus\n                        })))), (0, g.mapGetters)([\"resourcesPath\", \"clashWSClient\"])), {}, {\n                            trayDisabled: function() {\n                                var e = this.settings.trayOrders || [\n                                    [],\n                                    []\n                                ];\n                                return 0 === e[0].length || 1 === e[0].length && \"icon\" === e[0][0]\n                            },\n                            finalText: function() {\n                                var e = this.settings.trayText;\n                                return (void 0 === e ? \"\" : e) || this.scriptResult\n                            },\n                            colors: function() {\n                                return {\n                                    light: [\"#fff\", \"#000\"],\n                                    dark: [\"#2c2a38\", \"rgb(255, 255, 255)\"],\n                                    red: [\"#303030\", \"#ffffff\"],\n                                    2077: [\"#136377\", \"#fcec0c\"]\n                                } [this.theme]\n                            }\n                        }),\n                        methods: {\n                            iconImage: function(e) {\n                                var t = new Image(69, 69);\n                                return t.src = e, t\n                            },\n                            withUnit: function(e) {\n                                for (var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 2, i = arguments.length > 2 && void 0 !== arguments[2] && arguments[2], n = [\"B/s\", \"KB/s\", \"MB/s\", \"GB/s\", \"TB/s\"], o = 0; ~~(e / 1024) && o < n.length;) e /= 1024, o++;\n                                return i && e > 999 && (o++, e /= 1024), {\n                                    speed: 0 === o ? e : e.toFixed(t),\n                                    unit: n[o]\n                                }\n                            },\n                            stopRequest: function() {\n                                this.client && this.client.readyState !== WebSocket.CLOSED && this.client.readyState !== WebSocket.CONNECTING && (this.client.terminate(), this.client = null), this.trayIconImg && (this.trayIconImg = null)\n                            },\n                            setupRequest: function() {\n                                var e = this;\n                                if (this.stopRequest(), this.isWindowShow || !this.trayDisabled) {\n                                    var t, i = this.clashWSClient(\"traffic\");\n                                    if (this.trayIconImg || (this.trayIconImg = this.iconImage(N.join(this.resourcesPath, \"static/imgs/logo_64_eyes.png\"))), i) {\n                                        var n = this.canvas.getContext(\"2d\"),\n                                            o = function(t, i, n) {\n                                                var o, s = {\n                                                        trayColorTransparent: i,\n                                                        trayColorForeground: n\n                                                    },\n                                                    r = C(t[0]);\n                                                try {\n                                                    for (r.s(); !(o = r.n()).done;) {\n                                                        var a = o.value;\n                                                        \"icon\" === a ? s.icon = e.trayIconImg : \"traffic\" === a ? s.speed = e.speed : \"status\" === a ? (s.mode = e.mode[0].toUpperCase(), s.isSystemProxyOn = e.isSystemProxyOn) : \"text\" === a && (s.text = e.finalText)\n                                                    }\n                                                } catch (e) {\n                                                    r.e(e)\n                                                } finally {\n                                                    r.f()\n                                                }\n                                                return s\n                                            };\n                                        i.on(\"message\", (t = d()(u().mark((function t(i) {\n                                            var s, r, a, l, c, d, h, g, p, f, m, v, _, b, w, x, S, k, L, N;\n                                            return u().wrap((function(t) {\n                                                for (;;) switch (t.prev = t.next) {\n                                                    case 0:\n                                                        if (e.speed = JSON.parse(i), s = e.settings, r = s.trayOrders, a = void 0 === r ? [\n                                                                [],\n                                                                []\n                                                            ] : r, l = s.trayColorTransparent, c = s.trayColorForeground, d = void 0 === c ? \"#fff\" : c, h = e.trayDisabled, g = o(a, l, d), !I.isEqual(e.renderedData, g)) {\n                                                            t.next = 6;\n                                                            break\n                                                        }\n                                                        return t.abrupt(\"return\");\n                                                    case 6:\n                                                        if (h) y.ipcRenderer.send(\"speed-update\", \"\", 60, \"\");\n                                                        else {\n                                                            p = 0, f = e.withUnit(e.speed.up, 0, !0), m = e.withUnit(e.speed.down, 0, !0), v = l ? d : e.colors[1], _ = v, b = function(t) {\n                                                                n.drawImage(e.trayIconImg, t, 0, 69, 69), p += 69\n                                                            }, w = function(t) {\n                                                                n.textAlign = \"right\", n.fillStyle = _, n.font = \"26px sans-serif\", n.lineWidth = 2, n.strokeStyle = _, n.fillText(\"\".concat(f.speed, \" \").concat(f.unit), t + 145, 30), n.fillText(\"\".concat(m.speed, \" \").concat(m.unit), t + 145, 58), n.textAlign = \"left\", n.beginPath(), n.moveTo(t + 5, 31), n.lineTo(t + 12, 22), n.lineTo(t + 19, 31), e.speed.up > e.speed.down && n.fill(), n.stroke(), n.beginPath(), n.moveTo(t + 19, 38), n.lineTo(t + 12, 47), n.lineTo(t + 5, 38), e.speed.up < e.speed.down && n.fill(), n.stroke(), p += 150\n                                                            }, x = function(t) {\n                                                                n.font = \"26px sans-serif\", n.fillStyle = _, n.fillText(e.mode[0].toUpperCase(), t + 5, 58), e.isSystemProxyOn && n.fillText(\"S\", t + 5, 30), p += 30\n                                                            }, S = function(t) {\n                                                                n.fillStyle = _;\n                                                                var i = t + 10,\n                                                                    o = e.finalText,\n                                                                    s = 0;\n                                                                if (Array.isArray(o) && o.length >= 2) {\n                                                                    n.font = \"26px sans-serif\";\n                                                                    var r = n.measureText(o[0]).width,\n                                                                        a = n.measureText(o[1]).width;\n                                                                    s = r > a ? r : a, n.fillText(o[0], i, 30), n.fillText(o[1], i, 58)\n                                                                } else n.font = \"40px sans-serif\", s = n.measureText(o).width, n.fillText(o, i, 50);\n                                                                p += parseInt(s) + 20\n                                                            }, k = C(a[0]);\n                                                            try {\n                                                                for (k.s(); !(L = k.n()).done;) \"icon\" === (N = L.value) ? b(p) : \"traffic\" === N ? w(p) : \"status\" === N ? x(p) : \"text\" === N && S(p)\n                                                            } catch (e) {\n                                                                k.e(e)\n                                                            } finally {\n                                                                k.f()\n                                                            }\n                                                            0 === a[0].length && b(p), y.ipcRenderer.send(\"speed-update\", e.canvas.toDataURL(), h ? 60 : p, l ? \"\" : e.colors[0]), e.renderedData = o(a, l, d), n.clearRect(0, 0, e.canvas.width, e.canvas.height)\n                                                        }\n                                                        case 7:\n                                                        case \"end\":\n                                                            return t.stop()\n                                                }\n                                            }), t)\n                                        }))), function(e) {\n                                            return t.apply(this, arguments)\n                                        })), this.client = i\n                                    } else setTimeout((function() {\n                                        e.setupRequest()\n                                    }), 2e3)\n                                }\n                            },\n                            updateInterval: function() {\n                                var e = this;\n                                this.intervalID && (clearInterval(this.intervalID), this.intervalID = null, this.scriptResult = \"\");\n                                var t, i = this.settings,\n                                    n = i.trayText,\n                                    o = void 0 === n ? \"\" : n,\n                                    s = i.trayScriptInterval,\n                                    r = i.trayScriptPath,\n                                    a = i.trayOrders;\n                                if (\"\" === o && r && a[0].includes(\"text\")) {\n                                    var l = (t = d()(u().mark((function t() {\n                                        var i, n;\n                                        return u().wrap((function(t) {\n                                            for (;;) switch (t.prev = t.next) {\n                                                case 0:\n                                                    return i = D.readFileSync(r, \"utf8\"), n = L(\"'use strict';\\n\".concat(i), r), t.next = 4, n.run();\n                                                case 4:\n                                                    e.scriptResult = t.sent;\n                                                case 5:\n                                                case \"end\":\n                                                    return t.stop()\n                                            }\n                                        }), t)\n                                    }))), function() {\n                                        return t.apply(this, arguments)\n                                    });\n                                    l(), s > 0 && (this.intervalID = setInterval(l, 1e3 * s))\n                                }\n                                return null\n                            }\n                        },\n                        mounted: function() {\n                            this.canvas = document.createElement(\"canvas\"), this.canvas.width = 1e4, this.setupRequest(), this.updateInterval()\n                        }\n                    },\n                    T = E;\n                i(38619), i(38926);\n                var M = i(51900);\n                const A = (0, M.Z)(T, (function() {\n                    var e = this,\n                        t = e._self._c;\n                    return t(\"div\", {\n                        staticClass: \"main-clash-traffic-view\"\n                    }, [t(\"div\", {\n                        staticClass: \"grid\"\n                    }, [t(\"div\", [t(\"span\", {\n                        staticClass: \"bold-icon\"\n                    }, [e._v(\"↑\")]), e._v(\"\\n      \" + e._s(e.withUnit(e.speed.up).speed) + \"\\n      \"), t(\"span\", {\n                        staticClass: \"bold-icon\"\n                    }, [e._v(e._s(e.withUnit(e.speed.up).unit))])])]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"grid\"\n                    }, [t(\"div\", [t(\"span\", {\n                        staticClass: \"bold-icon\"\n                    }, [e._v(\"↓\")]), e._v(\"\\n      \" + e._s(e.withUnit(e.speed.down).speed) + \"\\n      \"), t(\"span\", {\n                        staticClass: \"bold-icon\"\n                    }, [e._v(\"\\n        \" + e._s(e.withUnit(e.speed.down).unit) + \"\\n      \")])])])])\n                }), [], !1, null, \"4f5120b9\", null).exports;\n                var O = i(10605),\n                    P = i.n(O),\n                    R = i(71289);\n\n                function F(e, t) {\n                    var i = Object.keys(e);\n                    if (Object.getOwnPropertySymbols) {\n                        var n = Object.getOwnPropertySymbols(e);\n                        t && (n = n.filter((function(t) {\n                            return Object.getOwnPropertyDescriptor(e, t).enumerable\n                        }))), i.push.apply(i, n)\n                    }\n                    return i\n                }\n                const B = {\n                    props: [\"startTime\"],\n                    data: function() {\n                        return {\n                            runningTime: \"00 : 00 : 00\",\n                            intervalId: null\n                        }\n                    },\n                    watch: {},\n                    computed: function(e) {\n                        for (var t = 1; t < arguments.length; t++) {\n                            var i = null != arguments[t] ? arguments[t] : {};\n                            t % 2 ? F(Object(i), !0).forEach((function(t) {\n                                r()(e, t, i[t])\n                            })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(i)) : F(Object(i)).forEach((function(t) {\n                                Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(i, t))\n                            }))\n                        }\n                        return e\n                    }({}, (0, g.mapState)({})),\n                    methods: {\n                        calcRunTime: function() {\n                            var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : \"hh : mm : ss\",\n                                t = e.includes(\"hh\"),\n                                i = e.includes(\"mm\"),\n                                n = (new Date).getTime(),\n                                o = Math.floor((n - this.startTime) / 1e3),\n                                s = t || i ? o % 60 : o,\n                                r = t ? Math.floor(o / 60) % 60 : Math.floor(o / 60),\n                                a = Math.floor(o / 3600),\n                                l = function(e) {\n                                    return e < 10 ? \"0\".concat(e) : \"\".concat(e)\n                                };\n                            return e.replace(\"hh\", l(a)).replace(\"mm\", l(r)).replace(\"ss\", l(s))\n                        },\n                        refreshTimeTicking: function() {\n                            var e = this;\n                            this.intervalId = R.ZP.add((function() {\n                                var t = e.settings.runTimeFormat,\n                                    i = void 0 === t ? \"hh : mm : ss\" : t;\n                                e.runningTime = e.calcRunTime(i)\n                            }), 1e3)\n                        }\n                    },\n                    mounted: function() {\n                        this.refreshTimeTicking(!0)\n                    }\n                };\n                i(74360);\n                const V = (0, M.Z)(B, (function() {\n                    var e = this,\n                        t = e._self._c;\n                    return t(\"div\", {\n                        attrs: {\n                            id: \"main-run-time-view\"\n                        }\n                    }, [t(\"div\", {\n                        staticClass: \"timer-text\"\n                    }, [e._v(e._s(e.runningTime))])])\n                }), [], !1, null, \"05e7144a\", null).exports;\n                var W = i(81518),\n                    H = i(13338);\n\n                function z(e, t) {\n                    var i = Object.keys(e);\n                    if (Object.getOwnPropertySymbols) {\n                        var n = Object.getOwnPropertySymbols(e);\n                        t && (n = n.filter((function(t) {\n                            return Object.getOwnPropertyDescriptor(e, t).enumerable\n                        }))), i.push.apply(i, n)\n                    }\n                    return i\n                }\n\n                function j(e) {\n                    for (var t = 1; t < arguments.length; t++) {\n                        var i = null != arguments[t] ? arguments[t] : {};\n                        t % 2 ? z(Object(i), !0).forEach((function(t) {\n                            r()(e, t, i[t])\n                        })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(i)) : z(Object(i)).forEach((function(t) {\n                            Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(i, t))\n                        }))\n                    }\n                    return e\n                }\n                const U = {\n                        props: [\"startTime\", \"profileUpdateFailedURLs\", \"keyboardClickTimes\"],\n                        data: function() {\n                            return {\n                                isAllowSort: !1,\n                                isShowKeyboardShortcuts: !1,\n                                keyboardShortcutsIntervalID: null\n                            }\n                        },\n                        components: {\n                            ClashTrafficView: A,\n                            RunTimeView: V,\n                            draggable: v(),\n                            Hint: H.Z\n                        },\n                        watch: {\n                            keyboardClickTimes: function() {\n                                var e = this;\n                                this.isShowKeyboardShortcuts = !0, this.keyboardShortcutsIntervalID && clearInterval(this.keyboardShortcutsIntervalID), this.keyboardShortcutsIntervalID = setInterval((function() {\n                                    e.isShowKeyboardShortcuts = !1, clearInterval(e.keyboardShortcutsIntervalID)\n                                }), 5e3)\n                            }\n                        },\n                        computed: j(j({}, (0, g.mapGetters)([\"menuItemsWithOrder\", \"clashGotClient\"])), {}, {\n                            selectedIdx: function() {\n                                var e = this;\n                                return this.tabs.findIndex((function(t) {\n                                    return t.path === e.$route.path\n                                }))\n                            },\n                            tabs: {\n                                get: function() {\n                                    return this.menuItemsWithOrder\n                                },\n                                set: function(e) {\n                                    _.Z.put(W.Z.MENU_ITEM_ORDER, e.map((function(e) {\n                                        return e.title\n                                    }))), this.setMenuItems({\n                                        items: e\n                                    })\n                                }\n                            }\n                        }),\n                        methods: j(j({}, (0, g.mapMutations)({\n                            setMenuItems: \"SET_MENU_ITEMS\"\n                        })), {}, {\n                            handleRightClick: function(e) {\n                                var t = this;\n                                const Lg = new Language(modifyState.language);\n                                return d()(u().mark((function i() {\n                                    return u().wrap((function(i) {\n                                        for (;;) switch (i.prev = i.next) {\n                                            case 0:\n                                                t.$menu([{\n                                                    text: Lg.reorder(),\n                                                    icon: \"reorder\",\n                                                    click: function() {\n                                                        t.isAllowSort = !0\n                                                    }\n                                                }], e);\n                                            case 1:\n                                            case \"end\":\n                                                return i.stop()\n                                        }\n                                    }), i)\n                                })))()\n                            },\n                            itemStyle: function(e) {\n                                var t = [];\n                                return this.isAllowSort && t.push(\"shaking\".concat(e % 3 + 1)), this.selectedIdx === e && t.push(\"selected\"), this.selectedIdx !== e && (t.push(\"selected-none\"), t.push(\"item-none\")), this.selectedIdx === e + 1 && t.push(\"selected-top\"), this.selectedIdx === e - 1 && t.push(\"selected-bottom\"), t\n                            },\n                            itemClick: function(e) {\n                                var t = e.path;\n                                this.$router.replace({\n                                    path: t\n                                }).catch((function() {}))\n                            }\n                        }),\n                        mounted: function() {}\n                    },\n                    $ = U;\n                i(44977);\n                const K = (0, M.Z)($, (function() {\n                    var e = this,\n                        t = e._self._c;\n                    const Lg = new Language(modifyState.language);\n                    return t(\"div\", {\n                        class: [\"main-main-menu\", \"item-none\", e.isAllowSort ? \"item-draggable\" : \"\"],\n                        on: {\n                            contextmenu: function(t) {\n                                return e.handleRightClick.apply(null, arguments)\n                            }\n                        }\n                    }, [t(\"clash-traffic-view\", {\n                        staticClass: \"traffic\"\n                    }), e._v(\" \"), t(\"draggable\", {\n                        ref: \"list\",\n                        staticClass: \"menu\",\n                        attrs: {\n                            animation: 200,\n                            \"delay-on-touch-only\": !0,\n                            disabled: !e.isAllowSort,\n                            \"drag-class\": \"drag-item\",\n                            \"ghost-class\": \"ghost-item\"\n                        },\n                        model: {\n                            value: e.tabs,\n                            callback: function(t) {\n                                e.tabs = t\n                            },\n                            expression: \"tabs\"\n                        }\n                    }, e._l(e.tabs, (function(i, n) {\n                        return t(\"li\", {\n                            key: n,\n                            staticClass: \"item\",\n                            class: e.itemStyle(n),\n                            on: {\n                                click: function(t) {\n                                    return e.itemClick(i)\n                                }\n                            }\n                        }, [t(\"div\", {\n                            staticClass: \"clickable flex items-center justify-center gap-1\"\n                        }, [t(\"span\", {\n                            staticClass: \"text-xs absolute left-3 transition-all\",\n                            style: {\n                                left: e.isShowKeyboardShortcuts ? \"12px\" : \"-20px\"\n                            }\n                        }, [e._v(e._s(n + 1))]), e._v(\" \"), t(\"span\", [e._v(e._s(i.title))]), e._v(\" \"), e.profileUpdateFailedURLs.length > 0 && Lg.profiles() === i.title ? t(\"hint\", {\n                            attrs: {\n                                hint: \"At least one profile failed to update while dashboard is closed.\",\n                                position: \"right\"\n                            }\n                        }, [t(\"span\", {\n                            staticClass: \"icon text-sm text-[color:var(--proxy-item-latency-offline-c)]\"\n                        }, [e._v(\"error\")])]) : e._e()], 1)])\n                    })), 0), e._v(\" \"), t(\"run-time-view\", {\n                        staticClass: \"running-time\",\n                        attrs: {\n                            \"start-time\": e.startTime\n                        }\n                    }), e._v(\" \"), e.isAllowSort ? t(\"div\", {\n                        staticClass: \"stop-btn\",\n                        on: {\n                            click: function(t) {\n                                e.isAllowSort = !1\n                            }\n                        }\n                    }, [e._v(\"\\n    \" + Lg.stopSorting() +\"\\n  \")]) : e._e()], 1)\n                }), [], !1, null, \"149ea1bd\", null).exports;\n\n                function q(e, t) {\n                    var i = Object.keys(e);\n                    if (Object.getOwnPropertySymbols) {\n                        var n = Object.getOwnPropertySymbols(e);\n                        t && (n = n.filter((function(t) {\n                            return Object.getOwnPropertyDescriptor(e, t).enumerable\n                        }))), i.push.apply(i, n)\n                    }\n                    return i\n                }\n\n                function Z(e) {\n                    for (var t = 1; t < arguments.length; t++) {\n                        var i = null != arguments[t] ? arguments[t] : {};\n                        t % 2 ? q(Object(i), !0).forEach((function(t) {\n                            r()(e, t, i[t])\n                        })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(i)) : q(Object(i)).forEach((function(t) {\n                            Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(i, t))\n                        }))\n                    }\n                    return e\n                }\n                const G = {\n                        props: [],\n                        data: function() {\n                            return {\n                                isWinMax: !1,\n                                isPinned: !1,\n                                isFullScreen: !1\n                            }\n                        },\n                        computed: Z(Z({}, (0, g.mapState)({\n                            mode: function(e) {\n                                return e.app.mode\n                            },\n                            updateDownloadProgress: function(e) {\n                                return e.app.updateDownloadProgress\n                            },\n                            isSystemProxyOn: function(e) {\n                                return e.app.isSystemProxyOn\n                            },\n                            isMixinEnable: function(e) {\n                                return e.app.isMixinEnable\n                            },\n                            isTunEnable: function(e) {\n                                return e.app.isTunEnable\n                            }\n                        })), {}, {\n                            percent: function() {\n                                return this.updateDownloadProgress ? 100 * this.updateDownloadProgress : 0\n                            },\n                            capMode: function() {\n                                return f().capitalize(this.mode)\n                            },\n                            titleText: function() {\n                                var e;\n                                return null != this && null !== (e = this.settings) && void 0 !== e && e.titleBarText ? this.settings.titleBarText.replace(\"%mode%\", this.mode).replace(\"%Mode%\", this.capMode).replace(\"%tun%\", this.isTunEnable ? \"On\" : \"Off\").replace(\"%systemProxy%\", this.isSystemProxyOn ? \"On\" : \"Off\").replace(\"%mixin%\", this.isMixinEnable ? \"On\" : \"Off\").replace(/%tun\\?(.+?)\\:(.+?)%/, \"\".concat(this.isTunEnable ? \"$1\" : \"$2\")).replace(/%systemProxy\\?(.+?)\\:(.+?)%/, \"\".concat(this.isSystemProxyOn ? \"$1\" : \"$2\")).replace(/%mixin\\?(.+?)\\:(.+?)%/, \"\".concat(this.isMixinEnable ? \"$1\" : \"$2\")) : \"\"\n                            }\n                        }),\n                        methods: {\n                            closeApp: function() {\n                                y.ipcRenderer.invoke(\"app\", \"quit\")\n                            },\n                            miniApp: function() {\n                                y.ipcRenderer.invoke(\"window\", \"minimize\")\n                            },\n                            maxApp: function() {\n                                if (this.isFullScreen) y.ipcRenderer.invoke(\"window\", \"setFullScreen\", !1);\n                                else {\n                                    var e = this.isWinMax ? \"unmaximize\" : \"maximize\";\n                                    y.ipcRenderer.invoke(\"window\", e)\n                                }\n                            },\n                            pinApp: function() {\n                                this.isPinned = !this.isPinned, y.ipcRenderer.invoke(\"window\", \"setAlwaysOnTop\", this.isPinned), _.Z.put(W.Z.IS_PIN_ENABLED, this.isPinned)\n                            }\n                        },\n                        mounted: function() {\n                            var e = this;\n                            return d()(u().mark((function t() {\n                                var i;\n                                return u().wrap((function(t) {\n                                    for (;;) switch (t.prev = t.next) {\n                                        case 0:\n                                            return i = function() {\n                                                var t = d()(u().mark((function t() {\n                                                    return u().wrap((function(t) {\n                                                        for (;;) switch (t.prev = t.next) {\n                                                            case 0:\n                                                                return t.next = 2, y.ipcRenderer.invoke(\"window\", \"isMaximized\");\n                                                            case 2:\n                                                                e.isWinMax = t.sent;\n                                                            case 3:\n                                                            case \"end\":\n                                                                return t.stop()\n                                                        }\n                                                    }), t)\n                                                })));\n                                                return function() {\n                                                    return t.apply(this, arguments)\n                                                }\n                                            }(), y.ipcRenderer.on(\"window-event\", function() {\n                                                var t = d()(u().mark((function t(n, o) {\n                                                    return u().wrap((function(t) {\n                                                        for (;;) switch (t.prev = t.next) {\n                                                            case 0:\n                                                                if (\"maximize\" === o ? e.isWinMax = true : \"unmaximize\" === o ? e.isWinMax = false : \"enter-full-screen\" === o ? e.isFullScreen = true : \"leave-full-screen\" === o && (e.isFullScreen = false), \"show\" !== o) {\n                                                                    /** @type {number} */\n                                                                    t.next = 4;\n                                                                    break\n                                                                }\n                                                                return t.next = 4, i();\n                                                            case 4:\n                                                            case \"end\":\n                                                                return t.stop()\n                                                        }\n                                                    }), t)\n                                                })));\n                                                return function(e, i) {\n                                                    return t.apply(this, arguments)\n                                                }\n                                            }()), e.isPinned = _.Z.get(W.Z.IS_PIN_ENABLED) || !1, y.ipcRenderer.invoke(\"window\", \"setAlwaysOnTop\", e.isPinned), t.next = 6, i();\n                                        case 6:\n                                        case \"end\":\n                                            return t.stop()\n                                    }\n                                }), t)\n                            })))()\n                        }\n                    },\n                    Y = G;\n                i(56520);\n                const Q = (0, M.Z)(Y, (function() {\n                    var e = this,\n                        t = e._self._c;\n                    return t(\"div\", {\n                        staticClass: \"main relative\",\n                        style: {\n                            color: [\"dark\"].includes(e.theme) ? \"white\" : \"black\"\n                        }\n                    }, [t(\"div\", {\n                        staticClass: \"empty\"\n                    }, [t(\"div\", {\n                        staticClass: \"top\"\n                    }, [t(\"div\", {\n                        staticClass: \"left\",\n                        style: {\n                            width: e.percent + \"%\"\n                        }\n                    }), e._v(\" \"), t(\"div\", {\n                        staticClass: \"right\"\n                    })]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"bottom\"\n                    })]), e._v(\" \"), t(\"span\", {\n                        staticClass: \"fixed left-1/2 -translate-x-1/2 text-xs whitespace-pre\"\n                    }, [e._v(\"\\n    \" + e._s(e.titleText) + \"\\n  \")]), e._v(\" \"), !e.isWindows && !e.isLinux || e.isFullScreen ? e._e() : t(\"div\", {\n                        staticClass: \"clickable close hover:bg-[color:var(--status-close-hover)]\",\n                        style: {\n                            color: e.isPinned ? \"#0C7D9D\" : \"\"\n                        },\n                        on: {\n                            click: e.pinApp\n                        }\n                    }, [t(\"span\", {\n                        staticClass: \"icon text-sm\"\n                    }, [e._v(\"push_pin\")])]), e._v(\" \"), !e.isWindows && !e.isLinux || e.isFullScreen ? e._e() : t(\"div\", {\n                        staticClass: \"clickable close hover:bg-[color:var(--status-close-hover)]\",\n                        on: {\n                            click: e.miniApp\n                        }\n                    }, [t(\"span\", {\n                        staticClass: \"icon text-sm -translate-y-1\"\n                    }, [e._v(\"minimize\")])]), e._v(\" \"), e.isWindows || e.isLinux ? t(\"div\", {\n                        staticClass: \"clickable close hover:bg-[color:var(--status-close-hover)]\",\n                        on: {\n                            click: e.maxApp\n                        }\n                    }, [e.isWinMax || e.isFullScreen ? t(\"span\", {\n                        staticClass: \"icon text-sm\"\n                    }, [e._v(\"close_fullscreen\")]) : t(\"span\", {\n                        staticClass: \"icon text-sm\"\n                    }, [e._v(\"check_box_outline_blank\")])]) : e._e(), e._v(\" \"), !e.isWindows && !e.isLinux || e.isFullScreen ? e._e() : t(\"div\", {\n                        staticClass: \"clickable close hover:bg-[#ff5050d7]\",\n                        on: {\n                            click: e.closeApp\n                        }\n                    }, [t(\"span\", {\n                        staticClass: \"icon text-sm\"\n                    }, [e._v(\"close\")])])])\n                }), [], !1, null, \"65878d23\", null).exports;\n                var X = i(32081),\n                    J = i.n(X),\n                    ee = i(86173),\n                    te = (i(22037), i(57147)),\n                    ie = i.n(te),\n                    ne = i(71017),\n                    oe = i.n(ne),\n                    se = i(54387),\n                    re = i.n(se),\n                    ae = (i(71893), i(11442)),\n                    le = i.n(ae);\n                const ce = require(\"marked\");\n                require(\"util\");\n                var de = i(72378),\n                    he = i(8369),\n                    ue = i(97520),\n                    ge = i(59273),\n                    pe = i(10870),\n                    fe = i(15208),\n                    me = i(97495);\n\n                function ve() {\n                    return _e.apply(this, arguments)\n                }\n\n                function _e() {\n                    return _e = d()(u().mark((function e() {\n                        var t, i, n;\n                        return u().wrap((function(e) {\n                            for (;;) switch (e.prev = e.next) {\n                                case 0:\n                                    if (t = ge.Z.state.app.settings.innerServerPort, !(0, he.wi)(t)) {\n                                        e.next = 5;\n                                        break\n                                    }\n                                    i = t, e.next = 8;\n                                    break;\n                                case 5:\n                                    return e.next = 7, me();\n                                case 7:\n                                    i = e.sent;\n                                case 8:\n                                    (n = new fe).use(function() {\n                                        var e = d()(u().mark((function e(t) {\n                                            var i, n, o;\n                                            return u().wrap((function(e) {\n                                                for (;;) switch (e.prev = e.next) {\n                                                    case 0:\n                                                        i = ge.Z.state.app.settings.pacContentText, n = void 0 === i ? pe.Z : i, /\\/pac$/.test(t.path) ? (o = ge.Z.getters.mixedPort) && (t.set(\"content-type\", \"application/x-ns-proxy-autoconfig\"), t.body = n.replace(/%mixed-port%/g, o)) : t.res.statusCode = 404;\n                                                    case 2:\n                                                    case \"end\":\n                                                        return e.stop()\n                                                }\n                                            }), e)\n                                        })));\n                                        return function(t) {\n                                            return e.apply(this, arguments)\n                                        }\n                                    }()), n.listen(i, \"127.0.0.1\"), ge.Z.commit(\"SET_INNER_SERVER_PORT\", {\n                                        port: i\n                                    });\n                                case 12:\n                                case \"end\":\n                                    return e.stop()\n                            }\n                        }), e)\n                    }))), _e.apply(this, arguments)\n                }\n                var be, we, ye = i(419),\n                    Ce = i(41808),\n                    xe = i.n(Ce),\n                    Se = i(19102),\n                    ke = (be = d()(u().mark((function e(t) {\n                        var i, n, o;\n                        return u().wrap((function(e) {\n                            for (;;) switch (e.prev = e.next) {\n                                case 0:\n                                    return i = [\"-dns\", t.length > 0 ? t.join(\",\") : \"reset\"], e.next = 3, (0, Se.p)(i);\n                                case 3:\n                                    return n = e.sent, o = n.success, e.abrupt(\"return\", o);\n                                case 6:\n                                case \"end\":\n                                    return e.stop()\n                            }\n                        }), e)\n                    }))), function(e) {\n                        return be.apply(this, arguments)\n                    }),\n                    Le = (we = d()(u().mark((function e() {\n                        var t, i, n, o;\n                        return u().wrap((function(e) {\n                            for (;;) switch (e.prev = e.next) {\n                                case 0:\n                                    return t = [\"-dns\", \"query\"], e.next = 3, (0, Se.p)(t);\n                                case 3:\n                                    if (i = e.sent, n = i.success, o = i.output, !n) {\n                                        e.next = 9;\n                                        break\n                                    }\n                                    if (!/.+?=(.+?);/.test(o)) {\n                                        e.next = 9;\n                                        break\n                                    }\n                                    return e.abrupt(\"return\", RegExp.$1.split(\",\").filter((function(e) {\n                                        return xe().isIP(e)\n                                    })));\n                                case 9:\n                                    return e.abrupt(\"return\", []);\n                                case 10:\n                                case \"end\":\n                                    return e.stop()\n                            }\n                        }), e)\n                    }))), function() {\n                        return we.apply(this, arguments)\n                    }),\n                    Ne = i(84695),\n                    De = i(251),\n                    Ie = (i(51792), i(27458)),\n                    Ee = i(58511);\n\n                function Te(e, t) {\n                    var i = \"undefined\" != typeof Symbol && e[Symbol.iterator] || e[\"@@iterator\"];\n                    if (!i) {\n                        if (Array.isArray(e) || (i = function(e, t) {\n                                if (!e) return;\n                                if (\"string\" == typeof e) return Me(e, t);\n                                var i = Object.prototype.toString.call(e).slice(8, -1);\n                                \"Object\" === i && e.constructor && (i = e.constructor.name);\n                                if (\"Map\" === i || \"Set\" === i) return Array.from(e);\n                                if (\"Arguments\" === i || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)) return Me(e, t)\n                            }(e)) || t && e && \"number\" == typeof e.length) {\n                            i && (e = i);\n                            var n = 0,\n                                o = function() {};\n                            return {\n                                s: o,\n                                n: function() {\n                                    return n >= e.length ? {\n                                        done: !0\n                                    } : {\n                                        done: !1,\n                                        value: e[n++]\n                                    }\n                                },\n                                e: function(e) {\n                                    throw e\n                                },\n                                f: o\n                            }\n                        }\n                        throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")\n                    }\n                    var s, r = !0,\n                        a = !1;\n                    return {\n                        s: function() {\n                            i = i.call(e)\n                        },\n                        n: function() {\n                            var e = i.next();\n                            return r = e.done, e\n                        },\n                        e: function(e) {\n                            a = !0, s = e\n                        },\n                        f: function() {\n                            try {\n                                r || null == i.return || i.return()\n                            } finally {\n                                if (a) throw s\n                            }\n                        }\n                    }\n                }\n\n                function Me(e, t) {\n                    (null == t || t > e.length) && (t = e.length);\n                    for (var i = 0, n = new Array(t); i < t; i++) n[i] = e[i];\n                    return n\n                }\n\n                function Ae(e, t) {\n                    var i = Object.keys(e);\n                    if (Object.getOwnPropertySymbols) {\n                        var n = Object.getOwnPropertySymbols(e);\n                        t && (n = n.filter((function(t) {\n                            return Object.getOwnPropertyDescriptor(e, t).enumerable\n                        }))), i.push.apply(i, n)\n                    }\n                    return i\n                }\n\n                function Oe(e) {\n                    for (var t = 1; t < arguments.length; t++) {\n                        var i = null != arguments[t] ? arguments[t] : {};\n                        t % 2 ? Ae(Object(i), !0).forEach((function(t) {\n                            r()(e, t, i[t])\n                        })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(i)) : Ae(Object(i)).forEach((function(t) {\n                            Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(i, t))\n                        }))\n                    }\n                    return e\n                }\n                var Pe = i(24793),\n                    Re = (i(56796), i(75110)),\n                    Fe = i(36267),\n                    Be = i(97495),\n                    Ve = i(48567),\n                    We = i(63878)(\"./service_\".concat(process.platform)),\n                    He = We.statusService,\n                    ze = We.status;\n                ee.transports.console.format = function(e) {\n                    return e.data\n                }, ee.transports.file.format = function(e) {\n                    return 'time=\"'.concat(e.date, '\" level=').concat(e.level, ' msg=\"').concat(e.data, '\"')\n                }, ce.marked.use({\n                    renderer: {\n                        text: function(e) {\n                            return /#(\\d+)/.test(e) ? e.replace(/#(\\d+)/g, '<a href=\"https://github.com/Fndroid/clash_for_windows_pkg/issues/'.concat(RegExp.$1, '\">#').concat(RegExp.$1, \"</a>\")) : e\n                        }\n                    }\n                });\n                const je = {\n                    name: \"landing-page\",\n                    components: {\n                        MainMenu: K,\n                        StatusBar: Q\n                    },\n                    data: function() {\n                        return {\n                            clash: null,\n                            userPath: \"\",\n                            clashRestfulPort: null,\n                            clashRestfulSecret: \"\",\n                            newVersionInfo: {},\n                            shwoError: !1,\n                            showStartup: !1,\n                            portableMode: !1,\n                            startTime: null,\n                            tun2socks: null,\n                            pkgDownloadProgress: 0,\n                            networkInterfaces: [],\n                            configFileWatcher: null,\n                            profileUpdateFailed: {},\n                            profileUpdateFailedURLs: [],\n                            shortcuts: {},\n                            menuKeyboardClickTimes: 0,\n                            isUserDNSChanged: !1,\n                            clashMixedPort: -1\n                        }\n                    },\n                    watch: {\n                        $route: function(e) {\n                            var t = e.path;\n                            void 0 !== t && this.setCurrentRoutePath({\n                                path: t\n                            }), \"/home/server\" === t && (this.profileUpdateFailedURLs = [])\n                        },\n                        isWindowShow: {\n                            immediate: !0,\n                            handler: function(e) {\n                                e ? R.ZP.resumeAll() : R.ZP.pauseAll()\n                            }\n                        },\n                        clashMixedPort: function(e) {\n                            const Lg = new Language(modifyState.language);\n                            return d()(u().mark((function t() {\n                                var i;\n                                return u().wrap((function(t) {\n                                    for (;;) switch (t.prev = t.next) {\n                                        case 0:\n                                            if (0 !== e) {\n                                                t.next = 5;\n                                                break\n                                            }\n                                            return t.next = 3, y.ipcRenderer.invoke(\"window\", \"isVisible\");\n                                        case 3:\n                                            i = t.sent, (0, he.vC)({\n                                                type: \"error\",\n                                                message: \"It seems that Port is not listening, you might need to set a new port.\",\n                                                buttons: [i ? Lg.ok() : \"Open dashboard\", Lg.cancel()]\n                                            }).then((function(e) {\n                                                var t = e.response;\n                                                i || 0 !== t || y.ipcRenderer.invoke(\"window-control\", \"show\")\n                                            }));\n                                        case 5:\n                                        case \"end\":\n                                            return t.stop()\n                                    }\n                                }), t)\n                            })))()\n                        },\n                        mixedPort: function() {\n                            ee.info(\"mixed-port changed\"), this.resetSystemProxySettings()\n                        },\n                        controllerPort: function() {\n                            ee.info(\"external controller port changed\")\n                        },\n                        finalInterfaceName: function(e) {\n                            ee.info(\"new outbound interface: \".concat(e)), this.refreshProfile()\n                        },\n                        clashStatus: ($e = d()(u().mark((function e(t) {\n                            const Lg = new Language(modifyState.language);\n                            return u().wrap((function(e) {\n                                for (;;) switch (e.prev = e.next) {\n                                    case 0:\n                                        if (ee.info(\"clash status change to [\".concat(t === b.Z.CONNECTED ? Lg.connected() : \"断开连接\", \"]\")), y.ipcRenderer.send(\"clash-core-status-change\", t === b.Z.CONNECTED ? 0 : 1), t !== b.Z.CONNECTED) {\n                                            e.next = 7;\n                                            break\n                                        }\n                                        return this.setIsLaunching({\n                                            isLaunching: !1\n                                        }), e.next = 6, this.refreshProfile().catch((function(e) {}));\n                                    case 6:\n                                        this.addProfileRefreshTimes({\n                                            times: 1\n                                        });\n                                    case 7:\n                                    case \"end\":\n                                        return e.stop()\n                                }\n                            }), e, this)\n                        }))), function(e) {\n                            return $e.apply(this, arguments)\n                        }),\n                        clashAxiosClient: function(e) {\n                            var t = this;\n                            ee.info(\"clash axios client changed\"), y.ipcRenderer.send(\"clash-core-info\", {\n                                port: this.controllerPort,\n                                secret: this.secret\n                            }), e && (e.interceptors.request.use((function(e) {\n                                return t.addClashAxiosFlyingRequestCount({\n                                    count: 1\n                                }), e\n                            }), (function(e) {\n                                return Promise.reject(e)\n                            })), e.interceptors.response.use((function(e) {\n                                return t.addClashAxiosFlyingRequestCount({\n                                    count: -1\n                                }), e\n                            }), (function(e) {\n                                return t.addClashAxiosFlyingRequestCount({\n                                    count: -1\n                                }), Promise.reject(e)\n                            })))\n                        },\n                        status: {\n                            immediate: !0,\n                            handler: function(e) {\n                                this.updateTrayIcon(), y.ipcRenderer.send(\"system-proxy-changed\", e === b.r.SYSTEM_PROXY)\n                            }\n                        },\n                        \"settings.hideTrayIcon\": {\n                            immediate: !0,\n                            handler: function(e) {\n                                var t = this;\n                                return d()(u().mark((function i() {\n                                    return u().wrap((function(i) {\n                                        for (;;) switch (i.prev = i.next) {\n                                            case 0:\n                                                return i.next = 2, y.ipcRenderer.invoke(\"tray-create-destroy\", e ? \"destroy\" : \"create\");\n                                            case 2:\n                                                t.updateTrayIcon();\n                                            case 3:\n                                            case \"end\":\n                                                return i.stop()\n                                        }\n                                    }), i)\n                                })))()\n                            }\n                        },\n                        \"settings.trayProxiesStyle\": {\n                            immediate: !0,\n                            handler: function(e) {\n                                return d()(u().mark((function t() {\n                                    return u().wrap((function(t) {\n                                        for (;;) switch (t.prev = t.next) {\n                                            case 0:\n                                                return t.next = 2, y.ipcRenderer.invoke(\"tray-proxies-style\", e || 0);\n                                            case 2:\n                                            case \"end\":\n                                                return t.stop()\n                                        }\n                                    }), t)\n                                })))()\n                            }\n                        },\n                        \"settings.showTrayProxyDelayIndicator\": {\n                            immediate: !0,\n                            handler: function(e) {\n                                return d()(u().mark((function t() {\n                                    return u().wrap((function(t) {\n                                        for (;;) switch (t.prev = t.next) {\n                                            case 0:\n                                                return t.next = 2, y.ipcRenderer.invoke(\"tray-proxies-icon\", e || !1);\n                                            case 2:\n                                            case \"end\":\n                                                return t.stop()\n                                        }\n                                    }), t)\n                                })))()\n                            }\n                        },\n                        \"settings.useModeIcons\": function(e) {\n                            this.updateTrayIcon()\n                        },\n                        \"settings.iconDefault\": function(e) {\n                            this.updateTrayIcon()\n                        },\n                        \"settings.iconSystemProxy\": function(e) {\n                            this.updateTrayIcon()\n                        },\n                        fontFamily: {\n                            immediate: !0,\n                            handler: function(e) {\n                                document.body.style.fontFamily = e\n                            }\n                        },\n                        \"settings.shortcutSystemProxy\": function(e, t) {\n                            var i = this;\n                            this.rebindShortcut(e, t, d()(u().mark((function e() {\n                                var t;\n                                return u().wrap((function(e) {\n                                    for (;;) switch (e.prev = e.next) {\n                                        case 0:\n                                            return t = !i.isSystemProxyOn, e.next = 3, i.$setSystemProxy(t, i.confData);\n                                        case 3:\n                                            if (!e.sent) {\n                                                e.next = 5;\n                                                break\n                                            }\n                                            i.setIsSystemProxyOn({\n                                                isOn: t\n                                            });\n                                        case 5:\n                                        case \"end\":\n                                            return e.stop()\n                                    }\n                                }), e)\n                            }))))\n                        },\n                        \"settings.shortcutTun\": function(e, t) {\n                            var i = this;\n                            this.rebindShortcut(e, t, d()(u().mark((function e() {\n                                var t;\n                                return u().wrap((function(e) {\n                                    for (;;) switch (e.prev = e.next) {\n                                        case 0:\n                                            t = !i.isTunEnable, i.chagneIsTunEnable({\n                                                isTun: t\n                                            }), i.refreshProfile(), (0, he.c0)(\"Shortcut\", \"TUN Mode: \".concat(t ? \"On\" : \"Off\"));\n                                        case 4:\n                                        case \"end\":\n                                            return e.stop()\n                                    }\n                                }), e)\n                            }))))\n                        },\n                        \"settings.shortcutMixin\": function(e, t) {\n                            var i = this;\n                            this.rebindShortcut(e, t, (function() {\n                                var e = !i.isMixinEnable;\n                                i.changeIsMixinEnable({\n                                    isMixin: e\n                                }), i.refreshProfile(), (0, he.c0)(\"Shortcut\", \"Mixin: \".concat(e ? \"On\" : \"Off\"))\n                            }))\n                        },\n                        \"settings.shortcutGlobalMode\": function(e, t) {\n                            var i = this;\n                            this.rebindShortcut(e, t, d()(u().mark((function e() {\n                                return u().wrap((function(e) {\n                                    for (;;) switch (e.prev = e.next) {\n                                        case 0:\n                                            return e.next = 2, i.switchMode(\"global\");\n                                        case 2:\n                                        case \"end\":\n                                            return e.stop()\n                                    }\n                                }), e)\n                            }))))\n                        },\n                        \"settings.shortcutRuleMode\": function(e, t) {\n                            var i = this;\n                            this.rebindShortcut(e, t, d()(u().mark((function e() {\n                                return u().wrap((function(e) {\n                                    for (;;) switch (e.prev = e.next) {\n                                        case 0:\n                                            return e.next = 2, i.switchMode(\"rule\");\n                                        case 2:\n                                        case \"end\":\n                                            return e.stop()\n                                    }\n                                }), e)\n                            }))))\n                        },\n                        \"settings.shortcutDirectMode\": function(e, t) {\n                            var i = this;\n                            this.rebindShortcut(e, t, d()(u().mark((function e() {\n                                return u().wrap((function(e) {\n                                    for (;;) switch (e.prev = e.next) {\n                                        case 0:\n                                            return e.next = 2, i.switchMode(\"direct\");\n                                        case 2:\n                                        case \"end\":\n                                            return e.stop()\n                                    }\n                                }), e)\n                            }))))\n                        },\n                        \"settings.shortcutScriptMode\": function(e, t) {\n                            var i = this;\n                            this.rebindShortcut(e, t, d()(u().mark((function e() {\n                                return u().wrap((function(e) {\n                                    for (;;) switch (e.prev = e.next) {\n                                        case 0:\n                                            return e.next = 2, i.switchMode(\"script\");\n                                        case 2:\n                                        case \"end\":\n                                            return e.stop()\n                                    }\n                                }), e)\n                            }))))\n                        },\n                        \"settings.shortcutRunTrayScript\": function(e, t) {\n                            this.rebindShortcut(e, t, this.runTrayScript)\n                        },\n                        \"settings.shortcutShowHideDashboard\": function(e, t) {\n                            this.rebindShortcut(e, t, (function() {\n                                y.ipcRenderer.invoke(\"window-control\", \"show-or-hide\")\n                            }))\n                        },\n                        \"settings.systemProxyTypeIndex\": function() {\n                            this.resetSystemProxySettings()\n                        },\n                        \"settings.pacContentText\": function() {\n                            this.resetSystemProxySettings()\n                        },\n                        \"settings.bypassText\": function() {\n                            this.resetSystemProxySettings()\n                        },\n                        \"settings.specifyHttpProxyProtocol\": function() {\n                            this.resetSystemProxySettings()\n                        },\n                        \"settings.staticSystemProxyHost\": function() {\n                            this.resetSystemProxySettings()\n                        },\n                        \"settings.enableDHCPServer\": function(e) {\n                            const Lg = new Language(modifyState.language);\n                            e ? this.setMenuItems({\n                                items: [].concat(l()(this.menuItems), [{\n                                    title: Lg.router(),\n                                    path: \"/home/router\"\n                                }])\n                            }) : this.setMenuItems({\n                                items: this.menuItems.filter((function(e) {\n                                    return \"Router\" !== e.title\n                                }))\n                            })\n                        },\n                        isMixinEnable: function(e) {\n                            this.refreshProfile(), this.updateTrayIcon(), y.ipcRenderer.send(\"mixin-changed\", e)\n                        },\n                        \"settings.mixinText\": function() {\n                            var e = this.settings.mixinType;\n                            this.isMixinEnable && 0 === e && this.refreshProfile()\n                        },\n                        \"settings.mixinCode\": function() {\n                            var e = this.settings.mixinType;\n                            this.isMixinEnable && 1 === e && this.refreshProfile()\n                        },\n                        \"settings.mixinType\": function() {\n                            this.refreshProfile()\n                        },\n                        \"settings.unsafeURLsText\": {\n                            immediate: !0,\n                            handler: function(e) {\n                                var t = [];\n                                try {\n                                    var i = le().parse(e);\n                                    t = (null == i ? void 0 : i.urls) || []\n                                } catch (e) {}\n                                y.ipcRenderer.send(\"set-allow-unsafe-urls\", t)\n                            }\n                        },\n                        \"settings.clashAuthentication\": function() {\n                            this.refreshProfile()\n                        },\n                        isTunEnable: function(e) {\n                            this.updateTrayIcon(), this.refreshProfile(), y.ipcRenderer.send(\"tun-changed\", e)\n                        },\n                        tunSettings: function(e) {\n                            this.isTunEnable && this.refreshProfile()\n                        },\n                        isAppSuspend: function(e) {\n                            e || (this.tun2socks && (ee.info(\"system resume, restart tun2socks\"), this.killSpawned(this.tun2socks), this.tun2socks = null, this.spawnTun2socks()), this.refreshProfile().then((function(e) {})).catch((function(e) {})))\n                        },\n                        innerServerPort: function(e) {\n                            console.log(\"inner port:\", e), this.resetSystemProxySettings()\n                        },\n                        mode: {\n                            handler: (Ue = d()(u().mark((function e(t) {\n                                var i, n, o, s, r, a;\n                                return u().wrap((function(e) {\n                                    for (;;) switch (e.prev = e.next) {\n                                        case 0:\n                                            if (this.updateTrayIcon(), y.ipcRenderer.send(\"mode-changed\", t), void 0 === (i = this.settings.connMode) || !i) {\n                                                e.next = 6;\n                                                break\n                                            }\n                                            return e.next = 6, this.clashAxiosClient.delete(\"connections\");\n                                        case 6:\n                                            n = this.profiles, o = n.files, s = void 0 === o ? [] : o, r = n.index, (a = void 0 === r ? -1 : r) >= 0 && s.length > a && this.changeProfile({\n                                                index: a,\n                                                profile: Oe(Oe({}, s[a]), {}, {\n                                                    mode: t\n                                                })\n                                            });\n                                        case 8:\n                                        case \"end\":\n                                            return e.stop()\n                                    }\n                                }), e, this)\n                            }))), function(e) {\n                                return Ue.apply(this, arguments)\n                            }),\n                            immediate: !0\n                        }\n                    },\n                    computed: Oe(Oe(Oe({}, (0, g.mapState)({\n                        pfs: function(e) {\n                            return e.app.profiles\n                        },\n                        devMode: function(e) {\n                            return e.app.isDevMode\n                        },\n                        profiles: function(e) {\n                            return e.app.profiles\n                        },\n                        clashPath: function(e) {\n                            return e.app.clashPath\n                        },\n                        clashStatus: function(e) {\n                            return e.app.clashStatus\n                        },\n                        confData: function(e) {\n                            return e.app.confData\n                        },\n                        profilesPath: function(e) {\n                            return e.app.profilesPath\n                        },\n                        isMixinEnable: function(e) {\n                            return e.app.isMixinEnable\n                        },\n                        isTunEnable: function(e) {\n                            return e.app.isTunEnable\n                        },\n                        status: function(e) {\n                            return e.app.status\n                        },\n                        clashAxiosFlyingRequestCount: function(e) {\n                            return e.app.clashAxiosFlyingRequestCount\n                        },\n                        logFilePath: function(e) {\n                            return e.app.logFilePath\n                        },\n                        shouldUseDarkTheme: function(e) {\n                            return e.app.shouldUseDarkTheme\n                        },\n                        detectedInterfaceName: function(e) {\n                            return e.app.detectedInterfaceName\n                        },\n                        isAppSuspend: function(e) {\n                            return e.app.isAppSuspend\n                        },\n                        innerServerPort: function(e) {\n                            return e.app.innerServerPort\n                        },\n                        isLocalMode: function(e) {\n                            return e.app.isLocalMode\n                        },\n                        isWindowShow: function(e) {\n                            return e.app.isWindowShow\n                        },\n                        menuItems: function(e) {\n                            return e.app.menuItems\n                        },\n                        isSystemProxyOn: function(e) {\n                            return e.app.isSystemProxyOn\n                        },\n                        isSubViewShow: function(e) {\n                            return e.app.isSubViewShow\n                        },\n                        currentRoutePath: function(e) {\n                            return e.app.currentRoutePath\n                        },\n                        mode: function(e) {\n                            return e.app.mode\n                        },\n                        isSilentUpgraded: function(e) {\n                            return e.app.isSilentUpgraded\n                        },\n                        tunSettings: function(e) {\n                            return e.app.tunSettings\n                        },\n                        userDNS: function(e) {\n                            return e.app.userDNS\n                        }\n                    })), (0, g.mapGetters)([\"resourcesPath\", \"filesPath\", \"mixedPort\", \"controllerPort\", \"secret\", \"clashAxiosClient\", \"clashGotClient\", \"fontFamily\", \"clashBinaryPath\", \"menuItemsWithOrder\"])), {}, {\n                        finalInterfaceName: function() {\n                            var e = this.settings.interfaceName;\n                            return (void 0 === e ? \"\" : e) || this.detectedInterfaceName\n                        },\n                        statusHint: function() {\n                            const Lg = new Language(modifyState.language);\n                            return this.pkgDownloadProgress > 0 && this.pkgDownloadProgress < 1 ? \"Download progress: \".concat((100 * this.pkgDownloadProgress).toFixed(2), \"%\") : this.clashStatus === b.Z.CONNECTED ? Lg.connected() : this.clashStatus === b.Z.DISCONNECTED ? Lg.disconnected() : void 0\n                        },\n                        statusIcon: function() {\n                            return {\n                                \"clash-status-icon\": !0,\n                                \"clash-running\": this.clashStatus === b.Z.CONNECTED,\n                                \"clash-stopped\": this.clashStatus === b.Z.DISCONNECTED\n                            }\n                        }\n                    }),\n                    methods: Oe(Oe(Oe({}, (0, g.mapMutations)({\n                        setIsDevMode: \"SET_IS_DEV_MODE\",\n                        setConfData: \"SET_CONF_DATA\",\n                        changeProfile: \"CHANGE_PROFILE\",\n                        changeProfileIndex: \"CHANGE_PROFILES_INDEX\",\n                        setClashPath: \"SET_CLASH_PATH\",\n                        setClashStatus: \"SET_CLASH_STATUS\",\n                        loadProfiles: \"LOAD_PROFILES\",\n                        setProfilesPath: \"SET_PROFILES_PATH\",\n                        setLogFilePath: \"SET_LOG_FILE_PATH\",\n                        changeIsMixinEnable: \"CHANGE_IS_MIXIN_ENABLE\",\n                        chagneIsTunEnable: \"CHANGE_IS_TUN_ENABLE\",\n                        setExePath: \"SET_EXE_PATH\",\n                        appendError: \"APPEND_ERROR\",\n                        addClashAxiosFlyingRequestCount: \"ADD_AXIOS_FLYING_REQUEST_COUNT\",\n                        setShouldUseDarkTheme: \"SET_SHOULD_USE_DARK_THEME\",\n                        setDetectedInterfaceName: \"SET_DETECTED_INTERFACE_NAME\",\n                        setIsWindowShow: \"SET_IS_WINDOW_SHOW\",\n                        setIsAppSuspend: \"SET_IS_APP_SUSPEND\",\n                        setIsLocalMode: \"SET_IS_LOCAL_MODE\",\n                        setIsLaunching: \"SET_IS_LAUNCHING\",\n                        setMenuItems: \"SET_MENU_ITEMS\",\n                        setIsSystemProxyOn: \"SET_IS_SYSTEM_PROXY_ON\",\n                        setCurrentRoutePath: \"SET_CURRENT_ROUTE_PATH\",\n                        addProfileRefreshTimes: \"ADD_PROFILE_REFRESH_TIMES\",\n                        setCurrentProfilePayload: \"SET_CURRENT_PROFILE_PAYLOAD\",\n                        setIsSilentUpgraded: \"SET_IS_SILENT_UPGRADED\",\n                        setIsFirewallRuleExist: \"SET_IS_FIREWALL_RULE_EXIST\",\n                        setUserDNS: \"SET_USER_DNS\",\n                        setMatchedSSID: \"SET_MATCHED_SSID\"\n                    })), (0, g.mapActions)([\"setMode\"])), {}, {\n                        setSSIDOptions: function() {\n                            var e = this;\n                            return d()(u().mark((function t() {\n                                var i, n, o, s, r, a, l, c, h;\n                                return u().wrap((function(t) {\n                                    for (;;) switch (t.prev = t.next) {\n                                        case 0:\n                                            if (i = function() {\n                                                    var t = d()(u().mark((function t() {\n                                                        var i, n, o;\n                                                        return u().wrap((function(t) {\n                                                            for (;;) switch (t.prev = t.next) {\n                                                                case 0:\n                                                                    return i = _.Z.get(W.Z.IS_MIXIN) || !1, n = _.Z.get(W.Z.IS_TUN) || !1, o = _.Z.get(W.Z.SYSTEM_PROXY) || !1, e.changeIsMixinEnable({\n                                                                        isMixin: i\n                                                                    }), e.chagneIsTunEnable({\n                                                                        isTun: n\n                                                                    }), t.next = 7, e.$setSystemProxy(o, e.confData);\n                                                                case 7:\n                                                                    if (!t.sent) {\n                                                                        t.next = 9;\n                                                                        break\n                                                                    }\n                                                                    e.setIsSystemProxyOn({\n                                                                        isOn: o\n                                                                    });\n                                                                case 9:\n                                                                case \"end\":\n                                                                    return t.stop()\n                                                            }\n                                                        }), t)\n                                                    })));\n                                                    return function() {\n                                                        return t.apply(this, arguments)\n                                                    }\n                                                }(), t.prev = 1, e.setMatchedSSID({\n                                                    ssid: \"\"\n                                                }), n = (0, Ee.S)() || [], o = e.settings.ssidStrategyText, s = le().parse(o).strategy, ee.info(JSON.stringify({\n                                                    conns: n,\n                                                    ssidStrategy: s\n                                                }, null, 2)), !(r = n.find((function(e) {\n                                                    return e.SSID in s\n                                                })))) {\n                                                t.next = 24;\n                                                break\n                                            }\n                                            if (e.setMatchedSSID({\n                                                    ssid: r.SSID\n                                                }), !(a = s[r.SSID])) {\n                                                t.next = 22;\n                                                break\n                                            }\n                                            if (l = a.system, c = a.tun, \"boolean\" == typeof(h = a.mixin) && e.changeIsMixinEnable({\n                                                    isMixin: h\n                                                }), \"boolean\" == typeof c && e.chagneIsTunEnable({\n                                                    isTun: c\n                                                }), t.t0 = \"boolean\" == typeof l, !t.t0) {\n                                                t.next = 20;\n                                                break\n                                            }\n                                            return t.next = 19, e.$setSystemProxy(l, e.confData);\n                                        case 19:\n                                            t.t0 = t.sent;\n                                        case 20:\n                                            if (!t.t0) {\n                                                t.next = 22;\n                                                break\n                                            }\n                                            e.setIsSystemProxyOn({\n                                                isOn: l\n                                            });\n                                        case 22:\n                                            t.next = 25;\n                                            break;\n                                        case 24:\n                                            i();\n                                        case 25:\n                                            t.next = 30;\n                                            break;\n                                        case 27:\n                                            t.prev = 27, t.t1 = t.catch(1), ee.error(\"failed to set ssid options: \".concat(t.t1));\n                                        case 30:\n                                            return t.prev = 30, t.finish(30);\n                                        case 32:\n                                        case \"end\":\n                                            return t.stop()\n                                    }\n                                }), t, null, [\n                                    [1, 27, 30, 32]\n                                ])\n                            })))()\n                        },\n                        resetDNS: function() {\n                            if (this.isUserDNSChanged && (0, w.V5)()) try {\n                                var e = this.settings,\n                                    t = e.isUsingResetDNSServers,\n                                    i = void 0 !== t && t,\n                                    n = e.resetDNSServers;\n                                i ? ke(void 0 === n ? [] : n) : null !== this.userDNS && ke(this.userDNS)\n                            } catch (e) {\n                                ee.info(\"failed to reset dns with error: \".concat(e))\n                            }\n                        },\n                        breakConnections: function(e) {\n                            var t = this;\n                            return d()(u().mark((function i() {\n                                var n, o, s, r, a, l, c, d, h, g;\n                                return u().wrap((function(i) {\n                                    for (;;) switch (i.prev = i.next) {\n                                        case 0:\n                                            if (n = t.settings.connProxy, 1 !== (o = void 0 === n ? 0 : n)) {\n                                                i.next = 29;\n                                                break\n                                            }\n                                            return i.next = 4, t.clashAxiosClient.get(\"connections\");\n                                        case 4:\n                                            if (s = i.sent, r = s.status, a = s.data, 200 !== r) {\n                                                i.next = 27;\n                                                break\n                                            }\n                                            l = a.connections, c = Te(void 0 === l ? [] : l), i.prev = 10, c.s();\n                                        case 12:\n                                            if ((d = c.n()).done) {\n                                                i.next = 19;\n                                                break\n                                            }\n                                            if (h = d.value, g = h.id, !h.chains.includes(e)) {\n                                                i.next = 17;\n                                                break\n                                            }\n                                            return i.next = 17, t.clashAxiosClient.delete(\"connections/\".concat(g));\n                                        case 17:\n                                            i.next = 12;\n                                            break;\n                                        case 19:\n                                            i.next = 24;\n                                            break;\n                                        case 21:\n                                            i.prev = 21, i.t0 = i.catch(10), c.e(i.t0);\n                                        case 24:\n                                            return i.prev = 24, c.f(), i.finish(24);\n                                        case 27:\n                                            i.next = 32;\n                                            break;\n                                        case 29:\n                                            if (2 !== o) {\n                                                i.next = 32;\n                                                break\n                                            }\n                                            return i.next = 32, t.clashAxiosClient.delete(\"connections\");\n                                        case 32:\n                                        case \"end\":\n                                            return i.stop()\n                                    }\n                                }), i, null, [\n                                    [10, 21, 24, 27]\n                                ])\n                            })))()\n                        },\n                        persistSelectedProxy: function() {\n                            var e = this;\n                            return d()(u().mark((function t() {\n                                var i, n, s, r, a, l;\n                                return u().wrap((function(t) {\n                                    for (;;) switch (t.prev = t.next) {\n                                        case 0:\n                                            if (!(e.pfs.index > -1)) {\n                                                t.next = 14;\n                                                break\n                                            }\n                                            if (!(n = null === (i = e.pfs.files) || void 0 === i ? void 0 : i[e.pfs.index])) {\n                                                t.next = 14;\n                                                break\n                                            }\n                                            return t.prev = 3, t.next = 6, e.clashAxiosClient.get(\"/proxies\");\n                                        case 6:\n                                            s = t.sent, r = s.data.proxies, a = void 0 === r ? {} : r, l = Object.entries(a).reduce((function(e, t) {\n                                                var i = o()(t, 2),\n                                                    n = (i[0], i[1]);\n                                                return \"Selector\" === n.type && e.push({\n                                                    name: n.name,\n                                                    now: n.now\n                                                }), e\n                                            }), []), e.changeProfile({\n                                                index: e.pfs.index,\n                                                profile: Oe(Oe({}, n), {}, {\n                                                    selected: l\n                                                })\n                                            }), t.next = 14;\n                                            break;\n                                        case 12:\n                                            t.prev = 12, t.t0 = t.catch(3);\n                                        case 14:\n                                        case \"end\":\n                                            return t.stop()\n                                    }\n                                }), t, null, [\n                                    [3, 12]\n                                ])\n                            })))()\n                        },\n                        runTrayScript: function() {\n                            this.settings.trayScriptManualRunTime = (new Date).getTime()\n                        },\n                        resetSystemProxySettings: Pe.debounce(d()(u().mark((function e() {\n                            return u().wrap((function(e) {\n                                for (;;) switch (e.prev = e.next) {\n                                    case 0:\n                                        if (!this.isSystemProxyOn) {\n                                            e.next = 3;\n                                            break\n                                        }\n                                        return e.next = 3, this.$setSystemProxy(!0, this.confData);\n                                    case 3:\n                                    case \"end\":\n                                        return e.stop()\n                                }\n                            }), e, this)\n                        }))), 500),\n                        updateTrayIcon: function() {\n                            (0, w.Kr)() && (console.log(\"updateTrayIcon\", this.$getTrayIcon(this.status === b.r.SYSTEM_PROXY || this.status === b.r.IS_TUN || this.status === b.r.IS_MIXIN, this.mode)), y.ipcRenderer.send(\"status-changed\", this.$getTrayIcon(this.status === b.r.SYSTEM_PROXY || this.status === b.r.IS_TUN || this.status === b.r.IS_MIXIN, this.mode)))\n                        },\n                        setFont: function(e) {\n                            document.body.style.fontFamily = e || '\"Microsoft Yahei\", \"PingFang SC\", \"system-ui\", 微软雅黑, \"TwemojiMozilla\"'\n                        },\n                        refreshProfile: function() {\n                            var e = this;\n                            return d()(u().mark((function t() {\n                                var n, s, r, a, c, h, g, p, f, m, v, _, b, y, C, x, S, k, L, N, D, I, E, T, M, A, O, P, R, F, B, V, W, H, z, j, U, $, K, q, Z, G, Y, Q, X, te, ne, se, re, ae, ce, de, ue, ge, pe, fe, me, ve, _e, be, we, ye, Ce, xe, Se, Le, Ne, De, Ie, Ee, Te, Me, Ae, Pe, Fe, Ve, We, He, ze, je, Ue, $e;\n                                return u().wrap((function(t) {\n                                    for (;;) switch (t.prev = t.next) {\n                                        case 0:\n                                            if (n = !1, s = null, \"\", a = e.profiles.index, h = !1, !((c = void 0 === a ? -1 : a) > -1)) {\n                                                t.next = 91;\n                                                break\n                                            }\n                                            if (ee.info(\"restore at index: \".concat(c)), g = e.profiles.files[c], r = oe().join(e.profilesPath, g.time), t.prev = 9, null !== (p = le().parse(ie().readFileSync(r, \"utf8\"), {\n                                                    prettyErrors: !0,\n                                                    strict: !1\n                                                }))) {\n                                                t.next = 13;\n                                                break\n                                            }\n                                            throw new Error(\"this profile could not be parsed!\");\n                                        case 13:\n                                            if (f = e.settings, m = f.mixinType, v = void 0 === m ? 0 : m, _ = f.mixinText, b = f.mixinCode, y = p, e.isTunEnable && (y = Oe(Oe({}, y), (0, he.Sr)(e.tunSettings))), !e.isMixinEnable) {\n                                                t.next = 29;\n                                                break\n                                            }\n                                            t.t0 = v, t.next = 0 === t.t0 ? 20 : 1 === t.t0 ? 22 : 29;\n                                            break;\n                                        case 20:\n                                            if (_) try {\n                                                C = le().parse(_), x = C.mixin, y = Oe(Oe({}, y), x)\n                                            } catch (e) {}\n                                            return t.abrupt(\"break\", 29);\n                                        case 22:\n                                            if (!b) {\n                                                t.next = 28;\n                                                break\n                                            }\n                                            return S = Re(b), k = g.url, L = void 0 === k ? \"\" : k, N = g.name, t.next = 27, S.parse({\n                                                content: y,\n                                                url: L,\n                                                name: N\n                                            }, {\n                                                axios: i(54387),\n                                                yaml: i(11442),\n                                                notify: function(e) {\n                                                    var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : \"\",\n                                                        i = !(arguments.length > 2 && void 0 !== arguments[2]) || arguments[2];\n                                                    (0, he.c0)(e, t, {\n                                                        silent: i\n                                                    })\n                                                }\n                                            });\n                                        case 27:\n                                            y = t.sent;\n                                        case 28:\n                                            return t.abrupt(\"break\", 29);\n                                        case 29:\n                                            if (I = (D = y).dns, E = void 0 === I ? {} : I, T = D[\"interface-name\"], M = D.tun, A = void 0 === M ? {} : M, O = E.enable, P = void 0 !== O && O, R = E.listen, F = A.enable, B = void 0 !== F && F, V = A[\"macOS-auto-detect-interface\"], W = void 0 !== V && V, H = A[\"auto-detect-interface\"], z = void 0 !== H && H, j = A[\"dns-hijack\"], U = void 0 === j ? [] : j, $ = A.stack, (0, w.IJ)() || !B || z || W) {\n                                                t.next = 40;\n                                                break\n                                            }\n                                            if (T) {\n                                                t.next = 40;\n                                                break\n                                            }\n                                            if (e.detectInterfaceName(), \"\" === e.finalInterfaceName) {\n                                                t.next = 39;\n                                                break\n                                            }\n                                            y = Oe(Oe({}, y), {}, {\n                                                \"interface-name\": e.finalInterfaceName\n                                            }), t.next = 40;\n                                            break;\n                                        case 39:\n                                            return t.abrupt(\"return\", {\n                                                success: !1,\n                                                message: Lg.tunModeEnableButIssue()\n                                            });\n                                        case 40:\n                                            if (!(0, w.Kr)()) {\n                                                t.next = 57;\n                                                break\n                                            }\n                                            if (B) {\n                                                t.next = 57;\n                                                break\n                                            }\n                                            K = !0;\n                                            try {\n                                                K = J().execSync(\"netsh interface show interface\", {\n                                                    windowsHide: !0\n                                                }).toString().includes(\"cfw-tap\")\n                                            } catch (e) {}\n                                            if (!(K && E && P && R)) {\n                                                t.next = 57;\n                                                break\n                                            }\n                                            if (q = R.split(\":\")[0].trim(), Z = R.split(\":\")[1].trim(), ![\"\", \"0.0.0.0\"].includes(q) || \"53\" !== Z) {\n                                                t.next = 57;\n                                                break\n                                            }\n                                            if (h = !0, T || z) {\n                                                t.next = 57;\n                                                break\n                                            }\n                                            if (e.detectInterfaceName(), \"\" === e.finalInterfaceName) {\n                                                t.next = 56;\n                                                break\n                                            }\n                                            y = Oe(Oe({}, y), {}, {\n                                                \"interface-name\": e.finalInterfaceName\n                                            }), t.next = 57;\n                                            break;\n                                        case 56:\n                                            return t.abrupt(\"return\", {\n                                                success: !1,\n                                                message: Lg.modeTAPEnableNoINthisYAML()\n                                            });\n                                        case 57:\n                                            for (Y = (G = y)[\"proxy-providers\"], Q = G[\"rule-providers\"], X = Object.keys(null != Y ? Y : {}).length > 0 || Object.keys(null != Q ? Q : {}).length > 0, te = [], ne = 0, se = Object.entries(null != Y ? Y : {}); ne < se.length; ne++) re = o()(se[ne], 2), re[0], ae = re[1], ce = Oe(Oe({}, (null == ae ? void 0 : ae[\"<<\"]) || {}), ae), de = ce.type, ue = ce.url, \"http\" === de && (ge = \"./providers/proxy/\".concat((0, he.Ll)(ue), \".yaml\"), te.push({\n                                                url: ue,\n                                                path: ae.path,\n                                                securePath: ge\n                                            }), ae.path = ge);\n                                            for (pe = 0, fe = Object.entries(null != Q ? Q : {}); pe < fe.length; pe++) me = o()(fe[pe], 2), me[0], ve = me[1], _e = Oe(Oe({}, (null == ve ? void 0 : ve[\"<<\"]) || {}), ve), be = _e.type, we = _e.url, \"http\" === be && (ye = \"./providers/rule/\".concat((0, he.Ll)(we), \".yaml\"), te.push({\n                                                url: we,\n                                                path: ve.path,\n                                                securePath: ye\n                                            }), ve.path = ye);\n                                            for (Ce = function() {\n                                                    var e = o()(Se[xe], 2),\n                                                        t = (e[0], e[1]),\n                                                        i = Oe(Oe({}, (null == t ? void 0 : t[\"<<\"]) || {}), t),\n                                                        n = i.type;\n                                                    i.url;\n                                                    if (\"file\" === n) {\n                                                        var s = te.find((function(e) {\n                                                            return e.path === t.path\n                                                        }));\n                                                        s && (t.path = s.securePath)\n                                                    }\n                                                }, xe = 0, Se = [].concat(l()(Object.entries(null != Y ? Y : {})), l()(Object.entries(null != Q ? Q : {}))); xe < Se.length; xe++) Ce();\n                                            return Le = e.confData, Ne = Le[\"log-level\"], De = Le.ipv6, t.next = 67, e.clashAxiosClient.put(\"/configs\", {\n                                                payload: le().stringify(Oe(Oe({}, y), {}, {\n                                                    ipv6: De,\n                                                    \"log-level\": Ne\n                                                }))\n                                            }, {\n                                                validateStatus: function() {\n                                                    return !0\n                                                },\n                                                timeout: X ? 0 : 1e4\n                                            });\n                                        case 67:\n                                            const Lg = new Language(modifyState.language);\n                                            if (Ie = t.sent, Ee = Ie.status, Te = Ie.data, n = 204 === Ee, Me = Te.message, s = Me || \"Switching profile failed with status: \".concat(Ee), n ? (e.setCurrentProfilePayload({\n                                                    payload: y\n                                                }), X ? e.menuItems.find((function(e) {\n                                                    return Lg.providers() === e.title\n                                                })) || e.setMenuItems({\n                                                    items: [].concat(l()(e.menuItems), [{\n                                                        title: Lg.providers(),\n                                                        path: \"/home/provider\"\n                                                    }])\n                                                }) : e.setMenuItems({\n                                                    items: e.menuItems.filter((function(e) {\n                                                        return Lg.providers() !== e.title\n                                                    }))\n                                                })) : e.setCurrentProfilePayload({\n                                                    payload: {}\n                                                }), n)\n                                                if (B) {\n                                                    if (Ae = U.reduce((function(e, t) {\n                                                            var i = t.split(\":\"),\n                                                                n = o()(i, 2),\n                                                                s = n[0],\n                                                                r = n[1];\n                                                            return \"53\" !== r && void 0 !== r || (\"any\" === s ? e = [].concat(l()(e), [\"8.8.8.8\"]) : /\\d+\\.\\d+\\.\\d+\\.\\d+/.test(s) && (e = [].concat(l()(e), [s]))), e\n                                                        }), []), Ae.length > 0) try {\n                                                        ke(Ae), e.isUserDNSChanged = !0\n                                                    } catch (t) {\n                                                        e.isUserDNSChanged = !1\n                                                    }(0, w.Kr)() && \"system\" === $ && (Pe = 0, 7777, Fe = setInterval(d()(u().mark((function e() {\n                                                        return u().wrap((function(e) {\n                                                            for (;;) switch (e.prev = e.next) {\n                                                                case 0:\n                                                                    return e.next = 2, Be({\n                                                                        port: 7777\n                                                                    });\n                                                                case 2:\n                                                                    7777 !== e.sent && J().exec(\"ipconfig /renew\", {\n                                                                        windowsHide: !0\n                                                                    }), 4 === Pe && clearInterval(Fe), Pe += 1;\n                                                                case 6:\n                                                                case \"end\":\n                                                                    return e.stop()\n                                                            }\n                                                        }), e)\n                                                    }))), 2e3))\n                                                } else e.resetDNS();\n                                            t.next = 84;\n                                            break;\n                                        case 77:\n                                            t.prev = 77, t.t1 = t.catch(9), ee.warn(Lg.failRestoreLastProfileErr().concat(t.t1)), Ve = \"\", (We = t.t1.linePos) && (He = We.start) && (ze = He.line, je = He.col, Ve = \", on line: \".concat(ze, \", at column: \").concat(je)), s = \"Error: \".concat(t.t1.message).concat(Ve);\n                                        case 84:\n                                            if (Ue = g.selected, $e = g.mode, !n || !Ue) {\n                                                t.next = 90;\n                                                break\n                                            }\n                                            return ee.info(\"restore proxy settings\"), t.next = 89, Promise.allSettled(Ue.map((function(t) {\n                                                var i = t.name,\n                                                    n = t.now;\n                                                return e.clashAxiosClient.put(\"/proxies/\" + encodeURIComponent(i), {\n                                                    name: n\n                                                })\n                                            })));\n                                        case 89:\n                                            t.sent.forEach((function(e, t) {\n                                                var i = e.status,\n                                                    n = e.reason;\n                                                \"rejected\" === i && ee.info(Lg.restoreProxyGroup()  + \" \".concat(Ue[t].name, \" to \").concat(Ue[t].now, \" failed with reason: \").concat(n))\n                                            }));\n                                        case 90:\n                                            n && $e && e.switchMode($e, !1);\n                                        case 91:\n                                            return h ? e.spawnTun2socks() : (e.killSpawned(e.tun2socks), e.tun2socks = null), t.abrupt(\"return\", {\n                                                success: n,\n                                                message: s\n                                            });\n                                        case 93:\n                                        case \"end\":\n                                            return t.stop()\n                                    }\n                                }), t, null, [\n                                    [9, 77]\n                                ])\n                            })))()\n                        },\n                        switchMode: function(e) {\n                            var t = this;\n                            return d()(u().mark((function i() {\n                                return u().wrap((function(i) {\n                                    for (;;) switch (i.prev = i.next) {\n                                        case 0:\n                                            return i.next = 2, t.setMode({\n                                                mode: e\n                                            });\n                                        case 2:\n                                        case \"end\":\n                                            return i.stop()\n                                    }\n                                }), i)\n                            })))()\n                        },\n                        showLogsFolder: function() {\n                            var e = arguments.length > 0 && void 0 !== arguments[0] && arguments[0];\n                            this.clashPath && /\\.log$/.test(this.logFilePath) && (e ? y.shell.openPath(oe().join(this.logFilePath, \"..\")) : y.shell.showItemInFolder(this.logFilePath))\n                        },\n                        open: function(e) {\n                            y.shell.openExternal(e)\n                        },\n                        killClashCore: function() {\n                            var e = this;\n                            return d()(u().mark((function t() {\n                                return u().wrap((function(t) {\n                                    for (;;) switch (t.prev = t.next) {\n                                        case 0:\n                                            if (e.killSpawned(e.clash), e.clash = null, _.Z.get(W.Z.IS_LIGHTWEIGHT_MODE_CLOSE) || !1) {\n                                                t.next = 6;\n                                                break\n                                            }\n                                            return t.next = 6, re().get(\"http://127.0.0.1:53000/stop\", {\n                                                timeout: 1e3\n                                            }).catch((function(e) {}));\n                                        case 6:\n                                        case \"end\":\n                                            return t.stop()\n                                    }\n                                }), t)\n                            })))()\n                        },\n                        handlerRestartClash: function() {\n                            var e = this;\n                            return d()(u().mark((function t() {\n                                return u().wrap((function(t) {\n                                    for (;;) switch (t.prev = t.next) {\n                                        case 0:\n                                            return t.next = 2, e.killClashCore().catch((function(e) {}));\n                                        case 2:\n                                            return e.setClashStatus({\n                                                status: b.Z.DISCONNECTED\n                                            }), e.shwoError = !1, t.next = 6, e.spawnClash().catch((function(e) {}));\n                                        case 6:\n                                        case \"end\":\n                                            return t.stop()\n                                    }\n                                }), t)\n                            })))()\n                        },\n                        spawnClash: function() {\n                            var e = this;\n                            const Lg = new Language(modifyState.language);\n                            return d()(u().mark((function t() {\n                                var i, n, o, s, r, a, l, c, h;\n                                return u().wrap((function(t) {\n                                    for (;;) switch (t.prev = t.next) {\n                                        case 0:\n                                            if (ee.info(\"restarting clash core...\"), i = oe().join(e.clashPath, \"logs\", \"\".concat(P()().format(\"YYYY-MM-DD-HHmmss\"), \".log\")), ie().readdir(oe().join(e.clashPath, \"logs\"), (function(t, i) {\n                                                    !t && i.length > 0 && i.forEach((function(t) {\n                                                        /^(.*?)\\.log$/.test(t) && (P()(RegExp.$1, \"YYYY-MM-DD-HHmmss\").isBefore(P()().subtract(7, \"days\")) && ie().unlink(oe().join(e.clashPath, \"logs\", t), (function(e) {})))\n                                                    }))\n                                                })), n = _.Z.get(W.Z.IS_LIGHTWEIGHT_MODE_CLOSE) || !1, t.t0 = n, !t.t0) {\n                                                t.next = 11;\n                                                break\n                                            }\n                                            return t.next = 8, e.getClashStatus();\n                                        case 8:\n                                            t.t1 = t.sent, t.t2 = b.Z.CONNECTED, t.t0 = t.t1 === t.t2;\n                                        case 11:\n                                            if (!t.t0) {\n                                                t.next = 13;\n                                                break\n                                            }\n                                            return t.abrupt(\"return\");\n                                        case 13:\n                                            if (o = e.clashBinaryPath, oe().dirname(o), oe().basename(o), s = e.confData[\"log-level\"], e.isLocalMode) {\n                                                t.next = 26;\n                                                break\n                                            }\n                                            return t.next = 20, re().post(\"http://127.0.0.1:53000/start\", {\n                                                path: e.devMode ? (0, ne.join)(process.cwd(), o) : o,\n                                                cwd: e.clashPath,\n                                                silent: \"silent\" === s\n                                            }, {\n                                                validateStatus: function(e) {\n                                                    return !0\n                                                }\n                                            });\n                                        case 20:\n                                            r = t.sent, a = r.data, 200 === r.status ? e.setLogFilePath({\n                                                path: a\n                                            }) : (ee.info(\"fail to spawn in service mode, fallback to local mode\"), e.setIsLocalMode({\n                                                isLocal: !0\n                                            }), e.spawnClash()), t.next = 34;\n                                            break;\n                                        case 26:\n                                            l = [], e.portableMode && (l = [\"-d\", e.clashPath]), c = J().spawn(o, l, {\n                                                windowsHide: !0\n                                            }), e.clash = c, _.Z.put(W.Z.LAST_CLASH_PID, e.clash.pid), c.stdout.on(\"data\", function() {\n                                                var t = d()(u().mark((function t(i) {\n                                                    return u().wrap((function(t) {\n                                                        for (;;) switch (t.prev = t.next) {\n                                                            case 0:\n                                                                if (!/INF \\[API\\] listening addr=/.test(i.toString())) {\n                                                                    t.next = 8;\n                                                                    break\n                                                                }\n                                                                return ee.info(\"clash core startup success!\"), t.t0 = e, t.next = 5, e.getClashStatus();\n                                                            case 5:\n                                                                t.t1 = t.sent, t.t2 = {\n                                                                    status: t.t1\n                                                                }, t.t0.setClashStatus.call(t.t0, t.t2);\n                                                            case 8:\n                                                                /ERR/.test(i.toString()) && ee.error(Lg.clashCoreFailedStartup());\n                                                            case 9:\n                                                            case \"end\":\n                                                                return t.stop()\n                                                        }\n                                                    }), t)\n                                                })));\n                                                return function(e) {\n                                                    return t.apply(this, arguments)\n                                                }\n                                            }()), c.on(\"exit\", (function() {})), \"silent\" !== s && (h = ie().createWriteStream(i, {\n                                                flags: \"a\"\n                                            }), c.stdout.pipe(h), c.stderr.pipe(h), e.setLogFilePath({\n                                                path: i\n                                            }));\n                                        case 34:\n                                            return t.abrupt(\"return\");\n                                        case 35:\n                                        case \"end\":\n                                            return t.stop()\n                                    }\n                                }), t)\n                            })))()\n                        },\n                        sudoRunBAT: function(e) {\n                            var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : null;\n                            return new Promise((function(i, n) {\n                                ! function() {\n                                    try {\n                                        return J().execSync(\"net session\", {\n                                            windowsHide: !0\n                                        }), !0\n                                    } catch (e) {}\n                                    return !1\n                                }() ? (0, de.exec)(e, {\n                                    name: \"Clash for Windows\"\n                                }, (function(e, n, o) {\n                                    t && t(void 0 === e), i(void 0 === e)\n                                })) : J().exec(e, {\n                                    windowsHide: !0\n                                }, (function(e, n, o) {\n                                    t && t(void 0 === e), i(void 0 === e)\n                                }))\n                            }))\n                        },\n                        setupTapDevice: function() {\n                            var e, t, i = !(arguments.length > 0 && void 0 !== arguments[0]) || arguments[0],\n                                n = oe().join(this.filesPath, \"win\", \"common\", \"tun2socks\"),\n                                o = (e = {}, r()(e, w.J4, \"amd64\"), r()(e, w.Ap, \"i386\"), r()(e, w.Vm, \"i386\"), e)[(0, w.$Q)()],\n                                s = null !== (t = _.Z.get(W.Z.TAP_INFO)) && void 0 !== t ? t : {},\n                                a = s.ip,\n                                l = void 0 === a ? \"10.0.0.1\" : a,\n                                c = s.subnet,\n                                d = void 0 === c ? \"255.255.255.0\" : c,\n                                h = s.gateway,\n                                u = void 0 === h ? \"10.0.0.0\" : h,\n                                g = oe().join(n, \"\".concat(i ? \"add\" : \"remove\", \"_tap_device.bat\")),\n                                p = '\"'.concat(g, '\" ').concat(o, \" \").concat(l, \" \").concat(d, \" \").concat(u);\n                            return this.sudoRunBAT(p)\n                        },\n                        spawnTun2socks: function() {\n                            var e = this;\n                            return d()(u().mark((function t() {\n                                var i, n, o, s, a, l, c, d, h, g, p, f, m, v, b;\n                                return u().wrap((function(t) {\n                                    for (;;) switch (t.prev = t.next) {\n                                        case 0:\n                                            if (!(0, w.V5)() && !(0, w.IJ)()) {\n                                                t.next = 2;\n                                                break\n                                            }\n                                            return t.abrupt(\"return\");\n                                        case 2:\n                                            if (ee.info(\"Spawn go-tun2socks\"), e.tun2socks && (e.killSpawned(e.tun2socks), e.tun2socks = null), o = e.mixedPort) {\n                                                t.next = 7;\n                                                break\n                                            }\n                                            return t.abrupt(\"return\");\n                                        case 7:\n                                            s = null !== (i = _.Z.get(W.Z.TAP_INFO)) && void 0 !== i ? i : {}, a = s.ip, l = void 0 === a ? \"10.0.0.1\" : a, c = s.subnet, d = void 0 === c ? \"255.255.255.0\" : c, h = s.gateway, p = [\"-tunName\", \"cfw-tap\", \"-tunDns\", l, \"-tunAddr\", l, \"-tunMask\", d, \"-tunGw\", g = void 0 === h ? \"10.0.0.0\" : h, \"-proxyServer\", \"127.0.0.1:\" + o, \"-loglevel\", \"none\"], f = (n = {}, r()(n, w.J4, oe().join(e.filesPath, \"win\", \"x64\")), r()(n, w.Ap, oe().join(e.filesPath, \"win\", \"ia32\")), r()(n, w.Vm, oe().join(e.filesPath, \"win\", \"ia32\")), n)[(0, w.$Q)()], e.tun2socks = J().spawn(\"go-tun2socks.exe\", p, {\n                                                cwd: f,\n                                                windowsHide: !0\n                                            }), m = 10;\n                                        case 12:\n                                            if (!m--) {\n                                                t.next = 27;\n                                                break\n                                            }\n                                            if (t.prev = 13, v = J().execSync(\"route print \".concat(g, \" mask \").concat(d), {\n                                                    windowsHide: !0\n                                                }).toString(), b = function(e) {\n                                                    return e.replace(/\\./g, \"\\\\.\")\n                                                }, !new RegExp(\"\".concat(b(g), \"\\\\s+?\").concat(b(d), \"[\\\\s\\\\S]+\").concat(b(l))).test(v)) {\n                                                t.next = 19;\n                                                break\n                                            }\n                                            return J().execSync(\"route add 0.0.0.0 mask 0.0.0.0 \".concat(g, \" metric 1\"), {\n                                                windowsHide: !0\n                                            }), t.abrupt(\"break\", 27);\n                                        case 19:\n                                            t.next = 23;\n                                            break;\n                                        case 21:\n                                            t.prev = 21, t.t0 = t.catch(13);\n                                        case 23:\n                                            return t.next = 25, (0, he.Dc)(1e3);\n                                        case 25:\n                                            t.next = 12;\n                                            break;\n                                        case 27:\n                                        case \"end\":\n                                            return t.stop()\n                                    }\n                                }), t, null, [\n                                    [13, 21]\n                                ])\n                            })))()\n                        },\n                        killSpawned: function(e) {\n                            if (e) {\n                                var t = e.pid;\n                                if (t) try {\n                                    J().execSync((0, w.V5)() || (0, w.IJ)() ? \"kill -9 \".concat(t) : \"taskkill /F /PID \".concat(t), {\n                                        windowsHide: !0\n                                    })\n                                } catch (e) {}\n                            }\n                        },\n                        setRoutes: function() {\n                            var e = this;\n                            return d()(u().mark((function t() {\n                                var i, n;\n                                return u().wrap((function(t) {\n                                    for (;;) switch (t.prev = t.next) {\n                                        case 0:\n                                            return i = oe().join(e.filesPath, \"tun2socks\"), n = oe().join(i, \"set_routes.bat\"), t.abrupt(\"return\", e.sudoRunBAT('\"'.concat(n, '\"')));\n                                        case 3:\n                                        case \"end\":\n                                            return t.stop()\n                                    }\n                                }), t)\n                            })))()\n                        },\n                        getClashStatus: function() {\n                            var e = this;\n                            return d()(u().mark((function t() {\n                                var i, n, o;\n                                return u().wrap((function(t) {\n                                    for (;;) switch (t.prev = t.next) {\n                                        case 0:\n                                            return t.prev = 0, t.next = 3, e.clashAxiosClient.get(\"/configs\", {\n                                                validateStatus: function(e) {\n                                                    return !0\n                                                },\n                                                timeout: 1e3\n                                            });\n                                        case 3:\n                                            return i = t.sent, n = i.status, o = i.data, e.clashMixedPort = (null == o ? void 0 : o[\"mixed-port\"]) || -1, t.abrupt(\"return\", 200 === n ? b.Z.CONNECTED : b.Z.DISCONNECTED);\n                                        case 10:\n                                            return t.prev = 10, t.t0 = t.catch(0), e.clashMixedPort = -1, t.abrupt(\"return\", b.Z.DISCONNECTED);\n                                        case 14:\n                                        case \"end\":\n                                            return t.stop()\n                                    }\n                                }), t, null, [\n                                    [0, 10]\n                                ])\n                            })))()\n                        },\n                        checkForUpdate: function() {\n                            var e = this;\n                            return d()(u().mark((function t() {\n                                var i, n, o, s, a, l, c, d, h, g, p, f, m, v, _, b, C;\n                                return u().wrap((function(t) {\n                                    for (;;) switch (t.prev = t.next) {\n                                        case 0:\n                                            if (!e.isSilentUpgraded) {\n                                                t.next = 3;\n                                                break\n                                            }\n                                            return ee.info(\"silent upgrade done, stop checking\"), t.abrupt(\"return\");\n                                        case 3:\n                                            return t.next = 5, y.ipcRenderer.invoke(\"app\", \"getVersion\");\n                                        case 5:\n                                            return i = t.sent, ee.info(\"check for app update, current: \".concat(i)), t.next = 9, re().get(\"https://raw.githubusercontent.com/Z-Siqi/Clash-for-Windows_Chinese/main/update\");\n                                        case 9:\n                                            if (200 === (n = t.sent).status && (o = n.data.tag_name, (s = function(e) {\n                                                    var t = 1;\n                                                    return e.split(\".\").reverse().reduce((function(e, i) {\n                                                        var n = 1 * e + i * t;\n                                                        return t *= 1e3, n\n                                                    }), 0)\n                                                })(o) > s(i))) {\n                                                \"https://github.com/Z-Siqi/Clash-for-Windows_Chinese/releases\", d = Symbol(), h = Symbol(), g = Symbol(), p = Symbol(), a = {}, r()(a, d, {}), r()(a, h, {}), r()(a, g, {}), r()(a, p, {}), f = a, m = Te(n.data.assets);\n                                                try {\n                                                    for (m.s(); ;) {\n                                                        const v = m.n();        // next\n                                                        if (v.done) break;      // end\n\n                                                        const file = v.value;   // current object\n                                                        const name = file.name; // file name\n                                                        if (!name) continue;    // skip if name is null\n\n                                                        if (/\\d+\\.\\d+\\.\\d+(?:-Opt\\.\\d+)?-win\\.7z/.test(name)) {                // Windows x64 package\n                                                            f[d][w.J4] = file;\n\n                                                        } else if (/\\d+\\.\\d+\\.\\d+(?:-Opt\\.\\d+)?-ia32-win\\.7z/.test(name)) {    // Windows ia32 package\n                                                            f[d][w.Ap] = file;\n\n                                                        } else if (/\\d+\\.\\d+\\.\\d+(?:-Opt\\.\\d+)?-arm64-win\\.7z/.test(name)) {   // Windows ARM64 package\n                                                            f[d][w.Vm] = file;\n\n                                                        } else if (/\\d+\\.\\d+\\.\\d+(?:-Opt\\.\\d+)?-arm64-mac\\.7z/.test(name)) {   // macOS ARM64 package\n                                                            f[d][w.UD] = file;\n\n                                                        } else if (/\\d+\\.\\d+\\.\\d+(?:-Opt\\.\\d+)?-mac\\.7z/.test(name)) {         // macOS x64 package\n                                                            f[d][w.Ml] = file;\n\n                                                        } else if (/\\d+\\.\\d+\\.\\d+(?:-Opt\\.\\d+)?[-\\.]ia32\\.exe/.test(name)) {      // Windows ia32 installer\n                                                            f[h][w.Ap] = file;\n\n                                                        } else if (/\\d+\\.\\d+\\.\\d+(?:-Opt\\.\\d+)?\\.arm64\\.exe/.test(name)) {     // Windows ARM64 installer\n                                                            f[h][w.Vm] = file;\n\n                                                        } else if (/\\d+\\.\\d+\\.\\d+(?:-Opt\\.\\d+)?\\.exe/.test(name)) {            // Windows x64 installer\n                                                            f[h][w.J4] = file;\n\n                                                        } else if (/arm64\\.dmg/.test(name)) {                    // macOS ARM64 DMG\n                                                            f[g][w.UD] = file;\n\n                                                        } else if (/\\.dmg/.test(name)) {                         // macOS x64 DMG\n                                                            f[g][w.Ml] = file;\n\n                                                        } else if (/x64\\-linux\\.tar\\.gz/.test(name)) {           // Linux x64 package\n                                                            f[p][w.bV] = file;\n                                                        }\n                                                    }\n                                                } catch (e) {\n                                                    m.e(e);        // prosess err\n                                                } finally {\n                                                    m.f();         // end\n                                                }\n                                                C = function(e) {\n                                                    var t, i;\n                                                    return null == f || null === (t = f[e]) || void 0 === t || null === (i = t[(0, w.$Q)()]) || void 0 === i ? void 0 : i.browser_download_url\n                                                }, e.portableMode ? c = C(d) : ((0, w.V5)() && (c = C(g)), (0, w.Kr)() && (c = C(h)), (0, w.IJ)() && (c = C(p))), e.newVersionInfo = {\n                                                    version: o,\n                                                    log: ce.marked.parse(n.data.body),\n                                                    url: c || \"https://github.com/Z-Siqi/Clash-for-Windows_Chinese/releases\",\n                                                    isPortable: e.portableMode,\n                                                    reactions: (null === (l = n.data) || void 0 === l ? void 0 : l.reactions) || null,\n                                                    reactionClick: function() {\n                                                        var e;\n                                                        y.shell.openExternal(null === (e = n.data) || void 0 === e ? void 0 : e.html_url)\n                                                    }\n                                                }, (0, w.V5)() && e.settings.silentUpdate && c && (0, Ne._)(c, o).then((function(t) {\n                                                    const Lg = new Language(modifyState.language);\n                                                    ee.info(\"upgrade to \".concat(o, \" \" + Lg.success() + \", \" + Lg.path() + \": \").concat(t)), e.setIsSilentUpgraded({\n                                                        isUpgraded: !0\n                                                    }), e.newVersionInfo = {}\n                                                })).catch((function(e) {\n                                                    const Lg = new Language(modifyState.language);\n                                                    ee.info(\"auto upgrade \" + Lg.failedWithError().concat(e))\n                                                }))\n                                            }\n                                            case 11:\n                                            case \"end\":\n                                                return t.stop()\n                                    }\n                                }), t)\n                            })))()\n                        },\n                        loadConfData: function() {\n                            const Lg = new Language(modifyState.language);\n                            ee.info(Lg.loadDataFromGeneral());\n                            var e = oe().join(this.clashPath, \"config.yaml\");\n                            try {\n                                var t = ie().readFileSync(e, \"utf8\").toString(),\n                                    i = le().parse(t, {\n                                        prettyErrors: !0,\n                                        strict: !1\n                                    });\n                                this.setConfData({\n                                    data: i\n                                })\n                            } catch (e) {\n                                var n = \"\",\n                                    o = e.linePos;\n                                if (o) {\n                                    var s = o.start;\n                                    if (s) {\n                                        var r = s.line,\n                                            a = s.col;\n                                        n = \", on line: \".concat(r, \", at column: \").concat(a)\n                                    }\n                                }\n                                this.appendError({\n                                    error: \"Error: \".concat(e).concat(n)\n                                }), ee.warn(Lg.failLoadGeneralCfg().concat(e))\n                            }\n                        },\n                        mkdirPathSync: function(e) {\n                            return e !== oe().dirname(e) && (!!ie().existsSync(e) || (this.mkdirPathSync(oe().dirname(e)) ? (ie().mkdirSync(e), !0) : void 0))\n                        },\n                        initConfigFolder: function() {\n                            var e = this;\n                            return d()(u().mark((function t() {\n                                var i, n, o, s, a, l, c, d, h, g, p, f, m;\n                                return u().wrap((function(t) {\n                                    for (;;) switch (t.prev = t.next) {\n                                        case 0:\n                                            if (e.mkdirPathSync(e.clashPath), i = oe().join(e.clashPath, \"config.yaml\"), n = oe().join(e.clashPath, \"config.yml\"), ie().existsSync(n)) {\n                                                try {\n                                                    ie().unlinkSync(i)\n                                                } catch (e) {}\n                                                ie().renameSync(n, i)\n                                            }\n                                            if (ie().existsSync(i) && \"\" !== ie().readFileSync(i, {\n                                                    encoding: \"utf8\"\n                                                })) try {\n                                                void 0 === (o = le().parseDocument(ie().readFileSync(i, \"utf8\"))).get(\"mixed-port\") && (s = o.get(\"port\"), a = o.get(\"socks-port\"), l = s || a || 7890, o.delete(\"port\"), o.delete(\"socks-port\"), ie().writeFileSync(i, \"mixed-port: \".concat(l, \"\\n\").concat(o.toString())))\n                                                } catch (e) { } else ee.info(new Language(modifyState.language).firstLunach()), ie().writeFileSync(i, le().stringify({\n                                                \"mixed-port\": 7890,\n                                                \"allow-lan\": !1,\n                                                \"external-controller\": \"127.0.0.1:9090\",\n                                                secret: (0, De.v4)()\n                                            }));\n                                            if (c = oe().join(e.filesPath, \"default/Country.mmdb\"), d = oe().join(e.clashPath, \"Country.mmdb\"), ie().existsSync(d) || ie().copyFileSync(c, d), !(0, w.Kr)()) {\n                                                t.next = 20;\n                                                break\n                                            }\n                                            return g = (h = {}, r()(h, w.Ap, \"ia32\"), r()(h, w.J4, \"x64\"), r()(h, w.Vm, \"arm64\"), h)[(0, w.$Q)()], p = oe().join(e.filesPath, \"win/\".concat(g, \"/wintun.dll\")), f = oe().join(e.clashPath, \"wintun.dll\"), t.next = 14, (0, he.uQ)();\n                                        case 14:\n                                            if (t.t0 = t.sent, !t.t0) {\n                                                t.next = 17;\n                                                break\n                                            }\n                                            t.t0 = ie().existsSync(f);\n                                        case 17:\n                                            if (!t.t0) {\n                                                t.next = 19;\n                                                break\n                                            }\n                                            ie().unlinkSync(f);\n                                        case 19:\n                                            ie().existsSync(f) || ie().copyFileSync(p, f);\n                                        case 20:\n                                            m = oe().join(e.clashPath, \"logs\"), ie().existsSync(m) || ie().mkdirSync(m);\n                                        case 22:\n                                        case \"end\":\n                                            return t.stop()\n                                    }\n                                }), t)\n                            })))()\n                        },\n                        initProfilesFolder: function() {\n                            var e = this.profilesPath;\n                            ie().existsSync(e) || ie().mkdirSync(e);\n                            var t = oe().join(this.profilesPath, \"list.yml\");\n                            ie().existsSync(t) || ie().writeFileSync(t, \"files: []\\nindex: -1\", {\n                                flag: \"ax\"\n                            })\n                        },\n                        startChild: function(e) {\n                            if (!e || !e.hasOwnProperty(\"command\")) return null;\n                            var t = e.args,\n                                i = void 0 === t ? [] : t,\n                                n = e.options,\n                                o = void 0 === n ? {} : n;\n                            return J().spawn(e.command, i, Oe(Oe({}, o), {}, {\n                                windowsHide: !0\n                            }))\n                        },\n                        spawnUserDefindExes: function() {\n                            if (this.confData) {\n                                var e = [],\n                                    t = this.settings.childProcessText,\n                                    i = void 0 === t ? \"\" : t;\n                                try {\n                                    e = le().parse(i).processes || []\n                                } catch (e) {}\n                                var n = [];\n                                for (var o in e) {\n                                    var s = e[o],\n                                        r = s.log,\n                                        a = s.options,\n                                        l = (a = void 0 === a ? {} : a).cwd,\n                                        c = this.startChild(e[o]),\n                                        d = c.pid,\n                                        h = c.stderr,\n                                        u = c.stdout;\n                                    r && l && (h && h.pipe(ie().createWriteStream(oe().join(l, \"cfw-child-process-err.log\"), {\n                                        flags: \"a\"\n                                    })), u && u.pipe(ie().createWriteStream(oe().join(l, \"cfw-child-process-out.log\"), {\n                                        flags: \"a\"\n                                    }))), n.push(d)\n                                }\n                                _.Z.put(W.Z.LAST_USER_EXE_PIDS, n)\n                            }\n                        },\n                        preDownloadAds: function() {\n                            return d()(u().mark((function e() {\n                                var t, i, n, o, s;\n                                return u().wrap((function(e) {\n                                    for (;;) switch (e.prev = e.next) {\n                                        case 0:\n                                            return e.next = 2, re().get(modifyState.adImages + (new Date).getTime());\n                                        case 2:\n                                            t = e.sent, i = t.status, n = t.data, 200 === i && (o = n.feedback) && (s = o, _.Z.put(W.Z.AD_IMAGES, s));\n                                        case 5:\n                                        case \"end\":\n                                            return e.stop()\n                                    }\n                                }), e)\n                            })))()\n                        },\n                        profileUpdater: function() {\n                            var e = this;\n                            return d()(u().mark((function t() {\n                                var i, n, o, s, r, a, c, d;\n                                return u().wrap((function(t) {\n                                    for (;;) switch (t.prev = t.next) {\n                                        case 0:\n                                            if (e.profiles && !e.isAppSuspend) {\n                                                t.next = 2;\n                                                break\n                                            }\n                                            return t.abrupt(\"return\");\n                                        case 2:\n                                            return i = function() {\n                                                return (new Date).getTime()\n                                            }, n = e.profiles.files, o = (void 0 === n ? [] : n).filter((function(t) {\n                                                var i = t.interval,\n                                                    n = t.url,\n                                                    o = t.time,\n                                                    s = t.cron,\n                                                    r = void 0 === s ? \"\" : s;\n                                                if (!n) return !1;\n                                                try {\n                                                    var a = P()();\n                                                    if (r && new Ve(r).isMatchDate(a)) return !0;\n                                                    if (i > 0) {\n                                                        var l = ie().statSync(oe().join(e.profilesPath, o)).mtime;\n                                                        if (l) {\n                                                            var c = e.profileUpdateFailed[n];\n                                                            if (void 0 !== c) {\n                                                                if (!P()(c).add(i, \"hours\").isBefore(a)) return !1;\n                                                                delete e.profileUpdateFailed[n]\n                                                            }\n                                                            return P()(l).add(i, \"hours\").isBefore(a)\n                                                        }\n                                                    }\n                                                } catch (e) {}\n                                                return !1\n                                            })), t.next = 7, Promise.allSettled(o.map((function(e) {\n                                                var t = e.url,\n                                                    i = e.headers;\n                                                return (0, ye.rF)({\n                                                    url: t,\n                                                    headersString: i\n                                                })\n                                            })));\n                                        case 7:\n                                            const Lg = new Language(modifyState.language);\n                                            s = t.sent, r = u().mark((function t(n) {\n                                                var r, a, c, d, h;\n                                                return u().wrap((function(t) {\n                                                    for (;;) switch (t.prev = t.next) {\n                                                        case 0:\n                                                            if (r = s[n].value, a = r.success, c = r.message, d = r.targetIndex, h = o[n].url, !a || d !== e.profiles.index) {\n                                                                t.next = 5;\n                                                                break\n                                                            }\n                                                            return t.next = 5, e.refreshProfile();\n                                                        case 5:\n                                                            a && e.profileUpdateFailedURLs.includes(h) && (e.profileUpdateFailedURLs = e.profileUpdateFailedURLs.filter((function(e) {\n                                                                return e !== h\n                                                            }))), c && (ee.warn(Lg.failUpdateUrlProfile().concat(h)), (0, he.c0)(Lg.profileUpdateFail(), h), e.profileUpdateFailed.hasOwnProperty(h) || (e.profileUpdateFailed[h] = i()), e.profileUpdateFailedURLs.includes(h) || (e.profileUpdateFailedURLs = [].concat(l()(e.profileUpdateFailedURLs), [h])));\n                                                        case 7:\n                                                        case \"end\":\n                                                            return t.stop()\n                                                    }\n                                                }), t)\n                                            })), a = 0;\n                                        case 10:\n                                            if (!(a < s.length)) {\n                                                t.next = 15;\n                                                break\n                                            }\n                                            return t.delegateYield(r(a), \"t0\", 12);\n                                        case 12:\n                                            a++, t.next = 10;\n                                            break;\n                                        case 15:\n                                            c = e.profiles.files, d = (void 0 === c ? [] : c).map((function(e) {\n                                                return e.time\n                                            })), ie().readdir(oe().join(e.profilesPath), (function(t, i) {\n                                                !t && i.length > 0 && i.forEach((function(t) {\n                                                    if (/^\\d+\\.yml$/.test(t)) {\n                                                        var i = !1,\n                                                            n = ie().statSync(oe().join(e.profilesPath, t)).mtimeMs;\n                                                        n && (i = P()(n).isBefore(P()().subtract(1, \"month\"))), i && !d.includes(t) && ie().unlinkSync(oe().join(e.profilesPath, t))\n                                                    }\n                                                }))\n                                            }));\n                                        case 18:\n                                        case \"end\":\n                                            return t.stop()\n                                    }\n                                }), t)\n                            })))()\n                        },\n                        rebindShortcut: function(e, t, i) {\n                            var n = this;\n                            return d()(u().mark((function o() {\n                                var s;\n                                return u().wrap((function(o) {\n                                    for (;;) switch (o.prev = o.next) {\n                                        case 0:\n                                            if (!t) {\n                                                o.next = 9;\n                                                break\n                                            }\n                                            return o.prev = 1, o.next = 4, y.ipcRenderer.invoke(\"globalShortcut\", \"unregister\", t);\n                                        case 4:\n                                            delete n.shortcuts[t], o.next = 9;\n                                            break;\n                                        case 7:\n                                            o.prev = 7, o.t0 = o.catch(1);\n                                        case 9:\n                                            if (!e) {\n                                                o.next = 23;\n                                                break\n                                            }\n                                            return o.prev = 10, o.next = 13, y.ipcRenderer.invoke(\"globalShortcut\", \"register\", e);\n                                        case 13:\n                                            return o.next = 15, y.ipcRenderer.invoke(\"globalShortcut\", \"isRegistered\", e);\n                                        case 15:\n                                            return (s = o.sent) && (n.shortcuts[e] = i), o.abrupt(\"return\", s);\n                                        case 20:\n                                            o.prev = 20, o.t1 = o.catch(10), console.error(o.t1);\n                                        case 23:\n                                            return o.abrupt(\"return\", !1);\n                                        case 24:\n                                        case \"end\":\n                                            return o.stop()\n                                    }\n                                }), o, null, [\n                                    [1, 7],\n                                    [10, 20]\n                                ])\n                            })))()\n                        },\n                        detectInterfaceName: function() {\n                            var e = (0, ue.Z)();\n                            e && e !== this.detectedInterfaceName && this.setDetectedInterfaceName({\n                                interfaceName: e\n                            })\n                        },\n                        quit: function() {\n                            var e = this;\n                            const Lg = new Language(modifyState.language);\n                            return d()(u().mark((function t() {\n                                return u().wrap((function(t) {\n                                    for (;;) switch (t.prev = t.next) {\n                                        case 0:\n                                            return ee.info(Lg.appExiting()), t.next = 3, e.killClashCore();\n                                        case 3:\n                                            if (e.resetDNS(), t.prev = 4, !e.isSystemProxyOn) {\n                                                t.next = 8;\n                                                break\n                                            }\n                                            return t.next = 8, e.$setSystemProxy(!1);\n                                        case 8:\n                                            t.next = 12;\n                                            break;\n                                        case 10:\n                                            t.prev = 10, t.t0 = t.catch(4);\n                                        case 12:\n                                            return t.prev = 12, y.ipcRenderer.send(\"cleanup-done\"), t.finish(12);\n                                        case 15:\n                                        case \"end\":\n                                            return t.stop()\n                                    }\n                                }), t, null, [\n                                    [4, 10, 12, 15]\n                                ])\n                            })))()\n                        }\n                    }),\n                    mounted: function() {\n                        var e = this;\n                        window.addEventListener(\"online\", (function() {\n                            ee.info(\"network online\"), e.detectInterfaceName(), e.refreshProfile()\n                        })), y.ipcRenderer.on(\"wlan-status-changed\", Pe.debounce((function(t, i) {\n                            [\"ssidDidChangeForWiFiInterfaceWithName\", \"wlan_notification_acm_connection_complete\"].includes(null == i ? void 0 : i.code) && (ee.info(\"wlan-status-changed: \".concat(JSON.stringify(i))), e.setSSIDOptions())\n                        }), 200)), y.ipcRenderer.on(\"wlan-status-listen-error\", (function(t, i) {\n                            ee.error(\"failed to listen network change nativly: \".concat(i)), window.addEventListener(\"online\", (function() {\n                                e.setSSIDOptions()\n                            }))\n                        })), y.ipcRenderer.invoke(\"wlan-status-wanted\")\n                    },\n                    beforeDestroy: function() {},\n                    beforeMount: function() {\n                        var e = this;\n                        return d()(u().mark((function t() {\n                            var n, o, s, a, c, h, g, p, f, m, v, C, x, S, k, L, N, D, I, E, T, M, A, O, P, R, F, B, V;\n                            return u().wrap((function(t) {\n                                for (;;) switch (t.prev = t.next) {\n                                    case 0:\n                                        return t.next = 2, y.ipcRenderer.invoke(\"window\", \"isVisible\");\n                                    case 2:\n                                        return n = t.sent, e.setIsWindowShow({\n                                            isShow: n\n                                        }), e.startTime = (new Date).getTime(), t.t0 = e, t.next = 8, y.ipcRenderer.invoke(\"app\", \"isPackaged\");\n                                    case 8:\n                                        if (t.t1 = !t.sent, t.t2 = {\n                                                isDevMode: t.t1\n                                        }, t.t0.setIsDevMode.call(t.t0, t.t2), ee.info(new Language(modifyState.language).appStartWithMode().concat(e.devMode ? \"dev\" : \"production\")), e.$router.replace({\n                                                path: e.currentRoutePath\n                                            }).catch((function(e) {})), !e.devMode) {\n                                            t.next = 17;\n                                            break\n                                        }\n                                        t.t3 = \"\", t.next = 20;\n                                        break;\n                                    case 17:\n                                        return t.next = 19, y.ipcRenderer.invoke(\"app\", \"getPath\", \"exe\");\n                                    case 19:\n                                        t.t3 = t.sent;\n                                    case 20:\n                                        o = t.t3, e.setExePath({\n                                            path: o\n                                        }), (s = _.Z.get(W.Z.LAST_CLASH_PID)) && e.killSpawned({\n                                            pid: s\n                                        }), a = _.Z.get(W.Z.LAST_USER_EXE_PIDS) || [], c = Te(a);\n                                        try {\n                                            for (c.s(); !(h = c.n()).done;) g = h.value, e.killSpawned({\n                                                pid: g\n                                            })\n                                        } catch (e) {\n                                            c.e(e)\n                                        } finally {\n                                            c.f()\n                                        }\n                                        return t.t4 = e, t.next = 30, y.ipcRenderer.invoke(\"nativeTheme\", \"shouldUseDarkColors\");\n                                    case 30:\n                                        return t.t5 = t.sent, t.t6 = {\n                                            shouldUseDarkTheme: t.t5\n                                        }, t.t4.setShouldUseDarkTheme.call(t.t4, t.t6), y.ipcRenderer.on(\"native-theme-updated\", (function(t, i) {\n                                            e.setShouldUseDarkTheme({\n                                                shouldUseDarkTheme: i\n                                            })\n                                        })), y.ipcRenderer.on(\"shortcut-pressed\", function() {\n                                            var t = d()(u().mark((function t(i, n) {\n                                                var o;\n                                                return u().wrap((function(t) {\n                                                    for (;;) switch (t.prev = t.next) {\n                                                        case 0:\n                                                            return o = e.shortcuts[n], t.next = 3, o();\n                                                        case 3:\n                                                        case \"end\":\n                                                            return t.stop()\n                                                    }\n                                                }), t)\n                                            })));\n                                            return function(e, i) {\n                                                return t.apply(this, arguments)\n                                            }\n                                        }()), y.ipcRenderer.send(\"clash-core-status-change\", 0), y.ipcRenderer.on(\"break-connections\", (function(t, i) {\n                                            e.breakConnections(i)\n                                        })), y.ipcRenderer.on(\"persist-selected-proxy\", (function() {\n                                            e.persistSelectedProxy()\n                                        })), y.ipcRenderer.on(\"app-exit\", e.quit), y.ipcRenderer.on(\"power-event\", (function(t, i) {\n                                            e.setIsAppSuspend({\n                                                isSuspend: \"suspend\" === i\n                                            })\n                                        })), y.ipcRenderer.on(\"system-proxy-changed\", function() {\n                                            var t = d()(u().mark((function t(i, n) {\n                                                return u().wrap((function(t) {\n                                                    for (;;) switch (t.prev = t.next) {\n                                                        case 0:\n                                                            return t.next = 2, e.$setSystemProxy(n, e.confData);\n                                                        case 2:\n                                                            if (!t.sent) {\n                                                                t.next = 4;\n                                                                break\n                                                            }\n                                                            e.setIsSystemProxyOn({\n                                                                isOn: n\n                                                            });\n                                                        case 4:\n                                                        case \"end\":\n                                                            return t.stop()\n                                                    }\n                                                }), t)\n                                            })));\n                                            return function(e, i) {\n                                                return t.apply(this, arguments)\n                                            }\n                                        }()), y.ipcRenderer.send(\"mixin-changed\", e.isMixinEnable), y.ipcRenderer.on(\"mixin-changed\", (function(t, i) {\n                                            e.changeIsMixinEnable({\n                                                isMixin: i\n                                            }), e.refreshProfile()\n                                        })), y.ipcRenderer.send(\"tun-changed\", e.isTunEnable), y.ipcRenderer.on(\"tun-changed\", (function(t, i) {\n                                            e.chagneIsTunEnable({\n                                                isTun: i\n                                            }), e.refreshProfile()\n                                        })), y.ipcRenderer.on(\"run-tray-script\", e.runTrayScript), y.ipcRenderer.on(\"mode-changed\", (function(t, i) {\n                                            e.switchMode(i)\n                                        })), y.ipcRenderer.on(\"app-open\", function() {\n                                            const Lg = new Language(modifyState.language);\n                                            var t = d()(u().mark((function t(i, n) {\n                                                var o, s, r, a, l;\n                                                return u().wrap((function(t) {\n                                                    for (;;) switch (t.prev = t.next) {\n                                                        case 0:\n                                                            if (!n.find((function(e) {\n                                                                    return /clash:\\/\\/install-config\\/?\\?url=(.+?)(?=$|&)/.test(e)\n                                                                }))) {\n                                                                t.next = 11;\n                                                                break\n                                                            }\n                                                            if (o = decodeURIComponent(RegExp.$1.trim()), !/^https?:\\/\\//.test(o)) {\n                                                                t.next = 11;\n                                                                break\n                                                            }\n                                                            return t.next = 5, (0, ye.rF)({\n                                                                url: o\n                                                            });\n                                                        case 5:\n                                                            s = t.sent, r = s.success, a = s.message, l = s.targetIndex, (0, he.c0)(\"Profile\", r ? Lg.profileDownloaded() : a), r && (e.changeProfileIndex({\n                                                                index: l\n                                                            }), e.refreshProfile());\n                                                        case 11:\n                                                            if (!n.find((function(e) {\n                                                                    return /clash:\\/\\/quit/.test(e)\n                                                                }))) {\n                                                                t.next = 14;\n                                                                break\n                                                            }\n                                                            return t.next = 14, e.quit();\n                                                        case 14:\n                                                        case \"end\":\n                                                            return t.stop()\n                                                    }\n                                                }), t)\n                                            })));\n                                            return function(e, i) {\n                                                return t.apply(this, arguments)\n                                            }\n                                        }()), y.ipcRenderer.on(\"menu-item-change\", (function(t, i) {\n                                            e.$router.replace({\n                                                path: \"/home/\".concat(i)\n                                            })\n                                        })), y.ipcRenderer.on(\"window-event\", (function(t, i) {\n                                            if ([\"show\", \"hide\"].includes(i)) e.setIsWindowShow({\n                                                isShow: \"show\" === i\n                                            });\n                                            else if (\"close\" === i) {\n                                                var n = e.settings.lightweightMode;\n                                                void 0 !== n && n && !e.isLocalMode && (_.Z.put(W.Z.IS_LIGHTWEIGHT_MODE_CLOSE, !0), y.ipcRenderer.send(\"cleanup-done\"))\n                                            }\n                                        })), t.next = 52, y.ipcRenderer.invoke(\"app\", \"getPath\", \"home\");\n                                    case 52: //TODO: Support meta (/.config/clash -> /.config/mihomo)\n                                        return p = t.sent, f = oe().join(o, \"../data\"), m = oe().join(p, \"/.config/clash\"), ie().existsSync(f) && (m = f, e.portableMode = !0), e.userPath = p, e.setClashPath({\n                                            path: m\n                                        }), t.next = 60, e.initConfigFolder();\n                                    case 60:\n                                        if (e.loadConfData(), (0, w.V5)() && Le().then((function(t) {\n                                                e.setUserDNS({\n                                                    dns: t\n                                                })\n                                            })).catch((function(e) {\n                                                ee.info(\"faile to get user dns setting with error: \".concat(e))\n                                            })), e.loadSettings(), !(0, w.Kr)()) {\n                                            t.next = 73;\n                                            break\n                                        }\n                                        return t.prev = 64, t.next = 67, ve();\n                                    case 67:\n                                        ee.info(new Language(modifyState.language).httpStartAt().concat(e.innerServerPort)), t.next = 73;\n                                        break;\n                                    case 70:\n                                        t.prev = 70, t.t7 = t.catch(64), ee.info(new Language(modifyState.language).httpFailStart().concat(t.t7));\n                                    case 73:\n                                        if (v = _.Z.get(W.Z.IS_LIGHTWEIGHT_MODE_CLOSE) || false, C = e.settings, x = C.hideTrayIcon, S = C.hideAfterStartup, (x || (v || !S)) && y.ipcRenderer.invoke(\"window-control\", \"show\"), e.settings.fontFamily, k = e.settings.profilePath, e.setProfilesPath({\n                                            path : k || oe().join(e.clashPath, \"profiles\")\n                                        }), e.initProfilesFolder(), e.loadProfiles(), L = e.settings, N = L.randomControllerPort, D = void 0 === N || N, I = L.randomMixedPort, e.devMode || v) {\n                                            /** @type {number} */\n                                            t.next = 106;\n                                            break\n                                        }\n                                        if (t.prev = 83, !D) {\n                                            t.next = 94;\n                                            break\n                                        }\n                                        return E = \"external-controller\", t.t8 = \"127.0.0.1:\", t.next = 89, Be();\n                                    case 89:\n                                        return t.t9 = t.sent, T = t.t8.concat.call(t.t8, t.t9), t.next = 93, (0, he.F0)(oe().join(e.clashPath, \"config.yaml\"), E, T);\n                                    case 93:\n                                        e.setConfData({\n                                            data: Oe(Oe({}, e.confData), {}, r()({}, E, T))\n                                        });\n                                    case 94:\n                                        if (!I) {\n                                            t.next = 102;\n                                            break\n                                        }\n                                        return M = \"mixed-port\", t.next = 98, Be();\n                                    case 98:\n                                        return A = t.sent, t.next = 101, (0, he.F0)(oe().join(e.clashPath, \"config.yaml\"), M, A);\n                                    case 101:\n                                        e.setConfData({\n                                            data: Oe(Oe({}, e.confData), {}, r()({}, M, A))\n                                        });\n                                    case 102:\n                                        t.next = 106;\n                                        break;\n                                    case 104:\n                                        t.prev = 104, t.t10 = t.catch(83);\n                                    case 106:\n                                        return t.next = 108, He();\n                                    case 108:\n                                        return O = t.sent, e.setIsLocalMode({\n                                            isLocal: O !== ze.Active\n                                        }), P = 0, R = function() {\n                                            var t = d()(u().mark((function t() {\n                                                var i;\n                                                return u().wrap((function(t) {\n                                                    for (;;) switch (t.prev = t.next) {\n                                                        case 0:\n                                                            if (e.clashStatus === b.Z.CONNECTED && !e.isWindowShow || !(e.clashAxiosFlyingRequestCount < 5)) {\n                                                                t.next = 12;\n                                                                break\n                                                            }\n                                                            return t.next = 3, e.getClashStatus();\n                                                        case 3:\n                                                            i = t.sent, t.t0 = i, t.next = t.t0 === b.Z.CONNECTED ? 7 : t.t0 === b.Z.DISCONNECTED ? 9 : 11;\n                                                            break;\n                                                        case 7:\n                                                            return P = 0, t.abrupt(\"break\", 11);\n                                                        case 9:\n                                                            return P += 1, t.abrupt(\"break\", 11);\n                                                        case 11:\n                                                            P >= (i === b.Z.CONNECTED ? 0 : 5) && (P = 0, e.setClashStatus({\n                                                                status: i\n                                                            }));\n                                                        case 12:\n                                                        case \"end\":\n                                                            return t.stop()\n                                                    }\n                                                }), t)\n                                            })));\n                                            return function() {\n                                                return t.apply(this, arguments)\n                                            }\n                                        }(), R(), l()(Array(5)).forEach((function(e, t) {\n                                            setTimeout(R, 500 + 500 * t)\n                                        })), setInterval(R, 3e3), t.next = 117, e.handlerRestartClash();\n                                    case 117:\n                                        const Lg = new Language(modifyState.language);\n                                        if (modifyState.languageInProfile != -1) {\n                                            if (i(24883).Z.get(LANGUAGE) === null) {\n                                                i(24883).Z.put(LANGUAGE, modifyState.languageInProfile);\n                                                if (modifyState.languageInProfile != 0) {\n                                                    require(\"electron\").ipcRenderer.invoke(\"window\", \"reload\");\n                                                }\n                                            } else if (modifyState.languageInProfile !== i(24883).Z.get(LANGUAGE)) {\n                                                i(24883).Z.put(LANGUAGE, modifyState.languageInProfile);\n                                                require(\"electron\").ipcRenderer.invoke(\"window\", \"reload\");\n                                            }\n                                        }\n                                        if (!e.settings.disableLoadingAdsLink) {\n                                            modifyState.adImages = \"https://raw.githubusercontent.com/Fndroid/ads/master/ads_v2.json?t=\";\n                                        } else if (i(24883).Z.get(i(81518).Z.AD_IMAGES) != null || i(24883).Z.get(i(81518).Z.AD_IMAGES) != \"\") {\n                                            i(24883).Z.put(i(81518).Z.AD_IMAGES, \"\");\n                                        }\n                                        if (_.Z.put(W.Z.IS_LIGHTWEIGHT_MODE_CLOSE, !1), e.showStartup || (e.showStartup = !0, (0, w.Kr)() && i(22037).release().startsWith(\"6.\") ? (0, he.c0)(\"Attention\", \"The support for Windows 7 will be dropped soon in 2023 due to upstream changes. Click to learn more.\", {\n                                                hideWindowOnClick: !0\n                                            }, (function() {\n                                                y.shell.openExternal(\"https://cloud.google.com/blog/products/chrome-enterprise/extending-chrome-on-windows-7-to-support-enterprise-customers\")\n                                        })) : (0, he.c0)(Lg.cfwRunInBg(), Lg.enjoyFreedom())), e.detectInterfaceName(), e.setSSIDOptions(), e.spawnUserDefindExes(), e.settings.checkForUpdates && e.checkForUpdate().then((function(e) {})).catch((function(e) {\n                                                return console.error(e)\n                                            })), setInterval((function() {\n                                                e.settings.checkForUpdates && e.checkForUpdate().then((function(e) {})).catch((function(e) {\n                                                    return console.error(e)\n                                                }))\n                                            }), 216e5), e.preDownloadAds().then((function(e) {})).catch((function(e) {\n                                                return console.error(e)\n                                            })), setInterval(e.profileUpdater, 6e4), e.profileUpdater(), !(0, w.Kr)()) {\n                                            t.next = 134;\n                                            break\n                                        }\n                                        return t.t11 = e, t.next = 131, (0, Ie.Qz)();\n                                    case 131:\n                                        t.t12 = t.sent, t.t13 = {\n                                            isExist: t.t12\n                                        }, t.t11.setIsFirewallRuleExist.call(t.t11, t.t13);\n                                    case 134:\n                                        for (Fe.bind([\"command+f12\", \"ctrl+f12\"], (function() {\n                                                return y.ipcRenderer.invoke(\"webContent\", \"toggleDevTools\"), !1\n                                            })), Fe.bind([\"command+w\", \"ctrl+w\"], (function(e) {\n                                                if (!e.target.className.split(\" \").includes(\"no-esc\")) return y.ipcRenderer.invoke(\"window\", \"close\"), !1\n                                            })), Fe.bind(\"esc\", (function(e) {\n                                                if (!e.target.className.split(\" \").includes(\"no-esc\")) return y.ipcRenderer.invoke(\"window\", \"close\"), !1\n                                            }), \"keydown\"), F = function(t) {\n                                                var i = t - 1;\n                                                i >= 0 && i < e.menuItemsWithOrder.length && e.$router.replace({\n                                                    path: e.menuItemsWithOrder[i].path\n                                                }).catch((function(e) {}))\n                                            }, B = function(t) {\n                                                Fe.bind(\"\".concat(t), (function() {\n                                                    return e.menuKeyboardClickTimes += 1, F(t), !1\n                                                }))\n                                            }, V = 1; V <= 9; V++) B(V);\n                                    case 140:\n                                    case \"end\":\n                                        return t.stop()\n                                }\n                            }), t, null, [\n                                [64, 70],\n                                [83, 104]\n                            ])\n                        })))()\n                    }\n                };\n                var Ue, $e;\n                const Ke = je;\n                i(5513), i(17613), i(69028);\n                const qe = (0, M.Z)(Ke, (function() {\n                    var e = this,\n                        t = e._self._c;\n                    return t(\"div\", {\n                        staticClass: \"wrapper bg-[color:var(--bgc)] text-[color:var(--fgc)]\"\n                    }, [\"2077\" === e.theme ? t(\"img\", {\n                        staticClass: \"cloud opacicy\",\n                        attrs: {\n                            src: \"static/imgs/2077.png\"\n                        }\n                    }) : e._e(), e._v(\" \"), \"mc\" === e.theme ? t(\"img\", {\n                        staticClass: \"cloud opacicy\",\n                        attrs: {\n                            src: \"static/imgs/minecraft.png\"\n                        }\n                    }) : e._e(), e._v(\" \"), t(\"StatusBar\"), e._v(\" \"), t(\"main\", [t(\"div\", {\n                        staticClass: \"left-side\"\n                    }, [t(\"main-menu\", {\n                        attrs: {\n                            \"download-progress\": e.pkgDownloadProgress,\n                            \"start-time\": e.startTime,\n                            profileUpdateFailedURLs: e.profileUpdateFailedURLs,\n                            \"keyboard-click-times\": e.menuKeyboardClickTimes\n                        }\n                    })], 1), e._v(\" \"), t(\"div\", {\n                        staticClass: \"right-side\"\n                    }, [t(\"keep-alive\", [e.$route.meta.keepAlive ? t(\"router-view\", {\n                        on: {\n                            refreshProfile: e.refreshProfile\n                        }\n                    }) : e._e()], 1), e._v(\" \"), e.$route.meta.keepAlive ? e._e() : t(\"router-view\", {\n                        on: {\n                            refreshProfile: e.refreshProfile\n                        }\n                    })], 1), e._v(\" \"), t(\"div\", {\n                        staticClass: \"clash-status-main\"\n                    }, [t(\"div\", {\n                        class: e.statusIcon\n                    }), e._v(\" \"), t(\"div\", {\n                        staticClass: \"clash-status-hint\",\n                        on: {\n                            click: function() {\n                                return e.showLogsFolder()\n                            }\n                        }\n                    }, [e._v(\"\\n        \" + e._s(e.statusHint) + \"\\n      \")])])])], 1)\n                }), [], !1, null, \"68cbbc92\", null).exports\n            },\n            58323: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    Z: () => S\n                });\n                var n = i(48926),\n                    o = i.n(n),\n                    s = i(59713),\n                    r = i.n(s),\n                    a = i(87757),\n                    l = i.n(a),\n                    c = i(24883),\n                    d = i(81518),\n                    h = i(54387),\n                    u = i.n(h),\n                    g = Symbol(),\n                    p = Symbol(),\n                    f = Symbol();\n                const m = {\n                    props: [\"src\", \"clickalbe\"],\n                    data: function() {\n                        return {\n                            status: g\n                        }\n                    },\n                    computed: {\n                        isDefault: function() {\n                            return this.status === g\n                        },\n                        isLoaded: function() {\n                            return this.status === p\n                        },\n                        isFailed: function() {\n                            return this.status === f\n                        }\n                    },\n                    methods: {\n                        imgLoaded: function() {\n                            this.status = p\n                        },\n                        imgFailed: function() {\n                            this.status = f\n                        }\n                    }\n                };\n                i(56656);\n                var v = i(51900);\n                const _ = (0, v.Z)(m, (function() {\n                    var e = this,\n                        t = e._self._c;\n                    const Lg = new Language(modifyState.language);\n                    return t(\"div\", {\n                        attrs: {\n                            id: \"lazy-image-view clickable\"\n                        }\n                    }, [t(\"div\", {\n                        directives: [{\n                            name: \"show\",\n                            rawName: \"v-show\",\n                            value: e.isDefault,\n                            expression: \"isDefault\"\n                        }],\n                        staticClass: \"placeholder ad-img twinkling\"\n                    }, [t(\"div\", [e._v(Lg.imageIsOnWay())])]), e._v(\" \"), t(\"img\", {\n                        directives: [{\n                            name: \"show\",\n                            rawName: \"v-show\",\n                            value: e.isLoaded,\n                            expression: \"isLoaded\"\n                        }],\n                        staticClass: \"ad-img clickable\",\n                        attrs: {\n                            src: e.src\n                        },\n                        on: {\n                            load: e.imgLoaded,\n                            error: e.imgFailed,\n                            click: function(t) {\n                                return e.$emit(\"click\")\n                            }\n                        }\n                    }), e._v(\" \"), t(\"div\", {\n                        directives: [{\n                            name: \"show\",\n                            rawName: \"v-show\",\n                            value: e.isFailed,\n                            expression: \"isFailed\"\n                        }],\n                        staticClass: \"ad-img error-img clickable\",\n                        on: {\n                            click: function(t) {\n                                return e.$emit(\"click\")\n                            }\n                        }\n                    }, [t(\"div\", [e._v(Lg.imageFailedLoad())])])])\n                }), [], !1, null, \"34599eb0\", null).exports;\n                var b = i(72574),\n                    w = i(23321),\n                    y = i(72298);\n\n                function C(e, t) {\n                    var i = Object.keys(e);\n                    if (Object.getOwnPropertySymbols) {\n                        var n = Object.getOwnPropertySymbols(e);\n                        t && (n = n.filter((function(t) {\n                            return Object.getOwnPropertyDescriptor(e, t).enumerable\n                        }))), i.push.apply(i, n)\n                    }\n                    return i\n                }\n                const x = {\n                    props: [],\n                    components: {\n                        LazyImageView: _,\n                        EscCapture: b.Z\n                    },\n                    data: function() {\n                        return {\n                            adImages: [],\n                            isShowDisclaimerStatement: false,\n                            isShowAds: false\n                        }\n                    },\n                    computed: function(e) {\n                        for (var t = 1; t < arguments.length; t++) {\n                            var i = null != arguments[t] ? arguments[t] : {};\n                            t % 2 ? C(Object(i), !0).forEach((function(t) {\n                                r()(e, t, i[t])\n                            })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(i)) : C(Object(i)).forEach((function(t) {\n                                Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(i, t))\n                            }))\n                        }\n                        return e\n                    }({}, (0, w.mapState)({})),\n                    methods: {\n                        select: function(e) {\n                            y.shell.openExternal([\"https://t.me/Rules_lhie1\", \"https://t.me/Fndroids\", \"https://github.com/Z-Siqi/Clash-for-Windows_Chinese-Attached\", \"https://github.com/Dreamacro/clash\", \"https://github.com/yichengchen/clashX\", \"https://web.archive.org/web/20230304232259/docs.cfw.lbyczf.com/\", \"https://fndroid.github.io/clash-config-builder/\", \"https://github.com/tiagonmas/Windows-Loopback-Exemption-Manager\", \"https://github.com/Noisyfox/sysproxy\", \"https://github.com/eycorsican/go-tun2socks\", \"https://dev.maxmind.com/geoip/geoip2/geolite2/\", \"https://github.com/twitter/twemoji\", \"https://github.com/Jigsaw-Code/outline-client\", \"https://github.com/microsoft/terminal/\", \"https://www.wintun.net/\", \"https://github.com/winsw/winsw\", \"https://apps.apple.com/us/app-bundle/quantumult-x-upgrade/id1482985563\", \"https://github.com/Kr328/clash-premium-installer\", \"https://github.com/microsoft/monaco-editor\", \"https://fonts.google.com/icons\"][e])\n                        },\n                        adClick: function(e) {\n                            y.shell.openExternal(this.adImages[e].click)\n                        }\n                    },\n                    beforeRouteEnter: function(e, t, i) {\n                        var n;\n                        i((n = o()(l().mark((function e(t) {\n                            var i, n, o, s, r;\n                            return l().wrap((function(e) {\n                                for (;;) switch (e.prev = e.next) {\n                                    case 0:\n                                        return t.adImages = c.Z.get(d.Z.AD_IMAGES) || [], e.next = 3, u().get(modifyState.adImages + (new Date).getTime());\n                                    case 3:\n                                        i = e.sent, n = i.status, o = i.data, 200 === n && (s = o.feedback) && (r = s, c.Z.put(d.Z.AD_IMAGES, r), t.adImages = r);\n                                    case 6:\n                                    case \"end\":\n                                        return e.stop()\n                                }\n                            }), e)\n                        }))), function(e) {\n                            return n.apply(this, arguments)\n                        }))\n                    }\n                };\n                i(19743), i(71131), i(72890);\n                const S = (0, v.Z)(x, (function() {\n                    var e = this,\n                        t = e._self._c;\n                    const Lg = new Language(modifyState.language);\n                    return t(\"div\", {\n                        staticClass: \"relative w-full h-full\",\n                        attrs: {\n                            id: \"main-about-view\"\n                        }\n                    }, [e._m(0), e._v(\" \"), t(\"div\", {\n                        staticClass: \"section\"\n                    }, [t(\"div\", {\n                        staticClass: \"title\"\n                    }, [e._v(Lg.relevance())]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"chat-list gap-[20px]\"\n                    }, [t(\"div\", {\n                        staticClass: \"text-[color:var(--feedback-link-c)] cursor-pointer\",\n                        on: {\n                            click: function(t) {\n                                return e.select(2)\n                            }\n                        }\n                    }, [e._v(\"\\n          Github\\n        \")]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"text-[color:var(--feedback-link-c)] cursor-pointer\",\n                        on: {\n                            click: function(t) {\n                                return e.select(5)\n                            }\n                        }\n                    }, [e._v(\"\\n          \" + Lg.docs() + \"\\n        \")]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"text-[color:var(--feedback-link-c)] cursor-pointer\",\n                        on: {\n                            click: function(t) {\n                                e.isShowDisclaimerStatement = !0\n                            }\n                        }\n                    }, [e._v(\"\\n          \" + Lg.disclaimerStatement() + \"\\n        \")])])]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"section\"\n                    }, [t(\"div\", {\n                        staticClass: \"title\"\n                    }, [e._v(Lg.credits())]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"flex flex-wrap gap-x-[20px]\"\n                    }, [t(\"div\", {\n                        staticClass: \"text-[color:var(--feedback-link-c)] cursor-pointer\",\n                        on: {\n                            click: function(t) {\n                                return e.select(3)\n                            }\n                        }\n                    }, [e._v(\"\\n          Clash\\n        \")]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"text-[color:var(--feedback-link-c)] cursor-pointer\",\n                        on: {\n                            click: function(t) {\n                                return e.select(4)\n                            }\n                        }\n                    }, [e._v(\"\\n          ClashX\\n        \")]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"text-[color:var(--feedback-link-c)] cursor-pointer\",\n                        on: {\n                            click: function(t) {\n                                return e.select(16)\n                            }\n                        }\n                    }, [e._v(\"\\n          Quantumult(X)\\n        \")]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"text-[color:var(--feedback-link-c)] cursor-pointer\",\n                        on: {\n                            click: function(t) {\n                                return e.select(10)\n                            }\n                        }\n                    }, [e._v(\"\\n          GeoLite2\\n        \")]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"text-[color:var(--feedback-link-c)] cursor-pointer\",\n                        on: {\n                            click: function(t) {\n                                return e.select(11)\n                            }\n                        }\n                    }, [e._v(\"\\n          twemoji\\n        \")]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"text-[color:var(--feedback-link-c)] cursor-pointer\",\n                        on: {\n                            click: function(t) {\n                                return e.select(7)\n                            }\n                        }\n                    }, [e._v(\"\\n          EnableLoopback\\n        \")]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"text-[color:var(--feedback-link-c)] cursor-pointer\",\n                        on: {\n                            click: function(t) {\n                                return e.select(8)\n                            }\n                        }\n                    }, [e._v(\"\\n          sysproxy\\n        \")]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"text-[color:var(--feedback-link-c)] cursor-pointer\",\n                        on: {\n                            click: function(t) {\n                                return e.select(9)\n                            }\n                        }\n                    }, [e._v(\"\\n          go-tun2socks\\n        \")]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"text-[color:var(--feedback-link-c)] cursor-pointer\",\n                        on: {\n                            click: function(t) {\n                                return e.select(12)\n                            }\n                        }\n                    }, [e._v(\"\\n          outline-client\\n        \")]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"text-[color:var(--feedback-link-c)] cursor-pointer\",\n                        on: {\n                            click: function(t) {\n                                return e.select(13)\n                            }\n                        }\n                    }, [e._v(\"\\n          terminal\\n        \")]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"text-[color:var(--feedback-link-c)] cursor-pointer\",\n                        on: {\n                            click: function(t) {\n                                return e.select(14)\n                            }\n                        }\n                    }, [e._v(\"\\n          Wintun\\n        \")]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"text-[color:var(--feedback-link-c)] cursor-pointer\",\n                        on: {\n                            click: function(t) {\n                                return e.select(15)\n                            }\n                        }\n                    }, [e._v(\"\\n          winsw\\n        \")]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"text-[color:var(--feedback-link-c)] cursor-pointer\",\n                        on: {\n                            click: function(t) {\n                                return e.select(17)\n                            }\n                        }\n                    }, [e._v(\"\\n          clash-premium-installer\\n        \")]), e._v(\" \"), \n                    t(\"div\", {\n                        staticClass: \"text-[color:var(--feedback-link-c)] cursor-pointer\",\n                        on: {\n                            click: function(t) {\n                                return e.select(18)\n                            }\n                        }\n                    }, [e._v(\"\\n          monaco-editor\\n        \")]), e._v(\" \"), \n                    t(\"div\", {\n                        staticClass: \"text-[color:var(--feedback-link-c)] cursor-pointer\",\n                        on: {\n                            click: function(t) {\n                                return e.select(19)\n                            }\n                        }\n                    }, [e._v(\"\\n          Material Icons\\n        \")])])]), e._v(\" \"), \n                    t(\"div\", { staticClass: \"title\" }, [\n                        e._v(Lg.other())\n                    ] ), e._v(\" \"),\n                    t(\"div\", {\n                        staticClass: \"section ad-section\"\n                    }, [t(\"div\", {\n                        staticClass: \"text-[color:var(--feedback-link-c)] cursor-pointer\",\n                        on: {\n                            click: function(t) {\n                                e.isShowAds = !0\n                            }\n                        }\n                    }, [e._v(Lg.advertisementOriginal())]), e._v(\" \"), \n                    /*t(\"div\", {staticClass: \"ad-img-list\"}, e._l(e.adImages, (function(i, n) {return t(\"div\", {\n                            key: n,\n                            staticClass: \"ad-img\"\n                        }, [t(\"lazy-image-view\", {attrs: {clickalbe: i.click,src: i.img},on: {click: function(t) {return e.adClick(n)}}\n                        })], 1)\n                    })), 0)*/]), e._v(\" \"), \n                    t(\"div\", {\n                        staticClass: \"absolute mt-[1000px]\"\n                    }, [e._v(\"\\n      \" + e._s(decodeURIComponent(\"%E7%8B%AC%E7%AB%8B%E6%80%9D%E8%80%83%EF%BC%8C%E6%98%8E%E8%BE%A8%E6%98%AF%E9%9D%9E%E3%80%82\")) + \"\\n    \")]),\n                    e._v(\" \"), e.isShowAds ? t(\"EscCapture\", {\n                        staticClass: \"w-full h-full absolute bg-[color:var(--mask-c)] top-0 left-0\",\n                        on: {\n                            mousedown: function(t) {\n                                if (t.target !== t.currentTarget) return null;\n                                e.isShowAds = !1\n                            },\n                            esc: function(t) {\n                                e.isShowAds = !1\n                            }\n                        }\n                    }, [t(\"pre\", {\n                        staticClass: \"left-1/2 top-1/2 w-3/5 break-words whitespace-pre-wrap text-sm absolute bg-[color:var(--bgc)] px-4 py-3 h-4/5 scrolly -translate-x-1/2 -translate-y-1/2 rounded-md shadow-2xl font-sans select-text\"\n                    }, [\n                        t(\"div\", {\n                            staticClass: \"section ad-section\"\n                        }, [\n                            t(\"div\", {\n                                staticClass: \"title\"\n                            }, [e._v(Lg.advertisementOriginal())]), e._v(\" \"),\n                            t(\"div\", {\n                                staticClass: \"ad-img-list\"\n                            }, e._l(e.adImages, (function(i, n) {\n                                return t(\"div\", {\n                                    key: n,\n                                    staticClass: \"ad-img\"\n                                }, [t(\"lazy-image-view\", {\n                                    attrs: {\n                                        clickalbe: i.click,\n                                        src: i.img\n                                    },\n                                    on: {\n                                        click: function(t) {\n                                            return e.adClick(n)\n                                        }\n                                    }\n                                })], 1)\n                            })), 0)\n                        ])\n                    ], e._v(\" \") \n                    )]) : e._e()\n                    \n                    , e._v(\" \"), \n                    t(\"div\", {\n                        staticClass: \"absolute mt-[1000px]\"\n                    }, [e._v(\"\\n      \" + e._s(decodeURIComponent(\"%E7%8B%AC%E7%AB%8B%E6%80%9D%E8%80%83%EF%BC%8C%E6%98%8E%E8%BE%A8%E6%98%AF%E9%9D%9E%E3%80%82\")) + \"\\n    \")]), \n                    e._v(\" \"), e.isShowDisclaimerStatement ? t(\"EscCapture\", {\n                        staticClass: \"w-full h-full absolute bg-[color:var(--mask-c)] top-0 left-0\",\n                        on: {\n                            mousedown: function(t) {\n                                if (t.target !== t.currentTarget) return null;\n                                e.isShowDisclaimerStatement = !1\n                            },\n                            esc: function(t) {\n                                e.isShowDisclaimerStatement = !1\n                            }\n                        }\n                    }, [t(\"pre\", {\n                        staticClass: \"left-1/2 top-1/2 w-3/5 break-words whitespace-pre-wrap text-sm absolute bg-[color:var(--bgc)] px-4 py-3 h-4/5 scrolly -translate-x-1/2 -translate-y-1/2 rounded-md shadow-2xl font-sans select-text\"\n                    }, [e._v(Lg.disclaimerStatementDescribe())])]) : e._e()], 1)\n                }), [function() {\n                    var e = this,\n                        t = e._self._c;\n                    const Lg = new Language(modifyState.language);\n                    return t(\"div\", {\n                        staticClass: \"section\"\n                    }, [t(\"div\", {\n                        staticClass: \"title\"\n                    }, [e._v(Lg.developer())]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"content\"\n                    }, [e._v(\"404 Frror\")])])\n                }], !1, null, \"4a737543\", null).exports\n            },\n            14196: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    Z: () => T\n                });\n                var n = i(48926),\n                    o = i.n(n),\n                    s = i(319),\n                    r = i.n(s),\n                    a = i(59713),\n                    l = i.n(a),\n                    c = i(87757),\n                    d = i.n(c),\n                    h = i(13338),\n                    u = i(24883),\n                    g = i(81518),\n                    p = i(10605),\n                    f = i.n(p),\n                    m = i(23321),\n                    v = i(33182),\n                    _ = i(71017),\n                    b = i.n(_),\n                    w = i(72574),\n                    y = i(8369),\n                    C = i(72298);\n\n                function x(e, t) {\n                    var i = Object.keys(e);\n                    if (Object.getOwnPropertySymbols) {\n                        var n = Object.getOwnPropertySymbols(e);\n                        t && (n = n.filter((function(t) {\n                            return Object.getOwnPropertyDescriptor(e, t).enumerable\n                        }))), i.push.apply(i, n)\n                    }\n                    return i\n                }\n\n                function S(e) {\n                    for (var t = 1; t < arguments.length; t++) {\n                        var i = null != arguments[t] ? arguments[t] : {};\n                        t % 2 ? x(Object(i), !0).forEach((function(t) {\n                            l()(e, t, i[t])\n                        })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(i)) : x(Object(i)).forEach((function(t) {\n                            Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(i, t))\n                        }))\n                    }\n                    return e\n                }\n                const k = {\n                    name: \"ConnectionInfoView\",\n                    props: [\"connection\"],\n                    components: {\n                        EscCapture: w.Z\n                    },\n                    data: function() {\n                        return {\n                            data: {\n                                speedStr: \"\"\n                            }\n                        }\n                    },\n                    watch: {\n                        infoData: {\n                            immediate: !0,\n                            handler: function(e) {\n                                Object.keys(e).length && (this.data = e)\n                            }\n                        },\n                        connection: {\n                            handler: function(e, t) {\n                                if (e && t) {\n                                    var i = {\n                                        upload: e.upload - t.upload,\n                                        download: e.download - t.download\n                                    };\n                                    this.speedStr = this.$parent.calcSpeedText({\n                                        speed: i\n                                    })\n                                } else this.speedStr = \"\"\n                            },\n                            immediate: !0\n                        }\n                    },\n                    computed: S(S({}, (0, m.mapGetters)([\"theme\"])), {}, {\n                        isConnectionClosed: function() {\n                            return 0 === Object.keys(this.infoData).length\n                        },\n                        infoData: function() {\n                            var e = this.connection;\n                            const Lg = new Language(modifyState.language);\n                            if (!e) return {};\n                            var t = e.metadata,\n                                i = \"DIRECT\" === e.chains[0];\n                            if (modifyState.language === 0) {\n                                return {\n                                    主机: t.host,\n                                    网络: e.metadata.network.toUpperCase(),\n                                    流量: \"↑\".concat((0, y.nM)(e.upload), \" ↓\").concat((0, y.nM)(e.download)),\n                                    来源: \"\".concat(t.sourceIP, \":\").concat(t.sourcePort, \" (\").concat(e.metadata.type, \")\"),\n                                    目的地: (i ? t.destinationIP : t.host || t.destinationIP) + \":\" + t.destinationPort,\n                                    规则: \"\".concat(e.rule, \" (\").concat(e.rulePayload, \")\"),\n                                    \"进程路径\": e.metadata.processPath,\n                                    模式: e.chains.slice().reverse().join(\" - \"),\n                                    \"DNS 模式\": e.metadata.dnsMode,\n                                    \"开始时间\": f()(e.start).format(\"MM-DD HH:mm:ss\")\n                                }\n                            } else {\n                                return {\n                                    Host: t.host,\n                                    Network: e.metadata.network.toUpperCase(),\n                                    Flow: \"↑\".concat((0, y.nM)(e.upload), \" ↓\").concat((0, y.nM)(e.download)),\n                                    Source: \"\".concat(t.sourceIP, \":\").concat(t.sourcePort, \" (\").concat(e.metadata.type, \")\"),\n                                    Destination: (i ? t.destinationIP : t.host || t.destinationIP) + \":\" + t.destinationPort,\n                                    Rule: \"\".concat(e.rule, \" (\").concat(e.rulePayload, \")\"),\n                                    \"Process Path\": e.metadata.processPath,\n                                    Mode: e.chains.slice().reverse().join(\" - \"),\n                                    \"DNS Mode\": e.metadata.dnsMode,\n                                    \"Start TIme\": f()(e.start).format(\"MM-DD HH:mm:ss\")\n                                }\n                            }\n                        }\n                    }),\n                    methods: {\n                        handleCopyVal: function(e) {\n                            C.clipboard.writeText(e), (0, y.c0)(\"Copied to Clipboad!\", e, !0)\n                        }\n                    },\n                    mounted: function() {}\n                };\n                i(96340);\n                var L = i(51900);\n                const N = (0, L.Z)(k, (function() {\n                    var e = this,\n                        t = e._self._c;\n                    const Lg = new Language(modifyState.language);\n                    return t(\"EscCapture\", {\n                        staticClass: \"main bg-[color:var(--mask-c)]\",\n                        class: [\"theme-\".concat(e.theme)],\n                        on: {\n                            mousedown: function(t) {\n                                return e.$emit(\"close\")\n                            },\n                            esc: function(t) {\n                                return e.$emit(\"close\")\n                            }\n                        }\n                    }, [t(\"div\", {\n                        staticClass: \"card-main bg-[color:var(--bgc)] text-[color:var(--fgc)]\",\n                        on: {\n                            mousedown: function(e) {\n                                e.stopPropagation()\n                            }\n                        }\n                    }, [t(\"div\", {\n                        staticClass: \"card-content\"\n                    }, [t(\"div\", {\n                        staticClass: \"content-title px-4 flex justify-between items-baseline gap-3\"\n                    }, [t(\"span\", [e._v(Lg.connectInfo())]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"flex-grow\"\n                    }), e._v(\" \"), e.speedStr ? t(\"div\", {\n                        staticClass: \"text-xs\"\n                    }, [e._v(e._s(e.speedStr))]) : e._e(), e._v(\" \"), t(\"div\", [e.isConnectionClosed ? t(\"span\", {\n                        staticClass: \"text-sm text-[#D44545]\"\n                    }, [e._v(Lg.close())]) : t(\"span\", {\n                        staticClass: \"text-sm text-[#13AF42]\"\n                    }, [e._v(Lg.alive())])])]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"w-full h-[1px] bg-gray-300\"\n                    }), e._v(\" \"), t(\"div\", {\n                        staticClass: \"content-list\"\n                    }, e._l(Object.keys(e.data), (function(i, n) {\n                        return t(\"div\", {\n                            key: n,\n                            staticClass: \"content-item pl-4 pr-4 pt-2 pb-2\"\n                        }, [t(\"div\", {\n                            staticClass: \"item-key\"\n                        }, [e._v(e._s(i))]), e._v(\" \"), e.data[i] ? t(\"div\", {\n                            staticClass: \"item-value flex flex-wrap gap-2 opacity-80 font-normal items-center\"\n                        }, [e._v(\"\\n            \" + e._s(e.data[i]) + \"\\n            \"), t(\"div\", {\n                            staticClass: \"bg-[color:#64646480] text-white rounded-lg px-2 py-[2px] text-xs h-fit\",\n                            on: {\n                                click: function(t) {\n                                    return e.handleCopyVal(e.data[i])\n                                }\n                            }\n                        }, [e._v(\"\\n              \" + Lg.copy() + \"\\n            \")])]) : t(\"div\", [e._v(\"--\")])])\n                    })), 0)])])])\n                }), [], !1, null, \"947c6bac\", null).exports;\n\n                function D(e, t) {\n                    var i = Object.keys(e);\n                    if (Object.getOwnPropertySymbols) {\n                        var n = Object.getOwnPropertySymbols(e);\n                        t && (n = n.filter((function(t) {\n                            return Object.getOwnPropertyDescriptor(e, t).enumerable\n                        }))), i.push.apply(i, n)\n                    }\n                    return i\n                }\n\n                function I(e) {\n                    for (var t = 1; t < arguments.length; t++) {\n                        var i = null != arguments[t] ? arguments[t] : {};\n                        t % 2 ? D(Object(i), !0).forEach((function(t) {\n                            l()(e, t, i[t])\n                        })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(i)) : D(Object(i)).forEach((function(t) {\n                            Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(i, t))\n                        }))\n                    }\n                    return e\n                }\n                const E = {\n                    components: {\n                        Hint: h.Z,\n                        ConnectionInfoView: N,\n                        EscCapture: w.Z\n                    },\n                    props: [],\n                    data: function() {\n                        const Lg = new Language(modifyState.language);\n                        return {\n                            isPause: !1,\n                            searchText: \"\",\n                            client: null,\n                            lastData: {\n                                uploadTotal: 0,\n                                downloadTotal: 0,\n                                connections: []\n                            },\n                            data: {\n                                uploadTotal: 0,\n                                downloadTotal: 0,\n                                connections: []\n                            },\n                            labels: ['<span class=\"icon\">upload</span><span class=\"icon\">speed</span>', '<span class=\"icon\">download</span><span class=\"icon\">speed</span>', '<span class=\"icon\">upload</span><span class=\"icon\">signal_cellular_alt</span>', '<span class=\"icon\">download</span><span class=\"icon\">signal_cellular_alt</span>', '<span class=\"icon\">schedule</span>', '<span class=\"icon\">map</span>'],\n                            labelSelected: 4,\n                            reverseTags: [],\n                            detailConnectionId: \"\",\n                            filterTypes: [{\n                                title: Lg.sourceIP(),\n                                key: \"sourceIP\"\n                            }, {\n                                title: Lg.destinationIP(),\n                                key: \"destinationIP\"\n                            }, {\n                                title: Lg.domain(),\n                                key: \"host\"\n                            }, {\n                                title: Lg.processPath(),\n                                key: \"processPath\"\n                            }, {\n                                title: Lg.network(),\n                                key: \"network\"\n                            }, {\n                                title: Lg.type(),\n                                key: \"type\"\n                            }, {\n                                title: Lg.sourcePort(),\n                                key: \"sourcePort\"\n                            }, {\n                                title: Lg.destinationPort(),\n                                key: \"destinationPort\"\n                            }, {\n                                title: Lg.modeDNS(),\n                                key: \"dnsMode\"\n                            }],\n                            filterTypeIndex: 0,\n                            isShowTypeFilter: !1\n                        }\n                    },\n                    watch: {\n                        searchText: function(e) {\n                            u.Z.put(g.Z.CONNECTION_MODULE_SEARCH_TEXT, e)\n                        },\n                        clashStatus: function(e) {\n                            this.client && this.client.terminate(), e === v.Z.CONNECTED && this.setupComponent()\n                        }\n                    },\n                    computed: I(I(I({}, (0, m.mapState)({\n                        clashStatus: function(e) {\n                            return e.app.clashStatus\n                        }\n                    })), (0, m.mapGetters)([\"clashAxiosClient\", \"clashWSClient\"])), {}, {\n                        detailConnection: function() {\n                            var e = this;\n                            return this.detailConnectionId && this.data.connections.find((function(t) {\n                                return t.id === e.detailConnectionId\n                            })) || null\n                        },\n                        searchTextReg: function() {\n                            try {\n                                return new RegExp(this.searchText, \"i\")\n                            } catch (e) {}\n                            return null\n                        },\n                        orderedConnections: function() {\n                            var e, t = this;\n                            if (!this.data) return [];\n                            var i = function(e) {\n                                    return new Date(e).getTime()\n                                },\n                                n = r()(this.data.connections).map((function(e) {\n                                    var i = e.id,\n                                        n = t.lastData.connections.find((function(e) {\n                                            return e.id === i\n                                        }));\n                                    return e.speed = n ? {\n                                        upload: e.upload - n.upload,\n                                        download: e.download - n.download\n                                    } : {\n                                        upload: 0,\n                                        download: 0\n                                    }, e\n                                })).sort((function(e, n) {\n                                    return 4 === t.labelSelected ? i(e.start) - i(n.start) : 3 === t.labelSelected ? n.download - e.download : 2 === t.labelSelected ? n.upload - e.upload : 1 === t.labelSelected ? n.speed.download - e.speed.download : 0 === t.labelSelected ? n.speed.upload - e.speed.upload : 5 === t.labelSelected ? (n.metadata.host || n.metadata.destinationIP || \"\").localeCompare(e.metadata.host || e.metadata.destinationIP || \"\") : 0\n                                })),\n                                o = null != this && null !== (e = this.reverseTags) && void 0 !== e && e[this.labelSelected] ? n.reverse() : n;\n                            return \"\" === this.searchText ? o : o.filter((function(e) {\n                                if (/^(.+?)\\=(.+)$/.test(t.searchText)) {\n                                    var i = RegExp.$1,\n                                        n = RegExp.$2,\n                                        o = ((null == e ? void 0 : e.metadata) || {})[i];\n                                    return !!o && o === n\n                                }\n                                return !t.searchTextReg || t.searchTextReg.test((0, y.Mf)(e))\n                            }))\n                        },\n                        connTypeLabels: function() {\n                            var e = this.filterTypes[this.filterTypeIndex].key,\n                                t = [];\n                            return this.data.connections.forEach((function(i) {\n                                var n = ((null == i ? void 0 : i.metadata) || {})[e];\n                                t.includes(n) || t.push(n)\n                            })), t.filter((function(e) {\n                                return e\n                            })).sort()\n                        }\n                    }),\n                    methods: {\n                        itemStyle: function(e) {\n                            var t = [];\n                            return this.filterTypeIndex === e && t.push(\"selected\"), this.filterTypeIndex !== e && t.push(\"item-none\"), this.filterTypeIndex === e + 1 && t.push(\"selected-top\"), this.filterTypeIndex === e - 1 && t.push(\"selected-bottom\"), t\n                        },\n                        connectionEndpoint: function(e) {\n                            var t = e.chains,\n                                i = void 0 === t ? [] : t,\n                                n = this.settings.connChainType,\n                                o = void 0 === n ? 0 : n,\n                                s = i.length;\n                            return [0, 2].includes(o) && s >= 1 ? i[0] : \"\"\n                        },\n                        connectionProcess: function(e) {\n                            var t = e.metadata,\n                                i = (t = void 0 === t ? {} : t).processPath,\n                                n = void 0 === i ? \"\" : i;\n                            try {\n                                if (n) return b().basename(n)\n                            } catch (e) {}\n                            return \"\"\n                        },\n                        connectionGroup: function(e) {\n                            var t = e.chains,\n                                i = void 0 === t ? [] : t,\n                                n = this.settings.connChainType,\n                                o = void 0 === n ? 0 : n,\n                                s = i.length;\n                            return 2 === o && 1 === s ? \"\" : [1, 2].includes(o) && s >= 1 ? i[s - 1] : \"\"\n                        },\n                        handleLableSelect: function(e) {\n                            var t;\n                            this.labelSelected === e ? this.reverseTags[e] = !(null != this && null !== (t = this.reverseTags) && void 0 !== t && t[e]) : this.labelSelected = e;\n                            u.Z.put(g.Z.CONNECTION_ORDER_INDEX, e), u.Z.put(g.Z.CONNECTION_ORDER_REVERSE_TAGS, this.reverseTags)\n                        },\n                        calcLabelClasses: function(e) {\n                            var t = [\"label\"];\n                            return this.labelSelected === e && (this.reverseTags[e] ? t.push(\"label-selected-reverse\") : t.push(\"label-selected\")), t\n                        },\n                        calcSpeedText: function(e) {\n                            var t = [];\n                            if (!e.speed) return \"\";\n                            var i = e.speed,\n                                n = i.upload,\n                                o = void 0 === n ? 0 : n,\n                                s = i.download,\n                                r = void 0 === s ? 0 : s;\n                            return 0 !== o && t.push(\"↑\".concat(this.traffic(o), \"/s\")), 0 !== r && t.push(\"↓\".concat(this.traffic(r), \"/s\")), t.join(\" \")\n                        },\n                        fromNow: function(e) {\n                            const Lg = new Language(modifyState.language);\n                            return f()(e).locale(Lg.locale()).fromNow()\n                        },\n                        traffic: function(e) {\n                            for (var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 2, i = [\"B\", \"KB\", \"MB\", \"GB\", \"TB\"], n = 0; ~~(e / 1024) && n < i.length;) e /= 1024, n++;\n                            return \"\".concat(0 === n ? e : e.toFixed(t), \" \").concat(i[n])\n                        },\n                        upperCaseFirst: function(e) {\n                            return e.charAt(0).toUpperCase() + e.slice(1)\n                        },\n                        handleCloseConnection: function(e) {\n                            var t = this;\n                            return o()(d().mark((function i() {\n                                return d().wrap((function(i) {\n                                    for (;;) switch (i.prev = i.next) {\n                                        case 0:\n                                            return i.next = 2, t.clashAxiosClient.delete(\"connections/\".concat(e));\n                                        case 2:\n                                        case \"end\":\n                                            return i.stop()\n                                    }\n                                }), i)\n                            })))()\n                        },\n                        handleCloseAllConnections: function() {\n                            var e = this;\n                            return o()(d().mark((function t() {\n                                return d().wrap((function(t) {\n                                    for (;;) switch (t.prev = t.next) {\n                                        case 0:\n                                            return t.next = 2, Promise.allSettled(e.orderedConnections.map((function(t) {\n                                                var i = t.id;\n                                                return e.clashAxiosClient.delete(\"connections/\".concat(i))\n                                            })));\n                                        case 2:\n                                        case \"end\":\n                                            return t.stop()\n                                    }\n                                }), t)\n                            })))()\n                        },\n                        handleItemSelected: function(e) {\n                            var t = e.id;\n                            this.detailConnectionId = t\n                        },\n                        handleSwitchPauseStatus: function() {\n                            this.isPause = !this.isPause, this.isPause ? this.closeStream() : this.openStream()\n                        },\n                        closeStream: function() {\n                            this.client && this.client.terminate(), this.client = null\n                        },\n                        openStream: function() {\n                            var e = this,\n                                t = this.clashWSClient(\"connections\");\n                            t && (t.on(\"message\", (function(t) {\n                                var i = JSON.parse(t);\n                                e.lastData = e.data, e.data = i\n                            })), this.client = t)\n                        },\n                        setupComponent: function() {\n                            var e, t;\n                            this.labelSelected = null !== (e = u.Z.get(g.Z.CONNECTION_ORDER_INDEX)) && void 0 !== e ? e : 4, this.reverseTags = null !== (t = u.Z.get(g.Z.CONNECTION_ORDER_REVERSE_TAGS)) && void 0 !== t ? t : [], this.isPause || this.openStream()\n                        }\n                    },\n                    beforeRouteEnter: function(e, t, i) {\n                        var n;\n                        i((n = o()(d().mark((function t(i) {\n                            var n, o, s;\n                            return d().wrap((function(t) {\n                                for (;;) switch (t.prev = t.next) {\n                                    case 0:\n                                        i.setupComponent(), n = e.query.searchText, o = void 0 === n ? \"\" : n, i.searchText = o ? o.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, \"\\\\$&\") : null !== (s = u.Z.get(g.Z.CONNECTION_MODULE_SEARCH_TEXT)) && void 0 !== s ? s : \"\";\n                                    case 3:\n                                    case \"end\":\n                                        return t.stop()\n                                }\n                            }), t)\n                        }))), function(e) {\n                            return n.apply(this, arguments)\n                        }))\n                    },\n                    beforeRouteLeave: function(e, t, i) {\n                        this.closeStream(), i()\n                    }\n                };\n                i(46029);\n                const T = (0, L.Z)(E, (function() {\n                    var e = this,\n                        t = e._self._c;\n                    const Lg = new Language(modifyState.language);\n                    return t(\"div\", {\n                        staticClass: \"main-connection-view relative\",\n                        on: {\n                            click: function(t) {\n                                e.isShowTypeFilter = !1\n                            }\n                        }\n                    }, [t(\"EscCapture\", {\n                        directives: [{\n                            name: \"show\",\n                            rawName: \"v-show\",\n                            value: e.isShowTypeFilter,\n                            expression: \"isShowTypeFilter\"\n                        }],\n                        staticClass: \"translate-y-[2px] flex min-w-[500px] w-[calc(100%-200px)] h-[calc(100%-300px)] min-h-[400px] absolute rounded overflow-hidden z-10 shadow-lg text-sm border border-[color:var(--bc)] left-1/2 -translate-x-1/2 top-[32px]\",\n                        on: {\n                            click: function(e) {\n                                e.stopPropagation()\n                            },\n                            esc: function(t) {\n                                e.isShowTypeFilter = !1\n                            }\n                        }\n                    }, [t(\"div\", {\n                        staticClass: \"bg-[color:var(--bgc)] w-fit flex flex-col flex-shrink-0 items-center\"\n                    }, [e._l(e.filterTypes, (function(i, n) {\n                        return t(\"div\", {\n                            key: i.key,\n                            staticClass: \"h-[40px] px-3 flex items-center justify-center w-full clickable\",\n                            class: e.itemStyle(n),\n                            on: {\n                                click: function(t) {\n                                    e.filterTypeIndex = n\n                                }\n                            }\n                        }, [e._v(\"\\n        \" + e._s(i.title) + \"\\n      \")])\n                    })), e._v(\" \"), t(\"div\", {\n                        staticClass: \"flex-grow bg-[color:var(--mbgc)] w-full\",\n                        class: e.itemStyle(e.filterTypes.length)\n                    })], 2), e._v(\" \"), t(\"div\", {\n                        staticClass: \"bg-[color:var(--bgc)] flex-1 flex flex-col overflow-y-auto scrolly\"\n                    }, e._l(e.connTypeLabels, (function(i) {\n                        return t(\"div\", {\n                            key: i,\n                            staticClass: \"hover:bg-[color:var(--proxy-item-bgc)] h-fit flex items-center break-all py-1 font-normal px-2 clickable gap-x-1\",\n                            on: {\n                                click: function(t) {\n                                    e.searchText = \"\".concat(e.filterTypes[e.filterTypeIndex].key, \"=\").concat(i), e.isShowTypeFilter = !1\n                                }\n                            }\n                        }, [t(\"div\", {\n                            staticClass: \"icon text-sm\"\n                        }, [e._v(\"search\")]), e._v(\" \"), t(\"div\", [e._v(e._s(i))])])\n                    })), 0)]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"header relative\"\n                    }, [e._m(0), e._v(\" \"), t(\"div\", {\n                        staticClass: \"search-area relative\"\n                    }, [t(\"input\", {\n                        directives: [{\n                            name: \"model\",\n                            rawName: \"v-model\",\n                            value: e.searchText,\n                            expression: \"searchText\"\n                        }],\n                        ref: \"search-text-input\",\n                        staticClass: \"search-box\",\n                        attrs: {\n                            type: Lg.text(),\n                            placeholder: Lg.search()\n                        },\n                        domProps: {\n                            value: e.searchText\n                        },\n                        on: {\n                            click: function(t) {\n                                t.stopPropagation(), e.isShowTypeFilter = !0, e.$refs[\"search-text-input\"].focus()\n                            },\n                            change: function(t) {\n                                e.isShowTypeFilter = !1\n                            },\n                            input: function(t) {\n                                t.target.composing || (e.searchText = t.target.value)\n                            }\n                        }\n                    }), e._v(\" \"), e.searchText ? t(\"span\", {\n                        staticClass: \"icon text-sm absolute right-2 h-full flex top-0 items-center clickable\",\n                        on: {\n                            click: function(t) {\n                                t.stopPropagation(), e.searchText = \"\", e.$refs[\"search-text-input\"].focus(), e.isShowTypeFilter = !0\n                            }\n                        }\n                    }, [e._v(\"close\")]) : e._e()]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"header-right\"\n                    }, [t(\"div\", {\n                        staticClass: \"total-hint\"\n                    }, [e._v(\"\\n        \" + e._s(Lg.total() + \": ↑\".concat(e.traffic(e.data.uploadTotal, 1), \" ↓\").concat(e.traffic(e.data.downloadTotal, 1))) + \"\\n      \")])])]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"control-view border-b border-b-[color:var(--bc)]\"\n                    }, [t(\"div\", {\n                        staticClass: \"labels overflow-clip justify-between w-full\"\n                    }, [t(\"Hint\", {\n                        class: e.calcLabelClasses(0),\n                        attrs: {\n                            hint: Lg.uploadSpeed()\n                        },\n                        on: {\n                            click: function(t) {\n                                return e.handleLableSelect(0)\n                            }\n                        }\n                    }, [t(\"div\", {\n                        staticClass: \"flex gap-1\"\n                    }, [t(\"span\", {\n                        staticClass: \"icon\"\n                    }, [e._v(\"upload\")]), t(\"span\", {\n                        staticClass: \"icon\"\n                    }, [e._v(\"speed\")])])]), e._v(\" \"), t(\"Hint\", {\n                        class: e.calcLabelClasses(1),\n                        attrs: {\n                            hint: Lg.downloadSpeed()\n                        },\n                        on: {\n                            click: function(t) {\n                                return e.handleLableSelect(1)\n                            }\n                        }\n                    }, [t(\"div\", {\n                        staticClass: \"flex gap-1\"\n                    }, [t(\"span\", {\n                        staticClass: \"icon\"\n                    }, [e._v(\"download\")]), t(\"span\", {\n                        staticClass: \"icon\"\n                    }, [e._v(\"speed\")])])]), e._v(\" \"), t(\"Hint\", {\n                        class: e.calcLabelClasses(2),\n                        attrs: {\n                            hint: Lg.uploadTraffic()\n                        },\n                        on: {\n                            click: function(t) {\n                                return e.handleLableSelect(2)\n                            }\n                        }\n                    }, [t(\"div\", {\n                        staticClass: \"flex gap-1\"\n                    }, [t(\"span\", {\n                        staticClass: \"icon\"\n                    }, [e._v(\"upload\")]), t(\"span\", {\n                        staticClass: \"icon\"\n                    }, [e._v(\"signal_cellular_alt\")])])]), e._v(\" \"), t(\"Hint\", {\n                        class: e.calcLabelClasses(3),\n                        attrs: {\n                            hint: Lg.downloadTraffic()\n                        },\n                        on: {\n                            click: function(t) {\n                                return e.handleLableSelect(3)\n                            }\n                        }\n                    }, [t(\"div\", {\n                        staticClass: \"flex gap-1\"\n                    }, [t(\"span\", {\n                        staticClass: \"icon\"\n                    }, [e._v(\"download\")]), t(\"span\", {\n                        staticClass: \"icon\"\n                    }, [e._v(\"signal_cellular_alt\")])])]), e._v(\" \"), t(\"Hint\", {\n                        class: e.calcLabelClasses(4),\n                        attrs: {\n                            hint: Lg.startTime()\n                        },\n                        on: {\n                            click: function(t) {\n                                return e.handleLableSelect(4)\n                            }\n                        }\n                    }, [t(\"span\", {\n                        staticClass: \"icon\"\n                    }, [e._v(\"schedule\")])]), e._v(\" \"), t(\"Hint\", {\n                        class: e.calcLabelClasses(5),\n                        attrs: {\n                            hint: Lg.destination()\n                        },\n                        on: {\n                            click: function(t) {\n                                return e.handleLableSelect(5)\n                            }\n                        }\n                    }, [t(\"span\", {\n                        staticClass: \"icon\"\n                    }, [e._v(\"computer\")])]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"flex-grow\"\n                    }), e._v(\" \"), t(\"div\", {\n                        class: [\"close-all-btn\", e.isPause ? \"button-resume\" : \"button-pause\"],\n                        on: {\n                            click: e.handleSwitchPauseStatus\n                        }\n                    }, [e._v(\"\\n        \" + e._s(e.isPause ? Lg.resume() : Lg.pause()) + \"\\n      \")]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"close-all-btn\",\n                        on: {\n                            click: e.handleCloseAllConnections\n                        }\n                    }, [e._v(\"\\n        \" + Lg.closeAll() + \"\\n        \"), t(\"span\", [e._v(\"(\" + e._s(e.orderedConnections.length) + \")\")])])], 1)]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"scroll-view\"\n                    }, e._l(e.orderedConnections, (function(i) {\n                        return t(\"div\", {\n                            key: i.id,\n                            class: [\"conn-item\", i.closed ? \"conn-item-closed\" : \"\"],\n                            on: {\n                                click: function(t) {\n                                    return e.handleItemSelected(i)\n                                }\n                            }\n                        }, [t(\"div\", [t(\"div\", {\n                            staticClass: \"conn-item-top\"\n                        }, [t(\"div\", {\n                            staticClass: \"conn-host\"\n                        }, [e._v(\"\\n            \" + e._s(i.metadata.host || i.metadata.destinationIP) + \":\" + e._s(i.metadata.destinationPort) + \"\\n          \")])]), e._v(\" \"), t(\"div\", {\n                            staticClass: \"conn-labels\"\n                        }, [t(\"div\", {\n                            staticClass: \"conn1\"\n                        }, [e._v(\"\\n            \" + e._s(i.metadata.network.toUpperCase()) + \"\\n          \")]), e._v(\" \"), t(\"div\", {\n                            staticClass: \"conn2\"\n                        }, [e._v(e._s(i.metadata.type))]), e._v(\" \"), e.settings.connShowProcess && e.connectionProcess(i) ? t(\"div\", {\n                            staticClass: \"conn7\"\n                        }, [e._v(\"\\n            \" + e._s(e.connectionProcess(i)) + \"\\n          \")]) : e._e(), e._v(\" \"), e.connectionGroup(i) ? t(\"div\", {\n                            staticClass: \"conn3\"\n                        }, [e._v(\"\\n            \" + e._s(e.connectionGroup(i)) + \"\\n          \")]) : e._e(), e._v(\" \"), e.connectionEndpoint(i) ? t(\"div\", {\n                            staticClass: \"conn4\"\n                        }, [e._v(\"\\n            \" + e._s(e.connectionEndpoint(i)) + \"\\n          \")]) : e._e(), e._v(\" \"), t(\"div\", {\n                            staticClass: \"conn5\"\n                        }, [e._v(\"\\n            \" + e._s(e.upperCaseFirst(e.fromNow(i.start))) + \"\\n          \")]), e._v(\" \"), i.speed.upload || i.speed.download ? t(\"div\", {\n                            staticClass: \"conn6\"\n                        }, [e._v(\"\\n            \" + e._s(e.calcSpeedText(i)) + \"\\n          \")]) : e._e()])]), e._v(\" \"), i.closed || e.isPause ? e._e() : t(\"div\", {\n                            staticClass: \"close-btn\",\n                            on: {\n                                click: function(t) {\n                                    return t.stopPropagation(), e.handleCloseConnection(i.id)\n                                }\n                            }\n                        }, [t(\"span\", {\n                            staticClass: \"icon text flex justify-center items-center w-full h-full\"\n                        }, [e._v(\"block\")])])])\n                    })), 0), e._v(\" \"), e.detailConnectionId ? t(\"ConnectionInfoView\", {\n                        attrs: {\n                            connection: e.detailConnection\n                        },\n                        on: {\n                            close: function(t) {\n                                e.detailConnectionId = \"\"\n                            }\n                        }\n                    }) : e._e()], 1)\n                }), [function() {\n                    const Lg = new Language(modifyState.language);\n                    var e = this._self._c;\n                    return e(\"div\", {\n                        staticClass: \"title\"\n                    }, [e(\"div\", [this._v(Lg.connections())])])\n                }], !1, null, \"39b270f2\", null).exports\n            },\n            72797: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    Z: () => Ne\n                });\n                var n = i(63038),\n                    o = i.n(n),\n                    s = i(48926),\n                    r = i.n(s),\n                    a = i(59713),\n                    l = i.n(a),\n                    c = i(87757),\n                    d = i.n(c),\n                    h = i(23321),\n                    u = i(71017),\n                    g = i.n(u),\n                    p = i(57147),\n                    f = i.n(p),\n                    m = i(10605),\n                    v = i.n(m),\n                    _ = i(71893),\n                    b = i.n(_),\n                    w = i(84695),\n                    y = i(86173),\n                    C = i.n(y);\n                const x = require(\"zlib\");\n                var S = i.n(x);\n                const k = require(\"tar-stream\");\n                var L = i.n(k),\n                    N = i(32081),\n                    D = i(33182),\n                    I = i(81518),\n                    E = i(24883),\n                    T = i(97520),\n                    M = i(11442),\n                    A = i.n(M),\n                    O = i(83566),\n                    P = i(72298),\n                    R = i(8369),\n                    F = i(71289);\n                function B(e, t) {\n                    var i = Object.keys(e);\n                    if (Object.getOwnPropertySymbols) {\n                        var n = Object.getOwnPropertySymbols(e);\n                        t && (n = n.filter((function(t) {\n                            return Object.getOwnPropertyDescriptor(e, t).enumerable\n                        }))), i.push.apply(i, n)\n                    }\n                    return i\n                }\n                const V = {\n                    props: [],\n                    data: function() {\n                        return {\n                            retries: 0,\n                            logs: \"\",\n                            intervalID: null\n                        }\n                    },\n                    computed: function(e) {\n                        for (var t = 1; t < arguments.length; t++) {\n                            var i = null != arguments[t] ? arguments[t] : {};\n                            t % 2 ? B(Object(i), !0).forEach((function(t) {\n                                l()(e, t, i[t])\n                            })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(i)) : B(Object(i)).forEach((function(t) {\n                                Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(i, t))\n                            }))\n                        }\n                        return e\n                    }({}, (0, h.mapState)({\n                        clashPath: function(e) {\n                            return e.app.clashPath\n                        },\n                        logFilePath: function(e) {\n                            return e.app.logFilePath\n                        },\n                        errors: function(e) {\n                            return e.app.errors\n                        }\n                    })),\n                    methods: {\n                        openLogsFolder: function(e) {\n                            this.$parent.$parent.showLogsFolder(!0)\n                        },\n                        openHomeDir: function() {\n                            this.clashPath && P.shell.openPath(this.clashPath)\n                        },\n                        autoFix: function(e) {\n                            var t = this;\n                            const Lg = new Language(modifyState.language);\n                            return r()(d().mark((function e() {\n                                var i;\n                                return d().wrap((function(e) {\n                                    for (;;) switch (e.prev = e.next) {\n                                        case 0:\n                                            return e.next = 2, (0, R.vC)({\n                                                title: \"Clash for Windows\",\n                                                type: \"warning\",\n                                                message: Lg.pleaseConfirm(),\n                                                detail: Lg.cfgWillBeRemoved(),\n                                                buttons: [Lg.no(), lg.yes()]\n                                            });\n                                        case 2:\n                                            i = e.sent, 1 === i.response && t.$parent.autoFix();\n                                        case 5:\n                                        case \"end\":\n                                            return e.stop()\n                                    }\n                                }), e)\n                            })))()\n                        }\n                    },\n                    mounted: function() {\n                        var e = this,\n                            t = function () {\n                                const Lg = new Language(modifyState.language);\n                                e.retries += 1;\n                                if (e.clashPath && e.logFilePath) try {\n                                    var t = (0, p.readFileSync)(e.logFilePath),\n                                        i = t.toString().split(\"\\n\").filter((function(e) {\n                                            return /level=fatal/.test(e)\n                                        })).join(\"\\n\\n\");\n                                    i ? e.logs = i : e.errors.length > 0 && (e.logs = e.errors.join(\"\\n\"))\n                                } catch (e) {}\n                                e.retries > 3 && \"\" === e.logs && (e.logs = Lg.failedConnectCore())\n                            };\n                        this.intervalID = F.ZP.add(t, 2e3), t()\n                    },\n                    beforeDestroy: function() {\n                        this.intervalID && (F.ZP.stop(this.intervalID), this.intervalID = null)\n                    }\n                };\n                i(63473), i(38245);\n                var W = i(51900);\n                const H = (0, W.Z)(V, (function() {\n                    var e = this,\n                        t = e._self._c;\n                    const Lg = new Language(modifyState.language);\n                    return t(\"div\", {\n                        attrs: {\n                            id: \"error-view-main\"\n                        }\n                    }, [e.logs ? t(\"div\", {\n                        staticClass: \"error-hints\"\n                    }, [t(\"div\", {\n                        attrs: {\n                            id: \"error-title\"\n                        }\n                    }, [e._v(Lg.error())]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"error-content\"\n                    }, [e._v(e._s(e.logs))]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"error-btns\"\n                    }, [t(\"div\", {\n                        staticClass: \"error-hint\",\n                        on: {\n                            click: e.openHomeDir\n                        }\n                    }, [e._v(Lg.homeDirectory())]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"error-hint\",\n                        on: {\n                            click: e.openLogsFolder\n                        }\n                    }, [e._v(Lg.logsFolder())]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"error-hint\",\n                        on: {\n                            click: e.autoFix\n                        }\n                    }, [e._v(Lg.tryRepair())])])]) : t(\"div\", {\n                        staticClass: \"loading-hint\"\n                    }, [e._v(Lg.loading())])])\n                }), [], !1, null, \"9ba71ad8\", null).exports;\n                var z = i(319),\n                    j = i.n(z),\n                    U = i(17285),\n                    $ = i(62639),\n                    K = i(12436);\n                const q = {\n                    name: \"EditListView\",\n                    model: {\n                        prop: \"list\",\n                        event: \"changed\"\n                    },\n                    props: {\n                        list: {\n                            type: Array,\n                            default: function() {\n                                return []\n                            }\n                        },\n                        disabled: {\n                            type: Boolean,\n                            default: !1\n                        },\n                        placeHolder: {\n                            type: String,\n                            default: \"\"\n                        }\n                    },\n                    data: function() {\n                        return {}\n                    },\n                    methods: {\n                        handleAddItem: function() {\n                            this.$emit(\"changed\", [].concat(j()(this.list), [\"\"]))\n                        },\n                        handleRemoveItem: function(e) {\n                            this.$emit(\"changed\", [].concat(j()(this.list.slice(0, e)), j()(this.list.slice(e + 1))))\n                        },\n                        handleChangeItem: function(e, t) {\n                            this.$emit(\"changed\", [].concat(j()(this.list.slice(0, t)), [e.target.value], j()(this.list.slice(t + 1))))\n                        }\n                    }\n                };\n                i(46918);\n                const Z = (0, W.Z)(q, (function() {\n                    var e = this,\n                        t = e._self._c;\n                    return t(\"div\", {\n                        staticClass: \"main-edit-list-view\"\n                    }, [e._l(e.list, (function(i, n) {\n                        return t(\"div\", {\n                            key: n,\n                            staticClass: \"item\"\n                        }, [t(\"input\", {\n                            staticClass: \"rounded-br-none rounded-tr-none\",\n                            attrs: {\n                                type: \"text\",\n                                disabled: e.disabled,\n                                placeholder: e.placeHolder\n                            },\n                            domProps: {\n                                value: i\n                            },\n                            on: {\n                                input: function(t) {\n                                    return e.handleChangeItem(t, n)\n                                }\n                            }\n                        }), e._v(\" \"), e.disabled ? e._e() : t(\"div\", {\n                            staticClass: \"btn btn-remove clickable\",\n                            on: {\n                                click: function(t) {\n                                    return e.handleRemoveItem(n)\n                                }\n                            }\n                        }, [t(\"span\", {\n                            staticClass: \"icon text-white\"\n                        }, [e._v(\"remove\")])])])\n                    })), e._v(\" \"), e.disabled ? e._e() : t(\"div\", {\n                        staticClass: \"btn btn-add clickable\",\n                        on: {\n                            click: e.handleAddItem\n                        }\n                    }, [t(\"span\", {\n                        staticClass: \"icon text-[#41b883]\"\n                    }, [e._v(\"add\")])])], 2)\n                }), [], !1, null, \"3ea6d831\", null).exports;\n                var G = i(72574),\n                    Y = i(50008),\n                    Q = i.n(Y),\n                    X = i(6479),\n                    J = i.n(X);\n\n                function ee(e) {\n                    var t = function(e, t) {\n                        if (\"object\" !== Q()(e) || null === e) return e;\n                        var i = e[Symbol.toPrimitive];\n                        if (void 0 !== i) {\n                            var n = i.call(e, t || \"default\");\n                            if (\"object\" !== Q()(n)) return n;\n                            throw new TypeError(\"@@toPrimitive must return a primitive value.\")\n                        }\n                        return (\"string\" === t ? String : Number)(e)\n                    }(e, \"string\");\n                    return \"symbol\" === Q()(t) ? t : String(t)\n                }\n\n                function te(e, t) {\n                    var i = Object.keys(e);\n                    if (Object.getOwnPropertySymbols) {\n                        var n = Object.getOwnPropertySymbols(e);\n                        t && (n = n.filter((function(t) {\n                            return Object.getOwnPropertyDescriptor(e, t).enumerable\n                        }))), i.push.apply(i, n)\n                    }\n                    return i\n                }\n\n                function ie(e) {\n                    for (var t = 1; t < arguments.length; t++) {\n                        var i = null != arguments[t] ? arguments[t] : {};\n                        t % 2 ? te(Object(i), !0).forEach((function(t) {\n                            l()(e, t, i[t])\n                        })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(i)) : te(Object(i)).forEach((function(t) {\n                            Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(i, t))\n                        }))\n                    }\n                    return e\n                }\n                const ne = {\n                    name: \"EditObjectView\",\n                    model: {\n                        prop: \"object\",\n                        event: \"changed\"\n                    },\n                    props: {\n                        object: {\n                            type: Object,\n                            default: function() {}\n                        },\n                        disabled: {\n                            type: Boolean,\n                            default: !1\n                        },\n                        valuePlaceHolder: {\n                            type: String,\n                            default: \"\"\n                        },\n                        keyPlaceHolder: {\n                            type: String,\n                            default: \"\"\n                        }\n                    },\n                    data: function() {\n                        return {\n                            addKey: \"\"\n                        }\n                    },\n                    computed: {},\n                    methods: {\n                        handleAddItem: function() {\n                            \"\" === this.addKey || this.addKey in this.object || (this.$emit(\"changed\", ie(ie({}, this.object), {}, l()({}, this.addKey, \"\"))), this.addKey = \"\")\n                        },\n                        handleRemoveItem: function(e) {\n                            var t = this.object,\n                                i = (t[e], J()(t, [e].map(ee)));\n                            this.$emit(\"changed\", i)\n                        },\n                        handleChangeValue: function(e, t) {\n                            var i = e.target.value;\n                            this.$emit(\"changed\", ie(ie({}, this.object), {}, l()({}, t, i)))\n                        }\n                    }\n                };\n                i(60768);\n                const oe = (0, W.Z)(ne, (function() {\n                    var e = this,\n                        t = e._self._c;\n                    return t(\"div\", {\n                        staticClass: \"main-edit-object-view\"\n                    }, [e._l(Object.entries(this.object), (function(i) {\n                        var n = o()(i, 2),\n                            s = n[0],\n                            r = n[1];\n                        return t(\"div\", {\n                            key: s,\n                            staticClass: \"item gap-1\"\n                        }, [t(\"div\", {\n                            staticClass: \"max-w-[120px] text-ellipsis overflow-hidden whitespace-normal flex-shrink-0\",\n                            attrs: {\n                                title: s\n                            }\n                        }, [e._v(\"\\n      \" + e._s(s) + \"\\n    \")]), e._v(\" \"), t(\"span\", [e._v(\":\")]), e._v(\" \"), t(\"input\", {\n                            attrs: {\n                                type: \"text\",\n                                disabled: e.disabled,\n                                placeholder: e.valuePlaceHolder\n                            },\n                            domProps: {\n                                value: r\n                            },\n                            on: {\n                                input: function(t) {\n                                    return e.handleChangeValue(t, s)\n                                }\n                            }\n                        }), e._v(\" \"), e.disabled ? e._e() : t(\"div\", {\n                            staticClass: \"btn btn-remove clickable flex-shrink-0\",\n                            on: {\n                                click: function(t) {\n                                    return e.handleRemoveItem(s)\n                                }\n                            }\n                        }, [t(\"span\", {\n                            staticClass: \"icon text-white\"\n                        }, [e._v(\"remove\")])])])\n                    })), e._v(\" \"), e.disabled ? e._e() : t(\"div\", {\n                        staticClass: \"flex items-center gap-2\",\n                        on: {\n                            click: e.handleAddItem\n                        }\n                    }, [t(\"input\", {\n                        directives: [{\n                            name: \"model\",\n                            rawName: \"v-model\",\n                            value: e.addKey,\n                            expression: \"addKey\"\n                        }],\n                        attrs: {\n                            type: \"text\",\n                            placeholder: e.keyPlaceHolder\n                        },\n                        domProps: {\n                            value: e.addKey\n                        },\n                        on: {\n                            input: function(t) {\n                                t.target.composing || (e.addKey = t.target.value)\n                            }\n                        }\n                    }), e._v(\" \"), t(\"span\", {\n                        staticClass: \"btn btn-add clickable icon text-[#41b883]\"\n                    }, [e._v(\"add\")])])], 2)\n                }), [], !1, null, \"352b843a\", null).exports;\n\n                function se(e, t) {\n                    var i = Object.keys(e);\n                    if (Object.getOwnPropertySymbols) {\n                        var n = Object.getOwnPropertySymbols(e);\n                        t && (n = n.filter((function(t) {\n                            return Object.getOwnPropertyDescriptor(e, t).enumerable\n                        }))), i.push.apply(i, n)\n                    }\n                    return i\n                }\n\n                function re(e) {\n                    for (var t = 1; t < arguments.length; t++) {\n                        var i = null != arguments[t] ? arguments[t] : {};\n                        t % 2 ? se(Object(i), !0).forEach((function(t) {\n                            l()(e, t, i[t])\n                        })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(i)) : se(Object(i)).forEach((function(t) {\n                            Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(i, t))\n                        }))\n                    }\n                    return e\n                }\n                const ae = {\n                    name: \"TunSettingsView\",\n                    components: {\n                        SelectView: U.Z,\n                        SwitchView: $.Z,\n                        SimpleInput: K.Z,\n                        EditList: Z,\n                        EscCapture: G.Z,\n                        EditObject: oe\n                    },\n                    data: function() {\n                        return {\n                            ipv6: !1,\n                            stackType: 0,\n                            nameServers: [],\n                            fallbackServers: [],\n                            defaultNameservers: [],\n                            fakeIPFilters: [],\n                            nameserverPolicy: {},\n                            isAutoDetectInterface: !0,\n                            interfaceName: \"\",\n                            dnsHijacks: [],\n                            isAutoRedir: !1,\n                            isAutoRedirAutoRoute: !1\n                        }\n                    },\n                    computed: re(re({}, (0, h.mapState)({\n                        tunSettings: function(e) {\n                            return e.app.tunSettings\n                        }\n                    })), {}, {\n                        obj: function() {\n                            return (0, R.Sr)(this.$data)\n                        },\n                        text: function() {\n                            return A().stringify(this.obj)\n                        }\n                    }),\n                    watch: {},\n                    methods: re(re({}, (0, h.mapMutations)({\n                        setTunSettings: \"SET_TUN_SETTINGS\"\n                    })), {}, {\n                        handleSave: function() {\n                            this.setTunSettings({\n                                settings: this.$data\n                            }), this.$emit(\"close\")\n                        },\n                        handleReset: function() {\n                            var e = this;\n                            return r()(d().mark((function t() {\n                                return d().wrap((function(t) {\n                                    for (;;) switch (t.prev = t.next) {\n                                        case 0:\n                                            e.setupComponent({});\n                                        case 1:\n                                        case \"end\":\n                                            return t.stop()\n                                    }\n                                }), t)\n                            })))()\n                        },\n                        handleOpenDocument: function() {\n                            P.shell.openExternal(\"https://web.archive.org/web/20231001060822/dreamacro.github.io/clash/configuration/configuration-reference.html\")\n                        },\n                        setupComponent: function() {\n                            var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {},\n                                t = e.ipv6,\n                                i = e.nameServers,\n                                n = e.fallbackServers,\n                                o = e.defaultNameservers,\n                                s = e.fakeIPFilters,\n                                r = e.nameserverPolicy,\n                                a = e.stackType,\n                                l = e.isAutoDetectInterface,\n                                c = e.interfaceName,\n                                d = e.dnsHijacks,\n                                h = e.isAutoRedir,\n                                u = e.isAutoRedirAutoRoute;\n                            this.ipv6 = void 0 !== t && t, this.stackType = [0, 1].includes(a) ? a : 0, this.nameServers = i || [\"8.8.8.8\", \"1.1.1.1\", \"94.140.14.14\"], this.fallbackServers = n || [], this.defaultNameservers = o || [], this.fakeIPFilters = s || [\"+.stun.*.*\", \"+.stun.*.*.*\", \"+.stun.*.*.*.*\", \"+.stun.*.*.*.*.*\", \"*.n.n.srv.nintendo.net\", \"+.stun.playstation.net\", \"xbox.*.*.microsoft.com\", \"*.*.xboxlive.com\"].concat(j()((0, O.Kr)() ? [\"*.msftncsi.com\", \"*.msftconnecttest.com\", \"WORKGROUP\"] : (0, O.V5)() ? [\"apps.apple.com\"] : [])), this.nameserverPolicy = r || {}, this.isAutoDetectInterface = void 0 === l || l, this.interfaceName = c || \"\", this.dnsHijacks = d || [\"any:53\"], this.isAutoRedir = void 0 !== h && h, this.isAutoRedirAutoRoute = void 0 !== u && u\n                        }\n                    }),\n                    mounted: function() {\n                        this.setupComponent(this.tunSettings || {})\n                    },\n                    beforeDestroy: function() {}\n                };\n                i(98803);\n                const le = (0, W.Z)(ae, (function() {\n                    var e = this,\n                        t = e._self._c;\n                    const Lg = new Language(modifyState.language);\n                    return t(\"EscCapture\", {\n                        staticClass: \"main-tun-settings-view bg-[color:var(--mask-c)]\",\n                        on: {\n                            esc: function(t) {\n                                return e.$emit(\"close\")\n                            },\n                            mousedown: function(t) {\n                                return e.$emit(\"close\")\n                            }\n                        }\n                    }, [t(\"div\", {\n                        staticClass: \"content bg-[color:var(--bgc)] text-[color:var(--fgc)]\",\n                        on: {\n                            mousedown: function(e) {\n                                e.stopPropagation()\n                            }\n                        }\n                    }, [t(\"div\", {\n                        staticClass: \"title\"\n                    }, [e._v(Lg.modeSettingsTUN())]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"pannel\"\n                    }, [t(\"div\", {\n                        staticClass: \"left border-[1px] border-[color:var(--bc)]\"\n                    }, [t(\"div\", {\n                        staticClass: \"flex\"\n                    }, [t(\"div\", [e._v(\"DNS IPv6\")]), e._v(\" \"), t(\"SwitchView\", {\n                        model: {\n                            value: e.ipv6,\n                            callback: function(t) {\n                                e.ipv6 = t\n                            },\n                            expression: \"ipv6\"\n                        }\n                    })], 1), e._v(\" \"), t(\"div\", [t(\"div\", [e._v(Lg.serversDNS())]), e._v(\" \"), t(\"EditList\", {\n                        attrs: {\n                            placeHolder: Lg.eg() + \"8.8.8.8\"\n                        },\n                        model: {\n                            value: e.nameServers,\n                            callback: function(t) {\n                                e.nameServers = t\n                            },\n                            expression: \"nameServers\"\n                        }\n                    })], 1), e._v(\" \"), t(\"div\", [t(\"div\", [e._v(Lg.fallbackDNSServers())]), e._v(\" \"), t(\"EditList\", {\n                        attrs: {\n                            placeHolder: Lg.eg() + \"8.8.8.8\"\n                        },\n                        model: {\n                            value: e.fallbackServers,\n                            callback: function(t) {\n                                e.fallbackServers = t\n                            },\n                            expression: \"fallbackServers\"\n                        }\n                    })], 1), e._v(\" \"), t(\"div\", [t(\"div\", [e._v(Lg.deaultNameserver())]), e._v(\" \"), t(\"EditList\", {\n                        attrs: {\n                            placeHolder: Lg.eg() + \"8.8.8.8\"\n                        },\n                        model: {\n                            value: e.defaultNameservers,\n                            callback: function(t) {\n                                e.defaultNameservers = t\n                            },\n                            expression: \"defaultNameservers\"\n                        }\n                    })], 1), e._v(\" \"), t(\"div\", [t(\"div\", [e._v(Lg.fakeIPFilter())]), e._v(\" \"), t(\"EditList\", {\n                        attrs: {\n                            placeHolder: Lg.eg() + \"*.lan\"\n                        },\n                        model: {\n                            value: e.fakeIPFilters,\n                            callback: function(t) {\n                                e.fakeIPFilters = t\n                            },\n                            expression: \"fakeIPFilters\"\n                        }\n                    })], 1), e._v(\" \"), t(\"div\", [t(\"div\", [e._v(Lg.nameserverPolicy())]), e._v(\" \"), t(\"EditObject\", {\n                        attrs: {\n                            keyPlaceHolder: Lg.domain(),\n                            valuePlaceHolder: Lg.server()\n                        },\n                        model: {\n                            value: e.nameserverPolicy,\n                            callback: function(t) {\n                                e.nameserverPolicy = t\n                            },\n                            expression: \"nameserverPolicy\"\n                        }\n                    })], 1), e._v(\" \"), t(\"div\", [t(\"div\", [e._v(Lg.hijacksDNS())]), e._v(\" \"), t(\"EditList\", {\n                        attrs: {\n                            placeHolder: Lg.eg() + \"any:53\"\n                        },\n                        model: {\n                            value: e.dnsHijacks,\n                            callback: function(t) {\n                                e.dnsHijacks = t\n                            },\n                            expression: \"dnsHijacks\"\n                        }\n                    })], 1), e._v(\" \"), t(\"div\", {\n                        staticClass: \"flex\"\n                    }, [t(\"div\", [e._v(Lg.stackTUN())]), e._v(\" \"), t(\"SelectView\", {\n                        attrs: {\n                            items: [\"gvisor\", \"system\"]\n                        },\n                        model: {\n                            value: e.stackType,\n                            callback: function(t) {\n                                e.stackType = t\n                            },\n                            expression: \"stackType\"\n                        }\n                    })], 1), e._v(\" \"), t(\"div\", {\n                        staticClass: \"flex\"\n                    }, [t(\"div\", [e._v(Lg.autoDetectInterface())]), e._v(\" \"), t(\"SwitchView\", {\n                        model: {\n                            value: e.isAutoDetectInterface,\n                            callback: function(t) {\n                                e.isAutoDetectInterface = t\n                            },\n                            expression: \"isAutoDetectInterface\"\n                        }\n                    })], 1), e._v(\" \"), e.isAutoDetectInterface ? e._e() : t(\"div\", {\n                        staticClass: \"flex\"\n                    }, [t(\"div\", [e._v(Lg.interfaceName())]), e._v(\" \"), t(\"input\", {\n                        directives: [{\n                            name: \"model\",\n                            rawName: \"v-model\",\n                            value: e.interfaceName,\n                            expression: \"interfaceName\"\n                        }],\n                        attrs: {\n                            type: \"text\"\n                        },\n                        domProps: {\n                            value: e.interfaceName\n                        },\n                        on: {\n                            input: function(t) {\n                                t.target.composing || (e.interfaceName = t.target.value)\n                            }\n                        }\n                    })]), e._v(\" \"), e.isLinux ? t(\"div\", {\n                        staticClass: \"flex\"\n                    }, [t(\"div\", [e._v(\"Auto Redir\")]), e._v(\" \"), t(\"SwitchView\", {\n                        model: {\n                            value: e.isAutoRedir,\n                            callback: function(t) {\n                                e.isAutoRedir = t\n                            },\n                            expression: \"isAutoRedir\"\n                        }\n                    })], 1) : e._e(), e._v(\" \"), e.isLinux && e.isAutoRedir ? t(\"div\", {\n                        staticClass: \"flex\"\n                    }, [t(\"div\", [e._v(\"Auto Route(Auto Redir)\")]), e._v(\" \"), t(\"SwitchView\", {\n                        model: {\n                            value: e.isAutoRedirAutoRoute,\n                            callback: function(t) {\n                                e.isAutoRedirAutoRoute = t\n                            },\n                            expression: \"isAutoRedirAutoRoute\"\n                        }\n                    })], 1) : e._e()]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"right border-[1px] border-[color:var(--bc)]\"\n                    }, [t(\"pre\", [e._v(e._s(e.text))])])]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"btns\"\n                    }, [t(\"div\", {\n                        staticClass: \"btn clickable\",\n                        on: {\n                            click: e.handleReset\n                        }\n                    }, [e._v(Lg.reset())]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"btn clickable\",\n                        on: {\n                            click: e.handleOpenDocument\n                        }\n                    }, [e._v(Lg.docs())]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"btn clickable\",\n                        on: {\n                            click: e.handleSave\n                        }\n                    }, [e._v(Lg.save())])])])])\n                }), [], !1, null, \"b6dface2\", null).exports;\n\n                function ce(e, t) {\n                    var i = Object.keys(e);\n                    if (Object.getOwnPropertySymbols) {\n                        var n = Object.getOwnPropertySymbols(e);\n                        t && (n = n.filter((function(t) {\n                            return Object.getOwnPropertyDescriptor(e, t).enumerable\n                        }))), i.push.apply(i, n)\n                    }\n                    return i\n                }\n\n                function de(e) {\n                    for (var t = 1; t < arguments.length; t++) {\n                        var i = null != arguments[t] ? arguments[t] : {};\n                        t % 2 ? ce(Object(i), !0).forEach((function(t) {\n                            l()(e, t, i[t])\n                        })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(i)) : ce(Object(i)).forEach((function(t) {\n                            Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(i, t))\n                        }))\n                    }\n                    return e\n                }\n                const he = {\n                    name: \"ResetDNSSettingsView\",\n                    components: {\n                        SelectView: U.Z,\n                        SwitchView: $.Z,\n                        SimpleInput: K.Z,\n                        EditList: Z,\n                        EscCapture: G.Z\n                    },\n                    data: function() {\n                        return {\n                            servers: [],\n                            isUsingCustom: !1\n                        }\n                    },\n                    computed: de({}, (0, h.mapState)({\n                        userDNS: function(e) {\n                            return e.app.userDNS\n                        }\n                    })),\n                    watch: {},\n                    methods: de(de({}, (0, h.mapMutations)({})), {}, {\n                        handleSave: function() {\n                            this.settings.isUsingResetDNSServers = this.isUsingCustom, this.settings.resetDNSServers = this.servers, this.$emit(\"close\")\n                        },\n                        setupComponent: function() {\n                            var e = this.settings,\n                                t = e.isUsingResetDNSServers,\n                                i = e.resetDNSServers;\n                            this.isUsingCustom = t, this.servers = i\n                        }\n                    }),\n                    mounted: function() {\n                        this.setupComponent()\n                    },\n                    beforeDestroy: function() {}\n                };\n                i(36594);\n                const ue = (0, W.Z)(he, (function() {\n                    var e = this,\n                        t = e._self._c;\n                    const Lg = new Language(modifyState.language);\n                    return t(\"EscCapture\", {\n                        staticClass: \"main-tun-settings-view bg-[color:var(--mask-c)]\",\n                        on: {\n                            esc: function(t) {\n                                return e.$emit(\"close\")\n                            },\n                            mousedown: function(t) {\n                                return e.$emit(\"close\")\n                            }\n                        }\n                    }, [t(\"div\", {\n                        staticClass: \"content bg-[color:var(--bgc)] text-[color:var(--fgc)]\",\n                        on: {\n                            mousedown: function(e) {\n                                e.stopPropagation()\n                            }\n                        }\n                    }, [t(\"div\", {\n                        staticClass: \"title\"\n                    }, [e._v(Lg.resetDNSSettings())]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"font-normal mb-1 text-sm hint\"\n                    }, [e._v(\"\\n      If \"), t(\"span\", [e._v(Lg.enabled())]), e._v(\", \"), t(\"span\", [e._v(Lg.customServers())]), e._v(\" will be used to\\n      reset the system DNS after TUN mode is disabled. Otherwise,\\n      \"), t(\"span\", [e._v(\"Detected Servers\")]), e._v(\"\\n      will be used.\\n    \")]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"pannel\"\n                    }, [t(\"div\", {\n                        staticClass: \"left border-[1px] border-[color:var(--bc)]\"\n                    }, [t(\"div\", {\n                        staticClass: \"flex\"\n                    }, [t(\"div\", [e._v(Lg.enable())]), e._v(\" \"), t(\"SwitchView\", {\n                        model: {\n                            value: e.isUsingCustom,\n                            callback: function(t) {\n                                e.isUsingCustom = t\n                            },\n                            expression: \"isUsingCustom\"\n                        }\n                    })], 1), e._v(\" \"), t(\"div\", [t(\"div\", [e._v(\"Custom Servers:\")]), e._v(\" \"), t(\"EditList\", {\n                        model: {\n                            value: e.servers,\n                            callback: function(t) {\n                                e.servers = t\n                            },\n                            expression: \"servers\"\n                        }\n                    })], 1)]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"right border-[1px] border-[color:var(--bc)]\"\n                    }, [t(\"div\", [t(\"div\", [e._v(\"Detected Servers:\")]), e._v(\" \"), t(\"EditList\", {\n                        attrs: {\n                            disabled: !0\n                        },\n                        model: {\n                            value: e.userDNS,\n                            callback: function(t) {\n                                e.userDNS = t\n                            },\n                            expression: \"userDNS\"\n                        }\n                    })], 1)])]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"btns\"\n                    }, [t(\"div\"), e._v(\" \"), t(\"div\", {\n                        staticClass: \"btn clickable\",\n                        on: {\n                            click: e.handleSave\n                        }\n                    }, [e._v(Lg.save())])])])])\n                }), [], !1, null, \"47896be6\", null).exports;\n                var ge = i(22037);\n                const pe = {\n                    name: \"InterfacesView\",\n                    components: {\n                        EscCapture: G.Z,\n                        SelectView: U.Z\n                    },\n                    data: function() {\n                        return {\n                            interfaces: [],\n                            ipvIndex: 0\n                        }\n                    },\n                    computed: {\n                        ifs: function() {\n                            var e = this;\n                            return this.interfaces.reduce((function(t, i) {\n                                var n = i.name,\n                                    o = i.addrs.filter((function(t) {\n                                        return t.family === [\"IPv4\", \"IPv6\"][e.ipvIndex]\n                                    }));\n                                return o.length > 0 && t.push({\n                                    name: n,\n                                    addrs: o\n                                }), t\n                            }), [])\n                        }\n                    },\n                    mounted: function() {\n                        this.interfaces = Object.entries((0, ge.networkInterfaces)()).map((function(e) {\n                            var t = o()(e, 2);\n                            return {\n                                name: t[0],\n                                addrs: t[1]\n                            }\n                        }))\n                    }\n                };\n                i(30145);\n                const fe = (0, W.Z)(pe, (function() {\n                    var e = this,\n                        t = e._self._c;\n                    const Lg = new Language(modifyState.language);\n                    return t(\"EscCapture\", {\n                        staticClass: \"w-[calc(100%_-_170px)] h-[calc(100%_-_25px)] absolute top-[25px] left-[170px] bg-[color:var(--mask-c)] flex flex-col justify-center items-center\",\n                        on: {\n                            esc: function(t) {\n                                return e.$emit(\"close\")\n                            },\n                            mousedown: function(t) {\n                                return e.$emit(\"close\")\n                            }\n                        }\n                    }, [t(\"div\", {\n                        staticClass: \"w-[500px] max-h-[500px] rounded bg-[color:var(--bgc)] text-[color:var(--fgc)] overflow-auto flex flex-col items-center\",\n                        on: {\n                            mousedown: function(e) {\n                                e.stopPropagation()\n                            }\n                        }\n                    }, [t(\"div\", {\n                        staticClass: \"flex justify-between w-full bg-[color:var(--bgc)] px-5 py-3 border-[color:var(--bc)] border-b\"\n                    }, [t(\"span\", [e._v(Lg.networkInterfaces())]), e._v(\" \"), t(\"SelectView\", {\n                        attrs: {\n                            items: [\"IPv4\", \"IPv6\"]\n                        },\n                        model: {\n                            value: e.ipvIndex,\n                            callback: function(t) {\n                                e.ipvIndex = t\n                            },\n                            expression: \"ipvIndex\"\n                        }\n                    })], 1), e._v(\" \"), t(\"div\", {\n                        staticClass: \"list w-full flex-grow flex flex-col gap-2 px-5 py-4\"\n                    }, e._l(e.ifs, (function(i) {\n                        return t(\"div\", {\n                            key: i.name,\n                            staticClass: \"if-list rounded w-full\"\n                        }, [t(\"span\", {\n                            staticClass: \"text-base w-full text-center\"\n                        }, [e._v(e._s(i.name))]), e._v(\" \"), e._l(i.addrs, (function(i) {\n                            return t(\"div\", {\n                                key: i.address,\n                                staticClass: \"text-sm flex flex-col\",\n                                style: {\n                                    color: i.internal ? \"#D44545\" : \"#13AF42\"\n                                }\n                            }, [t(\"div\", {\n                                staticClass: \"flex\"\n                            }, [t(\"span\", {\n                                staticClass: \"w-[80px]\"\n                            }, [e._v(\"Address:\")]), e._v(\" \"), t(\"span\", [e._v(e._s(i.address))])]), e._v(\" \"), t(\"div\", {\n                                staticClass: \"flex\"\n                            }, [t(\"span\", {\n                                staticClass: \"w-[80px]\"\n                            }, [e._v(\"Netmask:\")]), e._v(\" \"), t(\"span\", [e._v(e._s(i.netmask) + \"\\n              \"), i.cidr ? t(\"span\", [e._v(\"(\" + e._s(i.cidr.split(\"/\")[1]) + \")\")]) : e._e()])]), e._v(\" \"), t(\"div\", {\n                                staticClass: \"flex\"\n                            }, [t(\"span\", {\n                                staticClass: \"w-[80px]\"\n                            }, [e._v(\"MAC:\")]), e._v(\" \"), t(\"span\", [e._v(e._s(i.mac))])])])\n                        }))], 2)\n                    })), 0)])])\n                }), [], !1, null, \"d9b850ea\", null).exports;\n                var me = i(36336),\n                    ve = i(13338),\n                    _e = i(27458);\n\n                function be(e, t) {\n                    var i = Object.keys(e);\n                    if (Object.getOwnPropertySymbols) {\n                        var n = Object.getOwnPropertySymbols(e);\n                        t && (n = n.filter((function(t) {\n                            return Object.getOwnPropertyDescriptor(e, t).enumerable\n                        }))), i.push.apply(i, n)\n                    }\n                    return i\n                }\n\n                function we(e) {\n                    for (var t = 1; t < arguments.length; t++) {\n                        var i = null != arguments[t] ? arguments[t] : {};\n                        t % 2 ? be(Object(i), !0).forEach((function(t) {\n                            l()(e, t, i[t])\n                        })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(i)) : be(Object(i)).forEach((function(t) {\n                            Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(i, t))\n                        }))\n                    }\n                    return e\n                }\n                var ye = i(63878)(\"./service_\".concat(process.platform)),\n                    Ce = (ye.status, ye.statusService, ye.needUpdate),\n                    xe = ye.updateService,\n                    Se = ye.installService,\n                    ke = ye.uninstallService;\n                const Le = {\n                    components: {\n                        ErrorView: H,\n                        TunSettingsView: le,\n                        ResetDNSSettingsView: ue,\n                        InterfacesView: fe,\n                        SwitchView: $.Z,\n                        SelectView: U.Z,\n                        InfoIcon: me.Z,\n                        Hint: ve.Z\n                    },\n                    props: [],\n                    data: function() {\n                        return {\n                            iconPath: \"static/imgs/logo2.png\",\n                            title: \"Clash for Windows\",\n                            isAllowLan: !1,\n                            bindAddress: \"\",\n                            port: 0,\n                            logLevel: \"unknow\",\n                            isIPV6: !1,\n                            geoipUpdateTime: \"\",\n                            systemProxyLoading: !0,\n                            autoLaunch: E.Z.get(I.Z.AUTO_LAUNCH) || !1,\n                            autoLaunchLoading: !0,\n                            protableMode: !1,\n                            version: \"\",\n                            clashCoreVersion: \"\",\n                            serviceNeedUpdate: !1,\n                            isTunSettingsVisible: !1,\n                            isInterfacesVisible: !1,\n                            isFetchingFirewallRule: !1,\n                            isResetDNSSettingsVisible: !1\n                        }\n                    },\n                    watch: {\n                        status: function() {\n                            this.setupSwitches()\n                        },\n                        isWindowShow: function(e) {\n                            e && (this.setupComponent(), this.setupSwitches())\n                        },\n                        isLaunching: function(e) {\n                            e || this.setupComponent()\n                        },\n                        clashStatus: function(e) {\n                            e === D.Z.CONNECTED && this.setupComponent()\n                        },\n                        clashPath: function() {\n                            this.serviceNeedUpdate = Ce()\n                        }\n                    },\n                    computed: we(we(we({}, (0, h.mapState)({\n                        devMode: function(e) {\n                            return e.app.isDevMode\n                        },\n                        clashPath: function(e) {\n                            return e.app.clashPath\n                        },\n                        clashStatus: function(e) {\n                            return e.app.clashStatus\n                        },\n                        confData: function(e) {\n                            return e.app.confData\n                        },\n                        isMixinEnable: function(e) {\n                            return e.app.isMixinEnable\n                        },\n                        isTunEnable: function(e) {\n                            return e.app.isTunEnable\n                        },\n                        status: function(e) {\n                            return e.app.status\n                        },\n                        isWindowShow: function(e) {\n                            return e.app.isWindowShow\n                        },\n                        isLocalMode: function(e) {\n                            return e.app.isLocalMode\n                        },\n                        isLaunching: function(e) {\n                            return e.app.isLaunching\n                        },\n                        isSystemProxyOn: function(e) {\n                            return e.app.isSystemProxyOn\n                        },\n                        isSilentUpgraded: function(e) {\n                            return e.app.isSilentUpgraded\n                        },\n                        updateDownloadProgress: function(e) {\n                            return e.app.updateDownloadProgress\n                        },\n                        isFirewallRuleExist: function(e) {\n                            return e.app.isFirewallRuleExist\n                        },\n                        currentProfilePayload: function(e) {\n                            return e.app.currentProfilePayload\n                        },\n                        matchedSSID: function(e) {\n                            return e.app.matchedSSID\n                        }\n                    })), (0, h.mapGetters)([\"resourcesPath\", \"filesPath\", \"mixedPort\", \"clashAxiosClient\", \"controllerPort\", \"secret\"])), {}, {\n                        autoLaunchHint: function() {\n                            const Lg = new Language(modifyState.language);\n                            return (0, O.V5)() ? Lg.startWithMacOS() : (0, O.Kr)() ? Lg.startWithWindows() : (0, O.IJ)() ? Lg.startWithLinux() : void 0\n                        },\n                        isShowNewIcon: function() {\n                            var e = this.settings.showNewVersionIcon,\n                                t = void 0 === e || e,\n                                i = this.$parent.newVersionInfo.url;\n                            return t && i\n                        }\n                    }),\n                    methods: we(we({}, (0, h.mapMutations)({\n                        changeIsMixinEnable: \"CHANGE_IS_MIXIN_ENABLE\",\n                        changeIsTunEnable: \"CHANGE_IS_TUN_ENABLE\",\n                        setIsLocalMode: \"SET_IS_LOCAL_MODE\",\n                        setConfData: \"SET_CONF_DATA\",\n                        setIsSystemProxyOn: \"SET_IS_SYSTEM_PROXY_ON\",\n                        setIsFirewallRuleExist: \"SET_IS_FIREWALL_RULE_EXIST\"\n                    })), {}, {\n                        handleTitleClick: function() {\n                            P.ipcRenderer.invoke(\"window\", \"reload\")\n                        },\n                        handleShowDNSQueryDialog: function() {\n                            this.$dns().catch((function(e) {}))\n                        },\n                        handleShowScriptTestDialog: function() {\n                            this.$script({}).catch((function(e) {}))\n                        },\n                        handlePreviewCurrentPayload: function() {\n                            this.$code({\n                                code: A().stringify(this.currentProfilePayload),\n                                readOnly: !0\n                            }).catch((function(e) {}))\n                        },\n                        handleAddFirewallRules: function() {\n                            var e = this;\n                            return r()(d().mark((function t() {\n                                return d().wrap((function(t) {\n                                    for (;;) switch (t.prev = t.next) {\n                                        case 0:\n                                            if (!e.isFetchingFirewallRule) {\n                                                t.next = 2;\n                                                break\n                                            }\n                                            return t.abrupt(\"return\");\n                                        case 2:\n                                            if (e.isFetchingFirewallRule = !0, t.prev = 3, !e.isFirewallRuleExist) {\n                                                t.next = 9;\n                                                break\n                                            }\n                                            return t.next = 7, (0, _e.A7)();\n                                        case 7:\n                                            t.next = 11;\n                                            break;\n                                        case 9:\n                                            return t.next = 11, (0, _e.Kz)();\n                                        case 11:\n                                            t.next = 15;\n                                            break;\n                                        case 13:\n                                            t.prev = 13, t.t0 = t.catch(3);\n                                        case 15:\n                                            return t.t1 = e, t.next = 18, (0, _e.Qz)();\n                                        case 18:\n                                            t.t2 = t.sent, t.t3 = {\n                                                isExist: t.t2\n                                            }, t.t1.setIsFirewallRuleExist.call(t.t1, t.t3), e.isFetchingFirewallRule = !1;\n                                        case 22:\n                                        case \"end\":\n                                            return t.stop()\n                                    }\n                                }), t, null, [\n                                    [3, 13]\n                                ])\n                            })))()\n                        },\n                        handleEditMixin: function() {\n                            var e = this;\n                            const defMixin = 'mixin: # object\\n  dns:\\n    enable: true\\n    listen: :53\\n    enhanced-mode: fake-ip\\n    nameserver:\\n      - 8.8.8.8\\n    fallback:\\n      - 8.8.4.4\\n    fake-ip-filter:\\n      - +.stun.*.*\\n      - +.stun.*.*.*\\n      - +.stun.*.*.*.*\\n      - +.stun.*.*.*.*.*\\n      - \" *.n.n.srv.nintendo.net\"\\n      - +.stun.playstation.net\\n      - xbox.*.*.microsoft.com\\n      - \"*.*.xboxlive.com\"\\n      - \"*.msftncsi.com\"\\n      - \"*.msftconnecttest.com\"\\n      - WORKGROUP\\n'\n                            return r()(d().mark((function t() {\n                                var i, n, o, s, r, a, l, c, h, u;\n                                return d().wrap((function(t) {\n                                    for (;;) switch (t.prev = t.next) {\n                                        case 0:\n                                            return i = e.settings, n = i.mixinText, o = void 0 === n ? defMixin : n, s = i.mixinType, r = void 0 === s ? 0 : s, a = i.mixinCode, l = void 0 === a ? \"module.exports.parse = ({ content, name, url }, { yaml, axios, notify }) => {\\n  return content\\n}\" : a, t.prev = 1, t.next = 4, e.$code({\n                                                code: 0 === r ? o : l,\n                                                language: 0 === r ? \"yaml\" : \"javascript\",\n                                                fontSize: e.settings.editorFontSize\n                                            });\n                                        case 4:\n                                            c = t.sent, h = c.code, (u = void 0 === h ? \"\" : h) !== (0 === r ? o : l) && (0 === r ? e.settings.mixinText = u : e.settings.mixinCode = u), t.next = 12;\n                                            break;\n                                        case 10:\n                                            t.prev = 10, t.t0 = t.catch(1);\n                                        case 12:\n                                        case \"end\":\n                                            return t.stop()\n                                    }\n                                }), t, null, [\n                                    [1, 10]\n                                ])\n                            })))()\n                        },\n                        handleEditSSIDStrategyText: function() {\n                            var e = this;\n                            return r()(d().mark((function t() {\n                                var i, n, o, s;\n                                return d().wrap((function(t) {\n                                    for (;;) switch (t.prev = t.next) {\n                                        case 0:\n                                            return i = e.settings.ssidStrategyText, t.prev = 1, t.next = 4, e.$code({\n                                                code: i,\n                                                language: \"yaml\",\n                                                fontSize: e.settings.editorFontSize\n                                            });\n                                        case 4:\n                                            n = t.sent, o = n.code, (s = void 0 === o ? \"\" : o) !== i && (e.settings.ssidStrategyText = s, e.$parent.setSSIDOptions()), t.next = 12;\n                                            break;\n                                        case 10:\n                                            t.prev = 10, t.t0 = t.catch(1);\n                                        case 12:\n                                        case \"end\":\n                                            return t.stop()\n                                    }\n                                }), t, null, [\n                                    [1, 10]\n                                ])\n                            })))()\n                        },\n                        installService: function() {\n                            var e = this;\n                            const Lg = new Language(modifyState.language);\n                            return r()(d().mark((function t() {\n                                var i, n, s, r, a, l, c;\n                                return d().wrap((function(t) {\n                                    for (;;) switch (t.prev = t.next) {\n                                        case 0:\n                                            return i = [Lg.install(), Lg.uninstall()], e.serviceNeedUpdate && i.push(Lg.update()), t.next = 4, e.$select({\n                                                title: Lg.serviceManagement(),\n                                                message: Lg.serviceManagementDescribe().concat(e.isLocalMode ? Lg.inactive() : Lg.active()),\n                                                items: i,\n                                                subSelectItems: (0, O.Kr)() ? [\"schtasks(\" + Lg.recommended() + \")\", \"winsw\"] : [],\n                                                subSelectTitle: Lg.installMethod()\n                                            });\n                                        case 4:\n                                            if (n = t.sent, s = o()(n, 2), r = s[0], a = s[1], t.prev = 8, 0 !== r) {\n                                                t.next = 17;\n                                                break\n                                            }\n                                            if (e.isLocalMode) {\n                                                t.next = 14;\n                                                break\n                                            }\n                                            return t.next = 13, (0, R.vC)({\n                                                type: \"error\",\n                                                message: \"The service is already installed.\"\n                                            });\n                                        case 13:\n                                            return t.abrupt(\"return\");\n                                        case 14:\n                                            return t.next = 16, Se(a);\n                                        case 16:\n                                            e.devMode || e.reloadElectron();\n                                        case 17:\n                                            if (1 !== r) {\n                                                t.next = 21;\n                                                break\n                                            }\n                                            return t.next = 20, ke();\n                                        case 20:\n                                            e.devMode || e.reloadElectron();\n                                        case 21:\n                                            if (2 !== r) {\n                                                t.next = 25;\n                                                break\n                                            }\n                                            return t.next = 24, xe();\n                                        case 24:\n                                            e.devMode || e.reloadElectron();\n                                        case 25:\n                                            t.next = 35;\n                                            break;\n                                        case 27:\n                                            return t.prev = 27, t.t0 = t.catch(8), t.next = 31, e.$select({\n                                                title: Lg.failTo().concat(i[r].toLowerCase(), Lg.serviceMode()),\n                                                message: t.t0.message,\n                                                items: [Lg.reloadAPP(), Lg.cancel()]\n                                            });\n                                        case 31:\n                                            l = t.sent, c = o()(l, 1), 0 === c[0] && e.reloadElectron();\n                                        case 35:\n                                        case \"end\":\n                                            return t.stop()\n                                    }\n                                }), t, null, [\n                                    [8, 27]\n                                ])\n                            })))()\n                        },\n                        handleAllowLANChange: function() {\n                            var e = this;\n                            return r()(d().mark((function t() {\n                                var i;\n                                return d().wrap((function(t) {\n                                    for (;;) switch (t.prev = t.next) {\n                                        case 0:\n                                            return i = !e.isAllowLan, t.next = 3, e.clashAxiosClient.patch(\"/configs\", {\n                                                \"allow-lan\": i\n                                            });\n                                        case 3:\n                                            if (204 !== t.sent.status) {\n                                                t.next = 9;\n                                                break\n                                            }\n                                            return e.isAllowLan = i, t.next = 8, (0, R.F0)(g().join(e.clashPath, \"config.yaml\"), \"allow-lan\", i);\n                                        case 8:\n                                            e.setConfData({\n                                                data: we(we({}, e.confData), {}, {\n                                                    \"allow-lan\": i\n                                                })\n                                            });\n                                        case 9:\n                                        case \"end\":\n                                            return t.stop()\n                                    }\n                                }), t)\n                            })))()\n                        },\n                        handleIPV6Change: function() {\n                            var e = this;\n                            return r()(d().mark((function t() {\n                                var i, n;\n                                return d().wrap((function(t) {\n                                    for (;;) switch (t.prev = t.next) {\n                                        case 0:\n                                            return i = !e.isIPV6, t.next = 3, e.clashAxiosClient.patch(\"/configs\", {\n                                                ipv6: i\n                                            });\n                                        case 3:\n                                            if (n = t.sent, 204 !== n.status) {\n                                                t.next = 10;\n                                                break\n                                            }\n                                            return e.isIPV6 = i, t.next = 9, (0, R.F0)(g().join(e.clashPath, \"config.yaml\"), \"ipv6\", i);\n                                        case 9:\n                                            e.setConfData({\n                                                data: we(we({}, e.confData), {}, {\n                                                    ipv6: i\n                                                })\n                                            });\n                                        case 10:\n                                        case \"end\":\n                                            return t.stop()\n                                    }\n                                }), t)\n                            })))()\n                        },\n                        handleEditLogLevel: function() {\n                            var e = this;\n                            const Lg = new Language(modifyState.language);\n                            return r()(d().mark((function t() {\n                                var i, n, s, r, a, l;\n                                return d().wrap((function(t) {\n                                    for (;;) switch (t.prev = t.next) {\n                                        case 0:\n                                            return t.prev = 0, i = [\"silent\", \"error\", \"warning\", \"info\", \"debug\"], t.next = 4, e.$select({\n                                                title: Lg.changeLogLevel(),\n                                                message: Lg.silentDescribe(),\n                                                items: Lg.logLevelSelection(),\n                                            });\n                                        case 4:\n                                            return n = t.sent, s = o()(n, 1), r = s[0], a = i[r], t.next = 10, e.clashAxiosClient.patch(\"/configs\", {\n                                                \"log-level\": a\n                                            });\n                                        case 10:\n                                            if (l = t.sent, 204 !== l.status) {\n                                                t.next = 17;\n                                                break\n                                            }\n                                            return e.logLevel = a, t.next = 16, (0, R.F0)(g().join(e.clashPath, \"config.yaml\"), \"log-level\", a);\n                                        case 16:\n                                            e.setConfData({\n                                                data: we(we({}, e.confData), {}, {\n                                                    \"log-level\": a\n                                                })\n                                            });\n                                        case 17:\n                                            t.next = 21;\n                                            break;\n                                        case 19:\n                                            t.prev = 19, t.t0 = t.catch(0);\n                                        case 21:\n                                        case \"end\":\n                                            return t.stop()\n                                    }\n                                }), t, null, [\n                                    [0, 19]\n                                ])\n                            })))()\n                        },\n                        handleMixinSwitchClick: function(e) {\n                            var t = this;\n                            return r()(d().mark((function e() {\n                                return d().wrap((function(e) {\n                                    for (;;) switch (e.prev = e.next) {\n                                        case 0:\n                                            t.changeIsMixinEnable({\n                                                isMixin: !t.isMixinEnable\n                                            });\n                                        case 1:\n                                        case \"end\":\n                                            return e.stop()\n                                    }\n                                }), e)\n                            })))()\n                        },\n                        handleTunSwitchClick: function(e) {\n                            var t = this;\n                            return r()(d().mark((function e() {\n                                return d().wrap((function(e) {\n                                    for (;;) switch (e.prev = e.next) {\n                                        case 0:\n                                            t.changeIsTunEnable({\n                                                isTun: !t.isTunEnable\n                                            });\n                                        case 1:\n                                        case \"end\":\n                                            return e.stop()\n                                    }\n                                }), e)\n                            })))()\n                        },\n                        handleSystemProxySwitchClick: function() {\n                            var e = this;\n                            const Lg = new Language(this.settings.language);\n                            return r()(d().mark((function t() {\n                                var i, n, s, r, a;\n                                return d().wrap((function(t) {\n                                    for (;;) switch (t.prev = t.next) {\n                                        case 0:\n                                            if (!e.systemProxyLoading) {\n                                                t.next = 2;\n                                                break\n                                            }\n                                            return t.abrupt(\"return\");\n                                        case 2:\n                                            return e.systemProxyLoading = !0, i = !e.isSystemProxyOn, t.next = 6, e.$setSystemProxy(i, e.confData);\n                                        case 6:\n                                            if (!t.sent) {\n                                                t.next = 11;\n                                                break\n                                            }\n                                            e.setIsSystemProxyOn({\n                                                isOn: i\n                                            }), t.next = 37;\n                                            break;\n                                        case 11:\n                                            if (!(0, O.V5)() || !e.isLocalMode) {\n                                                t.next = 37;\n                                                break\n                                            }\n                                            return t.next = 14, (0, R.vC)({\n                                                type: \"error\",\n                                                message: Lg.makeSureYouHave().concat(e.serviceNeedUpdate ? Lg.updated() : Lg.installed(), \" \" + Lg.serviceModeCtrlSysProxy()),\n                                                buttons: [\"\".concat(e.serviceNeedUpdate ? Lg.update() : Lg.install(), \" \" + Lg.now()), \"Later\"]\n                                            });\n                                        case 14:\n                                            if (n = t.sent, s = n.response, t.prev = 16, 0 !== s) {\n                                                t.next = 27;\n                                                break\n                                            }\n                                            if (!e.serviceNeedUpdate) {\n                                                t.next = 24;\n                                                break\n                                            }\n                                            return t.next = 21, xe();\n                                        case 21:\n                                            e.$parent.devMode || e.reloadElectron(), t.next = 27;\n                                            break;\n                                        case 24:\n                                            return t.next = 26, Se();\n                                        case 26:\n                                            e.$parent.devMode || e.reloadElectron();\n                                        case 27:\n                                            t.next = 37;\n                                            break;\n                                        case 29:\n                                            return t.prev = 29, t.t0 = t.catch(16), t.next = 33, e.$select({\n                                                title: Lg.failTo().concat(e.serviceNeedUpdate ? Lg.update() : Lg.install(), \" \" + Lg.server()),\n                                                message: t.t0.message,\n                                                items: [Lg.reloadAPP(), Lg.cancel()]\n                                            });\n                                        case 33:\n                                            r = t.sent, a = o()(r, 1), 0 === a[0] && e.reloadElectron();\n                                        case 37:\n                                            e.systemProxyLoading = !1;\n                                        case 38:\n                                        case \"end\":\n                                            return t.stop()\n                                    }\n                                }), t, null, [\n                                    [16, 29]\n                                ])\n                            })))()\n                        },\n                        handleAutoLaunchSwitchClick: function() {\n                            var e = this;\n                            return r()(d().mark((function t() {\n                                var i;\n                                return d().wrap((function(t) {\n                                    for (;;) switch (t.prev = t.next) {\n                                        case 0:\n                                            if (i = !e.autoLaunch, !e.autoLaunchLoading) {\n                                                t.next = 3;\n                                                break\n                                            }\n                                            return t.abrupt(\"return\");\n                                        case 3:\n                                            e.autoLaunchLoading = !0, e.$setAutoLaunch(i), e.autoLaunch = i, E.Z.put(I.Z.AUTO_LAUNCH, i), e.autoLaunchLoading = !1;\n                                        case 8:\n                                        case \"end\":\n                                            return t.stop()\n                                    }\n                                }), t)\n                            })))()\n                        },\n                        installTapDevice: function(e) {\n                            var t = this;\n                            const Lg = new Language(modifyState.language);\n                            return r()(d().mark((function e() {\n                                var i, n, s, r, a, l, c, h, u, g;\n                                return d().wrap((function(e) {\n                                    for (;;) switch (e.prev = e.next) {\n                                        case 0:\n                                            if (!(0, O.Kr)()) {\n                                                e.next = 49;\n                                                break\n                                            }\n                                            return e.prev = 1, e.next = 4, t.$select({\n                                                title: Lg.TAPdeviceManagement(),\n                                                message: Lg.TAPinstallDescribe(),\n                                                items: [Lg.install(), Lg.uninstall(), Lg.customize()]\n                                            });\n                                        case 4:\n                                            if (i = e.sent, n = o()(i, 1), 0 !== (s = n[0])) {\n                                                e.next = 20;\n                                                break\n                                            }\n                                            return e.prev = 8, e.next = 11, t.$parent.setupTapDevice(!0);\n                                        case 11:\n                                            (0, R.c0)(Lg.success(), Lg.tapDeviceInstalled(), !0), (t.isMixinEnable || t.isTunEnable) && t.$parent.refreshProfile(), e.next = 18;\n                                            break;\n                                        case 15:\n                                            e.prev = 15, e.t0 = e.catch(8), (0, R.c0)(Lg.failed(), Lg.notInstallTapDevice(), !0);\n                                        case 18:\n                                            e.next = 45;\n                                            break;\n                                        case 20:\n                                            if (1 !== s) {\n                                                e.next = 32;\n                                                break\n                                            }\n                                            return e.prev = 21, e.next = 24, t.$parent.setupTapDevice(!1);\n                                        case 24:\n                                            (0, R.c0)(Lg.success(), Lg.tapDeviceRemoved(), !0), e.next = 30;\n                                            break;\n                                        case 27:\n                                            e.prev = 27, e.t1 = e.catch(21), (0, R.c0)(Lg.failed(), Lg.notRemoveTapDevice(), !0);\n                                        case 30:\n                                            e.next = 45;\n                                            break;\n                                        case 32:\n                                            if (2 !== s) {\n                                                e.next = 45;\n                                                break\n                                            }\n                                            return a = null !== (r = E.Z.get(I.Z.TAP_INFO)) && void 0 !== r ? r : {}, l = a.ip, c = a.subnet, h = a.gateway, u = [{\n                                                name: Lg.IPaddress(),\n                                                key: \"ip\",\n                                                placeholder: \"10.0.0.1\",\n                                                value: null != l ? l : \"\"\n                                            }, {\n                                                name: Lg.subnetMask(),\n                                                key: \"subnet\",\n                                                placeholder: \"255.255.255.0\",\n                                                value: null != c ? c : \"\"\n                                            }, {\n                                                name: Lg.defaultGateway(),\n                                                key: \"gateway\",\n                                                placeholder: \"10.0.0.0\",\n                                                value: null != h ? h : \"\"\n                                            }], e.prev = 35, e.next = 38, t.$input({\n                                                title: Lg.deviceTAP(),\n                                                data: u,\n                                                hint: Lg.reinstallDescribeWithTAP()\n                                            });\n                                        case 38:\n                                            g = e.sent, E.Z.put(I.Z.TAP_INFO, g), e.next = 44;\n                                            break;\n                                        case 42:\n                                            e.prev = 42, e.t2 = e.catch(35);\n                                        case 44:\n                                            t.installTapDevice();\n                                        case 45:\n                                            e.next = 49;\n                                            break;\n                                        case 47:\n                                            e.prev = 47, e.t3 = e.catch(1);\n                                        case 49:\n                                        case \"end\":\n                                            return e.stop()\n                                    }\n                                }), e, null, [\n                                    [1, 47],\n                                    [8, 15],\n                                    [21, 27],\n                                    [35, 42]\n                                ])\n                            })))()\n                        },\n                        openCmdWithProxy: function() {\n                            var e = this;\n                            const Lg = new Language(modifyState.language);\n                            return r()(d().mark((function t() {\n                                var n, s, r, a, l;\n                                return d().wrap((function(t) {\n                                    for (;;) switch (t.prev = t.next) {\n                                        case 0:\n                                            if (t.prev = 0, !(0, O.V5)() && !(0, O.IJ)()) {\n                                                t.next = 5;\n                                                break\n                                            }\n                                            e.handlePortClick(), t.next = 13;\n                                            break;\n                                        case 5:\n                                            if (!(0, O.Kr)()) {\n                                                t.next = 13;\n                                                break\n                                            }\n                                            return t.next = 8, e.$select({\n                                                title: Lg.openTerminalSetProxy(),\n                                                message: Lg.selectTterminal(),\n                                                items: [\"CMD\", \"Powershell\", \"Windows Terminal\", Lg.copyCommandsOnly()],\n                                                checkList: [{\n                                                    key: Lg.runAsAdmin(),\n                                                    value: !1\n                                                }]\n                                            });\n                                        case 8:\n                                            n = t.sent, s = o()(n, 2), r = s[0], a = s[1], 3 === r ? e.handlePortClick() : (l = [\"cmd\", \"powershell\", \"wt\"], (a[0].value ? i(72378).exec : N.exec)(\"start \".concat(l[r]), {\n                                                cwd: e.$parent.userPath,\n                                                windowsHide: !0,\n                                                env: {\n                                                    http_proxy: \"http://127.0.0.1:\".concat(e.port),\n                                                    https_proxy: \"http://127.0.0.1:\".concat(e.port)\n                                                }\n                                            }));\n                                        case 13:\n                                            t.next = 17;\n                                            break;\n                                        case 15:\n                                            t.prev = 15, t.t0 = t.catch(0);\n                                        case 17:\n                                        case \"end\":\n                                            return t.stop()\n                                    }\n                                }), t, null, [\n                                    [0, 15]\n                                ])\n                            })))()\n                        },\n                        handleEditMixedPort: function() {\n                            var e = this;\n                            const Lg = new Language(modifyState.language);\n                            return r()(d().mark((function t() {\n                                var i, n, o;\n                                return d().wrap((function(t) {\n                                    for (;;) switch (t.prev = t.next) {\n                                        case 0:\n                                            return i = [{\n                                                name: Lg.newPort(),\n                                                key: \"port\",\n                                                placeholder: e.port,\n                                                value: \"\",\n                                                validate: function(e) {\n                                                    return /^\\d+$/.test(e) && 1 * e >= 0 && 1 * e <= 65353 ? \"\" : \"Port must be an integer between 0 to 65353\"\n                                                }\n                                            }], t.prev = 1, t.next = 4, e.$input({\n                                                title: Lg.changeMixedPort(),\n                                                data: i,\n                                                hint: \"mixed = http + socks\"\n                                            });\n                                        case 4:\n                                            if (n = t.sent, !(o = n.port)) {\n                                                t.next = 15;\n                                                break\n                                            }\n                                            return t.next = 9, e.clashAxiosClient.patch(\"/configs\", {\n                                                \"mixed-port\": 1 * o\n                                            });\n                                        case 9:\n                                            if (204 !== t.sent.status) {\n                                                t.next = 15;\n                                                break\n                                            }\n                                            return e.port = 1 * o, t.next = 14, (0, R.F0)(g().join(e.clashPath, \"config.yaml\"), \"mixed-port\", 1 * o);\n                                        case 14:\n                                            e.setConfData({\n                                                data: we(we({}, e.confData), {}, {\n                                                    \"mixed-port\": 1 * o\n                                                })\n                                            });\n                                        case 15:\n                                            t.next = 19;\n                                            break;\n                                        case 17:\n                                            t.prev = 17, t.t0 = t.catch(1);\n                                        case 19:\n                                            e.setupComponent();\n                                        case 20:\n                                        case \"end\":\n                                            return t.stop()\n                                    }\n                                }), t, null, [\n                                    [1, 17]\n                                ])\n                            })))()\n                        },\n                        handleEditBindAddress: function() {\n                            var e = this;\n                            const Lg = new Language(modifyState.language);\n                            return r()(d().mark((function t() {\n                                var i, n, o;\n                                return d().wrap((function(t) {\n                                    for (;;) switch (t.prev = t.next) {\n                                        case 0:\n                                            return i = [{\n                                                name: Lg.newBindAddress(),\n                                                key: \"address\",\n                                                placeholder: e.bindAddress,\n                                                value: \"\",\n                                                validate: function(e) {\n                                                    return \"\"\n                                                }\n                                            }], t.prev = 1, t.next = 4, e.$input({\n                                                title: Lg.changeBindAddress(),\n                                                data: i,\n                                                hint: Lg.changeBindAddressDescribe()\n                                            });\n                                        case 4:\n                                            if (n = t.sent, !(o = n.address)) {\n                                                t.next = 15;\n                                                break\n                                            }\n                                            return t.next = 9, e.clashAxiosClient.patch(\"/configs\", {\n                                                \"bind-address\": o\n                                            });\n                                        case 9:\n                                            if (204 !== t.sent.status) {\n                                                t.next = 15;\n                                                break\n                                            }\n                                            return e.bindAddress = o, t.next = 14, (0, R.F0)(g().join(e.clashPath, \"config.yaml\"), \"bind-address\", o);\n                                        case 14:\n                                            e.setConfData({\n                                                data: we(we({}, e.confData), {}, {\n                                                    \"bind-address\": o\n                                                })\n                                            });\n                                        case 15:\n                                            t.next = 19;\n                                            break;\n                                        case 17:\n                                            t.prev = 17, t.t0 = t.catch(1);\n                                        case 19:\n                                            e.setupComponent();\n                                        case 20:\n                                        case \"end\":\n                                            return t.stop()\n                                    }\n                                }), t, null, [\n                                    [1, 17]\n                                ])\n                            })))()\n                        },\n                        handleCopyControllerURL: function() {\n                            P.shell.openExternal(\"https://clash.razord.top/#/?host=127.0.0.1&port=\".concat(this.controllerPort, \"&secret=\").concat(encodeURIComponent(this.secret)))\n                        },\n                        spawnLoopback: function(e) {\n                            if ((0, O.Kr)()) {\n                                var t = g().join(this.filesPath, \"win\", \"common\");\n                                P.shell.openPath(g().join(t, \"EnableLoopback.exe\"))\n                            }\n                        },\n                        openGithubRelease: function() {\n                            var e = this;\n                            const Lg = new Language(modifyState.language);\n                            return r()(d().mark((function t() {\n                                var n, s, a;\n                                return d().wrap((function(t) {\n                                    for (;;) switch (t.prev = t.next) {\n                                        case 0:\n                                            if (!(0, O.V5)() || !e.isSilentUpgraded) {\n                                                t.next = 10;\n                                                break\n                                            }\n                                            return t.next = 3, e.$select({\n                                                title: Lg.automaticUpgradeCompleted(),\n                                                message: Lg.askRestartAPP(),\n                                                items: [Lg.restart(), Lg.cancel()]\n                                            });\n                                        case 3:\n                                            if (n = t.sent, s = o()(n, 1), 0 !== s[0]) {\n                                                t.next = 9;\n                                                break\n                                            }\n                                            return t.next = 9, e.reloadElectron();\n                                        case 9:\n                                            return t.abrupt(\"return\");\n                                        case 10:\n                                            return a = function() {\n                                                var t = r()(d().mark((function t(n) {\n                                                    var s, r, a, l, c, h, u, g, p, f, m, v, _, b, y, x;\n                                                    return d().wrap((function(t) {\n                                                        for (;;) switch (t.prev = t.next) {\n                                                            case 0:\n                                                                return s = e.$parent.newVersionInfo, r = s.url, a = s.version, l = s.log, c = s.isPortable, h = void 0 !== c && c, u = s.reactions, g = s.reactionClick, t.next = 3, P.ipcRenderer.invoke(\"app\", \"getAppPath\");\n                                                            case 3:\n                                                                if (p = t.sent.startsWith(process.env.ProgramFiles), !r) {\n                                                                    t.next = 36;\n                                                                    break\n                                                                }\n                                                                return t.next = 7, e.$select({\n                                                                    title: \"\".concat(a, Lg.hadBeenReleased()),\n                                                                    html: l,\n                                                                    reactions: u,\n                                                                    reactionClick: g,\n                                                                    items: [h || (0, O.IJ)() ? \"\" : Lg.update(), Lg.download(), Lg.copyURL(), Lg.cancel()]\n                                                                });\n                                                            case 7:\n                                                                if (f = t.sent, m = o()(f, 1), 0 !== (v = m[0])) {\n                                                                    t.next = 33;\n                                                                    break\n                                                                }\n                                                                if (null === e.updateDownloadProgress) {\n                                                                    t.next = 13;\n                                                                    break\n                                                                }\n                                                                return t.abrupt(\"return\");\n                                                            case 13:\n                                                                return t.next = 15, (0, w._)(r, a).catch((function(e) {\n                                                                    C().info(Lg.upgradeFailedWithErr().concat(e))\n                                                                }));\n                                                            case 15:\n                                                                if (_ = t.sent, C().info(\"upgrade asset path: \".concat(_)), !(0, O.V5)()) {\n                                                                    t.next = 25;\n                                                                    break\n                                                                }\n                                                                return t.next = 20, (0, R.vC)({\n                                                                    type: \"info\",\n                                                                    message: Lg.updatedThenRestartAsk(),\n                                                                    buttons: [Lg.no(), Lg.yes()]\n                                                                });\n                                                            case 20:\n                                                                if (b = t.sent, 1 !== b.response) {\n                                                                    t.next = 25;\n                                                                    break\n                                                                }\n                                                                return t.next = 25, e.reloadElectron();\n                                                            case 25:\n                                                                if (!(0, O.Kr)()) {\n                                                                    t.next = 31;\n                                                                    break\n                                                                }\n                                                                return t.next = 28, (0, R.vC)({\n                                                                    type: \"info\",\n                                                                    message: Lg.downloadDoneRunAsk(),\n                                                                    buttons: [Lg.no(), Lg.yes()]\n                                                                });\n                                                            case 28:\n                                                                y = t.sent, 1 === y.response && (p ? i(72378).exec(\"\".concat(_, \" /S\")) : ((x = function() {\n                                                                    try {\n                                                                        (0, N.spawnSync)(_, [\"/S\"], {\n                                                                            detached: !0,\n                                                                            windowsHide: !0\n                                                                        })\n                                                                    } catch (e) {}\n                                                                })(), setInterval(x, 2e3)));\n                                                            case 31:\n                                                                t.next = 34;\n                                                                break;\n                                                            case 33:\n                                                                1 === v ? P.shell.openExternal(r) : 2 === v && P.clipboard.writeText(r);\n                                                            case 34:\n                                                                t.next = 37;\n                                                                break;\n                                                            case 36:\n                                                                e.$alert({\n                                                                    title: Lg.nowVersionUpToDate(),\n                                                                    content: Lg.nowVersionUpToDateDescribe()\n                                                                });\n                                                            case 37:\n                                                            case \"end\":\n                                                                return t.stop()\n                                                        }\n                                                    }), t)\n                                                })));\n                                                return function(e) {\n                                                    return t.apply(this, arguments)\n                                                }\n                                            }(), t.next = 13, e.$parent.checkForUpdate();\n                                        case 13:\n                                            return t.next = 15, a();\n                                        case 15:\n                                        case \"end\":\n                                            return t.stop()\n                                    }\n                                }), t)\n                            })))()\n                        },\n                        handleHomeDirectoryOpen: function() {\n                            P.shell.openPath(g().resolve(this.clashPath))\n                        },\n                        handleGeoipDatabaseUpdate: function() {\n                            this.updateGeoipDB()\n                        },\n                        handlePortClick: function() {\n                            var e = this;\n                            const Lg = new Language(modifyState.language);\n                            return r()(d().mark((function t() {\n                                var i, n, s, a, l;\n                                return d().wrap((function(t) {\n                                    for (;;) switch (t.prev = t.next) {\n                                        case 0:\n                                            if (n = function() {\n                                                    var t = r()(d().mark((function t(i) {\n                                                        var n, o, s, r;\n                                                        return d().wrap((function(t) {\n                                                            for (;;) switch (t.prev = t.next) {\n                                                                case 0:\n                                                                    return n = E.Z.get(I.Z.SYSTEM_PROXY_COMMAND), o = [{\n                                                                        name: \"\",\n                                                                        key: \"command\",\n                                                                        placeholder: \"\",\n                                                                        value: n || i\n                                                                    }], t.next = 4, e.$input({\n                                                                        title: Lg.copyCommand(),\n                                                                        data: o,\n                                                                        hint: \"\",\n                                                                        confirmText: \"Copy\"\n                                                                    }).catch((function(e) {}));\n                                                                case 4:\n                                                                    return s = t.sent, r = s.command, E.Z.put(I.Z.SYSTEM_PROXY_COMMAND, r || \"\"), t.abrupt(\"return\", (r || \"\").replace(/%mixedPort%/g, e.port).replace(/%(.+?)%/g, (function(e) {\n                                                                        console.log(e.slice(1, -1));\n                                                                        var t = ((0, T.r)().find((function(t) {\n                                                                            return t.name === e.slice(1, -1)\n                                                                        })) || {}).address;\n                                                                        return void 0 === t ? \"\" : t\n                                                                    })));\n                                                                case 8:\n                                                                case \"end\":\n                                                                    return t.stop()\n                                                            }\n                                                        }), t)\n                                                    })));\n                                                    return function(e) {\n                                                        return t.apply(this, arguments)\n                                                    }\n                                                }(), !(0, O.V5)() && !(0, O.IJ)()) {\n                                                t.next = 7;\n                                                break\n                                            }\n                                            return t.next = 4, n(\"export https_proxy=http://127.0.0.1:%mixedPort%;export http_proxy=http://127.0.0.1:%mixedPort%;export all_proxy=socks5://127.0.0.1:%mixedPort%\");\n                                        case 4:\n                                            i = t.sent, t.next = 29;\n                                            break;\n                                        case 7:\n                                            if (!(0, O.Kr)()) {\n                                                t.next = 29;\n                                                break\n                                            }\n                                            return t.prev = 8, t.next = 11, e.$select({\n                                                title: Lg.copyProxySettingCommands(),\n                                                message: Lg.selectTterminal(),\n                                                items: [\"CMD\", \"Powershell\", Lg.custom()]\n                                            });\n                                        case 11:\n                                            if (s = t.sent, a = o()(s, 1), 0 !== (l = a[0])) {\n                                                t.next = 18;\n                                                break\n                                            }\n                                            i = \"set http_proxy=http://127.0.0.1:\".concat(e.port, \" & set https_proxy=http://127.0.0.1:\").concat(e.port), t.next = 25;\n                                            break;\n                                        case 18:\n                                            if (1 !== l) {\n                                                t.next = 22;\n                                                break\n                                            }\n                                            i = '$Env:http_proxy=\"http://127.0.0.1:'.concat(e.port, '\";$Env:https_proxy=\"http://127.0.0.1:').concat(e.port, '\"'), t.next = 25;\n                                            break;\n                                        case 22:\n                                            return t.next = 24, n(\"export https_proxy=http://127.0.0.1:%mixedPort%;export http_proxy=http://127.0.0.1:%mixedPort%;export all_proxy=socks5://127.0.0.1:%mixedPort%\");\n                                        case 24:\n                                            i = t.sent;\n                                        case 25:\n                                            t.next = 29;\n                                            break;\n                                        case 27:\n                                            t.prev = 27, t.t0 = t.catch(8);\n                                        case 29:\n                                            i && (P.clipboard.writeText(i), (0, R.c0)(Lg.cmmandsInCopied() + \"!\", i, !0));\n                                        case 30:\n                                        case \"end\":\n                                            return t.stop()\n                                    }\n                                }), t, null, [\n                                    [8, 27]\n                                ])\n                            })))()\n                        },\n                        autoFix: function() {\n                            var e = this;\n                            return r()(d().mark((function t() {\n                                return d().wrap((function(t) {\n                                    for (;;) switch (t.prev = t.next) {\n                                        case 0:\n                                            try {\n                                                f().unlinkSync(g().join(e.clashPath, \"config.yaml\"))\n                                            } catch (e) {}\n                                            try {\n                                                f().unlinkSync(g().join(e.clashPath, \"country.mmdb\"))\n                                            } catch (e) {}\n                                            return t.next = 4, e.reloadElectron();\n                                        case 4:\n                                        case \"end\":\n                                            return t.stop()\n                                    }\n                                }), t)\n                            })))()\n                        },\n                        updateGeoipDB: function() {\n                            var e = this;\n                            const Lg = new Language(modifyState.language);\n                            return r()(d().mark((function t() {\n                                var i, n, o, s, r, a, l, c, h, u, p, m, v, _, w, y, C;\n                                return d().wrap((function(t) {\n                                    for (;;) switch (t.prev = t.next) {\n                                        case 0:\n                                            if (!(0, O.Kr)()) {\n                                                t.next = 3;\n                                                break\n                                            }\n                                            return e.$alert({\n                                                content: Lg.updatingDbNotAllowedCFW(),\n                                                title: \"Note\"\n                                            }), t.abrupt(\"return\");\n                                        case 3:\n                                            if (i = e.geoipUpdateTime, !/^Updating/.test(e.geoipUpdateTime)) {\n                                                t.next = 6;\n                                                break\n                                            }\n                                            return t.abrupt(\"return\");\n                                        case 6:\n                                            return n = [{\n                                                name: \"MaxMind User License Key\",\n                                                key: \"token\",\n                                                placeholder: \"\",\n                                                value: E.Z.get(I.Z.GEOIP_TOKEN) || \"\"\n                                            }, {\n                                                name: \"URL\",\n                                                key: \"url\",\n                                                placeholder: \"\",\n                                                value: E.Z.get(I.Z.GEOIP_URL) || \"https://github.com/Dreamacro/maxmind-geoip/releases/latest/download/Country.mmdb\"\n                                            }], t.prev = 7, t.next = 10, e.$input({\n                                                title: Lg.updateDbGeoIP(),\n                                                data: n,\n                                                hint: Lg.inputFieldAlternative()\n                                            });\n                                        case 10:\n                                            if (o = t.sent, s = o.url, r = void 0 === s ? \"\" : s, a = o.token, l = void 0 === a ? \"\" : a, E.Z.put(I.Z.GEOIP_TOKEN, l), E.Z.put(I.Z.GEOIP_URL, r), e.clashPath) {\n                                                t.next = 19;\n                                                break\n                                            }\n                                            return t.abrupt(\"return\");\n                                        case 19:\n                                            if (c = function(t, i) {\n                                                    f().ftruncateSync(f().openSync(t, \"r+\"), i), e.$parent.handlerRestartClash()\n                                                }, !l) {\n                                                t.next = 39;\n                                                break\n                                            }\n                                            return e.geoipUpdateTime = Lg.updating() + \"... (0%)\", t.t0 = g(), t.next = 25, P.ipcRenderer.invoke(\"app\", \"getPath\", \"temp\");\n                                        case 25:\n                                            t.t1 = t.sent, h = t.t0.join.call(t.t0, t.t1), g().join(h, \"cfw_geoip.tag.gz\"), (u = b().stream(\"https://download.maxmind.com/app/geoip_download?edition_id=GeoLite2-Country&license_key=\".concat(l, \"&suffix=tar.gz\"))).on(\"downloadProgress\", (function(t) {\n                                                var i = \"\";\n                                                i = 1 === t.percent ? Lg.restartingCore() : Lg.updating() + \"... (\".concat(Math.round(100 * t.percent), \"%)\"), e.geoipUpdateTime = i\n                                            })), u.on(\"error\", (function(t) {\n                                                e.$alert({\n                                                    content: Lg.downloadDbErrGeoIP() + \": \".concat(t.name)\n                                                }), e.geoipUpdateTime = i\n                                            })), p = g().join(e.clashPath, \"Country.mmdb\"), m = L().extract(), v = 0, m.on(\"entry\", (function(e, t, i) {\n                                                t.on(\"end\", (function() {\n                                                    i()\n                                                })), /GeoLite2-Country\\.mmdb$/.test(e.name) ? (v = e.size, t.pipe(f().createWriteStream(p, {\n                                                    flags: \"r+\"\n                                                }))) : t.resume()\n                                            })), m.on(\"finish\", (function() {\n                                                c(p, v)\n                                            })), u.pipe(S().createGunzip()).pipe(m), t.next = 40;\n                                            break;\n                                        case 39:\n                                            r && (e.geoipUpdateTime = Lg.updating() + \"... (0%)\", _ = b().stream(r), w = 0, _.on(\"downloadProgress\", (function(t) {\n                                                var i = \"\",\n                                                    n = t.percent,\n                                                    o = t.total;\n                                                1 === n ? (w = o, i = Lg.restartingCore()) : i = \"Updating... (\".concat(Math.round(100 * t.percent), \"%)\"), e.geoipUpdateTime = i\n                                            })), _.on(\"error\", (function(t) {\n                                                e.$alert({\n                                                    content: Lg.downloadDbErrGeoIP() + \": \".concat(t.name)\n                                                }), e.geoipUpdateTime = i\n                                            })), y = g().join(e.clashPath, \"Country.mmdb\"), (C = f().createWriteStream(y, {\n                                                flags: \"r+\"\n                                            })).on(\"finish\", (function() {\n                                                c(y, w)\n                                            })), _.pipe(C));\n                                        case 40:\n                                            t.next = 44;\n                                            break;\n                                        case 42:\n                                            t.prev = 42, t.t2 = t.catch(7);\n                                        case 44:\n                                        case \"end\":\n                                            return t.stop()\n                                    }\n                                }), t, null, [\n                                    [7, 42]\n                                ])\n                            })))()\n                        },\n                        setupSwitches: function() {\n                            this.autoLaunchLoading = !1, this.systemProxyLoading = !1\n                        },\n                        setupComponent: function() {\n                            var e = this;\n                            return r()(d().mark((function t() {\n                                var i, n, s, r, a, l, c, h, u, p;\n                                return d().wrap((function(t) {\n                                    for (;;) switch (t.prev = t.next) {\n                                        case 0:\n                                            if (!e.clashAxiosClient) {\n                                                t.next = 17;\n                                                break\n                                            }\n                                            return t.prev = 1, t.next = 4, Promise.all([e.clashAxiosClient.get(\"/configs\"), e.fetchCoreVersion()]);\n                                        case 4:\n                                            i = t.sent, n = o()(i, 1), s = n[0], r = s.status, a = s.data, 200 === r && (l = a[\"mixed-port\"], c = a[\"allow-lan\"], h = a[\"log-level\"], u = a[\"bind-address\"], p = a.ipv6, e.port = l, e.isAllowLan = c, e.bindAddress = u, e.logLevel = h, e.isIPV6 = p, e.geoipUpdateTime = v()(f().statSync(g().join(e.clashPath, \"Country.mmdb\")).mtimeMs).format(\"YYYY-MM-DD HH:mm\")), t.next = 15;\n                                            break;\n                                        case 12:\n                                            t.prev = 12, t.t0 = t.catch(1), console.error(t.t0.stack);\n                                        case 15:\n                                            t.next = 17;\n                                            break;\n                                        case 17:\n                                        case \"end\":\n                                            return t.stop()\n                                    }\n                                }), t, null, [\n                                    [1, 12]\n                                ])\n                            })))()\n                        },\n                        fetchCoreVersion: function() {\n                            var e = this;\n                            return r()(d().mark((function t() {\n                                var i, n, o, s;\n                                return d().wrap((function(t) {\n                                    for (;;) switch (t.prev = t.next) {\n                                        case 0:\n                                            if (!e.clashAxiosClient) {\n                                                t.next = 6;\n                                                break\n                                            }\n                                            return t.next = 3, e.clashAxiosClient.get(\"/version\");\n                                        case 3:\n                                            i = t.sent, (n = i.data) ? (o = n.premium, s = n.version, e.clashCoreVersion = void 0 !== o && void 0 !== s ? \"\".concat(s, \" \").concat(o ? \"Premium\" : \"\") : \"Unknown\") : e.clashCoreVersion = \"Unknown\";\n                                        case 6:\n                                        case \"end\":\n                                            return t.stop()\n                                    }\n                                }), t)\n                            })))()\n                        }\n                    }),\n                    mounted: function() {\n                        return r()(d().mark((function e() {\n                            return d().wrap((function(e) {\n                                for (;;) switch (e.prev = e.next) {\n                                    case 0:\n                                    case \"end\":\n                                        return e.stop()\n                                }\n                            }), e)\n                        })))()\n                    },\n                    beforeRouteEnter: function(e, t, i) {\n                        var n;\n                        i((n = r()(d().mark((function e(t) {\n                            return d().wrap((function(e) {\n                                for (;;) switch (e.prev = e.next) {\n                                    case 0:\n                                        return e.t0 = \"v\", e.next = 3, P.ipcRenderer.invoke(\"app\", \"getVersion\");\n                                    case 3:\n                                        e.t1 = e.sent, t.version = e.t0.concat.call(e.t0, e.t1), t.serviceNeedUpdate = Ce(), t.setupComponent(), setTimeout(t.setupSwitches, 1);\n                                    case 8:\n                                    case \"end\":\n                                        return e.stop()\n                                }\n                            }), e)\n                        }))), function(e) {\n                            return n.apply(this, arguments)\n                        }))\n                    },\n                    beforeRouteLeave: function(e, t, i) {\n                        i()\n                    }\n                };\n                i(19259), i(82093);\n                const Ne = (0, W.Z)(Le, (function() {\n                    var e = this,\n                        t = e._self._c;\n                    const Lg = new Language(modifyState.language);\n                    return t(\"div\", {\n                        staticClass: \"main-general-view\"\n                    }, [t(\"div\", {\n                        staticClass: \"header\"\n                    }, [t(\"img\", {\n                        staticClass: \"w-[90px] h-[90px] mr-[20px]\",\n                        attrs: {\n                            src: e.iconPath\n                        }\n                    }), e._v(\" \"), t(\"div\", {\n                        staticClass: \"title\"\n                    }, [t(\"div\", {\n                        staticClass: \"title-name\",\n                        on: {\n                            click: e.handleTitleClick\n                        }\n                    }, [e._v(\"\\n        Clash for Windows\\n      \")]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"version\",\n                        on: {\n                            click: e.openGithubRelease\n                        }\n                    }, [e._v(\"\\n        \" + VERSION + \"\\n        \"), e.isShowNewIcon ? t(\"div\", {\n                        staticClass: \"new-version-tag\"\n                    }, [e._v(\"New\")]) : e._e()])])]), e._v(\" \"), e.isLaunching ? e._e() : t(\"div\", {\n                        staticClass: \"content\"\n                    }, [t(\"div\", {\n                        staticClass: \"item\"\n                    }, [t(\"div\", {\n                        staticClass: \"item-left\"\n                    }, [e._v(Lg.port())]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"item-right\"\n                    }, [t(\"Hint\", {\n                        staticClass: \"mr-2\",\n                        attrs: {\n                            hint: Lg.terminal()\n                        }\n                    }, [t(\"span\", {\n                        staticClass: \"icon control-icon\",\n                        on: {\n                            click: function(t) {\n                                return t.stopPropagation(), e.openCmdWithProxy()\n                            }\n                        }\n                    }, [e._v(\"terminal\")])]), e._v(\" \"), t(\"Hint\", {\n                        attrs: {\n                            hint: Lg.randomMixedPort()\n                        }\n                    }, [t(\"span\", {\n                        staticClass: \"icon control-icon cursor-pointer\",\n                        style: {\n                            color: e.settings.randomMixedPort ? \"#41b883\" : \"#b3b3b3\"\n                        },\n                        on: {\n                            click: function(t) {\n                                e.settings.randomMixedPort = !e.settings.randomMixedPort\n                            }\n                        }\n                    }, [e._v(\"sync\" + e._s(e.settings.randomMixedPort ? \"\" : \"_disabled\"))])]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"clickable\",\n                        on: {\n                            click: e.handleEditMixedPort\n                        }\n                    }, [e._v(\"\\n          \" + e._s(e.port) + \"\\n        \")])], 1)]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"item\"\n                    }, [t(\"div\", {\n                        staticClass: \"item-left\"\n                    }, [t(\"div\", [e._v(Lg.allowLAN())]), e._v(\" \"), t(\"info-icon\", [e._v(\"\\n          \" + Lg.infoAllowLAN() +\"\\n          \"), t(\"a\", {\n                        attrs: {\n                            href: \"https://github.com/Dreamacro/clash/pull/2818\"\n                        }\n                    }, [e._v(Lg.inbound())])]), e._v(\" \"), t(\"Hint\", {\n                        staticClass: \"tun-settings-icon\",\n                        attrs: {\n                            hint: Lg.networkInterfaces(),\n                            position: \"right\"\n                        },\n                        on: {\n                            click: function(t) {\n                                t.stopPropagation(), e.isInterfacesVisible = !0\n                            }\n                        }\n                    }, [t(\"span\", {\n                        staticClass: \"icon text-[color:var(--general-settings-icon-c)]\"\n                    }, [e._v(\"device_hub\")])])], 1), e._v(\" \"), t(\"div\", {\n                        staticClass: \"item-right\"\n                    }, [e.bindAddress ? t(\"div\", {\n                        staticClass: \"clickable mr-2\",\n                        on: {\n                            click: e.handleEditBindAddress\n                        }\n                    }, [e._v(\"\\n          \" + Lg.bind() + e._s(e.bindAddress) + \"\\n        \")]) : e._e(), e._v(\" \"), t(\"switch-view\", {\n                        attrs: {\n                            on: e.isAllowLan\n                        },\n                        on: {\n                            change: function(t) {\n                                return e.handleAllowLANChange(e.isAllowLan)\n                            }\n                        }\n                    })], 1)]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"item\"\n                    }, [t(\"div\", {\n                        staticClass: \"item-left\"\n                    }, [e._v(Lg.logLevel())]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"item-right\"\n                    }, [t(\"div\", {\n                        staticClass: \"clickable\",\n                        on: {\n                            click: e.handleEditLogLevel\n                        }\n                    }, [e._v(\"\\n          \" + (\"silent\" == e._s(e.logLevel) ? Lg.silent() : \"error\" == e._s(e.logLevel) ? Lg.errorS() : \"warn\" == e._s(e.logLevel) ? Lg.warning() : \"warning\" == e._s(e.logLevel) ? Lg.warn() : \"info\" == e._s(e.logLevel) ? Lg.info() : \"debug\" == e._s(e.logLevel) ? Lg.debug() : e._s(e.logLevel)) + \"\\n        \")])])]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"item\"\n                    }, [t(\"div\", {\n                        staticClass: \"item-left\"\n                    }, [e._v(\"IPv6\")]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"item-right\"\n                    }, [t(\"switch-view\", {\n                        attrs: {\n                            on: e.isIPV6\n                        },\n                        on: {\n                            change: function(t) {\n                                return e.handleIPV6Change(e.isIPV6)\n                            }\n                        }\n                    })], 1)]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"item\"\n                    }, [t(\"div\", {\n                        staticClass: \"item-left\"\n                    }, [t(\"div\", [e._v(Lg.clashCore())]), e._v(\" \"), e.isWindows ? t(\"Hint\", {\n                        staticClass: \"tun-settings-icon\",\n                        attrs: {\n                            hint: Lg.addFirewallRules(),\n                            position: \"right\"\n                        },\n                        on: {\n                            click: function(t) {\n                                return t.stopPropagation(), e.handleAddFirewallRules.apply(null, arguments)\n                            }\n                        }\n                    }, [e.isFetchingFirewallRule ? t(\"span\", {\n                        staticClass: \"icon text-[color:var(--general-settings-icon-c)] animate-bounce\"\n                    }, [e._v(\"\\n            edit\\n          \")]) : t(\"span\", {\n                        staticClass: \"icon text-[color:var(--general-settings-icon-c)]\",\n                        style: {\n                            color: e.isFirewallRuleExist ? \"#41b883\" : \"#b3b3b3\"\n                        }\n                    }, [e._v(e._s(e.isFirewallRuleExist ? \"verified_user\" : \"gpp_maybe\"))])]) : e._e(), e._v(\" \"), t(\"Hint\", {\n                        staticClass: \"tun-settings-icon\",\n                        attrs: {\n                            hint: Lg.previewCfgToClashCore(),\n                            position: \"right\"\n                        },\n                        on: {\n                            click: function(t) {\n                                return t.stopPropagation(), e.handlePreviewCurrentPayload.apply(null, arguments)\n                            }\n                        }\n                    }, [t(\"span\", {\n                        staticClass: \"icon text-[color:var(--general-settings-icon-c)]\"\n                    }, [e._v(\"memory\")])]), e._v(\" \"), t(\"Hint\", {\n                        staticClass: \"tun-settings-icon\",\n                        attrs: {\n                            hint: Lg.useClashCoreSeeHost(),\n                            position: \"right\"\n                        },\n                        on: {\n                            click: function(t) {\n                                return t.stopPropagation(), e.handleShowDNSQueryDialog.apply(null, arguments)\n                            }\n                        }\n                    }, [t(\"span\", {\n                        staticClass: \"icon text-[color:var(--general-settings-icon-c)]\"\n                    }, [e._v(\"dns\")])]), e._v(\" \"), t(\"Hint\", {\n                        staticClass: \"tun-settings-icon\",\n                        attrs: {\n                            hint: Lg.testByScriptMode(),\n                            position: \"right\"\n                        },\n                        on: {\n                            click: function(t) {\n                                return t.stopPropagation(), e.handleShowScriptTestDialog.apply(null, arguments)\n                            }\n                        }\n                    }, [t(\"span\", {\n                        staticClass: \"icon text-[color:var(--general-settings-icon-c)]\"\n                    }, [e._v(\"play_arrow\")])])], 1), e._v(\" \"), t(\"div\", {\n                        staticClass: \"item-right\"\n                    }, [t(\"div\", {\n                        staticClass: \"clickable\",\n                        on: {\n                            click: e.handleCopyControllerURL\n                        }\n                    }, [e._v(\"\\n          \" + e._s(e.clashCoreVersion) + \" (\" + e._s(e.controllerPort) + \")\\n        \")])])]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"item\"\n                    }, [t(\"div\", {\n                        staticClass: \"item-left\"\n                    }, [e._v(Lg.homeDirectory())]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"item-right clickable\",\n                        on: {\n                            click: e.handleHomeDirectoryOpen\n                        }\n                    }, [e._v(\"\\n        \" + Lg.openFolder() + \"\\n      \")])]), e._v(\" \"), e.isWindows ? e._e() : t(\"div\", {\n                        staticClass: \"item\"\n                    }, [t(\"div\", {\n                        staticClass: \"item-left\"\n                    }, [e._v(Lg.geoIPDatabase())]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"item-right clickable\",\n                        on: {\n                            click: e.handleGeoipDatabaseUpdate\n                        }\n                    }, [e._v(\"\\n        \" + e._s(e.geoipUpdateTime) + \"\\n      \")])]), e._v(\" \"), e.isWindows ? t(\"div\", {\n                        staticClass: \"item\"\n                    }, [t(\"div\", {\n                        staticClass: \"item-left\"\n                    }, [e._v(Lg.loopbackUWP())]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"item-right clickable\",\n                        on: {\n                            click: function(t) {\n                                return e.spawnLoopback(t)\n                            }\n                        }\n                    }, [e._v(\"\\n        \" + Lg.launchHelper() + \"\\n      \")])]) : e._e(), e._v(\" \"), e.isWindows ? t(\"div\", {\n                        staticClass: \"item\"\n                    }, [t(\"div\", {\n                        staticClass: \"item-left\"\n                    }, [e._v(Lg.deviceTAP())]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"item-right clickable\",\n                        on: {\n                            click: function(t) {\n                                return e.installTapDevice(t)\n                            }\n                        }\n                    }, [e._v(\"\\n        \" + Lg.manage() + \"\\n      \")])]) : e._e(), e._v(\" \"), t(\"div\", {\n                        staticClass: \"item\"\n                    }, [t(\"div\", {\n                        staticClass: \"item-left\"\n                    }, [e._v(Lg.serviceMode())]), e._v(\" \"), t(\"span\", {\n                        staticClass: \"icon mt-[2px] ml-[5px]\",\n                        style: {\n                            color: e.isLocalMode ? \"#b3b3b3\" : e.serviceNeedUpdate ? \"#DE5034\" : \"#41b883\"\n                        }\n                    }, [e._v(\"public\")]), e._v(\" \"), t(\"div\", {\n                        staticStyle: {\n                            \"flex-grow\": \"1\"\n                        }\n                    }), e._v(\" \"), t(\"div\", {\n                        staticClass: \"item-right clickable\",\n                        on: {\n                            click: e.installService\n                        }\n                    }, [e._v(Lg.manage())])]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"item\"\n                    }, [t(\"div\", {\n                        staticClass: \"item-left\"\n                    }, [t(\"div\", [e._v(Lg.TUNmode())]), e._v(\" \"), t(\"info-icon\", [e._v(\"\\n          \" + Lg.TUNmodeDescribe() + \"\\n        \")]), e._v(\" \"), t(\"Hint\", {\n                        staticClass: \"tun-settings-icon\",\n                        attrs: {\n                            hint: Lg.settings(),\n                            position: \"right\"\n                        },\n                        on: {\n                            click: function (t) {\n                                t.stopPropagation(), e.isTunSettingsVisible = !e.isTunSettingsVisible;\n                            }\n                        }\n                    }, [t(\"span\", {\n                        staticClass: \"icon text-[color:var(--general-settings-icon-c)]\"\n                    }, [e._v(\"settings\")])]), e._v(\" \"), e.isMacOS ? t(\"Hint\", {\n                        staticClass: \"tun-settings-icon\",\n                        attrs: {\n                            hint: \"System DNS servers that will be set after TUN Mode is disabled\",\n                            position: \"right\"\n                        },\n                        on: {\n                            click: function(t) {\n                                t.stopPropagation(), e.isResetDNSSettingsVisible = !e.isResetDNSSettingsVisible\n                            }\n                        }\n                    }, [t(\"span\", {\n                        staticClass: \"icon text-[color:var(--general-settings-icon-c)]\"\n                    }, [e._v(\"manage_history\")])]) : e._e()], 1), e._v(\" \"), t(\"switch-view\", {\n                        attrs: {\n                            on: e.isTunEnable\n                        },\n                        on: {\n                            change: e.handleTunSwitchClick\n                        }\n                    })], 1), e._v(\" \"), t(\"div\", {\n                        staticClass: \"item\"\n                    }, [t(\"div\", {\n                        staticClass: \"item-left\"\n                    }, [t(\"div\", [e._v(Lg.mixin())]), e._v(\" \"), t(\"info-icon\", [e._v(\"\\n          \" + Lg.mixinAllowsDescribe() +\"\\n          \"), t(\"a\", {\n                        attrs: {\n                            href: \"https://web.archive.org/web/20230304232259/docs.cfw.lbyczf.com/contents/mixin.html\"\n                        }\n                    }, [e._v(Lg.onlineDocs())])]), e._v(\" \"), t(\"Hint\", {\n                        staticClass: \"tun-settings-icon\",\n                        attrs: {\n                            hint: Lg.editMixinContent(),\n                            position: \"right\"\n                        },\n                        on: {\n                            click: function(t) {\n                                return t.stopPropagation(), e.handleEditMixin.apply(null, arguments)\n                            }\n                        }\n                    }, [t(\"span\", {\n                        staticClass: \"icon text-[color:var(--general-settings-icon-c)]\"\n                    }, [e._v(\"settings\")])])], 1), e._v(\" \"), t(\"switch-view\", {\n                        attrs: {\n                            on: e.isMixinEnable\n                        },\n                        on: {\n                            change: e.handleMixinSwitchClick\n                        }\n                    })], 1), e._v(\" \"), e.isLinux ? e._e() : t(\"div\", {\n                        staticClass: \"item\"\n                    }, [t(\"div\", {\n                        staticClass: \"item-left\"\n                    }, [e._v(Lg.sysProxy())]), e._v(\" \"), t(\"switch-view\", {\n                        attrs: {\n                            on: e.isSystemProxyOn\n                        },\n                        on: {\n                            change: e.handleSystemProxySwitchClick\n                        }\n                    })], 1), e._v(\" \"), t(\"div\", {\n                        staticClass: \"item\"\n                    }, [t(\"div\", {\n                        staticClass: \"item-left\"\n                    }, [e._v(e._s(e.autoLaunchHint))]), e._v(\" \"), t(\"switch-view\", {\n                        attrs: {\n                            on: e.autoLaunch\n                        },\n                        on: {\n                            change: e.handleAutoLaunchSwitchClick\n                        }\n                    })], 1)]), e._v(\" \"), e.matchedSSID ? t(\"div\", {\n                        staticClass: \"font-normal text-xs flex items-center justify-center absolute bottom-3 left-[calc(50%+85px)] -translate-x-1/2 gap-x-1 rounded-md bg-[color:var(--proxy-item-bgc)] border-opacity-50 px-3 py-1 clickable !border-b-0\",\n                        on: {\n                            click: e.handleEditSSIDStrategyText\n                        }\n                    }, [t(\"span\", [e._v(Lg.ssidStrategy() + \":\")]), e._v(\" \"), t(\"span\", [e._v(e._s(e.matchedSSID))])]) : e._e(), e._v(\" \"), e.isLaunching ? t(\"error-view\") : e._e(), e._v(\" \"), e.isResetDNSSettingsVisible ? t(\"ResetDNSSettingsView\", {\n                        on: {\n                            close: function(t) {\n                                e.isResetDNSSettingsVisible = !1\n                            }\n                        }\n                    }) : e._e(), e._v(\" \"), e.isTunSettingsVisible ? t(\"tun-settings-view\", {\n                        on: {\n                            close: function(t) {\n                                e.isTunSettingsVisible = !1\n                            }\n                        }\n                    }) : e._e(), e._v(\" \"), e.isInterfacesVisible ? t(\"interfaces-view\", {\n                        on: {\n                            close: function(t) {\n                                e.isInterfacesVisible = !1\n                            }\n                        }\n                    }) : e._e(), e._v(\" \"), t(\"div\", {\n                        staticClass: \"empty-div\"\n                    })], 1)\n                }), [], !1, null, \"357ec510\", null).exports\n            },\n            11969: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    Z: () => N\n                });\n                var n = i(48926),\n                    o = i.n(n),\n                    s = i(63038),\n                    r = i.n(s),\n                    a = i(319),\n                    l = i.n(a),\n                    c = i(59713),\n                    d = i.n(c),\n                    h = i(87757),\n                    u = i.n(h),\n                    g = i(10605),\n                    p = i.n(g),\n                    f = i(8369),\n                    m = i(23321),\n                    v = i(24793),\n                    _ = i(33182),\n                    b = i(72298);\n                i(11442);\n                const w = require(\"read-last-lines\");\n                var y = i(17285),\n                    C = i(24883),\n                    x = i(81518);\n\n                function S(e, t) {\n                    var i = Object.keys(e);\n                    if (Object.getOwnPropertySymbols) {\n                        var n = Object.getOwnPropertySymbols(e);\n                        t && (n = n.filter((function(t) {\n                            return Object.getOwnPropertyDescriptor(e, t).enumerable\n                        }))), i.push.apply(i, n)\n                    }\n                    return i\n                }\n\n                function k(e) {\n                    for (var t = 1; t < arguments.length; t++) {\n                        var i = null != arguments[t] ? arguments[t] : {};\n                        t % 2 ? S(Object(i), !0).forEach((function(t) {\n                            d()(e, t, i[t])\n                        })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(i)) : S(Object(i)).forEach((function(t) {\n                            Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(i, t))\n                        }))\n                    }\n                    return e\n                }\n                const Lg = new Language(modifyState.language);\n                const L = {\n                    props: [],\n                    data: function() {\n                        return {\n                            listData: [],\n                            randomColor: [],\n                            client: null,\n                            isAutoScroll: !0,\n                            dnsRecords: {},\n                            logLevel: parseInt(C.Z.get(x.Z.LOG_MOUDLE_LEVEL)) || 0,\n                            logTypeEmoji: {\n                                info: \"✅\",\n                                debug: \"🪲\",\n                                warn: \"‼️\",\n                                error: \"❌\"\n                            },\n                            searchText: \"\",\n                            showDetailItemIDs: [],\n                            logStyle: parseInt(C.Z.get(x.Z.LOG_MODULE_STYLE)) || 0\n                        }\n                    },\n                    watch: {\n                        searchText: function(e) {\n                            C.Z.put(x.Z.LOG_MODULE_SEARCH_TEXT, e)\n                        },\n                        isWindowShow: function(e) {\n                            this.handleWindwEvent(e)\n                        },\n                        clashStatus: function(e) {\n                            this.closeLogStream(), e === _.Z.CONNECTED && this.openLogStream()\n                        },\n                        logStyle: function(e) {\n                            C.Z.put(x.Z.LOG_MODULE_STYLE, e)\n                        },\n                        logLevel: function(e) {\n                            this.closeLogStream(), this.openLogStream(), C.Z.put(x.Z.LOG_MOUDLE_LEVEL, e)\n                        }\n                    },\n                    computed: k(k(k({}, (0, m.mapState)({\n                        isWindowShow: function(e) {\n                            return e.app.isWindowShow\n                        },\n                        clashStatus: function(e) {\n                            return e.app.clashStatus\n                        },\n                        mode: function(e) {\n                            return e.app.mode\n                        },\n                        logFilePath: function(e) {\n                            return e.app.logFilePath\n                        },\n                        settings: function(e) {\n                            return e.app.settings\n                        }\n                    })), (0, m.mapGetters)([\"clashWSClient\"])), {}, {\n                        logList: function() {\n                            var e = this;\n                            return this.searchText && this.searchTextReg ? this.listData.filter((function(t) {\n                                return e.searchTextReg.test((0, f.Mf)(t))\n                            })).slice(-200) : this.listData.slice(-200)\n                        },\n                        searchTextReg: function() {\n                            try {\n                                return new RegExp(this.searchText, \"i\")\n                            } catch (e) {}\n                            return null\n                        },\n                        buttonText: function() {\n                            return this.client && 1 === this.client.readyState ? Lg.pause() : Lg.start()\n                        },\n                        buttonStyle: function() {\n                            var e = [\"button\"];\n                            return this.client && 1 === this.client.readyState ? e.push(\"button-off\") : e.push(\"button-on\"), e\n                        }\n                    }),\n                    filters: {\n                        msgFilter: function(e) {\n                            return /(TCP|UDP)/.test(e) ? RegExp.$1.trim().toUpperCase() : e\n                        }\n                    },\n                    methods: k(k({}, (0, m.mapActions)([\"getMode\"])), {}, {\n                        isShowDetails: function(e) {\n                            var t = e.id;\n                            return 1 === this.logStyle || \"\" !== this.searchText || this.showDetailItemIDs.includes(t)\n                        },\n                        addrFieldStr: function(e) {\n                            var t = (e || {}).fields,\n                                i = (void 0 === t ? [] : t).find((function(e) {\n                                    return \"rAddr\" === e.key\n                                }));\n                            return i ? \"\".concat(i.value) : \"\"\n                        },\n                        copyPayload: function(e) {\n                            var t = e.fields.find((function(e) {\n                                return \"rAddr\" === e.key\n                            }));\n                            t && (b.clipboard.writeText(t.value), (0, f.c0)(\"Copied to Clipboad!\", t.value))\n                        },\n                        logItemClasses: function(e) {\n                            var t = [\"dark\", \"2077\"].includes(this.theme);\n                            return {\n                                debugdark: \"debug\" === e.type && !t,\n                                debug: \"debug\" === e.type && t,\n                                info: \"info\" === e.type,\n                                warn: \"warn\" === e.type,\n                                error: \"error\" === e.type\n                            }\n                        },\n                        randomBGC: function(e) {\n                            if (\"light\" === this.theme) {\n                                var t = this.randomColor.find((function(t) {\n                                    return t.type === e\n                                }));\n                                if (t) return {\n                                    color: \"rgb(\".concat(t.r, \",\").concat(t.g, \",\").concat(t.b, \")\")\n                                };\n                                var i = Math.floor(150 * Math.random() + 10),\n                                    n = Math.floor(150 * Math.random() + 10),\n                                    o = Math.floor(150 * Math.random() + 10);\n                                return this.randomColor.push({\n                                    type: e,\n                                    r: i,\n                                    g: n,\n                                    b: o\n                                }), {\n                                    color: \"rgb(\".concat(i, \",\").concat(n, \",\").concat(o, \")\")\n                                }\n                            }\n                        },\n                        parseLog: function(e) {\n                            var t = this,\n                                i = e.level,\n                                n = e.message,\n                                o = e.time,\n                                s = e.fields;\n                            this.listData = [].concat(l()(this.listData), [{\n                                type: i,\n                                msg: n,\n                                time: o || p()().format(\"HH:mm:ss\"),\n                                fields: s.filter((function(e) {\n                                    var i = e.key,\n                                        n = e.value;\n                                    return \"mode\" !== i && n !== t.mode\n                                })),\n                                id: (0, v.uniqueId)()\n                            }])\n                        },\n                        openLogStream: function() {\n                            var e = this,\n                                t = this.clashWSClient(\"logs\", [\"level=\".concat([\"info\", \"debug\"][this.logLevel]), \"format=structured\"]);\n                            t && (t.on(\"message\", (function(t) {\n                                try {\n                                    e.parseLog(JSON.parse(t))\n                                } catch (e) {\n                                    console.error(\"failed to parse log\", t)\n                                }\n                            })), this.client = t)\n                        },\n                        closeLogStream: function() {\n                            this.client && this.client.terminate(), this.client = null\n                        },\n                        handleItemClick: function(e) {\n                            var t = e.id,\n                                i = this.showDetailItemIDs.findIndex((function(e) {\n                                    return e === t\n                                }));\n                            i > -1 ? this.showDetailItemIDs.splice(i, 1) : this.showDetailItemIDs.push(t)\n                        },\n                        handleItemRightClick: function(e, t) {\n                            var i = this;\n                            this.isAutoScroll = !1;\n                            const Lg = new Language(modifyState.language);\n                            var n = t.fields.find((function(e) {\n                                return \"rAddr\" === e.key\n                            }));\n                            this.$menu([{\n                                text: (null == n ? void 0 : n.value) || \"Unknown\",\n                                disabled: !0,\n                                icon: \"title\"\n                            }, {\n                                text: Lg.copy(),\n                                icon: \"content_copy\",\n                                click: function() {\n                                    i.copyPayload(t)\n                                }\n                            }], e)\n                        },\n                        handleBtnClick: function() {\n                            this.client ? this.closeLogStream() : this.openLogStream()\n                        },\n                        handleClear: function() {\n                            this.listData = []\n                        },\n                        handleWindwEvent: function(e) {\n                            e ? this.openLogStream() : this.closeLogStream()\n                        },\n                        handleScroll: function(e) {\n                            var t = e.target;\n                            if (t) {\n                                var i = t.scrollTop,\n                                    n = t.scrollHeight,\n                                    o = t.clientHeight;\n                                this.isAutoScroll = Math.abs(n - i - o) < 1\n                            }\n                        },\n                        parseStringLog: function(e) {\n                            var t = this,\n                                i = e.payload,\n                                n = e.type,\n                                o = e.time,\n                                s = \"\";\n                            new RegExp(\"^([^=]+)( .+=|$)\").test(i) && (s = RegExp.$1.trim());\n                            var a = l()(i.matchAll(/([^\\s]+?)=([^=]+)(?= .+=|$)/g)).reduce((function(e, i) {\n                                var n = r()(i, 3),\n                                    o = n[1],\n                                    s = n[2];\n                                return \"mode\" === o && s === t.mode ? e : [].concat(l()(e), [{\n                                    key: o.trim(),\n                                    value: s.trim().replace(/^\"|\"$/g, \"\")\n                                }])\n                            }), []);\n                            return {\n                                msg: s,\n                                id: (0, v.uniqueId)(),\n                                type: n,\n                                fields: a,\n                                time: o || p()().format(\"HH:mm:ss\")\n                            }\n                        }\n                    }),\n                    beforeRouteEnter: function(e, t, i) {\n                        var n;\n                        i((n = o()(u().mark((function e(t) {\n                            var i, n;\n                            return u().wrap((function(e) {\n                                for (;;) switch (e.prev = e.next) {\n                                    case 0:\n                                        if (t.searchText = C.Z.get(x.Z.LOG_MODULE_SEARCH_TEXT) || \"\", i = t.settings.logPreloadLineCount, !((n = i >= 0 ? i : 30) > 0)) {\n                                            e.next = 13;\n                                            break\n                                        }\n                                        return e.prev = 4, e.next = 7, w.read(t.logFilePath, n);\n                                    case 7:\n                                        e.sent.split(\"\\n\").forEach((function(e) {\n                                            /^(.*?) (.*?) (.+)$/.test(e) && (t.listData = [].concat(l()(t.listData), [t.parseStringLog({\n                                                payload: RegExp.$3.trim(),\n                                                type: {\n                                                    ERR: \"error\",\n                                                    WRN: \"warn\",\n                                                    INF: \"info\",\n                                                    DBG: \"debug\",\n                                                    TRC: \"trace\",\n                                                    FTL: \"fatal\"\n                                                } [RegExp.$2.trim()],\n                                                time: RegExp.$1.trim()\n                                            })]))\n                                        })), e.next = 13;\n                                        break;\n                                    case 11:\n                                        e.prev = 11, e.t0 = e.catch(4);\n                                    case 13:\n                                        t.getMode(), t.openLogStream(), t.$refs.list.addEventListener(\"scroll\", t.handleScroll);\n                                    case 16:\n                                    case \"end\":\n                                        return e.stop()\n                                }\n                            }), e, null, [\n                                [4, 11]\n                            ])\n                        }))), function(e) {\n                            return n.apply(this, arguments)\n                        }))\n                    },\n                    beforeRouteLeave: function(e, t, i) {\n                        this.closeLogStream(), this.$refs.list.removeEventListener(\"scroll\", this.handleScroll), i()\n                    },\n                    updated: function() {\n                        this.$nextTick((function() {\n                            var e = this.$refs.list;\n                            e && this.isAutoScroll && (e.scrollTop = e.scrollHeight)\n                        }))\n                    },\n                    components: {\n                        SelectView: y.Z\n                    }\n                };\n                i(74863), i(15586);\n                const N = (0, i(51900).Z)(L, (function() {\n                    var e = this,\n                        t = e._self._c;\n                    const Lg = new Language(modifyState.language);\n                    return t(\"div\", {\n                        staticClass: \"main-log-view w-full\"\n                    }, [t(\"div\", {\n                        staticClass: \"title\"\n                    }, [t(\"div\", {\n                        staticClass: \"text flex-shrink-0\"\n                    }, [t(\"div\", [e._v(Lg.requestLogs())]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"hint\"\n                    }, [e._v(Lg.chains() + (\"global\" == e._s(e.mode) ? Lg.global() : \"rule\" == e._s(e.mode) ? Lg.rule() : \"direct\" == e._s(e.mode) ? Lg.direct() : \"script\" == e._s(e.mode) ? Lg.script() : e._s(e.mode)))])]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"relative w-full mx-4\",\n                        attrs: {\n                            title: e.searchTextReg\n                        }\n                    }, [t(\"input\", {\n                        directives: [{\n                            name: \"model\",\n                            rawName: \"v-model\",\n                            value: e.searchText,\n                            expression: \"searchText\"\n                        }],\n                        ref: \"search-text-input\",\n                        staticClass: \"outline-none text-base w-full h-[35px] pl-3 pr-6\",\n                        attrs: {\n                            type: Lg.text(),\n                            placeholder: Lg.search()\n                        },\n                        domProps: {\n                            value: e.searchText\n                        },\n                        on: {\n                            input: function(t) {\n                                t.target.composing || (e.searchText = t.target.value)\n                            }\n                        }\n                    }), e._v(\" \"), e.searchText ? t(\"span\", {\n                        staticClass: \"icon text-sm absolute right-2 h-full flex top-0 items-center clickable\",\n                        on: {\n                            click: function(t) {\n                                e.searchText = \"\", e.$refs[\"search-text-input\"].focus()\n                            }\n                        }\n                    }, [e._v(\"close\")]) : e._e()]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"btns\"\n                    }, [t(\"div\", {\n                        staticClass: \"flex gap-y-1 flex-col text-base\"\n                    }, [t(\"SelectView\", {\n                        staticClass: \"mr-4\",\n                        attrs: {\n                            items: Lg.simpleAndDetailed()\n                        },\n                        model: {\n                            value: e.logStyle,\n                            callback: function(t) {\n                                e.logStyle = t\n                            },\n                            expression: \"logStyle\"\n                        }\n                    }), e._v(\" \"), t(\"SelectView\", {\n                        staticClass: \"mr-4\",\n                        attrs: {\n                            items: Lg.infoAndDebug()\n                        },\n                        model: {\n                            value: e.logLevel,\n                            callback: function(t) {\n                                e.logLevel = t\n                            },\n                            expression: \"logLevel\"\n                        }\n                    })], 1), e._v(\" \"), t(\"div\", {\n                        staticClass: \"button button-clear mr-2\",\n                        on: {\n                            click: e.handleClear\n                        }\n                    }, [e._v(Lg.clear())]), e._v(\" \"), t(\"div\", {\n                        class: e.buttonStyle,\n                        on: {\n                            click: e.handleBtnClick\n                        }\n                    }, [e._v(e._s(e.buttonText))])])]), e._v(\" \"), t(\"div\", {\n                        ref: \"list\",\n                        staticClass: \"log-list w-full\"\n                    }, [0 === e.listData.length ? t(\"div\", {\n                        staticClass: \"empty-list\"\n                    }, [t(\"div\", [e._v(Lg.emptyLogList())]), e._v(\" \"), t(\"div\", [e._v(Lg.refreshBrowserMakeRequest())])]) : e._e(), e._v(\" \"), e._l(e.logList, (function(i) {\n                        return t(\"div\", {\n                            key: i.id,\n                            staticClass: \"clickable log-item w-full\",\n                            on: {\n                                click: function(t) {\n                                    return e.handleItemClick(i)\n                                },\n                                contextmenu: function(t) {\n                                    return e.handleItemRightClick(t, i)\n                                }\n                            }\n                        }, [t(\"div\", {\n                            staticClass: \"text-sm w-full\"\n                        }, [t(\"div\", {\n                            staticClass: \"flex justify-between\"\n                        }, [t(\"div\", {\n                            staticClass: \"text-xs\",\n                            class: e.logItemClasses(i)\n                        }, [e._v(\"\\n            \" + e._s(e.logTypeEmoji[i.type]) + \"\\n            \" + e._s(i.msg) + \"\\n          \")]), e._v(\" \"), t(\"div\", {\n                            staticClass: \"text-xs opacity-60\"\n                        }, [e._v(e._s(i.time))])]), e._v(\" \"), e.addrFieldStr(i) ? t(\"div\", {\n                            staticClass: \"text-[14px] flex items-center gap-x-1\"\n                        }, [t(\"span\", {\n                            staticClass: \"opacity-40 text-[10px] rotate-90 inline-block transition-all duration-200 ease-in-out\",\n                            style: {\n                                transform: e.isShowDetails(i) ? \"rotate(180deg)\" : \"\"\n                            }\n                        }, [e._v(\"▲\")]), e._v(\"\\n          \" + e._s(e.addrFieldStr(i)) + \"\\n        \")]) : e._e(), e._v(\" \"), e.isShowDetails(i) ? t(\"div\", {\n                            staticClass: \"flex text-xs flex-wrap gap-x-3\"\n                        }, [e._l(i.fields, (function(i) {\n                            return [\n                                [\"rAddr\"].includes(i.key) ? e._e() : t(\"div\", {\n                                    key: i.key,\n                                    staticClass: \"flex gap-x-[2px] items-baseline w-fit\"\n                                }, [t(\"div\", {\n                                    staticClass: \"text-xs items-baseline text-[color:var(--log-item-payload-c)] flex-shrink-0\"\n                                }, [e._v(\"\\n                \" + e._s(\"lAddr\" === i.key ? \"FROM\" : i.key.toUpperCase()) + \"\\n              \")]), e._v(\" \"), t(\"span\", [e._v(\"⇢\")]), e._v(\" \"), t(\"div\", {\n                                    staticClass: \"break-all max-w-full opacity-80\"\n                                }, [e._v(\"\\n                \" + e._s(i.value) + \"\\n              \")])])\n                            ]\n                        }))], 2) : e._e()])])\n                    }))], 2)])\n                }), [], !1, null, \"6acd51f2\", null).exports\n            },\n            38585: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    Z: () => N\n                });\n                var n = i(63038),\n                    o = i.n(n),\n                    s = i(48926),\n                    r = i.n(s),\n                    a = i(319),\n                    l = i.n(a),\n                    c = i(59713),\n                    d = i.n(c),\n                    h = i(87757),\n                    u = i.n(h),\n                    g = i(23321),\n                    p = i(10605),\n                    f = i.n(p),\n                    m = i(33182),\n                    v = i(71017);\n                const _ = {\n                    props: {\n                        text: String,\n                        size: String,\n                        isLoading: Boolean\n                    },\n                    methods: {\n                        handleClick: function() {\n                            this.isLoading || this.$emit(\"click\")\n                        }\n                    }\n                };\n                i(58528);\n                var b = i(51900);\n                const w = (0, b.Z)(_, (function() {\n                    var e = this,\n                        t = e._self._c;\n                    return t(\"div\", {\n                        staticClass: \"main-button-view\",\n                        on: {\n                            click: e.handleClick\n                        }\n                    }, [e.isLoading ? t(\"div\", {\n                        staticClass: \"line\"\n                    }, [t(\"div\", {\n                        class: [\"box\", \"animation-delay1\", \"large\" === e.size ? \"large\" : \"small\"]\n                    }), e._v(\" \"), t(\"div\", {\n                        class: [\"box\", \"animation-delay2\", \"large\" === e.size ? \"large\" : \"small\"]\n                    }), e._v(\" \"), t(\"div\", {\n                        class: [\"box\", \"animation-delay3\", \"large\" === e.size ? \"large\" : \"small\"]\n                    }), e._v(\" \"), t(\"div\", {\n                        class: [\"box\", \"animation-delay4\", \"large\" === e.size ? \"large\" : \"small\"]\n                    }), e._v(\" \"), t(\"div\", {\n                        class: [\"box\", \"animation-delay5\", \"large\" === e.size ? \"large\" : \"small\"]\n                    })]) : t(\"div\", [e._v(e._s(e.text))])])\n                }), [], !1, null, \"f3b3ccf8\", null).exports;\n                var y = i(72298),\n                    C = i(57147),\n                    x = i.n(C);\n\n                function S(e, t) {\n                    var i = Object.keys(e);\n                    if (Object.getOwnPropertySymbols) {\n                        var n = Object.getOwnPropertySymbols(e);\n                        t && (n = n.filter((function(t) {\n                            return Object.getOwnPropertyDescriptor(e, t).enumerable\n                        }))), i.push.apply(i, n)\n                    }\n                    return i\n                }\n\n                function k(e) {\n                    for (var t = 1; t < arguments.length; t++) {\n                        var i = null != arguments[t] ? arguments[t] : {};\n                        t % 2 ? S(Object(i), !0).forEach((function(t) {\n                            d()(e, t, i[t])\n                        })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(i)) : S(Object(i)).forEach((function(t) {\n                            Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(i, t))\n                        }))\n                    }\n                    return e\n                }\n                const L = {\n                    components: {\n                        Button: w,\n                        Hint: i(13338).Z\n                    },\n                    props: [],\n                    data: function() {\n                        return {\n                            providers: [],\n                            ruleProviders: [],\n                            updateAbortCtl: new AbortController,\n                            healthCheckAbortCtl: new AbortController,\n                            errorProviderIndexes: []\n                        }\n                    },\n                    watch: {\n                        clashStatus: function(e) {\n                            e === m.Z.CONNECTED && this.fetchData()\n                        },\n                        profileRefreshTimes: function() {\n                            this.fetchData()\n                        },\n                        allProviders: function(e) {\n                            this.errorProviderIndexes = e.reduce((function(e, t, i) {\n                                return \"\" !== t.message && e.push(i), e\n                            }), [])\n                        }\n                    },\n                    computed: k(k(k({}, (0, g.mapState)({\n                        clashPath: function(e) {\n                            return e.app.clashPath\n                        },\n                        clashStatus: function(e) {\n                            return e.app.clashStatus\n                        },\n                        profileRefreshTimes: function(e) {\n                            return e.app.profileRefreshTimes\n                        },\n                        currentProfilePayload: function(e) {\n                            return e.app.currentProfilePayload\n                        },\n                        settings: function(e) {\n                            return e.app.settings\n                        }\n                    })), (0, g.mapGetters)([\"clashAxiosClient\"])), {}, {\n                        updatingProvidersCount: function() {\n                            return this.providers.filter((function(e) {\n                                return e.isUpdating\n                            })).length + this.ruleProviders.filter((function(e) {\n                                return e.isUpdating\n                            })).length\n                        },\n                        failedProvidersCount: function() {\n                            return this.allProviders.filter((function(e) {\n                                return \"\" !== e.message\n                            })).length\n                        },\n                        checkingProvidersCount: function() {\n                            return this.providers.filter((function(e) {\n                                return e.isChecking\n                            })).length\n                        },\n                        allProviders: function() {\n                            return [].concat(l()(this.providers), l()(this.ruleProviders))\n                        }\n                    }),\n                    methods: {\n                        fromNowString: function(e) {\n                            const Lg = new Language(modifyState.language);\n                            return f()(e).locale(Lg.locale()).fromNow()\n                        },\n                        handleLocateFailedProvider: function() {\n                            if (this.errorProviderIndexes.length > 0 && 0 === this.updatingProvidersCount) {\n                                var e, t = this.errorProviderIndexes[0];\n                                null === (e = this.$refs[\"provider-\".concat(t)]) || void 0 === e || e[0].scrollIntoView(), this.errorProviderIndexes = [].concat(l()(this.errorProviderIndexes.slice(1)), [t])\n                            }\n                        },\n                        handleAllProvidersUpdate: function() {\n                            if (this.updatingProvidersCount > 0) return this.updateAbortCtl.abort(), void(this.updateAbortCtl = new AbortController);\n                            for (var e in this.providers) this.handleProviderUpdate(e);\n                            for (var t in this.ruleProviders) this.handleRuleProviderUpdate(t)\n                        },\n                        handleAllProvidersHealthCheck: function() {\n                            if (this.checkingProvidersCount > 0) return this.healthCheckAbortCtl.abort(), void(this.healthCheckAbortCtl = new AbortController);\n                            for (var e in this.providers) this.handleHealthCheck(e)\n                        },\n                        handleHealthCheck: function(e) {\n                            var t = this;\n                            return r()(u().mark((function i() {\n                                var n, o;\n                                return u().wrap((function(i) {\n                                    for (;;) switch (i.prev = i.next) {\n                                        case 0:\n                                            if (n = t.providers[e], !(o = n.name)) {\n                                                i.next = 12;\n                                                break\n                                            }\n                                            return t.$set(t.providers, e, k(k({}, n), {}, {\n                                                isChecking: !0\n                                            })), i.prev = 4, i.next = 7, t.clashAxiosClient.get(\"/providers/proxies/\".concat(encodeURIComponent(o), \"/healthcheck\"), {\n                                                timeout: 0,\n                                                signal: t.healthCheckAbortCtl.signal\n                                            });\n                                        case 7:\n                                            i.next = 11;\n                                            break;\n                                        case 9:\n                                            i.prev = 9, i.t0 = i.catch(4);\n                                        case 11:\n                                            t.$set(t.providers, e, k(k({}, n), {}, {\n                                                isChecking: !1\n                                            }));\n                                        case 12:\n                                        case \"end\":\n                                            return i.stop()\n                                    }\n                                }), i, null, [\n                                    [4, 9]\n                                ])\n                            })))()\n                        },\n                        handleProviderUpdate: function(e) {\n                            var t = this;\n                            const Lg = new Language(modifyState.language);\n                            return r()(u().mark((function i() {\n                                var n, o, s, r, a, l, c, d, h, g, p;\n                                return u().wrap((function(i) {\n                                    for (;;) switch (i.prev = i.next) {\n                                        case 0:\n                                            if (n = t.providers[e], o = n.name, s = n.vehicleType, r = n.isUpdating, ![\"File\", \"HTTP\"].includes(s) || !o || r) {\n                                                i.next = 33;\n                                                break\n                                            }\n                                            return t.$set(t.providers, e, k(k({}, n), {}, {\n                                                isUpdating: !0,\n                                                message: \"\"\n                                            })), i.prev = 4, i.next = 7, t.clashAxiosClient.put(\"/providers/proxies/\".concat(encodeURIComponent(o)), {}, {\n                                                validateStatus: function(e) {\n                                                    return !0\n                                                },\n                                                timeout: 0,\n                                                signal: t.updateAbortCtl.signal\n                                            });\n                                        case 7:\n                                            if (a = i.sent, l = a.status, c = a.data, 204 !== l) {\n                                                i.next = 26;\n                                                break\n                                            }\n                                            return i.next = 13, t.fetchSingleData(\"proxies\", o);\n                                        case 13:\n                                            if (i.t1 = d = i.sent, i.t0 = null !== i.t1, !i.t0) {\n                                                i.next = 17;\n                                                break\n                                            }\n                                            i.t0 = void 0 !== d;\n                                        case 17:\n                                            if (!i.t0) {\n                                                i.next = 21;\n                                                break\n                                            }\n                                            i.t2 = d, i.next = 22;\n                                            break;\n                                        case 21:\n                                            i.t2 = n;\n                                        case 22:\n                                            h = i.t2, t.$set(t.providers, e, k(k({}, h), {}, {\n                                                isUpdating: !1,\n                                                message: \"\"\n                                            })), i.next = 28;\n                                            break;\n                                        case 26:\n                                            g = c.message, p = void 0 === g ? Lg.couldNotUpdateProvider() : g, t.$set(t.providers, e, k(k({}, n), {}, {\n                                                isUpdating: !1,\n                                                message: p\n                                            }));\n                                        case 28:\n                                            i.next = 33;\n                                            break;\n                                        case 30:\n                                            i.prev = 30, i.t3 = i.catch(4), t.$set(t.providers, e, k(k({}, n), {}, {\n                                                isUpdating: !1,\n                                                message: i.t3\n                                            }));\n                                        case 33:\n                                        case \"end\":\n                                            return i.stop()\n                                    }\n                                }), i, null, [\n                                    [4, 30]\n                                ])\n                            })))()\n                        },\n                        handleRuleProviderUpdate: function(e) {\n                            var t = this;\n                            const Lg = new Language(modifyState.language);\n                            return r()(u().mark((function i() {\n                                var n, o, s, r, a, l, c, d, h, g, p;\n                                return u().wrap((function(i) {\n                                    for (;;) switch (i.prev = i.next) {\n                                        case 0:\n                                            if (n = t.ruleProviders[e], o = n.name, s = n.vehicleType, r = n.isUpdating, ![\"File\", \"HTTP\"].includes(s) || !o || r) {\n                                                i.next = 33;\n                                                break\n                                            }\n                                            return t.$set(t.ruleProviders, e, k(k({}, n), {}, {\n                                                isUpdating: !0,\n                                                message: \"\"\n                                            })), i.prev = 4, i.next = 7, t.clashAxiosClient.put(\"/providers/rules/\".concat(encodeURIComponent(o)), {}, {\n                                                validateStatus: function(e) {\n                                                    return !0\n                                                },\n                                                timeout: 0,\n                                                signal: t.updateAbortCtl.signal\n                                            });\n                                        case 7:\n                                            if (a = i.sent, l = a.status, c = a.data, 204 !== l) {\n                                                i.next = 26;\n                                                break\n                                            }\n                                            return i.next = 13, t.fetchSingleData(\"rules\", o);\n                                        case 13:\n                                            if (i.t1 = d = i.sent, i.t0 = null !== i.t1, !i.t0) {\n                                                i.next = 17;\n                                                break\n                                            }\n                                            i.t0 = void 0 !== d;\n                                        case 17:\n                                            if (!i.t0) {\n                                                i.next = 21;\n                                                break\n                                            }\n                                            i.t2 = d, i.next = 22;\n                                            break;\n                                        case 21:\n                                            i.t2 = n;\n                                        case 22:\n                                            h = i.t2, t.$set(t.ruleProviders, e, k(k({}, h), {}, {\n                                                isUpdating: !1,\n                                                message: \"\"\n                                            })), i.next = 28;\n                                            break;\n                                        case 26:\n                                            g = c.message, p = void 0 === g ? Lg.couldNotUpdateProvider() : g, t.$set(t.ruleProviders, e, k(k({}, n), {}, {\n                                                isUpdating: !1,\n                                                message: p\n                                            }));\n                                        case 28:\n                                            i.next = 33;\n                                            break;\n                                        case 30:\n                                            i.prev = 30, i.t3 = i.catch(4), t.$set(t.ruleProviders, e, k(k({}, n), {}, {\n                                                isUpdating: !1,\n                                                message: i.t3\n                                            }));\n                                        case 33:\n                                        case \"end\":\n                                            return i.stop()\n                                    }\n                                }), i, null, [\n                                    [4, 30]\n                                ])\n                            })))()\n                        },\n                        handleEditProviderFile: function(e, t) {\n                            var i, n = this,\n                                o = t.name,\n                                s = this.settings.editProfileWithCFWEditor,\n                                a = void 0 !== s && s,\n                                l = this.currentProfilePayload,\n                                c = l[\"rule-providers\"],\n                                d = void 0 === c ? {} : c,\n                                h = l[\"proxy-providers\"],\n                                g = {\n                                    rule: d,\n                                    proxy: void 0 === h ? {} : h\n                                } [e][o],\n                                p = (g = void 0 === g ? {} : g).path,\n                                f = (i = r()(u().mark((function e(t) {\n                                    var i, o, s;\n                                    return u().wrap((function(e) {\n                                        for (;;) switch (e.prev = e.next) {\n                                            case 0:\n                                                if (!a) {\n                                                    e.next = 14;\n                                                    break\n                                                }\n                                                return e.prev = 1, e.next = 4, n.$code({\n                                                    code: x().readFileSync(t).toString(),\n                                                    fontSize: n.settings.editorFontSize\n                                                });\n                                            case 4:\n                                                i = e.sent, o = i.code, s = void 0 === o ? \"\" : o, x().writeFileSync(t, s), e.next = 12;\n                                                break;\n                                            case 10:\n                                                e.prev = 10, e.t0 = e.catch(1);\n                                            case 12:\n                                                e.next = 15;\n                                                break;\n                                            case 14:\n                                                y.shell.openPath(t);\n                                            case 15:\n                                            case \"end\":\n                                                return e.stop()\n                                        }\n                                    }), e, null, [\n                                        [1, 10]\n                                    ])\n                                }))), function(e) {\n                                    return i.apply(this, arguments)\n                                });\n                            p && ((0, v.isAbsolute)(p) ? f(p) : f((0, v.join)(this.clashPath, p)))\n                        },\n                        fetchSingleData: function(e, t) {\n                            var i = this;\n                            return r()(u().mark((function n() {\n                                var o, s, r, a;\n                                return u().wrap((function(n) {\n                                    for (;;) switch (n.prev = n.next) {\n                                        case 0:\n                                            return o = \"/providers/\".concat(e, \"/\").concat(encodeURIComponent(t)), n.next = 3, i.clashAxiosClient.get(o, {\n                                                validateStatus: function() {\n                                                    return !0\n                                                },\n                                                timeout: 0,\n                                                signal: i.updateAbortCtl.signal\n                                            });\n                                        case 3:\n                                            return s = n.sent, r = s.status, a = s.data, n.abrupt(\"return\", 200 === r ? a : null);\n                                        case 7:\n                                        case \"end\":\n                                            return n.stop()\n                                    }\n                                }), n)\n                            })))()\n                        },\n                        fetchData: function() {\n                            var e = this;\n                            return r()(u().mark((function t() {\n                                var i, n, s, r, a, l, c, d, h, g, p, f, m, v, _, b, w, y, C, x, S, L, N;\n                                return u().wrap((function(t) {\n                                    for (;;) switch (t.prev = t.next) {\n                                        case 0:\n                                            return t.next = 2, Promise.all([e.clashAxiosClient.get(\"/providers/proxies\"), e.clashAxiosClient.get(\"/providers/rules\")]);\n                                        case 2:\n                                            if (i = t.sent, n = o()(i, 2), s = n[0], r = s.status, a = s.data, l = void 0 === a ? {} : a, c = n[1], d = c.status, h = c.data, 200 === r) {\n                                                for (g = l.providers, p = void 0 === g ? {} : g, f = [], m = 0, v = Object.entries(p); m < v.length; m++) _ = o()(v[m], 2), _[0], b = _[1], f.push(k(k({}, b), {}, {\n                                                    isChecking: !1,\n                                                    isUpdating: !1,\n                                                    message: \"\"\n                                                }));\n                                                e.providers = f.filter((function(e) {\n                                                    return [\"HTTP\", \"File\"].includes(e.vehicleType)\n                                                }))\n                                            } else e.providers = [];\n                                            if (200 === d) {\n                                                for (w = h.providers, y = void 0 === w ? {} : w, C = [], x = 0, S = Object.entries(y); x < S.length; x++) L = o()(S[x], 2), L[0], N = L[1], C.push(k(k({}, N), {}, {\n                                                    isUpdating: !1,\n                                                    message: \"\"\n                                                }));\n                                                e.ruleProviders = C.filter((function(e) {\n                                                    return [\"HTTP\", \"File\"].includes(e.vehicleType)\n                                                }))\n                                            } else e.ruleProviders = [];\n                                        case 13:\n                                        case \"end\":\n                                            return t.stop()\n                                    }\n                                }), t)\n                            })))()\n                        }\n                    },\n                    beforeRouteEnter: function(e, t, i) {\n                        i((function(e) {\n                            e.fetchData(), e.updateAbortCtl = new AbortController, e.healthCheckAbortCtl = new AbortController\n                        }))\n                    },\n                    beforeRouteLeave: function(e, t, i) {\n                        this.updateAbortCtl.abort(), this.healthCheckAbortCtl.abort(), i()\n                    }\n                };\n                i(99648);\n                const N = (0, b.Z)(L, (function() {\n                    var e = this,\n                        t = e._self._c;\n                    const Lg = new Language(modifyState.language);\n                    return t(\"div\", {\n                        staticClass: \"main-provider-view\"\n                    }, [t(\"div\", {\n                        class: [\"card\"]\n                    }, [t(\"div\", {\n                        staticClass: \"header\"\n                    }, [t(\"div\", {\n                        staticClass: \"buttons\"\n                    }, [t(\"Button\", {\n                        staticClass: \"btn\",\n                        style: {\n                            backgroundColor: e.updatingProvidersCount > 0 ? \"#FF5F57\" : \"\"\n                        },\n                        attrs: {\n                            text: e.updatingProvidersCount > 0 ? \"Cancel \".concat(e.updatingProvidersCount, \" Update\").concat(1 === e.updatingProvidersCount ? \"\" : \"s\") : Lg.updateAll(),\n                            isLoading: !1\n                        },\n                        on: {\n                            click: e.handleAllProvidersUpdate\n                        }\n                    }), e._v(\" \"), e.providers.length > 0 ? t(\"Button\", {\n                        staticClass: \"btn\",\n                        style: {\n                            backgroundColor: e.checkingProvidersCount > 0 ? \"#FF5F57\" : \"\"\n                        },\n                        attrs: {\n                            text: e.checkingProvidersCount > 0 ? \"Cancel \".concat(e.checkingProvidersCount, \" Check\").concat(1 === e.checkingProvidersCount ? \"\" : \"s\") : Lg.healthCheckAll(),\n                            isLoading: !1\n                        },\n                        on: {\n                            click: e.handleAllProvidersHealthCheck\n                        }\n                    }) : e._e()], 1)]), e._v(\" \"), t(\"div\", {\n                        ref: \"mixin-scroll-content\",\n                        staticClass: \"content\"\n                    }, [e.providers.length > 0 ? [t(\"div\", {\n                        staticClass: \"title\"\n                    }, [e._v(Lg.proxyProviders())]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"items\"\n                    }, e._l(e.providers, (function(i, n) {\n                        return t(\"div\", {\n                            key: i.name,\n                            ref: \"provider-\".concat(n),\n                            refInFor: !0,\n                            staticClass: \"provider-item\"\n                        }, [t(\"div\", {\n                            staticClass: \"provider-item-main\"\n                        }, [t(\"div\", [t(\"div\", {\n                            staticClass: \"name-type\"\n                        }, [t(\"div\", {\n                            staticClass: \"name\"\n                        }, [e._v(e._s(i.name))])]), e._v(\" \"), t(\"div\", {\n                            staticClass: \"update-hint\"\n                        }, [t(\"div\", {\n                            staticClass: \"type\"\n                        }, [e._v(\"\\n                    \" + e._s(i.vehicleType) + \" (\" + e._s(i.proxies.length) + \"\\n                    Proxies) (\" + e._s(e.fromNowString(i.updatedAt)) + \")\\n                  \")])]), e._v(\" \"), t(\"div\", {\n                            staticClass: \"error-hint\"\n                        }, [e._v(e._s(i.message))])]), e._v(\" \"), t(\"div\", {\n                            staticClass: \"empty\"\n                        }), e._v(\" \"), t(\"Hint\", {\n                            staticClass: \"icon-btn\",\n                            attrs: {\n                                hint: \"Health check\"\n                            },\n                            on: {\n                                click: function(t) {\n                                    return e.handleHealthCheck(n)\n                                }\n                            }\n                        }, [t(\"span\", {\n                            staticClass: \"icon\"\n                        }, [e._v(\"network_check\")])]), e._v(\" \"), t(\"Hint\", {\n                            staticClass: \"icon-btn\",\n                            attrs: {\n                                hint: \"Edit file\"\n                            },\n                            on: {\n                                click: function(t) {\n                                    return e.handleEditProviderFile(\"proxy\", i)\n                                }\n                            }\n                        }, [t(\"span\", {\n                            staticClass: \"icon\"\n                        }, [e._v(\"code\")])]), e._v(\" \"), \"HTTP\" === i.vehicleType ? t(\"Hint\", {\n                            staticClass: \"icon-btn\",\n                            attrs: {\n                                hint: Lg.updateProvider()\n                            },\n                            on: {\n                                click: function(t) {\n                                    return e.handleProviderUpdate(n)\n                                }\n                            }\n                        }, [t(\"span\", {\n                            staticClass: \"icon\",\n                            class: {\n                                rotating: i.isUpdating\n                            }\n                        }, [e._v(\"refresh\")])]) : e._e()], 1)])\n                    })), 0)] : e._e(), e._v(\" \"), e.ruleProviders.length > 0 ? [t(\"div\", {\n                        staticClass: \"title\"\n                    }, [e._v(\"Rule Providers\")]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"items\"\n                    }, e._l(e.ruleProviders, (function(i, n) {\n                        return t(\"div\", {\n                            key: i.name,\n                            ref: \"provider-\".concat(n + e.providers.length),\n                            refInFor: !0,\n                            staticClass: \"provider-item\"\n                        }, [t(\"div\", {\n                            staticClass: \"provider-item-main\"\n                        }, [t(\"div\", [t(\"div\", {\n                            staticClass: \"name-type\"\n                        }, [t(\"div\", {\n                            staticClass: \"name\"\n                        }, [e._v(\"\\n                    \" + e._s(i.name) + \"\\n                  \")])]), e._v(\" \"), t(\"div\", {\n                            staticClass: \"update-hint\"\n                        }, [t(\"div\", {\n                            staticClass: \"type\"\n                        }, [e._v(\"\\n                    \" + e._s(i.vehicleType) + \"\\n                    \" + e._s(i.behavior) + \" (\" + e._s(i.ruleCount) + \" Rules)\\n                    (\" + e._s(e.fromNowString(i.updatedAt)) + \")\\n                  \")])]), e._v(\" \"), t(\"div\", {\n                            staticClass: \"error-hint\"\n                        }, [e._v(e._s(i.message))])]), e._v(\" \"), t(\"div\", {\n                            staticClass: \"empty\"\n                        }), e._v(\" \"), t(\"Hint\", {\n                            staticClass: \"icon-btn\",\n                            attrs: {\n                                hint: \"Edit file\"\n                            },\n                            on: {\n                                click: function(t) {\n                                    return e.handleEditProviderFile(\"rule\", i)\n                                }\n                            }\n                        }, [t(\"span\", {\n                            staticClass: \"icon\"\n                        }, [e._v(\"code\")])]), e._v(\" \"), t(\"Hint\", {\n                            staticClass: \"icon-btn\",\n                            attrs: {\n                                hint: Lg.updateProvider()\n                            },\n                            on: {\n                                click: function(t) {\n                                    return e.handleRuleProviderUpdate(n)\n                                }\n                            }\n                        }, [t(\"span\", {\n                            staticClass: \"icon\",\n                            class: {\n                                rotating: i.isUpdating\n                            }\n                        }, [e._v(\"refresh\")])])], 1)])\n                    })), 0)] : e._e()], 2), e._v(\" \"), e.failedProvidersCount > 0 ? t(\"div\", {\n                        staticClass: \"fixed top-8 bg-opacity-80 right-2 bg-black px-3 py-1 text-white flex items-center gap-2 rounded text-sm clickable\",\n                        on: {\n                            click: e.handleLocateFailedProvider\n                        }\n                    }, [t(\"span\", {\n                        staticClass: \"icon text-sm text-red-500\"\n                    }, [e._v(\"error\")]), e._v(\"\\n      \" + e._s(e.failedProvidersCount) + \" error\" + e._s(1 === e.failedProvidersCount ? \"\" : \"s\") + \"\\n    \")]) : e._e()])])\n                }), [], !1, null, \"3e34584d\", null).exports\n            },\n            72094: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    Z: () => R\n                });\n                var n = i(63038),\n                    o = i.n(n),\n                    s = i(48926),\n                    r = i.n(s),\n                    a = i(319),\n                    l = i.n(a),\n                    c = i(59713),\n                    d = i.n(c),\n                    h = i(87757),\n                    u = i.n(h),\n                    g = i(13338),\n                    p = i(23321);\n\n                function f(e, t) {\n                    var i = Object.keys(e);\n                    if (Object.getOwnPropertySymbols) {\n                        var n = Object.getOwnPropertySymbols(e);\n                        t && (n = n.filter((function(t) {\n                            return Object.getOwnPropertyDescriptor(e, t).enumerable\n                        }))), i.push.apply(i, n)\n                    }\n                    return i\n                }\n                const Lg = new Language(modifyState.language);\n                const m = {\n                    components: {\n                        Hint: g.Z\n                    },\n                    props: [\"mode\"],\n                    data: function() {\n                        return {\n                            modes: [\"global\", \"rule\", \"direct\", \"script\"],\n                            hints: [\"\", Lg.routedAccordingRule(), Lg.goDirectly(), Lg.routedAccordingScript()],\n                            icons: [\"\", \"\", \"\", \"\"]\n                        }\n                    },\n                    computed: function(e) {\n                        for (var t = 1; t < arguments.length; t++) {\n                            var i = null != arguments[t] ? arguments[t] : {};\n                            t % 2 ? f(Object(i), !0).forEach((function(t) {\n                                d()(e, t, i[t])\n                            })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(i)) : f(Object(i)).forEach((function(t) {\n                                Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(i, t))\n                            }))\n                        }\n                        return e\n                    }({}, (0, p.mapState)({})),\n                    methods: {\n                        upperCaseFirstLetter: function(e) {\n                            return e[0].toUpperCase() + e.slice(1)\n                        },\n                        btnTheme: function(e) {\n                            var t = [\"btn\"];\n                            return this.mode === e.toLowerCase() ? t.push(\"selected\") : t.push(\"normal\"), t\n                        },\n                        switchMode: function(e) {\n                            var t = this;\n                            return r()(u().mark((function i() {\n                                return u().wrap((function(i) {\n                                    for (;;) switch (i.prev = i.next) {\n                                        case 0:\n                                            t.$parent.cancelLatencyTest(), t.$emit(\"switch\", e);\n                                        case 2:\n                                        case \"end\":\n                                            return i.stop()\n                                    }\n                                }), i)\n                            })))()\n                        }\n                    }\n                };\n                i(71176);\n                var v = i(51900);\n                const _ = (0, v.Z)(m, (function() {\n                    var e = this,\n                        t = e._self._c;\n                    const Lg = new Language(modifyState.language);\n                    return t(\"div\", {\n                        staticClass: \"main\",\n                        attrs: {\n                            id: \"main-mode-switcher\"\n                        }\n                    }, [t(\"div\", {\n                        staticClass: \"btns\"\n                    }, [t(\"Hint\", {\n                        staticClass: \"gap-x-2 clickable\",\n                        class: e.btnTheme(\"global\"),\n                        staticStyle: {\n                            \"flex-direction\": \"row\"\n                        },\n                        attrs: {\n                            position: \"bottom\",\n                            hint: Lg.routedThroughSelectedProxy()\n                        },\n                        on: {\n                            click: function(t) {\n                                return e.switchMode(\"global\")\n                            }\n                        }\n                    }, [t(\"span\", [e._v(Lg.global())]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"icon rotate-90\"\n                    }, [e._v(\"merge\")])]), e._v(\" \"), t(\"Hint\", {\n                        staticClass: \"gap-x-2 clickable\",\n                        class: e.btnTheme(\"rule\"),\n                        staticStyle: {\n                            \"flex-direction\": \"row\"\n                        },\n                        attrs: {\n                            position: \"bottom\",\n                            hint: Lg.routedAccordingRule()\n                        },\n                        on: {\n                            click: function(t) {\n                                return e.switchMode(\"rule\")\n                            }\n                        }\n                    }, [t(\"span\", [e._v(Lg.rule())]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"icon rotate-90\"\n                    }, [e._v(\"alt_route\")])]), e._v(\" \"), t(\"Hint\", {\n                        staticClass: \"gap-x-2 clickable\",\n                        class: e.btnTheme(\"direct\"),\n                        staticStyle: {\n                            \"flex-direction\": \"row\"\n                        },\n                        attrs: {\n                            position: \"bottom\",\n                            hint: Lg.goDirectly()\n                        },\n                        on: {\n                            click: function(t) {\n                                return e.switchMode(\"direct\")\n                            }\n                        }\n                    }, [t(\"span\", [e._v(Lg.direct())]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"icon rotate-90\"\n                    }, [e._v(\"straight\")])]), e._v(\" \"), t(\"Hint\", {\n                        staticClass: \"gap-x-2 clickable\",\n                        class: e.btnTheme(\"script\"),\n                        staticStyle: {\n                            \"flex-direction\": \"row\"\n                        },\n                        attrs: {\n                            position: \"bottom\",\n                            hint: Lg.routedAccordingScript()\n                        },\n                        on: {\n                            click: function(t) {\n                                return e.switchMode(\"script\")\n                            }\n                        }\n                    }, [t(\"span\", [e._v(Lg.script())]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"icon rotate-90\"\n                    }, [e._v(\"alt_route\")])])], 1)])\n                }), [], !1, null, \"357c3e79\", null).exports;\n                var b = i(11287),\n                    w = i(54387),\n                    y = i.n(w),\n                    C = i(24883),\n                    x = i(81518),\n                    S = i(24793),\n                    k = i.n(S),\n                    L = i(1581),\n                    N = i(8369),\n                    D = i(33182);\n                const I = require(\"velocity-animate\");\n                var E = i.n(I),\n                    T = i(71289);\n\n                function M(e, t) {\n                    var i = Object.keys(e);\n                    if (Object.getOwnPropertySymbols) {\n                        var n = Object.getOwnPropertySymbols(e);\n                        t && (n = n.filter((function(t) {\n                            return Object.getOwnPropertyDescriptor(e, t).enumerable\n                        }))), i.push.apply(i, n)\n                    }\n                    return i\n                }\n\n                function A(e) {\n                    for (var t = 1; t < arguments.length; t++) {\n                        var i = null != arguments[t] ? arguments[t] : {};\n                        t % 2 ? M(Object(i), !0).forEach((function(t) {\n                            d()(e, t, i[t])\n                        })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(i)) : M(Object(i)).forEach((function(t) {\n                            Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(i, t))\n                        }))\n                    }\n                    return e\n                }\n                var O = y().CancelToken;\n                const P = {\n                    props: [],\n                    data: function() {\n                        return {\n                            proxies: [],\n                            axiosCancelTokens: [],\n                            showSecIdxs: [],\n                            hideTimeoutSecNames: [],\n                            infoItemName: \"\",\n                            intervalID: null,\n                            filterKeyword: \"\",\n                            filterKeywordReg: /.*/,\n                            isShowFilter: !1,\n                            isScrolling: !1,\n                            topItemIndex: -1,\n                            topProxyIndex: -1,\n                            proxyBlinkIndex: -1,\n                            groupBlinkIndex: -1,\n                            testingProxyNames: []\n                        }\n                    },\n                    components: {\n                        ProxyModeSwitcher: _,\n                        Navigator: b.Z,\n                        Hint: g.Z\n                    },\n                    watch: {\n                        clashStatus: function(e) {\n                            e === D.Z.CONNECTED && this.fetchData()\n                        },\n                        filterKeyword: {\n                            handler: k().debounce((function(e) {\n                                C.Z.put(x.Z.PROXY_FILTER_KEYWORD, e), this.filterKeywordReg = e ? new RegExp(e, \"i\") : /.*/\n                            }), 500)\n                        },\n                        profileRefreshTimes: function() {\n                            this.fetchData()\n                        },\n                        proxyBlinkIndex: function() {\n                            var e = this;\n                            setTimeout((function() {\n                                e.proxyBlinkIndex = -1\n                            }), 300)\n                        },\n                        groupBlinkIndex: function() {\n                            var e = this;\n                            setTimeout((function() {\n                                e.groupBlinkIndex = -1\n                            }), 300)\n                        },\n                        hideTimeoutSecNames: function(e) {\n                            C.Z.put(x.Z.PROXY_HIDE_TIMEOUT_SEC_NAMES, e)\n                        }\n                    },\n                    computed: A(A(A({}, (0, p.mapState)({\n                        clashPath: function(e) {\n                            return e.app.clashPath\n                        },\n                        pfs: function(e) {\n                            return e.app.profiles\n                        },\n                        clashStatus: function(e) {\n                            return e.app.clashStatus\n                        },\n                        confData: function(e) {\n                            return e.app.confData\n                        },\n                        clashAxiosFlyingRequestCount: function(e) {\n                            return e.app.clashAxiosFlyingRequestCount\n                        },\n                        profileRefreshTimes: function(e) {\n                            return e.app.profileRefreshTimes\n                        },\n                        currentMode: function(e) {\n                            return e.app.mode\n                        },\n                        currentProfilePayload: function(e) {\n                            return e.app.currentProfilePayload\n                        }\n                    })), (0, p.mapGetters)([\"clashAxiosClient\"])), {}, {\n                        delayKeyName: function() {\n                            var e;\n                            return (null === (e = [\"delay\", \"meanDelay\"]) || void 0 === e ? void 0 : e[this.settings.proxyDelayType]) || \"delay\"\n                        },\n                        navigatorWidth: function() {\n                            return this.settings.proxyMiniListWidth\n                        },\n                        proxyItemWidth: function() {\n                            var e = this.settings.proxyItemWidth;\n                            return parseInt(e) >= 150 ? \"\".concat(e, \"px\") : \"290px\"\n                        },\n                        errorIndexes: function() {\n                            return this.proxyInMode.reduce((function(e, t, i) {\n                                var n = t.data;\n                                t.name;\n                                return null != n && n.now && !n.all.find((function(e) {\n                                    return e.name === n.now\n                                })).alive && e.push(i), e\n                            }), [])\n                        },\n                        proxyInMode: function() {\n                            var e = this.currentMode;\n                            if (\"global\" === e) return this.proxies.filter((function(e) {\n                                return \"GLOBAL\" === e.name\n                            }));\n                            if (\"direct\" === e) return [];\n                            var t = this.settings.hideUnselectableGroup,\n                                i = void 0 !== t && t ? [\"Selector\"] : [\"Selector\", \"Fallback\", \"URLTest\", \"LoadBalance\", \"Relay\"];\n                            return this.proxies.filter((function(e) {\n                                return \"GLOBAL\" !== e.name && i.includes(e.data.type)\n                            }))\n                        },\n                        isShowNavigator: function() {\n                            return 0 !== parseInt(this.settings.proxyMiniListWidth)\n                        }\n                    }),\n                    methods: A(A(A({}, (0, p.mapMutations)({\n                        changeProfile: \"CHANGE_PROFILE\"\n                    })), (0, p.mapActions)([\"getMode\", \"setMode\"])), {}, {\n                        debounceScroll: k().debounce((function() {\n                            this.isScrolling = !1\n                        }), 1e3),\n                        handleListScroll: function() {\n                            this.isScrolling = !0;\n                            var e = this.$refs[\"mixin-scroll-content\"],\n                                t = this.$refs.list;\n                            return this.topItemIndex = [].concat(l()(t), [{\n                                offsetTop: 1 / 0\n                            }]).findIndex((function(t) {\n                                return t.offsetTop - 120 > e.scrollTop\n                            })) - 1, this.topProxyIndex = l()(t[this.topItemIndex].querySelectorAll(\".proxy-item\")).findIndex((function(t) {\n                                return t.offsetTop - 100 > e.scrollTop\n                            })), this.debounceScroll()\n                        },\n                        handleProxyRightClick: function(e, t) {\n                            var i = this;\n                            return r()(u().mark((function n() {\n                                var o, s;\n                                return u().wrap((function(n) {\n                                    for (;;) switch (n.prev = n.next) {\n                                        case 0:\n                                            o = i.proxyInMode.map((function(e) {\n                                                return e.name\n                                            })).findIndex((function(e) {\n                                                return e === t\n                                            })), s = [{\n                                                text: Lg.showConnections(),\n                                                icon: \"list\",\n                                                click: function() {\n                                                    i.$router.replace({\n                                                        path: \"/home/connection\",\n                                                        query: {\n                                                            searchText: t\n                                                        }\n                                                    }).catch((function() {}))\n                                                }\n                                            }, {\n                                                text: Lg.runScript(),\n                                                icon: \"code\",\n                                                click: function() {\n                                                    var e = i.currentProfilePayload.proxies,\n                                                        n = (void 0 === e ? [] : e).find((function(e) {\n                                                            return e.name === t\n                                                        })) || {\n                                                            name: t\n                                                        };\n                                                    (0, L.TX)((0, N.EP)(n), L.ay)\n                                                }\n                                            }], o > -1 && s.unshift({\n                                                text: Lg.scrollGroup(),\n                                                icon: \"travel_explore\",\n                                                click: function() {\n                                                    i.handleNavigatToGroup(o)\n                                                }\n                                            }), i.$menu(s, e);\n                                        case 4:\n                                        case \"end\":\n                                            return n.stop()\n                                    }\n                                }), n)\n                            })))()\n                        },\n                        handleFilterIconClick: function() {\n                            var e = this;\n                            this.isShowFilter = !this.isShowFilter, this.isShowFilter || (this.filterKeyword = \"\"), this.$nextTick((function() {\n                                var t = e.$refs.filterKeyword;\n                                t && t.focus()\n                            }))\n                        },\n                        checkBtnText: function(e) {\n                            const Lg = new Language(modifyState.language);\n                            e.provider;\n                            var t = e.latency;\n                            return -1 === t ? \"-- ms\" : t || Lg.check()\n                        },\n                        handleSingleSpeedtest: function (e, t) {\n                            const Lg = new Language(modifyState.language);\n                            var i = this;\n                            return r()(u().mark((function n() {\n                                var o, s, r, a, c, d, h, g;\n                                return u().wrap((function(n) {\n                                    for (;;) switch (n.prev = n.next) {\n                                        case 0:\n                                            return o = e.name, s = t.name, r = t.provider, a = function(e) {\n                                                var t = i.proxyInMode.find((function(e) {\n                                                    return e.name === o\n                                                }));\n                                                if (t) {\n                                                    var n = t.data.all.find((function(e) {\n                                                        return e.name === s\n                                                    }));\n                                                    n && (n.latency = -1 === e ? -1 : e + (/\\d/.test(e) ? \" ms\" : Lg.timeout()))\n                                                }\n                                            }, i.cancelLatencyTest(), i.testingProxyNames = [].concat(l()(i.testingProxyNames), [s]), a(-1), c = \"\", n.prev = 7, d = i.settings, h = d.latencyTimeout, g = d.latencyUrl, n.next = 11, i.speedtest(s, h || 3e3, g || \"https://www.gstatic.com/generate_204\", r);\n                                        case 11:\n                                            c = n.sent, n.next = 16;\n                                            break;\n                                        case 14:\n                                            n.prev = 14, n.t0 = n.catch(7);\n                                        case 16:\n                                            i.testingProxyNames = i.testingProxyNames.filter((function(e) {\n                                                return e !== s\n                                            })), a(c);\n                                        case 18:\n                                        case \"end\":\n                                            return n.stop()\n                                    }\n                                }), n, null, [\n                                    [7, 14]\n                                ])\n                            })))()\n                        },\n                        proxyItemsBeforeAnimate: function(e) {\n                            e.style.opacity = 0\n                        },\n                        animateDone: function(e) {},\n                        proxyItemsShowAnimate: function(e, t) {\n                            E()(e, {\n                                opacity: 1\n                            }, {\n                                duration: 150,\n                                easing: \"ease-in\",\n                                complete: t\n                            })\n                        },\n                        proxyItemsHideAnimate: function(e, t) {\n                            E()(e, {\n                                opacity: 0,\n                                height: 0\n                            }, {\n                                complete: t,\n                                easing: \"ease-out\",\n                                duration: 100\n                            })\n                        },\n                        saveShowSecIdxs: function() {\n                            C.Z.put(x.Z.PROXY_SHOW_SEC_IDXS, this.showSecIdxs)\n                        },\n                        handleNavigatToGroup: function(e) {\n                            this.showSecIdxs.includes(e) || this.showSecIdxs.push(e), this.groupBlinkIndex = e;\n                            var t = this.$refs[\"mixin-scroll-content\"],\n                                i = this.$refs.list;\n                            this.$nextTick((function() {\n                                t.scrollTop = i[e].offsetTop - 120\n                            }))\n                        },\n                        scrollToSelected: function(e) {\n                            this.proxyBlinkIndex = e;\n                            var t = this.$refs[\"selected\".concat(e)][0],\n                                i = this.$refs[\"mixin-scroll-content\"],\n                                n = t.offsetTop - 160;\n                            (n < i.scrollTop || n > i.scrollTop + i.clientHeight - 200) && this.$nextTick((function() {\n                                i.scrollTop = t.offsetTop - 160\n                            }))\n                        },\n                        switchHideTimeout: function(e) {\n                            var t = this;\n                            return r()(u().mark((function i() {\n                                return u().wrap((function(i) {\n                                    for (;;) switch (i.prev = i.next) {\n                                        case 0:\n                                            t.hideTimeoutSecNames.includes(e) ? t.hideTimeoutSecNames = t.hideTimeoutSecNames.filter((function(t) {\n                                                return t !== e\n                                            })) : t.hideTimeoutSecNames.push(e);\n                                        case 1:\n                                        case \"end\":\n                                            return i.stop()\n                                    }\n                                }), i)\n                            })))()\n                        },\n                        switchVisiable: function(e) {\n                            var t = this;\n                            return r()(u().mark((function i() {\n                                var n, o, s, r, a, l;\n                                return u().wrap((function(i) {\n                                    for (;;) switch (i.prev = i.next) {\n                                        case 0:\n                                            o = t.$refs.list, s = t.$refs[\"mixin-scroll-content\"], r = null === (n = o[e]) || void 0 === n ? void 0 : n.childNodes[0], a = null == r ? void 0 : r.childNodes[0], l = null == r ? void 0 : r.childNodes[2], t.showSecIdxs.includes(e) ? (t.showSecIdxs = t.showSecIdxs.filter((function(t) {\n                                                return t !== e\n                                            })), t.$nextTick((function() {\n                                                a.offsetTop > l.offsetTop && (s.scrollTop = r.offsetTop - 112)\n                                            }))) : t.showSecIdxs.push(e), t.saveShowSecIdxs();\n                                        case 7:\n                                        case \"end\":\n                                            return i.stop()\n                                    }\n                                }), i)\n                            })))()\n                        },\n                        nodeHint: function(e) {\n                            var t = this.proxies.find((function(t) {\n                                return t.name === e.name\n                            }));\n                            if (!t) return \"\";\n                            var i = t.data.type;\n                            return \"Selector\" === i || \"Fallback\" === i || \"URLTest\" === i ? \"\".concat(i, \" - \").concat(t.data.now) : \"LoadBalance\" === i ? \"\".concat(i, \" - \").concat(t.data.all.length, \" server\").concat(t.data.all.length > 1 ? \"s\" : \"\") : i\n                        },\n                        cancelLatencyTest: function() {\n                            this.axiosCancelTokens.length > 0 && (this.axiosCancelTokens.forEach((function(e) {\n                                e()\n                            })), this.axiosCancelTokens = [])\n                        },\n                        switchProxy: function(e, t) {\n                            var i = arguments,\n                                n = this;\n                            return r()(u().mark((function o() {\n                                var s;\n                                return u().wrap((function(o) {\n                                    for (;;) switch (o.prev = o.next) {\n                                        case 0:\n                                            if (!(i.length > 2 && void 0 !== i[2] && i[2])) {\n                                                o.next = 3;\n                                                break\n                                            }\n                                            return o.abrupt(\"return\");\n                                        case 3:\n                                            return n.cancelLatencyTest(), o.next = 6, n.clashAxiosClient.put(\"/proxies/\".concat(encodeURIComponent(e)), {\n                                                name: t\n                                            });\n                                        case 6:\n                                            204 === o.sent.status && ((s = l()(n.proxies)).find((function(t) {\n                                                return t.name === e\n                                            })).data.now = t, n.proxies = s.length > 500 ? Object.freeze(s) : s, n.$parent.persistSelectedProxy(), n.$parent.breakConnections(e));\n                                        case 8:\n                                        case \"end\":\n                                            return o.stop()\n                                    }\n                                }), o)\n                            })))()\n                        },\n                        startLatencyTest: function(e, t) {\n                            var i = this;\n                            const Lg = new Language(modifyState.language);\n                            return r()(u().mark((function n() {\n                                var o, s, a, c, d, h;\n                                return u().wrap((function(n) {\n                                    for (;;) switch (n.prev = n.next) {\n                                        case 0:\n                                            i.cancelLatencyTest(), i.showSecIdxs.find((function(e) {\n                                                return e === t\n                                            })) || i.showSecIdxs.push(t), o = i.proxies.find((function(t) {\n                                                return t.name === e\n                                            })), s = i.settings, a = s.latencyTimeout, c = s.latencyUrl, d = o.data.all, (h = t === i.topItemIndex ? [].concat(l()(d.slice(i.topProxyIndex)), l()(d.slice(0, i.topProxyIndex).reverse())) : d).forEach((function(e) {\n                                                e.latency = -1\n                                            })), h.forEach(function() {\n                                                var e = r()(u().mark((function e(t, n) {\n                                                    var o;\n                                                    return u().wrap((function(e) {\n                                                        for (;;) switch (e.prev = e.next) {\n                                                            case 0:\n                                                                return e.prev = 0, e.next = 3, i.speedtest(t.name, a || 3e3, c || \"https://www.gstatic.com/generate_204\", t.provider);\n                                                            case 3:\n                                                                o = e.sent, t.latency = o > 0 ? o + \" ms\" : Lg.timeout(), e.next = 10;\n                                                                break;\n                                                            case 7:\n                                                                e.prev = 7, e.t0 = e.catch(0), t.latency = Lg.timeout();\n                                                            case 10:\n                                                            case \"end\":\n                                                                return e.stop()\n                                                        }\n                                                    }), e, null, [\n                                                        [0, 7]\n                                                    ])\n                                                })));\n                                                return function(t, i) {\n                                                    return e.apply(this, arguments)\n                                                }\n                                            }());\n                                        case 8:\n                                        case \"end\":\n                                            return n.stop()\n                                    }\n                                }), n)\n                            })))()\n                        },\n                        speedtest: function(e) {\n                            var t = arguments,\n                                i = this;\n                            return r()(u().mark((function n() {\n                                var o, s, r, a, l, c, d, h;\n                                return u().wrap((function(n) {\n                                    for (;;) switch (n.prev = n.next) {\n                                        case 0:\n                                            return o = t.length > 1 && void 0 !== t[1] ? t[1] : 1e3, s = t.length > 2 && void 0 !== t[2] ? t[2] : \"https://www.gstatic.com/generate_204\", r = t.length > 3 ? t[3] : void 0, a = encodeURIComponent(e), l = r ? \"/providers/proxies/\".concat(encodeURIComponent(r.name), \"/\").concat(a, \"/healthcheck\") : \"/proxies/\".concat(a, \"/delay\"), n.next = 7, i.clashAxiosClient(l, {\n                                                params: {\n                                                    timeout: o,\n                                                    url: s\n                                                },\n                                                cancelToken: new O((function(e) {\n                                                    i.axiosCancelTokens.push(e)\n                                                })),\n                                                timeout: 0\n                                            });\n                                        case 7:\n                                            if (c = n.sent, !(d = c.data)) {\n                                                n.next = 12;\n                                                break\n                                            }\n                                            return h = d[i.delayKeyName], n.abrupt(\"return\", h || 0);\n                                        case 12:\n                                            return n.abrupt(\"return\", 0);\n                                        case 13:\n                                        case \"end\":\n                                            return n.stop()\n                                    }\n                                }), n)\n                            })))()\n                        },\n                        handleModeSwitch: function(e) {\n                            var t = this;\n                            return r()(u().mark((function i() {\n                                return u().wrap((function(i) {\n                                    for (;;) switch (i.prev = i.next) {\n                                        case 0:\n                                            return i.prev = 0, i.next = 3, t.setMode({\n                                                mode: e\n                                            });\n                                        case 3:\n                                            i.next = 7;\n                                            break;\n                                        case 5:\n                                            i.prev = 5, i.t0 = i.catch(0);\n                                        case 7:\n                                        case \"end\":\n                                            return i.stop()\n                                    }\n                                }), i, null, [\n                                    [0, 5]\n                                ])\n                            })))()\n                        },\n                        findProvider: function(e, t) {\n                            for (var i in e) {\n                                var n = e[i],\n                                    o = n.proxies,\n                                    s = (void 0 === o ? [] : o).find((function(e) {\n                                        return e.name === t\n                                    }));\n                                if (s) return [n, s]\n                            }\n                            return [null, {}]\n                        },\n                        fetchData: function() {\n                            var e = this;\n                            const Lg = new Language(modifyState.language);\n                            return r()(u().mark((function t() {\n                                var i, n, s, r, a, l, c, d, h, g, p;\n                                return u().wrap((function(t) {\n                                    for (;;) switch (t.prev = t.next) {\n                                        case 0:\n                                            if (i = Number.MAX_SAFE_INTEGER, e.clashAxiosClient) {\n                                                t.next = 3;\n                                                break\n                                            }\n                                            return t.abrupt(\"return\");\n                                        case 3:\n                                            return t.next = 5, Promise.all([e.clashAxiosClient.get(\"/proxies\"), e.clashAxiosClient.get(\"/providers/proxies\", {\n                                                validateStatus: function(e) {\n                                                    return !0\n                                                }\n                                            })]);\n                                        case 5:\n                                            n = t.sent, s = o()(n, 2), r = s[0], a = s[1], l = a.data, c = (void 0 === l ? {} : l).providers, d = void 0 === c ? {} : c, h = r.data.proxies, g = h.GLOBAL.all, e.viewData = h, p = Object.keys(h).map((function(t) {\n                                                return h[t].hasOwnProperty(\"all\") || (h[t].all = [h[t].now]), h[t].all = h[t].all.map((function(t) {\n                                                    var n = null,\n                                                        s = h[t];\n                                                    if (void 0 === s) {\n                                                        var r = e.findProvider(d, t),\n                                                            a = o()(r, 2),\n                                                            l = a[0],\n                                                            c = a[1],\n                                                            u = 0,\n                                                            g = c.history,\n                                                            p = void 0 === g ? [] : g,\n                                                            f = c.udp,\n                                                            m = void 0 !== f && f,\n                                                            v = c.alive;\n                                                        return {\n                                                            name: t,\n                                                            provider: l,\n                                                            latency: n = p.length > 0 ? 0 === (u = p[p.length - 1][e.delayKeyName]) ? Lg.timeout() : \"\".concat(u, \" ms\") : \"\",\n                                                            delay: u || i,\n                                                            udp: m,\n                                                            alive: void 0 === v || v\n                                                        }\n                                                    }\n                                                    var _ = 0;\n                                                    return s && s.history.length > 0 && (n = 0 === (_ = s.history[s.history.length - 1][e.delayKeyName]) ? Lg.timeout() : \"\".concat(_, \" ms\")), e.testingProxyNames.includes(t) && (n = -1), {\n                                                        name: t,\n                                                        provider: null,\n                                                        latency: n,\n                                                        delay: _ || i,\n                                                        udp: (null == s ? void 0 : s.udp) || !1,\n                                                        alive: void 0 === (null == s ? void 0 : s.alive) || (null == s ? void 0 : s.alive)\n                                                    }\n                                                })).sort((function(n, o) {\n                                                    var s = e.settings.proxyOrder,\n                                                        r = void 0 === s ? 0 : s;\n                                                    if (1 === r && \"Fallback\" !== h[t].type) {\n                                                        var a = n.delay,\n                                                            l = void 0 === a ? i : a,\n                                                            c = o.delay;\n                                                        return l - (void 0 === c ? i : c)\n                                                    }\n                                                    if (2 === r) {\n                                                        var d = n.name,\n                                                            u = o.name;\n                                                        return d.localeCompare(u)\n                                                    }\n                                                    return !0\n                                                })), {\n                                                    name: t,\n                                                    data: h[t]\n                                                }\n                                            })).sort((function(e, t) {\n                                                return g.indexOf(e.name) - g.indexOf(t.name)\n                                            })), e.proxies = p.length > 500 ? Object.freeze(p) : p;\n                                        case 16:\n                                        case \"end\":\n                                            return t.stop()\n                                    }\n                                }), t)\n                            })))()\n                        }\n                    }),\n                    beforeRouteEnter: function(e, t, i) {\n                        var n;\n                        i((n = r()(u().mark((function e(t) {\n                            return u().wrap((function(e) {\n                                for (;;) switch (e.prev = e.next) {\n                                    case 0:\n                                        return t.getMode(), t.showSecIdxs = C.Z.get(x.Z.PROXY_SHOW_SEC_IDXS) || [], t.hideTimeoutSecNames = C.Z.get(x.Z.PROXY_HIDE_TIMEOUT_SEC_NAMES) || [], t.filterKeyword = C.Z.get(x.Z.PROXY_FILTER_KEYWORD) || \"\", t.isShowFilter = \"\" !== t.filterKeyword, t.intervalID = T.ZP.add(r()(u().mark((function e() {\n                                            return u().wrap((function(e) {\n                                                for (;;) switch (e.prev = e.next) {\n                                                    case 0:\n                                                        if (t.isScrolling || !(t.clashAxiosFlyingRequestCount < 5)) {\n                                                            e.next = 3;\n                                                            break\n                                                        }\n                                                        return e.next = 3, Promise.allSettled([t.getMode(), t.fetchData()]).catch((function(e) {}));\n                                                    case 3:\n                                                    case \"end\":\n                                                        return e.stop()\n                                                }\n                                            }), e)\n                                        }))), 5e3), e.next = 8, t.fetchData().catch((function(e) {}));\n                                    case 8:\n                                    case \"end\":\n                                        return e.stop()\n                                }\n                            }), e)\n                        }))), function(e) {\n                            return n.apply(this, arguments)\n                        }))\n                    },\n                    beforeRouteLeave: function(e, t, i) {\n                        this.intervalID && T.ZP.stop(this.intervalID), this.cancelLatencyTest(), i()\n                    }\n                };\n                i(24860), i(53614);\n                const R = (0, v.Z)(P, (function() {\n                    var e = this,\n                        t = e._self._c;\n                    const Lg = new Language(modifyState.language);\n                    return t(\"div\", {\n                        attrs: {\n                            id: \"main-proxy-view\"\n                        }\n                    }, [t(\"proxy-mode-switcher\", {\n                        attrs: {\n                            mode: e.currentMode\n                        },\n                        on: {\n                            switch: e.handleModeSwitch\n                        }\n                    }), e._v(\" \"), t(\"div\", {\n                        ref: \"mixin-scroll-content\",\n                        staticClass: \"scroll-view\",\n                        on: {\n                            scroll: function(t) {\n                                return e.handleListScroll()\n                            }\n                        }\n                    }, [e._l(e.proxyInMode, (function(i, n) {\n                        return t(\"div\", {\n                            key: i.name,\n                            ref: \"list\",\n                            refInFor: !0\n                        }, [t(\"div\", {\n                            staticClass: \"proxy-list\"\n                        }, [t(\"div\", {\n                            class: [\"proxy-section\", e.groupBlinkIndex === n ? \"flick\" : \"\"],\n                            on: {\n                                click: function(t) {\n                                    return e.switchVisiable(n)\n                                }\n                            }\n                        }, [t(\"div\", {\n                            staticClass: \"proxy-section-name\"\n                        }, [t(\"div\", {\n                            staticClass: \"proxy-section-name-left\"\n                        }, [e._v(e._s(i.name))]), e._v(\" \"), t(\"div\", {\n                            staticClass: \"proxy-hint-type\",\n                            class: [\"Selector\" === i.data.type ? \"proxy-hint-type-selector\" : \"\"]\n                        }, [e._v(\"\\n              \" + e._s(i.data.type[0]) + \"\\n            \")]), e._v(\" \"), i.data.now ? t(\"div\", {\n                            staticClass: \"proxy-hint-line\"\n                        }) : e._e(), e._v(\" \"), i.data.now ? t(\"div\", {\n                            staticClass: \"proxy-hint\"\n                        }, [e._v(\"\\n              \" + e._s(i.data.now) + \"\\n            \")]) : e._e()]), e._v(\" \"), t(\"div\", {\n                            staticClass: \"proxy-section-right\"\n                        }, [e.showSecIdxs.includes(n) ? t(\"Hint\", {\n                            staticClass: \"sec-icon clickable\",\n                            attrs: {\n                                hint: Lg.scrollToProxy(),\n                                position: \"top\"\n                            },\n                            on: {\n                                click: function(t) {\n                                    return t.stopPropagation(), e.scrollToSelected(n)\n                                }\n                            }\n                        }, [t(\"span\", {\n                            staticClass: \"icon\"\n                        }, [e._v(\"travel_explore\")])]) : e._e(), e._v(\" \"), t(\"Hint\", {\n                            staticClass: \"sec-icon clickable\",\n                            attrs: {\n                                hint: Lg.showHieTimedOutProxies(),\n                                position: \"top\"\n                            },\n                            on: {\n                                click: function(t) {\n                                    return t.stopPropagation(), e.switchHideTimeout(i.name)\n                                }\n                            }\n                        }, [t(\"span\", {\n                            staticClass: \"icon\"\n                        }, [e._v(\"report\" + e._s(e.hideTimeoutSecNames.includes(i.name) ? \"_off\" : \"\"))])]), e._v(\" \"), t(\"Hint\", {\n                            staticClass: \"sec-icon clickable\",\n                            attrs: {\n                                hint: Lg.testLatency(),\n                                position: \"top\"\n                            },\n                            on: {\n                                click: function(t) {\n                                    return t.stopPropagation(), e.startLatencyTest(i.name, n)\n                                }\n                            }\n                        }, [t(\"span\", {\n                            staticClass: \"icon\"\n                        }, [e._v(\"network_check\")])]), e._v(\" \"), [\"rule\", \"script\"].includes(e.currentMode) ? t(\"Hint\", {\n                            staticClass: \"sec-icon clickable\",\n                            attrs: {\n                                hint: \"Show/hide proxies\",\n                                position: \"left\"\n                            },\n                            on: {\n                                click: function(t) {\n                                    return t.stopPropagation(), e.switchVisiable(n)\n                                }\n                            }\n                        }, [t(\"span\", {\n                            staticClass: \"icon\"\n                        }, [e._v(\"visibility\" + e._s(e.showSecIdxs.includes(n) ? \"\" : \"_off\"))])]) : e._e()], 1)]), e._v(\" \"), t(\"transition\", {\n                            attrs: {\n                                name: \"fall-fade\"\n                            }\n                        }, [![\"rule\", \"script\"].includes(e.currentMode) || e.showSecIdxs.includes(n) ? t(\"div\", {\n                            staticClass: \"proxy-items\"\n                        }, [e._l(i.data.all, (function(o, s) {\n                            return t(\"div\", {\n                                directives: [{\n                                    name: \"show\",\n                                    rawName: \"v-show\",\n                                    value: (!e.hideTimeoutSecNames.includes(i.name) || Lg.timeout() !== o.latency) && e.filterKeywordReg.test(o.name),\n                                    expression: \"\\n                (!hideTimeoutSecNames.includes(proxy.name) ||\\n                  node.latency !== 'Timeout') &&\\n                filterKeywordReg.test(node.name)\\n              \"\n                                }],\n                                key: o.name + i.name + s,\n                                ref: o.name === i.data.now ? \"selected\".concat(n) : \"\",\n                                refInFor: !0,\n                                staticClass: \"proxy-item\",\n                                class: {\n                                    selected: o.name === i.data.now, clickable: \"Selector\" === i.data.type, flick: o.name === i.data.now && n === e.proxyBlinkIndex\n                                },\n                                style: [{\n                                    width: e.proxyItemWidth\n                                }],\n                                on: {\n                                    click: function(t) {\n                                        return e.switchProxy(i.name, o.name, \"Selector\" !== i.data.type)\n                                    },\n                                    contextmenu: function(t) {\n                                        return e.handleProxyRightClick(t, o.name)\n                                    }\n                                }\n                            }, [t(\"div\", {\n                                staticClass: \"indicator\"\n                            }), e._v(\" \"), t(\"div\", {\n                                staticClass: \"info\"\n                            }, [t(\"div\", {\n                                staticClass: \"left\"\n                            }, [t(\"div\", {\n                                staticClass: \"item-name\",\n                                class: {\n                                    offline: !o.alive\n                                }\n                            }, [e._v(\"\\n                    \" + e._s(o.name) + \"\\n                  \")]), e._v(\" \"), t(\"div\", {\n                                staticClass: \"item-bottom\"\n                            }, [t(\"div\", {\n                                staticClass: \"item-hint\"\n                            }, [e._v(\"\\n                      \" + e._s(o.provider ? \"Provider: \".concat(o.provider.name) : e.nodeHint(o)) + \"\\n                    \")]), e._v(\" \"), o.udp ? t(\"div\", {\n                                staticClass: \"item-udp\"\n                            }, [e._v(\"UDP\")]) : e._e()])]), e._v(\" \"), -1 === o.latency ? t(\"div\", {\n                                staticClass: \"time\"\n                            }, [e._v(\"- ms\")]) : t(\"div\", {\n                                class: {\n                                    offline: Lg.timeout() === o.latency, online: ![Lg.timeout(), -1, null, void 0, \"\"].includes(o.latency), time: !0\n                                },\n                                on: {\n                                    click: [function(t) {\n                                        return e.handleSingleSpeedtest(i, o)\n                                    }, function(e) {\n                                        e.stopPropagation()\n                                    }]\n                                }\n                            }, [e._v(\"\\n                  \" + e._s(e.checkBtnText(o)) + \"\\n                \")])])])\n                        })), e._v(\" \"), e._l(new Array(20), (function(i, n) {\n                            return t(\"i\", {\n                                key: n,\n                                style: {\n                                    width: e.proxyItemWidth\n                                }\n                            })\n                        }))], 2) : e._e()])], 1)])\n                    })), e._v(\" \"), e.isShowNavigator ? t(\"navigator\", {\n                        attrs: {\n                            list: e.proxyInMode.map((function(e) {\n                                return e.name\n                            })),\n                            \"error-indexes\": e.errorIndexes,\n                            index: e.topItemIndex,\n                            width: e.navigatorWidth\n                        },\n                        on: {\n                            select: e.handleNavigatToGroup\n                        }\n                    }) : e._e(), e._v(\" \"), null === e.proxyInMode && \"direct\" !== this.currentMode ? t(\"div\", [t(\"div\", {\n                        staticClass: \"fake-section\"\n                    }), e._v(\" \"), t(\"div\", {\n                        staticClass: \"proxy-items proxy-list\"\n                    }, e._l(new Array(12), (function(e, i) {\n                        return t(\"div\", {\n                            key: i,\n                            staticClass: \"fake-item\"\n                        }, [t(\"div\")])\n                    })), 0)]) : e._e(), e._v(\" \"), 0 === e.proxyInMode.length && \"direct\" !== this.currentMode ? t(\"div\", {\n                        staticClass: \"empty-hint\"\n                    }, [t(\"div\", [e._v(Lg.noProxyGroupInProfile())]), e._v(\" \"), t(\"div\", [e._v(\"\\n        \" + Lg.profileDescribeStart() + \"\\n        \"), t(\"span\", {\n                        on: {\n                            click: function(t) {\n                                return e.$router.replace({\n                                    path: \"/home/server\"\n                                })\n                            }\n                        }\n                    }, [e._v(Lg.profiles())]), e._v(\"\\n        \" + Lg.profileDescribeEnd() + \"\\n      \")])]) : e._e(), e._v(\" \"), \"direct\" === this.currentMode ? t(\"div\", {\n                        staticClass: \"empty-hint text-lg\"\n                    }, [e._v(\"\\n      \" + Lg.allTrafficGoDirectly() + \"\\n    \")]) : e._e()], 2), e._v(\" \"), e.settings.showProxyFilter ? t(\"div\", {\n                        staticClass: \"filter-keyword\"\n                    }, [t(\"transition\", {\n                        attrs: {\n                            name: \"move-right\"\n                        }\n                    }, [e.isShowFilter ? t(\"input\", {\n                        directives: [{\n                            name: \"model\",\n                            rawName: \"v-model\",\n                            value: e.filterKeyword,\n                            expression: \"filterKeyword\"\n                        }],\n                        ref: \"filterKeyword\",\n                        attrs: {\n                            spellcheck: \"false\",\n                            type: \"text\"\n                        },\n                        domProps: {\n                            value: e.filterKeyword\n                        },\n                        on: {\n                            input: function(t) {\n                                t.target.composing || (e.filterKeyword = t.target.value)\n                            }\n                        }\n                    }) : e._e()]), e._v(\" \"), t(\"div\", {\n                        on: {\n                            click: e.handleFilterIconClick\n                        }\n                    }, [e.isShowFilter ? t(\"span\", {\n                        staticClass: \"icon text-white\"\n                    }, [e._v(\"close\")]) : t(\"span\", {\n                        staticClass: \"icon text-white\"\n                    }, [e._v(\"filter_list\")])])], 1) : e._e()], 1)\n                }), [], !1, null, \"0729f95b\", null).exports\n            },\n            28779: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    Z: () => L\n                });\n                var n = i(48926),\n                    o = i.n(n),\n                    s = i(319),\n                    r = i.n(s),\n                    a = i(59713),\n                    l = i.n(a),\n                    c = i(87757),\n                    d = i.n(c),\n                    h = i(72298),\n                    u = i(23321),\n                    g = i(24883);\n                const p = require(\"dhcp\");\n                var f = i.n(p),\n                    m = i(59273),\n                    v = i(81518),\n                    _ = i(63038),\n                    b = i.n(_),\n                    w = i(97520);\n                const y = {\n                    name: \"RouterConfigView\",\n                    data: function() {\n                        return {\n                            interfaces: [],\n                            selectedName: \"\",\n                            localAddress: \"\",\n                            rangeFrom: \"\",\n                            rangeTo: \"\",\n                            netmask: \"255.255.255.0\",\n                            defaultRouter: \"\",\n                            primaryDns: \"8.8.8.8\",\n                            secondlyDns: \"1.1.1.1\",\n                            broadAddress: \"\"\n                        }\n                    },\n                    computed: {\n                        selectedInterface: function() {\n                            var e = this;\n                            return this.interfaces.find((function(t) {\n                                return t.name === e.selectedName\n                            }))\n                        }\n                    },\n                    watch: {\n                        selectedInterface: function(e) {\n                            var t = e.address;\n                            this.localAddress = t, this.computeFromLocalAddress(t)\n                        }\n                    },\n                    methods: {\n                        computeFromLocalAddress: function(e) {\n                            var t = e.split(\".\");\n                            4 === t.length && (this.rangeFrom = [].concat(r()(t.slice(0, 3)), [\"100\"]).join(\".\"), this.rangeTo = [].concat(r()(t.slice(0, 3)), [\"200\"]).join(\".\"), this.defaultRouter = [].concat(r()(t.slice(0, 3)), [\"1\"]).join(\".\"), this.broadAddress = [].concat(r()(t.slice(0, 3)), [\"255\"]).join(\".\"))\n                        },\n                        handleInterfaceSelect: function() {\n                            var e = this;\n                            return o()(d().mark((function t() {\n                                var i, n, o, s;\n                                return d().wrap((function(t) {\n                                    for (;;) switch (t.prev = t.next) {\n                                        case 0:\n                                            return i = e.interfaces.map((function(e) {\n                                                return e.name\n                                            })), t.next = 3, e.$select({\n                                                title: Lg.selectInterface(),\n                                                message: \"\",\n                                                items: i\n                                            });\n                                        case 3:\n                                            n = t.sent, o = b()(n, 1), s = o[0], e.selectedName = i[s];\n                                        case 7:\n                                        case \"end\":\n                                            return t.stop()\n                                    }\n                                }), t)\n                            })))()\n                        },\n                        handleContinueClick: function() {\n                            this.$emit(\"confirm\", {\n                                localAddress: this.localAddress,\n                                rangeFrom: this.rangeFrom,\n                                rangeTo: this.rangeTo,\n                                netmask: this.netmask,\n                                defaultRouter: this.defaultRouter,\n                                primaryDns: this.primaryDns,\n                                secondlyDns: this.secondlyDns,\n                                broadAddress: this.broadAddress\n                            })\n                        }\n                    },\n                    mounted: function() {\n                        this.interfaces = (0, w.r)() || [], this.interfaces.length > 0 && (this.selectedName = this.interfaces[0].name)\n                    }\n                };\n                i(91781);\n                var C = i(51900);\n\n                function x(e, t) {\n                    var i = Object.keys(e);\n                    if (Object.getOwnPropertySymbols) {\n                        var n = Object.getOwnPropertySymbols(e);\n                        t && (n = n.filter((function(t) {\n                            return Object.getOwnPropertyDescriptor(e, t).enumerable\n                        }))), i.push.apply(i, n)\n                    }\n                    return i\n                }\n\n                function S(e) {\n                    for (var t = 1; t < arguments.length; t++) {\n                        var i = null != arguments[t] ? arguments[t] : {};\n                        t % 2 ? x(Object(i), !0).forEach((function(t) {\n                            l()(e, t, i[t])\n                        })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(i)) : x(Object(i)).forEach((function(t) {\n                            Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(i, t))\n                        }))\n                    }\n                    return e\n                }\n                const Lg = new Language(modifyState.language);\n                const k = {\n                    name: \"RouterView\",\n                    components: {\n                        ConfigView: (0, C.Z)(y, (function() {\n                            var e = this,\n                                t = e._self._c;\n                            return t(\"div\", {\n                                staticClass: \"main-router-config-view bg-[color:var(--mask-c)]\",\n                                on: {\n                                    click: function(t) {\n                                        return e.$emit(\"close\")\n                                    }\n                                }\n                            }, [t(\"div\", {\n                                staticClass: \"content bg-[color:var(--bgc)] text-[color:var(--fgc)]\",\n                                on: {\n                                    click: function(e) {\n                                        e.stopPropagation()\n                                    }\n                                }\n                            }, [t(\"div\", {\n                                staticClass: \"title\"\n                            }, [e._v(Lg.profiles())]), e._v(\" \"), t(\"div\", {\n                                staticClass: \"sec\"\n                            }, [t(\"span\", [e._v(\"Interface\")]), e._v(\" \"), t(\"input\", {\n                                staticClass: \"clickable\",\n                                attrs: {\n                                    readonly: \"\"\n                                },\n                                domProps: {\n                                    value: e.selectedName\n                                },\n                                on: {\n                                    click: e.handleInterfaceSelect\n                                }\n                            })]), e._v(\" \"), t(\"div\", {\n                                staticClass: \"sec\"\n                            }, [t(\"span\", [e._v(Lg.localIpAddress())]), e._v(\" \"), t(\"input\", {\n                                directives: [{\n                                    name: \"model\",\n                                    rawName: \"v-model\",\n                                    value: e.localAddress,\n                                    expression: \"localAddress\"\n                                }],\n                                attrs: {\n                                    type: \"text\"\n                                },\n                                domProps: {\n                                    value: e.localAddress\n                                },\n                                on: {\n                                    input: function(t) {\n                                        t.target.composing || (e.localAddress = t.target.value)\n                                    }\n                                }\n                            })]), e._v(\" \"), t(\"div\", {\n                                staticClass: \"sec\"\n                            }, [t(\"span\", [e._v(\"DHCP IP Range\")]), e._v(\" \"), t(\"div\", {\n                                staticClass: \"flex\"\n                            }, [t(\"div\", [t(\"span\", [e._v(\"From\")]), e._v(\" \"), t(\"input\", {\n                                directives: [{\n                                    name: \"model\",\n                                    rawName: \"v-model\",\n                                    value: e.rangeFrom,\n                                    expression: \"rangeFrom\"\n                                }],\n                                attrs: {\n                                    type: \"text\"\n                                },\n                                domProps: {\n                                    value: e.rangeFrom\n                                },\n                                on: {\n                                    input: function(t) {\n                                        t.target.composing || (e.rangeFrom = t.target.value)\n                                    }\n                                }\n                            })]), e._v(\" \"), t(\"div\", [t(\"span\", [e._v(\"To\")]), e._v(\" \"), t(\"input\", {\n                                directives: [{\n                                    name: \"model\",\n                                    rawName: \"v-model\",\n                                    value: e.rangeTo,\n                                    expression: \"rangeTo\"\n                                }],\n                                attrs: {\n                                    type: \"text\"\n                                },\n                                domProps: {\n                                    value: e.rangeTo\n                                },\n                                on: {\n                                    input: function(t) {\n                                        t.target.composing || (e.rangeTo = t.target.value)\n                                    }\n                                }\n                            })])])]), e._v(\" \"), t(\"div\", {\n                                staticClass: \"sec\"\n                            }, [t(\"span\", [e._v(\"Netmask\")]), e._v(\" \"), t(\"input\", {\n                                directives: [{\n                                    name: \"model\",\n                                    rawName: \"v-model\",\n                                    value: e.netmask,\n                                    expression: \"netmask\"\n                                }],\n                                attrs: {\n                                    type: \"text\"\n                                },\n                                domProps: {\n                                    value: e.netmask\n                                },\n                                on: {\n                                    input: function(t) {\n                                        t.target.composing || (e.netmask = t.target.value)\n                                    }\n                                }\n                            })]), e._v(\" \"), t(\"div\", {\n                                staticClass: \"sec\"\n                            }, [t(\"span\", [e._v(\"Default Router\")]), e._v(\" \"), t(\"input\", {\n                                directives: [{\n                                    name: \"model\",\n                                    rawName: \"v-model\",\n                                    value: e.defaultRouter,\n                                    expression: \"defaultRouter\"\n                                }],\n                                attrs: {\n                                    type: \"text\"\n                                },\n                                domProps: {\n                                    value: e.defaultRouter\n                                },\n                                on: {\n                                    input: function(t) {\n                                        t.target.composing || (e.defaultRouter = t.target.value)\n                                    }\n                                }\n                            })]), e._v(\" \"), t(\"div\", {\n                                staticClass: \"sec\"\n                            }, [t(\"span\", [e._v(Lg.serversDNS())]), e._v(\" \"), t(\"div\", {\n                                staticClass: \"flex\"\n                            }, [t(\"div\", [t(\"span\", [e._v(\"Primary\")]), e._v(\" \"), t(\"input\", {\n                                directives: [{\n                                    name: \"model\",\n                                    rawName: \"v-model\",\n                                    value: e.primaryDns,\n                                    expression: \"primaryDns\"\n                                }],\n                                attrs: {\n                                    type: \"text\"\n                                },\n                                domProps: {\n                                    value: e.primaryDns\n                                },\n                                on: {\n                                    input: function(t) {\n                                        t.target.composing || (e.primaryDns = t.target.value)\n                                    }\n                                }\n                            })]), e._v(\" \"), t(\"div\", [t(\"span\", [e._v(\"Alternative\")]), e._v(\" \"), t(\"input\", {\n                                directives: [{\n                                    name: \"model\",\n                                    rawName: \"v-model\",\n                                    value: e.secondlyDns,\n                                    expression: \"secondlyDns\"\n                                }],\n                                attrs: {\n                                    type: \"text\"\n                                },\n                                domProps: {\n                                    value: e.secondlyDns\n                                },\n                                on: {\n                                    input: function(t) {\n                                        t.target.composing || (e.secondlyDns = t.target.value)\n                                    }\n                                }\n                            })])])]), e._v(\" \"), t(\"div\", {\n                                staticClass: \"btn clickable\",\n                                on: {\n                                    click: e.handleContinueClick\n                                }\n                            }, [e._v(\"Continue\")])])])\n                        }), [], !1, null, \"0ffa25f2\", null).exports\n                    },\n                    data: function() {\n                        return {\n                            server: null,\n                            clients: [],\n                            boundState: {},\n                            isShowConfigView: !1,\n                            powersaveBlockerID: 0,\n                            clientAlias: g.Z.get(v.Z.DHCP_MAC_ALIAS) || {}\n                        }\n                    },\n                    computed: S(S({}, (0, u.mapState)({\n                        routerHijackMacAddresses: function(e) {\n                            return e.app.routerHijackMacAddresses\n                        },\n                        currentProfilePayload: function(e) {\n                            return e.app.currentProfilePayload\n                        }\n                    })), {}, {\n                        serverRunning: function() {\n                            return null !== this.server\n                        },\n                        buttonText: function() {\n                            return this.serverRunning ? Lg.pause() : Lg.start()\n                        }\n                    }),\n                    methods: S(S({}, (0, u.mapMutations)({\n                        setRouterHijackMacAddresses: \"SET_ROUTER_HIJACK_MAC_ADDRESSES\"\n                    })), {}, {\n                        clientName: function(e) {\n                            return this.clientAlias[e.chaddr] || e.options[12] || \"Unknown\"\n                        },\n                        handleClientRename: function(e, t) {\n                            this.clientAlias = S(S({}, this.clientAlias), {}, l()({}, t, e.target.value)), g.Z.put(v.Z.DHCP_MAC_ALIAS, this.clientAlias)\n                        },\n                        handleGotoConnections: function(e) {\n                            var t = this.addressFromBound(e);\n                            t && this.$router.replace({\n                                path: \"/home/connection\",\n                                query: {\n                                    searchText: t\n                                }\n                            }).catch((function() {}))\n                        },\n                        handleStartDHCPServer: function() {\n                            this.serverRunning ? (this.server && this.server.close(), this.server = null, this.clients = [], this.boundState = {}, h.ipcRenderer.invoke(\"powerSaveBlocker\", \"stop\", this.powersaveBlockerID)) : this.isShowConfigView = !0\n                        },\n                        handleConfigConfirm: function(e) {\n                            var t, i, n = this;\n                            this.isShowConfigView = !1;\n                            var s, a = null === (t = this.currentProfilePayload) || void 0 === t || null === (i = t.tun) || void 0 === i ? void 0 : i[\"dns-hijack\"],\n                                l = function(e) {\n                                    var t = e.rangeFrom,\n                                        i = e.rangeTo,\n                                        n = e.netmask,\n                                        o = e.defaultRouter,\n                                        s = e.broadcast,\n                                        r = e.localAddress,\n                                        a = e.primaryDns,\n                                        l = e.secondlyDns,\n                                        c = e.hijackDns,\n                                        d = void 0 === c ? [] : c,\n                                        h = f().createServer({\n                                            range: [t, i],\n                                            forceOptions: [\"hostname\"],\n                                            randomIP: !0,\n                                            static: {},\n                                            netmask: n,\n                                            router: function(e) {\n                                                var t = m.Z.state.app.routerHijackMacAddresses;\n                                                return (void 0 === t ? [] : t).includes(e.clientId) ? [r] : [o]\n                                            },\n                                            dns: function(e) {\n                                                var t = m.Z.state.app.routerHijackMacAddresses;\n                                                return (void 0 === t ? [] : t).includes(e.clientId) ? d.slice(0, 2) : \"\" !== l ? [a, l] : [a]\n                                            },\n                                            broadcast: s,\n                                            server: r,\n                                            maxMessageSize: 1500,\n                                            leaseTime: 86400,\n                                            renewalTime: 60,\n                                            rebindingTime: 120,\n                                            bootFile: \"\",\n                                            hostname: \"cfw\"\n                                        });\n                                    return h.on(\"error\", (function(e, t) {\n                                        console.log(e, t)\n                                    })), h.listen(), h\n                                }(S(S({}, e), {}, {\n                                    hijackDns: a\n                                }));\n                            l.on(\"message\", (function(e) {\n                                var t = e.chaddr;\n                                void 0 !== n.clients.find((function(e) {\n                                    return e.chaddr === t\n                                })) || (n.clients = [].concat(r()(n.clients), [e]))\n                            })), l.on(\"bound\", (function(e) {\n                                n.boundState = e\n                            })), l.on(\"listening\", (s = o()(d().mark((function e(t) {\n                                var i;\n                                return d().wrap((function(e) {\n                                    for (;;) switch (e.prev = e.next) {\n                                        case 0:\n                                            return i = t.address(), console.log(\"dhcp server listen at \".concat(i.address, \":\").concat(i.port)), n.server = l, e.next = 5, h.ipcRenderer.invoke(\"powerSaveBlocker\", \"start\", \"prevent-app-suspension\");\n                                        case 5:\n                                            n.powersaveBlockerID = e.sent;\n                                        case 6:\n                                        case \"end\":\n                                            return e.stop()\n                                    }\n                                }), e)\n                            }))), function(e) {\n                                return s.apply(this, arguments)\n                            }))\n                        },\n                        handleMacToHijack: function(e) {\n                            this.routerHijackMacAddresses.includes(e) ? this.setRouterHijackMacAddresses({\n                                addresses: this.routerHijackMacAddresses.filter((function(t) {\n                                    return t !== e\n                                }))\n                            }) : this.setRouterHijackMacAddresses({\n                                addresses: [].concat(r()(this.routerHijackMacAddresses), [e])\n                            })\n                        },\n                        addressFromBound: function(e) {\n                            var t = this.boundState[e];\n                            return t ? t.address : \"\"\n                        }\n                    })\n                };\n                i(67078);\n                const L = (0, C.Z)(k, (function() {\n                    var e = this,\n                        t = e._self._c;\n                    return t(\"div\", {\n                        staticClass: \"main-router-view\"\n                    }, [t(\"div\", {\n                        staticClass: \"header\"\n                    }, [t(\"div\", [e._v(Lg.dhcpServer())]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"btn\",\n                        class: [e.serverRunning ? \"btn-stop\" : \"btn-start\"],\n                        on: {\n                            click: e.handleStartDHCPServer\n                        }\n                    }, [e._v(\"\\n      \" + e._s(e.buttonText) + \"\\n    \")])]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"list\"\n                    }, e._l(e.clients, (function(i) {\n                        return t(\"div\", {\n                            key: i.chaddr,\n                            staticClass: \"item\",\n                            attrs: {\n                                title: i.chaddr\n                            }\n                        }, [t(\"div\", {\n                            staticClass: \"left\"\n                        }, [t(\"div\", {\n                            staticClass: \"name clickable\"\n                        }, [t(\"input\", {\n                            attrs: {\n                                type: \"text\"\n                            },\n                            domProps: {\n                                value: e.clientName(i)\n                            },\n                            on: {\n                                change: function(t) {\n                                    return e.handleClientRename(t, i.chaddr)\n                                }\n                            }\n                        })]), e._v(\" \"), t(\"div\", {\n                            staticClass: \"ip\"\n                        }, [e._v(e._s(e.addressFromBound(i.chaddr) || \"--\"))])]), e._v(\" \"), t(\"div\", {\n                            staticClass: \"right\"\n                        }, [e.routerHijackMacAddresses.includes(i.options[61]) ? t(\"div\", {\n                            staticClass: \"btn\",\n                            on: {\n                                click: function(t) {\n                                    return e.handleGotoConnections(i.chaddr)\n                                }\n                            }\n                        }, [e._v(\"\\n         连接\\n        \")]) : e._e(), e._v(\" \"), t(\"div\", {\n                            staticClass: \"btn hijack-button\",\n                            on: {\n                                click: function(t) {\n                                    return e.handleMacToHijack(i.options[61])\n                                }\n                            }\n                        }, [e._v(\"\\n          \" + e._s(e.routerHijackMacAddresses.includes(i.options[61]) ? \"Clash TUN\" : Lg.defaultGateway()) + \"\\n        \")])])])\n                    })), 0), e._v(\" \"), e.isShowConfigView ? t(\"config-view\", {\n                        on: {\n                            close: function(t) {\n                                e.isShowConfigView = !1\n                            },\n                            confirm: e.handleConfigConfirm\n                        }\n                    }) : e._e()], 1)\n                }), [], !1, null, \"74ff0369\", null).exports\n            },\n            74775: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    Z: () => ge\n                });\n                var n = i(319),\n                    o = i.n(n),\n                    s = i(63038),\n                    r = i.n(s),\n                    a = i(48926),\n                    l = i.n(a),\n                    c = i(59713),\n                    d = i.n(c),\n                    h = i(87757),\n                    u = i.n(h),\n                    g = i(10605),\n                    p = i.n(g),\n                    f = i(11442),\n                    m = i.n(f),\n                    v = i(419),\n                    _ = i(8369),\n                    b = i(23321),\n                    w = i(51109),\n                    y = i.n(w);\n\n                function C(e, t) {\n                    var i = Object.keys(e);\n                    if (Object.getOwnPropertySymbols) {\n                        var n = Object.getOwnPropertySymbols(e);\n                        t && (n = n.filter((function(t) {\n                            return Object.getOwnPropertyDescriptor(e, t).enumerable\n                        }))), i.push.apply(i, n)\n                    }\n                    return i\n                }\n\n                function x(e) {\n                    for (var t = 1; t < arguments.length; t++) {\n                        var i = null != arguments[t] ? arguments[t] : {};\n                        t % 2 ? C(Object(i), !0).forEach((function(t) {\n                            d()(e, t, i[t])\n                        })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(i)) : C(Object(i)).forEach((function(t) {\n                            Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(i, t))\n                        }))\n                    }\n                    return e\n                }\n                const S = {\n                    props: [\"type\", \"data\"],\n                    data: function() {\n                        return {\n                            ssCipher: [\"aes-128-gcm\", \"aes-192-gcm\", \"aes-256-gcm\", \"chacha20-ietf-poly1305\", \"aes-128-ctr\", \"aes-192-ctr\", \"aes-256-ctr\", \"aes-128-cfb\", \"aes-192-cfb\", \"aes-256-cfb\", \"chacha20-ietf\", \"xchacha20\", \"rc4-md5\", \"xchacha20-ietf-poly1305\"],\n                            vmessCipher: [\"none\", \"auto\", \"aes-128-gcm\", \"chacha20-poly1305\"],\n                            pType: [\"ss\", \"vmess\", \"socks5\", \"http\"],\n                            gType: [\"url-test\", \"fallback\", \"select\", \"load-balance\"],\n                            vmessType: [\"tcp\", \"ws\"],\n                            groupName: \"\",\n                            groupType: \"select\",\n                            groupUrl: \"https://www.gstatic.com/generate_204\",\n                            groupInterval: 600,\n                            proxyType: \"ss\",\n                            proxyName: \"\",\n                            proxyServer: \"\",\n                            proxyPort: \"\",\n                            proxyChipher: \"\",\n                            proxyPassword: \"\",\n                            proxyUuid: \"\",\n                            proxyAlterid: \"\",\n                            proxyObfs: \"\",\n                            proxyObfshost: \"\",\n                            proxyTls: !1,\n                            proxyUsername: \"\",\n                            alterIdx: -1,\n                            proxySkipCertVerify: !1,\n                            proxyNetwork: \"tcp\",\n                            proxyWsPath: \"\",\n                            proxyWsHeaders: \"\"\n                        }\n                    },\n                    computed: x({}, (0, b.mapState)({})),\n                    methods: {\n                        confirmInput: function() {\n                            if (0 === this.type) {\n                                var e = {\n                                    name: this.groupName,\n                                    proxies: [],\n                                    type: this.groupType\n                                };\n                                \"url-test\" !== this.groupType && \"fallback\" !== this.groupType && \"load-balance\" !== this.groupType || (e.url = this.groupUrl, e.interval = this.groupInterval), this.$emit(\"inputDone\", {\n                                    type: 0,\n                                    content: e,\n                                    index: this.alterIdx\n                                })\n                            } else if (1 === this.type) {\n                                var t = {\n                                    name: this.proxyName,\n                                    type: this.proxyType,\n                                    server: this.proxyServer,\n                                    port: this.proxyPort\n                                };\n                                if (\"ss\" === this.proxyType) t.cipher = this.proxyChipher, t.password = this.proxyPassword, this.proxyObfs && (t.plugin = \"obfs\", t[\"plugin-opts\"] = {\n                                    mode: this.proxyObfs,\n                                    host: this.proxyObfshost || \"bing.com\"\n                                });\n                                else if (\"vmess\" === this.proxyType) {\n                                    if (t.uuid = this.proxyUuid, t.alterId = this.proxyAlterid, t.cipher = this.proxyChipher, this.proxyTls && (t.tls = !0), this.proxySkipCertVerify && (t[\"skip-cert-verify\"] = !0), \"ws\" === this.proxyNetwork) {\n                                        t.network = \"ws\";\n                                        var i = {\n                                            path: this.proxyWsPath\n                                        };\n                                        try {\n                                            i = x(x({}, i), {}, {\n                                                headers: JSON.parse(this.proxyWsHeaders)\n                                            })\n                                        } catch (e) {}\n                                        t[\"ws-opts\"] = i\n                                    }\n                                } else \"socks5\" !== this.proxyType && \"http\" !== this.proxyType || (this.proxyUsername && this.proxyPassword && (t.username = this.proxyUsername, t.password = this.proxyPassword), this.proxyTls && (t.tls = !0), this.proxySkipCertVerify && (t[\"skip-cert-verify\"] = !0));\n                                this.$emit(\"inputDone\", {\n                                    type: 1,\n                                    content: t,\n                                    index: this.alterIdx\n                                })\n                            }\n                        }\n                    },\n                    mounted: function() {\n                        if (this.data) {\n                            if (0 === this.type) this.groupName = this.data.name, this.groupType = this.data.type, \"url\" in this.data && (this.groupUrl = this.data.url), \"interval\" in this.data && (this.groupInterval = this.data.interval);\n                            else if (1 === this.type) {\n                                if (this.proxyName = this.data.name, this.proxyPort = this.data.port, this.proxyServer = this.data.server, this.proxyType = this.data.type, \"password\" in this.data && (this.proxyPassword = this.data.password), \"plugin\" in this.data) {\n                                    var e = this.data[\"plugin-opts\"],\n                                        t = void 0 === e ? {} : e,\n                                        i = t.mode,\n                                        n = t.host;\n                                    this.proxyObfs = i, this.proxyObfshost = n\n                                }\n                                \"obfs-host\" in this.data && (this.proxyObfshost = this.data[\"obfs-host\"]), \"tls\" in this.data && (this.proxyTls = this.data.tls), \"cipher\" in this.data && (this.proxyChipher = this.data.cipher), \"uuid\" in this.data && (this.proxyUuid = this.data.uuid), \"alterId\" in this.data && (this.proxyAlterid = this.data.alterId), \"skip-cert-verify\" in this.data && (this.proxySkipCertVerify = this.data[\"skip-cert-verify\"]), \"network\" in this.data && (this.proxyNetwork = this.data.network);\n                                var o = this.data[\"ws-opts\"];\n                                if (o) {\n                                    \"path\" in o && (this.proxyWsPath = o.path);\n                                    try {\n                                        \"headers\" in o && (this.proxyWsHeaders = JSON.stringify(o.headers))\n                                    } catch (e) {}\n                                }\n                                \"username\" in this.data && (this.proxyUsername = this.data.username)\n                            }\n                            this.alterIdx = this.data._index\n                        }\n                    }\n                };\n                i(34954), i(7840);\n                var k = i(51900);\n                const L = (0, k.Z)(S, (function() {\n                    var e = this,\n                        t = e._self._c;\n                    const Lg = new Language(modifyState.language);\n                    return t(\"div\", {\n                        staticClass: \"main\",\n                        attrs: {\n                            id: \"main-append-proxy-view\"\n                        }\n                    }, [0 === e.type ? t(\"div\", {\n                        staticClass: \"input-view\"\n                    }, [t(\"div\", {\n                        staticClass: \"title\"\n                    }, [e._v(e._s(e.data ? \"Edit\" : \"New\") + \" Proxy Group\")]), e._v(\" \"), t(\"input\", {\n                        directives: [{\n                            name: \"model\",\n                            rawName: \"v-model\",\n                            value: e.groupName,\n                            expression: \"groupName\"\n                        }],\n                        attrs: {\n                            type: \"text\",\n                            placeholder: \"Group Name\"\n                        },\n                        domProps: {\n                            value: e.groupName\n                        },\n                        on: {\n                            input: function(t) {\n                                t.target.composing || (e.groupName = t.target.value)\n                            }\n                        }\n                    }), e._v(\" \"), t(\"div\", {\n                        staticClass: \"group-type-list\"\n                    }, e._l(e.gType, (function(i, n) {\n                        return t(\"div\", {\n                            key: n\n                        }, [t(\"input\", {\n                            directives: [{\n                                name: \"model\",\n                                rawName: \"v-model\",\n                                value: e.groupType,\n                                expression: \"groupType\"\n                            }],\n                            attrs: {\n                                type: \"radio\",\n                                id: i\n                            },\n                            domProps: {\n                                value: i,\n                                checked: e._q(e.groupType, i)\n                            },\n                            on: {\n                                change: function(t) {\n                                    e.groupType = i\n                                }\n                            }\n                        }), e._v(\" \"), t(\"label\", {\n                            attrs: {\n                                for: i\n                            }\n                        }, [e._v(e._s(i))])])\n                    })), 0), e._v(\" \"), \"select\" !== e.groupType ? t(\"input\", {\n                        directives: [{\n                            name: \"model\",\n                            rawName: \"v-model\",\n                            value: e.groupUrl,\n                            expression: \"groupUrl\"\n                        }],\n                        attrs: {\n                            type: \"text\",\n                            placeholder: \"URL\"\n                        },\n                        domProps: {\n                            value: e.groupUrl\n                        },\n                        on: {\n                            input: function(t) {\n                                t.target.composing || (e.groupUrl = t.target.value)\n                            }\n                        }\n                    }) : e._e(), e._v(\" \"), \"select\" !== e.groupType ? t(\"input\", {\n                        directives: [{\n                            name: \"model\",\n                            rawName: \"v-model\",\n                            value: e.groupInterval,\n                            expression: \"groupInterval\"\n                        }],\n                        attrs: {\n                            type: \"text\",\n                            placeholder: \"Interval ( Second )\"\n                        },\n                        domProps: {\n                            value: e.groupInterval\n                        },\n                        on: {\n                            input: function(t) {\n                                t.target.composing || (e.groupInterval = t.target.value)\n                            }\n                        }\n                    }) : e._e()]) : 1 === e.type ? t(\"div\", {\n                        staticClass: \"input-view\"\n                    }, [t(\"div\", {\n                        staticClass: \"title\"\n                    }, [e._v(e._s(e.data ? \"Edit\" : \"New\") + \" Proxy\")]), e._v(\" \"), t(\"input\", {\n                        directives: [{\n                            name: \"model\",\n                            rawName: \"v-model\",\n                            value: e.proxyName,\n                            expression: \"proxyName\"\n                        }],\n                        attrs: {\n                            type: \"text\",\n                            placeholder: Lg.proxyName()\n                        },\n                        domProps: {\n                            value: e.proxyName\n                        },\n                        on: {\n                            input: function(t) {\n                                t.target.composing || (e.proxyName = t.target.value)\n                            }\n                        }\n                    }), e._v(\" \"), t(\"div\", {\n                        staticClass: \"proxy-type-list\"\n                    }, e._l(e.pType, (function(i, n) {\n                        return t(\"div\", {\n                            key: n\n                        }, [t(\"input\", {\n                            directives: [{\n                                name: \"model\",\n                                rawName: \"v-model\",\n                                value: e.proxyType,\n                                expression: \"proxyType\"\n                            }],\n                            attrs: {\n                                type: \"radio\",\n                                id: i\n                            },\n                            domProps: {\n                                value: i,\n                                checked: e._q(e.proxyType, i)\n                            },\n                            on: {\n                                change: function(t) {\n                                    e.proxyType = i\n                                }\n                            }\n                        }), e._v(\" \"), t(\"label\", {\n                            attrs: {\n                                for: i\n                            }\n                        }, [e._v(e._s(i))])])\n                    })), 0), e._v(\" \"), t(\"input\", {\n                        directives: [{\n                            name: \"model\",\n                            rawName: \"v-model\",\n                            value: e.proxyServer,\n                            expression: \"proxyServer\"\n                        }],\n                        attrs: {\n                            type: \"text\",\n                            placeholder: Lg.server()\n                        },\n                        domProps: {\n                            value: e.proxyServer\n                        },\n                        on: {\n                            input: function(t) {\n                                t.target.composing || (e.proxyServer = t.target.value)\n                            }\n                        }\n                    }), e._v(\" \"), t(\"input\", {\n                        directives: [{\n                            name: \"model\",\n                            rawName: \"v-model\",\n                            value: e.proxyPort,\n                            expression: \"proxyPort\"\n                        }],\n                        attrs: {\n                            type: \"text\",\n                            placeholder: Lg.port()\n                        },\n                        domProps: {\n                            value: e.proxyPort\n                        },\n                        on: {\n                            input: function(t) {\n                                t.target.composing || (e.proxyPort = t.target.value)\n                            }\n                        }\n                    }), e._v(\" \"), \"ss\" === e.proxyType ? t(\"input\", {\n                        directives: [{\n                            name: \"model\",\n                            rawName: \"v-model\",\n                            value: e.proxyPassword,\n                            expression: \"proxyPassword\"\n                        }],\n                        attrs: {\n                            type: \"text\",\n                            placeholder: \"Password\"\n                        },\n                        domProps: {\n                            value: e.proxyPassword\n                        },\n                        on: {\n                            input: function(t) {\n                                t.target.composing || (e.proxyPassword = t.target.value)\n                            }\n                        }\n                    }) : e._e(), e._v(\" \"), \"vmess\" === e.proxyType ? t(\"div\", {\n                        staticClass: \"cipher-list\"\n                    }, e._l(e.vmessCipher, (function(i, n) {\n                        return t(\"div\", {\n                            key: n\n                        }, [t(\"input\", {\n                            directives: [{\n                                name: \"model\",\n                                rawName: \"v-model\",\n                                value: e.proxyChipher,\n                                expression: \"proxyChipher\"\n                            }],\n                            attrs: {\n                                type: \"radio\",\n                                id: i\n                            },\n                            domProps: {\n                                value: i,\n                                checked: e._q(e.proxyChipher, i)\n                            },\n                            on: {\n                                change: function(t) {\n                                    e.proxyChipher = i\n                                }\n                            }\n                        }), e._v(\" \"), t(\"label\", {\n                            attrs: {\n                                for: i\n                            }\n                        }, [e._v(e._s(i))])])\n                    })), 0) : \"ss\" === e.proxyType ? t(\"div\", {\n                        staticClass: \"cipher-list\"\n                    }, e._l(e.ssCipher, (function(i, n) {\n                        return t(\"div\", {\n                            key: n\n                        }, [t(\"input\", {\n                            directives: [{\n                                name: \"model\",\n                                rawName: \"v-model\",\n                                value: e.proxyChipher,\n                                expression: \"proxyChipher\"\n                            }],\n                            attrs: {\n                                type: \"radio\",\n                                id: i\n                            },\n                            domProps: {\n                                value: i,\n                                checked: e._q(e.proxyChipher, i)\n                            },\n                            on: {\n                                change: function(t) {\n                                    e.proxyChipher = i\n                                }\n                            }\n                        }), e._v(\" \"), t(\"label\", {\n                            attrs: {\n                                for: i\n                            }\n                        }, [e._v(e._s(i))])])\n                    })), 0) : e._e(), e._v(\" \"), \"ss\" === e.proxyType ? t(\"div\", {\n                        staticClass: \"ss-list\"\n                    }, [t(\"input\", {\n                        directives: [{\n                            name: \"model\",\n                            rawName: \"v-model\",\n                            value: e.proxyObfs,\n                            expression: \"proxyObfs\"\n                        }],\n                        attrs: {\n                            type: \"text\",\n                            placeholder: \"Obfs (Optional, tls or http)\"\n                        },\n                        domProps: {\n                            value: e.proxyObfs\n                        },\n                        on: {\n                            input: function(t) {\n                                t.target.composing || (e.proxyObfs = t.target.value)\n                            }\n                        }\n                    }), e._v(\" \"), t(\"input\", {\n                        directives: [{\n                            name: \"model\",\n                            rawName: \"v-model\",\n                            value: e.proxyObfshost,\n                            expression: \"proxyObfshost\"\n                        }],\n                        attrs: {\n                            type: \"text\",\n                            placeholder: \"Obfs-host (Optional)\"\n                        },\n                        domProps: {\n                            value: e.proxyObfshost\n                        },\n                        on: {\n                            input: function(t) {\n                                t.target.composing || (e.proxyObfshost = t.target.value)\n                            }\n                        }\n                    })]) : e._e(), e._v(\" \"), \"vmess\" === e.proxyType ? t(\"div\", {\n                        staticClass: \"vmess-list\"\n                    }, [t(\"input\", {\n                        directives: [{\n                            name: \"model\",\n                            rawName: \"v-model\",\n                            value: e.proxyUuid,\n                            expression: \"proxyUuid\"\n                        }],\n                        attrs: {\n                            type: \"text\",\n                            placeholder: \"UUID\"\n                        },\n                        domProps: {\n                            value: e.proxyUuid\n                        },\n                        on: {\n                            input: function(t) {\n                                t.target.composing || (e.proxyUuid = t.target.value)\n                            }\n                        }\n                    }), e._v(\" \"), t(\"input\", {\n                        directives: [{\n                            name: \"model\",\n                            rawName: \"v-model\",\n                            value: e.proxyAlterid,\n                            expression: \"proxyAlterid\"\n                        }],\n                        attrs: {\n                            type: \"text\",\n                            placeholder: \"AlterId\"\n                        },\n                        domProps: {\n                            value: e.proxyAlterid\n                        },\n                        on: {\n                            input: function(t) {\n                                t.target.composing || (e.proxyAlterid = t.target.value)\n                            }\n                        }\n                    }), e._v(\" \"), \"vmess\" === e.proxyType ? t(\"div\", {\n                        staticClass: \"cipher-list\"\n                    }, e._l(e.vmessType, (function(i, n) {\n                        return t(\"div\", {\n                            key: n\n                        }, [t(\"input\", {\n                            directives: [{\n                                name: \"model\",\n                                rawName: \"v-model\",\n                                value: e.proxyNetwork,\n                                expression: \"proxyNetwork\"\n                            }],\n                            attrs: {\n                                type: \"radio\",\n                                id: i\n                            },\n                            domProps: {\n                                value: i,\n                                checked: e._q(e.proxyNetwork, i)\n                            },\n                            on: {\n                                change: function(t) {\n                                    e.proxyNetwork = i\n                                }\n                            }\n                        }), e._v(\" \"), t(\"label\", {\n                            attrs: {\n                                for: i\n                            }\n                        }, [e._v(e._s(i))])])\n                    })), 0) : e._e()]) : e._e(), e._v(\" \"), \"http\" === e.proxyType || \"socks5\" === e.proxyType ? t(\"div\", {\n                        staticClass: \"input-view\"\n                    }, [t(\"input\", {\n                        directives: [{\n                            name: \"model\",\n                            rawName: \"v-model\",\n                            value: e.proxyUsername,\n                            expression: \"proxyUsername\"\n                        }],\n                        attrs: {\n                            type: \"text\",\n                            placeholder: \"User Name (Optional)\"\n                        },\n                        domProps: {\n                            value: e.proxyUsername\n                        },\n                        on: {\n                            input: function(t) {\n                                t.target.composing || (e.proxyUsername = t.target.value)\n                            }\n                        }\n                    }), e._v(\" \"), t(\"input\", {\n                        directives: [{\n                            name: \"model\",\n                            rawName: \"v-model\",\n                            value: e.proxyPassword,\n                            expression: \"proxyPassword\"\n                        }],\n                        attrs: {\n                            type: \"text\",\n                            placeholder: \"Password (Optional)\"\n                        },\n                        domProps: {\n                            value: e.proxyPassword\n                        },\n                        on: {\n                            input: function(t) {\n                                t.target.composing || (e.proxyPassword = t.target.value)\n                            }\n                        }\n                    })]) : e._e(), e._v(\" \"), \"vmess\" === e.proxyType && \"ws\" === e.proxyNetwork ? t(\"input\", {\n                        directives: [{\n                            name: \"model\",\n                            rawName: \"v-model\",\n                            value: e.proxyWsPath,\n                            expression: \"proxyWsPath\"\n                        }],\n                        attrs: {\n                            type: \"text\",\n                            placeholder: \"ws path\"\n                        },\n                        domProps: {\n                            value: e.proxyWsPath\n                        },\n                        on: {\n                            input: function(t) {\n                                t.target.composing || (e.proxyWsPath = t.target.value)\n                            }\n                        }\n                    }) : e._e(), e._v(\" \"), \"vmess\" === e.proxyType && \"ws\" === e.proxyNetwork ? t(\"input\", {\n                        directives: [{\n                            name: \"model\",\n                            rawName: \"v-model\",\n                            value: e.proxyWsHeaders,\n                            expression: \"proxyWsHeaders\"\n                        }],\n                        attrs: {\n                            type: \"text\",\n                            placeholder: \"ws headers (JSON)\"\n                        },\n                        domProps: {\n                            value: e.proxyWsHeaders\n                        },\n                        on: {\n                            input: function(t) {\n                                t.target.composing || (e.proxyWsHeaders = t.target.value)\n                            }\n                        }\n                    }) : e._e(), e._v(\" \"), \"vmess\" === e.proxyType || \"socks5\" === e.proxyType || \"http\" === e.proxyType ? t(\"div\", [t(\"div\", [t(\"input\", {\n                        directives: [{\n                            name: \"model\",\n                            rawName: \"v-model\",\n                            value: e.proxyTls,\n                            expression: \"proxyTls\"\n                        }],\n                        attrs: {\n                            type: \"checkbox\",\n                            id: \"vmess-tls\"\n                        },\n                        domProps: {\n                            checked: Array.isArray(e.proxyTls) ? e._i(e.proxyTls, null) > -1 : e.proxyTls\n                        },\n                        on: {\n                            change: function(t) {\n                                var i = e.proxyTls,\n                                    n = t.target,\n                                    o = !!n.checked;\n                                if (Array.isArray(i)) {\n                                    var s = e._i(i, null);\n                                    n.checked ? s < 0 && (e.proxyTls = i.concat([null])) : s > -1 && (e.proxyTls = i.slice(0, s).concat(i.slice(s + 1)))\n                                } else e.proxyTls = o\n                            }\n                        }\n                    }), e._v(\" \"), t(\"label\", {\n                        attrs: {\n                            for: \"vmess-tls\"\n                        }\n                    }, [e._v(\"TLS\")])]), e._v(\" \"), t(\"div\", [t(\"input\", {\n                        directives: [{\n                            name: \"model\",\n                            rawName: \"v-model\",\n                            value: e.proxySkipCertVerify,\n                            expression: \"proxySkipCertVerify\"\n                        }],\n                        attrs: {\n                            type: \"checkbox\",\n                            id: \"vmess-skip-cert-verify\"\n                        },\n                        domProps: {\n                            checked: Array.isArray(e.proxySkipCertVerify) ? e._i(e.proxySkipCertVerify, null) > -1 : e.proxySkipCertVerify\n                        },\n                        on: {\n                            change: function(t) {\n                                var i = e.proxySkipCertVerify,\n                                    n = t.target,\n                                    o = !!n.checked;\n                                if (Array.isArray(i)) {\n                                    var s = e._i(i, null);\n                                    n.checked ? s < 0 && (e.proxySkipCertVerify = i.concat([null])) : s > -1 && (e.proxySkipCertVerify = i.slice(0, s).concat(i.slice(s + 1)))\n                                } else e.proxySkipCertVerify = o\n                            }\n                        }\n                    }), e._v(\" \"), t(\"label\", {\n                        attrs: {\n                            for: \"vmess-skip-cert-verify\"\n                        }\n                    }, [e._v(Lg.skipCertVerify())])])]) : e._e()]) : e._e(), e._v(\" \"), t(\"div\", {\n                        staticClass: \"btns\"\n                    }, [t(\"div\", {\n                        staticClass: \"btn cancel\",\n                        on: {\n                            click: function(t) {\n                                return e.$emit(\"inputCancel\")\n                            }\n                        }\n                    }, [e._v(Lg.cancel())]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"btn confirm\",\n                        on: {\n                            click: e.confirmInput\n                        }\n                    }, [e._v(Lg.ok())])])])\n                }), [], !1, null, \"f638b328\", null).exports;\n                var N = i(57147),\n                    D = i.n(N),\n                    I = i(71017),\n                    E = i.n(I);\n\n                function T(e, t) {\n                    var i = Object.keys(e);\n                    if (Object.getOwnPropertySymbols) {\n                        var n = Object.getOwnPropertySymbols(e);\n                        t && (n = n.filter((function(t) {\n                            return Object.getOwnPropertyDescriptor(e, t).enumerable\n                        }))), i.push.apply(i, n)\n                    }\n                    return i\n                }\n                const Lg = new Language(modifyState.language);\n                var M = \"proxy-groups\",\n                    A = \"proxies\",\n                    O = \"rules\";\n                const P = {\n                    props: [\"profileName\"],\n                    components: {\n                        draggable: y(),\n                        AppendProxyView: L\n                    },\n                    data: function() {\n                        return {\n                            conf: null,\n                            specialProxies: [{\n                                name: \"DIRECT\"\n                            }, {\n                                name: \"REJECT\"\n                            }],\n                            addType: -1,\n                            addData: null,\n                            saveBtn: Lg.save()\n                        }\n                    },\n                    computed: function(e) {\n                        for (var t = 1; t < arguments.length; t++) {\n                            var i = null != arguments[t] ? arguments[t] : {};\n                            t % 2 ? T(Object(i), !0).forEach((function(t) {\n                                d()(e, t, i[t])\n                            })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(i)) : T(Object(i)).forEach((function(t) {\n                                Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(i, t))\n                            }))\n                        }\n                        return e\n                    }({}, (0, b.mapState)({\n                        clashPath: function(e) {\n                            return e.app.clashPath\n                        },\n                        profilesPath: function(e) {\n                            return e.app.profilesPath\n                        }\n                    })),\n                    methods: {\n                        proxy2group: function(e) {\n                            return e.name\n                        },\n                        removeFromGroup: function(e, t) {\n                            this.conf[M][e].proxies.splice(t, 1)\n                        },\n                        removeFromProxies: function(e, t) {\n                            e.stopPropagation();\n                            var i = this.conf[A][t].name;\n                            this.conf[A].splice(t, 1), this.conf[M].forEach((function(e) {\n                                e.proxies = e.proxies.filter((function(e) {\n                                    return e !== i\n                                }))\n                            }))\n                        },\n                        removeGroup: function(e, t) {\n                            e.stopPropagation();\n                            var i = this.conf[M][t].name;\n                            this.conf[M].splice(t, 1), this.conf[M].forEach((function(e) {\n                                e.proxies = e.proxies.filter((function(e) {\n                                    return e !== i\n                                }))\n                            }))\n                        },\n                        renameGroup: function(e, t) {\n                            this.conf[M].forEach((function(i) {\n                                i.proxies = i.proxies.map((function(i) {\n                                    return i === e ? t : i\n                                }))\n                            }))\n                        },\n                        renameRule: function(e, t) {\n                            this.conf[O] = this.conf[O].map((function(i) {\n                                if (/\\s*MATCH\\s*,([^,]*)($|,*|\\/\\/|#)/.test(i)) {\n                                    if (RegExp.$1.trim() === e.trim()) return \"MATCH,\".concat(t).concat(RegExp.$2)\n                                } else if (/([^,]*?),([^,]*?),([^,]*)($|,*|\\/\\/|#)/.test(i) && RegExp.$3.trim() === e.trim()) return \"\".concat(RegExp.$1, \",\").concat(RegExp.$2, \",\").concat(t).concat(RegExp.$4);\n                                return i\n                            }))\n                        },\n                        handleInputDone: function(e) {\n                            if (this.addType = -1, 0 === e.type)\n                                if (-1 === e.index) this.conf[M].push(e.content);\n                                else {\n                                    var t = this.conf[M][e.index].proxies,\n                                        i = e.content,\n                                        n = this.conf[M][e.index].name,\n                                        o = e.content.name;\n                                    i.proxies = t, this.conf[M][e.index] = i, this.renameGroup(n, o), this.renameRule(n, o)\n                                }\n                            else if (1 === e.type)\n                                if (-1 === e.index) this.conf[A].push(e.content);\n                                else {\n                                    var s = e.content.name,\n                                        r = this.conf[A][e.index].name;\n                                    this.conf[A][e.index] = e.content, this.renameGroup(r, s), this.renameRule(r, s)\n                                }\n                        },\n                        newGroup: function() {\n                            this.addType = 0, this.addData = null\n                        },\n                        editGroup: function(e, t) {\n                            var i = e.type;\n                            [\"url-test\", \"fallback\", \"select\", \"load-balance\"].includes(i) ? (this.addType = 0, e._index = t, this.addData = e) : this.$alert({\n                                content: Lg.couldNotEditProxyGroupType() + \" [\".concat(i, \"].\")\n                            })\n                        },\n                        newProxy: function() {\n                            this.addType = 1, this.addData = null\n                        },\n                        editProxy: function(e, t) {\n                            var i = e.type;\n                            [\"ss\", \"vmess\", \"http\", \"socks\"].includes(i) ? (this.addType = 1, e._index = t, this.addData = e) : this.$alert({\n                                content: Lg.cannotEditProxyType() + \" [\".concat(i, \"].\")\n                            })\n                        },\n                        loadData: function() {\n                            var e = E().join(this.profilesPath, this.profileName),\n                                t = D().readFileSync(e, \"utf8\");\n                            try {\n                                this.conf = m().parse(t)\n                            } catch (e) {}\n                        },\n                        saveData: function() {\n                            const Lg = new Language(modifyState.language);\n                            if (Lg.save() === this.saveBtn) try {\n                                var e = E().join(this.profilesPath, this.profileName);\n                                D().writeFileSync(e, m().stringify(this.conf)), this.$emit(\"done\")\n                            } catch (e) {\n                                this.$emit(\"error\")\n                            }\n                        }\n                    },\n                    mounted: function() {\n                        this.loadData()\n                    }\n                };\n                i(60420), i(48619);\n                const R = (0, k.Z)(P, (function() {\n                    var e = this,\n                        t = e._self._c;\n                    const Lg = new Language(modifyState.language);\n                    return t(\"div\", {\n                        staticClass: \"main-config-view\"\n                    }, [t(\"div\", {\n                        staticClass: \"floating\"\n                    }, [t(\"div\", {\n                        staticClass: \"hint\"\n                    }, [e._v(Lg.sortDescribe())]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"floating-right\"\n                    }, [t(\"div\", {\n                        staticClass: \"main-btn save\",\n                        on: {\n                            click: e.saveData\n                        }\n                    }, [e._v(e._s(e.saveBtn))]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"main-btn reload\",\n                        on: {\n                            click: function(t) {\n                                return e.$emit(\"cancel\")\n                            }\n                        }\n                    }, [e._v(Lg.cancel())])])]), e._v(\" \"), e.conf ? t(\"div\", {\n                        staticClass: \"drag\"\n                    }, [t(\"div\", {\n                        staticClass: \"proxy\"\n                    }, [e._m(0), e._v(\" \"), t(\"draggable\", {\n                        staticClass: \"dragArea\",\n                        attrs: {\n                            group: {\n                                name: \"people\",\n                                pull: \"clone\",\n                                put: !1,\n                                revertClone: !0\n                            },\n                            clone: e.proxy2group,\n                            delay: 300,\n                            animation: 200,\n                            \"delay-on-touch-only\": !0\n                        },\n                        model: {\n                            value: e.specialProxies,\n                            callback: function(t) {\n                                e.specialProxies = t\n                            },\n                            expression: \"specialProxies\"\n                        }\n                    }, e._l(e.specialProxies, (function(i, n) {\n                        return t(\"div\", {\n                            key: n,\n                            staticClass: \"proxy-item left-item\"\n                        }, [e._v(\"\\n          \" + e._s(i.name) + \"\\n        \")])\n                    })), 0), e._v(\" \"), t(\"div\", {\n                        staticClass: \"section-title\"\n                    }, [t(\"h2\", [e._v(Lg.proxyGroups())]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"add-icon\",\n                        on: {\n                            click: e.newGroup\n                        }\n                    }, [e._v(Lg.add())])]), e._v(\" \"), t(\"draggable\", {\n                        staticClass: \"dragArea\",\n                        attrs: {\n                            group: {\n                                name: \"people\",\n                                pull: \"clone\",\n                                put: !1,\n                                revertClone: !0\n                            },\n                            clone: e.proxy2group,\n                            delay: 300,\n                            animation: 200,\n                            \"delay-on-touch-only\": !0\n                        },\n                        model: {\n                            value: e.conf[\"proxy-groups\"],\n                            callback: function(t) {\n                                e.$set(e.conf, \"proxy-groups\", t)\n                            },\n                            expression: \"conf['proxy-groups']\"\n                        }\n                    }, e._l(e.conf[\"proxy-groups\"], (function(i, n) {\n                        return t(\"div\", {\n                            key: n,\n                            staticClass: \"proxy-item left-item\",\n                            on: {\n                                click: function(t) {\n                                    return e.editGroup(i, n)\n                                }\n                            }\n                        }, [t(\"div\", [e._v(e._s(i.name))]), e._v(\" \"), t(\"span\", {\n                            staticClass: \"icon text-white\",\n                            on: {\n                                click: function(t) {\n                                    return e.removeGroup(t, n)\n                                }\n                            }\n                        }, [e._v(\"delete\")])])\n                    })), 0), e._v(\" \"), t(\"div\", {\n                        staticClass: \"section-title\"\n                    }, [t(\"h2\", [e._v(Lg.proxies())]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"add-icon\",\n                        on: {\n                            click: e.newProxy\n                        }\n                    }, [e._v(Lg.add())])]), e._v(\" \"), t(\"draggable\", {\n                        staticClass: \"dragArea\",\n                        attrs: {\n                            group: {\n                                name: \"people\",\n                                pull: \"clone\",\n                                put: !1,\n                                revertClone: !0\n                            },\n                            clone: e.proxy2group,\n                            delay: 300,\n                            animation: 200,\n                            \"delay-on-touch-only\": !0\n                        },\n                        model: {\n                            value: e.conf.proxies,\n                            callback: function(t) {\n                                e.$set(e.conf, \"proxies\", t)\n                            },\n                            expression: \"conf['proxies']\"\n                        }\n                    }, e._l(e.conf.proxies, (function(i, n) {\n                        return t(\"div\", {\n                            key: n,\n                            staticClass: \"proxy-item left-item\",\n                            on: {\n                                click: function(t) {\n                                    return e.editProxy(i, n)\n                                }\n                            }\n                        }, [t(\"div\", [e._v(e._s(i.name))]), e._v(\" \"), t(\"span\", {\n                            staticClass: \"icon text-white\",\n                            on: {\n                                click: function(t) {\n                                    return e.removeFromProxies(t, n)\n                                }\n                            }\n                        }, [e._v(\"delete\")])])\n                    })), 0)], 1), e._v(\" \"), t(\"div\", {\n                        staticClass: \"proxy-group\"\n                    }, e._l(e.conf[\"proxy-groups\"], (function(i, n) {\n                        return t(\"div\", {\n                            key: n\n                        }, [t(\"div\", {\n                            staticClass: \"section-title\"\n                        }, [t(\"h2\", [e._v(e._s(i.name))]), e._v(\" \"), t(\"div\", {\n                            staticClass: \"type-icon\"\n                        }, [e._v(\"( \" + e._s(i.type) + \" )\")])]), e._v(\" \"), t(\"draggable\", {\n                            staticClass: \"dragArea\",\n                            attrs: {\n                                group: {\n                                    name: \"people\"\n                                },\n                                scroll: !0,\n                                scrollSensitivity: 100,\n                                scrollSpeed: 50,\n                                delay: 300,\n                                animation: 200,\n                                \"delay-on-touch-only\": !0\n                            },\n                            model: {\n                                value: i.proxies,\n                                callback: function(t) {\n                                    e.$set(i, \"proxies\", t)\n                                },\n                                expression: \"group.proxies\"\n                            }\n                        }, e._l(i.proxies, (function(i, o) {\n                            return t(\"div\", {\n                                key: o,\n                                staticClass: \"proxy-item right-item\"\n                            }, [t(\"div\", [e._v(e._s(i))]), e._v(\" \"), t(\"span\", {\n                                staticClass: \"icon text-white\",\n                                on: {\n                                    click: function(t) {\n                                        return e.removeFromGroup(n, o)\n                                    }\n                                }\n                            }, [e._v(\"delete\")])])\n                        })), 0)], 1)\n                    })), 0)]) : e._e(), e._v(\" \"), -1 !== e.addType ? t(\"append-proxy-view\", {\n                        attrs: {\n                            data: e.addData,\n                            type: e.addType\n                        },\n                        on: {\n                            inputDone: e.handleInputDone,\n                            inputCancel: function(t) {\n                                e.addType = -1\n                            }\n                        }\n                    }) : e._e()], 1)\n                }), [function() {\n                    var e = this._self._c;\n                    return e(\"div\", {\n                        staticClass: \"section-title\"\n                    }, [e(\"h2\", [this._v(Lg.specialProxies())])])\n                }], !1, null, \"9e0b3cf4\", null).exports;\n\n                function F(e, t) {\n                    var i = Object.keys(e);\n                    if (Object.getOwnPropertySymbols) {\n                        var n = Object.getOwnPropertySymbols(e);\n                        t && (n = n.filter((function(t) {\n                            return Object.getOwnPropertyDescriptor(e, t).enumerable\n                        }))), i.push.apply(i, n)\n                    }\n                    return i\n                }\n\n                function B(e) {\n                    for (var t = 1; t < arguments.length; t++) {\n                        var i = null != arguments[t] ? arguments[t] : {};\n                        t % 2 ? F(Object(i), !0).forEach((function(t) {\n                            d()(e, t, i[t])\n                        })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(i)) : F(Object(i)).forEach((function(t) {\n                            Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(i, t))\n                        }))\n                    }\n                    return e\n                }\n                const V = {\n                    props: [\"profileName\"],\n                    data: function() {\n                        return {\n                            ruleTypes: [\"DOMAIN-SUFFIX\", \"DOMAIN\", \"DOMAIN-KEYWORD\", \"IP-CIDR\", \"SRC-IP-CIDR\", \"GEOIP\", \"PROCESS-NAME\", \"DST-PORT\", \"SRC-PORT\", \"MATCH\"],\n                            selectedType: \"\",\n                            proxyGroups: [],\n                            selectedGroup: \"\",\n                            content: \"\"\n                        }\n                    },\n                    computed: B(B({}, (0, b.mapState)({\n                        profilesPath: function(e) {\n                            return e.app.profilesPath\n                        }\n                    })), (0, b.mapGetters)([\"clashAxiosClient\"])),\n                    methods: {\n                        inputDone: function() {\n                            var e = null;\n                            \"MATCH\" === this.selectedType && this.selectedGroup ? e = {\n                                type: this.selectedType,\n                                payload: \"\",\n                                proxy: this.selectedGroup\n                            } : this.content && this.selectedType && this.selectedGroup && (e = {\n                                type: this.selectedType,\n                                payload: this.content,\n                                proxy: this.selectedGroup\n                            }), this.$emit(\"done\", e)\n                        },\n                        handleMaskClick: function(e) {\n                            this.$emit(\"close\")\n                        }\n                    },\n                    mounted: function() {\n                        try {\n                            var e = m().parse(D().readFileSync(E().join(this.profilesPath, this.profileName)).toString()),\n                                t = e.proxies,\n                                i = void 0 === t ? [] : t,\n                                n = e[\"proxy-groups\"],\n                                s = void 0 === n ? [] : n,\n                                r = i.map((function(e) {\n                                    return e.name\n                                })),\n                                a = s.map((function(e) {\n                                    return e.name\n                                }));\n                            this.proxyGroups = [\"DIRECT\", \"REJECT\"].concat(o()(a), o()(r))\n                        } catch (e) {}\n                    }\n                };\n                i(72852), i(20988);\n                const W = (0, k.Z)(V, (function() {\n                    var e = this,\n                        t = e._self._c;\n                    const Lg = new Language(modifyState.language);\n                    return t(\"div\", {\n                        attrs: {\n                            type: \"text/x-template\",\n                            id: \"modal-template\"\n                        }\n                    }, [t(\"transition\", {\n                        attrs: {\n                            name: \"modal\"\n                        }\n                    }, [t(\"div\", {\n                        staticClass: \"modal-mask\",\n                        on: {\n                            mousedown: e.handleMaskClick\n                        }\n                    }, [t(\"div\", {\n                        staticClass: \"modal-wrapper\"\n                    }, [t(\"div\", {\n                        staticClass: \"modal-container\",\n                        on: {\n                            mousedown: function(e) {\n                                e.stopPropagation()\n                            }\n                        }\n                    }, [t(\"div\", {\n                        staticClass: \"model-title\"\n                    }, [t(\"div\", [e._v(Lg.createNewRule())]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"rule-floating-btns\"\n                    }, [t(\"div\", {\n                        staticClass: \"rule-floating-ok\",\n                        on: {\n                            click: e.inputDone\n                        }\n                    }, [e._v(Lg.add())]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"rule-floating-cancel\",\n                        on: {\n                            click: function(t) {\n                                return e.$emit(\"close\")\n                            }\n                        }\n                    }, [e._v(\"\\n                \" + Lg.cancel() + \"\\n              \")])])]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"scroll-view\"\n                    }, [\"MATCH\" !== e.selectedType ? t(\"div\", {\n                        staticClass: \"rule-section-title\"\n                    }, [e._v(\"\\n              \" + Lg.content() + \"\\n            \")]) : e._e(), e._v(\" \"), t(\"div\", [\"MATCH\" !== e.selectedType ? t(\"input\", {\n                        directives: [{\n                            name: \"model\",\n                            rawName: \"v-model\",\n                            value: e.content,\n                            expression: \"content\"\n                        }],\n                        attrs: {\n                            placeholder: Lg.eg() + \"google.com\",\n                            id: \"rule-content\",\n                            type: \"text\"\n                        },\n                        domProps: {\n                            value: e.content\n                        },\n                        on: {\n                            input: function(t) {\n                                t.target.composing || (e.content = t.target.value)\n                            }\n                        }\n                    }) : e._e()]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"rule-section-title\"\n                    }, [e._v(Lg.type())]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"rule-type-group\"\n                    }, e._l(e.ruleTypes, (function(i, n) {\n                        return t(\"div\", {\n                            key: n,\n                            class: {\n                                \"rule-type-item\": !0, \"rule-type-selected\": i === e.selectedType\n                            },\n                            on: {\n                                click: function(t) {\n                                    e.selectedType = i\n                                }\n                            }\n                        }, [e._v(\"\\n                \" + e._s(i) + \"\\n              \")])\n                    })), 0), e._v(\" \"), t(\"div\", {\n                        staticClass: \"rule-section-title\"\n                    }, [e._v(Lg.proxyPolicy())]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"rule-proxy-group\"\n                    }, e._l(e.proxyGroups, (function(i, n) {\n                        return t(\"div\", {\n                            key: n,\n                            class: {\n                                \"rule-proxy-item\": !0, \"rule-proxy-selected\": i === e.selectedGroup\n                            },\n                            on: {\n                                click: function(t) {\n                                    e.selectedGroup = i\n                                }\n                            }\n                        }, [e._v(\"\\n                \" + e._s(i) + \"\\n              \")])\n                    })), 0)])])])])])], 1)\n                }), [], !1, null, \"eea841c4\", null).exports;\n\n                function H(e, t) {\n                    var i = Object.keys(e);\n                    if (Object.getOwnPropertySymbols) {\n                        var n = Object.getOwnPropertySymbols(e);\n                        t && (n = n.filter((function(t) {\n                            return Object.getOwnPropertyDescriptor(e, t).enumerable\n                        }))), i.push.apply(i, n)\n                    }\n                    return i\n                }\n\n                function z(e) {\n                    for (var t = 1; t < arguments.length; t++) {\n                        var i = null != arguments[t] ? arguments[t] : {};\n                        t % 2 ? H(Object(i), !0).forEach((function(t) {\n                            d()(e, t, i[t])\n                        })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(i)) : H(Object(i)).forEach((function(t) {\n                            Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(i, t))\n                        }))\n                    }\n                    return e\n                }\n                var j = i(24793),\n                    U = [];\n                const $ = {\n                    props: [\"profileName\"],\n                    data: function() {\n                        const Lg = new Language(modifyState.language);\n                        return {\n                            listData: [],\n                            memoryData: [],\n                            showAlterModel: !1,\n                            saveBtnText: Lg.save(),\n                            axiosSource: null,\n                            filterKeywords: \"\",\n                            providers: {}\n                        }\n                    },\n                    components: {\n                        RuleAlterView: W\n                    },\n                    watch: {},\n                    computed: z(z({}, (0, b.mapState)({\n                        clashPath: function(e) {\n                            return e.app.clashPath\n                        },\n                        profiles: function(e) {\n                            return e.app.profiles\n                        },\n                        profilesPath: function(e) {\n                            return e.app.profilesPath\n                        }\n                    })), (0, b.mapGetters)([\"clashAxiosClient\"])),\n                    methods: {\n                        handleRuleClick: function(e) {\n                            var t = this;\n                            return l()(u().mark((function i() {\n                                var n, o, s;\n                                return u().wrap((function(i) {\n                                    for (;;) switch (i.prev = i.next) {\n                                        case 0:\n                                            if (n = e.type, o = e.payload, \"RULE-SET\" !== n) {\n                                                i.next = 13;\n                                                break\n                                            }\n                                            return i.prev = 2, i.next = 5, t.clashAxiosClient.put(\"/providers/rules/\".concat(encodeURIComponent(o)));\n                                        case 5:\n                                            s = i.sent, 204 === s.status ? (t.loadData(), (0, _.c0)(\"Success\", \"RULE-SET [\".concat(o, \"] has been updated!\"))) : (0, _.c0)(\"Failed\", \"RULE-SET [\".concat(o, \"] update failed(Server Error)!\")), i.next = 13;\n                                            break;\n                                        case 10:\n                                            i.prev = 10, i.t0 = i.catch(2), (0, _.c0)(\"Failed\", \"RULE-SET [\".concat(o, \"] \" + Lg.updateFailedNetErr()));\n                                        case 13:\n                                        case \"end\":\n                                            return i.stop()\n                                    }\n                                }), i, null, [\n                                    [2, 10]\n                                ])\n                            })))()\n                        },\n                        fromNow: function(e) {\n                            return p()(e).locale(Lg.locale()).fromNow()\n                        },\n                        providerOfPayload: function(e) {\n                            var t = this.providers[e];\n                            return t || null\n                        },\n                        moveItem: function(e, t, i) {\n                            this.removeItem(t, i), e ? this.memoryData.unshift(t) : this.memoryData.push(t), this.listData = this.memoryData.slice(0, 100)\n                        },\n                        randomBGC: function(e) {\n                            var t = U.find((function(t) {\n                                return t.type === e\n                            }));\n                            if (t) return {\n                                \"background-color\": \"rgb(\".concat(t.r, \",\").concat(t.g, \",\").concat(t.b, \")\")\n                            };\n                            var i = Math.floor(100 * Math.random() + 10),\n                                n = Math.floor(100 * Math.random() + 10),\n                                o = Math.floor(100 * Math.random() + 10);\n                            return U.push({\n                                type: e,\n                                r: i,\n                                g: n,\n                                b: o\n                            }), {\n                                \"background-color\": \"rgb(\".concat(i, \",\").concat(n, \",\").concat(o, \")\")\n                            }\n                        },\n                        inputDone: function(e) {\n                            this.showAlterModel = !1, e && (this.memoryData.unshift(e), this.listData.unshift(e))\n                        },\n                        handleFilterKeywordInput: j.debounce((function(e) {\n                            var t = e.target;\n                            if (t) {\n                                var i = t.value;\n                                this.filterKeywords = i, this.loadData()\n                            }\n                        }), 500),\n                        applyRules: function() {\n                            var e = this;\n                            const Lg = new Language(modifyState.language);\n                            return l()(u().mark((function t() {\n                                var i, n, o, s, r;\n                                return u().wrap((function(t) {\n                                    for (;;) switch (t.prev = t.next) {\n                                        case 0:\n                                            try {\n                                                i = (0, _.EP)(e.memoryData), n = i.map((function(e) {\n                                                    var t = e.type,\n                                                        i = e.payload,\n                                                        n = e.proxy,\n                                                        o = e.params,\n                                                        s = void 0 === o ? \"\" : o;\n                                                    return i ? \"\".concat(t, \",\").concat(i, \",\").concat(n).concat(s) : \"\".concat(t, \",\").concat(n)\n                                                })), o = E().join(e.profilesPath, e.profileName), s = D().readFileSync(o, \"utf8\"), (r = m().parse(s)).rules = n, D().writeFileSync(o, m().stringify(r)), e.$emit(\"done\"), e.saveBtnText = \"Done\"\n                                            } catch (t) {\n                                                e.$emit(\"error\"), e.saveBtnText = \"Fail\"\n                                            }\n                                            setTimeout((function() {\n                                                e.saveBtnText = Lg.save()\n                                            }), 3e3);\n                                        case 2:\n                                        case \"end\":\n                                            return t.stop()\n                                    }\n                                }), t)\n                            })))()\n                        },\n                        removeItem: function(e, t) {\n                            var i = this.memoryData.findIndex((function(t) {\n                                return t.payload === e.payload && t.proxy === e.proxy && t.type === e.type\n                            }));\n                            i > -1 && (this.memoryData.splice(i, 1), this.listData.splice(t, 1))\n                        },\n                        loadData: function() {\n                            var e = this;\n                            return l()(u().mark((function t() {\n                                var i, n, o, s, a, l, c, d, h, g, p, f;\n                                return u().wrap((function(t) {\n                                    for (;;) switch (t.prev = t.next) {\n                                        case 0:\n                                            return i = E().join(e.profilesPath, e.profileName), n = D().readFileSync(i, \"utf8\"), t.prev = 2, t.next = 5, Promise.all([e.clashAxiosClient.get(\"/rules\"), e.clashAxiosClient.get(\"/providers/rules\")]);\n                                        case 5:\n                                            o = t.sent, s = r()(o, 2), a = s[0].data, l = void 0 === a ? {} : a, c = s[1].data, d = (c = void 0 === c ? {} : c).providers, e.providers = d, h = l.rules, void 0 === h ? [] : h, g = m().parse(n), e.memoryData = g.rules.map((function(e) {\n                                                var t = e.split(\",\");\n                                                return 2 === t.length ? {\n                                                    type: t[0].trim(),\n                                                    payload: \"\",\n                                                    proxy: t[1].trim(),\n                                                    params: \"\"\n                                                } : 3 === t.length ? {\n                                                    payload: t[1].trim(),\n                                                    proxy: t[2].trim(),\n                                                    type: t[0].trim(),\n                                                    params: \"\"\n                                                } : 4 === t.length ? {\n                                                    payload: t[1].trim(),\n                                                    proxy: t[2].trim(),\n                                                    type: t[0].trim(),\n                                                    params: \",\".concat(t[3])\n                                                } : null\n                                            })).filter((function(e) {\n                                                return e\n                                            })), \"\" !== e.filterKeywords ? (p = e.filterKeywords.trim().split(/\\s+/).join(\"|\"), f = new RegExp(p, \"i\"), e.listData = e.memoryData.filter((function(e) {\n                                                return f.test(e.proxy) || f.test(e.payload) || f.test(e.type)\n                                            })).slice(0, 100)) : e.listData = e.memoryData.slice(0, 100), t.next = 21;\n                                            break;\n                                        case 19:\n                                            t.prev = 19, t.t0 = t.catch(2);\n                                        case 21:\n                                        case \"end\":\n                                            return t.stop()\n                                    }\n                                }), t, null, [\n                                    [2, 19]\n                                ])\n                            })))()\n                        }\n                    },\n                    mounted: function() {\n                        this.loadData()\n                    },\n                    destroyed: function() {}\n                };\n                i(91924), i(3930);\n                const K = (0, k.Z)($, (function() {\n                    var e = this,\n                        t = e._self._c;\n                    return t(\"div\", {\n                        attrs: {\n                            id: \"main-log-view\"\n                        }\n                    }, [t(\"div\", {\n                        staticClass: \"header\"\n                    }, [t(\"div\", {\n                        staticClass: \"title\"\n                    }, [e._v(Lg.topMatchRule() + \"(\" + e._s(e.memoryData.length) + \").\")]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"header-btns\"\n                    }, [t(\"div\", {\n                        staticClass: \"btn btn-add md-button\",\n                        on: {\n                            click: function(t) {\n                                e.showAlterModel = !0\n                            }\n                        }\n                    }, [e._v(\"\\n        \" + Lg.add() + \"\\n      \")]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"btn btn-save md-button\",\n                        on: {\n                            click: e.applyRules\n                        }\n                    }, [e._v(\"\\n        \" + e._s(e.saveBtnText) + \"\\n      \")]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"btn btn-back md-button\",\n                        on: {\n                            click: function(t) {\n                                return e.$emit(\"cancel\")\n                            }\n                        }\n                    }, [e._v(\"\\n        \" + Lg.cancel() + \"\\n      \")])])]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"filter-view\"\n                    }, [t(\"input\", {\n                        directives: [{\n                            name: \"model\",\n                            rawName: \"v-model\",\n                            value: e.filterKeywords,\n                            expression: \"filterKeywords\"\n                        }],\n                        attrs: {\n                            type: \"text\",\n                            placeholder: Lg.fiterByKeywords()\n                        },\n                        domProps: {\n                            value: e.filterKeywords\n                        },\n                        on: {\n                            input: [function(t) {\n                                t.target.composing || (e.filterKeywords = t.target.value)\n                            }, function(t) {\n                                return e.handleFilterKeywordInput(t)\n                            }]\n                        }\n                    })]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"log-list\"\n                    }, e._l(e.listData, (function(i, n) {\n                        return t(\"div\", {\n                            key: n,\n                            staticClass: \"log-item\",\n                            attrs: {\n                                title: i.payload\n                            },\n                            on: {\n                                click: function(t) {\n                                    return e.handleRuleClick(i)\n                                }\n                            }\n                        }, [t(\"div\", {\n                            staticClass: \"left\"\n                        }, [t(\"div\", {\n                            class: [\"url\", e.providerOfPayload(i.payload) ? \"rule-set\" : \"\"]\n                        }, [e._v(\"\\n          \" + e._s(i.payload) + \"\\n        \")]), e._v(\" \"), t(\"div\", {\n                            staticClass: \"rule\"\n                        }, [e._v(\"\\n          \" + e._s(i.type) + \"\\n          \"), e.providerOfPayload(i.payload) ? t(\"div\", [e._v(\"\\n            Rules: \" + e._s(e.providerOfPayload(i.payload).ruleCount) + \"\\n          \")]) : e._e(), e._v(\" \"), e.providerOfPayload(i.payload) ? t(\"div\", [e._v(\"\\n            Last Updated:\\n            \" + e._s(e.fromNow(e.providerOfPayload(i.payload).updatedAt)) + \"\\n          \")]) : e._e(), e._v(\" \"), e.providerOfPayload(i.payload) ? t(\"div\", [e._v(\"\\n            \" + e._s(e.providerOfPayload(i.payload).vehicleType) + \"\\n            \" + e._s(e.providerOfPayload(i.payload).behavior) + \"\\n          \")]) : e._e()])]), e._v(\" \"), t(\"div\", {\n                            staticClass: \"right-main\"\n                        }, [t(\"div\", {\n                            staticClass: \"right\",\n                            style: e.randomBGC(i.proxy)\n                        }, [e._v(\"\\n          \" + e._s(i.proxy) + \"\\n        \")]), e._v(\" \"), t(\"span\", {\n                            staticClass: \"icon ctl-icon\",\n                            on: {\n                                click: function(t) {\n                                    return t.stopPropagation(), e.moveItem(!0, i, n)\n                                }\n                            }\n                        }, [e._v(\"north\")]), e._v(\" \"), t(\"span\", {\n                            staticClass: \"icon ctl-icon\",\n                            on: {\n                                click: function(t) {\n                                    return t.stopPropagation(), e.moveItem(!1, i, n)\n                                }\n                            }\n                        }, [e._v(\"south\")]), e._v(\" \"), t(\"span\", {\n                            staticClass: \"icon ctl-icon\",\n                            on: {\n                                click: function(t) {\n                                    return t.stopPropagation(), e.removeItem(i, n)\n                                }\n                            }\n                        }, [e._v(\"delete\")])])])\n                    })), 0), e._v(\" \"), e.showAlterModel ? t(\"rule-alter-view\", {\n                        attrs: {\n                            \"profile-name\": e.profileName\n                        },\n                        on: {\n                            close: function(t) {\n                                e.showAlterModel = !1\n                            },\n                            done: e.inputDone\n                        }\n                    }) : e._e()], 1)\n                }), [], !1, null, \"459dde1e\", null).exports;\n                const q = require(\"qrcode\");\n                var Z = i.n(q),\n                    G = i(72298);\n                const Y = {\n                    name: \"QRCodeView\",\n                    components: {},\n                    props: {\n                        url: String\n                    },\n                    data: function() {\n                        return {\n                            src: \"\",\n                            isWithSheme: !0\n                        }\n                    },\n                    watch: {\n                        isWithSheme: function() {\n                            this.updateQrcode()\n                        }\n                    },\n                    computed: {\n                        finalURL: function() {\n                            return this.isWithSheme ? \"clash://install-config?url=\".concat(encodeURIComponent(this.url)) : this.url\n                        },\n                        shorternFinalURL: function() {\n                            return this.finalURL ? (0, _.XW)(this.finalURL, 120) : \"\"\n                        }\n                    },\n                    methods: {\n                        handleGoToURL: function() {\n                            (0, _.fl)(this.url)\n                        },\n                        updateQrcode: function() {\n                            var e = this;\n                            return l()(u().mark((function t() {\n                                return u().wrap((function(t) {\n                                    for (;;) switch (t.prev = t.next) {\n                                        case 0:\n                                            return t.prev = 0, t.next = 3, Z().toDataURL(e.finalURL);\n                                        case 3:\n                                            e.src = t.sent, t.next = 8;\n                                            break;\n                                        case 6:\n                                            t.prev = 6, t.t0 = t.catch(0);\n                                        case 8:\n                                        case \"end\":\n                                            return t.stop()\n                                    }\n                                }), t, null, [\n                                    [0, 6]\n                                ])\n                            })))()\n                        }\n                    },\n                    mounted: function() {\n                        this.updateQrcode()\n                    }\n                };\n                i(78518);\n                const Q = (0, k.Z)(Y, (function() {\n                    var e = this,\n                        t = e._self._c;\n                    return t(\"div\", {\n                        staticClass: \"qrcode-view-main\",\n                        on: {\n                            click: function(t) {\n                                return e.$emit(\"hide\")\n                            }\n                        }\n                    }, [t(\"div\", {\n                        staticClass: \"content\",\n                        on: {\n                            click: function(e) {\n                                e.stopPropagation()\n                            }\n                        }\n                    }, [t(\"img\", {\n                        attrs: {\n                            src: e.src,\n                            alt: \"\"\n                        }\n                    }), e._v(\" \"), t(\"div\", {\n                        staticClass: \"url\",\n                        on: {\n                            click: e.handleGoToURL\n                        }\n                    }, [e._v(\"\\n      \" + e._s(e.shorternFinalURL) + \"\\n    \")]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"btn\",\n                        on: {\n                            click: function(t) {\n                                e.isWithSheme = !e.isWithSheme\n                            }\n                        }\n                    }, [e._v(\"\\n      \" + e._s(e.isWithSheme ? Lg.delete() : Lg.include()) + \" \" + Lg.scheme() + \"\\n    \")])])])\n                }), [], !1, null, \"2c37fa0d\", null).exports;\n                var X = i(13338),\n                    J = i(1581),\n                    ee = i(71289);\n\n                function te(e, t) {\n                    var i = \"undefined\" != typeof Symbol && e[Symbol.iterator] || e[\"@@iterator\"];\n                    if (!i) {\n                        if (Array.isArray(e) || (i = function(e, t) {\n                                if (!e) return;\n                                if (\"string\" == typeof e) return ie(e, t);\n                                var i = Object.prototype.toString.call(e).slice(8, -1);\n                                \"Object\" === i && e.constructor && (i = e.constructor.name);\n                                if (\"Map\" === i || \"Set\" === i) return Array.from(e);\n                                if (\"Arguments\" === i || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)) return ie(e, t)\n                            }(e)) || t && e && \"number\" == typeof e.length) {\n                            i && (e = i);\n                            var n = 0,\n                                o = function() {};\n                            return {\n                                s: o,\n                                n: function() {\n                                    return n >= e.length ? {\n                                        done: !0\n                                    } : {\n                                        done: !1,\n                                        value: e[n++]\n                                    }\n                                },\n                                e: function(e) {\n                                    throw e\n                                },\n                                f: o\n                            }\n                        }\n                        throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")\n                    }\n                    var s, r = !0,\n                        a = !1;\n                    return {\n                        s: function() {\n                            i = i.call(e)\n                        },\n                        n: function() {\n                            var e = i.next();\n                            return r = e.done, e\n                        },\n                        e: function(e) {\n                            a = !0, s = e\n                        },\n                        f: function() {\n                            try {\n                                r || null == i.return || i.return()\n                            } finally {\n                                if (a) throw s\n                            }\n                        }\n                    }\n                }\n\n                function ie(e, t) {\n                    (null == t || t > e.length) && (t = e.length);\n                    for (var i = 0, n = new Array(t); i < t; i++) n[i] = e[i];\n                    return n\n                }\n\n                function ne(e, t) {\n                    var i = Object.keys(e);\n                    if (Object.getOwnPropertySymbols) {\n                        var n = Object.getOwnPropertySymbols(e);\n                        t && (n = n.filter((function(t) {\n                            return Object.getOwnPropertyDescriptor(e, t).enumerable\n                        }))), i.push.apply(i, n)\n                    }\n                    return i\n                }\n\n                function oe(e) {\n                    for (var t = 1; t < arguments.length; t++) {\n                        var i = null != arguments[t] ? arguments[t] : {};\n                        t % 2 ? ne(Object(i), !0).forEach((function(t) {\n                            d()(e, t, i[t])\n                        })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(i)) : ne(Object(i)).forEach((function(t) {\n                            Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(i, t))\n                        }))\n                    }\n                    return e\n                }\n                var se = i(57147),\n                    re = i(71017),\n                    ae = i(54387),\n                    le = i(24793),\n                    ce = ae.CancelToken,\n                    de = \"manual-stop\";\n                const he = {\n                        data: function() {\n                            return {\n                                btnType: 0,\n                                resultHint: Lg.downloadFromURL(),\n                                editProfileName: \"\",\n                                editProfileType: -1,\n                                fileWatcher: null,\n                                inputFocus: !1,\n                                subUrl: \"\",\n                                downlodingUrls: {},\n                                dragSelectedName: \"\",\n                                qrcodeURL: \"\",\n                                intervalID: null,\n                                now: p()(),\n                                loadingProfileIndex: []\n                            }\n                        },\n                        components: {\n                            draggable: y(),\n                            ConfigView: R,\n                            RuleView: K,\n                            QRCodeView: Q,\n                            Hint: X.Z\n                        },\n                        directives: {\n                            focus: {\n                                update: function(e, t) {\n                                    t.value && e.focus()\n                                }\n                            }\n                        },\n                        computed: oe(oe(oe({}, (0, b.mapState)({\n                            clashPath: function(e) {\n                                return e.app.clashPath\n                            },\n                            pfs: function(e) {\n                                return e.app.profiles\n                            },\n                            confData: function(e) {\n                                return e.app.confData\n                            },\n                            profilesPath: function(e) {\n                                return e.app.profilesPath\n                            }\n                        })), (0, b.mapGetters)([\"clashAxiosClient\"])), {}, {\n                            profiles: {\n                                get: function() {\n                                    var e = this.pfs.files;\n                                    return void 0 === e ? [] : e\n                                },\n                                set: function(e) {\n                                    this.changeProfiles({\n                                        profiles: e\n                                    })\n                                }\n                            },\n                            getBtnText: function() {\n                                return 3 === this.btnType ? Lg.downloading() : 1 === this.btnType ? Lg.error() + \"!\" : 2 === this.btnType ? Lg.success() + \"!\" : Lg.download()\n                            },\n                            getRightBtnText: function() {\n                                return Lg.directMode()\n                            },\n                            getRightBtnClass: function() {\n                                return {\n                                    confirm: !0,\n                                    \"confirm-right\": !0,\n                                    \"btn-error\": 1 === this.btnType,\n                                    \"btn-success\": 2 === this.btnType,\n                                    \"btn-loading\": 3 === this.btnType\n                                }\n                            },\n                            getBtnClass: function() {\n                                return {\n                                    confirm: !0,\n                                    \"confirm-left\": !0,\n                                    \"btn-error\": 1 === this.btnType,\n                                    \"btn-success\": 2 === this.btnType,\n                                    \"btn-loading\": 3 === this.btnType\n                                }\n                            }\n                        }),\n                        methods: oe(oe({}, (0, b.mapMutations)({\n                            changeProfiles: \"CHANGE_PROFILES\",\n                            changeProfilesIndex: \"CHANGE_PROFILES_INDEX\",\n                            changeProfile: \"CHANGE_PROFILE\",\n                            appendProfile: \"APPEND_PROFILE\",\n                            deleteProfile: \"DELETE_PROFILE\"\n                        })), {}, {\n                            handleOpenHomeWeb: function(e) {\n                                (0, _.fl)(e)\n                            },\n                            isProifleExpired: function(e) {\n                                var t = e.time,\n                                    i = e.interval;\n                                if (i > 0 && t) try {\n                                    var n = se.statSync(re.join(this.profilesPath, t)).mtime;\n                                    if (n) return p()(n).isBefore(p()().subtract(i, \"hours\"))\n                                } catch (e) {}\n                                return !1\n                            },\n                            parserHint: function(e) {\n                                var t = e.url,\n                                    i = e.reg;\n                                return t ? \"url (\".concat(t.slice(0, 8), \"...\").concat(t.slice(-20), \")\") : i ? \"reg (\".concat(i, \")\") : \"\"\n                            },\n                            matchingParserCount: function(e) {\n                                var t = this.settings.profileParsersText,\n                                    i = [];\n                                if (t) try {\n                                    var n = m().parse(t).parsers;\n                                    i = (void 0 === n ? [] : n) || []\n                                } catch (e) {}\n                                var o = e.url;\n                                return o ? i.filter((function(e) {\n                                    var t = e.url,\n                                        i = e.reg;\n                                    return t ? t === o : i ? new RegExp(i).test(o) : void 0\n                                })) : []\n                            },\n                            handleProfileRightClick: function(e, t, i) {\n                                var n = this;\n                                return l()(u().mark((function o() {\n                                    var s, r;\n                                    return u().wrap((function(o) {\n                                        for (;;) switch (o.prev = o.next) {\n                                            case 0:\n                                                3 === e.which && (s = t.url, r = \"\" === s, n.$menu([{\n                                                    icon: \"home\",\n                                                    text: Lg.openWebPage(),\n                                                    hide: !(null != t && t.homeWeb),\n                                                    click: function() {\n                                                        n.handleOpenHomeWeb(t.homeWeb)\n                                                    }\n                                                }, {\n                                                    icon: \"edit\",\n                                                    text: Lg.edit(),\n                                                    click: function() {\n                                                        n.openProfile(t)\n                                                    }\n                                                }, {\n                                                    icon: \"edit\",\n                                                    text: Lg.editExternally(),\n                                                    click: function() {\n                                                        n.openProfile(t, !0)\n                                                    }\n                                                }, {\n                                                    icon: \"refresh\",\n                                                    text: Lg.update(),\n                                                    hide: r,\n                                                    click: function() {\n                                                        n.refreshProfile(t)\n                                                    }\n                                                }, {\n                                                    text: Lg.showInFolder(),\n                                                    icon: \"folder\",\n                                                    click: function() {\n                                                        n.openProfileInFolder(t)\n                                                    }\n                                                }, {\n                                                    icon: \"merge_type\",\n                                                    text: \"Diff\",\n                                                    hide: r,\n                                                    click: function() {\n                                                        n.makeDiff(t)\n                                                    }\n                                                }, {\n                                                    icon: \"send\",\n                                                    text: Lg.proxies(),\n                                                    click: function() {\n                                                        n.editProfile(t)\n                                                    }\n                                                }, {\n                                                    icon: \"rule\",\n                                                    text: Lg.rule(),\n                                                    click: function() {\n                                                        n.editProfileRule(t)\n                                                    }\n                                                }, {\n                                                    icon: \"content_copy\",\n                                                    text: Lg.copy(),\n                                                    click: function() {\n                                                        n.handleCopyProfile(t)\n                                                    }\n                                                }, {\n                                                    icon: \"qr_code\",\n                                                    text: Lg.qrCode(),\n                                                    hide: r,\n                                                    click: function() {\n                                                        n.handleQrcodeOpen(t)\n                                                    }\n                                                }, {\n                                                    icon: \"account_tree\",\n                                                    text: Lg.parsers(),\n                                                    hide: r,\n                                                    click: function() {\n                                                        n.handleParserInfoShow(t)\n                                                    }\n                                                }, {\n                                                    icon: \"code\",\n                                                    text: Lg.runScript(),\n                                                    click: function() {\n                                                        n.handleRunScirpt(t)\n                                                    }\n                                                }, {\n                                                    icon: \"settings\",\n                                                    text: Lg.settings(),\n                                                    click: function() {\n                                                        n.handleEditItem(i)\n                                                    }\n                                                }, {\n                                                    icon: \"delete\",\n                                                    text: Lg.delete(),\n                                                    click: function() {\n                                                        n.handleDeleteProfile(i)\n                                                    }\n                                                }], e));\n                                            case 1:\n                                            case \"end\":\n                                                return o.stop()\n                                        }\n                                    }), o)\n                                })))()\n                            },\n                            openProfileInFolder: function(e) {\n                                G.shell.showItemInFolder(re.join(this.profilesPath, e.time))\n                            },\n                            handleUpdateAllProfiles: function() {\n                                var e, t = te(this.profiles);\n                                try {\n                                    for (t.s(); !(e = t.n()).done;) {\n                                        var i = e.value;\n                                        this.refreshProfile(i, {\n                                            ignoreSelectAfterUpdated: !0\n                                        })\n                                    }\n                                } catch (e) {\n                                    t.e(e)\n                                } finally {\n                                    t.f()\n                                }\n                            },\n                            handleParserInfoShow: function(e) {\n                                var t = this;\n                                return l()(u().mark((function i() {\n                                    var n, o, s, a, l, c, d, h, g;\n                                    return u().wrap((function(i) {\n                                        for (;;) switch (i.prev = i.next) {\n                                            case 0:\n                                                return n = t.matchingParserCount(e), o = n.map((function(e, i) {\n                                                    return \"\".concat(i + 1, \". \").concat(t.parserHint(e))\n                                                })).join(\"\\n\"), i.next = 4, t.$select({\n                                                    title: Lg.parsersStart().concat(n.length, Lg.parsersEnd()),\n                                                    message: \"\".concat(o),\n                                                    items: Lg.parsersOption()\n                                                });\n                                            case 4:\n                                                if (s = i.sent, a = r()(s, 1), 0 !== a[0]) {\n                                                    i.next = 22;\n                                                    break\n                                                }\n                                                return l = \"profileParsersText\", (c = t.settings[l]) || (c = \"parsers: # array\\n\"), i.prev = 11, i.next = 14, t.$code({\n                                                    code: c,\n                                                    language: \"yaml\",\n                                                    fontSize: t.settings.editorFontSize\n                                                });\n                                            case 14:\n                                                d = i.sent, h = d.code, g = void 0 === h ? \"\" : h, t.settings[l] = g, i.next = 22;\n                                                break;\n                                            case 20:\n                                                i.prev = 20, i.t0 = i.catch(11);\n                                            case 22:\n                                            case \"end\":\n                                                return i.stop()\n                                        }\n                                    }), i, null, [\n                                        [11, 20]\n                                    ])\n                                })))()\n                            },\n                            handleRunScirpt: function(e) {\n                                return l()(u().mark((function t() {\n                                    return u().wrap((function(t) {\n                                        for (;;) switch (t.prev = t.next) {\n                                            case 0:\n                                                (0, J.TX)((0, _.EP)(e), J.lJ);\n                                            case 1:\n                                            case \"end\":\n                                                return t.stop()\n                                        }\n                                    }), t)\n                                })))()\n                            },\n                            handleQrcodeOpen: function(e) {\n                                var t = e.url;\n                                t && (this.qrcodeURL = t)\n                            },\n                            handleDragStart: function() {\n                                var e = this.pfs.index;\n                                (void 0 === e ? -1 : e) < 0 || (this.dragSelectedName = this.pfs.files[this.pfs.index].time)\n                            },\n                            handleDragEnd: function() {\n                                var e = this;\n                                if (\"\" !== this.dragSelectedName) {\n                                    var t = this.pfs.files.findIndex((function(t) {\n                                        return t.time === e.dragSelectedName\n                                    }));\n                                    this.changeProfilesIndex({\n                                        index: t\n                                    })\n                                }\n                            },\n                            handleCopyProfile: function(e) {\n                                var t = this;\n                                const Lg = new Language(modifyState.language);\n                                return l()(u().mark((function i() {\n                                    var n, o, s, r;\n                                    return u().wrap((function(i) {\n                                        for (;;) switch (i.prev = i.next) {\n                                            case 0:\n                                                return n = [{\n                                                    name: Lg.name(),\n                                                    key: \"filename\",\n                                                    placeholder: Lg.inputNewFileName(),\n                                                    required: !0\n                                                }], i.prev = 1, i.next = 4, t.$input({\n                                                    title: Lg.duplicateProfile(),\n                                                    data: n\n                                                });\n                                            case 4:\n                                                o = i.sent, s = o.filename, r = void 0 === s ? \"\" : s, t.localCopy(r, re.join(t.profilesPath, e.time)), i.next = 12;\n                                                break;\n                                            case 10:\n                                                i.prev = 10, i.t0 = i.catch(1);\n                                            case 12:\n                                            case \"end\":\n                                                return i.stop()\n                                        }\n                                    }), i, null, [\n                                        [1, 10]\n                                    ])\n                                })))()\n                            },\n                            handleEditItem: function(e) {\n                                var t = this;\n                                const Lg = new Language(modifyState.language);\n                                return l()(u().mark((function i() {\n                                    var n, o, s, r, a, l, c, d, h, g, p, f, m, v, _, b, w;\n                                    return u().wrap((function(i) {\n                                        for (;;) switch (i.prev = i.next) {\n                                            case 0:\n                                                return n = oe({}, t.pfs.files[e]), Lg.editProfileInformation(), o = n.interval, s = void 0 === o ? 0 : o, r = n.cron, a = void 0 === r ? \"\" : r, l = [{\n                                                    key: \"name\",\n                                                    name: Lg.name(),\n                                                    required: !0,\n                                                    value: n.name\n                                                }, {\n                                                    key: \"url\",\n                                                    name: \"URL\",\n                                                    value: n.url\n                                                }, {\n                                                    key: \"headers\",\n                                                    name: Lg.headers(),\n                                                    value: n.headers,\n                                                    placeholder: \"key1:value1\\nkey2:value2\"\n                                                }, {\n                                                    key: \"interval\",\n                                                    name: Lg.updateInterval(),\n                                                    validate: function(e) {\n                                                        return /^\\d+$/.test(e) ? \"\" : Lg.updateIntervalMustBeInteger()\n                                                    },\n                                                    value: s\n                                                }, {\n                                                    key: \"cron\",\n                                                    name: Lg.updateCron() + \"Cron (UNIX)\",\n                                                    value: a,\n                                                    placeholder: \"0 0 * * *\"\n                                                }], i.prev = 4, i.next = 7, t.$input({\n                                                    title: Lg.editProfileInformation(),\n                                                    data: l\n                                                });\n                                            case 7:\n                                                c = i.sent, d = c.name, h = void 0 === d ? \"\" : d, g = c.url, p = void 0 === g ? \"\" : g, f = c.interval, m = void 0 === f ? 0 : f, v = c.cron, _ = void 0 === v ? \"\" : v, b = c.headers, w = void 0 === b ? \"\" : b, n.name = h, n.url = p, n.interval = 1 * m, n.cron = _, n.headers = w, t.changeProfile({\n                                                    index: e,\n                                                    profile: n\n                                                }), i.next = 28;\n                                                break;\n                                            case 26:\n                                                i.prev = 26, i.t0 = i.catch(4);\n                                            case 28:\n                                            case \"end\":\n                                                return i.stop()\n                                        }\n                                    }), i, null, [\n                                        [4, 26]\n                                    ])\n                                })))()\n                            },\n                            listItemClassNames: function(e) {\n                                var t = [\"list-item\"];\n                                \"\" === this.pfs.files[e].url && t.push(\"item-local\");\n                                var i = this.pfs.index;\n                                return e === (void 0 === i ? -1 : i) && t.push(\"item-cur\"), t\n                            },\n                            handleURLConfirm: function(e) {\n                                var t = this;\n                                return l()(u().mark((function i() {\n                                    return u().wrap((function(i) {\n                                        for (;;) switch (i.prev = i.next) {\n                                            case 0:\n                                                if (13 !== e.keyCode) {\n                                                    i.next = 3;\n                                                    break\n                                                }\n                                                return i.next = 3, t.handleDownload();\n                                            case 3:\n                                            case \"end\":\n                                                return i.stop()\n                                        }\n                                    }), i)\n                                })))()\n                            },\n                            handleDownload: function() {\n                                var e = this;\n                                return l()(u().mark((function t() {\n                                    return u().wrap((function(t) {\n                                        for (;;) switch (t.prev = t.next) {\n                                            case 0:\n                                                if (\"\" !== e.subUrl) {\n                                                    t.next = 2;\n                                                    break\n                                                }\n                                                return t.abrupt(\"return\");\n                                            case 2:\n                                                if (3 !== e.btnType) {\n                                                    t.next = 4;\n                                                    break\n                                                }\n                                                return t.abrupt(\"return\");\n                                            case 4:\n                                                return t.prev = 4, e.btnType = 3, t.next = 8, e.updateConfig({\n                                                    url: e.subUrl,\n                                                    selectAfterUpdated: !0\n                                                });\n                                            case 8:\n                                                t.sent ? (e.subUrl = \"\", e.btnType = 2) : e.btnType = 1, t.next = 15;\n                                                break;\n                                            case 12:\n                                                t.prev = 12, t.t0 = t.catch(4), e.btnType = 1;\n                                            case 15:\n                                                setTimeout((function() {\n                                                    e.btnType = 0\n                                                }), 3e3);\n                                            case 16:\n                                            case \"end\":\n                                                return t.stop()\n                                        }\n                                    }), t, null, [\n                                        [4, 12]\n                                    ])\n                                })))()\n                            },\n                            handleImport: function() {\n                                var e = this;\n                                return l()(u().mark((function t() {\n                                    var i, n;\n                                    return u().wrap((function(t) {\n                                        for (;;) switch (t.prev = t.next) {\n                                            case 0:\n                                                return t.next = 2, G.ipcRenderer.invoke(\"dialog\", \"showOpenDialogSync\", {\n                                                    properties: [\"openFile\"]\n                                                });\n                                            case 2:\n                                                (i = t.sent) && i.length > 0 && (n = i[0], e.localCopy(re.basename(n), re.resolve(n)));\n                                            case 4:\n                                            case \"end\":\n                                                return t.stop()\n                                        }\n                                    }), t)\n                                })))()\n                            },\n                            dropProfile: function(e) {\n                                e.preventDefault(), e.stopPropagation();\n                                var t, i = te(e.dataTransfer.files);\n                                try {\n                                    for (i.s(); !(t = i.n()).done;) {\n                                        var n = t.value;\n                                        this.localCopy(re.basename(n.path), re.resolve(n.path))\n                                    }\n                                } catch (e) {\n                                    i.e(e)\n                                } finally {\n                                    i.f()\n                                }\n                            },\n                            dragOverProfile: function(e) {\n                                e.preventDefault(), e.stopPropagation()\n                            },\n                            editDone: function() {\n                                var e = this,\n                                    t = this.pfs.files.findIndex((function(t) {\n                                        return t.time === e.editProfileName\n                                    }));\n                                t === this.pfs.index && this.switchProfile(t), this.editProfileName = \"\", this.editProfileType = -1\n                            },\n                            localCopy: function(e) {\n                                var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : \"\";\n                                if (\"\" !== e) {\n                                    var i = (new Date).getTime() + \".yml\",\n                                        n = oe({}, this.pfs),\n                                        o = n.files.findIndex((function(t) {\n                                            return t.name === e && \"\" === t.url\n                                        }));\n                                    if (o > -1 && o < n.files.length) this.$alert({\n                                        content: Lg.localFileAlreadyExist(),\n                                        title: Lg.error()\n                                    });\n                                    else {\n                                        var s = {\n                                            url: \"\",\n                                            time: i,\n                                            name: e,\n                                            selected: []\n                                        };\n                                        this.appendProfile({\n                                            profile: s\n                                        });\n                                        var r = re.join(this.clashPath, \"config.yaml\"),\n                                            a = n.files,\n                                            l = n.index,\n                                            c = void 0 === l ? -1 : l;\n                                        if (c >= 0 && c < a.length) {\n                                            var d = re.join(this.profilesPath, a[c].time);\n                                            se.existsSync(d) && (r = d)\n                                        }\n                                        \"\" !== t && (r = t), se.copyFileSync(r, re.join(this.profilesPath, i))\n                                    }\n                                }\n                            },\n                            handleDeleteProfile: function(e) {\n                                var t = this;\n                                return l()(u().mark((function i() {\n                                    var n, o, s, r, a, l, c, d, h, g, p, f, m;\n                                    return u().wrap((function(i) {\n                                        const Lg = new Language(modifyState.language);\n                                        for (;;) switch (i.prev = i.next) {\n                                            case 0:\n                                                return n = t.pfs.files[e], o = n.name, n.url, i.next = 3, (0, _.vC)({\n                                                    type: \"warning\",\n                                                    message: Lg.askDelete() + '\"'.concat(o, '\"?'),\n                                                    buttons: [Lg.no(), Lg.yes()]\n                                                });\n                                            case 3:\n                                                if (s = i.sent, 1 === s.response) {\n                                                    try {\n                                                        for (r = t.pfs.files, a = (void 0 === r ? [] : r)[e].time, l = a.slice(0, -4) + \".base.yml\", c = a.slice(0, -4) + \".change.yml\", d = 0, h = [a, l, c]; d < h.length; d++) g = h[d], p = re.join(t.profilesPath, g), se.existsSync(p) && se.unlinkSync(p)\n                                                    } catch (e) {}\n                                                    t.deleteProfile({\n                                                        index: e\n                                                    }), f = t.pfs.index, e === (m = void 0 === f ? -1 : f) ? t.changeProfilesIndex({\n                                                        index: -1\n                                                    }) : e < m && t.changeProfilesIndex({\n                                                        index: m - 1\n                                                    })\n                                                }\n                                                case 6:\n                                                case \"end\":\n                                                    return i.stop()\n                                        }\n                                    }), i)\n                                })))()\n                            },\n                            openProfile: function(e) {\n                                var t = arguments,\n                                    i = this;\n                                return l()(u().mark((function n() {\n                                    var o, s, r, a, l;\n                                    return u().wrap((function(n) {\n                                        for (;;) switch (n.prev = n.next) {\n                                            case 0:\n                                                if (o = t.length > 1 && void 0 !== t[1] && t[1], s = re.join(i.profilesPath, e.time), o) {\n                                                    n.next = 16;\n                                                    break\n                                                }\n                                                return n.prev = 3, n.next = 6, i.$code({\n                                                    code: se.readFileSync(s).toString(),\n                                                    fontSize: i.settings.editorFontSize\n                                                });\n                                            case 6:\n                                                r = n.sent, a = r.code, l = void 0 === a ? \"\" : a, se.writeFileSync(s, l), n.next = 14;\n                                                break;\n                                            case 12:\n                                                n.prev = 12, n.t0 = n.catch(3);\n                                            case 14:\n                                                n.next = 17;\n                                                break;\n                                            case 16:\n                                                G.shell.openPath(s);\n                                            case 17:\n                                            case \"end\":\n                                                return n.stop()\n                                        }\n                                    }), n, null, [\n                                        [3, 12]\n                                    ])\n                                })))()\n                            },\n                            handleProfileClick: function(e) {\n                                var t = this;\n                                return l()(u().mark((function i() {\n                                    return u().wrap((function(i) {\n                                        for (;;) switch (i.prev = i.next) {\n                                            case 0:\n                                                return t.loadingProfileIndex = [].concat(o()(t.loadingProfileIndex), [e]), i.prev = 1, i.next = 4, t.switchProfile(e);\n                                            case 4:\n                                                i.next = 8;\n                                                break;\n                                            case 6:\n                                                i.prev = 6, i.t0 = i.catch(1);\n                                            case 8:\n                                                t.loadingProfileIndex = t.loadingProfileIndex.filter((function(t) {\n                                                    return t !== e\n                                                }));\n                                            case 9:\n                                            case \"end\":\n                                                return i.stop()\n                                        }\n                                    }), i, null, [\n                                        [1, 6]\n                                    ])\n                                })))()\n                            },\n                            switchProfile: function(e) {\n                                var t = this;\n                                return l()(u().mark((function i() {\n                                    var n, o, s, r, a, l, c;\n                                    return u().wrap((function(i) {\n                                        for (;;) switch (i.prev = i.next) {\n                                            case 0:\n                                                if (-1 !== e) {\n                                                    i.next = 2;\n                                                    break\n                                                }\n                                                return i.abrupt(\"return\");\n                                            case 2:\n                                                return n = t.pfs.index, t.changeProfilesIndex({\n                                                    index: e\n                                                }), i.next = 6, t.$parent.refreshProfile();\n                                            case 6:\n                                                if (o = i.sent, s = o.success, r = o.message, s) {\n                                                    i.next = 18;\n                                                    break\n                                                }\n                                                return i.next = 12, (0, _.vC)({\n                                                    type: \"error\",\n                                                    message: Lg.couldNotSwitchProfile(),\n                                                    detail: r || \"\",\n                                                    buttons: Lg.editInTextMode()\n                                                });\n                                            case 12:\n                                                a = i.sent, 1 === a.response && t.openProfile(t.pfs.files[e]), t.changeProfilesIndex({\n                                                    index: -1\n                                                }), i.next = 22;\n                                                break;\n                                            case 18:\n                                                if (l = t.settings.connProfile, c = void 0 !== l && l, e === n || !c) {\n                                                    i.next = 22;\n                                                    break\n                                                }\n                                                return i.next = 22, t.clashAxiosClient.delete(\"connections\");\n                                            case 22:\n                                            case \"end\":\n                                                return i.stop()\n                                        }\n                                    }), i)\n                                })))()\n                            },\n                            refreshProfile: function(e) {\n                                var t = arguments,\n                                    i = this;\n                                return l()(u().mark((function n() {\n                                    var o, s, r, a, l, c, h, g, p, f;\n                                    return u().wrap((function(n) {\n                                        for (;;) switch (n.prev = n.next) {\n                                            case 0:\n                                                if (o = (t.length > 1 && void 0 !== t[1] ? t[1] : {}).ignoreSelectAfterUpdated, s = void 0 !== o && o, r = e.url, a = void 0 === r ? \"\" : r, l = e.headers, c = void 0 === l ? \"\" : l, \"\" !== a) {\n                                                    n.next = 4;\n                                                    break\n                                                }\n                                                return n.abrupt(\"return\");\n                                            case 4:\n                                                if (!(h = i.downlodingUrls[a])) {\n                                                    n.next = 9;\n                                                    break\n                                                }\n                                                return h(de), i.$delete(i.downlodingUrls, a), n.abrupt(\"return\");\n                                            case 9:\n                                                return n.prev = 9, g = new ce((function(e) {\n                                                    i.downlodingUrls = oe(oe({}, i.downlodingUrls), {}, d()({}, a, e))\n                                                })), p = i.settings.selectAfterUpdated, f = void 0 !== p && p, n.next = 14, i.updateConfig({\n                                                    url: a,\n                                                    cancelToken: g,\n                                                    selectAfterUpdated: !s && f,\n                                                    headers: c\n                                                });\n                                            case 14:\n                                                n.next = 18;\n                                                break;\n                                            case 16:\n                                                n.prev = 16, n.t0 = n.catch(9);\n                                            case 18:\n                                                return n.prev = 18, i.$delete(i.downlodingUrls, a), n.finish(18);\n                                            case 21:\n                                            case \"end\":\n                                                return n.stop()\n                                        }\n                                    }), n, null, [\n                                        [9, 16, 18, 21]\n                                    ])\n                                })))()\n                            },\n                            editProfile: function(e) {\n                                this.editProfileName = e.time, this.editProfileType = 0\n                            },\n                            editProfileRule: function(e) {\n                                this.editProfileName = e.time, this.editProfileType = 1\n                            },\n                            parseDomain: function(e) {\n                                var t = \"local file\";\n                                try {\n                                    var i = new URL(e),\n                                        n = i.host;\n                                    return \"file:\" === i.protocol ? t : n || \"empty host\"\n                                } catch (e) {}\n                                return t\n                            },\n                            parseTime: function(e) {\n                                var t = e.time;\n                                try {\n                                    var i = se.statSync(re.join(this.profilesPath, t)).mtime;\n                                    return p()(i).locale(Lg.locale()).from(this.now)\n                                } catch (e) {\n                                    return \"missing file\"\n                                }\n                            },\n                            updateConfig: function(e) {\n                                var t = this;\n                                return l()(u().mark((function i() {\n                                    var n, o, s, r, a, l, c, d, h, g, p;\n                                    return u().wrap((function(i) {\n                                        for (;;) switch (i.prev = i.next) {\n                                            case 0:\n                                                return n = e.url, o = e.headers, s = void 0 === o ? \"\" : o, r = e.cancelToken, a = void 0 === r ? null : r, l = e.selectAfterUpdated, c = void 0 !== l && l, i.next = 3, (0, v.rF)({\n                                                    url: n,\n                                                    cancelToken: a,\n                                                    headersString: s\n                                                }).catch((function(e) {}));\n                                            case 3:\n                                                if (d = i.sent, h = d.success, g = d.message, p = d.targetIndex, !h) {\n                                                    i.next = 13;\n                                                    break\n                                                }\n                                                if (!c) {\n                                                    i.next = 11;\n                                                    break\n                                                }\n                                                return i.next = 11, t.switchProfile(p).catch((function(e) {}));\n                                            case 11:\n                                                i.next = 14;\n                                                break;\n                                            case 13:\n                                                g.endsWith(de) || t.$alert({\n                                                    content: g\n                                                });\n                                            case 14:\n                                                return i.abrupt(\"return\", h);\n                                            case 15:\n                                            case \"end\":\n                                                return i.stop()\n                                        }\n                                    }), i)\n                                })))()\n                            },\n                            subInfoArr: function(e) {\n                                var t = e.upload,\n                                    i = void 0 === t ? 0 : t,\n                                    n = e.download,\n                                    o = void 0 === n ? 0 : n,\n                                    s = e.total,\n                                    r = void 0 === s ? 0 : s,\n                                    a = e.expire,\n                                    l = void 0 === a ? 0 : a;\n                                if (i >= 0 && o >= 0 && r > 0) {\n                                    var c = [(0, _.nM)(i + o, 1, !1), (0, _.nM)(r, 1, !1)];\n                                    return l ? [].concat(c, [p()(1e3 * l).format(\"YYYY-MM-DD\")]) : c\n                                }\n                                return \"\"\n                            },\n                            subInfoPercent: function(e) {\n                                var t = e.upload,\n                                    i = void 0 === t ? 0 : t,\n                                    n = e.download,\n                                    o = void 0 === n ? 0 : n,\n                                    s = e.total,\n                                    r = void 0 === s ? 0 : s;\n                                if (i >= 0 && o >= 0 && r > 0) {\n                                    var a = (i + o) / r * 100;\n                                    return {\n                                        \"clip-path\": \"inset(0 \".concat(a <= 100 ? 100 - a : 0, \"% 0 0)\")\n                                    }\n                                }\n                                return {\n                                    \"clip-path\": \"inset(0 100% 0 0)\"\n                                }\n                            },\n                            pasteURL: function() {\n                                this.inputFocus = !1, this.subUrl = G.clipboard.readText(), this.inputFocus = !0\n                            },\n                            makeDiff: function(e) {\n                                var t = this;\n                                return l()(u().mark((function i() {\n                                    var n, o, s, a, c, d, h, g, p, f, m, v;\n                                    return u().wrap((function(i) {\n                                        const Lg = new Language(modifyState.language);\n                                        for (;;) switch (i.prev = i.next) {\n                                            case 0:\n                                                return n = e.time, o = se.readFileSync(re.join(t.profilesPath, n), \"utf8\").toString(), s = re.join(t.profilesPath, n.slice(0, -4) + \".base.yml\"), a = re.join(t.profilesPath, n.slice(0, -4) + \".change.yml\"), c = se.existsSync(s) && se.existsSync(a), d = c ? Lg.makeChangesAndDelete() : [Lg.initDiffFiles()], h = c ? [{}, {\n                                                    color: \"mc\"\n                                                }] : [], i.next = 9, t.$select({\n                                                    title: \"Diff\",\n                                                    html: Lg.diffDescribe() + ' <a href=\"https://web.archive.org/web/20230304232259/docs.cfw.lbyczf.com/contents/diff.html\">' + Lg.docs() + '</a>',\n                                                    items: d,\n                                                    itemStyles: h\n                                                });\n                                            case 9:\n                                                if (g = i.sent, p = r()(g, 1), f = p[0], m = function() {\n                                                        var i = l()(u().mark((function i() {\n                                                            var n, o, r, l;\n                                                            return u().wrap((function(i) {\n                                                                for (;;) switch (i.prev = i.next) {\n                                                                    case 0:\n                                                                        return n = se.readFileSync(s, \"utf8\").toString(), o = se.readFileSync(a, \"utf8\").toString(), i.next = 4, t.$diff({\n                                                                            base: n,\n                                                                            change: o\n                                                                        });\n                                                                    case 4:\n                                                                        return r = i.sent, se.writeFileSync(a, r), i.next = 8, (0, _.vC)({\n                                                                            message: Lg.requestRefresh(),\n                                                                            buttons: Lg.requestRefreshOption(),\n                                                                            defaultId: 0\n                                                                        });\n                                                                    case 8:\n                                                                        l = i.sent, 0 === l.response && t.refreshProfile(e, {\n                                                                            ignoreSelectAfterUpdated: !0\n                                                                        });\n                                                                    case 11:\n                                                                    case \"end\":\n                                                                        return i.stop()\n                                                                }\n                                                            }), i)\n                                                        })));\n                                                        return function() {\n                                                            return i.apply(this, arguments)\n                                                        }\n                                                    }(), !c) {\n                                                    i.next = 26;\n                                                    break\n                                                }\n                                                if (0 !== f) {\n                                                    i.next = 18;\n                                                    break\n                                                }\n                                                m(), i.next = 24;\n                                                break;\n                                            case 18:\n                                                if (1 !== f) {\n                                                    i.next = 24;\n                                                    break\n                                                }\n                                                return i.next = 21, (0, _.vC)({\n                                                    type: \"warning\",\n                                                    message: Lg.askDelete() + Lg.diffFiles() + \"?\",\n                                                    buttons: [Lg.no(), Lg.yes()]\n                                                });\n                                            case 21:\n                                                v = i.sent, 1 === v.response && (se.unlinkSync(s), se.unlinkSync(a));\n                                            case 24:\n                                                i.next = 29;\n                                                break;\n                                            case 26:\n                                                se.writeFileSync(s, o), se.writeFileSync(a, o), m();\n                                            case 29:\n                                            case \"end\":\n                                                return i.stop()\n                                        }\n                                    }), i)\n                                })))()\n                            },\n                            setupWatcher: function() {\n                                var e = this,\n                                    t = le.debounce((function(t, i) {\n                                        if (/^\\d+(?:\\.yml)$/.test(i)) {\n                                            var n = e.pfs.files.findIndex((function(e) {\n                                                return e.time === i\n                                            }));\n                                            n > -1 && n === e.pfs.index && e.switchProfile(n)\n                                        }\n                                    }), 0);\n                                this.fileWatcher = se.watch(re.join(this.profilesPath), {}, t)\n                            },\n                            removeWatcher: function() {\n                                this.fileWatcher && this.fileWatcher.close()\n                            }\n                        }),\n                        beforeRouteEnter: function(e, t, i) {\n                            var n;\n                            i((n = l()(u().mark((function e(t) {\n                                var i;\n                                return u().wrap((function(e) {\n                                    for (;;) switch (e.prev = e.next) {\n                                        case 0:\n                                            if (t.now = p()(), t.intervalID = ee.ZP.add((function() {\n                                                    t.now = p()()\n                                                }), 6e4), t.setupWatcher(), 0 !== (null === (i = t.pfs.files) || void 0 === i ? void 0 : i.length)) {\n                                                e.next = 7;\n                                                break\n                                            }\n                                            return t.localCopy(\"config.yaml\"), e.next = 7, t.switchProfile(0);\n                                        case 7:\n                                        case \"end\":\n                                            return e.stop()\n                                    }\n                                }), e)\n                            }))), function(e) {\n                                return n.apply(this, arguments)\n                            }))\n                        },\n                        beforeRouteLeave: function(e, t, i) {\n                            for (var n in this.intervalID && ee.ZP.stop(this.intervalID), this.removeWatcher(), this.downlodingUrls) {\n                                (0, this.downlodingUrls[n])(de)\n                            }\n                            i()\n                        }\n                    },\n                    ue = he;\n                i(28318), i(51734);\n                const ge = (0, k.Z)(ue, (function() {\n                    var e = this,\n                        t = e._self._c;\n                    return t(\"div\", {\n                        attrs: {\n                            id: \"main-server-view\"\n                        },\n                        on: {\n                            drop: e.dropProfile,\n                            dragover: e.dragOverProfile\n                        }\n                    }, [e.editProfileName && 0 === e.editProfileType ? t(\"config-view\", {\n                        attrs: {\n                            \"clash-path\": e.clashPath,\n                            \"profile-name\": e.editProfileName\n                        },\n                        on: {\n                            cancel: function(t) {\n                                e.editProfileName = \"\", e.editProfileType = -1\n                            },\n                            done: e.editDone,\n                            error: function(t) {\n                                e.editProfileName = \"\", e.editProfileType = -1\n                            }\n                        }\n                    }) : e.editProfileName && 1 === e.editProfileType ? t(\"rule-view\", {\n                        attrs: {\n                            \"clash-path\": e.clashPath,\n                            \"profile-name\": e.editProfileName\n                        },\n                        on: {\n                            cancel: function(t) {\n                                e.editProfileName = \"\", e.editProfileType = -1\n                            },\n                            done: e.editDone,\n                            error: function(t) {\n                                e.editProfileName = \"\", e.editProfileType = -1\n                            }\n                        }\n                    }) : t(\"div\", {\n                        staticClass: \"main\"\n                    }, [t(\"div\", {\n                        class: [\"card\", \"remote-view\"]\n                    }, [t(\"div\", {\n                        staticClass: \"input-container\"\n                    }, [t(\"input\", {\n                        directives: [{\n                            name: \"focus\",\n                            rawName: \"v-focus\",\n                            value: e.inputFocus,\n                            expression: \"inputFocus\"\n                        }, {\n                            name: \"model\",\n                            rawName: \"v-model\",\n                            value: e.subUrl,\n                            expression: \"subUrl\"\n                        }],\n                        attrs: {\n                            spellcheck: \"false\",\n                            type: \"text\",\n                            placeholder: Lg.downloadFromURL()\n                        },\n                        domProps: {\n                            value: e.subUrl\n                        },\n                        on: {\n                            keydown: e.handleURLConfirm,\n                            input: function(t) {\n                                t.target.composing || (e.subUrl = t.target.value)\n                            }\n                        }\n                    }), e._v(\" \"), \"\" !== e.subUrl ? t(\"span\", {\n                        staticClass: \"icon text-[color:var(--fgc)] opacity-50 clear-icon clickable\",\n                        on: {\n                            click: function(t) {\n                                e.subUrl = \"\"\n                            }\n                        }\n                    }, [e._v(\"backspace\")]) : t(\"span\", {\n                        staticClass: \"icon clear-icon clickable text-[color:var(--fgc)] opacity-50\",\n                        on: {\n                            click: e.pasteURL\n                        }\n                    }, [e._v(\"content_copy\")])]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"btns-container\"\n                    }, [t(\"div\", {\n                        class: e.getBtnClass,\n                        on: {\n                            click: e.handleDownload\n                        }\n                    }, [e._v(\"\\n          \" + e._s(e.getBtnText) + \"\\n        \")]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"confirm confirm-right update-all-btn\",\n                        on: {\n                            click: e.handleUpdateAllProfiles\n                        }\n                    }, [e._v(\"\\n          \" + Lg.updateAll() + \"\\n        \")]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"confirm confirm-right\",\n                        on: {\n                            click: e.handleImport\n                        }\n                    }, [e._v(Lg.import())])])]), e._v(\" \"), t(\"draggable\", {\n                        ref: \"mixin-scroll-content\",\n                        staticClass: \"list-view\",\n                        attrs: {\n                            delay: 300,\n                            animation: 200,\n                            \"delay-on-touch-only\": !0\n                        },\n                        on: {\n                            start: e.handleDragStart,\n                            end: e.handleDragEnd\n                        },\n                        model: {\n                            value: e.profiles,\n                            callback: function(t) {\n                                e.profiles = t\n                            },\n                            expression: \"profiles\"\n                        }\n                    }, [e._l(e.profiles, (function(i, n) {\n                        const updatedTimeCN = \"\\n                (\" + e._s(e.parseTime(i)) + \")\\n              \";\n                        const updatedTimeEN = updatedTimeCN.replace(/前/g, \" ago\").replace(/几秒/g, \"seconds\").replace(/秒/g, \"seconds\").replace(/分钟/g, \"minutes\").replace(/小时/g, \"hours\").replace(/天/g, \"days\").replace(/个月/g, \"month\").replace(/年/g, \"years\");\n                        const updatedTime = modifyState.language === 0 ? updatedTimeCN : updatedTimeEN;\n                        return t(\"div\", {\n                            key: n,\n                            class: [\"list-item\", n === e.pfs.index ? \"item-cur\" : \"\"],\n                            on: {\n                                click: function(t) {\n                                    return e.handleProfileClick(n)\n                                },\n                                contextmenu: function(t) {\n                                    return e.handleProfileRightClick(t, i, n)\n                                }\n                            }\n                        }, [t(\"div\", {\n                            staticClass: \"indicator relative overflow-clip\"\n                        }, [n === e.pfs.index ? [t(\"transition\", {\n                            attrs: {\n                                name: \"expand\"\n                            }\n                        }, [e.loadingProfileIndex.includes(n) ? e._e() : t(\"div\", {\n                            staticClass: \"absolute bg-[color:var(--proxy-item-selected-border-c)] w-full h-full\"\n                        })]), e._v(\" \"), t(\"div\", {\n                            staticClass: \"bg-[color:var(--proxy-item-selected-border-c)] absolute w-full h-3/5 rounded-[10px] animate-cycle\"\n                        })] : e._e()], 2), e._v(\" \"), t(\"div\", {\n                            staticClass: \"item-info\"\n                        }, [t(\"div\", {\n                            staticClass: \"item-name\"\n                        }, [t(\"div\", {\n                            staticClass: \"item-name-top\"\n                        }, [t(\"div\", {\n                            attrs: {\n                                title: i.name\n                            }\n                        }, [e._v(e._s(i.name))])]), e._v(\" \"), t(\"div\", {\n                            staticClass: \"item-name-bottom flex gap-1 w-full\",\n                            attrs: {\n                                title: i.url\n                            }\n                        }, [t(\"span\", {\n                            staticClass: \"overflow-hidden text-ellipsis\"\n                        }, [e._v(e._s(e.parseDomain(i.url)))]), e._v(\" \"), t(\"span\", {\n                            staticClass: \"flex-shrink\",\n                            class: {\n                                \"item-time\": !0, \"item-expired\": e.isProifleExpired(i)\n                            }\n                        }, [e._v(updatedTime)])]), e._v(\" \"), e.subInfoArr(i.subInfo || {}) ? t(\"div\", {\n                            staticClass: \"item-subinfo\"\n                        }, [t(\"div\", {\n                            staticClass: \"item-subinfo-texts\"\n                        }, e._l(e.subInfoArr(i.subInfo || {}), (function(i, n) {\n                            return t(\"div\", {\n                                key: n\n                            }, [e._v(\"\\n                  \" + e._s(i) + \"\\n                \")])\n                        })), 0), e._v(\" \"), t(\"div\", {\n                            staticClass: \"progress\"\n                        }, [t(\"div\", {\n                            staticClass: \"percent\",\n                            style: e.subInfoPercent(i.subInfo || {})\n                        })])]) : e._e()]), e._v(\" \"), t(\"div\", {\n                            staticClass: \"h-full flex flex-col justify-center\"\n                        }, [\"\" !== i.url ? t(\"Hint\", {\n                            staticClass: \"item-icon\",\n                            attrs: {\n                                hint: Lg.update()\n                            },\n                            on: {\n                                click: function(t) {\n                                    return t.stopPropagation(), e.refreshProfile(i)\n                                }\n                            }\n                        }, [t(\"span\", {\n                            staticClass: \"icon\",\n                            class: {\n                                rotating: i.url in e.downlodingUrls\n                            }\n                        }, [e._v(\"refresh\")])]) : t(\"Hint\", {\n                            staticClass: \"item-icon\",\n                            attrs: {\n                                hint: Lg.edit()\n                            },\n                            on: {\n                                click: function(t) {\n                                    return t.stopPropagation(), e.openProfile(i)\n                                }\n                            }\n                        }, [t(\"span\", {\n                            staticClass: \"icon\"\n                        }, [e._v(\"code\")])])], 1)])])\n                    })), e._v(\" \"), e._l(new Array(20), (function(e, i) {\n                        return t(\"i\", {\n                            key: \"hidden\" + i\n                        })\n                    }))], 2)], 1), e._v(\" \"), e.qrcodeURL ? t(\"QRCodeView\", {\n                        attrs: {\n                            url: e.qrcodeURL\n                        },\n                        on: {\n                            hide: function(t) {\n                                e.qrcodeURL = \"\"\n                            }\n                        }\n                    }) : e._e()], 1)\n                }), [], !1, null, \"820f0efe\", null).exports\n            },\n            99876: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    Z: () => ie\n                });\n                var n = i(319),\n                    o = i.n(n),\n                    s = i(63038),\n                    r = i.n(s),\n                    a = i(48926),\n                    l = i.n(a),\n                    c = i(59713),\n                    d = i.n(c),\n                    h = i(87757),\n                    u = i.n(h),\n                    g = (i(24883), i(11442)),\n                    p = (i(24793), i(57147)),\n                    f = i(23321);\n                function m(e, t) {\n                    var i = Object.keys(e);\n                    if (Object.getOwnPropertySymbols) {\n                        var n = Object.getOwnPropertySymbols(e);\n                        t && (n = n.filter((function(t) {\n                            return Object.getOwnPropertyDescriptor(e, t).enumerable\n                        }))), i.push.apply(i, n)\n                    }\n                    return i\n                }\n                const v = {\n                    name: \"setting-section\",\n                    props: {\n                        title: String\n                    },\n                    data: function() {\n                        return {}\n                    },\n                    computed: function(e) {\n                        for (var t = 1; t < arguments.length; t++) {\n                            var i = null != arguments[t] ? arguments[t] : {};\n                            t % 2 ? m(Object(i), !0).forEach((function(t) {\n                                d()(e, t, i[t])\n                            })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(i)) : m(Object(i)).forEach((function(t) {\n                                Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(i, t))\n                            }))\n                        }\n                        return e\n                    }({}, (0, f.mapState)({})),\n                    mounted: function() {}\n                };\n                i(79820);\n                var _ = i(51900);\n                const b = (0, _.Z)(v, (function() {\n                    var e = this,\n                        t = e._self._c;\n                    return e.$slots.default.length ? t(\"div\", {\n                        staticClass: \"main-setting-section\"\n                    }, [t(\"div\", {\n                        staticClass: \"title\"\n                    }, [e._v(e._s(e.title))]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"content\"\n                    }, [e._t(\"default\")], 2)]) : e._e()\n                }), [], !1, null, \"18adce47\", null).exports;\n                var w = i(12436);\n\n                function y(e, t) {\n                    var i = Object.keys(e);\n                    if (Object.getOwnPropertySymbols) {\n                        var n = Object.getOwnPropertySymbols(e);\n                        t && (n = n.filter((function(t) {\n                            return Object.getOwnPropertyDescriptor(e, t).enumerable\n                        }))), i.push.apply(i, n)\n                    }\n                    return i\n                }\n\n                function C(e) {\n                    for (var t = 1; t < arguments.length; t++) {\n                        var i = null != arguments[t] ? arguments[t] : {};\n                        t % 2 ? y(Object(i), !0).forEach((function(t) {\n                            d()(e, t, i[t])\n                        })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(i)) : y(Object(i)).forEach((function(t) {\n                            Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(i, t))\n                        }))\n                    }\n                    return e\n                }\n                const x = {\n                    name: \"key-capture\",\n                    props: {\n                        value: {\n                            type: String,\n                            default: \"\"\n                        },\n                        placeholder: String\n                    },\n                    model: {\n                        prop: \"value\",\n                        event: \"change\"\n                    },\n                    data: function() {\n                        return {\n                            isRecording: !1,\n                            keyChain: []\n                        }\n                    },\n                    watch: {\n                        isRecording: function(e) {\n                            e || this.$emit(\"change\", this.shortcut)\n                        }\n                    },\n                    computed: C(C({}, (0, f.mapState)({})), {}, {\n                        shortcut: function() {\n                            return this.keyChain.join(\"+\")\n                        },\n                        hint: function() {\n                            const Lg = new Language(modifyState.language);\n                            return this.isRecording ? Lg.recording() : this.placeholder\n                        }\n                    }),\n                    methods: {\n                        handleKeyDown: function(e) {\n                            if (this.isRecording) {\n                                var t = e.key;\n                                13 !== e.keyCode ? t && this.keyChain.push(t) : this.isRecording = !1\n                            }\n                        },\n                        handleClick: function() {\n                            this.keyChain = [], this.isRecording = !0, this.$emit(\"change\", \"\")\n                        },\n                        handleBlur: function() {\n                            this.isRecording = !1\n                        },\n                        mounted: function() {}\n                    },\n                    mounted: function() {\n                        this.keyChain = this.value.split(\"+\")\n                    }\n                };\n                i(47191);\n                const S = (0, _.Z)(x, (function() {\n                    var e = this,\n                        t = e._self._c;\n                    const Lg = new Language(modifyState.language);\n                    return t(\"div\", {\n                        staticClass: \"main-key-capture\"\n                    }, [t(\"input\", {\n                        class: [e.isRecording ? \"recording\" : \"\"],\n                        style: {\n                            padding: \"10px\"\n                        },\n                        attrs: {\n                            placeholder: e.hint,\n                            readonly: \"\"\n                        },\n                        domProps: {\n                            value: e.shortcut\n                        },\n                        on: {\n                            click: e.handleClick,\n                            keydown: e.handleKeyDown,\n                            blur: e.handleBlur\n                        }\n                    }), e._v(\" \"), t(\"div\", {\n                        staticClass: \"hint\",\n                        class: [e.isRecording ? \"\" : \"hint-hide\"]\n                    }, [e._v(\"\\n    \" + Lg.pressEnterStop() + \"\\n  \")])])\n                }), [], !1, null, \"2ddf36e7\", null).exports;\n                var k = i(17285),\n                    L = i(62639);\n\n                function N(e, t) {\n                    var i = Object.keys(e);\n                    if (Object.getOwnPropertySymbols) {\n                        var n = Object.getOwnPropertySymbols(e);\n                        t && (n = n.filter((function(t) {\n                            return Object.getOwnPropertyDescriptor(e, t).enumerable\n                        }))), i.push.apply(i, n)\n                    }\n                    return i\n                }\n                const D = {\n                    name: \"more-hint\",\n                    props: {\n                        text: String,\n                        clickable: {\n                            type: Boolean,\n                            default: !0\n                        }\n                    },\n                    computed: function(e) {\n                        for (var t = 1; t < arguments.length; t++) {\n                            var i = null != arguments[t] ? arguments[t] : {};\n                            t % 2 ? N(Object(i), !0).forEach((function(t) {\n                                d()(e, t, i[t])\n                            })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(i)) : N(Object(i)).forEach((function(t) {\n                                Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(i, t))\n                            }))\n                        }\n                        return e\n                    }({}, (0, f.mapState)({}))\n                };\n                i(65549);\n                const I = (0, _.Z)(D, (function() {\n                    var e = this,\n                        t = e._self._c;\n                    return t(\"div\", {\n                        class: [\"main-more-hint\", e.clickable ? \"clickable\" : \"\"],\n                        on: {\n                            click: function(t) {\n                                return e.$emit(\"click\")\n                            }\n                        }\n                    }, [t(\"div\", {\n                        staticClass: \"text\"\n                    }, [e._v(e._s(e.text))]), e._v(\" \"), e.clickable ? t(\"div\", {\n                        staticClass: \"tirangle\"\n                    }) : e._e()])\n                }), [], !1, null, \"6a8f4af4\", null).exports;\n                const E = {\n                    name: \"separator\"\n                };\n                i(67664);\n                const T = (0, _.Z)(E, (function() {\n                    return (0, this._self._c)(\"div\", {\n                        staticClass: \"main-settings-separator\"\n                    })\n                }), [], !1, null, \"26bdfd95\", null).exports;\n                var M = i(51109);\n                const A = {\n                    name: \"TrayOrder\",\n                    components: {\n                        draggable: i.n(M)()\n                    },\n                    props: {\n                        arr: {\n                            type: Array,\n                            default: function() {\n                                return [\n                                    [],\n                                    []\n                                ]\n                            }\n                        }\n                    },\n                    model: {\n                        prop: \"arr\",\n                        event: \"drag\"\n                    },\n                    watch: {\n                        arr: {\n                            handler: function(e) {\n                                this.array = e\n                            },\n                            deep: !0\n                        }\n                    },\n                    data: function() {\n                        return {\n                            array: this.arr\n                        }\n                    },\n                    methods: {\n                        handleDrag: function(e) {\n                            this.$emit(\"drag\", this.array)\n                        }\n                    },\n                    mounted: function() {}\n                };\n                i(15907);\n                const O = (0, _.Z)(A, (function() {\n                    var e = this,\n                        t = e._self._c;\n                    const Lg = new Language(modifyState.language);\n                    return t(\"div\", {\n                        staticClass: \"tray-order-main\"\n                    }, [t(\"div\", {\n                        staticClass: \"title\"\n                    }, [e._v(Lg.show() + \":\")]), e._v(\" \"), t(\"draggable\", {\n                        staticClass: \"list left-list\",\n                        attrs: {\n                            group: \"tray\",\n                            list: e.array[0]\n                        },\n                        on: {\n                            change: e.handleDrag\n                        }\n                    }, e._l(e.array[0], (function(e) {\n                        return t(\"img\", {\n                            key: e,\n                            staticClass: \"cursor-move\",\n                            attrs: {\n                                src: \"static/imgs/tray-\".concat(e, \".png\"),\n                                alt: \"\"\n                            }\n                        })\n                    })), 0), e._v(\" \"), t(\"div\", {\n                        staticClass: \"title\"\n                    }, [e._v(Lg.hide() + \":\")]), e._v(\" \"), t(\"draggable\", {\n                        staticClass: \"list\",\n                        attrs: {\n                            group: \"tray\",\n                            list: e.array[1]\n                        },\n                        on: {\n                            change: e.handleDrag\n                        }\n                    }, e._l(e.array[1], (function(e) {\n                        return t(\"img\", {\n                            key: e,\n                            staticClass: \"cursor-move\",\n                            attrs: {\n                                src: \"static/imgs/tray-\".concat(e, \".png\"),\n                                alt: \"\"\n                            }\n                        })\n                    })), 0)], 1)\n                }), [], !1, null, \"40749f51\", null).exports;\n                var P = i(11287),\n                    R = i(13338),\n                    F = i(8359),\n                    B = i(10870),\n                    V = i(97520),\n                    W = i(72298),\n                    H = i(71017),\n                    z = i.n(H),\n                    j = i(32081),\n                    U = null,\n                    $ = function(e) {\n                        var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : \"\",\n                            i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : \"code --wait\";\n                        return new Promise((function(n, o) {\n                            U = o, W.ipcRenderer.invoke(\"app\", \"getPath\", \"temp\").then((function(s) {\n                                var r = (0, H.join)(s, \"close-to-save.\".concat(e));\n                                (0, p.writeFileSync)(r, t), (0, j.exec)(\"\".concat(i, \" \").concat(r), {\n                                    windowsHide: !0\n                                }, (function(e, t, i) {\n                                    e && o(e)\n                                })).on(\"exit\", (function() {\n                                    n((0, p.readFileSync)(r).toString())\n                                }))\n                            })).catch(o)\n                        }))\n                    },\n                    K = i(251),\n                    q = i(83566),\n                    Z = i(86173),\n                    G = i.n(Z),\n                    Y = i(8369),\n                    Q = i(36336),\n                    X = i(58511);\n\n                function J(e, t) {\n                    var i = Object.keys(e);\n                    if (Object.getOwnPropertySymbols) {\n                        var n = Object.getOwnPropertySymbols(e);\n                        t && (n = n.filter((function(t) {\n                            return Object.getOwnPropertyDescriptor(e, t).enumerable\n                        }))), i.push.apply(i, n)\n                    }\n                    return i\n                }\n\n                function ee(e) {\n                    for (var t = 1; t < arguments.length; t++) {\n                        var i = null != arguments[t] ? arguments[t] : {};\n                        t % 2 ? J(Object(i), !0).forEach((function(t) {\n                            d()(e, t, i[t])\n                        })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(i)) : J(Object(i)).forEach((function(t) {\n                            Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(i, t))\n                        }))\n                    }\n                    return e\n                }\n                const te = {\n                    components: {\n                        Section: b,\n                        SimpleInput: w.Z,\n                        KeyCapture: S,\n                        MoreHint: I,\n                        SelectView: k.Z,\n                        SwitchView: L.Z,\n                        Separator: T,\n                        TrayOrder: O,\n                        Navigator: P.Z,\n                        Hint: R.Z,\n                        Info: Q.Z\n                    },\n                    data: function() {\n                        return P.Z, {\n                            scrollTop: 0,\n                            fontFamilyPlaceholder: (0, q.V5)() ? \"PingFang SC\" : (0, q.Kr)() ? \"Microsoft Yahei\" : \"system-ui\",\n                            isEditingExternal: !1,\n                            sections: []\n                        }\n                    },\n                    computed: ee(ee({}, (0, f.mapState)({\n                        detectedInterfaceName: function(e) {\n                            return e.app.detectedInterfaceName\n                        },\n                        clashPath: function(e) {\n                            return e.app.clashPath\n                        },\n                        confData: function(e) {\n                            return e.app.confData\n                        }\n                    })), (0, f.mapGetters)([\"clashAxiosClient\", \"secret\"])),\n                    watch: {\n                        \"sts.profilePath\": function() {\n                            this.refreshCore()\n                        }\n                    },\n                    methods: ee(ee(ee({}, (0, f.mapMutations)({\n                        saveSettingsObject: \"SAVE_SETTINGS_OBJECT\",\n                        setConfData: \"SET_CONF_DATA\"\n                    })), (0, f.mapActions)([\"getParserLogPath\", \"getScriptLogPath\"])), {}, {\n                        refreshCore: function() {\n                            var e = this;\n                            return l()(u().mark((function t() {\n                                return u().wrap((function(t) {\n                                    for (;;) switch (t.prev = t.next) {\n                                        case 0:\n                                            return t.next = 2, e.$parent.handlerRestartClash();\n                                        case 2:\n                                        case \"end\":\n                                            return t.stop()\n                                    }\n                                }), t)\n                            })))()\n                        },\n                        handleNavigatToGroup: function(e) {\n                            var t = this.$refs[\"mixin-scroll-content\"],\n                                i = t.children[e];\n                            this.$nextTick((function() {\n                                t.scrollTop = i.offsetTop - 110\n                            }))\n                        },\n                        cancelExternalEdit: function() {\n                            U && U()\n                        },\n                        edit: function(e) {\n                            var t = arguments,\n                                i = this;\n                            return l()(u().mark((function n() {\n                                var o, s, r, a, l, c, d, h, g, p, f, m;\n                                return u().wrap((function(n) {\n                                    for (;;) switch (n.prev = n.next) {\n                                        case 0:\n                                            if (o = t.length > 1 && void 0 !== t[1] ? t[1] : \"\", s = t.length > 2 && void 0 !== t[2] ? t[2] : \"yaml\", r = !1, n.prev = 3, a = i.settings, l = a[e], c = a.editor, l || (l = o), 0 !== (d = void 0 === c ? 0 : c)) {\n                                                n.next = 21;\n                                                break\n                                            }\n                                            return n.prev = 7, n.next = 10, i.$code({\n                                                code: l,\n                                                language: s,\n                                                fontSize: i.settings.editorFontSize\n                                            });\n                                        case 10:\n                                            h = n.sent, g = h.code, p = void 0 === g ? \"\" : g, i.settings[e] = p, r = p !== l, n.next = 19;\n                                            break;\n                                        case 17:\n                                            n.prev = 17, n.t0 = n.catch(7);\n                                        case 19:\n                                            n.next = 37;\n                                            break;\n                                        case 21:\n                                            if (1 !== d) {\n                                                n.next = 30;\n                                                break\n                                            }\n                                            return i.isEditingExternal = !0, n.next = 25, $(s, l);\n                                        case 25:\n                                            f = n.sent, i.settings[e] = f, r = f !== l, n.next = 37;\n                                            break;\n                                        case 30:\n                                            if (2 !== d) {\n                                                n.next = 37;\n                                                break\n                                            }\n                                            return i.isEditingExternal = !0, n.next = 34, $(s, l, i.settings.editorCustomCommand || \"subl --wait\");\n                                        case 34:\n                                            m = n.sent, i.settings[e] = m, r = m !== l;\n                                        case 37:\n                                            n.next = 41;\n                                            break;\n                                        case 39:\n                                            n.prev = 39, n.t1 = n.catch(3);\n                                        case 41:\n                                            return i.isEditingExternal = !1, n.abrupt(\"return\", r);\n                                        case 43:\n                                        case \"end\":\n                                            return n.stop()\n                                    }\n                                }), n, null, [\n                                    [3, 39],\n                                    [7, 17]\n                                ])\n                            })))()\n                        },\n                        handleEditBypass: function() {\n                            var e = this;\n                            return l()(u().mark((function t() {\n                                return u().wrap((function(t) {\n                                    for (;;) switch (t.prev = t.next) {\n                                        case 0:\n                                            return t.next = 2, e.edit(\"bypassText\", g.stringify({\n                                                bypass: F.Z\n                                            }));\n                                        case 2:\n                                        case \"end\":\n                                            return t.stop()\n                                    }\n                                }), t)\n                            })))()\n                        },\n                        handleEditPACContent: function() {\n                            var e = this;\n                            return l()(u().mark((function t() {\n                                return u().wrap((function(t) {\n                                    for (;;) switch (t.prev = t.next) {\n                                        case 0:\n                                            return t.next = 2, e.edit(\"pacContentText\", B.Z, \"javascript\");\n                                        case 2:\n                                        case \"end\":\n                                            return t.stop()\n                                    }\n                                }), t)\n                            })))()\n                        },\n                        handleEditMixinYAML: function() {\n                            var e = this;\n                            return l()(u().mark((function t() {\n                                return u().wrap((function(t) {\n                                    for (;;) switch (t.prev = t.next) {\n                                        case 0:\n                                            return t.next = 2, e.edit(\"mixinText\", \"mixin: # object\\n\");\n                                        case 2:\n                                        case \"end\":\n                                            return t.stop()\n                                    }\n                                }), t)\n                            })))()\n                        },\n                        handleEditMixinJS: function() {\n                            var e = this;\n                            return l()(u().mark((function t() {\n                                return u().wrap((function(t) {\n                                    for (;;) switch (t.prev = t.next) {\n                                        case 0:\n                                            return \"module.exports.parse = ({ content, name, url }, { yaml, axios, notify }) => {\\n  return content\\n}\", t.next = 3, e.edit(\"mixinCode\", \"module.exports.parse = ({ content, name, url }, { yaml, axios, notify }) => {\\n  return content\\n}\", \"javascript\");\n                                        case 3:\n                                        case \"end\":\n                                            return t.stop()\n                                    }\n                                }), t)\n                            })))()\n                        },\n                        handleEditUnsafeURLs: function() {\n                            var e = this;\n                            return l()(u().mark((function t() {\n                                return u().wrap((function(t) {\n                                    for (;;) switch (t.prev = t.next) {\n                                        case 0:\n                                            return t.next = 2, e.edit(\"unsafeURLsText\", \"urls: # array\\n\");\n                                        case 2:\n                                        case \"end\":\n                                            return t.stop()\n                                    }\n                                }), t)\n                            })))()\n                        },\n                        handleEditHeaders: function() {\n                            var e = this;\n                            return l()(u().mark((function t() {\n                                return u().wrap((function(t) {\n                                    for (;;) switch (t.prev = t.next) {\n                                        case 0:\n                                            return t.next = 2, e.edit(\"headersText\", \"headers: # object\\n\");\n                                        case 2:\n                                        case \"end\":\n                                            return t.stop()\n                                    }\n                                }), t)\n                            })))()\n                        },\n                        handleEditChildProcess: function() {\n                            var e = this;\n                            return l()(u().mark((function t() {\n                                return u().wrap((function(t) {\n                                    for (;;) switch (t.prev = t.next) {\n                                        case 0:\n                                            return t.next = 2, e.edit(\"childProcessText\", \"processes: # array\\n\");\n                                        case 2:\n                                            if (!t.sent) {\n                                                t.next = 4;\n                                                break\n                                            }\n                                            e.refreshCore();\n                                        case 4:\n                                        case \"end\":\n                                            return t.stop()\n                                    }\n                                }), t)\n                            })))()\n                        },\n                        handleSelectInterface: function() {\n                            var e = this;\n                            const Lg = new Language(modifyState.language);\n                            return l()(u().mark((function t() {\n                                var i, n, s, a;\n                                return u().wrap((function(t) {\n                                    for (;;) switch (t.prev = t.next) {\n                                        case 0:\n                                            return t.prev = 0, i = (0, V.r)().map((function(e) {\n                                                return e.name\n                                            })), t.next = 4, e.$select({\n                                                title: Lg.chooseOutboundInterface(),\n                                                message: Lg.chooseOutboundInterfaceDescribe(),\n                                                items: [].concat(o()(i), [Lg.reset()]),\n                                                isLastDifferent: !0\n                                            });\n                                        case 4:\n                                            n = t.sent, s = r()(n, 1), (a = s[0]) === i.length ? e.settings.interfaceName = \"\" : e.settings.interfaceName = i[a], t.next = 12;\n                                            break;\n                                        case 10:\n                                            t.prev = 10, t.t0 = t.catch(0);\n                                        case 12:\n                                        case \"end\":\n                                            return t.stop()\n                                    }\n                                }), t, null, [\n                                    [0, 10]\n                                ])\n                            })))()\n                        },\n                        handleEditActionScripts: function() {\n                            var e = this;\n                            return l()(u().mark((function t() {\n                                return u().wrap((function(t) {\n                                    for (;;) switch (t.prev = t.next) {\n                                        case 0:\n                                            return t.next = 2, e.edit(\"scriptsText\", g.stringify({\n                                                scripts: {\n                                                    proxy: {},\n                                                    profile: {}\n                                                }\n                                            }));\n                                        case 2:\n                                        case \"end\":\n                                            return t.stop()\n                                    }\n                                }), t)\n                            })))()\n                        },\n                        handleEditSSIDStrategy: function() {\n                            var e = this;\n                            return l()(u().mark((function t() {\n                                return u().wrap((function(t) {\n                                    for (;;) switch (t.prev = t.next) {\n                                        case 0:\n                                            return t.next = 2, e.edit(\"ssidStrategyText\", \"strategy: # object\\n\");\n                                        case 2:\n                                        case \"end\":\n                                            return t.stop()\n                                    }\n                                }), t)\n                            })))()\n                        },\n                        handleFetchCurrentSSID: function() {\n                            var e = this;\n                            const Lg = new Language(modifyState.language);\n                            return l()(u().mark((function t() {\n                                var i, n, s, a;\n                                return u().wrap((function(t) {\n                                    for (;;) switch (t.prev = t.next) {\n                                        case 0:\n                                            return i = (0, X.S)().reduce((function(e, t) {\n                                                var i = t.SSID;\n                                                return i && e.push(i), e\n                                            }), []), t.next = 3, e.$select({\n                                                title: Lg.currentSSID(),\n                                                message: Lg.currentSSIDDescribe(),\n                                                items: [].concat(o()(i), [Lg.cancel()])\n                                            });\n                                        case 3:\n                                            n = t.sent, s = r()(n, 1), (a = s[0]) !== i.length && W.clipboard.writeText(i[a]);\n                                        case 7:\n                                        case \"end\":\n                                            return t.stop()\n                                    }\n                                }), t)\n                            })))()\n                        },\n                        handleOpenActionScriptsConsoleFile: function() {\n                            var e = this;\n                            return l()(u().mark((function t() {\n                                var i;\n                                return u().wrap((function(t) {\n                                    for (;;) switch (t.prev = t.next) {\n                                        case 0:\n                                            return t.next = 2, e.getScriptLogPath();\n                                        case 2:\n                                            i = t.sent, (0, p.existsSync)(i) || (0, p.writeFileSync)(i, \"\"), W.shell.openPath(i);\n                                        case 5:\n                                        case \"end\":\n                                            return t.stop()\n                                    }\n                                }), t)\n                            })))()\n                        },\n                        handleEditProfileParsers: function() {\n                            var e = this;\n                            return l()(u().mark((function t() {\n                                return u().wrap((function(t) {\n                                    for (;;) switch (t.prev = t.next) {\n                                        case 0:\n                                            return t.next = 2, e.edit(\"profileParsersText\", \"parsers: # array\\n\");\n                                        case 2:\n                                        case \"end\":\n                                            return t.stop()\n                                    }\n                                }), t)\n                            })))()\n                        },\n                        handleOpenConsoleFile: function() {\n                            var e = this;\n                            return l()(u().mark((function t() {\n                                var i;\n                                return u().wrap((function(t) {\n                                    for (;;) switch (t.prev = t.next) {\n                                        case 0:\n                                            return t.next = 2, e.getParserLogPath();\n                                        case 2:\n                                            i = t.sent, (0, p.existsSync)(i) || (0, p.writeFileSync)(i, \"\"), W.shell.openPath(i);\n                                        case 5:\n                                        case \"end\":\n                                            return t.stop()\n                                    }\n                                }), t)\n                            })))()\n                        },\n                        handleChooseDefaultIcon: function() {\n                            var e = this;\n                            return l()(u().mark((function t() {\n                                var i;\n                                return u().wrap((function(t) {\n                                    for (;;) switch (t.prev = t.next) {\n                                        case 0:\n                                            return t.next = 2, e.chooseFileOrPath();\n                                        case 2:\n                                            (i = t.sent) && (e.settings.iconDefault = i);\n                                        case 4:\n                                        case \"end\":\n                                            return t.stop()\n                                    }\n                                }), t)\n                            })))()\n                        },\n                        handleChooseSystemProxytOnIcon: function() {\n                            var e = this;\n                            return l()(u().mark((function t() {\n                                var i;\n                                return u().wrap((function(t) {\n                                    for (;;) switch (t.prev = t.next) {\n                                        case 0:\n                                            return t.next = 2, e.chooseFileOrPath();\n                                        case 2:\n                                            (i = t.sent) && (e.settings.iconSystemProxy = i);\n                                        case 4:\n                                        case \"end\":\n                                            return t.stop()\n                                    }\n                                }), t)\n                            })))()\n                        },\n                        handleChooseProfilePath: function() {\n                            var e = this;\n                            return l()(u().mark((function t() {\n                                var i;\n                                return u().wrap((function(t) {\n                                    for (;;) switch (t.prev = t.next) {\n                                        case 0:\n                                            return t.next = 2, e.chooseFileOrPath(!1);\n                                        case 2:\n                                            (i = t.sent) && (e.settings.profilePath = i);\n                                        case 4:\n                                        case \"end\":\n                                            return t.stop()\n                                    }\n                                }), t)\n                            })))()\n                        },\n                        handleSelectTrayScriptPath: function() {\n                            var e = this;\n                            return l()(u().mark((function t() {\n                                var i;\n                                return u().wrap((function(t) {\n                                    for (;;) switch (t.prev = t.next) {\n                                        case 0:\n                                            return t.next = 2, e.chooseFileOrPath();\n                                        case 2:\n                                            (i = t.sent) && (e.settings.trayScriptPath = i);\n                                        case 4:\n                                        case \"end\":\n                                            return t.stop()\n                                    }\n                                }), t)\n                            })))()\n                        },\n                        handleTrayScriptManualRun: function() {\n                            this.settings.trayScriptManualRunTime = (new Date).getTime()\n                        },\n                        chooseFileOrPath: function() {\n                            var e = arguments;\n                            return l()(u().mark((function t() {\n                                var i, n;\n                                return u().wrap((function(t) {\n                                    for (;;) switch (t.prev = t.next) {\n                                        case 0:\n                                            return i = !(e.length > 0 && void 0 !== e[0]) || e[0], t.next = 3, W.ipcRenderer.invoke(\"dialog\", \"showOpenDialogSync\", {\n                                                properties: [i ? \"openFile\" : \"openDirectory\"]\n                                            });\n                                        case 3:\n                                            if (!((n = t.sent) && n.length > 0)) {\n                                                t.next = 6;\n                                                break\n                                            }\n                                            return t.abrupt(\"return\", n[0]);\n                                        case 6:\n                                            return t.abrupt(\"return\", void 0);\n                                        case 7:\n                                        case \"end\":\n                                            return t.stop()\n                                    }\n                                }), t)\n                            })))()\n                        },\n                        handleReset: function() {\n                            var e = this;\n                            const Lg = new Language(modifyState.language);\n                            return l()(u().mark((function t() {\n                                return u().wrap((function(t) {\n                                    for (;;) switch (t.prev = t.next) {\n                                        case 0:\n                                            return t.prev = 0, t.next = 3, e.$alert({\n                                                title: Lg.warning(),\n                                                content: Lg.askResetAllSettings(),\n                                                isShowErrorBtn: !0\n                                            });\n                                        case 3:\n                                            e.saveSettingsObject({\n                                                obj: {}\n                                            }), e.loadSettings(), t.next = 9;\n                                            break;\n                                        case 7:\n                                            t.prev = 7, t.t0 = t.catch(0);\n                                        case 9:\n                                        case \"end\":\n                                            return t.stop()\n                                    }\n                                }), t, null, [\n                                    [0, 7]\n                                ])\n                            })))()\n                        },\n                        handleOpenGUILog: function() {\n                            W.shell.openPath((0, H.dirname)(G().transports.file.getFile().path))\n                        },\n                        handleOpenGUIDataFolder: function() {\n                            return l()(u().mark((function e() {\n                                var t;\n                                return u().wrap((function(e) {\n                                    for (;;) switch (e.prev = e.next) {\n                                        case 0:\n                                            return e.next = 2, W.ipcRenderer.invoke(\"app\", \"getPath\", \"userData\");\n                                        case 2:\n                                            t = e.sent, W.shell.showItemInFolder(t);\n                                        case 4:\n                                        case \"end\":\n                                            return e.stop()\n                                    }\n                                }), e)\n                            })))()\n                        },\n                        handleQuit: function() {\n                            var e = arguments,\n                                t = this;\n                            const Lg = new Language(modifyState.language);\n                            return l()(u().mark((function i() {\n                                var n, o;\n                                return u().wrap((function(i) {\n                                    for (;;) switch (i.prev = i.next) {\n                                        case 0:\n                                            return n = e.length > 0 && void 0 !== e[0] && e[0], i.next = 3, (0, Y.vC)({\n                                                type: \"warning\",\n                                                message: Lg.askQuit(),\n                                                buttons: [Lg.no(), Lg.yes()]\n                                            });\n                                        case 3:\n                                            if (o = i.sent, 0 !== o.response) {\n                                                i.next = 7;\n                                                break\n                                            }\n                                            return i.abrupt(\"return\");\n                                        case 7:\n                                            n ? W.ipcRenderer.send(\"cleanup-done\") : t.$parent.quit();\n                                        case 8:\n                                        case \"end\":\n                                            return i.stop()\n                                    }\n                                }), i)\n                            })))()\n                        },\n                        handlerClearFakeIPCache: function() {\n                            var e = this;\n                            return l()(u().mark((function t() {\n                                var i, n, o, s, r;\n                                return u().wrap((function(t) {\n                                    for (;;) switch (t.prev = t.next) {\n                                        case 0:\n                                            return t.next = 2, e.clashAxiosClient.post(\"/cache/fakeip/flush\", {}, {\n                                                validateStatus: function(e) {\n                                                    return !0\n                                                }\n                                            });\n                                        case 2:\n                                            i = t.sent, n = i.status, o = i.data, s = (o = void 0 === o ? {} : o).message, r = void 0 === s ? \"\" : s, (0, Y.vC)({\n                                                message: 204 === n ? \"Fake IP cache cleared\" : \"Failed with reason: \".concat(r)\n                                            });\n                                        case 8:\n                                        case \"end\":\n                                            return t.stop()\n                                    }\n                                }), t)\n                            })))()\n                        },\n                        handleGenerateUUIDSecret: function() {\n                            var e = this;\n                            const Lg = new Language(modifyState.language);\n                            return l()(u().mark((function t() {\n                                var i, n;\n                                return u().wrap((function(t) {\n                                    for (;;) switch (t.prev = t.next) {\n                                        case 0:\n                                            return t.next = 2, (0, Y.vC)({\n                                                type: \"warning\",\n                                                message: Lg.askSetConfig(),\n                                                buttons: [Lg.no(), Lg.yes()]\n                                            });\n                                        case 2:\n                                            if (i = t.sent, 1 !== i.response) {\n                                                t.next = 9;\n                                                break\n                                            }\n                                            return n = (0, K.v4)(), t.next = 8, (0, Y.F0)(z().join(e.clashPath, \"config.yaml\"), \"secret\", n);\n                                        case 8:\n                                            e.reloadElectron();\n                                        case 9:\n                                        case \"end\":\n                                            return t.stop()\n                                    }\n                                }), t)\n                            })))()\n                        }\n                    }),\n                    beforeMount: function() {},\n                    beforeRouteEnter: function(e, t, i) {\n                        i((function(e) {}))\n                    },\n                    mounted: function() {\n                        var e = this.$refs[\"mixin-scroll-content\"].children;\n                        this.sections = o()(e).map((function(e) {\n                            return e.children[0].innerText\n                        }))\n                    },\n                    beforeRouteLeave: function(e, t, i) {\n                        i()\n                    }\n                };\n                i(52611), i(58141);\n                const ie = (0, _.Z)(te, (function() {\n                    var e = this,\n                        t = e._self._c;\n                    const Lg = new Language(modifyState.language);\n                    return t(\"div\", {\n                        staticClass: \"main-setting-view\"\n                    }, [t(\"div\", {\n                        class: [\"title\", e.isEditingExternal ? \"blur\" : \"\"]\n                    }, [t(\"div\", [e._v(Lg.settings())]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"btns\"\n                    }, [t(\"div\", {\n                        staticClass: \"btn\",\n                        on: {\n                            click: e.handleReset\n                        }\n                    }, [e._v(Lg.resetAllSettings())]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"btn clickable btn-force-quit\",\n                        on: {\n                            click: function(t) {\n                                return e.handleQuit(!0)\n                            }\n                        }\n                    }, [e._v(\"\\n        \" + Lg.forceQuit() + \"\\n      \")]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"btn clickable btn-quit\",\n                        on: {\n                            click: function(t) {\n                                return e.handleQuit()\n                            }\n                        }\n                    }, [e._v(Lg.quit())])])]), e._v(\" \"), e.settings ? t(\"div\", {\n                        ref: \"mixin-scroll-content\",\n                        class: [\"content\", , e.isEditingExternal ? \"blur\" : \"\"]\n                    }, [t(\"Section\", {\n                        attrs: {\n                            title: Lg.security()\n                        }\n                    }, [t(\"div\", {\n                        staticClass: \"item\"\n                    }, [t(\"div\", {\n                        staticClass: \"relative flex items-center\"\n                    }, [t(\"div\", [e._v(Lg.coreSecret())]), e._v(\" \"), t(\"Info\", [e._v(\"\\n            \" + Lg.coreSecretDscribeFirst() + \" \"), t(\"span\", {\n                        staticClass: \"quote\"\n                    }, [e._v(\"secret\")]), e._v(\" \" + Lg.coreSecretDscribeSecond() + \"\\n            \" + Lg.coreSecretDscribeThird() + \"\\n             \"), t(\"br\"), t(\"br\"), e._v(Lg.coreSecretDscribeFourth() + \"\\n            \"), t(\"span\", {\n                        staticClass: \"quote\"\n                    }, [e._v(\"Home Directory/config.yaml\")]), e._v(\".\\n            \"), t(\"br\"), t(\"br\"), e._v(Lg.coreSecretDscribeFifth() + \"\\n            \"), t(\"ul\", [t(\"li\", [t(\"a\", {\n                        attrs: {\n                            href: \"https://web.archive.org/web/20231001060822/dreamacro.github.io/clash/configuration/configuration-reference.html\"\n                        }\n                    }, [e._v(Lg.profiles())])])])]), e._v(\" \"), t(\"Hint\", {\n                        staticClass: \"gird ml-1 items-center\",\n                        attrs: {\n                            position: \"right\",\n                            hint: Lg.recommendGenerateSecret()\n                        }\n                    }, [\"\" === e.secret ? t(\"span\", {\n                        staticClass: \"icon h-fit text-base text-[#FFAD00]\"\n                    }, [e._v(\"warning\")]) : e._e()])], 1), e._v(\" \"), t(\"MoreHint\", {\n                        staticClass: \"hint\",\n                        attrs: {\n                            text: \"\" === e.secret ? Lg.generate() : Lg.update()\n                        },\n                        on: {\n                            click: e.handleGenerateUUIDSecret\n                        }\n                    })], 1), e._v(\" \"), t(\"div\", {\n                        staticClass: \"item\"\n                    }, [t(\"div\", {\n                        staticClass: \"relative flex items-center\"\n                    }, [t(\"div\", [e._v(Lg.allowUnsafeURLs())]), e._v(\" \"), t(\"Info\", [e._v(\"\\n            \" + Lg.allowUnsafeURLsDescribeFirst()), t(\"br\"), t(\"br\"), e._v(\"\\n\\n             \"), t(\"strong\", [e._v(Lg.allowUnsafeURLsDescribeSecond())]), e._v(Lg.allowUnsafeURLsDescribeThird()  +\"\\n          \")])], 1), e._v(\" \"), t(\"MoreHint\", {\n                        staticClass: \"hint\",\n                        attrs: {\n                            text: Lg.edit()\n                        },\n                        on: {\n                            click: e.handleEditUnsafeURLs\n                        }\n                    })], 1), e._v(\" \"), t(\"div\", {\n                        staticClass: \"item\"\n                    }, [t(\"div\", [e._v(Lg.disableLoadingAdsLink())]), e._v(\" \"), t(\"SwitchView\", {\n                        model: {\n                            value: e.settings.disableLoadingAdsLink,\n                            callback: function (t) {\n                                if (t) {\n                                    i(24883).Z.put(i(81518).Z.AD_IMAGES, \"\");\n                                }\n                                e.$set(e.settings, \"disableLoadingAdsLink\", t)\n                            },\n                            expression: \"settings.disableLoadingAdsLink\"\n                        }\n                    })], 1)]), e._v(\" \"), t(\"Section\", {\n                        attrs: {\n                            title: Lg.general()\n                        }\n                    }, [t(\"div\", {\n                        staticClass: \"item\"\n                    }, [t(\"div\", {\n                        staticClass: \"flex items-center\"\n                    }, [t(\"div\", [e._v(Lg.settingsEditor())]), e._v(\" \"), t(\"Info\", [e._v(Lg.settingsEditorFirst()), t(\"br\"), t(\"br\"), e._v(Lg.settingsEditorSecond() + \"\\n            \"), t(\"strong\", [e._v(Lg.custom())]), e._v(Lg.settingsEditorThird() + \"\\n            \" + Lg.settingsEditorFourth()), t(\"br\"), e._v(\" \"), t(\"span\", {\n                        staticClass: \"quote\"\n                    }, [e._v(\"code --wait\")]), t(\"br\"), e._v(\" \"), t(\"span\", {\n                        staticClass: \"quote\"\n                    }, [e._v(\"subl --wait\")])])], 1), e._v(\" \"), t(\"SelectView\", {\n                        attrs: {\n                            items: [\"CFW\", \"Visual Studio Code\", Lg.custom()]\n                        },\n                        model: {\n                            value: e.settings.editor,\n                            callback: function(t) {\n                                e.$set(e.settings, \"editor\", t)\n                            },\n                            expression: \"settings.editor\"\n                        }\n                    })], 1), e._v(\" \"), 2 === e.settings.editor ? t(\"div\", {\n                        staticClass: \"item\"\n                    }, [t(\"div\", [e._v(Lg.customEditorCommand())]), e._v(\" \"), t(\"SimpleInput\", {\n                        staticClass: \"input\",\n                        attrs: {\n                            placeholder: \"subl --wait\"\n                        },\n                        model: {\n                            value: e.settings.editorCustomCommand,\n                            callback: function(t) {\n                                e.$set(e.settings, \"editorCustomCommand\", t)\n                            },\n                            expression: \"settings.editorCustomCommand\"\n                        }\n                    })], 1) : e._e(), e._v(\" \"), t(\"div\", {\n                        staticClass: \"item\"\n                    }, [t(\"div\", {\n                        staticClass: \"flex items-center\"\n                    }, [t(\"div\", [e._v(Lg.notifications())]), e._v(\" \"), t(\"Info\", [e._v(Lg.notificationsDescribe())])], 1), e._v(\" \"), t(\"SwitchView\", {\n                        model: {\n                            value: e.settings.showNotifications,\n                            callback: function(t) {\n                                e.$set(e.settings, \"showNotifications\", t)\n                            },\n                            expression: \"settings.showNotifications\"\n                        }\n                    })], 1), e._v(\" \"), t(\"div\", {\n                        staticClass: \"item\"\n                    }, [t(\"div\", {\n                        staticClass: \"flex items-center\"\n                    }, [t(\"div\", [e._v(Lg.silentStart())]), e._v(\" \"), t(\"Info\", [e._v(Lg.silentStartDescribe())])], 1), e._v(\" \"), t(\"SwitchView\", {\n                        model: {\n                            value: e.settings.hideAfterStartup,\n                            callback: function(t) {\n                                e.$set(e.settings, \"hideAfterStartup\", t)\n                            },\n                            expression: \"settings.hideAfterStartup\"\n                        }\n                    })], 1), e._v(\" \"), t(\"div\", {\n                        staticClass: \"item\"\n                    }, [t(\"div\", {\n                        staticClass: \"flex items-center\"\n                    }, [t(\"div\", [e._v(Lg.randomControllerPort())]), e._v(\" \"), t(\"Info\", [e._v(Lg.randomControllerPortDescribe())])], 1), e._v(\" \"), t(\"SwitchView\", {\n                        model: {\n                            value: e.settings.randomControllerPort,\n                            callback: function(t) {\n                                e.$set(e.settings, \"randomControllerPort\", t)\n                            },\n                            expression: \"settings.randomControllerPort\"\n                        }\n                    })], 1), e._v(\" \"), t(\"div\", {\n                        staticClass: \"item\"\n                    }, [t(\"div\", {\n                        staticClass: \"flex items-center\"\n                    }, [t(\"div\", [e._v(Lg.randomMixedPort())]), e._v(\" \"), t(\"Info\", [e._v(Lg.randomMixedPortDescribeFirst()), t(\"br\"), t(\"br\"), e._v(Lg.randomMixedPortDescribeSecond()), t(\"a\", {\n                        attrs: {\n                            href: \"https://web.archive.org/web/20231001060822/dreamacro.github.io/clash/configuration/configuration-reference.htmll\"\n                        }\n                    }, [e._v(\"mixed-port\")]), e._v(Lg.randomMixedPortDescribeThird()), t(\"span\", {\n                        staticClass: \"quote\"\n                    }, [e._v(\"Home Directory/config.yaml\")]), e._v(\".\")])], 1), e._v(\" \"), t(\"SwitchView\", {\n                        model: {\n                            value: e.settings.randomMixedPort,\n                            callback: function(t) {\n                                e.$set(e.settings, \"randomMixedPort\", t)\n                            },\n                            expression: \"settings.randomMixedPort\"\n                        }\n                    })], 1), e._v(\" \"), t(\"div\", {\n                        staticClass: \"item\"\n                    }, [t(\"div\", {\n                        staticClass: \"flex items-center\"\n                    }, [t(\"div\", [e._v(Lg.lightweightMode())]), e._v(\" \"), t(\"Info\", [e._v(Lg.lightweightModeDescribeStart()), t(\"br\"), t(\"br\"), e._v(Lg.lightweightModeDescribeEnd()), t(\"strong\", [e._v(Lg.serviceMode())]), e._v(\".\\n            \"), t(\"br\"), t(\"br\"), e._v(Lg.forDetails() + \"\\n            \"), t(\"a\", {\n                        attrs: {\n                            href: \"https://web.archive.org/web/20230304232259/docs.cfw.lbyczf.com/contents/lightweight.html\"\n                        }\n                    }, [e._v(Lg.docs())]), e._v(\".\")])], 1), e._v(\" \"), t(\"SwitchView\", {\n                        model: {\n                            value: e.settings.lightweightMode,\n                            callback: function(t) {\n                                e.$set(e.settings, \"lightweightMode\", t)\n                            },\n                            expression: \"settings.lightweightMode\"\n                        }\n                    })], 1), e._v(\" \"), t(\"div\", {\n                        staticClass: \"item\"\n                    }, [t(\"div\", [e._v(Lg.guiLogFolder())]), e._v(\" \"), t(\"MoreHint\", {\n                        staticClass: \"hint\",\n                        attrs: {\n                            text: Lg.open()\n                        },\n                        on: {\n                            click: e.handleOpenGUILog\n                        }\n                    })], 1), e._v(\" \"), t(\"div\", {\n                        staticClass: \"item\"\n                    }, [t(\"div\", [e._v(Lg.guiDataFolder())]), e._v(\" \"), t(\"MoreHint\", {\n                        staticClass: \"hint\",\n                        attrs: {\n                            text: Lg.open()\n                        },\n                        on: {\n                            click: e.handleOpenGUIDataFolder\n                        }\n                    })], 1), e._v(\" \"), t(\"div\", {\n                        staticClass: \"item\"\n                    }, [t(\"div\", {\n                        staticClass: \"flex items-center\"\n                    }, [t(\"div\", [e._v(Lg.checkForUpdate())]), e._v(\" \"), t(\"Info\", [e._v(Lg.checkForUpdateDescribe())])], 1), e._v(\" \"), t(\"SwitchView\", {\n                        model: {\n                            value: e.settings.checkForUpdates,\n                            callback: function(t) {\n                                e.$set(e.settings, \"checkForUpdates\", t)\n                            },\n                            expression: \"settings.checkForUpdates\"\n                        }\n                    })], 1), e._v(\" \"), t(\"div\", {\n                        staticClass: \"item\"\n                    }, [t(\"div\", [e._v(Lg.showNewVersionIcon())]), e._v(\" \"), t(\"SwitchView\", {\n                        model: {\n                            value: e.settings.showNewVersionIcon,\n                            callback: function(t) {\n                                e.$set(e.settings, \"showNewVersionIcon\", t)\n                            },\n                            expression: \"settings.showNewVersionIcon\"\n                        }\n                    })], 1), e._v(\" \"), e.isMacOS ? t(\"div\", {\n                        staticClass: \"item\"\n                    }, [t(\"div\", {\n                        staticClass: \"flex items-center\"\n                    }, [t(\"div\", [e._v(Lg.automaticUpgrade())]), e._v(\" \"), t(\"Info\", [e._v(Lg.automaticUpgradeDescribe())])], 1), e._v(\" \"), t(\"SwitchView\", {\n                        model: {\n                            value: e.settings.silentUpdate,\n                            callback: function(t) {\n                                e.$set(e.settings, \"silentUpdate\", t)\n                            },\n                            expression: \"settings.silentUpdate\"\n                        }\n                    })], 1) : e._e(), e._v(\" \"), t(\"div\", {\n                        staticClass: \"item\"\n                    }, [t(\"div\", [e._v(Lg.languageString())]), e._v(\" \"), t(\"SelectView\", { \n                        attrs: {\n                            items: [\"简体中文\", \"English\"]\n                        },\n                        model: {\n                            value: i(24883).Z.get(LANGUAGE) === null ? 0 : i(24883).Z.get(LANGUAGE),\n                            callback: function (t) {\n                                if (t != i(24883).Z.get(LANGUAGE)) {\n                                    i(24883).Z.put(LANGUAGE, t);\n                                    modifyState.language = t;\n                                    e.$set(e.settings, \"language\", t);\n                                    require(\"electron\").ipcRenderer.invoke(\"window\", \"reload\");\n                                }\n                            },\n                            expression: \"settings.language\"\n                        }\n                    })], 1)]), e._v(\" \"), t(\"Section\", {\n                        attrs: {\n                            title: Lg.appearance()\n                        }\n                    }, [e.settings.systemTheme ? e._e() : t(\"div\", {\n                        staticClass: \"item\"\n                    }, [t(\"div\", [e._v(Lg.theme())]), e._v(\" \"), t(\"SelectView\", {\n                        attrs: {\n                            items: Lg.themeOption()\n                        },\n                        model: {\n                            value: e.settings.theme,\n                            callback: function(t) {\n                                e.$set(e.settings, \"theme\", t)\n                            },\n                            expression: \"settings.theme\"\n                        }\n                    })], 1), e._v(\" \"), t(\"div\", {\n                        staticClass: \"item\"\n                    }, [t(\"div\", [e._v(Lg.followSystemTheme())]), e._v(\" \"), t(\"SwitchView\", {\n                        model: {\n                            value: e.settings.systemTheme,\n                            callback: function(t) {\n                                e.$set(e.settings, \"systemTheme\", t)\n                            },\n                            expression: \"settings.systemTheme\"\n                        }\n                    })], 1), e._v(\" \"), t(\"div\", {\n                        staticClass: \"item\"\n                    }, [t(\"div\", [e._v(Lg.fontFamily())]), e._v(\" \"), t(\"SimpleInput\", {\n                        attrs: {\n                            placeholder: e.fontFamilyPlaceholder\n                        },\n                        model: {\n                            value: e.settings.fontFamily,\n                            callback: function(t) {\n                                e.$set(e.settings, \"fontFamily\", t)\n                            },\n                            expression: \"settings.fontFamily\"\n                        }\n                    })], 1), e._v(\" \"), t(\"div\", {\n                        staticClass: \"item\"\n                    }, [t(\"div\", {\n                        staticClass: \"flex items-center\"\n                    }, [t(\"div\", [e._v(Lg.titleBarText())]), e._v(\" \"), t(\"Info\", [t(\"div\", [e._v(\"\\n              \" + Lg.titleBarTextDescribeFirst() + \"\\n            \")]), e._v(\" \"), t(\"li\", [t(\"b\", [e._v(\"%mode%\")]), e._v(\" - \" + Lg.titleBarTextDescribeSecond())]), e._v(\" \"), t(\"li\", [t(\"b\", [e._v(\"%systemProxy%\")]), e._v(\" - \" + Lg.titleBarTextDescribeThird())]), e._v(\" \"), t(\"li\", [t(\"b\", [e._v(\"%tun%\")]), e._v(\" - \" + Lg.titleBarTextDescribeFourth())]), e._v(\" \"), t(\"li\", [t(\"b\", [e._v(\"%mixin%\")]), e._v(\" - \" + Lg.titleBarTextDescribeFifth())])])], 1), e._v(\" \"), t(\"SimpleInput\", {\n                        staticClass: \"input\",\n                        attrs: {\n                            placeholder: Lg.titleBarTextDescribe()\n                        },\n                        model: {\n                            value: e.settings.titleBarText,\n                            callback: function(t) {\n                                e.$set(e.settings, \"titleBarText\", t)\n                            },\n                            expression: \"settings.titleBarText\"\n                        }\n                    })], 1), e._v(\" \"), t(\"div\", {\n                        staticClass: \"item\"\n                    }, [t(\"div\", [e._v(Lg.runTimeFormat())]), e._v(\" \"), t(\"SimpleInput\", {\n                        staticClass: \"input\",\n                        attrs: {\n                            placeholder: \"hh : mm : ss\"\n                        },\n                        model: {\n                            value: e.settings.runTimeFormat,\n                            callback: function(t) {\n                                e.$set(e.settings, \"runTimeFormat\", t)\n                            },\n                            expression: \"settings.runTimeFormat\"\n                        }\n                    })], 1), e._v(\" \"), t(\"div\", {\n                        staticClass: \"item\"\n                    }, [t(\"div\", [e._v(Lg.useSystemEmoji())]), e._v(\" \"), t(\"SwitchView\", {\n                        model: {\n                            value: e.settings.useSystemEmoji,\n                            callback: function(t) {\n                                e.$set(e.settings, \"useSystemEmoji\", t)\n                            },\n                            expression: \"settings.useSystemEmoji\"\n                        }\n                    })], 1), e._v(\" \"), e.isWindows ? t(\"div\", {\n                        staticClass: \"item\"\n                    }, [t(\"div\", {\n                        staticClass: \"flex items-center\"\n                    }, [t(\"div\", [e._v(Lg.useModeIcons())]), e._v(\" \"), t(\"Info\", [e._v(Lg.useModeIcons())])], 1), e._v(\" \"), t(\"SwitchView\", {\n                        model: {\n                            value: e.settings.useModeIcons,\n                            callback: function(t) {\n                                e.$set(e.settings, \"useModeIcons\", t)\n                            },\n                            expression: \"settings.useModeIcons\"\n                        }\n                    })], 1) : e._e(), e._v(\" \"), e.isWindows && !e.settings.useModeIcons ? t(\"div\", {\n                        staticClass: \"item\"\n                    }, [t(\"div\", {\n                        staticClass: \"flex items-center\"\n                    }, [t(\"div\", [e._v(Lg.customizeTrayIcon())]), e._v(\" \"), t(\"Info\", [e._v(Lg.customizeTrayIconDescribe())])], 1), e._v(\" \"), t(\"div\", {\n                        staticClass: \"item\"\n                    }, [t(\"SimpleInput\", {\n                        staticClass: \"short-input\",\n                        attrs: {\n                            placeholder: \"ICO(.ico) \" + Lg.assetpath()\n                        },\n                        model: {\n                            value: e.settings.iconDefault,\n                            callback: function(t) {\n                                e.$set(e.settings, \"iconDefault\", t)\n                            },\n                            expression: \"settings.iconDefault\"\n                        }\n                    }), e._v(\" \"), t(\"MoreHint\", {\n                        staticClass: \"hint\",\n                        attrs: {\n                            text: Lg.select()\n                        },\n                        on: {\n                            click: e.handleChooseDefaultIcon\n                        }\n                    })], 1)]) : e._e(), e._v(\" \"), e.isWindows && !e.settings.useModeIcons ? t(\"div\", {\n                        staticClass: \"item\"\n                    }, [t(\"div\", {\n                        staticClass: \"flex items-center\"\n                    }, [t(\"div\", [e._v(Lg.customizeTrayIconInProxy())]), e._v(\" \"), t(\"Info\", [e._v(Lg.customizeTrayIconInProxyDescribe())])], 1), e._v(\" \"), t(\"div\", {\n                        staticClass: \"item\"\n                    }, [t(\"SimpleInput\", {\n                        staticClass: \"short-input\",\n                        attrs: {\n                            placeholder: \"ICO(.ico) \" + Lg.assetpath()\n                        },\n                        model: {\n                            value: e.settings.iconSystemProxy,\n                            callback: function(t) {\n                                e.$set(e.settings, \"iconSystemProxy\", t)\n                            },\n                            expression: \"settings.iconSystemProxy\"\n                        }\n                    }), e._v(\" \"), t(\"MoreHint\", {\n                        staticClass: \"hint\",\n                        attrs: {\n                            text: Lg.select()\n                        },\n                        on: {\n                            click: e.handleChooseSystemProxytOnIcon\n                        }\n                    })], 1)]) : e._e(), e._v(\" \"), t(\"div\", {\n                        staticClass: \"item\"\n                    }, [t(\"div\", {\n                        staticClass: \"flex items-center\"\n                    }, [t(\"div\", [e._v(Lg.hideTrayIcon())]), e._v(\" \"), t(\"Info\", [e._v(Lg.hideTrayIconDescribe())])], 1), e._v(\" \"), t(\"SwitchView\", {\n                        model: {\n                            value: e.settings.hideTrayIcon,\n                            callback: function(t) {\n                                e.$set(e.settings, \"hideTrayIcon\", t)\n                            },\n                            expression: \"settings.hideTrayIcon\"\n                        }\n                    })], 1), e._v(\" \"), e.isLinux ? e._e() : t(\"div\", {\n                        staticClass: \"item\"\n                    }, [t(\"div\", {\n                        staticClass: \"flex items-center\"\n                    }, [t(\"div\", [e._v(Lg.trayProxyGroupsStyle())]), e._v(\" \"), t(\"Info\", [t(\"div\", [e._v(Lg.trayProxyGroupsStyleDescribeFirst() + \":\")]), e._v(\" \"), t(\"li\", [t(\"b\", [e._v(Lg.expand())]), e._v(\" - \" + Lg.trayProxyGroupsStyleDescribeSecond())]), e._v(\" \"), t(\"li\", [t(\"b\", [e._v(Lg.submenu())]), e._v(\" - \" + Lg.trayProxyGroupsStyleDescribeThird())]), e._v(\" \"), t(\"li\", [t(\"b\", [e._v(Lg.hidden())]), e._v(\" - \" + Lg.trayProxyGroupsStyleDescribeFourth())])])], 1), e._v(\" \"), t(\"SelectView\", {\n                        attrs: {\n                            items: [Lg.submenu(), Lg.expand(), Lg.hidden()]\n                        },\n                        model: {\n                            value: e.settings.trayProxiesStyle,\n                            callback: function(t) {\n                                e.$set(e.settings, \"trayProxiesStyle\", t)\n                            },\n                            expression: \"settings.trayProxiesStyle\"\n                        }\n                    })], 1), e._v(\" \"), !e.isLinux && [0, 1].includes(e.settings.trayProxiesStyle) ? t(\"div\", {\n                        staticClass: \"item\"\n                    }, [t(\"div\", {\n                        staticClass: \"flex items-center\"\n                    }, [t(\"div\", [e._v(Lg.showTrayProxyDelayIndicator())]), e._v(\" \"), t(\"Info\", [e._v(Lg.showTrayProxyDelayIndicatorDescribe()), t(\"br\"), e._v(\" \"), t(\"br\"), e._v(\"\\n            \" + Lg.color() + \"\\n            \"), t(\"li\", [t(\"div\", {\n                        staticClass: \"bg-green-400 w-2 h-2 rounded-full inline-block\"\n                    }), e._v(\"\\n              - \" + Lg.available() + \"\\n            \")]), e._v(\" \"), t(\"li\", [t(\"div\", {\n                        staticClass: \"bg-red-400 w-2 h-2 rounded-full inline-block\"\n                    }), e._v(\"\\n              - \" + Lg.timeout() + \"\\n            \")]), e._v(\" \"), t(\"li\", [t(\"div\", {\n                        staticClass: \"bg-gray-400 w-2 h-2 rounded-full inline-block\"\n                    }), e._v(\"\\n              - \" + Lg.unknown() + \"\\n            \")])])], 1), e._v(\" \"), t(\"SwitchView\", {\n                        model: {\n                            value: e.settings.showTrayProxyDelayIndicator,\n                            callback: function(t) {\n                                e.$set(e.settings, \"showTrayProxyDelayIndicator\", t)\n                            },\n                            expression: \"settings.showTrayProxyDelayIndicator\"\n                        }\n                    })], 1) : e._e(), e._v(\" \"), e.isLinux ? e._e() : t(\"separator\"), e._v(\" \"), e.isLinux ? e._e() : t(\"div\", {\n                        staticClass: \"item\"\n                    }, [t(\"div\", {\n                        staticClass: \"flex items-center\"\n                    }, [t(\"div\", [e._v(Lg.enhancedTray())]), e._v(\" \"), t(\"Info\", [e._v(Lg.enhancedTrayDescribeFirst()), t(\"br\"), t(\"br\"), t(\"b\", [e._v(\"\")]), e._v(Lg.enhancedTrayDescribeSecond() + ' \\n           \\n            '), t(\"a\", {\n                        attrs: {\n                            href: \"https://web.archive.org/web/20230304232259/docs.cfw.lbyczf.com/contents/tray.html\"\n                        }\n                    }, [e._v(Lg.onlineDocs())])])], 1), e._v(\" \"), t(\"TrayOrder\", {\n                        model: {\n                            value: e.settings.trayOrders,\n                            callback: function(t) {\n                                e.$set(e.settings, \"trayOrders\", t)\n                            },\n                            expression: \"settings.trayOrders\"\n                        }\n                    })], 1), e._v(\" \"), e.isLinux ? e._e() : t(\"div\", {\n                        staticClass: \"item\"\n                    }, [t(\"div\", [e._v(Lg.text())]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"item\"\n                    }, [t(\"SimpleInput\", {\n                        attrs: {\n                            placeholder: Lg.textdisplayTray()\n                        },\n                        model: {\n                            value: e.settings.trayText,\n                            callback: function(t) {\n                                e.$set(e.settings, \"trayText\", t)\n                            },\n                            expression: \"settings.trayText\"\n                        }\n                    })], 1)]), e._v(\" \"), e.settings.trayText ? e._e() : t(\"div\", {\n                        staticClass: \"item\"\n                    }, [t(\"div\", [e._v(Lg.script())]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"item\"\n                    }, [t(\"SimpleInput\", {\n                        staticClass: \"short-input\",\n                        attrs: {\n                            placeholder: Lg.scriptToRun()\n                        },\n                        model: {\n                            value: e.settings.trayScriptPath,\n                            callback: function(t) {\n                                e.$set(e.settings, \"trayScriptPath\", t)\n                            },\n                            expression: \"settings.trayScriptPath\"\n                        }\n                    }), e._v(\" \"), t(\"MoreHint\", {\n                        staticClass: \"hint\",\n                        attrs: {\n                            text: Lg.select()\n                        },\n                        on: {\n                            click: e.handleSelectTrayScriptPath\n                        }\n                    })], 1)]), e._v(\" \"), !e.settings.trayText && e.settings.trayScriptPath ? t(\"div\", {\n                        staticClass: \"item\"\n                    }, [t(\"div\", [e._v(Lg.scriptInterval())]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"item\"\n                    }, [t(\"SimpleInput\", {\n                        staticClass: \"shorter-input\",\n                        attrs: {\n                            placeholder: \"seconds\",\n                            suffix: \"s\",\n                            type: \"number\"\n                        },\n                        model: {\n                            value: e.settings.trayScriptInterval,\n                            callback: function(t) {\n                                e.$set(e.settings, \"trayScriptInterval\", t)\n                            },\n                            expression: \"settings.trayScriptInterval\"\n                        }\n                    }), e._v(\" \"), t(\"MoreHint\", {\n                        staticClass: \"hint\",\n                        attrs: {\n                            text: \"Manual Run\"\n                        },\n                        on: {\n                            click: e.handleTrayScriptManualRun\n                        }\n                    })], 1)]) : e._e(), e._v(\" \"), e.isWindows ? t(\"div\", {\n                        staticClass: \"item\"\n                    }, [t(\"div\", [e._v(Lg.transparent())]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"item\"\n                    }, [t(\"SimpleInput\", {\n                        staticClass: \"shorter-input\",\n                        staticStyle: {\n                            \"margin-right\": \"10px\"\n                        },\n                        attrs: {\n                            placeholder: Lg.foregroundColor()\n                        },\n                        model: {\n                            value: e.settings.trayColorForeground,\n                            callback: function(t) {\n                                e.$set(e.settings, \"trayColorForeground\", t)\n                            },\n                            expression: \"settings.trayColorForeground\"\n                        }\n                    }), e._v(\" \"), t(\"SwitchView\", {\n                        model: {\n                            value: e.settings.trayColorTransparent,\n                            callback: function(t) {\n                                e.$set(e.settings, \"trayColorTransparent\", t)\n                            },\n                            expression: \"settings.trayColorTransparent\"\n                        }\n                    })], 1)]) : e._e()], 1), e._v(\" \"), e.isLinux ? e._e() : t(\"Section\", {\n                        attrs: {\n                            title: Lg.sysProxy()\n                        }\n                    }, [e.isWindows ? t(\"div\", {\n                        staticClass: \"item\"\n                    }, [t(\"div\", {\n                        staticClass: \"flex items-center\"\n                    }, [t(\"div\", [e._v(Lg.type())]), e._v(\" \"), t(\"Info\", [e._v(Lg.typeDescribe()), t(\"br\"), t(\"br\"), e._v(\"\\n            \" + Lg.forDetails()), t(\"br\"), e._v(\" \"), t(\"ul\", [t(\"li\", [t(\"a\", {\n                        attrs: {\n                            href: \"https://support.microsoft.com/en-us/windows/use-a-proxy-server-in-windows-03096c53-0554-4ffe-b6ab-8b1deee8dae1\"\n                        }\n                    }, [e._v(Lg.useProxyServerWindows())])])])])], 1), e._v(\" \"), t(\"SelectView\", {\n                        attrs: {\n                            items: [\"HTTP\", \"PAC\"]\n                        },\n                        model: {\n                            value: e.settings.systemProxyTypeIndex,\n                            callback: function(t) {\n                                e.$set(e.settings, \"systemProxyTypeIndex\", t)\n                            },\n                            expression: \"settings.systemProxyTypeIndex\"\n                        }\n                    })], 1) : e._e(), e._v(\" \"), e.isWindows && 1 === e.settings.systemProxyTypeIndex ? t(\"div\", {\n                        staticClass: \"item\"\n                    }, [t(\"div\", {\n                        staticClass: \"flex items-center\"\n                    }, [t(\"div\", [e._v(Lg.contentPAC())]), e._v(\" \"), t(\"Info\", [t(\"a\", {\n                        attrs: {\n                            href: \"https://developer.mozilla.org/en-US/docs/Web/HTTP/Proxy_servers_and_tunneling/Proxy_Auto-Configuration_PAC_file\"\n                        }\n                    }, [e._v(\"Learn PAC\")]), e._v(\" \"), t(\"br\"), t(\"br\"), e._v(\" \"), t(\"span\", {\n                        staticClass: \"quote\"\n                    }, [e._v(\"%mixed-port%\")]), e._v(\" is the placeholder of the\\n            \"), t(\"strong\", [e._v(Lg.port())]), e._v(\" in \"), t(\"strong\", [e._v(Lg.general())])])], 1), e._v(\" \"), t(\"MoreHint\", {\n                        staticClass: \"hint\",\n                        attrs: {\n                            text: Lg.edit()\n                        },\n                        on: {\n                            click: e.handleEditPACContent\n                        }\n                    })], 1) : e._e(), e._v(\" \"), e.isWindows && 1 === e.settings.systemProxyTypeIndex ? t(\"div\", {\n                        staticClass: \"item\"\n                    }, [t(\"div\", {\n                        staticClass: \"flex items-center\"\n                    }, [t(\"div\", [e._v(\"PAC Server Port\")]), e._v(\" \"), t(\"Info\", [e._v(\"\\n            Leave it empty to use a random port.\"), t(\"br\"), t(\"br\"), e._v(\" \"), t(\"strong\", [e._v(\"Restart the APP\")]), e._v(\" to take effect.\\n          \")])], 1), e._v(\" \"), t(\"div\", {\n                        staticClass: \"item\"\n                    }, [t(\"SimpleInput\", {\n                        attrs: {\n                            placeholder: \"random\",\n                            type: \"number\"\n                        },\n                        model: {\n                            value: e.settings.innerServerPort,\n                            callback: function(t) {\n                                e.$set(e.settings, \"innerServerPort\", t)\n                            },\n                            expression: \"settings.innerServerPort\"\n                        }\n                    })], 1)]) : e._e(), e._v(\" \"), 1 !== e.settings.systemProxyTypeIndex || e.isMacOS ? t(\"div\", {\n                        staticClass: \"item\"\n                    }, [t(\"div\", {\n                        staticClass: \"flex items-center\"\n                    }, [t(\"div\", [e._v(Lg.bypassDomain())]), e._v(\" \"), t(\"Info\", [e._v(Lg.bypassDomainDescribeStart()), t(\"br\"), t(\"br\"), e._v(Lg.bypassDomainDescribeEnd()), t(\"br\"), t(\"br\"), e._v(\"\\n            \" + Lg.forDetails()), t(\"br\"), e._v(\" \"), t(\"ul\", [t(\"li\", [t(\"a\", {\n                        attrs: {\n                            href: \"https://web.archive.org/web/20230304232259/docs.cfw.lbyczf.com/contents/bypass.html\"\n                        }\n                    }, [e._v(Lg.onlineDocs())])]), e._v(\" \"), t(\"li\", [t(\"a\", {\n                        attrs: {\n                            href: \"https://support.microsoft.com/en-us/windows/use-a-proxy-server-in-windows-03096c53-0554-4ffe-b6ab-8b1deee8dae1\"\n                        }\n                    }, [e._v(Lg.useProxyServerWindows() + \"\\n                \")])]), e._v(\" \"), t(\"li\", [t(\"a\", {\n                        attrs: {\n                            href: \"https://support.apple.com/guide/mac-help/enter-proxy-server-settings-on-mac-mchlp25912/mac\"\n                        }\n                    }, [e._v(Lg.enterProxyServerSettingsMac())])]), e._v(\" \"), t(\"li\", [t(\"a\", {\n                        attrs: {\n                            href: \"https://source.chromium.org/chromium/chromium/src/+/main:net/proxy_resolution/\"\n                        }\n                    }, [e._v(\"Chromium\\n                \")])])])])], 1), e._v(\" \"), t(\"MoreHint\", {\n                        staticClass: \"hint\",\n                        attrs: {\n                            text: Lg.edit()\n                        },\n                        on: {\n                            click: e.handleEditBypass\n                        }\n                    })], 1) : e._e(), e._v(\" \"), e.isWindows && 1 !== e.settings.systemProxyTypeIndex ? t(\"div\", {\n                        staticClass: \"item\"\n                    }, [t(\"div\", {\n                        staticClass: \"flex items-center\"\n                    }, [t(\"div\", [e._v(Lg.specifyProtocol())]), e._v(\" \"), t(\"Info\", [e._v(Lg.specifyProtocolDescribeStart()), t(\"br\"), t(\"br\"), e._v(Lg.specifyProtocolDescribeEnd()), t(\"br\"), t(\"br\"), e._v(\"\\n            \" + Lg.forDetails()), t(\"br\"), e._v(\" \"), t(\"ul\", [t(\"li\", [t(\"a\", {\n                        attrs: {\n                            href: \"https://github.com/python/cpython/pull/26307\"\n                        }\n                    }, [e._v(\"python/cpython#26307\")])])])])], 1), e._v(\" \"), t(\"SwitchView\", {\n                        model: {\n                            value: e.settings.specifyHttpProxyProtocol,\n                            callback: function(t) {\n                                e.$set(e.settings, \"specifyHttpProxyProtocol\", t)\n                            },\n                            expression: \"settings.specifyHttpProxyProtocol\"\n                        }\n                    })], 1) : e._e(), e._v(\" \"), t(\"div\", {\n                        staticClass: \"item\"\n                    }, [t(\"div\", {\n                        staticClass: \"flex items-center\"\n                    }, [t(\"div\", [e._v(Lg.staticHost())]), e._v(\" \"), t(\"Info\", [e._v(Lg.staticHostDescribe())])], 1), e._v(\" \"), t(\"div\", {\n                        staticClass: \"item\"\n                    }, [t(\"SimpleInput\", {\n                        attrs: {\n                            placeholder: \"127.0.0.1\"\n                        },\n                        model: {\n                            value: e.settings.staticSystemProxyHost,\n                            callback: function(t) {\n                                e.$set(e.settings, \"staticSystemProxyHost\", t)\n                            },\n                            expression: \"settings.staticSystemProxyHost\"\n                        }\n                    })], 1)])]), e._v(\" \"), t(\"Section\", {\n                        attrs: {\n                            title: Lg.mixin()\n                        }\n                    }, [t(\"div\", {\n                        staticClass: \"item\"\n                    }, [t(\"div\", {\n                        staticClass: \"flex items-center\"\n                    }, [t(\"div\", [e._v(Lg.type())]), e._v(\" \"), t(\"Info\", [t(\"a\", {\n                        attrs: {\n                            href: \"https://web.archive.org/web/20230304232259/docs.cfw.lbyczf.com/contents/mixin.html\"\n                        }\n                    }, [e._v(Lg.onlineDocs())])])], 1), e._v(\" \"), t(\"SelectView\", {\n                        attrs: {\n                            items: [\"YAML\", \"JavaScript\"]\n                        },\n                        model: {\n                            value: e.settings.mixinType,\n                            callback: function(t) {\n                                e.$set(e.settings, \"mixinType\", t)\n                            },\n                            expression: \"settings.mixinType\"\n                        }\n                    })], 1), e._v(\" \"), t(\"div\", {\n                        staticClass: \"item\"\n                    }, [t(\"div\", [e._v(\"YAML\")]), e._v(\" \"), t(\"MoreHint\", {\n                        staticClass: \"hint\",\n                        attrs: {\n                            text: Lg.edit()\n                        },\n                        on: {\n                            click: e.handleEditMixinYAML\n                        }\n                    })], 1), e._v(\" \"), t(\"div\", {\n                        staticClass: \"item\"\n                    }, [t(\"div\", [e._v(\"JavaScript\")]), e._v(\" \"), t(\"MoreHint\", {\n                        staticClass: \"hint\",\n                        attrs: {\n                            text: Lg.edit()\n                        },\n                        on: {\n                            click: e.handleEditMixinJS\n                        }\n                    })], 1)]), e._v(\" \"), t(\"Section\", {\n                        attrs: {\n                            title: Lg.proxies()\n                        }\n                    }, [t(\"div\", {\n                        staticClass: \"item\"\n                    }, [t(\"div\", {\n                        staticClass: \"flex items-center\"\n                    }, [t(\"div\", [e._v(Lg.proxyItemWidth())]), e._v(\" \"), t(\"Info\", [e._v(Lg.proxyItemWidthDescribe())])], 1), e._v(\" \"), t(\"SimpleInput\", {\n                        attrs: {\n                            placeholder: \"290\",\n                            suffix: \"px\"\n                        },\n                        model: {\n                            value: e.settings.proxyItemWidth,\n                            callback: function(t) {\n                                e.$set(e.settings, \"proxyItemWidth\", t)\n                            },\n                            expression: \"settings.proxyItemWidth\"\n                        }\n                    })], 1), e._v(\" \"), t(\"div\", {\n                        staticClass: \"item\"\n                    }, [t(\"div\", {\n                        staticClass: \"flex items-center\"\n                    }, [t(\"div\", [e._v(Lg.miniListWidth())]), e._v(\" \"), t(\"Info\", [e._v(Lg.miniListWidthDescribe())])], 1), e._v(\" \"), t(\"SimpleInput\", {\n                        attrs: {\n                            placeholder: \"100(0=\" + Lg.hide() + \")\",\n                            suffix: \"px\"\n                        },\n                        model: {\n                            value: e.settings.proxyMiniListWidth,\n                            callback: function(t) {\n                                e.$set(e.settings, \"proxyMiniListWidth\", t)\n                            },\n                            expression: \"settings.proxyMiniListWidth\"\n                        }\n                    })], 1), e._v(\" \"), t(\"div\", {\n                        staticClass: \"item\"\n                    }, [t(\"div\", [e._v(Lg.orderBy())]), e._v(\" \"), t(\"SelectView\", {\n                        attrs: {\n                            items: Lg.orderByOption()\n                        },\n                        model: {\n                            value: e.settings.proxyOrder,\n                            callback: function(t) {\n                                e.$set(e.settings, \"proxyOrder\", t)\n                            },\n                            expression: \"settings.proxyOrder\"\n                        }\n                    })], 1), e._v(\" \"), t(\"div\", {\n                        staticClass: \"item\"\n                    }, [t(\"div\", {\n                        staticClass: \"flex items-center\"\n                    }, [t(\"div\", [e._v(Lg.delayType())]), e._v(\" \"), t(\"Info\", [t(\"li\", [t(\"b\", [e._v(Lg.default())]), e._v(\" - \" + Lg.delayTypeDescribeStart())]), e._v(\" \"), t(\"li\", [t(\"b\", [e._v(Lg.meanDelay())]), e._v(\" - \" + Lg.delayTypeDescribeEnd())])])], 1), e._v(\" \"), t(\"SelectView\", {\n                        attrs: {\n                            items: [Lg.default(), Lg.meanDelay()]\n                        },\n                        model: {\n                            value: e.settings.proxyDelayType,\n                            callback: function(t) {\n                                e.$set(e.settings, \"proxyDelayType\", t)\n                            },\n                            expression: \"settings.proxyDelayType\"\n                        }\n                    })], 1), e._v(\" \"), t(\"div\", {\n                        staticClass: \"item\"\n                    }, [t(\"div\", {\n                        staticClass: \"flex items-center\"\n                    }, [t(\"div\", [e._v(Lg.latencyTestURL())]), e._v(\" \"), t(\"Info\", [e._v(Lg.latencyTestURLDescribe() + \"\\n           \")])], 1), e._v(\" \"), t(\"SimpleInput\", {\n                        attrs: {\n                            placeholder: \"https://www.gstatic.com/generate_204\"\n                        },\n                        model: {\n                            value: e.settings.latencyUrl,\n                            callback: function(t) {\n                                e.$set(e.settings, \"latencyUrl\", t)\n                            },\n                            expression: \"settings.latencyUrl\"\n                        }\n                    })], 1), e._v(\" \"), t(\"div\", {\n                        staticClass: \"item\"\n                    }, [t(\"div\", [e._v(Lg.latencyTestTimeout())]), e._v(\" \"), t(\"SimpleInput\", {\n                        attrs: {\n                            type: \"number\",\n                            placeholder: \"3000\",\n                            suffix: \"ms\"\n                        },\n                        model: {\n                            value: e.settings.latencyTimeout,\n                            callback: function(t) {\n                                e.$set(e.settings, \"latencyTimeout\", t)\n                            },\n                            expression: \"settings.latencyTimeout\"\n                        }\n                    })], 1), e._v(\" \"), t(\"div\", {\n                        staticClass: \"item\"\n                    }, [t(\"div\", {\n                        staticClass: \"flex items-center\"\n                    }, [t(\"div\", [e._v(Lg.showFilter())]), e._v(\" \"), t(\"Info\", [e._v(Lg.showFilterDescribe() + \"\\n           \")])], 1), e._v(\" \"), t(\"SwitchView\", {\n                        model: {\n                            value: e.settings.showProxyFilter,\n                            callback: function(t) {\n                                e.$set(e.settings, \"showProxyFilter\", t)\n                            },\n                            expression: \"settings.showProxyFilter\"\n                        }\n                    })], 1), e._v(\" \"), t(\"div\", {\n                        staticClass: \"item\"\n                    }, [t(\"div\", {\n                        staticClass: \"flex items-center\"\n                    }, [t(\"div\", [e._v(Lg.hideUnselectableGroup())]), e._v(\" \"), t(\"Info\", [e._v(Lg.hideUnselectableGroupDescribe() + \"\\n            \")])], 1), e._v(\" \"), t(\"SwitchView\", {\n                        model: {\n                            value: e.settings.hideUnselectableGroup,\n                            callback: function(t) {\n                                e.$set(e.settings, \"hideUnselectableGroup\", t)\n                            },\n                            expression: \"settings.hideUnselectableGroup\"\n                        }\n                    })], 1)]), e._v(\" \"), t(\"Section\", {\n                        attrs: {\n                            title: Lg.connections()\n                        }\n                    }, [t(\"div\", {\n                        staticClass: \"item\"\n                    }, [t(\"div\", {\n                        staticClass: \"flex items-center\"\n                    }, [t(\"div\", [e._v(Lg.breakWhenProxyChange())]), e._v(\" \"), t(\"Info\", [t(\"div\", [e._v(\"\\n              \" + Lg.breakWhenProxyChangeDescribeFirst() + \"\\n            \")]), e._v(\" \"), t(\"li\", [t(\"b\", [e._v(Lg.breakWhenProxyChangeDescribeSecond())]), e._v(\" - \" + Lg.breakWhenProxyChangeDescribeThird())]), e._v(\" \"), t(\"li\", [t(\"b\", [e._v(Lg.breakWhenProxyChangeDescribeFourth())]), e._v(\" - \" + Lg.breakWhenProxyChangeDescribeFifth())]), e._v(\" \"), t(\"li\", [t(\"b\", [e._v(Lg.all())]), e._v(\" - \" + Lg.breakWhenProxyChangeDescribeSeventh())])])], 1), e._v(\" \"), t(\"SelectView\", {\n                        attrs: {\n                            items: Lg.breakWhenProxyChangeOption()\n                        },\n                        model: {\n                            value: e.settings.connProxy,\n                            callback: function(t) {\n                                e.$set(e.settings, \"connProxy\", t)\n                            },\n                            expression: \"settings.connProxy\"\n                        }\n                    })], 1), e._v(\" \"), t(\"div\", {\n                        staticClass: \"item\"\n                    }, [t(\"div\", {\n                        staticClass: \"flex items-center\"\n                    }, [t(\"div\", [e._v(Lg.breakWhenProfileChange())]), e._v(\" \"), t(\"Info\", [e._v(Lg.breakWhenProfileChangeDescribe() + \"\\n            \")])], 1), e._v(\" \"), t(\"SwitchView\", {\n                        model: {\n                            value: e.settings.connProfile,\n                            callback: function(t) {\n                                e.$set(e.settings, \"connProfile\", t)\n                            },\n                            expression: \"settings.connProfile\"\n                        }\n                    })], 1), e._v(\" \"), t(\"div\", {\n                        staticClass: \"item\"\n                    }, [t(\"div\", {\n                        staticClass: \"flex items-center\"\n                    }, [t(\"div\", [e._v(Lg.breakWhenModeChange())]), e._v(\" \"), t(\"Info\", [e._v(Lg.breakWhenModeChangeDescribe())])], 1), e._v(\" \"), t(\"SwitchView\", {\n                        model: {\n                            value: e.settings.connMode,\n                            callback: function(t) {\n                                e.$set(e.settings, \"connMode\", t)\n                            },\n                            expression: \"settings.connMode\"\n                        }\n                    })], 1), e._v(\" \"), t(\"div\", {\n                        staticClass: \"item\"\n                    }, [t(\"div\", {\n                        staticClass: \"flex items-center\"\n                    }, [t(\"div\", [e._v(Lg.showProcessIfPresent())]), e._v(\" \"), t(\"Info\", [e._v(Lg.showProcessIfPresentDescribe() + \" \\n            \")])], 1), e._v(\" \"), t(\"SwitchView\", {\n                        model: {\n                            value: e.settings.connShowProcess,\n                            callback: function(t) {\n                                e.$set(e.settings, \"connShowProcess\", t)\n                            },\n                            expression: \"settings.connShowProcess\"\n                        }\n                    })], 1), e._v(\" \"), t(\"div\", {\n                        staticClass: \"item\"\n                    }, [t(\"div\", {\n                        staticClass: \"flex items-center\"\n                    }, [t(\"div\", [e._v(Lg.displayChainType())]), e._v(\" \"), t(\"Info\", [t(\"div\", [e._v(\"\\n              \" + Lg.displayChainTypeDescribe() + \"\\n            \")]), e._v(\" \"), t(\"li\", [t(\"b\", [e._v(Lg.proxy())]), e._v(Lg.proxyName())]), e._v(\" \"), t(\"li\", [t(\"b\", [e._v(Lg.group())]), e._v(Lg.groupName())]), e._v(\" \"), t(\"li\", [t(\"b\", [e._v(Lg.both())]), e._v(Lg.bothName())])])], 1), e._v(\" \"), t(\"SelectView\", {\n                        attrs: {\n                            items: Lg.displayChainTypeOption()\n                        },\n                        model: {\n                            value: e.settings.connChainType,\n                            callback: function(t) {\n                                e.$set(e.settings, \"connChainType\", t)\n                            },\n                            expression: \"settings.connChainType\"\n                        }\n                    })], 1)]), e._v(\" \"), t(\"Section\", {\n                        attrs: {\n                            title: Lg.providers()\n                        }\n                    }, [t(\"div\", {\n                        staticClass: \"item\"\n                    }, [t(\"div\", [e._v(Lg.useCFWEditor())]), e._v(\" \"), t(\"SwitchView\", {\n                        model: {\n                            value: e.settings.editProfileWithCFWEditor,\n                            callback: function(t) {\n                                e.$set(e.settings, \"editProfileWithCFWEditor\", t)\n                            },\n                            expression: \"settings.editProfileWithCFWEditor\"\n                        }\n                    })], 1)]), e._v(\" \"), t(\"Section\", {\n                        attrs: {\n                            title: Lg.outbound()\n                        }\n                    }, [t(\"div\", {\n                        staticClass: \"item\"\n                    }, [t(\"div\", {\n                        staticClass: \"flex items-center\"\n                    }, [t(\"div\", [e._v(Lg.interfaceName())]), e._v(\" \"), t(\"Info\", [e._v(Lg.interfaceNameDescribe() + \"\\n           \")])], 1), e._v(\" \"), t(\"div\", {\n                        staticClass: \"item\"\n                    }, [e.detectedInterfaceName ? t(\"MoreHint\", {\n                        staticClass: \"interface-hint\",\n                        attrs: {\n                            text: Lg.detected() + \": \".concat(e.detectedInterfaceName),\n                            clickable: !1\n                        }\n                    }) : e._e(), e._v(\" \"), t(\"MoreHint\", {\n                        staticClass: \"hint\",\n                        attrs: {\n                            text: e.settings.interfaceName || Lg.select()\n                        },\n                        on: {\n                            click: e.handleSelectInterface\n                        }\n                    })], 1)])]), e._v(\" \"), t(\"Section\", {\n                        attrs: {\n                            title: Lg.childProcesses()\n                        }\n                    }, [t(\"div\", {\n                        staticClass: \"item\"\n                    }, [t(\"div\", {\n                        staticClass: \"flex items-center\"\n                    }, [t(\"div\", [e._v(Lg.processes())]), e._v(\" \"), t(\"Info\", [e._v(Lg.processesDescribe() + \",\\n            \"), t(\"a\", {\n                        attrs: {\n                            href: \"https://web.archive.org/web/20230304232259/docs.cfw.lbyczf.com/contents/childprocess.html\"\n                        }\n                    }, [e._v(Lg.onlineDocs())])])], 1), e._v(\" \"), t(\"MoreHint\", {\n                        staticClass: \"hint\",\n                        attrs: {\n                            text: Lg.edit()\n                        },\n                        on: {\n                            click: e.handleEditChildProcess\n                        }\n                    })], 1)]), e._v(\" \"), t(\"Section\", {\n                        attrs: {\n                            title: Lg.profiles()\n                        }\n                    }, [t(\"div\", {\n                        staticClass: \"item\"\n                    }, [t(\"div\", {\n                        staticClass: \"flex items-center\"\n                    }, [t(\"div\", [e._v(Lg.parsers())]), e._v(\" \"), t(\"Info\", [e._v(Lg.parsersDescribeStart() + \"\\n            \"), t(\"a\", {\n                        attrs: {\n                            href: \"https://web.archive.org/web/20230304232259/docs.cfw.lbyczf.com/contents/diff.html\"\n                        }\n                    }, [e._v(\"Diff\")]), e._v(Lg.parsersDescribeEnd() + \"\\n            \"), t(\"ul\", [t(\"li\", [t(\"a\", {\n                        attrs: {\n                            href: \"https://web.archive.org/web/20230304232259/docs.cfw.lbyczf.com/contents/parser.html\"\n                        }\n                    }, [e._v(Lg.onlineDocs())])])])])], 1), e._v(\" \"), t(\"MoreHint\", {\n                        staticClass: \"hint\",\n                        attrs: {\n                            text: Lg.edit()\n                        },\n                        on: {\n                            click: e.handleEditProfileParsers\n                        }\n                    })], 1), e._v(\" \"), t(\"div\", {\n                        staticClass: \"item\"\n                    }, [t(\"div\", [e._v(Lg.consoleOutput())]), e._v(\" \"), t(\"MoreHint\", {\n                        staticClass: \"hint\",\n                        attrs: {\n                            text: Lg.openFile()\n                        },\n                        on: {\n                            click: e.handleOpenConsoleFile\n                        }\n                    })], 1), e._v(\" \"), t(\"separator\"), e._v(\" \"), t(\"div\", {\n                        staticClass: \"item\"\n                    }, [t(\"div\", {\n                        staticClass: \"flex items-center\"\n                    }, [t(\"div\", [e._v(Lg.folderPath())]), e._v(\" \"), t(\"Info\", [e._v(Lg.folderPathDescribe())])], 1), e._v(\" \"), t(\"div\", {\n                        staticClass: \"item\"\n                    }, [t(\"SimpleInput\", {\n                        staticClass: \"short-input\",\n                        attrs: {\n                            placeholder: Lg.profilesFolderPath()\n                        },\n                        model: {\n                            value: e.settings.profilePath,\n                            callback: function(t) {\n                                e.$set(e.settings, \"profilePath\", t)\n                            },\n                            expression: \"settings.profilePath\"\n                        }\n                    }), e._v(\" \"), t(\"MoreHint\", {\n                        staticClass: \"hint\",\n                        attrs: {\n                            text: Lg.select()\n                        },\n                        on: {\n                            click: e.handleChooseProfilePath\n                        }\n                    })], 1)]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"item\"\n                    }, [t(\"div\", {\n                        staticClass: \"flex items-center\"\n                    }, [t(\"div\", [e._v(Lg.requestHeaders())]), e._v(\" \"), t(\"Info\", [e._v(Lg.requestHeadersDescribeFirst()), t(\"br\"), t(\"br\"), e._v(\"\\n            \" + Lg.requestHeadersDescribeSecond() + \"\\n            \")])], 1), e._v(\" \"), t(\"MoreHint\", {\n                        staticClass: \"hint\",\n                        attrs: {\n                            text: Lg.edit()\n                        },\n                        on: {\n                            click: e.handleEditHeaders\n                        }\n                    })], 1), e._v(\" \"), t(\"div\", {\n                        staticClass: \"item\"\n                    }, [t(\"div\", {\n                        staticClass: \"flex items-center\"\n                    }, [t(\"div\", [e._v(Lg.selectAfterUpdated())]), e._v(\" \"), t(\"Info\", [e._v(Lg.selectAfterUpdatedDescribe())])], 1), e._v(\" \"), t(\"SwitchView\", {\n                        model: {\n                            value: e.settings.selectAfterUpdated,\n                            callback: function(t) {\n                                e.$set(e.settings, \"selectAfterUpdated\", t)\n                            },\n                            expression: \"settings.selectAfterUpdated\"\n                        }\n                    })], 1), e._v(\" \"), t(\"div\", {\n                        staticClass: \"item\"\n                    }, [t(\"div\", {\n                        staticClass: \"flex items-center\"\n                    }, [t(\"div\", [e._v(Lg.updateThroughBuiltInProxy())]), e._v(\" \"), t(\"Info\", [e._v(Lg.updateThroughBuiltInProxyDescribe())])], 1), e._v(\" \"), t(\"SwitchView\", {\n                        model: {\n                            value: e.settings.updateProfileThroughClashProxy,\n                            callback: function(t) {\n                                e.$set(e.settings, \"updateProfileThroughClashProxy\", t)\n                            },\n                            expression: \"settings.updateProfileThroughClashProxy\"\n                        }\n                    })], 1)], 1), e._v(\" \"), t(\"Section\", {\n                        attrs: {\n                            title: Lg.logs()\n                        }\n                    }, [t(\"div\", {\n                        staticClass: \"item\"\n                    }, [t(\"div\", {\n                        staticClass: \"flex items-center\"\n                    }, [t(\"div\", [e._v(Lg.preload())]), e._v(\" \"), t(\"Info\", [e._v(Lg.preloadDescribe())])], 1), e._v(\" \"), t(\"SimpleInput\", {\n                        attrs: {\n                            type: \"number\",\n                            placeholder: \"30\",\n                            suffix: Lg.lines()\n                        },\n                        model: {\n                            value: e.settings.logPreloadLineCount,\n                            callback: function(t) {\n                                e.$set(e.settings, \"logPreloadLineCount\", t)\n                            },\n                            expression: \"settings.logPreloadLineCount\"\n                        }\n                    })], 1)]), e._v(\" \"), t(\"Section\", {\n                        attrs: {\n                            title: Lg.ssid()\n                        }\n                    }, [t(\"div\", {\n                        staticClass: \"item\"\n                    }, [t(\"div\", {\n                        staticClass: \"relative flex items-center\"\n                    }, [t(\"div\", [e._v(Lg.strategy())]), e._v(\" \"), t(\"Info\", [t(\"div\", [e._v(Lg.strategyDescribe()), t(\"a\", {\n                        attrs: {\n                            href: \"https://web.archive.org/web/20230304232259/docs.cfw.lbyczf.com/contents/ssid.html\"\n                        }\n                    }, [e._v(Lg.onlineDocs())])])])], 1), e._v(\" \"), t(\"div\", {\n                        staticClass: \"flex-grow\"\n                    }), e._v(\" \"), t(\"MoreHint\", {\n                        staticClass: \"hint\",\n                        attrs: {\n                            text: Lg.edit()\n                        },\n                        on: {\n                            click: e.handleEditSSIDStrategy\n                        }\n                    })], 1), e._v(\" \"), t(\"div\", {\n                        staticClass: \"item\"\n                    }, [t(\"div\", {\n                        staticClass: \"relative flex items-center\"\n                    }, [t(\"div\", [e._v(Lg.getCurrentSSID())]), e._v(\" \"), t(\"Info\", [t(\"div\", [e._v(\"\\n              \" + Lg.getCurrentSSIDDescribe()), t(\"span\", {\n                        staticClass: \"quote\"\n                    }, [e._v(\",\")])])])], 1), e._v(\" \"), t(\"div\", {\n                        staticClass: \"flex-grow\"\n                    }), e._v(\" \"), t(\"MoreHint\", {\n                        staticClass: \"hint\",\n                        attrs: {\n                            text: Lg.fetch()\n                        },\n                        on: {\n                            click: e.handleFetchCurrentSSID\n                        }\n                    })], 1)]), e._v(\" \"), t(\"Section\", {\n                        attrs: {\n                            title: Lg.actions()\n                        }\n                    }, [t(\"div\", {\n                        staticClass: \"item\"\n                    }, [t(\"div\", {\n                        staticClass: \"flex items-center\"\n                    }, [t(\"div\", [e._v(Lg.script())]), e._v(\" \"), t(\"Info\", [e._v(Lg.scriptActionDescribe() + \",\\n            \"), t(\"a\", {\n                        attrs: {\n                            href: \"https://web.archive.org/web/20230304232259/docs.cfw.lbyczf.com/contents/actions.html\"\n                        }\n                    }, [e._v(Lg.onlineDocs())])])], 1), e._v(\" \"), t(\"MoreHint\", {\n                        staticClass: \"hint\",\n                        attrs: {\n                            text: Lg.edit()\n                        },\n                        on: {\n                            click: e.handleEditActionScripts\n                        }\n                    })], 1), e._v(\" \"), t(\"div\", {\n                        staticClass: \"item\"\n                    }, [t(\"div\", [e._v(Lg.consoleOutput())]), e._v(\" \"), t(\"MoreHint\", {\n                        staticClass: \"hint\",\n                        attrs: {\n                            text: Lg.openFile()\n                        },\n                        on: {\n                            click: e.handleOpenActionScriptsConsoleFile\n                        }\n                    })], 1)]), e._v(\" \"), t(\"Section\", {\n                        attrs: {\n                            title: Lg.shortcut()\n                        }\n                    }, [e.isLinux ? e._e() : t(\"div\", {\n                        staticClass: \"item\"\n                    }, [t(\"div\", [e._v(Lg.sysProxy())]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"item\"\n                    }, [t(\"KeyCapture\", {\n                        staticClass: \"input\",\n                        attrs: {\n                            placeholder: Lg.record()\n                        },\n                        model: {\n                            value: e.settings.shortcutSystemProxy,\n                            callback: function(t) {\n                                e.$set(e.settings, \"shortcutSystemProxy\", t)\n                            },\n                            expression: \"settings.shortcutSystemProxy\"\n                        }\n                    })], 1)]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"item\"\n                    }, [t(\"div\", [e._v(Lg.TUNmode())]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"item\"\n                    }, [t(\"KeyCapture\", {\n                        staticClass: \"input\",\n                        attrs: {\n                            placeholder: Lg.record()\n                        },\n                        model: {\n                            value: e.settings.shortcutTun,\n                            callback: function(t) {\n                                e.$set(e.settings, \"shortcutTun\", t)\n                            },\n                            expression: \"settings.shortcutTun\"\n                        }\n                    })], 1)]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"item\"\n                    }, [t(\"div\", [e._v(Lg.mixin())]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"item\"\n                    }, [t(\"KeyCapture\", {\n                        staticClass: \"input\",\n                        attrs: {\n                            placeholder: Lg.record()\n                        },\n                        model: {\n                            value: e.settings.shortcutMixin,\n                            callback: function(t) {\n                                e.$set(e.settings, \"shortcutMixin\", t)\n                            },\n                            expression: \"settings.shortcutMixin\"\n                        }\n                    })], 1)]), e._v(\" \"), t(\"separator\"), e._v(\" \"), t(\"div\", {\n                        staticClass: \"item\"\n                    }, [t(\"div\", [e._v(Lg.globalMode())]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"item\"\n                    }, [t(\"KeyCapture\", {\n                        staticClass: \"input\",\n                        attrs: {\n                            placeholder: Lg.record()\n                        },\n                        model: {\n                            value: e.settings.shortcutGlobalMode,\n                            callback: function(t) {\n                                e.$set(e.settings, \"shortcutGlobalMode\", t)\n                            },\n                            expression: \"settings.shortcutGlobalMode\"\n                        }\n                    })], 1)]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"item\"\n                    }, [t(\"div\", [e._v(Lg.ruleMode())]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"item\"\n                    }, [t(\"KeyCapture\", {\n                        staticClass: \"input\",\n                        attrs: {\n                            placeholder: Lg.record()\n                        },\n                        model: {\n                            value: e.settings.shortcutRuleMode,\n                            callback: function(t) {\n                                e.$set(e.settings, \"shortcutRuleMode\", t)\n                            },\n                            expression: \"settings.shortcutRuleMode\"\n                        }\n                    })], 1)]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"item\"\n                    }, [t(\"div\", [e._v(Lg.directMode())]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"item\"\n                    }, [t(\"KeyCapture\", {\n                        staticClass: \"input\",\n                        attrs: {\n                            placeholder: Lg.record()\n                        },\n                        model: {\n                            value: e.settings.shortcutDirectMode,\n                            callback: function(t) {\n                                e.$set(e.settings, \"shortcutDirectMode\", t)\n                            },\n                            expression: \"settings.shortcutDirectMode\"\n                        }\n                    })], 1)]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"item\"\n                    }, [t(\"div\", [e._v(Lg.scriptMode())]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"item\"\n                    }, [t(\"KeyCapture\", {\n                        staticClass: \"input\",\n                        attrs: {\n                            placeholder: Lg.record()\n                        },\n                        model: {\n                            value: e.settings.shortcutScriptMode,\n                            callback: function(t) {\n                                e.$set(e.settings, \"shortcutScriptMode\", t)\n                            },\n                            expression: \"settings.shortcutScriptMode\"\n                        }\n                    })], 1)]), e._v(\" \"), t(\"separator\"), e._v(\" \"), t(\"div\", {\n                        staticClass: \"item\"\n                    }, [t(\"div\", [e._v(Lg.showHieDashboard())]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"item\"\n                    }, [t(\"KeyCapture\", {\n                        staticClass: \"input\",\n                        attrs: {\n                            placeholder: Lg.record()\n                        },\n                        model: {\n                            value: e.settings.shortcutShowHideDashboard,\n                            callback: function(t) {\n                                e.$set(e.settings, \"shortcutShowHideDashboard\", t)\n                            },\n                            expression: \"settings.shortcutShowHideDashboard\"\n                        }\n                    })], 1)]), e._v(\" \"), e.isLinux ? e._e() : t(\"div\", {\n                        staticClass: \"item\"\n                    }, [t(\"div\", [e._v(Lg.runTrayScript())]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"item\"\n                    }, [t(\"KeyCapture\", {\n                        staticClass: \"input\",\n                        attrs: {\n                            placeholder: Lg.record()\n                        },\n                        model: {\n                            value: e.settings.shortcutRunTrayScript,\n                            callback: function(t) {\n                                e.$set(e.settings, \"shortcutRunTrayScript\", t)\n                            },\n                            expression: \"settings.shortcutRunTrayScript\"\n                        }\n                    })], 1)])], 1), e._v(\" \"), t(\"Section\", {\n                        attrs: {\n                            title: Lg.settingsEditor()\n                        }\n                    }, [t(\"div\", {\n                        staticClass: \"item\"\n                    }, [t(\"div\", [e._v(Lg.fontSize())]), e._v(\" \"), t(\"SimpleInput\", {\n                        attrs: {\n                            type: \"number\",\n                            placeholder: \"13\",\n                            suffix: \"px\"\n                        },\n                        model: {\n                            value: e.settings.editorFontSize,\n                            callback: function(t) {\n                                e.$set(e.settings, \"editorFontSize\", t)\n                            },\n                            expression: \"settings.editorFontSize\"\n                        }\n                    })], 1)]), e._v(\" \"), t(\"Section\", {\n                        attrs: {\n                            title: Lg.cache()\n                        }\n                    }, [t(\"div\", {\n                        staticClass: \"item\"\n                    }, [t(\"div\", [e._v(Lg.fakeIPCache())]), e._v(\" \"), t(\"MoreHint\", {\n                        staticClass: \"hint\",\n                        attrs: {\n                            text: Lg.clear()\n                        },\n                        on: {\n                            click: e.handlerClearFakeIPCache\n                        }\n                    })], 1)]), e._v(\" \"), t(\"Section\", {\n                        attrs: {\n                            title: Lg.experimentalFeatures()\n                        }\n                    }, [e.isMacOS ? t(\"div\", {\n                        staticClass: \"item\"\n                    }, [t(\"div\", [e._v(Lg.dhcpServer())]), e._v(\" \"), t(\"SwitchView\", {\n                        model: {\n                            value: e.settings.enableDHCPServer,\n                            callback: function(t) {\n                                e.$set(e.settings, \"enableDHCPServer\", t)\n                            },\n                            expression: \"settings.enableDHCPServer\"\n                        }\n                    })], 1) : e._e()])], 1) : e._e(), e._v(\" \"), t(\"navigator\", {\n                        attrs: {\n                            list: e.sections\n                        },\n                        on: {\n                            select: e.handleNavigatToGroup\n                        }\n                    }), e._v(\" \"), e.isEditingExternal ? t(\"div\", {\n                        staticClass: \"edit-hint\"\n                    }, [t(\"div\", [e._v(\"\\n      \" + e._s([\"\", \"Visual Studio Code\", \"Sublime Text\"][e.settings.editor]) + \" is\\n      launching for editing.\\n    \")]), e._v(\" \"), t(\"div\", [e._v(Lg.closeEditingFileSave())]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"btn\",\n                        on: {\n                            click: e.cancelExternalEdit\n                        }\n                    }, [e._v(Lg.cancel())])]) : e._e()], 1)\n                }), [], !1, null, \"fc0cd1de\", null).exports\n            },\n            12436: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    Z: () => c\n                });\n                var n = i(59713),\n                    o = i.n(n),\n                    s = i(24793),\n                    r = i(23321);\n\n                function a(e, t) {\n                    var i = Object.keys(e);\n                    if (Object.getOwnPropertySymbols) {\n                        var n = Object.getOwnPropertySymbols(e);\n                        t && (n = n.filter((function(t) {\n                            return Object.getOwnPropertyDescriptor(e, t).enumerable\n                        }))), i.push.apply(i, n)\n                    }\n                    return i\n                }\n                const l = {\n                    name: \"simple-input\",\n                    props: {\n                        value: [String, Number],\n                        placeholder: String,\n                        suffix: String,\n                        type: {\n                            type: String,\n                            default: function() {\n                                return \"text\"\n                            }\n                        }\n                    },\n                    model: {\n                        prop: \"value\",\n                        event: \"change\"\n                    },\n                    data: function() {\n                        return {\n                            suffixWidth: 0,\n                            ref: \"\"\n                        }\n                    },\n                    computed: function(e) {\n                        for (var t = 1; t < arguments.length; t++) {\n                            var i = null != arguments[t] ? arguments[t] : {};\n                            t % 2 ? a(Object(i), !0).forEach((function(t) {\n                                o()(e, t, i[t])\n                            })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(i)) : a(Object(i)).forEach((function(t) {\n                                Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(i, t))\n                            }))\n                        }\n                        return e\n                    }({}, (0, r.mapState)({})),\n                    methods: {\n                        handleTextChange: s.debounce((function(e) {\n                            var t = e.target,\n                                i = (t = void 0 === t ? {} : t).value;\n                            void 0 !== i && (\"number\" === this.type ? this.$emit(\"change\", parseInt(i)) : this.$emit(\"change\", i))\n                        }), 500)\n                    },\n                    mounted: function() {\n                        var e = this;\n                        this.ref = (0, s.uniqueId)(\"simple-input\"), this.$nextTick((function() {\n                            e.suffixWidth = e.$refs[e.ref].clientWidth\n                        }))\n                    }\n                };\n                i(60569);\n                const c = (0, i(51900).Z)(l, (function() {\n                    var e = this,\n                        t = e._self._c;\n                    return t(\"div\", {\n                        staticClass: \"main-simple-input\"\n                    }, [t(\"input\", {\n                        style: {\n                            paddingLeft: \"10px\",\n                            paddingRight: e.suffixWidth + 10 + \"px\"\n                        },\n                        attrs: {\n                            spellcheck: \"false\",\n                            type: e.type,\n                            placeholder: e.placeholder\n                        },\n                        domProps: {\n                            value: e.value\n                        },\n                        on: {\n                            input: e.handleTextChange\n                        }\n                    }), e._v(\" \"), t(\"div\", {\n                        ref: e.ref,\n                        staticClass: \"suffix\"\n                    }, [e._v(e._s(e.suffix))])])\n                }), [], !1, null, \"0f00486f\", null).exports\n            },\n            72574: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    Z: () => o\n                });\n                const n = {\n                    name: \"EscCapture\",\n                    methods: {\n                        handleKeyDown: function(e) {\n                            (e.metaKey || e.ctrlKey) && 87 === e.keyCode && this.$emit(\"esc\"), 27 === e.keyCode && this.$emit(\"esc\")\n                        }\n                    },\n                    mounted: function() {\n                        this.$el.focus && this.$el.focus()\n                    }\n                };\n                const o = (0, i(51900).Z)(n, (function() {\n                    var e = this;\n                    return (0, e._self._c)(\"div\", e._g({\n                        staticClass: \"no-esc\",\n                        attrs: {\n                            tabindex: \"0\"\n                        },\n                        on: {\n                            keydown: e.handleKeyDown\n                        }\n                    }, e.$listeners), [e._t(\"default\")], 2)\n                }), [], !1, null, \"3ccabdf6\", null).exports\n            },\n            13338: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    Z: () => o\n                });\n                const n = {\n                    name: \"HintView\",\n                    props: {\n                        hint: {\n                            type: String,\n                            required: !0\n                        },\n                        position: {\n                            type: String,\n                            default: \"top\",\n                            validate: function(e) {\n                                return [\"top\", \"bottom\", \"left\", \"right\"].includes(e)\n                            }\n                        }\n                    },\n                    data: function() {\n                        return {\n                            timeoutID: null,\n                            isShowHint: !1\n                        }\n                    },\n                    computed: {},\n                    methods: {\n                        startCounting: function() {\n                            var e = this;\n                            this.timeoutID = setTimeout((function() {\n                                e.isShowHint = !0\n                            }), 1e3)\n                        },\n                        stopCounting: function() {\n                            this.timeoutID && (clearTimeout(this.timeoutID), this.timeoutID = null, this.isShowHint = !1)\n                        }\n                    },\n                    updated: function() {\n                        var e = this;\n                        this.$nextTick((function() {\n                            try {\n                                var t = e.$refs.hint.getBoundingClientRect(),\n                                    i = t.x,\n                                    n = t.y,\n                                    o = t.width,\n                                    s = t.height,\n                                    r = e.$refs[\"hint-text\"],\n                                    a = null == r ? void 0 : r.getBoundingClientRect(),\n                                    l = (a.x, a.y, a.width),\n                                    c = a.height;\n                                \"top\" === e.position ? (r.style.top = \"\".concat(n - c - 5, \"px\"), r.style.left = \"\".concat(i - l / 2 + o / 2, \"px\")) : \"bottom\" === e.position ? (r.style.top = \"\".concat(n + s + 5, \"px\"), r.style.left = \"\".concat(i - l / 2 + o / 2, \"px\")) : \"left\" === e.position ? (r.style.top = \"\".concat(n - c / 2 + s / 2, \"px\"), r.style.left = \"\".concat(i - l - 5, \"px\")) : \"right\" === e.position && (r.style.top = \"\".concat(n - c / 2 + s / 2, \"px\"), r.style.left = \"\".concat(i + o + 5, \"px\"))\n                            } catch (e) {}\n                        }))\n                    }\n                };\n                i(13096);\n                const o = (0, i(51900).Z)(n, (function() {\n                    var e = this,\n                        t = e._self._c;\n                    return t(\"div\", e._g({\n                        ref: \"hint\",\n                        staticClass: \"main-hint-view flex flex-col justify-center items-center w-[18px] h-[18px]\",\n                        on: {\n                            mouseenter: e.startCounting,\n                            mouseleave: e.stopCounting\n                        }\n                    }, e.$listeners), [e.isShowHint ? t(\"span\", {\n                        ref: \"hint-text\",\n                        staticClass: \"hint\"\n                    }, [e._v(e._s(e.hint))]) : e._e(), e._v(\" \"), e._t(\"default\")], 2)\n                }), [], !1, null, \"6e240a95\", null).exports\n            },\n            36336: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    Z: () => c\n                });\n                var n = i(59713),\n                    o = i.n(n),\n                    s = (i(72298), i(23321)),\n                    r = i(8369);\n\n                function a(e, t) {\n                    var i = Object.keys(e);\n                    if (Object.getOwnPropertySymbols) {\n                        var n = Object.getOwnPropertySymbols(e);\n                        t && (n = n.filter((function(t) {\n                            return Object.getOwnPropertyDescriptor(e, t).enumerable\n                        }))), i.push.apply(i, n)\n                    }\n                    return i\n                }\n                const l = {\n                    name: \"info-icon\",\n                    data: function() {\n                        return {\n                            isShowContent: !1,\n                            timeoutID: null,\n                            contentPosition: {\n                                top: \"-1000px\",\n                                left: \"-1000px\"\n                            }\n                        }\n                    },\n                    computed: function(e) {\n                        for (var t = 1; t < arguments.length; t++) {\n                            var i = null != arguments[t] ? arguments[t] : {};\n                            t % 2 ? a(Object(i), !0).forEach((function(t) {\n                                o()(e, t, i[t])\n                            })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(i)) : a(Object(i)).forEach((function(t) {\n                                Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(i, t))\n                            }))\n                        }\n                        return e\n                    }({}, (0, s.mapState)({})),\n                    watch: {\n                        isShowContent: function(e) {\n                            if (e) {\n                                var t = this.$refs.icon.getBoundingClientRect(),\n                                    i = this.$refs.content;\n                                t.y + 20 + i.offsetHeight < window.innerHeight ? this.contentPosition = {\n                                    top: t.y + \"px\",\n                                    left: t.x + 20 + \"px\"\n                                } : this.contentPosition = {\n                                    top: t.y + 20 - i.offsetHeight + \"px\",\n                                    left: t.x + 20 + \"px\"\n                                }\n                            } else this.contentPosition = {\n                                top: \"-1000px\",\n                                left: \"-1000px\"\n                            }\n                        }\n                    },\n                    methods: {\n                        handleMouseEnter: function() {\n                            var e = this;\n                            this.timeoutID = setTimeout((function() {\n                                e.isShowContent = !0\n                            }), 500)\n                        },\n                        handleMouseLeave: function() {\n                            this.isShowContent = !1, this.timeoutID && clearTimeout(this.timeoutID)\n                        },\n                        handleContentClick: function(e) {\n                            var t = e.target;\n                            if (t) {\n                                var i = t.href;\n                                i && (0, r.fl)(i)\n                            }\n                        }\n                    },\n                    mounted: function() {}\n                };\n                i(55230);\n                const c = (0, i(51900).Z)(l, (function() {\n                    var e = this,\n                        t = e._self._c;\n                    return t(\"div\", {\n                        staticClass: \"info-icon-main\",\n                        on: {\n                            mouseenter: e.handleMouseEnter,\n                            mouseleave: e.handleMouseLeave\n                        }\n                    }, [t(\"div\", {\n                        ref: \"content\",\n                        staticClass: \"content\",\n                        style: e.contentPosition,\n                        on: {\n                            click: e.handleContentClick\n                        }\n                    }, [e._t(\"default\")], 2), e._v(\" \"), t(\"span\", {\n                        ref: \"icon\",\n                        staticClass: \"icon pr-1 text-base text-[color:var(--general-settings-icon-c)] opacity-70\"\n                    }, [e._v(\"info\")])])\n                }), [], !1, null, \"d4bbbea2\", null).exports\n            },\n            11287: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    Z: () => h\n                });\n                var n = i(59713),\n                    o = i.n(n),\n                    s = i(24793),\n                    r = i.n(s),\n                    a = i(23321);\n\n                function l(e, t) {\n                    var i = Object.keys(e);\n                    if (Object.getOwnPropertySymbols) {\n                        var n = Object.getOwnPropertySymbols(e);\n                        t && (n = n.filter((function(t) {\n                            return Object.getOwnPropertyDescriptor(e, t).enumerable\n                        }))), i.push.apply(i, n)\n                    }\n                    return i\n                }\n\n                function c(e) {\n                    for (var t = 1; t < arguments.length; t++) {\n                        var i = null != arguments[t] ? arguments[t] : {};\n                        t % 2 ? l(Object(i), !0).forEach((function(t) {\n                            o()(e, t, i[t])\n                        })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(i)) : l(Object(i)).forEach((function(t) {\n                            Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(i, t))\n                        }))\n                    }\n                    return e\n                }\n                const d = {\n                    name: \"Navigator\",\n                    props: {\n                        list: {\n                            type: Array,\n                            required: !0\n                        },\n                        index: {\n                            type: Number,\n                            default: -1\n                        },\n                        width: {\n                            type: String,\n                            default: \"100\"\n                        },\n                        errorIndexes: {\n                            type: Array,\n                            default: function() {\n                                return []\n                            }\n                        }\n                    },\n                    data: function() {\n                        return {\n                            currentHoverIndex: -1\n                        }\n                    },\n                    watch: {\n                        index: r().debounce((function(e) {\n                            if (this.isClosed && e > -1) {\n                                var t = this.$refs.list,\n                                    i = this.$refs.items;\n                                t && i && i.length > e && (t.scrollTop = i[e].offsetTop)\n                            }\n                        }), 500)\n                    },\n                    computed: c(c({}, (0, a.mapState)({})), {}, {\n                        isClosed: function() {\n                            return -1 === this.currentHoverIndex\n                        },\n                        listStyle: function() {\n                            var e = this.width || \"100\";\n                            return this.isClosed ? {\n                                opacity: .5,\n                                alignItems: \"center\",\n                                width: \"20px\",\n                                backgroundColor: \"transparent\"\n                            } : {\n                                opacity: 1,\n                                width: \"\".concat(e, \"px\"),\n                                right: \"-10px\",\n                                transform: \"translateX(-10px)\",\n                                borderLeftWidth: \"1px\"\n                            }\n                        }\n                    }),\n                    methods: {\n                        handleHover: function(e) {\n                            this.currentHoverIndex = e\n                        },\n                        itemClass: function(e) {\n                            return this.errorIndexes.includes(e) ? [\"item-error\"] : this.currentHoverIndex === e ? [\"item-hover\"] : e === this.index ? [\"item-selected\"] : void 0\n                        }\n                    },\n                    updated: function() {}\n                };\n                i(82779);\n                const h = (0, i(51900).Z)(d, (function() {\n                    var e = this,\n                        t = e._self._c;\n                    return t(\"div\", {\n                        ref: \"list\",\n                        staticClass: \"main-proxy-navigator\",\n                        style: e.listStyle,\n                        on: {\n                            mouseleave: function(t) {\n                                e.currentHoverIndex = -1\n                            }\n                        }\n                    }, e._l(e.list, (function(i, n) {\n                        return t(\"div\", {\n                            key: i,\n                            ref: \"items\",\n                            refInFor: !0,\n                            staticClass: \"clickable item\",\n                            class: e.itemClass(n),\n                            on: {\n                                mouseover: function(t) {\n                                    return e.handleHover(n)\n                                },\n                                click: function(t) {\n                                    return e.$emit(\"select\", n)\n                                }\n                            }\n                        }, [e._v(\"\\n    \" + e._s(e.isClosed ? e.$removeEmoji(i).trim()[0] : i) + \"\\n  \")])\n                    })), 0)\n                }), [], !1, null, \"298f5540\", null).exports\n            },\n            17285: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    Z: () => l\n                });\n                var n = i(59713),\n                    o = i.n(n),\n                    s = i(23321);\n\n                function r(e, t) {\n                    var i = Object.keys(e);\n                    if (Object.getOwnPropertySymbols) {\n                        var n = Object.getOwnPropertySymbols(e);\n                        t && (n = n.filter((function(t) {\n                            return Object.getOwnPropertyDescriptor(e, t).enumerable\n                        }))), i.push.apply(i, n)\n                    }\n                    return i\n                }\n                const a = {\n                    name: \"SelectView\",\n                    props: {\n                        items: Array,\n                        index: {\n                            type: Number,\n                            default: function() {\n                                return 0\n                            }\n                        }\n                    },\n                    model: {\n                        prop: \"index\",\n                        event: \"select\"\n                    },\n                    data: function() {\n                        return {}\n                    },\n                    computed: function(e) {\n                        for (var t = 1; t < arguments.length; t++) {\n                            var i = null != arguments[t] ? arguments[t] : {};\n                            t % 2 ? r(Object(i), !0).forEach((function(t) {\n                                o()(e, t, i[t])\n                            })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(i)) : r(Object(i)).forEach((function(t) {\n                                Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(i, t))\n                            }))\n                        }\n                        return e\n                    }({}, (0, s.mapState)({})),\n                    methods: {\n                        handleItemClick: function(e) {\n                            this.$emit(\"select\", e)\n                        },\n                        itemClass: function(e) {\n                            var t = [\"item\", \"item-\".concat(e % 2 == 0 ? \"double\" : \"single\")];\n                            return e === this.index && t.push(\"item-selected\"), 0 === e ? t.push(\"item-first\") : e === this.items.length - 1 && t.push(\"item-last\"), t\n                        }\n                    }\n                };\n                i(67033);\n                const l = (0, i(51900).Z)(a, (function() {\n                    var e = this,\n                        t = e._self._c;\n                    return t(\"div\", {\n                        class: [\"main-select-view\"]\n                    }, e._l(e.items, (function(i, n) {\n                        return t(\"div\", {\n                            key: n,\n                            class: e.itemClass(n),\n                            on: {\n                                click: function(t) {\n                                    return e.handleItemClick(n)\n                                }\n                            }\n                        }, [e._v(\"\\n    \" + e._s(i) + \"\\n  \")])\n                    })), 0)\n                }), [], !1, null, \"e458e7bc\", null).exports\n            },\n            62639: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    Z: () => a\n                });\n                var n = i(59713),\n                    o = i.n(n);\n\n                function s(e, t) {\n                    var i = Object.keys(e);\n                    if (Object.getOwnPropertySymbols) {\n                        var n = Object.getOwnPropertySymbols(e);\n                        t && (n = n.filter((function(t) {\n                            return Object.getOwnPropertyDescriptor(e, t).enumerable\n                        }))), i.push.apply(i, n)\n                    }\n                    return i\n                }\n                const r = {\n                    props: [\"on\"],\n                    model: {\n                        prop: \"on\",\n                        event: \"change\"\n                    },\n                    data: function() {\n                        return {}\n                    },\n                    watch: {},\n                    computed: function(e) {\n                        for (var t = 1; t < arguments.length; t++) {\n                            var i = null != arguments[t] ? arguments[t] : {};\n                            t % 2 ? s(Object(i), !0).forEach((function(t) {\n                                o()(e, t, i[t])\n                            })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(i)) : s(Object(i)).forEach((function(t) {\n                                Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(i, t))\n                            }))\n                        }\n                        return e\n                    }({}, (0, i(23321).mapState)({})),\n                    methods: {\n                        handleClick: function(e) {\n                            this.$emit(\"change\", !this.on)\n                        }\n                    },\n                    mounted: function() {}\n                };\n                i(60920);\n                const a = (0, i(51900).Z)(r, (function() {\n                    var e = this,\n                        t = e._self._c;\n                    return t(\"div\", {\n                        staticClass: \"main\",\n                        on: {\n                            click: e.handleClick\n                        }\n                    }, [t(\"transition\", {\n                        attrs: {\n                            name: \"move-right\"\n                        }\n                    }, [e.on ? e._e() : t(\"div\", {\n                        staticClass: \"text\"\n                    }, [t(\"div\", {\n                        staticClass: \"base tint-right\"\n                    }), e._v(\" \"), t(\"div\", {\n                        staticClass: \"base text-font text-off\"\n                    })])]), e._v(\" \"), t(\"transition\", {\n                        attrs: {\n                            name: \"move-left\"\n                        }\n                    }, [e.on ? t(\"div\", {\n                        staticClass: \"text\"\n                    }, [t(\"div\", {\n                        staticClass: \"base text-font text-on\"\n                    }), e._v(\" \"), t(\"div\", {\n                        staticClass: \"base tint-left\"\n                    })]) : e._e()])], 1)\n                }), [], !1, null, \"37d0be30\", null).exports\n            },\n            31091: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => c\n                });\n                var n = i(59713),\n                    o = i.n(n),\n                    s = i(23321);\n\n                function r(e, t) {\n                    var i = Object.keys(e);\n                    if (Object.getOwnPropertySymbols) {\n                        var n = Object.getOwnPropertySymbols(e);\n                        t && (n = n.filter((function(t) {\n                            return Object.getOwnPropertyDescriptor(e, t).enumerable\n                        }))), i.push.apply(i, n)\n                    }\n                    return i\n                }\n\n                function a(e) {\n                    for (var t = 1; t < arguments.length; t++) {\n                        var i = null != arguments[t] ? arguments[t] : {};\n                        t % 2 ? r(Object(i), !0).forEach((function(t) {\n                            o()(e, t, i[t])\n                        })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(i)) : r(Object(i)).forEach((function(t) {\n                            Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(i, t))\n                        }))\n                    }\n                    return e\n                }\n                const l = {\n                    components: {\n                        EscCapture: i(72574).Z\n                    },\n                    name: \"AlertView\",\n                    props: [],\n                    data: function() {\n                        return {\n                            isShow: !1,\n                            content: \"\",\n                            title: \"错误\",\n                            isShowErrorBtn: !1,\n                            resolve: null,\n                            reject: null\n                        }\n                    },\n                    computed: a(a({}, (0, s.mapState)({})), (0, s.mapGetters)([\"theme\"])),\n                    methods: {\n                        show: function(e) {\n                            var t = this,\n                                i = e.title,\n                                n = void 0 === i ? \"错误\" : i,\n                                o = e.content,\n                                s = void 0 === o ? \"\" : o,\n                                r = e.isShowErrorBtn,\n                                a = void 0 !== r && r;\n                            return this.isShow = !0, this.title = n, this.content = s, this.isShowErrorBtn = a, new Promise((function(e, i) {\n                                t.resolve = e, t.reject = i\n                            }))\n                        },\n                        handleKeyDown: function(e) {\n                            13 === e.keyCode && this.handleDone()\n                        },\n                        handleCancel: function() {\n                            this.isShow = !1, this.reject()\n                        },\n                        handleDone: function() {\n                            this.isShow = !1, this.resolve({})\n                        }\n                    }\n                };\n                i(92732);\n                const c = (0, i(51900).Z)(l, (function() {\n                    var e = this,\n                        t = e._self._c;\n                    const Lg = new Language(modifyState.language);\n                    return e.isShow ? t(\"EscCapture\", {\n                        staticClass: \"main-alert-view-plugin bg-[color:var(--mask-c)]\",\n                        class: [\"theme-\".concat(e.theme)],\n                        on: {\n                            esc: e.handleCancel,\n                            mousedown: e.handleCancel\n                        }\n                    }, [t(\"div\", {\n                        staticClass: \"card-main bg-[color:var(--bgc)] text-[color:var(--fgc)]\",\n                        on: {\n                            mousedown: function(e) {\n                                e.stopPropagation()\n                            }\n                        }\n                    }, [t(\"div\", {\n                        staticClass: \"card-content\"\n                    }, [t(\"div\", {\n                        staticClass: \"content-title\"\n                    }, [e._v(e._s(e.title))]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"content-content\"\n                    }, [e._v(e._s(e.content))]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"card-btns\"\n                    }, [e.isShowErrorBtn ? t(\"div\", {\n                        staticClass: \"btn btn-cancel\",\n                        on: {\n                            click: e.handleCancel\n                        }\n                    }, [e._v(\"\\n          \" + Lg.cancel() + \"\\n        \")]) : e._e(), e._v(\" \"), t(\"div\", {\n                        staticClass: \"btn btn-ok\",\n                        on: {\n                            click: e.handleDone\n                        }\n                    }, [e._v(Lg.ok())])])])])]) : e._e()\n                }), [], !1, null, \"12619986\", null).exports\n            },\n            97889: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => L\n                });\n                var n = i(48926),\n                    o = i.n(n),\n                    s = i(319),\n                    r = i.n(s),\n                    a = i(63038),\n                    l = i.n(a),\n                    c = i(59713),\n                    d = i.n(c),\n                    h = i(87757),\n                    u = i.n(h),\n                    g = i(11442),\n                    p = i(58583),\n                    f = i(23321),\n                    m = i(13338),\n                    v = i(83566),\n                    _ = i(8369),\n                    b = i(72574),\n                    w = i(11287),\n                    y = i(51792);\n                i(81518), i(24883), i(72298);\n\n                function C(e, t) {\n                    var i = Object.keys(e);\n                    if (Object.getOwnPropertySymbols) {\n                        var n = Object.getOwnPropertySymbols(e);\n                        t && (n = n.filter((function(t) {\n                            return Object.getOwnPropertyDescriptor(e, t).enumerable\n                        }))), i.push.apply(i, n)\n                    }\n                    return i\n                }\n\n                function x(e) {\n                    for (var t = 1; t < arguments.length; t++) {\n                        var i = null != arguments[t] ? arguments[t] : {};\n                        t % 2 ? C(Object(i), !0).forEach((function(t) {\n                            d()(e, t, i[t])\n                        })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(i)) : C(Object(i)).forEach((function(t) {\n                            Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(i, t))\n                        }))\n                    }\n                    return e\n                }\n                const S = {\n                        name: \"CodeView\",\n                        props: [],\n                        components: {\n                            Hint: m.Z,\n                            EscCapture: b.Z,\n                            Navigator: w.Z\n                        },\n                        data: function() {\n                            return {\n                                editor: null,\n                                isShow: !1,\n                                resolve: null,\n                                reject: null,\n                                language: \"\",\n                                code: \"\",\n                                originCode: \"\",\n                                error: null,\n                                readOnly: !1,\n                                fontSize: 13,\n                                isSelecting: !1\n                            }\n                        },\n                        watch: {\n                            isShow: function(e) {\n                                e || (this.editor && this.editor.dispose(), this.editor = null)\n                            }\n                        },\n                        computed: x(x(x({}, (0, f.mapState)({})), (0, f.mapGetters)([\"theme\"])), {}, {\n                            saveHint: function() {\n                                const Lg = new Language(modifyState.language);\n                                return (0, v.V5)() ? \"Command+S\" : Lg.save() + \"(Ctrl+S)\"\n                            },\n                            topKeys: function() {\n                                return this.code.split(\"\\n\").reduce((function(e, t, i) {\n                                    var n = t.match(/^(?!\\s|-)(.+):(\\s|$)/) || [],\n                                        o = l()(n, 2),\n                                        s = (o[0], o[1]);\n                                    return s ? [].concat(r()(e), [{\n                                        key: s,\n                                        index: i\n                                    }]) : e\n                                }), [])\n                            },\n                            topKeyNames: function() {\n                                return this.topKeys.map((function(e) {\n                                    return e.key\n                                }))\n                            }\n                        }),\n                        methods: {\n                            show: function(e) {\n                                const Lg = new Language(modifyState.language);\n                                var t = this,\n                                    i = e.code,\n                                    n = e.language,\n                                    o = void 0 === n ? \"yaml\" : n,\n                                    s = e.readOnly,\n                                    r = void 0 !== s && s,\n                                    a = e.fontSize,\n                                    l = void 0 === a ? 13 : a;\n                                return this.isShow = !0, this.language = o, this.readOnly = r, this.error = \"\", this.code = i, this.originCode = i, this.fontSize = l || 13, this.$nextTick((function() {\n                                    t.editor = p.editor.create(t.$refs.editor, {\n                                        value: i,\n                                        language: o,\n                                        theme: \"vs-dark\",\n                                        fontFamily: \"Consolas, Monaco, Lucida Console, Liberation Mono,\\n        DejaVu Sans Mono, Bitstream Vera Sans Mono, Courier New, monospace\",\n                                        fontSize: t.fontSize,\n                                        automaticLayout: !0,\n                                        readOnly: r,\n                                        minimap: {\n                                            enabled: !1\n                                        },\n                                        contextmenu: !1,\n                                        scrollbar: {\n                                            verticalScrollbarSize: 12,\n                                            horizontalScrollbarSize: 12\n                                        },\n                                        quickSuggestions: {\n                                            other: !0,\n                                            strings: !0\n                                        },\n                                        smoothScrolling: !0\n                                    }), t.editor.onDidChangeModelContent((function() {\n                                        t.code = t.editor.getValue()\n                                    })), t.editor.addAction({\n                                        id: \"save\",\n                                        label: Lg.save(),\n                                        run: function() {\n                                            t.save()\n                                        },\n                                        keybindings: [p.KeyMod.CtrlCmd | p.KeyCode.KeyS]\n                                    }), t.editor.setSelection(new p.Selection(1, 1, 1, 1)), t.editor.setScrollTop((0, y.b)((0, _.Ll)(t.code))), t.editor.onDidChangeCursorSelection((function() {\n                                        t.isSelecting = !t.editor.getSelection().isEmpty()\n                                    })), t.editor.getContribution(\"editor.linkDetector\").openerService._defaultExternalOpener.openExternal = _.fl, t.editor.focus()\n                                })), new Promise((function(e, i) {\n                                    t.resolve = e, t.reject = i\n                                }))\n                            },\n                            handleSaveClick: function() {\n                                this.save()\n                            },\n                            handleAbortClick: function() {\n                                var e = this;\n                                const Lg = new Language(modifyState.language);\n                                return o()(u().mark((function t() {\n                                    var i, n;\n                                    return u().wrap((function(t) {\n                                        for (;;) switch (t.prev = t.next) {\n                                            case 0:\n                                                if (e.code === e.originCode) {\n                                                    t.next = 9;\n                                                    break\n                                                }\n                                                return t.next = 3, (0, _.vC)({\n                                                    type: \"warning\",\n                                                    message: Lg.askSaveChange(),\n                                                    buttons: [Lg.save(), Lg.dontSave(), Lg.cancel()]\n                                                });\n                                            case 3:\n                                                i = t.sent, 0 === (n = i.response) && e.save(), 1 === n && e.cancel(), t.next = 10;\n                                                break;\n                                            case 9:\n                                                e.cancel();\n                                            case 10:\n                                            case \"end\":\n                                                return t.stop()\n                                        }\n                                    }), t)\n                                })))()\n                            },\n                            saveScrollTop: function() {\n                                (0, y.F)((0, _.Ll)(this.code), this.editor.getScrollTop())\n                            },\n                            save: function() {\n                                if (this.resolve) try {\n                                    \"yaml\" === this.language && g.parse(this.code, {\n                                        prettyErrors: !0,\n                                        strict: !1\n                                    }), this.resolve({\n                                        code: this.code\n                                    }), this.saveScrollTop(), this.isShow = !1\n                                } catch (e) {\n                                    this.error = \"Error: \".concat(e.message)\n                                }\n                            },\n                            cancel: function() {\n                                this.reject(), this.saveScrollTop(), this.isShow = !1\n                            },\n                            handleNavigate: function(e) {\n                                var t = this.topKeys[e].index;\n                                this.editor.setScrollPosition({\n                                    scrollTop: this.editor.getTopForLineNumber(t + 1)\n                                }, 0)\n                            }\n                        },\n                        mounted: function() {},\n                        beforeDestroy: function() {}\n                    },\n                    k = S;\n                i(14902), i(32225);\n                const L = (0, i(51900).Z)(k, (function() {\n                    var e = this,\n                        t = e._self._c;\n                    const Lg = new Language(modifyState.language);\n                    return e.isShow ? t(\"EscCapture\", {\n                        staticClass: \"main-code-view line-numbers bg-[color:var(--mask-c)]\",\n                        on: {\n                            esc: e.handleAbortClick,\n                            mousedown: function(t) {\n                                return t.target !== t.currentTarget ? null : e.handleAbortClick.apply(null, arguments)\n                            }\n                        }\n                    }, [t(\"div\", {\n                        staticClass: \"card\"\n                    }, [t(\"div\", {\n                        ref: \"editor\",\n                        staticClass: \"editor\"\n                    }), e._v(\" \"), e.isSelecting ? e._e() : t(\"navigator\", {\n                        staticClass: \"navigator\",\n                        attrs: {\n                            list: e.topKeyNames\n                        },\n                        on: {\n                            select: e.handleNavigate\n                        }\n                    }), e._v(\" \"), e.error ? t(\"div\", {\n                        staticClass: \"error\"\n                    }, [t(\"div\", [e._v(e._s(e.error))]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"clickable\",\n                        on: {\n                            click: function(t) {\n                                e.error = \"\"\n                            }\n                        }\n                    }, [t(\"span\", {\n                        staticClass: \"icon text-[20px] text-white\"\n                    }, [e._v(\"close\")])])]) : e._e(), e._v(\" \"), t(\"div\", {\n                        staticClass: \"btns\"\n                    }, [t(\"Hint\", {\n                        staticClass: \"abort-btn clickable\",\n                        attrs: {\n                            hint: Lg.quit()\n                        },\n                        on: {\n                            click: e.handleAbortClick\n                        }\n                    }, [t(\"span\", {\n                        staticClass: \"icon text-[20px] text-white\"\n                    }, [e._v(\"close\")])]), e._v(\" \"), e.readOnly ? e._e() : t(\"Hint\", {\n                        staticClass: \"save-btn clickable\",\n                        attrs: {\n                            hint: e.saveHint\n                        },\n                        on: {\n                            click: e.handleSaveClick\n                        }\n                    }, [t(\"span\", {\n                        staticClass: \"icon text-[20px] text-white\"\n                    }, [e._v(\"save\")])])], 1)], 1)]) : e._e()\n                }), [], !1, null, \"35f836ea\", null).exports\n            },\n            7905: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => f\n                });\n                var n = i(48926),\n                    o = i.n(n),\n                    s = i(87757),\n                    r = i.n(s),\n                    a = i(58583),\n                    l = i(72574),\n                    c = i(13338),\n                    d = i(83566),\n                    h = i(8369),\n                    u = (i(72298), i(81518)),\n                    g = i(24883);\n                const p = {\n                    components: {\n                        Hint: c.Z,\n                        EscCapture: l.Z\n                    },\n                    name: \"DiffView\",\n                    props: {},\n                    data: function() {\n                        return {\n                            isShow: !1,\n                            editor: null,\n                            resolve: null,\n                            reject: null,\n                            changeModel: null,\n                            baseModel: null,\n                            originalChangeCode: \"\",\n                            renderSideBySide: !1\n                        }\n                    },\n                    watch: {\n                        isShow: function(e) {\n                            e || (this.editor && this.editor.dispose(), this.editor = null)\n                        },\n                        renderSideBySide: function(e) {\n                            this.editor && this.editor.updateOptions({\n                                renderSideBySide: e\n                            }), g.Z.put(u.Z.IS_DIFF_EIDTOR_SEPARATED, e)\n                        }\n                    },\n                    computed: {\n                        saveHint: function() {\n                            const Lg = new Language(modifyState.language);\n                            return (0, d.V5)() ? \"Command+S\" : Lg.save() + \"(Ctrl+S)\"\n                        }\n                    },\n                    methods: {\n                        show: function(e) {\n                            var t = this,\n                                i = e.base,\n                                n = e.change;\n                            const Lg = new Language(modifyState.language);\n                            return this.isShow = !0, this.renderSideBySide = g.Z.get(u.Z.IS_DIFF_EIDTOR_SEPARATED), this.originalChangeCode = n, this.baseModel = a.editor.createModel(i, \"yaml\"), this.changeModel = a.editor.createModel(n, \"yaml\"), this.$nextTick((function() {\n                                t.editor = a.editor.createDiffEditor(t.$refs.editor, {\n                                    language: \"yaml\",\n                                    theme: \"vs-dark\",\n                                    fontFamily: \"Consolas, Monaco, Lucida Console, Liberation Mono,\\n        DejaVu Sans Mono, Bitstream Vera Sans Mono, Courier New, monospace\",\n                                    fontSize: 12,\n                                    automaticLayout: !0,\n                                    renderSideBySide: t.renderSideBySide,\n                                    minimap: {\n                                        enabled: !1\n                                    },\n                                    contextmenu: !1,\n                                    scrollbar: {\n                                        verticalScrollbarSize: 12,\n                                        horizontalScrollbarSize: 12\n                                    },\n                                    quickSuggestions: {\n                                        other: !0,\n                                        strings: !0\n                                    }\n                                }), t.editor.addAction({\n                                    id: \"save\",\n                                    label: Lg.save(),\n                                    run: t.handleSave,\n                                    keybindings: [a.KeyMod.CtrlCmd | a.KeyCode.KeyS]\n                                }), t.editor.setModel({\n                                    original: t.baseModel,\n                                    modified: t.changeModel\n                                }), t.editor.getModifiedEditor().getContribution(\"editor.linkDetector\").openerService._defaultExternalOpener.openExternal = h.fl\n                            })), new Promise((function(e, i) {\n                                t.resolve = e, t.reject = i\n                            }))\n                        },\n                        handleCancel: function() {\n                            var e = this;\n                            const Lg = new Language(modifyState.language);\n                            return o()(r().mark((function t() {\n                                var i, n;\n                                return r().wrap((function(t) {\n                                    for (;;) switch (t.prev = t.next) {\n                                        case 0:\n                                            if (e.changeModel.getValue() === e.originalChangeCode) {\n                                                t.next = 9;\n                                                break\n                                            }\n                                            return t.next = 3, (0, h.vC)({\n                                                type: \"warning\",\n                                                message: Lg.askSaveChange(),\n                                                buttons: [Lg.save(), Lg.dontSave(), Lg.cancel()]\n                                            });\n                                        case 3:\n                                            i = t.sent, 0 === (n = i.response) && e.handleSave(), 1 === n && (e.reject(), e.isShow = !1), t.next = 11;\n                                            break;\n                                        case 9:\n                                            e.reject(), e.isShow = !1;\n                                        case 11:\n                                        case \"end\":\n                                            return t.stop()\n                                    }\n                                }), t)\n                            })))()\n                        },\n                        handleSave: function() {\n                            this.resolve(this.changeModel.getValue()), this.isShow = !1\n                        },\n                        handleChangeStyle: function() {\n                            this.renderSideBySide = !this.renderSideBySide\n                        }\n                    },\n                    mounted: function() {}\n                };\n                i(43356);\n                const Lg = new Language(modifyState.language);\n                const f = (0, i(51900).Z)(p, (function() {\n                    var e = this,\n                        t = e._self._c;\n                    return e.isShow ? t(\"esc-capture\", {\n                        staticClass: \"main-diff-view bg-[color:var(--mask-c)]\",\n                        on: {\n                            esc: e.handleCancel,\n                            mousedown: function(t) {\n                                return t.target !== t.currentTarget ? null : e.handleCancel.apply(null, arguments)\n                            }\n                        }\n                    }, [t(\"div\", {\n                        staticClass: \"card\"\n                    }, [t(\"div\", {\n                        ref: \"editor\",\n                        staticClass: \"editor\"\n                    }), e._v(\" \"), t(\"div\", {\n                        staticClass: \"btns\"\n                    }, [t(\"Hint\", {\n                        staticClass: \"change-btn-off clickable\",\n                        class: {\n                            \"change-btn-on\": e.renderSideBySide\n                        },\n                        attrs: {\n                            hint: \"并排模式\"\n                        },\n                        on: {\n                            click: e.handleChangeStyle\n                        }\n                    }, [t(\"span\", {\n                        staticClass: \"icon text-[20px] text-white\"\n                    }, [e._v(\"compare\")])]), e._v(\" \"), t(\"Hint\", {\n                        staticClass: \"abort-btn clickable\",\n                        attrs: {\n                            hint: Lg.quit() + \"(ESC)\"\n                        },\n                        on: {\n                            click: e.handleCancel\n                        }\n                    }, [t(\"span\", {\n                        staticClass: \"icon text-[20px] text-white\"\n                    }, [e._v(\"close\")])]), e._v(\" \"), t(\"Hint\", {\n                        staticClass: \"save-btn clickable\",\n                        attrs: {\n                            hint: e.saveHint\n                        },\n                        on: {\n                            click: e.handleSave\n                        }\n                    }, [t(\"span\", {\n                        staticClass: \"icon text-[20px] text-white\"\n                    }, [e._v(\"save\")])])], 1)])]) : e._e()\n                }), [], !1, null, \"c878e8f6\", null).exports\n            },\n            29250: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => f\n                });\n                var n = i(48926),\n                    o = i.n(n),\n                    s = i(319),\n                    r = i.n(s),\n                    a = i(59713),\n                    l = i.n(a),\n                    c = i(87757),\n                    d = i.n(c),\n                    h = i(23321);\n\n                function u(e, t) {\n                    var i = Object.keys(e);\n                    if (Object.getOwnPropertySymbols) {\n                        var n = Object.getOwnPropertySymbols(e);\n                        t && (n = n.filter((function(t) {\n                            return Object.getOwnPropertyDescriptor(e, t).enumerable\n                        }))), i.push.apply(i, n)\n                    }\n                    return i\n                }\n\n                function g(e) {\n                    for (var t = 1; t < arguments.length; t++) {\n                        var i = null != arguments[t] ? arguments[t] : {};\n                        t % 2 ? u(Object(i), !0).forEach((function(t) {\n                            l()(e, t, i[t])\n                        })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(i)) : u(Object(i)).forEach((function(t) {\n                            Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(i, t))\n                        }))\n                    }\n                    return e\n                }\n                const p = {\n                    components: {\n                        EscCapture: i(72574).Z\n                    },\n                    name: \"DNSView\",\n                    props: [],\n                    data: function() {\n                        return {\n                            data: [],\n                            isShow: !1,\n                            searchHost: \"\",\n                            searchType: \"A\",\n                            error: \"\",\n                            flags: [],\n                            status: \"\",\n                            answers: [],\n                            authorities: [],\n                            additionals: [],\n                            questions: [],\n                            resolve: null,\n                            reject: null,\n                            server: \"\",\n                            rttypes: {\n                                1: \"A\",\n                                28: \"AAAA\",\n                                5: \"CNAME\",\n                                15: \"MX\",\n                                2: \"NS\",\n                                12: \"PTR\",\n                                6: \"SOA\",\n                                33: \"SRV\",\n                                16: \"TXT\"\n                            }\n                        }\n                    },\n                    watch: {},\n                    computed: g(g({}, (0, h.mapGetters)([\"theme\", \"clashAxiosClient\"])), {}, {\n                        questionMixed: function() {\n                            var e = this;\n                            return this.questions.reduce((function(t, i) {\n                                return t = [].concat(r()(t), [i.Name, e.rttypes[i.Qtype]])\n                            }), [])\n                        },\n                        answerMixed: function() {\n                            var e = this;\n                            return this.answers.reduce((function(t, i) {\n                                return t = [].concat(r()(t), [i.name, i.TTL, e.rttypes[i.type], i.data])\n                            }), [])\n                        },\n                        authorityMixed: function() {\n                            var e = this;\n                            return this.authorities.reduce((function(t, i) {\n                                return t = [].concat(r()(t), [i.name, i.TTL, e.rttypes[i.type], i.data])\n                            }), [])\n                        },\n                        additionalMixed: function() {\n                            var e = this;\n                            return this.additionals.reduce((function(t, i) {\n                                return t = [].concat(r()(t), [i.name, i.TTL, e.rttypes[i.type], i.data])\n                            }), [])\n                        }\n                    }),\n                    methods: {\n                        show: function() {\n                            var e = this;\n                            return this.isShow = !0, this.$nextTick((function() {\n                                e.$refs[\"search-input\"].focus()\n                            })), new Promise((function(t, i) {\n                                e.resolve = t, e.reject = i\n                            }))\n                        },\n                        parseDoHData: function(e) {\n                            var t = e.Status,\n                                i = e.TC,\n                                n = e.RD,\n                                o = e.RA,\n                                s = e.AD,\n                                r = e.CD,\n                                a = e.Server,\n                                l = void 0 === a ? \"\" : a,\n                                c = e.Question,\n                                d = void 0 === c ? [] : c,\n                                h = e.Answer,\n                                u = void 0 === h ? [] : h,\n                                g = e.Authority,\n                                p = void 0 === g ? [] : g,\n                                f = e.Additional,\n                                m = void 0 === f ? [] : f;\n                            this.status = {\n                                0: \"NOERROR\",\n                                1: \"FORMERR\",\n                                2: \"SERVFAIL\",\n                                3: \"NXDOMAIN\",\n                                4: \"NOTIMP\",\n                                5: \"REFUSED\",\n                                6: \"YXDOMAIN\",\n                                7: \"YXRRSET\",\n                                8: \"NXRRSET\",\n                                9: \"NOTAUTH\",\n                                10: \"NOTZONE\",\n                                11: \"DSOTYPENI\",\n                                16: \"BADVERS\",\n                                17: \"BADKEY\",\n                                18: \"BADTIME\",\n                                19: \"BADMODE\",\n                                20: \"BADNAME\",\n                                21: \"BADALG\",\n                                22: \"BADTRUNC\"\n                            } [t], this.flags = [i ? \"tc\" : \"\", n ? \"rd\" : \"\", o ? \"ra\" : \"\", s ? \"ad\" : \"\", r ? \"cd\" : \"\"].filter((function(e) {\n                                return e\n                            })).map((function(e) {\n                                return e.toUpperCase()\n                            })), this.answers = u, this.authorities = p, this.additionals = m, this.questions = d, this.server = l\n                        },\n                        handleSearch: function() {\n                            var e = this;\n                            const Lg = new Language(modifyState.language);\n                            return o()(d().mark((function t() {\n                                var i, n, o, s, r;\n                                return d().wrap((function(t) { //TODO: maybe can replace en -> cn\n                                    for (;;) switch (t.prev = t.next) {\n                                        case 0:\n                                            if (e.error = \"\", i = function() {\n                                                    e.additionals = [], e.authorities = [], e.answers = [], e.questions = [], e.status = \"\", e.flags = [], e.server = \"\"\n                                                }, !e.searchHost) {\n                                                t.next = 18;\n                                                break\n                                            }\n                                            return t.prev = 3, t.next = 6, e.clashAxiosClient.get(\"/dns/query\", {\n                                                params: {\n                                                    name: e.searchHost,\n                                                    type: e.searchType\n                                                }\n                                            });\n                                        case 6:\n                                            n = t.sent, o = null == n ? void 0 : n.data, e.parseDoHData(o), t.next = 16;\n                                            break;\n                                        case 11:\n                                            t.prev = 11, t.t0 = t.catch(3), r = t.t0.response, e.error = (null == r || null === (s = r.data) || void 0 === s ? void 0 : s.message) || t.t0.message, i();\n                                        case 16:\n                                            t.next = 20;\n                                            break;\n                                        case 18:\n                                            e.error = Lg.pleaseInputDomain(), i();\n                                        case 20:\n                                        case \"end\":\n                                            return t.stop()\n                                    }\n                                }), t, null, [\n                                    [3, 11]\n                                ])\n                            })))()\n                        },\n                        handleKeyDown: function(e) {},\n                        handleCancel: function() {\n                            this.isShow = !1, this.reject()\n                        }\n                    }\n                };\n                i(51073);\n                const f = (0, i(51900).Z)(p, (function() {\n                    var e = this,\n                        t = e._self._c;\n                    const Lg = new Language(modifyState.language);\n                    return e.isShow ? t(\"EscCapture\", {\n                        staticClass: \"main-dns-view bg-[color:var(--mask-c)]\",\n                        class: [\"theme-\".concat(e.theme)],\n                        on: {\n                            esc: e.handleCancel,\n                            keydown: e.handleKeyDown,\n                            mousedown: e.handleCancel\n                        }\n                    }, [t(\"div\", {\n                        staticClass: \"card-main bg-[color:var(--bgc)] text-[color:var(--fgc)]\",\n                        on: {\n                            mousedown: function(e) {\n                                e.stopPropagation()\n                            }\n                        }\n                    }, [t(\"div\", {\n                        staticClass: \"card-content p-4\"\n                    }, [t(\"div\", {\n                        staticClass: \"px-2 text-lg\"\n                    }, [e._v(Lg.queryDNS())]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"px-2 py-2 flex items-center gap-2\"\n                    }, [t(\"input\", {\n                        directives: [{\n                            name: \"model\",\n                            rawName: \"v-model\",\n                            value: e.searchHost,\n                            expression: \"searchHost\"\n                        }],\n                        ref: \"search-input\",\n                        staticClass: \"p-2 py-1 outline-none flex-grow\",\n                        attrs: {\n                            placeholder: Lg.host()\n                        },\n                        domProps: {\n                            value: e.searchHost\n                        },\n                        on: {\n                            change: e.handleSearch,\n                            input: function(t) {\n                                t.target.composing || (e.searchHost = t.target.value)\n                            }\n                        }\n                    }), e._v(\" \"), t(\"input\", {\n                        directives: [{\n                            name: \"model\",\n                            rawName: \"v-model\",\n                            value: e.searchType,\n                            expression: \"searchType\"\n                        }],\n                        staticClass: \"p-2 py-1 w-[80px] outline-none\",\n                        attrs: {\n                            placeholder: Lg.type()\n                        },\n                        domProps: {\n                            value: e.searchType\n                        },\n                        on: {\n                            change: e.handleSearch,\n                            input: function(t) {\n                                t.target.composing || (e.searchType = t.target.value)\n                            }\n                        }\n                    }), e._v(\" \"), t(\"button\", {\n                        staticClass: \"bg-[color:#14A53A] rounded-full text-sm px-4 py-1 text-white\",\n                        on: {\n                            click: e.handleSearch\n                        }\n                    }, [e._v(\"\\n          \" + Lg.lookup() + \"\\n        \")])]), e._v(\" \"), \"\" !== e.status ? t(\"div\", {\n                        staticClass: \"px-2 content-items\"\n                    }, [t(\"div\", {\n                        staticClass: \"flex justify-between gap-2\"\n                    }, [t(\"div\", {\n                        staticClass: \"p flex-grow\"\n                    }, [t(\"span\", [e._v(Lg.server())]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"c\"\n                    }, [e._v(e._s(e.server))])]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"p\"\n                    }, [t(\"span\", [e._v(Lg.status())]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"c\"\n                    }, [e._v(e._s(e.status))])]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"p\"\n                    }, [t(\"span\", [e._v(Lg.flags())]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"text-sm c flex gap-x-3\"\n                    }, e._l(e.flags, (function(i) {\n                        return t(\"div\", {\n                            key: i\n                        }, [e._v(\"\\n                \" + e._s(i) + \"\\n              \")])\n                    })), 0)])]), e._v(\" \"), e.answers.length > 0 ? t(\"div\", {\n                        staticClass: \"p\"\n                    }, [t(\"span\", [e._v(\"Answer\")]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"text-sm c grid grid-cols-4 gap-x-4\",\n                        staticStyle: {\n                            \"grid-template-columns\": \"repeat(4, auto)\"\n                        }\n                    }, e._l(e.answerMixed, (function(i, n) {\n                        return t(\"div\", {\n                            key: n,\n                            staticClass: \"whitespace-pre-wrap break-all\"\n                        }, [t(\"div\", [e._v(e._s(i))])])\n                    })), 0)]) : e._e(), e._v(\" \"), e.authorities.length > 0 ? t(\"div\", {\n                        staticClass: \"p\"\n                    }, [t(\"span\", [e._v(Lg.authority())]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"text-sm c grid grid-cols-4 gap-x-4\",\n                        staticStyle: {\n                            \"grid-template-columns\": \"repeat(4, auto)\"\n                        }\n                    }, e._l(e.authorityMixed, (function(i, n) {\n                        return t(\"div\", {\n                            key: n,\n                            staticClass: \"whitespace-pre-wrap break-all\"\n                        }, [t(\"div\", [e._v(e._s(i))])])\n                    })), 0)]) : e._e(), e._v(\" \"), e.additionals.length > 0 ? t(\"div\", {\n                        staticClass: \"p\"\n                    }, [t(\"span\", [e._v(\"Additional\")]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"text-sm c grid grid-cols-4 gap-x-4\",\n                        staticStyle: {\n                            \"grid-template-columns\": \"repeat(4, auto)\"\n                        }\n                    }, e._l(e.additionalMixed, (function(i, n) {\n                        return t(\"div\", {\n                            key: n,\n                            staticClass: \"whitespace-pre-wrap break-all\"\n                        }, [t(\"div\", [e._v(e._s(i))])])\n                    })), 0)]) : e._e()]) : e._e(), e._v(\" \"), \"\" === e.status && \"\" !== e.error ? t(\"div\", {\n                        staticClass: \"error-hint\"\n                    }, [e._v(\"\\n        \" + e._s(e.error) + \"\\n      \")]) : e._e()])])]) : e._e()\n                }), [], !1, null, \"6e0989c7\", null).exports\n            },\n            7249: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => l\n                });\n                var n = i(59713),\n                    o = i.n(n),\n                    s = i(23321);\n                const Lg = new Language(modifyState.language);\n                function r(e, t) {\n                    var i = Object.keys(e);\n                    if (Object.getOwnPropertySymbols) {\n                        var n = Object.getOwnPropertySymbols(e);\n                        t && (n = n.filter((function(t) {\n                            return Object.getOwnPropertyDescriptor(e, t).enumerable\n                        }))), i.push.apply(i, n)\n                    }\n                    return i\n                }\n                const a = {\n                    components: {\n                        EscCapture: i(72574).Z\n                    },\n                    name: \"InputView\",\n                    props: [],\n                    data: function() {\n                        return {\n                            data: [],\n                            isShow: !1,\n                            error: \"\",\n                            title: \"\",\n                            hint: \"\",\n                            resolve: null,\n                            reject: null,\n                            confirmText: Lg.ok()\n                        }\n                    },\n                    watch: {},\n                    computed: function(e) {\n                        for (var t = 1; t < arguments.length; t++) {\n                            var i = null != arguments[t] ? arguments[t] : {};\n                            t % 2 ? r(Object(i), !0).forEach((function(t) {\n                                o()(e, t, i[t])\n                            })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(i)) : r(Object(i)).forEach((function(t) {\n                                Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(i, t))\n                            }))\n                        }\n                        return e\n                    }({}, (0, s.mapGetters)([\"theme\"])),\n                    methods: {\n                        show: function(e) {\n                            var t = this,\n                                i = e.data,\n                                n = void 0 === i ? [] : i,\n                                o = e.title,\n                                s = void 0 === o ? \"\" : o,\n                                r = e.hint,\n                                a = void 0 === r ? \"\" : r,\n                                l = e.confirmText,\n                                c = void 0 === l ? Lg.ok() : l;\n                            return this.error = \"\", this.isShow = !0, this.data = n, this.title = s, this.hint = a, this.confirmText = c, this.$nextTick((function() {\n                                for (var e in n) {\n                                    var i = t.$refs[\"ta\".concat(e)][0];\n                                    i.style.height = i.scrollHeight + 2 + \"px\"\n                                }\n                            })), new Promise((function(e, i) {\n                                t.resolve = e, t.reject = i\n                            }))\n                        },\n                        handleTextareaInput: function(e) {\n                            var t = e.target;\n                            t && (t.style.height = \"\", t.style.height = t.scrollHeight + 2 + \"px\")\n                        },\n                        handleKeyDown: function(e) {},\n                        handleCancel: function() {\n                            this.isShow = !1, this.reject()\n                        },\n                        handleDone: function() {\n                            if (this.data.filter((function(e) {\n                                    return e.required && \"\" === e.value\n                                })).length > 0) this.error = \"required key(*) must have a value\";\n                            else {\n                                var e = this.data.find((function(e) {\n                                    return e.hasOwnProperty(\"validate\") && \"\" !== e.validate(e.value)\n                                }));\n                                if (e) this.error = e.validate(e.value);\n                                else {\n                                    this.isShow = !1;\n                                    var t = {};\n                                    this.data.forEach((function(e) {\n                                        var i = e.value;\n                                        \"\" !== i && (t[e.key] = i)\n                                    })), this.resolve(t)\n                                }\n                            }\n                        }\n                    }\n                };\n                i(20684);\n                const l = (0, i(51900).Z)(a, (function() {\n                    var e = this,\n                        t = e._self._c;\n                    return e.isShow ? t(\"EscCapture\", {\n                        staticClass: \"main-input-view-plugin bg-[color:var(--mask-c)]\",\n                        class: [\"theme-\".concat(e.theme)],\n                        on: {\n                            esc: e.handleCancel,\n                            keydown: e.handleKeyDown,\n                            mousedown: e.handleCancel\n                        }\n                    }, [t(\"div\", {\n                        staticClass: \"card-main bg-[color:var(--bgc)] text-[color:var(--fgc)]\",\n                        on: {\n                            mousedown: function(e) {\n                                e.stopPropagation()\n                            }\n                        }\n                    }, [t(\"div\", {\n                        staticClass: \"card-content\"\n                    }, [t(\"div\", {\n                        staticClass: \"content-title\"\n                    }, [e._v(e._s(e.title))]), e._v(\" \"), e.hint ? t(\"div\", {\n                        staticClass: \"content-hint\"\n                    }, [e._v(e._s(e.hint))]) : e._e(), e._v(\" \"), t(\"div\", {\n                        staticClass: \"content-items\"\n                    }, e._l(e.data, (function(i, n) {\n                        return t(\"div\", {\n                            key: n,\n                            staticClass: \"content-item\"\n                        }, [t(\"div\", {\n                            staticClass: \"item-key\"\n                        }, [e._v(\"\\n            \" + e._s(i.name) + \"\\n            \"), i.required ? t(\"span\", [e._v(\"*\")]) : e._e()]), e._v(\" \"), t(\"textarea\", {\n                            directives: [{\n                                name: \"model\",\n                                rawName: \"v-model\",\n                                value: i.value,\n                                expression: \"item.value\"\n                            }],\n                            ref: \"ta\".concat(n),\n                            refInFor: !0,\n                            staticClass: \"border-[1px] border-[color:var(--bc)]\",\n                            attrs: {\n                                type: \"text\",\n                                rows: \"1\",\n                                spellcheck: \"false\",\n                                placeholder: i.placeholder\n                            },\n                            domProps: {\n                                value: i.value\n                            },\n                            on: {\n                                input: [function(t) {\n                                    t.target.composing || e.$set(i, \"value\", t.target.value)\n                                }, e.handleTextareaInput]\n                            }\n                        })])\n                    })), 0), e._v(\" \"), e.error ? t(\"div\", {\n                        staticClass: \"error-hint\"\n                    }, [e._v(e._s(e.error))]) : e._e(), e._v(\" \"), t(\"div\", {\n                        staticClass: \"card-btns\"\n                    }, [t(\"div\", {\n                        staticClass: \"btn btn-cancel\",\n                        on: {\n                            click: e.handleCancel\n                        }\n                    }, [e._v(Lg.cancel())]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"btn btn-ok\",\n                        on: {\n                            click: e.handleDone\n                        }\n                    }, [e._v(e._s(e.confirmText))])])])])]) : e._e()\n                }), [], !1, null, \"15034054\", null).exports\n            },\n            37142: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => l\n                });\n                var n = i(59713),\n                    o = i.n(n),\n                    s = i(23321);\n\n                function r(e, t) {\n                    var i = Object.keys(e);\n                    if (Object.getOwnPropertySymbols) {\n                        var n = Object.getOwnPropertySymbols(e);\n                        t && (n = n.filter((function(t) {\n                            return Object.getOwnPropertyDescriptor(e, t).enumerable\n                        }))), i.push.apply(i, n)\n                    }\n                    return i\n                }\n                const a = {\n                    name: \"MenuView\",\n                    props: [],\n                    components: {\n                        EscCapture: i(72574).Z\n                    },\n                    data: function() {\n                        return {\n                            isShow: !1,\n                            options: {},\n                            items: [],\n                            contentStyles: {},\n                            isScrollBottom: !0\n                        }\n                    },\n                    watch: {\n                        isShow: function(e) {\n                            var t = this;\n                            this.$nextTick((function() {\n                                if (e && t.$refs.menu && t.$refs.window.$el) {\n                                    var i = t.$refs.menu,\n                                        n = i.clientHeight,\n                                        o = i.clientWidth,\n                                        s = t.$refs.window.$el,\n                                        r = s.clientHeight,\n                                        a = s.clientWidth,\n                                        l = r + 25,\n                                        c = t.options,\n                                        d = c.clientX,\n                                        h = c.clientY,\n                                        u = {};\n                                    h + n <= l - 10 ? u.top = h + \"px\" : h - n >= 10 ? u.top = h - n + \"px\" : (u.top = h + \"px\", u.height = l - h - 10 + \"px\", t.isScrollBottom = !1), u.left = d + o <= a ? d + \"px\" : d - o + \"px\", t.contentStyles = u\n                                }\n                            }))\n                        }\n                    },\n                    computed: function(e) {\n                        for (var t = 1; t < arguments.length; t++) {\n                            var i = null != arguments[t] ? arguments[t] : {};\n                            t % 2 ? r(Object(i), !0).forEach((function(t) {\n                                o()(e, t, i[t])\n                            })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(i)) : r(Object(i)).forEach((function(t) {\n                                Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(i, t))\n                            }))\n                        }\n                        return e\n                    }({}, (0, s.mapState)({})),\n                    methods: {\n                        show: function() {\n                            var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : [],\n                                t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};\n                            this.items = e, this.options = t, this.isShow = !0, this.contentStyles = {}, this.isScrollBottom = !0\n                        },\n                        handleCancel: function() {\n                            this.isShow = !1\n                        },\n                        handleItemSelect: function(e) {\n                            this.isShow = !1, null == e || e.click()\n                        },\n                        handleMenuScroll: function(e) {\n                            var t = e.target;\n                            this.isScrollBottom = t.scrollTop + t.clientHeight >= t.scrollHeight - 20\n                        }\n                    }\n                };\n                i(54618);\n                const l = (0, i(51900).Z)(a, (function() {\n                    var e = this,\n                        t = e._self._c;\n                    const Lg = new Language(modifyState.language);\n                    return e.isShow ? t(\"EscCapture\", {\n                        ref: \"window\",\n                        staticClass: \"main-menu-view-plugin\",\n                        on: {\n                            esc: e.handleCancel,\n                            mousedown: e.handleCancel\n                        }\n                    }, [t(\"div\", {\n                        staticClass: \"card-main\",\n                        on: {\n                            mousedown: function(e) {\n                                e.stopPropagation()\n                            }\n                        }\n                    }, [t(\"div\", {\n                        ref: \"menu\",\n                        staticClass: \"card-content\",\n                        style: e.contentStyles,\n                        on: {\n                            scroll: e.handleMenuScroll\n                        }\n                    }, [e._l(e.items, (function(i) {\n                        return [i.disabled ? t(\"div\", {\n                            key: i.text,\n                            staticClass: \"item-disabled\"\n                        }, [t(\"div\", [e._v(e._s(i.text))])]) : i.hide ? e._e() : t(\"div\", {\n                            key: i.text,\n                            staticClass: \"item clickable\",\n                            on: {\n                                click: function(t) {\n                                    return e.handleItemSelect(i)\n                                }\n                            }\n                        }, [t(\"span\", {\n                            staticClass: \"icon text-white mr-[15px] text-sm\"\n                        }, [e._v(e._s(i.icon))]), e._v(\" \"), t(\"div\", [e._v(e._s(i.text))])])]\n                    })), e._v(\" \"), e.isScrollBottom ? e._e() : t(\"div\", {\n                        staticClass: \"indicator bg-[#6f6f6f] text-white\"\n                    }, [t(\"span\", {\n                        staticClass: \"text-xs\"\n                    }, [e._v(Lg.scrollViewMore())]), t(\"span\", {\n                        staticClass: \"icon text-white\"\n                    }, [e._v(\"arrow_drop_down\")])])], 2)])]) : e._e()\n                }), [], !1, null, \"00ec68dc\", null).exports\n            },\n            95539: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => C\n                });\n                var n = i(48926),\n                    o = i.n(n),\n                    s = i(59713),\n                    r = i.n(s),\n                    a = i(87757),\n                    l = i.n(a),\n                    c = (i(11442), i(58583)),\n                    d = i(23321),\n                    h = i(13338),\n                    u = i(83566),\n                    g = i(8369),\n                    p = i(72574),\n                    f = (i(51792), i(81518)),\n                    m = i(24883),\n                    v = i(17285),\n                    _ = i(72298);\n\n                function b(e, t) {\n                    var i = Object.keys(e);\n                    if (Object.getOwnPropertySymbols) {\n                        var n = Object.getOwnPropertySymbols(e);\n                        t && (n = n.filter((function(t) {\n                            return Object.getOwnPropertyDescriptor(e, t).enumerable\n                        }))), i.push.apply(i, n)\n                    }\n                    return i\n                }\n\n                function w(e) {\n                    for (var t = 1; t < arguments.length; t++) {\n                        var i = null != arguments[t] ? arguments[t] : {};\n                        t % 2 ? b(Object(i), !0).forEach((function(t) {\n                            r()(e, t, i[t])\n                        })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(i)) : b(Object(i)).forEach((function(t) {\n                            Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(i, t))\n                        }))\n                    }\n                    return e\n                }\n                const y = {\n                    name: \"ScriptView\",\n                    props: [],\n                    components: {\n                        Hint: h.Z,\n                        EscCapture: p.Z,\n                        Navigator,\n                        SelectView: v.Z\n                    },\n                    data: function() {\n                        return {\n                            editorCode: null,\n                            isShow: !1,\n                            resolve: null,\n                            reject: null,\n                            metadata: {\n                                type: 2,\n                                network: 0,\n                                host: \"example.com\",\n                                sourceIP: \"\",\n                                sourcePort: 7890,\n                                destinationIP: \"\",\n                                destinationPort: 443,\n                                dnsMode: \"normal\",\n                                processPath: \"\",\n                                specialProxy: \"\"\n                            },\n                            isLoading: !1\n                        }\n                    },\n                    watch: {\n                        isShow: function(e) {\n                            e || (this.editorCode && this.editorCode.dispose(), this.editorCode = null)\n                        }\n                    },\n                    computed: w(w(w({}, (0, d.mapState)({})), (0, d.mapGetters)([\"theme\", \"clashAxiosClient\"])), {}, {\n                        saveHint: function() {\n                            const Lg = new Language(modifyState.language);\n                            return (0, u.V5)() ? \"Command+S\" : Lg.save() + \"(Ctrl+S)\"\n                        },\n                        mdt: {\n                            get: function() {\n                                return this.metadata.type - 2\n                            },\n                            set: function(e) {\n                                this.metadata.type = e + 2\n                            }\n                        },\n                        mdd: {\n                            get: function() {\n                                return [\"normal\", \"fake-ip\", \"redir-host\"].indexOf(this.metadata.dnsMode)\n                            },\n                            set: function(e) {\n                                this.metadata.dnsMode = [\"normal\", \"fake-ip\", \"redir-host\"][e]\n                            }\n                        }\n                    }),\n                    methods: {\n                        show: function() {\n                            var e = this;\n                            this.isShow = !0;\n                            var t = {\n                                    theme: \"vs-dark\",\n                                    fontFamily: \"Consolas, Monaco, Lucida Console, Liberation Mono,\\n        DejaVu Sans Mono, Bitstream Vera Sans Mono, Courier New, monospace\",\n                                    automaticLayout: !0,\n                                    fontSize: 14,\n                                    minimap: {\n                                        enabled: !1\n                                    },\n                                    contextmenu: !1,\n                                    scrollbar: {\n                                        verticalScrollbarSize: 12,\n                                        horizontalScrollbarSize: 12\n                                    },\n                                    quickSuggestions: {\n                                        other: !0,\n                                        strings: !0\n                                    },\n                                    smoothScrolling: !0\n                                },\n                                i = m.Z.get(f.Z.TEST_SCRIPT_CONTENT) || 'def main(ctx, metadata):\\n  ip = ctx.resolve_ip(metadata[\"host\"])\\n  if ip == \"\":\\n    return \"DIRECT\"\\n  region = ctx.geoip(ip)\\n  if region == \\'CN\\':\\n    return \"DIRECT\"\\n  return \"Proxy\"';\n                            return this.$nextTick((function() {\n                                e.editorCode = c.editor.create(e.$refs[\"editor-code\"], w({\n                                    value: i,\n                                    language: \"python\"\n                                }, t)), e.editorCode.addAction({\n                                    id: \"test\",\n                                    label: \"Test\",\n                                    run: function() {\n                                        e.test()\n                                    },\n                                    keybindings: [c.KeyMod.CtrlCmd | c.KeyCode.KeyS]\n                                }), e.editorCode.setSelection(new c.Selection(1, 1, 1, 1)), e.editorCode.getContribution(\"editor.linkDetector\").openerService._defaultExternalOpener.openExternal = g.fl, e.editorCode.focus()\n                            })), new Promise((function(t, i) {\n                                e.resolve = t, e.reject = i\n                            }))\n                        },\n                        handleSaveClick: function() {\n                            this.test()\n                        },\n                        handleAbortClick: function() {\n                            var e = this;\n                            return o()(l().mark((function t() {\n                                return l().wrap((function(t) {\n                                    for (;;) switch (t.prev = t.next) {\n                                        case 0:\n                                            e.cancel();\n                                        case 1:\n                                        case \"end\":\n                                            return t.stop()\n                                    }\n                                }), t)\n                            })))()\n                        },\n                        handleDocumentClick: function() {\n                            return o()(l().mark((function e() {\n                                return l().wrap((function(e) {\n                                    for (;;) switch (e.prev = e.next) {\n                                        case 0:\n                                            _.shell.openExternal(\"https://web.archive.org/web/20230521134903/dreamacro.github.io/clash/premium/script.html\");\n                                        case 1:\n                                        case \"end\":\n                                            return e.stop()\n                                    }\n                                }), e)\n                            })))()\n                        },\n                        test: function() {\n                            var e = this;\n                            const Lg = new Language(modifyState.language);\n                            return o()(l().mark((function t() {\n                                var i, n, o, s, r;\n                                return l().wrap((function(t) {\n                                    for (;;) switch (t.prev = t.next) {\n                                        case 0:\n                                            if (i = e.editorCode.getValue(), m.Z.put(f.Z.TEST_SCRIPT_CONTENT, i), !e.resolve) {\n                                                t.next = 19;\n                                                break\n                                            }\n                                            return t.prev = 3, e.isLoading = !0, t.next = 7, e.clashAxiosClient.post(\"/script\", {\n                                                metadata: e.metadata,\n                                                script: i\n                                            });\n                                        case 7:\n                                            n = t.sent, o = n.data, (0, g.vC)({\n                                                type: \"none\",\n                                                message: Lg.success() + \", 结果: \".concat(o.result)\n                                            }), t.next = 16;\n                                            break;\n                                        case 12:\n                                            t.prev = 12, t.t0 = t.catch(3), r = t.t0.response, (0, g.vC)({\n                                                type: \"error\",\n                                                message: Lg.failWithError().concat((null == r || null === (s = r.data) || void 0 === s ? void 0 : s.message) || (null == r ? void 0 : r.data) || t.t0.message)\n                                            });\n                                        case 16:\n                                            return t.prev = 16, e.isLoading = !1, t.finish(16);\n                                        case 19:\n                                        case \"end\":\n                                            return t.stop()\n                                    }\n                                }), t, null, [\n                                    [3, 12, 16, 19]\n                                ])\n                            })))()\n                        },\n                        cancel: function() {\n                            this.reject(), this.isShow = !1\n                        }\n                    },\n                    mounted: function() {},\n                    beforeDestroy: function() {}\n                };\n                i(40433), i(33319);\n                const C = (0, i(51900).Z)(y, (function() {\n                    var e = this,\n                        t = e._self._c;\n                    const Lg = new Language(modifyState.language);\n                    return e.isShow ? t(\"EscCapture\", {\n                        staticClass: \"main-script-view line-numbers bg-[color:var(--mask-c)]\",\n                        on: {\n                            esc: e.handleAbortClick,\n                            mousedown: function(t) {\n                                return t.target !== t.currentTarget ? null : e.handleAbortClick.apply(null, arguments)\n                            }\n                        }\n                    }, [t(\"div\", {\n                        staticClass: \"card flex flex-col bg-[color:#1C1C1C] text-white\"\n                    }, [t(\"div\", {\n                        staticClass: \"px-6 pt-3 text-lg\"\n                    }, [e._v(Lg.scriptTest())]), e._v(\" \"), t(\"div\", {\n                        staticClass: \"metadata pb-3 pt-2 px-6 flex-grow-0 h-fit gap-x-5 grid grid-cols-2 gap-1 text-sm\"\n                    }, [t(\"div\", {\n                        staticStyle: {\n                            \"grid-column\": \"1 / -1\"\n                        }\n                    }, [t(\"span\", [e._v(Lg.type())]), e._v(\" \"), t(\"SelectView\", {\n                        staticClass: \"theme-dark\",\n                        attrs: {\n                            items: [\"HTTP\", \"HTTP Connect\", \"Socks4\", \"Socks5\", \"Redir\", \"TProxy\", \"TUN\", \"Tunnel\"]\n                        },\n                        model: {\n                            value: e.mdt,\n                            callback: function(t) {\n                                e.mdt = t\n                            },\n                            expression: \"mdt\"\n                        }\n                    }), e._v(\" \"), t(\"div\", {\n                        staticClass: \"flex-grow\"\n                    })], 1), e._v(\" \"), t(\"div\", [t(\"span\", [e._v(Lg.network())]), e._v(\" \"), t(\"SelectView\", {\n                        staticClass: \"theme-dark\",\n                        attrs: {\n                            items: [\"TCP\", \"UDP\"]\n                        },\n                        model: {\n                            value: e.metadata.network,\n                            callback: function(t) {\n                                e.$set(e.metadata, \"network\", t)\n                            },\n                            expression: \"metadata.network\"\n                        }\n                    })], 1), e._v(\" \"), t(\"div\", [t(\"span\", [e._v(Lg.modeDNS())]), e._v(\" \"), t(\"SelectView\", {\n                        staticClass: \"theme-dark\",\n                        attrs: {\n                            items: [\"normal\", \"fake-ip\", \"redir-host\"]\n                        },\n                        model: {\n                            value: e.mdd,\n                            callback: function(t) {\n                                e.mdd = t\n                            },\n                            expression: \"mdd\"\n                        }\n                    })], 1), e._v(\" \"), t(\"div\", [t(\"span\", [e._v(Lg.host())]), e._v(\" \"), t(\"input\", {\n                        directives: [{\n                            name: \"model\",\n                            rawName: \"v-model\",\n                            value: e.metadata.host,\n                            expression: \"metadata.host\"\n                        }],\n                        attrs: {\n                            type: \"text\"\n                        },\n                        domProps: {\n                            value: e.metadata.host\n                        },\n                        on: {\n                            input: function(t) {\n                                t.target.composing || e.$set(e.metadata, \"host\", t.target.value)\n                            }\n                        }\n                    })]), e._v(\" \"), t(\"div\", [t(\"span\", [e._v(Lg.sourceIP())]), e._v(\" \"), t(\"input\", {\n                        directives: [{\n                            name: \"model\",\n                            rawName: \"v-model\",\n                            value: e.metadata.sourceIP,\n                            expression: \"metadata.sourceIP\"\n                        }],\n                        attrs: {\n                            type: \"text\"\n                        },\n                        domProps: {\n                            value: e.metadata.sourceIP\n                        },\n                        on: {\n                            input: function(t) {\n                                t.target.composing || e.$set(e.metadata, \"sourceIP\", t.target.value)\n                            }\n                        }\n                    })]), e._v(\" \"), t(\"div\", [t(\"span\", [e._v(Lg.sourcePort())]), e._v(\" \"), t(\"input\", {\n                        directives: [{\n                            name: \"model\",\n                            rawName: \"v-model\",\n                            value: e.metadata.sourcePort,\n                            expression: \"metadata.sourcePort\"\n                        }],\n                        attrs: {\n                            type: \"number\"\n                        },\n                        domProps: {\n                            value: e.metadata.sourcePort\n                        },\n                        on: {\n                            input: function(t) {\n                                t.target.composing || e.$set(e.metadata, \"sourcePort\", t.target.value)\n                            }\n                        }\n                    })]), e._v(\" \"), t(\"div\", [t(\"span\", [e._v(Lg.destinationIP())]), e._v(\" \"), t(\"input\", {\n                        directives: [{\n                            name: \"model\",\n                            rawName: \"v-model\",\n                            value: e.metadata.destinationIP,\n                            expression: \"metadata.destinationIP\"\n                        }],\n                        attrs: {\n                            type: \"text\"\n                        },\n                        domProps: {\n                            value: e.metadata.destinationIP\n                        },\n                        on: {\n                            input: function(t) {\n                                t.target.composing || e.$set(e.metadata, \"destinationIP\", t.target.value)\n                            }\n                        }\n                    })]), e._v(\" \"), t(\"div\", [t(\"span\", [e._v(Lg.destinationPort())]), e._v(\" \"), t(\"input\", {\n                        directives: [{\n                            name: \"model\",\n                            rawName: \"v-model\",\n                            value: e.metadata.destinationPort,\n                            expression: \"metadata.destinationPort\"\n                        }],\n                        attrs: {\n                            type: \"number\"\n                        },\n                        domProps: {\n                            value: e.metadata.destinationPort\n                        },\n                        on: {\n                            input: function(t) {\n                                t.target.composing || e.$set(e.metadata, \"destinationPort\", t.target.value)\n                            }\n                        }\n                    })]), e._v(\" \"), t(\"div\", [t(\"span\", [e._v(Lg.processPath())]), e._v(\" \"), t(\"input\", {\n                        directives: [{\n                            name: \"model\",\n                            rawName: \"v-model\",\n                            value: e.metadata.processPath,\n                            expression: \"metadata.processPath\"\n                        }],\n                        attrs: {\n                            type: \"text\"\n                        },\n                        domProps: {\n                            value: e.metadata.processPath\n                        },\n                        on: {\n                            input: function(t) {\n                                t.target.composing || e.$set(e.metadata, \"processPath\", t.target.value)\n                            }\n                        }\n                    })])]), e._v(\" \"), t(\"div\", {\n                        ref: \"editor-code\",\n                        staticClass: \"editor-code flex-grow-1\"\n                    }), e._v(\" \"), t(\"div\", {\n                        staticClass: \"btns\"\n                    }, [t(\"Hint\", {\n                        staticClass: \"abort-btn clickable\",\n                        attrs: {\n                            hint: Lg.quit()\n                        },\n                        on: {\n                            click: e.handleAbortClick\n                        }\n                    }, [t(\"span\", {\n                        staticClass: \"icon text-[20px] text-white\"\n                    }, [e._v(\"close\")])]), e._v(\" \"), t(\"Hint\", {\n                        staticClass: \"bg-cyan-500 clickable\",\n                        attrs: {\n                            hint: Lg.docs()\n                        },\n                        on: {\n                            click: e.handleDocumentClick\n                        }\n                    }, [t(\"span\", {\n                        staticClass: \"icon text-[20px] text-white\"\n                    }, [e._v(\"article\")])]), e._v(\" \"), e.isLoading ? t(\"Hint\", {\n                        staticClass: \"bg-gray-500 clickable\",\n                        attrs: {\n                            hint: \"Please wait\"\n                        }\n                    }, [t(\"span\", {\n                        staticClass: \"icon text-[20px] text-white\"\n                    }, [e._v(\"pending\")])]) : t(\"Hint\", {\n                        staticClass: \"save-btn clickable\",\n                        attrs: {\n                            hint: e.saveHint\n                        },\n                        on: {\n                            click: e.handleSaveClick\n                        }\n                    }, [t(\"span\", {\n                        staticClass: \"icon text-[20px] text-white\"\n                    }, [e._v(\"play_arrow\")])])], 1)])]) : e._e()\n                }), [], !1, null, \"05227e49\", null).exports\n            },\n            1833: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => f\n                });\n                var n = i(59713),\n                    o = i.n(n),\n                    s = i(23321),\n                    r = (i(72298), i(72574));\n                const a = {\n                    name: \"CheckBox\",\n                    model: {\n                        prop: \"checked\",\n                        event: \"change\"\n                    },\n                    props: {\n                        checked: {\n                            type: Boolean,\n                            default: !1\n                        },\n                        size: {\n                            type: Number,\n                            default: 20\n                        }\n                    },\n                    data: function() {\n                        return {}\n                    }\n                };\n                i(61745);\n                var l = i(51900);\n                const c = (0, l.Z)(a, (function() {\n                    var e = this,\n                        t = e._self._c;\n                    return t(\"div\", {\n                        staticClass: \"main-check-box\",\n                        on: {\n                            click: function(t) {\n                                return e.$emit(\"change\", !e.checked)\n                            }\n                        }\n                    }, [\n                        [t(\"span\", {\n                            staticClass: \"icon text-[color:var(--fgc)] text-[20px]\"\n                        }, [e._v(\"check_box\" + e._s(e.checked ? \"\" : \"_outline_blank\"))])], e._v(\" \"), t(\"div\", {\n                            staticClass: \"slot\"\n                        }, [e._t(\"default\")], 2)\n                    ], 2)\n                }), [], !1, null, \"1c767bad\", null).exports;\n                var d = i(17285),\n                    h = i(8369);\n\n                function u(e, t) {\n                    var i = Object.keys(e);\n                    if (Object.getOwnPropertySymbols) {\n                        var n = Object.getOwnPropertySymbols(e);\n                        t && (n = n.filter((function(t) {\n                            return Object.getOwnPropertyDescriptor(e, t).enumerable\n                        }))), i.push.apply(i, n)\n                    }\n                    return i\n                }\n\n                function g(e) {\n                    for (var t = 1; t < arguments.length; t++) {\n                        var i = null != arguments[t] ? arguments[t] : {};\n                        t % 2 ? u(Object(i), !0).forEach((function(t) {\n                            o()(e, t, i[t])\n                        })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(i)) : u(Object(i)).forEach((function(t) {\n                            Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(i, t))\n                        }))\n                    }\n                    return e\n                }\n                const p = {\n                    components: {\n                        EscCapture: r.Z,\n                        CheckBox: c,\n                        SelectView: d.Z\n                    },\n                    name: \"SelectPlugin\",\n                    props: [],\n                    data: function() {\n                        return {\n                            isShow: !1,\n                            title: \"\",\n                            message: \"\",\n                            html: \"\",\n                            items: [],\n                            resolve: null,\n                            reject: null,\n                            checkList: [],\n                            itemStyles: [],\n                            reactions: null,\n                            reactionClick: function() {},\n                            subSelectItems: [],\n                            subSelectIndex: 0,\n                            subSelectTitle: \"\",\n                            isLastDifferent: !1\n                        }\n                    },\n                    computed: g(g({}, (0, s.mapGetters)([\"theme\"])), {}, {\n                        reactionList: function() {\n                            var e = this,\n                                t = [\"👍\", \"😄\", \"🎉\", \"❤️\", \"🚀\", \"👀\"];\n                            return [\"+1\", \"laugh\", \"hooray\", \"heart\", \"rocket\", \"eyes\"].reduce((function(i, n, o) {\n                                return e.reactions[n] && i.push({\n                                    key: t[o],\n                                    value: e.reactions[n]\n                                }), i\n                            }), [])\n                        }\n                    }),\n                    methods: {\n                        show: function(e) {\n                            var t = this,\n                                i = e.items,\n                                n = void 0 === i ? [] : i,\n                                o = e.title,\n                                s = void 0 === o ? \"Select\" : o,\n                                r = e.message,\n                                a = void 0 === r ? \"\" : r,\n                                l = e.checkList,\n                                c = void 0 === l ? [] : l,\n                                d = e.itemStyles,\n                                h = void 0 === d ? [] : d,\n                                u = e.html,\n                                g = void 0 === u ? \"\" : u,\n                                p = e.reactions,\n                                f = void 0 === p ? null : p,\n                                m = e.reactionClick,\n                                v = void 0 === m ? function() {} : m,\n                                _ = e.subSelectItems,\n                                b = void 0 === _ ? [] : _,\n                                w = e.subSelectTitle,\n                                y = void 0 === w ? \"\" : w,\n                                C = e.isLastDifferent;\n                            return this.isShow = !0, this.title = s, this.items = n, this.message = a, this.checkList = c, this.itemStyles = h, this.html = g, this.reactions = f, this.reactionClick = v, this.subSelectItems = b, this.subSelectTitle = y, this.isLastDifferent = void 0 === C ? \"Cancel\" === n[n.length - 1] : C, new Promise((function(e, i) {\n                                t.resolve = e, t.reject = i\n                            }))\n                        },\n                        handleCancel: function() {\n                            this.isShow = !1, this.reject()\n                        },\n                        handleDone: function() {\n                            this.isShow = !1, this.resolve({})\n                        },\n                        handleItemSelect: function(e) {\n                            var t;\n                            this.isShow = !1, this.subSelectItems.length > 0 ? this.resolve([e, this.subSelectIndex]) : (null === (t = this.checkList) || void 0 === t ? void 0 : t.length) > 0 ? this.resolve([e, this.checkList]) : this.resolve([e])\n                        },\n                        handleHTMLClick: function(e) {\n                            if (\"A\" === e.target.tagName) {\n                                e.preventDefault();\n                                var t = e.target.getAttribute(\"href\");\n                                t && (0, h.fl)(t)\n                            }\n                        }\n                    }\n                };\n                i(42719);\n                const f = (0, l.Z)(p, (function() {\n                    var e = this,\n                        t = e._self._c;\n                    return e.isShow ? t(\"EscCapture\", {\n                        staticClass: \"main-select-view-plugin bg-[color:var(--mask-c)]\",\n                        class: [\"theme-\".concat(e.theme)],\n                        on: {\n                            esc: e.handleCancel,\n                            mousedown: e.handleCancel\n                        }\n                    }, [t(\"div\", {\n                        staticClass: \"card-main bg-[color:var(--bgc)] text-[color:var(--fgc)]\",\n                        on: {\n                            mousedown: function(e) {\n                                e.stopPropagation()\n                            }\n                        }\n                    }, [t(\"div\", {\n                        staticClass: \"card-content\"\n                    }, [t(\"div\", {\n                        staticClass: \"content-title\"\n                    }, [e._v(e._s(e.title))]), e._v(\" \"), e.message ? t(\"div\", {\n                        staticClass: \"content-message\"\n                    }, e._l(e.message.split(\"\\n\"), (function(i) {\n                        return t(\"p\", {\n                            key: i\n                        }, [e._v(\"\\n          \" + e._s(i) + \"\\n        \")])\n                    })), 0) : t(\"div\", {\n                        staticClass: \"html-list\",\n                        domProps: {\n                            innerHTML: e._s(e.html)\n                        },\n                        on: {\n                            click: e.handleHTMLClick\n                        }\n                    }), e._v(\" \"), e.reactions ? t(\"div\", {\n                        staticClass: \"flex gap-3 mb-[10px]\",\n                        on: {\n                            click: e.reactionClick\n                        }\n                    }, e._l(e.reactionList, (function(i) {\n                        return t(\"div\", {\n                            key: i.key,\n                            staticClass: \"flex justify-center items-center gap-1 border-[1px] rounded-lg border-[color:var(--bc)] px-2\"\n                        }, [t(\"div\", [e._v(e._s(i.key))]), e._v(\" \"), t(\"div\", {\n                            staticClass: \"text-sm font-normal\"\n                        }, [e._v(e._s(i.value))])])\n                    })), 0) : e._e(), e._v(\" \"), e.checkList && e.checkList.length > 0 ? t(\"div\", {\n                        staticClass: \"check-list\"\n                    }, e._l(e.checkList, (function(i) {\n                        return t(\"div\", {\n                            key: i,\n                            staticClass: \"check-item\"\n                        }, [t(\"check-box\", {\n                            model: {\n                                value: i.value,\n                                callback: function(t) {\n                                    e.$set(i, \"value\", t)\n                                },\n                                expression: \"item.value\"\n                            }\n                        }, [e._v(e._s(i.key))])], 1)\n                    })), 0) : e._e(), e._v(\" \"), e.subSelectItems.length > 0 ? t(\"div\", {\n                        staticClass: \"mb-[10px] flex items-center gap-2\"\n                    }, [t(\"div\", [e._v(e._s(e.subSelectTitle))]), e._v(\" \"), t(\"SelectView\", {\n                        attrs: {\n                            items: e.subSelectItems\n                        },\n                        model: {\n                            value: e.subSelectIndex,\n                            callback: function(t) {\n                                e.subSelectIndex = t\n                            },\n                            expression: \"subSelectIndex\"\n                        }\n                    })], 1) : e._e(), e._v(\" \"), t(\"div\", {\n                        staticClass: \"btns\"\n                    }, e._l(e.items, (function(i, n) {\n                        return t(\"div\", {\n                            key: n,\n                            staticClass: \"btn\",\n                            class: {\n                                \"last-btn\": e.isLastDifferent && n === e.items.length - 1\n                            },\n                            style: e.itemStyles[n],\n                            on: {\n                                click: function(t) {\n                                    return e.handleItemSelect(n)\n                                }\n                            }\n                        }, [i ? t(\"span\", [e._v(e._s(i))]) : e._e()])\n                    })), 0)])])]) : e._e()\n                }), [], !1, null, \"0826c2c0\", null).exports\n            },\n            38263: (e, t, i) => {\n                \"use strict\";\n                i.r(t), i.d(t, {\n                    default: () => c\n                });\n                var n = i(59713),\n                    o = i.n(n),\n                    s = i(23321);\n\n                function r(e, t) {\n                    var i = Object.keys(e);\n                    if (Object.getOwnPropertySymbols) {\n                        var n = Object.getOwnPropertySymbols(e);\n                        t && (n = n.filter((function(t) {\n                            return Object.getOwnPropertyDescriptor(e, t).enumerable\n                        }))), i.push.apply(i, n)\n                    }\n                    return i\n                }\n\n                function a(e) {\n                    for (var t = 1; t < arguments.length; t++) {\n                        var i = null != arguments[t] ? arguments[t] : {};\n                        t % 2 ? r(Object(i), !0).forEach((function(t) {\n                            o()(e, t, i[t])\n                        })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(i)) : r(Object(i)).forEach((function(t) {\n                            Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(i, t))\n                        }))\n                    }\n                    return e\n                }\n                const l = {\n                    components: {},\n                    name: \"ToastView\",\n                    props: [],\n                    data: function() {\n                        return {\n                            isShow: !1,\n                            content: \"\",\n                            hint: \"\",\n                            timeoutID: null\n                        }\n                    },\n                    computed: a(a({}, (0, s.mapState)({})), (0, s.mapGetters)([\"theme\"])),\n                    methods: {\n                        show: function(e) {\n                            var t = this,\n                                i = e.content,\n                                n = e.hint,\n                                o = e.timeout,\n                                s = void 0 === o ? 3e3 : o;\n                            i && (this.isShow = !0, this.content = i, this.hint = n, this.timeoutID && (clearTimeout(this.timeoutID), this.timeoutID = null), this.timeoutID = setTimeout((function() {\n                                t.isShow = !1\n                            }), s))\n                        }\n                    }\n                };\n                const c = (0, i(51900).Z)(l, (function() {\n                    var e = this,\n                        t = e._self._c;\n                    return e.isShow ? t(\"div\", {\n                        staticClass: \"fixed bottom-6 left-1/2 -translate-x-1/2 z-50 max-w-[350px] bg-black text-white rounded-2xl font-normal px-4 py-2 shadow-xl fade\"\n                    }, [t(\"div\", {\n                        staticClass: \"text-base\"\n                    }, [e._v(e._s(e.content))]), e._v(\" \"), e.hint ? t(\"div\", {\n                        staticClass: \"text-xs\"\n                    }, [e._v(e._s(e.hint))]) : e._e()]) : e._e()\n                }), [], !1, null, null, null).exports\n            },\n            51900: (e, t, i) => {\n                \"use strict\";\n\n                function n(e, t, i, n, o, s, r, a) {\n                    var l, c = \"function\" == typeof e ? e.options : e;\n                    if (t && (c.render = t, c.staticRenderFns = i, c._compiled = !0), n && (c.functional = !0), s && (c._scopeId = \"data-v-\" + s), r ? (l = function(e) {\n                            (e = e || this.$vnode && this.$vnode.ssrContext || this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) || \"undefined\" == typeof __VUE_SSR_CONTEXT__ || (e = __VUE_SSR_CONTEXT__), o && o.call(this, e), e && e._registeredComponents && e._registeredComponents.add(r)\n                        }, c._ssrRegister = l) : o && (l = a ? function() {\n                            o.call(this, (c.functional ? this.parent : this).$root.$options.shadowRoot)\n                        } : o), l)\n                        if (c.functional) {\n                            c._injectStyles = l;\n                            var d = c.render;\n                            c.render = function(e, t) {\n                                return l.call(t), d(e, t)\n                            }\n                        } else {\n                            var h = c.beforeCreate;\n                            c.beforeCreate = h ? [].concat(h, l) : [l]\n                        } return {\n                        exports: e,\n                        options: c\n                    }\n                }\n                i.d(t, {\n                    Z: () => n\n                })\n            },\n            82016: (e, t, i) => {\n                var n = i(546);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"6aeea070\", n, !0, {})\n            },\n            56130: (e, t, i) => {\n                var n = i(96513);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"6b45560c\", n, !0, {})\n            },\n            64962: (e, t, i) => {\n                var n = i(71470);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"93b1d4fa\", n, !0, {})\n            },\n            67633: (e, t, i) => {\n                var n = i(98093);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"486f42f4\", n, !0, {})\n            },\n            36709: (e, t, i) => {\n                var n = i(7543);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"334a2a57\", n, !0, {})\n            },\n            93998: (e, t, i) => {\n                var n = i(6921);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"07376892\", n, !0, {})\n            },\n            2170: (e, t, i) => {\n                var n = i(75730);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"6c5cd7d5\", n, !0, {})\n            },\n            74965: (e, t, i) => {\n                var n = i(55448);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"0077ab65\", n, !0, {})\n            },\n            84843: (e, t, i) => {\n                var n = i(15159);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"182e90fc\", n, !0, {})\n            },\n            31214: (e, t, i) => {\n                var n = i(90071);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"7d413828\", n, !0, {})\n            },\n            17535: (e, t, i) => {\n                var n = i(70223);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"2333538d\", n, !0, {})\n            },\n            24997: (e, t, i) => {\n                var n = i(56388);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"7a5459ca\", n, !0, {})\n            },\n            58946: (e, t, i) => {\n                var n = i(76153);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"5a36221c\", n, !0, {})\n            },\n            3248: (e, t, i) => {\n                var n = i(80407);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"1ac51a43\", n, !0, {})\n            },\n            60408: (e, t, i) => {\n                var n = i(33967);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"a3f8f522\", n, !0, {})\n            },\n            44156: (e, t, i) => {\n                var n = i(64147);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"4b68e1ea\", n, !0, {})\n            },\n            88444: (e, t, i) => {\n                var n = i(56127);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"68b192ab\", n, !0, {})\n            },\n            44118: (e, t, i) => {\n                var n = i(19667);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"2369f0d4\", n, !0, {})\n            },\n            87101: (e, t, i) => {\n                var n = i(51022);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"1f6134dc\", n, !0, {})\n            },\n            62466: (e, t, i) => {\n                var n = i(5785);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"697f56d6\", n, !0, {})\n            },\n            87868: (e, t, i) => {\n                var n = i(39771);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"7bb10cc3\", n, !0, {})\n            },\n            12812: (e, t, i) => {\n                var n = i(90078);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"01df82ba\", n, !0, {})\n            },\n            86323: (e, t, i) => {\n                var n = i(82749);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"265bc9ee\", n, !0, {})\n            },\n            67142: (e, t, i) => {\n                var n = i(22729);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"c4fca718\", n, !0, {})\n            },\n            54175: (e, t, i) => {\n                var n = i(67615);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"e752a3c6\", n, !0, {})\n            },\n            74953: (e, t, i) => {\n                var n = i(32429);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"94a38cba\", n, !0, {})\n            },\n            15582: (e, t, i) => {\n                var n = i(84891);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"10a8293a\", n, !0, {})\n            },\n            28335: (e, t, i) => {\n                var n = i(52073);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"34656efe\", n, !0, {})\n            },\n            91364: (e, t, i) => {\n                var n = i(1715);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"58401c76\", n, !0, {})\n            },\n            20357: (e, t, i) => {\n                var n = i(19523);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"b6491902\", n, !0, {})\n            },\n            84160: (e, t, i) => {\n                var n = i(55228);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"45ccd500\", n, !0, {})\n            },\n            76206: (e, t, i) => {\n                var n = i(63490);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"995772d6\", n, !0, {})\n            },\n            55229: (e, t, i) => {\n                var n = i(27751);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"7beab976\", n, !0, {})\n            },\n            73300: (e, t, i) => {\n                var n = i(57789);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"06a28bc5\", n, !0, {})\n            },\n            63330: (e, t, i) => {\n                var n = i(97073);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"333e6172\", n, !0, {})\n            },\n            68182: (e, t, i) => {\n                var n = i(30458);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"11caec67\", n, !0, {})\n            },\n            83254: (e, t, i) => {\n                var n = i(43147);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"316a5fc6\", n, !0, {})\n            },\n            17441: (e, t, i) => {\n                var n = i(26649);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"65028d10\", n, !0, {})\n            },\n            67771: (e, t, i) => {\n                var n = i(61927);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"d1bf4642\", n, !0, {})\n            },\n            62460: (e, t, i) => {\n                var n = i(44914);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"116fd8ff\", n, !0, {})\n            },\n            60081: (e, t, i) => {\n                var n = i(89783);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"fde4ba02\", n, !0, {})\n            },\n            21512: (e, t, i) => {\n                var n = i(5952);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"672b5390\", n, !0, {})\n            },\n            67382: (e, t, i) => {\n                var n = i(20300);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"28b2b6aa\", n, !0, {})\n            },\n            47283: (e, t, i) => {\n                var n = i(33856);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"4455d6a0\", n, !0, {})\n            },\n            26197: (e, t, i) => {\n                var n = i(98616);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"314430c4\", n, !0, {})\n            },\n            85290: (e, t, i) => {\n                var n = i(64176);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"83b28094\", n, !0, {})\n            },\n            22115: (e, t, i) => {\n                var n = i(41221);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"3f9f2342\", n, !0, {})\n            },\n            80668: (e, t, i) => {\n                var n = i(11897);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"53716d50\", n, !0, {})\n            },\n            42680: (e, t, i) => {\n                var n = i(88830);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"71c851a6\", n, !0, {})\n            },\n            81367: (e, t, i) => {\n                var n = i(36310);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"93035342\", n, !0, {})\n            },\n            96394: (e, t, i) => {\n                var n = i(45291);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"25e195d5\", n, !0, {})\n            },\n            67055: (e, t, i) => {\n                var n = i(70835);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"54194e48\", n, !0, {})\n            },\n            80949: (e, t, i) => {\n                var n = i(20074);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"44118943\", n, !0, {})\n            },\n            59072: (e, t, i) => {\n                var n = i(7547);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"0700f6de\", n, !0, {})\n            },\n            27189: (e, t, i) => {\n                var n = i(23565);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"41f1e1ec\", n, !0, {})\n            },\n            44735: (e, t, i) => {\n                var n = i(8955);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"52684a66\", n, !0, {})\n            },\n            42048: (e, t, i) => {\n                var n = i(62384);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"e2f16918\", n, !0, {})\n            },\n            36999: (e, t, i) => {\n                var n = i(57255);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"a6d09eea\", n, !0, {})\n            },\n            27124: (e, t, i) => {\n                var n = i(50695);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"3afc5414\", n, !0, {})\n            },\n            89401: (e, t, i) => {\n                var n = i(41948);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"452eaec4\", n, !0, {})\n            },\n            82132: (e, t, i) => {\n                var n = i(26993);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"36a70d0e\", n, !0, {})\n            },\n            74617: (e, t, i) => {\n                var n = i(6916);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"1393a7e6\", n, !0, {})\n            },\n            77203: (e, t, i) => {\n                var n = i(44825);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"5c450974\", n, !0, {})\n            },\n            7587: (e, t, i) => {\n                var n = i(63523);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"ffb35d2c\", n, !0, {})\n            },\n            80359: (e, t, i) => {\n                var n = i(52674);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"f5e5b782\", n, !0, {})\n            },\n            4172: (e, t, i) => {\n                var n = i(12450);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"303f715a\", n, !0, {})\n            },\n            38453: (e, t, i) => {\n                var n = i(29593);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"6994ce12\", n, !0, {})\n            },\n            67942: (e, t, i) => {\n                var n = i(52021);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"0ffda64e\", n, !0, {})\n            },\n            30547: (e, t, i) => {\n                var n = i(66853);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"76446cdc\", n, !0, {})\n            },\n            17613: (e, t, i) => {\n                var n = i(45777);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"1ffa2f68\", n, !0, {})\n            },\n            69028: (e, t, i) => {\n                var n = i(81283);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"270bd848\", n, !0, {})\n            },\n            71131: (e, t, i) => {\n                var n = i(37919);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"6ca9443e\", n, !0, {})\n            },\n            82093: (e, t, i) => {\n                var n = i(51232);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"60198b5c\", n, !0, {})\n            },\n            38245: (e, t, i) => {\n                var n = i(75169);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"3dc7c578\", n, !0, {})\n            },\n            15586: (e, t, i) => {\n                var n = i(64608);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"03747281\", n, !0, {})\n            },\n            38926: (e, t, i) => {\n                var n = i(23601);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"eb194c02\", n, !0, {})\n            },\n            74360: (e, t, i) => {\n                var n = i(69791);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"44a5835c\", n, !0, {})\n            },\n            51734: (e, t, i) => {\n                var n = i(38489);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"96b8711a\", n, !0, {})\n            },\n            48619: (e, t, i) => {\n                var n = i(72132);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"563e8d7a\", n, !0, {})\n            },\n            7840: (e, t, i) => {\n                var n = i(44332);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"57f56030\", n, !0, {})\n            },\n            3930: (e, t, i) => {\n                var n = i(82611);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"f1667bee\", n, !0, {})\n            },\n            20988: (e, t, i) => {\n                var n = i(54280);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"3ce47dd5\", n, !0, {})\n            },\n            58141: (e, t, i) => {\n                var n = i(73316);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"5ee8e062\", n, !0, {})\n            },\n            32225: (e, t, i) => {\n                var n = i(88525);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"c99d2430\", n, !0, {})\n            },\n            33319: (e, t, i) => {\n                var n = i(30020);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"37a384e6\", n, !0, {})\n            },\n            21241: (e, t, i) => {\n                var n = i(46485);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"e46935bc\", n, !0, {})\n            },\n            5513: (e, t, i) => {\n                var n = i(69674);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"628699d7\", n, !0, {})\n            },\n            19743: (e, t, i) => {\n                var n = i(40771);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"81cba430\", n, !0, {})\n            },\n            72890: (e, t, i) => {\n                var n = i(16466);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"1e8895ea\", n, !0, {})\n            },\n            56656: (e, t, i) => {\n                var n = i(46073);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"0dc16fd5\", n, !0, {})\n            },\n            46029: (e, t, i) => {\n                var n = i(87133);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"10eef0bd\", n, !0, {})\n            },\n            96340: (e, t, i) => {\n                var n = i(68361);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"4a30b9ee\", n, !0, {})\n            },\n            19259: (e, t, i) => {\n                var n = i(5464);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"78ddc9ba\", n, !0, {})\n            },\n            63473: (e, t, i) => {\n                var n = i(57726);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"2e387658\", n, !0, {})\n            },\n            30145: (e, t, i) => {\n                var n = i(57059);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"5c61eae1\", n, !0, {})\n            },\n            36594: (e, t, i) => {\n                var n = i(46907);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"45e113f0\", n, !0, {})\n            },\n            98803: (e, t, i) => {\n                var n = i(37911);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"4c866154\", n, !0, {})\n            },\n            74863: (e, t, i) => {\n                var n = i(11892);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"2de825d6\", n, !0, {})\n            },\n            44977: (e, t, i) => {\n                var n = i(79928);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"c64955be\", n, !0, {})\n            },\n            38619: (e, t, i) => {\n                var n = i(73816);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"13e27567\", n, !0, {})\n            },\n            99648: (e, t, i) => {\n                var n = i(26534);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"11a9fb58\", n, !0, {})\n            },\n            24860: (e, t, i) => {\n                var n = i(8137);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"793e6b50\", n, !0, {})\n            },\n            53614: (e, t, i) => {\n                var n = i(71717);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"ae14c15e\", n, !0, {})\n            },\n            71176: (e, t, i) => {\n                var n = i(52062);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"fa6f638e\", n, !0, {})\n            },\n            67078: (e, t, i) => {\n                var n = i(63329);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"58975acb\", n, !0, {})\n            },\n            91781: (e, t, i) => {\n                var n = i(22736);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"2e16896e\", n, !0, {})\n            },\n            28318: (e, t, i) => {\n                var n = i(98319);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"b31a4644\", n, !0, {})\n            },\n            60420: (e, t, i) => {\n                var n = i(69953);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"26e90a60\", n, !0, {})\n            },\n            34954: (e, t, i) => {\n                var n = i(5504);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"409adc2d\", n, !0, {})\n            },\n            78518: (e, t, i) => {\n                var n = i(52845);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"98362210\", n, !0, {})\n            },\n            91924: (e, t, i) => {\n                var n = i(53640);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"da8afb56\", n, !0, {})\n            },\n            72852: (e, t, i) => {\n                var n = i(21732);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"86071ec0\", n, !0, {})\n            },\n            52611: (e, t, i) => {\n                var n = i(90596);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"e84f9a40\", n, !0, {})\n            },\n            47191: (e, t, i) => {\n                var n = i(6357);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"762ef1fc\", n, !0, {})\n            },\n            65549: (e, t, i) => {\n                var n = i(69083);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"12c847c1\", n, !0, {})\n            },\n            79820: (e, t, i) => {\n                var n = i(44804);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"3180be88\", n, !0, {})\n            },\n            67664: (e, t, i) => {\n                var n = i(91778);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"5643080e\", n, !0, {})\n            },\n            60569: (e, t, i) => {\n                var n = i(19572);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"f500ea3a\", n, !0, {})\n            },\n            56520: (e, t, i) => {\n                var n = i(28698);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"504cfe4d\", n, !0, {})\n            },\n            58528: (e, t, i) => {\n                var n = i(59374);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"2940d044\", n, !0, {})\n            },\n            61745: (e, t, i) => {\n                var n = i(33509);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"69dc8791\", n, !0, {})\n            },\n            46918: (e, t, i) => {\n                var n = i(70406);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"251e9041\", n, !0, {})\n            },\n            60768: (e, t, i) => {\n                var n = i(84234);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"2f3b07c0\", n, !0, {})\n            },\n            13096: (e, t, i) => {\n                var n = i(82681);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"df920ecc\", n, !0, {})\n            },\n            55230: (e, t, i) => {\n                var n = i(11061);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"7dcaf262\", n, !0, {})\n            },\n            82779: (e, t, i) => {\n                var n = i(41044);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"224d9346\", n, !0, {})\n            },\n            67033: (e, t, i) => {\n                var n = i(65939);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"267b1132\", n, !0, {})\n            },\n            60920: (e, t, i) => {\n                var n = i(18228);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"60b022ac\", n, !0, {})\n            },\n            15907: (e, t, i) => {\n                var n = i(56932);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"317af8ee\", n, !0, {})\n            },\n            92732: (e, t, i) => {\n                var n = i(59480);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"2366d594\", n, !0, {})\n            },\n            14902: (e, t, i) => {\n                var n = i(21417);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"ce104582\", n, !0, {})\n            },\n            43356: (e, t, i) => {\n                var n = i(57565);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"25855349\", n, !0, {})\n            },\n            51073: (e, t, i) => {\n                var n = i(14333);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"b84ac9ee\", n, !0, {})\n            },\n            20684: (e, t, i) => {\n                var n = i(4216);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"20bb8c7e\", n, !0, {})\n            },\n            54618: (e, t, i) => {\n                var n = i(80574);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"0bd1df77\", n, !0, {})\n            },\n            40433: (e, t, i) => {\n                var n = i(5424);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"56d29394\", n, !0, {})\n            },\n            42719: (e, t, i) => {\n                var n = i(62608);\n                n.__esModule && (n = n.default), \"string\" == typeof n && (n = [\n                    [e.id, n, \"\"]\n                ]), n.locals && (e.exports = n.locals);\n                (0, i(45346).Z)(\"72664970\", n, !0, {})\n            },\n            45346: (e, t, i) => {\n                \"use strict\";\n\n                function n(e, t) {\n                    for (var i = [], n = {}, o = 0; o < t.length; o++) {\n                        var s = t[o],\n                            r = s[0],\n                            a = {\n                                id: e + \":\" + o,\n                                css: s[1],\n                                media: s[2],\n                                sourceMap: s[3]\n                            };\n                        n[r] ? n[r].parts.push(a) : i.push(n[r] = {\n                            id: r,\n                            parts: [a]\n                        })\n                    }\n                    return i\n                }\n                i.d(t, {\n                    Z: () => p\n                });\n                var o = \"undefined\" != typeof document;\n                if (\"undefined\" != typeof DEBUG && DEBUG && !o) throw new Error(\"vue-style-loader cannot be used in a non-browser environment. Use { target: 'node' } in your Webpack config to indicate a server-rendering environment.\");\n                var s = {},\n                    r = o && (document.head || document.getElementsByTagName(\"head\")[0]),\n                    a = null,\n                    l = 0,\n                    c = !1,\n                    d = function() {},\n                    h = null,\n                    u = \"data-vue-ssr-id\",\n                    g = \"undefined\" != typeof navigator && /msie [6-9]\\b/.test(navigator.userAgent.toLowerCase());\n\n                function p(e, t, i, o) {\n                    c = i, h = o || {};\n                    var r = n(e, t);\n                    return f(r),\n                        function(t) {\n                            for (var i = [], o = 0; o < r.length; o++) {\n                                var a = r[o];\n                                (l = s[a.id]).refs--, i.push(l)\n                            }\n                            t ? f(r = n(e, t)) : r = [];\n                            for (o = 0; o < i.length; o++) {\n                                var l;\n                                if (0 === (l = i[o]).refs) {\n                                    for (var c = 0; c < l.parts.length; c++) l.parts[c]();\n                                    delete s[l.id]\n                                }\n                            }\n                        }\n                }\n\n                function f(e) {\n                    for (var t = 0; t < e.length; t++) {\n                        var i = e[t],\n                            n = s[i.id];\n                        if (n) {\n                            n.refs++;\n                            for (var o = 0; o < n.parts.length; o++) n.parts[o](i.parts[o]);\n                            for (; o < i.parts.length; o++) n.parts.push(v(i.parts[o]));\n                            n.parts.length > i.parts.length && (n.parts.length = i.parts.length)\n                        } else {\n                            var r = [];\n                            for (o = 0; o < i.parts.length; o++) r.push(v(i.parts[o]));\n                            s[i.id] = {\n                                id: i.id,\n                                refs: 1,\n                                parts: r\n                            }\n                        }\n                    }\n                }\n\n                function m() {\n                    var e = document.createElement(\"style\");\n                    return e.type = \"text/css\", r.appendChild(e), e\n                }\n\n                function v(e) {\n                    var t, i, n = document.querySelector(\"style[\" + u + '~=\"' + e.id + '\"]');\n                    if (n) {\n                        if (c) return d;\n                        n.parentNode.removeChild(n)\n                    }\n                    if (g) {\n                        var o = l++;\n                        n = a || (a = m()), t = w.bind(null, n, o, !1), i = w.bind(null, n, o, !0)\n                    } else n = m(), t = y.bind(null, n), i = function() {\n                        n.parentNode.removeChild(n)\n                    };\n                    return t(e),\n                        function(n) {\n                            if (n) {\n                                if (n.css === e.css && n.media === e.media && n.sourceMap === e.sourceMap) return;\n                                t(e = n)\n                            } else i()\n                        }\n                }\n                var _, b = (_ = [], function(e, t) {\n                    return _[e] = t, _.filter(Boolean).join(\"\\n\")\n                });\n\n                function w(e, t, i, n) {\n                    var o = i ? \"\" : n.css;\n                    if (e.styleSheet) e.styleSheet.cssText = b(t, o);\n                    else {\n                        var s = document.createTextNode(o),\n                            r = e.childNodes;\n                        r[t] && e.removeChild(r[t]), r.length ? e.insertBefore(s, r[t]) : e.appendChild(s)\n                    }\n                }\n\n                function y(e, t) {\n                    var i = t.css,\n                        n = t.media,\n                        o = t.sourceMap;\n                    if (n && e.setAttribute(\"media\", n), h.ssrId && e.setAttribute(u, t.id), o && (i += \"\\n/*# sourceURL=\" + o.sources[0] + \" */\", i += \"\\n/*# sourceMappingURL=data:application/json;base64,\" + btoa(unescape(encodeURIComponent(JSON.stringify(o)))) + \" */\"), e.styleSheet) e.styleSheet.cssText = i;\n                    else {\n                        for (; e.firstChild;) e.removeChild(e.firstChild);\n                        e.appendChild(document.createTextNode(i))\n                    }\n                }\n            },\n            70538: (e, t, i) => {\n                \"use strict\";\n                i.d(t, {\n                    ZP: () => tn\n                });\n                var n = Object.freeze({}),\n                    o = Array.isArray;\n\n                function s(e) {\n                    return null == e\n                }\n\n                function r(e) {\n                    return null != e\n                }\n\n                function a(e) {\n                    return !0 === e\n                }\n\n                function l(e) {\n                    return \"string\" == typeof e || \"number\" == typeof e || \"symbol\" == typeof e || \"boolean\" == typeof e\n                }\n\n                function c(e) {\n                    return \"function\" == typeof e\n                }\n\n                function d(e) {\n                    return null !== e && \"object\" == typeof e\n                }\n                var h = Object.prototype.toString;\n\n                function u(e) {\n                    return \"[object Object]\" === h.call(e)\n                }\n\n                function g(e) {\n                    return \"[object RegExp]\" === h.call(e)\n                }\n\n                function p(e) {\n                    var t = parseFloat(String(e));\n                    return t >= 0 && Math.floor(t) === t && isFinite(e)\n                }\n\n                function f(e) {\n                    return r(e) && \"function\" == typeof e.then && \"function\" == typeof e.catch\n                }\n\n                function m(e) {\n                    return null == e ? \"\" : Array.isArray(e) || u(e) && e.toString === h ? JSON.stringify(e, null, 2) : String(e)\n                }\n\n                function v(e) {\n                    var t = parseFloat(e);\n                    return isNaN(t) ? e : t\n                }\n\n                function _(e, t) {\n                    for (var i = Object.create(null), n = e.split(\",\"), o = 0; o < n.length; o++) i[n[o]] = !0;\n                    return t ? function(e) {\n                        return i[e.toLowerCase()]\n                    } : function(e) {\n                        return i[e]\n                    }\n                }\n                var b = _(\"slot,component\", !0),\n                    w = _(\"key,ref,slot,slot-scope,is\");\n\n                function y(e, t) {\n                    var i = e.length;\n                    if (i) {\n                        if (t === e[i - 1]) return void(e.length = i - 1);\n                        var n = e.indexOf(t);\n                        if (n > -1) return e.splice(n, 1)\n                    }\n                }\n                var C = Object.prototype.hasOwnProperty;\n\n                function x(e, t) {\n                    return C.call(e, t)\n                }\n\n                function S(e) {\n                    var t = Object.create(null);\n                    return function(i) {\n                        return t[i] || (t[i] = e(i))\n                    }\n                }\n                var k = /-(\\w)/g,\n                    L = S((function(e) {\n                        return e.replace(k, (function(e, t) {\n                            return t ? t.toUpperCase() : \"\"\n                        }))\n                    })),\n                    N = S((function(e) {\n                        return e.charAt(0).toUpperCase() + e.slice(1)\n                    })),\n                    D = /\\B([A-Z])/g,\n                    I = S((function(e) {\n                        return e.replace(D, \"-$1\").toLowerCase()\n                    }));\n                var E = Function.prototype.bind ? function(e, t) {\n                    return e.bind(t)\n                } : function(e, t) {\n                    function i(i) {\n                        var n = arguments.length;\n                        return n ? n > 1 ? e.apply(t, arguments) : e.call(t, i) : e.call(t)\n                    }\n                    return i._length = e.length, i\n                };\n\n                function T(e, t) {\n                    t = t || 0;\n                    for (var i = e.length - t, n = new Array(i); i--;) n[i] = e[i + t];\n                    return n\n                }\n\n                function M(e, t) {\n                    for (var i in t) e[i] = t[i];\n                    return e\n                }\n\n                function A(e) {\n                    for (var t = {}, i = 0; i < e.length; i++) e[i] && M(t, e[i]);\n                    return t\n                }\n\n                function O(e, t, i) {}\n                var P = function(e, t, i) {\n                        return !1\n                    },\n                    R = function(e) {\n                        return e\n                    };\n\n                function F(e, t) {\n                    if (e === t) return !0;\n                    var i = d(e),\n                        n = d(t);\n                    if (!i || !n) return !i && !n && String(e) === String(t);\n                    try {\n                        var o = Array.isArray(e),\n                            s = Array.isArray(t);\n                        if (o && s) return e.length === t.length && e.every((function(e, i) {\n                            return F(e, t[i])\n                        }));\n                        if (e instanceof Date && t instanceof Date) return e.getTime() === t.getTime();\n                        if (o || s) return !1;\n                        var r = Object.keys(e),\n                            a = Object.keys(t);\n                        return r.length === a.length && r.every((function(i) {\n                            return F(e[i], t[i])\n                        }))\n                    } catch (e) {\n                        return !1\n                    }\n                }\n\n                function B(e, t) {\n                    for (var i = 0; i < e.length; i++)\n                        if (F(e[i], t)) return i;\n                    return -1\n                }\n\n                function V(e) {\n                    var t = !1;\n                    return function() {\n                        t || (t = !0, e.apply(this, arguments))\n                    }\n                }\n\n                function W(e, t) {\n                    return e === t ? 0 === e && 1 / e != 1 / t : e == e || t == t\n                }\n                var H = \"data-server-rendered\",\n                    z = [\"component\", \"directive\", \"filter\"],\n                    j = [\"beforeCreate\", \"created\", \"beforeMount\", \"mounted\", \"beforeUpdate\", \"updated\", \"beforeDestroy\", \"destroyed\", \"activated\", \"deactivated\", \"errorCaptured\", \"serverPrefetch\", \"renderTracked\", \"renderTriggered\"],\n                    U = {\n                        optionMergeStrategies: Object.create(null),\n                        silent: !1,\n                        productionTip: !1,\n                        devtools: !1,\n                        performance: !1,\n                        errorHandler: null,\n                        warnHandler: null,\n                        ignoredElements: [],\n                        keyCodes: Object.create(null),\n                        isReservedTag: P,\n                        isReservedAttr: P,\n                        isUnknownElement: P,\n                        getTagNamespace: O,\n                        parsePlatformTagName: R,\n                        mustUseProp: P,\n                        async: !0,\n                        _lifecycleHooks: j\n                    },\n                    $ = /a-zA-Z\\u00B7\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u203F-\\u2040\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD/;\n\n                function K(e) {\n                    var t = (e + \"\").charCodeAt(0);\n                    return 36 === t || 95 === t\n                }\n\n                function q(e, t, i, n) {\n                    Object.defineProperty(e, t, {\n                        value: i,\n                        enumerable: !!n,\n                        writable: !0,\n                        configurable: !0\n                    })\n                }\n                var Z = new RegExp(\"[^\".concat($.source, \".$_\\\\d]\"));\n                var G = \"__proto__\" in {},\n                    Y = \"undefined\" != typeof window,\n                    Q = Y && window.navigator.userAgent.toLowerCase(),\n                    X = Q && /msie|trident/.test(Q),\n                    J = Q && Q.indexOf(\"msie 9.0\") > 0,\n                    ee = Q && Q.indexOf(\"edge/\") > 0;\n                Q && Q.indexOf(\"android\");\n                var te = Q && /iphone|ipad|ipod|ios/.test(Q);\n                Q && /chrome\\/\\d+/.test(Q), Q && /phantomjs/.test(Q);\n                var ie, ne = Q && Q.match(/firefox\\/(\\d+)/),\n                    oe = {}.watch,\n                    se = !1;\n                if (Y) try {\n                    var re = {};\n                    Object.defineProperty(re, \"passive\", {\n                        get: function() {\n                            se = !0\n                        }\n                    }), window.addEventListener(\"test-passive\", null, re)\n                } catch (e) {}\n                var ae = function() {\n                        return void 0 === ie && (ie = !Y && \"undefined\" != typeof global && (global.process && \"server\" === global.process.env.VUE_ENV)), ie\n                    },\n                    le = Y && window.__VUE_DEVTOOLS_GLOBAL_HOOK__;\n\n                function ce(e) {\n                    return \"function\" == typeof e && /native code/.test(e.toString())\n                }\n                var de, he = \"undefined\" != typeof Symbol && ce(Symbol) && \"undefined\" != typeof Reflect && ce(Reflect.ownKeys);\n                de = \"undefined\" != typeof Set && ce(Set) ? Set : function() {\n                    function e() {\n                        this.set = Object.create(null)\n                    }\n                    return e.prototype.has = function(e) {\n                        return !0 === this.set[e]\n                    }, e.prototype.add = function(e) {\n                        this.set[e] = !0\n                    }, e.prototype.clear = function() {\n                        this.set = Object.create(null)\n                    }, e\n                }();\n                var ue = null;\n\n                function ge(e) {\n                    void 0 === e && (e = null), e || ue && ue._scope.off(), ue = e, e && e._scope.on()\n                }\n                var pe = function() {\n                        function e(e, t, i, n, o, s, r, a) {\n                            this.tag = e, this.data = t, this.children = i, this.text = n, this.elm = o, this.ns = void 0, this.context = s, this.fnContext = void 0, this.fnOptions = void 0, this.fnScopeId = void 0, this.key = t && t.key, this.componentOptions = r, this.componentInstance = void 0, this.parent = void 0, this.raw = !1, this.isStatic = !1, this.isRootInsert = !0, this.isComment = !1, this.isCloned = !1, this.isOnce = !1, this.asyncFactory = a, this.asyncMeta = void 0, this.isAsyncPlaceholder = !1\n                        }\n                        return Object.defineProperty(e.prototype, \"child\", {\n                            get: function() {\n                                return this.componentInstance\n                            },\n                            enumerable: !1,\n                            configurable: !0\n                        }), e\n                    }(),\n                    fe = function(e) {\n                        void 0 === e && (e = \"\");\n                        var t = new pe;\n                        return t.text = e, t.isComment = !0, t\n                    };\n\n                function me(e) {\n                    return new pe(void 0, void 0, void 0, String(e))\n                }\n\n                function ve(e) {\n                    var t = new pe(e.tag, e.data, e.children && e.children.slice(), e.text, e.elm, e.context, e.componentOptions, e.asyncFactory);\n                    return t.ns = e.ns, t.isStatic = e.isStatic, t.key = e.key, t.isComment = e.isComment, t.fnContext = e.fnContext, t.fnOptions = e.fnOptions, t.fnScopeId = e.fnScopeId, t.asyncMeta = e.asyncMeta, t.isCloned = !0, t\n                }\n                var _e = 0,\n                    be = [],\n                    we = function() {\n                        for (var e = 0; e < be.length; e++) {\n                            var t = be[e];\n                            t.subs = t.subs.filter((function(e) {\n                                return e\n                            })), t._pending = !1\n                        }\n                        be.length = 0\n                    },\n                    ye = function() {\n                        function e() {\n                            this._pending = !1, this.id = _e++, this.subs = []\n                        }\n                        return e.prototype.addSub = function(e) {\n                            this.subs.push(e)\n                        }, e.prototype.removeSub = function(e) {\n                            this.subs[this.subs.indexOf(e)] = null, this._pending || (this._pending = !0, be.push(this))\n                        }, e.prototype.depend = function(t) {\n                            e.target && e.target.addDep(this)\n                        }, e.prototype.notify = function(e) {\n                            var t = this.subs.filter((function(e) {\n                                return e\n                            }));\n                            for (var i = 0, n = t.length; i < n; i++) {\n                                0,\n                                t[i].update()\n                            }\n                        }, e\n                    }();\n                ye.target = null;\n                var Ce = [];\n\n                function xe(e) {\n                    Ce.push(e), ye.target = e\n                }\n\n                function Se() {\n                    Ce.pop(), ye.target = Ce[Ce.length - 1]\n                }\n                var ke = Array.prototype,\n                    Le = Object.create(ke);\n                [\"push\", \"pop\", \"shift\", \"unshift\", \"splice\", \"sort\", \"reverse\"].forEach((function(e) {\n                    var t = ke[e];\n                    q(Le, e, (function() {\n                        for (var i = [], n = 0; n < arguments.length; n++) i[n] = arguments[n];\n                        var o, s = t.apply(this, i),\n                            r = this.__ob__;\n                        switch (e) {\n                            case \"push\":\n                            case \"unshift\":\n                                o = i;\n                                break;\n                            case \"splice\":\n                                o = i.slice(2)\n                        }\n                        return o && r.observeArray(o), r.dep.notify(), s\n                    }))\n                }));\n                var Ne = Object.getOwnPropertyNames(Le),\n                    De = {},\n                    Ie = !0;\n\n                function Ee(e) {\n                    Ie = e\n                }\n                var Te = {\n                        notify: O,\n                        depend: O,\n                        addSub: O,\n                        removeSub: O\n                    },\n                    Me = function() {\n                        function e(e, t, i) {\n                            if (void 0 === t && (t = !1), void 0 === i && (i = !1), this.value = e, this.shallow = t, this.mock = i, this.dep = i ? Te : new ye, this.vmCount = 0, q(e, \"__ob__\", this), o(e)) {\n                                if (!i)\n                                    if (G) e.__proto__ = Le;\n                                    else\n                                        for (var n = 0, s = Ne.length; n < s; n++) {\n                                            q(e, a = Ne[n], Le[a])\n                                        }\n                                t || this.observeArray(e)\n                            } else {\n                                var r = Object.keys(e);\n                                for (n = 0; n < r.length; n++) {\n                                    var a;\n                                    Oe(e, a = r[n], De, void 0, t, i)\n                                }\n                            }\n                        }\n                        return e.prototype.observeArray = function(e) {\n                            for (var t = 0, i = e.length; t < i; t++) Ae(e[t], !1, this.mock)\n                        }, e\n                    }();\n\n                function Ae(e, t, i) {\n                    return e && x(e, \"__ob__\") && e.__ob__ instanceof Me ? e.__ob__ : !Ie || !i && ae() || !o(e) && !u(e) || !Object.isExtensible(e) || e.__v_skip || He(e) || e instanceof pe ? void 0 : new Me(e, t, i)\n                }\n\n                function Oe(e, t, i, n, s, r) {\n                    var a = new ye,\n                        l = Object.getOwnPropertyDescriptor(e, t);\n                    if (!l || !1 !== l.configurable) {\n                        var c = l && l.get,\n                            d = l && l.set;\n                        c && !d || i !== De && 2 !== arguments.length || (i = e[t]);\n                        var h = !s && Ae(i, !1, r);\n                        return Object.defineProperty(e, t, {\n                            enumerable: !0,\n                            configurable: !0,\n                            get: function() {\n                                var t = c ? c.call(e) : i;\n                                return ye.target && (a.depend(), h && (h.dep.depend(), o(t) && Fe(t))), He(t) && !s ? t.value : t\n                            },\n                            set: function(t) {\n                                var n = c ? c.call(e) : i;\n                                if (W(n, t)) {\n                                    if (d) d.call(e, t);\n                                    else {\n                                        if (c) return;\n                                        if (!s && He(n) && !He(t)) return void(n.value = t);\n                                        i = t\n                                    }\n                                    h = !s && Ae(t, !1, r), a.notify()\n                                }\n                            }\n                        }), a\n                    }\n                }\n\n                function Pe(e, t, i) {\n                    if (!We(e)) {\n                        var n = e.__ob__;\n                        return o(e) && p(t) ? (e.length = Math.max(e.length, t), e.splice(t, 1, i), n && !n.shallow && n.mock && Ae(i, !1, !0), i) : t in e && !(t in Object.prototype) ? (e[t] = i, i) : e._isVue || n && n.vmCount ? i : n ? (Oe(n.value, t, i, void 0, n.shallow, n.mock), n.dep.notify(), i) : (e[t] = i, i)\n                    }\n                }\n\n                function Re(e, t) {\n                    if (o(e) && p(t)) e.splice(t, 1);\n                    else {\n                        var i = e.__ob__;\n                        e._isVue || i && i.vmCount || We(e) || x(e, t) && (delete e[t], i && i.dep.notify())\n                    }\n                }\n\n                function Fe(e) {\n                    for (var t = void 0, i = 0, n = e.length; i < n; i++)(t = e[i]) && t.__ob__ && t.__ob__.dep.depend(), o(t) && Fe(t)\n                }\n\n                function Be(e) {\n                    return Ve(e, !0), q(e, \"__v_isShallow\", !0), e\n                }\n\n                function Ve(e, t) {\n                    if (!We(e)) {\n                        Ae(e, t, ae());\n                        0\n                    }\n                }\n\n                function We(e) {\n                    return !(!e || !e.__v_isReadonly)\n                }\n\n                function He(e) {\n                    return !(!e || !0 !== e.__v_isRef)\n                }\n\n                function ze(e, t, i) {\n                    Object.defineProperty(e, i, {\n                        enumerable: !0,\n                        configurable: !0,\n                        get: function() {\n                            var e = t[i];\n                            if (He(e)) return e.value;\n                            var n = e && e.__ob__;\n                            return n && n.dep.depend(), e\n                        },\n                        set: function(e) {\n                            var n = t[i];\n                            He(n) && !He(e) ? n.value = e : t[i] = e\n                        }\n                    })\n                }\n                var je = S((function(e) {\n                    var t = \"&\" === e.charAt(0),\n                        i = \"~\" === (e = t ? e.slice(1) : e).charAt(0),\n                        n = \"!\" === (e = i ? e.slice(1) : e).charAt(0);\n                    return {\n                        name: e = n ? e.slice(1) : e,\n                        once: i,\n                        capture: n,\n                        passive: t\n                    }\n                }));\n\n                function Ue(e, t) {\n                    function i() {\n                        var e = i.fns;\n                        if (!o(e)) return ni(e, null, arguments, t, \"v-on handler\");\n                        for (var n = e.slice(), s = 0; s < n.length; s++) ni(n[s], null, arguments, t, \"v-on handler\")\n                    }\n                    return i.fns = e, i\n                }\n\n                function $e(e, t, i, n, o, r) {\n                    var l, c, d, h;\n                    for (l in e) c = e[l], d = t[l], h = je(l), s(c) || (s(d) ? (s(c.fns) && (c = e[l] = Ue(c, r)), a(h.once) && (c = e[l] = o(h.name, c, h.capture)), i(h.name, c, h.capture, h.passive, h.params)) : c !== d && (d.fns = c, e[l] = d));\n                    for (l in t) s(e[l]) && n((h = je(l)).name, t[l], h.capture)\n                }\n\n                function Ke(e, t, i) {\n                    var n;\n                    e instanceof pe && (e = e.data.hook || (e.data.hook = {}));\n                    var o = e[t];\n\n                    function l() {\n                        i.apply(this, arguments), y(n.fns, l)\n                    }\n                    s(o) ? n = Ue([l]) : r(o.fns) && a(o.merged) ? (n = o).fns.push(l) : n = Ue([o, l]), n.merged = !0, e[t] = n\n                }\n\n                function qe(e, t, i, n, o) {\n                    if (r(t)) {\n                        if (x(t, i)) return e[i] = t[i], o || delete t[i], !0;\n                        if (x(t, n)) return e[i] = t[n], o || delete t[n], !0\n                    }\n                    return !1\n                }\n\n                function Ze(e) {\n                    return l(e) ? [me(e)] : o(e) ? Ye(e) : void 0\n                }\n\n                function Ge(e) {\n                    return r(e) && r(e.text) && !1 === e.isComment\n                }\n\n                function Ye(e, t) {\n                    var i, n, c, d, h = [];\n                    for (i = 0; i < e.length; i++) s(n = e[i]) || \"boolean\" == typeof n || (d = h[c = h.length - 1], o(n) ? n.length > 0 && (Ge((n = Ye(n, \"\".concat(t || \"\", \"_\").concat(i)))[0]) && Ge(d) && (h[c] = me(d.text + n[0].text), n.shift()), h.push.apply(h, n)) : l(n) ? Ge(d) ? h[c] = me(d.text + n) : \"\" !== n && h.push(me(n)) : Ge(n) && Ge(d) ? h[c] = me(d.text + n.text) : (a(e._isVList) && r(n.tag) && s(n.key) && r(t) && (n.key = \"__vlist\".concat(t, \"_\").concat(i, \"__\")), h.push(n)));\n                    return h\n                }\n                var Qe = 1,\n                    Xe = 2;\n\n                function Je(e, t, i, n, s, h) {\n                    return (o(i) || l(i)) && (s = n, n = i, i = void 0), a(h) && (s = Xe),\n                        function(e, t, i, n, s) {\n                            if (r(i) && r(i.__ob__)) return fe();\n                            r(i) && r(i.is) && (t = i.is);\n                            if (!t) return fe();\n                            0;\n                            o(n) && c(n[0]) && ((i = i || {}).scopedSlots = {\n                                default: n[0]\n                            }, n.length = 0);\n                            s === Xe ? n = Ze(n) : s === Qe && (n = function(e) {\n                                for (var t = 0; t < e.length; t++)\n                                    if (o(e[t])) return Array.prototype.concat.apply([], e);\n                                return e\n                            }(n));\n                            var a, l;\n                            if (\"string\" == typeof t) {\n                                var h = void 0;\n                                l = e.$vnode && e.$vnode.ns || U.getTagNamespace(t), a = U.isReservedTag(t) ? new pe(U.parsePlatformTagName(t), i, n, void 0, void 0, e) : i && i.pre || !r(h = Gi(e.$options, \"components\", t)) ? new pe(t, i, n, void 0, void 0, e) : Vi(h, i, e, n, t)\n                            } else a = Vi(t, i, e, n);\n                            return o(a) ? a : r(a) ? (r(l) && et(a, l), r(i) && function(e) {\n                                d(e.style) && _i(e.style);\n                                d(e.class) && _i(e.class)\n                            }(i), a) : fe()\n                        }(e, t, i, n, s)\n                }\n\n                function et(e, t, i) {\n                    if (e.ns = t, \"foreignObject\" === e.tag && (t = void 0, i = !0), r(e.children))\n                        for (var n = 0, o = e.children.length; n < o; n++) {\n                            var l = e.children[n];\n                            r(l.tag) && (s(l.ns) || a(i) && \"svg\" !== l.tag) && et(l, t, i)\n                        }\n                }\n\n                function tt(e, t) {\n                    var i, n, s, a, l = null;\n                    if (o(e) || \"string\" == typeof e)\n                        for (l = new Array(e.length), i = 0, n = e.length; i < n; i++) l[i] = t(e[i], i);\n                    else if (\"number\" == typeof e)\n                        for (l = new Array(e), i = 0; i < e; i++) l[i] = t(i + 1, i);\n                    else if (d(e))\n                        if (he && e[Symbol.iterator]) {\n                            l = [];\n                            for (var c = e[Symbol.iterator](), h = c.next(); !h.done;) l.push(t(h.value, l.length)), h = c.next()\n                        } else\n                            for (s = Object.keys(e), l = new Array(s.length), i = 0, n = s.length; i < n; i++) a = s[i], l[i] = t(e[a], a, i);\n                    return r(l) || (l = []), l._isVList = !0, l\n                }\n\n                function it(e, t, i, n) {\n                    var o, s = this.$scopedSlots[e];\n                    s ? (i = i || {}, n && (i = M(M({}, n), i)), o = s(i) || (c(t) ? t() : t)) : o = this.$slots[e] || (c(t) ? t() : t);\n                    var r = i && i.slot;\n                    return r ? this.$createElement(\"template\", {\n                        slot: r\n                    }, o) : o\n                }\n\n                function nt(e) {\n                    return Gi(this.$options, \"filters\", e, !0) || R\n                }\n\n                function ot(e, t) {\n                    return o(e) ? -1 === e.indexOf(t) : e !== t\n                }\n\n                function st(e, t, i, n, o) {\n                    var s = U.keyCodes[t] || i;\n                    return o && n && !U.keyCodes[t] ? ot(o, n) : s ? ot(s, e) : n ? I(n) !== t : void 0 === e\n                }\n\n                function rt(e, t, i, n, s) {\n                    if (i)\n                        if (d(i)) {\n                            o(i) && (i = A(i));\n                            var r = void 0,\n                                a = function(o) {\n                                    if (\"class\" === o || \"style\" === o || w(o)) r = e;\n                                    else {\n                                        var a = e.attrs && e.attrs.type;\n                                        r = n || U.mustUseProp(t, a, o) ? e.domProps || (e.domProps = {}) : e.attrs || (e.attrs = {})\n                                    }\n                                    var l = L(o),\n                                        c = I(o);\n                                    l in r || c in r || (r[o] = i[o], s && ((e.on || (e.on = {}))[\"update:\".concat(o)] = function(e) {\n                                        i[o] = e\n                                    }))\n                                };\n                            for (var l in i) a(l)\n                        } else;\n                    return e\n                }\n\n                function at(e, t) {\n                    var i = this._staticTrees || (this._staticTrees = []),\n                        n = i[e];\n                    return n && !t || ct(n = i[e] = this.$options.staticRenderFns[e].call(this._renderProxy, this._c, this), \"__static__\".concat(e), !1), n\n                }\n\n                function lt(e, t, i) {\n                    return ct(e, \"__once__\".concat(t).concat(i ? \"_\".concat(i) : \"\"), !0), e\n                }\n\n                function ct(e, t, i) {\n                    if (o(e))\n                        for (var n = 0; n < e.length; n++) e[n] && \"string\" != typeof e[n] && dt(e[n], \"\".concat(t, \"_\").concat(n), i);\n                    else dt(e, t, i)\n                }\n\n                function dt(e, t, i) {\n                    e.isStatic = !0, e.key = t, e.isOnce = i\n                }\n\n                function ht(e, t) {\n                    if (t)\n                        if (u(t)) {\n                            var i = e.on = e.on ? M({}, e.on) : {};\n                            for (var n in t) {\n                                var o = i[n],\n                                    s = t[n];\n                                i[n] = o ? [].concat(o, s) : s\n                            }\n                        } else;\n                    return e\n                }\n\n                function ut(e, t, i, n) {\n                    t = t || {\n                        $stable: !i\n                    };\n                    for (var s = 0; s < e.length; s++) {\n                        var r = e[s];\n                        o(r) ? ut(r, t, i) : r && (r.proxy && (r.fn.proxy = !0), t[r.key] = r.fn)\n                    }\n                    return n && (t.$key = n), t\n                }\n\n                function gt(e, t) {\n                    for (var i = 0; i < t.length; i += 2) {\n                        var n = t[i];\n                        \"string\" == typeof n && n && (e[t[i]] = t[i + 1])\n                    }\n                    return e\n                }\n\n                function pt(e, t) {\n                    return \"string\" == typeof e ? t + e : e\n                }\n\n                function ft(e) {\n                    e._o = lt, e._n = v, e._s = m, e._l = tt, e._t = it, e._q = F, e._i = B, e._m = at, e._f = nt, e._k = st, e._b = rt, e._v = me, e._e = fe, e._u = ut, e._g = ht, e._d = gt, e._p = pt\n                }\n\n                function mt(e, t) {\n                    if (!e || !e.length) return {};\n                    for (var i = {}, n = 0, o = e.length; n < o; n++) {\n                        var s = e[n],\n                            r = s.data;\n                        if (r && r.attrs && r.attrs.slot && delete r.attrs.slot, s.context !== t && s.fnContext !== t || !r || null == r.slot)(i.default || (i.default = [])).push(s);\n                        else {\n                            var a = r.slot,\n                                l = i[a] || (i[a] = []);\n                            \"template\" === s.tag ? l.push.apply(l, s.children || []) : l.push(s)\n                        }\n                    }\n                    for (var c in i) i[c].every(vt) && delete i[c];\n                    return i\n                }\n\n                function vt(e) {\n                    return e.isComment && !e.asyncFactory || \" \" === e.text\n                }\n\n                function _t(e) {\n                    return e.isComment && e.asyncFactory\n                }\n\n                function bt(e, t, i, o) {\n                    var s, r = Object.keys(i).length > 0,\n                        a = t ? !!t.$stable : !r,\n                        l = t && t.$key;\n                    if (t) {\n                        if (t._normalized) return t._normalized;\n                        if (a && o && o !== n && l === o.$key && !r && !o.$hasNormal) return o;\n                        for (var c in s = {}, t) t[c] && \"$\" !== c[0] && (s[c] = wt(e, i, c, t[c]))\n                    } else s = {};\n                    for (var d in i) d in s || (s[d] = yt(i, d));\n                    return t && Object.isExtensible(t) && (t._normalized = s), q(s, \"$stable\", a), q(s, \"$key\", l), q(s, \"$hasNormal\", r), s\n                }\n\n                function wt(e, t, i, n) {\n                    var s = function() {\n                        var t = ue;\n                        ge(e);\n                        var i = arguments.length ? n.apply(null, arguments) : n({}),\n                            s = (i = i && \"object\" == typeof i && !o(i) ? [i] : Ze(i)) && i[0];\n                        return ge(t), i && (!s || 1 === i.length && s.isComment && !_t(s)) ? void 0 : i\n                    };\n                    return n.proxy && Object.defineProperty(t, i, {\n                        get: s,\n                        enumerable: !0,\n                        configurable: !0\n                    }), s\n                }\n\n                function yt(e, t) {\n                    return function() {\n                        return e[t]\n                    }\n                }\n\n                function Ct(e) {\n                    return {\n                        get attrs() {\n                            if (!e._attrsProxy) {\n                                var t = e._attrsProxy = {};\n                                q(t, \"_v_attr_proxy\", !0), xt(t, e.$attrs, n, e, \"$attrs\")\n                            }\n                            return e._attrsProxy\n                        },\n                        get listeners() {\n                            e._listenersProxy || xt(e._listenersProxy = {}, e.$listeners, n, e, \"$listeners\");\n                            return e._listenersProxy\n                        },\n                        get slots() {\n                            return function(e) {\n                                e._slotsProxy || kt(e._slotsProxy = {}, e.$scopedSlots);\n                                return e._slotsProxy\n                            }(e)\n                        },\n                        emit: E(e.$emit, e),\n                        expose: function(t) {\n                            t && Object.keys(t).forEach((function(i) {\n                                return ze(e, t, i)\n                            }))\n                        }\n                    }\n                }\n\n                function xt(e, t, i, n, o) {\n                    var s = !1;\n                    for (var r in t) r in e ? t[r] !== i[r] && (s = !0) : (s = !0, St(e, r, n, o));\n                    for (var r in e) r in t || (s = !0, delete e[r]);\n                    return s\n                }\n\n                function St(e, t, i, n) {\n                    Object.defineProperty(e, t, {\n                        enumerable: !0,\n                        configurable: !0,\n                        get: function() {\n                            return i[n][t]\n                        }\n                    })\n                }\n\n                function kt(e, t) {\n                    for (var i in t) e[i] = t[i];\n                    for (var i in e) i in t || delete e[i]\n                }\n                var Lt, Nt = null;\n\n                function Dt(e, t) {\n                    return (e.__esModule || he && \"Module\" === e[Symbol.toStringTag]) && (e = e.default), d(e) ? t.extend(e) : e\n                }\n\n                function It(e) {\n                    if (o(e))\n                        for (var t = 0; t < e.length; t++) {\n                            var i = e[t];\n                            if (r(i) && (r(i.componentOptions) || _t(i))) return i\n                        }\n                }\n\n                function Et(e, t) {\n                    Lt.$on(e, t)\n                }\n\n                function Tt(e, t) {\n                    Lt.$off(e, t)\n                }\n\n                function Mt(e, t) {\n                    var i = Lt;\n                    return function n() {\n                        null !== t.apply(null, arguments) && i.$off(e, n)\n                    }\n                }\n\n                function At(e, t, i) {\n                    Lt = e, $e(t, i || {}, Et, Tt, Mt, e), Lt = void 0\n                }\n                var Ot = null;\n\n                function Pt(e) {\n                    var t = Ot;\n                    return Ot = e,\n                        function() {\n                            Ot = t\n                        }\n                }\n\n                function Rt(e) {\n                    for (; e && (e = e.$parent);)\n                        if (e._inactive) return !0;\n                    return !1\n                }\n\n                function Ft(e, t) {\n                    if (t) {\n                        if (e._directInactive = !1, Rt(e)) return\n                    } else if (e._directInactive) return;\n                    if (e._inactive || null === e._inactive) {\n                        e._inactive = !1;\n                        for (var i = 0; i < e.$children.length; i++) Ft(e.$children[i]);\n                        Vt(e, \"activated\")\n                    }\n                }\n\n                function Bt(e, t) {\n                    if (!(t && (e._directInactive = !0, Rt(e)) || e._inactive)) {\n                        e._inactive = !0;\n                        for (var i = 0; i < e.$children.length; i++) Bt(e.$children[i]);\n                        Vt(e, \"deactivated\")\n                    }\n                }\n\n                function Vt(e, t, i, n) {\n                    void 0 === n && (n = !0), xe();\n                    var o = ue;\n                    n && ge(e);\n                    var s = e.$options[t],\n                        r = \"\".concat(t, \" hook\");\n                    if (s)\n                        for (var a = 0, l = s.length; a < l; a++) ni(s[a], e, i || null, e, r);\n                    e._hasHookEvent && e.$emit(\"hook:\" + t), n && ge(o), Se()\n                }\n                var Wt = [],\n                    Ht = [],\n                    zt = {},\n                    jt = !1,\n                    Ut = !1,\n                    $t = 0;\n                var Kt = 0,\n                    qt = Date.now;\n                if (Y && !X) {\n                    var Zt = window.performance;\n                    Zt && \"function\" == typeof Zt.now && qt() > document.createEvent(\"Event\").timeStamp && (qt = function() {\n                        return Zt.now()\n                    })\n                }\n                var Gt = function(e, t) {\n                    if (e.post) {\n                        if (!t.post) return 1\n                    } else if (t.post) return -1;\n                    return e.id - t.id\n                };\n\n                function Yt() {\n                    var e, t;\n                    for (Kt = qt(), Ut = !0, Wt.sort(Gt), $t = 0; $t < Wt.length; $t++)(e = Wt[$t]).before && e.before(), t = e.id, zt[t] = null, e.run();\n                    var i = Ht.slice(),\n                        n = Wt.slice();\n                    $t = Wt.length = Ht.length = 0, zt = {}, jt = Ut = !1,\n                        function(e) {\n                            for (var t = 0; t < e.length; t++) e[t]._inactive = !0, Ft(e[t], !0)\n                        }(i),\n                        function(e) {\n                            var t = e.length;\n                            for (; t--;) {\n                                var i = e[t],\n                                    n = i.vm;\n                                n && n._watcher === i && n._isMounted && !n._isDestroyed && Vt(n, \"updated\")\n                            }\n                        }(n), we(), le && U.devtools && le.emit(\"flush\")\n                }\n\n                function Qt(e) {\n                    var t = e.id;\n                    if (null == zt[t] && (e !== ye.target || !e.noRecurse)) {\n                        if (zt[t] = !0, Ut) {\n                            for (var i = Wt.length - 1; i > $t && Wt[i].id > e.id;) i--;\n                            Wt.splice(i + 1, 0, e)\n                        } else Wt.push(e);\n                        jt || (jt = !0, fi(Yt))\n                    }\n                }\n                var Xt = \"watcher\";\n                \"\".concat(Xt, \" callback\"), \"\".concat(Xt, \" getter\"), \"\".concat(Xt, \" cleanup\");\n                var Jt;\n                var ei = function() {\n                    function e(e) {\n                        void 0 === e && (e = !1), this.detached = e, this.active = !0, this.effects = [], this.cleanups = [], this.parent = Jt, !e && Jt && (this.index = (Jt.scopes || (Jt.scopes = [])).push(this) - 1)\n                    }\n                    return e.prototype.run = function(e) {\n                        if (this.active) {\n                            var t = Jt;\n                            try {\n                                return Jt = this, e()\n                            } finally {\n                                Jt = t\n                            }\n                        } else 0\n                    }, e.prototype.on = function() {\n                        Jt = this\n                    }, e.prototype.off = function() {\n                        Jt = this.parent\n                    }, e.prototype.stop = function(e) {\n                        if (this.active) {\n                            var t = void 0,\n                                i = void 0;\n                            for (t = 0, i = this.effects.length; t < i; t++) this.effects[t].teardown();\n                            for (t = 0, i = this.cleanups.length; t < i; t++) this.cleanups[t]();\n                            if (this.scopes)\n                                for (t = 0, i = this.scopes.length; t < i; t++) this.scopes[t].stop(!0);\n                            if (!this.detached && this.parent && !e) {\n                                var n = this.parent.scopes.pop();\n                                n && n !== this && (this.parent.scopes[this.index] = n, n.index = this.index)\n                            }\n                            this.parent = void 0, this.active = !1\n                        }\n                    }, e\n                }();\n\n                function ti(e) {\n                    var t = e._provided,\n                        i = e.$parent && e.$parent._provided;\n                    return i === t ? e._provided = Object.create(i) : t\n                }\n\n                function ii(e, t, i) {\n                    xe();\n                    try {\n                        if (t)\n                            for (var n = t; n = n.$parent;) {\n                                var o = n.$options.errorCaptured;\n                                if (o)\n                                    for (var s = 0; s < o.length; s++) try {\n                                        if (!1 === o[s].call(n, e, t, i)) return\n                                    } catch (e) {\n                                        oi(e, n, \"errorCaptured hook\")\n                                    }\n                            }\n                        oi(e, t, i)\n                    } finally {\n                        Se()\n                    }\n                }\n\n                function ni(e, t, i, n, o) {\n                    var s;\n                    try {\n                        (s = i ? e.apply(t, i) : e.call(t)) && !s._isVue && f(s) && !s._handled && (s.catch((function(e) {\n                            return ii(e, n, o + \" (Promise/async)\")\n                        })), s._handled = !0)\n                    } catch (e) {\n                        ii(e, n, o)\n                    }\n                    return s\n                }\n\n                function oi(e, t, i) {\n                    if (U.errorHandler) try {\n                        return U.errorHandler.call(null, e, t, i)\n                    } catch (t) {\n                        t !== e && si(t, null, \"config.errorHandler\")\n                    }\n                    si(e, t, i)\n                }\n\n                function si(e, t, i) {\n                    if (!Y || \"undefined\" == typeof console) throw e;\n                    console.error(e)\n                }\n                var ri, ai = !1,\n                    li = [],\n                    ci = !1;\n\n                function di() {\n                    ci = !1;\n                    var e = li.slice(0);\n                    li.length = 0;\n                    for (var t = 0; t < e.length; t++) e[t]()\n                }\n                if (\"undefined\" != typeof Promise && ce(Promise)) {\n                    var hi = Promise.resolve();\n                    ri = function() {\n                        hi.then(di), te && setTimeout(O)\n                    }, ai = !0\n                } else if (X || \"undefined\" == typeof MutationObserver || !ce(MutationObserver) && \"[object MutationObserverConstructor]\" !== MutationObserver.toString()) ri = \"undefined\" != typeof setImmediate && ce(setImmediate) ? function() {\n                    setImmediate(di)\n                } : function() {\n                    setTimeout(di, 0)\n                };\n                else {\n                    var ui = 1,\n                        gi = new MutationObserver(di),\n                        pi = document.createTextNode(String(ui));\n                    gi.observe(pi, {\n                        characterData: !0\n                    }), ri = function() {\n                        ui = (ui + 1) % 2, pi.data = String(ui)\n                    }, ai = !0\n                }\n\n                function fi(e, t) {\n                    var i;\n                    if (li.push((function() {\n                            if (e) try {\n                                e.call(t)\n                            } catch (e) {\n                                ii(e, t, \"nextTick\")\n                            } else i && i(t)\n                        })), ci || (ci = !0, ri()), !e && \"undefined\" != typeof Promise) return new Promise((function(e) {\n                        i = e\n                    }))\n                }\n\n                function mi(e) {\n                    return function(t, i) {\n                        if (void 0 === i && (i = ue), i) return function(e, t, i) {\n                            var n = e.$options;\n                            n[t] = $i(n[t], i)\n                        }(i, e, t)\n                    }\n                }\n                mi(\"beforeMount\"), mi(\"mounted\"), mi(\"beforeUpdate\"), mi(\"updated\"), mi(\"beforeDestroy\"), mi(\"destroyed\"), mi(\"activated\"), mi(\"deactivated\"), mi(\"serverPrefetch\"), mi(\"renderTracked\"), mi(\"renderTriggered\"), mi(\"errorCaptured\");\n                var vi = new de;\n\n                function _i(e) {\n                    return bi(e, vi), vi.clear(), e\n                }\n\n                function bi(e, t) {\n                    var i, n, s = o(e);\n                    if (!(!s && !d(e) || e.__v_skip || Object.isFrozen(e) || e instanceof pe)) {\n                        if (e.__ob__) {\n                            var r = e.__ob__.dep.id;\n                            if (t.has(r)) return;\n                            t.add(r)\n                        }\n                        if (s)\n                            for (i = e.length; i--;) bi(e[i], t);\n                        else if (He(e)) bi(e.value, t);\n                        else\n                            for (i = (n = Object.keys(e)).length; i--;) bi(e[n[i]], t)\n                    }\n                }\n                var wi = 0,\n                    yi = function() {\n                        function e(e, t, i, n, o) {\n                            var s, r;\n                            s = this, void 0 === (r = Jt && !Jt._vm ? Jt : e ? e._scope : void 0) && (r = Jt), r && r.active && r.effects.push(s), (this.vm = e) && o && (e._watcher = this), n ? (this.deep = !!n.deep, this.user = !!n.user, this.lazy = !!n.lazy, this.sync = !!n.sync, this.before = n.before) : this.deep = this.user = this.lazy = this.sync = !1, this.cb = i, this.id = ++wi, this.active = !0, this.post = !1, this.dirty = this.lazy, this.deps = [], this.newDeps = [], this.depIds = new de, this.newDepIds = new de, this.expression = \"\", c(t) ? this.getter = t : (this.getter = function(e) {\n                                if (!Z.test(e)) {\n                                    var t = e.split(\".\");\n                                    return function(e) {\n                                        for (var i = 0; i < t.length; i++) {\n                                            if (!e) return;\n                                            e = e[t[i]]\n                                        }\n                                        return e\n                                    }\n                                }\n                            }(t), this.getter || (this.getter = O)), this.value = this.lazy ? void 0 : this.get()\n                        }\n                        return e.prototype.get = function() {\n                            var e;\n                            xe(this);\n                            var t = this.vm;\n                            try {\n                                e = this.getter.call(t, t)\n                            } catch (e) {\n                                if (!this.user) throw e;\n                                ii(e, t, 'getter for watcher \"'.concat(this.expression, '\"'))\n                            } finally {\n                                this.deep && _i(e), Se(), this.cleanupDeps()\n                            }\n                            return e\n                        }, e.prototype.addDep = function(e) {\n                            var t = e.id;\n                            this.newDepIds.has(t) || (this.newDepIds.add(t), this.newDeps.push(e), this.depIds.has(t) || e.addSub(this))\n                        }, e.prototype.cleanupDeps = function() {\n                            for (var e = this.deps.length; e--;) {\n                                var t = this.deps[e];\n                                this.newDepIds.has(t.id) || t.removeSub(this)\n                            }\n                            var i = this.depIds;\n                            this.depIds = this.newDepIds, this.newDepIds = i, this.newDepIds.clear(), i = this.deps, this.deps = this.newDeps, this.newDeps = i, this.newDeps.length = 0\n                        }, e.prototype.update = function() {\n                            this.lazy ? this.dirty = !0 : this.sync ? this.run() : Qt(this)\n                        }, e.prototype.run = function() {\n                            if (this.active) {\n                                var e = this.get();\n                                if (e !== this.value || d(e) || this.deep) {\n                                    var t = this.value;\n                                    if (this.value = e, this.user) {\n                                        var i = 'callback for watcher \"'.concat(this.expression, '\"');\n                                        ni(this.cb, this.vm, [e, t], this.vm, i)\n                                    } else this.cb.call(this.vm, e, t)\n                                }\n                            }\n                        }, e.prototype.evaluate = function() {\n                            this.value = this.get(), this.dirty = !1\n                        }, e.prototype.depend = function() {\n                            for (var e = this.deps.length; e--;) this.deps[e].depend()\n                        }, e.prototype.teardown = function() {\n                            if (this.vm && !this.vm._isBeingDestroyed && y(this.vm._scope.effects, this), this.active) {\n                                for (var e = this.deps.length; e--;) this.deps[e].removeSub(this);\n                                this.active = !1, this.onStop && this.onStop()\n                            }\n                        }, e\n                    }(),\n                    Ci = {\n                        enumerable: !0,\n                        configurable: !0,\n                        get: O,\n                        set: O\n                    };\n\n                function xi(e, t, i) {\n                    Ci.get = function() {\n                        return this[t][i]\n                    }, Ci.set = function(e) {\n                        this[t][i] = e\n                    }, Object.defineProperty(e, i, Ci)\n                }\n\n                function Si(e) {\n                    var t = e.$options;\n                    if (t.props && function(e, t) {\n                            var i = e.$options.propsData || {},\n                                n = e._props = Be({}),\n                                o = e.$options._propKeys = [],\n                                s = !e.$parent;\n                            s || Ee(!1);\n                            var r = function(s) {\n                                o.push(s);\n                                var r = Yi(s, t, i, e);\n                                Oe(n, s, r), s in e || xi(e, \"_props\", s)\n                            };\n                            for (var a in t) r(a);\n                            Ee(!0)\n                        }(e, t.props), function(e) {\n                            var t = e.$options,\n                                i = t.setup;\n                            if (i) {\n                                var n = e._setupContext = Ct(e);\n                                ge(e), xe();\n                                var o = ni(i, null, [e._props || Be({}), n], e, \"setup\");\n                                if (Se(), ge(), c(o)) t.render = o;\n                                else if (d(o))\n                                    if (e._setupState = o, o.__sfc) {\n                                        var s = e._setupProxy = {};\n                                        for (var r in o) \"__sfc\" !== r && ze(s, o, r)\n                                    } else\n                                        for (var r in o) K(r) || ze(e, o, r)\n                            }\n                        }(e), t.methods && function(e, t) {\n                            e.$options.props;\n                            for (var i in t) e[i] = \"function\" != typeof t[i] ? O : E(t[i], e)\n                        }(e, t.methods), t.data) ! function(e) {\n                        var t = e.$options.data;\n                        t = e._data = c(t) ? function(e, t) {\n                            xe();\n                            try {\n                                return e.call(t, t)\n                            } catch (e) {\n                                return ii(e, t, \"data()\"), {}\n                            } finally {\n                                Se()\n                            }\n                        }(t, e) : t || {}, u(t) || (t = {});\n                        var i = Object.keys(t),\n                            n = e.$options.props,\n                            o = (e.$options.methods, i.length);\n                        for (; o--;) {\n                            var s = i[o];\n                            0, n && x(n, s) || K(s) || xi(e, \"_data\", s)\n                        }\n                        var r = Ae(t);\n                        r && r.vmCount++\n                    }(e);\n                    else {\n                        var i = Ae(e._data = {});\n                        i && i.vmCount++\n                    }\n                    t.computed && function(e, t) {\n                        var i = e._computedWatchers = Object.create(null),\n                            n = ae();\n                        for (var o in t) {\n                            var s = t[o],\n                                r = c(s) ? s : s.get;\n                            0, n || (i[o] = new yi(e, r || O, O, ki)), o in e || Li(e, o, s)\n                        }\n                    }(e, t.computed), t.watch && t.watch !== oe && function(e, t) {\n                        for (var i in t) {\n                            var n = t[i];\n                            if (o(n))\n                                for (var s = 0; s < n.length; s++) Ii(e, i, n[s]);\n                            else Ii(e, i, n)\n                        }\n                    }(e, t.watch)\n                }\n                var ki = {\n                    lazy: !0\n                };\n\n                function Li(e, t, i) {\n                    var n = !ae();\n                    c(i) ? (Ci.get = n ? Ni(t) : Di(i), Ci.set = O) : (Ci.get = i.get ? n && !1 !== i.cache ? Ni(t) : Di(i.get) : O, Ci.set = i.set || O), Object.defineProperty(e, t, Ci)\n                }\n\n                function Ni(e) {\n                    return function() {\n                        var t = this._computedWatchers && this._computedWatchers[e];\n                        if (t) return t.dirty && t.evaluate(), ye.target && t.depend(), t.value\n                    }\n                }\n\n                function Di(e) {\n                    return function() {\n                        return e.call(this, this)\n                    }\n                }\n\n                function Ii(e, t, i, n) {\n                    return u(i) && (n = i, i = i.handler), \"string\" == typeof i && (i = e[i]), e.$watch(t, i, n)\n                }\n\n                function Ei(e, t) {\n                    if (e) {\n                        for (var i = Object.create(null), n = he ? Reflect.ownKeys(e) : Object.keys(e), o = 0; o < n.length; o++) {\n                            var s = n[o];\n                            if (\"__ob__\" !== s) {\n                                var r = e[s].from;\n                                if (r in t._provided) i[s] = t._provided[r];\n                                else if (\"default\" in e[s]) {\n                                    var a = e[s].default;\n                                    i[s] = c(a) ? a.call(t) : a\n                                } else 0\n                            }\n                        }\n                        return i\n                    }\n                }\n                var Ti = 0;\n\n                function Mi(e) {\n                    var t = e.options;\n                    if (e.super) {\n                        var i = Mi(e.super);\n                        if (i !== e.superOptions) {\n                            e.superOptions = i;\n                            var n = function(e) {\n                                var t, i = e.options,\n                                    n = e.sealedOptions;\n                                for (var o in i) i[o] !== n[o] && (t || (t = {}), t[o] = i[o]);\n                                return t\n                            }(e);\n                            n && M(e.extendOptions, n), (t = e.options = Zi(i, e.extendOptions)).name && (t.components[t.name] = e)\n                        }\n                    }\n                    return t\n                }\n\n                function Ai(e, t, i, s, r) {\n                    var l, c = this,\n                        d = r.options;\n                    x(s, \"_uid\") ? (l = Object.create(s))._original = s : (l = s, s = s._original);\n                    var h = a(d._compiled),\n                        u = !h;\n                    this.data = e, this.props = t, this.children = i, this.parent = s, this.listeners = e.on || n, this.injections = Ei(d.inject, s), this.slots = function() {\n                        return c.$slots || bt(s, e.scopedSlots, c.$slots = mt(i, s)), c.$slots\n                    }, Object.defineProperty(this, \"scopedSlots\", {\n                        enumerable: !0,\n                        get: function() {\n                            return bt(s, e.scopedSlots, this.slots())\n                        }\n                    }), h && (this.$options = d, this.$slots = this.slots(), this.$scopedSlots = bt(s, e.scopedSlots, this.$slots)), d._scopeId ? this._c = function(e, t, i, n) {\n                        var r = Je(l, e, t, i, n, u);\n                        return r && !o(r) && (r.fnScopeId = d._scopeId, r.fnContext = s), r\n                    } : this._c = function(e, t, i, n) {\n                        return Je(l, e, t, i, n, u)\n                    }\n                }\n\n                function Oi(e, t, i, n, o) {\n                    var s = ve(e);\n                    return s.fnContext = i, s.fnOptions = n, t.slot && ((s.data || (s.data = {})).slot = t.slot), s\n                }\n\n                function Pi(e, t) {\n                    for (var i in t) e[L(i)] = t[i]\n                }\n\n                function Ri(e) {\n                    return e.name || e.__name || e._componentTag\n                }\n                ft(Ai.prototype);\n                var Fi = {\n                        init: function(e, t) {\n                            if (e.componentInstance && !e.componentInstance._isDestroyed && e.data.keepAlive) {\n                                var i = e;\n                                Fi.prepatch(i, i)\n                            } else {\n                                (e.componentInstance = function(e, t) {\n                                    var i = {\n                                            _isComponent: !0,\n                                            _parentVnode: e,\n                                            parent: t\n                                        },\n                                        n = e.data.inlineTemplate;\n                                    r(n) && (i.render = n.render, i.staticRenderFns = n.staticRenderFns);\n                                    return new e.componentOptions.Ctor(i)\n                                }(e, Ot)).$mount(t ? e.elm : void 0, t)\n                            }\n                        },\n                        prepatch: function(e, t) {\n                            var i = t.componentOptions;\n                            ! function(e, t, i, o, s) {\n                                var r = o.data.scopedSlots,\n                                    a = e.$scopedSlots,\n                                    l = !!(r && !r.$stable || a !== n && !a.$stable || r && e.$scopedSlots.$key !== r.$key || !r && e.$scopedSlots.$key),\n                                    c = !!(s || e.$options._renderChildren || l),\n                                    d = e.$vnode;\n                                e.$options._parentVnode = o, e.$vnode = o, e._vnode && (e._vnode.parent = o), e.$options._renderChildren = s;\n                                var h = o.data.attrs || n;\n                                e._attrsProxy && xt(e._attrsProxy, h, d.data && d.data.attrs || n, e, \"$attrs\") && (c = !0), e.$attrs = h, i = i || n;\n                                var u = e.$options._parentListeners;\n                                if (e._listenersProxy && xt(e._listenersProxy, i, u || n, e, \"$listeners\"), e.$listeners = e.$options._parentListeners = i, At(e, i, u), t && e.$options.props) {\n                                    Ee(!1);\n                                    for (var g = e._props, p = e.$options._propKeys || [], f = 0; f < p.length; f++) {\n                                        var m = p[f],\n                                            v = e.$options.props;\n                                        g[m] = Yi(m, v, t, e)\n                                    }\n                                    Ee(!0), e.$options.propsData = t\n                                }\n                                c && (e.$slots = mt(s, o.context), e.$forceUpdate())\n                            }(t.componentInstance = e.componentInstance, i.propsData, i.listeners, t, i.children)\n                        },\n                        insert: function(e) {\n                            var t, i = e.context,\n                                n = e.componentInstance;\n                            n._isMounted || (n._isMounted = !0, Vt(n, \"mounted\")), e.data.keepAlive && (i._isMounted ? ((t = n)._inactive = !1, Ht.push(t)) : Ft(n, !0))\n                        },\n                        destroy: function(e) {\n                            var t = e.componentInstance;\n                            t._isDestroyed || (e.data.keepAlive ? Bt(t, !0) : t.$destroy())\n                        }\n                    },\n                    Bi = Object.keys(Fi);\n\n                function Vi(e, t, i, l, c) {\n                    if (!s(e)) {\n                        var h = i.$options._base;\n                        if (d(e) && (e = h.extend(e)), \"function\" == typeof e) {\n                            var u;\n                            if (s(e.cid) && (e = function(e, t) {\n                                    if (a(e.error) && r(e.errorComp)) return e.errorComp;\n                                    if (r(e.resolved)) return e.resolved;\n                                    var i = Nt;\n                                    if (i && r(e.owners) && -1 === e.owners.indexOf(i) && e.owners.push(i), a(e.loading) && r(e.loadingComp)) return e.loadingComp;\n                                    if (i && !r(e.owners)) {\n                                        var n = e.owners = [i],\n                                            o = !0,\n                                            l = null,\n                                            c = null;\n                                        i.$on(\"hook:destroyed\", (function() {\n                                            return y(n, i)\n                                        }));\n                                        var h = function(e) {\n                                                for (var t = 0, i = n.length; t < i; t++) n[t].$forceUpdate();\n                                                e && (n.length = 0, null !== l && (clearTimeout(l), l = null), null !== c && (clearTimeout(c), c = null))\n                                            },\n                                            u = V((function(i) {\n                                                e.resolved = Dt(i, t), o ? n.length = 0 : h(!0)\n                                            })),\n                                            g = V((function(t) {\n                                                r(e.errorComp) && (e.error = !0, h(!0))\n                                            })),\n                                            p = e(u, g);\n                                        return d(p) && (f(p) ? s(e.resolved) && p.then(u, g) : f(p.component) && (p.component.then(u, g), r(p.error) && (e.errorComp = Dt(p.error, t)), r(p.loading) && (e.loadingComp = Dt(p.loading, t), 0 === p.delay ? e.loading = !0 : l = setTimeout((function() {\n                                            l = null, s(e.resolved) && s(e.error) && (e.loading = !0, h(!1))\n                                        }), p.delay || 200)), r(p.timeout) && (c = setTimeout((function() {\n                                            c = null, s(e.resolved) && g(null)\n                                        }), p.timeout)))), o = !1, e.loading ? e.loadingComp : e.resolved\n                                    }\n                                }(u = e, h), void 0 === e)) return function(e, t, i, n, o) {\n                                var s = fe();\n                                return s.asyncFactory = e, s.asyncMeta = {\n                                    data: t,\n                                    context: i,\n                                    children: n,\n                                    tag: o\n                                }, s\n                            }(u, t, i, l, c);\n                            t = t || {}, Mi(e), r(t.model) && function(e, t) {\n                                var i = e.model && e.model.prop || \"value\",\n                                    n = e.model && e.model.event || \"input\";\n                                (t.attrs || (t.attrs = {}))[i] = t.model.value;\n                                var s = t.on || (t.on = {}),\n                                    a = s[n],\n                                    l = t.model.callback;\n                                r(a) ? (o(a) ? -1 === a.indexOf(l) : a !== l) && (s[n] = [l].concat(a)) : s[n] = l\n                            }(e.options, t);\n                            var g = function(e, t, i) {\n                                var n = t.options.props;\n                                if (!s(n)) {\n                                    var o = {},\n                                        a = e.attrs,\n                                        l = e.props;\n                                    if (r(a) || r(l))\n                                        for (var c in n) {\n                                            var d = I(c);\n                                            qe(o, l, c, d, !0) || qe(o, a, c, d, !1)\n                                        }\n                                    return o\n                                }\n                            }(t, e);\n                            if (a(e.options.functional)) return function(e, t, i, s, a) {\n                                var l = e.options,\n                                    c = {},\n                                    d = l.props;\n                                if (r(d))\n                                    for (var h in d) c[h] = Yi(h, d, t || n);\n                                else r(i.attrs) && Pi(c, i.attrs), r(i.props) && Pi(c, i.props);\n                                var u = new Ai(i, c, a, s, e),\n                                    g = l.render.call(null, u._c, u);\n                                if (g instanceof pe) return Oi(g, i, u.parent, l);\n                                if (o(g)) {\n                                    for (var p = Ze(g) || [], f = new Array(p.length), m = 0; m < p.length; m++) f[m] = Oi(p[m], i, u.parent, l);\n                                    return f\n                                }\n                            }(e, g, t, i, l);\n                            var p = t.on;\n                            if (t.on = t.nativeOn, a(e.options.abstract)) {\n                                var m = t.slot;\n                                t = {}, m && (t.slot = m)\n                            }! function(e) {\n                                for (var t = e.hook || (e.hook = {}), i = 0; i < Bi.length; i++) {\n                                    var n = Bi[i],\n                                        o = t[n],\n                                        s = Fi[n];\n                                    o === s || o && o._merged || (t[n] = o ? Wi(s, o) : s)\n                                }\n                            }(t);\n                            var v = Ri(e.options) || c;\n                            return new pe(\"vue-component-\".concat(e.cid).concat(v ? \"-\".concat(v) : \"\"), t, void 0, void 0, void 0, i, {\n                                Ctor: e,\n                                propsData: g,\n                                listeners: p,\n                                tag: c,\n                                children: l\n                            }, u)\n                        }\n                    }\n                }\n\n                function Wi(e, t) {\n                    var i = function(i, n) {\n                        e(i, n), t(i, n)\n                    };\n                    return i._merged = !0, i\n                }\n                var Hi = O,\n                    zi = U.optionMergeStrategies;\n\n                function ji(e, t, i) {\n                    if (void 0 === i && (i = !0), !t) return e;\n                    for (var n, o, s, r = he ? Reflect.ownKeys(t) : Object.keys(t), a = 0; a < r.length; a++) \"__ob__\" !== (n = r[a]) && (o = e[n], s = t[n], i && x(e, n) ? o !== s && u(o) && u(s) && ji(o, s) : Pe(e, n, s));\n                    return e\n                }\n\n                function Ui(e, t, i) {\n                    return i ? function() {\n                        var n = c(t) ? t.call(i, i) : t,\n                            o = c(e) ? e.call(i, i) : e;\n                        return n ? ji(n, o) : o\n                    } : t ? e ? function() {\n                        return ji(c(t) ? t.call(this, this) : t, c(e) ? e.call(this, this) : e)\n                    } : t : e\n                }\n\n                function $i(e, t) {\n                    var i = t ? e ? e.concat(t) : o(t) ? t : [t] : e;\n                    return i ? function(e) {\n                        for (var t = [], i = 0; i < e.length; i++) - 1 === t.indexOf(e[i]) && t.push(e[i]);\n                        return t\n                    }(i) : i\n                }\n\n                function Ki(e, t, i, n) {\n                    var o = Object.create(e || null);\n                    return t ? M(o, t) : o\n                }\n                zi.data = function(e, t, i) {\n                    return i ? Ui(e, t, i) : t && \"function\" != typeof t ? e : Ui(e, t)\n                }, j.forEach((function(e) {\n                    zi[e] = $i\n                })), z.forEach((function(e) {\n                    zi[e + \"s\"] = Ki\n                })), zi.watch = function(e, t, i, n) {\n                    if (e === oe && (e = void 0), t === oe && (t = void 0), !t) return Object.create(e || null);\n                    if (!e) return t;\n                    var s = {};\n                    for (var r in M(s, e), t) {\n                        var a = s[r],\n                            l = t[r];\n                        a && !o(a) && (a = [a]), s[r] = a ? a.concat(l) : o(l) ? l : [l]\n                    }\n                    return s\n                }, zi.props = zi.methods = zi.inject = zi.computed = function(e, t, i, n) {\n                    if (!e) return t;\n                    var o = Object.create(null);\n                    return M(o, e), t && M(o, t), o\n                }, zi.provide = function(e, t) {\n                    return e ? function() {\n                        var i = Object.create(null);\n                        return ji(i, c(e) ? e.call(this) : e), t && ji(i, c(t) ? t.call(this) : t, !1), i\n                    } : t\n                };\n                var qi = function(e, t) {\n                    return void 0 === t ? e : t\n                };\n\n                function Zi(e, t, i) {\n                    if (c(t) && (t = t.options), function(e, t) {\n                            var i = e.props;\n                            if (i) {\n                                var n, s, r = {};\n                                if (o(i))\n                                    for (n = i.length; n--;) \"string\" == typeof(s = i[n]) && (r[L(s)] = {\n                                        type: null\n                                    });\n                                else if (u(i))\n                                    for (var a in i) s = i[a], r[L(a)] = u(s) ? s : {\n                                        type: s\n                                    };\n                                e.props = r\n                            }\n                        }(t), function(e, t) {\n                            var i = e.inject;\n                            if (i) {\n                                var n = e.inject = {};\n                                if (o(i))\n                                    for (var s = 0; s < i.length; s++) n[i[s]] = {\n                                        from: i[s]\n                                    };\n                                else if (u(i))\n                                    for (var r in i) {\n                                        var a = i[r];\n                                        n[r] = u(a) ? M({\n                                            from: r\n                                        }, a) : {\n                                            from: a\n                                        }\n                                    }\n                            }\n                        }(t), function(e) {\n                            var t = e.directives;\n                            if (t)\n                                for (var i in t) {\n                                    var n = t[i];\n                                    c(n) && (t[i] = {\n                                        bind: n,\n                                        update: n\n                                    })\n                                }\n                        }(t), !t._base && (t.extends && (e = Zi(e, t.extends, i)), t.mixins))\n                        for (var n = 0, s = t.mixins.length; n < s; n++) e = Zi(e, t.mixins[n], i);\n                    var r, a = {};\n                    for (r in e) l(r);\n                    for (r in t) x(e, r) || l(r);\n\n                    function l(n) {\n                        var o = zi[n] || qi;\n                        a[n] = o(e[n], t[n], i, n)\n                    }\n                    return a\n                }\n\n                function Gi(e, t, i, n) {\n                    if (\"string\" == typeof i) {\n                        var o = e[t];\n                        if (x(o, i)) return o[i];\n                        var s = L(i);\n                        if (x(o, s)) return o[s];\n                        var r = N(s);\n                        return x(o, r) ? o[r] : o[i] || o[s] || o[r]\n                    }\n                }\n\n                function Yi(e, t, i, n) {\n                    var o = t[e],\n                        s = !x(i, e),\n                        r = i[e],\n                        a = en(Boolean, o.type);\n                    if (a > -1)\n                        if (s && !x(o, \"default\")) r = !1;\n                        else if (\"\" === r || r === I(e)) {\n                        var l = en(String, o.type);\n                        (l < 0 || a < l) && (r = !0)\n                    }\n                    if (void 0 === r) {\n                        r = function(e, t, i) {\n                            if (!x(t, \"default\")) return;\n                            var n = t.default;\n                            0;\n                            if (e && e.$options.propsData && void 0 === e.$options.propsData[i] && void 0 !== e._props[i]) return e._props[i];\n                            return c(n) && \"Function\" !== Xi(t.type) ? n.call(e) : n\n                        }(n, o, e);\n                        var d = Ie;\n                        Ee(!0), Ae(r), Ee(d)\n                    }\n                    return r\n                }\n                var Qi = /^\\s*function (\\w+)/;\n\n                function Xi(e) {\n                    var t = e && e.toString().match(Qi);\n                    return t ? t[1] : \"\"\n                }\n\n                function Ji(e, t) {\n                    return Xi(e) === Xi(t)\n                }\n\n                function en(e, t) {\n                    if (!o(t)) return Ji(t, e) ? 0 : -1;\n                    for (var i = 0, n = t.length; i < n; i++)\n                        if (Ji(t[i], e)) return i;\n                    return -1\n                }\n\n                function tn(e) {\n                    this._init(e)\n                }\n\n                function nn(e) {\n                    e.cid = 0;\n                    var t = 1;\n                    e.extend = function(e) {\n                        e = e || {};\n                        var i = this,\n                            n = i.cid,\n                            o = e._Ctor || (e._Ctor = {});\n                        if (o[n]) return o[n];\n                        var s = Ri(e) || Ri(i.options);\n                        var r = function(e) {\n                            this._init(e)\n                        };\n                        return (r.prototype = Object.create(i.prototype)).constructor = r, r.cid = t++, r.options = Zi(i.options, e), r.super = i, r.options.props && function(e) {\n                            var t = e.options.props;\n                            for (var i in t) xi(e.prototype, \"_props\", i)\n                        }(r), r.options.computed && function(e) {\n                            var t = e.options.computed;\n                            for (var i in t) Li(e.prototype, i, t[i])\n                        }(r), r.extend = i.extend, r.mixin = i.mixin, r.use = i.use, z.forEach((function(e) {\n                            r[e] = i[e]\n                        })), s && (r.options.components[s] = r), r.superOptions = i.options, r.extendOptions = e, r.sealedOptions = M({}, r.options), o[n] = r, r\n                    }\n                }\n\n                function on(e) {\n                    return e && (Ri(e.Ctor.options) || e.tag)\n                }\n\n                function sn(e, t) {\n                    return o(e) ? e.indexOf(t) > -1 : \"string\" == typeof e ? e.split(\",\").indexOf(t) > -1 : !!g(e) && e.test(t)\n                }\n\n                function rn(e, t) {\n                    var i = e.cache,\n                        n = e.keys,\n                        o = e._vnode;\n                    for (var s in i) {\n                        var r = i[s];\n                        if (r) {\n                            var a = r.name;\n                            a && !t(a) && an(i, s, n, o)\n                        }\n                    }\n                }\n\n                function an(e, t, i, n) {\n                    var o = e[t];\n                    !o || n && o.tag === n.tag || o.componentInstance.$destroy(), e[t] = null, y(i, t)\n                }! function(e) {\n                    e.prototype._init = function(e) {\n                        var t = this;\n                        t._uid = Ti++, t._isVue = !0, t.__v_skip = !0, t._scope = new ei(!0), t._scope._vm = !0, e && e._isComponent ? function(e, t) {\n                                var i = e.$options = Object.create(e.constructor.options),\n                                    n = t._parentVnode;\n                                i.parent = t.parent, i._parentVnode = n;\n                                var o = n.componentOptions;\n                                i.propsData = o.propsData, i._parentListeners = o.listeners, i._renderChildren = o.children, i._componentTag = o.tag, t.render && (i.render = t.render, i.staticRenderFns = t.staticRenderFns)\n                            }(t, e) : t.$options = Zi(Mi(t.constructor), e || {}, t), t._renderProxy = t, t._self = t,\n                            function(e) {\n                                var t = e.$options,\n                                    i = t.parent;\n                                if (i && !t.abstract) {\n                                    for (; i.$options.abstract && i.$parent;) i = i.$parent;\n                                    i.$children.push(e)\n                                }\n                                e.$parent = i, e.$root = i ? i.$root : e, e.$children = [], e.$refs = {}, e._provided = i ? i._provided : Object.create(null), e._watcher = null, e._inactive = null, e._directInactive = !1, e._isMounted = !1, e._isDestroyed = !1, e._isBeingDestroyed = !1\n                            }(t),\n                            function(e) {\n                                e._events = Object.create(null), e._hasHookEvent = !1;\n                                var t = e.$options._parentListeners;\n                                t && At(e, t)\n                            }(t),\n                            function(e) {\n                                e._vnode = null, e._staticTrees = null;\n                                var t = e.$options,\n                                    i = e.$vnode = t._parentVnode,\n                                    o = i && i.context;\n                                e.$slots = mt(t._renderChildren, o), e.$scopedSlots = i ? bt(e.$parent, i.data.scopedSlots, e.$slots) : n, e._c = function(t, i, n, o) {\n                                    return Je(e, t, i, n, o, !1)\n                                }, e.$createElement = function(t, i, n, o) {\n                                    return Je(e, t, i, n, o, !0)\n                                };\n                                var s = i && i.data;\n                                Oe(e, \"$attrs\", s && s.attrs || n, null, !0), Oe(e, \"$listeners\", t._parentListeners || n, null, !0)\n                            }(t), Vt(t, \"beforeCreate\", void 0, !1),\n                            function(e) {\n                                var t = Ei(e.$options.inject, e);\n                                t && (Ee(!1), Object.keys(t).forEach((function(i) {\n                                    Oe(e, i, t[i])\n                                })), Ee(!0))\n                            }(t), Si(t),\n                            function(e) {\n                                var t = e.$options.provide;\n                                if (t) {\n                                    var i = c(t) ? t.call(e) : t;\n                                    if (!d(i)) return;\n                                    for (var n = ti(e), o = he ? Reflect.ownKeys(i) : Object.keys(i), s = 0; s < o.length; s++) {\n                                        var r = o[s];\n                                        Object.defineProperty(n, r, Object.getOwnPropertyDescriptor(i, r))\n                                    }\n                                }\n                            }(t), Vt(t, \"created\"), t.$options.el && t.$mount(t.$options.el)\n                    }\n                }(tn),\n                function(e) {\n                    var t = {\n                            get: function() {\n                                return this._data\n                            }\n                        },\n                        i = {\n                            get: function() {\n                                return this._props\n                            }\n                        };\n                    Object.defineProperty(e.prototype, \"$data\", t), Object.defineProperty(e.prototype, \"$props\", i), e.prototype.$set = Pe, e.prototype.$delete = Re, e.prototype.$watch = function(e, t, i) {\n                        var n = this;\n                        if (u(t)) return Ii(n, e, t, i);\n                        (i = i || {}).user = !0;\n                        var o = new yi(n, e, t, i);\n                        if (i.immediate) {\n                            var s = 'callback for immediate watcher \"'.concat(o.expression, '\"');\n                            xe(), ni(t, n, [o.value], n, s), Se()\n                        }\n                        return function() {\n                            o.teardown()\n                        }\n                    }\n                }(tn),\n                function(e) {\n                    var t = /^hook:/;\n                    e.prototype.$on = function(e, i) {\n                        var n = this;\n                        if (o(e))\n                            for (var s = 0, r = e.length; s < r; s++) n.$on(e[s], i);\n                        else(n._events[e] || (n._events[e] = [])).push(i), t.test(e) && (n._hasHookEvent = !0);\n                        return n\n                    }, e.prototype.$once = function(e, t) {\n                        var i = this;\n\n                        function n() {\n                            i.$off(e, n), t.apply(i, arguments)\n                        }\n                        return n.fn = t, i.$on(e, n), i\n                    }, e.prototype.$off = function(e, t) {\n                        var i = this;\n                        if (!arguments.length) return i._events = Object.create(null), i;\n                        if (o(e)) {\n                            for (var n = 0, s = e.length; n < s; n++) i.$off(e[n], t);\n                            return i\n                        }\n                        var r, a = i._events[e];\n                        if (!a) return i;\n                        if (!t) return i._events[e] = null, i;\n                        for (var l = a.length; l--;)\n                            if ((r = a[l]) === t || r.fn === t) {\n                                a.splice(l, 1);\n                                break\n                            } return i\n                    }, e.prototype.$emit = function(e) {\n                        var t = this,\n                            i = t._events[e];\n                        if (i) {\n                            i = i.length > 1 ? T(i) : i;\n                            for (var n = T(arguments, 1), o = 'event handler for \"'.concat(e, '\"'), s = 0, r = i.length; s < r; s++) ni(i[s], t, n, t, o)\n                        }\n                        return t\n                    }\n                }(tn),\n                function(e) {\n                    e.prototype._update = function(e, t) {\n                        var i = this,\n                            n = i.$el,\n                            o = i._vnode,\n                            s = Pt(i);\n                        i._vnode = e, i.$el = o ? i.__patch__(o, e) : i.__patch__(i.$el, e, t, !1), s(), n && (n.__vue__ = null), i.$el && (i.$el.__vue__ = i);\n                        for (var r = i; r && r.$vnode && r.$parent && r.$vnode === r.$parent._vnode;) r.$parent.$el = r.$el, r = r.$parent\n                    }, e.prototype.$forceUpdate = function() {\n                        this._watcher && this._watcher.update()\n                    }, e.prototype.$destroy = function() {\n                        var e = this;\n                        if (!e._isBeingDestroyed) {\n                            Vt(e, \"beforeDestroy\"), e._isBeingDestroyed = !0;\n                            var t = e.$parent;\n                            !t || t._isBeingDestroyed || e.$options.abstract || y(t.$children, e), e._scope.stop(), e._data.__ob__ && e._data.__ob__.vmCount--, e._isDestroyed = !0, e.__patch__(e._vnode, null), Vt(e, \"destroyed\"), e.$off(), e.$el && (e.$el.__vue__ = null), e.$vnode && (e.$vnode.parent = null)\n                        }\n                    }\n                }(tn),\n                function(e) {\n                    ft(e.prototype), e.prototype.$nextTick = function(e) {\n                        return fi(e, this)\n                    }, e.prototype._render = function() {\n                        var e, t = this,\n                            i = t.$options,\n                            n = i.render,\n                            s = i._parentVnode;\n                        s && t._isMounted && (t.$scopedSlots = bt(t.$parent, s.data.scopedSlots, t.$slots, t.$scopedSlots), t._slotsProxy && kt(t._slotsProxy, t.$scopedSlots)), t.$vnode = s;\n                        try {\n                            ge(t), Nt = t, e = n.call(t._renderProxy, t.$createElement)\n                        } catch (i) {\n                            ii(i, t, \"render\"), e = t._vnode\n                        } finally {\n                            Nt = null, ge()\n                        }\n                        return o(e) && 1 === e.length && (e = e[0]), e instanceof pe || (e = fe()), e.parent = s, e\n                    }\n                }(tn);\n                var ln = [String, RegExp, Array],\n                    cn = {\n                        name: \"keep-alive\",\n                        abstract: !0,\n                        props: {\n                            include: ln,\n                            exclude: ln,\n                            max: [String, Number]\n                        },\n                        methods: {\n                            cacheVNode: function() {\n                                var e = this,\n                                    t = e.cache,\n                                    i = e.keys,\n                                    n = e.vnodeToCache,\n                                    o = e.keyToCache;\n                                if (n) {\n                                    var s = n.tag,\n                                        r = n.componentInstance,\n                                        a = n.componentOptions;\n                                    t[o] = {\n                                        name: on(a),\n                                        tag: s,\n                                        componentInstance: r\n                                    }, i.push(o), this.max && i.length > parseInt(this.max) && an(t, i[0], i, this._vnode), this.vnodeToCache = null\n                                }\n                            }\n                        },\n                        created: function() {\n                            this.cache = Object.create(null), this.keys = []\n                        },\n                        destroyed: function() {\n                            for (var e in this.cache) an(this.cache, e, this.keys)\n                        },\n                        mounted: function() {\n                            var e = this;\n                            this.cacheVNode(), this.$watch(\"include\", (function(t) {\n                                rn(e, (function(e) {\n                                    return sn(t, e)\n                                }))\n                            })), this.$watch(\"exclude\", (function(t) {\n                                rn(e, (function(e) {\n                                    return !sn(t, e)\n                                }))\n                            }))\n                        },\n                        updated: function() {\n                            this.cacheVNode()\n                        },\n                        render: function() {\n                            var e = this.$slots.default,\n                                t = It(e),\n                                i = t && t.componentOptions;\n                            if (i) {\n                                var n = on(i),\n                                    o = this.include,\n                                    s = this.exclude;\n                                if (o && (!n || !sn(o, n)) || s && n && sn(s, n)) return t;\n                                var r = this.cache,\n                                    a = this.keys,\n                                    l = null == t.key ? i.Ctor.cid + (i.tag ? \"::\".concat(i.tag) : \"\") : t.key;\n                                r[l] ? (t.componentInstance = r[l].componentInstance, y(a, l), a.push(l)) : (this.vnodeToCache = t, this.keyToCache = l), t.data.keepAlive = !0\n                            }\n                            return t || e && e[0]\n                        }\n                    },\n                    dn = {\n                        KeepAlive: cn\n                    };\n                ! function(e) {\n                    var t = {\n                        get: function() {\n                            return U\n                        }\n                    };\n                    Object.defineProperty(e, \"config\", t), e.util = {\n                            warn: Hi,\n                            extend: M,\n                            mergeOptions: Zi,\n                            defineReactive: Oe\n                        }, e.set = Pe, e.delete = Re, e.nextTick = fi, e.observable = function(e) {\n                            return Ae(e), e\n                        }, e.options = Object.create(null), z.forEach((function(t) {\n                            e.options[t + \"s\"] = Object.create(null)\n                        })), e.options._base = e, M(e.options.components, dn),\n                        function(e) {\n                            e.use = function(e) {\n                                var t = this._installedPlugins || (this._installedPlugins = []);\n                                if (t.indexOf(e) > -1) return this;\n                                var i = T(arguments, 1);\n                                return i.unshift(this), c(e.install) ? e.install.apply(e, i) : c(e) && e.apply(null, i), t.push(e), this\n                            }\n                        }(e),\n                        function(e) {\n                            e.mixin = function(e) {\n                                return this.options = Zi(this.options, e), this\n                            }\n                        }(e), nn(e),\n                        function(e) {\n                            z.forEach((function(t) {\n                                e[t] = function(e, i) {\n                                    return i ? (\"component\" === t && u(i) && (i.name = i.name || e, i = this.options._base.extend(i)), \"directive\" === t && c(i) && (i = {\n                                        bind: i,\n                                        update: i\n                                    }), this.options[t + \"s\"][e] = i, i) : this.options[t + \"s\"][e]\n                                }\n                            }))\n                        }(e)\n                }(tn), Object.defineProperty(tn.prototype, \"$isServer\", {\n                    get: ae\n                }), Object.defineProperty(tn.prototype, \"$ssrContext\", {\n                    get: function() {\n                        return this.$vnode && this.$vnode.ssrContext\n                    }\n                }), Object.defineProperty(tn, \"FunctionalRenderContext\", {\n                    value: Ai\n                }), tn.version = \"2.7.14\";\n                var hn = _(\"style,class\"),\n                    un = _(\"input,textarea,option,select,progress\"),\n                    gn = function(e, t, i) {\n                        return \"value\" === i && un(e) && \"button\" !== t || \"selected\" === i && \"option\" === e || \"checked\" === i && \"input\" === e || \"muted\" === i && \"video\" === e\n                    },\n                    pn = _(\"contenteditable,draggable,spellcheck\"),\n                    fn = _(\"events,caret,typing,plaintext-only\"),\n                    mn = function(e, t) {\n                        return yn(t) || \"false\" === t ? \"false\" : \"contenteditable\" === e && fn(t) ? t : \"true\"\n                    },\n                    vn = _(\"allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,default,defaultchecked,defaultmuted,defaultselected,defer,disabled,enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,required,reversed,scoped,seamless,selected,sortable,truespeed,typemustmatch,visible\"),\n                    _n = \"https://www.w3.org/1999/xlink\",\n                    bn = function(e) {\n                        return \":\" === e.charAt(5) && \"xlink\" === e.slice(0, 5)\n                    },\n                    wn = function(e) {\n                        return bn(e) ? e.slice(6, e.length) : \"\"\n                    },\n                    yn = function(e) {\n                        return null == e || !1 === e\n                    };\n\n                function Cn(e) {\n                    for (var t = e.data, i = e, n = e; r(n.componentInstance);)(n = n.componentInstance._vnode) && n.data && (t = xn(n.data, t));\n                    for (; r(i = i.parent);) i && i.data && (t = xn(t, i.data));\n                    return function(e, t) {\n                        if (r(e) || r(t)) return Sn(e, kn(t));\n                        return \"\"\n                    }(t.staticClass, t.class)\n                }\n\n                function xn(e, t) {\n                    return {\n                        staticClass: Sn(e.staticClass, t.staticClass),\n                        class: r(e.class) ? [e.class, t.class] : t.class\n                    }\n                }\n\n                function Sn(e, t) {\n                    return e ? t ? e + \" \" + t : e : t || \"\"\n                }\n\n                function kn(e) {\n                    return Array.isArray(e) ? function(e) {\n                        for (var t, i = \"\", n = 0, o = e.length; n < o; n++) r(t = kn(e[n])) && \"\" !== t && (i && (i += \" \"), i += t);\n                        return i\n                    }(e) : d(e) ? function(e) {\n                        var t = \"\";\n                        for (var i in e) e[i] && (t && (t += \" \"), t += i);\n                        return t\n                    }(e) : \"string\" == typeof e ? e : \"\"\n                }\n                var Ln = {\n                        svg: \"https://www.w3.org/2000/svg\",\n                        math: \"https://www.w3.org/1998/Math/MathML\"\n                    },\n                    Nn = _(\"html,body,base,head,link,meta,style,title,address,article,aside,footer,header,h1,h2,h3,h4,h5,h6,hgroup,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,rtc,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,menuitem,summary,content,element,shadow,template,blockquote,iframe,tfoot\"),\n                    Dn = _(\"svg,animate,circle,clippath,cursor,defs,desc,ellipse,filter,font-face,foreignobject,g,glyph,image,line,marker,mask,missing-glyph,path,pattern,polygon,polyline,rect,switch,symbol,text,textpath,tspan,use,view\", !0),\n                    In = function(e) {\n                        return Nn(e) || Dn(e)\n                    };\n\n                function En(e) {\n                    return Dn(e) ? \"svg\" : \"math\" === e ? \"math\" : void 0\n                }\n                var Tn = Object.create(null);\n                var Mn = _(\"text,number,password,search,email,tel,url\");\n\n                function An(e) {\n                    if (\"string\" == typeof e) {\n                        var t = document.querySelector(e);\n                        return t || document.createElement(\"div\")\n                    }\n                    return e\n                }\n                var On = Object.freeze({\n                        __proto__: null,\n                        createElement: function(e, t) {\n                            var i = document.createElement(e);\n                            return \"select\" !== e || t.data && t.data.attrs && void 0 !== t.data.attrs.multiple && i.setAttribute(\"multiple\", \"multiple\"), i\n                        },\n                        createElementNS: function(e, t) {\n                            return document.createElementNS(Ln[e], t)\n                        },\n                        createTextNode: function(e) {\n                            return document.createTextNode(e)\n                        },\n                        createComment: function(e) {\n                            return document.createComment(e)\n                        },\n                        insertBefore: function(e, t, i) {\n                            e.insertBefore(t, i)\n                        },\n                        removeChild: function(e, t) {\n                            e.removeChild(t)\n                        },\n                        appendChild: function(e, t) {\n                            e.appendChild(t)\n                        },\n                        parentNode: function(e) {\n                            return e.parentNode\n                        },\n                        nextSibling: function(e) {\n                            return e.nextSibling\n                        },\n                        tagName: function(e) {\n                            return e.tagName\n                        },\n                        setTextContent: function(e, t) {\n                            e.textContent = t\n                        },\n                        setStyleScope: function(e, t) {\n                            e.setAttribute(t, \"\")\n                        }\n                    }),\n                    Pn = {\n                        create: function(e, t) {\n                            Rn(t)\n                        },\n                        update: function(e, t) {\n                            e.data.ref !== t.data.ref && (Rn(e, !0), Rn(t))\n                        },\n                        destroy: function(e) {\n                            Rn(e, !0)\n                        }\n                    };\n\n                function Rn(e, t) {\n                    var i = e.data.ref;\n                    if (r(i)) {\n                        var n = e.context,\n                            s = e.componentInstance || e.elm,\n                            a = t ? null : s,\n                            l = t ? void 0 : s;\n                        if (c(i)) ni(i, n, [a], n, \"template ref function\");\n                        else {\n                            var d = e.data.refInFor,\n                                h = \"string\" == typeof i || \"number\" == typeof i,\n                                u = He(i),\n                                g = n.$refs;\n                            if (h || u)\n                                if (d) {\n                                    var p = h ? g[i] : i.value;\n                                    t ? o(p) && y(p, s) : o(p) ? p.includes(s) || p.push(s) : h ? (g[i] = [s], Fn(n, i, g[i])) : i.value = [s]\n                                } else if (h) {\n                                if (t && g[i] !== s) return;\n                                g[i] = l, Fn(n, i, a)\n                            } else if (u) {\n                                if (t && i.value !== s) return;\n                                i.value = a\n                            } else 0\n                        }\n                    }\n                }\n\n                function Fn(e, t, i) {\n                    var n = e._setupState;\n                    n && x(n, t) && (He(n[t]) ? n[t].value = i : n[t] = i)\n                }\n                var Bn = new pe(\"\", {}, []),\n                    Vn = [\"create\", \"activate\", \"update\", \"remove\", \"destroy\"];\n\n                function Wn(e, t) {\n                    return e.key === t.key && e.asyncFactory === t.asyncFactory && (e.tag === t.tag && e.isComment === t.isComment && r(e.data) === r(t.data) && function(e, t) {\n                        if (\"input\" !== e.tag) return !0;\n                        var i, n = r(i = e.data) && r(i = i.attrs) && i.type,\n                            o = r(i = t.data) && r(i = i.attrs) && i.type;\n                        return n === o || Mn(n) && Mn(o)\n                    }(e, t) || a(e.isAsyncPlaceholder) && s(t.asyncFactory.error))\n                }\n\n                function Hn(e, t, i) {\n                    var n, o, s = {};\n                    for (n = t; n <= i; ++n) r(o = e[n].key) && (s[o] = n);\n                    return s\n                }\n                var zn = {\n                    create: jn,\n                    update: jn,\n                    destroy: function(e) {\n                        jn(e, Bn)\n                    }\n                };\n\n                function jn(e, t) {\n                    (e.data.directives || t.data.directives) && function(e, t) {\n                        var i, n, o, s = e === Bn,\n                            r = t === Bn,\n                            a = $n(e.data.directives, e.context),\n                            l = $n(t.data.directives, t.context),\n                            c = [],\n                            d = [];\n                        for (i in l) n = a[i], o = l[i], n ? (o.oldValue = n.value, o.oldArg = n.arg, qn(o, \"update\", t, e), o.def && o.def.componentUpdated && d.push(o)) : (qn(o, \"bind\", t, e), o.def && o.def.inserted && c.push(o));\n                        if (c.length) {\n                            var h = function() {\n                                for (var i = 0; i < c.length; i++) qn(c[i], \"inserted\", t, e)\n                            };\n                            s ? Ke(t, \"insert\", h) : h()\n                        }\n                        d.length && Ke(t, \"postpatch\", (function() {\n                            for (var i = 0; i < d.length; i++) qn(d[i], \"componentUpdated\", t, e)\n                        }));\n                        if (!s)\n                            for (i in a) l[i] || qn(a[i], \"unbind\", e, e, r)\n                    }(e, t)\n                }\n                var Un = Object.create(null);\n\n                function $n(e, t) {\n                    var i, n, o = Object.create(null);\n                    if (!e) return o;\n                    for (i = 0; i < e.length; i++) {\n                        if ((n = e[i]).modifiers || (n.modifiers = Un), o[Kn(n)] = n, t._setupState && t._setupState.__sfc) {\n                            var s = n.def || Gi(t, \"_setupState\", \"v-\" + n.name);\n                            n.def = \"function\" == typeof s ? {\n                                bind: s,\n                                update: s\n                            } : s\n                        }\n                        n.def = n.def || Gi(t.$options, \"directives\", n.name)\n                    }\n                    return o\n                }\n\n                function Kn(e) {\n                    return e.rawName || \"\".concat(e.name, \".\").concat(Object.keys(e.modifiers || {}).join(\".\"))\n                }\n\n                function qn(e, t, i, n, o) {\n                    var s = e.def && e.def[t];\n                    if (s) try {\n                        s(i.elm, e, i, n, o)\n                    } catch (n) {\n                        ii(n, i.context, \"directive \".concat(e.name, \" \").concat(t, \" hook\"))\n                    }\n                }\n                var Zn = [Pn, zn];\n\n                function Gn(e, t) {\n                    var i = t.componentOptions;\n                    if (!(r(i) && !1 === i.Ctor.options.inheritAttrs || s(e.data.attrs) && s(t.data.attrs))) {\n                        var n, o, l = t.elm,\n                            c = e.data.attrs || {},\n                            d = t.data.attrs || {};\n                        for (n in (r(d.__ob__) || a(d._v_attr_proxy)) && (d = t.data.attrs = M({}, d)), d) o = d[n], c[n] !== o && Yn(l, n, o, t.data.pre);\n                        for (n in (X || ee) && d.value !== c.value && Yn(l, \"value\", d.value), c) s(d[n]) && (bn(n) ? l.removeAttributeNS(_n, wn(n)) : pn(n) || l.removeAttribute(n))\n                    }\n                }\n\n                function Yn(e, t, i, n) {\n                    n || e.tagName.indexOf(\"-\") > -1 ? Qn(e, t, i) : vn(t) ? yn(i) ? e.removeAttribute(t) : (i = \"allowfullscreen\" === t && \"EMBED\" === e.tagName ? \"true\" : t, e.setAttribute(t, i)) : pn(t) ? e.setAttribute(t, mn(t, i)) : bn(t) ? yn(i) ? e.removeAttributeNS(_n, wn(t)) : e.setAttributeNS(_n, t, i) : Qn(e, t, i)\n                }\n\n                function Qn(e, t, i) {\n                    if (yn(i)) e.removeAttribute(t);\n                    else {\n                        if (X && !J && \"TEXTAREA\" === e.tagName && \"placeholder\" === t && \"\" !== i && !e.__ieph) {\n                            var n = function(t) {\n                                t.stopImmediatePropagation(), e.removeEventListener(\"input\", n)\n                            };\n                            e.addEventListener(\"input\", n), e.__ieph = !0\n                        }\n                        e.setAttribute(t, i)\n                    }\n                }\n                var Xn = {\n                    create: Gn,\n                    update: Gn\n                };\n\n                function Jn(e, t) {\n                    var i = t.elm,\n                        n = t.data,\n                        o = e.data;\n                    if (!(s(n.staticClass) && s(n.class) && (s(o) || s(o.staticClass) && s(o.class)))) {\n                        var a = Cn(t),\n                            l = i._transitionClasses;\n                        r(l) && (a = Sn(a, kn(l))), a !== i._prevClass && (i.setAttribute(\"class\", a), i._prevClass = a)\n                    }\n                }\n                var eo, to, io, no, oo, so, ro = {\n                        create: Jn,\n                        update: Jn\n                    },\n                    ao = /[\\w).+\\-_$\\]]/;\n\n                function lo(e) {\n                    var t, i, n, o, s, r = !1,\n                        a = !1,\n                        l = !1,\n                        c = !1,\n                        d = 0,\n                        h = 0,\n                        u = 0,\n                        g = 0;\n                    for (n = 0; n < e.length; n++)\n                        if (i = t, t = e.charCodeAt(n), r) 39 === t && 92 !== i && (r = !1);\n                        else if (a) 34 === t && 92 !== i && (a = !1);\n                    else if (l) 96 === t && 92 !== i && (l = !1);\n                    else if (c) 47 === t && 92 !== i && (c = !1);\n                    else if (124 !== t || 124 === e.charCodeAt(n + 1) || 124 === e.charCodeAt(n - 1) || d || h || u) {\n                        switch (t) {\n                            case 34:\n                                a = !0;\n                                break;\n                            case 39:\n                                r = !0;\n                                break;\n                            case 96:\n                                l = !0;\n                                break;\n                            case 40:\n                                u++;\n                                break;\n                            case 41:\n                                u--;\n                                break;\n                            case 91:\n                                h++;\n                                break;\n                            case 93:\n                                h--;\n                                break;\n                            case 123:\n                                d++;\n                                break;\n                            case 125:\n                                d--\n                        }\n                        if (47 === t) {\n                            for (var p = n - 1, f = void 0; p >= 0 && \" \" === (f = e.charAt(p)); p--);\n                            f && ao.test(f) || (c = !0)\n                        }\n                    } else void 0 === o ? (g = n + 1, o = e.slice(0, n).trim()) : m();\n\n                    function m() {\n                        (s || (s = [])).push(e.slice(g, n).trim()), g = n + 1\n                    }\n                    if (void 0 === o ? o = e.slice(0, n).trim() : 0 !== g && m(), s)\n                        for (n = 0; n < s.length; n++) o = co(o, s[n]);\n                    return o\n                }\n\n                function co(e, t) {\n                    var i = t.indexOf(\"(\");\n                    if (i < 0) return '_f(\"'.concat(t, '\")(').concat(e, \")\");\n                    var n = t.slice(0, i),\n                        o = t.slice(i + 1);\n                    return '_f(\"'.concat(n, '\")(').concat(e).concat(\")\" !== o ? \",\" + o : o)\n                }\n\n                function ho(e, t) {\n                    console.error(\"[Vue compiler]: \".concat(e))\n                }\n\n                function uo(e, t) {\n                    return e ? e.map((function(e) {\n                        return e[t]\n                    })).filter((function(e) {\n                        return e\n                    })) : []\n                }\n\n                function go(e, t, i, n, o) {\n                    (e.props || (e.props = [])).push(Co({\n                        name: t,\n                        value: i,\n                        dynamic: o\n                    }, n)), e.plain = !1\n                }\n\n                function po(e, t, i, n, o) {\n                    (o ? e.dynamicAttrs || (e.dynamicAttrs = []) : e.attrs || (e.attrs = [])).push(Co({\n                        name: t,\n                        value: i,\n                        dynamic: o\n                    }, n)), e.plain = !1\n                }\n\n                function fo(e, t, i, n) {\n                    e.attrsMap[t] = i, e.attrsList.push(Co({\n                        name: t,\n                        value: i\n                    }, n))\n                }\n\n                function mo(e, t, i, n, o, s, r, a) {\n                    (e.directives || (e.directives = [])).push(Co({\n                        name: t,\n                        rawName: i,\n                        value: n,\n                        arg: o,\n                        isDynamicArg: s,\n                        modifiers: r\n                    }, a)), e.plain = !1\n                }\n\n                function vo(e, t, i) {\n                    return i ? \"_p(\".concat(t, ',\"').concat(e, '\")') : e + t\n                }\n\n                function _o(e, t, i, o, s, r, a, l) {\n                    var c;\n                    (o = o || n).right ? l ? t = \"(\".concat(t, \")==='click'?'contextmenu':(\").concat(t, \")\") : \"click\" === t && (t = \"contextmenu\", delete o.right) : o.middle && (l ? t = \"(\".concat(t, \")==='click'?'mouseup':(\").concat(t, \")\") : \"click\" === t && (t = \"mouseup\")), o.capture && (delete o.capture, t = vo(\"!\", t, l)), o.once && (delete o.once, t = vo(\"~\", t, l)), o.passive && (delete o.passive, t = vo(\"&\", t, l)), o.native ? (delete o.native, c = e.nativeEvents || (e.nativeEvents = {})) : c = e.events || (e.events = {});\n                    var d = Co({\n                        value: i.trim(),\n                        dynamic: l\n                    }, a);\n                    o !== n && (d.modifiers = o);\n                    var h = c[t];\n                    Array.isArray(h) ? s ? h.unshift(d) : h.push(d) : c[t] = h ? s ? [d, h] : [h, d] : d, e.plain = !1\n                }\n\n                function bo(e, t, i) {\n                    var n = wo(e, \":\" + t) || wo(e, \"v-bind:\" + t);\n                    if (null != n) return lo(n);\n                    if (!1 !== i) {\n                        var o = wo(e, t);\n                        if (null != o) return JSON.stringify(o)\n                    }\n                }\n\n                function wo(e, t, i) {\n                    var n;\n                    if (null != (n = e.attrsMap[t]))\n                        for (var o = e.attrsList, s = 0, r = o.length; s < r; s++)\n                            if (o[s].name === t) {\n                                o.splice(s, 1);\n                                break\n                            } return i && delete e.attrsMap[t], n\n                }\n\n                function yo(e, t) {\n                    for (var i = e.attrsList, n = 0, o = i.length; n < o; n++) {\n                        var s = i[n];\n                        if (t.test(s.name)) return i.splice(n, 1), s\n                    }\n                }\n\n                function Co(e, t) {\n                    return t && (null != t.start && (e.start = t.start), null != t.end && (e.end = t.end)), e\n                }\n\n                function xo(e, t, i) {\n                    var n = i || {},\n                        o = n.number,\n                        s = \"$$v\",\n                        r = s;\n                    n.trim && (r = \"(typeof \".concat(s, \" === 'string'\") + \"? \".concat(s, \".trim()\") + \": \".concat(s, \")\")), o && (r = \"_n(\".concat(r, \")\"));\n                    var a = So(t, r);\n                    e.model = {\n                        value: \"(\".concat(t, \")\"),\n                        expression: JSON.stringify(t),\n                        callback: \"function (\".concat(s, \") {\").concat(a, \"}\")\n                    }\n                }\n\n                function So(e, t) {\n                    var i = function(e) {\n                        if (e = e.trim(), eo = e.length, e.indexOf(\"[\") < 0 || e.lastIndexOf(\"]\") < eo - 1) return (no = e.lastIndexOf(\".\")) > -1 ? {\n                            exp: e.slice(0, no),\n                            key: '\"' + e.slice(no + 1) + '\"'\n                        } : {\n                            exp: e,\n                            key: null\n                        };\n                        to = e, no = oo = so = 0;\n                        for (; !Lo();) No(io = ko()) ? Io(io) : 91 === io && Do(io);\n                        return {\n                            exp: e.slice(0, oo),\n                            key: e.slice(oo + 1, so)\n                        }\n                    }(e);\n                    return null === i.key ? \"\".concat(e, \"=\").concat(t) : \"$set(\".concat(i.exp, \", \").concat(i.key, \", \").concat(t, \")\")\n                }\n\n                function ko() {\n                    return to.charCodeAt(++no)\n                }\n\n                function Lo() {\n                    return no >= eo\n                }\n\n                function No(e) {\n                    return 34 === e || 39 === e\n                }\n\n                function Do(e) {\n                    var t = 1;\n                    for (oo = no; !Lo();)\n                        if (No(e = ko())) Io(e);\n                        else if (91 === e && t++, 93 === e && t--, 0 === t) {\n                        so = no;\n                        break\n                    }\n                }\n\n                function Io(e) {\n                    for (var t = e; !Lo() && (e = ko()) !== t;);\n                }\n                var Eo, To = \"__r\",\n                    Mo = \"__c\";\n\n                function Ao(e, t, i) {\n                    var n = Eo;\n                    return function o() {\n                        null !== t.apply(null, arguments) && Ro(e, o, i, n)\n                    }\n                }\n                var Oo = ai && !(ne && Number(ne[1]) <= 53);\n\n                function Po(e, t, i, n) {\n                    if (Oo) {\n                        var o = Kt,\n                            s = t;\n                        t = s._wrapper = function(e) {\n                            if (e.target === e.currentTarget || e.timeStamp >= o || e.timeStamp <= 0 || e.target.ownerDocument !== document) return s.apply(this, arguments)\n                        }\n                    }\n                    Eo.addEventListener(e, t, se ? {\n                        capture: i,\n                        passive: n\n                    } : i)\n                }\n\n                function Ro(e, t, i, n) {\n                    (n || Eo).removeEventListener(e, t._wrapper || t, i)\n                }\n\n                function Fo(e, t) {\n                    if (!s(e.data.on) || !s(t.data.on)) {\n                        var i = t.data.on || {},\n                            n = e.data.on || {};\n                        Eo = t.elm || e.elm,\n                            function(e) {\n                                if (r(e[To])) {\n                                    var t = X ? \"change\" : \"input\";\n                                    e[t] = [].concat(e[To], e[t] || []), delete e[To]\n                                }\n                                r(e[Mo]) && (e.change = [].concat(e[Mo], e.change || []), delete e[Mo])\n                            }(i), $e(i, n, Po, Ro, Ao, t.context), Eo = void 0\n                    }\n                }\n                var Bo, Vo = {\n                    create: Fo,\n                    update: Fo,\n                    destroy: function(e) {\n                        return Fo(e, Bn)\n                    }\n                };\n\n                function Wo(e, t) {\n                    if (!s(e.data.domProps) || !s(t.data.domProps)) {\n                        var i, n, o = t.elm,\n                            l = e.data.domProps || {},\n                            c = t.data.domProps || {};\n                        for (i in (r(c.__ob__) || a(c._v_attr_proxy)) && (c = t.data.domProps = M({}, c)), l) i in c || (o[i] = \"\");\n                        for (i in c) {\n                            if (n = c[i], \"textContent\" === i || \"innerHTML\" === i) {\n                                if (t.children && (t.children.length = 0), n === l[i]) continue;\n                                1 === o.childNodes.length && o.removeChild(o.childNodes[0])\n                            }\n                            if (\"value\" === i && \"PROGRESS\" !== o.tagName) {\n                                o._value = n;\n                                var d = s(n) ? \"\" : String(n);\n                                Ho(o, d) && (o.value = d)\n                            } else if (\"innerHTML\" === i && Dn(o.tagName) && s(o.innerHTML)) {\n                                (Bo = Bo || document.createElement(\"div\")).innerHTML = \"<svg>\".concat(n, \"</svg>\");\n                                for (var h = Bo.firstChild; o.firstChild;) o.removeChild(o.firstChild);\n                                for (; h.firstChild;) o.appendChild(h.firstChild)\n                            } else if (n !== l[i]) try {\n                                o[i] = n\n                            } catch (e) {}\n                        }\n                    }\n                }\n\n                function Ho(e, t) {\n                    return !e.composing && (\"OPTION\" === e.tagName || function(e, t) {\n                        var i = !0;\n                        try {\n                            i = document.activeElement !== e\n                        } catch (e) {}\n                        return i && e.value !== t\n                    }(e, t) || function(e, t) {\n                        var i = e.value,\n                            n = e._vModifiers;\n                        if (r(n)) {\n                            if (n.number) return v(i) !== v(t);\n                            if (n.trim) return i.trim() !== t.trim()\n                        }\n                        return i !== t\n                    }(e, t))\n                }\n                var zo = {\n                        create: Wo,\n                        update: Wo\n                    },\n                    jo = S((function(e) {\n                        var t = {},\n                            i = /:(.+)/;\n                        return e.split(/;(?![^(]*\\))/g).forEach((function(e) {\n                            if (e) {\n                                var n = e.split(i);\n                                n.length > 1 && (t[n[0].trim()] = n[1].trim())\n                            }\n                        })), t\n                    }));\n\n                function Uo(e) {\n                    var t = $o(e.style);\n                    return e.staticStyle ? M(e.staticStyle, t) : t\n                }\n\n                function $o(e) {\n                    return Array.isArray(e) ? A(e) : \"string\" == typeof e ? jo(e) : e\n                }\n                var Ko, qo = /^--/,\n                    Zo = /\\s*!important$/,\n                    Go = function(e, t, i) {\n                        if (qo.test(t)) e.style.setProperty(t, i);\n                        else if (Zo.test(i)) e.style.setProperty(I(t), i.replace(Zo, \"\"), \"important\");\n                        else {\n                            var n = Qo(t);\n                            if (Array.isArray(i))\n                                for (var o = 0, s = i.length; o < s; o++) e.style[n] = i[o];\n                            else e.style[n] = i\n                        }\n                    },\n                    Yo = [\"Webkit\", \"Moz\", \"ms\"],\n                    Qo = S((function(e) {\n                        if (Ko = Ko || document.createElement(\"div\").style, \"filter\" !== (e = L(e)) && e in Ko) return e;\n                        for (var t = e.charAt(0).toUpperCase() + e.slice(1), i = 0; i < Yo.length; i++) {\n                            var n = Yo[i] + t;\n                            if (n in Ko) return n\n                        }\n                    }));\n\n                function Xo(e, t) {\n                    var i = t.data,\n                        n = e.data;\n                    if (!(s(i.staticStyle) && s(i.style) && s(n.staticStyle) && s(n.style))) {\n                        var o, a, l = t.elm,\n                            c = n.staticStyle,\n                            d = n.normalizedStyle || n.style || {},\n                            h = c || d,\n                            u = $o(t.data.style) || {};\n                        t.data.normalizedStyle = r(u.__ob__) ? M({}, u) : u;\n                        var g = function(e, t) {\n                            var i, n = {};\n                            if (t)\n                                for (var o = e; o.componentInstance;)(o = o.componentInstance._vnode) && o.data && (i = Uo(o.data)) && M(n, i);\n                            (i = Uo(e.data)) && M(n, i);\n                            for (var s = e; s = s.parent;) s.data && (i = Uo(s.data)) && M(n, i);\n                            return n\n                        }(t, !0);\n                        for (a in h) s(g[a]) && Go(l, a, \"\");\n                        for (a in g)(o = g[a]) !== h[a] && Go(l, a, null == o ? \"\" : o)\n                    }\n                }\n                var Jo = {\n                        create: Xo,\n                        update: Xo\n                    },\n                    es = /\\s+/;\n\n                function ts(e, t) {\n                    if (t && (t = t.trim()))\n                        if (e.classList) t.indexOf(\" \") > -1 ? t.split(es).forEach((function(t) {\n                            return e.classList.add(t)\n                        })) : e.classList.add(t);\n                        else {\n                            var i = \" \".concat(e.getAttribute(\"class\") || \"\", \" \");\n                            i.indexOf(\" \" + t + \" \") < 0 && e.setAttribute(\"class\", (i + t).trim())\n                        }\n                }\n\n                function is(e, t) {\n                    if (t && (t = t.trim()))\n                        if (e.classList) t.indexOf(\" \") > -1 ? t.split(es).forEach((function(t) {\n                            return e.classList.remove(t)\n                        })) : e.classList.remove(t), e.classList.length || e.removeAttribute(\"class\");\n                        else {\n                            for (var i = \" \".concat(e.getAttribute(\"class\") || \"\", \" \"), n = \" \" + t + \" \"; i.indexOf(n) >= 0;) i = i.replace(n, \" \");\n                            (i = i.trim()) ? e.setAttribute(\"class\", i): e.removeAttribute(\"class\")\n                        }\n                }\n\n                function ns(e) {\n                    if (e) {\n                        if (\"object\" == typeof e) {\n                            var t = {};\n                            return !1 !== e.css && M(t, os(e.name || \"v\")), M(t, e), t\n                        }\n                        return \"string\" == typeof e ? os(e) : void 0\n                    }\n                }\n                var os = S((function(e) {\n                        return {\n                            enterClass: \"\".concat(e, \"-enter\"),\n                            enterToClass: \"\".concat(e, \"-enter-to\"),\n                            enterActiveClass: \"\".concat(e, \"-enter-active\"),\n                            leaveClass: \"\".concat(e, \"-leave\"),\n                            leaveToClass: \"\".concat(e, \"-leave-to\"),\n                            leaveActiveClass: \"\".concat(e, \"-leave-active\")\n                        }\n                    })),\n                    ss = Y && !J,\n                    rs = \"transition\",\n                    as = \"animation\",\n                    ls = \"transition\",\n                    cs = \"transitionend\",\n                    ds = \"animation\",\n                    hs = \"animationend\";\n                ss && (void 0 === window.ontransitionend && void 0 !== window.onwebkittransitionend && (ls = \"WebkitTransition\", cs = \"webkitTransitionEnd\"), void 0 === window.onanimationend && void 0 !== window.onwebkitanimationend && (ds = \"WebkitAnimation\", hs = \"webkitAnimationEnd\"));\n                var us = Y ? window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : setTimeout : function(e) {\n                    return e()\n                };\n\n                function gs(e) {\n                    us((function() {\n                        us(e)\n                    }))\n                }\n\n                function ps(e, t) {\n                    var i = e._transitionClasses || (e._transitionClasses = []);\n                    i.indexOf(t) < 0 && (i.push(t), ts(e, t))\n                }\n\n                function fs(e, t) {\n                    e._transitionClasses && y(e._transitionClasses, t), is(e, t)\n                }\n\n                function ms(e, t, i) {\n                    var n = _s(e, t),\n                        o = n.type,\n                        s = n.timeout,\n                        r = n.propCount;\n                    if (!o) return i();\n                    var a = o === rs ? cs : hs,\n                        l = 0,\n                        c = function() {\n                            e.removeEventListener(a, d), i()\n                        },\n                        d = function(t) {\n                            t.target === e && ++l >= r && c()\n                        };\n                    setTimeout((function() {\n                        l < r && c()\n                    }), s + 1), e.addEventListener(a, d)\n                }\n                var vs = /\\b(transform|all)(,|$)/;\n\n                function _s(e, t) {\n                    var i, n = window.getComputedStyle(e),\n                        o = (n[ls + \"Delay\"] || \"\").split(\", \"),\n                        s = (n[ls + \"Duration\"] || \"\").split(\", \"),\n                        r = bs(o, s),\n                        a = (n[ds + \"Delay\"] || \"\").split(\", \"),\n                        l = (n[ds + \"Duration\"] || \"\").split(\", \"),\n                        c = bs(a, l),\n                        d = 0,\n                        h = 0;\n                    return t === rs ? r > 0 && (i = rs, d = r, h = s.length) : t === as ? c > 0 && (i = as, d = c, h = l.length) : h = (i = (d = Math.max(r, c)) > 0 ? r > c ? rs : as : null) ? i === rs ? s.length : l.length : 0, {\n                        type: i,\n                        timeout: d,\n                        propCount: h,\n                        hasTransform: i === rs && vs.test(n[ls + \"Property\"])\n                    }\n                }\n\n                function bs(e, t) {\n                    for (; e.length < t.length;) e = e.concat(e);\n                    return Math.max.apply(null, t.map((function(t, i) {\n                        return ws(t) + ws(e[i])\n                    })))\n                }\n\n                function ws(e) {\n                    return 1e3 * Number(e.slice(0, -1).replace(\",\", \".\"))\n                }\n\n                function ys(e, t) {\n                    var i = e.elm;\n                    r(i._leaveCb) && (i._leaveCb.cancelled = !0, i._leaveCb());\n                    var n = ns(e.data.transition);\n                    if (!s(n) && !r(i._enterCb) && 1 === i.nodeType) {\n                        for (var o = n.css, a = n.type, l = n.enterClass, h = n.enterToClass, u = n.enterActiveClass, g = n.appearClass, p = n.appearToClass, f = n.appearActiveClass, m = n.beforeEnter, _ = n.enter, b = n.afterEnter, w = n.enterCancelled, y = n.beforeAppear, C = n.appear, x = n.afterAppear, S = n.appearCancelled, k = n.duration, L = Ot, N = Ot.$vnode; N && N.parent;) L = N.context, N = N.parent;\n                        var D = !L._isMounted || !e.isRootInsert;\n                        if (!D || C || \"\" === C) {\n                            var I = D && g ? g : l,\n                                E = D && f ? f : u,\n                                T = D && p ? p : h,\n                                M = D && y || m,\n                                A = D && c(C) ? C : _,\n                                O = D && x || b,\n                                P = D && S || w,\n                                R = v(d(k) ? k.enter : k);\n                            0;\n                            var F = !1 !== o && !J,\n                                B = Ss(A),\n                                W = i._enterCb = V((function() {\n                                    F && (fs(i, T), fs(i, E)), W.cancelled ? (F && fs(i, I), P && P(i)) : O && O(i), i._enterCb = null\n                                }));\n                            e.data.show || Ke(e, \"insert\", (function() {\n                                var t = i.parentNode,\n                                    n = t && t._pending && t._pending[e.key];\n                                n && n.tag === e.tag && n.elm._leaveCb && n.elm._leaveCb(), A && A(i, W)\n                            })), M && M(i), F && (ps(i, I), ps(i, E), gs((function() {\n                                fs(i, I), W.cancelled || (ps(i, T), B || (xs(R) ? setTimeout(W, R) : ms(i, a, W)))\n                            }))), e.data.show && (t && t(), A && A(i, W)), F || B || W()\n                        }\n                    }\n                }\n\n                function Cs(e, t) {\n                    var i = e.elm;\n                    r(i._enterCb) && (i._enterCb.cancelled = !0, i._enterCb());\n                    var n = ns(e.data.transition);\n                    if (s(n) || 1 !== i.nodeType) return t();\n                    if (!r(i._leaveCb)) {\n                        var o = n.css,\n                            a = n.type,\n                            l = n.leaveClass,\n                            c = n.leaveToClass,\n                            h = n.leaveActiveClass,\n                            u = n.beforeLeave,\n                            g = n.leave,\n                            p = n.afterLeave,\n                            f = n.leaveCancelled,\n                            m = n.delayLeave,\n                            _ = n.duration,\n                            b = !1 !== o && !J,\n                            w = Ss(g),\n                            y = v(d(_) ? _.leave : _);\n                        0;\n                        var C = i._leaveCb = V((function() {\n                            i.parentNode && i.parentNode._pending && (i.parentNode._pending[e.key] = null), b && (fs(i, c), fs(i, h)), C.cancelled ? (b && fs(i, l), f && f(i)) : (t(), p && p(i)), i._leaveCb = null\n                        }));\n                        m ? m(x) : x()\n                    }\n\n                    function x() {\n                        C.cancelled || (!e.data.show && i.parentNode && ((i.parentNode._pending || (i.parentNode._pending = {}))[e.key] = e), u && u(i), b && (ps(i, l), ps(i, h), gs((function() {\n                            fs(i, l), C.cancelled || (ps(i, c), w || (xs(y) ? setTimeout(C, y) : ms(i, a, C)))\n                        }))), g && g(i, C), b || w || C())\n                    }\n                }\n\n                function xs(e) {\n                    return \"number\" == typeof e && !isNaN(e)\n                }\n\n                function Ss(e) {\n                    if (s(e)) return !1;\n                    var t = e.fns;\n                    return r(t) ? Ss(Array.isArray(t) ? t[0] : t) : (e._length || e.length) > 1\n                }\n\n                function ks(e, t) {\n                    !0 !== t.data.show && ys(t)\n                }\n                var Ls = function(e) {\n                    var t, i, n = {},\n                        c = e.modules,\n                        d = e.nodeOps;\n                    for (t = 0; t < Vn.length; ++t)\n                        for (n[Vn[t]] = [], i = 0; i < c.length; ++i) r(c[i][Vn[t]]) && n[Vn[t]].push(c[i][Vn[t]]);\n\n                    function h(e) {\n                        var t = d.parentNode(e);\n                        r(t) && d.removeChild(t, e)\n                    }\n\n                    function u(e, t, i, o, s, l, c) {\n                        if (r(e.elm) && r(l) && (e = l[c] = ve(e)), e.isRootInsert = !s, ! function(e, t, i, o) {\n                                var s = e.data;\n                                if (r(s)) {\n                                    var l = r(e.componentInstance) && s.keepAlive;\n                                    if (r(s = s.hook) && r(s = s.init) && s(e, !1), r(e.componentInstance)) return g(e, t), p(i, e.elm, o), a(l) && function(e, t, i, o) {\n                                        var s, a = e;\n                                        for (; a.componentInstance;)\n                                            if (r(s = (a = a.componentInstance._vnode).data) && r(s = s.transition)) {\n                                                for (s = 0; s < n.activate.length; ++s) n.activate[s](Bn, a);\n                                                t.push(a);\n                                                break\n                                            } p(i, e.elm, o)\n                                    }(e, t, i, o), !0\n                                }\n                            }(e, t, i, o)) {\n                            var h = e.data,\n                                u = e.children,\n                                m = e.tag;\n                            r(m) ? (e.elm = e.ns ? d.createElementNS(e.ns, m) : d.createElement(m, e), b(e), f(e, u, t), r(h) && v(e, t), p(i, e.elm, o)) : a(e.isComment) ? (e.elm = d.createComment(e.text), p(i, e.elm, o)) : (e.elm = d.createTextNode(e.text), p(i, e.elm, o))\n                        }\n                    }\n\n                    function g(e, t) {\n                        r(e.data.pendingInsert) && (t.push.apply(t, e.data.pendingInsert), e.data.pendingInsert = null), e.elm = e.componentInstance.$el, m(e) ? (v(e, t), b(e)) : (Rn(e), t.push(e))\n                    }\n\n                    function p(e, t, i) {\n                        r(e) && (r(i) ? d.parentNode(i) === e && d.insertBefore(e, t, i) : d.appendChild(e, t))\n                    }\n\n                    function f(e, t, i) {\n                        if (o(t)) {\n                            0;\n                            for (var n = 0; n < t.length; ++n) u(t[n], i, e.elm, null, !0, t, n)\n                        } else l(e.text) && d.appendChild(e.elm, d.createTextNode(String(e.text)))\n                    }\n\n                    function m(e) {\n                        for (; e.componentInstance;) e = e.componentInstance._vnode;\n                        return r(e.tag)\n                    }\n\n                    function v(e, i) {\n                        for (var o = 0; o < n.create.length; ++o) n.create[o](Bn, e);\n                        r(t = e.data.hook) && (r(t.create) && t.create(Bn, e), r(t.insert) && i.push(e))\n                    }\n\n                    function b(e) {\n                        var t;\n                        if (r(t = e.fnScopeId)) d.setStyleScope(e.elm, t);\n                        else\n                            for (var i = e; i;) r(t = i.context) && r(t = t.$options._scopeId) && d.setStyleScope(e.elm, t), i = i.parent;\n                        r(t = Ot) && t !== e.context && t !== e.fnContext && r(t = t.$options._scopeId) && d.setStyleScope(e.elm, t)\n                    }\n\n                    function w(e, t, i, n, o, s) {\n                        for (; n <= o; ++n) u(i[n], s, e, t, !1, i, n)\n                    }\n\n                    function y(e) {\n                        var t, i, o = e.data;\n                        if (r(o))\n                            for (r(t = o.hook) && r(t = t.destroy) && t(e), t = 0; t < n.destroy.length; ++t) n.destroy[t](e);\n                        if (r(t = e.children))\n                            for (i = 0; i < e.children.length; ++i) y(e.children[i])\n                    }\n\n                    function C(e, t, i) {\n                        for (; t <= i; ++t) {\n                            var n = e[t];\n                            r(n) && (r(n.tag) ? (x(n), y(n)) : h(n.elm))\n                        }\n                    }\n\n                    function x(e, t) {\n                        if (r(t) || r(e.data)) {\n                            var i, o = n.remove.length + 1;\n                            for (r(t) ? t.listeners += o : t = function(e, t) {\n                                    function i() {\n                                        0 == --i.listeners && h(e)\n                                    }\n                                    return i.listeners = t, i\n                                }(e.elm, o), r(i = e.componentInstance) && r(i = i._vnode) && r(i.data) && x(i, t), i = 0; i < n.remove.length; ++i) n.remove[i](e, t);\n                            r(i = e.data.hook) && r(i = i.remove) ? i(e, t) : t()\n                        } else h(e.elm)\n                    }\n\n                    function S(e, t, i, n) {\n                        for (var o = i; o < n; o++) {\n                            var s = t[o];\n                            if (r(s) && Wn(e, s)) return o\n                        }\n                    }\n\n                    function k(e, t, i, o, l, c) {\n                        if (e !== t) {\n                            r(t.elm) && r(o) && (t = o[l] = ve(t));\n                            var h = t.elm = e.elm;\n                            if (a(e.isAsyncPlaceholder)) r(t.asyncFactory.resolved) ? D(e.elm, t, i) : t.isAsyncPlaceholder = !0;\n                            else if (a(t.isStatic) && a(e.isStatic) && t.key === e.key && (a(t.isCloned) || a(t.isOnce))) t.componentInstance = e.componentInstance;\n                            else {\n                                var g, p = t.data;\n                                r(p) && r(g = p.hook) && r(g = g.prepatch) && g(e, t);\n                                var f = e.children,\n                                    v = t.children;\n                                if (r(p) && m(t)) {\n                                    for (g = 0; g < n.update.length; ++g) n.update[g](e, t);\n                                    r(g = p.hook) && r(g = g.update) && g(e, t)\n                                }\n                                s(t.text) ? r(f) && r(v) ? f !== v && function(e, t, i, n, o) {\n                                    var a, l, c, h = 0,\n                                        g = 0,\n                                        p = t.length - 1,\n                                        f = t[0],\n                                        m = t[p],\n                                        v = i.length - 1,\n                                        _ = i[0],\n                                        b = i[v],\n                                        y = !o;\n                                    for (; h <= p && g <= v;) s(f) ? f = t[++h] : s(m) ? m = t[--p] : Wn(f, _) ? (k(f, _, n, i, g), f = t[++h], _ = i[++g]) : Wn(m, b) ? (k(m, b, n, i, v), m = t[--p], b = i[--v]) : Wn(f, b) ? (k(f, b, n, i, v), y && d.insertBefore(e, f.elm, d.nextSibling(m.elm)), f = t[++h], b = i[--v]) : Wn(m, _) ? (k(m, _, n, i, g), y && d.insertBefore(e, m.elm, f.elm), m = t[--p], _ = i[++g]) : (s(a) && (a = Hn(t, h, p)), s(l = r(_.key) ? a[_.key] : S(_, t, h, p)) ? u(_, n, e, f.elm, !1, i, g) : Wn(c = t[l], _) ? (k(c, _, n, i, g), t[l] = void 0, y && d.insertBefore(e, c.elm, f.elm)) : u(_, n, e, f.elm, !1, i, g), _ = i[++g]);\n                                    h > p ? w(e, s(i[v + 1]) ? null : i[v + 1].elm, i, g, v, n) : g > v && C(t, h, p)\n                                }(h, f, v, i, c) : r(v) ? (r(e.text) && d.setTextContent(h, \"\"), w(h, null, v, 0, v.length - 1, i)) : r(f) ? C(f, 0, f.length - 1) : r(e.text) && d.setTextContent(h, \"\") : e.text !== t.text && d.setTextContent(h, t.text), r(p) && r(g = p.hook) && r(g = g.postpatch) && g(e, t)\n                            }\n                        }\n                    }\n\n                    function L(e, t, i) {\n                        if (a(i) && r(e.parent)) e.parent.data.pendingInsert = t;\n                        else\n                            for (var n = 0; n < t.length; ++n) t[n].data.hook.insert(t[n])\n                    }\n                    var N = _(\"attrs,class,staticClass,staticStyle,key\");\n\n                    function D(e, t, i, n) {\n                        var o, s = t.tag,\n                            l = t.data,\n                            c = t.children;\n                        if (n = n || l && l.pre, t.elm = e, a(t.isComment) && r(t.asyncFactory)) return t.isAsyncPlaceholder = !0, !0;\n                        if (r(l) && (r(o = l.hook) && r(o = o.init) && o(t, !0), r(o = t.componentInstance))) return g(t, i), !0;\n                        if (r(s)) {\n                            if (r(c))\n                                if (e.hasChildNodes())\n                                    if (r(o = l) && r(o = o.domProps) && r(o = o.innerHTML)) {\n                                        if (o !== e.innerHTML) return !1\n                                    } else {\n                                        for (var d = !0, h = e.firstChild, u = 0; u < c.length; u++) {\n                                            if (!h || !D(h, c[u], i, n)) {\n                                                d = !1;\n                                                break\n                                            }\n                                            h = h.nextSibling\n                                        }\n                                        if (!d || h) return !1\n                                    }\n                            else f(t, c, i);\n                            if (r(l)) {\n                                var p = !1;\n                                for (var m in l)\n                                    if (!N(m)) {\n                                        p = !0, v(t, i);\n                                        break\n                                    }! p && l.class && _i(l.class)\n                            }\n                        } else e.data !== t.text && (e.data = t.text);\n                        return !0\n                    }\n                    return function(e, t, i, o) {\n                        if (!s(t)) {\n                            var l, c = !1,\n                                h = [];\n                            if (s(e)) c = !0, u(t, h);\n                            else {\n                                var g = r(e.nodeType);\n                                if (!g && Wn(e, t)) k(e, t, h, null, null, o);\n                                else {\n                                    if (g) {\n                                        if (1 === e.nodeType && e.hasAttribute(H) && (e.removeAttribute(H), i = !0), a(i) && D(e, t, h)) return L(t, h, !0), e;\n                                        l = e, e = new pe(d.tagName(l).toLowerCase(), {}, [], void 0, l)\n                                    }\n                                    var p = e.elm,\n                                        f = d.parentNode(p);\n                                    if (u(t, h, p._leaveCb ? null : f, d.nextSibling(p)), r(t.parent))\n                                        for (var v = t.parent, _ = m(t); v;) {\n                                            for (var b = 0; b < n.destroy.length; ++b) n.destroy[b](v);\n                                            if (v.elm = t.elm, _) {\n                                                for (var w = 0; w < n.create.length; ++w) n.create[w](Bn, v);\n                                                var x = v.data.hook.insert;\n                                                if (x.merged)\n                                                    for (var S = 1; S < x.fns.length; S++) x.fns[S]()\n                                            } else Rn(v);\n                                            v = v.parent\n                                        }\n                                    r(f) ? C([e], 0, 0) : r(e.tag) && y(e)\n                                }\n                            }\n                            return L(t, h, c), t.elm\n                        }\n                        r(e) && y(e)\n                    }\n                }({\n                    nodeOps: On,\n                    modules: [Xn, ro, Vo, zo, Jo, Y ? {\n                        create: ks,\n                        activate: ks,\n                        remove: function(e, t) {\n                            !0 !== e.data.show ? Cs(e, t) : t()\n                        }\n                    } : {}].concat(Zn)\n                });\n                J && document.addEventListener(\"selectionchange\", (function() {\n                    var e = document.activeElement;\n                    e && e.vmodel && Os(e, \"input\")\n                }));\n                var Ns = {\n                    inserted: function(e, t, i, n) {\n                        \"select\" === i.tag ? (n.elm && !n.elm._vOptions ? Ke(i, \"postpatch\", (function() {\n                            Ns.componentUpdated(e, t, i)\n                        })) : Ds(e, t, i.context), e._vOptions = [].map.call(e.options, Ts)) : (\"textarea\" === i.tag || Mn(e.type)) && (e._vModifiers = t.modifiers, t.modifiers.lazy || (e.addEventListener(\"compositionstart\", Ms), e.addEventListener(\"compositionend\", As), e.addEventListener(\"change\", As), J && (e.vmodel = !0)))\n                    },\n                    componentUpdated: function(e, t, i) {\n                        if (\"select\" === i.tag) {\n                            Ds(e, t, i.context);\n                            var n = e._vOptions,\n                                o = e._vOptions = [].map.call(e.options, Ts);\n                            if (o.some((function(e, t) {\n                                    return !F(e, n[t])\n                                })))(e.multiple ? t.value.some((function(e) {\n                                return Es(e, o)\n                            })) : t.value !== t.oldValue && Es(t.value, o)) && Os(e, \"change\")\n                        }\n                    }\n                };\n\n                function Ds(e, t, i) {\n                    Is(e, t, i), (X || ee) && setTimeout((function() {\n                        Is(e, t, i)\n                    }), 0)\n                }\n\n                function Is(e, t, i) {\n                    var n = t.value,\n                        o = e.multiple;\n                    if (!o || Array.isArray(n)) {\n                        for (var s, r, a = 0, l = e.options.length; a < l; a++)\n                            if (r = e.options[a], o) s = B(n, Ts(r)) > -1, r.selected !== s && (r.selected = s);\n                            else if (F(Ts(r), n)) return void(e.selectedIndex !== a && (e.selectedIndex = a));\n                        o || (e.selectedIndex = -1)\n                    }\n                }\n\n                function Es(e, t) {\n                    return t.every((function(t) {\n                        return !F(t, e)\n                    }))\n                }\n\n                function Ts(e) {\n                    return \"_value\" in e ? e._value : e.value\n                }\n\n                function Ms(e) {\n                    e.target.composing = !0\n                }\n\n                function As(e) {\n                    e.target.composing && (e.target.composing = !1, Os(e.target, \"input\"))\n                }\n\n                function Os(e, t) {\n                    var i = document.createEvent(\"HTMLEvents\");\n                    i.initEvent(t, !0, !0), e.dispatchEvent(i)\n                }\n\n                function Ps(e) {\n                    return !e.componentInstance || e.data && e.data.transition ? e : Ps(e.componentInstance._vnode)\n                }\n                var Rs = {\n                        bind: function(e, t, i) {\n                            var n = t.value,\n                                o = (i = Ps(i)).data && i.data.transition,\n                                s = e.__vOriginalDisplay = \"none\" === e.style.display ? \"\" : e.style.display;\n                            n && o ? (i.data.show = !0, ys(i, (function() {\n                                e.style.display = s\n                            }))) : e.style.display = n ? s : \"none\"\n                        },\n                        update: function(e, t, i) {\n                            var n = t.value;\n                            !n != !t.oldValue && ((i = Ps(i)).data && i.data.transition ? (i.data.show = !0, n ? ys(i, (function() {\n                                e.style.display = e.__vOriginalDisplay\n                            })) : Cs(i, (function() {\n                                e.style.display = \"none\"\n                            }))) : e.style.display = n ? e.__vOriginalDisplay : \"none\")\n                        },\n                        unbind: function(e, t, i, n, o) {\n                            o || (e.style.display = e.__vOriginalDisplay)\n                        }\n                    },\n                    Fs = {\n                        model: Ns,\n                        show: Rs\n                    },\n                    Bs = {\n                        name: String,\n                        appear: Boolean,\n                        css: Boolean,\n                        mode: String,\n                        type: String,\n                        enterClass: String,\n                        leaveClass: String,\n                        enterToClass: String,\n                        leaveToClass: String,\n                        enterActiveClass: String,\n                        leaveActiveClass: String,\n                        appearClass: String,\n                        appearActiveClass: String,\n                        appearToClass: String,\n                        duration: [Number, String, Object]\n                    };\n\n                function Vs(e) {\n                    var t = e && e.componentOptions;\n                    return t && t.Ctor.options.abstract ? Vs(It(t.children)) : e\n                }\n\n                function Ws(e) {\n                    var t = {},\n                        i = e.$options;\n                    for (var n in i.propsData) t[n] = e[n];\n                    var o = i._parentListeners;\n                    for (var n in o) t[L(n)] = o[n];\n                    return t\n                }\n\n                function Hs(e, t) {\n                    if (/\\d-keep-alive$/.test(t.tag)) return e(\"keep-alive\", {\n                        props: t.componentOptions.propsData\n                    })\n                }\n                var zs = function(e) {\n                        return e.tag || _t(e)\n                    },\n                    js = function(e) {\n                        return \"show\" === e.name\n                    },\n                    Us = {\n                        name: \"transition\",\n                        props: Bs,\n                        abstract: !0,\n                        render: function(e) {\n                            var t = this,\n                                i = this.$slots.default;\n                            if (i && (i = i.filter(zs)).length) {\n                                0;\n                                var n = this.mode;\n                                0;\n                                var o = i[0];\n                                if (function(e) {\n                                        for (; e = e.parent;)\n                                            if (e.data.transition) return !0\n                                    }(this.$vnode)) return o;\n                                var s = Vs(o);\n                                if (!s) return o;\n                                if (this._leaving) return Hs(e, o);\n                                var r = \"__transition-\".concat(this._uid, \"-\");\n                                s.key = null == s.key ? s.isComment ? r + \"comment\" : r + s.tag : l(s.key) ? 0 === String(s.key).indexOf(r) ? s.key : r + s.key : s.key;\n                                var a = (s.data || (s.data = {})).transition = Ws(this),\n                                    c = this._vnode,\n                                    d = Vs(c);\n                                if (s.data.directives && s.data.directives.some(js) && (s.data.show = !0), d && d.data && ! function(e, t) {\n                                        return t.key === e.key && t.tag === e.tag\n                                    }(s, d) && !_t(d) && (!d.componentInstance || !d.componentInstance._vnode.isComment)) {\n                                    var h = d.data.transition = M({}, a);\n                                    if (\"out-in\" === n) return this._leaving = !0, Ke(h, \"afterLeave\", (function() {\n                                        t._leaving = !1, t.$forceUpdate()\n                                    })), Hs(e, o);\n                                    if (\"in-out\" === n) {\n                                        if (_t(s)) return c;\n                                        var u, g = function() {\n                                            u()\n                                        };\n                                        Ke(a, \"afterEnter\", g), Ke(a, \"enterCancelled\", g), Ke(h, \"delayLeave\", (function(e) {\n                                            u = e\n                                        }))\n                                    }\n                                }\n                                return o\n                            }\n                        }\n                    },\n                    $s = M({\n                        tag: String,\n                        moveClass: String\n                    }, Bs);\n                delete $s.mode;\n                var Ks = {\n                    props: $s,\n                    beforeMount: function() {\n                        var e = this,\n                            t = this._update;\n                        this._update = function(i, n) {\n                            var o = Pt(e);\n                            e.__patch__(e._vnode, e.kept, !1, !0), e._vnode = e.kept, o(), t.call(e, i, n)\n                        }\n                    },\n                    render: function(e) {\n                        for (var t = this.tag || this.$vnode.data.tag || \"span\", i = Object.create(null), n = this.prevChildren = this.children, o = this.$slots.default || [], s = this.children = [], r = Ws(this), a = 0; a < o.length; a++) {\n                            if ((d = o[a]).tag)\n                                if (null != d.key && 0 !== String(d.key).indexOf(\"__vlist\")) s.push(d), i[d.key] = d, (d.data || (d.data = {})).transition = r;\n                                else;\n                        }\n                        if (n) {\n                            var l = [],\n                                c = [];\n                            for (a = 0; a < n.length; a++) {\n                                var d;\n                                (d = n[a]).data.transition = r, d.data.pos = d.elm.getBoundingClientRect(), i[d.key] ? l.push(d) : c.push(d)\n                            }\n                            this.kept = e(t, null, l), this.removed = c\n                        }\n                        return e(t, null, s)\n                    },\n                    updated: function() {\n                        var e = this.prevChildren,\n                            t = this.moveClass || (this.name || \"v\") + \"-move\";\n                        e.length && this.hasMove(e[0].elm, t) && (e.forEach(qs), e.forEach(Zs), e.forEach(Gs), this._reflow = document.body.offsetHeight, e.forEach((function(e) {\n                            if (e.data.moved) {\n                                var i = e.elm,\n                                    n = i.style;\n                                ps(i, t), n.transform = n.WebkitTransform = n.transitionDuration = \"\", i.addEventListener(cs, i._moveCb = function e(n) {\n                                    n && n.target !== i || n && !/transform$/.test(n.propertyName) || (i.removeEventListener(cs, e), i._moveCb = null, fs(i, t))\n                                })\n                            }\n                        })))\n                    },\n                    methods: {\n                        hasMove: function(e, t) {\n                            if (!ss) return !1;\n                            if (this._hasMove) return this._hasMove;\n                            var i = e.cloneNode();\n                            e._transitionClasses && e._transitionClasses.forEach((function(e) {\n                                is(i, e)\n                            })), ts(i, t), i.style.display = \"none\", this.$el.appendChild(i);\n                            var n = _s(i);\n                            return this.$el.removeChild(i), this._hasMove = n.hasTransform\n                        }\n                    }\n                };\n\n                function qs(e) {\n                    e.elm._moveCb && e.elm._moveCb(), e.elm._enterCb && e.elm._enterCb()\n                }\n\n                function Zs(e) {\n                    e.data.newPos = e.elm.getBoundingClientRect()\n                }\n\n                function Gs(e) {\n                    var t = e.data.pos,\n                        i = e.data.newPos,\n                        n = t.left - i.left,\n                        o = t.top - i.top;\n                    if (n || o) {\n                        e.data.moved = !0;\n                        var s = e.elm.style;\n                        s.transform = s.WebkitTransform = \"translate(\".concat(n, \"px,\").concat(o, \"px)\"), s.transitionDuration = \"0s\"\n                    }\n                }\n                var Ys = {\n                    Transition: Us,\n                    TransitionGroup: Ks\n                };\n                tn.config.mustUseProp = gn, tn.config.isReservedTag = In, tn.config.isReservedAttr = hn, tn.config.getTagNamespace = En, tn.config.isUnknownElement = function(e) {\n                    if (!Y) return !0;\n                    if (In(e)) return !1;\n                    if (e = e.toLowerCase(), null != Tn[e]) return Tn[e];\n                    var t = document.createElement(e);\n                    return e.indexOf(\"-\") > -1 ? Tn[e] = t.constructor === window.HTMLUnknownElement || t.constructor === window.HTMLElement : Tn[e] = /HTMLUnknownElement/.test(t.toString())\n                }, M(tn.options.directives, Fs), M(tn.options.components, Ys), tn.prototype.__patch__ = Y ? Ls : O, tn.prototype.$mount = function(e, t) {\n                    return function(e, t, i) {\n                        var n;\n                        e.$el = t, e.$options.render || (e.$options.render = fe), Vt(e, \"beforeMount\"), n = function() {\n                            e._update(e._render(), i)\n                        }, new yi(e, n, O, {\n                            before: function() {\n                                e._isMounted && !e._isDestroyed && Vt(e, \"beforeUpdate\")\n                            }\n                        }, !0), i = !1;\n                        var o = e._preWatchers;\n                        if (o)\n                            for (var s = 0; s < o.length; s++) o[s].run();\n                        return null == e.$vnode && (e._isMounted = !0, Vt(e, \"mounted\")), e\n                    }(this, e = e && Y ? An(e) : void 0, t)\n                }, Y && setTimeout((function() {\n                    U.devtools && le && le.emit(\"init\", tn)\n                }), 0);\n                var Qs = /\\{\\{((?:.|\\r?\\n)+?)\\}\\}/g,\n                    Xs = /[-.*+?^${}()|[\\]\\/\\\\]/g,\n                    Js = S((function(e) {\n                        var t = e[0].replace(Xs, \"\\\\$&\"),\n                            i = e[1].replace(Xs, \"\\\\$&\");\n                        return new RegExp(t + \"((?:.|\\\\n)+?)\" + i, \"g\")\n                    }));\n                var er = {\n                    staticKeys: [\"staticClass\"],\n                    transformNode: function(e, t) {\n                        t.warn;\n                        var i = wo(e, \"class\");\n                        i && (e.staticClass = JSON.stringify(i.replace(/\\s+/g, \" \").trim()));\n                        var n = bo(e, \"class\", !1);\n                        n && (e.classBinding = n)\n                    },\n                    genData: function(e) {\n                        var t = \"\";\n                        return e.staticClass && (t += \"staticClass:\".concat(e.staticClass, \",\")), e.classBinding && (t += \"class:\".concat(e.classBinding, \",\")), t\n                    }\n                };\n                var tr, ir = {\n                        staticKeys: [\"staticStyle\"],\n                        transformNode: function(e, t) {\n                            t.warn;\n                            var i = wo(e, \"style\");\n                            i && (e.staticStyle = JSON.stringify(jo(i)));\n                            var n = bo(e, \"style\", !1);\n                            n && (e.styleBinding = n)\n                        },\n                        genData: function(e) {\n                            var t = \"\";\n                            return e.staticStyle && (t += \"staticStyle:\".concat(e.staticStyle, \",\")), e.styleBinding && (t += \"style:(\".concat(e.styleBinding, \"),\")), t\n                        }\n                    },\n                    nr = function(e) {\n                        return (tr = tr || document.createElement(\"div\")).innerHTML = e, tr.textContent\n                    },\n                    or = _(\"area,base,br,col,embed,frame,hr,img,input,isindex,keygen,link,meta,param,source,track,wbr\"),\n                    sr = _(\"colgroup,dd,dt,li,options,p,td,tfoot,th,thead,tr,source\"),\n                    rr = _(\"address,article,aside,base,blockquote,body,caption,col,colgroup,dd,details,dialog,div,dl,dt,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,head,header,hgroup,hr,html,legend,li,menuitem,meta,optgroup,option,param,rp,rt,source,style,summary,tbody,td,tfoot,th,thead,title,tr,track\"),\n                    ar = /^\\s*([^\\s\"'<>\\/=]+)(?:\\s*(=)\\s*(?:\"([^\"]*)\"+|'([^']*)'+|([^\\s\"'=<>`]+)))?/,\n                    lr = /^\\s*((?:v-[\\w-]+:|@|:|#)\\[[^=]+?\\][^\\s\"'<>\\/=]*)(?:\\s*(=)\\s*(?:\"([^\"]*)\"+|'([^']*)'+|([^\\s\"'=<>`]+)))?/,\n                    cr = \"[a-zA-Z_][\\\\-\\\\.0-9_a-zA-Z\".concat($.source, \"]*\"),\n                    dr = \"((?:\".concat(cr, \"\\\\:)?\").concat(cr, \")\"),\n                    hr = new RegExp(\"^<\".concat(dr)),\n                    ur = /^\\s*(\\/?)>/,\n                    gr = new RegExp(\"^<\\\\/\".concat(dr, \"[^>]*>\")),\n                    pr = /^<!DOCTYPE [^>]+>/i,\n                    fr = /^<!\\--/,\n                    mr = /^<!\\[/,\n                    vr = _(\"script,style,textarea\", !0),\n                    _r = {},\n                    br = {\n                        \"&lt;\": \"<\",\n                        \"&gt;\": \">\",\n                        \"&quot;\": '\"',\n                        \"&amp;\": \"&\",\n                        \"&#10;\": \"\\n\",\n                        \"&#9;\": \"\\t\",\n                        \"&#39;\": \"'\"\n                    },\n                    wr = /&(?:lt|gt|quot|amp|#39);/g,\n                    yr = /&(?:lt|gt|quot|amp|#39|#10|#9);/g,\n                    Cr = _(\"pre,textarea\", !0),\n                    xr = function(e, t) {\n                        return e && Cr(e) && \"\\n\" === t[0]\n                    };\n\n                function Sr(e, t) {\n                    var i = t ? yr : wr;\n                    return e.replace(i, (function(e) {\n                        return br[e]\n                    }))\n                }\n\n                function kr(e, t) {\n                    for (var i, n, o = [], s = t.expectHTML, r = t.isUnaryTag || P, a = t.canBeLeftOpenTag || P, l = 0, c = function() {\n                            if (i = e, n && vr(n)) {\n                                var c = 0,\n                                    u = n.toLowerCase(),\n                                    g = _r[u] || (_r[u] = new RegExp(\"([\\\\s\\\\S]*?)(</\" + u + \"[^>]*>)\", \"i\"));\n                                C = e.replace(g, (function(e, i, n) {\n                                    return c = n.length, vr(u) || \"noscript\" === u || (i = i.replace(/<!\\--([\\s\\S]*?)-->/g, \"$1\").replace(/<!\\[CDATA\\[([\\s\\S]*?)]]>/g, \"$1\")), xr(u, i) && (i = i.slice(1)), t.chars && t.chars(i), \"\"\n                                }));\n                                l += e.length - C.length, e = C, h(u, l - c, l)\n                            } else {\n                                var p = e.indexOf(\"<\");\n                                if (0 === p) {\n                                    if (fr.test(e)) {\n                                        var f = e.indexOf(\"--\\x3e\");\n                                        if (f >= 0) return t.shouldKeepComment && t.comment && t.comment(e.substring(4, f), l, l + f + 3), d(f + 3), \"continue\"\n                                    }\n                                    if (mr.test(e)) {\n                                        var m = e.indexOf(\"]>\");\n                                        if (m >= 0) return d(m + 2), \"continue\"\n                                    }\n                                    var v = e.match(pr);\n                                    if (v) return d(v[0].length), \"continue\";\n                                    var _ = e.match(gr);\n                                    if (_) {\n                                        var b = l;\n                                        return d(_[0].length), h(_[1], b, l), \"continue\"\n                                    }\n                                    var w = function() {\n                                        var t = e.match(hr);\n                                        if (t) {\n                                            var i = {\n                                                tagName: t[1],\n                                                attrs: [],\n                                                start: l\n                                            };\n                                            d(t[0].length);\n                                            for (var n = void 0, o = void 0; !(n = e.match(ur)) && (o = e.match(lr) || e.match(ar));) o.start = l, d(o[0].length), o.end = l, i.attrs.push(o);\n                                            if (n) return i.unarySlash = n[1], d(n[0].length), i.end = l, i\n                                        }\n                                    }();\n                                    if (w) return function(e) {\n                                        var i = e.tagName,\n                                            l = e.unarySlash;\n                                        s && (\"p\" === n && rr(i) && h(n), a(i) && n === i && h(i));\n                                        for (var c = r(i) || !!l, d = e.attrs.length, u = new Array(d), g = 0; g < d; g++) {\n                                            var p = e.attrs[g],\n                                                f = p[3] || p[4] || p[5] || \"\",\n                                                m = \"a\" === i && \"href\" === p[1] ? t.shouldDecodeNewlinesForHref : t.shouldDecodeNewlines;\n                                            u[g] = {\n                                                name: p[1],\n                                                value: Sr(f, m)\n                                            }\n                                        }\n                                        c || (o.push({\n                                            tag: i,\n                                            lowerCasedTag: i.toLowerCase(),\n                                            attrs: u,\n                                            start: e.start,\n                                            end: e.end\n                                        }), n = i);\n                                        t.start && t.start(i, u, c, e.start, e.end)\n                                    }(w), xr(w.tagName, e) && d(1), \"continue\"\n                                }\n                                var y = void 0,\n                                    C = void 0,\n                                    x = void 0;\n                                if (p >= 0) {\n                                    for (C = e.slice(p); !(gr.test(C) || hr.test(C) || fr.test(C) || mr.test(C) || (x = C.indexOf(\"<\", 1)) < 0);) p += x, C = e.slice(p);\n                                    y = e.substring(0, p)\n                                }\n                                p < 0 && (y = e), y && d(y.length), t.chars && y && t.chars(y, l - y.length, l)\n                            }\n                            if (e === i) return t.chars && t.chars(e), \"break\"\n                        }; e;) {\n                        if (\"break\" === c()) break\n                    }\n\n                    function d(t) {\n                        l += t, e = e.substring(t)\n                    }\n\n                    function h(e, i, s) {\n                        var r, a;\n                        if (null == i && (i = l), null == s && (s = l), e)\n                            for (a = e.toLowerCase(), r = o.length - 1; r >= 0 && o[r].lowerCasedTag !== a; r--);\n                        else r = 0;\n                        if (r >= 0) {\n                            for (var c = o.length - 1; c >= r; c--) t.end && t.end(o[c].tag, i, s);\n                            o.length = r, n = r && o[r - 1].tag\n                        } else \"br\" === a ? t.start && t.start(e, [], !0, i, s) : \"p\" === a && (t.start && t.start(e, [], !1, i, s), t.end && t.end(e, i, s))\n                    }\n                    h()\n                }\n                var Lr, Nr, Dr, Ir, Er, Tr, Mr, Ar, Or = /^@|^v-on:/,\n                    Pr = /^v-|^@|^:|^#/,\n                    Rr = /([\\s\\S]*?)\\s+(?:in|of)\\s+([\\s\\S]*)/,\n                    Fr = /,([^,\\}\\]]*)(?:,([^,\\}\\]]*))?$/,\n                    Br = /^\\(|\\)$/g,\n                    Vr = /^\\[.*\\]$/,\n                    Wr = /:(.*)$/,\n                    Hr = /^:|^\\.|^v-bind:/,\n                    zr = /\\.[^.\\]]+(?=[^\\]]*$)/g,\n                    jr = /^v-slot(:|$)|^#/,\n                    Ur = /[\\r\\n]/,\n                    $r = /[ \\f\\t\\r\\n]+/g,\n                    Kr = S(nr),\n                    qr = \"_empty_\";\n\n                function Zr(e, t, i) {\n                    return {\n                        type: 1,\n                        tag: e,\n                        attrsList: t,\n                        attrsMap: ta(t),\n                        rawAttrsMap: {},\n                        parent: i,\n                        children: []\n                    }\n                }\n\n                function Gr(e, t) {\n                    Lr = t.warn || ho, Tr = t.isPreTag || P, Mr = t.mustUseProp || P, Ar = t.getTagNamespace || P;\n                    var i = t.isReservedTag || P;\n                    (function(e) {\n                        return !(!(e.component || e.attrsMap[\":is\"] || e.attrsMap[\"v-bind:is\"]) && (e.attrsMap.is ? i(e.attrsMap.is) : i(e.tag)))\n                    }), Dr = uo(t.modules, \"transformNode\"), Ir = uo(t.modules, \"preTransformNode\"), Er = uo(t.modules, \"postTransformNode\"), Nr = t.delimiters;\n                    var n, o, s = [],\n                        r = !1 !== t.preserveWhitespace,\n                        a = t.whitespace,\n                        l = !1,\n                        c = !1;\n\n                    function d(e) {\n                        if (h(e), l || e.processed || (e = Yr(e, t)), s.length || e === n || n.if && (e.elseif || e.else) && Xr(n, {\n                                exp: e.elseif,\n                                block: e\n                            }), o && !e.forbidden)\n                            if (e.elseif || e.else) r = e, a = function(e) {\n                                for (var t = e.length; t--;) {\n                                    if (1 === e[t].type) return e[t];\n                                    e.pop()\n                                }\n                            }(o.children), a && a.if && Xr(a, {\n                                exp: r.elseif,\n                                block: r\n                            });\n                            else {\n                                if (e.slotScope) {\n                                    var i = e.slotTarget || '\"default\"';\n                                    (o.scopedSlots || (o.scopedSlots = {}))[i] = e\n                                }\n                                o.children.push(e), e.parent = o\n                            } var r, a;\n                        e.children = e.children.filter((function(e) {\n                            return !e.slotScope\n                        })), h(e), e.pre && (l = !1), Tr(e.tag) && (c = !1);\n                        for (var d = 0; d < Er.length; d++) Er[d](e, t)\n                    }\n\n                    function h(e) {\n                        if (!c)\n                            for (var t = void 0;\n                                (t = e.children[e.children.length - 1]) && 3 === t.type && \" \" === t.text;) e.children.pop()\n                    }\n                    return kr(e, {\n                        warn: Lr,\n                        expectHTML: t.expectHTML,\n                        isUnaryTag: t.isUnaryTag,\n                        canBeLeftOpenTag: t.canBeLeftOpenTag,\n                        shouldDecodeNewlines: t.shouldDecodeNewlines,\n                        shouldDecodeNewlinesForHref: t.shouldDecodeNewlinesForHref,\n                        shouldKeepComment: t.comments,\n                        outputSourceRange: t.outputSourceRange,\n                        start: function(e, i, r, a, h) {\n                            var u = o && o.ns || Ar(e);\n                            X && \"svg\" === u && (i = function(e) {\n                                for (var t = [], i = 0; i < e.length; i++) {\n                                    var n = e[i];\n                                    ia.test(n.name) || (n.name = n.name.replace(na, \"\"), t.push(n))\n                                }\n                                return t\n                            }(i));\n                            var g, p = Zr(e, i, o);\n                            u && (p.ns = u), \"style\" !== (g = p).tag && (\"script\" !== g.tag || g.attrsMap.type && \"text/javascript\" !== g.attrsMap.type) || ae() || (p.forbidden = !0);\n                            for (var f = 0; f < Ir.length; f++) p = Ir[f](p, t) || p;\n                            l || (! function(e) {\n                                null != wo(e, \"v-pre\") && (e.pre = !0)\n                            }(p), p.pre && (l = !0)), Tr(p.tag) && (c = !0), l ? function(e) {\n                                var t = e.attrsList,\n                                    i = t.length;\n                                if (i)\n                                    for (var n = e.attrs = new Array(i), o = 0; o < i; o++) n[o] = {\n                                        name: t[o].name,\n                                        value: JSON.stringify(t[o].value)\n                                    }, null != t[o].start && (n[o].start = t[o].start, n[o].end = t[o].end);\n                                else e.pre || (e.plain = !0)\n                            }(p) : p.processed || (Qr(p), function(e) {\n                                var t = wo(e, \"v-if\");\n                                if (t) e.if = t, Xr(e, {\n                                    exp: t,\n                                    block: e\n                                });\n                                else {\n                                    null != wo(e, \"v-else\") && (e.else = !0);\n                                    var i = wo(e, \"v-else-if\");\n                                    i && (e.elseif = i)\n                                }\n                            }(p), function(e) {\n                                var t = wo(e, \"v-once\");\n                                null != t && (e.once = !0)\n                            }(p)), n || (n = p), r ? d(p) : (o = p, s.push(p))\n                        },\n                        end: function(e, t, i) {\n                            var n = s[s.length - 1];\n                            s.length -= 1, o = s[s.length - 1], d(n)\n                        },\n                        chars: function(e, t, i) {\n                            if (o && (!X || \"textarea\" !== o.tag || o.attrsMap.placeholder !== e)) {\n                                var n, s = o.children;\n                                if (e = c || e.trim() ? \"script\" === (n = o).tag || \"style\" === n.tag ? e : Kr(e) : s.length ? a ? \"condense\" === a && Ur.test(e) ? \"\" : \" \" : r ? \" \" : \"\" : \"\") {\n                                    c || \"condense\" !== a || (e = e.replace($r, \" \"));\n                                    var d = void 0,\n                                        h = void 0;\n                                    !l && \" \" !== e && (d = function(e, t) {\n                                        var i = t ? Js(t) : Qs;\n                                        if (i.test(e)) {\n                                            for (var n, o, s, r = [], a = [], l = i.lastIndex = 0; n = i.exec(e);) {\n                                                (o = n.index) > l && (a.push(s = e.slice(l, o)), r.push(JSON.stringify(s)));\n                                                var c = lo(n[1].trim());\n                                                r.push(\"_s(\".concat(c, \")\")), a.push({\n                                                    \"@binding\": c\n                                                }), l = o + n[0].length\n                                            }\n                                            return l < e.length && (a.push(s = e.slice(l)), r.push(JSON.stringify(s))), {\n                                                expression: r.join(\"+\"),\n                                                tokens: a\n                                            }\n                                        }\n                                    }(e, Nr)) ? h = {\n                                        type: 2,\n                                        expression: d.expression,\n                                        tokens: d.tokens,\n                                        text: e\n                                    } : \" \" === e && s.length && \" \" === s[s.length - 1].text || (h = {\n                                        type: 3,\n                                        text: e\n                                    }), h && s.push(h)\n                                }\n                            }\n                        },\n                        comment: function(e, t, i) {\n                            if (o) {\n                                var n = {\n                                    type: 3,\n                                    text: e,\n                                    isComment: !0\n                                };\n                                0, o.children.push(n)\n                            }\n                        }\n                    }), n\n                }\n\n                function Yr(e, t) {\n                    var i;\n                    ! function(e) {\n                        var t = bo(e, \"key\");\n                        if (t) {\n                            e.key = t\n                        }\n                    }(e), e.plain = !e.key && !e.scopedSlots && !e.attrsList.length,\n                        function(e) {\n                            var t = bo(e, \"ref\");\n                            t && (e.ref = t, e.refInFor = function(e) {\n                                var t = e;\n                                for (; t;) {\n                                    if (void 0 !== t.for) return !0;\n                                    t = t.parent\n                                }\n                                return !1\n                            }(e))\n                        }(e),\n                        function(e) {\n                            var t;\n                            \"template\" === e.tag ? (t = wo(e, \"scope\"), e.slotScope = t || wo(e, \"slot-scope\")) : (t = wo(e, \"slot-scope\")) && (e.slotScope = t);\n                            var i = bo(e, \"slot\");\n                            i && (e.slotTarget = '\"\"' === i ? '\"default\"' : i, e.slotTargetDynamic = !(!e.attrsMap[\":slot\"] && !e.attrsMap[\"v-bind:slot\"]), \"template\" === e.tag || e.slotScope || po(e, \"slot\", i, function(e, t) {\n                                return e.rawAttrsMap[\":\" + t] || e.rawAttrsMap[\"v-bind:\" + t] || e.rawAttrsMap[t]\n                            }(e, \"slot\")));\n                            if (\"template\" === e.tag) {\n                                if (r = yo(e, jr)) {\n                                    0;\n                                    var n = Jr(r),\n                                        o = n.name,\n                                        s = n.dynamic;\n                                    e.slotTarget = o, e.slotTargetDynamic = s, e.slotScope = r.value || qr\n                                }\n                            } else {\n                                var r;\n                                if (r = yo(e, jr)) {\n                                    0;\n                                    var a = e.scopedSlots || (e.scopedSlots = {}),\n                                        l = Jr(r),\n                                        c = l.name,\n                                        d = (s = l.dynamic, a[c] = Zr(\"template\", [], e));\n                                    d.slotTarget = c, d.slotTargetDynamic = s, d.children = e.children.filter((function(e) {\n                                        if (!e.slotScope) return e.parent = d, !0\n                                    })), d.slotScope = r.value || qr, e.children = [], e.plain = !1\n                                }\n                            }\n                        }(e), \"slot\" === (i = e).tag && (i.slotName = bo(i, \"name\")),\n                        function(e) {\n                            var t;\n                            (t = bo(e, \"is\")) && (e.component = t);\n                            null != wo(e, \"inline-template\") && (e.inlineTemplate = !0)\n                        }(e);\n                    for (var n = 0; n < Dr.length; n++) e = Dr[n](e, t) || e;\n                    return function(e) {\n                        var t, i, n, o, s, r, a, l, c = e.attrsList;\n                        for (t = 0, i = c.length; t < i; t++) {\n                            if (n = o = c[t].name, s = c[t].value, Pr.test(n))\n                                if (e.hasBindings = !0, (r = ea(n.replace(Pr, \"\"))) && (n = n.replace(zr, \"\")), Hr.test(n)) n = n.replace(Hr, \"\"), s = lo(s), (l = Vr.test(n)) && (n = n.slice(1, -1)), r && (r.prop && !l && \"innerHtml\" === (n = L(n)) && (n = \"innerHTML\"), r.camel && !l && (n = L(n)), r.sync && (a = So(s, \"$event\"), l ? _o(e, '\"update:\"+('.concat(n, \")\"), a, null, !1, 0, c[t], !0) : (_o(e, \"update:\".concat(L(n)), a, null, !1, 0, c[t]), I(n) !== L(n) && _o(e, \"update:\".concat(I(n)), a, null, !1, 0, c[t])))), r && r.prop || !e.component && Mr(e.tag, e.attrsMap.type, n) ? go(e, n, s, c[t], l) : po(e, n, s, c[t], l);\n                                else if (Or.test(n)) n = n.replace(Or, \"\"), (l = Vr.test(n)) && (n = n.slice(1, -1)), _o(e, n, s, r, !1, 0, c[t], l);\n                            else {\n                                var d = (n = n.replace(Pr, \"\")).match(Wr),\n                                    h = d && d[1];\n                                l = !1, h && (n = n.slice(0, -(h.length + 1)), Vr.test(h) && (h = h.slice(1, -1), l = !0)), mo(e, n, o, s, h, l, r, c[t])\n                            } else po(e, n, JSON.stringify(s), c[t]), !e.component && \"muted\" === n && Mr(e.tag, e.attrsMap.type, n) && go(e, n, \"true\", c[t])\n                        }\n                    }(e), e\n                }\n\n                function Qr(e) {\n                    var t;\n                    if (t = wo(e, \"v-for\")) {\n                        var i = function(e) {\n                            var t = e.match(Rr);\n                            if (!t) return;\n                            var i = {};\n                            i.for = t[2].trim();\n                            var n = t[1].trim().replace(Br, \"\"),\n                                o = n.match(Fr);\n                            o ? (i.alias = n.replace(Fr, \"\").trim(), i.iterator1 = o[1].trim(), o[2] && (i.iterator2 = o[2].trim())) : i.alias = n;\n                            return i\n                        }(t);\n                        i && M(e, i)\n                    }\n                }\n\n                function Xr(e, t) {\n                    e.ifConditions || (e.ifConditions = []), e.ifConditions.push(t)\n                }\n\n                function Jr(e) {\n                    var t = e.name.replace(jr, \"\");\n                    return t || \"#\" !== e.name[0] && (t = \"default\"), Vr.test(t) ? {\n                        name: t.slice(1, -1),\n                        dynamic: !0\n                    } : {\n                        name: '\"'.concat(t, '\"'),\n                        dynamic: !1\n                    }\n                }\n\n                function ea(e) {\n                    var t = e.match(zr);\n                    if (t) {\n                        var i = {};\n                        return t.forEach((function(e) {\n                            i[e.slice(1)] = !0\n                        })), i\n                    }\n                }\n\n                function ta(e) {\n                    for (var t = {}, i = 0, n = e.length; i < n; i++) t[e[i].name] = e[i].value;\n                    return t\n                }\n                var ia = /^xmlns:NS\\d+/,\n                    na = /^NS\\d+:/;\n\n                function oa(e) {\n                    return Zr(e.tag, e.attrsList.slice(), e.parent)\n                }\n                var sa = [er, ir, {\n                    preTransformNode: function(e, t) {\n                        if (\"input\" === e.tag) {\n                            var i = e.attrsMap;\n                            if (!i[\"v-model\"]) return;\n                            var n = void 0;\n                            if ((i[\":type\"] || i[\"v-bind:type\"]) && (n = bo(e, \"type\")), i.type || n || !i[\"v-bind\"] || (n = \"(\".concat(i[\"v-bind\"], \").type\")), n) {\n                                var o = wo(e, \"v-if\", !0),\n                                    s = o ? \"&&(\".concat(o, \")\") : \"\",\n                                    r = null != wo(e, \"v-else\", !0),\n                                    a = wo(e, \"v-else-if\", !0),\n                                    l = oa(e);\n                                Qr(l), fo(l, \"type\", \"checkbox\"), Yr(l, t), l.processed = !0, l.if = \"(\".concat(n, \")==='checkbox'\") + s, Xr(l, {\n                                    exp: l.if,\n                                    block: l\n                                });\n                                var c = oa(e);\n                                wo(c, \"v-for\", !0), fo(c, \"type\", \"radio\"), Yr(c, t), Xr(l, {\n                                    exp: \"(\".concat(n, \")==='radio'\") + s,\n                                    block: c\n                                });\n                                var d = oa(e);\n                                return wo(d, \"v-for\", !0), fo(d, \":type\", n), Yr(d, t), Xr(l, {\n                                    exp: o,\n                                    block: d\n                                }), r ? l.else = !0 : a && (l.elseif = a), l\n                            }\n                        }\n                    }\n                }];\n                var ra, aa, la = {\n                        model: function(e, t, i) {\n                            i;\n                            var n = t.value,\n                                o = t.modifiers,\n                                s = e.tag,\n                                r = e.attrsMap.type;\n                            if (e.component) return xo(e, n, o), !1;\n                            if (\"select\" === s) ! function(e, t, i) {\n                                var n = i && i.number,\n                                    o = 'Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;' + \"return \".concat(n ? \"_n(val)\" : \"val\", \"})\"),\n                                    s = \"$event.target.multiple ? $$selectedVal : $$selectedVal[0]\",\n                                    r = \"var $$selectedVal = \".concat(o, \";\");\n                                r = \"\".concat(r, \" \").concat(So(t, s)), _o(e, \"change\", r, null, !0)\n                            }(e, n, o);\n                            else if (\"input\" === s && \"checkbox\" === r) ! function(e, t, i) {\n                                var n = i && i.number,\n                                    o = bo(e, \"value\") || \"null\",\n                                    s = bo(e, \"true-value\") || \"true\",\n                                    r = bo(e, \"false-value\") || \"false\";\n                                go(e, \"checked\", \"Array.isArray(\".concat(t, \")\") + \"?_i(\".concat(t, \",\").concat(o, \")>-1\") + (\"true\" === s ? \":(\".concat(t, \")\") : \":_q(\".concat(t, \",\").concat(s, \")\"))), _o(e, \"change\", \"var $$a=\".concat(t, \",\") + \"$$el=$event.target,\" + \"$$c=$$el.checked?(\".concat(s, \"):(\").concat(r, \");\") + \"if(Array.isArray($$a)){\" + \"var $$v=\".concat(n ? \"_n(\" + o + \")\" : o, \",\") + \"$$i=_i($$a,$$v);\" + \"if($$el.checked){$$i<0&&(\".concat(So(t, \"$$a.concat([$$v])\"), \")}\") + \"else{$$i>-1&&(\".concat(So(t, \"$$a.slice(0,$$i).concat($$a.slice($$i+1))\"), \")}\") + \"}else{\".concat(So(t, \"$$c\"), \"}\"), null, !0)\n                            }(e, n, o);\n                            else if (\"input\" === s && \"radio\" === r) ! function(e, t, i) {\n                                var n = i && i.number,\n                                    o = bo(e, \"value\") || \"null\";\n                                o = n ? \"_n(\".concat(o, \")\") : o, go(e, \"checked\", \"_q(\".concat(t, \",\").concat(o, \")\")), _o(e, \"change\", So(t, o), null, !0)\n                            }(e, n, o);\n                            else if (\"input\" === s || \"textarea\" === s) ! function(e, t, i) {\n                                var n = e.attrsMap.type;\n                                0;\n                                var o = i || {},\n                                    s = o.lazy,\n                                    r = o.number,\n                                    a = o.trim,\n                                    l = !s && \"range\" !== n,\n                                    c = s ? \"change\" : \"range\" === n ? To : \"input\",\n                                    d = \"$event.target.value\";\n                                a && (d = \"$event.target.value.trim()\");\n                                r && (d = \"_n(\".concat(d, \")\"));\n                                var h = So(t, d);\n                                l && (h = \"if($event.target.composing)return;\".concat(h));\n                                go(e, \"value\", \"(\".concat(t, \")\")), _o(e, c, h, null, !0), (a || r) && _o(e, \"blur\", \"$forceUpdate()\")\n                            }(e, n, o);\n                            else {\n                                if (!U.isReservedTag(s)) return xo(e, n, o), !1\n                            }\n                            return !0\n                        },\n                        text: function(e, t) {\n                            t.value && go(e, \"textContent\", \"_s(\".concat(t.value, \")\"), t)\n                        },\n                        html: function(e, t) {\n                            t.value && go(e, \"innerHTML\", \"_s(\".concat(t.value, \")\"), t)\n                        }\n                    },\n                    ca = {\n                        expectHTML: !0,\n                        modules: sa,\n                        directives: la,\n                        isPreTag: function(e) {\n                            return \"pre\" === e\n                        },\n                        isUnaryTag: or,\n                        mustUseProp: gn,\n                        canBeLeftOpenTag: sr,\n                        isReservedTag: In,\n                        getTagNamespace: En,\n                        staticKeys: function(e) {\n                            return e.reduce((function(e, t) {\n                                return e.concat(t.staticKeys || [])\n                            }), []).join(\",\")\n                        }(sa)\n                    },\n                    da = S((function(e) {\n                        return _(\"type,tag,attrsList,attrsMap,plain,parent,children,attrs,start,end,rawAttrsMap\" + (e ? \",\" + e : \"\"))\n                    }));\n\n                function ha(e, t) {\n                    e && (ra = da(t.staticKeys || \"\"), aa = t.isReservedTag || P, ua(e), ga(e, !1))\n                }\n\n                function ua(e) {\n                    if (e.static = function(e) {\n                            if (2 === e.type) return !1;\n                            if (3 === e.type) return !0;\n                            return !(!e.pre && (e.hasBindings || e.if || e.for || b(e.tag) || !aa(e.tag) || function(e) {\n                                for (; e.parent;) {\n                                    if (\"template\" !== (e = e.parent).tag) return !1;\n                                    if (e.for) return !0\n                                }\n                                return !1\n                            }(e) || !Object.keys(e).every(ra)))\n                        }(e), 1 === e.type) {\n                        if (!aa(e.tag) && \"slot\" !== e.tag && null == e.attrsMap[\"inline-template\"]) return;\n                        for (var t = 0, i = e.children.length; t < i; t++) {\n                            var n = e.children[t];\n                            ua(n), n.static || (e.static = !1)\n                        }\n                        if (e.ifConditions)\n                            for (t = 1, i = e.ifConditions.length; t < i; t++) {\n                                var o = e.ifConditions[t].block;\n                                ua(o), o.static || (e.static = !1)\n                            }\n                    }\n                }\n\n                function ga(e, t) {\n                    if (1 === e.type) {\n                        if ((e.static || e.once) && (e.staticInFor = t), e.static && e.children.length && (1 !== e.children.length || 3 !== e.children[0].type)) return void(e.staticRoot = !0);\n                        if (e.staticRoot = !1, e.children)\n                            for (var i = 0, n = e.children.length; i < n; i++) ga(e.children[i], t || !!e.for);\n                        if (e.ifConditions)\n                            for (i = 1, n = e.ifConditions.length; i < n; i++) ga(e.ifConditions[i].block, t)\n                    }\n                }\n                var pa = /^([\\w$_]+|\\([^)]*?\\))\\s*=>|^function(?:\\s+[\\w$]+)?\\s*\\(/,\n                    fa = /\\([^)]*?\\);*$/,\n                    ma = /^[A-Za-z_$][\\w$]*(?:\\.[A-Za-z_$][\\w$]*|\\['[^']*?']|\\[\"[^\"]*?\"]|\\[\\d+]|\\[[A-Za-z_$][\\w$]*])*$/,\n                    va = {\n                        esc: 27,\n                        tab: 9,\n                        enter: 13,\n                        space: 32,\n                        up: 38,\n                        left: 37,\n                        right: 39,\n                        down: 40,\n                        delete: [8, 46]\n                    },\n                    _a = {\n                        esc: [\"Esc\", \"Escape\"],\n                        tab: \"Tab\",\n                        enter: \"Enter\",\n                        space: [\" \", \"Spacebar\"],\n                        up: [\"Up\", \"ArrowUp\"],\n                        left: [\"Left\", \"ArrowLeft\"],\n                        right: [\"Right\", \"ArrowRight\"],\n                        down: [\"Down\", \"ArrowDown\"],\n                        delete: [\"Backspace\", \"Delete\", \"Del\"]\n                    },\n                    ba = function(e) {\n                        return \"if(\".concat(e, \")return null;\")\n                    },\n                    wa = {\n                        stop: \"$event.stopPropagation();\",\n                        prevent: \"$event.preventDefault();\",\n                        self: ba(\"$event.target !== $event.currentTarget\"),\n                        ctrl: ba(\"!$event.ctrlKey\"),\n                        shift: ba(\"!$event.shiftKey\"),\n                        alt: ba(\"!$event.altKey\"),\n                        meta: ba(\"!$event.metaKey\"),\n                        left: ba(\"'button' in $event && $event.button !== 0\"),\n                        middle: ba(\"'button' in $event && $event.button !== 1\"),\n                        right: ba(\"'button' in $event && $event.button !== 2\")\n                    };\n\n                function ya(e, t) {\n                    var i = t ? \"nativeOn:\" : \"on:\",\n                        n = \"\",\n                        o = \"\";\n                    for (var s in e) {\n                        var r = Ca(e[s]);\n                        e[s] && e[s].dynamic ? o += \"\".concat(s, \",\").concat(r, \",\") : n += '\"'.concat(s, '\":').concat(r, \",\")\n                    }\n                    return n = \"{\".concat(n.slice(0, -1), \"}\"), o ? i + \"_d(\".concat(n, \",[\").concat(o.slice(0, -1), \"])\") : i + n\n                }\n\n                function Ca(e) {\n                    if (!e) return \"function(){}\";\n                    if (Array.isArray(e)) return \"[\".concat(e.map((function(e) {\n                        return Ca(e)\n                    })).join(\",\"), \"]\");\n                    var t = ma.test(e.value),\n                        i = pa.test(e.value),\n                        n = ma.test(e.value.replace(fa, \"\"));\n                    if (e.modifiers) {\n                        var o = \"\",\n                            s = \"\",\n                            r = [],\n                            a = function(t) {\n                                if (wa[t]) s += wa[t], va[t] && r.push(t);\n                                else if (\"exact\" === t) {\n                                    var i = e.modifiers;\n                                    s += ba([\"ctrl\", \"shift\", \"alt\", \"meta\"].filter((function(e) {\n                                        return !i[e]\n                                    })).map((function(e) {\n                                        return \"$event.\".concat(e, \"Key\")\n                                    })).join(\"||\"))\n                                } else r.push(t)\n                            };\n                        for (var l in e.modifiers) a(l);\n                        r.length && (o += function(e) {\n                            return \"if(!$event.type.indexOf('key')&&\" + \"\".concat(e.map(xa).join(\"&&\"), \")return null;\")\n                        }(r)), s && (o += s);\n                        var c = t ? \"return \".concat(e.value, \".apply(null, arguments)\") : i ? \"return (\".concat(e.value, \").apply(null, arguments)\") : n ? \"return \".concat(e.value) : e.value;\n                        return \"function($event){\".concat(o).concat(c, \"}\")\n                    }\n                    return t || i ? e.value : \"function($event){\".concat(n ? \"return \".concat(e.value) : e.value, \"}\")\n                }\n\n                function xa(e) {\n                    var t = parseInt(e, 10);\n                    if (t) return \"$event.keyCode!==\".concat(t);\n                    var i = va[e],\n                        n = _a[e];\n                    return \"_k($event.keyCode,\" + \"\".concat(JSON.stringify(e), \",\") + \"\".concat(JSON.stringify(i), \",\") + \"$event.key,\" + \"\".concat(JSON.stringify(n)) + \")\"\n                }\n                var Sa = {\n                        on: function(e, t) {\n                            e.wrapListeners = function(e) {\n                                return \"_g(\".concat(e, \",\").concat(t.value, \")\")\n                            }\n                        },\n                        bind: function(e, t) {\n                            e.wrapData = function(i) {\n                                return \"_b(\".concat(i, \",'\").concat(e.tag, \"',\").concat(t.value, \",\").concat(t.modifiers && t.modifiers.prop ? \"true\" : \"false\").concat(t.modifiers && t.modifiers.sync ? \",true\" : \"\", \")\")\n                            }\n                        },\n                        cloak: O\n                    },\n                    ka = function(e) {\n                        this.options = e, this.warn = e.warn || ho, this.transforms = uo(e.modules, \"transformCode\"), this.dataGenFns = uo(e.modules, \"genData\"), this.directives = M(M({}, Sa), e.directives);\n                        var t = e.isReservedTag || P;\n                        this.maybeComponent = function(e) {\n                            return !!e.component || !t(e.tag)\n                        }, this.onceId = 0, this.staticRenderFns = [], this.pre = !1\n                    };\n\n                function La(e, t) {\n                    var i = new ka(t),\n                        n = e ? \"script\" === e.tag ? \"null\" : Na(e, i) : '_c(\"div\")';\n                    return {\n                        render: \"with(this){return \".concat(n, \"}\"),\n                        staticRenderFns: i.staticRenderFns\n                    }\n                }\n\n                function Na(e, t) {\n                    if (e.parent && (e.pre = e.pre || e.parent.pre), e.staticRoot && !e.staticProcessed) return Da(e, t);\n                    if (e.once && !e.onceProcessed) return Ia(e, t);\n                    if (e.for && !e.forProcessed) return Ma(e, t);\n                    if (e.if && !e.ifProcessed) return Ea(e, t);\n                    if (\"template\" !== e.tag || e.slotTarget || t.pre) {\n                        if (\"slot\" === e.tag) return function(e, t) {\n                            var i = e.slotName || '\"default\"',\n                                n = Ra(e, t),\n                                o = \"_t(\".concat(i).concat(n ? \",function(){return \".concat(n, \"}\") : \"\"),\n                                s = e.attrs || e.dynamicAttrs ? Va((e.attrs || []).concat(e.dynamicAttrs || []).map((function(e) {\n                                    return {\n                                        name: L(e.name),\n                                        value: e.value,\n                                        dynamic: e.dynamic\n                                    }\n                                }))) : null,\n                                r = e.attrsMap[\"v-bind\"];\n                            !s && !r || n || (o += \",null\");\n                            s && (o += \",\".concat(s));\n                            r && (o += \"\".concat(s ? \"\" : \",null\", \",\").concat(r));\n                            return o + \")\"\n                        }(e, t);\n                        var i = void 0;\n                        if (e.component) i = function(e, t, i) {\n                            var n = t.inlineTemplate ? null : Ra(t, i, !0);\n                            return \"_c(\".concat(e, \",\").concat(Aa(t, i)).concat(n ? \",\".concat(n) : \"\", \")\")\n                        }(e.component, e, t);\n                        else {\n                            var n = void 0,\n                                o = t.maybeComponent(e);\n                            (!e.plain || e.pre && o) && (n = Aa(e, t));\n                            var s = void 0,\n                                r = t.options.bindings;\n                            o && r && !1 !== r.__isScriptSetup && (s = function(e, t) {\n                                var i = L(t),\n                                    n = N(i),\n                                    o = function(o) {\n                                        return e[t] === o ? t : e[i] === o ? i : e[n] === o ? n : void 0\n                                    },\n                                    s = o(\"setup-const\") || o(\"setup-reactive-const\");\n                                if (s) return s;\n                                var r = o(\"setup-let\") || o(\"setup-ref\") || o(\"setup-maybe-ref\");\n                                if (r) return r\n                            }(r, e.tag)), s || (s = \"'\".concat(e.tag, \"'\"));\n                            var a = e.inlineTemplate ? null : Ra(e, t, !0);\n                            i = \"_c(\".concat(s).concat(n ? \",\".concat(n) : \"\").concat(a ? \",\".concat(a) : \"\", \")\")\n                        }\n                        for (var l = 0; l < t.transforms.length; l++) i = t.transforms[l](e, i);\n                        return i\n                    }\n                    return Ra(e, t) || \"void 0\"\n                }\n\n                function Da(e, t) {\n                    e.staticProcessed = !0;\n                    var i = t.pre;\n                    return e.pre && (t.pre = e.pre), t.staticRenderFns.push(\"with(this){return \".concat(Na(e, t), \"}\")), t.pre = i, \"_m(\".concat(t.staticRenderFns.length - 1).concat(e.staticInFor ? \",true\" : \"\", \")\")\n                }\n\n                function Ia(e, t) {\n                    if (e.onceProcessed = !0, e.if && !e.ifProcessed) return Ea(e, t);\n                    if (e.staticInFor) {\n                        for (var i = \"\", n = e.parent; n;) {\n                            if (n.for) {\n                                i = n.key;\n                                break\n                            }\n                            n = n.parent\n                        }\n                        return i ? \"_o(\".concat(Na(e, t), \",\").concat(t.onceId++, \",\").concat(i, \")\") : Na(e, t)\n                    }\n                    return Da(e, t)\n                }\n\n                function Ea(e, t, i, n) {\n                    return e.ifProcessed = !0, Ta(e.ifConditions.slice(), t, i, n)\n                }\n\n                function Ta(e, t, i, n) {\n                    if (!e.length) return n || \"_e()\";\n                    var o = e.shift();\n                    return o.exp ? \"(\".concat(o.exp, \")?\").concat(s(o.block), \":\").concat(Ta(e, t, i, n)) : \"\".concat(s(o.block));\n\n                    function s(e) {\n                        return i ? i(e, t) : e.once ? Ia(e, t) : Na(e, t)\n                    }\n                }\n\n                function Ma(e, t, i, n) {\n                    var o = e.for,\n                        s = e.alias,\n                        r = e.iterator1 ? \",\".concat(e.iterator1) : \"\",\n                        a = e.iterator2 ? \",\".concat(e.iterator2) : \"\";\n                    return e.forProcessed = !0, \"\".concat(n || \"_l\", \"((\").concat(o, \"),\") + \"function(\".concat(s).concat(r).concat(a, \"){\") + \"return \".concat((i || Na)(e, t)) + \"})\"\n                }\n\n                function Aa(e, t) {\n                    var i = \"{\",\n                        n = function(e, t) {\n                            var i = e.directives;\n                            if (!i) return;\n                            var n, o, s, r, a = \"directives:[\",\n                                l = !1;\n                            for (n = 0, o = i.length; n < o; n++) {\n                                s = i[n], r = !0;\n                                var c = t.directives[s.name];\n                                c && (r = !!c(e, s, t.warn)), r && (l = !0, a += '{name:\"'.concat(s.name, '\",rawName:\"').concat(s.rawName, '\"').concat(s.value ? \",value:(\".concat(s.value, \"),expression:\").concat(JSON.stringify(s.value)) : \"\").concat(s.arg ? \",arg:\".concat(s.isDynamicArg ? s.arg : '\"'.concat(s.arg, '\"')) : \"\").concat(s.modifiers ? \",modifiers:\".concat(JSON.stringify(s.modifiers)) : \"\", \"},\"))\n                            }\n                            if (l) return a.slice(0, -1) + \"]\"\n                        }(e, t);\n                    n && (i += n + \",\"), e.key && (i += \"key:\".concat(e.key, \",\")), e.ref && (i += \"ref:\".concat(e.ref, \",\")), e.refInFor && (i += \"refInFor:true,\"), e.pre && (i += \"pre:true,\"), e.component && (i += 'tag:\"'.concat(e.tag, '\",'));\n                    for (var o = 0; o < t.dataGenFns.length; o++) i += t.dataGenFns[o](e);\n                    if (e.attrs && (i += \"attrs:\".concat(Va(e.attrs), \",\")), e.props && (i += \"domProps:\".concat(Va(e.props), \",\")), e.events && (i += \"\".concat(ya(e.events, !1), \",\")), e.nativeEvents && (i += \"\".concat(ya(e.nativeEvents, !0), \",\")), e.slotTarget && !e.slotScope && (i += \"slot:\".concat(e.slotTarget, \",\")), e.scopedSlots && (i += \"\".concat(function(e, t, i) {\n                            var n = e.for || Object.keys(t).some((function(e) {\n                                    var i = t[e];\n                                    return i.slotTargetDynamic || i.if || i.for || Oa(i)\n                                })),\n                                o = !!e.if;\n                            if (!n)\n                                for (var s = e.parent; s;) {\n                                    if (s.slotScope && s.slotScope !== qr || s.for) {\n                                        n = !0;\n                                        break\n                                    }\n                                    s.if && (o = !0), s = s.parent\n                                }\n                            var r = Object.keys(t).map((function(e) {\n                                return Pa(t[e], i)\n                            })).join(\",\");\n                            return \"scopedSlots:_u([\".concat(r, \"]\").concat(n ? \",null,true\" : \"\").concat(!n && o ? \",null,false,\".concat(function(e) {\n                                var t = 5381,\n                                    i = e.length;\n                                for (; i;) t = 33 * t ^ e.charCodeAt(--i);\n                                return t >>> 0\n                            }(r)) : \"\", \")\")\n                        }(e, e.scopedSlots, t), \",\")), e.model && (i += \"model:{value:\".concat(e.model.value, \",callback:\").concat(e.model.callback, \",expression:\").concat(e.model.expression, \"},\")), e.inlineTemplate) {\n                        var s = function(e, t) {\n                            var i = e.children[0];\n                            0;\n                            if (i && 1 === i.type) {\n                                var n = La(i, t.options);\n                                return \"inlineTemplate:{render:function(){\".concat(n.render, \"},staticRenderFns:[\").concat(n.staticRenderFns.map((function(e) {\n                                    return \"function(){\".concat(e, \"}\")\n                                })).join(\",\"), \"]}\")\n                            }\n                        }(e, t);\n                        s && (i += \"\".concat(s, \",\"))\n                    }\n                    return i = i.replace(/,$/, \"\") + \"}\", e.dynamicAttrs && (i = \"_b(\".concat(i, ',\"').concat(e.tag, '\",').concat(Va(e.dynamicAttrs), \")\")), e.wrapData && (i = e.wrapData(i)), e.wrapListeners && (i = e.wrapListeners(i)), i\n                }\n\n                function Oa(e) {\n                    return 1 === e.type && (\"slot\" === e.tag || e.children.some(Oa))\n                }\n\n                function Pa(e, t) {\n                    var i = e.attrsMap[\"slot-scope\"];\n                    if (e.if && !e.ifProcessed && !i) return Ea(e, t, Pa, \"null\");\n                    if (e.for && !e.forProcessed) return Ma(e, t, Pa);\n                    var n = e.slotScope === qr ? \"\" : String(e.slotScope),\n                        o = \"function(\".concat(n, \"){\") + \"return \".concat(\"template\" === e.tag ? e.if && i ? \"(\".concat(e.if, \")?\").concat(Ra(e, t) || \"undefined\", \":undefined\") : Ra(e, t) || \"undefined\" : Na(e, t), \"}\"),\n                        s = n ? \"\" : \",proxy:true\";\n                    return \"{key:\".concat(e.slotTarget || '\"default\"', \",fn:\").concat(o).concat(s, \"}\")\n                }\n\n                function Ra(e, t, i, n, o) {\n                    var s = e.children;\n                    if (s.length) {\n                        var r = s[0];\n                        if (1 === s.length && r.for && \"template\" !== r.tag && \"slot\" !== r.tag) {\n                            var a = i ? t.maybeComponent(r) ? \",1\" : \",0\" : \"\";\n                            return \"\".concat((n || Na)(r, t)).concat(a)\n                        }\n                        var l = i ? function(e, t) {\n                                for (var i = 0, n = 0; n < e.length; n++) {\n                                    var o = e[n];\n                                    if (1 === o.type) {\n                                        if (Fa(o) || o.ifConditions && o.ifConditions.some((function(e) {\n                                                return Fa(e.block)\n                                            }))) {\n                                            i = 2;\n                                            break\n                                        }(t(o) || o.ifConditions && o.ifConditions.some((function(e) {\n                                            return t(e.block)\n                                        }))) && (i = 1)\n                                    }\n                                }\n                                return i\n                            }(s, t.maybeComponent) : 0,\n                            c = o || Ba;\n                        return \"[\".concat(s.map((function(e) {\n                            return c(e, t)\n                        })).join(\",\"), \"]\").concat(l ? \",\".concat(l) : \"\")\n                    }\n                }\n\n                function Fa(e) {\n                    return void 0 !== e.for || \"template\" === e.tag || \"slot\" === e.tag\n                }\n\n                function Ba(e, t) {\n                    return 1 === e.type ? Na(e, t) : 3 === e.type && e.isComment ? function(e) {\n                        return \"_e(\".concat(JSON.stringify(e.text), \")\")\n                    }(e) : function(e) {\n                        return \"_v(\".concat(2 === e.type ? e.expression : Wa(JSON.stringify(e.text)), \")\")\n                    }(e)\n                }\n\n                function Va(e) {\n                    for (var t = \"\", i = \"\", n = 0; n < e.length; n++) {\n                        var o = e[n],\n                            s = Wa(o.value);\n                        o.dynamic ? i += \"\".concat(o.name, \",\").concat(s, \",\") : t += '\"'.concat(o.name, '\":').concat(s, \",\")\n                    }\n                    return t = \"{\".concat(t.slice(0, -1), \"}\"), i ? \"_d(\".concat(t, \",[\").concat(i.slice(0, -1), \"])\") : t\n                }\n\n                function Wa(e) {\n                    return e.replace(/\\u2028/g, \"\\\\u2028\").replace(/\\u2029/g, \"\\\\u2029\")\n                }\n                new RegExp(\"\\\\b\" + \"do,if,for,let,new,try,var,case,else,with,await,break,catch,class,const,super,throw,while,yield,delete,export,import,return,switch,default,extends,finally,continue,debugger,function,arguments\".split(\",\").join(\"\\\\b|\\\\b\") + \"\\\\b\"), new RegExp(\"\\\\b\" + \"delete,typeof,void\".split(\",\").join(\"\\\\s*\\\\([^\\\\)]*\\\\)|\\\\b\") + \"\\\\s*\\\\([^\\\\)]*\\\\)\");\n\n                function Ha(e, t) {\n                    try {\n                        return new Function(e)\n                    } catch (i) {\n                        return t.push({\n                            err: i,\n                            code: e\n                        }), O\n                    }\n                }\n\n                function za(e) {\n                    var t = Object.create(null);\n                    return function(i, n, o) {\n                        (n = M({}, n)).warn;\n                        delete n.warn;\n                        var s = n.delimiters ? String(n.delimiters) + i : i;\n                        if (t[s]) return t[s];\n                        var r = e(i, n);\n                        var a = {},\n                            l = [];\n                        return a.render = Ha(r.render, l), a.staticRenderFns = r.staticRenderFns.map((function(e) {\n                            return Ha(e, l)\n                        })), t[s] = a\n                    }\n                }\n                var ja, Ua, $a = (ja = function(e, t) {\n                        var i = Gr(e.trim(), t);\n                        !1 !== t.optimize && ha(i, t);\n                        var n = La(i, t);\n                        return {\n                            ast: i,\n                            render: n.render,\n                            staticRenderFns: n.staticRenderFns\n                        }\n                    }, function(e) {\n                        function t(t, i) {\n                            var n = Object.create(e),\n                                o = [],\n                                s = [];\n                            if (i)\n                                for (var r in i.modules && (n.modules = (e.modules || []).concat(i.modules)), i.directives && (n.directives = M(Object.create(e.directives || null), i.directives)), i) \"modules\" !== r && \"directives\" !== r && (n[r] = i[r]);\n                            n.warn = function(e, t, i) {\n                                (i ? s : o).push(e)\n                            };\n                            var a = ja(t.trim(), n);\n                            return a.errors = o, a.tips = s, a\n                        }\n                        return {\n                            compile: t,\n                            compileToFunctions: za(t)\n                        }\n                    }),\n                    Ka = $a(ca).compileToFunctions;\n\n                function qa(e) {\n                    return (Ua = Ua || document.createElement(\"div\")).innerHTML = e ? '<a href=\"\\n\"/>' : '<div a=\"\\n\"/>', Ua.innerHTML.indexOf(\"&#10;\") > 0\n                }\n                var Za = !!Y && qa(!1),\n                    Ga = !!Y && qa(!0),\n                    Ya = S((function(e) {\n                        var t = An(e);\n                        return t && t.innerHTML\n                    })),\n                    Qa = tn.prototype.$mount;\n                tn.prototype.$mount = function(e, t) {\n                    if ((e = e && An(e)) === document.body || e === document.documentElement) return this;\n                    var i = this.$options;\n                    if (!i.render) {\n                        var n = i.template;\n                        if (n)\n                            if (\"string\" == typeof n) \"#\" === n.charAt(0) && (n = Ya(n));\n                            else {\n                                if (!n.nodeType) return this;\n                                n = n.innerHTML\n                            }\n                        else e && (n = function(e) {\n                            if (e.outerHTML) return e.outerHTML;\n                            var t = document.createElement(\"div\");\n                            return t.appendChild(e.cloneNode(!0)), t.innerHTML\n                        }(e));\n                        if (n) {\n                            0;\n                            var o = Ka(n, {\n                                    outputSourceRange: !1,\n                                    shouldDecodeNewlines: Za,\n                                    shouldDecodeNewlinesForHref: Ga,\n                                    delimiters: i.delimiters,\n                                    comments: i.comments\n                                }, this),\n                                s = o.render,\n                                r = o.staticRenderFns;\n                            i.render = s, i.staticRenderFns = r\n                        }\n                    }\n                    return Qa.call(this, e, t)\n                }, tn.compile = Ka\n            },\n            63878: (e, t, i) => {\n                var n = {\n                    \"./service_darwin\": 44224,\n                    \"./service_darwin.js\": 44224,\n                    \"./service_linux\": 33130,\n                    \"./service_linux.js\": 33130,\n                    \"./service_win32\": 34668,\n                    \"./service_win32.js\": 34668\n                };\n\n                function o(e) {\n                    var t = s(e);\n                    return i(t)\n                }\n\n                function s(e) {\n                    if (!i.o(n, e)) {\n                        var t = new Error(\"Cannot find module '\" + e + \"'\");\n                        throw t.code = \"MODULE_NOT_FOUND\", t\n                    }\n                    return n[e]\n                }\n                o.keys = function() {\n                    return Object.keys(n)\n                }, o.resolve = s, e.exports = o, o.id = 63878\n            },\n            20667: (e, t, i) => {\n                var n = {\n                    \"./alert.vue\": 31091,\n                    \"./code.vue\": 97889,\n                    \"./diff.vue\": 7905,\n                    \"./dns.vue\": 29250,\n                    \"./input.vue\": 7249,\n                    \"./menu.vue\": 37142,\n                    \"./script.vue\": 95539,\n                    \"./select.vue\": 1833,\n                    \"./toast.vue\": 38263\n                };\n\n                function o(e) {\n                    var t = s(e);\n                    return i(t)\n                }\n\n                function s(e) {\n                    if (!i.o(n, e)) {\n                        var t = new Error(\"Cannot find module '\" + e + \"'\");\n                        throw t.code = \"MODULE_NOT_FOUND\", t\n                    }\n                    return n[e]\n                }\n                o.keys = function() {\n                    return Object.keys(n)\n                }, o.resolve = s, e.exports = o, o.id = 20667\n            },\n            54265: (e, t, i) => {\n                var n = {\n                    \"./app.js\": 23726,\n                    \"./index.js\": 11068\n                };\n\n                function o(e) {\n                    var t = s(e);\n                    return i(t)\n                }\n\n                function s(e) {\n                    if (!i.o(n, e)) {\n                        var t = new Error(\"Cannot find module '\" + e + \"'\");\n                        throw t.code = \"MODULE_NOT_FOUND\", t\n                    }\n                    return n[e]\n                }\n                o.keys = function() {\n                    return Object.keys(n)\n                }, o.resolve = s, e.exports = o, o.id = 54265\n            },\n            94748: e => {\n                \"use strict\";\n                e.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAYAAACp8Z5+AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAZdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjAuMTZEaa/1AAAAHUlEQVQYV2PYvXu3JAi7uLiAMaYAjAGTQBPYLQkAa/0Zef3qRswAAAAASUVORK5CYII=\"\n            },\n            4768: e => {\n                \"use strict\";\n                e.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1+jfqAAAAL0lEQVQoz2NgCD3x//9/BhBYBWdhgFVAiVW4JBFKGIa4AqD0//9D3pt4I4tAdAMAHTQ/j5Zom30AAAAASUVORK5CYII=\"\n            },\n            35555: e => {\n                \"use strict\";\n                e.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAQAAADZc7J/AAAAz0lEQVRIx2NgYGBY/R8I/vx5eelX3n82IJ9FxGf6tksvf/8FiTMQAcAGQMDvSwu09abffY8QYSAScNk45G198eX//yev73/4///701eh//kZSARckrNBRvz//+8+6ZohwCzjGNjdgQxkAg7B9WADeBjIBqtJCbhRA0YNoIkBSNmaPEMoNmA0FkYNoFKhapJ6FGyAH3nauaSmPfwI0v/3OukVi0CIZ+F25KrtYcx/CTIy0e+rC7R1Z4KMICVTQQ14feVXIbR695u14+Ir4gwAAD49E54wc1kWAAAAAElFTkSuQmCC\"\n            },\n            6161: e => {\n                \"use strict\";\n                e.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTMiIGhlaWdodD0iMzYiIHZpZXdCb3g9IjAgMCA1MyAzNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwKSI+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNNDguMDM2NCA0LjAxMDQySDQuMDA3NzlMNC4wMDc3OSAzMi4wMjg2SDQ4LjAzNjRWNC4wMTA0MlpNNC4wMDc3OSAwLjAwNzgxMjVDMS43OTcyMSAwLjAwNzgxMjUgMC4wMDUxODc5OSAxLjc5OTg0IDAuMDA1MTg3OTkgNC4wMTA0MlYzMi4wMjg2QzAuMDA1MTg3OTkgMzQuMjM5MiAxLjc5NzIxIDM2LjAzMTIgNC4wMDc3OSAzNi4wMzEySDQ4LjAzNjRDNTAuMjQ3IDM2LjAzMTIgNTIuMDM5IDM0LjIzOTIgNTIuMDM5IDMyLjAyODZWNC4wMTA0MkM1Mi4wMzkgMS43OTk4NCA1MC4yNDcgMC4wMDc4MTI1IDQ4LjAzNjQgMC4wMDc4MTI1SDQuMDA3NzlaTTguMDEwNDIgOC4wMTMwMkgxMi4wMTNWMTIuMDE1Nkg4LjAxMDQyVjguMDEzMDJaTTIwLjAxODIgOC4wMTMwMkgxNi4wMTU2VjEyLjAxNTZIMjAuMDE4MlY4LjAxMzAyWk0yNC4wMjA4IDguMDEzMDJIMjguMDIzNFYxMi4wMTU2SDI0LjAyMDhWOC4wMTMwMlpNMzYuMDI4NiA4LjAxMzAySDMyLjAyNlYxMi4wMTU2SDM2LjAyODZWOC4wMTMwMlpNNDAuMDMxMiA4LjAxMzAySDQ0LjAzMzlWMTIuMDE1Nkg0MC4wMzEyVjguMDEzMDJaTTE2LjAxNTYgMTYuMDE4Mkg4LjAxMDQyVjIwLjAyMDhIMTYuMDE1NlYxNi4wMTgyWk0yMC4wMTgyIDE2LjAxODJIMjQuMDIwOFYyMC4wMjA4SDIwLjAxODJWMTYuMDE4MlpNMzIuMDI2IDE2LjAxODJIMjguMDIzNFYyMC4wMjA4SDMyLjAyNlYxNi4wMTgyWk00NC4wMzM5IDE2LjAxODJWMjAuMDIwOEgzNi4wMjg2VjE2LjAxODJINDQuMDMzOVpNMTIuMDEzIDI0LjAyMzRIOC4wMTA0MlYyOC4wMjZIMTIuMDEzVjI0LjAyMzRaTTE2LjAxNTYgMjQuMDIzNEgzNi4wMjg2VjI4LjAyNkgxNi4wMTU2VjI0LjAyMzRaTTQ0LjAzMzkgMjQuMDIzNEg0MC4wMzEyVjI4LjAyNkg0NC4wMzM5VjI0LjAyMzRaIiBmaWxsPSIjNDI0MjQyIi8+CjwvZz4KPGRlZnM+CjxjbGlwUGF0aCBpZD0iY2xpcDAiPgo8cmVjdCB3aWR0aD0iNTMiIGhlaWdodD0iMzYiIGZpbGw9IndoaXRlIi8+CjwvY2xpcFBhdGg+CjwvZGVmcz4KPC9zdmc+Cg==\"\n            },\n            51096: e => {\n                \"use strict\";\n                e.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTMiIGhlaWdodD0iMzYiIHZpZXdCb3g9IjAgMCA1MyAzNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwKSI+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNNDguMDM2NCA0LjAxMDQySDQuMDA3NzlMNC4wMDc3OSAzMi4wMjg2SDQ4LjAzNjRWNC4wMTA0MlpNNC4wMDc3OSAwLjAwNzgxMjVDMS43OTcyMSAwLjAwNzgxMjUgMC4wMDUxODc5OSAxLjc5OTg0IDAuMDA1MTg3OTkgNC4wMTA0MlYzMi4wMjg2QzAuMDA1MTg3OTkgMzQuMjM5MiAxLjc5NzIxIDM2LjAzMTIgNC4wMDc3OSAzNi4wMzEySDQ4LjAzNjRDNTAuMjQ3IDM2LjAzMTIgNTIuMDM5IDM0LjIzOTIgNTIuMDM5IDMyLjAyODZWNC4wMTA0MkM1Mi4wMzkgMS43OTk4NCA1MC4yNDcgMC4wMDc4MTI1IDQ4LjAzNjQgMC4wMDc4MTI1SDQuMDA3NzlaTTguMDEwNDIgOC4wMTMwMkgxMi4wMTNWMTIuMDE1Nkg4LjAxMDQyVjguMDEzMDJaTTIwLjAxODIgOC4wMTMwMkgxNi4wMTU2VjEyLjAxNTZIMjAuMDE4MlY4LjAxMzAyWk0yNC4wMjA4IDguMDEzMDJIMjguMDIzNFYxMi4wMTU2SDI0LjAyMDhWOC4wMTMwMlpNMzYuMDI4NiA4LjAxMzAySDMyLjAyNlYxMi4wMTU2SDM2LjAyODZWOC4wMTMwMlpNNDAuMDMxMiA4LjAxMzAySDQ0LjAzMzlWMTIuMDE1Nkg0MC4wMzEyVjguMDEzMDJaTTE2LjAxNTYgMTYuMDE4Mkg4LjAxMDQyVjIwLjAyMDhIMTYuMDE1NlYxNi4wMTgyWk0yMC4wMTgyIDE2LjAxODJIMjQuMDIwOFYyMC4wMjA4SDIwLjAxODJWMTYuMDE4MlpNMzIuMDI2IDE2LjAxODJIMjguMDIzNFYyMC4wMjA4SDMyLjAyNlYxNi4wMTgyWk00NC4wMzM5IDE2LjAxODJWMjAuMDIwOEgzNi4wMjg2VjE2LjAxODJINDQuMDMzOVpNMTIuMDEzIDI0LjAyMzRIOC4wMTA0MlYyOC4wMjZIMTIuMDEzVjI0LjAyMzRaTTE2LjAxNTYgMjQuMDIzNEgzNi4wMjg2VjI4LjAyNkgxNi4wMTU2VjI0LjAyMzRaTTQ0LjAzMzkgMjQuMDIzNEg0MC4wMzEyVjI4LjAyNkg0NC4wMzM5VjI0LjAyMzRaIiBmaWxsPSIjQzVDNUM1Ii8+CjwvZz4KPGRlZnM+CjxjbGlwUGF0aCBpZD0iY2xpcDAiPgo8cmVjdCB3aWR0aD0iNTMiIGhlaWdodD0iMzYiIGZpbGw9IndoaXRlIi8+CjwvY2xpcFBhdGg+CjwvZGVmcz4KPC9zdmc+Cg==\"\n            },\n            73251: (e, t, i) => {\n                \"use strict\";\n                e.exports = i.p + \"fonts/codicon..ttf\"\n            },\n            49944: (e, t, i) => {\n                \"use strict\";\n                e.exports = i.p + \"fonts/MaterialIcons-Regular..woff2\"\n            },\n            9665: (e, t, i) => {\n                \"use strict\";\n                e.exports = i.p + \"fonts/TwemojiMozilla..ttf\"\n            },\n            72378: e => {\n                \"use strict\";\n                e.exports = require(\"@vscode/sudo-prompt\")\n            },\n            54387: e => {\n                \"use strict\";\n                e.exports = require(\"axios\")\n            },\n            86173: e => {\n                \"use strict\";\n                e.exports = require(\"electron-log\")\n            },\n            97495: e => {\n                \"use strict\";\n                e.exports = require(\"get-port\")\n            },\n            71893: e => {\n                \"use strict\";\n                e.exports = require(\"got\")\n            },\n            15208: e => {\n                \"use strict\";\n                e.exports = require(\"koa\")\n            },\n            24793: e => {\n                \"use strict\";\n                e.exports = require(\"lodash\")\n            },\n            10605: e => {\n                \"use strict\";\n                e.exports = require(\"moment\")\n            },\n            36267: e => {\n                \"use strict\";\n                e.exports = require(\"mousetrap\")\n            },\n            75110: e => {\n                \"use strict\";\n                e.exports = require(\"require-from-string\")\n            },\n            48567: e => {\n                \"use strict\";\n                e.exports = require(\"unix-cron\")\n            },\n            251: e => {\n                \"use strict\";\n                e.exports = require(\"uuid\")\n            },\n            26400: e => {\n                \"use strict\";\n                e.exports = require(\"vue-electron\")\n            },\n            51109: e => {\n                \"use strict\";\n                e.exports = require(\"vuedraggable\")\n            },\n            23321: e => {\n                \"use strict\";\n                e.exports = require(\"vuex\")\n            },\n            56796: e => {\n                \"use strict\";\n                e.exports = require(\"ws\")\n            },\n            11442: e => {\n                \"use strict\";\n                e.exports = require(\"yaml\")\n            },\n            32081: e => {\n                \"use strict\";\n                e.exports = require(\"child_process\")\n            },\n            96206: e => {\n                \"use strict\";\n                e.exports = require(\"console\")\n            },\n            72298: e => {\n                \"use strict\";\n                e.exports = require(\"electron\")\n            },\n            57147: e => {\n                \"use strict\";\n                e.exports = require(\"fs\")\n            },\n            41808: e => {\n                \"use strict\";\n                e.exports = require(\"net\")\n            },\n            22037: e => {\n                \"use strict\";\n                e.exports = require(\"os\")\n            },\n            71017: e => {\n                \"use strict\";\n                e.exports = require(\"path\")\n            }\n        },\n        n = {};\n\n    function o(e) {\n        var t = n[e];\n        if (void 0 !== t) return t.exports;\n        var s = n[e] = {\n            id: e,\n            loaded: !1,\n            exports: {}\n        };\n        return i[e](s, s.exports, o), s.loaded = !0, s.exports\n    }\n    o.m = i, o.amdO = {}, o.n = e => {\n        var t = e && e.__esModule ? () => e.default : () => e;\n        return o.d(t, {\n            a: t\n        }), t\n    }, o.d = (e, t) => {\n        for (var i in t) o.o(t, i) && !o.o(e, i) && Object.defineProperty(e, i, {\n            enumerable: !0,\n            get: t[i]\n        })\n    }, o.f = {}, o.e = e => Promise.all(Object.keys(o.f).reduce(((t, i) => (o.f[i](e, t), t)), [])), o.u = e => e + \".js\", o.miniCssF = e => {}, o.g = function() {\n        if (\"object\" == typeof globalThis) return globalThis;\n        try {\n            return this || new Function(\"return this\")()\n        } catch (e) {\n            if (\"object\" == typeof window) return window\n        }\n    }(), o.hmd = e => ((e = Object.create(e)).children || (e.children = []), Object.defineProperty(e, \"exports\", {\n        enumerable: !0,\n        set: () => {\n            throw new Error(\"ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: \" + e.id)\n        }\n    }), e), o.o = (e, t) => Object.prototype.hasOwnProperty.call(e, t), e = {}, t = \"clash_win:\", o.l = (i, n, s, r) => {\n        if (e[i]) e[i].push(n);\n        else {\n            var a, l;\n            if (void 0 !== s)\n                for (var c = document.getElementsByTagName(\"script\"), d = 0; d < c.length; d++) {\n                    var h = c[d];\n                    if (h.getAttribute(\"src\") == i || h.getAttribute(\"data-webpack\") == t + s) {\n                        a = h;\n                        break\n                    }\n                }\n            a || (l = !0, (a = document.createElement(\"script\")).charset = \"utf-8\", a.timeout = 120, o.nc && a.setAttribute(\"nonce\", o.nc), a.setAttribute(\"data-webpack\", t + s), a.src = i), e[i] = [n];\n            var u = (t, n) => {\n                    a.onerror = a.onload = null, clearTimeout(g);\n                    var o = e[i];\n                    if (delete e[i], a.parentNode && a.parentNode.removeChild(a), o && o.forEach((e => e(n))), t) return t(n)\n                },\n                g = setTimeout(u.bind(null, void 0, {\n                    type: \"timeout\",\n                    target: a\n                }), 12e4);\n            a.onerror = u.bind(null, a.onerror), a.onload = u.bind(null, a.onload), l && document.head.appendChild(a)\n        }\n    }, o.r = e => {\n        \"undefined\" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e, Symbol.toStringTag, {\n            value: \"Module\"\n        }), Object.defineProperty(e, \"__esModule\", {\n            value: !0\n        })\n    }, (() => {\n        var e;\n        o.g.importScripts && (e = o.g.location + \"\");\n        var t = o.g.document;\n        if (!e && t && (t.currentScript && (e = t.currentScript.src), !e)) {\n            var i = t.getElementsByTagName(\"script\");\n            if (i.length)\n                for (var n = i.length - 1; n > -1 && !e;) e = i[n--].src\n        }\n        if (!e) throw new Error(\"Automatic publicPath is not supported in this browser\");\n        e = e.replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\"), o.p = e\n    })(), (() => {\n        o.b = document.baseURI || self.location.href;\n        var e = {\n            401: 0\n        };\n        o.f.j = (t, i) => {\n            var n = o.o(e, t) ? e[t] : void 0;\n            if (0 !== n)\n                if (n) i.push(n[2]);\n                else {\n                    var s = new Promise(((i, o) => n = e[t] = [i, o]));\n                    i.push(n[2] = s);\n                    var r = o.p + o.u(t),\n                        a = new Error;\n                    o.l(r, (i => {\n                        if (o.o(e, t) && (0 !== (n = e[t]) && (e[t] = void 0), n)) {\n                            var s = i && (\"load\" === i.type ? \"missing\" : i.type),\n                                r = i && i.target && i.target.src;\n                            a.message = \"正在加载 chunk \" + t + \" failed.\\n(\" + s + \": \" + r + \")\", a.name = \"ChunkLoadError\", a.type = s, a.request = r, n[1](a)\n                        }\n                    }), \"chunk-\" + t, t)\n                }\n        };\n        var t = (t, i) => {\n                var n, s, [r, a, l] = i,\n                    c = 0;\n                if (r.some((t => 0 !== e[t]))) {\n                    for (n in a) o.o(a, n) && (o.m[n] = a[n]);\n                    if (l) l(o)\n                }\n                for (t && t(i); c < r.length; c++) s = r[c], o.o(e, s) && e[s] && e[s][0](), e[s] = 0\n            },\n            i = global.webpackChunkclash_win = global.webpackChunkclash_win || [];\n        i.forEach(t.bind(null, 0)), i.push = t.bind(null, i.push.bind(i))\n    })();\n    var s = {};\n    (() => {\n        \"use strict\";\n        o.r(s);\n        var e = {};\n        o.r(e), o.d(e, {\n            install: () => y\n        });\n        var t = {};\n        o.r(t), o.d(t, {\n            install: () => A\n        });\n        var i = {};\n        o.r(i), o.d(i, {\n            install: () => U\n        });\n        var n = o(48926),\n            r = o.n(n),\n            a = o(59713),\n            l = o.n(a),\n            c = o(87757),\n            d = o.n(c),\n            h = o(70538),\n            u = (o(30547), o(72298)),\n            g = o(83566);\n        const p = {\n            name: \"Clash\",\n            watch: {\n                theme: {\n                    immediate: !0,\n                    handler: function(e) {\n                        document.body.className = \"theme-\".concat(e)\n                    }\n                }\n            }\n        };\n        o(21241);\n        const f = (0, o(51900).Z)(p, (function() {\n                var e = this._self._c;\n                return e(\"div\", {\n                    attrs: {\n                        id: \"app\"\n                    }\n                }, [e(\"router-view\")], 1)\n            }), [], !1, null, null, null).exports,\n            m = require(\"vue-router\");\n        var v = o.n(m);\n        h.ZP.use(v());\n        const _ = new(v())({\n            routes: [{\n                path: \"/home\",\n                name: \"landing-page\",\n                component: o(42016).Z,\n                children: [{\n                    path: \"general\",\n                    component: o(72797).Z,\n                    meta: {\n                        keepAlive: !0\n                    }\n                }, {\n                    path: \"proxy\",\n                    component: o(72094).Z,\n                    meta: {\n                        keepAlive: !0\n                    }\n                }, {\n                    path: \"provider\",\n                    component: o(38585).Z,\n                    meta: {\n                        keepAlive: !0\n                    }\n                }, {\n                    path: \"log\",\n                    component: o(11969).Z\n                }, {\n                    path: \"server\",\n                    component: o(74775).Z,\n                    meta: {\n                        keepAlive: !0\n                    }\n                }, {\n                    path: \"connection\",\n                    component: o(14196).Z,\n                    meta: {\n                        keepAlive: !0\n                    }\n                }, {\n                    path: \"router\",\n                    component: o(28779).Z,\n                    meta: {\n                        keepAlive: !0\n                    }\n                }, {\n                    path: \"setting\",\n                    component: o(99876).Z,\n                    meta: {\n                        keepAlive: !0\n                    }\n                }, {\n                    path: \"about\",\n                    component: o(58323).Z,\n                    meta: {\n                        keepAlive: !0\n                    }\n                }]\n            }, {\n                path: \"*\",\n                redirect: \"/home/general\"\n            }],\n            saveScrollPosition: !0\n        });\n        var b = o(59273),\n            w = /(?:\\ud83d\\udc68\\ud83c\\udffb\\u200d\\ud83e\\udd1d\\u200d\\ud83d\\udc68\\ud83c[\\udffc-\\udfff]|\\ud83d\\udc68\\ud83c\\udffc\\u200d\\ud83e\\udd1d\\u200d\\ud83d\\udc68\\ud83c[\\udffb\\udffd-\\udfff]|\\ud83d\\udc68\\ud83c\\udffd\\u200d\\ud83e\\udd1d\\u200d\\ud83d\\udc68\\ud83c[\\udffb\\udffc\\udffe\\udfff]|\\ud83d\\udc68\\ud83c\\udffe\\u200d\\ud83e\\udd1d\\u200d\\ud83d\\udc68\\ud83c[\\udffb-\\udffd\\udfff]|\\ud83d\\udc68\\ud83c\\udfff\\u200d\\ud83e\\udd1d\\u200d\\ud83d\\udc68\\ud83c[\\udffb-\\udffe]|\\ud83d\\udc69\\ud83c\\udffb\\u200d\\ud83e\\udd1d\\u200d\\ud83d\\udc68\\ud83c[\\udffc-\\udfff]|\\ud83d\\udc69\\ud83c\\udffb\\u200d\\ud83e\\udd1d\\u200d\\ud83d\\udc69\\ud83c[\\udffc-\\udfff]|\\ud83d\\udc69\\ud83c\\udffc\\u200d\\ud83e\\udd1d\\u200d\\ud83d\\udc68\\ud83c[\\udffb\\udffd-\\udfff]|\\ud83d\\udc69\\ud83c\\udffc\\u200d\\ud83e\\udd1d\\u200d\\ud83d\\udc69\\ud83c[\\udffb\\udffd-\\udfff]|\\ud83d\\udc69\\ud83c\\udffd\\u200d\\ud83e\\udd1d\\u200d\\ud83d\\udc68\\ud83c[\\udffb\\udffc\\udffe\\udfff]|\\ud83d\\udc69\\ud83c\\udffd\\u200d\\ud83e\\udd1d\\u200d\\ud83d\\udc69\\ud83c[\\udffb\\udffc\\udffe\\udfff]|\\ud83d\\udc69\\ud83c\\udffe\\u200d\\ud83e\\udd1d\\u200d\\ud83d\\udc68\\ud83c[\\udffb-\\udffd\\udfff]|\\ud83d\\udc69\\ud83c\\udffe\\u200d\\ud83e\\udd1d\\u200d\\ud83d\\udc69\\ud83c[\\udffb-\\udffd\\udfff]|\\ud83d\\udc69\\ud83c\\udfff\\u200d\\ud83e\\udd1d\\u200d\\ud83d\\udc68\\ud83c[\\udffb-\\udffe]|\\ud83d\\udc69\\ud83c\\udfff\\u200d\\ud83e\\udd1d\\u200d\\ud83d\\udc69\\ud83c[\\udffb-\\udffe]|\\ud83e\\uddd1\\ud83c\\udffb\\u200d\\ud83e\\udd1d\\u200d\\ud83e\\uddd1\\ud83c[\\udffb-\\udfff]|\\ud83e\\uddd1\\ud83c\\udffc\\u200d\\ud83e\\udd1d\\u200d\\ud83e\\uddd1\\ud83c[\\udffb-\\udfff]|\\ud83e\\uddd1\\ud83c\\udffd\\u200d\\ud83e\\udd1d\\u200d\\ud83e\\uddd1\\ud83c[\\udffb-\\udfff]|\\ud83e\\uddd1\\ud83c\\udffe\\u200d\\ud83e\\udd1d\\u200d\\ud83e\\uddd1\\ud83c[\\udffb-\\udfff]|\\ud83e\\uddd1\\ud83c\\udfff\\u200d\\ud83e\\udd1d\\u200d\\ud83e\\uddd1\\ud83c[\\udffb-\\udfff]|\\ud83e\\uddd1\\u200d\\ud83e\\udd1d\\u200d\\ud83e\\uddd1|\\ud83d\\udc6b\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc6c\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc6d\\ud83c[\\udffb-\\udfff]|\\ud83d[\\udc6b-\\udc6d])|(?:\\ud83d[\\udc68\\udc69]|\\ud83e\\uddd1)(?:\\ud83c[\\udffb-\\udfff])?\\u200d(?:\\u2695\\ufe0f|\\u2696\\ufe0f|\\u2708\\ufe0f|\\ud83c[\\udf3e\\udf73\\udf93\\udfa4\\udfa8\\udfeb\\udfed]|\\ud83d[\\udcbb\\udcbc\\udd27\\udd2c\\ude80\\ude92]|\\ud83e[\\uddaf-\\uddb3\\uddbc\\uddbd])|(?:\\ud83c[\\udfcb\\udfcc]|\\ud83d[\\udd74\\udd75]|\\u26f9)((?:\\ud83c[\\udffb-\\udfff]|\\ufe0f)\\u200d[\\u2640\\u2642]\\ufe0f)|(?:\\ud83c[\\udfc3\\udfc4\\udfca]|\\ud83d[\\udc6e\\udc71\\udc73\\udc77\\udc81\\udc82\\udc86\\udc87\\ude45-\\ude47\\ude4b\\ude4d\\ude4e\\udea3\\udeb4-\\udeb6]|\\ud83e[\\udd26\\udd35\\udd37-\\udd39\\udd3d\\udd3e\\uddb8\\uddb9\\uddcd-\\uddcf\\uddd6-\\udddd])(?:\\ud83c[\\udffb-\\udfff])?\\u200d[\\u2640\\u2642]\\ufe0f|(?:\\ud83d\\udc68\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc8b\\u200d\\ud83d\\udc68|\\ud83d\\udc68\\u200d\\ud83d\\udc68\\u200d\\ud83d\\udc66\\u200d\\ud83d\\udc66|\\ud83d\\udc68\\u200d\\ud83d\\udc68\\u200d\\ud83d\\udc67\\u200d\\ud83d[\\udc66\\udc67]|\\ud83d\\udc68\\u200d\\ud83d\\udc69\\u200d\\ud83d\\udc66\\u200d\\ud83d\\udc66|\\ud83d\\udc68\\u200d\\ud83d\\udc69\\u200d\\ud83d\\udc67\\u200d\\ud83d[\\udc66\\udc67]|\\ud83d\\udc69\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc8b\\u200d\\ud83d[\\udc68\\udc69]|\\ud83d\\udc69\\u200d\\ud83d\\udc69\\u200d\\ud83d\\udc66\\u200d\\ud83d\\udc66|\\ud83d\\udc69\\u200d\\ud83d\\udc69\\u200d\\ud83d\\udc67\\u200d\\ud83d[\\udc66\\udc67]|\\ud83d\\udc68\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc68|\\ud83d\\udc68\\u200d\\ud83d\\udc66\\u200d\\ud83d\\udc66|\\ud83d\\udc68\\u200d\\ud83d\\udc67\\u200d\\ud83d[\\udc66\\udc67]|\\ud83d\\udc68\\u200d\\ud83d\\udc68\\u200d\\ud83d[\\udc66\\udc67]|\\ud83d\\udc68\\u200d\\ud83d\\udc69\\u200d\\ud83d[\\udc66\\udc67]|\\ud83d\\udc69\\u200d\\u2764\\ufe0f\\u200d\\ud83d[\\udc68\\udc69]|\\ud83d\\udc69\\u200d\\ud83d\\udc66\\u200d\\ud83d\\udc66|\\ud83d\\udc69\\u200d\\ud83d\\udc67\\u200d\\ud83d[\\udc66\\udc67]|\\ud83d\\udc69\\u200d\\ud83d\\udc69\\u200d\\ud83d[\\udc66\\udc67]|\\ud83c\\udff3\\ufe0f\\u200d\\u26a7\\ufe0f|\\ud83c\\udff3\\ufe0f\\u200d\\ud83c\\udf08|\\ud83c\\udff4\\u200d\\u2620\\ufe0f|\\ud83d\\udc15\\u200d\\ud83e\\uddba|\\ud83d\\udc41\\u200d\\ud83d\\udde8|\\ud83d\\udc68\\u200d\\ud83d[\\udc66\\udc67]|\\ud83d\\udc69\\u200d\\ud83d[\\udc66\\udc67]|\\ud83d\\udc6f\\u200d\\u2640\\ufe0f|\\ud83d\\udc6f\\u200d\\u2642\\ufe0f|\\ud83e\\udd3c\\u200d\\u2640\\ufe0f|\\ud83e\\udd3c\\u200d\\u2642\\ufe0f|\\ud83e\\uddde\\u200d\\u2640\\ufe0f|\\ud83e\\uddde\\u200d\\u2642\\ufe0f|\\ud83e\\udddf\\u200d\\u2640\\ufe0f|\\ud83e\\udddf\\u200d\\u2642\\ufe0f)|[#*0-9]\\ufe0f?\\u20e3|(?:[©®\\u2122\\u265f]\\ufe0f)|(?:\\ud83c[\\udc04\\udd70\\udd71\\udd7e\\udd7f\\ude02\\ude1a\\ude2f\\ude37\\udf21\\udf24-\\udf2c\\udf36\\udf7d\\udf96\\udf97\\udf99-\\udf9b\\udf9e\\udf9f\\udfcd\\udfce\\udfd4-\\udfdf\\udff3\\udff5\\udff7]|\\ud83d[\\udc3f\\udc41\\udcfd\\udd49\\udd4a\\udd6f\\udd70\\udd73\\udd76-\\udd79\\udd87\\udd8a-\\udd8d\\udda5\\udda8\\uddb1\\uddb2\\uddbc\\uddc2-\\uddc4\\uddd1-\\uddd3\\udddc-\\uddde\\udde1\\udde3\\udde8\\uddef\\uddf3\\uddfa\\udecb\\udecd-\\udecf\\udee0-\\udee5\\udee9\\udef0\\udef3]|[\\u203c\\u2049\\u2139\\u2194-\\u2199\\u21a9\\u21aa\\u231a\\u231b\\u2328\\u23cf\\u23ed-\\u23ef\\u23f1\\u23f2\\u23f8-\\u23fa\\u24c2\\u25aa\\u25ab\\u25b6\\u25c0\\u25fb-\\u25fe\\u2600-\\u2604\\u260e\\u2611\\u2614\\u2615\\u2618\\u2620\\u2622\\u2623\\u2626\\u262a\\u262e\\u262f\\u2638-\\u263a\\u2640\\u2642\\u2648-\\u2653\\u2660\\u2663\\u2665\\u2666\\u2668\\u267b\\u267f\\u2692-\\u2697\\u2699\\u269b\\u269c\\u26a0\\u26a1\\u26a7\\u26aa\\u26ab\\u26b0\\u26b1\\u26bd\\u26be\\u26c4\\u26c5\\u26c8\\u26cf\\u26d1\\u26d3\\u26d4\\u26e9\\u26ea\\u26f0-\\u26f5\\u26f8\\u26fa\\u26fd\\u2702\\u2708\\u2709\\u270f\\u2712\\u2714\\u2716\\u271d\\u2721\\u2733\\u2734\\u2744\\u2747\\u2757\\u2763\\u2764\\u27a1\\u2934\\u2935\\u2b05-\\u2b07\\u2b1b\\u2b1c\\u2b50\\u2b55\\u3030\\u303d\\u3297\\u3299])(?:\\ufe0f|(?!\\ufe0e))|(?:(?:\\ud83c[\\udfcb\\udfcc]|\\ud83d[\\udd74\\udd75\\udd90]|[\\u261d\\u26f7\\u26f9\\u270c\\u270d])(?:\\ufe0f|(?!\\ufe0e))|(?:\\ud83c[\\udf85\\udfc2-\\udfc4\\udfc7\\udfca]|\\ud83d[\\udc42\\udc43\\udc46-\\udc50\\udc66-\\udc69\\udc6e\\udc70-\\udc78\\udc7c\\udc81-\\udc83\\udc85-\\udc87\\udcaa\\udd7a\\udd95\\udd96\\ude45-\\ude47\\ude4b-\\ude4f\\udea3\\udeb4-\\udeb6\\udec0\\udecc]|\\ud83e[\\udd0f\\udd18-\\udd1c\\udd1e\\udd1f\\udd26\\udd30-\\udd39\\udd3d\\udd3e\\uddb5\\uddb6\\uddb8\\uddb9\\uddbb\\uddcd-\\uddcf\\uddd1-\\udddd]|[\\u270a\\u270b]))(?:\\ud83c[\\udffb-\\udfff])?|(?:\\ud83c\\udff4\\udb40\\udc67\\udb40\\udc62\\udb40\\udc65\\udb40\\udc6e\\udb40\\udc67\\udb40\\udc7f|\\ud83c\\udff4\\udb40\\udc67\\udb40\\udc62\\udb40\\udc73\\udb40\\udc63\\udb40\\udc74\\udb40\\udc7f|\\ud83c\\udff4\\udb40\\udc67\\udb40\\udc62\\udb40\\udc77\\udb40\\udc6c\\udb40\\udc73\\udb40\\udc7f|\\ud83c\\udde6\\ud83c[\\udde8-\\uddec\\uddee\\uddf1\\uddf2\\uddf4\\uddf6-\\uddfa\\uddfc\\uddfd\\uddff]|\\ud83c\\udde7\\ud83c[\\udde6\\udde7\\udde9-\\uddef\\uddf1-\\uddf4\\uddf6-\\uddf9\\uddfb\\uddfc\\uddfe\\uddff]|\\ud83c\\udde8\\ud83c[\\udde6\\udde8\\udde9\\uddeb-\\uddee\\uddf0-\\uddf5\\uddf7\\uddfa-\\uddff]|\\ud83c\\udde9\\ud83c[\\uddea\\uddec\\uddef\\uddf0\\uddf2\\uddf4\\uddff]|\\ud83c\\uddea\\ud83c[\\udde6\\udde8\\uddea\\uddec\\udded\\uddf7-\\uddfa]|\\ud83c\\uddeb\\ud83c[\\uddee-\\uddf0\\uddf2\\uddf4\\uddf7]|\\ud83c\\uddec\\ud83c[\\udde6\\udde7\\udde9-\\uddee\\uddf1-\\uddf3\\uddf5-\\uddfa\\uddfc\\uddfe]|\\ud83c\\udded\\ud83c[\\uddf0\\uddf2\\uddf3\\uddf7\\uddf9\\uddfa]|\\ud83c\\uddee\\ud83c[\\udde8-\\uddea\\uddf1-\\uddf4\\uddf6-\\uddf9]|\\ud83c\\uddef\\ud83c[\\uddea\\uddf2\\uddf4\\uddf5]|\\ud83c\\uddf0\\ud83c[\\uddea\\uddec-\\uddee\\uddf2\\uddf3\\uddf5\\uddf7\\uddfc\\uddfe\\uddff]|\\ud83c\\uddf1\\ud83c[\\udde6-\\udde8\\uddee\\uddf0\\uddf7-\\uddfb\\uddfe]|\\ud83c\\uddf2\\ud83c[\\udde6\\udde8-\\udded\\uddf0-\\uddff]|\\ud83c\\uddf3\\ud83c[\\udde6\\udde8\\uddea-\\uddec\\uddee\\uddf1\\uddf4\\uddf5\\uddf7\\uddfa\\uddff]|\\ud83c\\uddf4\\ud83c\\uddf2|\\ud83c\\uddf5\\ud83c[\\udde6\\uddea-\\udded\\uddf0-\\uddf3\\uddf7-\\uddf9\\uddfc\\uddfe]|\\ud83c\\uddf6\\ud83c\\udde6|\\ud83c\\uddf7\\ud83c[\\uddea\\uddf4\\uddf8\\uddfa\\uddfc]|\\ud83c\\uddf8\\ud83c[\\udde6-\\uddea\\uddec-\\uddf4\\uddf7-\\uddf9\\uddfb\\uddfd-\\uddff]|\\ud83c\\uddf9\\ud83c[\\udde6\\udde8\\udde9\\uddeb-\\udded\\uddef-\\uddf4\\uddf7\\uddf9\\uddfb\\uddfc\\uddff]|\\ud83c\\uddfa\\ud83c[\\udde6\\uddec\\uddf2\\uddf3\\uddf8\\uddfe\\uddff]|\\ud83c\\uddfb\\ud83c[\\udde6\\udde8\\uddea\\uddec\\uddee\\uddf3\\uddfa]|\\ud83c\\uddfc\\ud83c[\\uddeb\\uddf8]|\\ud83c\\uddfd\\ud83c\\uddf0|\\ud83c\\uddfe\\ud83c[\\uddea\\uddf9]|\\ud83c\\uddff\\ud83c[\\udde6\\uddf2\\uddfc]|\\ud83c[\\udccf\\udd8e\\udd91-\\udd9a\\udde6-\\uddff\\ude01\\ude32-\\ude36\\ude38-\\ude3a\\ude50\\ude51\\udf00-\\udf20\\udf2d-\\udf35\\udf37-\\udf7c\\udf7e-\\udf84\\udf86-\\udf93\\udfa0-\\udfc1\\udfc5\\udfc6\\udfc8\\udfc9\\udfcf-\\udfd3\\udfe0-\\udff0\\udff4\\udff8-\\udfff]|\\ud83d[\\udc00-\\udc3e\\udc40\\udc44\\udc45\\udc51-\\udc65\\udc6a\\udc6f\\udc79-\\udc7b\\udc7d-\\udc80\\udc84\\udc88-\\udca9\\udcab-\\udcfc\\udcff-\\udd3d\\udd4b-\\udd4e\\udd50-\\udd67\\udda4\\uddfb-\\ude44\\ude48-\\ude4a\\ude80-\\udea2\\udea4-\\udeb3\\udeb7-\\udebf\\udec1-\\udec5\\uded0-\\uded2\\uded5\\udeeb\\udeec\\udef4-\\udefa\\udfe0-\\udfeb]|\\ud83e[\\udd0d\\udd0e\\udd10-\\udd17\\udd1d\\udd20-\\udd25\\udd27-\\udd2f\\udd3a\\udd3c\\udd3f-\\udd45\\udd47-\\udd71\\udd73-\\udd76\\udd7a-\\udda2\\udda5-\\uddaa\\uddae-\\uddb4\\uddb7\\uddba\\uddbc-\\uddca\\uddd0\\uddde-\\uddff\\ude70-\\ude73\\ude78-\\ude7a\\ude80-\\ude82\\ude90-\\ude95]|[\\u23e9-\\u23ec\\u23f0\\u23f3\\u267e\\u26ce\\u2705\\u2728\\u274c\\u274e\\u2753-\\u2755\\u2795-\\u2797\\u27b0\\u27bf\\ue50a])|\\ufe0f/g;\n\n        function y(e, t) {\n            t.store;\n            e.prototype.$removeEmoji = function(e) {\n                return e.replace(w, \"\")\n            }\n        }\n        var C = o(33182),\n            x = (o(54387), o(11442)),\n            S = o.n(x),\n            k = o(86173),\n            L = o.n(k),\n            N = o(8359),\n            D = o(19102),\n            I = (o(8369), o(24793)),\n            E = o(32081),\n            Tray = o(71017),\n            M = \"127.0.0.1\";\n\n        function A(e, t) {\n            var i, n = t.store;\n            e.prototype.$setSystemProxy = (i = r()(d().mark((function e(t) {\n                var i, o, s, r, a, l, c, h, u, p, f, m, v, _, b, w, y, S, k, I;\n                return d().wrap((function(e) {\n                    for (;;) switch (e.prev = e.next) {\n                        case 0:\n                            if (L().info(\"set system proxy to\", t), i = n.state.app.settings, o = i.bypassText, s = i.staticSystemProxyHost, r = void 0 === s ? M : s, a = [], o) try {\n                                l = x.parse(o), c = l.bypass, a = (void 0 === c ? [] : c) || []\n                            } catch (e) {} else a = N.Z;\n                            if (e.prev = 5, 0 !== (h = n.getters.mixedPort)) {\n                                e.next = 9;\n                                break\n                            }\n                            return e.abrupt(\"return\", !1);\n                        case 9:\n                            if (u = !1, !(0, g.V5)()) {\n                                e.next = 24;\n                                break\n                            }\n                            return p = t ? [\"-http\", \"\".concat(r || M, \":\").concat(h), \"-https\", \"\".concat(r || M, \":\").concat(h), \"-socks\", \"\".concat(r || M, \":\").concat(h)] : [\"-stop\"], e.next = 14, (0, D.p)(p);\n                        case 14:\n                            if (!e.sent.success) {\n                                e.next = 22;\n                                break\n                            }\n                            return e.next = 19, (0, D.p)([\"-bypass\", a.join(\",\")]);\n                        case 19:\n                            e.sent.success && (u = !0, n.commit(\"CHANGE_STATUS\", {\n                                status: t ? C.r.SYSTEM_PROXY : C.r.DEFAULT\n                            }));\n                        case 22:\n                            e.next = 46;\n                            break;\n                        case 24:\n                            if (!(0, g.Kr)()) {\n                                e.next = 46;\n                                break\n                            }\n                            if (f = n.state.app.settings, m = f.systemProxyTypeIndex, v = void 0 === m ? 0 : m, _ = f.specifyHttpProxyProtocol, b = void 0 !== _ && _, w = Tray.join(n.getters.filesPath, \"win\", \"common\"), y = [\"set\", \"1\"], !t) {\n                                e.next = 44;\n                                break\n                            }\n                            if (S = r || M, 0 !== v) {\n                                e.next = 36;\n                                break\n                            }\n                            k = \"\".concat(S, \":\").concat(h), (y = [\"global\", b ? \"http=http://\".concat(k, \";https=http://\").concat(k) : k]).push(a.join(\";\")), e.next = 44;\n                            break;\n                        case 36:\n                            e.prev = 36, I = \"http://\".concat(S, \":\").concat(n.state.app.innerServerPort, \"/pac?t=\").concat((new Date).getTime()), y = [\"pac\", I], e.next = 44;\n                            break;\n                        case 41:\n                            return e.prev = 41, e.t0 = e.catch(36), e.abrupt(\"return\", !1);\n                        case 44:\n                            0 === E.spawnSync(\"sysproxy.exe\", y, {\n                                cwd: w,\n                                windowsHide: !0\n                            }).status && (u = !0, n.commit(\"CHANGE_STATUS\", {\n                                status: t ? C.r.SYSTEM_PROXY : C.r.DEFAULT\n                            }));\n                        case 46:\n                            return e.abrupt(\"return\", u);\n                        case 49:\n                            e.prev = 49, e.t1 = e.catch(5), console.error(e.t1.stack);\n                        case 52:\n                            return e.abrupt(\"return\", !1);\n                        case 53:\n                        case \"end\":\n                            return e.stop()\n                    }\n                }), e, null, [\n                    [5, 49],\n                    [36, 41]\n                ])\n            }))), function(e) {\n                return i.apply(this, arguments)\n            }), e.prototype.$getSystemProxyStatus = function() {\n                var e = !1;\n                if ((0, g.V5)()) {\n                    var t = n.state.app.clashPath,\n                        i = E.spawnSync(\"./sysproxy\", [\"-show\"], {\n                            cwd: t,\n                            windowsHide: !0\n                        }),\n                        o = i.error,\n                        s = i.output;\n                    if (o) return !1;\n                    if (s) {\n                        var r = s.toString();\n                        /socks=/.test(r) && (e = !0)\n                    }\n                    return n.commit(\"CHANGE_STATUS\", {\n                        status: e ? C.r.SYSTEM_PROXY : C.r.DEFAULT\n                    }), e\n                }\n                var a = Tray.join(n.getters.filesPath, \"win\", \"common\"),\n                    l = E.spawnSync(\"sysproxy.exe\", [\"query\"], {\n                        cwd: a,\n                        windowsHide: !0\n                    });\n                return l.error && (e = !1), 0 === l.status && l.stdout && (e = 51 === l.stdout[0] || 53 === l.stdout[0]), n.commit(\"CHANGE_STATUS\", {\n                    status: e ? C.r.SYSTEM_PROXY : C.r.DEFAULT\n                }), e\n            }, e.prototype.$getTrayIcon = function(e) {\n                const appState = n.state.app\n                var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : \"rule\",\n                    clashPath = void 0 === appState.clashPath ? \"\" : appState.clashPath,\n                    settings = void 0 === appState.settings ? {} : appState.settings,\n                    iconSystemProxy = settings.iconSystemProxy,\n                    iconDefault = settings.iconDefault,\n                    useModeIcons = settings.useModeIcons;\n                if (0 !== useModeIcons && useModeIcons) { // mode letter icons\n                    return Tray.join(__static, \"tray\", \"win\", \"\".concat(e || modifyState.isTun || modifyState.isMixin ? \"on\" : \"off\", \"_\").concat(t, \".png\"))\n                } else {\n                    let result;\n                    if (e || modifyState.isTun || modifyState.isMixin) {\n                        if (iconSystemProxy) {\n                            if (Tray.isAbsolute(iconSystemProxy)) { // found custom icon\n                                result = iconSystemProxy;\n                            } else { // set icon not found\n                                result = Tray.join(clashPath, iconSystemProxy);\n                            }\n                        } else { // default icon\n                            if (modifyState.isTun && modifyState.isMixin && e) {\n                                result = Tray.join(__static, \"tray\", \"win\", \"tray_orange.ico\");\n                            } else if (modifyState.isTun && e) {\n                                result = Tray.join(__static, \"tray\", \"win\", \"tray_green.ico\");\n                            } else if (modifyState.isMixin && e) {\n                                result = Tray.join(__static, \"tray\", \"win\", \"tray_light_blue.ico\");\n                            } else if (modifyState.isMixin && modifyState.isTun) {\n                                result = Tray.join(__static, \"tray\", \"win\", \"tray_brown.ico\");\n                            } else if (modifyState.isTun) {\n                                result = Tray.join(__static, \"tray\", \"win\", \"tray_pink.ico\");\n                            } else if (modifyState.isMixin) {\n                                result = Tray.join(__static, \"tray\", \"win\", \"tray_purple.ico\");\n                            } else {\n                                result = Tray.join(__static, \"tray\", \"win\", \"tray_reverse.ico\");\n                            }\n                        }\n                    } else {\n                        if (iconDefault) {\n                            if (Tray.isAbsolute(iconDefault)) { // found custom icon\n                                result = iconDefault;\n                            } else { // set icon not found\n                                result = Tray.join(clashPath, iconDefault);\n                            }\n                        } else { // default icon\n                            result = Tray.join(__static, \"tray\", \"win\", \"tray_normal.ico\");\n                        }\n                    }\n                    return result\n                }\n            }\n        }\n        var O = o(319),\n            P = o.n(O),\n            R = o(63038),\n            F = o.n(R),\n            B = o(71017),\n            V = o.n(B),\n            W = o(57147),\n            H = o.n(W);\n\n        function z(e) {\n            return j.apply(this, arguments)\n        }\n\n        function j() {\n            return (j = r()(d().mark((function e(t) {\n                var i, n, o, s, r, a, l, c;\n                return d().wrap((function(e) {\n                    for (;;) switch (e.prev = e.next) {\n                        case 0:\n                            if (!(0, g.IJ)()) {\n                                e.next = 14;\n                                break\n                            }\n                            return e.next = 3, Promise.all([\n                                [\"getVersion\"],\n                                [\"getPath\", \"exe\"],\n                                [\"getPath\", \"home\"]\n                            ].map((function(e) {\n                                return u.ipcRenderer.invoke.apply(u.ipcRenderer, [\"app\"].concat(P()(e)))\n                            })));\n                        case 3:\n                            i = e.sent, n = F()(i, 3), o = n[0], s = n[1], r = n[2], a = (0, B.join)(r, \".config\", \"autostart\"), l = (0, B.join)(a, \"cfw.desktop\"), c = \"[Desktop Entry]\\n    Type=Application\\n    Version=\".concat(o, '\\n    Name=Clash for Windows\\n    Comment=Clash for Windows startup script\\n    Exec=\"').concat(s, '\"\\n    StartupNotify=false\\n    Terminal=false'), t ? ((0, W.existsSync)(a) || (0, W.mkdirSync)(a), (0, W.writeFileSync)(l, c)) : (0, W.existsSync)(l) && (0, W.unlinkSync)(l), e.next = 16;\n                            break;\n                        case 14:\n                            return e.next = 16, u.ipcRenderer.invoke(\"app\", \"setLoginItemSettings\", {\n                                openAtLogin: t\n                            });\n                        case 16:\n                        case \"end\":\n                            return e.stop()\n                    }\n                }), e)\n            })))).apply(this, arguments)\n        }\n\n        function U(e) {\n            e.prototype.$setAutoLaunch = z\n        }\n        o(58583);\n\n        function $(e, t) {\n            var i = Object.keys(e);\n            if (Object.getOwnPropertySymbols) {\n                var n = Object.getOwnPropertySymbols(e);\n                t && (n = n.filter((function(t) {\n                    return Object.getOwnPropertyDescriptor(e, t).enumerable\n                }))), i.push.apply(i, n)\n            }\n            return i\n        }\n\n        function K(e) {\n            for (var t = 1; t < arguments.length; t++) {\n                var i = null != arguments[t] ? arguments[t] : {};\n                t % 2 ? $(Object(i), !0).forEach((function(t) {\n                    l()(e, t, i[t])\n                })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(i)) : $(Object(i)).forEach((function(t) {\n                    Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(i, t))\n                }))\n            }\n            return e\n        }\n        var q = o(20667);\n        const Z = {\n            install: function(e, t) {\n                var i = t.store;\n                q.keys().forEach((function(t) {\n                    var n = t.replace(/(\\.\\/|\\.vue)/g, \"\"),\n                        o = new(e.extend(K(K({}, q(t).default), {}, {\n                            store: i\n                        }))),\n                        s = o.$mount().$el;\n                    document.body.appendChild(s), e.prototype[\"$\".concat(n)] = o.show\n                }))\n            }\n        };\n        var G = o(23321);\n\n        function Y(e, t) {\n            var i = Object.keys(e);\n            if (Object.getOwnPropertySymbols) {\n                var n = Object.getOwnPropertySymbols(e);\n                t && (n = n.filter((function(t) {\n                    return Object.getOwnPropertyDescriptor(e, t).enumerable\n                }))), i.push.apply(i, n)\n            }\n            return i\n        }\n\n        function Q(e) {\n            for (var t = 1; t < arguments.length; t++) {\n                var i = null != arguments[t] ? arguments[t] : {};\n                t % 2 ? Y(Object(i), !0).forEach((function(t) {\n                    l()(e, t, i[t])\n                })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(i)) : Y(Object(i)).forEach((function(t) {\n                    Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(i, t))\n                }))\n            }\n            return e\n        }\n        h.ZP.use(Z, {\n            store: b.Z\n        }), process.env.IS_WEB || h.ZP.use(o(26400)), h.ZP.use(e, {\n            store: b.Z\n        }), h.ZP.use(t, {\n            store: b.Z\n        }), h.ZP.use(i), h.ZP.config.productionTip = !1, h.ZP.mixin({\n            data: function() {\n                return {\n                    mixinScrollTop: 0\n                }\n            },\n            computed: Q(Q(Q(Q({}, (0, G.mapState)({\n                clashPath: function(e) {\n                    return e.app.clashPath\n                }\n            })), {}, {\n                isWindows: function() {\n                    return (0, g.Kr)()\n                },\n                isMacOS: function() {\n                    return (0, g.V5)()\n                },\n                isLinux: function() {\n                    return (0, g.IJ)()\n                }\n            }, (0, G.mapState)({\n                sts: function(e) {\n                    return e.app.settings\n                }\n            })), (0, G.mapGetters)({\n                theme: \"theme\"\n            })), {}, {\n                settings: function() {\n                    var e = this;\n                    if (this.sts) return new Proxy(I.cloneDeep(this.sts), {\n                        get: function(e, t) {\n                            return e[t]\n                        },\n                        set: function(t, i, n) {\n                            return t[i] = n, e.saveSettingsObject({\n                                obj: I.cloneDeep(t)\n                            }), !0\n                        }\n                    })\n                }\n            }),\n            methods: Q(Q({}, (0, G.mapMutations)({\n                saveSettingsObject: \"SAVE_SETTINGS_OBJECT\",\n                setSettingsObject: \"SET_SETTINGS_OBJECT\"\n            })), {}, {\n                reloadElectron: function() {\n                    return r()(d().mark((function e() {\n                        return d().wrap((function(e) {\n                            for (;;) switch (e.prev = e.next) {\n                                case 0:\n                                    return e.next = 2, u.ipcRenderer.invoke(\"app\", \"relaunch\");\n                                case 2:\n                                    return e.next = 4, u.ipcRenderer.invoke(\"app\", \"exit\", 0);\n                                case 4:\n                                case \"end\":\n                                    return e.stop()\n                            }\n                        }), e)\n                    })))()\n                },\n                loadSettings: function() {\n                    let settings = {};\n                    try {\n                        // 读取 clashPath 路径下的 cfw-settings.yaml 文件\n                        const fs = H(); // 模糊变量名，可能是 require('fs')\n                        const path = V(); // 模糊变量名，可能是 require('path')\n                        const yaml = S(); // 模糊变量名，可能是 require('js-yaml')\n\n                        const configPath = path.join(this.clashPath, \"cfw-settings.yaml\");\n                        const fileContent = fs.readFileSync(configPath).toString();\n                        settings = yaml.parse(fileContent); // YAML 转换为 JS 对象\n                    } catch (err) {\n                        // 忽略错误\n                    }\n\n                    // 为每个设置项提供默认值\n                    const showNewVersionIcon = settings.showNewVersionIcon !== false; // 默认为 true\n                    const hideAfterStartup = settings.hideAfterStartup === true; // 默认为 false\n                    const randomControllerPort = settings.randomControllerPort !== false; // 默认为 true\n                    const runTimeFormat = settings.runTimeFormat || \"hh : mm : ss\"; // 默认为 \"hh : mm : ss\"\n                    const trayOrders = settings.trayOrders || [[\"icon\"], [\"status\", \"traffic\", \"text\"]]; // 默认托盘顺序\n                    const hideTrayIcon = settings.hideTrayIcon === true; // 默认为 false\n                    const connShowProcess = settings.connShowProcess !== false; // 默认为 true\n                    const showTrayProxyDelayIndicator = settings.showTrayProxyDelayIndicator !== false; // 默认为 true\n                    const checkForUpdates = settings.checkForUpdates !== false; // 默认为 true\n                    const disableLoadingAdsLink = settings.disableLoadingAdsLink !== false\n\n                    if (settings.language != null) {\n                        modifyState.languageInProfile = settings.language;\n                    }\n\n                    // 合并默认设置并设置到应用\n                    const mergedSettings = {\n                        ...settings,\n                        showNewVersionIcon,\n                        hideAfterStartup,\n                        randomControllerPort,\n                        runTimeFormat,\n                        trayOrders,\n                        hideTrayIcon,\n                        connShowProcess,\n                        showTrayProxyDelayIndicator,\n                        checkForUpdates,\n                        disableLoadingAdsLink\n                    };\n\n                    this.setSettingsObject({ obj: mergedSettings });\n                }\n            }),\n            beforeRouteEnter: function(e, t, i) {\n                i((function(e) {\n                    var t = e.$refs[\"mixin-scroll-content\"];\n                    if (t) {\n                        var i = \"$el\" in t ? t.$el : t;\n                        i.style.scrollBehavior = \"auto\", setTimeout((function() {\n                            i.style.scrollBehavior = \"smooth\"\n                        }), 1), e.$nextTick((function() {\n                            i.scrollTop = e.mixinScrollTop\n                        }))\n                    }\n                }))\n            },\n            beforeRouteLeave: function(e, t, i) {\n                var n = this.$refs[\"mixin-scroll-content\"];\n                n && (this.mixinScrollTop = \"$el\" in n ? n.$el.scrollTop : n.scrollTop), i()\n            }\n        }), new h.ZP({\n            components: {\n                App: f\n            },\n            router: _,\n            store: b.Z,\n            template: \"<App/>\"\n        }).$mount(\"#app\")\n    })(), module.exports = s\n})();"
  },
  {
    "path": "app/main/dist/electron/renderer.js.LICENSE.txt",
    "content": "/*!\n * Vue.js v2.7.14\n * (c) 2014-2022 Evan You\n * Released under the MIT License.\n */\n\n/*! @license DOMPurify 2.3.1 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/2.3.1/LICENSE */\n"
  },
  {
    "path": "app/main/package.json",
    "content": "{\n    \"name\": \"clash_win\",\n    \"version\": \"0.20.39.3\",\n    \"author\": \"Fndroid\",\n    \"description\": \"A Windows client based on Clash\",\n    \"license\": \"MIT\",\n    \"main\": \"./dist/electron/main.js\",\n    \"dependencies\": {\n        \"@babel/runtime\": \"^7.12.1\",\n        \"@fndroid/network-interface\": \"^18.0.3\",\n        \"@vscode/sudo-prompt\": \"^9.3.1\",\n        \"@vue/reactivity\": \"^3.2.33\",\n        \"axios\": \"^0.27.2\",\n        \"bignumber.js\": \"^9.1.1\",\n        \"content-disposition\": \"^0.5.4\",\n        \"dhcp\": \"^0.2.20\",\n        \"electron-log\": \"^4.1.0\",\n        \"electron-window-bounds\": \"^1.0.10\",\n        \"fix-path\": \"^3.0.0\",\n        \"fs-extra\": \"^10.0.0\",\n        \"get-port\": \"^5.1.1\",\n        \"got\": \"^9.6.0\",\n        \"hpagent\": \"^1.2.0\",\n        \"koa\": \"^2.13.0\",\n        \"lodash\": \"^4.17.20\",\n        \"marked\": \"^4.1.1\",\n        \"moment\": \"^2.22.2\",\n        \"mousetrap\": \"^1.6.5\",\n        \"node-diff3\": \"^3.1.0\",\n        \"original-fs\": \"^1.2.0\",\n        \"qrcode\": \"^1.4.4\",\n        \"read-last-lines\": \"^1.8.0\",\n        \"require-from-string\": \"^2.0.2\",\n        \"tar-stream\": \"^2.0.1\",\n        \"tunnel\": \"0.0.6\",\n        \"unix-cron\": \"^1.0.3\",\n        \"uuid\": \"^8.3.2\",\n        \"velocity-animate\": \"^1.5.2\",\n        \"vue\": \"^2.7.14\",\n        \"vue-electron\": \"^1.0.6\",\n        \"vue-router\": \"^3.0.1\",\n        \"vuedraggable\": \"^2.23.2\",\n        \"vuex\": \"^3.0.1\",\n        \"ws\": \"^7.2.0\",\n        \"yaml\": \"^2.0.1\"\n    }\n}"
  },
  {
    "path": "chinese_file/Auto/main-chinese.txt",
    "content": "ignore_case=0,reg_exp=1,cross_line=1,binary_file=0,extract_flag=0,whole_word=0\n\n<find>\"Dashboard\"</find>\n<replace>\"仪表盘\"</replace>\n<find>\"Dashboard has crashed</find>\n<replace>\"仪表板崩溃了</replace>\n<find>\"Run Tray Script\"</find>\n<replace>\"运行任务栏脚本\"</replace>\n<find>System Proxy\"</find>\n<replace>系统代理\"</replace>\n<find>\"Mixin\"</find>\n<replace>\"混合配置\"</replace>\n<find>\"Proxy Mode\"</find>\n<replace>\"代理模式\"</replace>\n<find>\"Global\"</find>\n<replace>\"全局\"</replace>\n<find>\"Rule\"</find>\n<replace>\"规则\"</replace>\n<find>\"Direct\"</find>\n<replace>\"直连\"</replace>\n<find>\"Script\"</find>\n<replace>\"脚本\"</replace>\n<find>\"More\"</find>\n<replace>\"更多\"</replace>\n<find>\"Force Quit\"</find>\n<replace>\"强制退出\"</replace>\n<find>\"Quit\"</find>\n<replace>\"退出\"</replace>\n<find>\"Quit Clash for Windows\"</find>\n<replace>\"退出 Clash for Windows\"</replace>\n<find>\"Toggle DevTools\"</find>\n<replace>\"切换Dev工具\"</replace>\n<find>\"Restart\"</find>\n<replace>\"重启\"</replace>\n<find>\"TUN Mode\"</find>\n<replace>\"TUN 模式\"</replace>\n<find>\"Move Dashboard To Nearest Monitor\"</find>\n<replace>\"将仪表板移至最近的显示器\"</replace>\n<find>\"Proxy Groups\"</find>\n<replace>\"代理组\"</replace>\n<find>\"Connections\"</find>\n<replace>\"连接\"</replace>\n<find>\"Close All\"</find>\n<replace>\"关闭全部\"</replace>\n"
  },
  {
    "path": "chinese_file/Auto/renderer-chinese.txt",
    "content": "ignore_case=0,reg_exp=1,cross_line=1,binary_file=0,extract_flag=0,whole_word=0\n\n<find>\\(\"OK\"\\)</find>\n<replace>\\(\"确定\"\\)</replace>\n<find>\"Text\"</find>\n<replace>\"文本\"</replace>\n<find>title:\"Error\"</find>\n<replace>title:\"错误\"</replace>\n<find>\"Install\",\"Uninstall\"</find>\n<replace>\"安装\",\"卸载\"</replace>\n<find>\"Name\"</find>\n<replace>\"名字\"</replace>\n<find>\"Save\"</find>\n<replace>\"保存\"</replace>\n<find>\"Cancel\"</find>\n<replace>\"取消\"</replace>\n<find> Cancel</find>\n<replace> 取消</replace>\n<find>  Add</find>\n<replace>  添加</replace>\n<find>\"Loading</find>\n<replace>\"正在加载</replace>\n<find>\"Quit\"</find>\n<replace>\"退出\"</replace>\n<find>\"Add\"</find>\n<replace>\"添加\"</replace>\n<find>\"Error\"</find>\n<replace>\"错误\"</replace>\n<find>\"Restarting core</find>\n<replace>\"重新启动核心</replace>\n<find>\"No proxy group in this profile\"</find>\n<replace>\"此配置文件中没有代理组\"</replace>\n<find>\"Connection Info\"</find>\n<replace>\"连接信息\"</replace>\n<find>\"Clash is running in the background\",\"Enjoy your free time</find>\n<replace>\"Clash 正在后台运行\",\"享受您的自由时间</replace>\n<find>\"fail to update profile with url</find>\n<replace>\"无法使用 url 更新配置资料</replace>\n<find>\"Profile update failed\"</find>\n<replace>\"配置资料更新失败\"</replace>\n<find>\"Profile had been downloaded successfully</find>\n<replace>\"配置资料已成功下载</replace>\n<find>\"app exiting, turn off system proxy\"</find>\n<replace>\"应用退出, 关闭系统代理\"</replace>\n<find>http server failed to start with error</find>\n<replace>http 服务器因错误而无法启动</replace>\n<find>http server started at</find>\n<replace>http服务器开始于</replace>\n<find>first luanch, creating</find>\n<replace>首次发布, 创建</replace>\n<find>app start with mode</find>\n<replace>应用程序以模式开始</replace>\n<find>fail to load general config</find>\n<replace>无法加载常规 config</replace>\n<find>yaml with error</find>\n<replace>yaml 并出现错误</replace>\n<find>load data from general</find>\n<replace>从一般加载数据</replace>\n<find>title:\"General\"</find>\n<replace>title:\"主页\"</replace>\n<find>\"Proxies\"</find>\n<replace>\"代理\"</replace>\n<find>\"Profiles\"</find>\n<replace>\"配置\"</replace>\n<find>title:\"Logs\"</find>\n<replace>title:\"日志\"</replace>\n<find>\"Connections\"</find>\n<replace>\"连接\"</replace>\n<find>title:\"Feedback\"</find>\n<replace>title:\"关于\"</replace>\n<find>\"Providers\"</find>\n<replace>\"提供\"</replace>\n<find>Stop Sorting\\n</find>\n<replace>停止排序\\n</replace>\n<find>\"Connected\"</find>\n<replace>\"已连接\"</replace>\n<find>\"Disconnected\"</find>\n<replace>\"未连接\"</replace>\n<find>\"You are awesome\"</find>\n<replace>\"当前版本是最新的\"</replace>\n<find>\"The current version is up to date</find>\n<replace>\"当前汉化版本也是最新的</replace>\n<find>\"Update installed successfully, do you want to restart the APP</find>\n<replace>\"更新安装成功，要重启APP吗</replace>\n<find>\"Package downloaded successfully, do you want to execute it</find>\n<replace>\"原版包下载成功，要执行吗</replace>\n<find>\"Port\"</find>\n<replace>\"端口\"</replace>\n<find>title:\"Change Mixed Port\"</find>\n<replace>title:\"更改混合端口\"</replace>\n<find>name:\"New Port\"</find>\n<replace>name:\"新端口\"</replace>\n<find>\"Allow LAN\"</find>\n<replace>\"允许局域网\"</replace>\n<find>\"Log Level\"</find>\n<replace>\"日志级别\"</replace>\n<find>\"Clash Core\"</find>\n<replace>\"Clash 内核\"</replace>\n<find>\"Home Directory\"</find>\n<replace>\"主目录\"</replace>\n<find>\"UWP Loopback\"</find>\n<replace>\"UWP 应用联网限制解除工具\"</replace>\n<find>\"TAP Device\"</find>\n<replace>\"虚拟网卡安装（TAP 模式）\"</replace>\n<find>\"Service Mode\"</find>\n<replace>\"服务模式\"</replace>\n<find>\"Mixin\"</find>\n<replace>\"混合配置\"</replace>\n<find>\"System Proxy\"</find>\n<replace>\"系统代理\"</replace>\n<find>Mixin allows you to overwrite the original configuration file</find>\n<replace>Mixin允许您覆盖原始配置文件</replace>\n<find>\"Start with Windows\"</find>\n<replace>\"开机自启动\"</replace>\n<find>\"Drag to sort or add to the list on the right</find>\n<replace>\"拖动以排序或添加到右侧列表中</replace>\n<find> Manage</find>\n<replace> 管理</replace>\n<find>\"You need to reinstall the TAP device after you change these fields</find>\n<replace>\"更改这些字段后，您需要重新安装虚拟网卡</replace>\n<find>\"TAP device management\"</find>\n<replace>\"虚拟网卡设置管理\"</replace>\n<find>An adapter named \"</find>\n<replace>名为 \"</replace>\n<find>will route your data into clash</find>\n<replace>的适配器会将您的数据路由到Clash中</replace>\n<find>If the installation box pops up</find>\n<replace>如果弹出安装框</replace>\n<find>keep clicking \"Next\"</find>\n<replace>请继续单击\"下一步\", </replace>\n<find>until the installation is complete</find>\n<replace>直到安装完成</replace>\n<find>\"Service management\"</find>\n<replace>\"服务管理\"</replace>\n<find>\"It might take a while</find>\n<replace>\"这可能需要一段时间</replace>\n<find>The APP will be relaunched automatically</find>\n<replace>该APP将自动重新启动</replace>\n<find>Current status: \"</find>\n<replace>当前状态: \"</replace>\n<find>\"Inactive\":\"Active\"</find>\n<replace>\"未安装\":\"已安装\"</replace>\n<find>\"IP Address\"</find>\n<replace>\"IP地址\"</replace>\n<find>\"Subnet Mask\"</find>\n<replace>\"子网掩码\"</replace>\n<find>\"Default Gateway\"</find>\n<replace>\"默认网关\"</replace>\n<find>\"Success\",\"cfw-tap device had been installed\"</find>\n<replace>\"成功\",\"cfw-tap 已安装\"</replace>\n<find>\"Failed\",\"counld not install cfw-tap device</find>\n<replace>\"失败\",\"无法安装 cfw-tap</replace>\n<find>\"Success\",\"cfw-tap device had been removed\"</find>\n<replace>\"成功\",\"cfw-tap 已被移除\"</replace>\n<find>\"Failed\",\"counld not remove cfw-tap device</find>\n<replace>\"失败\", \"无法移除 cfw-tap</replace>\n<find>\"Commands have been copied to Clipboad</find>\n<replace>\"命令已复制到剪贴板</replace>\n<find>\"Check\"</find>\n<replace>\"测试\"</replace>\n<find>\" ms\":\"Timeout\"</find>\n<replace>\" ms\":\"超时\"</replace>\n<find>\"Timeout\"</find>\n<replace>\"超时\"</replace>\n<find>\"Download from a URL\"</find>\n<replace>\"从URL下载\"</replace>\n<find>\"Error!\"</find>\n<replace>\"错误!\"</replace>\n<find>\"Downloading\"</find>\n<replace>\"下载中\"</replace>\n<find>\"Success!\":\"Download\"</find>\n<replace>\"成功!\":\"下载\"</replace>\n<find>\"Update All\"</find>\n<replace>\"更新全部\"</replace>\n<find> Update All</find>\n<replace> 更新全部</replace>\n<find>\"Import\"</find>\n<replace>\"导入\"</replace>\n<find>\"edit policies\"</find>\n<replace>\"修改规则\"</replace>\n<find>\"edit rules\"</find>\n<replace>\"编辑规则\"</replace>\n<find>\"duplicate profile\"</find>\n<replace>\"复制配置文件\"</replace>\n<find> Scheme</find>\n<replace> 跳转方案</replace>\n<find>\"matching parsers\"</find>\n<replace>\"匹配解析器\"</replace>\n<find>text:\"Delete\"</find>\n<replace>text:\"删除\"</replace>\n<find>\"Edit profile information\"</find>\n<replace>\"编辑配置信息\"</replace>\n<find>title:\"Copy profile\"</find>\n<replace>title:\"复制配置文件\"</replace>\n<find>\"Update Interval \\(hour\\)\"</find>\n<replace>\"更新间隔\\(小时\\)\"</replace>\n<find>\"Top 100 matching rules</find>\n<replace>\"前100个匹配规则</replace>\n<find>\"fiter by keywords\"</find>\n<replace>\"按关键字过滤\"</replace>\n<find>\"Local file already exist</find>\n<replace>\"本地文件已存在</replace>\n<find>Are you sure to delete </find>\n<replace>您确定要删除 </replace>\n<find>\"Yes\",\"No\"</find>\n<replace>\"是\",\"否\"</replace>\n<find>\"Close the editing file to Save</find>\n<replace>\"关闭编辑文件以保存</replace>\n<find>to import</find>\n<replace>导入</replace>\n<find>switch a profile</find>\n<replace>切换配置文件</replace>\n<find>\"Request Logs\"</find>\n<replace>\"请求日志\"</replace>\n<find>\"Stop\":\"Start\"</find>\n<replace>\"暂停\":\"开始\"</replace>\n<find>\"Empty log list\"</find>\n<replace>\"空日志列表\"</replace>\n<find>\"Refresh your browser to make requests</find>\n<replace>\"刷新浏览器以发出请求</replace>\n<find>\"Clear\"</find>\n<replace>\"清除\"</replace>\n<find>  Connections</find>\n<replace> 连接</replace>\n<find>type:\"text\",placeholder:\"Search\"</find>\n<replace>type:\"文本\",placeholder:\"搜索\"</replace>\n<find>\"Resume\":\"Pause\"</find>\n<replace>\"恢复\":\"暂停\"</replace>\n<find>\"Total</find>\n<replace>\"总共</replace>\n<find>\"Upload Speed\",\"Download Speed\"</find>\n<replace>\"上传速度\",\"下载速度\"</replace>\n<find>\"Upload Traffic\",\"Download Traffic\",\"Time\"</find>\n<replace>\"上传流量\",\"下载流量\",\"时间\"</replace>\n<find> Close All</find>\n<replace> 全部关闭</replace>\n<find>\"Start Time\"</find>\n<replace>\"开始时间\"</replace>\n<find>Chains:</find>\n<replace>模式:</replace>\n<find>Rule:\"\"</find>\n<replace>规则:\"\"</replace>\n<find>Destination:</find>\n<replace>目的地:</replace>\n<find>Source:\"\"</find>\n<replace>来源:\"\"</replace>\n<find>Traffic:</find>\n<replace>流量:</replace>\n<find>,Network:</find>\n<replace>,网络:</replace>\n<find>Host:t.host</find>\n<replace>主机:t.host</replace>\n<find>\"Special Proxies\"</find>\n<replace>\"特殊代理\"</replace>\n<find>\"Proxy Groups\"</find>\n<replace>\"代理组\"</replace>\n<find>\"Reset All Settings\"</find>\n<replace>\"重置所有设置\"</replace>\n<find>\"Warning\",content:\"Are you sure to reset all settings</find>\n<replace>\"警告\",content:\"您确定要重设所有设置吗</replace>\n<find>\"Appearance\"</find>\n<replace>\"外观\"</replace>\n<find>\"Settings Editor\"</find>\n<replace>\"配置编辑器\"</replace>\n<find>\"Notifications\"</find>\n<replace>\"向系统通知栏发送相关信息\"</replace>\n<find>\"Silent Start\"</find>\n<replace>\"开启Clash时默认缩小到任务栏\"</replace>\n<find>\"Random Controller Port\"</find>\n<replace>\"随机占用端口\"</replace>\n<find>\"Lightweight Mode\"</find>\n<replace>\"轻量模式\"</replace>\n<find>\"Run Time Format\"</find>\n<replace>\"运行时间格式\"</replace>\n<find>\"GUI Log Folder\"</find>\n<replace>\"GUI日志文件夹\"</replace>\n<find>\"Open\"</find>\n<replace>\"打开\"</replace>\n<find>\"Theme\"</find>\n<replace>\"主题\"</replace>\n<find>\"Light\",\"Dark\",\"国庆中秋\",\"Cyberpunk\"</find>\n<replace>\"明亮\",\"深色\",\"国庆中秋\",\"赛博朋克\"</replace>\n<find>\"Follow System Theme\"</find>\n<replace>\"遵循系统主题\"</replace>\n<find>\"Font Family\"</find>\n<replace>\"字体系列\"</replace>\n<find>Use System Emoji</find>\n<replace>使用系统表情符号</replace>\n<find>\"Default Icon Path\"</find>\n<replace>\"自定义状态栏图标\"</replace>\n<find>\"System Proxy On Icon Path\"</find>\n<replace>\"状态栏图标上的系统代理\"</replace>\n<find>ico\\) asset path</find>\n<replace>ico\\) 路径</replace>\n<find>\"Enhanced Tray\"</find>\n<replace>\"悬浮窗\"</replace>\n<find>\"Text to display in tray\"</find>\n<replace>\"要显示在悬浮窗中的文本\"</replace>\n<find>\"Script\"\\)</find>\n<replace>\"脚本\"\\)</replace>\n<find>text:\"Select\"</find>\n<replace>text:\"选择\"</replace>\n<find>\"Transparent\"</find>\n<replace>\"透明\"</replace>\n<find>\"foreground color\"</find>\n<replace>\"前景色\"</replace>\n<find>\"Script to run\"</find>\n<replace>\"要运行的脚本\"</replace>\n<find>\"Show New Version Icon\"</find>\n<replace>\"有新版本时提醒\"</replace>\n<find>\"Type\"</find>\n<replace>\"类型\"</replace>\n<find>\"Bypass Domain</find>\n<replace>\"绕过域</replace>\n<find>\"Specify Protocol\"</find>\n<replace>\"指定协议\"</replace>\n<find>\"Static Host\"</find>\n<replace>\"静态主机\"</replace>\n<find>\"Profile Mixin\"</find>\n<replace>\"配置文件 Mixin\"</replace>\n<find>text:\"Edit\"</find>\n<replace>text:\"编辑\"</replace>\n<find>\"Proxy Item Width\"</find>\n<replace>\"代理项目宽度\"</replace>\n<find>\"Mini List Width\"</find>\n<replace>\"策略组导航器宽度\"</replace>\n<find>\"Order By\"</find>\n<replace>\"自定义节点排序\"</replace>\n<find>\"Default\",\"Latency\",\"Alphabet\"</find>\n<replace>\"默认\",\"延迟\",\"字母\"</replace>\n<find>\"Latency Test URL\"</find>\n<replace>\"延迟测试网址\"</replace>\n<find>\"Latency Test Timeout\"</find>\n<replace>\"延迟测试超时\"</replace>\n<find>\"Show Filter\"</find>\n<replace>\"显示筛选过滤器\"</replace>\n<find>\"Hide Unselectable Group\"</find>\n<replace>\"隐藏无法选择的代理组\"</replace>\n<find>\"Break When Proxy Change\"</find>\n<replace>\"代理更改时中断连接\"</replace>\n<find>\"None\",\"Chain\",\"All\"</find>\n<replace>\"不中断\",\"旧链接\",\"所有\"</replace>\n<find>\"Break When Profile Change\"</find>\n<replace>\"配置文件更改时中断连接\"</replace>\n<find>\"Break When Mode Change\"</find>\n<replace>\"模式更改时中断连接\"</replace>\n<find>\"Display Chain Type\"</find>\n<replace>\"显示链接类型\"</replace>\n<find>\"Proxy\",\"Group\",\"Both\"</find>\n<replace>\"节点名\",\"分组名\",\"全部\"</replace>\n<find>\"Outbound\"</find>\n<replace>\"选择流量出接口\"</replace>\n<find>\"Interface Name\"</find>\n<replace>\"接口名称\"</replace>\n<find>\"Detected:</find>\n<replace>\"侦测到:</replace>\n<find>\"Child Processes\"</find>\n<replace>\"子进程\"</replace>\n<find>\"Processes\"</find>\n<replace>\"启动其他应用\"</replace>\n<find>\"Parsers\"</find>\n<replace>\"配置文件预处理\"</replace>\n<find>\"Console Output\"</find>\n<replace>\"控制台输出\"</replace>\n<find>\"Open File\"</find>\n<replace>\"打开文件\"</replace>\n<find>\"Folder Path\"</find>\n<replace>\"资料夹路径\"</replace>\n<find>\"Request Headers\"</find>\n<replace>\"自定义请求头\"</replace>\n<find>\"Select After Updated\"</find>\n<replace>\"更新后选择\"</replace>\n<find> Force Quit</find>\n<replace> 强制退出</replace>\n<find> Reset </find>\n<replace> 重启 </replace>\n<find>\"Profiles folder path\"</find>\n<replace>\"配置文件文件夹路径\"</replace>\n<find>\"Open terminal with proxy set up\"</find>\n<replace>\"打开终端并设置代理\"</replace>\n<find>\"Health Check All\"</find>\n<replace>\"检查全部连接\"</replace>\n<find>\"Proxy Providers\"</find>\n<replace>\"代理提供者\"</replace>\n<find>\"Choose outbound interface\"</find>\n<replace>\"选择出接口\"</replace>\n<find>\"only works when TAP mode enabled\"</find>\n<replace>\"仅在启用TAP模式时有效\"</replace>\n<find>\"Docs\"</find>\n<replace>\"在线文档\"</replace>\n<find>\"Change Log Level\"</find>\n<replace>\"更改日志收集级别\"</replace>\n<find> Open Folder</find>\n<replace> 打开文件夹</replace>\n<find> Launch Helper</find>\n<replace> 启动助手</replace>\n<find>\"Shortcuts\"</find>\n<replace>\"快捷键\"</replace>\n<find>\"Global Mode\"</find>\n<replace>\"全局模式\"</replace>\n<find>\"Rule Mode\"</find>\n<replace>\"规则模式\"</replace>\n<find>Direct Mode</find>\n<replace>直连模式</replace>\n<find>\"Script Mode\"</find>\n<replace>\"脚本模式\"</replace>\n<find>\"Show connections\"</find>\n<replace>\"显示连接\"</replace>\n<find>Show/Hide Dashboard\"</find>\n<replace>显示/隐藏仪表板\"</replace>\n<find>\"Run Tray Script\"</find>\n<replace>\"运行纸盘脚本\"</replace>\n<find> Press Enter to stop</find>\n<replace> 按 Enter 停止</replace>\n<find>\"Record\"</find>\n<replace>\"点击以录制热键\"</replace>\n<find>\"Developer\"</find>\n<replace>\"作者\"</replace>\n<find>\"Relevance\"</find>\n<replace>\"关于\"</replace>\n<find>\"Credits\"</find>\n<replace>\"鸣谢\"</replace>\n<find>\"Advertisement\"</find>\n<replace>\"广告\"</replace>\n<find>\"Image is on the way\"</find>\n<replace>\"图片正在加载\"</replace>\n<find>\"Document\"</find>\n<replace>\"帮助文档\"</replace>\n<find>\"Update Interval must be an integer\"</find>\n<replace>\"更新间隔必须是整数\"</replace>\n<find>\"Input a new file name\"</find>\n<replace>\"输入一个新的文件名\"</replace>\n<find>\"Remove\":\"Include\"</find>\n<replace>\"删除\":\"包括\"</replace>\n<find>\"Edit Parsers\",\"OK\"</find>\n<replace>\"编辑解析器\",\"确认\"</replace>\n<find>\"Download profile</find>\n<replace>\"下载资料</replace>\n<find>failed with error: HTTP Response Status Code</find>\n<replace>失败，错误：HTTP 响应状态代码</replace>\n<find>\"updated\":\"installed\"</find>\n<replace>\"已更新\":\"已安装\"</replace>\n<find> Service Mode to control system proxy</find>\n<replace> 用于控制系统代理的服务模式</replace>\n<find>\"Update\":\"Install\",\" Now\"</find>\n<replace>\"更新\":\"安装\",\" 现在\"</replace>\n<find>\"Select a terminal\"</find>\n<replace>\"选择一个终端\"</replace>\n<find> Go to</find>\n<replace> 前往</replace>\n<find>message:\"unknow error\"</find>\n<replace>message:\"未知错误\"</replace>\n<find>update failed\\(Network Error\\)</find>\n<replace>更新失败\\(网络错误\\)</replace>\n<find>\"Could not switch to this profile</find>\n<replace>\"无法切换到此配置文件</replace>\n<find>\"Download GeoIP database failed with error</find>\n<replace>\"下载 GeoIP 数据库失败并出现错误</replace>\n<find>\"Input fields are alternative\"</find>\n<replace>\"输入字段是替代的\"</replace>\n<find>\"Update GeoIP database</find>\n<replace>\"更新 GeoIP 数据库</replace>\n<find>\"Updating GeoIP database is not allowed in CFW, please do it manually</find>\n<replace>\"CFW 不允许更新 GeoIP 数据库，请手动进行</replace>\n<find>\"Copy proxy setting commands\"</find>\n<replace>\"复制代理设置命令\"</replace>\n<find>\"Copy Command\"</find>\n<replace>\"复制命令\"</replace>\n<find>scroll to selected proxy</find>\n<replace>移动到选定的代理</replace>\n<find>\"test latency\"</find>\n<replace>\"测试延迟\"</replace>\n<find>\"show or hide proxies\"</find>\n<replace>\"显示或隐藏代理\"</replace>\n<find>\"Update\",\"Download\",\"Copy URL\",\"取消\"</find>\n<replace>\"更新(原版)\",\"下载(原版)\",\"复制URL(原版)\",\"取消\"</replace>\n<find>items:n}\\);case 4:return</find>\n<replace>items:[\"静默\",\"错误\",\"警告\",\"信息\",\"调试\"],}\\);case 4:return</replace>\n<find>e._s\\(e.logLevel\\)</find>\n<replace>\\(\"silent\"==e._s\\(e.logLevel\\)?\"静默\":\"error\"==e._s\\(e.logLevel\\)?\"错误\":\"warn\"== e._s\\(e.logLevel\\)?\"警告\":\"warning\"== e._s\\(e.logLevel\\)?\"警告\":\"info\"== e._s\\(e.logLevel\\)?\"信息\":\"debug\"==e._s\\(e.logLevel\\)?\"调试\":e._s\\(e.logLevel\\)\\)</replace>\n<find>fromNow\\(\\)</find>\n<replace>locale\\('zh-cn'\\).fromNow\\(\\)</replace>\n<find>\"Install\",\"Remove\",\"Customize\"</find>\n<replace>\"安装\",\"卸载\",\"定制\"</replace>\n<find>interfaceName\\|\\|\"Select\"</find>\n<replace>interfaceName\\|\\|\"选择\"</replace>\n<find>\"Image not found\"</find>\n<replace>\"找不到图片!\"</replace>\n<find>\"The image failed to load, click to redirect to the website.\"</find>\n<replace>\"图片加载失败，点击重定向至网站\"</replace>\n<find>this.isRecording?\"recording</find>\n<replace>this.isRecording?\"记录中</replace>\n<find>message:\"silent will prevent .log file to generate on next startup\",</find>\n<replace>message:\"静默将阻止 .log 文件在下次启动时生成, 而调试将收集所有运行信息至 .log 文件\",</replace>\n<find>\"https://github.com/Fndroid/clash_for_windows_pkg\"</find>\n<replace>\"https://github.com/Z-Siqi/Clash-for-Windows_Chinese-Attached\"</replace>\n<find>Restarting core</find>\n<replace>重启内核</replace>\n<find>\":\"Updating</find>\n<replace>\":\"更新中</replace>\n<find>UpdateTime=\"Updating</find>\n<replace>UpdateTime=\"更新中</replace>\n<find>e._v\\(\"Loading</find>\n<replace>e._v\\(\"加载中</replace>\n<find>return this.isRecording\\?\"recording</find>\n<replace>return this.isRecording\\?\"记录中</replace>\n<find>CMD with proxy</find>\n<replace>终端和代理</replace>\n<find>=hide</find>\n<replace>=隐藏</replace>\n<find>could not update provider</find>\n<replace>无法更新提供者</replace>\n<find>DHCP Server</find>\n<replace>DHCP 服务器</replace>\n<find>Local IP Address</find>\n<replace>本地 IP 地址</replace>\n<find>\"Configuration\"</find>\n<replace>\"配置\"</replace>\n<find>Do you want to restart the APP</find>\n<replace>是否要重启APP</replace>\n<find>\"Restart\"</find>\n<replace>\"重新启动\"</replace>\n<find>clash core startup failed</find>\n<replace>clash核心启动失败</replace>\n<find>restore proxy group </find>\n<replace>恢复代理组 </replace>\n<find>netsh interface show interface</find>\n<replace>netsh 界面 显示界面</replace>\n<find>TUN mode enable but no interface-name in this YAML</find>\n<replace>启用 TUN 模式但此 YAML 中没有接口名称</replace>\n<find>Could not edit proxy gorup type</find>\n<replace>无法编辑代理组类型</replace>\n<find>\"Server\"</find>\n<replace>\"服务器\"</replace>\n<find>PAC Content</find>\n<replace>PAC内容</replace>\n<find>Script Interval</find>\n<replace>脚本间隔</replace>\n<find>Automatic Upgrade</find>\n<replace>自动升级</replace>\n<find>Try to repair</find>\n<replace>尝试修复</replace>\n<find>Logs Folder</find>\n<replace>日志文件夹</replace>\n<find>\"Home Directory\"</find>\n<replace>\"主目录\"</replace>\n<find>\"Errors\"</find>\n<replace>\"错误\"</replace>\n<find>Stop Sorting</find>\n<replace>停止排序</replace>\n<find>Proxy or Policy</find>\n<replace>代理或策略</replace>\n<find>  Content</find>\n<replace>  内容</replace>\n<find>Create a new rule</find>\n<replace>创建新规则</replace>\n<find>Skip Cert Verify</find>\n<replace>跳过证书验证</replace>\n<find>Script Interval</find>\n<replace>脚本间隔</replace>\n<find>\"Automatic Upgrade\"</find>\n<replace>\"自动升级\"</replace>\n<find>Automatic Upgrade completed</find>\n<replace>自动升级完成</replace>\n<find>make diff</find>\n<replace>制作diff</replace>\n<find>You can make some changes to a profile then we merge them for you when you refresh the profile</find>\n<replace>你可以对配置文件进行一些更改，然后会在你更新配置文件时为你合并它们</replace>\n<find>Init diff files</find>\n<replace>初始化 diff 文件</replace>\n<find>\"Delete diff files\"</find>\n<replace>\"删除 diff 文件\"</replace>\n<find>Update provider</find>\n<replace>更新提供者</replace>\n<find>Update Cron </find>\n<replace>更新定时程序Cron </replace>\n<find>matching parsers</find>\n<replace>个匹配解析器</replace>\n<find>Found </find>\n<replace>找到 </replace>\n<find>\"Update\",</find>\n<replace>\"更新\",</replace>\n<find>\"Show in folder\"</find>\n<replace>\"打开文件所在位置\"</replace>\n<find>\"TAP device\"</find>\n<replace>\"虚拟网卡安装（TAP 模式）\"</replace>\n<find>\"Rules\"</find>\n<replace>\"规则\"</replace>\n<find>\"QRCode\",</find>\n<replace>\"二维码\",</replace>\n<find>text:\"Copy\"</find>\n<replace>text:\"复制\"</replace>\n<find>text:\"Reorder\"</find>\n<replace>text:\"重新排序\"</replace>\n<find>hint:\"update\"</find>\n<replace>hint:\"更新\"</replace>\n<find>\"Show:\"</find>\n<replace>\"显示:\"</replace>\n<find>\"Hide:\"</find>\n<replace>\"隐藏:\"</replace>\n<find>IPNet\"</find>\n<replace>网络\"</replace>\n<find>Run script</find>\n<replace>运行脚本</replace>\n<find>\"Actions\"</find>\n<replace>\"操作(Actions)\"</replace>\n<find>\"General\"</find>\n<replace>\"主页\"</replace>\n<find>\"Scripts\"</find>\n<replace>\"脚本\"</replace>\n<find>\"Custom\"</find>\n<replace>\"自定义\"</replace>\n<find>\"section-general\"</find>\n<replace>\"section-主页\"</replace>\n<find>\"section-appearance\"</find>\n<replace>\"section-外观\"</replace>\n<find>\"section-system-proxy\"</find>\n<replace>\"section-系统代理\"</replace>\n<find>\"section-profile-mixin\"</find>\n<replace>\"section-配置文件-mixin\"</replace>\n<find>\"section-proxies\"</find>\n<replace>\"section-代理\"</replace>\n<find>\"section-connections\"</find>\n<replace>\"section-连接\"</replace>\n<find>\"section-outbound\"</find>\n<replace>\"section-选择流量出接口\"</replace>\n<find>\"section-child-processes\"</find>\n<replace>\"section-子进程\"</replace>\n<find>\"section-profiles\"</find>\n<replace>\"section-配置\"</replace>\n<find>\"section-actions\"</find>\n<replace>\"section-操作(actions)\"</replace>\n<find>\"section-shortcuts\"</find>\n<replace>\"section-快捷键\"</replace>\n<find>Hide Tray Icon</find>\n<replace>隐藏托盘图标</replace>\n<find>Custom Editor Command</find>\n<replace>自定义编辑器命令</replace>\n<find>hint:\"Update\"</find>\n<replace>hint:\"更新\"</replace>\n<find>\"Scroll to selected proxy\"</find>\n<replace>\"移动到选定的代理\"</replace>\n<find>\"Test latency\"</find>\n<replace>\"测试延迟\"</replace>\n<find>\"Show or hide proxies\"</find>\n<replace>\"显示或隐藏代理\"</replace>\n<find>\"TUN Mode\"</find>\n<replace>\"TUN 模式\"</replace>\n<find>To enable this mode, please install Service Mode first</find>\n<replace>类似于虚拟网卡，启用后可代理所有应用。要启用此模式，请先安装服务模式</replace>\n<find>\"TUN Mode Settings\"</find>\n<replace>\"TUN 模式设置\"</replace>\n<find>Fallback DNS Servers</find>\n<replace>后备 DNS 服务器</replace>\n<find>\"Fake IP Filter\"</find>\n<replace>\"Fake IP过滤器\"</replace>\n<find>\"TUN Stack\"</find>\n<replace>\"TUN 码(TUN Stack)\"</replace>\n<find>\"Auto Detect Interface\"</find>\n<replace>\"自动检测接口\"</replace>\n<find>\"DNS Servers\"</find>\n<replace>\"DNS 服务器\"</replace>\n<find>v\\(\"Abort\"</find>\n<replace>v\\(\"中止\"</replace>\n<find>Edit Mixin content</find>\n<replace>编辑 Mixin 内容</replace>\n<find>Fake IP Cache</find>\n<replace>Fake IP 缓存</replace>\n<find>title:\"Cache\"</find>\n<replace>title:\"缓存\"</replace>\n<find>\"Reset\"</find>\n<replace>\"重置\"</replace>\n<find>DNS Hijacks</find>\n<replace>DNS 劫持</replace>\n<find>\"Use CFW Editor\"</find>\n<replace>\"使用 CFW 编辑器\"</replace>\n<find>\"Cannot edit in read-only editor\"</find>\n<replace>\"无法在只读编辑器中编辑(请在右边进行编辑)\"</replace>\n<find>items:i}\\);case 4:return</find>\n<replace>items:[\"静默\",\"错误\",\"警告\",\"信息\",\"调试\"],}\\);case 4:return</replace>\n<find>\"Start with Linux\"</find>\n<replace>\"开机自启动\"</replace>\n<find>\"Start with macOS\"</find>\n<replace>\"开机自启动\"</replace>\n<find>\"GeoIP Database\"</find>\n<replace>\"GeoIP 数据库更新\"</replace>\n<find>\"Preload\"</find>\n<replace>\"预载\"</replace>\n<find>\"lines\"</find>\n<replace>\"线程\"</replace>\n<find>hint:\"ESC\"</find>\n<replace>hint:\"退出(ESC)\"</replace>\n<find>\"Ctrl\\+S\"</find>\n<replace>\"保存(Ctrl+S)\"</replace>\n<find>\"Experimental Features\"</find>\n<replace>\"实验功能\"</replace>\n<find>\"Select a interface\"</find>\n<replace>\"选择一个接口\"</replace>\n<find>\" had been released\"</find>\n<replace>\" 已发布\"</replace>\n<find>\"Copy Commands Only\"</find>\n<replace>\"仅复制命令\"</replace>\n<find>\"Please confirm\"</find>\n<replace>\"请确认\"</replace>\n<find>\"config.yaml and country.mmdb will be removed.\"</find>\n<replace>\"config.yaml 和 country.mmdb 将被删除.\"</replace>\n<find>title:\"Router\"</find>\n<replace>title:\"路由器\"</replace>\n<find> diff files</find>\n<replace> diff 文件</replace>\n<find>\"OK\",\"Edit in Text Mode\"</find>\n<replace>\"好的\",\"在文本模式下编辑\"</replace>\n<find>\"upgrade app failed with error</find>\n<replace>\"升级应用程序失败并出现错误</replace>\n<find>\"Headers\"</find>\n<replace>\"标头\"</replace>\n<find>from\\(this.now,!0</find>\n<replace>locale\\('zh-cn'\\).from\\(this.now</replace>\n<find>Changes contains conflict, \"Make changes\" to solve issues.</find>\n<replace>更改包含冲突, \"修改(diff)文件\" 以解决问题</replace>\n<find>\"Manage\"</find>\n<replace>\"管理\"</replace>\n<find>  Document</find>\n<replace>  帮助文档</replace>\n<find>\"Make changes\"</find>\n<replace>\"修改文件\"</replace>\n<find>Fail to merge profiles, \"Make changes\" to solve issues.</find>\n<replace>无法合并配置文件, \"修改(diff)文件\" 以解决问题</replace>\n<find>\"Edit externally\"</find>\n<replace>\"在系统中编辑\"</replace>\n<find>\"Scroll to group\"</find>\n<replace>\"移动至组\"</replace>\n<find>\"Are you sure to quit</find>\n<replace>\"你确定要退出吗</replace>\n<find>\"Don't Save\"</find>\n<replace>\"不保存\"</replace>\n<find>\"Do you want to save the changes</find>\n<replace>\"是否要保存更改</replace>\n<find>\"fail to restore last profile with error</find>\n<replace>\"无法恢复最后一个配置文件并出现错误</replace>\n<find>'Fail to merge profiles,</find>\n<replace>'无法合并配置文件,</replace>\n<find> to solve issues</find>\n<replace> 以解决问题</replace>\n<find>\"TAP mode enable but no interface-name in this YAML\"</find>\n<replace>\"TAP 模式启用, 但此 YAML 中没有接口名称\"</replace>\n<find>Do you want to set a new uuidv4 secret in</find>\n<replace>是否要在</replace>\n<find>and restart the APP</find>\n<replace>中设置新的uuidv4 secret并重启 APP</replace>\n<find>\"Core Secret\"</find>\n<replace>\"核心Secret\"</replace>\n<find>secret is currently empty, we strongly recommend to generate one</find>\n<replace>secret 当前为空，我们强烈建议生成一个</replace>\n<find>\"Security\"</find>\n<replace>\"安全\"</replace>\n<find>\"Generate\":\"Update\"</find>\n<replace>\"生成更新\":\"更新\"</replace>\n<find>\"Process Path\"</find>\n<replace>\"进程路径\"</replace>\n<find>\"Random Mixed Port\"</find>\n<replace>\"随机混合端口\"</replace>\n<find>hint:\"random mixed port\"</find>\n<replace>hint:\"随机混合端口\"</replace>\n<find>\"run as admin\"</find>\n<replace>\"以管理员身份运行\"</replace>\n<find>\"Overall foreground color. This color is only used if not overridden by a component</find>\n<replace>\"整体前景色。这个颜色只在没有被组件覆盖的情况下使用</replace>\n<find>\"Overall foreground color for error messages. This color is only used if not overridden by a component</find>\n<replace>\"错误信息的整体前景色。这个颜色只在没有被组件覆盖的情况下使用</replace>\n<find>\"Color needs a value\"</find>\n<replace>\"颜色需要一个值\"</replace>\n<find>\"Invalid color ctor argument\"</find>\n<replace>\"无效颜色参数\"</replace>\n<find>\"Proxy Name\"</find>\n<replace>\"代理名称\"</replace>\n<find>\"Could not edit proxy type</find>\n<replace>\"无法编辑代理类型</replace>\n<find>\"Clash Core Service started by Clash for Windows\"</find>\n<replace>\"用于 Clash 代理开机自启的服务\"</replace>\n<find>\"Tray Proxy Groups Style\"</find>\n<replace>\"托盘代理组样式\"</replace>\n<find>\"Default\",\"Submenu\",\"Hidden\"</find>\n<replace>\"默认\",\"折叠\",\"隐蔽\"</replace>\n<find>hint:\"Edit\"</find>\n<replace>hint:\"编辑\"</replace>\n<find>text:\"Settings\"</find>\n<replace>text:\"设置\"</replace>\n<find>title:\"Settings\"</find>\n<replace>title:\"设置\"</replace>\n<find>e._v\\(\"Settings\"</find>\n<replace>e._v\\(\"设置\"</replace>\n<find>hint:\"Settings\"</find>\n<replace>hint:\"设置\"</replace>\n<find>e._v\\(\"Network Interfaces\"</find>\n<replace>e._v\\(\"网络端口\"</replace>\n<find>hint:\"network interfaces\"</find>\n<replace>hint:\"网络端口\"</replace>\n<find>hint:\"terminal\"</find>\n<replace>hint:\"终端\"</replace>\n<find>\"Show Process If Present\"</find>\n<replace>\"显示进程（如果存在）\"</replace>\n<find>\"Show Tray Proxy Delay Indicator\"</find>\n<replace>\"在托盘代理中显示节点可用性\"</replace>\n<find>\"add firewall rules</find>\n<replace>\"添加防火墙规则</replace>\n<find>for Allow LAN and system stack</find>\n<replace>允许 LAN 和系统堆栈</replace>\n<find>items:\\[\"info\",\"debug\"\\]</find>\n<replace>items:\\[\"信息\",\"调试\"\\]</replace>\n<find>\"Update\"</find>\n<replace>\"更新\"</replace>\n<find>\"connected\":\"disconnected\"</find>\n<replace>\"已连接\":\"断开连接\"</replace>\n<find>Copy Domain:Port</find>\n<replace>复制域:端口</replace>\n<find>\"Reload APP\"</find>\n<replace>\"重新加载APP\"</replace>\n<find>\"Fail to \"</find>\n<replace>\"未能\"</replace>\n<find>\\(\\),\" service\"</find>\n<replace>\\(\\),\"服务模式\"</replace>\n<find>  Set Clash Core's</find>\n<replace>  将 Clash Core 的</replace>\n<find>\" to a random RFC</find>\n<replace>\" 设置为随机的 RFC</replace>\n<find>  4122 version 4 UUID, so that Clash REST API cannot be accessed</find>\n<replace>  4122 版本 4 UUID，这样 Clash REST API 就不能被任意访问。</replace>\n<find>  arbitrarily. </find>\n<replace>   </replace>\n<find>\"The value is stored in the</find>\n<replace>\"该值存储在于</replace>\n<find>\"Text editor used by Settings.\"</find>\n<replace>\"设置使用的文本编辑器\"</replace>\n<find>e._v\\(\"For\\\\n  </find>\n<replace>e._v\\(\"对于\\\\n  </replace>\n<find>\", the command should only return control</find>\n<replace>\", 该命令只应在编辑文件关闭后返回控制权。</replace>\n<find>  after the edited file is closed. For example:</find>\n<replace>  例如:</replace>\n<find>Set whether to allow pop-up system-level notifications</find>\n<replace>设置是否允许弹出系统级通知</replace>\n<find>Set whether to display dashboard at startup</find>\n<replace>设置是否在启动时显示仪表板</replace>\n<find>Set whether to update automatically, after turning on the new</find>\n<replace>设置是否自动更新，</replace>\n<find>version will be updated in the background, the next launch will be</find>\n<replace>开启新版本后后台更新，</replace>\n<find>   the latest version</find>\n<replace>   下次启动为最新版本</replace>\n<find>Set whether to hide the taskbar icon or not</find>\n<replace>设置是否隐藏任务栏图标</replace>\n<find>Set whether the delay indicator is displayed in the proxy of the</find>\n<replace>设置是否在任务栏菜单的代理中</replace>\n<find>taskbar menu\"</find>\n<replace>显示延迟指示器\"</replace>\n<find>Set whether to enable custom taskbar</find>\n<replace>设置是否启用自定义任务栏</replace>\n<find> hover window</find>\n<replace> 悬停窗口</replace>\n<find>\"Turn on to forcibly add scheme to the system proxy settings.\"</find>\n<replace>\"打开以强制将方案添加到系统代理设置\"</replace>\n<find>  This is not for general-purpose use, and indeed violates the</find>\n<replace>  这不是通用用途,</replace>\n<find>  current spec of Windows. Consider it only when an old Python</find>\n<replace>  并且确实违反了当前的 Windows 规范.</replace>\n<find>  program has trouble.\"</find>\n<replace>  仅在使用旧的 Python 时才考虑它.\"</replace>\n<find>For details, see</find>\n<replace>有关详细信息，请参阅</replace>\n<find>Set whether to close all connections when switching modes</find>\n<replace>设置切换模式时是否关闭所有连接</replace>\n<find>Set whether the profile is selected after updating</find>\n<replace>设置是否在更新后选择已更新的配置文件</replace>\n<find>\"Turn on to terminate app processes after closing the dashboard,</find>\n<replace>\"关闭仪表板后打开以终止应用程序进程,</replace>\n<find>  but keep Clash Core running in the background. Most of the</find>\n<replace>  但保持 Clash Core 在后台运行。</replace>\n<find>  features provided by CFW will be unavailable then.</find>\n<replace>  届时，CFW 提供的大部分功能将不可用</replace>\n<find>\"Relies on the \"</find>\n<replace>\"依赖\"</replace>\n<find>e._v\\(\"docs\"</find>\n<replace>e._v\\(\"帮助文档\"</replace>\n<find>Set the taskbar icon in the default state</find>\n<replace>将任务栏图标设置为默认状态</replace>\n<find>Set the taskbar icon when the System Proxy is turned on</find>\n<replace>设置系统代理开启时的任务栏图标</replace>\n<find>\"Modify and customize your profiles after download but before</find>\n<replace>\"在下载后修改和自定义你的配置，在</replace>\n<find>\"Diff\"\\)]\\),e._v\\(\".</find>\n<replace>\"Diff\"\\)]\\),e._v\\(\"开始之前</replace>\n<find>Set the code to be called when the Action is executed</find>\n<replace>设置执行Action时要调用的代码</replace>\n<find>Set child processes to be spawned with dashboard</find>\n<replace>设置要使用仪表板生成的子进程</replace>\n<find>\"Turn on to generate a new proxy server port number when the app</find>\n<replace>\"打开应用程序启动时生成新的代理服务器端口号。</replace>\n<find>  starts.\"</find>\n<replace>  \"</replace>\n<find>\"The value is shown as Port in General, and is</find>\n<replace>\"该值在 General 中显示为 Port，</replace>\n<find>  stored as</find>\n<replace>  并存储为</replace>\n<find>   in the\\\\n</find>\n<replace>   在\\\\n</replace>\n<find>Set whether to use a random port as the core controller port \\(the</find>\n<replace>设置是否使用随机端口作为核心控制器端口 \\(</replace>\n<find>port section of external-controller in Home</find>\n<replace>Home Directory/config.yaml中external-controller</replace>\n<find>    Directory/config.ymal</find>\n<replace>    的端口部分</replace>\n<find>Set whether to hide unselectable proxy groups in the Proxies</find>\n<replace>设置是否隐藏代理模块中不可选择的代理组</replace>\n<find>Set whether to show Process Name\\(if present\\) in Connections</find>\n<replace>设置是否显示连接中的进程名称（如果存在） </replace>\n<find>\"br\"\\),e._v\\(\"Set</find>\n<replace>\"br\"\\),e._v\\(\"</replace>\n<find>  the individual profile request header content in the Profiles</find>\n<replace>  在 Profiles 模块中设置单独的配置文件请求头内容</replace>\n<find>  module\"\\)</find>\n<replace>  \"\\)</replace>\n<find>    profiles</find>\n<replace>    </replace>\n<find>Set whether to close all connections when switching</find>\n<replace>设置配置文件改变时是否关闭所有连接</replace>\n<find>e._v\\(\"Drag\"</find>\n<replace>e._v\\(\"\"</replace>\n<find>  to control.</find>\n<replace> </replace>\n<find>icons between \"show\" and \"hide\"</find>\n<replace>在“显示”和“隐藏”之间拖动图标来控制\"</replace>\n<find>Set the proxy group style in the taskbar menu</find>\n<replace>在任务栏菜单中设置代理组样式</replace>\n<find>e._v\\(\"Default\"</find>\n<replace>e._v\\(\"默认\"</replace>\n<find>Flat all proxy groups</find>\n<replace>扁平化所有代理组</replace>\n<find>e._v\\(\"Submenu\"</find>\n<replace>e._v\\(\"折叠\"</replace>\n<find>Show proxy groups in submenu</find>\n<replace>在折叠中显示代理组</replace>\n<find>e._v\\(\"Hidden\"</find>\n<replace>e._v\\(\"隐藏\"</replace>\n<find>Hide proxy groups</find>\n<replace>隐藏代理组</replace>\n<find>\"Windows accepts an HTTP endpoint or PAC \\(proxy</find>\n<replace>\"Windows 接受 HTTP 端点或 PAC</replace>\n<find>  auto-configuration\\) script. The HTTP mode is generally</find>\n<replace>  （代理自动配置）脚本。</replace>\n<find>  sufficient.\"</find>\n<replace>  HTTP 模式通常就足够了。\"</replace>\n<find>Set the type of chain displayed in the Connections module</find>\n<replace>设置连接模块中显示的链类型</replace>\n<find>in Connections</find>\n<replace> </replace>\n<find>Set the system proxy Host part to static content, if not set, the</find>\n<replace>将系统代理主机部分设置为静态内容, 如果没有设置,</replace>\n<find>host defaults to</find>\n<replace>主机默认为</replace>\n<find>Set the display width of each proxy in the Proxies module</find>\n<replace>在代理界面中设置每个节点的显示宽度</replace>\n<find>Set the width of the minilist in the Proxies module</find>\n<replace>设置代理界面导航栏宽度</replace>\n<find>Set the URL used when clicking the Delay Test button in the</find>\n<replace>设置在代理模块中单击延迟测试按钮时使用的 URL</replace>\n<find>  Proxies module</find>\n<replace> </replace>\n<find>Set the Proxies module to display the keyword filter icon or</find>\n<replace>设置代理模块是否显示关键字过滤器图标</replace>\n<find>  not</find>\n<replace> </replace>\n<find>Set the strategy for closing connections when switching proxies\\\\n              in the Proxies module</find>\n<replace>在代理模块中设置切换代理时关闭连接的策略</replace>\n<find>e._v\\(\"None\"</find>\n<replace>e._v\\(\"不中断\"</replace>\n<find>Do not close</find>\n<replace>不关闭任何链接</replace>\n<find>e._v\\(\"Chain\"</find>\n<replace>e._v\\(\"旧链接\"</replace>\n<find>Close connections with proxy name in chain</find>\n<replace>中断通过该代理组的连接</replace>\n<find>e._v\\(\"All\"</find>\n<replace>e._v\\(\"全部\"</replace>\n<find>Close all connections</find>\n<replace>关闭所有连接</replace>\n<find>\"Bypass \\(don't use\\) the proxy server when visiting certain\\\\n            addresses.</find>\n<replace>\"访问某些地址时绕过（不使用）代理服务器。</replace>\n<find>The interpretation of this list is OS-dependent and app-dependent.\\\\n            In other words, your operating systems and applications may\\\\n            evaluate the rules differently.</find>\n<replace>此列表的解释取决于操作系统和应用程序. 换句话说，您的操作系统和应用程序可能会以不同的方式评估规则</replace>\n<find>\"Use a proxy server in Windows</find>\n<replace>\"在 Windows 中使用代理服务器</replace>\n<find>\"Enter proxy server settings on Mac\"</find>\n<replace>\"在 Mac 上输入代理服务器设置\"</replace>\n<find>Set interface name to overwrite like Mixin, will be removed in</find>\n<replace>像 Mixin 一样设置接口名覆盖，以后会移除</replace>\n<find>  the future</find>\n<replace> </replace>\n<find>  Docs</find>\n<replace>  在线文档</replace>\n<find>Set the path to the profiles folder, default</find>\n<replace>设置配置文件文件夹的路径，如果在CFW软件根目录下创建名为 data 的文件夹则会开启便携模式，默认路径</replace>\n<find>e._v\\(\"Proxy\"</find>\n<replace>e._v\\(\"节点名\"</replace>\n<find>\" - Proxy name\"</find>\n<replace>\"\"</replace>\n<find>e._v\\(\"Group\"</find>\n<replace>e._v\\(\"分组名\"</replace>\n<find>\" - Group name\"</find>\n<replace>\"\"</replace>\n<find>e._v\\(\"Both\"</find>\n<replace>e._v\\(\"全部\"</replace>\n<find>Proxy name and group name\"</find>\n<replace>节点名和分组名\"</replace>\n<find>Set the request header content when updating a profile</find>\n<replace>更新配置文件时设置请求标头内容</replace>\n<find>Set the number of log lines to be preloaded in the Logs module,</find>\n<replace>在 Logs 模块中设置要预加载的日志行数,</replace>\n<find>  set to 0 to not preload\"</find>\n<replace>  设置为 0 不预加载\"</replace>\n<find>  colors:</find>\n<replace>  颜色:</replace>\n<find>  - available</find>\n<replace>  - 可用的</replace>\n<find>  - timeout</find>\n<replace>  - 超时</replace>\n<find>  - unknown</find>\n<replace>  - 未知</replace>\n<find>e._v\\(\"Alive\"</find>\n<replace>e._v\\(\"活动\"</replace>\n<find>e._v\\(\"Closed\"</find>\n<replace>e._v\\(\"关闭\"</replace>\n<find>,\"DNS Mode\"</find>\n<replace>,\"DNS 模式\"</replace>\n<find>  Set the URLs that do not verify the certificate when requesting</find>\n<replace>  设置请求时不验证证书的URL</replace>\n<find>  Do \"</find>\n<replace>   \"</replace>\n<find>e._v\\(\"not\"</find>\n<replace>e._v\\(\"不要更改它\"</replace>\n<find>\" change it if you do not know what it is</find>\n<replace>\" , 除非你知道它是什么</replace>\n<find>\"Allow Unsafe URLs\"</find>\n<replace>\"允许不安全的 URL\"</replace>\n<find>,e._v\\(\".\"\\)]</find>\n<replace>,e._v\\(\"内\"\\)]</replace>\n<find> Clash documentation</find>\n<replace>Clash文档</replace>\n<find>\"Preview the final configuration file that was submitted to Clash Core\"</find>\n<replace>\"预览提交给 Clash Core 的最终配置文件\"</replace>\n<find>hint:\"Esc\"</find>\n<replace>hint:\"退出\"</replace>\n<find>\"Use Mode Icons\"</find>\n<replace>\"使用连接模式图标\"</replace>\n<find>\"Use first letter of current mode as tray icon\"</find>\n<replace>\"使用当前选择的模式作为托盘图标\"</replace>\n<find>\"Visible On All Workspaces\"</find>\n<replace>\"在所有工作区中可见\"</replace>\n<find>\"Install method:\"</find>\n<replace>\"安装方法:\"</replace>\n<find>\"schtasks\\(recommended\\)\"</find>\n<replace>\"schtasks\\(推荐\\)\"</replace>\n<find>\"scroll to view more\"</find>\n<replace>\"滑动鼠标以查看更多\"</replace>\n<find>Make changes to a profile then we merge them for you when you refresh it</find>\n<replace>对配置文件进行更改，然后在更新时合并它们</replace>\n<find>l\"\\>Docs</find>\n<replace>l\"\\>文档</replace>\n<find>\"Show actual file\"</find>\n<replace>\"显示实际文件\"</replace>\n<find>\"Font Size\"</find>\n<replace>\"字体大小\"</replace>\n<find>\"Copy URL MD5\"</find>\n<replace>\"复制 URL MD5\"</replace>\n<find>\"Follow link\"</find>\n<replace>\"进入链接\"</replace>\n<find>\"Execute command\"</find>\n<replace>\"执行命令\"</replace>\n<find>hint:\"Upload Speed\"</find>\n<replace>hint:\"上传速度\"</replace>\n<find>hint:\"Download Speed\"</find>\n<replace>hint:\"下载速度\"</replace>\n<find>hint:\"Upload Traffic\"</find>\n<replace>hint:\"上传流量\"</replace>\n<find>hint:\"Download Traffic\"</find>\n<replace>hint:\"下载流量\"</replace>\n<find>hint:\"Destination\"</find>\n<replace>hint:\"目的地\"</replace>\n<find>title:\"CFW Editor\"</find>\n<replace>title:\"配置编辑器\"</replace>\n<find>\"Open web page\"</find>\n<replace>\"打开配置网站\"</replace>\n<find>\"DNS Query\"</find>\n<replace>\"DNS查询\"</replace>\n<find>placeholder:\"Host\"</find>\n<replace>placeholder:\"主机（Host）\"</replace>\n<find>\"Please input domain\"</find>\n<replace>\"请输入域名\"</replace>\n<find>   Lookup</find>\n<replace>   检索</replace>\n<find>\"Resolve a host using Clash core\"</find>\n<replace>\"使用 Clash core 解析 Host\"</replace>\n<find>copyLabel\",\"Copy\"</find>\n<replace>copyLabel\",\"复制\"</replace>\n<find>cutLabel\",\"Cut\"</find>\n<replace>cutLabel\",\"剪切\"</replace>\n<find>pasteLabel\",\"Paste\"</find>\n<replace>pasteLabel\",\"粘贴\"</replace>\n<find>e._v\\(\"Status\"</find>\n<replace>e._v\\(\"状态\"</replace>\n<find>e._v\\(\"Flags\"</find>\n<replace>e._v\\(\"标签\"</replace>\n<find>   Copy</find>\n<replace>   复制</replace>\n<find>\"Could not connect to Clash core, logs are not available.\"</find>\n<replace>\"无法连接到 Clash core 核心，日志不可用\"</replace>\n<find>\"Test script using by Script mode\"</find>\n<replace>\"使用脚本模式测试脚本\"</replace>\n<find>\"Script Test\"</find>\n<replace>\"脚本测试\"</replace>\n<find>e._v\\(\"Network\"</find>\n<replace>e._v\\(\"网络\"</replace>\n<find>e._v\\(\"DNS Mode\"</find>\n<replace>e._v\\(\"DNS模式\"</replace>\n<find>e._v\\(\"Host\"</find>\n<replace>e._v\\(\"主机\"</replace>\n<find>e._v\\(\"Source IP\"</find>\n<replace>e._v\\(\"源IP\"</replace>\n<find>e._v\\(\"Source Port\"</find>\n<replace>e._v\\(\"源端口\"</replace>\n<find>e._v\\(\"Destination IP\"</find>\n<replace>e._v\\(\"目的地IP\"</replace>\n<find>e._v\\(\"Destination Port\"</find>\n<replace>e._v\\(\"目的地端口\"</replace>\n<find>   Disclaimer Statement</find>\n<replace>   免责声明</replace>\n<find>This software is only intended for the purpose of learning and researching network technology. Users must comply with the laws and regulations in their respective regions and must not use it for illegal purposes. The software will not be held responsible for any actions of the user.</find>\n<replace>本软件仅供学习和研究网络技术之用，用户必须遵守所在地区的法律法规，不得用于非法用途，本软件不对任何人的行为负责。 </replace>\n<find>Users must strictly abide by the laws, regulations, and policies of their own countries/regions when using this software. Any consequences or liabilities resulting from violations of relevant laws, regulations, and policies shall be borne by the user.</find>\n<replace>用户在使用本软件时必须严格遵守所在国家/地区的法律、法规和政策。 因违反有关法律、法规和政策而导致的任何后果或责任由用户自行承担。</replace>\n<find>The software is not responsible for the transmission of content. Therefore, if any problems or consequences arise from the use of this software, the user shall bear all responsibility.</find>\n<replace>本软件不负责传输内容。 因此，如因使用本软件而产生任何问题或后果，由用户自行承担全部责任。</replace>\n<find>If the software violates any laws and regulations of the user's country/region, the user must immediately stop using it and bear the corresponding legal responsibility.</find>\n<replace>如本软件违反用户所在国家/地区的任何法律法规，用户必须立即停止使用并承担相应的法律责任。</replace>\n<find>While using this software, the user acknowledges and agrees that the software cannot guarantee network stability, accuracy, timeliness, and security. The software will not be held responsible for any connection problems or inability to connect caused by network congestion, firewall restrictions, DNS pollution, operator interference, and other reasons.</find>\n<replace>用户在使用本软件时，即承认并同意本软件不能保证网络的稳定性、准确性、及时性和安全性。 因网络拥塞、防火墙限制、DNS污染、运营商干扰等原因造成的连接问题或无法连接，本软件不承担任何责任。</replace>\n<find>The software does not provide technical support and is not responsible for any direct or indirect losses caused by the user's use of this software, including but not limited to property damage, data loss, and other forms of loss.</find>\n<replace>本软件不提供技术支持，对因用户使用本软件而造成的任何直接或间接损失，包括但不限于财产损失、数据丢失及其他形式的损失不承担任何责任。</replace>\n<find>The software has made every effort to ensure the stability and safety of the software, but will not be held responsible for any direct or indirect losses suffered by the user due to the use of this software.</find>\n<replace>本软件已尽力确保软件的稳定性和安全性，但对用户因使用本软件而遭受的任何直接或间接损失不承担任何责任。</replace>\n<find>The software reserves the right to change the terms and conditions at any time. Once the terms and conditions change, an announcement will be posted on the software page. Users need to pay attention and abide by the latest version of the terms and conditions.</find>\n<replace>软件保留随时更改条款和条件的权利。 一旦条款和条件发生变化，将在软件页面上发布公告。 用户需关注并遵守最新版本的条款和条件。</replace>\n<find>\" success, path: \"</find>\n<replace>\" 成功, 路径: \"</replace>\n<find>\"Success, result: \"</find>\n<replace>\"成功, 结果: \"</replace>\n<find>\"Fail, error: \"</find>\n<replace>\"失败, 错误: \"</replace>\n<find>\" - Delay of a latency test\"</find>\n<replace>\" - 延迟测试的延迟\"</replace>\n<find>e._v\\(\"Mean Delay\"</find>\n<replace>e._v\\(\"平均延迟\"</replace>\n<find>\" - Average delay of two latency tests\"</find>\n<replace>\" - 两次延迟测试的平均延迟\"</replace>\n<find>\"Default\",\"Mean Delay\"</find>\n<replace>\"默认\",\"平均延迟\"</replace>\n<find>\"Delay Type\"</find>\n<replace>\"延迟类型\"</replace>\n<find>\"Reset DNS Settings\"</find>\n<replace>\"重置 DNS 设置\"</replace>\n<find>e._v\\(\"Custom Servers\"</find>\n<replace>e._v\\(\"自定义服务器\"</replace>\n<find>\"Show/Hide timed-out proxies\"</find>\n<replace>\"显示/隐藏超时节点\"</replace>\n<find>\"GUI Data Folder\"</find>\n<replace>\"GUI数据文件夹\"</replace>\n<find>\"Controls whether the diff editor shows the diff side by side or inline.\"</find>\n<replace>\"控制 diff 编辑器是并排还是内联显示 diff\"</replace>\n<find>\"Side by side mode\"</find>\n<replace>\"并排模式\"</replace>\n<find>\"Timeout in milliseconds after which diff computation is cancelled. Use 0 for no timeout.</find>\n<replace>\"以毫秒为单位的超时，之后差异计算被取消。 使用 0 表示没有超时</replace>\n<find>\"Maximum file size in MB for which to compute diffs. Use 0 for no limit.\"</find>\n<replace>\"计算差异的最大文件大小（以 MB 为单位）。 使用 0 表示没有限制\"</replace>\n<find>\"SSID Strategy\"</find>\n<replace>\"SSID策略\"</replace>\n<find>  Set the strategy for SSID matching, the first matched strategy\\\\n              will be used</find>\n<replace>  设置SSID匹配策略，第一个匹配的策略\\\\n              将被使用</replace>\n<find>\"Experimental Features\"</find>\n<replace>\"实验功能\"</replace>\n<find>\"Toggle Replace\"</find>\n<replace>\"切换到替换模式\"</replace>\n<find>\"label.find\",\"Find\"</find>\n<replace>\"label.find\",\"查找\"</replace>\n<find>\"placeholder.find\",\"Find\"</find>\n<replace>\"placeholder.find\",\"查找\"</replace>\n<find>\"Previous Match\"</find>\n<replace>\"上一个匹配\"</replace>\n<find>\"Next Match\"</find>\n<replace>\"下一个匹配\"</replace>\n<find>\"Find in Selection\"</find>\n<replace>\"在选择中查找\"</replace>\n<find>\"label.closeButton\",\"Close\"</find>\n<replace>\"label.closeButton\",\"关闭\"</replace>\n<find>.replace\",\"Replace\"</find>\n<replace>.replace\",\"替换\"</replace>\n<find>\"label.replaceButton\",\"Replace\"</find>\n<replace>\"label.replaceButton\",\"替换\"</replace>\n<find>\"label.replaceAllButton\",\"Replace All\"</find>\n<replace>\"label.replaceAllButton\",\"替换全部\"</replace>\n<find>\"Only the first {0} results are highlighted, but all find operations work on the entire text.\"</find>\n<replace>\"仅突出显示前 {0} 个结果，但所有查找操作都适用于整个文本\"</replace>\n<find>\"Text will be prefixed with ⇅ plus a single space, then used as a hint where input field keeps history\"</find>\n<replace>\"文本将以 ⇅ 加上一个空格作为前缀，然后用作输入字段保留历史记录的提示\"</replace>\n<find>,\"for history\"</find>\n<replace>,\"查看历史记录\"</replace>\n<find>\"No results\"</find>\n<replace>\"无结果\"</replace>\n<find>\"Match Case\"</find>\n<replace>\"匹配大小写\"</replace>\n<find>\"Match Whole Word\"</find>\n<replace>\"匹配全词\"</replace>\n<find>\"Use Regular Expression\"</find>\n<replace>\"使用正则表达式\"</replace>\n<find>\"Preserve Case\"</find>\n<replace>\"保留大写\"</replace>\n<find> failed with error: \"</find>\n<replace> 失败，错误: \"</replace>\n<find>\"Simple\",\"Detailed\"</find>\n<replace>\"简略\",\"详细\"</replace>\n<find>title:\"Source IP\"</find>\n<replace>title:\"源IP\"</replace>\n<find>title:\"Destination IP\"</find>\n<replace>title:\"目的地IP\"</replace>\n<find>title:\"Host\"</find>\n<replace>title:\"域名\"</replace>\n<find>title:\"Network\"</find>\n<replace>title:\"网络\"</replace>\n<find>title:\"Source Port\"</find>\n<replace>title:\"源端口\"</replace>\n<find>title:\"Destination Port\"</find>\n<replace>title:\"目的地端口\"</replace>\n<find>title:\"DNS Mode\"</find>\n<replace>title:\"DNS模式\"</replace>\n<find>  Bind: </find>\n<replace>  绑定地址: </replace>\n<find>\"New Bind Address\"</find>\n<replace>\"新绑定地址\"</replace>\n<find>\"Change Bind Address\"</find>\n<replace>\"更改绑定地址\"</replace>\n<find>\"Allow LAN will only bind to address you set, \\* means all interfaces\"</find>\n<replace>\"允许LAN只会绑定到您设置的地址，\\* 表示所有接口\"</replace>\n<find>\"All traffic will be routed through the selected proxy</find>\n<replace>\"所有流量将通过选定的代理路由</replace>\n<find>\"All traffic will be routed according to the rules</find>\n<replace>\"所有流量将根据规则进行路由</replace>\n<find>\"All traffic will go directly</find>\n<replace>\"所有流量都会直连</replace>\n<find>\"All traffic will be routed according to the script</find>\n<replace>\"所有流量将根据脚本进行路由</replace>\n<find>\"Mode has been changed to \"</find>\n<replace>\"模式已更改为 \"</replace>\n<find>  All traffic will go directly</find>\n<replace>  所有流量都会直连</replace>\n<find>e._v\\(\"Global\"</find>\n<replace>e._v\\(\"全局\"</replace>\n<find>e._v\\(\"Rule\"</find>\n<replace>e._v\\(\"规则\"</replace>\n<find>e._v\\(\"Direct\"</find>\n<replace>e._v\\(\"直连\"</replace>\n<find>\"Routed through the selected proxy\"</find>\n<replace>\"通过选定的代理路由\"</replace>\n<find>\"Routed according to the rules\"</find>\n<replace>\"按规则路由\"</replace>\n<find>\"Go directly\"</find>\n<replace>\"直接连接\"</replace>\n<find>\"Routed according to the script\"</find>\n<replace>\"根据脚本进行路由\"</replace>\n<find>  Set the text in title bar, some placeholders for replacement</find>\n<replace>  设置标题栏的文字，一些替换的占位符</replace>\n<find>\"Text to display in title bar\"</find>\n<replace>\"要在标题栏中显示的文本\"</replace>\n<find>\"Title Bar Text\"</find>\n<replace>\"标题栏文本\"</replace>\n<find>\" - System Proxy status, On or Off\"</find>\n<replace>\" - 系统代理状态，打开或关闭\"</replace>\n<find>\" - Current proxy mode\"</find>\n<replace>\" - 当前代理模式\"</replace>\n<find>\" - TUN Mode status, On or Off\"</find>\n<replace>\" - TUN 模式状态，开或关\"</replace>\n<find>\" - Mixin status, On or Off\"</find>\n<replace>\" - Mixin 状态，开或关\"</replace>\n<find>\"Strategy\"</find>\n<replace>\"策略\"</replace>\n<find>  Multiple SSIDs are joined by \"</find>\n<replace>  多个 SSID 的连接方式为\"</replace>\n<find>\"Get Current SSID\"</find>\n<replace>\"获取当前的 SSID\"</replace>\n<find>\"Current SSID\"</find>\n<replace>\"当前的 SSID\"</replace>\n<find>\"Copy the SSID to the clipboard\"</find>\n<replace>\"将 SSID 复制到剪贴板\"</replace>\n<find>\"Fetch\"</find>\n<replace>\"获取\"</replace>\n<find>title:\"SSID\"</find>\n<replace>title:\"服务集标识（SSID）\"</replace>\n<find>e._v\\(\"mode: \"\\+e._s\\(e.mode\\)\\)</find>\n<replace>e._v\\(\"模式: \"+\\(\"global\"==e._s\\(e.mode\\)?\"全局\":\"rule\"==e._s\\(e.mode\\)?\"规则\":\"direct\"==e._s\\(e.mode\\)?\"直连\":\"script\"==e._s\\(e.mode\\)?\"脚本\":e._s\\(e.mode\\)\\)\\)</replace>\n<find>\"Check For Updates\"</find>\n<replace>\"检查更新\"</replace>\n<find>\" Set whether to check for updates every 6 hours\"</find>\n<replace>\" 设置是否每6小时检查一次更新\"</replace>\n"
  },
  {
    "path": "chinese_file/Manual-Chinese/Clash_Sinicization_Comparison_Table_Old",
    "content": "*****************\n*  renderer.js  *\n*****************\n\n************************************\n全局调用的文本\n************************************\n\n[e._v(\"OK\")]\n[e._v(\"确定\")]\n\n[e._v(\"Text\")]\n[e._v(\"文本\")]\n\ntitle:\"Error\"\ntitle:\"错误\"\n\n\"Install\",\"Uninstall\"\n\"安装\",\"卸载\"\n\n\"Name\"\n\"名字\"\n\n\"Save\"\n\"保存\"\n\n\"Cancel\"\n\"取消\"\n\nCancel\\n\n取消\\n\n\n[e._v(\"\\n        Add\\n      \")]\n[e._v(\"\\n        添加\\n      \")]\n\n\"Loading...\"\n\"正在加载...\"\n\n[e._v(\"Quit\")]\n[e._v(\"退出\")]\n\n[e._v(\"Add\")]\n[e._v(\"添加\")]\n\n\"Error\"\n\"错误\"\n\n\"Restarting core...\"\n\"重新启动核心...\"\n\n\"No proxy group in this profile\"\n\"此配置文件中没有代理组\"\n\n\"Connection Info\"\n\"连接信息\"\n\nreturn l()(t).\nreturn l()(t).locale('zh-cn').\n\nfromNow()\nlocale('zh-cn').fromNow()\n\n\"Clash is running in the background\",\"Enjoy your free time!\"\n\"Clash 正在后台运行\",\"享受您的自由时间!\"\n\n(\"fail to update profile with url: \".concat(c)),Object(L.c)(\"Profile update failed\",c)\n(\"无法使用 url 更新配置资料: \".concat(c)),Object(L.c)(\"配置资料更新失败\",c)\n\n\"Profile had been downloaded successfully.\"\n\"配置资料已成功下载.\"\n\n\"app exiting, turn off system proxy\"\n\"应用退出, 关闭系统代理\"\n\nhttp server failed to start with error\nhttp 服务器因错误而无法启动\n\nhttp server started at\nhttp服务器开始于\n\nfirst luanch, creating\n首次发布, 创建\n\napp start with mode\n应用程序以模式开始\n\nfail to load general config.yaml with error\n无法加载常规 config.yaml 并出现错误\n\nload data from general\n从一般加载数据\n\n************************************\n左边菜单\n************************************\n\ntitle:\"General\"\ntitle:\"主页\"\n\n\"Proxies\"\n\"代理\"\n\n\"Profiles\"\n\"配置\"\n\ntitle:\"Logs\"\ntitle:\"日志\"\n\n\"Connections\"\n\"连接\"\n\n\"Settings\"\n\"设置\"\n\ntitle:\"Feedback\"\ntitle:\"关于\"\n\n\"Providers\"\n\"提供\"\n\nStop Sorting\\n\n停止排序\\n\n\n\"Connected\"\n\"已连接\"\n\n\"Disconnected\"\n\"未连接\"\n\n************************************\n主页\n************************************\n\n\"You are awesome\",content:\"The current version is up to date.\"\n\"当前版本是最新的\",content:\"当前汉化版本也是最新的\"\n\n\"Update installed successfully, do you want to restart the APP?\"\n\"更新安装成功，要重启APP吗?\"\n\n\"Package downloaded successfully, do you want to execute it?\"\n\"原版包下载成功，要执行吗?\"\n\n\"Update\",\"Download\",\"Copy URL\",\"取消\"\n\"更新(原版)\",\"下载(原版)\",\"复制URL(原版)\",\"取消\"\n\n\"Port\"\n\"端口\"\n\ntitle:\"Change Mixed Port\"\ntitle:\"更改混合端口\"\n\nname:\"New Port\"\nname:\"新端口\"\n\n\"Allow LAN\"\n\"允许局域网\"\n\n\"Log Level\"\n\"日志级别\"\n\n\"Clash Core\"\n\"Clash 核心版本\"\n\n\"Home Directory\"\n\"主目录\"\n\n\"UWP Loopback\"\n\"UWP 应用联网限制解除工具\"\n\n\"TAP Device\"\n\"虚拟网卡安装\"\n\n\"Service Mode\"\n\"服务模式\"\n\n\"Mixin\"\n\"混淆\"\n\n\"System Proxy\"\n\"系统代理\"\n\nMixin allows you to overwrite the original configuration file.\\n\nMixin允许您覆盖原始配置文件\\n\n\n\"Start with Windows\"\n\"开机时运行\"\n\n\"Drag to sort or add to the list on the right.\"\n\"拖动以排序或添加到右侧列表中\"\n\nManage\\n\n管理\\n\n\n************************************\n主页中的TAP选项\n************************************\n\n\"You need to reinstall the TAP device after you change these fields!\"\n\"更改这些字段后，您需要重新安装虚拟网卡！\"\n\n\"TAP device management\",message:'An adapter named \"cfw-tap\" will route your data into clash.<br /><br />If the installation box pops up, keep clicking \"Next\" until the installation is complete.',items:[\"Install\",\"Remove\",\"Customize\"]\n\"虚拟网卡设置管理\",message:'名为“ cfw-tap”的适配器会将您的数据路由到冲突中<br /><br />如果弹出安装框，请继续单击“下一步”，直到安装完成',items:[\"安装\",\"卸载\",\"定制\"]\n\n\"Service management\",message:\"It might take a while.<br/>The APP will be relaunched automatically.\".concat(r,\"<br/><br/>Current status: \").concat(e.isLocalMode?\"Inactive\":\"Active\")\n\"服务管理\",message:\"这可能需要一段时间<br/>该APP将自动重新启动.\".concat(r,\"<br/><br/>当前状态: \").concat(e.isLocalMode?\"未安装\":\"已安装\")\n\n\"IP Address\"\n\"IP地址\"\n\n\"Subnet Mask\"\n\"子网掩码\"\n\n\"Default Gateway\"\n\"默认网关\"\n\n\"Success\",\"cfw-tap device had been installed\"\n\"成功\",\"cfw-tap 已安装\"\n\n\"Failed\",\"counld not install cfw-tap device.\"\n\"失败\",\"无法安装 cfw-tap\"\n\n\"Success\",\"cfw-tap device had been removed\"\n\"成功\",\"cfw-tap 已被移除\"\n\n\"Failed\",\"counld not remove cfw-tap device.\"\n\"失败\", \"无法移除 cfw-tap\"\n\n\"Commands have been copied to Clipboad!\"\n\"命令已复制到剪贴板!\"\n\n************************************\n代理\n************************************\n\n\"Check\"\n\"测试\"\n\n\" ms\":\"Timeout\"\n\" ms\":\"超时\"\n\n\"Timeout\"\n\"超时\"\n\n\"scroll to selected porxy\"\n\"移动到选定的代理上\"\n\n\"test latency\"\n\"测试延迟\"\n\n\"show or hide proxies\"\n\"显示或隐藏代理\"\n\n************************************\n配置\n************************************\n\n\"Download from a URL\"\n\"从URL下载\"\n\n\"refresh\"\n\"更新\"\n\n\"Error!\":2===this.btnType?\"Success!\":\"Download\"\n\"错误!\":2===this.btnType?\"成功!\":\"下载\"\n\n\"Downloading\"\n\"下载中\"\n\n\"Update All\"\n\"更新全部\"\n\nUpdate All\\n\n更新全部\\n\n\n\"Import\"\n\"导入\"\n\n\"edit\"\n\"编辑\"\n\n\"edit policies\"\n\"修改规则\"\n\n\"edit rules\"\n\"编辑规则\"\n\n\"duplicate profile\"\n\"复制配置文件\"\n\nScheme\\n\n跳转方案\\n\n\n\"matching parsers\"\n\"匹配解析器\"\n\n\"settings\"\n\"设置\"\n\n\"delete\"\n\"删除\"\n\n\"Edit profile information\"\n\"编辑配置信息\"\n\ntitle:\"Copy profile\"\ntitle:\"复制配置文件\"\n\n\"Update Interval (hour)\"\n\"更新间隔(小时)\"\n\n\"Top 100 matching rules\n\"前100个匹配规则\n\n\"fiter by keywords\"\n\"按关键字过滤\"\n\n\"Local file already exist.\"\n\"本地文件已存在.\"\n\nmessage:'Are you sure to delete \"'.concat(o,'\"?'),buttons:[\"Yes\",\"No\"]\nmessage:'您确定要删除吗 \"'.concat(o,'\"?'),buttons:[\"是\",\"否\"]\n\n\"Close the editing file to Save.\"\n\"关闭编辑文件以保存\"\n\nto import/switch a profile\\n\n导入/切换配置文件\\n\n\n************************************\n日志\n************************************\n\n\"Request Logs\"\n\"请求日志\"\n\n\"Stop\":\"Start\"\n\"暂停\":\"开始\"\n\n\"Empty log list\"\n\"空日志列表\"\n\n\"Refresh your browser to make requests.\"\n\"刷新浏览器以发出请求\"\n\n\"Clear\"\n\"清除\"\n\n************************************\n连接\n************************************\n\nConnections\\n\n连接\\n\n\ntype:\"text\",placeholder:\"search\"\ntype:\"文本\",placeholder:\"搜索\"\n\n\"Resume\":\"Pause\"\n\"恢复\":\"暂停\"\n\ne._s(\"Total\ne._s(\"总共\n\n\"Upload Speed\",\"Download Speed\",\"Upload Traffic\",\"Download Traffic\",\"Time\"\n\"上传速度\",\"下载速度\",\"上传流量\",\"下载流量\",\"时间\"\n\nClose All\\n\n全部关闭\\n\n\n\"Start Time\"\n\"开始时间\"\n\nChains:\n模式:\n\nRule:\"\".concat\n规则:\"\".concat\n\nDestination:\n目的地:\n\nSource:\"\"\n来源:\"\"\n\nTraffic:\n流量:\n\nNetwork:\n网络:\n\nHost:\n主机:\n\n************************************\n设置\n************************************\n\n\"Special Proxies\"\n\"特殊代理\"\n\n\"Proxy Groups\"\n\"代理组\"\n\n\"Reset All Settings\"\n\"重置所有设置\"\n\n\"Warning\",content:\"Are you sure to reset all settings?\"\n\"警告\",content:\"您确定要重设所有设置吗?\"\n\n\"Appearance\"\n\"外观\"\n\n\"Settings Editor\"\n\"配置编辑器\"\n\n\"Notifications\"\n\"向系统通知栏发送相关信息\"\n\n\"Silent Start\"\n\"开启Clash时默认缩小到任务栏\"\n\n\"Random Controller Port\"\n\"随机占用端口\"\n\n\"Lightweight Mode\"\n\"轻量模式\"\n\n\"Run Time Format\"\n\"运行时间格式\"\n\n\"GUI Log Folder\"\n\"GUI日志文件夹\"\n\n\"Open\"\n\"打开\"\n\n[e._v(\"Theme\")]\n[e._v(\"主题\")]\n\n\"Light\",\"Dark\",\"国庆中秋\",\"Cyberpunk\"\n\"明亮\",\"深色\",\"国庆中秋\",\"赛博朋克\"\n\n\"Follow System Theme\"\n\"遵循系统主题\"\n\n\"Font Family\"\n\"字体系列\"\n\nUse System Emoji\n使用系统表情符号\n\n\"Default Icon Path\"\n\"自定义状态栏图标\"\n\n\"System Proxy On Icon Path\"\n\"状态栏图标上的系统代理\"\n\nICO(.ico) asset path\nICO(.ico) 路径\n\n\"Enhanced Tray\"\n\"悬浮窗\"\n\n\"Text to display in tray\"\n\"要显示在悬浮窗中的文本\"\n\n[e._v(\"Script\")]\n[e._v(\"脚本\")]\n\ntext:\"Select\"\ntext:\"选择\"\n\n\"Transparent\"\n\"透明\"\n\n\"foreground color\"\n\"前景色\"\n\n\"Script to run\"\n\"要运行的脚本\"\n\n\"Show New Version Icon\"\n\"有新版本时提醒\"\n\n\"Type\"\n\"类型\"\n\n\"Bypass Domain/IPNet\"\n\"绕过域/ IPNet\"\n\n\"Specify Protocol\"\n\"指定协议\"\n\n\"Static Host\"\n\"静态主机\"\n\n\"Profile Mixin\"\n\"配置文件Mixin\"\n\ntext:\"Edit\"\ntext:\"编辑\"\n\n\"Proxy Item Width\"\n\"代理项目宽度\"\n\n\"Mini List Width\"\n\"迷你列表宽度\"\n\n\"Order By\"\n\"自定义节点排序\"\n\n\"Default\",\"Latency\",\"Alphabet\"\n\"默认\",\"延迟\",\"字母\"\n\n\"Latency Test URL\"\n\"延迟测试网址\"\n\n\"Latency Test Timeout\"\n\"延迟测试超时\"\n\n\"Show Filter\"\n\"显示筛选过滤器\"\n\n\"Hide Unselectable Group\"\n\"隐藏无法选择的代理组\"\n\n\"Break When Proxy Change\"\n\"代理更改时中断连接\"\n\n\"None\",\"Chain\",\"All\"\n\"不中断\",\"链接\",\"所有\"\n\n\"Break When Profile Change\"\n\"配置文件更改时中断连接\"\n\n\"Break When Mode Change\"\n\"模式更改时中断连接\"\n\n\"Display Chain Type\"\n\"显示链接类型\"\n\n\"Proxy\",\"Group\",\"Both\"\n\"节点名\",\"分组名\",\"全部\"\n\n\"Outbound\"\n\"选择流量出接口\"\n\n\"Interface Name\"\n\"接口名称\"\n\n\"Detected: \"+e.detectedInterfaceName,clickable:!1\n\"侦测到:\"+e.detectedInterfaceName,clickable:!1\n\n\"Child Processes\"\n\"子进程\"\n\n\"Processes\"\n\"启动其他应用\"\n\n\"Parsers\"\n\"配置文件预处理\"\n\n\"Console Output\"\n\"控制台输出\"\n\n\"Open File\"\n\"打开文件\"\n\n\"Folder Path\"\n\"资料夹路径\"\n\n\"Request Headers\"\n\"自定义请求头\"\n\n\"Select After Updated\"\n\"更新后选择\"\n\nForce Quit\\n\n强制退出\\n\n\n\"[ Reset ]\"\n\"[ 重启 ]\"\n\ntext:e.settings.interfaceName||\"Select\"\ntext:e.settings.interfaceName||\"选择\"\n\n\"Profiles folder path\"\n\"配置文件文件夹路径\"\n\n\"Open terminal with proxy set up\"\n\"打开终端并设置代理\"\n\n\"Health Check All\"\n\"检查全部连接\"\n\n\"Proxy Providers\"\n\"代理提供者\"\n\n\"Choose outbound interface\",message:\"only works when TAP mode enabled\"\n\"选择出接口\",message:\"仅在启用TAP模式时有效\"\n\n\"Docs\"\n\"文件\"\n\n\"Change Log Level\"\n\"更改日志级别\"\n\nOpen Folder\\n\n打开文件夹\\n\n\nLaunch Helper\\n\n启动助手\\n\n\n************************************\n快捷键选项\n************************************\n\n\"Shortcuts\"\n\"快捷键\"\n\n\"Global Mode\"\n\"全局模式\"\n\n\"Rule Mode\"\n\"规则模式\"\n\nDirect Mode\n直连模式\n\n\"Script Mode\"\n\"脚本模式\"\n\n\"Show/Hide Dashboard\"\n\"显示/隐藏仪表板\"\n\n\"Run Tray Script\"\n\"运行纸盘脚本\"\n\n\"recording...\"\n\"记录中...\"\n\nPress Enter to stop\\n\n按 Enter 停止\\n\n\n\"Record\"\n\"点击以录制热键\"\n\n************************************\n关于\n************************************\n\n\"Developer\"\n\"作者\"\n\n\"Relevance\"\n\"关于\"\n\n\"Credits\"\n\"鸣谢\"\n\n\"Advertisement\"\n\"广告\"\n\n\"Image is on the way\"\n\"图片正在加载\"\n\n\"Image not found\"\n\"找不到图片.但希望你能给汉化clash的我捐赠!\"\n\n\"https://github.com/Fndroid/clash_for_windows_pkg\"\n\"https://github.com/ender-zhao/Clash-for-Windows_Chinese-Attached\"\n\n[e._v(\"Document\")]\n[e._v(\"帮助文档\")]\n\n************************************\n隐藏选项或不会通过正常方式显示的\n************************************\n\n\"Update Interval must be an integer\"\n\"更新间隔必须是整数\"\n\n\"Input a new file name\"\n\"输入一个新的文件名\"\n\n\"Remove\":\"Include\"\n\"删除\":\"包括\"\n\n\"Edit Parsers\",\"OK\"\n\"编辑解析器\",\"确认\"\n\n\"Download profile(\"\n\"下载资料(\"\n\nfailed with error: HTTP Response Status Code\n失败，错误：HTTP 响应状态代码\n\n\"updated\":\"installed\",\" Service Mode to control system proxy.\"),buttons:[\"\".concat(e.serviceNeedUpdate?\"Update\":\"Install\",\" Now\"\n\"已更新\":\"已安装\",\" 用于控制系统代理的服务模式\"),buttons:[\"\".concat(e.serviceNeedUpdate?\"更新\":\"安装\",\" 现在\"\n\n\"Select a terminal\"\n\"选择一个终端\"\n\nGo to\\n\n前往\\n\n\nmessage:\"unknow error\"\nmessage:\"未知错误\"\n\nupdate failed(Network Error)!\n更新失败(网络错误)!\n\n\"Could not switch to this profile!\"\n\"无法切换到此配置文件!\"\n\n\"Download GeoIP database\n\"下载 GeoIP 数据库\n\n\"Input fields are alternative\"\n\"输入字段是替代的\"\n\n\"Update GeoIP database\n\"更新 GeoIP 数据库\n\n\"Updating GeoIP database is not allowed in CFW, please do it manually.\"\n\"CFW 不允许更新 GeoIP 数据库，请手动进行.\"\n\n\"Copy proxy setting commands\"\n\"复制代理设置命令\"\n\n\"Copy Command\"\n\"复制命令\"\n\n*****************\n*    main.js    *\n*****************\n\n\"Dashboard\"\n\"仪表盘\"\n\n\"Dashboard has crashed!\"\n\"仪表板崩溃了!\"\n\n\"Run Tray Script\"\n\"运行任务栏脚本\"\n\n\"System Proxy\"\n\"系统代理\"\n\n\"Mixin\"\n\"混合配置\"\n\n\"Proxy Mode\"\n\"代理模式\"\n\n\"Global\"\n\"全局\"\n\n\"Rule\"\n\"规则\"\n\n\"Direct\"\n\"直连\"\n\n\"Script\"\n\"脚本\"\n\n\"More\"\n\"更多\"\n\n\"Force Quit\"\n\"强制退出\"\n\n\"Quit\"\n\"退出\"\n\n\"Quit Clash for Windows\"\n\"退出 Clash for Windows\"\n\n\"Toggle DevTools\"\n\"切换Dev工具\"\n\n\"Restart\"\n\"重启\"\n\n*****************************************************\n*在将renderer.js格式化到人看的懂之后需加入的汉化代码*\n*****************************************************\n\n#替换内容\n\n[\"global\", \"rule\", \"direct\", \"script\"]\n[\"全局\", \"规则\", \"直连\", \"脚本\"]\n\n#添加内容\n\n#var t = [\"btn\"]; 的下一行添加\n\n\"全局\" == e ? e = \"global\" : \"规则\" == e ? e = \"rule\" : \"直连\" == e ? e = \"direct\" : \"脚本\" == e && (e = \"script\");\n\n#}, switchMode: function (e) { 的下一行添加\n\n\"全局\" == e ? e = \"global\" : \"规则\" == e ? e = \"rule\" : \"直连\" == e ? e = \"direct\" : \"脚本\" == e && (e = \"script\");\n\n#主页 \"日志级别\" 中的五个选项\n\n#这个方法借鉴以前版本0.14.1的某个人汉化的clash for windows (由于0.14.1的renderer.js的代码太乱，我也是才看懂那人汉化的思路)\n#替换内容\n\nmessage: \"silent will prevent .log file to generate on next startup\",\nmessage: \"静默:&nbsp;&nbsp;&nbsp;下次启动时不再生成.log文件<br/>错误:&nbsp;&nbsp;&nbsp;记录错误和异常信息到.log文件<br/>警告:&nbsp;&nbsp;&nbsp;记录错误，异常和警告信息到.log文件<br/>信息:&nbsp;&nbsp;&nbsp;记录运行时的信息到.log文件<br/>调试:&nbsp;&nbsp;&nbsp;记录一切运行时产生的信息(通常用于开发<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;者调试，诊断问题)\",\n\n#将下一行的items: n替换为\nitems: [\"静默\", \"错误\", \"警告\", \"信息\", \"调试\"],\n\ne._s(e.logLevel)\n(\"silent\" == e._s(e.logLevel) ? \"静默\" : \"error\" == e._s(e.logLevel) ? \"错误\" : \"warning\" == e._s(e.logLevel) ? \"警告\" : \"info\" == e._s(e.logLevel) ? \"信息\" : \"debug\" == e._s(e.logLevel) ? \"调试\" : e._s(e.logLevel))\n\n[e._v(\"mode: \" + e._s(e.mode))]\n[e._v(\"模式: \" + (\"global\" == e._s(e.mode) ? \"全局\" : \"rule\" == e._s(e.mode) ? \"规则\" : \"direct\" == e._s(e.mode) ? \"直连\" : \"script\" == e._s(e.mode) ? \"脚本\" : e._s(e.mode)))]\n\n\"Select\" : r;\n\"选择\" : r,\n\ntitle: \"Found \".concat(r.length, \" matching parsers\")\ntitle: \"找到 \".concat(r.length, \" 匹配解析器\")\n"
  },
  {
    "path": "chinese_file/Manual-Chinese/main",
    "content": "\"Dashboard\"\n\"仪表盘\"\n\"Dashboard has crashed\n\"仪表板崩溃了\n\"Run Tray Script\"\n\"运行任务栏脚本\"\n\"System Proxy\"\n\"系统代理\"\n\"Mixin\"\n\"混合配置\"\n\"Proxy Mode\"\n\"代理模式\"\n\"Global\"\n\"全局\"\n\"Rule\"\n\"规则\"\n\"Direct\"\n\"直连\"\n\"Script\"\n\"脚本\"\n\"More\"\n\"更多\"\n\"Force Quit\"\n\"强制退出\"\n\"Quit\"\n\"退出\"\n\"Quit Clash for Windows\"\n\"退出 Clash for Windows\"\n\"Toggle DevTools\"\n\"切换Dev工具\"\n\"Restart\"\n\"重启\"\n\"TUN Mode\"\n\"TUN 模式\"\n\"Move Dashboard To Nearest Monitor\"\n\"将仪表板移至最近的显示器\"\n"
  },
  {
    "path": "chinese_file/Manual-Chinese/renderer",
    "content": "# renderer.js\n\n(\"OK\")\n(\"确定\")\n\n\"Text\"\n\"文本\"\n\ntitle:\"Error\"\ntitle:\"错误\"\n\n\"Install\",\"Uninstall\"\n\"安装\",\"卸载\"\n\n\"Name\"\n\"名字\"\n\n\"Save\"\n\"保存\"\n\n\"Cancel\"\n\"取消\"\n\n Cancel\n 取消\n\n  Add\n  添加\n\n\"Loading\n\"正在加载\n\n\"Quit\"\n\"退出\"\n\n\"Add\"\n\"添加\"\n\n\"Error\"\n\"错误\"\n\n\"Restarting core\n\"重新启动核心\n\n\"No proxy group in this profile\"\n\"此配置文件中没有代理组\"\n\n\"Connection Info\"\n\"连接信息\"\n\n\"Clash is running in the background\",\"Enjoy your free time\n\"Clash 正在后台运行\",\"享受您的自由时间\n\n\"fail to update profile with url\n\"无法使用 url 更新配置资料\n\n\"Profile update failed\"\n\"配置资料更新失败\"\n\n\"Profile had been downloaded successfully\n\"配置资料已成功下载\n\n\"app exiting, turn off system proxy\"\n\"应用退出, 关闭系统代理\"\n\nhttp server failed to start with error\nhttp 服务器因错误而无法启动\n\nhttp server started at\nhttp服务器开始于\n\nfirst luanch, creating\n首次发布, 创建\n\napp start with mode\n应用程序以模式开始\n\nfail to load general config\n无法加载常规 config\n\nyaml with error\nyaml 并出现错误\n\nload data from general\n从一般加载数据\n\ntitle:\"General\"\ntitle:\"主页\"\n\n\"Proxies\"\n\"代理\"\n\n\"Profiles\"\n\"配置\"\n\ntitle:\"Logs\"\ntitle:\"日志\"\n\n\"Connections\"\n\"连接\"\n\ntitle:\"Feedback\"\ntitle:\"关于\"\n\n\"Providers\"\n\"提供\"\n\nStop Sorting\\n\n停止排序\\n\n\n\"Connected\"\n\"已连接\"\n\n\"Disconnected\"\n\"未连接\"\n\n\"You are awesome\"\n\"当前版本是最新的\"\n\n\"The current version is up to date\n\"当前汉化版本也是最新的\n\n\"Update installed successfully, do you want to restart the APP\n\"更新安装成功，要重启APP吗\n\n\"Package downloaded successfully, do you want to execute it\n\"原版包下载成功，要执行吗\n\n\"Port\"\n\"端口\"\n\ntitle:\"Change Mixed Port\"\ntitle:\"更改混合端口\"\n\nname:\"New Port\"\nname:\"新端口\"\n\n\"Allow LAN\"\n\"允许局域网\"\n\n\"Log Level\"\n\"日志级别\"\n\n\"Clash Core\"\n\"Clash 核心版本\"\n\n\"Home Directory\"\n\"主目录\"\n\n\"UWP Loopback\"\n\"UWP 应用联网限制解除工具\"\n\n\"TAP Device\"\n\"虚拟网卡安装（TAP 模式）\"\n\n\"Service Mode\"\n\"服务模式\"\n\n\"Mixin\"\n\"混合配置\"\n\n\"System Proxy\"\n\"系统代理\"\n\nMixin allows you to overwrite the original configuration file\nMixin允许您覆盖原始配置文件\n\n\"Start with Windows\"\n\"开机自启动\"\n\n\"Drag to sort or add to the list on the right\n\"拖动以排序或添加到右侧列表中\n\n Manage\n 管理\n\n\"You need to reinstall the TAP device after you change these fields\n\"更改这些字段后，您需要重新安装虚拟网卡\n\n\"TAP device management\"\n\"虚拟网卡设置管理\"\n\nAn adapter named \"\n名为 \"\n\nwill route your data into clash\n的适配器会将您的数据路由到Clash中\n\nIf the installation box pops up\n如果弹出安装框\n\nkeep clicking \"Next\"\n请继续单击\"下一步\", \n\nuntil the installation is complete\n直到安装完成\n\n\"Service management\"\n\"服务管理\"\n\n\"It might take a while\n\"这可能需要一段时间\n\nThe APP will be relaunched automatically\n该APP将自动重新启动\n\nCurrent status: \"\n当前状态: \"\n\n\"Inactive\":\"Active\"\n\"未安装\":\"已安装\"\n\n\"IP Address\"\n\"IP地址\"\n\n\"Subnet Mask\"\n\"子网掩码\"\n\n\"Default Gateway\"\n\"默认网关\"\n\n\"Success\",\"cfw-tap device had been installed\"\n\"成功\",\"cfw-tap 已安装\"\n\n\"Failed\",\"counld not install cfw-tap device\n\"失败\",\"无法安装 cfw-tap\n\n\"Success\",\"cfw-tap device had been removed\"\n\"成功\",\"cfw-tap 已被移除\"\n\n\"Failed\",\"counld not remove cfw-tap device\n\"失败\", \"无法移除 cfw-tap\n\n\"Commands have been copied to Clipboad\n\"命令已复制到剪贴板\n\n\"Check\"\n\"测试\"\n\n\" ms\":\"Timeout\"\n\" ms\":\"超时\"\n\n\"Timeout\"\n\"超时\"\n\n\"Download from a URL\"\n\"从URL下载\"\n\n\"Error!\"\n\"错误!\"\n\n\"Downloading\"\n\"下载中\"\n\n\"Success!\":\"Download\"\n\"成功!\":\"下载\"\n\n\"Update All\"\n\"更新全部\"\n\n Update All\n 更新全部\n\n\"Import\"\n\"导入\"\n\n\"edit policies\"\n\"修改规则\"\n\n\"edit rules\"\n\"编辑规则\"\n\n\"duplicate profile\"\n\"复制配置文件\"\n\n Scheme\n 跳转方案\n\n\"matching parsers\"\n\"匹配解析器\"\n\ntext:\"Delete\"\ntext:\"删除\"\n\n\"Edit profile information\"\n\"编辑配置信息\"\n\ntitle:\"Copy profile\"\ntitle:\"复制配置文件\"\n\n\"Update Interval (hour)\"\n\"更新间隔(小时)\"\n\n\"Top 100 matching rules\n\"前100个匹配规则\n\n\"fiter by keywords\"\n\"按关键字过滤\"\n\n\"Local file already exist\n\"本地文件已存在\n\nAre you sure to delete \n您确定要删除 \n\n\"Yes\",\"No\"\n\"是\",\"否\"\n\n\"Close the editing file to Save\n\"关闭编辑文件以保存\n\nto import\n导入\n\nswitch a profile\n切换配置文件\n\n\"Request Logs\"\n\"请求日志\"\n\n\"Stop\":\"Start\"\n\"暂停\":\"开始\"\n\n\"Empty log list\"\n\"空日志列表\"\n\n\"Refresh your browser to make requests\n\"刷新浏览器以发出请求\n\n\"Clear\"\n\"清除\"\n\n  Connections\n 连接\n\ntype:\"text\",placeholder:\"Search\"\ntype:\"文本\",placeholder:\"搜索\"\n\n\"Resume\":\"Pause\"\n\"恢复\":\"暂停\"\n\n\"Total\n\"总共\n\n\"Upload Speed\",\"Download Speed\"\n\"上传速度\",\"下载速度\"\n\n\"Upload Traffic\",\"Download Traffic\",\"Time\"\n\"上传流量\",\"下载流量\",\"时间\"\n\n Close All\n 全部关闭\n\n\"Start Time\"\n\"开始时间\"\n\nChains:\n模式:\n\nRule:\"\"\n规则:\"\"\n\nDestination:\n目的地:\n\nSource:\"\"\n来源:\"\"\n\nTraffic:\n流量:\n\n,Network:\n,网络:\n\nHost:\n主机:\n\n\"Special Proxies\"\n\"特殊代理\"\n\n\"Proxy Groups\"\n\"代理组\"\n\n\"Reset All Settings\"\n\"重置所有设置\"\n\n\"Warning\",content:\"Are you sure to reset all settings\n\"警告\",content:\"您确定要重设所有设置吗\n\n\"Appearance\"\n\"外观\"\n\n\"Settings Editor\"\n\"配置编辑器\"\n\n\"Notifications\"\n\"向系统通知栏发送相关信息\"\n\n\"Silent Start\"\n\"开启Clash时默认缩小到任务栏\"\n\n\"Random Controller Port\"\n\"随机占用端口\"\n\n\"Lightweight Mode\"\n\"轻量模式\"\n\n\"Run Time Format\"\n\"运行时间格式\"\n\n\"GUI Log Folder\"\n\"GUI日志文件夹\"\n\n\"Open\"\n\"打开\"\n\n\"Theme\"\n\"主题\"\n\n\"Light\",\"Dark\",\"国庆中秋\",\"Cyberpunk\"\n\"明亮\",\"深色\",\"国庆中秋\",\"赛博朋克\"\n\n\"Follow System Theme\"\n\"遵循系统主题\"\n\n\"Font Family\"\n\"字体系列\"\n\nUse System Emoji\n使用系统表情符号\n\n\"Default Icon Path\"\n\"自定义状态栏图标\"\n\n\"System Proxy On Icon Path\"\n\"状态栏图标上的系统代理\"\n\nico) asset path\nico) 路径\n\n\"Enhanced Tray\"\n\"悬浮窗\"\n\n\"Text to display in tray\"\n\"要显示在悬浮窗中的文本\"\n\n\"Script\")\n\"脚本\")\n\ntext:\"Select\"\ntext:\"选择\"\n\n\"Transparent\"\n\"透明\"\n\n\"foreground color\"\n\"前景色\"\n\n\"Script to run\"\n\"要运行的脚本\"\n\n\"Show New Version Icon\"\n\"有新版本时提醒\"\n\n\"Type\"\n\"类型\"\n\n\"Bypass Domain\n\"绕过域\n\n\"Specify Protocol\"\n\"指定协议\"\n\n\"Static Host\"\n\"静态主机\"\n\n\"Profile Mixin\"\n\"配置文件 Mixin\"\n\ntext:\"Edit\"\ntext:\"编辑\"\n\n\"Proxy Item Width\"\n\"代理项目宽度\"\n\n\"Mini List Width\"\n\"策略组导航器宽度\"\n\n\"Order By\"\n\"自定义节点排序\"\n\n\"Default\",\"Latency\",\"Alphabet\"\n\"默认\",\"延迟\",\"字母\"\n\n\"Latency Test URL\"\n\"延迟测试网址\"\n\n\"Latency Test Timeout\"\n\"延迟测试超时\"\n\n\"Show Filter\"\n\"显示筛选过滤器\"\n\n\"Hide Unselectable Group\"\n\"隐藏无法选择的代理组\"\n\n\"Break When Proxy Change\"\n\"代理更改时中断连接\"\n\n\"None\",\"Chain\",\"All\"\n\"不中断\",\"旧链接\",\"所有\"\n\n\"Break When Profile Change\"\n\"配置文件更改时中断连接\"\n\n\"Break When Mode Change\"\n\"模式更改时中断连接\"\n\n\"Display Chain Type\"\n\"显示链接类型\"\n\n\"Proxy\",\"Group\",\"Both\"\n\"节点名\",\"分组名\",\"全部\"\n\n\"Outbound\"\n\"选择流量出接口\"\n\n\"Interface Name\"\n\"接口名称\"\n\n\"Detected:\n\"侦测到:\n\n\"Child Processes\"\n\"子进程\"\n\n\"Processes\"\n\"启动其他应用\"\n\n\"Parsers\"\n\"配置文件预处理\"\n\n\"Console Output\"\n\"控制台输出\"\n\n\"Open File\"\n\"打开文件\"\n\n\"Folder Path\"\n\"资料夹路径\"\n\n\"Request Headers\"\n\"自定义请求头\"\n\n\"Select After Updated\"\n\"更新后选择\"\n\n Force Quit\n 强制退出\n\n Reset \n 重启 \n\n\"Profiles folder path\"\n\"配置文件文件夹路径\"\n\n\"Open terminal with proxy set up\"\n\"打开终端并设置代理\"\n\n\"Health Check All\"\n\"检查全部连接\"\n\n\"Proxy Providers\"\n\"代理提供者\"\n\n\"Choose outbound interface\"\n\"选择出接口\"\n\n\"only works when TAP mode enabled\"\n\"仅在启用TAP模式时有效\"\n\n\"Docs\"\n\"在线文档\"\n\n\"Change Log Level\"\n\"更改日志收集级别\"\n\n Open Folder\n 打开文件夹\n\n Launch Helper\n 启动助手\n\n\"Shortcuts\"\n\"快捷键\"\n\n\"Global Mode\"\n\"全局模式\"\n\n\"Rule Mode\"\n\"规则模式\"\n\nDirect Mode\n直连模式\n\n\"Script Mode\"\n\"脚本模式\"\n\n\"Show connections\"\n\"显示连接\"\n\nShow/Hide Dashboard\"\n显示/隐藏仪表板\"\n\n\"Run Tray Script\"\n\"运行纸盘脚本\"\n\n Press Enter to stop\n 按 Enter 停止\n\n\"Record\"\n\"点击以录制热键\"\n\n\"Developer\"\n\"作者\"\n\n\"Relevance\"\n\"关于\"\n\n\"Credits\"\n\"鸣谢\"\n\n\"Advertisement\"\n\"广告\"\n\n\"Image is on the way\"\n\"图片正在加载\"\n\n\"Document\"\n\"帮助文档\"\n\n\"Update Interval must be an integer\"\n\"更新间隔必须是整数\"\n\n\"Input a new file name\"\n\"输入一个新的文件名\"\n\n\"Remove\":\"Include\"\n\"删除\":\"包括\"\n\n\"Edit Parsers\",\"OK\"\n\"编辑解析器\",\"确认\"\n\n\"Download profile\n\"下载资料\n\nfailed with error: HTTP Response Status Code\n失败，错误：HTTP 响应状态代码\n\n\"updated\":\"installed\"\n\"已更新\":\"已安装\"\n\n Service Mode to control system proxy\n 用于控制系统代理的服务模式\n\n\"Update\":\"Install\",\" Now\"\n\"更新\":\"安装\",\" 现在\"\n\n\"Select a terminal\"\n\"选择一个终端\"\n\n Go to\n 前往\n\nmessage:\"unknow error\"\nmessage:\"未知错误\"\n\nupdate failed(Network Error)\n更新失败(网络错误)\n\n\"Could not switch to this profile\n\"无法切换到此配置文件\n\n\"Download GeoIP database failed with error\n\"下载 GeoIP 数据库失败并出现错误\n\n\"Input fields are alternative\"\n\"输入字段是替代的\"\n\n\"Update GeoIP database\n\"更新 GeoIP 数据库\n\n\"Updating GeoIP database is not allowed in CFW, please do it manually\n\"CFW 不允许更新 GeoIP 数据库，请手动进行\n\n\"Copy proxy setting commands\"\n\"复制代理设置命令\"\n\n\"Copy Command\"\n\"复制命令\"\n\n\"global\",\"rule\",\"direct\",\"script\"\n\"全局\",\"规则\",\"直连\",\"脚本\"\n\nscroll to selected proxy\n移动到选定的代理\n\n\"test latency\"\n\"测试延迟\"\n\n\"show or hide proxies\"\n\"显示或隐藏代理\"\n\n\"Update\",\"Download\",\"Copy URL\",\"取消\"\n\"更新(原版)\",\"下载(原版)\",\"复制URL(原版)\",\"取消\"\n\nitems:n});case 4:return\nitems:[\"静默\",\"错误\",\"警告\",\"信息\",\"调试\"],});case 4:return\n\ne._s(e.logLevel)\n(\"silent\"==e._s(e.logLevel)?\"静默\":\"error\"==e._s(e.logLevel)?\"错误\":\"warning\"== e._s(e.logLevel)?\"警告\":\"info\"== e._s(e.logLevel)?\"信息\":\"debug\"==e._s(e.logLevel)?\"调试\":e._s(e.logLevel))\n\nfromNow()\nlocale('zh-cn').fromNow()\n\nreturn this.mode===e.\n\"全局\"==e?e=\"global\":\"规则\"==e?e=\"rule\":\"直连\"==e?e=\"direct\":\"脚本\"==e&&(e=\"script\");return this.mode===e.\n\nswitchMode:function(e){var t=this;return o\nswitchMode:function(e){\"全局\"==e?e=\"global\":\"规则\"==e?e=\"rule\":\"直连\"==e?e=\"direct\":\"脚本\"==e&&(e=\"script\");var t=this;return o\n\n\"Install\",\"Remove\",\"Customize\"\n\"安装\",\"卸载\",\"定制\"\n\ninterfaceName||\"Select\"\ninterfaceName||\"选择\"\n\n\"Image not found\"\n\"找不到图片!\"\n\nthis.isRecording?\"recording\nthis.isRecording?\"记录中\n\nmessage:\"silent will prevent .log file to generate on next startup\",\nmessage:\"静默将阻止 .log 文件在下次启动时生成, 而调试将收集所有运行信息至 .log 文件\",\n\n\"https://github.com/Fndroid/clash_for_windows_pkg\"\n\"https://github.com/ender-zhao/Clash-for-Windows_Chinese-Attached\"\n\ne._v(\"mode: \"+e._s(e.mode))\ne._v(\"模式: \"+(\"global\"==e._s(e.mode)?\"全局\":\"rule\"==e._s(e.mode)?\"规则\":\"direct\"==e._s(e.mode)?\"直连\":\"script\"==e._s(e.mode)?\"脚本\":e._s(e.mode)))\n\nRestarting core\n重启内核\n\n\":\"Updating\n\":\"更新中\n\nUpdateTime=\"Updating\nUpdateTime=\"更新中\n\ne._v(\"Loading\ne._v(\"加载中\n\nreturn this.isRecording?\"recording\nreturn this.isRecording?\"记录中\n\nCMD with proxy\n终端和代理\n\n=hide\n=隐藏\n\ncould not update provider\n无法更新提供者\n\nDHCP Server\nDHCP 服务器\n\nLocal IP Address\n本地 IP 地址\n\n\"Configuration\"\n\"配置\"\n\nDo you want to restart the APP\n是否要重启APP\n\n\"Restart\"\n\"重新启动\"\n\nclash core startup failed\nclash核心启动失败\n\nrestore proxy group \n恢复代理组 \n\nnetsh interface show interface\nnetsh 界面 显示界面\n\nTUN mode enable but no interface-name in this YAML\n启用 TUN 模式但此 YAML 中没有接口名称\n\nCould not edit proxy gorup type\n无法编辑代理组类型\n\n\"Server\"\n\"服务器\"\n\nPAC Content\nPAC内容\n\nScript Interval\n脚本间隔\n\nAutomatic Upgrade\n自动升级\n\nTry to repair\n尝试修复\n\nLogs Folder\n日志文件夹\n\n\"Home Directory\"\n\"主目录\"\n\n\"Errors\"\n\"错误\"\n\nStop Sorting\n停止排序\n\nProxy or Policy\n代理或策略\n\n  Content\n  内容\n\nCreate a new rule\n创建新规则\n\nSkip Cert Verify\n跳过证书验证\n\nScript Interval\n脚本间隔\n\n\"Automatic Upgrade\"\n\"自动升级\"\n\nAutomatic Upgrade completed\n自动升级完成\n\nmake diff\n制作diff\n\nYou can make some changes to a profile then we merge them for you when you refresh the profile\n你可以对配置文件进行一些更改，然后会在你更新配置文件时为你合并它们\n\nInit diff files\n初始化 diff 文件\n\n\"Delete diff files\"\n\"删除 diff 文件\"\n\nUpdate provider\n更新提供者\n\nUpdate Cron \n更新定时程序Cron \n\nmatching parsers\n个匹配解析器\n\nFound \n找到 \n\n\"Update\",\n\"更新\",\n\n\"Show in folder\"\n\"打开文件所在位置\"\n\n\"TAP device\"\n\"虚拟网卡安装（TAP 模式）\"\n\n\"Rules\"\n\"规则\"\n\n\"QRCode\",\n\"二维码\",\n\ntext:\"Copy\"\ntext:\"复制\"\n\ntext:\"Reorder\"\ntext:\"重新排序\"\n\nhint:\"update\"\nhint:\"更新\"\n\n\"Show:\"\n\"显示:\"\n\n\"Hide:\"\n\"隐藏:\"\n\nIPNet\"\n网络\"\n\nRun script\n运行脚本\n\n\"Actions\"\n\"操作(Actions)\"\n\n\"General\"\n\"主页\"\n\n\"Scripts\"\n\"脚本\"\n\n\"Custom\"\n\"自定义\"\n\n\"section-general\"\n\"section-主页\"\n\n\"section-appearance\"\n\"section-外观\"\n\n\"section-system-proxy\"\n\"section-系统代理\"\n\n\"section-profile-mixin\"\n\"section-配置文件-mixin\"\n\n\"section-proxies\"\n\"section-代理\"\n\n\"section-connections\"\n\"section-连接\"\n\n\"section-outbound\"\n\"section-选择流量出接口\"\n\n\"section-child-processes\"\n\"section-子进程\"\n\n\"section-profiles\"\n\"section-配置\"\n\n\"section-actions\"\n\"section-操作(actions)\"\n\n\"section-shortcuts\"\n\"section-快捷键\"\n\nHide Tray Icon\n隐藏托盘图标\n\nCustom Editor Command\n自定义编辑器命令\n\nhint:\"Update\"\nhint:\"更新\"\n\n\"Scroll to selected proxy\"\n\"移动到选定的代理\"\n\n\"Test latency\"\n\"测试延迟\"\n\n\"Show or hide proxies\"\n\"显示或隐藏代理\"\n\n\"TUN Mode\"\n\"TUN 模式\"\n\nTo enable this mode, please install Service Mode first\n类似于虚拟网卡，启用后可代理所有应用。要启用此模式，请先安装服务模式\n\n\"TUN Mode Settings\"\n\"TUN 模式设置\"\n\nFallback DNS Servers\n后备 DNS 服务器\n\n\"Fake IP Filter\"\n\"Fake IP过滤器\"\n\n\"TUN Stack\"\n\"TUN 码(TUN Stack)\"\n\n\"Auto Detect Interface\"\n\"自动检测接口\"\n\n\"DNS Servers\"\n\"DNS 服务器\"\n\nv(\"Abort\"\nv(\"中止\"\n\nEdit Mixin content\n编辑 Mixin 内容\n\nFake IP Cache\nFake IP 缓存\n\ntitle:\"Cache\"\ntitle:\"缓存\"\n\nswitchMode:function(e){var t=this;return s\nswitchMode:function(e){\"全局\"==e?e=\"global\":\"规则\"==e?e=\"rule\":\"直连\"==e?e=\"direct\":\"脚本\"==e&&(e=\"script\");var t=this;return s\n\n\"Reset\"\n\"重置\"\n\nDNS Hijacks\nDNS 劫持\n\n\"Use CFW Editor\"\n\"使用 CFW 编辑器\"\n\n\"Cannot edit in read-only editor\"\n\"无法在只读编辑器中编辑(请在右边进行编辑)\"\n\nitems:i});case 4:return\nitems:[\"静默\",\"错误\",\"警告\",\"信息\",\"调试\"],});case 4:return\n\n\"Start with Linux\"\n\"开机自启动\"\n\n\"Start with macOS\"\n\"开机自启动\"\n\n\"GeoIP Database\"\n\"GeoIP 数据库更新\"\n\n\"Preload\"\n\"预载\"\n\n\"lines\"\n\"线程\"\n\nhint:\"ESC\"\nhint:\"退出(ESC)\"\n\n\"Ctrl+S\"\n\"保存(Ctrl+S)\"\n\n\"Experimental Features\"\n\"实验功能\"\n\n\"Select a interface\"\n\"选择一个接口\"\n\n\" had been released\"\n\" 已发布\"\n\n\"Copy Commands Only\"\n\"仅复制命令\"\n\n\"Please confirm\"\n\"请确认\"\n\n\"config.yaml and country.mmdb will be removed.\"\n\"config.yaml 和 country.mmdb 将被删除.\"\n\ntitle:\"Router\"\ntitle:\"路由器\"\n\n diff files\n diff 文件\n\n\"OK\",\"Edit in Text Mode\"\n\"好的\",\"在文本模式下编辑\"\n\n\"upgrade app failed with error\n\"升级应用程序失败并出现错误\n\n\"Headers\"\n\"标头\"\n\nfrom(this.now,!0\nlocale('zh-cn').from(this.now\n\nChanges contains conflict, \"Make changes\" to solve issues.\n更改包含冲突, \"修改(diff)文件\" 以解决问题\n\n\"Manage\"\n\"管理\"\n\n  Document\n  帮助文档\n\n\"Make changes\"\n\"修改文件\"\n\nFail to merge profiles, \"Make changes\" to solve issues.\n无法合并配置文件, \"修改(diff)文件\" 以解决问题\n\n\"Edit externally\"\n\"在系统中编辑\"\n\n\"Scroll to group\"\n\"移动至组\"\n\n\"Are you sure to quit\n\"你确定要退出吗\n\n\"Don't Save\"\n\"不保存\"\n\n\"Do you want to save the changes\n\"是否要保存更改\n\n\"fail to restore last profile with error\n\"无法恢复最后一个配置文件并出现错误\n\n'Fail to merge profiles,\n'无法合并配置文件,\n\n to solve issues\n 以解决问题\n\n\"TAP mode enable but no interface-name in this YAML\"\n\"TAP 模式启用, 但此 YAML 中没有接口名称\"\n\nDo you want to set a new uuidv4 secret in\n是否要在\n\nand restart the APP\n中设置新的uuidv4 secret并重启 APP\n\n\"Core Secret\"\n\"核心Secret\"\n\nsecret is currently empty, we strongly recommend to generate one\nsecret 当前为空，我们强烈建议生成一个\n\n\"Security\"\n\"安全\"\n\n\"Generate\":\"Update\"\n\"生成更新\":\"更新\"\n\n\"Process Path\"\n\"进程路径\"\n\n\"Random Mixed Port\"\n\"随机混合端口\"\n\nhint:\"random mixed port\"\nhint:\"随机混合端口\"\n\n\"run as admin\"\n\"以管理员身份运行\"\n\n\"Overall foreground color. This color is only used if not overridden by a component\n\"整体前景色。这个颜色只在没有被组件覆盖的情况下使用\n\n\"Overall foreground color for error messages. This color is only used if not overridden by a component\n\"错误信息的整体前景色。这个颜色只在没有被组件覆盖的情况下使用\n\n\"Color needs a value\"\n\"颜色需要一个值\"\n\n\"Invalid color ctor argument\"\n\"无效颜色参数\"\n\n\"Proxy Name\"\n\"代理名称\"\n\n\"Could not edit proxy type\n\"无法编辑代理类型\n\n\"Clash Core Service started by Clash for Windows\"\n\"用于 Clash 代理开机自启的服务\"\n\n\"Tray Proxy Groups Style\"\n\"托盘代理组样式\"\n\n\"Default\",\"Submenu\",\"Hidden\"\n\"默认\",\"折叠\",\"隐蔽\"\n\nhint:\"Edit\"\nhint:\"编辑\"\n\ntext:\"Settings\"\ntext:\"设置\"\n\ntitle:\"Settings\"\ntitle:\"设置\"\n\ne._v(\"Settings\"\ne._v(\"设置\"\n\nhint:\"Settings\"\nhint:\"设置\"\n\ne._v(\"Network Interfaces\"\ne._v(\"网络端口\"\n\nhint:\"Network interfaces\"\nhint:\"网络端口\"\n\nhint:\"terminal\"\nhint:\"终端\"\n\n\"Show Process If Present\"\n\"显示进程（如果存在）\"\n\n\"Show Tray Proxy Delay Indicator\"\n\"在托盘代理中显示节点可用性\"\n\n\"add firewall rules\n\"添加防火墙规则\n\nfor Allow LAN and system stack\n允许 LAN 和系统堆栈\n\nitems:[\"info\",\"debug\"]\nitems:[\"信息\",\"调试\"]\n\n\"Update\"\n\"更新\"\n\n\"connected\":\"disconnected\"\n\"已连接\":\"断开连接\"\n\nCopy Domain:Port\n复制域:端口\n\n\"Reload APP\"\n\"重新加载APP\"\n\n\"Fail to \"\n\"未能\"\n\n(),\" service\"\n(),\"服务模式\"\n\n  Set Clash Core's\n  将 Clash Core 的\n\n\" to a random RFC\n\" 设置为随机的 RFC\n\n  4122 version 4 UUID, so that Clash REST API cannot be accessed\n  4122 版本 4 UUID，这样 Clash REST API 就不能被任意访问。\n\n  arbitrarily. \n   \n\n\"The value is stored in the\n\"该值存储在于\n\n\"Text editor used by Settings.\"\n\"设置使用的文本编辑器\"\n\ne._v(\"For\\\\n  \ne._v(\"对于\\\\n  \n\n\", the command should only return control\n\", 该命令只应在编辑文件关闭后返回控制权。\n\n  after the edited file is closed. For example:\n  例如:\n\nSet whether to allow pop-up system-level notifications\n设置是否允许弹出系统级通知\n\nSet whether to display dashboard at startup\n设置是否在启动时显示仪表板\n\nSet whether to update automatically, after turning on the new\n设置是否自动更新，\n\nversion will be updated in the background, the next launch will be\n开启新版本后后台更新，\n\nthe latest version\n下次启动为最新版本\n\nSet whether to hide the taskbar icon or not\n设置是否隐藏任务栏图标\n\nSet whether the delay indicator is displayed in the proxy of the\n设置是否在任务栏菜单的代理中\n\ntaskbar menu\"\n显示延迟指示器\"\n\nSet whether to enable custom taskbar\n设置是否启用自定义任务栏\n\n hover window\n 悬停窗口\n\n\"Turn on to forcibly add scheme to the system proxy settings.\"\n\"打开以强制将方案添加到系统代理设置\"\n\n  This is not for general-purpose use, and indeed violates the\n  这不是通用用途,\n\n  current spec of Windows. Consider it only when an old Python\n  并且确实违反了当前的 Windows 规范.\n\n  program has trouble.\"\n  仅在使用旧的 Python 时才考虑它.\"\n\nFor details, see\n有关详细信息，请参阅\n\nSet whether to close all connections when switching modes\n设置切换模式时是否关闭所有连接\n\nSet whether the profile is selected after updating\n设置是否在更新后选择已更新的配置文件\n\n\"Turn on to terminate app processes after closing the dashboard,\n\"关闭仪表板后打开以终止应用程序进程,\n\n  but keep Clash Core running in the background. Most of the\n  但保持 Clash Core 在后台运行。\n\n  features provided by CFW will be unavailable then.\n  届时，CFW 提供的大部分功能将不可用\n\n\"Relies on the \"\n\"依赖\"\n\ne._v(\"docs\"\ne._v(\"帮助文档\"\n\nSet the taskbar icon in the default state\n将任务栏图标设置为默认状态\n\nSet the taskbar icon when the System Proxy is turned on\n设置系统代理开启时的任务栏图标\n\n\"Modify and customize your profiles after download but before\n\"在下载后修改和自定义你的配置，在\n\n\"Diff\")]),e._v(\".\n\"Diff\")]),e._v(\"开始之前\n\nSet the code to be called when the Action is executed\n设置执行Action时要调用的代码\n\nSet child processes to be spawned with dashboard\n设置要使用仪表板生成的子进程\n\n\"Turn on to generate a new proxy server port number when the app\n\"打开应用程序启动时生成新的代理服务器端口号。\n\n  starts.\"\n  \"\n\n\"The value is shown as Port in General, and is\n\"该值在 General 中显示为 Port，\n\n  stored as\n  并存储为\n\n   in the\\\\n\n   在\\\\n\n\nSet whether to use a random port as the core controller port (the\n设置是否使用随机端口作为核心控制器端口 (\n\nport section of external-controller in Home\nHome Directory/config.yaml中external-controller\n\n    Directory/config.ymal\n    的端口部分\n\nSet whether to hide unselectable proxy groups in the Proxies\n设置是否隐藏代理模块中不可选择的代理组\n\nSet whether to show Process Name(if present) in Connections\n设置是否显示连接中的进程名称（如果存在） \n\n\"br\"),e._v(\"Set\n\"br\"),e._v(\"\n\n  the individual profile request header content in the Profiles\n  在 Profiles 模块中设置单独的配置文件请求头内容\n\n  module\")\n  \")\n\n    profiles\n    \n\nSet whether to close all connections when switching\n设置配置文件改变时是否关闭所有连接\n\ne._v(\"Drag\"\ne._v(\"\"\n\n  to control.\n \n\nicons between \"show\" and \"hide\"\n在“显示”和“隐藏”之间拖动图标来控制\"\n\nSet the proxy group style in the taskbar menu\n在任务栏菜单中设置代理组样式\n\ne._v(\"Default\"\ne._v(\"默认\"\n\nFlat all proxy groups\n扁平化所有代理组\n\ne._v(\"Submenu\"\ne._v(\"折叠\"\n\nShow proxy groups in submenu\n在折叠中显示代理组\n\ne._v(\"Hidden\"\ne._v(\"隐藏\"\n\nHide proxy groups\n隐藏代理组\n\n\"Windows accepts an HTTP endpoint or PAC (proxy\n\"Windows 接受 HTTP 端点或 PAC\n\n  auto-configuration) script. The HTTP mode is generally\n  （代理自动配置）脚本。\n\n  sufficient.\"\n  HTTP 模式通常就足够了。\"\n\nSet the type of chain displayed in the Connections module\n设置连接模块中显示的链类型\n\nin Connections\n \n\nSet the system proxy Host part to static content, if not set, the\n将系统代理主机部分设置为静态内容, 如果没有设置,\n\nhost defaults to\n主机默认为\n\nSet the display width of each proxy in the Proxies module\n在代理界面中设置每个节点的显示宽度\n\nSet the width of the minilist in the Proxies module\n设置代理界面导航栏宽度\n\nSet the URL used when clicking the Delay Test button in the\n设置在代理模块中单击延迟测试按钮时使用的 URL\n\n  Proxies module\n \n\nSet the Proxies module to display the keyword filter icon or\n设置代理模块是否显示关键字过滤器图标\n\n  not\n \n\nSet the strategy for closing connections when switching proxies\\\\n              in the Proxies module\n在代理模块中设置切换代理时关闭连接的策略\n\ne._v(\"None\"\ne._v(\"不中断\"\n\nDo not close\n不关闭任何链接\n\ne._v(\"Chain\"\ne._v(\"旧链接\"\n\nClose connections with proxy name in chain\n关闭与链中代理名称的连接\n\ne._v(\"All\"\ne._v(\"全部\"\n\nClose all connections\n关闭所有连接\n\n\"Bypass (don't use) the proxy server when visiting certain\\\\n            addresses.\n\"访问某些地址时绕过（不使用）代理服务器。\n\nThe interpretation of this list is OS-dependent and app-dependent.\\\\n            In other words, your operating systems and applications may\\\\n            evaluate the rules differently.\n此列表的解释取决于操作系统和应用程序. 换句话说，您的操作系统和应用程序可能会以不同的方式评估规则\n\n\"Use a proxy server in Windows\n\"在 Windows 中使用代理服务器\n\n\"Enter proxy server settings on Mac\"\n\"在 Mac 上输入代理服务器设置\"\n\nSet interface name to overwrite like Mixin, will be removed in\n像 Mixin 一样设置接口名覆盖，以后会移除\n\n  the future\n \n\n  Docs\n  在线文档\n\nSet the path to the profiles folder, default\n设置配置文件文件夹的路径，默认\n\ne._v(\"Proxy\"\ne._v(\"节点名\"\n\n\" - Proxy name\"\n\"\"\n\ne._v(\"Group\"\ne._v(\"分组名\"\n\n\" - Group name\"\n\"\"\n\ne._v(\"Both\"\ne._v(\"全部\"\n\nProxy name and group name\"\n节点名和分组名\"\n\nSet the request header content when updating a profile\n更新配置文件时设置请求标头内容\n\nSet the number of log lines to be preloaded in the Logs module,\n在 Logs 模块中设置要预加载的日志行数,\n\n  set to 0 to not preload\"\n  设置为 0 不预加载\"\n\n  colors:\n  颜色:\n\n  - available\n  - 可用的\n\n  - timeout\n  - 超时\n\n  - unknown\n  - 未知\n\ne._v(\"Alive\"\ne._v(\"活动\"\n\ne._v(\"Closed\"\ne._v(\"关闭\"\n\n,\"DNS Mode\"\n,\"DNS 模式\"\n\n  Set the URLs that do not verify the certificate when requesting\n  设置请求时不验证证书的URL\n\n  Do \"\n   \"\n\ne._v(\"not\"\ne._v(\"不要更改它\"\n\n\" change it if you do not know what it is\n\" , 除非你知道它是什么\n\n\"Allow Unsafe URLs\"\n\"允许不安全的 URL\"\n\n,e._v(\".\")]\n,e._v(\"内\")]\n\n Clash documentation\nClash文档\n\n\"Preview the final configuration file that was submitted to Clash Core\"\n\"预览提交给 Clash Core 的最终配置文件\"\n\nhint:\"Esc\"\nhint:\"退出\"\n\n\"Use Mode Icons\"\n\"使用连接模式图标\"\n\n\"Use first letter of current mode as tray icon\"\n\"使用当前选择的模式作为托盘图标\"\n\n\"Visible On All Workspaces\"\n\"在所有工作区中可见\"\n\n\"Install method:\"\n\"安装方法:\"\n\n\"schtasks(recommanded)\"\n\"schtasks(推荐)\"\n\n\"scroll to view more\"\n\"滑动鼠标以查看更多\"\n"
  },
  {
    "path": "chinese_file/Sinicization_files/main.js",
    "content": "module.exports = function(e) {\n    var t = {};\n\n    function n(r) {\n        if (t[r]) return t[r].exports;\n        var o = t[r] = {\n            i: r,\n            l: !1,\n            exports: {}\n        };\n        return e[r].call(o.exports, o, o.exports, n), o.l = !0, o.exports\n    }\n    return n.m = e, n.c = t, n.d = function(e, t, r) {\n        n.o(e, t) || Object.defineProperty(e, t, {\n            enumerable: !0,\n            get: r\n        })\n    }, n.r = function(e) {\n        \"undefined\" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e, Symbol.toStringTag, {\n            value: \"Module\"\n        }), Object.defineProperty(e, \"__esModule\", {\n            value: !0\n        })\n    }, n.t = function(e, t) {\n        if (1 & t && (e = n(e)), 8 & t) return e;\n        if (4 & t && \"object\" == typeof e && e && e.__esModule) return e;\n        var r = Object.create(null);\n        if (n.r(r), Object.defineProperty(r, \"default\", {\n                enumerable: !0,\n                value: e\n            }), 2 & t && \"string\" != typeof e)\n            for (var o in e) n.d(r, o, function(t) {\n                return e[t]\n            }.bind(null, o));\n        return r\n    }, n.n = function(e) {\n        var t = e && e.__esModule ? function() {\n            return e.default\n        } : function() {\n            return e\n        };\n        return n.d(t, \"a\", t), t\n    }, n.o = function(e, t) {\n        return Object.prototype.hasOwnProperty.call(e, t)\n    }, n.p = \"\", n(n.s = 5)\n}([function(e, t) {\n    e.exports = require(\"electron\")\n}, function(e, t, n) {\n    e.exports = n(6)\n}, function(e, t) {\n    e.exports = function(e, t, n) {\n        return t in e ? Object.defineProperty(e, t, {\n            value: n,\n            enumerable: !0,\n            configurable: !0,\n            writable: !0\n        }) : e[t] = n, e\n    }, e.exports.default = e.exports, e.exports.__esModule = !0\n}, function(e, t) {\n    function n(e, t, n, r, o, i, a) {\n        try {\n            var c = e[i](a),\n                s = c.value\n        } catch (e) {\n            return void n(e)\n        }\n        c.done ? t(s) : Promise.resolve(s).then(r, o)\n    }\n    e.exports = function(e) {\n        return function() {\n            var t = this,\n                r = arguments;\n            return new Promise((function(o, i) {\n                var a = e.apply(t, r);\n\n                function c(e) {\n                    n(a, o, i, c, s, \"next\", e)\n                }\n\n                function s(e) {\n                    n(a, o, i, c, s, \"throw\", e)\n                }\n                c(void 0)\n            }))\n        }\n    }, e.exports.default = e.exports, e.exports.__esModule = !0\n}, function(e, t) {\n    e.exports = require(\"path\")\n}, function(e, t, n) {\n    \"use strict\";\n    n.r(t);\n    t = n(2);\n    var r = n.n(t),\n        o = (t = n(3), n.n(t)),\n        i = (t = n(1), n.n(t)),\n        a = n(0);\n\n    function c(e, t) {\n        var n, r = Object.keys(e);\n        return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(e), t && (n = n.filter((function(t) {\n            return Object.getOwnPropertyDescriptor(e, t).enumerable\n        }))), r.push.apply(r, n)), r\n    }\n\n    function s(e) {\n        for (var t = 1; t < arguments.length; t++) {\n            var n = null != arguments[t] ? arguments[t] : {};\n            t % 2 ? c(Object(n), !0).forEach((function(t) {\n                r()(e, t, n[t])\n            })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : c(Object(n)).forEach((function(t) {\n                Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t))\n            }))\n        }\n        return e\n    }\n    var u, l, p, d, h, f = n(0).TouchBar,\n        g = f.TouchBarButton,\n        w = n(4),\n        m = n(7),\n        b = n(8);\n    t = n(9);\n    n(10).init(), global.__static = n(4).join(__dirname, \"/static\").replace(/\\\\/g, \"\\\\\\\\\"), t(), a.app.disableHardwareAcceleration(), a.app.commandLine.appendSwitch(\"disable-features\", \"OutOfBlinkCors\"), \"darwin\" === process.platform && a.app.dock.hide();\n    var y = \"file://\".concat(__dirname, \"/index.html\");\n\n    function v() {\n        var e, t;\n\n        function c() {\n            var e, t, o, i;\n            d || ((e = a.nativeImage.createFromPath(n(4).join(__static, \"imgs\", \"logo_64_eyes.png\")).resize({\n                width: 24,\n                height: 24\n            })).setTemplateImage(!0), t = w.join(__static, \"tray_normal.ico\"), o = w.join(__static, \"imgs\", \"logo_reverse.png\"), i = {}, r()(i, \"win32\", t), r()(i, \"darwin\", e), r()(i, \"linux\", o), i = i[process.platform], (d = new a.Tray(i)).setToolTip(\"Clash for Windows\"), d.on(\"right-click\", (function() {\n                d.popUpContextMenu(v)\n            })), d.on(\"click\", (function() {\n                u.setBounds(x(u.getBounds())), u.show()\n            })))\n        }(u = new a.BrowserWindow({\n            height: 603,\n            width: 850,\n            minWidth: 850,\n            minHeight: 603,\n            backgroundColor: \"#f5f5f5\",\n            useContentSize: !0,\n            show: !1,\n            minimizable: !0,\n            frame: !1,\n            titleBarStyle: \"hidden\",\n            icon: \"linux\" === process.platform ? w.join(__static, \"imgs\", \"icon_512.png\") : void 0,\n            webPreferences: {\n                nodeIntegration: !0,\n                webSecurity: !0,\n                nodeIntegrationInWorker: !1,\n                contextIsolation: !1,\n                preload: w.resolve(w.join(__dirname, \"preload.js\"))\n            }\n        })).setMenu(null), u.webContents.on(\"will-navigate\", (function(e) {\n            return e.preventDefault()\n        })), u.loadURL(y, {\n            userAgent: \"ClashforWindows/\".concat(a.app.getVersion())\n        }), u.webContents.on(\"render-process-gone\", (e = o()(i.a.mark((function e(t, n) {\n            var r, o;\n            return i.a.wrap((function(e) {\n                for (;;) switch (e.prev = e.next) {\n                    case 0:\n                        if (r = n.reason, \"darwin\" === process.platform) return e.abrupt(\"return\");\n                        e.next = 3;\n                        break;\n                    case 3:\n                        if (\"crashed\" === r) return o = {\n                            type: \"error\",\n                            title: \"Clash for Windows\",\n                            message: \"仪表板崩溃了!\",\n                            buttons: [\"Reload\", \"Exit\"]\n                        }, e.next = 7, a.dialog.showMessageBox(u, o);\n                        e.next = 10;\n                        break;\n                    case 7:\n                        0 === (o = e.sent).response ? (a.app.relaunch(), a.app.exit(0)) : a.app.quit();\n                    case 10:\n                    case \"end\":\n                        return e.stop()\n                }\n            }), e)\n        }))), function(t, n) {\n            return e.apply(this, arguments)\n        })), a.ipcMain.handle(\"start-download\", (function(e, t, n) {\n            u.webContents.downloadURL(t), h = n\n        })), u.webContents.session.on(\"will-download\", (function(e, t, n) {\n            t.setSavePath(h), t.on(\"updated\", (function(e, n) {\n                \"interrupted\" === n ? u.webContents.send(\"download\", \"interrupted\") : \"progressing\" === n && (t.isPaused() ? u.webContents.send(\"download\", \"paused\") : u.webContents.send(\"download\", \"downloading\", t.getReceivedBytes() / t.getTotalBytes()))\n            })), t.once(\"done\", (function(e, t) {\n                \"completed\" === t ? u.webContents.send(\"download\", \"completed\") : u.webContents.send(\"download\", \"failed\", t)\n            }))\n        })), a.ipcMain.handle(\"app\", (function(e, t) {\n            for (var n = arguments.length, r = new Array(2 < n ? n - 2 : 0), o = 2; o < n; o++) r[o - 2] = arguments[o];\n            switch (t) {\n                case \"isPackaged\":\n                    return a.app.isPackaged;\n                case \"getPath\":\n                    return a.app.getPath.apply(a.app, r);\n                case \"getAppPath\":\n                    return a.app.getAppPath();\n                case \"getName\":\n                    return a.app.getName();\n                case \"getVersion\":\n                    return a.app.getVersion();\n                case \"setLoginItemSettings\":\n                    return a.app.setLoginItemSettings.apply(a.app, r);\n                case \"relaunch\":\n                    return a.app.relaunch();\n                case \"exit\":\n                    return a.app.exit.apply(a.app, r);\n                case \"quit\":\n                    return a.app.quit()\n            }\n        })), a.ipcMain.handle(\"window\", (function(e, t) {\n            switch (t) {\n                case \"close\":\n                    return u.close();\n                case \"minimize\":\n                    return u.minimize();\n                case \"maximize\":\n                    return u.maximize();\n                case \"unmaximize\":\n                    return u.unmaximize();\n                case \"setAlwaysOnTop\":\n                    for (var n = arguments.length, r = new Array(2 < n ? n - 2 : 0), o = 2; o < n; o++) r[o - 2] = arguments[o];\n                    return u.setAlwaysOnTop.apply(u, r)\n            }\n        })), u.on(\"hide\", (function() {\n            u.webContents.send(\"window-event\", \"hide\")\n        })), u.on(\"show\", (function() {\n            \"darwin\" === process.platform && a.app.dock.show(), u.webContents.send(\"window-event\", \"show\"), u.setBounds(x(u.getBounds()))\n        })), u.on(\"close\", (function(e) {\n            return a.app.isQuiting ? (a.globalShortcut.unregisterAll(), a.app.exit()) : (e.preventDefault(), u.webContents.send(\"window-event\", \"close\"), d ? (u.hide(), \"darwin\" === process.platform && a.app.dock.hide()) : u.minimize()), !1\n        })), u.on(\"maximize\", (function(e) {\n            u.webContents.send(\"window-event\", \"maximize\")\n        })), u.on(\"unmaximize\", (function(e) {\n            u.webContents.send(\"window-event\", \"unmaximize\")\n        })), u.on(\"session-end\", (function(e) {\n            e.preventDefault(), u.webContents.send(\"app-exit\")\n        })), a.ipcMain.handle(\"webContent\", (function(e, t) {\n            if (\"toggleDevTools\" === t) return u.webContents.toggleDevTools()\n        })), a.ipcMain.handle(\"dialog\", (t = o()(i.a.mark((function e(t, n) {\n            var r, o, c, s = arguments;\n            return i.a.wrap((function(e) {\n                for (;;) switch (e.prev = e.next) {\n                    case 0:\n                        for (r = s.length, o = new Array(2 < r ? r - 2 : 0), c = 2; c < r; c++) o[c - 2] = s[c];\n                        e.t0 = n, e.next = \"showMessageBox\" === e.t0 ? 4 : \"showOpenDialogSync\" === e.t0 ? 7 : 8;\n                        break;\n                    case 4:\n                        return e.next = 6, a.dialog.showMessageBox.apply(a.dialog, [u].concat(o));\n                    case 6:\n                        return e.abrupt(\"return\", e.sent);\n                    case 7:\n                        return e.abrupt(\"return\", a.dialog.showOpenDialogSync.apply(a.dialog, [u].concat(o)));\n                    case 8:\n                    case \"end\":\n                        return e.stop()\n                }\n            }), e)\n        }))), function(e, n) {\n            return t.apply(this, arguments)\n        })), a.ipcMain.handle(\"globalShortcut\", (function(e, t) {\n            for (var n = arguments.length, r = new Array(2 < n ? n - 2 : 0), o = 2; o < n; o++) r[o - 2] = arguments[o];\n            switch (t) {\n                case \"register\":\n                    return a.globalShortcut.register(r[0], (function() {\n                        u.webContents.send(\"shortcut-pressed\", r[0])\n                    }));\n                case \"unregister\":\n                    return a.globalShortcut.unregister.apply(a.globalShortcut, r);\n                case \"isRegistered\":\n                    return a.globalShortcut.isRegistered.apply(a.globalShortcut, r)\n            }\n        })), a.ipcMain.handle(\"nativeTheme\", (function(e, t) {\n            if (\"shouldUseDarkColors\" === t) return a.nativeTheme.shouldUseDarkColors\n        })), a.nativeTheme.on(\"updated\", (function() {\n            u.webContents.send(\"native-theme-updated\", a.nativeTheme.shouldUseDarkColors)\n        })), a.ipcMain.handle(\"powerSaveBlocker\", (function(e, t) {\n            for (var n, r = arguments.length, o = new Array(2 < r ? r - 2 : 0), i = 2; i < r; i++) o[i - 2] = arguments[i];\n            switch (t) {\n                case \"start\":\n                    return (n = powerSaveBlocker).start.apply(n, o);\n                case \"stop\":\n                    return (n = powerSaveBlocker).stop.apply(n, o)\n            }\n        })), u.setTouchBar(new f({\n            items: [new g({\n                label: \"General\",\n                backgroundColor: \"#505050\",\n                click: function() {\n                    u.webContents.send(\"menu-item-change\", \"general\")\n                }\n            }), new g({\n                label: \"Proxies\",\n                backgroundColor: \"#505050\",\n                click: function() {\n                    u.webContents.send(\"menu-item-change\", \"proxy\")\n                }\n            }), new g({\n                label: \"Profiles\",\n                backgroundColor: \"#505050\",\n                click: function() {\n                    u.webContents.send(\"menu-item-change\", \"server\")\n                }\n            }), new g({\n                label: \"Logs\",\n                backgroundColor: \"#505050\",\n                click: function() {\n                    u.webContents.send(\"menu-item-change\", \"log\")\n                }\n            }), new g({\n                label: \"Connections\",\n                backgroundColor: \"#505050\",\n                click: function() {\n                    u.webContents.send(\"menu-item-change\", \"connection\")\n                }\n            }), new g({\n                label: \"Settings\",\n                backgroundColor: \"#505050\",\n                click: function() {\n                    u.webContents.send(\"menu-item-change\", \"setting\")\n                }\n            }), new g({\n                label: \"Feedback\",\n                backgroundColor: \"#505050\",\n                click: function() {\n                    u.webContents.send(\"menu-item-change\", \"about\")\n                }\n            })]\n        })), a.powerMonitor.on(\"suspend\", (function() {\n            u.webContents.send(\"power-event\", \"suspend\")\n        })), a.powerMonitor.on(\"resume\", (function() {\n            u.webContents.send(\"power-event\", \"resume\")\n        })), a.ipcMain.handle(\"window-control\", (function(e, t) {\n            switch (t) {\n                case \"hide\":\n                    a.app.quit();\n                    break;\n                case \"show\":\n                    u.show();\n                    break;\n                case \"show-or-hide\":\n                    u.isVisible() && u.isFocused() ? a.app.quit() : u.show()\n            }\n        })), a.ipcMain.on(\"cleanup-done\", (function(e) {\n            a.app.isQuiting = !0, a.app.quit()\n        })), a.ipcMain.on(\"status-changed\", (function(e, t) {\n            try {\n                \"darwin\" !== process.platform && d.setImage(t)\n            } catch (e) {}\n        })), a.ipcMain.on(\"show-notification\", (function(e, t) {\n            var n = w.join(global.__static, \"imgs/logo_64.png\"),\n                r = new a.Notification(s(s({}, t), {}, {\n                    icon: \"darwin\" !== process.platform ? a.nativeImage.createFromPath(n) : null\n                })),\n                o = (n = t.folder, t.url);\n            n && r.on(\"click\", (function() {\n                a.shell.openPath(t.folder)\n            })), o && r.on(\"click\", (function() {\n                a.shell.openExternal(o)\n            })), r.show()\n        }));\n        var b = [{\n                label: \"仪表盘\",\n                click: function() {\n                    return u.show()\n                }\n            }, {\n                label: \"运行任务栏脚本\",\n                visible: \"linux\" !== process.platform,\n                click: function() {\n                    return u.webContents.send(\"run-tray-script\")\n                }\n            }, {\n                type: \"separator\"\n            }, {\n                label: \"系统代理\",\n                type: \"checkbox\",\n                id: \"system-proxy\",\n                enabled: !1,\n                visible: \"linux\" !== process.platform,\n                click: function(e) {\n                    e = e.checked, u.webContents.send(\"system-proxy-changed\", e)\n                }\n            }, {\n                label: \"TUN 模式\",\n                type: \"checkbox\",\n                id: \"tun\",\n                enabled: !1,\n                click: function(e) {\n                    e = e.checked, u.webContents.send(\"tun-changed\", e)\n                }\n            }, {\n                label: \"混合配置\",\n                type: \"checkbox\",\n                id: \"mixin\",\n                enabled: !1,\n                click: function(e) {\n                    e = e.checked, u.webContents.send(\"mixin-changed\", e)\n                }\n            }, {\n                type: \"separator\"\n            }, {\n                label: \"代理模式\",\n                id: \"mode\",\n                enabled: !1\n            }, {\n                label: \"全局\",\n                type: \"radio\",\n                id: \"mode-global\",\n                enabled: !1,\n                click: function() {\n                    return u.webContents.send(\"mode-changed\", \"global\")\n                }\n            }, {\n                label: \"规则\",\n                type: \"radio\",\n                id: \"mode-rule\",\n                enabled: !1,\n                click: function() {\n                    return u.webContents.send(\"mode-changed\", \"rule\")\n                }\n            }, {\n                label: \"直连\",\n                type: \"radio\",\n                id: \"mode-direct\",\n                enabled: !1,\n                click: function() {\n                    return u.webContents.send(\"mode-changed\", \"direct\")\n                }\n            }, {\n                label: \"脚本\",\n                type: \"radio\",\n                id: \"mode-script\",\n                enabled: !1,\n                click: function() {\n                    return u.webContents.send(\"mode-changed\", \"script\")\n                }\n            }, {\n                type: \"separator\"\n            }, {\n                label: \"更多\",\n                submenu: [{\n                    label: \"切换Dev工具\",\n                    click: function() {\n                        u.webContents.toggleDevTools()\n                    }\n                }, {\n                    label: \"重启\",\n                    click: function() {\n                        a.app.relaunch(), a.app.exit(0)\n                    }\n                }, {\n                    label: \"强制退出\",\n                    click: function() {\n                        a.app.isQuiting = !0, a.app.quit()\n                    }\n                }]\n            }, {\n                type: \"separator\"\n            }, {\n                label: \"退出\",\n                click: function() {\n                    return u.webContents.send(\"app-exit\")\n                }\n            }],\n            v = a.Menu.buildFromTemplate(b);\n\n        function k() {\n            \"linux\" === process.platform && d && d.setContextMenu(v)\n        }\n        c(), a.ipcMain.handle(\"tray-create-destroy\", (function(e) {\n            var t = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : \"create\";\n            \"create\" === t && c(), \"destroy\" === t && d && (d.destroy(), d = null)\n        })), k(), a.ipcMain.on(\"clash-core-status-change\", (function(e, t) {\n            var n = v.getMenuItemById(\"system-proxy\");\n            n && (n.enabled = 1 !== t), (n = v.getMenuItemById(\"mixin\")) && (n.enabled = 1 !== t), (n = v.getMenuItemById(\"tun\")) && (n.enabled = 1 !== t), [\"global\", \"rule\", \"direct\", \"script\"].forEach((function(e) {\n                (e = v.getMenuItemById(\"mode-\".concat(e))) && (e.enabled = 1 !== t)\n            })), k()\n        })), a.ipcMain.on(\"mode-changed\", (function(e, t) {\n            t = \"mode-\".concat(t), (t = v.getMenuItemById(t)) && (t.checked = !0), k()\n        })), a.ipcMain.on(\"system-proxy-changed\", (function(e, t) {\n            var n = v.getMenuItemById(\"system-proxy\");\n            n && (n.checked = t), k()\n        })), a.ipcMain.on(\"mixin-changed\", (function(e, t) {\n            var n = v.getMenuItemById(\"mixin\");\n            n && (n.checked = t), k()\n        })), a.ipcMain.on(\"tun-changed\", (function(e, t) {\n            var n = v.getMenuItemById(\"tun\");\n            n && (n.checked = t), k()\n        })), a.ipcMain.on(\"enhanced-tray-click\", (function() {\n            u.show()\n        })), a.ipcMain.on(\"speed-update\", (function(e, t, n) {\n            var r = 3 < arguments.length && void 0 !== arguments[3] ? arguments[3] : \"#fff\";\n            try {\n                if (d) {\n                    var o, i = a.nativeImage.createFromDataURL(t);\n                    if (\"win32\" === process.platform) {\n                        if (60 === n) return void(l && (l.destroy(), l = null, p = 0));\n                        var c = i.crop({\n                                x: 0,\n                                y: 0,\n                                width: n + 8,\n                                height: 69\n                            }),\n                            s = w.join(a.app.getPath(\"temp\"), \"cfw-sub.html\"),\n                            u = c.getSize(),\n                            h = u.width,\n                            f = u.height;\n                        m.writeFileSync(s, '\\n          <body style=\"position:relative;background-color:'.concat(r, ';overflow:hidden;-webkit-app-region:drag;margin:0;width:100%;height:100%;box-sizing:border-box;\">\\n            <img id=\"img\" style=\"height:100%;width:100%;\" src=\"').concat(c.toDataURL(), '\" />\\n            <div style=\"position:absolute;width:50%;height:100%;top:0;left:50%;-webkit-app-region:no-drag;\" onclick=\"handleClick()\"></div>\\n          </body>\\n          <script>\\n            const { ipcRenderer } = require(\\'electron\\');\\n            ipcRenderer.on(\\'speed-update-win\\', (e, url, bgc) => {\\n              document.getElementById(\"img\").src = url;\\n              document.body.style.backgroundColor = bgc;\\n            })\\n            const handleClick = () => {\\n              ipcRenderer.send(\\'enhanced-tray-click\\');\\n            }\\n          <\\/script>\\n          ')), l || (l = new a.BrowserWindow({\n                            show: !0,\n                            alwaysOnTop: !0,\n                            closable: !1,\n                            focusable: !1,\n                            frame: !1,\n                            useContentSize: !0,\n                            maximizable: !1,\n                            transparent: !0,\n                            minimizable: !1,\n                            resizable: !1,\n                            webPreferences: {\n                                nodeIntegration: !0,\n                                contextIsolation: !1\n                            }\n                        })).loadFile(s), l.show(), l.webContents.send(\"speed-update-win\", c.toDataURL(), r), p !== n && l.setBounds({\n                            height: Math.ceil(f / 2.8),\n                            width: Math.ceil(h / 2.8)\n                        }), p = n\n                    }\n                    \"darwin\" === process.platform && ((o = i.crop({\n                        x: 0,\n                        y: 0,\n                        width: n,\n                        height: 69\n                    }).resize({\n                        height: 23\n                    })).setTemplateImage(!0), d.setImage(o))\n                }\n            } catch (e) {}\n        }));\n        var C, M;\n        b = [{\n            label: a.app.name,\n            submenu: [{\n                role: \"about\"\n            }, {\n                type: \"separator\"\n            }, {\n                role: \"services\"\n            }, {\n                type: \"separator\"\n            }, {\n                role: \"hide\"\n            }, {\n                role: \"hideothers\"\n            }, {\n                role: \"unhide\"\n            }, {\n                label: \"Close\",\n                accelerator: \"Command+W\",\n                click: function() {\n                    u.close()\n                }\n            }, {\n                type: \"separator\"\n            }, {\n                label: \"退出 Clash for Windows\",\n                accelerator: \"Command+Q\",\n                click: function() {\n                    u.webContents.send(\"app-exit\")\n                }\n            }]\n        }, {\n            role: \"editMenu\"\n        }, {\n            role: \"viewMenu\"\n        }, {\n            role: \"windowMenu\"\n        }, {\n            role: \"help\",\n            submenu: [{\n                label: \"Github\",\n                click: (M = o()(i.a.mark((function e() {\n                    var t;\n                    return i.a.wrap((function(e) {\n                        for (;;) switch (e.prev = e.next) {\n                            case 0:\n                                return t = (t = n(0)).shell, e.next = 3, t.openExternal(\"https://github.com/Fndroid/clash_for_windows_pkg\");\n                            case 3:\n                            case \"end\":\n                                return e.stop()\n                        }\n                    }), e)\n                }))), function() {\n                    return M.apply(this, arguments)\n                })\n            }, {\n                label: \"Document\",\n                click: (C = o()(i.a.mark((function e() {\n                    var t;\n                    return i.a.wrap((function(e) {\n                        for (;;) switch (e.prev = e.next) {\n                            case 0:\n                                return t = (t = n(0)).shell, e.next = 3, t.openExternal(\"https://docs.cfw.lbyczf.com/\");\n                            case 3:\n                            case \"end\":\n                                return e.stop()\n                        }\n                    }), e)\n                }))), function() {\n                    return C.apply(this, arguments)\n                })\n            }]\n        }];\n        a.Menu.setApplicationMenu(a.Menu.buildFromTemplate(b))\n    }\n\n    function x(e) {\n        var t = e.x,\n            n = e.y;\n        return !a.screen.getAllDisplays().find((function(e) {\n            if (i = e.bounds) {\n                var r = i.x,\n                    o = i.y,\n                    i = (e = i.width, i.height);\n                return b.inRange(t, r, r + e) && b.inRange(n, o, o + i)\n            }\n        })) && (e = a.screen.getDisplayNearestPoint({\n            x: t,\n            y: n\n        }).bounds) ? {\n            x: e.x,\n            y: e.y\n        } : {\n            x: t,\n            y: n\n        }\n    }\n    t = a.app.requestSingleInstanceLock(), a.app.setAppUserModelId(\"com.lbyczf.clashwin\"), a.app.setAsDefaultProtocolClient(\"clash\"), a.app.setName(\"Clash for Windows\"), a.app.setAboutPanelOptions({\n        version: \"\"\n    }), a.app.on(\"open-url\", (function(e, t) {\n        u.webContents.send(\"app-open\", [t])\n    })), t ? (a.app.on(\"second-instance\", (function(e, t, n) {\n        u && (u.webContents.send(\"app-open\", t), u.isMinimized() && u.restore(), u.show())\n    })), a.app.on(\"ready\", (function() {\n        a.powerMonitor.on(\"shutdown\", (function(e) {\n            e.preventDefault(), u.webContents.send(\"app-exit\"), setTimeout((function() {\n                a.app.isQuiting = !0, a.app.quit()\n            }), 5e3)\n        })), v()\n    }))) : a.app.quit(), a.app.on(\"activate\", (function() {\n        null === u ? v() : u.show()\n    }))\n}, function(e, t, n) {\n    e = function(e) {\n        \"use strict\";\n        var t, n = Object.prototype,\n            r = n.hasOwnProperty,\n            o = \"function\" == typeof Symbol ? Symbol : {},\n            i = o.iterator || \"@@iterator\",\n            a = o.asyncIterator || \"@@asyncIterator\",\n            c = o.toStringTag || \"@@toStringTag\";\n\n        function s(e, t, n) {\n            return Object.defineProperty(e, t, {\n                value: n,\n                enumerable: !0,\n                configurable: !0,\n                writable: !0\n            }), e[t]\n        }\n        try {\n            s({}, \"\")\n        } catch (n) {\n            s = function(e, t, n) {\n                return e[t] = n\n            }\n        }\n\n        function u(e, n, r, o) {\n            var i, a, c, s;\n            n = n && n.prototype instanceof w ? n : w, n = Object.create(n.prototype), o = new _(o || []);\n            return n._invoke = (i = e, a = r, c = o, s = p, function(e, n) {\n                if (s === h) throw new Error(\"Generator is already running\");\n                if (s === f) {\n                    if (\"throw\" === e) throw n;\n                    return P()\n                }\n                for (c.method = e, c.arg = n;;) {\n                    var r = c.delegate;\n                    if (r) {\n                        var o = function e(n, r) {\n                            var o;\n                            if ((o = n.iterator[r.method]) === t) {\n                                if (r.delegate = null, \"throw\" === r.method) {\n                                    if (n.iterator.return && (r.method = \"return\", r.arg = t, e(n, r), \"throw\" === r.method)) return g;\n                                    r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a 'throw' method\")\n                                }\n                                return g\n                            }\n                            return \"throw\" === (o = l(o, n.iterator, r.arg)).type ? (r.method = \"throw\", r.arg = o.arg, r.delegate = null, g) : (o = o.arg) ? o.done ? (r[n.resultName] = o.value, r.next = n.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, g) : o : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, g)\n                        }(r, c);\n                        if (o) {\n                            if (o === g) continue;\n                            return o\n                        }\n                    }\n                    if (\"next\" === c.method) c.sent = c._sent = c.arg;\n                    else if (\"throw\" === c.method) {\n                        if (s === p) throw s = f, c.arg;\n                        c.dispatchException(c.arg)\n                    } else \"return\" === c.method && c.abrupt(\"return\", c.arg);\n                    if (s = h, \"normal\" === (o = l(i, a, c)).type) {\n                        if (s = c.done ? f : d, o.arg !== g) return {\n                            value: o.arg,\n                            done: c.done\n                        }\n                    } else \"throw\" === o.type && (s = f, c.method = \"throw\", c.arg = o.arg)\n                }\n            }), n\n        }\n\n        function l(e, t, n) {\n            try {\n                return {\n                    type: \"normal\",\n                    arg: e.call(t, n)\n                }\n            } catch (e) {\n                return {\n                    type: \"throw\",\n                    arg: e\n                }\n            }\n        }\n        e.wrap = u;\n        var p = \"suspendedStart\",\n            d = \"suspendedYield\",\n            h = \"executing\",\n            f = \"completed\",\n            g = {};\n\n        function w() {}\n\n        function m() {}\n\n        function b() {}\n        var y = {};\n        y[i] = function() {\n            return this\n        }, (o = (o = Object.getPrototypeOf) && o(o(O([])))) && o !== n && r.call(o, i) && (y = o);\n        var v = b.prototype = w.prototype = Object.create(y);\n\n        function x(e) {\n            [\"next\", \"throw\", \"return\"].forEach((function(t) {\n                s(e, t, (function(e) {\n                    return this._invoke(t, e)\n                }))\n            }))\n        }\n\n        function k(e, t) {\n            var n;\n            this._invoke = function(o, i) {\n                function a() {\n                    return new t((function(n, a) {\n                        ! function n(o, i, a, c) {\n                            if (\"throw\" !== (o = l(e[o], e, i)).type) {\n                                var s = o.arg;\n                                return (i = s.value) && \"object\" == typeof i && r.call(i, \"__await\") ? t.resolve(i.__await).then((function(e) {\n                                    n(\"next\", e, a, c)\n                                }), (function(e) {\n                                    n(\"throw\", e, a, c)\n                                })) : t.resolve(i).then((function(e) {\n                                    s.value = e, a(s)\n                                }), (function(e) {\n                                    return n(\"throw\", e, a, c)\n                                }))\n                            }\n                            c(o.arg)\n                        }(o, i, n, a)\n                    }))\n                }\n                return n = n ? n.then(a, a) : a()\n            }\n        }\n\n        function C(e) {\n            var t = {\n                tryLoc: e[0]\n            };\n            1 in e && (t.catchLoc = e[1]), 2 in e && (t.finallyLoc = e[2], t.afterLoc = e[3]), this.tryEntries.push(t)\n        }\n\n        function M(e) {\n            var t = e.completion || {};\n            t.type = \"normal\", delete t.arg, e.completion = t\n        }\n\n        function _(e) {\n            this.tryEntries = [{\n                tryLoc: \"root\"\n            }], e.forEach(C, this), this.reset(!0)\n        }\n\n        function O(e) {\n            if (e) {\n                if (n = e[i]) return n.call(e);\n                if (\"function\" == typeof e.next) return e;\n                if (!isNaN(e.length)) {\n                    var n, o = -1;\n                    return (n = function n() {\n                        for (; ++o < e.length;)\n                            if (r.call(e, o)) return n.value = e[o], n.done = !1, n;\n                        return n.value = t, n.done = !0, n\n                    }).next = n\n                }\n            }\n            return {\n                next: P\n            }\n        }\n\n        function P() {\n            return {\n                value: t,\n                done: !0\n            }\n        }\n        return ((m.prototype = v.constructor = b).constructor = m).displayName = s(b, c, \"GeneratorFunction\"), e.isGeneratorFunction = function(e) {\n            return !!(e = \"function\" == typeof e && e.constructor) && (e === m || \"GeneratorFunction\" === (e.displayName || e.name))\n        }, e.mark = function(e) {\n            return Object.setPrototypeOf ? Object.setPrototypeOf(e, b) : (e.__proto__ = b, s(e, c, \"GeneratorFunction\")), e.prototype = Object.create(v), e\n        }, e.awrap = function(e) {\n            return {\n                __await: e\n            }\n        }, x(k.prototype), k.prototype[a] = function() {\n            return this\n        }, e.AsyncIterator = k, e.async = function(t, n, r, o, i) {\n            void 0 === i && (i = Promise);\n            var a = new k(u(t, n, r, o), i);\n            return e.isGeneratorFunction(n) ? a : a.next().then((function(e) {\n                return e.done ? e.value : a.next()\n            }))\n        }, x(v), s(v, c, \"Generator\"), v[i] = function() {\n            return this\n        }, v.toString = function() {\n            return \"[object Generator]\"\n        }, e.keys = function(e) {\n            var t, n = [];\n            for (t in e) n.push(t);\n            return n.reverse(),\n                function t() {\n                    for (; n.length;) {\n                        var r = n.pop();\n                        if (r in e) return t.value = r, t.done = !1, t\n                    }\n                    return t.done = !0, t\n                }\n        }, e.values = O, _.prototype = {\n            constructor: _,\n            reset: function(e) {\n                if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(M), !e)\n                    for (var n in this) \"t\" === n.charAt(0) && r.call(this, n) && !isNaN(+n.slice(1)) && (this[n] = t)\n            },\n            stop: function() {\n                this.done = !0;\n                var e = this.tryEntries[0].completion;\n                if (\"throw\" === e.type) throw e.arg;\n                return this.rval\n            },\n            dispatchException: function(e) {\n                if (this.done) throw e;\n                var n = this;\n\n                function o(r, o) {\n                    return c.type = \"throw\", c.arg = e, n.next = r, o && (n.method = \"next\", n.arg = t), !!o\n                }\n                for (var i = this.tryEntries.length - 1; 0 <= i; --i) {\n                    var a = this.tryEntries[i],\n                        c = a.completion;\n                    if (\"root\" === a.tryLoc) return o(\"end\");\n                    if (a.tryLoc <= this.prev) {\n                        var s = r.call(a, \"catchLoc\"),\n                            u = r.call(a, \"finallyLoc\");\n                        if (s && u) {\n                            if (this.prev < a.catchLoc) return o(a.catchLoc, !0);\n                            if (this.prev < a.finallyLoc) return o(a.finallyLoc)\n                        } else if (s) {\n                            if (this.prev < a.catchLoc) return o(a.catchLoc, !0)\n                        } else {\n                            if (!u) throw new Error(\"try statement without catch or finally\");\n                            if (this.prev < a.finallyLoc) return o(a.finallyLoc)\n                        }\n                    }\n                }\n            },\n            abrupt: function(e, t) {\n                for (var n = this.tryEntries.length - 1; 0 <= n; --n) {\n                    var o = this.tryEntries[n];\n                    if (o.tryLoc <= this.prev && r.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) {\n                        var i = o;\n                        break\n                    }\n                }\n                var a = (i = i && (\"break\" === e || \"continue\" === e) && i.tryLoc <= t && t <= i.finallyLoc ? null : i) ? i.completion : {};\n                return a.type = e, a.arg = t, i ? (this.method = \"next\", this.next = i.finallyLoc, g) : this.complete(a)\n            },\n            complete: function(e, t) {\n                if (\"throw\" === e.type) throw e.arg;\n                return \"break\" === e.type || \"continue\" === e.type ? this.next = e.arg : \"return\" === e.type ? (this.rval = this.arg = e.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === e.type && t && (this.next = t), g\n            },\n            finish: function(e) {\n                for (var t = this.tryEntries.length - 1; 0 <= t; --t) {\n                    var n = this.tryEntries[t];\n                    if (n.finallyLoc === e) return this.complete(n.completion, n.afterLoc), M(n), g\n                }\n            },\n            catch: function(e) {\n                for (var t = this.tryEntries.length - 1; 0 <= t; --t) {\n                    var n = this.tryEntries[t];\n                    if (n.tryLoc === e) {\n                        var r, o = n.completion;\n                        return \"throw\" === o.type && (r = o.arg, M(n)), r\n                    }\n                }\n                throw new Error(\"illegal catch attempt\")\n            },\n            delegateYield: function(e, n, r) {\n                return this.delegate = {\n                    iterator: O(e),\n                    resultName: n,\n                    nextLoc: r\n                }, \"next\" === this.method && (this.arg = t), g\n            }\n        }, e\n    }(e.exports);\n    try {\n        regeneratorRuntime = e\n    } catch (t) {\n        Function(\"r\", \"regeneratorRuntime = r\")(e)\n    }\n}, function(e, t) {\n    e.exports = require(\"fs\")\n}, function(e, t) {\n    e.exports = require(\"lodash\")\n}, function(e, t) {\n    e.exports = require(\"fix-path\")\n}, function(e, t) {\n    e.exports = require(\"electron-window-bounds\")\n}]);\n"
  },
  {
    "path": "chinese_file/Sinicization_files/renderer.js",
    "content": "module.exports = function(e) {\n    function t(t) {\n        for (var i, n, r = t[0], o = t[1], s = 0, a = []; s < r.length; s++) n = r[s], Object.prototype.hasOwnProperty.call(I, n) && I[n] && a.push(I[n][0]), I[n] = 0;\n        for (i in o) Object.prototype.hasOwnProperty.call(o, i) && (e[i] = o[i]);\n        for (R && R(t); a.length;) a.shift()()\n    }\n\n    function i(e) {\n        delete I[e]\n    }\n    var n = window.webpackHotUpdate;\n    window.webpackHotUpdate = function(e, t) {\n        ! function(e, t) {\n            if (C[e] && y[e]) {\n                for (var i in y[e] = !1, t) Object.prototype.hasOwnProperty.call(t, i) && (f[i] = t[i]);\n                0 == --b && 0 === _ && L()\n            }\n        }(e, t), n && n(e, t)\n    };\n    var r, o = !0,\n        s = \"f55a29d0ed603b299dc2\",\n        a = {},\n        l = [],\n        d = [];\n\n    function c(e) {\n        var t = D[e];\n        if (!t) return T;\n\n        function i(i) {\n            return t.hot.active ? (D[i] ? -1 === D[i].parents.indexOf(e) && D[i].parents.push(e) : (l = [e], r = i), -1 === t.children.indexOf(i) && t.children.push(i)) : (console.warn(\"[HMR] unexpected require(\" + i + \") from disposed module \" + e), l = []), T(i)\n        }\n        for (var n in T) Object.prototype.hasOwnProperty.call(T, n) && \"e\" !== n && \"t\" !== n && Object.defineProperty(i, n, function(e) {\n            return {\n                configurable: !0,\n                enumerable: !0,\n                get: function() {\n                    return T[e]\n                },\n                set: function(t) {\n                    T[e] = t\n                }\n            }\n        }(n));\n        return i.e = function(e) {\n            return \"ready\" === u && p(\"prepare\"), _++, T.e(e).then(t, (function(e) {\n                throw t(), e\n            }));\n\n            function t() {\n                _--, \"prepare\" === u && (w[e] || k(e), 0 === _ && 0 === b && L())\n            }\n        }, i.t = function(e, t) {\n            return 1 & t && (e = i(e)), T.t(e, -2 & t)\n        }, i\n    }\n    var h = [],\n        u = \"idle\";\n\n    function p(e) {\n        u = e;\n        for (var t = 0; t < h.length; t++) h[t].call(null, e)\n    }\n    var g, f, m, v, b = 0,\n        _ = 0,\n        w = {},\n        y = {},\n        C = {};\n\n    function x(e) {\n        return +e + \"\" === e ? +e : e\n    }\n\n    function S(e) {\n        if (\"idle\" !== u) throw new Error(\"check() is only allowed in idle status\");\n        return o = e, p(\"check\"), t = (t = 1e4) || 1e4, new Promise((function(e, i) {\n            if (\"undefined\" == typeof XMLHttpRequest) return i(new Error(\"No browser support\"));\n            try {\n                var n = new XMLHttpRequest,\n                    r = T.p + \"\" + s + \".hot-update.json\";\n                n.open(\"GET\", r, !0), n.timeout = t, n.send(null)\n            } catch (e) {\n                return i(e)\n            }\n            n.onreadystatechange = function() {\n                if (4 === n.readyState)\n                    if (0 === n.status) i(new Error(\"Manifest request to \" + r + \" timed out.\"));\n                    else if (404 === n.status) e();\n                else if (200 !== n.status && 304 !== n.status) i(new Error(\"Manifest request to \" + r + \" failed.\"));\n                else {\n                    try {\n                        var t = JSON.parse(n.responseText)\n                    } catch (t) {\n                        return void i(t)\n                    }\n                    e(t)\n                }\n            }\n        })).then((function(e) {\n            if (!e) return p(E() ? \"ready\" : \"idle\"), null;\n            y = {}, w = {}, C = e.c, m = e.h, p(\"prepare\");\n            var t;\n            e = new Promise((function(e, t) {\n                g = {\n                    resolve: e,\n                    reject: t\n                }\n            }));\n            for (t in f = {}, I) k(t);\n            return \"prepare\" === u && 0 === _ && 0 === b && L(), e\n        }));\n        var t\n    }\n\n    function k(e) {\n        var t, i;\n        C[e] ? (y[e] = !0, b++, t = e, (i = document.createElement(\"script\")).charset = \"utf-8\", i.src = T.p + \"\" + t + \".\" + s + \".hot-update.js\", document.head.appendChild(i)) : w[e] = !0\n    }\n\n    function L() {\n        p(\"ready\");\n        var e = g;\n        if (g = null, e)\n            if (o) Promise.resolve().then((function() {\n                return O(o)\n            })).then((function(t) {\n                e.resolve(t)\n            }), (function(t) {\n                e.reject(t)\n            }));\n            else {\n                var t, i = [];\n                for (t in f) Object.prototype.hasOwnProperty.call(f, t) && i.push(x(t));\n                e.resolve(i)\n            }\n    }\n\n    function O(t) {\n        if (\"ready\" !== u) throw new Error(\"apply() is only allowed in ready status\");\n        return function t(n) {\n            var o, d, c, h;\n\n            function u(e) {\n                for (var t = [e], i = {}, n = t.map((function(e) {\n                        return {\n                            chain: [e],\n                            id: e\n                        }\n                    })); 0 < n.length;) {\n                    var r = n.pop(),\n                        o = r.id,\n                        s = r.chain;\n                    if ((h = D[o]) && (!h.hot._selfAccepted || h.hot._selfInvalidated)) {\n                        if (h.hot._selfDeclined) return {\n                            type: \"self-declined\",\n                            chain: s,\n                            moduleId: o\n                        };\n                        if (h.hot._main) return {\n                            type: \"unaccepted\",\n                            chain: s,\n                            moduleId: o\n                        };\n                        for (var a = 0; a < h.parents.length; a++) {\n                            var l = h.parents[a],\n                                d = D[l];\n                            if (d) {\n                                if (d.hot._declinedDependencies[o]) return {\n                                    type: \"declined\",\n                                    chain: s.concat([l]),\n                                    moduleId: o,\n                                    parentId: l\n                                }; - 1 === t.indexOf(l) && (d.hot._acceptedDependencies[o] ? (i[l] || (i[l] = []), g(i[l], [o])) : (delete i[l], t.push(l), n.push({\n                                    chain: s.concat([l]),\n                                    id: l\n                                })))\n                            }\n                        }\n                    }\n                }\n                return {\n                    type: \"accepted\",\n                    moduleId: e,\n                    outdatedModules: t,\n                    outdatedDependencies: i\n                }\n            }\n\n            function g(e, t) {\n                for (var i = 0; i < t.length; i++) {\n                    var n = t[i]; - 1 === e.indexOf(n) && e.push(n)\n                }\n            }\n            E();\n            var b = {},\n                _ = [],\n                w = {},\n                y = function() {\n                    console.warn(\"[HMR] unexpected require(\" + k.moduleId + \") to disposed module\")\n                };\n            for (var S in f)\n                if (Object.prototype.hasOwnProperty.call(f, S)) {\n                    var k;\n                    M = x(S);\n                    var L = !1,\n                        O = !1,\n                        N = !1,\n                        I = \"\";\n                    switch ((k = f[S] ? u(M) : {\n                        type: \"disposed\",\n                        moduleId: S\n                    }).chain && (I = \"\\nUpdate propagation: \" + k.chain.join(\" -> \")), k.type) {\n                        case \"self-declined\":\n                            n.onDeclined && n.onDeclined(k), n.ignoreDeclined || (L = new Error(\"Aborted because of self decline: \" + k.moduleId + I));\n                            break;\n                        case \"declined\":\n                            n.onDeclined && n.onDeclined(k), n.ignoreDeclined || (L = new Error(\"Aborted because of declined dependency: \" + k.moduleId + \" in \" + k.parentId + I));\n                            break;\n                        case \"unaccepted\":\n                            n.onUnaccepted && n.onUnaccepted(k), n.ignoreUnaccepted || (L = new Error(\"Aborted because \" + M + \" is not accepted\" + I));\n                            break;\n                        case \"accepted\":\n                            n.onAccepted && n.onAccepted(k), O = !0;\n                            break;\n                        case \"disposed\":\n                            n.onDisposed && n.onDisposed(k), N = !0;\n                            break;\n                        default:\n                            throw new Error(\"Unexception type \" + k.type)\n                    }\n                    if (L) return p(\"abort\"), Promise.reject(L);\n                    if (O)\n                        for (var M in w[M] = f[M], g(_, k.outdatedModules), k.outdatedDependencies) Object.prototype.hasOwnProperty.call(k.outdatedDependencies, M) && (b[M] || (b[M] = []), g(b[M], k.outdatedDependencies[M]));\n                    N && (g(_, [k.moduleId]), w[M] = y)\n                } var P, A = [];\n            for (d = 0; d < _.length; d++) M = _[d], D[M] && D[M].hot._selfAccepted && w[M] !== y && !D[M].hot._selfInvalidated && A.push({\n                module: M,\n                parents: D[M].parents.slice(),\n                errorHandler: D[M].hot._selfAccepted\n            });\n            p(\"dispose\"), Object.keys(C).forEach((function(e) {\n                !1 === C[e] && i(e)\n            }));\n            for (var R, F, j = _.slice(); 0 < j.length;)\n                if (M = j.pop(), h = D[M]) {\n                    var B = {},\n                        V = h.hot._disposeHandlers;\n                    for (c = 0; c < V.length; c++)(o = V[c])(B);\n                    for (a[M] = B, h.hot.active = !1, delete D[M], delete b[M], c = 0; c < h.children.length; c++) {\n                        var W = D[h.children[c]];\n                        W && 0 <= (P = W.parents.indexOf(M)) && W.parents.splice(P, 1)\n                    }\n                } for (M in b)\n                if (Object.prototype.hasOwnProperty.call(b, M) && (h = D[M]))\n                    for (F = b[M], c = 0; c < F.length; c++) R = F[c], 0 <= (P = h.children.indexOf(R)) && h.children.splice(P, 1);\n            for (M in p(\"apply\"), void 0 !== m && (s = m, m = void 0), f = void 0, w) Object.prototype.hasOwnProperty.call(w, M) && (e[M] = w[M]);\n            var z = null;\n            for (M in b)\n                if (Object.prototype.hasOwnProperty.call(b, M) && (h = D[M])) {\n                    F = b[M];\n                    var H = [];\n                    for (d = 0; d < F.length; d++) R = F[d], (o = h.hot._acceptedDependencies[R]) && -1 === H.indexOf(o) && H.push(o);\n                    for (d = 0; d < H.length; d++) {\n                        o = H[d];\n                        try {\n                            o(F)\n                        } catch (t) {\n                            n.onErrored && n.onErrored({\n                                type: \"accept-errored\",\n                                moduleId: M,\n                                dependencyId: F[d],\n                                error: t\n                            }), n.ignoreErrored || (z = z || t)\n                        }\n                    }\n                } for (d = 0; d < A.length; d++) {\n                var U = A[d];\n                M = U.module, l = U.parents, r = M;\n                try {\n                    T(M)\n                } catch (o) {\n                    if (\"function\" == typeof U.errorHandler) try {\n                        U.errorHandler(o)\n                    } catch (t) {\n                        n.onErrored && n.onErrored({\n                            type: \"self-accept-error-handler-errored\",\n                            moduleId: M,\n                            error: t,\n                            originalError: o\n                        }), z = (z = n.ignoreErrored ? z : z || t) || o\n                    } else n.onErrored && n.onErrored({\n                        type: \"self-accept-errored\",\n                        moduleId: M,\n                        error: o\n                    }), n.ignoreErrored || (z = z || o)\n                }\n            }\n            return z ? (p(\"fail\"), Promise.reject(z)) : v ? t(n).then((function(e) {\n                return _.forEach((function(t) {\n                    e.indexOf(t) < 0 && e.push(t)\n                })), e\n            })) : (p(\"idle\"), new Promise((function(e) {\n                e(_)\n            })))\n        }(t = t || {})\n    }\n\n    function E() {\n        return v && (f = f || {}, v.forEach(N), v = void 0, 1)\n    }\n\n    function N(t) {\n        Object.prototype.hasOwnProperty.call(f, t) || (f[t] = e[t])\n    }\n    var D = {},\n        I = {\n            1: 0\n        };\n\n    function T(t) {\n        if (D[t]) return D[t].exports;\n        var i, n, o = D[t] = {\n            i: t,\n            l: !1,\n            exports: {},\n            hot: (n = {\n                _acceptedDependencies: {},\n                _declinedDependencies: {},\n                _selfAccepted: !1,\n                _selfDeclined: !1,\n                _selfInvalidated: !1,\n                _disposeHandlers: [],\n                _main: r !== (i = t),\n                active: !0,\n                accept: function(e, t) {\n                    if (void 0 === e) n._selfAccepted = !0;\n                    else if (\"function\" == typeof e) n._selfAccepted = e;\n                    else if (\"object\" == typeof e)\n                        for (var i = 0; i < e.length; i++) n._acceptedDependencies[e[i]] = t || function() {};\n                    else n._acceptedDependencies[e] = t || function() {}\n                },\n                decline: function(e) {\n                    if (void 0 === e) n._selfDeclined = !0;\n                    else if (\"object\" == typeof e)\n                        for (var t = 0; t < e.length; t++) n._declinedDependencies[e[t]] = !0;\n                    else n._declinedDependencies[e] = !0\n                },\n                dispose: function(e) {\n                    n._disposeHandlers.push(e)\n                },\n                addDisposeHandler: function(e) {\n                    n._disposeHandlers.push(e)\n                },\n                removeDisposeHandler: function(e) {\n                    0 <= (e = n._disposeHandlers.indexOf(e)) && n._disposeHandlers.splice(e, 1)\n                },\n                invalidate: function() {\n                    switch (this._selfInvalidated = !0, u) {\n                        case \"idle\":\n                            (f = {})[i] = e[i], p(\"ready\");\n                            break;\n                        case \"ready\":\n                            N(i);\n                            break;\n                        case \"prepare\":\n                        case \"check\":\n                        case \"dispose\":\n                        case \"apply\":\n                            (v = v || []).push(i)\n                    }\n                },\n                check: S,\n                apply: O,\n                status: function(e) {\n                    if (!e) return u;\n                    h.push(e)\n                },\n                addStatusHandler: function(e) {\n                    h.push(e)\n                },\n                removeStatusHandler: function(e) {\n                    0 <= (e = h.indexOf(e)) && h.splice(e, 1)\n                },\n                data: a[i]\n            }, r = void 0, n),\n            parents: (d = l, l = [], d),\n            children: []\n        };\n        return e[t].call(o.exports, o, o.exports, c(t)), o.l = !0, o.exports\n    }\n    T.e = function(e) {\n        var t, i, n, r, o, s = [],\n            a = I[e];\n        return 0 !== a && (a ? s.push(a[2]) : (o = new Promise((function(t, i) {\n            a = I[e] = [t, i]\n        })), s.push(a[2] = o), (t = document.createElement(\"script\")).charset = \"utf-8\", t.timeout = 120, T.nc && t.setAttribute(\"nonce\", T.nc), t.src = T.p + \"\" + ({} [o = e] || o) + \".js\", i = new Error, n = function(n) {\n            t.onerror = t.onload = null, clearTimeout(r);\n            var o, s = I[e];\n            0 !== s && (s && (o = n && (\"load\" === n.type ? \"missing\" : n.type), n = n && n.target && n.target.src, i.message = \"正在加载 chunk \" + e + \" failed.\\n(\" + o + \": \" + n + \")\", i.name = \"ChunkLoadError\", i.type = o, i.request = n, s[1](i)), I[e] = void 0)\n        }, r = setTimeout((function() {\n            n({\n                type: \"timeout\",\n                target: t\n            })\n        }), 12e4), t.onerror = t.onload = n, document.head.appendChild(t))), Promise.all(s)\n    }, T.m = e, T.c = D, T.d = function(e, t, i) {\n        T.o(e, t) || Object.defineProperty(e, t, {\n            enumerable: !0,\n            get: i\n        })\n    }, T.r = function(e) {\n        \"undefined\" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e, Symbol.toStringTag, {\n            value: \"Module\"\n        }), Object.defineProperty(e, \"__esModule\", {\n            value: !0\n        })\n    }, T.t = function(e, t) {\n        if (1 & t && (e = T(e)), 8 & t) return e;\n        if (4 & t && \"object\" == typeof e && e && e.__esModule) return e;\n        var i = Object.create(null);\n        if (T.r(i), Object.defineProperty(i, \"default\", {\n                enumerable: !0,\n                value: e\n            }), 2 & t && \"string\" != typeof e)\n            for (var n in e) T.d(i, n, function(t) {\n                return e[t]\n            }.bind(null, n));\n        return i\n    }, T.n = function(e) {\n        var t = e && e.__esModule ? function() {\n            return e.default\n        } : function() {\n            return e\n        };\n        return T.d(t, \"a\", t), t\n    }, T.o = function(e, t) {\n        return Object.prototype.hasOwnProperty.call(e, t)\n    }, T.p = \"\", T.oe = function(e) {\n        throw console.error(e), e\n    }, T.h = function() {\n        return s\n    };\n    var M = (P = window.webpackJsonp = window.webpackJsonp || []).push.bind(P);\n    P.push = t;\n    for (var P = P.slice(), A = 0; A < P.length; A++) t(P[A]);\n    var R = M;\n    return c(471)(T.s = 471)\n}([function(e, t, i) {\n    \"use strict\";\n\n    function n(e, t, ...i) {\n        return function(e, t) {\n            let i;\n            return i = 0 === t.length ? e : e.replace(/\\{(\\d+)\\}/g, (function(e, i) {\n                return i = i[0], void 0 !== t[i] ? t[i] : e\n            })), i\n        }(t, i)\n    }\n    i.d(t, \"a\", (function() {\n        return n\n    }))\n}, function(e, t, i) {\n    \"use strict\";\n    i.d(t, \"q\", (function() {\n        return h\n    })), i.d(t, \"K\", (function() {\n        return u\n    })), i.d(t, \"g\", (function() {\n        return g\n    })), i.d(t, \"l\", (function() {\n        return m\n    })), i.d(t, \"h\", (function() {\n        return b\n    })), i.d(t, \"i\", (function() {\n        return _\n    })), i.d(t, \"P\", (function() {\n        return w\n    })), i.d(t, \"R\", (function() {\n        return y\n    })), i.d(t, \"j\", (function() {\n        return k\n    })), i.d(t, \"x\", (function() {\n        return L\n    })), i.d(t, \"w\", (function() {\n        return O\n    })), i.d(t, \"b\", (function() {\n        return N\n    })), i.d(t, \"D\", (function() {\n        return D\n    })), i.d(t, \"A\", (function() {\n        return I\n    })), i.d(t, \"f\", (function() {\n        return T\n    })), i.d(t, \"F\", (function() {\n        return M\n    })), i.d(t, \"z\", (function() {\n        return P\n    })), i.d(t, \"y\", (function() {\n        return A\n    })), i.d(t, \"E\", (function() {\n        return R\n    })), i.d(t, \"I\", (function() {\n        return F\n    })), i.d(t, \"u\", (function() {\n        return j\n    })), i.d(t, \"G\", (function() {\n        return B\n    })), i.d(t, \"L\", (function() {\n        return W\n    })), i.d(t, \"C\", (function() {\n        return z\n    })), i.d(t, \"v\", (function() {\n        return H\n    })), i.d(t, \"t\", (function() {\n        return U\n    })), i.d(t, \"s\", (function() {\n        return q\n    })), i.d(t, \"M\", (function() {\n        return G\n    })), i.d(t, \"J\", (function() {\n        return Y\n    })), i.d(t, \"d\", (function() {\n        return Z\n    })), i.d(t, \"c\", (function() {\n        return X\n    })), i.d(t, \"Q\", (function() {\n        return Q\n    })), i.d(t, \"O\", (function() {\n        return J\n    })), i.d(t, \"T\", (function() {\n        return te\n    })), i.d(t, \"n\", (function() {\n        return ie\n    })), i.d(t, \"N\", (function() {\n        return ne\n    })), i.d(t, \"a\", (function() {\n        return se\n    })), i.d(t, \"S\", (function() {\n        return ae\n    })), i.d(t, \"H\", (function() {\n        return le\n    })), i.d(t, \"B\", (function() {\n        return de\n    })), i.d(t, \"r\", (function() {\n        return ce\n    })), i.d(t, \"U\", (function() {\n        return he\n    })), i.d(t, \"m\", (function() {\n        return ue\n    })), i.d(t, \"p\", (function() {\n        return pe\n    })), i.d(t, \"o\", (function() {\n        return ge\n    })), i.d(t, \"e\", (function() {\n        return fe\n    })), i.d(t, \"k\", (function() {\n        return me\n    }));\n    t = i(37);\n    var n = (i(138), i(55)),\n        r = i(66),\n        o = i(32),\n        s = i(31),\n        a = i(2),\n        l = i(4),\n        d = i(54),\n        c = i(9);\n\n    function h(e) {\n        for (; e.firstChild;) e.firstChild.remove()\n    }\n\n    function u(e) {\n        return null !== (e = null == e ? void 0 : e.isConnected) && void 0 !== e && e\n    }\n    class p {\n        constructor(e, t, i, n) {\n            this._node = e, this._type = t, this._handler = i, this._options = n || !1, this._node.addEventListener(this._type, this._handler, this._options)\n        }\n        dispose() {\n            this._handler && (this._node.removeEventListener(this._type, this._handler, this._options), this._node = null, this._handler = null)\n        }\n    }\n\n    function g(e, t, i, n) {\n        return new p(e, t, i, n)\n    }\n\n    function f(e) {\n        return function(t) {\n            return e(new r.a(t))\n        }\n    }\n    let m = function(e, t, i, r) {\n        let o = i;\n        var s;\n        return \"click\" === t || \"mousedown\" === t ? o = f(i) : \"keydown\" !== t && \"keypress\" !== t && \"keyup\" !== t || (s = i, o = function(e) {\n            return s(new n.a(e))\n        }), g(e, t, o, r)\n    };\n    var v;\n\n    function b(e, t) {\n        return g(e, \"mouseout\", i => {\n            let n = i.relatedTarget;\n            for (; n && n !== e;) n = n.parentNode;\n            n !== e && t(i)\n        })\n    }\n\n    function _(e, t) {\n        return g(e, \"pointerout\", i => {\n            let n = i.relatedTarget;\n            for (; n && n !== e;) n = n.parentNode;\n            n !== e && t(i)\n        })\n    }\n    let w, y, C = null;\n    class x {\n        constructor(e, t = 0) {\n            this._runner = e, this.priority = t, this._canceled = !1\n        }\n        dispose() {\n            this._canceled = !0\n        }\n        execute() {\n            if (!this._canceled) try {\n                this._runner()\n            } catch (e) {\n                Object(s.f)(e)\n            }\n        }\n        static sort(e, t) {\n            return t.priority - e.priority\n        }\n    }! function() {\n        let e = [],\n            t = null,\n            i = !1,\n            n = !1,\n            r = () => {\n                for (i = !1, t = e, e = [], n = !0; 0 < t.length;) {\n                    t.sort(x.sort), t.shift().execute()\n                }\n                n = !1\n            };\n        y = (t, n = 0) => (t = new x(t, n), e.push(t), i || (i = !0, n = r, C || (C = self.requestAnimationFrame || self.msRequestAnimationFrame || self.webkitRequestAnimationFrame || self.mozRequestAnimationFrame || self.oRequestAnimationFrame || (e => setTimeout(() => e((new Date).getTime()), 0))), C.call(self, n)), t), w = (e, i) => {\n            if (n) {\n                var r = new x(e, i);\n                return t.push(r), r\n            }\n            return y(e, i)\n        }\n    }();\n    class S extends l.a {\n        constructor(e, t, i, n = function(e, t) {\n            return t\n        }, r = 8) {\n            super();\n            let s = null,\n                a = 0,\n                l = this._register(new o.g),\n                d = () => {\n                    a = (new Date).getTime(), i(s), s = null\n                };\n            this._register(g(e, t, e => {\n                s = n(s, e), e = (new Date).getTime() - a, r <= e ? (l.cancel(), d()) : l.setIfNotSet(d, r - e)\n            }))\n        }\n    }\n\n    function k(e, t, i, n, r) {\n        return new S(e, t, i, n, r)\n    }\n\n    function L(e) {\n        return document.defaultView.getComputedStyle(e, null)\n    }\n\n    function O(e) {\n        if (e !== document.body) return new N(e.clientWidth, e.clientHeight);\n        if (c.c && window.visualViewport) return new N(window.visualViewport.width, window.visualViewport.height);\n        if (window.innerWidth && window.innerHeight) return new N(window.innerWidth, window.innerHeight);\n        if (document.body && document.body.clientWidth && document.body.clientHeight) return new N(document.body.clientWidth, document.body.clientHeight);\n        if (document.documentElement && document.documentElement.clientWidth && document.documentElement.clientHeight) return new N(document.documentElement.clientWidth, document.documentElement.clientHeight);\n        throw new Error(\"Unable to figure out browser width and height\")\n    }\n    class E {\n        static convertToPixels(e, t) {\n            return parseFloat(t) || 0\n        }\n        static getDimension(e, t, i) {\n            let n = L(e),\n                r = \"0\";\n            return n && (r = n.getPropertyValue ? n.getPropertyValue(t) : n.getAttribute(i)), E.convertToPixels(e, r)\n        }\n        static getBorderLeftWidth(e) {\n            return E.getDimension(e, \"border-left-width\", \"borderLeftWidth\")\n        }\n        static getBorderRightWidth(e) {\n            return E.getDimension(e, \"border-right-width\", \"borderRightWidth\")\n        }\n        static getBorderTopWidth(e) {\n            return E.getDimension(e, \"border-top-width\", \"borderTopWidth\")\n        }\n        static getBorderBottomWidth(e) {\n            return E.getDimension(e, \"border-bottom-width\", \"borderBottomWidth\")\n        }\n        static getPaddingLeft(e) {\n            return E.getDimension(e, \"padding-left\", \"paddingLeft\")\n        }\n        static getPaddingRight(e) {\n            return E.getDimension(e, \"padding-right\", \"paddingRight\")\n        }\n        static getPaddingTop(e) {\n            return E.getDimension(e, \"padding-top\", \"paddingTop\")\n        }\n        static getPaddingBottom(e) {\n            return E.getDimension(e, \"padding-bottom\", \"paddingBottom\")\n        }\n        static getMarginLeft(e) {\n            return E.getDimension(e, \"margin-left\", \"marginLeft\")\n        }\n        static getMarginTop(e) {\n            return E.getDimension(e, \"margin-top\", \"marginTop\")\n        }\n        static getMarginRight(e) {\n            return E.getDimension(e, \"margin-right\", \"marginRight\")\n        }\n        static getMarginBottom(e) {\n            return E.getDimension(e, \"margin-bottom\", \"marginBottom\")\n        }\n    }\n    class N {\n        constructor(e, t) {\n            this.width = e, this.height = t\n        }\n        with(e = this.width, t = this.height) {\n            return e !== this.width || t !== this.height ? new N(e, t) : this\n        }\n        static is(e) {\n            return \"object\" == typeof e && \"number\" == typeof e.height && \"number\" == typeof e.width\n        }\n        static lift(e) {\n            return e instanceof N ? e : new N(e.width, e.height)\n        }\n        static equals(e, t) {\n            return e === t || !(!e || !t) && e.width === t.width && e.height === t.height\n        }\n    }\n\n    function D(e) {\n        let t = e.offsetParent,\n            i = e.offsetTop,\n            n = e.offsetLeft;\n        for (; null !== (e = e.parentNode) && e !== document.body && e !== document.documentElement;) {\n            i -= e.scrollTop;\n            var r = V(e) ? null : L(e);\n            r && (n -= \"rtl\" !== r.direction ? e.scrollLeft : -e.scrollLeft), e === t && (n += E.getBorderLeftWidth(e), i += E.getBorderTopWidth(e), i += e.offsetTop, n += e.offsetLeft, t = e.offsetParent)\n        }\n        return {\n            left: n,\n            top: i\n        }\n    }\n\n    function I(e) {\n        return {\n            left: (e = e.getBoundingClientRect()).left + T.scrollX,\n            top: e.top + T.scrollY,\n            width: e.width,\n            height: e.height\n        }\n    }\n    const T = new class {\n        get scrollX() {\n            return \"number\" == typeof window.scrollX ? window.scrollX : document.body.scrollLeft + document.documentElement.scrollLeft\n        }\n        get scrollY() {\n            return \"number\" == typeof window.scrollY ? window.scrollY : document.body.scrollTop + document.documentElement.scrollTop\n        }\n    };\n\n    function M(e) {\n        var t = E.getMarginLeft(e) + E.getMarginRight(e);\n        return e.offsetWidth + t\n    }\n\n    function P(e) {\n        var t = E.getBorderLeftWidth(e) + E.getBorderRightWidth(e),\n            i = E.getPaddingLeft(e) + E.getPaddingRight(e);\n        return e.offsetWidth - t - i\n    }\n\n    function A(e) {\n        var t = E.getBorderTopWidth(e) + E.getBorderBottomWidth(e),\n            i = E.getPaddingTop(e) + E.getPaddingBottom(e);\n        return e.offsetHeight - t - i\n    }\n\n    function R(e) {\n        var t = E.getMarginTop(e) + E.getMarginBottom(e);\n        return e.offsetHeight + t\n    }\n\n    function F(e, t) {\n        for (; e;) {\n            if (e === t) return !0;\n            e = e.parentNode\n        }\n        return !1\n    }\n\n    function j(e, t, i) {\n        for (; e && e.nodeType === e.ELEMENT_NODE;) {\n            if (e.classList.contains(t)) return e;\n            if (i)\n                if (\"string\" == typeof i) {\n                    if (e.classList.contains(i)) return null\n                } else if (e === i) return null;\n            e = e.parentNode\n        }\n        return null\n    }\n\n    function B(e, t, i) {\n        return !!j(e, t, i)\n    }\n\n    function V(e) {\n        return e && e.host && e.mode\n    }\n\n    function W(e) {\n        return !!z(e)\n    }\n\n    function z(e) {\n        for (; e.parentNode;) {\n            if (e === document.body) return null;\n            e = e.parentNode\n        }\n        return V(e) ? e : null\n    }\n\n    function H() {\n        let e = document.activeElement;\n        for (; null != e && e.shadowRoot;) e = e.shadowRoot.activeElement;\n        return e\n    }\n\n    function U(e = document.getElementsByTagName(\"head\")[0]) {\n        let t = document.createElement(\"style\");\n        return t.type = \"text/css\", t.media = \"screen\", e.appendChild(t), t\n    }\n    let K = null;\n\n    function $() {\n        return K = K || U(), K\n    }\n\n    function q(e, t, i = $()) {\n        i && t && i.sheet.insertRule(e + \"{\" + t + \"}\", 0)\n    }\n\n    function G(e, t = $()) {\n        if (t) {\n            var i, n, r = null !== (n = null == (i = t) ? void 0 : i.sheet) && void 0 !== n && n.rules ? i.sheet.rules : null !== (n = null == i ? void 0 : i.sheet) && void 0 !== n && n.cssRules ? i.sheet.cssRules : [];\n            let o = [];\n            for (let t = 0; t < r.length; t++) {\n                -1 !== r[t].selectorText.indexOf(e) && o.push(t)\n            }\n            for (let e = o.length - 1; 0 <= e; e--) t.sheet.deleteRule(o[e])\n        }\n    }\n\n    function Y(e) {\n        return \"object\" == typeof HTMLElement ? e instanceof HTMLElement : e && \"object\" == typeof e && 1 === e.nodeType && \"string\" == typeof e.nodeName\n    }\n    const Z = {\n            CLICK: \"click\",\n            AUXCLICK: \"auxclick\",\n            DBLCLICK: \"dblclick\",\n            MOUSE_UP: \"mouseup\",\n            MOUSE_DOWN: \"mousedown\",\n            MOUSE_OVER: \"mouseover\",\n            MOUSE_MOVE: \"mousemove\",\n            MOUSE_OUT: \"mouseout\",\n            MOUSE_ENTER: \"mouseenter\",\n            MOUSE_LEAVE: \"mouseleave\",\n            MOUSE_WHEEL: \"wheel\",\n            POINTER_UP: \"pointerup\",\n            POINTER_DOWN: \"pointerdown\",\n            POINTER_MOVE: \"pointermove\",\n            CONTEXT_MENU: \"contextmenu\",\n            WHEEL: \"wheel\",\n            KEY_DOWN: \"keydown\",\n            KEY_PRESS: \"keypress\",\n            KEY_UP: \"keyup\",\n            LOAD: \"load\",\n            BEFORE_UNLOAD: \"beforeunload\",\n            UNLOAD: \"unload\",\n            ABORT: \"abort\",\n            ERROR: \"error\",\n            RESIZE: \"resize\",\n            SCROLL: \"scroll\",\n            FULLSCREEN_CHANGE: \"fullscreenchange\",\n            WK_FULLSCREEN_CHANGE: \"webkitfullscreenchange\",\n            SELECT: \"select\",\n            CHANGE: \"change\",\n            SUBMIT: \"submit\",\n            RESET: \"reset\",\n            FOCUS: \"focus\",\n            FOCUS_IN: \"focusin\",\n            FOCUS_OUT: \"focusout\",\n            BLUR: \"blur\",\n            INPUT: \"input\",\n            STORAGE: \"storage\",\n            DRAG_START: \"dragstart\",\n            DRAG: \"drag\",\n            DRAG_ENTER: \"dragenter\",\n            DRAG_LEAVE: \"dragleave\",\n            DRAG_OVER: \"dragover\",\n            DROP: \"drop\",\n            DRAG_END: \"dragend\",\n            ANIMATION_START: t.j ? \"webkitAnimationStart\" : \"animationstart\",\n            ANIMATION_END: t.j ? \"webkitAnimationEnd\" : \"animationend\",\n            ANIMATION_ITERATION: t.j ? \"webkitAnimationIteration\" : \"animationiteration\"\n        },\n        X = {\n            stop: function(e, t) {\n                e.preventDefault ? e.preventDefault() : e.returnValue = !1, t && (e.stopPropagation ? e.stopPropagation() : e.cancelBubble = !0)\n            }\n        };\n\n    function Q(e) {\n        let t = [];\n        for (let i = 0; e && e.nodeType === e.ELEMENT_NODE; i++) t[i] = e.scrollTop, e = e.parentNode;\n        return t\n    }\n\n    function J(e, t) {\n        for (let i = 0; e && e.nodeType === e.ELEMENT_NODE; i++) e.scrollTop !== t[i] && (e.scrollTop = t[i]), e = e.parentNode\n    }\n    class ee extends l.a {\n        constructor(e) {\n            super(), this._onDidFocus = this._register(new a.b), this.onDidFocus = this._onDidFocus.event, this._onDidBlur = this._register(new a.b), this.onDidBlur = this._onDidBlur.event;\n            let t = F(document.activeElement, e),\n                i = !1;\n            const n = () => {\n                    i = !1, t || (t = !0, this._onDidFocus.fire())\n                },\n                r = () => {\n                    t && (i = !0, window.setTimeout(() => {\n                        i && (i = !1, t = !1, this._onDidBlur.fire())\n                    }, 0))\n                };\n            this._refreshStateHandler = () => {\n                F(document.activeElement, e) !== t && (t ? r : n)()\n            }, this._register(g(e, Z.FOCUS, n, !0)), this._register(g(e, Z.BLUR, r, !0))\n        }\n    }\n\n    function te(e) {\n        return new ee(e)\n    }\n\n    function ie(e, ...t) {\n        if (e.append(...t), 1 === t.length && \"string\" != typeof t[0]) return t[0]\n    }\n\n    function ne(e, ...t) {\n        e.innerText = \"\", ie(e, ...t)\n    }\n    const re = /([\\w\\-]+)?(#([\\w\\-]+))?((\\.([\\w\\-]+))*)/;\n\n    function oe(e, t, i, ...n) {\n        let r, o = re.exec(t);\n        if (!o) throw new Error(\"Bad use of emmet\");\n        return i = Object.assign({}, i || {}), t = o[1] || \"div\", r = e !== v.HTML ? document.createElementNS(e, t) : document.createElement(t), o[3] && (r.id = o[3]), o[4] && (r.className = o[4].replace(/\\./g, \" \").trim()), Object.keys(i).forEach(e => {\n            var t = i[e];\n            void 0 !== t && (/^on\\w+$/.test(e) ? r[e] = t : \"selected\" === e ? t && r.setAttribute(e, \"true\") : r.setAttribute(e, t))\n        }), r.append(...n), r\n    }\n\n    function se(e, t, ...i) {\n        return oe(v.HTML, e, t, ...i)\n    }\n\n    function ae(...e) {\n        for (var t of e) t.style.display = \"\", t.removeAttribute(\"aria-hidden\")\n    }\n\n    function le(...e) {\n        for (var t of e) t.style.display = \"none\", t.setAttribute(\"aria-hidden\", \"true\")\n    }\n\n    function de(e) {\n        return Array.prototype.slice.call(document.getElementsByTagName(e), 0)\n    }\n\n    function ce(e) {\n        return e = window.devicePixelRatio * e, Math.max(1, Math.floor(e)) / window.devicePixelRatio\n    }\n\n    function he(e) {\n        window.open(e, \"_blank\", \"noopener\")\n    }\n\n    function ue(e) {\n        const t = () => {\n            e(), i = y(t)\n        };\n        let i = y(t);\n        return Object(l.i)(() => i.dispose())\n    }\n\n    function pe(e) {\n        return e ? `url('${d.a.asBrowserUri(e).toString(!0).replace(/'/g,\"%27\")}')` : \"url('')\"\n    }\n\n    function ge(e) {\n        return `'${e.replace(/'/g,\"%27\")}'`\n    }(t = v = v || {}).HTML = \"http://www.w3.org/1999/xhtml\", t.SVG = \"http://www.w3.org/2000/svg\", se.SVG = function(e, t, ...i) {\n        return oe(v.SVG, e, t, ...i)\n    }, d.b.setPreferredWebSchema(/^https:/.test(window.location.href) ? \"https\" : \"http\");\n    class fe extends a.b {\n        constructor() {\n            super(), this._subscriptions = new l.b, this._keyStatus = {\n                altKey: !1,\n                shiftKey: !1,\n                ctrlKey: !1,\n                metaKey: !1\n            }, this._subscriptions.add(g(window, \"keydown\", e => {\n                if (!e.defaultPrevented) {\n                    var t = new n.a(e);\n                    if (6 !== t.keyCode || !e.repeat) {\n                        if (e.altKey && !this._keyStatus.altKey) this._keyStatus.lastKeyPressed = \"alt\";\n                        else if (e.ctrlKey && !this._keyStatus.ctrlKey) this._keyStatus.lastKeyPressed = \"ctrl\";\n                        else if (e.metaKey && !this._keyStatus.metaKey) this._keyStatus.lastKeyPressed = \"meta\";\n                        else if (e.shiftKey && !this._keyStatus.shiftKey) this._keyStatus.lastKeyPressed = \"shift\";\n                        else {\n                            if (6 === t.keyCode) return;\n                            this._keyStatus.lastKeyPressed = void 0\n                        }\n                        this._keyStatus.altKey = e.altKey, this._keyStatus.ctrlKey = e.ctrlKey, this._keyStatus.metaKey = e.metaKey, this._keyStatus.shiftKey = e.shiftKey, this._keyStatus.lastKeyPressed && (this._keyStatus.event = e, this.fire(this._keyStatus))\n                    }\n                }\n            }, !0)), this._subscriptions.add(g(window, \"keyup\", e => {\n                e.defaultPrevented || (!e.altKey && this._keyStatus.altKey ? this._keyStatus.lastKeyReleased = \"alt\" : !e.ctrlKey && this._keyStatus.ctrlKey ? this._keyStatus.lastKeyReleased = \"ctrl\" : !e.metaKey && this._keyStatus.metaKey ? this._keyStatus.lastKeyReleased = \"meta\" : !e.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 = e.altKey, this._keyStatus.ctrlKey = e.ctrlKey, this._keyStatus.metaKey = e.metaKey, this._keyStatus.shiftKey = e.shiftKey, this._keyStatus.lastKeyReleased && (this._keyStatus.event = e, this.fire(this._keyStatus)))\n            }, !0)), this._subscriptions.add(g(document.body, \"mousedown\", () => {\n                this._keyStatus.lastKeyPressed = void 0\n            }, !0)), this._subscriptions.add(g(document.body, \"mouseup\", () => {\n                this._keyStatus.lastKeyPressed = void 0\n            }, !0)), this._subscriptions.add(g(document.body, \"mousemove\", e => {\n                e.buttons && (this._keyStatus.lastKeyPressed = void 0)\n            }, !0)), this._subscriptions.add(g(window, \"blur\", () => {\n                this.resetKeyStatus()\n            }))\n        }\n        get keyStatus() {\n            return this._keyStatus\n        }\n        resetKeyStatus() {\n            this.doResetKeyStatus(), this.fire(this._keyStatus)\n        }\n        doResetKeyStatus() {\n            this._keyStatus = {\n                altKey: !1,\n                shiftKey: !1,\n                ctrlKey: !1,\n                metaKey: !1\n            }\n        }\n        static getInstance() {\n            return fe.instance || (fe.instance = new fe), fe.instance\n        }\n        dispose() {\n            super.dispose(), this._subscriptions.dispose()\n        }\n    }\n\n    function me(e, t) {\n        const i = window.matchMedia(e);\n        \"function\" == typeof i.addEventListener ? i.addEventListener(\"change\", t) : i.addListener(t)\n    }\n}, function(e, t, i) {\n    \"use strict\";\n    i.d(t, \"c\", (function() {\n        return n\n    })), i.d(t, \"b\", (function() {\n        return d\n    })), i.d(t, \"e\", (function() {\n        return c\n    })), i.d(t, \"a\", (function() {\n        return h\n    })), i.d(t, \"d\", (function() {\n        return u\n    })), i.d(t, \"f\", (function() {\n        return p\n    }));\n    var n, r = i(31),\n        o = i(4),\n        s = i(79),\n        a = i(90);\n    ! function(e) {\n        function t(e) {\n            return (t, i = null, n) => {\n                let r, o = !1;\n                return r = e(e => {\n                    if (!o) return r ? r.dispose() : o = !0, t.call(i, e)\n                }, null, n), o && r.dispose(), r\n            }\n        }\n\n        function i(e, t) {\n            return a((i, n = null, r) => e(e => i.call(n, t(e)), null, r))\n        }\n\n        function n(e, t) {\n            return a((i, n = null, r) => e(e => {\n                t(e), i.call(n, e)\n            }, null, r))\n        }\n\n        function r(e, t) {\n            return a((i, n = null, r) => e(e => t(e) && i.call(n, e), null, r))\n        }\n\n        function s(e, t, n) {\n            let r = n;\n            return i(e, e => (r = t(r, e), r))\n        }\n\n        function a(e) {\n            let t;\n            const i = new d({\n                onFirstListenerAdd() {\n                    t = e(i.fire, i)\n                },\n                onLastListenerRemove() {\n                    t.dispose()\n                }\n            });\n            return i.event\n        }\n\n        function l(e, t, i = 100, n = !1, r) {\n            let o, s = void 0,\n                a = void 0,\n                l = 0;\n            const c = new d({\n                leakWarningThreshold: r,\n                onFirstListenerAdd() {\n                    o = e(e => {\n                        l++, s = t(s, e), n && !a && (c.fire(s), s = void 0), clearTimeout(a), a = setTimeout(() => {\n                            var e = s;\n                            s = void 0, a = void 0, (!n || 1 < l) && c.fire(e), l = 0\n                        }, i)\n                    })\n                },\n                onLastListenerRemove() {\n                    o.dispose()\n                }\n            });\n            return c.event\n        }\n\n        function c(e, t = ((e, t) => e === t)) {\n            let i, n = !0;\n            return r(e, e => {\n                var r = n || !t(e, i);\n                return n = !1, i = e, r\n            })\n        }\n        e.None = () => o.a.None, e.once = t, e.map = i, e.forEach = n, e.filter = r, e.signal = function(e) {\n            return e\n        }, e.any = function(...e) {\n            return (t, i = null, n) => Object(o.e)(...e.map(e => e(e => t.call(i, e), null, n)))\n        }, e.reduce = s, e.debounce = l, e.latch = c, e.split = function(t, i) {\n            return [e.filter(t, i), e.filter(t, e => !i(e))]\n        }, e.buffer = function(e, t = !1, i = []) {\n            let n = i.slice(),\n                r = e(e => {\n                    n ? n.push(e) : s.fire(e)\n                });\n            const o = () => {\n                    n && n.forEach(e => s.fire(e)), n = null\n                },\n                s = new d({\n                    onFirstListenerAdd() {\n                        r = r || e(e => s.fire(e))\n                    },\n                    onFirstListenerDidAdd() {\n                        n && (t ? setTimeout(o) : o())\n                    },\n                    onLastListenerRemove() {\n                        r && r.dispose(), r = null\n                    }\n                });\n            return s.event\n        };\n        class h {\n            constructor(e) {\n                this.event = e\n            }\n            map(e) {\n                return new h(i(this.event, e))\n            }\n            forEach(e) {\n                return new h(n(this.event, e))\n            }\n            filter(e) {\n                return new h(r(this.event, e))\n            }\n            reduce(e, t) {\n                return new h(s(this.event, e, t))\n            }\n            latch() {\n                return new h(c(this.event))\n            }\n            debounce(e, t = 100, i = !1, n) {\n                return new h(l(this.event, e, t, i, n))\n            }\n            on(e, t, i) {\n                return this.event(e, t, i)\n            }\n            once(e, i, n) {\n                return t(this.event)(e, i, n)\n            }\n        }\n        e.chain = function(e) {\n            return new h(e)\n        }, e.fromNodeEventEmitter = function(e, t, i = (e => e)) {\n            const n = (...e) => r.fire(i(...e)),\n                r = new d({\n                    onFirstListenerAdd: () => e.on(t, n),\n                    onLastListenerRemove: () => e.removeListener(t, n)\n                });\n            return r.event\n        }, e.fromDOMEventEmitter = function(e, t, i = (e => e)) {\n            const n = (...e) => r.fire(i(...e)),\n                r = new d({\n                    onFirstListenerAdd: () => e.addEventListener(t, n),\n                    onLastListenerRemove: () => e.removeEventListener(t, n)\n                });\n            return r.event\n        }, e.toPromise = function(e) {\n            return new Promise(i => t(e)(i))\n        }\n    }(n = n || {});\n    class l {\n        constructor(e) {\n            this._listenerCount = 0, this._invocationCount = 0, this._elapsedOverall = 0, this._name = `${e}_${l._idPool++}`\n        }\n        start(e) {\n            this._stopWatch = new a.a(!0), this._listenerCount = e\n        }\n        stop() {\n            if (this._stopWatch) {\n                const e = this._stopWatch.elapsed();\n                this._elapsedOverall += e, this._invocationCount += 1, console.info(`did FIRE ${this._name}: elapsed_ms: ${e.toFixed(5)}, listener: ${this._listenerCount} (elapsed_overall: ${this._elapsedOverall.toFixed(2)}, invocations: ${this._invocationCount})`), this._stopWatch = void 0\n            }\n        }\n    }\n    l._idPool = 0;\n    class d {\n        constructor(e) {\n            this._disposed = !1, this._options = e, this._leakageMon = void 0, this._perfMon = null !== (e = this._options) && void 0 !== e && e._profName ? new l(this._options._profName) : void 0\n        }\n        get event() {\n            return this._event || (this._event = (e, t, i) => {\n                this._listeners || (this._listeners = new s.a);\n                var n = this._listeners.isEmpty();\n                n && this._options && this._options.onFirstListenerAdd && this._options.onFirstListenerAdd(this);\n                const r = this._listeners.push(t ? [e, t] : e);\n                n && this._options && this._options.onFirstListenerDidAdd && this._options.onFirstListenerDidAdd(this), this._options && this._options.onListenerDidAdd && this._options.onListenerDidAdd(this, e, t);\n                const a = null === (t = this._leakageMon) || void 0 === t ? void 0 : t.check(this._listeners.size);\n                return t = Object(o.i)(() => {\n                    a && a(), this._disposed || (r(), this._options && this._options.onLastListenerRemove && (this._listeners && !this._listeners.isEmpty() || this._options.onLastListenerRemove(this)))\n                }), i instanceof o.b ? i.add(t) : Array.isArray(i) && i.push(t), t\n            }), this._event\n        }\n        fire(e) {\n            var t;\n            if (this._listeners) {\n                for (var i of (this._deliveryQueue || (this._deliveryQueue = new s.a), this._listeners)) this._deliveryQueue.push([i, e]);\n                for (null !== (t = this._perfMon) && void 0 !== t && t.start(this._deliveryQueue.size); 0 < this._deliveryQueue.size;) {\n                    const [t, i] = this._deliveryQueue.shift();\n                    try {\n                        \"function\" == typeof t ? t.call(void 0, i) : t[0].call(t[1], i)\n                    } catch (e) {\n                        Object(r.f)(e)\n                    }\n                }\n                null !== (t = this._perfMon) && void 0 !== t && t.stop()\n            }\n        }\n        dispose() {\n            var e, t;\n            this._disposed || (this._disposed = !0, null !== (t = this._listeners) && void 0 !== t && t.clear(), null !== (e = this._deliveryQueue) && void 0 !== e && e.clear(), null !== (e = null === (t = this._options) || void 0 === t ? void 0 : t.onLastListenerRemove) && void 0 !== e && e.call(t), null !== (t = this._leakageMon) && void 0 !== t && t.dispose())\n        }\n    }\n    class c extends d {\n        constructor(e) {\n            super(e), this._isPaused = 0, this._eventQueue = new s.a, this._mergeFn = null == e ? void 0 : e.merge\n        }\n        pause() {\n            this._isPaused++\n        }\n        resume() {\n            if (0 !== this._isPaused && 0 == --this._isPaused)\n                if (this._mergeFn) {\n                    var e = Array.from(this._eventQueue);\n                    this._eventQueue.clear(), super.fire(this._mergeFn(e))\n                } else\n                    for (; !this._isPaused && 0 !== this._eventQueue.size;) super.fire(this._eventQueue.shift())\n        }\n        fire(e) {\n            this._listeners && (0 !== this._isPaused ? this._eventQueue.push(e) : super.fire(e))\n        }\n    }\n    class h extends c {\n        constructor(e) {\n            super(e), this._delay = null !== (e = e.delay) && void 0 !== e ? e : 100\n        }\n        fire(e) {\n            this._handle || (this.pause(), this._handle = setTimeout(() => {\n                this._handle = void 0, this.resume()\n            }, this._delay)), super.fire(e)\n        }\n    }\n    class u {\n        constructor() {\n            this.buffers = []\n        }\n        wrapEvent(e) {\n            return (t, i, n) => e(e => {\n                const n = this.buffers[this.buffers.length - 1];\n                n ? n.push(() => t.call(i, e)) : t.call(i, e)\n            }, void 0, n)\n        }\n        bufferEvents(e) {\n            const t = [];\n            return this.buffers.push(t), e = e(), this.buffers.pop(), t.forEach(e => e()), e\n        }\n    }\n    class p {\n        constructor() {\n            this.listening = !1, this.inputEvent = n.None, this.inputEventListener = o.a.None, this.emitter = new d({\n                onFirstListenerDidAdd: () => {\n                    this.listening = !0, this.inputEventListener = this.inputEvent(this.emitter.fire, this.emitter)\n                },\n                onLastListenerRemove: () => {\n                    this.listening = !1, this.inputEventListener.dispose()\n                }\n            }), this.event = this.emitter.event\n        }\n        set input(e) {\n            this.inputEvent = e, this.listening && (this.inputEventListener.dispose(), this.inputEventListener = e(this.emitter.fire, this.emitter))\n        }\n        dispose() {\n            this.inputEventListener.dispose(), this.emitter.dispose()\n        }\n    }\n}, function(e, t, i) {\n    e.exports = i(256)\n}, function(e, t, i) {\n    \"use strict\";\n    i.d(t, \"h\", (function() {\n        return o\n    })), i.d(t, \"g\", (function() {\n        return a\n    })), i.d(t, \"f\", (function() {\n        return l\n    })), i.d(t, \"e\", (function() {\n        return d\n    })), i.d(t, \"i\", (function() {\n        return c\n    })), i.d(t, \"b\", (function() {\n        return h\n    })), i.d(t, \"a\", (function() {\n        return u\n    })), i.d(t, \"d\", (function() {\n        return p\n    })), i.d(t, \"c\", (function() {\n        return g\n    }));\n    var n = i(104),\n        r = i(43);\n\n    function o(e) {\n        return e\n    }\n    class s extends Error {\n        constructor(e) {\n            super(`Encountered errors while disposing of store. Errors: [${e.join(\", \")}]`), this.errors = e\n        }\n    }\n\n    function a(e) {\n        return \"function\" == typeof e.dispose && 0 === e.dispose.length\n    }\n\n    function l(e) {\n        if (r.a.is(e)) {\n            let t = [];\n            for (const i of e)\n                if (i) try {\n                    i.dispose()\n                } catch (e) {\n                    t.push(e)\n                }\n            if (1 === t.length) throw t[0];\n            if (1 < t.length) throw new s(t);\n            return Array.isArray(e) ? [] : e\n        }\n        if (e) return e.dispose(), e\n    }\n\n    function d(...e) {\n        var t = c(() => l(e));\n        return t\n    }\n\n    function c(e) {\n        const t = {\n            dispose: Object(n.a)(() => {\n                e()\n            })\n        };\n        return t\n    }\n    class h {\n        constructor() {\n            this._toDispose = new Set, this._isDisposed = !1\n        }\n        dispose() {\n            this._isDisposed || (this._isDisposed = !0, this.clear())\n        }\n        clear() {\n            try {\n                l(this._toDispose.values())\n            } finally {\n                this._toDispose.clear()\n            }\n        }\n        add(e) {\n            if (!e) return e;\n            if (e === this) throw new Error(\"Cannot register a disposable on itself!\");\n            return this._isDisposed ? h.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(e), e\n        }\n    }\n    h.DISABLE_DISPOSED_WARNING = !1;\n    class u {\n        constructor() {\n            this._store = new h, this._store\n        }\n        dispose() {\n            this._store.dispose()\n        }\n        _register(e) {\n            if (e === this) throw new Error(\"Cannot register a disposable on itself!\");\n            return this._store.add(e)\n        }\n    }\n    u.None = Object.freeze({\n        dispose() {}\n    });\n    class p {\n        constructor() {\n            this._isDisposed = !1\n        }\n        get value() {\n            return this._isDisposed ? void 0 : this._value\n        }\n        set value(e) {\n            var t;\n            this._isDisposed || e === this._value || (null !== (t = this._value) && void 0 !== t && t.dispose(), this._value = e)\n        }\n        clear() {\n            this.value = void 0\n        }\n        dispose() {\n            var e;\n            this._isDisposed = !0, null !== (e = this._value) && void 0 !== e && e.dispose(), this._value = void 0\n        }\n        clearAndLeak() {\n            var e = this._value;\n            return this._value = void 0, e\n        }\n    }\n    class g {\n        constructor(e) {\n            this.object = e\n        }\n        dispose() {}\n    }\n}, function(e, t, i) {\n    \"use strict\";\n    i.d(t, \"a\", (function() {\n        return r\n    }));\n    var n = i(8);\n    class r {\n        constructor(e, t, i, n) {\n            i < e || e === i && n < t ? (this.startLineNumber = i, this.startColumn = n, this.endLineNumber = e, this.endColumn = t) : (this.startLineNumber = e, this.startColumn = t, this.endLineNumber = i, this.endColumn = n)\n        }\n        isEmpty() {\n            return r.isEmpty(this)\n        }\n        static isEmpty(e) {\n            return e.startLineNumber === e.endLineNumber && e.startColumn === e.endColumn\n        }\n        containsPosition(e) {\n            return r.containsPosition(this, e)\n        }\n        static containsPosition(e, t) {\n            return !(t.lineNumber < e.startLineNumber || t.lineNumber > e.endLineNumber || t.lineNumber === e.startLineNumber && t.column < e.startColumn || t.lineNumber === e.endLineNumber && t.column > e.endColumn)\n        }\n        containsRange(e) {\n            return r.containsRange(this, e)\n        }\n        static containsRange(e, t) {\n            return !(t.startLineNumber < e.startLineNumber || t.endLineNumber < e.startLineNumber || t.startLineNumber > e.endLineNumber || t.endLineNumber > e.endLineNumber || t.startLineNumber === e.startLineNumber && t.startColumn < e.startColumn || t.endLineNumber === e.endLineNumber && t.endColumn > e.endColumn)\n        }\n        strictContainsRange(e) {\n            return r.strictContainsRange(this, e)\n        }\n        static strictContainsRange(e, t) {\n            return !(t.startLineNumber < e.startLineNumber || t.endLineNumber < e.startLineNumber || t.startLineNumber > e.endLineNumber || t.endLineNumber > e.endLineNumber || t.startLineNumber === e.startLineNumber && t.startColumn <= e.startColumn || t.endLineNumber === e.endLineNumber && t.endColumn >= e.endColumn)\n        }\n        plusRange(e) {\n            return r.plusRange(this, e)\n        }\n        static plusRange(e, t) {\n            let i, n, o, s;\n            return n = t.startLineNumber < e.startLineNumber ? (i = t.startLineNumber, t.startColumn) : t.startLineNumber === e.startLineNumber ? (i = t.startLineNumber, Math.min(t.startColumn, e.startColumn)) : (i = e.startLineNumber, e.startColumn), s = t.endLineNumber > e.endLineNumber ? (o = t.endLineNumber, t.endColumn) : t.endLineNumber === e.endLineNumber ? (o = t.endLineNumber, Math.max(t.endColumn, e.endColumn)) : (o = e.endLineNumber, e.endColumn), new r(i, n, o, s)\n        }\n        intersectRanges(e) {\n            return r.intersectRanges(this, e)\n        }\n        static intersectRanges(e, t) {\n            let i = e.startLineNumber,\n                n = e.startColumn,\n                o = e.endLineNumber,\n                s = e.endColumn;\n            var a = t.startLineNumber,\n                l = t.startColumn;\n            e = t.endLineNumber, t = t.endColumn;\n            return i < a ? (i = a, n = l) : i === a && (n = Math.max(n, l)), o > e ? (o = e, s = t) : o === e && (s = Math.min(s, t)), i > o || i === o && n > s ? null : new r(i, n, o, s)\n        }\n        equalsRange(e) {\n            return r.equalsRange(this, e)\n        }\n        static equalsRange(e, t) {\n            return !!e && !!t && e.startLineNumber === t.startLineNumber && e.startColumn === t.startColumn && e.endLineNumber === t.endLineNumber && e.endColumn === t.endColumn\n        }\n        getEndPosition() {\n            return r.getEndPosition(this)\n        }\n        static getEndPosition(e) {\n            return new n.a(e.endLineNumber, e.endColumn)\n        }\n        getStartPosition() {\n            return r.getStartPosition(this)\n        }\n        static getStartPosition(e) {\n            return new n.a(e.startLineNumber, e.startColumn)\n        }\n        toString() {\n            return \"[\" + this.startLineNumber + \",\" + this.startColumn + \" -> \" + this.endLineNumber + \",\" + this.endColumn + \"]\"\n        }\n        setEndPosition(e, t) {\n            return new r(this.startLineNumber, this.startColumn, e, t)\n        }\n        setStartPosition(e, t) {\n            return new r(e, t, this.endLineNumber, this.endColumn)\n        }\n        collapseToStart() {\n            return r.collapseToStart(this)\n        }\n        static collapseToStart(e) {\n            return new r(e.startLineNumber, e.startColumn, e.startLineNumber, e.startColumn)\n        }\n        static fromPositions(e, t = e) {\n            return new r(e.lineNumber, e.column, t.lineNumber, t.column)\n        }\n        static lift(e) {\n            return e ? new r(e.startLineNumber, e.startColumn, e.endLineNumber, e.endColumn) : null\n        }\n        static isIRange(e) {\n            return e && \"number\" == typeof e.startLineNumber && \"number\" == typeof e.startColumn && \"number\" == typeof e.endLineNumber && \"number\" == typeof e.endColumn\n        }\n        static areIntersectingOrTouching(e, t) {\n            return !(e.endLineNumber < t.startLineNumber || e.endLineNumber === t.startLineNumber && e.endColumn < t.startColumn || t.endLineNumber < e.startLineNumber || t.endLineNumber === e.startLineNumber && t.endColumn < e.startColumn)\n        }\n        static areIntersecting(e, t) {\n            return !(e.endLineNumber < t.startLineNumber || e.endLineNumber === t.startLineNumber && e.endColumn <= t.startColumn || t.endLineNumber < e.startLineNumber || t.endLineNumber === e.startLineNumber && t.endColumn <= e.startColumn)\n        }\n        static compareRangesUsingStarts(e, t) {\n            if (e && t) {\n                var i = 0 | e.startLineNumber,\n                    n = 0 | t.startLineNumber;\n                return i != n || ((i = 0 | e.startColumn) != (n = 0 | t.startColumn) || (i = 0 | e.endLineNumber) != (n = 0 | t.endLineNumber)) ? i - n : (0 | e.endColumn) - (0 | t.endColumn)\n            }\n            return (e ? 1 : 0) - (t ? 1 : 0)\n        }\n        static compareRangesUsingEnds(e, t) {\n            return e.endLineNumber === t.endLineNumber ? e.endColumn === t.endColumn ? e.startLineNumber === t.startLineNumber ? e.startColumn - t.startColumn : e.startLineNumber - t.startLineNumber : e.endColumn - t.endColumn : e.endLineNumber - t.endLineNumber\n        }\n        static spansMultipleLines(e) {\n            return e.endLineNumber > e.startLineNumber\n        }\n    }\n}, function(e, t, i) {\n    \"use strict\";\n\n    function n(e) {\n        return !e || \"string\" != typeof e || 0 === e.trim().length\n    }\n    i.d(t, \"C\", (function() {\n        return n\n    })), i.d(t, \"v\", (function() {\n        return o\n    })), i.d(t, \"s\", (function() {\n        return s\n    })), i.d(t, \"t\", (function() {\n        return a\n    })), i.d(t, \"J\", (function() {\n        return l\n    })), i.d(t, \"O\", (function() {\n        return d\n    })), i.d(t, \"p\", (function() {\n        return c\n    })), i.d(t, \"q\", (function() {\n        return h\n    })), i.d(t, \"N\", (function() {\n        return u\n    })), i.d(t, \"M\", (function() {\n        return p\n    })), i.d(t, \"Q\", (function() {\n        return g\n    })), i.d(t, \"u\", (function() {\n        return f\n    })), i.d(t, \"x\", (function() {\n        return m\n    })), i.d(t, \"I\", (function() {\n        return v\n    })), i.d(t, \"f\", (function() {\n        return b\n    })), i.d(t, \"h\", (function() {\n        return _\n    })), i.d(t, \"g\", (function() {\n        return w\n    })), i.d(t, \"i\", (function() {\n        return y\n    })), i.d(t, \"G\", (function() {\n        return C\n    })), i.d(t, \"H\", (function() {\n        return x\n    })), i.d(t, \"r\", (function() {\n        return S\n    })), i.d(t, \"R\", (function() {\n        return k\n    })), i.d(t, \"d\", (function() {\n        return L\n    })), i.d(t, \"e\", (function() {\n        return O\n    })), i.d(t, \"E\", (function() {\n        return E\n    })), i.d(t, \"F\", (function() {\n        return N\n    })), i.d(t, \"j\", (function() {\n        return D\n    })), i.d(t, \"z\", (function() {\n        return I\n    })), i.d(t, \"K\", (function() {\n        return M\n    })), i.d(t, \"L\", (function() {\n        return P\n    })), i.d(t, \"m\", (function() {\n        return R\n    })), i.d(t, \"k\", (function() {\n        return j\n    })), i.d(t, \"A\", (function() {\n        return V\n    })), i.d(t, \"a\", (function() {\n        return W\n    })), i.d(t, \"n\", (function() {\n        return z\n    })), i.d(t, \"l\", (function() {\n        return H\n    })), i.d(t, \"D\", (function() {\n        return U\n    })), i.d(t, \"B\", (function() {\n        return K\n    })), i.d(t, \"b\", (function() {\n        return $\n    })), i.d(t, \"S\", (function() {\n        return q\n    })), i.d(t, \"o\", (function() {\n        return G\n    })), i.d(t, \"P\", (function() {\n        return Y\n    })), i.d(t, \"w\", (function() {\n        return Z\n    })), i.d(t, \"c\", (function() {\n        return X\n    })), i.d(t, \"y\", (function() {\n        return J\n    }));\n    const r = /{(\\d+)}/g;\n\n    function o(e, ...t) {\n        return 0 === t.length ? e : e.replace(r, (function(e, i) {\n            return i = parseInt(i, 10), isNaN(i) || i < 0 || i >= t.length ? e : t[i]\n        }))\n    }\n\n    function s(e) {\n        return e.replace(/[<>&]/g, (function(e) {\n            switch (e) {\n                case \"<\":\n                    return \"&lt;\";\n                case \">\":\n                    return \"&gt;\";\n                case \"&\":\n                    return \"&amp;\";\n                default:\n                    return e\n            }\n        }))\n    }\n\n    function a(e) {\n        return e.replace(/[\\\\\\{\\}\\*\\+\\?\\|\\^\\$\\.\\[\\]\\(\\)]/g, \"\\\\$&\")\n    }\n\n    function l(e, t) {\n        if (!e || !t) return e;\n        var i = t.length;\n        if (0 === i || 0 === e.length) return e;\n        let n = 0;\n        for (; e.indexOf(t, n) === n;) n += i;\n        return e.substring(n)\n    }\n\n    function d(e, t) {\n        if (!e || !t) return e;\n        var i = t.length,\n            n = e.length;\n        if (0 === i || 0 === n) return e;\n        let r, o = n;\n        for (; - 1 !== (r = e.lastIndexOf(t, o - 1)) && r + i === o;) {\n            if (0 === r) return \"\";\n            o = r\n        }\n        return e.substring(0, o)\n    }\n\n    function c(e) {\n        return e.replace(/[\\-\\\\\\{\\}\\+\\?\\|\\^\\$\\.\\,\\[\\]\\(\\)\\#\\s]/g, \"\\\\$&\").replace(/[\\*]/g, \".*\")\n    }\n\n    function h(e, t, i = {}) {\n        if (!e) throw new Error(\"Cannot create regex from empty string\");\n        t || (e = a(e)), i.wholeWord && (/\\B/.test(e.charAt(0)) || (e = \"\\\\b\" + e), /\\B/.test(e.charAt(e.length - 1)) || (e += \"\\\\b\"));\n        let n = \"\";\n        return i.global && (n += \"g\"), i.matchCase || (n += \"i\"), i.multiline && (n += \"m\"), i.unicode && (n += \"u\"), new RegExp(e, n)\n    }\n\n    function u(e) {\n        return \"^\" !== e.source && \"^$\" !== e.source && \"$\" !== e.source && \"^\\\\s*$\" !== e.source && !(!e.exec(\"\") || 0 !== e.lastIndex)\n    }\n\n    function p(e) {\n        return (e.global ? \"g\" : \"\") + (e.ignoreCase ? \"i\" : \"\") + (e.multiline ? \"m\" : \"\") + (e.unicode ? \"u\" : \"\")\n    }\n\n    function g(e) {\n        return e.split(/\\r\\n|\\r|\\n/)\n    }\n\n    function f(e) {\n        for (let i = 0, n = e.length; i < n; i++) {\n            var t = e.charCodeAt(i);\n            if (32 !== t && 9 !== t) return i\n        }\n        return -1\n    }\n\n    function m(e, t = 0, i = e.length) {\n        for (let r = t; r < i; r++) {\n            var n = e.charCodeAt(r);\n            if (32 !== n && 9 !== n) return e.substring(t, r)\n        }\n        return e.substring(t, i)\n    }\n\n    function v(e, t = e.length - 1) {\n        for (let n = t; 0 <= n; n--) {\n            var i = e.charCodeAt(n);\n            if (32 !== i && 9 !== i) return n\n        }\n        return -1\n    }\n\n    function b(e, t) {\n        return e < t ? -1 : t < e ? 1 : 0\n    }\n\n    function _(e, t, i = 0, n = e.length, r = 0, o = t.length) {\n        for (; i < n && r < o; i++, r++) {\n            var s = e.charCodeAt(i),\n                a = t.charCodeAt(r);\n            if (s < a) return -1;\n            if (a < s) return 1\n        }\n        var l = n - i,\n            d = o - r;\n        return l < d ? -1 : d < l ? 1 : 0\n    }\n\n    function w(e, t) {\n        return y(e, t, 0, e.length, 0, t.length)\n    }\n\n    function y(e, t, i = 0, n = e.length, r = 0, o = t.length) {\n        for (; i < n && r < o; i++, r++) {\n            let a = e.charCodeAt(i),\n                l = t.charCodeAt(r);\n            if (a !== l) {\n                if (128 <= a || 128 <= l) return _(e.toLowerCase(), t.toLowerCase(), i, n, r, o);\n                C(a) && (a -= 32), C(l) && (l -= 32);\n                var s = a - l;\n                if (0 != s) return s\n            }\n        }\n        var a = n - i,\n            l = o - r;\n        return a < l ? -1 : l < a ? 1 : 0\n    }\n\n    function C(e) {\n        return 97 <= e && e <= 122\n    }\n\n    function x(e) {\n        return 65 <= e && e <= 90\n    }\n\n    function S(e, t) {\n        return e.length === t.length && 0 === y(e, t)\n    }\n\n    function k(e, t) {\n        var i = t.length;\n        return !(t.length > e.length) && 0 === y(e, t, 0, i)\n    }\n\n    function L(e, t) {\n        let i, n = Math.min(e.length, t.length);\n        for (i = 0; i < n; i++)\n            if (e.charCodeAt(i) !== t.charCodeAt(i)) return i;\n        return n\n    }\n\n    function O(e, t) {\n        let i, n = Math.min(e.length, t.length);\n        var r = e.length - 1,\n            o = t.length - 1;\n        for (i = 0; i < n; i++)\n            if (e.charCodeAt(r - i) !== t.charCodeAt(o - i)) return i;\n        return n\n    }\n\n    function E(e) {\n        return 55296 <= e && e <= 56319\n    }\n\n    function N(e) {\n        return 56320 <= e && e <= 57343\n    }\n\n    function D(e, t) {\n        return t - 56320 + (e - 55296 << 10) + 65536\n    }\n\n    function I(e, t, i) {\n        var n = e.charCodeAt(i);\n        return E(n) && i + 1 < t && N(i = e.charCodeAt(i + 1)) ? D(n, i) : n\n    }\n\n    function T(e, t) {\n        var i = e.charCodeAt(t - 1);\n        return N(i) && 1 < t && E(t = e.charCodeAt(t - 2)) ? D(t, i) : i\n    }\n\n    function M(e, t) {\n        const i = Q.getInstance();\n        var n = t,\n            r = e.length,\n            o = I(e, r, t);\n        t += 65536 <= o ? 2 : 1;\n        let s = i.getGraphemeBreakType(o);\n        for (; t < r;) {\n            var a = I(e, r, t),\n                l = i.getGraphemeBreakType(a);\n            if (X(s, l)) break;\n            t += 65536 <= a ? 2 : 1, s = l\n        }\n        return t - n\n    }\n\n    function P(e, t) {\n        const i = Q.getInstance();\n        var n = t,\n            r = T(e, t);\n        t -= 65536 <= r ? 2 : 1;\n        let o = i.getGraphemeBreakType(r);\n        for (; 0 < t;) {\n            var s = T(e, t),\n                a = i.getGraphemeBreakType(s);\n            if (X(a, o)) break;\n            t -= 65536 <= s ? 2 : 1, o = a\n        }\n        return n - t\n    }\n    const A = /(?:[\\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-\\u0815\\u081A\\u0824\\u0828\\u0830-\\u0858\\u085E-\\u08BD\\u200F\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFD3D\\uFD50-\\uFDFC\\uFE70-\\uFEFC]|\\uD802[\\uDC00-\\uDD1B\\uDD20-\\uDE00\\uDE10-\\uDE33\\uDE40-\\uDEE4\\uDEEB-\\uDF35\\uDF40-\\uDFFF]|\\uD803[\\uDC00-\\uDCFF]|\\uD83A[\\uDC00-\\uDCCF\\uDD00-\\uDD43\\uDD50-\\uDFFF]|\\uD83B[\\uDC00-\\uDEBB])/;\n\n    function R(e) {\n        return A.test(e)\n    }\n    const F = /(?:[\\u231A\\u231B\\u23F0\\u23F3\\u2600-\\u27BF\\u2B50\\u2B55]|\\uD83C[\\uDDE6-\\uDDFF\\uDF00-\\uDFFF]|\\uD83D[\\uDC00-\\uDE4F\\uDE80-\\uDEFC\\uDFE0-\\uDFEB]|\\uD83E[\\uDD00-\\uDDFF\\uDE70-\\uDED6])/;\n\n    function j(e) {\n        return F.test(e)\n    }\n    const B = /^[\\t\\n\\r\\x20-\\x7E]*$/;\n\n    function V(e) {\n        return B.test(e)\n    }\n    const W = /[\\u2028\\u2029]/;\n\n    function z(e) {\n        return W.test(e)\n    }\n\n    function H(e) {\n        for (let t = 0, i = e.length; t < i; t++)\n            if (U(e.charCodeAt(t))) return !0;\n        return !1\n    }\n\n    function U(e) {\n        return 11904 <= (e = +e) && e <= 55215 || 63744 <= e && e <= 64255 || 65281 <= e && e <= 65374\n    }\n\n    function K(e) {\n        return 127462 <= e && e <= 127487 || 8986 === e || 8987 === e || 9200 === e || 9203 === e || 9728 <= e && e <= 10175 || 11088 === e || 11093 === e || 127744 <= e && e <= 128591 || 128640 <= e && e <= 128764 || 128992 <= e && e <= 129003 || 129280 <= e && e <= 129535 || 129648 <= e && e <= 129750\n    }\n    const $ = String.fromCharCode(65279);\n\n    function q(e) {\n        return !!(e && 0 < e.length && 65279 === e.charCodeAt(0))\n    }\n\n    function G(e, t = !1) {\n        return !!e && (e = t ? e.replace(/\\\\./g, \"\") : e).toLowerCase() !== e\n    }\n\n    function Y(e) {\n        return (e %= 52) < 26 ? String.fromCharCode(97 + e) : String.fromCharCode(65 + e - 26)\n    }\n\n    function Z(e) {\n        return Q.getInstance().getGraphemeBreakType(e)\n    }\n\n    function X(e, t) {\n        return 0 === e ? 5 !== t && 7 !== t : !(2 === e && 3 === t || 4 !== e && 2 !== e && 3 !== e && 4 !== t && 2 !== t && 3 !== t && (8 === e && (8 === t || 9 === t || 11 === t || 12 === t) || !(11 !== e && 9 !== e || 9 !== t && 10 !== t) || (12 === e || 10 === e) && 10 === t || 5 === t || 13 === t || 7 === t || 1 === e || 13 === e && 14 === t || 6 === e && 6 === t))\n    }\n    class Q {\n        constructor() {\n            this._data = JSON.parse(\"[0,0,0,51592,51592,11,44424,44424,11,72251,72254,5,7150,7150,7,48008,48008,11,55176,55176,11,128420,128420,14,3276,3277,5,9979,9980,14,46216,46216,11,49800,49800,11,53384,53384,11,70726,70726,5,122915,122916,5,129320,129327,14,2558,2558,5,5906,5908,5,9762,9763,14,43360,43388,8,45320,45320,11,47112,47112,11,48904,48904,11,50696,50696,11,52488,52488,11,54280,54280,11,70082,70083,1,71350,71350,7,73111,73111,5,127892,127893,14,128726,128727,14,129473,129474,14,2027,2035,5,2901,2902,5,3784,3789,5,6754,6754,5,8418,8420,5,9877,9877,14,11088,11088,14,44008,44008,5,44872,44872,11,45768,45768,11,46664,46664,11,47560,47560,11,48456,48456,11,49352,49352,11,50248,50248,11,51144,51144,11,52040,52040,11,52936,52936,11,53832,53832,11,54728,54728,11,69811,69814,5,70459,70460,5,71096,71099,7,71998,71998,5,72874,72880,5,119149,119149,7,127374,127374,14,128335,128335,14,128482,128482,14,128765,128767,14,129399,129400,14,129680,129685,14,1476,1477,5,2377,2380,7,2759,2760,5,3137,3140,7,3458,3459,7,4153,4154,5,6432,6434,5,6978,6978,5,7675,7679,5,9723,9726,14,9823,9823,14,9919,9923,14,10035,10036,14,42736,42737,5,43596,43596,5,44200,44200,11,44648,44648,11,45096,45096,11,45544,45544,11,45992,45992,11,46440,46440,11,46888,46888,11,47336,47336,11,47784,47784,11,48232,48232,11,48680,48680,11,49128,49128,11,49576,49576,11,50024,50024,11,50472,50472,11,50920,50920,11,51368,51368,11,51816,51816,11,52264,52264,11,52712,52712,11,53160,53160,11,53608,53608,11,54056,54056,11,54504,54504,11,54952,54952,11,68108,68111,5,69933,69940,5,70197,70197,7,70498,70499,7,70845,70845,5,71229,71229,5,71727,71735,5,72154,72155,5,72344,72345,5,73023,73029,5,94095,94098,5,121403,121452,5,126981,127182,14,127538,127546,14,127990,127990,14,128391,128391,14,128445,128449,14,128500,128505,14,128752,128752,14,129160,129167,14,129356,129356,14,129432,129442,14,129648,129651,14,129751,131069,14,173,173,4,1757,1757,1,2274,2274,1,2494,2494,5,2641,2641,5,2876,2876,5,3014,3016,7,3262,3262,7,3393,3396,5,3570,3571,7,3968,3972,5,4228,4228,7,6086,6086,5,6679,6680,5,6912,6915,5,7080,7081,5,7380,7392,5,8252,8252,14,9096,9096,14,9748,9749,14,9784,9786,14,9833,9850,14,9890,9894,14,9938,9938,14,9999,9999,14,10085,10087,14,12349,12349,14,43136,43137,7,43454,43456,7,43755,43755,7,44088,44088,11,44312,44312,11,44536,44536,11,44760,44760,11,44984,44984,11,45208,45208,11,45432,45432,11,45656,45656,11,45880,45880,11,46104,46104,11,46328,46328,11,46552,46552,11,46776,46776,11,47000,47000,11,47224,47224,11,47448,47448,11,47672,47672,11,47896,47896,11,48120,48120,11,48344,48344,11,48568,48568,11,48792,48792,11,49016,49016,11,49240,49240,11,49464,49464,11,49688,49688,11,49912,49912,11,50136,50136,11,50360,50360,11,50584,50584,11,50808,50808,11,51032,51032,11,51256,51256,11,51480,51480,11,51704,51704,11,51928,51928,11,52152,52152,11,52376,52376,11,52600,52600,11,52824,52824,11,53048,53048,11,53272,53272,11,53496,53496,11,53720,53720,11,53944,53944,11,54168,54168,11,54392,54392,11,54616,54616,11,54840,54840,11,55064,55064,11,65438,65439,5,69633,69633,5,69837,69837,1,70018,70018,7,70188,70190,7,70368,70370,7,70465,70468,7,70712,70719,5,70835,70840,5,70850,70851,5,71132,71133,5,71340,71340,7,71458,71461,5,71985,71989,7,72002,72002,7,72193,72202,5,72281,72283,5,72766,72766,7,72885,72886,5,73104,73105,5,92912,92916,5,113824,113827,4,119173,119179,5,121505,121519,5,125136,125142,5,127279,127279,14,127489,127490,14,127570,127743,14,127900,127901,14,128254,128254,14,128369,128370,14,128400,128400,14,128425,128432,14,128468,128475,14,128489,128494,14,128715,128720,14,128745,128745,14,128759,128760,14,129004,129023,14,129296,129304,14,129340,129342,14,129388,129392,14,129404,129407,14,129454,129455,14,129485,129487,14,129659,129663,14,129719,129727,14,917536,917631,5,13,13,2,1160,1161,5,1564,1564,4,1807,1807,1,2085,2087,5,2363,2363,7,2402,2403,5,2507,2508,7,2622,2624,7,2691,2691,7,2786,2787,5,2881,2884,5,3006,3006,5,3072,3072,5,3170,3171,5,3267,3268,7,3330,3331,7,3406,3406,1,3538,3540,5,3655,3662,5,3897,3897,5,4038,4038,5,4184,4185,5,4352,4447,8,6068,6069,5,6155,6157,5,6448,6449,7,6742,6742,5,6783,6783,5,6966,6970,5,7042,7042,7,7143,7143,7,7212,7219,5,7412,7412,5,8206,8207,4,8294,8303,4,8596,8601,14,9410,9410,14,9742,9742,14,9757,9757,14,9770,9770,14,9794,9794,14,9828,9828,14,9855,9855,14,9882,9882,14,9900,9903,14,9929,9933,14,9963,9967,14,9987,9988,14,10006,10006,14,10062,10062,14,10175,10175,14,11744,11775,5,42607,42607,5,43043,43044,7,43263,43263,5,43444,43445,7,43569,43570,5,43698,43700,5,43766,43766,5,44032,44032,11,44144,44144,11,44256,44256,11,44368,44368,11,44480,44480,11,44592,44592,11,44704,44704,11,44816,44816,11,44928,44928,11,45040,45040,11,45152,45152,11,45264,45264,11,45376,45376,11,45488,45488,11,45600,45600,11,45712,45712,11,45824,45824,11,45936,45936,11,46048,46048,11,46160,46160,11,46272,46272,11,46384,46384,11,46496,46496,11,46608,46608,11,46720,46720,11,46832,46832,11,46944,46944,11,47056,47056,11,47168,47168,11,47280,47280,11,47392,47392,11,47504,47504,11,47616,47616,11,47728,47728,11,47840,47840,11,47952,47952,11,48064,48064,11,48176,48176,11,48288,48288,11,48400,48400,11,48512,48512,11,48624,48624,11,48736,48736,11,48848,48848,11,48960,48960,11,49072,49072,11,49184,49184,11,49296,49296,11,49408,49408,11,49520,49520,11,49632,49632,11,49744,49744,11,49856,49856,11,49968,49968,11,50080,50080,11,50192,50192,11,50304,50304,11,50416,50416,11,50528,50528,11,50640,50640,11,50752,50752,11,50864,50864,11,50976,50976,11,51088,51088,11,51200,51200,11,51312,51312,11,51424,51424,11,51536,51536,11,51648,51648,11,51760,51760,11,51872,51872,11,51984,51984,11,52096,52096,11,52208,52208,11,52320,52320,11,52432,52432,11,52544,52544,11,52656,52656,11,52768,52768,11,52880,52880,11,52992,52992,11,53104,53104,11,53216,53216,11,53328,53328,11,53440,53440,11,53552,53552,11,53664,53664,11,53776,53776,11,53888,53888,11,54000,54000,11,54112,54112,11,54224,54224,11,54336,54336,11,54448,54448,11,54560,54560,11,54672,54672,11,54784,54784,11,54896,54896,11,55008,55008,11,55120,55120,11,64286,64286,5,66272,66272,5,68900,68903,5,69762,69762,7,69817,69818,5,69927,69931,5,70003,70003,5,70070,70078,5,70094,70094,7,70194,70195,7,70206,70206,5,70400,70401,5,70463,70463,7,70475,70477,7,70512,70516,5,70722,70724,5,70832,70832,5,70842,70842,5,70847,70848,5,71088,71089,7,71102,71102,7,71219,71226,5,71231,71232,5,71342,71343,7,71453,71455,5,71463,71467,5,71737,71738,5,71995,71996,5,72000,72000,7,72145,72147,7,72160,72160,5,72249,72249,7,72273,72278,5,72330,72342,5,72752,72758,5,72850,72871,5,72882,72883,5,73018,73018,5,73031,73031,5,73109,73109,5,73461,73462,7,94031,94031,5,94192,94193,7,119142,119142,7,119155,119162,4,119362,119364,5,121476,121476,5,122888,122904,5,123184,123190,5,126976,126979,14,127184,127231,14,127344,127345,14,127405,127461,14,127514,127514,14,127561,127567,14,127778,127779,14,127896,127896,14,127985,127986,14,127995,127999,5,128326,128328,14,128360,128366,14,128378,128378,14,128394,128397,14,128405,128406,14,128422,128423,14,128435,128443,14,128453,128464,14,128479,128480,14,128484,128487,14,128496,128498,14,128640,128709,14,128723,128724,14,128736,128741,14,128747,128748,14,128755,128755,14,128762,128762,14,128981,128991,14,129096,129103,14,129292,129292,14,129311,129311,14,129329,129330,14,129344,129349,14,129360,129374,14,129394,129394,14,129402,129402,14,129413,129425,14,129445,129450,14,129466,129471,14,129483,129483,14,129511,129535,14,129653,129655,14,129667,129670,14,129705,129711,14,129731,129743,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,2307,2307,7,2366,2368,7,2382,2383,7,2434,2435,7,2497,2500,5,2519,2519,5,2563,2563,7,2631,2632,5,2677,2677,5,2750,2752,7,2763,2764,7,2817,2817,5,2879,2879,5,2891,2892,7,2914,2915,5,3008,3008,5,3021,3021,5,3076,3076,5,3146,3149,5,3202,3203,7,3264,3265,7,3271,3272,7,3298,3299,5,3390,3390,5,3402,3404,7,3426,3427,5,3535,3535,5,3544,3550,7,3635,3635,7,3763,3763,7,3893,3893,5,3953,3966,5,3981,3991,5,4145,4145,7,4157,4158,5,4209,4212,5,4237,4237,5,4520,4607,10,5970,5971,5,6071,6077,5,6089,6099,5,6277,6278,5,6439,6440,5,6451,6456,7,6683,6683,5,6744,6750,5,6765,6770,7,6846,6846,5,6964,6964,5,6972,6972,5,7019,7027,5,7074,7077,5,7083,7085,5,7146,7148,7,7154,7155,7,7222,7223,5,7394,7400,5,7416,7417,5,8204,8204,5,8233,8233,4,8288,8292,4,8413,8416,5,8482,8482,14,8986,8987,14,9193,9203,14,9654,9654,14,9733,9733,14,9745,9745,14,9752,9752,14,9760,9760,14,9766,9766,14,9774,9775,14,9792,9792,14,9800,9811,14,9825,9826,14,9831,9831,14,9852,9853,14,9872,9873,14,9880,9880,14,9885,9887,14,9896,9897,14,9906,9916,14,9926,9927,14,9936,9936,14,9941,9960,14,9974,9974,14,9982,9985,14,9992,9997,14,10002,10002,14,10017,10017,14,10055,10055,14,10071,10071,14,10145,10145,14,11013,11015,14,11503,11505,5,12334,12335,5,12951,12951,14,42612,42621,5,43014,43014,5,43047,43047,7,43204,43205,5,43335,43345,5,43395,43395,7,43450,43451,7,43561,43566,5,43573,43574,5,43644,43644,5,43710,43711,5,43758,43759,7,44005,44005,5,44012,44012,7,44060,44060,11,44116,44116,11,44172,44172,11,44228,44228,11,44284,44284,11,44340,44340,11,44396,44396,11,44452,44452,11,44508,44508,11,44564,44564,11,44620,44620,11,44676,44676,11,44732,44732,11,44788,44788,11,44844,44844,11,44900,44900,11,44956,44956,11,45012,45012,11,45068,45068,11,45124,45124,11,45180,45180,11,45236,45236,11,45292,45292,11,45348,45348,11,45404,45404,11,45460,45460,11,45516,45516,11,45572,45572,11,45628,45628,11,45684,45684,11,45740,45740,11,45796,45796,11,45852,45852,11,45908,45908,11,45964,45964,11,46020,46020,11,46076,46076,11,46132,46132,11,46188,46188,11,46244,46244,11,46300,46300,11,46356,46356,11,46412,46412,11,46468,46468,11,46524,46524,11,46580,46580,11,46636,46636,11,46692,46692,11,46748,46748,11,46804,46804,11,46860,46860,11,46916,46916,11,46972,46972,11,47028,47028,11,47084,47084,11,47140,47140,11,47196,47196,11,47252,47252,11,47308,47308,11,47364,47364,11,47420,47420,11,47476,47476,11,47532,47532,11,47588,47588,11,47644,47644,11,47700,47700,11,47756,47756,11,47812,47812,11,47868,47868,11,47924,47924,11,47980,47980,11,48036,48036,11,48092,48092,11,48148,48148,11,48204,48204,11,48260,48260,11,48316,48316,11,48372,48372,11,48428,48428,11,48484,48484,11,48540,48540,11,48596,48596,11,48652,48652,11,48708,48708,11,48764,48764,11,48820,48820,11,48876,48876,11,48932,48932,11,48988,48988,11,49044,49044,11,49100,49100,11,49156,49156,11,49212,49212,11,49268,49268,11,49324,49324,11,49380,49380,11,49436,49436,11,49492,49492,11,49548,49548,11,49604,49604,11,49660,49660,11,49716,49716,11,49772,49772,11,49828,49828,11,49884,49884,11,49940,49940,11,49996,49996,11,50052,50052,11,50108,50108,11,50164,50164,11,50220,50220,11,50276,50276,11,50332,50332,11,50388,50388,11,50444,50444,11,50500,50500,11,50556,50556,11,50612,50612,11,50668,50668,11,50724,50724,11,50780,50780,11,50836,50836,11,50892,50892,11,50948,50948,11,51004,51004,11,51060,51060,11,51116,51116,11,51172,51172,11,51228,51228,11,51284,51284,11,51340,51340,11,51396,51396,11,51452,51452,11,51508,51508,11,51564,51564,11,51620,51620,11,51676,51676,11,51732,51732,11,51788,51788,11,51844,51844,11,51900,51900,11,51956,51956,11,52012,52012,11,52068,52068,11,52124,52124,11,52180,52180,11,52236,52236,11,52292,52292,11,52348,52348,11,52404,52404,11,52460,52460,11,52516,52516,11,52572,52572,11,52628,52628,11,52684,52684,11,52740,52740,11,52796,52796,11,52852,52852,11,52908,52908,11,52964,52964,11,53020,53020,11,53076,53076,11,53132,53132,11,53188,53188,11,53244,53244,11,53300,53300,11,53356,53356,11,53412,53412,11,53468,53468,11,53524,53524,11,53580,53580,11,53636,53636,11,53692,53692,11,53748,53748,11,53804,53804,11,53860,53860,11,53916,53916,11,53972,53972,11,54028,54028,11,54084,54084,11,54140,54140,11,54196,54196,11,54252,54252,11,54308,54308,11,54364,54364,11,54420,54420,11,54476,54476,11,54532,54532,11,54588,54588,11,54644,54644,11,54700,54700,11,54756,54756,11,54812,54812,11,54868,54868,11,54924,54924,11,54980,54980,11,55036,55036,11,55092,55092,11,55148,55148,11,55216,55238,9,65056,65071,5,65529,65531,4,68097,68099,5,68159,68159,5,69446,69456,5,69688,69702,5,69808,69810,7,69815,69816,7,69821,69821,1,69888,69890,5,69932,69932,7,69957,69958,7,70016,70017,5,70067,70069,7,70079,70080,7,70089,70092,5,70095,70095,5,70191,70193,5,70196,70196,5,70198,70199,5,70367,70367,5,70371,70378,5,70402,70403,7,70462,70462,5,70464,70464,5,70471,70472,7,70487,70487,5,70502,70508,5,70709,70711,7,70720,70721,7,70725,70725,7,70750,70750,5,70833,70834,7,70841,70841,7,70843,70844,7,70846,70846,7,70849,70849,7,71087,71087,5,71090,71093,5,71100,71101,5,71103,71104,5,71216,71218,7,71227,71228,7,71230,71230,7,71339,71339,5,71341,71341,5,71344,71349,5,71351,71351,5,71456,71457,7,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,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,123628,123631,5,125252,125258,5,126980,126980,14,127183,127183,14,127245,127247,14,127340,127343,14,127358,127359,14,127377,127386,14,127462,127487,6,127491,127503,14,127535,127535,14,127548,127551,14,127568,127569,14,127744,127777,14,127780,127891,14,127894,127895,14,127897,127899,14,127902,127984,14,127987,127989,14,127991,127994,14,128000,128253,14,128255,128317,14,128329,128334,14,128336,128359,14,128367,128368,14,128371,128377,14,128379,128390,14,128392,128393,14,128398,128399,14,128401,128404,14,128407,128419,14,128421,128421,14,128424,128424,14,128433,128434,14,128444,128444,14,128450,128452,14,128465,128467,14,128476,128478,14,128481,128481,14,128483,128483,14,128488,128488,14,128495,128495,14,128499,128499,14,128506,128591,14,128710,128714,14,128721,128722,14,128725,128725,14,128728,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,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,129664,129666,14,129671,129679,14,129686,129704,14,129712,129718,14,129728,129730,14,129744,129750,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,2259,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,3134,3136,5,3142,3144,5,3157,3158,5,3201,3201,5,3260,3260,5,3263,3263,5,3266,3266,5,3270,3270,5,3274,3275,7,3285,3286,5,3328,3329,5,3387,3388,5,3391,3392,7,3398,3400,7,3405,3405,5,3415,3415,5,3457,3457,5,3530,3530,5,3536,3537,7,3542,3542,5,3551,3551,5,3633,3633,5,3636,3642,5,3761,3761,5,3764,3772,5,3864,3865,5,3895,3895,5,3902,3903,7,3967,3967,7,3974,3975,5,3993,4028,5,4141,4144,5,4146,4151,5,4155,4156,7,4182,4183,7,4190,4192,5,4226,4226,5,4229,4230,5,4253,4253,5,4448,4519,9,4957,4959,5,5938,5940,5,6002,6003,5,6070,6070,7,6078,6085,7,6087,6088,7,6109,6109,5,6158,6158,4,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,6848,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,7673,5,8203,8203,4,8205,8205,13,8232,8232,4,8234,8238,4,8265,8265,14,8293,8293,4,8400,8412,5,8417,8417,5,8421,8432,5,8505,8505,14,8617,8618,14,9000,9000,14,9167,9167,14,9208,9210,14,9642,9643,14,9664,9664,14,9728,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,9776,9783,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,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,9935,14,9937,9937,14,9939,9940,14,9961,9962,14,9968,9973,14,9975,9978,14,9981,9981,14,9986,9986,14,9989,9989,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,10084,14,10133,10135,14,10160,10160,14,10548,10549,14,11035,11036,14,11093,11093,14,11647,11647,5,12330,12333,5,12336,12336,14,12441,12442,5,12953,12953,14,42608,42610,5,42654,42655,5,43010,43010,5,43019,43019,5,43045,43046,5,43052,43052,5,43188,43203,7,43232,43249,5,43302,43309,5,43346,43347,7,43392,43394,5,43443,43443,5,43446,43449,5,43452,43453,5,43493,43493,5,43567,43568,7,43571,43572,7,43587,43587,5,43597,43597,7,43696,43696,5,43703,43704,5,43713,43713,5,43756,43757,5,43765,43765,7,44003,44004,7,44006,44007,7,44009,44010,7,44013,44013,5,44033,44059,12,44061,44087,12,44089,44115,12,44117,44143,12,44145,44171,12,44173,44199,12,44201,44227,12,44229,44255,12,44257,44283,12,44285,44311,12,44313,44339,12,44341,44367,12,44369,44395,12,44397,44423,12,44425,44451,12,44453,44479,12,44481,44507,12,44509,44535,12,44537,44563,12,44565,44591,12,44593,44619,12,44621,44647,12,44649,44675,12,44677,44703,12,44705,44731,12,44733,44759,12,44761,44787,12,44789,44815,12,44817,44843,12,44845,44871,12,44873,44899,12,44901,44927,12,44929,44955,12,44957,44983,12,44985,45011,12,45013,45039,12,45041,45067,12,45069,45095,12,45097,45123,12,45125,45151,12,45153,45179,12,45181,45207,12,45209,45235,12,45237,45263,12,45265,45291,12,45293,45319,12,45321,45347,12,45349,45375,12,45377,45403,12,45405,45431,12,45433,45459,12,45461,45487,12,45489,45515,12,45517,45543,12,45545,45571,12,45573,45599,12,45601,45627,12,45629,45655,12,45657,45683,12,45685,45711,12,45713,45739,12,45741,45767,12,45769,45795,12,45797,45823,12,45825,45851,12,45853,45879,12,45881,45907,12,45909,45935,12,45937,45963,12,45965,45991,12,45993,46019,12,46021,46047,12,46049,46075,12,46077,46103,12,46105,46131,12,46133,46159,12,46161,46187,12,46189,46215,12,46217,46243,12,46245,46271,12,46273,46299,12,46301,46327,12,46329,46355,12,46357,46383,12,46385,46411,12,46413,46439,12,46441,46467,12,46469,46495,12,46497,46523,12,46525,46551,12,46553,46579,12,46581,46607,12,46609,46635,12,46637,46663,12,46665,46691,12,46693,46719,12,46721,46747,12,46749,46775,12,46777,46803,12,46805,46831,12,46833,46859,12,46861,46887,12,46889,46915,12,46917,46943,12,46945,46971,12,46973,46999,12,47001,47027,12,47029,47055,12,47057,47083,12,47085,47111,12,47113,47139,12,47141,47167,12,47169,47195,12,47197,47223,12,47225,47251,12,47253,47279,12,47281,47307,12,47309,47335,12,47337,47363,12,47365,47391,12,47393,47419,12,47421,47447,12,47449,47475,12,47477,47503,12,47505,47531,12,47533,47559,12,47561,47587,12,47589,47615,12,47617,47643,12,47645,47671,12,47673,47699,12,47701,47727,12,47729,47755,12,47757,47783,12,47785,47811,12,47813,47839,12,47841,47867,12,47869,47895,12,47897,47923,12,47925,47951,12,47953,47979,12,47981,48007,12,48009,48035,12,48037,48063,12,48065,48091,12,48093,48119,12,48121,48147,12,48149,48175,12,48177,48203,12,48205,48231,12,48233,48259,12,48261,48287,12,48289,48315,12,48317,48343,12,48345,48371,12,48373,48399,12,48401,48427,12,48429,48455,12,48457,48483,12,48485,48511,12,48513,48539,12,48541,48567,12,48569,48595,12,48597,48623,12,48625,48651,12,48653,48679,12,48681,48707,12,48709,48735,12,48737,48763,12,48765,48791,12,48793,48819,12,48821,48847,12,48849,48875,12,48877,48903,12,48905,48931,12,48933,48959,12,48961,48987,12,48989,49015,12,49017,49043,12,49045,49071,12,49073,49099,12,49101,49127,12,49129,49155,12,49157,49183,12,49185,49211,12,49213,49239,12,49241,49267,12,49269,49295,12,49297,49323,12,49325,49351,12,49353,49379,12,49381,49407,12,49409,49435,12,49437,49463,12,49465,49491,12,49493,49519,12,49521,49547,12,49549,49575,12,49577,49603,12,49605,49631,12,49633,49659,12,49661,49687,12,49689,49715,12,49717,49743,12,49745,49771,12,49773,49799,12,49801,49827,12,49829,49855,12,49857,49883,12,49885,49911,12,49913,49939,12,49941,49967,12,49969,49995,12,49997,50023,12,50025,50051,12,50053,50079,12,50081,50107,12,50109,50135,12,50137,50163,12,50165,50191,12,50193,50219,12,50221,50247,12,50249,50275,12,50277,50303,12,50305,50331,12,50333,50359,12,50361,50387,12,50389,50415,12,50417,50443,12,50445,50471,12,50473,50499,12,50501,50527,12,50529,50555,12,50557,50583,12,50585,50611,12,50613,50639,12,50641,50667,12,50669,50695,12,50697,50723,12,50725,50751,12,50753,50779,12,50781,50807,12,50809,50835,12,50837,50863,12,50865,50891,12,50893,50919,12,50921,50947,12,50949,50975,12,50977,51003,12,51005,51031,12,51033,51059,12,51061,51087,12,51089,51115,12,51117,51143,12,51145,51171,12,51173,51199,12,51201,51227,12,51229,51255,12,51257,51283,12,51285,51311,12,51313,51339,12,51341,51367,12,51369,51395,12,51397,51423,12,51425,51451,12,51453,51479,12,51481,51507,12,51509,51535,12,51537,51563,12,51565,51591,12,51593,51619,12,51621,51647,12,51649,51675,12,51677,51703,12,51705,51731,12,51733,51759,12,51761,51787,12,51789,51815,12,51817,51843,12,51845,51871,12,51873,51899,12,51901,51927,12,51929,51955,12,51957,51983,12,51985,52011,12,52013,52039,12,52041,52067,12,52069,52095,12,52097,52123,12,52125,52151,12,52153,52179,12,52181,52207,12,52209,52235,12,52237,52263,12,52265,52291,12,52293,52319,12,52321,52347,12,52349,52375,12,52377,52403,12,52405,52431,12,52433,52459,12,52461,52487,12,52489,52515,12,52517,52543,12,52545,52571,12,52573,52599,12,52601,52627,12,52629,52655,12,52657,52683,12,52685,52711,12,52713,52739,12,52741,52767,12,52769,52795,12,52797,52823,12,52825,52851,12,52853,52879,12,52881,52907,12,52909,52935,12,52937,52963,12,52965,52991,12,52993,53019,12,53021,53047,12,53049,53075,12,53077,53103,12,53105,53131,12,53133,53159,12,53161,53187,12,53189,53215,12,53217,53243,12,53245,53271,12,53273,53299,12,53301,53327,12,53329,53355,12,53357,53383,12,53385,53411,12,53413,53439,12,53441,53467,12,53469,53495,12,53497,53523,12,53525,53551,12,53553,53579,12,53581,53607,12,53609,53635,12,53637,53663,12,53665,53691,12,53693,53719,12,53721,53747,12,53749,53775,12,53777,53803,12,53805,53831,12,53833,53859,12,53861,53887,12,53889,53915,12,53917,53943,12,53945,53971,12,53973,53999,12,54001,54027,12,54029,54055,12,54057,54083,12,54085,54111,12,54113,54139,12,54141,54167,12,54169,54195,12,54197,54223,12,54225,54251,12,54253,54279,12,54281,54307,12,54309,54335,12,54337,54363,12,54365,54391,12,54393,54419,12,54421,54447,12,54449,54475,12,54477,54503,12,54505,54531,12,54533,54559,12,54561,54587,12,54589,54615,12,54617,54643,12,54645,54671,12,54673,54699,12,54701,54727,12,54729,54755,12,54757,54783,12,54785,54811,12,54813,54839,12,54841,54867,12,54869,54895,12,54897,54923,12,54925,54951,12,54953,54979,12,54981,55007,12,55009,55035,12,55037,55063,12,55065,55091,12,55093,55119,12,55121,55147,12,55149,55175,12,55177,55203,12,55243,55291,10,65024,65039,5,65279,65279,4,65520,65528,4,66045,66045,5,66422,66426,5,68101,68102,5,68152,68154,5,68325,68326,5,69291,69292,5,69632,69632,7,69634,69634,7,69759,69761,5]\")\n        }\n        static getInstance() {\n            return Q._INSTANCE || (Q._INSTANCE = new Q), Q._INSTANCE\n        }\n        getGraphemeBreakType(e) {\n            if (e < 32) return 10 === e ? 3 : 13 === e ? 2 : 4;\n            if (e < 127) return 0;\n            var t = this._data,\n                i = t.length / 3;\n            let n = 1;\n            for (; n <= i;)\n                if (e < t[3 * n]) n *= 2;\n                else {\n                    if (!(e > t[3 * n + 1])) return t[3 * n + 2];\n                    n = 2 * n + 1\n                } return 0\n        }\n    }\n\n    function J(e, t) {\n        if (0 === e) return 0;\n        var i = function(e, t) {\n            let i = T(t, e);\n            for (e -= ee(i);\n\n                function(e) {\n                    return 127995 <= e && e <= 127999\n                }(i) || 65039 === i || 8419 === i;) {\n                if (0 === e) return;\n                i = T(t, e), e -= ee(i)\n            }\n            var n;\n            if (K(i)) return 0 <= e && 8205 === (n = T(t, e)) && (e -= ee(n)), e\n        }(e, t);\n        return void 0 !== i ? i : e -= ee(T(t, e))\n    }\n\n    function ee(e) {\n        return 65536 <= e ? 2 : 1\n    }\n    Q._INSTANCE = null\n}, function(e, t, i) {\n    \"use strict\";\n    i.d(t, \"a\", (function() {\n        return c\n    })), i.d(t, \"dc\", (function() {\n        return u\n    })), i.d(t, \"R\", (function() {\n        return g\n    })), i.d(t, \"S\", (function() {\n        return f\n    })), i.d(t, \"h\", (function() {\n        return m\n    })), i.d(t, \"b\", (function() {\n        return v\n    })), i.d(t, \"mc\", (function() {\n        return b\n    })), i.d(t, \"W\", (function() {\n        return _\n    })), i.d(t, \"Y\", (function() {\n        return w\n    })), i.d(t, \"X\", (function() {\n        return y\n    })), i.d(t, \"U\", (function() {\n        return C\n    })), i.d(t, \"T\", (function() {\n        return x\n    })), i.d(t, \"V\", (function() {\n        return S\n    })), i.d(t, \"cb\", (function() {\n        return k\n    })), i.d(t, \"eb\", (function() {\n        return L\n    })), i.d(t, \"db\", (function() {\n        return O\n    })), i.d(t, \"fb\", (function() {\n        return E\n    })), i.d(t, \"hb\", (function() {\n        return N\n    })), i.d(t, \"gb\", (function() {\n        return D\n    })), i.d(t, \"Z\", (function() {\n        return I\n    })), i.d(t, \"bb\", (function() {\n        return T\n    })), i.d(t, \"ab\", (function() {\n        return M\n    })), i.d(t, \"f\", (function() {\n        return R\n    })), i.d(t, \"e\", (function() {\n        return F\n    })), i.d(t, \"g\", (function() {\n        return j\n    })), i.d(t, \"c\", (function() {\n        return B\n    })), i.d(t, \"d\", (function() {\n        return V\n    })), i.d(t, \"fc\", (function() {\n        return W\n    })), i.d(t, \"hc\", (function() {\n        return z\n    })), i.d(t, \"ic\", (function() {\n        return H\n    })), i.d(t, \"gc\", (function() {\n        return U\n    })), i.d(t, \"Wb\", (function() {\n        return K\n    })), i.d(t, \"r\", (function() {\n        return $\n    })), i.d(t, \"t\", (function() {\n        return q\n    })), i.d(t, \"s\", (function() {\n        return G\n    })), i.d(t, \"K\", (function() {\n        return Y\n    })), i.d(t, \"M\", (function() {\n        return Z\n    })), i.d(t, \"L\", (function() {\n        return X\n    })), i.d(t, \"E\", (function() {\n        return Q\n    })), i.d(t, \"G\", (function() {\n        return J\n    })), i.d(t, \"F\", (function() {\n        return ee\n    })), i.d(t, \"C\", (function() {\n        return te\n    })), i.d(t, \"B\", (function() {\n        return ie\n    })), i.d(t, \"q\", (function() {\n        return ne\n    })), i.d(t, \"A\", (function() {\n        return re\n    })), i.d(t, \"N\", (function() {\n        return oe\n    })), i.d(t, \"P\", (function() {\n        return se\n    })), i.d(t, \"O\", (function() {\n        return ae\n    })), i.d(t, \"Q\", (function() {\n        return le\n    })), i.d(t, \"Xb\", (function() {\n        return de\n    })), i.d(t, \"Yb\", (function() {\n        return ce\n    })), i.d(t, \"cc\", (function() {\n        return he\n    })), i.d(t, \"Vb\", (function() {\n        return ue\n    })), i.d(t, \"Ub\", (function() {\n        return pe\n    })), i.d(t, \"ib\", (function() {\n        return ge\n    })), i.d(t, \"lb\", (function() {\n        return fe\n    })), i.d(t, \"jb\", (function() {\n        return me\n    })), i.d(t, \"kb\", (function() {\n        return ve\n    })), i.d(t, \"H\", (function() {\n        return be\n    })), i.d(t, \"I\", (function() {\n        return _e\n    })), i.d(t, \"D\", (function() {\n        return we\n    })), i.d(t, \"J\", (function() {\n        return ye\n    })), i.d(t, \"u\", (function() {\n        return Ce\n    })), i.d(t, \"w\", (function() {\n        return xe\n    })), i.d(t, \"y\", (function() {\n        return Se\n    })), i.d(t, \"v\", (function() {\n        return ke\n    })), i.d(t, \"x\", (function() {\n        return Le\n    })), i.d(t, \"z\", (function() {\n        return Oe\n    })), i.d(t, \"i\", (function() {\n        return Ee\n    })), i.d(t, \"j\", (function() {\n        return Ne\n    })), i.d(t, \"m\", (function() {\n        return De\n    })), i.d(t, \"o\", (function() {\n        return Ie\n    })), i.d(t, \"n\", (function() {\n        return Te\n    })), i.d(t, \"p\", (function() {\n        return Me\n    })), i.d(t, \"k\", (function() {\n        return Pe\n    })), i.d(t, \"l\", (function() {\n        return Ae\n    })), i.d(t, \"tb\", (function() {\n        return Re\n    })), i.d(t, \"ub\", (function() {\n        return Fe\n    })), i.d(t, \"vb\", (function() {\n        return je\n    })), i.d(t, \"mb\", (function() {\n        return Be\n    })), i.d(t, \"nb\", (function() {\n        return Ve\n    })), i.d(t, \"ob\", (function() {\n        return We\n    })), i.d(t, \"Ab\", (function() {\n        return ze\n    })), i.d(t, \"Bb\", (function() {\n        return He\n    })), i.d(t, \"Cb\", (function() {\n        return Ue\n    })), i.d(t, \"yb\", (function() {\n        return Ke\n    })), i.d(t, \"zb\", (function() {\n        return $e\n    })), i.d(t, \"wb\", (function() {\n        return qe\n    })), i.d(t, \"xb\", (function() {\n        return Ge\n    })), i.d(t, \"pb\", (function() {\n        return Ye\n    })), i.d(t, \"qb\", (function() {\n        return Ze\n    })), i.d(t, \"sb\", (function() {\n        return Xe\n    })), i.d(t, \"rb\", (function() {\n        return Qe\n    })), i.d(t, \"lc\", (function() {\n        return Je\n    })), i.d(t, \"jc\", (function() {\n        return et\n    })), i.d(t, \"ac\", (function() {\n        return tt\n    })), i.d(t, \"bc\", (function() {\n        return it\n    })), i.d(t, \"Zb\", (function() {\n        return nt\n    })), i.d(t, \"Eb\", (function() {\n        return rt\n    })), i.d(t, \"Fb\", (function() {\n        return ot\n    })), i.d(t, \"Db\", (function() {\n        return st\n    })), i.d(t, \"Ib\", (function() {\n        return at\n    })), i.d(t, \"Gb\", (function() {\n        return lt\n    })), i.d(t, \"Hb\", (function() {\n        return dt\n    })), i.d(t, \"Jb\", (function() {\n        return ct\n    })), i.d(t, \"kc\", (function() {\n        return ht\n    })), i.d(t, \"Tb\", (function() {\n        return ut\n    })), i.d(t, \"Mb\", (function() {\n        return pt\n    })), i.d(t, \"Ob\", (function() {\n        return gt\n    })), i.d(t, \"Lb\", (function() {\n        return ft\n    })), i.d(t, \"Sb\", (function() {\n        return mt\n    })), i.d(t, \"Kb\", (function() {\n        return vt\n    })), i.d(t, \"Nb\", (function() {\n        return bt\n    })), i.d(t, \"Qb\", (function() {\n        return _t\n    })), i.d(t, \"Rb\", (function() {\n        return wt\n    })), i.d(t, \"Pb\", (function() {\n        return yt\n    })), i.d(t, \"ec\", (function() {\n        return Ot\n    }));\n    var n = i(32),\n        r = i(11),\n        o = i(2),\n        s = i(17),\n        a = i(0),\n        l = i(148),\n        d = i(58);\n    const c = {\n            ColorContribution: \"base.contributions.colors\"\n        },\n        h = new class {\n            constructor() {\n                this._onDidChangeSchema = new o.b, this.onDidChangeSchema = this._onDidChangeSchema.event, this.colorSchema = {\n                    type: \"object\",\n                    properties: {}\n                }, this.colorReferenceSchema = {\n                    type: \"string\",\n                    enum: [],\n                    enumDescriptions: []\n                }, this.colorsById = {}\n            }\n            registerColor(e, t, i, n = !1, r) {\n                this.colorsById[e] = {\n                    id: e,\n                    description: i,\n                    defaults: t,\n                    needsTransparency: n,\n                    deprecationMessage: r\n                };\n                let o = {\n                    type: \"string\",\n                    description: i,\n                    format: \"color-hex\",\n                    defaultSnippets: [{\n                        body: \"${1:#ff0000}\"\n                    }]\n                };\n                return r && (o.deprecationMessage = r), this.colorSchema.properties[e] = o, this.colorReferenceSchema.enum.push(e), this.colorReferenceSchema.enumDescriptions.push(i), this._onDidChangeSchema.fire(), e\n            }\n            resolveDefaultColor(e, t) {\n                if ((e = this.colorsById[e]) && e.defaults) return Ot(e.defaults[t.type], t)\n            }\n            getColorSchema() {\n                return this.colorSchema\n            }\n            toString() {\n                return Object.keys(this.colorsById).sort((e, t) => {\n                    var i = -1 === e.indexOf(\".\") ? 0 : 1,\n                        n = -1 === t.indexOf(\".\") ? 0 : 1;\n                    return i != n ? i - n : e.localeCompare(t)\n                }).map(e => `- \\`${e}\\`: ${this.colorsById[e].description}`).join(\"\\n\")\n            }\n        };\n\n    function u(e, t, i, n, r) {\n        return h.registerColor(e, t, i, n, r)\n    }\n    d.a.add(c.ColorContribution, h);\n    var p = u(\"foreground\", {\n        dark: \"#CCCCCC\",\n        light: \"#616161\",\n        hc: \"#FFFFFF\"\n    }, a.a(\"foreground\", \"Overall foreground color. This color is only used if not overridden by a component.\"));\n    const g = u(\"errorForeground\", {\n        dark: \"#F48771\",\n        light: \"#A1260D\",\n        hc: \"#F48771\"\n    }, a.a(\"errorForeground\", \"Overall foreground color for error messages. This color is only used if not overridden by a component.\"));\n    u(\"icon.foreground\", {\n        dark: \"#C5C5C5\",\n        light: \"#424242\",\n        hc: \"#FFFFFF\"\n    }, a.a(\"iconForeground\", \"The default color for icons in the workbench.\"));\n    const f = u(\"focusBorder\", {\n            dark: \"#007FD4\",\n            light: \"#0090F1\",\n            hc: \"#F38518\"\n        }, a.a(\"focusBorder\", \"Overall border color for focused elements. This color is only used if not overridden by a component.\")),\n        m = u(\"contrastBorder\", {\n            light: null,\n            dark: null,\n            hc: \"#6FC3DF\"\n        }, a.a(\"contrastBorder\", \"An extra border around elements to separate them from others for greater contrast.\")),\n        v = u(\"contrastActiveBorder\", {\n            light: null,\n            dark: null,\n            hc: f\n        }, a.a(\"activeContrastBorder\", \"An extra border around active elements to separate them from others for greater contrast.\"));\n    u(\"textLink.foreground\", {\n        light: \"#006AB1\",\n        dark: \"#3794FF\",\n        hc: \"#3794FF\"\n    }, a.a(\"textLinkForeground\", \"Foreground color for links in text.\")), u(\"textLink.activeForeground\", {\n        light: \"#006AB1\",\n        dark: \"#3794FF\",\n        hc: \"#3794FF\"\n    }, a.a(\"textLinkActiveForeground\", \"Foreground color for links in text when clicked on and on mouse hover.\")), u(\"textCodeBlock.background\", {\n        light: \"#dcdcdc66\",\n        dark: \"#0a0a0a66\",\n        hc: r.a.black\n    }, a.a(\"textCodeBlockBackground\", \"Background color for code blocks in text.\"));\n    const b = u(\"widget.shadow\", {\n            dark: St(r.a.black, .36),\n            light: St(r.a.black, .16),\n            hc: null\n        }, a.a(\"widgetShadow\", \"Shadow color of widgets such as find/replace inside the editor.\")),\n        _ = u(\"input.background\", {\n            dark: \"#3C3C3C\",\n            light: r.a.white,\n            hc: r.a.black\n        }, a.a(\"inputBoxBackground\", \"Input box background.\")),\n        w = u(\"input.foreground\", {\n            dark: p,\n            light: p,\n            hc: p\n        }, a.a(\"inputBoxForeground\", \"Input box foreground.\")),\n        y = u(\"input.border\", {\n            dark: null,\n            light: null,\n            hc: m\n        }, a.a(\"inputBoxBorder\", \"Input box border.\")),\n        C = u(\"inputOption.activeBorder\", {\n            dark: \"#007ACC00\",\n            light: \"#007ACC00\",\n            hc: m\n        }, a.a(\"inputBoxActiveOptionBorder\", \"Border color of activated options in input fields.\")),\n        x = u(\"inputOption.activeBackground\", {\n            dark: St(f, .4),\n            light: St(f, .2),\n            hc: r.a.transparent\n        }, a.a(\"inputOption.activeBackground\", \"Background color of activated options in input fields.\")),\n        S = u(\"inputOption.activeForeground\", {\n            dark: r.a.white,\n            light: r.a.black,\n            hc: null\n        }, a.a(\"inputOption.activeForeground\", \"Foreground color of activated options in input fields.\")),\n        k = u(\"inputValidation.infoBackground\", {\n            dark: \"#063B49\",\n            light: \"#D6ECF2\",\n            hc: r.a.black\n        }, a.a(\"inputValidationInfoBackground\", \"Input validation background color for information severity.\")),\n        L = u(\"inputValidation.infoForeground\", {\n            dark: null,\n            light: null,\n            hc: null\n        }, a.a(\"inputValidationInfoForeground\", \"Input validation foreground color for information severity.\")),\n        O = u(\"inputValidation.infoBorder\", {\n            dark: \"#007acc\",\n            light: \"#007acc\",\n            hc: m\n        }, a.a(\"inputValidationInfoBorder\", \"Input validation border color for information severity.\")),\n        E = u(\"inputValidation.warningBackground\", {\n            dark: \"#352A05\",\n            light: \"#F6F5D2\",\n            hc: r.a.black\n        }, a.a(\"inputValidationWarningBackground\", \"Input validation background color for warning severity.\")),\n        N = u(\"inputValidation.warningForeground\", {\n            dark: null,\n            light: null,\n            hc: null\n        }, a.a(\"inputValidationWarningForeground\", \"Input validation foreground color for warning severity.\")),\n        D = u(\"inputValidation.warningBorder\", {\n            dark: \"#B89500\",\n            light: \"#B89500\",\n            hc: m\n        }, a.a(\"inputValidationWarningBorder\", \"Input validation border color for warning severity.\")),\n        I = u(\"inputValidation.errorBackground\", {\n            dark: \"#5A1D1D\",\n            light: \"#F2DEDE\",\n            hc: r.a.black\n        }, a.a(\"inputValidationErrorBackground\", \"Input validation background color for error severity.\")),\n        T = u(\"inputValidation.errorForeground\", {\n            dark: null,\n            light: null,\n            hc: null\n        }, a.a(\"inputValidationErrorForeground\", \"Input validation foreground color for error severity.\")),\n        M = u(\"inputValidation.errorBorder\", {\n            dark: \"#BE1100\",\n            light: \"#BE1100\",\n            hc: m\n        }, a.a(\"inputValidationErrorBorder\", \"Input validation border color for error severity.\"));\n    var P = u(\"dropdown.background\", {\n            dark: \"#3C3C3C\",\n            light: r.a.white,\n            hc: r.a.black\n        }, a.a(\"dropdownBackground\", \"Dropdown background.\")),\n        A = u(\"dropdown.foreground\", {\n            dark: \"#F0F0F0\",\n            light: null,\n            hc: r.a.white\n        }, a.a(\"dropdownForeground\", \"Dropdown foreground.\"));\n    const R = u(\"button.foreground\", {\n            dark: r.a.white,\n            light: r.a.white,\n            hc: r.a.white\n        }, a.a(\"buttonForeground\", \"Button foreground color.\")),\n        F = u(\"button.background\", {\n            dark: \"#0E639C\",\n            light: \"#007ACC\",\n            hc: null\n        }, a.a(\"buttonBackground\", \"Button background color.\")),\n        j = u(\"button.hoverBackground\", {\n            dark: xt(F, .2),\n            light: Ct(F, .2),\n            hc: null\n        }, a.a(\"buttonHoverBackground\", \"Button background color when hovering.\")),\n        B = u(\"badge.background\", {\n            dark: \"#4D4D4D\",\n            light: \"#C4C4C4\",\n            hc: r.a.black\n        }, a.a(\"badgeBackground\", \"Badge background color. Badges are small information labels, e.g. for search results count.\")),\n        V = u(\"badge.foreground\", {\n            dark: r.a.white,\n            light: \"#333\",\n            hc: r.a.white\n        }, a.a(\"badgeForeground\", \"Badge foreground color. Badges are small information labels, e.g. for search results count.\")),\n        W = u(\"scrollbar.shadow\", {\n            dark: \"#000000\",\n            light: \"#DDDDDD\",\n            hc: null\n        }, a.a(\"scrollbarShadow\", \"Scrollbar shadow to indicate that the view is scrolled.\")),\n        z = u(\"scrollbarSlider.background\", {\n            dark: r.a.fromHex(\"#797979\").transparent(.4),\n            light: r.a.fromHex(\"#646464\").transparent(.4),\n            hc: St(m, .6)\n        }, a.a(\"scrollbarSliderBackground\", \"Scrollbar slider background color.\")),\n        H = u(\"scrollbarSlider.hoverBackground\", {\n            dark: r.a.fromHex(\"#646464\").transparent(.7),\n            light: r.a.fromHex(\"#646464\").transparent(.7),\n            hc: St(m, .8)\n        }, a.a(\"scrollbarSliderHoverBackground\", \"Scrollbar slider background color when hovering.\")),\n        U = u(\"scrollbarSlider.activeBackground\", {\n            dark: r.a.fromHex(\"#BFBFBF\").transparent(.4),\n            light: r.a.fromHex(\"#000000\").transparent(.6),\n            hc: m\n        }, a.a(\"scrollbarSliderActiveBackground\", \"Scrollbar slider background color when clicked on.\")),\n        K = u(\"progressBar.background\", {\n            dark: r.a.fromHex(\"#0E70C0\"),\n            light: r.a.fromHex(\"#0E70C0\"),\n            hc: m\n        }, a.a(\"progressBarBackground\", \"Background color of the progress bar that can show for long running operations.\")),\n        $ = u(\"editorError.background\", {\n            dark: null,\n            light: null,\n            hc: null\n        }, a.a(\"editorError.background\", \"Background color of error text in the editor. The color must not be opaque so as not to hide underlying decorations.\"), !0),\n        q = u(\"editorError.foreground\", {\n            dark: \"#F14C4C\",\n            light: \"#E51400\",\n            hc: null\n        }, a.a(\"editorError.foreground\", \"Foreground color of error squigglies in the editor.\")),\n        G = u(\"editorError.border\", {\n            dark: null,\n            light: null,\n            hc: r.a.fromHex(\"#E47777\").transparent(.8)\n        }, a.a(\"errorBorder\", \"Border color of error boxes in the editor.\")),\n        Y = u(\"editorWarning.background\", {\n            dark: null,\n            light: null,\n            hc: null\n        }, a.a(\"editorWarning.background\", \"Background color of warning text in the editor. The color must not be opaque so as not to hide underlying decorations.\"), !0),\n        Z = u(\"editorWarning.foreground\", {\n            dark: \"#CCA700\",\n            light: \"#BF8803\",\n            hc: null\n        }, a.a(\"editorWarning.foreground\", \"Foreground color of warning squigglies in the editor.\")),\n        X = u(\"editorWarning.border\", {\n            dark: null,\n            light: null,\n            hc: r.a.fromHex(\"#FFCC00\").transparent(.8)\n        }, a.a(\"warningBorder\", \"Border color of warning boxes in the editor.\")),\n        Q = u(\"editorInfo.background\", {\n            dark: null,\n            light: null,\n            hc: null\n        }, a.a(\"editorInfo.background\", \"Background color of info text in the editor. The color must not be opaque so as not to hide underlying decorations.\"), !0),\n        J = u(\"editorInfo.foreground\", {\n            dark: \"#3794FF\",\n            light: \"#1a85ff\",\n            hc: \"#3794FF\"\n        }, a.a(\"editorInfo.foreground\", \"Foreground color of info squigglies in the editor.\")),\n        ee = u(\"editorInfo.border\", {\n            dark: null,\n            light: null,\n            hc: r.a.fromHex(\"#3794FF\").transparent(.8)\n        }, a.a(\"infoBorder\", \"Border color of info boxes in the editor.\")),\n        te = u(\"editorHint.foreground\", {\n            dark: r.a.fromHex(\"#eeeeee\").transparent(.7),\n            light: \"#6c6c6c\",\n            hc: null\n        }, a.a(\"editorHint.foreground\", \"Foreground color of hint squigglies in the editor.\")),\n        ie = u(\"editorHint.border\", {\n            dark: null,\n            light: null,\n            hc: r.a.fromHex(\"#eeeeee\").transparent(.8)\n        }, a.a(\"hintBorder\", \"Border color of hint boxes in the editor.\")),\n        ne = u(\"editor.background\", {\n            light: \"#fffffe\",\n            dark: \"#1E1E1E\",\n            hc: r.a.black\n        }, a.a(\"editorBackground\", \"Editor background color.\")),\n        re = u(\"editor.foreground\", {\n            light: \"#333333\",\n            dark: \"#BBBBBB\",\n            hc: r.a.white\n        }, a.a(\"editorForeground\", \"Editor default foreground color.\")),\n        oe = u(\"editorWidget.background\", {\n            dark: \"#252526\",\n            light: \"#F3F3F3\",\n            hc: \"#0C141F\"\n        }, a.a(\"editorWidgetBackground\", \"Background color of editor widgets, such as find/replace.\")),\n        se = u(\"editorWidget.foreground\", {\n            dark: p,\n            light: p,\n            hc: p\n        }, a.a(\"editorWidgetForeground\", \"Foreground color of editor widgets, such as find/replace.\")),\n        ae = u(\"editorWidget.border\", {\n            dark: \"#454545\",\n            light: \"#C8C8C8\",\n            hc: m\n        }, a.a(\"editorWidgetBorder\", \"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.\")),\n        le = u(\"editorWidget.resizeBorder\", {\n            light: null,\n            dark: null,\n            hc: null\n        }, a.a(\"editorWidgetResizeBorder\", \"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.\")),\n        de = u(\"quickInput.background\", {\n            dark: oe,\n            light: oe,\n            hc: oe\n        }, a.a(\"pickerBackground\", \"Quick picker background color. The quick picker widget is the container for pickers like the command palette.\")),\n        ce = u(\"quickInput.foreground\", {\n            dark: se,\n            light: se,\n            hc: se\n        }, a.a(\"pickerForeground\", \"Quick picker foreground color. The quick picker widget is the container for pickers like the command palette.\")),\n        he = u(\"quickInputTitle.background\", {\n            dark: new r.a(new r.b(255, 255, 255, .105)),\n            light: new r.a(new r.b(0, 0, 0, .06)),\n            hc: \"#000000\"\n        }, a.a(\"pickerTitleBackground\", \"Quick picker title background color. The quick picker widget is the container for pickers like the command palette.\")),\n        ue = u(\"pickerGroup.foreground\", {\n            dark: \"#3794FF\",\n            light: \"#0066BF\",\n            hc: r.a.white\n        }, a.a(\"pickerGroupForeground\", \"Quick picker color for grouping labels.\")),\n        pe = u(\"pickerGroup.border\", {\n            dark: \"#3F3F46\",\n            light: \"#CCCEDB\",\n            hc: r.a.white\n        }, a.a(\"pickerGroupBorder\", \"Quick picker color for grouping borders.\")),\n        ge = u(\"keybindingLabel.background\", {\n            dark: new r.a(new r.b(128, 128, 128, .17)),\n            light: new r.a(new r.b(221, 221, 221, .4)),\n            hc: r.a.transparent\n        }, a.a(\"keybindingLabelBackground\", \"Keybinding label background color. The keybinding label is used to represent a keyboard shortcut.\")),\n        fe = u(\"keybindingLabel.foreground\", {\n            dark: r.a.fromHex(\"#CCCCCC\"),\n            light: r.a.fromHex(\"#555555\"),\n            hc: r.a.white\n        }, a.a(\"keybindingLabelForeground\", \"Keybinding label foreground color. The keybinding label is used to represent a keyboard shortcut.\")),\n        me = u(\"keybindingLabel.border\", {\n            dark: new r.a(new r.b(51, 51, 51, .6)),\n            light: new r.a(new r.b(204, 204, 204, .4)),\n            hc: new r.a(new r.b(111, 195, 223))\n        }, a.a(\"keybindingLabelBorder\", \"Keybinding label border color. The keybinding label is used to represent a keyboard shortcut.\")),\n        ve = u(\"keybindingLabel.bottomBorder\", {\n            dark: new r.a(new r.b(68, 68, 68, .6)),\n            light: new r.a(new r.b(187, 187, 187, .4)),\n            hc: new r.a(new r.b(111, 195, 223))\n        }, a.a(\"keybindingLabelBottomBorder\", \"Keybinding label border bottom color. The keybinding label is used to represent a keyboard shortcut.\")),\n        be = u(\"editor.selectionBackground\", {\n            light: \"#ADD6FF\",\n            dark: \"#264F78\",\n            hc: \"#f3f518\"\n        }, a.a(\"editorSelectionBackground\", \"Color of the editor selection.\")),\n        _e = u(\"editor.selectionForeground\", {\n            light: null,\n            dark: null,\n            hc: \"#000000\"\n        }, a.a(\"editorSelectionForeground\", \"Color of the selected text for high contrast.\")),\n        we = u(\"editor.inactiveSelectionBackground\", {\n            light: St(be, .5),\n            dark: St(be, .5),\n            hc: St(be, .5)\n        }, a.a(\"editorInactiveSelection\", \"Color of the selection in an inactive editor. The color must not be opaque so as not to hide underlying decorations.\"), !0),\n        ye = u(\"editor.selectionHighlightBackground\", {\n            light: Lt(be, ne, .3, .6),\n            dark: Lt(be, ne, .3, .6),\n            hc: null\n        }, a.a(\"editorSelectionHighlight\", \"Color for regions with the same content as the selection. The color must not be opaque so as not to hide underlying decorations.\"), !0);\n    u(\"editor.selectionHighlightBorder\", {\n        light: null,\n        dark: null,\n        hc: v\n    }, a.a(\"editorSelectionHighlightBorder\", \"Border color for regions with the same content as the selection.\"));\n    const Ce = u(\"editor.findMatchBackground\", {\n            light: \"#A8AC94\",\n            dark: \"#515C6A\",\n            hc: null\n        }, a.a(\"editorFindMatch\", \"Color of the current search match.\")),\n        xe = u(\"editor.findMatchHighlightBackground\", {\n            light: \"#EA5C0055\",\n            dark: \"#EA5C0055\",\n            hc: null\n        }, a.a(\"findMatchHighlight\", \"Color of the other search matches. The color must not be opaque so as not to hide underlying decorations.\"), !0),\n        Se = u(\"editor.findRangeHighlightBackground\", {\n            dark: \"#3a3d4166\",\n            light: \"#b4b4b44d\",\n            hc: null\n        }, a.a(\"findRangeHighlight\", \"Color of the range limiting the search. The color must not be opaque so as not to hide underlying decorations.\"), !0),\n        ke = u(\"editor.findMatchBorder\", {\n            light: null,\n            dark: null,\n            hc: v\n        }, a.a(\"editorFindMatchBorder\", \"Border color of the current search match.\")),\n        Le = u(\"editor.findMatchHighlightBorder\", {\n            light: null,\n            dark: null,\n            hc: v\n        }, a.a(\"findMatchHighlightBorder\", \"Border color of the other search matches.\")),\n        Oe = u(\"editor.findRangeHighlightBorder\", {\n            dark: null,\n            light: null,\n            hc: St(v, .4)\n        }, a.a(\"findRangeHighlightBorder\", \"Border color of the range limiting the search. The color must not be opaque so as not to hide underlying decorations.\"), !0);\n    u(\"editor.hoverHighlightBackground\", {\n        light: \"#ADD6FF26\",\n        dark: \"#264f7840\",\n        hc: \"#ADD6FF26\"\n    }, a.a(\"hoverHighlight\", \"Highlight below the word for which a hover is shown. The color must not be opaque so as not to hide underlying decorations.\"), !0), t = u(\"editorHoverWidget.background\", {\n        light: oe,\n        dark: oe,\n        hc: oe\n    }, a.a(\"hoverBackground\", \"Background color of the editor hover.\")), u(\"editorHoverWidget.foreground\", {\n        light: se,\n        dark: se,\n        hc: se\n    }, a.a(\"hoverForeground\", \"Foreground color of the editor hover.\")), u(\"editorHoverWidget.border\", {\n        light: ae,\n        dark: ae,\n        hc: ae\n    }, a.a(\"hoverBorder\", \"Border color of the editor hover.\")), u(\"editorHoverWidget.statusBarBackground\", {\n        dark: xt(t, .2),\n        light: Ct(t, .05),\n        hc: oe\n    }, a.a(\"statusBarBackground\", \"Background color of the editor hover status bar.\")), u(\"editorLink.activeForeground\", {\n        dark: \"#4E94CE\",\n        light: r.a.blue,\n        hc: r.a.cyan\n    }, a.a(\"activeLinkForeground\", \"Color of active links.\")), i = u(\"editorInlayHint.foreground\", {\n        dark: St(V, .8),\n        light: St(V, .8),\n        hc: V\n    }, a.a(\"editorInlayHintForeground\", \"Foreground color of inline hints\")), t = u(\"editorInlayHint.background\", {\n        dark: St(B, .6),\n        light: St(B, .3),\n        hc: B\n    }, a.a(\"editorInlayHintBackground\", \"Background color of inline hints\")), u(\"editorInlayHint.typeForeground\", {\n        dark: i,\n        light: i,\n        hc: i\n    }, a.a(\"editorInlayHintForegroundTypes\", \"Foreground color of inline hints for types\")), u(\"editorInlayHint.typeBackground\", {\n        dark: t,\n        light: t,\n        hc: t\n    }, a.a(\"editorInlayHintBackgroundTypes\", \"Background color of inline hints for types\")), u(\"editorInlayHint.parameterForeground\", {\n        dark: i,\n        light: i,\n        hc: i\n    }, a.a(\"editorInlayHintForegroundParameter\", \"Foreground color of inline hints for parameters\")), u(\"editorInlayHint.parameterBackground\", {\n        dark: t,\n        light: t,\n        hc: t\n    }, a.a(\"editorInlayHintBackgroundParameter\", \"Background color of inline hints for parameters\")), u(\"editorLightBulb.foreground\", {\n        dark: \"#FFCC00\",\n        light: \"#DDB100\",\n        hc: \"#FFCC00\"\n    }, a.a(\"editorLightBulbForeground\", \"The color used for the lightbulb actions icon.\")), u(\"editorLightBulbAutoFix.foreground\", {\n        dark: \"#75BEFF\",\n        light: \"#007ACC\",\n        hc: \"#75BEFF\"\n    }, a.a(\"editorLightBulbAutoFixForeground\", \"The color used for the lightbulb auto fix actions icon.\"));\n    const Ee = new r.a(new r.b(155, 185, 85, .2)),\n        Ne = new r.a(new r.b(255, 0, 0, .2)),\n        De = u(\"diffEditor.insertedTextBackground\", {\n            dark: Ee,\n            light: Ee,\n            hc: null\n        }, a.a(\"diffEditorInserted\", \"Background color for text that got inserted. The color must not be opaque so as not to hide underlying decorations.\"), !0),\n        Ie = u(\"diffEditor.removedTextBackground\", {\n            dark: Ne,\n            light: Ne,\n            hc: null\n        }, a.a(\"diffEditorRemoved\", \"Background color for text that got removed. The color must not be opaque so as not to hide underlying decorations.\"), !0),\n        Te = u(\"diffEditor.insertedTextBorder\", {\n            dark: null,\n            light: null,\n            hc: \"#33ff2eff\"\n        }, a.a(\"diffEditorInsertedOutline\", \"Outline color for the text that got inserted.\")),\n        Me = u(\"diffEditor.removedTextBorder\", {\n            dark: null,\n            light: null,\n            hc: \"#FF008F\"\n        }, a.a(\"diffEditorRemovedOutline\", \"Outline color for text that got removed.\")),\n        Pe = u(\"diffEditor.border\", {\n            dark: null,\n            light: null,\n            hc: m\n        }, a.a(\"diffEditorBorder\", \"Border color between the two text editors.\")),\n        Ae = u(\"diffEditor.diagonalFill\", {\n            dark: \"#cccccc33\",\n            light: \"#22222233\",\n            hc: null\n        }, a.a(\"diffDiagonalFill\", \"Color of the diff editor's diagonal fill. The diagonal fill is used in side-by-side diff views.\")),\n        Re = u(\"list.focusBackground\", {\n            dark: null,\n            light: null,\n            hc: null\n        }, a.a(\"listFocusBackground\", \"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.\")),\n        Fe = u(\"list.focusForeground\", {\n            dark: null,\n            light: null,\n            hc: null\n        }, a.a(\"listFocusForeground\", \"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.\")),\n        je = u(\"list.focusOutline\", {\n            dark: f,\n            light: f,\n            hc: v\n        }, a.a(\"listFocusOutline\", \"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.\")),\n        Be = u(\"list.activeSelectionBackground\", {\n            dark: \"#094771\",\n            light: \"#0060C0\",\n            hc: null\n        }, a.a(\"listActiveSelectionBackground\", \"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.\")),\n        Ve = u(\"list.activeSelectionForeground\", {\n            dark: r.a.white,\n            light: r.a.white,\n            hc: null\n        }, a.a(\"listActiveSelectionForeground\", \"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.\")),\n        We = u(\"list.activeSelectionIconForeground\", {\n            dark: null,\n            light: null,\n            hc: null\n        }, a.a(\"listActiveSelectionIconForeground\", \"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.\")),\n        ze = u(\"list.inactiveSelectionBackground\", {\n            dark: \"#37373D\",\n            light: \"#E4E6F1\",\n            hc: null\n        }, a.a(\"listInactiveSelectionBackground\", \"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.\")),\n        He = u(\"list.inactiveSelectionForeground\", {\n            dark: null,\n            light: null,\n            hc: null\n        }, a.a(\"listInactiveSelectionForeground\", \"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.\")),\n        Ue = u(\"list.inactiveSelectionIconForeground\", {\n            dark: null,\n            light: null,\n            hc: null\n        }, a.a(\"listInactiveSelectionIconForeground\", \"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.\")),\n        Ke = u(\"list.inactiveFocusBackground\", {\n            dark: null,\n            light: null,\n            hc: null\n        }, a.a(\"listInactiveFocusBackground\", \"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.\")),\n        $e = u(\"list.inactiveFocusOutline\", {\n            dark: null,\n            light: null,\n            hc: null\n        }, a.a(\"listInactiveFocusOutline\", \"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.\")),\n        qe = u(\"list.hoverBackground\", {\n            dark: \"#2A2D2E\",\n            light: \"#F0F0F0\",\n            hc: null\n        }, a.a(\"listHoverBackground\", \"List/Tree background when hovering over items using the mouse.\")),\n        Ge = u(\"list.hoverForeground\", {\n            dark: null,\n            light: null,\n            hc: null\n        }, a.a(\"listHoverForeground\", \"List/Tree foreground when hovering over items using the mouse.\")),\n        Ye = u(\"list.dropBackground\", {\n            dark: \"#062F4A\",\n            light: \"#D6EBFF\",\n            hc: null\n        }, a.a(\"listDropBackground\", \"List/Tree drag and drop background when moving items around using the mouse.\"));\n    t = u(\"list.highlightForeground\", {\n        dark: \"#18A3FF\",\n        light: \"#0066BF\",\n        hc: f\n    }, a.a(\"highlight\", \"List/Tree foreground color of the match highlights when searching inside the list/tree.\")), u(\"list.focusHighlightForeground\", {\n        dark: t,\n        light: {\n            op: 5,\n            if: Be,\n            then: t,\n            else: \"#9DDDFF\"\n        },\n        hc: t\n    }, a.a(\"listFocusHighlightForeground\", \"List/Tree foreground color of the match highlights on actively focused items when searching inside the list/tree.\"));\n    const Ze = u(\"listFilterWidget.background\", {\n            light: \"#efc1ad\",\n            dark: \"#653723\",\n            hc: r.a.black\n        }, a.a(\"listFilterWidgetBackground\", \"Background color of the type filter widget in lists and trees.\")),\n        Xe = u(\"listFilterWidget.outline\", {\n            dark: r.a.transparent,\n            light: r.a.transparent,\n            hc: \"#f38518\"\n        }, a.a(\"listFilterWidgetOutline\", \"Outline color of the type filter widget in lists and trees.\")),\n        Qe = u(\"listFilterWidget.noMatchesOutline\", {\n            dark: \"#BE1100\",\n            light: \"#BE1100\",\n            hc: m\n        }, a.a(\"listFilterWidgetNoMatchesOutline\", \"Outline color of the type filter widget in lists and trees, when there are no matches.\")),\n        Je = u(\"tree.indentGuidesStroke\", {\n            dark: \"#585858\",\n            light: \"#a9a9a9\",\n            hc: \"#a9a9a9\"\n        }, a.a(\"treeIndentGuidesStroke\", \"Tree stroke color for the indentation guides.\")),\n        et = u(\"tree.tableColumnsBorder\", {\n            dark: \"#CCCCCC20\",\n            light: \"#61616120\",\n            hc: null\n        }, a.a(\"treeIndentGuidesStroke\", \"Tree stroke color for the indentation guides.\"));\n    t = u(\"quickInput.list.focusBackground\", {\n        dark: null,\n        light: null,\n        hc: null\n    }, \"\", void 0, a.a(\"quickInput.list.focusBackground deprecation\", \"Please use quickInputList.focusBackground instead\"));\n    const tt = u(\"quickInputList.focusForeground\", {\n            dark: Ve,\n            light: Ve,\n            hc: Ve\n        }, a.a(\"quickInput.listFocusForeground\", \"Quick picker foreground color for the focused item.\")),\n        it = u(\"quickInputList.focusIconForeground\", {\n            dark: We,\n            light: We,\n            hc: We\n        }, a.a(\"quickInput.listFocusIconForeground\", \"Quick picker icon foreground color for the focused item.\")),\n        nt = u(\"quickInputList.focusBackground\", {\n            dark: kt(t, Be),\n            light: kt(t, Be),\n            hc: null\n        }, a.a(\"quickInput.listFocusBackground\", \"Quick picker background color for the focused item.\")),\n        rt = u(\"menu.border\", {\n            dark: null,\n            light: null,\n            hc: m\n        }, a.a(\"menuBorder\", \"Border color of menus.\")),\n        ot = u(\"menu.foreground\", {\n            dark: A,\n            light: p,\n            hc: A\n        }, a.a(\"menuForeground\", \"Foreground color of menu items.\")),\n        st = u(\"menu.background\", {\n            dark: P,\n            light: P,\n            hc: P\n        }, a.a(\"menuBackground\", \"Background color of menu items.\")),\n        at = u(\"menu.selectionForeground\", {\n            dark: Ve,\n            light: Ve,\n            hc: Ve\n        }, a.a(\"menuSelectionForeground\", \"Foreground color of the selected menu item in menus.\")),\n        lt = u(\"menu.selectionBackground\", {\n            dark: Be,\n            light: Be,\n            hc: Be\n        }, a.a(\"menuSelectionBackground\", \"Background color of the selected menu item in menus.\")),\n        dt = u(\"menu.selectionBorder\", {\n            dark: null,\n            light: null,\n            hc: v\n        }, a.a(\"menuSelectionBorder\", \"Border color of the selected menu item in menus.\")),\n        ct = u(\"menu.separatorBackground\", {\n            dark: \"#BBBBBB\",\n            light: \"#888888\",\n            hc: m\n        }, a.a(\"menuSeparatorBackground\", \"Color of a separator menu item in menus.\")),\n        ht = u(\"toolbar.hoverBackground\", {\n            dark: \"#5a5d5e50\",\n            light: \"#b8b8b850\",\n            hc: null\n        }, a.a(\"toolbarHoverBackground\", \"Toolbar background when hovering over actions using the mouse\"));\n    u(\"editor.snippetTabstopHighlightBackground\", {\n        dark: new r.a(new r.b(124, 124, 124, .3)),\n        light: new r.a(new r.b(10, 50, 100, .2)),\n        hc: new r.a(new r.b(124, 124, 124, .3))\n    }, a.a(\"snippetTabstopHighlightBackground\", \"Highlight background color of a snippet tabstop.\")), u(\"editor.snippetTabstopHighlightBorder\", {\n        dark: null,\n        light: null,\n        hc: null\n    }, a.a(\"snippetTabstopHighlightBorder\", \"Highlight border color of a snippet tabstop.\")), u(\"editor.snippetFinalTabstopHighlightBackground\", {\n        dark: null,\n        light: null,\n        hc: null\n    }, a.a(\"snippetFinalTabstopHighlightBackground\", \"Highlight background color of the final tabstop of a snippet.\")), u(\"editor.snippetFinalTabstopHighlightBorder\", {\n        dark: \"#525252\",\n        light: new r.a(new r.b(10, 50, 100, .5)),\n        hc: \"#525252\"\n    }, a.a(\"snippetFinalTabstopHighlightBorder\", \"Highlight border color of the final tabstop of a snippet.\"));\n    const ut = u(\"editorOverviewRuler.findMatchForeground\", {\n        dark: \"#d186167e\",\n        light: \"#d186167e\",\n        hc: \"#AB5A00\"\n    }, a.a(\"overviewRulerFindMatchForeground\", \"Overview ruler marker color for find matches. The color must not be opaque so as not to hide underlying decorations.\"), !0);\n    u(\"editorOverviewRuler.selectionHighlightForeground\", {\n        dark: \"#A0A0A0CC\",\n        light: \"#A0A0A0CC\",\n        hc: \"#A0A0A0CC\"\n    }, a.a(\"overviewRulerSelectionHighlightForeground\", \"Overview ruler marker color for selection highlights. The color must not be opaque so as not to hide underlying decorations.\"), !0);\n    const pt = u(\"minimap.findMatchHighlight\", {\n        light: \"#d18616\",\n        dark: \"#d18616\",\n        hc: \"#AB5A00\"\n    }, a.a(\"minimapFindMatchHighlight\", \"Minimap marker color for find matches.\"), !0);\n    u(\"minimap.selectionOccurrenceHighlight\", {\n        light: \"#c9c9c9\",\n        dark: \"#676767\",\n        hc: \"#ffffff\"\n    }, a.a(\"minimapSelectionOccurrenceHighlight\", \"Minimap marker color for repeating editor selections.\"), !0);\n    const gt = u(\"minimap.selectionHighlight\", {\n            light: \"#ADD6FF\",\n            dark: \"#264F78\",\n            hc: \"#ffffff\"\n        }, a.a(\"minimapSelectionHighlight\", \"Minimap marker color for the editor selection.\"), !0),\n        ft = u(\"minimap.errorHighlight\", {\n            dark: new r.a(new r.b(255, 18, 18, .7)),\n            light: new r.a(new r.b(255, 18, 18, .7)),\n            hc: new r.a(new r.b(255, 50, 50, 1))\n        }, a.a(\"minimapError\", \"Minimap marker color for errors.\")),\n        mt = u(\"minimap.warningHighlight\", {\n            dark: Z,\n            light: Z,\n            hc: X\n        }, a.a(\"overviewRuleWarning\", \"Minimap marker color for warnings.\")),\n        vt = u(\"minimap.background\", {\n            dark: null,\n            light: null,\n            hc: null\n        }, a.a(\"minimapBackground\", \"Minimap background color.\")),\n        bt = u(\"minimap.foregroundOpacity\", {\n            dark: r.a.fromHex(\"#000f\"),\n            light: r.a.fromHex(\"#000f\"),\n            hc: r.a.fromHex(\"#000f\")\n        }, a.a(\"minimapForegroundOpacity\", 'Opacity of foreground elements rendered in the minimap. For example, \"#000000c0\" will render the elements with 75% opacity.')),\n        _t = u(\"minimapSlider.background\", {\n            light: St(z, .5),\n            dark: St(z, .5),\n            hc: St(z, .5)\n        }, a.a(\"minimapSliderBackground\", \"Minimap slider background color.\")),\n        wt = u(\"minimapSlider.hoverBackground\", {\n            light: St(H, .5),\n            dark: St(H, .5),\n            hc: St(H, .5)\n        }, a.a(\"minimapSliderHoverBackground\", \"Minimap slider background color when hovering.\")),\n        yt = u(\"minimapSlider.activeBackground\", {\n            light: St(U, .5),\n            dark: St(U, .5),\n            hc: St(U, .5)\n        }, a.a(\"minimapSliderActiveBackground\", \"Minimap slider background color when clicked on.\"));\n\n    function Ct(e, t) {\n        return {\n            op: 0,\n            value: e,\n            factor: t\n        }\n    }\n\n    function xt(e, t) {\n        return {\n            op: 1,\n            value: e,\n            factor: t\n        }\n    }\n\n    function St(e, t) {\n        return {\n            op: 2,\n            value: e,\n            factor: t\n        }\n    }\n\n    function kt(...e) {\n        return {\n            op: 3,\n            values: e\n        }\n    }\n\n    function Lt(e, t, i, n) {\n        return {\n            op: 4,\n            value: e,\n            background: t,\n            factor: i,\n            transparency: n\n        }\n    }\n\n    function Ot(e, t) {\n        if (null !== e) return \"string\" == typeof e ? \"#\" === e[0] ? r.a.fromHex(e) : t.getColor(e) : e instanceof r.a ? e : \"object\" == typeof e ? function(e, t) {\n            var i;\n            switch (e.op) {\n                case 0:\n                    return null === (i = Ot(e.value, t)) || void 0 === i ? void 0 : i.darken(e.factor);\n                case 1:\n                    return null === (i = Ot(e.value, t)) || void 0 === i ? void 0 : i.lighten(e.factor);\n                case 2:\n                    return null === (o = Ot(e.value, t)) || void 0 === o ? void 0 : o.transparent(e.factor);\n                case 3:\n                    for (const i of e.values) {\n                        var n = Ot(i, t);\n                        if (n) return n\n                    }\n                    return;\n                case 5:\n                    return Ot(t.defines(e.if) ? e.then : e.else, t);\n                case 4:\n                    const a = Ot(e.value, t);\n                    if (!a) return;\n                    var o = Ot(e.background, t);\n                    return o ? (a.isDarkerThan(o) ? r.a.getLighterColor(a, o, e.factor) : r.a.getDarkerColor(a, o, e.factor)).transparent(e.transparency) : a.transparent(e.factor * e.transparency);\n                default:\n                    throw Object(s.a)(e)\n            }\n        }(e, t) : void 0\n    }\n    u(\"problemsErrorIcon.foreground\", {\n        dark: q,\n        light: q,\n        hc: q\n    }, a.a(\"problemsErrorIconForeground\", \"The color used for the problems error icon.\")), u(\"problemsWarningIcon.foreground\", {\n        dark: Z,\n        light: Z,\n        hc: Z\n    }, a.a(\"problemsWarningIconForeground\", \"The color used for the problems warning icon.\")), u(\"problemsInfoIcon.foreground\", {\n        dark: J,\n        light: J,\n        hc: J\n    }, a.a(\"problemsInfoIconForeground\", \"The color used for the problems info icon.\"));\n    const Et = \"vscode://schemas/workbench-colors\";\n    let Nt = d.a.as(l.a.JSONContribution);\n    Nt.registerSchema(Et, h.getColorSchema());\n    const Dt = new n.e(() => Nt.notifySchemaChanged(Et), 200);\n    h.onDidChangeSchema(() => {\n        Dt.isScheduled() || Dt.schedule()\n    })\n}, function(e, t, i) {\n    \"use strict\";\n    i.d(t, \"a\", (function() {\n        return n\n    }));\n    class n {\n        constructor(e, t) {\n            this.lineNumber = e, this.column = t\n        }\n        with(e = this.lineNumber, t = this.column) {\n            return e === this.lineNumber && t === this.column ? this : new n(e, t)\n        }\n        delta(e = 0, t = 0) {\n            return this.with(this.lineNumber + e, this.column + t)\n        }\n        equals(e) {\n            return n.equals(this, e)\n        }\n        static equals(e, t) {\n            return !e && !t || !!e && !!t && e.lineNumber === t.lineNumber && e.column === t.column\n        }\n        isBefore(e) {\n            return n.isBefore(this, e)\n        }\n        static isBefore(e, t) {\n            return e.lineNumber < t.lineNumber || !(t.lineNumber < e.lineNumber) && e.column < t.column\n        }\n        isBeforeOrEqual(e) {\n            return n.isBeforeOrEqual(this, e)\n        }\n        static isBeforeOrEqual(e, t) {\n            return e.lineNumber < t.lineNumber || !(t.lineNumber < e.lineNumber) && e.column <= t.column\n        }\n        static compare(e, t) {\n            var i = 0 | e.lineNumber,\n                n = 0 | t.lineNumber;\n            return i != n ? i - n : (0 | e.column) - (0 | t.column)\n        }\n        clone() {\n            return new n(this.lineNumber, this.column)\n        }\n        toString() {\n            return \"(\" + this.lineNumber + \",\" + this.column + \")\"\n        }\n        static lift(e) {\n            return new n(e.lineNumber, e.column)\n        }\n        static isIPosition(e) {\n            return e && \"number\" == typeof e.lineNumber && \"number\" == typeof e.column\n        }\n    }\n}, function(e, t, i) {\n    \"use strict\";\n    i.d(t, \"b\", (function() {\n        return u\n    })), i.d(t, \"i\", (function() {\n        return v\n    })), i.d(t, \"f\", (function() {\n        return b\n    })), i.d(t, \"d\", (function() {\n        return _\n    })), i.d(t, \"g\", (function() {\n        return w\n    })), i.d(t, \"h\", (function() {\n        return y\n    })), i.d(t, \"c\", (function() {\n        return C\n    })), i.d(t, \"k\", (function() {\n        return x\n    })), i.d(t, \"j\", (function() {\n        return S\n    })), i.d(t, \"a\", (function() {\n        return k\n    })), i.d(t, \"e\", (function() {\n        return E\n    }));\n    let n = !1,\n        r = !1,\n        o = !1,\n        s = !1,\n        a = !1,\n        l = !1,\n        d = void 0,\n        c = \"en\",\n        h = void 0;\n    const u = \"object\" == typeof self ? self : \"object\" == typeof global ? global : {};\n    let p = void 0;\n    if (void 0 !== u.vscode && void 0 !== u.vscode.process ? p = u.vscode.process : \"undefined\" != typeof process && (p = process), t = \"string\" == typeof(null === (t = null == p ? void 0 : p.versions) || void 0 === t ? void 0 : t.electron) && \"renderer\" === p.type, \"object\" != typeof navigator || t)\n        if (\"object\" == typeof p) {\n            if (n = \"win32\" === p.platform, r = \"darwin\" === p.platform, o = \"linux\" === p.platform, o && !!p.env.SNAP && p.env.SNAP_REVISION, d = \"en\", c = \"en\", t = p.env.VSCODE_NLS_CONFIG) try {\n                var g = JSON.parse(t),\n                    f = g.availableLanguages[\"*\"];\n                d = g.locale, c = f || \"en\", g._translationsConfigFile\n            } catch (e) {}\n            s = !0\n        } else console.error(\"Unable to resolve platform.\");\n    else h = navigator.userAgent, n = 0 <= h.indexOf(\"Windows\"), r = 0 <= h.indexOf(\"Macintosh\"), l = (0 <= h.indexOf(\"Macintosh\") || 0 <= h.indexOf(\"iPad\") || 0 <= h.indexOf(\"iPhone\")) && !!navigator.maxTouchPoints && 0 < navigator.maxTouchPoints, o = 0 <= h.indexOf(\"Linux\"), a = !0, d = navigator.language, c = d;\n    let m = 0;\n    r ? m = 1 : n ? m = 3 : o && (m = 2);\n    const v = n,\n        b = r,\n        _ = o,\n        w = s,\n        y = a,\n        C = l,\n        x = h,\n        S = function() {\n            if (u.setImmediate) return u.setImmediate.bind(u);\n            if (\"function\" == typeof u.postMessage && !u.importScripts) {\n                let e = [];\n                u.addEventListener(\"message\", t => {\n                    if (t.data && t.data.vscodeSetImmediateId)\n                        for (let i = 0, n = e.length; i < n; i++) {\n                            const n = e[i];\n                            if (n.id === t.data.vscodeSetImmediateId) return e.splice(i, 1), void n.callback()\n                        }\n                });\n                let t = 0;\n                return i => {\n                    var n = ++t;\n                    e.push({\n                        id: n,\n                        callback: i\n                    }), u.postMessage({\n                        vscodeSetImmediateId: n\n                    }, \"*\")\n                }\n            }\n            if (\"function\" == typeof(null == p ? void 0 : p.nextTick)) return p.nextTick.bind(p);\n            const e = Promise.resolve();\n            return t => e.then(t)\n        }(),\n        k = r || l ? 2 : n ? 1 : 3;\n    let L = !0,\n        O = !1;\n\n    function E() {\n        if (!O) {\n            O = !0;\n            const t = new Uint8Array(2);\n            t[0] = 1, t[1] = 2;\n            var e = new Uint16Array(t.buffer);\n            L = 513 === e[0]\n        }\n        return L\n    }\n}, function(e, t) {\n    function i(e, t, i, n, r, o, s) {\n        try {\n            var a = e[o](s),\n                l = a.value\n        } catch (e) {\n            return void i(e)\n        }\n        a.done ? t(l) : Promise.resolve(l).then(n, r)\n    }\n    e.exports = function(e) {\n        return function() {\n            var t = this,\n                n = arguments;\n            return new Promise((function(r, o) {\n                var s = e.apply(t, n);\n\n                function a(e) {\n                    i(s, r, o, a, l, \"next\", e)\n                }\n\n                function l(e) {\n                    i(s, r, o, a, l, \"throw\", e)\n                }\n                a(void 0)\n            }))\n        }\n    }, e.exports.default = e.exports, e.exports.__esModule = !0\n}, function(e, t, i) {\n    \"use strict\";\n\n    function n(e, t) {\n        return t = Math.pow(10, t), Math.round(e * t) / t\n    }\n    i.d(t, \"b\", (function() {\n        return r\n    })), i.d(t, \"a\", (function() {\n        return a\n    }));\n    class r {\n        constructor(e, t, i, r = 1) {\n            this._rgbaBrand = void 0, this.r = 0 | Math.min(255, Math.max(0, e)), this.g = 0 | Math.min(255, Math.max(0, t)), this.b = 0 | Math.min(255, Math.max(0, i)), this.a = n(Math.max(Math.min(1, r), 0), 3)\n        }\n        static equals(e, t) {\n            return e.r === t.r && e.g === t.g && e.b === t.b && e.a === t.a\n        }\n    }\n    class o {\n        constructor(e, t, i, r) {\n            this._hslaBrand = void 0, this.h = 0 | Math.max(Math.min(360, e), 0), this.s = n(Math.max(Math.min(1, t), 0), 3), this.l = n(Math.max(Math.min(1, i), 0), 3), this.a = n(Math.max(Math.min(1, r), 0), 3)\n        }\n        static equals(e, t) {\n            return e.h === t.h && e.s === t.s && e.l === t.l && e.a === t.a\n        }\n        static fromRGBA(e) {\n            var t = e.r / 255,\n                i = e.g / 255,\n                n = e.b / 255,\n                r = e.a,\n                s = Math.max(t, i, n),\n                a = Math.min(t, i, n);\n            let l = 0,\n                d = 0;\n            e = (a + s) / 2;\n            var c = s - a;\n            if (0 < c) {\n                switch (d = Math.min(e <= .5 ? c / (2 * e) : c / (2 - 2 * e), 1), s) {\n                    case t:\n                        l = (i - n) / c + (i < n ? 6 : 0);\n                        break;\n                    case i:\n                        l = (n - t) / c + 2;\n                        break;\n                    case n:\n                        l = (t - i) / c + 4\n                }\n                l *= 60, l = Math.round(l)\n            }\n            return new o(l, d, e, r)\n        }\n        static _hue2rgb(e, t, i) {\n            return i < 0 && (i += 1), 1 < i && --i, i < 1 / 6 ? e + 6 * (t - e) * i : i < .5 ? t : i < 2 / 3 ? e + (t - e) * (2 / 3 - i) * 6 : e\n        }\n        static toRGBA(e) {\n            var t = e.h / 360,\n                {\n                    s: i,\n                    l: n,\n                    a: e\n                } = e;\n            let s, a, l;\n            return 0 === i ? s = a = l = n : (i = 2 * n - (n = n < .5 ? n * (1 + i) : n + i - n * i), s = o._hue2rgb(i, n, t + 1 / 3), a = o._hue2rgb(i, n, t), l = o._hue2rgb(i, n, t - 1 / 3)), new r(Math.round(255 * s), Math.round(255 * a), Math.round(255 * l), e)\n        }\n    }\n    class s {\n        constructor(e, t, i, r) {\n            this._hsvaBrand = void 0, this.h = 0 | Math.max(Math.min(360, e), 0), this.s = n(Math.max(Math.min(1, t), 0), 3), this.v = n(Math.max(Math.min(1, i), 0), 3), this.a = n(Math.max(Math.min(1, r), 0), 3)\n        }\n        static equals(e, t) {\n            return e.h === t.h && e.s === t.s && e.v === t.v && e.a === t.a\n        }\n        static fromRGBA(e) {\n            var t = e.r / 255,\n                i = e.g / 255,\n                n = e.b / 255,\n                r = Math.max(t, i, n),\n                o = r - Math.min(t, i, n),\n                a = 0 === r ? 0 : o / r;\n            let l;\n            return l = 0 == o ? 0 : r === t ? ((i - n) / o % 6 + 6) % 6 : r === i ? (n - t) / o + 2 : (t - i) / o + 4, new s(Math.round(60 * l), a, r, e.a)\n        }\n        static toRGBA(e) {\n            var {\n                h: t,\n                s: i,\n                v: n,\n                a: o\n            } = e, i = (e = n * i) * (1 - Math.abs(t / 60 % 2 - 1)), n = n - e;\n            let [s, a, l] = [0, 0, 0];\n            return t < 60 ? (s = e, a = i) : t < 120 ? (s = i, a = e) : t < 180 ? (a = e, l = i) : t < 240 ? (a = i, l = e) : t < 300 ? (s = i, l = e) : t <= 360 && (s = e, l = i), s = Math.round(255 * (s + n)), a = Math.round(255 * (a + n)), l = Math.round(255 * (l + n)), new r(s, a, l, o)\n        }\n    }\n    class a {\n        constructor(e) {\n            if (!e) throw new Error(\"Color needs a value\");\n            if (e instanceof r) this.rgba = e;\n            else if (e instanceof o) this._hsla = e, this.rgba = o.toRGBA(e);\n            else {\n                if (!(e instanceof s)) throw new Error(\"Invalid color ctor argument\");\n                this._hsva = e, this.rgba = s.toRGBA(e)\n            }\n        }\n        static fromHex(e) {\n            return a.Format.CSS.parseHex(e) || a.red\n        }\n        get hsla() {\n            return this._hsla || o.fromRGBA(this.rgba)\n        }\n        get hsva() {\n            return this._hsva || s.fromRGBA(this.rgba)\n        }\n        equals(e) {\n            return !!e && r.equals(this.rgba, e.rgba) && o.equals(this.hsla, e.hsla) && s.equals(this.hsva, e.hsva)\n        }\n        getRelativeLuminance() {\n            return n(.2126 * a._relativeLuminanceForComponent(this.rgba.r) + .7152 * a._relativeLuminanceForComponent(this.rgba.g) + .0722 * a._relativeLuminanceForComponent(this.rgba.b), 4)\n        }\n        static _relativeLuminanceForComponent(e) {\n            return (e /= 255) <= .03928 ? e / 12.92 : Math.pow((.055 + e) / 1.055, 2.4)\n        }\n        isLighter() {\n            return 128 <= (299 * this.rgba.r + 587 * this.rgba.g + 114 * this.rgba.b) / 1e3\n        }\n        isLighterThan(e) {\n            var t = this.getRelativeLuminance();\n            return e.getRelativeLuminance() < t\n        }\n        isDarkerThan(e) {\n            return this.getRelativeLuminance() < e.getRelativeLuminance()\n        }\n        lighten(e) {\n            return new a(new o(this.hsla.h, this.hsla.s, this.hsla.l + this.hsla.l * e, this.hsla.a))\n        }\n        darken(e) {\n            return new a(new o(this.hsla.h, this.hsla.s, this.hsla.l - this.hsla.l * e, this.hsla.a))\n        }\n        transparent(e) {\n            var {\n                r: t,\n                g: i,\n                b: n,\n                a: o\n            } = this.rgba;\n            return new a(new r(t, i, n, o * e))\n        }\n        isTransparent() {\n            return 0 === this.rgba.a\n        }\n        isOpaque() {\n            return 1 === this.rgba.a\n        }\n        opposite() {\n            return new a(new r(255 - this.rgba.r, 255 - this.rgba.g, 255 - this.rgba.b, this.rgba.a))\n        }\n        toString() {\n            return this._toString || (this._toString = a.Format.CSS.format(this)), this._toString\n        }\n        static getLighterColor(e, t, i) {\n            if (e.isLighterThan(t)) return e;\n            i = i || .5;\n            var n = e.getRelativeLuminance();\n            t = t.getRelativeLuminance();\n            return e.lighten(i = i * (t - n) / t)\n        }\n        static getDarkerColor(e, t, i) {\n            if (e.isDarkerThan(t)) return e;\n            i = i || .5;\n            var n = e.getRelativeLuminance();\n            t = t.getRelativeLuminance();\n            return e.darken(i = i * (n - t) / n)\n        }\n    }\n\n    function l(e) {\n        return 2 !== (e = e.toString(16)).length ? \"0\" + e : e\n    }\n\n    function d(e) {\n        switch (e) {\n            case 48:\n                return 0;\n            case 49:\n                return 1;\n            case 50:\n                return 2;\n            case 51:\n                return 3;\n            case 52:\n                return 4;\n            case 53:\n                return 5;\n            case 54:\n                return 6;\n            case 55:\n                return 7;\n            case 56:\n                return 8;\n            case 57:\n                return 9;\n            case 97:\n            case 65:\n                return 10;\n            case 98:\n            case 66:\n                return 11;\n            case 99:\n            case 67:\n                return 12;\n            case 100:\n            case 68:\n                return 13;\n            case 101:\n            case 69:\n                return 14;\n            case 102:\n            case 70:\n                return 15\n        }\n        return 0\n    }\n    var c;\n    a.white = new a(new r(255, 255, 255, 1)), a.black = new a(new r(0, 0, 0, 1)), a.red = new a(new r(255, 0, 0, 1)), a.blue = new a(new r(0, 0, 255, 1)), a.cyan = new a(new r(0, 255, 255, 1)), a.lightgrey = new a(new r(211, 211, 211, 1)), a.transparent = new a(new r(0, 0, 0, 0)), (t = (t = (c = a = a || {}).Format || (c.Format = {})).CSS || (t.CSS = {})).formatRGB = function(e) {\n        return 1 === e.rgba.a ? `rgb(${e.rgba.r}, ${e.rgba.g}, ${e.rgba.b})` : c.Format.CSS.formatRGBA(e)\n    }, t.formatRGBA = function(e) {\n        return `rgba(${e.rgba.r}, ${e.rgba.g}, ${e.rgba.b}, ${+e.rgba.a.toFixed(2)})`\n    }, t.formatHSL = function(e) {\n        return 1 === e.hsla.a ? `hsl(${e.hsla.h}, ${(100*e.hsla.s).toFixed(2)}%, ${(100*e.hsla.l).toFixed(2)}%)` : c.Format.CSS.formatHSLA(e)\n    }, t.formatHSLA = function(e) {\n        return `hsla(${e.hsla.h}, ${(100*e.hsla.s).toFixed(2)}%, ${(100*e.hsla.l).toFixed(2)}%, ${e.hsla.a.toFixed(2)})`\n    }, t.formatHex = function(e) {\n        return `#${l(e.rgba.r)}${l(e.rgba.g)}${l(e.rgba.b)}`\n    }, t.formatHexA = function(e, t = !1) {\n        return t && 1 === e.rgba.a ? c.Format.CSS.formatHex(e) : `#${l(e.rgba.r)}${l(e.rgba.g)}${l(e.rgba.b)}${l(Math.round(255*e.rgba.a))}`\n    }, t.format = function(e) {\n        return e.isOpaque() ? c.Format.CSS.formatHex(e) : c.Format.CSS.formatRGBA(e)\n    }, t.parseHex = function(e) {\n        var t = e.length;\n        if (0 === t) return null;\n        if (35 !== e.charCodeAt(0)) return null;\n        if (7 === t) {\n            var i = 16 * d(e.charCodeAt(1)) + d(e.charCodeAt(2)),\n                n = 16 * d(e.charCodeAt(3)) + d(e.charCodeAt(4)),\n                o = 16 * d(e.charCodeAt(5)) + d(e.charCodeAt(6));\n            return new c(new r(i, n, o, 1))\n        }\n        if (9 === t) {\n            i = 16 * d(e.charCodeAt(1)) + d(e.charCodeAt(2)), n = 16 * d(e.charCodeAt(3)) + d(e.charCodeAt(4)), o = 16 * d(e.charCodeAt(5)) + d(e.charCodeAt(6));\n            var s = 16 * d(e.charCodeAt(7)) + d(e.charCodeAt(8));\n            return new c(new r(i, n, o, s / 255))\n        }\n        if (4 !== t) return 5 !== t ? null : (a = d(e.charCodeAt(1)), l = d(e.charCodeAt(2)), t = d(e.charCodeAt(3)), e = d(e.charCodeAt(4)), new c(new r(16 * a + a, 16 * l + l, 16 * t + t, (16 * e + e) / 255)));\n        s = d(e.charCodeAt(1));\n        var a = d(e.charCodeAt(2)),\n            l = d(e.charCodeAt(3));\n        return new c(new r(16 * s + s, 16 * a + a, 16 * l + l))\n    }\n}, function(e, t) {\n    e.exports = require(\"path\")\n}, function(e, t, i) {\n    \"use strict\";\n    i.d(t, \"a\", (function() {\n        return a\n    })), i.d(t, \"e\", (function() {\n        return l\n    })), i.d(t, \"c\", (function() {\n        return E\n    })), i.d(t, \"b\", (function() {\n        return N\n    })), i.d(t, \"d\", (function() {\n        return D\n    })), i.d(t, \"f\", (function() {\n        return M\n    }));\n    t = i(9);\n    var n = i(6);\n    i = i(26);\n    let r = t.k || \"\";\n    const o = new Map;\n    o.set(\"false\", !1), o.set(\"true\", !0), o.set(\"isMac\", t.f), o.set(\"isLinux\", t.d), o.set(\"isWindows\", t.i), o.set(\"isWeb\", t.h), o.set(\"isMacNative\", t.f && !t.h), o.set(\"isEdge\", 0 <= r.indexOf(\"Edg/\")), o.set(\"isFirefox\", 0 <= r.indexOf(\"Firefox\")), o.set(\"isChrome\", 0 <= r.indexOf(\"Chrome\")), o.set(\"isSafari\", 0 <= r.indexOf(\"Safari\"));\n    const s = Object.prototype.hasOwnProperty;\n    class a {\n        static has(e) {\n            return u.create(e)\n        }\n        static equals(e, t) {\n            return p.create(e, t)\n        }\n        static regex(e, t) {\n            return x.create(e, t)\n        }\n        static not(e) {\n            return v.create(e)\n        }\n        static and(...e) {\n            return L.create(e, null)\n        }\n        static or(...e) {\n            return O.create(e, null, !0)\n        }\n        static deserialize(e, t = !1) {\n            if (e) return this._deserializeOrExpression(e, t)\n        }\n        static _deserializeOrExpression(e, t) {\n            let i = e.split(\"||\");\n            return O.create(i.map(e => this._deserializeAndExpression(e, t)), null, !0)\n        }\n        static _deserializeAndExpression(e, t) {\n            let i = e.split(\"&&\");\n            return L.create(i.map(e => this._deserializeOne(e, t)), null)\n        }\n        static _deserializeOne(e, t) {\n            if (0 <= (e = e.trim()).indexOf(\"!=\")) {\n                let i = e.split(\"!=\");\n                return m.create(i[0].trim(), this._deserializeValue(i[1], t))\n            }\n            if (0 <= e.indexOf(\"==\")) {\n                let i = e.split(\"==\");\n                return p.create(i[0].trim(), this._deserializeValue(i[1], t))\n            }\n            if (0 <= e.indexOf(\"=~\")) {\n                let i = e.split(\"=~\");\n                return x.create(i[0].trim(), this._deserializeRegexValue(i[1], t))\n            }\n            if (0 <= e.indexOf(\" in \")) {\n                let t = e.split(\" in \");\n                return g.create(t[0].trim(), t[1].trim())\n            }\n            if (/^[^<=>]+>=[^<=>]+$/.test(e)) {\n                const t = e.split(\">=\");\n                return w.create(t[0].trim(), t[1].trim())\n            }\n            if (/^[^<=>]+>[^<=>]+$/.test(e)) {\n                const t = e.split(\">\");\n                return _.create(t[0].trim(), t[1].trim())\n            }\n            if (/^[^<=>]+<=[^<=>]+$/.test(e)) {\n                const t = e.split(\"<=\");\n                return C.create(t[0].trim(), t[1].trim())\n            }\n            if (/^[^<=>]+<[^<=>]+$/.test(e)) {\n                const t = e.split(\"<\");\n                return y.create(t[0].trim(), t[1].trim())\n            }\n            return /^\\!\\s*/.test(e) ? v.create(e.substr(1).trim()) : u.create(e)\n        }\n        static _deserializeValue(e, t) {\n            if (\"true\" === (e = e.trim())) return !0;\n            if (\"false\" === e) return !1;\n            let i = /^'([^']*)'$/.exec(e);\n            return i ? i[1].trim() : e\n        }\n        static _deserializeRegexValue(e, t) {\n            if (Object(n.C)(e)) {\n                if (t) throw new Error(\"missing regexp-value for =~-expression\");\n                return console.warn(\"missing regexp-value for =~-expression\"), null\n            }\n            var i = e.indexOf(\"/\"),\n                r = e.lastIndexOf(\"/\");\n            if (i === r || i < 0) {\n                if (t) throw new Error(`bad regexp-value '${e}', missing /-enclosure`);\n                return console.warn(`bad regexp-value '${e}', missing /-enclosure`), null\n            }\n            i = e.slice(i + 1, r), r = \"i\" === e[r + 1] ? \"i\" : \"\";\n            try {\n                return new RegExp(i, r)\n            } catch (i) {\n                if (t) throw new Error(`bad regexp-value '${e}', parse error: ${i}`);\n                return console.warn(`bad regexp-value '${e}', parse error: ${i}`), null\n            }\n        }\n    }\n\n    function l(e, t) {\n        const i = e ? e.substituteConstants() : void 0;\n        return t = t ? t.substituteConstants() : void 0, !i && !t || !(!i || !t) && i.equals(t)\n    }\n\n    function d(e, t) {\n        return e.cmp(t)\n    }\n    class c {\n        constructor() {\n            this.type = 0\n        }\n        cmp(e) {\n            return this.type - e.type\n        }\n        equals(e) {\n            return e.type === this.type\n        }\n        substituteConstants() {\n            return this\n        }\n        evaluate(e) {\n            return !1\n        }\n        serialize() {\n            return \"false\"\n        }\n        keys() {\n            return []\n        }\n        negate() {\n            return h.INSTANCE\n        }\n    }\n    c.INSTANCE = new c;\n    class h {\n        constructor() {\n            this.type = 1\n        }\n        cmp(e) {\n            return this.type - e.type\n        }\n        equals(e) {\n            return e.type === this.type\n        }\n        substituteConstants() {\n            return this\n        }\n        evaluate(e) {\n            return !0\n        }\n        serialize() {\n            return \"true\"\n        }\n        keys() {\n            return []\n        }\n        negate() {\n            return c.INSTANCE\n        }\n    }\n    h.INSTANCE = new h;\n    class u {\n        constructor(e, t) {\n            this.key = e, this.negated = t, this.type = 2\n        }\n        static create(e, t = null) {\n            var i = o.get(e);\n            return \"boolean\" == typeof i ? (i ? h : c).INSTANCE : new u(e, t)\n        }\n        cmp(e) {\n            return e.type !== this.type ? this.type - e.type : I(this.key, e.key)\n        }\n        equals(e) {\n            return e.type === this.type && this.key === e.key\n        }\n        substituteConstants() {\n            var e = o.get(this.key);\n            return \"boolean\" == typeof e ? (e ? h : c).INSTANCE : this\n        }\n        evaluate(e) {\n            return !!e.getValue(this.key)\n        }\n        serialize() {\n            return this.key\n        }\n        keys() {\n            return [this.key]\n        }\n        negate() {\n            return this.negated || (this.negated = v.create(this.key, this)), this.negated\n        }\n    }\n    class p {\n        constructor(e, t, i) {\n            this.key = e, this.value = t, this.negated = i, this.type = 4\n        }\n        static create(e, t, i = null) {\n            if (\"boolean\" == typeof t) return (t ? u : v).create(e, i);\n            var n = o.get(e);\n            return \"boolean\" != typeof n ? new p(e, t, i) : (t === (n ? \"true\" : \"false\") ? h : c).INSTANCE\n        }\n        cmp(e) {\n            return e.type !== this.type ? this.type - e.type : T(this.key, this.value, e.key, e.value)\n        }\n        equals(e) {\n            return e.type === this.type && this.key === e.key && this.value === e.value\n        }\n        substituteConstants() {\n            var e = o.get(this.key);\n            return \"boolean\" != typeof e ? this : (this.value === (e ? \"true\" : \"false\") ? h : c).INSTANCE\n        }\n        evaluate(e) {\n            return e.getValue(this.key) == this.value\n        }\n        serialize() {\n            return `${this.key} == '${this.value}'`\n        }\n        keys() {\n            return [this.key]\n        }\n        negate() {\n            return this.negated || (this.negated = m.create(this.key, this.value, this)), this.negated\n        }\n    }\n    class g {\n        constructor(e, t) {\n            this.key = e, this.valueKey = t, this.type = 10, this.negated = null\n        }\n        static create(e, t) {\n            return new g(e, t)\n        }\n        cmp(e) {\n            return e.type !== this.type ? this.type - e.type : T(this.key, this.valueKey, e.key, e.valueKey)\n        }\n        equals(e) {\n            return e.type === this.type && this.key === e.key && this.valueKey === e.valueKey\n        }\n        substituteConstants() {\n            return this\n        }\n        evaluate(e) {\n            const t = e.getValue(this.valueKey);\n            return e = e.getValue(this.key), Array.isArray(t) ? 0 <= t.indexOf(e) : \"string\" == typeof e && \"object\" == typeof t && null !== t && s.call(t, e)\n        }\n        serialize() {\n            return `${this.key} in '${this.valueKey}'`\n        }\n        keys() {\n            return [this.key, this.valueKey]\n        }\n        negate() {\n            return this.negated || (this.negated = f.create(this)), this.negated\n        }\n    }\n    class f {\n        constructor(e) {\n            this._actual = e, this.type = 11\n        }\n        static create(e) {\n            return new f(e)\n        }\n        cmp(e) {\n            return e.type !== this.type ? this.type - e.type : this._actual.cmp(e._actual)\n        }\n        equals(e) {\n            return e.type === this.type && this._actual.equals(e._actual)\n        }\n        substituteConstants() {\n            return this\n        }\n        evaluate(e) {\n            return !this._actual.evaluate(e)\n        }\n        serialize() {\n            throw new Error(\"Method not implemented.\")\n        }\n        keys() {\n            return this._actual.keys()\n        }\n        negate() {\n            return this._actual\n        }\n    }\n    class m {\n        constructor(e, t, i) {\n            this.key = e, this.value = t, this.negated = i, this.type = 5\n        }\n        static create(e, t, i = null) {\n            if (\"boolean\" == typeof t) return (t ? v : u).create(e, i);\n            var n = o.get(e);\n            return \"boolean\" != typeof n ? new m(e, t, i) : (t === (n ? \"true\" : \"false\") ? c : h).INSTANCE\n        }\n        cmp(e) {\n            return e.type !== this.type ? this.type - e.type : T(this.key, this.value, e.key, e.value)\n        }\n        equals(e) {\n            return e.type === this.type && this.key === e.key && this.value === e.value\n        }\n        substituteConstants() {\n            var e = o.get(this.key);\n            return \"boolean\" != typeof e ? this : (this.value === (e ? \"true\" : \"false\") ? c : h).INSTANCE\n        }\n        evaluate(e) {\n            return e.getValue(this.key) != this.value\n        }\n        serialize() {\n            return `${this.key} != '${this.value}'`\n        }\n        keys() {\n            return [this.key]\n        }\n        negate() {\n            return this.negated || (this.negated = p.create(this.key, this.value, this)), this.negated\n        }\n    }\n    class v {\n        constructor(e, t) {\n            this.key = e, this.negated = t, this.type = 3\n        }\n        static create(e, t = null) {\n            var i = o.get(e);\n            return \"boolean\" == typeof i ? (i ? c : h).INSTANCE : new v(e, t)\n        }\n        cmp(e) {\n            return e.type !== this.type ? this.type - e.type : I(this.key, e.key)\n        }\n        equals(e) {\n            return e.type === this.type && this.key === e.key\n        }\n        substituteConstants() {\n            var e = o.get(this.key);\n            return \"boolean\" == typeof e ? (e ? c : h).INSTANCE : this\n        }\n        evaluate(e) {\n            return !e.getValue(this.key)\n        }\n        serialize() {\n            return \"!\" + this.key\n        }\n        keys() {\n            return [this.key]\n        }\n        negate() {\n            return this.negated || (this.negated = u.create(this.key, this)), this.negated\n        }\n    }\n\n    function b(e, t) {\n        var i;\n        return \"string\" == typeof e && (i = parseFloat(e), isNaN(i) || (e = i)), \"string\" == typeof e || \"number\" == typeof e ? t(e) : c.INSTANCE\n    }\n    class _ {\n        constructor(e, t, i) {\n            this.key = e, this.value = t, this.negated = i, this.type = 12\n        }\n        static create(e, t, i = null) {\n            return b(t, t => new _(e, t, i))\n        }\n        cmp(e) {\n            return e.type !== this.type ? this.type - e.type : T(this.key, this.value, e.key, e.value)\n        }\n        equals(e) {\n            return e.type === this.type && this.key === e.key && this.value === e.value\n        }\n        substituteConstants() {\n            return this\n        }\n        evaluate(e) {\n            return \"string\" != typeof this.value && parseFloat(e.getValue(this.key)) > this.value\n        }\n        serialize() {\n            return `${this.key} > ${this.value}`\n        }\n        keys() {\n            return [this.key]\n        }\n        negate() {\n            return this.negated || (this.negated = C.create(this.key, this.value, this)), this.negated\n        }\n    }\n    class w {\n        constructor(e, t, i) {\n            this.key = e, this.value = t, this.negated = i, this.type = 13\n        }\n        static create(e, t, i = null) {\n            return b(t, t => new w(e, t, i))\n        }\n        cmp(e) {\n            return e.type !== this.type ? this.type - e.type : T(this.key, this.value, e.key, e.value)\n        }\n        equals(e) {\n            return e.type === this.type && this.key === e.key && this.value === e.value\n        }\n        substituteConstants() {\n            return this\n        }\n        evaluate(e) {\n            return \"string\" != typeof this.value && parseFloat(e.getValue(this.key)) >= this.value\n        }\n        serialize() {\n            return `${this.key} >= ${this.value}`\n        }\n        keys() {\n            return [this.key]\n        }\n        negate() {\n            return this.negated || (this.negated = y.create(this.key, this.value, this)), this.negated\n        }\n    }\n    class y {\n        constructor(e, t, i) {\n            this.key = e, this.value = t, this.negated = i, this.type = 14\n        }\n        static create(e, t, i = null) {\n            return b(t, t => new y(e, t, i))\n        }\n        cmp(e) {\n            return e.type !== this.type ? this.type - e.type : T(this.key, this.value, e.key, e.value)\n        }\n        equals(e) {\n            return e.type === this.type && this.key === e.key && this.value === e.value\n        }\n        substituteConstants() {\n            return this\n        }\n        evaluate(e) {\n            return \"string\" != typeof this.value && parseFloat(e.getValue(this.key)) < this.value\n        }\n        serialize() {\n            return `${this.key} < ${this.value}`\n        }\n        keys() {\n            return [this.key]\n        }\n        negate() {\n            return this.negated || (this.negated = w.create(this.key, this.value, this)), this.negated\n        }\n    }\n    class C {\n        constructor(e, t, i) {\n            this.key = e, this.value = t, this.negated = i, this.type = 15\n        }\n        static create(e, t, i = null) {\n            return b(t, t => new C(e, t, i))\n        }\n        cmp(e) {\n            return e.type !== this.type ? this.type - e.type : T(this.key, this.value, e.key, e.value)\n        }\n        equals(e) {\n            return e.type === this.type && this.key === e.key && this.value === e.value\n        }\n        substituteConstants() {\n            return this\n        }\n        evaluate(e) {\n            return \"string\" != typeof this.value && parseFloat(e.getValue(this.key)) <= this.value\n        }\n        serialize() {\n            return `${this.key} <= ${this.value}`\n        }\n        keys() {\n            return [this.key]\n        }\n        negate() {\n            return this.negated || (this.negated = _.create(this.key, this.value, this)), this.negated\n        }\n    }\n    class x {\n        constructor(e, t) {\n            this.key = e, this.regexp = t, this.type = 7, this.negated = null\n        }\n        static create(e, t) {\n            return new x(e, t)\n        }\n        cmp(e) {\n            if (e.type !== this.type) return this.type - e.type;\n            if (this.key < e.key) return -1;\n            if (this.key > e.key) return 1;\n            var t = this.regexp ? this.regexp.source : \"\";\n            return t < (e = e.regexp ? e.regexp.source : \"\") ? -1 : e < t ? 1 : 0\n        }\n        equals(e) {\n            if (e.type !== this.type) return !1;\n            var t = this.regexp ? this.regexp.source : \"\",\n                i = e.regexp ? e.regexp.source : \"\";\n            return this.key === e.key && t === i\n        }\n        substituteConstants() {\n            return this\n        }\n        evaluate(e) {\n            return e = e.getValue(this.key), !!this.regexp && this.regexp.test(e)\n        }\n        serialize() {\n            var e = this.regexp ? `/${this.regexp.source}/${this.regexp.ignoreCase?\"i\":\"\"}` : \"/invalid/\";\n            return `${this.key} =~ ${e}`\n        }\n        keys() {\n            return [this.key]\n        }\n        negate() {\n            return this.negated || (this.negated = S.create(this)), this.negated\n        }\n    }\n    class S {\n        constructor(e) {\n            this._actual = e, this.type = 8\n        }\n        static create(e) {\n            return new S(e)\n        }\n        cmp(e) {\n            return e.type !== this.type ? this.type - e.type : this._actual.cmp(e._actual)\n        }\n        equals(e) {\n            return e.type === this.type && this._actual.equals(e._actual)\n        }\n        substituteConstants() {\n            return this\n        }\n        evaluate(e) {\n            return !this._actual.evaluate(e)\n        }\n        serialize() {\n            throw new Error(\"Method not implemented.\")\n        }\n        keys() {\n            return this._actual.keys()\n        }\n        negate() {\n            return this._actual\n        }\n    }\n\n    function k(e) {\n        let t = null;\n        for (let n = 0, r = e.length; n < r; n++) {\n            var i = e[n].substituteConstants();\n            if (e[n] !== i && null === t) {\n                t = [];\n                for (let i = 0; i < n; i++) t[i] = e[i]\n            }\n            null !== t && (t[n] = i)\n        }\n        return null === t ? e : t\n    }\n    class L {\n        constructor(e, t) {\n            this.expr = e, this.negated = t, this.type = 6\n        }\n        static create(e, t) {\n            return L._normalizeArr(e, t)\n        }\n        cmp(e) {\n            if (e.type !== this.type) return this.type - e.type;\n            if (this.expr.length < e.expr.length) return -1;\n            if (this.expr.length > e.expr.length) return 1;\n            for (let i = 0, n = this.expr.length; i < n; i++) {\n                var t = d(this.expr[i], e.expr[i]);\n                if (0 !== t) return t\n            }\n            return 0\n        }\n        equals(e) {\n            if (e.type !== this.type) return !1;\n            if (this.expr.length !== e.expr.length) return !1;\n            for (let t = 0, i = this.expr.length; t < i; t++)\n                if (!this.expr[t].equals(e.expr[t])) return !1;\n            return !0\n        }\n        substituteConstants() {\n            var e = k(this.expr);\n            return e === this.expr ? this : L.create(e, this.negated)\n        }\n        evaluate(e) {\n            for (let t = 0, i = this.expr.length; t < i; t++)\n                if (!this.expr[t].evaluate(e)) return !1;\n            return !0\n        }\n        static _normalizeArr(e, t) {\n            const i = [];\n            let n = !1;\n            for (const t of e)\n                if (t)\n                    if (1 !== t.type) {\n                        if (0 === t.type) return c.INSTANCE;\n                        6 !== t.type ? i.push(t) : i.push(...t.expr)\n                    } else n = !0;\n            if (0 === i.length && n) return h.INSTANCE;\n            if (0 !== i.length) {\n                if (1 === i.length) return i[0];\n                i.sort(d);\n                for (let e = 1; e < i.length; e++) i[e - 1].equals(i[e]) && (i.splice(e, 1), e--);\n                if (1 === i.length) return i[0];\n                for (; 1 < i.length;) {\n                    const e = i[i.length - 1];\n                    if (9 !== e.type) break;\n                    i.pop();\n                    const t = i.pop();\n                    var r = 0 === i.length;\n                    (r = O.create(e.expr.map(e => L.create([e, t], null)), null, r)) && (i.push(r), i.sort(d))\n                }\n                return 1 === i.length ? i[0] : new L(i, t)\n            }\n        }\n        serialize() {\n            return this.expr.map(e => e.serialize()).join(\" && \")\n        }\n        keys() {\n            const e = [];\n            for (var t of this.expr) e.push(...t.keys());\n            return e\n        }\n        negate() {\n            if (!this.negated) {\n                const t = [];\n                for (var e of this.expr) t.push(e.negate());\n                this.negated = O.create(t, this, !0)\n            }\n            return this.negated\n        }\n    }\n    class O {\n        constructor(e, t) {\n            this.expr = e, this.negated = t, this.type = 9\n        }\n        static create(e, t, i) {\n            return O._normalizeArr(e, t, i)\n        }\n        cmp(e) {\n            if (e.type !== this.type) return this.type - e.type;\n            if (this.expr.length < e.expr.length) return -1;\n            if (this.expr.length > e.expr.length) return 1;\n            for (let i = 0, n = this.expr.length; i < n; i++) {\n                var t = d(this.expr[i], e.expr[i]);\n                if (0 !== t) return t\n            }\n            return 0\n        }\n        equals(e) {\n            if (e.type !== this.type) return !1;\n            if (this.expr.length !== e.expr.length) return !1;\n            for (let t = 0, i = this.expr.length; t < i; t++)\n                if (!this.expr[t].equals(e.expr[t])) return !1;\n            return !0\n        }\n        substituteConstants() {\n            var e = k(this.expr);\n            return e === this.expr ? this : O.create(e, this.negated, !1)\n        }\n        evaluate(e) {\n            for (let t = 0, i = this.expr.length; t < i; t++)\n                if (this.expr[t].evaluate(e)) return !0;\n            return !1\n        }\n        static _normalizeArr(e, t, i) {\n            let n = [],\n                r = !1;\n            if (e) {\n                for (let t = 0, i = e.length; t < i; t++) {\n                    var o = e[t];\n                    if (o)\n                        if (0 !== o.type) {\n                            if (1 === o.type) return h.INSTANCE;\n                            9 !== o.type ? n.push(o) : n = n.concat(o.expr)\n                        } else r = !0\n                }\n                if (0 === n.length && r) return c.INSTANCE;\n                n.sort(d)\n            }\n            if (0 !== n.length) {\n                if (1 === n.length) return n[0];\n                for (let e = 1; e < n.length; e++) n[e - 1].equals(n[e]) && (n.splice(e, 1), e--);\n                if (1 === n.length) return n[0];\n                if (i) {\n                    for (let e = 0; e < n.length; e++)\n                        for (let t = e + 1; t < n.length; t++) M(n[e], n[t]) && (n.splice(t, 1), t--);\n                    if (1 === n.length) return n[0]\n                }\n                return new O(n, t)\n            }\n        }\n        serialize() {\n            return this.expr.map(e => e.serialize()).join(\" || \")\n        }\n        keys() {\n            const e = [];\n            for (var t of this.expr) e.push(...t.keys());\n            return e\n        }\n        negate() {\n            if (!this.negated) {\n                let n = [];\n                for (var e of this.expr) n.push(e.negate());\n                for (; 1 < n.length;) {\n                    var t = n.shift(),\n                        i = n.shift();\n                    const e = [];\n                    for (const n of P(t))\n                        for (const t of P(i)) e.push(L.create([n, t], null));\n                    t = 0 === n.length, n.unshift(O.create(e, null, t))\n                }\n                this.negated = n[0]\n            }\n            return this.negated\n        }\n    }\n    class E extends u {\n        constructor(e, t, i) {\n            super(e, null), this._defaultValue = t, \"object\" == typeof i ? E._info.push(Object.assign(Object.assign({}, i), {\n                key: e\n            })) : !0 !== i && E._info.push({\n                key: e,\n                description: i,\n                type: null != t ? typeof t : void 0\n            })\n        }\n        static all() {\n            return E._info.values()\n        }\n        bindTo(e) {\n            return e.createKey(this.key, this._defaultValue)\n        }\n        getValue(e) {\n            return e.getContextKeyValue(this.key)\n        }\n        toNegated() {\n            return this.negate()\n        }\n        isEqualTo(e) {\n            return p.create(this.key, e)\n        }\n    }\n    E._info = [];\n    const N = Object(i.c)(\"contextKeyService\"),\n        D = \"setContext\";\n\n    function I(e, t) {\n        return e < t ? -1 : t < e ? 1 : 0\n    }\n\n    function T(e, t, i, n) {\n        return e < i ? -1 : i < e ? 1 : t < n ? -1 : n < t ? 1 : 0\n    }\n\n    function M(e, t) {\n        if (6 === t.type && 9 !== e.type && 6 !== e.type)\n            for (const i of t.expr)\n                if (e.equals(i)) return !0;\n        const i = P(e.negate()).concat(P(t));\n        i.sort(d);\n        for (let e = 0; e < i.length; e++) {\n            const t = i[e].negate();\n            for (let r = e + 1; r < i.length; r++) {\n                var n = i[r];\n                if (t.equals(n)) return !0\n            }\n        }\n        return !1\n    }\n\n    function P(e) {\n        return 9 === e.type ? e.expr : [e]\n    }\n}, function(e, t, i) {\n    \"use strict\";\n    i.d(t, \"b\", (function() {\n        return p\n    })), i.d(t, \"f\", (function() {\n        return g\n    })), i.d(t, \"c\", (function() {\n        return f\n    })), i.d(t, \"d\", (function() {\n        return b\n    })), i.d(t, \"e\", (function() {\n        return _\n    })), i.d(t, \"g\", (function() {\n        return w\n    }));\n    var n = i(31),\n        r = i(8),\n        o = i(5),\n        s = i(36),\n        a = i(76),\n        l = i(57),\n        d = i(144);\n    i.d(t, \"a\", (function() {\n        return d.a\n    }));\n    const c = () => !0,\n        h = () => !1,\n        u = e => \" \" === e || \"\\t\" === e;\n    class p {\n        constructor(e, t, i) {\n            this._cursorMove配置Brand = void 0, this._languageId = e;\n            const n = i.options;\n            if (i = n.get(129), this.readOnly = n.get(80), this.tabSize = t.tabSize, this.indentSize = t.indentSize, this.insertSpaces = t.insertSpaces, this.stickyTabStops = n.get(103), this.lineHeight = n.get(58), this.pageSize = Math.max(1, Math.floor(i.height / this.lineHeight) - 2), this.useTabStops = n.get(114), this.wordSeparators = n.get(115), this.emptySelectionClipboard = n.get(32), this.copyWithSyntaxHighlighting = n.get(21), this.multiCursorMergeOverlapping = n.get(68), this.multiCursorPaste = n.get(70), this.autoClosingBrackets = n.get(5), this.autoClosingQuotes = n.get(8), this.autoClosingDelete = n.get(6), this.autoClosingOvertype = n.get(7), this.autoSurround = n.get(11), this.autoIndent = n.get(9), this.surroundingPairs = {}, this._electricChars = null, this.shouldAutoCloseBefore = {\n                    quote: p._getShouldAutoClose(e, this.autoClosingQuotes),\n                    bracket: p._getShouldAutoClose(e, this.autoClosingBrackets)\n                }, this.autoClosingPairs = l.b.getAutoClosingPairs(e), e = p._getSurroundingPairs(e))\n                for (const t of e) this.surroundingPairs[t.open] = t.close\n        }\n        static shouldRecreate(e) {\n            return e.hasChanged(129) || e.hasChanged(115) || e.hasChanged(32) || e.hasChanged(68) || e.hasChanged(70) || e.hasChanged(5) || e.hasChanged(8) || e.hasChanged(6) || e.hasChanged(7) || e.hasChanged(11) || e.hasChanged(114) || e.hasChanged(58) || e.hasChanged(80)\n        }\n        get electricChars() {\n            if (!this._electricChars) {\n                this._electricChars = {};\n                var e = p._getElectricCharacters(this._languageId);\n                if (e)\n                    for (const t of e) this._electricChars[t] = !0\n            }\n            return this._electricChars\n        }\n        normalizeIndentation(e) {\n            return a.c.normalizeIndentation(e, this.indentSize, this.insertSpaces)\n        }\n        static _getElectricCharacters(e) {\n            try {\n                return l.b.getElectricCharacters(e)\n            } catch (e) {\n                return Object(n.f)(e), null\n            }\n        }\n        static _getShouldAutoClose(e, t) {\n            switch (t) {\n                case \"beforeWhitespace\":\n                    return u;\n                case \"languageDefined\":\n                    return p._getLanguageDefinedShouldAutoClose(e);\n                case \"always\":\n                    return c;\n                case \"never\":\n                    return h\n            }\n        }\n        static _getLanguageDefinedShouldAutoClose(e) {\n            try {\n                const t = l.b.getAutoCloseBeforeSet(e);\n                return e => -1 !== t.indexOf(e)\n            } catch (e) {\n                return Object(n.f)(e), h\n            }\n        }\n        static _getSurroundingPairs(e) {\n            try {\n                return l.b.getSurroundingPairs(e)\n            } catch (e) {\n                return Object(n.f)(e), null\n            }\n        }\n    }\n    class g {\n        constructor(e, t, i, n) {\n            this._singleCursorStateBrand = void 0, this.selectionStart = e, this.selectionStartLeftoverVisibleColumns = t, this.position = i, this.leftoverVisibleColumns = n, this.selection = g._computeSelection(this.selectionStart, this.position)\n        }\n        equals(e) {\n            return this.selectionStartLeftoverVisibleColumns === e.selectionStartLeftoverVisibleColumns && this.leftoverVisibleColumns === e.leftoverVisibleColumns && this.position.equals(e.position) && this.selectionStart.equalsRange(e.selectionStart)\n        }\n        hasSelection() {\n            return !this.selection.isEmpty() || !this.selectionStart.isEmpty()\n        }\n        move(e, t, i, n) {\n            return e ? new g(this.selectionStart, this.selectionStartLeftoverVisibleColumns, new r.a(t, i), n) : new g(new o.a(t, i, t, i), n, new r.a(t, i), n)\n        }\n        static _computeSelection(e, t) {\n            let i, n, r, o;\n            return n = !e.isEmpty() && t.isBeforeOrEqual(e.getStartPosition()) ? (i = e.endLineNumber, e.endColumn) : (i = e.startLineNumber, e.startColumn), r = t.lineNumber, o = t.column, new s.a(i, n, r, o)\n        }\n    }\n    class f {\n        constructor(e, t, i, n) {\n            this._cursorContextBrand = void 0, this.model = e, this.viewModel = t, this.coordinatesConverter = i, this.cursorConfig = n\n        }\n    }\n    class m {\n        constructor(e) {\n            this.modelState = e, this.viewState = null\n        }\n    }\n    class v {\n        constructor(e) {\n            this.modelState = null, this.viewState = e\n        }\n    }\n    class b {\n        constructor(e, t) {\n            this._cursorStateBrand = void 0, this.modelState = e, this.viewState = t\n        }\n        static fromModelState(e) {\n            return new m(e)\n        }\n        static fromViewState(e) {\n            return new v(e)\n        }\n        static fromModelSelection(e) {\n            var t = e.selectionStartLineNumber,\n                i = e.selectionStartColumn,\n                n = e.positionLineNumber;\n            e = e.positionColumn, e = new g(new o.a(t, i, t, i), 0, new r.a(n, e), 0);\n            return b.fromModelState(e)\n        }\n        static fromModelSelections(e) {\n            let t = [];\n            for (let i = 0, n = e.length; i < n; i++) t[i] = this.fromModelSelection(e[i]);\n            return t\n        }\n        equals(e) {\n            return this.viewState.equals(e.viewState) && this.modelState.equals(e.modelState)\n        }\n    }\n    class _ {\n        constructor(e, t, i) {\n            this._editOperationResultBrand = void 0, this.type = e, this.commands = t, this.shouldPushStackElementBefore = i.shouldPushStackElementBefore, this.shouldPushStackElementAfter = i.shouldPushStackElementAfter\n        }\n    }\n\n    function w(e) {\n        return \"'\" === e || '\"' === e || \"`\" === e\n    }\n}, function(e, t, i) {\n    \"use strict\";\n    i.d(t, \"z\", (function() {\n        return h\n    })), i.d(t, \"m\", (function() {\n        return u\n    })), i.d(t, \"v\", (function() {\n        return p\n    })), i.d(t, \"w\", (function() {\n        return g\n    })), i.d(t, \"d\", (function() {\n        return f\n    })), i.d(t, \"r\", (function() {\n        return m\n    })), i.d(t, \"y\", (function() {\n        return v\n    })), i.d(t, \"o\", (function() {\n        return b\n    })), i.d(t, \"l\", (function() {\n        return _\n    })), i.d(t, \"h\", (function() {\n        return w\n    })), i.d(t, \"t\", (function() {\n        return y\n    })), i.d(t, \"f\", (function() {\n        return C\n    })), i.d(t, \"e\", (function() {\n        return x\n    })), i.d(t, \"p\", (function() {\n        return S\n    })), i.d(t, \"B\", (function() {\n        return k\n    })), i.d(t, \"b\", (function() {\n        return L\n    })), i.d(t, \"q\", (function() {\n        return O\n    })), i.d(t, \"a\", (function() {\n        return E\n    })), i.d(t, \"g\", (function() {\n        return N\n    })), i.d(t, \"i\", (function() {\n        return D\n    })), i.d(t, \"u\", (function() {\n        return I\n    })), i.d(t, \"s\", (function() {\n        return T\n    })), i.d(t, \"c\", (function() {\n        return M\n    })), i.d(t, \"x\", (function() {\n        return P\n    })), i.d(t, \"n\", (function() {\n        return A\n    })), i.d(t, \"k\", (function() {\n        return R\n    })), i.d(t, \"j\", (function() {\n        return F\n    })), i.d(t, \"A\", (function() {\n        return j\n    })), i(39), i(5);\n    var n = i(2),\n        r = (i(126), i(4)),\n        o = (i(73), i(100), i(171)),\n        s = i(62),\n        a = i(78);\n\n    function l(e) {\n        return \"string\" != typeof e && (Array.isArray(e) ? e.every(l) : !!e.exclusive)\n    }\n    class d {\n        constructor() {\n            this._clock = 0, this._entries = [], this._onDidChange = new n.b\n        }\n        get onDidChange() {\n            return this._onDidChange.event\n        }\n        register(e, t) {\n            let i = {\n                selector: e,\n                provider: t,\n                _score: -1,\n                _time: this._clock++\n            };\n            return this._entries.push(i), this._lastCandidate = void 0, this._onDidChange.fire(this._entries.length), Object(r.i)(() => {\n                var e;\n                !i || 0 <= (e = this._entries.indexOf(i)) && (this._entries.splice(e, 1), this._lastCandidate = void 0, this._onDidChange.fire(this._entries.length), i = void 0)\n            })\n        }\n        has(e) {\n            return 0 < this.all(e).length\n        }\n        all(e) {\n            if (!e) return [];\n            this._updateScores(e);\n            const t = [];\n            for (var i of this._entries) 0 < i._score && t.push(i.provider);\n            return t\n        }\n        ordered(e) {\n            const t = [];\n            return this._orderedForEach(e, e => t.push(e.provider)), t\n        }\n        orderedGroups(e) {\n            const t = [];\n            let i, n;\n            return this._orderedForEach(e, e => {\n                i && n === e._score ? i.push(e.provider) : (n = e._score, i = [e.provider], t.push(i))\n            }), t\n        }\n        _orderedForEach(e, t) {\n            if (e) {\n                this._updateScores(e);\n                for (const e of this._entries) 0 < e._score && t(e)\n            }\n        }\n        _updateScores(e) {\n            var t = {\n                uri: e.uri.toString(),\n                language: e.getLanguageId()\n            };\n            if (!this._lastCandidate || this._lastCandidate.language !== t.language || this._lastCandidate.uri !== t.uri) {\n                for (var i of (this._lastCandidate = t, this._entries))\n                    if (i._score = function e(t, i, n, r) {\n                            if (Array.isArray(t)) {\n                                let o = 0;\n                                for (const s of t) {\n                                    var a = e(s, i, n, r);\n                                    if (10 === a) return a;\n                                    a > o && (o = a)\n                                }\n                                return o\n                            }\n                            if (\"string\" == typeof t) return r ? \"*\" === t ? 5 : t === n ? 10 : 0 : 0;\n                            if (t) {\n                                var {\n                                    language: l,\n                                    pattern: d,\n                                    scheme: c,\n                                    hasAccessToAllModels: t\n                                } = t;\n                                if (!r && !t) return 0;\n                                let e = 0;\n                                if (c)\n                                    if (c === i.scheme) e = 10;\n                                    else {\n                                        if (\"*\" !== c) return 0;\n                                        e = 5\n                                    } if (l)\n                                    if (l === n) e = 10;\n                                    else {\n                                        if (\"*\" !== l) return 0;\n                                        e = Math.max(e, 5)\n                                    } if (d) {\n                                    let t;\n                                    if (t = \"string\" == typeof d ? d : Object.assign(Object.assign({}, d), {\n                                            base: Object(s.d)(d.base)\n                                        }), t !== i.fsPath && !Object(o.a)(t, i.fsPath)) return 0;\n                                    e = 10\n                                }\n                                return e\n                            }\n                            return 0\n                        }(i.selector, e.uri, e.getLanguageId(), Object(a.b)(e)), l(i.selector) && 0 < i._score) {\n                        for (var n of this._entries) n._score = 0;\n                        i._score = 1e3;\n                        break\n                    } this._entries.sort(d._compareByScoreAndTime)\n            }\n        }\n        static _compareByScoreAndTime(e, t) {\n            return e._score < t._score ? 1 : e._score > t._score ? -1 : e._time < t._time ? 1 : e._time > t._time ? -1 : 0\n        }\n    }\n    new WeakMap;\n    var c = i(33);\n    class h {\n        static getLanguageId(e) {\n            return (255 & e) >>> 0\n        }\n        static getTokenType(e) {\n            return (1792 & e) >>> 8\n        }\n        static getFontStyle(e) {\n            return (14336 & e) >>> 11\n        }\n        static getForeground(e) {\n            return (8372224 & e) >>> 14\n        }\n        static getBackground(e) {\n            return (4286578688 & e) >>> 23\n        }\n        static getClassNameFromMetadata(e) {\n            let t = \"mtk\" + this.getForeground(e);\n            return 1 & (e = this.getFontStyle(e)) && (t += \" mtki\"), 2 & e && (t += \" mtkb\"), 4 & e && (t += \" mtku\"), t\n        }\n        static getInlineStyleFromMetadata(e, t) {\n            var i = this.getForeground(e);\n            e = this.getFontStyle(e);\n            let n = `color: ${t[i]};`;\n            return 1 & e && (n += \"font-style: italic;\"), 2 & e && (n += \"font-weight: bold;\"), 4 & e && (n += \"text-decoration: underline;\"), n\n        }\n    }(function() {\n        let e = Object.create(null);\n        e[0] = \"symbol-method\", e[1] = \"symbol-function\", e[2] = \"symbol-constructor\", e[3] = \"symbol-field\", e[4] = \"symbol-variable\", e[5] = \"symbol-class\", e[6] = \"symbol-struct\", e[7] = \"symbol-interface\", e[8] = \"symbol-module\", e[9] = \"symbol-property\", e[10] = \"symbol-event\", e[11] = \"symbol-operator\", e[12] = \"symbol-unit\", e[13] = \"symbol-value\", e[14] = \"symbol-constant\", e[15] = \"symbol-enum\", e[16] = \"symbol-enum-member\", e[17] = \"symbol-keyword\", e[27] = \"symbol-snippet\", e[18] = \"symbol-text\", e[19] = \"symbol-color\", e[20] = \"symbol-file\", e[21] = \"symbol-reference\", e[22] = \"symbol-customcolor\", e[23] = \"symbol-folder\", e[24] = \"symbol-type-parameter\", e[25] = \"account\", e[26] = \"issues\"\n    })(),\n    function() {\n        let e = Object.create(null);\n        e.method = 0, e.function = 1, e.constructor = 2, e.field = 3, e.variable = 4, e.class = 5, e.struct = 6, e.interface = 7, e.module = 8, e.property = 9, e.event = 10, e.operator = 11, e.unit = 12, e.value = 13, e.constant = 14, e.enum = 15, e[\"enum-member\"] = 16, e.enumMember = 16, e.keyword = 17, e.snippet = 27, e.text = 18, e.color = 19, e.file = 20, e.reference = 21, e.customcolor = 22, e.folder = 23, e[\"type-parameter\"] = 24, e.typeParameter = 24, e.account = 25, e.issue = 26\n    }(), (i = {})[i.Automatic = 0] = \"Automatic\", i[i.Explicit = 1] = \"Explicit\", (i = {})[i.Invoke = 1] = \"Invoke\", i[i.TriggerCharacter = 2] = \"TriggerCharacter\", i[i.ContentChange = 3] = \"ContentChange\", (i = {})[i.Text = 0] = \"文本\", i[i.Read = 1] = \"Read\", i[i.Write = 2] = \"Write\",\n        function(e) {\n            const t = new Map;\n            t.set(\"file\", 0), t.set(\"module\", 1), t.set(\"namespace\", 2), t.set(\"package\", 3), t.set(\"class\", 4), t.set(\"method\", 5), t.set(\"property\", 6), t.set(\"field\", 7), t.set(\"constructor\", 8), t.set(\"enum\", 9), t.set(\"interface\", 10), t.set(\"function\", 11), t.set(\"variable\", 12), t.set(\"constant\", 13), t.set(\"string\", 14), t.set(\"number\", 15), t.set(\"boolean\", 16), t.set(\"array\", 17), t.set(\"object\", 18), t.set(\"key\", 19), t.set(\"null\", 20), t.set(\"enum-member\", 21), t.set(\"struct\", 22), t.set(\"event\", 23), t.set(\"operator\", 24), t.set(\"type-parameter\", 25);\n            const i = new Map;\n            i.set(0, \"file\"), i.set(1, \"module\"), i.set(2, \"namespace\"), i.set(3, \"package\"), i.set(4, \"class\"), i.set(5, \"method\"), i.set(6, \"property\"), i.set(7, \"field\"), i.set(8, \"constructor\"), i.set(9, \"enum\"), i.set(10, \"interface\"), i.set(11, \"function\"), i.set(12, \"variable\"), i.set(13, \"constant\"), i.set(14, \"string\"), i.set(15, \"number\"), i.set(16, \"boolean\"), i.set(17, \"array\"), i.set(18, \"object\"), i.set(19, \"key\"), i.set(20, \"null\"), i.set(21, \"enum-member\"), i.set(22, \"struct\"), i.set(23, \"event\"), i.set(24, \"operator\"), i.set(25, \"type-parameter\"), e.fromString = function(e) {\n                return t.get(e)\n            }, e.toString = function(e) {\n                return i.get(e)\n            }, e.toCssClassName = function(e, t) {\n                var n = i.get(e);\n                let r = n && c.d.get(\"symbol-\" + n);\n                return r || (console.info(\"No codicon found for SymbolKind \" + e), r = c.b.symbolProperty), `${t?\"inline\":\"block\"} ${r.classNames}`\n            }\n        }({});\n    class u {\n        constructor(e) {\n            this.value = e\n        }\n    }\n    u.Comment = new u(\"comment\"), u.Imports = new u(\"imports\"), u.Region = new u(\"region\"), (i = {})[i.Other = 0] = \"Other\", i[i.Type = 1] = \"类型\", i[i.Parameter = 2] = \"Parameter\";\n    const p = new d,\n        g = new d,\n        f = new d,\n        m = new d,\n        v = new d,\n        b = new d,\n        _ = new d,\n        w = new d,\n        y = new d,\n        C = new d,\n        x = new d,\n        S = new d,\n        k = new d,\n        L = new d,\n        O = new d,\n        E = new d,\n        N = new d,\n        D = new d,\n        I = new d,\n        T = new d,\n        M = new d,\n        P = new d,\n        A = new d,\n        R = new d,\n        F = new d,\n        j = new class {\n            constructor() {\n                this._map = new Map, this._promises = new Map, this._onDidChange = new n.b, this.onDidChange = this._onDidChange.event, this._colorMap = null\n            }\n            fire(e) {\n                this._onDidChange.fire({\n                    changedLanguages: e,\n                    changedColorMap: !1\n                })\n            }\n            register(e, t) {\n                return this._map.set(e, t), this.fire([e]), Object(r.i)(() => {\n                    this._map.get(e) === t && (this._map.delete(e), this.fire([e]))\n                })\n            }\n            registerPromise(e, t) {\n                let i = null,\n                    n = !1;\n                return this._promises.set(e, t.then(t => {\n                    this._promises.delete(e), !n && t && (i = this.register(e, t))\n                })), Object(r.i)(() => {\n                    n = !0, i && i.dispose()\n                })\n            }\n            getPromise(e) {\n                var t = this.get(e);\n                if (t) return Promise.resolve(t);\n                const i = this._promises.get(e);\n                return i ? i.then(t => this.get(e)) : null\n            }\n            get(e) {\n                return this._map.get(e) || null\n            }\n            setColorMap(e) {\n                this._colorMap = e, this._onDidChange.fire({\n                    changedLanguages: Array.from(this._map.keys()),\n                    changedColorMap: !0\n                })\n            }\n            getColorMap() {\n                return this._colorMap\n            }\n            getDefaultBackground() {\n                return this._colorMap && 2 < this._colorMap.length ? this._colorMap[2] : null\n            }\n        }\n}, function(e, t) {\n    e.exports = require(\"fs\")\n}, function(e, t, i) {\n    \"use strict\";\n\n    function n(e) {\n        return Array.isArray(e)\n    }\n\n    function r(e) {\n        return \"string\" == typeof e\n    }\n\n    function o(e) {\n        return !(\"object\" != typeof e || null === e || Array.isArray(e) || e instanceof RegExp || e instanceof Date)\n    }\n\n    function s(e) {\n        return \"number\" == typeof e && !isNaN(e)\n    }\n\n    function a(e) {\n        return !0 === e || !1 === e\n    }\n\n    function l(e) {\n        return void 0 === e\n    }\n\n    function d(e) {\n        return !c(e)\n    }\n\n    function c(e) {\n        return l(e) || null === e\n    }\n\n    function h(e, t) {\n        if (!e) throw new Error(t ? `Unexpected type, expected '${t}'` : \"Unexpected type\")\n    }\n\n    function u(e) {\n        return \"function\" == typeof e\n    }\n\n    function p(e, t) {\n        var i = Math.min(e.length, t.length);\n        for (let n = 0; n < i; n++) ! function(e, t) {\n            if (r(t)) {\n                if (typeof e !== t) throw new Error(\"argument does not match constraint: typeof \" + t)\n            } else if (u(t)) {\n                try {\n                    if (e instanceof t) return\n                } catch (e) {}\n                if ((c(e) || e.constructor !== t) && (1 !== t.length || !0 !== t.call(void 0, e))) throw new Error(\"argument does not match one of these constraints: arg instanceof constraint, arg.constructor === constraint, nor constraint(arg) === true\")\n            }\n        }(e[n], t[n])\n    }\n\n    function g(e) {\n        const t = [];\n        for (const i of function(e) {\n                let t = [],\n                    i = Object.getPrototypeOf(e);\n                for (; Object.prototype !== i;) t = t.concat(Object.getOwnPropertyNames(i)), i = Object.getPrototypeOf(i);\n                return t\n            }(e)) \"function\" == typeof e[i] && t.push(i);\n        return t\n    }\n\n    function f(e, t) {\n        let i = {};\n        for (const n of e) i[n] = (e => function() {\n            var i = Array.prototype.slice.call(arguments, 0);\n            return t(e, i)\n        })(n);\n        return i\n    }\n\n    function m(e) {\n        return null === e ? void 0 : e\n    }\n\n    function v(e, t = \"Unreachable\") {\n        throw new Error(t)\n    }\n    i.d(t, \"e\", (function() {\n        return n\n    })), i.d(t, \"k\", (function() {\n        return r\n    })), i.d(t, \"j\", (function() {\n        return o\n    })), i.d(t, \"i\", (function() {\n        return s\n    })), i.d(t, \"f\", (function() {\n        return a\n    })), i.d(t, \"l\", (function() {\n        return l\n    })), i.d(t, \"g\", (function() {\n        return d\n    })), i.d(t, \"m\", (function() {\n        return c\n    })), i.d(t, \"b\", (function() {\n        return h\n    })), i.d(t, \"h\", (function() {\n        return u\n    })), i.d(t, \"n\", (function() {\n        return p\n    })), i.d(t, \"d\", (function() {\n        return g\n    })), i.d(t, \"c\", (function() {\n        return f\n    })), i.d(t, \"o\", (function() {\n        return m\n    })), i.d(t, \"a\", (function() {\n        return v\n    }))\n}, function(e, t) {\n    e.exports = function(e, t, i) {\n        return t in e ? Object.defineProperty(e, t, {\n            value: i,\n            enumerable: !0,\n            configurable: !0,\n            writable: !0\n        }) : e[t] = i, e\n    }, e.exports.default = e.exports, e.exports.__esModule = !0\n}, function(e, t, i) {\n    \"use strict\";\n    i.d(t, \"e\", (function() {\n        return n\n    })), i.d(t, \"d\", (function() {\n        return r\n    })), i.d(t, \"c\", (function() {\n        return a\n    })), i.d(t, \"b\", (function() {\n        return l\n    })), i.d(t, \"a\", (function() {\n        return d\n    })), i.d(t, \"g\", (function() {\n        return h\n    })), i.d(t, \"f\", (function() {\n        return u\n    })), i.d(t, \"j\", (function() {\n        return p\n    })), i.d(t, \"i\", (function() {\n        return g\n    })), i.d(t, \"h\", (function() {\n        return f\n    }));\n    var n = Symbol(),\n        r = Symbol(),\n        o = Symbol(),\n        s = Symbol(),\n        a = Symbol(),\n        l = Symbol(),\n        d = Symbol(),\n        c = Symbol(),\n        h = function() {\n            if (\"win32\" === process.platform) {\n                if (\"x64\" === process.arch) return n;\n                if (\"ia32\" === process.arch) return r;\n                if (\"arm\" === process.arch) return o;\n                if (\"arm64\" === process.arch) return s\n            }\n            if (\"darwin\" === process.platform) {\n                if (\"x64\" === process.arch) return a;\n                if (\"arm64\" === process.arch) return l\n            }\n            return \"linux\" === process.platform && \"x64\" === process.arch ? d : c\n        },\n        u = function() {\n            var e = h();\n            return [r, o, s].includes(e) ? r : e\n        },\n        p = function() {\n            return [o, s, r, n].includes(h())\n        },\n        g = function() {\n            return [a, l].includes(h())\n        },\n        f = function() {\n            return [d].includes(h())\n        }\n}, function(e, t, i) {\n    \"use strict\";\n    i.d(t, \"a\", (function() {\n        return p\n    })), i.d(t, \"c\", (function() {\n        return m\n    })), i.d(t, \"b\", (function() {\n        return v\n    })), i.d(t, \"e\", (function() {\n        return b\n    })), i.d(t, \"j\", (function() {\n        return _\n    })), i.d(t, \"i\", (function() {\n        return w\n    })), i.d(t, \"l\", (function() {\n        return y\n    })), i.d(t, \"k\", (function() {\n        return C\n    })), i.d(t, \"d\", (function() {\n        return n\n    })), i.d(t, \"h\", (function() {\n        return k\n    })), i.d(t, \"f\", (function() {\n        return L\n    })), i.d(t, \"g\", (function() {\n        return O\n    }));\n    var n, r = i(0),\n        o = (i(39), i(67)),\n        s = (i(8), i(78), i(114), i(63)),\n        a = i(46),\n        l = i(13),\n        d = i(128),\n        c = (t = i(58), i(139)),\n        h = i(17),\n        u = i(95);\n    class p {\n        constructor(e) {\n            this.id = e.id, this.precondition = e.precondition, this._kbOpts = e.kbOpts, this._menuOpts = e.menuOpts, this._description = e.description\n        }\n        register() {\n            if (Array.isArray(this._menuOpts) ? this._menuOpts.forEach(this._registerMenuItem, this) : this._menuOpts && this._registerMenuItem(this._menuOpts), this._kbOpts)\n                for (const t of Array.isArray(this._kbOpts) ? this._kbOpts : [this._kbOpts]) {\n                    let i = t.kbExpr;\n                    this.precondition && (i = i ? l.a.and(i, this.precondition) : this.precondition);\n                    var e = {\n                        id: this.id,\n                        weight: t.weight,\n                        args: t.args,\n                        when: i,\n                        primary: t.primary,\n                        secondary: t.secondary,\n                        win: t.win,\n                        linux: t.linux,\n                        mac: t.mac\n                    };\n                    d.a.registerKeybindingRule(e)\n                }\n            a.a.registerCommand({\n                id: this.id,\n                handler: (e, t) => this.runCommand(e, t),\n                description: this._description\n            })\n        }\n        _registerMenuItem(e) {\n            s.d.appendMenuItem(e.menuId, {\n                group: e.group,\n                command: {\n                    id: this.id,\n                    title: e.title,\n                    icon: e.icon,\n                    precondition: this.precondition\n                },\n                when: e.when,\n                order: e.order\n            })\n        }\n    }\n    class g extends p {\n        constructor() {\n            super(...arguments), this._implementations = []\n        }\n        addImplementation(e, t, i) {\n            return this._implementations.push({\n                priority: e,\n                name: t,\n                implementation: i\n            }), this._implementations.sort((e, t) => t.priority - e.priority), {\n                dispose: () => {\n                    for (let e = 0; e < this._implementations.length; e++)\n                        if (this._implementations[e].implementation === i) return void this._implementations.splice(e, 1)\n                }\n            }\n        }\n        runCommand(e, t) {\n            const i = e.get(u.b);\n            i.trace(`Executing Command '${this.id}' which has ${this._implementations.length} bound.`);\n            for (const r of this._implementations) {\n                var n = r.implementation(e, t);\n                if (n) return i.trace(`Command '${this.id}' was handled by '${r.name}'.`), \"boolean\" == typeof n ? void 0 : n\n            }\n            i.trace(`The Command '${this.id}' was not handled by any implementation.`)\n        }\n    }\n    class f extends p {\n        constructor(e, t) {\n            super(t), this.command = e\n        }\n        runCommand(e, t) {\n            return this.command.runCommand(e, t)\n        }\n    }\n    class m extends p {\n        static bindToContribution(e) {\n            return class extends m {\n                constructor(e) {\n                    super(e), this._callback = e.handler\n                }\n                runEditorCommand(t, i, n) {\n                    e(i) && this._callback(e(i), n)\n                }\n            }\n        }\n        runCommand(e, t) {\n            const i = e.get(o.a),\n                n = i.getFocusedCodeEditor() || i.getActiveCodeEditor();\n            if (n) return n.invokeWithinContext(e => {\n                if (e.get(l.b).contextMatchesRules(Object(h.o)(this.precondition))) return this.runEditorCommand(e, n, t)\n            })\n        }\n    }\n    class v extends m {\n        constructor(e) {\n            super(v.convertOptions(e)), this.label = e.label, this.alias = e.alias\n        }\n        static convertOptions(e) {\n            let t;\n\n            function i(t) {\n                return t.menuId || (t.menuId = s.b.EditorContext), t.title || (t.title = e.label), t.when = l.a.and(e.precondition, t.when), t\n            }\n            return t = Array.isArray(e.menuOpts) ? e.menuOpts : e.menuOpts ? [e.menuOpts] : [], Array.isArray(e.contextMenuOpts) ? t.push(...e.contextMenuOpts.map(i)) : e.contextMenuOpts && t.push(i(e.contextMenuOpts)), e.menuOpts = t, e\n        }\n        runEditorCommand(e, t, i) {\n            return this.reportTelemetry(e, t), this.run(e, t, i || {})\n        }\n        reportTelemetry(e, t) {\n            e.get(c.a).publicLog2(\"editorActionInvoked\", {\n                name: this.label,\n                id: this.id\n            })\n        }\n    }\n    class b extends v {\n        constructor() {\n            super(...arguments), this._implementations = []\n        }\n        addImplementation(e, t) {\n            return this._implementations.push([e, t]), this._implementations.sort((e, t) => t[0] - e[0]), {\n                dispose: () => {\n                    for (let e = 0; e < this._implementations.length; e++)\n                        if (this._implementations[e][1] === t) return void this._implementations.splice(e, 1)\n                }\n            }\n        }\n        run(e, t, i) {\n            for (const r of this._implementations) {\n                var n = r[1](e, t, i);\n                if (n) return \"boolean\" == typeof n ? void 0 : n\n            }\n        }\n    }\n\n    function _(e) {\n        return x.INSTANCE.registerEditorCommand(e), e\n    }\n\n    function w(e) {\n        return e = new e, x.INSTANCE.registerEditorAction(e), e\n    }\n\n    function y(e) {\n        return x.INSTANCE.registerEditorAction(e), e\n    }\n\n    function C(e, t) {\n        x.INSTANCE.registerEditorContribution(e, t)\n    }(i = n = n || {}).getEditorCommand = function(e) {\n        return x.INSTANCE.getEditorCommand(e)\n    }, i.getEditorActions = function() {\n        return x.INSTANCE.getEditorActions()\n    }, i.getEditorContributions = function() {\n        return x.INSTANCE.getEditorContributions()\n    }, i.getSomeEditorContributions = function(e) {\n        return x.INSTANCE.getEditorContributions().filter(t => 0 <= e.indexOf(t.id))\n    }, i.getDiffEditorContributions = function() {\n        return x.INSTANCE.getDiffEditorContributions()\n    };\n    class x {\n        constructor() {\n            this.editorContributions = [], this.diffEditorContributions = [], this.editorActions = [], this.editorCommands = Object.create(null)\n        }\n        registerEditorContribution(e, t) {\n            this.editorContributions.push({\n                id: e,\n                ctor: t\n            })\n        }\n        getEditorContributions() {\n            return this.editorContributions.slice(0)\n        }\n        getDiffEditorContributions() {\n            return this.diffEditorContributions.slice(0)\n        }\n        registerEditorAction(e) {\n            e.register(), this.editorActions.push(e)\n        }\n        getEditorActions() {\n            return this.editorActions.slice(0)\n        }\n        registerEditorCommand(e) {\n            e.register(), this.editorCommands[e.id] = e\n        }\n        getEditorCommand(e) {\n            return this.editorCommands[e] || null\n        }\n    }\n\n    function S(e) {\n        return e.register(), e\n    }\n    x.INSTANCE = new x, t.a.add(\"editor.contributions\", x.INSTANCE);\n    const k = S(new g({\n        id: \"undo\",\n        precondition: void 0,\n        kbOpts: {\n            weight: 0,\n            primary: 2104\n        },\n        menuOpts: [{\n            menuId: s.b.MenubarEditMenu,\n            group: \"1_do\",\n            title: r.a({\n                key: \"miUndo\",\n                comment: [\"&& denotes a mnemonic\"]\n            }, \"&&Undo\"),\n            order: 1\n        }, {\n            menuId: s.b.CommandPalette,\n            group: \"\",\n            title: r.a(\"undo\", \"Undo\"),\n            order: 1\n        }]\n    }));\n    S(new f(k, {\n        id: \"default:undo\",\n        precondition: void 0\n    }));\n    const L = S(new g({\n        id: \"redo\",\n        precondition: void 0,\n        kbOpts: {\n            weight: 0,\n            primary: 2103,\n            secondary: [3128],\n            mac: {\n                primary: 3128\n            }\n        },\n        menuOpts: [{\n            menuId: s.b.MenubarEditMenu,\n            group: \"1_do\",\n            title: r.a({\n                key: \"miRedo\",\n                comment: [\"&& denotes a mnemonic\"]\n            }, \"&&Redo\"),\n            order: 2\n        }, {\n            menuId: s.b.CommandPalette,\n            group: \"\",\n            title: r.a(\"redo\", \"Redo\"),\n            order: 1\n        }]\n    }));\n    S(new f(L, {\n        id: \"default:redo\",\n        precondition: void 0\n    }));\n    const O = S(new g({\n        id: \"editor.action.selectAll\",\n        precondition: void 0,\n        kbOpts: {\n            weight: 0,\n            kbExpr: null,\n            primary: 2079\n        },\n        menuOpts: [{\n            menuId: s.b.MenubarSelectionMenu,\n            group: \"1_basic\",\n            title: r.a({\n                key: \"miSelectAll\",\n                comment: [\"&& denotes a mnemonic\"]\n            }, \"&&Select All\"),\n            order: 1\n        }, {\n            menuId: s.b.CommandPalette,\n            group: \"\",\n            title: r.a(\"selectAll\", \"Select All\"),\n            order: 1\n        }]\n    }))\n}, function(e, t, i) {\n    \"use strict\";\n    i.d(t, \"a\", (function() {\n        return n\n    }));\n    var n, r = i(0);\n    t = i(13);\n    (i = n = n || {}).editorSimpleInput = new t.c(\"editorSimpleInput\", !1, !0), i.editorTextFocus = new t.c(\"editorTextFocus\", !1, r.a(\"editorTextFocus\", \"Whether the editor text has focus (cursor is blinking)\")), i.focus = new t.c(\"editorFocus\", !1, r.a(\"editorFocus\", \"Whether the editor or an editor widget has focus (e.g. focus is in the find widget)\")), i.textInputFocus = new t.c(\"textInputFocus\", !1, r.a(\"textInputFocus\", \"Whether an editor or a rich text input has focus (cursor is blinking)\")), i.readOnly = new t.c(\"editorReadonly\", !1, r.a(\"editorReadonly\", \"Whether the editor is read only\")), i.inDiffEditor = new t.c(\"inDiffEditor\", !1, r.a(\"inDiffEditor\", \"Whether the context is a diff editor\")), i.columnSelection = new t.c(\"editorColumnSelection\", !1, r.a(\"editorColumnSelection\", \"Whether `editor.columnSelection` is enabled\")), i.writable = i.readOnly.toNegated(), i.hasNonEmptySelection = new t.c(\"editorHasSelection\", !1, r.a(\"editorHasSelection\", \"Whether the editor has text selected\")), i.hasOnlyEmptySelection = i.hasNonEmptySelection.toNegated(), i.hasMultipleSelections = new t.c(\"editorHasMultipleSelections\", !1, r.a(\"editorHasMultipleSelections\", \"Whether the editor has multiple selections\")), i.hasSingleSelection = i.hasMultipleSelections.toNegated(), i.tabMovesFocus = new t.c(\"editorTabMovesFocus\", !1, r.a(\"editorTabMovesFocus\", \"Whether `Tab` will move focus out of the editor\")), i.tabDoesNotMoveFocus = i.tabMovesFocus.toNegated(), i.isInWalkThroughSnippet = new t.c(\"isInEmbeddedEditor\", !1, !0), i.canUndo = new t.c(\"canUndo\", !1, !0), i.canRedo = new t.c(\"canRedo\", !1, !0), i.hoverVisible = new t.c(\"editorHoverVisible\", !1, r.a(\"editorHoverVisible\", \"Whether the editor hover is visible\")), i.inCompositeEditor = new t.c(\"inCompositeEditor\", void 0, r.a(\"inCompositeEditor\", \"Whether the editor is part of a larger editor (e.g. notebooks)\")), i.notInCompositeEditor = i.inCompositeEditor.toNegated(), i.languageId = new t.c(\"editorLangId\", \"\", r.a(\"editorLangId\", \"The language identifier of the editor\")), i.hasCompletionItemProvider = new t.c(\"editorHasCompletionItemProvider\", !1, r.a(\"editorHasCompletionItemProvider\", \"Whether the editor has a completion item provider\")), i.hasCodeActionsProvider = new t.c(\"editorHasCodeActionsProvider\", !1, r.a(\"editorHasCodeActionsProvider\", \"Whether the editor has a code actions provider\")), i.hasCodeLensProvider = new t.c(\"editorHasCodeLensProvider\", !1, r.a(\"editorHasCodeLensProvider\", \"Whether the editor has a code lens provider\")), i.hasDefinitionProvider = new t.c(\"editorHasDefinitionProvider\", !1, r.a(\"editorHasDefinitionProvider\", \"Whether the editor has a definition provider\")), i.hasDeclarationProvider = new t.c(\"editorHasDeclarationProvider\", !1, r.a(\"editorHasDeclarationProvider\", \"Whether the editor has a declaration provider\")), i.hasImplementationProvider = new t.c(\"editorHasImplementationProvider\", !1, r.a(\"editorHasImplementationProvider\", \"Whether the editor has an implementation provider\")), i.hasTypeDefinitionProvider = new t.c(\"editorHasTypeDefinitionProvider\", !1, r.a(\"editorHasTypeDefinitionProvider\", \"Whether the editor has a type definition provider\")), i.hasHoverProvider = new t.c(\"editorHasHoverProvider\", !1, r.a(\"editorHasHoverProvider\", \"Whether the editor has a hover provider\")), i.hasDocumentHighlightProvider = new t.c(\"editorHasDocumentHighlightProvider\", !1, r.a(\"editorHasDocumentHighlightProvider\", \"Whether the editor has a document highlight provider\")), i.hasDocumentSymbolProvider = new t.c(\"editorHasDocumentSymbolProvider\", !1, r.a(\"editorHasDocumentSymbolProvider\", \"Whether the editor has a document symbol provider\")), i.hasReferenceProvider = new t.c(\"editorHasReferenceProvider\", !1, r.a(\"editorHasReferenceProvider\", \"Whether the editor has a reference provider\")), i.hasRenameProvider = new t.c(\"editorHasRenameProvider\", !1, r.a(\"editorHasRenameProvider\", \"Whether the editor has a rename provider\")), i.hasSignatureHelpProvider = new t.c(\"editorHasSignatureHelpProvider\", !1, r.a(\"editorHasSignatureHelpProvider\", \"Whether the editor has a signature help provider\")), i.hasInlayHintsProvider = new t.c(\"editorHasInlayHintsProvider\", !1, r.a(\"editorHasInlayHintsProvider\", \"Whether the editor has an inline hints provider\")), i.hasDocumentFormattingProvider = new t.c(\"editorHasDocumentFormattingProvider\", !1, r.a(\"editorHasDocumentFormattingProvider\", \"Whether the editor has a document formatting provider\")), i.hasDocumentSelectionFormattingProvider = new t.c(\"editorHasDocumentSelectionFormattingProvider\", !1, r.a(\"editorHasDocumentSelectionFormattingProvider\", \"Whether the editor has a document selection formatting provider\")), i.hasMultipleDocumentFormattingProvider = new t.c(\"editorHasMultipleDocumentFormattingProvider\", !1, r.a(\"editorHasMultipleDocumentFormattingProvider\", \"Whether the editor has multiple document formatting providers\")), i.hasMultipleDocumentSelectionFormattingProvider = new t.c(\"editorHasMultipleDocumentSelectionFormattingProvider\", !1, r.a(\"editorHasMultipleDocumentSelectionFormattingProvider\", \"Whether the editor has multiple document selection formatting providers\"))\n}, function(e, t) {\n    e.exports = require(\"electron\")\n}, function(e, t, i) {\n    \"use strict\";\n    i.d(t, \"b\", (function() {\n        return c\n    })), i.d(t, \"g\", (function() {\n        return h\n    })), i.d(t, \"d\", (function() {\n        return r\n    })), i.d(t, \"e\", (function() {\n        return u\n    })), i.d(t, \"a\", (function() {\n        return p\n    })), i.d(t, \"f\", (function() {\n        return f\n    })), i.d(t, \"c\", (function() {\n        return m\n    }));\n    var n, r, o = i(33),\n        s = i(2),\n        a = i(4),\n        l = i(26),\n        d = (t = i(58), i(119));\n    const c = Object(l.c)(\"themeService\");\n\n    function h(e) {\n        return {\n            id: e\n        }\n    }\n\n    function u(e) {\n        switch (e) {\n            case d.a.DARK:\n                return \"vs-dark\";\n            case d.a.HIGH_CONTRAST:\n                return \"hc-black\";\n            default:\n                return \"vs\"\n        }\n    }(n || (n = {})).isThemeColor = function(e) {\n            return e && \"object\" == typeof e && \"string\" == typeof e.id\n        },\n        function(e) {\n            e.isThemeIcon = function(e) {\n                return e && \"object\" == typeof e && \"string\" == typeof e.id && (void 0 === e.color || n.isThemeColor(e.color))\n            };\n            const t = new RegExp(`^\\\\$\\\\((${o.a.iconNameExpression}(?:${o.a.iconModifierExpression})?)\\\\)$`);\n            e.fromString = function(e) {\n                if (e = t.exec(e)) {\n                    var [, e] = e;\n                    return {\n                        id: e\n                    }\n                }\n            }, e.modify = function(e, t) {\n                let i = e.id;\n                return -1 !== (e = i.lastIndexOf(\"~\")) && (i = i.substring(0, e)), t && (i = `${i}~${t}`), {\n                    id: i\n                }\n            }, e.isEqual = function(e, t) {\n                return e.id === t.id && (null === (e = e.color) || void 0 === e ? void 0 : e.id) === (null === (t = t.color) || void 0 === t ? void 0 : t.id)\n            }, e.asThemeIcon = function(e, t) {\n                return {\n                    id: e.id,\n                    color: t ? h(t) : void 0\n                }\n            }, e.asClassNameArray = o.a.asClassNameArray, e.asClassName = o.a.asClassName, e.asCSSSelector = o.a.asCSSSelector\n        }(r = r || {});\n    const p = {\n        ThemingContribution: \"base.contributions.theming\"\n    };\n    let g = new class {\n        constructor() {\n            this.themingParticipants = [], this.themingParticipants = [], this.onThemingParticipantAddedEmitter = new s.b\n        }\n        onColorThemeChange(e) {\n            return this.themingParticipants.push(e), this.onThemingParticipantAddedEmitter.fire(e), Object(a.i)(() => {\n                var t = this.themingParticipants.indexOf(e);\n                this.themingParticipants.splice(t, 1)\n            })\n        }\n        getThemingParticipants() {\n            return this.themingParticipants\n        }\n    };\n\n    function f(e) {\n        return g.onColorThemeChange(e)\n    }\n    t.a.add(p.ThemingContribution, g);\n    class m extends a.a {\n        constructor(e) {\n            super(), this.themeService = e, this.theme = e.getColorTheme(), this._register(this.themeService.onDidColorThemeChange(e => this.onThemeChange(e)))\n        }\n        onThemeChange(e) {\n            this.theme = e, this.updateStyles()\n        }\n        updateStyles() {}\n    }\n}, function(e, t) {\n    e.exports = function(e) {\n        var t = [];\n        return t.toString = function() {\n            return this.map((function(t) {\n                var i = function(e, t) {\n                    var i = e[1] || \"\",\n                        n = e[3];\n                    return n ? t && \"function\" == typeof btoa ? (e = function(e) {\n                        return \"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,\" + btoa(unescape(encodeURIComponent(JSON.stringify(e)))) + \" */\"\n                    }(n), t = n.sources.map((function(e) {\n                        return \"/*# sourceURL=\" + n.sourceRoot + e + \" */\"\n                    })), [i].concat(t).concat([e]).join(\"\\n\")) : [i].join(\"\\n\") : i\n                }(t, e);\n                return t[2] ? \"@media \" + t[2] + \"{\" + i + \"}\" : i\n            })).join(\"\")\n        }, t.i = function(e, i) {\n            \"string\" == typeof e && (e = [\n                [null, e, \"\"]\n            ]);\n            for (var n = {}, r = 0; r < this.length; r++) {\n                var o = this[r][0];\n                \"number\" == typeof o && (n[o] = !0)\n            }\n            for (r = 0; r < e.length; r++) {\n                var s = e[r];\n                \"number\" == typeof s[0] && n[s[0]] || (i && !s[2] ? s[2] = i : i && (s[2] = \"(\" + s[2] + \") and (\" + i + \")\"), t.push(s))\n            }\n        }, t\n    }\n}, function(e, t, i) {\n    \"use strict\";\n\n    function n(e, t) {\n        for (var i = [], n = {}, r = 0; r < t.length; r++) {\n            var o = (s = t[r])[0],\n                s = {\n                    id: e + \":\" + r,\n                    css: s[1],\n                    media: s[2],\n                    sourceMap: s[3]\n                };\n            n[o] ? n[o].parts.push(s) : i.push(n[o] = {\n                id: o,\n                parts: [s]\n            })\n        }\n        return i\n    }\n    if (i.r(t), i.d(t, \"default\", (function() {\n            return p\n        })), t = \"undefined\" != typeof document, \"undefined\" != typeof DEBUG && DEBUG && !t) throw new Error(\"vue-style-loader cannot be used in a non-browser environment. Use { target: 'node' } in your Webpack config to indicate a server-rendering environment.\");\n    var r = {},\n        o = t && (document.head || document.getElementsByTagName(\"head\")[0]),\n        s = null,\n        a = 0,\n        l = !1,\n        d = function() {},\n        c = null,\n        h = \"data-vue-ssr-id\",\n        u = \"undefined\" != typeof navigator && /msie [6-9]\\b/.test(navigator.userAgent.toLowerCase());\n\n    function p(e, t, i, o) {\n        l = i, c = o || {};\n        var s = n(e, t);\n        return g(s),\n            function(t) {\n                for (var i = [], o = 0; o < s.length; o++) {\n                    var a = s[o];\n                    (l = r[a.id]).refs--, i.push(l)\n                }\n                t ? g(s = n(e, t)) : s = [];\n                var l;\n                for (o = 0; o < i.length; o++)\n                    if (0 === (l = i[o]).refs) {\n                        for (var d = 0; d < l.parts.length; d++) l.parts[d]();\n                        delete r[l.id]\n                    }\n            }\n    }\n\n    function g(e) {\n        for (var t = 0; t < e.length; t++) {\n            var i = e[t],\n                n = r[i.id];\n            if (n) {\n                n.refs++;\n                for (var o = 0; o < n.parts.length; o++) n.parts[o](i.parts[o]);\n                for (; o < i.parts.length; o++) n.parts.push(m(i.parts[o]));\n                n.parts.length > i.parts.length && (n.parts.length = i.parts.length)\n            } else {\n                var s = [];\n                for (o = 0; o < i.parts.length; o++) s.push(m(i.parts[o]));\n                r[i.id] = {\n                    id: i.id,\n                    refs: 1,\n                    parts: s\n                }\n            }\n        }\n    }\n\n    function f() {\n        var e = document.createElement(\"style\");\n        return e.type = \"text/css\", o.appendChild(e), e\n    }\n\n    function m(e) {\n        var t, i, n, r = document.querySelector(\"style[\" + h + '~=\"' + e.id + '\"]');\n        if (r) {\n            if (l) return d;\n            r.parentNode.removeChild(r)\n        }\n        return n = u ? (t = a++, r = s = s || f(), i = _.bind(null, r, t, !1), _.bind(null, r, t, !0)) : (r = f(), i = function(e, t) {\n                var i = t.css,\n                    n = t.media,\n                    r = t.sourceMap;\n                if (n && e.setAttribute(\"media\", n), c.ssrId && e.setAttribute(h, t.id), r && (i += \"\\n/*# sourceURL=\" + r.sources[0] + \" */\", i += \"\\n/*# sourceMappingURL=data:application/json;base64,\" + btoa(unescape(encodeURIComponent(JSON.stringify(r)))) + \" */\"), e.styleSheet) e.styleSheet.cssText = i;\n                else {\n                    for (; e.firstChild;) e.removeChild(e.firstChild);\n                    e.appendChild(document.createTextNode(i))\n                }\n            }.bind(null, r), function() {\n                r.parentNode.removeChild(r)\n            }), i(e),\n            function(t) {\n                t ? t.css === e.css && t.media === e.media && t.sourceMap === e.sourceMap || i(e = t) : n()\n            }\n    }\n    var v, b = (v = [], function(e, t) {\n        return v[e] = t, v.filter(Boolean).join(\"\\n\")\n    });\n\n    function _(e, t, i, n) {\n        i = i ? \"\" : n.css, e.styleSheet ? e.styleSheet.cssText = b(t, i) : (n = document.createTextNode(i), (i = e.childNodes)[t] && e.removeChild(i[t]), i.length ? e.insertBefore(n, i[t]) : e.appendChild(n))\n    }\n}, function(e, t, i) {\n    \"use strict\";\n    var n, r;\n    i.d(t, \"b\", (function() {\n        return n\n    })), i.d(t, \"a\", (function() {\n        return o\n    })), i.d(t, \"c\", (function() {\n        return a\n    })), i.d(t, \"d\", (function() {\n        return l\n    })), (r = n = n || {}).serviceIds = new Map, r.DI_TARGET = \"$di$target\", r.DI_DEPENDENCIES = \"$di$dependencies\", r.getServiceDependencies = function(e) {\n        return e[r.DI_DEPENDENCIES] || []\n    };\n    const o = a(\"instantiationService\");\n\n    function s(e, t, i, r) {\n        t[n.DI_TARGET] === t ? t[n.DI_DEPENDENCIES].push({\n            id: e,\n            index: i,\n            optional: r\n        }) : (t[n.DI_DEPENDENCIES] = [{\n            id: e,\n            index: i,\n            optional: r\n        }], t[n.DI_TARGET] = t)\n    }\n\n    function a(e) {\n        if (n.serviceIds.has(e)) return n.serviceIds.get(e);\n        const t = function(e, i, n) {\n            if (3 !== arguments.length) throw new Error(\"@IServiceName-decorator can only be used to decorate a parameter\");\n            s(t, e, n, !1)\n        };\n        return t.toString = () => e, n.serviceIds.set(e, t), t\n    }\n\n    function l(e) {\n        return function(t, i, n) {\n            if (3 !== arguments.length) throw new Error(\"@optional-decorator can only be used to decorate a parameter\");\n            s(e, t, n, !0)\n        }\n    }\n}, function(e, t) {\n    e.exports = require(\"vuex\")\n}, function(e, t, i) {\n    \"use strict\";\n\n    function n(e, t = 0) {\n        return e[e.length - (1 + t)]\n    }\n\n    function r(e) {\n        if (0 === e.length) throw new Error(\"Invalid tail call\");\n        return [e.slice(0, e.length - 1), e[e.length - 1]]\n    }\n\n    function o(e, t, i = ((e, t) => e === t)) {\n        if (e === t) return !0;\n        if (!e || !t) return !1;\n        if (e.length !== t.length) return !1;\n        for (let n = 0, r = e.length; n < r; n++)\n            if (!i(e[n], t[n])) return !1;\n        return !0\n    }\n\n    function s(e, t, i) {\n        let n = 0,\n            r = e.length - 1;\n        for (; n <= r;) {\n            var o = (n + r) / 2 | 0,\n                s = i(e[o], t);\n            if (s < 0) n = 1 + o;\n            else {\n                if (!(0 < s)) return o;\n                r = o - 1\n            }\n        }\n        return -(n + 1)\n    }\n\n    function a(e, t) {\n        let i = 0,\n            n = e.length;\n        if (0 === n) return 0;\n        for (; i < n;) {\n            var r = Math.floor((i + n) / 2);\n            t(e[r]) ? n = r : i = r + 1\n        }\n        return i\n    }\n\n    function l(e) {\n        return e.filter(e => !!e)\n    }\n\n    function d(e) {\n        return !Array.isArray(e) || 0 === e.length\n    }\n\n    function c(e) {\n        return Array.isArray(e) && 0 < e.length\n    }\n\n    function h(e, t = (e => e)) {\n        const i = new Set;\n        return e.filter(e => (e = t(e), !i.has(e) && (i.add(e), !0)))\n    }\n\n    function u(e, t) {\n        if (-1 !== (t = function(e, t) {\n                for (let i = e.length - 1; 0 <= i; i--) {\n                    if (t(e[i])) return i\n                }\n                return -1\n            }(e, t))) return e[t]\n    }\n\n    function p(e, t) {\n        return 0 < e.length ? e[0] : t\n    }\n\n    function g(e, t) {\n        let i = \"number\" == typeof t ? e : 0;\n        \"number\" == typeof t ? i = e : (i = 0, t = e);\n        const n = [];\n        if (i <= t)\n            for (let e = i; e < t; e++) n.push(e);\n        else\n            for (let e = i; e > t; e--) n.push(e);\n        return n\n    }\n\n    function f(e, t, i) {\n        const n = e.slice(0, t);\n        return t = e.slice(t), n.concat(i, t)\n    }\n\n    function m(e, t) {\n        var i = e.indexOf(t); - 1 < i && (e.splice(i, 1), e.unshift(t))\n    }\n\n    function v(e, t) {\n        var i = e.indexOf(t); - 1 < i && (e.splice(i, 1), e.push(t))\n    }\n\n    function b(e) {\n        return Array.isArray(e) ? e : [e]\n    }\n\n    function _(e, t, i, n) {\n        return t = w(e, t), i = e.splice(t, i),\n            function(e, t, i) {\n                var n = w(e, t),\n                    r = (t = e.length, i.length);\n                e.length = t + r;\n                for (let i = t - 1; i >= n; i--) e[i + r] = e[i];\n                for (let t = 0; t < r; t++) e[t + n] = i[t]\n            }(e, t, n), i\n    }\n\n    function w(e, t) {\n        return t < 0 ? Math.max(t + e.length, 0) : Math.min(t, e.length)\n    }\n    i.d(t, \"q\", (function() {\n        return n\n    })), i.d(t, \"r\", (function() {\n        return r\n    })), i.d(t, \"g\", (function() {\n        return o\n    })), i.d(t, \"d\", (function() {\n        return s\n    })), i.d(t, \"h\", (function() {\n        return a\n    })), i.d(t, \"e\", (function() {\n        return l\n    })), i.d(t, \"k\", (function() {\n        return d\n    })), i.d(t, \"l\", (function() {\n        return c\n    })), i.d(t, \"f\", (function() {\n        return h\n    })), i.d(t, \"i\", (function() {\n        return u\n    })), i.d(t, \"j\", (function() {\n        return p\n    })), i.d(t, \"o\", (function() {\n        return g\n    })), i.d(t, \"b\", (function() {\n        return f\n    })), i.d(t, \"n\", (function() {\n        return m\n    })), i.d(t, \"m\", (function() {\n        return v\n    })), i.d(t, \"c\", (function() {\n        return b\n    })), i.d(t, \"p\", (function() {\n        return _\n    })), i.d(t, \"a\", (function() {\n        return y\n    }));\n    class y {\n        constructor(e) {\n            this.items = e, this.firstIdx = 0, this.lastIdx = this.items.length - 1\n        }\n        takeWhile(e) {\n            let t = this.firstIdx;\n            for (; t < this.items.length && e(this.items[t]);) t++;\n            var i = t === this.firstIdx ? null : this.items.slice(this.firstIdx, t);\n            return this.firstIdx = t, i\n        }\n        takeFromEndWhile(e) {\n            let t = this.lastIdx;\n            for (; 0 <= t && e(this.items[t]);) t--;\n            var i = t === this.lastIdx ? null : this.items.slice(t + 1, this.lastIdx + 1);\n            return this.lastIdx = t, i\n        }\n        peek() {\n            return this.items[this.firstIdx]\n        }\n    }\n}, function(e, t, i) {\n    \"use strict\";\n    i.d(t, \"h\", (function() {\n        return s\n    })), i.d(t, \"b\", (function() {\n        return a\n    })), i.d(t, \"j\", (function() {\n        return l\n    })), i.d(t, \"a\", (function() {\n        return d\n    })), i.d(t, \"k\", (function() {\n        return p\n    })), i.d(t, \"l\", (function() {\n        return f\n    })), i.d(t, \"o\", (function() {\n        return _\n    })), i.d(t, \"i\", (function() {\n        return n\n    })), i.d(t, \"e\", (function() {\n        return C\n    })), i.d(t, \"f\", (function() {\n        return S\n    })), i.d(t, \"n\", (function() {\n        return k\n    })), i.d(t, \"c\", (function() {\n        return E\n    })), i.d(t, \"d\", (function() {\n        return N\n    })), i.d(t, \"m\", (function() {\n        return D\n    })), i.d(t, \"g\", (function() {\n        return T\n    }));\n    var n, r = i(0),\n        o = i(9);\n    t = i(93);\n    const s = 8;\n    class a {\n        constructor(e) {\n            this._values = e\n        }\n        hasChanged(e) {\n            return this._values[e]\n        }\n    }\n    class l {\n        constructor() {\n            this._values = []\n        }\n        _read(e) {\n            return this._values[e]\n        }\n        get(e) {\n            return this._values[e]\n        }\n        _write(e, t) {\n            this._values[e] = t\n        }\n    }\n    class d {\n        constructor() {\n            this.stableMinimapLayoutInput = null, this.stableFitMaxMinimapScale = 0, this.stableFitRemainingWidth = 0\n        }\n    }\n    class c {\n        constructor(e, t, i, n) {\n            this.id = e, this.name = t, this.defaultValue = i, this.schema = n\n        }\n        compute(e, t, i) {\n            return i\n        }\n    }\n    class h {\n        constructor(e, t = null) {\n            this.schema = void 0, this.id = e, this.name = \"_never_\", this.defaultValue = void 0, this.deps = t\n        }\n        validate(e) {\n            return this.defaultValue\n        }\n    }\n    class u {\n        constructor(e, t, i, n) {\n            this.id = e, this.name = t, this.defaultValue = i, this.schema = n\n        }\n        validate(e) {\n            return void 0 === e ? this.defaultValue : e\n        }\n        compute(e, t, i) {\n            return i\n        }\n    }\n\n    function p(e, t) {\n        return void 0 === e ? t : \"false\" !== e && Boolean(e)\n    }\n    class g extends u {\n        constructor(e, t, i, n) {\n            void 0 !== n && (n.type = \"boolean\", n.default = i), super(e, t, i, n)\n        }\n        validate(e) {\n            return p(e, this.defaultValue)\n        }\n    }\n\n    function f(e, t, i, n) {\n        return void 0 === e ? t : (e = parseInt(e, 10), isNaN(e) ? t : (e = Math.max(i, e), 0 | (e = Math.min(n, e))))\n    }\n    class m extends u {\n        constructor(e, t, i, n, r, o) {\n            void 0 !== o && (o.type = \"integer\", o.default = i, o.minimum = n, o.maximum = r), super(e, t, i, o), this.minimum = n, this.maximum = r\n        }\n        static clampedInt(e, t, i, n) {\n            return f(e, t, i, n)\n        }\n        validate(e) {\n            return m.clampedInt(e, this.defaultValue, this.minimum, this.maximum)\n        }\n    }\n    class v extends u {\n        constructor(e, t, i, n, r) {\n            void 0 !== r && (r.type = \"number\", r.default = i), super(e, t, i, r), this.validationFn = n\n        }\n        static clamp(e, t, i) {\n            return e < t ? t : i < e ? i : e\n        }\n        static float(e, t) {\n            return \"number\" == typeof e ? e : void 0 === e ? t : (e = parseFloat(e), isNaN(e) ? t : e)\n        }\n        validate(e) {\n            return this.validationFn(v.float(e, this.defaultValue))\n        }\n    }\n    class b extends u {\n        static string(e, t) {\n            return \"string\" != typeof e ? t : e\n        }\n        constructor(e, t, i, n) {\n            void 0 !== n && (n.type = \"string\", n.default = i), super(e, t, i, n)\n        }\n        validate(e) {\n            return b.string(e, this.defaultValue)\n        }\n    }\n\n    function _(e, t, i) {\n        return \"string\" != typeof e || -1 === i.indexOf(e) ? t : e\n    }\n    class w extends u {\n        constructor(e, t, i, n, r) {\n            void 0 !== r && (r.type = \"string\", r.enum = n, r.default = i), super(e, t, i, r), this._allowedValues = n\n        }\n        validate(e) {\n            return _(e, this.defaultValue, this._allowedValues)\n        }\n    }\n    class y extends c {\n        constructor(e, t, i, n, r, o, s) {\n            void 0 !== s && (s.type = \"string\", s.enum = r, s.default = n), super(e, t, i, s), this._allowedValues = r, this._convert = o\n        }\n        validate(e) {\n            return \"string\" != typeof e || -1 === this._allowedValues.indexOf(e) ? this.defaultValue : this._convert(e)\n        }\n    }(i = n = n || {})[i.Line = 1] = \"Line\", i[i.Block = 2] = \"Block\", i[i.Underline = 3] = \"Underline\", i[i.LineThin = 4] = \"LineThin\", i[i.BlockOutline = 5] = \"BlockOutline\", i[i.UnderlineThin = 6] = \"UnderlineThin\";\n    class C extends c {\n        constructor() {\n            super(44, \"fontLigatures\", C.OFF, {\n                anyOf: [{\n                    type: \"boolean\",\n                    description: r.a(\"fontLigatures\", \"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.\")\n                }, {\n                    type: \"string\",\n                    description: r.a(\"fontFeatureSettings\", \"Explicit 'font-feature-settings' CSS property. A boolean can be passed instead if one only needs to turn on/off ligatures.\")\n                }],\n                description: r.a(\"fontLigaturesGeneral\", \"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.\"),\n                default: !1\n            })\n        }\n        validate(e) {\n            return void 0 === e ? this.defaultValue : \"string\" == typeof e ? \"false\" === e ? C.OFF : \"true\" === e ? C.ON : e : Boolean(e) ? C.ON : C.OFF\n        }\n    }\n    C.OFF = '\"liga\" off, \"calt\" off', C.ON = '\"liga\" on, \"calt\" on';\n    class x extends c {\n        constructor() {\n            super(46, \"fontWeight\", E.fontWeight, {\n                anyOf: [{\n                    type: \"number\",\n                    minimum: x.MINIMUM_VALUE,\n                    maximum: x.MAXIMUM_VALUE,\n                    errorMessage: r.a(\"fontWeightErrorMessage\", 'Only \"normal\" and \"bold\" keywords or numbers between 1 and 1000 are allowed.')\n                }, {\n                    type: \"string\",\n                    pattern: \"^(normal|bold|1000|[1-9][0-9]{0,2})$\"\n                }, {\n                    enum: x.SUGGESTION_VALUES\n                }],\n                default: E.fontWeight,\n                description: r.a(\"fontWeight\", 'Controls the font weight. Accepts \"normal\" and \"bold\" keywords or numbers between 1 and 1000.')\n            })\n        }\n        validate(e) {\n            return \"normal\" === e || \"bold\" === e ? e : String(m.clampedInt(e, E.fontWeight, x.MINIMUM_VALUE, x.MAXIMUM_VALUE))\n        }\n    }\n    x.SUGGESTION_VALUES = [\"normal\", \"bold\", \"100\", \"200\", \"300\", \"400\", \"500\", \"600\", \"700\", \"800\", \"900\"], x.MINIMUM_VALUE = 1, x.MAXIMUM_VALUE = 1e3;\n    class S extends h {\n        constructor() {\n            super(129, [49, 57, 37, 64, 91, 59, 60, 93, 116, 119, 120, 121, 2])\n        }\n        compute(e, t, i) {\n            return S.computeLayout(t, {\n                memory: e.memory,\n                outerWidth: e.outerWidth,\n                outerHeight: e.outerHeight,\n                isDominatedByLongLines: e.isDominatedByLongLines,\n                lineHeight: e.fontInfo.lineHeight,\n                viewLineCount: e.viewLineCount,\n                lineNumbersDigitCount: e.lineNumbersDigitCount,\n                typicalHalfwidthCharacterWidth: e.fontInfo.typicalHalfwidthCharacterWidth,\n                maxDigitWidth: e.fontInfo.maxDigitWidth,\n                pixelRatio: e.pixelRatio\n            })\n        }\n        static computeContainedMinimapLineCount(e) {\n            var t = e.height / e.lineHeight,\n                i = e.scrollBeyondLastLine ? t - 1 : 0,\n                n = (e.viewLineCount + i) / (e.pixelRatio * e.height);\n            return {\n                typicalViewportLineCount: t,\n                extraLinesBeyondLastLine: i,\n                desiredRatio: n,\n                minimapLineCount: Math.floor(e.viewLineCount / n)\n            }\n        }\n        static _computeMinimapLayout(e, t) {\n            var i = e.outerWidth,\n                n = e.outerHeight,\n                r = e.pixelRatio;\n            if (!e.minimap.enabled) return {\n                renderMinimap: 0,\n                minimapLeft: 0,\n                minimapWidth: 0,\n                minimapHeightIsEditorHeight: !1,\n                minimapIsSampling: !1,\n                minimapScale: 1,\n                minimapLineHeight: 1,\n                minimapCanvasInnerWidth: 0,\n                minimapCanvasInnerHeight: Math.floor(r * n),\n                minimapCanvasOuterWidth: 0,\n                minimapCanvasOuterHeight: n\n            };\n            var o, a = (o = t.stableMinimapLayoutInput) && e.outerHeight === o.outerHeight && e.lineHeight === o.lineHeight && e.typicalHalfwidthCharacterWidth === o.typicalHalfwidthCharacterWidth && e.pixelRatio === o.pixelRatio && e.scrollBeyondLastLine === o.scrollBeyondLastLine && e.minimap.enabled === o.minimap.enabled && e.minimap.side === o.minimap.side && e.minimap.size === o.minimap.size && e.minimap.showSlider === o.minimap.showSlider && e.minimap.renderCharacters === o.minimap.renderCharacters && e.minimap.maxColumn === o.minimap.maxColumn && e.minimap.scale === o.minimap.scale && e.verticalScrollbarWidth === o.verticalScrollbarWidth && e.isViewportWrapping === o.isViewportWrapping,\n                l = e.lineHeight,\n                d = e.typicalHalfwidthCharacterWidth,\n                c = e.scrollBeyondLastLine,\n                h = e.minimap.renderCharacters;\n            let u = 2 <= r ? Math.round(2 * e.minimap.scale) : e.minimap.scale;\n            var p = e.minimap.maxColumn,\n                g = e.minimap.size,\n                f = e.minimap.side,\n                m = e.verticalScrollbarWidth,\n                v = e.viewLineCount,\n                b = e.remainingWidth,\n                _ = e.isViewportWrapping,\n                w = h ? 2 : 3;\n            let y = Math.floor(r * n);\n            var C = y / r;\n            let x = !1,\n                k = !1,\n                L = w * u,\n                O = u / r,\n                E = 1;\n            if (\"fill\" === g || \"fit\" === g) {\n                var {\n                    typicalViewportLineCount: N,\n                    extraLinesBeyondLastLine: o,\n                    desiredRatio: c,\n                    minimapLineCount: n\n                } = S.computeContainedMinimapLineCount({\n                    viewLineCount: v,\n                    scrollBeyondLastLine: c,\n                    height: n,\n                    lineHeight: l,\n                    pixelRatio: r\n                });\n                if (1 < v / n) x = !0, k = !0, u = 1, L = 1, O = u / r;\n                else {\n                    let i = !1,\n                        s = u + 1;\n                    \"fit\" === g && (n = Math.ceil((v + o) * L), _ && a && b <= t.stableFitRemainingWidth ? (i = !0, s = t.stableFitMaxMinimapScale) : i = n > y), \"fill\" !== g && !i || (x = !0, g = u, L = Math.min(l * r, Math.max(1, Math.floor(1 / c))), _ && a && b <= t.stableFitRemainingWidth && (s = t.stableFitMaxMinimapScale), u = Math.min(s, Math.max(1, Math.floor(L / w))), u > g && (E = Math.min(2, u / g)), O = u / r / E, y = Math.ceil(Math.max(N, v + o) * L), _ ? (t.stableMinimapLayoutInput = e, t.stableFitRemainingWidth = b, t.stableFitMaxMinimapScale = u) : (t.stableMinimapLayoutInput = null, t.stableFitRemainingWidth = 0))\n                }\n            }\n            return p = Math.floor(p * O), b = Math.min(p, Math.max(0, Math.floor((b - m - 2) * O / (d + O))) + s), r = (d = Math.floor(r * b)) / r, {\n                renderMinimap: h ? 1 : 2,\n                minimapLeft: \"left\" === f ? 0 : i - b - m,\n                minimapWidth: b,\n                minimapHeightIsEditorHeight: x,\n                minimapIsSampling: k,\n                minimapScale: u,\n                minimapLineHeight: L,\n                minimapCanvasInnerWidth: d = Math.floor(d * E),\n                minimapCanvasInnerHeight: y,\n                minimapCanvasOuterWidth: r,\n                minimapCanvasOuterHeight: C\n            }\n        }\n        static computeLayout(e, t) {\n            var i = 0 | t.outerWidth,\n                n = 0 | t.outerHeight,\n                r = 0 | t.lineHeight,\n                o = 0 | t.lineNumbersDigitCount,\n                s = t.typicalHalfwidthCharacterWidth,\n                a = t.maxDigitWidth,\n                l = t.pixelRatio,\n                c = t.viewLineCount,\n                h = \"inherit\" === (O = e.get(121)) ? e.get(120) : O,\n                u = \"inherit\" === h ? e.get(116) : h,\n                p = e.get(119),\n                g = e.get(2),\n                f = t.isDominatedByLongLines,\n                v = e.get(49),\n                b = 0 !== e.get(59).renderType,\n                _ = e.get(60),\n                w = e.get(93),\n                y = e.get(64),\n                C = e.get(91),\n                x = C.verticalScrollbarSize,\n                k = C.verticalHasArrows,\n                L = C.arrowSize,\n                O = C.horizontalScrollbarSize;\n            const E = e.get(57);\n            let N;\n            C = e.get(37), N = \"string\" == typeof E && /^\\d+(\\.\\d+)?ch$/.test(E) ? (e = parseFloat(E.substr(0, E.length - 2)), m.clampedInt(e * s, 0, 0, 1e3)) : m.clampedInt(E, 0, 0, 1e3), C && (N += 16);\n            let D = 0;\n            b && (_ = Math.max(o, _), D = Math.round(_ * a));\n            let I = 0;\n            v && (I = r);\n            let T = 0,\n                M = T + I,\n                P = M + D,\n                A = P + N;\n            v = i - I - D - N;\n            let R = !1,\n                F = !1,\n                j = -1;\n            return 2 !== g && (\"inherit\" === h && f ? (R = !0, F = !0) : \"on\" === u || \"bounded\" === u ? F = !0 : \"wordWrapColumn\" === u && (j = p)), 0 !== (t = S._computeMinimapLayout({\n                outerWidth: i,\n                outerHeight: n,\n                lineHeight: r,\n                typicalHalfwidthCharacterWidth: s,\n                pixelRatio: l,\n                scrollBeyondLastLine: w,\n                minimap: y,\n                verticalScrollbarWidth: x,\n                viewLineCount: c,\n                remainingWidth: v,\n                isViewportWrapping: F\n            }, t.memory || new d)).renderMinimap && 0 === t.minimapLeft && (T += t.minimapWidth, M += t.minimapWidth, P += t.minimapWidth, A += t.minimapWidth), v -= t.minimapWidth, s = Math.max(1, Math.floor((v - x - 2) / s)), L = k ? L : 0, F && (j = Math.max(1, s), \"bounded\" === u && (j = Math.min(j, p))), {\n                width: i,\n                height: n,\n                glyphMarginLeft: T,\n                glyphMarginWidth: I,\n                lineNumbersLeft: M,\n                lineNumbersWidth: D,\n                decorationsLeft: P,\n                decorationsWidth: N,\n                contentLeft: A,\n                contentWidth: v,\n                minimap: t,\n                viewportColumn: s,\n                isWordWrapMinified: R,\n                isViewportWrapping: F,\n                wrappingColumn: j,\n                verticalScrollbarWidth: x,\n                horizontalScrollbarHeight: O,\n                overviewRuler: {\n                    top: L,\n                    width: x,\n                    height: n - 2 * L,\n                    right: 0\n                }\n            }\n        }\n    }\n\n    function k(e) {\n        var t = e.get(86);\n        return \"editable\" === t ? e.get(80) : \"on\" !== t\n    }\n\n    function L(e, t) {\n        if (\"string\" != typeof e) return t;\n        switch (e) {\n            case \"hidden\":\n                return 2;\n            case \"visible\":\n                return 3;\n            default:\n                return 1\n        }\n    }\n\n    function O(e, t, i) {\n        return -1 === (e = i.indexOf(e)) ? t : i[e]\n    }\n    const E = {\n            fontFamily: o.f ? \"Menlo, Monaco, 'Courier New', monospace\" : o.d ? \"'Droid Sans Mono', 'monospace', monospace, 'Droid Sans Fallback'\" : \"Consolas, 'Courier New', monospace\",\n            fontWeight: \"normal\",\n            fontSize: o.f ? 12 : 14,\n            lineHeight: 0,\n            letterSpacing: 0\n        },\n        N = {\n            tabSize: 4,\n            indentSize: 4,\n            insertSpaces: !0,\n            detectIndentation: !0,\n            trimAutoWhitespace: !0,\n            largeFileOptimizations: !0,\n            bracketPairColorizationOptions: {\n                enabled: !1\n            }\n        },\n        D = [];\n\n    function I(e) {\n        return D[e.id] = e\n    }\n    const T = {\n        acceptSuggestionOnCommitCharacter: I(new g(0, \"acceptSuggestionOnCommitCharacter\", !0, {\n            markdownDescription: r.a(\"acceptSuggestionOnCommitCharacter\", \"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.\")\n        })),\n        acceptSuggestionOnEnter: I(new w(1, \"acceptSuggestionOnEnter\", \"on\", [\"on\", \"smart\", \"off\"], {\n            markdownEnumDescriptions: [\"\", r.a(\"acceptSuggestionOnEnterSmart\", \"Only accept a suggestion with `Enter` when it makes a textual change.\"), \"\"],\n            markdownDescription: r.a(\"acceptSuggestionOnEnter\", \"Controls whether suggestions should be accepted on `Enter`, in addition to `Tab`. Helps to avoid ambiguity between inserting new lines or accepting suggestions.\")\n        })),\n        accessibilitySupport: I(new class extends c {\n            constructor() {\n                super(2, \"accessibilitySupport\", 0, {\n                    type: \"string\",\n                    enum: [\"auto\", \"on\", \"off\"],\n                    enumDescriptions: [r.a(\"accessibilitySupport.auto\", \"The editor will use platform APIs to detect when a Screen Reader is attached.\"), r.a(\"accessibilitySupport.on\", \"The editor will be permanently optimized for usage with a Screen Reader. Word wrapping will be disabled.\"), r.a(\"accessibilitySupport.off\", \"The editor will never be optimized for usage with a Screen Reader.\")],\n                    default: \"auto\",\n                    description: r.a(\"accessibilitySupport\", \"Controls whether the editor should run in a mode where it is optimized for screen readers. Setting to on will disable word wrapping.\")\n                })\n            }\n            validate(e) {\n                switch (e) {\n                    case \"auto\":\n                        return 0;\n                    case \"off\":\n                        return 1;\n                    case \"on\":\n                        return 2\n                }\n                return this.defaultValue\n            }\n            compute(e, t, i) {\n                return 0 === i ? e.accessibilitySupport : i\n            }\n        }),\n        accessibilityPageSize: I(new m(3, \"accessibilityPageSize\", 10, 1, 1073741824, {\n            description: r.a(\"accessibilityPageSize\", \"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.\")\n        })),\n        ariaLabel: I(new b(4, \"ariaLabel\", r.a(\"editorViewAccessibleLabel\", \"Editor content\"))),\n        autoClosingBrackets: I(new w(5, \"autoClosingBrackets\", \"languageDefined\", [\"always\", \"languageDefined\", \"beforeWhitespace\", \"never\"], {\n            enumDescriptions: [\"\", r.a(\"editor.autoClosingBrackets.languageDefined\", \"Use language configurations to determine when to autoclose brackets.\"), r.a(\"editor.autoClosingBrackets.beforeWhitespace\", \"Autoclose brackets only when the cursor is to the left of whitespace.\"), \"\"],\n            description: r.a(\"autoClosingBrackets\", \"Controls whether the editor should automatically close brackets after the user adds an opening bracket.\")\n        })),\n        autoClosingDelete: I(new w(6, \"autoClosingDelete\", \"auto\", [\"always\", \"auto\", \"never\"], {\n            enumDescriptions: [\"\", r.a(\"editor.autoClosingDelete.auto\", \"Remove adjacent closing quotes or brackets only if they were automatically inserted.\"), \"\"],\n            description: r.a(\"autoClosingDelete\", \"Controls whether the editor should remove adjacent closing quotes or brackets when deleting.\")\n        })),\n        autoClosingOvertype: I(new w(7, \"autoClosingOvertype\", \"auto\", [\"always\", \"auto\", \"never\"], {\n            enumDescriptions: [\"\", r.a(\"editor.autoClosingOvertype.auto\", \"Type over closing quotes or brackets only if they were automatically inserted.\"), \"\"],\n            description: r.a(\"autoClosingOvertype\", \"Controls whether the editor should type over closing quotes or brackets.\")\n        })),\n        autoClosingQuotes: I(new w(8, \"autoClosingQuotes\", \"languageDefined\", [\"always\", \"languageDefined\", \"beforeWhitespace\", \"never\"], {\n            enumDescriptions: [\"\", r.a(\"editor.autoClosingQuotes.languageDefined\", \"Use language configurations to determine when to autoclose quotes.\"), r.a(\"editor.autoClosingQuotes.beforeWhitespace\", \"Autoclose quotes only when the cursor is to the left of whitespace.\"), \"\"],\n            description: r.a(\"autoClosingQuotes\", \"Controls whether the editor should automatically close quotes after the user adds an opening quote.\")\n        })),\n        autoIndent: I(new y(9, \"autoIndent\", 4, \"full\", [\"none\", \"keep\", \"brackets\", \"advanced\", \"full\"], (function(e) {\n            switch (e) {\n                case \"none\":\n                    return 0;\n                case \"keep\":\n                    return 1;\n                case \"brackets\":\n                    return 2;\n                case \"advanced\":\n                    return 3;\n                case \"full\":\n                    return 4\n            }\n        }), {\n            enumDescriptions: [r.a(\"editor.autoIndent.none\", \"The editor will not insert indentation automatically.\"), r.a(\"editor.autoIndent.keep\", \"The editor will keep the current line's indentation.\"), r.a(\"editor.autoIndent.brackets\", \"The editor will keep the current line's indentation and honor language defined brackets.\"), r.a(\"editor.autoIndent.advanced\", \"The editor will keep the current line's indentation, honor language defined brackets and invoke special onEnterRules defined by languages.\"), r.a(\"editor.autoIndent.full\", \"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.\")],\n            description: r.a(\"autoIndent\", \"Controls whether the editor should automatically adjust the indentation when users type, paste, move or indent lines.\")\n        })),\n        automaticLayout: I(new g(10, \"automaticLayout\", !1)),\n        autoSurround: I(new w(11, \"autoSurround\", \"languageDefined\", [\"languageDefined\", \"quotes\", \"brackets\", \"never\"], {\n            enumDescriptions: [r.a(\"editor.autoSurround.languageDefined\", \"Use language configurations to determine when to automatically surround selections.\"), r.a(\"editor.autoSurround.quotes\", \"Surround with quotes but not brackets.\"), r.a(\"editor.autoSurround.brackets\", \"Surround with brackets but not quotes.\"), \"\"],\n            description: r.a(\"autoSurround\", \"Controls whether the editor should automatically surround selections when typing quotes or brackets.\")\n        })),\n        bracketPairColorization: I(new class extends c {\n            constructor() {\n                var e = {\n                    enabled: N.bracketPairColorizationOptions.enabled\n                };\n                super(12, \"bracketPairColorization\", e, {\n                    \"editor.bracketPairColorization.enabled\": {\n                        type: \"boolean\",\n                        default: e.enabled,\n                        description: r.a(\"bracketPairColorization.enabled\", \"Controls whether bracket pair colorization is enabled or not. Use 'workbench.colorCustomizations' to override the bracket highlight colors.\")\n                    }\n                })\n            }\n            validate(e) {\n                return e && \"object\" == typeof e ? {\n                    enabled: p(e.enabled, this.defaultValue.enabled)\n                } : this.defaultValue\n            }\n        }),\n        bracketPairGuides: I(new class extends c {\n            constructor() {\n                var e = {\n                    bracketPairs: !1,\n                    bracketPairsHorizontal: \"active\",\n                    highlightActiveBracketPair: !0,\n                    indentation: !0,\n                    highlightActiveIndentation: !0\n                };\n                super(13, \"guides\", e, {\n                    \"editor.guides.bracketPairs\": {\n                        type: [\"boolean\", \"string\"],\n                        enum: [!0, \"active\", !1],\n                        enumDescriptions: [r.a(\"editor.guides.bracketPairs.true\", \"Enables bracket pair guides.\"), r.a(\"editor.guides.bracketPairs.active\", \"Enables bracket pair guides only for the active bracket pair.\"), r.a(\"editor.guides.bracketPairs.false\", \"Disables bracket pair guides.\")],\n                        default: e.bracketPairs,\n                        description: r.a(\"editor.guides.bracketPairs\", \"Controls whether bracket pair guides are enabled or not.\")\n                    },\n                    \"editor.guides.bracketPairsHorizontal\": {\n                        type: [\"boolean\", \"string\"],\n                        enum: [!0, \"active\", !1],\n                        enumDescriptions: [r.a(\"editor.guides.bracketPairsHorizontal.true\", \"Enables horizontal guides as addition to vertical bracket pair guides.\"), r.a(\"editor.guides.bracketPairsHorizontal.active\", \"Enables horizontal guides only for the active bracket pair.\"), r.a(\"editor.guides.bracketPairsHorizontal.false\", \"Disables horizontal bracket pair guides.\")],\n                        default: e.bracketPairsHorizontal,\n                        description: r.a(\"editor.guides.bracketPairsHorizontal\", \"Controls whether horizontal bracket pair guides are enabled or not.\")\n                    },\n                    \"editor.guides.highlightActiveBracketPair\": {\n                        type: \"boolean\",\n                        default: e.highlightActiveBracketPair,\n                        description: r.a(\"editor.guides.highlightActiveBracketPair\", \"Controls whether bracket pair guides are enabled or not.\")\n                    },\n                    \"editor.guides.indentation\": {\n                        type: \"boolean\",\n                        default: e.indentation,\n                        description: r.a(\"editor.guides.indentation\", \"Controls whether the editor should render indent guides.\")\n                    },\n                    \"editor.guides.highlightActiveIndentation\": {\n                        type: \"boolean\",\n                        default: e.highlightActiveIndentation,\n                        description: r.a(\"editor.guides.highlightActiveIndentation\", \"Controls whether the editor should highlight the active indent guide.\")\n                    }\n                })\n            }\n            validate(e) {\n                return e && \"object\" == typeof e ? {\n                    bracketPairs: O(e.bracketPairs, this.defaultValue.bracketPairs, [!0, !1, \"active\"]),\n                    bracketPairsHorizontal: O(e.bracketPairsHorizontal, this.defaultValue.bracketPairsHorizontal, [!0, !1, \"active\"]),\n                    highlightActiveBracketPair: p(e.highlightActiveBracketPair, this.defaultValue.highlightActiveBracketPair),\n                    indentation: p(e.indentation, this.defaultValue.indentation),\n                    highlightActiveIndentation: p(e.highlightActiveIndentation, this.defaultValue.highlightActiveIndentation)\n                } : this.defaultValue\n            }\n        }),\n        stickyTabStops: I(new g(103, \"stickyTabStops\", !1, {\n            description: r.a(\"stickyTabStops\", \"Emulate selection behavior of tab characters when using spaces for indentation. Selection will stick to tab stops.\")\n        })),\n        codeLens: I(new g(14, \"codeLens\", !0, {\n            description: r.a(\"codeLens\", \"Controls whether the editor shows CodeLens.\")\n        })),\n        codeLensFontFamily: I(new b(15, \"codeLensFontFamily\", \"\", {\n            description: r.a(\"codeLensFontFamily\", \"Controls the font family for CodeLens.\")\n        })),\n        codeLensFontSize: I(new m(16, \"codeLensFontSize\", 0, 0, 100, {\n            type: \"number\",\n            default: 0,\n            minimum: 0,\n            maximum: 100,\n            markdownDescription: r.a(\"codeLensFontSize\", \"Controls the font size in pixels for CodeLens. When set to `0`, the 90% of `#editor.fontSize#` is used.\")\n        })),\n        colorDecorators: I(new g(17, \"colorDecorators\", !0, {\n            description: r.a(\"colorDecorators\", \"Controls whether the editor should render the inline color decorators and color picker.\")\n        })),\n        columnSelection: I(new g(18, \"columnSelection\", !1, {\n            description: r.a(\"columnSelection\", \"Enable that the selection with the mouse and keys is doing column selection.\")\n        })),\n        comments: I(new class extends c {\n            constructor() {\n                var e = {\n                    insertSpace: !0,\n                    ignoreEmptyLines: !0\n                };\n                super(19, \"comments\", e, {\n                    \"editor.comments.insertSpace\": {\n                        type: \"boolean\",\n                        default: e.insertSpace,\n                        description: r.a(\"comments.insertSpace\", \"Controls whether a space character is inserted when commenting.\")\n                    },\n                    \"editor.comments.ignoreEmptyLines\": {\n                        type: \"boolean\",\n                        default: e.ignoreEmptyLines,\n                        description: r.a(\"comments.ignoreEmptyLines\", \"Controls if empty lines should be ignored with toggle, add or remove actions for line comments.\")\n                    }\n                })\n            }\n            validate(e) {\n                return e && \"object\" == typeof e ? {\n                    insertSpace: p(e.insertSpace, this.defaultValue.insertSpace),\n                    ignoreEmptyLines: p(e.ignoreEmptyLines, this.defaultValue.ignoreEmptyLines)\n                } : this.defaultValue\n            }\n        }),\n        contextmenu: I(new g(20, \"contextmenu\", !0)),\n        copyWithSyntaxHighlighting: I(new g(21, \"copyWithSyntaxHighlighting\", !0, {\n            description: r.a(\"copyWithSyntaxHighlighting\", \"Controls whether syntax highlighting should be copied into the clipboard.\")\n        })),\n        cursorBlinking: I(new y(22, \"cursorBlinking\", 1, \"blink\", [\"blink\", \"smooth\", \"phase\", \"expand\", \"solid\"], (function(e) {\n            switch (e) {\n                case \"blink\":\n                    return 1;\n                case \"smooth\":\n                    return 2;\n                case \"phase\":\n                    return 3;\n                case \"expand\":\n                    return 4;\n                case \"solid\":\n                    return 5\n            }\n        }), {\n            description: r.a(\"cursorBlinking\", \"Control the cursor animation style.\")\n        })),\n        cursorSmoothCaretAnimation: I(new g(23, \"cursorSmoothCaretAnimation\", !1, {\n            description: r.a(\"cursorSmoothCaretAnimation\", \"Controls whether the smooth caret animation should be enabled.\")\n        })),\n        cursorStyle: I(new y(24, \"cursorStyle\", n.Line, \"line\", [\"line\", \"block\", \"underline\", \"line-thin\", \"block-outline\", \"underline-thin\"], (function(e) {\n            switch (e) {\n                case \"line\":\n                    return n.Line;\n                case \"block\":\n                    return n.Block;\n                case \"underline\":\n                    return n.Underline;\n                case \"line-thin\":\n                    return n.LineThin;\n                case \"block-outline\":\n                    return n.BlockOutline;\n                case \"underline-thin\":\n                    return n.UnderlineThin\n            }\n        }), {\n            description: r.a(\"cursorStyle\", \"Controls the cursor style.\")\n        })),\n        cursorSurroundingLines: I(new m(25, \"cursorSurroundingLines\", 0, 0, 1073741824, {\n            description: r.a(\"cursorSurroundingLines\", \"Controls the minimal number of visible leading and trailing lines surrounding the cursor. Known as 'scrollOff' or 'scrollOffset' in some other editors.\")\n        })),\n        cursorSurroundingLinesStyle: I(new w(26, \"cursorSurroundingLinesStyle\", \"default\", [\"default\", \"all\"], {\n            enumDescriptions: [r.a(\"cursorSurroundingLinesStyle.default\", \"`cursorSurroundingLines` is enforced only when triggered via the keyboard or API.\"), r.a(\"cursorSurroundingLinesStyle.all\", \"`cursorSurroundingLines` is enforced always.\")],\n            description: r.a(\"cursorSurroundingLinesStyle\", \"Controls when `cursorSurroundingLines` should be enforced.\")\n        })),\n        cursorWidth: I(new m(27, \"cursorWidth\", 0, 0, 1073741824, {\n            markdownDescription: r.a(\"cursorWidth\", \"Controls the width of the cursor when `#editor.cursorStyle#` is set to `line`.\")\n        })),\n        disableLayerHinting: I(new g(28, \"disableLayerHinting\", !1)),\n        disableMonospaceOptimizations: I(new g(29, \"disableMonospaceOptimizations\", !1)),\n        domReadOnly: I(new g(30, \"domReadOnly\", !1)),\n        dragAndDrop: I(new g(31, \"dragAndDrop\", !0, {\n            description: r.a(\"dragAndDrop\", \"Controls whether the editor should allow moving selections via drag and drop.\")\n        })),\n        emptySelectionClipboard: I(new class extends g {\n            constructor() {\n                super(32, \"emptySelectionClipboard\", !0, {\n                    description: r.a(\"emptySelectionClipboard\", \"Controls whether copying without a selection copies the current line.\")\n                })\n            }\n            compute(e, t, i) {\n                return i && e.emptySelectionClipboard\n            }\n        }),\n        extraEditorClassName: I(new b(33, \"extraEditorClassName\", \"\")),\n        fastScrollSensitivity: I(new v(34, \"fastScrollSensitivity\", 5, e => e <= 0 ? 5 : e, {\n            markdownDescription: r.a(\"fastScrollSensitivity\", \"Scrolling speed multiplier when pressing `Alt`.\")\n        })),\n        find: I(new class extends c {\n            constructor() {\n                var e = {\n                    cursorMoveOnType: !0,\n                    seedSearchStringFromSelection: \"always\",\n                    autoFindInSelection: \"never\",\n                    globalFindClipboard: !1,\n                    addExtraSpaceOnTop: !0,\n                    loop: !0\n                };\n                super(35, \"find\", e, {\n                    \"editor.find.cursorMoveOnType\": {\n                        type: \"boolean\",\n                        default: e.cursorMoveOnType,\n                        description: r.a(\"find.cursorMoveOnType\", \"Controls whether the cursor should jump to find matches while typing.\")\n                    },\n                    \"editor.find.seedSearchStringFromSelection\": {\n                        type: \"string\",\n                        enum: [\"never\", \"always\", \"selection\"],\n                        default: e.seedSearchStringFromSelection,\n                        enumDescriptions: [r.a(\"editor.find.seedSearchStringFromSelection.never\", \"Never seed search string from the editor selection.\"), r.a(\"editor.find.seedSearchStringFromSelection.always\", \"Always seed search string from the editor selection, including word at cursor position.\"), r.a(\"editor.find.seedSearchStringFromSelection.selection\", \"Only seed search string from the editor selection.\")],\n                        description: r.a(\"find.seedSearchStringFromSelection\", \"Controls whether the search string in the Find Widget is seeded from the editor selection.\")\n                    },\n                    \"editor.find.autoFindInSelection\": {\n                        type: \"string\",\n                        enum: [\"never\", \"always\", \"multiline\"],\n                        default: e.autoFindInSelection,\n                        enumDescriptions: [r.a(\"editor.find.autoFindInSelection.never\", \"Never turn on Find in Selection automatically (default).\"), r.a(\"editor.find.autoFindInSelection.always\", \"Always turn on Find in Selection automatically.\"), r.a(\"editor.find.autoFindInSelection.multiline\", \"Turn on Find in Selection automatically when multiple lines of content are selected.\")],\n                        description: r.a(\"find.autoFindInSelection\", \"Controls the condition for turning on Find in Selection automatically.\")\n                    },\n                    \"editor.find.globalFindClipboard\": {\n                        type: \"boolean\",\n                        default: e.globalFindClipboard,\n                        description: r.a(\"find.globalFindClipboard\", \"Controls whether the Find Widget should read or modify the shared find clipboard on macOS.\"),\n                        included: o.f\n                    },\n                    \"editor.find.addExtraSpaceOnTop\": {\n                        type: \"boolean\",\n                        default: e.addExtraSpaceOnTop,\n                        description: r.a(\"find.addExtraSpaceOnTop\", \"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.\")\n                    },\n                    \"editor.find.loop\": {\n                        type: \"boolean\",\n                        default: e.loop,\n                        description: r.a(\"find.loop\", \"Controls whether the search automatically restarts from the beginning (or the end) when no further matches can be found.\")\n                    }\n                })\n            }\n            validate(e) {\n                if (!e || \"object\" != typeof e) return this.defaultValue;\n                var t = e;\n                return {\n                    cursorMoveOnType: p(t.cursorMoveOnType, this.defaultValue.cursorMoveOnType),\n                    seedSearchStringFromSelection: \"boolean\" == typeof e.seedSearchStringFromSelection ? e.seedSearchStringFromSelection ? \"always\" : \"never\" : _(t.seedSearchStringFromSelection, this.defaultValue.seedSearchStringFromSelection, [\"never\", \"always\", \"selection\"]),\n                    autoFindInSelection: \"boolean\" == typeof e.autoFindInSelection ? e.autoFindInSelection ? \"always\" : \"never\" : _(t.autoFindInSelection, this.defaultValue.autoFindInSelection, [\"never\", \"always\", \"multiline\"]),\n                    globalFindClipboard: p(t.globalFindClipboard, this.defaultValue.globalFindClipboard),\n                    addExtraSpaceOnTop: p(t.addExtraSpaceOnTop, this.defaultValue.addExtraSpaceOnTop),\n                    loop: p(t.loop, this.defaultValue.loop)\n                }\n            }\n        }),\n        fixedOverflowWidgets: I(new g(36, \"fixedOverflowWidgets\", !1)),\n        folding: I(new g(37, \"folding\", !0, {\n            description: r.a(\"folding\", \"Controls whether the editor has code folding enabled.\")\n        })),\n        foldingStrategy: I(new w(38, \"foldingStrategy\", \"auto\", [\"auto\", \"indentation\"], {\n            enumDescriptions: [r.a(\"foldingStrategy.auto\", \"Use a language-specific folding strategy if available, else the indentation-based one.\"), r.a(\"foldingStrategy.indentation\", \"Use the indentation-based folding strategy.\")],\n            description: r.a(\"foldingStrategy\", \"Controls the strategy for computing folding ranges.\")\n        })),\n        foldingHighlight: I(new g(39, \"foldingHighlight\", !0, {\n            description: r.a(\"foldingHighlight\", \"Controls whether the editor should highlight folded ranges.\")\n        })),\n        foldingImportsByDefault: I(new g(40, \"foldingImportsByDefault\", !1, {\n            description: r.a(\"foldingImportsByDefault\", \"Controls whether the editor automatically collapses import ranges.\")\n        })),\n        unfoldOnClickAfterEndOfLine: I(new g(41, \"unfoldOnClickAfterEndOfLine\", !1, {\n            description: r.a(\"unfoldOnClickAfterEndOfLine\", \"Controls whether clicking on the empty content after a folded line will unfold the line.\")\n        })),\n        fontFamily: I(new b(42, \"fontFamily\", E.fontFamily, {\n            description: r.a(\"fontFamily\", \"Controls the font family.\")\n        })),\n        fontInfo: I(new class extends h {\n            constructor() {\n                super(43)\n            }\n            compute(e, t, i) {\n                return e.fontInfo\n            }\n        }),\n        fontLigatures2: I(new C),\n        fontSize: I(new class extends u {\n            constructor() {\n                super(45, \"fontSize\", E.fontSize, {\n                    type: \"number\",\n                    minimum: 6,\n                    maximum: 100,\n                    default: E.fontSize,\n                    description: r.a(\"fontSize\", \"Controls the font size in pixels.\")\n                })\n            }\n            validate(e) {\n                return 0 === (e = v.float(e, this.defaultValue)) ? E.fontSize : v.clamp(e, 6, 100)\n            }\n            compute(e, t, i) {\n                return e.fontInfo.fontSize\n            }\n        }),\n        fontWeight: I(new x),\n        formatOnPaste: I(new g(47, \"formatOnPaste\", !1, {\n            description: r.a(\"formatOnPaste\", \"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.\")\n        })),\n        formatOnType: I(new g(48, \"formatOnType\", !1, {\n            description: r.a(\"formatOnType\", \"Controls whether the editor should automatically format the line after typing.\")\n        })),\n        glyphMargin: I(new g(49, \"glyphMargin\", !0, {\n            description: r.a(\"glyphMargin\", \"Controls whether the editor should render the vertical glyph margin. Glyph margin is mostly used for debugging.\")\n        })),\n        gotoLocation: I(new class extends c {\n            constructor() {\n                var e = {\n                        multiple: \"peek\",\n                        multipleDefinitions: \"peek\",\n                        multipleTypeDefinitions: \"peek\",\n                        multipleDeclarations: \"peek\",\n                        multipleImplementations: \"peek\",\n                        multipleReferences: \"peek\",\n                        alternativeDefinitionCommand: \"editor.action.goToReferences\",\n                        alternativeTypeDefinitionCommand: \"editor.action.goToReferences\",\n                        alternativeDeclarationCommand: \"editor.action.goToReferences\",\n                        alternativeImplementationCommand: \"\",\n                        alternativeReferenceCommand: \"\"\n                    },\n                    t = {\n                        type: \"string\",\n                        enum: [\"peek\", \"gotoAndPeek\", \"goto\"],\n                        default: e.multiple,\n                        enumDescriptions: [r.a(\"editor.gotoLocation.multiple.peek\", \"Show peek view of the results (default)\"), r.a(\"editor.gotoLocation.multiple.gotoAndPeek\", \"Go to the primary result and show a peek view\"), r.a(\"editor.gotoLocation.multiple.goto\", \"Go to the primary result and enable peek-less navigation to others\")]\n                    },\n                    i = [\"\", \"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\"];\n                super(50, \"gotoLocation\", e, {\n                    \"editor.gotoLocation.multiple\": {\n                        deprecationMessage: r.a(\"editor.gotoLocation.multiple.deprecated\", \"This setting is deprecated, please use separate settings like 'editor.editor.gotoLocation.multipleDefinitions' or 'editor.editor.gotoLocation.multipleImplementations' instead.\")\n                    },\n                    \"editor.gotoLocation.multipleDefinitions\": Object.assign({\n                        description: r.a(\"editor.editor.gotoLocation.multipleDefinitions\", \"Controls the behavior the 'Go to Definition'-command when multiple target locations exist.\")\n                    }, t),\n                    \"editor.gotoLocation.multipleTypeDefinitions\": Object.assign({\n                        description: r.a(\"editor.editor.gotoLocation.multipleTypeDefinitions\", \"Controls the behavior the 'Go to Type Definition'-command when multiple target locations exist.\")\n                    }, t),\n                    \"editor.gotoLocation.multipleDeclarations\": Object.assign({\n                        description: r.a(\"editor.editor.gotoLocation.multipleDeclarations\", \"Controls the behavior the 'Go to Declaration'-command when multiple target locations exist.\")\n                    }, t),\n                    \"editor.gotoLocation.multipleImplementations\": Object.assign({\n                        description: r.a(\"editor.editor.gotoLocation.multipleImplemenattions\", \"Controls the behavior the 'Go to Implementations'-command when multiple target locations exist.\")\n                    }, t),\n                    \"editor.gotoLocation.multipleReferences\": Object.assign({\n                        description: r.a(\"editor.editor.gotoLocation.multipleReferences\", \"Controls the behavior the 'Go to References'-command when multiple target locations exist.\")\n                    }, t),\n                    \"editor.gotoLocation.alternativeDefinitionCommand\": {\n                        type: \"string\",\n                        default: e.alternativeDefinitionCommand,\n                        enum: i,\n                        description: r.a(\"alternativeDefinitionCommand\", \"Alternative command id that is being executed when the result of 'Go to Definition' is the current location.\")\n                    },\n                    \"editor.gotoLocation.alternativeTypeDefinitionCommand\": {\n                        type: \"string\",\n                        default: e.alternativeTypeDefinitionCommand,\n                        enum: i,\n                        description: r.a(\"alternativeTypeDefinitionCommand\", \"Alternative command id that is being executed when the result of 'Go to Type Definition' is the current location.\")\n                    },\n                    \"editor.gotoLocation.alternativeDeclarationCommand\": {\n                        type: \"string\",\n                        default: e.alternativeDeclarationCommand,\n                        enum: i,\n                        description: r.a(\"alternativeDeclarationCommand\", \"Alternative command id that is being executed when the result of 'Go to Declaration' is the current location.\")\n                    },\n                    \"editor.gotoLocation.alternativeImplementationCommand\": {\n                        type: \"string\",\n                        default: e.alternativeImplementationCommand,\n                        enum: i,\n                        description: r.a(\"alternativeImplementationCommand\", \"Alternative command id that is being executed when the result of 'Go to Implementation' is the current location.\")\n                    },\n                    \"editor.gotoLocation.alternativeReferenceCommand\": {\n                        type: \"string\",\n                        default: e.alternativeReferenceCommand,\n                        enum: i,\n                        description: r.a(\"alternativeReferenceCommand\", \"Alternative command id that is being executed when the result of 'Go to Reference' is the current location.\")\n                    }\n                })\n            }\n            validate(e) {\n                if (!e || \"object\" != typeof e) return this.defaultValue;\n                var t = e;\n                return {\n                    multiple: _(t.multiple, this.defaultValue.multiple, [\"peek\", \"gotoAndPeek\", \"goto\"]),\n                    multipleDefinitions: null !== (e = t.multipleDefinitions) && void 0 !== e ? e : _(t.multipleDefinitions, \"peek\", [\"peek\", \"gotoAndPeek\", \"goto\"]),\n                    multipleTypeDefinitions: null !== (e = t.multipleTypeDefinitions) && void 0 !== e ? e : _(t.multipleTypeDefinitions, \"peek\", [\"peek\", \"gotoAndPeek\", \"goto\"]),\n                    multipleDeclarations: null !== (e = t.multipleDeclarations) && void 0 !== e ? e : _(t.multipleDeclarations, \"peek\", [\"peek\", \"gotoAndPeek\", \"goto\"]),\n                    multipleImplementations: null !== (e = t.multipleImplementations) && void 0 !== e ? e : _(t.multipleImplementations, \"peek\", [\"peek\", \"gotoAndPeek\", \"goto\"]),\n                    multipleReferences: null !== (e = t.multipleReferences) && void 0 !== e ? e : _(t.multipleReferences, \"peek\", [\"peek\", \"gotoAndPeek\", \"goto\"]),\n                    alternativeDefinitionCommand: b.string(t.alternativeDefinitionCommand, this.defaultValue.alternativeDefinitionCommand),\n                    alternativeTypeDefinitionCommand: b.string(t.alternativeTypeDefinitionCommand, this.defaultValue.alternativeTypeDefinitionCommand),\n                    alternativeDeclarationCommand: b.string(t.alternativeDeclarationCommand, this.defaultValue.alternativeDeclarationCommand),\n                    alternativeImplementationCommand: b.string(t.alternativeImplementationCommand, this.defaultValue.alternativeImplementationCommand),\n                    alternativeReferenceCommand: b.string(t.alternativeReferenceCommand, this.defaultValue.alternativeReferenceCommand)\n                }\n            }\n        }),\n        hideCursorInOverviewRuler: I(new g(51, \"hideCursorInOverviewRuler\", !1, {\n            description: r.a(\"hideCursorInOverviewRuler\", \"Controls whether the cursor should be hidden in the overview ruler.\")\n        })),\n        hover: I(new class extends c {\n            constructor() {\n                var e = {\n                    enabled: !0,\n                    delay: 300,\n                    sticky: !0,\n                    above: !0\n                };\n                super(52, \"hover\", e, {\n                    \"editor.hover.enabled\": {\n                        type: \"boolean\",\n                        default: e.enabled,\n                        description: r.a(\"hover.enabled\", \"Controls whether the hover is shown.\")\n                    },\n                    \"editor.hover.delay\": {\n                        type: \"number\",\n                        default: e.delay,\n                        description: r.a(\"hover.delay\", \"Controls the delay in milliseconds after which the hover is shown.\")\n                    },\n                    \"editor.hover.sticky\": {\n                        type: \"boolean\",\n                        default: e.sticky,\n                        description: r.a(\"hover.sticky\", \"Controls whether the hover should remain visible when mouse is moved over it.\")\n                    },\n                    \"editor.hover.above\": {\n                        type: \"boolean\",\n                        default: e.above,\n                        description: r.a(\"hover.above\", \"Prefer showing hovers above the line, if there's space.\")\n                    }\n                })\n            }\n            validate(e) {\n                return e && \"object\" == typeof e ? {\n                    enabled: p(e.enabled, this.defaultValue.enabled),\n                    delay: m.clampedInt(e.delay, this.defaultValue.delay, 0, 1e4),\n                    sticky: p(e.sticky, this.defaultValue.sticky),\n                    above: p(e.above, this.defaultValue.above)\n                } : this.defaultValue\n            }\n        }),\n        inDiffEditor: I(new g(53, \"inDiffEditor\", !1)),\n        letterSpacing: I(new v(55, \"letterSpacing\", E.letterSpacing, e => v.clamp(e, -5, 20), {\n            description: r.a(\"letterSpacing\", \"Controls the letter spacing in pixels.\")\n        })),\n        lightbulb: I(new class extends c {\n            constructor() {\n                var e = {\n                    enabled: !0\n                };\n                super(56, \"lightbulb\", e, {\n                    \"editor.lightbulb.enabled\": {\n                        type: \"boolean\",\n                        default: e.enabled,\n                        description: r.a(\"codeActions\", \"Enables the code action lightbulb in the editor.\")\n                    }\n                })\n            }\n            validate(e) {\n                return e && \"object\" == typeof e ? {\n                    enabled: p(e.enabled, this.defaultValue.enabled)\n                } : this.defaultValue\n            }\n        }),\n        lineDecorationsWidth: I(new u(57, \"lineDecorationsWidth\", 10)),\n        lineHeight: I(new class extends v {\n            constructor() {\n                super(58, \"lineHeight\", E.lineHeight, e => v.clamp(e, 0, 150), {\n                    markdownDescription: r.a(\"lineHeight\", \"Controls the line height. \\n - Use 0 to automatically compute the line height from the font size.\\n - Values between 0 and 8 will be used as a multiplier with the font size.\\n - Values greater than or equal to 8 will be used as effective values.\")\n                })\n            }\n            compute(e, t, i) {\n                return e.fontInfo.lineHeight\n            }\n        }),\n        lineNumbers: I(new class extends c {\n            constructor() {\n                super(59, \"lineNumbers\", {\n                    renderType: 1,\n                    renderFn: null\n                }, {\n                    type: \"string\",\n                    enum: [\"off\", \"on\", \"relative\", \"interval\"],\n                    enumDescriptions: [r.a(\"lineNumbers.off\", \"Line numbers are not rendered.\"), r.a(\"lineNumbers.on\", \"Line numbers are rendered as absolute number.\"), r.a(\"lineNumbers.relative\", \"Line numbers are rendered as distance in lines to cursor position.\"), r.a(\"lineNumbers.interval\", \"Line numbers are rendered every 10 lines.\")],\n                    default: \"on\",\n                    description: r.a(\"lineNumbers\", \"Controls the display of line numbers.\")\n                })\n            }\n            validate(e) {\n                let t = this.defaultValue.renderType,\n                    i = this.defaultValue.renderFn;\n                return void 0 !== e && (\"function\" == typeof e ? (t = 4, i = e) : t = \"interval\" === e ? 3 : \"relative\" === e ? 2 : \"on\" === e ? 1 : 0), {\n                    renderType: t,\n                    renderFn: i\n                }\n            }\n        }),\n        lineNumbersMinChars: I(new m(60, \"lineNumbersMinChars\", 5, 1, 300)),\n        linkedEditing: I(new g(61, \"linkedEditing\", !1, {\n            description: r.a(\"linkedEditing\", \"Controls whether the editor has linked editing enabled. Depending on the language, related symbols, e.g. HTML tags, are updated while editing.\")\n        })),\n        links: I(new g(62, \"links\", !0, {\n            description: r.a(\"links\", \"Controls whether the editor should detect links and make them clickable.\")\n        })),\n        matchBrackets: I(new w(63, \"matchBrackets\", \"always\", [\"always\", \"near\", \"never\"], {\n            description: r.a(\"matchBrackets\", \"Highlight matching brackets.\")\n        })),\n        minimap: I(new class extends c {\n            constructor() {\n                var e = {\n                    enabled: !0,\n                    size: \"proportional\",\n                    side: \"right\",\n                    showSlider: \"mouseover\",\n                    renderCharacters: !0,\n                    maxColumn: 120,\n                    scale: 1\n                };\n                super(64, \"minimap\", e, {\n                    \"editor.minimap.enabled\": {\n                        type: \"boolean\",\n                        default: e.enabled,\n                        description: r.a(\"minimap.enabled\", \"Controls whether the minimap is shown.\")\n                    },\n                    \"editor.minimap.size\": {\n                        type: \"string\",\n                        enum: [\"proportional\", \"fill\", \"fit\"],\n                        enumDescriptions: [r.a(\"minimap.size.proportional\", \"The minimap has the same size as the editor contents (and might scroll).\"), r.a(\"minimap.size.fill\", \"The minimap will stretch or shrink as necessary to fill the height of the editor (no scrolling).\"), r.a(\"minimap.size.fit\", \"The minimap will shrink as necessary to never be larger than the editor (no scrolling).\")],\n                        default: e.size,\n                        description: r.a(\"minimap.size\", \"Controls the size of the minimap.\")\n                    },\n                    \"editor.minimap.side\": {\n                        type: \"string\",\n                        enum: [\"left\", \"right\"],\n                        default: e.side,\n                        description: r.a(\"minimap.side\", \"Controls the side where to render the minimap.\")\n                    },\n                    \"editor.minimap.showSlider\": {\n                        type: \"string\",\n                        enum: [\"always\", \"mouseover\"],\n                        default: e.showSlider,\n                        description: r.a(\"minimap.showSlider\", \"Controls when the minimap slider is shown.\")\n                    },\n                    \"editor.minimap.scale\": {\n                        type: \"number\",\n                        default: e.scale,\n                        minimum: 1,\n                        maximum: 3,\n                        enum: [1, 2, 3],\n                        description: r.a(\"minimap.scale\", \"Scale of content drawn in the minimap: 1, 2 or 3.\")\n                    },\n                    \"editor.minimap.renderCharacters\": {\n                        type: \"boolean\",\n                        default: e.renderCharacters,\n                        description: r.a(\"minimap.renderCharacters\", \"Render the actual characters on a line as opposed to color blocks.\")\n                    },\n                    \"editor.minimap.maxColumn\": {\n                        type: \"number\",\n                        default: e.maxColumn,\n                        description: r.a(\"minimap.maxColumn\", \"Limit the width of the minimap to render at most a certain number of columns.\")\n                    }\n                })\n            }\n            validate(e) {\n                return e && \"object\" == typeof e ? {\n                    enabled: p(e.enabled, this.defaultValue.enabled),\n                    size: _(e.size, this.defaultValue.size, [\"proportional\", \"fill\", \"fit\"]),\n                    side: _(e.side, this.defaultValue.side, [\"right\", \"left\"]),\n                    showSlider: _(e.showSlider, this.defaultValue.showSlider, [\"always\", \"mouseover\"]),\n                    renderCharacters: p(e.renderCharacters, this.defaultValue.renderCharacters),\n                    scale: m.clampedInt(e.scale, 1, 1, 3),\n                    maxColumn: m.clampedInt(e.maxColumn, this.defaultValue.maxColumn, 1, 1e4)\n                } : this.defaultValue\n            }\n        }),\n        mouseStyle: I(new w(65, \"mouseStyle\", \"text\", [\"text\", \"default\", \"copy\"])),\n        mouseWheelScrollSensitivity: I(new v(66, \"mouseWheelScrollSensitivity\", 1, e => 0 === e ? 1 : e, {\n            markdownDescription: r.a(\"mouseWheelScrollSensitivity\", \"A multiplier to be used on the `deltaX` and `deltaY` of mouse wheel scroll events.\")\n        })),\n        mouseWheelZoom: I(new g(67, \"mouseWheelZoom\", !1, {\n            markdownDescription: r.a(\"mouseWheelZoom\", \"Zoom the font of the editor when using mouse wheel and holding `Ctrl`.\")\n        })),\n        multiCursorMergeOverlapping: I(new g(68, \"multiCursorMergeOverlapping\", !0, {\n            description: r.a(\"multiCursorMergeOverlapping\", \"Merge multiple cursors when they are overlapping.\")\n        })),\n        multiCursorModifier: I(new y(69, \"multiCursorModifier\", \"altKey\", \"alt\", [\"ctrlCmd\", \"alt\"], (function(e) {\n            return \"ctrlCmd\" === e ? o.f ? \"metaKey\" : \"ctrlKey\" : \"altKey\"\n        }), {\n            markdownEnumDescriptions: [r.a(\"multiCursorModifier.ctrlCmd\", \"Maps to `Control` on Windows and Linux and to `Command` on macOS.\"), r.a(\"multiCursorModifier.alt\", \"Maps to `Alt` on Windows and Linux and to `Option` on macOS.\")],\n            markdownDescription: r.a({\n                key: \"multiCursorModifier\",\n                comment: [\"- `ctrlCmd` refers to a value the setting can take and should not be localized.\", \"- `Control` and `Command` refer to the modifier keys Ctrl or Cmd on the keyboard and can be localized.\"]\n            }, \"The modifier to be used to add multiple cursors with the mouse. The 前往 Definition and Open Link mouse gestures will adapt such that they do not conflict with the multicursor modifier. [Read more](https://code.visualstudio.com/docs/editor/codebasics#_multicursor-modifier).\")\n        })),\n        multiCursorPaste: I(new w(70, \"multiCursorPaste\", \"spread\", [\"spread\", \"full\"], {\n            markdownEnumDescriptions: [r.a(\"multiCursorPaste.spread\", \"Each cursor pastes a single line of the text.\"), r.a(\"multiCursorPaste.full\", \"Each cursor pastes the full text.\")],\n            markdownDescription: r.a(\"multiCursorPaste\", \"Controls pasting when the line count of the pasted text matches the cursor count.\")\n        })),\n        occurrencesHighlight: I(new g(71, \"occurrencesHighlight\", !0, {\n            description: r.a(\"occurrencesHighlight\", \"Controls whether the editor should highlight semantic symbol occurrences.\")\n        })),\n        overviewRulerBorder: I(new g(72, \"overviewRulerBorder\", !0, {\n            description: r.a(\"overviewRulerBorder\", \"Controls whether a border should be drawn around the overview ruler.\")\n        })),\n        overviewRulerLanes: I(new m(73, \"overviewRulerLanes\", 3, 0, 3)),\n        padding: I(new class extends c {\n            constructor() {\n                super(74, \"padding\", {\n                    top: 0,\n                    bottom: 0\n                }, {\n                    \"editor.padding.top\": {\n                        type: \"number\",\n                        default: 0,\n                        minimum: 0,\n                        maximum: 1e3,\n                        description: r.a(\"padding.top\", \"Controls the amount of space between the top edge of the editor and the first line.\")\n                    },\n                    \"editor.padding.bottom\": {\n                        type: \"number\",\n                        default: 0,\n                        minimum: 0,\n                        maximum: 1e3,\n                        description: r.a(\"padding.bottom\", \"Controls the amount of space between the bottom edge of the editor and the last line.\")\n                    }\n                })\n            }\n            validate(e) {\n                return e && \"object\" == typeof e ? {\n                    top: m.clampedInt(e.top, 0, 0, 1e3),\n                    bottom: m.clampedInt(e.bottom, 0, 0, 1e3)\n                } : this.defaultValue\n            }\n        }),\n        parameterHints: I(new class extends c {\n            constructor() {\n                var e = {\n                    enabled: !0,\n                    cycle: !1\n                };\n                super(75, \"parameterHints\", e, {\n                    \"editor.parameterHints.enabled\": {\n                        type: \"boolean\",\n                        default: e.enabled,\n                        description: r.a(\"parameterHints.enabled\", \"Enables a pop-up that shows parameter documentation and type information as you type.\")\n                    },\n                    \"editor.parameterHints.cycle\": {\n                        type: \"boolean\",\n                        default: e.cycle,\n                        description: r.a(\"parameterHints.cycle\", \"Controls whether the parameter hints menu cycles or closes when reaching the end of the list.\")\n                    }\n                })\n            }\n            validate(e) {\n                return e && \"object\" == typeof e ? {\n                    enabled: p(e.enabled, this.defaultValue.enabled),\n                    cycle: p(e.cycle, this.defaultValue.cycle)\n                } : this.defaultValue\n            }\n        }),\n        peekWidgetDefaultFocus: I(new w(76, \"peekWidgetDefaultFocus\", \"tree\", [\"tree\", \"editor\"], {\n            enumDescriptions: [r.a(\"peekWidgetDefaultFocus.tree\", \"Focus the tree when opening peek\"), r.a(\"peekWidgetDefaultFocus.editor\", \"Focus the editor when opening peek\")],\n            description: r.a(\"peekWidgetDefaultFocus\", \"Controls whether to focus the inline editor or the tree in the peek widget.\")\n        })),\n        definitionLinkOpensInPeek: I(new g(77, \"definitionLinkOpensInPeek\", !1, {\n            description: r.a(\"definitionLinkOpensInPeek\", \"Controls whether the 前往 Definition mouse gesture always opens the peek widget.\")\n        })),\n        quickSuggestions: I(new class extends c {\n            constructor() {\n                var e = {\n                    other: !0,\n                    comments: !1,\n                    strings: !1\n                };\n                super(78, \"quickSuggestions\", e, {\n                    anyOf: [{\n                        type: \"boolean\"\n                    }, {\n                        type: \"object\",\n                        properties: {\n                            strings: {\n                                type: \"boolean\",\n                                default: e.strings,\n                                description: r.a(\"quickSuggestions.strings\", \"Enable quick suggestions inside strings.\")\n                            },\n                            comments: {\n                                type: \"boolean\",\n                                default: e.comments,\n                                description: r.a(\"quickSuggestions.comments\", \"Enable quick suggestions inside comments.\")\n                            },\n                            other: {\n                                type: \"boolean\",\n                                default: e.other,\n                                description: r.a(\"quickSuggestions.other\", \"Enable quick suggestions outside of strings and comments.\")\n                            }\n                        }\n                    }],\n                    default: e,\n                    description: r.a(\"quickSuggestions\", \"Controls whether suggestions should automatically show up while typing.\")\n                }), this.defaultValue = e\n            }\n            validate(e) {\n                return \"boolean\" == typeof e ? e : e && \"object\" == typeof e ? !!((e = {\n                    other: p((e = e).other, this.defaultValue.other),\n                    comments: p(e.comments, this.defaultValue.comments),\n                    strings: p(e.strings, this.defaultValue.strings)\n                }).other && e.comments && e.strings) || !!(e.other || e.comments || e.strings) && e : this.defaultValue\n            }\n        }),\n        quickSuggestionsDelay: I(new m(79, \"quickSuggestionsDelay\", 10, 0, 1073741824, {\n            description: r.a(\"quickSuggestionsDelay\", \"Controls the delay in milliseconds after which quick suggestions will show up.\")\n        })),\n        readOnly: I(new g(80, \"readOnly\", !1)),\n        renameOnType: I(new g(81, \"renameOnType\", !1, {\n            description: r.a(\"renameOnType\", \"Controls whether the editor auto renames on type.\"),\n            markdownDeprecationMessage: r.a(\"renameOnTypeDeprecate\", \"Deprecated, use `editor.linkedEditing` instead.\")\n        })),\n        renderControlCharacters: I(new g(82, \"renderControlCharacters\", !0, {\n            description: r.a(\"renderControlCharacters\", \"Controls whether the editor should render control characters.\"),\n            restricted: !0\n        })),\n        renderFinalNewline: I(new g(83, \"renderFinalNewline\", !0, {\n            description: r.a(\"renderFinalNewline\", \"Render last line number when the file ends with a newline.\")\n        })),\n        renderLineHighlight: I(new w(84, \"renderLineHighlight\", \"line\", [\"none\", \"gutter\", \"line\", \"all\"], {\n            enumDescriptions: [\"\", \"\", \"\", r.a(\"renderLineHighlight.all\", \"Highlights both the gutter and the current line.\")],\n            description: r.a(\"renderLineHighlight\", \"Controls how the editor should render the current line highlight.\")\n        })),\n        renderLineHighlightOnlyWhenFocus: I(new g(85, \"renderLineHighlightOnlyWhenFocus\", !1, {\n            description: r.a(\"renderLineHighlightOnlyWhenFocus\", \"Controls if the editor should render the current line highlight only when the editor is focused.\")\n        })),\n        renderValidationDecorations: I(new w(86, \"renderValidationDecorations\", \"editable\", [\"editable\", \"on\", \"off\"])),\n        renderWhitespace: I(new w(87, \"renderWhitespace\", \"selection\", [\"none\", \"boundary\", \"selection\", \"trailing\", \"all\"], {\n            enumDescriptions: [\"\", r.a(\"renderWhitespace.boundary\", \"Render whitespace characters except for single spaces between words.\"), r.a(\"renderWhitespace.selection\", \"Render whitespace characters only on selected text.\"), r.a(\"renderWhitespace.trailing\", \"Render only trailing whitespace characters.\"), \"\"],\n            description: r.a(\"renderWhitespace\", \"Controls how the editor should render whitespace characters.\")\n        })),\n        revealHorizontalRightPadding: I(new m(88, \"revealHorizontalRightPadding\", 30, 0, 1e3)),\n        roundedSelection: I(new g(89, \"roundedSelection\", !0, {\n            description: r.a(\"roundedSelection\", \"Controls whether selections should have rounded corners.\")\n        })),\n        rulers: I(new class extends c {\n            constructor() {\n                var e = [],\n                    t = {\n                        type: \"number\",\n                        description: r.a(\"rulers.size\", \"Number of monospace characters at which this editor ruler will render.\")\n                    };\n                super(90, \"rulers\", e, {\n                    type: \"array\",\n                    items: {\n                        anyOf: [t, {\n                            type: [\"object\"],\n                            properties: {\n                                column: t,\n                                color: {\n                                    type: \"string\",\n                                    description: r.a(\"rulers.color\", \"Color of this editor ruler.\"),\n                                    format: \"color-hex\"\n                                }\n                            }\n                        }]\n                    },\n                    default: e,\n                    description: r.a(\"rulers\", \"Render vertical rulers after a certain number of monospace characters. Use multiple values for multiple rulers. No rulers are drawn if array is empty.\")\n                })\n            }\n            validate(e) {\n                if (Array.isArray(e)) {\n                    let i = [];\n                    for (var t of e) \"number\" == typeof t ? i.push({\n                        column: m.clampedInt(t, 0, 0, 1e4),\n                        color: null\n                    }) : t && \"object\" == typeof t && (t = t, i.push({\n                        column: m.clampedInt(t.column, 0, 0, 1e4),\n                        color: t.color\n                    }));\n                    return i.sort((e, t) => e.column - t.column), i\n                }\n                return this.defaultValue\n            }\n        }),\n        scrollbar: I(new class extends c {\n            constructor() {\n                var e = {\n                    vertical: 1,\n                    horizontal: 1,\n                    arrowSize: 11,\n                    useShadows: !0,\n                    verticalHasArrows: !1,\n                    horizontalHasArrows: !1,\n                    horizontalScrollbarSize: 12,\n                    horizontalSliderSize: 12,\n                    verticalScrollbarSize: 14,\n                    verticalSliderSize: 14,\n                    handleMouseWheel: !0,\n                    alwaysConsumeMouseWheel: !0,\n                    scrollByPage: !1\n                };\n                super(91, \"scrollbar\", e, {\n                    \"editor.scrollbar.vertical\": {\n                        type: \"string\",\n                        enum: [\"auto\", \"visible\", \"hidden\"],\n                        enumDescriptions: [r.a(\"scrollbar.vertical.auto\", \"The vertical scrollbar will be visible only when necessary.\"), r.a(\"scrollbar.vertical.visible\", \"The vertical scrollbar will always be visible.\"), r.a(\"scrollbar.vertical.fit\", \"The vertical scrollbar will always be hidden.\")],\n                        default: \"auto\",\n                        description: r.a(\"scrollbar.vertical\", \"Controls the visibility of the vertical scrollbar.\")\n                    },\n                    \"editor.scrollbar.horizontal\": {\n                        type: \"string\",\n                        enum: [\"auto\", \"visible\", \"hidden\"],\n                        enumDescriptions: [r.a(\"scrollbar.horizontal.auto\", \"The horizontal scrollbar will be visible only when necessary.\"), r.a(\"scrollbar.horizontal.visible\", \"The horizontal scrollbar will always be visible.\"), r.a(\"scrollbar.horizontal.fit\", \"The horizontal scrollbar will always be hidden.\")],\n                        default: \"auto\",\n                        description: r.a(\"scrollbar.horizontal\", \"Controls the visibility of the horizontal scrollbar.\")\n                    },\n                    \"editor.scrollbar.verticalScrollbarSize\": {\n                        type: \"number\",\n                        default: e.verticalScrollbarSize,\n                        description: r.a(\"scrollbar.verticalScrollbarSize\", \"The width of the vertical scrollbar.\")\n                    },\n                    \"editor.scrollbar.horizontalScrollbarSize\": {\n                        type: \"number\",\n                        default: e.horizontalScrollbarSize,\n                        description: r.a(\"scrollbar.horizontalScrollbarSize\", \"The height of the horizontal scrollbar.\")\n                    },\n                    \"editor.scrollbar.scrollByPage\": {\n                        type: \"boolean\",\n                        default: e.scrollByPage,\n                        description: r.a(\"scrollbar.scrollByPage\", \"Controls whether clicks scroll by page or jump to click position.\")\n                    }\n                })\n            }\n            validate(e) {\n                if (!e || \"object\" != typeof e) return this.defaultValue;\n                var t = e,\n                    i = m.clampedInt(t.horizontalScrollbarSize, this.defaultValue.horizontalScrollbarSize, 0, 1e3);\n                e = m.clampedInt(t.verticalScrollbarSize, this.defaultValue.verticalScrollbarSize, 0, 1e3);\n                return {\n                    arrowSize: m.clampedInt(t.arrowSize, this.defaultValue.arrowSize, 0, 1e3),\n                    vertical: L(t.vertical, this.defaultValue.vertical),\n                    horizontal: L(t.horizontal, this.defaultValue.horizontal),\n                    useShadows: p(t.useShadows, this.defaultValue.useShadows),\n                    verticalHasArrows: p(t.verticalHasArrows, this.defaultValue.verticalHasArrows),\n                    horizontalHasArrows: p(t.horizontalHasArrows, this.defaultValue.horizontalHasArrows),\n                    handleMouseWheel: p(t.handleMouseWheel, this.defaultValue.handleMouseWheel),\n                    alwaysConsumeMouseWheel: p(t.alwaysConsumeMouseWheel, this.defaultValue.alwaysConsumeMouseWheel),\n                    horizontalScrollbarSize: i,\n                    horizontalSliderSize: m.clampedInt(t.horizontalSliderSize, i, 0, 1e3),\n                    verticalScrollbarSize: e,\n                    verticalSliderSize: m.clampedInt(t.verticalSliderSize, e, 0, 1e3),\n                    scrollByPage: p(t.scrollByPage, this.defaultValue.scrollByPage)\n                }\n            }\n        }),\n        scrollBeyondLastColumn: I(new m(92, \"scrollBeyondLastColumn\", 5, 0, 1073741824, {\n            description: r.a(\"scrollBeyondLastColumn\", \"Controls the number of extra characters beyond which the editor will scroll horizontally.\")\n        })),\n        scrollBeyondLastLine: I(new g(93, \"scrollBeyondLastLine\", !0, {\n            description: r.a(\"scrollBeyondLastLine\", \"Controls whether the editor will scroll beyond the last line.\")\n        })),\n        scrollPredominantAxis: I(new g(94, \"scrollPredominantAxis\", !0, {\n            description: r.a(\"scrollPredominantAxis\", \"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.\")\n        })),\n        selectionClipboard: I(new g(95, \"selectionClipboard\", !0, {\n            description: r.a(\"selectionClipboard\", \"Controls whether the Linux primary clipboard should be supported.\"),\n            included: o.d\n        })),\n        selectionHighlight: I(new g(96, \"selectionHighlight\", !0, {\n            description: r.a(\"selectionHighlight\", \"Controls whether the editor should highlight matches similar to the selection.\")\n        })),\n        selectOnLineNumbers: I(new g(97, \"selectOnLineNumbers\", !0)),\n        showFoldingControls: I(new w(98, \"showFoldingControls\", \"mouseover\", [\"always\", \"mouseover\"], {\n            enumDescriptions: [r.a(\"showFoldingControls.always\", \"Always show the folding controls.\"), r.a(\"showFoldingControls.mouseover\", \"Only show the folding controls when the mouse is over the gutter.\")],\n            description: r.a(\"showFoldingControls\", \"Controls when the folding controls on the gutter are shown.\")\n        })),\n        showUnused: I(new g(99, \"showUnused\", !0, {\n            description: r.a(\"showUnused\", \"Controls fading out of unused code.\")\n        })),\n        showDeprecated: I(new g(124, \"showDeprecated\", !0, {\n            description: r.a(\"showDeprecated\", \"Controls strikethrough deprecated variables.\")\n        })),\n        inlayHints: I(new class extends c {\n            constructor() {\n                var e = {\n                    enabled: !0,\n                    fontSize: 0,\n                    fontFamily: \"\"\n                };\n                super(125, \"inlayHints\", e, {\n                    \"editor.inlayHints.enabled\": {\n                        type: \"boolean\",\n                        default: e.enabled,\n                        description: r.a(\"inlayHints.enable\", \"Enables the inlay hints in the editor.\")\n                    },\n                    \"editor.inlayHints.fontSize\": {\n                        type: \"number\",\n                        default: e.fontSize,\n                        markdownDescription: r.a(\"inlayHints.fontSize\", \"Controls font size of inlay hints in the editor. A default of 90% of `#editor.fontSize#` is used when the configured value is less than `5` or greater than the editor font size.\")\n                    },\n                    \"editor.inlayHints.fontFamily\": {\n                        type: \"string\",\n                        default: e.fontFamily,\n                        markdownDescription: r.a(\"inlayHints.fontFamily\", \"Controls font family of inlay hints in the editor. When set to empty, the `#editor.fontFamily#` is used.\")\n                    }\n                })\n            }\n            validate(e) {\n                return e && \"object\" == typeof e ? {\n                    enabled: p(e.enabled, this.defaultValue.enabled),\n                    fontSize: m.clampedInt(e.fontSize, this.defaultValue.fontSize, 0, 100),\n                    fontFamily: b.string(e.fontFamily, this.defaultValue.fontFamily)\n                } : this.defaultValue\n            }\n        }),\n        snippetSuggestions: I(new w(100, \"snippetSuggestions\", \"inline\", [\"top\", \"bottom\", \"inline\", \"none\"], {\n            enumDescriptions: [r.a(\"snippetSuggestions.top\", \"Show snippet suggestions on top of other suggestions.\"), r.a(\"snippetSuggestions.bottom\", \"Show snippet suggestions below other suggestions.\"), r.a(\"snippetSuggestions.inline\", \"Show snippets suggestions with other suggestions.\"), r.a(\"snippetSuggestions.none\", \"Do not show snippet suggestions.\")],\n            description: r.a(\"snippetSuggestions\", \"Controls whether snippets are shown with other suggestions and how they are sorted.\")\n        })),\n        smartSelect: I(new class extends c {\n            constructor() {\n                super(101, \"smartSelect\", {\n                    selectLeadingAndTrailingWhitespace: !0\n                }, {\n                    \"editor.smartSelect.selectLeadingAndTrailingWhitespace\": {\n                        description: r.a(\"selectLeadingAndTrailingWhitespace\", \"Whether leading and trailing whitespace should always be selected.\"),\n                        default: !0,\n                        type: \"boolean\"\n                    }\n                })\n            }\n            validate(e) {\n                return e && \"object\" == typeof e ? {\n                    selectLeadingAndTrailingWhitespace: p(e.selectLeadingAndTrailingWhitespace, this.defaultValue.selectLeadingAndTrailingWhitespace)\n                } : this.defaultValue\n            }\n        }),\n        smoothScrolling: I(new g(102, \"smoothScrolling\", !1, {\n            description: r.a(\"smoothScrolling\", \"Controls whether the editor will scroll using an animation.\")\n        })),\n        stopRenderingLineAfter: I(new m(104, \"stopRenderingLineAfter\", 1e4, -1, 1073741824)),\n        suggest: I(new class extends c {\n            constructor() {\n                var e = {\n                    insertMode: \"insert\",\n                    filterGraceful: !0,\n                    snippetsPreventQuickSuggestions: !0,\n                    localityBonus: !1,\n                    shareSuggestSelections: !1,\n                    showIcons: !0,\n                    showStatusBar: !1,\n                    preview: !1,\n                    previewMode: \"subwordSmart\",\n                    showInlineDetails: !0,\n                    showMethods: !0,\n                    showFunctions: !0,\n                    showConstructors: !0,\n                    showDeprecated: !0,\n                    showFields: !0,\n                    showVariables: !0,\n                    showClasses: !0,\n                    showStructs: !0,\n                    showInterfaces: !0,\n                    showModules: !0,\n                    showProperties: !0,\n                    showEvents: !0,\n                    showOperators: !0,\n                    showUnits: !0,\n                    showValues: !0,\n                    showConstants: !0,\n                    showEnums: !0,\n                    showEnumMembers: !0,\n                    showKeywords: !0,\n                    showWords: !0,\n                    showColors: !0,\n                    showFiles: !0,\n                    showReferences: !0,\n                    showFolders: !0,\n                    showTypeParameters: !0,\n                    showSnippets: !0,\n                    showUsers: !0,\n                    showIssues: !0\n                };\n                super(105, \"suggest\", e, {\n                    \"editor.suggest.insertMode\": {\n                        type: \"string\",\n                        enum: [\"insert\", \"replace\"],\n                        enumDescriptions: [r.a(\"suggest.insertMode.insert\", \"Insert suggestion without overwriting text right of the cursor.\"), r.a(\"suggest.insertMode.replace\", \"Insert suggestion and overwrite text right of the cursor.\")],\n                        default: e.insertMode,\n                        description: r.a(\"suggest.insertMode\", \"Controls whether words are overwritten when accepting completions. Note that this depends on extensions opting into this feature.\")\n                    },\n                    \"editor.suggest.filterGraceful\": {\n                        type: \"boolean\",\n                        default: e.filterGraceful,\n                        description: r.a(\"suggest.filterGraceful\", \"Controls whether filtering and sorting suggestions accounts for small typos.\")\n                    },\n                    \"editor.suggest.localityBonus\": {\n                        type: \"boolean\",\n                        default: e.localityBonus,\n                        description: r.a(\"suggest.localityBonus\", \"Controls whether sorting favors words that appear close to the cursor.\")\n                    },\n                    \"editor.suggest.shareSuggestSelections\": {\n                        type: \"boolean\",\n                        default: e.shareSuggestSelections,\n                        markdownDescription: r.a(\"suggest.shareSuggestSelections\", \"Controls whether remembered suggestion selections are shared between multiple workspaces and windows (needs `#editor.suggestSelection#`).\")\n                    },\n                    \"editor.suggest.snippetsPreventQuickSuggestions\": {\n                        type: \"boolean\",\n                        default: e.snippetsPreventQuickSuggestions,\n                        description: r.a(\"suggest.snippetsPreventQuickSuggestions\", \"Controls whether an active snippet prevents quick suggestions.\")\n                    },\n                    \"editor.suggest.showIcons\": {\n                        type: \"boolean\",\n                        default: e.showIcons,\n                        description: r.a(\"suggest.showIcons\", \"Controls whether to show or hide icons in suggestions.\")\n                    },\n                    \"editor.suggest.showStatusBar\": {\n                        type: \"boolean\",\n                        default: e.showStatusBar,\n                        description: r.a(\"suggest.showStatusBar\", \"Controls the visibility of the status bar at the bottom of the suggest widget.\")\n                    },\n                    \"editor.suggest.preview\": {\n                        type: \"boolean\",\n                        default: e.preview,\n                        description: r.a(\"suggest.preview\", \"Controls whether to preview the suggestion outcome in the editor.\")\n                    },\n                    \"editor.suggest.showInlineDetails\": {\n                        type: \"boolean\",\n                        default: e.showInlineDetails,\n                        description: r.a(\"suggest.showInlineDetails\", \"Controls whether suggest details show inline with the label or only in the details widget\")\n                    },\n                    \"editor.suggest.maxVisibleSuggestions\": {\n                        type: \"number\",\n                        deprecationMessage: r.a(\"suggest.maxVisibleSuggestions.dep\", \"This setting is deprecated. The suggest widget can now be resized.\")\n                    },\n                    \"editor.suggest.filteredTypes\": {\n                        type: \"object\",\n                        deprecationMessage: r.a(\"deprecated\", \"This setting is deprecated, please use separate settings like 'editor.suggest.showKeywords' or 'editor.suggest.showSnippets' instead.\")\n                    },\n                    \"editor.suggest.showMethods\": {\n                        type: \"boolean\",\n                        default: !0,\n                        markdownDescription: r.a(\"editor.suggest.showMethods\", \"When enabled IntelliSense shows `method`-suggestions.\")\n                    },\n                    \"editor.suggest.showFunctions\": {\n                        type: \"boolean\",\n                        default: !0,\n                        markdownDescription: r.a(\"editor.suggest.showFunctions\", \"When enabled IntelliSense shows `function`-suggestions.\")\n                    },\n                    \"editor.suggest.showConstructors\": {\n                        type: \"boolean\",\n                        default: !0,\n                        markdownDescription: r.a(\"editor.suggest.showConstructors\", \"When enabled IntelliSense shows `constructor`-suggestions.\")\n                    },\n                    \"editor.suggest.showDeprecated\": {\n                        type: \"boolean\",\n                        default: !0,\n                        markdownDescription: r.a(\"editor.suggest.showDeprecated\", \"When enabled IntelliSense shows `deprecated`-suggestions.\")\n                    },\n                    \"editor.suggest.showFields\": {\n                        type: \"boolean\",\n                        default: !0,\n                        markdownDescription: r.a(\"editor.suggest.showFields\", \"When enabled IntelliSense shows `field`-suggestions.\")\n                    },\n                    \"editor.suggest.showVariables\": {\n                        type: \"boolean\",\n                        default: !0,\n                        markdownDescription: r.a(\"editor.suggest.showVariables\", \"When enabled IntelliSense shows `variable`-suggestions.\")\n                    },\n                    \"editor.suggest.showClasses\": {\n                        type: \"boolean\",\n                        default: !0,\n                        markdownDescription: r.a(\"editor.suggest.showClasss\", \"When enabled IntelliSense shows `class`-suggestions.\")\n                    },\n                    \"editor.suggest.showStructs\": {\n                        type: \"boolean\",\n                        default: !0,\n                        markdownDescription: r.a(\"editor.suggest.showStructs\", \"When enabled IntelliSense shows `struct`-suggestions.\")\n                    },\n                    \"editor.suggest.showInterfaces\": {\n                        type: \"boolean\",\n                        default: !0,\n                        markdownDescription: r.a(\"editor.suggest.showInterfaces\", \"When enabled IntelliSense shows `interface`-suggestions.\")\n                    },\n                    \"editor.suggest.showModules\": {\n                        type: \"boolean\",\n                        default: !0,\n                        markdownDescription: r.a(\"editor.suggest.showModules\", \"When enabled IntelliSense shows `module`-suggestions.\")\n                    },\n                    \"editor.suggest.showProperties\": {\n                        type: \"boolean\",\n                        default: !0,\n                        markdownDescription: r.a(\"editor.suggest.showPropertys\", \"When enabled IntelliSense shows `property`-suggestions.\")\n                    },\n                    \"editor.suggest.showEvents\": {\n                        type: \"boolean\",\n                        default: !0,\n                        markdownDescription: r.a(\"editor.suggest.showEvents\", \"When enabled IntelliSense shows `event`-suggestions.\")\n                    },\n                    \"editor.suggest.showOperators\": {\n                        type: \"boolean\",\n                        default: !0,\n                        markdownDescription: r.a(\"editor.suggest.showOperators\", \"When enabled IntelliSense shows `operator`-suggestions.\")\n                    },\n                    \"editor.suggest.showUnits\": {\n                        type: \"boolean\",\n                        default: !0,\n                        markdownDescription: r.a(\"editor.suggest.showUnits\", \"When enabled IntelliSense shows `unit`-suggestions.\")\n                    },\n                    \"editor.suggest.showValues\": {\n                        type: \"boolean\",\n                        default: !0,\n                        markdownDescription: r.a(\"editor.suggest.showValues\", \"When enabled IntelliSense shows `value`-suggestions.\")\n                    },\n                    \"editor.suggest.showConstants\": {\n                        type: \"boolean\",\n                        default: !0,\n                        markdownDescription: r.a(\"editor.suggest.showConstants\", \"When enabled IntelliSense shows `constant`-suggestions.\")\n                    },\n                    \"editor.suggest.showEnums\": {\n                        type: \"boolean\",\n                        default: !0,\n                        markdownDescription: r.a(\"editor.suggest.showEnums\", \"When enabled IntelliSense shows `enum`-suggestions.\")\n                    },\n                    \"editor.suggest.showEnumMembers\": {\n                        type: \"boolean\",\n                        default: !0,\n                        markdownDescription: r.a(\"editor.suggest.showEnumMembers\", \"When enabled IntelliSense shows `enumMember`-suggestions.\")\n                    },\n                    \"editor.suggest.showKeywords\": {\n                        type: \"boolean\",\n                        default: !0,\n                        markdownDescription: r.a(\"editor.suggest.showKeywords\", \"When enabled IntelliSense shows `keyword`-suggestions.\")\n                    },\n                    \"editor.suggest.showWords\": {\n                        type: \"boolean\",\n                        default: !0,\n                        markdownDescription: r.a(\"editor.suggest.showTexts\", \"When enabled IntelliSense shows `text`-suggestions.\")\n                    },\n                    \"editor.suggest.showColors\": {\n                        type: \"boolean\",\n                        default: !0,\n                        markdownDescription: r.a(\"editor.suggest.showColors\", \"When enabled IntelliSense shows `color`-suggestions.\")\n                    },\n                    \"editor.suggest.showFiles\": {\n                        type: \"boolean\",\n                        default: !0,\n                        markdownDescription: r.a(\"editor.suggest.showFiles\", \"When enabled IntelliSense shows `file`-suggestions.\")\n                    },\n                    \"editor.suggest.showReferences\": {\n                        type: \"boolean\",\n                        default: !0,\n                        markdownDescription: r.a(\"editor.suggest.showReferences\", \"When enabled IntelliSense shows `reference`-suggestions.\")\n                    },\n                    \"editor.suggest.showCustomcolors\": {\n                        type: \"boolean\",\n                        default: !0,\n                        markdownDescription: r.a(\"editor.suggest.showCustomcolors\", \"When enabled IntelliSense shows `customcolor`-suggestions.\")\n                    },\n                    \"editor.suggest.showFolders\": {\n                        type: \"boolean\",\n                        default: !0,\n                        markdownDescription: r.a(\"editor.suggest.showFolders\", \"When enabled IntelliSense shows `folder`-suggestions.\")\n                    },\n                    \"editor.suggest.showTypeParameters\": {\n                        type: \"boolean\",\n                        default: !0,\n                        markdownDescription: r.a(\"editor.suggest.showTypeParameters\", \"When enabled IntelliSense shows `typeParameter`-suggestions.\")\n                    },\n                    \"editor.suggest.showSnippets\": {\n                        type: \"boolean\",\n                        default: !0,\n                        markdownDescription: r.a(\"editor.suggest.showSnippets\", \"When enabled IntelliSense shows `snippet`-suggestions.\")\n                    },\n                    \"editor.suggest.showUsers\": {\n                        type: \"boolean\",\n                        default: !0,\n                        markdownDescription: r.a(\"editor.suggest.showUsers\", \"When enabled IntelliSense shows `user`-suggestions.\")\n                    },\n                    \"editor.suggest.showIssues\": {\n                        type: \"boolean\",\n                        default: !0,\n                        markdownDescription: r.a(\"editor.suggest.showIssues\", \"When enabled IntelliSense shows `issues`-suggestions.\")\n                    }\n                })\n            }\n            validate(e) {\n                return e && \"object\" == typeof e ? {\n                    insertMode: _(e.insertMode, this.defaultValue.insertMode, [\"insert\", \"replace\"]),\n                    filterGraceful: p(e.filterGraceful, this.defaultValue.filterGraceful),\n                    snippetsPreventQuickSuggestions: p(e.snippetsPreventQuickSuggestions, this.defaultValue.filterGraceful),\n                    localityBonus: p(e.localityBonus, this.defaultValue.localityBonus),\n                    shareSuggestSelections: p(e.shareSuggestSelections, this.defaultValue.shareSuggestSelections),\n                    showIcons: p(e.showIcons, this.defaultValue.showIcons),\n                    showStatusBar: p(e.showStatusBar, this.defaultValue.showStatusBar),\n                    preview: p(e.preview, this.defaultValue.preview),\n                    previewMode: _(e.previewMode, this.defaultValue.previewMode, [\"prefix\", \"subword\", \"subwordSmart\"]),\n                    showInlineDetails: p(e.showInlineDetails, this.defaultValue.showInlineDetails),\n                    showMethods: p(e.showMethods, this.defaultValue.showMethods),\n                    showFunctions: p(e.showFunctions, this.defaultValue.showFunctions),\n                    showConstructors: p(e.showConstructors, this.defaultValue.showConstructors),\n                    showDeprecated: p(e.showDeprecated, this.defaultValue.showDeprecated),\n                    showFields: p(e.showFields, this.defaultValue.showFields),\n                    showVariables: p(e.showVariables, this.defaultValue.showVariables),\n                    showClasses: p(e.showClasses, this.defaultValue.showClasses),\n                    showStructs: p(e.showStructs, this.defaultValue.showStructs),\n                    showInterfaces: p(e.showInterfaces, this.defaultValue.showInterfaces),\n                    showModules: p(e.showModules, this.defaultValue.showModules),\n                    showProperties: p(e.showProperties, this.defaultValue.showProperties),\n                    showEvents: p(e.showEvents, this.defaultValue.showEvents),\n                    showOperators: p(e.showOperators, this.defaultValue.showOperators),\n                    showUnits: p(e.showUnits, this.defaultValue.showUnits),\n                    showValues: p(e.showValues, this.defaultValue.showValues),\n                    showConstants: p(e.showConstants, this.defaultValue.showConstants),\n                    showEnums: p(e.showEnums, this.defaultValue.showEnums),\n                    showEnumMembers: p(e.showEnumMembers, this.defaultValue.showEnumMembers),\n                    showKeywords: p(e.showKeywords, this.defaultValue.showKeywords),\n                    showWords: p(e.showWords, this.defaultValue.showWords),\n                    showColors: p(e.showColors, this.defaultValue.showColors),\n                    showFiles: p(e.showFiles, this.defaultValue.showFiles),\n                    showReferences: p(e.showReferences, this.defaultValue.showReferences),\n                    showFolders: p(e.showFolders, this.defaultValue.showFolders),\n                    showTypeParameters: p(e.showTypeParameters, this.defaultValue.showTypeParameters),\n                    showSnippets: p(e.showSnippets, this.defaultValue.showSnippets),\n                    showUsers: p(e.showUsers, this.defaultValue.showUsers),\n                    showIssues: p(e.showIssues, this.defaultValue.showIssues)\n                } : this.defaultValue\n            }\n        }),\n        inlineSuggest: I(new class extends c {\n            constructor() {\n                var e = {\n                    enabled: !0,\n                    mode: \"subwordSmart\"\n                };\n                super(54, \"inlineSuggest\", e, {\n                    \"editor.inlineSuggest.enabled\": {\n                        type: \"boolean\",\n                        default: e.enabled,\n                        description: r.a(\"inlineSuggest.enabled\", \"Controls whether to automatically show inline suggestions in the editor.\")\n                    }\n                })\n            }\n            validate(e) {\n                return e && \"object\" == typeof e ? {\n                    enabled: p(e.enabled, this.defaultValue.enabled),\n                    mode: _(e.mode, this.defaultValue.mode, [\"prefix\", \"subword\", \"subwordSmart\"])\n                } : this.defaultValue\n            }\n        }),\n        suggestFontSize: I(new m(106, \"suggestFontSize\", 0, 0, 1e3, {\n            markdownDescription: r.a(\"suggestFontSize\", \"Font size for the suggest widget. When set to `0`, the value of `#editor.fontSize#` is used.\")\n        })),\n        suggestLineHeight: I(new m(107, \"suggestLineHeight\", 0, 0, 1e3, {\n            markdownDescription: r.a(\"suggestLineHeight\", \"Line height for the suggest widget. When set to `0`, the value of `#editor.lineHeight#` is used. The minimum value is 8.\")\n        })),\n        suggestOnTriggerCharacters: I(new g(108, \"suggestOnTriggerCharacters\", !0, {\n            description: r.a(\"suggestOnTriggerCharacters\", \"Controls whether suggestions should automatically show up when typing trigger characters.\")\n        })),\n        suggestSelection: I(new w(109, \"suggestSelection\", \"recentlyUsed\", [\"first\", \"recentlyUsed\", \"recentlyUsedByPrefix\"], {\n            markdownEnumDescriptions: [r.a(\"suggestSelection.first\", \"Always select the first suggestion.\"), r.a(\"suggestSelection.recentlyUsed\", \"Select recent suggestions unless further typing selects one, e.g. `console.| -> console.log` because `log` has been completed recently.\"), r.a(\"suggestSelection.recentlyUsedByPrefix\", \"Select suggestions based on previous prefixes that have completed those suggestions, e.g. `co -> console` and `con -> const`.\")],\n            description: r.a(\"suggestSelection\", \"Controls how suggestions are pre-selected when showing the suggest list.\")\n        })),\n        tabCompletion: I(new w(110, \"tabCompletion\", \"off\", [\"on\", \"off\", \"onlySnippets\"], {\n            enumDescriptions: [r.a(\"tabCompletion.on\", \"Tab complete will insert the best matching suggestion when pressing tab.\"), r.a(\"tabCompletion.off\", \"Disable tab completions.\"), r.a(\"tabCompletion.onlySnippets\", \"Tab complete snippets when their prefix match. Works best when 'quickSuggestions' aren't enabled.\")],\n            description: r.a(\"tabCompletion\", \"Enables tab completions.\")\n        })),\n        tabIndex: I(new m(111, \"tabIndex\", 0, -1, 1073741824)),\n        unusualLineTerminators: I(new w(112, \"unusualLineTerminators\", \"prompt\", [\"auto\", \"off\", \"prompt\"], {\n            enumDescriptions: [r.a(\"unusualLineTerminators.auto\", \"Unusual line terminators are automatically removed.\"), r.a(\"unusualLineTerminators.off\", \"Unusual line terminators are ignored.\"), r.a(\"unusualLineTerminators.prompt\", \"Unusual line terminators prompt to be removed.\")],\n            description: r.a(\"unusualLineTerminators\", \"Remove unusual line terminators that might cause problems.\")\n        })),\n        useShadowDOM: I(new g(113, \"useShadowDOM\", !0)),\n        useTabStops: I(new g(114, \"useTabStops\", !0, {\n            description: r.a(\"useTabStops\", \"Inserting and deleting whitespace follows tab stops.\")\n        })),\n        wordSeparators: I(new b(115, \"wordSeparators\", t.b, {\n            description: r.a(\"wordSeparators\", \"Characters that will be used as word separators when doing word related navigations or operations.\")\n        })),\n        wordWrap: I(new w(116, \"wordWrap\", \"off\", [\"off\", \"on\", \"wordWrapColumn\", \"bounded\"], {\n            markdownEnumDescriptions: [r.a(\"wordWrap.off\", \"Lines will never wrap.\"), r.a(\"wordWrap.on\", \"Lines will wrap at the viewport width.\"), r.a({\n                key: \"wordWrap.wordWrapColumn\",\n                comment: [\"- `editor.wordWrapColumn` refers to a different setting and should not be localized.\"]\n            }, \"Lines will wrap at `#editor.wordWrapColumn#`.\"), r.a({\n                key: \"wordWrap.bounded\",\n                comment: [\"- viewport means the edge of the visible window size.\", \"- `editor.wordWrapColumn` refers to a different setting and should not be localized.\"]\n            }, \"Lines will wrap at the minimum of viewport and `#editor.wordWrapColumn#`.\")],\n            description: r.a({\n                key: \"wordWrap\",\n                comment: [\"- 'off', 'on', 'wordWrapColumn' and 'bounded' refer to values the setting can take and should not be localized.\", \"- `editor.wordWrapColumn` refers to a different setting and should not be localized.\"]\n            }, \"Controls how lines should wrap.\")\n        })),\n        wordWrapBreakAfterCharacters: I(new b(117, \"wordWrapBreakAfterCharacters\", \" \\t})]?|/&.,;¢°′″‰℃、。｡､￠，．：；？！％・･ゝゞヽヾーァィゥェォッャュョヮヵヶぁぃぅぇぉっゃゅょゎゕゖㇰㇱㇲㇳㇴㇵㇶㇷㇸㇹㇺㇻㇼㇽㇾㇿ々〻ｧｨｩｪｫｬｭｮｯｰ”〉》」』】〕）］｝｣\")),\n        wordWrapBreakBeforeCharacters: I(new b(118, \"wordWrapBreakBeforeCharacters\", \"([{‘“〈《「『【〔（［｛｢£¥＄￡￥+＋\")),\n        wordWrapColumn: I(new m(119, \"wordWrapColumn\", 80, 1, 1073741824, {\n            markdownDescription: r.a({\n                key: \"wordWrapColumn\",\n                comment: [\"- `editor.wordWrap` refers to a different setting and should not be localized.\", \"- 'wordWrapColumn' and 'bounded' refer to values the different setting can take and should not be localized.\"]\n            }, \"Controls the wrapping column of the editor when `#editor.wordWrap#` is `wordWrapColumn` or `bounded`.\")\n        })),\n        wordWrapOverride1: I(new w(120, \"wordWrapOverride1\", \"inherit\", [\"off\", \"on\", \"inherit\"])),\n        wordWrapOverride2: I(new w(121, \"wordWrapOverride2\", \"inherit\", [\"off\", \"on\", \"inherit\"])),\n        wrappingIndent: I(new y(122, \"wrappingIndent\", 1, \"same\", [\"none\", \"same\", \"indent\", \"deepIndent\"], (function(e) {\n            switch (e) {\n                case \"none\":\n                    return 0;\n                case \"same\":\n                    return 1;\n                case \"indent\":\n                    return 2;\n                case \"deepIndent\":\n                    return 3\n            }\n        }), {\n            enumDescriptions: [r.a(\"wrappingIndent.none\", \"No indentation. Wrapped lines begin at column 1.\"), r.a(\"wrappingIndent.same\", \"Wrapped lines get the same indentation as the parent.\"), r.a(\"wrappingIndent.indent\", \"Wrapped lines get +1 indentation toward the parent.\"), r.a(\"wrappingIndent.deepIndent\", \"Wrapped lines get +2 indentation toward the parent.\")],\n            description: r.a(\"wrappingIndent\", \"Controls the indentation of wrapped lines.\")\n        })),\n        wrappingStrategy: I(new w(123, \"wrappingStrategy\", \"simple\", [\"simple\", \"advanced\"], {\n            enumDescriptions: [r.a(\"wrappingStrategy.simple\", \"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.\"), r.a(\"wrappingStrategy.advanced\", \"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.\")],\n            description: r.a(\"wrappingStrategy\", \"Controls the algorithm that computes wrapping points.\")\n        })),\n        editorClassName: I(new class extends h {\n            constructor() {\n                super(126, [65, 33])\n            }\n            compute(e, t, i) {\n                const n = [\"monaco-editor\"];\n                return t.get(33) && n.push(t.get(33)), e.extraEditorClassName && n.push(e.extraEditorClassName), \"default\" === t.get(65) ? n.push(\"mouse-default\") : \"copy\" === t.get(65) && n.push(\"mouse-copy\"), t.get(99) && n.push(\"showUnused\"), t.get(124) && n.push(\"showDeprecated\"), n.join(\" \")\n            }\n        }),\n        pixelRatio: I(new class extends h {\n            constructor() {\n                super(127)\n            }\n            compute(e, t, i) {\n                return e.pixelRatio\n            }\n        }),\n        tabFocusMode: I(new class extends h {\n            constructor() {\n                super(128, [80])\n            }\n            compute(e, t, i) {\n                return !!t.get(80) || e.tabFocusMode\n            }\n        }),\n        layoutInfo: I(new S),\n        wrappingInfo: I(new class extends h {\n            constructor() {\n                super(130, [129])\n            }\n            compute(e, t, i) {\n                return t = t.get(129), {\n                    isDominatedByLongLines: e.isDominatedByLongLines,\n                    isWordWrapMinified: t.isWordWrapMinified,\n                    isViewportWrapping: t.isViewportWrapping,\n                    wrappingColumn: t.wrappingColumn\n                }\n            }\n        })\n    }\n}, function(e, t, i) {\n    \"use strict\";\n\n    function n(e, t, i, n, r, o, s, a) {\n        var l, d, c = \"function\" == typeof e ? e.options : e;\n        return t && (c.render = t, c.staticRenderFns = i, c._compiled = !0), n && (c.functional = !0), o && (c._scopeId = \"data-v-\" + o), s ? (l = function(e) {\n            (e = e || this.$vnode && this.$vnode.ssrContext || this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) || \"undefined\" == typeof __VUE_SSR_CONTEXT__ || (e = __VUE_SSR_CONTEXT__), r && r.call(this, e), e && e._registeredComponents && e._registeredComponents.add(s)\n        }, c._ssrRegister = l) : r && (l = a ? function() {\n            r.call(this, (c.functional ? this.parent : this).$root.$options.shadowRoot)\n        } : r), l && (c.functional ? (c._injectStyles = l, d = c.render, c.render = function(e, t) {\n            return l.call(t), d(e, t)\n        }) : (a = c.beforeCreate, c.beforeCreate = a ? [].concat(a, l) : [l])), {\n            exports: e,\n            options: c\n        }\n    }\n    i.d(t, \"a\", (function() {\n        return n\n    }))\n}, function(e, t, i) {\n    \"use strict\";\n    i.d(t, \"f\", (function() {\n        return r\n    })), i.d(t, \"g\", (function() {\n        return o\n    })), i.d(t, \"h\", (function() {\n        return s\n    })), i.d(t, \"e\", (function() {\n        return l\n    })), i.d(t, \"b\", (function() {\n        return d\n    })), i.d(t, \"c\", (function() {\n        return c\n    })), i.d(t, \"d\", (function() {\n        return h\n    })), i.d(t, \"a\", (function() {\n        return u\n    }));\n    const n = new class {\n        constructor() {\n            this.listeners = [], this.unexpectedErrorHandler = function(e) {\n                setTimeout(() => {\n                    if (e.stack) throw new Error(e.message + \"\\n\\n\" + e.stack);\n                    throw e\n                }, 0)\n            }\n        }\n        emit(e) {\n            this.listeners.forEach(t => {\n                t(e)\n            })\n        }\n        onUnexpectedError(e) {\n            this.unexpectedErrorHandler(e), this.emit(e)\n        }\n        onUnexpectedExternalError(e) {\n            this.unexpectedErrorHandler(e)\n        }\n    };\n\n    function r(e) {\n        l(e) || n.onUnexpectedError(e)\n    }\n\n    function o(e) {\n        l(e) || n.onUnexpectedExternalError(e)\n    }\n\n    function s(e) {\n        if (e instanceof Error) {\n            var {\n                name: t,\n                message: i\n            } = e;\n            return {\n                $isError: !0,\n                name: t,\n                message: i,\n                stack: e.stacktrace || e.stack\n            }\n        }\n        return e\n    }\n    const a = \"Canceled\";\n\n    function l(e) {\n        return e instanceof Error && e.name === a && e.message === a\n    }\n\n    function d() {\n        const e = new Error(a);\n        return e.name = e.message, e\n    }\n\n    function c(e) {\n        return e ? new Error(\"Illegal argument: \" + e) : new Error(\"Illegal argument\")\n    }\n\n    function h(e) {\n        return e ? new Error(\"Illegal state: \" + e) : new Error(\"Illegal state\")\n    }\n    class u extends Error {\n        constructor(e) {\n            super(\"NotSupported\"), e && (this.message = e)\n        }\n    }\n}, function(e, t, i) {\n    \"use strict\";\n    i.d(t, \"j\", (function() {\n        return l\n    })), i.d(t, \"h\", (function() {\n        return d\n    })), i.d(t, \"a\", (function() {\n        return h\n    })), i.d(t, \"f\", (function() {\n        return u\n    })), i.d(t, \"k\", (function() {\n        return p\n    })), i.d(t, \"i\", (function() {\n        return g\n    })), i.d(t, \"g\", (function() {\n        return f\n    })), i.d(t, \"c\", (function() {\n        return m\n    })), i.d(t, \"e\", (function() {\n        return v\n    })), i.d(t, \"b\", (function() {\n        return _\n    })), i.d(t, \"d\", (function() {\n        return n\n    }));\n    var n, r = i(51),\n        o = i(31),\n        s = i(4),\n        a = function(e, t, i, n) {\n            return new(i = i || Promise)((function(r, o) {\n                function s(e) {\n                    try {\n                        l(n.next(e))\n                    } catch (e) {\n                        o(e)\n                    }\n                }\n\n                function a(e) {\n                    try {\n                        l(n.throw(e))\n                    } catch (e) {\n                        o(e)\n                    }\n                }\n\n                function l(e) {\n                    var t;\n                    e.done ? r(e.value) : ((t = e.value) instanceof i ? t : new i((function(e) {\n                        e(t)\n                    }))).then(s, a)\n                }\n                l((n = n.apply(e, t || [])).next())\n            }))\n        };\n\n    function l(e) {\n        return !!e && \"function\" == typeof e.then\n    }\n\n    function d(e) {\n        const t = new r.b,\n            i = e(t.token),\n            n = new Promise((e, n) => {\n                const r = t.token.onCancellationRequested(() => {\n                    r.dispose(), t.dispose(), n(Object(o.b)())\n                });\n                Promise.resolve(i).then(i => {\n                    r.dispose(), t.dispose(), e(i)\n                }, e => {\n                    r.dispose(), t.dispose(), n(e)\n                })\n            });\n        return new class {\n            cancel() {\n                t.cancel()\n            }\n            then(e, t) {\n                return n.then(e, t)\n            } catch (e) {\n                return this.then(void 0, e)\n            } finally(e) {\n                return n.finally(e)\n            }\n        }\n    }\n    class c {\n        constructor() {\n            this.activePromise = null, this.queuedPromise = null, this.queuedPromiseFactory = null\n        }\n        queue(e) {\n            if (this.activePromise) {\n                if (this.queuedPromiseFactory = e, !this.queuedPromise) {\n                    const e = () => {\n                        this.queuedPromise = null;\n                        var e = this.queue(this.queuedPromiseFactory);\n                        return this.queuedPromiseFactory = null, e\n                    };\n                    this.queuedPromise = new Promise(t => {\n                        this.activePromise.then(e, e).then(t)\n                    })\n                }\n                return new Promise((e, t) => {\n                    this.queuedPromise.then(e, t)\n                })\n            }\n            return this.activePromise = e(), new Promise((e, t) => {\n                this.activePromise.then(t => {\n                    this.activePromise = null, e(t)\n                }, e => {\n                    this.activePromise = null, t(e)\n                })\n            })\n        }\n    }\n    class h {\n        constructor(e) {\n            this.defaultDelay = e, this.timeout = null, this.completionPromise = null, this.doResolve = null, this.doReject = null, this.task = null\n        }\n        trigger(e, t = this.defaultDelay) {\n            return this.task = e, this.cancelTimeout(), this.completionPromise || (this.completionPromise = new Promise((e, t) => {\n                this.doResolve = e, this.doReject = t\n            }).then(() => {\n                if (this.completionPromise = null, this.doResolve = null, this.task) {\n                    const e = this.task;\n                    return this.task = null, e()\n                }\n            })), this.timeout = setTimeout(() => {\n                this.timeout = null, this.doResolve && this.doResolve(null)\n            }, t), this.completionPromise\n        }\n        isTriggered() {\n            return null !== this.timeout\n        }\n        cancel() {\n            this.cancelTimeout(), this.completionPromise && (this.doReject && this.doReject(Object(o.b)()), this.completionPromise = null)\n        }\n        cancelTimeout() {\n            null !== this.timeout && (clearTimeout(this.timeout), this.timeout = null)\n        }\n        dispose() {\n            this.cancel()\n        }\n    }\n    class u {\n        constructor(e) {\n            this.delayer = new h(e), this.throttler = new c\n        }\n        trigger(e, t) {\n            return this.delayer.trigger(() => this.throttler.queue(e), t)\n        }\n        dispose() {\n            this.delayer.dispose()\n        }\n    }\n\n    function p(e, t) {\n        return t ? new Promise((i, n) => {\n            const r = setTimeout(() => {\n                    s.dispose(), i()\n                }, e),\n                s = t.onCancellationRequested(() => {\n                    clearTimeout(r), s.dispose(), n(Object(o.b)())\n                })\n        }) : d(t => p(e, t))\n    }\n\n    function g(e, t = 0) {\n        const i = setTimeout(e, t);\n        return Object(s.i)(() => clearTimeout(i))\n    }\n    class f {\n        constructor(e, t) {\n            this._token = -1, \"function\" == typeof e && \"number\" == typeof t && this.setIfNotSet(e, t)\n        }\n        dispose() {\n            this.cancel()\n        }\n        cancel() {\n            -1 !== this._token && (clearTimeout(this._token), this._token = -1)\n        }\n        cancelAndSet(e, t) {\n            this.cancel(), this._token = setTimeout(() => {\n                this._token = -1, e()\n            }, t)\n        }\n        setIfNotSet(e, t) {\n            -1 === this._token && (this._token = setTimeout(() => {\n                this._token = -1, e()\n            }, t))\n        }\n    }\n    class m {\n        constructor() {\n            this._token = -1\n        }\n        dispose() {\n            this.cancel()\n        }\n        cancel() {\n            -1 !== this._token && (clearInterval(this._token), this._token = -1)\n        }\n        cancelAndSet(e, t) {\n            this.cancel(), this._token = setInterval(() => {\n                e()\n            }, t)\n        }\n    }\n    class v {\n        constructor(e, t) {\n            this.timeoutToken = -1, this.runner = e, this.timeout = t, this.timeoutHandler = this.onTimeout.bind(this)\n        }\n        dispose() {\n            this.cancel(), this.runner = null\n        }\n        cancel() {\n            this.isScheduled() && (clearTimeout(this.timeoutToken), this.timeoutToken = -1)\n        }\n        schedule(e = this.timeout) {\n            this.cancel(), this.timeoutToken = setTimeout(this.timeoutHandler, e)\n        }\n        get delay() {\n            return this.timeout\n        }\n        set delay(e) {\n            this.timeout = e\n        }\n        isScheduled() {\n            return -1 !== this.timeoutToken\n        }\n        onTimeout() {\n            this.timeoutToken = -1, this.runner && this.doRun()\n        }\n        doRun() {\n            this.runner && this.runner()\n        }\n    }\n    let b;\n    b = \"function\" != typeof requestIdleCallback || \"function\" != typeof cancelIdleCallback ? e => {\n        const t = setTimeout(() => {\n            const t = Date.now() + 15;\n            e(Object.freeze({\n                didTimeout: !0,\n                timeRemaining: () => Math.max(0, t - Date.now())\n            }))\n        });\n        let i = !1;\n        return {\n            dispose() {\n                i || (i = !0, clearTimeout(t))\n            }\n        }\n    } : (e, t) => {\n        const i = requestIdleCallback(e, \"number\" == typeof t ? {\n            timeout: t\n        } : void 0);\n        let n = !1;\n        return {\n            dispose() {\n                n || (n = !0, cancelIdleCallback(i))\n            }\n        }\n    };\n    class _ {\n        constructor(e) {\n            this._didRun = !1, this._executor = () => {\n                try {\n                    this._value = e()\n                } catch (e) {\n                    this._error = e\n                } finally {\n                    this._didRun = !0\n                }\n            }, this._handle = b(() => this._executor())\n        }\n        dispose() {\n            this._handle.dispose()\n        }\n        get value() {\n            if (this._didRun || (this._handle.dispose(), this._executor()), this._error) throw this._error;\n            return this._value\n        }\n        get isInitialized() {\n            return this._didRun\n        }\n    }(i = n = n || {}).settled = function(e) {\n        return a(this, void 0, void 0, (function*() {\n            let t = void 0;\n            var i = yield Promise.all(e.map(e => e.then(e => e, e => {\n                t = t || e\n            })));\n            if (void 0 !== t) throw t;\n            return i\n        }))\n    }, i.withAsyncBody = function(e) {\n        return new Promise((t, i) => a(this, void 0, void 0, (function*() {\n            try {\n                yield e(t, i)\n            } catch (e) {\n                i(e)\n            }\n        })))\n    }\n}, function(e, t, i) {\n    \"use strict\";\n    i.d(t, \"d\", (function() {\n        return s\n    })), i.d(t, \"e\", (function() {\n        return a\n    })), i.d(t, \"c\", (function() {\n        return l\n    })), i.d(t, \"b\", (function() {\n        return d\n    })), i.d(t, \"a\", (function() {\n        return n\n    }));\n    var n, r = i(2);\n    const o = new class {\n            constructor() {\n                this._icons = new Map, this._onDidRegister = new r.b\n            }\n            add(e) {\n                const t = this._icons.get(e.id);\n                t ? e.description ? t.description = e.description : console.error(\"Duplicate registration of codicon \" + e.id) : (this._icons.set(e.id, e), this._onDidRegister.fire(e))\n            }\n            get(e) {\n                return this._icons.get(e)\n            }\n            get all() {\n                return this._icons.values()\n            }\n            get onDidRegister() {\n                return this._onDidRegister.event\n            }\n        },\n        s = o;\n\n    function a(e, t) {\n        return new d(e, t)\n    }\n\n    function l(e) {\n        return e ? e.replace(/\\$\\((.*?)\\)/g, (e, t) => ` ${t} `).trim() : \"\"\n    }\n    class d {\n        constructor(e, t, i) {\n            this.id = e, this.definition = t, this.description = i, o.add(this)\n        }\n        get classNames() {\n            return \"codicon codicon-\" + this.id\n        }\n        get classNamesArray() {\n            return [\"codicon\", \"codicon-\" + this.id]\n        }\n        get cssSelector() {\n            return \".codicon.codicon-\" + this.id\n        }\n    }! function(e) {\n        e.iconNameSegment = \"[A-Za-z0-9]+\", e.iconNameExpression = \"[A-Za-z0-9\\\\-]+\", e.iconModifierExpression = \"~[A-Za-z]+\";\n        const t = new RegExp(`^(${e.iconNameExpression})(${e.iconModifierExpression})?$`);\n\n        function i(e) {\n            if (e instanceof d) return [\"codicon\", \"codicon-\" + e.id];\n            if (!(e = t.exec(e.id))) return i(d.error);\n            let [, n, r] = e;\n            const o = [\"codicon\", \"codicon-\" + n];\n            return r && o.push(\"codicon-modifier-\" + r.substr(1)), o\n        }\n        e.asClassNameArray = i, e.asClassName = function(e) {\n            return i(e).join(\" \")\n        }, e.asCSSSelector = function(e) {\n            return \".\" + i(e).join(\".\")\n        }\n    }(n = n || {}), (i = d = d || {}).add = new i(\"add\", {\n        fontCharacter: \"\\\\ea60\"\n    }), i.plus = new i(\"plus\", i.add.definition), i.gistNew = new i(\"gist-new\", i.add.definition), i.repoCreate = new i(\"repo-create\", i.add.definition), i.lightbulb = new i(\"lightbulb\", {\n        fontCharacter: \"\\\\ea61\"\n    }), i.lightBulb = new i(\"light-bulb\", {\n        fontCharacter: \"\\\\ea61\"\n    }), i.repo = new i(\"repo\", {\n        fontCharacter: \"\\\\ea62\"\n    }), i.repoDelete = new i(\"repo-delete\", {\n        fontCharacter: \"\\\\ea62\"\n    }), i.gistFork = new i(\"gist-fork\", {\n        fontCharacter: \"\\\\ea63\"\n    }), i.repoForked = new i(\"repo-forked\", {\n        fontCharacter: \"\\\\ea63\"\n    }), i.gitPullRequest = new i(\"git-pull-request\", {\n        fontCharacter: \"\\\\ea64\"\n    }), i.gitPullRequestAbandoned = new i(\"git-pull-request-abandoned\", {\n        fontCharacter: \"\\\\ea64\"\n    }), i.recordKeys = new i(\"record-keys\", {\n        fontCharacter: \"\\\\ea65\"\n    }), i.keyboard = new i(\"keyboard\", {\n        fontCharacter: \"\\\\ea65\"\n    }), i.tag = new i(\"tag\", {\n        fontCharacter: \"\\\\ea66\"\n    }), i.tagAdd = new i(\"tag-add\", {\n        fontCharacter: \"\\\\ea66\"\n    }), i.tagRemove = new i(\"tag-remove\", {\n        fontCharacter: \"\\\\ea66\"\n    }), i.person = new i(\"person\", {\n        fontCharacter: \"\\\\ea67\"\n    }), i.personFollow = new i(\"person-follow\", {\n        fontCharacter: \"\\\\ea67\"\n    }), i.personOutline = new i(\"person-outline\", {\n        fontCharacter: \"\\\\ea67\"\n    }), i.personFilled = new i(\"person-filled\", {\n        fontCharacter: \"\\\\ea67\"\n    }), i.gitBranch = new i(\"git-branch\", {\n        fontCharacter: \"\\\\ea68\"\n    }), i.gitBranchCreate = new i(\"git-branch-create\", {\n        fontCharacter: \"\\\\ea68\"\n    }), i.gitBranchDelete = new i(\"git-branch-delete\", {\n        fontCharacter: \"\\\\ea68\"\n    }), i.sourceControl = new i(\"source-control\", {\n        fontCharacter: \"\\\\ea68\"\n    }), i.mirror = new i(\"mirror\", {\n        fontCharacter: \"\\\\ea69\"\n    }), i.mirrorPublic = new i(\"mirror-public\", {\n        fontCharacter: \"\\\\ea69\"\n    }), i.star = new i(\"star\", {\n        fontCharacter: \"\\\\ea6a\"\n    }), i.starAdd = new i(\"star-add\", {\n        fontCharacter: \"\\\\ea6a\"\n    }), i.starDelete = new i(\"star-delete\", {\n        fontCharacter: \"\\\\ea6a\"\n    }), i.starEmpty = new i(\"star-empty\", {\n        fontCharacter: \"\\\\ea6a\"\n    }), i.comment = new i(\"comment\", {\n        fontCharacter: \"\\\\ea6b\"\n    }), i.commentAdd = new i(\"comment-add\", {\n        fontCharacter: \"\\\\ea6b\"\n    }), i.alert = new i(\"alert\", {\n        fontCharacter: \"\\\\ea6c\"\n    }), i.warning = new i(\"warning\", {\n        fontCharacter: \"\\\\ea6c\"\n    }), i.search = new i(\"search\", {\n        fontCharacter: \"\\\\ea6d\"\n    }), i.searchSave = new i(\"search-save\", {\n        fontCharacter: \"\\\\ea6d\"\n    }), i.logOut = new i(\"log-out\", {\n        fontCharacter: \"\\\\ea6e\"\n    }), i.signOut = new i(\"sign-out\", {\n        fontCharacter: \"\\\\ea6e\"\n    }), i.logIn = new i(\"log-in\", {\n        fontCharacter: \"\\\\ea6f\"\n    }), i.signIn = new i(\"sign-in\", {\n        fontCharacter: \"\\\\ea6f\"\n    }), i.eye = new i(\"eye\", {\n        fontCharacter: \"\\\\ea70\"\n    }), i.eyeUnwatch = new i(\"eye-unwatch\", {\n        fontCharacter: \"\\\\ea70\"\n    }), i.eyeWatch = new i(\"eye-watch\", {\n        fontCharacter: \"\\\\ea70\"\n    }), i.circleFilled = new i(\"circle-filled\", {\n        fontCharacter: \"\\\\ea71\"\n    }), i.primitiveDot = new i(\"primitive-dot\", {\n        fontCharacter: \"\\\\ea71\"\n    }), i.closeDirty = new i(\"close-dirty\", {\n        fontCharacter: \"\\\\ea71\"\n    }), i.debugBreakpoint = new i(\"debug-breakpoint\", {\n        fontCharacter: \"\\\\ea71\"\n    }), i.debugBreakpointDisabled = new i(\"debug-breakpoint-disabled\", {\n        fontCharacter: \"\\\\ea71\"\n    }), i.debugHint = new i(\"debug-hint\", {\n        fontCharacter: \"\\\\ea71\"\n    }), i.primitiveSquare = new i(\"primitive-square\", {\n        fontCharacter: \"\\\\ea72\"\n    }), i.edit = new i(\"编辑\", {\n        fontCharacter: \"\\\\ea73\"\n    }), i.pencil = new i(\"pencil\", {\n        fontCharacter: \"\\\\ea73\"\n    }), i.info = new i(\"info\", {\n        fontCharacter: \"\\\\ea74\"\n    }), i.issueOpened = new i(\"issue-opened\", {\n        fontCharacter: \"\\\\ea74\"\n    }), i.gistPrivate = new i(\"gist-private\", {\n        fontCharacter: \"\\\\ea75\"\n    }), i.gitForkPrivate = new i(\"git-fork-private\", {\n        fontCharacter: \"\\\\ea75\"\n    }), i.lock = new i(\"lock\", {\n        fontCharacter: \"\\\\ea75\"\n    }), i.mirrorPrivate = new i(\"mirror-private\", {\n        fontCharacter: \"\\\\ea75\"\n    }), i.close = new i(\"close\", {\n        fontCharacter: \"\\\\ea76\"\n    }), i.removeClose = new i(\"remove-close\", {\n        fontCharacter: \"\\\\ea76\"\n    }), i.x = new i(\"x\", {\n        fontCharacter: \"\\\\ea76\"\n    }), i.repoSync = new i(\"repo-sync\", {\n        fontCharacter: \"\\\\ea77\"\n    }), i.sync = new i(\"sync\", {\n        fontCharacter: \"\\\\ea77\"\n    }), i.clone = new i(\"clone\", {\n        fontCharacter: \"\\\\ea78\"\n    }), i.desktopDownload = new i(\"desktop-download\", {\n        fontCharacter: \"\\\\ea78\"\n    }), i.beaker = new i(\"beaker\", {\n        fontCharacter: \"\\\\ea79\"\n    }), i.microscope = new i(\"microscope\", {\n        fontCharacter: \"\\\\ea79\"\n    }), i.vm = new i(\"vm\", {\n        fontCharacter: \"\\\\ea7a\"\n    }), i.deviceDesktop = new i(\"device-desktop\", {\n        fontCharacter: \"\\\\ea7a\"\n    }), i.file = new i(\"file\", {\n        fontCharacter: \"\\\\ea7b\"\n    }), i.fileText = new i(\"file-text\", {\n        fontCharacter: \"\\\\ea7b\"\n    }), i.more = new i(\"more\", {\n        fontCharacter: \"\\\\ea7c\"\n    }), i.ellipsis = new i(\"ellipsis\", {\n        fontCharacter: \"\\\\ea7c\"\n    }), i.kebabHorizontal = new i(\"kebab-horizontal\", {\n        fontCharacter: \"\\\\ea7c\"\n    }), i.mailReply = new i(\"mail-reply\", {\n        fontCharacter: \"\\\\ea7d\"\n    }), i.reply = new i(\"reply\", {\n        fontCharacter: \"\\\\ea7d\"\n    }), i.organization = new i(\"organization\", {\n        fontCharacter: \"\\\\ea7e\"\n    }), i.organizationFilled = new i(\"organization-filled\", {\n        fontCharacter: \"\\\\ea7e\"\n    }), i.organizationOutline = new i(\"organization-outline\", {\n        fontCharacter: \"\\\\ea7e\"\n    }), i.newFile = new i(\"new-file\", {\n        fontCharacter: \"\\\\ea7f\"\n    }), i.fileAdd = new i(\"file-add\", {\n        fontCharacter: \"\\\\ea7f\"\n    }), i.newFolder = new i(\"new-folder\", {\n        fontCharacter: \"\\\\ea80\"\n    }), i.fileDirectoryCreate = new i(\"file-directory-create\", {\n        fontCharacter: \"\\\\ea80\"\n    }), i.trash = new i(\"trash\", {\n        fontCharacter: \"\\\\ea81\"\n    }), i.trashcan = new i(\"trashcan\", {\n        fontCharacter: \"\\\\ea81\"\n    }), i.history = new i(\"history\", {\n        fontCharacter: \"\\\\ea82\"\n    }), i.clock = new i(\"clock\", {\n        fontCharacter: \"\\\\ea82\"\n    }), i.folder = new i(\"folder\", {\n        fontCharacter: \"\\\\ea83\"\n    }), i.fileDirectory = new i(\"file-directory\", {\n        fontCharacter: \"\\\\ea83\"\n    }), i.symbolFolder = new i(\"symbol-folder\", {\n        fontCharacter: \"\\\\ea83\"\n    }), i.logoGithub = new i(\"logo-github\", {\n        fontCharacter: \"\\\\ea84\"\n    }), i.markGithub = new i(\"mark-github\", {\n        fontCharacter: \"\\\\ea84\"\n    }), i.github = new i(\"github\", {\n        fontCharacter: \"\\\\ea84\"\n    }), i.terminal = new i(\"terminal\", {\n        fontCharacter: \"\\\\ea85\"\n    }), i.console = new i(\"console\", {\n        fontCharacter: \"\\\\ea85\"\n    }), i.repl = new i(\"repl\", {\n        fontCharacter: \"\\\\ea85\"\n    }), i.zap = new i(\"zap\", {\n        fontCharacter: \"\\\\ea86\"\n    }), i.symbolEvent = new i(\"symbol-event\", {\n        fontCharacter: \"\\\\ea86\"\n    }), i.error = new i(\"error\", {\n        fontCharacter: \"\\\\ea87\"\n    }), i.stop = new i(\"stop\", {\n        fontCharacter: \"\\\\ea87\"\n    }), i.variable = new i(\"variable\", {\n        fontCharacter: \"\\\\ea88\"\n    }), i.symbolVariable = new i(\"symbol-variable\", {\n        fontCharacter: \"\\\\ea88\"\n    }), i.array = new i(\"array\", {\n        fontCharacter: \"\\\\ea8a\"\n    }), i.symbolArray = new i(\"symbol-array\", {\n        fontCharacter: \"\\\\ea8a\"\n    }), i.symbolModule = new i(\"symbol-module\", {\n        fontCharacter: \"\\\\ea8b\"\n    }), i.symbolPackage = new i(\"symbol-package\", {\n        fontCharacter: \"\\\\ea8b\"\n    }), i.symbolNamespace = new i(\"symbol-namespace\", {\n        fontCharacter: \"\\\\ea8b\"\n    }), i.symbolObject = new i(\"symbol-object\", {\n        fontCharacter: \"\\\\ea8b\"\n    }), i.symbolMethod = new i(\"symbol-method\", {\n        fontCharacter: \"\\\\ea8c\"\n    }), i.symbolFunction = new i(\"symbol-function\", {\n        fontCharacter: \"\\\\ea8c\"\n    }), i.symbolConstructor = new i(\"symbol-constructor\", {\n        fontCharacter: \"\\\\ea8c\"\n    }), i.symbolBoolean = new i(\"symbol-boolean\", {\n        fontCharacter: \"\\\\ea8f\"\n    }), i.symbolNull = new i(\"symbol-null\", {\n        fontCharacter: \"\\\\ea8f\"\n    }), i.symbolNumeric = new i(\"symbol-numeric\", {\n        fontCharacter: \"\\\\ea90\"\n    }), i.symbolNumber = new i(\"symbol-number\", {\n        fontCharacter: \"\\\\ea90\"\n    }), i.symbolStructure = new i(\"symbol-structure\", {\n        fontCharacter: \"\\\\ea91\"\n    }), i.symbolStruct = new i(\"symbol-struct\", {\n        fontCharacter: \"\\\\ea91\"\n    }), i.symbolParameter = new i(\"symbol-parameter\", {\n        fontCharacter: \"\\\\ea92\"\n    }), i.symbolTypeParameter = new i(\"symbol-type-parameter\", {\n        fontCharacter: \"\\\\ea92\"\n    }), i.symbolKey = new i(\"symbol-key\", {\n        fontCharacter: \"\\\\ea93\"\n    }), i.symbolText = new i(\"symbol-text\", {\n        fontCharacter: \"\\\\ea93\"\n    }), i.symbolReference = new i(\"symbol-reference\", {\n        fontCharacter: \"\\\\ea94\"\n    }), i.goToFile = new i(\"go-to-file\", {\n        fontCharacter: \"\\\\ea94\"\n    }), i.symbolEnum = new i(\"symbol-enum\", {\n        fontCharacter: \"\\\\ea95\"\n    }), i.symbolValue = new i(\"symbol-value\", {\n        fontCharacter: \"\\\\ea95\"\n    }), i.symbolRuler = new i(\"symbol-ruler\", {\n        fontCharacter: \"\\\\ea96\"\n    }), i.symbolUnit = new i(\"symbol-unit\", {\n        fontCharacter: \"\\\\ea96\"\n    }), i.activateBreakpoints = new i(\"activate-breakpoints\", {\n        fontCharacter: \"\\\\ea97\"\n    }), i.archive = new i(\"archive\", {\n        fontCharacter: \"\\\\ea98\"\n    }), i.arrowBoth = new i(\"arrow-both\", {\n        fontCharacter: \"\\\\ea99\"\n    }), i.arrowDown = new i(\"arrow-down\", {\n        fontCharacter: \"\\\\ea9a\"\n    }), i.arrowLeft = new i(\"arrow-left\", {\n        fontCharacter: \"\\\\ea9b\"\n    }), i.arrowRight = new i(\"arrow-right\", {\n        fontCharacter: \"\\\\ea9c\"\n    }), i.arrowSmallDown = new i(\"arrow-small-down\", {\n        fontCharacter: \"\\\\ea9d\"\n    }), i.arrowSmallLeft = new i(\"arrow-small-left\", {\n        fontCharacter: \"\\\\ea9e\"\n    }), i.arrowSmallRight = new i(\"arrow-small-right\", {\n        fontCharacter: \"\\\\ea9f\"\n    }), i.arrowSmallUp = new i(\"arrow-small-up\", {\n        fontCharacter: \"\\\\eaa0\"\n    }), i.arrowUp = new i(\"arrow-up\", {\n        fontCharacter: \"\\\\eaa1\"\n    }), i.bell = new i(\"bell\", {\n        fontCharacter: \"\\\\eaa2\"\n    }), i.bold = new i(\"bold\", {\n        fontCharacter: \"\\\\eaa3\"\n    }), i.book = new i(\"book\", {\n        fontCharacter: \"\\\\eaa4\"\n    }), i.bookmark = new i(\"bookmark\", {\n        fontCharacter: \"\\\\eaa5\"\n    }), i.debugBreakpointConditionalUnverified = new i(\"debug-breakpoint-conditional-unverified\", {\n        fontCharacter: \"\\\\eaa6\"\n    }), i.debugBreakpointConditional = new i(\"debug-breakpoint-conditional\", {\n        fontCharacter: \"\\\\eaa7\"\n    }), i.debugBreakpointConditionalDisabled = new i(\"debug-breakpoint-conditional-disabled\", {\n        fontCharacter: \"\\\\eaa7\"\n    }), i.debugBreakpointDataUnverified = new i(\"debug-breakpoint-data-unverified\", {\n        fontCharacter: \"\\\\eaa8\"\n    }), i.debugBreakpointData = new i(\"debug-breakpoint-data\", {\n        fontCharacter: \"\\\\eaa9\"\n    }), i.debugBreakpointDataDisabled = new i(\"debug-breakpoint-data-disabled\", {\n        fontCharacter: \"\\\\eaa9\"\n    }), i.debugBreakpointLogUnverified = new i(\"debug-breakpoint-log-unverified\", {\n        fontCharacter: \"\\\\eaaa\"\n    }), i.debugBreakpointLog = new i(\"debug-breakpoint-log\", {\n        fontCharacter: \"\\\\eaab\"\n    }), i.debugBreakpointLogDisabled = new i(\"debug-breakpoint-log-disabled\", {\n        fontCharacter: \"\\\\eaab\"\n    }), i.briefcase = new i(\"briefcase\", {\n        fontCharacter: \"\\\\eaac\"\n    }), i.broadcast = new i(\"broadcast\", {\n        fontCharacter: \"\\\\eaad\"\n    }), i.browser = new i(\"browser\", {\n        fontCharacter: \"\\\\eaae\"\n    }), i.bug = new i(\"bug\", {\n        fontCharacter: \"\\\\eaaf\"\n    }), i.calendar = new i(\"calendar\", {\n        fontCharacter: \"\\\\eab0\"\n    }), i.caseSensitive = new i(\"case-sensitive\", {\n        fontCharacter: \"\\\\eab1\"\n    }), i.check = new i(\"check\", {\n        fontCharacter: \"\\\\eab2\"\n    }), i.checklist = new i(\"checklist\", {\n        fontCharacter: \"\\\\eab3\"\n    }), i.chevronDown = new i(\"chevron-down\", {\n        fontCharacter: \"\\\\eab4\"\n    }), i.dropDownButton = new i(\"drop-down-button\", i.chevronDown.definition), i.chevronLeft = new i(\"chevron-left\", {\n        fontCharacter: \"\\\\eab5\"\n    }), i.chevronRight = new i(\"chevron-right\", {\n        fontCharacter: \"\\\\eab6\"\n    }), i.chevronUp = new i(\"chevron-up\", {\n        fontCharacter: \"\\\\eab7\"\n    }), i.chromeClose = new i(\"chrome-close\", {\n        fontCharacter: \"\\\\eab8\"\n    }), i.chromeMaximize = new i(\"chrome-maximize\", {\n        fontCharacter: \"\\\\eab9\"\n    }), i.chromeMinimize = new i(\"chrome-minimize\", {\n        fontCharacter: \"\\\\eaba\"\n    }), i.chromeRestore = new i(\"chrome-restore\", {\n        fontCharacter: \"\\\\eabb\"\n    }), i.circleOutline = new i(\"circle-outline\", {\n        fontCharacter: \"\\\\eabc\"\n    }), i.debugBreakpointUnverified = new i(\"debug-breakpoint-unverified\", {\n        fontCharacter: \"\\\\eabc\"\n    }), i.circleSlash = new i(\"circle-slash\", {\n        fontCharacter: \"\\\\eabd\"\n    }), i.circuitBoard = new i(\"circuit-board\", {\n        fontCharacter: \"\\\\eabe\"\n    }), i.clearAll = new i(\"clear-all\", {\n        fontCharacter: \"\\\\eabf\"\n    }), i.clippy = new i(\"clippy\", {\n        fontCharacter: \"\\\\eac0\"\n    }), i.closeAll = new i(\"close-all\", {\n        fontCharacter: \"\\\\eac1\"\n    }), i.cloudDownload = new i(\"cloud-download\", {\n        fontCharacter: \"\\\\eac2\"\n    }), i.cloudUpload = new i(\"cloud-upload\", {\n        fontCharacter: \"\\\\eac3\"\n    }), i.code = new i(\"code\", {\n        fontCharacter: \"\\\\eac4\"\n    }), i.collapseAll = new i(\"collapse-all\", {\n        fontCharacter: \"\\\\eac5\"\n    }), i.colorMode = new i(\"color-mode\", {\n        fontCharacter: \"\\\\eac6\"\n    }), i.commentDiscussion = new i(\"comment-discussion\", {\n        fontCharacter: \"\\\\eac7\"\n    }), i.compareChanges = new i(\"compare-changes\", {\n        fontCharacter: \"\\\\eafd\"\n    }), i.creditCard = new i(\"credit-card\", {\n        fontCharacter: \"\\\\eac9\"\n    }), i.dash = new i(\"dash\", {\n        fontCharacter: \"\\\\eacc\"\n    }), i.dashboard = new i(\"dashboard\", {\n        fontCharacter: \"\\\\eacd\"\n    }), i.database = new i(\"database\", {\n        fontCharacter: \"\\\\eace\"\n    }), i.debugContinue = new i(\"debug-continue\", {\n        fontCharacter: \"\\\\eacf\"\n    }), i.debugDisconnect = new i(\"debug-disconnect\", {\n        fontCharacter: \"\\\\ead0\"\n    }), i.debugPause = new i(\"debug-pause\", {\n        fontCharacter: \"\\\\ead1\"\n    }), i.debugRestart = new i(\"debug-restart\", {\n        fontCharacter: \"\\\\ead2\"\n    }), i.debugStart = new i(\"debug-start\", {\n        fontCharacter: \"\\\\ead3\"\n    }), i.debugStepInto = new i(\"debug-step-into\", {\n        fontCharacter: \"\\\\ead4\"\n    }), i.debugStepOut = new i(\"debug-step-out\", {\n        fontCharacter: \"\\\\ead5\"\n    }), i.debugStepOver = new i(\"debug-step-over\", {\n        fontCharacter: \"\\\\ead6\"\n    }), i.debugStop = new i(\"debug-stop\", {\n        fontCharacter: \"\\\\ead7\"\n    }), i.debug = new i(\"debug\", {\n        fontCharacter: \"\\\\ead8\"\n    }), i.deviceCameraVideo = new i(\"device-camera-video\", {\n        fontCharacter: \"\\\\ead9\"\n    }), i.deviceCamera = new i(\"device-camera\", {\n        fontCharacter: \"\\\\eada\"\n    }), i.deviceMobile = new i(\"device-mobile\", {\n        fontCharacter: \"\\\\eadb\"\n    }), i.diffAdded = new i(\"diff-added\", {\n        fontCharacter: \"\\\\eadc\"\n    }), i.diffIgnored = new i(\"diff-ignored\", {\n        fontCharacter: \"\\\\eadd\"\n    }), i.diffModified = new i(\"diff-modified\", {\n        fontCharacter: \"\\\\eade\"\n    }), i.diffRemoved = new i(\"diff-removed\", {\n        fontCharacter: \"\\\\eadf\"\n    }), i.diffRenamed = new i(\"diff-renamed\", {\n        fontCharacter: \"\\\\eae0\"\n    }), i.diff = new i(\"diff\", {\n        fontCharacter: \"\\\\eae1\"\n    }), i.discard = new i(\"discard\", {\n        fontCharacter: \"\\\\eae2\"\n    }), i.editorLayout = new i(\"editor-layout\", {\n        fontCharacter: \"\\\\eae3\"\n    }), i.emptyWindow = new i(\"empty-window\", {\n        fontCharacter: \"\\\\eae4\"\n    }), i.exclude = new i(\"exclude\", {\n        fontCharacter: \"\\\\eae5\"\n    }), i.extensions = new i(\"extensions\", {\n        fontCharacter: \"\\\\eae6\"\n    }), i.eyeClosed = new i(\"eye-closed\", {\n        fontCharacter: \"\\\\eae7\"\n    }), i.fileBinary = new i(\"file-binary\", {\n        fontCharacter: \"\\\\eae8\"\n    }), i.fileCode = new i(\"file-code\", {\n        fontCharacter: \"\\\\eae9\"\n    }), i.fileMedia = new i(\"file-media\", {\n        fontCharacter: \"\\\\eaea\"\n    }), i.filePdf = new i(\"file-pdf\", {\n        fontCharacter: \"\\\\eaeb\"\n    }), i.fileSubmodule = new i(\"file-submodule\", {\n        fontCharacter: \"\\\\eaec\"\n    }), i.fileSymlinkDirectory = new i(\"file-symlink-directory\", {\n        fontCharacter: \"\\\\eaed\"\n    }), i.fileSymlinkFile = new i(\"file-symlink-file\", {\n        fontCharacter: \"\\\\eaee\"\n    }), i.fileZip = new i(\"file-zip\", {\n        fontCharacter: \"\\\\eaef\"\n    }), i.files = new i(\"files\", {\n        fontCharacter: \"\\\\eaf0\"\n    }), i.filter = new i(\"filter\", {\n        fontCharacter: \"\\\\eaf1\"\n    }), i.flame = new i(\"flame\", {\n        fontCharacter: \"\\\\eaf2\"\n    }), i.foldDown = new i(\"fold-down\", {\n        fontCharacter: \"\\\\eaf3\"\n    }), i.foldUp = new i(\"fold-up\", {\n        fontCharacter: \"\\\\eaf4\"\n    }), i.fold = new i(\"fold\", {\n        fontCharacter: \"\\\\eaf5\"\n    }), i.folderActive = new i(\"folder-active\", {\n        fontCharacter: \"\\\\eaf6\"\n    }), i.folderOpened = new i(\"folder-opened\", {\n        fontCharacter: \"\\\\eaf7\"\n    }), i.gear = new i(\"gear\", {\n        fontCharacter: \"\\\\eaf8\"\n    }), i.gift = new i(\"gift\", {\n        fontCharacter: \"\\\\eaf9\"\n    }), i.gistSecret = new i(\"gist-secret\", {\n        fontCharacter: \"\\\\eafa\"\n    }), i.gist = new i(\"gist\", {\n        fontCharacter: \"\\\\eafb\"\n    }), i.gitCommit = new i(\"git-commit\", {\n        fontCharacter: \"\\\\eafc\"\n    }), i.gitCompare = new i(\"git-compare\", {\n        fontCharacter: \"\\\\eafd\"\n    }), i.gitMerge = new i(\"git-merge\", {\n        fontCharacter: \"\\\\eafe\"\n    }), i.githubAction = new i(\"github-action\", {\n        fontCharacter: \"\\\\eaff\"\n    }), i.githubAlt = new i(\"github-alt\", {\n        fontCharacter: \"\\\\eb00\"\n    }), i.globe = new i(\"globe\", {\n        fontCharacter: \"\\\\eb01\"\n    }), i.grabber = new i(\"grabber\", {\n        fontCharacter: \"\\\\eb02\"\n    }), i.graph = new i(\"graph\", {\n        fontCharacter: \"\\\\eb03\"\n    }), i.gripper = new i(\"gripper\", {\n        fontCharacter: \"\\\\eb04\"\n    }), i.heart = new i(\"heart\", {\n        fontCharacter: \"\\\\eb05\"\n    }), i.home = new i(\"home\", {\n        fontCharacter: \"\\\\eb06\"\n    }), i.horizontalRule = new i(\"horizontal-rule\", {\n        fontCharacter: \"\\\\eb07\"\n    }), i.hubot = new i(\"hubot\", {\n        fontCharacter: \"\\\\eb08\"\n    }), i.inbox = new i(\"inbox\", {\n        fontCharacter: \"\\\\eb09\"\n    }), i.issueClosed = new i(\"issue-closed\", {\n        fontCharacter: \"\\\\eba4\"\n    }), i.issueReopened = new i(\"issue-reopened\", {\n        fontCharacter: \"\\\\eb0b\"\n    }), i.issues = new i(\"issues\", {\n        fontCharacter: \"\\\\eb0c\"\n    }), i.italic = new i(\"italic\", {\n        fontCharacter: \"\\\\eb0d\"\n    }), i.jersey = new i(\"jersey\", {\n        fontCharacter: \"\\\\eb0e\"\n    }), i.json = new i(\"json\", {\n        fontCharacter: \"\\\\eb0f\"\n    }), i.kebabVertical = new i(\"kebab-vertical\", {\n        fontCharacter: \"\\\\eb10\"\n    }), i.key = new i(\"key\", {\n        fontCharacter: \"\\\\eb11\"\n    }), i.law = new i(\"law\", {\n        fontCharacter: \"\\\\eb12\"\n    }), i.lightbulbAutofix = new i(\"lightbulb-autofix\", {\n        fontCharacter: \"\\\\eb13\"\n    }), i.linkExternal = new i(\"link-external\", {\n        fontCharacter: \"\\\\eb14\"\n    }), i.link = new i(\"link\", {\n        fontCharacter: \"\\\\eb15\"\n    }), i.listOrdered = new i(\"list-ordered\", {\n        fontCharacter: \"\\\\eb16\"\n    }), i.listUnordered = new i(\"list-unordered\", {\n        fontCharacter: \"\\\\eb17\"\n    }), i.liveShare = new i(\"live-share\", {\n        fontCharacter: \"\\\\eb18\"\n    }), i.loading = new i(\"loading\", {\n        fontCharacter: \"\\\\eb19\"\n    }), i.location = new i(\"location\", {\n        fontCharacter: \"\\\\eb1a\"\n    }), i.mailRead = new i(\"mail-read\", {\n        fontCharacter: \"\\\\eb1b\"\n    }), i.mail = new i(\"mail\", {\n        fontCharacter: \"\\\\eb1c\"\n    }), i.markdown = new i(\"markdown\", {\n        fontCharacter: \"\\\\eb1d\"\n    }), i.megaphone = new i(\"megaphone\", {\n        fontCharacter: \"\\\\eb1e\"\n    }), i.mention = new i(\"mention\", {\n        fontCharacter: \"\\\\eb1f\"\n    }), i.milestone = new i(\"milestone\", {\n        fontCharacter: \"\\\\eb20\"\n    }), i.mortarBoard = new i(\"mortar-board\", {\n        fontCharacter: \"\\\\eb21\"\n    }), i.move = new i(\"move\", {\n        fontCharacter: \"\\\\eb22\"\n    }), i.multipleWindows = new i(\"multiple-windows\", {\n        fontCharacter: \"\\\\eb23\"\n    }), i.mute = new i(\"mute\", {\n        fontCharacter: \"\\\\eb24\"\n    }), i.noNewline = new i(\"no-newline\", {\n        fontCharacter: \"\\\\eb25\"\n    }), i.note = new i(\"note\", {\n        fontCharacter: \"\\\\eb26\"\n    }), i.octoface = new i(\"octoface\", {\n        fontCharacter: \"\\\\eb27\"\n    }), i.openPreview = new i(\"open-preview\", {\n        fontCharacter: \"\\\\eb28\"\n    }), i.package_ = new i(\"package\", {\n        fontCharacter: \"\\\\eb29\"\n    }), i.paintcan = new i(\"paintcan\", {\n        fontCharacter: \"\\\\eb2a\"\n    }), i.pin = new i(\"pin\", {\n        fontCharacter: \"\\\\eb2b\"\n    }), i.play = new i(\"play\", {\n        fontCharacter: \"\\\\eb2c\"\n    }), i.run = new i(\"run\", {\n        fontCharacter: \"\\\\eb2c\"\n    }), i.plug = new i(\"plug\", {\n        fontCharacter: \"\\\\eb2d\"\n    }), i.preserveCase = new i(\"preserve-case\", {\n        fontCharacter: \"\\\\eb2e\"\n    }), i.preview = new i(\"preview\", {\n        fontCharacter: \"\\\\eb2f\"\n    }), i.project = new i(\"project\", {\n        fontCharacter: \"\\\\eb30\"\n    }), i.pulse = new i(\"pulse\", {\n        fontCharacter: \"\\\\eb31\"\n    }), i.question = new i(\"question\", {\n        fontCharacter: \"\\\\eb32\"\n    }), i.quote = new i(\"quote\", {\n        fontCharacter: \"\\\\eb33\"\n    }), i.radioTower = new i(\"radio-tower\", {\n        fontCharacter: \"\\\\eb34\"\n    }), i.reactions = new i(\"reactions\", {\n        fontCharacter: \"\\\\eb35\"\n    }), i.references = new i(\"references\", {\n        fontCharacter: \"\\\\eb36\"\n    }), i.refresh = new i(\"更新\", {\n        fontCharacter: \"\\\\eb37\"\n    }), i.regex = new i(\"regex\", {\n        fontCharacter: \"\\\\eb38\"\n    }), i.remoteExplorer = new i(\"remote-explorer\", {\n        fontCharacter: \"\\\\eb39\"\n    }), i.remote = new i(\"remote\", {\n        fontCharacter: \"\\\\eb3a\"\n    }), i.remove = new i(\"remove\", {\n        fontCharacter: \"\\\\eb3b\"\n    }), i.replaceAll = new i(\"replace-all\", {\n        fontCharacter: \"\\\\eb3c\"\n    }), i.replace = new i(\"replace\", {\n        fontCharacter: \"\\\\eb3d\"\n    }), i.repoClone = new i(\"repo-clone\", {\n        fontCharacter: \"\\\\eb3e\"\n    }), i.repoForcePush = new i(\"repo-force-push\", {\n        fontCharacter: \"\\\\eb3f\"\n    }), i.repoPull = new i(\"repo-pull\", {\n        fontCharacter: \"\\\\eb40\"\n    }), i.repoPush = new i(\"repo-push\", {\n        fontCharacter: \"\\\\eb41\"\n    }), i.report = new i(\"report\", {\n        fontCharacter: \"\\\\eb42\"\n    }), i.requestChanges = new i(\"request-changes\", {\n        fontCharacter: \"\\\\eb43\"\n    }), i.rocket = new i(\"rocket\", {\n        fontCharacter: \"\\\\eb44\"\n    }), i.rootFolderOpened = new i(\"root-folder-opened\", {\n        fontCharacter: \"\\\\eb45\"\n    }), i.rootFolder = new i(\"root-folder\", {\n        fontCharacter: \"\\\\eb46\"\n    }), i.rss = new i(\"rss\", {\n        fontCharacter: \"\\\\eb47\"\n    }), i.ruby = new i(\"ruby\", {\n        fontCharacter: \"\\\\eb48\"\n    }), i.saveAll = new i(\"save-all\", {\n        fontCharacter: \"\\\\eb49\"\n    }), i.saveAs = new i(\"save-as\", {\n        fontCharacter: \"\\\\eb4a\"\n    }), i.save = new i(\"save\", {\n        fontCharacter: \"\\\\eb4b\"\n    }), i.screenFull = new i(\"screen-full\", {\n        fontCharacter: \"\\\\eb4c\"\n    }), i.screenNormal = new i(\"screen-normal\", {\n        fontCharacter: \"\\\\eb4d\"\n    }), i.searchStop = new i(\"search-stop\", {\n        fontCharacter: \"\\\\eb4e\"\n    }), i.server = new i(\"server\", {\n        fontCharacter: \"\\\\eb50\"\n    }), i.settingsGear = new i(\"settings-gear\", {\n        fontCharacter: \"\\\\eb51\"\n    }), i.settings = new i(\"设置\", {\n        fontCharacter: \"\\\\eb52\"\n    }), i.shield = new i(\"shield\", {\n        fontCharacter: \"\\\\eb53\"\n    }), i.smiley = new i(\"smiley\", {\n        fontCharacter: \"\\\\eb54\"\n    }), i.sortPrecedence = new i(\"sort-precedence\", {\n        fontCharacter: \"\\\\eb55\"\n    }), i.splitHorizontal = new i(\"split-horizontal\", {\n        fontCharacter: \"\\\\eb56\"\n    }), i.splitVertical = new i(\"split-vertical\", {\n        fontCharacter: \"\\\\eb57\"\n    }), i.squirrel = new i(\"squirrel\", {\n        fontCharacter: \"\\\\eb58\"\n    }), i.starFull = new i(\"star-full\", {\n        fontCharacter: \"\\\\eb59\"\n    }), i.starHalf = new i(\"star-half\", {\n        fontCharacter: \"\\\\eb5a\"\n    }), i.symbolClass = new i(\"symbol-class\", {\n        fontCharacter: \"\\\\eb5b\"\n    }), i.symbolColor = new i(\"symbol-color\", {\n        fontCharacter: \"\\\\eb5c\"\n    }), i.symbolConstant = new i(\"symbol-constant\", {\n        fontCharacter: \"\\\\eb5d\"\n    }), i.symbolEnumMember = new i(\"symbol-enum-member\", {\n        fontCharacter: \"\\\\eb5e\"\n    }), i.symbolField = new i(\"symbol-field\", {\n        fontCharacter: \"\\\\eb5f\"\n    }), i.symbolFile = new i(\"symbol-file\", {\n        fontCharacter: \"\\\\eb60\"\n    }), i.symbolInterface = new i(\"symbol-interface\", {\n        fontCharacter: \"\\\\eb61\"\n    }), i.symbolKeyword = new i(\"symbol-keyword\", {\n        fontCharacter: \"\\\\eb62\"\n    }), i.symbolMisc = new i(\"symbol-misc\", {\n        fontCharacter: \"\\\\eb63\"\n    }), i.symbolOperator = new i(\"symbol-operator\", {\n        fontCharacter: \"\\\\eb64\"\n    }), i.symbolProperty = new i(\"symbol-property\", {\n        fontCharacter: \"\\\\eb65\"\n    }), i.wrench = new i(\"wrench\", {\n        fontCharacter: \"\\\\eb65\"\n    }), i.wrenchSubaction = new i(\"wrench-subaction\", {\n        fontCharacter: \"\\\\eb65\"\n    }), i.symbolSnippet = new i(\"symbol-snippet\", {\n        fontCharacter: \"\\\\eb66\"\n    }), i.tasklist = new i(\"tasklist\", {\n        fontCharacter: \"\\\\eb67\"\n    }), i.telescope = new i(\"telescope\", {\n        fontCharacter: \"\\\\eb68\"\n    }), i.textSize = new i(\"text-size\", {\n        fontCharacter: \"\\\\eb69\"\n    }), i.threeBars = new i(\"three-bars\", {\n        fontCharacter: \"\\\\eb6a\"\n    }), i.thumbsdown = new i(\"thumbsdown\", {\n        fontCharacter: \"\\\\eb6b\"\n    }), i.thumbsup = new i(\"thumbsup\", {\n        fontCharacter: \"\\\\eb6c\"\n    }), i.tools = new i(\"tools\", {\n        fontCharacter: \"\\\\eb6d\"\n    }), i.triangleDown = new i(\"triangle-down\", {\n        fontCharacter: \"\\\\eb6e\"\n    }), i.triangleLeft = new i(\"triangle-left\", {\n        fontCharacter: \"\\\\eb6f\"\n    }), i.triangleRight = new i(\"triangle-right\", {\n        fontCharacter: \"\\\\eb70\"\n    }), i.triangleUp = new i(\"triangle-up\", {\n        fontCharacter: \"\\\\eb71\"\n    }), i.twitter = new i(\"twitter\", {\n        fontCharacter: \"\\\\eb72\"\n    }), i.unfold = new i(\"unfold\", {\n        fontCharacter: \"\\\\eb73\"\n    }), i.unlock = new i(\"unlock\", {\n        fontCharacter: \"\\\\eb74\"\n    }), i.unmute = new i(\"unmute\", {\n        fontCharacter: \"\\\\eb75\"\n    }), i.unverified = new i(\"unverified\", {\n        fontCharacter: \"\\\\eb76\"\n    }), i.verified = new i(\"verified\", {\n        fontCharacter: \"\\\\eb77\"\n    }), i.versions = new i(\"versions\", {\n        fontCharacter: \"\\\\eb78\"\n    }), i.vmActive = new i(\"vm-active\", {\n        fontCharacter: \"\\\\eb79\"\n    }), i.vmOutline = new i(\"vm-outline\", {\n        fontCharacter: \"\\\\eb7a\"\n    }), i.vmRunning = new i(\"vm-running\", {\n        fontCharacter: \"\\\\eb7b\"\n    }), i.watch = new i(\"watch\", {\n        fontCharacter: \"\\\\eb7c\"\n    }), i.whitespace = new i(\"whitespace\", {\n        fontCharacter: \"\\\\eb7d\"\n    }), i.wholeWord = new i(\"whole-word\", {\n        fontCharacter: \"\\\\eb7e\"\n    }), i.window = new i(\"window\", {\n        fontCharacter: \"\\\\eb7f\"\n    }), i.wordWrap = new i(\"word-wrap\", {\n        fontCharacter: \"\\\\eb80\"\n    }), i.zoomIn = new i(\"zoom-in\", {\n        fontCharacter: \"\\\\eb81\"\n    }), i.zoomOut = new i(\"zoom-out\", {\n        fontCharacter: \"\\\\eb82\"\n    }), i.listFilter = new i(\"list-filter\", {\n        fontCharacter: \"\\\\eb83\"\n    }), i.listFlat = new i(\"list-flat\", {\n        fontCharacter: \"\\\\eb84\"\n    }), i.listSelection = new i(\"list-selection\", {\n        fontCharacter: \"\\\\eb85\"\n    }), i.selection = new i(\"selection\", {\n        fontCharacter: \"\\\\eb85\"\n    }), i.listTree = new i(\"list-tree\", {\n        fontCharacter: \"\\\\eb86\"\n    }), i.debugBreakpointFunctionUnverified = new i(\"debug-breakpoint-function-unverified\", {\n        fontCharacter: \"\\\\eb87\"\n    }), i.debugBreakpointFunction = new i(\"debug-breakpoint-function\", {\n        fontCharacter: \"\\\\eb88\"\n    }), i.debugBreakpointFunctionDisabled = new i(\"debug-breakpoint-function-disabled\", {\n        fontCharacter: \"\\\\eb88\"\n    }), i.debugStackframeActive = new i(\"debug-stackframe-active\", {\n        fontCharacter: \"\\\\eb89\"\n    }), i.debugStackframeDot = new i(\"debug-stackframe-dot\", {\n        fontCharacter: \"\\\\eb8a\"\n    }), i.debugStackframe = new i(\"debug-stackframe\", {\n        fontCharacter: \"\\\\eb8b\"\n    }), i.debugStackframeFocused = new i(\"debug-stackframe-focused\", {\n        fontCharacter: \"\\\\eb8b\"\n    }), i.debugBreakpointUnsupported = new i(\"debug-breakpoint-unsupported\", {\n        fontCharacter: \"\\\\eb8c\"\n    }), i.symbolString = new i(\"symbol-string\", {\n        fontCharacter: \"\\\\eb8d\"\n    }), i.debugReverseContinue = new i(\"debug-reverse-continue\", {\n        fontCharacter: \"\\\\eb8e\"\n    }), i.debugStepBack = new i(\"debug-step-back\", {\n        fontCharacter: \"\\\\eb8f\"\n    }), i.debugRestartFrame = new i(\"debug-restart-frame\", {\n        fontCharacter: \"\\\\eb90\"\n    }), i.callIncoming = new i(\"call-incoming\", {\n        fontCharacter: \"\\\\eb92\"\n    }), i.callOutgoing = new i(\"call-outgoing\", {\n        fontCharacter: \"\\\\eb93\"\n    }), i.menu = new i(\"menu\", {\n        fontCharacter: \"\\\\eb94\"\n    }), i.expandAll = new i(\"expand-all\", {\n        fontCharacter: \"\\\\eb95\"\n    }), i.feedback = new i(\"feedback\", {\n        fontCharacter: \"\\\\eb96\"\n    }), i.groupByRefType = new i(\"group-by-ref-type\", {\n        fontCharacter: \"\\\\eb97\"\n    }), i.ungroupByRefType = new i(\"ungroup-by-ref-type\", {\n        fontCharacter: \"\\\\eb98\"\n    }), i.account = new i(\"account\", {\n        fontCharacter: \"\\\\eb99\"\n    }), i.bellDot = new i(\"bell-dot\", {\n        fontCharacter: \"\\\\eb9a\"\n    }), i.debugConsole = new i(\"debug-console\", {\n        fontCharacter: \"\\\\eb9b\"\n    }), i.library = new i(\"library\", {\n        fontCharacter: \"\\\\eb9c\"\n    }), i.output = new i(\"output\", {\n        fontCharacter: \"\\\\eb9d\"\n    }), i.runAll = new i(\"run-all\", {\n        fontCharacter: \"\\\\eb9e\"\n    }), i.syncIgnored = new i(\"sync-ignored\", {\n        fontCharacter: \"\\\\eb9f\"\n    }), i.pinned = new i(\"pinned\", {\n        fontCharacter: \"\\\\eba0\"\n    }), i.githubInverted = new i(\"github-inverted\", {\n        fontCharacter: \"\\\\eba1\"\n    }), i.debugAlt = new i(\"debug-alt\", {\n        fontCharacter: \"\\\\eb91\"\n    }), i.serverProcess = new i(\"server-process\", {\n        fontCharacter: \"\\\\eba2\"\n    }), i.serverEnvironment = new i(\"server-environment\", {\n        fontCharacter: \"\\\\eba3\"\n    }), i.pass = new i(\"pass\", {\n        fontCharacter: \"\\\\eba4\"\n    }), i.stopCircle = new i(\"stop-circle\", {\n        fontCharacter: \"\\\\eba5\"\n    }), i.playCircle = new i(\"play-circle\", {\n        fontCharacter: \"\\\\eba6\"\n    }), i.record = new i(\"record\", {\n        fontCharacter: \"\\\\eba7\"\n    }), i.debugAltSmall = new i(\"debug-alt-small\", {\n        fontCharacter: \"\\\\eba8\"\n    }), i.vmConnect = new i(\"vm-connect\", {\n        fontCharacter: \"\\\\eba9\"\n    }), i.cloud = new i(\"cloud\", {\n        fontCharacter: \"\\\\ebaa\"\n    }), i.merge = new i(\"merge\", {\n        fontCharacter: \"\\\\ebab\"\n    }), i.exportIcon = new i(\"export\", {\n        fontCharacter: \"\\\\ebac\"\n    }), i.graphLeft = new i(\"graph-left\", {\n        fontCharacter: \"\\\\ebad\"\n    }), i.magnet = new i(\"magnet\", {\n        fontCharacter: \"\\\\ebae\"\n    }), i.notebook = new i(\"notebook\", {\n        fontCharacter: \"\\\\ebaf\"\n    }), i.redo = new i(\"redo\", {\n        fontCharacter: \"\\\\ebb0\"\n    }), i.checkAll = new i(\"check-all\", {\n        fontCharacter: \"\\\\ebb1\"\n    }), i.pinnedDirty = new i(\"pinned-dirty\", {\n        fontCharacter: \"\\\\ebb2\"\n    }), i.passFilled = new i(\"pass-filled\", {\n        fontCharacter: \"\\\\ebb3\"\n    }), i.circleLargeFilled = new i(\"circle-large-filled\", {\n        fontCharacter: \"\\\\ebb4\"\n    }), i.circleLargeOutline = new i(\"circle-large-outline\", {\n        fontCharacter: \"\\\\ebb5\"\n    }), i.combine = new i(\"combine\", {\n        fontCharacter: \"\\\\ebb6\"\n    }), i.gather = new i(\"gather\", {\n        fontCharacter: \"\\\\ebb6\"\n    }), i.table = new i(\"table\", {\n        fontCharacter: \"\\\\ebb7\"\n    }), i.variableGroup = new i(\"variable-group\", {\n        fontCharacter: \"\\\\ebb8\"\n    }), i.typeHierarchy = new i(\"type-hierarchy\", {\n        fontCharacter: \"\\\\ebb9\"\n    }), i.typeHierarchySub = new i(\"type-hierarchy-sub\", {\n        fontCharacter: \"\\\\ebba\"\n    }), i.typeHierarchySuper = new i(\"type-hierarchy-super\", {\n        fontCharacter: \"\\\\ebbb\"\n    }), i.gitPullRequestCreate = new i(\"git-pull-request-create\", {\n        fontCharacter: \"\\\\ebbc\"\n    }), i.runAbove = new i(\"run-above\", {\n        fontCharacter: \"\\\\ebbd\"\n    }), i.runBelow = new i(\"run-below\", {\n        fontCharacter: \"\\\\ebbe\"\n    }), i.notebookTemplate = new i(\"notebook-template\", {\n        fontCharacter: \"\\\\ebbf\"\n    }), i.debugRerun = new i(\"debug-rerun\", {\n        fontCharacter: \"\\\\ebc0\"\n    }), i.workspaceTrusted = new i(\"workspace-trusted\", {\n        fontCharacter: \"\\\\ebc1\"\n    }), i.workspaceUntrusted = new i(\"workspace-untrusted\", {\n        fontCharacter: \"\\\\ebc2\"\n    }), i.workspaceUnspecified = new i(\"workspace-unspecified\", {\n        fontCharacter: \"\\\\ebc3\"\n    }), i.terminalCmd = new i(\"terminal-cmd\", {\n        fontCharacter: \"\\\\ebc4\"\n    }), i.terminalDebian = new i(\"terminal-debian\", {\n        fontCharacter: \"\\\\ebc5\"\n    }), i.terminalLinux = new i(\"terminal-linux\", {\n        fontCharacter: \"\\\\ebc6\"\n    }), i.terminalPowershell = new i(\"terminal-powershell\", {\n        fontCharacter: \"\\\\ebc7\"\n    }), i.terminalTmux = new i(\"terminal-tmux\", {\n        fontCharacter: \"\\\\ebc8\"\n    }), i.terminalUbuntu = new i(\"terminal-ubuntu\", {\n        fontCharacter: \"\\\\ebc9\"\n    }), i.terminalBash = new i(\"terminal-bash\", {\n        fontCharacter: \"\\\\ebca\"\n    }), i.arrowSwap = new i(\"arrow-swap\", {\n        fontCharacter: \"\\\\ebcb\"\n    }), i.copy = new i(\"copy\", {\n        fontCharacter: \"\\\\ebcc\"\n    }), i.personAdd = new i(\"person-add\", {\n        fontCharacter: \"\\\\ebcd\"\n    }), i.filterFilled = new i(\"filter-filled\", {\n        fontCharacter: \"\\\\ebce\"\n    }), i.wand = new i(\"wand\", {\n        fontCharacter: \"\\\\ebcf\"\n    }), i.debugLineByLine = new i(\"debug-line-by-line\", {\n        fontCharacter: \"\\\\ebd0\"\n    }), i.inspect = new i(\"inspect\", {\n        fontCharacter: \"\\\\ebd1\"\n    }), i.layers = new i(\"layers\", {\n        fontCharacter: \"\\\\ebd2\"\n    }), i.layersDot = new i(\"layers-dot\", {\n        fontCharacter: \"\\\\ebd3\"\n    }), i.layersActive = new i(\"layers-active\", {\n        fontCharacter: \"\\\\ebd4\"\n    }), i.compass = new i(\"compass\", {\n        fontCharacter: \"\\\\ebd5\"\n    }), i.compassDot = new i(\"compass-dot\", {\n        fontCharacter: \"\\\\ebd6\"\n    }), i.compassActive = new i(\"compass-active\", {\n        fontCharacter: \"\\\\ebd7\"\n    }), i.azure = new i(\"azure\", {\n        fontCharacter: \"\\\\ebd8\"\n    }), i.issueDraft = new i(\"issue-draft\", {\n        fontCharacter: \"\\\\ebd9\"\n    }), i.gitPullRequestClosed = new i(\"git-pull-request-closed\", {\n        fontCharacter: \"\\\\ebda\"\n    }), i.gitPullRequestDraft = new i(\"git-pull-request-draft\", {\n        fontCharacter: \"\\\\ebdb\"\n    }), i.debugAll = new i(\"debug-all\", {\n        fontCharacter: \"\\\\ebdc\"\n    }), i.debugCoverage = new i(\"debug-coverage\", {\n        fontCharacter: \"\\\\ebdd\"\n    }), i.runErrors = new i(\"run-errors\", {\n        fontCharacter: \"\\\\ebde\"\n    }), i.folderLibrary = new i(\"folder-library\", {\n        fontCharacter: \"\\\\ebdf\"\n    }), i.debugContinueSmall = new i(\"debug-continue-small\", {\n        fontCharacter: \"\\\\ebe0\"\n    }), i.beakerStop = new i(\"beaker-stop\", {\n        fontCharacter: \"\\\\ebe1\"\n    }), i.graphLine = new i(\"graph-line\", {\n        fontCharacter: \"\\\\ebe2\"\n    }), i.graphScatter = new i(\"graph-scatter\", {\n        fontCharacter: \"\\\\ebe3\"\n    }), i.pieChart = new i(\"pie-chart\", {\n        fontCharacter: \"\\\\ebe4\"\n    }), i.bracket = new i(\"bracket\", i.json.definition), i.bracketDot = new i(\"bracket-dot\", {\n        fontCharacter: \"\\\\ebe5\"\n    }), i.bracketError = new i(\"bracket-error\", {\n        fontCharacter: \"\\\\ebe6\"\n    }), i.lockSmall = new i(\"lock-small\", {\n        fontCharacter: \"\\\\ebe7\"\n    }), i.azureDevops = new i(\"azure-devops\", {\n        fontCharacter: \"\\\\ebe8\"\n    }), i.verifiedFilled = new i(\"verified-filled\", {\n        fontCharacter: \"\\\\ebe9\"\n    })\n}, function(e, t, i) {\n    \"use strict\";\n    i.d(t, \"a\", (function() {\n        return n\n    })), i.d(t, \"b\", (function() {\n        return r\n    }));\n    class n {\n        constructor(e) {\n            this.domNode = e, this._maxWidth = -1, this._width = -1, this._height = -1, this._top = -1, this._left = -1, this._bottom = -1, this._right = -1, this._fontFamily = \"\", this._fontWeight = \"\", this._fontSize = -1, this._fontFeatureSettings = \"\", this._lineHeight = -1, this._letterSpacing = -100, this._className = \"\", this._display = \"\", this._position = \"\", this._visibility = \"\", this._backgroundColor = \"\", this._layerHint = !1, this._contain = \"none\", this._boxShadow = \"\"\n        }\n        setMaxWidth(e) {\n            this._maxWidth !== e && (this._maxWidth = e, this.domNode.style.maxWidth = this._maxWidth + \"px\")\n        }\n        setWidth(e) {\n            this._width !== e && (this._width = e, this.domNode.style.width = this._width + \"px\")\n        }\n        setHeight(e) {\n            this._height !== e && (this._height = e, this.domNode.style.height = this._height + \"px\")\n        }\n        setTop(e) {\n            this._top !== e && (this._top = e, this.domNode.style.top = this._top + \"px\")\n        }\n        unsetTop() {\n            -1 !== this._top && (this._top = -1, this.domNode.style.top = \"\")\n        }\n        setLeft(e) {\n            this._left !== e && (this._left = e, this.domNode.style.left = this._left + \"px\")\n        }\n        setBottom(e) {\n            this._bottom !== e && (this._bottom = e, this.domNode.style.bottom = this._bottom + \"px\")\n        }\n        setRight(e) {\n            this._right !== e && (this._right = e, this.domNode.style.right = this._right + \"px\")\n        }\n        setFontFamily(e) {\n            this._fontFamily !== e && (this._fontFamily = e, this.domNode.style.fontFamily = this._fontFamily)\n        }\n        setFontWeight(e) {\n            this._fontWeight !== e && (this._fontWeight = e, this.domNode.style.fontWeight = this._fontWeight)\n        }\n        setFontSize(e) {\n            this._fontSize !== e && (this._fontSize = e, this.domNode.style.fontSize = this._fontSize + \"px\")\n        }\n        setFontFeatureSettings(e) {\n            this._fontFeatureSettings !== e && (this._fontFeatureSettings = e, this.domNode.style.fontFeatureSettings = this._fontFeatureSettings)\n        }\n        setLineHeight(e) {\n            this._lineHeight !== e && (this._lineHeight = e, this.domNode.style.lineHeight = this._lineHeight + \"px\")\n        }\n        setLetterSpacing(e) {\n            this._letterSpacing !== e && (this._letterSpacing = e, this.domNode.style.letterSpacing = this._letterSpacing + \"px\")\n        }\n        setClassName(e) {\n            this._className !== e && (this._className = e, this.domNode.className = this._className)\n        }\n        toggleClassName(e, t) {\n            this.domNode.classList.toggle(e, t), this._className = this.domNode.className\n        }\n        setDisplay(e) {\n            this._display !== e && (this._display = e, this.domNode.style.display = this._display)\n        }\n        setPosition(e) {\n            this._position !== e && (this._position = e, this.domNode.style.position = this._position)\n        }\n        setVisibility(e) {\n            this._visibility !== e && (this._visibility = e, this.domNode.style.visibility = this._visibility)\n        }\n        setBackgroundColor(e) {\n            this._backgroundColor !== e && (this._backgroundColor = e, this.domNode.style.backgroundColor = this._backgroundColor)\n        }\n        setLayerHinting(e) {\n            this._layerHint !== e && (this._layerHint = e, this.domNode.style.transform = this._layerHint ? \"translate3d(0px, 0px, 0px)\" : \"\")\n        }\n        setBoxShadow(e) {\n            this._boxShadow !== e && (this._boxShadow = e, this.domNode.style.boxShadow = e)\n        }\n        setContain(e) {\n            this._contain !== e && (this._contain = e, this.domNode.style.contain = this._contain)\n        }\n        setAttribute(e, t) {\n            this.domNode.setAttribute(e, t)\n        }\n        removeAttribute(e) {\n            this.domNode.removeAttribute(e)\n        }\n        appendChild(e) {\n            this.domNode.appendChild(e.domNode)\n        }\n        removeChild(e) {\n            this.domNode.removeChild(e.domNode)\n        }\n    }\n\n    function r(e) {\n        return new n(e)\n    }\n}, function(e, t, i) {\n    \"use strict\";\n    t.a = {\n        put: function(e, t) {\n            window.localStorage.setItem(e, JSON.stringify(t))\n        },\n        get: function(e) {\n            var t = window.localStorage.getItem(e);\n            if (\"\" !== t) try {\n                return JSON.parse(t)\n            } catch (t) {\n                console.error(\"get [\".concat(e, \"] from cache failed with error:\"), t)\n            }\n        }\n    }\n}, function(e, t, i) {\n    \"use strict\";\n    i.d(t, \"a\", (function() {\n        return r\n    }));\n    var n = i(8);\n    class r extends i(5).a {\n        constructor(e, t, i, n) {\n            super(e, t, i, n), this.selectionStartLineNumber = e, this.selectionStartColumn = t, this.positionLineNumber = i, this.positionColumn = n\n        }\n        toString() {\n            return \"[\" + this.selectionStartLineNumber + \",\" + this.selectionStartColumn + \" -> \" + this.positionLineNumber + \",\" + this.positionColumn + \"]\"\n        }\n        equalsSelection(e) {\n            return r.selectionsEqual(this, e)\n        }\n        static selectionsEqual(e, t) {\n            return e.selectionStartLineNumber === t.selectionStartLineNumber && e.selectionStartColumn === t.selectionStartColumn && e.positionLineNumber === t.positionLineNumber && e.positionColumn === t.positionColumn\n        }\n        getDirection() {\n            return this.selectionStartLineNumber === this.startLineNumber && this.selectionStartColumn === this.startColumn ? 0 : 1\n        }\n        setEndPosition(e, t) {\n            return 0 === this.getDirection() ? new r(this.startLineNumber, this.startColumn, e, t) : new r(e, t, this.startLineNumber, this.startColumn)\n        }\n        getPosition() {\n            return new n.a(this.positionLineNumber, this.positionColumn)\n        }\n        setStartPosition(e, t) {\n            return 0 === this.getDirection() ? new r(e, t, this.endLineNumber, this.endColumn) : new r(this.endLineNumber, this.endColumn, e, t)\n        }\n        static fromPositions(e, t = e) {\n            return new r(e.lineNumber, e.column, t.lineNumber, t.column)\n        }\n        static liftSelection(e) {\n            return new r(e.selectionStartLineNumber, e.selectionStartColumn, e.positionLineNumber, e.positionColumn)\n        }\n        static selectionsArrEqual(e, t) {\n            if (e && !t || !e && t) return !1;\n            if (!e && !t) return !0;\n            if (e.length !== t.length) return !1;\n            for (let i = 0, n = e.length; i < n; i++)\n                if (!this.selectionsEqual(e[i], t[i])) return !1;\n            return !0\n        }\n        static isISelection(e) {\n            return e && \"number\" == typeof e.selectionStartLineNumber && \"number\" == typeof e.selectionStartColumn && \"number\" == typeof e.positionLineNumber && \"number\" == typeof e.positionColumn\n        }\n        static createWithDirection(e, t, i, n, o) {\n            return 0 === o ? new r(e, t, i, n) : new r(i, n, e, t)\n        }\n    }\n}, function(e, t, i) {\n    \"use strict\";\n    i.d(t, \"d\", (function() {\n        return o\n    })), i.d(t, \"b\", (function() {\n        return s\n    })), i.d(t, \"l\", (function() {\n        return a\n    })), i.d(t, \"c\", (function() {\n        return l\n    })), i.d(t, \"a\", (function() {\n        return d\n    })), i.d(t, \"g\", (function() {\n        return h\n    })), i.d(t, \"j\", (function() {\n        return u\n    })), i.d(t, \"f\", (function() {\n        return p\n    })), i.d(t, \"h\", (function() {\n        return g\n    })), i.d(t, \"k\", (function() {\n        return f\n    })), i.d(t, \"e\", (function() {\n        return m\n    })), i.d(t, \"i\", (function() {\n        return v\n    }));\n    var n = i(2);\n    class r {\n        constructor() {\n            this._zoomLevel = 0, this._lastZoomLevelChangeTime = 0, this._onDidChangeZoomLevel = new n.b, this.onDidChangeZoomLevel = this._onDidChangeZoomLevel.event, this._zoomFactor = 1\n        }\n        getZoomLevel() {\n            return this._zoomLevel\n        }\n        getTimeSinceLastZoomLevelChanged() {\n            return Date.now() - this._lastZoomLevelChangeTime\n        }\n        getZoomFactor() {\n            return this._zoomFactor\n        }\n        getPixelRatio() {\n            var e = document.createElement(\"canvas\").getContext(\"2d\");\n            return (window.devicePixelRatio || 1) / (e.webkitBackingStorePixelRatio || e.mozBackingStorePixelRatio || e.msBackingStorePixelRatio || e.oBackingStorePixelRatio || e.backingStorePixelRatio || 1)\n        }\n    }\n\n    function o() {\n        return r.INSTANCE.getZoomLevel()\n    }\n\n    function s() {\n        return r.INSTANCE.getTimeSinceLastZoomLevelChanged()\n    }\n\n    function a(e) {\n        return r.INSTANCE.onDidChangeZoomLevel(e)\n    }\n\n    function l() {\n        return r.INSTANCE.getZoomFactor()\n    }\n\n    function d() {\n        return r.INSTANCE.getPixelRatio()\n    }\n    r.INSTANCE = new r;\n    const c = navigator.userAgent,\n        h = 0 <= c.indexOf(\"Firefox\"),\n        u = 0 <= c.indexOf(\"AppleWebKit\"),\n        p = 0 <= c.indexOf(\"Chrome\"),\n        g = !p && 0 <= c.indexOf(\"Safari\"),\n        f = !p && !g && u,\n        m = 0 <= c.indexOf(\"Android\"),\n        v = window.matchMedia && window.matchMedia(\"(display-mode: standalone)\").matches\n}, function(e, t, i) {\n    \"use strict\";\n    t.a = {\n        SYSTEM_PROXY: \"systemProxy\",\n        LAST_CLASH_PID: \"lastClashPID\",\n        LAST_USER_EXE_PIDS: \"lastUserExePids\",\n        LAST_LOG_FILE_PATH: \"lastLogFilePath\",\n        AD_IMAGES: \"adImages\",\n        CONNECTION_ORDER_INDEX: \"connectionOrderIndex\",\n        CONNECTION_ORDER_REVERSE: \"connectionOrderReverse\",\n        AUTO_LAUNCH: \"autoLaunch\",\n        GEOIP_URL: \"geoipDownloadRawURL\",\n        GEOIP_TOKEN: \"geoipDownloadToken\",\n        TAP_INFO: \"tapInfo\",\n        PROXY_SHOW_SEC_IDXS: \"proxyShowSecIdxs\",\n        IS_PIN_ENABLED: \"isPinEnabled\",\n        MENU_ITEM_ORDER: \"menuItemOrder\",\n        CURRENT_ROUTE_PATH: \"currentRoutePath\",\n        DETECTED_INTERFACE_NAME: \"detectedInterfaceName\",\n        SYSTEM_PROXY_COMMAND: \"systemProxyCommand\",\n        IS_LIGHTWEIGHT_MODE_CLOSE: \"isLightweightModeClose\",\n        IS_MIXIN: \"isProfileMixin\",\n        LAST_VERSION_CODE: \"lastVersionCode\",\n        ROUTER_HIJACK_MAC_ADDRESSES: \"routerHijackMacAddresses\",\n        DHCP_MAC_ALIAS: \"dhcpMacAlias\",\n        TUN_SETTINGS: \"tunSettings\",\n        IS_TUN: \"isTunEnabled\"\n    }\n}, function(e, t, i) {\n    \"use strict\";\n    i.d(t, \"a\", (function() {\n        return h\n    })), i.d(t, \"b\", (function() {\n        return v\n    }));\n    var n = i(62),\n        r = i(9);\n    const o = /^\\w[\\w\\d+.-]*$/,\n        s = /^\\//,\n        a = /^\\/\\//;\n\n    function l(e, t) {\n        if (!e.scheme && t) throw new Error(`[UriError]: 跳转方案 is missing: {scheme: \"\", authority: \"${e.authority}\", path: \"${e.path}\", query: \"${e.query}\", fragment: \"${e.fragment}\"}`);\n        if (e.scheme && !o.test(e.scheme)) throw new Error(\"[UriError]: 跳转方案 contains illegal characters.\");\n        if (e.path)\n            if (e.authority) {\n                if (!s.test(e.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')\n            } else if (a.test(e.path)) throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters (\"//\")')\n    }\n    const d = \"/\",\n        c = /^(([^:/?#]+?):)?(\\/\\/([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?/;\n    class h {\n        constructor(e, t, i, n, r, o = !1) {\n            \"object\" == typeof e ? (this.scheme = e.scheme || \"\", this.authority = e.authority || \"\", this.path = e.path || \"\", this.query = e.query || \"\", this.fragment = e.fragment || \"\") : (this.scheme = (e = e) || o ? e : \"file\", this.authority = t || \"\", this.path = function(e, t) {\n                switch (e) {\n                    case \"https\":\n                    case \"http\":\n                    case \"file\":\n                        t ? t[0] !== d && (t = d + t) : t = d\n                }\n                return t\n            }(this.scheme, i || \"\"), this.query = n || \"\", this.fragment = r || \"\", l(this, o))\n        }\n        static isUri(e) {\n            return e instanceof h || !!e && \"string\" == typeof e.authority && \"string\" == typeof e.fragment && \"string\" == typeof e.path && \"string\" == typeof e.query && \"string\" == typeof e.scheme && \"string\" == typeof e.fsPath && \"function\" == typeof e.with && \"function\" == typeof e.toString\n        }\n        get fsPath() {\n            return v(this, !1)\n        }\n        with(e) {\n            if (!e) return this;\n            let {\n                scheme: t,\n                authority: i,\n                path: n,\n                query: r,\n                fragment: o\n            } = e;\n            return void 0 === t ? t = this.scheme : null === t && (t = \"\"), void 0 === i ? i = this.authority : null === i && (i = \"\"), void 0 === n ? n = this.path : null === n && (n = \"\"), void 0 === r ? r = this.query : null === r && (r = \"\"), void 0 === o ? o = this.fragment : null === o && (o = \"\"), t === this.scheme && i === this.authority && n === this.path && r === this.query && o === this.fragment ? this : new p(t, i, n, r, o)\n        }\n        static parse(e, t = !1) {\n            return (e = c.exec(e)) ? new p(e[2] || \"\", w(e[4] || \"\"), w(e[5] || \"\"), w(e[7] || \"\"), w(e[9] || \"\"), t) : new p(\"\", \"\", \"\", \"\", \"\")\n        }\n        static file(e) {\n            let t = \"\";\n            var i;\n            return (e = r.i ? e.replace(/\\\\/g, d) : e)[0] === d && e[1] === d && (e = -1 === (i = e.indexOf(d, 2)) ? (t = e.substring(2), d) : (t = e.substring(2, i), e.substring(i) || d)), new p(\"file\", t, e, \"\", \"\")\n        }\n        static from(e) {\n            return l(e = new p(e.scheme, e.authority, e.path, e.query, e.fragment), !0), e\n        }\n        static joinPath(e, ...t) {\n            if (!e.path) throw new Error(\"[UriError]: cannot call joinPath on URI without path\");\n            let i;\n            return i = r.i && \"file\" === e.scheme ? h.file(n.i.join(v(e, !0), ...t)).path : n.e.join(e.path, ...t), e.with({\n                path: i\n            })\n        }\n        toString(e = !1) {\n            return b(this, e)\n        }\n        toJSON() {\n            return this\n        }\n        static revive(e) {\n            if (e) {\n                if (e instanceof h) return e; {\n                    const t = new p(e);\n                    return t._formatted = e.external, t._fsPath = e._sep === u ? e.fsPath : null, t\n                }\n            }\n            return e\n        }\n    }\n    const u = r.i ? 1 : void 0;\n    class p extends h {\n        constructor() {\n            super(...arguments), this._formatted = null, this._fsPath = null\n        }\n        get fsPath() {\n            return this._fsPath || (this._fsPath = v(this, !1)), this._fsPath\n        }\n        toString(e = !1) {\n            return e ? b(this, !0) : (this._formatted || (this._formatted = b(this, !1)), this._formatted)\n        }\n        toJSON() {\n            const e = {\n                $mid: 1\n            };\n            return this._fsPath && (e.fsPath = this._fsPath, e._sep = u), this._formatted && (e.external = this._formatted), this.path && (e.path = this.path), this.scheme && (e.scheme = this.scheme), this.authority && (e.authority = this.authority), this.query && (e.query = this.query), this.fragment && (e.fragment = this.fragment), e\n        }\n    }\n    const g = {\n        58: \"%3A\",\n        47: \"%2F\",\n        63: \"%3F\",\n        35: \"%23\",\n        91: \"%5B\",\n        93: \"%5D\",\n        64: \"%40\",\n        33: \"%21\",\n        36: \"%24\",\n        38: \"%26\",\n        39: \"%27\",\n        40: \"%28\",\n        41: \"%29\",\n        42: \"%2A\",\n        43: \"%2B\",\n        44: \"%2C\",\n        59: \"%3B\",\n        61: \"%3D\",\n        32: \"%20\"\n    };\n\n    function f(e, t) {\n        let i = void 0,\n            n = -1;\n        for (let o = 0; o < e.length; o++) {\n            var r = e.charCodeAt(o);\n            97 <= r && r <= 122 || 65 <= r && r <= 90 || 48 <= r && r <= 57 || 45 === r || 46 === r || 95 === r || 126 === r || t && 47 === r ? (-1 !== n && (i += encodeURIComponent(e.substring(n, o)), n = -1), void 0 !== i && (i += e.charAt(o))) : (void 0 === i && (i = e.substr(0, o)), void 0 !== (r = g[r]) ? (-1 !== n && (i += encodeURIComponent(e.substring(n, o)), n = -1), i += r) : -1 === n && (n = o))\n        }\n        return -1 !== n && (i += encodeURIComponent(e.substring(n))), void 0 !== i ? i : e\n    }\n\n    function m(e) {\n        let t = void 0;\n        for (let n = 0; n < e.length; n++) {\n            var i = e.charCodeAt(n);\n            35 === i || 63 === i ? (void 0 === t && (t = e.substr(0, n)), t += g[i]) : void 0 !== t && (t += e[n])\n        }\n        return void 0 !== t ? t : e\n    }\n\n    function v(e, t) {\n        let i;\n        return i = e.authority && 1 < e.path.length && \"file\" === e.scheme ? `//${e.authority}${e.path}` : 47 === e.path.charCodeAt(0) && (65 <= e.path.charCodeAt(1) && e.path.charCodeAt(1) <= 90 || 97 <= e.path.charCodeAt(1) && e.path.charCodeAt(1) <= 122) && 58 === e.path.charCodeAt(2) ? t ? e.path.substr(1) : e.path[1].toLowerCase() + e.path.substr(2) : e.path, r.i && (i = i.replace(/\\//g, \"\\\\\")), i\n    }\n\n    function b(e, t) {\n        const i = t ? m : f;\n        let n = \"\",\n            {\n                scheme: r,\n                authority: o,\n                path: s,\n                query: a,\n                fragment: l\n            } = e;\n        if (r && (n += r, n += \":\"), !o && \"file\" !== r || (n += d, n += d), o) {\n            let e = o.indexOf(\"@\");\n            if (-1 !== e) {\n                const t = o.substr(0, e);\n                o = o.substr(e + 1), e = t.indexOf(\":\"), -1 === e ? n += i(t, !1) : (n += i(t.substr(0, e), !1), n += \":\", n += i(t.substr(e + 1), !1)), n += \"@\"\n            }\n            o = o.toLowerCase(), e = o.indexOf(\":\"), -1 === e ? n += i(o, !1) : (n += i(o.substr(0, e), !1), n += o.substr(e))\n        }\n        var c;\n        return s && (3 <= s.length && 47 === s.charCodeAt(0) && 58 === s.charCodeAt(2) ? 65 <= (c = s.charCodeAt(1)) && c <= 90 && (s = `/${String.fromCharCode(c+32)}:${s.substr(3)}`) : 2 <= s.length && 58 === s.charCodeAt(1) && 65 <= (c = s.charCodeAt(0)) && c <= 90 && (s = `${String.fromCharCode(c+32)}:${s.substr(2)}`), n += i(s, !0)), a && (n += \"?\", n += i(a, !1)), l && (n += \"#\", n += t ? l : f(l, !1)), n\n    }\n    const _ = /(%[0-9A-Za-z][0-9A-Za-z])+/g;\n\n    function w(e) {\n        return e.match(_) ? e.replace(_, e => function e(t) {\n            try {\n                return decodeURIComponent(t)\n            } catch (i) {\n                return 3 < t.length ? t.substr(0, 3) + e(t.substr(3)) : t\n            }\n        }(e)) : e\n    }\n}, function(e, t, i) {\n    \"use strict\";\n    i.d(t, \"k\", (function() {\n        return y\n    })), i.d(t, \"c\", (function() {\n        return C\n    })), i.d(t, \"a\", (function() {\n        return x\n    })), i.d(t, \"j\", (function() {\n        return S\n    })), i.d(t, \"h\", (function() {\n        return k\n    })), i.d(t, \"g\", (function() {\n        return L\n    })), i.d(t, \"d\", (function() {\n        return O\n    })), i.d(t, \"i\", (function() {\n        return E\n    })), i.d(t, \"f\", (function() {\n        return N\n    })), i.d(t, \"b\", (function() {\n        return I\n    })), i.d(t, \"e\", (function() {\n        return T\n    }));\n    var n = i(52),\n        r = i.n(n),\n        o = (t = i(18), i.n(t)),\n        s = (n = i(10), t = i.n(n), n = i(3), i.n(n)),\n        a = i(248),\n        l = i(16),\n        d = i(12),\n        c = (n = (i(249), i(45)), i.n(n)),\n        h = i(42),\n        u = i(22),\n        p = (i(61), i(35)),\n        g = i(38),\n        f = i(19);\n\n    function m(e, t) {\n        var i, n = Object.keys(e);\n        return Object.getOwnPropertySymbols && (i = Object.getOwnPropertySymbols(e), t && (i = i.filter((function(t) {\n            return Object.getOwnPropertyDescriptor(e, t).enumerable\n        }))), n.push.apply(n, i)), n\n    }\n\n    function v(e) {\n        for (var t = 1; t < arguments.length; t++) {\n            var i = null != arguments[t] ? arguments[t] : {};\n            t % 2 ? m(Object(i), !0).forEach((function(t) {\n                o()(e, t, i[t])\n            })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(i)) : m(Object(i)).forEach((function(t) {\n                Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(i, t))\n            }))\n        }\n        return e\n    }\n    var b, _, w, y = function(e) {\n            return new Promise((function(t) {\n                return setTimeout(t, e)\n            }))\n        },\n        C = function(e) {\n            return Object(a.createHash)(\"md5\").update(e).digest(\"hex\")\n        },\n        x = function e(t) {\n            l.existsSync(t) && (l.readdirSync(t).forEach((function(i, n) {\n                i = d.join(t, i), l.lstatSync(i).isDirectory() ? e(i) : l.unlinkSync(i)\n            })), l.rmdirSync(t))\n        },\n        S = (b = t()(s.a.mark((function e(t, i, n) {\n            var r;\n            return s.a.wrap((function(e) {\n                for (;;) switch (e.prev = e.next) {\n                    case 0:\n                        r = l.readFileSync(t).toString(), (r = c.a.parseDocument(r)).set(i, n), l.writeFileSync(t, r.toString());\n                    case 4:\n                    case \"end\":\n                        return e.stop()\n                }\n            }), e)\n        }))), function(e, t, i) {\n            return b.apply(this, arguments)\n        }),\n        k = function(e) {\n            var t = h.a.state.app.settings.showNotifications;\n            void 0 !== t && t && u.ipcRenderer.send(\"show-notification\", v({\n                title: e,\n                body: 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : \"\",\n                silent: !(2 < arguments.length && void 0 !== arguments[2]) || arguments[2]\n            }, 3 < arguments.length && void 0 !== arguments[3] ? arguments[3] : null))\n        },\n        L = (_ = t()(s.a.mark((function e(t) {\n            return s.a.wrap((function(e) {\n                for (;;) switch (e.prev = e.next) {\n                    case 0:\n                        return e.next = 2, u.ipcRenderer.invoke(\"dialog\", \"showMessageBox\", v({\n                            title: \"Clash for Windows\"\n                        }, t));\n                    case 2:\n                        return e.abrupt(\"return\", e.sent);\n                    case 3:\n                    case \"end\":\n                        return e.stop()\n                }\n            }), e)\n        }))), function(e) {\n            return _.apply(this, arguments)\n        }),\n        O = function(e) {\n            return JSON.parse(JSON.stringify(e))\n        },\n        E = function(e) {\n            var t = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : 2,\n                i = !(2 < arguments.length && void 0 !== arguments[2]) || arguments[2],\n                n = [\"B\", \"KB\", \"MB\", \"GB\", \"TB\", \"EB\"],\n                r = 0;\n            if (e <= Math.pow(1024, 5)) {\n                for (; ~~(e / 1024) && r < n.length;) e /= 1024, r++;\n                return \"\".concat(0 === r ? e : e.toFixed(t)).concat(i ? \" \" : \"\").concat(n[r])\n            }\n            for (e = BigInt(e); ~~(BigInt(e) / 1024n) && r < n.length;) e /= 1024n, r++;\n            return \"\".concat(e).concat(i ? \" \" : \"\").concat(n[r])\n        },\n        N = (t()(s.a.mark((function e(t) {\n            var i, n, o, a, l;\n            return s.a.wrap((function(e) {\n                for (;;) switch (e.prev = e.next) {\n                    case 0:\n                        i = t.method, n = t.target, a = t.checkTimes, o = void 0 === a ? 10 : a, l = t.ags, a = void 0 === l ? [] : l, l = 0;\n                    case 2:\n                        return e.next = 5, i.apply(void 0, r()(a));\n                    case 5:\n                        if (e.t0 = e.sent, e.t1 = n, e.t0 === e.t1) return e.abrupt(\"return\");\n                        e.next = 9;\n                        break;\n                    case 9:\n                        return e.next = 11, y(1e3);\n                    case 11:\n                        if (o <= (l += 1)) return e.abrupt(\"return\");\n                        e.next = 14;\n                        break;\n                    case 14:\n                        e.next = 2;\n                        break;\n                    case 16:\n                    case \"end\":\n                        return e.stop()\n                }\n            }), e)\n        }))), function(e, t) {\n            if (e.length <= t) return e;\n            var i = parseInt(t / 2);\n            t -= i;\n            return e.slice(0, i) + \"...\" + e.slice(-t)\n        }),\n        D = null,\n        I = (w = t()(s.a.mark((function e() {\n            var t;\n            return s.a.wrap((function(e) {\n                for (;;) switch (e.prev = e.next) {\n                    case 0:\n                        return e.next = 2, u.ipcRenderer.invoke(\"app\", \"getVersion\");\n                    case 2:\n                        return t = e.sent, null === D && (D = p.a.get(g.a.LAST_VERSION_CODE) || \"\", p.a.put(g.a.LAST_VERSION_CODE, t)), e.abrupt(\"return\", D !== t);\n                    case 5:\n                    case \"end\":\n                        return e.stop()\n                }\n            }), e)\n        }))), function() {\n            return w.apply(this, arguments)\n        }),\n        T = function(e) {\n            var t = (o = e || {}).nameServers,\n                i = o.fallbackServers,\n                n = o.fakeIPFilters,\n                r = o.stackType,\n                o = (e = void 0 === (e = o.interfaceName) ? \"\" : e, void 0 === (o = o.isAutoDetectInterface) || o);\n            return (r = {\n                dns: {\n                    enable: !0,\n                    \"enhanced-mode\": \"fake-ip\",\n                    nameserver: void 0 === t ? [\"114.114.114.114\", \"223.5.5.5\", \"8.8.8.8\"] : t,\n                    fallback: void 0 === i ? [] : i\n                },\n                tun: {\n                    enable: !0,\n                    stack: [\"gvisor\", \"system\"][void 0 === r ? 0 : r]\n                }\n            }).dns[\"fake-ip-filter\"] = void 0 === n ? Object(f.j)() ? [\"dns.msftncsi.com\", \"www.msftncsi.com\", \"www.msftconnecttest.com\"] : Object(f.i)() ? [\"apps.apple.com\"] : [] : n, o ? r.tun[\"auto-detect-interface\"] = !0 : r[\"interface-name\"] = e, r.tun[\"auto-route\"] = Object(f.j)() || Object(f.i)(), r.tun[\"dns-hijack\"] = Object(f.j)() ? [\"198.18.0.2:53\"] : Object(f.i)() ? [\"1.1.1.1\", \"114.114.114.114\"] : [\"1.0.0.1:53\"], r\n        }\n}, function(e, t, i) {\n    \"use strict\";\n    i.d(t, \"y\", (function() {\n        return s\n    })), i.d(t, \"z\", (function() {\n        return a\n    })), i.d(t, \"w\", (function() {\n        return u\n    })), i.d(t, \"v\", (function() {\n        return p\n    })), i.d(t, \"x\", (function() {\n        return f\n    })), i.d(t, \"a\", (function() {\n        return m\n    })), i.d(t, \"A\", (function() {\n        return v\n    })), i.d(t, \"b\", (function() {\n        return b\n    })), i.d(t, \"D\", (function() {\n        return _\n    })), i.d(t, \"C\", (function() {\n        return w\n    })), i.d(t, \"B\", (function() {\n        return y\n    })), i.d(t, \"E\", (function() {\n        return x\n    })), i.d(t, \"F\", (function() {\n        return S\n    })), i.d(t, \"G\", (function() {\n        return k\n    })), i.d(t, \"I\", (function() {\n        return L\n    })), i.d(t, \"H\", (function() {\n        return O\n    })), i.d(t, \"c\", (function() {\n        return E\n    })), i.d(t, \"d\", (function() {\n        return N\n    })), i.d(t, \"e\", (function() {\n        return D\n    })), i.d(t, \"f\", (function() {\n        return I\n    })), i.d(t, \"g\", (function() {\n        return T\n    })), i.d(t, \"h\", (function() {\n        return M\n    })), i.d(t, \"i\", (function() {\n        return P\n    })), i.d(t, \"p\", (function() {\n        return A\n    })), i.d(t, \"q\", (function() {\n        return R\n    })), i.d(t, \"r\", (function() {\n        return F\n    })), i.d(t, \"s\", (function() {\n        return j\n    })), i.d(t, \"t\", (function() {\n        return B\n    })), i.d(t, \"u\", (function() {\n        return V\n    })), i.d(t, \"j\", (function() {\n        return W\n    })), i.d(t, \"k\", (function() {\n        return z\n    })), i.d(t, \"l\", (function() {\n        return H\n    })), i.d(t, \"m\", (function() {\n        return U\n    })), i.d(t, \"n\", (function() {\n        return K\n    })), i.d(t, \"o\", (function() {\n        return $\n    }));\n    var n = i(0),\n        r = i(11),\n        o = i(7);\n    t = i(23);\n    const s = Object(o.dc)(\"editor.lineHighlightBackground\", {\n            dark: null,\n            light: null,\n            hc: null\n        }, n.a(\"lineHighlight\", \"Background color for the highlight of line at the cursor position.\")),\n        a = Object(o.dc)(\"editor.lineHighlightBorder\", {\n            dark: \"#282828\",\n            light: \"#eeeeee\",\n            hc: \"#f38518\"\n        }, n.a(\"lineHighlightBorderBox\", \"Background color for the border around the line at the cursor position.\")),\n        l = Object(o.dc)(\"editor.rangeHighlightBackground\", {\n            dark: \"#ffffff0b\",\n            light: \"#fdff0033\",\n            hc: null\n        }, n.a(\"rangeHighlight\", \"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),\n        d = Object(o.dc)(\"editor.rangeHighlightBorder\", {\n            dark: null,\n            light: null,\n            hc: o.b\n        }, n.a(\"rangeHighlightBorder\", \"Background color of the border around highlighted ranges.\"), !0),\n        c = Object(o.dc)(\"editor.symbolHighlightBackground\", {\n            dark: o.w,\n            light: o.w,\n            hc: null\n        }, n.a(\"symbolHighlight\", \"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),\n        h = Object(o.dc)(\"editor.symbolHighlightBorder\", {\n            dark: null,\n            light: null,\n            hc: o.b\n        }, n.a(\"symbolHighlightBorder\", \"Background color of the border around highlighted symbols.\"), !0),\n        u = Object(o.dc)(\"editorCursor.foreground\", {\n            dark: \"#AEAFAD\",\n            light: r.a.black,\n            hc: r.a.white\n        }, n.a(\"caret\", \"Color of the editor cursor.\")),\n        p = Object(o.dc)(\"editorCursor.background\", null, n.a(\"editorCursorBackground\", \"The background color of the editor cursor. Allows customizing the color of a character overlapped by a block cursor.\")),\n        g = Object(o.dc)(\"editorWhitespace.foreground\", {\n            dark: \"#e3e4e229\",\n            light: \"#33333333\",\n            hc: \"#e3e4e229\"\n        }, n.a(\"editorWhitespaces\", \"Color of whitespace characters in the editor.\")),\n        f = Object(o.dc)(\"editorIndentGuide.background\", {\n            dark: g,\n            light: g,\n            hc: g\n        }, n.a(\"editorIndentGuides\", \"Color of the editor indentation guides.\")),\n        m = Object(o.dc)(\"editorIndentGuide.activeBackground\", {\n            dark: g,\n            light: g,\n            hc: g\n        }, n.a(\"editorActiveIndentGuide\", \"Color of the active editor indentation guides.\")),\n        v = Object(o.dc)(\"editorLineNumber.foreground\", {\n            dark: \"#858585\",\n            light: \"#237893\",\n            hc: r.a.white\n        }, n.a(\"editorLineNumbers\", \"Color of editor line numbers.\"));\n    i = Object(o.dc)(\"editorActiveLineNumber.foreground\", {\n        dark: \"#c6c6c6\",\n        light: \"#0B216F\",\n        hc: o.b\n    }, n.a(\"editorActiveLineNumber\", \"Color of editor active line number\"), !1, n.a(\"deprecatedEditorActiveLineNumber\", \"Id is deprecated. Use 'editorLineNumber.activeForeground' instead.\"));\n    const b = Object(o.dc)(\"editorLineNumber.activeForeground\", {\n            dark: i,\n            light: i,\n            hc: i\n        }, n.a(\"editorActiveLineNumber\", \"Color of editor active line number\")),\n        _ = Object(o.dc)(\"editorRuler.foreground\", {\n            dark: \"#5A5A5A\",\n            light: r.a.lightgrey,\n            hc: r.a.white\n        }, n.a(\"editorRuler\", \"Color of the editor rulers.\"));\n    Object(o.dc)(\"editorCodeLens.foreground\", {\n        dark: \"#999999\",\n        light: \"#919191\",\n        hc: \"#999999\"\n    }, n.a(\"editorCodeLensForeground\", \"Foreground color of editor CodeLens\")), Object(o.dc)(\"editorBracketMatch.background\", {\n        dark: \"#0064001a\",\n        light: \"#0064001a\",\n        hc: \"#0064001a\"\n    }, n.a(\"editorBracketMatchBackground\", \"Background color behind matching brackets\")), Object(o.dc)(\"editorBracketMatch.border\", {\n        dark: \"#888\",\n        light: \"#B9B9B9\",\n        hc: o.h\n    }, n.a(\"editorBracketMatchBorder\", \"Color for matching brackets boxes\"));\n    const w = Object(o.dc)(\"editorOverviewRuler.border\", {\n            dark: \"#7f7f7f4d\",\n            light: \"#7f7f7f4d\",\n            hc: \"#7f7f7f4d\"\n        }, n.a(\"editorOverviewRulerBorder\", \"Color of the overview ruler border.\")),\n        y = Object(o.dc)(\"editorOverviewRuler.background\", null, n.a(\"editorOverviewRulerBackground\", \"Background color of the editor overview ruler. Only used when the minimap is enabled and placed on the right side of the editor.\")),\n        C = Object(o.dc)(\"editorGutter.background\", {\n            dark: o.q,\n            light: o.q,\n            hc: o.q\n        }, n.a(\"editorGutter\", \"Background color of the editor gutter. The gutter contains the glyph margins and the line numbers.\")),\n        x = Object(o.dc)(\"editorUnnecessaryCode.border\", {\n            dark: null,\n            light: null,\n            hc: r.a.fromHex(\"#fff\").transparent(.8)\n        }, n.a(\"unnecessaryCodeBorder\", \"Border color of unnecessary (unused) source code in the editor.\")),\n        S = Object(o.dc)(\"editorUnnecessaryCode.opacity\", {\n            dark: r.a.fromHex(\"#000a\"),\n            light: r.a.fromHex(\"#0007\"),\n            hc: null\n        }, n.a(\"unnecessaryCodeOpacity\", \"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.\"));\n    Object(o.dc)(\"editorGhostText.border\", {\n        dark: null,\n        light: null,\n        hc: r.a.fromHex(\"#fff\").transparent(.8)\n    }, n.a(\"editorGhostTextBorder\", \"Border color of ghost text in the editor.\")), Object(o.dc)(\"editorGhostText.foreground\", {\n        dark: r.a.fromHex(\"#ffffff56\"),\n        light: r.a.fromHex(\"#0007\"),\n        hc: null\n    }, n.a(\"editorGhostTextForeground\", \"Foreground color of the ghost text in the editor.\")), i = new r.a(new r.b(0, 122, 204, .6)), Object(o.dc)(\"editorOverviewRuler.rangeHighlightForeground\", {\n        dark: i,\n        light: i,\n        hc: i\n    }, n.a(\"overviewRulerRangeHighlight\", \"Overview ruler marker color for range highlights. The color must not be opaque so as not to hide underlying decorations.\"), !0);\n    const k = Object(o.dc)(\"editorOverviewRuler.errorForeground\", {\n            dark: new r.a(new r.b(255, 18, 18, .7)),\n            light: new r.a(new r.b(255, 18, 18, .7)),\n            hc: new r.a(new r.b(255, 50, 50, 1))\n        }, n.a(\"overviewRuleError\", \"Overview ruler marker color for errors.\")),\n        L = Object(o.dc)(\"editorOverviewRuler.warningForeground\", {\n            dark: o.M,\n            light: o.M,\n            hc: o.L\n        }, n.a(\"overviewRuleWarning\", \"Overview ruler marker color for warnings.\")),\n        O = Object(o.dc)(\"editorOverviewRuler.infoForeground\", {\n            dark: o.G,\n            light: o.G,\n            hc: o.F\n        }, n.a(\"overviewRuleInfo\", \"Overview ruler marker color for infos.\")),\n        E = Object(o.dc)(\"editorBracketHighlight.foreground1\", {\n            dark: \"#FFD700\",\n            light: \"#0431FAFF\",\n            hc: \"#FFD700\"\n        }, n.a(\"editorBracketHighlightForeground1\", \"Foreground color of brackets (1). Requires enabling bracket pair colorization.\")),\n        N = Object(o.dc)(\"editorBracketHighlight.foreground2\", {\n            dark: \"#DA70D6\",\n            light: \"#319331FF\",\n            hc: \"#DA70D6\"\n        }, n.a(\"editorBracketHighlightForeground2\", \"Foreground color of brackets (2). Requires enabling bracket pair colorization.\")),\n        D = Object(o.dc)(\"editorBracketHighlight.foreground3\", {\n            dark: \"#179FFF\",\n            light: \"#7B3814FF\",\n            hc: \"#87CEFA\"\n        }, n.a(\"editorBracketHighlightForeground3\", \"Foreground color of brackets (3). Requires enabling bracket pair colorization.\")),\n        I = Object(o.dc)(\"editorBracketHighlight.foreground4\", {\n            dark: \"#00000000\",\n            light: \"#00000000\",\n            hc: \"#00000000\"\n        }, n.a(\"editorBracketHighlightForeground4\", \"Foreground color of brackets (4). Requires enabling bracket pair colorization.\")),\n        T = Object(o.dc)(\"editorBracketHighlight.foreground5\", {\n            dark: \"#00000000\",\n            light: \"#00000000\",\n            hc: \"#00000000\"\n        }, n.a(\"editorBracketHighlightForeground5\", \"Foreground color of brackets (5). Requires enabling bracket pair colorization.\")),\n        M = Object(o.dc)(\"editorBracketHighlight.foreground6\", {\n            dark: \"#00000000\",\n            light: \"#00000000\",\n            hc: \"#00000000\"\n        }, n.a(\"editorBracketHighlightForeground6\", \"Foreground color of brackets (6). Requires enabling bracket pair colorization.\")),\n        P = Object(o.dc)(\"editorBracketHighlight.unexpectedBracket.foreground\", {\n            dark: new r.a(new r.b(255, 18, 18, .8)),\n            light: new r.a(new r.b(255, 18, 18, .8)),\n            hc: new r.a(new r.b(255, 50, 50, 1))\n        }, n.a(\"editorBracketHighlightUnexpectedBracketForeground\", \"Foreground color of unexpected brackets.\")),\n        A = Object(o.dc)(\"editorBracketPairGuide.background1\", {\n            dark: \"#00000000\",\n            light: \"#00000000\",\n            hc: \"#00000000\"\n        }, n.a(\"editorBracketPairGuide.background1\", \"Background color of inactive bracket pair guides (1). Requires enabling bracket pair guides.\")),\n        R = Object(o.dc)(\"editorBracketPairGuide.background2\", {\n            dark: \"#00000000\",\n            light: \"#00000000\",\n            hc: \"#00000000\"\n        }, n.a(\"editorBracketPairGuide.background2\", \"Background color of inactive bracket pair guides (2). Requires enabling bracket pair guides.\")),\n        F = Object(o.dc)(\"editorBracketPairGuide.background3\", {\n            dark: \"#00000000\",\n            light: \"#00000000\",\n            hc: \"#00000000\"\n        }, n.a(\"editorBracketPairGuide.background3\", \"Background color of inactive bracket pair guides (3). Requires enabling bracket pair guides.\")),\n        j = Object(o.dc)(\"editorBracketPairGuide.background4\", {\n            dark: \"#00000000\",\n            light: \"#00000000\",\n            hc: \"#00000000\"\n        }, n.a(\"editorBracketPairGuide.background4\", \"Background color of inactive bracket pair guides (4). Requires enabling bracket pair guides.\")),\n        B = Object(o.dc)(\"editorBracketPairGuide.background5\", {\n            dark: \"#00000000\",\n            light: \"#00000000\",\n            hc: \"#00000000\"\n        }, n.a(\"editorBracketPairGuide.background5\", \"Background color of inactive bracket pair guides (5). Requires enabling bracket pair guides.\")),\n        V = Object(o.dc)(\"editorBracketPairGuide.background6\", {\n            dark: \"#00000000\",\n            light: \"#00000000\",\n            hc: \"#00000000\"\n        }, n.a(\"editorBracketPairGuide.background6\", \"Background color of inactive bracket pair guides (6). Requires enabling bracket pair guides.\")),\n        W = Object(o.dc)(\"editorBracketPairGuide.activeBackground1\", {\n            dark: \"#00000000\",\n            light: \"#00000000\",\n            hc: \"#00000000\"\n        }, n.a(\"editorBracketPairGuide.activeBackground1\", \"Background color of active bracket pair guides (1). Requires enabling bracket pair guides.\")),\n        z = Object(o.dc)(\"editorBracketPairGuide.activeBackground2\", {\n            dark: \"#00000000\",\n            light: \"#00000000\",\n            hc: \"#00000000\"\n        }, n.a(\"editorBracketPairGuide.activeBackground2\", \"Background color of active bracket pair guides (2). Requires enabling bracket pair guides.\")),\n        H = Object(o.dc)(\"editorBracketPairGuide.activeBackground3\", {\n            dark: \"#00000000\",\n            light: \"#00000000\",\n            hc: \"#00000000\"\n        }, n.a(\"editorBracketPairGuide.activeBackground3\", \"Background color of active bracket pair guides (3). Requires enabling bracket pair guides.\")),\n        U = Object(o.dc)(\"editorBracketPairGuide.activeBackground4\", {\n            dark: \"#00000000\",\n            light: \"#00000000\",\n            hc: \"#00000000\"\n        }, n.a(\"editorBracketPairGuide.activeBackground4\", \"Background color of active bracket pair guides (4). Requires enabling bracket pair guides.\")),\n        K = Object(o.dc)(\"editorBracketPairGuide.activeBackground5\", {\n            dark: \"#00000000\",\n            light: \"#00000000\",\n            hc: \"#00000000\"\n        }, n.a(\"editorBracketPairGuide.activeBackground5\", \"Background color of active bracket pair guides (5). Requires enabling bracket pair guides.\")),\n        $ = Object(o.dc)(\"editorBracketPairGuide.activeBackground6\", {\n            dark: \"#00000000\",\n            light: \"#00000000\",\n            hc: \"#00000000\"\n        }, n.a(\"editorBracketPairGuide.activeBackground6\", \"Background color of active bracket pair guides (6). Requires enabling bracket pair guides.\"));\n    Object(t.f)((e, t) => {\n        var i = e.getColor(o.q);\n        i && t.addRule(`.monaco-editor, .monaco-editor-background, .monaco-editor .inputarea.ime-input { background-color: ${i}; }`), (i = e.getColor(o.A)) && t.addRule(`.monaco-editor, .monaco-editor .inputarea.ime-input { color: ${i}; }`), (i = e.getColor(C)) && t.addRule(`.monaco-editor .margin { background-color: ${i}; }`), (i = e.getColor(l)) && t.addRule(`.monaco-editor .rangeHighlight { background-color: ${i}; }`), (i = e.getColor(d)) && t.addRule(`.monaco-editor .rangeHighlight { border: 1px ${\"hc\"===e.type?\"dotted\":\"solid\"} ${i}; }`), (i = e.getColor(c)) && t.addRule(`.monaco-editor .symbolHighlight { background-color: ${i}; }`), (i = e.getColor(h)) && t.addRule(`.monaco-editor .symbolHighlight { border: 1px ${\"hc\"===e.type?\"dotted\":\"solid\"} ${i}; }`), (e = e.getColor(g)) && (t.addRule(`.monaco-editor .mtkw { color: ${e} !important; }`), t.addRule(`.monaco-editor .mtkz { color: ${e} !important; }`))\n    })\n}, function(e, t, i) {\n    \"use strict\";\n    var n = i(88),\n        r = i(27);\n    r = i.n(r), i = i(174);\n    n.a.use(r.a), t.a = new r.a.Store({\n        modules: i.default,\n        strict: !1,\n        plugins: [function(e) {\n            e.subscribe((function(t) {\n                [\"CHANGE_PROFILES\", \"CHANGE_PROFILES_INDEX\", \"CHANGE_PROFILE\", \"APPEND_PROFILE\", \"DELETE_PROFILE\"].includes(t.type) && e.commit(\"SAVE_PROFILES\")\n            }))\n        }]\n    })\n}, function(e, t, i) {\n    \"use strict\";\n    var n;\n    i.d(t, \"a\", (function() {\n            return n\n        })),\n        function(e) {\n            e.is = function(e) {\n                return e && \"object\" == typeof e && \"function\" == typeof e[Symbol.iterator]\n            };\n            const t = Object.freeze([]);\n            e.empty = function() {\n                return t\n            }, e.single = function*(e) {\n                yield e\n            }, e.from = function(e) {\n                return e || t\n            }, e.isEmpty = function(e) {\n                return !e || !0 === e[Symbol.iterator]().next().done\n            }, e.first = function(e) {\n                return e[Symbol.iterator]().next().value\n            }, e.some = function(e, t) {\n                for (const i of e)\n                    if (t(i)) return !0;\n                return !1\n            }, e.find = function(e, t) {\n                for (const i of e)\n                    if (t(i)) return i\n            }, e.filter = function*(e, t) {\n                for (const i of e) t(i) && (yield i)\n            }, e.map = function*(e, t) {\n                let i = 0;\n                for (const n of e) yield t(n, i++)\n            }, e.concat = function*(...e) {\n                for (const t of e)\n                    for (const e of t) yield e\n            }, e.concatNested = function*(e) {\n                for (const t of e)\n                    for (const e of t) yield e\n            }, e.reduce = function(e, t, i) {\n                let n = i;\n                for (const i of e) n = t(n, i);\n                return n\n            }, e.slice = function*(e, t, i = e.length) {\n                for (t < 0 && (t += e.length), i < 0 ? i += e.length : i > e.length && (i = e.length); t < i; t++) yield e[t]\n            }, e.consume = function(t, i = Number.POSITIVE_INFINITY) {\n                const n = [];\n                if (0 === i) return [n, t];\n                const r = t[Symbol.iterator]();\n                for (let t = 0; t < i; t++) {\n                    var o = r.next();\n                    if (o.done) return [n, e.empty()];\n                    n.push(o.value)\n                }\n                return [n, {\n                    [Symbol.iterator]: () => r\n                }]\n            }, e.equals = function(e, t, i = ((e, t) => e === t)) {\n                const n = e[Symbol.iterator](),\n                    r = t[Symbol.iterator]();\n                for (;;) {\n                    var o = n.next(),\n                        s = r.next();\n                    if (o.done !== s.done) return !1;\n                    if (o.done) return !0;\n                    if (!i(o.value, s.value)) return !1\n                }\n            }\n        }(n = n || {})\n}, function(e, t, i) {\n    \"use strict\";\n    i.d(t, \"g\", (function() {\n        return n\n    })), i.d(t, \"f\", (function() {\n        return r\n    })), i.d(t, \"h\", (function() {\n        return a\n    })), i.d(t, \"b\", (function() {\n        return l\n    })), i.d(t, \"c\", (function() {\n        return o\n    })), i.d(t, \"d\", (function() {\n        return d\n    })), i.d(t, \"e\", (function() {\n        return c\n    })), i.d(t, \"i\", (function() {\n        return h\n    })), i.d(t, \"a\", (function() {\n        return u\n    }));\n    var n, r, o, s = i(47);\n    (i = n = n || {})[i.Left = 1] = \"Left\", i[i.Center = 2] = \"Center\", i[i.Right = 4] = \"Right\", i[i.Full = 7] = \"Full\", (i = r = r || {})[i.Inline = 1] = \"Inline\", i[i.Gutter = 2] = \"Gutter\";\n    class a {\n        constructor(e) {\n            this._textModelResolvedOptionsBrand = void 0, this.tabSize = Math.max(1, 0 | e.tabSize), this.indentSize = 0 | e.tabSize, this.insertSpaces = Boolean(e.insertSpaces), this.defaultEOL = 0 | e.defaultEOL, this.trimAutoWhitespace = Boolean(e.trimAutoWhitespace), this.bracketPairColorizationOptions = e.bracketPairColorizationOptions\n        }\n        equals(e) {\n            return this.tabSize === e.tabSize && this.indentSize === e.indentSize && this.insertSpaces === e.insertSpaces && this.defaultEOL === e.defaultEOL && this.trimAutoWhitespace === e.trimAutoWhitespace && Object(s.c)(this.bracketPairColorizationOptions, e.bracketPairColorizationOptions)\n        }\n        createChangeEvent(e) {\n            return {\n                tabSize: this.tabSize !== e.tabSize,\n                indentSize: this.indentSize !== e.indentSize,\n                insertSpaces: this.insertSpaces !== e.insertSpaces,\n                trimAutoWhitespace: this.trimAutoWhitespace !== e.trimAutoWhitespace\n            }\n        }\n    }\n    class l {\n        constructor(e, t) {\n            this._findMatchBrand = void 0, this.range = e, this.matches = t\n        }\n    }(i = o = o || {})[i.Disabled = 0] = \"Disabled\", i[i.EnabledForActive = 1] = \"EnabledForActive\", i[i.Enabled = 2] = \"Enabled\";\n    class d {\n        constructor(e, t, i) {\n            this.visibleColumn = e, this.className = t, this.horizontalLine = i\n        }\n    }\n    class c {\n        constructor(e, t) {\n            this.top = e, this.endColumn = t\n        }\n    }\n    class h {\n        constructor(e, t, i, n, r, o) {\n            this.identifier = e, this.range = t, this.text = i, this.forceMoveMarkers = n, this.isAutoWhitespaceEdit = r, this._isTracked = o\n        }\n    }\n    class u {\n        constructor(e, t, i) {\n            this.reverseEdits = e, this.changes = t, this.trimAutoWhitespaceLineNumbers = i\n        }\n    }\n}, function(e, t) {\n    e.exports = require(\"yaml\")\n}, function(e, t, i) {\n    \"use strict\";\n    i.d(t, \"b\", (function() {\n        return l\n    })), i.d(t, \"a\", (function() {\n        return d\n    }));\n    var n = i(2),\n        r = i(43),\n        o = i(4),\n        s = i(79),\n        a = i(17);\n    i = i(26);\n    const l = Object(i.c)(\"commandService\"),\n        d = new class {\n            constructor() {\n                this._commands = new Map, this._onDidRegisterCommand = new n.b, this.onDidRegisterCommand = this._onDidRegisterCommand.event\n            }\n            registerCommand(e, t) {\n                if (!e) throw new Error(\"invalid command\");\n                if (\"string\" == typeof e) {\n                    if (!t) throw new Error(\"invalid command\");\n                    return this.registerCommand({\n                        id: e,\n                        handler: t\n                    })\n                }\n                if (e.description) {\n                    const t = [];\n                    for (var i of e.description.args) t.push(i.constraint);\n                    const n = e.handler;\n                    e.handler = function(e, ...i) {\n                        return Object(a.n)(i, t), n(e, ...i)\n                    }\n                }\n                const {\n                    id: n\n                } = e;\n                let r = this._commands.get(n);\n                r || (r = new s.a, this._commands.set(n, r));\n                let l = r.unshift(e);\n                return e = Object(o.i)(() => {\n                    l();\n                    const e = this._commands.get(n);\n                    null != e && e.isEmpty() && this._commands.delete(n)\n                }), this._onDidRegisterCommand.fire(n), e\n            }\n            registerCommandAlias(e, t) {\n                return d.registerCommand(e, (e, ...i) => e.get(l).executeCommand(t, ...i))\n            }\n            getCommand(e) {\n                const t = this._commands.get(e);\n                if (t && !t.isEmpty()) return r.a.first(t)\n            }\n            getCommands() {\n                const e = new Map;\n                for (const i of this._commands.keys()) {\n                    var t = this.getCommand(i);\n                    t && e.set(i, t)\n                }\n                return e\n            }\n        };\n    d.registerCommand(\"noop\", () => {})\n}, function(e, t, i) {\n    \"use strict\";\n    i.d(t, \"a\", (function() {\n        return r\n    })), i.d(t, \"b\", (function() {\n        return o\n    })), i.d(t, \"e\", (function() {\n        return a\n    })), i.d(t, \"c\", (function() {\n        return l\n    })), i.d(t, \"d\", (function() {\n        return d\n    }));\n    var n = i(17);\n\n    function r(e) {\n        if (!e || \"object\" != typeof e) return e;\n        if (e instanceof RegExp) return e;\n        const t = Array.isArray(e) ? [] : {};\n        return Object.keys(e).forEach(i => {\n            e[i] && \"object\" == typeof e[i] ? t[i] = r(e[i]) : t[i] = e[i]\n        }), t\n    }\n\n    function o(e) {\n        if (!e || \"object\" != typeof e) return e;\n        const t = [e];\n        for (; 0 < t.length;) {\n            const e = t.shift();\n            Object.freeze(e);\n            for (const n in e) {\n                var i;\n                s.call(e, n) && (\"object\" != typeof(i = e[n]) || Object.isFrozen(i) || t.push(i))\n            }\n        }\n        return e\n    }\n    const s = Object.prototype.hasOwnProperty;\n\n    function a(e, t, i = !0) {\n        return Object(n.j)(e) ? (Object(n.j)(t) && Object.keys(t).forEach(r => {\n            r in e ? i && (Object(n.j)(e[r]) && Object(n.j)(t[r]) ? a(e[r], t[r], i) : e[r] = t[r]) : e[r] = t[r]\n        }), e) : t\n    }\n\n    function l(e, t) {\n        if (e === t) return !0;\n        if (null == e || null == t) return !1;\n        if (typeof e != typeof t) return !1;\n        if (\"object\" != typeof e) return !1;\n        if (Array.isArray(e) !== Array.isArray(t)) return !1;\n        let i, n;\n        if (Array.isArray(e)) {\n            if (e.length !== t.length) return !1;\n            for (i = 0; i < e.length; i++)\n                if (!l(e[i], t[i])) return !1\n        } else {\n            const r = [];\n            for (n in e) r.push(n);\n            r.sort();\n            const o = [];\n            for (n in t) o.push(n);\n            if (o.sort(), !l(r, o)) return !1;\n            for (i = 0; i < r.length; i++)\n                if (!l(e[r[i]], t[r[i]])) return !1\n        }\n        return !0\n    }\n\n    function d(e, t, i) {\n        return void 0 === (e = t(e)) ? i : e\n    }\n}, function(e, t, i) {\n    \"use strict\";\n    i.d(t, \"b\", (function() {\n        return n\n    })), i.d(t, \"a\", (function() {\n        return r\n    }));\n    var n = {\n            INIT: Symbol(),\n            DEFAULT: Symbol(),\n            SYSTEM_PROXY: Symbol()\n        },\n        r = {\n            CONNECTED: Symbol(),\n            DISCONNECTED: Symbol()\n        }\n}, function(e, t, i) {\n    \"use strict\";\n    var n, r, o, s, a, l, d, c, h, u, p, g, f, m, v, b, _, w, y, C, x, S, k, L, O, E, N, D, I, T, M, P, A, R, F;\n    i.d(t, \"a\", (function() {\n        return n\n    })), i.d(t, \"b\", (function() {\n        return r\n    })), i.d(t, \"c\", (function() {\n        return o\n    })), i.d(t, \"d\", (function() {\n        return s\n    })), i.d(t, \"e\", (function() {\n        return a\n    })), i.d(t, \"f\", (function() {\n        return l\n    })), i.d(t, \"g\", (function() {\n        return d\n    })), i.d(t, \"h\", (function() {\n        return c\n    })), i.d(t, \"i\", (function() {\n        return h\n    })), i.d(t, \"j\", (function() {\n        return u\n    })), i.d(t, \"k\", (function() {\n        return p\n    })), i.d(t, \"l\", (function() {\n        return g\n    })), i.d(t, \"m\", (function() {\n        return f\n    })), i.d(t, \"n\", (function() {\n        return m\n    })), i.d(t, \"o\", (function() {\n        return v\n    })), i.d(t, \"p\", (function() {\n        return b\n    })), i.d(t, \"q\", (function() {\n        return _\n    })), i.d(t, \"r\", (function() {\n        return w\n    })), i.d(t, \"s\", (function() {\n        return y\n    })), i.d(t, \"t\", (function() {\n        return C\n    })), i.d(t, \"u\", (function() {\n        return x\n    })), i.d(t, \"v\", (function() {\n        return S\n    })), i.d(t, \"w\", (function() {\n        return k\n    })), i.d(t, \"x\", (function() {\n        return L\n    })), i.d(t, \"y\", (function() {\n        return O\n    })), i.d(t, \"z\", (function() {\n        return E\n    })), i.d(t, \"A\", (function() {\n        return N\n    })), i.d(t, \"B\", (function() {\n        return D\n    })), i.d(t, \"C\", (function() {\n        return I\n    })), i.d(t, \"D\", (function() {\n        return T\n    })), i.d(t, \"E\", (function() {\n        return M\n    })), i.d(t, \"F\", (function() {\n        return P\n    })), i.d(t, \"G\", (function() {\n        return A\n    })), i.d(t, \"H\", (function() {\n        return R\n    })), i.d(t, \"I\", (function() {\n        return F\n    })), (t = n = n || {})[t.Unknown = 0] = \"Unknown\", t[t.Disabled = 1] = \"Disabled\", t[t.Enabled = 2] = \"Enabled\", (t = r = r || {})[t.KeepWhitespace = 1] = \"KeepWhitespace\", t[t.InsertAsSnippet = 4] = \"InsertAsSnippet\", (t = o = o || {})[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] = \"文本\", 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\", (s = s || {})[s.Deprecated = 1] = \"Deprecated\", (t = a = a || {})[t.Invoke = 0] = \"Invoke\", t[t.TriggerCharacter = 1] = \"TriggerCharacter\", t[t.TriggerForIncompleteCompletions = 2] = \"TriggerForIncompleteCompletions\", (t = l = l || {})[t.EXACT = 0] = \"EXACT\", t[t.ABOVE = 1] = \"ABOVE\", t[t.BELOW = 2] = \"BELOW\", (t = d = d || {})[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\", (t = c = c || {})[t.LF = 1] = \"LF\", t[t.CRLF = 2] = \"CRLF\", (t = h = h || {})[t.Text = 0] = \"文本\", t[t.Read = 1] = \"Read\", t[t.Write = 2] = \"Write\", (t = u = u || {})[t.None = 0] = \"None\", t[t.Keep = 1] = \"Keep\", t[t.Brackets = 2] = \"Brackets\", t[t.Advanced = 3] = \"Advanced\", t[t.Full = 4] = \"Full\", (t = p = p || {})[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.autoClosingBrackets = 5] = \"autoClosingBrackets\", t[t.autoClosingDelete = 6] = \"autoClosingDelete\", t[t.autoClosingOvertype = 7] = \"autoClosingOvertype\", t[t.autoClosingQuotes = 8] = \"autoClosingQuotes\", t[t.autoIndent = 9] = \"autoIndent\", t[t.automaticLayout = 10] = \"automaticLayout\", t[t.autoSurround = 11] = \"autoSurround\", t[t.bracketPairColorization = 12] = \"bracketPairColorization\", t[t.guides = 13] = \"guides\", t[t.codeLens = 14] = \"codeLens\", t[t.codeLensFontFamily = 15] = \"codeLensFontFamily\", t[t.codeLensFontSize = 16] = \"codeLensFontSize\", t[t.colorDecorators = 17] = \"colorDecorators\", t[t.columnSelection = 18] = \"columnSelection\", t[t.comments = 19] = \"comments\", t[t.contextmenu = 20] = \"contextmenu\", t[t.copyWithSyntaxHighlighting = 21] = \"copyWithSyntaxHighlighting\", t[t.cursorBlinking = 22] = \"cursorBlinking\", t[t.cursorSmoothCaretAnimation = 23] = \"cursorSmoothCaretAnimation\", t[t.cursorStyle = 24] = \"cursorStyle\", t[t.cursorSurroundingLines = 25] = \"cursorSurroundingLines\", t[t.cursorSurroundingLinesStyle = 26] = \"cursorSurroundingLinesStyle\", t[t.cursorWidth = 27] = \"cursorWidth\", t[t.disableLayerHinting = 28] = \"disableLayerHinting\", t[t.disableMonospaceOptimizations = 29] = \"disableMonospaceOptimizations\", t[t.domReadOnly = 30] = \"domReadOnly\", t[t.dragAndDrop = 31] = \"dragAndDrop\", t[t.emptySelectionClipboard = 32] = \"emptySelectionClipboard\", t[t.extraEditorClassName = 33] = \"extraEditorClassName\", t[t.fastScrollSensitivity = 34] = \"fastScrollSensitivity\", t[t.find = 35] = \"find\", t[t.fixedOverflowWidgets = 36] = \"fixedOverflowWidgets\", t[t.folding = 37] = \"folding\", t[t.foldingStrategy = 38] = \"foldingStrategy\", t[t.foldingHighlight = 39] = \"foldingHighlight\", t[t.foldingImportsByDefault = 40] = \"foldingImportsByDefault\", t[t.unfoldOnClickAfterEndOfLine = 41] = \"unfoldOnClickAfterEndOfLine\", t[t.fontFamily = 42] = \"fontFamily\", t[t.fontInfo = 43] = \"fontInfo\", t[t.fontLigatures = 44] = \"fontLigatures\", t[t.fontSize = 45] = \"fontSize\", t[t.fontWeight = 46] = \"fontWeight\", t[t.formatOnPaste = 47] = \"formatOnPaste\", t[t.formatOnType = 48] = \"formatOnType\", t[t.glyphMargin = 49] = \"glyphMargin\", t[t.gotoLocation = 50] = \"gotoLocation\", t[t.hideCursorInOverviewRuler = 51] = \"hideCursorInOverviewRuler\", t[t.hover = 52] = \"hover\", t[t.inDiffEditor = 53] = \"inDiffEditor\", t[t.inlineSuggest = 54] = \"inlineSuggest\", t[t.letterSpacing = 55] = \"letterSpacing\", t[t.lightbulb = 56] = \"lightbulb\", t[t.lineDecorationsWidth = 57] = \"lineDecorationsWidth\", t[t.lineHeight = 58] = \"lineHeight\", t[t.lineNumbers = 59] = \"lineNumbers\", t[t.lineNumbersMinChars = 60] = \"lineNumbersMinChars\", t[t.linkedEditing = 61] = \"linkedEditing\", t[t.links = 62] = \"links\", t[t.matchBrackets = 63] = \"matchBrackets\", t[t.minimap = 64] = \"minimap\", t[t.mouseStyle = 65] = \"mouseStyle\", t[t.mouseWheelScrollSensitivity = 66] = \"mouseWheelScrollSensitivity\", t[t.mouseWheelZoom = 67] = \"mouseWheelZoom\", t[t.multiCursorMergeOverlapping = 68] = \"multiCursorMergeOverlapping\", t[t.multiCursorModifier = 69] = \"multiCursorModifier\", t[t.multiCursorPaste = 70] = \"multiCursorPaste\", t[t.occurrencesHighlight = 71] = \"occurrencesHighlight\", t[t.overviewRulerBorder = 72] = \"overviewRulerBorder\", t[t.overviewRulerLanes = 73] = \"overviewRulerLanes\", t[t.padding = 74] = \"padding\", t[t.parameterHints = 75] = \"parameterHints\", t[t.peekWidgetDefaultFocus = 76] = \"peekWidgetDefaultFocus\", t[t.definitionLinkOpensInPeek = 77] = \"definitionLinkOpensInPeek\", t[t.quickSuggestions = 78] = \"quickSuggestions\", t[t.quickSuggestionsDelay = 79] = \"quickSuggestionsDelay\", t[t.readOnly = 80] = \"readOnly\", t[t.renameOnType = 81] = \"renameOnType\", t[t.renderControlCharacters = 82] = \"renderControlCharacters\", t[t.renderFinalNewline = 83] = \"renderFinalNewline\", t[t.renderLineHighlight = 84] = \"renderLineHighlight\", t[t.renderLineHighlightOnlyWhenFocus = 85] = \"renderLineHighlightOnlyWhenFocus\", t[t.renderValidationDecorations = 86] = \"renderValidationDecorations\", t[t.renderWhitespace = 87] = \"renderWhitespace\", t[t.revealHorizontalRightPadding = 88] = \"revealHorizontalRightPadding\", t[t.roundedSelection = 89] = \"roundedSelection\", t[t.rulers = 90] = \"rulers\", t[t.scrollbar = 91] = \"scrollbar\", t[t.scrollBeyondLastColumn = 92] = \"scrollBeyondLastColumn\", t[t.scrollBeyondLastLine = 93] = \"scrollBeyondLastLine\", t[t.scrollPredominantAxis = 94] = \"scrollPredominantAxis\", t[t.selectionClipboard = 95] = \"selectionClipboard\", t[t.selectionHighlight = 96] = \"selectionHighlight\", t[t.selectOnLineNumbers = 97] = \"selectOnLineNumbers\", t[t.showFoldingControls = 98] = \"showFoldingControls\", t[t.showUnused = 99] = \"showUnused\", t[t.snippetSuggestions = 100] = \"snippetSuggestions\", t[t.smartSelect = 101] = \"smartSelect\", t[t.smoothScrolling = 102] = \"smoothScrolling\", t[t.stickyTabStops = 103] = \"stickyTabStops\", t[t.stopRenderingLineAfter = 104] = \"stopRenderingLineAfter\", t[t.suggest = 105] = \"suggest\", t[t.suggestFontSize = 106] = \"suggestFontSize\", t[t.suggestLineHeight = 107] = \"suggestLineHeight\", t[t.suggestOnTriggerCharacters = 108] = \"suggestOnTriggerCharacters\", t[t.suggestSelection = 109] = \"suggestSelection\", t[t.tabCompletion = 110] = \"tabCompletion\", t[t.tabIndex = 111] = \"tabIndex\", t[t.unusualLineTerminators = 112] = \"unusualLineTerminators\", t[t.useShadowDOM = 113] = \"useShadowDOM\", t[t.useTabStops = 114] = \"useTabStops\", t[t.wordSeparators = 115] = \"wordSeparators\", t[t.wordWrap = 116] = \"wordWrap\", t[t.wordWrapBreakAfterCharacters = 117] = \"wordWrapBreakAfterCharacters\", t[t.wordWrapBreakBeforeCharacters = 118] = \"wordWrapBreakBeforeCharacters\", t[t.wordWrapColumn = 119] = \"wordWrapColumn\", t[t.wordWrapOverride1 = 120] = \"wordWrapOverride1\", t[t.wordWrapOverride2 = 121] = \"wordWrapOverride2\", t[t.wrappingIndent = 122] = \"wrappingIndent\", t[t.wrappingStrategy = 123] = \"wrappingStrategy\", t[t.showDeprecated = 124] = \"showDeprecated\", t[t.inlayHints = 125] = \"inlayHints\", t[t.editorClassName = 126] = \"editorClassName\", t[t.pixelRatio = 127] = \"pixelRatio\", t[t.tabFocusMode = 128] = \"tabFocusMode\", t[t.layoutInfo = 129] = \"layoutInfo\", t[t.wrappingInfo = 130] = \"wrappingInfo\", (t = g = g || {})[t.TextDefined = 0] = \"TextDefined\", t[t.LF = 1] = \"LF\", t[t.CRLF = 2] = \"CRLF\", (t = f = f || {})[t.LF = 0] = \"LF\", t[t.CRLF = 1] = \"CRLF\", (t = m = m || {})[t.None = 0] = \"None\", t[t.Indent = 1] = \"Indent\", t[t.IndentOutdent = 2] = \"IndentOutdent\", t[t.Outdent = 3] = \"Outdent\", (t = v = v || {})[t.Other = 0] = \"Other\", t[t.Type = 1] = \"类型\", t[t.Parameter = 2] = \"Parameter\", (t = b = b || {})[t.Automatic = 0] = \"Automatic\", t[t.Explicit = 1] = \"Explicit\", (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.NumLock = 78] = \"NumLock\", t[t.ScrollLock = 79] = \"ScrollLock\", t[t.Semicolon = 80] = \"Semicolon\", t[t.Equal = 81] = \"Equal\", t[t.Comma = 82] = \"Comma\", t[t.Minus = 83] = \"Minus\", t[t.Period = 84] = \"Period\", t[t.Slash = 85] = \"Slash\", t[t.Backquote = 86] = \"Backquote\", t[t.BracketLeft = 87] = \"BracketLeft\", t[t.Backslash = 88] = \"Backslash\", t[t.BracketRight = 89] = \"BracketRight\", t[t.Quote = 90] = \"Quote\", t[t.OEM_8 = 91] = \"OEM_8\", t[t.IntlBackslash = 92] = \"IntlBackslash\", t[t.Numpad0 = 93] = \"Numpad0\", t[t.Numpad1 = 94] = \"Numpad1\", t[t.Numpad2 = 95] = \"Numpad2\", t[t.Numpad3 = 96] = \"Numpad3\", t[t.Numpad4 = 97] = \"Numpad4\", t[t.Numpad5 = 98] = \"Numpad5\", t[t.Numpad6 = 99] = \"Numpad6\", t[t.Numpad7 = 100] = \"Numpad7\", t[t.Numpad8 = 101] = \"Numpad8\", t[t.Numpad9 = 102] = \"Numpad9\", t[t.NumpadMultiply = 103] = \"NumpadMultiply\", t[t.NumpadAdd = 104] = \"NumpadAdd\", t[t.NUMPAD_SEPARATOR = 105] = \"NUMPAD_SEPARATOR\", t[t.NumpadSubtract = 106] = \"NumpadSubtract\", t[t.NumpadDecimal = 107] = \"NumpadDecimal\", t[t.NumpadDivide = 108] = \"NumpadDivide\", t[t.KEY_IN_COMPOSITION = 109] = \"KEY_IN_COMPOSITION\", t[t.ABNT_C1 = 110] = \"ABNT_C1\", t[t.ABNT_C2 = 111] = \"ABNT_C2\", t[t.AudioVolumeMute = 112] = \"AudioVolumeMute\", t[t.AudioVolumeUp = 113] = \"AudioVolumeUp\", t[t.AudioVolumeDown = 114] = \"AudioVolumeDown\", t[t.BrowserSearch = 115] = \"BrowserSearch\", t[t.BrowserHome = 116] = \"BrowserHome\", t[t.BrowserBack = 117] = \"BrowserBack\", t[t.BrowserForward = 118] = \"BrowserForward\", t[t.MediaTrackNext = 119] = \"MediaTrackNext\", t[t.MediaTrackPrevious = 120] = \"MediaTrackPrevious\", t[t.MediaStop = 121] = \"MediaStop\", t[t.MediaPlayPause = 122] = \"MediaPlayPause\", t[t.LaunchMediaPlayer = 123] = \"LaunchMediaPlayer\", t[t.LaunchMail = 124] = \"LaunchMail\", t[t.LaunchApp2 = 125] = \"LaunchApp2\", t[t.MAX_VALUE = 126] = \"MAX_VALUE\", (t = w = w || {})[t.Hint = 1] = \"Hint\", t[t.Info = 2] = \"Info\", t[t.Warning = 4] = \"Warning\", t[t.Error = 8] = \"错误\", (t = y = y || {})[t.Unnecessary = 1] = \"Unnecessary\", t[t.Deprecated = 2] = \"Deprecated\", (t = C = C || {})[t.Inline = 1] = \"Inline\", t[t.Gutter = 2] = \"Gutter\", (t = x = x || {})[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\", (t = S = S || {})[t.TOP_RIGHT_CORNER = 0] = \"TOP_RIGHT_CORNER\", t[t.BOTTOM_RIGHT_CORNER = 1] = \"BOTTOM_RIGHT_CORNER\", t[t.TOP_CENTER = 2] = \"TOP_CENTER\", (t = k = k || {})[t.Left = 1] = \"Left\", t[t.Center = 2] = \"Center\", t[t.Right = 4] = \"Right\", t[t.Full = 7] = \"Full\", (t = L = L || {})[t.Off = 0] = \"Off\", t[t.On = 1] = \"On\", t[t.Relative = 2] = \"Relative\", t[t.Interval = 3] = \"Interval\", t[t.Custom = 4] = \"自定义\", (t = O = O || {})[t.None = 0] = \"None\", t[t.Text = 1] = \"文本\", t[t.Blocks = 2] = \"Blocks\", (t = E = E || {})[t.Smooth = 0] = \"Smooth\", t[t.Immediate = 1] = \"Immediate\", (t = N = N || {})[t.Auto = 1] = \"Auto\", t[t.Hidden = 2] = \"Hidden\", t[t.Visible = 3] = \"Visible\", (t = D = D || {})[t.LTR = 0] = \"LTR\", t[t.RTL = 1] = \"RTL\", (t = I = I || {})[t.Invoke = 1] = \"Invoke\", t[t.TriggerCharacter = 2] = \"TriggerCharacter\", t[t.ContentChange = 3] = \"ContentChange\", (t = 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\", (M = M || {})[M.Deprecated = 1] = \"Deprecated\", (t = P = P || {})[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\", (t = A = A || {})[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\", (t = R = R || {})[t.AlwaysGrowsWhenTypingAtEdges = 0] = \"AlwaysGrowsWhenTypingAtEdges\", t[t.NeverGrowsWhenTypingAtEdges = 1] = \"NeverGrowsWhenTypingAtEdges\", t[t.GrowsOnlyWhenTypingBefore = 2] = \"GrowsOnlyWhenTypingBefore\", t[t.GrowsOnlyWhenTypingAfter = 3] = \"GrowsOnlyWhenTypingAfter\", (t = F = F || {})[t.None = 0] = \"None\", t[t.Same = 1] = \"Same\", t[t.Indent = 2] = \"Indent\", t[t.DeepIndent = 3] = \"DeepIndent\"\n}, function(e, t, i) {\n    \"use strict\";\n    i.d(t, \"a\", (function() {\n        return n\n    })), i.d(t, \"b\", (function() {\n        return l\n    }));\n    var n, r = i(1),\n        o = i(28),\n        s = i(64),\n        a = i(4);\n    t = function(e, t, i, n) {\n        var r, o = arguments.length,\n            s = o < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n);\n        else\n            for (var a = e.length - 1; 0 <= a; a--)(r = e[a]) && (s = (o < 3 ? r(s) : 3 < o ? r(t, i, s) : r(t, i)) || s);\n        return 3 < o && s && Object.defineProperty(t, i, s), s\n    };\n    (i = n = n || {}).Tap = \"-monaco-gesturetap\", i.Change = \"-monaco-gesturechange\", i.Start = \"-monaco-gesturestart\", i.End = \"-monaco-gesturesend\", i.Contextmenu = \"-monaco-gesturecontextmenu\";\n    class l extends a.a {\n        constructor() {\n            super(), this.dispatched = !1, this.activeTouches = {}, this.handle = null, this.targets = [], this.ignoreTargets = [], this._lastSetTapCountTime = 0, this._register(r.g(document, \"touchstart\", e => this.onTouchStart(e), {\n                passive: !1\n            })), this._register(r.g(document, \"touchend\", e => this.onTouchEnd(e))), this._register(r.g(document, \"touchmove\", e => this.onTouchMove(e), {\n                passive: !1\n            }))\n        }\n        static addTarget(e) {\n            return l.isTouchDevice() ? (l.INSTANCE || (l.INSTANCE = new l), l.INSTANCE.targets.push(e), {\n                dispose: () => {\n                    l.INSTANCE.targets = l.INSTANCE.targets.filter(t => t !== e)\n                }\n            }) : a.a.None\n        }\n        static ignoreTarget(e) {\n            return l.isTouchDevice() ? (l.INSTANCE || (l.INSTANCE = new l), l.INSTANCE.ignoreTargets.push(e), {\n                dispose: () => {\n                    l.INSTANCE.ignoreTargets = l.INSTANCE.ignoreTargets.filter(t => t !== e)\n                }\n            }) : a.a.None\n        }\n        static isTouchDevice() {\n            return \"ontouchstart\" in window || 0 < navigator.maxTouchPoints\n        }\n        dispose() {\n            this.handle && (this.handle.dispose(), this.handle = null), super.dispose()\n        }\n        onTouchStart(e) {\n            var t = Date.now();\n            this.handle && (this.handle.dispose(), this.handle = null);\n            for (let r = 0, o = e.targetTouches.length; r < o; r++) {\n                var i = e.targetTouches.item(r);\n                this.activeTouches[i.identifier] = {\n                    id: i.identifier,\n                    initialTarget: i.target,\n                    initialTimeStamp: t,\n                    initialPageX: i.pageX,\n                    initialPageY: i.pageY,\n                    rollingTimestamps: [t],\n                    rollingPageX: [i.pageX],\n                    rollingPageY: [i.pageY]\n                };\n                let o = this.newGestureEvent(n.Start, i.target);\n                o.pageX = i.pageX, o.pageY = i.pageY, this.dispatchEvent(o)\n            }\n            this.dispatched && (e.preventDefault(), e.stopPropagation(), this.dispatched = !1)\n        }\n        onTouchEnd(e) {\n            var t = Date.now(),\n                i = Object.keys(this.activeTouches).length;\n            for (let p = 0, g = e.changedTouches.length; p < g; p++) {\n                var r, s, a, d, c, h, u = e.changedTouches.item(p);\n                if (this.activeTouches.hasOwnProperty(String(u.identifier))) {\n                    let e = this.activeTouches[u.identifier],\n                        p = Date.now() - e.initialTimeStamp;\n                    if (p < l.HOLD_DELAY && Math.abs(e.initialPageX - o.q(e.rollingPageX)) < 30 && Math.abs(e.initialPageY - o.q(e.rollingPageY)) < 30) {\n                        let t = this.newGestureEvent(n.Tap, e.initialTarget);\n                        t.pageX = o.q(e.rollingPageX), t.pageY = o.q(e.rollingPageY), this.dispatchEvent(t)\n                    } else if (p >= l.HOLD_DELAY && Math.abs(e.initialPageX - o.q(e.rollingPageX)) < 30 && Math.abs(e.initialPageY - o.q(e.rollingPageY)) < 30) {\n                        let t = this.newGestureEvent(n.Contextmenu, e.initialTarget);\n                        t.pageX = o.q(e.rollingPageX), t.pageY = o.q(e.rollingPageY), this.dispatchEvent(t)\n                    } else 1 === i && (r = o.q(e.rollingPageX), s = o.q(e.rollingPageY), a = o.q(e.rollingTimestamps) - e.rollingTimestamps[0], d = r - e.rollingPageX[0], c = s - e.rollingPageY[0], h = this.targets.filter(t => e.initialTarget instanceof Node && t.contains(e.initialTarget)), this.inertia(h, t, Math.abs(d) / a, 0 < d ? 1 : -1, r, Math.abs(c) / a, 0 < c ? 1 : -1, s));\n                    this.dispatchEvent(this.newGestureEvent(n.End, e.initialTarget)), delete this.activeTouches[u.identifier]\n                } else console.warn(\"move of an UNKNOWN touch\", u)\n            }\n            this.dispatched && (e.preventDefault(), e.stopPropagation(), this.dispatched = !1)\n        }\n        newGestureEvent(e, t) {\n            let i = document.createEvent(\"CustomEvent\");\n            return i.initEvent(e, !1, !0), i.initialTarget = t, i.tapCount = 0, i\n        }\n        dispatchEvent(e) {\n            if (e.type === n.Tap) {\n                var t = (new Date).getTime();\n                let i = 0;\n                i = t - this._lastSetTapCountTime > l.CLEAR_TAP_COUNT_TIME ? 1 : 2, this._lastSetTapCountTime = t, e.tapCount = i\n            } else e.type !== n.Change && e.type !== n.Contextmenu || (this._lastSetTapCountTime = 0);\n            for (let t = 0; t < this.ignoreTargets.length; t++)\n                if (e.initialTarget instanceof Node && this.ignoreTargets[t].contains(e.initialTarget)) return;\n            this.targets.forEach(t => {\n                e.initialTarget instanceof Node && t.contains(e.initialTarget) && (t.dispatchEvent(e), this.dispatched = !0)\n            })\n        }\n        inertia(e, t, i, o, s, a, d, c) {\n            this.handle = r.R(() => {\n                var r = Date.now();\n                let h = r - t,\n                    u = 0,\n                    p = 0,\n                    g = !0;\n                i += l.SCROLL_FRICTION * h, a += l.SCROLL_FRICTION * h, 0 < i && (g = !1, u = o * i * h), 0 < a && (g = !1, p = d * a * h);\n                let f = this.newGestureEvent(n.Change);\n                f.translationX = u, f.translationY = p, e.forEach(e => e.dispatchEvent(f)), g || this.inertia(e, r, i, o, s + u, a, d, c + p)\n            })\n        }\n        onTouchMove(e) {\n            var t = Date.now();\n            for (let r = 0, s = e.changedTouches.length; r < s; r++) {\n                var i = e.changedTouches.item(r);\n                if (this.activeTouches.hasOwnProperty(String(i.identifier))) {\n                    let e = this.activeTouches[i.identifier],\n                        r = this.newGestureEvent(n.Change, e.initialTarget);\n                    r.translationX = i.pageX - o.q(e.rollingPageX), r.translationY = i.pageY - o.q(e.rollingPageY), r.pageX = i.pageX, r.pageY = i.pageY, this.dispatchEvent(r), 3 < e.rollingPageX.length && (e.rollingPageX.shift(), e.rollingPageY.shift(), e.rollingTimestamps.shift()), e.rollingPageX.push(i.pageX), e.rollingPageY.push(i.pageY), e.rollingTimestamps.push(t)\n                } else console.warn(\"end of an UNKNOWN touch\", i)\n            }\n            this.dispatched && (e.preventDefault(), e.stopPropagation(), this.dispatched = !1)\n        }\n    }\n    l.SCROLL_FRICTION = -.005, l.HOLD_DELAY = 700, l.CLEAR_TAP_COUNT_TIME = 400, t([s.a], l, \"isTouchDevice\", null)\n}, function(e, t, i) {\n    \"use strict\";\n    i.d(t, \"a\", (function() {\n        return n\n    })), i.d(t, \"b\", (function() {\n        return l\n    }));\n    var n, r, o = i(2);\n    const s = Object.freeze((function(e, t) {\n        const i = setTimeout(e.bind(t), 0);\n        return {\n            dispose() {\n                clearTimeout(i)\n            }\n        }\n    }));\n    (r = n = n || {}).isCancellationToken = function(e) {\n        return e === r.None || e === r.Cancelled || e instanceof a || !(!e || \"object\" != typeof e) && \"boolean\" == typeof e.isCancellationRequested && \"function\" == typeof e.onCancellationRequested\n    }, r.None = Object.freeze({\n        isCancellationRequested: !1,\n        onCancellationRequested: o.c.None\n    }), r.Cancelled = Object.freeze({\n        isCancellationRequested: !0,\n        onCancellationRequested: s\n    });\n    class a {\n        constructor() {\n            this._isCancelled = !1, this._emitter = null\n        }\n        cancel() {\n            this._isCancelled || (this._isCancelled = !0, this._emitter && (this._emitter.fire(void 0), this.dispose()))\n        }\n        get isCancellationRequested() {\n            return this._isCancelled\n        }\n        get onCancellationRequested() {\n            return this._isCancelled ? s : (this._emitter || (this._emitter = new o.b), this._emitter.event)\n        }\n        dispose() {\n            this._emitter && (this._emitter.dispose(), this._emitter = null)\n        }\n    }\n    class l {\n        constructor(e) {\n            this._token = void 0, this._parentListener = void 0, this._parentListener = e && e.onCancellationRequested(this.cancel, this)\n        }\n        get token() {\n            return this._token || (this._token = new a), this._token\n        }\n        cancel() {\n            this._token ? this._token instanceof a && this._token.cancel() : this._token = n.Cancelled\n        }\n        dispose(e = !1) {\n            e && this.cancel(), this._parentListener && this._parentListener.dispose(), this._token ? this._token instanceof a && this._token.dispose() : this._token = n.None\n        }\n    }\n}, function(e, t, i) {\n    var n = i(259),\n        r = i(260),\n        o = i(182),\n        s = i(261);\n    e.exports = function(e) {\n        return n(e) || r(e) || o(e) || s()\n    }, e.exports.default = e.exports, e.exports.__esModule = !0\n}, function(e, t, i) {\n    \"use strict\";\n    i.d(t, \"a\", (function() {\n        return r\n    })), i.d(t, \"b\", (function() {\n        return o\n    }));\n    var n = i(2);\n    class r {\n        constructor(e, t, i) {\n            const r = e => this.emitter.fire(e);\n            this.emitter = new n.b({\n                onFirstListenerAdd: () => e.addEventListener(t, r, i),\n                onLastListenerRemove: () => e.removeEventListener(t, r, i)\n            })\n        }\n        get event() {\n            return this.emitter.event\n        }\n        dispose() {\n            this.emitter.dispose()\n        }\n    }\n\n    function o(e) {\n        return e.preventDefault(), e.stopPropagation(), e\n    }\n}, function(e, t, i) {\n    \"use strict\";\n    i.d(t, \"c\", (function() {\n        return n\n    })), i.d(t, \"b\", (function() {\n        return s\n    })), i.d(t, \"a\", (function() {\n        return l\n    }));\n    var n, r = i(9),\n        o = i(39);\n    (i = n = n || {}).inMemory = \"inmemory\", i.vscode = \"vscode\", i.internal = \"private\", i.walkThrough = \"walkThrough\", i.walkThroughSnippet = \"walkThroughSnippet\", i.http = \"http\", i.https = \"https\", i.file = \"file\", i.mailto = \"mailto\", i.untitled = \"untitled\", i.data = \"data\", i.command = \"command\", i.vscodeRemote = \"vscode-remote\", i.vscodeRemoteResource = \"vscode-remote-resource\", i.userData = \"vscode-userdata\", i.vscodeCustomEditor = \"vscode-custom-editor\", i.vscodeNotebook = \"vscode-notebook\", i.vscodeNotebookCell = \"vscode-notebook-cell\", i.vscodeNotebookCellMetadata = \"vscode-notebook-cell-metadata\", i.vscodeNotebookCellOutput = \"vscode-notebook-cell-output\", i.vscodeInteractive = \"vscode-interactive\", i.vscodeInteractiveInput = \"vscode-interactive-input\", i.vscodeSettings = \"vscode-settings\", i.vscodeWorkspaceTrust = \"vscode-workspace-trust\", i.vscodeTerminal = \"vscode-terminal\", i.webviewPanel = \"webview-panel\", i.vscodeWebview = \"vscode-webview\", i.extension = \"extension\", i.vscodeFileResource = \"vscode-file\", i.tmp = \"tmp\";\n    const s = new class {\n        constructor() {\n            this._hosts = Object.create(null), this._ports = Object.create(null), this._connectionTokens = Object.create(null), this._preferredWebSchema = \"http\", this._delegate = null\n        }\n        setPreferredWebSchema(e) {\n            this._preferredWebSchema = e\n        }\n        rewrite(e) {\n            if (this._delegate) return this._delegate(e);\n            var t = e.authority;\n            let i = this._hosts[t];\n            i && -1 !== i.indexOf(\":\") && (i = `[${i}]`);\n            var s = this._ports[t];\n            t = this._connectionTokens[t];\n            let a = \"path=\" + encodeURIComponent(e.path);\n            return \"string\" == typeof t && (a += \"&tkn=\" + encodeURIComponent(t)), o.a.from({\n                scheme: r.h ? this._preferredWebSchema : n.vscodeRemoteResource,\n                authority: `${i}:${s}`,\n                path: \"/vscode-remote-resource\",\n                query: a\n            })\n        }\n    };\n    class a {\n        asBrowserUri(e, t) {\n            const i = this.toUri(e, t);\n            return i.scheme === n.vscodeRemote ? s.rewrite(i) : i.scheme === n.file && (r.g || \"function\" == typeof r.b.importScripts && r.b.origin === `${n.vscodeFileResource}://${a.FALLBACK_AUTHORITY}`) ? i.with({\n                scheme: n.vscodeFileResource,\n                authority: i.authority || a.FALLBACK_AUTHORITY,\n                query: null,\n                fragment: null\n            }) : i\n        }\n        toUri(e, t) {\n            return o.a.isUri(e) ? e : o.a.parse(t.toUrl(e))\n        }\n    }\n    a.FALLBACK_AUTHORITY = \"vscode-app\";\n    const l = new a\n}, function(e, t, i) {\n    \"use strict\";\n    i.d(t, \"a\", (function() {\n        return d\n    }));\n    var n = i(37),\n        r = i(92),\n        o = i(106),\n        s = i(9);\n    const a = s.f ? 256 : 2048,\n        l = s.f ? 2048 : 256;\n    class d {\n        constructor(e) {\n            this._standardKeyboardEventBrand = !0, this.browserEvent = e, this.target = e.target, this.ctrlKey = e.ctrlKey, this.shiftKey = e.shiftKey, this.altKey = e.altKey, this.metaKey = e.metaKey, this.keyCode = function(e) {\n                if (e.charCode) {\n                    var t = String.fromCharCode(e.charCode).toUpperCase();\n                    return r.d.fromString(t)\n                }\n                if (3 === (e = e.keyCode)) return 7;\n                if (n.g) {\n                    if (59 === e) return 80;\n                    if (107 === e) return 81;\n                    if (109 === e) return 83;\n                    if (s.f && 224 === e) return 57\n                } else if (n.j) {\n                    if (91 === e) return 57;\n                    if (s.f && 93 === e) return 57;\n                    if (!s.f && 92 === e) return 57\n                }\n                return r.a[e] || 0\n            }(e), this.code = e.code, this.ctrlKey = this.ctrlKey || 5 === this.keyCode, this.altKey = this.altKey || 6 === this.keyCode, this.shiftKey = this.shiftKey || 4 === this.keyCode, this.metaKey = this.metaKey || 57 === this.keyCode, this._asKeybinding = this._computeKeybinding(), this._asRuntimeKeybinding = this._computeRuntimeKeybinding()\n        }\n        preventDefault() {\n            this.browserEvent && this.browserEvent.preventDefault && this.browserEvent.preventDefault()\n        }\n        stopPropagation() {\n            this.browserEvent && this.browserEvent.stopPropagation && this.browserEvent.stopPropagation()\n        }\n        toKeybinding() {\n            return this._asRuntimeKeybinding\n        }\n        equals(e) {\n            return this._asKeybinding === e\n        }\n        _computeKeybinding() {\n            let e = 0;\n            5 !== this.keyCode && 4 !== this.keyCode && 6 !== this.keyCode && 57 !== this.keyCode && (e = this.keyCode);\n            let t = 0;\n            return this.ctrlKey && (t |= a), this.altKey && (t |= 512), this.shiftKey && (t |= 1024), this.metaKey && (t |= l), t |= e, t\n        }\n        _computeRuntimeKeybinding() {\n            let e = 0;\n            return 5 !== this.keyCode && 4 !== this.keyCode && 6 !== this.keyCode && 57 !== this.keyCode && (e = this.keyCode), new o.d(this.ctrlKey, this.shiftKey, this.altKey, this.metaKey, e)\n        }\n    }\n}, function(e, t, i) {\n    \"use strict\";\n    i.d(t, \"a\", (function() {\n        return o\n    })), i.d(t, \"g\", (function() {\n        return s\n    })), i.d(t, \"b\", (function() {\n        return a\n    })), i.d(t, \"f\", (function() {\n        return l\n    })), i.d(t, \"d\", (function() {\n        return d\n    })), i.d(t, \"c\", (function() {\n        return c\n    })), i.d(t, \"e\", (function() {\n        return h\n    }));\n    var n = i(113),\n        r = (t = i(26), i(58));\n    const o = Object(t.c)(\"configurationService\");\n\n    function s(e, t) {\n        var i, n = Object.create(null);\n        for (i in e) a(n, i, e[i], t);\n        return n\n    }\n\n    function a(e, t, i, n) {\n        const r = t.split(\".\");\n        var o = r.pop();\n        let s = e;\n        for (let e = 0; e < r.length; e++) {\n            var a = r[e];\n            let i = s[a];\n            switch (typeof i) {\n                case \"undefined\":\n                    i = s[a] = Object.create(null);\n                    break;\n                case \"object\":\n                    break;\n                default:\n                    return void n(`Ignoring ${t} as ${r.slice(0,e+1).join(\".\")} is ${JSON.stringify(i)}`)\n            }\n            s = i\n        }\n        if (\"object\" == typeof s && null !== s) try {\n            s[o] = i\n        } catch (e) {\n            n(`Ignoring ${t} as ${r.join(\".\")} is ${JSON.stringify(s)}`)\n        } else n(`Ignoring ${t} as ${r.join(\".\")} is ${JSON.stringify(s)}`)\n    }\n\n    function l(e, t) {\n        ! function e(t, i) {\n            const n = i.shift();\n            if (0 !== i.length) {\n                if (-1 !== Object.keys(t).indexOf(n)) {\n                    const r = t[n];\n                    \"object\" != typeof r || Array.isArray(r) || (e(r, i), 0 === Object.keys(r).length && delete t[n])\n                }\n            } else delete t[n]\n        }(e, t.split(\".\"))\n    }\n\n    function d(e, t, i) {\n        return void 0 === (t = function(e, t) {\n            let i = e;\n            for (const e of t) {\n                if (\"object\" != typeof i || null === i) return;\n                i = i[e]\n            }\n            return i\n        }(e, t.split(\".\"))) ? i : t\n    }\n\n    function c() {\n        var e = r.a.as(n.a.配置).get配置Properties();\n        return Object.keys(e)\n    }\n\n    function h() {\n        var e, t = Object.create(null),\n            i = r.a.as(n.a.配置).get配置Properties();\n        for (e in i) {\n            a(t, e, i[e].default, e => console.error(\"Conflict in default settings: \" + e))\n        }\n        return t\n    }\n}, function(e, t, i) {\n    \"use strict\";\n    i.d(t, \"a\", (function() {\n        return C\n    })), i.d(t, \"c\", (function() {\n        return x\n    })), i.d(t, \"b\", (function() {\n        return O\n    }));\n    var n = i(2),\n        r = i(4),\n        o = i(6),\n        s = i(93),\n        a = i(70),\n        l = i(96);\n    class d {\n        constructor(e) {\n            var t;\n            e.autoClosingPairs ? this._autoClosingPairs = e.autoClosingPairs.map(e => new a.c(e)) : e.brackets ? this._autoClosingPairs = e.brackets.map(e => new a.c({\n                open: e[0],\n                close: e[1]\n            })) : this._autoClosingPairs = [], e.colorizedBracketPairs ? this._colorizedBracketPairs = c(e.colorizedBracketPairs.map(e => [e[0], e[1]])) : e.brackets ? this._colorizedBracketPairs = c(e.brackets.map(e => [e[0], e[1]]).filter(e => !(\"<\" === e[0] && \">\" === e[1]))) : this._colorizedBracketPairs = [], e.__electricCharacterSupport && e.__electricCharacterSupport.docComment && (t = e.__electricCharacterSupport.docComment, this._autoClosingPairs.push(new a.c({\n                open: t.open,\n                close: t.close || \"\"\n            }))), this._autoCloseBefore = \"string\" == typeof e.autoCloseBefore ? e.autoCloseBefore : d.DEFAULT_AUTOCLOSE_BEFORE_LANGUAGE_DEFINED, this._surroundingPairs = e.surroundingPairs || this._autoClosingPairs\n        }\n        getAutoClosingPairs() {\n            return this._autoClosingPairs\n        }\n        getAutoCloseBeforeSet() {\n            return this._autoCloseBefore\n        }\n        static shouldAutoClosePair(e, t, i) {\n            return 0 === t.getTokenCount() || (i = t.findTokenIndexAtOffset(i - 2), i = t.getStandardTokenType(i), e.isOK(i))\n        }\n        getSurroundingPairs() {\n            return this._surroundingPairs\n        }\n        getColorizedBrackets() {\n            return this._colorizedBracketPairs\n        }\n    }\n\n    function c(e) {\n        return e.filter(([e, t]) => \"\" !== e && \"\" !== t)\n    }\n    d.DEFAULT_AUTOCLOSE_BEFORE_LANGUAGE_DEFINED = \";:.,=}])> \\n\\t\";\n    var h = i(102);\n    class u {\n        constructor(e) {\n            this._richEditBrackets = e\n        }\n        getElectricCharacters() {\n            let e = [];\n            if (this._richEditBrackets)\n                for (const i of this._richEditBrackets.brackets)\n                    for (const n of i.close) {\n                        var t = n.charAt(n.length - 1);\n                        e.push(t)\n                    }\n            return e = e.filter((e, t, i) => i.indexOf(e) === t), e\n        }\n        onElectricCharacter(e, t, i) {\n            if (!this._richEditBrackets || 0 === this._richEditBrackets.brackets.length) return null;\n            var n = t.findTokenIndexAtOffset(i - 1);\n            if (Object(l.b)(t.getStandardTokenType(n))) return null;\n            n = this._richEditBrackets.reversedRegex;\n            const r = t.getLineContent().substring(0, i - 1) + e;\n            return (e = h.a.findPrevBracketInRange(n, 1, r, 0, r.length)) ? (n = r.substring(e.startColumn - 1, e.endColumn - 1).toLowerCase(), this._richEditBrackets.textIsOpenBracket[n] ? null : (e = t.getActualLineContentBefore(e.startColumn - 1), /^\\s*$/.test(e) ? {\n                matchOpenBracket: n\n            } : null)) : null\n        }\n    }\n\n    function p(e) {\n        return e.global && (e.lastIndex = 0), 1\n    }\n    class g {\n        constructor(e) {\n            this._indentationRules = e\n        }\n        shouldIncrease(e) {\n            return !!(this._indentationRules && this._indentationRules.increaseIndentPattern && p(this._indentationRules.increaseIndentPattern) && this._indentationRules.increaseIndentPattern.test(e))\n        }\n        shouldDecrease(e) {\n            return !!(this._indentationRules && this._indentationRules.decreaseIndentPattern && p(this._indentationRules.decreaseIndentPattern) && this._indentationRules.decreaseIndentPattern.test(e))\n        }\n        shouldIndentNextLine(e) {\n            return !!(this._indentationRules && this._indentationRules.indentNextLinePattern && p(this._indentationRules.indentNextLinePattern) && this._indentationRules.indentNextLinePattern.test(e))\n        }\n        shouldIgnore(e) {\n            return !!(this._indentationRules && this._indentationRules.unIndentedLinePattern && p(this._indentationRules.unIndentedLinePattern) && this._indentationRules.unIndentedLinePattern.test(e))\n        }\n        getIndentMetadata(e) {\n            let t = 0;\n            return this.shouldIncrease(e) && (t += 1), this.shouldDecrease(e) && (t += 2), this.shouldIndentNextLine(e) && (t += 4), this.shouldIgnore(e) && (t += 8), t\n        }\n    }\n    var f = i(31);\n    class m {\n        constructor(e) {\n            (e = e || {}).brackets = e.brackets || [\n                [\"(\", \")\"],\n                [\"{\", \"}\"],\n                [\"[\", \"]\"]\n            ], this._brackets = [], e.brackets.forEach(e => {\n                var t = m._createOpenBracketRegExp(e[0]),\n                    i = m._createCloseBracketRegExp(e[1]);\n                t && i && this._brackets.push({\n                    open: e[0],\n                    openRegExp: t,\n                    close: e[1],\n                    closeRegExp: i\n                })\n            }), this._regExpRules = e.onEnterRules || []\n        }\n        onEnter(e, t, i, n) {\n            if (3 <= e)\n                for (let e = 0, r = this._regExpRules.length; e < r; e++) {\n                    let r = this._regExpRules[e];\n                    if ([{\n                            reg: r.beforeText,\n                            text: i\n                        }, {\n                            reg: r.afterText,\n                            text: n\n                        }, {\n                            reg: r.previousLineText,\n                            text: t\n                        }].every(e => !e.reg || (e.reg.lastIndex = 0, e.reg.test(e.text)))) return r.action\n                }\n            if (2 <= e && 0 < i.length && 0 < n.length)\n                for (let e = 0, t = this._brackets.length; e < t; e++) {\n                    let t = this._brackets[e];\n                    if (t.openRegExp.test(i) && t.closeRegExp.test(n)) return {\n                        indentAction: a.b.IndentOutdent\n                    }\n                }\n            if (2 <= e && 0 < i.length)\n                for (let e = 0, t = this._brackets.length; e < t; e++) {\n                    if (this._brackets[e].openRegExp.test(i)) return {\n                        indentAction: a.b.Indent\n                    }\n                }\n            return null\n        }\n        static _createOpenBracketRegExp(e) {\n            let t = o.t(e);\n            return /\\B/.test(t.charAt(0)) || (t = \"\\\\b\" + t), t += \"\\\\s*$\", m._safeRegExp(t)\n        }\n        static _createCloseBracketRegExp(e) {\n            let t = o.t(e);\n            return /\\B/.test(t.charAt(t.length - 1)) || (t += \"\\\\b\"), t = \"^\\\\s*\" + t, m._safeRegExp(t)\n        }\n        static _safeRegExp(e) {\n            try {\n                return new RegExp(e)\n            } catch (e) {\n                return Object(f.f)(e), null\n            }\n        }\n    }\n    var v = i(26),\n        b = i(56),\n        _ = i(97),\n        w = i(132);\n    t = function(e, t, i, n) {\n        var r, o = arguments.length,\n            s = o < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n);\n        else\n            for (var a = e.length - 1; 0 <= a; a--)(r = e[a]) && (s = (o < 3 ? r(s) : 3 < o ? r(t, i, s) : r(t, i)) || s);\n        return 3 < o && s && Object.defineProperty(t, i, s), s\n    }, i = function(e, t) {\n        return function(i, n) {\n            t(i, n, e)\n        }\n    };\n    class y {\n        constructor(e) {\n            this.languageId = e\n        }\n        affects(e) {\n            return !this.languageId || this.languageId === e\n        }\n    }\n    const C = Object(v.c)(\"language配置Service\");\n    let x = class extends r.a {\n        constructor(e, t) {\n            super(), this.configurationService = e, this.modeService = t, this.onDidChangeEmitter = this._register(new n.b), this.onDidChange = this.onDidChangeEmitter.event, this.configurations = new Map;\n            const i = new Set(Object.values(S));\n            this._register(this.configurationService.onDidChange配置(e => {\n                var t = e.change.keys.some(e => i.has(e));\n                e = e.change.overrides.filter(([, e]) => e.some(e => i.has(e))).map(([e]) => this.modeService.validateLanguageId(e));\n                if (t) this.configurations.clear(), this.onDidChangeEmitter.fire(new y(void 0));\n                else\n                    for (const t of e) t && (this.configurations.delete(t), this.onDidChangeEmitter.fire(new y(t)))\n            })), this._register(O.onDidChange(e => {\n                this.configurations.delete(e.languageId), this.onDidChangeEmitter.fire(new y(e.languageId))\n            }))\n        }\n        getLanguage配置(e) {\n            let t = this.configurations.get(e);\n            return t || (t = function(e, t, i) {\n                let n = O.getLanguage配置(e);\n                if (!n) {\n                    if (!(e = i.validateLanguageId(e))) throw new Error(\"Unexpected languageId\");\n                    n = new I(e, {})\n                }\n                return t = function(e, t) {\n                    var i = t.getValue(S.brackets, {\n                        overrideIdentifier: e\n                    });\n                    e = t.getValue(S.colorizedBracketPairs, {\n                        overrideIdentifier: e\n                    });\n                    return {\n                        brackets: k(i),\n                        colorizedBracketPairs: k(e)\n                    }\n                }(n.languageId, t), t = N([n.underlyingConfig, t]), t = new I(n.languageId, t)\n            }(e, this.configurationService, this.modeService), this.configurations.set(e, t)), t\n        }\n    };\n    x = t([i(0, b.a), i(1, _.a)], x);\n    const S = {\n        brackets: \"editor.language.brackets\",\n        colorizedBracketPairs: \"editor.language.colorizedBracketPairs\"\n    };\n\n    function k(e) {\n        if (Array.isArray(e)) return e.map(e => {\n            if (Array.isArray(e) && 2 === e.length) return [e[0], e[1]]\n        }).filter(e => !!e)\n    }\n    class L {\n        constructor(e) {\n            this.languageId = e\n        }\n    }\n    const O = new class {\n        constructor() {\n            this._entries = new Map, this._onDidChange = new n.b, this.onDidChange = this._onDidChange.event\n        }\n        register(e, t, i = 0) {\n            let n = this._entries.get(e);\n            n || (n = new E(e), this._entries.set(e, n));\n            const o = n.register(t, i);\n            return this._onDidChange.fire(new L(e)), Object(r.i)(() => {\n                o.dispose(), this._onDidChange.fire(new L(e))\n            })\n        }\n        getLanguage配置(e) {\n            let t = this._entries.get(e);\n            return (null == t ? void 0 : t.getResolved配置()) || null\n        }\n        getIndentationRules(e) {\n            return (e = this.getLanguage配置(e)) && e.indentationRules || null\n        }\n        _getElectricCharacterSupport(e) {\n            return (e = this.getLanguage配置(e)) && e.electricCharacter || null\n        }\n        getElectricCharacters(e) {\n            let t = this._getElectricCharacterSupport(e);\n            return t ? t.getElectricCharacters() : []\n        }\n        onElectricCharacter(e, t, i) {\n            t = Object(l.a)(t, i - 1);\n            let n = this._getElectricCharacterSupport(t.languageId);\n            return n ? n.onElectricCharacter(e, t, i - t.firstCharOffset) : null\n        }\n        getComments(e) {\n            return (e = this.getLanguage配置(e)) && e.comments || null\n        }\n        _getCharacterPairSupport(e) {\n            return (e = this.getLanguage配置(e)) && e.characterPair || null\n        }\n        getAutoClosingPairs(e) {\n            const t = this._getCharacterPairSupport(e);\n            return new a.a(t ? t.getAutoClosingPairs() : [])\n        }\n        getAutoCloseBeforeSet(e) {\n            let t = this._getCharacterPairSupport(e);\n            return t ? t.getAutoCloseBeforeSet() : d.DEFAULT_AUTOCLOSE_BEFORE_LANGUAGE_DEFINED\n        }\n        getSurroundingPairs(e) {\n            let t = this._getCharacterPairSupport(e);\n            return t ? t.getSurroundingPairs() : []\n        }\n        shouldAutoClosePair(e, t, i) {\n            return t = Object(l.a)(t, i - 1), d.shouldAutoClosePair(e, t, i - t.firstCharOffset)\n        }\n        getWordDefinition(e) {\n            return (e = this.getLanguage配置(e)) ? Object(s.c)(e.wordDefinition || null) : Object(s.c)(null)\n        }\n        getFoldingRules(e) {\n            return (e = this.getLanguage配置(e)) ? e.foldingRules : {}\n        }\n        getIndentRulesSupport(e) {\n            return (e = this.getLanguage配置(e)) && e.indentRulesSupport || null\n        }\n        getPrecedingValidLine(e, t, i) {\n            var n = e.getLanguageIdAtPosition(t, 0);\n            if (1 < t) {\n                let o, s = -1;\n                for (o = t - 1; 1 <= o; o--) {\n                    if (e.getLanguageIdAtPosition(o, 0) !== n) return s;\n                    var r = e.getLineContent(o);\n                    if (!i.shouldIgnore(r) && !/^\\s+$/.test(r) && \"\" !== r) return o;\n                    s = o\n                }\n            }\n            return -1\n        }\n        getInheritIndentForLine(e, t, i, n = !0) {\n            if (e < 4) return null;\n            const r = this.getIndentRulesSupport(t.getLanguageId());\n            if (!r) return null;\n            if (i <= 1) return {\n                indentation: \"\",\n                action: null\n            };\n            var s = this.getPrecedingValidLine(t, i, r);\n            if (s < 0) return null;\n            if (s < 1) return {\n                indentation: \"\",\n                action: null\n            };\n            if (e = t.getLineContent(s), r.shouldIncrease(e) || r.shouldIndentNextLine(e)) return {\n                indentation: o.x(e),\n                action: a.b.Indent,\n                line: s\n            };\n            if (r.shouldDecrease(e)) return {\n                indentation: o.x(e),\n                action: null,\n                line: s\n            };\n            if (1 === s) return {\n                indentation: o.x(t.getLineContent(s)),\n                action: null,\n                line: s\n            };\n            if (i = s - 1, !(3 & (e = r.getIndentMetadata(t.getLineContent(i)))) && 4 & e) {\n                let e = 0;\n                for (let n = i - 1; 0 < n; n--)\n                    if (!r.shouldIndentNextLine(t.getLineContent(n))) {\n                        e = n;\n                        break\n                    } return {\n                    indentation: o.x(t.getLineContent(e + 1)),\n                    action: null,\n                    line: e + 1\n                }\n            }\n            if (n) return {\n                indentation: o.x(t.getLineContent(s)),\n                action: null,\n                line: s\n            };\n            for (let e = s; 0 < e; e--) {\n                var l = t.getLineContent(e);\n                if (r.shouldIncrease(l)) return {\n                    indentation: o.x(l),\n                    action: a.b.Indent,\n                    line: e\n                };\n                if (r.shouldIndentNextLine(l)) {\n                    let i = 0;\n                    for (let n = e - 1; 0 < n; n--)\n                        if (!r.shouldIndentNextLine(t.getLineContent(e))) {\n                            i = n;\n                            break\n                        } return {\n                        indentation: o.x(t.getLineContent(i + 1)),\n                        action: null,\n                        line: i + 1\n                    }\n                }\n                if (r.shouldDecrease(l)) return {\n                    indentation: o.x(l),\n                    action: null,\n                    line: e\n                }\n            }\n            return {\n                indentation: o.x(t.getLineContent(1)),\n                action: null,\n                line: 1\n            }\n        }\n        getGoodIndentForLine(e, t, i, n, r) {\n            if (e < 4) return null;\n            const s = this.getLanguage配置(i);\n            if (!s) return null;\n            const l = this.getIndentRulesSupport(i);\n            if (!l) return null;\n            var d = this.getInheritIndentForLine(e, t, n);\n            i = t.getLineContent(n);\n            if (d) {\n                if (void 0 !== (n = d.line) && (e = s.onEnter(e, \"\", t.getLineContent(n), \"\"))) {\n                    let s = o.x(t.getLineContent(n));\n                    return e.removeText && (s = s.substring(0, s.length - e.removeText)), e.indentAction === a.b.Indent || e.indentAction === a.b.IndentOutdent ? s = r.shiftIndent(s) : e.indentAction === a.b.Outdent && (s = r.unshiftIndent(s)), l.shouldDecrease(i) && (s = r.unshiftIndent(s)), e.appendText && (s += e.appendText), o.x(s)\n                }\n                return l.shouldDecrease(i) ? d.action === a.b.Indent ? d.indentation : r.unshiftIndent(d.indentation) : d.action === a.b.Indent ? r.shiftIndent(d.indentation) : d.indentation\n            }\n            return null\n        }\n        getIndentForEnter(e, t, i, n) {\n            if (e < 4) return null;\n            t.forceTokenization(i.startLineNumber);\n            const r = t.getLineTokens(i.startLineNumber),\n                s = Object(l.a)(r, i.startColumn - 1),\n                d = s.getLineContent();\n            let c, h, u = !1;\n            if (c = 0 < s.firstCharOffset && r.getLanguageId(0) !== s.languageId ? (u = !0, d.substr(0, i.startColumn - 1 - s.firstCharOffset)) : r.getLineContent().substring(0, i.startColumn - 1), i.isEmpty()) h = d.substr(i.startColumn - 1 - s.firstCharOffset);\n            else {\n                h = this.getScopedLineTokens(t, i.endLineNumber, i.endColumn).getLineContent().substr(i.endColumn - 1 - s.firstCharOffset)\n            }\n            const p = this.getIndentRulesSupport(s.languageId);\n            if (!p) return null;\n            const g = c;\n            var f = o.x(c),\n                m = {\n                    getLineTokens: e => t.getLineTokens(e),\n                    getLanguageId: () => t.getLanguageId(),\n                    getLanguageIdAtPosition: (e, i) => t.getLanguageIdAtPosition(e, i),\n                    getLineContent: e => e === i.startLineNumber ? g : t.getLineContent(e)\n                },\n                v = o.x(r.getLineContent());\n            if (!(e = this.getInheritIndentForLine(e, m, i.startLineNumber + 1))) return {\n                beforeEnter: m = u ? v : f,\n                afterEnter: m\n            };\n            let b = u ? v : e.indentation;\n            return e.action === a.b.Indent && (b = n.shiftIndent(b)), p.shouldDecrease(h) && (b = n.unshiftIndent(b)), {\n                beforeEnter: u ? v : f,\n                afterEnter: b\n            }\n        }\n        getIndentActionForType(e, t, i, n, r) {\n            if (e < 4) return null;\n            const o = this.getScopedLineTokens(t, i.startLineNumber, i.startColumn);\n            if (o.firstCharOffset) return null;\n            const s = this.getIndentRulesSupport(o.languageId);\n            if (!s) return null;\n            const l = o.getLineContent();\n            var d = l.substr(0, i.startColumn - 1 - o.firstCharOffset);\n            let c;\n            if (i.isEmpty()) c = l.substr(i.startColumn - 1 - o.firstCharOffset);\n            else {\n                c = this.getScopedLineTokens(t, i.endLineNumber, i.endColumn).getLineContent().substr(i.endColumn - 1 - o.firstCharOffset)\n            }\n            if (s.shouldDecrease(d + c) || !s.shouldDecrease(d + n + c)) return null; {\n                if (!(i = this.getInheritIndentForLine(e, t, i.startLineNumber, !1))) return null;\n                let n = i.indentation;\n                return i.action !== a.b.Indent && (n = r.unshiftIndent(n)), n\n            }\n        }\n        getIndentMetadata(e, t) {\n            const i = this.getIndentRulesSupport(e.getLanguageId());\n            return !i || t < 1 || t > e.getLineCount() ? null : i.getIndentMetadata(e.getLineContent(t))\n        }\n        getEnterAction(e, t, i) {\n            const n = this.getScopedLineTokens(t, i.startLineNumber, i.startColumn),\n                r = this.getLanguage配置(n.languageId);\n            if (!r) return null;\n            const o = n.getLineContent();\n            var s = o.substr(0, i.startColumn - 1 - n.firstCharOffset);\n            let l;\n            if (i.isEmpty()) l = o.substr(i.startColumn - 1 - n.firstCharOffset);\n            else {\n                l = this.getScopedLineTokens(t, i.endLineNumber, i.endColumn).getLineContent().substr(i.endColumn - 1 - n.firstCharOffset)\n            }\n            let d = \"\";\n            if (1 < i.startLineNumber && 0 === n.firstCharOffset) {\n                const e = this.getScopedLineTokens(t, i.startLineNumber - 1);\n                e.languageId === n.languageId && (d = e.getLineContent())\n            }\n            if (!(e = r.onEnter(e, d, s, l))) return null;\n            s = e.indentAction;\n            let c = e.appendText;\n            e = e.removeText || 0, c ? s === a.b.Indent && (c = \"\\t\" + c) : c = s === a.b.Indent || s === a.b.IndentOutdent ? \"\\t\" : \"\";\n            let h = this.getIndentationAtPosition(t, i.startLineNumber, i.startColumn);\n            return e && (h = h.substring(0, h.length - e)), {\n                indentAction: s,\n                appendText: c,\n                removeText: e,\n                indentation: h\n            }\n        }\n        getIndentationAtPosition(e, t, i) {\n            t = e.getLineContent(t);\n            let n = o.x(t);\n            return n.length > i - 1 && (n = n.substring(0, i - 1)), n\n        }\n        getScopedLineTokens(e, t, i) {\n            e.forceTokenization(t);\n            var n = e.getLineTokens(t);\n            i = void 0 === i ? e.getLineMaxColumn(t) - 1 : i - 1;\n            return Object(l.a)(n, i)\n        }\n    };\n    class E {\n        constructor(e) {\n            this.languageId = e, this._resolved = null, this._entries = [], this._order = 0, this._resolved = null\n        }\n        register(e, t) {\n            const i = new D(e, t, ++this._order);\n            return this._entries.push(i), this._resolved = null, Object(r.i)(() => {\n                for (let e = 0; e < this._entries.length; e++)\n                    if (this._entries[e] === i) {\n                        this._entries.splice(e, 1), this._resolved = null;\n                        break\n                    }\n            })\n        }\n        getResolved配置() {\n            var e;\n            return this._resolved || (e = this._resolve()) && (this._resolved = new I(this.languageId, e)), this._resolved\n        }\n        _resolve() {\n            return 0 === this._entries.length ? null : (this._entries.sort(D.cmp), N(this._entries.map(e => e.configuration)))\n        }\n    }\n\n    function N(e) {\n        let t = {\n            comments: void 0,\n            brackets: void 0,\n            wordPattern: void 0,\n            indentationRules: void 0,\n            onEnterRules: void 0,\n            autoClosingPairs: void 0,\n            surroundingPairs: void 0,\n            autoCloseBefore: void 0,\n            folding: void 0,\n            colorizedBracketPairs: void 0,\n            __electricCharacterSupport: void 0\n        };\n        for (const i of e) t = {\n            comments: i.comments || t.comments,\n            brackets: i.brackets || t.brackets,\n            wordPattern: i.wordPattern || t.wordPattern,\n            indentationRules: i.indentationRules || t.indentationRules,\n            onEnterRules: i.onEnterRules || t.onEnterRules,\n            autoClosingPairs: i.autoClosingPairs || t.autoClosingPairs,\n            surroundingPairs: i.surroundingPairs || t.surroundingPairs,\n            autoCloseBefore: i.autoCloseBefore || t.autoCloseBefore,\n            folding: i.folding || t.folding,\n            colorizedBracketPairs: i.colorizedBracketPairs || t.colorizedBracketPairs,\n            __electricCharacterSupport: i.__electricCharacterSupport || t.__electricCharacterSupport\n        };\n        return t\n    }\n    class D {\n        constructor(e, t, i) {\n            this.configuration = e, this.priority = t, this.order = i\n        }\n        static cmp(e, t) {\n            return e.priority === t.priority ? e.order - t.order : e.priority - t.priority\n        }\n    }\n    class I {\n        constructor(e, t) {\n            this.languageId = e, this.underlyingConfig = t, this._brackets = null, this._electricCharacter = null, this._onEnterSupport = this.underlyingConfig.brackets || this.underlyingConfig.indentationRules || this.underlyingConfig.onEnterRules ? new m(this.underlyingConfig) : null, this.comments = I._handleComments(this.underlyingConfig), this.characterPair = new d(this.underlyingConfig), this.wordDefinition = this.underlyingConfig.wordPattern || s.a, this.indentationRules = this.underlyingConfig.indentationRules, this.underlyingConfig.indentationRules ? this.indentRulesSupport = new g(this.underlyingConfig.indentationRules) : this.indentRulesSupport = null, this.foldingRules = this.underlyingConfig.folding || {}\n        }\n        getWordDefinition() {\n            return Object(s.c)(this.wordDefinition)\n        }\n        get brackets() {\n            return !this._brackets && this.underlyingConfig.brackets && (this._brackets = new h.b(this.languageId, this.underlyingConfig.brackets)), this._brackets\n        }\n        get electricCharacter() {\n            return this._electricCharacter || (this._electricCharacter = new u(this.brackets)), this._electricCharacter\n        }\n        onEnter(e, t, i, n) {\n            return this._onEnterSupport ? this._onEnterSupport.onEnter(e, t, i, n) : null\n        }\n        static _handleComments(e) {\n            var t = e.comments;\n            if (!t) return null;\n            let i = {};\n            return t.lineComment && (i.lineCommentToken = t.lineComment), t.blockComment && ([e, t] = t.blockComment, i.blockCommentStartToken = e, i.blockCommentEndToken = t), i\n        }\n    }\n    Object(w.b)(C, x)\n}, function(e, t, i) {\n    \"use strict\";\n    i.d(t, \"a\", (function() {\n        return o\n    }));\n    var n = i(155),\n        r = i(17);\n    const o = new class {\n        constructor() {\n            this.data = new Map\n        }\n        add(e, t) {\n            n.a(r.k(e)), n.a(r.j(t)), n.a(!this.data.has(e), \"There is already an extension with this id\"), this.data.set(e, t)\n        }\n        as(e) {\n            return this.data.get(e) || null\n        }\n    }\n}, function(e, t, i) {\n    \"use strict\";\n    i.d(t, \"a\", (function() {\n        return o\n    })), i.d(t, \"b\", (function() {\n        return s\n    })), i.d(t, \"e\", (function() {\n        return a\n    })), i.d(t, \"c\", (function() {\n        return l\n    })), i.d(t, \"f\", (function() {\n        return d\n    })), i.d(t, \"d\", (function() {\n        return c\n    })), i.d(t, \"g\", (function() {\n        return h\n    }));\n    const n = \"undefined\" != typeof Buffer;\n    let r;\n    class o {\n        constructor(e) {\n            this.buffer = e, this.byteLength = this.buffer.byteLength\n        }\n        static wrap(e) {\n            return n && !Buffer.isBuffer(e) && (e = Buffer.from(e.buffer, e.byteOffset, e.byteLength)), new o(e)\n        }\n        toString() {\n            return n ? this.buffer.toString() : (r = r || new TextDecoder, r.decode(this.buffer))\n        }\n    }\n\n    function s(e, t) {\n        return e[t + 0] << 0 >>> 0 | e[t + 1] << 8 >>> 0\n    }\n\n    function a(e, t, i) {\n        e[i + 0] = 255 & t, e[i + 1] = 255 & (t >>>= 8)\n    }\n\n    function l(e, t) {\n        return e[t] * Math.pow(2, 24) + e[t + 1] * Math.pow(2, 16) + e[t + 2] * Math.pow(2, 8) + e[t + 3]\n    }\n\n    function d(e, t, i) {\n        e[i + 3] = t, e[i + 2] = t >>>= 8, e[i + 1] = t >>>= 8, e[i] = t >>>= 8\n    }\n\n    function c(e, t) {\n        return e[t]\n    }\n\n    function h(e, t, i) {\n        e[i] = t\n    }\n}, function(e, t) {\n    e.exports = require(\"electron-log\")\n}, function(e, t) {\n    e.exports = require(\"moment\")\n}, function(e, t, i) {\n    \"use strict\";\n    i.d(t, \"i\", (function() {\n        return m\n    })), i.d(t, \"e\", (function() {\n        return v\n    })), i.d(t, \"d\", (function() {\n        return b\n    })), i.d(t, \"g\", (function() {\n        return _\n    })), i.d(t, \"f\", (function() {\n        return w\n    })), i.d(t, \"b\", (function() {\n        return y\n    })), i.d(t, \"a\", (function() {\n        return C\n    })), i.d(t, \"c\", (function() {\n        return x\n    })), i.d(t, \"h\", (function() {\n        return S\n    }));\n    var n = i(9);\n    let r;\n    if (void 0 !== n.b.vscode && void 0 !== n.b.vscode.process) {\n        const e = n.b.vscode.process;\n        r = {\n            get platform() {\n                return e.platform\n            },\n            get arch() {\n                return e.arch\n            },\n            get env() {\n                return e.env\n            },\n            cwd: () => e.cwd(),\n            nextTick: e => Object(n.j)(e)\n        }\n    } else r = \"undefined\" != typeof process ? {\n        get platform() {\n            return process.platform\n        },\n        get arch() {\n            return process.arch\n        },\n        get env() {\n            return process.env\n        },\n        cwd: () => process.env.VSCODE_CWD || process.cwd(),\n        nextTick: e => process.nextTick(e)\n    } : {\n        get platform() {\n            return n.i ? \"win32\" : n.f ? \"darwin\" : \"linux\"\n        },\n        get arch() {},\n        nextTick: e => Object(n.j)(e),\n        get env() {\n            return {}\n        },\n        cwd: () => \"/\"\n    };\n    const o = r.cwd,\n        s = r.env;\n    i = r.platform;\n    const a = 47,\n        l = 92;\n    class d extends Error {\n        constructor(e, t, i) {\n            let n;\n            \"string\" == typeof t && 0 === t.indexOf(\"not \") ? (n = \"must not be\", t = t.replace(/^not /, \"\")) : n = \"must be\";\n            var r = -1 !== e.indexOf(\".\") ? \"property\" : \"argument\";\n            t = `The \"${e}\" ${r} ${n} of type ${t}`;\n            super(t += \". Received type \" + typeof i), this.code = \"ERR_INVALID_ARG_TYPE\"\n        }\n    }\n\n    function c(e, t) {\n        if (\"string\" != typeof e) throw new d(t, \"string\", e)\n    }\n\n    function h(e) {\n        return e === a || e === l\n    }\n\n    function u(e) {\n        return e === a\n    }\n\n    function p(e) {\n        return e >= 65 && e <= 90 || e >= 97 && e <= 122\n    }\n\n    function g(e, t, i, n) {\n        let r = \"\",\n            o = 0,\n            s = -1,\n            l = 0,\n            d = 0;\n        for (let h = 0; h <= e.length; ++h) {\n            if (h < e.length) d = e.charCodeAt(h);\n            else {\n                if (n(d)) break;\n                d = a\n            }\n            if (n(d)) {\n                if (s !== h - 1 && 1 !== l)\n                    if (2 === l) {\n                        if (r.length < 2 || 2 !== o || 46 !== r.charCodeAt(r.length - 1) || 46 !== r.charCodeAt(r.length - 2)) {\n                            if (2 < r.length) {\n                                var c = r.lastIndexOf(i);\n                                o = -1 === c ? (r = \"\", 0) : (r = r.slice(0, c), r.length - 1 - r.lastIndexOf(i)), s = h, l = 0;\n                                continue\n                            }\n                            if (0 !== r.length) {\n                                r = \"\", o = 0, s = h, l = 0;\n                                continue\n                            }\n                        }\n                        t && (r += 0 < r.length ? i + \"..\" : \"..\", o = 2)\n                    } else 0 < r.length ? r += `${i}${e.slice(s+1,h)}` : r = e.slice(s + 1, h), o = h - s - 1;\n                s = h, l = 0\n            } else 46 === d && -1 !== l ? ++l : l = -1\n        }\n        return r\n    }\n\n    function f(e, t) {\n        if (null === t || \"object\" != typeof t) throw new d(\"pathObject\", \"Object\", t);\n        var i = t.dir || t.root,\n            n = t.base || `${t.name||\"\"}${t.ext||\"\"}`;\n        return i ? i === t.root ? `${i}${n}` : `${i}${e}${n}` : n\n    }\n    const m = {\n            resolve(...e) {\n                let t = \"\",\n                    i = \"\",\n                    n = !1;\n                for (let u = e.length - 1; - 1 <= u; u--) {\n                    let g;\n                    if (0 <= u) {\n                        if (g = e[u], c(g, \"path\"), 0 === g.length) continue\n                    } else 0 === t.length ? g = o() : (g = s[\"=\" + t] || o(), (void 0 === g || g.slice(0, 2).toLowerCase() !== t.toLowerCase() && g.charCodeAt(2) === l) && (g = t + \"\\\\\"));\n                    var r = g.length;\n                    let f = 0,\n                        m = \"\",\n                        v = !1;\n                    var a = g.charCodeAt(0);\n                    if (1 === r) h(a) && (f = 1, v = !0);\n                    else if (h(a))\n                        if (v = !0, h(g.charCodeAt(1))) {\n                            let e = 2,\n                                t = e;\n                            for (; e < r && !h(g.charCodeAt(e));) e++;\n                            if (e < r && e !== t) {\n                                var d = g.slice(t, e);\n                                for (t = e; e < r && h(g.charCodeAt(e));) e++;\n                                if (e < r && e !== t) {\n                                    for (t = e; e < r && !h(g.charCodeAt(e));) e++;\n                                    e !== r && e === t || (m = `\\\\\\\\${d}\\\\${g.slice(t,e)}`, f = e)\n                                }\n                            }\n                        } else f = 1;\n                    else p(a) && 58 === g.charCodeAt(1) && (m = g.slice(0, 2), (f = 2) < r && h(g.charCodeAt(2)) && (v = !0, f = 3));\n                    if (0 < m.length)\n                        if (0 < t.length) {\n                            if (m.toLowerCase() !== t.toLowerCase()) continue\n                        } else t = m;\n                    if (n) {\n                        if (0 < t.length) break\n                    } else if (i = `${g.slice(f)}\\\\${i}`, n = v, v && 0 < t.length) break\n                }\n                return i = g(i, !n, \"\\\\\", h), n ? `${t}\\\\${i}` : `${t}${i}` || \".\"\n            },\n            normalize(e) {\n                c(e, \"path\");\n                var t = e.length;\n                if (0 === t) return \".\";\n                let i, n = 0,\n                    r = !1;\n                var o = e.charCodeAt(0);\n                if (1 === t) return u(o) ? \"\\\\\" : e;\n                if (h(o))\n                    if (r = !0, h(e.charCodeAt(1))) {\n                        let r = 2,\n                            o = r;\n                        for (; r < t && !h(e.charCodeAt(r));) r++;\n                        if (r < t && r !== o) {\n                            var s = e.slice(o, r);\n                            for (o = r; r < t && h(e.charCodeAt(r));) r++;\n                            if (r < t && r !== o) {\n                                for (o = r; r < t && !h(e.charCodeAt(r));) r++;\n                                if (r === t) return `\\\\\\\\${s}\\\\${e.slice(o)}\\\\`;\n                                r !== o && (i = `\\\\\\\\${s}\\\\${e.slice(o,r)}`, n = r)\n                            }\n                        }\n                    } else n = 1;\n                else p(o) && 58 === e.charCodeAt(1) && (i = e.slice(0, 2), (n = 2) < t && h(e.charCodeAt(2)) && (r = !0, n = 3));\n                let a = n < t ? g(e.slice(n), !r, \"\\\\\", h) : \"\";\n                return 0 !== a.length || r || (a = \".\"), 0 < a.length && h(e.charCodeAt(t - 1)) && (a += \"\\\\\"), void 0 === i ? r ? \"\\\\\" + a : a : r ? `${i}\\\\${a}` : `${i}${a}`\n            },\n            isAbsolute(e) {\n                c(e, \"path\");\n                var t = e.length;\n                if (0 === t) return !1;\n                var i = e.charCodeAt(0);\n                return h(i) || 2 < t && p(i) && 58 === e.charCodeAt(1) && h(e.charCodeAt(2))\n            },\n            join(...e) {\n                if (0 === e.length) return \".\";\n                let t, i;\n                for (let r = 0; r < e.length; ++r) {\n                    var n = e[r];\n                    c(n, \"path\"), 0 < n.length && (void 0 === t ? t = i = n : t += \"\\\\\" + n)\n                }\n                if (void 0 === t) return \".\";\n                let r = !0,\n                    o = 0;\n                var s;\n                if (\"string\" == typeof i && h(i.charCodeAt(0)) && (++o, 1 < (s = i.length) && h(i.charCodeAt(1)) && (++o, 2 < s && (h(i.charCodeAt(2)) ? ++o : r = !1))), r) {\n                    for (; o < t.length && h(t.charCodeAt(o));) o++;\n                    2 <= o && (t = \"\\\\\" + t.slice(o))\n                }\n                return m.normalize(t)\n            },\n            relative(e, t) {\n                if (c(e, \"from\"), c(t, \"to\"), e === t) return \"\";\n                const i = m.resolve(e),\n                    n = m.resolve(t);\n                if (i === n) return \"\";\n                if ((e = i.toLowerCase()) === (t = n.toLowerCase())) return \"\";\n                let r = 0;\n                for (; r < e.length && e.charCodeAt(r) === l;) r++;\n                let o = e.length;\n                for (; o - 1 > r && e.charCodeAt(o - 1) === l;) o--;\n                var s = o - r;\n                let a = 0;\n                for (; a < t.length && t.charCodeAt(a) === l;) a++;\n                let d = t.length;\n                for (; d - 1 > a && t.charCodeAt(d - 1) === l;) d--;\n                var h = d - a,\n                    u = s < h ? s : h;\n                let p = -1,\n                    g = 0;\n                for (; g < u; g++) {\n                    var f = e.charCodeAt(r + g);\n                    if (f !== t.charCodeAt(a + g)) break;\n                    f === l && (p = g)\n                }\n                if (g !== u) {\n                    if (-1 === p) return n\n                } else {\n                    if (u < h) {\n                        if (t.charCodeAt(a + g) === l) return n.slice(a + g + 1);\n                        if (2 === g) return n.slice(a + g)\n                    }\n                    u < s && (e.charCodeAt(r + g) === l ? p = g : 2 === g && (p = 3)), -1 === p && (p = 0)\n                }\n                let v = \"\";\n                for (g = r + p + 1; g <= o; ++g) g !== o && e.charCodeAt(g) !== l || (v += 0 === v.length ? \"..\" : \"\\\\..\");\n                return a += p, 0 < v.length ? `${v}${n.slice(a,d)}` : (n.charCodeAt(a) === l && ++a, n.slice(a, d))\n            },\n            toNamespacedPath(e) {\n                if (\"string\" != typeof e) return e;\n                if (0 === e.length) return \"\";\n                const t = m.resolve(e);\n                if (t.length <= 2) return e;\n                if (t.charCodeAt(0) === l) {\n                    if (t.charCodeAt(1) === l) {\n                        var i = t.charCodeAt(2);\n                        if (63 !== i && 46 !== i) return \"\\\\\\\\?\\\\UNC\\\\\" + t.slice(2)\n                    }\n                } else if (p(t.charCodeAt(0)) && 58 === t.charCodeAt(1) && t.charCodeAt(2) === l) return \"\\\\\\\\?\\\\\" + t;\n                return e\n            },\n            dirname(e) {\n                c(e, \"path\");\n                var t = e.length;\n                if (0 === t) return \".\";\n                let i = -1,\n                    n = 0;\n                var r = e.charCodeAt(0);\n                if (1 === t) return h(r) ? e : \".\";\n                if (h(r)) {\n                    if (i = n = 1, h(e.charCodeAt(1))) {\n                        let r = 2,\n                            o = r;\n                        for (; r < t && !h(e.charCodeAt(r));) r++;\n                        if (r < t && r !== o) {\n                            for (o = r; r < t && h(e.charCodeAt(r));) r++;\n                            if (r < t && r !== o) {\n                                for (o = r; r < t && !h(e.charCodeAt(r));) r++;\n                                if (r === t) return e;\n                                r !== o && (i = n = r + 1)\n                            }\n                        }\n                    }\n                } else p(r) && 58 === e.charCodeAt(1) && (i = 2 < t && h(e.charCodeAt(2)) ? 3 : 2, n = i);\n                let o = -1,\n                    s = !0;\n                for (let i = t - 1; i >= n; --i)\n                    if (h(e.charCodeAt(i))) {\n                        if (!s) {\n                            o = i;\n                            break\n                        }\n                    } else s = !1;\n                if (-1 === o) {\n                    if (-1 === i) return \".\";\n                    o = i\n                }\n                return e.slice(0, o)\n            },\n            basename(e, t) {\n                void 0 !== t && c(t, \"ext\"), c(e, \"path\");\n                let i, n = 0,\n                    r = -1,\n                    o = !0;\n                if (2 <= e.length && p(e.charCodeAt(0)) && 58 === e.charCodeAt(1) && (n = 2), void 0 !== t && 0 < t.length && t.length <= e.length) {\n                    if (t === e) return \"\";\n                    let a = t.length - 1,\n                        l = -1;\n                    for (i = e.length - 1; i >= n; --i) {\n                        var s = e.charCodeAt(i);\n                        if (h(s)) {\n                            if (!o) {\n                                n = i + 1;\n                                break\n                            }\n                        } else -1 === l && (o = !1, l = i + 1), 0 <= a && (s === t.charCodeAt(a) ? -1 == --a && (r = i) : (a = -1, r = l))\n                    }\n                    return n === r ? r = l : -1 === r && (r = e.length), e.slice(n, r)\n                }\n                for (i = e.length - 1; i >= n; --i)\n                    if (h(e.charCodeAt(i))) {\n                        if (!o) {\n                            n = i + 1;\n                            break\n                        }\n                    } else -1 === r && (o = !1, r = i + 1);\n                return -1 === r ? \"\" : e.slice(n, r)\n            },\n            extname(e) {\n                c(e, \"path\");\n                let t = 0,\n                    i = -1,\n                    n = 0,\n                    r = -1,\n                    o = !0,\n                    s = 0;\n                2 <= e.length && 58 === e.charCodeAt(1) && p(e.charCodeAt(0)) && (t = n = 2);\n                for (let l = e.length - 1; l >= t; --l) {\n                    var a = e.charCodeAt(l);\n                    if (h(a)) {\n                        if (o) continue;\n                        n = l + 1;\n                        break\n                    } - 1 === r && (o = !1, r = l + 1), 46 === a ? -1 === i ? i = l : 1 !== s && (s = 1) : -1 !== i && (s = -1)\n                }\n                return -1 === i || -1 === r || 0 === s || 1 === s && i === r - 1 && i === n + 1 ? \"\" : e.slice(i, r)\n            },\n            format: f.bind(null, \"\\\\\"),\n            parse(e) {\n                c(e, \"path\");\n                const t = {\n                    root: \"\",\n                    dir: \"\",\n                    base: \"\",\n                    ext: \"\",\n                    name: \"\"\n                };\n                if (0 === e.length) return t;\n                var i = e.length;\n                let n = 0,\n                    r = e.charCodeAt(0);\n                if (1 === i) return h(r) ? t.root = t.dir = e : t.base = t.name = e, t;\n                if (h(r)) {\n                    if (n = 1, h(e.charCodeAt(1))) {\n                        let t = 2,\n                            r = t;\n                        for (; t < i && !h(e.charCodeAt(t));) t++;\n                        if (t < i && t !== r) {\n                            for (r = t; t < i && h(e.charCodeAt(t));) t++;\n                            if (t < i && t !== r) {\n                                for (r = t; t < i && !h(e.charCodeAt(t));) t++;\n                                t === i ? n = t : t !== r && (n = t + 1)\n                            }\n                        }\n                    }\n                } else if (p(r) && 58 === e.charCodeAt(1)) {\n                    if (i <= 2) return t.root = t.dir = e, t;\n                    if (n = 2, h(e.charCodeAt(2))) {\n                        if (3 === i) return t.root = t.dir = e, t;\n                        n = 3\n                    }\n                }\n                0 < n && (t.root = e.slice(0, n));\n                let o = -1,\n                    s = n,\n                    a = -1,\n                    l = !0,\n                    d = e.length - 1,\n                    u = 0;\n                for (; d >= n; --d) {\n                    if (r = e.charCodeAt(d), h(r)) {\n                        if (l) continue;\n                        s = d + 1;\n                        break\n                    } - 1 === a && (l = !1, a = d + 1), 46 === r ? -1 === o ? o = d : 1 !== u && (u = 1) : -1 !== o && (u = -1)\n                }\n                return -1 !== a && (-1 === o || 0 === u || 1 === u && o === a - 1 && o === s + 1 ? t.base = t.name = e.slice(s, a) : (t.name = e.slice(s, o), t.base = e.slice(s, a), t.ext = e.slice(o, a))), t.dir = 0 < s && s !== n ? e.slice(0, s - 1) : t.root, t\n            },\n            sep: \"\\\\\",\n            delimiter: \";\",\n            win32: null,\n            posix: null\n        },\n        v = {\n            resolve(...e) {\n                let t = \"\",\n                    i = !1;\n                for (let n = e.length - 1; - 1 <= n && !i; n--) {\n                    const r = 0 <= n ? e[n] : o();\n                    c(r, \"path\"), 0 !== r.length && (t = `${r}/${t}`, i = r.charCodeAt(0) === a)\n                }\n                return t = g(t, !i, \"/\", u), i ? \"/\" + t : 0 < t.length ? t : \".\"\n            },\n            normalize(e) {\n                if (c(e, \"path\"), 0 === e.length) return \".\";\n                var t = e.charCodeAt(0) === a,\n                    i = e.charCodeAt(e.length - 1) === a;\n                return 0 === (e = g(e, !t, \"/\", u)).length ? t ? \"/\" : i ? \"./\" : \".\" : (i && (e += \"/\"), t ? \"/\" + e : e)\n            },\n            isAbsolute: e => (c(e, \"path\"), 0 < e.length && e.charCodeAt(0) === a),\n            join(...e) {\n                if (0 === e.length) return \".\";\n                let t;\n                for (let n = 0; n < e.length; ++n) {\n                    var i = e[n];\n                    c(i, \"path\"), 0 < i.length && (void 0 === t ? t = i : t += \"/\" + i)\n                }\n                return void 0 === t ? \".\" : v.normalize(t)\n            },\n            relative(e, t) {\n                if (c(e, \"from\"), c(t, \"to\"), e === t) return \"\";\n                if ((e = v.resolve(e)) === (t = v.resolve(t))) return \"\";\n                var i = e.length,\n                    n = i - 1,\n                    r = t.length - 1,\n                    o = n < r ? n : r;\n                let s = -1,\n                    l = 0;\n                for (; l < o; l++) {\n                    var d = e.charCodeAt(1 + l);\n                    if (d !== t.charCodeAt(1 + l)) break;\n                    d === a && (s = l)\n                }\n                if (l === o)\n                    if (o < r) {\n                        if (t.charCodeAt(1 + l) === a) return t.slice(1 + l + 1);\n                        if (0 === l) return t.slice(1 + l)\n                    } else o < n && (e.charCodeAt(1 + l) === a ? s = l : 0 === l && (s = 0));\n                let h = \"\";\n                for (l = 1 + s + 1; l <= i; ++l) l !== i && e.charCodeAt(l) !== a || (h += 0 === h.length ? \"..\" : \"/..\");\n                return `${h}${t.slice(1+s)}`\n            },\n            toNamespacedPath: e => e,\n            dirname(e) {\n                if (c(e, \"path\"), 0 === e.length) return \".\";\n                var t = e.charCodeAt(0) === a;\n                let i = -1,\n                    n = !0;\n                for (let t = e.length - 1; 1 <= t; --t)\n                    if (e.charCodeAt(t) === a) {\n                        if (!n) {\n                            i = t;\n                            break\n                        }\n                    } else n = !1;\n                return -1 === i ? t ? \"/\" : \".\" : t && 1 === i ? \"//\" : e.slice(0, i)\n            },\n            basename(e, t) {\n                void 0 !== t && c(t, \"ext\"), c(e, \"path\");\n                let i, n = 0,\n                    r = -1,\n                    o = !0;\n                if (void 0 !== t && 0 < t.length && t.length <= e.length) {\n                    if (t === e) return \"\";\n                    let l = t.length - 1,\n                        d = -1;\n                    for (i = e.length - 1; 0 <= i; --i) {\n                        var s = e.charCodeAt(i);\n                        if (s === a) {\n                            if (!o) {\n                                n = i + 1;\n                                break\n                            }\n                        } else -1 === d && (o = !1, d = i + 1), 0 <= l && (s === t.charCodeAt(l) ? -1 == --l && (r = i) : (l = -1, r = d))\n                    }\n                    return n === r ? r = d : -1 === r && (r = e.length), e.slice(n, r)\n                }\n                for (i = e.length - 1; 0 <= i; --i)\n                    if (e.charCodeAt(i) === a) {\n                        if (!o) {\n                            n = i + 1;\n                            break\n                        }\n                    } else -1 === r && (o = !1, r = i + 1);\n                return -1 === r ? \"\" : e.slice(n, r)\n            },\n            extname(e) {\n                c(e, \"path\");\n                let t = -1,\n                    i = 0,\n                    n = -1,\n                    r = !0,\n                    o = 0;\n                for (let l = e.length - 1; 0 <= l; --l) {\n                    var s = e.charCodeAt(l);\n                    if (s === a) {\n                        if (r) continue;\n                        i = l + 1;\n                        break\n                    } - 1 === n && (r = !1, n = l + 1), 46 === s ? -1 === t ? t = l : 1 !== o && (o = 1) : -1 !== t && (o = -1)\n                }\n                return -1 === t || -1 === n || 0 === o || 1 === o && t === n - 1 && t === i + 1 ? \"\" : e.slice(t, n)\n            },\n            format: f.bind(null, \"/\"),\n            parse(e) {\n                c(e, \"path\");\n                const t = {\n                    root: \"\",\n                    dir: \"\",\n                    base: \"\",\n                    ext: \"\",\n                    name: \"\"\n                };\n                if (0 === e.length) return t;\n                var i = e.charCodeAt(0) === a;\n                let n;\n                n = i ? (t.root = \"/\", 1) : 0;\n                let r = -1,\n                    o = 0,\n                    s = -1,\n                    l = !0,\n                    d = e.length - 1,\n                    h = 0;\n                for (; d >= n; --d) {\n                    var u = e.charCodeAt(d);\n                    if (u === a) {\n                        if (l) continue;\n                        o = d + 1;\n                        break\n                    } - 1 === s && (l = !1, s = d + 1), 46 === u ? -1 === r ? r = d : 1 !== h && (h = 1) : -1 !== r && (h = -1)\n                }\n                if (-1 !== s) {\n                    const n = 0 === o && i ? 1 : o; - 1 === r || 0 === h || 1 === h && r === s - 1 && r === o + 1 ? t.base = t.name = e.slice(n, s) : (t.name = e.slice(n, r), t.base = e.slice(n, s), t.ext = e.slice(r, s))\n                }\n                return 0 < o ? t.dir = e.slice(0, o - 1) : i && (t.dir = \"/\"), t\n            },\n            sep: \"/\",\n            delimiter: \":\",\n            win32: null,\n            posix: null\n        };\n    v.win32 = m.win32 = m, v.posix = m.posix = v;\n    const b = (\"win32\" === i ? m : v).normalize,\n        _ = (\"win32\" === i ? m : v).resolve,\n        w = (\"win32\" === i ? m : v).relative,\n        y = (\"win32\" === i ? m : v).dirname,\n        C = (\"win32\" === i ? m : v).basename,\n        x = (\"win32\" === i ? m : v).extname,\n        S = (\"win32\" === i ? m : v).sep\n}, function(e, t, i) {\n    \"use strict\";\n    i.d(t, \"f\", (function() {\n        return p\n    })), i.d(t, \"b\", (function() {\n        return g\n    })), i.d(t, \"a\", (function() {\n        return f\n    })), i.d(t, \"d\", (function() {\n        return m\n    })), i.d(t, \"e\", (function() {\n        return v\n    })), i.d(t, \"c\", (function() {\n        return b\n    }));\n    var n = i(71),\n        r = i(33),\n        o = i(2),\n        s = i(43),\n        a = i(4),\n        l = i(79),\n        d = i(46),\n        c = i(13),\n        h = i(26),\n        u = i(23);\n    t = function(e, t, i, n) {\n        var r, o = arguments.length,\n            s = o < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n);\n        else\n            for (var a = e.length - 1; 0 <= a; a--)(r = e[a]) && (s = (o < 3 ? r(s) : 3 < o ? r(t, i, s) : r(t, i)) || s);\n        return 3 < o && s && Object.defineProperty(t, i, s), s\n    }, i = function(e, t) {\n        return function(i, n) {\n            t(i, n, e)\n        }\n    };\n\n    function p(e) {\n        return void 0 !== e.command\n    }\n    class g {\n        constructor(e) {\n            this.id = g._idPool++, this._debugName = e\n        }\n    }\n    g._idPool = 0, g.CommandPalette = new g(\"CommandPalette\"), g.EditorContext = new g(\"EditorContext\"), g.SimpleEditorContext = new g(\"SimpleEditorContext\"), g.EditorContextCopy = new g(\"EditorContextCopy\"), g.EditorContextPeek = new g(\"EditorContextPeek\"), g.MenubarEditMenu = new g(\"MenubarEditMenu\"), g.MenubarCopy = new g(\"MenubarCopy\"), g.MenubarGoMenu = new g(\"MenubarGoMenu\"), g.MenubarSelectionMenu = new g(\"MenubarSelectionMenu\"), g.InlineCompletionsActions = new g(\"InlineCompletionsActions\");\n    const f = Object(h.c)(\"menuService\"),\n        m = new class {\n            constructor() {\n                this._commands = new Map, this._menuItems = new Map, this._onDidChangeMenu = new o.b, this.onDidChangeMenu = this._onDidChangeMenu.event, this._commandPaletteChangeEvent = {\n                    has: e => e === g.CommandPalette\n                }\n            }\n            addCommand(e) {\n                return this.addCommands(s.a.single(e))\n            }\n            addCommands(e) {\n                for (const t of e) this._commands.set(t.id, t);\n                return this._onDidChangeMenu.fire(this._commandPaletteChangeEvent), Object(a.i)(() => {\n                    let t = !1;\n                    for (const i of e) t = this._commands.delete(i.id) || t;\n                    t && this._onDidChangeMenu.fire(this._commandPaletteChangeEvent)\n                })\n            }\n            getCommand(e) {\n                return this._commands.get(e)\n            }\n            getCommands() {\n                const e = new Map;\n                return this._commands.forEach((t, i) => e.set(i, t)), e\n            }\n            appendMenuItem(e, t) {\n                return this.appendMenuItems(s.a.single({\n                    id: e,\n                    item: t\n                }))\n            }\n            appendMenuItems(e) {\n                const t = new Set,\n                    i = new l.a;\n                for (var {\n                        id: n,\n                        item: r\n                    } of e) {\n                    let e = this._menuItems.get(n);\n                    e || (e = new l.a, this._menuItems.set(n, e)), i.push(e.push(r)), t.add(n)\n                }\n                return this._onDidChangeMenu.fire(t), Object(a.i)(() => {\n                    if (0 < i.size) {\n                        for (var e of i) e();\n                        this._onDidChangeMenu.fire(t), i.clear()\n                    }\n                })\n            }\n            getMenuItems(e) {\n                let t;\n                return t = this._menuItems.has(e) ? [...this._menuItems.get(e)] : [], e === g.CommandPalette && this._appendImplicitItems(t), t\n            }\n            _appendImplicitItems(e) {\n                const t = new Set;\n                for (const i of e) p(i) && (t.add(i.command.id), i.alt && t.add(i.alt.id));\n                this._commands.forEach((i, n) => {\n                    t.has(n) || e.push({\n                        command: i\n                    })\n                })\n            }\n        };\n    class v extends n.e {\n        constructor(e, t, i, n) {\n            super(\"submenuitem.\" + e.submenu.id, \"string\" == typeof e.title ? e.title : e.title.value, [], \"submenu\"), this.item = e, this._menuService = t, this._contextKeyService = i, this._options = n\n        }\n        get actions() {\n            const e = [],\n                t = this._menuService.createMenu(this.item.submenu, this._contextKeyService);\n            var i, r = t.getActions(this._options);\n            for ([, i] of (t.dispose(), r)) 0 < i.length && (e.push(...i), e.push(new n.d));\n            return e.length && e.pop(), e\n        }\n    }\n    let b = class e {\n        constructor(t, i, n, o, s) {\n            var a;\n            this._commandService = s, this.id = t.id, this.label = null != n && n.renderShortTitle && t.shortTitle ? \"string\" == typeof t.shortTitle ? t.shortTitle : t.shortTitle.value : \"string\" == typeof t.title ? t.title : t.title.value, this.tooltip = null !== (a = \"string\" == typeof t.tooltip ? t.tooltip : null === (a = t.tooltip) || void 0 === a ? void 0 : a.value) && void 0 !== a ? a : \"\", this.enabled = !t.precondition || o.contextMatchesRules(t.precondition), this.checked = void 0, t.toggled && (a = t.toggled.condition ? t.toggled : {\n                condition: t.toggled\n            }, this.checked = o.contextMatchesRules(a.condition), this.checked && a.tooltip && (this.tooltip = \"string\" == typeof a.tooltip ? a.tooltip : a.tooltip.value), a.title && (this.label = \"string\" == typeof a.title ? a.title : a.title.value)), this.item = t, this.alt = i ? new e(i, void 0, n, o, s) : void 0, this._options = n, u.d.isThemeIcon(t.icon) && (this.class = r.a.asClassName(t.icon))\n        }\n        dispose() {}\n        run(...e) {\n            var t;\n            let i = [];\n            return null !== (t = this._options) && void 0 !== t && t.arg && (i = [...i, this._options.arg]), null !== (t = this._options) && void 0 !== t && t.shouldForwardArgs && (i = [...i, ...e]), this._commandService.executeCommand(this.id, ...i)\n        }\n    };\n    b = t([i(3, c.b), i(4, d.b)], b)\n}, function(e, t, i) {\n    \"use strict\";\n\n    function n(e, t, i) {\n        let n = null,\n            r = null;\n        if (\"function\" == typeof i.value ? (n = \"value\", r = i.value, 0 !== r.length && console.warn(\"Memoize should only be used in functions with zero parameters\")) : \"function\" == typeof i.get && (n = \"get\", r = i.get), !r) throw new Error(\"not supported\");\n        const o = \"$memoize$\" + t;\n        i[n] = function(...e) {\n            return this.hasOwnProperty(o) || Object.defineProperty(this, o, {\n                configurable: !1,\n                enumerable: !1,\n                writable: !1,\n                value: r.apply(this, e)\n            }), this[o]\n        }\n    }\n    i.d(t, \"a\", (function() {\n        return n\n    }))\n}, function(e, t, i) {\n    \"use strict\";\n    var n, r, o = i(6);\n    (i = n = n || {})[i.Ignore = 0] = \"Ignore\", i[i.Info = 1] = \"Info\", i[i.Warning = 2] = \"Warning\", i[i.Error = 3] = \"错误\", (r = n = n || {}).fromValue = function(e) {\n        return e ? o.r(\"error\", e) ? r.Error : o.r(\"warning\", e) || o.r(\"warn\", e) ? r.Warning : o.r(\"info\", e) ? r.Info : r.Ignore : r.Ignore\n    }, r.toString = function(e) {\n        switch (e) {\n            case r.Error:\n                return \"error\";\n            case r.Warning:\n                return \"warning\";\n            case r.Info:\n                return \"info\";\n            default:\n                return \"ignore\"\n        }\n    }, t.a = n\n}, function(e, t, i) {\n    \"use strict\";\n    i.d(t, \"a\", (function() {\n        return s\n    })), i.d(t, \"b\", (function() {\n        return a\n    }));\n    var n = i(37),\n        r = i(158),\n        o = i(9);\n    class s {\n        constructor(e) {\n            this.timestamp = Date.now(), this.browserEvent = e, this.leftButton = 0 === e.button, this.middleButton = 1 === e.button, this.rightButton = 2 === e.button, this.buttons = e.buttons, this.target = e.target, this.detail = e.detail || 1, \"dblclick\" === e.type && (this.detail = 2), this.ctrlKey = e.ctrlKey, this.shiftKey = e.shiftKey, this.altKey = e.altKey, this.metaKey = e.metaKey, \"number\" == typeof e.pageX ? (this.posx = e.pageX, this.posy = e.pageY) : (this.posx = e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft, this.posy = e.clientY + document.body.scrollTop + document.documentElement.scrollTop), e = r.a.getPositionOfChildWindowRelativeToAncestorWindow(self, e.view), this.posx -= e.left, this.posy -= e.top\n        }\n        preventDefault() {\n            this.browserEvent.preventDefault()\n        }\n        stopPropagation() {\n            this.browserEvent.stopPropagation()\n        }\n    }\n    class a {\n        constructor(e, t = 0, i = 0) {\n            this.browserEvent = e || null, this.target = e ? e.target || e.targetNode || e.srcElement : null, this.deltaY = i, this.deltaX = t, e && (t = i = e, void 0 !== i.wheelDeltaY ? this.deltaY = i.wheelDeltaY / 120 : void 0 !== t.VERTICAL_AXIS && t.axis === t.VERTICAL_AXIS ? this.deltaY = -t.detail / 3 : \"wheel\" === e.type && (e.deltaMode === e.DOM_DELTA_LINE ? n.g && !o.f ? this.deltaY = -e.deltaY / 3 : this.deltaY = -e.deltaY : this.deltaY = -e.deltaY / 40), void 0 !== i.wheelDeltaX ? n.h && o.i ? this.deltaX = -i.wheelDeltaX / 120 : this.deltaX = i.wheelDeltaX / 120 : void 0 !== t.HORIZONTAL_AXIS && t.axis === t.HORIZONTAL_AXIS ? this.deltaX = -e.detail / 3 : \"wheel\" === e.type && (e.deltaMode === e.DOM_DELTA_LINE ? n.g && !o.f ? this.deltaX = -e.deltaX / 3 : this.deltaX = -e.deltaX : this.deltaX = -e.deltaX / 40), 0 === this.deltaY && 0 === this.deltaX && e.wheelDelta && (this.deltaY = e.wheelDelta / 120))\n        }\n        preventDefault() {\n            this.browserEvent && this.browserEvent.preventDefault()\n        }\n        stopPropagation() {\n            this.browserEvent && this.browserEvent.stopPropagation()\n        }\n    }\n}, function(e, t, i) {\n    \"use strict\";\n    i.d(t, \"a\", (function() {\n        return n\n    })), i = i(26);\n    const n = Object(i.c)(\"codeEditorService\")\n}, function(e, t, i) {\n    \"use strict\";\n    i.d(t, \"a\", (function() {\n        return r\n    })), i.d(t, \"d\", (function() {\n        return o\n    })), i.d(t, \"c\", (function() {\n        return s\n    })), i.d(t, \"b\", (function() {\n        return a\n    }));\n    var n = i(36);\n    class r {\n        constructor(e, t, i = !1) {\n            this._range = e, this._text = t, this.insertsAutoWhitespace = i\n        }\n        getEditOperations(e, t) {\n            t.addTrackedEditOperation(this._range, this._text)\n        }\n        computeCursorState(e, t) {\n            return t = t.getInverseEditOperations()[0].range, new n.a(t.endLineNumber, t.endColumn, t.endLineNumber, t.endColumn)\n        }\n    }\n    class o {\n        constructor(e, t, i = !1) {\n            this._range = e, this._text = t, this.insertsAutoWhitespace = i\n        }\n        getEditOperations(e, t) {\n            t.addTrackedEditOperation(this._range, this._text)\n        }\n        computeCursorState(e, t) {\n            return t = t.getInverseEditOperations()[0].range, new n.a(t.startLineNumber, t.startColumn, t.startLineNumber, t.startColumn)\n        }\n    }\n    class s {\n        constructor(e, t, i, n, r = !1) {\n            this._range = e, this._text = t, this._columnDeltaOffset = n, this._lineNumberDeltaOffset = i, this.insertsAutoWhitespace = r\n        }\n        getEditOperations(e, t) {\n            t.addTrackedEditOperation(this._range, this._text)\n        }\n        computeCursorState(e, t) {\n            return t = t.getInverseEditOperations()[0].range, new n.a(t.endLineNumber + this._lineNumberDeltaOffset, t.endColumn + this._columnDeltaOffset, t.endLineNumber + this._lineNumberDeltaOffset, t.endColumn + this._columnDeltaOffset)\n        }\n    }\n    class a {\n        constructor(e, t, i, n = !1) {\n            this._range = e, this._text = t, this._initialSelection = i, this._forceMoveMarkers = n, this._selectionId = null\n        }\n        getEditOperations(e, t) {\n            t.addTrackedEditOperation(this._range, this._text, this._forceMoveMarkers), this._selectionId = t.trackSelection(this._initialSelection)\n        }\n        computeCursorState(e, t) {\n            return t.getTrackedSelection(this._selectionId)\n        }\n    }\n}, function(e, t) {\n    e.exports = require(\"axios\")\n}, function(e, t, i) {\n    \"use strict\";\n    var n;\n    i.d(t, \"b\", (function() {\n        return n\n    })), i.d(t, \"c\", (function() {\n        return r\n    })), i.d(t, \"a\", (function() {\n        return o\n    })), (t = n = n || {})[t.None = 0] = \"None\", t[t.Indent = 1] = \"Indent\", t[t.IndentOutdent = 2] = \"IndentOutdent\", t[t.Outdent = 3] = \"Outdent\";\n    class r {\n        constructor(e) {\n            if (this._standardAutoClosingPairConditionalBrand = void 0, this.open = e.open, this.close = e.close, this._standardTokenMask = 0, Array.isArray(e.notIn))\n                for (let t = 0, i = e.notIn.length; t < i; t++) switch (e.notIn[t]) {\n                    case \"string\":\n                        this._standardTokenMask |= 2;\n                        break;\n                    case \"comment\":\n                        this._standardTokenMask |= 1;\n                        break;\n                    case \"regex\":\n                        this._standardTokenMask |= 4\n                }\n        }\n        isOK(e) {\n            return 0 == (this._standardTokenMask & e)\n        }\n    }\n    class o {\n        constructor(e) {\n            this.autoClosingPairsOpenByStart = new Map, this.autoClosingPairsOpenByEnd = new Map, this.autoClosingPairsCloseByStart = new Map, this.autoClosingPairsCloseByEnd = new Map, this.autoClosingPairsCloseSingleChar = new Map;\n            for (const t of e) s(this.autoClosingPairsOpenByStart, t.open.charAt(0), t), s(this.autoClosingPairsOpenByEnd, t.open.charAt(t.open.length - 1), t), s(this.autoClosingPairsCloseByStart, t.close.charAt(0), t), s(this.autoClosingPairsCloseByEnd, t.close.charAt(t.close.length - 1), t), 1 === t.close.length && 1 === t.open.length && s(this.autoClosingPairsCloseSingleChar, t.close, t)\n        }\n    }\n\n    function s(e, t, i) {\n        e.has(t) ? e.get(t).push(i) : e.set(t, [i])\n    }\n}, function(e, t, i) {\n    \"use strict\";\n    i.d(t, \"a\", (function() {\n        return s\n    })), i.d(t, \"b\", (function() {\n        return a\n    })), i.d(t, \"d\", (function() {\n        return l\n    })), i.d(t, \"e\", (function() {\n        return d\n    })), i.d(t, \"c\", (function() {\n        return c\n    }));\n    var n = i(2),\n        r = (t = i(4), i(0)),\n        o = function(e, t, i, n) {\n            return new(i = i || Promise)((function(r, o) {\n                function s(e) {\n                    try {\n                        l(n.next(e))\n                    } catch (e) {\n                        o(e)\n                    }\n                }\n\n                function a(e) {\n                    try {\n                        l(n.throw(e))\n                    } catch (e) {\n                        o(e)\n                    }\n                }\n\n                function l(e) {\n                    var t;\n                    e.done ? r(e.value) : ((t = e.value) instanceof i ? t : new i((function(e) {\n                        e(t)\n                    }))).then(s, a)\n                }\n                l((n = n.apply(e, t || [])).next())\n            }))\n        };\n    class s extends t.a {\n        constructor(e, t = \"\", i = \"\", r = !0, o) {\n            super(), this._onDidChange = this._register(new n.b), this.onDidChange = this._onDidChange.event, this._enabled = !0, this._id = e, this._label = t, this._cssClass = i, this._enabled = r, this._actionCallback = o\n        }\n        get id() {\n            return this._id\n        }\n        get label() {\n            return this._label\n        }\n        set label(e) {\n            this._setLabel(e)\n        }\n        _setLabel(e) {\n            this._label !== e && (this._label = e, this._onDidChange.fire({\n                label: e\n            }))\n        }\n        get tooltip() {\n            return this._tooltip || \"\"\n        }\n        set tooltip(e) {\n            this._setTooltip(e)\n        }\n        _setTooltip(e) {\n            this._tooltip !== e && (this._tooltip = e, this._onDidChange.fire({\n                tooltip: e\n            }))\n        }\n        get class() {\n            return this._cssClass\n        }\n        set class(e) {\n            this._setClass(e)\n        }\n        _setClass(e) {\n            this._cssClass !== e && (this._cssClass = e, this._onDidChange.fire({\n                class: e\n            }))\n        }\n        get enabled() {\n            return this._enabled\n        }\n        set enabled(e) {\n            this._setEnabled(e)\n        }\n        _setEnabled(e) {\n            this._enabled !== e && (this._enabled = e, this._onDidChange.fire({\n                enabled: e\n            }))\n        }\n        get checked() {\n            return this._checked\n        }\n        set checked(e) {\n            this._setChecked(e)\n        }\n        _setChecked(e) {\n            this._checked !== e && (this._checked = e, this._onDidChange.fire({\n                checked: e\n            }))\n        }\n        run(e, t) {\n            return o(this, void 0, void 0, (function*() {\n                this._actionCallback && (yield this._actionCallback(e))\n            }))\n        }\n    }\n    class a extends t.a {\n        constructor() {\n            super(...arguments), this._onBeforeRun = this._register(new n.b), this.onBeforeRun = this._onBeforeRun.event, this._onDidRun = this._register(new n.b), this.onDidRun = this._onDidRun.event\n        }\n        run(e, t) {\n            return o(this, void 0, void 0, (function*() {\n                if (e.enabled) {\n                    this._onBeforeRun.fire({\n                        action: e\n                    });\n                    let i = void 0;\n                    try {\n                        yield this.runAction(e, t)\n                    } catch (e) {\n                        i = e\n                    }\n                    this._onDidRun.fire({\n                        action: e,\n                        error: i\n                    })\n                }\n            }))\n        }\n        runAction(e, t) {\n            return o(this, void 0, void 0, (function*() {\n                yield e.run(t)\n            }))\n        }\n    }\n    class l extends s {\n        constructor(e) {\n            super(l.ID, e, e ? \"separator text\" : \"separator\"), this.checked = !1, this.enabled = !1\n        }\n    }\n    l.ID = \"vs.actions.separator\";\n    class d {\n        constructor(e, t, i, n) {\n            this.tooltip = \"\", this.enabled = !0, this.checked = !1, this.id = e, this.label = t, this.class = n, this._actions = i\n        }\n        get actions() {\n            return this._actions\n        }\n        dispose() {}\n        run() {\n            return o(this, void 0, void 0, (function*() {}))\n        }\n    }\n    class c extends s {\n        constructor() {\n            super(c.ID, r.a(\"submenu.empty\", \"(empty)\"), void 0, !1)\n        }\n    }\n    c.ID = \"vs.actions.empty\"\n}, function(e, t, i) {\n    \"use strict\";\n    i.d(t, \"f\", (function() {\n        return n\n    })), i.d(t, \"b\", (function() {\n        return r\n    })), i.d(t, \"g\", (function() {\n        return o\n    })), i.d(t, \"h\", (function() {\n        return s\n    })), i.d(t, \"i\", (function() {\n        return a\n    })), i.d(t, \"e\", (function() {\n        return l\n    })), i.d(t, \"d\", (function() {\n        return d\n    })), i.d(t, \"c\", (function() {\n        return c\n    })), i.d(t, \"a\", (function() {\n        return h\n    }));\n    class n {\n        constructor() {\n            this.changeType = 1\n        }\n    }\n    class r {\n        constructor(e, t, i, n, r) {\n            this.ownerId = e, this.lineNumber = t, this.column = i, this.options = n, this.order = r\n        }\n        static applyInjectedText(e, t) {\n            if (!t || 0 === t.length) return e;\n            let i = \"\",\n                n = 0;\n            for (const r of t) i += e.substring(n, r.column - 1), n = r.column - 1, i += r.options.content;\n            return i += e.substring(n), i\n        }\n        static fromDecorations(e) {\n            const t = [];\n            for (const i of e) i.options.before && 0 < i.options.before.content.length && t.push(new r(i.ownerId, i.range.startLineNumber, i.range.startColumn, i.options.before, 0)), i.options.after && 0 < i.options.after.content.length && t.push(new r(i.ownerId, i.range.endLineNumber, i.range.endColumn, i.options.after, 1));\n            return t.sort((e, t) => e.lineNumber === t.lineNumber ? e.column === t.column ? e.order - t.order : e.column - t.column : e.lineNumber - t.lineNumber), t\n        }\n    }\n    class o {\n        constructor(e, t, i) {\n            this.changeType = 2, this.lineNumber = e, this.detail = t, this.injectedText = i\n        }\n    }\n    class s {\n        constructor(e, t) {\n            this.changeType = 3, this.fromLineNumber = e, this.toLineNumber = t\n        }\n    }\n    class a {\n        constructor(e, t, i, n) {\n            this.changeType = 4, this.injectedTexts = n, this.fromLineNumber = e, this.toLineNumber = t, this.detail = i\n        }\n    }\n    class l {\n        constructor() {\n            this.changeType = 5\n        }\n    }\n    class d {\n        constructor(e, t, i, n) {\n            this.changes = e, this.versionId = t, this.isUndoing = i, this.isRedoing = n, this.resultingSelection = null\n        }\n        containsEvent(e) {\n            for (let t = 0, i = this.changes.length; t < i; t++)\n                if (this.changes[t].changeType === e) return !0;\n            return !1\n        }\n        static merge(e, t) {\n            var i = [].concat(e.changes).concat(t.changes),\n                n = t.versionId,\n                r = e.isUndoing || t.isUndoing;\n            t = e.isRedoing || t.isRedoing;\n            return new d(i, n, r, t)\n        }\n    }\n    class c {\n        constructor(e) {\n            this.changes = e\n        }\n    }\n    class h {\n        constructor(e, t) {\n            this.rawContentChangedEvent = e, this.contentChangedEvent = t\n        }\n        merge(e) {\n            var t = d.merge(this.rawContentChangedEvent, e.rawContentChangedEvent);\n            e = h._mergeChangeEvents(this.contentChangedEvent, e.contentChangedEvent);\n            return new h(t, e)\n        }\n        static _mergeChangeEvents(e, t) {\n            return {\n                changes: [].concat(e.changes).concat(t.changes),\n                eol: t.eol,\n                versionId: t.versionId,\n                isUndoing: e.isUndoing || t.isUndoing,\n                isRedoing: e.isRedoing || t.isRedoing,\n                isFlush: e.isFlush || t.isFlush\n            }\n        }\n    }\n}, function(e, t, i) {\n    \"use strict\";\n    i.d(t, \"c\", (function() {\n        return h\n    })), i.d(t, \"b\", (function() {\n        return p\n    })), i.d(t, \"a\", (function() {\n        return f\n    }));\n    var n, r, o = i(6);\n    class s {\n        constructor() {\n            this._value = \"\", this._pos = 0\n        }\n        reset(e) {\n            return this._value = e, this._pos = 0, this\n        }\n        next() {\n            return this._pos += 1, this\n        }\n        hasNext() {\n            return this._pos < this._value.length - 1\n        }\n        cmp(e) {\n            return e.charCodeAt(0) - this._value.charCodeAt(this._pos)\n        }\n        value() {\n            return this._value[this._pos]\n        }\n    }\n    class a {\n        constructor(e = !0) {\n            this._caseSensitive = e\n        }\n        reset(e) {\n            return this._value = e, this._from = 0, this._to = 0, this.next()\n        }\n        hasNext() {\n            return this._to < this._value.length\n        }\n        next() {\n            this._from = this._to;\n            let e = !0;\n            for (; this._to < this._value.length; this._to++)\n                if (46 === this._value.charCodeAt(this._to)) {\n                    if (!e) break;\n                    this._from++\n                } else e = !1;\n            return this\n        }\n        cmp(e) {\n            return (this._caseSensitive ? Object(o.h) : Object(o.i))(e, this._value, 0, e.length, this._from, this._to)\n        }\n        value() {\n            return this._value.substring(this._from, this._to)\n        }\n    }\n    class l {\n        constructor(e = !0, t = !0) {\n            this._splitOnBackslash = e, this._caseSensitive = t\n        }\n        reset(e) {\n            return this._value = e.replace(/\\\\$|\\/$/, \"\"), this._from = 0, this._to = 0, this.next()\n        }\n        hasNext() {\n            return this._to < this._value.length\n        }\n        next() {\n            this._from = this._to;\n            let e = !0;\n            for (; this._to < this._value.length; this._to++) {\n                var t = this._value.charCodeAt(this._to);\n                if (47 === t || this._splitOnBackslash && 92 === t) {\n                    if (!e) break;\n                    this._from++\n                } else e = !1\n            }\n            return this\n        }\n        cmp(e) {\n            return (this._caseSensitive ? Object(o.h) : Object(o.i))(e, this._value, 0, e.length, this._from, this._to)\n        }\n        value() {\n            return this._value.substring(this._from, this._to)\n        }\n    }\n    class d {\n        constructor(e) {\n            this._ignorePathCasing = e, this._states = [], this._stateIdx = 0\n        }\n        reset(e) {\n            return this._value = e, this._states = [], this._value.scheme && this._states.push(1), this._value.authority && this._states.push(2), this._value.path && (this._pathIterator = new l(!1, !this._ignorePathCasing(e)), this._pathIterator.reset(e.path), this._pathIterator.value() && this._states.push(3)), this._value.query && this._states.push(4), this._value.fragment && this._states.push(5), this._stateIdx = 0, this\n        }\n        next() {\n            return 3 === this._states[this._stateIdx] && this._pathIterator.hasNext() ? this._pathIterator.next() : this._stateIdx += 1, this\n        }\n        hasNext() {\n            return 3 === this._states[this._stateIdx] && this._pathIterator.hasNext() || this._stateIdx < this._states.length - 1\n        }\n        cmp(e) {\n            if (1 === this._states[this._stateIdx]) return Object(o.g)(e, this._value.scheme);\n            if (2 === this._states[this._stateIdx]) return Object(o.g)(e, this._value.authority);\n            if (3 === this._states[this._stateIdx]) return this._pathIterator.cmp(e);\n            if (4 === this._states[this._stateIdx]) return Object(o.f)(e, this._value.query);\n            if (5 === this._states[this._stateIdx]) return Object(o.f)(e, this._value.fragment);\n            throw new Error\n        }\n        value() {\n            if (1 === this._states[this._stateIdx]) return this._value.scheme;\n            if (2 === this._states[this._stateIdx]) return this._value.authority;\n            if (3 === this._states[this._stateIdx]) return this._pathIterator.value();\n            if (4 === this._states[this._stateIdx]) return this._value.query;\n            if (5 === this._states[this._stateIdx]) return this._value.fragment;\n            throw new Error\n        }\n    }\n    class c {\n        constructor() {\n            this.height = 1\n        }\n        rotateLeft() {\n            const e = this.right;\n            return this.right = e.left, (e.left = this).updateHeight(), e.updateHeight(), e\n        }\n        rotateRight() {\n            const e = this.left;\n            return this.left = e.right, (e.right = this).updateHeight(), e.updateHeight(), e\n        }\n        updateHeight() {\n            this.height = 1 + Math.max(this.heightLeft, this.heightRight)\n        }\n        balanceFactor() {\n            return this.heightRight - this.heightLeft\n        }\n        get heightLeft() {\n            var e;\n            return null !== (e = null === (e = this.left) || void 0 === e ? void 0 : e.height) && void 0 !== e ? e : 0\n        }\n        get heightRight() {\n            var e;\n            return null !== (e = null === (e = this.right) || void 0 === e ? void 0 : e.height) && void 0 !== e ? e : 0\n        }\n    }\n    class h {\n        constructor(e) {\n            this._iter = e\n        }\n        static forUris(e = (() => !1)) {\n            return new h(new d(e))\n        }\n        static forStrings() {\n            return new h(new s)\n        }\n        static forConfigKeys() {\n            return new h(new a)\n        }\n        clear() {\n            this._root = void 0\n        }\n        set(e, t) {\n            const i = this._iter.reset(e);\n            let n;\n            this._root || (this._root = new c, this._root.segment = i.value());\n            const r = [];\n            for (n = this._root;;) {\n                var o = i.cmp(n.segment);\n                if (0 < o) n.left || (n.left = new c, n.left.segment = i.value()), r.push([-1, n]), n = n.left;\n                else if (o < 0) n.right || (n.right = new c, n.right.segment = i.value()), r.push([1, n]), n = n.right;\n                else {\n                    if (!i.hasNext()) break;\n                    i.next(), n.mid || (n.mid = new c, n.mid.segment = i.value()), r.push([0, n]), n = n.mid\n                }\n            }\n            var s = n.value;\n            n.value = t, n.key = e;\n            for (let e = r.length - 1; 0 <= e; e--) {\n                const t = r[e][1];\n                if (t.updateHeight(), (l = t.balanceFactor()) < -1 || 1 < l) {\n                    var a = r[e][0],\n                        l = r[e + 1][0];\n                    if (1 === a && 1 === l) r[e][1] = t.rotateLeft();\n                    else if (-1 === a && -1 === l) r[e][1] = t.rotateRight();\n                    else if (1 === a && -1 === l) t.right = r[e + 1][1] = r[e + 1][1].rotateRight(), r[e][1] = t.rotateLeft();\n                    else {\n                        if (-1 !== a || 1 !== l) throw new Error;\n                        t.left = r[e + 1][1] = r[e + 1][1].rotateLeft(), r[e][1] = t.rotateRight()\n                    }\n                    if (0 < e) switch (r[e - 1][0]) {\n                        case -1:\n                            r[e - 1][1].left = r[e][1];\n                            break;\n                        case 1:\n                            r[e - 1][1].right = r[e][1];\n                            break;\n                        case 0:\n                            r[e - 1][1].mid = r[e][1]\n                    } else this._root = r[0][1]\n                }\n            }\n            return s\n        }\n        get(e) {\n            return null === (e = this._getNode(e)) || void 0 === e ? void 0 : e.value\n        }\n        _getNode(e) {\n            const t = this._iter.reset(e);\n            let i = this._root;\n            for (; i;) {\n                var n = t.cmp(i.segment);\n                if (0 < n) i = i.left;\n                else if (n < 0) i = i.right;\n                else {\n                    if (!t.hasNext()) break;\n                    t.next(), i = i.mid\n                }\n            }\n            return i\n        }\n        has(e) {\n            return !(void 0 === (null == (e = this._getNode(e)) ? void 0 : e.value) && void 0 === (null == e ? void 0 : e.mid))\n        }\n        delete(e) {\n            return this._delete(e, !1)\n        }\n        deleteSuperstr(e) {\n            return this._delete(e, !0)\n        }\n        _delete(e, t) {\n            const i = this._iter.reset(e),\n                n = [];\n            let r = this._root;\n            for (; r;) {\n                var o = i.cmp(r.segment);\n                if (0 < o) n.push([-1, r]), r = r.left;\n                else if (o < 0) n.push([1, r]), r = r.right;\n                else {\n                    if (!i.hasNext()) break;\n                    i.next(), n.push([0, r]), r = r.mid\n                }\n            }\n            if (r) {\n                if (t ? (r.left = void 0, r.mid = void 0, r.right = void 0, r.height = 1) : (r.key = void 0, r.value = void 0), !r.mid && !r.value)\n                    if (r.left && r.right) {\n                        var s = this._min(r.right);\n                        const {\n                            key: e,\n                            value: t,\n                            segment: i\n                        } = s;\n                        this._delete(s.key, !1), r.key = e, r.value = t, r.segment = i\n                    } else {\n                        var a = null !== (s = r.left) && void 0 !== s ? s : r.right;\n                        if (0 < n.length) {\n                            const [e, t] = n[n.length - 1];\n                            switch (e) {\n                                case -1:\n                                    t.left = a;\n                                    break;\n                                case 0:\n                                    t.mid = a;\n                                    break;\n                                case 1:\n                                    t.right = a\n                            }\n                        } else this._root = a\n                    } for (let e = n.length - 1; 0 <= e; e--) {\n                    const t = n[e][1];\n                    t.updateHeight();\n                    var l = t.balanceFactor();\n                    if (1 < l ? (0 <= t.right.balanceFactor() || (t.right = n[e + 1][1] = n[e + 1][1].rotateRight()), n[e][1] = t.rotateLeft()) : l < -1 && (t.left.balanceFactor() <= 0 || (t.left = n[e + 1][1] = n[e + 1][1].rotateLeft()), n[e][1] = t.rotateRight()), 0 < e) switch (n[e - 1][0]) {\n                        case -1:\n                            n[e - 1][1].left = n[e][1];\n                            break;\n                        case 1:\n                            n[e - 1][1].right = n[e][1];\n                            break;\n                        case 0:\n                            n[e - 1][1].mid = n[e][1]\n                    } else this._root = n[0][1]\n                }\n            }\n        }\n        _min(e) {\n            for (; e.left;) e = e.left;\n            return e\n        }\n        findSubstr(e) {\n            const t = this._iter.reset(e);\n            let i = this._root,\n                n = void 0;\n            for (; i;) {\n                var r = t.cmp(i.segment);\n                if (0 < r) i = i.left;\n                else if (r < 0) i = i.right;\n                else {\n                    if (!t.hasNext()) break;\n                    t.next(), n = i.value || n, i = i.mid\n                }\n            }\n            return i && i.value || n\n        }\n        findSuperstr(e) {\n            const t = this._iter.reset(e);\n            let i = this._root;\n            for (; i;) {\n                var n = t.cmp(i.segment);\n                if (0 < n) i = i.left;\n                else if (n < 0) i = i.right;\n                else {\n                    if (!t.hasNext()) return i.mid ? this._entries(i.mid) : void 0;\n                    t.next(), i = i.mid\n                }\n            }\n        }\n        forEach(e) {\n            for (var [t, i] of this) e(i, t)\n        }*[Symbol.iterator]() {\n            yield* this._entries(this._root)\n        }* _entries(e) {\n            e && (e.left && (yield* this._entries(e.left)), e.value && (yield [e.key, e.value]), e.mid && (yield* this._entries(e.mid)), e.right && (yield* this._entries(e.right)))\n        }\n    }\n    class u {\n        constructor(e, t) {\n            this.uri = e, this.value = t\n        }\n    }\n    class p {\n        constructor(e, t) {\n            this[n] = \"ResourceMap\", e instanceof p ? (this.map = new Map(e.map), this.toKey = null != t ? t : p.defaultToKey) : (this.map = new Map, this.toKey = null != e ? e : p.defaultToKey)\n        }\n        set(e, t) {\n            return this.map.set(this.toKey(e), new u(e, t)), this\n        }\n        get(e) {\n            return null === (e = this.map.get(this.toKey(e))) || void 0 === e ? void 0 : e.value\n        }\n        has(e) {\n            return this.map.has(this.toKey(e))\n        }\n        get size() {\n            return this.map.size\n        }\n        clear() {\n            this.map.clear()\n        }\n        delete(e) {\n            return this.map.delete(this.toKey(e))\n        }\n        forEach(e, t) {\n            for (var [i, n] of (void 0 !== t && (e = e.bind(t)), this.map)) e(n.value, n.uri, this)\n        }* values() {\n            for (var e of this.map.values()) yield e.value\n        }* keys() {\n            for (var e of this.map.values()) yield e.uri\n        }* entries() {\n            for (var e of this.map.values()) yield [e.uri, e.value]\n        }*[(n = Symbol.toStringTag, Symbol.iterator)]() {\n            for (var [, e] of this.map) yield [e.uri, e.value]\n        }\n    }\n    p.defaultToKey = e => e.toString();\n    class g {\n        constructor() {\n            this[r] = \"LinkedMap\", this._map = new Map, this._head = void 0, this._tail = void 0, this._size = 0, this._state = 0\n        }\n        clear() {\n            this._map.clear(), this._head = void 0, this._tail = void 0, this._size = 0, this._state++\n        }\n        isEmpty() {\n            return !this._head && !this._tail\n        }\n        get size() {\n            return this._size\n        }\n        get first() {\n            var e;\n            return null === (e = this._head) || void 0 === e ? void 0 : e.value\n        }\n        get last() {\n            var e;\n            return null === (e = this._tail) || void 0 === e ? void 0 : e.value\n        }\n        has(e) {\n            return this._map.has(e)\n        }\n        get(e, t = 0) {\n            if (e = this._map.get(e)) return 0 !== t && this.touch(e, t), e.value\n        }\n        set(e, t, i = 0) {\n            let n = this._map.get(e);\n            if (n) n.value = t, 0 !== i && this.touch(n, i);\n            else {\n                switch (n = {\n                    key: e,\n                    value: t,\n                    next: void 0,\n                    previous: void 0\n                }, i) {\n                    case 0:\n                        this.addItemLast(n);\n                        break;\n                    case 1:\n                        this.addItemFirst(n);\n                        break;\n                    default:\n                        this.addItemLast(n)\n                }\n                this._map.set(e, n), this._size++\n            }\n            return this\n        }\n        delete(e) {\n            return !!this.remove(e)\n        }\n        remove(e) {\n            var t = this._map.get(e);\n            if (t) return this._map.delete(e), this.removeItem(t), this._size--, t.value\n        }\n        shift() {\n            if (this._head || this._tail) {\n                if (!this._head || !this._tail) throw new Error(\"Invalid list\");\n                var e = this._head;\n                return this._map.delete(e.key), this.removeItem(e), this._size--, e.value\n            }\n        }\n        forEach(e, t) {\n            var i = this._state;\n            let n = this._head;\n            for (; n;) {\n                if ((t ? e.bind(t) : e)(n.value, n.key, this), this._state !== i) throw new Error(\"LinkedMap got modified during iteration.\");\n                n = n.next\n            }\n        }\n        keys() {\n            const e = this,\n                t = this._state;\n            let i = this._head;\n            const n = {\n                [Symbol.iterator]: () => n,\n                next() {\n                    if (e._state !== t) throw new Error(\"LinkedMap got modified during iteration.\");\n                    if (i) {\n                        var n = {\n                            value: i.key,\n                            done: !1\n                        };\n                        return i = i.next, n\n                    }\n                    return {\n                        value: void 0,\n                        done: !0\n                    }\n                }\n            };\n            return n\n        }\n        values() {\n            const e = this,\n                t = this._state;\n            let i = this._head;\n            const n = {\n                [Symbol.iterator]: () => n,\n                next() {\n                    if (e._state !== t) throw new Error(\"LinkedMap got modified during iteration.\");\n                    if (i) {\n                        var n = {\n                            value: i.value,\n                            done: !1\n                        };\n                        return i = i.next, n\n                    }\n                    return {\n                        value: void 0,\n                        done: !0\n                    }\n                }\n            };\n            return n\n        }\n        entries() {\n            const e = this,\n                t = this._state;\n            let i = this._head;\n            const n = {\n                [Symbol.iterator]: () => n,\n                next() {\n                    if (e._state !== t) throw new Error(\"LinkedMap got modified during iteration.\");\n                    if (i) {\n                        var n = {\n                            value: [i.key, i.value],\n                            done: !1\n                        };\n                        return i = i.next, n\n                    }\n                    return {\n                        value: void 0,\n                        done: !0\n                    }\n                }\n            };\n            return n\n        } [(r = Symbol.toStringTag, Symbol.iterator)]() {\n            return this.entries()\n        }\n        trimOld(e) {\n            if (!(e >= this.size))\n                if (0 !== e) {\n                    let t = this._head,\n                        i = this.size;\n                    for (; t && i > e;) this._map.delete(t.key), t = t.next, i--;\n                    this._head = t, this._size = i, t && (t.previous = void 0), this._state++\n                } else this.clear()\n        }\n        addItemFirst(e) {\n            if (this._head || this._tail) {\n                if (!this._head) throw new Error(\"Invalid list\");\n                e.next = this._head, this._head.previous = e\n            } else this._tail = e;\n            this._head = e, this._state++\n        }\n        addItemLast(e) {\n            if (this._head || this._tail) {\n                if (!this._tail) throw new Error(\"Invalid list\");\n                e.previous = this._tail, this._tail.next = e\n            } else this._head = e;\n            this._tail = e, this._state++\n        }\n        removeItem(e) {\n            if (e === this._head && e === this._tail) this._head = void 0, this._tail = void 0;\n            else if (e === this._head) {\n                if (!e.next) throw new Error(\"Invalid list\");\n                e.next.previous = void 0, this._head = e.next\n            } else if (e === this._tail) {\n                if (!e.previous) throw new Error(\"Invalid list\");\n                e.previous.next = void 0, this._tail = e.previous\n            } else {\n                const t = e.next,\n                    i = e.previous;\n                if (!t || !i) throw new Error(\"Invalid list\");\n                t.previous = i, i.next = t\n            }\n            e.next = void 0, e.previous = void 0, this._state++\n        }\n        touch(e, t) {\n            if (!this._head || !this._tail) throw new Error(\"Invalid list\");\n            if (1 === t || 2 === t)\n                if (1 === t) {\n                    if (e !== this._head) {\n                        const t = e.next,\n                            i = e.previous;\n                        e === this._tail ? (i.next = void 0, this._tail = i) : (t.previous = i, i.next = t), e.previous = void 0, e.next = this._head, this._head.previous = e, this._head = e, this._state++\n                    }\n                } else if (2 === t && e !== this._tail) {\n                const t = e.next,\n                    i = e.previous;\n                e === this._head ? (t.previous = void 0, this._head = t) : (t.previous = i, i.next = t), e.next = void 0, e.previous = this._tail, this._tail.next = e, this._tail = e, this._state++\n            }\n        }\n        toJSON() {\n            const e = [];\n            return this.forEach((t, i) => {\n                e.push([i, t])\n            }), e\n        }\n        fromJSON(e) {\n            for (var [t, i] of (this.clear(), e)) this.set(t, i)\n        }\n    }\n    class f extends g {\n        constructor(e, t = 1) {\n            super(), this._limit = e, this._ratio = Math.min(Math.max(0, t), 1)\n        }\n        get limit() {\n            return this._limit\n        }\n        set limit(e) {\n            this._limit = e, this.checkTrim()\n        }\n        get(e, t = 2) {\n            return super.get(e, t)\n        }\n        peek(e) {\n            return super.get(e, 0)\n        }\n        set(e, t) {\n            return super.set(e, t, 2), this.checkTrim(), this\n        }\n        checkTrim() {\n            this.size > this._limit && this.trimOld(Math.round(this._limit * this._ratio))\n        }\n    }\n}, function(e, t, i) {\n    \"use strict\";\n    i.d(t, \"a\", (function() {\n        return d\n    }));\n    var n = i(14),\n        r = i(8),\n        o = i(5),\n        s = i(6),\n        a = i(160);\n    class l {\n        constructor(e, t, i) {\n            this._cursorPositionBrand = void 0, this.lineNumber = e, this.column = t, this.leftoverVisibleColumns = i\n        }\n    }\n    class d {\n        static leftPosition(e, t) {\n            if (t.column > e.getLineMinColumn(t.lineNumber)) return t.delta(void 0, -s.L(e.getLineContent(t.lineNumber), t.column - 1));\n            if (1 < t.lineNumber) {\n                var i = t.lineNumber - 1;\n                return new r.a(i, e.getLineMaxColumn(i))\n            }\n            return t\n        }\n        static leftPositionAtomicSoftTabs(e, t, i) {\n            if (t.column <= e.getLineIndentColumn(t.lineNumber)) {\n                var n = e.getLineMinColumn(t.lineNumber),\n                    o = e.getLineContent(t.lineNumber);\n                if (-1 !== (i = a.a.atomicPosition(o, t.column - 1, i, 0)) && n <= i + 1) return new r.a(t.lineNumber, i + 1)\n            }\n            return this.leftPosition(e, t)\n        }\n        static left(e, t, i) {\n            return i = e.stickyTabStops ? d.leftPositionAtomicSoftTabs(t, i, e.tabSize) : d.leftPosition(t, i), new l(i.lineNumber, i.column, 0)\n        }\n        static moveLeft(e, t, i, n, r) {\n            let o, s;\n            return s = i.hasSelection() && !n ? (o = i.selection.startLineNumber, i.selection.startColumn) : (r = i.position.delta(void 0, -(r - 1)), r = t.normalizePosition(d.clipPositionColumn(r, t), 0), o = (r = d.left(e, t, r)).lineNumber, r.column), i.move(n, o, s, 0)\n        }\n        static clipPositionColumn(e, t) {\n            return new r.a(e.lineNumber, d.clipRange(e.column, t.getLineMinColumn(e.lineNumber), t.getLineMaxColumn(e.lineNumber)))\n        }\n        static clipRange(e, t, i) {\n            return e < t ? t : i < e ? i : e\n        }\n        static rightPosition(e, t, i) {\n            return i < e.getLineMaxColumn(t) ? i += s.K(e.getLineContent(t), i - 1) : t < e.getLineCount() && (i = e.getLineMinColumn(t += 1)), new r.a(t, i)\n        }\n        static rightPositionAtomicSoftTabs(e, t, i, n, o) {\n            if (i < e.getLineIndentColumn(t)) {\n                var s = e.getLineContent(t);\n                if (-1 !== (n = a.a.atomicPosition(s, i - 1, n, 1))) return new r.a(t, n + 1)\n            }\n            return this.rightPosition(e, t, i)\n        }\n        static right(e, t, i) {\n            return i = e.stickyTabStops ? d.rightPositionAtomicSoftTabs(t, i.lineNumber, i.column, e.tabSize, e.indentSize) : d.rightPosition(t, i.lineNumber, i.column), new l(i.lineNumber, i.column, 0)\n        }\n        static moveRight(e, t, i, n, r) {\n            let o, s;\n            return s = i.hasSelection() && !n ? (o = i.selection.endLineNumber, i.selection.endColumn) : (r = i.position.delta(void 0, r - 1), r = t.normalizePosition(d.clipPositionColumn(r, t), 1), o = (r = d.right(e, t, r)).lineNumber, r.column), i.move(n, o, s, 0)\n        }\n        static vertical(e, t, i, r, o, s, a) {\n            var d = n.a.visibleColumnFromColumn(t.getLineContent(i), r, e.tabSize) + o,\n                c = t.getLineCount(),\n                h = 1 === i && 1 === r,\n                u = i === c && r === t.getLineMaxColumn(i);\n            u = s < i ? h : u;\n            return r = (i = s) < 1 ? (i = 1, a ? t.getLineMinColumn(i) : Math.min(t.getLineMaxColumn(i), r)) : c < i ? (i = c, a ? t.getLineMaxColumn(i) : Math.min(t.getLineMaxColumn(i), r)) : n.a.columnFromVisibleColumn2(e, t, i, d), o = u ? 0 : d - n.a.visibleColumnFromColumn(t.getLineContent(i), r, e.tabSize), new l(i, r, o)\n        }\n        static down(e, t, i, n, r, o, s) {\n            return this.vertical(e, t, i, n, r, i + o, s)\n        }\n        static moveDown(e, t, i, n, r) {\n            let o, s;\n            return s = i.hasSelection() && !n ? (o = i.selection.endLineNumber, i.selection.endColumn) : (o = i.position.lineNumber, i.position.column), r = d.down(e, t, o, s, i.leftoverVisibleColumns, r, !0), i.move(n, r.lineNumber, r.column, r.leftoverVisibleColumns)\n        }\n        static translateDown(e, t, i) {\n            var s = i.selection,\n                a = d.down(e, t, s.selectionStartLineNumber, s.selectionStartColumn, i.selectionStartLeftoverVisibleColumns, 1, !1);\n            i = d.down(e, t, s.positionLineNumber, s.positionColumn, i.leftoverVisibleColumns, 1, !1);\n            return new n.f(new o.a(a.lineNumber, a.column, a.lineNumber, a.column), a.leftoverVisibleColumns, new r.a(i.lineNumber, i.column), i.leftoverVisibleColumns)\n        }\n        static up(e, t, i, n, r, o, s) {\n            return this.vertical(e, t, i, n, r, i - o, s)\n        }\n        static moveUp(e, t, i, n, r) {\n            let o, s;\n            return s = i.hasSelection() && !n ? (o = i.selection.startLineNumber, i.selection.startColumn) : (o = i.position.lineNumber, i.position.column), r = d.up(e, t, o, s, i.leftoverVisibleColumns, r, !0), i.move(n, r.lineNumber, r.column, r.leftoverVisibleColumns)\n        }\n        static translateUp(e, t, i) {\n            var s = i.selection,\n                a = d.up(e, t, s.selectionStartLineNumber, s.selectionStartColumn, i.selectionStartLeftoverVisibleColumns, 1, !1);\n            i = d.up(e, t, s.positionLineNumber, s.positionColumn, i.leftoverVisibleColumns, 1, !1);\n            return new n.f(new o.a(a.lineNumber, a.column, a.lineNumber, a.column), a.leftoverVisibleColumns, new r.a(i.lineNumber, i.column), i.leftoverVisibleColumns)\n        }\n        static _isBlankLine(e, t) {\n            return 0 === e.getLineFirstNonWhitespaceColumn(t)\n        }\n        static moveToPrevBlankLine(e, t, i, n) {\n            let r = i.position.lineNumber;\n            for (; 1 < r && this._isBlankLine(t, r);) r--;\n            for (; 1 < r && !this._isBlankLine(t, r);) r--;\n            return i.move(n, r, t.getLineMinColumn(r), 0)\n        }\n        static moveToNextBlankLine(e, t, i, n) {\n            var r = t.getLineCount();\n            let o = i.position.lineNumber;\n            for (; o < r && this._isBlankLine(t, o);) o++;\n            for (; o < r && !this._isBlankLine(t, o);) o++;\n            return i.move(n, o, t.getLineMinColumn(o), 0)\n        }\n        static moveToBeginningOfLine(e, t, i, n) {\n            var r = i.position.lineNumber,\n                o = t.getLineMinColumn(r),\n                s = t.getLineFirstNonWhitespaceColumn(r) || o;\n            let a;\n            return a = (t = i.position.column) === s ? o : s, i.move(n, r, a, 0)\n        }\n        static moveToEndOfLine(e, t, i, n, r) {\n            var o = i.position.lineNumber;\n            t = t.getLineMaxColumn(o);\n            return i.move(n, o, t, r ? 1073741824 - t : 0)\n        }\n        static moveToBeginningOfBuffer(e, t, i, n) {\n            return i.move(n, 1, 1, 0)\n        }\n        static moveToEndOfBuffer(e, t, i, n) {\n            var r = t.getLineCount();\n            t = t.getLineMaxColumn(r);\n            return i.move(n, r, t, 0)\n        }\n    }\n}, function(e, t, i) {\n    \"use strict\";\n\n    function n(e) {\n        return e < 0 ? 0 : 255 < e ? 255 : 0 | e\n    }\n\n    function r(e) {\n        return e < 0 ? 0 : 4294967295 < e ? 4294967295 : 0 | e\n    }\n    i.d(t, \"b\", (function() {\n        return n\n    })), i.d(t, \"a\", (function() {\n        return r\n    }))\n}, function(e, t, i) {\n    \"use strict\";\n    i.d(t, \"c\", (function() {\n        return Et\n    })), i.d(t, \"a\", (function() {\n        return Nt\n    })), i.d(t, \"b\", (function() {\n        return jt\n    }));\n    var n = i(31),\n        r = i(2),\n        o = i(4),\n        s = i(6),\n        a = i(39),\n        l = i(29),\n        d = i(8),\n        c = i(5),\n        h = i(36),\n        u = i(44),\n        p = i(130);\n    class g {\n        constructor() {\n            this.spacesDiff = 0, this.looksLikeAlignment = !1\n        }\n    }\n\n    function f(e, t, i) {\n        var n = Math.min(e.getLineCount(), 1e4);\n        let r = 0,\n            o = 0,\n            s = \"\",\n            a = 0,\n            l = [0, 0, 0, 0, 0, 0, 0, 0, 0];\n        var d = new g;\n        for (let p = 1; p <= n; p++) {\n            var c = e.getLineLength(p);\n            let n = e.getLineContent(p);\n            var h = c <= 65536;\n            let g = !1,\n                f = 0,\n                m = 0,\n                v = 0;\n            for (let t = 0, i = c; t < i; t++) {\n                var u = h ? n.charCodeAt(t) : e.getLineCharCode(p, t);\n                if (9 === u) v++;\n                else {\n                    if (32 !== u) {\n                        g = !0, f = t;\n                        break\n                    }\n                    m++\n                }\n            }\n            g && (0 < v ? r++ : 1 < m && o++, function(e, t, i, n, r) {\n                let o;\n                for (r.spacesDiff = 0, r.looksLikeAlignment = !1, o = 0; o < t && o < n && e.charCodeAt(o) === i.charCodeAt(o); o++);\n                let s = 0,\n                    a = 0;\n                for (let i = o; i < t; i++) 32 === e.charCodeAt(i) ? s++ : a++;\n                let l = 0,\n                    d = 0;\n                for (let e = o; e < n; e++) 32 === i.charCodeAt(e) ? l++ : d++;\n                var c, h;\n                0 < s && 0 < a || 0 < l && 0 < d || (c = Math.abs(a - d), h = Math.abs(s - l), 0 !== c ? h % c == 0 && (r.spacesDiff = h / c) : 0 < (r.spacesDiff = h) && 0 <= l - 1 && l - 1 < e.length && l < i.length && 32 !== i.charCodeAt(l) && 32 === e.charCodeAt(l - 1) && 44 === e.charCodeAt(e.length - 1) && (r.looksLikeAlignment = !0))\n            }(s, a, n, f, d), (!d.looksLikeAlignment || i && t === d.spacesDiff) && ((c = d.spacesDiff) <= 8 && l[c]++, s = n, a = f))\n        }\n        let p = i;\n        r !== o && (p = r < o);\n        let f = t;\n        if (p) {\n            let e = p ? 0 : .1 * n;\n            [2, 4, 6, 8, 3, 5, 7].forEach(t => {\n                var i = l[t];\n                i > e && (e = i, f = t)\n            }), 4 === f && 0 < l[4] && 0 < l[2] && l[2] >= l[4] / 2 && (f = 2)\n        }\n        return {\n            insertSpaces: p,\n            tabSize: f\n        }\n    }\n\n    function m(e) {\n        return (1 & e.metadata) >>> 0\n    }\n\n    function v(e, t) {\n        e.metadata = 254 & e.metadata | t << 0\n    }\n\n    function b(e) {\n        return (2 & e.metadata) >>> 1 == 1\n    }\n\n    function _(e, t) {\n        e.metadata = 253 & e.metadata | (t ? 1 : 0) << 1\n    }\n\n    function w(e) {\n        return (4 & e.metadata) >>> 2 == 1\n    }\n\n    function y(e, t) {\n        e.metadata = 251 & e.metadata | (t ? 1 : 0) << 2\n    }\n\n    function C(e, t) {\n        e.metadata = 231 & e.metadata | t << 3\n    }\n\n    function x(e, t) {\n        e.metadata = 223 & e.metadata | (t ? 1 : 0) << 5\n    }\n    class S {\n        constructor(e, t, i) {\n            this.metadata = 0, v(((this.parent = this).left = this).right = this, 1), this.start = t, this.end = i, this.delta = 0, this.maxEnd = i, this.id = e, this.ownerId = 0, this.options = null, y(this, !1), C(this, 1), x(this, !1), this.cachedVersionId = 0, this.cachedAbsoluteStart = t, this.cachedAbsoluteEnd = i, this.range = null, _(this, !1)\n        }\n        reset(e, t, i, n) {\n            this.start = t, this.end = i, this.maxEnd = i, this.cachedVersionId = e, this.cachedAbsoluteStart = t, this.cachedAbsoluteEnd = i, this.range = n\n        }\n        setOptions(e) {\n            this.options = e, y(this, \"squiggly-error\" === (e = this.options.className) || \"squiggly-warning\" === e || \"squiggly-info\" === e), C(this, this.options.stickiness), x(this, this.options.collapseOnReplaceEdit)\n        }\n        setCachedOffsets(e, t, i) {\n            this.cachedVersionId !== i && (this.range = null), this.cachedVersionId = i, this.cachedAbsoluteStart = e, this.cachedAbsoluteEnd = t\n        }\n        detach() {\n            this.parent = null, this.left = null, this.right = null\n        }\n    }\n    const k = new S(null, 0, 0);\n    k.parent = k, k.left = k, k.right = k, v(k, 0);\n    class L {\n        constructor() {\n            this.root = k, this.requestNormalizeDelta = !1\n        }\n        intervalSearch(e, t, i, n, r) {\n            return this.root === k ? [] : function(e, t, i, n, r, o) {\n                let s = e.root,\n                    a = 0,\n                    l = 0,\n                    d = 0,\n                    c = [],\n                    h = 0;\n                for (; s !== k;)\n                    if (b(s)) _(s.left, !1), _(s.right, !1), s === s.parent.right && (a -= s.parent.delta), s = s.parent;\n                    else {\n                        if (!b(s.left)) {\n                            if (a + s.maxEnd < t) {\n                                _(s, !0);\n                                continue\n                            }\n                            if (s.left !== k) {\n                                s = s.left;\n                                continue\n                            }\n                        }\n                        if (l = a + s.start, i < l) _(s, !0);\n                        else {\n                            if (d = a + s.end, t <= d) {\n                                s.setCachedOffsets(l, d, o);\n                                let e = !0;\n                                n && s.ownerId && s.ownerId !== n && (e = !1), r && w(s) && (e = !1), e && (c[h++] = s)\n                            }\n                            _(s, !0), s.right === k || b(s.right) || (a += s.delta, s = s.right)\n                        }\n                    } return _(e.root, !1), c\n            }(this, e, t, i, n, r)\n        }\n        search(e, t, i) {\n            return this.root === k ? [] : function(e, t, i, n) {\n                let r = e.root,\n                    o = 0,\n                    s = 0,\n                    a = 0,\n                    l = [],\n                    d = 0;\n                for (; r !== k;)\n                    if (b(r)) _(r.left, !1), _(r.right, !1), r === r.parent.right && (o -= r.parent.delta), r = r.parent;\n                    else if (r.left === k || b(r.left)) {\n                    s = o + r.start, a = o + r.end, r.setCachedOffsets(s, a, n);\n                    let e = !0;\n                    t && r.ownerId && r.ownerId !== t && (e = !1), i && w(r) && (e = !1), e && (l[d++] = r), _(r, !0), r.right === k || b(r.right) || (o += r.delta, r = r.right)\n                } else r = r.left;\n                return _(e.root, !1), l\n            }(this, e, t, i)\n        }\n        collectNodesFromOwner(e) {\n            return function(e, t) {\n                let i = e.root,\n                    n = [],\n                    r = 0;\n                for (; i !== k;) b(i) ? (_(i.left, !1), _(i.right, !1), i = i.parent) : i.left === k || b(i.left) ? (i.ownerId === t && (n[r++] = i), _(i, !0), i.right === k || b(i.right) || (i = i.right)) : i = i.left;\n                return _(e.root, !1), n\n            }(this, e)\n        }\n        collectNodesPostOrder() {\n            return function(e) {\n                let t = e.root,\n                    i = [],\n                    n = 0;\n                for (; t !== k;) b(t) ? (_(t.left, !1), _(t.right, !1), t = t.parent) : t.left === k || b(t.left) ? t.right === k || b(t.right) ? (i[n++] = t, _(t, !0)) : t = t.right : t = t.left;\n                return _(e.root, !1), i\n            }(this)\n        }\n        insert(e) {\n            E(this, e), this._normalizeDeltaIfNecessary()\n        }\n        delete(e) {\n            N(this, e), this._normalizeDeltaIfNecessary()\n        }\n        resolveNode(e, t) {\n            const i = e;\n            let n = 0;\n            for (; e !== this.root;) e === e.parent.right && (n += e.parent.delta), e = e.parent;\n            var r = i.start + n,\n                o = i.end + n;\n            i.setCachedOffsets(r, o, t)\n        }\n        acceptReplace(e, t, i, n) {\n            var r = function(e, t, i) {\n                let n = e.root,\n                    r = 0,\n                    o = 0,\n                    s = 0,\n                    a = [],\n                    l = 0;\n                for (; n !== k;)\n                    if (b(n)) _(n.left, !1), _(n.right, !1), n === n.parent.right && (r -= n.parent.delta), n = n.parent;\n                    else {\n                        if (!b(n.left)) {\n                            if (r + n.maxEnd < t) {\n                                _(n, !0);\n                                continue\n                            }\n                            if (n.left !== k) {\n                                n = n.left;\n                                continue\n                            }\n                        }\n                        o = r + n.start, i < o ? _(n, !0) : (s = r + n.end, t <= s && (n.setCachedOffsets(o, s, 0), a[l++] = n), _(n, !0), n.right === k || b(n.right) || (r += n.delta, n = n.right))\n                    } return _(e.root, !1), a\n            }(this, e, e + t);\n            for (let e = 0, t = r.length; e < t; e++) N(this, r[e]);\n            this._normalizeDeltaIfNecessary(),\n                function(e, t, i, n) {\n                    let r = e.root,\n                        o = 0,\n                        s = 0;\n                    for (var a = n - (i - t); r !== k;)\n                        if (b(r)) _(r.left, !1), _(r.right, !1), r === r.parent.right && (o -= r.parent.delta), P(r), r = r.parent;\n                        else {\n                            if (!b(r.left)) {\n                                if (o + r.maxEnd < t) {\n                                    _(r, !0);\n                                    continue\n                                }\n                                if (r.left !== k) {\n                                    r = r.left;\n                                    continue\n                                }\n                            }\n                            s = o + r.start, i < s ? (r.start += a, r.end += a, r.delta += a, (r.delta < -1073741824 || 1073741824 < r.delta) && (e.requestNormalizeDelta = !0), _(r, !0)) : (_(r, !0), r.right === k || b(r.right) || (o += r.delta, r = r.right))\n                        } _(e.root, !1)\n                }(this, e, e + t, i), this._normalizeDeltaIfNecessary();\n            for (let o = 0, s = r.length; o < s; o++) {\n                const s = r[o];\n                s.start = s.cachedAbsoluteStart, s.end = s.cachedAbsoluteEnd,\n                    function(e, t, i, n, r) {\n                        var o = (24 & e.metadata) >>> 3,\n                            s = 0 == o || 2 == o,\n                            a = 1 == o || 2 == o,\n                            l = i - t,\n                            d = n,\n                            c = Math.min(l, d),\n                            h = e.start;\n                        let u = !1;\n                        o = e.end;\n                        let p = !1;\n                        t <= h && o <= i && (32 & e.metadata) >>> 5 == 1 && (e.start = t, u = !0, e.end = t, p = !0), n = r ? 1 : 0 < l ? 2 : 0, !u && O(h, s, t, n) && (u = !0), !p && O(o, a, t, n) && (p = !0), 0 < c && !r && (n = d < l ? 2 : 0, !u && O(h, s, t + c, n) && (u = !0), !p && O(o, a, t + c, n) && (p = !0)), r = r ? 1 : 0, !u && O(h, s, i, r) && (e.start = t + d, u = !0), !p && O(o, a, i, r) && (e.end = t + d, p = !0), l = d - l, u || (e.start = Math.max(0, h + l)), p || (e.end = Math.max(0, o + l)), e.start > e.end && (e.end = e.start)\n                    }(s, e, e + t, i, n), s.maxEnd = s.end, E(this, s)\n            }\n            this._normalizeDeltaIfNecessary()\n        }\n        _normalizeDeltaIfNecessary() {\n            this.requestNormalizeDelta && (this.requestNormalizeDelta = !1, function(e) {\n                let t = e.root,\n                    i = 0;\n                for (; t !== k;) t = t.left === k || b(t.left) ? t.right === k || b(t.right) ? (t.start = i + t.start, t.end = i + t.end, t.delta = 0, P(t), _(t, !0), _(t.left, !1), _(t.right, !1), t === t.parent.right && (i -= t.parent.delta), t.parent) : (i += t.delta, t.right) : t.left;\n                _(e.root, !1)\n            }(this))\n        }\n    }\n\n    function O(e, t, i, n) {\n        return e < i || !(i < e) && 1 !== n && (2 === n || t)\n    }\n\n    function E(e, t) {\n        if (e.root === k) return t.parent = k, t.left = k, t.right = k, v(t, 0), e.root = t, e.root;\n        ! function(e, t) {\n            let i = 0,\n                n = e.root;\n            for (var r = t.start, o = t.end;;)\n                if (function(e, t, i, n) {\n                        return e !== i ? e - i : t - n\n                    }(r, o, n.start + i, n.end + i) < 0) {\n                    if (n.left === k) {\n                        t.start -= i, t.end -= i, t.maxEnd -= i, n.left = t;\n                        break\n                    }\n                    n = n.left\n                } else {\n                    if (n.right === k) {\n                        t.start -= i + n.delta, t.end -= i + n.delta, t.maxEnd -= i + n.delta, n.right = t;\n                        break\n                    }\n                    i += n.delta, n = n.right\n                } t.parent = n, t.left = k, t.right = k, v(t, 1)\n        }(e, t), A(t.parent);\n        let i = t;\n        for (; i !== e.root && 1 === m(i.parent);) {\n            var n;\n            i.parent === i.parent.parent.left ? 1 === m(n = i.parent.parent.right) ? (v(i.parent, 0), v(n, 0), v(i.parent.parent, 1), i = i.parent.parent) : (i === i.parent.right && (i = i.parent, I(e, i)), v(i.parent, 0), v(i.parent.parent, 1), T(e, i.parent.parent)) : 1 === m(n = i.parent.parent.left) ? (v(i.parent, 0), v(n, 0), v(i.parent.parent, 1), i = i.parent.parent) : (i === i.parent.left && (i = i.parent, T(e, i)), v(i.parent, 0), v(i.parent.parent, 1), I(e, i.parent.parent))\n        }\n        return v(e.root, 0), t\n    }\n\n    function N(e, t) {\n        let i, n;\n        if (t.left === k ? (i = t.right, n = t, i.delta += t.delta, (i.delta < -1073741824 || 1073741824 < i.delta) && (e.requestNormalizeDelta = !0), i.start += t.delta, i.end += t.delta) : t.right === k ? (i = t.left, n = t) : (n = function(e) {\n                for (; e.left !== k;) e = e.left;\n                return e\n            }(t.right), i = n.right, i.start += n.delta, i.end += n.delta, i.delta += n.delta, (i.delta < -1073741824 || 1073741824 < i.delta) && (e.requestNormalizeDelta = !0), n.start += t.delta, n.end += t.delta, n.delta = t.delta, (n.delta < -1073741824 || 1073741824 < n.delta) && (e.requestNormalizeDelta = !0)), n === e.root) return e.root = i, v(i, 0), t.detach(), D(), P(i), void(e.root.parent = k);\n        var r = 1 === m(n);\n        if (n === n.parent.left ? n.parent.left = i : n.parent.right = i, n === t ? i.parent = n.parent : (n.parent === t ? i.parent = n : i.parent = n.parent, n.left = t.left, n.right = t.right, n.parent = t.parent, v(n, m(t)), t === e.root ? e.root = n : t === t.parent.left ? t.parent.left = n : t.parent.right = n, n.left !== k && (n.left.parent = n), n.right !== k && (n.right.parent = n)), t.detach(), r) return A(i.parent), n !== t && (A(n), A(n.parent)), void D();\n        let o;\n        for (A(i), A(i.parent), n !== t && (A(n), A(n.parent)); i !== e.root && 0 === m(i);) i = i === i.parent.left ? (o = i.parent.right, 1 === m(o) && (v(o, 0), v(i.parent, 1), I(e, i.parent), o = i.parent.right), 0 === m(o.left) && 0 === m(o.right) ? (v(o, 1), i.parent) : (0 === m(o.right) && (v(o.left, 0), v(o, 1), T(e, o), o = i.parent.right), v(o, m(i.parent)), v(i.parent, 0), v(o.right, 0), I(e, i.parent), e.root)) : (o = i.parent.left, 1 === m(o) && (v(o, 0), v(i.parent, 1), T(e, i.parent), o = i.parent.left), 0 === m(o.left) && 0 === m(o.right) ? (v(o, 1), i.parent) : (0 === m(o.left) && (v(o.right, 0), v(o, 1), I(e, o), o = i.parent.left), v(o, m(i.parent)), v(i.parent, 0), v(o.left, 0), T(e, i.parent), e.root));\n        v(i, 0), D()\n    }\n\n    function D() {\n        k.parent = k, k.delta = 0, k.start = 0, k.end = 0\n    }\n\n    function I(e, t) {\n        const i = t.right;\n        i.delta += t.delta, (i.delta < -1073741824 || 1073741824 < i.delta) && (e.requestNormalizeDelta = !0), i.start += t.delta, i.end += t.delta, t.right = i.left, i.left !== k && (i.left.parent = t), i.parent = t.parent, t.parent === k ? e.root = i : t === t.parent.left ? t.parent.left = i : t.parent.right = i, (i.left = t).parent = i, P(t), P(i)\n    }\n\n    function T(e, t) {\n        const i = t.left;\n        t.delta -= i.delta, (t.delta < -1073741824 || 1073741824 < t.delta) && (e.requestNormalizeDelta = !0), t.start -= i.delta, t.end -= i.delta, t.left = i.right, i.right !== k && (i.right.parent = t), i.parent = t.parent, t.parent === k ? e.root = i : t === t.parent.right ? t.parent.right = i : t.parent.left = i, (i.right = t).parent = i, P(t), P(i)\n    }\n\n    function M(e) {\n        let t = e.end;\n        var i;\n        return e.left === k || (i = e.left.maxEnd) > t && (t = i), e.right === k || (e = e.right.maxEnd + e.delta) > t && (t = e), t\n    }\n\n    function P(e) {\n        e.maxEnd = M(e)\n    }\n\n    function A(e) {\n        for (; e !== k;) {\n            var t = M(e);\n            if (e.maxEnd === t) return;\n            e.maxEnd = t, e = e.parent\n        }\n    }\n    class R {\n        constructor(e, t) {\n            this.piece = e, this.color = t, this.size_left = 0, this.lf_left = 0, ((this.parent = this).left = this).right = this\n        }\n        next() {\n            if (this.right !== F) return j(this.right);\n            let e = this;\n            for (; e.parent !== F && e.parent.left !== e;) e = e.parent;\n            return e.parent === F ? F : e.parent\n        }\n        prev() {\n            if (this.left !== F) return B(this.left);\n            let e = this;\n            for (; e.parent !== F && e.parent.right !== e;) e = e.parent;\n            return e.parent === F ? F : e.parent\n        }\n        detach() {\n            this.parent = null, this.left = null, this.right = null\n        }\n    }\n    const F = new R(null, 0);\n\n    function j(e) {\n        for (; e.left !== F;) e = e.left;\n        return e\n    }\n\n    function B(e) {\n        for (; e.right !== F;) e = e.right;\n        return e\n    }\n\n    function V(e) {\n        return e === F ? 0 : e.size_left + e.piece.length + V(e.right)\n    }\n\n    function W(e) {\n        return e === F ? 0 : e.lf_left + e.piece.lineFeedCnt + W(e.right)\n    }\n\n    function z() {\n        F.parent = F\n    }\n\n    function H(e, t) {\n        let i = t.right;\n        i.size_left += t.size_left + (t.piece ? t.piece.length : 0), i.lf_left += t.lf_left + (t.piece ? t.piece.lineFeedCnt : 0), t.right = i.left, i.left !== F && (i.left.parent = t), i.parent = t.parent, t.parent === F ? e.root = i : t.parent.left === t ? t.parent.left = i : t.parent.right = i, (i.left = t).parent = i\n    }\n\n    function U(e, t) {\n        let i = t.left;\n        t.left = i.right, i.right !== F && (i.right.parent = t), i.parent = t.parent, t.size_left -= i.size_left + (i.piece ? i.piece.length : 0), t.lf_left -= i.lf_left + (i.piece ? i.piece.lineFeedCnt : 0), t.parent === F ? e.root = i : t === t.parent.right ? t.parent.right = i : t.parent.left = i, (i.right = t).parent = i\n    }\n\n    function K(e, t) {\n        let i, n;\n        if (i = t.left === F ? (n = t, n.right) : t.right === F ? (n = t, n.left) : (n = j(t.right), n.right), n === e.root) return e.root = i, i.color = 0, t.detach(), z(), void(e.root.parent = F);\n        var r, o, s, a = 1 === n.color;\n        if (n === n.parent.left ? n.parent.left = i : n.parent.right = i, n === t ? (i.parent = n.parent, G(e, i)) : (n.parent === t ? i.parent = n : i.parent = n.parent, G(e, i), n.left = t.left, n.right = t.right, n.parent = t.parent, n.color = t.color, t === e.root ? e.root = n : t === t.parent.left ? t.parent.left = n : t.parent.right = n, n.left !== F && (n.left.parent = n), n.right !== F && (n.right.parent = n), n.size_left = t.size_left, n.lf_left = t.lf_left, G(e, n)), t.detach(), i.parent.left === i && (r = V(i), o = W(i), r === i.parent.size_left && o === i.parent.lf_left || (s = r - i.parent.size_left, t = o - i.parent.lf_left, i.parent.size_left = r, i.parent.lf_left = o, q(e, i.parent, s, t))), G(e, i.parent), a) z();\n        else {\n            let t;\n            for (; i !== e.root && 0 === i.color;) i = i === i.parent.left ? (t = i.parent.right, 1 === t.color && (t.color = 0, i.parent.color = 1, H(e, i.parent), t = i.parent.right), 0 === t.left.color && 0 === t.right.color ? (t.color = 1, i.parent) : (0 === t.right.color && (t.left.color = 0, t.color = 1, U(e, t), t = i.parent.right), t.color = i.parent.color, i.parent.color = 0, t.right.color = 0, H(e, i.parent), e.root)) : (t = i.parent.left, 1 === t.color && (t.color = 0, i.parent.color = 1, U(e, i.parent), t = i.parent.left), 0 === t.left.color && 0 === t.right.color ? (t.color = 1, i.parent) : (0 === t.left.color && (t.right.color = 0, t.color = 1, H(e, t), t = i.parent.left), t.color = i.parent.color, i.parent.color = 0, t.left.color = 0, U(e, i.parent), e.root));\n            i.color = 0, z()\n        }\n    }\n\n    function $(e, t) {\n        for (G(e, t); t !== e.root && 1 === t.parent.color;)\n            if (t.parent === t.parent.parent.left) {\n                const i = t.parent.parent.right;\n                1 === i.color ? (t.parent.color = 0, i.color = 0, t.parent.parent.color = 1, t = t.parent.parent) : (t === t.parent.right && H(e, t = t.parent), t.parent.color = 0, t.parent.parent.color = 1, U(e, t.parent.parent))\n            } else {\n                const i = t.parent.parent.left;\n                1 === i.color ? (t.parent.color = 0, i.color = 0, t.parent.parent.color = 1, t = t.parent.parent) : (t === t.parent.left && U(e, t = t.parent), t.parent.color = 0, t.parent.parent.color = 1, H(e, t.parent.parent))\n            } e.root.color = 0\n    }\n\n    function q(e, t, i, n) {\n        for (; t !== e.root && t !== F;) t.parent.left === t && (t.parent.size_left += i, t.parent.lf_left += n), t = t.parent\n    }\n\n    function G(e, t) {\n        var i, n;\n        if (t !== e.root) {\n            for (; t !== e.root && t === t.parent.right;) t = t.parent;\n            if (t !== e.root)\n                for (i = V((t = t.parent).left) - t.size_left, n = W(t.left) - t.lf_left, t.size_left += i, t.lf_left += n; t !== e.root && (0 != i || 0 != n);) t.parent.left === t && (t.parent.size_left += i, t.parent.lf_left += n), t = t.parent\n        }\n    }\n    F.parent = F, F.left = F, F.right = F, F.color = 0;\n    var Y = i(89);\n    const Z = 65535;\n\n    function X(e) {\n        let t;\n        return t = new(e[e.length - 1] < 65536 ? Uint16Array : Uint32Array)(e.length), t.set(e, 0), t\n    }\n    class Q {\n        constructor(e, t, i, n, r) {\n            this.lineStarts = e, this.cr = t, this.lf = i, this.crlf = n, this.isBasicASCII = r\n        }\n    }\n\n    function J(e, t = !0) {\n        let i = [0],\n            n = 1;\n        for (let t = 0, o = e.length; t < o; t++) {\n            var r = e.charCodeAt(t);\n            13 === r ? t + 1 < o && 10 === e.charCodeAt(t + 1) ? (i[n++] = t + 2, t++) : i[n++] = t + 1 : 10 === r && (i[n++] = t + 1)\n        }\n        return t ? X(i) : i\n    }\n    class ee {\n        constructor(e, t, i, n, r) {\n            this.bufferIndex = e, this.start = t, this.end = i, this.lineFeedCnt = n, this.length = r\n        }\n    }\n    class te {\n        constructor(e, t) {\n            this.buffer = e, this.lineStarts = t\n        }\n    }\n    class ie {\n        constructor(e, t) {\n            this._pieces = [], this._tree = e, this._BOM = t, this._index = 0, e.root !== F && e.iterate(e.root, e => (e !== F && this._pieces.push(e.piece), !0))\n        }\n        read() {\n            return 0 === this._pieces.length ? 0 === this._index ? (this._index++, this._BOM) : null : this._index > this._pieces.length - 1 ? null : 0 === this._index ? this._BOM + this._tree.getPieceContent(this._pieces[this._index++]) : this._tree.getPieceContent(this._pieces[this._index++])\n        }\n    }\n    class ne {\n        constructor(e) {\n            this._limit = e, this._cache = []\n        }\n        get(e) {\n            for (let i = this._cache.length - 1; 0 <= i; i--) {\n                var t = this._cache[i];\n                if (t.nodeStartOffset <= e && t.nodeStartOffset + t.node.piece.length >= e) return t\n            }\n            return null\n        }\n        get2(e) {\n            for (let i = this._cache.length - 1; 0 <= i; i--) {\n                var t = this._cache[i];\n                if (t.nodeStartLineNumber && t.nodeStartLineNumber < e && t.nodeStartLineNumber + t.node.piece.lineFeedCnt >= e) return t\n            }\n            return null\n        }\n        set(e) {\n            this._cache.length >= this._limit && this._cache.shift(), this._cache.push(e)\n        }\n        validate(e) {\n            let t = !1,\n                i = this._cache;\n            for (let r = 0; r < i.length; r++) {\n                var n = i[r];\n                (null === n.node.parent || n.nodeStartOffset >= e) && (i[r] = null, t = !0)\n            }\n            if (t) {\n                let e = [];\n                for (const t of i) null !== t && e.push(t);\n                this._cache = e\n            }\n        }\n    }\n    class re {\n        constructor(e, t, i) {\n            this.create(e, t, i)\n        }\n        create(e, t, i) {\n            this._buffers = [new te(\"\", [0])], this._lastChangeBufferPos = {\n                line: 0,\n                column: 0\n            }, this.root = F, this._lineCnt = 1, this._length = 0, this._EOL = t, this._EOLLength = t.length, this._EOLNormalized = i;\n            let n = null;\n            for (let t = 0, i = e.length; t < i; t++) {\n                var r;\n                0 < e[t].buffer.length && (e[t].lineStarts || (e[t].lineStarts = J(e[t].buffer)), r = new ee(t + 1, {\n                    line: 0,\n                    column: 0\n                }, {\n                    line: e[t].lineStarts.length - 1,\n                    column: e[t].buffer.length - e[t].lineStarts[e[t].lineStarts.length - 1]\n                }, e[t].lineStarts.length - 1, e[t].buffer.length), this._buffers.push(e[t]), n = this.rbInsertRight(n, r))\n            }\n            this._searchCache = new ne(1), this._lastVisitedLine = {\n                lineNumber: 0,\n                value: \"\"\n            }, this.computeBufferMetadata()\n        }\n        normalizeEOL(e) {\n            var t;\n            let i = 65535 - Math.floor(21845),\n                n = 2 * i,\n                r = \"\",\n                o = 0,\n                s = [];\n            this.iterate(this.root, t => {\n                var a = this.getNodeContent(t),\n                    l = a.length;\n                return o <= i || o + l < n ? (r += a, o += l, !0) : (t = r.replace(/\\r\\n|\\r|\\n/g, e), s.push(new te(t, J(t))), r = a, o = l, !0)\n            }), 0 < o && (t = r.replace(/\\r\\n|\\r|\\n/g, e), s.push(new te(t, J(t)))), this.create(s, e, !0)\n        }\n        getEOL() {\n            return this._EOL\n        }\n        setEOL(e) {\n            this._EOL = e, this._EOLLength = this._EOL.length, this.normalizeEOL(e)\n        }\n        createSnapshot(e) {\n            return new ie(this, e)\n        }\n        getOffsetAt(e, t) {\n            let i = 0,\n                n = this.root;\n            for (; n !== F;)\n                if (n.left !== F && n.lf_left + 1 >= e) n = n.left;\n                else {\n                    if (n.lf_left + n.piece.lineFeedCnt + 1 >= e) return i += n.size_left, i + (this.getAccumulatedValue(n, e - n.lf_left - 2) + t - 1);\n                    e -= n.lf_left + n.piece.lineFeedCnt, i += n.size_left + n.piece.length, n = n.right\n                } return i\n        }\n        getPositionAt(e) {\n            e = Math.floor(e), e = Math.max(0, e);\n            let t = this.root,\n                i = 0;\n            for (var n = e; t !== F;)\n                if (0 !== t.size_left && t.size_left >= e) t = t.left;\n                else {\n                    if (t.size_left + t.piece.length >= e) {\n                        var r = this.getIndexOf(t, e - t.size_left);\n                        return i += t.lf_left + r.index, 0 !== r.index ? new d.a(i + 1, r.remainder + 1) : (r = this.getOffsetAt(i + 1, 1), new d.a(i + 1, n - r + 1))\n                    }\n                    if (e -= t.size_left + t.piece.length, i += t.lf_left + t.piece.lineFeedCnt, t.right === F) return r = this.getOffsetAt(i + 1, 1), new d.a(i + 1, n - e - r + 1);\n                    t = t.right\n                } return new d.a(1, 1)\n        }\n        getValueInRange(e, t) {\n            if (e.startLineNumber === e.endLineNumber && e.startColumn === e.endColumn) return \"\";\n            var i = this.nodeAt2(e.startLineNumber, e.startColumn);\n            e = this.nodeAt2(e.endLineNumber, e.endColumn);\n            let n = this.getValueInRange2(i, e);\n            return !t || t === this._EOL && this._EOLNormalized && t === this.getEOL() && this._EOLNormalized ? n : n.replace(/\\r\\n|\\r|\\n/g, t)\n        }\n        getValueInRange2(e, t) {\n            if (e.node === t.node) {\n                var i = e.node;\n                let n = this._buffers[i.piece.bufferIndex].buffer;\n                return i = this.offsetInBuffer(i.piece.bufferIndex, i.piece.start), n.substring(i + e.remainder, i + t.remainder)\n            }\n            let n = e.node,\n                r = this._buffers[n.piece.bufferIndex].buffer;\n            i = this.offsetInBuffer(n.piece.bufferIndex, n.piece.start);\n            let o = r.substring(i + e.remainder, i + n.piece.length);\n            for (n = n.next(); n !== F;) {\n                let e = this._buffers[n.piece.bufferIndex].buffer;\n                var s = this.offsetInBuffer(n.piece.bufferIndex, n.piece.start);\n                if (n === t.node) {\n                    o += e.substring(s, s + t.remainder);\n                    break\n                }\n                o += e.substr(s, n.piece.length), n = n.next()\n            }\n            return o\n        }\n        getLinesContent() {\n            let e = [],\n                t = 0,\n                i = \"\",\n                n = !1;\n            return this.iterate(this.root, r => {\n                if (r === F) return !0;\n                var o = r.piece;\n                let s = o.length;\n                if (0 === s) return !0;\n                const a = this._buffers[o.bufferIndex].buffer;\n                var l = this._buffers[o.bufferIndex].lineStarts,\n                    d = (r = o.start.line, o.end.line);\n                let c = l[r] + o.start.column;\n                if (n && (10 === a.charCodeAt(c) && (c++, s--), e[t++] = i, i = \"\", n = !1, 0 === s)) return !0;\n                if (r === d) return this._EOLNormalized || 13 !== a.charCodeAt(c + s - 1) ? i += a.substr(c, s) : (n = !0, i += a.substr(c, s - 1)), !0;\n                i += this._EOLNormalized ? a.substring(c, Math.max(c, l[r + 1] - this._EOLLength)) : a.substring(c, l[r + 1]).replace(/(\\r\\n|\\r|\\n)$/, \"\"), e[t++] = i;\n                for (let n = r + 1; n < d; n++) i = this._EOLNormalized ? a.substring(l[n], l[n + 1] - this._EOLLength) : a.substring(l[n], l[n + 1]).replace(/(\\r\\n|\\r|\\n)$/, \"\"), e[t++] = i;\n                return this._EOLNormalized || 13 !== a.charCodeAt(l[d] + o.end.column - 1) ? i = a.substr(l[d], o.end.column) : (n = !0, 0 === o.end.column ? t-- : i = a.substr(l[d], o.end.column - 1)), !0\n            }), n && (e[t++] = i, i = \"\"), e[t++] = i, e\n        }\n        getLength() {\n            return this._length\n        }\n        getLineCount() {\n            return this._lineCnt\n        }\n        getLineContent(e) {\n            return this._lastVisitedLine.lineNumber === e || ((this._lastVisitedLine.lineNumber = e) === this._lineCnt ? this._lastVisitedLine.value = this.getLineRawContent(e) : this._EOLNormalized ? this._lastVisitedLine.value = this.getLineRawContent(e, this._EOLLength) : this._lastVisitedLine.value = this.getLineRawContent(e).replace(/(\\r\\n|\\r|\\n)$/, \"\")), this._lastVisitedLine.value\n        }\n        _getCharCode(e) {\n            if (e.remainder === e.node.piece.length) {\n                var t = e.node.next();\n                if (!t) return 0;\n                let i = this._buffers[t.piece.bufferIndex];\n                return t = this.offsetInBuffer(t.piece.bufferIndex, t.piece.start), i.buffer.charCodeAt(t)\n            } {\n                let t = this._buffers[e.node.piece.bufferIndex];\n                return e = this.offsetInBuffer(e.node.piece.bufferIndex, e.node.piece.start) + e.remainder, t.buffer.charCodeAt(e)\n            }\n        }\n        getLineCharCode(e, t) {\n            return t = this.nodeAt2(e, t + 1), this._getCharCode(t)\n        }\n        getLineLength(e) {\n            return e !== this.getLineCount() ? this.getOffsetAt(e + 1, 1) - this.getOffsetAt(e, 1) - this._EOLLength : (e = this.getOffsetAt(e, 1), this.getLength() - e)\n        }\n        findMatchesInNode(e, t, i, n, r, o, s, a, l, d, h) {\n            let u = this._buffers[e.piece.bufferIndex];\n            var p = this.offsetInBuffer(e.piece.bufferIndex, e.piece.start);\n            let g = this.offsetInBuffer(e.piece.bufferIndex, r);\n            var f, m = this.offsetInBuffer(e.piece.bufferIndex, o),\n                v = {\n                    line: 0,\n                    column: 0\n                };\n            let b, _;\n            t._wordSeparators ? (b = u.buffer.substring(g, m), _ = e => e + g, t.reset(0)) : (b = u.buffer, _ = e => e, t.reset(g));\n            do {\n                if (f = t.next(b)) {\n                    if (_(f.index) >= m) return d;\n                    this.positionInBuffer(e, _(f.index) - p, v);\n                    var w = this.getLineFeedCnt(e.piece.bufferIndex, r, v),\n                        y = v.line === r.line ? v.column - r.column + n : v.column + 1,\n                        C = y + f[0].length;\n                    if (h[d++] = Object(Y.d)(new c.a(i + w, y, i + w, C), f, a), _(f.index) + f[0].length >= m) return d;\n                    if (l <= d) return d\n                }\n            } while (f);\n            return d\n        }\n        findMatchesLineByLine(e, t, i, n) {\n            var r = [];\n            let o = 0;\n            var s = new Y.b(t.wordSeparators, t.regex);\n            let a = this.nodeAt2(e.startLineNumber, e.startColumn);\n            if (null === a) return [];\n            var l = this.nodeAt2(e.endLineNumber, e.endColumn);\n            if (null === l) return [];\n            let d = this.positionInBuffer(a.node, a.remainder);\n            var c = this.positionInBuffer(l.node, l.remainder);\n            if (a.node === l.node) return this.findMatchesInNode(a.node, s, e.startLineNumber, e.startColumn, d, c, t, i, n, o, r), r;\n            let h = e.startLineNumber,\n                u = a.node;\n            for (; u !== l.node;) {\n                var p = this.getLineFeedCnt(u.piece.bufferIndex, d, u.piece.end);\n                if (1 <= p) {\n                    var g = this._buffers[u.piece.bufferIndex].lineStarts,\n                        f = this.offsetInBuffer(u.piece.bufferIndex, u.piece.start),\n                        m = g[d.line + p];\n                    g = h === e.startLineNumber ? e.startColumn : 1;\n                    if (o = this.findMatchesInNode(u, s, h, g, d, this.positionInBuffer(u, m - f), t, i, n, o, r), o >= n) return r;\n                    h += p\n                }\n                if (f = h === e.startLineNumber ? e.startColumn - 1 : 0, h === e.endLineNumber) return p = this.getLineContent(h).substring(f, e.endColumn - 1), o = this._findMatchesInLine(t, s, p, e.endLineNumber, f, o, r, i, n), r;\n                if (o = this._findMatchesInLine(t, s, this.getLineContent(h).substr(f), h, f, o, r, i, n), o >= n) return r;\n                h++, a = this.nodeAt2(h, 1), u = a.node, d = this.positionInBuffer(a.node, a.remainder)\n            }\n            if (h === e.endLineNumber) {\n                var v = h === e.startLineNumber ? e.startColumn - 1 : 0,\n                    b = this.getLineContent(h).substring(v, e.endColumn - 1);\n                return o = this._findMatchesInLine(t, s, b, e.endLineNumber, v, o, r, i, n), r\n            }\n            return v = h === e.startLineNumber ? e.startColumn : 1, o = this.findMatchesInNode(l.node, s, h, v, d, c, t, i, n, o, r), r\n        }\n        _findMatchesInLine(e, t, i, n, r, o, s, a, l) {\n            var d, h = e.wordSeparators;\n            if (!a && e.simpleSearch) {\n                var p = e.simpleSearch,\n                    g = p.length,\n                    f = i.length;\n                let t = -g;\n                for (; - 1 !== (t = i.indexOf(p, t + g));)\n                    if ((!h || Object(Y.e)(h, i, f, t, g)) && (s[o++] = new u.b(new c.a(n, t + 1 + r, n, t + 1 + g + r), null), l <= o)) return o;\n                return o\n            }\n            t.reset(0);\n            do {\n                if ((d = t.next(i)) && (s[o++] = Object(Y.d)(new c.a(n, d.index + 1 + r, n, d.index + 1 + d[0].length + r), d, a), l <= o)) return o\n            } while (d);\n            return o\n        }\n        insert(e, t, i = !1) {\n            if (this._EOLNormalized = this._EOLNormalized && i, this._lastVisitedLine.lineNumber = 0, this._lastVisitedLine.value = \"\", this.root !== F) {\n                var {\n                    node: n,\n                    remainder: r,\n                    nodeStartOffset: o\n                } = this.nodeAt(e), s = n.piece, a = s.bufferIndex;\n                i = this.positionInBuffer(n, r);\n                if (0 === n.piece.bufferIndex && s.end.line === this._lastChangeBufferPos.line && s.end.column === this._lastChangeBufferPos.column && o + s.length === e && t.length < Z) return this.appendToNode(n, t), void this.computeBufferMetadata();\n                if (o === e) this.insertContentToNodeLeft(t, n), this._searchCache.validate(e);\n                else if (o + n.piece.length > e) {\n                    let e = [],\n                        o = new ee(s.bufferIndex, i, s.end, this.getLineFeedCnt(s.bufferIndex, i, s.end), this.offsetInBuffer(a, s.end) - this.offsetInBuffer(a, i));\n                    this.shouldCheckCRLF() && this.endWithCR(t) && 10 === this.nodeCharCodeAt(n, r) && (a = {\n                        line: o.start.line + 1,\n                        column: 0\n                    }, o = new ee(o.bufferIndex, a, o.end, this.getLineFeedCnt(o.bufferIndex, a, o.end), o.length - 1), t += \"\\n\"), this.shouldCheckCRLF() && this.startWithLF(t) && 13 === this.nodeCharCodeAt(n, r - 1) ? (r = this.positionInBuffer(n, r - 1), this.deleteNodeTail(n, r), t = \"\\r\" + t, 0 === n.piece.length && e.push(n)) : this.deleteNodeTail(n, i);\n                    var l = this.createNewPieces(t);\n                    0 < o.length && this.rbInsertRight(n, o);\n                    let d = n;\n                    for (let e = 0; e < l.length; e++) d = this.rbInsertRight(d, l[e]);\n                    this.deleteNodes(e)\n                } else this.insertContentToNodeRight(t, n)\n            } else {\n                var d = this.createNewPieces(t);\n                let e = this.rbInsertLeft(null, d[0]);\n                for (let t = 1; t < d.length; t++) e = this.rbInsertRight(e, d[t])\n            }\n            this.computeBufferMetadata()\n        }\n        delete(e, t) {\n            if (this._lastVisitedLine.lineNumber = 0, this._lastVisitedLine.value = \"\", !(t <= 0 || this.root === F)) {\n                var i = this.nodeAt(e),\n                    n = this.nodeAt(e + t);\n                let a = i.node;\n                var r = n.node;\n                if (a === r) {\n                    var o = this.positionInBuffer(a, i.remainder),\n                        s = this.positionInBuffer(a, n.remainder);\n                    return i.nodeStartOffset !== e ? (i.nodeStartOffset + a.piece.length === e + t ? (this.deleteNodeTail(a, o), this.validateCRLFWithNextNode(a)) : this.shrinkNode(a, o, s), void this.computeBufferMetadata()) : t !== a.piece.length ? (this.deleteNodeHead(a, s), this._searchCache.validate(e), this.validateCRLFWithPrevNode(a), void this.computeBufferMetadata()) : (s = a.next(), K(this, a), this.validateCRLFWithPrevNode(s), void this.computeBufferMetadata())\n                }\n                let l = [];\n                i = this.positionInBuffer(a, i.remainder), this.deleteNodeTail(a, i), this._searchCache.validate(e), 0 === a.piece.length && l.push(a), n = this.positionInBuffer(r, n.remainder), this.deleteNodeHead(r, n), 0 === r.piece.length && l.push(r);\n                for (let e = a.next(); e !== F && e !== r; e = e.next()) l.push(e);\n                n = 0 === a.piece.length ? a.prev() : a, this.deleteNodes(l), this.validateCRLFWithNextNode(n), this.computeBufferMetadata()\n            }\n        }\n        insertContentToNodeLeft(e, t) {\n            let i = [];\n            var n, r;\n            this.shouldCheckCRLF() && this.endWithCR(e) && this.startWithLF(t) && (n = {\n                line: (r = t.piece).start.line + 1,\n                column: 0\n            }, r = new ee(r.bufferIndex, n, r.end, this.getLineFeedCnt(r.bufferIndex, n, r.end), r.length - 1), t.piece = r, e += \"\\n\", q(this, t, -1, -1), 0 === t.piece.length && i.push(t));\n            var o = this.createNewPieces(e);\n            let s = this.rbInsertLeft(t, o[o.length - 1]);\n            for (let e = o.length - 2; 0 <= e; e--) s = this.rbInsertLeft(s, o[e]);\n            this.validateCRLFWithPrevNode(s), this.deleteNodes(i)\n        }\n        insertContentToNodeRight(e, t) {\n            this.adjustCarriageReturnFromNext(e, t) && (e += \"\\n\");\n            var i = this.createNewPieces(e);\n            let n = t = this.rbInsertRight(t, i[0]);\n            for (let e = 1; e < i.length; e++) n = this.rbInsertRight(n, i[e]);\n            this.validateCRLFWithPrevNode(t)\n        }\n        positionInBuffer(e, t, i) {\n            var n = e.piece,\n                r = (e = e.piece.bufferIndex, this._buffers[e].lineStarts),\n                o = r[n.start.line] + n.start.column + t;\n            let s = n.start.line,\n                a = n.end.line,\n                l = 0;\n            var d;\n            let c = 0;\n            for (; s <= a && (l = s + (a - s) / 2 | 0, c = r[l], l !== a);)\n                if (d = r[l + 1], o < c) a = l - 1;\n                else {\n                    if (!(d <= o)) break;\n                    s = l + 1\n                } return i ? (i.line = l, i.column = o - c, null) : {\n                line: l,\n                column: o - c\n            }\n        }\n        getLineFeedCnt(e, t, i) {\n            if (0 === i.column) return i.line - t.line;\n            var n = this._buffers[e].lineStarts;\n            if (i.line === n.length - 1) return i.line - t.line;\n            var r = n[i.line + 1];\n            if ((n = n[i.line] + i.column) + 1 < r) return i.line - t.line;\n            return 13 === this._buffers[e].buffer.charCodeAt(n - 1) ? i.line - t.line + 1 : i.line - t.line\n        }\n        offsetInBuffer(e, t) {\n            return this._buffers[e].lineStarts[t.line] + t.column\n        }\n        deleteNodes(e) {\n            for (let t = 0; t < e.length; t++) K(this, e[t])\n        }\n        createNewPieces(e) {\n            if (e.length > Z) {\n                let n = [];\n                for (; e.length > Z;) {\n                    var t = e.charCodeAt(65534);\n                    let i;\n                    e = 13 === t || 55296 <= t && t <= 56319 ? (i = e.substring(0, 65534), e.substring(65534)) : (i = e.substring(0, Z), e.substring(Z)), t = J(i), n.push(new ee(this._buffers.length, {\n                        line: 0,\n                        column: 0\n                    }, {\n                        line: t.length - 1,\n                        column: i.length - t[t.length - 1]\n                    }, t.length - 1, i.length)), this._buffers.push(new te(i, t))\n                }\n                var i = J(e);\n                return n.push(new ee(this._buffers.length, {\n                    line: 0,\n                    column: 0\n                }, {\n                    line: i.length - 1,\n                    column: e.length - i[i.length - 1]\n                }, i.length - 1, e.length)), this._buffers.push(new te(e, i)), n\n            }\n            let n = this._buffers[0].buffer.length;\n            const r = J(e, !1);\n            let o = this._lastChangeBufferPos;\n            if (this._buffers[0].lineStarts[this._buffers[0].lineStarts.length - 1] === n && 0 !== n && this.startWithLF(e) && this.endWithCR(this._buffers[0].buffer)) {\n                this._lastChangeBufferPos = {\n                    line: this._lastChangeBufferPos.line,\n                    column: this._lastChangeBufferPos.column + 1\n                }, o = this._lastChangeBufferPos;\n                for (let e = 0; e < r.length; e++) r[e] += n + 1;\n                this._buffers[0].lineStarts = this._buffers[0].lineStarts.concat(r.slice(1)), this._buffers[0].buffer += \"_\" + e, n += 1\n            } else {\n                if (0 !== n)\n                    for (let e = 0; e < r.length; e++) r[e] += n;\n                this._buffers[0].lineStarts = this._buffers[0].lineStarts.concat(r.slice(1)), this._buffers[0].buffer += e\n            }\n            var s = this._buffers[0].buffer.length;\n            i = {\n                line: i = this._buffers[0].lineStarts.length - 1,\n                column: s - this._buffers[0].lineStarts[i]\n            }, s = new ee(0, o, i, this.getLineFeedCnt(0, o, i), s - n);\n            return this._lastChangeBufferPos = i, [s]\n        }\n        getLineRawContent(e, t = 0) {\n            let i = this.root,\n                n = \"\";\n            var r = this._searchCache.get2(e);\n            if (r) {\n                i = r.node;\n                var o = this.getAccumulatedValue(i, e - r.nodeStartLineNumber - 1);\n                let a = this._buffers[i.piece.bufferIndex].buffer;\n                var s = this.offsetInBuffer(i.piece.bufferIndex, i.piece.start);\n                if (r.nodeStartLineNumber + i.piece.lineFeedCnt !== e) return r = this.getAccumulatedValue(i, e - r.nodeStartLineNumber), a.substring(s + o, s + r - t);\n                n = a.substring(s + o, s + i.piece.length)\n            } else {\n                let r = 0;\n                for (var a = e; i !== F;)\n                    if (i.left !== F && i.lf_left >= e - 1) i = i.left;\n                    else {\n                        if (i.lf_left + i.piece.lineFeedCnt > e - 1) {\n                            var l = this.getAccumulatedValue(i, e - i.lf_left - 2),\n                                d = this.getAccumulatedValue(i, e - i.lf_left - 1);\n                            let n = this._buffers[i.piece.bufferIndex].buffer;\n                            var c = this.offsetInBuffer(i.piece.bufferIndex, i.piece.start);\n                            return r += i.size_left, this._searchCache.set({\n                                node: i,\n                                nodeStartOffset: r,\n                                nodeStartLineNumber: a - (e - 1 - i.lf_left)\n                            }), n.substring(c + l, c + d - t)\n                        }\n                        if (i.lf_left + i.piece.lineFeedCnt === e - 1) {\n                            c = this.getAccumulatedValue(i, e - i.lf_left - 2);\n                            let t = this._buffers[i.piece.bufferIndex].buffer;\n                            d = this.offsetInBuffer(i.piece.bufferIndex, i.piece.start), n = t.substring(d + c, d + i.piece.length);\n                            break\n                        }\n                        e -= i.lf_left + i.piece.lineFeedCnt, r += i.size_left + i.piece.length, i = i.right\n                    }\n            }\n            for (i = i.next(); i !== F;) {\n                let e = this._buffers[i.piece.bufferIndex].buffer;\n                if (0 < i.piece.lineFeedCnt) {\n                    var h = this.getAccumulatedValue(i, 0),\n                        u = this.offsetInBuffer(i.piece.bufferIndex, i.piece.start);\n                    return n += e.substring(u, u + h - t), n\n                }\n                h = this.offsetInBuffer(i.piece.bufferIndex, i.piece.start), n += e.substr(h, i.piece.length), i = i.next()\n            }\n            return n\n        }\n        computeBufferMetadata() {\n            let e = this.root,\n                t = 1,\n                i = 0;\n            for (; e !== F;) t += e.lf_left + e.piece.lineFeedCnt, i += e.size_left + e.piece.length, e = e.right;\n            this._lineCnt = t, this._length = i, this._searchCache.validate(this._length)\n        }\n        getIndexOf(e, t) {\n            var i = e.piece,\n                n = this.positionInBuffer(e, t),\n                r = n.line - i.start.line;\n            return this.offsetInBuffer(i.bufferIndex, i.end) - this.offsetInBuffer(i.bufferIndex, i.start) === t && (i = this.getLineFeedCnt(e.piece.bufferIndex, i.start, n)) !== r ? {\n                index: i,\n                remainder: 0\n            } : {\n                index: r,\n                remainder: n.column\n            }\n        }\n        getAccumulatedValue(e, t) {\n            if (t < 0) return 0;\n            var i = e.piece;\n            e = this._buffers[i.bufferIndex].lineStarts;\n            return (t = i.start.line + t + 1) > i.end.line ? e[i.end.line] + i.end.column - e[i.start.line] - i.start.column : e[t] - e[i.start.line] - i.start.column\n        }\n        deleteNodeTail(e, t) {\n            var i = e.piece,\n                n = i.lineFeedCnt,\n                r = this.offsetInBuffer(i.bufferIndex, i.end),\n                o = t,\n                s = this.offsetInBuffer(i.bufferIndex, o);\n            n = (t = this.getLineFeedCnt(i.bufferIndex, i.start, o)) - n, s -= r, r = i.length + s;\n            e.piece = new ee(i.bufferIndex, i.start, o, t, r), q(this, e, s, n)\n        }\n        deleteNodeHead(e, t) {\n            var i = e.piece,\n                n = i.lineFeedCnt,\n                r = this.offsetInBuffer(i.bufferIndex, i.start),\n                o = t,\n                s = this.getLineFeedCnt(i.bufferIndex, o, i.end);\n            t = s - n, n = r - this.offsetInBuffer(i.bufferIndex, o), r = i.length + n;\n            e.piece = new ee(i.bufferIndex, o, i.end, s, r), q(this, e, n, t)\n        }\n        shrinkNode(e, t, i) {\n            var n = e.piece,\n                r = n.start,\n                o = n.end,\n                s = n.length,\n                a = n.lineFeedCnt,\n                l = t,\n                d = this.getLineFeedCnt(n.bufferIndex, n.start, l);\n            r = this.offsetInBuffer(n.bufferIndex, t) - this.offsetInBuffer(n.bufferIndex, r);\n            e.piece = new ee(n.bufferIndex, n.start, l, d, r), q(this, e, r - s, d - a), i = new ee(n.bufferIndex, i, o, this.getLineFeedCnt(n.bufferIndex, i, o), this.offsetInBuffer(n.bufferIndex, o) - this.offsetInBuffer(n.bufferIndex, i)), i = this.rbInsertRight(e, i), this.validateCRLFWithPrevNode(i)\n        }\n        appendToNode(e, t) {\n            this.adjustCarriageReturnFromNext(t, e) && (t += \"\\n\");\n            var i = this.shouldCheckCRLF() && this.startWithLF(t) && this.endWithCR(e),\n                n = this._buffers[0].buffer.length;\n            this._buffers[0].buffer += t;\n            const r = J(t, !1);\n            for (let e = 0; e < r.length; e++) r[e] += n;\n            i && (a = this._buffers[0].lineStarts[this._buffers[0].lineStarts.length - 2], this._buffers[0].lineStarts.pop(), this._lastChangeBufferPos = {\n                line: this._lastChangeBufferPos.line - 1,\n                column: n - a\n            }), this._buffers[0].lineStarts = this._buffers[0].lineStarts.concat(r.slice(1));\n            var o, s = {\n                    line: o = this._buffers[0].lineStarts.length - 1,\n                    column: this._buffers[0].buffer.length - this._buffers[0].lineStarts[o]\n                },\n                a = (i = e.piece.length + t.length, e.piece.lineFeedCnt);\n            a = (o = this.getLineFeedCnt(0, e.piece.start, s)) - a;\n            e.piece = new ee(e.piece.bufferIndex, e.piece.start, s, o, i), this._lastChangeBufferPos = s, q(this, e, t.length, a)\n        }\n        nodeAt(e) {\n            let t = this.root;\n            var i = this._searchCache.get(e);\n            if (i) return {\n                node: i.node,\n                nodeStartOffset: i.nodeStartOffset,\n                remainder: e - i.nodeStartOffset\n            };\n            let n = 0;\n            for (; t !== F;)\n                if (t.size_left > e) t = t.left;\n                else {\n                    if (t.size_left + t.piece.length >= e) {\n                        n += t.size_left;\n                        var r = {\n                            node: t,\n                            remainder: e - t.size_left,\n                            nodeStartOffset: n\n                        };\n                        return this._searchCache.set(r), r\n                    }\n                    e -= t.size_left + t.piece.length, n += t.size_left + t.piece.length, t = t.right\n                } return null\n        }\n        nodeAt2(e, t) {\n            let i = this.root,\n                n = 0;\n            for (; i !== F;)\n                if (i.left !== F && i.lf_left >= e - 1) i = i.left;\n                else {\n                    if (i.lf_left + i.piece.lineFeedCnt > e - 1) {\n                        var r = this.getAccumulatedValue(i, e - i.lf_left - 2),\n                            o = this.getAccumulatedValue(i, e - i.lf_left - 1);\n                        return n += i.size_left, {\n                            node: i,\n                            remainder: Math.min(r + t - 1, o),\n                            nodeStartOffset: n\n                        }\n                    }\n                    if (i.lf_left + i.piece.lineFeedCnt === e - 1) {\n                        if ((o = this.getAccumulatedValue(i, e - i.lf_left - 2)) + t - 1 <= i.piece.length) return {\n                            node: i,\n                            remainder: o + t - 1,\n                            nodeStartOffset: n\n                        };\n                        t -= i.piece.length - o;\n                        break\n                    }\n                    e -= i.lf_left + i.piece.lineFeedCnt, n += i.size_left + i.piece.length, i = i.right\n                } for (i = i.next(); i !== F;) {\n                if (0 < i.piece.lineFeedCnt) {\n                    var s = this.getAccumulatedValue(i, 0),\n                        a = this.offsetOfNode(i);\n                    return {\n                        node: i,\n                        remainder: Math.min(t - 1, s),\n                        nodeStartOffset: a\n                    }\n                }\n                if (i.piece.length >= t - 1) return {\n                    node: i,\n                    remainder: t - 1,\n                    nodeStartOffset: a = this.offsetOfNode(i)\n                };\n                t -= i.piece.length, i = i.next()\n            }\n            return null\n        }\n        nodeCharCodeAt(e, t) {\n            if (e.piece.lineFeedCnt < 1) return -1;\n            let i = this._buffers[e.piece.bufferIndex];\n            return t = this.offsetInBuffer(e.piece.bufferIndex, e.piece.start) + t, i.buffer.charCodeAt(t)\n        }\n        offsetOfNode(e) {\n            if (!e) return 0;\n            let t = e.size_left;\n            for (; e !== this.root;) e.parent.right === e && (t += e.parent.size_left + e.parent.piece.length), e = e.parent;\n            return t\n        }\n        shouldCheckCRLF() {\n            return !(this._EOLNormalized && \"\\n\" === this._EOL)\n        }\n        startWithLF(e) {\n            if (\"string\" == typeof e) return 10 === e.charCodeAt(0);\n            if (e === F || 0 === e.piece.lineFeedCnt) return !1;\n            var t = e.piece,\n                i = this._buffers[t.bufferIndex].lineStarts,\n                n = t.start.line;\n            e = i[n] + t.start.column;\n            return n !== i.length - 1 && !(e + 1 < i[n + 1]) && 10 === this._buffers[t.bufferIndex].buffer.charCodeAt(e)\n        }\n        endWithCR(e) {\n            return \"string\" == typeof e ? 13 === e.charCodeAt(e.length - 1) : e !== F && 0 !== e.piece.lineFeedCnt && 13 === this.nodeCharCodeAt(e, e.piece.length - 1)\n        }\n        validateCRLFWithPrevNode(e) {\n            var t;\n            this.shouldCheckCRLF() && this.startWithLF(e) && (t = e.prev(), this.endWithCR(t) && this.fixCRLF(t, e))\n        }\n        validateCRLFWithNextNode(e) {\n            var t;\n            this.shouldCheckCRLF() && this.endWithCR(e) && (t = e.next(), this.startWithLF(t) && this.fixCRLF(e, t))\n        }\n        fixCRLF(e, t) {\n            let i = [];\n            var n = this._buffers[e.piece.bufferIndex].lineStarts;\n            let r;\n            r = 0 === e.piece.end.column ? {\n                line: e.piece.end.line - 1,\n                column: n[e.piece.end.line] - n[e.piece.end.line - 1] - 1\n            } : {\n                line: e.piece.end.line,\n                column: e.piece.end.column - 1\n            };\n            var o = e.piece.length - 1,\n                s = e.piece.lineFeedCnt - 1;\n            e.piece = new ee(e.piece.bufferIndex, e.piece.start, r, s, o), q(this, e, -1, -1), 0 === e.piece.length && i.push(e), n = {\n                line: t.piece.start.line + 1,\n                column: 0\n            }, s = t.piece.length - 1, o = this.getLineFeedCnt(t.piece.bufferIndex, n, t.piece.end), t.piece = new ee(t.piece.bufferIndex, n, t.piece.end, o, s), q(this, t, -1, -1), 0 === t.piece.length && i.push(t), t = this.createNewPieces(\"\\r\\n\"), this.rbInsertRight(e, t[0]);\n            for (let e = 0; e < i.length; e++) K(this, i[e])\n        }\n        adjustCarriageReturnFromNext(e, t) {\n            if (this.shouldCheckCRLF() && this.endWithCR(e)) {\n                let r = t.next();\n                var i, n;\n                if (this.startWithLF(r)) return e += \"\\n\", 1 === r.piece.length ? K(this, r) : (n = {\n                    line: (i = r.piece).start.line + 1,\n                    column: 0\n                }, t = i.length - 1, e = this.getLineFeedCnt(i.bufferIndex, n, i.end), r.piece = new ee(i.bufferIndex, n, i.end, e, t), q(this, r, -1, -1)), !0\n            }\n            return !1\n        }\n        iterate(e, t) {\n            return e === F ? t(F) : this.iterate(e.left, t) && t(e) && this.iterate(e.right, t)\n        }\n        getNodeContent(e) {\n            if (e === F) return \"\";\n            let t = this._buffers[e.piece.bufferIndex];\n            var i = e.piece;\n            e = this.offsetInBuffer(i.bufferIndex, i.start), i = this.offsetInBuffer(i.bufferIndex, i.end);\n            return t.buffer.substring(e, i)\n        }\n        getPieceContent(e) {\n            let t = this._buffers[e.bufferIndex];\n            var i = this.offsetInBuffer(e.bufferIndex, e.start);\n            e = this.offsetInBuffer(e.bufferIndex, e.end);\n            return t.buffer.substring(i, e)\n        }\n        rbInsertRight(e, t) {\n            let i = new R(t, 1);\n            if (i.left = F, i.right = F, i.parent = F, i.size_left = 0, i.lf_left = 0, this.root === F) this.root = i, i.color = 0;\n            else if (e.right === F) e.right = i, i.parent = e;\n            else {\n                let t = j(e.right);\n                t.left = i, i.parent = t\n            }\n            return $(this, i), i\n        }\n        rbInsertLeft(e, t) {\n            let i = new R(t, 1);\n            if (i.left = F, i.right = F, i.parent = F, i.size_left = 0, i.lf_left = 0, this.root === F) this.root = i, i.color = 0;\n            else if (e.left === F) e.left = i, i.parent = e;\n            else {\n                let t = B(e.left);\n                t.right = i, i.parent = t\n            }\n            return $(this, i), i\n        }\n    }\n    var oe = i(99),\n        se = i(159);\n    class ae extends o.a {\n        constructor(e, t, i, n, o, s, a) {\n            super(), this._onDidChangeContent = this._register(new r.b), this._BOM = t, this._mightContainNonBasicASCII = !s, this._mightContainRTL = n, this._mightContainUnusualLineTerminators = o, this._pieceTree = new re(e, i, a)\n        }\n        mightContainRTL() {\n            return this._mightContainRTL\n        }\n        mightContainUnusualLineTerminators() {\n            return this._mightContainUnusualLineTerminators\n        }\n        resetMightContainUnusualLineTerminators() {\n            this._mightContainUnusualLineTerminators = !1\n        }\n        mightContainNonBasicASCII() {\n            return this._mightContainNonBasicASCII\n        }\n        getBOM() {\n            return this._BOM\n        }\n        getEOL() {\n            return this._pieceTree.getEOL()\n        }\n        createSnapshot(e) {\n            return this._pieceTree.createSnapshot(e ? this._BOM : \"\")\n        }\n        getOffsetAt(e, t) {\n            return this._pieceTree.getOffsetAt(e, t)\n        }\n        getPositionAt(e) {\n            return this._pieceTree.getPositionAt(e)\n        }\n        getRangeAt(e, t) {\n            return t = e + t, e = this.getPositionAt(e), t = this.getPositionAt(t), new c.a(e.lineNumber, e.column, t.lineNumber, t.column)\n        }\n        getValueInRange(e, t = 0) {\n            return e.isEmpty() ? \"\" : (t = this._getEndOfLine(t), this._pieceTree.getValueInRange(e, t))\n        }\n        getValueLengthInRange(e, t = 0) {\n            if (e.isEmpty()) return 0;\n            if (e.startLineNumber === e.endLineNumber) return e.endColumn - e.startColumn;\n            var i = this.getOffsetAt(e.startLineNumber, e.startColumn);\n            return this.getOffsetAt(e.endLineNumber, e.endColumn) - i\n        }\n        getCharacterCountInRange(e, t = 0) {\n            if (this._mightContainNonBasicASCII) {\n                let a = 0;\n                var i = e.startLineNumber,\n                    n = e.endLineNumber;\n                for (let t = i; t <= n; t++) {\n                    const l = this.getLineContent(t);\n                    var r = t === i ? e.startColumn - 1 : 0,\n                        o = t === n ? e.endColumn - 1 : l.length;\n                    for (let e = r; e < o; e++) s.E(l.charCodeAt(e)) ? (a += 1, e += 1) : a += 1\n                }\n                return a += this._getEndOfLine(t).length * (n - i), a\n            }\n            return this.getValueLengthInRange(e, t)\n        }\n        getLength() {\n            return this._pieceTree.getLength()\n        }\n        getLineCount() {\n            return this._pieceTree.getLineCount()\n        }\n        getLinesContent() {\n            return this._pieceTree.getLinesContent()\n        }\n        getLineContent(e) {\n            return this._pieceTree.getLineContent(e)\n        }\n        getLineCharCode(e, t) {\n            return this._pieceTree.getLineCharCode(e, t)\n        }\n        getLineLength(e) {\n            return this._pieceTree.getLineLength(e)\n        }\n        getLineFirstNonWhitespaceColumn(e) {\n            return -1 === (e = s.u(this.getLineContent(e))) ? 0 : e + 1\n        }\n        getLineLastNonWhitespaceColumn(e) {\n            return -1 === (e = s.I(this.getLineContent(e))) ? 0 : e + 2\n        }\n        _getEndOfLine(e) {\n            switch (e) {\n                case 1:\n                    return \"\\n\";\n                case 2:\n                    return \"\\r\\n\";\n                case 0:\n                    return this.getEOL();\n                default:\n                    throw new Error(\"Unknown EOL preference\")\n            }\n        }\n        setEOL(e) {\n            this._pieceTree.setEOL(e)\n        }\n        applyEdits(e, t, i) {\n            let n = this._mightContainRTL,\n                r = this._mightContainUnusualLineTerminators,\n                o = this._mightContainNonBasicASCII,\n                a = !0,\n                l = [];\n            for (let t = 0; t < e.length; t++) {\n                let i = e[t];\n                a && i._isTracked && (a = !1);\n                var d, c, h = i.range;\n                if (i.text) {\n                    let e = !0;\n                    o || (e = !s.A(i.text), o = e), !n && e && (n = s.m(i.text)), !r && e && (r = s.n(i.text))\n                }\n                let u = \"\",\n                    p = 0,\n                    g = 0,\n                    f = 0;\n                i.text && ([p, g, f, d] = Object(oe.f)(i.text), c = this.getEOL(), u = 0 === d || d === (\"\\r\\n\" === c ? 2 : 1) ? i.text : i.text.replace(/\\r\\n|\\r|\\n/g, c)), l[t] = {\n                    sortIndex: t,\n                    identifier: i.identifier || null,\n                    range: h,\n                    rangeOffset: this.getOffsetAt(h.startLineNumber, h.startColumn),\n                    rangeLength: this.getValueLengthInRange(h),\n                    text: u,\n                    eolCount: p,\n                    firstLineLength: g,\n                    lastLineLength: f,\n                    forceMoveMarkers: Boolean(i.forceMoveMarkers),\n                    isAutoWhitespaceEdit: i.isAutoWhitespaceEdit || !1\n                }\n            }\n            l.sort(ae._sortOpsAscending);\n            let p = !1;\n            for (let e = 0, t = l.length - 1; e < t; e++) {\n                var g = l[e].range.getEndPosition();\n                let t = l[e + 1].range.getStartPosition();\n                if (t.isBeforeOrEqual(g)) {\n                    if (t.isBefore(g)) throw new Error(\"Overlapping ranges are not allowed!\");\n                    p = !0\n                }\n            }\n            a && (l = this._reduceOperations(l));\n            var f = i || t ? ae._getInverseEditRanges(l) : [];\n            let m = [];\n            if (t)\n                for (let e = 0; e < l.length; e++) {\n                    let t = l[e];\n                    var v = f[e];\n                    if (t.isAutoWhitespaceEdit && t.range.isEmpty())\n                        for (let e = v.startLineNumber; e <= v.endLineNumber; e++) {\n                            let i = \"\";\n                            e === v.startLineNumber && (i = this.getLineContent(t.range.startLineNumber), -1 !== s.u(i)) || m.push({\n                                lineNumber: e,\n                                oldContent: i\n                            })\n                        }\n                }\n            let b = null;\n            if (i) {\n                let e = 0;\n                b = [];\n                for (let t = 0; t < l.length; t++) {\n                    var _ = l[t],\n                        w = f[t],\n                        y = this.getValueInRange(_.range),\n                        C = _.rangeOffset + e;\n                    e += _.text.length - y.length, b[t] = {\n                        sortIndex: _.sortIndex,\n                        identifier: _.identifier,\n                        range: w,\n                        text: y,\n                        textChange: new se.a(_.rangeOffset, y, C, _.text)\n                    }\n                }\n                p || b.sort((e, t) => e.sortIndex - t.sortIndex)\n            }\n            this._mightContainRTL = n, this._mightContainUnusualLineTerminators = r, this._mightContainNonBasicASCII = o, i = this._doApplyEdits(l);\n            let x = null;\n            if (t && 0 < m.length) {\n                m.sort((e, t) => t.lineNumber - e.lineNumber), x = [];\n                for (let e = 0, t = m.length; e < t; e++) {\n                    var S, k, L = m[e].lineNumber;\n                    0 < e && m[e - 1].lineNumber === L || (S = m[e].oldContent, 0 !== (k = this.getLineContent(L)).length && k !== S && -1 === s.u(k) && x.push(L))\n                }\n            }\n            return this._onDidChangeContent.fire(), new u.a(b, i, x)\n        }\n        _reduceOperations(e) {\n            return e.length < 1e3 ? e : [this._toSingleEditOperation(e)]\n        }\n        _toSingleEditOperation(e) {\n            let t = !1;\n            var i = e[0].range,\n                n = e[e.length - 1].range,\n                r = new c.a(i.startLineNumber, i.startColumn, n.endLineNumber, n.endColumn);\n            let o = i.startLineNumber,\n                s = i.startColumn;\n            const a = [];\n            for (let i = 0, n = e.length; i < n; i++) {\n                var l = e[i],\n                    d = l.range;\n                t = t || l.forceMoveMarkers, a.push(this.getValueInRange(new c.a(o, s, d.startLineNumber, d.startColumn))), 0 < l.text.length && a.push(l.text), o = d.endLineNumber, s = d.endColumn\n            }\n            var h = a.join(\"\"),\n                [u, n, i] = Object(oe.f)(h);\n            return {\n                sortIndex: 0,\n                identifier: e[0].identifier,\n                range: r,\n                rangeOffset: this.getOffsetAt(r.startLineNumber, r.startColumn),\n                rangeLength: this.getValueLengthInRange(r, 0),\n                text: h,\n                eolCount: u,\n                firstLineLength: n,\n                lastLineLength: i,\n                forceMoveMarkers: t,\n                isAutoWhitespaceEdit: !1\n            }\n        }\n        _doApplyEdits(e) {\n            e.sort(ae._sortOpsDescending);\n            let t = [];\n            for (let a = 0; a < e.length; a++) {\n                var i = e[a],\n                    n = i.range.startLineNumber,\n                    r = i.range.startColumn,\n                    o = i.range.endLineNumber,\n                    s = i.range.endColumn;\n                n === o && r === s && 0 === i.text.length || (i.text ? (this._pieceTree.delete(i.rangeOffset, i.rangeLength), this._pieceTree.insert(i.rangeOffset, i.text, !0)) : this._pieceTree.delete(i.rangeOffset, i.rangeLength), s = new c.a(n, r, o, s), t.push({\n                    range: s,\n                    rangeLength: i.rangeLength,\n                    text: i.text,\n                    rangeOffset: i.rangeOffset,\n                    forceMoveMarkers: i.forceMoveMarkers\n                }))\n            }\n            return t\n        }\n        findMatchesLineByLine(e, t, i, n) {\n            return this._pieceTree.findMatchesLineByLine(e, t, i, n)\n        }\n        static _getInverseEditRanges(e) {\n            let t = [],\n                i = 0,\n                n = 0,\n                r = null;\n            for (let a = 0, l = e.length; a < l; a++) {\n                var o, s = e[a];\n                let l, d, h;\n                d = r ? r.range.endLineNumber === s.range.startLineNumber ? (l = i, n + (s.range.startColumn - r.range.endColumn)) : (l = i + (s.range.startLineNumber - r.range.endLineNumber), s.range.startColumn) : (l = s.range.startLineNumber, s.range.startColumn), h = 0 < s.text.length ? 1 === (o = s.eolCount + 1) ? new c.a(l, d, l, d + s.firstLineLength) : new c.a(l, d, l + o - 1, s.lastLineLength + 1) : new c.a(l, d, l, d), i = h.endLineNumber, n = h.endColumn, t.push(h), r = s\n            }\n            return t\n        }\n        static _sortOpsAscending(e, t) {\n            var i = c.a.compareRangesUsingEnds(e.range, t.range);\n            return 0 === i ? e.sortIndex - t.sortIndex : i\n        }\n        static _sortOpsDescending(e, t) {\n            var i = c.a.compareRangesUsingEnds(e.range, t.range);\n            return 0 === i ? t.sortIndex - e.sortIndex : -i\n        }\n    }\n    class le {\n        constructor(e, t, i, n, r, o, s, a, l) {\n            this._chunks = e, this._bom = t, this._cr = i, this._lf = n, this._crlf = r, this._containsRTL = o, this._containsUnusualLineTerminators = s, this._isBasicASCII = a, this._normalizeEOL = l\n        }\n        _getEOL(e) {\n            var t = this._cr + this._lf + this._crlf,\n                i = this._cr + this._crlf;\n            return 0 === t ? 1 === e ? \"\\n\" : \"\\r\\n\" : t / 2 < i ? \"\\r\\n\" : \"\\n\"\n        }\n        create(e) {\n            var t = this._getEOL(e);\n            let i = this._chunks;\n            if (this._normalizeEOL && (\"\\r\\n\" === t && (0 < this._cr || 0 < this._lf) || \"\\n\" === t && (0 < this._cr || 0 < this._crlf)))\n                for (let e = 0, o = i.length; e < o; e++) {\n                    var n = i[e].buffer.replace(/\\r\\n|\\r|\\n/g, t),\n                        r = J(n);\n                    i[e] = new te(n, r)\n                }\n            return {\n                textBuffer: e = new ae(i, this._bom, t, this._containsRTL, this._containsUnusualLineTerminators, this._isBasicASCII, this._normalizeEOL),\n                disposable: e\n            }\n        }\n    }\n    class de {\n        constructor() {\n            this.chunks = [], this.BOM = \"\", this._hasPreviousChar = !1, this._previousChar = 0, this._tmpLineStarts = [], this.cr = 0, this.lf = 0, this.crlf = 0, this.containsRTL = !1, this.containsUnusualLineTerminators = !1, this.isBasicASCII = !0\n        }\n        acceptChunk(e) {\n            var t;\n            0 !== e.length && (0 === this.chunks.length && s.S(e) && (this.BOM = s.b, e = e.substr(1)), 13 === (t = e.charCodeAt(e.length - 1)) || 55296 <= t && t <= 56319 ? (this._acceptChunk1(e.substr(0, e.length - 1), !1), this._hasPreviousChar = !0) : (this._acceptChunk1(e, !1), this._hasPreviousChar = !1), this._previousChar = t)\n        }\n        _acceptChunk1(e, t) {\n            !t && 0 === e.length || (this._hasPreviousChar ? this._acceptChunk2(String.fromCharCode(this._previousChar) + e) : this._acceptChunk2(e))\n        }\n        _acceptChunk2(e) {\n            var t = function(e, t) {\n                e.length = 0;\n                let i = 1,\n                    n = e[0] = 0,\n                    r = 0,\n                    o = 0,\n                    s = !0;\n                for (let l = 0, d = t.length; l < d; l++) {\n                    var a = t.charCodeAt(l);\n                    13 === a ? l + 1 < d && 10 === t.charCodeAt(l + 1) ? (o++, e[i++] = l + 2, l++) : (n++, e[i++] = l + 1) : 10 === a ? (r++, e[i++] = l + 1) : s && 9 !== a && (a < 32 || 126 < a) && (s = !1)\n                }\n                var l = new Q(X(e), n, r, o, s);\n                return e.length = 0, l\n            }(this._tmpLineStarts, e);\n            this.chunks.push(new te(e, t.lineStarts)), this.cr += t.cr, this.lf += t.lf, this.crlf += t.crlf, this.isBasicASCII && (this.isBasicASCII = t.isBasicASCII), this.isBasicASCII || this.containsRTL || (this.containsRTL = s.m(e)), this.isBasicASCII || this.containsUnusualLineTerminators || (this.containsUnusualLineTerminators = s.n(e))\n        }\n        finish(e = !0) {\n            return this._finish(), new le(this.chunks, this.BOM, this.cr, this.lf, this.crlf, this.containsRTL, this.containsUnusualLineTerminators, this.isBasicASCII, e)\n        }\n        _finish() {\n            if (0 === this.chunks.length && this._acceptChunk1(\"\", !0), this._hasPreviousChar) {\n                this._hasPreviousChar = !1;\n                let t = this.chunks[this.chunks.length - 1];\n                t.buffer += String.fromCharCode(this._previousChar);\n                var e = J(t.buffer);\n                t.lineStarts = e, 13 === this._previousChar && this.cr++\n            }\n        }\n    }\n    var ce = i(72),\n        he = i(28),\n        ue = i(85),\n        pe = i(15),\n        ge = i(83),\n        fe = i(90),\n        me = i(9);\n    class ve {\n        constructor() {\n            this._beginState = [], this._valid = [], this._len = 0, this._invalidLineStartIndex = 0\n        }\n        _reset(e) {\n            this._beginState = [], this._valid = [], this._len = 0, this._invalidLineStartIndex = 0, e && this._setBeginState(0, e)\n        }\n        flush(e) {\n            this._reset(e)\n        }\n        get invalidLineStartIndex() {\n            return this._invalidLineStartIndex\n        }\n        _invalidateLine(e) {\n            e < this._len && (this._valid[e] = !1), e < this._invalidLineStartIndex && (this._invalidLineStartIndex = e)\n        }\n        _isValid(e) {\n            return e < this._len && this._valid[e]\n        }\n        getBeginState(e) {\n            return e < this._len ? this._beginState[e] : null\n        }\n        _ensureLine(e) {\n            for (; e >= this._len;) this._beginState[this._len] = null, this._valid[this._len] = !1, this._len++\n        }\n        _deleteLines(e, t) {\n            0 !== t && (e + t > this._len && (t = this._len - e), this._beginState.splice(e, t), this._valid.splice(e, t), this._len -= t)\n        }\n        _insertLines(e, t) {\n            if (0 !== t) {\n                const i = [],\n                    n = [];\n                for (let e = 0; e < t; e++) i[e] = null, n[e] = !1;\n                this._beginState = he.b(this._beginState, e, i), this._valid = he.b(this._valid, e, n), this._len += t\n            }\n        }\n        _setValid(e, t) {\n            this._ensureLine(e), this._valid[e] = t\n        }\n        _setBeginState(e, t) {\n            this._ensureLine(e), this._beginState[e] = t\n        }\n        setEndState(e, t, i) {\n            if (this._setValid(t, !0), this._invalidLineStartIndex = t + 1, t !== e - 1) {\n                var n = this.getBeginState(t + 1);\n                if (null === n || !i.equals(n)) return this._setBeginState(t + 1, i), void this._invalidateLine(t + 1);\n                let r = t + 1;\n                for (; r < e && this._isValid(r);) r++;\n                this._invalidLineStartIndex = r\n            }\n        }\n        setFakeTokens(e) {\n            this._setValid(e, !1)\n        }\n        applyEdits(e, t) {\n            var i = e.endLineNumber - e.startLineNumber;\n            for (let n = Math.min(i, t); 0 <= n; n--) this._invalidateLine(e.startLineNumber + n - 1);\n            this._acceptDeleteRange(e), this._acceptInsertText(new d.a(e.startLineNumber, e.startColumn), t)\n        }\n        _acceptDeleteRange(e) {\n            e.startLineNumber - 1 >= this._len || this._deleteLines(e.startLineNumber, e.endLineNumber - e.startLineNumber)\n        }\n        _acceptInsertText(e, t) {\n            e.lineNumber - 1 >= this._len || this._insertLines(e.lineNumber, t)\n        }\n    }\n    class be extends o.a {\n        constructor(e, t) {\n            super(), this._textModel = e, this._languageIdCodec = t, this._isDisposed = !1, this._tokenizationStateStore = new ve, this._tokenizationSupport = null, this._register(pe.A.onDidChange(e => {\n                var t = this._textModel.getLanguageId(); - 1 !== e.changedLanguages.indexOf(t) && (this._resetTokenizationState(), this._textModel.clearTokens())\n            })), this._register(this._textModel.onDidChangeContentFast(e => {\n                if (e.isFlush) this._resetTokenizationState();\n                else {\n                    for (let n = 0, r = e.changes.length; n < r; n++) {\n                        var t = e.changes[n],\n                            [i] = Object(oe.f)(t.text);\n                        this._tokenizationStateStore.applyEdits(t.range, i)\n                    }\n                    this._beginBackgroundTokenization()\n                }\n            })), this._register(this._textModel.onDidChangeAttached(() => {\n                this._beginBackgroundTokenization()\n            })), this._register(this._textModel.onDidChangeLanguage(() => {\n                this._resetTokenizationState(), this._textModel.clearTokens()\n            })), this._resetTokenizationState()\n        }\n        dispose() {\n            this._isDisposed = !0, super.dispose()\n        }\n        _resetTokenizationState() {\n            var [e, t] = function(e) {\n                var t = e.getLanguageId();\n                let i = e.isTooLargeForTokenization() ? null : pe.A.get(t),\n                    r = null;\n                if (i) try {\n                    r = i.getInitialState()\n                } catch (e) {\n                    Object(n.f)(e), i = null\n                }\n                return [i, r]\n            }(this._textModel);\n            this._tokenizationSupport = e, this._tokenizationStateStore.flush(t), this._beginBackgroundTokenization()\n        }\n        _beginBackgroundTokenization() {\n            this._textModel.isAttachedToEditor() && this._hasLinesToTokenize() && me.j(() => {\n                this._isDisposed || this._revalidateTokensNow()\n            })\n        }\n        _revalidateTokensNow() {\n            var e = this._textModel.getLineCount(),\n                t = new oe.b;\n            const i = fe.a.create(!1);\n            for (; this._hasLinesToTokenize() && !(1 < i.elapsed()) && !(e <= this._tokenizeOneInvalidLine(t)););\n            this._beginBackgroundTokenization(), this._textModel.setTokens(t.tokens, !this._hasLinesToTokenize())\n        }\n        tokenizeViewport(e, t) {\n            var i = new oe.b;\n            this._tokenizeViewport(i, e, t), this._textModel.setTokens(i.tokens, !this._hasLinesToTokenize())\n        }\n        reset() {\n            this._resetTokenizationState(), this._textModel.clearTokens()\n        }\n        forceTokenization(e) {\n            var t = new oe.b;\n            this._updateTokensUntilLine(t, e), this._textModel.setTokens(t.tokens, !this._hasLinesToTokenize())\n        }\n        isCheapToTokenize(e) {\n            if (!this._tokenizationSupport) return !0;\n            var t = this._tokenizationStateStore.invalidLineStartIndex + 1;\n            return !(t < e) && (e < t || this._textModel.getLineLength(e) < 2048)\n        }\n        _hasLinesToTokenize() {\n            return !!this._tokenizationSupport && this._tokenizationStateStore.invalidLineStartIndex < this._textModel.getLineCount()\n        }\n        _tokenizeOneInvalidLine(e) {\n            if (!this._hasLinesToTokenize()) return this._textModel.getLineCount() + 1;\n            var t = this._tokenizationStateStore.invalidLineStartIndex + 1;\n            return this._updateTokensUntilLine(e, t), t\n        }\n        _updateTokensUntilLine(e, t) {\n            if (this._tokenizationSupport) {\n                var i = this._textModel.getLanguageId(),\n                    n = this._textModel.getLineCount(),\n                    r = t - 1;\n                for (let t = this._tokenizationStateStore.invalidLineStartIndex; t <= r; t++) {\n                    var o = this._textModel.getLineContent(t + 1),\n                        s = this._tokenizationStateStore.getBeginState(t);\n                    s = _e(this._languageIdCodec, i, this._tokenizationSupport, o, !0, s);\n                    e.add(t + 1, s.tokens), this._tokenizationStateStore.setEndState(n, t, s.endState), t = this._tokenizationStateStore.invalidLineStartIndex - 1\n                }\n            }\n        }\n        _tokenizeViewport(e, t, i) {\n            if (this._tokenizationSupport && !(i <= this._tokenizationStateStore.invalidLineStartIndex))\n                if (t <= this._tokenizationStateStore.invalidLineStartIndex) this._updateTokensUntilLine(e, i);\n                else {\n                    let s = this._textModel.getLineFirstNonWhitespaceColumn(t);\n                    const a = [];\n                    let l = null;\n                    for (let e = t - 1; 1 < s && 1 <= e; e--) {\n                        var n = this._textModel.getLineFirstNonWhitespaceColumn(e);\n                        if (0 !== n && n < s) {\n                            if (l = this._tokenizationStateStore.getBeginState(e - 1), l) break;\n                            a.push(this._textModel.getLineContent(e)), s = n\n                        }\n                    }\n                    l = l || this._tokenizationSupport.getInitialState();\n                    var r = this._textModel.getLanguageId();\n                    let d = l;\n                    for (let e = a.length - 1; 0 <= e; e--) {\n                        d = _e(this._languageIdCodec, r, this._tokenizationSupport, a[e], !1, d).endState\n                    }\n                    for (let n = t; n <= i; n++) {\n                        var o = this._textModel.getLineContent(n);\n                        o = _e(this._languageIdCodec, r, this._tokenizationSupport, o, !0, d);\n                        e.add(n, o.tokens), this._tokenizationStateStore.setFakeTokens(n - 1), d = o.endState\n                    }\n                }\n        }\n    }\n\n    function _e(e, t, i, r, o, s) {\n        let a = null;\n        if (i) try {\n            a = i.tokenize2(r, o, s.clone(), 0)\n        } catch (e) {\n            Object(n.f)(e)\n        }\n        return a = a || Object(ge.d)(e.encodeLanguageId(t), r, s, 0), ue.a.convertToEndOffset(a.tokens, r.length), a\n    }\n    var we = i(93),\n        ye = i(57),\n        Ce = i(96),\n        xe = i(102),\n        Se = i(11),\n        ke = i(101);\n    class Le {\n        constructor(e, t, i) {\n            this.range = e, this.nestingLevel = t, this.isInvalid = i\n        }\n    }\n    class Oe extends class {\n        constructor(e, t, i, n) {\n            this.range = e, this.openingBracketRange = t, this.closingBracketRange = i, this.nestingLevel = n\n        }\n    } {\n        constructor(e, t, i, n, r) {\n            super(e, t, i, n), this.minVisibleColumnIndentation = r\n        }\n    }\n    class Ee {\n        constructor(e, t) {\n            this.lineCount = e, this.columnCount = t\n        }\n        toString() {\n            return `${this.lineCount},${this.columnCount}`\n        }\n    }\n    const Ne = Math.pow(2, 26);\n\n    function De(e, t) {\n        return e * Ne + t\n    }\n\n    function Ie(e) {\n        var t = e;\n        e = Math.floor(t / Ne);\n        return new Ee(e, t = t - e * Ne)\n    }\n\n    function Te(e, t) {\n        return t < Ne ? e + t : e - e % Ne + t\n    }\n\n    function Me(e) {\n        return De(e.lineNumber - 1, e.column - 1)\n    }\n\n    function Pe(e, t) {\n        var i = e,\n            n = Math.floor(i / Ne);\n        e = i - n * Ne, i = (i = t) - (t = Math.floor(i / Ne)) * Ne;\n        return new c.a(n + 1, 1 + e, t + 1, 1 + i)\n    }\n    class Ae {\n        constructor(e, t, i) {\n            this.startOffset = e, this.endOffset = t, this.newLength = i\n        }\n    }\n    class Re {\n        constructor(e, t) {\n            this.documentLength = t, this.nextEditIdx = 0, this.deltaOldToNewLineCount = 0, this.deltaOldToNewColumnCount = 0, this.deltaLineIdxInOld = -1, this.edits = e.map(e => Fe.from(e))\n        }\n        getOffsetBeforeChange(e) {\n            return this.adjustNextEdit(e), this.translateCurToOld(e)\n        }\n        getDistanceToNextChange(e) {\n            this.adjustNextEdit(e);\n            var t, i = this.edits[this.nextEditIdx],\n                n = i ? this.translateOldToCur(i.offsetObj) : this.documentLength;\n            return (i = t = n) - (e = n = e) <= 0 ? 0 : (n = Math.floor(e / Ne), i -= (t = Math.floor(i / Ne)) * Ne, n !== t ? De(t - n, i) : De(0, i - (e - n * Ne)))\n        }\n        translateOldToCur(e) {\n            return e.lineCount === this.deltaLineIdxInOld ? De(e.lineCount + this.deltaOldToNewLineCount, e.columnCount + this.deltaOldToNewColumnCount) : De(e.lineCount + this.deltaOldToNewLineCount, e.columnCount)\n        }\n        translateCurToOld(e) {\n            return (e = Ie(e)).lineCount - this.deltaOldToNewLineCount === this.deltaLineIdxInOld ? De(e.lineCount - this.deltaOldToNewLineCount, e.columnCount - this.deltaOldToNewColumnCount) : De(e.lineCount - this.deltaOldToNewLineCount, e.columnCount)\n        }\n        adjustNextEdit(e) {\n            for (; this.nextEditIdx < this.edits.length;) {\n                var t = this.edits[this.nextEditIdx];\n                if (!((r = this.translateOldToCur(t.endOffsetAfterObj)) <= e)) break;\n                this.nextEditIdx++;\n                var i = Ie(r),\n                    n = Ie(this.translateOldToCur(t.endOffsetBeforeObj)),\n                    r = i.lineCount - n.lineCount;\n                this.deltaOldToNewLineCount += r, r = this.deltaLineIdxInOld === t.endOffsetBeforeObj.lineCount ? this.deltaOldToNewColumnCount : 0, n = i.columnCount - n.columnCount, this.deltaOldToNewColumnCount = r + n, this.deltaLineIdxInOld = t.endOffsetBeforeObj.lineCount\n            }\n        }\n    }\n    class Fe {\n        constructor(e, t, i) {\n            this.endOffsetBeforeObj = Ie(t), this.endOffsetAfterObj = Ie(Te(e, i)), this.offsetObj = Ie(e)\n        }\n        static from(e) {\n            return new Fe(e.startOffset, e.endOffset, e.newLength)\n        }\n    }\n    var je = i(144);\n    const Be = new Array;\n    class Ve {\n        constructor(e, t) {\n            this.items = e, this.additionalItems = t\n        }\n        static create(e, t) {\n            if (e <= 128 && 0 === t.length) {\n                let i = Ve.cache[e];\n                return i || (i = new Ve(e, t), Ve.cache[e] = i), i\n            }\n            return new Ve(e, t)\n        }\n        static getEmpty() {\n            return this.empty\n        }\n        add(e, t) {\n            var i = (t = t.getKey(e)) >> 5;\n            if (0 == i) return (e = 1 << t | this.items) === this.items ? this : Ve.create(e, this.additionalItems);\n            i--;\n            const n = this.additionalItems.slice(0);\n            for (; n.length < i;) n.push(0);\n            return n[i] |= 1 << (31 & t), Ve.create(this.items, n)\n        }\n        merge(e) {\n            var t = this.items | e.items;\n            if (this.additionalItems === Be && e.additionalItems === Be) return t === this.items ? this : t === e.items ? e : Ve.create(t, Be);\n            const i = new Array;\n            for (let t = 0; t < Math.max(this.additionalItems.length, e.additionalItems.length); t++) {\n                var n = this.additionalItems[t] || 0,\n                    r = e.additionalItems[t] || 0;\n                i.push(n | r)\n            }\n            return Ve.create(t, i)\n        }\n        intersects(e) {\n            if (0 != (this.items & e.items)) return !0;\n            for (let t = 0; t < Math.min(this.additionalItems.length, e.additionalItems.length); t++)\n                if (0 != (this.additionalItems[t] & e.additionalItems[t])) return !0;\n            return !1\n        }\n    }\n    Ve.cache = new Array(129), Ve.empty = Ve.create(0, Be);\n    const We = {\n        getKey: e => e\n    };\n    class ze {\n        constructor() {\n            this.items = new Map\n        }\n        getKey(e) {\n            let t = this.items.get(e);\n            return void 0 === t && (t = this.items.size, this.items.set(e, t)), t\n        }\n    }\n    class He {\n        constructor(e) {\n            this._length = e\n        }\n        get length() {\n            return this._length\n        }\n    }\n    class Ue extends He {\n        constructor(e, t, i, n, r) {\n            super(e), this.openingBracket = t, this.child = i, this.closingBracket = n, this.missingOpeningBracketIds = r\n        }\n        static create(e, t, i) {\n            let n = e.length;\n            return t && (n = Te(n, t.length)), i && (n = Te(n, i.length)), new Ue(n, e, t, i, t ? t.missingOpeningBracketIds : Ve.getEmpty())\n        }\n        get kind() {\n            return 2\n        }\n        get listHeight() {\n            return 0\n        }\n        get childrenLength() {\n            return 3\n        }\n        getChild(e) {\n            switch (e) {\n                case 0:\n                    return this.openingBracket;\n                case 1:\n                    return this.child;\n                case 2:\n                    return this.closingBracket\n            }\n            throw new Error(\"Invalid child index\")\n        }\n        get children() {\n            const e = new Array;\n            return e.push(this.openingBracket), this.child && e.push(this.child), this.closingBracket && e.push(this.closingBracket), e\n        }\n        canBeReused(e) {\n            return null !== this.closingBracket && !e.intersects(this.missingOpeningBracketIds)\n        }\n        deepClone() {\n            return new Ue(this.length, this.openingBracket.deepClone(), this.child && this.child.deepClone(), this.closingBracket && this.closingBracket.deepClone(), this.missingOpeningBracketIds)\n        }\n        computeMinIndentation(e, t) {\n            return this.child ? this.child.computeMinIndentation(Te(e, this.openingBracket.length), t) : Number.MAX_SAFE_INTEGER\n        }\n    }\n    class Ke extends He {\n        constructor(e, t, i) {\n            super(e), this.listHeight = t, this._missingOpeningBracketIds = i, this.cachedMinIndentation = -1\n        }\n        static create23(e, t, i, n = !1) {\n            let r = e.length,\n                o = e.missingOpeningBracketIds;\n            if (e.listHeight !== t.listHeight) throw new Error(\"Invalid list heights\");\n            if (r = Te(r, t.length), o = o.merge(t.missingOpeningBracketIds), i) {\n                if (e.listHeight !== i.listHeight) throw new Error(\"Invalid list heights\");\n                r = Te(r, i.length), o = o.merge(i.missingOpeningBracketIds)\n            }\n            return new(n ? qe : $e)(r, e.listHeight + 1, e, t, i, o)\n        }\n        static getEmpty() {\n            return new Ye(0, 0, [], Ve.getEmpty())\n        }\n        get kind() {\n            return 4\n        }\n        get missingOpeningBracketIds() {\n            return this._missingOpeningBracketIds\n        }\n        throwIfImmutable() {}\n        makeLastElementMutable() {\n            this.throwIfImmutable();\n            var e = this.childrenLength;\n            if (0 !== e) {\n                const i = this.getChild(e - 1);\n                var t = 4 === i.kind ? i.toMutable() : i;\n                return i !== t && this.setChild(e - 1, t), t\n            }\n        }\n        makeFirstElementMutable() {\n            if (this.throwIfImmutable(), 0 !== this.childrenLength) {\n                const t = this.getChild(0);\n                var e = 4 === t.kind ? t.toMutable() : t;\n                return t !== e && this.setChild(0, e), e\n            }\n        }\n        canBeReused(e) {\n            if (e.intersects(this.missingOpeningBracketIds)) return !1;\n            let t, i = this;\n            for (; 4 === i.kind && 0 < (t = i.childrenLength);) i = i.getChild(t - 1);\n            return i.canBeReused(e)\n        }\n        handleChildrenChanged() {\n            this.throwIfImmutable();\n            var e = this.childrenLength;\n            let t = this.getChild(0).length,\n                i = this.getChild(0).missingOpeningBracketIds;\n            for (let r = 1; r < e; r++) {\n                var n = this.getChild(r);\n                t = Te(t, n.length), i = i.merge(n.missingOpeningBracketIds)\n            }\n            this._length = t, this._missingOpeningBracketIds = i, this.cachedMinIndentation = -1\n        }\n        computeMinIndentation(e, t) {\n            if (-1 !== this.cachedMinIndentation) return this.cachedMinIndentation;\n            let i = Number.MAX_SAFE_INTEGER,\n                n = e;\n            for (let e = 0; e < this.childrenLength; e++) {\n                const r = this.getChild(e);\n                r && (i = Math.min(i, r.computeMinIndentation(n, t)), n = Te(n, r.length))\n            }\n            return this.cachedMinIndentation = i, i\n        }\n    }\n    class $e extends Ke {\n        constructor(e, t, i, n, r, o) {\n            super(e, t, o), this._item1 = i, this._item2 = n, this._item3 = r\n        }\n        get childrenLength() {\n            return null !== this._item3 ? 3 : 2\n        }\n        getChild(e) {\n            switch (e) {\n                case 0:\n                    return this._item1;\n                case 1:\n                    return this._item2;\n                case 2:\n                    return this._item3\n            }\n            throw new Error(\"Invalid child index\")\n        }\n        setChild(e, t) {\n            switch (e) {\n                case 0:\n                    return void(this._item1 = t);\n                case 1:\n                    return void(this._item2 = t);\n                case 2:\n                    return void(this._item3 = t)\n            }\n            throw new Error(\"Invalid child index\")\n        }\n        get children() {\n            return this._item3 ? [this._item1, this._item2, this._item3] : [this._item1, this._item2]\n        }\n        get item1() {\n            return this._item1\n        }\n        get item2() {\n            return this._item2\n        }\n        get item3() {\n            return this._item3\n        }\n        deepClone() {\n            return new $e(this.length, this.listHeight, this._item1.deepClone(), this._item2.deepClone(), this._item3 ? this._item3.deepClone() : null, this.missingOpeningBracketIds)\n        }\n        appendChildOfSameHeight(e) {\n            if (this._item3) throw new Error(\"Cannot append to a full (2,3) tree node\");\n            this.throwIfImmutable(), this._item3 = e, this.handleChildrenChanged()\n        }\n        unappendChild() {\n            if (!this._item3) throw new Error(\"Cannot remove from a non-full (2,3) tree node\");\n            this.throwIfImmutable();\n            var e = this._item3;\n            return this._item3 = null, this.handleChildrenChanged(), e\n        }\n        prependChildOfSameHeight(e) {\n            if (this._item3) throw new Error(\"Cannot prepend to a full (2,3) tree node\");\n            this.throwIfImmutable(), this._item3 = this._item2, this._item2 = this._item1, this._item1 = e, this.handleChildrenChanged()\n        }\n        unprependChild() {\n            if (!this._item3) throw new Error(\"Cannot remove from a non-full (2,3) tree node\");\n            this.throwIfImmutable();\n            var e = this._item1;\n            return this._item1 = this._item2, this._item2 = this._item3, this._item3 = null, this.handleChildrenChanged(), e\n        }\n        toMutable() {\n            return this\n        }\n    }\n    class qe extends $e {\n        toMutable() {\n            return new $e(this.length, this.listHeight, this.item1, this.item2, this.item3, this.missingOpeningBracketIds)\n        }\n        throwIfImmutable() {\n            throw new Error(\"this instance is immutable\")\n        }\n    }\n    class Ge extends Ke {\n        constructor(e, t, i, n) {\n            super(e, t, n), this._children = i\n        }\n        get childrenLength() {\n            return this._children.length\n        }\n        getChild(e) {\n            return this._children[e]\n        }\n        setChild(e, t) {\n            this._children[e] = t\n        }\n        get children() {\n            return this._children\n        }\n        deepClone() {\n            const e = new Array(this._children.length);\n            for (let t = 0; t < this._children.length; t++) e[t] = this._children[t].deepClone();\n            return new Ge(this.length, this.listHeight, e, this.missingOpeningBracketIds)\n        }\n        appendChildOfSameHeight(e) {\n            this.throwIfImmutable(), this._children.push(e), this.handleChildrenChanged()\n        }\n        unappendChild() {\n            this.throwIfImmutable();\n            var e = this._children.pop();\n            return this.handleChildrenChanged(), e\n        }\n        prependChildOfSameHeight(e) {\n            this.throwIfImmutable(), this._children.unshift(e), this.handleChildrenChanged()\n        }\n        unprependChild() {\n            this.throwIfImmutable();\n            var e = this._children.shift();\n            return this.handleChildrenChanged(), e\n        }\n        toMutable() {\n            return this\n        }\n    }\n    class Ye extends Ge {\n        toMutable() {\n            return new Ge(this.length, this.listHeight, [...this.children], this.missingOpeningBracketIds)\n        }\n        throwIfImmutable() {\n            throw new Error(\"this instance is immutable\")\n        }\n    }\n    const Ze = [];\n    class Xe extends He {\n        get listHeight() {\n            return 0\n        }\n        get childrenLength() {\n            return 0\n        }\n        getChild(e) {\n            return null\n        }\n        get children() {\n            return Ze\n        }\n        deepClone() {\n            return this\n        }\n    }\n    class Qe extends Xe {\n        get kind() {\n            return 0\n        }\n        get missingOpeningBracketIds() {\n            return Ve.getEmpty()\n        }\n        canBeReused(e) {\n            return !0\n        }\n        computeMinIndentation(e, t) {\n            var i = (0 === (i = Ie(e)).columnCount ? i.lineCount : i.lineCount + 1) + 1,\n                n = (e = Te(e, this.length), Math.floor(e / Ne) + 1);\n            let r = Number.MAX_SAFE_INTEGER;\n            for (let e = i; e <= n; e++) {\n                var o = t.getLineFirstNonWhitespaceColumn(e),\n                    s = t.getLineContent(e);\n                0 !== o && (o = je.a.visibleColumnFromColumn(s, o, t.getOptions().tabSize), r = Math.min(r, o))\n            }\n            return r\n        }\n    }\n    class Je extends Xe {\n        constructor(e) {\n            super(e)\n        }\n        static create(e) {\n            var t = e,\n                i = Je.cacheByLength.get(t);\n            return i || (e = new Je(e), Je.cacheByLength.set(t, e), e)\n        }\n        get kind() {\n            return 1\n        }\n        get missingOpeningBracketIds() {\n            return Ve.getEmpty()\n        }\n        canBeReused(e) {\n            return !1\n        }\n        computeMinIndentation(e, t) {\n            return Number.MAX_SAFE_INTEGER\n        }\n    }\n    Je.cacheByLength = new Map;\n    class et extends Xe {\n        constructor(e, t) {\n            super(t), this.missingOpeningBracketIds = e\n        }\n        get kind() {\n            return 3\n        }\n        canBeReused(e) {\n            return !e.intersects(this.missingOpeningBracketIds)\n        }\n        computeMinIndentation(e, t) {\n            return Number.MAX_SAFE_INTEGER\n        }\n    }\n    class tt {\n        constructor(e, t, i, n, r) {\n            this.length = e, this.kind = t, this.bracketId = i, this.bracketIds = n, this.astNode = r\n        }\n    }\n    class it {\n        constructor(e, t) {\n            this.textModel = e, this.bracketTokens = t, this.reader = new nt(this.textModel, this.bracketTokens), this._offset = 0, this.didPeek = !1, this.peeked = null, this.textBufferLineCount = e.getLineCount(), this.textBufferLastLineLength = e.getLineLength(this.textBufferLineCount)\n        }\n        get offset() {\n            return this._offset\n        }\n        get length() {\n            return De(this.textBufferLineCount, this.textBufferLastLineLength)\n        }\n        skip(e) {\n            this.didPeek = !1, this._offset = Te(this._offset, e), e = Ie(this._offset), this.reader.setPosition(e.lineCount, e.columnCount)\n        }\n        read() {\n            let e;\n            return e = this.peeked ? (this.didPeek = !1, this.peeked) : this.reader.read(), e && (this._offset = Te(this._offset, e.length)), e\n        }\n        peek() {\n            return this.didPeek || (this.peeked = this.reader.read(), this.didPeek = !0), this.peeked\n        }\n    }\n    class nt {\n        constructor(e, t) {\n            this.textModel = e, this.bracketTokens = t, this.lineIdx = 0, this.line = null, this.lineCharOffset = 0, this.lineTokens = null, this.lineTokenOffset = 0, this.peekedToken = null, this.textBufferLineCount = e.getLineCount(), this.textBufferLastLineLength = e.getLineLength(this.textBufferLineCount)\n        }\n        setPosition(e, t) {\n            e === this.lineIdx ? (this.lineCharOffset = t, this.lineTokenOffset = 0 === this.lineCharOffset ? 0 : this.lineTokens.findTokenIndexAtOffset(this.lineCharOffset)) : (this.lineIdx = e, this.lineCharOffset = t, this.line = null), this.peekedToken = null\n        }\n        read() {\n            if (this.peekedToken) {\n                var e = this.peekedToken;\n                return this.peekedToken = null, this.lineCharOffset += e.length, e\n            }\n            if (this.lineIdx > this.textBufferLineCount - 1 || this.lineIdx === this.textBufferLineCount - 1 && this.lineCharOffset >= this.textBufferLastLineLength) return null;\n            null === this.line && (this.lineTokens = this.textModel.getLineTokens(this.lineIdx + 1), this.line = this.lineTokens.getLineContent(), this.lineTokenOffset = 0 === this.lineCharOffset ? 0 : this.lineTokens.findTokenIndexAtOffset(this.lineCharOffset));\n            var t = this.lineIdx,\n                i = this.lineCharOffset;\n            let n = 0;\n            for (;;) {\n                const e = this.lineTokens;\n                var r = e.getCount();\n                let d = null;\n                if (this.lineTokenOffset < r) {\n                    for (var o = e.getMetadata(this.lineTokenOffset); this.lineTokenOffset + 1 < r && o === e.getMetadata(this.lineTokenOffset + 1);) this.lineTokenOffset++;\n                    var s = 0 === pe.z.getTokenType(o),\n                        a = e.getEndOffset(this.lineTokenOffset);\n                    if (s && a !== this.lineCharOffset) {\n                        var l = e.getLanguageId(this.lineTokenOffset);\n                        s = this.line.substring(this.lineCharOffset, a);\n                        const t = this.bracketTokens.getSingleLanguageBracketTokens(l),\n                            i = t.regExpGlobal;\n                        i && (i.lastIndex = 0, (s = i.exec(s)) && (d = t.getToken(s[0]), d && (this.lineCharOffset += s.index)))\n                    }\n                    if (n += a - this.lineCharOffset, d) {\n                        if (t === this.lineIdx && i === this.lineCharOffset) return this.lineCharOffset += d.length, d;\n                        this.peekedToken = d;\n                        break\n                    }\n                    this.lineTokenOffset++, this.lineCharOffset = a\n                } else {\n                    if (this.lineIdx === this.textBufferLineCount - 1) break;\n                    if (this.lineIdx++, this.lineTokens = this.textModel.getLineTokens(this.lineIdx + 1), this.lineTokenOffset = 0, this.line = this.lineTokens.getLineContent(), this.lineCharOffset = 0, n += 33, 1e3 < n) break\n                }\n                if (1500 < n) break\n            }\n            var d, c, h = (d = t, h = i, c = this.lineIdx, e = this.lineCharOffset, d !== c ? De(c - d, e) : De(0, e - h));\n            return new tt(h, 0, -1, Ve.getEmpty(), new Qe(h))\n        }\n    }\n    class rt {\n        constructor(e, t) {\n            this.text = e, this._offset = 0, this.idx = 0;\n            const i = t.getRegExpStr() ? new RegExp(t.getRegExpStr() + \"|\\n\", \"g\") : null,\n                n = [];\n            let r = 0,\n                o = 0,\n                s = 0,\n                a = 0;\n            const l = new Array;\n            for (let e = 0; e < 60; e++) l.push(new tt(De(0, e), 0, -1, Ve.getEmpty(), new Qe(De(0, e))));\n            const d = new Array;\n            for (let e = 0; e < 60; e++) d.push(new tt(De(1, e), 0, -1, Ve.getEmpty(), new Qe(De(1, e))));\n            if (i)\n                for (i.lastIndex = 0; null !== (p = i.exec(e));) {\n                    var c, h, u = p.index,\n                        p = p[0];\n                    if (\"\\n\" === p) r++, o = u + 1;\n                    else {\n                        if (s !== u) {\n                            let e;\n                            e = a === r ? (c = u - s) < l.length ? l[c] : (h = De(0, c), new tt(h, 0, -1, Ve.getEmpty(), new Qe(h))) : (h = u - o, 1 == (c = r - a) && h < d.length ? d[h] : (h = De(c, h), new tt(h, 0, -1, Ve.getEmpty(), new Qe(h)))), n.push(e)\n                        }\n                        n.push(t.getToken(p)), s = u + p.length, a = r\n                    }\n                }\n            var g, f = e.length;\n            s !== f && (g = a === r ? De(0, f - s) : De(r - a, f - o), n.push(new tt(g, 0, -1, Ve.getEmpty(), new Qe(g)))), this.length = De(r, f - o), this.tokens = n\n        }\n        get offset() {\n            return this._offset\n        }\n        read() {\n            return this.tokens[this.idx++] || null\n        }\n        peek() {\n            return this.tokens[this.idx] || null\n        }\n        skip(e) {\n            throw new n.a\n        }\n    }\n    class ot {\n        constructor(e) {\n            this.map = e, this.hasRegExp = !1, this._regExpGlobal = null\n        }\n        static createFromLanguage(e, t) {\n            function i(e, i) {\n                return t.getKey(`${e}:::${i}`)\n            }\n            var n, r, o, s, a = e.characterPair.getColorizedBrackets();\n            const l = new Map,\n                d = new Set;\n            for ([n, r] of a) {\n                d.add(n);\n                let t = l.get(r);\n                var c = i(e.languageId, n);\n                t || (t = {\n                    openingBrackets: Ve.getEmpty(),\n                    first: c\n                }, l.set(r, t)), t.openingBrackets = t.openingBrackets.add(c, We)\n            }\n            const h = new Map;\n            for ([o, s] of l) {\n                var u = De(0, o.length);\n                h.set(o, new tt(u, 2, s.first, s.openingBrackets, Je.create(u)))\n            }\n            for (const t of d) {\n                var p = De(0, t.length),\n                    g = i(e.languageId, t);\n                h.set(t, new tt(p, 1, g, Ve.getEmpty().add(g, We), Je.create(p)))\n            }\n            return new ot(h)\n        }\n        getRegExpStr() {\n            if (this.isEmpty) return null; {\n                const e = [...this.map.keys()];\n                return e.sort(), e.reverse(), e.map(e => function(e) {\n                    var t = Object(s.t)(e);\n                    return (e = /^[\\w ]+$/.test(e)) ? `\\\\b${t}\\\\b` : t\n                }(e)).join(\"|\")\n            }\n        }\n        get regExpGlobal() {\n            var e;\n            return this.hasRegExp || (e = this.getRegExpStr(), this._regExpGlobal = e ? new RegExp(e, \"g\") : null, this.hasRegExp = !0), this._regExpGlobal\n        }\n        getToken(e) {\n            return this.map.get(e)\n        }\n        get isEmpty() {\n            return 0 === this.map.size\n        }\n    }\n    class st {\n        constructor(e, t) {\n            this.denseKeyProvider = e, this.getLanguage配置 = t, this.languageIdToBracketTokens = new Map\n        }\n        didLanguageChange(e) {\n            const t = this.languageIdToBracketTokens.get(e);\n            return !!t && (e = ot.createFromLanguage(this.getLanguage配置(e), this.denseKeyProvider).getRegExpStr(), t.getRegExpStr() !== e)\n        }\n        getSingleLanguageBracketTokens(e) {\n            let t = this.languageIdToBracketTokens.get(e);\n            return t || (t = ot.createFromLanguage(this.getLanguage配置(e), this.denseKeyProvider), this.languageIdToBracketTokens.set(e, t)), t\n        }\n    }\n\n    function at(e, t = !1) {\n        if (0 === e.length) return null;\n        if (1 === e.length) return e[0];\n        let i = e.length;\n        for (; 3 < i;) {\n            var n = i >> 1;\n            for (let o = 0; o < n; o++) {\n                var r = o << 1;\n                e[o] = Ke.create23(e[r], e[1 + r], 3 + r === i ? e[2 + r] : null, t)\n            }\n            i = n\n        }\n        return Ke.create23(e[0], e[1], 3 <= i ? e[2] : null, t)\n    }\n\n    function lt(e, t) {\n        return Math.abs(e.listHeight - t.listHeight)\n    }\n\n    function dt(e, t) {\n        return e.listHeight === t.listHeight ? Ke.create23(e, t, null, !1) : e.listHeight > t.listHeight ? function(e, t) {\n            let i = e = e.toMutable();\n            const n = new Array;\n            let r;\n            for (;;) {\n                if (t.listHeight === i.listHeight) {\n                    r = t;\n                    break\n                }\n                if (4 !== i.kind) throw new Error(\"unexpected\");\n                n.push(i), i = i.makeLastElementMutable()\n            }\n            for (let e = n.length - 1; 0 <= e; e--) {\n                const t = n[e];\n                r ? r = 3 <= t.childrenLength ? Ke.create23(t.unappendChild(), r, null, !1) : void t.appendChildOfSameHeight(r) : t.handleChildrenChanged()\n            }\n            return r ? Ke.create23(e, r, null, !1) : e\n        }(e, t) : function(e, t) {\n            let i = e = e.toMutable();\n            const n = new Array;\n            for (; t.listHeight !== i.listHeight;) {\n                if (4 !== i.kind) throw new Error(\"unexpected\");\n                n.push(i), i = i.makeFirstElementMutable()\n            }\n            let r = t;\n            for (let e = n.length - 1; 0 <= e; e--) {\n                const t = n[e];\n                r ? r = 3 <= t.childrenLength ? Ke.create23(r, t.unprependChild(), null, !1) : void t.prependChildOfSameHeight(r) : t.handleChildrenChanged()\n            }\n            return r ? Ke.create23(r, e, null, !1) : e\n        }(t, e)\n    }\n    class ct {\n        constructor(e) {\n            this.lastOffset = 0, this.nextNodes = [e], this.offsets = [0], this.idxs = []\n        }\n        readLongestNodeAt(e, t) {\n            if (e < this.lastOffset) throw new Error(\"Invalid offset\");\n            for (this.lastOffset = e;;) {\n                const o = ut(this.nextNodes);\n                if (!o) return;\n                var i, n = ut(this.offsets);\n                if (e < n) return;\n                if (n < e) Te(n, o.length) <= e || -1 === (i = ht(o)) ? this.nextNodeAfterCurrent() : (this.nextNodes.push(o.getChild(i)), this.offsets.push(n), this.idxs.push(i));\n                else {\n                    if (t(o)) return this.nextNodeAfterCurrent(), o;\n                    var r = ht(o);\n                    if (-1 === r) return void this.nextNodeAfterCurrent();\n                    this.nextNodes.push(o.getChild(r)), this.offsets.push(n), this.idxs.push(r)\n                }\n            }\n        }\n        nextNodeAfterCurrent() {\n            for (;;) {\n                var e = ut(this.offsets),\n                    t = ut(this.nextNodes);\n                if (this.nextNodes.pop(), this.offsets.pop(), 0 === this.idxs.length) break;\n                const n = ut(this.nextNodes);\n                var i = ht(n, this.idxs[this.idxs.length - 1]);\n                if (-1 !== i) {\n                    this.nextNodes.push(n.getChild(i)), this.offsets.push(Te(e, t.length)), this.idxs[this.idxs.length - 1] = i;\n                    break\n                }\n                this.idxs.pop()\n            }\n        }\n    }\n\n    function ht(e, t = -1) {\n        for (;;) {\n            if (++t >= e.childrenLength) return -1;\n            if (e.getChild(t)) return t\n        }\n    }\n\n    function ut(e) {\n        return 0 < e.length ? e[e.length - 1] : void 0\n    }\n\n    function pt(e, t, i, n) {\n        return new gt(e, t, i, n).parseDocument()\n    }\n    class gt {\n        constructor(e, t, i, n) {\n            if (this.tokenizer = e, this.createImmutableLists = n, this._itemsConstructed = 0, this._itemsFromCache = 0, i && n) throw new Error(\"Not supported\");\n            this.oldNodeReader = i ? new ct(i) : void 0, this.positionMapper = new Re(t, e.length)\n        }\n        parseDocument() {\n            this._itemsConstructed = 0, this._itemsFromCache = 0;\n            let e = this.parseList(Ve.getEmpty());\n            return e = e || Ke.getEmpty(), e\n        }\n        parseList(e) {\n            const t = new Array;\n            for (;;) {\n                const n = this.tokenizer.peek();\n                if (!n || 2 === n.kind && n.bracketIds.intersects(e)) break;\n                var i = this.parseChild(e);\n                4 === i.kind && 0 === i.childrenLength || t.push(i)\n            }\n            return this.oldNodeReader ? function(e) {\n                if (0 === e.length) return null;\n                if (1 === e.length) return e[0];\n                let t = 0;\n\n                function i() {\n                    if (t >= e.length) return null;\n                    var i = t,\n                        n = e[i].listHeight;\n                    for (t++; t < e.length && e[t].listHeight === n;) t++;\n                    return 2 <= t - i ? at(0 === i && t === e.length ? e : e.slice(i, t), !1) : e[i]\n                }\n                let n = i(),\n                    r = i();\n                if (!r) return n;\n                for (let e = i(); e; e = i()) r = lt(n, r) <= lt(r, e) ? (n = dt(n, r), e) : dt(r, e);\n                return dt(n, r)\n            }(t) : at(t, this.createImmutableLists)\n        }\n        parseChild(e) {\n            if (this.oldNodeReader) {\n                const i = this.positionMapper.getDistanceToNextChange(this.tokenizer.offset);\n                if (0 !== i) {\n                    var t = this.oldNodeReader.readLongestNodeAt(this.positionMapper.getOffsetBeforeChange(this.tokenizer.offset), t => t.length < i && t.canBeReused(e));\n                    if (t) return this._itemsFromCache++, this.tokenizer.skip(t.length), t\n                }\n            }\n            this._itemsConstructed++;\n            var i = this.tokenizer.read();\n            switch (i.kind) {\n                case 2:\n                    return new et(i.bracketIds, i.length);\n                case 0:\n                    return i.astNode;\n                case 1:\n                    var n = e.merge(i.bracketIds);\n                    n = this.parseList(n);\n                    const t = this.tokenizer.peek();\n                    return t && 2 === t.kind && (t.bracketId === i.bracketId || t.bracketIds.intersects(i.bracketIds)) ? (this.tokenizer.read(), Ue.create(i.astNode, n, t.astNode)) : Ue.create(i.astNode, n, null);\n                default:\n                    throw new Error(\"unexpected\")\n            }\n        }\n    }\n    class ft extends o.a {\n        constructor(e, t) {\n            super(), this.textModel = e, this.language配置Service = t, this.cache = this._register(new o.d), this.onDidChangeEmitter = new r.b, this.onDidChange = this.onDidChangeEmitter.event, this.bracketsRequested = !1, this._register(e.onDidChangeOptions(e => {\n                this.cache.clear(), this.updateCache()\n            })), this._register(e.onDidChangeLanguage(e => {\n                this.cache.clear(), this.updateCache()\n            })), this._register(this.language配置Service.onDidChange(e => {\n                var t;\n                (!e.languageId || null !== (t = this.cache.value) && void 0 !== t && t.object.didLanguageChange(e.languageId)) && (this.cache.clear(), this.updateCache())\n            }))\n        }\n        get isDocumentSupported() {\n            return this.textModel.getValueLength() <= 5e6\n        }\n        updateCache() {\n            if (this.bracketsRequested && this.isDocumentSupported) {\n                if (!this.cache.value) {\n                    const i = new o.b;\n                    this.cache.value = (e = i.add(new mt(this.textModel, e => this.language配置Service.getLanguage配置(e))), t = i, {\n                        object: e,\n                        dispose: () => null == t ? void 0 : t.dispose()\n                    }), i.add(this.cache.value.object.onDidChange(e => this.onDidChangeEmitter.fire(e))), this.onDidChangeEmitter.fire()\n                }\n            } else this.cache.clear(), this.onDidChangeEmitter.fire();\n            var e, t\n        }\n        handleContentChanged(e) {\n            var t;\n            null !== (t = this.cache.value) && void 0 !== t && t.object.handleContentChanged(e)\n        }\n        getBracketPairsInRange(e) {\n            var t;\n            return this.bracketsRequested = !0, this.updateCache(), (null === (t = this.cache.value) || void 0 === t ? void 0 : t.object.getBracketPairsInRange(e, !1)) || []\n        }\n        getBracketPairsInRangeWithMinIndentation(e) {\n            var t;\n            return this.bracketsRequested = !0, this.updateCache(), (null === (t = this.cache.value) || void 0 === t ? void 0 : t.object.getBracketPairsInRange(e, !0)) || []\n        }\n        getBracketsInRange(e) {\n            var t;\n            return this.bracketsRequested = !0, this.updateCache(), (null === (t = this.cache.value) || void 0 === t ? void 0 : t.object.getBracketsInRange(e)) || []\n        }\n    }\n    class mt extends o.a {\n        constructor(e, t) {\n            super(), this.textModel = e, this.getLanguage配置 = t, this.didChangeEmitter = new r.b, this.denseKeyProvider = new ze, this.brackets = new st(this.denseKeyProvider, this.getLanguage配置), this.onDidChange = this.didChangeEmitter.event, this._register(e.onBackgroundTokenizationStateChanged(() => {\n                var t;\n                2 === e.backgroundTokenizationState && (t = void 0 === this.initialAstWithoutTokens, this.initialAstWithoutTokens = void 0, t || this.didChangeEmitter.fire())\n            })), this._register(e.onDidChangeTokens(({\n                ranges: e\n            }) => {\n                e = e.map(e => new Ae(De(e.fromLineNumber - 1, 0), De(e.toLineNumber, 0), De(e.toLineNumber - e.fromLineNumber + 1, 0))), this.astWithTokens = this.parseDocumentFromTextBuffer(e, this.astWithTokens, !1), this.initialAstWithoutTokens || this.didChangeEmitter.fire()\n            })), 0 === e.backgroundTokenizationState ? (t = this.brackets.getSingleLanguageBracketTokens(this.textModel.getLanguageId()), t = new rt(this.textModel.getValue(), t), this.initialAstWithoutTokens = pt(t, [], void 0, !0), this.astWithTokens = this.initialAstWithoutTokens) : 2 === e.backgroundTokenizationState ? (this.initialAstWithoutTokens = void 0, this.astWithTokens = this.parseDocumentFromTextBuffer([], void 0, !1)) : 1 === e.backgroundTokenizationState && (this.initialAstWithoutTokens = this.parseDocumentFromTextBuffer([], void 0, !0), this.astWithTokens = this.initialAstWithoutTokens)\n        }\n        didLanguageChange(e) {\n            return this.brackets.didLanguageChange(e)\n        }\n        handleContentChanged(e) {\n            e = e.changes.map(e => {\n                const t = c.a.lift(e.range);\n                return new Ae(Me(t.getStartPosition()), Me(t.getEndPosition()), (e = e.text, De((e = Object(s.Q)(e)).length - 1, e[e.length - 1].length)))\n            }).reverse(), this.astWithTokens = this.parseDocumentFromTextBuffer(e, this.astWithTokens, !1), this.initialAstWithoutTokens && (this.initialAstWithoutTokens = this.parseDocumentFromTextBuffer(e, this.initialAstWithoutTokens, !1))\n        }\n        parseDocumentFromTextBuffer(e, t, i) {\n            return pt(new it(this.textModel, this.brackets), e, t, i)\n        }\n        getBracketsInRange(e) {\n            var t = De(e.startLineNumber - 1, e.startColumn - 1),\n                i = De(e.endLineNumber - 1, e.endColumn - 1),\n                n = new Array;\n            return function e(t, i, n, r, o, s, a = 0) {\n                if (1 === t.kind) {\n                    const e = Pe(i, n);\n                    s.push(new Le(e, a - 1, !1))\n                } else if (3 === t.kind) {\n                    const e = Pe(i, n);\n                    s.push(new Le(e, a - 1, !0))\n                } else if (4 === t.kind)\n                    for (const l of t.children) n = Te(i, l.length), i <= o && r <= n && e(l, i, n, r, o, s, a), i = n;\n                else if (2 === t.kind) {\n                    a++; {\n                        const l = t.openingBracket;\n                        n = Te(i, l.length), i <= o && r <= n && e(l, i, n, r, o, s, a), i = n\n                    }\n                    if (t.child) {\n                        const l = t.child;\n                        n = Te(i, l.length), i <= o && r <= n && e(l, i, n, r, o, s, a), i = n\n                    }\n                    if (t.closingBracket) {\n                        const l = t.closingBracket;\n                        n = Te(i, l.length), i <= o && r <= n && e(l, i, n, r, o, s, a), i = n\n                    }\n                }\n            }(e = this.initialAstWithoutTokens || this.astWithTokens, 0, e.length, t, i, n), n\n        }\n        getBracketPairsInRange(e, t) {\n            var i = new Array,\n                n = Me(e.getStartPosition()),\n                r = Me(e.getEndPosition());\n            e = this.initialAstWithoutTokens || this.astWithTokens, t = new vt(i, t, this.textModel);\n            return function e(t, i, n, r, o, s, a = 0) {\n                var l;\n                if (2 === t.kind) {\n                    const e = Te(i, t.openingBracket.length);\n                    let r = -1;\n                    s.includeMinIndentation && (r = t.computeMinIndentation(i, s.textModel)), s.result.push(new Oe(Pe(i, n), Pe(i, e), t.closingBracket ? Pe(Te(e, (null === (l = t.child) || void 0 === l ? void 0 : l.length) || 0), n) : void 0, a, r)), a++\n                }\n                let d = i;\n                for (const i of t.children) {\n                    const t = d;\n                    d = Te(d, i.length), t <= o && r <= d && e(i, t, d, r, o, s, a)\n                }\n            }(e, 0, e.length, n, r, t), i\n        }\n    }\n    class vt {\n        constructor(e, t, i) {\n            this.result = e, this.includeMinIndentation = t, this.textModel = i\n        }\n    }\n    var bt = i(41),\n        _t = i(23);\n    class wt extends o.a {\n        constructor(e) {\n            super(), this.textModel = e, this.colorProvider = new yt, this.onDidChangeEmitter = new r.b, this.onDidChange = this.onDidChangeEmitter.event, this.colorizationOptions = e.getOptions().bracketPairColorizationOptions, this._register(e.onDidChangeOptions(t => {\n                this.colorizationOptions = e.getOptions().bracketPairColorizationOptions\n            })), this._register(e.bracketPairs.onDidChange(e => {\n                this.onDidChangeEmitter.fire()\n            }))\n        }\n        getDecorationsInRange(e, t, i) {\n            if (void 0 === t) return [];\n            if (!this.colorizationOptions.enabled) return [];\n            const n = new Array;\n            for (const t of this.textModel.bracketPairs.getBracketsInRange(e)) n.push({\n                id: `bracket${t.range.toString()}-${t.nestingLevel}`,\n                options: {\n                    description: \"BracketPairColorization\",\n                    inlineClassName: this.colorProvider.getInlineClassName(t)\n                },\n                ownerId: 0,\n                range: t.range\n            });\n            return n\n        }\n        getAllDecorations(e, t) {\n            return void 0 !== e && this.colorizationOptions.enabled ? this.getDecorationsInRange(new c.a(1, 1, this.textModel.getLineCount(), 1), e, t) : []\n        }\n    }\n    class yt {\n        constructor() {\n            this.unexpectedClosingBracketClassName = \"unexpected-closing-bracket\"\n        }\n        getInlineClassName(e) {\n            return e.isInvalid ? this.unexpectedClosingBracketClassName : this.getInlineClassNameOfLevel(e.nestingLevel)\n        }\n        getInlineClassNameOfLevel(e) {\n            return \"bracket-highlighting-\" + e % 30\n        }\n    }\n\n    function Ct(e, t) {\n        return (\"string\" == typeof e ? function(e) {\n            const t = new de;\n            return t.acceptChunk(e), t.finish()\n        }(e) : e).create(t)\n    }\n    Object(_t.f)((e, t) => {\n        const i = [bt.c, bt.d, bt.e, bt.f, bt.g, bt.h],\n            n = new yt;\n        t.addRule(`.monaco-editor .${n.unexpectedClosingBracketClassName} { color: ${e.getColor(bt.i)}; }`);\n        var r = i.map(t => e.getColor(t)).filter(e => !!e).filter(e => !e.isTransparent());\n        for (let e = 0; e < 30; e++) {\n            var o = r[e % r.length];\n            t.addRule(`.monaco-editor .${n.getInlineClassNameOfLevel(e)} { color: ${o}; }`)\n        }\n    }), t = i(97), _t = function(e, t, i, n) {\n        var r, o = arguments.length,\n            s = o < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n);\n        else\n            for (var a = e.length - 1; 0 <= a; a--)(r = e[a]) && (s = (o < 3 ? r(s) : 3 < o ? r(t, i, s) : r(t, i)) || s);\n        return 3 < o && s && Object.defineProperty(t, i, s), s\n    }, i = function(e, t) {\n        return function(i, n) {\n            t(i, n, e)\n        }\n    };\n    let xt = 0;\n    class St {\n        constructor(e) {\n            this._source = e, this._eos = !1\n        }\n        read() {\n            if (this._eos) return null;\n            let e = [],\n                t = 0,\n                i = 0;\n            for (;;) {\n                var n = this._source.read();\n                if (null === n) return this._eos = !0, 0 === t ? null : e.join(\"\");\n                if (0 < n.length && (e[t++] = n, i += n.length), 65536 <= i) return e.join(\"\")\n            }\n        }\n    }\n    const kt = () => {\n        throw new Error(\"Invalid change accessor\")\n    };\n    class Lt {\n        constructor() {\n            this._searchCanceledBrand = void 0\n        }\n    }\n\n    function Ot(e) {\n        return e instanceof Lt ? null : e\n    }\n    Lt.INSTANCE = new Lt;\n    let Et = class e extends o.a {\n        constructor(t, i, n, o = null, l, d, h) {\n            super(), this._undoRedoService = l, this._modeService = d, this._language配置Service = h, this._onWillDispose = this._register(new r.b), this.onWillDispose = this._onWillDispose.event, this._onDidChangeDecorations = this._register(new Wt(e => this.handleBeforeFireDecorationsChangedEvent(e))), this.onDidChangeDecorations = this._onDidChangeDecorations.event, this._onDidChangeLanguage = this._register(new r.b), this.onDidChangeLanguage = this._onDidChangeLanguage.event, this._onDidChangeLanguage配置 = this._register(new r.b), this.onDidChangeLanguage配置 = this._onDidChangeLanguage配置.event, this._onDidChangeTokens = this._register(new r.b), this.onDidChangeTokens = this._onDidChangeTokens.event, this._onDidChangeOptions = this._register(new r.b), this.onDidChangeOptions = this._onDidChangeOptions.event, this._onDidChangeAttached = this._register(new r.b), this.onDidChangeAttached = this._onDidChangeAttached.event, this._onDidChangeContentOrInjectedText = this._register(new r.b), this.onDidChangeContentOrInjectedText = this._onDidChangeContentOrInjectedText.event, this._eventEmitter = this._register(new zt), this._backgroundTokenizationState = 0, this._onBackgroundTokenizationStateChanged = this._register(new r.b), this.onBackgroundTokenizationStateChanged = this._onBackgroundTokenizationStateChanged.event, this._register(this._eventEmitter.fastEvent(e => {\n                this._onDidChangeContentOrInjectedText.fire(e.rawContentChangedEvent)\n            })), xt++, this.id = \"$model\" + xt, this.isForSimpleWidget = i.isForSimpleWidget, this._associatedResource = null == o ? a.a.parse(\"inmemory://model/\" + xt) : o, this._attachedEditorCount = 0;\n            var {\n                textBuffer: o,\n                disposable: t\n            } = Ct(t, i.defaultEOL);\n            this._buffer = o, this._bufferDisposable = t, this._options = e.resolveOptions(this._buffer, i), o = this._buffer.getLineCount(), t = this._buffer.getValueLengthInRange(new c.a(1, 1, o, this._buffer.getLineLength(o) + 1), 0), i.largeFileOptimizations ? this._isTooLargeForTokenization = t > e.LARGE_FILE_SIZE_THRESHOLD || o > e.LARGE_FILE_LINE_COUNT_THRESHOLD : this._isTooLargeForTokenization = !1, this._isTooLargeForSyncing = t > e.MODEL_SYNC_LIMIT, this._versionId = 1, this._alternativeVersionId = 1, this._initialUndoRedoSnapshot = null, this._isDisposed = !1, this._isDisposing = !1, this._languageId = n || ge.a, this._languageRegistryListener = this._language配置Service.onDidChange(e => {\n                e.affects(this._languageId) && this._onDidChangeLanguage配置.fire({})\n            }), this._instanceId = s.P(xt), this._lastDecorationId = 0, this._decorations = Object.create(null), this._decorationsTree = new Tt, this._commandManager = new p.a(this, this._undoRedoService), this._isUndoing = !1, this._isRedoing = !1, this._trimAutoWhitespaceLines = null, this._tokens = new oe.d(this._modeService.languageIdCodec), this._tokens2 = new oe.e(this._modeService.languageIdCodec), this._tokenization = new be(this, this._modeService.languageIdCodec), this._bracketPairColorizer = this._register(new ft(this, this._language配置Service)), this._decorationProvider = this._register(new wt(this)), this._register(this._decorationProvider.onDidChange(() => {\n                this._onDidChangeDecorations.beginDeferredEmit(), this._onDidChangeDecorations.fire(), this._onDidChangeDecorations.endDeferredEmit()\n            }))\n        }\n        static resolveOptions(e, t) {\n            return t.detectIndentation ? (e = f(e, t.tabSize, t.insertSpaces), new u.h({\n                tabSize: e.tabSize,\n                indentSize: e.tabSize,\n                insertSpaces: e.insertSpaces,\n                trimAutoWhitespace: t.trimAutoWhitespace,\n                defaultEOL: t.defaultEOL,\n                bracketPairColorizationOptions: t.bracketPairColorizationOptions\n            })) : new u.h({\n                tabSize: t.tabSize,\n                indentSize: t.indentSize,\n                insertSpaces: t.insertSpaces,\n                trimAutoWhitespace: t.trimAutoWhitespace,\n                defaultEOL: t.defaultEOL,\n                bracketPairColorizationOptions: t.bracketPairColorizationOptions\n            })\n        }\n        onDidChangeContentFast(e) {\n            return this._eventEmitter.fastEvent(t => e(t.contentChangedEvent))\n        }\n        onDidChangeContent(e) {\n            return this._eventEmitter.slowEvent(t => e(t.contentChangedEvent))\n        }\n        get bracketPairs() {\n            return this._bracketPairColorizer\n        }\n        get backgroundTokenizationState() {\n            return this._backgroundTokenizationState\n        }\n        handleTokenizationProgress(e) {\n            2 === this._backgroundTokenizationState || this._backgroundTokenizationState !== (e = e ? 2 : 1) && (this._backgroundTokenizationState = e, this._onBackgroundTokenizationStateChanged.fire())\n        }\n        dispose() {\n            this._isDisposing = !0, this._onWillDispose.fire(), this._languageRegistryListener.dispose(), this._tokenization.dispose(), this._isDisposed = !0, super.dispose(), this._bufferDisposable.dispose(), this._isDisposing = !1;\n            const e = new ae([], \"\", \"\\n\", !1, !1, !0, !0);\n            e.dispose(), this._buffer = e\n        }\n        _assertNotDisposed() {\n            if (this._isDisposed) throw new Error(\"Model is disposed!\")\n        }\n        _emitContentChangedEvent(e, t) {\n            this._bracketPairColorizer.handleContentChanged(t), this._isDisposing || this._eventEmitter.fire(new ce.a(e, t))\n        }\n        setValue(e) {\n            var t;\n            this._assertNotDisposed(), null !== e && (({\n                textBuffer: t,\n                disposable: e\n            } = Ct(e, this._options.defaultEOL)), this._setValueFromTextBuffer(t, e))\n        }\n        _createContentChanged2(e, t, i, n, r, o, s) {\n            return {\n                changes: [{\n                    range: e,\n                    rangeOffset: t,\n                    rangeLength: i,\n                    text: n\n                }],\n                eol: this._buffer.getEOL(),\n                versionId: this.getVersionId(),\n                isUndoing: r,\n                isRedoing: o,\n                isFlush: s\n            }\n        }\n        _setValueFromTextBuffer(e, t) {\n            this._assertNotDisposed();\n            var i = this.getFullModelRange(),\n                n = this.getValueLengthInRange(i),\n                r = this.getLineCount();\n            i = this.getLineMaxColumn(r);\n            this._buffer = e, this._bufferDisposable.dispose(), this._bufferDisposable = t, this._increaseVersionId(), this._tokens.flush(), this._tokens2.flush(), this._decorations = Object.create(null), this._decorationsTree = new Tt, this._commandManager.clear(), this._trimAutoWhitespaceLines = null, this._emitContentChangedEvent(new ce.d([new ce.f], this._versionId, !1, !1), this._createContentChanged2(new c.a(1, 1, r, i), 0, n, this.getValue(), !1, !1, !0))\n        }\n        setEOL(e) {\n            this._assertNotDisposed();\n            var t, i, n = 1 === e ? \"\\r\\n\" : \"\\n\";\n            this._buffer.getEOL() !== n && (i = this.getFullModelRange(), t = this.getValueLengthInRange(i), e = this.getLineCount(), i = this.getLineMaxColumn(e), this._onBeforeEOLChange(), this._buffer.setEOL(n), this._increaseVersionId(), this._onAfterEOLChange(), this._emitContentChangedEvent(new ce.d([new ce.e], this._versionId, !1, !1), this._createContentChanged2(new c.a(1, 1, e, i), 0, t, this.getValue(), !1, !1, !1)))\n        }\n        _onBeforeEOLChange() {\n            this._decorationsTree.ensureAllNodesHaveRanges(this)\n        }\n        _onAfterEOLChange() {\n            var e = this.getVersionId(),\n                t = this._decorationsTree.collectNodesPostOrder();\n            for (let o = 0, s = t.length; o < s; o++) {\n                const s = t[o];\n                var i = s.range,\n                    n = s.cachedAbsoluteStart - s.start,\n                    r = this._buffer.getOffsetAt(i.startLineNumber, i.startColumn);\n                i = this._buffer.getOffsetAt(i.endLineNumber, i.endColumn);\n                s.cachedAbsoluteStart = r, s.cachedAbsoluteEnd = i, s.cachedVersionId = e, s.start = r - n, s.end = i - n, P(s)\n            }\n        }\n        onBeforeAttached() {\n            this._attachedEditorCount++, 1 === this._attachedEditorCount && this._onDidChangeAttached.fire(void 0)\n        }\n        onBeforeDetached() {\n            this._attachedEditorCount--, 0 === this._attachedEditorCount && this._onDidChangeAttached.fire(void 0)\n        }\n        isAttachedToEditor() {\n            return 0 < this._attachedEditorCount\n        }\n        getAttachedEditorCount() {\n            return this._attachedEditorCount\n        }\n        isTooLargeForSyncing() {\n            return this._isTooLargeForSyncing\n        }\n        isTooLargeForTokenization() {\n            return this._isTooLargeForTokenization\n        }\n        isDisposed() {\n            return this._isDisposed\n        }\n        isDominatedByLongLines() {\n            if (this._assertNotDisposed(), this.isTooLargeForTokenization()) return !1;\n            let e = 0,\n                t = 0;\n            var i = this._buffer.getLineCount();\n            for (let r = 1; r <= i; r++) {\n                var n = this._buffer.getLineLength(r);\n                1e4 <= n ? t += n : e += n\n            }\n            return t > e\n        }\n        get uri() {\n            return this._associatedResource\n        }\n        getOptions() {\n            return this._assertNotDisposed(), this._options\n        }\n        getFormattingOptions() {\n            return {\n                tabSize: this._options.indentSize,\n                insertSpaces: this._options.insertSpaces\n            }\n        }\n        updateOptions(e) {\n            this._assertNotDisposed();\n            var t = (void 0 !== e.tabSize ? e : this._options).tabSize,\n                i = (void 0 !== e.indentSize ? e : this._options).indentSize,\n                n = (void 0 !== e.insertSpaces ? e : this._options).insertSpaces,\n                r = (void 0 !== e.trimAutoWhitespace ? e : this._options).trimAutoWhitespace;\n            e = void 0 !== e.bracketColorizationOptions ? e.bracketColorizationOptions : this._options.bracketPairColorizationOptions, r = new u.h({\n                tabSize: t,\n                indentSize: i,\n                insertSpaces: n,\n                defaultEOL: this._options.defaultEOL,\n                trimAutoWhitespace: r,\n                bracketPairColorizationOptions: e\n            });\n            this._options.equals(r) || (e = this._options.createChangeEvent(r), this._options = r, this._onDidChangeOptions.fire(e))\n        }\n        detectIndentation(e, t) {\n            this._assertNotDisposed(), e = f(this._buffer, t, e), this.updateOptions({\n                insertSpaces: e.insertSpaces,\n                tabSize: e.tabSize,\n                indentSize: e.tabSize\n            })\n        }\n        static _normalizeIndentationFromWhitespace(e, t, i) {\n            let n = 0;\n            for (let i = 0; i < e.length; i++) \"\\t\" === e.charAt(i) ? n += t : n++;\n            let r = \"\";\n            if (!i) {\n                var o = Math.floor(n / t);\n                n %= t;\n                for (let e = 0; e < o; e++) r += \"\\t\"\n            }\n            for (let e = 0; e < n; e++) r += \" \";\n            return r\n        }\n        static normalizeIndentation(t, i, n) {\n            let r = s.u(t);\n            return -1 === r && (r = t.length), e._normalizeIndentationFromWhitespace(t.substring(0, r), i, n) + t.substring(r)\n        }\n        normalizeIndentation(t) {\n            return this._assertNotDisposed(), e.normalizeIndentation(t, this._options.indentSize, this._options.insertSpaces)\n        }\n        getVersionId() {\n            return this._assertNotDisposed(), this._versionId\n        }\n        mightContainRTL() {\n            return this._buffer.mightContainRTL()\n        }\n        mightContainUnusualLineTerminators() {\n            return this._buffer.mightContainUnusualLineTerminators()\n        }\n        removeUnusualLineTerminators(e = null) {\n            const t = this.findMatches(s.a.source, !1, !0, !1, null, !1, 1073741824);\n            this._buffer.resetMightContainUnusualLineTerminators(), this.pushEditOperations(e, t.map(e => ({\n                range: e.range,\n                text: null\n            })), () => null)\n        }\n        mightContainNonBasicASCII() {\n            return this._buffer.mightContainNonBasicASCII()\n        }\n        getAlternativeVersionId() {\n            return this._assertNotDisposed(), this._alternativeVersionId\n        }\n        getInitialUndoRedoSnapshot() {\n            return this._assertNotDisposed(), this._initialUndoRedoSnapshot\n        }\n        getOffsetAt(e) {\n            return this._assertNotDisposed(), e = this._validatePosition(e.lineNumber, e.column, 0), this._buffer.getOffsetAt(e.lineNumber, e.column)\n        }\n        getPositionAt(e) {\n            return this._assertNotDisposed(), e = Math.min(this._buffer.getLength(), Math.max(0, e)), this._buffer.getPositionAt(e)\n        }\n        _increaseVersionId() {\n            this._versionId = this._versionId + 1, this._alternativeVersionId = this._versionId\n        }\n        _overwriteVersionId(e) {\n            this._versionId = e\n        }\n        _overwriteAlternativeVersionId(e) {\n            this._alternativeVersionId = e\n        }\n        _overwriteInitialUndoRedoSnapshot(e) {\n            this._initialUndoRedoSnapshot = e\n        }\n        getValue(e, t = !1) {\n            this._assertNotDisposed();\n            var i = this.getFullModelRange();\n            e = this.getValueInRange(i, e);\n            return t ? this._buffer.getBOM() + e : e\n        }\n        createSnapshot(e = !1) {\n            return new St(this._buffer.createSnapshot(e))\n        }\n        getValueLength(e, t = !1) {\n            this._assertNotDisposed();\n            var i = this.getFullModelRange();\n            e = this.getValueLengthInRange(i, e);\n            return t ? this._buffer.getBOM().length + e : e\n        }\n        getValueInRange(e, t = 0) {\n            return this._assertNotDisposed(), this._buffer.getValueInRange(this.validateRange(e), t)\n        }\n        getValueLengthInRange(e, t = 0) {\n            return this._assertNotDisposed(), this._buffer.getValueLengthInRange(this.validateRange(e), t)\n        }\n        getCharacterCountInRange(e, t = 0) {\n            return this._assertNotDisposed(), this._buffer.getCharacterCountInRange(this.validateRange(e), t)\n        }\n        getLineCount() {\n            return this._assertNotDisposed(), this._buffer.getLineCount()\n        }\n        getLineContent(e) {\n            if (this._assertNotDisposed(), e < 1 || e > this.getLineCount()) throw new Error(\"Illegal value for lineNumber\");\n            return this._buffer.getLineContent(e)\n        }\n        getLineLength(e) {\n            if (this._assertNotDisposed(), e < 1 || e > this.getLineCount()) throw new Error(\"Illegal value for lineNumber\");\n            return this._buffer.getLineLength(e)\n        }\n        getLinesContent() {\n            return this._assertNotDisposed(), this._buffer.getLinesContent()\n        }\n        getEOL() {\n            return this._assertNotDisposed(), this._buffer.getEOL()\n        }\n        getEndOfLineSequence() {\n            return this._assertNotDisposed(), \"\\n\" === this._buffer.getEOL() ? 0 : 1\n        }\n        getLineMinColumn(e) {\n            return this._assertNotDisposed(), 1\n        }\n        getLineMaxColumn(e) {\n            if (this._assertNotDisposed(), e < 1 || e > this.getLineCount()) throw new Error(\"Illegal value for lineNumber\");\n            return this._buffer.getLineLength(e) + 1\n        }\n        getLineFirstNonWhitespaceColumn(e) {\n            if (this._assertNotDisposed(), e < 1 || e > this.getLineCount()) throw new Error(\"Illegal value for lineNumber\");\n            return this._buffer.getLineFirstNonWhitespaceColumn(e)\n        }\n        getLineLastNonWhitespaceColumn(e) {\n            if (this._assertNotDisposed(), e < 1 || e > this.getLineCount()) throw new Error(\"Illegal value for lineNumber\");\n            return this._buffer.getLineLastNonWhitespaceColumn(e)\n        }\n        _validateRangeRelaxedNoAllocations(e) {\n            var t = this._buffer.getLineCount(),\n                i = e.startLineNumber,\n                n = e.startColumn;\n            let r = Math.floor(\"number\" != typeof i || isNaN(i) ? 1 : i),\n                o = Math.floor(\"number\" != typeof n || isNaN(n) ? 1 : n);\n            r < 1 ? (r = 1, o = 1) : r > t ? (r = t, o = this.getLineMaxColumn(r)) : o <= 1 ? o = 1 : o >= (a = this.getLineMaxColumn(r)) && (o = a);\n            var s = e.endLineNumber,\n                a = e.endColumn;\n            let l = Math.floor(\"number\" != typeof s || isNaN(s) ? 1 : s),\n                d = Math.floor(\"number\" != typeof a || isNaN(a) ? 1 : a);\n            return l < 1 ? (l = 1, d = 1) : l > t ? (l = t, d = this.getLineMaxColumn(l)) : d <= 1 ? d = 1 : d >= (t = this.getLineMaxColumn(l)) && (d = t), i === r && n === o && s === l && a === d && e instanceof c.a && !(e instanceof h.a) ? e : new c.a(r, o, l, d)\n        }\n        _isValidPosition(e, t, i) {\n            return \"number\" == typeof e && \"number\" == typeof t && (!isNaN(e) && !isNaN(t) && (!(e < 1 || t < 1) && ((0 | e) === e && (0 | t) === t && (!(this._buffer.getLineCount() < e) && (1 === t || !(this.getLineMaxColumn(e) < t) && (1 !== i || (t = this._buffer.getLineCharCode(e, t - 2), !s.E(t))))))))\n        }\n        _validatePosition(e, t, i) {\n            var n = Math.floor(\"number\" != typeof e || isNaN(e) ? 1 : e);\n            e = Math.floor(\"number\" != typeof t || isNaN(t) ? 1 : t), t = this._buffer.getLineCount();\n            return n < 1 ? new d.a(1, 1) : t < n ? new d.a(t, this.getLineMaxColumn(t)) : e <= 1 ? new d.a(n, 1) : (t = this.getLineMaxColumn(n)) <= e ? new d.a(n, t) : 1 === i && (i = this._buffer.getLineCharCode(n, e - 2), s.E(i)) ? new d.a(n, e - 1) : new d.a(n, e)\n        }\n        validatePosition(e) {\n            return this._assertNotDisposed(), e instanceof d.a && this._isValidPosition(e.lineNumber, e.column, 1) ? e : this._validatePosition(e.lineNumber, e.column, 1)\n        }\n        _isValidRange(e, t) {\n            var i = e.startLineNumber,\n                n = e.startColumn,\n                r = e.endLineNumber;\n            e = e.endColumn;\n            return !!this._isValidPosition(i, n, 0) && (!!this._isValidPosition(r, e, 0) && (1 !== t || (n = 1 < n ? this._buffer.getLineCharCode(i, n - 2) : 0, e = 1 < e && e <= this._buffer.getLineLength(r) ? this._buffer.getLineCharCode(r, e - 2) : 0, n = s.E(n), e = s.E(e), !n && !e)))\n        }\n        validateRange(e) {\n            if (this._assertNotDisposed(), e instanceof c.a && !(e instanceof h.a) && this._isValidRange(e, 1)) return e;\n            var t = this._validatePosition(e.startLineNumber, e.startColumn, 0),\n                i = this._validatePosition(e.endLineNumber, e.endColumn, 0),\n                n = t.lineNumber,\n                r = t.column,\n                o = i.lineNumber;\n            e = i.column, t = 1 < r ? this._buffer.getLineCharCode(n, r - 2) : 0, i = 1 < e && e <= this._buffer.getLineLength(o) ? this._buffer.getLineCharCode(o, e - 2) : 0, t = s.E(t), i = s.E(i);\n            return t || i ? n === o && r === e ? new c.a(n, r - 1, o, e - 1) : t && i ? new c.a(n, r - 1, o, e + 1) : t ? new c.a(n, r - 1, o, e) : new c.a(n, r, o, e + 1) : new c.a(n, r, o, e)\n        }\n        modifyPosition(e, t) {\n            return this._assertNotDisposed(), t = this.getOffsetAt(e) + t, this.getPositionAt(Math.min(this._buffer.getLength(), Math.max(0, t)))\n        }\n        getFullModelRange() {\n            this._assertNotDisposed();\n            var e = this.getLineCount();\n            return new c.a(1, 1, e, this.getLineMaxColumn(e))\n        }\n        findMatchesLineByLine(e, t, i, n) {\n            return this._buffer.findMatchesLineByLine(e, t, i, n)\n        }\n        findMatches(e, t, i, n, r, o, s = 999) {\n            this._assertNotDisposed();\n            let a = null;\n            null !== t && (t = Array.isArray(t) ? t : [t]).every(e => c.a.isIRange(e)) && (a = t.map(e => this.validateRange(e))), null === a && (a = [this.getFullModelRange()]), a = a.sort((e, t) => e.startLineNumber - t.startLineNumber || e.startColumn - t.startColumn);\n            const l = [];\n            let d;\n            if (l.push(a.reduce((e, t) => c.a.areIntersecting(e, t) ? e.plusRange(t) : (l.push(e), t))), !i && e.indexOf(\"\\n\") < 0) {\n                const t = new Y.a(e, i, n, r).parseSearchRequest();\n                if (!t) return [];\n                d = e => this.findMatchesLineByLine(e, t, o, s)\n            } else d = t => Y.c.findMatches(this, new Y.a(e, i, n, r), t, o, s);\n            return l.map(d).reduce((e, t) => e.concat(t), [])\n        }\n        findNextMatch(e, t, i, n, r, o) {\n            this._assertNotDisposed();\n            var s = this.validatePosition(t);\n            if (!i && e.indexOf(\"\\n\") < 0) {\n                var a = new Y.a(e, i, n, r).parseSearchRequest();\n                if (!a) return null;\n                t = this.getLineCount(), t = new c.a(s.lineNumber, s.column, t, this.getLineMaxColumn(t));\n                let l = this.findMatchesLineByLine(t, a, o, 1);\n                return Y.c.findNextMatch(this, new Y.a(e, i, n, r), s, o), 0 < l.length ? l[0] : (t = new c.a(1, 1, s.lineNumber, this.getLineMaxColumn(s.lineNumber)), l = this.findMatchesLineByLine(t, a, o, 1), 0 < l.length ? l[0] : null)\n            }\n            return Y.c.findNextMatch(this, new Y.a(e, i, n, r), s, o)\n        }\n        findPreviousMatch(e, t, i, n, r, o) {\n            return this._assertNotDisposed(), t = this.validatePosition(t), Y.c.findPreviousMatch(this, new Y.a(e, i, n, r), t, o)\n        }\n        pushStackElement() {\n            this._commandManager.pushStackElement()\n        }\n        popStackElement() {\n            this._commandManager.popStackElement()\n        }\n        pushEOL(e) {\n            if ((\"\\n\" === this.getEOL() ? 0 : 1) !== e) try {\n                this._onDidChangeDecorations.beginDeferredEmit(), this._eventEmitter.beginDeferredEmit(), null === this._initialUndoRedoSnapshot && (this._initialUndoRedoSnapshot = this._undoRedoService.createSnapshot(this.uri)), this._commandManager.pushEOL(e)\n            } finally {\n                this._eventEmitter.endDeferredEmit(), this._onDidChangeDecorations.endDeferredEmit()\n            }\n        }\n        _validateEditOperation(e) {\n            return e instanceof u.i ? e : new u.i(e.identifier || null, this.validateRange(e.range), e.text, e.forceMoveMarkers || !1, e.isAutoWhitespaceEdit || !1, e._isTracked || !1)\n        }\n        _validateEditOperations(e) {\n            const t = [];\n            for (let i = 0, n = e.length; i < n; i++) t[i] = this._validateEditOperation(e[i]);\n            return t\n        }\n        pushEditOperations(e, t, i) {\n            try {\n                return this._onDidChangeDecorations.beginDeferredEmit(), this._eventEmitter.beginDeferredEmit(), this._pushEditOperations(e, this._validateEditOperations(t), i)\n            } finally {\n                this._eventEmitter.endDeferredEmit(), this._onDidChangeDecorations.endDeferredEmit()\n            }\n        }\n        _pushEditOperations(e, t, i) {\n            if (this._options.trimAutoWhitespace && this._trimAutoWhitespaceLines) {\n                var n = t.map(e => ({\n                    range: this.validateRange(e.range),\n                    text: e.text\n                }));\n                let i = !0;\n                if (e)\n                    for (let t = 0, a = e.length; t < a; t++) {\n                        var r = e[t];\n                        let a = !1;\n                        for (let e = 0, t = n.length; e < t; e++) {\n                            var o = (s = n[e].range).startLineNumber > r.endLineNumber,\n                                s = r.startLineNumber > s.endLineNumber;\n                            if (!o && !s) {\n                                a = !0;\n                                break\n                            }\n                        }\n                        if (!a) {\n                            i = !1;\n                            break\n                        }\n                    }\n                if (i)\n                    for (let e = 0, i = this._trimAutoWhitespaceLines.length; e < i; e++) {\n                        var a, l = this._trimAutoWhitespaceLines[e],\n                            d = this.getLineMaxColumn(l);\n                        let i = !0;\n                        for (let e = 0, t = n.length; e < t; e++) {\n                            let t = n[e].range,\n                                r = n[e].text;\n                            if (!(l < t.startLineNumber || l > t.endLineNumber || l === t.startLineNumber && t.startColumn === d && t.isEmpty() && r && 0 < r.length && \"\\n\" === r.charAt(0) || l === t.startLineNumber && 1 === t.startColumn && t.isEmpty() && r && 0 < r.length && \"\\n\" === r.charAt(r.length - 1))) {\n                                i = !1;\n                                break\n                            }\n                        }\n                        i && (a = new c.a(l, 1, l, d), t.push(new u.i(null, a, null, !1, !1, !1)))\n                    }\n                this._trimAutoWhitespaceLines = null\n            }\n            return null === this._initialUndoRedoSnapshot && (this._initialUndoRedoSnapshot = this._undoRedoService.createSnapshot(this.uri)), this._commandManager.pushEditOperation(e, t, i)\n        }\n        _applyUndo(e, t, i, n) {\n            e = e.map(e => {\n                var t = this.getPositionAt(e.newPosition),\n                    i = this.getPositionAt(e.newEnd);\n                return {\n                    range: new c.a(t.lineNumber, t.column, i.lineNumber, i.column),\n                    text: e.oldText\n                }\n            }), this._applyUndoRedoEdits(e, t, !0, !1, i, n)\n        }\n        _applyRedo(e, t, i, n) {\n            e = e.map(e => {\n                var t = this.getPositionAt(e.oldPosition),\n                    i = this.getPositionAt(e.oldEnd);\n                return {\n                    range: new c.a(t.lineNumber, t.column, i.lineNumber, i.column),\n                    text: e.newText\n                }\n            }), this._applyUndoRedoEdits(e, t, !1, !0, i, n)\n        }\n        _applyUndoRedoEdits(e, t, i, n, r, o) {\n            try {\n                this._onDidChangeDecorations.beginDeferredEmit(), this._eventEmitter.beginDeferredEmit(), this._isUndoing = i, this._isRedoing = n, this.applyEdits(e, !1), this.setEOL(t), this._overwriteAlternativeVersionId(r)\n            } finally {\n                this._isUndoing = !1, this._isRedoing = !1, this._eventEmitter.endDeferredEmit(o), this._onDidChangeDecorations.endDeferredEmit()\n            }\n        }\n        applyEdits(e, t = !1) {\n            try {\n                this._onDidChangeDecorations.beginDeferredEmit(), this._eventEmitter.beginDeferredEmit();\n                var i = this._validateEditOperations(e);\n                return this._doApplyEdits(i, t)\n            } finally {\n                this._eventEmitter.endDeferredEmit(), this._onDidChangeDecorations.endDeferredEmit()\n            }\n        }\n        _doApplyEdits(e, t) {\n            var i = this._buffer.getLineCount(),\n                n = (t = this._buffer.applyEdits(e, this._options.trimAutoWhitespace, t), this._buffer.getLineCount()),\n                r = t.changes;\n            if (this._trimAutoWhitespaceLines = t.trimAutoWhitespaceLineNumbers, 0 !== r.length) {\n                for (let e = 0, t = r.length; e < t; e++) {\n                    const t = r[e];\n                    var [o, s, a] = Object(oe.f)(t.text);\n                    this._tokens.acceptEdit(t.range, o, s), this._tokens2.acceptEdit(t.range, o, s, a, 0 < t.text.length ? t.text.charCodeAt(0) : 0), this._decorationsTree.acceptReplace(t.rangeOffset, t.rangeLength, t.text.length, t.forceMoveMarkers)\n                }\n                let e = [];\n                this._increaseVersionId();\n                let t = i;\n                for (let i = 0, o = r.length; i < o; i++) {\n                    var l = r[i],\n                        [c] = Object(oe.f)(l.text);\n                    this._onDidChangeDecorations.fire();\n                    var h = l.range.startLineNumber,\n                        u = l.range.endLineNumber,\n                        p = u - h,\n                        g = c,\n                        f = Math.min(p, g),\n                        m = n - t - (l = g - p) + h;\n                    c = m + g, c = this._decorationsTree.getInjectedTextInInterval(this, this.getOffsetAt(new d.a(m, 1)), this.getOffsetAt(new d.a(c, this.getLineMaxColumn(c))), 0), c = ce.b.fromDecorations(c);\n                    const o = new he.a(c);\n                    for (let t = f; 0 <= t; t--) {\n                        var v = h + t;\n                        const i = m + t;\n                        o.takeFromEndWhile(e => e.lineNumber > i);\n                        var b = o.takeFromEndWhile(e => e.lineNumber === i);\n                        e.push(new ce.g(v, this.getLineContent(i), b))\n                    }\n                    if (f < p && e.push(new ce.h(h + f + 1, u)), f < g) {\n                        const i = new he.a(c);\n                        var c, _ = g - f,\n                            w = n - t - _ + (c = h + f) + 1;\n                        let r = [],\n                            o = [];\n                        for (let e = 0; e < _; e++) {\n                            let t = w + e;\n                            o[e] = this.getLineContent(t), i.takeWhile(e => e.lineNumber < t), r[e] = i.takeWhile(e => e.lineNumber === t)\n                        }\n                        e.push(new ce.i(c + 1, h + g, o, r))\n                    }\n                    t += l\n                }\n                this._emitContentChangedEvent(new ce.d(e, this.getVersionId(), this._isUndoing, this._isRedoing), {\n                    changes: r,\n                    eol: this._buffer.getEOL(),\n                    versionId: this.getVersionId(),\n                    isUndoing: this._isUndoing,\n                    isRedoing: this._isRedoing,\n                    isFlush: !1\n                })\n            }\n            return null === t.reverseEdits ? void 0 : t.reverseEdits\n        }\n        undo() {\n            return this._undoRedoService.undo(this.uri)\n        }\n        canUndo() {\n            return this._undoRedoService.canUndo(this.uri)\n        }\n        redo() {\n            return this._undoRedoService.redo(this.uri)\n        }\n        canRedo() {\n            return this._undoRedoService.canRedo(this.uri)\n        }\n        handleBeforeFireDecorationsChangedEvent(e) {\n            if (null !== e && 0 !== e.size) {\n                e = [...e].map(e => new ce.g(e, this.getLineContent(e), this._getInjectedTextInLine(e))), this._onDidChangeContentOrInjectedText.fire(new ce.c(e))\n            }\n        }\n        changeDecorations(e, t = 0) {\n            this._assertNotDisposed();\n            try {\n                return this._onDidChangeDecorations.beginDeferredEmit(), this._changeDecorations(t, e)\n            } finally {\n                this._onDidChangeDecorations.endDeferredEmit()\n            }\n        }\n        _changeDecorations(e, t) {\n            let i = {\n                    addDecoration: (t, i) => this._deltaDecorationsImpl(e, [], [{\n                        range: t,\n                        options: i\n                    }])[0],\n                    changeDecoration: (e, t) => {\n                        this._changeDecorationImpl(e, t)\n                    },\n                    changeDecorationOptions: (e, t) => {\n                        this._changeDecorationOptionsImpl(e, Vt(t))\n                    },\n                    removeDecoration: t => {\n                        this._deltaDecorationsImpl(e, [t], [])\n                    },\n                    deltaDecorations: (t, i) => 0 === t.length && 0 === i.length ? [] : this._deltaDecorationsImpl(e, t, i)\n                },\n                r = null;\n            try {\n                r = t(i)\n            } catch (t) {\n                Object(n.f)(t)\n            }\n            return i.addDecoration = kt, i.changeDecoration = kt, i.changeDecorationOptions = kt, i.removeDecoration = kt, i.deltaDecorations = kt, r\n        }\n        deltaDecorations(e, t, i = 0) {\n            if (this._assertNotDisposed(), 0 === (e = e || []).length && 0 === t.length) return [];\n            try {\n                return this._onDidChangeDecorations.beginDeferredEmit(), this._deltaDecorationsImpl(i, e, t)\n            } finally {\n                this._onDidChangeDecorations.endDeferredEmit()\n            }\n        }\n        _getTrackedRange(e) {\n            return this.getDecorationRange(e)\n        }\n        _setTrackedRange(e, t, i) {\n            const n = e ? this._decorations[e] : null;\n            if (!n) return t ? this._deltaDecorationsImpl(0, [], [{\n                range: t,\n                options: Bt[i]\n            }])[0] : null;\n            if (!t) return this._decorationsTree.delete(n), delete this._decorations[n.id], null;\n            var r = this._validateRangeRelaxedNoAllocations(t);\n            e = this._buffer.getOffsetAt(r.startLineNumber, r.startColumn), t = this._buffer.getOffsetAt(r.endLineNumber, r.endColumn);\n            return this._decorationsTree.delete(n), n.reset(this.getVersionId(), e, t, r), n.setOptions(Bt[i]), this._decorationsTree.insert(n), n.id\n        }\n        removeAllDecorationsWithOwnerId(e) {\n            if (!this._isDisposed) {\n                var t = this._decorationsTree.collectNodesFromOwner(e);\n                for (let e = 0, n = t.length; e < n; e++) {\n                    var i = t[e];\n                    this._decorationsTree.delete(i), delete this._decorations[i.id]\n                }\n            }\n        }\n        getDecorationOptions(e) {\n            return (e = this._decorations[e]) ? e.options : null\n        }\n        getDecorationRange(e) {\n            return (e = this._decorations[e]) ? this._decorationsTree.getNodeRange(this, e) : null\n        }\n        getLineDecorations(e, t = 0, i = !1) {\n            return e < 1 || e > this.getLineCount() ? [] : this.getLinesDecorations(e, e, t, i)\n        }\n        getLinesDecorations(e, t, i = 0, n = !1) {\n            var r = this.getLineCount();\n            e = Math.min(r, Math.max(1, e)), r = Math.min(r, Math.max(1, t)), t = this.getLineMaxColumn(r), t = new c.a(e, 1, r, t);\n            const o = this._getDecorationsInRange(t, i, n);\n            return o.push(...this._decorationProvider.getDecorationsInRange(t, i, n)), o\n        }\n        getDecorationsInRange(e, t = 0, i = !1) {\n            e = this.validateRange(e);\n            const n = this._getDecorationsInRange(e, t, i);\n            return n.push(...this._decorationProvider.getDecorationsInRange(e, t, i)), n\n        }\n        getOverviewRulerDecorations(e = 0, t = !1) {\n            return this._decorationsTree.getAll(this, e, t, !0)\n        }\n        getInjectedTextDecorations(e = 0) {\n            return this._decorationsTree.getAllInjectedText(this, e)\n        }\n        _getInjectedTextInLine(e) {\n            var t = this._buffer.getOffsetAt(e, 1),\n                i = t + this._buffer.getLineLength(e);\n            i = this._decorationsTree.getInjectedTextInInterval(this, t, i, 0);\n            return ce.b.fromDecorations(i).filter(t => t.lineNumber === e)\n        }\n        getAllDecorations(e = 0, t = !1) {\n            let i = this._decorationsTree.getAll(this, e, t, !1);\n            return i = i.concat(this._decorationProvider.getAllDecorations(e, t)), i\n        }\n        _getDecorationsInRange(e, t, i) {\n            var n = this._buffer.getOffsetAt(e.startLineNumber, e.startColumn);\n            e = this._buffer.getOffsetAt(e.endLineNumber, e.endColumn);\n            return this._decorationsTree.getAllInInterval(this, n, e, t, i)\n        }\n        getRangeAt(e, t) {\n            return this._buffer.getRangeAt(e, t - e)\n        }\n        _changeDecorationImpl(e, t) {\n            const i = this._decorations[e];\n            var n, r;\n            i && (i.options.after && (n = this.getDecorationRange(e), this._onDidChangeDecorations.recordLineAffectedByInjectedText(n.endLineNumber)), i.options.before && (r = this.getDecorationRange(e), this._onDidChangeDecorations.recordLineAffectedByInjectedText(r.startLineNumber)), e = this._validateRangeRelaxedNoAllocations(t), r = this._buffer.getOffsetAt(e.startLineNumber, e.startColumn), t = this._buffer.getOffsetAt(e.endLineNumber, e.endColumn), this._decorationsTree.delete(i), i.reset(this.getVersionId(), r, t, e), this._decorationsTree.insert(i), this._onDidChangeDecorations.checkAffectedAndFire(i.options), i.options.after && this._onDidChangeDecorations.recordLineAffectedByInjectedText(e.endLineNumber), i.options.before && this._onDidChangeDecorations.recordLineAffectedByInjectedText(e.startLineNumber))\n        }\n        _changeDecorationOptionsImpl(e, t) {\n            const i = this._decorations[e];\n            var n, r;\n            i && (n = !(!i.options.overviewRuler || !i.options.overviewRuler.color), e = !(!t.overviewRuler || !t.overviewRuler.color), this._onDidChangeDecorations.checkAffectedAndFire(i.options), this._onDidChangeDecorations.checkAffectedAndFire(t), (i.options.after || t.after) && (r = this._decorationsTree.getNodeRange(this, i), this._onDidChangeDecorations.recordLineAffectedByInjectedText(r.endLineNumber)), (i.options.before || t.before) && (r = this._decorationsTree.getNodeRange(this, i), this._onDidChangeDecorations.recordLineAffectedByInjectedText(r.startLineNumber)), n != e ? (this._decorationsTree.delete(i), i.setOptions(t), this._decorationsTree.insert(i)) : i.setOptions(t))\n        }\n        _deltaDecorationsImpl(e, t, i) {\n            var n = this.getVersionId(),\n                r = t.length;\n            let o = 0;\n            var s, a, l, d, c = i.length;\n            let h = 0,\n                u = new Array(c);\n            for (; o < r || h < c;) {\n                let p = null;\n                if (o < r) {\n                    for (; p = this._decorations[t[o++]], !p && o < r;);\n                    p && (p.options.after && (d = this._decorationsTree.getNodeRange(this, p), this._onDidChangeDecorations.recordLineAffectedByInjectedText(d.endLineNumber)), p.options.before && (s = this._decorationsTree.getNodeRange(this, p), this._onDidChangeDecorations.recordLineAffectedByInjectedText(s.startLineNumber)), this._decorationsTree.delete(p), this._onDidChangeDecorations.checkAffectedAndFire(p.options))\n                }\n                h < c ? (p || (a = ++this._lastDecorationId, l = `${this._instanceId};${a}`, p = new S(l, 0, 0), this._decorations[l] = p), d = i[h], s = this._validateRangeRelaxedNoAllocations(d.range), a = Vt(d.options), l = this._buffer.getOffsetAt(s.startLineNumber, s.startColumn), d = this._buffer.getOffsetAt(s.endLineNumber, s.endColumn), p.ownerId = e, p.reset(n, l, d, s), p.setOptions(a), p.options.after && this._onDidChangeDecorations.recordLineAffectedByInjectedText(s.endLineNumber), p.options.before && this._onDidChangeDecorations.recordLineAffectedByInjectedText(s.startLineNumber), this._onDidChangeDecorations.checkAffectedAndFire(a), this._decorationsTree.insert(p), u[h] = p.id, h++) : p && delete this._decorations[p.id]\n            }\n            return u\n        }\n        setTokens(e, t = !1) {\n            if (0 !== e.length) {\n                let t = [];\n                for (let r = 0, o = e.length; r < o; r++) {\n                    var i = e[r];\n                    let o = 0,\n                        s = 0,\n                        a = !1;\n                    for (let e = 0, t = i.tokens.length; e < t; e++) {\n                        var n = i.startLineNumber + e;\n                        a ? (this._tokens.setTokens(this._languageId, n - 1, this._buffer.getLineLength(n), i.tokens[e], !1), s = n) : this._tokens.setTokens(this._languageId, n - 1, this._buffer.getLineLength(n), i.tokens[e], !0) && (a = !0, o = n, s = n)\n                    }\n                    a && t.push({\n                        fromLineNumber: o,\n                        toLineNumber: s\n                    })\n                }\n                0 < t.length && this._emitModelTokensChangedEvent({\n                    tokenizationSupportChanged: !1,\n                    semanticTokensApplied: !1,\n                    ranges: t\n                })\n            }\n            this.handleTokenizationProgress(t)\n        }\n        setSemanticTokens(e, t) {\n            this._tokens2.set(e, t), this._emitModelTokensChangedEvent({\n                tokenizationSupportChanged: !1,\n                semanticTokensApplied: null !== e,\n                ranges: [{\n                    fromLineNumber: 1,\n                    toLineNumber: this.getLineCount()\n                }]\n            })\n        }\n        hasCompleteSemanticTokens() {\n            return this._tokens2.isComplete()\n        }\n        hasSomeSemanticTokens() {\n            return !this._tokens2.isEmpty()\n        }\n        setPartialSemanticTokens(e, t) {\n            this.hasCompleteSemanticTokens() || (t = this._tokens2.setPartial(e, t), this._emitModelTokensChangedEvent({\n                tokenizationSupportChanged: !1,\n                semanticTokensApplied: !0,\n                ranges: [{\n                    fromLineNumber: t.startLineNumber,\n                    toLineNumber: t.endLineNumber\n                }]\n            }))\n        }\n        tokenizeViewport(e, t) {\n            e = Math.max(1, e), t = Math.min(this._buffer.getLineCount(), t), this._tokenization.tokenizeViewport(e, t)\n        }\n        clearTokens() {\n            this._tokens.flush(), this._emitModelTokensChangedEvent({\n                tokenizationSupportChanged: !0,\n                semanticTokensApplied: !1,\n                ranges: [{\n                    fromLineNumber: 1,\n                    toLineNumber: this._buffer.getLineCount()\n                }]\n            })\n        }\n        _emitModelTokensChangedEvent(e) {\n            this._isDisposing || this._onDidChangeTokens.fire(e)\n        }\n        resetTokenization() {\n            this._tokenization.reset()\n        }\n        forceTokenization(e) {\n            if (e < 1 || e > this.getLineCount()) throw new Error(\"Illegal value for lineNumber\");\n            this._tokenization.forceTokenization(e)\n        }\n        isCheapToTokenize(e) {\n            return this._tokenization.isCheapToTokenize(e)\n        }\n        tokenizeIfCheap(e) {\n            this.isCheapToTokenize(e) && this.forceTokenization(e)\n        }\n        getLineTokens(e) {\n            if (e < 1 || e > this.getLineCount()) throw new Error(\"Illegal value for lineNumber\");\n            return this._getLineTokens(e)\n        }\n        _getLineTokens(e) {\n            var t = this.getLineContent(e);\n            t = this._tokens.getTokens(this._languageId, e - 1, t);\n            return this._tokens2.addSemanticTokens(e, t)\n        }\n        getLanguageId() {\n            return this._languageId\n        }\n        setMode(e) {\n            var t;\n            this._languageId !== e && (t = {\n                oldLanguage: this._languageId,\n                newLanguage: e\n            }, this._languageId = e, this._onDidChangeLanguage.fire(t), this._onDidChangeLanguage配置.fire({}))\n        }\n        getLanguageIdAtPosition(e, t) {\n            t = this.validatePosition(new d.a(e, t));\n            const i = this.getLineTokens(t.lineNumber);\n            return i.getLanguageId(i.findTokenIndexAtOffset(t.column - 1))\n        }\n        getLanguage配置(e) {\n            return this._language配置Service.getLanguage配置(e)\n        }\n        getWordAtPosition(t) {\n            this._assertNotDisposed();\n            var i = this.validatePosition(t);\n            const n = this.getLineContent(i.lineNumber),\n                r = this._getLineTokens(i.lineNumber);\n            var o = r.findTokenIndexAtOffset(i.column - 1),\n                [s, a] = e._findLanguageBoundaries(r, o);\n            if ((a = Object(we.d)(i.column, this.getLanguage配置(r.getLanguageId(o)).getWordDefinition(), n.substring(s, a), s)) && a.startColumn <= t.column && t.column <= a.endColumn) return a;\n            if (0 < o && s === i.column - 1) {\n                var a, [a, s] = e._findLanguageBoundaries(r, o - 1);\n                if ((a = Object(we.d)(i.column, this.getLanguage配置(r.getLanguageId(o - 1)).getWordDefinition(), n.substring(a, s), a)) && a.startColumn <= t.column && t.column <= a.endColumn) return a\n            }\n            return null\n        }\n        static _findLanguageBoundaries(e, t) {\n            var i = e.getLanguageId(t);\n            let n = 0;\n            for (let r = t; 0 <= r && e.getLanguageId(r) === i; r--) n = e.getStartOffset(r);\n            let r = e.getLineContent().length;\n            for (let n = t, o = e.getCount(); n < o && e.getLanguageId(n) === i; n++) r = e.getEndOffset(n);\n            return [n, r]\n        }\n        getWordUntilPosition(e) {\n            const t = this.getWordAtPosition(e);\n            return t ? {\n                word: t.word.substr(0, e.column - t.startColumn),\n                startColumn: t.startColumn,\n                endColumn: e.column\n            } : {\n                word: \"\",\n                startColumn: e.column,\n                endColumn: e.column\n            }\n        }\n        findMatchingBracketUp(e, t) {\n            var i = e.toLowerCase();\n            e = this.validatePosition(t);\n            let n = this._getLineTokens(e.lineNumber);\n            return t = n.getLanguageId(n.findTokenIndexAtOffset(e.column - 1)), (t = this.getLanguage配置(t).brackets) && (i = t.textIsBracket[i]) ? Ot(this._findMatchingBracketUp(i, e, null)) : null\n        }\n        matchBracket(e) {\n            return this._matchBracket(this.validatePosition(e))\n        }\n        _establishBracketSearchOffsets(e, t, i, n) {\n            var r = t.getCount(),\n                o = t.getLanguageId(n);\n            let s = Math.max(0, e.column - 1 - i.maxBracketLength);\n            for (let e = n - 1; 0 <= e; e--) {\n                var a = t.getEndOffset(e);\n                if (a <= s) break;\n                if (Object(Ce.b)(t.getStandardTokenType(e)) || t.getLanguageId(e) !== o) {\n                    s = a;\n                    break\n                }\n            }\n            let l = Math.min(t.getLineContent().length, e.column - 1 + i.maxBracketLength);\n            for (let e = n + 1; e < r; e++) {\n                var d = t.getStartOffset(e);\n                if (d >= l) break;\n                if (Object(Ce.b)(t.getStandardTokenType(e)) || t.getLanguageId(e) !== o) {\n                    l = d;\n                    break\n                }\n            }\n            return {\n                searchStartOffset: s,\n                searchEndOffset: l\n            }\n        }\n        _matchBracket(e) {\n            var t = e.lineNumber;\n            const i = this._getLineTokens(t),\n                n = this._buffer.getLineContent(t);\n            if ((d = i.findTokenIndexAtOffset(e.column - 1)) < 0) return null;\n            var r = this.getLanguage配置(i.getLanguageId(d)).brackets;\n            if (r && !Object(Ce.b)(i.getStandardTokenType(d))) {\n                let {\n                    searchStartOffset: a,\n                    searchEndOffset: l\n                } = this._establishBracketSearchOffsets(e, i, r, d), c = null;\n                for (;;) {\n                    var o = xe.a.findNextBracketInRange(r.forwardRegex, t, n, a, l);\n                    if (!o) break;\n                    if (o.startColumn <= e.column && e.column <= o.endColumn) {\n                        var s = n.substring(o.startColumn - 1, o.endColumn - 1).toLowerCase();\n                        if (s = this._matchFoundBracket(o, r.textIsBracket[s], r.textIsOpenBracket[s], null)) {\n                            if (s instanceof Lt) return null;\n                            c = s\n                        }\n                    }\n                    a = o.endColumn - 1\n                }\n                if (c) return c\n            }\n            if (0 < d && i.getStartOffset(d) === e.column - 1) {\n                var a = d - 1,\n                    l = this.getLanguage配置(i.getLanguageId(a)).brackets;\n                if (l && !Object(Ce.b)(i.getStandardTokenType(a))) {\n                    var d, {\n                        searchStartOffset: d,\n                        searchEndOffset: a\n                    } = this._establishBracketSearchOffsets(e, i, l, a);\n                    if ((d = xe.a.findPrevBracketInRange(l.reversedRegex, t, n, d, a)) && d.startColumn <= e.column && e.column <= d.endColumn && (a = n.substring(d.startColumn - 1, d.endColumn - 1).toLowerCase(), a = this._matchFoundBracket(d, l.textIsBracket[a], l.textIsOpenBracket[a], null))) return a instanceof Lt ? null : a\n                }\n            }\n            return null\n        }\n        _matchFoundBracket(e, t, i, n) {\n            return t && (n = i ? this._findMatchingBracketDown(t, e.getEndPosition(), n) : this._findMatchingBracketUp(t, e.getStartPosition(), n)) ? n instanceof Lt ? n : [e, n] : null\n        }\n        _findMatchingBracketUp(e, t, i) {\n            var n = e.languageId;\n            const r = e.reversedRegex;\n            let o = -1,\n                s = 0;\n            var a = (t, n, a, l) => {\n                for (;;) {\n                    if (i && ++s % 100 == 0 && !i()) return Lt.INSTANCE;\n                    var d = xe.a.findPrevBracketInRange(r, t, n, a, l);\n                    if (!d) break;\n                    var c = n.substring(d.startColumn - 1, d.endColumn - 1).toLowerCase();\n                    if (e.isOpen(c) ? o++ : e.isClose(c) && o--, 0 === o) return d;\n                    l = d.startColumn - 1\n                }\n                return null\n            };\n            for (let e = t.lineNumber; 1 <= e; e--) {\n                const i = this._getLineTokens(e);\n                var l = i.getCount(),\n                    d = this._buffer.getLineContent(e);\n                let r = l - 1,\n                    o = d.length,\n                    s = d.length;\n                e === t.lineNumber && (r = i.findTokenIndexAtOffset(t.column - 1), o = t.column - 1, s = t.column - 1);\n                let u = !0;\n                for (; 0 <= r; r--) {\n                    var c = i.getLanguageId(r) === n && !Object(Ce.b)(i.getStandardTokenType(r));\n                    if (c) u ? o = i.getStartOffset(r) : (o = i.getStartOffset(r), s = i.getEndOffset(r));\n                    else if (u && o !== s) {\n                        var h = a(e, d, o, s);\n                        if (h) return h\n                    }\n                    u = c\n                }\n                if (u && o !== s && (l = a(e, d, o, s))) return l\n            }\n            return null\n        }\n        _findMatchingBracketDown(e, t, i) {\n            var n = e.languageId;\n            const r = e.forwardRegex;\n            let o = 1,\n                s = 0;\n            var a = (t, n, a, l) => {\n                    for (;;) {\n                        if (i && ++s % 100 == 0 && !i()) return Lt.INSTANCE;\n                        var d = xe.a.findNextBracketInRange(r, t, n, a, l);\n                        if (!d) break;\n                        var c = n.substring(d.startColumn - 1, d.endColumn - 1).toLowerCase();\n                        if (e.isOpen(c) ? o++ : e.isClose(c) && o--, 0 === o) return d;\n                        a = d.endColumn - 1\n                    }\n                    return null\n                },\n                l = this.getLineCount();\n            for (let e = t.lineNumber; e <= l; e++) {\n                const i = this._getLineTokens(e);\n                var d = i.getCount(),\n                    c = this._buffer.getLineContent(e);\n                let r = 0,\n                    o = 0,\n                    s = 0;\n                e === t.lineNumber && (r = i.findTokenIndexAtOffset(t.column - 1), o = t.column - 1, s = t.column - 1);\n                let l = !0;\n                for (; r < d; r++) {\n                    var h = i.getLanguageId(r) === n && !Object(Ce.b)(i.getStandardTokenType(r));\n                    if (h) l || (o = i.getStartOffset(r)), s = i.getEndOffset(r);\n                    else if (l && o !== s) {\n                        var u = a(e, c, o, s);\n                        if (u) return u\n                    }\n                    l = h\n                }\n                if (l && o !== s) {\n                    var p = a(e, c, o, s);\n                    if (p) return p\n                }\n            }\n            return null\n        }\n        findPrevBracket(e) {\n            var t = this.validatePosition(e);\n            let i = null,\n                n = null;\n            for (let e = t.lineNumber; 1 <= e; e--) {\n                const d = this._getLineTokens(e);\n                var r = d.getCount(),\n                    o = this._buffer.getLineContent(e);\n                let c = r - 1,\n                    h = o.length,\n                    u = o.length;\n                e === t.lineNumber && (c = d.findTokenIndexAtOffset(t.column - 1), h = t.column - 1, u = t.column - 1, i !== (l = d.getLanguageId(c)) && (i = l, n = this.getLanguage配置(i).brackets));\n                let p = !0;\n                for (; 0 <= c; c--) {\n                    var s = d.getLanguageId(c);\n                    if (i !== s) {\n                        if (n && p && h !== u) {\n                            var a = xe.a.findPrevBracketInRange(n.reversedRegex, e, o, h, u);\n                            if (a) return this._toFoundBracket(n, a);\n                            p = !1\n                        }\n                        i = s, n = this.getLanguage配置(i).brackets\n                    }\n                    if (a = !!n && !Object(Ce.b)(d.getStandardTokenType(c))) p ? h = d.getStartOffset(c) : (h = d.getStartOffset(c), u = d.getEndOffset(c));\n                    else if (n && p && h !== u && (s = xe.a.findPrevBracketInRange(n.reversedRegex, e, o, h, u))) return this._toFoundBracket(n, s);\n                    p = a\n                }\n                if (n && p && h !== u) {\n                    var l = xe.a.findPrevBracketInRange(n.reversedRegex, e, o, h, u);\n                    if (l) return this._toFoundBracket(n, l)\n                }\n            }\n            return null\n        }\n        findNextBracket(e) {\n            var t = this.validatePosition(e),\n                i = this.getLineCount();\n            let n = null,\n                r = null;\n            for (let e = t.lineNumber; e <= i; e++) {\n                const i = this._getLineTokens(e);\n                var o = i.getCount(),\n                    s = this._buffer.getLineContent(e);\n                let c = 0,\n                    h = 0,\n                    u = 0;\n                e === t.lineNumber && (c = i.findTokenIndexAtOffset(t.column - 1), h = t.column - 1, u = t.column - 1, n !== (d = i.getLanguageId(c)) && (n = d, r = this.getLanguage配置(n).brackets));\n                let p = !0;\n                for (; c < o; c++) {\n                    var a = i.getLanguageId(c);\n                    if (n !== a) {\n                        if (r && p && h !== u) {\n                            var l = xe.a.findNextBracketInRange(r.forwardRegex, e, s, h, u);\n                            if (l) return this._toFoundBracket(r, l);\n                            p = !1\n                        }\n                        n = a, r = this.getLanguage配置(n).brackets\n                    }\n                    if (l = !!r && !Object(Ce.b)(i.getStandardTokenType(c))) p || (h = i.getStartOffset(c)), u = i.getEndOffset(c);\n                    else if (r && p && h !== u && (a = xe.a.findNextBracketInRange(r.forwardRegex, e, s, h, u))) return this._toFoundBracket(r, a);\n                    p = l\n                }\n                if (r && p && h !== u) {\n                    var d = xe.a.findNextBracketInRange(r.forwardRegex, e, s, h, u);\n                    if (d) return this._toFoundBracket(r, d)\n                }\n            }\n            return null\n        }\n        findEnclosingBrackets(e, t) {\n            let i;\n            if (void 0 === t) i = null;\n            else {\n                const e = Date.now();\n                i = () => Date.now() - e <= t\n            }\n            var n = this.validatePosition(e),\n                r = this.getLineCount();\n            const o = new Map;\n            let s = [];\n            var a = (e, t) => {\n                if (!o.has(e)) {\n                    let i = [];\n                    for (let e = 0, n = t ? t.brackets.length : 0; e < n; e++) i[e] = 0;\n                    o.set(e, i)\n                }\n                s = o.get(e)\n            };\n            let l = 0;\n            var d = (e, t, n, r, o) => {\n                for (;;) {\n                    if (i && ++l % 100 == 0 && !i()) return Lt.INSTANCE;\n                    var a = xe.a.findNextBracketInRange(e.forwardRegex, t, n, r, o);\n                    if (!a) break;\n                    var d = n.substring(a.startColumn - 1, a.endColumn - 1).toLowerCase();\n                    const c = e.textIsBracket[d];\n                    if (c && (c.isOpen(d) ? s[c.index]++ : c.isClose(d) && s[c.index]--, -1 === s[c.index])) return this._matchFoundBracket(a, c, !1, i);\n                    r = a.endColumn - 1\n                }\n                return null\n            };\n            let c = null,\n                h = null;\n            for (let e = n.lineNumber; e <= r; e++) {\n                const t = this._getLineTokens(e);\n                var u = t.getCount(),\n                    p = this._buffer.getLineContent(e);\n                let i = 0,\n                    r = 0,\n                    o = 0;\n                e === n.lineNumber && (i = t.findTokenIndexAtOffset(n.column - 1), r = n.column - 1, o = n.column - 1, c !== (m = t.getLanguageId(i)) && (c = m, h = this.getLanguage配置(c).brackets, a(c, h)));\n                let s = !0;\n                for (; i < u; i++) {\n                    var g = t.getLanguageId(i);\n                    if (c !== g) {\n                        if (h && s && r !== o) {\n                            var f = d(h, e, p, r, o);\n                            if (f) return Ot(f);\n                            s = !1\n                        }\n                        c = g, h = this.getLanguage配置(c).brackets, a(c, h)\n                    }\n                    if (f = !!h && !Object(Ce.b)(t.getStandardTokenType(i))) s || (r = t.getStartOffset(i)), o = t.getEndOffset(i);\n                    else if (h && s && r !== o && (g = d(h, e, p, r, o))) return Ot(g);\n                    s = f\n                }\n                if (h && s && r !== o) {\n                    var m = d(h, e, p, r, o);\n                    if (m) return Ot(m)\n                }\n            }\n            return null\n        }\n        _toFoundBracket(e, t) {\n            if (!t) return null;\n            let i = this.getValueInRange(t);\n            i = i.toLowerCase();\n            var n = e.textIsBracket[i];\n            return n ? {\n                range: t,\n                open: n.open,\n                close: n.close,\n                isOpen: e.textIsOpenBracket[i]\n            } : null\n        }\n        static computeIndentLevel(e, t) {\n            let i = 0,\n                n = 0;\n            for (var r = e.length; n < r;) {\n                var o = e.charCodeAt(n);\n                if (32 === o) i++;\n                else {\n                    if (9 !== o) break;\n                    i = i - i % t + t\n                }\n                n++\n            }\n            return n === r ? -1 : i\n        }\n        _computeIndentLevel(t) {\n            return e.computeIndentLevel(this._buffer.getLineContent(t + 1), this._options.tabSize)\n        }\n        getActiveIndentGuide(e, t, i) {\n            this._assertNotDisposed();\n            const n = this.getLineCount();\n            if (e < 1 || e > n) throw new Error(\"Illegal value for lineNumber\");\n            var r = this.getLanguage配置(this._languageId).foldingRules,\n                o = Boolean(r && r.offSide);\n            let s = -2,\n                a = -1,\n                l = -2,\n                d = -1;\n            var c = e => {\n                if (-1 !== s && (-2 === s || s > e - 1)) {\n                    s = -1, a = -1;\n                    for (let i = e - 2; 0 <= i; i--) {\n                        var t = this._computeIndentLevel(i);\n                        if (0 <= t) {\n                            s = i, a = t;\n                            break\n                        }\n                    }\n                }\n                if (-2 === l) {\n                    l = -1, d = -1;\n                    for (let t = e; t < n; t++) {\n                        var i = this._computeIndentLevel(t);\n                        if (0 <= i) {\n                            l = t, d = i;\n                            break\n                        }\n                    }\n                }\n            };\n            let h = -2,\n                u = -1,\n                p = -2,\n                g = -1;\n            var f = e => {\n                if (-2 === h) {\n                    h = -1, u = -1;\n                    for (let i = e - 2; 0 <= i; i--) {\n                        var t = this._computeIndentLevel(i);\n                        if (0 <= t) {\n                            h = i, u = t;\n                            break\n                        }\n                    }\n                }\n                if (-1 !== p && (-2 === p || p < e - 1)) {\n                    p = -1, g = -1;\n                    for (let t = e; t < n; t++) {\n                        var i = this._computeIndentLevel(t);\n                        if (0 <= i) {\n                            p = t, g = i;\n                            break\n                        }\n                    }\n                }\n            };\n            let m = 0,\n                v = !0,\n                b = 0,\n                _ = !0,\n                w = 0,\n                y = 0;\n            for (let r = 0; v || _; r++) {\n                var C, x = e - r,\n                    S = e + r;\n                1 < r && (x < 1 || x < t) && (v = !1), 1 < r && (S > n || i < S) && (_ = !1), 5e4 < r && (v = !1, _ = !1);\n                let s = -1;\n                v && (s = 0 <= (C = this._computeIndentLevel(x - 1)) ? (l = x - 1, d = C, Math.ceil(C / this._options.indentSize)) : (c(x), this._getIndentLevelForWhitespaceLine(o, a, d)));\n                let p = -1;\n                if (_ && (p = 0 <= (C = this._computeIndentLevel(S - 1)) ? (h = S - 1, u = C, Math.ceil(C / this._options.indentSize)) : (f(S), this._getIndentLevelForWhitespaceLine(o, u, g))), 0 !== r) {\n                    if (1 === r) {\n                        if (S <= n && 0 <= p && y + 1 === p) {\n                            v = !1, m = S, b = S, w = p;\n                            continue\n                        }\n                        if (1 <= x && 0 <= s && s - 1 === y) {\n                            _ = !1, m = x, b = x, w = s;\n                            continue\n                        }\n                        if (m = e, b = e, w = y, 0 === w) return {\n                            startLineNumber: m,\n                            endLineNumber: b,\n                            indent: w\n                        }\n                    }\n                    v && (s >= w ? m = x : v = !1), _ && (p >= w ? b = S : _ = !1)\n                } else y = s\n            }\n            return {\n                startLineNumber: m,\n                endLineNumber: b,\n                indent: w\n            }\n        }\n        getLinesBracketGuides(e, t, i, n) {\n            var r, o, a, l, d;\n            const h = [],\n                p = this._bracketPairColorizer.getBracketPairsInRangeWithMinIndentation(new c.a(e, 1, t, this.getLineMaxColumn(t)));\n            let g = void 0;\n            i && 0 < p.length && (r = e <= i.lineNumber && i.lineNumber <= t ? p.filter(e => e.range.containsPosition(i)) : this._bracketPairColorizer.getBracketPairsInRange(c.a.fromPositions(i)), g = null === (r = Object(he.i)(r, e => e.range.startLineNumber !== e.range.endLineNumber)) || void 0 === r ? void 0 : r.range);\n            const f = new he.a(p),\n                m = new Array,\n                v = new Array,\n                b = new Nt;\n            for (let i = e; i <= t; i++) {\n                let e = new Array;\n                0 < v.length && (e = e.concat(v), v.length = 0), h.push(e);\n                for (const e of f.takeWhile(e => e.openingBracketRange.startLineNumber <= i) || [])\n                    if (e.range.startLineNumber !== e.range.endLineNumber) {\n                        var _ = Math.min(this.getVisibleColumnFromPosition(e.openingBracketRange.getStartPosition()), this.getVisibleColumnFromPosition(null !== (y = null === (w = e.closingBracketRange) || void 0 === w ? void 0 : w.getStartPosition()) && void 0 !== y ? y : e.range.getEndPosition()), e.minVisibleColumnIndentation + 1);\n                        let t = !1;\n                        e.closingBracketRange && s.u(this.getLineContent(e.closingBracketRange.startLineNumber)) < e.closingBracketRange.startColumn - 1 && (t = !0);\n                        var w = e.openingBracketRange.getStartPosition(),\n                            y = null !== (y = null === (y = e.closingBracketRange) || void 0 === y ? void 0 : y.getStartPosition()) && void 0 !== y ? y : e.range.getEndPosition();\n                        void 0 === e.closingBracketRange ? m[e.nestingLevel] = null : m[e.nestingLevel] = {\n                            nestingLevel: e.nestingLevel,\n                            guideVisibleColumn: _,\n                            start: w,\n                            visibleStartColumn: this.getVisibleColumnFromPosition(w),\n                            end: y,\n                            visibleEndColumn: this.getVisibleColumnFromPosition(y),\n                            bracketPair: e,\n                            renderHorizontalEndLineAtTheBottom: t\n                        }\n                    } for (const t of m) t && (o = g && t.bracketPair.range.equalsRange(g), a = b.getInlineClassNameOfLevel(t.nestingLevel) + (n.highlightActive && o ? \" \" + b.activeClassName : \"\"), (o && n.horizontalGuides !== u.c.Disabled || n.includeInactive && n.horizontalGuides === u.c.Enabled) && (t.start.lineNumber === i && t.guideVisibleColumn < t.visibleStartColumn && e.push(new u.d(t.guideVisibleColumn, a, new u.e(!1, t.start.column))), t.end.lineNumber === i + 1 && t.guideVisibleColumn < t.visibleEndColumn && v.push(new u.d(t.guideVisibleColumn, a, new u.e(!t.renderHorizontalEndLineAtTheBottom, t.end.column)))));\n                let t = Number.MAX_SAFE_INTEGER;\n                for (let r = m.length - 1; 0 <= r; r--) {\n                    const o = m[r];\n                    o && (l = n.highlightActive && g && o.bracketPair.range.equalsRange(g), d = b.getInlineClassNameOfLevel(o.nestingLevel) + (l ? \" \" + b.activeClassName : \"\"), (l || n.includeInactive) && o.renderHorizontalEndLineAtTheBottom && o.end.lineNumber === i + 1 && v.push(new u.d(o.guideVisibleColumn, d, null)), o.end.lineNumber <= i || o.start.lineNumber >= i || o.guideVisibleColumn >= t && !l || (t = o.guideVisibleColumn, (l || n.includeInactive) && e.push(new u.d(o.guideVisibleColumn, d, null))))\n                }\n                e.sort((e, t) => e.visibleColumn - t.visibleColumn)\n            }\n            return h\n        }\n        getVisibleColumnFromPosition(e) {\n            return je.a.visibleColumnFromColumn(this.getLineContent(e.lineNumber), e.column, this._options.tabSize) + 1\n        }\n        getLinesIndentGuides(e, t) {\n            this._assertNotDisposed();\n            var i = this.getLineCount();\n            if (e < 1 || i < e) throw new Error(\"Illegal value for startLineNumber\");\n            if (t < 1 || i < t) throw new Error(\"Illegal value for endLineNumber\");\n            var n = this.getLanguage配置(this._languageId).foldingRules,\n                r = Boolean(n && n.offSide);\n            let o = new Array(t - e + 1),\n                s = -2,\n                a = -1,\n                l = -2,\n                d = -1;\n            for (let n = e; n <= t; n++) {\n                var c = n - e,\n                    h = this._computeIndentLevel(n - 1);\n                if (0 <= h) s = n - 1, a = h, o[c] = Math.ceil(h / this._options.indentSize);\n                else {\n                    if (-2 === s) {\n                        s = -1, a = -1;\n                        for (let e = n - 2; 0 <= e; e--) {\n                            var u = this._computeIndentLevel(e);\n                            if (0 <= u) {\n                                s = e, a = u;\n                                break\n                            }\n                        }\n                    }\n                    if (-1 !== l && (-2 === l || l < n - 1)) {\n                        l = -1, d = -1;\n                        for (let e = n; e < i; e++) {\n                            var p = this._computeIndentLevel(e);\n                            if (0 <= p) {\n                                l = e, d = p;\n                                break\n                            }\n                        }\n                    }\n                    o[c] = this._getIndentLevelForWhitespaceLine(r, a, d)\n                }\n            }\n            return o\n        }\n        _getIndentLevelForWhitespaceLine(e, t, i) {\n            return -1 === t || -1 === i ? 0 : t < i ? 1 + Math.floor(t / this._options.indentSize) : t === i || e ? Math.ceil(i / this._options.indentSize) : 1 + Math.floor(i / this._options.indentSize)\n        }\n        normalizePosition(e, t) {\n            return e\n        }\n        getLineIndentColumn(e) {\n            return function(e) {\n                let t = 0;\n                for (const i of e) {\n                    if (\" \" !== i && \"\\t\" !== i) break;\n                    t++\n                }\n                return t\n            }(this.getLineContent(e)) + 1\n        }\n    };\n    Et.MODEL_SYNC_LIMIT = 52428800, Et.LARGE_FILE_SIZE_THRESHOLD = 20971520, Et.LARGE_FILE_LINE_COUNT_THRESHOLD = 3e5, Et.DEFAULT_CREATION_OPTIONS = {\n        isForSimpleWidget: !1,\n        tabSize: l.d.tabSize,\n        indentSize: l.d.indentSize,\n        insertSpaces: l.d.insertSpaces,\n        detectIndentation: !1,\n        defaultEOL: 1,\n        trimAutoWhitespace: l.d.trimAutoWhitespace,\n        largeFileOptimizations: l.d.largeFileOptimizations,\n        bracketPairColorizationOptions: l.d.bracketPairColorizationOptions\n    }, Et = _t([i(4, ke.a), i(5, t.a), i(6, ye.a)], Et);\n    class Nt {\n        constructor() {\n            this.activeClassName = \"indent-active\"\n        }\n        getInlineClassNameOfLevel(e) {\n            return \"bracket-indent-guide lvl-\" + e % 30\n        }\n    }\n\n    function Dt(e) {\n        return !(!e.options.overviewRuler || !e.options.overviewRuler.color)\n    }\n\n    function It(e) {\n        return e.options.after || e.options.before\n    }\n    class Tt {\n        constructor() {\n            this._decorationsTree0 = new L, this._decorationsTree1 = new L, this._injectedTextDecorationsTree = new L\n        }\n        ensureAllNodesHaveRanges(e) {\n            this.getAll(e, 0, !1, !1)\n        }\n        _ensureNodesHaveRanges(e, t) {\n            for (const i of t) null === i.range && (i.range = e.getRangeAt(i.cachedAbsoluteStart, i.cachedAbsoluteEnd));\n            return t\n        }\n        getAllInInterval(e, t, i, n, r) {\n            var o = e.getVersionId();\n            o = this._intervalSearch(t, i, n, r, o);\n            return this._ensureNodesHaveRanges(e, o)\n        }\n        _intervalSearch(e, t, i, n, r) {\n            const o = this._decorationsTree0.intervalSearch(e, t, i, n, r);\n            var s = this._decorationsTree1.intervalSearch(e, t, i, n, r);\n            r = this._injectedTextDecorationsTree.intervalSearch(e, t, i, n, r);\n            return o.concat(s).concat(r)\n        }\n        getInjectedTextInInterval(e, t, i, n) {\n            var r = e.getVersionId();\n            r = this._injectedTextDecorationsTree.intervalSearch(t, i, n, !1, r);\n            return this._ensureNodesHaveRanges(e, r).filter(e => e.options.showIfCollapsed || !e.range.isEmpty())\n        }\n        getAllInjectedText(e, t) {\n            var i = e.getVersionId();\n            i = this._injectedTextDecorationsTree.search(t, !1, i);\n            return this._ensureNodesHaveRanges(e, i).filter(e => e.options.showIfCollapsed || !e.range.isEmpty())\n        }\n        getAll(e, t, i, n) {\n            var r = e.getVersionId();\n            r = this._search(t, i, n, r);\n            return this._ensureNodesHaveRanges(e, r)\n        }\n        _search(e, t, i, n) {\n            if (i) return this._decorationsTree1.search(e, t, n); {\n                const r = this._decorationsTree0.search(e, t, n);\n                return i = this._decorationsTree1.search(e, t, n), n = this._injectedTextDecorationsTree.search(e, t, n), r.concat(i).concat(n)\n            }\n        }\n        collectNodesFromOwner(e) {\n            const t = this._decorationsTree0.collectNodesFromOwner(e);\n            var i = this._decorationsTree1.collectNodesFromOwner(e);\n            e = this._injectedTextDecorationsTree.collectNodesFromOwner(e);\n            return t.concat(i).concat(e)\n        }\n        collectNodesPostOrder() {\n            const e = this._decorationsTree0.collectNodesPostOrder();\n            var t = this._decorationsTree1.collectNodesPostOrder(),\n                i = this._injectedTextDecorationsTree.collectNodesPostOrder();\n            return e.concat(t).concat(i)\n        }\n        insert(e) {\n            (It(e) ? this._injectedTextDecorationsTree : Dt(e) ? this._decorationsTree1 : this._decorationsTree0).insert(e)\n        }\n        delete(e) {\n            (It(e) ? this._injectedTextDecorationsTree : Dt(e) ? this._decorationsTree1 : this._decorationsTree0).delete(e)\n        }\n        getNodeRange(e, t) {\n            var i = e.getVersionId();\n            return t.cachedVersionId !== i && this._resolveNode(t, i), null === t.range && (t.range = e.getRangeAt(t.cachedAbsoluteStart, t.cachedAbsoluteEnd)), t.range\n        }\n        _resolveNode(e, t) {\n            (It(e) ? this._injectedTextDecorationsTree : Dt(e) ? this._decorationsTree1 : this._decorationsTree0).resolveNode(e, t)\n        }\n        acceptReplace(e, t, i, n) {\n            this._decorationsTree0.acceptReplace(e, t, i, n), this._decorationsTree1.acceptReplace(e, t, i, n), this._injectedTextDecorationsTree.acceptReplace(e, t, i, n)\n        }\n    }\n\n    function Mt(e) {\n        return e.replace(/[^a-z0-9\\-_]/gi, \" \")\n    }\n    class Pt {\n        constructor(e) {\n            this.color = e.color || \"\", this.darkColor = e.darkColor || \"\"\n        }\n    }\n    class At extends Pt {\n        constructor(e) {\n            super(e), this._resolvedColor = null, this.position = \"number\" == typeof e.position ? e.position : u.g.Center\n        }\n        getColor(e) {\n            return this._resolvedColor || (\"light\" !== e.type && this.darkColor ? this._resolvedColor = this._resolveColor(this.darkColor, e) : this._resolvedColor = this._resolveColor(this.color, e)), this._resolvedColor\n        }\n        invalidateCachedColor() {\n            this._resolvedColor = null\n        }\n        _resolveColor(e, t) {\n            if (\"string\" == typeof e) return e;\n            let i = e ? t.getColor(e.id) : null;\n            return i ? i.toString() : \"\"\n        }\n    }\n    class Rt extends Pt {\n        constructor(e) {\n            super(e), this.position = e.position\n        }\n        getColor(e) {\n            return this._resolvedColor || (\"light\" !== e.type && this.darkColor ? this._resolvedColor = this._resolveColor(this.darkColor, e) : this._resolvedColor = this._resolveColor(this.color, e)), this._resolvedColor\n        }\n        invalidateCachedColor() {\n            this._resolvedColor = void 0\n        }\n        _resolveColor(e, t) {\n            return \"string\" == typeof e ? Se.a.fromHex(e) : t.getColor(e.id)\n        }\n    }\n    class Ft {\n        constructor(e) {\n            this.content = e.content || \"\", this.inlineClassName = e.inlineClassName || null, this.inlineClassNameAffectsLetterSpacing = e.inlineClassNameAffectsLetterSpacing || !1\n        }\n        static from(e) {\n            return e instanceof Ft ? e : new Ft(e)\n        }\n    }\n    class jt {\n        constructor(e) {\n            this.description = e.description, this.stickiness = e.stickiness || 0, this.zIndex = e.zIndex || 0, this.className = e.className ? Mt(e.className) : null, this.hoverMessage = e.hoverMessage || null, this.glyphMarginHoverMessage = e.glyphMarginHoverMessage || null, this.isWholeLine = e.isWholeLine || !1, this.showIfCollapsed = e.showIfCollapsed || !1, this.collapseOnReplaceEdit = e.collapseOnReplaceEdit || !1, this.overviewRuler = e.overviewRuler ? new At(e.overviewRuler) : null, this.minimap = e.minimap ? new Rt(e.minimap) : null, this.glyphMarginClassName = e.glyphMarginClassName ? Mt(e.glyphMarginClassName) : null, this.linesDecorationsClassName = e.linesDecorationsClassName ? Mt(e.linesDecorationsClassName) : null, this.firstLineDecorationClassName = e.firstLineDecorationClassName ? Mt(e.firstLineDecorationClassName) : null, this.marginClassName = e.marginClassName ? Mt(e.marginClassName) : null, this.inlineClassName = e.inlineClassName ? Mt(e.inlineClassName) : null, this.inlineClassNameAffectsLetterSpacing = e.inlineClassNameAffectsLetterSpacing || !1, this.beforeContentClassName = e.beforeContentClassName ? Mt(e.beforeContentClassName) : null, this.afterContentClassName = e.afterContentClassName ? Mt(e.afterContentClassName) : null, this.after = e.after ? Ft.from(e.after) : null, this.before = e.before ? Ft.from(e.before) : null\n        }\n        static register(e) {\n            return new jt(e)\n        }\n        static createDynamic(e) {\n            return new jt(e)\n        }\n    }\n    jt.EMPTY = jt.register({\n        description: \"empty\"\n    });\n    const Bt = [jt.register({\n        description: \"tracked-range-always-grows-when-typing-at-edges\",\n        stickiness: 0\n    }), jt.register({\n        description: \"tracked-range-never-grows-when-typing-at-edges\",\n        stickiness: 1\n    }), jt.register({\n        description: \"tracked-range-grows-only-when-typing-before\",\n        stickiness: 2\n    }), jt.register({\n        description: \"tracked-range-grows-only-when-typing-after\",\n        stickiness: 3\n    })];\n\n    function Vt(e) {\n        return e instanceof jt ? e : jt.createDynamic(e)\n    }\n    class Wt extends o.a {\n        constructor(e) {\n            super(), this.handleBeforeFire = e, this._actual = this._register(new r.b), this.event = this._actual.event, this._affectedInjectedTextLines = null, this._deferredCnt = 0, this._shouldFire = !1, this._affectsMinimap = !1, this._affectsOverviewRuler = !1\n        }\n        beginDeferredEmit() {\n            this._deferredCnt++\n        }\n        endDeferredEmit() {\n            var e;\n            this._deferredCnt--, 0 === this._deferredCnt && (this._shouldFire && (this.handleBeforeFire(this._affectedInjectedTextLines), e = {\n                affectsMinimap: this._affectsMinimap,\n                affectsOverviewRuler: this._affectsOverviewRuler\n            }, this._shouldFire = !1, this._affectsMinimap = !1, this._affectsOverviewRuler = !1, this._actual.fire(e)), null !== (e = this._affectedInjectedTextLines) && void 0 !== e && e.clear(), this._affectedInjectedTextLines = null)\n        }\n        recordLineAffectedByInjectedText(e) {\n            this._affectedInjectedTextLines || (this._affectedInjectedTextLines = new Set), this._affectedInjectedTextLines.add(e)\n        }\n        checkAffectedAndFire(e) {\n            this._affectsMinimap || (this._affectsMinimap = !(!e.minimap || !e.minimap.position)), this._affectsOverviewRuler || (this._affectsOverviewRuler = !(!e.overviewRuler || !e.overviewRuler.color)), this._shouldFire = !0\n        }\n        fire() {\n            this._affectsMinimap = !0, this._affectsOverviewRuler = !0, this._shouldFire = !0\n        }\n    }\n    class zt extends o.a {\n        constructor() {\n            super(), this._fastEmitter = this._register(new r.b), this.fastEvent = this._fastEmitter.event, this._slowEmitter = this._register(new r.b), this.slowEvent = this._slowEmitter.event, this._deferredCnt = 0, this._deferredEvent = null\n        }\n        beginDeferredEmit() {\n            this._deferredCnt++\n        }\n        endDeferredEmit(e = null) {\n            this._deferredCnt--, 0 === this._deferredCnt && null !== this._deferredEvent && (this._deferredEvent.rawContentChangedEvent.resultingSelection = e, e = this._deferredEvent, this._deferredEvent = null, this._fastEmitter.fire(e), this._slowEmitter.fire(e))\n        }\n        fire(e) {\n            0 < this._deferredCnt ? this._deferredEvent ? this._deferredEvent = this._deferredEvent.merge(e) : this._deferredEvent = e : (this._fastEmitter.fire(e), this._slowEmitter.fire(e))\n        }\n    }\n}, function(e, t) {\n    e.exports = require(\"child_process\")\n}, function(e, t, i) {\n    \"use strict\";\n    i.d(t, \"a\", (function() {\n        return n\n    })), i.d(t, \"b\", (function() {\n        return r\n    })), i = i(26);\n    const n = Object(i.c)(\"modelService\");\n\n    function r(e) {\n        return !e.isTooLargeForSyncing() && !e.isForSimpleWidget\n    }\n}, function(e, t, i) {\n    \"use strict\";\n    i.d(t, \"a\", (function() {\n        return r\n    }));\n    class n {\n        constructor(e) {\n            this.element = e, this.next = n.Undefined, this.prev = n.Undefined\n        }\n    }\n    n.Undefined = new n(void 0);\n    class r {\n        constructor() {\n            this._first = n.Undefined, this._last = n.Undefined, this._size = 0\n        }\n        get size() {\n            return this._size\n        }\n        isEmpty() {\n            return this._first === n.Undefined\n        }\n        clear() {\n            let e = this._first;\n            for (; e !== n.Undefined;) {\n                var t = e.next;\n                e.prev = n.Undefined, e.next = n.Undefined, e = t\n            }\n            this._first = n.Undefined, this._last = n.Undefined, this._size = 0\n        }\n        unshift(e) {\n            return this._insert(e, !1)\n        }\n        push(e) {\n            return this._insert(e, !0)\n        }\n        _insert(e, t) {\n            const i = new n(e);\n            if (this._first === n.Undefined) this._first = i, this._last = i;\n            else if (t) {\n                const e = this._last;\n                this._last = i, i.prev = e, e.next = i\n            } else {\n                const e = this._first;\n                this._first = i, i.next = e, e.prev = i\n            }\n            this._size += 1;\n            let r = !1;\n            return () => {\n                r || (r = !0, this._remove(i))\n            }\n        }\n        shift() {\n            if (this._first !== n.Undefined) {\n                var e = this._first.element;\n                return this._remove(this._first), e\n            }\n        }\n        pop() {\n            if (this._last !== n.Undefined) {\n                var e = this._last.element;\n                return this._remove(this._last), e\n            }\n        }\n        _remove(e) {\n            if (e.prev !== n.Undefined && e.next !== n.Undefined) {\n                const t = e.prev;\n                t.next = e.next, e.next.prev = t\n            } else e.prev === n.Undefined && e.next === n.Undefined ? (this._first = n.Undefined, this._last = n.Undefined) : e.next === n.Undefined ? (this._last = this._last.prev, this._last.next = n.Undefined) : e.prev === n.Undefined && (this._first = this._first.next, this._first.prev = n.Undefined);\n            --this._size\n        }*[Symbol.iterator]() {\n            let e = this._first;\n            for (; e !== n.Undefined;) yield e.element, e = e.next\n        }\n    }\n}, function(e, t, i) {\n    \"use strict\";\n    i.d(t, \"a\", (function() {\n        return n\n    })), i.d(t, \"b\", (function() {\n        return r\n    })), t = i(65), i = i(26), t.a;\n    const n = Object(i.c)(\"notificationService\");\n    class r {}\n}, function(e, t, i) {\n    \"use strict\";\n    i.d(t, \"a\", (function() {\n        return n\n    })), i = i(26);\n    const n = Object(i.c)(\"keybindingService\")\n}, function(e, t) {\n    e.exports = require(\"lodash\")\n}, function(e, t, i) {\n    \"use strict\";\n    i.d(t, \"b\", (function() {\n        return r\n    })), i.d(t, \"a\", (function() {\n        return o\n    })), i.d(t, \"c\", (function() {\n        return s\n    })), i.d(t, \"d\", (function() {\n        return a\n    }));\n    var n = i(86);\n    const r = new class {\n            clone() {\n                return this\n            }\n            equals(e) {\n                return this === e\n            }\n        },\n        o = \"vs.editor.nullMode\";\n\n    function s(e, t, i, r) {\n        return new n.b([new n.a(r, \"\", e)], i)\n    }\n\n    function a(e, t, i, o) {\n        let s = new Uint32Array(2);\n        return s[0] = o, s[1] = (e << 0 | 16384 | 2 << 23) >>> 0, new n.c(s, null === i ? r : i)\n    }\n}, function(e, t, i) {\n    \"use strict\";\n    i.d(t, \"a\", (function() {\n        return a\n    }));\n    var n = i(1),\n        r = i(55),\n        o = i(66),\n        s = i(50);\n    class a extends i(4).a {\n        onclick(e, t) {\n            this._register(n.g(e, n.d.CLICK, e => t(new o.a(e))))\n        }\n        onmousedown(e, t) {\n            this._register(n.g(e, n.d.MOUSE_DOWN, e => t(new o.a(e))))\n        }\n        onmouseover(e, t) {\n            this._register(n.g(e, n.d.MOUSE_OVER, e => t(new o.a(e))))\n        }\n        onnonbubblingmouseout(e, t) {\n            this._register(n.h(e, e => t(new o.a(e))))\n        }\n        onkeydown(e, t) {\n            this._register(n.g(e, n.d.KEY_DOWN, e => t(new r.a(e))))\n        }\n        onkeyup(e, t) {\n            this._register(n.g(e, n.d.KEY_UP, e => t(new r.a(e))))\n        }\n        oninput(e, t) {\n            this._register(n.g(e, n.d.INPUT, t))\n        }\n        onblur(e, t) {\n            this._register(n.g(e, n.d.BLUR, t))\n        }\n        onfocus(e, t) {\n            this._register(n.g(e, n.d.FOCUS, t))\n        }\n        ignoreGesture(e) {\n            s.b.ignoreTarget(e)\n        }\n    }\n}, function(e, t, i) {\n    \"use strict\";\n    i.d(t, \"a\", (function() {\n        return r\n    }));\n    var n = i(15);\n    class r {\n        constructor(e, t, i) {\n            this._lineTokensBrand = void 0, this._tokens = e, this._tokensCount = this._tokens.length >>> 1, this._text = t, this._languageIdCodec = i\n        }\n        static createEmpty(e, t) {\n            var i = r.defaultTokenMetadata;\n            const n = new Uint32Array(2);\n            return n[0] = e.length, n[1] = i, new r(n, e, t)\n        }\n        equals(e) {\n            return e instanceof r && this.slicedEquals(e, 0, this._tokensCount)\n        }\n        slicedEquals(e, t, i) {\n            if (this._text !== e._text) return !1;\n            if (this._tokensCount !== e._tokensCount) return !1;\n            var n = (t = t << 1) + (i << 1);\n            for (let i = t; i < n; i++)\n                if (this._tokens[i] !== e._tokens[i]) return !1;\n            return !0\n        }\n        getLineContent() {\n            return this._text\n        }\n        getCount() {\n            return this._tokensCount\n        }\n        getStartOffset(e) {\n            return 0 < e ? this._tokens[e - 1 << 1] : 0\n        }\n        getMetadata(e) {\n            return this._tokens[1 + (e << 1)]\n        }\n        getLanguageId(e) {\n            return e = this._tokens[1 + (e << 1)], e = n.z.getLanguageId(e), this._languageIdCodec.decodeLanguageId(e)\n        }\n        getStandardTokenType(e) {\n            return e = this._tokens[1 + (e << 1)], n.z.getTokenType(e)\n        }\n        getForeground(e) {\n            return e = this._tokens[1 + (e << 1)], n.z.getForeground(e)\n        }\n        getClassName(e) {\n            return e = this._tokens[1 + (e << 1)], n.z.getClassNameFromMetadata(e)\n        }\n        getInlineStyle(e, t) {\n            return e = this._tokens[1 + (e << 1)], n.z.getInlineStyleFromMetadata(e, t)\n        }\n        getEndOffset(e) {\n            return this._tokens[e << 1]\n        }\n        findTokenIndexAtOffset(e) {\n            return r.findIndexInTokensArray(this._tokens, e)\n        }\n        inflate() {\n            return this\n        }\n        sliceAndInflate(e, t, i) {\n            return new o(this, e, t, i)\n        }\n        static convertToEndOffset(e, t) {\n            var i = (e.length >>> 1) - 1;\n            for (let t = 0; t < i; t++) e[t << 1] = e[t + 1 << 1];\n            e[i << 1] = t\n        }\n        static findIndexInTokensArray(e, t) {\n            if (e.length <= 2) return 0;\n            let i = 0,\n                n = (e.length >>> 1) - 1;\n            for (; i < n;) {\n                var r = i + Math.floor((n - i) / 2),\n                    o = e[r << 1];\n                if (o === t) return r + 1;\n                o < t ? i = r + 1 : t < o && (n = r)\n            }\n            return i\n        }\n        withInserted(e) {\n            if (0 === e.length) return this;\n            let t = 0,\n                i = 0,\n                n = \"\";\n            const o = new Array;\n            let s = 0;\n            for (;;) {\n                var a = t < this._tokensCount ? this._tokens[t << 1] : -1,\n                    l = i < e.length ? e[i] : null;\n                if (-1 !== a && (null === l || a <= l.offset)) {\n                    n += this._text.substring(s, a);\n                    var d = this._tokens[1 + (t << 1)];\n                    o.push(n.length, d), t++, s = a\n                } else {\n                    if (!l) break;\n                    l.offset > s && (n += this._text.substring(s, l.offset), a = this._tokens[1 + (t << 1)], o.push(n.length, a), s = l.offset), n += l.text, o.push(n.length, l.tokenMetadata), i++\n                }\n            }\n            return new r(new Uint32Array(o), n, this._languageIdCodec)\n        }\n    }\n    r.defaultTokenMetadata = 16793600;\n    class o {\n        constructor(e, t, i, n) {\n            this._source = e, this._startOffset = t, this._endOffset = i, this._deltaOffset = n, this._firstTokenIndex = e.findTokenIndexAtOffset(t), this._tokensCount = 0;\n            for (let t = this._firstTokenIndex, n = e.getCount(); t < n && !(i <= e.getStartOffset(t)); t++) this._tokensCount++\n        }\n        equals(e) {\n            return e instanceof o && this._startOffset === e._startOffset && this._endOffset === e._endOffset && this._deltaOffset === e._deltaOffset && this._source.slicedEquals(e._source, this._firstTokenIndex, this._tokensCount)\n        }\n        getCount() {\n            return this._tokensCount\n        }\n        getForeground(e) {\n            return this._source.getForeground(this._firstTokenIndex + e)\n        }\n        getEndOffset(e) {\n            return e = this._source.getEndOffset(this._firstTokenIndex + e), Math.min(this._endOffset, e) - this._startOffset + this._deltaOffset\n        }\n        getClassName(e) {\n            return this._source.getClassName(this._firstTokenIndex + e)\n        }\n        getInlineStyle(e, t) {\n            return this._source.getInlineStyle(this._firstTokenIndex + e, t)\n        }\n        findTokenIndexAtOffset(e) {\n            return this._source.findTokenIndexAtOffset(e + this._startOffset - this._deltaOffset) - this._firstTokenIndex\n        }\n    }\n}, function(e, t, i) {\n    \"use strict\";\n    i.d(t, \"a\", (function() {\n        return n\n    })), i.d(t, \"b\", (function() {\n        return r\n    })), i.d(t, \"c\", (function() {\n        return o\n    }));\n    class n {\n        constructor(e, t, i) {\n            this._tokenBrand = void 0, this.offset = 0 | e, this.type = t, this.language = i\n        }\n        toString() {\n            return \"(\" + this.offset + \", \" + this.type + \")\"\n        }\n    }\n    class r {\n        constructor(e, t) {\n            this._tokenizationResultBrand = void 0, this.tokens = e, this.endState = t\n        }\n    }\n    class o {\n        constructor(e, t) {\n            this._tokenizationResult2Brand = void 0, this.tokens = e, this.endState = t\n        }\n    }\n}, function(e, t, i) {\n    \"use strict\";\n    i.d(t, \"b\", (function() {\n        return c\n    })), i.d(t, \"a\", (function() {\n        return h\n    })), i.d(t, \"c\", (function() {\n        return f\n    }));\n    var n = i(32),\n        r = i(33),\n        o = i(2),\n        s = i(0),\n        a = i(148),\n        l = (t = i(58), i(23));\n    const d = new class {\n        constructor() {\n            this._onDidChange = new o.b, this.onDidChange = this._onDidChange.event, this.iconSchema = {\n                definitions: {\n                    icons: {\n                        type: \"object\",\n                        properties: {\n                            fontId: {\n                                type: \"string\",\n                                description: Object(s.a)(\"iconDefintion.fontId\", \"The id of the font to use. If not set, the font that is defined first is used.\")\n                            },\n                            fontCharacter: {\n                                type: \"string\",\n                                description: Object(s.a)(\"iconDefintion.fontCharacter\", \"The font character associated with the icon definition.\")\n                            }\n                        },\n                        additionalProperties: !1,\n                        defaultSnippets: [{\n                            body: {\n                                fontCharacter: \"\\\\\\\\e030\"\n                            }\n                        }]\n                    }\n                },\n                type: \"object\",\n                properties: {}\n            }, this.iconReferenceSchema = {\n                type: \"string\",\n                pattern: `^${r.a.iconNameExpression}$`,\n                enum: [],\n                enumDescriptions: []\n            }, this.iconsById = {}, this.iconFontsById = {}\n        }\n        registerIcon(e, t, i, n) {\n            const r = this.iconsById[e];\n            var o;\n            if (r) return i && !r.description && (r.description = i, this.iconSchema.properties[e].markdownDescription = `${i} $(${e})`, -1 !== (o = this.iconReferenceSchema.enum.indexOf(e)) && (this.iconReferenceSchema.enumDescriptions[o] = i), this._onDidChange.fire()), r;\n            this.iconsById[e] = {\n                id: e,\n                description: i,\n                defaults: t,\n                deprecationMessage: n\n            };\n            let s = {\n                $ref: \"#/definitions/icons\"\n            };\n            return n && (s.deprecationMessage = n), i && (s.markdownDescription = `${i}: $(${e})`), this.iconSchema.properties[e] = s, this.iconReferenceSchema.enum.push(e), this.iconReferenceSchema.enumDescriptions.push(i || \"\"), this._onDidChange.fire(), {\n                id: e\n            }\n        }\n        getIcons() {\n            return Object.keys(this.iconsById).map(e => this.iconsById[e])\n        }\n        getIcon(e) {\n            return this.iconsById[e]\n        }\n        getIconSchema() {\n            return this.iconSchema\n        }\n        getIconFont(e) {\n            return this.iconFontsById[e]\n        }\n        toString() {\n            var e = (e, t) => e.id.localeCompare(t.id),\n                t = e => {\n                    for (; l.d.isThemeIcon(e.defaults);) e = this.iconsById[e.defaults.id];\n                    return \"codicon codicon-\" + (e ? e.id : \"\")\n                };\n            let i = [];\n            i.push(\"| preview     | identifier                        | default codicon ID                | description\"), i.push(\"| ----------- | --------------------------------- | --------------------------------- | --------------------------------- |\");\n            const n = Object.keys(this.iconsById).map(e => this.iconsById[e]);\n            for (const r of n.filter(e => !!e.description).sort(e)) i.push(`|<i class=\"${t(r)}\"></i>|${r.id}|${(l.d.isThemeIcon(r.defaults)?r.defaults:r).id}|${r.description||\"\"}|`);\n            i.push(\"| preview     | identifier                        \"), i.push(\"| ----------- | --------------------------------- |\");\n            for (const r of n.filter(e => !l.d.isThemeIcon(e.defaults)).sort(e)) i.push(`|<i class=\"${t(r)}\"></i>|${r.id}|`);\n            return i.join(\"\\n\")\n        }\n    };\n\n    function c(e, t, i, n) {\n        return d.registerIcon(e, t, i, n)\n    }\n\n    function h() {\n        return d\n    }\n    t.a.add(\"base.contributions.icons\", d),\n        function() {\n            for (const e of r.d.all) d.registerIcon(e.id, e.definition, e.description);\n            r.d.onDidRegister(e => d.registerIcon(e.id, e.definition, e.description))\n        }();\n    const u = \"vscode://schemas/icons\";\n    let p = t.a.as(a.a.JSONContribution);\n    p.registerSchema(u, d.getIconSchema());\n    const g = new n.e(() => p.notifySchemaChanged(u), 200);\n    d.onDidChange(() => {\n        g.isScheduled() || g.schedule()\n    });\n    const f = c(\"widget-close\", r.b.close, Object(s.a)(\"widgetClose\", \"Icon for the close action in widgets.\"))\n}, function(e, t, i) {\n    \"use strict\";\n    /*!\n     * Vue.js v2.6.14\n     * (c) 2014-2021 Evan You\n     * Released under the MIT License.\n     */\n    var n = Object.freeze({});\n\n    function r(e) {\n        return null == e\n    }\n\n    function o(e) {\n        return null != e\n    }\n\n    function s(e) {\n        return \"string\" == typeof e || \"number\" == typeof e || \"symbol\" == typeof e || \"boolean\" == typeof e\n    }\n\n    function a(e) {\n        return null !== e && \"object\" == typeof e\n    }\n    var l = Object.prototype.toString;\n\n    function d(e) {\n        return \"[object Object]\" === l.call(e)\n    }\n\n    function c(e) {\n        var t = parseFloat(String(e));\n        return 0 <= t && Math.floor(t) === t && isFinite(e)\n    }\n\n    function h(e) {\n        return o(e) && \"function\" == typeof e.then && \"function\" == typeof e.catch\n    }\n\n    function u(e) {\n        return null == e ? \"\" : Array.isArray(e) || d(e) && e.toString === l ? JSON.stringify(e, null, 2) : String(e)\n    }\n\n    function p(e) {\n        var t = parseFloat(e);\n        return isNaN(t) ? e : t\n    }\n\n    function g(e, t) {\n        for (var i = Object.create(null), n = e.split(\",\"), r = 0; r < n.length; r++) i[n[r]] = !0;\n        return t ? function(e) {\n            return i[e.toLowerCase()]\n        } : function(e) {\n            return i[e]\n        }\n    }\n    var f = g(\"slot,component\", !0),\n        m = g(\"key,ref,slot,slot-scope,is\");\n\n    function v(e, t) {\n        if (e.length && -1 < (t = e.indexOf(t))) return e.splice(t, 1)\n    }\n    var b = Object.prototype.hasOwnProperty;\n\n    function _(e, t) {\n        return b.call(e, t)\n    }\n\n    function w(e) {\n        var t = Object.create(null);\n        return function(i) {\n            return t[i] || (t[i] = e(i))\n        }\n    }\n    var y = /-(\\w)/g,\n        C = w((function(e) {\n            return e.replace(y, (function(e, t) {\n                return t ? t.toUpperCase() : \"\"\n            }))\n        })),\n        x = w((function(e) {\n            return e.charAt(0).toUpperCase() + e.slice(1)\n        })),\n        S = /\\B([A-Z])/g,\n        k = w((function(e) {\n            return e.replace(S, \"-$1\").toLowerCase()\n        })),\n        L = Function.prototype.bind ? function(e, t) {\n            return e.bind(t)\n        } : function(e, t) {\n            function i(i) {\n                var n = arguments.length;\n                return n ? 1 < n ? e.apply(t, arguments) : e.call(t, i) : e.call(t)\n            }\n            return i._length = e.length, i\n        };\n\n    function O(e, t) {\n        for (var i = e.length - (t = t || 0), n = new Array(i); i--;) n[i] = e[i + t];\n        return n\n    }\n\n    function E(e, t) {\n        for (var i in t) e[i] = t[i];\n        return e\n    }\n\n    function N(e) {\n        for (var t = {}, i = 0; i < e.length; i++) e[i] && E(t, e[i]);\n        return t\n    }\n\n    function D(e, t, i) {}\n    var I = function(e, t, i) {\n            return !1\n        },\n        T = function(e) {\n            return e\n        };\n\n    function M(e, t) {\n        if (e === t) return !0;\n        var i = a(e),\n            n = a(t);\n        if (!i || !n) return !i && !n && String(e) === String(t);\n        try {\n            var r = Array.isArray(e),\n                o = Array.isArray(t);\n            if (r && o) return e.length === t.length && e.every((function(e, i) {\n                return M(e, t[i])\n            }));\n            if (e instanceof Date && t instanceof Date) return e.getTime() === t.getTime();\n            if (r || o) return !1;\n            var s = Object.keys(e),\n                l = Object.keys(t);\n            return s.length === l.length && s.every((function(i) {\n                return M(e[i], t[i])\n            }))\n        } catch (i) {\n            return !1\n        }\n    }\n\n    function P(e, t) {\n        for (var i = 0; i < e.length; i++)\n            if (M(e[i], t)) return i;\n        return -1\n    }\n\n    function A(e) {\n        var t = !1;\n        return function() {\n            t || (t = !0, e.apply(this, arguments))\n        }\n    }\n    var R = \"data-server-rendered\",\n        F = [\"component\", \"directive\", \"filter\"],\n        j = [\"beforeCreate\", \"created\", \"beforeMount\", \"mounted\", \"beforeUpdate\", \"updated\", \"beforeDestroy\", \"destroyed\", \"activated\", \"deactivated\", \"errorCaptured\", \"serverPrefetch\"],\n        B = {\n            optionMergeStrategies: Object.create(null),\n            silent: !1,\n            productionTip: !1,\n            devtools: !1,\n            performance: !1,\n            errorHandler: null,\n            warnHandler: null,\n            ignoredElements: [],\n            keyCodes: Object.create(null),\n            isReservedTag: I,\n            isReservedAttr: I,\n            isUnknownElement: I,\n            getTagNamespace: D,\n            parsePlatformTagName: T,\n            mustUseProp: I,\n            async: !0,\n            _lifecycleHooks: j\n        },\n        V = /a-zA-Z\\u00B7\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u203F-\\u2040\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD/;\n\n    function W(e, t, i, n) {\n        Object.defineProperty(e, t, {\n            value: i,\n            enumerable: !!n,\n            writable: !0,\n            configurable: !0\n        })\n    }\n    var z, H = new RegExp(\"[^\" + V.source + \".$_\\\\d]\"),\n        U = \"__proto__\" in {},\n        K = \"undefined\" != typeof window,\n        $ = \"undefined\" != typeof WXEnvironment && !!WXEnvironment.platform,\n        q = $ && WXEnvironment.platform.toLowerCase(),\n        G = (Mi = K && window.navigator.userAgent.toLowerCase()) && /msie|trident/.test(Mi),\n        Y = Mi && 0 < Mi.indexOf(\"msie 9.0\"),\n        Z = Mi && 0 < Mi.indexOf(\"edge/\"),\n        X = (Mi && Mi.indexOf(\"android\"), Mi && /iphone|ipad|ipod|ios/.test(Mi) || \"ios\" === q),\n        Q = (Mi && /chrome\\/\\d+/.test(Mi), Mi && /phantomjs/.test(Mi), Mi && Mi.match(/firefox\\/(\\d+)/)),\n        J = {}.watch,\n        ee = !1;\n    if (K) try {\n        var te = {};\n        Object.defineProperty(te, \"passive\", {\n            get: function() {\n                ee = !0\n            }\n        }), window.addEventListener(\"test-passive\", null, te)\n    } catch (e) {}\n    var ie = function() {\n            return z = void 0 === z ? !K && !$ && \"undefined\" != typeof global && global.process && \"server\" === global.process.env.VUE_ENV : z\n        },\n        ne = K && window.__VUE_DEVTOOLS_GLOBAL_HOOK__;\n\n    function re(e) {\n        return \"function\" == typeof e && /native code/.test(e.toString())\n    }\n    var oe = \"undefined\" != typeof Symbol && re(Symbol) && \"undefined\" != typeof Reflect && re(Reflect.ownKeys),\n        se = \"undefined\" != typeof Set && re(Set) ? Set : function() {\n            function e() {\n                this.set = Object.create(null)\n            }\n            return e.prototype.has = function(e) {\n                return !0 === this.set[e]\n            }, e.prototype.add = function(e) {\n                this.set[e] = !0\n            }, e.prototype.clear = function() {\n                this.set = Object.create(null)\n            }, e\n        }(),\n        ae = D,\n        le = 0,\n        de = function() {\n            this.id = le++, this.subs = []\n        };\n    de.prototype.addSub = function(e) {\n        this.subs.push(e)\n    }, de.prototype.removeSub = function(e) {\n        v(this.subs, e)\n    }, de.prototype.depend = function() {\n        de.target && de.target.addDep(this)\n    }, de.prototype.notify = function() {\n        for (var e = this.subs.slice(), t = 0, i = e.length; t < i; t++) e[t].update()\n    }, de.target = null;\n    var ce = [];\n\n    function he(e) {\n        ce.push(e), de.target = e\n    }\n\n    function ue() {\n        ce.pop(), de.target = ce[ce.length - 1]\n    }\n    var pe = function(e, t, i, n, r, o, s, a) {\n        this.tag = e, this.data = t, this.children = i, this.text = n, this.elm = r, this.ns = void 0, this.context = o, this.fnContext = void 0, this.fnOptions = void 0, this.fnScopeId = void 0, this.key = t && t.key, this.componentOptions = s, this.componentInstance = void 0, this.parent = void 0, this.raw = !1, this.isStatic = !1, this.isRootInsert = !0, this.isComment = !1, this.isCloned = !1, this.isOnce = !1, this.asyncFactory = a, this.asyncMeta = void 0, this.isAsyncPlaceholder = !1\n    };\n    (bn = {\n        child: {\n            configurable: !0\n        }\n    }).child.get = function() {\n        return this.componentInstance\n    }, Object.defineProperties(pe.prototype, bn);\n    var ge = function(e) {\n        void 0 === e && (e = \"\");\n        var t = new pe;\n        return t.text = e, t.isComment = !0, t\n    };\n\n    function fe(e) {\n        return new pe(void 0, void 0, void 0, String(e))\n    }\n\n    function me(e) {\n        var t = new pe(e.tag, e.data, e.children && e.children.slice(), e.text, e.elm, e.context, e.componentOptions, e.asyncFactory);\n        return t.ns = e.ns, t.isStatic = e.isStatic, t.key = e.key, t.isComment = e.isComment, t.fnContext = e.fnContext, t.fnOptions = e.fnOptions, t.fnScopeId = e.fnScopeId, t.asyncMeta = e.asyncMeta, t.isCloned = !0, t\n    }\n    var ve = Array.prototype,\n        be = Object.create(ve);\n    [\"push\", \"pop\", \"shift\", \"unshift\", \"splice\", \"sort\", \"reverse\"].forEach((function(e) {\n        var t = ve[e];\n        W(be, e, (function() {\n            for (var i = [], n = arguments.length; n--;) i[n] = arguments[n];\n            var r, o = t.apply(this, i),\n                s = this.__ob__;\n            switch (e) {\n                case \"push\":\n                case \"unshift\":\n                    r = i;\n                    break;\n                case \"splice\":\n                    r = i.slice(2)\n            }\n            return r && s.observeArray(r), s.dep.notify(), o\n        }))\n    }));\n    var _e = Object.getOwnPropertyNames(be),\n        we = !0;\n\n    function ye(e) {\n        we = e\n    }\n    var Ce = function(e) {\n        this.value = e, this.dep = new de, this.vmCount = 0, W(e, \"__ob__\", this), Array.isArray(e) ? (U ? e.__proto__ = be : function(e, t, i) {\n            for (var n = 0, r = i.length; n < r; n++) {\n                var o = i[n];\n                W(e, o, t[o])\n            }\n        }(e, be, _e), this.observeArray(e)) : this.walk(e)\n    };\n\n    function xe(e, t) {\n        var i;\n        if (a(e) && !(e instanceof pe)) return _(e, \"__ob__\") && e.__ob__ instanceof Ce ? i = e.__ob__ : we && !ie() && (Array.isArray(e) || d(e)) && Object.isExtensible(e) && !e._isVue && (i = new Ce(e)), t && i && i.vmCount++, i\n    }\n\n    function Se(e, t, i, n, r) {\n        var o, s, a, l = new de,\n            d = Object.getOwnPropertyDescriptor(e, t);\n        d && !1 === d.configurable || (o = d && d.get, s = d && d.set, o && !s || 2 !== arguments.length || (i = e[t]), a = !r && xe(i), Object.defineProperty(e, t, {\n            enumerable: !0,\n            configurable: !0,\n            get: function() {\n                var t = o ? o.call(e) : i;\n                return de.target && (l.depend(), a && (a.dep.depend(), Array.isArray(t) && function e(t) {\n                    for (var i = void 0, n = 0, r = t.length; n < r; n++)(i = t[n]) && i.__ob__ && i.__ob__.dep.depend(), Array.isArray(i) && e(i)\n                }(t))), t\n            },\n            set: function(t) {\n                var n = o ? o.call(e) : i;\n                t === n || t != t && n != n || o && !s || (s ? s.call(e, t) : i = t, a = !r && xe(t), l.notify())\n            }\n        }))\n    }\n\n    function ke(e, t, i) {\n        if (Array.isArray(e) && c(t)) return e.length = Math.max(e.length, t), e.splice(t, 1, i), i;\n        if (t in e && !(t in Object.prototype)) return e[t] = i;\n        var n = e.__ob__;\n        return e._isVue || n && n.vmCount ? i : n ? (Se(n.value, t, i), n.dep.notify(), i) : e[t] = i\n    }\n\n    function Le(e, t) {\n        var i;\n        Array.isArray(e) && c(t) ? e.splice(t, 1) : (i = e.__ob__, e._isVue || i && i.vmCount || _(e, t) && (delete e[t], i && i.dep.notify()))\n    }\n    Ce.prototype.walk = function(e) {\n        for (var t = Object.keys(e), i = 0; i < t.length; i++) Se(e, t[i])\n    }, Ce.prototype.observeArray = function(e) {\n        for (var t = 0, i = e.length; t < i; t++) xe(e[t])\n    };\n    var Oe = B.optionMergeStrategies;\n\n    function Ee(e, t) {\n        if (!t) return e;\n        for (var i, n, r, o = oe ? Reflect.ownKeys(t) : Object.keys(t), s = 0; s < o.length; s++) \"__ob__\" !== (i = o[s]) && (n = e[i], r = t[i], _(e, i) ? n !== r && d(n) && d(r) && Ee(n, r) : ke(e, i, r));\n        return e\n    }\n\n    function Ne(e, t, i) {\n        return i ? function() {\n            var n = \"function\" == typeof t ? t.call(i, i) : t,\n                r = \"function\" == typeof e ? e.call(i, i) : e;\n            return n ? Ee(n, r) : r\n        } : t ? e ? function() {\n            return Ee(\"function\" == typeof t ? t.call(this, this) : t, \"function\" == typeof e ? e.call(this, this) : e)\n        } : t : e\n    }\n\n    function De(e, t) {\n        return (e = t ? e ? e.concat(t) : Array.isArray(t) ? t : [t] : e) && function(e) {\n            for (var t = [], i = 0; i < e.length; i++) - 1 === t.indexOf(e[i]) && t.push(e[i]);\n            return t\n        }(e)\n    }\n\n    function Ie(e, t, i, n) {\n        return e = Object.create(e || null), t ? E(e, t) : e\n    }\n    Oe.data = function(e, t, i) {\n        return i ? Ne(e, t, i) : t && \"function\" != typeof t ? e : Ne(e, t)\n    }, j.forEach((function(e) {\n        Oe[e] = De\n    })), F.forEach((function(e) {\n        Oe[e + \"s\"] = Ie\n    })), Oe.watch = function(e, t, i, n) {\n        if (e === J && (e = void 0), !(t = t === J ? void 0 : t)) return Object.create(e || null);\n        if (!e) return t;\n        var r, o = {};\n        for (r in E(o, e), t) {\n            var s = o[r],\n                a = t[r];\n            s && !Array.isArray(s) && (s = [s]), o[r] = s ? s.concat(a) : Array.isArray(a) ? a : [a]\n        }\n        return o\n    }, Oe.props = Oe.methods = Oe.inject = Oe.computed = function(e, t, i, n) {\n        if (!e) return t;\n        var r = Object.create(null);\n        return E(r, e), t && E(r, t), r\n    }, Oe.provide = Ne;\n    var Te = function(e, t) {\n        return void 0 === t ? e : t\n    };\n\n    function Me(e, t, i) {\n        if (function(e) {\n                var t = e.props;\n                if (t) {\n                    var i, n, r = {};\n                    if (Array.isArray(t))\n                        for (i = t.length; i--;) \"string\" == typeof(n = t[i]) && (r[C(n)] = {\n                            type: null\n                        });\n                    else if (d(t))\n                        for (var o in t) n = t[o], r[C(o)] = d(n) ? n : {\n                            type: n\n                        };\n                    e.props = r\n                }\n            }(t = \"function\" == typeof t ? t.options : t), function(e) {\n                var t = e.inject;\n                if (t) {\n                    var i = e.inject = {};\n                    if (Array.isArray(t))\n                        for (var n = 0; n < t.length; n++) i[t[n]] = {\n                            from: t[n]\n                        };\n                    else if (d(t))\n                        for (var r in t) {\n                            var o = t[r];\n                            i[r] = d(o) ? E({\n                                from: r\n                            }, o) : {\n                                from: o\n                            }\n                        }\n                }\n            }(t), function(e) {\n                var t = e.directives;\n                if (t)\n                    for (var i in t) {\n                        var n = t[i];\n                        \"function\" == typeof n && (t[i] = {\n                            bind: n,\n                            update: n\n                        })\n                    }\n            }(t), !t._base && (t.extends && (e = Me(e, t.extends, i)), t.mixins))\n            for (var n = 0, r = t.mixins.length; n < r; n++) e = Me(e, t.mixins[n], i);\n        var o, s = {};\n        for (o in e) a(o);\n        for (o in t) _(e, o) || a(o);\n\n        function a(n) {\n            var r = Oe[n] || Te;\n            s[n] = r(e[n], t[n], i, n)\n        }\n        return s\n    }\n\n    function Pe(e, t, i) {\n        if (\"string\" == typeof i) {\n            var n = e[t];\n            return _(n, i) ? n[i] : _(n, e = C(i)) ? n[e] : _(n, t = x(e)) ? n[t] : n[i] || n[e] || n[t]\n        }\n    }\n\n    function Ae(e, t, i, n) {\n        var r = t[e],\n            o = !_(i, e);\n        t = i[e];\n        return -1 < (i = Be(Boolean, r.type)) && (o && !_(r, \"default\") ? t = !1 : \"\" !== t && t !== k(e) || ((o = Be(String, r.type)) < 0 || i < o) && (t = !0)), void 0 === t && (t = function(e, t, i) {\n            if (_(t, \"default\")) {\n                var n = t.default;\n                return e && e.$options.propsData && void 0 === e.$options.propsData[i] && void 0 !== e._props[i] ? e._props[i] : \"function\" == typeof n && \"Function\" !== Fe(t.type) ? n.call(e) : n\n            }\n        }(n, r, e), e = we, ye(!0), xe(t), ye(e)), t\n    }\n    var Re = /^\\s*function (\\w+)/;\n\n    function Fe(e) {\n        return (e = e && e.toString().match(Re)) ? e[1] : \"\"\n    }\n\n    function je(e, t) {\n        return Fe(e) === Fe(t)\n    }\n\n    function Be(e, t) {\n        if (!Array.isArray(t)) return je(t, e) ? 0 : -1;\n        for (var i = 0, n = t.length; i < n; i++)\n            if (je(t[i], e)) return i;\n        return -1\n    }\n\n    function Ve(e, t, i) {\n        he();\n        try {\n            if (t)\n                for (var n = t; n = n.$parent;) {\n                    var r = n.$options.errorCaptured;\n                    if (r)\n                        for (var o = 0; o < r.length; o++) try {\n                            if (!1 === r[o].call(n, e, t, i)) return\n                        } catch (e) {\n                            ze(e, n, \"errorCaptured hook\")\n                        }\n                }\n            ze(e, t, i)\n        } finally {\n            ue()\n        }\n    }\n\n    function We(e, t, i, n, r) {\n        var o;\n        try {\n            (o = i ? e.apply(t, i) : e.call(t)) && !o._isVue && h(o) && !o._handled && (o.catch((function(e) {\n                return Ve(e, n, r + \" (Promise/async)\")\n            })), o._handled = !0)\n        } catch (e) {\n            Ve(e, n, r)\n        }\n        return o\n    }\n\n    function ze(e, t, i) {\n        if (B.errorHandler) try {\n            return B.errorHandler.call(null, e, t, i)\n        } catch (t) {\n            t !== e && He(t)\n        }\n        He(e)\n    }\n\n    function He(e) {\n        if (!K && !$ || \"undefined\" == typeof console) throw e;\n        console.error(e)\n    }\n    var Ue, Ke, $e, qe, Ge = !1,\n        Ye = [],\n        Ze = !1;\n\n    function Xe() {\n        Ze = !1;\n        for (var e = Ye.slice(0), t = Ye.length = 0; t < e.length; t++) e[t]()\n    }\n\n    function Qe(e, t) {\n        var i;\n        if (Ye.push((function() {\n                if (e) try {\n                    e.call(t)\n                } catch (e) {\n                    Ve(e, t, \"nextTick\")\n                } else i && i(t)\n            })), Ze || (Ze = !0, Ke()), !e && \"undefined\" != typeof Promise) return new Promise((function(e) {\n            i = e\n        }))\n    }\n    \"undefined\" != typeof Promise && re(Promise) ? (Ue = Promise.resolve(), Ke = function() {\n        Ue.then(Xe), X && setTimeout(D)\n    }, Ge = !0) : G || \"undefined\" == typeof MutationObserver || !re(MutationObserver) && \"[object MutationObserverConstructor]\" !== MutationObserver.toString() ? Ke = \"undefined\" != typeof setImmediate && re(setImmediate) ? function() {\n        setImmediate(Xe)\n    } : function() {\n        setTimeout(Xe, 0)\n    } : ($e = 1, an = new MutationObserver(Xe), qe = document.createTextNode(String($e)), an.observe(qe, {\n        characterData: !0\n    }), Ke = function() {\n        $e = ($e + 1) % 2, qe.data = String($e)\n    }, Ge = !0);\n    var Je = new se;\n\n    function et(e) {\n        ! function e(t, i) {\n            var n, r, o = Array.isArray(t);\n            if (!(!o && !a(t) || Object.isFrozen(t) || t instanceof pe)) {\n                if (t.__ob__) {\n                    var s = t.__ob__.dep.id;\n                    if (i.has(s)) return;\n                    i.add(s)\n                }\n                if (o)\n                    for (n = t.length; n--;) e(t[n], i);\n                else\n                    for (n = (r = Object.keys(t)).length; n--;) e(t[r[n]], i)\n            }\n        }(e, Je), Je.clear()\n    }\n    var tt = w((function(e) {\n        var t = \"&\" === e.charAt(0),\n            i = \"~\" === (e = t ? e.slice(1) : e).charAt(0),\n            n = \"!\" === (e = i ? e.slice(1) : e).charAt(0);\n        return {\n            name: e = n ? e.slice(1) : e,\n            once: i,\n            capture: n,\n            passive: t\n        }\n    }));\n\n    function it(e, t) {\n        function i() {\n            var e = arguments,\n                n = i.fns;\n            if (!Array.isArray(n)) return We(n, null, arguments, t, \"v-on handler\");\n            for (var r = n.slice(), o = 0; o < r.length; o++) We(r[o], null, e, t, \"v-on handler\")\n        }\n        return i.fns = e, i\n    }\n\n    function nt(e, t, i, n, o, s) {\n        var a, l, d, c;\n        for (a in e) l = e[a], d = t[a], c = tt(a), r(l) || (r(d) ? (r(l.fns) && (l = e[a] = it(l, s)), !0 === c.once && (l = e[a] = o(c.name, l, c.capture)), i(c.name, l, c.capture, c.passive, c.params)) : l !== d && (d.fns = l, e[a] = d));\n        for (a in t) r(e[a]) && n((c = tt(a)).name, t[a], c.capture)\n    }\n\n    function rt(e, t, i) {\n        var n, s = (e = e instanceof pe ? e.data.hook || (e.data.hook = {}) : e)[t];\n\n        function a() {\n            i.apply(this, arguments), v(n.fns, a)\n        }\n        r(s) ? n = it([a]) : o(s.fns) && !0 === s.merged ? (n = s).fns.push(a) : n = it([s, a]), n.merged = !0, e[t] = n\n    }\n\n    function ot(e, t, i, n, r) {\n        if (o(t)) {\n            if (_(t, i)) return e[i] = t[i], r || delete t[i], 1;\n            if (_(t, n)) return e[i] = t[n], r || delete t[n], 1\n        }\n    }\n\n    function st(e) {\n        return s(e) ? [fe(e)] : Array.isArray(e) ? function e(t, i) {\n            var n, a, l, d, c = [];\n            for (n = 0; n < t.length; n++) r(a = t[n]) || \"boolean\" == typeof a || (d = c[l = c.length - 1], Array.isArray(a) ? 0 < a.length && (at((a = e(a, (i || \"\") + \"_\" + n))[0]) && at(d) && (c[l] = fe(d.text + a[0].text), a.shift()), c.push.apply(c, a)) : s(a) ? at(d) ? c[l] = fe(d.text + a) : \"\" !== a && c.push(fe(a)) : at(a) && at(d) ? c[l] = fe(d.text + a.text) : (!0 === t._isVList && o(a.tag) && r(a.key) && o(i) && (a.key = \"__vlist\" + i + \"_\" + n + \"__\"), c.push(a)));\n            return c\n        }(e) : void 0\n    }\n\n    function at(e) {\n        return o(e) && o(e.text) && !1 === e.isComment\n    }\n\n    function lt(e, t) {\n        if (e) {\n            for (var i = Object.create(null), n = oe ? Reflect.ownKeys(e) : Object.keys(e), r = 0; r < n.length; r++) {\n                var o = n[r];\n                if (\"__ob__\" !== o) {\n                    for (var s, a = e[o].from, l = t; l;) {\n                        if (l._provided && _(l._provided, a)) {\n                            i[o] = l._provided[a];\n                            break\n                        }\n                        l = l.$parent\n                    }\n                    l || \"default\" in e[o] && (s = e[o].default, i[o] = \"function\" == typeof s ? s.call(t) : s)\n                }\n            }\n            return i\n        }\n    }\n\n    function dt(e, t) {\n        if (!e || !e.length) return {};\n        for (var i, n = {}, r = 0, o = e.length; r < o; r++) {\n            var s = e[r],\n                a = s.data;\n            a && a.attrs && a.attrs.slot && delete a.attrs.slot, s.context !== t && s.fnContext !== t || !a || null == a.slot ? (n.default || (n.default = [])).push(s) : (a = n[a = a.slot] || (n[a] = []), \"template\" === s.tag ? a.push.apply(a, s.children || []) : a.push(s))\n        }\n        for (i in n) n[i].every(ct) && delete n[i];\n        return n\n    }\n\n    function ct(e) {\n        return e.isComment && !e.asyncFactory || \" \" === e.text\n    }\n\n    function ht(e) {\n        return e.isComment && e.asyncFactory\n    }\n\n    function ut(e, t, i) {\n        var r, o, s = 0 < Object.keys(t).length,\n            a = e ? !!e.$stable : !s,\n            l = e && e.$key;\n        if (e) {\n            if (e._normalized) return e._normalized;\n            if (a && i && i !== n && l === i.$key && !s && !i.$hasNormal) return i;\n            for (var d in r = {}, e) e[d] && \"$\" !== d[0] && (r[d] = function(e, t, i) {\n                function n() {\n                    var e = arguments.length ? i.apply(null, arguments) : i({}),\n                        t = (e = e && \"object\" == typeof e && !Array.isArray(e) ? [e] : st(e)) && e[0];\n                    return e && (!t || 1 === e.length && t.isComment && !ht(t)) ? void 0 : e\n                }\n                return i.proxy && Object.defineProperty(e, t, {\n                    get: n,\n                    enumerable: !0,\n                    configurable: !0\n                }), n\n            }(t, d, e[d]))\n        } else r = {};\n        for (o in t) o in r || (r[o] = function(e, t) {\n            return function() {\n                return e[t]\n            }\n        }(t, o));\n        return e && Object.isExtensible(e) && (e._normalized = r), W(r, \"$stable\", a), W(r, \"$key\", l), W(r, \"$hasNormal\", s), r\n    }\n\n    function pt(e, t) {\n        var i, n, r, s;\n        if (Array.isArray(e) || \"string\" == typeof e)\n            for (l = new Array(e.length), i = 0, n = e.length; i < n; i++) l[i] = t(e[i], i);\n        else if (\"number\" == typeof e)\n            for (l = new Array(e), i = 0; i < e; i++) l[i] = t(i + 1, i);\n        else if (a(e))\n            if (oe && e[Symbol.iterator])\n                for (var l = [], d = e[Symbol.iterator](), c = d.next(); !c.done;) l.push(t(c.value, l.length)), c = d.next();\n            else\n                for (r = Object.keys(e), l = new Array(r.length), i = 0, n = r.length; i < n; i++) s = r[i], l[i] = t(e[s], s, i);\n        return (l = o(l) ? l : [])._isVList = !0, l\n    }\n\n    function gt(e, t, i, n) {\n        var r = this.$scopedSlots[e];\n        t = r ? (i = i || {}, r(i = n ? E(E({}, n), i) : i) || (\"function\" == typeof t ? t() : t)) : this.$slots[e] || (\"function\" == typeof t ? t() : t);\n        return (i = i && i.slot) ? this.$createElement(\"template\", {\n            slot: i\n        }, t) : t\n    }\n\n    function ft(e) {\n        return Pe(this.$options, \"filters\", e) || T\n    }\n\n    function mt(e, t) {\n        return Array.isArray(e) ? -1 === e.indexOf(t) : e !== t\n    }\n\n    function vt(e, t, i, n, r) {\n        return i = B.keyCodes[t] || i, r && n && !B.keyCodes[t] ? mt(r, n) : i ? mt(i, e) : n ? k(n) !== t : void 0 === e\n    }\n\n    function bt(e, t, i, n, r) {\n        var o, s;\n        if (i && a(i))\n            for (s in i = Array.isArray(i) ? N(i) : i) ! function(s) {\n                o = \"class\" === s || \"style\" === s || m(s) ? e : (l = e.attrs && e.attrs.type, n || B.mustUseProp(t, l, s) ? e.domProps || (e.domProps = {}) : e.attrs || (e.attrs = {}));\n                var a = C(s),\n                    l = k(s);\n                a in o || l in o || (o[s] = i[s], r && ((e.on || (e.on = {}))[\"update:\" + s] = function(e) {\n                    i[s] = e\n                }))\n            }(s);\n        return e\n    }\n\n    function _t(e, t) {\n        var i = this._staticTrees || (this._staticTrees = []),\n            n = i[e];\n        return n && !t || yt(n = i[e] = this.$options.staticRenderFns[e].call(this._renderProxy, null, this), \"__static__\" + e, !1), n\n    }\n\n    function wt(e, t, i) {\n        return yt(e, \"__once__\" + t + (i ? \"_\" + i : \"\"), !0), e\n    }\n\n    function yt(e, t, i) {\n        if (Array.isArray(e))\n            for (var n = 0; n < e.length; n++) e[n] && \"string\" != typeof e[n] && Ct(e[n], t + \"_\" + n, i);\n        else Ct(e, t, i)\n    }\n\n    function Ct(e, t, i) {\n        e.isStatic = !0, e.key = t, e.isOnce = i\n    }\n\n    function xt(e, t) {\n        if (t && d(t)) {\n            var i, n = e.on = e.on ? E({}, e.on) : {};\n            for (i in t) {\n                var r = n[i],\n                    o = t[i];\n                n[i] = r ? [].concat(r, o) : o\n            }\n        }\n        return e\n    }\n\n    function St(e, t, i, n) {\n        t = t || {\n            $stable: !i\n        };\n        for (var r = 0; r < e.length; r++) {\n            var o = e[r];\n            Array.isArray(o) ? St(o, t, i) : o && (o.proxy && (o.fn.proxy = !0), t[o.key] = o.fn)\n        }\n        return n && (t.$key = n), t\n    }\n\n    function kt(e, t) {\n        for (var i = 0; i < t.length; i += 2) {\n            var n = t[i];\n            \"string\" == typeof n && n && (e[t[i]] = t[i + 1])\n        }\n        return e\n    }\n\n    function Lt(e, t) {\n        return \"string\" == typeof e ? t + e : e\n    }\n\n    function Ot(e) {\n        e._o = wt, e._n = p, e._s = u, e._l = pt, e._t = gt, e._q = M, e._i = P, e._m = _t, e._f = ft, e._k = vt, e._b = bt, e._v = fe, e._e = ge, e._u = St, e._g = xt, e._d = kt, e._p = Lt\n    }\n\n    function Et(e, t, i, r, o) {\n        var s, a = this,\n            l = o.options;\n        _(r, \"_uid\") ? (s = Object.create(r))._original = r : r = (s = r)._original;\n        var d = !(o = !0 === l._compiled);\n        this.data = e, this.props = t, this.children = i, this.parent = r, this.listeners = e.on || n, this.injections = lt(l.inject, r), this.slots = function() {\n            return a.$slots || ut(e.scopedSlots, a.$slots = dt(i, r)), a.$slots\n        }, Object.defineProperty(this, \"scopedSlots\", {\n            enumerable: !0,\n            get: function() {\n                return ut(e.scopedSlots, this.slots())\n            }\n        }), o && (this.$options = l, this.$slots = this.slots(), this.$scopedSlots = ut(e.scopedSlots, this.$slots)), l._scopeId ? this._c = function(e, t, i, n) {\n            return (n = Pt(s, e, t, i, n, d)) && !Array.isArray(n) && (n.fnScopeId = l._scopeId, n.fnContext = r), n\n        } : this._c = function(e, t, i, n) {\n            return Pt(s, e, t, i, n, d)\n        }\n    }\n\n    function Nt(e, t, i, n) {\n        return (e = me(e)).fnContext = i, e.fnOptions = n, t.slot && ((e.data || (e.data = {})).slot = t.slot), e\n    }\n\n    function Dt(e, t) {\n        for (var i in t) e[C(i)] = t[i]\n    }\n    Ot(Et.prototype);\n    var It = {\n            init: function(e, t) {\n                e.componentInstance && !e.componentInstance._isDestroyed && e.data.keepAlive ? It.prepatch(e, e) : (e.componentInstance = function(e, t) {\n                    var i = {\n                        _isComponent: !0,\n                        _parentVnode: e,\n                        parent: t\n                    };\n                    return o(t = e.data.inlineTemplate) && (i.render = t.render, i.staticRenderFns = t.staticRenderFns), new e.componentOptions.Ctor(i)\n                }(e, Ht)).$mount(t ? e.elm : void 0, t)\n            },\n            prepatch: function(e, t) {\n                var i = t.componentOptions;\n                ! function(e, t, i, r, o) {\n                    var s = r.data.scopedSlots,\n                        a = e.$scopedSlots;\n                    a = !!(s && !s.$stable || a !== n && !a.$stable || s && e.$scopedSlots.$key !== s.$key || !s && e.$scopedSlots.$key), s = !!(o || e.$options._renderChildren || a);\n                    if (e.$options._parentVnode = r, e.$vnode = r, e._vnode && (e._vnode.parent = r), e.$options._renderChildren = o, e.$attrs = r.data.attrs || n, e.$listeners = i || n, t && e.$options.props) {\n                        ye(!1);\n                        for (var l = e._props, d = e.$options._propKeys || [], c = 0; c < d.length; c++) {\n                            var h = d[c],\n                                u = e.$options.props;\n                            l[h] = Ae(h, u, t, e)\n                        }\n                        ye(!0), e.$options.propsData = t\n                    }\n                    i = i || n, a = e.$options._parentListeners, e.$options._parentListeners = i, zt(e, i, a), s && (e.$slots = dt(o, r.context), e.$forceUpdate())\n                }(t.componentInstance = e.componentInstance, i.propsData, i.listeners, t, i.children)\n            },\n            insert: function(e) {\n                var t = e.context,\n                    i = e.componentInstance;\n                i._isMounted || (i._isMounted = !0, qt(i, \"mounted\")), e.data.keepAlive && (t._isMounted ? ((t = i)._inactive = !1, Zt.push(t)) : $t(i, !0))\n            },\n            destroy: function(e) {\n                var t = e.componentInstance;\n                t._isDestroyed || (e.data.keepAlive ? function e(t, i) {\n                    if (!(i && (t._directInactive = !0, Kt(t)) || t._inactive)) {\n                        t._inactive = !0;\n                        for (var n = 0; n < t.$children.length; n++) e(t.$children[n]);\n                        qt(t, \"deactivated\")\n                    }\n                }(t, !0) : t.$destroy())\n            }\n        },\n        Tt = Object.keys(It);\n\n    function Mt(e, t, i, s, l) {\n        if (!r(e)) {\n            var d, c, u, p, g = i.$options._base;\n            if (\"function\" == typeof(e = a(e) ? g.extend(e) : e)) {\n                if (r(e.cid) && void 0 === (e = function(e, t) {\n                        if (!0 === e.error && o(e.errorComp)) return e.errorComp;\n                        if (o(e.resolved)) return e.resolved;\n                        var i = Rt;\n                        if (i && o(e.owners) && -1 === e.owners.indexOf(i) && e.owners.push(i), !0 === e.loading && o(e.loadingComp)) return e.loadingComp;\n                        if (i && !o(e.owners)) {\n                            var n = e.owners = [i],\n                                s = !0,\n                                l = null,\n                                d = null;\n                            i.$on(\"hook:destroyed\", (function() {\n                                return v(n, i)\n                            }));\n                            var c = function(e) {\n                                    for (var t = 0, i = n.length; t < i; t++) n[t].$forceUpdate();\n                                    e && (n.length = 0, null !== l && (clearTimeout(l), l = null), null !== d && (clearTimeout(d), d = null))\n                                },\n                                u = A((function(i) {\n                                    e.resolved = Ft(i, t), s ? n.length = 0 : c(!0)\n                                })),\n                                p = A((function(t) {\n                                    o(e.errorComp) && (e.error = !0, c(!0))\n                                })),\n                                g = e(u, p);\n                            return a(g) && (h(g) ? r(e.resolved) && g.then(u, p) : h(g.component) && (g.component.then(u, p), o(g.error) && (e.errorComp = Ft(g.error, t)), o(g.loading) && (e.loadingComp = Ft(g.loading, t), 0 === g.delay ? e.loading = !0 : l = setTimeout((function() {\n                                l = null, r(e.resolved) && r(e.error) && (e.loading = !0, c(!1))\n                            }), g.delay || 200)), o(g.timeout) && (d = setTimeout((function() {\n                                d = null, r(e.resolved) && p(null)\n                            }), g.timeout)))), s = !1, e.loading ? e.loadingComp : e.resolved\n                        }\n                    }(d = e, g))) return c = d, u = t, p = i, g = s, f = l, (m = ge()).asyncFactory = c, m.asyncMeta = {\n                    data: u,\n                    context: p,\n                    children: g,\n                    tag: f\n                }, m;\n                t = t || {}, yi(e), o(t.model) && function(e, t) {\n                    var i = e.model && e.model.prop || \"value\",\n                        n = e.model && e.model.event || \"input\";\n                    (t.attrs || (t.attrs = {}))[i] = t.model.value, i = (e = t.on || (t.on = {}))[n], t = t.model.callback, o(i) ? (Array.isArray(i) ? -1 === i.indexOf(t) : i !== t) && (e[n] = [t].concat(i)) : e[n] = t\n                }(e.options, t);\n                var f = function(e, t) {\n                    if (!r(t = t.options.props)) {\n                        var i = {},\n                            n = e.attrs,\n                            s = e.props;\n                        if (o(n) || o(s))\n                            for (var a in t) {\n                                var l = k(a);\n                                ot(i, s, a, l, !0) || ot(i, n, a, l, !1)\n                            }\n                        return i\n                    }\n                }(t, e);\n                if (!0 === e.options.functional) return function(e, t, i, r, s) {\n                    var a = e.options,\n                        l = {},\n                        d = a.props;\n                    if (o(d))\n                        for (var c in d) l[c] = Ae(c, d, t || n);\n                    else o(i.attrs) && Dt(l, i.attrs), o(i.props) && Dt(l, i.props);\n                    var h = new Et(i, l, s, r, e);\n                    if ((e = a.render.call(null, h._c, h)) instanceof pe) return Nt(e, i, h.parent, a);\n                    if (Array.isArray(e)) {\n                        for (var u = st(e) || [], p = new Array(u.length), g = 0; g < u.length; g++) p[g] = Nt(u[g], i, h.parent, a);\n                        return p\n                    }\n                }(e, f, t, i, s);\n                var m = t.on;\n                t.on = t.nativeOn, !0 === e.options.abstract && (b = t.slot, t = {}, b && (t.slot = b)),\n                    function(e) {\n                        for (var t = e.hook || (e.hook = {}), i = 0; i < Tt.length; i++) {\n                            var n = Tt[i],\n                                r = t[n],\n                                o = It[n];\n                            r === o || r && r._merged || (t[n] = r ? function(e, t) {\n                                function i(i, n) {\n                                    e(i, n), t(i, n)\n                                }\n                                return i._merged = !0, i\n                            }(o, r) : o)\n                        }\n                    }(t);\n                var b = e.options.name || l;\n                return new pe(\"vue-component-\" + e.cid + (b ? \"-\" + b : \"\"), t, void 0, void 0, void 0, i, {\n                    Ctor: e,\n                    propsData: f,\n                    listeners: m,\n                    tag: l,\n                    children: s\n                }, d)\n            }\n        }\n    }\n\n    function Pt(e, t, i, n, l, d) {\n        return (Array.isArray(i) || s(i)) && (l = n, n = i, i = void 0),\n            function(e, t, i, n, s) {\n                return o(i) && o(i.__ob__) ? ge() : (o(i) && o(i.is) && (t = i.is), t ? (Array.isArray(n) && \"function\" == typeof n[0] && ((i = i || {}).scopedSlots = {\n                    default: n[0]\n                }, n.length = 0), 2 === s ? n = st(n) : 1 === s && (n = function(e) {\n                    for (var t = 0; t < e.length; t++)\n                        if (Array.isArray(e[t])) return Array.prototype.concat.apply([], e);\n                    return e\n                }(n)), n = \"string\" == typeof t ? (l = e.$vnode && e.$vnode.ns || B.getTagNamespace(t), B.isReservedTag(t) ? new pe(B.parsePlatformTagName(t), i, n, void 0, void 0, e) : i && i.pre || !o(d = Pe(e.$options, \"components\", t)) ? new pe(t, i, n, void 0, void 0, e) : Mt(d, i, e, n, t)) : Mt(t, i, e, n), Array.isArray(n) ? n : o(n) ? (o(l) && function e(t, i, n) {\n                    if (t.ns = i, \"foreignObject\" === t.tag && (n = !(i = void 0)), o(t.children))\n                        for (var s = 0, a = t.children.length; s < a; s++) {\n                            var l = t.children[s];\n                            o(l.tag) && (r(l.ns) || !0 === n && \"svg\" !== l.tag) && e(l, i, n)\n                        }\n                }(n, l), o(i) && function(e) {\n                    a(e.style) && et(e.style), a(e.class) && et(e.class)\n                }(i), n) : ge()) : ge());\n                var l, d\n            }(e, t, i, n, l = !0 === d ? 2 : l)\n    }\n    var At, Rt = null;\n\n    function Ft(e, t) {\n        return a(e = e.__esModule || oe && \"Module\" === e[Symbol.toStringTag] ? e.default : e) ? t.extend(e) : e\n    }\n\n    function jt(e) {\n        if (Array.isArray(e))\n            for (var t = 0; t < e.length; t++) {\n                var i = e[t];\n                if (o(i) && (o(i.componentOptions) || ht(i))) return i\n            }\n    }\n\n    function Bt(e, t) {\n        At.$on(e, t)\n    }\n\n    function Vt(e, t) {\n        At.$off(e, t)\n    }\n\n    function Wt(e, t) {\n        var i = At;\n        return function n() {\n            null !== t.apply(null, arguments) && i.$off(e, n)\n        }\n    }\n\n    function zt(e, t, i) {\n        nt(t, i || {}, Bt, Vt, Wt, At = e), At = void 0\n    }\n    var Ht = null;\n\n    function Ut(e) {\n        var t = Ht;\n        return Ht = e,\n            function() {\n                Ht = t\n            }\n    }\n\n    function Kt(e) {\n        for (; e = e && e.$parent;)\n            if (e._inactive) return 1\n    }\n\n    function $t(e, t) {\n        if (t) {\n            if (e._directInactive = !1, Kt(e)) return\n        } else if (e._directInactive) return;\n        if (e._inactive || null === e._inactive) {\n            e._inactive = !1;\n            for (var i = 0; i < e.$children.length; i++) $t(e.$children[i]);\n            qt(e, \"activated\")\n        }\n    }\n\n    function qt(e, t) {\n        he();\n        var i = e.$options[t],\n            n = t + \" hook\";\n        if (i)\n            for (var r = 0, o = i.length; r < o; r++) We(i[r], e, null, e, n);\n        e._hasHookEvent && e.$emit(\"hook:\" + t), ue()\n    }\n    var Gt, Yt = [],\n        Zt = [],\n        Xt = {},\n        Qt = !1,\n        Jt = !1,\n        ei = 0,\n        ti = 0,\n        ii = Date.now;\n\n    function ni() {\n        var e, t;\n        for (ti = ii(), Jt = !0, Yt.sort((function(e, t) {\n                return e.id - t.id\n            })), ei = 0; ei < Yt.length; ei++)(e = Yt[ei]).before && e.before(), t = e.id, Xt[t] = null, e.run();\n        var i = Zt.slice(),\n            n = Yt.slice();\n        ei = Yt.length = Zt.length = 0, Qt = Jt = !(Xt = {}),\n            function(e) {\n                for (var t = 0; t < e.length; t++) e[t]._inactive = !0, $t(e[t], !0)\n            }(i),\n            function(e) {\n                for (var t = e.length; t--;) {\n                    var i = e[t],\n                        n = i.vm;\n                    n._watcher === i && n._isMounted && !n._isDestroyed && qt(n, \"updated\")\n                }\n            }(n), ne && B.devtools && ne.emit(\"flush\")\n    }!K || G || (Gt = window.performance) && \"function\" == typeof Gt.now && ii() > document.createEvent(\"Event\").timeStamp && (ii = function() {\n        return Gt.now()\n    });\n    var ri = 0,\n        oi = function(e, t, i, n, r) {\n            this.vm = e, r && (e._watcher = this), e._watchers.push(this), n ? (this.deep = !!n.deep, this.user = !!n.user, this.lazy = !!n.lazy, this.sync = !!n.sync, this.before = n.before) : this.deep = this.user = this.lazy = this.sync = !1, this.cb = i, this.id = ++ri, this.active = !0, this.dirty = this.lazy, this.deps = [], this.newDeps = [], this.depIds = new se, this.newDepIds = new se, this.expression = \"\", \"function\" == typeof t ? this.getter = t : (this.getter = function(e) {\n                if (!H.test(e)) {\n                    var t = e.split(\".\");\n                    return function(e) {\n                        for (var i = 0; i < t.length; i++) {\n                            if (!e) return;\n                            e = e[t[i]]\n                        }\n                        return e\n                    }\n                }\n            }(t), this.getter || (this.getter = D)), this.value = this.lazy ? void 0 : this.get()\n        };\n    oi.prototype.get = function() {\n        var e;\n        he(this);\n        var t = this.vm;\n        try {\n            e = this.getter.call(t, t)\n        } catch (e) {\n            if (!this.user) throw e;\n            Ve(e, t, 'getter for watcher \"' + this.expression + '\"')\n        } finally {\n            this.deep && et(e), ue(), this.cleanupDeps()\n        }\n        return e\n    }, oi.prototype.addDep = function(e) {\n        var t = e.id;\n        this.newDepIds.has(t) || (this.newDepIds.add(t), this.newDeps.push(e), this.depIds.has(t) || e.addSub(this))\n    }, oi.prototype.cleanupDeps = function() {\n        for (var e = this.deps.length; e--;) {\n            var t = this.deps[e];\n            this.newDepIds.has(t.id) || t.removeSub(this)\n        }\n        var i = this.depIds;\n        this.depIds = this.newDepIds, this.newDepIds = i, this.newDepIds.clear(), i = this.deps, this.deps = this.newDeps, this.newDeps = i, this.newDeps.length = 0\n    }, oi.prototype.update = function() {\n        this.lazy ? this.dirty = !0 : this.sync ? this.run() : function(e) {\n            var t = e.id;\n            if (null == Xt[t]) {\n                if (Xt[t] = !0, Jt) {\n                    for (var i = Yt.length - 1; ei < i && Yt[i].id > e.id;) i--;\n                    Yt.splice(i + 1, 0, e)\n                } else Yt.push(e);\n                Qt || (Qt = !0, Qe(ni))\n            }\n        }(this)\n    }, oi.prototype.run = function() {\n        var e, t, i;\n        !this.active || ((e = this.get()) !== this.value || a(e) || this.deep) && (t = this.value, this.value = e, this.user ? (i = 'callback for watcher \"' + this.expression + '\"', We(this.cb, this.vm, [e, t], this.vm, i)) : this.cb.call(this.vm, e, t))\n    }, oi.prototype.evaluate = function() {\n        this.value = this.get(), this.dirty = !1\n    }, oi.prototype.depend = function() {\n        for (var e = this.deps.length; e--;) this.deps[e].depend()\n    }, oi.prototype.teardown = function() {\n        if (this.active) {\n            this.vm._isBeingDestroyed || v(this.vm._watchers, this);\n            for (var e = this.deps.length; e--;) this.deps[e].removeSub(this);\n            this.active = !1\n        }\n    };\n    var si = {\n        enumerable: !0,\n        configurable: !0,\n        get: D,\n        set: D\n    };\n\n    function ai(e, t, i) {\n        si.get = function() {\n            return this[t][i]\n        }, si.set = function(e) {\n            this[t][i] = e\n        }, Object.defineProperty(e, i, si)\n    }\n    var li = {\n        lazy: !0\n    };\n\n    function di(e, t, i) {\n        var n = !ie();\n        \"function\" == typeof i ? (si.get = n ? ci(t) : hi(i), si.set = D) : (si.get = i.get ? n && !1 !== i.cache ? ci(t) : hi(i.get) : D, si.set = i.set || D), Object.defineProperty(e, t, si)\n    }\n\n    function ci(e) {\n        return function() {\n            var t = this._computedWatchers && this._computedWatchers[e];\n            if (t) return t.dirty && t.evaluate(), de.target && t.depend(), t.value\n        }\n    }\n\n    function hi(e) {\n        return function() {\n            return e.call(this, this)\n        }\n    }\n\n    function ui(e, t, i, n) {\n        return \"string\" == typeof(i = d(i) ? (n = i).handler : i) && (i = e[i]), e.$watch(t, i, n)\n    }\n    var pi, gi, fi, mi, vi, bi, _i, wi = 0;\n\n    function yi(e) {\n        var t, i, n = e.options;\n        return !e.super || (t = yi(e.super)) !== e.superOptions && (e.superOptions = t, (i = function(e) {\n            var t, i, n = e.options,\n                r = e.sealedOptions;\n            for (i in n) n[i] !== r[i] && ((t = t || {})[i] = n[i]);\n            return t\n        }(e)) && E(e.extendOptions, i), (n = e.options = Me(t, e.extendOptions)).name && (n.components[n.name] = e)), n\n    }\n\n    function Ci(e) {\n        this._init(e)\n    }\n\n    function xi(e) {\n        return e && (e.Ctor.options.name || e.tag)\n    }\n\n    function Si(e, t) {\n        return Array.isArray(e) ? -1 < e.indexOf(t) : \"string\" == typeof e ? -1 < e.split(\",\").indexOf(t) : !! function(e) {\n            return \"[object RegExp]\" === l.call(e)\n        }(e) && e.test(t)\n    }\n\n    function ki(e, t) {\n        var i, n = e.cache,\n            r = e.keys,\n            o = e._vnode;\n        for (i in n) {\n            var s = n[i];\n            !s || (s = s.name) && !t(s) && Li(n, i, r, o)\n        }\n    }\n\n    function Li(e, t, i, n) {\n        var r = e[t];\n        !r || n && r.tag === n.tag || r.componentInstance.$destroy(), e[t] = null, v(i, t)\n    }\n    Ci.prototype._init = function(e) {\n        var t, i, r, o = this;\n        o._uid = wi++, o._isVue = !0, e && e._isComponent ? function(e, t) {\n                var i = e.$options = Object.create(e.constructor.options);\n                e = t._parentVnode;\n                i.parent = t.parent, e = (i._parentVnode = e).componentOptions, i.propsData = e.propsData, i._parentListeners = e.listeners, i._renderChildren = e.children, i._componentTag = e.tag, t.render && (i.render = t.render, i.staticRenderFns = t.staticRenderFns)\n            }(o, e) : o.$options = Me(yi(o.constructor), e || {}, o),\n            function(e) {\n                var t = e.$options,\n                    i = t.parent;\n                if (i && !t.abstract) {\n                    for (; i.$options.abstract && i.$parent;) i = i.$parent;\n                    i.$children.push(e)\n                }\n                e.$parent = i, e.$root = i ? i.$root : e, e.$children = [], e.$refs = {}, e._watcher = null, e._inactive = null, e._directInactive = !1, e._isMounted = !1, e._isDestroyed = !1, e._isBeingDestroyed = !1\n            }((o._renderProxy = o)._self = o),\n            function(e) {\n                e._events = Object.create(null), e._hasHookEvent = !1;\n                var t = e.$options._parentListeners;\n                t && zt(e, t)\n            }(o),\n            function(e) {\n                e._vnode = null, e._staticTrees = null;\n                var t = e.$options,\n                    i = e.$vnode = t._parentVnode,\n                    r = i && i.context;\n                e.$slots = dt(t._renderChildren, r), e.$scopedSlots = n, e._c = function(t, i, n, r) {\n                    return Pt(e, t, i, n, r, !1)\n                }, e.$createElement = function(t, i, n, r) {\n                    return Pt(e, t, i, n, r, !0)\n                }, i = i && i.data, Se(e, \"$attrs\", i && i.attrs || n, null, !0), Se(e, \"$listeners\", t._parentListeners || n, null, !0)\n            }(o), qt(o, \"beforeCreate\"), (i = lt((t = o).$options.inject, t)) && (ye(!1), Object.keys(i).forEach((function(e) {\n                Se(t, e, i[e])\n            })), ye(!0)),\n            function(e) {\n                e._watchers = [];\n                var t = e.$options;\n                t.props && function(e, t) {\n                    var i = e.$options.propsData || {},\n                        n = e._props = {},\n                        r = e.$options._propKeys = [];\n                    for (var o in e.$parent && ye(!1), t) ! function(o) {\n                        r.push(o);\n                        var s = Ae(o, t, i, e);\n                        Se(n, o, s), o in e || ai(e, \"_props\", o)\n                    }(o);\n                    ye(!0)\n                }(e, t.props), t.methods && function(e, t) {\n                    for (var i in e.$options.props, t) e[i] = \"function\" != typeof t[i] ? D : L(t[i], e)\n                }(e, t.methods), t.data ? function(e) {\n                    var t = e.$options.data;\n                    d(t = e._data = \"function\" == typeof t ? function(e, t) {\n                        he();\n                        try {\n                            return e.call(t, t)\n                        } catch (e) {\n                            return Ve(e, t, \"data()\"), {}\n                        } finally {\n                            ue()\n                        }\n                    }(t, e) : t || {}) || (t = {});\n                    for (var i = Object.keys(t), n = e.$options.props, r = (e.$options.methods, i.length); r--;) {\n                        var o = i[r];\n                        n && _(n, o) || function(e) {\n                            return 36 === (e = (e + \"\").charCodeAt(0)) || 95 === e\n                        }(o) || ai(e, \"_data\", o)\n                    }\n                    xe(t, !0)\n                }(e) : xe(e._data = {}, !0), t.computed && function(e, t) {\n                    var i, n = e._computedWatchers = Object.create(null),\n                        r = ie();\n                    for (i in t) {\n                        var o = t[i],\n                            s = \"function\" == typeof o ? o : o.get;\n                        r || (n[i] = new oi(e, s || D, D, li)), i in e || di(e, i, o)\n                    }\n                }(e, t.computed), t.watch && t.watch !== J && function(e, t) {\n                    for (var i in t) {\n                        var n = t[i];\n                        if (Array.isArray(n))\n                            for (var r = 0; r < n.length; r++) ui(e, i, n[r]);\n                        else ui(e, i, n)\n                    }\n                }(e, t.watch)\n            }(o), (e = (r = o).$options.provide) && (r._provided = \"function\" == typeof e ? e.call(r) : e), qt(o, \"created\"), o.$options.el && o.$mount(o.$options.el)\n    }, pi = Ci, gi = {\n        get: function() {\n            return this._data\n        }\n    }, fi = {\n        get: function() {\n            return this._props\n        }\n    }, Object.defineProperty(pi.prototype, \"$data\", gi), Object.defineProperty(pi.prototype, \"$props\", fi), pi.prototype.$set = ke, pi.prototype.$delete = Le, pi.prototype.$watch = function(e, t, i) {\n        if (d(t)) return ui(this, e, t, i);\n        (i = i || {}).user = !0;\n        var n = new oi(this, e, t, i);\n        return i.immediate && (i = 'callback for immediate watcher \"' + n.expression + '\"', he(), We(t, this, [n.value], this, i), ue()),\n            function() {\n                n.teardown()\n            }\n    }, vi = /^hook:/, (mi = Ci).prototype.$on = function(e, t) {\n        if (Array.isArray(e))\n            for (var i = 0, n = e.length; i < n; i++) this.$on(e[i], t);\n        else(this._events[e] || (this._events[e] = [])).push(t), vi.test(e) && (this._hasHookEvent = !0);\n        return this\n    }, mi.prototype.$once = function(e, t) {\n        var i = this;\n\n        function n() {\n            i.$off(e, n), t.apply(i, arguments)\n        }\n        return n.fn = t, i.$on(e, n), i\n    }, mi.prototype.$off = function(e, t) {\n        if (!arguments.length) return this._events = Object.create(null), this;\n        if (Array.isArray(e)) {\n            for (var i = 0, n = e.length; i < n; i++) this.$off(e[i], t);\n            return this\n        }\n        var r, o = this._events[e];\n        if (!o) return this;\n        if (!t) return this._events[e] = null, this;\n        for (var s = o.length; s--;)\n            if ((r = o[s]) === t || r.fn === t) {\n                o.splice(s, 1);\n                break\n            } return this\n    }, mi.prototype.$emit = function(e) {\n        if (t = this._events[e])\n            for (var t = 1 < t.length ? O(t) : t, i = O(arguments, 1), n = 'event handler for \"' + e + '\"', r = 0, o = t.length; r < o; r++) We(t[r], this, i, this, n);\n        return this\n    }, (bi = Ci).prototype._update = function(e, t) {\n        var i = this,\n            n = i.$el,\n            r = i._vnode,\n            o = Ut(i);\n        i._vnode = e, i.$el = r ? i.__patch__(r, e) : i.__patch__(i.$el, e, t, !1), o(), n && (n.__vue__ = null), i.$el && (i.$el.__vue__ = i), i.$vnode && i.$parent && i.$vnode === i.$parent._vnode && (i.$parent.$el = i.$el)\n    }, bi.prototype.$forceUpdate = function() {\n        this._watcher && this._watcher.update()\n    }, bi.prototype.$destroy = function() {\n        var e = this;\n        if (!e._isBeingDestroyed) {\n            qt(e, \"beforeDestroy\"), e._isBeingDestroyed = !0;\n            var t = e.$parent;\n            !t || t._isBeingDestroyed || e.$options.abstract || v(t.$children, e), e._watcher && e._watcher.teardown();\n            for (var i = e._watchers.length; i--;) e._watchers[i].teardown();\n            e._data.__ob__ && e._data.__ob__.vmCount--, e._isDestroyed = !0, e.__patch__(e._vnode, null), qt(e, \"destroyed\"), e.$off(), e.$el && (e.$el.__vue__ = null), e.$vnode && (e.$vnode.parent = null)\n        }\n    }, Ot((_i = Ci).prototype), _i.prototype.$nextTick = function(e) {\n        return Qe(e, this)\n    }, _i.prototype._render = function() {\n        var e, t, i = this,\n            n = (t = i.$options).render;\n        (t = t._parentVnode) && (i.$scopedSlots = ut(t.data.scopedSlots, i.$slots, i.$scopedSlots)), i.$vnode = t;\n        try {\n            Rt = i, e = n.call(i._renderProxy, i.$createElement)\n        } catch (t) {\n            Ve(t, i, \"render\"), e = i._vnode\n        } finally {\n            Rt = null\n        }\n        return (e = (e = Array.isArray(e) && 1 === e.length ? e[0] : e) instanceof pe ? e : ge()).parent = t, e\n    };\n    var Oi, Ei, Ni, Di = [String, RegExp, Array],\n        Ii = {\n            KeepAlive: {\n                name: \"keep-alive\",\n                abstract: !0,\n                props: {\n                    include: Di,\n                    exclude: Di,\n                    max: [String, Number]\n                },\n                methods: {\n                    cacheVNode: function() {\n                        var e, t, i = this.cache,\n                            n = this.keys,\n                            r = this.vnodeToCache,\n                            o = this.keyToCache;\n                        r && (e = r.tag, t = r.componentInstance, r = r.componentOptions, i[o] = {\n                            name: xi(r),\n                            tag: e,\n                            componentInstance: t\n                        }, n.push(o), this.max && n.length > parseInt(this.max) && Li(i, n[0], n, this._vnode), this.vnodeToCache = null)\n                    }\n                },\n                created: function() {\n                    this.cache = Object.create(null), this.keys = []\n                },\n                destroyed: function() {\n                    for (var e in this.cache) Li(this.cache, e, this.keys)\n                },\n                mounted: function() {\n                    var e = this;\n                    this.cacheVNode(), this.$watch(\"include\", (function(t) {\n                        ki(e, (function(e) {\n                            return Si(t, e)\n                        }))\n                    })), this.$watch(\"exclude\", (function(t) {\n                        ki(e, (function(e) {\n                            return !Si(t, e)\n                        }))\n                    }))\n                },\n                updated: function() {\n                    this.cacheVNode()\n                },\n                render: function() {\n                    var e = this.$slots.default,\n                        t = jt(e),\n                        i = t && t.componentOptions;\n                    if (i) {\n                        var n = xi(i),\n                            r = this.include,\n                            o = this.exclude;\n                        if (r && (!n || !Si(r, n)) || o && n && Si(o, n)) return t;\n                        o = this.cache, n = this.keys, o[i = null == t.key ? i.Ctor.cid + (i.tag ? \"::\" + i.tag : \"\") : t.key] ? (t.componentInstance = o[i].componentInstance, v(n, i), n.push(i)) : (this.vnodeToCache = t, this.keyToCache = i), t.data.keepAlive = !0\n                    }\n                    return t || e && e[0]\n                }\n            }\n        };\n    Oi = Ci, Ni = {\n            get: function() {\n                return B\n            }\n        }, Object.defineProperty(Oi, \"config\", Ni), Oi.util = {\n            warn: ae,\n            extend: E,\n            mergeOptions: Me,\n            defineReactive: Se\n        }, Oi.set = ke, Oi.delete = Le, Oi.nextTick = Qe, Oi.observable = function(e) {\n            return xe(e), e\n        }, Oi.options = Object.create(null), F.forEach((function(e) {\n            Oi.options[e + \"s\"] = Object.create(null)\n        })), E((Oi.options._base = Oi).options.components, Ii), Oi.use = function(e) {\n            var t = this._installedPlugins || (this._installedPlugins = []);\n            if (-1 < t.indexOf(e)) return this;\n            var i = O(arguments, 1);\n            return i.unshift(this), \"function\" == typeof e.install ? e.install.apply(e, i) : \"function\" == typeof e && e.apply(null, i), t.push(e), this\n        }, Oi.mixin = function(e) {\n            return this.options = Me(this.options, e), this\n        },\n        function(e) {\n            e.cid = 0;\n            var t = 1;\n            e.extend = function(e) {\n                var i = this,\n                    n = i.cid,\n                    r = (e = e || {})._Ctor || (e._Ctor = {});\n                if (r[n]) return r[n];\n                var o = e.name || i.options.name;\n\n                function s(e) {\n                    this._init(e)\n                }\n                return ((s.prototype = Object.create(i.prototype)).constructor = s).cid = t++, s.options = Me(i.options, e), s.super = i, s.options.props && function(e) {\n                    for (var t in e.options.props) ai(e.prototype, \"_props\", t)\n                }(s), s.options.computed && function(e) {\n                    var t, i = e.options.computed;\n                    for (t in i) di(e.prototype, t, i[t])\n                }(s), s.extend = i.extend, s.mixin = i.mixin, s.use = i.use, F.forEach((function(e) {\n                    s[e] = i[e]\n                })), o && (s.options.components[o] = s), s.superOptions = i.options, s.extendOptions = e, s.sealedOptions = E({}, s.options), r[n] = s\n            }\n        }(Oi), Ei = Oi, F.forEach((function(e) {\n            Ei[e] = function(t, i) {\n                return i ? (\"component\" === e && d(i) && (i.name = i.name || t, i = this.options._base.extend(i)), this.options[e + \"s\"][t] = i = \"directive\" === e && \"function\" == typeof i ? {\n                    bind: i,\n                    update: i\n                } : i) : this.options[e + \"s\"][t]\n            }\n        })), Object.defineProperty(Ci.prototype, \"$isServer\", {\n            get: ie\n        }), Object.defineProperty(Ci.prototype, \"$ssrContext\", {\n            get: function() {\n                return this.$vnode && this.$vnode.ssrContext\n            }\n        }), Object.defineProperty(Ci, \"FunctionalRenderContext\", {\n            value: Et\n        }), Ci.version = \"2.6.14\";\n    q = g(\"style,class\");\n    var Ti = g(\"input,textarea,option,select,progress\"),\n        Mi = function(e, t, i) {\n            return \"value\" === i && Ti(e) && \"button\" !== t || \"selected\" === i && \"option\" === e || \"checked\" === i && \"input\" === e || \"muted\" === i && \"video\" === e\n        },\n        Pi = g(\"contenteditable,draggable,spellcheck\"),\n        Ai = g(\"events,caret,typing,plaintext-only\"),\n        Ri = g(\"allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,default,defaultchecked,defaultmuted,defaultselected,defer,disabled,enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,required,reversed,scoped,seamless,selected,sortable,truespeed,typemustmatch,visible\"),\n        Fi = \"http://www.w3.org/1999/xlink\",\n        ji = function(e) {\n            return \":\" === e.charAt(5) && \"xlink\" === e.slice(0, 5)\n        },\n        Bi = function(e) {\n            return ji(e) ? e.slice(6, e.length) : \"\"\n        },\n        Vi = function(e) {\n            return null == e || !1 === e\n        };\n\n    function Wi(e, t) {\n        return {\n            staticClass: zi(e.staticClass, t.staticClass),\n            class: o(e.class) ? [e.class, t.class] : t.class\n        }\n    }\n\n    function zi(e, t) {\n        return e ? t ? e + \" \" + t : e : t || \"\"\n    }\n\n    function Hi(e) {\n        return Array.isArray(e) ? function(e) {\n            for (var t, i = \"\", n = 0, r = e.length; n < r; n++) o(t = Hi(e[n])) && \"\" !== t && (i && (i += \" \"), i += t);\n            return i\n        }(e) : a(e) ? function(e) {\n            var t, i = \"\";\n            for (t in e) e[t] && (i && (i += \" \"), i += t);\n            return i\n        }(e) : \"string\" == typeof e ? e : \"\"\n    }\n\n    function Ui(e) {\n        return $i(e) || qi(e)\n    }\n    var Ki = {\n            svg: \"http://www.w3.org/2000/svg\",\n            math: \"http://www.w3.org/1998/Math/MathML\"\n        },\n        $i = g(\"html,body,base,head,link,meta,style,title,address,article,aside,footer,header,h1,h2,h3,h4,h5,h6,hgroup,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,rtc,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,menuitem,summary,content,element,shadow,template,blockquote,iframe,tfoot\"),\n        qi = g(\"svg,animate,circle,clippath,cursor,defs,desc,ellipse,filter,font-face,foreignobject,g,glyph,image,line,marker,mask,missing-glyph,path,pattern,polygon,polyline,rect,switch,symbol,text,textpath,tspan,use,view\", !0);\n\n    function Gi(e) {\n        return qi(e) ? \"svg\" : \"math\" === e ? \"math\" : void 0\n    }\n    var Yi = Object.create(null),\n        Zi = g(\"text,number,password,search,email,tel,url\");\n\n    function Xi(e) {\n        return \"string\" != typeof e ? e : (e = document.querySelector(e)) || document.createElement(\"div\")\n    }\n\n    function Qi(e, t) {\n        var i, n, r = e.data.ref;\n        o(r) && (n = e.context, i = e.componentInstance || e.elm, n = n.$refs, t ? Array.isArray(n[r]) ? v(n[r], i) : n[r] === i && (n[r] = void 0) : e.data.refInFor ? Array.isArray(n[r]) ? n[r].indexOf(i) < 0 && n[r].push(i) : n[r] = [i] : n[r] = i)\n    }\n    te = Object.freeze({\n        createElement: function(e, t) {\n            var i = document.createElement(e);\n            return \"select\" !== e || t.data && t.data.attrs && void 0 !== t.data.attrs.multiple && i.setAttribute(\"multiple\", \"multiple\"), i\n        },\n        createElementNS: function(e, t) {\n            return document.createElementNS(Ki[e], t)\n        },\n        createTextNode: function(e) {\n            return document.createTextNode(e)\n        },\n        createComment: function(e) {\n            return document.createComment(e)\n        },\n        insertBefore: function(e, t, i) {\n            e.insertBefore(t, i)\n        },\n        removeChild: function(e, t) {\n            e.removeChild(t)\n        },\n        appendChild: function(e, t) {\n            e.appendChild(t)\n        },\n        parentNode: function(e) {\n            return e.parentNode\n        },\n        nextSibling: function(e) {\n            return e.nextSibling\n        },\n        tagName: function(e) {\n            return e.tagName\n        },\n        setTextContent: function(e, t) {\n            e.textContent = t\n        },\n        setStyleScope: function(e, t) {\n            e.setAttribute(t, \"\")\n        }\n    }), bn = {\n        create: function(e, t) {\n            Qi(t)\n        },\n        update: function(e, t) {\n            e.data.ref !== t.data.ref && (Qi(e, !0), Qi(t))\n        },\n        destroy: function(e) {\n            Qi(e, !0)\n        }\n    };\n    var Ji = new pe(\"\", {}, []),\n        en = [\"create\", \"activate\", \"update\", \"remove\", \"destroy\"];\n\n    function tn(e, t) {\n        return e.key === t.key && e.asyncFactory === t.asyncFactory && (e.tag === t.tag && e.isComment === t.isComment && o(e.data) === o(t.data) && function(e, t) {\n            if (\"input\" !== e.tag) return 1;\n            e = o(i = e.data) && o(i = i.attrs) && i.type;\n            var i = o(i = t.data) && o(i = i.attrs) && i.type;\n            return e === i || Zi(e) && Zi(i)\n        }(e, t) || !0 === e.isAsyncPlaceholder && r(t.asyncFactory.error))\n    }\n\n    function nn(e, t) {\n        (e.data.directives || t.data.directives) && function(e, t) {\n            var i, n, r, o, s = e === Ji,\n                a = t === Ji,\n                l = on(e.data.directives, e.context),\n                d = on(t.data.directives, t.context),\n                c = [],\n                h = [];\n            for (i in d) n = l[i], r = d[i], n ? (r.oldValue = n.value, r.oldArg = n.arg, sn(r, \"update\", t, e), r.def && r.def.componentUpdated && h.push(r)) : (sn(r, \"bind\", t, e), r.def && r.def.inserted && c.push(r));\n            if (c.length && (o = function() {\n                    for (var i = 0; i < c.length; i++) sn(c[i], \"inserted\", t, e)\n                }, s ? rt(t, \"insert\", o) : o()), h.length && rt(t, \"postpatch\", (function() {\n                    for (var i = 0; i < h.length; i++) sn(h[i], \"componentUpdated\", t, e)\n                })), !s)\n                for (i in l) d[i] || sn(l[i], \"unbind\", e, e, a)\n        }(e, t)\n    }\n    j = {\n        create: nn,\n        update: nn,\n        destroy: function(e) {\n            nn(e, Ji)\n        }\n    };\n    var rn = Object.create(null);\n\n    function on(e, t) {\n        var i, n, r, o = Object.create(null);\n        if (!e) return o;\n        for (i = 0; i < e.length; i++)(n = e[i]).modifiers || (n.modifiers = rn), (o[(r = n).rawName || r.name + \".\" + Object.keys(r.modifiers || {}).join(\".\")] = n).def = Pe(t.$options, \"directives\", n.name);\n        return o\n    }\n\n    function sn(e, t, i, n, r) {\n        var o = e.def && e.def[t];\n        if (o) try {\n            o(i.elm, e, i, n, r)\n        } catch (n) {\n            Ve(n, i.context, \"directive \" + e.name + \" \" + t + \" hook\")\n        }\n    }\n    var an = [bn, j];\n\n    function ln(e, t) {\n        var i = t.componentOptions;\n        if (!(o(i) && !1 === i.Ctor.options.inheritAttrs || r(e.data.attrs) && r(t.data.attrs))) {\n            var n, s, a = t.elm,\n                l = e.data.attrs || {},\n                d = t.data.attrs || {};\n            for (n in d = o(d.__ob__) ? t.data.attrs = E({}, d) : d) s = d[n], l[n] !== s && dn(a, n, s, t.data.pre);\n            for (n in (G || Z) && d.value !== l.value && dn(a, \"value\", d.value), l) r(d[n]) && (ji(n) ? a.removeAttributeNS(Fi, Bi(n)) : Pi(n) || a.removeAttribute(n))\n        }\n    }\n\n    function dn(e, t, i, n) {\n        n || -1 < e.tagName.indexOf(\"-\") ? cn(e, t, i) : Ri(t) ? Vi(i) ? e.removeAttribute(t) : (i = \"allowfullscreen\" === t && \"EMBED\" === e.tagName ? \"true\" : t, e.setAttribute(t, i)) : Pi(t) ? e.setAttribute(t, function(e, t) {\n            return Vi(t) || \"false\" === t ? \"false\" : \"contenteditable\" === e && Ai(t) ? t : \"true\"\n        }(t, i)) : ji(t) ? Vi(i) ? e.removeAttributeNS(Fi, Bi(t)) : e.setAttributeNS(Fi, t, i) : cn(e, t, i)\n    }\n\n    function cn(e, t, i) {\n        var n;\n        Vi(i) ? e.removeAttribute(t) : (!G || Y || \"TEXTAREA\" !== e.tagName || \"placeholder\" !== t || \"\" === i || e.__ieph || (n = function(t) {\n            t.stopImmediatePropagation(), e.removeEventListener(\"input\", n)\n        }, e.addEventListener(\"input\", n), e.__ieph = !0), e.setAttribute(t, i))\n    }\n\n    function hn(e, t) {\n        var i = t.elm,\n            n = t.data;\n        e = e.data;\n        r(n.staticClass) && r(n.class) && (r(e) || r(e.staticClass) && r(e.class)) || (e = function(e) {\n            for (var t = e.data, i = e, n = e; o(n.componentInstance);)(n = n.componentInstance._vnode) && n.data && (t = Wi(n.data, t));\n            for (; o(i = i.parent);) i && i.data && (t = Wi(t, i.data));\n            return function(e, t) {\n                return o(e) || o(t) ? zi(e, Hi(t)) : \"\"\n            }(t.staticClass, t.class)\n        }(t), (e = o(t = i._transitionClasses) ? zi(e, Hi(t)) : e) !== i._prevClass && (i.setAttribute(\"class\", e), i._prevClass = e))\n    }\n    Di = {\n        create: ln,\n        update: ln\n    };\n    var un, pn, gn, fn, mn, vn, bn = {\n            create: hn,\n            update: hn\n        },\n        _n = /[\\w).+\\-_$\\]]/;\n\n    function wn(e) {\n        for (var t, i, n, r, o = !1, s = !1, a = !1, l = !1, d = 0, c = 0, h = 0, u = 0, p = 0; p < e.length; p++)\n            if (i = t, t = e.charCodeAt(p), o) 39 === t && 92 !== i && (o = !1);\n            else if (s) 34 === t && 92 !== i && (s = !1);\n        else if (a) 96 === t && 92 !== i && (a = !1);\n        else if (l) 47 === t && 92 !== i && (l = !1);\n        else if (124 !== t || 124 === e.charCodeAt(p + 1) || 124 === e.charCodeAt(p - 1) || d || c || h) {\n            switch (t) {\n                case 34:\n                    s = !0;\n                    break;\n                case 39:\n                    o = !0;\n                    break;\n                case 96:\n                    a = !0;\n                    break;\n                case 40:\n                    h++;\n                    break;\n                case 41:\n                    h--;\n                    break;\n                case 91:\n                    c++;\n                    break;\n                case 93:\n                    c--;\n                    break;\n                case 123:\n                    d++;\n                    break;\n                case 125:\n                    d--\n            }\n            if (47 === t) {\n                for (var g = p - 1, f = void 0; 0 <= g && \" \" === (f = e.charAt(g)); g--);\n                f && _n.test(f) || (l = !0)\n            }\n        } else void 0 === n ? (u = p + 1, n = e.slice(0, p).trim()) : m();\n\n        function m() {\n            (r = r || []).push(e.slice(u, p).trim()), u = p + 1\n        }\n        if (void 0 === n ? n = e.slice(0, p).trim() : 0 !== u && m(), r)\n            for (p = 0; p < r.length; p++) n = function(e, t) {\n                var i;\n                return (i = t.indexOf(\"(\")) < 0 ? '_f(\"' + t + '\")(' + e + \")\" : '_f(\"' + t.slice(0, i) + '\")(' + e + (\")\" !== (i = t.slice(i + 1)) ? \",\" + i : i)\n            }(n, r[p]);\n        return n\n    }\n\n    function yn(e, t) {\n        console.error(\"[Vue compiler]: \" + e)\n    }\n\n    function Cn(e, t) {\n        return e ? e.map((function(e) {\n            return e[t]\n        })).filter((function(e) {\n            return e\n        })) : []\n    }\n\n    function xn(e, t, i, n, r) {\n        (e.props || (e.props = [])).push(In({\n            name: t,\n            value: i,\n            dynamic: r\n        }, n)), e.plain = !1\n    }\n\n    function Sn(e, t, i, n, r) {\n        (r ? e.dynamicAttrs || (e.dynamicAttrs = []) : e.attrs || (e.attrs = [])).push(In({\n            name: t,\n            value: i,\n            dynamic: r\n        }, n)), e.plain = !1\n    }\n\n    function kn(e, t, i, n) {\n        e.attrsMap[t] = i, e.attrsList.push(In({\n            name: t,\n            value: i\n        }, n))\n    }\n\n    function Ln(e, t, i) {\n        return i ? \"_p(\" + t + ',\"' + e + '\")' : e + t\n    }\n\n    function On(e, t, i, r, o, s, a, l) {\n        (r = r || n).right ? l ? t = \"(\" + t + \")==='click'?'contextmenu':(\" + t + \")\" : \"click\" === t && (t = \"contextmenu\", delete r.right) : r.middle && (l ? t = \"(\" + t + \")==='click'?'mouseup':(\" + t + \")\" : \"click\" === t && (t = \"mouseup\")), r.capture && (delete r.capture, t = Ln(\"!\", t, l)), r.once && (delete r.once, t = Ln(\"~\", t, l)), r.passive && (delete r.passive, t = Ln(\"&\", t, l));\n        var d = r.native ? (delete r.native, e.nativeEvents || (e.nativeEvents = {})) : e.events || (e.events = {});\n        a = In({\n            value: i.trim(),\n            dynamic: l\n        }, a);\n        r !== n && (a.modifiers = r), r = d[t], Array.isArray(r) ? o ? r.unshift(a) : r.push(a) : d[t] = r ? o ? [a, r] : [r, a] : a, e.plain = !1\n    }\n\n    function En(e, t, i) {\n        var n = Nn(e, \":\" + t) || Nn(e, \"v-bind:\" + t);\n        return null != n ? wn(n) : !1 !== i && null != (t = Nn(e, t)) ? JSON.stringify(t) : void 0\n    }\n\n    function Nn(e, t, i) {\n        var n;\n        if (null != (n = e.attrsMap[t]))\n            for (var r = e.attrsList, o = 0, s = r.length; o < s; o++)\n                if (r[o].name === t) {\n                    r.splice(o, 1);\n                    break\n                } return i && delete e.attrsMap[t], n\n    }\n\n    function Dn(e, t) {\n        for (var i = e.attrsList, n = 0, r = i.length; n < r; n++) {\n            var o = i[n];\n            if (t.test(o.name)) return i.splice(n, 1), o\n        }\n    }\n\n    function In(e, t) {\n        return t && (null != t.start && (e.start = t.start), null != t.end && (e.end = t.end)), e\n    }\n\n    function Tn(e, t, i) {\n        i = (n = i || {}).number;\n        var n = n.trim ? \"(typeof $$v === 'string'? $$v.trim(): $$v)\" : \"$$v\";\n        n = Mn(t, n = i ? \"_n(\" + n + \")\" : n);\n        e.model = {\n            value: \"(\" + t + \")\",\n            expression: JSON.stringify(t),\n            callback: \"function ($$v) {\" + n + \"}\"\n        }\n    }\n\n    function Mn(e, t) {\n        var i = function(e) {\n            if (e = e.trim(), un = e.length, e.indexOf(\"[\") < 0 || e.lastIndexOf(\"]\") < un - 1) return -1 < (fn = e.lastIndexOf(\".\")) ? {\n                exp: e.slice(0, fn),\n                key: '\"' + e.slice(fn + 1) + '\"'\n            } : {\n                exp: e,\n                key: null\n            };\n            for (pn = e, fn = mn = vn = 0; !An();) Rn(gn = Pn()) ? Fn(gn) : 91 === gn && function(e) {\n                var t = 1;\n                for (mn = fn; !An();)\n                    if (Rn(e = Pn())) Fn(e);\n                    else if (91 === e && t++, 93 === e && t--, 0 === t) {\n                    vn = fn;\n                    break\n                }\n            }(gn);\n            return {\n                exp: e.slice(0, mn),\n                key: e.slice(mn + 1, vn)\n            }\n        }(e);\n        return null === i.key ? e + \"=\" + t : \"$set(\" + i.exp + \", \" + i.key + \", \" + t + \")\"\n    }\n\n    function Pn() {\n        return pn.charCodeAt(++fn)\n    }\n\n    function An() {\n        return un <= fn\n    }\n\n    function Rn(e) {\n        return 34 === e || 39 === e\n    }\n\n    function Fn(e) {\n        for (var t = e; !An() && (e = Pn()) !== t;);\n    }\n    var jn, Bn = \"__r\";\n\n    function Vn(e, t, i) {\n        var n = jn;\n        return function r() {\n            null !== t.apply(null, arguments) && Hn(e, r, i, n)\n        }\n    }\n    var Wn = Ge && !(Q && Number(Q[1]) <= 53);\n\n    function zn(e, t, i, n) {\n        var r, o;\n        Wn && (r = ti, t = (o = t)._wrapper = function(e) {\n            if (e.target === e.currentTarget || e.timeStamp >= r || e.timeStamp <= 0 || e.target.ownerDocument !== document) return o.apply(this, arguments)\n        }), jn.addEventListener(e, t, ee ? {\n            capture: i,\n            passive: n\n        } : i)\n    }\n\n    function Hn(e, t, i, n) {\n        (n || jn).removeEventListener(e, t._wrapper || t, i)\n    }\n\n    function Un(e, t) {\n        var i, n, s;\n        r(e.data.on) && r(t.data.on) || (i = t.data.on || {}, n = e.data.on || {}, jn = t.elm, o((s = i).__r) && (s[e = G ? \"change\" : \"input\"] = [].concat(s.__r, s[e] || []), delete s.__r), o(s.__c) && (s.change = [].concat(s.__c, s.change || []), delete s.__c), nt(i, n, zn, Hn, Vn, t.context), jn = void 0)\n    }\n    var Kn;\n    j = {\n        create: Un,\n        update: Un\n    };\n\n    function $n(e, t) {\n        if (!r(e.data.domProps) || !r(t.data.domProps)) {\n            var i, n, s, a, l = t.elm,\n                d = e.data.domProps || {},\n                c = t.data.domProps || {};\n            for (i in o(c.__ob__) && (c = t.data.domProps = E({}, c)), d) i in c || (l[i] = \"\");\n            for (i in c) {\n                if (n = c[i], \"textContent\" === i || \"innerHTML\" === i) {\n                    if (t.children && (t.children.length = 0), n === d[i]) continue;\n                    1 === l.childNodes.length && l.removeChild(l.childNodes[0])\n                }\n                if (\"value\" === i && \"PROGRESS\" !== l.tagName) {\n                    var h = r(l._value = n) ? \"\" : String(n);\n                    a = h, (s = l).composing || \"OPTION\" !== s.tagName && ! function(e, t) {\n                        var i = !0;\n                        try {\n                            i = document.activeElement !== e\n                        } catch (e) {}\n                        return i && e.value !== t\n                    }(s, a) && ! function(e, t) {\n                        var i = e.value;\n                        if (o(e = e._vModifiers)) {\n                            if (e.number) return p(i) !== p(t);\n                            if (e.trim) return i.trim() !== t.trim()\n                        }\n                        return i !== t\n                    }(s, a) || (l.value = h)\n                } else if (\"innerHTML\" === i && qi(l.tagName) && r(l.innerHTML)) {\n                    (Kn = Kn || document.createElement(\"div\")).innerHTML = \"<svg>\" + n + \"</svg>\";\n                    for (var u = Kn.firstChild; l.firstChild;) l.removeChild(l.firstChild);\n                    for (; u.firstChild;) l.appendChild(u.firstChild)\n                } else if (n !== d[i]) try {\n                    l[i] = n\n                } catch (e) {}\n            }\n        }\n    }\n    Ge = {\n        create: $n,\n        update: $n\n    };\n    var qn = w((function(e) {\n        var t = {},\n            i = /:(.+)/;\n        return e.split(/;(?![^(]*\\))/g).forEach((function(e) {\n            !e || 1 < (e = e.split(i)).length && (t[e[0].trim()] = e[1].trim())\n        })), t\n    }));\n\n    function Gn(e) {\n        var t = Yn(e.style);\n        return e.staticStyle ? E(e.staticStyle, t) : t\n    }\n\n    function Yn(e) {\n        return Array.isArray(e) ? N(e) : \"string\" == typeof e ? qn(e) : e\n    }\n\n    function Zn(e, t, i) {\n        if (Qn.test(t)) e.style.setProperty(t, i);\n        else if (Jn.test(i)) e.style.setProperty(k(t), i.replace(Jn, \"\"), \"important\");\n        else {\n            var n = tr(t);\n            if (Array.isArray(i))\n                for (var r = 0, o = i.length; r < o; r++) e.style[n] = i[r];\n            else e.style[n] = i\n        }\n    }\n    var Xn, Qn = /^--/,\n        Jn = /\\s*!important$/,\n        er = [\"Webkit\", \"Moz\", \"ms\"],\n        tr = w((function(e) {\n            if (Xn = Xn || document.createElement(\"div\").style, \"filter\" !== (e = C(e)) && e in Xn) return e;\n            for (var t = e.charAt(0).toUpperCase() + e.slice(1), i = 0; i < er.length; i++) {\n                var n = er[i] + t;\n                if (n in Xn) return n\n            }\n        }));\n\n    function ir(e, t) {\n        var i = t.data;\n        e = e.data;\n        if (!(r(i.staticStyle) && r(i.style) && r(e.staticStyle) && r(e.style))) {\n            var n, s, a = t.elm,\n                l = (i = e.staticStyle, e = e.normalizedStyle || e.style || {}, i || e);\n            e = Yn(t.data.style) || {};\n            t.data.normalizedStyle = o(e.__ob__) ? E({}, e) : e;\n            var d = function(e, t) {\n                for (var i, n = {}, r = e; r.componentInstance;)(r = r.componentInstance._vnode) && r.data && (i = Gn(r.data)) && E(n, i);\n                (i = Gn(e.data)) && E(n, i);\n                for (var o = e; o = o.parent;) o.data && (i = Gn(o.data)) && E(n, i);\n                return n\n            }(t);\n            for (s in l) r(d[s]) && Zn(a, s, \"\");\n            for (s in d)(n = d[s]) !== l[s] && Zn(a, s, null == n ? \"\" : n)\n        }\n    }\n    Q = {\n        create: ir,\n        update: ir\n    };\n    var nr = /\\s+/;\n\n    function rr(e, t) {\n        var i;\n        (t = t && t.trim()) && (e.classList ? -1 < t.indexOf(\" \") ? t.split(nr).forEach((function(t) {\n            return e.classList.add(t)\n        })) : e.classList.add(t) : (i = \" \" + (e.getAttribute(\"class\") || \"\") + \" \").indexOf(\" \" + t + \" \") < 0 && e.setAttribute(\"class\", (i + t).trim()))\n    }\n\n    function or(e, t) {\n        if (t = t && t.trim())\n            if (e.classList) - 1 < t.indexOf(\" \") ? t.split(nr).forEach((function(t) {\n                return e.classList.remove(t)\n            })) : e.classList.remove(t), e.classList.length || e.removeAttribute(\"class\");\n            else {\n                for (var i = \" \" + (e.getAttribute(\"class\") || \"\") + \" \", n = \" \" + t + \" \"; 0 <= i.indexOf(n);) i = i.replace(n, \" \");\n                (i = i.trim()) ? e.setAttribute(\"class\", i): e.removeAttribute(\"class\")\n            }\n    }\n\n    function sr(e) {\n        if (e) {\n            if (\"object\" != typeof e) return \"string\" == typeof e ? ar(e) : void 0;\n            var t = {};\n            return !1 !== e.css && E(t, ar(e.name || \"v\")), E(t, e), t\n        }\n    }\n    var ar = w((function(e) {\n            return {\n                enterClass: e + \"-enter\",\n                enterToClass: e + \"-enter-to\",\n                enterActiveClass: e + \"-enter-active\",\n                leaveClass: e + \"-leave\",\n                leaveToClass: e + \"-leave-to\",\n                leaveActiveClass: e + \"-leave-active\"\n            }\n        })),\n        lr = K && !Y,\n        dr = \"transition\",\n        cr = \"animation\",\n        hr = \"transition\",\n        ur = \"transitionend\",\n        pr = \"animation\",\n        gr = \"animationend\";\n    lr && (void 0 === window.ontransitionend && void 0 !== window.onwebkittransitionend && (hr = \"WebkitTransition\", ur = \"webkitTransitionEnd\"), void 0 === window.onanimationend && void 0 !== window.onwebkitanimationend && (pr = \"WebkitAnimation\", gr = \"webkitAnimationEnd\"));\n    var fr = K ? window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : setTimeout : function(e) {\n        return e()\n    };\n\n    function mr(e) {\n        fr((function() {\n            fr(e)\n        }))\n    }\n\n    function vr(e, t) {\n        var i = e._transitionClasses || (e._transitionClasses = []);\n        i.indexOf(t) < 0 && (i.push(t), rr(e, t))\n    }\n\n    function br(e, t) {\n        e._transitionClasses && v(e._transitionClasses, t), or(e, t)\n    }\n\n    function _r(e, t, i) {\n        var n = yr(e, t),\n            r = n.type,\n            o = (t = n.timeout, n.propCount);\n        if (!r) return i();\n\n        function s() {\n            e.removeEventListener(a, d), i()\n        }\n        var a = r === dr ? ur : gr,\n            l = 0,\n            d = function(t) {\n                t.target === e && ++l >= o && s()\n            };\n        setTimeout((function() {\n            l < o && s()\n        }), t + 1), e.addEventListener(a, d)\n    }\n    var wr = /\\b(transform|all)(,|$)/;\n\n    function yr(e, t) {\n        var i, n = window.getComputedStyle(e),\n            r = (n[hr + \"Delay\"] || \"\").split(\", \"),\n            o = (n[hr + \"Duration\"] || \"\").split(\", \"),\n            s = Cr(r, o),\n            a = (n[pr + \"Delay\"] || \"\").split(\", \"),\n            l = (n[pr + \"Duration\"] || \"\").split(\", \");\n        e = Cr(a, l), r = 0, a = 0;\n        return t === dr ? 0 < s && (i = dr, r = s, a = o.length) : t === cr ? 0 < e && (i = cr, r = e, a = l.length) : a = (i = 0 < (r = Math.max(s, e)) ? e < s ? dr : cr : null) ? (i === dr ? o : l).length : 0, {\n            type: i,\n            timeout: r,\n            propCount: a,\n            hasTransform: i === dr && wr.test(n[hr + \"Property\"])\n        }\n    }\n\n    function Cr(e, t) {\n        for (; e.length < t.length;) e = e.concat(e);\n        return Math.max.apply(null, t.map((function(t, i) {\n            return xr(t) + xr(e[i])\n        })))\n    }\n\n    function xr(e) {\n        return 1e3 * Number(e.slice(0, -1).replace(\",\", \".\"))\n    }\n\n    function Sr(e, t) {\n        var i = e.elm;\n        if (o(i._leaveCb) && (i._leaveCb.cancelled = !0, i._leaveCb()), !r(F = sr(e.data.transition)) && !o(i._enterCb) && 1 === i.nodeType) {\n            for (var n = F.css, s = F.type, l = F.enterClass, d = F.enterToClass, c = F.enterActiveClass, h = F.appearClass, u = F.appearToClass, g = F.appearActiveClass, f = F.beforeEnter, m = F.enter, v = F.afterEnter, b = F.enterCancelled, _ = F.beforeAppear, w = F.appear, y = F.afterAppear, C = F.appearCancelled, x = F.duration, S = Ht, k = Ht.$vnode; k && k.parent;) S = k.context, k = k.parent;\n            var L, O, E, N, D, I, T, M, P, R, F;\n            (F = !S._isMounted || !e.isRootInsert) && !w && \"\" !== w || (L = F && h ? h : l, O = F && g ? g : c, E = F && u ? u : d, f = F && _ || f, N = F && \"function\" == typeof w ? w : m, D = F && y || v, I = F && C || b, T = p(a(x) ? x.enter : x), M = !1 !== n && !Y, P = Or(N), R = i._enterCb = A((function() {\n                M && (br(i, E), br(i, O)), R.cancelled ? (M && br(i, L), I && I(i)) : D && D(i), i._enterCb = null\n            })), e.data.show || rt(e, \"insert\", (function() {\n                var t;\n                (t = (t = i.parentNode) && t._pending && t._pending[e.key]) && t.tag === e.tag && t.elm._leaveCb && t.elm._leaveCb(), N && N(i, R)\n            })), f && f(i), M && (vr(i, L), vr(i, O), mr((function() {\n                br(i, L), R.cancelled || (vr(i, E), P || (Lr(T) ? setTimeout(R, T) : _r(i, s, R)))\n            }))), e.data.show && (t && t(), N && N(i, R)), M || P || R())\n        }\n    }\n\n    function kr(e, t) {\n        var i = e.elm;\n        o(i._enterCb) && (i._enterCb.cancelled = !0, i._enterCb());\n        var n, s, l, d, c, h, u, g, f, m, v, b, _, w, y = sr(e.data.transition);\n        if (r(y) || 1 !== i.nodeType) return t();\n\n        function C() {\n            w.cancelled || (!e.data.show && i.parentNode && ((i.parentNode._pending || (i.parentNode._pending = {}))[e.key] = e), h && h(i), v && (vr(i, l), vr(i, c), mr((function() {\n                br(i, l), w.cancelled || (vr(i, d), b || (Lr(_) ? setTimeout(w, _) : _r(i, s, w)))\n            }))), u && u(i, w), v || b || w())\n        }\n        o(i._leaveCb) || (n = y.css, s = y.type, l = y.leaveClass, d = y.leaveToClass, c = y.leaveActiveClass, h = y.beforeLeave, u = y.leave, g = y.afterLeave, f = y.leaveCancelled, m = y.delayLeave, y = y.duration, v = !1 !== n && !Y, b = Or(u), _ = p(a(y) ? y.leave : y), w = i._leaveCb = A((function() {\n            i.parentNode && i.parentNode._pending && (i.parentNode._pending[e.key] = null), v && (br(i, d), br(i, c)), w.cancelled ? (v && br(i, l), f && f(i)) : (t(), g && g(i)), i._leaveCb = null\n        })), m ? m(C) : C())\n    }\n\n    function Lr(e) {\n        return \"number\" == typeof e && !isNaN(e)\n    }\n\n    function Or(e) {\n        if (r(e)) return !1;\n        var t = e.fns;\n        return o(t) ? Or(Array.isArray(t) ? t[0] : t) : 1 < (e._length || e.length)\n    }\n\n    function Er(e, t) {\n        !0 !== t.data.show && Sr(t)\n    }\n    bn = function(e) {\n        for (var t, i = {}, n = e.modules, a = e.nodeOps, l = 0; l < en.length; ++l)\n            for (i[en[l]] = [], t = 0; t < n.length; ++t) o(n[t][en[l]]) && i[en[l]].push(n[t][en[l]]);\n\n        function d(e, t) {\n            function i() {\n                0 == --i.listeners && c(e)\n            }\n            return i.listeners = t, i\n        }\n\n        function c(e) {\n            var t = a.parentNode(e);\n            o(t) && a.removeChild(t, e)\n        }\n\n        function h(e, t, n, r, s, l, d) {\n            (e = o(e.elm) && o(l) ? l[d] = me(e) : e).isRootInsert = !s,\n                function(e, t, n, r) {\n                    var s = e.data;\n                    if (o(s)) {\n                        var a = o(e.componentInstance) && s.keepAlive;\n                        if (o(s = s.hook) && o(s = s.init) && s(e, !1), o(e.componentInstance)) return u(e, t), p(n, e.elm, r), !0 === a && function(e, t, n, r) {\n                            for (var s, a = e; a.componentInstance;)\n                                if (o(s = (a = a.componentInstance._vnode).data) && o(s = s.transition)) {\n                                    for (s = 0; s < i.activate.length; ++s) i.activate[s](Ji, a);\n                                    t.push(a);\n                                    break\n                                } p(n, e.elm, r)\n                        }(e, t, n, r), !0\n                    }\n                }(e, t, n, r) || (l = e.data, d = e.children, o(s = e.tag) ? (e.elm = e.ns ? a.createElementNS(e.ns, s) : a.createElement(s, e), b(e), f(e, d, t), o(l) && v(e, t)) : !0 === e.isComment ? e.elm = a.createComment(e.text) : e.elm = a.createTextNode(e.text), p(n, e.elm, r))\n        }\n\n        function u(e, t) {\n            o(e.data.pendingInsert) && (t.push.apply(t, e.data.pendingInsert), e.data.pendingInsert = null), e.elm = e.componentInstance.$el, m(e) ? (v(e, t), b(e)) : (Qi(e), t.push(e))\n        }\n\n        function p(e, t, i) {\n            o(e) && (o(i) ? a.parentNode(i) === e && a.insertBefore(e, t, i) : a.appendChild(e, t))\n        }\n\n        function f(e, t, i) {\n            if (Array.isArray(t))\n                for (var n = 0; n < t.length; ++n) h(t[n], i, e.elm, null, !0, t, n);\n            else s(e.text) && a.appendChild(e.elm, a.createTextNode(String(e.text)))\n        }\n\n        function m(e) {\n            for (; e.componentInstance;) e = e.componentInstance._vnode;\n            return o(e.tag)\n        }\n\n        function v(e, t) {\n            for (var n = 0; n < i.create.length; ++n) i.create[n](Ji, e);\n            o(l = e.data.hook) && (o(l.create) && l.create(Ji, e), o(l.insert) && t.push(e))\n        }\n\n        function b(e) {\n            var t;\n            if (o(t = e.fnScopeId)) a.setStyleScope(e.elm, t);\n            else\n                for (var i = e; i;) o(t = i.context) && o(t = t.$options._scopeId) && a.setStyleScope(e.elm, t), i = i.parent;\n            o(t = Ht) && t !== e.context && t !== e.fnContext && o(t = t.$options._scopeId) && a.setStyleScope(e.elm, t)\n        }\n\n        function _(e, t, i, n, r, o) {\n            for (; n <= r; ++n) h(i[n], o, e, t, !1, i, n)\n        }\n\n        function w(e) {\n            var t, n, r = e.data;\n            if (o(r))\n                for (o(t = r.hook) && o(t = t.destroy) && t(e), t = 0; t < i.destroy.length; ++t) i.destroy[t](e);\n            if (o(t = e.children))\n                for (n = 0; n < e.children.length; ++n) w(e.children[n])\n        }\n\n        function y(e, t, n) {\n            for (; t <= n; ++t) {\n                var r = e[t];\n                o(r) && (o(r.tag) ? (function e(t, n) {\n                    if (o(n) || o(t.data)) {\n                        var r, s = i.remove.length + 1;\n                        for (o(n) ? n.listeners += s : n = d(t.elm, s), o(r = t.componentInstance) && o(r = r._vnode) && o(r.data) && e(r, n), r = 0; r < i.remove.length; ++r) i.remove[r](t, n);\n                        o(r = t.data.hook) && o(r = r.remove) ? r(t, n) : n()\n                    } else c(t.elm)\n                }(r), w(r)) : c(r.elm))\n            }\n        }\n\n        function C(e, t, n, s, l, d) {\n            if (e !== t) {\n                var c = (t = o(t.elm) && o(s) ? s[l] = me(t) : t).elm = e.elm;\n                if (!0 !== e.isAsyncPlaceholder)\n                    if (!0 !== t.isStatic || !0 !== e.isStatic || t.key !== e.key || !0 !== t.isCloned && !0 !== t.isOnce) {\n                        var u, p = t.data;\n                        if (o(p) && o(u = p.hook) && o(u = u.prepatch) && u(e, t), s = e.children, l = t.children, o(p) && m(t)) {\n                            for (u = 0; u < i.update.length; ++u) i.update[u](e, t);\n                            o(u = p.hook) && o(u = u.update) && u(e, t)\n                        }\n                        r(t.text) ? o(s) && o(l) ? s !== l && function(e, t, i, n, s) {\n                            for (var l, d, c, u = 0, p = 0, g = t.length - 1, f = t[0], m = t[g], v = i.length - 1, b = i[0], w = i[v], x = !s; u <= g && p <= v;) r(f) ? f = t[++u] : r(m) ? m = t[--g] : tn(f, b) ? (C(f, b, n, i, p), f = t[++u], b = i[++p]) : tn(m, w) ? (C(m, w, n, i, v), m = t[--g], w = i[--v]) : tn(f, w) ? (C(f, w, n, i, v), x && a.insertBefore(e, f.elm, a.nextSibling(m.elm)), f = t[++u], w = i[--v]) : (tn(m, b) ? (C(m, b, n, i, p), x && a.insertBefore(e, m.elm, f.elm), m = t[--g]) : (r(l) && (l = function(e, t, i) {\n                                for (var n, r = {}, s = t; s <= i; ++s) o(n = e[s].key) && (r[n] = s);\n                                return r\n                            }(t, u, g)), !r(d = o(b.key) ? l[b.key] : function(e, t, i, n) {\n                                for (var r = i; r < n; r++) {\n                                    var s = t[r];\n                                    if (o(s) && tn(e, s)) return r\n                                }\n                            }(b, t, u, g)) && tn(c = t[d], b) ? (C(c, b, n, i, p), t[d] = void 0, x && a.insertBefore(e, c.elm, f.elm)) : h(b, n, e, f.elm, !1, i, p)), b = i[++p]);\n                            g < u ? _(e, r(i[v + 1]) ? null : i[v + 1].elm, i, p, v, n) : v < p && y(t, u, g)\n                        }(c, s, l, n, d) : o(l) ? (o(e.text) && a.setTextContent(c, \"\"), _(c, null, l, 0, l.length - 1, n)) : o(s) ? y(s, 0, s.length - 1) : o(e.text) && a.setTextContent(c, \"\") : e.text !== t.text && a.setTextContent(c, t.text), o(p) && o(u = p.hook) && o(u = u.postpatch) && u(e, t)\n                    } else t.componentInstance = e.componentInstance;\n                else o(t.asyncFactory.resolved) ? k(e.elm, t, n) : t.isAsyncPlaceholder = !0\n            }\n        }\n\n        function x(e, t, i) {\n            if (!0 === i && o(e.parent)) e.parent.data.pendingInsert = t;\n            else\n                for (var n = 0; n < t.length; ++n) t[n].data.hook.insert(t[n])\n        }\n        var S = g(\"attrs,class,staticClass,staticStyle,key\");\n\n        function k(e, t, i, n) {\n            var r, s = t.tag,\n                a = t.data,\n                l = t.children;\n            if (n = n || a && a.pre, t.elm = e, !0 === t.isComment && o(t.asyncFactory)) return t.isAsyncPlaceholder = !0;\n            if (o(a) && (o(r = a.hook) && o(r = r.init) && r(t, !0), o(r = t.componentInstance))) return u(t, i), 1;\n            if (o(s)) {\n                if (o(l))\n                    if (e.hasChildNodes())\n                        if (o(r = a) && o(r = r.domProps) && o(r = r.innerHTML)) {\n                            if (r !== e.innerHTML) return\n                        } else {\n                            for (var d = !0, c = e.firstChild, h = 0; h < l.length; h++) {\n                                if (!c || !k(c, l[h], i, n)) {\n                                    d = !1;\n                                    break\n                                }\n                                c = c.nextSibling\n                            }\n                            if (!d || c) return\n                        }\n                else f(t, l, i);\n                if (o(a)) {\n                    var p, g = !1;\n                    for (p in a)\n                        if (!S(p)) {\n                            g = !0, v(t, i);\n                            break\n                        }! g && a.class && et(a.class)\n                }\n            } else e.data !== t.text && (e.data = t.text);\n            return 1\n        }\n        return function(e, t, n, s) {\n            if (!r(t)) {\n                var l = !1,\n                    d = [];\n                if (r(e)) l = !0, h(t, d);\n                else {\n                    var c = o(e.nodeType);\n                    if (!c && tn(e, t)) C(e, t, d, null, null, s);\n                    else {\n                        if (c) {\n                            if (1 === e.nodeType && e.hasAttribute(R) && (e.removeAttribute(R), n = !0), !0 === n && k(e, t, d)) return x(t, d, !0), e;\n                            u = e, e = new pe(a.tagName(u).toLowerCase(), {}, [], void 0, u)\n                        }\n                        n = e.elm;\n                        var u = a.parentNode(n);\n                        if (h(t, d, n._leaveCb ? null : u, a.nextSibling(n)), o(t.parent))\n                            for (var p = t.parent, g = m(t); p;) {\n                                for (var f = 0; f < i.destroy.length; ++f) i.destroy[f](p);\n                                if (p.elm = t.elm, g) {\n                                    for (var v = 0; v < i.create.length; ++v) i.create[v](Ji, p);\n                                    var b = p.data.hook.insert;\n                                    if (b.merged)\n                                        for (var _ = 1; _ < b.fns.length; _++) b.fns[_]()\n                                } else Qi(p);\n                                p = p.parent\n                            }\n                        o(u) ? y([e], 0, 0) : o(e.tag) && w(e)\n                    }\n                }\n                return x(t, d, l), t.elm\n            }\n            o(e) && w(e)\n        }\n    }({\n        nodeOps: te,\n        modules: [Di, bn, j, Ge, Q, K ? {\n            create: Er,\n            activate: Er,\n            remove: function(e, t) {\n                !0 !== e.data.show ? kr(e, t) : t()\n            }\n        } : {}].concat(an)\n    }), Y && document.addEventListener(\"selectionchange\", (function() {\n        var e = document.activeElement;\n        e && e.vmodel && Rr(e, \"input\")\n    }));\n    var Nr = {\n        inserted: function(e, t, i, n) {\n            \"select\" === i.tag ? (n.elm && !n.elm._vOptions ? rt(i, \"postpatch\", (function() {\n                Nr.componentUpdated(e, t, i)\n            })) : Dr(e, t, i.context), e._vOptions = [].map.call(e.options, Mr)) : \"textarea\" !== i.tag && !Zi(e.type) || (e._vModifiers = t.modifiers, t.modifiers.lazy || (e.addEventListener(\"compositionstart\", Pr), e.addEventListener(\"compositionend\", Ar), e.addEventListener(\"change\", Ar), Y && (e.vmodel = !0)))\n        },\n        componentUpdated: function(e, t, i) {\n            var n, r;\n            \"select\" === i.tag && (Dr(e, t, i.context), n = e._vOptions, (r = e._vOptions = [].map.call(e.options, Mr)).some((function(e, t) {\n                return !M(e, n[t])\n            })) && (e.multiple ? t.value.some((function(e) {\n                return Tr(e, r)\n            })) : t.value !== t.oldValue && Tr(t.value, r)) && Rr(e, \"change\"))\n        }\n    };\n\n    function Dr(e, t, i) {\n        Ir(e, t), (G || Z) && setTimeout((function() {\n            Ir(e, t)\n        }), 0)\n    }\n\n    function Ir(e, t) {\n        var i = t.value,\n            n = e.multiple;\n        if (!n || Array.isArray(i)) {\n            for (var r, o, s = 0, a = e.options.length; s < a; s++)\n                if (o = e.options[s], n) r = -1 < P(i, Mr(o)), o.selected !== r && (o.selected = r);\n                else if (M(Mr(o), i)) return void(e.selectedIndex !== s && (e.selectedIndex = s));\n            n || (e.selectedIndex = -1)\n        }\n    }\n\n    function Tr(e, t) {\n        return t.every((function(t) {\n            return !M(t, e)\n        }))\n    }\n\n    function Mr(e) {\n        return \"_value\" in e ? e._value : e.value\n    }\n\n    function Pr(e) {\n        e.target.composing = !0\n    }\n\n    function Ar(e) {\n        e.target.composing && (e.target.composing = !1, Rr(e.target, \"input\"))\n    }\n\n    function Rr(e, t) {\n        var i = document.createEvent(\"HTMLEvents\");\n        i.initEvent(t, !0, !0), e.dispatchEvent(i)\n    }\n\n    function Fr(e) {\n        return !e.componentInstance || e.data && e.data.transition ? e : Fr(e.componentInstance._vnode)\n    }\n\n    function jr(e) {\n        var t = e && e.componentOptions;\n        return t && t.Ctor.options.abstract ? jr(jt(t.children)) : e\n    }\n\n    function Br(e) {\n        var t, i = {},\n            n = e.$options;\n        for (t in n.propsData) i[t] = e[t];\n        var r, o = n._parentListeners;\n        for (r in o) i[C(r)] = o[r];\n        return i\n    }\n\n    function Vr(e, t) {\n        if (/\\d-keep-alive$/.test(t.tag)) return e(\"keep-alive\", {\n            props: t.componentOptions.propsData\n        })\n    }\n\n    function Wr(e) {\n        return e.tag || ht(e)\n    }\n\n    function zr(e) {\n        return \"show\" === e.name\n    }\n\n    function Hr(e) {\n        e.elm._moveCb && e.elm._moveCb(), e.elm._enterCb && e.elm._enterCb()\n    }\n\n    function Ur(e) {\n        e.data.newPos = e.elm.getBoundingClientRect()\n    }\n\n    function Kr(e) {\n        var t = e.data.pos,\n            i = e.data.newPos,\n            n = t.left - i.left;\n        i = t.top - i.top;\n        (n || i) && (e.data.moved = !0, (e = e.elm.style).transform = e.WebkitTransform = \"translate(\" + n + \"px,\" + i + \"px)\", e.transitionDuration = \"0s\")\n    }\n    j = {\n        model: Nr,\n        show: {\n            bind: function(e, t, i) {\n                var n = t.value,\n                    r = (t = (i = Fr(i)).data && i.data.transition, e.__vOriginalDisplay = \"none\" === e.style.display ? \"\" : e.style.display);\n                n && t ? (i.data.show = !0, Sr(i, (function() {\n                    e.style.display = r\n                }))) : e.style.display = n ? r : \"none\"\n            },\n            update: function(e, t, i) {\n                var n = t.value;\n                !n != !t.oldValue && ((i = Fr(i)).data && i.data.transition ? (i.data.show = !0, n ? Sr(i, (function() {\n                    e.style.display = e.__vOriginalDisplay\n                })) : kr(i, (function() {\n                    e.style.display = \"none\"\n                }))) : e.style.display = n ? e.__vOriginalDisplay : \"none\")\n            },\n            unbind: function(e, t, i, n, r) {\n                r || (e.style.display = e.__vOriginalDisplay)\n            }\n        }\n    }, Q = {\n        name: \"transition\",\n        props: Ge = {\n            name: String,\n            appear: Boolean,\n            css: Boolean,\n            mode: String,\n            type: String,\n            enterClass: String,\n            leaveClass: String,\n            enterToClass: String,\n            leaveToClass: String,\n            enterActiveClass: String,\n            leaveActiveClass: String,\n            appearClass: String,\n            appearActiveClass: String,\n            appearToClass: String,\n            duration: [Number, String, Object]\n        },\n        abstract: !0,\n        render: function(e) {\n            var t = this,\n                i = this.$slots.default;\n            if (i && (i = i.filter(Wr)).length) {\n                var n = this.mode,\n                    r = i[0];\n                if (function(e) {\n                        for (; e = e.parent;)\n                            if (e.data.transition) return 1\n                    }(this.$vnode)) return r;\n                var o = jr(r);\n                if (!o) return r;\n                if (this._leaving) return Vr(e, r);\n                var a = \"__transition-\" + this._uid + \"-\";\n                o.key = null == o.key ? o.isComment ? a + \"comment\" : a + o.tag : s(o.key) && 0 !== String(o.key).indexOf(a) ? a + o.key : o.key;\n                var l = (o.data || (o.data = {})).transition = Br(this),\n                    d = jr(h = this._vnode);\n                if (o.data.directives && o.data.directives.some(zr) && (o.data.show = !0), d && d.data && (i = o, (a = d).key !== i.key || a.tag !== i.tag) && !ht(d) && (!d.componentInstance || !d.componentInstance._vnode.isComment)) {\n                    if (d = d.data.transition = E({}, l), \"out-in\" === n) return this._leaving = !0, rt(d, \"afterLeave\", (function() {\n                        t._leaving = !1, t.$forceUpdate()\n                    })), Vr(e, r);\n                    if (\"in-out\" === n) {\n                        if (ht(o)) return h;\n                        var c, h;\n                        rt(l, \"afterEnter\", h = function() {\n                            c()\n                        }), rt(l, \"enterCancelled\", h), rt(d, \"delayLeave\", (function(e) {\n                            c = e\n                        }))\n                    }\n                }\n                return r\n            }\n        }\n    }, delete(an = E({\n        tag: String,\n        moveClass: String\n    }, Ge)).mode, Ge = {\n        Transition: Q,\n        TransitionGroup: {\n            props: an,\n            beforeMount: function() {\n                var e = this,\n                    t = this._update;\n                this._update = function(i, n) {\n                    var r = Ut(e);\n                    e.__patch__(e._vnode, e.kept, !1, !0), e._vnode = e.kept, r(), t.call(e, i, n)\n                }\n            },\n            render: function(e) {\n                for (var t = this.tag || this.$vnode.data.tag || \"span\", i = Object.create(null), n = this.prevChildren = this.children, r = this.$slots.default || [], o = this.children = [], s = Br(this), a = 0; a < r.length; a++) {\n                    var l = r[a];\n                    l.tag && null != l.key && 0 !== String(l.key).indexOf(\"__vlist\") && (o.push(l), ((i[l.key] = l).data || (l.data = {})).transition = s)\n                }\n                if (n) {\n                    for (var d = [], c = [], h = 0; h < n.length; h++) {\n                        var u = n[h];\n                        u.data.transition = s, u.data.pos = u.elm.getBoundingClientRect(), (i[u.key] ? d : c).push(u)\n                    }\n                    this.kept = e(t, null, d), this.removed = c\n                }\n                return e(t, null, o)\n            },\n            updated: function() {\n                var e = this.prevChildren,\n                    t = this.moveClass || (this.name || \"v\") + \"-move\";\n                e.length && this.hasMove(e[0].elm, t) && (e.forEach(Hr), e.forEach(Ur), e.forEach(Kr), this._reflow = document.body.offsetHeight, e.forEach((function(e) {\n                    var i;\n                    e.data.moved && (e = (i = e.elm).style, vr(i, t), e.transform = e.WebkitTransform = e.transitionDuration = \"\", i.addEventListener(ur, i._moveCb = function e(n) {\n                        n && n.target !== i || n && !/transform$/.test(n.propertyName) || (i.removeEventListener(ur, e), i._moveCb = null, br(i, t))\n                    }))\n                })))\n            },\n            methods: {\n                hasMove: function(e, t) {\n                    if (!lr) return !1;\n                    if (this._hasMove) return this._hasMove;\n                    var i = e.cloneNode();\n                    return e._transitionClasses && e._transitionClasses.forEach((function(e) {\n                        or(i, e)\n                    })), rr(i, t), i.style.display = \"none\", this.$el.appendChild(i), t = yr(i), this.$el.removeChild(i), this._hasMove = t.hasTransform\n                }\n            }\n        }\n    }, Ci.config.mustUseProp = Mi, Ci.config.isReservedTag = Ui, Ci.config.isReservedAttr = q, Ci.config.getTagNamespace = Gi, Ci.config.isUnknownElement = function(e) {\n        if (!K) return !0;\n        if (Ui(e)) return !1;\n        if (e = e.toLowerCase(), null != Yi[e]) return Yi[e];\n        var t = document.createElement(e);\n        return -1 < e.indexOf(\"-\") ? Yi[e] = t.constructor === window.HTMLUnknownElement || t.constructor === window.HTMLElement : Yi[e] = /HTMLUnknownElement/.test(t.toString())\n    }, E(Ci.options.directives, j), E(Ci.options.components, Ge), Ci.prototype.__patch__ = K ? bn : D, Ci.prototype.$mount = function(e, t) {\n        return e = e = e && K ? Xi(e) : void 0, n = t, (i = this).$el = e, i.$options.render || (i.$options.render = ge), qt(i, \"beforeMount\"), e = function() {\n            i._update(i._render(), n)\n        }, new oi(i, e, D, {\n            before: function() {\n                i._isMounted && !i._isDestroyed && qt(i, \"beforeUpdate\")\n            }\n        }, !0), n = !1, null == i.$vnode && (i._isMounted = !0, qt(i, \"mounted\")), i;\n        var i, n\n    }, K && setTimeout((function() {\n        B.devtools && ne && ne.emit(\"init\", Ci)\n    }), 0);\n    var $r = /\\{\\{((?:.|\\r?\\n)+?)\\}\\}/g,\n        qr = /[-.*+?^${}()|[\\]\\/\\\\]/g,\n        Gr = w((function(e) {\n            var t = e[0].replace(qr, \"\\\\$&\");\n            e = e[1].replace(qr, \"\\\\$&\");\n            return new RegExp(t + \"((?:.|\\\\n)+?)\" + e, \"g\")\n        }));\n    Q = {\n        staticKeys: [\"staticClass\"],\n        transformNode: function(e, t) {\n            t.warn, (t = Nn(e, \"class\")) && (e.staticClass = JSON.stringify(t)), (t = En(e, \"class\", !1)) && (e.classBinding = t)\n        },\n        genData: function(e) {\n            var t = \"\";\n            return e.staticClass && (t += \"staticClass:\" + e.staticClass + \",\"), e.classBinding && (t += \"class:\" + e.classBinding + \",\"), t\n        }\n    };\n    an = {\n        staticKeys: [\"staticStyle\"],\n        transformNode: function(e, t) {\n            t.warn, (t = Nn(e, \"style\")) && (e.staticStyle = JSON.stringify(qn(t))), (t = En(e, \"style\", !1)) && (e.styleBinding = t)\n        },\n        genData: function(e) {\n            var t = \"\";\n            return e.staticStyle && (t += \"staticStyle:\" + e.staticStyle + \",\"), e.styleBinding && (t += \"style:(\" + e.styleBinding + \"),\"), t\n        }\n    }, q = function(e) {\n        return (Yr = Yr || document.createElement(\"div\")).innerHTML = e, Yr.textContent\n    }, j = g(\"area,base,br,col,embed,frame,hr,img,input,isindex,keygen,link,meta,param,source,track,wbr\"), Ge = g(\"colgroup,dd,dt,li,options,p,td,tfoot,th,thead,tr,source\");\n    var Yr, Zr = g(\"address,article,aside,base,blockquote,body,caption,col,colgroup,dd,details,dialog,div,dl,dt,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,head,header,hgroup,hr,html,legend,li,menuitem,meta,optgroup,option,param,rp,rt,source,style,summary,tbody,td,tfoot,th,thead,title,tr,track\"),\n        Xr = /^\\s*([^\\s\"'<>\\/=]+)(?:\\s*(=)\\s*(?:\"([^\"]*)\"+|'([^']*)'+|([^\\s\"'=<>`]+)))?/,\n        Qr = /^\\s*((?:v-[\\w-]+:|@|:|#)\\[[^=]+?\\][^\\s\"'<>\\/=]*)(?:\\s*(=)\\s*(?:\"([^\"]*)\"+|'([^']*)'+|([^\\s\"'=<>`]+)))?/,\n        Jr = (bn = \"((?:\" + (bn = \"[a-zA-Z_][\\\\-\\\\.0-9_a-zA-Z\" + V.source + \"]*\") + \"\\\\:)?\" + bn + \")\", new RegExp(\"^<\" + bn)),\n        eo = /^\\s*(\\/?)>/,\n        to = new RegExp(\"^<\\\\/\" + bn + \"[^>]*>\"),\n        io = /^<!DOCTYPE [^>]+>/i,\n        no = /^<!\\--/,\n        ro = /^<!\\[/,\n        oo = g(\"script,style,textarea\", !0),\n        so = {},\n        ao = {\n            \"&lt;\": \"<\",\n            \"&gt;\": \">\",\n            \"&quot;\": '\"',\n            \"&amp;\": \"&\",\n            \"&#10;\": \"\\n\",\n            \"&#9;\": \"\\t\",\n            \"&#39;\": \"'\"\n        },\n        lo = /&(?:lt|gt|quot|amp|#39);/g,\n        co = /&(?:lt|gt|quot|amp|#39|#10|#9);/g,\n        ho = g(\"pre,textarea\", !0),\n        uo = function(e, t) {\n            return e && ho(e) && \"\\n\" === t[0]\n        };\n    var po, go, fo, mo, vo, bo, _o, wo, yo = /^@|^v-on:/,\n        Co = /^v-|^@|^:|^#/,\n        xo = /([\\s\\S]*?)\\s+(?:in|of)\\s+([\\s\\S]*)/,\n        So = /,([^,\\}\\]]*)(?:,([^,\\}\\]]*))?$/,\n        ko = /^\\(|\\)$/g,\n        Lo = /^\\[.*\\]$/,\n        Oo = /:(.*)$/,\n        Eo = /^:|^\\.|^v-bind:/,\n        No = /\\.[^.\\]]+(?=[^\\]]*$)/g,\n        Do = /^v-slot(:|$)|^#/,\n        Io = /[\\r\\n]/,\n        To = /[ \\f\\t\\r\\n]+/g,\n        Mo = w(q),\n        Po = \"_empty_\";\n\n    function Ao(e, t, i) {\n        return {\n            type: 1,\n            tag: e,\n            attrsList: t,\n            attrsMap: function(e) {\n                for (var t = {}, i = 0, n = e.length; i < n; i++) t[e[i].name] = e[i].value;\n                return t\n            }(t),\n            rawAttrsMap: {},\n            parent: i,\n            children: []\n        }\n    }\n\n    function Ro(e, t) {\n        po = t.warn || yn, bo = t.isPreTag || I, _o = t.mustUseProp || I, wo = t.getTagNamespace || I;\n        t.isReservedTag;\n        fo = Cn(t.modules, \"transformNode\"), mo = Cn(t.modules, \"preTransformNode\"), vo = Cn(t.modules, \"postTransformNode\"), go = t.delimiters;\n        var i, n, r = [],\n            o = !1 !== t.preserveWhitespace,\n            s = t.whitespace,\n            a = !1,\n            l = !1;\n\n        function d(e) {\n            var o;\n            c(e), a || e.processed || (e = Fo(e, t)), r.length || e === i || i.if && (e.elseif || e.else) && Bo(i, {\n                exp: e.elseif,\n                block: e\n            }), n && !e.forbidden && (e.elseif || e.else ? function(e, t) {\n                (t = function(e) {\n                    for (var t = e.length; t--;) {\n                        if (1 === e[t].type) return e[t];\n                        e.pop()\n                    }\n                }(t.children)) && t.if && Bo(t, {\n                    exp: e.elseif,\n                    block: e\n                })\n            }(e, n) : (e.slotScope && (o = e.slotTarget || '\"default\"', (n.scopedSlots || (n.scopedSlots = {}))[o] = e), n.children.push(e), e.parent = n)), e.children = e.children.filter((function(e) {\n                return !e.slotScope\n            })), c(e), e.pre && (a = !1), bo(e.tag) && (l = !1);\n            for (var s = 0; s < vo.length; s++) vo[s](e, t)\n        }\n\n        function c(e) {\n            if (!l)\n                for (var t;\n                    (t = e.children[e.children.length - 1]) && 3 === t.type && \" \" === t.text;) e.children.pop()\n        }\n        return function(e, t) {\n            for (var i, n, r = [], o = t.expectHTML, s = t.isUnaryTag || I, a = t.canBeLeftOpenTag || I, l = 0; e;) {\n                if (i = e, n && oo(n)) {\n                    var d = 0,\n                        c = n.toLowerCase(),\n                        h = so[c] || (so[c] = new RegExp(\"([\\\\s\\\\S]*?)(</\" + c + \"[^>]*>)\", \"i\"));\n                    h = e.replace(h, (function(e, i, n) {\n                        return d = n.length, oo(c) || \"noscript\" === c || (i = i.replace(/<!\\--([\\s\\S]*?)-->/g, \"$1\").replace(/<!\\[CDATA\\[([\\s\\S]*?)]]>/g, \"$1\")), uo(c, i) && (i = i.slice(1)), t.chars && t.chars(i), \"\"\n                    }));\n                    l += e.length - h.length, e = h, b(c, l - d, l)\n                } else {\n                    var u = e.indexOf(\"<\");\n                    if (0 === u) {\n                        if (no.test(e) && 0 <= (h = e.indexOf(\"--\\x3e\"))) {\n                            t.shouldKeepComment && t.comment(e.substring(4, h), l, l + h + 3), v(h + 3);\n                            continue\n                        }\n                        if (ro.test(e)) {\n                            var p = e.indexOf(\"]>\");\n                            if (0 <= p) {\n                                v(p + 2);\n                                continue\n                            }\n                        }\n                        if (p = e.match(io)) {\n                            v(p[0].length);\n                            continue\n                        }\n                        if (p = e.match(to)) {\n                            var g = l;\n                            v(p[0].length), b(p[1], g, l);\n                            continue\n                        }\n                        if (g = function() {\n                                var t, i, n = e.match(Jr);\n                                if (n) {\n                                    var r = {\n                                        tagName: n[1],\n                                        attrs: [],\n                                        start: l\n                                    };\n                                    for (v(n[0].length); !(t = e.match(eo)) && (i = e.match(Qr) || e.match(Xr));) i.start = l, v(i[0].length), i.end = l, r.attrs.push(i);\n                                    if (t) return r.unarySlash = t[1], v(t[0].length), r.end = l, r\n                                }\n                            }()) {\n                            ! function(e) {\n                                var i = e.tagName,\n                                    l = e.unarySlash;\n                                o && (\"p\" === n && Zr(i) && b(n), a(i) && n === i && b(i));\n                                l = s(i) || !!l;\n                                for (var d = e.attrs.length, c = new Array(d), h = 0; h < d; h++) {\n                                    var u = e.attrs[h],\n                                        p = u[3] || u[4] || u[5] || \"\",\n                                        g = \"a\" === i && \"href\" === u[1] ? t.shouldDecodeNewlinesForHref : t.shouldDecodeNewlines;\n                                    c[h] = {\n                                        name: u[1],\n                                        value: function(e, t) {\n                                            return e.replace(t ? co : lo, (function(e) {\n                                                return ao[e]\n                                            }))\n                                        }(p, g)\n                                    }\n                                }\n                                l || (r.push({\n                                    tag: i,\n                                    lowerCasedTag: i.toLowerCase(),\n                                    attrs: c,\n                                    start: e.start,\n                                    end: e.end\n                                }), n = i), t.start && t.start(i, c, l, e.start, e.end)\n                            }(g), uo(g.tagName, e) && v(1);\n                            continue\n                        }\n                    }\n                    g = void 0;\n                    var f, m = void 0;\n                    if (0 <= u) {\n                        for (m = e.slice(u); !(to.test(m) || Jr.test(m) || no.test(m) || ro.test(m) || (f = m.indexOf(\"<\", 1)) < 0);) u += f, m = e.slice(u);\n                        g = e.substring(0, u)\n                    }(g = u < 0 ? e : g) && v(g.length), t.chars && g && t.chars(g, l - g.length, l)\n                }\n                if (e === i) {\n                    t.chars && t.chars(e);\n                    break\n                }\n            }\n\n            function v(t) {\n                l += t, e = e.substring(t)\n            }\n\n            function b(e, i, o) {\n                var s, a;\n                if (null == i && (i = l), null == o && (o = l), e)\n                    for (a = e.toLowerCase(), s = r.length - 1; 0 <= s && r[s].lowerCasedTag !== a; s--);\n                else s = 0;\n                if (0 <= s) {\n                    for (var d = r.length - 1; s <= d; d--) t.end && t.end(r[d].tag, i, o);\n                    r.length = s, n = s && r[s - 1].tag\n                } else \"br\" === a ? t.start && t.start(e, [], !0, i, o) : \"p\" === a && (t.start && t.start(e, [], !1, i, o), t.end && t.end(e, i, o))\n            }\n            b()\n        }(e, {\n            warn: po,\n            expectHTML: t.expectHTML,\n            isUnaryTag: t.isUnaryTag,\n            canBeLeftOpenTag: t.canBeLeftOpenTag,\n            shouldDecodeNewlines: t.shouldDecodeNewlines,\n            shouldDecodeNewlinesForHref: t.shouldDecodeNewlinesForHref,\n            shouldKeepComment: t.comments,\n            outputSourceRange: t.outputSourceRange,\n            start: function(e, o, s, c, h) {\n                var u = n && n.ns || wo(e),\n                    p = Ao(e, o = G && \"svg\" === u ? function(e) {\n                        for (var t = [], i = 0; i < e.length; i++) {\n                            var n = e[i];\n                            Wo.test(n.name) || (n.name = n.name.replace(zo, \"\"), t.push(n))\n                        }\n                        return t\n                    }(o) : o, n);\n                u && (p.ns = u), \"style\" !== (u = p).tag && (\"script\" !== u.tag || u.attrsMap.type && \"text/javascript\" !== u.attrsMap.type) || ie() || (p.forbidden = !0);\n                for (var g, f = 0; f < mo.length; f++) p = mo[f](p, t) || p;\n                a || (null != Nn(g = p, \"v-pre\") && (g.pre = !0), p.pre && (a = !0)), bo(p.tag) && (l = !0), a ? function(e) {\n                    var t = e.attrsList,\n                        i = t.length;\n                    if (i)\n                        for (var n = e.attrs = new Array(i), r = 0; r < i; r++) n[r] = {\n                            name: t[r].name,\n                            value: JSON.stringify(t[r].value)\n                        }, null != t[r].start && (n[r].start = t[r].start, n[r].end = t[r].end);\n                    else e.pre || (e.plain = !0)\n                }(p) : p.processed || (jo(p), (g = Nn(u = p, \"v-if\")) ? (u.if = g, Bo(u, {\n                    exp: g,\n                    block: u\n                })) : (null != Nn(u, \"v-else\") && (u.else = !0), (g = Nn(u, \"v-else-if\")) && (u.elseif = g)), null != Nn(g = p, \"v-once\") && (g.once = !0)), i = i || p, s ? d(p) : (n = p, r.push(p))\n            },\n            end: function(e, t, i) {\n                var o = r[r.length - 1];\n                --r.length, n = r[r.length - 1], d(o)\n            },\n            chars: function(e, t, i) {\n                var r, d, c, h;\n                n && (G && \"textarea\" === n.tag && n.attrsMap.placeholder === e || (r = n.children, (e = l || e.trim() ? \"script\" === (d = n).tag || \"style\" === d.tag ? e : Mo(e) : r.length ? s ? \"condense\" === s && Io.test(e) ? \"\" : \" \" : o ? \" \" : \"\" : \"\") && (l || \"condense\" !== s || (e = e.replace(To, \" \")), !a && \" \" !== e && (c = function(e, t) {\n                    var i = t ? Gr(t) : $r;\n                    if (i.test(e)) {\n                        for (var n, r, o, s = [], a = [], l = i.lastIndex = 0; n = i.exec(e);) {\n                            l < (r = n.index) && (a.push(o = e.slice(l, r)), s.push(JSON.stringify(o)));\n                            var d = wn(n[1].trim());\n                            s.push(\"_s(\" + d + \")\"), a.push({\n                                \"@binding\": d\n                            }), l = r + n[0].length\n                        }\n                        return l < e.length && (a.push(o = e.slice(l)), s.push(JSON.stringify(o))), {\n                            expression: s.join(\"+\"),\n                            tokens: a\n                        }\n                    }\n                }(e, go)) ? h = {\n                    type: 2,\n                    expression: c.expression,\n                    tokens: c.tokens,\n                    text: e\n                } : \" \" === e && r.length && \" \" === r[r.length - 1].text || (h = {\n                    type: 3,\n                    text: e\n                }), h && r.push(h))))\n            },\n            comment: function(e, t, i) {\n                n && n.children.push({\n                    type: 3,\n                    text: e,\n                    isComment: !0\n                })\n            }\n        }), i\n    }\n\n    function Fo(e, t) {\n        var i, n;\n        (i = En(n = e, \"key\")) && (n.key = i), e.plain = !e.key && !e.scopedSlots && !e.attrsList.length, (i = En(n = e, \"ref\")) && (n.ref = i, n.refInFor = function(e) {\n                for (var t = e; t;) {\n                    if (void 0 !== t.for) return !0;\n                    t = t.parent\n                }\n                return !1\n            }(n)),\n            function(e) {\n                \"template\" === e.tag ? (s = Nn(e, \"scope\"), e.slotScope = s || Nn(e, \"slot-scope\")) : (s = Nn(e, \"slot-scope\")) && (e.slotScope = s);\n                var t, i, n, r, o, s = En(e, \"slot\");\n                s && (e.slotTarget = '\"\"' === s ? '\"default\"' : s, e.slotTargetDynamic = !(!e.attrsMap[\":slot\"] && !e.attrsMap[\"v-bind:slot\"]), \"template\" === e.tag || e.slotScope || Sn(e, \"slot\", s, function(e, t) {\n                    return e.rawAttrsMap[\":\" + t] || e.rawAttrsMap[\"v-bind:\" + t] || e.rawAttrsMap[t]\n                }(e, \"slot\"))), \"template\" === e.tag ? (n = Dn(e, Do)) && (i = (t = Vo(n)).name, r = t.dynamic, e.slotTarget = i, e.slotTargetDynamic = r, e.slotScope = n.value || Po) : (t = Dn(e, Do)) && (i = e.scopedSlots || (e.scopedSlots = {}), n = (r = Vo(t)).name, r = r.dynamic, (o = i[n] = Ao(\"template\", [], e)).slotTarget = n, o.slotTargetDynamic = r, o.children = e.children.filter((function(e) {\n                    if (!e.slotScope) return e.parent = o, !0\n                })), o.slotScope = t.value || Po, e.children = [], e.plain = !1)\n            }(e), \"slot\" === (n = e).tag && (n.slotName = En(n, \"name\")),\n            function(e) {\n                var t;\n                (t = En(e, \"is\")) && (e.component = t), null != Nn(e, \"inline-template\") && (e.inlineTemplate = !0)\n            }(e);\n        for (var r = 0; r < fo.length; r++) e = fo[r](e, t) || e;\n        return function(e) {\n            var t, i, n, r, o, s, a, l = e.attrsList;\n            for (t = 0, i = l.length; t < i; t++) {\n                var d;\n                n = r = l[t].name, o = l[t].value, Co.test(n) ? (e.hasBindings = !0, (s = function(e) {\n                    if (e = e.match(No)) {\n                        var t = {};\n                        return e.forEach((function(e) {\n                            t[e.slice(1)] = !0\n                        })), t\n                    }\n                }(n.replace(Co, \"\"))) && (n = n.replace(No, \"\")), Eo.test(n) ? (n = n.replace(Eo, \"\"), o = wn(o), (a = Lo.test(n)) && (n = n.slice(1, -1)), s && (s.prop && !a && \"innerHtml\" === (n = C(n)) && (n = \"innerHTML\"), s.camel && !a && (n = C(n)), s.sync && (d = Mn(o, \"$event\"), a ? On(e, '\"update:\"+(' + n + \")\", d, null, !1, 0, l[t], !0) : (On(e, \"update:\" + C(n), d, null, !1, 0, l[t]), k(n) !== C(n) && On(e, \"update:\" + k(n), d, null, !1, 0, l[t])))), (s && s.prop || !e.component && _o(e.tag, e.attrsMap.type, n) ? xn : Sn)(e, n, o, l[t], a)) : yo.test(n) ? (n = n.replace(yo, \"\"), (a = Lo.test(n)) && (n = n.slice(1, -1)), On(e, n, o, s, !1, 0, l[t], a)) : (a = !1, (d = (d = (n = n.replace(Co, \"\")).match(Oo)) && d[1]) && (n = n.slice(0, -(d.length + 1)), Lo.test(d) && (d = d.slice(1, -1), a = !0)), function(e, t, i, n, r, o, s, a) {\n                    (e.directives || (e.directives = [])).push(In({\n                        name: t,\n                        rawName: i,\n                        value: n,\n                        arg: r,\n                        isDynamicArg: o,\n                        modifiers: s\n                    }, a)), e.plain = !1\n                }(e, n, r, o, d, a, s, l[t]))) : (Sn(e, n, JSON.stringify(o), l[t]), !e.component && \"muted\" === n && _o(e.tag, e.attrsMap.type, n) && xn(e, n, \"true\", l[t]))\n            }\n        }(e), e\n    }\n\n    function jo(e) {\n        var t;\n        !(t = Nn(e, \"v-for\")) || (t = function(e) {\n            var t = e.match(xo);\n            if (t) {\n                var i = {};\n                return i.for = t[2].trim(), e = t[1].trim().replace(ko, \"\"), (t = e.match(So)) ? (i.alias = e.replace(So, \"\").trim(), i.iterator1 = t[1].trim(), t[2] && (i.iterator2 = t[2].trim())) : i.alias = e, i\n            }\n        }(t)) && E(e, t)\n    }\n\n    function Bo(e, t) {\n        e.ifConditions || (e.ifConditions = []), e.ifConditions.push(t)\n    }\n\n    function Vo(e) {\n        var t = e.name.replace(Do, \"\");\n        return t || \"#\" !== e.name[0] && (t = \"default\"), Lo.test(t) ? {\n            name: t.slice(1, -1),\n            dynamic: !0\n        } : {\n            name: '\"' + t + '\"',\n            dynamic: !1\n        }\n    }\n    var Wo = /^xmlns:NS\\d+/,\n        zo = /^NS\\d+:/;\n\n    function Ho(e) {\n        return Ao(e.tag, e.attrsList.slice(), e.parent)\n    }\n    var Uo, Ko, $o = [Q, an, {\n            preTransformNode: function(e, t) {\n                if (\"input\" === e.tag) {\n                    var i, n = e.attrsMap;\n                    if (n[\"v-model\"] && ((n[\":type\"] || n[\"v-bind:type\"]) && (i = En(e, \"type\")), i = n.type || i || !n[\"v-bind\"] ? i : \"(\" + n[\"v-bind\"] + \").type\")) {\n                        var r = Nn(e, \"v-if\", !0),\n                            o = r ? \"&&(\" + r + \")\" : \"\",\n                            s = null != Nn(e, \"v-else\", !0),\n                            a = Nn(e, \"v-else-if\", !0),\n                            l = Ho(e);\n                        return jo(l), kn(l, \"type\", \"checkbox\"), Fo(l, t), l.processed = !0, l.if = \"(\" + i + \")==='checkbox'\" + o, Bo(l, {\n                            exp: l.if,\n                            block: l\n                        }), Nn(n = Ho(e), \"v-for\", !0), kn(n, \"type\", \"radio\"), Fo(n, t), Bo(l, {\n                            exp: \"(\" + i + \")==='radio'\" + o,\n                            block: n\n                        }), Nn(e = Ho(e), \"v-for\", !0), kn(e, \":type\", i), Fo(e, t), Bo(l, {\n                            exp: r,\n                            block: e\n                        }), s ? l.else = !0 : a && (l.elseif = a), l\n                    }\n                }\n            }\n        }],\n        qo = (Ge = {\n            expectHTML: !0,\n            modules: $o,\n            directives: {\n                model: function(e, t, i) {\n                    var n, r, o, s, a = t.value,\n                        l = t.modifiers,\n                        d = e.tag,\n                        c = e.attrsMap.type;\n                    if (e.component) return Tn(e, a, l), !1;\n                    if (\"select\" === d) ! function(e, t, i) {\n                        On(e, \"change\", i = (i = 'var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return ' + ((i = i && i.number) ? \"_n(val)\" : \"val\") + \"});\") + \" \" + Mn(t, \"$event.target.multiple ? $$selectedVal : $$selectedVal[0]\"), null, !0)\n                    }(e, a, l);\n                    else if (\"input\" === d && \"checkbox\" === c) n = e, r = a, o = (i = l) && i.number, s = En(n, \"value\") || \"null\", t = En(n, \"true-value\") || \"true\", i = En(n, \"false-value\") || \"false\", xn(n, \"checked\", \"Array.isArray(\" + r + \")?_i(\" + r + \",\" + s + \")>-1\" + (\"true\" === t ? \":(\" + r + \")\" : \":_q(\" + r + \",\" + t + \")\")), On(n, \"change\", \"var $$a=\" + r + \",$$el=$event.target,$$c=$$el.checked?(\" + t + \"):(\" + i + \");if(Array.isArray($$a)){var $$v=\" + (o ? \"_n(\" + s + \")\" : s) + \",$$i=_i($$a,$$v);if($$el.checked){$$i<0&&(\" + Mn(r, \"$$a.concat([$$v])\") + \")}else{$$i>-1&&(\" + Mn(r, \"$$a.slice(0,$$i).concat($$a.slice($$i+1))\") + \")}}else{\" + Mn(r, \"$$c\") + \"}\", null, !0);\n                    else if (\"input\" === d && \"radio\" === c) o = e, s = a, c = (r = l) && r.number, r = En(o, \"value\") || \"null\", xn(o, \"checked\", \"_q(\" + s + \",\" + (r = c ? \"_n(\" + r + \")\" : r) + \")\"), On(o, \"change\", Mn(s, r), null, !0);\n                    else if (\"input\" === d || \"textarea\" === d) ! function(e, t, i) {\n                        var n = e.attrsMap.type,\n                            r = (s = i || {}).lazy,\n                            o = s.number,\n                            s = (i = s.trim, !r && \"range\" !== n);\n                        r = r ? \"change\" : \"range\" === n ? Bn : \"input\", n = \"$event.target.value\";\n                        i && (n = \"$event.target.value.trim()\"), o && (n = \"_n(\" + n + \")\"), n = Mn(t, n), s && (n = \"if($event.target.composing)return;\" + n), xn(e, \"value\", \"(\" + t + \")\"), On(e, r, n, null, !0), (i || o) && On(e, \"blur\", \"$forceUpdate()\")\n                    }(e, a, l);\n                    else if (!B.isReservedTag(d)) return Tn(e, a, l), !1;\n                    return !0\n                },\n                text: function(e, t) {\n                    t.value && xn(e, \"textContent\", \"_s(\" + t.value + \")\", t)\n                },\n                html: function(e, t) {\n                    t.value && xn(e, \"innerHTML\", \"_s(\" + t.value + \")\", t)\n                }\n            },\n            isPreTag: function(e) {\n                return \"pre\" === e\n            },\n            isUnaryTag: j,\n            mustUseProp: Mi,\n            canBeLeftOpenTag: Ge,\n            isReservedTag: Ui,\n            getTagNamespace: Gi,\n            staticKeys: $o.reduce((function(e, t) {\n                return e.concat(t.staticKeys || [])\n            }), []).join(\",\")\n        }, w((function(e) {\n            return g(\"type,tag,attrsList,attrsMap,plain,parent,children,attrs,start,end,rawAttrsMap\" + (e ? \",\" + e : \"\"))\n        })));\n\n    function Go(e) {\n        return 2 !== e.type && (3 === e.type || !(!e.pre && (e.hasBindings || e.if || e.for || f(e.tag) || !Ko(e.tag) || function(e) {\n            for (; e.parent;) {\n                if (\"template\" !== (e = e.parent).tag) return !1;\n                if (e.for) return !0\n            }\n            return !1\n        }(e) || !Object.keys(e).every(Uo))))\n    }\n    var Yo = /^([\\w$_]+|\\([^)]*?\\))\\s*=>|^function(?:\\s+[\\w$]+)?\\s*\\(/,\n        Zo = /\\([^)]*?\\);*$/,\n        Xo = /^[A-Za-z_$][\\w$]*(?:\\.[A-Za-z_$][\\w$]*|\\['[^']*?']|\\[\"[^\"]*?\"]|\\[\\d+]|\\[[A-Za-z_$][\\w$]*])*$/,\n        Qo = {\n            esc: 27,\n            tab: 9,\n            enter: 13,\n            space: 32,\n            up: 38,\n            left: 37,\n            right: 39,\n            down: 40,\n            delete: [8, 46]\n        },\n        Jo = {\n            esc: [\"Esc\", \"Escape\"],\n            tab: \"Tab\",\n            enter: \"Enter\",\n            space: [\" \", \"Spacebar\"],\n            up: [\"Up\", \"ArrowUp\"],\n            left: [\"Left\", \"ArrowLeft\"],\n            right: [\"Right\", \"ArrowRight\"],\n            down: [\"Down\", \"ArrowDown\"],\n            delete: [\"Backspace\", \"Delete\", \"Del\"]\n        },\n        es = function(e) {\n            return \"if(\" + e + \")return null;\"\n        },\n        ts = {\n            stop: \"$event.stopPropagation();\",\n            prevent: \"$event.preventDefault();\",\n            self: es(\"$event.target !== $event.currentTarget\"),\n            ctrl: es(\"!$event.ctrlKey\"),\n            shift: es(\"!$event.shiftKey\"),\n            alt: es(\"!$event.altKey\"),\n            meta: es(\"!$event.metaKey\"),\n            left: es(\"'button' in $event && $event.button !== 0\"),\n            middle: es(\"'button' in $event && $event.button !== 1\"),\n            right: es(\"'button' in $event && $event.button !== 2\")\n        };\n\n    function is(e, t) {\n        t = t ? \"nativeOn:\" : \"on:\";\n        var i, n = \"\",\n            r = \"\";\n        for (i in e) {\n            var o = function e(t) {\n                if (!t) return \"function(){}\";\n                if (Array.isArray(t)) return \"[\" + t.map((function(t) {\n                    return e(t)\n                })).join(\",\") + \"]\";\n                var i = Xo.test(t.value),\n                    n = Yo.test(t.value),\n                    r = Xo.test(t.value.replace(Zo, \"\"));\n                if (t.modifiers) {\n                    var o, s, a = \"\",\n                        l = \"\",\n                        d = [];\n                    for (o in t.modifiers) ts[o] ? (l += ts[o], Qo[o] && d.push(o)) : \"exact\" === o ? (s = t.modifiers, l += es([\"ctrl\", \"shift\", \"alt\", \"meta\"].filter((function(e) {\n                        return !s[e]\n                    })).map((function(e) {\n                        return \"$event.\" + e + \"Key\"\n                    })).join(\"||\"))) : d.push(o);\n                    return d.length && (a += ns(d)), l && (a += l), \"function($event){\" + a + (i ? \"return \" + t.value + \".apply(null, arguments)\" : n ? \"return (\" + t.value + \").apply(null, arguments)\" : r ? \"return \" + t.value : t.value) + \"}\"\n                }\n                return i || n ? t.value : \"function($event){\" + (r ? \"return \" + t.value : t.value) + \"}\"\n            }(e[i]);\n            e[i] && e[i].dynamic ? r += i + \",\" + o + \",\" : n += '\"' + i + '\":' + o + \",\"\n        }\n        return n = \"{\" + n.slice(0, -1) + \"}\", r ? t + \"_d(\" + n + \",[\" + r.slice(0, -1) + \"])\" : t + n\n    }\n\n    function ns(e) {\n        return \"if(!$event.type.indexOf('key')&&\" + e.map(rs).join(\"&&\") + \")return null;\"\n    }\n\n    function rs(e) {\n        if (i = parseInt(e, 10)) return \"$event.keyCode!==\" + i;\n        var t = Qo[e],\n            i = Jo[e];\n        return \"_k($event.keyCode,\" + JSON.stringify(e) + \",\" + JSON.stringify(t) + \",$event.key,\" + JSON.stringify(i) + \")\"\n    }\n    var os = {\n            on: function(e, t) {\n                e.wrapListeners = function(e) {\n                    return \"_g(\" + e + \",\" + t.value + \")\"\n                }\n            },\n            bind: function(e, t) {\n                e.wrapData = function(i) {\n                    return \"_b(\" + i + \",'\" + e.tag + \"',\" + t.value + \",\" + (t.modifiers && t.modifiers.prop ? \"true\" : \"false\") + (t.modifiers && t.modifiers.sync ? \",true\" : \"\") + \")\"\n                }\n            },\n            cloak: D\n        },\n        ss = function(e) {\n            this.options = e, this.warn = e.warn || yn, this.transforms = Cn(e.modules, \"transformCode\"), this.dataGenFns = Cn(e.modules, \"genData\"), this.directives = E(E({}, os), e.directives);\n            var t = e.isReservedTag || I;\n            this.maybeComponent = function(e) {\n                return !!e.component || !t(e.tag)\n            }, this.onceId = 0, this.staticRenderFns = [], this.pre = !1\n        };\n\n    function as(e, t) {\n        return t = new ss(t), {\n            render: \"with(this){return \" + (e ? \"script\" === e.tag ? \"null\" : ls(e, t) : '_c(\"div\")') + \"}\",\n            staticRenderFns: t.staticRenderFns\n        }\n    }\n\n    function ls(e, t) {\n        if (e.parent && (e.pre = e.pre || e.parent.pre), e.staticRoot && !e.staticProcessed) return ds(e, t);\n        if (e.once && !e.onceProcessed) return cs(e, t);\n        if (e.for && !e.forProcessed) return us(e, t);\n        if (e.if && !e.ifProcessed) return hs(e, t);\n        if (\"template\" !== e.tag || e.slotTarget || t.pre) {\n            if (\"slot\" === e.tag) return function(e, t) {\n                var i = e.slotName || '\"default\"',\n                    n = ms(e, t);\n                t = \"_t(\" + i + (n ? \",function(){return \" + n + \"}\" : \"\"), i = e.attrs || e.dynamicAttrs ? _s((e.attrs || []).concat(e.dynamicAttrs || []).map((function(e) {\n                    return {\n                        name: C(e.name),\n                        value: e.value,\n                        dynamic: e.dynamic\n                    }\n                }))) : null, e = e.attrsMap[\"v-bind\"];\n                return !i && !e || n || (t += \",null\"), i && (t += \",\" + i), e && (t += (i ? \"\" : \",null\") + \",\" + e), t + \")\"\n            }(e, t);\n            var i, n;\n            n = e.component ? (o = e.component, a = t, l = (s = e).inlineTemplate ? null : ms(s, a, !0), \"_c(\" + o + \",\" + ps(s, a) + (l ? \",\" + l : \"\") + \")\") : ((!e.plain || e.pre && t.maybeComponent(e)) && (i = ps(e, t)), l = e.inlineTemplate ? null : ms(e, t, !0), \"_c('\" + e.tag + \"'\" + (i ? \",\" + i : \"\") + (l ? \",\" + l : \"\") + \")\");\n            for (var r = 0; r < t.transforms.length; r++) n = t.transforms[r](e, n);\n            return n\n        }\n        return ms(e, t) || \"void 0\";\n        var o, s, a, l\n    }\n\n    function ds(e, t) {\n        e.staticProcessed = !0;\n        var i = t.pre;\n        return e.pre && (t.pre = e.pre), t.staticRenderFns.push(\"with(this){return \" + ls(e, t) + \"}\"), t.pre = i, \"_m(\" + (t.staticRenderFns.length - 1) + (e.staticInFor ? \",true\" : \"\") + \")\"\n    }\n\n    function cs(e, t) {\n        if (e.onceProcessed = !0, e.if && !e.ifProcessed) return hs(e, t);\n        if (e.staticInFor) {\n            for (var i = \"\", n = e.parent; n;) {\n                if (n.for) {\n                    i = n.key;\n                    break\n                }\n                n = n.parent\n            }\n            return i ? \"_o(\" + ls(e, t) + \",\" + t.onceId++ + \",\" + i + \")\" : ls(e, t)\n        }\n        return ds(e, t)\n    }\n\n    function hs(e, t, i, n) {\n        return e.ifProcessed = !0,\n            function e(t, i, n, r) {\n                if (!t.length) return r || \"_e()\";\n                var o = t.shift();\n                return o.exp ? \"(\" + o.exp + \")?\" + s(o.block) + \":\" + e(t, i, n, r) : \"\" + s(o.block);\n\n                function s(e) {\n                    return (n || (e.once ? cs : ls))(e, i)\n                }\n            }(e.ifConditions.slice(), t, i, n)\n    }\n\n    function us(e, t, i, n) {\n        var r = e.for,\n            o = e.alias,\n            s = e.iterator1 ? \",\" + e.iterator1 : \"\",\n            a = e.iterator2 ? \",\" + e.iterator2 : \"\";\n        return e.forProcessed = !0, (n || \"_l\") + \"((\" + r + \"),function(\" + o + s + a + \"){return \" + (i || ls)(e, t) + \"})\"\n    }\n\n    function ps(e, t) {\n        var i = \"{\",\n            n = function(e, t) {\n                var i = e.directives;\n                if (i) {\n                    var n, r, o, s, a = \"directives:[\",\n                        l = !1;\n                    for (n = 0, r = i.length; n < r; n++) {\n                        o = i[n], s = !0;\n                        var d = t.directives[o.name];\n                        (s = d ? !!d(e, o, t.warn) : s) && (l = !0, a += '{name:\"' + o.name + '\",rawName:\"' + o.rawName + '\"' + (o.value ? \",value:(\" + o.value + \"),expression:\" + JSON.stringify(o.value) : \"\") + (o.arg ? \",arg:\" + (o.isDynamicArg ? o.arg : '\"' + o.arg + '\"') : \"\") + (o.modifiers ? \",modifiers:\" + JSON.stringify(o.modifiers) : \"\") + \"},\")\n                    }\n                    if (l) return a.slice(0, -1) + \"]\"\n                }\n            }(e, t);\n        n && (i += n + \",\"), e.key && (i += \"key:\" + e.key + \",\"), e.ref && (i += \"ref:\" + e.ref + \",\"), e.refInFor && (i += \"refInFor:true,\"), e.pre && (i += \"pre:true,\"), e.component && (i += 'tag:\"' + e.tag + '\",');\n        for (var r = 0; r < t.dataGenFns.length; r++) i += t.dataGenFns[r](e);\n        return e.attrs && (i += \"attrs:\" + _s(e.attrs) + \",\"), e.props && (i += \"domProps:\" + _s(e.props) + \",\"), e.events && (i += is(e.events, !1) + \",\"), e.nativeEvents && (i += is(e.nativeEvents, !0) + \",\"), e.slotTarget && !e.slotScope && (i += \"slot:\" + e.slotTarget + \",\"), e.scopedSlots && (i += function(e, t, i) {\n            var n = e.for || Object.keys(t).some((function(e) {\n                    return (e = t[e]).slotTargetDynamic || e.if || e.for || gs(e)\n                })),\n                r = !!e.if;\n            if (!n)\n                for (var o = e.parent; o;) {\n                    if (o.slotScope && o.slotScope !== Po || o.for) {\n                        n = !0;\n                        break\n                    }\n                    o.if && (r = !0), o = o.parent\n                }\n            return \"scopedSlots:_u([\" + (e = Object.keys(t).map((function(e) {\n                return fs(t[e], i)\n            })).join(\",\")) + \"]\" + (n ? \",null,true\" : \"\") + (!n && r ? \",null,false,\" + function(e) {\n                for (var t = 5381, i = e.length; i;) t = 33 * t ^ e.charCodeAt(--i);\n                return t >>> 0\n            }(e) : \"\") + \")\"\n        }(e, e.scopedSlots, t) + \",\"), e.model && (i += \"model:{value:\" + e.model.value + \",callback:\" + e.model.callback + \",expression:\" + e.model.expression + \"},\"), !e.inlineTemplate || (n = function(e, t) {\n            if ((e = e.children[0]) && 1 === e.type) return \"inlineTemplate:{render:function(){\" + (t = as(e, t.options)).render + \"},staticRenderFns:[\" + t.staticRenderFns.map((function(e) {\n                return \"function(){\" + e + \"}\"\n            })).join(\",\") + \"]}\"\n        }(e, t)) && (i += n + \",\"), i = i.replace(/,$/, \"\") + \"}\", e.dynamicAttrs && (i = \"_b(\" + i + ',\"' + e.tag + '\",' + _s(e.dynamicAttrs) + \")\"), e.wrapData && (i = e.wrapData(i)), e.wrapListeners ? e.wrapListeners(i) : i\n    }\n\n    function gs(e) {\n        return 1 === e.type && (\"slot\" === e.tag || e.children.some(gs))\n    }\n\n    function fs(e, t) {\n        var i = e.attrsMap[\"slot-scope\"];\n        if (e.if && !e.ifProcessed && !i) return hs(e, t, fs, \"null\");\n        if (e.for && !e.forProcessed) return us(e, t, fs);\n        var n = e.slotScope === Po ? \"\" : String(e.slotScope);\n        t = \"function(\" + n + \"){return \" + (\"template\" === e.tag ? e.if && i ? \"(\" + e.if+\")?\" + (ms(e, t) || \"undefined\") + \":undefined\" : ms(e, t) || \"undefined\" : ls(e, t)) + \"}\";\n        return \"{key:\" + (e.slotTarget || '\"default\"') + \",fn:\" + t + (n ? \"\" : \",proxy:true\") + \"}\"\n    }\n\n    function ms(e, t, i, n, r) {\n        var o = e.children;\n        if (o.length) {\n            var s = o[0];\n            if (1 === o.length && s.for && \"template\" !== s.tag && \"slot\" !== s.tag) return e = i ? t.maybeComponent(s) ? \",1\" : \",0\" : \"\", (n || ls)(s, t) + e;\n            i = i ? function(e, t) {\n                for (var i = 0, n = 0; n < e.length; n++) {\n                    var r = e[n];\n                    if (1 === r.type) {\n                        if (vs(r) || r.ifConditions && r.ifConditions.some((function(e) {\n                                return vs(e.block)\n                            }))) {\n                            i = 2;\n                            break\n                        }(t(r) || r.ifConditions && r.ifConditions.some((function(e) {\n                            return t(e.block)\n                        }))) && (i = 1)\n                    }\n                }\n                return i\n            }(o, t.maybeComponent) : 0;\n            var a = r || bs;\n            return \"[\" + o.map((function(e) {\n                return a(e, t)\n            })).join(\",\") + \"]\" + (i ? \",\" + i : \"\")\n        }\n    }\n\n    function vs(e) {\n        return void 0 !== e.for || \"template\" === e.tag || \"slot\" === e.tag\n    }\n\n    function bs(e, t) {\n        return 1 === e.type ? ls(e, t) : 3 === e.type && e.isComment ? \"_e(\" + JSON.stringify(e.text) + \")\" : \"_v(\" + (2 === (e = e).type ? e.expression : ws(JSON.stringify(e.text))) + \")\"\n    }\n\n    function _s(e) {\n        for (var t = \"\", i = \"\", n = 0; n < e.length; n++) {\n            var r = e[n],\n                o = ws(r.value);\n            r.dynamic ? i += r.name + \",\" + o + \",\" : t += '\"' + r.name + '\":' + o + \",\"\n        }\n        return t = \"{\" + t.slice(0, -1) + \"}\", i ? \"_d(\" + t + \",[\" + i.slice(0, -1) + \"])\" : t\n    }\n\n    function ws(e) {\n        return e.replace(/\\u2028/g, \"\\\\u2028\").replace(/\\u2029/g, \"\\\\u2029\")\n    }\n\n    function ys(e, t) {\n        try {\n            return new Function(e)\n        } catch (i) {\n            return t.push({\n                err: i,\n                code: e\n            }), D\n        }\n    }\n    new RegExp(\"\\\\b\" + \"do,if,for,let,new,try,var,case,else,with,await,break,catch,class,const,super,throw,while,yield,delete,export,import,return,switch,default,extends,finally,continue,debugger,function,arguments\".split(\",\").join(\"\\\\b|\\\\b\") + \"\\\\b\"), new RegExp(\"\\\\b\" + \"delete,typeof,void\".split(\",\").join(\"\\\\s*\\\\([^\\\\)]*\\\\)|\\\\b\") + \"\\\\s*\\\\([^\\\\)]*\\\\)\");\n    var Cs, xs, Ss = ((Ge = (Cs = function(e, t) {\n        return e = Ro(e.trim(), t), !1 !== t.optimize && function(e, t) {\n            e && (Uo = qo(t.staticKeys || \"\"), Ko = t.isReservedTag || I, function e(t) {\n                if (t.static = Go(t), 1 === t.type && (Ko(t.tag) || \"slot\" === t.tag || null != t.attrsMap[\"inline-template\"])) {\n                    for (var i = 0, n = t.children.length; i < n; i++) {\n                        var r = t.children[i];\n                        e(r), r.static || (t.static = !1)\n                    }\n                    if (t.ifConditions)\n                        for (var o = 1, s = t.ifConditions.length; o < s; o++) {\n                            var a = t.ifConditions[o].block;\n                            e(a), a.static || (t.static = !1)\n                        }\n                }\n            }(e), function e(t, i) {\n                if (1 === t.type)\n                    if ((t.static || t.once) && (t.staticInFor = i), !t.static || !t.children.length || 1 === t.children.length && 3 === t.children[0].type) {\n                        if (t.staticRoot = !1, t.children)\n                            for (var n = 0, r = t.children.length; n < r; n++) e(t.children[n], i || !!t.for);\n                        if (t.ifConditions)\n                            for (var o = 1, s = t.ifConditions.length; o < s; o++) e(t.ifConditions[o].block, i)\n                    } else t.staticRoot = !0\n            }(e, !1))\n        }(e, t), {\n            ast: e,\n            render: (t = as(e, t)).render,\n            staticRenderFns: t.staticRenderFns\n        }\n    }, function(e) {\n        function t(t, i) {\n            var n, r = Object.create(e),\n                o = [],\n                s = [];\n            if (i)\n                for (n in i.modules && (r.modules = (e.modules || []).concat(i.modules)), i.directives && (r.directives = E(Object.create(e.directives || null), i.directives)), i) \"modules\" !== n && \"directives\" !== n && (r[n] = i[n]);\n            return r.warn = function(e, t, i) {\n                (i ? s : o).push(e)\n            }, (t = Cs(t.trim(), r)).errors = o, t.tips = s, t\n        }\n        return {\n            compile: t,\n            compileToFunctions: (i = t, n = Object.create(null), function(e, t, r) {\n                (t = E({}, t)).warn, delete t.warn;\n                var o = t.delimiters ? String(t.delimiters) + e : e;\n                if (n[o]) return n[o];\n                e = i(e, t);\n                var s = [];\n                return (t = {}).render = ys(e.render, s), t.staticRenderFns = e.staticRenderFns.map((function(e) {\n                    return ys(e, s)\n                })), n[o] = t\n            })\n        };\n        var i, n\n    })(Ge)).compile, Ge.compileToFunctions);\n\n    function ks(e) {\n        return (xs = xs || document.createElement(\"div\")).innerHTML = e ? '<a href=\"\\n\"/>' : '<div a=\"\\n\"/>', 0 < xs.innerHTML.indexOf(\"&#10;\")\n    }\n    var Ls = !!K && ks(!1),\n        Os = !!K && ks(!0),\n        Es = w((function(e) {\n            return (e = Xi(e)) && e.innerHTML\n        })),\n        Ns = Ci.prototype.$mount;\n    Ci.prototype.$mount = function(e, t) {\n        if ((e = e && Xi(e)) === document.body || e === document.documentElement) return this;\n        var i = this.$options;\n        if (!i.render) {\n            var n, r = i.template;\n            if (r)\n                if (\"string\" == typeof r) \"#\" === r.charAt(0) && (r = Es(r));\n                else {\n                    if (!r.nodeType) return this;\n                    r = r.innerHTML\n                }\n            else e && (r = function(e) {\n                if (e.outerHTML) return e.outerHTML;\n                var t = document.createElement(\"div\");\n                return t.appendChild(e.cloneNode(!0)), t.innerHTML\n            }(e));\n            r && (r = (n = Ss(r, {\n                outputSourceRange: !1,\n                shouldDecodeNewlines: Ls,\n                shouldDecodeNewlinesForHref: Os,\n                delimiters: i.delimiters,\n                comments: i.comments\n            }, this)).render, n = n.staticRenderFns, i.render = r, i.staticRenderFns = n)\n        }\n        return Ns.call(this, e, t)\n    }, Ci.compile = Ss, t.a = Ci\n}, function(e, t, i) {\n    \"use strict\";\n    i.d(t, \"a\", (function() {\n        return l\n    })), i.d(t, \"d\", (function() {\n        return c\n    })), i.d(t, \"c\", (function() {\n        return u\n    })), i.d(t, \"e\", (function() {\n        return p\n    })), i.d(t, \"b\", (function() {\n        return g\n    }));\n    var n = i(6),\n        r = i(122),\n        o = i(8),\n        s = i(5),\n        a = i(44);\n    class l {\n        constructor(e, t, i, n) {\n            this.searchString = e, this.isRegex = t, this.matchCase = i, this.wordSeparators = n\n        }\n        parseSearchRequest() {\n            if (\"\" === this.searchString) return null;\n            let e;\n            e = this.isRegex ? function(e) {\n                if (!e || 0 === e.length) return !1;\n                for (let i = 0, n = e.length; i < n; i++)\n                    if (92 === e.charCodeAt(i)) {\n                        if (i++, i >= n) break;\n                        var t = e.charCodeAt(i);\n                        if (110 === t || 114 === t || 87 === t) return !0\n                    } return !1\n            }(this.searchString) : 0 <= this.searchString.indexOf(\"\\n\");\n            let t = null;\n            try {\n                t = n.q(this.searchString, this.isRegex, {\n                    matchCase: this.matchCase,\n                    wholeWord: !1,\n                    multiline: e,\n                    global: !0,\n                    unicode: !0\n                })\n            } catch (e) {\n                return null\n            }\n            if (!t) return null;\n            let i = !this.isRegex && !e;\n            return i && this.searchString.toLowerCase() !== this.searchString.toUpperCase() && (i = this.matchCase), new d(t, this.wordSeparators ? Object(r.a)(this.wordSeparators) : null, i ? this.searchString : null)\n        }\n    }\n    class d {\n        constructor(e, t, i) {\n            this.regex = e, this.wordSeparators = t, this.simpleSearch = i\n        }\n    }\n\n    function c(e, t, i) {\n        if (!i) return new a.b(e, null);\n        let n = [];\n        for (let e = 0, i = t.length; e < i; e++) n[e] = t[e];\n        return new a.b(e, n)\n    }\n    class h {\n        constructor(e) {\n            let t = [],\n                i = 0;\n            for (let n = 0, r = e.length; n < r; n++) 10 === e.charCodeAt(n) && (t[i++] = n);\n            this._lineFeedsOffsets = t\n        }\n        findLineFeedCountBeforeOffset(e) {\n            var t = this._lineFeedsOffsets;\n            let i = 0,\n                n = t.length - 1;\n            if (-1 === n) return 0;\n            if (e <= t[0]) return 0;\n            for (; i < n;) {\n                var r = i + ((n - i) / 2 >> 0);\n                t[r] >= e ? n = r - 1 : t[r + 1] >= e ? (i = r, n = r) : i = r + 1\n            }\n            return i + 1\n        }\n    }\n    class u {\n        static findMatches(e, t, i, n, r) {\n            return (t = t.parseSearchRequest()) ? t.regex.multiline ? this._doFindMatchesMultiline(e, i, new g(t.wordSeparators, t.regex), n, r) : this._doFindMatchesLineByLine(e, i, t, n, r) : []\n        }\n        static _getMultilineMatchRange(e, t, i, n, r, o) {\n            let a, l, d = 0;\n            return a = n ? (d = n.findLineFeedCountBeforeOffset(r), t + r + d) : t + r, l = n ? (r = n.findLineFeedCountBeforeOffset(r + o.length) - d, a + o.length + r) : a + o.length, o = e.getPositionAt(a), e = e.getPositionAt(l), new s.a(o.lineNumber, o.column, e.lineNumber, e.column)\n        }\n        static _doFindMatchesMultiline(e, t, i, n, r) {\n            var o, s = e.getOffsetAt(t.getStartPosition()),\n                a = e.getValueInRange(t, 1),\n                l = \"\\r\\n\" === e.getEOL() ? new h(a) : null;\n            const d = [];\n            let u = 0;\n            for (i.reset(0); o = i.next(a);)\n                if (d[u++] = c(this._getMultilineMatchRange(e, s, a, l, o.index, o[0]), o, n), u >= r) return d;\n            return d\n        }\n        static _doFindMatchesLineByLine(e, t, i, n, r) {\n            var o = [];\n            let s = 0;\n            if (t.startLineNumber === t.endLineNumber) {\n                const a = e.getLineContent(t.startLineNumber).substring(t.startColumn - 1, t.endColumn - 1);\n                return s = this._findMatchesInLine(i, a, t.startLineNumber, t.startColumn - 1, s, o, n, r), o\n            }\n            const a = e.getLineContent(t.startLineNumber).substring(t.startColumn - 1);\n            s = this._findMatchesInLine(i, a, t.startLineNumber, t.startColumn - 1, s, o, n, r);\n            for (let a = t.startLineNumber + 1; a < t.endLineNumber && s < r; a++) s = this._findMatchesInLine(i, e.getLineContent(a), a, 0, s, o, n, r);\n            if (s < r) {\n                const a = e.getLineContent(t.endLineNumber).substring(0, t.endColumn - 1);\n                s = this._findMatchesInLine(i, a, t.endLineNumber, 0, s, o, n, r)\n            }\n            return o\n        }\n        static _findMatchesInLine(e, t, i, n, r, o, l, d) {\n            var h, u = e.wordSeparators;\n            if (!l && e.simpleSearch) {\n                var f = e.simpleSearch,\n                    m = f.length,\n                    v = t.length;\n                let l = -m;\n                for (; - 1 !== (l = t.indexOf(f, l + m));)\n                    if ((!u || p(u, t, v, l, m)) && (o[r++] = new a.b(new s.a(i, l + 1 + n, i, l + 1 + m + n), null), d <= r)) return r;\n                return r\n            }\n            const b = new g(e.wordSeparators, e.regex);\n            b.reset(0);\n            do {\n                if ((h = b.next(t)) && (o[r++] = c(new s.a(i, h.index + 1 + n, i, h.index + 1 + h[0].length + n), h, l), d <= r)) return r\n            } while (h);\n            return r\n        }\n        static findNextMatch(e, t, i, n) {\n            var r = t.parseSearchRequest();\n            return r ? (t = new g(r.wordSeparators, r.regex), r.regex.multiline ? this._doFindNextMatchMultiline(e, i, t, n) : this._doFindNextMatchLineByLine(e, i, t, n)) : null\n        }\n        static _doFindNextMatchMultiline(e, t, i, n) {\n            var r = new o.a(t.lineNumber, 1),\n                a = e.getOffsetAt(r),\n                l = e.getLineCount(),\n                d = e.getValueInRange(new s.a(r.lineNumber, r.column, l, e.getLineMaxColumn(l)), 1);\n            r = \"\\r\\n\" === e.getEOL() ? new h(d) : null;\n            return i.reset(t.column - 1), (l = i.next(d)) ? c(this._getMultilineMatchRange(e, a, d, r, l.index, l[0]), l, n) : 1 !== t.lineNumber || 1 !== t.column ? this._doFindNextMatchMultiline(e, new o.a(1, 1), i, n) : null\n        }\n        static _doFindNextMatchLineByLine(e, t, i, n) {\n            var r = e.getLineCount(),\n                o = t.lineNumber;\n            const s = e.getLineContent(o),\n                a = this._findFirstMatchInLine(i, s, o, t.column, n);\n            if (a) return a;\n            for (let t = 1; t <= r; t++) {\n                var l = (o + t - 1) % r;\n                const s = e.getLineContent(1 + l),\n                    a = this._findFirstMatchInLine(i, s, 1 + l, 1, n);\n                if (a) return a\n            }\n            return null\n        }\n        static _findFirstMatchInLine(e, t, i, n, r) {\n            return e.reset(n - 1), (t = e.next(t)) ? c(new s.a(i, t.index + 1, i, t.index + 1 + t[0].length), t, r) : null\n        }\n        static findPreviousMatch(e, t, i, n) {\n            var r = t.parseSearchRequest();\n            return r ? (t = new g(r.wordSeparators, r.regex), r.regex.multiline ? this._doFindPreviousMatchMultiline(e, i, t, n) : this._doFindPreviousMatchLineByLine(e, i, t, n)) : null\n        }\n        static _doFindPreviousMatchMultiline(e, t, i, n) {\n            var r = this._doFindMatchesMultiline(e, new s.a(1, 1, t.lineNumber, t.column), i, n, 9990);\n            return 0 < r.length ? r[r.length - 1] : (r = e.getLineCount(), t.lineNumber !== r || t.column !== e.getLineMaxColumn(r) ? this._doFindPreviousMatchMultiline(e, new o.a(r, e.getLineMaxColumn(r)), i, n) : null)\n        }\n        static _doFindPreviousMatchLineByLine(e, t, i, n) {\n            var r = e.getLineCount(),\n                o = t.lineNumber;\n            const s = e.getLineContent(o).substring(0, t.column - 1),\n                a = this._findLastMatchInLine(i, s, o, n);\n            if (a) return a;\n            for (let t = 1; t <= r; t++) {\n                var l = (r + o - t - 1) % r;\n                const s = e.getLineContent(1 + l),\n                    a = this._findLastMatchInLine(i, s, 1 + l, n);\n                if (a) return a\n            }\n            return null\n        }\n        static _findLastMatchInLine(e, t, i, n) {\n            let r = null;\n            var o;\n            for (e.reset(0); o = e.next(t);) r = c(new s.a(i, o.index + 1, i, o.index + 1 + o[0].length), o, n);\n            return r\n        }\n    }\n\n    function p(e, t, i, n, r) {\n        return function(e, t, i, n) {\n            if (0 === i) return !0;\n            var r = t.charCodeAt(i - 1);\n            return 0 !== e.get(r) || (13 === r || 10 === r || 0 < n && (i = t.charCodeAt(i), 0 !== e.get(i)))\n        }(e, t, n, r) && function(e, t, i, n, r) {\n            return n + r === i || (i = t.charCodeAt(n + r), 0 !== e.get(i) || (13 === i || 10 === i || 0 < r && (r = t.charCodeAt(n + r - 1), 0 !== e.get(r))))\n        }(e, t, i, n, r)\n    }\n    class g {\n        constructor(e, t) {\n            this._wordSeparators = e, this._searchRegex = t, this._prevMatchStartIndex = -1, this._prevMatchLength = 0\n        }\n        reset(e) {\n            this._searchRegex.lastIndex = e, this._prevMatchStartIndex = -1, this._prevMatchLength = 0\n        }\n        next(e) {\n            var t = e.length;\n            let i;\n            do {\n                if (this._prevMatchStartIndex + this._prevMatchLength === t) return null;\n                if (i = this._searchRegex.exec(e), !i) return null;\n                var r = i.index,\n                    o = i[0].length;\n                if (r !== this._prevMatchStartIndex || o !== this._prevMatchLength) {\n                    if (this._prevMatchStartIndex = r, this._prevMatchLength = o, !this._wordSeparators || p(this._wordSeparators, e, t, r, o)) return i\n                } else {\n                    if (0 !== o) return null;\n                    65535 < n.z(e, t, this._searchRegex.lastIndex) ? this._searchRegex.lastIndex += 2 : this._searchRegex.lastIndex += 1\n                }\n            } while (i);\n            return null\n        }\n    }\n}, function(e, t, i) {\n    \"use strict\";\n    i.d(t, \"a\", (function() {\n        return o\n    }));\n    var n = i(9);\n    const r = n.b.performance && \"function\" == typeof n.b.performance.now;\n    class o {\n        constructor(e) {\n            this._highResolution = r && e, this._startTime = this._now(), this._stopTime = -1\n        }\n        static create(e = !0) {\n            return new o(e)\n        }\n        stop() {\n            this._stopTime = this._now()\n        }\n        elapsed() {\n            return -1 !== this._stopTime ? this._stopTime - this._startTime : this._now() - this._startTime\n        }\n        _now() {\n            return (this._highResolution ? n.b.performance : Date).now()\n        }\n    }\n}, function(e, t, i) {\n    \"use strict\";\n    i.d(t, \"b\", (function() {\n        return c\n    })), i.d(t, \"a\", (function() {\n        return h\n    })), i.d(t, \"c\", (function() {\n        return u\n    }));\n    var n = i(1),\n        r = i(9);\n    t = i(372);\n    let o, s, a, l, d;\n\n    function c(e) {\n        o = document.createElement(\"div\"), o.className = \"monaco-aria-container\";\n        var t = () => {\n            const e = document.createElement(\"div\");\n            return e.className = \"monaco-alert\", e.setAttribute(\"role\", \"alert\"), e.setAttribute(\"aria-atomic\", \"true\"), o.appendChild(e), e\n        };\n        s = t(), a = t(), l = (t = () => {\n            const e = document.createElement(\"div\");\n            return e.className = \"monaco-status\", e.setAttribute(\"role\", \"complementary\"), e.setAttribute(\"aria-live\", \"polite\"), e.setAttribute(\"aria-atomic\", \"true\"), o.appendChild(e), e\n        })(), d = t(), e.appendChild(o)\n    }\n\n    function h(e) {\n        o && (s.textContent !== e ? (n.q(a), p(s, e)) : (n.q(s), p(a, e)))\n    }\n\n    function u(e) {\n        o && (r.f ? h(e) : l.textContent !== e ? (n.q(d), p(l, e)) : (n.q(l), p(d, e)))\n    }\n\n    function p(e, t) {\n        n.q(e), t.length > 2e4 && (t = t.substr(0, 2e4)), e.textContent = t, e.style.visibility = \"hidden\", e.style.visibility = \"visible\"\n    }\n}, function(e, t, i) {\n    \"use strict\";\n    i.d(t, \"a\", (function() {\n        return a\n    })), i.d(t, \"b\", (function() {\n        return u\n    })), i.d(t, \"d\", (function() {\n        return g\n    })), i.d(t, \"c\", (function() {\n        return f\n    }));\n    class n {\n        constructor() {\n            this._keyCodeToStr = [], this._strToKeyCode = Object.create(null)\n        }\n        define(e, t) {\n            this._keyCodeToStr[e] = t, this._strToKeyCode[t.toLowerCase()] = e\n        }\n        keyCodeToStr(e) {\n            return this._keyCodeToStr[e]\n        }\n        strToKeyCode(e) {\n            return this._strToKeyCode[e.toLowerCase()] || 0\n        }\n    }\n    const r = new n,\n        o = new n,\n        s = new n,\n        a = new Array(230),\n        l = {},\n        d = [],\n        c = Object.create(null),\n        h = Object.create(null),\n        u = [],\n        p = [];\n    for (let e = 0; e <= 193; e++) u[e] = -1;\n    for (let e = 0; e <= 126; e++) p[e] = -1;\n    var g;\n\n    function f(e, t) {\n        return (e | (65535 & t) << 16 >>> 0) >>> 0\n    }! function() {\n        let e = [],\n            t = [];\n        for (const i of [\n                [0, 1, 0, \"None\", 0, \"unknown\", 0, \"VK_UNKNOWN\", \"\", \"\"],\n                [0, 1, 1, \"Hyper\", 0, \"\", 0, \"\", \"\", \"\"],\n                [0, 1, 2, \"Super\", 0, \"\", 0, \"\", \"\", \"\"],\n                [0, 1, 3, \"Fn\", 0, \"\", 0, \"\", \"\", \"\"],\n                [0, 1, 4, \"FnLock\", 0, \"\", 0, \"\", \"\", \"\"],\n                [0, 1, 5, \"Suspend\", 0, \"\", 0, \"\", \"\", \"\"],\n                [0, 1, 6, \"Resume\", 0, \"\", 0, \"\", \"\", \"\"],\n                [0, 1, 7, \"Turbo\", 0, \"\", 0, \"\", \"\", \"\"],\n                [0, 1, 8, \"Sleep\", 0, \"\", 0, \"VK_SLEEP\", \"\", \"\"],\n                [0, 1, 9, \"WakeUp\", 0, \"\", 0, \"\", \"\", \"\"],\n                [31, 0, 10, \"KeyA\", 31, \"A\", 65, \"VK_A\", \"\", \"\"],\n                [32, 0, 11, \"KeyB\", 32, \"B\", 66, \"VK_B\", \"\", \"\"],\n                [33, 0, 12, \"KeyC\", 33, \"C\", 67, \"VK_C\", \"\", \"\"],\n                [34, 0, 13, \"KeyD\", 34, \"D\", 68, \"VK_D\", \"\", \"\"],\n                [35, 0, 14, \"KeyE\", 35, \"E\", 69, \"VK_E\", \"\", \"\"],\n                [36, 0, 15, \"KeyF\", 36, \"F\", 70, \"VK_F\", \"\", \"\"],\n                [37, 0, 16, \"KeyG\", 37, \"G\", 71, \"VK_G\", \"\", \"\"],\n                [38, 0, 17, \"KeyH\", 38, \"H\", 72, \"VK_H\", \"\", \"\"],\n                [39, 0, 18, \"KeyI\", 39, \"I\", 73, \"VK_I\", \"\", \"\"],\n                [40, 0, 19, \"KeyJ\", 40, \"J\", 74, \"VK_J\", \"\", \"\"],\n                [41, 0, 20, \"KeyK\", 41, \"K\", 75, \"VK_K\", \"\", \"\"],\n                [42, 0, 21, \"KeyL\", 42, \"L\", 76, \"VK_L\", \"\", \"\"],\n                [43, 0, 22, \"KeyM\", 43, \"M\", 77, \"VK_M\", \"\", \"\"],\n                [44, 0, 23, \"KeyN\", 44, \"N\", 78, \"VK_N\", \"\", \"\"],\n                [45, 0, 24, \"KeyO\", 45, \"O\", 79, \"VK_O\", \"\", \"\"],\n                [46, 0, 25, \"KeyP\", 46, \"P\", 80, \"VK_P\", \"\", \"\"],\n                [47, 0, 26, \"KeyQ\", 47, \"Q\", 81, \"VK_Q\", \"\", \"\"],\n                [48, 0, 27, \"KeyR\", 48, \"R\", 82, \"VK_R\", \"\", \"\"],\n                [49, 0, 28, \"KeyS\", 49, \"S\", 83, \"VK_S\", \"\", \"\"],\n                [50, 0, 29, \"KeyT\", 50, \"T\", 84, \"VK_T\", \"\", \"\"],\n                [51, 0, 30, \"KeyU\", 51, \"U\", 85, \"VK_U\", \"\", \"\"],\n                [52, 0, 31, \"KeyV\", 52, \"V\", 86, \"VK_V\", \"\", \"\"],\n                [53, 0, 32, \"KeyW\", 53, \"W\", 87, \"VK_W\", \"\", \"\"],\n                [54, 0, 33, \"KeyX\", 54, \"X\", 88, \"VK_X\", \"\", \"\"],\n                [55, 0, 34, \"KeyY\", 55, \"Y\", 89, \"VK_Y\", \"\", \"\"],\n                [56, 0, 35, \"KeyZ\", 56, \"Z\", 90, \"VK_Z\", \"\", \"\"],\n                [22, 0, 36, \"Digit1\", 22, \"1\", 49, \"VK_1\", \"\", \"\"],\n                [23, 0, 37, \"Digit2\", 23, \"2\", 50, \"VK_2\", \"\", \"\"],\n                [24, 0, 38, \"Digit3\", 24, \"3\", 51, \"VK_3\", \"\", \"\"],\n                [25, 0, 39, \"Digit4\", 25, \"4\", 52, \"VK_4\", \"\", \"\"],\n                [26, 0, 40, \"Digit5\", 26, \"5\", 53, \"VK_5\", \"\", \"\"],\n                [27, 0, 41, \"Digit6\", 27, \"6\", 54, \"VK_6\", \"\", \"\"],\n                [28, 0, 42, \"Digit7\", 28, \"7\", 55, \"VK_7\", \"\", \"\"],\n                [29, 0, 43, \"Digit8\", 29, \"8\", 56, \"VK_8\", \"\", \"\"],\n                [30, 0, 44, \"Digit9\", 30, \"9\", 57, \"VK_9\", \"\", \"\"],\n                [21, 0, 45, \"Digit0\", 21, \"0\", 48, \"VK_0\", \"\", \"\"],\n                [3, 1, 46, \"Enter\", 3, \"Enter\", 13, \"VK_RETURN\", \"\", \"\"],\n                [9, 1, 47, \"Escape\", 9, \"Escape\", 27, \"VK_ESCAPE\", \"\", \"\"],\n                [1, 1, 48, \"Backspace\", 1, \"Backspace\", 8, \"VK_BACK\", \"\", \"\"],\n                [2, 1, 49, \"Tab\", 2, \"Tab\", 9, \"VK_TAB\", \"\", \"\"],\n                [10, 1, 50, \"Space\", 10, \"Space\", 32, \"VK_SPACE\", \"\", \"\"],\n                [83, 0, 51, \"Minus\", 83, \"-\", 189, \"VK_OEM_MINUS\", \"-\", \"OEM_MINUS\"],\n                [81, 0, 52, \"Equal\", 81, \"=\", 187, \"VK_OEM_PLUS\", \"=\", \"OEM_PLUS\"],\n                [87, 0, 53, \"BracketLeft\", 87, \"[\", 219, \"VK_OEM_4\", \"[\", \"OEM_4\"],\n                [89, 0, 54, \"BracketRight\", 89, \"]\", 221, \"VK_OEM_6\", \"]\", \"OEM_6\"],\n                [88, 0, 55, \"Backslash\", 88, \"\\\\\", 220, \"VK_OEM_5\", \"\\\\\", \"OEM_5\"],\n                [0, 0, 56, \"IntlHash\", 0, \"\", 0, \"\", \"\", \"\"],\n                [80, 0, 57, \"Semicolon\", 80, \";\", 186, \"VK_OEM_1\", \";\", \"OEM_1\"],\n                [90, 0, 58, \"Quote\", 90, \"'\", 222, \"VK_OEM_7\", \"'\", \"OEM_7\"],\n                [86, 0, 59, \"Backquote\", 86, \"`\", 192, \"VK_OEM_3\", \"`\", \"OEM_3\"],\n                [82, 0, 60, \"Comma\", 82, \",\", 188, \"VK_OEM_COMMA\", \",\", \"OEM_COMMA\"],\n                [84, 0, 61, \"Period\", 84, \".\", 190, \"VK_OEM_PERIOD\", \".\", \"OEM_PERIOD\"],\n                [85, 0, 62, \"Slash\", 85, \"/\", 191, \"VK_OEM_2\", \"/\", \"OEM_2\"],\n                [8, 1, 63, \"CapsLock\", 8, \"CapsLock\", 20, \"VK_CAPITAL\", \"\", \"\"],\n                [59, 1, 64, \"F1\", 59, \"F1\", 112, \"VK_F1\", \"\", \"\"],\n                [60, 1, 65, \"F2\", 60, \"F2\", 113, \"VK_F2\", \"\", \"\"],\n                [61, 1, 66, \"F3\", 61, \"F3\", 114, \"VK_F3\", \"\", \"\"],\n                [62, 1, 67, \"F4\", 62, \"F4\", 115, \"VK_F4\", \"\", \"\"],\n                [63, 1, 68, \"F5\", 63, \"F5\", 116, \"VK_F5\", \"\", \"\"],\n                [64, 1, 69, \"F6\", 64, \"F6\", 117, \"VK_F6\", \"\", \"\"],\n                [65, 1, 70, \"F7\", 65, \"F7\", 118, \"VK_F7\", \"\", \"\"],\n                [66, 1, 71, \"F8\", 66, \"F8\", 119, \"VK_F8\", \"\", \"\"],\n                [67, 1, 72, \"F9\", 67, \"F9\", 120, \"VK_F9\", \"\", \"\"],\n                [68, 1, 73, \"F10\", 68, \"F10\", 121, \"VK_F10\", \"\", \"\"],\n                [69, 1, 74, \"F11\", 69, \"F11\", 122, \"VK_F11\", \"\", \"\"],\n                [70, 1, 75, \"F12\", 70, \"F12\", 123, \"VK_F12\", \"\", \"\"],\n                [0, 1, 76, \"PrintScreen\", 0, \"\", 0, \"\", \"\", \"\"],\n                [79, 1, 77, \"ScrollLock\", 79, \"ScrollLock\", 145, \"VK_SCROLL\", \"\", \"\"],\n                [7, 1, 78, \"Pause\", 7, \"PauseBreak\", 19, \"VK_PAUSE\", \"\", \"\"],\n                [19, 1, 79, \"Insert\", 19, \"Insert\", 45, \"VK_INSERT\", \"\", \"\"],\n                [14, 1, 80, \"Home\", 14, \"Home\", 36, \"VK_HOME\", \"\", \"\"],\n                [11, 1, 81, \"PageUp\", 11, \"PageUp\", 33, \"VK_PRIOR\", \"\", \"\"],\n                [20, 1, 82, \"Delete\", 20, \"Delete\", 46, \"VK_DELETE\", \"\", \"\"],\n                [13, 1, 83, \"End\", 13, \"End\", 35, \"VK_END\", \"\", \"\"],\n                [12, 1, 84, \"PageDown\", 12, \"PageDown\", 34, \"VK_NEXT\", \"\", \"\"],\n                [17, 1, 85, \"ArrowRight\", 17, \"RightArrow\", 39, \"VK_RIGHT\", \"Right\", \"\"],\n                [15, 1, 86, \"ArrowLeft\", 15, \"LeftArrow\", 37, \"VK_LEFT\", \"Left\", \"\"],\n                [18, 1, 87, \"ArrowDown\", 18, \"DownArrow\", 40, \"VK_DOWN\", \"Down\", \"\"],\n                [16, 1, 88, \"ArrowUp\", 16, \"UpArrow\", 38, \"VK_UP\", \"Up\", \"\"],\n                [78, 1, 89, \"NumLock\", 78, \"NumLock\", 144, \"VK_NUMLOCK\", \"\", \"\"],\n                [108, 1, 90, \"NumpadDivide\", 108, \"NumPad_Divide\", 111, \"VK_DIVIDE\", \"\", \"\"],\n                [103, 1, 91, \"NumpadMultiply\", 103, \"NumPad_Multiply\", 106, \"VK_MULTIPLY\", \"\", \"\"],\n                [106, 1, 92, \"NumpadSubtract\", 106, \"NumPad_Subtract\", 109, \"VK_SUBTRACT\", \"\", \"\"],\n                [104, 1, 93, \"NumpadAdd\", 104, \"NumPad_Add\", 107, \"VK_ADD\", \"\", \"\"],\n                [3, 1, 94, \"NumpadEnter\", 3, \"\", 0, \"\", \"\", \"\"],\n                [94, 1, 95, \"Numpad1\", 94, \"NumPad1\", 97, \"VK_NUMPAD1\", \"\", \"\"],\n                [95, 1, 96, \"Numpad2\", 95, \"NumPad2\", 98, \"VK_NUMPAD2\", \"\", \"\"],\n                [96, 1, 97, \"Numpad3\", 96, \"NumPad3\", 99, \"VK_NUMPAD3\", \"\", \"\"],\n                [97, 1, 98, \"Numpad4\", 97, \"NumPad4\", 100, \"VK_NUMPAD4\", \"\", \"\"],\n                [98, 1, 99, \"Numpad5\", 98, \"NumPad5\", 101, \"VK_NUMPAD5\", \"\", \"\"],\n                [99, 1, 100, \"Numpad6\", 99, \"NumPad6\", 102, \"VK_NUMPAD6\", \"\", \"\"],\n                [100, 1, 101, \"Numpad7\", 100, \"NumPad7\", 103, \"VK_NUMPAD7\", \"\", \"\"],\n                [101, 1, 102, \"Numpad8\", 101, \"NumPad8\", 104, \"VK_NUMPAD8\", \"\", \"\"],\n                [102, 1, 103, \"Numpad9\", 102, \"NumPad9\", 105, \"VK_NUMPAD9\", \"\", \"\"],\n                [93, 1, 104, \"Numpad0\", 93, \"NumPad0\", 96, \"VK_NUMPAD0\", \"\", \"\"],\n                [107, 1, 105, \"NumpadDecimal\", 107, \"NumPad_Decimal\", 110, \"VK_DECIMAL\", \"\", \"\"],\n                [92, 0, 106, \"IntlBackslash\", 92, \"OEM_102\", 226, \"VK_OEM_102\", \"\", \"\"],\n                [58, 1, 107, \"ContextMenu\", 58, \"ContextMenu\", 93, \"\", \"\", \"\"],\n                [0, 1, 108, \"Power\", 0, \"\", 0, \"\", \"\", \"\"],\n                [0, 1, 109, \"NumpadEqual\", 0, \"\", 0, \"\", \"\", \"\"],\n                [71, 1, 110, \"F13\", 71, \"F13\", 124, \"VK_F13\", \"\", \"\"],\n                [72, 1, 111, \"F14\", 72, \"F14\", 125, \"VK_F14\", \"\", \"\"],\n                [73, 1, 112, \"F15\", 73, \"F15\", 126, \"VK_F15\", \"\", \"\"],\n                [74, 1, 113, \"F16\", 74, \"F16\", 127, \"VK_F16\", \"\", \"\"],\n                [75, 1, 114, \"F17\", 75, \"F17\", 128, \"VK_F17\", \"\", \"\"],\n                [76, 1, 115, \"F18\", 76, \"F18\", 129, \"VK_F18\", \"\", \"\"],\n                [77, 1, 116, \"F19\", 77, \"F19\", 130, \"VK_F19\", \"\", \"\"],\n                [0, 1, 117, \"F20\", 0, \"\", 0, \"VK_F20\", \"\", \"\"],\n                [0, 1, 118, \"F21\", 0, \"\", 0, \"VK_F21\", \"\", \"\"],\n                [0, 1, 119, \"F22\", 0, \"\", 0, \"VK_F22\", \"\", \"\"],\n                [0, 1, 120, \"F23\", 0, \"\", 0, \"VK_F23\", \"\", \"\"],\n                [0, 1, 121, \"F24\", 0, \"\", 0, \"VK_F24\", \"\", \"\"],\n                [0, 1, 122, \"打开\", 0, \"\", 0, \"\", \"\", \"\"],\n                [0, 1, 123, \"Help\", 0, \"\", 0, \"\", \"\", \"\"],\n                [0, 1, 124, \"Select\", 0, \"\", 0, \"\", \"\", \"\"],\n                [0, 1, 125, \"Again\", 0, \"\", 0, \"\", \"\", \"\"],\n                [0, 1, 126, \"Undo\", 0, \"\", 0, \"\", \"\", \"\"],\n                [0, 1, 127, \"Cut\", 0, \"\", 0, \"\", \"\", \"\"],\n                [0, 1, 128, \"Copy\", 0, \"\", 0, \"\", \"\", \"\"],\n                [0, 1, 129, \"Paste\", 0, \"\", 0, \"\", \"\", \"\"],\n                [0, 1, 130, \"Find\", 0, \"\", 0, \"\", \"\", \"\"],\n                [0, 1, 131, \"AudioVolumeMute\", 112, \"AudioVolumeMute\", 173, \"VK_VOLUME_MUTE\", \"\", \"\"],\n                [0, 1, 132, \"AudioVolumeUp\", 113, \"AudioVolumeUp\", 175, \"VK_VOLUME_UP\", \"\", \"\"],\n                [0, 1, 133, \"AudioVolumeDown\", 114, \"AudioVolumeDown\", 174, \"VK_VOLUME_DOWN\", \"\", \"\"],\n                [105, 1, 134, \"NumpadComma\", 105, \"NumPad_Separator\", 108, \"VK_SEPARATOR\", \"\", \"\"],\n                [110, 0, 135, \"IntlRo\", 110, \"ABNT_C1\", 193, \"VK_ABNT_C1\", \"\", \"\"],\n                [0, 1, 136, \"KanaMode\", 0, \"\", 0, \"\", \"\", \"\"],\n                [0, 0, 137, \"IntlYen\", 0, \"\", 0, \"\", \"\", \"\"],\n                [0, 1, 138, \"Convert\", 0, \"\", 0, \"\", \"\", \"\"],\n                [0, 1, 139, \"NonConvert\", 0, \"\", 0, \"\", \"\", \"\"],\n                [0, 1, 140, \"Lang1\", 0, \"\", 0, \"\", \"\", \"\"],\n                [0, 1, 141, \"Lang2\", 0, \"\", 0, \"\", \"\", \"\"],\n                [0, 1, 142, \"Lang3\", 0, \"\", 0, \"\", \"\", \"\"],\n                [0, 1, 143, \"Lang4\", 0, \"\", 0, \"\", \"\", \"\"],\n                [0, 1, 144, \"Lang5\", 0, \"\", 0, \"\", \"\", \"\"],\n                [0, 1, 145, \"Abort\", 0, \"\", 0, \"\", \"\", \"\"],\n                [0, 1, 146, \"Props\", 0, \"\", 0, \"\", \"\", \"\"],\n                [0, 1, 147, \"NumpadParenLeft\", 0, \"\", 0, \"\", \"\", \"\"],\n                [0, 1, 148, \"NumpadParenRight\", 0, \"\", 0, \"\", \"\", \"\"],\n                [0, 1, 149, \"NumpadBackspace\", 0, \"\", 0, \"\", \"\", \"\"],\n                [0, 1, 150, \"NumpadMemoryStore\", 0, \"\", 0, \"\", \"\", \"\"],\n                [0, 1, 151, \"NumpadMemoryRecall\", 0, \"\", 0, \"\", \"\", \"\"],\n                [0, 1, 152, \"NumpadMemoryClear\", 0, \"\", 0, \"\", \"\", \"\"],\n                [0, 1, 153, \"NumpadMemoryAdd\", 0, \"\", 0, \"\", \"\", \"\"],\n                [0, 1, 154, \"NumpadMemorySubtract\", 0, \"\", 0, \"\", \"\", \"\"],\n                [0, 1, 155, \"NumpadClear\", 0, \"\", 0, \"\", \"\", \"\"],\n                [0, 1, 156, \"NumpadClearEntry\", 0, \"\", 0, \"\", \"\", \"\"],\n                [5, 1, 0, \"\", 5, \"Ctrl\", 17, \"VK_CONTROL\", \"\", \"\"],\n                [4, 1, 0, \"\", 4, \"Shift\", 16, \"VK_SHIFT\", \"\", \"\"],\n                [6, 1, 0, \"\", 6, \"Alt\", 18, \"VK_MENU\", \"\", \"\"],\n                [57, 1, 0, \"\", 57, \"Meta\", 0, \"VK_COMMAND\", \"\", \"\"],\n                [5, 1, 157, \"ControlLeft\", 5, \"\", 0, \"VK_LCONTROL\", \"\", \"\"],\n                [4, 1, 158, \"ShiftLeft\", 4, \"\", 0, \"VK_LSHIFT\", \"\", \"\"],\n                [6, 1, 159, \"AltLeft\", 6, \"\", 0, \"VK_LMENU\", \"\", \"\"],\n                [57, 1, 160, \"MetaLeft\", 57, \"\", 0, \"VK_LWIN\", \"\", \"\"],\n                [5, 1, 161, \"ControlRight\", 5, \"\", 0, \"VK_RCONTROL\", \"\", \"\"],\n                [4, 1, 162, \"ShiftRight\", 4, \"\", 0, \"VK_RSHIFT\", \"\", \"\"],\n                [6, 1, 163, \"AltRight\", 6, \"\", 0, \"VK_RMENU\", \"\", \"\"],\n                [57, 1, 164, \"MetaRight\", 57, \"\", 0, \"VK_RWIN\", \"\", \"\"],\n                [0, 1, 165, \"BrightnessUp\", 0, \"\", 0, \"\", \"\", \"\"],\n                [0, 1, 166, \"BrightnessDown\", 0, \"\", 0, \"\", \"\", \"\"],\n                [0, 1, 167, \"MediaPlay\", 0, \"\", 0, \"\", \"\", \"\"],\n                [0, 1, 168, \"MediaRecord\", 0, \"\", 0, \"\", \"\", \"\"],\n                [0, 1, 169, \"MediaFastForward\", 0, \"\", 0, \"\", \"\", \"\"],\n                [0, 1, 170, \"MediaRewind\", 0, \"\", 0, \"\", \"\", \"\"],\n                [114, 1, 171, \"MediaTrackNext\", 119, \"MediaTrackNext\", 176, \"VK_MEDIA_NEXT_TRACK\", \"\", \"\"],\n                [115, 1, 172, \"MediaTrackPrevious\", 120, \"MediaTrackPrevious\", 177, \"VK_MEDIA_PREV_TRACK\", \"\", \"\"],\n                [116, 1, 173, \"MediaStop\", 121, \"MediaStop\", 178, \"VK_MEDIA_STOP\", \"\", \"\"],\n                [0, 1, 174, \"Eject\", 0, \"\", 0, \"\", \"\", \"\"],\n                [117, 1, 175, \"MediaPlayPause\", 122, \"MediaPlayPause\", 179, \"VK_MEDIA_PLAY_PAUSE\", \"\", \"\"],\n                [0, 1, 176, \"MediaSelect\", 123, \"LaunchMediaPlayer\", 181, \"VK_MEDIA_LAUNCH_MEDIA_SELECT\", \"\", \"\"],\n                [0, 1, 177, \"LaunchMail\", 124, \"LaunchMail\", 180, \"VK_MEDIA_LAUNCH_MAIL\", \"\", \"\"],\n                [0, 1, 178, \"LaunchApp2\", 125, \"LaunchApp2\", 183, \"VK_MEDIA_LAUNCH_APP2\", \"\", \"\"],\n                [0, 1, 179, \"LaunchApp1\", 0, \"\", 0, \"VK_MEDIA_LAUNCH_APP1\", \"\", \"\"],\n                [0, 1, 180, \"SelectTask\", 0, \"\", 0, \"\", \"\", \"\"],\n                [0, 1, 181, \"LaunchScreenSaver\", 0, \"\", 0, \"\", \"\", \"\"],\n                [0, 1, 182, \"BrowserSearch\", 115, \"BrowserSearch\", 170, \"VK_BROWSER_SEARCH\", \"\", \"\"],\n                [0, 1, 183, \"BrowserHome\", 116, \"BrowserHome\", 172, \"VK_BROWSER_HOME\", \"\", \"\"],\n                [112, 1, 184, \"BrowserBack\", 117, \"BrowserBack\", 166, \"VK_BROWSER_BACK\", \"\", \"\"],\n                [113, 1, 185, \"BrowserForward\", 118, \"BrowserForward\", 167, \"VK_BROWSER_FORWARD\", \"\", \"\"],\n                [0, 1, 186, \"BrowserStop\", 0, \"\", 0, \"VK_BROWSER_STOP\", \"\", \"\"],\n                [0, 1, 187, \"BrowserRefresh\", 0, \"\", 0, \"VK_BROWSER_REFRESH\", \"\", \"\"],\n                [0, 1, 188, \"BrowserFavorites\", 0, \"\", 0, \"VK_BROWSER_FAVORITES\", \"\", \"\"],\n                [0, 1, 189, \"ZoomToggle\", 0, \"\", 0, \"\", \"\", \"\"],\n                [0, 1, 190, \"MailReply\", 0, \"\", 0, \"\", \"\", \"\"],\n                [0, 1, 191, \"MailForward\", 0, \"\", 0, \"\", \"\", \"\"],\n                [0, 1, 192, \"MailSend\", 0, \"\", 0, \"\", \"\", \"\"],\n                [109, 1, 0, \"\", 109, \"KeyInComposition\", 229, \"\", \"\", \"\"],\n                [111, 1, 0, \"\", 111, \"ABNT_C2\", 194, \"VK_ABNT_C2\", \"\", \"\"],\n                [91, 1, 0, \"\", 91, \"OEM_8\", 223, \"VK_OEM_8\", \"\", \"\"],\n                [0, 1, 0, \"\", 0, \"\", 0, \"VK_CLEAR\", \"\", \"\"],\n                [0, 1, 0, \"\", 0, \"\", 0, \"VK_KANA\", \"\", \"\"],\n                [0, 1, 0, \"\", 0, \"\", 0, \"VK_HANGUL\", \"\", \"\"],\n                [0, 1, 0, \"\", 0, \"\", 0, \"VK_JUNJA\", \"\", \"\"],\n                [0, 1, 0, \"\", 0, \"\", 0, \"VK_FINAL\", \"\", \"\"],\n                [0, 1, 0, \"\", 0, \"\", 0, \"VK_HANJA\", \"\", \"\"],\n                [0, 1, 0, \"\", 0, \"\", 0, \"VK_KANJI\", \"\", \"\"],\n                [0, 1, 0, \"\", 0, \"\", 0, \"VK_CONVERT\", \"\", \"\"],\n                [0, 1, 0, \"\", 0, \"\", 0, \"VK_NONCONVERT\", \"\", \"\"],\n                [0, 1, 0, \"\", 0, \"\", 0, \"VK_ACCEPT\", \"\", \"\"],\n                [0, 1, 0, \"\", 0, \"\", 0, \"VK_MODECHANGE\", \"\", \"\"],\n                [0, 1, 0, \"\", 0, \"\", 0, \"VK_SELECT\", \"\", \"\"],\n                [0, 1, 0, \"\", 0, \"\", 0, \"VK_PRINT\", \"\", \"\"],\n                [0, 1, 0, \"\", 0, \"\", 0, \"VK_EXECUTE\", \"\", \"\"],\n                [0, 1, 0, \"\", 0, \"\", 0, \"VK_SNAPSHOT\", \"\", \"\"],\n                [0, 1, 0, \"\", 0, \"\", 0, \"VK_HELP\", \"\", \"\"],\n                [0, 1, 0, \"\", 0, \"\", 0, \"VK_APPS\", \"\", \"\"],\n                [0, 1, 0, \"\", 0, \"\", 0, \"VK_PROCESSKEY\", \"\", \"\"],\n                [0, 1, 0, \"\", 0, \"\", 0, \"VK_PACKET\", \"\", \"\"],\n                [0, 1, 0, \"\", 0, \"\", 0, \"VK_DBE_SBCSCHAR\", \"\", \"\"],\n                [0, 1, 0, \"\", 0, \"\", 0, \"VK_DBE_DBCSCHAR\", \"\", \"\"],\n                [0, 1, 0, \"\", 0, \"\", 0, \"VK_ATTN\", \"\", \"\"],\n                [0, 1, 0, \"\", 0, \"\", 0, \"VK_CRSEL\", \"\", \"\"],\n                [0, 1, 0, \"\", 0, \"\", 0, \"VK_EXSEL\", \"\", \"\"],\n                [0, 1, 0, \"\", 0, \"\", 0, \"VK_EREOF\", \"\", \"\"],\n                [0, 1, 0, \"\", 0, \"\", 0, \"VK_PLAY\", \"\", \"\"],\n                [0, 1, 0, \"\", 0, \"\", 0, \"VK_ZOOM\", \"\", \"\"],\n                [0, 1, 0, \"\", 0, \"\", 0, \"VK_NONAME\", \"\", \"\"],\n                [0, 1, 0, \"\", 0, \"\", 0, \"VK_PA1\", \"\", \"\"],\n                [0, 1, 0, \"\", 0, \"\", 0, \"VK_OEM_CLEAR\", \"\", \"\"]\n            ]) {\n            const [, n, g, f, m, v, b, _, w, y] = i;\n            if (t[g] || (t[g] = !0, d[g] = f, c[f] = g, h[f.toLowerCase()] = g, n && 0 !== (u[g] = m) && 3 !== m && 5 !== m && 4 !== m && 6 !== m && 57 !== m && (p[m] = g)), !e[m]) {\n                if (e[m] = !0, !v) throw new Error(`String representation missing for key code ${m} around scan code ${f}`);\n                r.define(m, v), o.define(m, w || v), s.define(m, y || w || v)\n            }\n            b && (a[b] = m), _ && (l[_] = m)\n        }\n        p[3] = 46\n    }(), (t = g = g || {}).toString = function(e) {\n        return r.keyCodeToStr(e)\n    }, t.fromString = function(e) {\n        return r.strToKeyCode(e)\n    }, t.toUserSettingsUS = function(e) {\n        return o.keyCodeToStr(e)\n    }, t.toUserSettingsGeneral = function(e) {\n        return s.keyCodeToStr(e)\n    }, t.fromUserSettings = function(e) {\n        return o.strToKeyCode(e) || s.strToKeyCode(e)\n    }, t.toElectronAccelerator = function(e) {\n        if (93 <= e && e <= 108) return null;\n        switch (e) {\n            case 16:\n                return \"Up\";\n            case 18:\n                return \"Down\";\n            case 15:\n                return \"Left\";\n            case 17:\n                return \"Right\"\n        }\n        return r.keyCodeToStr(e)\n    }\n}, function(e, t, i) {\n    \"use strict\";\n    i.d(t, \"b\", (function() {\n        return n\n    })), i.d(t, \"a\", (function() {\n        return r\n    })), i.d(t, \"c\", (function() {\n        return o\n    })), i.d(t, \"d\", (function() {\n        return a\n    }));\n    const n = \"`~!@#$%^&*()-=+[{]}\\\\|;:'\\\",.<>/?\",\n        r = function(e = \"\") {\n            let t = \"(-?\\\\d*\\\\.\\\\d\\\\w*)|([^\";\n            for (const i of n) 0 <= e.indexOf(i) || (t += \"\\\\\" + i);\n            return t += \"\\\\s]+)\", new RegExp(t, \"g\")\n        }();\n\n    function o(e) {\n        let t = r;\n        if (e && e instanceof RegExp)\n            if (e.global) t = e;\n            else {\n                let i = \"g\";\n                e.ignoreCase && (i += \"i\"), e.multiline && (i += \"m\"), e.unicode && (i += \"u\"), t = new RegExp(e.source, i)\n            } return t.lastIndex = 0, t\n    }\n    const s = {\n        maxLen: 1e3,\n        windowSize: 15,\n        timeBudget: 150\n    };\n\n    function a(e, t, i, n, r = s) {\n        if (i.length > r.maxLen) {\n            let o = e - r.maxLen / 2;\n            return o < 0 ? o = 0 : n += o, a(e, t, i = i.substring(o, e + r.maxLen / 2), n, r)\n        }\n        var o = Date.now(),\n            l = e - 1 - n;\n        let d = -1,\n            c = null;\n        for (let e = 1; !(Date.now() - o >= r.timeBudget); e++) {\n            var h = l - r.windowSize * e;\n            t.lastIndex = Math.max(0, h);\n            var u = function(e, t, i, n) {\n                for (var r; r = e.exec(t);) {\n                    var o = r.index || 0;\n                    if (o <= i && e.lastIndex >= i) return r;\n                    if (0 < n && n < o) return null\n                }\n                return null\n            }(t, i, l, d);\n            if (!u && c) break;\n            if (c = u, h <= 0) break;\n            d = h\n        }\n        return c ? (n = {\n            word: c[0],\n            startColumn: n + 1 + c.index,\n            endColumn: n + 1 + c.index + c[0].length\n        }, t.lastIndex = 0, n) : null\n    }\n}, function(e, t, i) {\n    \"use strict\";\n    i.d(t, \"b\", (function() {\n        return n\n    })), i.d(t, \"a\", (function() {\n        return r\n    })), i = i(26);\n    const n = Object(i.c)(\"contextViewService\"),\n        r = Object(i.c)(\"contextMenuService\")\n}, function(e, t, i) {\n    \"use strict\";\n    i.d(t, \"b\", (function() {\n        return o\n    })), i.d(t, \"c\", (function() {\n        return n\n    })), i.d(t, \"a\", (function() {\n        return l\n    })), i.d(t, \"d\", (function() {\n        return d\n    }));\n    var n, r = i(2);\n    t = i(4), i = i(26);\n    const o = Object(i.c)(\"logService\");\n    (i = n = n || {})[i.Trace = 0] = \"Trace\", i[i.Debug = 1] = \"Debug\", i[i.Info = 2] = \"Info\", i[i.Warning = 3] = \"Warning\", i[i.Error = 4] = \"错误\", i[i.Critical = 5] = \"Critical\", i[i.Off = 6] = \"Off\";\n    const s = n.Info;\n    class a extends t.a {\n        constructor() {\n            super(...arguments), this.level = s, this._onDidChangeLogLevel = this._register(new r.b)\n        }\n        setLevel(e) {\n            this.level !== e && (this.level = e, this._onDidChangeLogLevel.fire(this.level))\n        }\n        getLevel() {\n            return this.level\n        }\n    }\n    class l extends a {\n        constructor(e = s) {\n            super(), this.setLevel(e)\n        }\n        trace(e, ...t) {\n            this.getLevel() <= n.Trace && console.log(\"%cTRACE\", \"color: #888\", e, ...t)\n        }\n        debug(e, ...t) {\n            this.getLevel() <= n.Debug && console.log(\"%cDEBUG\", \"background: #eee; color: #888\", e, ...t)\n        }\n        info(e, ...t) {\n            this.getLevel() <= n.Info && console.log(\"%c INFO\", \"color: #33f\", e, ...t)\n        }\n        error(e, ...t) {\n            this.getLevel() <= n.Error && console.log(\"%c  ERR\", \"color: #f33\", e, ...t)\n        }\n        dispose() {}\n    }\n    class d extends t.a {\n        constructor(e) {\n            super(), this.logger = e, this._register(e)\n        }\n        getLevel() {\n            return this.logger.getLevel()\n        }\n        trace(e, ...t) {\n            this.logger.trace(e, ...t)\n        }\n        debug(e, ...t) {\n            this.logger.debug(e, ...t)\n        }\n        info(e, ...t) {\n            this.logger.info(e, ...t)\n        }\n        error(e, ...t) {\n            this.logger.error(e, ...t)\n        }\n    }\n}, function(e, t, i) {\n    \"use strict\";\n\n    function n(e, t) {\n        var i = e.getCount(),\n            n = (t = e.findTokenIndexAtOffset(t), e.getLanguageId(t));\n        let o = t;\n        for (; o + 1 < i && e.getLanguageId(o + 1) === n;) o++;\n        let s = t;\n        for (; 0 < s && e.getLanguageId(s - 1) === n;) s--;\n        return new r(e, n, s, o + 1, e.getStartOffset(s), e.getEndOffset(o))\n    }\n    i.d(t, \"a\", (function() {\n        return n\n    })), i.d(t, \"b\", (function() {\n        return o\n    }));\n    class r {\n        constructor(e, t, i, n, r, o) {\n            this._scopedLineTokensBrand = void 0, this._actual = e, this.languageId = t, this._firstTokenIndex = i, this._lastTokenIndex = n, this.firstCharOffset = r, this._lastCharOffset = o\n        }\n        getLineContent() {\n            return this._actual.getLineContent().substring(this.firstCharOffset, this._lastCharOffset)\n        }\n        getActualLineContentBefore(e) {\n            return this._actual.getLineContent().substring(0, this.firstCharOffset + e)\n        }\n        getTokenCount() {\n            return this._lastTokenIndex - this._firstTokenIndex\n        }\n        findTokenIndexAtOffset(e) {\n            return this._actual.findTokenIndexAtOffset(e + this.firstCharOffset) - this._firstTokenIndex\n        }\n        getStandardTokenType(e) {\n            return this._actual.getStandardTokenType(e + this._firstTokenIndex)\n        }\n    }\n\n    function o(e) {\n        return 0 != (7 & e)\n    }\n}, function(e, t, i) {\n    \"use strict\";\n    i.d(t, \"a\", (function() {\n        return n\n    })), i = i(26);\n    const n = Object(i.c)(\"modeService\")\n}, function(e, t, i) {\n    \"use strict\";\n    i.d(t, \"a\", (function() {\n        return n\n    })), i.d(t, \"d\", (function() {\n        return u\n    })), i.d(t, \"b\", (function() {\n        return p\n    })), i.d(t, \"c\", (function() {\n        return g\n    }));\n    var n, r = i(171),\n        o = i(54),\n        s = i(62),\n        a = i(140),\n        l = i(6);\n    (i = n = n || {}).text = \"text/plain\", i.binary = \"application/octet-stream\", i.unknown = \"application/unknown\", i.markdown = \"text/markdown\", i.latex = \"text/latex\";\n    let d = [],\n        c = [],\n        h = [];\n\n    function u(e, t = !1) {\n        const i = {\n            id: (e = e).id,\n            mime: e.mime,\n            filename: e.filename,\n            extension: e.extension,\n            filepattern: e.filepattern,\n            firstline: e.firstline,\n            userConfigured: e.userConfigured,\n            filenameLowercase: e.filename ? e.filename.toLowerCase() : void 0,\n            extensionLowercase: e.extension ? e.extension.toLowerCase() : void 0,\n            filepatternLowercase: e.filepattern ? Object(r.b)(e.filepattern.toLowerCase()) : void 0,\n            filepatternOnPath: !!e.filepattern && 0 <= e.filepattern.indexOf(s.e.sep)\n        };\n        d.push(i), (i.userConfigured ? h : c).push(i), t && !i.userConfigured && d.forEach(e => {\n            e.mime === i.mime || e.userConfigured || (i.extension && e.extension === i.extension && console.warn(`Overwriting extension <<${i.extension}>> to now point to mime <<${i.mime}>>`), i.filename && e.filename === i.filename && console.warn(`Overwriting filename <<${i.filename}>> to now point to mime <<${i.mime}>>`), i.filepattern && e.filepattern === i.filepattern && console.warn(`Overwriting filepattern <<${i.filepattern}>> to now point to mime <<${i.mime}>>`), i.firstline && e.firstline === i.firstline && console.warn(`Overwriting firstline <<${i.firstline}>> to now point to mime <<${i.mime}>>`))\n        })\n    }\n\n    function p(e) {\n        e ? d = d.filter(e => !e.userConfigured) : (d = [], c = []), h = []\n    }\n\n    function g(e, t) {\n        let i;\n        if (e) switch (e.scheme) {\n            case o.c.file:\n                i = e.fsPath;\n                break;\n            case o.c.data:\n                i = a.a.parseMetaData(e).get(a.a.META_DATA_LABEL);\n                break;\n            default:\n                i = e.path\n        }\n        if (!i) return [n.unknown];\n        i = i.toLowerCase();\n        var r = Object(s.a)(i),\n            u = f(i, r, h);\n        return u ? [u, n.text] : (r = f(i, r, c)) ? [r, n.text] : t && (t = function(e) {\n            if (Object(l.S)(e) && (e = e.substr(1)), 0 < e.length)\n                for (let n = d.length - 1; 0 <= n; n--) {\n                    var t = d[n];\n                    if (t.firstline) {\n                        var i = e.match(t.firstline);\n                        if (i && 0 < i.length) return t.mime\n                    }\n                }\n            return null\n        }(t)) ? [t, n.text] : [n.unknown]\n    }\n\n    function f(e, t, i) {\n        var n;\n        let r = null,\n            o = null,\n            s = null;\n        for (let d = i.length - 1; 0 <= d; d--) {\n            var a, l = i[d];\n            if (t === l.filenameLowercase) {\n                r = l;\n                break\n            }\n            l.filepattern && (!o || l.filepattern.length > o.filepattern.length) && (a = l.filepatternOnPath ? e : t, null !== (n = l.filepatternLowercase) && void 0 !== n && n.call(l, a) && (o = l)), l.extension && (!s || l.extension.length > s.extension.length) && t.endsWith(l.extensionLowercase) && (s = l)\n        }\n        return r ? r.mime : o ? o.mime : s ? s.mime : null\n    }\n}, function(e, t, i) {\n    \"use strict\";\n    i.d(t, \"f\", (function() {\n        return l\n    })), i.d(t, \"b\", (function() {\n        return h\n    })), i.d(t, \"c\", (function() {\n        return u\n    })), i.d(t, \"a\", (function() {\n        return g\n    })), i.d(t, \"e\", (function() {\n        return v\n    })), i.d(t, \"d\", (function() {\n        return b\n    }));\n    var n = i(28),\n        r = i(85),\n        o = i(8),\n        s = i(5),\n        a = i(15);\n\n    function l(e) {\n        let t = 0,\n            i = 0,\n            n = 0,\n            r = 0;\n        for (let s = 0, a = e.length; s < a; s++) {\n            var o = e.charCodeAt(s);\n            13 === o ? (0 === t && (i = s), t++, s + 1 < a && 10 === e.charCodeAt(s + 1) ? (r |= 2, s++) : r |= 3, n = s + 1) : 10 === o && (r |= 1, 0 === t && (i = s), t++, n = s + 1)\n        }\n        return 0 === t && (i = e.length), [t, i, e.length - n, r]\n    }\n\n    function d(e) {\n        return (e << 0 | 16384 | 2 << 23) >>> 0\n    }\n    const c = new Uint32Array(0).buffer;\n    class h {\n        constructor() {\n            this.tokens = []\n        }\n        add(e, t) {\n            if (0 < this.tokens.length) {\n                const i = this.tokens[this.tokens.length - 1];\n                if (i.startLineNumber + i.tokens.length - 1 + 1 === e) return void i.tokens.push(t)\n            }\n            this.tokens.push(new f(e, [t]))\n        }\n    }\n    class u {\n        constructor(e) {\n            this._tokens = e, this._tokenCount = e.length / 4\n        }\n        toString(e) {\n            let t = [];\n            for (let i = 0; i < this._tokenCount; i++) t.push(`(${this._getDeltaLine(i)+e},${this._getStartCharacter(i)}-${this._getEndCharacter(i)})`);\n            return `[${t.join(\",\")}]`\n        }\n        getMaxDeltaLine() {\n            var e = this._getTokenCount();\n            return 0 === e ? -1 : this._getDeltaLine(e - 1)\n        }\n        getRange() {\n            if (0 === (i = this._getTokenCount())) return null;\n            var e = this._getStartCharacter(0),\n                t = this._getDeltaLine(i - 1),\n                i = this._getEndCharacter(i - 1);\n            return new s.a(0, e + 1, t, i + 1)\n        }\n        _getTokenCount() {\n            return this._tokenCount\n        }\n        _getDeltaLine(e) {\n            return this._tokens[4 * e]\n        }\n        _getStartCharacter(e) {\n            return this._tokens[4 * e + 1]\n        }\n        _getEndCharacter(e) {\n            return this._tokens[4 * e + 2]\n        }\n        isEmpty() {\n            return 0 === this._getTokenCount()\n        }\n        getLineTokens(e) {\n            let t = 0,\n                i = this._getTokenCount() - 1;\n            for (; t < i;) {\n                var n = t + Math.floor((i - t) / 2),\n                    r = this._getDeltaLine(n);\n                if (r < e) t = n + 1;\n                else {\n                    if (!(e < r)) {\n                        let r = n;\n                        for (; r > t && this._getDeltaLine(r - 1) === e;) r--;\n                        let o = n;\n                        for (; o < i && this._getDeltaLine(o + 1) === e;) o++;\n                        return new p(this._tokens.subarray(4 * r, 4 * o + 4))\n                    }\n                    i = n - 1\n                }\n            }\n            return this._getDeltaLine(t) === e ? new p(this._tokens.subarray(4 * t, 4 * t + 4)) : null\n        }\n        clear() {\n            this._tokenCount = 0\n        }\n        removeTokens(e, t, i, n) {\n            const r = this._tokens;\n            var o = this._tokenCount;\n            let s = 0,\n                a = !1,\n                l = 0;\n            for (let g = 0; g < o; g++) {\n                var d = 4 * g,\n                    c = r[d],\n                    h = r[1 + d],\n                    u = r[2 + d],\n                    p = r[3 + d];\n                (e < c || c === e && t <= u) && (c < i || c === i && h <= n) ? a = !0: (0 === s && (l = c), a && (r[d = 4 * s] = c - l, r[1 + d] = h, r[2 + d] = u, r[3 + d] = p), s++)\n            }\n            return this._tokenCount = s, l\n        }\n        split(e, t, i, n) {\n            var r = this._tokens,\n                o = this._tokenCount,\n                s = [],\n                a = [];\n            let l = s,\n                d = 0,\n                c = 0;\n            for (let s = 0; s < o; s++) {\n                var h = r[f = 4 * s],\n                    p = r[1 + f],\n                    g = r[2 + f],\n                    f = r[3 + f];\n                if (e < h || h === e && t <= g) {\n                    if (h < i || h === i && p <= n) continue;\n                    l !== a && (l = a, d = 0, c = h)\n                }\n                l[d++] = h - c, l[d++] = p, l[d++] = g, l[d++] = f\n            }\n            return [new u(new Uint32Array(s)), new u(new Uint32Array(a)), c]\n        }\n        acceptDeleteRange(e, t, i, n, r) {\n            const o = this._tokens;\n            var s = this._tokenCount,\n                a = n - t;\n            let l = 0,\n                d = !1;\n            for (let u = 0; u < s; u++) {\n                var c = 4 * u;\n                let p = o[c],\n                    g = o[1 + c],\n                    f = o[2 + c];\n                var h = o[3 + c];\n                if (p < t || p === t && f <= i) l++;\n                else {\n                    if (p === t && g < i) p === n && f > r ? f -= r - i : f = i;\n                    else if (p === t && g === i) {\n                        if (!(p === n && f > r)) {\n                            d = !0;\n                            continue\n                        }\n                        f -= r - i\n                    } else if (p < n || p === n && g < r) {\n                        if (!(p === n && f > r)) {\n                            d = !0;\n                            continue\n                        }\n                        g = p === t ? i : 0, f = g + (f - r)\n                    } else if (p > n) {\n                        if (0 == a && !d) {\n                            l = s;\n                            break\n                        }\n                        p -= a\n                    } else {\n                        if (!(p === n && g >= r)) throw new Error(\"Not possible!\");\n                        e && 0 === p && (g += e, f += e), p -= a, g -= r - i, f -= r - i\n                    }\n                    o[c = 4 * l] = p, o[1 + c] = g, o[2 + c] = f, o[3 + c] = h, l++\n                }\n            }\n            this._tokenCount = l\n        }\n        acceptInsertText(e, t, i, n, r, o) {\n            var s = 0 === i && 1 === n && (48 <= o && o <= 57 || 65 <= o && o <= 90 || 97 <= o && o <= 122);\n            const a = this._tokens;\n            var l = this._tokenCount;\n            for (let o = 0; o < l; o++) {\n                var d, c = 4 * o;\n                let l = a[c],\n                    h = a[1 + c],\n                    u = a[2 + c];\n                if (!(l < e || l === e && u < t)) {\n                    if (l === e && u === t) {\n                        if (!s) continue;\n                        u += 1\n                    } else if (l === e && h < t && t < u) 0 === i ? u += n : u = t;\n                    else {\n                        if (l === e && h === t && s) continue;\n                        l === e ? (l += i, 0 === i ? (h += n, u += n) : (d = u - h, h = r + (h - t), u = h + d)) : l += i\n                    }\n                    a[c] = l, a[1 + c] = h, a[2 + c] = u\n                }\n            }\n        }\n    }\n    class p {\n        constructor(e) {\n            this._tokens = e\n        }\n        getCount() {\n            return this._tokens.length / 4\n        }\n        getStartCharacter(e) {\n            return this._tokens[4 * e + 1]\n        }\n        getEndCharacter(e) {\n            return this._tokens[4 * e + 2]\n        }\n        getMetadata(e) {\n            return this._tokens[4 * e + 3]\n        }\n    }\n    class g {\n        constructor(e, t) {\n            this.startLineNumber = e, this.tokens = t, this.endLineNumber = this.startLineNumber + this.tokens.getMaxDeltaLine()\n        }\n        toString() {\n            return this.tokens.toString(this.startLineNumber)\n        }\n        _updateEndLineNumber() {\n            this.endLineNumber = this.startLineNumber + this.tokens.getMaxDeltaLine()\n        }\n        isEmpty() {\n            return this.tokens.isEmpty()\n        }\n        getLineTokens(e) {\n            return this.startLineNumber <= e && e <= this.endLineNumber ? this.tokens.getLineTokens(e - this.startLineNumber) : null\n        }\n        getRange() {\n            var e = this.tokens.getRange();\n            return e && new s.a(this.startLineNumber + e.startLineNumber, e.startColumn, this.startLineNumber + e.endLineNumber, e.endColumn)\n        }\n        removeTokens(e) {\n            var t = e.startLineNumber - this.startLineNumber,\n                i = e.endLineNumber - this.startLineNumber;\n            this.startLineNumber += this.tokens.removeTokens(t, e.startColumn - 1, i, e.endColumn - 1), this._updateEndLineNumber()\n        }\n        split(e) {\n            var t = e.startLineNumber - this.startLineNumber,\n                i = e.endLineNumber - this.startLineNumber,\n                [t, i, e] = this.tokens.split(t, e.startColumn - 1, i, e.endColumn - 1);\n            return [new g(this.startLineNumber, t), new g(this.startLineNumber + e, i)]\n        }\n        applyEdit(e, t) {\n            var [i, n, r] = l(t);\n            this.acceptEdit(e, i, n, r, 0 < t.length ? t.charCodeAt(0) : 0)\n        }\n        acceptEdit(e, t, i, n, r) {\n            this._acceptDeleteRange(e), this._acceptInsertText(new o.a(e.startLineNumber, e.startColumn), t, i, n, r), this._updateEndLineNumber()\n        }\n        _acceptDeleteRange(e) {\n            if (e.startLineNumber !== e.endLineNumber || e.startColumn !== e.endColumn) {\n                var t = e.startLineNumber - this.startLineNumber,\n                    i = e.endLineNumber - this.startLineNumber;\n                if (i < 0) this.startLineNumber -= i - t;\n                else {\n                    var n = this.tokens.getMaxDeltaLine();\n                    if (!(n + 1 <= t)) return t < 0 && n + 1 <= i ? (this.startLineNumber = 0, void this.tokens.clear()) : void(t < 0 ? (this.startLineNumber -= -t, this.tokens.acceptDeleteRange(e.startColumn - 1, 0, 0, i, e.endColumn - 1)) : this.tokens.acceptDeleteRange(0, t, e.startColumn - 1, i, e.endColumn - 1))\n                }\n            }\n        }\n        _acceptInsertText(e, t, i, n, r) {\n            var o;\n            0 === t && 0 === i || ((o = e.lineNumber - this.startLineNumber) < 0 ? this.startLineNumber += t : this.tokens.getMaxDeltaLine() + 1 <= o || this.tokens.acceptInsertText(o, e.column - 1, t, i, n, r))\n        }\n    }\n    class f {\n        constructor(e, t) {\n            this.startLineNumber = e, this.tokens = t\n        }\n    }\n\n    function m(e) {\n        return e instanceof Uint32Array ? e : new Uint32Array(e)\n    }\n    class v {\n        constructor(e) {\n            this._pieces = [], this._isComplete = !1, this._languageIdCodec = e\n        }\n        flush() {\n            this._pieces = [], this._isComplete = !1\n        }\n        isEmpty() {\n            return 0 === this._pieces.length\n        }\n        set(e, t) {\n            this._pieces = e || [], this._isComplete = t\n        }\n        setPartial(e, t) {\n            let i = e;\n            if (0 < t.length) {\n                var r = t[0].getRange(),\n                    o = t[t.length - 1].getRange();\n                if (!r || !o) return e;\n                i = e.plusRange(r).plusRange(o)\n            }\n            let s = null;\n            for (let e = 0, t = this._pieces.length; e < t; e++) {\n                const n = this._pieces[e];\n                if (!(n.endLineNumber < i.startLineNumber)) {\n                    if (n.startLineNumber > i.endLineNumber) {\n                        s = s || {\n                            index: e\n                        };\n                        break\n                    }\n                    if (n.removeTokens(i), n.isEmpty()) this._pieces.splice(e, 1), e--, t--;\n                    else if (!(n.endLineNumber < i.startLineNumber))\n                        if (n.startLineNumber > i.endLineNumber) s = s || {\n                            index: e\n                        };\n                        else {\n                            const [r, o] = n.split(i);\n                            r.isEmpty() ? s = s || {\n                                index: e\n                            } : o.isEmpty() || (this._pieces.splice(e, 1, r, o), e++, t++, s = s || {\n                                index: e\n                            })\n                        }\n                }\n            }\n            return s = s || {\n                index: this._pieces.length\n            }, 0 < t.length && (this._pieces = n.b(this._pieces, s.index, t)), i\n        }\n        isComplete() {\n            return this._isComplete\n        }\n        addSemanticTokens(e, t) {\n            const i = this._pieces;\n            if (0 === i.length) return t;\n            const n = i[v._findFirstPieceWithLine(i, e)].getLineTokens(e);\n            if (!n) return t;\n            var o = t.getCount(),\n                s = n.getCount();\n            let a = 0,\n                l = [],\n                d = 0,\n                c = 0;\n            var h = (e, t) => {\n                e !== c && (c = e, l[d++] = e, l[d++] = t)\n            };\n            for (let e = 0; e < s; e++) {\n                for (var u, p = n.getStartCharacter(e), g = n.getEndCharacter(e), f = n.getMetadata(e), m = ((1 & f ? 2048 : 0) | (2 & f ? 4096 : 0) | (4 & f ? 8192 : 0) | (8 & f ? 8372224 : 0) | (16 & f ? 4286578688 : 0)) >>> 0, b = ~m >>> 0; a < o && t.getEndOffset(a) <= p;) h(t.getEndOffset(a), t.getMetadata(a)), a++;\n                for (a < o && t.getStartOffset(a) < p && h(p, t.getMetadata(a)); a < o && t.getEndOffset(a) < g;) h(t.getEndOffset(a), t.getMetadata(a) & b | f & m), a++;\n                a < o ? (h(g, t.getMetadata(a) & b | f & m), t.getEndOffset(a) === g && a++) : (u = Math.min(Math.max(0, a - 1), o - 1), h(g, t.getMetadata(u) & b | f & m))\n            }\n            for (; a < o;) h(t.getEndOffset(a), t.getMetadata(a)), a++;\n            return new r.a(new Uint32Array(l), t.getLineContent(), this._languageIdCodec)\n        }\n        static _findFirstPieceWithLine(e, t) {\n            let i = 0,\n                n = e.length - 1;\n            for (; i < n;) {\n                let r = i + Math.floor((n - i) / 2);\n                if (e[r].endLineNumber < t) i = r + 1;\n                else {\n                    if (!(e[r].startLineNumber > t)) {\n                        for (; r > i && e[r - 1].startLineNumber <= t && t <= e[r - 1].endLineNumber;) r--;\n                        return r\n                    }\n                    n = r - 1\n                }\n            }\n            return i\n        }\n        acceptEdit(e, t, i, n, r) {\n            for (const o of this._pieces) o.acceptEdit(e, t, i, n, r)\n        }\n    }\n    class b {\n        constructor(e) {\n            this._lineTokens = [], this._len = 0, this._languageIdCodec = e\n        }\n        flush() {\n            this._lineTokens = [], this._len = 0\n        }\n        getTokens(e, t, i) {\n            let n = null;\n            if (t < this._len && (n = this._lineTokens[t]), null !== n && n !== c) return new r.a(m(n), i, this._languageIdCodec);\n            const o = new Uint32Array(2);\n            return o[0] = i.length, o[1] = d(this._languageIdCodec.encodeLanguageId(e)), new r.a(o, i, this._languageIdCodec)\n        }\n        static _massageTokens(e, t, i) {\n            const n = i ? m(i) : null;\n            if (0 === t) {\n                let t = !1;\n                if (n && 1 < n.length && (t = a.z.getLanguageId(n[1]) !== e), !t) return c\n            }\n            if (n && 0 !== n.length) return n[n.length - 2] = t, 0 === n.byteOffset && n.byteLength === n.buffer.byteLength ? n.buffer : n; {\n                const i = new Uint32Array(2);\n                return i[0] = t, i[1] = d(e), i.buffer\n            }\n        }\n        _ensureLine(e) {\n            for (; e >= this._len;) this._lineTokens[this._len] = null, this._len++\n        }\n        _deleteLines(e, t) {\n            0 !== t && (e + t > this._len && (t = this._len - e), this._lineTokens.splice(e, t), this._len -= t)\n        }\n        _insertLines(e, t) {\n            if (0 !== t) {\n                let i = [];\n                for (let e = 0; e < t; e++) i[e] = null;\n                this._lineTokens = n.b(this._lineTokens, e, i), this._len += t\n            }\n        }\n        setTokens(e, t, i, n, r) {\n            return i = b._massageTokens(this._languageIdCodec.encodeLanguageId(e), i, n), this._ensureLine(t), n = this._lineTokens[t], this._lineTokens[t] = i, !!r && !b._equals(n, i)\n        }\n        static _equals(e, t) {\n            if (!e || !t) return !e && !t;\n            var i = m(e),\n                n = m(t);\n            if (i.length !== n.length) return !1;\n            for (let e = 0, t = i.length; e < t; e++)\n                if (i[e] !== n[e]) return !1;\n            return !0\n        }\n        acceptEdit(e, t, i) {\n            this._acceptDeleteRange(e), this._acceptInsertText(new o.a(e.startLineNumber, e.startColumn), t, i)\n        }\n        _acceptDeleteRange(e) {\n            var t = e.startLineNumber - 1;\n            if (!(t >= this._len)) {\n                if (e.startLineNumber === e.endLineNumber) return e.startColumn === e.endColumn ? void 0 : void(this._lineTokens[t] = b._delete(this._lineTokens[t], e.startColumn - 1, e.endColumn - 1));\n                this._lineTokens[t] = b._deleteEnding(this._lineTokens[t], e.startColumn - 1);\n                var i = e.endLineNumber - 1;\n                let n = null;\n                i < this._len && (n = b._deleteBeginning(this._lineTokens[i], e.endColumn - 1)), this._lineTokens[t] = b._append(this._lineTokens[t], n), this._deleteLines(e.startLineNumber, e.endLineNumber - e.startLineNumber)\n            }\n        }\n        _acceptInsertText(e, t, i) {\n            var n;\n            0 === t && 0 === i || (n = e.lineNumber - 1) >= this._len || (0 !== t ? (this._lineTokens[n] = b._deleteEnding(this._lineTokens[n], e.column - 1), this._lineTokens[n] = b._insert(this._lineTokens[n], e.column - 1, i), this._insertLines(e.lineNumber, t)) : this._lineTokens[n] = b._insert(this._lineTokens[n], e.column - 1, i))\n        }\n        static _deleteBeginning(e, t) {\n            return null === e || e === c ? e : b._delete(e, 0, t)\n        }\n        static _deleteEnding(e, t) {\n            if (null === e || e === c) return e;\n            var i = (i = m(e))[i.length - 2];\n            return b._delete(e, t, i)\n        }\n        static _delete(e, t, i) {\n            if (null === e || e === c || t === i) return e;\n            const n = m(e);\n            var o = n.length >>> 1;\n            if (0 === t && n[n.length - 2] === i) return c;\n            var s = r.a.findIndexInTokensArray(n, t),\n                a = 0 < s ? n[s - 1 << 1] : 0;\n            if (i < n[s << 1]) {\n                const r = i - t;\n                for (let e = s; e < o; e++) n[e << 1] -= r;\n                return e\n            }\n            let l, d;\n            d = a !== t ? (n[s << 1] = t, l = s + 1 << 1, t) : (l = s << 1, a);\n            const h = i - t;\n            for (let e = s + 1; e < o; e++) {\n                var u = n[e << 1] - h;\n                u > d && (n[l++] = u, n[l++] = n[1 + (e << 1)], d = u)\n            }\n            if (l === n.length) return e;\n            let p = new Uint32Array(l);\n            return p.set(n.subarray(0, l), 0), p.buffer\n        }\n        static _append(e, t) {\n            if (t === c) return e;\n            if (e === c) return t;\n            if (null === e) return e;\n            if (null === t) return null;\n            e = m(e);\n            var i = m(t),\n                n = i.length >>> 1;\n            let r = new Uint32Array(e.length + i.length);\n            r.set(e, 0);\n            let o = e.length;\n            var s = e[e.length - 2];\n            for (let e = 0; e < n; e++) r[o++] = i[e << 1] + s, r[o++] = i[1 + (e << 1)];\n            return r.buffer\n        }\n        static _insert(e, t, i) {\n            if (null === e || e === c) return e;\n            const n = m(e);\n            var o = n.length >>> 1;\n            let s = r.a.findIndexInTokensArray(n, t);\n            0 < s && n[s - 1 << 1] === t && s--;\n            for (let e = s; e < o; e++) n[e << 1] += i;\n            return e\n        }\n    }\n}, function(e, t, i) {\n    \"use strict\";\n\n    function n(e, t, i) {\n        return Math.min(Math.max(e, t), i)\n    }\n    i.d(t, \"b\", (function() {\n        return n\n    })), i.d(t, \"a\", (function() {\n        return r\n    }));\n    class r {\n        constructor() {\n            this._n = 1, this._val = 0\n        }\n        update(e) {\n            return this._val = this._val + (e - this._val) / this._n, this._n += 1, this\n        }\n        get value() {\n            return this._val\n        }\n    }\n}, function(e, t, i) {\n    \"use strict\";\n    i.d(t, \"a\", (function() {\n        return n\n    })), i.d(t, \"b\", (function() {\n        return r\n    })), i.d(t, \"c\", (function() {\n        return o\n    })), i.d(t, \"d\", (function() {\n        return s\n    })), i = i(26);\n    const n = Object(i.c)(\"undoRedoService\");\n    class r {\n        constructor(e, t) {\n            this.resource = e, this.elements = t\n        }\n    }\n    class o {\n        constructor() {\n            this.id = o._ID++, this.order = 1\n        }\n        nextOrder() {\n            return 0 === this.id ? 0 : this.order++\n        }\n    }\n    o._ID = 0, o.None = new o;\n    class s {\n        constructor() {\n            this.id = s._ID++, this.order = 1\n        }\n        nextOrder() {\n            return 0 === this.id ? 0 : this.order++\n        }\n    }\n    s._ID = 0, s.None = new s\n}, function(e, t, i) {\n    \"use strict\";\n    i.d(t, \"b\", (function() {\n        return a\n    })), i.d(t, \"a\", (function() {\n        return g\n    }));\n    var n = i(6),\n        r = i(110),\n        o = i(5);\n    class s {\n        constructor(e, t, i, n, r, o) {\n            this._richEditBracketBrand = void 0, this.languageId = e, this.index = t, this.open = i, this.close = n, this.forwardRegex = r, this.reversedRegex = o, this._openSet = s._toSet(this.open), this._closeSet = s._toSet(this.close)\n        }\n        isOpen(e) {\n            return this._openSet.has(e)\n        }\n        isClose(e) {\n            return this._closeSet.has(e)\n        }\n        static _toSet(e) {\n            const t = new Set;\n            for (const i of e) t.add(i);\n            return t\n        }\n    }\n    class a {\n        constructor(e, t) {\n            this._richEditBracketsBrand = void 0;\n            const i = function(e) {\n                const t = e.length;\n                e = e.map(e => [e[0].toLowerCase(), e[1].toLowerCase()]);\n                const i = [];\n                for (let e = 0; e < t; e++) i[e] = e;\n                var n, r;\n                for (let n = 0; n < t; n++) {\n                    var o = e[n];\n                    for (let r = n + 1; r < t; r++)((e, t) => {\n                        var [i, n] = e, [e, t] = t;\n                        return i === e || i === t || n === e || n === t\n                    })(o, e[r]) && ((e, n) => {\n                        var r = Math.min(e, n),\n                            o = Math.max(e, n);\n                        for (let e = 0; e < t; e++) i[e] === o && (i[e] = r)\n                    })(i[n], i[r])\n                }\n                const s = [];\n                for (let o = 0; o < t; o++) {\n                    let a = [],\n                        l = [];\n                    for (let s = 0; s < t; s++) i[s] === o && ([n, r] = e[s], a.push(n), l.push(r));\n                    0 < a.length && s.push({\n                        open: a,\n                        close: l\n                    })\n                }\n                return s\n            }(t);\n            this.brackets = i.map((t, n) => new s(e, n, t.open, t.close, function(e, t, i, n) {\n                let r = [];\n                r = r.concat(e), r = r.concat(t);\n                for (let e = 0, t = r.length; e < t; e++) l(r[e], i, n, r);\n                return r = c(r), r.sort(d), r.reverse(), u(r)\n            }(t.open, t.close, i, n), function(e, t, i, n) {\n                let r = [];\n                r = r.concat(e), r = r.concat(t);\n                for (let e = 0, t = r.length; e < t; e++) l(r[e], i, n, r);\n                return r = c(r), r.sort(d), r.reverse(), u(r.map(p))\n            }(t.open, t.close, i, n))), this.forwardRegex = function(e) {\n                let t = [];\n                for (const i of e) {\n                    for (const e of i.open) t.push(e);\n                    for (const e of i.close) t.push(e)\n                }\n                return t = c(t), u(t)\n            }(this.brackets), this.reversedRegex = function(e) {\n                let t = [];\n                for (const i of e) {\n                    for (const e of i.open) t.push(e);\n                    for (const e of i.close) t.push(e)\n                }\n                return t = c(t), u(t.map(p))\n            }(this.brackets), this.textIsBracket = {}, this.textIsOpenBracket = {}, this.maxBracketLength = 0;\n            for (const e of this.brackets) {\n                for (const t of e.open) this.textIsBracket[t] = e, this.textIsOpenBracket[t] = !0, this.maxBracketLength = Math.max(this.maxBracketLength, t.length);\n                for (const t of e.close) this.textIsBracket[t] = e, this.textIsOpenBracket[t] = !1, this.maxBracketLength = Math.max(this.maxBracketLength, t.length)\n            }\n        }\n    }\n\n    function l(e, t, i, n) {\n        for (let o = 0, s = t.length; o < s; o++)\n            if (o !== i) {\n                var r = t[o];\n                for (const t of r.open) 0 <= t.indexOf(e) && n.push(t);\n                for (const t of r.close) 0 <= t.indexOf(e) && n.push(t)\n            }\n    }\n\n    function d(e, t) {\n        return e.length - t.length\n    }\n\n    function c(e) {\n        if (e.length <= 1) return e;\n        const t = [],\n            i = new Set;\n        for (const n of e) i.has(n) || (t.push(n), i.add(n));\n        return t\n    }\n\n    function h(e) {\n        var t = /^[\\w ]+$/.test(e);\n        return e = n.t(e), t ? `\\\\b${e}\\\\b` : e\n    }\n\n    function u(e) {\n        return e = `(${e.map(h).join(\")|(\")})`, n.q(e, !0)\n    }\n    const p = function() {\n        let e = null,\n            t = null;\n        return function(i) {\n            return e !== i && (e = i, t = function(e) {\n                if (r.d) {\n                    const t = new Uint16Array(e.length);\n                    let i = 0;\n                    for (let n = e.length - 1; 0 <= n; n--) t[i++] = e.charCodeAt(n);\n                    return r.c().decode(t)\n                } {\n                    let t = [],\n                        i = 0;\n                    for (let n = e.length - 1; 0 <= n; n--) t[i++] = e.charAt(n);\n                    return t.join(\"\")\n                }\n            }(e)), t\n        }\n    }();\n    class g {\n        static _findPrevBracketInText(e, t, i, n) {\n            return (e = i.match(e)) ? (i = i.length - (e.index || 0), e = e[0].length, i = n + i, new o.a(t, i - e + 1, t, i + 1)) : null\n        }\n        static findPrevBracketInRange(e, t, i, n, r) {\n            return i = p(i).substring(i.length - r, i.length - n), this._findPrevBracketInText(e, t, i, n)\n        }\n        static findNextBracketInText(e, t, i, n) {\n            return (i = i.match(e)) ? (e = i.index || 0, 0 === (i = i[0].length) ? null : (e = n + e, new o.a(t, e + 1, t, e + 1 + i))) : null\n        }\n        static findNextBracketInRange(e, t, i, n, r) {\n            return r = i.substring(n, r), this.findNextBracketInText(e, t, r, n)\n        }\n    }\n}, function(e, t, i) {\n    \"use strict\";\n    i.d(t, \"a\", (function() {\n        return C\n    }));\n    var n = i(0),\n        r = i(37),\n        o = i(17),\n        s = i(91),\n        a = i(20),\n        l = i(67),\n        d = i(14),\n        c = i(8),\n        h = i(5);\n    class u {\n        static columnSelect(e, t, i, n, r, o) {\n            var s = Math.abs(r - i) + 1,\n                a = r < i,\n                l = o < n,\n                u = n < o;\n            let p = [];\n            for (let r = 0; r < s; r++) {\n                var g = i + (a ? -r : r),\n                    f = d.a.columnFromVisibleColumn2(e, t, g, n),\n                    m = d.a.columnFromVisibleColumn2(e, t, g, o),\n                    v = d.a.visibleColumnFromColumn2(e, t, new c.a(g, f)),\n                    b = d.a.visibleColumnFromColumn2(e, t, new c.a(g, m));\n                if (u) {\n                    if (o < v) continue;\n                    if (b < n) continue\n                }\n                if (l) {\n                    if (n < b) continue;\n                    if (v < o) continue\n                }\n                p.push(new d.f(new h.a(g, f, g, f), 0, new c.a(g, m), 0))\n            }\n            if (0 === p.length)\n                for (let e = 0; e < s; e++) {\n                    var _ = i + (a ? -e : e),\n                        w = t.getLineMaxColumn(_);\n                    p.push(new d.f(new h.a(_, w, _, w), 0, new c.a(_, w), 0))\n                }\n            return {\n                viewStates: p,\n                reversed: a,\n                fromLineNumber: i,\n                fromVisualColumn: n,\n                toLineNumber: r,\n                toVisualColumn: o\n            }\n        }\n        static columnSelectLeft(e, t, i) {\n            let n = i.toViewVisualColumn;\n            return 0 < n && n--, u.columnSelect(e, t, i.fromViewLineNumber, i.fromViewVisualColumn, i.toViewLineNumber, n)\n        }\n        static columnSelectRight(e, t, i) {\n            let n = 0;\n            var r = Math.min(i.fromViewLineNumber, i.toViewLineNumber),\n                o = Math.max(i.fromViewLineNumber, i.toViewLineNumber);\n            for (let i = r; i <= o; i++) {\n                var s = t.getLineMaxColumn(i);\n                s = d.a.visibleColumnFromColumn2(e, t, new c.a(i, s));\n                n = Math.max(n, s)\n            }\n            let a = i.toViewVisualColumn;\n            return a < n && a++, this.columnSelect(e, t, i.fromViewLineNumber, i.fromViewVisualColumn, i.toViewLineNumber, a)\n        }\n        static columnSelectUp(e, t, i, n) {\n            return n = n ? e.pageSize : 1, n = Math.max(1, i.toViewLineNumber - n), this.columnSelect(e, t, i.fromViewLineNumber, i.fromViewVisualColumn, n, i.toViewVisualColumn)\n        }\n        static columnSelectDown(e, t, i, n) {\n            return n = n ? e.pageSize : 1, n = Math.min(t.getLineCount(), i.toViewLineNumber + n), this.columnSelect(e, t, i.fromViewLineNumber, i.fromViewVisualColumn, n, i.toViewVisualColumn)\n        }\n    }\n    var p, g, f = i(141),\n        m = i(74),\n        v = i(172);\n    class b {\n        static addCursorDown(e, t, i) {\n            let n = [],\n                r = 0;\n            for (let s = 0, a = t.length; s < a; s++) {\n                var o = t[s];\n                n[r++] = new d.d(o.modelState, o.viewState), n[r++] = i ? d.d.fromModelState(m.a.translateDown(e.cursorConfig, e.model, o.modelState)) : d.d.fromViewState(m.a.translateDown(e.cursorConfig, e, o.viewState))\n            }\n            return n\n        }\n        static addCursorUp(e, t, i) {\n            let n = [],\n                r = 0;\n            for (let s = 0, a = t.length; s < a; s++) {\n                var o = t[s];\n                n[r++] = new d.d(o.modelState, o.viewState), n[r++] = i ? d.d.fromModelState(m.a.translateUp(e.cursorConfig, e.model, o.modelState)) : d.d.fromViewState(m.a.translateUp(e.cursorConfig, e, o.viewState))\n            }\n            return n\n        }\n        static moveToBeginningOfLine(e, t, i) {\n            let n = [];\n            for (let o = 0, s = t.length; o < s; o++) {\n                var r = t[o];\n                n[o] = this._moveToLineStart(e, r, i)\n            }\n            return n\n        }\n        static _moveToLineStart(e, t, i) {\n            var n = t.viewState.position.column,\n                r = n === t.modelState.position.column,\n                o = t.viewState.position.lineNumber;\n            o = e.getLineFirstNonWhitespaceColumn(o);\n            return r || n === o ? this._moveToLineStartByModel(e, t, i) : this._moveToLineStartByView(e, t, i)\n        }\n        static _moveToLineStartByView(e, t, i) {\n            return d.d.fromViewState(m.a.moveToBeginningOfLine(e.cursorConfig, e, t.viewState, i))\n        }\n        static _moveToLineStartByModel(e, t, i) {\n            return d.d.fromModelState(m.a.moveToBeginningOfLine(e.cursorConfig, e.model, t.modelState, i))\n        }\n        static moveToEndOfLine(e, t, i, n) {\n            let r = [];\n            for (let s = 0, a = t.length; s < a; s++) {\n                var o = t[s];\n                r[s] = this._moveToLineEnd(e, o, i, n)\n            }\n            return r\n        }\n        static _moveToLineEnd(e, t, i, n) {\n            var r = t.viewState.position,\n                o = e.getLineMaxColumn(r.lineNumber),\n                s = r.column === o,\n                a = t.modelState.position,\n                l = e.model.getLineMaxColumn(a.lineNumber);\n            a = o - r.column == l - a.column;\n            return s || a ? this._moveToLineEndByModel(e, t, i, n) : this._moveToLineEndByView(e, t, i, n)\n        }\n        static _moveToLineEndByView(e, t, i, n) {\n            return d.d.fromViewState(m.a.moveToEndOfLine(e.cursorConfig, e, t.viewState, i, n))\n        }\n        static _moveToLineEndByModel(e, t, i, n) {\n            return d.d.fromModelState(m.a.moveToEndOfLine(e.cursorConfig, e.model, t.modelState, i, n))\n        }\n        static expandLineSelection(e, t) {\n            let i = [];\n            for (let s = 0, a = t.length; s < a; s++) {\n                var n = t[s],\n                    r = n.modelState.selection.startLineNumber,\n                    o = e.model.getLineCount();\n                let a, l = n.modelState.selection.endLineNumber;\n                a = l === o ? e.model.getLineMaxColumn(o) : (l++, 1), i[s] = d.d.fromModelState(new d.f(new h.a(r, 1, r, 1), 0, new c.a(l, a), 0))\n            }\n            return i\n        }\n        static moveToBeginningOfBuffer(e, t, i) {\n            let n = [];\n            for (let o = 0, s = t.length; o < s; o++) {\n                var r = t[o];\n                n[o] = d.d.fromModelState(m.a.moveToBeginningOfBuffer(e.cursorConfig, e.model, r.modelState, i))\n            }\n            return n\n        }\n        static moveToEndOfBuffer(e, t, i) {\n            let n = [];\n            for (let o = 0, s = t.length; o < s; o++) {\n                var r = t[o];\n                n[o] = d.d.fromModelState(m.a.moveToEndOfBuffer(e.cursorConfig, e.model, r.modelState, i))\n            }\n            return n\n        }\n        static selectAll(e, t) {\n            var i = e.model.getLineCount();\n            e = e.model.getLineMaxColumn(i);\n            return d.d.fromModelState(new d.f(new h.a(1, 1, 1, 1), 0, new c.a(i, e), 0))\n        }\n        static line(e, t, i, n, r) {\n            if (n = e.model.validatePosition(n), r = r ? e.coordinatesConverter.validateViewPosition(new c.a(r.lineNumber, r.column), n) : e.coordinatesConverter.convertModelPositionToViewPosition(n), !i || !t.modelState.hasSelection()) {\n                var o = e.model.getLineCount();\n                let t = n.lineNumber + 1,\n                    i = 1;\n                return t > o && (t = o, i = e.model.getLineMaxColumn(t)), d.d.fromModelState(new d.f(new h.a(n.lineNumber, 1, t, i), 0, new c.a(t, i), 0))\n            }\n            if (o = t.modelState.selectionStart.getStartPosition().lineNumber, n.lineNumber < o) return d.d.fromViewState(t.viewState.move(t.modelState.hasSelection(), r.lineNumber, 1, 0));\n            if (n.lineNumber > o) {\n                o = e.getLineCount();\n                let i = r.lineNumber + 1,\n                    n = 1;\n                return i > o && (i = o, n = e.getLineMaxColumn(i)), d.d.fromViewState(t.viewState.move(t.modelState.hasSelection(), i, n, 0))\n            }\n            return e = t.modelState.selectionStart.getEndPosition(), d.d.fromModelState(t.modelState.move(t.modelState.hasSelection(), e.lineNumber, e.column, 0))\n        }\n        static word(e, t, i, n) {\n            return n = e.model.validatePosition(n), d.d.fromModelState(v.a.word(e.cursorConfig, e.model, t.modelState, i, n))\n        }\n        static cancelSelection(e, t) {\n            if (!t.modelState.hasSelection()) return new d.d(t.modelState, t.viewState);\n            var i = t.viewState.position.lineNumber;\n            t = t.viewState.position.column;\n            return d.d.fromViewState(new d.f(new h.a(i, t, i, t), 0, new c.a(i, t), 0))\n        }\n        static moveTo(e, t, i, n, r) {\n            return n = e.model.validatePosition(n), n = r ? e.coordinatesConverter.validateViewPosition(new c.a(r.lineNumber, r.column), n) : e.coordinatesConverter.convertModelPositionToViewPosition(n), d.d.fromViewState(t.viewState.move(i, n.lineNumber, n.column, 0))\n        }\n        static simpleMove(e, t, i, n, r, o) {\n            switch (i) {\n                case 0:\n                    return 4 === o ? this._moveHalfLineLeft(e, t, n) : this._moveLeft(e, t, n, r);\n                case 1:\n                    return 4 === o ? this._moveHalfLineRight(e, t, n) : this._moveRight(e, t, n, r);\n                case 2:\n                    return 2 === o ? this._moveUpByViewLines(e, t, n, r) : this._moveUpByModelLines(e, t, n, r);\n                case 3:\n                    return 2 === o ? this._moveDownByViewLines(e, t, n, r) : this._moveDownByModelLines(e, t, n, r);\n                case 4:\n                    return 2 === o ? t.map(t => d.d.fromViewState(m.a.moveToPrevBlankLine(e.cursorConfig, e, t.viewState, n))) : t.map(t => d.d.fromModelState(m.a.moveToPrevBlankLine(e.cursorConfig, e.model, t.modelState, n)));\n                case 5:\n                    return 2 === o ? t.map(t => d.d.fromViewState(m.a.moveToNextBlankLine(e.cursorConfig, e, t.viewState, n))) : t.map(t => d.d.fromModelState(m.a.moveToNextBlankLine(e.cursorConfig, e.model, t.modelState, n)));\n                case 6:\n                    return this._moveToViewMinColumn(e, t, n);\n                case 7:\n                    return this._moveToViewFirstNonWhitespaceColumn(e, t, n);\n                case 8:\n                    return this._moveToViewCenterColumn(e, t, n);\n                case 9:\n                    return this._moveToViewMaxColumn(e, t, n);\n                case 10:\n                    return this._moveToViewLastNonWhitespaceColumn(e, t, n);\n                default:\n                    return null\n            }\n        }\n        static viewportMove(e, t, i, n, r) {\n            var o = e.getCompletelyVisibleViewRange(),\n                s = e.coordinatesConverter.convertViewRangeToModelRange(o);\n            switch (i) {\n                case 11:\n                    var a = this._firstLineNumberInRange(e.model, s, r),\n                        l = e.model.getLineFirstNonWhitespaceColumn(a);\n                    return [this._moveToModelPosition(e, t[0], n, a, l)];\n                case 13:\n                    var d = this._lastLineNumberInRange(e.model, s, r),\n                        c = e.model.getLineFirstNonWhitespaceColumn(d);\n                    return [this._moveToModelPosition(e, t[0], n, d, c)];\n                case 12:\n                    return d = Math.round((s.startLineNumber + s.endLineNumber) / 2), c = e.model.getLineFirstNonWhitespaceColumn(d), [this._moveToModelPosition(e, t[0], n, d, c)];\n                case 14: {\n                    let i = [];\n                    for (let r = 0, s = t.length; r < s; r++) {\n                        var h = t[r];\n                        i[r] = this.findPositionInViewportIfOutside(e, h, o, n)\n                    }\n                    return i\n                }\n                default:\n                    return null\n            }\n        }\n        static findPositionInViewportIfOutside(e, t, i, n) {\n            var r = t.viewState.position.lineNumber;\n            if (i.startLineNumber <= r && r <= i.endLineNumber - 1) return new d.d(t.modelState, t.viewState); {\n                let o;\n                return o = r > i.endLineNumber - 1 ? i.endLineNumber - 1 : r < i.startLineNumber ? i.startLineNumber : r, r = m.a.vertical(e.cursorConfig, e, r, t.viewState.position.column, t.viewState.leftoverVisibleColumns, o, !1), d.d.fromViewState(t.viewState.move(n, r.lineNumber, r.column, r.leftoverVisibleColumns))\n            }\n        }\n        static _firstLineNumberInRange(e, t, i) {\n            let n = t.startLineNumber;\n            return t.startColumn !== e.getLineMinColumn(n) && n++, Math.min(t.endLineNumber, n + i - 1)\n        }\n        static _lastLineNumberInRange(e, t, i) {\n            let n = t.startLineNumber;\n            return t.startColumn !== e.getLineMinColumn(n) && n++, Math.max(n, t.endLineNumber - i + 1)\n        }\n        static _moveLeft(e, t, i, n) {\n            return t.map(t => d.d.fromViewState(m.a.moveLeft(e.cursorConfig, e, t.viewState, i, n)))\n        }\n        static _moveHalfLineLeft(e, t, i) {\n            let n = [];\n            for (let s = 0, a = t.length; s < a; s++) {\n                var r = t[s],\n                    o = r.viewState.position.lineNumber;\n                o = Math.round(e.getLineContent(o).length / 2);\n                n[s] = d.d.fromViewState(m.a.moveLeft(e.cursorConfig, e, r.viewState, i, o))\n            }\n            return n\n        }\n        static _moveRight(e, t, i, n) {\n            return t.map(t => d.d.fromViewState(m.a.moveRight(e.cursorConfig, e, t.viewState, i, n)))\n        }\n        static _moveHalfLineRight(e, t, i) {\n            let n = [];\n            for (let s = 0, a = t.length; s < a; s++) {\n                var r = t[s],\n                    o = r.viewState.position.lineNumber;\n                o = Math.round(e.getLineContent(o).length / 2);\n                n[s] = d.d.fromViewState(m.a.moveRight(e.cursorConfig, e, r.viewState, i, o))\n            }\n            return n\n        }\n        static _moveDownByViewLines(e, t, i, n) {\n            let r = [];\n            for (let s = 0, a = t.length; s < a; s++) {\n                var o = t[s];\n                r[s] = d.d.fromViewState(m.a.moveDown(e.cursorConfig, e, o.viewState, i, n))\n            }\n            return r\n        }\n        static _moveDownByModelLines(e, t, i, n) {\n            let r = [];\n            for (let s = 0, a = t.length; s < a; s++) {\n                var o = t[s];\n                r[s] = d.d.fromModelState(m.a.moveDown(e.cursorConfig, e.model, o.modelState, i, n))\n            }\n            return r\n        }\n        static _moveUpByViewLines(e, t, i, n) {\n            let r = [];\n            for (let s = 0, a = t.length; s < a; s++) {\n                var o = t[s];\n                r[s] = d.d.fromViewState(m.a.moveUp(e.cursorConfig, e, o.viewState, i, n))\n            }\n            return r\n        }\n        static _moveUpByModelLines(e, t, i, n) {\n            let r = [];\n            for (let s = 0, a = t.length; s < a; s++) {\n                var o = t[s];\n                r[s] = d.d.fromModelState(m.a.moveUp(e.cursorConfig, e.model, o.modelState, i, n))\n            }\n            return r\n        }\n        static _moveToViewPosition(e, t, i, n, r) {\n            return d.d.fromViewState(t.viewState.move(i, n, r, 0))\n        }\n        static _moveToModelPosition(e, t, i, n, r) {\n            return d.d.fromModelState(t.modelState.move(i, n, r, 0))\n        }\n        static _moveToViewMinColumn(e, t, i) {\n            let n = [];\n            for (let a = 0, l = t.length; a < l; a++) {\n                var r = t[a],\n                    o = r.viewState.position.lineNumber,\n                    s = e.getLineMinColumn(o);\n                n[a] = this._moveToViewPosition(e, r, i, o, s)\n            }\n            return n\n        }\n        static _moveToViewFirstNonWhitespaceColumn(e, t, i) {\n            let n = [];\n            for (let a = 0, l = t.length; a < l; a++) {\n                var r = t[a],\n                    o = r.viewState.position.lineNumber,\n                    s = e.getLineFirstNonWhitespaceColumn(o);\n                n[a] = this._moveToViewPosition(e, r, i, o, s)\n            }\n            return n\n        }\n        static _moveToViewCenterColumn(e, t, i) {\n            let n = [];\n            for (let a = 0, l = t.length; a < l; a++) {\n                var r = t[a],\n                    o = r.viewState.position.lineNumber,\n                    s = Math.round((e.getLineMaxColumn(o) + e.getLineMinColumn(o)) / 2);\n                n[a] = this._moveToViewPosition(e, r, i, o, s)\n            }\n            return n\n        }\n        static _moveToViewMaxColumn(e, t, i) {\n            let n = [];\n            for (let a = 0, l = t.length; a < l; a++) {\n                var r = t[a],\n                    o = r.viewState.position.lineNumber,\n                    s = e.getLineMaxColumn(o);\n                n[a] = this._moveToViewPosition(e, r, i, o, s)\n            }\n            return n\n        }\n        static _moveToViewLastNonWhitespaceColumn(e, t, i) {\n            let n = [];\n            for (let a = 0, l = t.length; a < l; a++) {\n                var r = t[a],\n                    o = r.viewState.position.lineNumber,\n                    s = e.getLineLastNonWhitespaceColumn(o);\n                n[a] = this._moveToViewPosition(e, r, i, o, s)\n            }\n            return n\n        }\n    }(g = p = p || {}).description = {\n        description: \"Move cursor to a logical position in the view\",\n        args: [{\n            name: \"Cursor move argument object\",\n            description: \"Property-value pairs that can be passed through this argument:\\n\\t\\t\\t\\t\\t* 'to': A mandatory logical position value providing where to move the cursor.\\n\\t\\t\\t\\t\\t\\t```\\n\\t\\t\\t\\t\\t\\t'left', 'right', 'up', 'down', 'prevBlankLine', 'nextBlankLine',\\n\\t\\t\\t\\t\\t\\t'wrappedLineStart', 'wrappedLineEnd', 'wrappedLineColumnCenter'\\n\\t\\t\\t\\t\\t\\t'wrappedLineFirstNonWhitespaceCharacter', 'wrappedLineLastNonWhitespaceCharacter'\\n\\t\\t\\t\\t\\t\\t'viewPortTop', 'viewPortCenter', 'viewPortBottom', 'viewPortIfOutside'\\n\\t\\t\\t\\t\\t\\t```\\n\\t\\t\\t\\t\\t* 'by': Unit to move. Default is computed based on 'to' value.\\n\\t\\t\\t\\t\\t\\t```\\n\\t\\t\\t\\t\\t\\t'line', 'wrappedLine', 'character', 'halfLine'\\n\\t\\t\\t\\t\\t\\t```\\n\\t\\t\\t\\t\\t* 'value': Number of units to move. Default is '1'.\\n\\t\\t\\t\\t\\t* 'select': If 'true' makes the selection. Default is 'false'.\\n\\t\\t\\t\\t\",\n            constraint: function(e) {\n                return !!o.j(e) && !(!o.k(e.to) || !o.l(e.select) && !o.f(e.select) || !o.l(e.by) && !o.k(e.by) || !o.l(e.value) && !o.i(e.value))\n            },\n            schema: {\n                type: \"object\",\n                required: [\"to\"],\n                properties: {\n                    to: {\n                        type: \"string\",\n                        enum: [\"left\", \"right\", \"up\", \"down\", \"prevBlankLine\", \"nextBlankLine\", \"wrappedLineStart\", \"wrappedLineEnd\", \"wrappedLineColumnCenter\", \"wrappedLineFirstNonWhitespaceCharacter\", \"wrappedLineLastNonWhitespaceCharacter\", \"viewPortTop\", \"viewPortCenter\", \"viewPortBottom\", \"viewPortIfOutside\"]\n                    },\n                    by: {\n                        type: \"string\",\n                        enum: [\"line\", \"wrappedLine\", \"character\", \"halfLine\"]\n                    },\n                    value: {\n                        type: \"number\",\n                        default: 1\n                    },\n                    select: {\n                        type: \"boolean\",\n                        default: !1\n                    }\n                }\n            }\n        }]\n    }, g.RawDirection = {\n        Left: \"left\",\n        Right: \"right\",\n        Up: \"up\",\n        Down: \"down\",\n        PrevBlankLine: \"prevBlankLine\",\n        NextBlankLine: \"nextBlankLine\",\n        WrappedLineStart: \"wrappedLineStart\",\n        WrappedLineFirstNonWhitespaceCharacter: \"wrappedLineFirstNonWhitespaceCharacter\",\n        WrappedLineColumnCenter: \"wrappedLineColumnCenter\",\n        WrappedLineEnd: \"wrappedLineEnd\",\n        WrappedLineLastNonWhitespaceCharacter: \"wrappedLineLastNonWhitespaceCharacter\",\n        ViewPortTop: \"viewPortTop\",\n        ViewPortCenter: \"viewPortCenter\",\n        ViewPortBottom: \"viewPortBottom\",\n        ViewPortIfOutside: \"viewPortIfOutside\"\n    }, g.RawUnit = {\n        Line: \"line\",\n        WrappedLine: \"wrappedLine\",\n        Character: \"character\",\n        HalfLine: \"halfLine\"\n    }, g.parse = function(e) {\n        if (!e.to) return null;\n        let t;\n        switch (e.to) {\n            case g.RawDirection.Left:\n                t = 0;\n                break;\n            case g.RawDirection.Right:\n                t = 1;\n                break;\n            case g.RawDirection.Up:\n                t = 2;\n                break;\n            case g.RawDirection.Down:\n                t = 3;\n                break;\n            case g.RawDirection.PrevBlankLine:\n                t = 4;\n                break;\n            case g.RawDirection.NextBlankLine:\n                t = 5;\n                break;\n            case g.RawDirection.WrappedLineStart:\n                t = 6;\n                break;\n            case g.RawDirection.WrappedLineFirstNonWhitespaceCharacter:\n                t = 7;\n                break;\n            case g.RawDirection.WrappedLineColumnCenter:\n                t = 8;\n                break;\n            case g.RawDirection.WrappedLineEnd:\n                t = 9;\n                break;\n            case g.RawDirection.WrappedLineLastNonWhitespaceCharacter:\n                t = 10;\n                break;\n            case g.RawDirection.ViewPortTop:\n                t = 11;\n                break;\n            case g.RawDirection.ViewPortBottom:\n                t = 13;\n                break;\n            case g.RawDirection.ViewPortCenter:\n                t = 12;\n                break;\n            case g.RawDirection.ViewPortIfOutside:\n                t = 14;\n                break;\n            default:\n                return null\n        }\n        let i = 0;\n        switch (e.by) {\n            case g.RawUnit.Line:\n                i = 1;\n                break;\n            case g.RawUnit.WrappedLine:\n                i = 2;\n                break;\n            case g.RawUnit.Character:\n                i = 3;\n                break;\n            case g.RawUnit.HalfLine:\n                i = 4\n        }\n        return {\n            direction: t,\n            unit: i,\n            select: !!e.select,\n            value: e.value || 1\n        }\n    };\n    var _, w, y, C, x = i(120),\n        S = i(21),\n        k = i(13),\n        L = i(128);\n    class O extends a.c {\n        runEditorCommand(e, t, i) {\n            (t = t._getViewModel()) && this.runCoreEditorCommand(t, i || {})\n        }\n    }(w = _ = _ || {}).description = {\n        description: \"Scroll editor in the given direction\",\n        args: [{\n            name: \"Editor scroll argument object\",\n            description: \"Property-value pairs that can be passed through this argument:\\n\\t\\t\\t\\t\\t* 'to': A mandatory direction value.\\n\\t\\t\\t\\t\\t\\t```\\n\\t\\t\\t\\t\\t\\t'up', 'down'\\n\\t\\t\\t\\t\\t\\t```\\n\\t\\t\\t\\t\\t* 'by': Unit to move. Default is computed based on 'to' value.\\n\\t\\t\\t\\t\\t\\t```\\n\\t\\t\\t\\t\\t\\t'line', 'wrappedLine', 'page', 'halfPage'\\n\\t\\t\\t\\t\\t\\t```\\n\\t\\t\\t\\t\\t* 'value': Number of units to move. Default is '1'.\\n\\t\\t\\t\\t\\t* 'revealCursor': If 'true' reveals the cursor if it is outside view port.\\n\\t\\t\\t\\t\",\n            constraint: function(e) {\n                return !!o.j(e) && !(!o.k(e.to) || !o.l(e.by) && !o.k(e.by) || !o.l(e.value) && !o.i(e.value) || !o.l(e.revealCursor) && !o.f(e.revealCursor))\n            },\n            schema: {\n                type: \"object\",\n                required: [\"to\"],\n                properties: {\n                    to: {\n                        type: \"string\",\n                        enum: [\"up\", \"down\"]\n                    },\n                    by: {\n                        type: \"string\",\n                        enum: [\"line\", \"wrappedLine\", \"page\", \"halfPage\"]\n                    },\n                    value: {\n                        type: \"number\",\n                        default: 1\n                    },\n                    revealCursor: {\n                        type: \"boolean\"\n                    }\n                }\n            }\n        }]\n    }, w.RawDirection = {\n        Up: \"up\",\n        Down: \"down\"\n    }, w.RawUnit = {\n        Line: \"line\",\n        WrappedLine: \"wrappedLine\",\n        Page: \"page\",\n        HalfPage: \"halfPage\"\n    }, w.parse = function(e) {\n        let t, i;\n        switch (e.to) {\n            case w.RawDirection.Up:\n                t = 1;\n                break;\n            case w.RawDirection.Down:\n                t = 2;\n                break;\n            default:\n                return null\n        }\n        switch (e.by) {\n            case w.RawUnit.Line:\n                i = 1;\n                break;\n            case w.RawUnit.WrappedLine:\n                i = 2;\n                break;\n            case w.RawUnit.Page:\n                i = 3;\n                break;\n            case w.RawUnit.HalfPage:\n                i = 4;\n                break;\n            default:\n                i = 2\n        }\n        return {\n            direction: t,\n            unit: i,\n            value: Math.floor(e.value || 1),\n            revealCursor: !!e.revealCursor,\n            select: !!e.select\n        }\n    }, (i = y = y || {}).description = {\n        description: \"Reveal the given line at the given logical position\",\n        args: [{\n            name: \"Reveal line argument object\",\n            description: \"Property-value pairs that can be passed through this argument:\\n\\t\\t\\t\\t\\t* 'lineNumber': A mandatory line number value.\\n\\t\\t\\t\\t\\t* 'at': Logical position at which line has to be revealed.\\n\\t\\t\\t\\t\\t\\t```\\n\\t\\t\\t\\t\\t\\t'top', 'center', 'bottom'\\n\\t\\t\\t\\t\\t\\t```\\n\\t\\t\\t\\t\",\n            constraint: function(e) {\n                return !!o.j(e) && !(!o.i(e.lineNumber) && !o.k(e.lineNumber) || !o.l(e.at) && !o.k(e.at))\n            },\n            schema: {\n                type: \"object\",\n                required: [\"lineNumber\"],\n                properties: {\n                    lineNumber: {\n                        type: [\"number\", \"string\"]\n                    },\n                    at: {\n                        type: \"string\",\n                        enum: [\"top\", \"center\", \"bottom\"]\n                    }\n                }\n            }\n        }]\n    }, i.RawAtArgument = {\n        Top: \"top\",\n        Center: \"center\",\n        Bottom: \"bottom\"\n    };\n    class E {\n        constructor(e) {\n            e.addImplementation(1e4, \"code-editor\", (e, t) => {\n                const i = e.get(l.a).getFocusedCodeEditor();\n                return !(!i || !i.hasTextFocus()) && this._runEditorCommand(e, i, t)\n            }), e.addImplementation(1e3, \"generic-dom-input-textarea\", (e, t) => {\n                const i = document.activeElement;\n                return !!(i && 0 <= [\"input\", \"textarea\"].indexOf(i.tagName.toLowerCase())) && (this.runDOMCommand(), !0)\n            }), e.addImplementation(0, \"generic-dom\", (e, t) => {\n                const i = e.get(l.a).getActiveCodeEditor();\n                return !!i && (i.focus(), this._runEditorCommand(e, i, t))\n            })\n        }\n        _runEditorCommand(e, t, i) {\n            return (i = this.runEditorCommand(e, t, i)) || !0\n        }\n    }! function(e) {\n        class t extends O {\n            constructor(e) {\n                super(e), this._inSelectionMode = e.inSelectionMode\n            }\n            runCoreEditorCommand(e, t) {\n                e.model.pushStackElement(), e.setCursorStates(t.source, 3, [b.moveTo(e, e.getPrimaryCursorState(), this._inSelectionMode, t.position, t.viewPosition)]), e.revealPrimaryCursor(t.source, !0)\n            }\n        }\n        e.MoveTo = Object(a.j)(new t({\n            id: \"_moveTo\",\n            inSelectionMode: !1,\n            precondition: void 0\n        })), e.MoveToSelect = Object(a.j)(new t({\n            id: \"_moveToSelect\",\n            inSelectionMode: !0,\n            precondition: void 0\n        }));\n        class i extends O {\n            runCoreEditorCommand(e, t) {\n                e.model.pushStackElement();\n                const i = this._getColumnSelectResult(e, e.getPrimaryCursorState(), e.getCursorColumnSelectData(), t);\n                e.setCursorStates(t.source, 3, i.viewStates.map(e => d.d.fromViewState(e))), e.setCursorColumnSelectData({\n                    isReal: !0,\n                    fromViewLineNumber: i.fromLineNumber,\n                    fromViewVisualColumn: i.fromVisualColumn,\n                    toViewLineNumber: i.toLineNumber,\n                    toViewVisualColumn: i.toVisualColumn\n                }), i.reversed ? e.revealTopMostCursor(t.source) : e.revealBottomMostCursor(t.source)\n            }\n        }\n        e.ColumnSelect = Object(a.j)(new class extends i {\n            constructor() {\n                super({\n                    id: \"columnSelect\",\n                    precondition: void 0\n                })\n            }\n            _getColumnSelectResult(e, t, i, n) {\n                var r = e.model.validatePosition(n.position),\n                    o = e.coordinatesConverter.validateViewPosition(new c.a(n.viewPosition.lineNumber, n.viewPosition.column), r);\n                r = n.doColumnSelect ? i.fromViewLineNumber : o.lineNumber, i = n.doColumnSelect ? i.fromViewVisualColumn : n.mouseColumn - 1;\n                return u.columnSelect(e.cursorConfig, e, r, i, o.lineNumber, n.mouseColumn - 1)\n            }\n        }), e.CursorColumnSelectLeft = Object(a.j)(new class extends i {\n            constructor() {\n                super({\n                    id: \"cursorColumnSelectLeft\",\n                    precondition: void 0,\n                    kbOpts: {\n                        weight: 0,\n                        kbExpr: S.a.textInputFocus,\n                        primary: 3599,\n                        linux: {\n                            primary: 0\n                        }\n                    }\n                })\n            }\n            _getColumnSelectResult(e, t, i, n) {\n                return u.columnSelectLeft(e.cursorConfig, e, i)\n            }\n        }), e.CursorColumnSelectRight = Object(a.j)(new class extends i {\n            constructor() {\n                super({\n                    id: \"cursorColumnSelectRight\",\n                    precondition: void 0,\n                    kbOpts: {\n                        weight: 0,\n                        kbExpr: S.a.textInputFocus,\n                        primary: 3601,\n                        linux: {\n                            primary: 0\n                        }\n                    }\n                })\n            }\n            _getColumnSelectResult(e, t, i, n) {\n                return u.columnSelectRight(e.cursorConfig, e, i)\n            }\n        });\n        class o extends i {\n            constructor(e) {\n                super(e), this._isPaged = e.isPaged\n            }\n            _getColumnSelectResult(e, t, i, n) {\n                return u.columnSelectUp(e.cursorConfig, e, i, this._isPaged)\n            }\n        }\n        e.CursorColumnSelectUp = Object(a.j)(new o({\n            isPaged: !1,\n            id: \"cursorColumnSelectUp\",\n            precondition: void 0,\n            kbOpts: {\n                weight: 0,\n                kbExpr: S.a.textInputFocus,\n                primary: 3600,\n                linux: {\n                    primary: 0\n                }\n            }\n        })), e.CursorColumnSelectPageUp = Object(a.j)(new o({\n            isPaged: !0,\n            id: \"cursorColumnSelectPageUp\",\n            precondition: void 0,\n            kbOpts: {\n                weight: 0,\n                kbExpr: S.a.textInputFocus,\n                primary: 3595,\n                linux: {\n                    primary: 0\n                }\n            }\n        }));\n        class l extends i {\n            constructor(e) {\n                super(e), this._isPaged = e.isPaged\n            }\n            _getColumnSelectResult(e, t, i, n) {\n                return u.columnSelectDown(e.cursorConfig, e, i, this._isPaged)\n            }\n        }\n        e.CursorColumnSelectDown = Object(a.j)(new l({\n            isPaged: !1,\n            id: \"cursorColumnSelectDown\",\n            precondition: void 0,\n            kbOpts: {\n                weight: 0,\n                kbExpr: S.a.textInputFocus,\n                primary: 3602,\n                linux: {\n                    primary: 0\n                }\n            }\n        })), e.CursorColumnSelectPageDown = Object(a.j)(new l({\n            isPaged: !0,\n            id: \"cursorColumnSelectPageDown\",\n            precondition: void 0,\n            kbOpts: {\n                weight: 0,\n                kbExpr: S.a.textInputFocus,\n                primary: 3596,\n                linux: {\n                    primary: 0\n                }\n            }\n        }));\n        class g extends O {\n            constructor() {\n                super({\n                    id: \"cursorMove\",\n                    precondition: void 0,\n                    description: p.description\n                })\n            }\n            runCoreEditorCommand(e, t) {\n                var i = p.parse(t);\n                i && this._runCursorMove(e, t.source, i)\n            }\n            _runCursorMove(e, t, i) {\n                e.model.pushStackElement(), e.setCursorStates(t, 3, g._move(e, e.getCursorStates(), i)), e.revealPrimaryCursor(t, !0)\n            }\n            static _move(e, t, i) {\n                var n = i.select,\n                    r = i.value;\n                switch (i.direction) {\n                    case 0:\n                    case 1:\n                    case 2:\n                    case 3:\n                    case 4:\n                    case 5:\n                    case 6:\n                    case 7:\n                    case 8:\n                    case 9:\n                    case 10:\n                        return b.simpleMove(e, t, i.direction, n, r, i.unit);\n                    case 11:\n                    case 13:\n                    case 12:\n                    case 14:\n                        return b.viewportMove(e, t, i.direction, n, r);\n                    default:\n                        return null\n                }\n            }\n        }\n        e.CursorMoveImpl = g, e.CursorMove = Object(a.j)(new g);\n        class f extends O {\n            constructor(e) {\n                super(e), this._staticArgs = e.args\n            }\n            runCoreEditorCommand(e, t) {\n                let i = this._staticArgs; - 1 === this._staticArgs.value && (i = {\n                    direction: this._staticArgs.direction,\n                    unit: this._staticArgs.unit,\n                    select: this._staticArgs.select,\n                    value: e.cursorConfig.pageSize\n                }), e.model.pushStackElement(), e.setCursorStates(t.source, 3, b.simpleMove(e, e.getCursorStates(), i.direction, i.select, i.value, i.unit)), e.revealPrimaryCursor(t.source, !0)\n            }\n        }\n        e.CursorLeft = Object(a.j)(new f({\n            args: {\n                direction: 0,\n                unit: 0,\n                select: !1,\n                value: 1\n            },\n            id: \"cursorLeft\",\n            precondition: void 0,\n            kbOpts: {\n                weight: 0,\n                kbExpr: S.a.textInputFocus,\n                primary: 15,\n                mac: {\n                    primary: 15,\n                    secondary: [288]\n                }\n            }\n        })), e.CursorLeftSelect = Object(a.j)(new f({\n            args: {\n                direction: 0,\n                unit: 0,\n                select: !0,\n                value: 1\n            },\n            id: \"cursorLeftSelect\",\n            precondition: void 0,\n            kbOpts: {\n                weight: 0,\n                kbExpr: S.a.textInputFocus,\n                primary: 1039\n            }\n        })), e.CursorRight = Object(a.j)(new f({\n            args: {\n                direction: 1,\n                unit: 0,\n                select: !1,\n                value: 1\n            },\n            id: \"cursorRight\",\n            precondition: void 0,\n            kbOpts: {\n                weight: 0,\n                kbExpr: S.a.textInputFocus,\n                primary: 17,\n                mac: {\n                    primary: 17,\n                    secondary: [292]\n                }\n            }\n        })), e.CursorRightSelect = Object(a.j)(new f({\n            args: {\n                direction: 1,\n                unit: 0,\n                select: !0,\n                value: 1\n            },\n            id: \"cursorRightSelect\",\n            precondition: void 0,\n            kbOpts: {\n                weight: 0,\n                kbExpr: S.a.textInputFocus,\n                primary: 1041\n            }\n        })), e.CursorUp = Object(a.j)(new f({\n            args: {\n                direction: 2,\n                unit: 2,\n                select: !1,\n                value: 1\n            },\n            id: \"cursorUp\",\n            precondition: void 0,\n            kbOpts: {\n                weight: 0,\n                kbExpr: S.a.textInputFocus,\n                primary: 16,\n                mac: {\n                    primary: 16,\n                    secondary: [302]\n                }\n            }\n        })), e.CursorUpSelect = Object(a.j)(new f({\n            args: {\n                direction: 2,\n                unit: 2,\n                select: !0,\n                value: 1\n            },\n            id: \"cursorUpSelect\",\n            precondition: void 0,\n            kbOpts: {\n                weight: 0,\n                kbExpr: S.a.textInputFocus,\n                primary: 1040,\n                secondary: [3088],\n                mac: {\n                    primary: 1040\n                },\n                linux: {\n                    primary: 1040\n                }\n            }\n        })), e.CursorPageUp = Object(a.j)(new f({\n            args: {\n                direction: 2,\n                unit: 2,\n                select: !1,\n                value: -1\n            },\n            id: \"cursorPageUp\",\n            precondition: void 0,\n            kbOpts: {\n                weight: 0,\n                kbExpr: S.a.textInputFocus,\n                primary: 11\n            }\n        })), e.CursorPageUpSelect = Object(a.j)(new f({\n            args: {\n                direction: 2,\n                unit: 2,\n                select: !0,\n                value: -1\n            },\n            id: \"cursorPageUpSelect\",\n            precondition: void 0,\n            kbOpts: {\n                weight: 0,\n                kbExpr: S.a.textInputFocus,\n                primary: 1035\n            }\n        })), e.CursorDown = Object(a.j)(new f({\n            args: {\n                direction: 3,\n                unit: 2,\n                select: !1,\n                value: 1\n            },\n            id: \"cursorDown\",\n            precondition: void 0,\n            kbOpts: {\n                weight: 0,\n                kbExpr: S.a.textInputFocus,\n                primary: 18,\n                mac: {\n                    primary: 18,\n                    secondary: [300]\n                }\n            }\n        })), e.CursorDownSelect = Object(a.j)(new f({\n            args: {\n                direction: 3,\n                unit: 2,\n                select: !0,\n                value: 1\n            },\n            id: \"cursorDownSelect\",\n            precondition: void 0,\n            kbOpts: {\n                weight: 0,\n                kbExpr: S.a.textInputFocus,\n                primary: 1042,\n                secondary: [3090],\n                mac: {\n                    primary: 1042\n                },\n                linux: {\n                    primary: 1042\n                }\n            }\n        })), e.CursorPageDown = Object(a.j)(new f({\n            args: {\n                direction: 3,\n                unit: 2,\n                select: !1,\n                value: -1\n            },\n            id: \"cursorPageDown\",\n            precondition: void 0,\n            kbOpts: {\n                weight: 0,\n                kbExpr: S.a.textInputFocus,\n                primary: 12\n            }\n        })), e.CursorPageDownSelect = Object(a.j)(new f({\n            args: {\n                direction: 3,\n                unit: 2,\n                select: !0,\n                value: -1\n            },\n            id: \"cursorPageDownSelect\",\n            precondition: void 0,\n            kbOpts: {\n                weight: 0,\n                kbExpr: S.a.textInputFocus,\n                primary: 1036\n            }\n        })), e.CreateCursor = Object(a.j)(new class extends O {\n            constructor() {\n                super({\n                    id: \"createCursor\",\n                    precondition: void 0\n                })\n            }\n            runCoreEditorCommand(e, t) {\n                let i;\n                i = t.wholeLine ? b.line(e, e.getPrimaryCursorState(), !1, t.position, t.viewPosition) : b.moveTo(e, e.getPrimaryCursorState(), !1, t.position, t.viewPosition);\n                const n = e.getCursorStates();\n                if (1 < n.length) {\n                    var r = i.modelState ? i.modelState.position : null,\n                        o = i.viewState ? i.viewState.position : null;\n                    for (let i = 0, s = n.length; i < s; i++) {\n                        const s = n[i];\n                        if ((!r || s.modelState.selection.containsPosition(r)) && (!o || s.viewState.selection.containsPosition(o))) return n.splice(i, 1), e.model.pushStackElement(), void e.setCursorStates(t.source, 3, n)\n                    }\n                }\n                n.push(i), e.model.pushStackElement(), e.setCursorStates(t.source, 3, n)\n            }\n        }), e.LastCursorMoveToSelect = Object(a.j)(new class extends O {\n            constructor() {\n                super({\n                    id: \"_lastCursorMoveToSelect\",\n                    precondition: void 0\n                })\n            }\n            runCoreEditorCommand(e, t) {\n                var i = e.getLastAddedCursorIndex();\n                const n = e.getCursorStates(),\n                    r = n.slice(0);\n                r[i] = b.moveTo(e, n[i], !0, t.position, t.viewPosition), e.model.pushStackElement(), e.setCursorStates(t.source, 3, r)\n            }\n        });\n        class m extends O {\n            constructor(e) {\n                super(e), this._inSelectionMode = e.inSelectionMode\n            }\n            runCoreEditorCommand(e, t) {\n                e.model.pushStackElement(), e.setCursorStates(t.source, 3, b.moveToBeginningOfLine(e, e.getCursorStates(), this._inSelectionMode)), e.revealPrimaryCursor(t.source, !0)\n            }\n        }\n        e.CursorHome = Object(a.j)(new m({\n            inSelectionMode: !1,\n            id: \"cursorHome\",\n            precondition: void 0,\n            kbOpts: {\n                weight: 0,\n                kbExpr: S.a.textInputFocus,\n                primary: 14,\n                mac: {\n                    primary: 14,\n                    secondary: [2063]\n                }\n            }\n        })), e.CursorHomeSelect = Object(a.j)(new m({\n            inSelectionMode: !0,\n            id: \"cursorHomeSelect\",\n            precondition: void 0,\n            kbOpts: {\n                weight: 0,\n                kbExpr: S.a.textInputFocus,\n                primary: 1038,\n                mac: {\n                    primary: 1038,\n                    secondary: [3087]\n                }\n            }\n        }));\n        class v extends O {\n            constructor(e) {\n                super(e), this._inSelectionMode = e.inSelectionMode\n            }\n            runCoreEditorCommand(e, t) {\n                e.model.pushStackElement(), e.setCursorStates(t.source, 3, this._exec(e.getCursorStates())), e.revealPrimaryCursor(t.source, !0)\n            }\n            _exec(e) {\n                const t = [];\n                for (let n = 0, r = e.length; n < r; n++) {\n                    const r = e[n];\n                    var i = r.modelState.position.lineNumber;\n                    t[n] = d.d.fromModelState(r.modelState.move(this._inSelectionMode, i, 1, 0))\n                }\n                return t\n            }\n        }\n        e.CursorLineStart = Object(a.j)(new v({\n            inSelectionMode: !1,\n            id: \"cursorLineStart\",\n            precondition: void 0,\n            kbOpts: {\n                weight: 0,\n                kbExpr: S.a.textInputFocus,\n                primary: 0,\n                mac: {\n                    primary: 287\n                }\n            }\n        })), e.CursorLineStartSelect = Object(a.j)(new v({\n            inSelectionMode: !0,\n            id: \"cursorLineStartSelect\",\n            precondition: void 0,\n            kbOpts: {\n                weight: 0,\n                kbExpr: S.a.textInputFocus,\n                primary: 0,\n                mac: {\n                    primary: 1311\n                }\n            }\n        }));\n        class w extends O {\n            constructor(e) {\n                super(e), this._inSelectionMode = e.inSelectionMode\n            }\n            runCoreEditorCommand(e, t) {\n                e.model.pushStackElement(), e.setCursorStates(t.source, 3, b.moveToEndOfLine(e, e.getCursorStates(), this._inSelectionMode, t.sticky || !1)), e.revealPrimaryCursor(t.source, !0)\n            }\n        }\n        e.CursorEnd = Object(a.j)(new w({\n            inSelectionMode: !1,\n            id: \"cursorEnd\",\n            precondition: void 0,\n            kbOpts: {\n                args: {\n                    sticky: !1\n                },\n                weight: 0,\n                kbExpr: S.a.textInputFocus,\n                primary: 13,\n                mac: {\n                    primary: 13,\n                    secondary: [2065]\n                }\n            },\n            description: {\n                description: \"Go to End\",\n                args: [{\n                    name: \"args\",\n                    schema: {\n                        type: \"object\",\n                        properties: {\n                            sticky: {\n                                description: n.a(\"stickydesc\", \"Stick to the end even when going to longer lines\"),\n                                type: \"boolean\",\n                                default: !1\n                            }\n                        }\n                    }\n                }]\n            }\n        })), e.CursorEndSelect = Object(a.j)(new w({\n            inSelectionMode: !0,\n            id: \"cursorEndSelect\",\n            precondition: void 0,\n            kbOpts: {\n                args: {\n                    sticky: !1\n                },\n                weight: 0,\n                kbExpr: S.a.textInputFocus,\n                primary: 1037,\n                mac: {\n                    primary: 1037,\n                    secondary: [3089]\n                }\n            },\n            description: {\n                description: \"Select to End\",\n                args: [{\n                    name: \"args\",\n                    schema: {\n                        type: \"object\",\n                        properties: {\n                            sticky: {\n                                description: n.a(\"stickydesc\", \"Stick to the end even when going to longer lines\"),\n                                type: \"boolean\",\n                                default: !1\n                            }\n                        }\n                    }\n                }]\n            }\n        }));\n        class C extends O {\n            constructor(e) {\n                super(e), this._inSelectionMode = e.inSelectionMode\n            }\n            runCoreEditorCommand(e, t) {\n                e.model.pushStackElement(), e.setCursorStates(t.source, 3, this._exec(e, e.getCursorStates())), e.revealPrimaryCursor(t.source, !0)\n            }\n            _exec(e, t) {\n                const i = [];\n                for (let o = 0, s = t.length; o < s; o++) {\n                    const s = t[o];\n                    var n = s.modelState.position.lineNumber,\n                        r = e.model.getLineMaxColumn(n);\n                    i[o] = d.d.fromModelState(s.modelState.move(this._inSelectionMode, n, r, 0))\n                }\n                return i\n            }\n        }\n        e.CursorLineEnd = Object(a.j)(new C({\n            inSelectionMode: !1,\n            id: \"cursorLineEnd\",\n            precondition: void 0,\n            kbOpts: {\n                weight: 0,\n                kbExpr: S.a.textInputFocus,\n                primary: 0,\n                mac: {\n                    primary: 291\n                }\n            }\n        })), e.CursorLineEndSelect = Object(a.j)(new C({\n            inSelectionMode: !0,\n            id: \"cursorLineEndSelect\",\n            precondition: void 0,\n            kbOpts: {\n                weight: 0,\n                kbExpr: S.a.textInputFocus,\n                primary: 0,\n                mac: {\n                    primary: 1315\n                }\n            }\n        }));\n        class x extends O {\n            constructor(e) {\n                super(e), this._inSelectionMode = e.inSelectionMode\n            }\n            runCoreEditorCommand(e, t) {\n                e.model.pushStackElement(), e.setCursorStates(t.source, 3, b.moveToBeginningOfBuffer(e, e.getCursorStates(), this._inSelectionMode)), e.revealPrimaryCursor(t.source, !0)\n            }\n        }\n        e.CursorTop = Object(a.j)(new x({\n            inSelectionMode: !1,\n            id: \"cursorTop\",\n            precondition: void 0,\n            kbOpts: {\n                weight: 0,\n                kbExpr: S.a.textInputFocus,\n                primary: 2062,\n                mac: {\n                    primary: 2064\n                }\n            }\n        })), e.CursorTopSelect = Object(a.j)(new x({\n            inSelectionMode: !0,\n            id: \"cursorTopSelect\",\n            precondition: void 0,\n            kbOpts: {\n                weight: 0,\n                kbExpr: S.a.textInputFocus,\n                primary: 3086,\n                mac: {\n                    primary: 3088\n                }\n            }\n        }));\n        class k extends O {\n            constructor(e) {\n                super(e), this._inSelectionMode = e.inSelectionMode\n            }\n            runCoreEditorCommand(e, t) {\n                e.model.pushStackElement(), e.setCursorStates(t.source, 3, b.moveToEndOfBuffer(e, e.getCursorStates(), this._inSelectionMode)), e.revealPrimaryCursor(t.source, !0)\n            }\n        }\n        e.CursorBottom = Object(a.j)(new k({\n            inSelectionMode: !1,\n            id: \"cursorBottom\",\n            precondition: void 0,\n            kbOpts: {\n                weight: 0,\n                kbExpr: S.a.textInputFocus,\n                primary: 2061,\n                mac: {\n                    primary: 2066\n                }\n            }\n        })), e.CursorBottomSelect = Object(a.j)(new k({\n            inSelectionMode: !0,\n            id: \"cursorBottomSelect\",\n            precondition: void 0,\n            kbOpts: {\n                weight: 0,\n                kbExpr: S.a.textInputFocus,\n                primary: 3085,\n                mac: {\n                    primary: 3090\n                }\n            }\n        }));\n        class L extends O {\n            constructor() {\n                super({\n                    id: \"editorScroll\",\n                    precondition: void 0,\n                    description: _.description\n                })\n            }\n            runCoreEditorCommand(e, t) {\n                var i = _.parse(t);\n                i && this._runEditorScroll(e, t.source, i)\n            }\n            _runEditorScroll(e, t, i) {\n                var n, r = this._computeDesiredScrollTop(e, i);\n                i.revealCursor && (n = e.getCompletelyVisibleViewRangeAtScrollTop(r), e.setCursorStates(t, 3, [b.findPositionInViewportIfOutside(e, e.getPrimaryCursorState(), n, i.select)])), e.setScrollTop(r, 0)\n            }\n            _computeDesiredScrollTop(e, t) {\n                if (1 === t.unit) {\n                    var i = e.getCompletelyVisibleViewRange();\n                    i = e.coordinatesConverter.convertViewRangeToModelRange(i);\n                    let n;\n                    return n = 1 === t.direction ? Math.max(1, i.startLineNumber - t.value) : Math.min(e.model.getLineCount(), i.startLineNumber + t.value), i = e.coordinatesConverter.convertModelPositionToViewPosition(new c.a(n, 1)), e.getVerticalOffsetForLineNumber(i.lineNumber)\n                }\n                let n;\n                return n = 3 === t.unit ? e.cursorConfig.pageSize * t.value : 4 === t.unit ? Math.round(e.cursorConfig.pageSize / 2) * t.value : t.value, t = (1 === t.direction ? -1 : 1) * n, e.getScrollTop() + t * e.cursorConfig.lineHeight\n            }\n        }\n        e.EditorScrollImpl = L, e.EditorScroll = Object(a.j)(new L), e.ScrollLineUp = Object(a.j)(new class extends O {\n            constructor() {\n                super({\n                    id: \"scrollLineUp\",\n                    precondition: void 0,\n                    kbOpts: {\n                        weight: 0,\n                        kbExpr: S.a.textInputFocus,\n                        primary: 2064,\n                        mac: {\n                            primary: 267\n                        }\n                    }\n                })\n            }\n            runCoreEditorCommand(t, i) {\n                e.EditorScroll._runEditorScroll(t, i.source, {\n                    direction: 1,\n                    unit: 2,\n                    value: 1,\n                    revealCursor: !1,\n                    select: !1\n                })\n            }\n        }), e.ScrollPageUp = Object(a.j)(new class extends O {\n            constructor() {\n                super({\n                    id: \"scrollPageUp\",\n                    precondition: void 0,\n                    kbOpts: {\n                        weight: 0,\n                        kbExpr: S.a.textInputFocus,\n                        primary: 2059,\n                        win: {\n                            primary: 523\n                        },\n                        linux: {\n                            primary: 523\n                        }\n                    }\n                })\n            }\n            runCoreEditorCommand(t, i) {\n                e.EditorScroll._runEditorScroll(t, i.source, {\n                    direction: 1,\n                    unit: 3,\n                    value: 1,\n                    revealCursor: !1,\n                    select: !1\n                })\n            }\n        }), e.ScrollLineDown = Object(a.j)(new class extends O {\n            constructor() {\n                super({\n                    id: \"scrollLineDown\",\n                    precondition: void 0,\n                    kbOpts: {\n                        weight: 0,\n                        kbExpr: S.a.textInputFocus,\n                        primary: 2066,\n                        mac: {\n                            primary: 268\n                        }\n                    }\n                })\n            }\n            runCoreEditorCommand(t, i) {\n                e.EditorScroll._runEditorScroll(t, i.source, {\n                    direction: 2,\n                    unit: 2,\n                    value: 1,\n                    revealCursor: !1,\n                    select: !1\n                })\n            }\n        }), e.ScrollPageDown = Object(a.j)(new class extends O {\n            constructor() {\n                super({\n                    id: \"scrollPageDown\",\n                    precondition: void 0,\n                    kbOpts: {\n                        weight: 0,\n                        kbExpr: S.a.textInputFocus,\n                        primary: 2060,\n                        win: {\n                            primary: 524\n                        },\n                        linux: {\n                            primary: 524\n                        }\n                    }\n                })\n            }\n            runCoreEditorCommand(t, i) {\n                e.EditorScroll._runEditorScroll(t, i.source, {\n                    direction: 2,\n                    unit: 3,\n                    value: 1,\n                    revealCursor: !1,\n                    select: !1\n                })\n            }\n        });\n        class N extends O {\n            constructor(e) {\n                super(e), this._inSelectionMode = e.inSelectionMode\n            }\n            runCoreEditorCommand(e, t) {\n                e.model.pushStackElement(), e.setCursorStates(t.source, 3, [b.word(e, e.getPrimaryCursorState(), this._inSelectionMode, t.position)]), e.revealPrimaryCursor(t.source, !0)\n            }\n        }\n        e.WordSelect = Object(a.j)(new N({\n            inSelectionMode: !1,\n            id: \"_wordSelect\",\n            precondition: void 0\n        })), e.WordSelectDrag = Object(a.j)(new N({\n            inSelectionMode: !0,\n            id: \"_wordSelectDrag\",\n            precondition: void 0\n        })), e.LastCursorWordSelect = Object(a.j)(new class extends O {\n            constructor() {\n                super({\n                    id: \"lastCursorWordSelect\",\n                    precondition: void 0\n                })\n            }\n            runCoreEditorCommand(e, t) {\n                var i = e.getLastAddedCursorIndex();\n                const n = e.getCursorStates(),\n                    r = n.slice(0),\n                    o = n[i];\n                r[i] = b.word(e, o, o.modelState.hasSelection(), t.position), e.model.pushStackElement(), e.setCursorStates(t.source, 3, r)\n            }\n        });\n        class D extends O {\n            constructor(e) {\n                super(e), this._inSelectionMode = e.inSelectionMode\n            }\n            runCoreEditorCommand(e, t) {\n                e.model.pushStackElement(), e.setCursorStates(t.source, 3, [b.line(e, e.getPrimaryCursorState(), this._inSelectionMode, t.position, t.viewPosition)]), e.revealPrimaryCursor(t.source, !1)\n            }\n        }\n        e.LineSelect = Object(a.j)(new D({\n            inSelectionMode: !1,\n            id: \"_lineSelect\",\n            precondition: void 0\n        })), e.LineSelectDrag = Object(a.j)(new D({\n            inSelectionMode: !0,\n            id: \"_lineSelectDrag\",\n            precondition: void 0\n        }));\n        class I extends O {\n            constructor(e) {\n                super(e), this._inSelectionMode = e.inSelectionMode\n            }\n            runCoreEditorCommand(e, t) {\n                var i = e.getLastAddedCursorIndex();\n                const n = e.getCursorStates(),\n                    r = n.slice(0);\n                r[i] = b.line(e, n[i], this._inSelectionMode, t.position, t.viewPosition), e.model.pushStackElement(), e.setCursorStates(t.source, 3, r)\n            }\n        }\n        e.LastCursorLineSelect = Object(a.j)(new I({\n            inSelectionMode: !1,\n            id: \"lastCursorLineSelect\",\n            precondition: void 0\n        })), e.LastCursorLineSelectDrag = Object(a.j)(new I({\n            inSelectionMode: !0,\n            id: \"lastCursorLineSelectDrag\",\n            precondition: void 0\n        })), e.ExpandLineSelection = Object(a.j)(new class extends O {\n            constructor() {\n                super({\n                    id: \"expandLineSelection\",\n                    precondition: void 0,\n                    kbOpts: {\n                        weight: 0,\n                        kbExpr: S.a.textInputFocus,\n                        primary: 2090\n                    }\n                })\n            }\n            runCoreEditorCommand(e, t) {\n                e.model.pushStackElement(), e.setCursorStates(t.source, 3, b.expandLineSelection(e, e.getCursorStates())), e.revealPrimaryCursor(t.source, !0)\n            }\n        }), e.CancelSelection = Object(a.j)(new class extends O {\n            constructor() {\n                super({\n                    id: \"cancelSelection\",\n                    precondition: S.a.hasNonEmptySelection,\n                    kbOpts: {\n                        weight: 0,\n                        kbExpr: S.a.textInputFocus,\n                        primary: 9,\n                        secondary: [1033]\n                    }\n                })\n            }\n            runCoreEditorCommand(e, t) {\n                e.model.pushStackElement(), e.setCursorStates(t.source, 3, [b.cancelSelection(e, e.getPrimaryCursorState())]), e.revealPrimaryCursor(t.source, !0)\n            }\n        }), e.RemoveSecondaryCursors = Object(a.j)(new class extends O {\n            constructor() {\n                super({\n                    id: \"removeSecondaryCursors\",\n                    precondition: S.a.hasMultipleSelections,\n                    kbOpts: {\n                        weight: 1,\n                        kbExpr: S.a.textInputFocus,\n                        primary: 9,\n                        secondary: [1033]\n                    }\n                })\n            }\n            runCoreEditorCommand(e, t) {\n                e.model.pushStackElement(), e.setCursorStates(t.source, 3, [e.getPrimaryCursorState()]), e.revealPrimaryCursor(t.source, !0), Object(s.c)(n.a(\"removedCursor\", \"Removed secondary cursors\"))\n            }\n        }), e.RevealLine = Object(a.j)(new class extends O {\n            constructor() {\n                super({\n                    id: \"revealLine\",\n                    precondition: void 0,\n                    description: y.description\n                })\n            }\n            runCoreEditorCommand(e, t) {\n                var i = t,\n                    n = i.lineNumber || 0;\n                let r = \"number\" == typeof n ? n + 1 : parseInt(n) + 1;\n                r < 1 && (r = 1), r > (n = e.model.getLineCount()) && (r = n), n = new h.a(r, 1, r, e.model.getLineMaxColumn(r));\n                let o = 0;\n                if (i.at) switch (i.at) {\n                    case y.RawAtArgument.Top:\n                        o = 3;\n                        break;\n                    case y.RawAtArgument.Center:\n                        o = 1;\n                        break;\n                    case y.RawAtArgument.Bottom:\n                        o = 4\n                }\n                n = e.coordinatesConverter.convertModelRangeToViewRange(n), e.revealRange(t.source, !1, n, o, 0)\n            }\n        }), e.SelectAll = new class extends E {\n            constructor() {\n                super(a.g)\n            }\n            runDOMCommand() {\n                r.g && (document.activeElement.focus(), document.activeElement.select()), document.execCommand(\"selectAll\")\n            }\n            runEditorCommand(e, t, i) {\n                (t = t._getViewModel()) && this.runCoreEditorCommand(t, i)\n            }\n            runCoreEditorCommand(e, t) {\n                e.model.pushStackElement(), e.setCursorStates(\"keyboard\", 3, [b.selectAll(e, e.getPrimaryCursorState())])\n            }\n        }, e.SetSelection = Object(a.j)(new class extends O {\n            constructor() {\n                super({\n                    id: \"setSelection\",\n                    precondition: void 0\n                })\n            }\n            runCoreEditorCommand(e, t) {\n                e.model.pushStackElement(), e.setCursorStates(t.source, 3, [d.d.fromModelSelection(t.selection)])\n            }\n        })\n    }(C = C || {});\n    const N = k.a.and(S.a.textInputFocus, S.a.columnSelection);\n\n    function D(e, t) {\n        L.a.registerKeybindingRule({\n            id: e,\n            primary: t,\n            when: N,\n            weight: 1\n        })\n    }\n\n    function I(e) {\n        return e.register(), e\n    }\n    D(C.CursorColumnSelectLeft.id, 1039), D(C.CursorColumnSelectRight.id, 1041), D(C.CursorColumnSelectUp.id, 1040), D(C.CursorColumnSelectPageUp.id, 1035), D(C.CursorColumnSelectDown.id, 1042), D(C.CursorColumnSelectPageDown.id, 1036),\n        function(e) {\n            class t extends a.c {\n                runEditorCommand(e, t, i) {\n                    var n = t._getViewModel();\n                    n && this.runCoreEditingCommand(t, n, i || {})\n                }\n            }\n            e.CoreEditingCommand = t, e.LineBreakInsert = Object(a.j)(new class extends t {\n                constructor() {\n                    super({\n                        id: \"lineBreakInsert\",\n                        precondition: S.a.writable,\n                        kbOpts: {\n                            weight: 0,\n                            kbExpr: S.a.textInputFocus,\n                            primary: 0,\n                            mac: {\n                                primary: 301\n                            }\n                        }\n                    })\n                }\n                runCoreEditingCommand(e, t, i) {\n                    e.pushUndoStop(), e.executeCommands(this.id, x.a.lineBreakInsert(t.cursorConfig, t.model, t.getCursorStates().map(e => e.modelState.selection)))\n                }\n            }), e.Outdent = Object(a.j)(new class extends t {\n                constructor() {\n                    super({\n                        id: \"outdent\",\n                        precondition: S.a.writable,\n                        kbOpts: {\n                            weight: 0,\n                            kbExpr: k.a.and(S.a.editorTextFocus, S.a.tabDoesNotMoveFocus),\n                            primary: 1026\n                        }\n                    })\n                }\n                runCoreEditingCommand(e, t, i) {\n                    e.pushUndoStop(), e.executeCommands(this.id, x.a.outdent(t.cursorConfig, t.model, t.getCursorStates().map(e => e.modelState.selection))), e.pushUndoStop()\n                }\n            }), e.Tab = Object(a.j)(new class extends t {\n                constructor() {\n                    super({\n                        id: \"tab\",\n                        precondition: S.a.writable,\n                        kbOpts: {\n                            weight: 0,\n                            kbExpr: k.a.and(S.a.editorTextFocus, S.a.tabDoesNotMoveFocus),\n                            primary: 2\n                        }\n                    })\n                }\n                runCoreEditingCommand(e, t, i) {\n                    e.pushUndoStop(), e.executeCommands(this.id, x.a.tab(t.cursorConfig, t.model, t.getCursorStates().map(e => e.modelState.selection))), e.pushUndoStop()\n                }\n            }), e.DeleteLeft = Object(a.j)(new class extends t {\n                constructor() {\n                    super({\n                        id: \"deleteLeft\",\n                        precondition: void 0,\n                        kbOpts: {\n                            weight: 0,\n                            kbExpr: S.a.textInputFocus,\n                            primary: 1,\n                            secondary: [1025],\n                            mac: {\n                                primary: 1,\n                                secondary: [1025, 294, 257]\n                            }\n                        }\n                    })\n                }\n                runCoreEditingCommand(e, t, i) {\n                    var [n, r] = f.a.deleteLeft(t.getPrevEditOperationType(), t.cursorConfig, t.model, t.getCursorStates().map(e => e.modelState.selection), t.getCursorAutoClosedCharacters());\n                    n && e.pushUndoStop(), e.executeCommands(this.id, r), t.setPrevEditOperationType(2)\n                }\n            }), e.DeleteRight = Object(a.j)(new class extends t {\n                constructor() {\n                    super({\n                        id: \"deleteRight\",\n                        precondition: void 0,\n                        kbOpts: {\n                            weight: 0,\n                            kbExpr: S.a.textInputFocus,\n                            primary: 20,\n                            mac: {\n                                primary: 20,\n                                secondary: [290, 276]\n                            }\n                        }\n                    })\n                }\n                runCoreEditingCommand(e, t, i) {\n                    var [n, r] = f.a.deleteRight(t.getPrevEditOperationType(), t.cursorConfig, t.model, t.getCursorStates().map(e => e.modelState.selection));\n                    n && e.pushUndoStop(), e.executeCommands(this.id, r), t.setPrevEditOperationType(3)\n                }\n            }), e.Undo = new class extends E {\n                constructor() {\n                    super(a.h)\n                }\n                runDOMCommand() {\n                    document.execCommand(\"undo\")\n                }\n                runEditorCommand(e, t, i) {\n                    if (t.hasModel() && !0 !== t.getOption(80)) return t.getModel().undo()\n                }\n            }, e.Redo = new class extends E {\n                constructor() {\n                    super(a.f)\n                }\n                runDOMCommand() {\n                    document.execCommand(\"redo\")\n                }\n                runEditorCommand(e, t, i) {\n                    if (t.hasModel() && !0 !== t.getOption(80)) return t.getModel().redo()\n                }\n            }\n        }({});\n    class T extends a.a {\n        constructor(e, t, i) {\n            super({\n                id: e,\n                precondition: void 0,\n                description: i\n            }), this._handlerId = t\n        }\n        runCommand(e, t) {\n            const i = e.get(l.a).getFocusedCodeEditor();\n            i && i.trigger(\"keyboard\", this._handlerId, t)\n        }\n    }\n\n    function M(e, t) {\n        I(new T(\"default:\" + e, e)), I(new T(e, e, t))\n    }\n    M(\"type\", {\n        description: \"类型\",\n        args: [{\n            name: \"args\",\n            schema: {\n                type: \"object\",\n                required: [\"text\"],\n                properties: {\n                    text: {\n                        type: \"string\"\n                    }\n                }\n            }\n        }]\n    }), M(\"replacePreviousChar\"), M(\"compositionType\"), M(\"compositionStart\"), M(\"compositionEnd\"), M(\"paste\"), M(\"cut\")\n}, function(e, t, i) {\n    \"use strict\";\n\n    function n(e) {\n        const t = this;\n        let i, n = !1;\n        return function() {\n            return n || (n = !0, i = e.apply(t, arguments)), i\n        }\n    }\n    i.d(t, \"a\", (function() {\n        return n\n    }))\n}, function(e, t, i) {\n    var n = i(276),\n        r = i(277),\n        o = i(182),\n        s = i(278);\n    e.exports = function(e, t) {\n        return n(e) || r(e, t) || o(e, t) || s()\n    }, e.exports.default = e.exports, e.exports.__esModule = !0\n}, function(e, t, i) {\n    \"use strict\";\n    i.d(t, \"e\", (function() {\n        return r\n    })), i.d(t, \"d\", (function() {\n        return s\n    })), i.d(t, \"a\", (function() {\n        return a\n    })), i.d(t, \"c\", (function() {\n        return l\n    })), i.d(t, \"b\", (function() {\n        return d\n    }));\n    var n = i(31);\n\n    function r(e, t) {\n        if (0 === e) return null;\n        var i = (65535 & e) >>> 0;\n        return new a(0 != (e = (4294901760 & e) >>> 16) ? [o(i, t), o(e, t)] : [o(i, t)])\n    }\n\n    function o(e, t) {\n        var i = !!(2048 & e),\n            n = !!(256 & e);\n        return new s(2 === t ? n : i, !!(1024 & e), !!(512 & e), n = 2 === t ? i : n, e = 255 & e)\n    }\n    class s {\n        constructor(e, t, i, n, r) {\n            this.ctrlKey = e, this.shiftKey = t, this.altKey = i, this.metaKey = n, this.keyCode = r\n        }\n        equals(e) {\n            return this.ctrlKey === e.ctrlKey && this.shiftKey === e.shiftKey && this.altKey === e.altKey && this.metaKey === e.metaKey && this.keyCode === e.keyCode\n        }\n        isModifierKey() {\n            return 0 === this.keyCode || 5 === this.keyCode || 57 === this.keyCode || 6 === this.keyCode || 4 === this.keyCode\n        }\n        toChord() {\n            return new a([this])\n        }\n        isDuplicateModifierCase() {\n            return this.ctrlKey && 5 === this.keyCode || this.shiftKey && 4 === this.keyCode || this.altKey && 6 === this.keyCode || this.metaKey && 57 === this.keyCode\n        }\n    }\n    class a {\n        constructor(e) {\n            if (0 === e.length) throw Object(n.c)(\"parts\");\n            this.parts = e\n        }\n    }\n    class l {\n        constructor(e, t, i, n, r, o) {\n            this.ctrlKey = e, this.shiftKey = t, this.altKey = i, this.metaKey = n, this.keyLabel = r, this.keyAriaLabel = o\n        }\n    }\n    class d {}\n}, function(e, t, i) {\n    \"use strict\";\n    i.d(t, \"a\", (function() {\n        return r\n    }));\n    var n = i(5);\n    class r {\n        static insert(e, t) {\n            return {\n                range: new n.a(e.lineNumber, e.column, e.lineNumber, e.column),\n                text: t,\n                forceMoveMarkers: !0\n            }\n        }\n        static delete(e) {\n            return {\n                range: e,\n                text: null\n            }\n        }\n        static replace(e, t) {\n            return {\n                range: e,\n                text: t\n            }\n        }\n        static replaceMove(e, t) {\n            return {\n                range: e,\n                text: t,\n                forceMoveMarkers: !0\n            }\n        }\n    }\n}, function(e, t, i) {\n    \"use strict\";\n    i.d(t, \"a\", (function() {\n        return n\n    })), i.d(t, \"b\", (function() {\n        return r\n    })), i.d(t, \"c\", (function() {\n        return o\n    }));\n    const n = {\n        RESOURCES: \"ResourceURLs\",\n        DOWNLOAD_URL: \"DownloadURL\",\n        FILES: \"Files\",\n        TEXT: i(98).a.text,\n        TERMINALS: \"Terminals\"\n    };\n    class r {\n        constructor(e) {\n            this.data = e\n        }\n        update() {}\n        getData() {\n            return this.data\n        }\n    }\n    const o = {\n        CurrentDragAndDropData: void 0\n    }\n}, function(e, t, i) {\n    \"use strict\";\n    i.d(t, \"d\", (function() {\n        return s\n    })), i.d(t, \"c\", (function() {\n        return _\n    })), i.d(t, \"a\", (function() {\n        return n\n    })), i.d(t, \"b\", (function() {\n        return I\n    }));\n    t = i(73);\n    var n, r = i(6);\n\n    function o(...e) {\n        return function(t, i) {\n            for (let r = 0, o = e.length; r < o; r++) {\n                var n = e[r](t, i);\n                if (n) return n\n            }\n            return null\n        }\n    }\n    const s = function(e, t, i) {\n        if (!i || i.length < t.length) return null;\n        let n;\n        return n = e ? r.R(i, t) : 0 === i.indexOf(t), n ? 0 < t.length ? [{\n            start: 0,\n            end: t.length\n        }] : [] : null\n    }.bind(void 0, !0);\n\n    function a(e) {\n        return 97 <= e && e <= 122\n    }\n\n    function l(e) {\n        return 65 <= e && e <= 90\n    }\n\n    function d(e) {\n        return 48 <= e && e <= 57\n    }\n\n    function c(e) {\n        return 32 === e || 9 === e || 10 === e || 13 === e\n    }\n    const h = new Set;\n\n    function u(e) {\n        return a(e) || l(e) || d(e)\n    }\n\n    function p(e, t) {\n        return 0 === t.length ? t = [e] : e.end === t[0].start ? t[0].start = e.start : t.unshift(e), t\n    }\n\n    function g(e, t) {\n        for (let n = t; n < e.length; n++) {\n            var i = e.charCodeAt(n);\n            if (l(i) || d(i) || 0 < n && !u(e.charCodeAt(n - 1))) return n\n        }\n        return e.length\n    }\n\n    function f(e, t) {\n        if (!t) return null;\n        if (0 === (t = t.trim()).length) return null;\n        if (! function(e) {\n                let t, i = 0,\n                    n = 0,\n                    r = 0;\n                for (let o = 0; o < e.length; o++) l(t = e.charCodeAt(o)) && i++, a(t) && n++, c(t) && r++;\n                return 0 !== i && 0 !== n || 0 !== r ? i <= 5 : e.length <= 30\n            }(e)) return null;\n        if (60 < t.length) return null;\n        var i = function(e) {\n            let t, i = 0,\n                n = 0,\n                r = 0,\n                o = 0;\n            for (let s = 0; s < e.length; s++) l(t = e.charCodeAt(s)) && i++, a(t) && n++, u(t) && r++, d(t) && o++;\n            return {\n                upperPercent: i / e.length,\n                lowerPercent: n / e.length,\n                alphaPercent: r / e.length,\n                numericPercent: o / e.length\n            }\n        }(t);\n        if (! function(e) {\n                var {\n                    upperPercent: t,\n                    lowerPercent: i,\n                    alphaPercent: n,\n                    numericPercent: e\n                } = e;\n                return .2 < i && t < .8 && .6 < n && e < .2\n            }(i)) {\n            if (! function(e) {\n                    var {\n                        upperPercent: t,\n                        lowerPercent: e\n                    } = e;\n                    return 0 === e && .6 < t\n                }(i)) return null;\n            t = t.toLowerCase()\n        }\n        let n = null,\n            r = 0;\n        for (e = e.toLowerCase(); r < t.length && null === (n = function e(t, i, n, r) {\n                if (n === t.length) return [];\n                if (r === i.length) return null;\n                if (t[n] !== i[r].toLowerCase()) return null; {\n                    let o = null,\n                        s = r + 1;\n                    for (o = e(t, i, n + 1, r + 1); !o && (s = g(i, s)) < i.length;) o = e(t, i, n + 1, s), s++;\n                    return null === o ? null : p({\n                        start: r,\n                        end: r + 1\n                    }, o)\n                }\n            }(e, t, 0, r));) r = g(t, r + 1);\n        return n\n    }\n    \"`~!@#$%^&*()-=+[{]}\\\\|;:'\\\",.<>/?\".split(\"\").forEach(e => h.add(e.charCodeAt(0)));\n    const m = o(s, f, (function(e, t) {\n            return -1 === (t = t.toLowerCase().indexOf(e.toLowerCase())) ? null : [{\n                start: t,\n                end: t + e.length\n            }]\n        })),\n        v = o(s, f, (function(e, t) {\n            return function e(t, i, n, r) {\n                if (n === t.length) return [];\n                if (r === i.length) return null;\n                if (t[n] !== i[r]) return e(t, i, n, r + 1); {\n                    let o = null;\n                    return (o = e(t, i, n + 1, r + 1)) ? p({\n                        start: r,\n                        end: r + 1\n                    }, o) : null\n                }\n            }(e.toLowerCase(), t.toLowerCase(), 0, 0)\n        })),\n        b = new t.a(1e4);\n\n    function _(e, t, i = !1) {\n        if (\"string\" != typeof e || \"string\" != typeof t) return null;\n        let n = b.get(e);\n        n || (n = new RegExp(r.p(e), \"i\"), b.set(e, n));\n        var o = n.exec(t);\n        return o ? [{\n            start: o.index,\n            end: o.index + o[0].length\n        }] : (i ? v : m)(e, t)\n    }\n    const w = 128;\n\n    function y() {\n        const e = [],\n            t = [];\n        for (let e = 0; e <= w; e++) t[e] = 0;\n        for (let i = 0; i <= w; i++) e.push(t.slice(0));\n        return e\n    }\n\n    function C(e) {\n        const t = [];\n        for (let i = 0; i <= e; i++) t[i] = 0;\n        return t\n    }\n    const x = C(256),\n        S = C(256),\n        k = y(),\n        L = y(),\n        O = y();\n\n    function E(e, t) {\n        if (t < 0 || t >= e.length) return !1;\n        var i = e.codePointAt(t);\n        switch (i) {\n            case 95:\n            case 45:\n            case 46:\n            case 32:\n            case 47:\n            case 92:\n            case 39:\n            case 34:\n            case 58:\n            case 36:\n            case 60:\n            case 40:\n            case 91:\n                return !0;\n            case void 0:\n                return !1;\n            default:\n                return !!r.B(i)\n        }\n    }\n\n    function N(e, t) {\n        if (t < 0 || t >= e.length) return !1;\n        switch (e.charCodeAt(t)) {\n            case 32:\n            case 9:\n                return !0;\n            default:\n                return !1\n        }\n    }\n\n    function D(e, t, i) {\n        return t[e] !== i[e]\n    }\n\n    function I(e, t, i, n, r, o, s) {\n        var a = e.length > w ? w : e.length,\n            l = n.length > w ? w : n.length;\n        if (!(a <= i || l <= o || l - o < a - i) && function(e, t, i, n, r, o, s) {\n                for (; t < i && r < o;) e[t] === n[r] && (x[t] = r, t += 1), r += 1;\n                return t === i\n            }(t, i, a, r, o, l)) {\n            ! function(e, t, i, n, r, o) {\n                let s = e - 1,\n                    a = t - 1;\n                for (; s >= i && a >= n;) r[s] === o[a] && (S[s] = a, s--), a--\n            }(a, l, i, o, t, r);\n            let b = 1,\n                _ = 1,\n                w = i,\n                y = o;\n            var d = [!1];\n            for (b = 1, w = i; w < a; b++, w++) {\n                var c = x[w],\n                    h = S[w],\n                    u = w + 1 < a ? S[w + 1] : l;\n                for (_ = c - o + 1, y = c; y < u; _++, y++) {\n                    let s = Number.MIN_SAFE_INTEGER,\n                        a = !1;\n                    y <= h && (s = function(e, t, i, n, r, o, s, a, l, d, c) {\n                        if (t[i] !== o[s]) return Number.MIN_SAFE_INTEGER;\n                        let h = 1,\n                            u = !1;\n                        return s === i - n ? h = e[i] === r[s] ? 7 : 5 : !D(s, r, o) || 0 !== s && D(s - 1, r, o) ? !E(o, s) || 0 !== s && E(o, s - 1) ? (E(o, s - 1) || N(o, s - 1)) && (h = 5, u = !0) : h = 5 : (h = e[i] === r[s] ? 7 : 5, u = !0), 1 < h && i === n && (c[0] = !0), u = u || D(s, r, o) || E(o, s - 1) || N(o, s - 1), i === n ? l < s && (h -= u ? 3 : 5) : h += d ? u ? 2 : 0 : u ? 0 : 1, s + 1 === a && (h -= u ? 3 : 5), h\n                    }(e, t, w, i, n, r, y, l, o, 0 === k[b - 1][_ - 1], d));\n                    let u = 0;\n                    s !== Number.MAX_SAFE_INTEGER && (a = !0, u = s + L[b - 1][_ - 1]);\n                    var p = y > c,\n                        g = p ? L[b][_ - 1] + (0 < k[b][_ - 1] ? -5 : 0) : 0,\n                        f = y > c + 1 && 0 < k[b][_ - 1],\n                        m = f ? L[b][_ - 2] + (0 < k[b][_ - 2] ? -5 : 0) : 0;\n                    if (f && (!p || g <= m) && (!a || m >= u)) L[b][_] = m, O[b][_] = 3, k[b][_] = 0;\n                    else if (p && (!a || g >= u)) L[b][_] = g, O[b][_] = 2, k[b][_] = 0;\n                    else {\n                        if (!a) throw new Error(\"not possible\");\n                        L[b][_] = u, O[b][_] = 1, k[b][_] = k[b - 1][_ - 1] + 1\n                    }\n                }\n            }\n            if (d[0] || s) {\n                b--, _--;\n                const e = [L[b][_], o];\n                let d = 0,\n                    c = 0;\n                for (; 1 <= b;) {\n                    let s = _;\n                    do {\n                        var v = O[b][s];\n                        if (3 === v) s -= 2;\n                        else {\n                            if (2 !== v) break;\n                            s -= 1\n                        }\n                    } while (1 <= s);\n                    1 < d && t[i + b - 1] === r[o + _ - 1] && !D(s + o - 1, n, r) && d + 1 > k[b][s] && (s = _), s === _ ? d++ : d = 1, c = c || s, b--, _ = s - 1, e.push(_)\n                }\n                return l === a && (e[0] += 2), s = c - a, e[0] -= s, e\n            }\n        }\n    }(t = n = n || {}).Default = [-100, 0], t.isDefault = function(e) {\n        return !e || 2 === e.length && -100 === e[0] && 0 === e[1]\n    }\n}, function(e, t, i) {\n    \"use strict\";\n    i.d(t, \"c\", (function() {\n        return c\n    })), i.d(t, \"d\", (function() {\n        return h\n    })), i.d(t, \"a\", (function() {\n        return u\n    })), i.d(t, \"b\", (function() {\n        return p\n    }));\n    var n = i(6),\n        r = i(9),\n        o = i(59);\n    let s, a, l;\n\n    function d() {\n        return s = s || new TextDecoder(\"UTF-16LE\"), s\n    }\n\n    function c() {\n        return l = l || (r.e() ? d() : (a = a || new TextDecoder(\"UTF-16BE\"), a)), l\n    }\n    const h = \"undefined\" != typeof TextDecoder;\n    let u, p;\n\n    function g(e, t, i) {\n        let n = [],\n            r = 0;\n        for (let a = 0; a < i; a++) {\n            var s = o.b(e, t);\n            t += 2, n[r++] = String.fromCharCode(s)\n        }\n        return n.join(\"\")\n    }\n    p = h ? (u = e => new f(e), function(e, t, i) {\n        var n = new Uint16Array(e.buffer, t, i);\n        return 0 < i && (65279 === n[0] || 65534 === n[0]) ? g(e, t, i) : d().decode(n)\n    }) : (u = e => new m, g);\n    class f {\n        constructor(e) {\n            this._capacity = 0 | e, this._buffer = new Uint16Array(this._capacity), this._completedStrings = null, this._bufferLength = 0\n        }\n        reset() {\n            this._completedStrings = null, this._bufferLength = 0\n        }\n        build() {\n            return null !== this._completedStrings ? (this._flushBuffer(), this._completedStrings.join(\"\")) : this._buildBuffer()\n        }\n        _buildBuffer() {\n            if (0 === this._bufferLength) return \"\";\n            var e = new Uint16Array(this._buffer.buffer, 0, this._bufferLength);\n            return c().decode(e)\n        }\n        _flushBuffer() {\n            var e = this._buildBuffer();\n            this._bufferLength = 0, null === this._completedStrings ? this._completedStrings = [e] : this._completedStrings[this._completedStrings.length] = e\n        }\n        write1(e) {\n            var t = this._capacity - this._bufferLength;\n            t <= 1 && (0 != t && !n.E(e) || this._flushBuffer()), this._buffer[this._bufferLength++] = e\n        }\n        appendASCII(e) {\n            this._bufferLength === this._capacity && this._flushBuffer(), this._buffer[this._bufferLength++] = e\n        }\n        appendASCIIString(e) {\n            var t = e.length;\n            if (this._bufferLength + t >= this._capacity) return this._flushBuffer(), void(this._completedStrings[this._completedStrings.length] = e);\n            for (let i = 0; i < t; i++) this._buffer[this._bufferLength++] = e.charCodeAt(i)\n        }\n    }\n    class m {\n        constructor() {\n            this._pieces = [], this._piecesLen = 0\n        }\n        reset() {\n            this._pieces = [], this._piecesLen = 0\n        }\n        build() {\n            return this._pieces.join(\"\")\n        }\n        write1(e) {\n            this._pieces[this._piecesLen++] = String.fromCharCode(e)\n        }\n        appendASCII(e) {\n            this._pieces[this._piecesLen++] = String.fromCharCode(e)\n        }\n        appendASCIIString(e) {\n            this._pieces[this._piecesLen++] = e\n        }\n    }\n}, function(e, t, i) {\n    \"use strict\";\n    i.d(t, \"a\", (function() {\n        return jg\n    })), i.d(t, \"b\", (function() {\n        return Bg\n    })), i.d(t, \"c\", (function() {\n        return Vg\n    })), i.d(t, \"f\", (function() {\n        return Wg\n    })), i.d(t, \"g\", (function() {\n        return zg\n    })), i.d(t, \"d\", (function() {\n        return Hg\n    })), i.d(t, \"e\", (function() {\n        return Ug\n    })), i.d(t, \"h\", (function() {\n        return Kg\n    })), i.d(t, \"i\", (function() {\n        return $g\n    })), i.d(t, \"j\", (function() {\n        return qg\n    }));\n    var n = i(29),\n        r = i(136),\n        o = (i(386), i(67)),\n        s = i(1),\n        a = i(51),\n        l = i(79),\n        d = i(73),\n        c = i(59),\n        h = i(39);\n\n    function u(e) {\n        return function e(t, i = 0) {\n            if (!t || 200 < i) return t;\n            if (\"object\" == typeof t) {\n                switch (t.$mid) {\n                    case 1:\n                        return h.a.revive(t);\n                    case 2:\n                        return new RegExp(t.source, t.flags)\n                }\n                if (t instanceof c.a || t instanceof Uint8Array) return t;\n                if (Array.isArray(t))\n                    for (let n = 0; n < t.length; ++n) t[n] = e(t[n], i + 1);\n                else\n                    for (const n in t) Object.hasOwnProperty.call(t, n) && (t[n] = e(t[n], i + 1))\n            }\n            return t\n        }(JSON.parse(e))\n    }\n    var p, g = i(54),\n        f = i(140),\n        m = i(46);\n    (ae = p = p || {})[ae.API = 0] = \"API\", ae[ae.USER = 1] = \"USER\";\n    var v = i(4),\n        b = i(6),\n        _ = i(26),\n        w = function(e, t, i, n) {\n            return new(i = i || Promise)((function(r, o) {\n                function s(e) {\n                    try {\n                        l(n.next(e))\n                    } catch (e) {\n                        o(e)\n                    }\n                }\n\n                function a(e) {\n                    try {\n                        l(n.throw(e))\n                    } catch (e) {\n                        o(e)\n                    }\n                }\n\n                function l(e) {\n                    var t;\n                    e.done ? r(e.value) : ((t = e.value) instanceof i ? t : new i((function(e) {\n                        e(t)\n                    }))).then(s, a)\n                }\n                l((n = n.apply(e, t || [])).next())\n            }))\n        };\n    const y = Object(_.c)(\"openerService\");\n\n    function C(e, t) {\n        return h.a.isUri(e) ? Object(b.r)(e.scheme, t) : Object(b.R)(e, t + \":\")\n    }\n    Object.freeze({\n        _serviceBrand: void 0,\n        registerOpener: () => v.a.None,\n        registerValidator: () => v.a.None,\n        registerExternalUriResolver: () => v.a.None,\n        setDefaultExternalOpener() {},\n        registerExternalOpener: () => v.a.None,\n        open() {\n            return w(this, void 0, void 0, (function*() {\n                return !1\n            }))\n        },\n        resolveExternalUri(e) {\n            return w(this, void 0, void 0, (function*() {\n                return {\n                    resolved: e,\n                    dispose() {}\n                }\n            }))\n        }\n    });\n    var x = function(e, t, i, n) {\n            var r, o = arguments.length,\n                s = o < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n            if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n);\n            else\n                for (var a = e.length - 1; 0 <= a; a--)(r = e[a]) && (s = (o < 3 ? r(s) : 3 < o ? r(t, i, s) : r(t, i)) || s);\n            return 3 < o && s && Object.defineProperty(t, i, s), s\n        },\n        S = function(e, t) {\n            return function(i, n) {\n                t(i, n, e)\n            }\n        },\n        k = function(e, t, i, n) {\n            return new(i = i || Promise)((function(r, o) {\n                function s(e) {\n                    try {\n                        l(n.next(e))\n                    } catch (e) {\n                        o(e)\n                    }\n                }\n\n                function a(e) {\n                    try {\n                        l(n.throw(e))\n                    } catch (e) {\n                        o(e)\n                    }\n                }\n\n                function l(e) {\n                    var t;\n                    e.done ? r(e.value) : ((t = e.value) instanceof i ? t : new i((function(e) {\n                        e(t)\n                    }))).then(s, a)\n                }\n                l((n = n.apply(e, t || [])).next())\n            }))\n        };\n    let L = class {\n        constructor(e) {\n            this._commandService = e\n        }\n        open(e, t) {\n            return k(this, void 0, void 0, (function*() {\n                if (!C(e, g.c.command)) return !1;\n                if (null == t || !t.allowCommands) return !0;\n                \"string\" == typeof e && (e = h.a.parse(e));\n                let i = [];\n                try {\n                    i = u(decodeURIComponent(e.query))\n                } catch (t) {\n                    try {\n                        i = u(e.query)\n                    } catch (e) {}\n                }\n                return Array.isArray(i) || (i = [i]), yield this._commandService.executeCommand(e.path, ...i), !0\n            }))\n        }\n    };\n    L = x([S(0, m.b)], L);\n    let O = class {\n        constructor(e) {\n            this._editorService = e\n        }\n        open(e, t) {\n            return k(this, void 0, void 0, (function*() {\n                \"string\" == typeof e && (e = h.a.parse(e));\n                let i = void 0;\n                var n = /^L?(\\d+)(?:,(\\d+))?/.exec(e.fragment);\n                return n && (i = {\n                    startLineNumber: parseInt(n[1]),\n                    startColumn: n[2] ? parseInt(n[2]) : 1\n                }, e = e.with({\n                    fragment: \"\"\n                })), e.scheme === g.c.file && (e = Object(f.c)(e)), yield this._editorService.openCodeEditor({\n                    resource: e,\n                    options: Object.assign({\n                        selection: i,\n                        context: null != t && t.fromUserGesture ? p.USER : p.API\n                    }, null == t ? void 0 : t.editorOptions)\n                }, this._editorService.getFocusedCodeEditor(), null == t ? void 0 : t.openToSide), !0\n            }))\n        }\n    };\n    O = x([S(0, o.a)], O);\n    let E = class {\n        constructor(e, t) {\n            this._openers = new l.a, this._validators = new l.a, this._resolvers = new l.a, this._resolvedUriTargets = new d.b(e => e.with({\n                path: null,\n                fragment: null,\n                query: null\n            }).toString()), this._externalOpeners = new l.a, this._defaultExternalOpener = {\n                openExternal: e => k(this, void 0, void 0, (function*() {\n                    return C(e, g.c.http) || C(e, g.c.https) ? s.U(e) : window.location.href = e, !0\n                }))\n            }, this._openers.push({\n                open: (e, t) => k(this, void 0, void 0, (function*() {\n                    return !!(null != t && t.openExternal || C(e, g.c.mailto) || C(e, g.c.http) || C(e, g.c.https)) && (yield this._doOpenExternal(e, t), !0)\n                }))\n            }), this._openers.push(new L(t)), this._openers.push(new O(e))\n        }\n        registerOpener(e) {\n            return {\n                dispose: this._openers.unshift(e)\n            }\n        }\n        registerValidator(e) {\n            return {\n                dispose: this._validators.push(e)\n            }\n        }\n        registerExternalUriResolver(e) {\n            return {\n                dispose: this._resolvers.push(e)\n            }\n        }\n        setDefaultExternalOpener(e) {\n            this._defaultExternalOpener = e\n        }\n        registerExternalOpener(e) {\n            return {\n                dispose: this._externalOpeners.push(e)\n            }\n        }\n        open(e, t) {\n            var i;\n            return k(this, void 0, void 0, (function*() {\n                var n = \"string\" == typeof e ? h.a.parse(e) : e,\n                    r = null !== (i = this._resolvedUriTargets.get(n)) && void 0 !== i ? i : e;\n                for (const e of this._validators)\n                    if (!(yield e.shouldOpen(r))) return !1;\n                for (const i of this._openers)\n                    if (yield i.open(e, t)) return !0;\n                return !1\n            }))\n        }\n        resolveExternalUri(e, t) {\n            return k(this, void 0, void 0, (function*() {\n                for (const n of this._resolvers) try {\n                    var i = yield n.resolveExternalUri(e, t);\n                    if (i) return this._resolvedUriTargets.has(i.resolved) || this._resolvedUriTargets.set(i.resolved, e), i\n                } catch (i) {}\n                throw new Error(\"Could not resolve external URI: \" + e.toString())\n            }))\n        }\n        _doOpenExternal(e, t) {\n            return k(this, void 0, void 0, (function*() {\n                const i = \"string\" == typeof e ? h.a.parse(e) : e;\n                let n, r;\n                try {\n                    n = (yield this.resolveExternalUri(i, t)).resolved\n                } catch (r) {\n                    n = i\n                }\n                if (r = \"string\" == typeof e && i.toString() === n.toString() ? e : encodeURI(n.toString(!0)), null != t && t.allowContributedOpeners) {\n                    var o = \"string\" != typeof(null == t ? void 0 : t.allowContributedOpeners) || null == t ? void 0 : t.allowContributedOpeners;\n                    for (const e of this._externalOpeners)\n                        if (yield e.openExternal(r, {\n                                sourceUri: i,\n                                preferredOpenerId: o\n                            }, a.a.None)) return !0\n                }\n                return this._defaultExternalOpener.openExternal(r, {\n                    sourceUri: i\n                }, a.a.None)\n            }))\n        }\n        dispose() {\n            this._validators.clear()\n        }\n    };\n    E = x([S(0, o.a), S(1, m.b)], E);\n    var N = i(155),\n        D = i(2),\n        I = i(47),\n        T = i(5);\n    const M = {\n        followsCaret: !0,\n        ignoreCharChanges: !0,\n        alwaysRevealFirst: !0\n    };\n    class P extends v.a {\n        constructor(e, t = {}) {\n            super(), this._onDidUpdate = this._register(new D.b), this._editor = e, this._options = I.e(t, M, !1), this.disposed = !1, this.nextIdx = -1, this.ranges = [], this.ignoreSelectionChange = !1, this.revealFirst = Boolean(this._options.alwaysRevealFirst), this._register(this._editor.onDidDispose(() => this.dispose())), this._register(this._editor.onDidUpdateDiff(() => this._onDiffUpdated())), this._options.followsCaret && this._register(this._editor.getModifiedEditor().onDidChangeCursorPosition(e => {\n                this.ignoreSelectionChange || (this.nextIdx = -1)\n            })), this._options.alwaysRevealFirst && this._register(this._editor.getModifiedEditor().onDidChangeModel(e => {\n                this.revealFirst = !0\n            })), this._init()\n        }\n        _init() {\n            this._editor.getLineChanges()\n        }\n        _onDiffUpdated() {\n            this._init(), this._compute(this._editor.getLineChanges()), this.revealFirst && null !== this._editor.getLineChanges() && (this.revealFirst = !1, this.nextIdx = -1, this.next(1))\n        }\n        _compute(e) {\n            this.ranges = [], e && e.forEach(e => {\n                !this._options.ignoreCharChanges && e.charChanges ? e.charChanges.forEach(e => {\n                    this.ranges.push({\n                        rhs: !0,\n                        range: new T.a(e.modifiedStartLineNumber, e.modifiedStartColumn, e.modifiedEndLineNumber, e.modifiedEndColumn)\n                    })\n                }) : 0 === e.modifiedEndLineNumber ? this.ranges.push({\n                    rhs: !0,\n                    range: new T.a(e.modifiedStartLineNumber, 1, e.modifiedStartLineNumber + 1, 1)\n                }) : this.ranges.push({\n                    rhs: !0,\n                    range: new T.a(e.modifiedStartLineNumber, 1, e.modifiedEndLineNumber + 1, 1)\n                })\n            }), this.ranges.sort((e, t) => T.a.compareRangesUsingStarts(e.range, t.range)), this._onDidUpdate.fire(this)\n        }\n        _initIdx(e) {\n            let t = !1,\n                i = this._editor.getPosition();\n            if (i) {\n                for (let n = 0, r = this.ranges.length; n < r && !t; n++) {\n                    let r = this.ranges[n].range;\n                    i.isBeforeOrEqual(r.getStartPosition()) && (this.nextIdx = n + (e ? 0 : -1), t = !0)\n                }\n                t || (this.nextIdx = e ? 0 : this.ranges.length - 1), this.nextIdx < 0 && (this.nextIdx = this.ranges.length - 1)\n            } else this.nextIdx = 0\n        }\n        _move(e, t) {\n            if (N.a(!this.disposed, \"Illegal State - diff navigator has been disposed\"), this.canNavigate()) {\n                -1 === this.nextIdx ? this._initIdx(e) : e ? (this.nextIdx += 1, this.nextIdx >= this.ranges.length && (this.nextIdx = 0)) : (--this.nextIdx, this.nextIdx < 0 && (this.nextIdx = this.ranges.length - 1));\n                let n = this.ranges[this.nextIdx];\n                this.ignoreSelectionChange = !0;\n                try {\n                    var i = n.range.getStartPosition();\n                    this._editor.setPosition(i), this._editor.revealRangeInCenter(n.range, t)\n                } finally {\n                    this.ignoreSelectionChange = !1\n                }\n            }\n        }\n        canNavigate() {\n            return this.ranges && 0 < this.ranges.length\n        }\n        next(e = 0) {\n            this._move(!0, e)\n        }\n        previous(e = 0) {\n            this._move(!1, e)\n        }\n        dispose() {\n            super.dispose(), this.ranges = [], this.disposed = !0\n        }\n    }\n    var A = i(9);\n    const R = new class {\n            constructor() {\n                this._zoomLevel = 0, this._onDidChangeZoomLevel = new D.b, this.onDidChangeZoomLevel = this._onDidChangeZoomLevel.event\n            }\n            getZoomLevel() {\n                return this._zoomLevel\n            }\n            setZoomLevel(e) {\n                e = Math.min(Math.max(-5, e), 20), this._zoomLevel !== e && (this._zoomLevel = e, this._onDidChangeZoomLevel.fire(this._zoomLevel))\n            }\n        },\n        F = A.f ? 1.5 : 1.35;\n    class j {\n        constructor(e) {\n            this._bareFontInfoBrand = void 0, this.zoomLevel = e.zoomLevel, this.pixelRatio = e.pixelRatio, this.fontFamily = String(e.fontFamily), this.fontWeight = String(e.fontWeight), this.fontSize = e.fontSize, this.fontFeatureSettings = e.fontFeatureSettings, this.lineHeight = 0 | e.lineHeight, this.letterSpacing = e.letterSpacing\n        }\n        static createFromValidatedSettings(e, t, i, n) {\n            var r = e.get(42),\n                o = e.get(46),\n                s = e.get(45),\n                a = e.get(44),\n                l = e.get(58);\n            e = e.get(55);\n            return j._create(r, o, s, a, l, e, t, i, n)\n        }\n        static _create(e, t, i, n, r, o, s, a, l) {\n            return 0 === r ? r = F * i : r < 8 && (r *= i), (r = Math.round(r)) < 8 && (r = 8), l = 1 + (l ? 0 : .1 * R.getZoomLevel()), new j({\n                zoomLevel: s,\n                pixelRatio: a,\n                fontFamily: e,\n                fontWeight: t,\n                fontSize: i *= l,\n                fontFeatureSettings: n,\n                lineHeight: r *= l,\n                letterSpacing: o\n            })\n        }\n        getId() {\n            return this.zoomLevel + \"-\" + this.pixelRatio + \"-\" + this.fontFamily + \"-\" + this.fontWeight + \"-\" + this.fontSize + \"-\" + this.fontFeatureSettings + \"-\" + this.lineHeight + \"-\" + this.letterSpacing\n        }\n        getMassagedFontFamily(e) {\n            var t = j._wrapInQuotes(this.fontFamily);\n            return e && this.fontFamily !== e ? `${t}, ${e}` : t\n        }\n        static _wrapInQuotes(e) {\n            return !/[,\"']/.test(e) && /[+ ]/.test(e) ? `\"${e}\"` : e\n        }\n    }\n    class B extends j {\n        constructor(e, t) {\n            super(e), this._editorStylingBrand = void 0, this.version = 1, this.isTrusted = t, this.isMonospace = e.isMonospace, this.typicalHalfwidthCharacterWidth = e.typicalHalfwidthCharacterWidth, this.typicalFullwidthCharacterWidth = e.typicalFullwidthCharacterWidth, this.canUseHalfwidthRightwardsArrow = e.canUseHalfwidthRightwardsArrow, this.spaceWidth = e.spaceWidth, this.middotWidth = e.middotWidth, this.wsmiddotWidth = e.wsmiddotWidth, this.maxDigitWidth = e.maxDigitWidth\n        }\n        equals(e) {\n            return this.fontFamily === e.fontFamily && this.fontWeight === e.fontWeight && this.fontSize === e.fontSize && this.fontFeatureSettings === e.fontFeatureSettings && this.lineHeight === e.lineHeight && this.letterSpacing === e.letterSpacing && this.typicalHalfwidthCharacterWidth === e.typicalHalfwidthCharacterWidth && this.typicalFullwidthCharacterWidth === e.typicalFullwidthCharacterWidth && this.canUseHalfwidthRightwardsArrow === e.canUseHalfwidthRightwardsArrow && this.spaceWidth === e.spaceWidth && this.middotWidth === e.middotWidth && this.wsmiddotWidth === e.wsmiddotWidth && this.maxDigitWidth === e.maxDigitWidth\n        }\n    }\n    const V = {\n        ICodeEditor: \"vs.editor.ICodeEditor\",\n        IDiffEditor: \"vs.editor.IDiffEditor\"\n    };\n    var W = i(44),\n        z = i(15),\n        H = i(83);\n    const U = Object(_.c)(\"editorWorkerService\");\n    var K = i(97),\n        $ = i(114),\n        q = i(32),\n        G = i(129);\n    const Y = null === (gi = window.trustedTypes) || void 0 === gi ? void 0 : gi.createPolicy(\"defaultWorkerFactory\", {\n        createScriptURL: e => e\n    });\n    class Z {\n        constructor(e, t, i, n, r) {\n            this.id = t, \"function\" == typeof(i = function(e, t) {\n                if (A.b.MonacoEnvironment) {\n                    if (\"function\" == typeof A.b.MonacoEnvironment.getWorker) return A.b.MonacoEnvironment.getWorker(e, t);\n                    if (\"function\" == typeof A.b.MonacoEnvironment.getWorkerUrl) return e = A.b.MonacoEnvironment.getWorkerUrl(e, t), new Worker(Y ? Y.createScriptURL(e) : e, {\n                        name: t\n                    })\n                }\n                throw new Error(\"You must define a function MonacoEnvironment.getWorkerUrl or MonacoEnvironment.getWorker\")\n            }(\"workerMain.js\", i)).then ? this.worker = i : this.worker = Promise.resolve(i), this.postMessage(e, []), this.worker.then(e => {\n                e.onmessage = function(e) {\n                    n(e.data)\n                }, e.onmessageerror = r, \"function\" == typeof e.addEventListener && e.addEventListener(\"error\", r)\n            })\n        }\n        getId() {\n            return this.id\n        }\n        postMessage(e, t) {\n            this.worker && this.worker.then(i => i.postMessage(e, t))\n        }\n        dispose() {\n            this.worker && this.worker.then(e => e.terminate()), this.worker = null\n        }\n    }\n    class X {\n        constructor(e) {\n            this._label = e, this._webWorkerFailedBeforeError = !1\n        }\n        create(e, t, i) {\n            var n = ++X.LAST_WORKER_ID;\n            if (this._webWorkerFailedBeforeError) throw this._webWorkerFailedBeforeError;\n            return new Z(e, n, this._label || \"anonymous\" + n, t, e => {\n                Object(G.c)(e), this._webWorkerFailedBeforeError = e, i(e)\n            })\n        }\n    }\n    X.LAST_WORKER_ID = 0;\n    var Q = i(57),\n        J = i(149),\n        ee = i(78);\n    const te = Object(_.c)(\"textResource配置Service\"),\n        ie = Object(_.c)(\"textResourcePropertiesService\");\n    var ne = i(28),\n        re = i(95),\n        oe = i(90),\n        se = i(31),\n        ae = (t = function(e, t, i, n) {\n            var r, o = arguments.length,\n                s = o < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n            if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n);\n            else\n                for (var a = e.length - 1; 0 <= a; a--)(r = e[a]) && (s = (o < 3 ? r(s) : 3 < o ? r(t, i, s) : r(t, i)) || s);\n            return 3 < o && s && Object.defineProperty(t, i, s), s\n        }, function(e, t) {\n            return function(i, n) {\n                t(i, n, e)\n            }\n        }),\n        le = function(e, t, i, n) {\n            return new(i = i || Promise)((function(r, o) {\n                function s(e) {\n                    try {\n                        l(n.next(e))\n                    } catch (e) {\n                        o(e)\n                    }\n                }\n\n                function a(e) {\n                    try {\n                        l(n.throw(e))\n                    } catch (e) {\n                        o(e)\n                    }\n                }\n\n                function l(e) {\n                    var t;\n                    e.done ? r(e.value) : ((t = e.value) instanceof i ? t : new i((function(e) {\n                        e(t)\n                    }))).then(s, a)\n                }\n                l((n = n.apply(e, t || [])).next())\n            }))\n        };\n\n    function de(e, t) {\n        let i = e.getModel(t);\n        return !!i && !i.isTooLargeForSyncing()\n    }\n    let ce = class extends v.a {\n        constructor(e, t, i) {\n            super(), this._modelService = e, this._workerManager = this._register(new ue(this._modelService)), this._logService = i, this._register(z.s.register({\n                language: \"*\",\n                hasAccessToAllModels: !0\n            }, {\n                provideLinks: (e, t) => de(this._modelService, e.uri) ? this._workerManager.withWorker().then(t => t.computeLinks(e.uri)).then(e => e && {\n                    links: e\n                }) : Promise.resolve({\n                    links: []\n                })\n            })), this._register(z.d.register(\"*\", new he(this._workerManager, t, this._modelService)))\n        }\n        dispose() {\n            super.dispose()\n        }\n        computeDiff(e, t, i, n) {\n            return this._workerManager.withWorker().then(r => r.computeDiff(e, t, i, n))\n        }\n        computeMoreMinimalEdits(e, t) {\n            if (Object(ne.l)(t)) {\n                if (!de(this._modelService, e)) return Promise.resolve(t);\n                const i = oe.a.create(!0),\n                    n = this._workerManager.withWorker().then(i => i.computeMoreMinimalEdits(e, t));\n                return n.finally(() => this._logService.trace(\"FORMAT#computeMoreMinimalEdits\", e.toString(!0), i.elapsed())), Promise.race([n, Object(q.k)(1e3).then(() => t)])\n            }\n            return Promise.resolve(void 0)\n        }\n        canNavigateValueSet(e) {\n            return de(this._modelService, e)\n        }\n        navigateValueSet(e, t, i) {\n            return this._workerManager.withWorker().then(n => n.navigateValueSet(e, t, i))\n        }\n        canComputeWordRanges(e) {\n            return de(this._modelService, e)\n        }\n        computeWordRanges(e, t) {\n            return this._workerManager.withWorker().then(i => i.computeWordRanges(e, t))\n        }\n    };\n    ce = t([ae(0, ee.a), ae(1, te), ae(2, re.b)], ce);\n    class he {\n        constructor(e, t, i) {\n            this._debugDisplayName = \"wordbasedCompletions\", this._workerManager = e, this._configurationService = t, this._modelService = i\n        }\n        provideCompletionItems(e, t) {\n            return le(this, void 0, void 0, (function*() {\n                var i = this._configurationService.getValue(e.uri, t, \"editor\");\n                if (i.wordBasedSuggestions) {\n                    const o = [];\n                    if (\"currentDocument\" === i.wordBasedSuggestionsMode) de(this._modelService, e.uri) && o.push(e.uri);\n                    else\n                        for (const t of this._modelService.getModels()) de(this._modelService, t.uri) && (t === e ? o.unshift(t.uri) : \"allDocuments\" !== i.wordBasedSuggestionsMode && t.getLanguageId() !== e.getLanguageId() || o.push(t.uri));\n                    if (0 !== o.length) {\n                        var n = Q.b.getWordDefinition(e.getLanguageId()),\n                            r = e.getWordAtPosition(t);\n                        const i = r ? new T.a(t.lineNumber, r.startColumn, t.lineNumber, r.endColumn) : T.a.fromPositions(t),\n                            s = i.setEndPosition(t.lineNumber, t.column),\n                            a = yield this._workerManager.withWorker(), l = yield a.textualSuggest(o, null == r ? void 0 : r.word, n);\n                        if (l) return {\n                            duration: l.duration,\n                            suggestions: l.words.map(e => ({\n                                kind: 18,\n                                label: e,\n                                insertText: e,\n                                range: {\n                                    insert: s,\n                                    replace: i\n                                }\n                            }))\n                        }\n                    }\n                }\n            }))\n        }\n    }\n    class ue extends v.a {\n        constructor(e) {\n            super(), this._modelService = e, this._editorWorkerClient = null, this._lastWorkerUsedTime = (new Date).getTime(), this._register(new q.c).cancelAndSet(() => this._checkStopIdleWorker(), Math.round(15e4)), this._register(this._modelService.onModelRemoved(e => this._checkStopEmptyWorker()))\n        }\n        dispose() {\n            this._editorWorkerClient && (this._editorWorkerClient.dispose(), this._editorWorkerClient = null), super.dispose()\n        }\n        _checkStopEmptyWorker() {\n            this._editorWorkerClient && 0 === this._modelService.getModels().length && (this._editorWorkerClient.dispose(), this._editorWorkerClient = null)\n        }\n        _checkStopIdleWorker() {\n            this._editorWorkerClient && 3e5 < (new Date).getTime() - this._lastWorkerUsedTime && (this._editorWorkerClient.dispose(), this._editorWorkerClient = null)\n        }\n        withWorker() {\n            return this._lastWorkerUsedTime = (new Date).getTime(), this._editorWorkerClient || (this._editorWorkerClient = new me(this._modelService, !1, \"editorWorkerService\")), Promise.resolve(this._editorWorkerClient)\n        }\n    }\n    class pe extends v.a {\n        constructor(e, t, i) {\n            if (super(), this._syncedModels = Object.create(null), this._syncedModelsLastUsedTime = Object.create(null), this._proxy = e, this._modelService = t, !i) {\n                let e = new q.c;\n                e.cancelAndSet(() => this._checkStopModelSync(), Math.round(3e4)), this._register(e)\n            }\n        }\n        dispose() {\n            for (var e in this._syncedModels) Object(v.f)(this._syncedModels[e]);\n            this._syncedModels = Object.create(null), this._syncedModelsLastUsedTime = Object.create(null), super.dispose()\n        }\n        ensureSyncedResources(e, t) {\n            for (const n of e) {\n                var i = n.toString();\n                this._syncedModels[i] || this._beginModelSync(n, t), this._syncedModels[i] && (this._syncedModelsLastUsedTime[i] = (new Date).getTime())\n            }\n        }\n        _checkStopModelSync() {\n            var e, t = (new Date).getTime();\n            let i = [];\n            for (e in this._syncedModelsLastUsedTime) 6e4 < t - this._syncedModelsLastUsedTime[e] && i.push(e);\n            for (const e of i) this._stopModelSync(e)\n        }\n        _beginModelSync(e, t) {\n            let i = this._modelService.getModel(e);\n            if (i && (t || !i.isTooLargeForSyncing())) {\n                let t = e.toString();\n                this._proxy.acceptNewModel({\n                    url: i.uri.toString(),\n                    lines: i.getLinesContent(),\n                    EOL: i.getEOL(),\n                    versionId: i.getVersionId()\n                });\n                const n = new v.b;\n                n.add(i.onDidChangeContent(e => {\n                    this._proxy.acceptModelChanged(t.toString(), e)\n                })), n.add(i.onWillDispose(() => {\n                    this._stopModelSync(t)\n                })), n.add(Object(v.i)(() => {\n                    this._proxy.acceptRemovedModel(t)\n                })), this._syncedModels[t] = n\n            }\n        }\n        _stopModelSync(e) {\n            var t = this._syncedModels[e];\n            delete this._syncedModels[e], delete this._syncedModelsLastUsedTime[e], Object(v.f)(t)\n        }\n    }\n    class ge {\n        constructor(e) {\n            this._instance = e, this._proxyObj = Promise.resolve(this._instance)\n        }\n        dispose() {\n            this._instance.dispose()\n        }\n        getProxyObject() {\n            return this._proxyObj\n        }\n    }\n    class fe {\n        constructor(e) {\n            this._workerClient = e\n        }\n        fhr(e, t) {\n            return this._workerClient.fhr(e, t)\n        }\n    }\n    class me extends v.a {\n        constructor(e, t, i) {\n            super(), this._disposed = !1, this._modelService = e, this._keepIdleModels = t, this._workerFactory = new X(i), this._worker = null, this._modelManager = null\n        }\n        fhr(e, t) {\n            throw new Error(\"Not implemented!\")\n        }\n        _getOrCreateWorker() {\n            if (!this._worker) try {\n                this._worker = this._register(new G.a(this._workerFactory, \"vs/editor/common/services/editorSimpleWorker\", new fe(this)))\n            } catch (e) {\n                Object(G.c)(e), this._worker = new ge(new J.a(new fe(this), null))\n            }\n            return this._worker\n        }\n        _getProxy() {\n            return this._getOrCreateWorker().getProxyObject().then(void 0, e => (Object(G.c)(e), this._worker = new ge(new J.a(new fe(this), null)), this._getOrCreateWorker().getProxyObject()))\n        }\n        _getOrCreateModelManager(e) {\n            return this._modelManager || (this._modelManager = this._register(new pe(e, this._modelService, this._keepIdleModels))), this._modelManager\n        }\n        _withSyncedResources(e, t = !1) {\n            return le(this, void 0, void 0, (function*() {\n                return this._disposed ? Promise.reject(Object(se.b)()) : this._getProxy().then(i => (this._getOrCreateModelManager(i).ensureSyncedResources(e, t), i))\n            }))\n        }\n        computeDiff(e, t, i, n) {\n            return this._withSyncedResources([e, t], !0).then(r => r.computeDiff(e.toString(), t.toString(), i, n))\n        }\n        computeMoreMinimalEdits(e, t) {\n            return this._withSyncedResources([e]).then(i => i.computeMoreMinimalEdits(e.toString(), t))\n        }\n        computeLinks(e) {\n            return this._withSyncedResources([e]).then(t => t.computeLinks(e.toString()))\n        }\n        textualSuggest(e, t, i) {\n            return le(this, void 0, void 0, (function*() {\n                const n = yield this._withSyncedResources(e);\n                var r = i.source,\n                    o = Object(b.M)(i);\n                return n.textualSuggest(e.map(e => e.toString()), t, r, o)\n            }))\n        }\n        computeWordRanges(e, t) {\n            return this._withSyncedResources([e]).then(i => {\n                let n = this._modelService.getModel(e);\n                if (!n) return Promise.resolve(null);\n                var r = (o = Q.b.getWordDefinition(n.getLanguageId())).source,\n                    o = Object(b.M)(o);\n                return i.computeWordRanges(e.toString(), t, r, o)\n            })\n        }\n        navigateValueSet(e, t, i) {\n            return this._withSyncedResources([e]).then(n => {\n                let r = this._modelService.getModel(e);\n                if (!r) return null;\n                var o = (s = Q.b.getWordDefinition(r.getLanguageId())).source,\n                    s = Object(b.M)(s);\n                return n.navigateValueSet(e.toString(), t, i, o, s)\n            })\n        }\n        dispose() {\n            super.dispose(), this._disposed = !0\n        }\n    }\n    var ve = i(17);\n    class be extends me {\n        constructor(e, t) {\n            super(e, t.keepIdleModels || !1, t.label), this._foreignModuleId = t.moduleId, this._foreignModuleCreateData = t.createData || null, this._foreignModuleHost = t.host || null, this._foreignProxy = null\n        }\n        fhr(e, t) {\n            if (!this._foreignModuleHost || \"function\" != typeof this._foreignModuleHost[e]) return Promise.reject(new Error(\"Missing method \" + e + \" or missing main thread foreign host.\"));\n            try {\n                return Promise.resolve(this._foreignModuleHost[e].apply(this._foreignModuleHost, t))\n            } catch (e) {\n                return Promise.reject(e)\n            }\n        }\n        _getForeignProxy() {\n            return this._foreignProxy || (this._foreignProxy = this._getProxy().then(e => {\n                var t = this._foreignModuleHost ? ve.d(this._foreignModuleHost) : [];\n                return e.loadForeignModule(this._foreignModuleId, this._foreignModuleCreateData, t).then(t => {\n                    this._foreignModuleCreateData = null;\n                    var i = (t, i) => e.fmr(t, i);\n                    let n = {};\n                    for (const e of t) n[e] = ((e, t) => function() {\n                        var i = Array.prototype.slice.call(arguments, 0);\n                        return t(e, i)\n                    })(e, i);\n                    return n\n                })\n            })), this._foreignProxy\n        }\n        getProxy() {\n            return this._getForeignProxy()\n        }\n        withSyncedResources(e) {\n            return this._withSyncedResources(e).then(e => this.getProxy())\n        }\n    }\n    var _e = i(49),\n        we = i(85),\n        ye = i(110);\n    class Ce {\n        constructor(e, t, i, n) {\n            this.startColumn = e, this.endColumn = t, this.className = i, this.type = n, this._lineDecorationBrand = void 0\n        }\n        static _equals(e, t) {\n            return e.startColumn === t.startColumn && e.endColumn === t.endColumn && e.className === t.className && e.type === t.type\n        }\n        static equalsArr(e, t) {\n            var i = e.length;\n            if (i !== t.length) return !1;\n            for (let n = 0; n < i; n++)\n                if (!Ce._equals(e[n], t[n])) return !1;\n            return !0\n        }\n        static extractWrapped(e, t, i) {\n            if (0 === e.length) return e;\n            var n = t + 1,\n                r = i + 1,\n                o = i - t;\n            const s = [];\n            let a = 0;\n            for (const t of e) t.endColumn <= n || t.startColumn >= r || (s[a++] = new Ce(Math.max(1, t.startColumn - n + 1), Math.min(1 + o, t.endColumn - n + 1), t.className, t.type));\n            return s\n        }\n        static filter(e, t, i, n) {\n            if (0 === e.length) return [];\n            let r = [],\n                o = 0;\n            for (let d = 0, c = e.length; d < c; d++) {\n                var s, a, l = e[d];\n                const c = l.range;\n                c.endLineNumber < t || c.startLineNumber > t || c.isEmpty() && (0 === l.type || 3 === l.type) || (s = c.startLineNumber === t ? c.startColumn : i, a = c.endLineNumber === t ? c.endColumn : n, r[o++] = new Ce(s, a, l.inlineClassName, l.type))\n            }\n            return r\n        }\n        static _typeCompare(e, t) {\n            var i = [2, 0, 1, 3];\n            return i[e] - i[t]\n        }\n        static compare(e, t) {\n            if (e.startColumn !== t.startColumn) return e.startColumn - t.startColumn;\n            if (e.endColumn !== t.endColumn) return e.endColumn - t.endColumn;\n            var i = Ce._typeCompare(e.type, t.type);\n            return 0 !== i ? i : e.className !== t.className ? e.className < t.className ? -1 : 1 : 0\n        }\n    }\n    class xe {\n        constructor(e, t, i, n) {\n            this.startOffset = e, this.endOffset = t, this.className = i, this.metadata = n\n        }\n    }\n    class Se {\n        constructor() {\n            this.stopOffsets = [], this.classNames = [], this.metadata = [], this.count = 0\n        }\n        static _metadata(e) {\n            let t = 0;\n            for (let i = 0, n = e.length; i < n; i++) t |= e[i];\n            return t\n        }\n        consumeLowerThan(e, t, i) {\n            for (; 0 < this.count && this.stopOffsets[0] < e;) {\n                let e = 0;\n                for (; e + 1 < this.count && this.stopOffsets[e] === this.stopOffsets[e + 1];) e++;\n                i.push(new xe(t, this.stopOffsets[e], this.classNames.join(\" \"), Se._metadata(this.metadata))), t = this.stopOffsets[e] + 1, this.stopOffsets.splice(0, e + 1), this.classNames.splice(0, e + 1), this.metadata.splice(0, e + 1), this.count -= e + 1\n            }\n            return 0 < this.count && t < e && (i.push(new xe(t, e - 1, this.classNames.join(\" \"), Se._metadata(this.metadata))), t = e), t\n        }\n        insert(e, t, i) {\n            if (0 === this.count || this.stopOffsets[this.count - 1] <= e) this.stopOffsets.push(e), this.classNames.push(t), this.metadata.push(i);\n            else\n                for (let n = 0; n < this.count; n++)\n                    if (this.stopOffsets[n] >= e) {\n                        this.stopOffsets.splice(n, 0, e), this.classNames.splice(n, 0, t), this.metadata.splice(n, 0, i);\n                        break\n                    } this.count++\n        }\n    }\n    class ke {\n        constructor(e, t, i) {\n            this._linePartBrand = void 0, this.endIndex = e, this.type = t, this.metadata = i\n        }\n        isWhitespace() {\n            return !!(1 & this.metadata)\n        }\n        isPseudoAfter() {\n            return !!(4 & this.metadata)\n        }\n    }\n    class Le {\n        constructor(e, t) {\n            this.startOffset = e, this.endOffset = t\n        }\n        equals(e) {\n            return this.startOffset === e.startOffset && this.endOffset === e.endOffset\n        }\n    }\n    class Oe {\n        constructor(e, t, i, n, r, o, s, a, l, d, c, h, u, p, g, f, m, v, b) {\n            this.useMonospaceOptimizations = e, this.canUseHalfwidthRightwardsArrow = t, this.lineContent = i, this.continuesWithWrappedLine = n, this.isBasicASCII = r, this.containsRTL = o, this.fauxIndentLength = s, this.lineTokens = a, this.lineDecorations = l.sort(Ce.compare), this.tabSize = d, this.startVisibleColumn = c, this.spaceWidth = h, this.stopRenderingLineAfter = g, this.renderWhitespace = \"all\" === f ? 4 : \"boundary\" === f ? 1 : \"selection\" === f ? 2 : \"trailing\" === f ? 3 : 0, this.renderControlCharacters = m, this.fontLigatures = v, this.selectionsOnLine = b && b.sort((e, t) => e.startOffset < t.startOffset ? -1 : 1), Math.abs(p - h) < Math.abs(u - h) ? (this.renderSpaceWidth = p, this.renderSpaceCharCode = 11825) : (this.renderSpaceWidth = u, this.renderSpaceCharCode = 183)\n        }\n        sameSelection(e) {\n            if (null === this.selectionsOnLine) return null === e;\n            if (null === e) return !1;\n            if (e.length !== this.selectionsOnLine.length) return !1;\n            for (let t = 0; t < this.selectionsOnLine.length; t++)\n                if (!this.selectionsOnLine[t].equals(e[t])) return !1;\n            return !0\n        }\n        equals(e) {\n            return this.useMonospaceOptimizations === e.useMonospaceOptimizations && this.canUseHalfwidthRightwardsArrow === e.canUseHalfwidthRightwardsArrow && this.lineContent === e.lineContent && this.continuesWithWrappedLine === e.continuesWithWrappedLine && this.isBasicASCII === e.isBasicASCII && this.containsRTL === e.containsRTL && this.fauxIndentLength === e.fauxIndentLength && this.tabSize === e.tabSize && this.startVisibleColumn === e.startVisibleColumn && this.spaceWidth === e.spaceWidth && this.renderSpaceWidth === e.renderSpaceWidth && this.renderSpaceCharCode === e.renderSpaceCharCode && this.stopRenderingLineAfter === e.stopRenderingLineAfter && this.renderWhitespace === e.renderWhitespace && this.renderControlCharacters === e.renderControlCharacters && this.fontLigatures === e.fontLigatures && Ce.equalsArr(this.lineDecorations, e.lineDecorations) && this.lineTokens.equals(e.lineTokens) && this.sameSelection(e.selectionsOnLine)\n        }\n    }\n    class Ee {\n        constructor(e, t) {\n            this.partIndex = e, this.charIndex = t\n        }\n    }\n    class Ne {\n        constructor(e, t) {\n            this.length = e, this._data = new Uint32Array(this.length), this._absoluteOffsets = new Uint32Array(this.length)\n        }\n        static getPartIndex(e) {\n            return (4294901760 & e) >>> 16\n        }\n        static getCharIndex(e) {\n            return (65535 & e) >>> 0\n        }\n        setColumnInfo(e, t, i, n) {\n            this._data[e - 1] = (t << 16 | i << 0) >>> 0, this._absoluteOffsets[e - 1] = n + i\n        }\n        getAbsoluteOffset(e) {\n            return 0 === this._absoluteOffsets.length ? 0 : this._absoluteOffsets[e - 1]\n        }\n        charOffsetToPartData(e) {\n            return 0 === this.length ? 0 : e < 0 ? this._data[0] : e >= this.length ? this._data[this.length - 1] : this._data[e]\n        }\n        getDomPosition(e) {\n            var t = this.charOffsetToPartData(e - 1);\n            e = Ne.getPartIndex(t), t = Ne.getCharIndex(t);\n            return new Ee(e, t)\n        }\n        getColumn(e, t) {\n            return this.partDataToCharOffset(e.partIndex, t, e.charIndex) + 1\n        }\n        partDataToCharOffset(e, t, i) {\n            if (0 === this.length) return 0;\n            var n = (e << 16 | i << 0) >>> 0;\n            let r = 0,\n                o = this.length - 1;\n            for (; r + 1 < o;) {\n                var s = r + o >>> 1,\n                    a = this._data[s];\n                if (a === n) return s;\n                n < a ? o = s : r = s\n            }\n            if (r === o) return r;\n            var l = this._data[r],\n                d = this._data[o];\n            if (l === n) return r;\n            if (d === n) return o;\n            var c = Ne.getPartIndex(l);\n            e = Ne.getCharIndex(l);\n            let h;\n            return h = c !== (l = Ne.getPartIndex(d)) ? t : Ne.getCharIndex(d), i - e <= h - i ? r : o\n        }\n    }\n    class De {\n        constructor(e, t, i) {\n            this._renderLineOutputBrand = void 0, this.characterMapping = e, this.containsRTL = t, this.containsForeignElements = i\n        }\n    }\n\n    function Ie(e, t) {\n        if (0 !== e.lineContent.length) return function(e, t) {\n            const i = e.fontIsMonospace,\n                n = e.canUseHalfwidthRightwardsArrow,\n                r = e.containsForeignElements,\n                o = e.lineContent,\n                s = e.len,\n                a = e.isOverflowing,\n                l = e.parts,\n                d = e.fauxIndentLength,\n                c = e.tabSize,\n                h = e.startVisibleColumn,\n                u = e.containsRTL,\n                p = e.spaceWidth,\n                g = e.renderSpaceCharCode,\n                f = e.renderWhitespace,\n                m = e.renderControlCharacters,\n                v = new Ne(s + 1, l.length);\n            let _ = !1,\n                w = 0,\n                y = h,\n                C = 0,\n                x = 0,\n                S = 0,\n                k = 0;\n            u ? t.appendASCIIString('<span dir=\"ltr\">') : t.appendASCIIString(\"<span>\");\n            for (let e = 0, a = l.length; e < a; e++) {\n                k += S;\n                const a = l[e];\n                var L = a.endIndex,\n                    O = a.type,\n                    E = 0 !== f && a.isWhitespace(),\n                    N = E && !i && (\"mtkw\" === O || !r),\n                    D = w === L && a.isPseudoAfter();\n                if (C = 0, t.appendASCIIString('<span class=\"'), t.appendASCIIString(N ? \"mtkz\" : O), t.appendASCII(34), E) {\n                    let i = 0; {\n                        let e = w,\n                            t = y;\n                        for (; e < L; e++) {\n                            var I = 0 | (9 === o.charCodeAt(e) ? c - t % c : 1);\n                            i += I, e >= d && (t += I)\n                        }\n                    }\n                    for (N && (t.appendASCIIString(' style=\"width:'), t.appendASCIIString(String(p * i)), t.appendASCIIString('px\"')), t.appendASCII(62); w < L; w++) {\n                        let i;\n                        if (v.setColumnInfo(w + 1, e - x, C, k), x = 0, 9 === o.charCodeAt(w)) {\n                            i = c - y % c | 0, !n || 1 < i ? t.write1(8594) : t.write1(65515);\n                            for (let e = 2; e <= i; e++) t.write1(160)\n                        } else i = 1, t.write1(g);\n                        C += i, w >= d && (y += i)\n                    }\n                    S = i\n                } else {\n                    let i = 0;\n                    for (t.appendASCII(62); w < L; w++) {\n                        v.setColumnInfo(w + 1, e - x, C, k), x = 0;\n                        var T = o.charCodeAt(w);\n                        let n = 1,\n                            r = 1;\n                        switch (T) {\n                            case 9:\n                                n = c - y % c, r = n;\n                                for (let e = 1; e <= n; e++) t.write1(160);\n                                break;\n                            case 32:\n                                t.write1(160);\n                                break;\n                            case 60:\n                                t.appendASCIIString(\"&lt;\");\n                                break;\n                            case 62:\n                                t.appendASCIIString(\"&gt;\");\n                                break;\n                            case 38:\n                                t.appendASCIIString(\"&amp;\");\n                                break;\n                            case 0:\n                                m ? t.write1(9216) : t.appendASCIIString(\"&#00;\");\n                                break;\n                            case 65279:\n                            case 8232:\n                            case 8233:\n                            case 133:\n                                t.write1(65533);\n                                break;\n                            default:\n                                b.D(T) && r++, m && T < 32 ? t.write1(9216 + T) : m && 127 === T ? t.write1(9249) : m && Ae(T) ? (t.appendASCIIString(\"[U+\"), t.appendASCIIString(T.toString(16).toUpperCase().padStart(4, \"0\")), t.appendASCIIString(\"]\"), n = 8) : t.write1(T)\n                        }\n                        C += n, i += n, w >= d && (y += r)\n                    }\n                    S = i\n                }\n                D ? x++ : x = 0, w >= s && !_ && a.isPseudoAfter() && (_ = !0, v.setColumnInfo(w + 1, e, C, k)), t.appendASCIIString(\"</span>\")\n            }\n            return _ || v.setColumnInfo(s + 1, l.length - 1, C, k), a && t.appendASCIIString(\"<span>&hellip;</span>\"), t.appendASCIIString(\"</span>\"), new De(v, u, r)\n        }(function(e) {\n            var t = e.lineContent;\n            let i, n;\n            n = -1 !== e.stopRenderingLineAfter && e.stopRenderingLineAfter < t.length ? (i = !0, e.stopRenderingLineAfter) : (i = !1, t.length);\n            let r = function(e, t, i) {\n                let n = [],\n                    r = 0;\n                0 < t && (n[r++] = new ke(t, \"\", 0));\n                for (let a = 0, l = e.getCount(); a < l; a++) {\n                    var o = e.getEndOffset(a);\n                    if (!(o <= t)) {\n                        var s = e.getClassName(a);\n                        if (i <= o) {\n                            n[r++] = new ke(i, s, 0);\n                            break\n                        }\n                        n[r++] = new ke(o, s, 0)\n                    }\n                }\n                return n\n            }(e.lineTokens, e.fauxIndentLength, n);\n            (4 === e.renderWhitespace || 1 === e.renderWhitespace || 2 === e.renderWhitespace && e.selectionsOnLine || 3 === e.renderWhitespace) && (r = function(e, t, i, n) {\n                var r = e.continuesWithWrappedLine,\n                    o = e.fauxIndentLength,\n                    s = e.tabSize,\n                    a = e.startVisibleColumn,\n                    l = e.useMonospaceOptimizations,\n                    d = e.selectionsOnLine,\n                    c = 1 === e.renderWhitespace,\n                    h = 3 === e.renderWhitespace,\n                    u = e.renderSpaceWidth !== e.spaceWidth;\n                let p = [],\n                    g = 0,\n                    f = 0,\n                    m = n[f].type,\n                    v = n[f].endIndex;\n                var _ = n.length;\n                let w, y = !1,\n                    C = b.u(t);\n                w = -1 === C ? (y = !0, C = i, i) : b.I(t);\n                let x = !1,\n                    S = 0,\n                    k = d && d[S],\n                    L = a % s;\n                for (let e = o; e < i; e++) {\n                    var O, E = t.charCodeAt(e);\n                    let r;\n                    if (k && e >= k.endOffset && (S++, k = d && d[S]), r = e < C || e > w || 9 === E || 32 === E && (!c || !!x || 32 === (O = e + 1 < i ? t.charCodeAt(e + 1) : 0) || 9 === O), r && d && (r = !!k && k.startOffset <= e && k.endOffset > e), r && h && (r = y || e > w), x) {\n                        if (!r || !l && L >= s) {\n                            if (u)\n                                for (let t = (0 < g ? p[g - 1].endIndex : o) + 1; t <= e; t++) p[g++] = new ke(t, \"mtkw\", 1);\n                            else p[g++] = new ke(e, \"mtkw\", 1);\n                            L %= s\n                        }\n                    } else(e === v || r && e > o) && (p[g++] = new ke(e, m, 0), L %= s);\n                    for (9 === E ? L = s : b.D(E) ? L += 2 : L++, x = r; e === v && (f++, f < _);) m = n[f].type, v = n[f].endIndex\n                }\n                let N = !1;\n                if (x && (r && c ? (a = 0 < i ? t.charCodeAt(i - 1) : 0, r = 1 < i ? t.charCodeAt(i - 2) : 0, 32 === a && 32 !== r && 9 !== r || (N = !0)) : N = !0), N)\n                    if (u)\n                        for (let e = (0 < g ? p[g - 1].endIndex : o) + 1; e <= i; e++) p[g++] = new ke(e, \"mtkw\", 1);\n                    else p[g++] = new ke(i, \"mtkw\", 1);\n                else p[g++] = new ke(i, m, 0);\n                return p\n            }(e, t, n, r));\n            let o = 0;\n            if (0 < e.lineDecorations.length) {\n                for (let t = 0, i = e.lineDecorations.length; t < i; t++) {\n                    var s = e.lineDecorations[t];\n                    3 === s.type || 1 === s.type ? o |= 1 : 2 === s.type && (o |= 2)\n                }\n                r = function(e, t, i) {\n                    i.sort(Ce.compare);\n                    var n = class {\n                            static normalize(e, t) {\n                                if (0 === t.length) return [];\n                                var i = [];\n                                const n = new Se;\n                                let r = 0;\n                                for (let d = 0, c = t.length; d < c; d++) {\n                                    let c = (s = t[d]).startColumn,\n                                        h = s.endColumn;\n                                    var o = s.className,\n                                        s = 1 === s.type ? 2 : 2 === s.type ? 4 : 0;\n                                    1 < c && (a = e.charCodeAt(c - 2), b.E(a) && c--), 1 < h && (l = e.charCodeAt(h - 2), b.E(l) && h--);\n                                    var a = c - 1,\n                                        l = h - 2;\n                                    r = n.consumeLowerThan(a, r, i), 0 === n.count && (r = a), n.insert(l, o, s)\n                                }\n                                return n.consumeLowerThan(1073741824, r, i), i\n                            }\n                        }.normalize(e, i),\n                        r = n.length;\n                    let o = 0,\n                        s = [],\n                        a = 0,\n                        l = 0;\n                    for (let e = 0, i = t.length; e < i; e++) {\n                        for (var d = t[e], c = d.endIndex, h = d.type, u = d.metadata; o < r && n[o].startOffset < c;) {\n                            var p = n[o];\n                            if (p.startOffset > l && (l = p.startOffset, s[a++] = new ke(l, h, u)), !(p.endOffset + 1 <= c)) {\n                                l = c, s[a++] = new ke(l, h + \" \" + p.className, u | p.metadata);\n                                break\n                            }\n                            l = p.endOffset + 1, s[a++] = new ke(l, h + \" \" + p.className, u | p.metadata), o++\n                        }\n                        c > l && (l = c, s[a++] = new ke(l, h, u))\n                    }\n                    var g = t[t.length - 1].endIndex;\n                    if (o < r && n[o].startOffset === g)\n                        for (; o < r && n[o].startOffset === g;) {\n                            var f = n[o];\n                            s[a++] = new ke(l, f.className, f.metadata), o++\n                        }\n                    return s\n                }(t, r, e.lineDecorations)\n            }\n            return e.containsRTL || (r = function(e, t, i) {\n                let n = 0,\n                    r = [],\n                    o = 0;\n                if (i)\n                    for (let i = 0, c = t.length; i < c; i++) {\n                        var s = t[i],\n                            a = s.endIndex;\n                        if (n + 50 < a) {\n                            var l = s.type,\n                                d = s.metadata;\n                            let t = -1,\n                                i = n;\n                            for (let s = n; s < a; s++) 32 === e.charCodeAt(s) && (t = s), -1 !== t && 50 <= s - i && (r[o++] = new ke(t + 1, l, d), i = t + 1, t = -1);\n                            i !== a && (r[o++] = new ke(a, l, d))\n                        } else r[o++] = s;\n                        n = a\n                    } else\n                        for (let e = 0, i = t.length; e < i; e++) {\n                            var c = t[e],\n                                h = c.endIndex,\n                                u = h - n;\n                            if (50 < u) {\n                                var p = c.type,\n                                    g = c.metadata,\n                                    f = Math.ceil(u / 50);\n                                for (let e = 1; e < f; e++) {\n                                    var m = n + 50 * e;\n                                    r[o++] = new ke(m, p, g)\n                                }\n                                r[o++] = new ke(h, p, g)\n                            } else r[o++] = c;\n                            n = h\n                        }\n                return r\n            }(t, r, !e.isBasicASCII || e.fontLigatures)), e.renderControlCharacters && !e.isBasicASCII && (r = function(e, t) {\n                let i = [],\n                    n = new ke(0, \"\", 0),\n                    r = 0;\n                for (const s of t) {\n                    for (var o = s.endIndex; r < o; r++) Ae(e.charCodeAt(r)) && (r > n.endIndex && (n = new ke(r, s.type, s.metadata), i.push(n)), n = new ke(r + 1, \"mtkcontrol\", s.metadata), i.push(n));\n                    r > n.endIndex && (n = new ke(o, s.type, s.metadata), i.push(n))\n                }\n                return i\n            }(t, r)), new Pe(e.useMonospaceOptimizations, e.canUseHalfwidthRightwardsArrow, t, n, i, r, o, e.fauxIndentLength, e.tabSize, e.startVisibleColumn, e.containsRTL, e.spaceWidth, e.renderSpaceCharCode, e.renderWhitespace, e.renderControlCharacters)\n        }(e), t);\n        if (0 < e.lineDecorations.length) {\n            t.appendASCIIString(\"<span>\");\n            let i = 0,\n                n = 0,\n                r = 0;\n            for (const o of e.lineDecorations) 1 !== o.type && 2 !== o.type || (t.appendASCIIString('<span class=\"'), t.appendASCIIString(o.className), t.appendASCIIString('\"></span>'), 1 === o.type && (r |= 1, i++), 2 === o.type && (r |= 2, n++));\n            t.appendASCIIString(\"</span>\");\n            const o = new Ne(1, i + n);\n            return o.setColumnInfo(1, i, 0, 0), new De(o, !1, r)\n        }\n        return t.appendASCIIString(\"<span><span></span></span>\"), new De(new Ne(0, 0), !1, 0)\n    }\n    class Te {\n        constructor(e, t, i, n) {\n            this.characterMapping = e, this.html = t, this.containsRTL = i, this.containsForeignElements = n\n        }\n    }\n\n    function Me(e) {\n        let t = Object(ye.a)(1e4);\n        return e = Ie(e, t), new Te(e.characterMapping, t.build(), e.containsRTL, e.containsForeignElements)\n    }\n    class Pe {\n        constructor(e, t, i, n, r, o, s, a, l, d, c, h, u, p, g) {\n            this.fontIsMonospace = e, this.canUseHalfwidthRightwardsArrow = t, this.lineContent = i, this.len = n, this.isOverflowing = r, this.parts = o, this.containsForeignElements = s, this.fauxIndentLength = a, this.tabSize = l, this.startVisibleColumn = d, this.containsRTL = c, this.spaceWidth = h, this.renderSpaceCharCode = u, this.renderWhitespace = p, this.renderControlCharacters = g\n        }\n    }\n\n    function Ae(e) {\n        return e < 32 ? 9 !== e : 127 === e || 8234 <= e && e <= 8238 || 8294 <= e && e <= 8297 || 8206 <= e && e <= 8207 || 1564 === e\n    }\n    var Re = i(8);\n    class Fe {\n        constructor(e, t, i, n) {\n            this._viewportBrand = void 0, this.top = 0 | e, this.left = 0 | t, this.width = 0 | i, this.height = 0 | n\n        }\n    }\n    class je {\n        constructor(e, t) {\n            this.outputLineIndex = e, this.outputOffset = t\n        }\n        toString() {\n            return `${this.outputLineIndex}:${this.outputOffset}`\n        }\n        toPosition(e, t) {\n            return t = 0 < this.outputLineIndex ? t : 0, new Re.a(e + this.outputLineIndex, t + this.outputOffset + 1)\n        }\n    }\n    class Be {\n        constructor(e, t, i, n, r) {\n            this.breakOffsets = e, this.breakOffsetsVisibleColumn = t, this.wrappedTextIndentLength = i, this.injectionOffsets = n, this.injectionOptions = r\n        }\n        getInputOffsetOfOutputPosition(e, t) {\n            let i = 0;\n            if (i = 0 === e ? t : this.breakOffsets[e - 1] + t, null !== this.injectionOffsets)\n                for (let e = 0; e < this.injectionOffsets.length && i > this.injectionOffsets[e]; e++) i < this.injectionOffsets[e] + this.injectionOptions[e].content.length ? i = this.injectionOffsets[e] : i -= this.injectionOptions[e].content.length;\n            return i\n        }\n        getOutputPositionOfInputOffset(e, t = 2) {\n            let i = 0;\n            if (null !== this.injectionOffsets)\n                for (let n = 0; n < this.injectionOffsets.length && !(e < this.injectionOffsets[n]) && (1 === t || e !== this.injectionOffsets[n]); n++) i += this.injectionOptions[n].content.length;\n            return e += i, this.getOutputPositionOfOffsetInUnwrappedLine(e, t)\n        }\n        getOutputPositionOfOffsetInUnwrappedLine(e, t = 2) {\n            let i = 0,\n                n = this.breakOffsets.length - 1,\n                r = 0,\n                o = 0;\n            for (; i <= n;) {\n                r = i + (n - i) / 2 | 0;\n                var s = this.breakOffsets[r];\n                if (o = 0 < r ? this.breakOffsets[r - 1] : 0, 0 === t)\n                    if (e <= o) n = r - 1;\n                    else {\n                        if (!(s < e)) break;\n                        i = r + 1\n                    }\n                else if (e < o) n = r - 1;\n                else {\n                    if (!(s <= e)) break;\n                    i = r + 1\n                }\n            }\n            return new je(r, e - o)\n        }\n        outputPositionToOffsetInUnwrappedLine(e, t) {\n            let i = (0 < e ? this.breakOffsets[e - 1] : 0) + t;\n            return 0 < e && (i -= this.wrappedTextIndentLength), i\n        }\n        normalizeOffsetAroundInjections(e, t) {\n            var i = this.getInjectedTextAtOffset(e);\n            if (!i) return e;\n            if (2 === t) return e === i.offsetInUnwrappedLine + i.length ? i.offsetInUnwrappedLine + i.length : i.offsetInUnwrappedLine;\n            if (1 === t) {\n                let e = i.offsetInUnwrappedLine + i.length,\n                    t = i.injectedTextIndex;\n                for (; t + 1 < this.injectionOffsets.length && this.injectionOffsets[t + 1] === this.injectionOffsets[t];) e += this.injectionOptions[t + 1].content.length, t++;\n                return e\n            }\n            let n = i.offsetInUnwrappedLine,\n                r = i.injectedTextIndex;\n            for (; 0 <= r - 1 && this.injectionOffsets[r - 1] === this.injectionOffsets[r];) n -= this.injectionOptions[r - 1].content.length, r++;\n            return n\n        }\n        getInjectedText(e, t) {\n            return t = this.outputPositionToOffsetInUnwrappedLine(e, t), (t = this.getInjectedTextAtOffset(t)) ? {\n                options: this.injectionOptions[t.injectedTextIndex]\n            } : null\n        }\n        getInjectedTextAtOffset(e) {\n            var t = this.injectionOffsets,\n                i = this.injectionOptions;\n            if (null !== t) {\n                let s = 0;\n                for (let a = 0; a < t.length; a++) {\n                    var n = i[a].content.length,\n                        r = t[a] + s,\n                        o = t[a] + s + n;\n                    if (e < r) break;\n                    if (e <= o) return {\n                        injectedTextIndex: a,\n                        offsetInUnwrappedLine: r,\n                        length: n\n                    };\n                    s += n\n                }\n            }\n        }\n    }\n    class Ve {\n        constructor(e, t) {\n            this.tabSize = e, this.data = t\n        }\n    }\n    class We {\n        constructor(e, t, i, n, r, o, s) {\n            this._viewLineDataBrand = void 0, this.content = e, this.continuesWithWrappedLine = t, this.minColumn = i, this.maxColumn = n, this.startVisibleColumn = r, this.tokens = o, this.inlineDecorations = s\n        }\n    }\n    class ze {\n        constructor(e, t, i, n, r, o, s, a, l, d) {\n            this.minColumn = e, this.maxColumn = t, this.content = i, this.continuesWithWrappedLine = n, this.isBasicASCII = ze.isBasicASCII(i, o), this.containsRTL = ze.containsRTL(i, this.isBasicASCII, r), this.tokens = s, this.inlineDecorations = a, this.tabSize = l, this.startVisibleColumn = d\n        }\n        static isBasicASCII(e, t) {\n            return !t || b.A(e)\n        }\n        static containsRTL(e, t, i) {\n            return !(t || !i) && b.m(e)\n        }\n    }\n    class He {\n        constructor(e, t, i) {\n            this.range = e, this.inlineClassName = t, this.type = i\n        }\n    }\n    class Ue {\n        constructor(e, t, i, n) {\n            this.startOffset = e, this.endOffset = t, this.inlineClassName = i, this.inlineClassNameAffectsLetterSpacing = n\n        }\n        toInlineDecoration(e) {\n            return new He(new T.a(e, this.startOffset + 1, e, this.endOffset + 1), this.inlineClassName, this.inlineClassNameAffectsLetterSpacing ? 3 : 0)\n        }\n    }\n    class Ke {\n        constructor(e, t) {\n            this._viewModelDecorationBrand = void 0, this.range = e, this.options = t\n        }\n    }\n    class $e {\n        constructor(e, t, i) {\n            this.color = e, this.zIndex = t, this.data = i\n        }\n        static cmp(e, t) {\n            return e.zIndex === t.zIndex ? e.color < t.color ? -1 : e.color > t.color ? 1 : 0 : e.zIndex - t.zIndex\n        }\n    }\n    var qe = i(86);\n\n    function Ge(e) {\n        return !Array.isArray(e)\n    }\n\n    function Ye(e) {\n        return \"string\" == typeof e\n    }\n\n    function Ze(e) {\n        return !Ye(e)\n    }\n\n    function Xe(e, t) {\n        return e.ignoreCase && t ? t.toLowerCase() : t\n    }\n\n    function Qe(e) {\n        return e.replace(/[&<>'\"_]/g, \"-\")\n    }\n\n    function Je(e, t) {\n        return new Error(`${e.languageId}: ${t}`)\n    }\n\n    function et(e, t, i, n, r) {\n        let o = null;\n        return t.replace(/\\$((\\$)|(#)|(\\d\\d?)|[sS](\\d\\d?)|@(\\w+))/g, (function(t, s, a, l, d, c, h, u, p) {\n            return a ? \"$\" : l ? Xe(e, i) : d && d < n.length ? Xe(e, n[d]) : h && e && \"string\" == typeof e[h] ? e[h] : (null === o && (o = r.split(\".\"), o.unshift(r)), c && c < o.length ? Xe(e, o[c]) : \"\")\n        }))\n    }\n\n    function tt(e, t) {\n        let i = t;\n        for (; i && 0 < i.length;) {\n            var n = e.tokenizer[i];\n            if (n) return n;\n            n = i.lastIndexOf(\".\"), i = n < 0 ? null : i.substr(0, n)\n        }\n        return null\n    }\n    class it {\n        constructor(e) {\n            this._maxCacheDepth = e, this._entries = Object.create(null)\n        }\n        static create(e, t) {\n            return this._INSTANCE.create(e, t)\n        }\n        create(e, t) {\n            if (null !== e && e.depth >= this._maxCacheDepth) return new nt(e, t);\n            let i = nt.getStackElementId(e);\n            0 < i.length && (i += \"|\"), i += t;\n            let n = this._entries[i];\n            return n || (n = new nt(e, t), this._entries[i] = n, n)\n        }\n    }\n    it._INSTANCE = new it(5);\n    class nt {\n        constructor(e, t) {\n            this.parent = e, this.state = t, this.depth = (this.parent ? this.parent.depth : 0) + 1\n        }\n        static getStackElementId(e) {\n            let t = \"\";\n            for (; null !== e;) 0 < t.length && (t += \"|\"), t += e.state, e = e.parent;\n            return t\n        }\n        static _equals(e, t) {\n            for (; null !== e && null !== t;) {\n                if (e === t) return !0;\n                if (e.state !== t.state) return !1;\n                e = e.parent, t = t.parent\n            }\n            return null === e && null === t\n        }\n        equals(e) {\n            return nt._equals(this, e)\n        }\n        push(e) {\n            return it.create(this, e)\n        }\n        pop() {\n            return this.parent\n        }\n        popall() {\n            let e = this;\n            for (; e.parent;) e = e.parent;\n            return e\n        }\n        switchTo(e) {\n            return it.create(this.parent, e)\n        }\n    }\n    class rt {\n        constructor(e, t) {\n            this.languageId = e, this.state = t\n        }\n        equals(e) {\n            return this.languageId === e.languageId && this.state.equals(e.state)\n        }\n        clone() {\n            return this.state.clone() === this.state ? this : new rt(this.languageId, this.state)\n        }\n    }\n    class ot {\n        constructor(e) {\n            this._maxCacheDepth = e, this._entries = Object.create(null)\n        }\n        static create(e, t) {\n            return this._INSTANCE.create(e, t)\n        }\n        create(e, t) {\n            if (null !== t) return new st(e, t);\n            if (null !== e && e.depth >= this._maxCacheDepth) return new st(e, t);\n            t = nt.getStackElementId(e);\n            let i = this._entries[t];\n            return i || (i = new st(e, null), this._entries[t] = i, i)\n        }\n    }\n    ot._INSTANCE = new ot(5);\n    class st {\n        constructor(e, t) {\n            this.stack = e, this.embeddedModeData = t\n        }\n        clone() {\n            return (this.embeddedModeData ? this.embeddedModeData.clone() : null) === this.embeddedModeData ? this : ot.create(this.stack, this.embeddedModeData)\n        }\n        equals(e) {\n            return e instanceof st && !!this.stack.equals(e.stack) && (null === this.embeddedModeData && null === e.embeddedModeData || null !== this.embeddedModeData && null !== e.embeddedModeData && this.embeddedModeData.equals(e.embeddedModeData))\n        }\n    }\n    class at {\n        constructor() {\n            this._tokens = [], this._languageId = null, this._lastTokenType = null, this._lastTokenLanguage = null\n        }\n        enterMode(e, t) {\n            this._languageId = t\n        }\n        emit(e, t) {\n            this._lastTokenType === t && this._lastTokenLanguage === this._languageId || (this._lastTokenType = t, this._lastTokenLanguage = this._languageId, this._tokens.push(new qe.a(e, t, this._languageId)))\n        }\n        nestedModeTokenize(e, t, i, n) {\n            var r = i.languageId;\n            i = i.state;\n            const o = z.A.get(r);\n            return o ? (n = o.tokenize(e, t, i, n), this._tokens = this._tokens.concat(n.tokens), this._lastTokenType = null, this._lastTokenLanguage = null, this._languageId = null, n.endState) : (this.enterMode(n, r), this.emit(n, \"\"), i)\n        }\n        finalize(e) {\n            return new qe.b(this._tokens, e)\n        }\n    }\n    class lt {\n        constructor(e, t) {\n            this._modeService = e, this._theme = t, this._prependTokens = null, this._tokens = [], this._currentLanguageId = 0, this._lastTokenMetadata = 0\n        }\n        enterMode(e, t) {\n            this._currentLanguageId = this._modeService.languageIdCodec.encodeLanguageId(t)\n        }\n        emit(e, t) {\n            t = this._theme.match(this._currentLanguageId, t), this._lastTokenMetadata !== t && (this._lastTokenMetadata = t, this._tokens.push(e), this._tokens.push(t))\n        }\n        static _merge(e, t, i) {\n            var n = null !== e ? e.length : 0,\n                r = t.length,\n                o = null !== i ? i.length : 0;\n            if (0 === n && 0 === r && 0 === o) return new Uint32Array(0);\n            if (0 === n && 0 === r) return i;\n            if (0 === r && 0 === o) return e;\n            let s = new Uint32Array(n + r + o);\n            null !== e && s.set(e);\n            for (let e = 0; e < r; e++) s[n + e] = t[e];\n            return null !== i && s.set(i, n + r), s\n        }\n        nestedModeTokenize(e, t, i, n) {\n            var r = i.languageId;\n            i = i.state;\n            const o = z.A.get(r);\n            return o ? (n = o.tokenize2(e, t, i, n), this._prependTokens = lt._merge(this._prependTokens, this._tokens, n.tokens), this._tokens = [], this._currentLanguageId = 0, this._lastTokenMetadata = 0, n.endState) : (this.enterMode(n, r), this.emit(n, \"\"), i)\n        }\n        finalize(e) {\n            return new qe.c(lt._merge(this._prependTokens, this._tokens, null), e)\n        }\n    }\n    class dt {\n        constructor(e, t, i, n) {\n            this._modeService = e, this._standaloneThemeService = t, this._languageId = i, this._lexer = n, this._embeddedModes = Object.create(null), this.embeddedLoaded = Promise.resolve(void 0);\n            let r = !1;\n            this._tokenizationRegistryListener = z.A.onDidChange(e => {\n                if (!r) {\n                    let i = !1;\n                    for (let n = 0, r = e.changedLanguages.length; n < r; n++) {\n                        var t = e.changedLanguages[n];\n                        if (this._embeddedModes[t]) {\n                            i = !0;\n                            break\n                        }\n                    }\n                    i && (r = !0, z.A.fire([this._languageId]), r = !1)\n                }\n            })\n        }\n        dispose() {\n            this._tokenizationRegistryListener.dispose()\n        }\n        getLoadStatus() {\n            let e = [];\n            for (var t in this._embeddedModes) {\n                const n = z.A.get(t);\n                var i;\n                n ? n instanceof dt && !1 === (i = n.getLoadStatus()).loaded && e.push(i.promise) : (t = z.A.getPromise(t)) && e.push(t)\n            }\n            return 0 === e.length ? {\n                loaded: !0\n            } : {\n                loaded: !1,\n                promise: Promise.all(e).then(e => {})\n            }\n        }\n        getInitialState() {\n            var e = it.create(null, this._lexer.start);\n            return ot.create(e, null)\n        }\n        tokenize(e, t, i, n) {\n            let r = new at;\n            return n = this._tokenize(e, t, i, n, r), r.finalize(n)\n        }\n        tokenize2(e, t, i, n) {\n            let r = new lt(this._modeService, this._standaloneThemeService.getColorTheme().tokenTheme);\n            return n = this._tokenize(e, t, i, n, r), r.finalize(n)\n        }\n        _tokenize(e, t, i, n, r) {\n            return i.embeddedModeData ? this._nestedTokenize(e, t, i, n, r) : this._myTokenize(e, t, i, n, r)\n        }\n        _findLeavingNestedModeOffset(e, t) {\n            let i = this._lexer.tokenizer[t.stack.state];\n            if (!i && (i = tt(this._lexer, t.stack.state), !i)) throw Je(this._lexer, \"tokenizer state is not defined: \" + t.stack.state);\n            let n = -1,\n                r = !1;\n            for (const t of i)\n                if (Ze(t.action) && \"@pop\" === t.action.nextEmbedded) {\n                    r = !0;\n                    let i = t.regex,\n                        s = t.regex.source;\n                    \"^(?:\" === s.substr(0, 4) && \")\" === s.substr(s.length - 1, 1) && (o = (i.ignoreCase ? \"i\" : \"\") + (i.unicode ? \"u\" : \"\"), i = new RegExp(s.substr(4, s.length - 5), o));\n                    var o = e.search(i); - 1 === o || 0 !== o && t.matchOnlyAtLineStart || (-1 === n || o < n) && (n = o)\n                } if (!r) throw Je(this._lexer, 'no rule containing nextEmbedded: \"@pop\" in tokenizer embedded state: ' + t.stack.state);\n            return n\n        }\n        _nestedTokenize(e, t, i, n, r) {\n            var o = this._findLeavingNestedModeOffset(e, i);\n            if (-1 === o) {\n                var s = r.nestedModeTokenize(e, t, i.embeddedModeData, n);\n                return ot.create(i.stack, new rt(i.embeddedModeData.languageId, s))\n            }\n            return 0 < (s = e.substring(0, o)).length && r.nestedModeTokenize(s, !1, i.embeddedModeData, n), e = e.substring(o), this._myTokenize(e, t, i, n + o, r)\n        }\n        _safeRuleName(e) {\n            return e ? e.name : \"(unknown)\"\n        }\n        _myTokenize(e, t, i, n, r) {\n            r.enterMode(n, this._languageId);\n            var o = e.length;\n            const s = t && this._lexer.includeLF ? e + \"\\n\" : e,\n                a = s.length;\n            let l = i.embeddedModeData,\n                d = i.stack,\n                c = 0,\n                h = null,\n                u = !0;\n            for (; u || c < a;) {\n                var p = c,\n                    g = d.depth,\n                    f = h ? h.groups.length : 0,\n                    m = d.state;\n                let i = null,\n                    w = null,\n                    y = null,\n                    C = null,\n                    x = null;\n                if (h) {\n                    i = h.matches;\n                    var v = h.groups.shift();\n                    w = v.matched, y = v.action, C = h.rule, 0 === h.groups.length && (h = null)\n                } else {\n                    if (!u && c >= a) break;\n                    u = !1;\n                    let e = this._lexer.tokenizer[m];\n                    if (!e && (e = tt(this._lexer, m), !e)) throw Je(this._lexer, \"tokenizer state is not defined: \" + m);\n                    let t = s.substr(c);\n                    for (const n of e)\n                        if ((0 === c || !n.matchOnlyAtLineStart) && (i = t.match(n.regex), i)) {\n                            w = i[0], y = n.action;\n                            break\n                        }\n                }\n                if (i || (i = [\"\"], w = \"\"), y || (c < a && (i = [s.charAt(c)], w = i[0]), y = this._lexer.defaultToken), null === w) break;\n                for (c += w.length; Ge(y) && Ze(y) && y.test;) y = y.test(w, i, m, c === a);\n                let S = null;\n                if (\"string\" == typeof y || Array.isArray(y)) S = y;\n                else if (y.group) S = y.group;\n                else if (null !== y.token && void 0 !== y.token) {\n                    if (S = y.tokenSubst ? et(this._lexer, y.token, w, i, m) : y.token, y.nextEmbedded)\n                        if (\"@pop\" === y.nextEmbedded) {\n                            if (!l) throw Je(this._lexer, \"cannot pop embedded mode if not inside one\");\n                            l = null\n                        } else {\n                            if (l) throw Je(this._lexer, \"cannot enter embedded mode from within an embedded mode\");\n                            x = et(this._lexer, y.nextEmbedded, w, i, m)\n                        } if (y.goBack && (c = Math.max(0, c - y.goBack)), y.switchTo && \"string\" == typeof y.switchTo) {\n                        let e = et(this._lexer, y.switchTo, w, i, m);\n                        if (\"@\" === e[0] && (e = e.substr(1)), !tt(this._lexer, e)) throw Je(this._lexer, \"trying to switch to a state '\" + e + \"' that is undefined in rule: \" + this._safeRuleName(C));\n                        d = d.switchTo(e)\n                    } else {\n                        if (y.transform && \"function\" == typeof y.transform) throw Je(this._lexer, \"action.transform not supported\");\n                        if (y.next)\n                            if (\"@push\" === y.next) {\n                                if (d.depth >= this._lexer.maxStack) throw Je(this._lexer, \"maximum tokenizer stack size reached: [\" + d.state + \",\" + d.parent.state + \",...]\");\n                                d = d.push(m)\n                            } else if (\"@pop\" === y.next) {\n                            if (d.depth <= 1) throw Je(this._lexer, \"trying to pop an empty stack in rule: \" + this._safeRuleName(C));\n                            d = d.pop()\n                        } else if (\"@popall\" === y.next) d = d.popall();\n                        else {\n                            let e = et(this._lexer, y.next, w, i, m);\n                            if (\"@\" === e[0] && (e = e.substr(1)), !tt(this._lexer, e)) throw Je(this._lexer, \"trying to set a next state '\" + e + \"' that is undefined in rule: \" + this._safeRuleName(C));\n                            d = d.push(e)\n                        }\n                    }\n                    y.log && \"string\" == typeof y.log && (v = this._lexer, b = this._lexer.languageId + \": \" + et(this._lexer, y.log, w, i, m), console.log(`${v.languageId}: ${b}`))\n                }\n                if (null === S) throw Je(this._lexer, \"lexer rule has no well-defined action in rule: \" + this._safeRuleName(C));\n                var b = i => {\n                    var o = this._modeService.getModeIdForLanguageName(i);\n                    o = this._getNestedEmbeddedModeData(i = o || i);\n                    return c < a ? (i = e.substr(c), this._nestedTokenize(i, t, ot.create(d, o), n + c, r)) : ot.create(d, o)\n                };\n                if (Array.isArray(S)) {\n                    if (h && 0 < h.groups.length) throw Je(this._lexer, \"groups cannot be nested: \" + this._safeRuleName(C));\n                    if (i.length !== S.length + 1) throw Je(this._lexer, \"matched number of groups does not match the number of actions in rule: \" + this._safeRuleName(C));\n                    let e = 0;\n                    for (let t = 1; t < i.length; t++) e += i[t].length;\n                    if (e !== w.length) throw Je(this._lexer, \"with groups, all characters should be matched in consecutive groups in rule: \" + this._safeRuleName(C));\n                    h = {\n                        rule: C,\n                        matches: i,\n                        groups: []\n                    };\n                    for (let e = 0; e < S.length; e++) h.groups[e] = {\n                        action: S[e],\n                        matched: i[e + 1]\n                    };\n                    c -= w.length\n                } else {\n                    {\n                        if (\"@rematch\" === S && (c -= w.length, w = \"\", i = null, S = \"\", null !== x)) return b(x);\n                        if (0 === w.length) {\n                            if (0 === a || g !== d.depth || m !== d.state || (h ? h.groups.length : 0) !== f) continue;\n                            throw Je(this._lexer, \"no progress in tokenizer in rule: \" + this._safeRuleName(C))\n                        }\n                        let e = null;\n                        if (Ye(S) && 0 === S.indexOf(\"@brackets\")) {\n                            var _ = S.substr(\"@brackets\".length);\n                            if (!(f = function(e, t) {\n                                    if (!t) return null;\n                                    t = Xe(e, t), e = e.brackets;\n                                    for (const i of e) {\n                                        if (i.open === t) return {\n                                            token: i.token,\n                                            bracketType: 1\n                                        };\n                                        if (i.close === t) return {\n                                            token: i.token,\n                                            bracketType: -1\n                                        }\n                                    }\n                                    return null\n                                }(this._lexer, w))) throw Je(this._lexer, \"@brackets token returned but no bracket defined as: \" + w);\n                            e = Qe(f.token + _)\n                        } else e = Qe(_ = \"\" === S ? \"\" : S + this._lexer.tokenPostfix);\n                        p < o && r.emit(p + n, e)\n                    }\n                    if (null !== x) return b(x)\n                }\n            }\n            return ot.create(d, l)\n        }\n        _getNestedEmbeddedModeData(e) {\n            if (e = this._locateMode(e)) {\n                let t = z.A.get(e);\n                if (t) return new rt(e, t.getInitialState())\n            }\n            return new rt(e || H.a, H.b)\n        }\n        _locateMode(e) {\n            return e && this._modeService.isRegisteredMode(e) ? (e === this._languageId || (e = this._modeService.getModeId(e)) && (this._modeService.triggerMode(e), this._embeddedModes[e] = !0), e) : null\n        }\n    }\n    const ct = null === (x = window.trustedTypes) || void 0 === x ? void 0 : x.createPolicy(\"standaloneColorizer\", {\n        createHTML: e => e\n    });\n    class ht {\n        static colorizeElement(e, t, i, n) {\n            var r = (n = n || {}).theme || \"vs\",\n                o = n.mimeType || i.getAttribute(\"lang\") || i.getAttribute(\"data-lang\");\n            return o ? (e.setTheme(r), e = i.firstChild ? i.firstChild.nodeValue : \"\", i.className += \" \" + r, this.colorize(t, e || \"\", o, n).then(e => {\n                var t;\n                e = null !== (t = null == ct ? void 0 : ct.createHTML(e)) && void 0 !== t ? t : e;\n                i.innerHTML = e\n            }, e => console.error(e))) : (console.error(\"Mode not detected\"), Promise.resolve())\n        }\n        static colorize(e, t, i, n) {\n            const r = e.languageIdCodec;\n            let o = 4;\n            n && \"number\" == typeof n.tabSize && (o = n.tabSize), b.S(t) && (t = t.substr(1));\n            let s = b.Q(t),\n                a = e.getModeId(i);\n            if (!a) return Promise.resolve(pt(s, o, r));\n            if (e.triggerMode(a), e = z.A.get(a)) return ut(s, o, e, r);\n            const l = z.A.getPromise(a);\n            return new Promise(l ? (e, t) => {\n                l.then(i => {\n                    ut(s, o, i, r).then(e, t)\n                }, t)\n            } : (e, t) => {\n                let i = null,\n                    n = null;\n                const l = () => {\n                    i && (i.dispose(), i = null), n && (n.dispose(), n = null);\n                    var l = z.A.get(a);\n                    l ? ut(s, o, l, r).then(e, t) : e(pt(s, o, r))\n                };\n                n = new q.g, n.cancelAndSet(l, 500), i = z.A.onDidChange(e => {\n                    0 <= e.changedLanguages.indexOf(a) && l()\n                })\n            })\n        }\n        static colorizeLine(e, t, i, n, r = 4) {\n            return t = ze.isBasicASCII(e, t), i = ze.containsRTL(e, t, i), Me(new Oe(!1, !0, e, !1, t, i, 0, n, [], r, 0, 0, 0, 0, -1, \"none\", !1, !1, null)).html\n        }\n        static colorizeModelLine(e, t, i = 4) {\n            var n = e.getLineContent(t);\n            return e.forceTokenization(t), t = e.getLineTokens(t).inflate(), this.colorizeLine(n, e.mightContainNonBasicASCII(), e.mightContainRTL(), t, i)\n        }\n    }\n\n    function ut(e, t, i, n) {\n        return new Promise((r, o) => {\n            const s = () => {\n                var a = function(e, t, i, n) {\n                    let r = [],\n                        o = i.getInitialState();\n                    for (let c = 0, h = e.length; c < h; c++) {\n                        var s = e[c],\n                            a = i.tokenize2(s, !0, o, 0);\n                        we.a.convertToEndOffset(a.tokens, s.length);\n                        let h = new we.a(a.tokens, s, n);\n                        var l = ze.isBasicASCII(s, !0),\n                            d = ze.containsRTL(s, l, !0);\n                        d = Me(new Oe(!1, !0, s, !1, l, d, 0, h.inflate(), [], t, 0, 0, 0, 0, -1, \"none\", !1, !1, null));\n                        r = r.concat(d.html), r.push(\"<br/>\"), o = a.endState\n                    }\n                    return r.join(\"\")\n                }(e, t, i, n);\n                if (i instanceof dt) {\n                    const e = i.getLoadStatus();\n                    if (!1 === e.loaded) return void e.promise.then(s, o)\n                }\n                r(a)\n            };\n            s()\n        })\n    }\n\n    function pt(e, t, i) {\n        let n = [];\n        const r = new Uint32Array(2);\n        r[0] = 0, r[1] = 16793600;\n        for (let d = 0, c = e.length; d < c; d++) {\n            var o = e[d];\n            r[0] = o.length;\n            var s = new we.a(r, o, i),\n                a = ze.isBasicASCII(o, !0),\n                l = ze.containsRTL(o, a, !0);\n            s = Me(new Oe(!1, !0, o, !1, a, l, 0, s, [], t, 0, 0, 0, 0, -1, \"none\", !1, !1, null));\n            n = n.concat(s.html), n.push(\"<br/>\")\n        }\n        return n.join(\"\")\n    }\n    var gt = i(55),\n        ft = i(106),\n        mt = i(65);\n    const vt = Object(_.c)(\"IWorkspaceEditService\");\n    class bt {\n        constructor(e) {\n            this.metadata = e\n        }\n        static convert(e) {\n            return e.edits.map(e => {\n                if (t = e, Object(ve.j)(t) && h.a.isUri(t.resource) && Object(ve.j)(t.edit)) return new _t(e.resource, e.edit, e.modelVersionId, e.metadata);\n                var t;\n                if (t = e, Object(ve.j)(t) && (Boolean(t.newUri) || Boolean(t.oldUri))) return new wt(e.oldUri, e.newUri, e.options, e.metadata);\n                throw new Error(\"Unsupported edit\")\n            })\n        }\n    }\n    class _t extends bt {\n        constructor(e, t, i, n) {\n            super(n), this.resource = e, this.textEdit = t, this.versionId = i\n        }\n    }\n    class wt extends bt {\n        constructor(e, t, i, n) {\n            super(n), this.oldResource = e, this.newResource = t, this.options = i\n        }\n    }\n    var yt = i(0),\n        Ct = i(113),\n        xt = i(58);\n    const St = Object.prototype.hasOwnProperty;\n    class kt {\n        constructor() {\n            this.map = new Map\n        }\n        add(e, t) {\n            let i = this.map.get(e);\n            i || (i = new Set, this.map.set(e, i)), i.add(t)\n        }\n        delete(e, t) {\n            const i = this.map.get(e);\n            i && (i.delete(t), 0 === i.size && this.map.delete(e))\n        }\n        forEach(e, t) {\n            const i = this.map.get(e);\n            i && i.forEach(t)\n        }\n    }\n    const Lt = new class {\n            constructor() {\n                this._tabFocus = !1, this._onDidChangeTabFocus = new D.b, this.onDidChangeTabFocus = this._onDidChangeTabFocus.event\n            }\n            getTabFocusMode() {\n                return this._tabFocus\n            }\n            setTabFocusMode(e) {\n                this._tabFocus !== e && (this._tabFocus = e, this._onDidChangeTabFocus.fire(this._tabFocus))\n            }\n        },\n        Ot = Object.hasOwnProperty;\n    class Et {\n        constructor() {\n            this._values = []\n        }\n        _read(e) {\n            return this._values[e]\n        }\n        get(e) {\n            return this._values[e]\n        }\n        _write(e, t) {\n            this._values[e] = t\n        }\n    }\n    class Nt {\n        constructor() {\n            this._values = []\n        }\n        _read(e) {\n            return this._values[e]\n        }\n        _write(e, t) {\n            this._values[e] = t\n        }\n    }\n    class Dt {\n        static readOptions(e) {\n            var t = e;\n            const i = new Nt;\n            for (const e of n.m) {\n                var r = \"_never_\" === e.name ? void 0 : t[e.name];\n                i._write(e.id, r)\n            }\n            return i\n        }\n        static validateOptions(e) {\n            const t = new n.j;\n            for (const i of n.m) t._write(i.id, i.validate(e._read(i.id)));\n            return t\n        }\n        static computeOptions(e, t) {\n            const i = new Et;\n            for (const r of n.m) i._write(r.id, r.compute(t, i, e._read(r.id)));\n            return i\n        }\n        static _deepEquals(e, t) {\n            if (\"object\" != typeof e || \"object\" != typeof t) return e === t;\n            if (Array.isArray(e) || Array.isArray(t)) return !(!Array.isArray(e) || !Array.isArray(t)) && ne.g(e, t);\n            for (var i in e)\n                if (!Dt._deepEquals(e[i], t[i])) return !1;\n            return !0\n        }\n        static checkEquals(e, t) {\n            const i = [];\n            let r = !1;\n            for (const s of n.m) {\n                var o = !Dt._deepEquals(e._read(s.id), t._read(s.id));\n                (i[s.id] = o) && (r = !0)\n            }\n            return r ? new n.b(i) : null\n        }\n    }\n\n    function It(e) {\n        return function(e) {\n            var t, i;\n            !0 === (t = e.wordWrap) ? e.wordWrap = \"on\" : !1 === t && (e.wordWrap = \"off\"), !0 === (i = e.lineNumbers) ? e.lineNumbers = \"on\" : !1 === i && (e.lineNumbers = \"off\"), !1 === e.autoClosingBrackets && (e.autoClosingBrackets = \"never\", e.autoClosingQuotes = \"never\", e.autoSurround = \"never\"), \"visible\" === e.cursorBlinking && (e.cursorBlinking = \"solid\"), !0 === (t = e.renderWhitespace) ? e.renderWhitespace = \"boundary\" : !1 === t && (e.renderWhitespace = \"none\"), !0 === (i = e.renderLineHighlight) ? e.renderLineHighlight = \"line\" : !1 === i && (e.renderLineHighlight = \"none\"), !0 === (t = e.acceptSuggestionOnEnter) ? e.acceptSuggestionOnEnter = \"on\" : !1 === t && (e.acceptSuggestionOnEnter = \"off\"), !1 === (i = e.tabCompletion) ? e.tabCompletion = \"off\" : !0 === i && (e.tabCompletion = \"onlySnippets\");\n            const n = e.suggest;\n            if (n && \"object\" == typeof n.filteredTypes && n.filteredTypes) {\n                ! function(e, t) {\n                    for (let i in e)\n                        if (St.call(e, i) && !1 === t({\n                                key: i,\n                                value: e[i]\n                            })) return\n                }({\n                    method: \"showMethods\",\n                    function: \"showFunctions\",\n                    constructor: \"showConstructors\",\n                    deprecated: \"showDeprecated\",\n                    field: \"showFields\",\n                    variable: \"showVariables\",\n                    class: \"showClasses\",\n                    struct: \"showStructs\",\n                    interface: \"showInterfaces\",\n                    module: \"showModules\",\n                    property: \"showProperties\",\n                    event: \"showEvents\",\n                    operator: \"showOperators\",\n                    unit: \"showUnits\",\n                    value: \"showValues\",\n                    constant: \"showConstants\",\n                    enum: \"showEnums\",\n                    enumMember: \"showEnumMembers\",\n                    keyword: \"showKeywords\",\n                    text: \"showWords\",\n                    color: \"showColors\",\n                    file: \"showFiles\",\n                    reference: \"showReferences\",\n                    folder: \"showFolders\",\n                    typeParameter: \"showTypeParameters\",\n                    snippet: \"showSnippets\"\n                }, e => {\n                    var t = n.filteredTypes[e.key];\n                    !1 === t && (n[e.value] = t)\n                })\n            }!0 === (t = e.hover) ? e.hover = {\n                enabled: !0\n            } : !1 === t && (e.hover = {\n                enabled: !1\n            }), !0 === (i = e.parameterHints) ? e.parameterHints = {\n                enabled: !0\n            } : !1 === i && (e.parameterHints = {\n                enabled: !1\n            }), !0 === (t = e.autoIndent) ? e.autoIndent = \"full\" : !1 === t && (e.autoIndent = \"advanced\"), !0 === (i = e.matchBrackets) ? e.matchBrackets = \"always\" : !1 === i && (e.matchBrackets = \"never\");\n            var {\n                renderIndentGuides: t,\n                highlightActiveIndentGuide: i\n            } = e;\n            e.guides || (e.guides = {}), void 0 !== t && (e.guides.indentation = !!t), void 0 !== i && (e.guides.highlightActiveIndentation = !!i)\n        }(e = I.a(e)), e\n    }\n    class Tt extends v.a {\n        constructor(e, t) {\n            super(), this._onDidChange = this._register(new D.b), this.onDidChange = this._onDidChange.event, this._onDidChangeFast = this._register(new D.b), this.onDidChangeFast = this._onDidChangeFast.event, this.isSimpleWidget = e, this._isDominatedByLongLines = !1, this._computeOptionsMemory = new n.a, this._viewLineCount = 1, this._lineNumbersDigitCount = 1, this._rawOptions = It(t), this._readOptions = Dt.readOptions(this._rawOptions), this._validatedOptions = Dt.validateOptions(this._readOptions), this._register(R.onDidChangeZoomLevel(e => this._recomputeOptions())), this._register(Lt.onDidChangeTabFocus(e => this._recomputeOptions()))\n        }\n        observeReferenceElement(e) {}\n        updatePixelRatio() {}\n        _recomputeOptions() {\n            var e = this.options,\n                t = this._computeInternalOptions();\n            e ? null !== (e = Dt.checkEquals(e, t)) && (this.options = t, this._onDidChangeFast.fire(e), this._onDidChange.fire(e)) : this.options = t\n        }\n        getRawOptions() {\n            return this._rawOptions\n        }\n        _computeInternalOptions() {\n            var e = this._getEnv配置(),\n                t = j.createFromValidatedSettings(this._validatedOptions, e.zoomLevel, e.pixelRatio, this.isSimpleWidget);\n            e = {\n                memory: this._computeOptionsMemory,\n                outerWidth: e.outerWidth,\n                outerHeight: e.outerHeight,\n                fontInfo: this.read配置(t),\n                extraEditorClassName: e.extraEditorClassName,\n                isDominatedByLongLines: this._isDominatedByLongLines,\n                viewLineCount: this._viewLineCount,\n                lineNumbersDigitCount: this._lineNumbersDigitCount,\n                emptySelectionClipboard: e.emptySelectionClipboard,\n                pixelRatio: e.pixelRatio,\n                tabFocusMode: Lt.getTabFocusMode(),\n                accessibilitySupport: e.accessibilitySupport\n            };\n            return Dt.computeOptions(this._validatedOptions, e)\n        }\n        static _subsetEquals(e, t) {\n            for (const r in t)\n                if (Ot.call(t, r)) {\n                    var i = t[r],\n                        n = e[r];\n                    if (n !== i)\n                        if (Array.isArray(n) && Array.isArray(i)) {\n                            if (!ne.g(n, i)) return !1\n                        } else {\n                            if (!n || \"object\" != typeof n || !i || \"object\" != typeof i) return !1;\n                            if (!this._subsetEquals(n, i)) return !1\n                        }\n                } return !0\n        }\n        updateOptions(e) {\n            void 0 !== e && (e = It(e), Tt._subsetEquals(this._rawOptions, e) || (this._rawOptions = I.e(this._rawOptions, e || {}), this._readOptions = Dt.readOptions(this._rawOptions), this._validatedOptions = Dt.validateOptions(this._readOptions), this._recomputeOptions()))\n        }\n        setIsDominatedByLongLines(e) {\n            this._isDominatedByLongLines = e, this._recomputeOptions()\n        }\n        setMaxLineNumber(e) {\n            e = Tt._digitCount(e), this._lineNumbersDigitCount !== e && (this._lineNumbersDigitCount = e, this._recomputeOptions())\n        }\n        setViewLineCount(e) {\n            this._viewLineCount !== e && (this._viewLineCount = e, this._recomputeOptions())\n        }\n        static _digitCount(e) {\n            let t = 0;\n            for (; e;) e = Math.floor(e / 10), t++;\n            return t || 1\n        }\n    }\n    var Mt;\n    S = Object.freeze({\n        id: \"editor\",\n        order: 5,\n        type: \"object\",\n        title: yt.a(\"editor配置Title\", \"Editor\"),\n        scope: 5\n    });\n    const Pt = xt.a.as(Ct.a.配置),\n        At = Object.assign(Object.assign({}, S), {\n            properties: {\n                \"editor.tabSize\": {\n                    type: \"number\",\n                    default: n.d.tabSize,\n                    minimum: 1,\n                    markdownDescription: yt.a(\"tabSize\", \"The number of spaces a tab is equal to. This setting is overridden based on the file contents when `#editor.detectIndentation#` is on.\")\n                },\n                \"editor.insertSpaces\": {\n                    type: \"boolean\",\n                    default: n.d.insertSpaces,\n                    markdownDescription: yt.a(\"insertSpaces\", \"Insert spaces when pressing `Tab`. This setting is overridden based on the file contents when `#editor.detectIndentation#` is on.\")\n                },\n                \"editor.detectIndentation\": {\n                    type: \"boolean\",\n                    default: n.d.detectIndentation,\n                    markdownDescription: yt.a(\"detectIndentation\", \"Controls whether `#editor.tabSize#` and `#editor.insertSpaces#` will be automatically detected when a file is opened based on the file contents.\")\n                },\n                \"editor.trimAutoWhitespace\": {\n                    type: \"boolean\",\n                    default: n.d.trimAutoWhitespace,\n                    description: yt.a(\"trimAutoWhitespace\", \"Remove trailing auto inserted whitespace.\")\n                },\n                \"editor.largeFileOptimizations\": {\n                    type: \"boolean\",\n                    default: n.d.largeFileOptimizations,\n                    description: yt.a(\"largeFileOptimizations\", \"Special handling for large files to disable certain memory intensive features.\")\n                },\n                \"editor.wordBasedSuggestions\": {\n                    type: \"boolean\",\n                    default: !0,\n                    description: yt.a(\"wordBasedSuggestions\", \"Controls whether completions should be computed based on words in the document.\")\n                },\n                \"editor.wordBasedSuggestionsMode\": {\n                    enum: [\"currentDocument\", \"matchingDocuments\", \"allDocuments\"],\n                    default: \"matchingDocuments\",\n                    enumDescriptions: [yt.a(\"wordBasedSuggestionsMode.currentDocument\", \"Only suggest words from the active document.\"), yt.a(\"wordBasedSuggestionsMode.matchingDocuments\", \"Suggest words from all open documents of the same language.\"), yt.a(\"wordBasedSuggestionsMode.allDocuments\", \"Suggest words from all open documents.\")],\n                    description: yt.a(\"wordBasedSuggestionsMode\", \"Controls from which documents word based completions are computed.\")\n                },\n                \"editor.semanticHighlighting.enabled\": {\n                    enum: [!0, !1, \"configuredByTheme\"],\n                    enumDescriptions: [yt.a(\"semanticHighlighting.true\", \"Semantic highlighting enabled for all color themes.\"), yt.a(\"semanticHighlighting.false\", \"Semantic highlighting disabled for all color themes.\"), yt.a(\"semanticHighlighting.configuredByTheme\", \"Semantic highlighting is configured by the current color theme's `semanticHighlighting` setting.\")],\n                    default: \"configuredByTheme\",\n                    description: yt.a(\"semanticHighlighting.enabled\", \"Controls whether the semanticHighlighting is shown for the languages that support it.\")\n                },\n                \"editor.stablePeek\": {\n                    type: \"boolean\",\n                    default: !1,\n                    markdownDescription: yt.a(\"stablePeek\", \"Keep peek editors open even when double clicking their content or when hitting `Escape`.\")\n                },\n                \"editor.maxTokenizationLineLength\": {\n                    type: \"integer\",\n                    default: 2e4,\n                    description: yt.a(\"maxTokenizationLineLength\", \"Lines above this length will not be tokenized for performance reasons\")\n                },\n                \"editor.language.brackets\": {\n                    type: \"array\",\n                    default: !1,\n                    description: yt.a(\"schema.brackets\", \"Defines the bracket symbols that increase or decrease the indentation.\"),\n                    items: {\n                        type: \"array\",\n                        items: [{\n                            type: \"string\",\n                            description: yt.a(\"schema.openBracket\", \"The opening bracket character or string sequence.\")\n                        }, {\n                            type: \"string\",\n                            description: yt.a(\"schema.closeBracket\", \"The closing bracket character or string sequence.\")\n                        }]\n                    }\n                },\n                \"editor.language.colorizedBracketPairs\": {\n                    type: \"array\",\n                    default: !1,\n                    description: yt.a(\"schema.colorizedBracketPairs\", \"Defines the bracket pairs that are colorized by their nesting level if bracket pair colorization is enabled.\"),\n                    items: {\n                        type: \"array\",\n                        items: [{\n                            type: \"string\",\n                            description: yt.a(\"schema.openBracket\", \"The opening bracket character or string sequence.\")\n                        }, {\n                            type: \"string\",\n                            description: yt.a(\"schema.closeBracket\", \"The closing bracket character or string sequence.\")\n                        }]\n                    }\n                },\n                \"diffEditor.maxComputationTime\": {\n                    type: \"number\",\n                    default: 5e3,\n                    description: yt.a(\"maxComputationTime\", \"Timeout in milliseconds after which diff computation is cancelled. Use 0 for no timeout.\")\n                },\n                \"diffEditor.maxFileSize\": {\n                    type: \"number\",\n                    default: 50,\n                    description: yt.a(\"maxFileSize\", \"Maximum file size in MB for which to compute diffs. Use 0 for no limit.\")\n                },\n                \"diffEditor.renderSideBySide\": {\n                    type: \"boolean\",\n                    default: !0,\n                    description: yt.a(\"sideBySide\", \"Controls whether the diff editor shows the diff side by side or inline.\")\n                },\n                \"diffEditor.ignoreTrimWhitespace\": {\n                    type: \"boolean\",\n                    default: !0,\n                    description: yt.a(\"ignoreTrimWhitespace\", \"When enabled, the diff editor ignores changes in leading or trailing whitespace.\")\n                },\n                \"diffEditor.renderIndicators\": {\n                    type: \"boolean\",\n                    default: !0,\n                    description: yt.a(\"renderIndicators\", \"Controls whether the diff editor shows +/- indicators for added/removed changes.\")\n                },\n                \"diffEditor.codeLens\": {\n                    type: \"boolean\",\n                    default: !1,\n                    description: yt.a(\"codeLens\", \"Controls whether the editor shows CodeLens.\")\n                },\n                \"diffEditor.wordWrap\": {\n                    type: \"string\",\n                    enum: [\"off\", \"on\", \"inherit\"],\n                    default: \"inherit\",\n                    markdownEnumDescriptions: [yt.a(\"wordWrap.off\", \"Lines will never wrap.\"), yt.a(\"wordWrap.on\", \"Lines will wrap at the viewport width.\"), yt.a(\"wordWrap.inherit\", \"Lines will wrap according to the `#editor.wordWrap#` setting.\")]\n                }\n            }\n        });\n    for (const e of n.m) {\n        var Rt = e.schema;\n        if (void 0 !== Rt)\n            if (void 0 !== (Mt = Rt).type || void 0 !== Mt.anyOf) At.properties[\"editor.\" + e.name] = Rt;\n            else\n                for (var Ft in Rt) Ot.call(Rt, Ft) && (At.properties[Ft] = Rt[Ft])\n    }\n    let jt = null;\n\n    function Bt() {\n        return null === jt && (jt = Object.create(null), Object.keys(At.properties).forEach(e => {\n            jt[e] = !0\n        })), jt\n    }\n    Pt.register配置(At);\n    var Vt = i(107),\n        Wt = i(56);\n    class zt {\n        constructor(e = {}, t = [], i = []) {\n            this._contents = e, this._keys = t, this._overrides = i, this.isFrozen = !1, this.override配置s = new Map\n        }\n        get contents() {\n            return this.checkAndFreeze(this._contents)\n        }\n        get overrides() {\n            return this.checkAndFreeze(this._overrides)\n        }\n        get keys() {\n            return this.checkAndFreeze(this._keys)\n        }\n        isEmpty() {\n            return 0 === this._keys.length && 0 === Object.keys(this._contents).length && 0 === this._overrides.length\n        }\n        getValue(e) {\n            return e ? Object(Wt.d)(this.contents, e) : this.contents\n        }\n        override(e) {\n            let t = this.override配置s.get(e);\n            return t || (t = this.createOverride配置Model(e), this.override配置s.set(e, t)), t\n        }\n        merge(...e) {\n            var t = I.a(this.contents);\n            const i = I.a(this.overrides),\n                n = [...this.keys];\n            for (const o of e) {\n                this.mergeContents(t, o.contents);\n                for (const e of o.overrides) {\n                    var [r] = i.filter(t => ne.g(t.identifiers, e.identifiers));\n                    r ? this.mergeContents(r.contents, e.contents) : i.push(I.a(e))\n                }\n                for (const e of o.keys) - 1 === n.indexOf(e) && n.push(e)\n            }\n            return new zt(t, n, i)\n        }\n        freeze() {\n            return this.isFrozen = !0, this\n        }\n        createOverride配置Model(e) {\n            var t = this.getContentsForOverrideIdentifer(e);\n            if (!t || \"object\" != typeof t || !Object.keys(t).length) return this;\n            let i = {};\n            for (const e of ne.f([...Object.keys(this.contents), ...Object.keys(t)])) {\n                let r = this.contents[e];\n                var n = t[e];\n                n && (\"object\" == typeof r && \"object\" == typeof n ? (r = I.a(r), this.mergeContents(r, n)) : r = n), i[e] = r\n            }\n            return new zt(i, this.keys, this.overrides)\n        }\n        mergeContents(e, t) {\n            for (const i of Object.keys(t)) i in e && ve.j(e[i]) && ve.j(t[i]) ? this.mergeContents(e[i], t[i]) : e[i] = I.a(t[i])\n        }\n        checkAndFreeze(e) {\n            return this.isFrozen && !Object.isFrozen(e) ? I.b(e) : e\n        }\n        getContentsForOverrideIdentifer(e) {\n            for (const t of this.overrides)\n                if (-1 !== t.identifiers.indexOf(e)) return t.contents;\n            return null\n        }\n        toJSON() {\n            return {\n                contents: this.contents,\n                overrides: this.overrides,\n                keys: this.keys\n            }\n        }\n        setValue(e, t) {\n            this.addKey(e), Object(Wt.b)(this.contents, e, t, e => {\n                throw new Error(e)\n            })\n        }\n        removeValue(e) {\n            this.removeKey(e) && Object(Wt.f)(this.contents, e)\n        }\n        addKey(e) {\n            let t = this.keys.length;\n            for (let i = 0; i < t; i++) 0 === e.indexOf(this.keys[i]) && (t = i);\n            this.keys.splice(t, 1, e)\n        }\n        removeKey(e) {\n            return -1 !== (e = this.keys.indexOf(e)) && (this.keys.splice(e, 1), !0)\n        }\n    }\n    class Ht extends zt {\n        constructor() {\n            var e = Object(Wt.e)(),\n                t = Object(Wt.c)();\n            const i = [];\n            for (const t of Object.keys(e)) Ct.b.test(t) && i.push({\n                identifiers: [Object(Ct.c)(t).trim()],\n                keys: Object.keys(e[t]),\n                contents: Object(Wt.g)(e[t], e => console.error(\"Conflict in default settings file: \" + e))\n            });\n            super(e, t, i)\n        }\n    }\n    class Ut {\n        constructor(e, t, i = new zt, n = new zt, r = new d.b, o = new zt, s = new d.b, a = !0) {\n            this._default配置 = e, this._localUser配置 = t, this._remoteUser配置 = i, this._workspace配置 = n, this._folder配置s = r, this._memory配置 = o, this._memory配置ByResource = s, this._freeze = a, this._workspaceConsolidated配置 = null, this._foldersConsolidated配置s = new d.b, this._user配置 = null\n        }\n        getValue(e, t, i) {\n            return this.getConsolidate配置Model(t, i).getValue(e)\n        }\n        updateValue(e, t, i = {}) {\n            let n;\n            i.resource ? (n = this._memory配置ByResource.get(i.resource), n || (n = new zt, this._memory配置ByResource.set(i.resource, n))) : n = this._memory配置, void 0 === t ? n.removeValue(e) : n.setValue(e, t), i.resource || (this._workspaceConsolidated配置 = null)\n        }\n        get user配置() {\n            return this._user配置 || (this._user配置 = this._remoteUser配置.isEmpty() ? this._localUser配置 : this._localUser配置.merge(this._remoteUser配置), this._freeze && this._user配置.freeze()), this._user配置\n        }\n        getConsolidate配置Model(e, t) {\n            let i = this.getConsolidated配置ModelForResource(e, t);\n            return e.overrideIdentifier ? i.override(e.overrideIdentifier) : i\n        }\n        getConsolidated配置ModelForResource({\n            resource: e\n        }, t) {\n            let i = this.getWorkspaceConsolidated配置();\n            return t && e && ((t = t.getFolder(e)) && (i = this.getFolderConsolidated配置(t.uri) || i), (e = this._memory配置ByResource.get(e)) && (i = i.merge(e))), i\n        }\n        getWorkspaceConsolidated配置() {\n            return this._workspaceConsolidated配置 || (this._workspaceConsolidated配置 = this._default配置.merge(this.user配置, this._workspace配置, this._memory配置), this._freeze && (this._workspace配置 = this._workspace配置.freeze())), this._workspaceConsolidated配置\n        }\n        getFolderConsolidated配置(e) {\n            let t = this._foldersConsolidated配置s.get(e);\n            if (!t) {\n                const n = this.getWorkspaceConsolidated配置();\n                var i = this._folder配置s.get(e);\n                i ? (t = n.merge(i), this._freeze && (t = t.freeze()), this._foldersConsolidated配置s.set(e, t)) : t = n\n            }\n            return t\n        }\n        toData() {\n            return {\n                defaults: {\n                    contents: this._default配置.contents,\n                    overrides: this._default配置.overrides,\n                    keys: this._default配置.keys\n                },\n                user: {\n                    contents: this.user配置.contents,\n                    overrides: this.user配置.overrides,\n                    keys: this.user配置.keys\n                },\n                workspace: {\n                    contents: this._workspace配置.contents,\n                    overrides: this._workspace配置.overrides,\n                    keys: this._workspace配置.keys\n                },\n                folders: [...this._folder配置s.keys()].reduce((e, t) => {\n                    var {\n                        contents: i,\n                        overrides: n,\n                        keys: r\n                    } = this._folder配置s.get(t);\n                    return e.push([t, {\n                        contents: i,\n                        overrides: n,\n                        keys: r\n                    }]), e\n                }, [])\n            }\n        }\n        static parse(e) {\n            var t = this.parse配置Model(e.defaults),\n                i = this.parse配置Model(e.user),\n                n = this.parse配置Model(e.workspace);\n            e = e.folders.reduce((e, t) => (e.set(h.a.revive(t[0]), this.parse配置Model(t[1])), e), new d.b);\n            return new Ut(t, i, new zt, n, e, new zt, new d.b, !1)\n        }\n        static parse配置Model(e) {\n            return new zt(e.contents, e.keys, e.overrides).freeze()\n        }\n    }\n    class Kt {\n        constructor(e, t, i, n) {\n            this.change = e, this.previous = t, this.currentConfiguraiton = i, this.currentWorkspace = n, this._previous配置 = void 0;\n            const r = new Set;\n            e.keys.forEach(e => r.add(e)), e.overrides.forEach(([, e]) => e.forEach(e => r.add(e))), this.affectedKeys = [...r.values()];\n            const o = new zt;\n            this.affectedKeys.forEach(e => o.setValue(e, {})), this.affectedKeysTree = o.contents\n        }\n        get previous配置() {\n            return !this._previous配置 && this.previous && (this._previous配置 = Ut.parse(this.previous.data)), this._previous配置\n        }\n        affects配置(e, t) {\n            if (this.doesAffectedKeysTreeContains(this.affectedKeysTree, e)) {\n                if (t) {\n                    var i = this.previous配置 ? this.previous配置.getValue(e, t, null === (i = this.previous) || void 0 === i ? void 0 : i.workspace) : void 0;\n                    t = this.currentConfiguraiton.getValue(e, t, this.currentWorkspace);\n                    return !I.c(i, t)\n                }\n                return !0\n            }\n            return !1\n        }\n        doesAffectedKeysTreeContains(e, t) {\n            let i, n = Object(Wt.g)({\n                [t]: !0\n            }, () => {});\n            for (;\n                \"object\" == typeof n && (i = Object.keys(n)[0]);) {\n                if (!(e = e[i])) return !1;\n                n = n[i]\n            }\n            return !0\n        }\n    }\n    const $t = /^(cursor|delete)/;\n    class qt extends v.a {\n        constructor(e, t, i, n, r) {\n            super(), this._contextKeyService = e, this._commandService = t, this._telemetryService = i, this._notificationService = n, this._logService = r, this._onDidUpdateKeybindings = this._register(new D.b), this._currentChord = null, this._currentChordChecker = new q.c, this._currentChordStatusMessage = null, this._ignoreSingleModifiers = Gt.EMPTY, this._currentSingleModifier = null, this._currentSingleModifierClearTimeout = new q.g, this._logging = !1\n        }\n        get onDidUpdateKeybindings() {\n            return this._onDidUpdateKeybindings ? this._onDidUpdateKeybindings.event : D.c.None\n        }\n        dispose() {\n            super.dispose()\n        }\n        _log(e) {\n            this._logging && this._logService.info(\"[KeybindingService]: \" + e)\n        }\n        getKeybindings() {\n            return this._getResolver().getKeybindings()\n        }\n        lookupKeybinding(e, t) {\n            if (t = this._getResolver().lookupPrimaryKeybinding(e, t || this._contextKeyService)) return t.resolvedKeybinding\n        }\n        dispatchEvent(e, t) {\n            return this._dispatch(e, t)\n        }\n        softDispatch(e, t) {\n            const i = this.resolveKeyboardEvent(e);\n            if (i.isChord()) return console.warn(\"Unexpected keyboard event mapped to a chord\"), null;\n            var [n] = i.getDispatchParts();\n            return null === n ? null : (e = this._contextKeyService.getContext(t), t = this._currentChord ? this._currentChord.keypress : null, this._getResolver().resolve(e, t, n))\n        }\n        _enterChordMode(e, t) {\n            this._currentChord = {\n                keypress: e,\n                label: t\n            }, this._currentChordStatusMessage = this._notificationService.status(yt.a(\"first.chord\", \"({0}) was pressed. Waiting for second key of chord...\", t));\n            const i = Date.now();\n            this._currentChordChecker.cancelAndSet(() => {\n                (!this._documentHasFocus() || 5e3 < Date.now() - i) && this._leaveChordMode()\n            }, 500)\n        }\n        _leaveChordMode() {\n            this._currentChordStatusMessage && (this._currentChordStatusMessage.dispose(), this._currentChordStatusMessage = null), this._currentChordChecker.cancel(), this._currentChord = null\n        }\n        _dispatch(e, t) {\n            return this._doDispatch(this.resolveKeyboardEvent(e), t, !1)\n        }\n        _singleModifierDispatch(e, t) {\n            const i = this.resolveKeyboardEvent(e);\n            var [e] = i.getSingleModifierDispatchParts();\n            if (e) return this._ignoreSingleModifiers.has(e) ? (this._log(`+ Ignoring single modifier ${e} due to it being pressed together with other keys.`), this._ignoreSingleModifiers = Gt.EMPTY, this._currentSingleModifierClearTimeout.cancel(), this._currentSingleModifier = null, !1) : (this._ignoreSingleModifiers = Gt.EMPTY, null === this._currentSingleModifier ? (this._log(`+ Storing single modifier for possible chord ${e}.`), this._currentSingleModifier = e, this._currentSingleModifierClearTimeout.cancelAndSet(() => {\n                this._log(\"+ Clearing single modifier due to 300ms elapsed.\"), this._currentSingleModifier = null\n            }, 300), !1) : e === this._currentSingleModifier ? (this._log(`/ Dispatching single modifier chord ${e} ${e}`), this._currentSingleModifierClearTimeout.cancel(), this._currentSingleModifier = null, this._doDispatch(i, t, !0)) : (this._log(`+ Clearing single modifier due to modifier mismatch: ${this._currentSingleModifier} ${e}`), this._currentSingleModifierClearTimeout.cancel(), this._currentSingleModifier = null, !1));\n            var [e] = i.getParts();\n            return this._ignoreSingleModifiers = new Gt(e), null !== this._currentSingleModifier && this._log(\"+ Clearing single modifier due to other key up.\"), this._currentSingleModifierClearTimeout.cancel(), this._currentSingleModifier = null, !1\n        }\n        _doDispatch(e, t, i = !1) {\n            let n = !1;\n            if (e.isChord()) return console.warn(\"Unexpected keyboard event mapped to a chord\"), !1;\n            let r = null,\n                o = null;\n            return o = i ? ([i] = e.getSingleModifierDispatchParts(), r = i) : ([r] = e.getDispatchParts(), this._currentChord ? this._currentChord.keypress : null), null === r ? (this._log(\"\\\\ Keyboard event cannot be dispatched in keydown phase.\"), n) : (t = this._contextKeyService.getContext(t), e = e.getLabel(), t = this._getResolver().resolve(t, o, r), this._logService.trace(\"KeybindingService#dispatch\", e, null == t ? void 0 : t.commandId), t && t.enterChord ? (n = !0, this._enterChordMode(r, e)) : (this._currentChord && (t && t.commandId || (this._notificationService.status(yt.a(\"missing.chord\", \"The key combination ({0}, {1}) is not a command.\", this._currentChord.label, e), {\n                hideAfter: 1e4\n            }), n = !0)), this._leaveChordMode(), t && t.commandId && (t.bubble || (n = !0), void 0 === t.commandArgs ? this._commandService.executeCommand(t.commandId).then(void 0, e => this._notificationService.warn(e)) : this._commandService.executeCommand(t.commandId, t.commandArgs).then(void 0, e => this._notificationService.warn(e)), $t.test(t.commandId) || this._telemetryService.publicLog2(\"workbenchActionExecuted\", {\n                id: t.commandId,\n                from: \"keybinding\"\n            }))), n)\n        }\n        mightProducePrintableCharacter(e) {\n            return !e.ctrlKey && !e.metaKey && (31 <= e.keyCode && e.keyCode <= 56 || 21 <= e.keyCode && e.keyCode <= 30)\n        }\n    }\n    class Gt {\n        constructor(e) {\n            this._ctrlKey = !!e && e.ctrlKey, this._shiftKey = !!e && e.shiftKey, this._altKey = !!e && e.altKey, this._metaKey = !!e && e.metaKey\n        }\n        has(e) {\n            switch (e) {\n                case \"ctrl\":\n                    return this._ctrlKey;\n                case \"shift\":\n                    return this._shiftKey;\n                case \"alt\":\n                    return this._altKey;\n                case \"meta\":\n                    return this._metaKey\n            }\n        }\n    }\n    Gt.EMPTY = new Gt(null);\n    var Yt = i(13);\n    class Zt {\n        constructor(e, t, i) {\n            this._log = i, this._defaultKeybindings = e, this._defaultBoundCommands = new Map;\n            for (let t = 0, i = e.length; t < i; t++) {\n                var n = e[t].command;\n                n && this._defaultBoundCommands.set(n, !0)\n            }\n            this._map = new Map, this._lookupMap = new Map, this._keybindings = Zt.combine(e, t);\n            for (let e = 0, t = this._keybindings.length; e < t; e++) {\n                var r = this._keybindings[e];\n                0 !== r.keypressParts.length && (r.when && 0 === r.when.type || this._addKeyPress(r.keypressParts[0], r))\n            }\n        }\n        static _isTargetedForRemoval(e, t, i, n, r) {\n            if (e.command !== n) return !1;\n            if (t && e.keypressParts[0] !== t) return !1;\n            if (i && e.keypressParts[1] !== i) return !1;\n            if (r) {\n                if (!e.when) return !1;\n                if (!Object(Yt.e)(r, e.when)) return !1\n            }\n            return !0\n        }\n        static combine(e, t) {\n            e = e.slice(0);\n            let i = [];\n            for (const a of t)\n                if (a.command && 0 !== a.command.length && \"-\" === a.command.charAt(0)) {\n                    var n = a.command.substr(1),\n                        r = a.keypressParts[0],\n                        o = a.keypressParts[1],\n                        s = a.when;\n                    for (let t = e.length - 1; 0 <= t; t--) this._isTargetedForRemoval(e[t], r, o, n, s) && e.splice(t, 1)\n                } else i.push(a);\n            return e.concat(i)\n        }\n        _addKeyPress(e, t) {\n            const i = this._map.get(e);\n            if (void 0 === i) return this._map.set(e, [t]), void this._addToLookupMap(t);\n            for (let e = i.length - 1; 0 <= e; e--) {\n                var n, r, o = i[e];\n                o.command !== t.command && (n = 1 < o.keypressParts.length, r = 1 < t.keypressParts.length, n && r && o.keypressParts[1] !== t.keypressParts[1] || Zt.whenIsEntirelyIncluded(o.when, t.when) && this._removeFromLookupMap(o))\n            }\n            i.push(t), this._addToLookupMap(t)\n        }\n        _addToLookupMap(e) {\n            if (e.command) {\n                let t = this._lookupMap.get(e.command);\n                void 0 === t ? (t = [e], this._lookupMap.set(e.command, t)) : t.push(e)\n            }\n        }\n        _removeFromLookupMap(e) {\n            if (e.command) {\n                let t = this._lookupMap.get(e.command);\n                if (void 0 !== t)\n                    for (let i = 0, n = t.length; i < n; i++)\n                        if (t[i] === e) return void t.splice(i, 1)\n            }\n        }\n        static whenIsEntirelyIncluded(e, t) {\n            return !t || 1 === t.type || !(!e || 1 === e.type) && Object(Yt.f)(e, t)\n        }\n        getKeybindings() {\n            return this._keybindings\n        }\n        lookupPrimaryKeybinding(e, t) {\n            var i = this._lookupMap.get(e);\n            if (void 0 === i || 0 === i.length) return null;\n            if (1 === i.length) return i[0];\n            for (let e = i.length - 1; 0 <= e; e--) {\n                var n = i[e];\n                if (t.contextMatchesRules(n.when)) return n\n            }\n            return i[i.length - 1]\n        }\n        resolve(e, t, i) {\n            this._log(`| Resolving ${i}${t?\" chorded from \"+t:\"\"}`);\n            let n = null;\n            if (null !== t) {\n                var r = this._map.get(t);\n                if (void 0 === r) return this._log(\"\\\\ No keybinding entries.\"), null;\n                n = [];\n                for (let e = 0, t = r.length; e < t; e++) {\n                    var o = r[e];\n                    o.keypressParts[1] === i && n.push(o)\n                }\n            } else {\n                var s = this._map.get(i);\n                if (void 0 === s) return this._log(\"\\\\ No keybinding entries.\"), null;\n                n = s\n            }\n            return (e = this._findCommand(e, n)) ? null === t && 1 < e.keypressParts.length && null !== e.keypressParts[1] ? (this._log(`\\\\ From ${n.length} keybinding entries, matched chord, when: ${Xt(e.when)}, source: ${Qt(e)}.`), {\n                enterChord: !0,\n                leaveChord: !1,\n                commandId: null,\n                commandArgs: null,\n                bubble: !1\n            }) : (this._log(`\\\\ From ${n.length} keybinding entries, matched ${e.command}, when: ${Xt(e.when)}, source: ${Qt(e)}.`), {\n                enterChord: !1,\n                leaveChord: 1 < e.keypressParts.length,\n                commandId: e.command,\n                commandArgs: e.commandArgs,\n                bubble: e.bubble\n            }) : (this._log(`\\\\ From ${n.length} keybinding entries, no when clauses matched the context.`), null)\n        }\n        _findCommand(e, t) {\n            for (let n = t.length - 1; 0 <= n; n--) {\n                var i = t[n];\n                if (Zt.contextMatchesRules(e, i.when)) return i\n            }\n            return null\n        }\n        static contextMatchesRules(e, t) {\n            return !t || t.evaluate(e)\n        }\n    }\n\n    function Xt(e) {\n        return e ? \"\" + e.serialize() : \"no when condition\"\n    }\n\n    function Qt(e) {\n        return e.extensionId ? e.isBuiltinExtension ? \"built-in extension \" + e.extensionId : \"user extension \" + e.extensionId : e.isDefault ? \"built-in\" : \"user\"\n    }\n    var Jt = i(128);\n    class ei {\n        constructor(e, t, i, n, r, o, s) {\n            this._resolvedKeybindingItemBrand = void 0, this.resolvedKeybinding = e, this.keypressParts = e ? ti(e.getDispatchParts()) : [], e && 0 === this.keypressParts.length && (this.keypressParts = ti(e.getSingleModifierDispatchParts())), this.bubble = !!t && 94 === t.charCodeAt(0), this.command = this.bubble ? t.substr(1) : t, this.commandArgs = i, this.when = n, this.isDefault = r, this.extensionId = o, this.isBuiltinExtension = s\n        }\n    }\n\n    function ti(e) {\n        let t = [];\n        for (let n = 0, r = e.length; n < r; n++) {\n            var i = e[n];\n            if (!i) return t;\n            t.push(i)\n        }\n        return t\n    }\n    var ii = i(92);\n    class ni {\n        constructor(e, t, i = t) {\n            this.modifierLabels = [null], this.modifierLabels[2] = e, this.modifierLabels[1] = t, this.modifierLabels[3] = i\n        }\n        toLabel(e, t, i) {\n            if (0 === t.length) return null;\n            const n = [];\n            for (let s = 0, a = t.length; s < a; s++) {\n                var r = t[s],\n                    o = i(r);\n                if (null === o) return null;\n                n[s] = function(e, t, i) {\n                    if (null === t) return \"\";\n                    const n = [];\n                    return e.ctrlKey && n.push(i.ctrlKey), e.shiftKey && n.push(i.shiftKey), e.altKey && n.push(i.altKey), e.metaKey && n.push(i.metaKey), \"\" !== t && n.push(t), n.join(i.separator)\n                }(r, o, this.modifierLabels[e])\n            }\n            return n.join(\" \")\n        }\n    }\n    const ri = new ni({\n            ctrlKey: \"⌃\",\n            shiftKey: \"⇧\",\n            altKey: \"⌥\",\n            metaKey: \"⌘\",\n            separator: \"\"\n        }, {\n            ctrlKey: yt.a({\n                key: \"ctrlKey\",\n                comment: [\"This is the short form for the Control key on the keyboard\"]\n            }, \"Ctrl\"),\n            shiftKey: yt.a({\n                key: \"shiftKey\",\n                comment: [\"This is the short form for the Shift key on the keyboard\"]\n            }, \"Shift\"),\n            altKey: yt.a({\n                key: \"altKey\",\n                comment: [\"This is the short form for the Alt key on the keyboard\"]\n            }, \"Alt\"),\n            metaKey: yt.a({\n                key: \"windowsKey\",\n                comment: [\"This is the short form for the Windows key on the keyboard\"]\n            }, \"Windows\"),\n            separator: \"+\"\n        }, {\n            ctrlKey: yt.a({\n                key: \"ctrlKey\",\n                comment: [\"This is the short form for the Control key on the keyboard\"]\n            }, \"Ctrl\"),\n            shiftKey: yt.a({\n                key: \"shiftKey\",\n                comment: [\"This is the short form for the Shift key on the keyboard\"]\n            }, \"Shift\"),\n            altKey: yt.a({\n                key: \"altKey\",\n                comment: [\"This is the short form for the Alt key on the keyboard\"]\n            }, \"Alt\"),\n            metaKey: yt.a({\n                key: \"superKey\",\n                comment: [\"This is the short form for the Super key on the keyboard\"]\n            }, \"Super\"),\n            separator: \"+\"\n        }),\n        oi = new ni({\n            ctrlKey: yt.a({\n                key: \"ctrlKey.long\",\n                comment: [\"This is the long form for the Control key on the keyboard\"]\n            }, \"Control\"),\n            shiftKey: yt.a({\n                key: \"shiftKey.long\",\n                comment: [\"This is the long form for the Shift key on the keyboard\"]\n            }, \"Shift\"),\n            altKey: yt.a({\n                key: \"altKey.long\",\n                comment: [\"This is the long form for the Alt key on the keyboard\"]\n            }, \"Alt\"),\n            metaKey: yt.a({\n                key: \"cmdKey.long\",\n                comment: [\"This is the long form for the Command key on the keyboard\"]\n            }, \"Command\"),\n            separator: \"+\"\n        }, {\n            ctrlKey: yt.a({\n                key: \"ctrlKey.long\",\n                comment: [\"This is the long form for the Control key on the keyboard\"]\n            }, \"Control\"),\n            shiftKey: yt.a({\n                key: \"shiftKey.long\",\n                comment: [\"This is the long form for the Shift key on the keyboard\"]\n            }, \"Shift\"),\n            altKey: yt.a({\n                key: \"altKey.long\",\n                comment: [\"This is the long form for the Alt key on the keyboard\"]\n            }, \"Alt\"),\n            metaKey: yt.a({\n                key: \"windowsKey.long\",\n                comment: [\"This is the long form for the Windows key on the keyboard\"]\n            }, \"Windows\"),\n            separator: \"+\"\n        }, {\n            ctrlKey: yt.a({\n                key: \"ctrlKey.long\",\n                comment: [\"This is the long form for the Control key on the keyboard\"]\n            }, \"Control\"),\n            shiftKey: yt.a({\n                key: \"shiftKey.long\",\n                comment: [\"This is the long form for the Shift key on the keyboard\"]\n            }, \"Shift\"),\n            altKey: yt.a({\n                key: \"altKey.long\",\n                comment: [\"This is the long form for the Alt key on the keyboard\"]\n            }, \"Alt\"),\n            metaKey: yt.a({\n                key: \"superKey.long\",\n                comment: [\"This is the long form for the Super key on the keyboard\"]\n            }, \"Super\"),\n            separator: \"+\"\n        }),\n        si = new ni({\n            ctrlKey: \"Ctrl\",\n            shiftKey: \"Shift\",\n            altKey: \"Alt\",\n            metaKey: \"Cmd\",\n            separator: \"+\"\n        }, {\n            ctrlKey: \"Ctrl\",\n            shiftKey: \"Shift\",\n            altKey: \"Alt\",\n            metaKey: \"Super\",\n            separator: \"+\"\n        });\n    class ai extends ft.b {\n        constructor(e, t) {\n            if (super(), 0 === t.length) throw Object(se.c)(\"parts\");\n            this._os = e, this._parts = t\n        }\n        getLabel() {\n            return ri.toLabel(this._os, this._parts, e => this._getLabel(e))\n        }\n        getAriaLabel() {\n            return oi.toLabel(this._os, this._parts, e => this._getAriaLabel(e))\n        }\n        getElectronAccelerator() {\n            return 1 < this._parts.length || this._parts[0].isDuplicateModifierCase() ? null : si.toLabel(this._os, this._parts, e => this._getElectronAccelerator(e))\n        }\n        isChord() {\n            return 1 < this._parts.length\n        }\n        getParts() {\n            return this._parts.map(e => this._getPart(e))\n        }\n        _getPart(e) {\n            return new ft.c(e.ctrlKey, e.shiftKey, e.altKey, e.metaKey, this._getLabel(e), this._getAriaLabel(e))\n        }\n        getDispatchParts() {\n            return this._parts.map(e => this._getDispatchPart(e))\n        }\n        getSingleModifierDispatchParts() {\n            return this._parts.map(e => this._getSingleModifierDispatchPart(e))\n        }\n    }\n    class li extends ai {\n        constructor(e, t) {\n            super(t, e.parts)\n        }\n        _keyCodeToUILabel(e) {\n            if (2 === this._os) switch (e) {\n                case 15:\n                    return \"←\";\n                case 16:\n                    return \"↑\";\n                case 17:\n                    return \"→\";\n                case 18:\n                    return \"↓\"\n            }\n            return ii.d.toString(e)\n        }\n        _getLabel(e) {\n            return e.isDuplicateModifierCase() ? \"\" : this._keyCodeToUILabel(e.keyCode)\n        }\n        _getAriaLabel(e) {\n            return e.isDuplicateModifierCase() ? \"\" : ii.d.toString(e.keyCode)\n        }\n        _getElectronAccelerator(e) {\n            return ii.d.toElectronAccelerator(e.keyCode)\n        }\n        _getDispatchPart(e) {\n            return li.getDispatchStr(e)\n        }\n        static getDispatchStr(e) {\n            if (e.isModifierKey()) return null;\n            let t = \"\";\n            return e.ctrlKey && (t += \"ctrl+\"), e.shiftKey && (t += \"shift+\"), e.altKey && (t += \"alt+\"), e.metaKey && (t += \"meta+\"), t += ii.d.toString(e.keyCode), t\n        }\n        _getSingleModifierDispatchPart(e) {\n            return 5 !== e.keyCode || e.shiftKey || e.altKey || e.metaKey ? 4 !== e.keyCode || e.ctrlKey || e.altKey || e.metaKey ? 6 !== e.keyCode || e.ctrlKey || e.shiftKey || e.metaKey ? 57 !== e.keyCode || e.ctrlKey || e.shiftKey || e.altKey ? null : \"meta\" : \"alt\" : \"shift\" : \"ctrl\"\n        }\n        static _scanCodeToKeyCode(e) {\n            var t = ii.b[e];\n            if (-1 !== t) return t;\n            switch (e) {\n                case 10:\n                    return 31;\n                case 11:\n                    return 32;\n                case 12:\n                    return 33;\n                case 13:\n                    return 34;\n                case 14:\n                    return 35;\n                case 15:\n                    return 36;\n                case 16:\n                    return 37;\n                case 17:\n                    return 38;\n                case 18:\n                    return 39;\n                case 19:\n                    return 40;\n                case 20:\n                    return 41;\n                case 21:\n                    return 42;\n                case 22:\n                    return 43;\n                case 23:\n                    return 44;\n                case 24:\n                    return 45;\n                case 25:\n                    return 46;\n                case 26:\n                    return 47;\n                case 27:\n                    return 48;\n                case 28:\n                    return 49;\n                case 29:\n                    return 50;\n                case 30:\n                    return 51;\n                case 31:\n                    return 52;\n                case 32:\n                    return 53;\n                case 33:\n                    return 54;\n                case 34:\n                    return 55;\n                case 35:\n                    return 56;\n                case 36:\n                    return 22;\n                case 37:\n                    return 23;\n                case 38:\n                    return 24;\n                case 39:\n                    return 25;\n                case 40:\n                    return 26;\n                case 41:\n                    return 27;\n                case 42:\n                    return 28;\n                case 43:\n                    return 29;\n                case 44:\n                    return 30;\n                case 45:\n                    return 21;\n                case 51:\n                    return 83;\n                case 52:\n                    return 81;\n                case 53:\n                    return 87;\n                case 54:\n                    return 89;\n                case 55:\n                    return 88;\n                case 56:\n                    return 0;\n                case 57:\n                    return 80;\n                case 58:\n                    return 90;\n                case 59:\n                    return 86;\n                case 60:\n                    return 82;\n                case 61:\n                    return 84;\n                case 62:\n                    return 85;\n                case 106:\n                    return 92\n            }\n            return 0\n        }\n        static _resolveSimpleUserBinding(e) {\n            if (!e) return null;\n            if (e instanceof ft.d) return e;\n            var t = this._scanCodeToKeyCode(e.scanCode);\n            return 0 === t ? null : new ft.d(e.ctrlKey, e.shiftKey, e.altKey, e.metaKey, t)\n        }\n        static resolveUserBinding(e, t) {\n            return 0 < (e = ti(e.map(e => this._resolveSimpleUserBinding(e)))).length ? [new li(new ft.a(e), t)] : []\n        }\n    }\n    var di, ci, hi = i(80);\n    const ui = Object(_.c)(\"contextService\");\n    class pi {\n        constructor(e, t) {\n            this.raw = t, this.uri = e.uri, this.index = e.index, this.name = e.name\n        }\n        toJSON() {\n            return {\n                uri: this.uri,\n                name: this.name,\n                index: this.index\n            }\n        }\n    }(gi = {}).noSelection = yt.a(\"noSelection\", \"No selection\"), gi.singleSelectionRange = yt.a(\"singleSelectionRange\", \"Line {0}, Column {1} ({2} selected)\"), gi.singleSelection = yt.a(\"singleSelection\", \"Line {0}, Column {1}\"), gi.multiSelectionRange = yt.a(\"multiSelectionRange\", \"{0} selections ({1} characters selected)\"), gi.multiSelection = yt.a(\"multiSelection\", \"{0} selections\"), gi.emergencyConfOn = yt.a(\"emergencyConfOn\", \"Now changing the setting `accessibilitySupport` to 'on'.\"), gi.openingDocs = yt.a(\"openingDocs\", \"Now opening the Editor Accessibility documentation page.\"), gi.readonlyDiffEditor = yt.a(\"readonlyDiffEditor\", \" in a read-only pane of a diff editor.\"), gi.editableDiffEditor = yt.a(\"editableDiffEditor\", \" in a pane of a diff editor.\"), gi.readonlyEditor = yt.a(\"readonlyEditor\", \" in a read-only code editor\"), gi.editableEditor = yt.a(\"editableEditor\", \" in a code editor\"), gi.changeConfigToOnMac = yt.a(\"changeConfigToOnMac\", \"To configure the editor to be optimized for usage with a Screen Reader press Command+E now.\"), gi.changeConfigToOnWinLinux = yt.a(\"changeConfigToOnWinLinux\", \"To configure the editor to be optimized for usage with a Screen Reader press Control+E now.\"), gi.auto_on = yt.a(\"auto_on\", \"The editor is configured to be optimized for usage with a Screen Reader.\"), gi.auto_off = yt.a(\"auto_off\", \"The editor is configured to never be optimized for usage with a Screen Reader, which is not the case at this time.\"), gi.tabFocusModeOnMsg = yt.a(\"tabFocusModeOnMsg\", \"Pressing Tab in the current editor will move focus to the next focusable element. Toggle this behavior by pressing {0}.\"), gi.tabFocusModeOnMsgNoKb = yt.a(\"tabFocusModeOnMsgNoKb\", \"Pressing Tab in the current editor will move focus to the next focusable element. The command {0} is currently not triggerable by a keybinding.\"), gi.tabFocusModeOffMsg = yt.a(\"tabFocusModeOffMsg\", \"Pressing Tab in the current editor will insert the tab character. Toggle this behavior by pressing {0}.\"), gi.tabFocusModeOffMsgNoKb = yt.a(\"tabFocusModeOffMsgNoKb\", \"Pressing Tab in the current editor will insert the tab character. The command {0} is currently not triggerable by a keybinding.\"), gi.openDocMac = yt.a(\"openDocMac\", \"Press Command+H now to open a browser window with more information related to editor accessibility.\"), gi.openDocWinLinux = yt.a(\"openDocWinLinux\", \"Press Control+H now to open a browser window with more information related to editor accessibility.\"), gi.outroMsg = yt.a(\"outroMsg\", \"You can dismiss this tooltip and return to the editor by pressing Escape or Shift+Escape.\"), gi.showAccessibilityHelpAction = yt.a(\"showAccessibilityHelpAction\", \"Show Accessibility Help\"), yt.a(\"inspectTokens\", \"Developer: Inspect Tokens\"), yt.a(\"gotoLineActionLabel\", \"Go to Line/Column...\"), yt.a(\"helpQuickAccess\", \"Show all Quick Access Providers\"), (t = {}).quickCommandActionLabel = yt.a(\"quickCommandActionLabel\", \"Command Palette\"), t.quickCommandHelp = yt.a(\"quickCommandActionHelp\", \"Show And Run Commands\"), (ae = {}).quickOutlineActionLabel = yt.a(\"quickOutlineActionLabel\", \"Go to Symbol...\"), ae.quickOutlineByCategoryActionLabel = yt.a(\"quickOutlineByCategoryActionLabel\", \"Go to Symbol by Category...\"), (x = di = di || {}).editorViewAccessibleLabel = yt.a(\"editorViewAccessibleLabel\", \"Editor content\"), x.accessibilityHelpMessage = yt.a(\"accessibilityHelpMessage\", \"Press Alt+F1 for Accessibility Options.\"), yt.a(\"toggleHighContrast\", \"Toggle High Contrast Theme\"), (ci = ci || {}).bulkEditServiceSummary = yt.a(\"bulkEditServiceSummary\", \"Made {0} edits in {1} files\");\n    S = function(e, t, i, n) {\n        var r, o = arguments.length,\n            s = o < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n);\n        else\n            for (var a = e.length - 1; 0 <= a; a--)(r = e[a]) && (s = (o < 3 ? r(s) : 3 < o ? r(t, i, s) : r(t, i)) || s);\n        return 3 < o && s && Object.defineProperty(t, i, s), s\n    };\n    var gi = function(e, t) {\n            return function(i, n) {\n                t(i, n, e)\n            }\n        },\n        fi = function(e, t, i, n) {\n            return new(i = i || Promise)((function(r, o) {\n                function s(e) {\n                    try {\n                        l(n.next(e))\n                    } catch (e) {\n                        o(e)\n                    }\n                }\n\n                function a(e) {\n                    try {\n                        l(n.throw(e))\n                    } catch (e) {\n                        o(e)\n                    }\n                }\n\n                function l(e) {\n                    var t;\n                    e.done ? r(e.value) : ((t = e.value) instanceof i ? t : new i((function(e) {\n                        e(t)\n                    }))).then(s, a)\n                }\n                l((n = n.apply(e, t || [])).next())\n            }))\n        };\n    class mi {\n        constructor(e) {\n            this.disposed = !1, this.model = e, this._onWillDispose = new D.b\n        }\n        get textEditorModel() {\n            \"全局\" == e ? e = \"global\" : \"规则\" == e ? e = \"rule\" : \"直连\" == e ? e = \"direct\" : \"脚本\" == e && (e = \"script\");\n            return this.model\n        }\n        dispose() {\n            this.disposed = !0, this._onWillDispose.fire()\n        }\n    }\n    let vi = class {\n        constructor(e) {\n            this.modelService = e\n        }\n        setEditor(e) {\n            this.editor = e\n        }\n        createModelReference(e) {\n            let t = null;\n            var i, n, r;\n            return this.editor && (n = t => this.findModel(t, e), r = t => this.findModel(t.getOriginalEditor(), e) || this.findModel(t.getModifiedEditor(), e), t = (function(e) {\n                return e && \"function\" == typeof e.getEditorType && e.getEditorType() === V.ICodeEditor\n            }(i = this.editor) ? n : r)(i)), t ? Promise.resolve(new v.c(new mi(t))) : Promise.reject(new Error(\"Model not found\"))\n        }\n        findModel(e, t) {\n            let i = this.modelService.getModel(t);\n            return i && i.uri.toString() !== t.toString() ? null : i\n        }\n    };\n    vi = S([gi(0, ee.a)], vi);\n    class bi {\n        show() {\n            return bi.NULL_PROGRESS_RUNNER\n        }\n        showWhile(e, t) {\n            return fi(this, void 0, void 0, (function*() {\n                yield e\n            }))\n        }\n    }\n    bi.NULL_PROGRESS_RUNNER = {\n        done: () => {},\n        total: () => {},\n        worked: () => {}\n    };\n    class _i {\n        confirm(e) {\n            return this.doConfirm(e).then(e => ({\n                confirmed: e,\n                checkboxChecked: !1\n            }))\n        }\n        doConfirm(e) {\n            let t = e.message;\n            return e.detail && (t = t + \"\\n\\n\" + e.detail), Promise.resolve(window.confirm(t))\n        }\n        show(e, t, i, n) {\n            return Promise.resolve({\n                choice: 0\n            })\n        }\n    }\n    class wi {\n        info(e) {\n            return this.notify({\n                severity: mt.a.Info,\n                message: e\n            })\n        }\n        warn(e) {\n            return this.notify({\n                severity: mt.a.Warning,\n                message: e\n            })\n        }\n        error(e) {\n            return this.notify({\n                severity: mt.a.Error,\n                message: e\n            })\n        }\n        notify(e) {\n            switch (e.severity) {\n                case mt.a.Error:\n                    console.error(e.message);\n                    break;\n                case mt.a.Warning:\n                    console.warn(e.message);\n                    break;\n                default:\n                    console.log(e.message)\n            }\n            return wi.NO_OP\n        }\n        status(e, t) {\n            return v.a.None\n        }\n    }\n    wi.NO_OP = new hi.b;\n    class yi {\n        constructor(e) {\n            this._onWillExecuteCommand = new D.b, this._onDidExecuteCommand = new D.b, this.onDidExecuteCommand = this._onDidExecuteCommand.event, this._instantiationService = e\n        }\n        executeCommand(e, ...t) {\n            var i = m.a.getCommand(e);\n            if (!i) return Promise.reject(new Error(`command '${e}' not found`));\n            try {\n                this._onWillExecuteCommand.fire({\n                    commandId: e,\n                    args: t\n                });\n                var n = this._instantiationService.invokeFunction.apply(this._instantiationService, [i.handler, ...t]);\n                return this._onDidExecuteCommand.fire({\n                    commandId: e,\n                    args: t\n                }), Promise.resolve(n)\n            } catch (e) {\n                return Promise.reject(e)\n            }\n        }\n    }\n    class Ci extends qt {\n        constructor(e, t, i, n, r, o) {\n            super(e, t, i, n, r), this._cachedResolver = null, this._dynamicKeybindings = [], this._register(s.g(o, s.d.KEY_DOWN, e => {\n                const t = new gt.a(e);\n                this._dispatch(t, t.target) && (t.preventDefault(), t.stopPropagation())\n            })), this._register(s.g(window, s.d.KEY_UP, e => {\n                const t = new gt.a(e);\n                this._singleModifierDispatch(t, t.target) && t.preventDefault()\n            }))\n        }\n        addDynamicKeybinding(e, t, i, n) {\n            t = Object(ft.e)(t, A.a);\n            const r = new v.b;\n            return t && (this._dynamicKeybindings.push({\n                keybinding: t.parts,\n                command: e,\n                when: n,\n                weight1: 1e3,\n                weight2: 0,\n                extensionId: null,\n                isBuiltinExtension: !1\n            }), r.add(Object(v.i)(() => {\n                for (let t = 0; t < this._dynamicKeybindings.length; t++)\n                    if (this._dynamicKeybindings[t].command === e) return this._dynamicKeybindings.splice(t, 1), void this.updateResolver({\n                        source: 1\n                    })\n            }))), r.add(m.a.registerCommand(e, i)), this.updateResolver({\n                source: 1\n            }), r\n        }\n        updateResolver(e) {\n            this._cachedResolver = null, this._onDidUpdateKeybindings.fire(e)\n        }\n        _getResolver() {\n            var e, t;\n            return this._cachedResolver || (e = this._toNormalizedKeybindingItems(Jt.a.getDefaultKeybindings(), !0), t = this._toNormalizedKeybindingItems(this._dynamicKeybindings, !1), this._cachedResolver = new Zt(e, t, e => this._log(e))), this._cachedResolver\n        }\n        _documentHasFocus() {\n            return document.hasFocus()\n        }\n        _toNormalizedKeybindingItems(e, t) {\n            let i = [],\n                n = 0;\n            for (const s of e) {\n                var r = s.when || void 0,\n                    o = s.keybinding;\n                if (o)\n                    for (const e of li.resolveUserBinding(o, A.a)) i[n++] = new ei(e, s.command, s.commandArgs, r, t, null, !1);\n                else i[n++] = new ei(void 0, s.command, s.commandArgs, r, t, null, !1)\n            }\n            return i\n        }\n        resolveKeyboardEvent(e) {\n            return e = new ft.d(e.ctrlKey, e.shiftKey, e.altKey, e.metaKey, e.keyCode).toChord(), new li(e, A.a)\n        }\n    }\n\n    function xi(e) {\n        return e && \"object\" == typeof e && (!e.overrideIdentifier || \"string\" == typeof e.overrideIdentifier) && (!e.resource || e.resource instanceof h.a)\n    }\n    class Si {\n        constructor() {\n            this._onDidChange配置 = new D.b, this.onDidChange配置 = this._onDidChange配置.event, this._configuration = new Ut(new Ht, new zt)\n        }\n        getValue(e, t) {\n            return t = xi(e) ? e : xi(t) ? t : {}, this._configuration.getValue(\"string\" == typeof e ? e : void 0, t, void 0)\n        }\n        updateValues(e) {\n            var t = {\n                data: this._configuration.toData()\n            };\n            let i = [];\n            for (const t of e) {\n                var [n, r] = t;\n                this.getValue(n) !== r && (this._configuration.updateValue(n, r), i.push(n))\n            }\n            if (0 < i.length) {\n                const e = new Kt({\n                    keys: i,\n                    overrides: []\n                }, t, this._configuration);\n                e.source = 7, e.sourceConfig = null, this._onDidChange配置.fire(e)\n            }\n            return Promise.resolve()\n        }\n    }\n    class ki {\n        constructor(e) {\n            this.configurationService = e, this._onDidChange配置 = new D.b, this.configurationService.onDidChange配置(e => {\n                this._onDidChange配置.fire({\n                    affectedKeys: e.affectedKeys,\n                    affects配置: (t, i) => e.affects配置(i)\n                })\n            })\n        }\n        getValue(e, t, i) {\n            return void 0 === (t = Re.a.isIPosition(t) && t ? \"string\" == typeof i ? i : void 0 : \"string\" == typeof t ? t : void 0) ? this.configurationService.getValue() : this.configurationService.getValue(t)\n        }\n    }\n    let Li = class {\n        constructor(e) {\n            this.configurationService = e\n        }\n        getEOL(e, t) {\n            return (e = this.configurationService.getValue(\"files.eol\", {\n                overrideIdentifier: t,\n                resource: e\n            })) && \"string\" == typeof e && \"auto\" !== e ? e : A.d || A.f ? \"\\n\" : \"\\r\\n\"\n        }\n    };\n    Li = S([gi(0, Wt.a)], Li);\n    class Oi {\n        publicLog(e, t) {\n            return Promise.resolve(void 0)\n        }\n        publicLog2(e, t) {\n            return this.publicLog(e, t)\n        }\n    }\n    class Ei {\n        constructor() {\n            var e = h.a.from({\n                scheme: Ei.SCHEME,\n                authority: \"model\",\n                path: \"/\"\n            });\n            this.workspace = {\n                id: \"4064f6ec-cb38-4ad0-af64-ee6467e63c82\",\n                folders: [new pi({\n                    uri: e,\n                    name: \"\",\n                    index: 0\n                })]\n            }\n        }\n        getWorkspace() {\n            return this.workspace\n        }\n    }\n\n    function Ni(e, t, i) {\n        if (t && e instanceof Si) {\n            let n = [];\n            Object.keys(t).forEach(e => {\n                var r;\n                r = e, Bt()[\"editor.\" + r] && n.push([\"editor.\" + e, t[e]]), i && (r = e, Bt()[\"diffEditor.\" + r]) && n.push([\"diffEditor.\" + e, t[e]])\n            }), 0 < n.length && e.updateValues(n)\n        }\n    }\n    Ei.SCHEME = \"inmemory\";\n    class Di {\n        constructor(e) {\n            this._modelService = e\n        }\n        hasPreviewHandler() {\n            return !1\n        }\n        apply(e, t) {\n            return fi(this, void 0, void 0, (function*() {\n                const t = new Map;\n                for (var i of e) {\n                    if (!(i instanceof _t)) throw new Error(\"bad edit - only text edits are supported\");\n                    const e = this._modelService.getModel(i.resource);\n                    if (!e) throw new Error(\"bad edit - model not found\");\n                    if (\"number\" == typeof i.versionId && e.getVersionId() !== i.versionId) throw new Error(\"bad state - model changed in the meantime\");\n                    let n = t.get(e);\n                    n || (n = [], t.set(e, n)), n.push(Vt.a.replaceMove(T.a.lift(i.textEdit.range), i.textEdit.text))\n                }\n                let n = 0,\n                    r = 0;\n                for (const [e, i] of t) e.pushStackElement(), e.pushEditOperations([], i, () => []), e.pushStackElement(), r += 1, n += i.length;\n                return {\n                    ariaSummary: b.v(ci.bulkEditServiceSummary, n, r)\n                }\n            }))\n        }\n    }\n    class Ii {\n        getUriLabel(e, t) {\n            return \"file\" === e.scheme ? e.fsPath : e.path\n        }\n    }\n    class Ti {\n        constructor(e, t) {\n            this._codeEditorService = e, this._container = t, this.onDidLayout = D.c.None\n        }\n        get dimension() {\n            return this._dimension || (this._dimension = s.w(window.document.body)), this._dimension\n        }\n        get container() {\n            return this._container\n        }\n        focus() {\n            var e;\n            null !== (e = this._codeEditorService.getFocusedCodeEditor()) && void 0 !== e && e.focus()\n        }\n    }\n    var Mi = i(91);\n    const Pi = Object(_.c)(\"markerDecorationsService\");\n    var Ai = i(20);\n    t = function(e, t, i, n) {\n        var r, o = arguments.length,\n            s = o < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n);\n        else\n            for (var a = e.length - 1; 0 <= a; a--)(r = e[a]) && (s = (o < 3 ? r(s) : 3 < o ? r(t, i, s) : r(t, i)) || s);\n        return 3 < o && s && Object.defineProperty(t, i, s), s\n    }, ae = function(e, t) {\n        return function(i, n) {\n            t(i, n, e)\n        }\n    };\n    (x = class {\n        constructor(e, t) {}\n        dispose() {}\n    }).ID = \"editor.contrib.markerDecorations\", x = t([ae(1, Pi)], x), Object(Ai.k)(x.ID, x), i(388);\n    var Ri = i(37);\n    class Fi {\n        constructor(e, t) {\n            this.chr = e, this.type = t, this.width = 0\n        }\n        fulfill(e) {\n            this.width = e\n        }\n    }\n    class ji {\n        constructor(e, t) {\n            this._bareFontInfo = e, this._requests = t, this._container = null, this._testElements = null\n        }\n        read() {\n            this._createDomElements(), document.body.appendChild(this._container), this._readFromDomElements(), document.body.removeChild(this._container), this._container = null, this._testElements = null\n        }\n        _createDomElements() {\n            var e = this._bareFontInfo.getMassagedFontFamily(Ri.h ? n.c.fontFamily : null);\n            const t = document.createElement(\"div\");\n            t.style.position = \"absolute\", t.style.top = \"-50000px\", t.style.width = \"50000px\";\n            const i = document.createElement(\"div\");\n            i.style.fontFamily = e, i.style.fontWeight = this._bareFontInfo.fontWeight, i.style.fontSize = this._bareFontInfo.fontSize + \"px\", i.style.fontFeatureSettings = this._bareFontInfo.fontFeatureSettings, i.style.lineHeight = this._bareFontInfo.lineHeight + \"px\", i.style.letterSpacing = this._bareFontInfo.letterSpacing + \"px\", t.appendChild(i);\n            const r = document.createElement(\"div\");\n            r.style.fontFamily = e, r.style.fontWeight = \"bold\", r.style.fontSize = this._bareFontInfo.fontSize + \"px\", r.style.fontFeatureSettings = this._bareFontInfo.fontFeatureSettings, r.style.lineHeight = this._bareFontInfo.lineHeight + \"px\", r.style.letterSpacing = this._bareFontInfo.letterSpacing + \"px\", t.appendChild(r);\n            const o = document.createElement(\"div\");\n            o.style.fontFamily = e, o.style.fontWeight = this._bareFontInfo.fontWeight, o.style.fontSize = this._bareFontInfo.fontSize + \"px\", o.style.fontFeatureSettings = this._bareFontInfo.fontFeatureSettings, o.style.lineHeight = this._bareFontInfo.lineHeight + \"px\", o.style.letterSpacing = this._bareFontInfo.letterSpacing + \"px\", o.style.fontStyle = \"italic\", t.appendChild(o);\n            const s = [];\n            for (const e of this._requests) {\n                let t;\n                0 === e.type && (t = i), 2 === e.type && (t = r), 1 === e.type && (t = o), t.appendChild(document.createElement(\"br\"));\n                var a = document.createElement(\"span\");\n                ji._render(a, e), t.appendChild(a), s.push(a)\n            }\n            this._container = t, this._testElements = s\n        }\n        static _render(e, t) {\n            if (\" \" === t.chr) {\n                let t = \" \";\n                for (let e = 0; e < 8; e++) t += t;\n                e.innerText = t\n            } else {\n                let i = t.chr;\n                for (let e = 0; e < 8; e++) i += i;\n                e.textContent = i\n            }\n        }\n        _readFromDomElements() {\n            for (let t = 0, i = this._requests.length; t < i; t++) {\n                const i = this._requests[t];\n                var e = this._testElements[t];\n                i.fulfill(e.offsetWidth / 256)\n            }\n        }\n    }\n    class Bi extends v.a {\n        constructor(e, t, i) {\n            super(), this.referenceDomElement = e, this.changeCallback = i, this.width = -1, this.height = -1, this.resizeObserver = null, this.measureReferenceDomElementToken = -1, this.measureReferenceDomElement(!1, t)\n        }\n        dispose() {\n            this.stopObserving(), super.dispose()\n        }\n        getWidth() {\n            return this.width\n        }\n        getHeight() {\n            return this.height\n        }\n        startObserving() {\n            \"undefined\" != typeof ResizeObserver ? !this.resizeObserver && this.referenceDomElement && (this.resizeObserver = new ResizeObserver(e => {\n                e && e[0] && e[0].contentRect ? this.observe({\n                    width: e[0].contentRect.width,\n                    height: e[0].contentRect.height\n                }) : this.observe()\n            }), this.resizeObserver.observe(this.referenceDomElement)) : -1 === this.measureReferenceDomElementToken && (this.measureReferenceDomElementToken = setInterval(() => this.observe(), 100))\n        }\n        stopObserving() {\n            this.resizeObserver && (this.resizeObserver.disconnect(), this.resizeObserver = null), -1 !== this.measureReferenceDomElementToken && (clearInterval(this.measureReferenceDomElementToken), this.measureReferenceDomElementToken = -1)\n        }\n        observe(e) {\n            this.measureReferenceDomElement(!0, e)\n        }\n        measureReferenceDomElement(e, t) {\n            let i = 0,\n                n = 0;\n            t ? (i = t.width, n = t.height) : this.referenceDomElement && (i = this.referenceDomElement.clientWidth, n = this.referenceDomElement.clientHeight), i = Math.max(5, i), n = Math.max(5, n), this.width === i && this.height === n || (this.width = i, this.height = n, e && this.changeCallback())\n        }\n    }\n    class Vi {\n        constructor() {\n            this._keys = Object.create(null), this._values = Object.create(null)\n        }\n        has(e) {\n            return e = e.getId(), !!this._values[e]\n        }\n        get(e) {\n            return e = e.getId(), this._values[e]\n        }\n        put(e, t) {\n            var i = e.getId();\n            this._keys[i] = e, this._values[i] = t\n        }\n        remove(e) {\n            e = e.getId(), delete this._keys[e], delete this._values[e]\n        }\n        getValues() {\n            return Object.keys(this._keys).map(e => this._values[e])\n        }\n    }\n    class Wi extends v.a {\n        constructor() {\n            super(), this._onDidChange = this._register(new D.b), this.onDidChange = this._onDidChange.event, this._cache = new Vi, this._evictUntrustedReadingsTimeout = -1\n        }\n        dispose() {\n            -1 !== this._evictUntrustedReadingsTimeout && (clearTimeout(this._evictUntrustedReadingsTimeout), this._evictUntrustedReadingsTimeout = -1), super.dispose()\n        }\n        clearCache() {\n            this._cache = new Vi, this._onDidChange.fire()\n        }\n        _writeToCache(e, t) {\n            this._cache.put(e, t), t.isTrusted || -1 !== this._evictUntrustedReadingsTimeout || (this._evictUntrustedReadingsTimeout = setTimeout(() => {\n                this._evictUntrustedReadingsTimeout = -1, this._evictUntrustedReadings()\n            }, 5e3))\n        }\n        _evictUntrustedReadings() {\n            let e = !1;\n            for (const t of this._cache.getValues()) t.isTrusted || (e = !0, this._cache.remove(t));\n            e && this._onDidChange.fire()\n        }\n        read配置(e) {\n            if (!this._cache.has(e)) {\n                let t = Wi._actualRead配置(e);\n                (t.typicalHalfwidthCharacterWidth <= 2 || t.typicalFullwidthCharacterWidth <= 2 || t.spaceWidth <= 2 || t.maxDigitWidth <= 2) && (t = new B({\n                    zoomLevel: Ri.d(),\n                    pixelRatio: Ri.a(),\n                    fontFamily: t.fontFamily,\n                    fontWeight: t.fontWeight,\n                    fontSize: t.fontSize,\n                    fontFeatureSettings: t.fontFeatureSettings,\n                    lineHeight: t.lineHeight,\n                    letterSpacing: t.letterSpacing,\n                    isMonospace: t.isMonospace,\n                    typicalHalfwidthCharacterWidth: Math.max(t.typicalHalfwidthCharacterWidth, 5),\n                    typicalFullwidthCharacterWidth: Math.max(t.typicalFullwidthCharacterWidth, 5),\n                    canUseHalfwidthRightwardsArrow: t.canUseHalfwidthRightwardsArrow,\n                    spaceWidth: Math.max(t.spaceWidth, 5),\n                    middotWidth: Math.max(t.middotWidth, 5),\n                    wsmiddotWidth: Math.max(t.wsmiddotWidth, 5),\n                    maxDigitWidth: Math.max(t.maxDigitWidth, 5)\n                }, !1)), this._writeToCache(e, t)\n            }\n            return this._cache.get(e)\n        }\n        static createRequest(e, t, i, n) {\n            return t = new Fi(e, t), i.push(t), n && n.push(t), t\n        }\n        static _actualRead配置(e) {\n            var t = [],\n                i = [],\n                r = this.createRequest(\"n\", 0, t, i),\n                o = this.createRequest(\"ｍ\", 0, t, null),\n                s = this.createRequest(\" \", 0, t, i),\n                a = this.createRequest(\"0\", 0, t, i),\n                l = this.createRequest(\"1\", 0, t, i),\n                d = this.createRequest(\"2\", 0, t, i),\n                c = this.createRequest(\"3\", 0, t, i),\n                h = this.createRequest(\"4\", 0, t, i),\n                u = this.createRequest(\"5\", 0, t, i),\n                p = this.createRequest(\"6\", 0, t, i),\n                g = this.createRequest(\"7\", 0, t, i),\n                f = this.createRequest(\"8\", 0, t, i),\n                m = this.createRequest(\"9\", 0, t, i),\n                v = this.createRequest(\"→\", 0, t, i),\n                b = this.createRequest(\"￫\", 0, t, null),\n                _ = this.createRequest(\"·\", 0, t, i),\n                w = this.createRequest(String.fromCharCode(11825), 0, t, null),\n                y = \"|/-_ilm%\";\n            for (let e = 0, n = y.length; e < n; e++) this.createRequest(y.charAt(e), 0, t, i), this.createRequest(y.charAt(e), 1, t, i), this.createRequest(y.charAt(e), 2, t, i);\n            ! function(e, t) {\n                new ji(e, t).read()\n            }(e, t), m = Math.max(a.width, l.width, d.width, c.width, h.width, u.width, p.width, g.width, f.width, m.width);\n            let C = e.fontFeatureSettings === n.e.OFF;\n            var x = i[0].width;\n            for (let e = 1, t = i.length; C && e < t; e++) {\n                var S = x - i[e].width;\n                if (S < -.001 || .001 < S) {\n                    C = !1;\n                    break\n                }\n            }\n            let k = !0;\n            return C && b.width !== x && (k = !1), b.width > v.width && (k = !1), v = 2e3 < Ri.b(), new B({\n                zoomLevel: Ri.d(),\n                pixelRatio: Ri.a(),\n                fontFamily: e.fontFamily,\n                fontWeight: e.fontWeight,\n                fontSize: e.fontSize,\n                fontFeatureSettings: e.fontFeatureSettings,\n                lineHeight: e.lineHeight,\n                letterSpacing: e.letterSpacing,\n                isMonospace: C,\n                typicalHalfwidthCharacterWidth: r.width,\n                typicalFullwidthCharacterWidth: o.width,\n                canUseHalfwidthRightwardsArrow: k,\n                spaceWidth: s.width,\n                middotWidth: _.width,\n                wsmiddotWidth: w.width,\n                maxDigitWidth: m\n            }, v)\n        }\n    }\n    Wi.INSTANCE = new Wi;\n    class zi extends Tt {\n        constructor(e, t, i = null, n) {\n            super(e, t), this.accessibilityService = n, this._elementSizeObserver = this._register(new Bi(i, t.dimension, () => this._recomputeOptions())), this._register(Wi.INSTANCE.onDidChange(() => this._recomputeOptions())), this._validatedOptions.get(10) && this._elementSizeObserver.startObserving(), this._register(Ri.l(e => this._recomputeOptions())), this._register(this.accessibilityService.onDidChangeScreenReaderOptimized(() => this._recomputeOptions())), this._recomputeOptions()\n        }\n        static applyFontInfoSlow(e, t) {\n            e.style.fontFamily = t.getMassagedFontFamily(Ri.h ? n.c.fontFamily : null), e.style.fontWeight = t.fontWeight, e.style.fontSize = t.fontSize + \"px\", e.style.fontFeatureSettings = t.fontFeatureSettings, e.style.lineHeight = t.lineHeight + \"px\", e.style.letterSpacing = t.letterSpacing + \"px\"\n        }\n        static applyFontInfo(e, t) {\n            e.setFontFamily(t.getMassagedFontFamily(Ri.h ? n.c.fontFamily : null)), e.setFontWeight(t.fontWeight), e.setFontSize(t.fontSize), e.setFontFeatureSettings(t.fontFeatureSettings), e.setLineHeight(t.lineHeight), e.setLetterSpacing(t.letterSpacing)\n        }\n        observeReferenceElement(e) {\n            this._elementSizeObserver.observe(e)\n        }\n        updatePixelRatio() {\n            this._recomputeOptions()\n        }\n        static _getExtraEditorClassName() {\n            let e = \"\";\n            return Ri.h || Ri.k || (e += \"no-user-select \"), Ri.h && (e += \"no-minimap-shadow \"), A.f && (e += \"mac \"), e\n        }\n        _getEnv配置() {\n            return {\n                extraEditorClassName: zi._getExtraEditorClassName(),\n                outerWidth: this._elementSizeObserver.getWidth(),\n                outerHeight: this._elementSizeObserver.getHeight(),\n                emptySelectionClipboard: Ri.j || Ri.g,\n                pixelRatio: Ri.a(),\n                zoomLevel: Ri.d(),\n                accessibilitySupport: this.accessibilityService.isScreenReaderOptimized() ? 2 : this.accessibilityService.getAccessibilitySupport()\n            }\n        }\n        read配置(e) {\n            return Wi.INSTANCE.read配置(e)\n        }\n    }\n    var Hi = i(36),\n        Ui = i(34),\n        Ki = i(50),\n        $i = i(66),\n        qi = i(118);\n    class Gi {\n        constructor(e, t) {\n            this.x = e, this.y = t, this._pageCoordinatesBrand = void 0\n        }\n        toClientCoordinates() {\n            return new Yi(this.x - s.f.scrollX, this.y - s.f.scrollY)\n        }\n    }\n    class Yi {\n        constructor(e, t) {\n            this.clientX = e, this.clientY = t, this._clientCoordinatesBrand = void 0\n        }\n        toPageCoordinates() {\n            return new Gi(this.clientX + s.f.scrollX, this.clientY + s.f.scrollY)\n        }\n    }\n    class Zi {\n        constructor(e, t, i, n) {\n            this.x = e, this.y = t, this.width = i, this.height = n, this._editorPagePositionBrand = void 0\n        }\n    }\n\n    function Xi(e) {\n        return e = s.A(e), new Zi(e.left, e.top, e.width, e.height)\n    }\n    class Qi extends $i.a {\n        constructor(e, t) {\n            super(e), this._editorMouseEventBrand = void 0, this.pos = new Gi(this.posx, this.posy), this.editorPos = Xi(t)\n        }\n    }\n    class Ji {\n        constructor(e) {\n            this._editorViewDomNode = e\n        }\n        _create(e) {\n            return new Qi(e, this._editorViewDomNode)\n        }\n        onContextMenu(e, t) {\n            return s.g(e, \"contextmenu\", e => {\n                t(this._create(e))\n            })\n        }\n        onMouseUp(e, t) {\n            return s.g(e, \"mouseup\", e => {\n                t(this._create(e))\n            })\n        }\n        onMouseDown(e, t) {\n            return s.g(e, \"mousedown\", e => {\n                t(this._create(e))\n            })\n        }\n        onMouseLeave(e, t) {\n            return s.h(e, e => {\n                t(this._create(e))\n            })\n        }\n        onMouseMoveThrottled(e, t, i, n) {\n            return s.j(e, \"mousemove\", t, (e, t) => i(e, this._create(t)), n)\n        }\n    }\n    class en {\n        constructor(e) {\n            this._editorViewDomNode = e\n        }\n        _create(e) {\n            return new Qi(e, this._editorViewDomNode)\n        }\n        onPointerUp(e, t) {\n            return s.g(e, \"pointerup\", e => {\n                t(this._create(e))\n            })\n        }\n        onPointerDown(e, t) {\n            return s.g(e, \"pointerdown\", e => {\n                t(this._create(e))\n            })\n        }\n        onPointerLeave(e, t) {\n            return s.i(e, e => {\n                t(this._create(e))\n            })\n        }\n        onPointerMoveThrottled(e, t, i, n) {\n            return s.j(e, \"pointermove\", t, (e, t) => i(e, this._create(t)), n)\n        }\n    }\n    class tn extends v.a {\n        constructor(e) {\n            super(), this._editorViewDomNode = e, this._globalMouseMoveMonitor = this._register(new qi.a), this._keydownListener = null\n        }\n        startMonitoring(e, t, i, n, r) {\n            this._keydownListener = s.l(document, \"keydown\", e => {\n                e.toKeybinding().isModifierKey() || this._globalMouseMoveMonitor.stopMonitoring(!0, e.browserEvent)\n            }, !0), this._globalMouseMoveMonitor.startMonitoring(e, t, (e, t) => i(e, new Qi(t, this._editorViewDomNode)), n, e => {\n                this._keydownListener.dispose(), r(e)\n            })\n        }\n        stopMonitoring() {\n            this._globalMouseMoveMonitor.stopMonitoring(!0)\n        }\n    }\n    class nn extends v.a {\n        constructor() {\n            super(), this._shouldRender = !0\n        }\n        shouldRender() {\n            return this._shouldRender\n        }\n        forceShouldRender() {\n            this._shouldRender = !0\n        }\n        setShouldRender() {\n            this._shouldRender = !0\n        }\n        onDidRender() {\n            this._shouldRender = !1\n        }\n        onCompositionStart(e) {\n            return !1\n        }\n        onCompositionEnd(e) {\n            return !1\n        }\n        on配置Changed(e) {\n            return !1\n        }\n        onCursorStateChanged(e) {\n            return !1\n        }\n        onDecorationsChanged(e) {\n            return !1\n        }\n        onFlushed(e) {\n            return !1\n        }\n        onFocusChanged(e) {\n            return !1\n        }\n        onLanguage配置Changed(e) {\n            return !1\n        }\n        onLineMappingChanged(e) {\n            return !1\n        }\n        onLinesChanged(e) {\n            return !1\n        }\n        onLinesDeleted(e) {\n            return !1\n        }\n        onLinesInserted(e) {\n            return !1\n        }\n        onRevealRangeRequest(e) {\n            return !1\n        }\n        onScrollChanged(e) {\n            return !1\n        }\n        onThemeChanged(e) {\n            return !1\n        }\n        onTokensChanged(e) {\n            return !1\n        }\n        onTokensColorsChanged(e) {\n            return !1\n        }\n        onZonesChanged(e) {\n            return !1\n        }\n        handleEvents(e) {\n            let t = !1;\n            for (let n = 0, r = e.length; n < r; n++) {\n                var i = e[n];\n                switch (i.type) {\n                    case 0:\n                        this.onCompositionStart(i) && (t = !0);\n                        break;\n                    case 1:\n                        this.onCompositionEnd(i) && (t = !0);\n                        break;\n                    case 2:\n                        this.on配置Changed(i) && (t = !0);\n                        break;\n                    case 3:\n                        this.onCursorStateChanged(i) && (t = !0);\n                        break;\n                    case 4:\n                        this.onDecorationsChanged(i) && (t = !0);\n                        break;\n                    case 5:\n                        this.onFlushed(i) && (t = !0);\n                        break;\n                    case 6:\n                        this.onFocusChanged(i) && (t = !0);\n                        break;\n                    case 7:\n                        this.onLanguage配置Changed(i) && (t = !0);\n                        break;\n                    case 8:\n                        this.onLineMappingChanged(i) && (t = !0);\n                        break;\n                    case 9:\n                        this.onLinesChanged(i) && (t = !0);\n                        break;\n                    case 10:\n                        this.onLinesDeleted(i) && (t = !0);\n                        break;\n                    case 11:\n                        this.onLinesInserted(i) && (t = !0);\n                        break;\n                    case 12:\n                        this.onRevealRangeRequest(i) && (t = !0);\n                        break;\n                    case 13:\n                        this.onScrollChanged(i) && (t = !0);\n                        break;\n                    case 15:\n                        this.onTokensChanged(i) && (t = !0);\n                        break;\n                    case 14:\n                        this.onThemeChanged(i) && (t = !0);\n                        break;\n                    case 16:\n                        this.onTokensColorsChanged(i) && (t = !0);\n                        break;\n                    case 17:\n                        this.onZonesChanged(i) && (t = !0);\n                        break;\n                    default:\n                        console.info(\"View received unknown event: \"), console.info(i)\n                }\n            }\n            t && (this._shouldRender = !0)\n        }\n    }\n    class rn extends nn {\n        constructor(e) {\n            super(), this._context = e, this._context.addEventHandler(this)\n        }\n        dispose() {\n            this._context.removeEventHandler(this), super.dispose()\n        }\n    }\n    class on {\n        static write(e, t) {\n            Ui.a, e.setAttribute(\"data-mprt\", String(t))\n        }\n        static read(e) {\n            return null === (e = e.getAttribute(\"data-mprt\")) ? 0 : parseInt(e, 10)\n        }\n        static collect(e, t) {\n            let i = [],\n                n = 0;\n            for (; e && e !== document.body && e !== t;) e.nodeType === e.ELEMENT_NODE && (i[n++] = this.read(e)), e = e.parentElement;\n            const r = new Uint8Array(n);\n            for (let e = 0; e < n; e++) r[e] = i[n - e - 1];\n            return r\n        }\n    }\n    class sn extends class {\n        constructor(e, t) {\n            this._restrictedRenderingContextBrand = void 0, this._viewLayout = e, this.viewportData = t, this.scrollWidth = this._viewLayout.getScrollWidth(), this.scrollHeight = this._viewLayout.getScrollHeight(), this.visibleRange = this.viewportData.visibleRange, this.bigNumbersDelta = this.viewportData.bigNumbersDelta, t = this._viewLayout.getCurrentViewport(), this.scrollTop = t.top, this.scrollLeft = t.left, this.viewportWidth = t.width, this.viewportHeight = t.height\n        }\n        getScrolledTopFromAbsoluteTop(e) {\n            return e - this.scrollTop\n        }\n        getVerticalOffsetForLineNumber(e) {\n            return this._viewLayout.getVerticalOffsetForLineNumber(e)\n        }\n        getDecorationsInViewport() {\n            return this.viewportData.getDecorationsInViewport()\n        }\n    } {\n        constructor(e, t, i) {\n            super(e, t), this._renderingContextBrand = void 0, this._viewLines = i\n        }\n        linesVisibleRangesForRange(e, t) {\n            return this._viewLines.linesVisibleRangesForRange(e, t)\n        }\n        visibleRangeForPosition(e) {\n            return this._viewLines.visibleRangeForPosition(e)\n        }\n    }\n    class an {\n        constructor(e, t, i) {\n            this.outsideRenderedLine = e, this.lineNumber = t, this.ranges = i\n        }\n    }\n    class ln {\n        constructor(e, t) {\n            this._horizontalRangeBrand = void 0, this.left = Math.round(e), this.width = Math.round(t)\n        }\n        static from(e) {\n            const t = new Array(e.length);\n            for (let n = 0, r = e.length; n < r; n++) {\n                var i = e[n];\n                t[n] = new ln(i.left, i.width)\n            }\n            return t\n        }\n        toString() {\n            return `[${this.left},${this.width}]`\n        }\n    }\n    class dn {\n        constructor(e, t) {\n            this._floatHorizontalRangeBrand = void 0, this.left = e, this.width = t\n        }\n        toString() {\n            return `[${this.left},${this.width}]`\n        }\n        static compare(e, t) {\n            return e.left - t.left\n        }\n    }\n    class cn {\n        constructor(e, t) {\n            this.outsideRenderedLine = e, this.originalLeft = t, this.left = Math.round(this.originalLeft)\n        }\n    }\n    class hn {\n        constructor(e, t) {\n            this.outsideRenderedLine = e, this.ranges = t\n        }\n    }\n    class un {\n        static _createRange() {\n            return this._handyReadyRange || (this._handyReadyRange = document.createRange()), this._handyReadyRange\n        }\n        static _detachRange(e, t) {\n            e.selectNodeContents(t)\n        }\n        static _readClientRects(e, t, i, n, r) {\n            const o = this._createRange();\n            try {\n                return o.setStart(e, t), o.setEnd(i, n), o.getClientRects()\n            } catch (e) {\n                return null\n            } finally {\n                this._detachRange(o, r)\n            }\n        }\n        static _mergeAdjacentRanges(e) {\n            if (1 === e.length) return e;\n            e.sort(dn.compare);\n            let t = [],\n                i = 0,\n                n = e[0];\n            for (let o = 1, s = e.length; o < s; o++) {\n                var r = e[o];\n                n.left + n.width + .9 >= r.left ? n.width = Math.max(n.width, r.left + r.width - n.left) : (t[i++] = n, n = r)\n            }\n            return t[i++] = n, t\n        }\n        static _createHorizontalRangesFromClientRects(e, t) {\n            if (!e || 0 === e.length) return null;\n            const i = [];\n            for (let r = 0, o = e.length; r < o; r++) {\n                var n = e[r];\n                i[r] = new dn(Math.max(0, n.left - t), n.width)\n            }\n            return this._mergeAdjacentRanges(i)\n        }\n        static readHorizontalRanges(e, t, i, n, r, o, s) {\n            var a = e.children.length - 1;\n            if (a < 0) return null;\n            if ((t = Math.min(a, Math.max(0, t))) === (n = Math.min(a, Math.max(0, n))) && i === r && 0 === i && !e.children[t].firstChild) {\n                const i = e.children[t].getClientRects();\n                return this._createHorizontalRangesFromClientRects(i, o)\n            }\n            t !== n && 0 < n && 0 === r && (n--, r = 1073741824);\n            let l = e.children[t].firstChild,\n                d = e.children[n].firstChild;\n            if (l && d || (!l && 0 === i && 0 < t && (l = e.children[t - 1].firstChild, i = 1073741824), !d && 0 === r && 0 < n && (d = e.children[n - 1].firstChild, r = 1073741824)), !l || !d) return null;\n            i = Math.min(l.textContent.length, Math.max(0, i)), r = Math.min(d.textContent.length, Math.max(0, r));\n            const c = this._readClientRects(l, i, d, r, s);\n            return this._createHorizontalRangesFromClientRects(c, o)\n        }\n    }\n    var pn = i(119);\n    const gn = !!A.g || !(A.d || Ri.g || Ri.h);\n    let fn = !0;\n    class mn {\n        constructor(e, t) {\n            this._domNode = e, this._clientRectDeltaLeft = 0, this._clientRectDeltaLeftRead = !1, this.endNode = t\n        }\n        get clientRectDeltaLeft() {\n            return this._clientRectDeltaLeftRead || (this._clientRectDeltaLeftRead = !0, this._clientRectDeltaLeft = this._domNode.getBoundingClientRect().left), this._clientRectDeltaLeft\n        }\n    }\n    class vn {\n        constructor(e, t) {\n            this.themeType = t;\n            const i = e.options;\n            e = i.get(43), this.renderWhitespace = i.get(87), this.renderControlCharacters = i.get(82), this.spaceWidth = e.spaceWidth, this.middotWidth = e.middotWidth, this.wsmiddotWidth = e.wsmiddotWidth, this.useMonospaceOptimizations = e.isMonospace && !i.get(29), this.canUseHalfwidthRightwardsArrow = e.canUseHalfwidthRightwardsArrow, this.lineHeight = i.get(58), this.stopRenderingLineAfter = i.get(104), this.fontLigatures = i.get(44)\n        }\n        equals(e) {\n            return this.themeType === e.themeType && this.renderWhitespace === e.renderWhitespace && this.renderControlCharacters === e.renderControlCharacters && this.spaceWidth === e.spaceWidth && this.middotWidth === e.middotWidth && this.wsmiddotWidth === e.wsmiddotWidth && this.useMonospaceOptimizations === e.useMonospaceOptimizations && this.canUseHalfwidthRightwardsArrow === e.canUseHalfwidthRightwardsArrow && this.lineHeight === e.lineHeight && this.stopRenderingLineAfter === e.stopRenderingLineAfter && this.fontLigatures === e.fontLigatures\n        }\n    }\n    class bn {\n        constructor(e) {\n            this._options = e, this._isMaybeInvalid = !0, this._renderedViewLine = null\n        }\n        getDomNode() {\n            return this._renderedViewLine && this._renderedViewLine.domNode ? this._renderedViewLine.domNode.domNode : null\n        }\n        setDomNode(e) {\n            if (!this._renderedViewLine) throw new Error(\"I have no rendered view line to set the dom node to...\");\n            this._renderedViewLine.domNode = Object(Ui.b)(e)\n        }\n        onContentChanged() {\n            this._isMaybeInvalid = !0\n        }\n        onTokensChanged() {\n            this._isMaybeInvalid = !0\n        }\n        onDecorationsChanged() {\n            this._isMaybeInvalid = !0\n        }\n        onOptionsChanged(e) {\n            this._isMaybeInvalid = !0, this._options = e\n        }\n        onSelectionChanged() {\n            return (this._options.themeType === pn.a.HIGH_CONTRAST || \"selection\" === this._options.renderWhitespace) && (this._isMaybeInvalid = !0)\n        }\n        renderLine(e, t, i, r) {\n            if (!1 === this._isMaybeInvalid) return !1;\n            this._isMaybeInvalid = !1;\n            var o, s, a = i.getViewLineRenderingData(e),\n                l = this._options;\n            const d = Ce.filter(a.inlineDecorations, e, a.minColumn, a.maxColumn);\n            let c = null;\n            if (l.themeType === pn.a.HIGH_CONTRAST || \"selection\" === this._options.renderWhitespace)\n                for (const t of i.selections) t.endLineNumber < e || t.startLineNumber > e || (o = t.startLineNumber === e ? t.startColumn : a.minColumn) < (s = t.endLineNumber === e ? t.endColumn : a.maxColumn) && (l.themeType === pn.a.HIGH_CONTRAST || \"selection\" !== this._options.renderWhitespace ? d.push(new Ce(o, s, \"inline-selected-text\", 0)) : (c = c || [], c.push(new Le(o - 1, s - 1))));\n            const h = new Oe(l.useMonospaceOptimizations, l.canUseHalfwidthRightwardsArrow, a.content, a.continuesWithWrappedLine, a.isBasicASCII, a.containsRTL, a.minColumn - 1, a.tokens, d, a.tabSize, a.startVisibleColumn, l.spaceWidth, l.middotWidth, l.wsmiddotWidth, l.stopRenderingLineAfter, l.renderWhitespace, l.renderControlCharacters, l.fontLigatures !== n.e.OFF, c);\n            if (this._renderedViewLine && this._renderedViewLine.input.equals(h)) return !1;\n            r.appendASCIIString('<div style=\"top:'), r.appendASCIIString(String(t)), r.appendASCIIString(\"px;height:\"), r.appendASCIIString(String(this._options.lineHeight)), r.appendASCIIString('px;\" class=\"'), r.appendASCIIString(bn.CLASS_NAME), r.appendASCIIString('\">'), t = Ie(h, r), r.appendASCIIString(\"</div>\");\n            let u = null;\n            return fn && gn && a.isBasicASCII && l.useMonospaceOptimizations && 0 === t.containsForeignElements && a.content.length < 300 && h.lineTokens.getCount() < 100 && (u = new _n(this._renderedViewLine ? this._renderedViewLine.domNode : null, h, t.characterMapping)), u = u || Cn(this._renderedViewLine ? this._renderedViewLine.domNode : null, h, t.characterMapping, t.containsRTL, t.containsForeignElements), this._renderedViewLine = u, !0\n        }\n        layoutLine(e, t) {\n            this._renderedViewLine && this._renderedViewLine.domNode && (this._renderedViewLine.domNode.setTop(t), this._renderedViewLine.domNode.setHeight(this._options.lineHeight))\n        }\n        getWidth() {\n            return this._renderedViewLine ? this._renderedViewLine.getWidth() : 0\n        }\n        getWidthIsFast() {\n            return !this._renderedViewLine || this._renderedViewLine.getWidthIsFast()\n        }\n        needsMonospaceFontCheck() {\n            return !!this._renderedViewLine && this._renderedViewLine instanceof _n\n        }\n        monospaceAssumptionsAreValid() {\n            return this._renderedViewLine && this._renderedViewLine instanceof _n ? this._renderedViewLine.monospaceAssumptionsAreValid() : fn\n        }\n        onMonospaceAssumptionsInvalidated() {\n            this._renderedViewLine && this._renderedViewLine instanceof _n && (this._renderedViewLine = this._renderedViewLine.toSlowRenderedLine())\n        }\n        getVisibleRangesForRange(e, t, i, n) {\n            if (!this._renderedViewLine) return null;\n            t |= 0, i |= 0, t = Math.min(this._renderedViewLine.input.lineContent.length + 1, Math.max(1, t)), i = Math.min(this._renderedViewLine.input.lineContent.length + 1, Math.max(1, i));\n            var r = 0 | this._renderedViewLine.input.stopRenderingLineAfter;\n            let o = -1 != r && 1 + r < t && 1 + r < i;\n            return (n = this._renderedViewLine.getVisibleRangesForRange(e, t = -1 != r && 1 + r < t ? 1 + r : t, i = -1 != r && 1 + r < i ? 1 + r : i, n)) && 0 < n.length ? new hn(o, n) : null\n        }\n        getColumnOfNodeOffset(e, t, i) {\n            return this._renderedViewLine ? this._renderedViewLine.getColumnOfNodeOffset(e, t, i) : 1\n        }\n    }\n    bn.CLASS_NAME = \"view-line\";\n    class _n {\n        constructor(e, t, i) {\n            this.domNode = e, this.input = t, this._characterMapping = i, this._charWidth = t.spaceWidth\n        }\n        getWidth() {\n            return Math.round(this._getCharPosition(this._characterMapping.length))\n        }\n        getWidthIsFast() {\n            return !0\n        }\n        monospaceAssumptionsAreValid() {\n            if (!this.domNode) return fn;\n            var e = this.getWidth(),\n                t = this.domNode.domNode.firstChild.offsetWidth;\n            return 2 <= Math.abs(e - t) && (console.warn(\"monospace assumptions have been violated, therefore disabling monospace optimizations!\"), fn = !1), fn\n        }\n        toSlowRenderedLine() {\n            return Cn(this.domNode, this.input, this._characterMapping, !1, 0)\n        }\n        getVisibleRangesForRange(e, t, i, n) {\n            return t = this._getCharPosition(t), i = this._getCharPosition(i), [new dn(t, i - t)]\n        }\n        _getCharPosition(e) {\n            return e = this._characterMapping.getAbsoluteOffset(e), this._charWidth * e\n        }\n        getColumnOfNodeOffset(e, t, i) {\n            var n = t.textContent.length;\n            let r = -1;\n            for (; t;) t = t.previousSibling, r++;\n            return this._characterMapping.getColumn(new Ee(r, i), n)\n        }\n    }\n    class wn {\n        constructor(e, t, i, n, r) {\n            if (this.domNode = e, this.input = t, this._characterMapping = i, this._isWhitespaceOnly = /^\\s*$/.test(t.lineContent), this._containsForeignElements = r, this._cachedWidth = -1, this._pixelOffsetCache = null, !n || 0 === this._characterMapping.length) {\n                this._pixelOffsetCache = new Float32Array(Math.max(2, this._characterMapping.length + 1));\n                for (let e = 0, t = this._characterMapping.length; e <= t; e++) this._pixelOffsetCache[e] = -1\n            }\n        }\n        _getReadingTarget(e) {\n            return e.domNode.firstChild\n        }\n        getWidth() {\n            return this.domNode ? (-1 === this._cachedWidth && (this._cachedWidth = this._getReadingTarget(this.domNode).offsetWidth), this._cachedWidth) : 0\n        }\n        getWidthIsFast() {\n            return -1 !== this._cachedWidth\n        }\n        getVisibleRangesForRange(e, t, i, n) {\n            return this.domNode ? null === this._pixelOffsetCache ? this._readVisibleRangesForRange(this.domNode, e, t, i, n) : -1 === (t = this._readPixelOffset(this.domNode, e, t, n)) || -1 === (n = this._readPixelOffset(this.domNode, e, i, n)) ? null : [new dn(t, n - t)] : null\n        }\n        _readVisibleRangesForRange(e, t, i, n, r) {\n            return i !== n ? this._readRawVisibleRangesForRange(e, i, n, r) : -1 === (r = this._readPixelOffset(e, t, i, r)) ? null : [new dn(r, 0)]\n        }\n        _readPixelOffset(e, t, i, n) {\n            if (0 === this._characterMapping.length) {\n                if (0 === this._containsForeignElements) return 0;\n                if (2 === this._containsForeignElements) return 0;\n                if (1 === this._containsForeignElements) return this.getWidth();\n                var r = this._getReadingTarget(e);\n                return r.firstChild ? r.firstChild.offsetWidth : 0\n            }\n            return null === this._pixelOffsetCache ? this._actualReadPixelOffset(e, t, i, n) : -1 !== (r = this._pixelOffsetCache[i]) ? r : (n = this._actualReadPixelOffset(e, t, i, n), this._pixelOffsetCache[i] = n)\n        }\n        _actualReadPixelOffset(e, t, i, n) {\n            if (0 === this._characterMapping.length) {\n                const t = un.readHorizontalRanges(this._getReadingTarget(e), 0, 0, 0, 0, n.clientRectDeltaLeft, n.endNode);\n                return t && 0 !== t.length ? t[0].left : -1\n            }\n            if (i === this._characterMapping.length && this._isWhitespaceOnly && 0 === this._containsForeignElements) return this.getWidth();\n            var r = this._characterMapping.getDomPosition(i);\n            const o = un.readHorizontalRanges(this._getReadingTarget(e), r.partIndex, r.charIndex, r.partIndex, r.charIndex, n.clientRectDeltaLeft, n.endNode);\n            return o && 0 !== o.length ? (n = o[0].left, this.input.isBasicASCII && (i = this._characterMapping.getAbsoluteOffset(i), i = Math.round(this.input.spaceWidth * i), Math.abs(i - n) <= 1) ? i : n) : -1\n        }\n        _readRawVisibleRangesForRange(e, t, i, n) {\n            return 1 === t && i === this._characterMapping.length ? [new dn(0, this.getWidth())] : (t = this._characterMapping.getDomPosition(t), i = this._characterMapping.getDomPosition(i), un.readHorizontalRanges(this._getReadingTarget(e), t.partIndex, t.charIndex, i.partIndex, i.charIndex, n.clientRectDeltaLeft, n.endNode))\n        }\n        getColumnOfNodeOffset(e, t, i) {\n            var n = t.textContent.length;\n            let r = -1;\n            for (; t;) t = t.previousSibling, r++;\n            return this._characterMapping.getColumn(new Ee(r, i), n)\n        }\n    }\n    class yn extends wn {\n        _readVisibleRangesForRange(e, t, i, n, r) {\n            var o = super._readVisibleRangesForRange(e, t, i, n, r);\n            if (!o || 0 === o.length || i === n || 1 === i && n === this._characterMapping.length) return o;\n            if (!this.input.containsRTL && -1 !== (r = this._readPixelOffset(e, t, n, r))) {\n                const e = o[o.length - 1];\n                e.left < r && (e.width = r - e.left)\n            }\n            return o\n        }\n    }\n    const Cn = Ri.j ? function(e, t, i, n, r) {\n        return new yn(e, t, i, n, r)\n    } : function(e, t, i, n, r) {\n        return new wn(e, t, i, n, r)\n    };\n    var xn, Sn = i(14),\n        kn = i(160);\n    class Ln {\n        constructor(e = null) {\n            this.hitTarget = e, this.type = 0\n        }\n    }\n    class On {\n        constructor(e, t, i) {\n            this.position = e, this.spanNode = t, this.injectedText = i, this.type = 1\n        }\n    }(xn || (xn = {})).createFromDOMInfo = function(e, t, i) {\n        return (i = e.getPositionFromDOMInfo(t, i)) ? new On(i, t, null) : new Ln(t)\n    };\n    class En {\n        constructor(e, t) {\n            this.lastViewCursorsRenderData = e, this.lastTextareaPosition = t\n        }\n    }\n    class Nn {\n        constructor(e, t, i = 0, n = null, r = null, o = null) {\n            this.element = e, this.type = t, this.mouseColumn = i, this.position = n, !r && n && (r = new T.a(n.lineNumber, n.column, n.lineNumber, n.column)), this.range = r, this.detail = o\n        }\n        static _typeToString(e) {\n            return 1 === e ? \"TEXTAREA\" : 2 === e ? \"GUTTER_GLYPH_MARGIN\" : 3 === e ? \"GUTTER_LINE_NUMBERS\" : 4 === e ? \"GUTTER_LINE_DECORATIONS\" : 5 === e ? \"GUTTER_VIEW_ZONE\" : 6 === e ? \"CONTENT_TEXT\" : 7 === e ? \"CONTENT_EMPTY\" : 8 === e ? \"CONTENT_VIEW_ZONE\" : 9 === e ? \"CONTENT_WIDGET\" : 10 === e ? \"OVERVIEW_RULER\" : 11 === e ? \"SCROLLBAR\" : 12 === e ? \"OVERLAY_WIDGET\" : \"UNKNOWN\"\n        }\n        static toString(e) {\n            return this._typeToString(e.type) + \": \" + e.position + \" - \" + e.range + \" - \" + e.detail\n        }\n        toString() {\n            return Nn.toString(this)\n        }\n    }\n    class Dn {\n        static isTextArea(e) {\n            return 2 === e.length && 3 === e[0] && 6 === e[1]\n        }\n        static isChildOfViewLines(e) {\n            return 4 <= e.length && 3 === e[0] && 7 === e[3]\n        }\n        static isStrictChildOfViewLines(e) {\n            return 4 < e.length && 3 === e[0] && 7 === e[3]\n        }\n        static isChildOfScrollableElement(e) {\n            return 2 <= e.length && 3 === e[0] && 5 === e[1]\n        }\n        static isChildOfMinimap(e) {\n            return 2 <= e.length && 3 === e[0] && 8 === e[1]\n        }\n        static isChildOfContentWidgets(e) {\n            return 4 <= e.length && 3 === e[0] && 1 === e[3]\n        }\n        static isChildOfOverflowingContentWidgets(e) {\n            return 1 <= e.length && 2 === e[0]\n        }\n        static isChildOfOverlayWidgets(e) {\n            return 2 <= e.length && 3 === e[0] && 4 === e[1]\n        }\n    }\n    class In {\n        constructor(e, t, i) {\n            this.model = e.model;\n            const n = e.configuration.options;\n            this.layoutInfo = n.get(129), this.viewDomNode = t.viewDomNode, this.lineHeight = n.get(58), this.stickyTabStops = n.get(103), this.typicalHalfwidthCharacterWidth = n.get(43).typicalHalfwidthCharacterWidth, this.lastRenderData = i, this._context = e, this._viewHelper = t\n        }\n        getZoneAtCoord(e) {\n            return In.getZoneAtCoord(this._context, e)\n        }\n        static getZoneAtCoord(e, t) {\n            var i = e.viewLayout.getWhitespaceAtVerticalOffset(t);\n            if (i) {\n                var n = i.verticalOffset + i.height / 2,\n                    r = e.model.getLineCount();\n                let o, s = null,\n                    a = null;\n                return i.afterLineNumber !== r && (a = new Re.a(i.afterLineNumber + 1, 1)), 0 < i.afterLineNumber && (s = new Re.a(i.afterLineNumber, e.model.getLineMaxColumn(i.afterLineNumber))), o = null === a || null !== s && t < n ? s : a, {\n                    viewZoneId: i.id,\n                    afterLineNumber: i.afterLineNumber,\n                    positionBefore: s,\n                    positionAfter: a,\n                    position: o\n                }\n            }\n            return null\n        }\n        getFullLineRangeAtCoord(e) {\n            if (this._context.viewLayout.isAfterLines(e)) {\n                const e = this._context.model.getLineCount(),\n                    t = this._context.model.getLineMaxColumn(e);\n                return {\n                    range: new T.a(e, t, e, t),\n                    isAfterLines: !0\n                }\n            }\n            const t = this._context.viewLayout.getLineNumberAtVerticalOffset(e),\n                i = this._context.model.getLineMaxColumn(t);\n            return {\n                range: new T.a(t, 1, t, i),\n                isAfterLines: !1\n            }\n        }\n        getLineNumberAtVerticalOffset(e) {\n            return this._context.viewLayout.getLineNumberAtVerticalOffset(e)\n        }\n        isAfterLines(e) {\n            return this._context.viewLayout.isAfterLines(e)\n        }\n        isInTopPadding(e) {\n            return this._context.viewLayout.isInTopPadding(e)\n        }\n        isInBottomPadding(e) {\n            return this._context.viewLayout.isInBottomPadding(e)\n        }\n        getVerticalOffsetForLineNumber(e) {\n            return this._context.viewLayout.getVerticalOffsetForLineNumber(e)\n        }\n        findAttribute(e, t) {\n            return In._findAttribute(e, t, this._viewHelper.viewDomNode)\n        }\n        static _findAttribute(e, t, i) {\n            for (; e && e !== document.body;) {\n                if (e.hasAttribute && e.hasAttribute(t)) return e.getAttribute(t);\n                if (e === i) return null;\n                e = e.parentNode\n            }\n            return null\n        }\n        getLineWidth(e) {\n            return this._viewHelper.getLineWidth(e)\n        }\n        visibleRangeForPosition(e, t) {\n            return this._viewHelper.visibleRangeForPosition(e, t)\n        }\n        getPositionFromDOMInfo(e, t) {\n            return this._viewHelper.getPositionFromDOMInfo(e, t)\n        }\n        getCurrentScrollTop() {\n            return this._context.viewLayout.getCurrentScrollTop()\n        }\n        getCurrentScrollLeft() {\n            return this._context.viewLayout.getCurrentScrollLeft()\n        }\n    }\n    class Tn extends class {\n        constructor(e, t, i) {\n            this.editorPos = t, this.pos = i, this.mouseVerticalOffset = Math.max(0, e.getCurrentScrollTop() + i.y - t.y), this.mouseContentHorizontalOffset = e.getCurrentScrollLeft() + i.x - t.x - e.layoutInfo.contentLeft, this.isInMarginArea = i.x - t.x < e.layoutInfo.contentLeft && i.x - t.x >= e.layoutInfo.glyphMarginLeft, this.isInContentArea = !this.isInMarginArea, this.mouseColumn = Math.max(0, An._getMouseColumn(this.mouseContentHorizontalOffset, e.typicalHalfwidthCharacterWidth))\n        }\n    } {\n        constructor(e, t, i, n) {\n            super(e, t, i), this._ctx = e, n ? (this.target = n, this.targetPath = on.collect(n, e.viewDomNode)) : (this.target = null, this.targetPath = new Uint8Array(0))\n        }\n        toString() {\n            return `pos(${this.pos.x},${this.pos.y}), editorPos(${this.editorPos.x},${this.editorPos.y}), mouseVerticalOffset: ${this.mouseVerticalOffset}, mouseContentHorizontalOffset: ${this.mouseContentHorizontalOffset}\\n\\ttarget: ${this.target?this.target.outerHTML:null}`\n        }\n        fulfill(e, t = null, i = null, n = null) {\n            let r = this.mouseColumn;\n            return t && t.column < this._ctx.model.getLineMaxColumn(t.lineNumber) && (r = Sn.a.visibleColumnFromColumn(this._ctx.model.getLineContent(t.lineNumber), t.column, this._ctx.model.getTextModelOptions().tabSize) + 1), new Nn(this.target, e, r, t, i, n)\n        }\n        withTarget(e) {\n            return new Tn(this._ctx, this.editorPos, this.pos, e)\n        }\n    }\n    const Mn = {\n        isAfterLines: !0\n    };\n\n    function Pn(e) {\n        return {\n            isAfterLines: !1,\n            horizontalDistanceToText: e\n        }\n    }\n    class An {\n        constructor(e, t) {\n            this._context = e, this._viewHelper = t\n        }\n        mouseTargetIsWidget(e) {\n            return e = e.target, e = on.collect(e, this._viewHelper.viewDomNode), !(!Dn.isChildOfContentWidgets(e) && !Dn.isChildOfOverflowingContentWidgets(e) && !Dn.isChildOfOverlayWidgets(e))\n        }\n        createMouseTarget(e, t, i, n) {\n            e = new In(this._context, this._viewHelper, e);\n            const r = new Tn(e, t, i, n);\n            try {\n                return An._createMouseTarget(e, r, !1)\n            } catch (e) {\n                return r.fulfill(0)\n            }\n        }\n        static _createMouseTarget(e, t, i) {\n            if (null === t.target) {\n                if (i) return t.fulfill(0);\n                var n = An._doHitTest(e, t);\n                return 1 === n.type ? An.createMouseTargetFromHitTestPosition(e, t, n.spanNode, n.position, n.injectedText) : this._createMouseTarget(e, t.withTarget(n.hitTarget), !0)\n            }\n            return n = t, An._hitTestContentWidget(e, n) || An._hitTestOverlayWidget(e, n) || An._hitTestMinimap(e, n) || An._hitTestScrollbarSlider(e, n) || An._hitTestViewZone(e, n) || An._hitTestMargin(e, n) || An._hitTestViewCursor(e, n) || An._hitTestTextArea(e, n) || An._hitTestViewLines(e, n, i) || An._hitTestScrollbar(e, n) || t.fulfill(0)\n        }\n        static _hitTestContentWidget(e, t) {\n            return Dn.isChildOfContentWidgets(t.targetPath) || Dn.isChildOfOverflowingContentWidgets(t.targetPath) ? (e = e.findAttribute(t.target, \"widgetId\")) ? t.fulfill(9, null, null, e) : t.fulfill(0) : null\n        }\n        static _hitTestOverlayWidget(e, t) {\n            return Dn.isChildOfOverlayWidgets(t.targetPath) ? (e = e.findAttribute(t.target, \"widgetId\")) ? t.fulfill(12, null, null, e) : t.fulfill(0) : null\n        }\n        static _hitTestViewCursor(e, t) {\n            if (t.target)\n                for (const i of e.lastRenderData.lastViewCursorsRenderData)\n                    if (t.target === i.domNode) return t.fulfill(6, i.position, null, {\n                        mightBeForeignElement: !1\n                    });\n            if (t.isInContentArea) {\n                var i = e.lastRenderData.lastViewCursorsRenderData,\n                    n = t.mouseContentHorizontalOffset,\n                    r = t.mouseVerticalOffset;\n                for (const s of i)\n                    if (!(n < s.contentLeft || n > s.contentLeft + s.width)) {\n                        var o = e.getVerticalOffsetForLineNumber(s.position.lineNumber);\n                        if (o <= r && r <= o + s.height) return t.fulfill(6, s.position, null, {\n                            mightBeForeignElement: !1\n                        })\n                    }\n            }\n            return null\n        }\n        static _hitTestViewZone(e, t) {\n            var i = e.getZoneAtCoord(t.mouseVerticalOffset);\n            return i ? (e = t.isInContentArea ? 8 : 5, t.fulfill(e, i.position, null, i)) : null\n        }\n        static _hitTestTextArea(e, t) {\n            return Dn.isTextArea(t.targetPath) ? e.lastRenderData.lastTextareaPosition ? t.fulfill(6, e.lastRenderData.lastTextareaPosition, null, {\n                mightBeForeignElement: !1\n            }) : t.fulfill(1, e.lastRenderData.lastTextareaPosition) : null\n        }\n        static _hitTestMargin(e, t) {\n            if (t.isInMarginArea) {\n                const o = e.getFullLineRangeAtCoord(t.mouseVerticalOffset);\n                var i = o.range.getStartPosition(),\n                    n = Math.abs(t.pos.x - t.editorPos.x),\n                    r = {\n                        isAfterLines: o.isAfterLines,\n                        glyphMarginLeft: e.layoutInfo.glyphMarginLeft,\n                        glyphMarginWidth: e.layoutInfo.glyphMarginWidth,\n                        lineNumbersWidth: e.layoutInfo.lineNumbersWidth,\n                        offsetX: n\n                    };\n                return (n -= e.layoutInfo.glyphMarginLeft) <= e.layoutInfo.glyphMarginWidth ? t.fulfill(2, i, o.range, r) : (n -= e.layoutInfo.glyphMarginWidth) <= e.layoutInfo.lineNumbersWidth ? t.fulfill(3, i, o.range, r) : (e.layoutInfo.lineNumbersWidth, t.fulfill(4, i, o.range, r))\n            }\n            return null\n        }\n        static _hitTestViewLines(e, t, i) {\n            if (!Dn.isChildOfViewLines(t.targetPath)) return null;\n            if (e.isInTopPadding(t.mouseVerticalOffset)) return t.fulfill(7, new Re.a(1, 1), null, Mn);\n            if (e.isAfterLines(t.mouseVerticalOffset) || e.isInBottomPadding(t.mouseVerticalOffset)) {\n                var n = e.model.getLineCount(),\n                    r = e.model.getLineMaxColumn(n);\n                return t.fulfill(7, new Re.a(n, r), null, Mn)\n            }\n            if (i) {\n                if (Dn.isStrictChildOfViewLines(t.targetPath)) {\n                    if (i = e.getLineNumberAtVerticalOffset(t.mouseVerticalOffset), 0 === e.model.getLineLength(i)) {\n                        var o = e.getLineWidth(i);\n                        o = Pn(t.mouseContentHorizontalOffset - o);\n                        return t.fulfill(7, new Re.a(i, 1), null, o)\n                    }\n                    if (o = e.getLineWidth(i), t.mouseContentHorizontalOffset >= o) {\n                        var s = Pn(t.mouseContentHorizontalOffset - o);\n                        i = new Re.a(i, e.model.getLineMaxColumn(i));\n                        return t.fulfill(7, i, null, s)\n                    }\n                }\n                return t.fulfill(0)\n            }\n            return 1 === (s = An._doHitTest(e, t)).type ? An.createMouseTargetFromHitTestPosition(e, t, s.spanNode, s.position, s.injectedText) : this._createMouseTarget(e, t.withTarget(s.hitTarget), !0)\n        }\n        static _hitTestMinimap(e, t) {\n            if (Dn.isChildOfMinimap(t.targetPath)) {\n                var i = e.getLineNumberAtVerticalOffset(t.mouseVerticalOffset);\n                e = e.model.getLineMaxColumn(i);\n                return t.fulfill(11, new Re.a(i, e))\n            }\n            return null\n        }\n        static _hitTestScrollbarSlider(e, t) {\n            if (Dn.isChildOfScrollableElement(t.targetPath) && t.target && 1 === t.target.nodeType) {\n                var i = t.target.className;\n                if (i && /\\b(slider|scrollbar)\\b/.test(i)) return i = e.getLineNumberAtVerticalOffset(t.mouseVerticalOffset), e = e.model.getLineMaxColumn(i), t.fulfill(11, new Re.a(i, e))\n            }\n            return null\n        }\n        static _hitTestScrollbar(e, t) {\n            if (Dn.isChildOfScrollableElement(t.targetPath)) {\n                var i = e.getLineNumberAtVerticalOffset(t.mouseVerticalOffset);\n                e = e.model.getLineMaxColumn(i);\n                return t.fulfill(11, new Re.a(i, e))\n            }\n            return null\n        }\n        getMouseColumn(e, t) {\n            const i = this._context.configuration.options;\n            var n = i.get(129);\n            n = this._context.viewLayout.getCurrentScrollLeft() + t.x - e.x - n.contentLeft;\n            return An._getMouseColumn(n, i.get(43).typicalHalfwidthCharacterWidth)\n        }\n        static _getMouseColumn(e, t) {\n            return e < 0 ? 1 : Math.round(e / t) + 1\n        }\n        static createMouseTargetFromHitTestPosition(e, t, i, n, r) {\n            var o = n.lineNumber,\n                s = n.column,\n                a = e.getLineWidth(o);\n            if (t.mouseContentHorizontalOffset > a) {\n                var l = Pn(t.mouseContentHorizontalOffset - a);\n                return t.fulfill(7, n, null, l)\n            }\n            const d = e.visibleRangeForPosition(o, s);\n            if (!d) return t.fulfill(0, n);\n            if (l = d.left, t.mouseContentHorizontalOffset === l) return t.fulfill(6, n, null, {\n                mightBeForeignElement: !!r\n            });\n            const c = [];\n            if (c.push({\n                    offset: d.left,\n                    column: s\n                }), 1 < s) {\n                const t = e.visibleRangeForPosition(o, s - 1);\n                t && c.push({\n                    offset: t.left,\n                    column: s - 1\n                })\n            }\n            if (s < e.model.getLineMaxColumn(o)) {\n                const t = e.visibleRangeForPosition(o, s + 1);\n                t && c.push({\n                    offset: t.left,\n                    column: s + 1\n                })\n            }\n            c.sort((e, t) => e.offset - t.offset);\n            s = t.pos.toClientCoordinates();\n            var h = (i = i.getBoundingClientRect()).left <= s.clientX && s.clientX <= i.right;\n            for (let e = 1; e < c.length; e++) {\n                var u = c[e - 1],\n                    p = c[e];\n                if (u.offset <= t.mouseContentHorizontalOffset && t.mouseContentHorizontalOffset <= p.offset) return p = new T.a(o, u.column, o, p.column), t.fulfill(6, n, p, {\n                    mightBeForeignElement: !h || !!r\n                })\n            }\n            return t.fulfill(6, n, null, {\n                mightBeForeignElement: !h || !!r\n            })\n        }\n        static _doHitTestWithCaretRangeFromPoint(e, t) {\n            var i = e.getLineNumberAtVerticalOffset(t.mouseVerticalOffset);\n            i = e.getVerticalOffsetForLineNumber(i) + Math.floor(e.lineHeight / 2);\n            let n = t.pos.y + (i - t.mouseVerticalOffset);\n            n <= t.editorPos.y && (n = t.editorPos.y + 1), n >= t.editorPos.y + e.layoutInfo.height && (n = t.editorPos.y + e.layoutInfo.height - 1);\n            const r = new Gi(t.pos.x, n);\n            return 1 === (i = this._actualDoHitTestWithCaretRangeFromPoint(e, r.toClientCoordinates())).type ? i : this._actualDoHitTestWithCaretRangeFromPoint(e, t.pos.toClientCoordinates())\n        }\n        static _actualDoHitTestWithCaretRangeFromPoint(e, t) {\n            const i = s.C(e.viewDomNode);\n            let n;\n            if (n = i ? void 0 === i.caretRangeFromPoint ? function(e, t, i) {\n                    const n = document.createRange();\n                    let r = e.elementFromPoint(t, i);\n                    if (null !== r) {\n                        for (; r && r.firstChild && r.firstChild.nodeType !== r.firstChild.TEXT_NODE && r.lastChild && r.lastChild.firstChild;) r = r.lastChild;\n                        i = r.getBoundingClientRect();\n                        var o, s = window.getComputedStyle(r, null).getPropertyValue(\"font\");\n                        const e = r.innerText;\n                        let a = i.left,\n                            l = 0;\n                        if (t > i.left + i.width) l = e.length;\n                        else {\n                            const i = Rn.getInstance();\n                            for (let n = 0; n < e.length + 1; n++) {\n                                if (a += o = i.getCharWidth(e.charAt(n), s) / 2, t < a) {\n                                    l = n;\n                                    break\n                                }\n                                a += o\n                            }\n                        }\n                        n.setStart(r.firstChild, l), n.setEnd(r.firstChild, l)\n                    }\n                    return n\n                }(i, t.clientX, t.clientY) : i.caretRangeFromPoint(t.clientX, t.clientY) : document.caretRangeFromPoint(t.clientX, t.clientY), !n || !n.startContainer) return new Ln;\n            var r = n.startContainer;\n            if (r.nodeType === r.TEXT_NODE) {\n                var o = r.parentNode;\n                return ((t = (t = o ? o.parentNode : null) ? t.parentNode : null) && t.nodeType === t.ELEMENT_NODE ? t.className : null) === bn.CLASS_NAME ? xn.createFromDOMInfo(e, o, n.startOffset) : new Ln(r.parentNode)\n            }\n            return r.nodeType !== r.ELEMENT_NODE ? new Ln : ((o = (o = r.parentNode) ? o.parentNode : null) && o.nodeType === o.ELEMENT_NODE ? o.className : null) === bn.CLASS_NAME ? xn.createFromDOMInfo(e, r, r.textContent.length) : new Ln(r)\n        }\n        static _doHitTestWithCaretPositionFromPoint(e, t) {\n            if ((t = document.caretPositionFromPoint(t.clientX, t.clientY)).offsetNode.nodeType === t.offsetNode.TEXT_NODE) {\n                var i, n = (i = t.offsetNode.parentNode) ? i.parentNode : null;\n                return ((i = n ? n.parentNode : null) && i.nodeType === i.ELEMENT_NODE ? i.className : null) === bn.CLASS_NAME ? xn.createFromDOMInfo(e, t.offsetNode.parentNode, t.offset) : new Ln(t.offsetNode.parentNode)\n            }\n            if (t.offsetNode.nodeType === t.offsetNode.ELEMENT_NODE)\n                if (i = (n = t.offsetNode.parentNode) && n.nodeType === n.ELEMENT_NODE ? n.className : null, n = (n = n ? n.parentNode : null) && n.nodeType === n.ELEMENT_NODE ? n.className : null, i === bn.CLASS_NAME) {\n                    if (i = t.offsetNode.childNodes[Math.min(t.offset, t.offsetNode.childNodes.length - 1)]) return xn.createFromDOMInfo(e, i, 0)\n                } else if (n === bn.CLASS_NAME) return xn.createFromDOMInfo(e, t.offsetNode, 0);\n            return new Ln(t.offsetNode)\n        }\n        static _snapToSoftTabBoundary(e, t) {\n            var i = t.getLineContent(e.lineNumber),\n                {\n                    tabSize: t\n                } = t.getTextModelOptions();\n            return -1 !== (t = kn.a.atomicPosition(i, e.column - 1, t, 2)) ? new Re.a(e.lineNumber, t + 1) : e\n        }\n        static _doHitTest(e, t) {\n            let i = new Ln;\n            if (\"function\" == typeof document.caretRangeFromPoint ? i = this._doHitTestWithCaretRangeFromPoint(e, t) : document.caretPositionFromPoint && (i = this._doHitTestWithCaretPositionFromPoint(e, t.pos.toClientCoordinates())), 1 === i.type) {\n                t = e.model.getInjectedTextAt(i.position);\n                const n = e.model.normalizePosition(i.position, 2);\n                !t && n.equals(i.position) || (i = new On(n, i.spanNode, t))\n            }\n            return 1 === i.type && e.stickyTabStops && (i = new On(this._snapToSoftTabBoundary(i.position, e.model), i.spanNode, i.injectedText)), i\n        }\n    }\n    class Rn {\n        constructor() {\n            this._cache = {}, this._canvas = document.createElement(\"canvas\")\n        }\n        static getInstance() {\n            return Rn._INSTANCE || (Rn._INSTANCE = new Rn), Rn._INSTANCE\n        }\n        getCharWidth(e, t) {\n            var i = e + t;\n            if (this._cache[i]) return this._cache[i];\n            const n = this._canvas.getContext(\"2d\");\n            return n.font = t, e = n.measureText(e).width, this._cache[i] = e\n        }\n    }\n\n    function Fn(e) {\n        return function(t, i) {\n            let n = !1;\n            return e && (n = e.mouseTargetIsWidget(i)), n || i.preventDefault(), i\n        }\n    }\n    Rn._INSTANCE = null;\n    class jn extends nn {\n        constructor(e, t, i) {\n            super(), this._context = e, this.viewController = t, this.viewHelper = i, this.mouseTargetFactory = new An(this._context, i), this._mouseDownOperation = this._register(new Bn(this._context, this.viewController, this.viewHelper, (e, t) => this._createMouseTarget(e, t), e => this._getMouseColumn(e))), this.lastMouseLeaveTime = -1, this._height = this._context.configuration.options.get(129).height;\n            const n = new Ji(this.viewHelper.viewDomNode);\n            this._register(n.onContextMenu(this.viewHelper.viewDomNode, e => this._onContextMenu(e, !0))), this._register(n.onMouseMoveThrottled(this.viewHelper.viewDomNode, e => this._onMouseMove(e), Fn(this.mouseTargetFactory), jn.MOUSE_MOVE_MINIMUM_TIME)), this._register(n.onMouseUp(this.viewHelper.viewDomNode, e => this._onMouseUp(e))), this._register(n.onMouseLeave(this.viewHelper.viewDomNode, e => this._onMouseLeave(e))), this._register(n.onMouseDown(this.viewHelper.viewDomNode, e => this._onMouseDown(e))), this._register(s.g(this.viewHelper.viewDomNode, s.d.MOUSE_WHEEL, e => {\n                if (this.viewController.emitMouseWheel(e), this._context.configuration.options.get(67)) {\n                    const i = new $i.b(e);\n                    var t;\n                    (A.f ? (e.metaKey || e.ctrlKey) && !e.shiftKey && !e.altKey : e.ctrlKey && !e.metaKey && !e.shiftKey && !e.altKey) && (t = R.getZoomLevel(), e = 0 < i.deltaY ? 1 : -1, R.setZoomLevel(t + e), i.preventDefault(), i.stopPropagation())\n                }\n            }, {\n                capture: !0,\n                passive: !1\n            })), this._context.addEventHandler(this)\n        }\n        dispose() {\n            this._context.removeEventHandler(this), super.dispose()\n        }\n        on配置Changed(e) {\n            return e.hasChanged(129) && (e = this._context.configuration.options.get(129).height, this._height !== e && (this._height = e, this._mouseDownOperation.onHeightChanged())), !1\n        }\n        onCursorStateChanged(e) {\n            return this._mouseDownOperation.onCursorStateChanged(e), !1\n        }\n        onFocusChanged(e) {\n            return !1\n        }\n        onScrollChanged(e) {\n            return this._mouseDownOperation.onScrollChanged(), !1\n        }\n        getTargetAtClientPoint(e, t) {\n            return e = new Yi(e, t).toPageCoordinates(), t = Xi(this.viewHelper.viewDomNode), e.y < t.y || e.y > t.y + t.height || e.x < t.x || e.x > t.x + t.width ? null : this.mouseTargetFactory.createMouseTarget(this.viewHelper.getLastRenderData(), t, e, null)\n        }\n        _createMouseTarget(e, t) {\n            let i = e.target;\n            if (!this.viewHelper.viewDomNode.contains(i)) {\n                const t = s.C(this.viewHelper.viewDomNode);\n                t && (i = t.elementsFromPoint(e.posx, e.posy).find(e => this.viewHelper.viewDomNode.contains(e)))\n            }\n            return this.mouseTargetFactory.createMouseTarget(this.viewHelper.getLastRenderData(), e.editorPos, e.pos, t ? i : null)\n        }\n        _getMouseColumn(e) {\n            return this.mouseTargetFactory.getMouseColumn(e.editorPos, e.pos)\n        }\n        _onContextMenu(e, t) {\n            this.viewController.emitContextMenu({\n                event: e,\n                target: this._createMouseTarget(e, t)\n            })\n        }\n        _onMouseMove(e) {\n            this._mouseDownOperation.isActive() || e.timestamp < this.lastMouseLeaveTime || this.viewController.emitMouseMove({\n                event: e,\n                target: this._createMouseTarget(e, !0)\n            })\n        }\n        _onMouseLeave(e) {\n            this.lastMouseLeaveTime = (new Date).getTime(), this.viewController.emitMouseLeave({\n                event: e,\n                target: null\n            })\n        }\n        _onMouseUp(e) {\n            this.viewController.emitMouseUp({\n                event: e,\n                target: this._createMouseTarget(e, !0)\n            })\n        }\n        _onMouseDown(e) {\n            var t = this._createMouseTarget(e, !0),\n                i = 6 === t.type || 7 === t.type,\n                n = 2 === t.type || 3 === t.type || 4 === t.type,\n                r = 3 === t.type,\n                o = this._context.configuration.options.get(97),\n                s = 8 === t.type || 5 === t.type,\n                a = 9 === t.type;\n            let l = e.leftButton || e.middleButton;\n            A.f && e.leftButton && e.ctrlKey && (l = !1);\n            var d = () => {\n                e.preventDefault(), this.viewHelper.focusTextArea()\n            };\n            l && (i || r && o) ? (d(), this._mouseDownOperation.start(t.type, e)) : n ? e.preventDefault() : s ? (s = t.detail, this.viewHelper.shouldSuppressMouseDownOnViewZone(s.viewZoneId) && (d(), this._mouseDownOperation.start(t.type, e), e.preventDefault())) : a && this.viewHelper.shouldSuppressMouseDownOnWidget(t.detail) && (d(), e.preventDefault()), this.viewController.emitMouseDown({\n                event: e,\n                target: t\n            })\n        }\n    }\n    jn.MOUSE_MOVE_MINIMUM_TIME = 100;\n    class Bn extends v.a {\n        constructor(e, t, i, n, r) {\n            super(), this._context = e, this._viewController = t, this._viewHelper = i, this._createMouseTarget = n, this._getMouseColumn = r, this._mouseMoveMonitor = this._register(new tn(this._viewHelper.viewDomNode)), this._onScrollTimeout = this._register(new q.g), this._mouseState = new Vn, this._currentSelection = new Hi.a(1, 1, 1, 1), this._isActive = !1, this._lastMouseEvent = null\n        }\n        dispose() {\n            super.dispose()\n        }\n        isActive() {\n            return this._isActive\n        }\n        _onMouseDownThenMove(e) {\n            this._lastMouseEvent = e, this._mouseState.setModifiers(e);\n            var t = this._findMousePosition(e, !0);\n            t && (this._mouseState.isDragAndDrop ? this._viewController.emitMouseDrag({\n                event: e,\n                target: t\n            }) : this._dispatchMouse(t, !0))\n        }\n        start(e, t) {\n            if (this._lastMouseEvent = t, this._mouseState.setStartedOnLineNumbers(3 === e), this._mouseState.setStartButtons(t), this._mouseState.setModifiers(t), (e = this._findMousePosition(t, !0)) && e.position) {\n                this._mouseState.trySetCount(t.detail, e.position), t.detail = this._mouseState.count;\n                const i = this._context.configuration.options;\n                if (!i.get(80) && i.get(31) && !i.get(18) && !this._mouseState.altKey && t.detail < 2 && !this._isActive && !this._currentSelection.isEmpty() && 6 === e.type && e.position && this._currentSelection.containsPosition(e.position)) return this._mouseState.isDragAndDrop = !0, this._isActive = !0, void this._mouseMoveMonitor.startMonitoring(t.target, t.buttons, Fn(null), e => this._onMouseDownThenMove(e), e => {\n                    var t = this._findMousePosition(this._lastMouseEvent, !0);\n                    e && e instanceof KeyboardEvent ? this._viewController.emitMouseDropCanceled() : this._viewController.emitMouseDrop({\n                        event: this._lastMouseEvent,\n                        target: t ? this._createMouseTarget(this._lastMouseEvent, !0) : null\n                    }), this._stop()\n                });\n                this._mouseState.isDragAndDrop = !1, this._dispatchMouse(e, t.shiftKey), this._isActive || (this._isActive = !0, this._mouseMoveMonitor.startMonitoring(t.target, t.buttons, Fn(null), e => this._onMouseDownThenMove(e), () => this._stop()))\n            }\n        }\n        _stop() {\n            this._isActive = !1, this._onScrollTimeout.cancel()\n        }\n        onHeightChanged() {\n            this._mouseMoveMonitor.stopMonitoring()\n        }\n        onScrollChanged() {\n            this._isActive && this._onScrollTimeout.setIfNotSet(() => {\n                var e;\n                !this._lastMouseEvent || (e = this._findMousePosition(this._lastMouseEvent, !1)) && (this._mouseState.isDragAndDrop || this._dispatchMouse(e, !0))\n            }, 10)\n        }\n        onCursorStateChanged(e) {\n            this._currentSelection = e.selections[0]\n        }\n        _getPositionOutsideEditor(e) {\n            var t = e.editorPos;\n            const i = this._context.model,\n                n = this._context.viewLayout;\n            var r = this._getMouseColumn(e);\n            if (e.posy < t.y) {\n                var o = Math.max(n.getCurrentScrollTop() - (t.y - e.posy), 0),\n                    s = In.getZoneAtCoord(this._context, o);\n                return s && (s = this._helpPositionJumpOverViewZone(s)) ? new Nn(null, 13, r, s) : (o = n.getLineNumberAtVerticalOffset(o), new Nn(null, 13, r, new Re.a(o, 1)))\n            }\n            if (e.posy > t.y + t.height) {\n                var a = n.getCurrentScrollTop() + (e.posy - t.y);\n                return (o = In.getZoneAtCoord(this._context, a)) && (o = this._helpPositionJumpOverViewZone(o)) ? new Nn(null, 13, r, o) : (a = n.getLineNumberAtVerticalOffset(a), new Nn(null, 13, r, new Re.a(a, i.getLineMaxColumn(a))))\n            }\n            return a = n.getLineNumberAtVerticalOffset(n.getCurrentScrollTop() + (e.posy - t.y)), e.posx < t.x ? new Nn(null, 13, r, new Re.a(a, 1)) : e.posx > t.x + t.width ? new Nn(null, 13, r, new Re.a(a, i.getLineMaxColumn(a))) : null\n        }\n        _findMousePosition(e, t) {\n            var i = this._getPositionOutsideEditor(e);\n            return i || ((e = this._createMouseTarget(e, t)).position ? 8 !== e.type && 5 !== e.type || !(t = this._helpPositionJumpOverViewZone(e.detail)) ? e : new Nn(e.element, e.type, e.mouseColumn, t, null, e.detail) : null)\n        }\n        _helpPositionJumpOverViewZone(e) {\n            var t = new Re.a(this._currentSelection.selectionStartLineNumber, this._currentSelection.selectionStartColumn);\n            const i = e.positionBefore;\n            return e = e.positionAfter, i && e ? i.isBefore(t) ? i : e : null\n        }\n        _dispatchMouse(e, t) {\n            e.position && this._viewController.dispatchMouse({\n                position: e.position,\n                mouseColumn: e.mouseColumn,\n                startedOnLineNumbers: this._mouseState.startedOnLineNumbers,\n                inSelectionMode: t,\n                mouseDownCount: this._mouseState.count,\n                altKey: this._mouseState.altKey,\n                ctrlKey: this._mouseState.ctrlKey,\n                metaKey: this._mouseState.metaKey,\n                shiftKey: this._mouseState.shiftKey,\n                leftButton: this._mouseState.leftButton,\n                middleButton: this._mouseState.middleButton\n            })\n        }\n    }\n    class Vn {\n        constructor() {\n            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\n        }\n        get altKey() {\n            return this._altKey\n        }\n        get ctrlKey() {\n            return this._ctrlKey\n        }\n        get metaKey() {\n            return this._metaKey\n        }\n        get shiftKey() {\n            return this._shiftKey\n        }\n        get leftButton() {\n            return this._leftButton\n        }\n        get middleButton() {\n            return this._middleButton\n        }\n        get startedOnLineNumbers() {\n            return this._startedOnLineNumbers\n        }\n        get count() {\n            return this._lastMouseDownCount\n        }\n        setModifiers(e) {\n            this._altKey = e.altKey, this._ctrlKey = e.ctrlKey, this._metaKey = e.metaKey, this._shiftKey = e.shiftKey\n        }\n        setStartButtons(e) {\n            this._leftButton = e.leftButton, this._middleButton = e.middleButton\n        }\n        setStartedOnLineNumbers(e) {\n            this._startedOnLineNumbers = e\n        }\n        trySetCount(e, t) {\n            var i = (new Date).getTime();\n            i - this._lastSetMouseDownCountTime > Vn.CLEAR_MOUSE_DOWN_COUNT_TIME && (e = 1), this._lastSetMouseDownCountTime = i, e > this._lastMouseDownCount + 1 && (e = this._lastMouseDownCount + 1), this._lastMouseDownPosition && this._lastMouseDownPosition.equals(t) ? this._lastMouseDownPositionEqualCount++ : this._lastMouseDownPositionEqualCount = 1, this._lastMouseDownPosition = t, this._lastMouseDownCount = Math.min(e, this._lastMouseDownPositionEqualCount)\n        }\n    }\n    Vn.CLEAR_MOUSE_DOWN_COUNT_TIME = 400;\n    var Wn, zn = i(138),\n        Hn = i(98);\n    class Un {\n        constructor(e, t, i, n, r) {\n            this.value = e, this.selectionStart = t, this.selectionEnd = i, this.selectionStartPosition = n, this.selectionEndPosition = r\n        }\n        toString() {\n            return \"[ <\" + this.value + \">, selectionStart: \" + this.selectionStart + \", selectionEnd: \" + this.selectionEnd + \"]\"\n        }\n        static readFromTextArea(e) {\n            return new Un(e.getValue(), e.getSelectionStart(), e.getSelectionEnd(), null, null)\n        }\n        collapseSelection() {\n            return new Un(this.value, this.value.length, this.value.length, null, null)\n        }\n        writeToTextArea(e, t, i) {\n            t.setValue(e, this.value), i && t.setSelectionRange(e, this.selectionStart, this.selectionEnd)\n        }\n        deduceEditorPosition(e) {\n            if (e <= this.selectionStart) {\n                var t = this.value.substring(e, this.selectionStart);\n                return this._finishDeduceEditorPosition(this.selectionStartPosition, t, -1)\n            }\n            if (e >= this.selectionEnd) return t = this.value.substring(this.selectionEnd, e), this._finishDeduceEditorPosition(this.selectionEndPosition, t, 1);\n            const i = this.value.substring(this.selectionStart, e);\n            return -1 === i.indexOf(String.fromCharCode(8230)) ? this._finishDeduceEditorPosition(this.selectionStartPosition, i, 1) : (e = this.value.substring(e, this.selectionEnd), this._finishDeduceEditorPosition(this.selectionEndPosition, e, -1))\n        }\n        _finishDeduceEditorPosition(e, t, i) {\n            let n = 0,\n                r = -1;\n            for (; - 1 !== (r = t.indexOf(\"\\n\", r + 1));) n++;\n            return [e, i * t.length, n]\n        }\n        static selectedText(e) {\n            return new Un(e, 0, e.length, null, null)\n        }\n        static deduceInput(e, t, i) {\n            if (!e) return {\n                text: \"\",\n                replacePrevCharCnt: 0,\n                replaceNextCharCnt: 0,\n                positionDelta: 0\n            };\n            let n = e.value;\n            var r = e.selectionStart,\n                o = e.selectionEnd;\n            let s = t.value;\n            var a = t.selectionStart,\n                l = t.selectionEnd;\n            e = n.substring(o), t = s.substring(l), e = b.e(e, t);\n            if (s = s.substring(0, s.length - e), n = n.substring(0, n.length - e), t = n.substring(0, r), e = s.substring(0, a), e = b.d(t, e), s = s.substring(e), n = n.substring(e), a -= e, r -= e, l -= e, o -= e, i && a == l && 0 < n.length) {\n                let e = null;\n                if (a === s.length ? s.startsWith(n) && (e = s.substring(n.length)) : s.endsWith(n) && (e = s.substring(0, s.length - n.length)), null !== e && 0 < e.length && (/\\uFE0F/.test(e) || b.k(e))) return {\n                    text: e,\n                    replacePrevCharCnt: 0,\n                    replaceNextCharCnt: 0,\n                    positionDelta: 0\n                }\n            }\n            if (a == l) {\n                if (n === s && 0 == r && o === n.length && a === s.length && -1 === s.indexOf(\"\\n\") && b.l(s)) return {\n                    text: \"\",\n                    replacePrevCharCnt: 0,\n                    replaceNextCharCnt: 0,\n                    positionDelta: 0\n                };\n                return {\n                    text: s,\n                    replacePrevCharCnt: t.length - e,\n                    replaceNextCharCnt: 0,\n                    positionDelta: 0\n                }\n            }\n            return {\n                text: s,\n                replacePrevCharCnt: o - r,\n                replaceNextCharCnt: 0,\n                positionDelta: 0\n            }\n        }\n        static deduceAndroidCompositionInput(e, t) {\n            if (!e) return {\n                text: \"\",\n                replacePrevCharCnt: 0,\n                replaceNextCharCnt: 0,\n                positionDelta: 0\n            };\n            if (e.value === t.value) return {\n                text: \"\",\n                replacePrevCharCnt: 0,\n                replaceNextCharCnt: 0,\n                positionDelta: t.selectionEnd - e.selectionEnd\n            };\n            var i = Math.min(b.d(e.value, t.value), e.selectionEnd),\n                n = Math.min(b.e(e.value, t.value), e.value.length - e.selectionEnd),\n                r = e.value.substring(i, e.value.length - n);\n            n = t.value.substring(i, t.value.length - n), e.selectionStart, e = e.selectionEnd - i, t.selectionStart, i = t.selectionEnd - i;\n            return {\n                text: n,\n                replacePrevCharCnt: e,\n                replaceNextCharCnt: r.length - e,\n                positionDelta: i - n.length\n            }\n        }\n    }\n    Un.EMPTY = new Un(\"\", 0, 0, null, null);\n    class Kn {\n        static _getPageOfLine(e, t) {\n            return Math.floor((e - 1) / t)\n        }\n        static _getRangeForPage(e, t) {\n            return e *= t, new T.a(1 + e, 1, e + t + 1, 1)\n        }\n        static fromEditorSelection(e, t, i, n, r) {\n            var o = Kn._getPageOfLine(i.startLineNumber, n);\n            const s = Kn._getRangeForPage(o, n);\n            var a = Kn._getPageOfLine(i.endLineNumber, n);\n            const l = Kn._getRangeForPage(a, n);\n            var d = s.intersectRanges(new T.a(1, 1, i.startLineNumber, i.startColumn));\n            let c = t.getValueInRange(d, 1);\n            n = t.getLineCount(), d = t.getLineMaxColumn(n), d = l.intersectRanges(new T.a(i.endLineNumber, i.endColumn, n, d));\n            let h, u = t.getValueInRange(d, 1);\n            return h = o === a || o + 1 === a ? t.getValueInRange(i, 1) : (o = s.intersectRanges(i), a = l.intersectRanges(i), t.getValueInRange(o, 1) + String.fromCharCode(8230) + t.getValueInRange(a, 1)), r && (500 < c.length && (c = c.substring(c.length - 500, c.length)), 500 < u.length && (u = u.substring(0, 500)), 1e3 < h.length && (h = h.substring(0, 500) + String.fromCharCode(8230) + h.substring(h.length - 500, h.length))), new Un(c + h + u, c.length, c.length + h.length, new Re.a(i.startLineNumber, i.startColumn), new Re.a(i.endLineNumber, i.endColumn))\n        }\n    }\n    const $n = !((Wn = Wn || {}).Tap = \"-monaco-textarea-synthetic-tap\");\n    class qn {\n        constructor() {\n            this._lastState = null\n        }\n        set(e, t) {\n            this._lastState = {\n                lastCopiedValue: e,\n                data: t\n            }\n        }\n        get(e) {\n            return this._lastState && this._lastState.lastCopiedValue === e ? this._lastState.data : this._lastState = null\n        }\n    }\n    qn.INSTANCE = new qn;\n    class Gn extends v.a {\n        constructor(e, t) {\n            super(), this.textArea = t, this._onFocus = this._register(new D.b), this.onFocus = this._onFocus.event, this._onBlur = this._register(new D.b), this.onBlur = this._onBlur.event, this._onKeyDown = this._register(new D.b), this.onKeyDown = this._onKeyDown.event, this._onKeyUp = this._register(new D.b), this.onKeyUp = this._onKeyUp.event, this._onCut = this._register(new D.b), this.onCut = this._onCut.event, this._onPaste = this._register(new D.b), this.onPaste = this._onPaste.event, this._onType = this._register(new D.b), this.onType = this._onType.event, this._onCompositionStart = this._register(new D.b), this.onCompositionStart = this._onCompositionStart.event, this._onCompositionUpdate = this._register(new D.b), this.onCompositionUpdate = this._onCompositionUpdate.event, this._onCompositionEnd = this._register(new D.b), this.onCompositionEnd = this._onCompositionEnd.event, this._onSelectionChangeRequest = this._register(new D.b), this.onSelectionChangeRequest = this._onSelectionChangeRequest.event, this._host = e, this._textArea = this._register(new Zn(t)), this._asyncTriggerCut = this._register(new q.e(() => this._onCut.fire(), 0)), this._asyncFocusGainWriteScreenReaderContent = this._register(new q.e(() => this.writeScreenReaderContent(\"asyncFocusGain\"), 0)), this._textAreaState = Un.EMPTY, this._selectionChangeListener = null, this.writeScreenReaderContent(\"ctor\"), this._hasFocus = !1, this._isDoingComposition = !1, this._nextCommand = 0;\n            let i = null;\n            this._register(s.l(t.domNode, \"keydown\", e => {\n                (109 === e.keyCode || this._isDoingComposition && 1 === e.keyCode) && e.stopPropagation(), e.equals(9) && e.preventDefault(), i = e, this._onKeyDown.fire(e)\n            })), this._register(s.l(t.domNode, \"keyup\", e => {\n                this._onKeyUp.fire(e)\n            })), this._register(s.g(t.domNode, \"compositionstart\", e => {\n                if (!this._isDoingComposition) {\n                    if (this._isDoingComposition = !0, A.f && this._textAreaState.selectionStart === this._textAreaState.selectionEnd && 0 < this._textAreaState.selectionStart && this._textAreaState.value.substr(this._textAreaState.selectionStart - 1, 1) === e.data && (i && i.equals(109) && (\"ArrowRight\" === i.code || \"ArrowLeft\" === i.code) || Ri.g)) return this._textAreaState = new Un(this._textAreaState.value, this._textAreaState.selectionStart - 1, this._textAreaState.selectionEnd, this._textAreaState.selectionStartPosition ? new Re.a(this._textAreaState.selectionStartPosition.lineNumber, this._textAreaState.selectionStartPosition.column - 1) : null, this._textAreaState.selectionEndPosition), void this._onCompositionStart.fire({\n                        revealDeltaColumns: -1\n                    });\n                    Ri.e ? this._onCompositionStart.fire({\n                        revealDeltaColumns: -this._textAreaState.selectionStart\n                    }) : (this._setAndWriteTextAreaState(\"compositionstart\", Un.EMPTY), this._onCompositionStart.fire({\n                        revealDeltaColumns: 0\n                    }))\n                }\n            }));\n            const n = e => {\n                    var t = this._textAreaState,\n                        i = Un.readFromTextArea(this._textArea);\n                    return [i, Un.deduceInput(t, i, e)]\n                },\n                r = () => {\n                    var e = this._textAreaState,\n                        t = Un.readFromTextArea(this._textArea);\n                    return [t, Un.deduceAndroidCompositionInput(e, t)]\n                },\n                o = e => {\n                    var t = this._textAreaState;\n                    return [e = Un.selectedText(e), {\n                        text: e.value,\n                        replacePrevCharCnt: t.selectionEnd - t.selectionStart,\n                        replaceNextCharCnt: 0,\n                        positionDelta: 0\n                    }]\n                };\n            this._register(s.g(t.domNode, \"compositionupdate\", e => {\n                if (Ri.e) {\n                    const [t, i] = r();\n                    return this._textAreaState = t, this._onType.fire(i), void this._onCompositionUpdate.fire(e)\n                }\n                const [t, i] = o(e.data || \"\");\n                this._textAreaState = t, this._onType.fire(i), this._onCompositionUpdate.fire(e)\n            })), this._register(s.g(t.domNode, \"compositionend\", e => {\n                if (this._isDoingComposition) {\n                    if (this._isDoingComposition = !1, Ri.e) {\n                        const [e, t] = r();\n                        return this._textAreaState = e, this._onType.fire(t), void this._onCompositionEnd.fire()\n                    }\n                    const [t, i] = o(e.data || \"\");\n                    this._textAreaState = t, this._onType.fire(i), (Ri.f || Ri.g) && (this._textAreaState = Un.readFromTextArea(this._textArea)), this._onCompositionEnd.fire()\n                }\n            })), this._register(s.g(t.domNode, \"input\", () => {\n                if (this._textArea.setIgnoreSelectionChangeTime(\"received input event\"), !this._isDoingComposition) {\n                    const [e, t] = n(A.f);\n                    0 === t.replacePrevCharCnt && 1 === t.text.length && b.E(t.text.charCodeAt(0)) || (this._textAreaState = e, 0 === this._nextCommand ? \"\" === t.text && 0 === t.replacePrevCharCnt || this._onType.fire(t) : (\"\" === t.text && 0 === t.replacePrevCharCnt || this._firePaste(t.text, null), this._nextCommand = 0))\n                }\n            })), this._register(s.g(t.domNode, \"cut\", e => {\n                this._textArea.setIgnoreSelectionChangeTime(\"received cut event\"), this._ensureClipboardGetsEditorSelection(e), this._asyncTriggerCut.schedule()\n            })), this._register(s.g(t.domNode, \"copy\", e => {\n                this._ensureClipboardGetsEditorSelection(e)\n            })), this._register(s.g(t.domNode, \"paste\", e => {\n                var t;\n                this._textArea.setIgnoreSelectionChangeTime(\"received paste event\"), Yn.canUseTextData(e) ? ([t, e] = Yn.getTextData(e), \"\" !== t && this._firePaste(t, e)) : (this._textArea.getSelectionStart() !== this._textArea.getSelectionEnd() && this._setAndWriteTextAreaState(\"paste\", Un.EMPTY), this._nextCommand = 1)\n            })), this._register(s.g(t.domNode, \"focus\", () => {\n                var e = this._hasFocus;\n                this._setHasFocus(!0), Ri.h && !e && this._hasFocus && this._asyncFocusGainWriteScreenReaderContent.schedule()\n            })), this._register(s.g(t.domNode, \"blur\", () => {\n                this._isDoingComposition && (this._isDoingComposition = !1, this.writeScreenReaderContent(\"blurWithoutCompositionEnd\"), this._onCompositionEnd.fire()), this._setHasFocus(!1)\n            })), this._register(s.g(t.domNode, Wn.Tap, () => {\n                Ri.e && this._isDoingComposition && (this._isDoingComposition = !1, this.writeScreenReaderContent(\"tapWithoutCompositionEnd\"), this._onCompositionEnd.fire())\n            }))\n        }\n        _installSelectionChangeListener() {\n            let e = 0;\n            return s.g(document, \"selectionchange\", t => {\n                var i, n;\n                this._hasFocus && (this._isDoingComposition || Ri.f && (i = (n = Date.now()) - e, e = n, i < 5 || (i = n - this._textArea.getIgnoreSelectionChangeTime(), this._textArea.resetSelectionChangeTime(), i < 100 || this._textAreaState.selectionStartPosition && this._textAreaState.selectionEndPosition && (n = this._textArea.getValue(), this._textAreaState.value === n && (i = this._textArea.getSelectionStart(), n = this._textArea.getSelectionEnd(), this._textAreaState.selectionStart === i && this._textAreaState.selectionEnd === n || (i = this._textAreaState.deduceEditorPosition(i), i = this._host.deduceModelPosition(i[0], i[1], i[2]), n = this._textAreaState.deduceEditorPosition(n), n = this._host.deduceModelPosition(n[0], n[1], n[2]), n = new Hi.a(i.lineNumber, i.column, n.lineNumber, n.column), this._onSelectionChangeRequest.fire(n)))))))\n            })\n        }\n        dispose() {\n            super.dispose(), this._selectionChangeListener && (this._selectionChangeListener.dispose(), this._selectionChangeListener = null)\n        }\n        focusTextArea() {\n            this._setHasFocus(!0), this.refreshFocusState()\n        }\n        isFocused() {\n            return this._hasFocus\n        }\n        refreshFocusState() {\n            var e = s.C(this.textArea.domNode);\n            e ? this._setHasFocus(e.activeElement === this.textArea.domNode) : s.K(this.textArea.domNode) ? this._setHasFocus(document.activeElement === this.textArea.domNode) : this._setHasFocus(!1)\n        }\n        _setHasFocus(e) {\n            this._hasFocus !== e && (this._hasFocus = e, this._selectionChangeListener && (this._selectionChangeListener.dispose(), this._selectionChangeListener = null), this._hasFocus && (this._selectionChangeListener = this._installSelectionChangeListener()), this._hasFocus && this.writeScreenReaderContent(\"focusgain\"), (this._hasFocus ? this._onFocus : this._onBlur).fire())\n        }\n        _setAndWriteTextAreaState(e, t) {\n            (t = this._hasFocus ? t : t.collapseSelection()).writeToTextArea(e, this._textArea, this._hasFocus), this._textAreaState = t\n        }\n        writeScreenReaderContent(e) {\n            this._isDoingComposition || this._setAndWriteTextAreaState(e, this._host.getScreenReaderContent(this._textAreaState))\n        }\n        _ensureClipboardGetsEditorSelection(e) {\n            const t = this._host.getDataToCopy(Yn.canUseTextData(e));\n            var i = {\n                version: 1,\n                isFromEmptySelection: t.isFromEmptySelection,\n                multicursorText: t.multicursorText,\n                mode: t.mode\n            };\n            qn.INSTANCE.set(Ri.g ? t.text.replace(/\\r\\n/g, \"\\n\") : t.text, i), Yn.canUseTextData(e) ? Yn.setTextData(e, t.text, t.html, i) : this._setAndWriteTextAreaState(\"copy or cut\", Un.selectedText(t.text))\n        }\n        _firePaste(e, t) {\n            t = t || qn.INSTANCE.get(e), this._onPaste.fire({\n                text: e,\n                metadata: t\n            })\n        }\n    }\n    class Yn {\n        static canUseTextData(e) {\n            return !!e.clipboardData\n        }\n        static getTextData(e) {\n            if (e.clipboardData) {\n                e.preventDefault();\n                var t = e.clipboardData.getData(Hn.a.text);\n                let i = null;\n                if (\"string\" == typeof(e = e.clipboardData.getData(\"vscode-editor-data\"))) try {\n                    i = JSON.parse(e), 1 !== i.version && (i = null)\n                } catch (e) {}\n                return [t, i]\n            }\n            throw new Error(\"ClipboardEventUtils.getTextData: Cannot use text data!\")\n        }\n        static setTextData(e, t, i, n) {\n            if (e.clipboardData) return e.clipboardData.setData(Hn.a.text, t), \"string\" == typeof i && e.clipboardData.setData(\"text/html\", i), e.clipboardData.setData(\"vscode-editor-data\", JSON.stringify(n)), void e.preventDefault();\n            throw new Error(\"ClipboardEventUtils.setTextData: Cannot use text data!\")\n        }\n    }\n    class Zn extends v.a {\n        constructor(e) {\n            super(), this._actual = e, this._ignoreSelectionChangeTime = 0\n        }\n        setIgnoreSelectionChangeTime(e) {\n            this._ignoreSelectionChangeTime = Date.now()\n        }\n        getIgnoreSelectionChangeTime() {\n            return this._ignoreSelectionChangeTime\n        }\n        resetSelectionChangeTime() {\n            this._ignoreSelectionChangeTime = 0\n        }\n        getValue() {\n            return this._actual.domNode.value\n        }\n        setValue(e, t) {\n            const i = this._actual.domNode;\n            i.value !== t && (this.setIgnoreSelectionChangeTime(\"setValue\"), i.value = t)\n        }\n        getSelectionStart() {\n            return \"backward\" === this._actual.domNode.selectionDirection ? this._actual.domNode.selectionEnd : this._actual.domNode.selectionStart\n        }\n        getSelectionEnd() {\n            return \"backward\" === this._actual.domNode.selectionDirection ? this._actual.domNode.selectionStart : this._actual.domNode.selectionEnd\n        }\n        setSelectionRange(e, t, i) {\n            const n = this._actual.domNode;\n            let r = null;\n            r = ((l = s.C(n)) || document).activeElement;\n            var o = r === n,\n                a = n.selectionStart,\n                l = n.selectionEnd;\n            if (o && a === t && l === i) Ri.g && window.parent !== window && n.focus();\n            else {\n                if (o) return this.setIgnoreSelectionChangeTime(\"setSelectionRange\"), n.setSelectionRange(t, i), void(Ri.g && window.parent !== window && n.focus());\n                try {\n                    var d = s.Q(n);\n                    this.setIgnoreSelectionChangeTime(\"setSelectionRange\"), n.focus(), n.setSelectionRange(t, i), s.O(n, d)\n                } catch (e) {}\n            }\n        }\n    }\n    class Xn extends jn {\n        constructor(e, t, i) {\n            super(e, t, i), this._register(Ki.b.addTarget(this.viewHelper.linesContentDomNode)), this._register(s.g(this.viewHelper.linesContentDomNode, Ki.a.Tap, e => this.onTap(e))), this._register(s.g(this.viewHelper.linesContentDomNode, Ki.a.Change, e => this.onChange(e))), this._register(s.g(this.viewHelper.linesContentDomNode, Ki.a.Contextmenu, e => this._onContextMenu(new Qi(e, this.viewHelper.viewDomNode), !1))), this._lastPointerType = \"mouse\", this._register(s.g(this.viewHelper.linesContentDomNode, \"pointerdown\", e => {\n                e = e.pointerType, this._lastPointerType = \"mouse\" === e ? \"mouse\" : \"touch\" === e ? \"touch\" : \"pen\"\n            }));\n            const n = new en(this.viewHelper.viewDomNode);\n            this._register(n.onPointerMoveThrottled(this.viewHelper.viewDomNode, e => this._onMouseMove(e), Fn(this.mouseTargetFactory), jn.MOUSE_MOVE_MINIMUM_TIME)), this._register(n.onPointerUp(this.viewHelper.viewDomNode, e => this._onMouseUp(e))), this._register(n.onPointerLeave(this.viewHelper.viewDomNode, e => this._onMouseLeave(e))), this._register(n.onPointerDown(this.viewHelper.viewDomNode, e => this._onMouseDown(e)))\n        }\n        onTap(e) {\n            var t;\n            e.initialTarget && this.viewHelper.linesContentDomNode.contains(e.initialTarget) && (e.preventDefault(), this.viewHelper.focusTextArea(), (t = this._createMouseTarget(new Qi(e, this.viewHelper.viewDomNode), !1)).position && this.viewController.dispatchMouse({\n                position: t.position,\n                mouseColumn: t.position.column,\n                startedOnLineNumbers: !1,\n                mouseDownCount: e.tapCount,\n                inSelectionMode: !1,\n                altKey: !1,\n                ctrlKey: !1,\n                metaKey: !1,\n                shiftKey: !1,\n                leftButton: !1,\n                middleButton: !1\n            }))\n        }\n        onChange(e) {\n            \"touch\" === this._lastPointerType && this._context.model.deltaScrollNow(-e.translationX, -e.translationY)\n        }\n        _onMouseDown(e) {\n            \"touch\" !== e.browserEvent.pointerType && super._onMouseDown(e)\n        }\n    }\n    class Qn extends jn {\n        constructor(e, t, i) {\n            super(e, t, i), this._register(Ki.b.addTarget(this.viewHelper.linesContentDomNode)), this._register(s.g(this.viewHelper.linesContentDomNode, Ki.a.Tap, e => this.onTap(e))), this._register(s.g(this.viewHelper.linesContentDomNode, Ki.a.Change, e => this.onChange(e))), this._register(s.g(this.viewHelper.linesContentDomNode, Ki.a.Contextmenu, e => this._onContextMenu(new Qi(e, this.viewHelper.viewDomNode), !1)))\n        }\n        onTap(e) {\n            if (e.preventDefault(), this.viewHelper.focusTextArea(), (e = this._createMouseTarget(new Qi(e, this.viewHelper.viewDomNode), !1)).position) {\n                const t = document.createEvent(\"CustomEvent\");\n                t.initEvent(Wn.Tap, !1, !0), this.viewHelper.dispatchTextAreaEvent(t), this.viewController.moveTo(e.position)\n            }\n        }\n        onChange(e) {\n            this._context.model.deltaScrollNow(-e.translationX, -e.translationY)\n        }\n    }\n    class Jn extends v.a {\n        constructor(e, t, i) {\n            super(), A.c && zn.a.pointerEvents ? this.handler = this._register(new Xn(e, t, i)) : window.TouchEvent ? this.handler = this._register(new Qn(e, t, i)) : this.handler = this._register(new jn(e, t, i))\n        }\n        getTargetAtClientPoint(e, t) {\n            return this.handler.getTargetAtClientPoint(e, t)\n        }\n    }\n    i(390), i(392);\n    class er extends nn {}\n    var tr = i(41),\n        ir = i(23);\n    class nr extends er {\n        constructor(e) {\n            super(), this._context = e, this._readConfig(), this._lastCursorModelPosition = new Re.a(1, 1), this._renderResult = null, this._activeLineNumber = 1, this._context.addEventHandler(this)\n        }\n        _readConfig() {\n            const e = this._context.configuration.options;\n            this._lineHeight = e.get(58);\n            var t = e.get(59);\n            this._renderLineNumbers = t.renderType, this._renderCustomLineNumbers = t.renderFn, this._renderFinalNewline = e.get(83), t = e.get(129), this._lineNumbersLeft = t.lineNumbersLeft, this._lineNumbersWidth = t.lineNumbersWidth\n        }\n        dispose() {\n            this._context.removeEventHandler(this), this._renderResult = null, super.dispose()\n        }\n        on配置Changed(e) {\n            return this._readConfig(), !0\n        }\n        onCursorStateChanged(e) {\n            e = e.selections[0].getPosition(), this._lastCursorModelPosition = this._context.model.coordinatesConverter.convertViewPositionToModelPosition(e);\n            let t = !1;\n            return this._activeLineNumber !== e.lineNumber && (this._activeLineNumber = e.lineNumber, t = !0), 2 !== this._renderLineNumbers && 3 !== this._renderLineNumbers || (t = !0), t\n        }\n        onFlushed(e) {\n            return !0\n        }\n        onLinesChanged(e) {\n            return !0\n        }\n        onLinesDeleted(e) {\n            return !0\n        }\n        onLinesInserted(e) {\n            return !0\n        }\n        onScrollChanged(e) {\n            return e.scrollTopChanged\n        }\n        onZonesChanged(e) {\n            return !0\n        }\n        _getLineRenderLineNumber(e) {\n            var t = this._context.model.coordinatesConverter.convertViewPositionToModelPosition(new Re.a(e, 1));\n            return 1 !== t.column ? \"\" : (e = t.lineNumber, this._renderCustomLineNumbers ? this._renderCustomLineNumbers(e) : 2 !== this._renderLineNumbers ? 3 !== this._renderLineNumbers || this._lastCursorModelPosition.lineNumber === e || e % 10 == 0 ? String(e) : \"\" : 0 === (t = Math.abs(this._lastCursorModelPosition.lineNumber - e)) ? '<span class=\"relative-current-line-number\">' + e + \"</span>\" : String(t))\n        }\n        prepareRender(e) {\n            if (0 !== this._renderLineNumbers) {\n                var t = A.d ? this._lineHeight % 2 == 0 ? \" lh-even\" : \" lh-odd\" : \"\",\n                    i = e.visibleRange.startLineNumber,\n                    n = e.visibleRange.endLineNumber,\n                    r = '<div class=\"' + nr.CLASS_NAME + t + '\" style=\"left:' + this._lineNumbersLeft + \"px;width:\" + this._lineNumbersWidth + 'px;\">',\n                    o = this._context.model.getLineCount();\n                const l = [];\n                for (let e = i; e <= n; e++) {\n                    var s, a = e - i;\n                    (this._renderFinalNewline || e !== o || 0 !== this._context.model.getLineLength(e)) && (s = this._getLineRenderLineNumber(e)) ? e === this._activeLineNumber ? l[a] = '<div class=\"active-line-number ' + nr.CLASS_NAME + t + '\" style=\"left:' + this._lineNumbersLeft + \"px;width:\" + this._lineNumbersWidth + 'px;\">' + s + \"</div>\" : l[a] = r + s + \"</div>\": l[a] = \"\"\n                }\n                this._renderResult = l\n            } else this._renderResult = null\n        }\n        render(e, t) {\n            return this._renderResult ? (e = t - e) < 0 || e >= this._renderResult.length ? \"\" : this._renderResult[e] : \"\"\n        }\n    }\n    nr.CLASS_NAME = \"line-numbers\", Object(ir.f)((e, t) => {\n        var i = e.getColor(tr.A);\n        i && t.addRule(`.monaco-editor .line-numbers { color: ${i}; }`), (e = e.getColor(tr.b)) && t.addRule(`.monaco-editor .line-numbers.active-line-number { color: ${e}; }`)\n    });\n    class rr extends rn {\n        constructor(e) {\n            super(e);\n            const t = this._context.configuration.options;\n            e = t.get(129), this._canUseLayerHinting = !t.get(28), this._contentLeft = e.contentLeft, this._glyphMarginLeft = e.glyphMarginLeft, this._glyphMarginWidth = e.glyphMarginWidth, this._domNode = Object(Ui.b)(document.createElement(\"div\")), this._domNode.setClassName(rr.OUTER_CLASS_NAME), this._domNode.setPosition(\"absolute\"), this._domNode.setAttribute(\"role\", \"presentation\"), this._domNode.setAttribute(\"aria-hidden\", \"true\"), this._glyphMarginBackgroundDomNode = Object(Ui.b)(document.createElement(\"div\")), this._glyphMarginBackgroundDomNode.setClassName(rr.CLASS_NAME), this._domNode.appendChild(this._glyphMarginBackgroundDomNode)\n        }\n        dispose() {\n            super.dispose()\n        }\n        getDomNode() {\n            return this._domNode\n        }\n        on配置Changed(e) {\n            const t = this._context.configuration.options;\n            var i = t.get(129);\n            return this._canUseLayerHinting = !t.get(28), this._contentLeft = i.contentLeft, this._glyphMarginLeft = i.glyphMarginLeft, this._glyphMarginWidth = i.glyphMarginWidth, !0\n        }\n        onScrollChanged(e) {\n            return super.onScrollChanged(e) || e.scrollTopChanged\n        }\n        prepareRender(e) {}\n        render(e) {\n            this._domNode.setLayerHinting(this._canUseLayerHinting), this._domNode.setContain(\"strict\");\n            var t = e.scrollTop - e.bigNumbersDelta;\n            this._domNode.setTop(-t), e = Math.min(e.scrollHeight, 1e6), this._domNode.setHeight(e), this._domNode.setWidth(this._contentLeft), this._glyphMarginBackgroundDomNode.setLeft(this._glyphMarginLeft), this._glyphMarginBackgroundDomNode.setWidth(this._glyphMarginWidth), this._glyphMarginBackgroundDomNode.setHeight(e)\n        }\n    }\n    rr.CLASS_NAME = \"glyph-margin\", rr.OUTER_CLASS_NAME = \"margin\";\n    var or = i(122);\n    i(394);\n    const sr = \"monaco-mouse-cursor-text\";\n    class ar {\n        constructor(e, t, i) {\n            this._visibleTextAreaBrand = void 0, this.top = e, this.left = t, this.width = i\n        }\n        setWidth(e) {\n            return new ar(this.top, this.left, e)\n        }\n    }\n    const lr = Ri.g;\n    class dr extends rn {\n        constructor(e, t, i) {\n            super(e), this._primaryCursorPosition = new Re.a(1, 1), this._primaryCursorVisibleRange = null, this._viewController = t, this._viewHelper = i, this._scrollLeft = 0, this._scrollTop = 0;\n            const n = this._context.configuration.options;\n            i = n.get(129), this._setAccessibilityOptions(n), this._contentLeft = i.contentLeft, this._contentWidth = i.contentWidth, this._contentHeight = i.height, this._fontInfo = n.get(43), this._lineHeight = n.get(58), this._emptySelectionClipboard = n.get(32), this._copyWithSyntaxHighlighting = n.get(21), this._visibleTextArea = null, this._selections = [new Hi.a(1, 1, 1, 1)], this._modelSelections = [new Hi.a(1, 1, 1, 1)], this._lastRenderPosition = null, this.textArea = Object(Ui.b)(document.createElement(\"textarea\")), on.write(this.textArea, 6), this.textArea.setClassName(\"inputarea \" + sr), this.textArea.setAttribute(\"wrap\", \"off\"), 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(\"tabindex\", String(n.get(111))), this.textArea.setAttribute(\"role\", \"textbox\"), this.textArea.setAttribute(\"aria-roledescription\", yt.a(\"editor\", \"editor\")), this.textArea.setAttribute(\"aria-multiline\", \"true\"), this.textArea.setAttribute(\"aria-haspopup\", \"false\"), this.textArea.setAttribute(\"aria-autocomplete\", \"both\"), n.get(30) && n.get(80) && this.textArea.setAttribute(\"readonly\", \"true\"), this.textAreaCover = Object(Ui.b)(document.createElement(\"div\")), this.textAreaCover.setPosition(\"absolute\");\n            const r = {\n                getLineCount: () => this._context.model.getLineCount(),\n                getLineMaxColumn: e => this._context.model.getLineMaxColumn(e),\n                getValueInRange: (e, t) => this._context.model.getValueInRange(e, t)\n            };\n            i = {\n                getDataToCopy: e => {\n                    const t = this._context.model.getPlainTextToCopy(this._modelSelections, this._emptySelectionClipboard, A.i);\n                    var i = this._context.model.getEOL(),\n                        n = this._emptySelectionClipboard && 1 === this._modelSelections.length && this._modelSelections[0].isEmpty(),\n                        r = Array.isArray(t) ? t : null;\n                    i = Array.isArray(t) ? t.join(i) : t;\n                    let o = void 0,\n                        s = null;\n                    return e && (!($n || this._copyWithSyntaxHighlighting && i.length < 65536) || (e = this._context.model.getRichTextToCopy(this._modelSelections, this._emptySelectionClipboard)) && (o = e.html, s = e.mode)), {\n                        isFromEmptySelection: n,\n                        multicursorText: r,\n                        text: i,\n                        html: o,\n                        mode: s\n                    }\n                },\n                getScreenReaderContent: e => {\n                    if (1 === this._accessibilitySupport) {\n                        if (A.f) {\n                            const e = this._selections[0];\n                            if (e.isEmpty()) {\n                                var t = e.getStartPosition();\n                                let i = this._getWordBeforePosition(t);\n                                if (0 === i.length && (i = this._getCharacterBeforePosition(t)), 0 < i.length) return new Un(i, i.length, i.length, t, t)\n                            }\n                        }\n                        return Un.EMPTY\n                    }\n                    if (Ri.e) {\n                        const e = this._selections[0];\n                        if (e.isEmpty()) {\n                            var i = e.getStartPosition(),\n                                [n, t] = this._getAndroidWordAtPosition(i);\n                            if (0 < n.length) return new Un(n, t, t, i, i)\n                        }\n                        return Un.EMPTY\n                    }\n                    return Kn.fromEditorSelection(e, r, this._selections[0], this._accessibilityPageSize, 0 === this._accessibilitySupport)\n                },\n                deduceModelPosition: (e, t, i) => this._context.model.deduceModelPositionRelativeToViewPosition(e, t, i)\n            }, this._textAreaInput = this._register(new Gn(i, this.textArea)), this._register(this._textAreaInput.onKeyDown(e => {\n                this._viewController.emitKeyDown(e)\n            })), this._register(this._textAreaInput.onKeyUp(e => {\n                this._viewController.emitKeyUp(e)\n            })), this._register(this._textAreaInput.onPaste(e => {\n                let t = !1,\n                    i = null,\n                    n = null;\n                e.metadata && (t = this._emptySelectionClipboard && !!e.metadata.isFromEmptySelection, i = void 0 !== e.metadata.multicursorText ? e.metadata.multicursorText : null, n = e.metadata.mode), this._viewController.paste(e.text, t, i, n)\n            })), this._register(this._textAreaInput.onCut(() => {\n                this._viewController.cut()\n            })), this._register(this._textAreaInput.onType(e => {\n                e.replacePrevCharCnt || e.replaceNextCharCnt || e.positionDelta ? this._viewController.compositionType(e.text, e.replacePrevCharCnt, e.replaceNextCharCnt, e.positionDelta) : this._viewController.type(e.text)\n            })), this._register(this._textAreaInput.onSelectionChangeRequest(e => {\n                this._viewController.setSelection(e)\n            })), this._register(this._textAreaInput.onCompositionStart(e => {\n                var t = this._selections[0].startLineNumber;\n                e = this._selections[0].startColumn + e.revealDeltaColumns;\n                this._context.model.revealRange(\"keyboard\", !0, new T.a(t, e, t, e), 0, 1), (e = this._viewHelper.visibleRangeForPositionRelativeToEditor(t, e)) && (this._visibleTextArea = new ar(this._context.viewLayout.getVerticalOffsetForLineNumber(t), e.left, lr ? 0 : 1), this._render()), this.textArea.setClassName(`inputarea ${sr} ime-input`), this._viewController.compositionStart(), this._context.model.onCompositionStart()\n            })), this._register(this._textAreaInput.onCompositionUpdate(e => {\n                this._visibleTextArea && (this._visibleTextArea = this._visibleTextArea.setWidth(function(e, t) {\n                    const i = document.createElement(\"canvas\").getContext(\"2d\");\n                    return i.font = function(e) {\n                        return `normal normal ${e.fontWeight} ${e.fontSize}px / ${e.lineHeight}px ${e.fontFamily}`\n                    }(t), e = i.measureText(e), Ri.g ? e.width + 2 : e.width\n                }(e.data, this._fontInfo)), this._render())\n            })), this._register(this._textAreaInput.onCompositionEnd(() => {\n                this._visibleTextArea = null, this._render(), this.textArea.setClassName(\"inputarea \" + sr), this._viewController.compositionEnd(), this._context.model.onCompositionEnd()\n            })), this._register(this._textAreaInput.onFocus(() => {\n                this._context.model.setHasFocus(!0)\n            })), this._register(this._textAreaInput.onBlur(() => {\n                this._context.model.setHasFocus(!1)\n            }))\n        }\n        dispose() {\n            super.dispose()\n        }\n        _getAndroidWordAtPosition(e) {\n            var t;\n            const i = this._context.model.getLineContent(e.lineNumber),\n                n = Object(or.a)('`~!@#$%^&*()-=+[{]}\\\\|;:\",.<>/?');\n            let r = !0,\n                o = e.column,\n                s = !0,\n                a = e.column,\n                l = 0;\n            for (; l < 50 && (r || s);) r && o <= 1 && (r = !1), r && (t = i.charCodeAt(o - 2), 0 !== n.get(t) ? r = !1 : o--), s && a > i.length && (s = !1), s && (t = i.charCodeAt(a - 1), 0 !== n.get(t) ? s = !1 : a++), l++;\n            return [i.substring(o - 1, a - 1), e.column - o]\n        }\n        _getWordBeforePosition(e) {\n            const t = this._context.model.getLineContent(e.lineNumber),\n                i = Object(or.a)(this._context.configuration.options.get(115));\n            let n = e.column,\n                r = 0;\n            for (; 1 < n;) {\n                var o = t.charCodeAt(n - 2);\n                if (0 !== i.get(o) || 50 < r) return t.substring(n - 1, e.column - 1);\n                r++, n--\n            }\n            return t.substring(0, e.column - 1)\n        }\n        _getCharacterBeforePosition(e) {\n            if (1 < e.column) {\n                const t = this._context.model.getLineContent(e.lineNumber).charAt(e.column - 2);\n                if (!b.E(t.charCodeAt(0))) return t\n            }\n            return \"\"\n        }\n        _getAriaLabel(e) {\n            return 1 === e.get(2) ? yt.a(\"accessibilityOffAriaLabel\", \"The editor is not accessible at this time. Press {0} for options.\", A.d ? \"Shift+Alt+F1\" : \"Alt+F1\") : e.get(4)\n        }\n        _setAccessibilityOptions(e) {\n            this._accessibilitySupport = e.get(2), e = e.get(3), 2 === this._accessibilitySupport && e === n.g.accessibilityPageSize.defaultValue ? this._accessibilityPageSize = 500 : this._accessibilityPageSize = e\n        }\n        on配置Changed(e) {\n            const t = this._context.configuration.options;\n            var i = t.get(129);\n            return this._setAccessibilityOptions(t), this._contentLeft = i.contentLeft, this._contentWidth = i.contentWidth, this._contentHeight = i.height, this._fontInfo = t.get(43), this._lineHeight = t.get(58), this._emptySelectionClipboard = t.get(32), this._copyWithSyntaxHighlighting = t.get(21), this.textArea.setAttribute(\"aria-label\", this._getAriaLabel(t)), this.textArea.setAttribute(\"tabindex\", String(t.get(111))), (e.hasChanged(30) || e.hasChanged(80)) && (t.get(30) && t.get(80) ? this.textArea.setAttribute(\"readonly\", \"true\") : this.textArea.removeAttribute(\"readonly\")), e.hasChanged(2) && this._textAreaInput.writeScreenReaderContent(\"strategy changed\"), !0\n        }\n        onCursorStateChanged(e) {\n            return this._selections = e.selections.slice(0), this._modelSelections = e.modelSelections.slice(0), this._textAreaInput.writeScreenReaderContent(\"selection changed\"), !0\n        }\n        onDecorationsChanged(e) {\n            return !0\n        }\n        onFlushed(e) {\n            return !0\n        }\n        onLinesChanged(e) {\n            return !0\n        }\n        onLinesDeleted(e) {\n            return !0\n        }\n        onLinesInserted(e) {\n            return !0\n        }\n        onScrollChanged(e) {\n            return this._scrollLeft = e.scrollLeft, this._scrollTop = e.scrollTop, !0\n        }\n        onZonesChanged(e) {\n            return !0\n        }\n        isFocused() {\n            return this._textAreaInput.isFocused()\n        }\n        focusTextArea() {\n            this._textAreaInput.focusTextArea()\n        }\n        getLastRenderData() {\n            return this._lastRenderPosition\n        }\n        setAriaOptions(e) {\n            e.activeDescendant ? (this.textArea.setAttribute(\"aria-haspopup\", \"true\"), this.textArea.setAttribute(\"aria-autocomplete\", \"list\"), this.textArea.setAttribute(\"aria-activedescendant\", e.activeDescendant)) : (this.textArea.setAttribute(\"aria-haspopup\", \"false\"), this.textArea.setAttribute(\"aria-autocomplete\", \"both\"), this.textArea.removeAttribute(\"aria-activedescendant\")), e.role && this.textArea.setAttribute(\"role\", e.role)\n        }\n        prepareRender(e) {\n            this._primaryCursorPosition = new Re.a(this._selections[0].positionLineNumber, this._selections[0].positionColumn), this._primaryCursorVisibleRange = e.visibleRangeForPosition(this._primaryCursorPosition)\n        }\n        render(e) {\n            this._textAreaInput.writeScreenReaderContent(\"render\"), this._render()\n        }\n        _render() {\n            var e, t;\n            this._visibleTextArea ? this._renderInsideEditor(null, this._visibleTextArea.top - this._scrollTop, this._contentLeft + this._visibleTextArea.left - this._scrollLeft, this._visibleTextArea.width, this._lineHeight) : !this._primaryCursorVisibleRange || (e = this._contentLeft + this._primaryCursorVisibleRange.left - this._scrollLeft) < this._contentLeft || e > this._contentLeft + this._contentWidth || (t = this._context.viewLayout.getVerticalOffsetForLineNumber(this._selections[0].positionLineNumber) - this._scrollTop) < 0 || t > this._contentHeight ? this._renderAtTopLeft() : A.f ? this._renderInsideEditor(this._primaryCursorPosition, t, e, lr ? 0 : 1, this._lineHeight) : this._renderInsideEditor(this._primaryCursorPosition, t, e, lr ? 0 : 1, lr ? 0 : 1)\n        }\n        _renderInsideEditor(e, t, i, n, r) {\n            this._lastRenderPosition = e;\n            const o = this.textArea,\n                s = this.textAreaCover;\n            zi.applyFontInfo(o, this._fontInfo), o.setTop(t), o.setLeft(i), o.setWidth(n), o.setHeight(r), s.setTop(0), s.setLeft(0), s.setWidth(0), s.setHeight(0)\n        }\n        _renderAtTopLeft() {\n            this._lastRenderPosition = null;\n            const e = this.textArea,\n                t = this.textAreaCover;\n            if (zi.applyFontInfo(e, this._fontInfo), e.setTop(0), e.setLeft(0), t.setTop(0), t.setLeft(0), lr) return e.setWidth(0), e.setHeight(0), t.setWidth(0), void t.setHeight(0);\n            e.setWidth(1), e.setHeight(1), t.setWidth(1), t.setHeight(1);\n            const i = this._context.configuration.options;\n            i.get(49) ? t.setClassName(\"monaco-editor-background textAreaCover \" + rr.OUTER_CLASS_NAME) : 0 !== i.get(59).renderType ? t.setClassName(\"monaco-editor-background textAreaCover \" + nr.CLASS_NAME) : t.setClassName(\"monaco-editor-background textAreaCover\")\n        }\n    }\n    var cr = i(103);\n    class hr {\n        constructor(e, t, i, n) {\n            this.configuration = e, this.viewModel = t, this.userInputEvents = i, this.commandDelegate = n\n        }\n        paste(e, t, i, n) {\n            this.commandDelegate.paste(e, t, i, n)\n        }\n        type(e) {\n            this.commandDelegate.type(e)\n        }\n        compositionType(e, t, i, n) {\n            this.commandDelegate.compositionType(e, t, i, n)\n        }\n        compositionStart() {\n            this.commandDelegate.startComposition()\n        }\n        compositionEnd() {\n            this.commandDelegate.endComposition()\n        }\n        cut() {\n            this.commandDelegate.cut()\n        }\n        setSelection(e) {\n            cr.a.SetSelection.runCoreEditorCommand(this.viewModel, {\n                source: \"keyboard\",\n                selection: e\n            })\n        }\n        _validateViewColumn(e) {\n            var t = this.viewModel.getLineMinColumn(e.lineNumber);\n            return e.column < t ? new Re.a(e.lineNumber, t) : e\n        }\n        _hasMulticursorModifier(e) {\n            switch (this.configuration.options.get(69)) {\n                case \"altKey\":\n                    return e.altKey;\n                case \"ctrlKey\":\n                    return e.ctrlKey;\n                case \"metaKey\":\n                    return e.metaKey;\n                default:\n                    return !1\n            }\n        }\n        _hasNonMulticursorModifier(e) {\n            switch (this.configuration.options.get(69)) {\n                case \"altKey\":\n                    return e.ctrlKey || e.metaKey;\n                case \"ctrlKey\":\n                    return e.altKey || e.metaKey;\n                case \"metaKey\":\n                    return e.ctrlKey || e.altKey;\n                default:\n                    return !1\n            }\n        }\n        dispatchMouse(e) {\n            const t = this.configuration.options;\n            var i = A.d && t.get(95),\n                n = t.get(18);\n            e.middleButton && !i ? this._columnSelect(e.position, e.mouseColumn, e.inSelectionMode) : e.startedOnLineNumbers ? this._hasMulticursorModifier(e) ? e.inSelectionMode ? this._lastCursorLineSelect(e.position) : this._createCursor(e.position, !0) : e.inSelectionMode ? this._lineSelectDrag(e.position) : this._lineSelect(e.position) : 4 <= e.mouseDownCount ? this._selectAll() : 3 === e.mouseDownCount ? this._hasMulticursorModifier(e) ? e.inSelectionMode ? this._lastCursorLineSelectDrag(e.position) : this._lastCursorLineSelect(e.position) : e.inSelectionMode ? this._lineSelectDrag(e.position) : this._lineSelect(e.position) : 2 === e.mouseDownCount ? this._hasMulticursorModifier(e) ? this._lastCursorWordSelect(e.position) : e.inSelectionMode ? this._wordSelectDrag(e.position) : this._wordSelect(e.position) : this._hasMulticursorModifier(e) ? this._hasNonMulticursorModifier(e) || (e.shiftKey ? this._columnSelect(e.position, e.mouseColumn, !0) : e.inSelectionMode ? this._lastCursorMoveToSelect(e.position) : this._createCursor(e.position, !1)) : e.inSelectionMode ? e.altKey || n ? this._columnSelect(e.position, e.mouseColumn, !0) : this._moveToSelect(e.position) : this.moveTo(e.position)\n        }\n        _usualArgs(e) {\n            return e = this._validateViewColumn(e), {\n                source: \"mouse\",\n                position: this._convertViewToModelPosition(e),\n                viewPosition: e\n            }\n        }\n        moveTo(e) {\n            cr.a.MoveTo.runCoreEditorCommand(this.viewModel, this._usualArgs(e))\n        }\n        _moveToSelect(e) {\n            cr.a.MoveToSelect.runCoreEditorCommand(this.viewModel, this._usualArgs(e))\n        }\n        _columnSelect(e, t, i) {\n            e = this._validateViewColumn(e), cr.a.ColumnSelect.runCoreEditorCommand(this.viewModel, {\n                source: \"mouse\",\n                position: this._convertViewToModelPosition(e),\n                viewPosition: e,\n                mouseColumn: t,\n                doColumnSelect: i\n            })\n        }\n        _createCursor(e, t) {\n            e = this._validateViewColumn(e), cr.a.CreateCursor.runCoreEditorCommand(this.viewModel, {\n                source: \"mouse\",\n                position: this._convertViewToModelPosition(e),\n                viewPosition: e,\n                wholeLine: t\n            })\n        }\n        _lastCursorMoveToSelect(e) {\n            cr.a.LastCursorMoveToSelect.runCoreEditorCommand(this.viewModel, this._usualArgs(e))\n        }\n        _wordSelect(e) {\n            cr.a.WordSelect.runCoreEditorCommand(this.viewModel, this._usualArgs(e))\n        }\n        _wordSelectDrag(e) {\n            cr.a.WordSelectDrag.runCoreEditorCommand(this.viewModel, this._usualArgs(e))\n        }\n        _lastCursorWordSelect(e) {\n            cr.a.LastCursorWordSelect.runCoreEditorCommand(this.viewModel, this._usualArgs(e))\n        }\n        _lineSelect(e) {\n            cr.a.LineSelect.runCoreEditorCommand(this.viewModel, this._usualArgs(e))\n        }\n        _lineSelectDrag(e) {\n            cr.a.LineSelectDrag.runCoreEditorCommand(this.viewModel, this._usualArgs(e))\n        }\n        _lastCursorLineSelect(e) {\n            cr.a.LastCursorLineSelect.runCoreEditorCommand(this.viewModel, this._usualArgs(e))\n        }\n        _lastCursorLineSelectDrag(e) {\n            cr.a.LastCursorLineSelectDrag.runCoreEditorCommand(this.viewModel, this._usualArgs(e))\n        }\n        _selectAll() {\n            cr.a.SelectAll.runCoreEditorCommand(this.viewModel, {\n                source: \"mouse\"\n            })\n        }\n        _convertViewToModelPosition(e) {\n            return this.viewModel.coordinatesConverter.convertViewPositionToModelPosition(e)\n        }\n        emitKeyDown(e) {\n            this.userInputEvents.emitKeyDown(e)\n        }\n        emitKeyUp(e) {\n            this.userInputEvents.emitKeyUp(e)\n        }\n        emitContextMenu(e) {\n            this.userInputEvents.emitContextMenu(e)\n        }\n        emitMouseMove(e) {\n            this.userInputEvents.emitMouseMove(e)\n        }\n        emitMouseLeave(e) {\n            this.userInputEvents.emitMouseLeave(e)\n        }\n        emitMouseUp(e) {\n            this.userInputEvents.emitMouseUp(e)\n        }\n        emitMouseDown(e) {\n            this.userInputEvents.emitMouseDown(e)\n        }\n        emitMouseDrag(e) {\n            this.userInputEvents.emitMouseDrag(e)\n        }\n        emitMouseDrop(e) {\n            this.userInputEvents.emitMouseDrop(e)\n        }\n        emitMouseDropCanceled() {\n            this.userInputEvents.emitMouseDropCanceled()\n        }\n        emitMouseWheel(e) {\n            this.userInputEvents.emitMouseWheel(e)\n        }\n    }\n    class ur {\n        constructor(e) {\n            this.onKeyDown = null, this.onKeyUp = null, this.onContextMenu = null, this.onMouseMove = null, this.onMouseLeave = null, this.onMouseDown = null, this.onMouseUp = null, this.onMouseDrag = null, this.onMouseDrop = null, this.onMouseDropCanceled = null, this.onMouseWheel = null, this._coordinatesConverter = e\n        }\n        emitKeyDown(e) {\n            this.onKeyDown && this.onKeyDown(e)\n        }\n        emitKeyUp(e) {\n            this.onKeyUp && this.onKeyUp(e)\n        }\n        emitContextMenu(e) {\n            this.onContextMenu && this.onContextMenu(this._convertViewToModelMouseEvent(e))\n        }\n        emitMouseMove(e) {\n            this.onMouseMove && this.onMouseMove(this._convertViewToModelMouseEvent(e))\n        }\n        emitMouseLeave(e) {\n            this.onMouseLeave && this.onMouseLeave(this._convertViewToModelMouseEvent(e))\n        }\n        emitMouseDown(e) {\n            this.onMouseDown && this.onMouseDown(this._convertViewToModelMouseEvent(e))\n        }\n        emitMouseUp(e) {\n            this.onMouseUp && this.onMouseUp(this._convertViewToModelMouseEvent(e))\n        }\n        emitMouseDrag(e) {\n            this.onMouseDrag && this.onMouseDrag(this._convertViewToModelMouseEvent(e))\n        }\n        emitMouseDrop(e) {\n            this.onMouseDrop && this.onMouseDrop(this._convertViewToModelMouseEvent(e))\n        }\n        emitMouseDropCanceled() {\n            this.onMouseDropCanceled && this.onMouseDropCanceled()\n        }\n        emitMouseWheel(e) {\n            this.onMouseWheel && this.onMouseWheel(e)\n        }\n        _convertViewToModelMouseEvent(e) {\n            return e.target ? {\n                event: e.event,\n                target: this._convertViewToModelMouseTarget(e.target)\n            } : e\n        }\n        _convertViewToModelMouseTarget(e) {\n            return ur.convertViewToModelMouseTarget(e, this._coordinatesConverter)\n        }\n        static convertViewToModelMouseTarget(e, t) {\n            return new pr(e.element, e.type, e.mouseColumn, e.position ? t.convertViewPositionToModelPosition(e.position) : null, e.range ? t.convertViewRangeToModelRange(e.range) : null, e.detail)\n        }\n    }\n    class pr {\n        constructor(e, t, i, n, r, o) {\n            this.element = e, this.type = t, this.mouseColumn = i, this.position = n, this.range = r, this.detail = o\n        }\n        toString() {\n            return Nn.toString(this)\n        }\n    }\n    class gr {\n        constructor(e) {\n            this._createLine = e, this._set(1, [])\n        }\n        flush() {\n            this._set(1, [])\n        }\n        _set(e, t) {\n            this._lines = t, this._rendLineNumberStart = e\n        }\n        _get() {\n            return {\n                rendLineNumberStart: this._rendLineNumberStart,\n                lines: this._lines\n            }\n        }\n        getStartLineNumber() {\n            return this._rendLineNumberStart\n        }\n        getEndLineNumber() {\n            return this._rendLineNumberStart + this._lines.length - 1\n        }\n        getCount() {\n            return this._lines.length\n        }\n        getLine(e) {\n            if ((e -= this._rendLineNumberStart) < 0 || e >= this._lines.length) throw new Error(\"Illegal value for lineNumber\");\n            return this._lines[e]\n        }\n        onLinesDeleted(e, t) {\n            if (0 === this.getCount()) return null;\n            var i = this.getStartLineNumber(),\n                n = this.getEndLineNumber();\n            if (t < i) return this._rendLineNumberStart -= t - e + 1, null;\n            if (n < e) return null;\n            let r = 0,\n                o = 0;\n            for (let a = i; a <= n; a++) {\n                var s = a - this._rendLineNumberStart;\n                e <= a && a <= t && (0 === o ? (r = s, o = 1) : o++)\n            }\n            if (e < i) {\n                let n = 0;\n                n = t < i ? t - e + 1 : i - e, this._rendLineNumberStart -= n\n            }\n            return this._lines.splice(r, o)\n        }\n        onLinesChanged(e, t) {\n            if (0 === this.getCount()) return !1;\n            var i = this.getStartLineNumber(),\n                n = this.getEndLineNumber();\n            let r = !1;\n            for (let o = e; o <= t; o++) o >= i && o <= n && (this._lines[o - this._rendLineNumberStart].onContentChanged(), r = !0);\n            return r\n        }\n        onLinesInserted(e, t) {\n            if (0 === this.getCount()) return null;\n            var i = t - e + 1,\n                n = this.getStartLineNumber();\n            t = this.getEndLineNumber();\n            if (e <= n) return this._rendLineNumberStart += i, null;\n            if (t < e) return null;\n            if (t < i + e) return this._lines.splice(e - this._rendLineNumberStart, t - e + 1);\n            const r = [];\n            for (let e = 0; e < i; e++) r[e] = this._createLine();\n            t = e - this._rendLineNumberStart;\n            const o = this._lines.slice(0, t);\n            return e = this._lines.slice(t, this._lines.length - i), t = this._lines.slice(this._lines.length - i, this._lines.length), this._lines = o.concat(r).concat(e), t\n        }\n        onTokensChanged(e) {\n            if (0 === this.getCount()) return !1;\n            var t = this.getStartLineNumber(),\n                i = this.getEndLineNumber();\n            let n = !1;\n            for (let l = 0, d = e.length; l < d; l++) {\n                var r = e[l];\n                if (!(r.toLineNumber < t || r.fromLineNumber > i)) {\n                    var o = Math.max(t, r.fromLineNumber),\n                        s = Math.min(i, r.toLineNumber);\n                    for (let e = o; e <= s; e++) {\n                        var a = e - this._rendLineNumberStart;\n                        this._lines[a].onTokensChanged(), n = !0\n                    }\n                }\n            }\n            return n\n        }\n    }\n    class fr {\n        constructor(e) {\n            this._host = e, this.domNode = this._createDomNode(), this._linesCollection = new gr(() => this._host.createVisibleLine())\n        }\n        _createDomNode() {\n            const e = Object(Ui.b)(document.createElement(\"div\"));\n            return e.setClassName(\"view-layer\"), e.setPosition(\"absolute\"), e.domNode.setAttribute(\"role\", \"presentation\"), e.domNode.setAttribute(\"aria-hidden\", \"true\"), e\n        }\n        on配置Changed(e) {\n            return !!e.hasChanged(129)\n        }\n        onFlushed(e) {\n            return this._linesCollection.flush(), !0\n        }\n        onLinesChanged(e) {\n            return this._linesCollection.onLinesChanged(e.fromLineNumber, e.toLineNumber)\n        }\n        onLinesDeleted(e) {\n            const t = this._linesCollection.onLinesDeleted(e.fromLineNumber, e.toLineNumber);\n            if (t)\n                for (let e = 0, n = t.length; e < n; e++) {\n                    var i = t[e].getDomNode();\n                    i && this.domNode.domNode.removeChild(i)\n                }\n            return !0\n        }\n        onLinesInserted(e) {\n            const t = this._linesCollection.onLinesInserted(e.fromLineNumber, e.toLineNumber);\n            if (t)\n                for (let e = 0, n = t.length; e < n; e++) {\n                    var i = t[e].getDomNode();\n                    i && this.domNode.domNode.removeChild(i)\n                }\n            return !0\n        }\n        onScrollChanged(e) {\n            return e.scrollTopChanged\n        }\n        onTokensChanged(e) {\n            return this._linesCollection.onTokensChanged(e.ranges)\n        }\n        onZonesChanged(e) {\n            return !0\n        }\n        getStartLineNumber() {\n            return this._linesCollection.getStartLineNumber()\n        }\n        getEndLineNumber() {\n            return this._linesCollection.getEndLineNumber()\n        }\n        getVisibleLine(e) {\n            return this._linesCollection.getLine(e)\n        }\n        renderLines(e) {\n            var t = this._linesCollection._get();\n            const i = new mr(this.domNode.domNode, this._host, e);\n            t = {\n                rendLineNumberStart: t.rendLineNumberStart,\n                lines: t.lines,\n                linesLength: t.lines.length\n            }, e = i.render(t, e.startLineNumber, e.endLineNumber, e.relativeVerticalOffset), this._linesCollection._set(e.rendLineNumberStart, e.lines)\n        }\n    }\n    class mr {\n        constructor(e, t, i) {\n            this.domNode = e, this.host = t, this.viewportData = i\n        }\n        render(e, t, i, n) {\n            const r = {\n                rendLineNumberStart: e.rendLineNumberStart,\n                lines: e.lines.slice(0),\n                linesLength: e.linesLength\n            };\n            if (r.rendLineNumberStart + r.linesLength - 1 < t || i < r.rendLineNumberStart) {\n                r.rendLineNumberStart = t, r.linesLength = i - t + 1, r.lines = [];\n                for (let e = t; e <= i; e++) r.lines[e - t] = this.host.createVisibleLine();\n                return this._finishRendering(r, !0, n), r\n            }\n            var o, s, a;\n            return this._renderUntouchedLines(r, Math.max(t - r.rendLineNumberStart, 0), Math.min(i - r.rendLineNumberStart, r.linesLength - 1), n, t), r.rendLineNumberStart > t ? (o = t) <= (e = Math.min(i, r.rendLineNumberStart - 1)) && (this._insertLinesBefore(r, o, e, n, t), r.linesLength += e - o + 1) : r.rendLineNumberStart < t && 0 < (s = Math.min(r.linesLength, t - r.rendLineNumberStart)) && (this._removeLinesBefore(r, s), r.linesLength -= s), r.rendLineNumberStart = t, r.rendLineNumberStart + r.linesLength - 1 < i ? (a = r.rendLineNumberStart + r.linesLength) <= (s = i) && (this._insertLinesAfter(r, a, s, n, t), r.linesLength += s - a + 1) : r.rendLineNumberStart + r.linesLength - 1 > i && (a = Math.max(0, i - r.rendLineNumberStart + 1), 0 < (a = r.linesLength - 1 - a + 1) && (this._removeLinesAfter(r, a), r.linesLength -= a)), this._finishRendering(r, !1, n), r\n        }\n        _renderUntouchedLines(e, t, i, n, r) {\n            var o = e.rendLineNumberStart;\n            const s = e.lines;\n            for (let e = t; e <= i; e++) {\n                var a = o + e;\n                s[e].layoutLine(a, n[a - r])\n            }\n        }\n        _insertLinesBefore(e, t, i, n, r) {\n            const o = [];\n            let s = 0;\n            for (let e = t; e <= i; e++) o[s++] = this.host.createVisibleLine();\n            e.lines = o.concat(e.lines)\n        }\n        _removeLinesBefore(e, t) {\n            for (let n = 0; n < t; n++) {\n                var i = e.lines[n].getDomNode();\n                i && this.domNode.removeChild(i)\n            }\n            e.lines.splice(0, t)\n        }\n        _insertLinesAfter(e, t, i, n, r) {\n            const o = [];\n            let s = 0;\n            for (let e = t; e <= i; e++) o[s++] = this.host.createVisibleLine();\n            e.lines = e.lines.concat(o)\n        }\n        _removeLinesAfter(e, t) {\n            var i = e.linesLength - t;\n            for (let r = 0; r < t; r++) {\n                var n = e.lines[i + r].getDomNode();\n                n && this.domNode.removeChild(n)\n            }\n            e.lines.splice(i, t)\n        }\n        _finishRenderingNewLines(e, t, i, n) {\n            mr._ttPolicy && (i = mr._ttPolicy.createHTML(i));\n            const r = this.domNode.lastChild;\n            t || !r ? this.domNode.innerHTML = i : r.insertAdjacentHTML(\"afterend\", i);\n            let o = this.domNode.lastChild;\n            for (let t = e.linesLength - 1; 0 <= t; t--) {\n                const i = e.lines[t];\n                n[t] && (i.setDomNode(o), o = o.previousSibling)\n            }\n        }\n        _finishRenderingInvalidLines(e, t, i) {\n            const n = document.createElement(\"div\");\n            mr._ttPolicy && (t = mr._ttPolicy.createHTML(t)), n.innerHTML = t;\n            for (let t = 0; t < e.linesLength; t++) {\n                const o = e.lines[t];\n                if (i[t]) {\n                    var r = n.firstChild;\n                    const e = o.getDomNode();\n                    e.parentNode.replaceChild(r, e), o.setDomNode(r)\n                }\n            }\n        }\n        _finishRendering(e, t, i) {\n            const n = mr._sb;\n            var r = e.linesLength,\n                o = e.lines,\n                s = e.rendLineNumberStart;\n            const a = []; {\n                n.reset();\n                let l = !1;\n                for (let e = 0; e < r; e++) {\n                    const t = o[e];\n                    a[e] = !1, t.getDomNode() || t.renderLine(e + s, i[e], this.viewportData, n) && (a[e] = !0, l = !0)\n                }\n                l && this._finishRenderingNewLines(e, t, n.build(), a)\n            } {\n                n.reset();\n                let t = !1;\n                const l = [];\n                for (let e = 0; e < r; e++) {\n                    const r = o[e];\n                    l[e] = !1, a[e] || r.renderLine(e + s, i[e], this.viewportData, n) && (l[e] = !0, t = !0)\n                }\n                t && this._finishRenderingInvalidLines(e, n.build(), l)\n            }\n        }\n    }\n    mr._ttPolicy = null === (S = window.trustedTypes) || void 0 === S ? void 0 : S.createPolicy(\"editorViewLayer\", {\n        createHTML: e => e\n    }), mr._sb = Object(ye.a)(1e5);\n    class vr extends rn {\n        constructor(e) {\n            super(e), this._visibleLines = new fr(this), this.domNode = this._visibleLines.domNode, this._dynamicOverlays = [], this._isFocused = !1, this.domNode.setClassName(\"view-overlays\")\n        }\n        shouldRender() {\n            if (super.shouldRender()) return !0;\n            for (let e = 0, t = this._dynamicOverlays.length; e < t; e++) {\n                if (this._dynamicOverlays[e].shouldRender()) return !0\n            }\n            return !1\n        }\n        dispose() {\n            super.dispose();\n            for (let e = 0, t = this._dynamicOverlays.length; e < t; e++) {\n                this._dynamicOverlays[e].dispose()\n            }\n            this._dynamicOverlays = []\n        }\n        getDomNode() {\n            return this.domNode\n        }\n        createVisibleLine() {\n            return new br(this._context.configuration, this._dynamicOverlays)\n        }\n        addDynamicOverlay(e) {\n            this._dynamicOverlays.push(e)\n        }\n        on配置Changed(e) {\n            this._visibleLines.on配置Changed(e);\n            var t = this._visibleLines.getStartLineNumber(),\n                i = this._visibleLines.getEndLineNumber();\n            for (let n = t; n <= i; n++) {\n                this._visibleLines.getVisibleLine(n).on配置Changed(e)\n            }\n            return !0\n        }\n        onFlushed(e) {\n            return this._visibleLines.onFlushed(e)\n        }\n        onFocusChanged(e) {\n            return this._isFocused = e.isFocused, !0\n        }\n        onLinesChanged(e) {\n            return this._visibleLines.onLinesChanged(e)\n        }\n        onLinesDeleted(e) {\n            return this._visibleLines.onLinesDeleted(e)\n        }\n        onLinesInserted(e) {\n            return this._visibleLines.onLinesInserted(e)\n        }\n        onScrollChanged(e) {\n            return this._visibleLines.onScrollChanged(e) || !0\n        }\n        onTokensChanged(e) {\n            return this._visibleLines.onTokensChanged(e)\n        }\n        onZonesChanged(e) {\n            return this._visibleLines.onZonesChanged(e)\n        }\n        prepareRender(e) {\n            var t = this._dynamicOverlays.filter(e => e.shouldRender());\n            for (let i = 0, n = t.length; i < n; i++) {\n                const n = t[i];\n                n.prepareRender(e), n.onDidRender()\n            }\n        }\n        render(e) {\n            this._viewOverlaysRender(e), this.domNode.toggleClassName(\"focused\", this._isFocused)\n        }\n        _viewOverlaysRender(e) {\n            this._visibleLines.renderLines(e.viewportData)\n        }\n    }\n    class br {\n        constructor(e, t) {\n            this._configuration = e, this._lineHeight = this._configuration.options.get(58), this._dynamicOverlays = t, this._domNode = null, this._renderedContent = null\n        }\n        getDomNode() {\n            return this._domNode ? this._domNode.domNode : null\n        }\n        setDomNode(e) {\n            this._domNode = Object(Ui.b)(e)\n        }\n        onContentChanged() {}\n        onTokensChanged() {}\n        on配置Changed(e) {\n            this._lineHeight = this._configuration.options.get(58)\n        }\n        renderLine(e, t, i, n) {\n            let r = \"\";\n            for (let t = 0, n = this._dynamicOverlays.length; t < n; t++) {\n                r += this._dynamicOverlays[t].render(i.startLineNumber, e)\n            }\n            return this._renderedContent !== r && (this._renderedContent = r, n.appendASCIIString('<div style=\"position:absolute;top:'), n.appendASCIIString(String(t)), n.appendASCIIString(\"px;width:100%;height:\"), n.appendASCIIString(String(this._lineHeight)), n.appendASCIIString('px;\">'), n.appendASCIIString(r), n.appendASCIIString(\"</div>\"), !0)\n        }\n        layoutLine(e, t) {\n            this._domNode && (this._domNode.setTop(t), this._domNode.setHeight(this._lineHeight))\n        }\n    }\n    class _r extends vr {\n        constructor(e) {\n            super(e);\n            e = this._context.configuration.options.get(129), this._contentWidth = e.contentWidth, this.domNode.setHeight(0)\n        }\n        on配置Changed(e) {\n            var t = this._context.configuration.options.get(129);\n            return this._contentWidth = t.contentWidth, super.on配置Changed(e) || !0\n        }\n        onScrollChanged(e) {\n            return super.onScrollChanged(e) || e.scrollWidthChanged\n        }\n        _viewOverlaysRender(e) {\n            super._viewOverlaysRender(e), this.domNode.setWidth(Math.max(e.scrollWidth, this._contentWidth))\n        }\n    }\n    class wr extends vr {\n        constructor(e) {\n            super(e);\n            const t = this._context.configuration.options;\n            e = t.get(129), this._contentLeft = e.contentLeft, this.domNode.setClassName(\"margin-view-overlays\"), this.domNode.setWidth(1), zi.applyFontInfo(this.domNode, t.get(43))\n        }\n        on配置Changed(e) {\n            const t = this._context.configuration.options;\n            zi.applyFontInfo(this.domNode, t.get(43));\n            var i = t.get(129);\n            return this._contentLeft = i.contentLeft, super.on配置Changed(e) || !0\n        }\n        onScrollChanged(e) {\n            return super.onScrollChanged(e) || e.scrollHeightChanged\n        }\n        _viewOverlaysRender(e) {\n            super._viewOverlaysRender(e), e = Math.min(e.scrollHeight, 1e6), this.domNode.setHeight(e), this.domNode.setWidth(this._contentLeft)\n        }\n    }\n    class yr {\n        constructor(e, t) {\n            this._coordinateBrand = void 0, this.top = e, this.left = t\n        }\n    }\n    class Cr extends rn {\n        constructor(e, t) {\n            super(e), this._viewDomNode = t, this._widgets = {}, this.domNode = Object(Ui.b)(document.createElement(\"div\")), on.write(this.domNode, 1), this.domNode.setClassName(\"contentWidgets\"), this.domNode.setPosition(\"absolute\"), this.domNode.setTop(0), this.overflowingContentWidgetsDomNode = Object(Ui.b)(document.createElement(\"div\")), on.write(this.overflowingContentWidgetsDomNode, 2), this.overflowingContentWidgetsDomNode.setClassName(\"overflowingContentWidgets\")\n        }\n        dispose() {\n            super.dispose(), this._widgets = {}\n        }\n        on配置Changed(e) {\n            for (const t of Object.keys(this._widgets)) this._widgets[t].on配置Changed(e);\n            return !0\n        }\n        onDecorationsChanged(e) {\n            return !0\n        }\n        onFlushed(e) {\n            return !0\n        }\n        onLineMappingChanged(e) {\n            for (const t of Object.keys(this._widgets)) this._widgets[t].onLineMappingChanged(e);\n            return !0\n        }\n        onLinesChanged(e) {\n            return !0\n        }\n        onLinesDeleted(e) {\n            return !0\n        }\n        onLinesInserted(e) {\n            return !0\n        }\n        onScrollChanged(e) {\n            return !0\n        }\n        onZonesChanged(e) {\n            return !0\n        }\n        addWidget(e) {\n            e = new xr(this._context, this._viewDomNode, e), ((this._widgets[e.id] = e).allowEditorOverflow ? this.overflowingContentWidgetsDomNode : this.domNode).appendChild(e.domNode), this.setShouldRender()\n        }\n        setWidgetPosition(e, t, i) {\n            this._widgets[e.getId()].setPosition(t, i), this.setShouldRender()\n        }\n        removeWidget(e) {\n            var t = e.getId();\n            if (this._widgets.hasOwnProperty(t)) {\n                e = this._widgets[t], delete this._widgets[t];\n                const i = e.domNode.domNode;\n                i.parentNode.removeChild(i), i.removeAttribute(\"monaco-visible-content-widget\"), this.setShouldRender()\n            }\n        }\n        shouldSuppressMouseDownOnWidget(e) {\n            return !!this._widgets.hasOwnProperty(e) && this._widgets[e].suppressMouseDown\n        }\n        onBeforeRender(e) {\n            for (const t of Object.keys(this._widgets)) this._widgets[t].onBeforeRender(e)\n        }\n        prepareRender(e) {\n            for (const t of Object.keys(this._widgets)) this._widgets[t].prepareRender(e)\n        }\n        render(e) {\n            for (const t of Object.keys(this._widgets)) this._widgets[t].render(e)\n        }\n    }\n    class xr {\n        constructor(e, t, i) {\n            this._context = e, this._viewDomNode = t, this._actual = i, this.domNode = Object(Ui.b)(this._actual.getDomNode()), this.id = this._actual.getId(), this.allowEditorOverflow = this._actual.allowEditorOverflow || !1, this.suppressMouseDown = this._actual.suppressMouseDown || !1;\n            const n = this._context.configuration.options;\n            i = n.get(129), this._fixedOverflowWidgets = n.get(36), this._contentWidth = i.contentWidth, this._contentLeft = i.contentLeft, this._lineHeight = n.get(58), this._range = null, this._viewRange = null, this._preference = [], this._cachedDomNodeClientWidth = -1, this._cachedDomNodeClientHeight = -1, this._maxWidth = this._getMaxWidth(), this._isVisible = !1, this._renderData = null, this.domNode.setPosition(this._fixedOverflowWidgets && this.allowEditorOverflow ? \"fixed\" : \"absolute\"), this.domNode.setVisibility(\"hidden\"), this.domNode.setAttribute(\"widgetId\", this.id), this.domNode.setMaxWidth(this._maxWidth)\n        }\n        on配置Changed(e) {\n            const t = this._context.configuration.options;\n            this._lineHeight = t.get(58), e.hasChanged(129) && (e = t.get(129), this._contentLeft = e.contentLeft, this._contentWidth = e.contentWidth, this._maxWidth = this._getMaxWidth())\n        }\n        onLineMappingChanged(e) {\n            this._setPosition(this._range)\n        }\n        _setPosition(e) {\n            if (this._range = e, this._viewRange = null, this._range) {\n                const e = this._context.model.validateModelRange(this._range);\n                (this._context.model.coordinatesConverter.modelPositionIsVisible(e.getStartPosition()) || this._context.model.coordinatesConverter.modelPositionIsVisible(e.getEndPosition())) && (this._viewRange = this._context.model.coordinatesConverter.convertModelRangeToViewRange(e))\n            }\n        }\n        _getMaxWidth() {\n            return this.allowEditorOverflow ? window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth : this._contentWidth\n        }\n        setPosition(e, t) {\n            this._setPosition(e), this._preference = t, this._cachedDomNodeClientWidth = -1, this._cachedDomNodeClientHeight = -1\n        }\n        _layoutBoxInViewport(e, t, i, n, r) {\n            var o = e.top,\n                s = t.top + this._lineHeight,\n                a = r.viewportHeight - s;\n            let l = e.left,\n                d = t.left;\n            return l + i > r.scrollLeft + r.viewportWidth && (l = r.scrollLeft + r.viewportWidth - i), d + i > r.scrollLeft + r.viewportWidth && (d = r.scrollLeft + r.viewportWidth - i), l < r.scrollLeft && (l = r.scrollLeft), d < r.scrollLeft && (d = r.scrollLeft), {\n                fitsAbove: n <= o,\n                aboveTop: o - n,\n                aboveLeft: l,\n                fitsBelow: n <= a,\n                belowTop: s,\n                belowLeft: d\n            }\n        }\n        _layoutHorizontalSegmentInPage(e, t, i, n) {\n            var r = Math.max(0, t.left - n);\n            e = Math.min(t.left + t.width + n, e.width);\n            let o = t.left + i - s.f.scrollX;\n            return o + n > e && (o -= n = o - (e - n), i -= n), o < r && (o -= r = o - r, i -= r), [i, o]\n        }\n        _layoutBoxInPage(e, t, i, n, r) {\n            var o = e.top - n,\n                a = t.top + this._lineHeight,\n                l = s.A(this._viewDomNode.domNode),\n                d = l.top + o - s.f.scrollY,\n                c = l.top + a - s.f.scrollY,\n                h = s.w(document.body),\n                [u, e] = this._layoutHorizontalSegmentInPage(h, l, e.left - r.scrollLeft + this._contentLeft, i),\n                [t, r] = this._layoutHorizontalSegmentInPage(h, l, t.left - r.scrollLeft + this._contentLeft, i);\n            i = 22 <= d, h = c + n <= h.height - 22;\n            return this._fixedOverflowWidgets ? {\n                fitsAbove: i,\n                aboveTop: Math.max(d, 22),\n                aboveLeft: e,\n                fitsBelow: h,\n                belowTop: c,\n                belowLeft: r\n            } : {\n                fitsAbove: i,\n                aboveTop: o,\n                aboveLeft: u,\n                fitsBelow: h,\n                belowTop: a,\n                belowLeft: t\n            }\n        }\n        _prepareRenderWidgetAtExactPositionOverflowing(e) {\n            return new yr(e.top, e.left + this._contentLeft)\n        }\n        _getTopAndBottomLeft(e) {\n            if (!this._viewRange) return [null, null];\n            var t = e.linesVisibleRangesForRange(this._viewRange, !1);\n            if (!t || 0 === t.length) return [null, null];\n            let i = t[0],\n                n = t[0];\n            for (const e of t) e.lineNumber < i.lineNumber && (i = e), e.lineNumber > n.lineNumber && (n = e);\n            let r = 1073741824;\n            for (const e of i.ranges) e.left < r && (r = e.left);\n            let o = 1073741824;\n            for (const e of n.ranges) e.left < o && (o = e.left);\n            return t = e.getVerticalOffsetForLineNumber(i.lineNumber) - e.scrollTop, t = new yr(t, r), e = e.getVerticalOffsetForLineNumber(n.lineNumber) - e.scrollTop, [t, new yr(e, o)]\n        }\n        _prepareRenderWidget(e) {\n            var t, [i, n] = this._getTopAndBottomLeft(e);\n            if (!i || !n) return null;\n            if (-1 === this._cachedDomNodeClientWidth || -1 === this._cachedDomNodeClientHeight) {\n                let e = null;\n                \"function\" == typeof this._actual.beforeRender && (e = Sr(this._actual.beforeRender, this._actual)), e ? (this._cachedDomNodeClientWidth = e.width, this._cachedDomNodeClientHeight = e.height) : (t = this.domNode.domNode, this._cachedDomNodeClientWidth = t.clientWidth, this._cachedDomNodeClientHeight = t.clientHeight)\n            }\n            let r;\n            if (r = this.allowEditorOverflow ? this._layoutBoxInPage(i, n, this._cachedDomNodeClientWidth, this._cachedDomNodeClientHeight, e) : this._layoutBoxInViewport(i, n, this._cachedDomNodeClientWidth, this._cachedDomNodeClientHeight, e), this._preference)\n                for (let e = 1; e <= 2; e++)\n                    for (const t of this._preference)\n                        if (1 === t) {\n                            if (!r) return null;\n                            if (2 === e || r.fitsAbove) return {\n                                coordinate: new yr(r.aboveTop, r.aboveLeft),\n                                position: 1\n                            }\n                        } else {\n                            if (2 !== t) return this.allowEditorOverflow ? {\n                                coordinate: this._prepareRenderWidgetAtExactPositionOverflowing(i),\n                                position: 0\n                            } : {\n                                coordinate: i,\n                                position: 0\n                            };\n                            if (!r) return null;\n                            if (2 === e || r.fitsBelow) return {\n                                coordinate: new yr(r.belowTop, r.belowLeft),\n                                position: 2\n                            }\n                        } return null\n        }\n        onBeforeRender(e) {\n            this._viewRange && this._preference && (this._viewRange.endLineNumber < e.startLineNumber || this._viewRange.startLineNumber > e.endLineNumber || this.domNode.setMaxWidth(this._maxWidth))\n        }\n        prepareRender(e) {\n            this._renderData = this._prepareRenderWidget(e)\n        }\n        render(e) {\n            if (!this._renderData) return this._isVisible && (this.domNode.removeAttribute(\"monaco-visible-content-widget\"), this._isVisible = !1, this.domNode.setVisibility(\"hidden\")), void(\"function\" == typeof this._actual.afterRender && Sr(this._actual.afterRender, this._actual, null));\n            this.allowEditorOverflow ? this.domNode.setTop(this._renderData.coordinate.top) : this.domNode.setTop(this._renderData.coordinate.top + e.scrollTop - e.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), \"function\" == typeof this._actual.afterRender && Sr(this._actual.afterRender, this._actual, this._renderData.position)\n        }\n    }\n\n    function Sr(e, t, ...i) {\n        try {\n            return e.call(t, ...i)\n        } catch (e) {\n            return null\n        }\n    }\n    i(396);\n    let kr = !0;\n    class Lr extends er {\n        constructor(e) {\n            super(), this._context = e;\n            const t = this._context.configuration.options;\n            e = t.get(129), this._lineHeight = t.get(58), this._renderLineHighlight = t.get(84), this._renderLineHighlightOnlyWhenFocus = t.get(85), this._contentLeft = e.contentLeft, this._contentWidth = e.contentWidth, this._selectionIsEmpty = !0, this._focused = !1, this._cursorLineNumbers = [1], this._selections = [new Hi.a(1, 1, 1, 1)], this._renderData = null, this._context.addEventHandler(this)\n        }\n        dispose() {\n            this._context.removeEventHandler(this), super.dispose()\n        }\n        _readFromSelections() {\n            let e = !1;\n            const t = kr ? this._selections.slice(0, 1) : this._selections,\n                i = t.map(e => e.positionLineNumber);\n            i.sort((e, t) => e - t), ne.g(this._cursorLineNumbers, i) || (this._cursorLineNumbers = i, e = !0);\n            var n = t.every(e => e.isEmpty());\n            return this._selectionIsEmpty !== n && (this._selectionIsEmpty = n, e = !0), e\n        }\n        onThemeChanged(e) {\n            return this._readFromSelections()\n        }\n        on配置Changed(e) {\n            const t = this._context.configuration.options;\n            var i = t.get(129);\n            return this._lineHeight = t.get(58), this._renderLineHighlight = t.get(84), this._renderLineHighlightOnlyWhenFocus = t.get(85), this._contentLeft = i.contentLeft, this._contentWidth = i.contentWidth, !0\n        }\n        onCursorStateChanged(e) {\n            return this._selections = e.selections, this._readFromSelections()\n        }\n        onFlushed(e) {\n            return !0\n        }\n        onLinesDeleted(e) {\n            return !0\n        }\n        onLinesInserted(e) {\n            return !0\n        }\n        onScrollChanged(e) {\n            return e.scrollWidthChanged || e.scrollTopChanged\n        }\n        onZonesChanged(e) {\n            return !0\n        }\n        onFocusChanged(e) {\n            return !!this._renderLineHighlightOnlyWhenFocus && (this._focused = e.isFocused, !0)\n        }\n        prepareRender(e) {\n            if (this._shouldRenderThis()) {\n                var t = this._renderOne(e),\n                    i = e.visibleRange.startLineNumber,\n                    n = e.visibleRange.endLineNumber,\n                    r = this._cursorLineNumbers.length;\n                let s = 0;\n                const a = [];\n                for (let e = i; e <= n; e++) {\n                    for (var o = e - i; s < r && this._cursorLineNumbers[s] < e;) s++;\n                    s < r && this._cursorLineNumbers[s] === e ? a[o] = t : a[o] = \"\"\n                }\n                this._renderData = a\n            } else this._renderData = null\n        }\n        render(e, t) {\n            return this._renderData ? (e = t - e) >= this._renderData.length ? \"\" : this._renderData[e] : \"\"\n        }\n    }\n    class Or extends Lr {\n        _renderOne(e) {\n            return `<div class=\"${\"current-line\"+(this._shouldRenderOther()?\" current-line-both\":\"\")}\" style=\"width:${Math.max(e.scrollWidth,this._contentWidth)}px; height:${this._lineHeight}px;\"></div>`\n        }\n        _shouldRenderThis() {\n            return (\"line\" === this._renderLineHighlight || \"all\" === this._renderLineHighlight) && this._selectionIsEmpty && (!this._renderLineHighlightOnlyWhenFocus || this._focused)\n        }\n        _shouldRenderOther() {\n            return (\"gutter\" === this._renderLineHighlight || \"all\" === this._renderLineHighlight) && (!this._renderLineHighlightOnlyWhenFocus || this._focused)\n        }\n    }\n    class Er extends Lr {\n        _renderOne(e) {\n            return `<div class=\"${\"current-line\"+(this._shouldRenderMargin()?\" current-line-margin\":\"\")+(this._shouldRenderOther()?\" current-line-margin-both\":\"\")}\" style=\"width:${this._contentLeft}px; height:${this._lineHeight}px;\"></div>`\n        }\n        _shouldRenderMargin() {\n            return (\"gutter\" === this._renderLineHighlight || \"all\" === this._renderLineHighlight) && (!this._renderLineHighlightOnlyWhenFocus || this._focused)\n        }\n        _shouldRenderThis() {\n            return !0\n        }\n        _shouldRenderOther() {\n            return (\"line\" === this._renderLineHighlight || \"all\" === this._renderLineHighlight) && this._selectionIsEmpty && (!this._renderLineHighlightOnlyWhenFocus || this._focused)\n        }\n    }\n    Object(ir.f)((e, t) => {\n        kr = !1;\n        const i = e.getColor(tr.y);\n        var n;\n        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() && !e.defines(tr.z) || (n = e.getColor(tr.z)) && (kr = !0, t.addRule(`.monaco-editor .view-overlays .current-line { border: 2px solid ${n}; }`), t.addRule(`.monaco-editor .margin-view-overlays .current-line-margin { border: 2px solid ${n}; }`), \"hc\" === e.type && (t.addRule(\".monaco-editor .view-overlays .current-line { border-width: 1px; }\"), t.addRule(\".monaco-editor .margin-view-overlays .current-line-margin { border-width: 1px; }\")))\n    }), i(398);\n    class Nr extends er {\n        constructor(e) {\n            super(), this._context = e;\n            const t = this._context.configuration.options;\n            this._lineHeight = t.get(58), this._typicalHalfwidthCharacterWidth = t.get(43).typicalHalfwidthCharacterWidth, this._renderResult = null, this._context.addEventHandler(this)\n        }\n        dispose() {\n            this._context.removeEventHandler(this), this._renderResult = null, super.dispose()\n        }\n        on配置Changed(e) {\n            const t = this._context.configuration.options;\n            return this._lineHeight = t.get(58), this._typicalHalfwidthCharacterWidth = t.get(43).typicalHalfwidthCharacterWidth, !0\n        }\n        onDecorationsChanged(e) {\n            return !0\n        }\n        onFlushed(e) {\n            return !0\n        }\n        onLinesChanged(e) {\n            return !0\n        }\n        onLinesDeleted(e) {\n            return !0\n        }\n        onLinesInserted(e) {\n            return !0\n        }\n        onScrollChanged(e) {\n            return e.scrollTopChanged || e.scrollWidthChanged\n        }\n        onZonesChanged(e) {\n            return !0\n        }\n        prepareRender(e) {\n            var t = e.getDecorationsInViewport();\n            let i = [],\n                n = 0;\n            for (let e = 0, o = t.length; e < o; e++) {\n                var r = t[e];\n                r.options.className && (i[n++] = r)\n            }\n            i = i.sort((e, t) => {\n                if (e.options.zIndex < t.options.zIndex) return -1;\n                if (e.options.zIndex > t.options.zIndex) return 1;\n                var i = e.options.className,\n                    n = t.options.className;\n                return i < n ? -1 : n < i ? 1 : T.a.compareRangesUsingStarts(e.range, t.range)\n            });\n            var o = e.visibleRange.startLineNumber,\n                s = e.visibleRange.endLineNumber;\n            const a = [];\n            for (let e = o; e <= s; e++) {\n                a[e - o] = \"\"\n            }\n            this._renderWholeLineDecorations(e, i, a), this._renderNormalDecorations(e, i, a), this._renderResult = a\n        }\n        _renderWholeLineDecorations(e, t, i) {\n            var n = String(this._lineHeight),\n                r = e.visibleRange.startLineNumber,\n                o = e.visibleRange.endLineNumber;\n            for (let e = 0, c = t.length; e < c; e++) {\n                var s = t[e];\n                if (s.options.isWholeLine) {\n                    var a = '<div class=\"cdr ' + s.options.className + '\" style=\"left:0;width:100%;height:' + n + 'px;\"></div>',\n                        l = Math.max(s.range.startLineNumber, r),\n                        d = Math.min(s.range.endLineNumber, o);\n                    for (let e = l; e <= d; e++) i[e - r] += a\n                }\n            }\n        }\n        _renderNormalDecorations(e, t, i) {\n            var n = String(this._lineHeight),\n                r = e.visibleRange.startLineNumber;\n            let o = null,\n                s = !1,\n                a = null;\n            for (let h = 0, u = t.length; h < u; h++) {\n                var l = t[h];\n                if (!l.options.isWholeLine) {\n                    var d = l.options.className,\n                        c = Boolean(l.options.showIfCollapsed);\n                    let t = l.range;\n                    c && 1 === t.endColumn && t.endLineNumber !== t.startLineNumber && (t = new T.a(t.startLineNumber, t.startColumn, t.endLineNumber - 1, this._context.model.getLineMaxColumn(t.endLineNumber - 1))), a = o === d && s === c && T.a.areIntersectingOrTouching(a, t) ? T.a.plusRange(a, t) : (null !== o && this._renderNormalDecoration(e, a, o, s, n, r, i), o = d, s = c, t)\n                }\n            }\n            null !== o && this._renderNormalDecoration(e, a, o, s, n, r, i)\n        }\n        _renderNormalDecoration(e, t, i, n, r, o, s) {\n            var a = e.linesVisibleRangesForRange(t, \"findMatch\" === i);\n            if (a)\n                for (let e = 0, t = a.length; e < t; e++) {\n                    const t = a[e];\n                    if (!t.outsideRenderedLine) {\n                        var l, d = t.lineNumber - o;\n                        !n || 1 !== t.ranges.length || 0 === (l = t.ranges[0]).width && (t.ranges[0] = new ln(l.left, this._typicalHalfwidthCharacterWidth));\n                        for (let e = 0, n = t.ranges.length; e < n; e++) {\n                            var c = t.ranges[e];\n                            c = '<div class=\"cdr ' + i + '\" style=\"left:' + String(c.left) + \"px;width:\" + String(c.width) + \"px;height:\" + r + 'px;\"></div>';\n                            s[d] += c\n                        }\n                    }\n                }\n        }\n        render(e, t) {\n            return this._renderResult ? (e = t - e) < 0 || e >= this._renderResult.length ? \"\" : this._renderResult[e] : \"\"\n        }\n    }\n    var Dr = i(112),\n        Ir = i(7);\n    class Tr extends rn {\n        constructor(e, t, i, n) {\n            super(e);\n            const r = this._context.configuration.options;\n            var o = r.get(91),\n                a = r.get(66),\n                l = r.get(34),\n                d = r.get(94);\n            o = {\n                listenOnDomNode: i.domNode,\n                className: \"editor-scrollable \" + Object(ir.e)(e.theme.type),\n                useShadows: !1,\n                lazyRender: !0,\n                vertical: o.vertical,\n                horizontal: o.horizontal,\n                verticalHasArrows: o.verticalHasArrows,\n                horizontalHasArrows: o.horizontalHasArrows,\n                verticalScrollbarSize: o.verticalScrollbarSize,\n                verticalSliderSize: o.verticalSliderSize,\n                horizontalScrollbarSize: o.horizontalScrollbarSize,\n                horizontalSliderSize: o.horizontalSliderSize,\n                handleMouseWheel: o.handleMouseWheel,\n                alwaysConsumeMouseWheel: o.alwaysConsumeMouseWheel,\n                arrowSize: o.arrowSize,\n                mouseWheelScrollSensitivity: a,\n                fastScrollSensitivity: l,\n                scrollPredominantAxis: d,\n                scrollByPage: o.scrollByPage\n            };\n            this.scrollbar = this._register(new Dr.c(t.domNode, o, this._context.viewLayout.getScrollable())), on.write(this.scrollbar.getDomNode(), 5), this.scrollbarDomNode = Object(Ui.b)(this.scrollbar.getDomNode()), this.scrollbarDomNode.setPosition(\"absolute\"), this._setLayout();\n            const c = (e, t, i) => {\n                const n = {};\n                !t || (t = e.scrollTop) && (n.scrollTop = this._context.viewLayout.getCurrentScrollTop() + t, e.scrollTop = 0), !i || (i = e.scrollLeft) && (n.scrollLeft = this._context.viewLayout.getCurrentScrollLeft() + i, e.scrollLeft = 0), this._context.model.setScrollPosition(n, 1)\n            };\n            this._register(s.g(i.domNode, \"scroll\", e => c(i.domNode, !0, !0))), this._register(s.g(t.domNode, \"scroll\", e => c(t.domNode, !0, !1))), this._register(s.g(n.domNode, \"scroll\", e => c(n.domNode, !0, !1))), this._register(s.g(this.scrollbarDomNode.domNode, \"scroll\", e => c(this.scrollbarDomNode.domNode, !0, !1)))\n        }\n        dispose() {\n            super.dispose()\n        }\n        _setLayout() {\n            const e = this._context.configuration.options;\n            var t = e.get(129);\n            this.scrollbarDomNode.setLeft(t.contentLeft), \"right\" === e.get(64).side ? this.scrollbarDomNode.setWidth(t.contentWidth + t.minimap.minimapWidth) : this.scrollbarDomNode.setWidth(t.contentWidth), this.scrollbarDomNode.setHeight(t.height)\n        }\n        getOverviewRulerLayoutInfo() {\n            return this.scrollbar.getOverviewRulerLayoutInfo()\n        }\n        getDomNode() {\n            return this.scrollbarDomNode\n        }\n        delegateVerticalScrollbarMouseDown(e) {\n            this.scrollbar.delegateVerticalScrollbarMouseDown(e)\n        }\n        on配置Changed(e) {\n            if (e.hasChanged(91) || e.hasChanged(66) || e.hasChanged(34)) {\n                const e = this._context.configuration.options;\n                var t = e.get(91),\n                    i = e.get(66),\n                    n = e.get(34),\n                    r = e.get(94);\n                r = {\n                    vertical: t.vertical,\n                    horizontal: t.horizontal,\n                    verticalScrollbarSize: t.verticalScrollbarSize,\n                    horizontalScrollbarSize: t.horizontalScrollbarSize,\n                    scrollByPage: t.scrollByPage,\n                    handleMouseWheel: t.handleMouseWheel,\n                    mouseWheelScrollSensitivity: i,\n                    fastScrollSensitivity: n,\n                    scrollPredominantAxis: r\n                };\n                this.scrollbar.updateOptions(r)\n            }\n            return e.hasChanged(129) && this._setLayout(), !0\n        }\n        onScrollChanged(e) {\n            return !0\n        }\n        onThemeChanged(e) {\n            return this.scrollbar.updateClassName(\"editor-scrollable \" + Object(ir.e)(this._context.theme.type)), !0\n        }\n        prepareRender(e) {}\n        render(e) {\n            this.scrollbar.renderNow()\n        }\n    }\n    Object(ir.f)((e, t) => {\n        var i = e.getColor(Ir.fc);\n        i && t.addRule(`\\n\\t\\t\\t.monaco-scrollable-element > .shadow.top {\\n\\t\\t\\t\\tbox-shadow: ${i} 0 6px 6px -6px inset;\\n\\t\\t\\t}\\n\\n\\t\\t\\t.monaco-scrollable-element > .shadow.left {\\n\\t\\t\\t\\tbox-shadow: ${i} 6px 0 6px -6px inset;\\n\\t\\t\\t}\\n\\n\\t\\t\\t.monaco-scrollable-element > .shadow.top.left {\\n\\t\\t\\t\\tbox-shadow: ${i} 6px 6px 6px -6px inset;\\n\\t\\t\\t}\\n\\t\\t`), (i = e.getColor(Ir.hc)) && t.addRule(`\\n\\t\\t\\t.monaco-scrollable-element > .scrollbar > .slider {\\n\\t\\t\\t\\tbackground: ${i};\\n\\t\\t\\t}\\n\\t\\t`), (i = e.getColor(Ir.ic)) && t.addRule(`\\n\\t\\t\\t.monaco-scrollable-element > .scrollbar > .slider:hover {\\n\\t\\t\\t\\tbackground: ${i};\\n\\t\\t\\t}\\n\\t\\t`), (e = e.getColor(Ir.gc)) && t.addRule(`\\n\\t\\t\\t.monaco-scrollable-element > .scrollbar > .slider.active {\\n\\t\\t\\t\\tbackground: ${e};\\n\\t\\t\\t}\\n\\t\\t`)\n    }), i(400);\n    class Mr {\n        constructor(e, t, i) {\n            this._decorationToRenderBrand = void 0, this.startLineNumber = +e, this.endLineNumber = +t, this.className = String(i)\n        }\n    }\n    class Pr extends er {\n        _render(e, t, i) {\n            const n = [];\n            for (let i = e; i <= t; i++) {\n                n[i - e] = []\n            }\n            if (0 === i.length) return n;\n            i.sort((e, t) => e.className === t.className ? e.startLineNumber === t.startLineNumber ? e.endLineNumber - t.endLineNumber : e.startLineNumber - t.startLineNumber : e.className < t.className ? -1 : 1);\n            let r = null,\n                o = 0;\n            for (let l = 0, d = i.length; l < d; l++) {\n                var s = i[l],\n                    a = s.className;\n                let d = Math.max(s.startLineNumber, e) - e;\n                s = Math.min(s.endLineNumber, t) - e, o = r === a ? (d = Math.max(o + 1, d), Math.max(o, s)) : (r = a, s);\n                for (let e = d; e <= o; e++) n[e].push(r)\n            }\n            return n\n        }\n    }\n    class Ar extends Pr {\n        constructor(e) {\n            super(), this._context = e;\n            const t = this._context.configuration.options;\n            e = t.get(129), this._lineHeight = t.get(58), this._glyphMargin = t.get(49), this._glyphMarginLeft = e.glyphMarginLeft, this._glyphMarginWidth = e.glyphMarginWidth, this._renderResult = null, this._context.addEventHandler(this)\n        }\n        dispose() {\n            this._context.removeEventHandler(this), this._renderResult = null, super.dispose()\n        }\n        on配置Changed(e) {\n            const t = this._context.configuration.options;\n            var i = t.get(129);\n            return this._lineHeight = t.get(58), this._glyphMargin = t.get(49), this._glyphMarginLeft = i.glyphMarginLeft, this._glyphMarginWidth = i.glyphMarginWidth, !0\n        }\n        onDecorationsChanged(e) {\n            return !0\n        }\n        onFlushed(e) {\n            return !0\n        }\n        onLinesChanged(e) {\n            return !0\n        }\n        onLinesDeleted(e) {\n            return !0\n        }\n        onLinesInserted(e) {\n            return !0\n        }\n        onScrollChanged(e) {\n            return e.scrollTopChanged\n        }\n        onZonesChanged(e) {\n            return !0\n        }\n        _getDecorations(e) {\n            var t = e.getDecorationsInViewport();\n            let i = [],\n                n = 0;\n            for (let e = 0, s = t.length; e < s; e++) {\n                var r = t[e],\n                    o = r.options.glyphMarginClassName;\n                o && (i[n++] = new Mr(r.range.startLineNumber, r.range.endLineNumber, o))\n            }\n            return i\n        }\n        prepareRender(e) {\n            if (this._glyphMargin) {\n                var t = e.visibleRange.startLineNumber,\n                    i = e.visibleRange.endLineNumber,\n                    n = this._render(t, i, this._getDecorations(e)),\n                    r = (e = this._lineHeight.toString(), '\" style=\"left:' + this._glyphMarginLeft.toString() + \"px;width:\" + this._glyphMarginWidth.toString() + \"px;height:\" + e + 'px;\"></div>');\n                const s = [];\n                for (let e = t; e <= i; e++) {\n                    var o = e - t;\n                    const i = n[o];\n                    0 === i.length ? s[o] = \"\" : s[o] = '<div class=\"cgmr codicon ' + i.join(\" \") + r\n                }\n                this._renderResult = s\n            } else this._renderResult = null\n        }\n        render(e, t) {\n            return this._renderResult ? (e = t - e) < 0 || e >= this._renderResult.length ? \"\" : this._renderResult[e] : \"\"\n        }\n    }\n    i(402);\n    var Rr = i(76);\n    class Fr extends er {\n        constructor(e) {\n            super(), this._context = e, this._primaryPosition = null;\n            const t = this._context.configuration.options;\n            var i = t.get(130);\n            e = t.get(43);\n            this._lineHeight = t.get(58), this._spaceWidth = e.spaceWidth, this._maxIndentLeft = -1 === i.wrappingColumn ? -1 : i.wrappingColumn * e.typicalHalfwidthCharacterWidth, this._bracketPairGuideOptions = t.get(13), this._renderResult = null, this._context.addEventHandler(this)\n        }\n        dispose() {\n            this._context.removeEventHandler(this), this._renderResult = null, super.dispose()\n        }\n        on配置Changed(e) {\n            const t = this._context.configuration.options;\n            var i = t.get(130),\n                n = t.get(43);\n            return this._lineHeight = t.get(58), this._spaceWidth = n.spaceWidth, this._maxIndentLeft = -1 === i.wrappingColumn ? -1 : i.wrappingColumn * n.typicalHalfwidthCharacterWidth, this._bracketPairGuideOptions = t.get(13), !0\n        }\n        onCursorStateChanged(e) {\n            var t = e.selections[0].getPosition();\n            return !(null !== (e = this._primaryPosition) && void 0 !== e && e.equals(t) || (this._primaryPosition = t, 0))\n        }\n        onDecorationsChanged(e) {\n            return !0\n        }\n        onFlushed(e) {\n            return !0\n        }\n        onLinesChanged(e) {\n            return !0\n        }\n        onLinesDeleted(e) {\n            return !0\n        }\n        onLinesInserted(e) {\n            return !0\n        }\n        onScrollChanged(e) {\n            return e.scrollTopChanged\n        }\n        onZonesChanged(e) {\n            return !0\n        }\n        onLanguage配置Changed(e) {\n            return !0\n        }\n        prepareRender(e) {\n            var t;\n            if (this._bracketPairGuideOptions.indentation || !1 !== this._bracketPairGuideOptions.bracketPairs) {\n                var i = e.visibleRange.startLineNumber,\n                    n = e.visibleRange.endLineNumber,\n                    r = e.scrollWidth,\n                    o = this._lineHeight,\n                    s = this._primaryPosition,\n                    a = this.getGuidesByLine(i, n, s);\n                const g = [];\n                for (let s = i; s <= n; s++) {\n                    var l = s - i,\n                        d = a[l];\n                    let n = \"\";\n                    var c = null !== (t = null === (t = e.visibleRangeForPosition(new Re.a(s, 1))) || void 0 === t ? void 0 : t.left) && void 0 !== t ? t : 0;\n                    for (const t of d) {\n                        var h = c + (t.visibleColumn - 1) * this._spaceWidth;\n                        if (r < h || 0 < this._maxIndentLeft && h > this._maxIndentLeft) break;\n                        var u = t.horizontalLine ? t.horizontalLine.top ? \"horizontal-top\" : \"horizontal-bottom\" : \"vertical\",\n                            p = t.horizontalLine ? (null !== (p = null === (p = e.visibleRangeForPosition(new Re.a(s, t.horizontalLine.endColumn))) || void 0 === p ? void 0 : p.left) && void 0 !== p ? p : h + this._spaceWidth) - h : this._spaceWidth;\n                        n += `<div class=\"core-guide ${t.className} ${u}\" style=\"left:${h}px;height:${o}px;width:${p}px\"></div>`\n                    }\n                    g[l] = n\n                }\n                this._renderResult = g\n            } else this._renderResult = null\n        }\n        getGuidesByLine(e, t, i) {\n            var n = !1 !== this._bracketPairGuideOptions.bracketPairs ? this._context.model.getBracketGuidesInRangeByLine(e, t, i, {\n                    highlightActive: this._bracketPairGuideOptions.highlightActiveBracketPair,\n                    horizontalGuides: !0 === this._bracketPairGuideOptions.bracketPairsHorizontal ? W.c.Enabled : \"active\" === this._bracketPairGuideOptions.bracketPairsHorizontal ? W.c.EnabledForActive : W.c.Disabled,\n                    includeInactive: !0 === this._bracketPairGuideOptions.bracketPairs\n                }) : null,\n                r = this._bracketPairGuideOptions.indentation ? this._context.model.getLinesIndentGuides(e, t) : null;\n            let o = 0,\n                s = 0,\n                a = 0;\n            this._bracketPairGuideOptions.highlightActiveIndentation && i && (o = (i = this._context.model.getActiveIndentGuide(i.lineNumber, e, t)).startLineNumber, s = i.endLineNumber, a = i.indent);\n            var {\n                indentSize: l\n            } = this._context.model.getTextModelOptions();\n            const d = [];\n            for (let i = e; i <= t; i++) {\n                const t = new Array;\n                d.push(t);\n                var c = n ? n[i - e] : [];\n                const g = new ne.a(c);\n                var h = r ? r[i - e] : [];\n                for (let e = 1; e <= h; e++) {\n                    const n = (e - 1) * l + 1;\n                    var u = 0 === c.length && o <= i && i <= s && e === a;\n                    t.push(...g.takeWhile(e => e.visibleColumn < n) || []);\n                    var p = g.peek();\n                    p && p.visibleColumn === n && !p.horizontalLine || t.push(new W.d(n, u ? \"core-guide-indent-active\" : \"core-guide-indent\", null))\n                }\n                t.push(...g.takeWhile(e => !0) || [])\n            }\n            return d\n        }\n        render(e, t) {\n            return this._renderResult ? (e = t - e) < 0 || e >= this._renderResult.length ? \"\" : this._renderResult[e] : \"\"\n        }\n    }\n\n    function jr(e) {\n        if (!e || !e.isTransparent()) return e\n    }\n    Object(ir.f)((e, t) => {\n        var i = e.getColor(tr.x);\n        i && t.addRule(`.monaco-editor .lines-content .core-guide-indent { box-shadow: 1px 0 0 0 ${i} inset; }`), (i = e.getColor(tr.a) || i) && t.addRule(`.monaco-editor .lines-content .core-guide-indent-active { box-shadow: 1px 0 0 0 ${i} inset; }`);\n        const n = [{\n                bracketColor: tr.c,\n                guideColor: tr.p,\n                guideColorActive: tr.j\n            }, {\n                bracketColor: tr.d,\n                guideColor: tr.q,\n                guideColorActive: tr.k\n            }, {\n                bracketColor: tr.e,\n                guideColor: tr.r,\n                guideColorActive: tr.l\n            }, {\n                bracketColor: tr.f,\n                guideColor: tr.s,\n                guideColorActive: tr.m\n            }, {\n                bracketColor: tr.g,\n                guideColor: tr.t,\n                guideColorActive: tr.n\n            }, {\n                bracketColor: tr.h,\n                guideColor: tr.u,\n                guideColorActive: tr.o\n            }],\n            r = new Rr.a;\n        var o = n.map(t => {\n            const i = e.getColor(t.bracketColor);\n            var n = e.getColor(t.guideColor);\n            t = e.getColor(t.guideColorActive), n = jr(null !== (n = jr(n)) && void 0 !== n ? n : null == i ? void 0 : i.transparent(.3)), t = jr(null !== (t = jr(t)) && void 0 !== t ? t : i);\n            if (n && t) return {\n                guideColor: n,\n                guideColorActive: t\n            }\n        }).filter(ve.g);\n        if (0 < o.length) {\n            for (let e = 0; e < 30; e++) {\n                const i = o[e % o.length];\n                t.addRule(`.monaco-editor .${r.getInlineClassNameOfLevel(e).replace(/ /g,\".\")} { --guide-color: ${i.guideColor}; --guide-color-active: ${i.guideColorActive}; }`)\n            }\n            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.${r.activeClassName} { box-shadow: 1px 0 0 0 var(--guide-color-active) inset; }`), t.addRule(`.monaco-editor .horizontal-top.${r.activeClassName} { border-top: 1px solid var(--guide-color-active); }`), t.addRule(`.monaco-editor .horizontal-bottom.${r.activeClassName} { border-bottom: 1px solid var(--guide-color-active); }`)\n        }\n    }), i(404);\n    class Br {\n        constructor() {\n            this._currentVisibleRange = new T.a(1, 1, 1, 1)\n        }\n        getCurrentVisibleRange() {\n            return this._currentVisibleRange\n        }\n        setCurrentVisibleRange(e) {\n            this._currentVisibleRange = e\n        }\n    }\n    class Vr {\n        constructor(e, t, i, n, r, o) {\n            this.lineNumber = e, this.startColumn = t, this.endColumn = i, this.startScrollTop = n, this.stopScrollTop = r, this.scrollType = o, this.type = \"range\", this.minLineNumber = e, this.maxLineNumber = e\n        }\n    }\n    class Wr {\n        constructor(e, t, i, n) {\n            this.selections = e, this.startScrollTop = t, this.stopScrollTop = i, this.scrollType = n, this.type = \"selections\";\n            let r = e[0].startLineNumber,\n                o = e[0].endLineNumber;\n            for (let t = 1, i = e.length; t < i; t++) {\n                var s = e[t];\n                r = Math.min(r, s.startLineNumber), o = Math.max(o, s.endLineNumber)\n            }\n            this.minLineNumber = r, this.maxLineNumber = o\n        }\n    }\n    class zr extends rn {\n        constructor(e, t) {\n            super(e), this._linesContent = t, this._textRangeRestingSpot = document.createElement(\"div\"), this._visibleLines = new fr(this), this.domNode = this._visibleLines.domNode;\n            var i = this._context.configuration;\n            const n = this._context.configuration.options;\n            e = n.get(43), t = n.get(130), this._lineHeight = n.get(58), this._typicalHalfwidthCharacterWidth = e.typicalHalfwidthCharacterWidth, this._isViewportWrapping = t.isViewportWrapping, this._revealHorizontalRightPadding = n.get(88), this._cursorSurroundingLines = n.get(25), this._cursorSurroundingLinesStyle = n.get(26), this._canUseLayerHinting = !n.get(28), this._viewLineOptions = new vn(i, this._context.theme.type), on.write(this.domNode, 7), this.domNode.setClassName(\"view-lines \" + sr), zi.applyFontInfo(this.domNode, e), this._maxLineWidth = 0, this._asyncUpdateLineWidths = new q.e(() => {\n                this._updateLineWidthsSlow()\n            }, 200), this._asyncCheckMonospaceFontAssumptions = new q.e(() => {\n                this._checkMonospaceFontAssumptions()\n            }, 2e3), this._lastRenderedData = new Br, this._horizontalRevealRequest = null\n        }\n        dispose() {\n            this._asyncUpdateLineWidths.dispose(), this._asyncCheckMonospaceFontAssumptions.dispose(), super.dispose()\n        }\n        getDomNode() {\n            return this.domNode\n        }\n        createVisibleLine() {\n            return new bn(this._viewLineOptions)\n        }\n        on配置Changed(e) {\n            this._visibleLines.on配置Changed(e), e.hasChanged(130) && (this._maxLineWidth = 0);\n            const t = this._context.configuration.options;\n            var i = t.get(43),\n                n = t.get(130);\n            return this._lineHeight = t.get(58), this._typicalHalfwidthCharacterWidth = i.typicalHalfwidthCharacterWidth, this._isViewportWrapping = n.isViewportWrapping, this._revealHorizontalRightPadding = t.get(88), this._cursorSurroundingLines = t.get(25), this._cursorSurroundingLinesStyle = t.get(26), this._canUseLayerHinting = !t.get(28), zi.applyFontInfo(this.domNode, i), this._onOptionsMaybeChanged(), e.hasChanged(129) && (this._maxLineWidth = 0), !0\n        }\n        _onOptionsMaybeChanged() {\n            var e = this._context.configuration;\n            e = new vn(e, this._context.theme.type);\n            if (this._viewLineOptions.equals(e)) return !1;\n            this._viewLineOptions = e;\n            e = this._visibleLines.getStartLineNumber();\n            var t = this._visibleLines.getEndLineNumber();\n            for (let i = e; i <= t; i++) {\n                this._visibleLines.getVisibleLine(i).onOptionsChanged(this._viewLineOptions)\n            }\n            return !0\n        }\n        onCursorStateChanged(e) {\n            var t = this._visibleLines.getStartLineNumber(),\n                i = this._visibleLines.getEndLineNumber();\n            let n = !1;\n            for (let e = t; e <= i; e++) n = this._visibleLines.getVisibleLine(e).onSelectionChanged() || n;\n            return n\n        }\n        onDecorationsChanged(e) {\n            var t = this._visibleLines.getStartLineNumber(),\n                i = this._visibleLines.getEndLineNumber();\n            for (let e = t; e <= i; e++) this._visibleLines.getVisibleLine(e).onDecorationsChanged();\n            return !0\n        }\n        onFlushed(e) {\n            return e = this._visibleLines.onFlushed(e), this._maxLineWidth = 0, e\n        }\n        onLinesChanged(e) {\n            return this._visibleLines.onLinesChanged(e)\n        }\n        onLinesDeleted(e) {\n            return this._visibleLines.onLinesDeleted(e)\n        }\n        onLinesInserted(e) {\n            return this._visibleLines.onLinesInserted(e)\n        }\n        onRevealRangeRequest(e) {\n            var t = this._computeScrollTopToRevealRange(this._context.viewLayout.getFutureViewport(), e.source, e.range, e.selections, e.verticalType);\n            if (-1 === t) return !1;\n            let i = this._context.viewLayout.validateScrollPosition({\n                scrollTop: t\n            });\n            return e.revealHorizontal ? e.range && e.range.startLineNumber !== e.range.endLineNumber ? i = {\n                scrollTop: i.scrollTop,\n                scrollLeft: 0\n            } : e.range ? this._horizontalRevealRequest = new Vr(e.range.startLineNumber, e.range.startColumn, e.range.endColumn, this._context.viewLayout.getCurrentScrollTop(), i.scrollTop, e.scrollType) : e.selections && 0 < e.selections.length && (this._horizontalRevealRequest = new Wr(e.selections, this._context.viewLayout.getCurrentScrollTop(), i.scrollTop, e.scrollType)) : this._horizontalRevealRequest = null, e = Math.abs(this._context.viewLayout.getCurrentScrollTop() - i.scrollTop) <= this._lineHeight ? 1 : e.scrollType, this._context.model.setScrollPosition(i, e), !0\n        }\n        onScrollChanged(e) {\n            var t, i;\n            return this._horizontalRevealRequest && e.scrollLeftChanged && (this._horizontalRevealRequest = null), this._horizontalRevealRequest && e.scrollTopChanged && (t = Math.min(this._horizontalRevealRequest.startScrollTop, this._horizontalRevealRequest.stopScrollTop), i = Math.max(this._horizontalRevealRequest.startScrollTop, this._horizontalRevealRequest.stopScrollTop), (e.scrollTop < t || e.scrollTop > i) && (this._horizontalRevealRequest = null)), this.domNode.setWidth(e.scrollWidth), this._visibleLines.onScrollChanged(e) || !0\n        }\n        onTokensChanged(e) {\n            return this._visibleLines.onTokensChanged(e)\n        }\n        onZonesChanged(e) {\n            return this._context.model.setMaxLineWidth(this._maxLineWidth), this._visibleLines.onZonesChanged(e)\n        }\n        onThemeChanged(e) {\n            return this._onOptionsMaybeChanged()\n        }\n        getPositionFromDOMInfo(e, t) {\n            if (null === (r = this._getViewLineDomNode(e))) return null;\n            var i = this._getLineNumberFor(r);\n            if (-1 === i) return null;\n            if (i < 1 || i > this._context.model.getLineCount()) return null;\n            if (1 === this._context.model.getLineMaxColumn(i)) return new Re.a(i, 1);\n            var n = this._visibleLines.getStartLineNumber(),\n                r = this._visibleLines.getEndLineNumber();\n            if (i < n || r < i) return null;\n            let o = this._visibleLines.getVisibleLine(i).getColumnOfNodeOffset(i, e, t);\n            return o < (t = this._context.model.getLineMinColumn(i)) && (o = t), new Re.a(i, o)\n        }\n        _getViewLineDomNode(e) {\n            for (; e && 1 === e.nodeType;) {\n                if (e.className === bn.CLASS_NAME) return e;\n                e = e.parentElement\n            }\n            return null\n        }\n        _getLineNumberFor(e) {\n            var t = this._visibleLines.getStartLineNumber(),\n                i = this._visibleLines.getEndLineNumber();\n            for (let n = t; n <= i; n++) {\n                if (e === this._visibleLines.getVisibleLine(n).getDomNode()) return n\n            }\n            return -1\n        }\n        getLineWidth(e) {\n            var t = this._visibleLines.getStartLineNumber(),\n                i = this._visibleLines.getEndLineNumber();\n            return e < t || i < e ? -1 : this._visibleLines.getVisibleLine(e).getWidth()\n        }\n        linesVisibleRangesForRange(e, t) {\n            if (this.shouldRender()) return null;\n            var i = e.endLineNumber,\n                n = T.a.intersectRanges(e, this._lastRenderedData.getCurrentVisibleRange());\n            if (!n) return null;\n            let r = [],\n                o = 0;\n            var s = new mn(this.domNode.domNode, this._textRangeRestingSpot);\n            let a = 0;\n            t && (a = this._context.model.coordinatesConverter.convertViewPositionToModelPosition(new Re.a(n.startLineNumber, 1)).lineNumber);\n            var l = this._visibleLines.getStartLineNumber(),\n                d = this._visibleLines.getEndLineNumber();\n            for (let e = n.startLineNumber; e <= n.endLineNumber; e++)\n                if (!(e < l || e > d)) {\n                    var c = e === n.startLineNumber ? n.startColumn : 1,\n                        h = e === n.endLineNumber ? n.endColumn : this._context.model.getLineMaxColumn(e);\n                    const l = this._visibleLines.getVisibleLine(e).getVisibleRangesForRange(e, c, h, s);\n                    l && (t && e < i && (h = a, a = this._context.model.coordinatesConverter.convertViewPositionToModelPosition(new Re.a(e + 1, 1)).lineNumber, h !== a && (l.ranges[l.ranges.length - 1].width += this._typicalHalfwidthCharacterWidth)), r[o++] = new an(l.outsideRenderedLine, e, ln.from(l.ranges)))\n                } return 0 === o ? null : r\n        }\n        _visibleRangesForLineRange(e, t, i) {\n            return this.shouldRender() || e < this._visibleLines.getStartLineNumber() || e > this._visibleLines.getEndLineNumber() ? null : this._visibleLines.getVisibleLine(e).getVisibleRangesForRange(e, t, i, new mn(this.domNode.domNode, this._textRangeRestingSpot))\n        }\n        visibleRangeForPosition(e) {\n            return (e = this._visibleRangesForLineRange(e.lineNumber, e.column, e.column)) ? new cn(e.outsideRenderedLine, e.ranges[0].left) : null\n        }\n        updateLineWidths() {\n            this._updateLineWidths(!1)\n        }\n        _updateLineWidthsFast() {\n            return this._updateLineWidths(!0)\n        }\n        _updateLineWidthsSlow() {\n            this._updateLineWidths(!1)\n        }\n        _updateLineWidths(e) {\n            var t = this._visibleLines.getStartLineNumber(),\n                i = this._visibleLines.getEndLineNumber();\n            let n = 1,\n                r = !0;\n            for (let o = t; o <= i; o++) {\n                const t = this._visibleLines.getVisibleLine(o);\n                !e || t.getWidthIsFast() ? n = Math.max(n, t.getWidth()) : r = !1\n            }\n            return r && 1 === t && i === this._context.model.getLineCount() && (this._maxLineWidth = 0), this._ensureMaxLineWidth(n), r\n        }\n        _checkMonospaceFontAssumptions() {\n            let e = -1,\n                t = -1;\n            var i, n = this._visibleLines.getStartLineNumber(),\n                r = this._visibleLines.getEndLineNumber();\n            for (let o = n; o <= r; o++) {\n                const n = this._visibleLines.getVisibleLine(o);\n                !n.needsMonospaceFontCheck() || (i = n.getWidth()) > t && (t = i, e = o)\n            }\n            if (-1 !== e && !this._visibleLines.getVisibleLine(e).monospaceAssumptionsAreValid())\n                for (let e = n; e <= r; e++) {\n                    this._visibleLines.getVisibleLine(e).onMonospaceAssumptionsInvalidated()\n                }\n        }\n        prepareRender() {\n            throw new Error(\"Not supported\")\n        }\n        render() {\n            throw new Error(\"Not supported\")\n        }\n        renderText(e) {\n            var t;\n            if (this._visibleLines.renderLines(e), this._lastRenderedData.setCurrentVisibleRange(e.visibleRange), this.domNode.setWidth(this._context.viewLayout.getScrollWidth()), this.domNode.setHeight(Math.min(this._context.viewLayout.getScrollHeight(), 1e6)), this._horizontalRevealRequest && (i = this._horizontalRevealRequest, e.startLineNumber <= i.minLineNumber && i.maxLineNumber <= e.endLineNumber && (this._horizontalRevealRequest = null, this.onDidRender(), (t = this._computeScrollLeftToReveal(i)) && (this._isViewportWrapping || this._ensureMaxLineWidth(t.maxHorizontalOffset), this._context.model.setScrollPosition({\n                    scrollLeft: t.scrollLeft\n                }, i.scrollType)))), this._updateLineWidthsFast() || this._asyncUpdateLineWidths.schedule(), A.d && !this._asyncCheckMonospaceFontAssumptions.isScheduled()) {\n                var i = this._visibleLines.getStartLineNumber(),\n                    n = this._visibleLines.getEndLineNumber();\n                for (let e = i; e <= n; e++) {\n                    if (this._visibleLines.getVisibleLine(e).needsMonospaceFontCheck()) {\n                        this._asyncCheckMonospaceFontAssumptions.schedule();\n                        break\n                    }\n                }\n            }\n            this._linesContent.setLayerHinting(this._canUseLayerHinting), this._linesContent.setContain(\"strict\"), e = this._context.viewLayout.getCurrentScrollTop() - e.bigNumbersDelta, this._linesContent.setTop(-e), this._linesContent.setLeft(-this._context.viewLayout.getCurrentScrollLeft())\n        }\n        _ensureMaxLineWidth(e) {\n            e = Math.ceil(e), this._maxLineWidth < e && (this._maxLineWidth = e, this._context.model.setMaxLineWidth(this._maxLineWidth))\n        }\n        _computeScrollTopToRevealRange(e, t, i, n, r) {\n            var o, s, a = e.top,\n                l = e.height;\n            e = a + l;\n            let d, c, h, u;\n            if (n && 0 < n.length) {\n                let e = n[0].startLineNumber,\n                    t = n[0].endLineNumber;\n                for (let i = 1, r = n.length; i < r; i++) {\n                    var p = n[i];\n                    e = Math.min(e, p.startLineNumber), t = Math.max(t, p.endLineNumber)\n                }\n                d = !1, c = this._context.viewLayout.getVerticalOffsetForLineNumber(e), h = this._context.viewLayout.getVerticalOffsetForLineNumber(t) + this._lineHeight\n            } else {\n                if (!i) return -1;\n                d = !0, c = this._context.viewLayout.getVerticalOffsetForLineNumber(i.startLineNumber), h = this._context.viewLayout.getVerticalOffsetForLineNumber(i.endLineNumber) + this._lineHeight\n            }\n            if (\"mouse\" === t && \"default\" === this._cursorSurroundingLinesStyle || (c -= (o = Math.min(l / this._lineHeight / 2, this._cursorSurroundingLines)) * this._lineHeight, h += Math.max(0, o - 1) * this._lineHeight), 0 !== r && 4 !== r || (h += this._lineHeight), h - c > l) {\n                if (!d) return -1;\n                u = c\n            } else u = 5 === r || 6 === r ? 6 === r && a <= c && h <= e ? a : (s = c - (o = Math.max(5 * this._lineHeight, .2 * l)), o = h - l, Math.max(o, s)) : 1 === r || 2 === r ? 2 === r && a <= c && h <= e ? a : (s = (c + h) / 2, Math.max(0, s - l / 2)) : this._computeMinimumScrolling(a, e, c, h, 3 === r, 4 === r);\n            return u\n        }\n        _computeScrollLeftToReveal(e) {\n            var t = this._context.viewLayout.getCurrentViewport(),\n                i = t.left,\n                n = i + t.width;\n            let r = 1073741824,\n                o = 0;\n            if (\"range\" === e.type) {\n                var s = this._visibleRangesForLineRange(e.lineNumber, e.startColumn, e.endColumn);\n                if (!s) return null;\n                for (const e of s.ranges) r = Math.min(r, Math.round(e.left)), o = Math.max(o, Math.round(e.left + e.width))\n            } else\n                for (const t of e.selections) {\n                    if (t.startLineNumber !== t.endLineNumber) return null;\n                    var a = this._visibleRangesForLineRange(t.startLineNumber, t.startColumn, t.endColumn);\n                    if (!a) return null;\n                    for (const e of a.ranges) r = Math.min(r, Math.round(e.left)), o = Math.max(o, Math.round(e.left + e.width))\n                }\n            return r = Math.max(0, r - zr.HORIZONTAL_EXTRA_PX), o += this._revealHorizontalRightPadding, \"selections\" === e.type && o - r > t.width ? null : {\n                scrollLeft: this._computeMinimumScrolling(i, n, r, o),\n                maxHorizontalOffset: o\n            }\n        }\n        _computeMinimumScrolling(e, t, i, n, r, o) {\n            r = !!r, o = !!o;\n            var s = (t |= 0) - (e |= 0);\n            return (n |= 0) - (i |= 0) < s && !r ? o ? Math.max(0, n - s) : i < e ? i : t < n ? Math.max(0, n - s) : e : i\n        }\n    }\n    zr.HORIZONTAL_EXTRA_PX = 30, i(406);\n    class Hr extends Pr {\n        constructor(e) {\n            super(), this._context = e;\n            e = this._context.configuration.options.get(129), this._decorationsLeft = e.decorationsLeft, this._decorationsWidth = e.decorationsWidth, this._renderResult = null, this._context.addEventHandler(this)\n        }\n        dispose() {\n            this._context.removeEventHandler(this), this._renderResult = null, super.dispose()\n        }\n        on配置Changed(e) {\n            var t = this._context.configuration.options.get(129);\n            return this._decorationsLeft = t.decorationsLeft, this._decorationsWidth = t.decorationsWidth, !0\n        }\n        onDecorationsChanged(e) {\n            return !0\n        }\n        onFlushed(e) {\n            return !0\n        }\n        onLinesChanged(e) {\n            return !0\n        }\n        onLinesDeleted(e) {\n            return !0\n        }\n        onLinesInserted(e) {\n            return !0\n        }\n        onScrollChanged(e) {\n            return e.scrollTopChanged\n        }\n        onZonesChanged(e) {\n            return !0\n        }\n        _getDecorations(e) {\n            var t = e.getDecorationsInViewport();\n            let i = [],\n                n = 0;\n            for (let e = 0, s = t.length; e < s; e++) {\n                var r = t[e],\n                    o = r.options.linesDecorationsClassName;\n                o && (i[n++] = new Mr(r.range.startLineNumber, r.range.endLineNumber, o)), (o = r.options.firstLineDecorationClassName) && (i[n++] = new Mr(r.range.startLineNumber, r.range.startLineNumber, o))\n            }\n            return i\n        }\n        prepareRender(e) {\n            var t = e.visibleRange.startLineNumber,\n                i = e.visibleRange.endLineNumber,\n                n = this._render(t, i, this._getDecorations(e)),\n                r = '\" style=\"left:' + this._decorationsLeft.toString() + \"px;width:\" + this._decorationsWidth.toString() + 'px;\"></div>';\n            const o = [];\n            for (let e = t; e <= i; e++) {\n                var s = e - t,\n                    a = n[s];\n                let i = \"\";\n                for (let e = 0, t = a.length; e < t; e++) i += '<div class=\"cldr ' + a[e] + r;\n                o[s] = i\n            }\n            this._renderResult = o\n        }\n        render(e, t) {\n            return this._renderResult ? this._renderResult[t - e] : \"\"\n        }\n    }\n    i(408);\n    class Ur extends Pr {\n        constructor(e) {\n            super(), this._context = e, this._renderResult = null, this._context.addEventHandler(this)\n        }\n        dispose() {\n            this._context.removeEventHandler(this), this._renderResult = null, super.dispose()\n        }\n        on配置Changed(e) {\n            return !0\n        }\n        onDecorationsChanged(e) {\n            return !0\n        }\n        onFlushed(e) {\n            return !0\n        }\n        onLinesChanged(e) {\n            return !0\n        }\n        onLinesDeleted(e) {\n            return !0\n        }\n        onLinesInserted(e) {\n            return !0\n        }\n        onScrollChanged(e) {\n            return e.scrollTopChanged\n        }\n        onZonesChanged(e) {\n            return !0\n        }\n        _getDecorations(e) {\n            var t = e.getDecorationsInViewport();\n            let i = [],\n                n = 0;\n            for (let e = 0, s = t.length; e < s; e++) {\n                var r = t[e],\n                    o = r.options.marginClassName;\n                o && (i[n++] = new Mr(r.range.startLineNumber, r.range.endLineNumber, o))\n            }\n            return i\n        }\n        prepareRender(e) {\n            var t = e.visibleRange.startLineNumber,\n                i = e.visibleRange.endLineNumber,\n                n = this._render(t, i, this._getDecorations(e));\n            const r = [];\n            for (let e = t; e <= i; e++) {\n                var o = e - t,\n                    s = n[o];\n                let i = \"\";\n                for (let e = 0, t = s.length; e < t; e++) i += '<div class=\"cmdr ' + s[e] + '\" style=\"\"></div>';\n                r[o] = i\n            }\n            this._renderResult = r\n        }\n        render(e, t) {\n            return this._renderResult ? this._renderResult[t - e] : \"\"\n        }\n    }\n    i(410);\n    class Kr {\n        constructor(e, t, i, n) {\n            this._rgba8Brand = void 0, this.r = Kr._clamp(e), this.g = Kr._clamp(t), this.b = Kr._clamp(i), this.a = Kr._clamp(n)\n        }\n        equals(e) {\n            return this.r === e.r && this.g === e.g && this.b === e.b && this.a === e.a\n        }\n        static _clamp(e) {\n            return e < 0 ? 0 : 255 < e ? 255 : 0 | e\n        }\n    }\n    Kr.Empty = new Kr(0, 0, 0, 0);\n    class $r extends v.a {\n        constructor() {\n            super(), this._onDidChange = new D.b, this.onDidChange = this._onDidChange.event, this._updateColorMap(), this._register(z.A.onDidChange(e => {\n                e.changedColorMap && this._updateColorMap()\n            }))\n        }\n        static getInstance() {\n            return this._INSTANCE || (this._INSTANCE = Object(v.h)(new $r)), this._INSTANCE\n        }\n        _updateColorMap() {\n            const e = z.A.getColorMap();\n            if (!e) return this._colors = [Kr.Empty], void(this._backgroundIsLight = !0);\n            this._colors = [Kr.Empty];\n            for (let i = 1; i < e.length; i++) {\n                var t = e[i].rgba;\n                this._colors[i] = new Kr(t.r, t.g, t.b, Math.round(255 * t.a))\n            }\n            var i = e[2].getRelativeLuminance();\n            this._backgroundIsLight = .5 <= i, this._onDidChange.fire(void 0)\n        }\n        getColor(e) {\n            return (e < 1 || e >= this._colors.length) && (e = 2), this._colors[e]\n        }\n        backgroundIsLight() {\n            return this._backgroundIsLight\n        }\n    }\n    $r._INSTANCE = null;\n    const qr = (() => {\n        const e = [];\n        for (let t = 32; t <= 126; t++) e.push(t);\n        return e.push(65533), e\n    })();\n    var Gr = i(75);\n    class Yr {\n        constructor(e, t) {\n            this.scale = t, this._minimapCharRendererBrand = void 0, this.charDataNormal = Yr.soften(e, .8), this.charDataLight = Yr.soften(e, 50 / 60)\n        }\n        static soften(e, t) {\n            let i = new Uint8ClampedArray(e.length);\n            for (let n = 0, r = e.length; n < r; n++) i[n] = Object(Gr.b)(e[n] * t);\n            return i\n        }\n        renderChar(e, t, i, n, r, o, s, a, l, d, c) {\n            var h = +this.scale,\n                u = 2 * this.scale,\n                p = c ? 1 : u;\n            if (t + h > e.width || i + p > e.height) console.warn(\"bad render request outside image data\");\n            else {\n                var g = d ? this.charDataLight : this.charDataNormal,\n                    f = (n = (n = n, l = l, (n -= 32) < 0 || 96 < n ? l <= 2 ? (n + 96) % 96 : 95 : n), 4 * e.width),\n                    m = s.r,\n                    v = s.g,\n                    b = s.b,\n                    _ = r.r - m,\n                    w = r.g - v,\n                    y = r.b - b,\n                    C = Math.max(o, a);\n                const c = e.data;\n                let S = n * h * u,\n                    k = i * f + 4 * t;\n                for (let e = 0; e < p; e++) {\n                    let e = k;\n                    for (let t = 0; t < h; t++) {\n                        var x = g[S++] / 255 * (o / 255);\n                        c[e++] = m + _ * x, c[e++] = v + w * x, c[e++] = b + y * x, c[e++] = C\n                    }\n                    k += f\n                }\n            }\n        }\n        blockRenderChar(e, t, i, n, r, o, s, a) {\n            var l = +this.scale,\n                d = 2 * this.scale,\n                c = a ? 1 : d;\n            if (t + l > e.width || i + c > e.height) console.warn(\"bad render request outside image data\");\n            else {\n                var h = 4 * e.width,\n                    u = r / 255 * .5,\n                    p = (a = o.r, d = o.g, o = o.b, a + (n.r - a) * u),\n                    g = d + (n.g - d) * u,\n                    f = o + (n.b - o) * u,\n                    m = Math.max(r, s);\n                const v = e.data;\n                let b = i * h + 4 * t;\n                for (let e = 0; e < c; e++) {\n                    let e = b;\n                    for (let t = 0; t < l; t++) v[e++] = p, v[e++] = g, v[e++] = f, v[e++] = m;\n                    b += h\n                }\n            }\n        }\n    }\n    var Zr = i(104);\n    const Xr = {\n            0: 0,\n            1: 1,\n            2: 2,\n            3: 3,\n            4: 4,\n            5: 5,\n            6: 6,\n            7: 7,\n            8: 8,\n            9: 9,\n            A: 10,\n            B: 11,\n            C: 12,\n            D: 13,\n            E: 14,\n            F: 15\n        },\n        Qr = e => {\n            const t = new Uint8ClampedArray(e.length / 2);\n            for (let i = 0; i < e.length; i += 2) t[i >> 1] = Xr[e[i]] << 4 | 15 & Xr[e[i + 1]];\n            return t\n        },\n        Jr = {\n            1: Object(Zr.a)(() => Qr(\"0000511D6300CF609C709645A78432005642574171487021003C451900274D35D762755E8B629C5BA856AF57BA649530C167D1512A272A3F6038604460398526BCA2A968DB6F8957C768BE5FBE2FB467CF5D8D5B795DC7625B5DFF50DE64C466DB2FC47CD860A65E9A2EB96CB54CE06DA763AB2EA26860524D3763536601005116008177A8705E53AB738E6A982F88BAA35B5F5B626D9C636B449B737E5B7B678598869A662F6B5B8542706C704C80736A607578685B70594A49715A4522E792\")),\n            2: Object(Zr.a)(() => Qr(\"000000000000000055394F383D2800008B8B1F210002000081B1CBCBCC820000847AAF6B9AAF2119BE08B8881AD60000A44FD07DCCF107015338130C00000000385972265F390B406E2437634B4B48031B12B8A0847000001E15B29A402F0000000000004B33460B00007A752C2A0000000000004D3900000084394B82013400ABA5CFC7AD9C0302A45A3E5A98AB000089A43382D97900008BA54AA087A70A0248A6A7AE6DBE0000BF6F94987EA40A01A06DCFA7A7A9030496C32F77891D0000A99FB1A0AFA80603B29AB9CA75930D010C0948354D3900000C0948354F37460D0028BE673D8400000000AF9D7B6E00002B007AA8933400007AA642675C2700007984CFB9C3985B768772A8A6B7B20000CAAECAAFC4B700009F94A6009F840009D09F9BA4CA9C0000CC8FC76DC87F0000C991C472A2000000A894A48CA7B501079BA2C9C69BA20000B19A5D3FA89000005CA6009DA2960901B0A7F0669FB200009D009E00B7890000DAD0F5D092820000D294D4C48BD10000B5A7A4A3B1A50402CAB6CBA6A2000000B5A7A4A3B1A8044FCDADD19D9CB00000B7778F7B8AAE0803C9AB5D3F5D3F00009EA09EA0BAB006039EA0989A8C7900009B9EF4D6B7C00000A9A7816CACA80000ABAC84705D3F000096DA635CDC8C00006F486F266F263D4784006124097B00374F6D2D6D2D6D4A3A95872322000000030000000000008D8939130000000000002E22A5C9CBC70600AB25C0B5C9B400061A2DB04CA67001082AA6BEBEBFC606002321DACBC19E03087AA08B6768380000282FBAC0B8CA7A88AD25BBA5A29900004C396C5894A6000040485A6E356E9442A32CD17EADA70000B4237923628600003E2DE9C1D7B500002F25BBA5A2990000231DB6AFB4A804023025C0B5CAB588062B2CBDBEC0C706882435A75CA20000002326BD6A82A908048B4B9A5A668000002423A09CB4BB060025259C9D8A7900001C1FCAB2C7C700002A2A9387ABA200002626A4A47D6E9D14333163A0C87500004B6F9C2D643A257049364936493647358A34438355497F1A0000A24C1D590000D38DFFBDD4CD3126\"))\n        };\n    class eo {\n        static create(e, t) {\n            if (this.lastCreated && e === this.lastCreated.scale && t === this.lastFontFamily) return this.lastCreated;\n            let i;\n            return i = Jr[e] ? new Yr(Jr[e](), e) : eo.createFromSampleData(eo.createSampleData(t).data, e), this.lastFontFamily = t, this.lastCreated = i, i\n        }\n        static createSampleData(e) {\n            const t = document.createElement(\"canvas\"),\n                i = t.getContext(\"2d\");\n            t.style.height = \"16px\", t.height = 16, t.width = 960, t.style.width = \"960px\", i.fillStyle = \"#ffffff\", i.font = \"bold 16px \" + e, i.textBaseline = \"middle\";\n            let n = 0;\n            for (const e of qr) i.fillText(String.fromCharCode(e), n, 8), n += 10;\n            return i.getImageData(0, 0, 960, 16)\n        }\n        static createFromSampleData(e, t) {\n            if (61440 !== e.length) throw new Error(\"Unexpected source in MinimapCharRenderer\");\n            return e = eo._downsample(e, t), new Yr(e, t)\n        }\n        static _downsampleChar(e, t, i, n, r) {\n            var o = +r,\n                s = 2 * r;\n            let a = n,\n                l = 0;\n            for (let n = 0; n < s; n++) {\n                var d = n / s * 16,\n                    c = (n + 1) / s * 16;\n                for (let n = 0; n < o; n++) {\n                    var h = n / o * 10,\n                        u = (n + 1) / o * 10;\n                    let r = 0,\n                        s = 0;\n                    for (let i = d; i < c; i++) {\n                        var p = t + 3840 * Math.floor(i),\n                            g = 1 - (i - Math.floor(i));\n                        for (let t = h; t < u; t++) {\n                            var f = 1 - (t - Math.floor(t)),\n                                m = p + 4 * Math.floor(t);\n                            s += f = f * g, r += e[m] * e[m + 3] / 255 * f\n                        }\n                    }\n                    var v = r / s;\n                    l = Math.max(l, v), i[a++] = Object(Gr.b)(v)\n                }\n            }\n            return l\n        }\n        static _downsample(e, t) {\n            var i = 2 * t * 1 * t,\n                n = 96 * i;\n            const r = new Uint8ClampedArray(n);\n            let o = 0,\n                s = 0,\n                a = 0;\n            for (let n = 0; n < 96; n++) a = Math.max(a, this._downsampleChar(e, s, r, o, t)), o += i, s += 40;\n            if (0 < a) {\n                var l = 255 / a;\n                for (let e = 0; e < n; e++) r[e] *= l\n            }\n            return r\n        }\n    }\n    class to {\n        constructor(e, t, i) {\n            const n = e.options;\n            var r = n.get(127),\n                o = n.get(129),\n                s = o.minimap;\n            const a = n.get(43);\n            e = n.get(64), this.renderMinimap = s.renderMinimap, this.size = e.size, this.minimapHeightIsEditorHeight = s.minimapHeightIsEditorHeight, this.scrollBeyondLastLine = n.get(93), this.showSlider = e.showSlider, this.pixelRatio = r, this.typicalHalfwidthCharacterWidth = a.typicalHalfwidthCharacterWidth, this.lineHeight = n.get(58), this.minimapLeft = s.minimapLeft, this.minimapWidth = s.minimapWidth, this.minimapHeight = o.height, this.canvasInnerWidth = s.minimapCanvasInnerWidth, this.canvasInnerHeight = s.minimapCanvasInnerHeight, this.canvasOuterWidth = s.minimapCanvasOuterWidth, this.canvasOuterHeight = s.minimapCanvasOuterHeight, this.isSampling = s.minimapIsSampling, this.editorHeight = o.height, this.fontScale = s.minimapScale, this.minimapLineHeight = s.minimapLineHeight, this.minimapCharWidth = +this.fontScale, this.charRenderer = Object(Zr.a)(() => eo.create(this.fontScale, a.fontFamily)), this.defaultBackgroundColor = i.getColor(2), this.backgroundColor = to._getMinimapBackground(t, this.defaultBackgroundColor), this.foregroundAlpha = to._getMinimapForegroundOpacity(t)\n        }\n        static _getMinimapBackground(e, t) {\n            return (e = e.getColor(Ir.Kb)) ? new Kr(e.rgba.r, e.rgba.g, e.rgba.b, Math.round(255 * e.rgba.a)) : t\n        }\n        static _getMinimapForegroundOpacity(e) {\n            return (e = e.getColor(Ir.Nb)) ? Kr._clamp(Math.round(255 * e.rgba.a)) : 255\n        }\n        equals(e) {\n            return this.renderMinimap === e.renderMinimap && this.size === e.size && this.minimapHeightIsEditorHeight === e.minimapHeightIsEditorHeight && this.scrollBeyondLastLine === e.scrollBeyondLastLine && this.showSlider === e.showSlider && this.pixelRatio === e.pixelRatio && this.typicalHalfwidthCharacterWidth === e.typicalHalfwidthCharacterWidth && this.lineHeight === e.lineHeight && this.minimapLeft === e.minimapLeft && this.minimapWidth === e.minimapWidth && this.minimapHeight === e.minimapHeight && this.canvasInnerWidth === e.canvasInnerWidth && this.canvasInnerHeight === e.canvasInnerHeight && this.canvasOuterWidth === e.canvasOuterWidth && this.canvasOuterHeight === e.canvasOuterHeight && this.isSampling === e.isSampling && this.editorHeight === e.editorHeight && this.fontScale === e.fontScale && this.minimapLineHeight === e.minimapLineHeight && this.minimapCharWidth === e.minimapCharWidth && this.defaultBackgroundColor && this.defaultBackgroundColor.equals(e.defaultBackgroundColor) && this.backgroundColor && this.backgroundColor.equals(e.backgroundColor) && this.foregroundAlpha === e.foregroundAlpha\n        }\n    }\n    class io {\n        constructor(e, t, i, n, r, o, s, a) {\n            this.scrollTop = e, this.scrollHeight = t, this.sliderNeeded = i, this._computedSliderRatio = n, this.sliderTop = r, this.sliderHeight = o, this.startLineNumber = s, this.endLineNumber = a\n        }\n        getDesiredScrollTopFromDelta(e) {\n            return Math.round(this.scrollTop + e / this._computedSliderRatio)\n        }\n        getDesiredScrollTopFromTouchLocation(e) {\n            return Math.round((e - this.sliderHeight / 2) / this._computedSliderRatio)\n        }\n        static create(e, t, i, n, r, o, s, a, l, d, c) {\n            var h = e.pixelRatio,\n                u = e.minimapLineHeight,\n                p = Math.floor(e.canvasInnerHeight / u),\n                g = e.lineHeight;\n            if (e.minimapHeightIsEditorHeight) {\n                var f = a * e.lineHeight + (e.scrollBeyondLastLine ? r - e.lineHeight : 0);\n                const t = Math.max(1, Math.floor(r * r / f)),\n                    i = Math.max(0, e.minimapHeight - t),\n                    n = i / (d - r),\n                    o = l * n;\n                return a = 0 < i, f = Math.floor(e.canvasInnerHeight / e.minimapLineHeight), new io(l, d, a, n, o, t, 1, Math.min(s, f))\n            }\n            let m, v;\n            m = o && i !== s ? Math.floor((i - t + 1) * u / h) : Math.floor(r / g * u / h), v = e.scrollBeyondLastLine ? (s - 1) * u / h : Math.max(0, s * u / h - m), v = Math.min(e.minimapHeight - m, v);\n            const b = v / (d - r),\n                _ = l * b;\n            let w = 0;\n            if (e.scrollBeyondLastLine && (w = r / g - 1), p >= s + w) return new io(l, d, r = 0 < v, b, _, m, 1, e = s); {\n                let e = Math.max(1, Math.floor(t - _ * h / u));\n                return c && c.scrollHeight === d && (c.scrollTop > l && (e = Math.min(e, c.startLineNumber)), c.scrollTop < l && (e = Math.max(e, c.startLineNumber))), p = Math.min(s, e + p - 1), new io(l, d, !0, b, h = (t - e + (l - n) / g) * u / h, m, e, p)\n            }\n        }\n    }\n    class no {\n        constructor(e) {\n            this.dy = e\n        }\n        onContentChanged() {\n            this.dy = -1\n        }\n        onTokensChanged() {\n            this.dy = -1\n        }\n    }\n    no.INVALID = new no(-1);\n    class ro {\n        constructor(e, t, i) {\n            this.renderedLayout = e, this._imageData = t, this._renderedLines = new gr(() => no.INVALID), this._renderedLines._set(e.startLineNumber, i)\n        }\n        linesEquals(e) {\n            if (!this.scrollEquals(e)) return !1;\n            var t = this._renderedLines._get().lines;\n            for (let e = 0, i = t.length; e < i; e++)\n                if (-1 === t[e].dy) return !1;\n            return !0\n        }\n        scrollEquals(e) {\n            return this.renderedLayout.startLineNumber === e.startLineNumber && this.renderedLayout.endLineNumber === e.endLineNumber\n        }\n        _get() {\n            var e = this._renderedLines._get();\n            return {\n                imageData: this._imageData,\n                rendLineNumberStart: e.rendLineNumberStart,\n                lines: e.lines\n            }\n        }\n        onLinesChanged(e, t) {\n            return this._renderedLines.onLinesChanged(e, t)\n        }\n        onLinesDeleted(e, t) {\n            this._renderedLines.onLinesDeleted(e, t)\n        }\n        onLinesInserted(e, t) {\n            this._renderedLines.onLinesInserted(e, t)\n        }\n        onTokensChanged(e) {\n            return this._renderedLines.onTokensChanged(e)\n        }\n    }\n    class oo {\n        constructor(e, t, i, n) {\n            this._backgroundFillData = oo._createBackgroundFillData(t, i, n), this._buffers = [e.createImageData(t, i), e.createImageData(t, i)], this._lastUsedBuffer = 0\n        }\n        getBuffer() {\n            this._lastUsedBuffer = 1 - this._lastUsedBuffer;\n            const e = this._buffers[this._lastUsedBuffer];\n            return e.data.set(this._backgroundFillData), e\n        }\n        static _createBackgroundFillData(e, t, i) {\n            var n = i.r,\n                r = i.g,\n                o = i.b,\n                s = i.a;\n            const a = new Uint8ClampedArray(e * t * 4);\n            let l = 0;\n            for (let i = 0; i < t; i++)\n                for (let t = 0; t < e; t++) a[l] = n, a[l + 1] = r, a[l + 2] = o, a[l + 3] = s, l += 4;\n            return a\n        }\n    }\n    class so {\n        constructor(e, t) {\n            this.samplingRatio = e, this.minimapLines = t\n        }\n        static compute(e, t, i) {\n            if (0 === e.renderMinimap || !e.isSampling) return [null, []];\n            var r = e.pixelRatio,\n                o = e.lineHeight,\n                s = e.scrollBeyondLastLine,\n                {\n                    minimapLineCount: a\n                } = n.f.computeContainedMinimapLineCount({\n                    viewLineCount: t,\n                    scrollBeyondLastLine: s,\n                    height: e.editorHeight,\n                    lineHeight: o,\n                    pixelRatio: r\n                }),\n                l = t / a,\n                d = l / 2;\n            if (!i || 0 === i.minimapLines.length) {\n                let e = [];\n                if ((e[0] = 1) < a) {\n                    for (let t = 0, i = a - 1; t < i; t++) e[t] = Math.round(t * l + d);\n                    e[a - 1] = t\n                }\n                return [new so(l, e), []]\n            }\n            var c = i.minimapLines,\n                h = c.length;\n            let u = [],\n                p = 0,\n                g = 0,\n                f = 1,\n                m = [],\n                v = null;\n            for (let e = 0; e < a; e++) {\n                for (var b, _ = Math.max(f, Math.round(e * l)), w = Math.max(_, Math.round((e + 1) * l)); p < h && c[p] < _;) m.length < 10 && (b = p + 1 + g, v && \"deleted\" === v.type && v._oldIndex === p - 1 ? v.deleteToLineNumber++ : (v = {\n                    type: \"deleted\",\n                    _oldIndex: p,\n                    deleteFromLineNumber: b,\n                    deleteToLineNumber: b\n                }, m.push(v)), g--), p++;\n                let i;\n                p < h && c[p] <= w ? (i = c[p], p++) : (i = 0 === e ? 1 : e + 1 === a ? t : Math.round(e * l + d), m.length < 10 && (w = p + 1 + g, v && \"inserted\" === v.type && v._i === e - 1 ? v.insertToLineNumber++ : (v = {\n                    type: \"inserted\",\n                    _i: e,\n                    insertFromLineNumber: w,\n                    insertToLineNumber: w\n                }, m.push(v)), g++)), u[e] = i, f = i\n            }\n            if (m.length < 10)\n                for (; p < h;) {\n                    var y = p + 1 + g;\n                    v && \"deleted\" === v.type && v._oldIndex === p - 1 ? v.deleteToLineNumber++ : (v = {\n                        type: \"deleted\",\n                        _oldIndex: p,\n                        deleteFromLineNumber: y,\n                        deleteToLineNumber: y\n                    }, m.push(v)), g--, p++\n                } else m = [{\n                    type: \"flush\"\n                }];\n            return [new so(l, u), m]\n        }\n        modelLineToMinimapLine(e) {\n            return Math.min(this.minimapLines.length, Math.max(1, Math.round(e / this.samplingRatio)))\n        }\n        modelLineRangeToMinimapLineRange(e, t) {\n            let i = this.modelLineToMinimapLine(e) - 1;\n            for (; 0 < i && this.minimapLines[i - 1] >= e;) i--;\n            let n = this.modelLineToMinimapLine(t) - 1;\n            for (; n + 1 < this.minimapLines.length && this.minimapLines[n + 1] <= t;) n++;\n            if (i === n) {\n                var r = this.minimapLines[i];\n                if (r < e || t < r) return null\n            }\n            return [i + 1, n + 1]\n        }\n        decorationLineRangeToMinimapLineRange(e, t) {\n            let i = this.modelLineToMinimapLine(e),\n                n = this.modelLineToMinimapLine(t);\n            return e !== t && n === i && (n === this.minimapLines.length ? 1 < i && i-- : n++), [i, n]\n        }\n        onLinesDeleted(e) {\n            var t = e.toLineNumber - e.fromLineNumber + 1;\n            let i = this.minimapLines.length,\n                n = 0;\n            for (let r = this.minimapLines.length - 1; 0 <= r && !(this.minimapLines[r] < e.fromLineNumber); r--) this.minimapLines[r] <= e.toLineNumber ? (this.minimapLines[r] = Math.max(1, e.fromLineNumber - 1), i = Math.min(i, r), n = Math.max(n, r)) : this.minimapLines[r] -= t;\n            return [i, n]\n        }\n        onLinesInserted(e) {\n            var t = e.toLineNumber - e.fromLineNumber + 1;\n            for (let i = this.minimapLines.length - 1; 0 <= i && !(this.minimapLines[i] < e.fromLineNumber); i--) this.minimapLines[i] += t\n        }\n    }\n    class ao extends rn {\n        constructor(e) {\n            super(e), this.tokensColorTracker = $r.getInstance(), this._selections = [], this._minimapSelections = null, this.options = new to(this._context.configuration, this._context.theme, this.tokensColorTracker);\n            var [t] = so.compute(this.options, this._context.model.getLineCount(), null);\n            this._samplingState = t, this._shouldCheckSampling = !1, this._actual = new lo(e.theme, this)\n        }\n        dispose() {\n            this._actual.dispose(), super.dispose()\n        }\n        getDomNode() {\n            return this._actual.getDomNode()\n        }\n        _onOptionsMaybeChanged() {\n            var e = new to(this._context.configuration, this._context.theme, this.tokensColorTracker);\n            return !this.options.equals(e) && (this.options = e, this._recreateLineSampling(), this._actual.onDidChangeOptions(), !0)\n        }\n        on配置Changed(e) {\n            return this._onOptionsMaybeChanged()\n        }\n        onCursorStateChanged(e) {\n            return this._selections = e.selections, this._minimapSelections = null, this._actual.onSelectionChanged()\n        }\n        onDecorationsChanged(e) {\n            return !!e.affectsMinimap && this._actual.onDecorationsChanged()\n        }\n        onFlushed(e) {\n            return this._samplingState && (this._shouldCheckSampling = !0), this._actual.onFlushed()\n        }\n        onLinesChanged(e) {\n            if (this._samplingState) {\n                var t = this._samplingState.modelLineRangeToMinimapLineRange(e.fromLineNumber, e.toLineNumber);\n                return !!t && this._actual.onLinesChanged(t[0], t[1])\n            }\n            return this._actual.onLinesChanged(e.fromLineNumber, e.toLineNumber)\n        }\n        onLinesDeleted(e) {\n            if (this._samplingState) {\n                var [t, i] = this._samplingState.onLinesDeleted(e);\n                return t <= i && this._actual.onLinesChanged(t + 1, i + 1), this._shouldCheckSampling = !0\n            }\n            return this._actual.onLinesDeleted(e.fromLineNumber, e.toLineNumber)\n        }\n        onLinesInserted(e) {\n            return this._samplingState ? (this._samplingState.onLinesInserted(e), this._shouldCheckSampling = !0) : this._actual.onLinesInserted(e.fromLineNumber, e.toLineNumber)\n        }\n        onScrollChanged(e) {\n            return this._actual.onScrollChanged()\n        }\n        onThemeChanged(e) {\n            return this._context.model.invalidateMinimapColorCache(), this._actual.onThemeChanged(), this._onOptionsMaybeChanged(), !0\n        }\n        onTokensChanged(e) {\n            if (this._samplingState) {\n                let i = [];\n                for (const n of e.ranges) {\n                    var t = this._samplingState.modelLineRangeToMinimapLineRange(n.fromLineNumber, n.toLineNumber);\n                    t && i.push({\n                        fromLineNumber: t[0],\n                        toLineNumber: t[1]\n                    })\n                }\n                return !!i.length && this._actual.onTokensChanged(i)\n            }\n            return this._actual.onTokensChanged(e.ranges)\n        }\n        onTokensColorsChanged(e) {\n            return this._onOptionsMaybeChanged(), this._actual.onTokensColorsChanged()\n        }\n        onZonesChanged(e) {\n            return this._actual.onZonesChanged()\n        }\n        prepareRender(e) {\n            this._shouldCheckSampling && (this._shouldCheckSampling = !1, this._recreateLineSampling())\n        }\n        render(e) {\n            let t = e.visibleRange.startLineNumber,\n                i = e.visibleRange.endLineNumber;\n            this._samplingState && (t = this._samplingState.modelLineToMinimapLine(t), i = this._samplingState.modelLineToMinimapLine(i)), e = {\n                viewportContainsWhitespaceGaps: 0 < e.viewportData.whitespaceViewportData.length,\n                scrollWidth: e.scrollWidth,\n                scrollHeight: e.scrollHeight,\n                viewportStartLineNumber: t,\n                viewportEndLineNumber: i,\n                viewportStartLineNumberVerticalOffset: e.getVerticalOffsetForLineNumber(t),\n                scrollTop: e.scrollTop,\n                scrollLeft: e.scrollLeft,\n                viewportWidth: e.viewportWidth,\n                viewportHeight: e.viewportHeight\n            }, this._actual.render(e)\n        }\n        _recreateLineSampling() {\n            this._minimapSelections = null;\n            var e = Boolean(this._samplingState),\n                [t, i] = so.compute(this.options, this._context.model.getLineCount(), this._samplingState);\n            if (this._samplingState = t, e && this._samplingState)\n                for (const e of i) switch (e.type) {\n                    case \"deleted\":\n                        this._actual.onLinesDeleted(e.deleteFromLineNumber, e.deleteToLineNumber);\n                        break;\n                    case \"inserted\":\n                        this._actual.onLinesInserted(e.insertFromLineNumber, e.insertToLineNumber);\n                        break;\n                    case \"flush\":\n                        this._actual.onFlushed()\n                }\n        }\n        getLineCount() {\n            return this._samplingState ? this._samplingState.minimapLines.length : this._context.model.getLineCount()\n        }\n        getRealLineCount() {\n            return this._context.model.getLineCount()\n        }\n        getLineContent(e) {\n            return this._samplingState ? this._context.model.getLineContent(this._samplingState.minimapLines[e - 1]) : this._context.model.getLineContent(e)\n        }\n        getLineMaxColumn(e) {\n            return this._samplingState ? this._context.model.getLineMaxColumn(this._samplingState.minimapLines[e - 1]) : this._context.model.getLineMaxColumn(e)\n        }\n        getMinimapLinesRenderingData(e, t, i) {\n            if (this._samplingState) {\n                let n = [];\n                for (let r = 0, o = t - e + 1; r < o; r++) i[r] ? n[r] = this._context.model.getViewLineData(this._samplingState.minimapLines[e + r - 1]) : n[r] = null;\n                return n\n            }\n            return this._context.model.getMinimapLinesRenderingData(e, t, i).data\n        }\n        getSelections() {\n            if (null === this._minimapSelections)\n                if (this._samplingState) {\n                    this._minimapSelections = [];\n                    for (const i of this._selections) {\n                        var [e, t] = this._samplingState.decorationLineRangeToMinimapLineRange(i.startLineNumber, i.endLineNumber);\n                        this._minimapSelections.push(new Hi.a(e, i.startColumn, t, i.endColumn))\n                    }\n                } else this._minimapSelections = this._selections;\n            return this._minimapSelections\n        }\n        getMinimapDecorationsInViewport(e, t) {\n            let i;\n            var n, r;\n            i = this._samplingState ? (n = this._samplingState.minimapLines[e - 1], r = this._samplingState.minimapLines[t - 1], new T.a(n, 1, r, this._context.model.getLineMaxColumn(r))) : new T.a(e, 1, t, this._context.model.getLineMaxColumn(t));\n            var o, s, a;\n            t = this._context.model.getDecorationsInViewport(i);\n            if (this._samplingState) {\n                let e = [];\n                for (const i of t) i.options.minimap && (o = i.range, s = this._samplingState.modelLineToMinimapLine(o.startLineNumber), a = this._samplingState.modelLineToMinimapLine(o.endLineNumber), e.push(new Ke(new T.a(s, o.startColumn, a, o.endColumn), i.options)));\n                return e\n            }\n            return t\n        }\n        getOptions() {\n            return this._context.model.getTextModelOptions()\n        }\n        revealLineNumber(e) {\n            this._samplingState && (e = this._samplingState.minimapLines[e - 1]), this._context.model.revealRange(\"mouse\", !1, new T.a(e, 1, e, 1), 1, 0)\n        }\n        setScrollTop(e) {\n            this._context.model.setScrollPosition({\n                scrollTop: e\n            }, 1)\n        }\n    }\n    class lo extends v.a {\n        constructor(e, t) {\n            super(), this._renderDecorations = !1, this._gestureInProgress = !1, this._theme = e, this._model = t, this._lastRenderData = null, this._buffers = null, this._selectionColor = this._theme.getColor(Ir.Ob), this._domNode = Object(Ui.b)(document.createElement(\"div\")), on.write(this._domNode, 8), this._domNode.setClassName(this._getMinimapDomNodeClassName()), this._domNode.setPosition(\"absolute\"), this._domNode.setAttribute(\"role\", \"presentation\"), this._domNode.setAttribute(\"aria-hidden\", \"true\"), this._shadow = Object(Ui.b)(document.createElement(\"div\")), this._shadow.setClassName(\"minimap-shadow-hidden\"), this._domNode.appendChild(this._shadow), this._canvas = Object(Ui.b)(document.createElement(\"canvas\")), this._canvas.setPosition(\"absolute\"), this._canvas.setLeft(0), this._domNode.appendChild(this._canvas), this._decorationsCanvas = Object(Ui.b)(document.createElement(\"canvas\")), this._decorationsCanvas.setPosition(\"absolute\"), this._decorationsCanvas.setClassName(\"minimap-decorations-layer\"), this._decorationsCanvas.setLeft(0), this._domNode.appendChild(this._decorationsCanvas), this._slider = Object(Ui.b)(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 = Object(Ui.b)(document.createElement(\"div\")), this._sliderHorizontal.setPosition(\"absolute\"), this._sliderHorizontal.setClassName(\"minimap-slider-horizontal\"), this._slider.appendChild(this._sliderHorizontal), this._applyLayout(), this._mouseDownListener = s.l(this._domNode.domNode, \"mousedown\", e => {\n                var t, i;\n                e.preventDefault(), 0 !== this._model.options.renderMinimap && this._lastRenderData && (\"proportional\" === this._model.options.size ? (i = this._model.options.minimapLineHeight, t = this._model.options.canvasInnerHeight / this._model.options.canvasOuterHeight * e.browserEvent.offsetY, i = Math.floor(t / i) + this._lastRenderData.renderedLayout.startLineNumber, i = Math.min(i, this._model.getLineCount()), this._model.revealLineNumber(i)) : e.leftButton && this._lastRenderData && (i = (i = s.A(this._slider.domNode)).top + i.height / 2, this._startSliderDragging(e.buttons, e.posx, i, e.posy, this._lastRenderData.renderedLayout)))\n            }), this._sliderMouseMoveMonitor = new qi.a, this._sliderMouseDownListener = s.l(this._slider.domNode, \"mousedown\", e => {\n                e.preventDefault(), e.stopPropagation(), e.leftButton && this._lastRenderData && this._startSliderDragging(e.buttons, e.posx, e.posy, e.posy, this._lastRenderData.renderedLayout)\n            }), this._gestureDisposable = Ki.b.addTarget(this._domNode.domNode), this._sliderTouchStartListener = s.g(this._domNode.domNode, Ki.a.Start, e => {\n                e.preventDefault(), e.stopPropagation(), this._lastRenderData && (this._slider.toggleClassName(\"active\", !0), this._gestureInProgress = !0, this.scrollDueToTouchEvent(e))\n            }, {\n                passive: !1\n            }), this._sliderTouchMoveListener = s.g(this._domNode.domNode, Ki.a.Change, e => {\n                e.preventDefault(), e.stopPropagation(), this._lastRenderData && this._gestureInProgress && this.scrollDueToTouchEvent(e)\n            }, {\n                passive: !1\n            }), this._sliderTouchEndListener = s.l(this._domNode.domNode, Ki.a.End, e => {\n                e.preventDefault(), e.stopPropagation(), this._gestureInProgress = !1, this._slider.toggleClassName(\"active\", !1)\n            })\n        }\n        _startSliderDragging(e, t, i, n, r) {\n            this._slider.toggleClassName(\"active\", !0);\n            const o = (e, n) => {\n                n = Math.abs(n - t), A.i && 140 < n ? this._model.setScrollTop(r.scrollTop) : this._model.setScrollTop(r.getDesiredScrollTopFromDelta(e - i))\n            };\n            n !== i && o(n, t), this._sliderMouseMoveMonitor.startMonitoring(this._slider.domNode, e, qi.b, e => o(e.posy, e.posx), () => {\n                this._slider.toggleClassName(\"active\", !1)\n            })\n        }\n        scrollDueToTouchEvent(e) {\n            var t = this._domNode.domNode.getBoundingClientRect().top;\n            t = this._lastRenderData.renderedLayout.getDesiredScrollTopFromTouchLocation(e.pageY - t);\n            this._model.setScrollTop(t)\n        }\n        dispose() {\n            this._mouseDownListener.dispose(), this._sliderMouseMoveMonitor.dispose(), this._sliderMouseDownListener.dispose(), this._gestureDisposable.dispose(), this._sliderTouchStartListener.dispose(), this._sliderTouchMoveListener.dispose(), this._sliderTouchEndListener.dispose(), super.dispose()\n        }\n        _getMinimapDomNodeClassName() {\n            return \"always\" === this._model.options.showSlider ? \"minimap slider-always\" : \"minimap slider-mouseover\"\n        }\n        getDomNode() {\n            return this._domNode\n        }\n        _applyLayout() {\n            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)\n        }\n        _getBuffer() {\n            return this._buffers || 0 < this._model.options.canvasInnerWidth && 0 < this._model.options.canvasInnerHeight && (this._buffers = new oo(this._canvas.domNode.getContext(\"2d\"), this._model.options.canvasInnerWidth, this._model.options.canvasInnerHeight, this._model.options.backgroundColor)), this._buffers ? this._buffers.getBuffer() : null\n        }\n        onDidChangeOptions() {\n            this._lastRenderData = null, this._buffers = null, this._applyLayout(), this._domNode.setClassName(this._getMinimapDomNodeClassName())\n        }\n        onSelectionChanged() {\n            return this._renderDecorations = !0\n        }\n        onDecorationsChanged() {\n            return this._renderDecorations = !0\n        }\n        onFlushed() {\n            return !(this._lastRenderData = null)\n        }\n        onLinesChanged(e, t) {\n            return !!this._lastRenderData && this._lastRenderData.onLinesChanged(e, t)\n        }\n        onLinesDeleted(e, t) {\n            return this._lastRenderData && this._lastRenderData.onLinesDeleted(e, t), !0\n        }\n        onLinesInserted(e, t) {\n            return this._lastRenderData && this._lastRenderData.onLinesInserted(e, t), !0\n        }\n        onScrollChanged() {\n            return this._renderDecorations = !0\n        }\n        onThemeChanged() {\n            return this._selectionColor = this._theme.getColor(Ir.Ob), this._renderDecorations = !0\n        }\n        onTokensChanged(e) {\n            return !!this._lastRenderData && this._lastRenderData.onTokensChanged(e)\n        }\n        onTokensColorsChanged() {\n            return this._lastRenderData = null, !(this._buffers = null)\n        }\n        onZonesChanged() {\n            return !(this._lastRenderData = null)\n        }\n        render(e) {\n            if (0 === this._model.options.renderMinimap) return this._shadow.setClassName(\"minimap-shadow-hidden\"), this._sliderHorizontal.setWidth(0), void this._sliderHorizontal.setHeight(0);\n            e.scrollLeft + e.viewportWidth >= e.scrollWidth ? this._shadow.setClassName(\"minimap-shadow-hidden\") : this._shadow.setClassName(\"minimap-shadow-visible\"), e = io.create(this._model.options, e.viewportStartLineNumber, e.viewportEndLineNumber, e.viewportStartLineNumberVerticalOffset, e.viewportHeight, e.viewportContainsWhitespaceGaps, this._model.getLineCount(), this._model.getRealLineCount(), e.scrollTop, e.scrollHeight, this._lastRenderData ? this._lastRenderData.renderedLayout : null), this._slider.setDisplay(e.sliderNeeded ? \"block\" : \"none\"), this._slider.setTop(e.sliderTop), this._slider.setHeight(e.sliderHeight), this._sliderHorizontal.setLeft(0), this._sliderHorizontal.setWidth(this._model.options.minimapWidth), this._sliderHorizontal.setTop(0), this._sliderHorizontal.setHeight(e.sliderHeight), this.renderDecorations(e), this._lastRenderData = this.renderLines(e)\n        }\n        renderDecorations(e) {\n            if (this._renderDecorations) {\n                this._renderDecorations = !1;\n                const s = this._model.getSelections();\n                s.sort(T.a.compareRangesUsingStarts);\n                const a = this._model.getMinimapDecorationsInViewport(e.startLineNumber, e.endLineNumber);\n                a.sort((e, t) => (e.options.zIndex || 0) - (t.options.zIndex || 0));\n                var {\n                    canvasInnerWidth: t,\n                    canvasInnerHeight: i\n                } = this._model.options, n = this._model.options.minimapLineHeight, r = this._model.options.minimapCharWidth, o = this._model.getOptions().tabSize;\n                const l = this._decorationsCanvas.domNode.getContext(\"2d\");\n                l.clearRect(0, 0, t, i), i = new co(e.startLineNumber, e.endLineNumber, !1), this._renderSelectionLineHighlights(l, s, i, e, n), this._renderDecorationsLineHighlights(l, a, i, e, n), i = new co(e.startLineNumber, e.endLineNumber, null), this._renderSelectionsHighlights(l, s, i, e, n, o, r, t), this._renderDecorationsHighlights(l, a, i, e, n, o, r, t)\n            }\n        }\n        _renderSelectionLineHighlights(e, t, i, r, o) {\n            if (this._selectionColor && !this._selectionColor.isTransparent()) {\n                e.fillStyle = this._selectionColor.transparent(.5).toString();\n                let d = 0,\n                    c = 0;\n                for (const h of t) {\n                    var s = Math.max(r.startLineNumber, h.startLineNumber),\n                        a = Math.min(r.endLineNumber, h.endLineNumber);\n                    if (!(a < s)) {\n                        for (let e = s; e <= a; e++) i.set(e, !0);\n                        var l = (s - r.startLineNumber) * o;\n                        s = (a - r.startLineNumber) * o + o;\n                        c >= l || (c > d && e.fillRect(n.h, d, e.canvas.width, c - d), d = l), c = s\n                    }\n                }\n                c > d && e.fillRect(n.h, d, e.canvas.width, c - d)\n            }\n        }\n        _renderDecorationsLineHighlights(e, t, i, r, o) {\n            const s = new Map;\n            for (let h = t.length - 1; 0 <= h; h--) {\n                var a = t[h];\n                const u = a.options.minimap;\n                if (u && u.position === W.f.Inline) {\n                    var l, d = Math.max(r.startLineNumber, a.range.startLineNumber),\n                        c = Math.min(r.endLineNumber, a.range.endLineNumber);\n                    if (!(c < d)) {\n                        const t = u.getColor(this._theme);\n                        if (t && !t.isTransparent()) {\n                            let a = s.get(t.toString());\n                            a || (a = t.transparent(.5).toString(), s.set(t.toString(), a)), e.fillStyle = a;\n                            for (let t = d; t <= c; t++) i.has(t) || (i.set(t, !0), l = (d - r.startLineNumber) * o, e.fillRect(n.h, l, e.canvas.width, o))\n                        }\n                    }\n                }\n            }\n        }\n        _renderSelectionsHighlights(e, t, i, n, r, o, s, a) {\n            if (this._selectionColor && !this._selectionColor.isTransparent())\n                for (const c of t) {\n                    var l = Math.max(n.startLineNumber, c.startLineNumber),\n                        d = Math.min(n.endLineNumber, c.endLineNumber);\n                    if (!(d < l))\n                        for (let t = l; t <= d; t++) this.renderDecorationOnLine(e, i, c, this._selectionColor, n, t, r, r, o, s, a)\n                }\n        }\n        _renderDecorationsHighlights(e, t, i, n, r, o, s, a) {\n            for (const h of t) {\n                const t = h.options.minimap;\n                if (t) {\n                    var l = Math.max(n.startLineNumber, h.range.startLineNumber),\n                        d = Math.min(n.endLineNumber, h.range.endLineNumber);\n                    if (!(d < l)) {\n                        const u = t.getColor(this._theme);\n                        if (u && !u.isTransparent())\n                            for (let p = l; p <= d; p++) switch (t.position) {\n                                case W.f.Inline:\n                                    this.renderDecorationOnLine(e, i, h.range, u, n, p, r, r, o, s, a);\n                                    continue;\n                                case W.f.Gutter:\n                                    var c = (p - n.startLineNumber) * r;\n                                    this.renderDecoration(e, u, 2, c, 2, r);\n                                    continue\n                            }\n                    }\n                }\n            }\n        }\n        renderDecorationOnLine(e, t, i, n, r, o, s, a, l, d, c) {\n            var h = (o - r.startLineNumber) * a;\n            h + s < 0 || h > this._model.options.canvasInnerHeight || (({\n                startLineNumber: r,\n                endLineNumber: a\n            } = i), r = r === o ? i.startColumn : 1, i = a === o ? i.endColumn : this._model.getLineMaxColumn(o), r = this.getXOffsetForPosition(t, o, r, l, d, c), c = this.getXOffsetForPosition(t, o, i, l, d, c), this.renderDecoration(e, n, r, h, c - r, s))\n        }\n        getXOffsetForPosition(e, t, i, r, o, s) {\n            if (1 === i) return n.h;\n            if (s <= (i - 1) * o) return s;\n            let a = e.get(t);\n            if (!a) {\n                const i = this._model.getLineContent(t);\n                a = [n.h];\n                let d = n.h;\n                for (let e = 1; e < i.length + 1; e++) {\n                    var l;\n                    if (s <= (l = d + (l = 9 === (l = i.charCodeAt(e - 1)) ? r * o : b.D(l) ? 2 * o : o))) {\n                        a[e] = s;\n                        break\n                    }\n                    a[e] = l, d = l\n                }\n                e.set(t, a)\n            }\n            return i - 1 < a.length ? a[i - 1] : s\n        }\n        renderDecoration(e, t, i, n, r, o) {\n            e.fillStyle = t && t.toString() || \"\", e.fillRect(i, n, r, o)\n        }\n        renderLines(e) {\n            var t = e.startLineNumber,\n                i = e.endLineNumber,\n                n = this._model.options.minimapLineHeight;\n            if (this._lastRenderData && this._lastRenderData.linesEquals(e)) {\n                var r = this._lastRenderData._get();\n                return new ro(e, r.imageData, r.lines)\n            }\n            var o = this._getBuffer();\n            if (!o) return null;\n            var [s, a, l] = lo._renderUntouchedLines(o, t, i, n, this._lastRenderData), d = this._model.getMinimapLinesRenderingData(t, i, l), c = this._model.getOptions().tabSize, h = this._model.options.defaultBackgroundColor, u = this._model.options.backgroundColor, p = this._model.options.foregroundAlpha;\n            const g = this._model.tokensColorTracker;\n            var f = g.backgroundIsLight(),\n                m = this._model.options.renderMinimap,\n                v = this._model.options.charRenderer(),\n                b = this._model.options.fontScale,\n                _ = this._model.options.minimapCharWidth,\n                w = (r = (1 === m ? 2 : 3) * b) < n ? Math.floor((n - r) / 2) : 0,\n                y = (r = u.a / 255, new Kr(Math.round((u.r - h.r) * r + h.r), Math.round((u.g - h.g) * r + h.g), Math.round((u.b - h.b) * r + h.b), 255));\n            let C = 0;\n            const x = [];\n            for (let e = 0, r = i - t + 1; e < r; e++) l[e] && lo._renderLine(o, y, u.a, f, m, _, g, p, v, C, w, c, d[e], b, n), x[e] = new no(C), C += n;\n            s = -1 === s ? 0 : s, a = (-1 === a ? o.height : a) - s;\n            return this._canvas.domNode.getContext(\"2d\").putImageData(o, 0, 0, 0, s, o.width, a), new ro(e, o, x)\n        }\n        static _renderUntouchedLines(e, t, i, n, r) {\n            const o = [];\n            if (!r) {\n                for (let e = 0, n = i - t + 1; e < n; e++) o[e] = !0;\n                return [-1, -1, o]\n            }\n            const s = (r = r._get()).imageData.data;\n            var a = r.rendLineNumberStart,\n                l = r.lines,\n                d = l.length,\n                c = e.width;\n            const h = e.data;\n            var u = (i - t + 1) * n * c * 4;\n            let p = -1,\n                g = -1,\n                f = -1,\n                m = -1,\n                v = -1,\n                b = -1,\n                _ = 0;\n            for (let e = t; e <= i; e++) {\n                var w, y, C = e - t,\n                    x = e - a,\n                    S = 0 <= x && x < d ? l[x].dy : -1; - 1 !== S ? (w = S * c * 4, y = (S + n) * c * 4, x = _ * c * 4, S = (_ + n) * c * 4, m === w && b === x ? m = y : (-1 !== f && (h.set(s.subarray(f, m), v), -1 === p && 0 === f && f === v && (p = m), -1 === g && m === u && f === v && (g = f)), f = w, m = y, v = x), b = S, o[C] = !1, _ += n) : (o[C] = !0, _ += n)\n            }\n            return -1 !== f && (h.set(s.subarray(f, m), v), -1 === p && 0 === f && f === v && (p = m), -1 === g && m === u && f === v && (g = f)), [-1 === p ? -1 : p / (4 * c), -1 === g ? -1 : g / (4 * c), o]\n        }\n        static _renderLine(e, t, i, r, o, s, a, l, d, c, h, u, p, g, f) {\n            const m = p.content,\n                v = p.tokens;\n            var _ = e.width - s,\n                w = 1 === f;\n            let y = n.h,\n                C = 0,\n                x = 0;\n            for (let n = 0, p = v.getCount(); n < p; n++)\n                for (var S = v.getEndOffset(n), k = v.getForeground(n), L = a.getColor(k); C < S; C++) {\n                    if (y > _) return;\n                    var O = m.charCodeAt(C);\n                    if (9 === O) {\n                        var E = u - (C + x) % u;\n                        x += E - 1, y += E * s\n                    } else if (32 === O) y += s;\n                    else {\n                        var N = b.D(O) ? 2 : 1;\n                        for (let n = 0; n < N; n++)\n                            if (2 === o ? d.blockRenderChar(e, y, c + h, L, l, t, i, w) : d.renderChar(e, y, c + h, O, L, l, t, i, g, r, w), y += s, y > _) return\n                    }\n                }\n        }\n    }\n    class co {\n        constructor(e, t, i) {\n            this._startLineNumber = e, this._endLineNumber = t, this._defaultValue = i, this._values = [];\n            for (let e = 0, t = this._endLineNumber - this._startLineNumber + 1; e < t; e++) this._values[e] = i\n        }\n        has(e) {\n            return this.get(e) !== this._defaultValue\n        }\n        set(e, t) {\n            e < this._startLineNumber || e > this._endLineNumber || (this._values[e - this._startLineNumber] = t)\n        }\n        get(e) {\n            return e < this._startLineNumber || e > this._endLineNumber ? this._defaultValue : this._values[e - this._startLineNumber]\n        }\n    }\n    Object(ir.f)((e, t) => {\n        var i = e.getColor(Ir.Qb);\n        i && t.addRule(`.monaco-editor .minimap-slider .minimap-slider-horizontal { background: ${i}; }`), (i = e.getColor(Ir.Rb)) && t.addRule(`.monaco-editor .minimap-slider:hover .minimap-slider-horizontal { background: ${i}; }`), (i = e.getColor(Ir.Pb)) && t.addRule(`.monaco-editor .minimap-slider.active .minimap-slider-horizontal { background: ${i}; }`), (e = e.getColor(Ir.fc)) && t.addRule(`.monaco-editor .minimap-shadow-visible { box-shadow: ${e} -6px 0 6px -6px inset; }`)\n    }), i(412);\n    class ho extends rn {\n        constructor(e) {\n            super(e);\n            e = this._context.configuration.options.get(129), this._widgets = {}, this._verticalScrollbarWidth = e.verticalScrollbarWidth, this._minimapWidth = e.minimap.minimapWidth, this._horizontalScrollbarHeight = e.horizontalScrollbarHeight, this._editorHeight = e.height, this._editorWidth = e.width, this._domNode = Object(Ui.b)(document.createElement(\"div\")), on.write(this._domNode, 4), this._domNode.setClassName(\"overlayWidgets\")\n        }\n        dispose() {\n            super.dispose(), this._widgets = {}\n        }\n        getDomNode() {\n            return this._domNode\n        }\n        on配置Changed(e) {\n            var t = this._context.configuration.options.get(129);\n            return this._verticalScrollbarWidth = t.verticalScrollbarWidth, this._minimapWidth = t.minimap.minimapWidth, this._horizontalScrollbarHeight = t.horizontalScrollbarHeight, this._editorHeight = t.height, this._editorWidth = t.width, !0\n        }\n        addWidget(e) {\n            const t = Object(Ui.b)(e.getDomNode());\n            this._widgets[e.getId()] = {\n                widget: e,\n                preference: null,\n                domNode: t\n            }, t.setPosition(\"absolute\"), t.setAttribute(\"widgetId\", e.getId()), this._domNode.appendChild(t), this.setShouldRender()\n        }\n        setWidgetPosition(e, t) {\n            const i = this._widgets[e.getId()];\n            return i.preference !== t && (i.preference = t, this.setShouldRender(), !0)\n        }\n        removeWidget(e) {\n            if (e = e.getId(), this._widgets.hasOwnProperty(e)) {\n                const t = this._widgets[e].domNode.domNode;\n                delete this._widgets[e], t.parentNode.removeChild(t), this.setShouldRender()\n            }\n        }\n        _renderWidget(e) {\n            const t = e.domNode;\n            var i;\n            null !== e.preference ? 0 === e.preference ? (t.setTop(0), t.setRight(2 * this._verticalScrollbarWidth + this._minimapWidth)) : 1 === e.preference ? (i = t.domNode.clientHeight, t.setTop(this._editorHeight - i - 2 * this._horizontalScrollbarHeight), t.setRight(2 * this._verticalScrollbarWidth + this._minimapWidth)) : 2 === e.preference && (t.setTop(0), t.domNode.style.right = \"50%\") : t.unsetTop()\n        }\n        prepareRender(e) {}\n        render(e) {\n            this._domNode.setWidth(this._editorWidth);\n            var t = Object.keys(this._widgets);\n            for (let e = 0, n = t.length; e < n; e++) {\n                var i = t[e];\n                this._renderWidget(this._widgets[i])\n            }\n        }\n    }\n    var uo = i(11);\n    class po {\n        constructor(e, t) {\n            const i = e.options;\n            this.lineHeight = i.get(58), this.pixelRatio = i.get(127), this.overviewRulerLanes = i.get(73), this.renderBorder = i.get(72);\n            const n = t.getColor(tr.C);\n            this.borderColor = n ? n.toString() : null, this.hideCursor = i.get(51);\n            const r = t.getColor(tr.w);\n            this.cursorColor = r ? r.transparent(.7).toString() : null, this.themeType = t.type;\n            e = (o = i.get(64)).enabled;\n            var o = o.side;\n            t = e ? t.getColor(tr.B) || z.A.getDefaultBackground() : null;\n            this.backgroundColor = null === t || \"left\" === o ? null : uo.a.Format.CSS.formatHex(t), o = i.get(129).overviewRuler, this.top = o.top, this.right = o.right, this.domWidth = o.width, this.domHeight = o.height, 0 === this.overviewRulerLanes ? (this.canvasWidth = 0, this.canvasHeight = 0) : (this.canvasWidth = this.domWidth * this.pixelRatio | 0, this.canvasHeight = this.domHeight * this.pixelRatio | 0);\n            var [t, o] = this._initLanes(1, this.canvasWidth, this.overviewRulerLanes);\n            this.x = t, this.w = o\n        }\n        _initLanes(e, t, i) {\n            var n = t - e;\n            if (3 <= i) {\n                var r = Math.floor(n / 3),\n                    o = Math.floor(n / 3),\n                    s = n - r - o;\n                return [\n                    [0, e, t = e + r, e, e + r + s, e, t, e],\n                    [0, r, s, r + s, o, r + s + o, s + o, r + s + o]\n                ]\n            }\n            return 2 !== i ? [\n                [0, e, e, e, e, e, e, e],\n                [0, n, n, n, n, n, n, n]\n            ] : [\n                [0, e, e, e, e + (i = Math.floor(n / 2)), e, e, e],\n                [0, i, i, i, n -= i, i + n, i + n, i + n]\n            ]\n        }\n        equals(e) {\n            return this.lineHeight === e.lineHeight && this.pixelRatio === e.pixelRatio && this.overviewRulerLanes === e.overviewRulerLanes && this.renderBorder === e.renderBorder && this.borderColor === e.borderColor && this.hideCursor === e.hideCursor && this.cursorColor === e.cursorColor && this.themeType === e.themeType && this.backgroundColor === e.backgroundColor && this.top === e.top && this.right === e.right && this.domWidth === e.domWidth && this.domHeight === e.domHeight && this.canvasWidth === e.canvasWidth && this.canvasHeight === e.canvasHeight\n        }\n    }\n    class go extends rn {\n        constructor(e) {\n            super(e), this._domNode = Object(Ui.b)(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 = z.A.onDidChange(e => {\n                e.changedColorMap && this._updateSettings(!0)\n            }), this._cursorPositions = []\n        }\n        dispose() {\n            super.dispose(), this._tokensColorTrackerListener.dispose()\n        }\n        _updateSettings(e) {\n            var t = new po(this._context.configuration, this._context.theme);\n            return !(this._settings && this._settings.equals(t) || (this._settings = t, 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, e && this._render(), 0))\n        }\n        on配置Changed(e) {\n            return this._updateSettings(!1)\n        }\n        onCursorStateChanged(e) {\n            this._cursorPositions = [];\n            for (let t = 0, i = e.selections.length; t < i; t++) this._cursorPositions[t] = e.selections[t].getPosition();\n            return this._cursorPositions.sort(Re.a.compare), !0\n        }\n        onDecorationsChanged(e) {\n            return !!e.affectsOverviewRuler\n        }\n        onFlushed(e) {\n            return !0\n        }\n        onScrollChanged(e) {\n            return e.scrollHeightChanged\n        }\n        onZonesChanged(e) {\n            return !0\n        }\n        onThemeChanged(e) {\n            return this._context.model.invalidateOverviewRulerColorCache(), this._updateSettings(!1)\n        }\n        getDomNode() {\n            return this._domNode.domNode\n        }\n        prepareRender(e) {}\n        render(e) {\n            this._render()\n        }\n        _render() {\n            if (0 !== this._settings.overviewRulerLanes) {\n                var e = this._settings.canvasWidth,\n                    t = this._settings.canvasHeight,\n                    i = this._settings.lineHeight;\n                const _ = this._context.viewLayout;\n                var n = t / this._context.viewLayout.getScrollHeight();\n                const w = this._context.model.getAllOverviewRulerDecorations(this._context.theme);\n                var r = 6 * this._settings.pixelRatio | 0,\n                    o = r / 2 | 0;\n                const y = this._domNode.domNode.getContext(\"2d\");\n                null === this._settings.backgroundColor ? y.clearRect(0, 0, e, t) : (y.fillStyle = this._settings.backgroundColor, y.fillRect(0, 0, e, t));\n                var s = this._settings.x,\n                    a = this._settings.w;\n                w.sort($e.cmp);\n                for (const e of w) {\n                    var l = e.color,\n                        d = e.data;\n                    y.fillStyle = l;\n                    let p = 0,\n                        g = 0,\n                        f = 0;\n                    for (let e = 0, l = d.length / 3; e < l; e++) {\n                        var c = d[3 * e],\n                            h = d[3 * e + 1],\n                            u = d[3 * e + 2];\n                        let l = _.getVerticalOffsetForLineNumber(h) * n | 0,\n                            m = (_.getVerticalOffsetForLineNumber(u) + i) * n | 0;\n                        if (m - l < r) {\n                            let e = (l + m) / 2 | 0;\n                            e < o ? e = o : e + o > t && (e = t - o), l = e - o, m = e + o\n                        }\n                        l > f + 1 || c !== p ? (0 !== e && y.fillRect(s[p], g, a[p], f - g), p = c, g = l, f = m) : m > f && (f = m)\n                    }\n                    y.fillRect(s[p], g, a[p], f - g)\n                }\n                if (!this._settings.hideCursor && this._settings.cursorColor) {\n                    var p = 2 * this._settings.pixelRatio | 0,\n                        g = p / 2 | 0,\n                        f = this._settings.x[7],\n                        m = this._settings.w[7];\n                    y.fillStyle = this._settings.cursorColor;\n                    let e = -100,\n                        i = -100;\n                    for (let r = 0, o = this._cursorPositions.length; r < o; r++) {\n                        var v = this._cursorPositions[r];\n                        let o = _.getVerticalOffsetForLineNumber(v.lineNumber) * n | 0;\n                        o < g ? o = g : o + g > t && (o = t - g);\n                        var b = o - g;\n                        v = b + p;\n                        b > i + 1 ? (0 !== r && y.fillRect(f, e, m, i - e), e = b, i = v) : v > i && (i = v)\n                    }\n                    y.fillRect(f, e, m, i - e)\n                }\n                this._settings.renderBorder && this._settings.borderColor && 0 < this._settings.overviewRulerLanes && (y.beginPath(), y.lineWidth = 1, y.strokeStyle = this._settings.borderColor, y.moveTo(0, 0), y.lineTo(0, t), y.stroke(), y.moveTo(0, 0), y.lineTo(e, 0), y.stroke())\n            } else this._domNode.setBackgroundColor(this._settings.backgroundColor || \"\")\n        }\n    }\n    class fo {\n        constructor(e, t, i) {\n            this._colorZoneBrand = void 0, this.from = 0 | e, this.to = 0 | t, this.colorId = 0 | i\n        }\n        static compare(e, t) {\n            return e.colorId === t.colorId ? e.from === t.from ? e.to - t.to : e.from - t.from : e.colorId - t.colorId\n        }\n    }\n    class mo {\n        constructor(e, t, i) {\n            this._overviewRulerZoneBrand = void 0, this.startLineNumber = e, this.endLineNumber = t, this.color = i, this._colorZone = null\n        }\n        static compare(e, t) {\n            return e.color === t.color ? e.startLineNumber === t.startLineNumber ? e.endLineNumber - t.endLineNumber : e.startLineNumber - t.startLineNumber : e.color < t.color ? -1 : 1\n        }\n        setColorZone(e) {\n            this._colorZone = e\n        }\n        getColorZones() {\n            return this._colorZone\n        }\n    }\n    class vo {\n        constructor(e) {\n            this._getVerticalOffsetForLine = e, this._zones = [], this._colorZonesInvalid = !1, this._lineHeight = 0, this._domWidth = 0, this._domHeight = 0, this._outerHeight = 0, this._pixelRatio = 1, this._lastAssignedId = 0, this._color2Id = Object.create(null), this._id2Color = []\n        }\n        getId2Color() {\n            return this._id2Color\n        }\n        setZones(e) {\n            this._zones = e, this._zones.sort(mo.compare)\n        }\n        setLineHeight(e) {\n            return this._lineHeight !== e && (this._lineHeight = e, this._colorZonesInvalid = !0)\n        }\n        setPixelRatio(e) {\n            this._pixelRatio = e, this._colorZonesInvalid = !0\n        }\n        getDOMWidth() {\n            return this._domWidth\n        }\n        getCanvasWidth() {\n            return this._domWidth * this._pixelRatio\n        }\n        setDOMWidth(e) {\n            return this._domWidth !== e && (this._domWidth = e, this._colorZonesInvalid = !0)\n        }\n        getDOMHeight() {\n            return this._domHeight\n        }\n        getCanvasHeight() {\n            return this._domHeight * this._pixelRatio\n        }\n        setDOMHeight(e) {\n            return this._domHeight !== e && (this._domHeight = e, this._colorZonesInvalid = !0)\n        }\n        getOuterHeight() {\n            return this._outerHeight\n        }\n        setOuterHeight(e) {\n            return this._outerHeight !== e && (this._outerHeight = e, this._colorZonesInvalid = !0)\n        }\n        resolveColorZones() {\n            var e = this._colorZonesInvalid,\n                t = Math.floor(this._lineHeight),\n                i = Math.floor(this.getCanvasHeight()),\n                n = i / Math.floor(this._outerHeight),\n                r = Math.floor(4 * this._pixelRatio / 2);\n            let o = [];\n            for (let l = 0, d = this._zones.length; l < d; l++) {\n                const d = this._zones[l];\n                if (!e)\n                    if (a = d.getColorZones()) {\n                        o.push(a);\n                        continue\n                    } var s = Math.floor(n * this._getVerticalOffsetForLine(d.startLineNumber)),\n                    a = Math.floor(n * (this._getVerticalOffsetForLine(d.endLineNumber) + t));\n                let c = Math.floor((s + a) / 2),\n                    h = a - c;\n                h < r && (h = r), c - h < 0 && (c = h), c + h > i && (c = i - h), a = d.color;\n                let u = this._color2Id[a];\n                u || (u = ++this._lastAssignedId, this._color2Id[a] = u, this._id2Color[u] = a), a = new fo(c - h, c + h, u), d.setColorZone(a), o.push(a)\n            }\n            return this._colorZonesInvalid = !1, o.sort(fo.compare), o\n        }\n    }\n    class bo extends nn {\n        constructor(e, t) {\n            super(), this._context = e;\n            const i = this._context.configuration.options;\n            this._domNode = Object(Ui.b)(document.createElement(\"canvas\")), this._domNode.setClassName(t), this._domNode.setPosition(\"absolute\"), this._domNode.setLayerHinting(!0), this._domNode.setContain(\"strict\"), this._zoneManager = new vo(e => this._context.viewLayout.getVerticalOffsetForLineNumber(e)), this._zoneManager.setDOMWidth(0), this._zoneManager.setDOMHeight(0), this._zoneManager.setOuterHeight(this._context.viewLayout.getScrollHeight()), this._zoneManager.setLineHeight(i.get(58)), this._zoneManager.setPixelRatio(i.get(127)), this._context.addEventHandler(this)\n        }\n        dispose() {\n            this._context.removeEventHandler(this), super.dispose()\n        }\n        on配置Changed(e) {\n            const t = this._context.configuration.options;\n            return e.hasChanged(58) && (this._zoneManager.setLineHeight(t.get(58)), this._render()), e.hasChanged(127) && (this._zoneManager.setPixelRatio(t.get(127)), 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\n        }\n        onFlushed(e) {\n            return this._render(), !0\n        }\n        onScrollChanged(e) {\n            return e.scrollHeightChanged && (this._zoneManager.setOuterHeight(e.scrollHeight), this._render()), !0\n        }\n        onZonesChanged(e) {\n            return this._render(), !0\n        }\n        getDomNode() {\n            return this._domNode.domNode\n        }\n        setLayout(e) {\n            this._domNode.setTop(e.top), this._domNode.setRight(e.right);\n            let t = !1;\n            t = this._zoneManager.setDOMWidth(e.width) || t, t = this._zoneManager.setDOMHeight(e.height) || t, t && (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())\n        }\n        setZones(e) {\n            this._zoneManager.setZones(e), this._render()\n        }\n        _render() {\n            if (0 === this._zoneManager.getOuterHeight()) return !1;\n            var e = this._zoneManager.getCanvasWidth(),\n                t = this._zoneManager.getCanvasHeight(),\n                i = this._zoneManager.resolveColorZones(),\n                n = this._zoneManager.getId2Color();\n            const r = this._domNode.domNode.getContext(\"2d\");\n            return r.clearRect(0, 0, e, t), 0 < i.length && this._renderOneLane(r, i, n, e), !0\n        }\n        _renderOneLane(e, t, i, n) {\n            let r = 0,\n                o = 0,\n                s = 0;\n            for (const c of t) {\n                var a = c.colorId,\n                    l = c.from,\n                    d = c.to;\n                s = a !== r ? (e.fillRect(0, o, n, s - o), r = a, e.fillStyle = i[r], o = l, d) : s >= l ? Math.max(s, d) : (e.fillRect(0, o, n, s - o), o = l, d)\n            }\n            e.fillRect(0, o, n, s - o)\n        }\n    }\n    i(414);\n    class _o extends rn {\n        constructor(e) {\n            super(e), this.domNode = Object(Ui.b)(document.createElement(\"div\")), this.domNode.setAttribute(\"role\", \"presentation\"), this.domNode.setAttribute(\"aria-hidden\", \"true\"), this.domNode.setClassName(\"view-rulers\"), this._renderedRulers = [];\n            const t = this._context.configuration.options;\n            this._rulers = t.get(90), this._typicalHalfwidthCharacterWidth = t.get(43).typicalHalfwidthCharacterWidth\n        }\n        dispose() {\n            super.dispose()\n        }\n        on配置Changed(e) {\n            const t = this._context.configuration.options;\n            return this._rulers = t.get(90), this._typicalHalfwidthCharacterWidth = t.get(43).typicalHalfwidthCharacterWidth, !0\n        }\n        onScrollChanged(e) {\n            return e.scrollHeightChanged\n        }\n        prepareRender(e) {}\n        _ensureRulersCount() {\n            var e = this._renderedRulers.length,\n                t = this._rulers.length;\n            if (e !== t)\n                if (e < t) {\n                    var {\n                        tabSize: i\n                    } = this._context.model.getTextModelOptions(), n = i;\n                    let r = t - e;\n                    for (; 0 < r;) {\n                        const e = Object(Ui.b)(document.createElement(\"div\"));\n                        e.setClassName(\"view-ruler\"), e.setWidth(n), this.domNode.appendChild(e), this._renderedRulers.push(e), r--\n                    }\n                } else {\n                    let i = e - t;\n                    for (; 0 < i;) {\n                        var r = this._renderedRulers.pop();\n                        this.domNode.removeChild(r), i--\n                    }\n                }\n        }\n        render(e) {\n            this._ensureRulersCount();\n            for (let i = 0, n = this._rulers.length; i < n; i++) {\n                const n = this._renderedRulers[i];\n                var t = this._rulers[i];\n                n.setBoxShadow(t.color ? `1px 0 0 0 ${t.color} inset` : \"\"), n.setHeight(Math.min(e.scrollHeight, 1e6)), n.setLeft(t.column * this._typicalHalfwidthCharacterWidth)\n            }\n        }\n    }\n    Object(ir.f)((e, t) => {\n        (e = e.getColor(tr.D)) && t.addRule(`.monaco-editor .view-ruler { box-shadow: 1px 0 0 0 ${e} inset; }`)\n    }), i(416);\n    class wo extends rn {\n        constructor(e) {\n            super(e), this._scrollTop = 0, this._width = 0, this._updateWidth(), this._shouldShow = !1;\n            e = this._context.configuration.options.get(91), this._useShadows = e.useShadows, this._domNode = Object(Ui.b)(document.createElement(\"div\")), this._domNode.setAttribute(\"role\", \"presentation\"), this._domNode.setAttribute(\"aria-hidden\", \"true\")\n        }\n        dispose() {\n            super.dispose()\n        }\n        _updateShouldShow() {\n            var e = this._useShadows && 0 < this._scrollTop;\n            return this._shouldShow !== e && (this._shouldShow = e, !0)\n        }\n        getDomNode() {\n            return this._domNode\n        }\n        _updateWidth() {\n            var e = this._context.configuration.options.get(129);\n            0 === e.minimap.renderMinimap || 0 < e.minimap.minimapWidth && 0 === e.minimap.minimapLeft ? this._width = e.width : this._width = e.width - e.minimap.minimapWidth - e.verticalScrollbarWidth\n        }\n        on配置Changed(e) {\n            var t = this._context.configuration.options.get(91);\n            return this._useShadows = t.useShadows, this._updateWidth(), this._updateShouldShow(), !0\n        }\n        onScrollChanged(e) {\n            return this._scrollTop = e.scrollTop, this._updateShouldShow()\n        }\n        prepareRender(e) {}\n        render(e) {\n            this._domNode.setWidth(this._width), this._domNode.setClassName(this._shouldShow ? \"scroll-decoration\" : \"\")\n        }\n    }\n    Object(ir.f)((e, t) => {\n        (e = e.getColor(Ir.fc)) && t.addRule(`.monaco-editor .scroll-decoration { box-shadow: ${e} 0 6px 6px -6px inset; }`)\n    }), i(418);\n    class yo {\n        constructor(e) {\n            this.left = e.left, this.width = e.width, this.startStyle = null, this.endStyle = null\n        }\n    }\n    class Co {\n        constructor(e, t) {\n            this.lineNumber = e, this.ranges = t\n        }\n    }\n\n    function xo(e) {\n        return new yo(e)\n    }\n\n    function So(e) {\n        return new Co(e.lineNumber, e.ranges.map(xo))\n    }\n    class ko extends er {\n        constructor(e) {\n            super(), this._previousFrameVisibleRangesWithStyle = [], this._context = e;\n            const t = this._context.configuration.options;\n            this._lineHeight = t.get(58), this._roundedSelection = t.get(89), this._typicalHalfwidthCharacterWidth = t.get(43).typicalHalfwidthCharacterWidth, this._selections = [], this._renderResult = null, this._context.addEventHandler(this)\n        }\n        dispose() {\n            this._context.removeEventHandler(this), this._renderResult = null, super.dispose()\n        }\n        on配置Changed(e) {\n            const t = this._context.configuration.options;\n            return this._lineHeight = t.get(58), this._roundedSelection = t.get(89), this._typicalHalfwidthCharacterWidth = t.get(43).typicalHalfwidthCharacterWidth, !0\n        }\n        onCursorStateChanged(e) {\n            return this._selections = e.selections.slice(0), !0\n        }\n        onDecorationsChanged(e) {\n            return !0\n        }\n        onFlushed(e) {\n            return !0\n        }\n        onLinesChanged(e) {\n            return !0\n        }\n        onLinesDeleted(e) {\n            return !0\n        }\n        onLinesInserted(e) {\n            return !0\n        }\n        onScrollChanged(e) {\n            return e.scrollTopChanged\n        }\n        onZonesChanged(e) {\n            return !0\n        }\n        _visibleRangesHaveGaps(e) {\n            for (let t = 0, i = e.length; t < i; t++)\n                if (1 < e[t].ranges.length) return !0;\n            return !1\n        }\n        _enrichVisibleRangesWithStyle(e, t, i) {\n            var n = this._typicalHalfwidthCharacterWidth / 4;\n            let r = null,\n                o = null;\n            if (i && 0 < i.length && 0 < t.length) {\n                var s = t[0].lineNumber;\n                if (s === e.startLineNumber)\n                    for (let e = 0; !r && e < i.length; e++) i[e].lineNumber === s && (r = i[e].ranges[0]);\n                var a = t[t.length - 1].lineNumber;\n                if (a === e.endLineNumber)\n                    for (let e = i.length - 1; !o && 0 <= e; e--) i[e].lineNumber === a && (o = i[e].ranges[0]);\n                r && !r.startStyle && (r = null), o && !o.startStyle && (o = null)\n            }\n            for (let e = 0, i = t.length; e < i; e++) {\n                const s = t[e].ranges[0];\n                var l, d, c = s.left,\n                    h = s.left + s.width;\n                const a = {\n                        top: 0,\n                        bottom: 0\n                    },\n                    u = {\n                        top: 0,\n                        bottom: 0\n                    };\n                0 < e ? (l = t[e - 1].ranges[0].left, d = t[e - 1].ranges[0].left + t[e - 1].ranges[0].width, Lo(c - l) < n ? a.top = 2 : l < c && (a.top = 1), Lo(h - d) < n ? u.top = 2 : l < h && h < d && (u.top = 1)) : r && (a.top = r.startStyle.top, u.top = r.endStyle.top), e + 1 < i ? (l = t[e + 1].ranges[0].left, d = t[e + 1].ranges[0].left + t[e + 1].ranges[0].width, Lo(c - l) < n ? a.bottom = 2 : l < c && c < d && (a.bottom = 1), Lo(h - d) < n ? u.bottom = 2 : h < d && (u.bottom = 1)) : o && (a.bottom = o.startStyle.bottom, u.bottom = o.endStyle.bottom), s.startStyle = a, s.endStyle = u\n            }\n        }\n        _getVisibleRangesWithStyle(e, t, i) {\n            return e = (t.linesVisibleRangesForRange(e, !0) || []).map(So), !this._visibleRangesHaveGaps(e) && this._roundedSelection && this._enrichVisibleRangesWithStyle(t.visibleRange, e, i), e\n        }\n        _createSelectionPiece(e, t, i, n, r) {\n            return '<div class=\"cslr ' + i + '\" style=\"top:' + e.toString() + \"px;left:\" + n.toString() + \"px;width:\" + r.toString() + \"px;height:\" + t + 'px;\"></div>'\n        }\n        _actualRenderOneSelection(e, t, i, n) {\n            if (0 !== n.length) {\n                var r = !!n[0].ranges[0].startStyle,\n                    o = this._lineHeight.toString(),\n                    s = (this._lineHeight - 1).toString(),\n                    a = n[0].lineNumber,\n                    l = n[n.length - 1].lineNumber;\n                for (let v = 0, b = n.length; v < b; v++) {\n                    var d = n[v],\n                        c = d.lineNumber,\n                        h = c - t,\n                        u = !i || c !== l && c !== a ? o : s,\n                        p = i && c === a ? 1 : 0;\n                    let b = \"\",\n                        _ = \"\";\n                    for (let e = 0, t = d.ranges.length; e < t; e++) {\n                        var g = d.ranges[e];\n                        if (r) {\n                            var f = g.startStyle,\n                                m = g.endStyle;\n                            if (1 === f.top || 1 === f.bottom) {\n                                b += this._createSelectionPiece(p, u, ko.SELECTION_CLASS_NAME, g.left - ko.ROUNDED_PIECE_WIDTH, ko.ROUNDED_PIECE_WIDTH);\n                                let e = ko.EDITOR_BACKGROUND_CLASS_NAME;\n                                1 === f.top && (e += \" \" + ko.SELECTION_TOP_RIGHT), 1 === f.bottom && (e += \" \" + ko.SELECTION_BOTTOM_RIGHT), b += this._createSelectionPiece(p, u, e, g.left - ko.ROUNDED_PIECE_WIDTH, ko.ROUNDED_PIECE_WIDTH)\n                            }\n                            if (1 === m.top || 1 === m.bottom) {\n                                b += this._createSelectionPiece(p, u, ko.SELECTION_CLASS_NAME, g.left + g.width, ko.ROUNDED_PIECE_WIDTH);\n                                let e = ko.EDITOR_BACKGROUND_CLASS_NAME;\n                                1 === m.top && (e += \" \" + ko.SELECTION_TOP_LEFT), 1 === m.bottom && (e += \" \" + ko.SELECTION_BOTTOM_LEFT), b += this._createSelectionPiece(p, u, e, g.left + g.width, ko.ROUNDED_PIECE_WIDTH)\n                            }\n                        }\n                        let t = ko.SELECTION_CLASS_NAME;\n                        r && (f = g.startStyle, m = g.endStyle, 0 === f.top && (t += \" \" + ko.SELECTION_TOP_LEFT), 0 === f.bottom && (t += \" \" + ko.SELECTION_BOTTOM_LEFT), 0 === m.top && (t += \" \" + ko.SELECTION_TOP_RIGHT), 0 === m.bottom && (t += \" \" + ko.SELECTION_BOTTOM_RIGHT)), _ += this._createSelectionPiece(p, u, t, g.left, g.width)\n                    }\n                    e[h][0] += b, e[h][1] += _\n                }\n            }\n        }\n        prepareRender(e) {\n            const t = [];\n            var i, n = e.visibleRange.startLineNumber,\n                r = e.visibleRange.endLineNumber;\n            for (let e = n; e <= r; e++) {\n                t[e - n] = [\"\", \"\"]\n            }\n            const o = [];\n            for (let r = 0, s = this._selections.length; r < s; r++) {\n                const s = this._selections[r];\n                s.isEmpty() ? o[r] = null : (i = this._getVisibleRangesWithStyle(s, e, this._previousFrameVisibleRangesWithStyle[r]), o[r] = i, this._actualRenderOneSelection(t, n, 1 < this._selections.length, i))\n            }\n            this._previousFrameVisibleRangesWithStyle = o, this._renderResult = t.map(([e, t]) => e + t)\n        }\n        render(e, t) {\n            return this._renderResult ? (e = t - e) < 0 || e >= this._renderResult.length ? \"\" : this._renderResult[e] : \"\"\n        }\n    }\n\n    function Lo(e) {\n        return e < 0 ? -e : e\n    }\n    ko.SELECTION_CLASS_NAME = \"selected-text\", ko.SELECTION_TOP_LEFT = \"top-left-radius\", ko.SELECTION_BOTTOM_LEFT = \"bottom-left-radius\", ko.SELECTION_TOP_RIGHT = \"top-right-radius\", ko.SELECTION_BOTTOM_RIGHT = \"bottom-right-radius\", ko.EDITOR_BACKGROUND_CLASS_NAME = \"monaco-editor-background\", ko.ROUNDED_PIECE_WIDTH = 10, Object(ir.f)((e, t) => {\n        var i = e.getColor(Ir.H);\n        i && t.addRule(`.monaco-editor .focused .selected-text { background-color: ${i}; }`), (i = e.getColor(Ir.D)) && t.addRule(`.monaco-editor .selected-text { background-color: ${i}; }`);\n        const n = e.getColor(Ir.I);\n        n && !n.isTransparent() && t.addRule(`.monaco-editor .view-line span.inline-selected-text { color: ${n}; }`)\n    }), i(420);\n    class Oo {\n        constructor(e, t, i, n, r, o) {\n            this.top = e, this.left = t, this.width = i, this.height = n, this.textContent = r, this.textContentClassName = o\n        }\n    }\n    class Eo {\n        constructor(e) {\n            this._context = e;\n            const t = this._context.configuration.options;\n            e = t.get(43), this._cursorStyle = t.get(24), this._lineHeight = t.get(58), this._typicalHalfwidthCharacterWidth = e.typicalHalfwidthCharacterWidth, this._lineCursorWidth = Math.min(t.get(27), this._typicalHalfwidthCharacterWidth), this._isVisible = !0, this._domNode = Object(Ui.b)(document.createElement(\"div\")), this._domNode.setClassName(\"cursor \" + sr), this._domNode.setHeight(this._lineHeight), this._domNode.setTop(0), this._domNode.setLeft(0), zi.applyFontInfo(this._domNode, e), this._domNode.setDisplay(\"none\"), this._position = new Re.a(1, 1), this._lastRenderedContent = \"\", this._renderData = null\n        }\n        getDomNode() {\n            return this._domNode\n        }\n        getPosition() {\n            return this._position\n        }\n        show() {\n            this._isVisible || (this._domNode.setVisibility(\"inherit\"), this._isVisible = !0)\n        }\n        hide() {\n            this._isVisible && (this._domNode.setVisibility(\"hidden\"), this._isVisible = !1)\n        }\n        on配置Changed(e) {\n            const t = this._context.configuration.options;\n            var i = t.get(43);\n            return this._cursorStyle = t.get(24), this._lineHeight = t.get(58), this._typicalHalfwidthCharacterWidth = i.typicalHalfwidthCharacterWidth, this._lineCursorWidth = Math.min(t.get(27), this._typicalHalfwidthCharacterWidth), zi.applyFontInfo(this._domNode, i), !0\n        }\n        onCursorPositionChanged(e) {\n            return this._position = e, !0\n        }\n        _prepareRender(e) {\n            let t = \"\";\n            if (this._cursorStyle === n.i.Line || this._cursorStyle === n.i.LineThin) {\n                var i = e.visibleRangeForPosition(this._position);\n                if (!i || i.outsideRenderedLine) return null;\n                let r;\n                if (this._cursorStyle === n.i.Line) {\n                    if (r = s.r(0 < this._lineCursorWidth ? this._lineCursorWidth : 2), 2 < r) {\n                        const e = this._context.model.getLineContent(this._position.lineNumber),\n                            i = b.K(e, this._position.column - 1);\n                        t = e.substr(this._position.column - 1, i)\n                    }\n                } else r = s.r(1);\n                let o = i.left;\n                2 <= r && 1 <= o && --o;\n                const a = e.getVerticalOffsetForLineNumber(this._position.lineNumber) - e.bigNumbersDelta;\n                return new Oo(a, o, r, this._lineHeight, t, \"\")\n            }\n            const r = this._context.model.getLineContent(this._position.lineNumber),\n                o = b.K(r, this._position.column - 1);\n            var a = e.linesVisibleRangesForRange(new T.a(this._position.lineNumber, this._position.column, this._position.lineNumber, this._position.column + o), !1);\n            if (!a || 0 === a.length) return null;\n            var l = a[0];\n            if (l.outsideRenderedLine || 0 === l.ranges.length) return null;\n            a = (i = l.ranges[0]).width < 1 ? this._typicalHalfwidthCharacterWidth : i.width;\n            let d = \"\";\n            if (this._cursorStyle === n.i.Block) {\n                const e = this._context.model.getViewLineData(this._position.lineNumber);\n                t = r.substr(this._position.column - 1, o), l = e.tokens.findTokenIndexAtOffset(this._position.column - 1), d = e.tokens.getClassName(l)\n            }\n            let c = e.getVerticalOffsetForLineNumber(this._position.lineNumber) - e.bigNumbersDelta,\n                h = this._lineHeight;\n            return this._cursorStyle !== n.i.Underline && this._cursorStyle !== n.i.UnderlineThin || (c += this._lineHeight - 2, h = 2), new Oo(c, i.left, a, h, t, d)\n        }\n        prepareRender(e) {\n            this._renderData = this._prepareRender(e)\n        }\n        render(e) {\n            return this._renderData ? (this._lastRenderedContent !== this._renderData.textContent && (this._lastRenderedContent = this._renderData.textContent, this._domNode.domNode.textContent = this._lastRenderedContent), this._domNode.setClassName(`cursor ${sr} ${this._renderData.textContentClassName}`), this._domNode.setDisplay(\"block\"), this._domNode.setTop(this._renderData.top), this._domNode.setLeft(this._renderData.left), this._domNode.setWidth(this._renderData.width), this._domNode.setLineHeight(this._renderData.height), this._domNode.setHeight(this._renderData.height), {\n                domNode: this._domNode.domNode,\n                position: this._position,\n                contentLeft: this._renderData.left,\n                height: this._renderData.height,\n                width: 2\n            }) : (this._domNode.setDisplay(\"none\"), null)\n        }\n    }\n    class No extends rn {\n        constructor(e) {\n            super(e);\n            const t = this._context.configuration.options;\n            this._readOnly = t.get(80), this._cursorBlinking = t.get(22), this._cursorStyle = t.get(24), this._cursorSmoothCaretAnimation = t.get(23), this._selectionIsEmpty = !0, this._isComposingInput = !1, this._isVisible = !1, this._primaryCursor = new Eo(this._context), this._secondaryCursors = [], this._renderData = [], this._domNode = Object(Ui.b)(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 q.g, this._cursorFlatBlinkInterval = new q.c, this._blinkingEnabled = !1, this._editorHasFocus = !1, this._updateBlinking()\n        }\n        dispose() {\n            super.dispose(), this._startCursorBlinkAnimation.dispose(), this._cursorFlatBlinkInterval.dispose()\n        }\n        getDomNode() {\n            return this._domNode\n        }\n        onCompositionStart(e) {\n            return this._isComposingInput = !0, this._updateBlinking(), !0\n        }\n        onCompositionEnd(e) {\n            return this._isComposingInput = !1, this._updateBlinking(), !0\n        }\n        on配置Changed(e) {\n            const t = this._context.configuration.options;\n            this._readOnly = t.get(80), this._cursorBlinking = t.get(22), this._cursorStyle = t.get(24), this._cursorSmoothCaretAnimation = t.get(23), this._updateBlinking(), this._updateDomClassName(), this._primaryCursor.on配置Changed(e);\n            for (let t = 0, i = this._secondaryCursors.length; t < i; t++) this._secondaryCursors[t].on配置Changed(e);\n            return !0\n        }\n        _onCursorPositionChanged(e, t) {\n            if (this._primaryCursor.onCursorPositionChanged(e), this._updateBlinking(), this._secondaryCursors.length < t.length) {\n                var i = t.length - this._secondaryCursors.length;\n                for (let e = 0; e < i; e++) {\n                    const e = new Eo(this._context);\n                    this._domNode.domNode.insertBefore(e.getDomNode().domNode, this._primaryCursor.getDomNode().domNode.nextSibling), this._secondaryCursors.push(e)\n                }\n            } else if (this._secondaryCursors.length > t.length) {\n                var n = this._secondaryCursors.length - t.length;\n                for (let e = 0; e < n; e++) this._domNode.removeChild(this._secondaryCursors[0].getDomNode()), this._secondaryCursors.splice(0, 1)\n            }\n            for (let e = 0; e < t.length; e++) this._secondaryCursors[e].onCursorPositionChanged(t[e])\n        }\n        onCursorStateChanged(e) {\n            const t = [];\n            for (let i = 0, n = e.selections.length; i < n; i++) t[i] = e.selections[i].getPosition();\n            this._onCursorPositionChanged(t[0], t.slice(1));\n            var i = e.selections[0].isEmpty();\n            return this._selectionIsEmpty !== i && (this._selectionIsEmpty = i, this._updateDomClassName()), !0\n        }\n        onDecorationsChanged(e) {\n            return !0\n        }\n        onFlushed(e) {\n            return !0\n        }\n        onFocusChanged(e) {\n            return this._editorHasFocus = e.isFocused, this._updateBlinking(), !1\n        }\n        onLinesChanged(e) {\n            return !0\n        }\n        onLinesDeleted(e) {\n            return !0\n        }\n        onLinesInserted(e) {\n            return !0\n        }\n        onScrollChanged(e) {\n            return !0\n        }\n        onTokensChanged(e) {\n            var t = t => {\n                for (let i = 0, n = e.ranges.length; i < n; i++)\n                    if (e.ranges[i].fromLineNumber <= t.lineNumber && t.lineNumber <= e.ranges[i].toLineNumber) return !0;\n                return !1\n            };\n            if (t(this._primaryCursor.getPosition())) return !0;\n            for (const e of this._secondaryCursors)\n                if (t(e.getPosition())) return !0;\n            return !1\n        }\n        onZonesChanged(e) {\n            return !0\n        }\n        _getCursorBlinking() {\n            return !this._isComposingInput && this._editorHasFocus ? this._readOnly ? 5 : this._cursorBlinking : 0\n        }\n        _updateBlinking() {\n            this._startCursorBlinkAnimation.cancel(), this._cursorFlatBlinkInterval.cancel();\n            var e = this._getCursorBlinking(),\n                t = 0 === e,\n                i = 5 === e;\n            t ? this._hide() : this._show(), this._blinkingEnabled = !1, this._updateDomClassName(), t || i || (1 === e ? this._cursorFlatBlinkInterval.cancelAndSet(() => {\n                this._isVisible ? this._hide() : this._show()\n            }, No.BLINK_INTERVAL) : this._startCursorBlinkAnimation.setIfNotSet(() => {\n                this._blinkingEnabled = !0, this._updateDomClassName()\n            }, No.BLINK_INTERVAL))\n        }\n        _updateDomClassName() {\n            this._domNode.setClassName(this._getClassName())\n        }\n        _getClassName() {\n            let e = \"cursors-layer\";\n            switch (this._selectionIsEmpty || (e += \" has-selection\"), this._cursorStyle) {\n                case n.i.Line:\n                    e += \" cursor-line-style\";\n                    break;\n                case n.i.Block:\n                    e += \" cursor-block-style\";\n                    break;\n                case n.i.Underline:\n                    e += \" cursor-underline-style\";\n                    break;\n                case n.i.LineThin:\n                    e += \" cursor-line-thin-style\";\n                    break;\n                case n.i.BlockOutline:\n                    e += \" cursor-block-outline-style\";\n                    break;\n                case n.i.UnderlineThin:\n                    e += \" cursor-underline-thin-style\";\n                    break;\n                default:\n                    e += \" cursor-line-style\"\n            }\n            if (this._blinkingEnabled) switch (this._getCursorBlinking()) {\n                case 1:\n                    e += \" cursor-blink\";\n                    break;\n                case 2:\n                    e += \" cursor-smooth\";\n                    break;\n                case 3:\n                    e += \" cursor-phase\";\n                    break;\n                case 4:\n                    e += \" cursor-expand\";\n                    break;\n                default:\n                    e += \" cursor-solid\"\n            } else e += \" cursor-solid\";\n            return this._cursorSmoothCaretAnimation && (e += \" cursor-smooth-caret-animation\"), e\n        }\n        _show() {\n            this._primaryCursor.show();\n            for (let e = 0, t = this._secondaryCursors.length; e < t; e++) this._secondaryCursors[e].show();\n            this._isVisible = !0\n        }\n        _hide() {\n            this._primaryCursor.hide();\n            for (let e = 0, t = this._secondaryCursors.length; e < t; e++) this._secondaryCursors[e].hide();\n            this._isVisible = !1\n        }\n        prepareRender(e) {\n            this._primaryCursor.prepareRender(e);\n            for (let t = 0, i = this._secondaryCursors.length; t < i; t++) this._secondaryCursors[t].prepareRender(e)\n        }\n        render(e) {\n            let t = [],\n                i = 0;\n            var n = this._primaryCursor.render(e);\n            n && (t[i++] = n);\n            for (let n = 0, o = this._secondaryCursors.length; n < o; n++) {\n                var r = this._secondaryCursors[n].render(e);\n                r && (t[i++] = r)\n            }\n            this._renderData = t\n        }\n        getLastRenderData() {\n            return this._renderData\n        }\n    }\n    No.BLINK_INTERVAL = 500, Object(ir.f)((e, t) => {\n        const i = e.getColor(tr.w);\n        if (i) {\n            let n = e.getColor(tr.v);\n            n = n || i.opposite(), t.addRule(`.monaco-editor .cursors-layer .cursor { background-color: ${i}; border-color: ${i}; color: ${n}; }`), \"hc\" === e.type && t.addRule(`.monaco-editor .cursors-layer.has-selection .cursor { border-left: 1px solid ${n}; border-right: 1px solid ${n}; }`)\n        }\n    });\n    const Do = () => {\n        throw new Error(\"Invalid change accessor\")\n    };\n    class Io extends rn {\n        constructor(e) {\n            super(e);\n            const t = this._context.configuration.options;\n            e = t.get(129), this._lineHeight = t.get(58), this._contentWidth = e.contentWidth, this._contentLeft = e.contentLeft, this.domNode = Object(Ui.b)(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 = Object(Ui.b)(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 = {}\n        }\n        dispose() {\n            super.dispose(), this._zones = {}\n        }\n        _recomputeWhitespacesProps() {\n            var e = this._context.viewLayout.getWhitespaces();\n            const t = new Map;\n            for (const i of e) t.set(i.id, i);\n            let i = !1;\n            return this._context.model.changeWhitespace(e => {\n                var n = Object.keys(this._zones);\n                for (let a = 0, l = n.length; a < l; a++) {\n                    var r = n[a];\n                    const l = this._zones[r];\n                    var o = this._computeWhitespaceProps(l.delegate);\n                    l.isInHiddenArea = o.isInHiddenArea;\n                    var s = t.get(r);\n                    !s || s.afterLineNumber === o.afterViewLineNumber && s.height === o.heightInPx || (e.changeOneWhitespace(r, o.afterViewLineNumber, o.heightInPx), this._safeCallOnComputedHeight(l.delegate, o.heightInPx), i = !0)\n                }\n            }), i\n        }\n        on配置Changed(e) {\n            const t = this._context.configuration.options;\n            var i = t.get(129);\n            return this._lineHeight = t.get(58), this._contentWidth = i.contentWidth, this._contentLeft = i.contentLeft, e.hasChanged(58) && this._recomputeWhitespacesProps(), !0\n        }\n        onLineMappingChanged(e) {\n            return this._recomputeWhitespacesProps()\n        }\n        onLinesDeleted(e) {\n            return !0\n        }\n        onScrollChanged(e) {\n            return e.scrollTopChanged || e.scrollWidthChanged\n        }\n        onZonesChanged(e) {\n            return !0\n        }\n        onLinesInserted(e) {\n            return !0\n        }\n        _getZoneOrdinal(e) {\n            return void 0 !== e.afterColumn ? e.afterColumn : 1e4\n        }\n        _computeWhitespaceProps(e) {\n            if (0 === e.afterLineNumber) return {\n                isInHiddenArea: !1,\n                afterViewLineNumber: 0,\n                heightInPx: this._heightInPixels(e),\n                minWidthInPx: this._minWidthInPixels(e)\n            };\n            let t, i;\n            t = void 0 !== e.afterColumn ? this._context.model.validateModelPosition({\n                lineNumber: e.afterLineNumber,\n                column: e.afterColumn\n            }) : (r = this._context.model.validateModelPosition({\n                lineNumber: e.afterLineNumber,\n                column: 1\n            }).lineNumber, new Re.a(r, this._context.model.getModelLineMaxColumn(r))), i = t.column === this._context.model.getModelLineMaxColumn(t.lineNumber) ? this._context.model.validateModelPosition({\n                lineNumber: t.lineNumber + 1,\n                column: 1\n            }) : this._context.model.validateModelPosition({\n                lineNumber: t.lineNumber,\n                column: t.column + 1\n            });\n            var n = this._context.model.coordinatesConverter.convertModelPositionToViewPosition(t),\n                r = this._context.model.coordinatesConverter.modelPositionIsVisible(i);\n            return {\n                isInHiddenArea: !r,\n                afterViewLineNumber: n.lineNumber,\n                heightInPx: r ? this._heightInPixels(e) : 0,\n                minWidthInPx: this._minWidthInPixels(e)\n            }\n        }\n        changeViewZones(e) {\n            let t = !1;\n            return this._context.model.changeWhitespace(i => {\n                const n = {\n                    addZone: e => (t = !0, this._addZone(i, e)),\n                    removeZone: e => {\n                        e && (t = this._removeZone(i, e) || t)\n                    },\n                    layoutZone: e => {\n                        e && (t = this._layoutZone(i, e) || t)\n                    }\n                };\n                ! function(e, t) {\n                    try {\n                        e(t)\n                    } catch (e) {\n                        Object(se.f)(e)\n                    }\n                }(e, n), n.addZone = Do, n.removeZone = Do, n.layoutZone = Do\n            }), t\n        }\n        _addZone(e, t) {\n            var i = this._computeWhitespaceProps(t);\n            const n = {\n                whitespaceId: e.insertWhitespace(i.afterViewLineNumber, this._getZoneOrdinal(t), i.heightInPx, i.minWidthInPx),\n                delegate: t,\n                isInHiddenArea: i.isInHiddenArea,\n                isVisible: !1,\n                domNode: Object(Ui.b)(t.domNode),\n                marginDomNode: t.marginDomNode ? Object(Ui.b)(t.marginDomNode) : null\n            };\n            return this._safeCallOnComputedHeight(n.delegate, i.heightInPx), n.domNode.setPosition(\"absolute\"), n.domNode.domNode.style.width = \"100%\", n.domNode.setDisplay(\"none\"), n.domNode.setAttribute(\"monaco-view-zone\", n.whitespaceId), this.domNode.appendChild(n.domNode), n.marginDomNode && (n.marginDomNode.setPosition(\"absolute\"), n.marginDomNode.domNode.style.width = \"100%\", n.marginDomNode.setDisplay(\"none\"), n.marginDomNode.setAttribute(\"monaco-view-zone\", n.whitespaceId), this.marginDomNode.appendChild(n.marginDomNode)), this._zones[n.whitespaceId] = n, this.setShouldRender(), n.whitespaceId\n        }\n        _removeZone(e, t) {\n            if (this._zones.hasOwnProperty(t)) {\n                const i = this._zones[t];\n                return delete this._zones[t], e.removeWhitespace(i.whitespaceId), i.domNode.removeAttribute(\"monaco-visible-view-zone\"), i.domNode.removeAttribute(\"monaco-view-zone\"), i.domNode.domNode.parentNode.removeChild(i.domNode.domNode), i.marginDomNode && (i.marginDomNode.removeAttribute(\"monaco-visible-view-zone\"), i.marginDomNode.removeAttribute(\"monaco-view-zone\"), i.marginDomNode.domNode.parentNode.removeChild(i.marginDomNode.domNode)), this.setShouldRender(), !0\n            }\n            return !1\n        }\n        _layoutZone(e, t) {\n            if (this._zones.hasOwnProperty(t)) {\n                const i = this._zones[t];\n                return t = this._computeWhitespaceProps(i.delegate), i.isInHiddenArea = t.isInHiddenArea, e.changeOneWhitespace(i.whitespaceId, t.afterViewLineNumber, t.heightInPx), this._safeCallOnComputedHeight(i.delegate, t.heightInPx), this.setShouldRender(), !0\n            }\n            return !1\n        }\n        shouldSuppressMouseDownOnViewZone(e) {\n            return !!this._zones.hasOwnProperty(e) && (e = this._zones[e], Boolean(e.delegate.suppressMouseDown))\n        }\n        _heightInPixels(e) {\n            return \"number\" == typeof e.heightInPx ? e.heightInPx : \"number\" == typeof e.heightInLines ? this._lineHeight * e.heightInLines : this._lineHeight\n        }\n        _minWidthInPixels(e) {\n            return \"number\" == typeof e.minWidthInPx ? e.minWidthInPx : 0\n        }\n        _safeCallOnComputedHeight(e, t) {\n            if (\"function\" == typeof e.onComputedHeight) try {\n                e.onComputedHeight(t)\n            } catch (e) {\n                Object(se.f)(e)\n            }\n        }\n        _safeCallOnDomNodeTop(e, t) {\n            if (\"function\" == typeof e.onDomNodeTop) try {\n                e.onDomNodeTop(t)\n            } catch (e) {\n                Object(se.f)(e)\n            }\n        }\n        prepareRender(e) {}\n        render(e) {\n            const t = {};\n            let i = !1;\n            for (const n of e.viewportData.whitespaceViewportData) this._zones[n.id].isInHiddenArea || (t[n.id] = n, i = !0);\n            var n = Object.keys(this._zones);\n            for (let i = 0, o = n.length; i < o; i++) {\n                var r = n[i];\n                const o = this._zones[r];\n                let s = 0,\n                    a = 0,\n                    l = \"none\";\n                t.hasOwnProperty(r) ? (s = t[r].verticalOffset - e.bigNumbersDelta, a = t[r].height, l = \"block\", o.isVisible || (o.domNode.setAttribute(\"monaco-visible-view-zone\", \"true\"), o.isVisible = !0), this._safeCallOnDomNodeTop(o.delegate, e.getScrolledTopFromAbsoluteTop(t[r].verticalOffset))) : (o.isVisible && (o.domNode.removeAttribute(\"monaco-visible-view-zone\"), o.isVisible = !1), this._safeCallOnDomNodeTop(o.delegate, e.getScrolledTopFromAbsoluteTop(-1e6))), o.domNode.setTop(s), o.domNode.setHeight(a), o.domNode.setDisplay(l), o.marginDomNode && (o.marginDomNode.setTop(s), o.marginDomNode.setHeight(a), o.marginDomNode.setDisplay(l))\n            }\n            i && (this.domNode.setWidth(Math.max(e.scrollWidth, this._contentWidth)), this.marginDomNode.setWidth(this._contentLeft))\n        }\n    }\n    class To {\n        constructor(e) {\n            this._theme = e\n        }\n        get type() {\n            return this._theme.type\n        }\n        update(e) {\n            this._theme = e\n        }\n        getColor(e) {\n            return this._theme.getColor(e)\n        }\n    }\n    class Mo {\n        constructor(e, t, i) {\n            this.configuration = e, this.theme = new To(t), this.model = i, this.viewLayout = i.viewLayout\n        }\n        addEventHandler(e) {\n            this.model.addViewEventHandler(e)\n        }\n        removeEventHandler(e) {\n            this.model.removeViewEventHandler(e)\n        }\n    }\n    class Po {\n        constructor(e, t, i, n) {\n            this.selections = e, this.startLineNumber = 0 | t.startLineNumber, this.endLineNumber = 0 | t.endLineNumber, this.relativeVerticalOffset = t.relativeVerticalOffset, this.bigNumbersDelta = 0 | t.bigNumbersDelta, this.whitespaceViewportData = i, this._model = n, this.visibleRange = new T.a(t.startLineNumber, this._model.getLineMinColumn(t.startLineNumber), t.endLineNumber, this._model.getLineMaxColumn(t.endLineNumber))\n        }\n        getViewLineRenderingData(e) {\n            return this._model.getViewLineRenderingData(this.visibleRange, e)\n        }\n        getDecorationsInViewport() {\n            return this._model.getDecorationsInViewport(this.visibleRange)\n        }\n    }\n    class Ao extends nn {\n        constructor(e, t, i, n, r, o) {\n            super(), this._selections = [new Hi.a(1, 1, 1, 1)], this._renderAnimationFrame = null, e = new hr(t, n, r, e), this._context = new Mo(t, i.getColorTheme(), n), this._configPixelRatio = this._context.configuration.options.get(127), this._context.addEventHandler(this), this._register(i.onDidColorThemeChange(e => {\n                this._context.theme.update(e), this._context.model.onDidColorThemeChange(), this.render(!0, !1)\n            })), this._viewParts = [], this._textAreaHandler = new dr(this._context, e, this._createTextAreaHandlerHelper()), this._viewParts.push(this._textAreaHandler), this._linesContent = Object(Ui.b)(document.createElement(\"div\")), this._linesContent.setClassName(\"lines-content monaco-editor-background\"), this._linesContent.setPosition(\"absolute\"), this.domNode = Object(Ui.b)(document.createElement(\"div\")), this.domNode.setClassName(this._getEditorClassName()), this.domNode.setAttribute(\"role\", \"code\"), this._overflowGuardContainer = Object(Ui.b)(document.createElement(\"div\")), on.write(this._overflowGuardContainer, 3), this._overflowGuardContainer.setClassName(\"overflow-guard\"), this._scrollbar = new Tr(this._context, this._linesContent, this.domNode, this._overflowGuardContainer), this._viewParts.push(this._scrollbar), this._viewLines = new zr(this._context, this._linesContent), this._viewZones = new Io(this._context), this._viewParts.push(this._viewZones);\n            const s = new go(this._context);\n            this._viewParts.push(s);\n            const a = new wo(this._context);\n            this._viewParts.push(a);\n            const l = new _r(this._context);\n            this._viewParts.push(l), l.addDynamicOverlay(new Or(this._context)), l.addDynamicOverlay(new ko(this._context)), l.addDynamicOverlay(new Fr(this._context)), l.addDynamicOverlay(new Nr(this._context));\n            const d = new wr(this._context);\n            this._viewParts.push(d), d.addDynamicOverlay(new Er(this._context)), d.addDynamicOverlay(new Ar(this._context)), d.addDynamicOverlay(new Ur(this._context)), d.addDynamicOverlay(new Hr(this._context)), d.addDynamicOverlay(new nr(this._context));\n            const c = new rr(this._context);\n            c.getDomNode().appendChild(this._viewZones.marginDomNode), c.getDomNode().appendChild(d.getDomNode()), this._viewParts.push(c), this._contentWidgets = new Cr(this._context, this.domNode), this._viewParts.push(this._contentWidgets), this._viewCursors = new No(this._context), this._viewParts.push(this._viewCursors), this._overlayWidgets = new ho(this._context), this._viewParts.push(this._overlayWidgets), i = new _o(this._context), this._viewParts.push(i);\n            const h = new ao(this._context);\n            if (this._viewParts.push(h), s) {\n                const e = this._scrollbar.getOverviewRulerLayoutInfo();\n                e.parent.insertBefore(s.getDomNode(), e.insertBefore)\n            }\n            this._linesContent.appendChild(l.getDomNode()), this._linesContent.appendChild(i.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(c.getDomNode()), this._overflowGuardContainer.appendChild(this._scrollbar.getDomNode()), this._overflowGuardContainer.appendChild(a.getDomNode()), this._overflowGuardContainer.appendChild(this._textAreaHandler.textArea), this._overflowGuardContainer.appendChild(this._textAreaHandler.textAreaCover), this._overflowGuardContainer.appendChild(this._overlayWidgets.getDomNode()), this._overflowGuardContainer.appendChild(h.getDomNode()), this.domNode.appendChild(this._overflowGuardContainer), o ? o.appendChild(this._contentWidgets.overflowingContentWidgetsDomNode.domNode) : this.domNode.appendChild(this._contentWidgets.overflowingContentWidgetsDomNode), this._applyLayout(), this._pointerHandler = this._register(new Jn(this._context, e, this._createPointerHandlerHelper()))\n        }\n        _flushAccumulatedAndRenderNow() {\n            this._renderNow()\n        }\n        _createPointerHandlerHelper() {\n            return {\n                viewDomNode: this.domNode.domNode,\n                linesContentDomNode: this._linesContent.domNode,\n                focusTextArea: () => {\n                    this.focus()\n                },\n                dispatchTextAreaEvent: e => {\n                    this._textAreaHandler.textArea.domNode.dispatchEvent(e)\n                },\n                getLastRenderData: () => {\n                    var e = this._viewCursors.getLastRenderData() || [],\n                        t = this._textAreaHandler.getLastRenderData();\n                    return new En(e, t)\n                },\n                shouldSuppressMouseDownOnViewZone: e => this._viewZones.shouldSuppressMouseDownOnViewZone(e),\n                shouldSuppressMouseDownOnWidget: e => this._contentWidgets.shouldSuppressMouseDownOnWidget(e),\n                getPositionFromDOMInfo: (e, t) => (this._flushAccumulatedAndRenderNow(), this._viewLines.getPositionFromDOMInfo(e, t)),\n                visibleRangeForPosition: (e, t) => (this._flushAccumulatedAndRenderNow(), this._viewLines.visibleRangeForPosition(new Re.a(e, t))),\n                getLineWidth: e => (this._flushAccumulatedAndRenderNow(), this._viewLines.getLineWidth(e))\n            }\n        }\n        _createTextAreaHandlerHelper() {\n            return {\n                visibleRangeForPositionRelativeToEditor: (e, t) => (this._flushAccumulatedAndRenderNow(), this._viewLines.visibleRangeForPosition(new Re.a(e, t)))\n            }\n        }\n        _applyLayout() {\n            var e = this._context.configuration.options.get(129);\n            this.domNode.setWidth(e.width), this.domNode.setHeight(e.height), this._overflowGuardContainer.setWidth(e.width), this._overflowGuardContainer.setHeight(e.height), this._linesContent.setWidth(1e6), this._linesContent.setHeight(1e6)\n        }\n        _getEditorClassName() {\n            var e = this._textAreaHandler.isFocused() ? \" focused\" : \"\";\n            return this._context.configuration.options.get(126) + \" \" + Object(ir.e)(this._context.theme.type) + e\n        }\n        handleEvents(e) {\n            super.handleEvents(e), this._scheduleRender()\n        }\n        on配置Changed(e) {\n            return this._configPixelRatio = this._context.configuration.options.get(127), this.domNode.setClassName(this._getEditorClassName()), this._applyLayout(), !1\n        }\n        onCursorStateChanged(e) {\n            return this._selections = e.selections, !1\n        }\n        onFocusChanged(e) {\n            return this.domNode.setClassName(this._getEditorClassName()), !1\n        }\n        onThemeChanged(e) {\n            return this.domNode.setClassName(this._getEditorClassName()), !1\n        }\n        dispose() {\n            null !== this._renderAnimationFrame && (this._renderAnimationFrame.dispose(), this._renderAnimationFrame = null), this._contentWidgets.overflowingContentWidgetsDomNode.domNode.remove(), this._context.removeEventHandler(this), this._viewLines.dispose();\n            for (const e of this._viewParts) e.dispose();\n            super.dispose()\n        }\n        _scheduleRender() {\n            null === this._renderAnimationFrame && (this._renderAnimationFrame = s.P(this._onRenderScheduled.bind(this), 100))\n        }\n        _onRenderScheduled() {\n            this._renderAnimationFrame = null, this._flushAccumulatedAndRenderNow()\n        }\n        _renderNow() {\n            ! function(e) {\n                try {\n                    e()\n                } catch (e) {\n                    Object(se.f)(e)\n                }\n            }(() => this._actualRender())\n        }\n        _getViewPartsToRender() {\n            let e = [],\n                t = 0;\n            for (const i of this._viewParts) i.shouldRender() && (e[t++] = i);\n            return e\n        }\n        _actualRender() {\n            if (s.K(this.domNode.domNode)) {\n                let i = this._getViewPartsToRender();\n                if (this._viewLines.shouldRender() || 0 !== i.length) {\n                    var e = this._context.viewLayout.getLinesViewportData();\n                    this._context.model.setViewport(e.startLineNumber, e.endLineNumber, e.centeredLineNumber), e = new Po(this._selections, e, this._context.viewLayout.getWhitespaceViewportData(), this._context.model), this._contentWidgets.shouldRender() && this._contentWidgets.onBeforeRender(e), this._viewLines.shouldRender() && (this._viewLines.renderText(e), this._viewLines.onDidRender(), i = this._getViewPartsToRender());\n                    var t = new sn(this._context.viewLayout, e, this._viewLines);\n                    for (const e of i) e.prepareRender(t);\n                    for (const e of i) e.render(t), e.onDidRender();\n                    .001 < Math.abs(Ri.a() - this._configPixelRatio) && this._context.configuration.updatePixelRatio()\n                }\n            }\n        }\n        delegateVerticalScrollbarMouseDown(e) {\n            this._scrollbar.delegateVerticalScrollbarMouseDown(e)\n        }\n        restoreState(e) {\n            this._context.model.setScrollPosition({\n                scrollTop: e.scrollTop\n            }, 1), this._context.model.tokenizeViewport(), this._renderNow(), this._viewLines.updateLineWidths(), this._context.model.setScrollPosition({\n                scrollLeft: e.scrollLeft\n            }, 1)\n        }\n        getOffsetForColumn(e, t) {\n            return t = this._context.model.validateModelPosition({\n                lineNumber: e,\n                column: t\n            }), t = this._context.model.coordinatesConverter.convertModelPositionToViewPosition(t), this._flushAccumulatedAndRenderNow(), (t = this._viewLines.visibleRangeForPosition(new Re.a(t.lineNumber, t.column))) ? t.left : -1\n        }\n        getTargetAtClientPoint(e, t) {\n            return (t = this._pointerHandler.getTargetAtClientPoint(e, t)) ? ur.convertViewToModelMouseTarget(t, this._context.model.coordinatesConverter) : null\n        }\n        createOverviewRuler(e) {\n            return new bo(this._context, e)\n        }\n        change(e) {\n            this._viewZones.changeViewZones(e), this._scheduleRender()\n        }\n        render(e, t) {\n            if (t) {\n                this._viewLines.forceShouldRender();\n                for (const e of this._viewParts) e.forceShouldRender()\n            }\n            e ? this._flushAccumulatedAndRenderNow() : this._scheduleRender()\n        }\n        focus() {\n            this._textAreaHandler.focusTextArea()\n        }\n        isFocused() {\n            return this._textAreaHandler.isFocused()\n        }\n        setAriaOptions(e) {\n            this._textAreaHandler.setAriaOptions(e)\n        }\n        addContentWidget(e) {\n            this._contentWidgets.addWidget(e.widget), this.layoutContentWidget(e), this._scheduleRender()\n        }\n        layoutContentWidget(e) {\n            let t = e.position && e.position.range || null;\n            null !== t || null !== (i = e.position ? e.position.position : null) && (t = new T.a(i.lineNumber, i.column, i.lineNumber, i.column));\n            var i = e.position ? e.position.preference : null;\n            this._contentWidgets.setWidgetPosition(e.widget, t, i), this._scheduleRender()\n        }\n        removeContentWidget(e) {\n            this._contentWidgets.removeWidget(e.widget), this._scheduleRender()\n        }\n        addOverlayWidget(e) {\n            this._overlayWidgets.addWidget(e.widget), this.layoutOverlayWidget(e), this._scheduleRender()\n        }\n        layoutOverlayWidget(e) {\n            var t = e.position ? e.position.preference : null;\n            this._overlayWidgets.setWidgetPosition(e.widget, t) && this._scheduleRender()\n        }\n        removeOverlayWidget(e) {\n            this._overlayWidgets.removeWidget(e.widget), this._scheduleRender()\n        }\n    }\n    class Ro {\n        constructor(e) {\n            this._selTrackedRange = null, this._trackSelection = !0, this._setState(e, new Sn.f(new T.a(1, 1, 1, 1), 0, new Re.a(1, 1), 0), new Sn.f(new T.a(1, 1, 1, 1), 0, new Re.a(1, 1), 0))\n        }\n        dispose(e) {\n            this._removeTrackedRange(e)\n        }\n        startTrackingSelection(e) {\n            this._trackSelection = !0, this._updateTrackedRange(e)\n        }\n        stopTrackingSelection(e) {\n            this._trackSelection = !1, this._removeTrackedRange(e)\n        }\n        _updateTrackedRange(e) {\n            this._trackSelection && (this._selTrackedRange = e.model._setTrackedRange(this._selTrackedRange, this.modelState.selection, 0))\n        }\n        _removeTrackedRange(e) {\n            this._selTrackedRange = e.model._setTrackedRange(this._selTrackedRange, null, 0)\n        }\n        asCursorState() {\n            return new Sn.d(this.modelState, this.viewState)\n        }\n        readSelectionFromMarkers(e) {\n            return e = e.model._getTrackedRange(this._selTrackedRange), 0 === this.modelState.selection.getDirection() ? new Hi.a(e.startLineNumber, e.startColumn, e.endLineNumber, e.endColumn) : new Hi.a(e.endLineNumber, e.endColumn, e.startLineNumber, e.startColumn)\n        }\n        ensureValidState(e) {\n            this._setState(e, this.modelState, this.viewState)\n        }\n        setState(e, t, i) {\n            this._setState(e, t, i)\n        }\n        static _validatePositionWithCache(e, t, i, n) {\n            return t.equals(i) ? n : e.normalizePosition(t, 2)\n        }\n        static _validateViewState(e, t) {\n            const i = t.position,\n                n = t.selectionStart.getStartPosition(),\n                r = t.selectionStart.getEndPosition();\n            var o = e.normalizePosition(i, 2),\n                s = this._validatePositionWithCache(e, n, i, o);\n            e = this._validatePositionWithCache(e, r, n, s);\n            return i.equals(o) && n.equals(s) && r.equals(e) ? t : new Sn.f(T.a.fromPositions(s, e), t.selectionStartLeftoverVisibleColumns + n.column - s.column, o, t.leftoverVisibleColumns + i.column - o.column)\n        }\n        _setState(e, t, i) {\n            if (i = i && Ro._validateViewState(e.viewModel, i), t) {\n                var n = e.model.validateRange(t.selectionStart),\n                    r = t.selectionStart.equalsRange(n) ? t.selectionStartLeftoverVisibleColumns : 0,\n                    o = e.model.validatePosition(t.position),\n                    s = t.position.equals(o) ? t.leftoverVisibleColumns : 0;\n                t = new Sn.f(n, r, o, s)\n            } else {\n                if (!i) return;\n                o = e.model.validateRange(e.coordinatesConverter.convertViewRangeToModelRange(i.selectionStart)), s = e.model.validatePosition(e.coordinatesConverter.convertViewPositionToModelPosition(i.position)), t = new Sn.f(o, i.selectionStartLeftoverVisibleColumns, s, i.leftoverVisibleColumns)\n            }\n            var a, l;\n            i = i ? (a = e.coordinatesConverter.validateViewRange(i.selectionStart, t.selectionStart), l = e.coordinatesConverter.validateViewPosition(i.position, t.position), new Sn.f(a, t.selectionStartLeftoverVisibleColumns, l, t.leftoverVisibleColumns)) : (a = e.coordinatesConverter.convertModelPositionToViewPosition(new Re.a(t.selectionStart.startLineNumber, t.selectionStart.startColumn)), l = e.coordinatesConverter.convertModelPositionToViewPosition(new Re.a(t.selectionStart.endLineNumber, t.selectionStart.endColumn)), a = new T.a(a.lineNumber, a.column, l.lineNumber, l.column), l = e.coordinatesConverter.convertModelPositionToViewPosition(t.position), new Sn.f(a, t.selectionStartLeftoverVisibleColumns, l, t.leftoverVisibleColumns)), this.modelState = t, this.viewState = i, this._updateTrackedRange(e)\n        }\n    }\n    class Fo {\n        constructor(e) {\n            this.context = e, this.primaryCursor = new Ro(e), this.secondaryCursors = [], this.lastAddedCursorIndex = 0\n        }\n        dispose() {\n            this.primaryCursor.dispose(this.context), this.killSecondaryCursors()\n        }\n        startTrackingSelections() {\n            this.primaryCursor.startTrackingSelection(this.context);\n            for (let e = 0, t = this.secondaryCursors.length; e < t; e++) this.secondaryCursors[e].startTrackingSelection(this.context)\n        }\n        stopTrackingSelections() {\n            this.primaryCursor.stopTrackingSelection(this.context);\n            for (let e = 0, t = this.secondaryCursors.length; e < t; e++) this.secondaryCursors[e].stopTrackingSelection(this.context)\n        }\n        updateContext(e) {\n            this.context = e\n        }\n        ensureValidState() {\n            this.primaryCursor.ensureValidState(this.context);\n            for (let e = 0, t = this.secondaryCursors.length; e < t; e++) this.secondaryCursors[e].ensureValidState(this.context)\n        }\n        readSelectionFromMarkers() {\n            let e = [];\n            e[0] = this.primaryCursor.readSelectionFromMarkers(this.context);\n            for (let t = 0, i = this.secondaryCursors.length; t < i; t++) e[t + 1] = this.secondaryCursors[t].readSelectionFromMarkers(this.context);\n            return e\n        }\n        getAll() {\n            let e = [];\n            e[0] = this.primaryCursor.asCursorState();\n            for (let t = 0, i = this.secondaryCursors.length; t < i; t++) e[t + 1] = this.secondaryCursors[t].asCursorState();\n            return e\n        }\n        getViewPositions() {\n            let e = [];\n            e[0] = this.primaryCursor.viewState.position;\n            for (let t = 0, i = this.secondaryCursors.length; t < i; t++) e[t + 1] = this.secondaryCursors[t].viewState.position;\n            return e\n        }\n        getTopMostViewPosition() {\n            let e = this.primaryCursor.viewState.position;\n            for (let t = 0, i = this.secondaryCursors.length; t < i; t++) {\n                const i = this.secondaryCursors[t].viewState.position;\n                i.isBefore(e) && (e = i)\n            }\n            return e\n        }\n        getBottomMostViewPosition() {\n            let e = this.primaryCursor.viewState.position;\n            for (let i = 0, n = this.secondaryCursors.length; i < n; i++) {\n                var t = this.secondaryCursors[i].viewState.position;\n                e.isBeforeOrEqual(t) && (e = t)\n            }\n            return e\n        }\n        getSelections() {\n            let e = [];\n            e[0] = this.primaryCursor.modelState.selection;\n            for (let t = 0, i = this.secondaryCursors.length; t < i; t++) e[t + 1] = this.secondaryCursors[t].modelState.selection;\n            return e\n        }\n        getViewSelections() {\n            let e = [];\n            e[0] = this.primaryCursor.viewState.selection;\n            for (let t = 0, i = this.secondaryCursors.length; t < i; t++) e[t + 1] = this.secondaryCursors[t].viewState.selection;\n            return e\n        }\n        setSelections(e) {\n            this.setStates(Sn.d.fromModelSelections(e))\n        }\n        getPrimaryCursor() {\n            return this.primaryCursor.asCursorState()\n        }\n        setStates(e) {\n            null !== e && (this.primaryCursor.setState(this.context, e[0].modelState, e[0].viewState), this._setSecondaryStates(e.slice(1)))\n        }\n        _setSecondaryStates(e) {\n            var t = this.secondaryCursors.length,\n                i = e.length;\n            if (t < i) {\n                var n = i - t;\n                for (let e = 0; e < n; e++) this._addSecondaryCursor()\n            } else if (i < t) {\n                var r = t - i;\n                for (let e = 0; e < r; e++) this._removeSecondaryCursor(this.secondaryCursors.length - 1)\n            }\n            for (let t = 0; t < i; t++) this.secondaryCursors[t].setState(this.context, e[t].modelState, e[t].viewState)\n        }\n        killSecondaryCursors() {\n            this._setSecondaryStates([])\n        }\n        _addSecondaryCursor() {\n            this.secondaryCursors.push(new Ro(this.context)), this.lastAddedCursorIndex = this.secondaryCursors.length\n        }\n        getLastAddedCursorIndex() {\n            return 0 === this.secondaryCursors.length || 0 === this.lastAddedCursorIndex ? 0 : this.lastAddedCursorIndex\n        }\n        _removeSecondaryCursor(e) {\n            this.lastAddedCursorIndex >= e + 1 && this.lastAddedCursorIndex--, this.secondaryCursors[e].dispose(this.context), this.secondaryCursors.splice(e, 1)\n        }\n        _getAll() {\n            let e = [];\n            e[0] = this.primaryCursor;\n            for (let t = 0, i = this.secondaryCursors.length; t < i; t++) e[t + 1] = this.secondaryCursors[t];\n            return e\n        }\n        normalize() {\n            if (0 !== this.secondaryCursors.length) {\n                let a = this._getAll(),\n                    l = [];\n                for (let e = 0, t = a.length; e < t; e++) l.push({\n                    index: e,\n                    selection: a[e].modelState.selection\n                });\n                l.sort((e, t) => e.selection.startLineNumber === t.selection.startLineNumber ? e.selection.startColumn - t.selection.startColumn : e.selection.startLineNumber - t.selection.startLineNumber);\n                for (let d = 0; d < l.length - 1; d++) {\n                    var e = l[d],\n                        t = l[d + 1];\n                    const c = e.selection,\n                        h = t.selection;\n                    if (this.context.cursorConfig.multiCursorMergeOverlapping) {\n                        let u;\n                        if (u = h.isEmpty() || c.isEmpty() ? h.getStartPosition().isBeforeOrEqual(c.getEndPosition()) : h.getStartPosition().isBefore(c.getEndPosition()), u) {\n                            var i = e.index < t.index ? d : d + 1,\n                                n = e.index < t.index ? d + 1 : d,\n                                r = l[n].index,\n                                o = l[i].index;\n                            const c = l[n].selection;\n                            var s = l[i].selection;\n                            if (!c.equalsSelection(s)) {\n                                let n, d;\n                                e = c.plusRange(s), t = c.selectionStartLineNumber === c.startLineNumber && c.selectionStartColumn === c.startColumn, s = s.selectionStartLineNumber === s.startLineNumber && s.selectionStartColumn === s.startColumn, r === this.lastAddedCursorIndex ? (n = t, this.lastAddedCursorIndex = o) : n = s, d = n ? new Hi.a(e.startLineNumber, e.startColumn, e.endLineNumber, e.endColumn) : new Hi.a(e.endLineNumber, e.endColumn, e.startLineNumber, e.startColumn), l[i].selection = d, i = Sn.d.fromModelSelection(d), a[o].setState(this.context, i.modelState, i.viewState)\n                            }\n                            for (const e of l) e.index > r && e.index--;\n                            a.splice(r, 1), l.splice(n, 1), this._removeSecondaryCursor(r - 1), d--\n                        }\n                    }\n                }\n            }\n        }\n    }\n    var jo = i(141),\n        Bo = i(120),\n        Vo = i(72);\n    class Wo {\n        constructor() {\n            this.type = 0\n        }\n    }\n    class zo {\n        constructor() {\n            this.type = 1\n        }\n    }\n    class Ho {\n        constructor(e) {\n            this.type = 2, this._source = e\n        }\n        hasChanged(e) {\n            return this._source.hasChanged(e)\n        }\n    }\n    class Uo {\n        constructor(e, t) {\n            this.type = 3, this.selections = e, this.modelSelections = t\n        }\n    }\n    class Ko {\n        constructor(e) {\n            this.type = 4, e ? (this.affectsMinimap = e.affectsMinimap, this.affectsOverviewRuler = e.affectsOverviewRuler) : (this.affectsMinimap = !0, this.affectsOverviewRuler = !0)\n        }\n    }\n    class $o {\n        constructor() {\n            this.type = 5\n        }\n    }\n    class qo {\n        constructor(e) {\n            this.type = 6, this.isFocused = e\n        }\n    }\n    class Go {\n        constructor() {\n            this.type = 7\n        }\n    }\n    class Yo {\n        constructor() {\n            this.type = 8\n        }\n    }\n    class Zo {\n        constructor(e, t) {\n            this.type = 9, this.fromLineNumber = e, this.toLineNumber = t\n        }\n    }\n    class Xo {\n        constructor(e, t) {\n            this.type = 10, this.fromLineNumber = e, this.toLineNumber = t\n        }\n    }\n    class Qo {\n        constructor(e, t) {\n            this.type = 11, this.fromLineNumber = e, this.toLineNumber = t\n        }\n    }\n    class Jo {\n        constructor(e, t, i, n, r, o) {\n            this.type = 12, this.source = e, this.range = t, this.selections = i, this.verticalType = n, this.revealHorizontal = r, this.scrollType = o\n        }\n    }\n    class es {\n        constructor(e) {\n            this.type = 13, this.scrollWidth = e.scrollWidth, this.scrollLeft = e.scrollLeft, this.scrollHeight = e.scrollHeight, this.scrollTop = e.scrollTop, this.scrollWidthChanged = e.scrollWidthChanged, this.scrollLeftChanged = e.scrollLeftChanged, this.scrollHeightChanged = e.scrollHeightChanged, this.scrollTopChanged = e.scrollTopChanged\n        }\n    }\n    class ts {\n        constructor() {\n            this.type = 14\n        }\n    }\n    class is {\n        constructor(e) {\n            this.type = 15, this.ranges = e\n        }\n    }\n    class ns {\n        constructor() {\n            this.type = 16\n        }\n    }\n    class rs {\n        constructor() {\n            this.type = 17\n        }\n    }\n    class os extends v.a {\n        constructor() {\n            super(), this._onEvent = this._register(new D.b), this.onEvent = this._onEvent.event, this._eventHandlers = [], this._viewEventQueue = null, this._isConsumingViewEventQueue = !1, this._collector = null, this._collectorCnt = 0, this._outgoingEvents = []\n        }\n        emitOutgoingEvent(e) {\n            this._addOutgoingEvent(e), this._emitOutgoingEvents()\n        }\n        _addOutgoingEvent(e) {\n            for (let t = 0, i = this._outgoingEvents.length; t < i; t++)\n                if (this._outgoingEvents[t].kind === e.kind) return void(this._outgoingEvents[t] = this._outgoingEvents[t].merge(e));\n            this._outgoingEvents.push(e)\n        }\n        _emitOutgoingEvents() {\n            for (; 0 < this._outgoingEvents.length;) {\n                if (this._collector || this._isConsumingViewEventQueue) return;\n                const e = this._outgoingEvents.shift();\n                e.isNoOp() || this._onEvent.fire(e)\n            }\n        }\n        addViewEventHandler(e) {\n            for (let t = 0, i = this._eventHandlers.length; t < i; t++) this._eventHandlers[t] === e && console.warn(\"Detected duplicate listener in ViewEventDispatcher\", e);\n            this._eventHandlers.push(e)\n        }\n        removeViewEventHandler(e) {\n            for (let t = 0; t < this._eventHandlers.length; t++)\n                if (this._eventHandlers[t] === e) {\n                    this._eventHandlers.splice(t, 1);\n                    break\n                }\n        }\n        beginEmitViewEvents() {\n            return this._collectorCnt++, 1 === this._collectorCnt && (this._collector = new ss), this._collector\n        }\n        endEmitViewEvents() {\n            if (this._collectorCnt--, 0 === this._collectorCnt) {\n                var e = this._collector.outgoingEvents,\n                    t = this._collector.viewEvents;\n                this._collector = null;\n                for (const t of e) this._addOutgoingEvent(t);\n                0 < t.length && this._emitMany(t)\n            }\n            this._emitOutgoingEvents()\n        }\n        emitSingleViewEvent(e) {\n            try {\n                this.beginEmitViewEvents().emitViewEvent(e)\n            } finally {\n                this.endEmitViewEvents()\n            }\n        }\n        _emitMany(e) {\n            this._viewEventQueue ? this._viewEventQueue = this._viewEventQueue.concat(e) : this._viewEventQueue = e, this._isConsumingViewEventQueue || this._consumeViewEventQueue()\n        }\n        _consumeViewEventQueue() {\n            try {\n                this._isConsumingViewEventQueue = !0, this._doConsumeQueue()\n            } finally {\n                this._isConsumingViewEventQueue = !1\n            }\n        }\n        _doConsumeQueue() {\n            for (; this._viewEventQueue;) {\n                var e = this._viewEventQueue;\n                this._viewEventQueue = null;\n                for (const t of this._eventHandlers.slice(0)) t.handleEvents(e)\n            }\n        }\n    }\n    class ss {\n        constructor() {\n            this.viewEvents = [], this.outgoingEvents = []\n        }\n        emitViewEvent(e) {\n            this.viewEvents.push(e)\n        }\n        emitOutgoingEvent(e) {\n            this.outgoingEvents.push(e)\n        }\n    }\n    class as {\n        constructor(e, t, i, n) {\n            this.kind = 0, this._oldContentWidth = e, this._oldContentHeight = t, this.contentWidth = i, this.contentHeight = n, this.contentWidthChanged = this._oldContentWidth !== this.contentWidth, this.contentHeightChanged = this._oldContentHeight !== this.contentHeight\n        }\n        isNoOp() {\n            return !this.contentWidthChanged && !this.contentHeightChanged\n        }\n        merge(e) {\n            return 0 !== e.kind ? this : new as(this._oldContentWidth, this._oldContentHeight, e.contentWidth, e.contentHeight)\n        }\n    }\n    class ls {\n        constructor(e, t) {\n            this.kind = 1, this.oldHasFocus = e, this.hasFocus = t\n        }\n        isNoOp() {\n            return this.oldHasFocus === this.hasFocus\n        }\n        merge(e) {\n            return 1 !== e.kind ? this : new ls(this.oldHasFocus, e.hasFocus)\n        }\n    }\n    class ds {\n        constructor(e, t, i, n, r, o, s, a) {\n            this.kind = 2, this._oldScrollWidth = e, this._oldScrollLeft = t, this._oldScrollHeight = i, this._oldScrollTop = n, this.scrollWidth = r, this.scrollLeft = o, this.scrollHeight = s, this.scrollTop = a, this.scrollWidthChanged = this._oldScrollWidth !== this.scrollWidth, this.scrollLeftChanged = this._oldScrollLeft !== this.scrollLeft, this.scrollHeightChanged = this._oldScrollHeight !== this.scrollHeight, this.scrollTopChanged = this._oldScrollTop !== this.scrollTop\n        }\n        isNoOp() {\n            return !(this.scrollWidthChanged || this.scrollLeftChanged || this.scrollHeightChanged || this.scrollTopChanged)\n        }\n        merge(e) {\n            return 2 !== e.kind ? this : new ds(this._oldScrollWidth, this._oldScrollLeft, this._oldScrollHeight, this._oldScrollTop, e.scrollWidth, e.scrollLeft, e.scrollHeight, e.scrollTop)\n        }\n    }\n    class cs {\n        constructor() {\n            this.kind = 3\n        }\n        isNoOp() {\n            return !1\n        }\n        merge(e) {\n            return this\n        }\n    }\n    class hs {\n        constructor(e, t, i, n, r, o, s) {\n            this.kind = 6, this.oldSelections = e, this.selections = t, this.oldModelVersionId = i, this.modelVersionId = n, this.source = r, this.reason = o, this.reachedMaxCursorCount = s\n        }\n        static _selectionsAreEqual(e, t) {\n            if (!e && !t) return !0;\n            if (!e || !t) return !1;\n            var i = e.length;\n            if (i !== t.length) return !1;\n            for (let n = 0; n < i; n++)\n                if (!e[n].equalsSelection(t[n])) return !1;\n            return !0\n        }\n        isNoOp() {\n            return hs._selectionsAreEqual(this.oldSelections, this.selections) && this.oldModelVersionId === this.modelVersionId\n        }\n        merge(e) {\n            return 6 !== e.kind ? this : new hs(this.oldSelections, e.selections, this.oldModelVersionId, e.modelVersionId, e.source, e.reason, this.reachedMaxCursorCount || e.reachedMaxCursorCount)\n        }\n    }\n    class us {\n        constructor() {\n            this.kind = 5\n        }\n        isNoOp() {\n            return !1\n        }\n        merge(e) {\n            return this\n        }\n    }\n    class ps {\n        constructor(e, t) {\n            this.modelVersionId = e.getVersionId(), this.cursorState = t.getCursorStates()\n        }\n        equals(e) {\n            if (!e) return !1;\n            if (this.modelVersionId !== e.modelVersionId) return !1;\n            if (this.cursorState.length !== e.cursorState.length) return !1;\n            for (let t = 0, i = this.cursorState.length; t < i; t++)\n                if (!this.cursorState[t].equals(e.cursorState[t])) return !1;\n            return !0\n        }\n    }\n    class gs {\n        constructor(e, t, i) {\n            this._model = e, this._autoClosedCharactersDecorations = t, this._autoClosedEnclosingDecorations = i\n        }\n        static getAllAutoClosedCharacters(e) {\n            let t = [];\n            for (const i of e) t = t.concat(i.getAutoClosedCharactersRanges());\n            return t\n        }\n        dispose() {\n            this._autoClosedCharactersDecorations = this._model.deltaDecorations(this._autoClosedCharactersDecorations, []), this._autoClosedEnclosingDecorations = this._model.deltaDecorations(this._autoClosedEnclosingDecorations, [])\n        }\n        getAutoClosedCharactersRanges() {\n            let e = [];\n            for (let i = 0; i < this._autoClosedCharactersDecorations.length; i++) {\n                var t = this._model.getDecorationRange(this._autoClosedCharactersDecorations[i]);\n                t && e.push(t)\n            }\n            return e\n        }\n        isValid(e) {\n            let t = [];\n            for (let e = 0; e < this._autoClosedEnclosingDecorations.length; e++) {\n                var i = this._model.getDecorationRange(this._autoClosedEnclosingDecorations[e]);\n                if (i && (t.push(i), i.startLineNumber !== i.endLineNumber)) return !1\n            }\n            t.sort(T.a.compareRangesUsingStarts), e.sort(T.a.compareRangesUsingStarts);\n            for (let i = 0; i < e.length; i++) {\n                if (i >= t.length) return !1;\n                if (!t[i].strictContainsRange(e[i])) return !1\n            }\n            return !0\n        }\n    }\n    class fs extends v.a {\n        constructor(e, t, i, n) {\n            super(), this._model = e, this._knownModelVersionId = this._model.getVersionId(), this._viewModel = t, this._coordinatesConverter = i, this.context = new Sn.c(this._model, this._viewModel, this._coordinatesConverter, n), this._cursors = new Fo(this.context), this._hasFocus = !1, this._isHandling = !1, this._isDoingComposition = !1, this._selectionsWhenCompositionStarted = null, this._columnSelectData = null, this._autoClosedActions = [], this._prevEditOperationType = 0\n        }\n        dispose() {\n            this._cursors.dispose(), this._autoClosedActions = Object(v.f)(this._autoClosedActions), super.dispose()\n        }\n        update配置(e) {\n            this.context = new Sn.c(this._model, this._viewModel, this._coordinatesConverter, e), this._cursors.updateContext(this.context)\n        }\n        onLineMappingChanged(e) {\n            this._knownModelVersionId === this._model.getVersionId() && this.setStates(e, \"viewModel\", 0, this.getCursorStates())\n        }\n        setHasFocus(e) {\n            this._hasFocus = e\n        }\n        _validateAutoClosedActions() {\n            if (0 < this._autoClosedActions.length) {\n                var e = this._cursors.getSelections();\n                for (let t = 0; t < this._autoClosedActions.length; t++) {\n                    const i = this._autoClosedActions[t];\n                    i.isValid(e) || (i.dispose(), this._autoClosedActions.splice(t, 1), t--)\n                }\n            }\n        }\n        getPrimaryCursorState() {\n            return this._cursors.getPrimaryCursor()\n        }\n        getLastAddedCursorIndex() {\n            return this._cursors.getLastAddedCursorIndex()\n        }\n        getCursorStates() {\n            return this._cursors.getAll()\n        }\n        setStates(e, t, i, n) {\n            let r = !1;\n            null !== n && n.length > fs.MAX_CURSOR_COUNT && (n = n.slice(0, fs.MAX_CURSOR_COUNT), r = !0);\n            var o = new ps(this._model, this);\n            return this._cursors.setStates(n), this._cursors.normalize(), this._columnSelectData = null, this._validateAutoClosedActions(), this._emitStateChangedIfNecessary(e, t, i, o, r)\n        }\n        setCursorColumnSelectData(e) {\n            this._columnSelectData = e\n        }\n        revealPrimary(e, t, i, n) {\n            var r = this._cursors.getViewPositions();\n            1 < r.length ? this._emitCursorRevealRange(e, t, null, this._cursors.getViewSelections(), 0, i, n) : (r = r[0], r = new T.a(r.lineNumber, r.column, r.lineNumber, r.column), this._emitCursorRevealRange(e, t, r, null, 0, i, n))\n        }\n        _revealPrimaryCursor(e, t, i, n, r) {\n            var o = this._cursors.getViewPositions();\n            1 < o.length ? this._emitCursorRevealRange(e, t, null, this._cursors.getViewSelections(), i, n, r) : (o = o[0], o = new T.a(o.lineNumber, o.column, o.lineNumber, o.column), this._emitCursorRevealRange(e, t, o, null, i, n, r))\n        }\n        _emitCursorRevealRange(e, t, i, n, r, o, s) {\n            e.emitViewEvent(new Jo(t, i, n, r, o, s))\n        }\n        saveState() {\n            let e = [];\n            var t = this._cursors.getSelections();\n            for (let i = 0, n = t.length; i < n; i++) {\n                const n = t[i];\n                e.push({\n                    inSelectionMode: !n.isEmpty(),\n                    selectionStart: {\n                        lineNumber: n.selectionStartLineNumber,\n                        column: n.selectionStartColumn\n                    },\n                    position: {\n                        lineNumber: n.positionLineNumber,\n                        column: n.positionColumn\n                    }\n                })\n            }\n            return e\n        }\n        restoreState(e, t) {\n            let i = [];\n            for (let e = 0, r = t.length; e < r; e++) {\n                var n = t[e];\n                let r = 1,\n                    o = 1;\n                n.position && n.position.lineNumber && (r = n.position.lineNumber), n.position && n.position.column && (o = n.position.column);\n                let s = r,\n                    a = o;\n                n.selectionStart && n.selectionStart.lineNumber && (s = n.selectionStart.lineNumber), n.selectionStart && n.selectionStart.column && (a = n.selectionStart.column), i.push({\n                    selectionStartLineNumber: s,\n                    selectionStartColumn: a,\n                    positionLineNumber: r,\n                    positionColumn: o\n                })\n            }\n            this.setStates(e, \"restoreState\", 0, Sn.d.fromModelSelections(i)), this.revealPrimary(e, \"restoreState\", !0, 1)\n        }\n        onModelContentChanged(e, t) {\n            var i, n;\n            if (t instanceof Vo.c) {\n                if (!this._isHandling) {\n                    this._isHandling = !0;\n                    try {\n                        this.setStates(e, \"modelChange\", 0, this.getCursorStates())\n                    } finally {\n                        this._isHandling = !1\n                    }\n                }\n            } else this._knownModelVersionId = t.versionId, this._isHandling || (i = t.containsEvent(1), this._prevEditOperationType = 0, i ? (this._cursors.dispose(), this._cursors = new Fo(this.context), this._validateAutoClosedActions(), this._emitStateChangedIfNecessary(e, \"model\", 1, null, !1)) : this._hasFocus && t.resultingSelection && 0 < t.resultingSelection.length ? (n = Sn.d.fromModelSelections(t.resultingSelection), this.setStates(e, \"modelChange\", t.isUndoing ? 5 : t.isRedoing ? 6 : 2, n) && this._revealPrimaryCursor(e, \"modelChange\", 0, !0, 0)) : (n = this._cursors.readSelectionFromMarkers(), this.setStates(e, \"modelChange\", 2, Sn.d.fromModelSelections(n))))\n        }\n        getSelection() {\n            return this._cursors.getPrimaryCursor().modelState.selection\n        }\n        getTopMostViewPosition() {\n            return this._cursors.getTopMostViewPosition()\n        }\n        getBottomMostViewPosition() {\n            return this._cursors.getBottomMostViewPosition()\n        }\n        getCursorColumnSelectData() {\n            if (this._columnSelectData) return this._columnSelectData;\n            const e = this._cursors.getPrimaryCursor();\n            var t = e.viewState.selectionStart.getStartPosition(),\n                i = e.viewState.position;\n            return {\n                isReal: !1,\n                fromViewLineNumber: t.lineNumber,\n                fromViewVisualColumn: Sn.a.visibleColumnFromColumn2(this.context.cursorConfig, this._viewModel, t),\n                toViewLineNumber: i.lineNumber,\n                toViewVisualColumn: Sn.a.visibleColumnFromColumn2(this.context.cursorConfig, this._viewModel, i)\n            }\n        }\n        getSelections() {\n            return this._cursors.getSelections()\n        }\n        setSelections(e, t, i, n) {\n            this.setStates(e, t, n, Sn.d.fromModelSelections(i))\n        }\n        getPrevEditOperationType() {\n            return this._prevEditOperationType\n        }\n        setPrevEditOperationType(e) {\n            this._prevEditOperationType = e\n        }\n        _pushAutoClosedAction(e, t) {\n            let i = [],\n                n = [];\n            for (let r = 0, o = e.length; r < o; r++) i.push({\n                range: e[r],\n                options: {\n                    description: \"auto-closed-character\",\n                    inlineClassName: \"auto-closed-character\",\n                    stickiness: 1\n                }\n            }), n.push({\n                range: t[r],\n                options: {\n                    description: \"auto-closed-enclosing\",\n                    stickiness: 1\n                }\n            });\n            var r = this._model.deltaDecorations([], i),\n                o = this._model.deltaDecorations([], n);\n            this._autoClosedActions.push(new gs(this._model, r, o))\n        }\n        _executeEditOperation(e) {\n            if (e) {\n                e.shouldPushStackElementBefore && this._model.pushStackElement();\n                var t = class {\n                    static executeCommands(e, t, i) {\n                        const n = {\n                            model: e,\n                            selectionsBefore: t,\n                            trackedRanges: [],\n                            trackedRangesDirection: []\n                        };\n                        i = this._innerExecuteCommands(n, i);\n                        for (let e = 0, t = n.trackedRanges.length; e < t; e++) n.model._setTrackedRange(n.trackedRanges[e], null, 0);\n                        return i\n                    }\n                    static _innerExecuteCommands(e, t) {\n                        if (this._arrayIsEmpty(t)) return null;\n                        var i, n = this._getEditOperations(e, t);\n                        if (0 === n.operations.length) return null;\n                        const r = n.operations,\n                            o = this._getLoserCursorMap(r);\n                        if (o.hasOwnProperty(\"0\")) return console.warn(\"Ignoring commands\"), null;\n                        let s = [];\n                        for (let e = 0, t = r.length; e < t; e++) o.hasOwnProperty(r[e].identifier.major.toString()) || s.push(r[e]);\n                        n.hadTrackedEditOperation && 0 < s.length && (s[0]._isTracked = !0);\n                        let a = e.model.pushEditOperations(e.selectionsBefore, s, i => {\n                            let n = [];\n                            for (let t = 0; t < e.selectionsBefore.length; t++) n[t] = [];\n                            for (const e of i) e.identifier && n[e.identifier.major].push(e);\n                            var r = (e, t) => e.identifier.minor - t.identifier.minor;\n                            let o = [];\n                            for (let i = 0; i < e.selectionsBefore.length; i++) 0 < n[i].length ? (n[i].sort(r), o[i] = t[i].computeCursorState(e.model, {\n                                getInverseEditOperations: () => n[i],\n                                getTrackedSelection: t => {\n                                    var i = parseInt(t, 10);\n                                    t = e.model._getTrackedRange(e.trackedRanges[i]);\n                                    return 0 === e.trackedRangesDirection[i] ? new Hi.a(t.startLineNumber, t.startColumn, t.endLineNumber, t.endColumn) : new Hi.a(t.endLineNumber, t.endColumn, t.startLineNumber, t.startColumn)\n                                }\n                            })) : o[i] = e.selectionsBefore[i];\n                            return o\n                        });\n                        a = a || e.selectionsBefore;\n                        let l = [];\n                        for (i in o) o.hasOwnProperty(i) && l.push(parseInt(i, 10));\n                        l.sort((e, t) => t - e);\n                        for (const e of l) a.splice(e, 1);\n                        return a\n                    }\n                    static _arrayIsEmpty(e) {\n                        for (let t = 0, i = e.length; t < i; t++)\n                            if (e[t]) return !1;\n                        return !0\n                    }\n                    static _getEditOperations(e, t) {\n                        let i = [],\n                            n = !1;\n                        for (let o = 0, s = t.length; o < s; o++) {\n                            var r = t[o];\n                            r && (r = this._getEditOperationsFromCommand(e, o, r), i = i.concat(r.operations), n = n || r.hadTrackedEditOperation)\n                        }\n                        return {\n                            operations: i,\n                            hadTrackedEditOperation: n\n                        }\n                    }\n                    static _getEditOperationsFromCommand(e, t, i) {\n                        let n = [],\n                            r = 0;\n                        const o = (e, o, s = !1) => {\n                            T.a.isEmpty(e) && \"\" === o || n.push({\n                                identifier: {\n                                    major: t,\n                                    minor: r++\n                                },\n                                range: e,\n                                text: o,\n                                forceMoveMarkers: s,\n                                isAutoWhitespaceEdit: i.insertsAutoWhitespace\n                            })\n                        };\n                        let s = !1;\n                        var a = {\n                            addEditOperation: o,\n                            addTrackedEditOperation: (e, t, i) => {\n                                s = !0, o(e, t, i)\n                            },\n                            trackSelection: (t, i) => {\n                                const n = Hi.a.liftSelection(t);\n                                let r;\n                                r = n.isEmpty() ? \"boolean\" == typeof i ? i ? 2 : 3 : (s = e.model.getLineMaxColumn(n.startLineNumber), n.startColumn === s ? 2 : 3) : 1;\n                                const o = e.trackedRanges.length;\n                                var s = e.model._setTrackedRange(null, n, r);\n                                return e.trackedRanges[o] = s, e.trackedRangesDirection[o] = n.getDirection(), o.toString()\n                            }\n                        };\n                        try {\n                            i.getEditOperations(e.model, a)\n                        } catch (a) {\n                            return Object(se.f)(a), {\n                                operations: [],\n                                hadTrackedEditOperation: !1\n                            }\n                        }\n                        return {\n                            operations: n,\n                            hadTrackedEditOperation: s\n                        }\n                    }\n                    static _getLoserCursorMap(e) {\n                        (e = e.slice(0)).sort((e, t) => -T.a.compareRangesUsingEnds(e.range, t.range));\n                        let t = {};\n                        for (let r = 1; r < e.length; r++) {\n                            var i = e[r - 1],\n                                n = e[r];\n                            if (T.a.getStartPosition(i.range).isBefore(T.a.getEndPosition(n.range))) {\n                                let o;\n                                o = (i.identifier.major > n.identifier.major ? i : n).identifier.major, t[o.toString()] = !0;\n                                for (let t = 0; t < e.length; t++) e[t].identifier.major === o && (e.splice(t, 1), t < r && r--, t--);\n                                0 < r && r--\n                            }\n                        }\n                        return t\n                    }\n                }.executeCommands(this._model, this._cursors.getSelections(), e.commands);\n                if (t) {\n                    this._interpretCommandResult(t);\n                    let n = [],\n                        r = [];\n                    for (let t = 0; t < e.commands.length; t++) {\n                        var i = e.commands[t];\n                        i instanceof Bo.b && i.enclosingRange && i.closeCharacterRange && (n.push(i.closeCharacterRange), r.push(i.enclosingRange))\n                    }\n                    0 < n.length && this._pushAutoClosedAction(n, r), this._prevEditOperationType = e.type\n                }\n                e.shouldPushStackElementAfter && this._model.pushStackElement()\n            }\n        }\n        _interpretCommandResult(e) {\n            e && 0 !== e.length || (e = this._cursors.readSelectionFromMarkers()), this._columnSelectData = null, this._cursors.setSelections(e), this._cursors.normalize()\n        }\n        _emitStateChangedIfNecessary(e, t, i, n, r) {\n            const o = new ps(this._model, this);\n            if (o.equals(n)) return !1;\n            var s, a = this._cursors.getSelections(),\n                l = this._cursors.getViewSelections();\n            return e.emitViewEvent(new Uo(l, a)), n && n.cursorState.length === o.cursorState.length && !o.cursorState.some((e, t) => !e.modelState.equals(n.cursorState[t].modelState)) || (s = n ? n.cursorState.map(e => e.modelState.selection) : null, l = n ? n.modelVersionId : 0, e.emitOutgoingEvent(new hs(s, a, l, o.modelVersionId, t || \"keyboard\", i, r))), !0\n        }\n        _findAutoClosingPairs(e) {\n            if (!e.length) return null;\n            let t = [];\n            for (let r = 0, o = e.length; r < o; r++) {\n                const o = e[r];\n                if (!o.text || 0 <= o.text.indexOf(\"\\n\")) return null;\n                var i = o.text.match(/([)\\]}>'\"`])([^)\\]}>'\"`]*)$/);\n                if (!i) return null;\n                var n = i[1];\n                if (!(n = this.context.cursorConfig.autoClosingPairs.autoClosingPairsCloseSingleChar.get(n)) || 1 !== n.length) return null;\n                if (n = n[0].open, i = o.text.length - i[2].length - 1, -1 === (n = o.text.lastIndexOf(n, i - 1))) return null;\n                t.push([n, i])\n            }\n            return t\n        }\n        executeEdits(e, t, i, n) {\n            let r = null;\n            \"snippet\" === t && (r = this._findAutoClosingPairs(i)), r && (i[0]._isTracked = !0);\n            let o = [],\n                s = [];\n            (i = this._model.pushEditOperations(this.getSelections(), i, e => {\n                if (r)\n                    for (let n = 0, d = r.length; n < d; n++) {\n                        var [t, i] = r[n], a = e[n], l = a.range.startLineNumber, t = a.range.startColumn - 1 + t, i = a.range.startColumn - 1 + i;\n                        o.push(new T.a(l, i + 1, l, i + 2)), s.push(new T.a(l, t + 1, l, i + 2))\n                    }\n                var d = n(e);\n                return d && (this._isHandling = !0), d\n            })) && (this._isHandling = !1, this.setSelections(e, t, i, 0)), 0 < o.length && this._pushAutoClosedAction(o, s)\n        }\n        _executeEdit(e, t, i, n = 0) {\n            if (!this.context.cursorConfig.readOnly) {\n                var r = new ps(this._model, this);\n                this._cursors.stopTrackingSelections(), this._isHandling = !0;\n                try {\n                    this._cursors.ensureValidState(), e()\n                } catch (e) {\n                    Object(se.f)(e)\n                }\n                this._isHandling = !1, this._cursors.startTrackingSelections(), this._validateAutoClosedActions(), this._emitStateChangedIfNecessary(t, i, n, r, !1) && this._revealPrimaryCursor(t, i, 0, !0, 0)\n            }\n        }\n        setIsDoingComposition(e) {\n            this._isDoingComposition = e\n        }\n        getAutoClosedCharacters() {\n            return gs.getAllAutoClosedCharacters(this._autoClosedActions)\n        }\n        startComposition(e) {\n            this._selectionsWhenCompositionStarted = this.getSelections().slice(0)\n        }\n        endComposition(e, t) {\n            this._executeEdit(() => {\n                \"keyboard\" === t && (this._executeEditOperation(Bo.a.compositionEndWithInterceptors(this._prevEditOperationType, this.context.cursorConfig, this._model, this._selectionsWhenCompositionStarted, this.getSelections(), this.getAutoClosedCharacters())), this._selectionsWhenCompositionStarted = null)\n            }, e, t)\n        }\n        type(e, t, i) {\n            this._executeEdit(() => {\n                if (\"keyboard\" === i) {\n                    var e = t.length;\n                    let i = 0;\n                    for (; i < e;) {\n                        var n = b.K(t, i),\n                            r = t.substr(i, n);\n                        this._executeEditOperation(Bo.a.typeWithInterceptors(this._isDoingComposition, this._prevEditOperationType, this.context.cursorConfig, this._model, this.getSelections(), this.getAutoClosedCharacters(), r)), i += n\n                    }\n                } else this._executeEditOperation(Bo.a.typeWithoutInterceptors(this._prevEditOperationType, this.context.cursorConfig, this._model, this.getSelections(), t))\n            }, e, i)\n        }\n        compositionType(e, t, i, n, r, o) {\n            var s;\n            0 !== t.length || 0 !== i || 0 !== n ? this._executeEdit(() => {\n                this._executeEditOperation(Bo.a.compositionType(this._prevEditOperationType, this.context.cursorConfig, this._model, this.getSelections(), t, i, n, r))\n            }, e, o) : 0 !== r && (s = this.getSelections().map(e => (e = e.getPosition(), new Hi.a(e.lineNumber, e.column + r, e.lineNumber, e.column + r))), this.setSelections(e, o, s, 0))\n        }\n        paste(e, t, i, n, r) {\n            this._executeEdit(() => {\n                this._executeEditOperation(Bo.a.paste(this.context.cursorConfig, this._model, this.getSelections(), t, i, n || []))\n            }, e, r, 4)\n        }\n        cut(e, t) {\n            this._executeEdit(() => {\n                this._executeEditOperation(jo.a.cut(this.context.cursorConfig, this._model, this.getSelections()))\n            }, e, t)\n        }\n        executeCommand(e, t, i) {\n            this._executeEdit(() => {\n                this._cursors.killSecondaryCursors(), this._executeEditOperation(new Sn.e(0, [t], {\n                    shouldPushStackElementBefore: !1,\n                    shouldPushStackElementAfter: !1\n                }))\n            }, e, i)\n        }\n        executeCommands(e, t, i) {\n            this._executeEdit(() => {\n                this._executeEditOperation(new Sn.e(0, t, {\n                    shouldPushStackElementBefore: !1,\n                    shouldPushStackElementAfter: !1\n                }))\n            }, e, i)\n        }\n    }\n    fs.MAX_CURSOR_COUNT = 1e4;\n    class ms {\n        constructor(e, t, i, n, r, o) {\n            this.id = e, this.label = t, this.alias = i, this._precondition = n, this._run = r, this._contextKeyService = o\n        }\n        isSupported() {\n            return this._contextKeyService.contextMatchesRules(this._precondition)\n        }\n        run() {\n            return this.isSupported() ? this._run() : Promise.resolve(void 0)\n        }\n    }\n    var vs = i(21),\n        bs = i(133);\n    class _s {\n        constructor() {\n            this._hasPending = !1, this._inserts = [], this._changes = [], this._removes = []\n        }\n        insert(e) {\n            this._hasPending = !0, this._inserts.push(e)\n        }\n        change(e) {\n            this._hasPending = !0, this._changes.push(e)\n        }\n        remove(e) {\n            this._hasPending = !0, this._removes.push(e)\n        }\n        mustCommit() {\n            return this._hasPending\n        }\n        commit(e) {\n            var t, i, n;\n            this._hasPending && (t = this._inserts, i = this._changes, n = this._removes, this._hasPending = !1, this._inserts = [], this._changes = [], this._removes = [], e._commitPendingChanges(t, i, n))\n        }\n    }\n    class ws {\n        constructor(e, t, i, n, r) {\n            this.id = e, this.afterLineNumber = t, this.ordinal = i, this.height = n, this.minWidth = r, this.prefixSum = 0\n        }\n    }\n    class ys {\n        constructor(e, t, i, n) {\n            this._instanceId = b.P(++ys.INSTANCE_COUNT), this._pendingChanges = new _s, this._lastWhitespaceId = 0, this._arr = [], this._prefixSumValidIndex = -1, this._minWidth = -1, this._lineCount = e, this._lineHeight = t, this._paddingTop = i, this._paddingBottom = n\n        }\n        static findInsertionIndex(e, t, i) {\n            let n = 0,\n                r = e.length;\n            for (; n < r;) {\n                var o = n + r >>> 1;\n                t === e[o].afterLineNumber ? i < e[o].ordinal ? r = o : n = 1 + o : t < e[o].afterLineNumber ? r = o : n = 1 + o\n            }\n            return n\n        }\n        setLineHeight(e) {\n            this._checkPendingChanges(), this._lineHeight = e\n        }\n        setPadding(e, t) {\n            this._paddingTop = e, this._paddingBottom = t\n        }\n        onFlushed(e) {\n            this._checkPendingChanges(), this._lineCount = e\n        }\n        changeWhitespace(e) {\n            let t = !1;\n            try {\n                e({\n                    insertWhitespace: (e, i, n, r) => {\n                        t = !0, e |= 0, i |= 0, n |= 0, r |= 0;\n                        var o = this._instanceId + ++this._lastWhitespaceId;\n                        return this._pendingChanges.insert(new ws(o, e, i, n, r)), o\n                    },\n                    changeOneWhitespace: (e, i, n) => {\n                        t = !0, this._pendingChanges.change({\n                            id: e,\n                            newAfterLineNumber: i |= 0,\n                            newHeight: n |= 0\n                        })\n                    },\n                    removeWhitespace: e => {\n                        t = !0, this._pendingChanges.remove({\n                            id: e\n                        })\n                    }\n                })\n            } finally {\n                this._pendingChanges.commit(this)\n            }\n            return t\n        }\n        _commitPendingChanges(e, t, i) {\n            if ((0 < e.length || 0 < i.length) && (this._minWidth = -1), e.length + t.length + i.length <= 1) {\n                for (const t of e) this._insertWhitespace(t);\n                for (const e of t) this._changeOneWhitespace(e.id, e.newAfterLineNumber, e.newHeight);\n                for (const e of i) {\n                    var n = this._findWhitespaceIndex(e.id); - 1 !== n && this._removeWhitespace(n)\n                }\n            } else {\n                const n = new Set;\n                for (const e of i) n.add(e.id);\n                const r = new Map;\n                for (const e of t) r.set(e.id, e);\n                const o = (t = e => {\n                    let t = [];\n                    for (const o of e) {\n                        var i;\n                        n.has(o.id) || (r.has(o.id) && (i = r.get(o.id), o.afterLineNumber = i.newAfterLineNumber, o.height = i.newHeight), t.push(o))\n                    }\n                    return t\n                })(this._arr).concat(t(e));\n                o.sort((e, t) => e.afterLineNumber === t.afterLineNumber ? e.ordinal - t.ordinal : e.afterLineNumber - t.afterLineNumber), this._arr = o, this._prefixSumValidIndex = -1\n            }\n        }\n        _checkPendingChanges() {\n            this._pendingChanges.mustCommit() && this._pendingChanges.commit(this)\n        }\n        _insertWhitespace(e) {\n            var t = ys.findInsertionIndex(this._arr, e.afterLineNumber, e.ordinal);\n            this._arr.splice(t, 0, e), this._prefixSumValidIndex = Math.min(this._prefixSumValidIndex, t - 1)\n        }\n        _findWhitespaceIndex(e) {\n            var t = this._arr;\n            for (let i = 0, n = t.length; i < n; i++)\n                if (t[i].id === e) return i;\n            return -1\n        }\n        _changeOneWhitespace(e, t, i) {\n            if (-1 !== (e = this._findWhitespaceIndex(e)) && (this._arr[e].height !== i && (this._arr[e].height = i, this._prefixSumValidIndex = Math.min(this._prefixSumValidIndex, e - 1)), this._arr[e].afterLineNumber !== t)) {\n                const i = this._arr[e];\n                this._removeWhitespace(e), i.afterLineNumber = t, this._insertWhitespace(i)\n            }\n        }\n        _removeWhitespace(e) {\n            this._arr.splice(e, 1), this._prefixSumValidIndex = Math.min(this._prefixSumValidIndex, e - 1)\n        }\n        onLinesDeleted(e, t) {\n            this._checkPendingChanges(), this._lineCount -= (t |= 0) - (e |= 0) + 1;\n            for (let n = 0, r = this._arr.length; n < r; n++) {\n                var i = this._arr[n].afterLineNumber;\n                e <= i && i <= t ? this._arr[n].afterLineNumber = e - 1 : t < i && (this._arr[n].afterLineNumber -= t - e + 1)\n            }\n        }\n        onLinesInserted(e, t) {\n            this._checkPendingChanges(), this._lineCount += (t |= 0) - (e |= 0) + 1;\n            for (let i = 0, n = this._arr.length; i < n; i++) e <= this._arr[i].afterLineNumber && (this._arr[i].afterLineNumber += t - e + 1)\n        }\n        getWhitespacesTotalHeight() {\n            return this._checkPendingChanges(), 0 === this._arr.length ? 0 : this.getWhitespacesAccumulatedHeight(this._arr.length - 1)\n        }\n        getWhitespacesAccumulatedHeight(e) {\n            this._checkPendingChanges(), e |= 0;\n            let t = Math.max(0, this._prefixSumValidIndex + 1);\n            0 === t && (this._arr[0].prefixSum = this._arr[0].height, t++);\n            for (let i = t; i <= e; i++) this._arr[i].prefixSum = this._arr[i - 1].prefixSum + this._arr[i].height;\n            return this._prefixSumValidIndex = Math.max(this._prefixSumValidIndex, e), this._arr[e].prefixSum\n        }\n        getLinesTotalHeight() {\n            return this._checkPendingChanges(), this._lineHeight * this._lineCount + this.getWhitespacesTotalHeight() + this._paddingTop + this._paddingBottom\n        }\n        getWhitespaceAccumulatedHeightBeforeLineNumber(e) {\n            return this._checkPendingChanges(), -1 === (e = this._findLastWhitespaceBeforeLineNumber(e |= 0)) ? 0 : this.getWhitespacesAccumulatedHeight(e)\n        }\n        _findLastWhitespaceBeforeLineNumber(e) {\n            e |= 0;\n            var t = this._arr;\n            let i = 0,\n                n = t.length - 1;\n            for (; i <= n;) {\n                var r;\n                if (t[r = i + ((r = n - i | 0) / 2 | 0) | 0].afterLineNumber < e) {\n                    if (1 + r >= t.length || t[1 + r].afterLineNumber >= e) return r;\n                    i = 1 + r | 0\n                } else n = r - 1 | 0\n            }\n            return -1\n        }\n        _findFirstWhitespaceAfterLineNumber(e) {\n            return (e = this._findLastWhitespaceBeforeLineNumber(e |= 0) + 1) < this._arr.length ? e : -1\n        }\n        getFirstWhitespaceIndexAfterLineNumber(e) {\n            return this._checkPendingChanges(), this._findFirstWhitespaceAfterLineNumber(e |= 0)\n        }\n        getVerticalOffsetForLineNumber(e) {\n            let t;\n            return this._checkPendingChanges(), t = 1 < (e |= 0) ? this._lineHeight * (e - 1) : 0, t + (e = this.getWhitespaceAccumulatedHeightBeforeLineNumber(e)) + this._paddingTop\n        }\n        getWhitespaceMinWidth() {\n            if (this._checkPendingChanges(), -1 === this._minWidth) {\n                let e = 0;\n                for (let t = 0, i = this._arr.length; t < i; t++) e = Math.max(e, this._arr[t].minWidth);\n                this._minWidth = e\n            }\n            return this._minWidth\n        }\n        isAfterLines(e) {\n            return this._checkPendingChanges(), this.getLinesTotalHeight() < e\n        }\n        isInTopPadding(e) {\n            return 0 !== this._paddingTop && (this._checkPendingChanges(), e < this._paddingTop)\n        }\n        isInBottomPadding(e) {\n            return 0 !== this._paddingBottom && (this._checkPendingChanges(), e >= this.getLinesTotalHeight() - this._paddingBottom)\n        }\n        getLineNumberAtOrAfterVerticalOffset(e) {\n            if (this._checkPendingChanges(), (e |= 0) < 0) return 1;\n            var t = 0 | this._lineCount,\n                i = this._lineHeight;\n            let n = 1,\n                r = t;\n            for (; n < r;) {\n                var o = (n + r) / 2 | 0,\n                    s = 0 | this.getVerticalOffsetForLineNumber(o);\n                if (s + i <= e) n = 1 + o;\n                else {\n                    if (s <= e) return o;\n                    r = o\n                }\n            }\n            return n > t ? t : n\n        }\n        getLinesViewportData(e, t) {\n            this._checkPendingChanges(), t |= 0;\n            var i = this._lineHeight,\n                n = 0 | this.getLineNumberAtOrAfterVerticalOffset(e |= 0),\n                r = 0 | this.getVerticalOffsetForLineNumber(n);\n            let o = 0 | this._lineCount,\n                s = 0 | this.getFirstWhitespaceIndexAfterLineNumber(n);\n            var a = 0 | this.getWhitespacesCount();\n            let l, d;\n            l = -1 === s ? (s = a, d = o + 1, 0) : (d = 0 | this.getAfterLineNumberForWhitespaceIndex(s), 0 | this.getHeightForWhitespaceIndex(s));\n            let c = r,\n                h = c,\n                u = 0;\n            5e5 <= r && (u = 5e5 * Math.floor(r / 5e5), u = Math.floor(u / i) * i, h -= u);\n            const p = [];\n            var g, f = e + (t - e) / 2;\n            let m = -1;\n            for (let e = n; e <= o; e++) {\n                for (-1 === m && (((g = c) <= f && f < c + i || f < g) && (m = e)), c += i, p[e - n] = h, h += i; d === e;) h += l, c += l, s++, s >= a ? d = o + 1 : (d = 0 | this.getAfterLineNumberForWhitespaceIndex(s), l = 0 | this.getHeightForWhitespaceIndex(s));\n                if (c >= t) {\n                    o = e;\n                    break\n                }\n            } - 1 === m && (m = o);\n            var v = 0 | this.getVerticalOffsetForLineNumber(o);\n            let b = n,\n                _ = o;\n            return b < _ && r < e && b++, b < _ && t < v + i && _--, {\n                bigNumbersDelta: u,\n                startLineNumber: n,\n                endLineNumber: o,\n                relativeVerticalOffset: p,\n                centeredLineNumber: m,\n                completelyVisibleStartLineNumber: b,\n                completelyVisibleEndLineNumber: _\n            }\n        }\n        getVerticalOffsetForWhitespaceIndex(e) {\n            this._checkPendingChanges();\n            var t = this.getAfterLineNumberForWhitespaceIndex(e |= 0);\n            let i, n;\n            return i = 1 <= t ? this._lineHeight * t : 0, n = 0 < e ? this.getWhitespacesAccumulatedHeight(e - 1) : 0, i + n + this._paddingTop\n        }\n        getWhitespaceIndexAtOrAfterVerticallOffset(e) {\n            this._checkPendingChanges(), e |= 0;\n            let t = 0,\n                i = this.getWhitespacesCount() - 1;\n            if (i < 0) return -1;\n            if (this.getVerticalOffsetForWhitespaceIndex(i) + this.getHeightForWhitespaceIndex(i) <= e) return -1;\n            for (; t < i;) {\n                var n = Math.floor((t + i) / 2),\n                    r = this.getVerticalOffsetForWhitespaceIndex(n);\n                if (r + this.getHeightForWhitespaceIndex(n) <= e) t = n + 1;\n                else {\n                    if (r <= e) return n;\n                    i = n\n                }\n            }\n            return t\n        }\n        getWhitespaceAtVerticalOffset(e) {\n            this._checkPendingChanges();\n            var t = this.getWhitespaceIndexAtOrAfterVerticallOffset(e |= 0);\n            if (t < 0) return null;\n            if (t >= this.getWhitespacesCount()) return null;\n            var i = this.getVerticalOffsetForWhitespaceIndex(t);\n            return e < i ? null : (e = this.getHeightForWhitespaceIndex(t), {\n                id: this.getIdForWhitespaceIndex(t),\n                afterLineNumber: this.getAfterLineNumberForWhitespaceIndex(t),\n                verticalOffset: i,\n                height: e\n            })\n        }\n        getWhitespaceViewportData(e, t) {\n            this._checkPendingChanges(), t |= 0;\n            e = this.getWhitespaceIndexAtOrAfterVerticallOffset(e |= 0);\n            var i = this.getWhitespacesCount() - 1;\n            if (e < 0) return [];\n            let n = [];\n            for (let s = e; s <= i; s++) {\n                var r = this.getVerticalOffsetForWhitespaceIndex(s),\n                    o = this.getHeightForWhitespaceIndex(s);\n                if (t <= r) break;\n                n.push({\n                    id: this.getIdForWhitespaceIndex(s),\n                    afterLineNumber: this.getAfterLineNumberForWhitespaceIndex(s),\n                    verticalOffset: r,\n                    height: o\n                })\n            }\n            return n\n        }\n        getWhitespaces() {\n            return this._checkPendingChanges(), this._arr.slice(0)\n        }\n        getWhitespacesCount() {\n            return this._checkPendingChanges(), this._arr.length\n        }\n        getIdForWhitespaceIndex(e) {\n            return this._checkPendingChanges(), this._arr[e |= 0].id\n        }\n        getAfterLineNumberForWhitespaceIndex(e) {\n            return this._checkPendingChanges(), this._arr[e |= 0].afterLineNumber\n        }\n        getHeightForWhitespaceIndex(e) {\n            return this._checkPendingChanges(), this._arr[e |= 0].height\n        }\n    }\n    ys.INSTANCE_COUNT = 0;\n    class Cs {\n        constructor(e, t, i, n) {\n            (t |= 0) < 0 && (t = 0), (i |= 0) < 0 && (i = 0), (n |= 0) < 0 && (n = 0), this.width = e = (e |= 0) < 0 ? 0 : e, this.contentWidth = t, this.scrollWidth = Math.max(e, t), this.height = i, this.contentHeight = n, this.scrollHeight = Math.max(i, n)\n        }\n        equals(e) {\n            return this.width === e.width && this.contentWidth === e.contentWidth && this.height === e.height && this.contentHeight === e.contentHeight\n        }\n    }\n    class xs extends v.a {\n        constructor(e, t) {\n            super(), this._onDidContentSizeChange = this._register(new D.b), this.onDidContentSizeChange = this._onDidContentSizeChange.event, this._dimensions = new Cs(0, 0, 0, 0), this._scrollable = this._register(new bs.a(e, t)), this.onDidScroll = this._scrollable.onScroll\n        }\n        getScrollable() {\n            return this._scrollable\n        }\n        setSmoothScrollDuration(e) {\n            this._scrollable.setSmoothScrollDuration(e)\n        }\n        validateScrollPosition(e) {\n            return this._scrollable.validateScrollPosition(e)\n        }\n        getScrollDimensions() {\n            return this._dimensions\n        }\n        setScrollDimensions(e) {\n            var t, i, n;\n            this._dimensions.equals(e) || (t = this._dimensions, this._dimensions = e, this._scrollable.setScrollDimensions({\n                width: e.width,\n                scrollWidth: e.scrollWidth,\n                height: e.height,\n                scrollHeight: e.scrollHeight\n            }, !0), i = t.contentWidth !== e.contentWidth, n = t.contentHeight !== e.contentHeight, (i || n) && this._onDidContentSizeChange.fire(new as(t.contentWidth, t.contentHeight, e.contentWidth, e.contentHeight)))\n        }\n        getFutureScrollPosition() {\n            return this._scrollable.getFutureScrollPosition()\n        }\n        getCurrentScrollPosition() {\n            return this._scrollable.getCurrentScrollPosition()\n        }\n        setScrollPositionNow(e) {\n            this._scrollable.setScrollPositionNow(e)\n        }\n        setScrollPositionSmooth(e) {\n            this._scrollable.setScrollPositionSmooth(e)\n        }\n    }\n    class Ss extends v.a {\n        constructor(e, t, i) {\n            super(), this._configuration = e;\n            const n = this._configuration.options;\n            var r = n.get(129);\n            e = n.get(74);\n            this._linesLayout = new ys(t, n.get(58), e.top, e.bottom), this._scrollable = this._register(new xs(0, i)), this._configureSmoothScrollDuration(), this._scrollable.setScrollDimensions(new Cs(r.contentWidth, 0, r.height, 0)), this.onDidScroll = this._scrollable.onDidScroll, this.onDidContentSizeChange = this._scrollable.onDidContentSizeChange, this._updateHeight()\n        }\n        dispose() {\n            super.dispose()\n        }\n        getScrollable() {\n            return this._scrollable.getScrollable()\n        }\n        onHeightMaybeChanged() {\n            this._updateHeight()\n        }\n        _configureSmoothScrollDuration() {\n            this._scrollable.setSmoothScrollDuration(this._configuration.options.get(102) ? 125 : 0)\n        }\n        on配置Changed(e) {\n            const t = this._configuration.options;\n            var i, n, r, o;\n            e.hasChanged(58) && this._linesLayout.setLineHeight(t.get(58)), e.hasChanged(74) && (r = t.get(74), this._linesLayout.setPadding(r.top, r.bottom)), e.hasChanged(129) ? (i = (o = t.get(129)).contentWidth, n = o.height, o = (r = this._scrollable.getScrollDimensions()).contentWidth, this._scrollable.setScrollDimensions(new Cs(i, r.contentWidth, n, this._getContentHeight(i, n, o)))) : this._updateHeight(), e.hasChanged(102) && this._configureSmoothScrollDuration()\n        }\n        onFlushed(e) {\n            this._linesLayout.onFlushed(e)\n        }\n        onLinesDeleted(e, t) {\n            this._linesLayout.onLinesDeleted(e, t)\n        }\n        onLinesInserted(e, t) {\n            this._linesLayout.onLinesInserted(e, t)\n        }\n        _getHorizontalScrollbarHeight(e, t) {\n            var i = this._configuration.options.get(91);\n            return 2 === i.horizontal || t <= e ? 0 : i.horizontalScrollbarSize\n        }\n        _getContentHeight(e, t, i) {\n            const n = this._configuration.options;\n            let r = this._linesLayout.getLinesTotalHeight();\n            return n.get(93) ? r += Math.max(0, t - n.get(58) - n.get(74).bottom) : r += this._getHorizontalScrollbarHeight(e, i), r\n        }\n        _updateHeight() {\n            var e = this._scrollable.getScrollDimensions(),\n                t = e.width,\n                i = e.height,\n                n = e.contentWidth;\n            this._scrollable.setScrollDimensions(new Cs(t, e.contentWidth, i, this._getContentHeight(t, i, n)))\n        }\n        getCurrentViewport() {\n            var e = this._scrollable.getScrollDimensions(),\n                t = this._scrollable.getCurrentScrollPosition();\n            return new Fe(t.scrollTop, t.scrollLeft, e.width, e.height)\n        }\n        getFutureViewport() {\n            var e = this._scrollable.getScrollDimensions(),\n                t = this._scrollable.getFutureScrollPosition();\n            return new Fe(t.scrollTop, t.scrollLeft, e.width, e.height)\n        }\n        _computeContentWidth(e) {\n            const t = this._configuration.options;\n            var i = t.get(130),\n                n = t.get(43);\n            if (i.isViewportWrapping) {\n                var r = t.get(129);\n                i = t.get(64);\n                return e > r.contentWidth + n.typicalHalfwidthCharacterWidth && i.enabled && \"right\" === i.side ? e + r.verticalScrollbarWidth : e\n            }\n            return r = t.get(92) * n.typicalHalfwidthCharacterWidth, n = this._linesLayout.getWhitespaceMinWidth(), Math.max(e + r, n)\n        }\n        setMaxLineWidth(e) {\n            var t = this._scrollable.getScrollDimensions();\n            this._scrollable.setScrollDimensions(new Cs(t.width, this._computeContentWidth(e), t.height, t.contentHeight)), this._updateHeight()\n        }\n        saveState() {\n            var e = this._scrollable.getFutureScrollPosition(),\n                t = e.scrollTop,\n                i = this._linesLayout.getLineNumberAtOrAfterVerticalOffset(t);\n            return {\n                scrollTop: t,\n                scrollTopWithoutViewZones: t - this._linesLayout.getWhitespaceAccumulatedHeightBeforeLineNumber(i),\n                scrollLeft: e.scrollLeft\n            }\n        }\n        changeWhitespace(e) {\n            return (e = this._linesLayout.changeWhitespace(e)) && this.onHeightMaybeChanged(), e\n        }\n        getVerticalOffsetForLineNumber(e) {\n            return this._linesLayout.getVerticalOffsetForLineNumber(e)\n        }\n        isAfterLines(e) {\n            return this._linesLayout.isAfterLines(e)\n        }\n        isInTopPadding(e) {\n            return this._linesLayout.isInTopPadding(e)\n        }\n        isInBottomPadding(e) {\n            return this._linesLayout.isInBottomPadding(e)\n        }\n        getLineNumberAtVerticalOffset(e) {\n            return this._linesLayout.getLineNumberAtOrAfterVerticalOffset(e)\n        }\n        getWhitespaceAtVerticalOffset(e) {\n            return this._linesLayout.getWhitespaceAtVerticalOffset(e)\n        }\n        getLinesViewportData() {\n            var e = this.getCurrentViewport();\n            return this._linesLayout.getLinesViewportData(e.top, e.top + e.height)\n        }\n        getLinesViewportDataAtScrollTop(e) {\n            var t = this._scrollable.getScrollDimensions();\n            return e + t.height > t.scrollHeight && (e = t.scrollHeight - t.height), this._linesLayout.getLinesViewportData(e = e < 0 ? 0 : e, e + t.height)\n        }\n        getWhitespaceViewportData() {\n            var e = this.getCurrentViewport();\n            return this._linesLayout.getWhitespaceViewportData(e.top, e.top + e.height)\n        }\n        getWhitespaces() {\n            return this._linesLayout.getWhitespaces()\n        }\n        getContentWidth() {\n            return this._scrollable.getScrollDimensions().contentWidth\n        }\n        getScrollWidth() {\n            return this._scrollable.getScrollDimensions().scrollWidth\n        }\n        getContentHeight() {\n            return this._scrollable.getScrollDimensions().contentHeight\n        }\n        getScrollHeight() {\n            return this._scrollable.getScrollDimensions().scrollHeight\n        }\n        getCurrentScrollLeft() {\n            return this._scrollable.getCurrentScrollPosition().scrollLeft\n        }\n        getCurrentScrollTop() {\n            return this._scrollable.getCurrentScrollPosition().scrollTop\n        }\n        validateScrollPosition(e) {\n            return this._scrollable.validateScrollPosition(e)\n        }\n        setScrollPosition(e, t) {\n            1 === t ? this._scrollable.setScrollPositionNow(e) : this._scrollable.setScrollPositionSmooth(e)\n        }\n        deltaScrollNow(e, t) {\n            var i = this._scrollable.getCurrentScrollPosition();\n            this._scrollable.setScrollPositionNow({\n                scrollLeft: i.scrollLeft + e,\n                scrollTop: i.scrollTop + t\n            })\n        }\n    }\n    var ks = i(137);\n    class Ls {\n        constructor(e) {\n            this._lines = e\n        }\n        convertViewPositionToModelPosition(e) {\n            return this._lines.convertViewPositionToModelPosition(e.lineNumber, e.column)\n        }\n        convertViewRangeToModelRange(e) {\n            return this._lines.convertViewRangeToModelRange(e)\n        }\n        validateViewPosition(e, t) {\n            return this._lines.validateViewPosition(e.lineNumber, e.column, t)\n        }\n        validateViewRange(e, t) {\n            return this._lines.validateViewRange(e, t)\n        }\n        convertModelPositionToViewPosition(e, t) {\n            return this._lines.convertModelPositionToViewPosition(e.lineNumber, e.column, t)\n        }\n        convertModelRangeToViewRange(e, t) {\n            return this._lines.convertModelRangeToViewRange(e, t)\n        }\n        modelPositionIsVisible(e) {\n            return this._lines.modelPositionIsVisible(e.lineNumber, e.column)\n        }\n        getModelLineViewLineCount(e) {\n            return this._lines.getModelLineViewLineCount(e)\n        }\n        getViewLineNumberOfModelPosition(e, t) {\n            return this._lines.getViewLineNumberOfModelPosition(e, t)\n        }\n    }\n    class Os {\n        constructor(e) {\n            this._counts = e, this._isValid = !1, this._validEndIndex = -1, this._modelToView = [], this._viewToModel = []\n        }\n        _invalidate(e) {\n            this._isValid = !1, this._validEndIndex = Math.min(this._validEndIndex, e - 1)\n        }\n        _ensureValid() {\n            if (!this._isValid) {\n                for (let i = this._validEndIndex + 1, n = this._counts.length; i < n; i++) {\n                    var e = this._counts[i],\n                        t = 0 < i ? this._modelToView[i - 1] : 0;\n                    this._modelToView[i] = t + e;\n                    for (let n = 0; n < e; n++) this._viewToModel[t + n] = i\n                }\n                this._modelToView.length = this._counts.length, this._viewToModel.length = this._modelToView[this._modelToView.length - 1], this._isValid = !0, this._validEndIndex = this._counts.length - 1\n            }\n        }\n        changeValue(e, t) {\n            this._counts[e] !== t && (this._counts[e] = t, this._invalidate(e))\n        }\n        removeValues(e, t) {\n            this._counts.splice(e, t), this._invalidate(e)\n        }\n        insertValues(e, t) {\n            this._counts = ne.b(this._counts, e, t), this._invalidate(e)\n        }\n        getTotalValue() {\n            return this._ensureValid(), this._viewToModel.length\n        }\n        getAccumulatedValue(e) {\n            return this._ensureValid(), this._modelToView[e]\n        }\n        getIndexOf(e) {\n            this._ensureValid();\n            var t = this._viewToModel[e],\n                i = 0 < t ? this._modelToView[t - 1] : 0;\n            return new ks.b(t, e - i)\n        }\n    }\n    class Es {\n        constructor(e, t, i, n, r, o, s, a, l) {\n            this._editorId = e, this.model = t, this._validModelVersionId = -1, this._domLineBreaksComputerFactory = i, this._monospaceLineBreaksComputerFactory = n, this.fontInfo = r, this.tabSize = o, this.wrappingStrategy = s, this.wrappingColumn = a, this.wrappingIndent = l, this._constructLines(!0, null)\n        }\n        dispose() {\n            this.hiddenAreasIds = this.model.deltaDecorations(this.hiddenAreasIds, [])\n        }\n        createCoordinatesConverter() {\n            return new Ls(this)\n        }\n        _constructLines(e, t) {\n            this.lines = [], e && (this.hiddenAreasIds = []);\n            var i = this.model.getLinesContent(),\n                n = (e = this.model.getInjectedTextDecorations(this._editorId), i.length);\n            const r = this.createLineBreaksComputer(),\n                o = new ne.a(Vo.b.fromDecorations(e));\n            for (let e = 0; e < n; e++) {\n                var s = o.takeWhile(t => t.lineNumber === e + 1);\n                r.addRequest(i[e], s, t ? t[e] : null)\n            }\n            var a = r.finalize();\n            let l = [];\n            var d = this.hiddenAreasIds.map(e => this.model.getDecorationRange(e)).sort(T.a.compareRangesUsingStarts);\n            let c = 1,\n                h = 0,\n                u = -1,\n                p = u + 1 < d.length ? h + 1 : n + 2;\n            for (let e = 0; e < n; e++) {\n                var g = e + 1;\n                g === p && (u++, c = d[u].startLineNumber, h = d[u].endLineNumber, p = u + 1 < d.length ? h + 1 : n + 2), g = g >= c && g <= h;\n                let t = Rs(a[e], !g);\n                l[e] = t.getViewLineCount(), this.lines[e] = t\n            }\n            this._validModelVersionId = this.model.getVersionId(), this.prefixSumComputer = new Os(l)\n        }\n        getHiddenAreas() {\n            return this.hiddenAreasIds.map(e => this.model.getDecorationRange(e))\n        }\n        _reduceRanges(e) {\n            if (0 === e.length) return [];\n            var t = e.map(e => this.model.validateRange(e)).sort(T.a.compareRangesUsingStarts);\n            let i = [],\n                n = t[0].startLineNumber,\n                r = t[0].endLineNumber;\n            for (let e = 1, s = t.length; e < s; e++) {\n                var o = t[e];\n                o.startLineNumber > r + 1 ? (i.push(new T.a(n, 1, r, 1)), n = o.startLineNumber, r = o.endLineNumber) : o.endLineNumber > r && (r = o.endLineNumber)\n            }\n            return i.push(new T.a(n, 1, r, 1)), i\n        }\n        setHiddenAreas(e) {\n            let t = this._reduceRanges(e);\n            var i = this.hiddenAreasIds.map(e => this.model.getDecorationRange(e)).sort(T.a.compareRangesUsingStarts);\n            if (t.length === i.length) {\n                let e = !1;\n                for (let n = 0; n < t.length; n++)\n                    if (!t[n].equalsRange(i[n])) {\n                        e = !0;\n                        break\n                    } if (!e) return !1\n            }\n            let n = [];\n            for (const e of t) n.push({\n                range: e,\n                options: Rr.b.EMPTY\n            });\n            this.hiddenAreasIds = this.model.deltaDecorations(this.hiddenAreasIds, n);\n            var r = t;\n            let o = 1,\n                s = 0,\n                a = -1,\n                l = a + 1 < r.length ? s + 1 : this.lines.length + 2,\n                d = !1;\n            for (let e = 0; e < this.lines.length; e++) {\n                var c = e + 1;\n                c === l && (a++, o = r[a].startLineNumber, s = r[a].endLineNumber, l = a + 1 < r.length ? s + 1 : this.lines.length + 2);\n                let t = !1;\n                c >= o && c <= s ? this.lines[e].isVisible() && (this.lines[e] = this.lines[e].setVisible(!1), t = !0) : (d = !0, this.lines[e].isVisible() || (this.lines[e] = this.lines[e].setVisible(!0), t = !0)), t && (c = this.lines[e].getViewLineCount(), this.prefixSumComputer.changeValue(e, c))\n            }\n            return d || this.setHiddenAreas([]), !0\n        }\n        modelPositionIsVisible(e, t) {\n            return !(e < 1 || e > this.lines.length) && this.lines[e - 1].isVisible()\n        }\n        getModelLineViewLineCount(e) {\n            return e < 1 || e > this.lines.length ? 1 : this.lines[e - 1].getViewLineCount()\n        }\n        setTabSize(e) {\n            return this.tabSize !== e && (this.tabSize = e, this._constructLines(!1, null), !0)\n        }\n        setWrappingSettings(e, t, i, n) {\n            var r = this.fontInfo.equals(e),\n                o = this.wrappingStrategy === t,\n                s = this.wrappingColumn === i,\n                a = this.wrappingIndent === n;\n            if (r && o && s && a) return !1;\n            a = r && o && !s && a, this.fontInfo = e, this.wrappingStrategy = t, this.wrappingColumn = i, this.wrappingIndent = n;\n            let l = null;\n            if (a) {\n                l = [];\n                for (let e = 0, t = this.lines.length; e < t; e++) l[e] = this.lines[e].getLineBreakData()\n            }\n            return this._constructLines(!1, l), !0\n        }\n        createLineBreaksComputer() {\n            return (\"advanced\" === this.wrappingStrategy ? this._domLineBreaksComputerFactory : this._monospaceLineBreaksComputerFactory).createLineBreaksComputer(this.fontInfo, this.tabSize, this.wrappingColumn, this.wrappingIndent)\n        }\n        onModelFlushed() {\n            this._constructLines(!0, null)\n        }\n        onModelLinesDeleted(e, t, i) {\n            if (!e || e <= this._validModelVersionId) return null;\n            var n = 1 === t ? 1 : this.prefixSumComputer.getAccumulatedValue(t - 2) + 1;\n            e = this.prefixSumComputer.getAccumulatedValue(i - 1);\n            return this.lines.splice(t - 1, i - t + 1), this.prefixSumComputer.removeValues(t - 1, i - t + 1), new Xo(n, e)\n        }\n        onModelLinesInserted(e, t, i, n) {\n            if (!e || e <= this._validModelVersionId) return null;\n            var r = 2 < t && !this.lines[t - 2].isVisible();\n            e = 1 === t ? 1 : this.prefixSumComputer.getAccumulatedValue(t - 2) + 1;\n            let o = 0,\n                s = [],\n                a = [];\n            for (let e = 0, t = n.length; e < t; e++) {\n                let t = Rs(n[e], !r);\n                s.push(t);\n                var l = t.getViewLineCount();\n                o += l, a[e] = l\n            }\n            return this.lines = this.lines.slice(0, t - 1).concat(s).concat(this.lines.slice(t - 1)), this.prefixSumComputer.insertValues(t - 1, a), new Qo(e, e + o - 1)\n        }\n        onModelLineChanged(e, t, i) {\n            if (null !== e && e <= this._validModelVersionId) return [!1, null, null, null];\n            var n = t - 1;\n            e = this.lines[n].getViewLineCount(), i = Rs(i, this.lines[n].isVisible());\n            this.lines[n] = i;\n            let r = !1,\n                o = 0,\n                s = -1,\n                a = 0,\n                l = -1,\n                d = 0,\n                c = -1;\n            return (i = this.lines[n].getViewLineCount()) < e ? (o = 1 === t ? 1 : this.prefixSumComputer.getAccumulatedValue(t - 2) + 1, s = o + i - 1, d = s + 1, c = d + (e - i) - 1, r = !0) : e < i ? (o = 1 === t ? 1 : this.prefixSumComputer.getAccumulatedValue(t - 2) + 1, s = o + e - 1, a = s + 1, l = a + (i - e) - 1, r = !0) : (o = 1 === t ? 1 : this.prefixSumComputer.getAccumulatedValue(t - 2) + 1, s = o + i - 1), this.prefixSumComputer.changeValue(n, i), [r, t = o <= s ? new Zo(o, s) : null, n = a <= l ? new Qo(a, l) : null, i = d <= c ? new Xo(d, c) : null]\n        }\n        acceptVersionId(e) {\n            this._validModelVersionId = e, 1 !== this.lines.length || this.lines[0].isVisible() || this.setHiddenAreas([])\n        }\n        getViewLineCount() {\n            return this.prefixSumComputer.getTotalValue()\n        }\n        _toValidViewLineNumber(e) {\n            if (e < 1) return 1;\n            var t = this.getViewLineCount();\n            return t < e ? t : 0 | e\n        }\n        getActiveIndentGuide(e, t, i) {\n            return e = this._toValidViewLineNumber(e), t = this._toValidViewLineNumber(t), i = this._toValidViewLineNumber(i), e = this.convertViewPositionToModelPosition(e, this.getViewLineMinColumn(e)), t = this.convertViewPositionToModelPosition(t, this.getViewLineMinColumn(t)), i = this.convertViewPositionToModelPosition(i, this.getViewLineMinColumn(i)), e = this.model.getActiveIndentGuide(e.lineNumber, t.lineNumber, i.lineNumber), t = this.convertModelPositionToViewPosition(e.startLineNumber, 1), i = this.convertModelPositionToViewPosition(e.endLineNumber, this.model.getLineMaxColumn(e.endLineNumber)), {\n                startLineNumber: t.lineNumber,\n                endLineNumber: i.lineNumber,\n                indent: e.indent\n            }\n        }\n        getViewLineInfo(e) {\n            e = this._toValidViewLineNumber(e);\n            e = (t = this.prefixSumComputer.getIndexOf(e - 1)).index;\n            var t = t.remainder;\n            return new Ns(e + 1, t)\n        }\n        getMinColumnOfViewLine(e) {\n            return this.lines[e.modelLineNumber - 1].getViewLineMinColumn(this.model, e.modelLineNumber, e.modelLineWrappedLineIdx)\n        }\n        getModelStartPositionOfViewLine(e) {\n            const t = this.lines[e.modelLineNumber - 1];\n            var i = t.getViewLineMinColumn(this.model, e.modelLineNumber, e.modelLineWrappedLineIdx);\n            i = t.getModelColumnOfViewPosition(e.modelLineWrappedLineIdx, i);\n            return new Re.a(e.modelLineNumber, i)\n        }\n        getModelEndPositionOfViewLine(e) {\n            const t = this.lines[e.modelLineNumber - 1];\n            var i = t.getViewLineMaxColumn(this.model, e.modelLineNumber, e.modelLineWrappedLineIdx);\n            i = t.getModelColumnOfViewPosition(e.modelLineWrappedLineIdx, i);\n            return new Re.a(e.modelLineNumber, i)\n        }\n        getViewLineInfosGroupedByModelRanges(e, t) {\n            var i = this.getViewLineInfo(e),\n                n = this.getViewLineInfo(t);\n            const r = new Array;\n            let o = this.getModelStartPositionOfViewLine(i),\n                s = new Array;\n            for (let e = i.modelLineNumber; e <= n.modelLineNumber; e++) {\n                const t = this.lines[e - 1];\n                if (t.isVisible()) {\n                    var a = e === i.modelLineNumber ? i.modelLineWrappedLineIdx : 0,\n                        l = e === n.modelLineNumber ? n.modelLineWrappedLineIdx + 1 : t.getViewLineCount();\n                    for (let t = a; t < l; t++) s.push(new Ns(e, t))\n                }!t.isVisible() && o ? (a = new Re.a(e - 1, this.model.getLineMaxColumn(e - 1) + 1), a = T.a.fromPositions(o, a), r.push(new Ds(a, s)), s = [], o = null) : t.isVisible() && !o && (o = new Re.a(e, 1))\n            }\n            return o && (t = T.a.fromPositions(o, this.getModelEndPositionOfViewLine(n)), r.push(new Ds(t, s))), r\n        }\n        getViewLinesBracketGuides(e, t, i, n) {\n            var r = i ? this.convertViewPositionToModelPosition(i.lineNumber, i.column) : null;\n            const o = [];\n            for (const i of this.getViewLineInfosGroupedByModelRanges(e, t)) {\n                var s = i.modelRange.startLineNumber,\n                    a = this.model.getLinesBracketGuides(s, i.modelRange.endLineNumber, r, n);\n                for (const e of i.viewLines)\n                    if (e.isWrappedLineContinuation && 1 === this.getMinColumnOfViewLine(e)) o.push([]);\n                    else {\n                        let t = a[e.modelLineNumber - s];\n                        t = t.map(t => t.horizontalLine ? new W.d(t.visibleColumn, t.className, new W.e(t.horizontalLine.top, this.convertModelPositionToViewPosition(e.modelLineNumber, t.horizontalLine.endColumn).column)) : t), o.push(t)\n                    }\n            }\n            return o\n        }\n        getViewLinesIndentGuides(e, t) {\n            e = this._toValidViewLineNumber(e), t = this._toValidViewLineNumber(t);\n            var i = this.convertViewPositionToModelPosition(e, this.getViewLineMinColumn(e)),\n                n = this.convertViewPositionToModelPosition(t, this.getViewLineMaxColumn(t));\n            let r = [],\n                o = [],\n                s = [];\n            var a = i.lineNumber - 1,\n                l = n.lineNumber - 1;\n            let d = null;\n            for (let e = a; e <= l; e++) {\n                const t = this.lines[e];\n                if (t.isVisible()) {\n                    var c = t.getViewLineNumberOfModelPosition(0, e === a ? i.column : 1),\n                        h = t.getViewLineNumberOfModelPosition(0, this.model.getLineMaxColumn(e + 1)),\n                        u = h - c + 1;\n                    let n = 0;\n                    1 < u && 1 === t.getViewLineMinColumn(this.model, e + 1, h) && (n = 0 === c ? 1 : 2), o.push(u), s.push(n), null === d && (d = new Re.a(e + 1, 0))\n                } else null !== d && (r = r.concat(this.model.getLinesIndentGuides(d.lineNumber, e)), d = null)\n            }\n            null !== d && (r = r.concat(this.model.getLinesIndentGuides(d.lineNumber, n.lineNumber)), d = null);\n            var p = t - e + 1;\n            let g = new Array(p),\n                f = 0;\n            for (let e = 0, t = r.length; e < t; e++) {\n                let t = r[e];\n                var m = Math.min(p - f, o[e]),\n                    v = s[e];\n                let i;\n                i = 2 === v ? 0 : 1 === v ? 1 : m;\n                for (let e = 0; e < m; e++) e === i && (t = 0), g[f++] = t\n            }\n            return g\n        }\n        getViewLineContent(e) {\n            e = this._toValidViewLineNumber(e);\n            e = (t = this.prefixSumComputer.getIndexOf(e - 1)).index;\n            var t = t.remainder;\n            return this.lines[e].getViewLineContent(this.model, e + 1, t)\n        }\n        getViewLineLength(e) {\n            e = this._toValidViewLineNumber(e);\n            e = (t = this.prefixSumComputer.getIndexOf(e - 1)).index;\n            var t = t.remainder;\n            return this.lines[e].getViewLineLength(this.model, e + 1, t)\n        }\n        getViewLineMinColumn(e) {\n            e = this._toValidViewLineNumber(e);\n            e = (t = this.prefixSumComputer.getIndexOf(e - 1)).index;\n            var t = t.remainder;\n            return this.lines[e].getViewLineMinColumn(this.model, e + 1, t)\n        }\n        getViewLineMaxColumn(e) {\n            e = this._toValidViewLineNumber(e);\n            e = (t = this.prefixSumComputer.getIndexOf(e - 1)).index;\n            var t = t.remainder;\n            return this.lines[e].getViewLineMaxColumn(this.model, e + 1, t)\n        }\n        getViewLineData(e) {\n            e = this._toValidViewLineNumber(e);\n            e = (t = this.prefixSumComputer.getIndexOf(e - 1)).index;\n            var t = t.remainder;\n            return this.lines[e].getViewLineData(this.model, e + 1, t)\n        }\n        getViewLinesData(e, t, i) {\n            e = this._toValidViewLineNumber(e), t = this._toValidViewLineNumber(t);\n            var n = this.prefixSumComputer.getIndexOf(e - 1);\n            let r = e;\n            var o = n.index,\n                s = n.remainder,\n                a = [];\n            for (let n = o, c = this.model.getLineCount(); n < c; n++) {\n                let c = this.lines[n];\n                if (c.isVisible()) {\n                    var l = n === o ? s : 0;\n                    let h = c.getViewLineCount() - l,\n                        u = !1;\n                    r + h > t && (u = !0, h = t - r + 1);\n                    var d = l + h;\n                    if (c.getViewLinesData(this.model, n + 1, l, d, r - e, i, a), r += h, u) break\n                }\n            }\n            return a\n        }\n        validateViewPosition(e, t, i) {\n            e = this._toValidViewLineNumber(e);\n            var n = (s = this.prefixSumComputer.getIndexOf(e - 1)).index,\n                r = s.remainder;\n            let o = this.lines[n];\n            var s, a = o.getViewLineMinColumn(this.model, n + 1, r);\n            return (s = o.getViewLineMaxColumn(this.model, n + 1, r)) < (t = t < a ? a : t) && (t = s), r = o.getModelColumnOfViewPosition(r, t), this.model.validatePosition(new Re.a(n + 1, r)).equals(i) ? new Re.a(e, t) : this.convertModelPositionToViewPosition(i.lineNumber, i.column)\n        }\n        validateViewRange(e, t) {\n            var i = this.validateViewPosition(e.startLineNumber, e.startColumn, t.getStartPosition());\n            t = this.validateViewPosition(e.endLineNumber, e.endColumn, t.getEndPosition());\n            return new T.a(i.lineNumber, i.column, t.lineNumber, t.column)\n        }\n        convertViewPositionToModelPosition(e, t) {\n            e = this._toValidViewLineNumber(e);\n            e = (i = this.prefixSumComputer.getIndexOf(e - 1)).index;\n            var i = i.remainder;\n            t = this.lines[e].getModelColumnOfViewPosition(i, t);\n            \"全局\" == e ? e = \"global\" : \"规则\" == e ? e = \"rule\" : \"直连\" == e ? e = \"direct\" : \"脚本\" == e && (e = \"script\");\n            return this.model.validatePosition(new Re.a(e + 1, t))\n        }\n        convertViewRangeToModelRange(e) {\n            var t = this.convertViewPositionToModelPosition(e.startLineNumber, e.startColumn);\n            e = this.convertViewPositionToModelPosition(e.endLineNumber, e.endColumn);\n            return new T.a(t.lineNumber, t.column, e.lineNumber, e.column)\n        }\n        convertModelPositionToViewPosition(e, t, i = 2) {\n            var n = this.model.validatePosition(new Re.a(e, t));\n            e = n.lineNumber, t = n.column;\n            let r, o = e - 1,\n                s = !1;\n            for (; 0 < o && !this.lines[o].isVisible();) o--, s = !0;\n            return 0 !== o || this.lines[o].isVisible() ? (n = 1 + (0 === o ? 0 : this.prefixSumComputer.getAccumulatedValue(o - 1)), r = s ? this.lines[o].getViewPositionOfModelPosition(n, this.model.getLineMaxColumn(o + 1), i) : this.lines[e - 1].getViewPositionOfModelPosition(n, t, i), r) : new Re.a(1, 1)\n        }\n        convertModelRangeToViewRange(e, t = 0) {\n            if (e.isEmpty()) {\n                var i = this.convertModelPositionToViewPosition(e.startLineNumber, e.startColumn, t);\n                return T.a.fromPositions(i)\n            }\n            return i = this.convertModelPositionToViewPosition(e.startLineNumber, e.startColumn, 1), e = this.convertModelPositionToViewPosition(e.endLineNumber, e.endColumn, 0), new T.a(i.lineNumber, i.column, e.lineNumber, e.column)\n        }\n        getViewLineNumberOfModelPosition(e, t) {\n            let i = e - 1;\n            if (this.lines[i].isVisible()) {\n                const e = 1 + (0 === i ? 0 : this.prefixSumComputer.getAccumulatedValue(i - 1));\n                return this.lines[i].getViewLineNumberOfModelPosition(e, t)\n            }\n            for (; 0 < i && !this.lines[i].isVisible();) i--;\n            if (0 === i && !this.lines[i].isVisible()) return 1;\n            const n = 1 + (0 === i ? 0 : this.prefixSumComputer.getAccumulatedValue(i - 1));\n            return this.lines[i].getViewLineNumberOfModelPosition(n, this.model.getLineMaxColumn(i + 1))\n        }\n        getDecorationsInRange(e, t, i) {\n            var n = this.convertViewPositionToModelPosition(e.startLineNumber, e.startColumn),\n                r = this.convertViewPositionToModelPosition(e.endLineNumber, e.endColumn);\n            if (r.lineNumber - n.lineNumber <= e.endLineNumber - e.startLineNumber) \"全局\" == e ? e = \"global\" : \"规则\" == e ? e = \"rule\" : \"直连\" == e ? e = \"direct\" : \"脚本\" == e && (e = \"script\");\n            return this.model.getDecorationsInRange(new T.a(n.lineNumber, 1, r.lineNumber, r.column), t, i);\n            let o = [];\n            var s, a = n.lineNumber - 1,\n                l = r.lineNumber - 1;\n            let d = null;\n            for (let e = a; e <= l; e++) {\n                this.lines[e].isVisible() ? null === d && (d = new Re.a(e + 1, e === a ? n.column : 1)) : null !== d && (s = this.model.getLineMaxColumn(e), o = o.concat(this.model.getDecorationsInRange(new T.a(d.lineNumber, d.column, e, s), t, i)), d = null)\n            }\n            null !== d && (o = o.concat(this.model.getDecorationsInRange(new T.a(d.lineNumber, d.column, r.lineNumber, r.column), t, i)), d = null), o.sort((e, t) => {\n                var i = T.a.compareRangesUsingStarts(e.range, t.range);\n                return 0 === i ? e.id < t.id ? -1 : e.id > t.id ? 1 : 0 : i\n            });\n            let c = [],\n                h = 0,\n                u = null;\n            for (const e of o) {\n                var p = e.id;\n                u !== p && (u = p, c[h++] = e)\n            }\n            return c\n        }\n        getInjectedTextAt(e) {\n            var t = this._toValidViewLineNumber(e.lineNumber),\n                i = (t = (i = this.prefixSumComputer.getIndexOf(t - 1)).index, i.remainder);\n            return this.lines[t].getInjectedTextAt(i, e.column)\n        }\n        normalizePosition(e, t) {\n            var i = this._toValidViewLineNumber(e.lineNumber),\n                n = (i = (n = this.prefixSumComputer.getIndexOf(i - 1)).index, n.remainder);\n            return this.lines[i].normalizePosition(this.model, i + 1, n, e, t)\n        }\n        getLineIndentColumn(e) {\n            var t = this._toValidViewLineNumber(e);\n            t = (e = this.prefixSumComputer.getIndexOf(t - 1)).index;\n            return 0 === e.remainder ? this.model.getLineIndentColumn(t + 1) : 0\n        }\n    }\n    class Ns {\n        constructor(e, t) {\n            this.modelLineNumber = e, this.modelLineWrappedLineIdx = t\n        }\n        get isWrappedLineContinuation() {\n            return 0 < this.modelLineWrappedLineIdx\n        }\n    }\n    class Ds {\n        constructor(e, t) {\n            this.modelRange = e, this.viewLines = t\n        }\n    }\n    class Is {\n        constructor() {}\n        isVisible() {\n            return !0\n        }\n        setVisible(e) {\n            return e ? this : Ts.INSTANCE\n        }\n        getLineBreakData() {\n            return null\n        }\n        getViewLineCount() {\n            return 1\n        }\n        getViewLineContent(e, t, i) {\n            return e.getLineContent(t)\n        }\n        getViewLineLength(e, t, i) {\n            return e.getLineLength(t)\n        }\n        getViewLineMinColumn(e, t, i) {\n            return e.getLineMinColumn(t)\n        }\n        getViewLineMaxColumn(e, t, i) {\n            return e.getLineMaxColumn(t)\n        }\n        getViewLineData(e, t, i) {\n            let n = e.getLineTokens(t);\n            return t = n.getLineContent(), new We(t, !1, 1, t.length + 1, 0, n.inflate(), null)\n        }\n        getViewLinesData(e, t, i, n, r, o, s) {\n            o[r] ? s[r] = this.getViewLineData(e, t, 0) : s[r] = null\n        }\n        getModelColumnOfViewPosition(e, t) {\n            return t\n        }\n        getViewPositionOfModelPosition(e, t) {\n            return new Re.a(e, t)\n        }\n        getViewLineNumberOfModelPosition(e, t) {\n            return e\n        }\n        normalizePosition(e, t, i, n, r) {\n            return n\n        }\n        getInjectedTextAt(e, t) {\n            return null\n        }\n    }\n    Is.INSTANCE = new Is;\n    class Ts {\n        constructor() {}\n        isVisible() {\n            return !1\n        }\n        setVisible(e) {\n            return e ? Is.INSTANCE : this\n        }\n        getLineBreakData() {\n            return null\n        }\n        getViewLineCount() {\n            return 0\n        }\n        getViewLineContent(e, t, i) {\n            throw new Error(\"Not supported\")\n        }\n        getViewLineLength(e, t, i) {\n            throw new Error(\"Not supported\")\n        }\n        getViewLineMinColumn(e, t, i) {\n            throw new Error(\"Not supported\")\n        }\n        getViewLineMaxColumn(e, t, i) {\n            throw new Error(\"Not supported\")\n        }\n        getViewLineData(e, t, i) {\n            throw new Error(\"Not supported\")\n        }\n        getViewLinesData(e, t, i, n, r, o, s) {\n            throw new Error(\"Not supported\")\n        }\n        getModelColumnOfViewPosition(e, t) {\n            throw new Error(\"Not supported\")\n        }\n        getViewPositionOfModelPosition(e, t) {\n            throw new Error(\"Not supported\")\n        }\n        getViewLineNumberOfModelPosition(e, t) {\n            throw new Error(\"Not supported\")\n        }\n        normalizePosition(e, t, i, n, r) {\n            throw new Error(\"Not supported\")\n        }\n        getInjectedTextAt(e, t) {\n            throw new Error(\"Not supported\")\n        }\n    }\n    Ts.INSTANCE = new Ts;\n    class Ms {\n        constructor(e, t) {\n            this._lineBreakData = e, this._isVisible = t\n        }\n        isVisible() {\n            return this._isVisible\n        }\n        setVisible(e) {\n            return this._isVisible = e, this\n        }\n        getLineBreakData() {\n            return this._lineBreakData\n        }\n        getViewLineCount() {\n            return this._isVisible ? this._lineBreakData.breakOffsets.length : 0\n        }\n        getInputStartOffsetOfOutputLineIndex(e) {\n            return this._lineBreakData.getInputOffsetOfOutputPosition(e, 0)\n        }\n        getInputEndOffsetOfOutputLineIndex(e, t, i) {\n            return i + 1 === this._lineBreakData.breakOffsets.length ? e.getLineMaxColumn(t) - 1 : this._lineBreakData.getInputOffsetOfOutputPosition(i + 1, 0)\n        }\n        getViewLineContent(e, t, i) {\n            if (!this._isVisible) throw new Error(\"Not supported\");\n            var n, r = 0 < i ? this._lineBreakData.breakOffsets[i - 1] : 0,\n                o = i < this._lineBreakData.breakOffsets.length ? this._lineBreakData.breakOffsets[i] : this._lineBreakData.breakOffsets[this._lineBreakData.breakOffsets.length - 1];\n            let s;\n            return s = null !== this._lineBreakData.injectionOffsets ? (n = this._lineBreakData.injectionOffsets.map((e, t) => new Vo.b(0, 0, e + 1, this._lineBreakData.injectionOptions[t], 0)), Vo.b.applyInjectedText(e.getLineContent(t), n).substring(r, o)) : e.getValueInRange({\n                startLineNumber: t,\n                startColumn: r + 1,\n                endLineNumber: t,\n                endColumn: o + 1\n            }), 0 < i && (s = As(this._lineBreakData.wrappedTextIndentLength) + s), s\n        }\n        getViewLineLength(e, t, i) {\n            if (!this._isVisible) throw new Error(\"Not supported\");\n            var n = 0 < i ? this._lineBreakData.breakOffsets[i - 1] : 0;\n            let r = (i < this._lineBreakData.breakOffsets.length ? this._lineBreakData.breakOffsets[i] : this._lineBreakData.breakOffsets[this._lineBreakData.breakOffsets.length - 1]) - n;\n            return 0 < i && (r = this._lineBreakData.wrappedTextIndentLength + r), r\n        }\n        getViewLineMinColumn(e, t, i) {\n            if (!this._isVisible) throw new Error(\"Not supported\");\n            return this._getViewLineMinColumn(i)\n        }\n        _getViewLineMinColumn(e) {\n            return 0 < e ? this._lineBreakData.wrappedTextIndentLength + 1 : 1\n        }\n        getViewLineMaxColumn(e, t, i) {\n            if (!this._isVisible) throw new Error(\"Not supported\");\n            return this.getViewLineLength(e, t, i) + 1\n        }\n        getViewLineData(e, t, i) {\n            if (!this._isVisible) throw new Error(\"Not supported\");\n            var n = this._lineBreakData,\n                r = 0 < i ? n.wrappedTextIndentLength : 0;\n            const o = n.injectionOffsets,\n                s = n.injectionOptions;\n            let a, l, d;\n            if (o) {\n                const v = e.getLineTokens(t).withInserted(o.map((e, t) => ({\n                    offset: e,\n                    text: s[t].content,\n                    tokenMetadata: we.a.defaultTokenMetadata\n                })));\n                var c = 0 < i ? n.breakOffsets[i - 1] : 0,\n                    h = n.breakOffsets[i];\n                a = v.getLineContent().substring(c, h), l = v.sliceAndInflate(c, h, r), d = new Array;\n                let b = 0;\n                for (let e = 0; e < o.length; e++) {\n                    var u, p, g = s[e].content.length,\n                        f = o[e] + b,\n                        m = o[e] + b + g;\n                    if (h < f) break;\n                    c < m && (!(u = s[e]).inlineClassName || (f = (p = 0 < i ? n.wrappedTextIndentLength : 0) + Math.max(f - c, 0)) !== (m = p + Math.min(m - c, h)) && d.push(new Ue(f, m, u.inlineClassName, u.inlineClassNameAffectsLetterSpacing))), b += g\n                }\n            } else {\n                var v = this.getInputStartOffsetOfOutputLineIndex(i),\n                    b = this.getInputEndOffsetOfOutputLineIndex(e, t, i);\n                const n = e.getLineTokens(t);\n                a = e.getValueInRange({\n                    startLineNumber: t,\n                    startColumn: v + 1,\n                    endLineNumber: t,\n                    endColumn: b + 1\n                }), l = n.sliceAndInflate(v, b, r), d = null\n            }\n            return 0 < i && (a = As(n.wrappedTextIndentLength) + a), t = 0 < i ? n.wrappedTextIndentLength + 1 : 1, v = a.length + 1, b = i + 1 < this.getViewLineCount(), r = 0 === i ? 0 : n.breakOffsetsVisibleColumn[i - 1], new We(a, b, t, v, r, l, d)\n        }\n        getViewLinesData(e, t, i, n, r, o, s) {\n            if (!this._isVisible) throw new Error(\"Not supported\");\n            for (let l = i; l < n; l++) {\n                var a = r + l - i;\n                o[a] ? s[a] = this.getViewLineData(e, t, l) : s[a] = null\n            }\n        }\n        getModelColumnOfViewPosition(e, t) {\n            if (!this._isVisible) throw new Error(\"Not supported\");\n            let i = t - 1;\n            return 0 < e && (i < this._lineBreakData.wrappedTextIndentLength ? i = 0 : i -= this._lineBreakData.wrappedTextIndentLength), this._lineBreakData.getInputOffsetOfOutputPosition(e, i) + 1\n        }\n        getViewPositionOfModelPosition(e, t, i = 2) {\n            if (!this._isVisible) throw new Error(\"Not supported\");\n            i = (t = this._lineBreakData.getOutputPositionOfInputOffset(t - 1, i)).outputLineIndex;\n            let n = t.outputOffset + 1;\n            return 0 < i && (n += this._lineBreakData.wrappedTextIndentLength), new Re.a(e + i, n)\n        }\n        getViewLineNumberOfModelPosition(e, t) {\n            if (!this._isVisible) throw new Error(\"Not supported\");\n            return e + this._lineBreakData.getOutputPositionOfInputOffset(t - 1).outputLineIndex\n        }\n        normalizePosition(e, t, i, n, r) {\n            if (null !== this._lineBreakData.injectionOffsets) {\n                var o = n.lineNumber - i,\n                    s = this._lineBreakData.outputPositionToOffsetInUnwrappedLine(i, n.column - 1),\n                    a = this._lineBreakData.normalizeOffsetAroundInjections(s, r);\n                if (a !== s) return this._lineBreakData.getOutputPositionOfOffsetInUnwrappedLine(a, r).toPosition(o, this._lineBreakData.wrappedTextIndentLength)\n            }\n            if (0 === r) {\n                if (0 < i && n.column === this._getViewLineMinColumn(i)) return new Re.a(n.lineNumber - 1, this.getViewLineMaxColumn(e, t, i - 1))\n            } else if (1 === r && i < this.getViewLineCount() - 1 && n.column === this.getViewLineMaxColumn(e, t, i)) return new Re.a(n.lineNumber + 1, this._getViewLineMinColumn(i + 1));\n            return n\n        }\n        getInjectedTextAt(e, t) {\n            return this._lineBreakData.getInjectedText(e, t - 1)\n        }\n    }\n    let Ps = [\"\"];\n\n    function As(e) {\n        if (e >= Ps.length)\n            for (let t = 1; t <= e; t++) Ps[t] = new Array(t + 1).join(\" \");\n        return Ps[e]\n    }\n\n    function Rs(e, t) {\n        return null === e ? (t ? Is : Ts).INSTANCE : new Ms(e, t)\n    }\n    class Fs {\n        constructor(e) {\n            this._lines = e\n        }\n        _validPosition(e) {\n            return this._lines.model.validatePosition(e)\n        }\n        _validRange(e) {\n            return this._lines.model.validateRange(e)\n        }\n        convertViewPositionToModelPosition(e) {\n            return this._validPosition(e)\n        }\n        convertViewRangeToModelRange(e) {\n            return this._validRange(e)\n        }\n        validateViewPosition(e, t) {\n            return this._validPosition(t)\n        }\n        validateViewRange(e, t) {\n            return this._validRange(t)\n        }\n        convertModelPositionToViewPosition(e) {\n            return this._validPosition(e)\n        }\n        convertModelRangeToViewRange(e) {\n            return this._validRange(e)\n        }\n        modelPositionIsVisible(e) {\n            var t = this._lines.model.getLineCount();\n            return !(e.lineNumber < 1 || e.lineNumber > t)\n        }\n        getModelLineViewLineCount(e) {\n            return 1\n        }\n        getViewLineNumberOfModelPosition(e, t) {\n            return e\n        }\n    }\n    class js {\n        constructor(e) {\n            this.model = e\n        }\n        dispose() {}\n        createCoordinatesConverter() {\n            return new Fs(this)\n        }\n        getHiddenAreas() {\n            return []\n        }\n        setHiddenAreas(e) {\n            return !1\n        }\n        setTabSize(e) {\n            return !1\n        }\n        setWrappingSettings(e, t, i, n) {\n            return !1\n        }\n        createLineBreaksComputer() {\n            let e = [];\n            return {\n                addRequest: (t, i, n) => {\n                    e.push(null)\n                },\n                finalize: () => e\n            }\n        }\n        onModelFlushed() {}\n        onModelLinesDeleted(e, t, i) {\n            return new Xo(t, i)\n        }\n        onModelLinesInserted(e, t, i, n) {\n            return new Qo(t, i)\n        }\n        onModelLineChanged(e, t, i) {\n            return [!1, new Zo(t, t), null, null]\n        }\n        acceptVersionId(e) {}\n        getViewLineCount() {\n            \"全局\" == e ? e = \"global\" : \"规则\" == e ? e = \"rule\" : \"直连\" == e ? e = \"direct\" : \"脚本\" == e && (e = \"script\");\n            return this.model.getLineCount()\n        }\n        getActiveIndentGuide(e, t, i) {\n            return {\n                startLineNumber: e,\n                endLineNumber: e,\n                indent: 0\n            }\n        }\n        getViewLinesBracketGuides(e, t, i) {\n            return new Array(t - e + 1).fill([])\n        }\n        getViewLinesIndentGuides(e, t) {\n            var i = t - e + 1;\n            let n = new Array(i);\n            for (let e = 0; e < i; e++) n[e] = 0;\n            return n\n        }\n        getViewLineContent(e) {\n            \"全局\" == e ? e = \"global\" : \"规则\" == e ? e = \"rule\" : \"直连\" == e ? e = \"direct\" : \"脚本\" == e && (e = \"script\");\n            return this.model.getLineContent(e)\n        }\n        getViewLineLength(e) {\n            \"全局\" == e ? e = \"global\" : \"规则\" == e ? e = \"rule\" : \"直连\" == e ? e = \"direct\" : \"脚本\" == e && (e = \"script\");\n            return this.model.getLineLength(e)\n        }\n        getViewLineMinColumn(e) {\n            \"全局\" == e ? e = \"global\" : \"规则\" == e ? e = \"rule\" : \"直连\" == e ? e = \"direct\" : \"脚本\" == e && (e = \"script\");\n            return this.model.getLineMinColumn(e)\n        }\n        getViewLineMaxColumn(e) {\n            \"全局\" == e ? e = \"global\" : \"规则\" == e ? e = \"rule\" : \"直连\" == e ? e = \"direct\" : \"脚本\" == e && (e = \"script\");\n            return this.model.getLineMaxColumn(e)\n        }\n        getViewLineData(e) {\n            let t = this.model.getLineTokens(e);\n            return e = t.getLineContent(), new We(e, !1, 1, e.length + 1, 0, t.inflate(), null)\n        }\n        getViewLinesData(e, t, i) {\n            var n = this.model.getLineCount();\n            e = Math.min(Math.max(1, e), n), t = Math.min(Math.max(1, t), n);\n            let r = [];\n            for (let n = e; n <= t; n++) {\n                var o = n - e;\n                i[o] || (r[o] = null), r[o] = this.getViewLineData(n)\n            }\n            return r\n        }\n        getDecorationsInRange(e, t, i) {\n            \"全局\" == e ? e = \"global\" : \"规则\" == e ? e = \"rule\" : \"直连\" == e ? e = \"direct\" : \"脚本\" == e && (e = \"script\");\n            return this.model.getDecorationsInRange(e, t, i)\n        }\n        normalizePosition(e, t) {\n            \"全局\" == e ? e = \"global\" : \"规则\" == e ? e = \"rule\" : \"直连\" == e ? e = \"direct\" : \"脚本\" == e && (e = \"script\");\n            return this.model.normalizePosition(e, t)\n        }\n        getLineIndentColumn(e) {\n            \"全局\" == e ? e = \"global\" : \"规则\" == e ? e = \"rule\" : \"直连\" == e ? e = \"direct\" : \"脚本\" == e && (e = \"script\");\n            return this.model.getLineIndentColumn(e)\n        }\n        getInjectedTextAt(e) {\n            return null\n        }\n    }\n    class Bs {\n        constructor(e, t, i, n, r) {\n            this.editorId = e, this.model = t, this.configuration = i, this._linesCollection = n, this._coordinatesConverter = r, this._decorationsCache = Object.create(null), this._cachedModelDecorationsResolver = null, this._cachedModelDecorationsResolverViewRange = null\n        }\n        _clearCachedModelDecorationsResolver() {\n            this._cachedModelDecorationsResolver = null, this._cachedModelDecorationsResolverViewRange = null\n        }\n        dispose() {\n            this._decorationsCache = Object.create(null), this._clearCachedModelDecorationsResolver()\n        }\n        reset() {\n            this._decorationsCache = Object.create(null), this._clearCachedModelDecorationsResolver()\n        }\n        onModelDecorationsChanged() {\n            this._decorationsCache = Object.create(null), this._clearCachedModelDecorationsResolver()\n        }\n        onLineMappingChanged() {\n            this._decorationsCache = Object.create(null), this._clearCachedModelDecorationsResolver()\n        }\n        _getOrCreateViewModelDecoration(e) {\n            var t = e.id;\n            let i = this._decorationsCache[t];\n            if (!i) {\n                var n, r = e.range,\n                    o = e.options;\n                let s;\n                s = o.isWholeLine ? (n = this._coordinatesConverter.convertModelPositionToViewPosition(new Re.a(r.startLineNumber, 1), 0), e = this._coordinatesConverter.convertModelPositionToViewPosition(new Re.a(r.endLineNumber, this.model.getLineMaxColumn(r.endLineNumber)), 1), new T.a(n.lineNumber, n.column, e.lineNumber, e.column)) : this._coordinatesConverter.convertModelRangeToViewRange(r, 1), i = new Ke(s, o), this._decorationsCache[t] = i\n            }\n            return i\n        }\n        getDecorationsViewportData(e) {\n            return null !== this._cachedModelDecorationsResolver && e.equalsRange(this._cachedModelDecorationsResolverViewRange) || (this._cachedModelDecorationsResolver = this._getDecorationsViewportData(e), this._cachedModelDecorationsResolverViewRange = e), this._cachedModelDecorationsResolver\n        }\n        _getDecorationsViewportData(e) {\n            var t = this._linesCollection.getDecorationsInRange(e, this.editorId, Object(n.n)(this.configuration.options)),\n                i = e.startLineNumber,\n                r = e.endLineNumber;\n            let o = [],\n                s = 0,\n                a = [];\n            for (let e = i; e <= r; e++) a[e - i] = [];\n            for (let e = 0, n = t.length; e < n; e++) {\n                var l = (c = t[e]).options,\n                    d = this._getOrCreateViewModelDecoration(c),\n                    c = d.range;\n                if (o[s++] = d, l.inlineClassName) {\n                    var h = new He(c, l.inlineClassName, l.inlineClassNameAffectsLetterSpacing ? 3 : 0),\n                        u = Math.max(i, c.startLineNumber),\n                        p = Math.min(r, c.endLineNumber);\n                    for (let e = u; e <= p; e++) a[e - i].push(h)\n                }\n                l.beforeContentClassName && i <= c.startLineNumber && c.startLineNumber <= r && (u = new He(new T.a(c.startLineNumber, c.startColumn, c.startLineNumber, c.startColumn), l.beforeContentClassName, 1), a[c.startLineNumber - i].push(u)), l.afterContentClassName && i <= c.endLineNumber && c.endLineNumber <= r && (l = new He(new T.a(c.endLineNumber, c.endColumn, c.endLineNumber, c.endColumn), l.afterContentClassName, 2), a[c.endLineNumber - i].push(l))\n            }\n            return {\n                decorations: o,\n                inlineDecorations: a\n            }\n        }\n    }\n    const Vs = new class {\n        constructor() {\n            this._onDidChangeLanguages = new D.b, this.onDidChangeLanguages = this._onDidChangeLanguages.event, this._languages = [], this._dynamicLanguages = []\n        }\n        registerLanguage(e) {\n            return this._languages.push(e), this._onDidChangeLanguages.fire(void 0), {\n                dispose: () => {\n                    for (let t = 0, i = this._languages.length; t < i; t++)\n                        if (this._languages[t] === e) return void this._languages.splice(t, 1)\n                }\n            }\n        }\n        getLanguages() {\n            return [].concat(this._languages).concat(this._dynamicLanguages)\n        }\n    };\n    xt.a.add(\"editor.modesRegistry\", Vs);\n    const Ws = \"plaintext\";\n    Vs.registerLanguage({\n        id: Ws,\n        extensions: [\".txt\"],\n        aliases: [yt.a(\"plainText.alias\", \"Plain Text\"), \"text\"],\n        mimetypes: [Hn.a.text]\n    }), Q.b.register(Ws, {\n        brackets: [\n            [\"(\", \")\"],\n            [\"[\", \"]\"],\n            [\"{\", \"}\"]\n        ],\n        surroundingPairs: [{\n            open: \"{\",\n            close: \"}\"\n        }, {\n            open: \"[\",\n            close: \"]\"\n        }, {\n            open: \"(\",\n            close: \")\"\n        }, {\n            open: \"<\",\n            close: \">\"\n        }, {\n            open: '\"',\n            close: '\"'\n        }, {\n            open: \"'\",\n            close: \"'\"\n        }, {\n            open: \"`\",\n            close: \"`\"\n        }],\n        colorizedBracketPairs: [],\n        folding: {\n            offSide: !0\n        }\n    }, 0);\n    class zs extends v.a {\n        constructor(e, t, i, n, r, o) {\n            if (super(), this._editorId = e, this._configuration = t, this.model = i, this._eventDispatcher = new os, this.onEvent = this._eventDispatcher.onEvent, this.cursorConfig = new Sn.b(this.model.getLanguageId(), this.model.getOptions(), this._configuration), this._tokenizeViewportSoon = this._register(new q.e(() => this.tokenizeViewport(), 50)), this._update配置ViewLineCount = this._register(new q.e(() => this._update配置ViewLineCountNow(), 0)), this._hasFocus = !1, this._viewportStartLine = -1, this._viewportStartLineTrackedRange = null, this._viewportStartLineDelta = 0, this.model.isTooLargeForTokenization()) this._lines = new js(this.model);\n            else {\n                const i = this._configuration.options;\n                var s = i.get(43),\n                    a = i.get(123);\n                e = i.get(130), t = i.get(122);\n                this._lines = new Es(this._editorId, this.model, n, r, s, this.model.getOptions().tabSize, a, e.wrappingColumn, t)\n            }\n            this.coordinatesConverter = this._lines.createCoordinatesConverter(), this._cursor = this._register(new fs(i, this, this.coordinatesConverter, this.cursorConfig)), this.viewLayout = this._register(new Ss(this._configuration, this.getLineCount(), o)), this._register(this.viewLayout.onDidScroll(e => {\n                e.scrollTopChanged && this._tokenizeViewportSoon.schedule(), this._eventDispatcher.emitSingleViewEvent(new es(e)), this._eventDispatcher.emitOutgoingEvent(new ds(e.oldScrollWidth, e.oldScrollLeft, e.oldScrollHeight, e.oldScrollTop, e.scrollWidth, e.scrollLeft, e.scrollHeight, e.scrollTop))\n            })), this._register(this.viewLayout.onDidContentSizeChange(e => {\n                this._eventDispatcher.emitOutgoingEvent(e)\n            })), this._decorations = new Bs(this._editorId, this.model, this._configuration, this._lines, this.coordinatesConverter), this._registerModelEvents(), this._register(this._configuration.onDidChangeFast(e => {\n                try {\n                    var t = this._eventDispatcher.beginEmitViewEvents();\n                    this._on配置Changed(t, e)\n                } finally {\n                    this._eventDispatcher.endEmitViewEvents()\n                }\n            })), this._register($r.getInstance().onDidChange(() => {\n                this._eventDispatcher.emitSingleViewEvent(new ns)\n            })), this._update配置ViewLineCountNow()\n        }\n        dispose() {\n            super.dispose(), this._decorations.dispose(), this._lines.dispose(), this.invalidateMinimapColorCache(), this._viewportStartLineTrackedRange = this.model._setTrackedRange(this._viewportStartLineTrackedRange, null, 1), this._eventDispatcher.dispose()\n        }\n        createLineBreaksComputer() {\n            return this._lines.createLineBreaksComputer()\n        }\n        addViewEventHandler(e) {\n            this._eventDispatcher.addViewEventHandler(e)\n        }\n        removeViewEventHandler(e) {\n            this._eventDispatcher.removeViewEventHandler(e)\n        }\n        _update配置ViewLineCountNow() {\n            this._configuration.setViewLineCount(this._lines.getViewLineCount())\n        }\n        tokenizeViewport() {\n            var e = this.viewLayout.getLinesViewportData();\n            e = new T.a(e.startLineNumber, this.getLineMinColumn(e.startLineNumber), e.endLineNumber, this.getLineMaxColumn(e.endLineNumber));\n            for (const t of this._toModelVisibleRanges(e)) this.model.tokenizeViewport(t.startLineNumber, t.endLineNumber)\n        }\n        setHasFocus(e) {\n            this._hasFocus = e, this._cursor.setHasFocus(e), this._eventDispatcher.emitSingleViewEvent(new qo(e)), this._eventDispatcher.emitOutgoingEvent(new ls(!e, e))\n        }\n        onCompositionStart() {\n            this._eventDispatcher.emitSingleViewEvent(new Wo)\n        }\n        onCompositionEnd() {\n            this._eventDispatcher.emitSingleViewEvent(new zo)\n        }\n        onDidColorThemeChange() {\n            this._eventDispatcher.emitSingleViewEvent(new ts)\n        }\n        _on配置Changed(e, t) {\n            let i = null; - 1 !== this._viewportStartLine && (l = new Re.a(this._viewportStartLine, this.getLineMinColumn(this._viewportStartLine)), i = this.coordinatesConverter.convertViewPositionToModelPosition(l));\n            let n = !1;\n            const r = this._configuration.options;\n            var o = r.get(43),\n                s = r.get(123),\n                a = r.get(130),\n                l = r.get(122);\n            this._lines.setWrappingSettings(o, s, a.wrappingColumn, l) && (e.emitViewEvent(new $o), e.emitViewEvent(new Yo), e.emitViewEvent(new Ko(null)), this._cursor.onLineMappingChanged(e), this._decorations.onLineMappingChanged(), this.viewLayout.onFlushed(this.getLineCount()), 0 !== this.viewLayout.getCurrentScrollTop() && (n = !0), this._update配置ViewLineCount.schedule()), t.hasChanged(80) && (this._decorations.reset(), e.emitViewEvent(new Ko(null))), e.emitViewEvent(new Ho(t)), this.viewLayout.on配置Changed(t), n && i && (e = this.coordinatesConverter.convertModelPositionToViewPosition(i), e = this.viewLayout.getVerticalOffsetForLineNumber(e.lineNumber), this.viewLayout.setScrollPosition({\n                scrollTop: e + this._viewportStartLineDelta\n            }, 1)), Sn.b.shouldRecreate(t) && (this.cursorConfig = new Sn.b(this.model.getLanguageId(), this.model.getOptions(), this._configuration), this._cursor.update配置(this.cursorConfig))\n        }\n        _registerModelEvents() {\n            this._register(this.model.onDidChangeContentOrInjectedText(e => {\n                try {\n                    const u = this._eventDispatcher.beginEmitViewEvents();\n                    let p = !1,\n                        g = !1;\n                    var t = e.changes,\n                        i = e instanceof Vo.d ? e.versionId : null;\n                    const f = this._lines.createLineBreaksComputer();\n                    for (const e of t) switch (e.changeType) {\n                        case 4:\n                            for (let t = 0; t < e.detail.length; t++) {\n                                var n = e.detail[t];\n                                let i = e.injectedTexts[t];\n                                i = i && i.filter(e => !e.ownerId || e.ownerId === this._editorId), f.addRequest(n, i, null)\n                            }\n                            break;\n                        case 2: {\n                            let t = null;\n                            e.injectedText && (t = e.injectedText.filter(e => !e.ownerId || e.ownerId === this._editorId)), f.addRequest(e.detail, t, null);\n                            break\n                        }\n                    }\n                    const m = f.finalize();\n                    let v = 0;\n                    for (const e of t) switch (e.changeType) {\n                        case 1:\n                            this._lines.onModelFlushed(), u.emitViewEvent(new $o), this._decorations.reset(), this.viewLayout.onFlushed(this.getLineCount()), p = !0;\n                            break;\n                        case 3:\n                            var r = this._lines.onModelLinesDeleted(i, e.fromLineNumber, e.toLineNumber);\n                            null !== r && (u.emitViewEvent(r), this.viewLayout.onLinesDeleted(r.fromLineNumber, r.toLineNumber)), p = !0;\n                            break;\n                        case 4:\n                            var o = m.slice(v, v + e.detail.length);\n                            v += e.detail.length;\n                            var s = this._lines.onModelLinesInserted(i, e.fromLineNumber, e.toLineNumber, o);\n                            null !== s && (u.emitViewEvent(s), this.viewLayout.onLinesInserted(s.fromLineNumber, s.toLineNumber)), p = !0;\n                            break;\n                        case 2:\n                            var a = m[v];\n                            v++;\n                            var [l, d, c, h] = this._lines.onModelLineChanged(i, e.lineNumber, a);\n                            g = l, d && u.emitViewEvent(d), c && (u.emitViewEvent(c), this.viewLayout.onLinesInserted(c.fromLineNumber, c.toLineNumber)), h && (u.emitViewEvent(h), this.viewLayout.onLinesDeleted(h.fromLineNumber, h.toLineNumber))\n                    }\n                    null !== i && this._lines.acceptVersionId(i), this.viewLayout.onHeightMaybeChanged(), !p && g && (u.emitViewEvent(new Yo), u.emitViewEvent(new Ko(null)), this._cursor.onLineMappingChanged(u), this._decorations.onLineMappingChanged())\n                } finally {\n                    this._eventDispatcher.endEmitViewEvents()\n                }\n                if (this._viewportStartLine = -1, this._configuration.setMaxLineNumber(this.model.getLineCount()), this._update配置ViewLineCountNow(), !this._hasFocus && 2 <= this.model.getAttachedEditorCount() && this._viewportStartLineTrackedRange) {\n                    const e = this.model._getTrackedRange(this._viewportStartLineTrackedRange);\n                    e && (t = this.coordinatesConverter.convertModelPositionToViewPosition(e.getStartPosition()), t = this.viewLayout.getVerticalOffsetForLineNumber(t.lineNumber), this.viewLayout.setScrollPosition({\n                        scrollTop: t + this._viewportStartLineDelta\n                    }, 1))\n                }\n                try {\n                    var u = this._eventDispatcher.beginEmitViewEvents();\n                    this._cursor.onModelContentChanged(u, e)\n                } finally {\n                    this._eventDispatcher.endEmitViewEvents()\n                }\n            })), this._register(this.model.onDidChangeTokens(e => {\n                let t = [];\n                for (let r = 0, o = e.ranges.length; r < o; r++) {\n                    var i = e.ranges[r],\n                        n = this.coordinatesConverter.convertModelPositionToViewPosition(new Re.a(i.fromLineNumber, 1)).lineNumber;\n                    i = this.coordinatesConverter.convertModelPositionToViewPosition(new Re.a(i.toLineNumber, this.model.getLineMaxColumn(i.toLineNumber))).lineNumber;\n                    t[r] = {\n                        fromLineNumber: n,\n                        toLineNumber: i\n                    }\n                }\n                this._eventDispatcher.emitSingleViewEvent(new is(t)), e.tokenizationSupportChanged && this._tokenizeViewportSoon.schedule()\n            })), this._register(this.model.onDidChangeLanguage配置(e => {\n                this._eventDispatcher.emitSingleViewEvent(new Go), this.cursorConfig = new Sn.b(this.model.getLanguageId(), this.model.getOptions(), this._configuration), this._cursor.update配置(this.cursorConfig)\n            })), this._register(this.model.onDidChangeLanguage(e => {\n                this.cursorConfig = new Sn.b(this.model.getLanguageId(), this.model.getOptions(), this._configuration), this._cursor.update配置(this.cursorConfig)\n            })), this._register(this.model.onDidChangeOptions(e => {\n                if (this._lines.setTabSize(this.model.getOptions().tabSize)) {\n                    try {\n                        const e = this._eventDispatcher.beginEmitViewEvents();\n                        e.emitViewEvent(new $o), e.emitViewEvent(new Yo), e.emitViewEvent(new Ko(null)), this._cursor.onLineMappingChanged(e), this._decorations.onLineMappingChanged(), this.viewLayout.onFlushed(this.getLineCount())\n                    } finally {\n                        this._eventDispatcher.endEmitViewEvents()\n                    }\n                    this._update配置ViewLineCount.schedule()\n                }\n                this.cursorConfig = new Sn.b(this.model.getLanguageId(), this.model.getOptions(), this._configuration), this._cursor.update配置(this.cursorConfig)\n            })), this._register(this.model.onDidChangeDecorations(e => {\n                this._decorations.onModelDecorationsChanged(), this._eventDispatcher.emitSingleViewEvent(new Ko(e))\n            }))\n        }\n        setHiddenAreas(e) {\n            let t = !1;\n            try {\n                const i = this._eventDispatcher.beginEmitViewEvents();\n                t = this._lines.setHiddenAreas(e), t && (i.emitViewEvent(new $o), i.emitViewEvent(new Yo), i.emitViewEvent(new Ko(null)), this._cursor.onLineMappingChanged(i), this._decorations.onLineMappingChanged(), this.viewLayout.onFlushed(this.getLineCount()), this.viewLayout.onHeightMaybeChanged())\n            } finally {\n                this._eventDispatcher.endEmitViewEvents()\n            }\n            this._update配置ViewLineCount.schedule(), t && this._eventDispatcher.emitOutgoingEvent(new cs)\n        }\n        getVisibleRangesPlusViewportAboveBelow() {\n            var e = this._configuration.options.get(129),\n                t = this._configuration.options.get(58),\n                i = Math.max(20, Math.round(e.height / t));\n            e = this.viewLayout.getLinesViewportData(), t = Math.max(1, e.completelyVisibleStartLineNumber - i), i = Math.min(this.getLineCount(), e.completelyVisibleEndLineNumber + i);\n            return this._toModelVisibleRanges(new T.a(t, this.getLineMinColumn(t), i, this.getLineMaxColumn(i)))\n        }\n        getVisibleRanges() {\n            var e = this.getCompletelyVisibleViewRange();\n            return this._toModelVisibleRanges(e)\n        }\n        _toModelVisibleRanges(e) {\n            e = this.coordinatesConverter.convertViewRangeToModelRange(e);\n            var t = this._lines.getHiddenAreas();\n            if (0 === t.length) return [e];\n            let i = [],\n                n = 0,\n                r = e.startLineNumber,\n                o = e.startColumn;\n            var s = e.endLineNumber;\n            e = e.endColumn;\n            for (let e = 0, d = t.length; e < d; e++) {\n                var a = t[e].startLineNumber,\n                    l = t[e].endLineNumber;\n                l < r || s < a || (r < a && (i[n++] = new T.a(r, o, a - 1, this.model.getLineMaxColumn(a - 1))), r = l + 1, o = 1)\n            }\n            return (r < s || r === s && o < e) && (i[n++] = new T.a(r, o, s, e)), i\n        }\n        getCompletelyVisibleViewRange() {\n            var e = (t = this.viewLayout.getLinesViewportData()).completelyVisibleStartLineNumber,\n                t = t.completelyVisibleEndLineNumber;\n            return new T.a(e, this.getLineMinColumn(e), t, this.getLineMaxColumn(t))\n        }\n        getCompletelyVisibleViewRangeAtScrollTop(e) {\n            e = (t = this.viewLayout.getLinesViewportDataAtScrollTop(e)).completelyVisibleStartLineNumber;\n            var t = t.completelyVisibleEndLineNumber;\n            return new T.a(e, this.getLineMinColumn(e), t, this.getLineMaxColumn(t))\n        }\n        saveState() {\n            var e = this.viewLayout.saveState(),\n                t = e.scrollTop,\n                i = this.viewLayout.getLineNumberAtVerticalOffset(t),\n                n = this.coordinatesConverter.convertViewPositionToModelPosition(new Re.a(i, this.getLineMinColumn(i)));\n            t = this.viewLayout.getVerticalOffsetForLineNumber(i) - t;\n            return {\n                scrollLeft: e.scrollLeft,\n                firstPosition: n,\n                firstPositionDeltaTop: t\n            }\n        }\n        reduceRestoreState(e) {\n            if (void 0 === e.firstPosition) return this._reduceRestoreStateCompatibility(e);\n            var t = this.model.validatePosition(e.firstPosition);\n            t = this.coordinatesConverter.convertModelPositionToViewPosition(t), t = this.viewLayout.getVerticalOffsetForLineNumber(t.lineNumber) - e.firstPositionDeltaTop;\n            return {\n                scrollLeft: e.scrollLeft,\n                scrollTop: t\n            }\n        }\n        _reduceRestoreStateCompatibility(e) {\n            return {\n                scrollLeft: e.scrollLeft,\n                scrollTop: e.scrollTopWithoutViewZones\n            }\n        }\n        getTabSize() {\n            \"全局\" == e ? e = \"global\" : \"规则\" == e ? e = \"rule\" : \"直连\" == e ? e = \"direct\" : \"脚本\" == e && (e = \"script\");\n            return this.model.getOptions().tabSize\n        }\n        getTextModelOptions() {\n            \"全局\" == e ? e = \"global\" : \"规则\" == e ? e = \"rule\" : \"直连\" == e ? e = \"direct\" : \"脚本\" == e && (e = \"script\");\n            return this.model.getOptions()\n        }\n        getLineCount() {\n            return this._lines.getViewLineCount()\n        }\n        setViewport(e, t, i) {\n            this._viewportStartLine = e;\n            var n = this.coordinatesConverter.convertViewPositionToModelPosition(new Re.a(e, this.getLineMinColumn(e)));\n            this._viewportStartLineTrackedRange = this.model._setTrackedRange(this._viewportStartLineTrackedRange, new T.a(n.lineNumber, n.column, n.lineNumber, n.column), 1), n = this.viewLayout.getVerticalOffsetForLineNumber(e), e = this.viewLayout.getCurrentScrollTop(), this._viewportStartLineDelta = e - n\n        }\n        getActiveIndentGuide(e, t, i) {\n            return this._lines.getActiveIndentGuide(e, t, i)\n        }\n        getLinesIndentGuides(e, t) {\n            return this._lines.getViewLinesIndentGuides(e, t)\n        }\n        getBracketGuidesInRangeByLine(e, t, i, n) {\n            return this._lines.getViewLinesBracketGuides(e, t, i, n)\n        }\n        getLineContent(e) {\n            return this._lines.getViewLineContent(e)\n        }\n        getLineLength(e) {\n            return this._lines.getViewLineLength(e)\n        }\n        getLineMinColumn(e) {\n            return this._lines.getViewLineMinColumn(e)\n        }\n        getLineMaxColumn(e) {\n            return this._lines.getViewLineMaxColumn(e)\n        }\n        getLineFirstNonWhitespaceColumn(e) {\n            return -1 === (e = b.u(this.getLineContent(e))) ? 0 : e + 1\n        }\n        getLineLastNonWhitespaceColumn(e) {\n            return -1 === (e = b.I(this.getLineContent(e))) ? 0 : e + 2\n        }\n        getDecorationsInViewport(e) {\n            return this._decorations.getDecorationsViewportData(e).decorations\n        }\n        getInjectedTextAt(e) {\n            return this._lines.getInjectedTextAt(e)\n        }\n        getViewLineRenderingData(e, t) {\n            var i = this.model.mightContainRTL(),\n                n = this.model.mightContainNonBasicASCII(),\n                r = this.getTabSize();\n            let o = this._lines.getViewLineData(t),\n                s = this._decorations.getDecorationsViewportData(e).inlineDecorations[t - e.startLineNumber];\n            return o.inlineDecorations && (s = [...s, ...o.inlineDecorations.map(e => e.toInlineDecoration(t))]), new ze(o.minColumn, o.maxColumn, o.content, o.continuesWithWrappedLine, i, n, o.tokens, s, r, o.startVisibleColumn)\n        }\n        getViewLineData(e) {\n            return this._lines.getViewLineData(e)\n        }\n        getMinimapLinesRenderingData(e, t, i) {\n            return i = this._lines.getViewLinesData(e, t, i), new Ve(this.getTabSize(), i)\n        }\n        getAllOverviewRulerDecorations(e) {\n            var t = this.model.getOverviewRulerDecorations(this._editorId, Object(n.n)(this._configuration.options));\n            const i = new Hs;\n            for (const n of t) {\n                var r, o, s, a, l = n.options;\n                const t = l.overviewRuler;\n                t && 0 !== (r = t.position) && (o = t.getColor(e), s = this.coordinatesConverter.getViewLineNumberOfModelPosition(n.range.startLineNumber, n.range.startColumn), a = this.coordinatesConverter.getViewLineNumberOfModelPosition(n.range.endLineNumber, n.range.endColumn), i.accept(o, l.zIndex, s, a, r))\n            }\n            return i.asArray\n        }\n        invalidateOverviewRulerColorCache() {\n            for (const e of this.model.getOverviewRulerDecorations()) {\n                const t = e.options.overviewRuler;\n                t && t.invalidateCachedColor()\n            }\n        }\n        invalidateMinimapColorCache() {\n            for (const e of this.model.getAllDecorations()) {\n                const t = e.options.minimap;\n                t && t.invalidateCachedColor()\n            }\n        }\n        getValueInRange(e, t) {\n            return e = this.coordinatesConverter.convertViewRangeToModelRange(e), this.model.getValueInRange(e, t)\n        }\n        getModelLineMaxColumn(e) {\n            \"全局\" == e ? e = \"global\" : \"规则\" == e ? e = \"rule\" : \"直连\" == e ? e = \"direct\" : \"脚本\" == e && (e = \"script\");\n            return this.model.getLineMaxColumn(e)\n        }\n        validateModelPosition(e) {\n            \"全局\" == e ? e = \"global\" : \"规则\" == e ? e = \"rule\" : \"直连\" == e ? e = \"direct\" : \"脚本\" == e && (e = \"script\");\n            return this.model.validatePosition(e)\n        }\n        validateModelRange(e) {\n            \"全局\" == e ? e = \"global\" : \"规则\" == e ? e = \"rule\" : \"直连\" == e ? e = \"direct\" : \"脚本\" == e && (e = \"script\");\n            return this.model.validateRange(e)\n        }\n        deduceModelPositionRelativeToViewPosition(e, t, i) {\n            return e = this.coordinatesConverter.convertViewPositionToModelPosition(e), 2 === this.model.getEOL().length && (t < 0 ? t -= i : t += i), e = this.model.getOffsetAt(e), this.model.getPositionAt(e + t)\n        }\n        getEOL() {\n            \"全局\" == e ? e = \"global\" : \"规则\" == e ? e = \"rule\" : \"直连\" == e ? e = \"direct\" : \"脚本\" == e && (e = \"script\");\n            return this.model.getEOL()\n        }\n        getPlainTextToCopy(e, t, i) {\n            var n = i ? \"\\r\\n\" : this.model.getEOL();\n            (e = e.slice(0)).sort(T.a.compareRangesUsingStarts);\n            let r = !1,\n                o = !1;\n            for (const t of e) t.isEmpty() ? r = !0 : o = !0;\n            if (!o) {\n                if (!t) return \"\";\n                var s = e.map(e => e.startLineNumber);\n                let i = \"\";\n                for (let e = 0; e < s.length; e++) 0 < e && s[e - 1] === s[e] || (i += this.model.getLineContent(s[e]) + n);\n                return i\n            }\n            if (r && t) {\n                let t = [],\n                    n = 0;\n                for (const r of e) {\n                    var a = r.startLineNumber;\n                    r.isEmpty() ? a !== n && t.push(this.model.getLineContent(a)) : t.push(this.model.getValueInRange(r, i ? 2 : 0)), n = a\n                }\n                return 1 === t.length ? t[0] : t\n            }\n            let l = [];\n            for (const t of e) t.isEmpty() || l.push(this.model.getValueInRange(t, i ? 2 : 0));\n            return 1 === l.length ? l[0] : l\n        }\n        getRichTextToCopy(e, t) {\n            var i = this.model.getLanguageId();\n            if (i === Ws) return null;\n            if (1 !== e.length) return null;\n            let r, o = e[0];\n            if (o.isEmpty()) {\n                if (!t) return null;\n                var s = o.startLineNumber;\n                o = new T.a(s, this.model.getLineMinColumn(s), s, this.model.getLineMaxColumn(s))\n            }\n            return e = this._configuration.options.get(43), t = this._getColorMap(), r = (s = /[:;\\\\\\/<>]/.test(e.fontFamily) || e.fontFamily === n.c.fontFamily) ? n.c.fontFamily : (r = e.fontFamily, r = r.replace(/\"/g, \"'\"), /[,']/.test(r) || /[+ ]/.test(r) && (r = `'${r}'`), `${r}, ${n.c.fontFamily}`), {\n                mode: i,\n                html: `<div style=\"color: ${t[1]};background-color: ${t[2]};font-family: ${r};font-weight: ${e.fontWeight};font-size: ${e.fontSize}px;line-height: ${e.lineHeight}px;white-space: pre;\">` + this._getHTMLToCopy(o, t) + \"</div>\"\n            }\n        }\n        _getHTMLToCopy(e, t) {\n            var i = e.startLineNumber,\n                n = e.startColumn,\n                r = e.endLineNumber,\n                o = e.endColumn,\n                s = this.getTabSize();\n            let a = \"\";\n            for (let e = i; e <= r; e++) {\n                const h = this.model.getLineTokens(e);\n                var l = h.getLineContent(),\n                    d = e === i ? n - 1 : 0,\n                    c = e === r ? o - 1 : l.length;\n                a += \"\" === l ? \"<br>\" : function(e, t, i, n, r, o, s) {\n                    let a = \"<div>\",\n                        l = n,\n                        d = 0,\n                        c = !0;\n                    for (let p = 0, g = t.getCount(); p < g; p++) {\n                        var h = t.getEndOffset(p);\n                        if (!(h <= n)) {\n                            let n = \"\";\n                            for (; l < h && l < r; l++) {\n                                var u = e.charCodeAt(l);\n                                switch (u) {\n                                    case 9:\n                                        let e = o - (l + d) % o;\n                                        for (d += e - 1; 0 < e;) c = s && c ? (n += \"&#160;\", !1) : (n += \" \", !0), e--;\n                                        break;\n                                    case 60:\n                                        n += \"&lt;\", c = !1;\n                                        break;\n                                    case 62:\n                                        n += \"&gt;\", c = !1;\n                                        break;\n                                    case 38:\n                                        n += \"&amp;\", c = !1;\n                                        break;\n                                    case 0:\n                                        n += \"&#00;\", c = !1;\n                                        break;\n                                    case 65279:\n                                    case 8232:\n                                    case 8233:\n                                    case 133:\n                                        n += \"�\", c = !1;\n                                        break;\n                                    case 13:\n                                        n += \"&#8203\", c = !1;\n                                        break;\n                                    case 32:\n                                        c = s && c ? (n += \"&#160;\", !1) : (n += \" \", !0);\n                                        break;\n                                    default:\n                                        n += String.fromCharCode(u), c = !1\n                                }\n                            }\n                            if (a += `<span style=\"${t.getInlineStyle(p,i)}\">${n}</span>`, r < h || l >= r) break\n                        }\n                    }\n                    return a += \"</div>\", a\n                }(l, h.inflate(), t, d, c, s, A.i)\n            }\n            return a\n        }\n        _getColorMap() {\n            var e = z.A.getColorMap();\n            let t = [\"#000000\"];\n            if (e)\n                for (let i = 1, n = e.length; i < n; i++) t[i] = uo.a.Format.CSS.formatHex(e[i]);\n            return t\n        }\n        pushStackElement() {\n            this.model.pushStackElement()\n        }\n        getPrimaryCursorState() {\n            return this._cursor.getPrimaryCursorState()\n        }\n        getLastAddedCursorIndex() {\n            return this._cursor.getLastAddedCursorIndex()\n        }\n        getCursorStates() {\n            return this._cursor.getCursorStates()\n        }\n        setCursorStates(e, t, i) {\n            this._withViewEventsCollector(n => this._cursor.setStates(n, e, t, i))\n        }\n        getCursorColumnSelectData() {\n            return this._cursor.getCursorColumnSelectData()\n        }\n        getCursorAutoClosedCharacters() {\n            return this._cursor.getAutoClosedCharacters()\n        }\n        setCursorColumnSelectData(e) {\n            this._cursor.setCursorColumnSelectData(e)\n        }\n        getPrevEditOperationType() {\n            return this._cursor.getPrevEditOperationType()\n        }\n        setPrevEditOperationType(e) {\n            this._cursor.setPrevEditOperationType(e)\n        }\n        getSelection() {\n            return this._cursor.getSelection()\n        }\n        getSelections() {\n            return this._cursor.getSelections()\n        }\n        getPosition() {\n            return this._cursor.getPrimaryCursorState().modelState.position\n        }\n        setSelections(e, t, i = 0) {\n            this._withViewEventsCollector(n => this._cursor.setSelections(n, e, t, i))\n        }\n        saveCursorState() {\n            return this._cursor.saveState()\n        }\n        restoreCursorState(e) {\n            this._withViewEventsCollector(t => this._cursor.restoreState(t, e))\n        }\n        _executeCursorEdit(e) {\n            this._cursor.context.cursorConfig.readOnly ? this._eventDispatcher.emitOutgoingEvent(new us) : this._withViewEventsCollector(e)\n        }\n        executeEdits(e, t, i) {\n            this._executeCursorEdit(n => this._cursor.executeEdits(n, e, t, i))\n        }\n        startComposition() {\n            this._cursor.setIsDoingComposition(!0), this._executeCursorEdit(e => this._cursor.startComposition(e))\n        }\n        endComposition(e) {\n            this._cursor.setIsDoingComposition(!1), this._executeCursorEdit(t => this._cursor.endComposition(t, e))\n        }\n        type(e, t) {\n            this._executeCursorEdit(i => this._cursor.type(i, e, t))\n        }\n        compositionType(e, t, i, n, r) {\n            this._executeCursorEdit(o => this._cursor.compositionType(o, e, t, i, n, r))\n        }\n        paste(e, t, i, n) {\n            this._executeCursorEdit(r => this._cursor.paste(r, e, t, i, n))\n        }\n        cut(e) {\n            this._executeCursorEdit(t => this._cursor.cut(t, e))\n        }\n        executeCommand(e, t) {\n            this._executeCursorEdit(i => this._cursor.executeCommand(i, e, t))\n        }\n        executeCommands(e, t) {\n            this._executeCursorEdit(i => this._cursor.executeCommands(i, e, t))\n        }\n        revealPrimaryCursor(e, t) {\n            this._withViewEventsCollector(i => this._cursor.revealPrimary(i, e, t, 0))\n        }\n        revealTopMostCursor(e) {\n            var t = this._cursor.getTopMostViewPosition();\n            const i = new T.a(t.lineNumber, t.column, t.lineNumber, t.column);\n            this._withViewEventsCollector(t => t.emitViewEvent(new Jo(e, i, null, 0, !0, 0)))\n        }\n        revealBottomMostCursor(e) {\n            var t = this._cursor.getBottomMostViewPosition();\n            const i = new T.a(t.lineNumber, t.column, t.lineNumber, t.column);\n            this._withViewEventsCollector(t => t.emitViewEvent(new Jo(e, i, null, 0, !0, 0)))\n        }\n        revealRange(e, t, i, n, r) {\n            this._withViewEventsCollector(o => o.emitViewEvent(new Jo(e, i, null, n, t, r)))\n        }\n        getVerticalOffsetForLineNumber(e) {\n            return this.viewLayout.getVerticalOffsetForLineNumber(e)\n        }\n        getScrollTop() {\n            return this.viewLayout.getCurrentScrollTop()\n        }\n        setScrollTop(e, t) {\n            this.viewLayout.setScrollPosition({\n                scrollTop: e\n            }, t)\n        }\n        setScrollPosition(e, t) {\n            this.viewLayout.setScrollPosition(e, t)\n        }\n        deltaScrollNow(e, t) {\n            this.viewLayout.deltaScrollNow(e, t)\n        }\n        changeWhitespace(e) {\n            this.viewLayout.changeWhitespace(e) && (this._eventDispatcher.emitSingleViewEvent(new rs), this._eventDispatcher.emitOutgoingEvent(new cs))\n        }\n        setMaxLineWidth(e) {\n            this.viewLayout.setMaxLineWidth(e)\n        }\n        _withViewEventsCollector(e) {\n            try {\n                e(this._eventDispatcher.beginEmitViewEvents())\n            } finally {\n                this._eventDispatcher.endEmitViewEvents()\n            }\n        }\n        normalizePosition(e, t) {\n            return this._lines.normalizePosition(e, t)\n        }\n        getLineIndentColumn(e) {\n            return this._lines.getLineIndentColumn(e)\n        }\n    }\n    class Hs {\n        constructor() {\n            this._asMap = Object.create(null), this.asArray = []\n        }\n        accept(e, t, i, n, r) {\n            if (s = this._asMap[e]) {\n                const e = s.data;\n                var o = e[e.length - 3],\n                    s = e[e.length - 1];\n                o === r && i <= s + 1 ? s < n && (e[e.length - 1] = n) : e.push(r, i, n)\n            } else n = new $e(e, t, [r, i, n]), this._asMap[e] = n, this.asArray.push(n)\n        }\n    }\n    class Us {\n        constructor(...e) {\n            for (var [t, i] of (this._entries = new Map, e)) this.set(t, i)\n        }\n        set(e, t) {\n            var i = this._entries.get(e);\n            return this._entries.set(e, t), i\n        }\n        has(e) {\n            return this._entries.has(e)\n        }\n        get(e) {\n            return this._entries.get(e)\n        }\n    }\n    const Ks = Object(_.c)(\"accessibilityService\"),\n        $s = new Yt.c(\"accessibilityModeEnabled\", !1);\n    class qs extends i(125).a {\n        constructor(e, t) {\n            super(0);\n            for (let t = 0; t < e.length; t++) this.set(e.charCodeAt(t), 1);\n            for (let e = 0; e < t.length; e++) this.set(t.charCodeAt(e), 2)\n        }\n        get(e) {\n            return 0 <= e && e < 256 ? this._asciiMap[e] : 12352 <= e && e <= 12543 || 13312 <= e && e <= 19903 || 19968 <= e && e <= 40959 ? 3 : this._map.get(e) || this._defaultValue\n        }\n    }\n    let Gs = [],\n        Ys = [];\n    class Zs {\n        constructor(e, t) {\n            this.classifier = new qs(e, t)\n        }\n        static create(e) {\n            return new Zs(e.get(118), e.get(117))\n        }\n        createLineBreaksComputer(e, t, i, n) {\n            t |= 0, i = +i;\n            const r = [],\n                o = [],\n                s = [];\n            return {\n                addRequest: (e, t, i) => {\n                    r.push(e), o.push(t), s.push(i)\n                },\n                finalize: () => {\n                    var a = e.typicalFullwidthCharacterWidth / e.typicalHalfwidthCharacterWidth;\n                    let l = [];\n                    for (let e = 0, h = r.length; e < h; e++) {\n                        var d = o[e],\n                            c = s[e];\n                        !c || c.injectionOptions || d ? l[e] = function(e, t, i, n, r, o, s) {\n                            const a = Vo.b.applyInjectedText(t, i);\n                            let l, d;\n                            if (d = i && 0 < i.length ? (l = i.map(e => e.options), i.map(e => e.column - 1)) : (l = null, null), -1 === r) return l ? new Be([a.length], [], 0, d, l) : null;\n                            var c = a.length;\n                            if (c <= 1) return l ? new Be([a.length], [], 0, d, l) : null;\n                            var h = r - (s = ea(a, n, r, o, s));\n                            let u = [],\n                                p = [],\n                                g = 0,\n                                f = 0,\n                                m = 0,\n                                v = r,\n                                _ = a.charCodeAt(0),\n                                w = e.get(_),\n                                y = Xs(_, 0, n, o),\n                                C = 1;\n                            b.E(_) && (y += 1, _ = a.charCodeAt(1), w = e.get(_), C++);\n                            for (let t = C; t < c; t++) {\n                                var x = t,\n                                    S = a.charCodeAt(t);\n                                let i, r;\n                                r = b.E(S) ? (t++, i = 0, 2) : (i = e.get(S), Xs(S, y, n, o)), Js(_, w, S, i) && (f = x, m = y), y += r, y > v && ((0 === f || y - m > h) && (f = x, m = y - r), u[g] = f, p[g] = m, g++, v = m + h, f = 0), _ = S, w = i\n                            }\n                            return 0 !== g || i && 0 !== i.length ? (u[g] = c, p[g] = y, new Be(u, p, s, d, l)) : null\n                        }(this.classifier, r[e], d, t, i, a, n) : l[e] = function(e, t, i, n, r, o, s) {\n                            if (-1 === r) return null;\n                            var a = i.length;\n                            if (a <= 1) return null;\n                            var l = t.breakOffsets,\n                                d = t.breakOffsetsVisibleColumn,\n                                c = r - (s = ea(i, n, r, o, s));\n                            let h = Gs,\n                                u = Ys,\n                                p = 0,\n                                g = 0,\n                                f = 0,\n                                m = r;\n                            var v = l.length;\n                            let _ = 0;\n                            if (0 <= _) {\n                                let e = Math.abs(d[_] - m);\n                                for (; _ + 1 < v;) {\n                                    var w = Math.abs(d[_ + 1] - m);\n                                    if (w >= e) break;\n                                    e = w, _++\n                                }\n                            }\n                            for (; _ < v;) {\n                                let t = _ < 0 ? 0 : l[_],\n                                    r = _ < 0 ? 0 : d[_];\n                                g > t && (t = g, r = f);\n                                let s = 0,\n                                    w = 0,\n                                    E = 0,\n                                    N = 0;\n                                if (r <= m) {\n                                    let f = r,\n                                        v = 0 === t ? 0 : i.charCodeAt(t - 1),\n                                        _ = 0 === t ? 0 : e.get(v),\n                                        x = !0;\n                                    for (let r = t; r < a; r++) {\n                                        var y = r,\n                                            C = i.charCodeAt(r);\n                                        let t, a;\n                                        if (a = b.E(C) ? (r++, t = 0, 2) : (t = e.get(C), Xs(C, f, n, o)), y > g && Js(v, _, C, t) && (s = y, w = f), f += a, f > m) {\n                                            N = y > g ? (E = y, f - a) : (E = r + 1, f), f - w > c && (s = 0), x = !1;\n                                            break\n                                        }\n                                        v = C, _ = t\n                                    }\n                                    if (x) {\n                                        0 < p && (h[p] = l[l.length - 1], u[p] = d[l.length - 1], p++);\n                                        break\n                                    }\n                                }\n                                if (0 === s) {\n                                    let a = r,\n                                        l = i.charCodeAt(t),\n                                        d = e.get(l),\n                                        h = !1;\n                                    for (let n = t - 1; n >= g; n--) {\n                                        var x = n + 1,\n                                            S = i.charCodeAt(n);\n                                        if (9 === S) {\n                                            h = !0;\n                                            break\n                                        }\n                                        let t, r;\n                                        if (r = b.F(S) ? (n--, t = 0, 2) : (t = e.get(S), b.D(S) ? o : 1), a <= m) {\n                                            if (0 === E && (E = x, N = a), a <= m - c) break;\n                                            if (Js(0, t, l, d)) {\n                                                s = x, w = a;\n                                                break\n                                            }\n                                        }\n                                        a -= r, l = S, d = t\n                                    }\n                                    if (0 !== s) {\n                                        var k = c - (N - w);\n                                        if (k <= n) {\n                                            var L = i.charCodeAt(E);\n                                            let e;\n                                            e = b.E(L) ? 2 : Xs(L, N, n, o), k - e < 0 && (s = 0)\n                                        }\n                                    }\n                                    if (h) {\n                                        _--;\n                                        continue\n                                    }\n                                }\n                                for (0 === s && (s = E, w = N), s <= g && (k = i.charCodeAt(g), w = b.E(k) ? (s = g + 2, f + 2) : (s = g + 1, f + Xs(k, f, n, o))), g = s, h[p] = s, f = w, u[p] = w, p++, m = w + c; _ < 0 || _ < v && d[_] < w;) _++;\n                                let D = Math.abs(d[_] - m);\n                                for (; _ + 1 < v;) {\n                                    var O = Math.abs(d[_ + 1] - m);\n                                    if (O >= D) break;\n                                    D = O, _++\n                                }\n                            }\n                            return 0 !== p ? (h.length = p, u.length = p, Gs = t.breakOffsets, Ys = t.breakOffsetsVisibleColumn, t.breakOffsets = h, t.breakOffsetsVisibleColumn = u, t.wrappedTextIndentLength = s, t) : null\n                        }(this.classifier, c, r[e], t, i, a, n)\n                    }\n                    return Gs.length = 0, Ys.length = 0, l\n                }\n            }\n        }\n    }\n\n    function Xs(e, t, i, n) {\n        return 9 === e ? i - t % i : b.D(e) || e < 32 ? n : 1\n    }\n\n    function Qs(e, t) {\n        return t - e % t\n    }\n\n    function Js(e, t, i, n) {\n        return 32 !== i && (2 === t || 3 === t && 2 !== n || 1 === n || 3 === n && 1 !== t)\n    }\n\n    function ea(e, t, i, n, r) {\n        let o = 0;\n        if (0 !== r) {\n            var s = b.u(e);\n            if (-1 !== s) {\n                for (let i = 0; i < s; i++) {\n                    o += 9 === e.charCodeAt(i) ? Qs(o, t) : 1\n                }\n                var a = 3 === r ? 2 : 2 === r ? 1 : 0;\n                for (let e = 0; e < a; e++) {\n                    o += Qs(o, t)\n                }\n                o + n > i && (o = 0)\n            }\n        }\n        return o\n    }\n    const ta = null === (gi = window.trustedTypes) || void 0 === gi ? void 0 : gi.createPolicy(\"domLineBreaksComputer\", {\n        createHTML: e => e\n    });\n    class ia {\n        static create() {\n            return new ia\n        }\n        constructor() {}\n        createLineBreaksComputer(e, t, i, n) {\n            t |= 0, i = +i;\n            let r = [],\n                o = [];\n            return {\n                addRequest: (e, t, i) => {\n                    r.push(e), o.push(t)\n                },\n                finalize: () => function(e, t, i, n, r, o) {\n                    function s(t) {\n                        const i = o[t];\n                        if (i) {\n                            var n = Vo.b.applyInjectedText(e[t], i),\n                                r = i.map(e => e.options);\n                            t = i.map(e => e.column - 1);\n                            return new Be([n.length], [], 0, t, r)\n                        }\n                        return null\n                    }\n                    if (-1 === n) {\n                        const t = [];\n                        for (let i = 0, n = e.length; i < n; i++) t[i] = s(i);\n                        return t\n                    }\n                    const a = Math.round(n * t.typicalHalfwidthCharacterWidth),\n                        l = 3 === r ? 2 : 2 === r ? 1 : 0,\n                        d = Math.round(i * l),\n                        c = Math.ceil(t.spaceWidth * d),\n                        h = document.createElement(\"div\");\n                    zi.applyFontInfoSlow(h, t);\n                    const u = Object(ye.a)(1e4),\n                        p = [],\n                        g = [],\n                        f = [],\n                        m = [],\n                        v = [];\n                    for (let n = 0; n < e.length; n++) {\n                        const s = Vo.b.applyInjectedText(e[n], o[n]);\n                        let l = 0,\n                            d = 0,\n                            h = a;\n                        if (0 !== r)\n                            if (l = b.u(s), -1 === l) l = 0;\n                            else {\n                                for (let e = 0; e < l; e++) {\n                                    d += 9 === s.charCodeAt(e) ? i - d % i : 1\n                                }(w = Math.ceil(t.spaceWidth * d)) + t.typicalFullwidthCharacterWidth > a ? (l = 0, d = 0) : h = a - w\n                            } var _ = s.substr(l),\n                            w = function(e, t, i, n, r, o) {\n                                0 !== o ? (o = String(o), r.appendASCIIString('<div style=\"text-indent: -'), r.appendASCIIString(o), r.appendASCIIString(\"px; padding-left: \"), r.appendASCIIString(o), r.appendASCIIString(\"px; box-sizing: border-box; width:\")) : r.appendASCIIString('<div style=\"width:'), r.appendASCIIString(String(n)), r.appendASCIIString('px;\">');\n                                var s = e.length;\n                                let a = t,\n                                    l = 0,\n                                    d = [],\n                                    c = [],\n                                    h = 0 < s ? e.charCodeAt(0) : 0;\n                                r.appendASCIIString(\"<span>\");\n                                for (let t = 0; t < s; t++) {\n                                    0 !== t && t % 16384 == 0 && r.appendASCIIString(\"</span><span>\"), d[t] = l, c[t] = a;\n                                    var u = h;\n                                    h = t + 1 < s ? e.charCodeAt(t + 1) : 0;\n                                    let n = 1,\n                                        o = 1;\n                                    switch (u) {\n                                        case 9:\n                                            n = i - a % i, o = n;\n                                            for (let e = 1; e <= n; e++) e < n ? r.write1(160) : r.appendASCII(32);\n                                            break;\n                                        case 32:\n                                            32 === h ? r.write1(160) : r.appendASCII(32);\n                                            break;\n                                        case 60:\n                                            r.appendASCIIString(\"&lt;\");\n                                            break;\n                                        case 62:\n                                            r.appendASCIIString(\"&gt;\");\n                                            break;\n                                        case 38:\n                                            r.appendASCIIString(\"&amp;\");\n                                            break;\n                                        case 0:\n                                            r.appendASCIIString(\"&#00;\");\n                                            break;\n                                        case 65279:\n                                        case 8232:\n                                        case 8233:\n                                        case 133:\n                                            r.write1(65533);\n                                            break;\n                                        default:\n                                            b.D(u) && o++, u < 32 ? r.write1(9216 + u) : r.write1(u)\n                                    }\n                                    l += n, a += o\n                                }\n                                return r.appendASCIIString(\"</span>\"), d[e.length] = l, c[e.length] = a, r.appendASCIIString(\"</div>\"), [d, c]\n                            }(_, d, i, h, u, c);\n                        p[n] = l, g[n] = d, f[n] = _, m[n] = w[0], v[n] = w[1]\n                    }\n                    var y = u.build();\n                    y = null !== (n = null == ta ? void 0 : ta.createHTML(y)) && void 0 !== n ? n : y;\n                    h.innerHTML = y, h.style.position = \"absolute\", h.style.top = \"10000\", h.style.wordWrap = \"break-word\", document.body.appendChild(h);\n                    var C = document.createRange(),\n                        x = Array.prototype.slice.call(h.children, 0);\n                    let S = [];\n                    for (let t = 0; t < e.length; t++) {\n                        const e = function(e, t, i, n) {\n                            if (i.length <= 1) return null;\n                            const r = Array.prototype.slice.call(t.children, 0),\n                                o = [];\n                            try {\n                                ! function e(t, i, n, r, o, s, a, l) {\n                                    if (r === s) return;\n                                    if (o = o || na(t, i, n[r], n[r + 1]), a = a || na(t, i, n[s], n[s + 1]), Math.abs(o[0].top - a[0].top) <= .1) return;\n                                    if (r + 1 === s) return void l.push(s);\n                                    const d = r + (s - r) / 2 | 0,\n                                        c = na(t, i, n[d], n[1 + d]);\n                                    e(t, i, n, r, o, d, c, l), e(t, i, n, d, c, s, a, l)\n                                }(e, r, n, 0, null, i.length - 1, null, o)\n                            } catch (e) {\n                                return console.log(e), null\n                            }\n                            return 0 !== o.length ? (o.push(i.length), o) : null\n                        }(C, L = x[t], f[t], m[t]);\n                        if (null !== e) {\n                            var k = p[t],\n                                L = g[t] + d,\n                                O = v[t];\n                            const i = [];\n                            for (let t = 0, n = e.length; t < n; t++) i[t] = O[e[t]];\n                            if (0 !== k)\n                                for (let t = 0, i = e.length; t < i; t++) e[t] += k;\n                            let n, r;\n                            const s = o[t];\n                            r = s ? (n = s.map(e => e.options), s.map(e => e.column - 1)) : n = null, S[t] = new Be(e, i, L, r, n)\n                        } else S[t] = s(t)\n                    }\n                    return document.body.removeChild(h), S\n                }(r, e, t, i, n, o)\n            }\n        }\n    }\n\n    function na(e, t, i, n) {\n        return e.setStart(t[i / 16384 | 0].firstChild, i % 16384), e.setEnd(t[n / 16384 | 0].firstChild, n % 16384), e.getClientRects()\n    }\n    var ra = i(172);\n    t = function(e, t, i, n) {\n        var r, o = arguments.length,\n            s = o < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n);\n        else\n            for (var a = e.length - 1; 0 <= a; a--)(r = e[a]) && (s = (o < 3 ? r(s) : 3 < o ? r(t, i, s) : r(t, i)) || s);\n        return 3 < o && s && Object.defineProperty(t, i, s), s\n    }, ae = function(e, t) {\n        return function(i, n) {\n            t(i, n, e)\n        }\n    };\n    let oa = 0;\n    class sa {\n        constructor(e, t, i, n, r) {\n            this.model = e, this.viewModel = t, this.view = i, this.hasRealView = n, this.listenersToRemove = r\n        }\n        dispose() {\n            Object(v.f)(this.listenersToRemove), this.model.onBeforeDetached(), this.hasRealView && this.view.dispose(), this.viewModel.dispose()\n        }\n    }\n    let aa = class e extends v.a {\n        constructor(e, t, i, n, r, o, s, a, l, d) {\n            super(), this._onDidDispose = this._register(new D.b), this.onDidDispose = this._onDidDispose.event, this._onDidChangeModelContent = this._register(new D.b), this.onDidChangeModelContent = this._onDidChangeModelContent.event, this._onDidChangeModelLanguage = this._register(new D.b), this.onDidChangeModelLanguage = this._onDidChangeModelLanguage.event, this._onDidChangeModelLanguage配置 = this._register(new D.b), this.onDidChangeModelLanguage配置 = this._onDidChangeModelLanguage配置.event, this._onDidChangeModelOptions = this._register(new D.b), this.onDidChangeModelOptions = this._onDidChangeModelOptions.event, this._onDidChangeModelDecorations = this._register(new D.b), this.onDidChangeModelDecorations = this._onDidChangeModelDecorations.event, this._onDidChange配置 = this._register(new D.b), this.onDidChange配置 = this._onDidChange配置.event, this._onDidChangeModel = this._register(new D.b), this.onDidChangeModel = this._onDidChangeModel.event, this._onDidChangeCursorPosition = this._register(new D.b), this.onDidChangeCursorPosition = this._onDidChangeCursorPosition.event, this._onDidChangeCursorSelection = this._register(new D.b), this.onDidChangeCursorSelection = this._onDidChangeCursorSelection.event, this._onDidAttemptReadOnlyEdit = this._register(new D.b), this.onDidAttemptReadOnlyEdit = this._onDidAttemptReadOnlyEdit.event, this._onDidLayoutChange = this._register(new D.b), this.onDidLayoutChange = this._onDidLayoutChange.event, this._editorTextFocus = this._register(new la), this.onDidFocusEditorText = this._editorTextFocus.onDidChangeToTrue, this.onDidBlurEditorText = this._editorTextFocus.onDidChangeToFalse, this._editorWidgetFocus = this._register(new la), this.onDidFocusEditorWidget = this._editorWidgetFocus.onDidChangeToTrue, this.onDidBlurEditorWidget = this._editorWidgetFocus.onDidChangeToFalse, this._onWillType = this._register(new D.b), this.onWillType = this._onWillType.event, this._onDidType = this._register(new D.b), this.onDidType = this._onDidType.event, this._onDidCompositionStart = this._register(new D.b), this.onDidCompositionStart = this._onDidCompositionStart.event, this._onDidCompositionEnd = this._register(new D.b), this.onDidCompositionEnd = this._onDidCompositionEnd.event, this._onDidPaste = this._register(new D.b), this.onDidPaste = this._onDidPaste.event, this._onMouseUp = this._register(new D.b), this.onMouseUp = this._onMouseUp.event, this._onMouseDown = this._register(new D.b), this.onMouseDown = this._onMouseDown.event, this._onMouseDrag = this._register(new D.b), this.onMouseDrag = this._onMouseDrag.event, this._onMouseDrop = this._register(new D.b), this.onMouseDrop = this._onMouseDrop.event, this._onMouseDropCanceled = this._register(new D.b), this.onMouseDropCanceled = this._onMouseDropCanceled.event, this._onContextMenu = this._register(new D.b), this.onContextMenu = this._onContextMenu.event, this._onMouseMove = this._register(new D.b), this.onMouseMove = this._onMouseMove.event, this._onMouseLeave = this._register(new D.b), this.onMouseLeave = this._onMouseLeave.event, this._onMouseWheel = this._register(new D.b), this.onMouseWheel = this._onMouseWheel.event, this._onKeyUp = this._register(new D.b), this.onKeyUp = this._onKeyUp.event, this._onKeyDown = this._register(new D.b), this.onKeyDown = this._onKeyDown.event, this._onDidContentSizeChange = this._register(new D.b), this.onDidContentSizeChange = this._onDidContentSizeChange.event, this._onDidScrollChange = this._register(new D.b), this.onDidScrollChange = this._onDidScrollChange.event, this._onDidChangeViewZones = this._register(new D.b), this.onDidChangeViewZones = this._onDidChangeViewZones.event, this._onDidChangeHiddenAreas = this._register(new D.b), this.onDidChangeHiddenAreas = this._onDidChangeHiddenAreas.event;\n            const c = Object.assign({}, t);\n            let h;\n            this._domElement = e, this._overflowWidgetsDomNode = c.overflowWidgetsDomNode, delete c.overflowWidgetsDomNode, this._id = ++oa, this._decorationTypeKeysToIds = {}, this._decorationTypeSubtypes = {}, this.isSimpleWidget = i.isSimpleWidget || !1, this._telemetryData = i.telemetryData, this._configuration = this._register(this._create配置(c, d)), this._register(this._configuration.onDidChange(e => {\n                this._onDidChange配置.fire(e);\n                const t = this._configuration.options;\n                e.hasChanged(129) && (e = t.get(129), this._onDidLayoutChange.fire(e))\n            })), this._contextKeyService = this._register(s.createScoped(this._domElement)), this._notificationService = l, this._codeEditorService = r, this._commandService = o, this._themeService = a, this._register(new da(this, this._contextKeyService)), this._register(new ca(this, this._contextKeyService)), this._instantiationService = n.createChild(new Us([Yt.b, this._contextKeyService])), this._modelData = null, this._contributions = {}, this._actions = {}, this._focusTracker = new ha(e), this._register(this._focusTracker.onChange(() => {\n                this._editorWidgetFocus.setValue(this._focusTracker.hasFocus())\n            })), this._contentWidgets = {}, this._overlayWidgets = {}, h = Array.isArray(i.contributions) ? i.contributions : Ai.d.getEditorContributions();\n            for (const t of h)\n                if (this._contributions[t.id]) Object(se.f)(new Error(\"Cannot have two contributions with the same id \" + t.id));\n                else try {\n                    var u = this._instantiationService.createInstance(t.ctor, this);\n                    this._contributions[t.id] = u\n                } catch (e) {\n                    Object(se.f)(e)\n                }\n            Ai.d.getEditorActions().forEach(e => {\n                var t;\n                this._actions[e.id] ? Object(se.f)(new Error(\"Cannot have two actions with the same id \" + e.id)) : (t = new ms(e.id, e.label, e.alias, Object(ve.o)(e.precondition), () => this._instantiationService.invokeFunction(t => Promise.resolve(e.runEditorCommand(t, this, null))), this._contextKeyService), this._actions[t.id] = t)\n            }), this._codeEditorService.addCodeEditor(this)\n        }\n        _create配置(e, t) {\n            return new zi(this.isSimpleWidget, e, this._domElement, t)\n        }\n        getId() {\n            return this.getEditorType() + \":\" + this._id\n        }\n        getEditorType() {\n            return V.ICodeEditor\n        }\n        dispose() {\n            this._codeEditorService.removeCodeEditor(this), this._focusTracker.dispose();\n            var e = Object.keys(this._contributions);\n            for (let i = 0, n = e.length; i < n; i++) {\n                var t = e[i];\n                this._contributions[t].dispose()\n            }\n            this._contributions = {}, this._actions = {}, this._contentWidgets = {}, this._overlayWidgets = {}, this._removeDecorationTypes(), this._postDetachModelCleanup(this._detachModel()), this._onDidDispose.fire(), super.dispose()\n        }\n        invokeWithinContext(e) {\n            return this._instantiationService.invokeFunction(e)\n        }\n        updateOptions(e) {\n            this._configuration.updateOptions(e)\n        }\n        getOptions() {\n            return this._configuration.options\n        }\n        getOption(e) {\n            return this._configuration.options.get(e)\n        }\n        getRawOptions() {\n            return this._configuration.getRawOptions()\n        }\n        getOverflowWidgetsDomNode() {\n            return this._overflowWidgetsDomNode\n        }\n        getConfiguredWordAtPosition(e) {\n            return this._modelData ? ra.a.getWordAtPosition(this._modelData.model, this._configuration.options.get(115), e) : null\n        }\n        getValue(e = null) {\n            if (!this._modelData) return \"\";\n            var t = !(!e || !e.preserveBOM);\n            let i = 0;\n            return e && e.lineEnding && \"\\n\" === e.lineEnding ? i = 1 : e && e.lineEnding && \"\\r\\n\" === e.lineEnding && (i = 2), this._modelData.model.getValue(i, t)\n        }\n        setValue(e) {\n            this._modelData && this._modelData.model.setValue(e)\n        }\n        getModel() {\n            return this._modelData ? this._modelData.model : null\n        }\n        setModel(e = null) {\n            var t, i = e;\n            null === this._modelData && null === i || this._modelData && this._modelData.model === i || (t = this.hasTextFocus(), e = this._detachModel(), this._attachModel(i), t && this.hasModel() && this.focus(), i = {\n                oldModelUrl: e ? e.uri : null,\n                newModelUrl: i ? i.uri : null\n            }, this._removeDecorationTypes(), this._onDidChangeModel.fire(i), this._postDetachModelCleanup(e))\n        }\n        _removeDecorationTypes() {\n            if (this._decorationTypeKeysToIds = {}, this._decorationTypeSubtypes) {\n                for (var e in this._decorationTypeSubtypes)\n                    for (var t in this._decorationTypeSubtypes[e]) this._removeDecorationType(e + \"-\" + t);\n                this._decorationTypeSubtypes = {}\n            }\n        }\n        getVisibleRanges() {\n            return this._modelData ? this._modelData.viewModel.getVisibleRanges() : []\n        }\n        getVisibleRangesPlusViewportAboveBelow() {\n            return this._modelData ? this._modelData.viewModel.getVisibleRangesPlusViewportAboveBelow() : []\n        }\n        getWhitespaces() {\n            return this._modelData ? this._modelData.viewModel.viewLayout.getWhitespaces() : []\n        }\n        static _getVerticalOffsetForPosition(e, t, i) {\n            return i = e.model.validatePosition({\n                lineNumber: t,\n                column: i\n            }), i = e.viewModel.coordinatesConverter.convertModelPositionToViewPosition(i), e.viewModel.viewLayout.getVerticalOffsetForLineNumber(i.lineNumber)\n        }\n        getTopForLineNumber(t) {\n            return this._modelData ? e._getVerticalOffsetForPosition(this._modelData, t, 1) : -1\n        }\n        getTopForPosition(t, i) {\n            return this._modelData ? e._getVerticalOffsetForPosition(this._modelData, t, i) : -1\n        }\n        setHiddenAreas(e) {\n            this._modelData && this._modelData.viewModel.setHiddenAreas(e.map(e => T.a.lift(e)))\n        }\n        getVisibleColumnFromPosition(e) {\n            if (!this._modelData) return e.column;\n            var t = this._modelData.model.validatePosition(e);\n            e = this._modelData.model.getOptions().tabSize;\n            return Sn.a.visibleColumnFromColumn(this._modelData.model.getLineContent(t.lineNumber), t.column, e) + 1\n        }\n        getPosition() {\n            return this._modelData ? this._modelData.viewModel.getPosition() : null\n        }\n        setPosition(e) {\n            if (this._modelData) {\n                if (!Re.a.isIPosition(e)) throw new Error(\"Invalid arguments\");\n                this._modelData.viewModel.setSelections(\"api\", [{\n                    selectionStartLineNumber: e.lineNumber,\n                    selectionStartColumn: e.column,\n                    positionLineNumber: e.lineNumber,\n                    positionColumn: e.column\n                }])\n            }\n        }\n        _sendRevealRange(e, t, i, n) {\n            if (this._modelData) {\n                if (!T.a.isIRange(e)) throw new Error(\"Invalid arguments\");\n                e = this._modelData.model.validateRange(e), e = this._modelData.viewModel.coordinatesConverter.convertModelRangeToViewRange(e), this._modelData.viewModel.revealRange(\"api\", i, e, t, n)\n            }\n        }\n        revealLine(e, t = 0) {\n            this._revealLine(e, 0, t)\n        }\n        revealLineInCenter(e, t = 0) {\n            this._revealLine(e, 1, t)\n        }\n        revealLineInCenterIfOutsideViewport(e, t = 0) {\n            this._revealLine(e, 2, t)\n        }\n        revealLineNearTop(e, t = 0) {\n            this._revealLine(e, 5, t)\n        }\n        _revealLine(e, t, i) {\n            if (\"number\" != typeof e) throw new Error(\"Invalid arguments\");\n            this._sendRevealRange(new T.a(e, 1, e, 1), t, !1, i)\n        }\n        revealPosition(e, t = 0) {\n            this._revealPosition(e, 0, !0, t)\n        }\n        revealPositionInCenter(e, t = 0) {\n            this._revealPosition(e, 1, !0, t)\n        }\n        revealPositionInCenterIfOutsideViewport(e, t = 0) {\n            this._revealPosition(e, 2, !0, t)\n        }\n        revealPositionNearTop(e, t = 0) {\n            this._revealPosition(e, 5, !0, t)\n        }\n        _revealPosition(e, t, i, n) {\n            if (!Re.a.isIPosition(e)) throw new Error(\"Invalid arguments\");\n            this._sendRevealRange(new T.a(e.lineNumber, e.column, e.lineNumber, e.column), t, i, n)\n        }\n        getSelection() {\n            return this._modelData ? this._modelData.viewModel.getSelection() : null\n        }\n        getSelections() {\n            return this._modelData ? this._modelData.viewModel.getSelections() : null\n        }\n        setSelection(e) {\n            var t = Hi.a.isISelection(e),\n                i = T.a.isIRange(e);\n            if (!t && !i) throw new Error(\"Invalid arguments\");\n            t ? this._setSelectionImpl(e) : i && (e = {\n                selectionStartLineNumber: e.startLineNumber,\n                selectionStartColumn: e.startColumn,\n                positionLineNumber: e.endLineNumber,\n                positionColumn: e.endColumn\n            }, this._setSelectionImpl(e))\n        }\n        _setSelectionImpl(e) {\n            this._modelData && (e = new Hi.a(e.selectionStartLineNumber, e.selectionStartColumn, e.positionLineNumber, e.positionColumn), this._modelData.viewModel.setSelections(\"api\", [e]))\n        }\n        revealLines(e, t, i = 0) {\n            this._revealLines(e, t, 0, i)\n        }\n        revealLinesInCenter(e, t, i = 0) {\n            this._revealLines(e, t, 1, i)\n        }\n        revealLinesInCenterIfOutsideViewport(e, t, i = 0) {\n            this._revealLines(e, t, 2, i)\n        }\n        revealLinesNearTop(e, t, i = 0) {\n            this._revealLines(e, t, 5, i)\n        }\n        _revealLines(e, t, i, n) {\n            if (\"number\" != typeof e || \"number\" != typeof t) throw new Error(\"Invalid arguments\");\n            this._sendRevealRange(new T.a(e, 1, t, 1), i, !1, n)\n        }\n        revealRange(e, t = 0, i = !1, n = !0) {\n            this._revealRange(e, i ? 1 : 0, n, t)\n        }\n        revealRangeInCenter(e, t = 0) {\n            this._revealRange(e, 1, !0, t)\n        }\n        revealRangeInCenterIfOutsideViewport(e, t = 0) {\n            this._revealRange(e, 2, !0, t)\n        }\n        revealRangeNearTop(e, t = 0) {\n            this._revealRange(e, 5, !0, t)\n        }\n        revealRangeNearTopIfOutsideViewport(e, t = 0) {\n            this._revealRange(e, 6, !0, t)\n        }\n        revealRangeAtTop(e, t = 0) {\n            this._revealRange(e, 3, !0, t)\n        }\n        _revealRange(e, t, i, n) {\n            if (!T.a.isIRange(e)) throw new Error(\"Invalid arguments\");\n            this._sendRevealRange(T.a.lift(e), t, i, n)\n        }\n        setSelections(e, t = \"api\", i = 0) {\n            if (this._modelData) {\n                if (!e || 0 === e.length) throw new Error(\"Invalid arguments\");\n                for (let t = 0, i = e.length; t < i; t++)\n                    if (!Hi.a.isISelection(e[t])) throw new Error(\"Invalid arguments\");\n                this._modelData.viewModel.setSelections(t, e, i)\n            }\n        }\n        getContentWidth() {\n            return this._modelData ? this._modelData.viewModel.viewLayout.getContentWidth() : -1\n        }\n        getScrollWidth() {\n            return this._modelData ? this._modelData.viewModel.viewLayout.getScrollWidth() : -1\n        }\n        getScrollLeft() {\n            return this._modelData ? this._modelData.viewModel.viewLayout.getCurrentScrollLeft() : -1\n        }\n        getContentHeight() {\n            return this._modelData ? this._modelData.viewModel.viewLayout.getContentHeight() : -1\n        }\n        getScrollHeight() {\n            return this._modelData ? this._modelData.viewModel.viewLayout.getScrollHeight() : -1\n        }\n        getScrollTop() {\n            return this._modelData ? this._modelData.viewModel.viewLayout.getCurrentScrollTop() : -1\n        }\n        setScrollLeft(e, t = 1) {\n            if (this._modelData) {\n                if (\"number\" != typeof e) throw new Error(\"Invalid arguments\");\n                this._modelData.viewModel.setScrollPosition({\n                    scrollLeft: e\n                }, t)\n            }\n        }\n        setScrollTop(e, t = 1) {\n            if (this._modelData) {\n                if (\"number\" != typeof e) throw new Error(\"Invalid arguments\");\n                this._modelData.viewModel.setScrollPosition({\n                    scrollTop: e\n                }, t)\n            }\n        }\n        setScrollPosition(e, t = 1) {\n            this._modelData && this._modelData.viewModel.setScrollPosition(e, t)\n        }\n        saveViewState() {\n            if (!this._modelData) return null;\n            const e = {};\n            for (const t of Object.keys(this._contributions)) {\n                const i = this._contributions[t];\n                \"function\" == typeof i.saveViewState && (e[t] = i.saveViewState())\n            }\n            return {\n                cursorState: this._modelData.viewModel.saveCursorState(),\n                viewState: this._modelData.viewModel.saveState(),\n                contributionsState: e\n            }\n        }\n        restoreViewState(e) {\n            if (this._modelData && this._modelData.hasRealView) {\n                var t = e;\n                if (t && t.cursorState && t.viewState) {\n                    e = t.cursorState, Array.isArray(e) ? this._modelData.viewModel.restoreCursorState(e) : this._modelData.viewModel.restoreCursorState([e]);\n                    var i = t.contributionsState || {},\n                        n = Object.keys(this._contributions);\n                    for (let e = 0, t = n.length; e < t; e++) {\n                        var r = n[e];\n                        const t = this._contributions[r];\n                        \"function\" == typeof t.restoreViewState && t.restoreViewState(i[r])\n                    }\n                    t = this._modelData.viewModel.reduceRestoreState(t.viewState), this._modelData.view.restoreState(t)\n                }\n            }\n        }\n        getContribution(e) {\n            return this._contributions[e] || null\n        }\n        getActions() {\n            const e = [];\n            var t = Object.keys(this._actions);\n            for (let n = 0, r = t.length; n < r; n++) {\n                var i = t[n];\n                e.push(this._actions[i])\n            }\n            return e\n        }\n        getSupportedActions() {\n            let e = this.getActions();\n            return e = e.filter(e => e.isSupported()), e\n        }\n        getAction(e) {\n            return this._actions[e] || null\n        }\n        trigger(e, t, i) {\n            switch (i = i || {}, t) {\n                case \"compositionStart\":\n                    return void this._startComposition();\n                case \"compositionEnd\":\n                    return void this._endComposition(e);\n                case \"type\":\n                    var n = i;\n                    return void this._type(e, n.text || \"\");\n                case \"replacePreviousChar\":\n                    return n = i, void this._compositionType(e, n.text || \"\", n.replaceCharCnt || 0, 0, 0);\n                case \"compositionType\":\n                    var r = i;\n                    return void this._compositionType(e, r.text || \"\", r.replacePrevCharCnt || 0, r.replaceNextCharCnt || 0, r.positionDelta || 0);\n                case \"paste\":\n                    return r = i, void this._paste(e, r.text || \"\", r.pasteOnNewLine || !1, r.multicursorText || null, r.mode || null);\n                case \"cut\":\n                    return void this._cut(e)\n            }\n            const o = this.getAction(t);\n            o ? Promise.resolve(o.run()).then(void 0, se.f) : this._modelData && (this._triggerEditorCommand(e, t, i) || this._triggerCommand(t, i))\n        }\n        _triggerCommand(e, t) {\n            this._commandService.executeCommand(e, t)\n        }\n        _startComposition() {\n            this._modelData && (this._modelData.viewModel.startComposition(), this._onDidCompositionStart.fire())\n        }\n        _endComposition(e) {\n            this._modelData && (this._modelData.viewModel.endComposition(e), this._onDidCompositionEnd.fire())\n        }\n        _type(e, t) {\n            this._modelData && 0 !== t.length && (\"keyboard\" === e && this._onWillType.fire(t), this._modelData.viewModel.type(t, e), \"keyboard\" === e && this._onDidType.fire(t))\n        }\n        _compositionType(e, t, i, n, r) {\n            this._modelData && this._modelData.viewModel.compositionType(t, i, n, r, e)\n        }\n        _paste(e, t, i, n, r) {\n            var o;\n            this._modelData && 0 !== t.length && (o = this._modelData.viewModel.getSelection().getStartPosition(), this._modelData.viewModel.paste(t, i, n, e), n = this._modelData.viewModel.getSelection().getStartPosition(), \"keyboard\" === e && this._onDidPaste.fire({\n                range: new T.a(o.lineNumber, o.column, n.lineNumber, n.column),\n                languageId: r\n            }))\n        }\n        _cut(e) {\n            this._modelData && this._modelData.viewModel.cut(e)\n        }\n        _triggerEditorCommand(e, t, i) {\n            const n = Ai.d.getEditorCommand(t);\n            return !!n && ((i = i || {}).source = e, this._instantiationService.invokeFunction(e => {\n                Promise.resolve(n.runEditorCommand(e, this, i)).then(void 0, se.f)\n            }), !0)\n        }\n        _getViewModel() {\n            return this._modelData ? this._modelData.viewModel : null\n        }\n        pushUndoStop() {\n            return !!this._modelData && !this._configuration.options.get(80) && (this._modelData.model.pushStackElement(), !0)\n        }\n        popUndoStop() {\n            return !!this._modelData && !this._configuration.options.get(80) && (this._modelData.model.popStackElement(), !0)\n        }\n        executeEdits(e, t, i) {\n            if (!this._modelData) return !1;\n            if (this._configuration.options.get(80)) return !1;\n            let n;\n            return n = i ? Array.isArray(i) ? () => i : i : () => null, this._modelData.viewModel.executeEdits(e, t, n), !0\n        }\n        executeCommand(e, t) {\n            this._modelData && this._modelData.viewModel.executeCommand(t, e)\n        }\n        executeCommands(e, t) {\n            this._modelData && this._modelData.viewModel.executeCommands(t, e)\n        }\n        changeDecorations(e) {\n            return this._modelData ? this._modelData.model.changeDecorations(e, this._id) : null\n        }\n        getLineDecorations(e) {\n            return this._modelData ? this._modelData.model.getLineDecorations(e, this._id, Object(n.n)(this._configuration.options)) : null\n        }\n        deltaDecorations(e, t) {\n            return this._modelData ? 0 === e.length && 0 === t.length ? e : this._modelData.model.deltaDecorations(e, t, this._id) : []\n        }\n        removeDecorations(e) {\n            var t = this._decorationTypeKeysToIds[e];\n            t && this.deltaDecorations(t, []), this._decorationTypeKeysToIds.hasOwnProperty(e) && delete this._decorationTypeKeysToIds[e], this._decorationTypeSubtypes.hasOwnProperty(e) && delete this._decorationTypeSubtypes[e]\n        }\n        getLayoutInfo() {\n            return this._configuration.options.get(129)\n        }\n        createOverviewRuler(e) {\n            return this._modelData && this._modelData.hasRealView ? this._modelData.view.createOverviewRuler(e) : null\n        }\n        getContainerDomNode() {\n            return this._domElement\n        }\n        getDomNode() {\n            return this._modelData && this._modelData.hasRealView ? this._modelData.view.domNode.domNode : null\n        }\n        delegateVerticalScrollbarMouseDown(e) {\n            this._modelData && this._modelData.hasRealView && this._modelData.view.delegateVerticalScrollbarMouseDown(e)\n        }\n        layout(e) {\n            this._configuration.observeReferenceElement(e), this.render()\n        }\n        focus() {\n            this._modelData && this._modelData.hasRealView && this._modelData.view.focus()\n        }\n        hasTextFocus() {\n            return !(!this._modelData || !this._modelData.hasRealView) && this._modelData.view.isFocused()\n        }\n        hasWidgetFocus() {\n            return this._focusTracker && this._focusTracker.hasFocus()\n        }\n        addContentWidget(e) {\n            var t = {\n                widget: e,\n                position: e.getPosition()\n            };\n            this._contentWidgets.hasOwnProperty(e.getId()) && console.warn(\"Overwriting a content widget with the same id.\"), this._contentWidgets[e.getId()] = t, this._modelData && this._modelData.hasRealView && this._modelData.view.addContentWidget(t)\n        }\n        layoutContentWidget(e) {\n            var t = e.getId();\n            if (this._contentWidgets.hasOwnProperty(t)) {\n                const i = this._contentWidgets[t];\n                i.position = e.getPosition(), this._modelData && this._modelData.hasRealView && this._modelData.view.layoutContentWidget(i)\n            }\n        }\n        removeContentWidget(e) {\n            var t = e.getId();\n            this._contentWidgets.hasOwnProperty(t) && (e = this._contentWidgets[t], delete this._contentWidgets[t], this._modelData && this._modelData.hasRealView && this._modelData.view.removeContentWidget(e))\n        }\n        addOverlayWidget(e) {\n            var t = {\n                widget: e,\n                position: e.getPosition()\n            };\n            this._overlayWidgets.hasOwnProperty(e.getId()) && console.warn(\"Overwriting an overlay widget with the same id.\"), this._overlayWidgets[e.getId()] = t, this._modelData && this._modelData.hasRealView && this._modelData.view.addOverlayWidget(t)\n        }\n        layoutOverlayWidget(e) {\n            var t = e.getId();\n            if (this._overlayWidgets.hasOwnProperty(t)) {\n                const i = this._overlayWidgets[t];\n                i.position = e.getPosition(), this._modelData && this._modelData.hasRealView && this._modelData.view.layoutOverlayWidget(i)\n            }\n        }\n        removeOverlayWidget(e) {\n            var t = e.getId();\n            this._overlayWidgets.hasOwnProperty(t) && (e = this._overlayWidgets[t], delete this._overlayWidgets[t], this._modelData && this._modelData.hasRealView && this._modelData.view.removeOverlayWidget(e))\n        }\n        changeViewZones(e) {\n            this._modelData && this._modelData.hasRealView && this._modelData.view.change(e)\n        }\n        getTargetAtClientPoint(e, t) {\n            return this._modelData && this._modelData.hasRealView ? this._modelData.view.getTargetAtClientPoint(e, t) : null\n        }\n        getScrolledVisiblePosition(t) {\n            if (!this._modelData || !this._modelData.hasRealView) return null;\n            var i = this._modelData.model.validatePosition(t);\n            const n = this._configuration.options;\n            return t = n.get(129), {\n                top: e._getVerticalOffsetForPosition(this._modelData, i.lineNumber, i.column) - this.getScrollTop(),\n                left: this._modelData.view.getOffsetForColumn(i.lineNumber, i.column) + t.glyphMarginWidth + t.lineNumbersWidth + t.decorationsWidth - this.getScrollLeft(),\n                height: n.get(58)\n            }\n        }\n        getOffsetForColumn(e, t) {\n            return this._modelData && this._modelData.hasRealView ? this._modelData.view.getOffsetForColumn(e, t) : -1\n        }\n        render(e = !1) {\n            this._modelData && this._modelData.hasRealView && this._modelData.view.render(!0, e)\n        }\n        setAriaOptions(e) {\n            this._modelData && this._modelData.hasRealView && this._modelData.view.setAriaOptions(e)\n        }\n        applyFontInfo(e) {\n            zi.applyFontInfoSlow(e, this._configuration.options.get(43))\n        }\n        _attachModel(e) {\n            if (e) {\n                const n = [];\n                this._domElement.setAttribute(\"data-mode-id\", e.getLanguageId()), this._configuration.setIsDominatedByLongLines(e.isDominatedByLongLines()), this._configuration.setMaxLineNumber(e.getLineCount()), e.onBeforeAttached();\n                const r = new zs(this._id, this._configuration, e, ia.create(), Zs.create(this._configuration.options), e => s.R(e));\n                n.push(e.onDidChangeDecorations(e => this._onDidChangeModelDecorations.fire(e))), n.push(e.onDidChangeLanguage(t => {\n                    this._domElement.setAttribute(\"data-mode-id\", e.getLanguageId()), this._onDidChangeModelLanguage.fire(t)\n                })), n.push(e.onDidChangeLanguage配置(e => this._onDidChangeModelLanguage配置.fire(e))), n.push(e.onDidChangeContent(e => this._onDidChangeModelContent.fire(e))), n.push(e.onDidChangeOptions(e => this._onDidChangeModelOptions.fire(e))), n.push(e.onWillDispose(() => this.setModel(null))), n.push(r.onEvent(e => {\n                    switch (e.kind) {\n                        case 0:\n                            this._onDidContentSizeChange.fire(e);\n                            break;\n                        case 1:\n                            this._editorTextFocus.setValue(e.hasFocus);\n                            break;\n                        case 2:\n                            this._onDidScrollChange.fire(e);\n                            break;\n                        case 3:\n                            this._onDidChangeViewZones.fire();\n                            break;\n                        case 4:\n                            this._onDidChangeHiddenAreas.fire();\n                            break;\n                        case 5:\n                            this._onDidAttemptReadOnlyEdit.fire();\n                            break;\n                        case 6: {\n                            e.reachedMaxCursorCount && this._notificationService.warn(yt.a(\"cursors.maximum\", \"The number of cursors has been limited to {0}.\", fs.MAX_CURSOR_COUNT));\n                            const i = [];\n                            for (let t = 0, n = e.selections.length; t < n; t++) i[t] = e.selections[t].getPosition();\n                            var t = {\n                                position: i[0],\n                                secondaryPositions: i.slice(1),\n                                reason: e.reason,\n                                source: e.source\n                            };\n                            this._onDidChangeCursorPosition.fire(t), t = {\n                                selection: e.selections[0],\n                                secondarySelections: e.selections.slice(1),\n                                modelVersionId: e.modelVersionId,\n                                oldSelections: e.oldSelections,\n                                oldModelVersionId: e.oldModelVersionId,\n                                source: e.source,\n                                reason: e.reason\n                            }, this._onDidChangeCursorSelection.fire(t);\n                            break\n                        }\n                    }\n                }));\n                const [o, a] = this._createView(r);\n                if (a) {\n                    this._domElement.appendChild(o.domNode.domNode);\n                    let n = Object.keys(this._contentWidgets);\n                    for (let e = 0, i = n.length; e < i; e++) {\n                        var t = n[e];\n                        o.addContentWidget(this._contentWidgets[t])\n                    }\n                    n = Object.keys(this._overlayWidgets);\n                    for (let e = 0, t = n.length; e < t; e++) {\n                        var i = n[e];\n                        o.addOverlayWidget(this._overlayWidgets[i])\n                    }\n                    o.render(!1, !0), o.domNode.domNode.setAttribute(\"data-uri\", e.uri.toString())\n                }\n                this._modelData = new sa(e, r, o, a, n)\n            } else this._modelData = null\n        }\n        _createView(e) {\n            let t;\n            t = this.isSimpleWidget ? {\n                paste: (e, t, i, n) => {\n                    this._paste(\"keyboard\", e, t, i, n)\n                },\n                type: e => {\n                    this._type(\"keyboard\", e)\n                },\n                compositionType: (e, t, i, n) => {\n                    this._compositionType(\"keyboard\", e, t, i, n)\n                },\n                startComposition: () => {\n                    this._startComposition()\n                },\n                endComposition: () => {\n                    this._endComposition(\"keyboard\")\n                },\n                cut: () => {\n                    this._cut(\"keyboard\")\n                }\n            } : {\n                paste: (e, t, i, n) => {\n                    this._commandService.executeCommand(\"paste\", {\n                        text: e,\n                        pasteOnNewLine: t,\n                        multicursorText: i,\n                        mode: n\n                    })\n                },\n                type: e => {\n                    this._commandService.executeCommand(\"type\", {\n                        text: e\n                    })\n                },\n                compositionType: (e, t, i, n) => {\n                    i || n ? this._commandService.executeCommand(\"compositionType\", {\n                        text: e,\n                        replacePrevCharCnt: t,\n                        replaceNextCharCnt: i,\n                        positionDelta: n\n                    }) : this._commandService.executeCommand(\"replacePreviousChar\", {\n                        text: e,\n                        replaceCharCnt: t\n                    })\n                },\n                startComposition: () => {\n                    this._commandService.executeCommand(\"compositionStart\", {})\n                },\n                endComposition: () => {\n                    this._commandService.executeCommand(\"compositionEnd\", {})\n                },\n                cut: () => {\n                    this._commandService.executeCommand(\"cut\", {})\n                }\n            };\n            const i = new ur(e.coordinatesConverter);\n            return i.onKeyDown = e => this._onKeyDown.fire(e), i.onKeyUp = e => this._onKeyUp.fire(e), i.onContextMenu = e => this._onContextMenu.fire(e), i.onMouseMove = e => this._onMouseMove.fire(e), i.onMouseLeave = e => this._onMouseLeave.fire(e), i.onMouseDown = e => this._onMouseDown.fire(e), i.onMouseUp = e => this._onMouseUp.fire(e), i.onMouseDrag = e => this._onMouseDrag.fire(e), i.onMouseDrop = e => this._onMouseDrop.fire(e), i.onMouseDropCanceled = e => this._onMouseDropCanceled.fire(e), i.onMouseWheel = e => this._onMouseWheel.fire(e), [new Ao(t, this._configuration, this._themeService, e, i, this._overflowWidgetsDomNode), !0]\n        }\n        _postDetachModelCleanup(e) {\n            e && e.removeAllDecorationsWithOwnerId(this._id)\n        }\n        _detachModel() {\n            if (!this._modelData) return null;\n            var e = this._modelData.model,\n                t = this._modelData.hasRealView ? this._modelData.view.domNode.domNode : null;\n            return this._modelData.dispose(), this._modelData = null, this._domElement.removeAttribute(\"data-mode-id\"), t && this._domElement.contains(t) && this._domElement.removeChild(t), e\n        }\n        _removeDecorationType(e) {\n            this._codeEditorService.removeDecorationType(e)\n        }\n        hasModel() {\n            return null !== this._modelData\n        }\n    };\n    aa = t([ae(3, _.a), ae(4, o.a), ae(5, m.b), ae(6, Yt.b), ae(7, ir.b), ae(8, hi.a), ae(9, Ks)], aa);\n    class la extends v.a {\n        constructor() {\n            super(), this._onDidChangeToTrue = this._register(new D.b), this.onDidChangeToTrue = this._onDidChangeToTrue.event, this._onDidChangeToFalse = this._register(new D.b), this.onDidChangeToFalse = this._onDidChangeToFalse.event, this._value = 0\n        }\n        setValue(e) {\n            e = e ? 2 : 1, this._value !== e && (this._value = e, 2 === this._value ? this._onDidChangeToTrue.fire() : 1 === this._value && this._onDidChangeToFalse.fire())\n        }\n    }\n    class da extends v.a {\n        constructor(e, t) {\n            super(), this._editor = e, t.createKey(\"editorId\", e.getId()), this._editorSimpleInput = vs.a.editorSimpleInput.bindTo(t), this._editorFocus = vs.a.focus.bindTo(t), this._textInputFocus = vs.a.textInputFocus.bindTo(t), this._editorTextFocus = vs.a.editorTextFocus.bindTo(t), this._editorTabMovesFocus = vs.a.tabMovesFocus.bindTo(t), this._editorReadonly = vs.a.readOnly.bindTo(t), this._inDiffEditor = vs.a.inDiffEditor.bindTo(t), this._editorColumnSelection = vs.a.columnSelection.bindTo(t), this._hasMultipleSelections = vs.a.hasMultipleSelections.bindTo(t), this._hasNonEmptySelection = vs.a.hasNonEmptySelection.bindTo(t), this._canUndo = vs.a.canUndo.bindTo(t), this._canRedo = vs.a.canRedo.bindTo(t), this._register(this._editor.onDidChange配置(() => 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.onDidChange配置(() => this._updateFromModel())), this._updateFromConfig(), this._updateFromSelection(), this._updateFromFocus(), this._updateFromModel(), this._editorSimpleInput.set(this._editor.isSimpleWidget)\n        }\n        _updateFromConfig() {\n            const e = this._editor.getOptions();\n            this._editorTabMovesFocus.set(e.get(128)), this._editorReadonly.set(e.get(80)), this._inDiffEditor.set(e.get(53)), this._editorColumnSelection.set(e.get(18))\n        }\n        _updateFromSelection() {\n            const e = this._editor.getSelections();\n            e ? (this._hasMultipleSelections.set(1 < e.length), this._hasNonEmptySelection.set(e.some(e => !e.isEmpty()))) : (this._hasMultipleSelections.reset(), this._hasNonEmptySelection.reset())\n        }\n        _updateFromFocus() {\n            this._editorFocus.set(this._editor.hasWidgetFocus() && !this._editor.isSimpleWidget), this._editorTextFocus.set(this._editor.hasTextFocus() && !this._editor.isSimpleWidget), this._textInputFocus.set(this._editor.hasTextFocus())\n        }\n        _updateFromModel() {\n            const e = this._editor.getModel();\n            this._canUndo.set(Boolean(e && e.canUndo())), this._canRedo.set(Boolean(e && e.canRedo()))\n        }\n    }\n    class ca extends v.a {\n        constructor(e, t) {\n            super(), this._editor = e, this._contextKeyService = t, this._langId = vs.a.languageId.bindTo(t), this._hasCompletionItemProvider = vs.a.hasCompletionItemProvider.bindTo(t), this._hasCodeActionsProvider = vs.a.hasCodeActionsProvider.bindTo(t), this._hasCodeLensProvider = vs.a.hasCodeLensProvider.bindTo(t), this._hasDefinitionProvider = vs.a.hasDefinitionProvider.bindTo(t), this._hasDeclarationProvider = vs.a.hasDeclarationProvider.bindTo(t), this._hasImplementationProvider = vs.a.hasImplementationProvider.bindTo(t), this._hasTypeDefinitionProvider = vs.a.hasTypeDefinitionProvider.bindTo(t), this._hasHoverProvider = vs.a.hasHoverProvider.bindTo(t), this._hasDocumentHighlightProvider = vs.a.hasDocumentHighlightProvider.bindTo(t), this._hasDocumentSymbolProvider = vs.a.hasDocumentSymbolProvider.bindTo(t), this._hasReferenceProvider = vs.a.hasReferenceProvider.bindTo(t), this._hasRenameProvider = vs.a.hasRenameProvider.bindTo(t), this._hasSignatureHelpProvider = vs.a.hasSignatureHelpProvider.bindTo(t), this._hasInlayHintsProvider = vs.a.hasInlayHintsProvider.bindTo(t), this._hasDocumentFormattingProvider = vs.a.hasDocumentFormattingProvider.bindTo(t), this._hasDocumentSelectionFormattingProvider = vs.a.hasDocumentSelectionFormattingProvider.bindTo(t), this._hasMultipleDocumentFormattingProvider = vs.a.hasMultipleDocumentFormattingProvider.bindTo(t), this._hasMultipleDocumentSelectionFormattingProvider = vs.a.hasMultipleDocumentSelectionFormattingProvider.bindTo(t), this._isInWalkThrough = vs.a.isInWalkThroughSnippet.bindTo(t), t = () => this._update(), this._register(e.onDidChangeModel(t)), this._register(e.onDidChangeModelLanguage(t)), this._register(z.d.onDidChange(t)), this._register(z.a.onDidChange(t)), this._register(z.b.onDidChange(t)), this._register(z.f.onDidChange(t)), this._register(z.e.onDidChange(t)), this._register(z.p.onDidChange(t)), this._register(z.B.onDidChange(t)), this._register(z.o.onDidChange(t)), this._register(z.h.onDidChange(t)), this._register(z.l.onDidChange(t)), this._register(z.v.onDidChange(t)), this._register(z.w.onDidChange(t)), this._register(z.g.onDidChange(t)), this._register(z.i.onDidChange(t)), this._register(z.y.onDidChange(t)), this._register(z.q.onDidChange(t)), t()\n        }\n        dispose() {\n            super.dispose()\n        }\n        reset() {\n            this._contextKeyService.bufferChangeEvents(() => {\n                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._isInWalkThrough.reset()\n            })\n        }\n        _update() {\n            const e = this._editor.getModel();\n            e ? this._contextKeyService.bufferChangeEvents(() => {\n                this._langId.set(e.getLanguageId()), this._hasCompletionItemProvider.set(z.d.has(e)), this._hasCodeActionsProvider.set(z.a.has(e)), this._hasCodeLensProvider.set(z.b.has(e)), this._hasDefinitionProvider.set(z.f.has(e)), this._hasDeclarationProvider.set(z.e.has(e)), this._hasImplementationProvider.set(z.p.has(e)), this._hasTypeDefinitionProvider.set(z.B.has(e)), this._hasHoverProvider.set(z.o.has(e)), this._hasDocumentHighlightProvider.set(z.h.has(e)), this._hasDocumentSymbolProvider.set(z.l.has(e)), this._hasReferenceProvider.set(z.v.has(e)), this._hasRenameProvider.set(z.w.has(e)), this._hasSignatureHelpProvider.set(z.y.has(e)), this._hasInlayHintsProvider.set(z.q.has(e)), this._hasDocumentFormattingProvider.set(z.g.has(e) || z.i.has(e)), this._hasDocumentSelectionFormattingProvider.set(z.i.has(e)), this._hasMultipleDocumentFormattingProvider.set(1 < z.g.all(e).length + z.i.all(e).length), this._hasMultipleDocumentSelectionFormattingProvider.set(1 < z.i.all(e).length), this._isInWalkThrough.set(e.uri.scheme === g.c.walkThroughSnippet)\n            }) : this.reset()\n        }\n    }\n    class ha extends v.a {\n        constructor(e) {\n            super(), this._onChange = this._register(new D.b), this.onChange = this._onChange.event, this._hasFocus = !1, this._domFocusTracker = this._register(s.T(e)), this._register(this._domFocusTracker.onDidFocus(() => {\n                this._hasFocus = !0, this._onChange.fire(void 0)\n            })), this._register(this._domFocusTracker.onDidBlur(() => {\n                this._hasFocus = !1, this._onChange.fire(void 0)\n            }))\n        }\n        hasFocus() {\n            return this._hasFocus\n        }\n    }\n    const ua = encodeURIComponent(\"<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 3' enable-background='new 0 0 6 3' height='3' width='6'><g fill='\"),\n        pa = encodeURIComponent(\"'><polygon points='5.5,0 2.5,3 1.1,3 4.1,0'/><polygon points='4,0 6,2 6,0.6 5.4,0'/><polygon points='0,2 1,3 2.4,3 0,0.6'/></g></svg>\");\n\n    function ga(e) {\n        return ua + encodeURIComponent(e.toString()) + pa\n    }\n    const fa = encodeURIComponent('<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"3\" width=\"12\"><g fill=\"'),\n        ma = encodeURIComponent('\"><circle cx=\"1\" cy=\"1\" r=\"1\"/><circle cx=\"5\" cy=\"1\" r=\"1\"/><circle cx=\"9\" cy=\"1\" r=\"1\"/></g></svg>');\n    Object(ir.f)((e, t) => {\n        var i = e.getColor(Ir.s);\n        i && t.addRule(`.monaco-editor .squiggly-error { border-bottom: 4px double ${i}; }`), (i = e.getColor(Ir.t)) && t.addRule(`.monaco-editor .squiggly-error { background: url(\"data:image/svg+xml,${ga(i)}\") repeat-x bottom left; }`), (i = e.getColor(Ir.r)) && t.addRule(`.monaco-editor .squiggly-error::before { display: block; content: ''; width: 100%; height: 100%; background: ${i}; }`), (i = e.getColor(Ir.L)) && t.addRule(`.monaco-editor .squiggly-warning { border-bottom: 4px double ${i}; }`), (i = e.getColor(Ir.M)) && t.addRule(`.monaco-editor .squiggly-warning { background: url(\"data:image/svg+xml,${ga(i)}\") repeat-x bottom left; }`), (i = e.getColor(Ir.K)) && t.addRule(`.monaco-editor .squiggly-warning::before { display: block; content: ''; width: 100%; height: 100%; background: ${i}; }`), (i = e.getColor(Ir.F)) && t.addRule(`.monaco-editor .squiggly-info { border-bottom: 4px double ${i}; }`), (i = e.getColor(Ir.G)) && t.addRule(`.monaco-editor .squiggly-info { background: url(\"data:image/svg+xml,${ga(i)}\") repeat-x bottom left; }`), (i = e.getColor(Ir.E)) && t.addRule(`.monaco-editor .squiggly-info::before { display: block; content: ''; width: 100%; height: 100%; background: ${i}; }`), (i = e.getColor(Ir.B)) && t.addRule(`.monaco-editor .squiggly-hint { border-bottom: 2px dotted ${i}; }`), (i = e.getColor(Ir.C)) && t.addRule(`.monaco-editor .squiggly-hint { background: url(\"data:image/svg+xml,${n=i,fa+encodeURIComponent(n.toString())+ma}\") no-repeat bottom left; }`);\n        var n = e.getColor(tr.F);\n        n && t.addRule(`.monaco-editor.showUnused .squiggly-inline-unnecessary { opacity: ${n.rgba.a}; }`), (n = e.getColor(tr.E)) && t.addRule(`.monaco-editor.showUnused .squiggly-unnecessary { border-bottom: 2px dashed ${n}; }`), e = e.getColor(Ir.A) || \"inherit\", t.addRule(`.monaco-editor.showDeprecated .squiggly-inline-deprecated { text-decoration: line-through; text-decoration-color: ${e}}`)\n    }), i(422);\n    var va = i(142),\n        ba = i(132);\n    const _a = Object(_.c)(\"IEditorCancelService\"),\n        wa = new Yt.c(\"cancellableOperation\", !1, Object(yt.a)(\"cancellableOperation\", \"Whether the editor runs a cancellable operation, e.g. like 'Peek References'\"));\n    Object(ba.b)(_a, class {\n        constructor() {\n            this._tokens = new WeakMap\n        }\n        add(e, t) {\n            let i, n = this._tokens.get(e);\n            return n || (n = e.invokeWithinContext(e => ({\n                key: wa.bindTo(e.get(Yt.b)),\n                tokens: new l.a\n            })), this._tokens.set(e, n)), n.key.set(!0), i = n.tokens.push(t), () => {\n                i && (i(), n.key.set(!n.tokens.isEmpty()), i = void 0)\n            }\n        }\n        cancel(e) {\n            const t = this._tokens.get(e);\n            if (t) {\n                const e = t.tokens.pop();\n                e && (e.cancel(), t.key.set(!t.tokens.isEmpty()))\n            }\n        }\n    }, !0);\n    a.b;\n    Object(Ai.j)(new class extends Ai.c {\n        constructor() {\n            super({\n                id: \"editor.cancelOperation\",\n                kbOpts: {\n                    weight: 100,\n                    primary: 9\n                },\n                precondition: wa\n            })\n        }\n        runEditorCommand(e, t) {\n            e.get(_a).cancel(t)\n        }\n    }), a.b;\n    class ya {\n        constructor(e, t, i) {\n            this._visiblePosition = e, this._visiblePositionScrollDelta = t, this._cursorPosition = i\n        }\n        static capture(e) {\n            let t = null,\n                i = 0;\n            if (0 !== e.getScrollTop()) {\n                const r = e.getVisibleRanges();\n                var n;\n                0 < r.length && (t = r[0].getStartPosition(), n = e.getTopForPosition(t.lineNumber, t.column), i = e.getScrollTop() - n)\n            }\n            return new ya(t, i, e.getPosition())\n        }\n        restore(e) {\n            var t;\n            this._visiblePosition && (t = e.getTopForPosition(this._visiblePosition.lineNumber, this._visiblePosition.column), e.setScrollTop(t + this._visiblePositionScrollDelta))\n        }\n        restoreRelativeVerticalPositionOfCursor(e) {\n            var t = e.getPosition();\n            this._cursorPosition && t && (t = e.getTopForLineNumber(t.lineNumber) - e.getTopForLineNumber(this._cursorPosition.lineNumber), e.setScrollTop(e.getScrollTop() + t))\n        }\n    }\n    i(424);\n    var Ca = i(116),\n        xa = i(71),\n        Sa = i(33),\n        ka = i(87);\n    x = function(e, t, i, n) {\n        var r, o = arguments.length,\n            s = o < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n);\n        else\n            for (var a = e.length - 1; 0 <= a; a--)(r = e[a]) && (s = (o < 3 ? r(s) : 3 < o ? r(t, i, s) : r(t, i)) || s);\n        return 3 < o && s && Object.defineProperty(t, i, s), s\n    }, S = function(e, t) {\n        return function(i, n) {\n            t(i, n, e)\n        }\n    };\n    class La {\n        constructor(e, t, i, n) {\n            this.originalLineStart = e, this.originalLineEnd = t, this.modifiedLineStart = i, this.modifiedLineEnd = n\n        }\n        getType() {\n            return 0 === this.originalLineStart ? 1 : 0 === this.modifiedLineStart ? 2 : 0\n        }\n    }\n    class Oa {\n        constructor(e) {\n            this.entries = e\n        }\n    }\n    const Ea = Object(ka.b)(\"diff-review-insert\", Sa.b.add, yt.a(\"diffReviewInsertIcon\", \"Icon for 'Insert' in diff review.\")),\n        Na = Object(ka.b)(\"diff-review-remove\", Sa.b.remove, yt.a(\"diffReviewRemoveIcon\", \"Icon for 'Remove' in diff review.\")),\n        Da = Object(ka.b)(\"diff-review-close\", Sa.b.close, yt.a(\"diffReviewCloseIcon\", \"Icon for 'Close' in diff review.\"));\n    let Ia = class e extends v.a {\n        constructor(e, t) {\n            super(), this._modeService = t, this._width = 0, this._diffEditor = e, this._isVisible = !1, this.shadow = Object(Ui.b)(document.createElement(\"div\")), this.shadow.setClassName(\"diff-review-shadow\"), this.actionBarContainer = Object(Ui.b)(document.createElement(\"div\")), this.actionBarContainer.setClassName(\"diff-review-actions\"), this._actionBar = this._register(new Ca.a(this.actionBarContainer.domNode)), this._actionBar.push(new xa.a(\"diffreview.close\", yt.a(\"label.close\", \"Close\"), \"close-diff-review \" + ir.d.asClassName(Da), !0, () => function(e, t, i, n) {\n                return new(i = i || Promise)((function(r, o) {\n                    function s(e) {\n                        try {\n                            l(n.next(e))\n                        } catch (e) {\n                            o(e)\n                        }\n                    }\n\n                    function a(e) {\n                        try {\n                            l(n.throw(e))\n                        } catch (e) {\n                            o(e)\n                        }\n                    }\n\n                    function l(e) {\n                        var t;\n                        e.done ? r(e.value) : ((t = e.value) instanceof i ? t : new i((function(e) {\n                            e(t)\n                        }))).then(s, a)\n                    }\n                    l((n = n.apply(e, t || [])).next())\n                }))\n            }(this, void 0, void 0, (function*() {\n                return this.hide()\n            }))), {\n                label: !1,\n                icon: !0\n            }), this.domNode = Object(Ui.b)(document.createElement(\"div\")), this.domNode.setClassName(\"diff-review monaco-editor-background\"), this._content = Object(Ui.b)(document.createElement(\"div\")), this._content.setClassName(\"diff-review-content\"), this._content.setAttribute(\"role\", \"code\"), this.scrollbar = this._register(new Dr.a(this._content.domNode, {})), this.domNode.domNode.appendChild(this.scrollbar.getDomNode()), this._register(e.onDidUpdateDiff(() => {\n                this._isVisible && (this._diffs = this._compute(), this._render())\n            })), this._register(e.getModifiedEditor().onDidChangeCursorPosition(() => {\n                this._isVisible && this._render()\n            })), this._register(s.l(this.domNode.domNode, \"click\", e => {\n                e.preventDefault(), (e = s.u(e.target, \"diff-review-row\")) && this._goToRow(e)\n            })), this._register(s.l(this.domNode.domNode, \"keydown\", e => {\n                (e.equals(18) || e.equals(2066) || e.equals(530)) && (e.preventDefault(), this._goToRow(this._getNextRow())), (e.equals(16) || e.equals(2064) || e.equals(528)) && (e.preventDefault(), this._goToRow(this._getPrevRow())), (e.equals(9) || e.equals(2057) || e.equals(521) || e.equals(1033)) && (e.preventDefault(), this.hide()), (e.equals(10) || e.equals(3)) && (e.preventDefault(), this.accept())\n            })), this._diffs = [], this._currentDiff = null\n        }\n        prev() {\n            let e = 0;\n            if (this._isVisible || (this._diffs = this._compute()), this._isVisible) {\n                let t = -1;\n                for (let e = 0, i = this._diffs.length; e < i; e++)\n                    if (this._diffs[e] === this._currentDiff) {\n                        t = e;\n                        break\n                    } e = this._diffs.length + t - 1\n            } else e = this._findDiffIndex(this._diffEditor.getPosition());\n            var t;\n            0 !== this._diffs.length && (e %= this._diffs.length, t = this._diffs[e].entries, this._diffEditor.setPosition(new Re.a(t[0].modifiedLineStart, 1)), this._diffEditor.setSelection({\n                startColumn: 1,\n                startLineNumber: t[0].modifiedLineStart,\n                endColumn: 1073741824,\n                endLineNumber: t[t.length - 1].modifiedLineEnd\n            }), this._isVisible = !0, this._diffEditor.doLayout(), this._render(), this._goToRow(this._getNextRow()))\n        }\n        next() {\n            let e = 0;\n            if (this._isVisible || (this._diffs = this._compute()), this._isVisible) {\n                let t = -1;\n                for (let e = 0, i = this._diffs.length; e < i; e++)\n                    if (this._diffs[e] === this._currentDiff) {\n                        t = e;\n                        break\n                    } e = t + 1\n            } else e = this._findDiffIndex(this._diffEditor.getPosition());\n            var t;\n            0 !== this._diffs.length && (e %= this._diffs.length, t = this._diffs[e].entries, this._diffEditor.setPosition(new Re.a(t[0].modifiedLineStart, 1)), this._diffEditor.setSelection({\n                startColumn: 1,\n                startLineNumber: t[0].modifiedLineStart,\n                endColumn: 1073741824,\n                endLineNumber: t[t.length - 1].modifiedLineEnd\n            }), this._isVisible = !0, this._diffEditor.doLayout(), this._render(), this._goToRow(this._getNextRow()))\n        }\n        accept() {\n            let e = -1,\n                t = this._getCurrentFocusedRow();\n            var i;\n            t && (i = parseInt(t.getAttribute(\"data-line\"), 10), isNaN(i) || (e = i)), this.hide(), -1 !== e && (this._diffEditor.setPosition(new Re.a(e, 1)), this._diffEditor.revealPosition(new Re.a(e, 1), 1))\n        }\n        hide() {\n            this._isVisible = !1, this._diffEditor.updateOptions({\n                readOnly: !1\n            }), this._diffEditor.focus(), this._diffEditor.doLayout(), this._render()\n        }\n        _getPrevRow() {\n            var e = this._getCurrentFocusedRow();\n            return e ? e.previousElementSibling || e : this._getFirstRow()\n        }\n        _getNextRow() {\n            var e = this._getCurrentFocusedRow();\n            return e ? e.nextElementSibling || e : this._getFirstRow()\n        }\n        _getFirstRow() {\n            return this.domNode.domNode.querySelector(\".diff-review-row\")\n        }\n        _getCurrentFocusedRow() {\n            var e = document.activeElement;\n            return e && /diff-review-row/.test(e.className) ? e : null\n        }\n        _goToRow(e) {\n            let t = this._getCurrentFocusedRow();\n            e.tabIndex = 0, e.focus(), t && t !== e && (t.tabIndex = -1), this.scrollbar.scanDomNode()\n        }\n        isVisible() {\n            return this._isVisible\n        }\n        layout(e, t, i) {\n            this._width = t, this.shadow.setTop(e - 6), this.shadow.setWidth(t), this.shadow.setHeight(this._isVisible ? 6 : 0), this.domNode.setTop(e), this.domNode.setWidth(t), this.domNode.setHeight(i), this._content.setHeight(i), this._content.setWidth(t), this._isVisible ? (this.actionBarContainer.setAttribute(\"aria-hidden\", \"false\"), this.actionBarContainer.setDisplay(\"block\")) : (this.actionBarContainer.setAttribute(\"aria-hidden\", \"true\"), this.actionBarContainer.setDisplay(\"none\"))\n        }\n        _compute() {\n            var t = this._diffEditor.getLineChanges();\n            if (!t || 0 === t.length) return [];\n            const i = this._diffEditor.getOriginalEditor().getModel(),\n                n = this._diffEditor.getModifiedEditor().getModel();\n            return i && n ? e._mergeAdjacent(t, i.getLineCount(), n.getLineCount()) : []\n        }\n        static _mergeAdjacent(e, t, i) {\n            if (!e || 0 === e.length) return [];\n            let n = [],\n                r = 0;\n            for (let g = 0, f = e.length; g < f; g++) {\n                var o = e[g],\n                    s = o.originalStartLineNumber,\n                    a = o.originalEndLineNumber,\n                    l = o.modifiedStartLineNumber,\n                    d = o.modifiedEndLineNumber;\n                let m = [],\n                    v = 0; {\n                    var c, h = 0 === a ? s : s - 1,\n                        u = 0 === d ? l : l - 1;\n                    let t = 1,\n                        i = 1;\n                    0 < g && (t = 0 === (o = e[g - 1]).originalEndLineNumber ? o.originalStartLineNumber + 1 : o.originalEndLineNumber + 1, i = 0 === o.modifiedEndLineNumber ? o.modifiedStartLineNumber + 1 : o.modifiedEndLineNumber + 1);\n                    let n = h - 3 + 1,\n                        r = u - 3 + 1;\n                    n < t && (n += c = t - n, r += c), r < i && (n += c = i - r, r += c), m[v++] = new La(n, h, r, u)\n                }\n                0 !== a && (m[v++] = new La(s, a, 0, 0)), 0 !== d && (m[v++] = new La(0, 0, l, d)); {\n                    var p;\n                    a = 0 === a ? s + 1 : a + 1, l = 0 === d ? l + 1 : d + 1;\n                    let n = t,\n                        r = i;\n                    g + 1 < f && (n = 0 === (d = e[g + 1]).originalEndLineNumber ? d.originalStartLineNumber : d.originalStartLineNumber - 1, r = 0 === d.modifiedEndLineNumber ? d.modifiedStartLineNumber : d.modifiedStartLineNumber - 1);\n                    let o = a + 3 - 1,\n                        c = l + 3 - 1;\n                    o > n && (o += p = n - o, c += p), c > r && (o += p = r - c, c += p), m[v++] = new La(a, o, l, c)\n                }\n                n[r++] = new Oa(m)\n            }\n            let g = n[0].entries,\n                f = [],\n                m = 0;\n            for (let e = 1, t = n.length; e < t; e++) {\n                const t = n[e].entries,\n                    i = g[g.length - 1],\n                    r = t[0];\n                0 === i.getType() && 0 === r.getType() && r.originalLineStart <= i.originalLineEnd ? (g[g.length - 1] = new La(i.originalLineStart, r.originalLineEnd, i.modifiedLineStart, r.modifiedLineEnd), g = g.concat(t.slice(1))) : (f[m++] = new Oa(g), g = t)\n            }\n            return f[m++] = new Oa(g), f\n        }\n        _findDiffIndex(e) {\n            var t = e.lineNumber;\n            for (let e = 0, n = this._diffs.length; e < n; e++) {\n                var i = this._diffs[e].entries;\n                if (t <= i[i.length - 1].modifiedLineEnd) return e\n            }\n            return 0\n        }\n        _render() {\n            var t = this._diffEditor.getOriginalEditor().getOptions();\n            const i = this._diffEditor.getModifiedEditor().getOptions(),\n                n = this._diffEditor.getOriginalEditor().getModel(),\n                r = this._diffEditor.getModifiedEditor().getModel();\n            var o = n.getOptions(),\n                a = r.getOptions();\n            if (!this._isVisible || !n || !r) return s.q(this._content.domNode), this._currentDiff = null, void this.scrollbar.scanDomNode();\n            this._diffEditor.updateOptions({\n                readOnly: !0\n            });\n            var l = this._findDiffIndex(this._diffEditor.getPosition());\n            if (this._diffs[l] !== this._currentDiff) {\n                this._currentDiff = this._diffs[l];\n                var d = this._diffs[l].entries;\n                let _ = document.createElement(\"div\");\n                _.className = \"diff-review-table\", _.setAttribute(\"role\", \"list\"), _.setAttribute(\"aria-label\", 'Difference review. Use \"Stage | Unstage | Revert Selected Ranges\" commands'), zi.applyFontInfoSlow(_, i.get(43));\n                let w = 0,\n                    y = 0,\n                    C = 0,\n                    x = 0;\n                for (let e = 0, t = d.length; e < t; e++) {\n                    var c = (p = d[e]).originalLineStart,\n                        h = p.originalLineEnd,\n                        u = p.modifiedLineStart,\n                        p = p.modifiedLineEnd;\n                    0 !== c && (0 === w || c < w) && (w = c), 0 !== h && (0 === y || h > y) && (y = h), 0 !== u && (0 === C || u < C) && (C = u), 0 !== p && (0 === x || p > x) && (x = p)\n                }\n                let S = document.createElement(\"div\");\n                S.className = \"diff-review-row\";\n                let k = document.createElement(\"div\");\n                k.className = \"diff-review-cell diff-review-summary\";\n                var g = y - w + 1,\n                    f = x - C + 1;\n                k.appendChild(document.createTextNode(`${l+1}/${this._diffs.length}: @@ -${w},${g} +${C},${f} @@`)), S.setAttribute(\"data-line\", String(C));\n                var m = e => 0 === e ? yt.a(\"no_lines_changed\", \"no lines changed\") : 1 === e ? yt.a(\"one_line_changed\", \"1 line changed\") : yt.a(\"more_lines_changed\", \"{0} lines changed\", e);\n                g = m(g), f = m(f);\n                S.setAttribute(\"aria-label\", yt.a({\n                    key: \"header\",\n                    comment: [\"This is the ARIA label for a git diff header.\", \"A git diff header looks like this: @@ -154,12 +159,39 @@.\", \"That encodes that at original line 154 (which is now line 159), 12 lines were removed/changed with 39 lines.\", \"Variables 0 and 1 refer to the diff index out of total number of diffs.\", \"Variables 2 and 4 will be numbers (a line number).\", 'Variables 3 and 5 will be \"no lines changed\", \"1 line changed\" or \"X lines changed\", localized separately.']\n                }, \"Difference {0} of {1}: original line {2}, {3}, modified line {4}, {5}\", l + 1, this._diffs.length, w, g, C, f)), S.appendChild(k), S.setAttribute(\"role\", \"listitem\"), _.appendChild(S);\n                var v = i.get(58);\n                let L = C;\n                for (let s = 0, l = d.length; s < l; s++) {\n                    var b = d[s];\n                    e._renderSection(_, b, L, v, this._width, t, n, o, i, r, a, this._modeService.languageIdCodec), 0 !== b.modifiedLineStart && (L = b.modifiedLineEnd)\n                }\n                s.q(this._content.domNode), this._content.domNode.appendChild(_), this.scrollbar.scanDomNode()\n            }\n        }\n        static _renderSection(t, i, n, r, o, s, a, l, d, c, h, u) {\n            var p = i.getType();\n            let g = \"diff-review-row\",\n                f = \"\",\n                m = null;\n            switch (p) {\n                case 1:\n                    g = \"diff-review-row line-insert\", f = \" char-insert\", m = Ea;\n                    break;\n                case 2:\n                    g = \"diff-review-row line-delete\", f = \" char-delete\", m = Na\n            }\n            var v = i.originalLineStart,\n                b = i.originalLineEnd,\n                _ = i.modifiedLineStart,\n                w = (i = i.modifiedLineEnd, Math.max(i - _, b - v)),\n                y = (b = s.get(129)).glyphMarginWidth + b.lineNumbersWidth,\n                C = 10 + (b = d.get(129)).glyphMarginWidth + b.lineNumbersWidth;\n            for (let i = 0; i <= w; i++) {\n                var x = 0 === v ? 0 : v + i,\n                    S = 0 === _ ? 0 : _ + i;\n                const b = document.createElement(\"div\");\n                b.style.minWidth = o + \"px\", b.className = g, b.setAttribute(\"role\", \"listitem\"), 0 !== S && (n = S), b.setAttribute(\"data-line\", String(n));\n                let w = document.createElement(\"div\");\n                w.className = \"diff-review-cell\", w.style.height = r + \"px\", b.appendChild(w);\n                const k = document.createElement(\"span\");\n                k.style.width = y + \"px\", k.style.minWidth = y + \"px\", k.className = \"diff-review-line-number\" + f, 0 !== x ? k.appendChild(document.createTextNode(String(x))) : k.innerText = \" \", w.appendChild(k);\n                const L = document.createElement(\"span\");\n                L.style.width = C + \"px\", L.style.minWidth = C + \"px\", L.style.paddingRight = \"10px\", L.className = \"diff-review-line-number\" + f, 0 !== S ? L.appendChild(document.createTextNode(String(S))) : L.innerText = \" \", w.appendChild(L);\n                const O = document.createElement(\"span\");\n                if (O.className = \"diff-review-spacer\", m) {\n                    const e = document.createElement(\"span\");\n                    e.className = ir.d.asClassName(m), e.innerText = \"  \", O.appendChild(e)\n                } else O.innerText = \"  \";\n                let E;\n                if (w.appendChild(O), 0 !== S) {\n                    let t = this._renderLine(c, d, h.tabSize, S, u);\n                    e._ttPolicy && (t = e._ttPolicy.createHTML(t)), w.insertAdjacentHTML(\"beforeend\", t), E = c.getLineContent(S)\n                } else {\n                    let t = this._renderLine(a, s, l.tabSize, x, u);\n                    e._ttPolicy && (t = e._ttPolicy.createHTML(t)), w.insertAdjacentHTML(\"beforeend\", t), E = a.getLineContent(x)\n                }\n                0 === E.length && (E = yt.a(\"blankLine\", \"blank\"));\n                let N = \"\";\n                switch (p) {\n                    case 0:\n                        N = x === S ? yt.a({\n                            key: \"unchangedLine\",\n                            comment: [\"The placeholders are contents of the line and should not be translated.\"]\n                        }, \"{0} unchanged line {1}\", E, x) : yt.a(\"equalLine\", \"{0} original line {1} modified line {2}\", E, x, S);\n                        break;\n                    case 1:\n                        N = yt.a(\"insertLine\", \"+ {0} modified line {1}\", E, S);\n                        break;\n                    case 2:\n                        N = yt.a(\"deleteLine\", \"- {0} original line {1}\", E, x)\n                }\n                b.setAttribute(\"aria-label\", N), t.appendChild(b)\n            }\n        }\n        static _renderLine(e, t, i, r, o) {\n            var s = e.getLineContent(r),\n                a = t.get(43);\n            r = we.a.createEmpty(s, o), o = ze.isBasicASCII(s, e.mightContainNonBasicASCII()), e = ze.containsRTL(s, o, e.mightContainRTL());\n            return Me(new Oe(a.isMonospace && !t.get(29), a.canUseHalfwidthRightwardsArrow, s, !1, o, e, 0, r, [], i, 0, a.spaceWidth, a.middotWidth, a.wsmiddotWidth, t.get(104), t.get(87), t.get(82), t.get(44) !== n.e.OFF, null)).html\n        }\n    };\n    Ia._ttPolicy = null === (gi = window.trustedTypes) || void 0 === gi ? void 0 : gi.createPolicy(\"diffReview\", {\n        createHTML: e => e\n    }), Ia = x([S(1, K.a)], Ia), Object(ir.f)((e, t) => {\n        var i = e.getColor(tr.A);\n        i && t.addRule(`.monaco-diff-editor .diff-review-line-number { color: ${i}; }`), (e = e.getColor(Ir.fc)) && t.addRule(`.monaco-diff-editor .diff-review-shadow { box-shadow: ${e} 0 -6px 6px -6px inset; }`)\n    });\n    class Ta extends Ai.b {\n        constructor() {\n            super({\n                id: \"editor.action.diffReview.next\",\n                label: yt.a(\"editor.action.diffReview.next\", \"Go to Next Difference\"),\n                alias: \"Go to Next Difference\",\n                precondition: Yt.a.has(\"isInDiffEditor\"),\n                kbOpts: {\n                    kbExpr: null,\n                    primary: 65,\n                    weight: 100\n                }\n            })\n        }\n        run(e, t) {\n            const i = Pa(e);\n            i && i.diffReviewNext()\n        }\n    }\n    class Ma extends Ai.b {\n        constructor() {\n            super({\n                id: \"editor.action.diffReview.prev\",\n                label: yt.a(\"editor.action.diffReview.prev\", \"Go to Previous Difference\"),\n                alias: \"Go to Previous Difference\",\n                precondition: Yt.a.has(\"isInDiffEditor\"),\n                kbOpts: {\n                    kbExpr: null,\n                    primary: 1089,\n                    weight: 100\n                }\n            })\n        }\n        run(e, t) {\n            const i = Pa(e);\n            i && i.diffReviewPrev()\n        }\n    }\n\n    function Pa(e) {\n        const t = e.get(o.a);\n        var i = t.listDiffEditors();\n        const n = t.getActiveCodeEditor();\n        if (!n) return null;\n        for (let e = 0, t = i.length; e < t; e++) {\n            const t = i[e];\n            if (t.getModifiedEditor().getId() === n.getId() || t.getOriginalEditor().getId() === n.getId()) return t\n        }\n        return null\n    }\n    Object(Ai.i)(Ta), Object(Ai.i)(Ma);\n    var Aa = i(94),\n        Ra = function(e, t, i, n) {\n            return new(i = i || Promise)((function(r, o) {\n                function s(e) {\n                    try {\n                        l(n.next(e))\n                    } catch (e) {\n                        o(e)\n                    }\n                }\n\n                function a(e) {\n                    try {\n                        l(n.throw(e))\n                    } catch (e) {\n                        o(e)\n                    }\n                }\n\n                function l(e) {\n                    var t;\n                    e.done ? r(e.value) : ((t = e.value) instanceof i ? t : new i((function(e) {\n                        e(t)\n                    }))).then(s, a)\n                }\n                l((n = n.apply(e, t || [])).next())\n            }))\n        };\n    class Fa extends v.a {\n        constructor(e, t, i, n, r, o) {\n            super(), this._viewZoneId = e, this._marginDomNode = t, this.editor = i, this.diff = n, this._contextMenuService = r, this._clipboardService = o, this._visibility = !1, this._marginDomNode.style.zIndex = \"10\", this._diffActions = document.createElement(\"div\"), this._diffActions.className = Sa.b.lightBulb.classNames + \" lightbulb-glyph\", this._diffActions.style.position = \"absolute\";\n            const a = i.getOption(58),\n                l = i.getModel().getEOL();\n            this._diffActions.style.right = \"0px\", this._diffActions.style.visibility = \"hidden\", this._diffActions.style.height = a + \"px\", this._diffActions.style.lineHeight = a + \"px\", this._marginDomNode.appendChild(this._diffActions);\n            const d = [],\n                c = 0 === n.modifiedEndLineNumber;\n            d.push(new xa.a(\"diff.clipboard.copyDeletedContent\", c ? n.originalEndLineNumber > n.modifiedStartLineNumber ? yt.a(\"diff.clipboard.copyDeletedLinesContent.label\", \"Copy deleted lines\") : yt.a(\"diff.clipboard.copyDeletedLinesContent.single.label\", \"Copy deleted line\") : n.originalEndLineNumber > n.modifiedStartLineNumber ? yt.a(\"diff.clipboard.copyChangedLinesContent.label\", \"Copy changed lines\") : yt.a(\"diff.clipboard.copyChangedLinesContent.single.label\", \"Copy changed line\"), void 0, !0, () => Ra(this, void 0, void 0, (function*() {\n                var e = new T.a(n.originalStartLineNumber, 1, n.originalEndLineNumber + 1, 1);\n                e = n.originalModel.getValueInRange(e);\n                yield this._clipboardService.writeText(e)\n            }))));\n            let h = 0,\n                u = void 0;\n            n.originalEndLineNumber > n.modifiedStartLineNumber && (u = new xa.a(\"diff.clipboard.copyDeletedLineContent\", c ? yt.a(\"diff.clipboard.copyDeletedLineContent.label\", \"Copy deleted line ({0})\", n.originalStartLineNumber) : yt.a(\"diff.clipboard.copyChangedLineContent.label\", \"Copy changed line ({0})\", n.originalStartLineNumber), void 0, !0, () => Ra(this, void 0, void 0, (function*() {\n                var e, t = n.originalModel.getLineContent(n.originalStartLineNumber + h);\n                \"\" === t ? (e = n.originalModel.getEndOfLineSequence(), yield this._clipboardService.writeText(0 === e ? \"\\n\" : \"\\r\\n\")) : yield this._clipboardService.writeText(t)\n            }))), d.push(u)), i.getOption(80) || d.push(new xa.a(\"diff.inline.revertChange\", yt.a(\"diff.inline.revertChange.label\", \"Revert this change\"), void 0, !0, () => Ra(this, void 0, void 0, (function*() {\n                var e, t = new T.a(n.originalStartLineNumber, 1, n.originalEndLineNumber, n.originalModel.getLineMaxColumn(n.originalEndLineNumber));\n                t = n.originalModel.getValueInRange(t);\n                0 === n.modifiedEndLineNumber ? (e = i.getModel().getLineMaxColumn(n.modifiedStartLineNumber), i.executeEdits(\"diffEditor\", [{\n                    range: new T.a(n.modifiedStartLineNumber, e, n.modifiedStartLineNumber, e),\n                    text: l + t\n                }])) : (e = i.getModel().getLineMaxColumn(n.modifiedEndLineNumber), i.executeEdits(\"diffEditor\", [{\n                    range: new T.a(n.modifiedStartLineNumber, 1, n.modifiedEndLineNumber, e),\n                    text: t\n                }]))\n            }))));\n            const p = (e, t) => {\n                this._contextMenuService.showContextMenu({\n                    getAnchor: () => ({\n                        x: e,\n                        y: t\n                    }),\n                    getActions: () => (u && (u.label = c ? yt.a(\"diff.clipboard.copyDeletedLineContent.label\", \"Copy deleted line ({0})\", n.originalStartLineNumber + h) : yt.a(\"diff.clipboard.copyChangedLineContent.label\", \"Copy changed line ({0})\", n.originalStartLineNumber + h)), d),\n                    autoSelectFirstItem: !0\n                })\n            };\n            this._register(s.l(this._diffActions, \"mousedown\", e => {\n                var {\n                    top: t,\n                    height: i\n                } = s.A(this._diffActions), n = Math.floor(a / 3);\n                e.preventDefault(), p(e.posx, t + i + n)\n            })), this._register(i.onMouseMove(e => {\n                8 !== e.target.type && 5 !== e.target.type || e.target.detail.viewZoneId !== this._viewZoneId ? this.visibility = !1 : (this.visibility = !0, h = this._updateLightBulbPosition(this._marginDomNode, e.event.browserEvent.y, a))\n            })), this._register(i.onMouseDown(e => {\n                e.event.rightButton && (8 !== e.target.type && 5 !== e.target.type || e.target.detail.viewZoneId === this._viewZoneId && (e.event.preventDefault(), h = this._updateLightBulbPosition(this._marginDomNode, e.event.browserEvent.y, a), p(e.event.posx, e.event.posy + a)))\n            }))\n        }\n        get visibility() {\n            return this._visibility\n        }\n        set visibility(e) {\n            this._visibility !== e && (this._visibility = e, this._diffActions.style.visibility = e ? \"visible\" : \"hidden\")\n        }\n        _updateLightBulbPosition(e, t, i) {\n            var {\n                top: e\n            } = s.A(e), n = Math.floor((t - e) / i);\n            if (this._diffActions.style.top = n * i + \"px\", this.diff.viewLineCounts) {\n                let e = 0;\n                for (let t = 0; t < this.diff.viewLineCounts.length; t++)\n                    if (e += this.diff.viewLineCounts[t], n < e) return t\n            }\n            return n\n        }\n    }\n    var ja = i(117);\n    Object.freeze({\n        report() {}\n    });\n    const Ba = Object(_.c)(\"editorProgressService\");\n    t = function(e, t, i, n) {\n        var r, o = arguments.length,\n            s = o < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n);\n        else\n            for (var a = e.length - 1; 0 <= a; a--)(r = e[a]) && (s = (o < 3 ? r(s) : 3 < o ? r(t, i, s) : r(t, i)) || s);\n        return 3 < o && s && Object.defineProperty(t, i, s), s\n    }, ae = function(e, t) {\n        return function(i, n) {\n            t(i, n, e)\n        }\n    };\n    class Va {\n        constructor(e, t) {\n            this._contextMenuService = e, this._clipboardService = t, this._zones = [], this._inlineDiffMargins = [], this._zonesMap = {}, this._decorations = []\n        }\n        getForeignViewZones(e) {\n            return e.filter(e => !this._zonesMap[String(e.id)])\n        }\n        clean(e) {\n            0 < this._zones.length && e.changeViewZones(e => {\n                for (const t of this._zones) e.removeZone(t)\n            }), this._zones = [], this._zonesMap = {}, this._decorations = e.deltaDecorations(this._decorations, [])\n        }\n        apply(e, t, i, n) {\n            const r = n ? ya.capture(e) : null;\n            e.changeViewZones(t => {\n                var n;\n                for (const e of this._zones) t.removeZone(e);\n                for (const e of this._inlineDiffMargins) e.dispose();\n                this._zones = [], this._zonesMap = {}, this._inlineDiffMargins = [];\n                for (let o = 0, s = i.zones.length; o < s; o++) {\n                    const s = i.zones[o];\n                    s.suppressMouseDown = !0;\n                    var r = t.addZone(s);\n                    this._zones.push(r), this._zonesMap[String(r)] = !0, i.zones[o].diff && s.marginDomNode && (s.suppressMouseDown = !1, 0 !== (null === (n = i.zones[o].diff) || void 0 === n ? void 0 : n.originalModel.getValueLength()) && this._inlineDiffMargins.push(new Fa(r, s.marginDomNode, e, i.zones[o].diff, this._contextMenuService, this._clipboardService)))\n                }\n            }), r && r.restore(e), this._decorations = e.deltaDecorations(this._decorations, i.decorations), t && t.setZones(i.overviewZones)\n        }\n    }\n    let Wa = 0;\n    gi = Object(ka.b)(\"diff-insert\", Sa.b.add, yt.a(\"diffInsertIcon\", \"Line decoration for inserts in the diff editor.\"));\n    const za = Object(ka.b)(\"diff-remove\", Sa.b.remove, yt.a(\"diffRemoveIcon\", \"Line decoration for removals in the diff editor.\")),\n        Ha = null === (x = window.trustedTypes) || void 0 === x ? void 0 : x.createPolicy(\"diffEditorWidget\", {\n            createHTML: e => e\n        });\n    let Ua = class e extends v.a {\n        constructor(t, i, n, r, o, a, l, d, c, h, u, p) {\n            super(), this._editorProgressService = p, this._onDidDispose = this._register(new D.b), this.onDidDispose = this._onDidDispose.event, this._onDidUpdateDiff = this._register(new D.b), this.onDidUpdateDiff = this._onDidUpdateDiff.event, this._onDidContentSizeChange = this._register(new D.b), this._lastOriginalWarning = null, this._lastModifiedWarning = null, this._editorWorkerService = o, this._codeEditorService = d, this._contextKeyService = this._register(a.createScoped(t)), this._instantiationService = l.createChild(new Us([Yt.b, this._contextKeyService])), this._contextKeyService.createKey(\"isInDiffEditor\", !0), this._themeService = c, this._notificationService = h, this._id = ++Wa, this._state = 0, this._updatingDiffProgress = null, this._domElement = t, this._options = rl(i = i || {}, {\n                enableSplitViewResizing: !0,\n                renderSideBySide: !0,\n                maxComputationTime: 5e3,\n                maxFileSize: 50,\n                ignoreTrimWhitespace: !0,\n                renderIndicators: !0,\n                originalEditable: !1,\n                diffCodeLens: !1,\n                renderOverviewRuler: !0,\n                diffWordWrap: \"inherit\"\n            }), void 0 !== i.isInEmbeddedEditor ? this._contextKeyService.createKey(\"isInEmbeddedDiffEditor\", i.isInEmbeddedEditor) : this._contextKeyService.createKey(\"isInEmbeddedDiffEditor\", !1), this._updateDecorationsRunner = this._register(new q.e(() => this._updateDecorations(), 0)), this._containerDomElement = document.createElement(\"div\"), this._containerDomElement.className = e._getClassName(this._themeService.getColorTheme(), this._options.renderSideBySide), this._containerDomElement.style.position = \"relative\", this._containerDomElement.style.height = \"100%\", this._domElement.appendChild(this._containerDomElement), this._overviewViewportDomElement = Object(Ui.b)(document.createElement(\"div\")), this._overviewViewportDomElement.setClassName(\"diffViewport\"), this._overviewViewportDomElement.setPosition(\"absolute\"), this._overviewDomElement = document.createElement(\"div\"), this._overviewDomElement.className = \"diffOverview\", this._overviewDomElement.style.position = \"absolute\", this._overviewDomElement.appendChild(this._overviewViewportDomElement.domNode), this._register(s.l(this._overviewDomElement, \"mousedown\", e => {\n                this._modifiedEditor.delegateVerticalScrollbarMouseDown(e)\n            })), this._options.renderOverviewRuler && this._containerDomElement.appendChild(this._overviewDomElement), this._originalDomNode = document.createElement(\"div\"), this._originalDomNode.className = \"editor original\", this._originalDomNode.style.position = \"absolute\", this._originalDomNode.style.height = \"100%\", this._containerDomElement.appendChild(this._originalDomNode), this._modifiedDomNode = document.createElement(\"div\"), this._modifiedDomNode.className = \"editor modified\", this._modifiedDomNode.style.position = \"absolute\", this._modifiedDomNode.style.height = \"100%\", this._containerDomElement.appendChild(this._modifiedDomNode), this._beginUpdateDecorationsTimeout = -1, this._currentlyChangingViewZones = !1, this._diffComputationToken = 0, this._originalEditorState = new Va(u, r), this._modifiedEditorState = new Va(u, r), this._isVisible = !0, this._isHandlingScrollEvent = !1, this._elementSizeObserver = this._register(new Bi(this._containerDomElement, i.dimension, () => this._onDidContainerSizeChanged())), i.automaticLayout && this._elementSizeObserver.startObserving(), this._diffComputationResult = null, this._originalEditor = this._createLeftHandSideEditor(i, n.originalEditor || {}), this._modifiedEditor = this._createRightHandSideEditor(i, n.modifiedEditor || {}), this._originalOverviewRuler = null, this._modifiedOverviewRuler = null, this._reviewPane = l.createInstance(Ia, this), this._containerDomElement.appendChild(this._reviewPane.domNode.domNode), this._containerDomElement.appendChild(this._reviewPane.shadow.domNode), this._containerDomElement.appendChild(this._reviewPane.actionBarContainer.domNode), this._options.renderSideBySide ? this._setStrategy(new Za(this._createDataSource(), this._options.enableSplitViewResizing)) : this._setStrategy(new Qa(this._createDataSource(), this._options.enableSplitViewResizing)), this._register(c.onDidColorThemeChange(t => {\n                this._strategy && this._strategy.applyColors(t) && this._updateDecorationsRunner.schedule(), this._containerDomElement.className = e._getClassName(this._themeService.getColorTheme(), this._options.renderSideBySide)\n            }));\n            for (const e of Ai.d.getDiffEditorContributions()) try {\n                this._register(l.createInstance(e.ctor, this))\n            } catch (t) {\n                Object(se.f)(t)\n            }\n            this._codeEditorService.addDiffEditor(this)\n        }\n        _setState(e) {\n            this._state !== e && (this._state = e, this._updatingDiffProgress && (this._updatingDiffProgress.done(), this._updatingDiffProgress = null), 1 === this._state && (this._updatingDiffProgress = this._editorProgressService.show(!0, 1e3)))\n        }\n        diffReviewNext() {\n            this._reviewPane.next()\n        }\n        diffReviewPrev() {\n            this._reviewPane.prev()\n        }\n        static _getClassName(e, t) {\n            let i = \"monaco-diff-editor monaco-editor-background \";\n            return t && (i += \"side-by-side \"), i += Object(ir.e)(e.type), i\n        }\n        _recreateOverviewRulers() {\n            this._options.renderOverviewRuler && (this._originalOverviewRuler && (this._overviewDomElement.removeChild(this._originalOverviewRuler.getDomNode()), this._originalOverviewRuler.dispose()), this._originalEditor.hasModel() && (this._originalOverviewRuler = this._originalEditor.createOverviewRuler(\"original diffOverviewRuler\"), this._overviewDomElement.appendChild(this._originalOverviewRuler.getDomNode())), this._modifiedOverviewRuler && (this._overviewDomElement.removeChild(this._modifiedOverviewRuler.getDomNode()), this._modifiedOverviewRuler.dispose()), this._modifiedEditor.hasModel() && (this._modifiedOverviewRuler = this._modifiedEditor.createOverviewRuler(\"modified diffOverviewRuler\"), this._overviewDomElement.appendChild(this._modifiedOverviewRuler.getDomNode())), this._layoutOverviewRulers())\n        }\n        _createLeftHandSideEditor(t, i) {\n            const n = this._createInnerEditor(this._instantiationService, this._originalDomNode, this._adjustOptionsForLeftHandSide(t), i);\n            this._register(n.onDidScrollChange(e => {\n                this._isHandlingScrollEvent || (e.scrollTopChanged || e.scrollLeftChanged || e.scrollHeightChanged) && (this._isHandlingScrollEvent = !0, this._modifiedEditor.setScrollPosition({\n                    scrollLeft: e.scrollLeft,\n                    scrollTop: e.scrollTop\n                }), this._isHandlingScrollEvent = !1, this._layoutOverviewViewport())\n            })), this._register(n.onDidChangeViewZones(() => {\n                this._onViewZonesChanged()\n            })), this._register(n.onDidChange配置(e => {\n                n.getModel() && (e.hasChanged(43) && this._updateDecorationsRunner.schedule(), e.hasChanged(130) && (this._updateDecorationsRunner.cancel(), this._updateDecorations()))\n            })), this._register(n.onDidChangeHiddenAreas(() => {\n                this._updateDecorationsRunner.cancel(), this._updateDecorations()\n            })), this._register(n.onDidChangeModelContent(() => {\n                this._isVisible && this._beginUpdateDecorationsSoon()\n            }));\n            const r = this._contextKeyService.createKey(\"isInDiffLeftEditor\", n.hasWidgetFocus());\n            return this._register(n.onDidFocusEditorWidget(() => r.set(!0))), this._register(n.onDidBlurEditorWidget(() => r.set(!1))), this._register(n.onDidContentSizeChange(t => {\n                var i = this._originalEditor.getContentWidth() + this._modifiedEditor.getContentWidth() + e.ONE_OVERVIEW_WIDTH,\n                    n = Math.max(this._modifiedEditor.getContentHeight(), this._originalEditor.getContentHeight());\n                this._onDidContentSizeChange.fire({\n                    contentHeight: n,\n                    contentWidth: i,\n                    contentHeightChanged: t.contentHeightChanged,\n                    contentWidthChanged: t.contentWidthChanged\n                })\n            })), n\n        }\n        _createRightHandSideEditor(t, i) {\n            const n = this._createInnerEditor(this._instantiationService, this._modifiedDomNode, this._adjustOptionsForRightHandSide(t), i);\n            this._register(n.onDidScrollChange(e => {\n                this._isHandlingScrollEvent || (e.scrollTopChanged || e.scrollLeftChanged || e.scrollHeightChanged) && (this._isHandlingScrollEvent = !0, this._originalEditor.setScrollPosition({\n                    scrollLeft: e.scrollLeft,\n                    scrollTop: e.scrollTop\n                }), this._isHandlingScrollEvent = !1, this._layoutOverviewViewport())\n            })), this._register(n.onDidChangeViewZones(() => {\n                this._onViewZonesChanged()\n            })), this._register(n.onDidChange配置(e => {\n                n.getModel() && (e.hasChanged(43) && this._updateDecorationsRunner.schedule(), e.hasChanged(130) && (this._updateDecorationsRunner.cancel(), this._updateDecorations()))\n            })), this._register(n.onDidChangeHiddenAreas(() => {\n                this._updateDecorationsRunner.cancel(), this._updateDecorations()\n            })), this._register(n.onDidChangeModelContent(() => {\n                this._isVisible && this._beginUpdateDecorationsSoon()\n            })), this._register(n.onDidChangeModelOptions(e => {\n                e.tabSize && this._updateDecorationsRunner.schedule()\n            }));\n            const r = this._contextKeyService.createKey(\"isInDiffRightEditor\", n.hasWidgetFocus());\n            return this._register(n.onDidFocusEditorWidget(() => r.set(!0))), this._register(n.onDidBlurEditorWidget(() => r.set(!1))), this._register(n.onDidContentSizeChange(t => {\n                var i = this._originalEditor.getContentWidth() + this._modifiedEditor.getContentWidth() + e.ONE_OVERVIEW_WIDTH,\n                    n = Math.max(this._modifiedEditor.getContentHeight(), this._originalEditor.getContentHeight());\n                this._onDidContentSizeChange.fire({\n                    contentHeight: n,\n                    contentWidth: i,\n                    contentHeightChanged: t.contentHeightChanged,\n                    contentWidthChanged: t.contentWidthChanged\n                })\n            })), n\n        }\n        _createInnerEditor(e, t, i, n) {\n            return e.createInstance(aa, t, i, n)\n        }\n        dispose() {\n            this._codeEditorService.removeDiffEditor(this), -1 !== this._beginUpdateDecorationsTimeout && (window.clearTimeout(this._beginUpdateDecorationsTimeout), this._beginUpdateDecorationsTimeout = -1), this._cleanViewZonesAndDecorations(), this._originalOverviewRuler && (this._overviewDomElement.removeChild(this._originalOverviewRuler.getDomNode()), this._originalOverviewRuler.dispose()), this._modifiedOverviewRuler && (this._overviewDomElement.removeChild(this._modifiedOverviewRuler.getDomNode()), this._modifiedOverviewRuler.dispose()), this._overviewDomElement.removeChild(this._overviewViewportDomElement.domNode), this._options.renderOverviewRuler && this._containerDomElement.removeChild(this._overviewDomElement), this._containerDomElement.removeChild(this._originalDomNode), this._originalEditor.dispose(), this._containerDomElement.removeChild(this._modifiedDomNode), this._modifiedEditor.dispose(), this._strategy.dispose(), this._containerDomElement.removeChild(this._reviewPane.domNode.domNode), this._containerDomElement.removeChild(this._reviewPane.shadow.domNode), this._containerDomElement.removeChild(this._reviewPane.actionBarContainer.domNode), this._reviewPane.dispose(), this._domElement.removeChild(this._containerDomElement), this._onDidDispose.fire(), super.dispose()\n        }\n        getId() {\n            return this.getEditorType() + \":\" + this._id\n        }\n        getEditorType() {\n            return V.IDiffEditor\n        }\n        getLineChanges() {\n            return this._diffComputationResult ? this._diffComputationResult.changes : null\n        }\n        getOriginalEditor() {\n            return this._originalEditor\n        }\n        getModifiedEditor() {\n            return this._modifiedEditor\n        }\n        updateOptions(t) {\n            var i = rl(t, this._options),\n                n = {\n                    enableSplitViewResizing: (n = this._options).enableSplitViewResizing !== i.enableSplitViewResizing,\n                    renderSideBySide: n.renderSideBySide !== i.renderSideBySide,\n                    maxComputationTime: n.maxComputationTime !== i.maxComputationTime,\n                    maxFileSize: n.maxFileSize !== i.maxFileSize,\n                    ignoreTrimWhitespace: n.ignoreTrimWhitespace !== i.ignoreTrimWhitespace,\n                    renderIndicators: n.renderIndicators !== i.renderIndicators,\n                    originalEditable: n.originalEditable !== i.originalEditable,\n                    diffCodeLens: n.diffCodeLens !== i.diffCodeLens,\n                    renderOverviewRuler: n.renderOverviewRuler !== i.renderOverviewRuler,\n                    diffWordWrap: n.diffWordWrap !== i.diffWordWrap\n                };\n            this._options = i, i = this._isVisible && (n.maxComputationTime || n.maxFileSize), n.ignoreTrimWhitespace || n.renderIndicators ? this._beginUpdateDecorations() : i && this._beginUpdateDecorationsSoon(), this._modifiedEditor.updateOptions(this._adjustOptionsForRightHandSide(t)), this._originalEditor.updateOptions(this._adjustOptionsForLeftHandSide(t)), this._strategy.setEnableSplitViewResizing(this._options.enableSplitViewResizing), n.renderSideBySide && (this._options.renderSideBySide ? this._setStrategy(new Za(this._createDataSource(), this._options.enableSplitViewResizing)) : this._setStrategy(new Qa(this._createDataSource(), this._options.enableSplitViewResizing)), this._containerDomElement.className = e._getClassName(this._themeService.getColorTheme(), this._options.renderSideBySide)), n.renderOverviewRuler && (this._options.renderOverviewRuler ? this._containerDomElement.appendChild(this._overviewDomElement) : this._containerDomElement.removeChild(this._overviewDomElement))\n        }\n        getModel() {\n            return {\n                original: this._originalEditor.getModel(),\n                modified: this._modifiedEditor.getModel()\n            }\n        }\n        setModel(e) {\n            if (e && (!e.original || !e.modified)) throw new Error(e.original ? \"DiffEditorWidget.setModel: Modified model is null\" : \"DiffEditorWidget.setModel: Original model is null\");\n            this._cleanViewZonesAndDecorations(), this._originalEditor.setModel(e ? e.original : null), this._modifiedEditor.setModel(e ? e.modified : null), this._updateDecorationsRunner.cancel(), e && (this._originalEditor.setScrollTop(0), this._modifiedEditor.setScrollTop(0)), this._diffComputationResult = null, this._diffComputationToken++, this._setState(0), e && (this._recreateOverviewRulers(), this._beginUpdateDecorations()), this._layoutOverviewViewport()\n        }\n        getDomNode() {\n            return this._domElement\n        }\n        getVisibleColumnFromPosition(e) {\n            return this._modifiedEditor.getVisibleColumnFromPosition(e)\n        }\n        getPosition() {\n            return this._modifiedEditor.getPosition()\n        }\n        setPosition(e) {\n            this._modifiedEditor.setPosition(e)\n        }\n        revealLine(e, t = 0) {\n            this._modifiedEditor.revealLine(e, t)\n        }\n        revealLineInCenter(e, t = 0) {\n            this._modifiedEditor.revealLineInCenter(e, t)\n        }\n        revealLineInCenterIfOutsideViewport(e, t = 0) {\n            this._modifiedEditor.revealLineInCenterIfOutsideViewport(e, t)\n        }\n        revealLineNearTop(e, t = 0) {\n            this._modifiedEditor.revealLineNearTop(e, t)\n        }\n        revealPosition(e, t = 0) {\n            this._modifiedEditor.revealPosition(e, t)\n        }\n        revealPositionInCenter(e, t = 0) {\n            this._modifiedEditor.revealPositionInCenter(e, t)\n        }\n        revealPositionInCenterIfOutsideViewport(e, t = 0) {\n            this._modifiedEditor.revealPositionInCenterIfOutsideViewport(e, t)\n        }\n        revealPositionNearTop(e, t = 0) {\n            this._modifiedEditor.revealPositionNearTop(e, t)\n        }\n        getSelection() {\n            return this._modifiedEditor.getSelection()\n        }\n        getSelections() {\n            return this._modifiedEditor.getSelections()\n        }\n        setSelection(e) {\n            this._modifiedEditor.setSelection(e)\n        }\n        setSelections(e) {\n            this._modifiedEditor.setSelections(e)\n        }\n        revealLines(e, t, i = 0) {\n            this._modifiedEditor.revealLines(e, t, i)\n        }\n        revealLinesInCenter(e, t, i = 0) {\n            this._modifiedEditor.revealLinesInCenter(e, t, i)\n        }\n        revealLinesInCenterIfOutsideViewport(e, t, i = 0) {\n            this._modifiedEditor.revealLinesInCenterIfOutsideViewport(e, t, i)\n        }\n        revealLinesNearTop(e, t, i = 0) {\n            this._modifiedEditor.revealLinesNearTop(e, t, i)\n        }\n        revealRange(e, t = 0, i = !1, n = !0) {\n            this._modifiedEditor.revealRange(e, t, i, n)\n        }\n        revealRangeInCenter(e, t = 0) {\n            this._modifiedEditor.revealRangeInCenter(e, t)\n        }\n        revealRangeInCenterIfOutsideViewport(e, t = 0) {\n            this._modifiedEditor.revealRangeInCenterIfOutsideViewport(e, t)\n        }\n        revealRangeNearTop(e, t = 0) {\n            this._modifiedEditor.revealRangeNearTop(e, t)\n        }\n        revealRangeNearTopIfOutsideViewport(e, t = 0) {\n            this._modifiedEditor.revealRangeNearTopIfOutsideViewport(e, t)\n        }\n        revealRangeAtTop(e, t = 0) {\n            this._modifiedEditor.revealRangeAtTop(e, t)\n        }\n        getSupportedActions() {\n            return this._modifiedEditor.getSupportedActions()\n        }\n        saveViewState() {\n            return {\n                original: this._originalEditor.saveViewState(),\n                modified: this._modifiedEditor.saveViewState()\n            }\n        }\n        restoreViewState(e) {\n            e && e.original && e.modified && (this._originalEditor.restoreViewState((e = e).original), this._modifiedEditor.restoreViewState(e.modified))\n        }\n        layout(e) {\n            this._elementSizeObserver.observe(e)\n        }\n        focus() {\n            this._modifiedEditor.focus()\n        }\n        hasTextFocus() {\n            return this._originalEditor.hasTextFocus() || this._modifiedEditor.hasTextFocus()\n        }\n        trigger(e, t, i) {\n            this._modifiedEditor.trigger(e, t, i)\n        }\n        changeDecorations(e) {\n            return this._modifiedEditor.changeDecorations(e)\n        }\n        _onDidContainerSizeChanged() {\n            this._doLayout()\n        }\n        _getReviewHeight() {\n            return this._reviewPane.isVisible() ? this._elementSizeObserver.getHeight() : 0\n        }\n        _layoutOverviewRulers() {\n            var t, i, n;\n            this._options.renderOverviewRuler && this._originalOverviewRuler && this._modifiedOverviewRuler && (t = this._elementSizeObserver.getHeight(), i = this._getReviewHeight(), n = e.ENTIRE_DIFF_OVERVIEW_WIDTH - 2 * e.ONE_OVERVIEW_WIDTH, this._modifiedEditor.getLayoutInfo() && (this._originalOverviewRuler.setLayout({\n                top: 0,\n                width: e.ONE_OVERVIEW_WIDTH,\n                right: n + e.ONE_OVERVIEW_WIDTH,\n                height: t - i\n            }), this._modifiedOverviewRuler.setLayout({\n                top: 0,\n                right: 0,\n                width: e.ONE_OVERVIEW_WIDTH,\n                height: t - i\n            })))\n        }\n        _onViewZonesChanged() {\n            this._currentlyChangingViewZones || this._updateDecorationsRunner.schedule()\n        }\n        _beginUpdateDecorationsSoon() {\n            -1 !== this._beginUpdateDecorationsTimeout && (window.clearTimeout(this._beginUpdateDecorationsTimeout), this._beginUpdateDecorationsTimeout = -1), this._beginUpdateDecorationsTimeout = window.setTimeout(() => this._beginUpdateDecorations(), e.UPDATE_DIFF_DECORATIONS_DELAY)\n        }\n        static _equals(e, t) {\n            return !e && !t || !(!e || !t) && e.toString() === t.toString()\n        }\n        _beginUpdateDecorations() {\n            this._beginUpdateDecorationsTimeout = -1;\n            const t = this._originalEditor.getModel(),\n                i = this._modifiedEditor.getModel();\n            if (t && i) {\n                this._diffComputationToken++;\n                const r = this._diffComputationToken,\n                    o = 1024 * this._options.maxFileSize * 1024;\n                var n = e => (e = e.getValueLength(), 0 == o || e <= o);\n                n(t) && n(i) ? (this._setState(1), this._editorWorkerService.computeDiff(t.uri, i.uri, this._options.ignoreTrimWhitespace, this._options.maxComputationTime).then(e => {\n                    r === this._diffComputationToken && t === this._originalEditor.getModel() && i === this._modifiedEditor.getModel() && (this._setState(2), this._diffComputationResult = e, this._updateDecorationsRunner.schedule(), this._onDidUpdateDiff.fire())\n                }, e => {\n                    r === this._diffComputationToken && t === this._originalEditor.getModel() && i === this._modifiedEditor.getModel() && (this._setState(2), this._diffComputationResult = null, this._updateDecorationsRunner.schedule())\n                })) : e._equals(t.uri, this._lastOriginalWarning) && e._equals(i.uri, this._lastModifiedWarning) || (this._lastOriginalWarning = t.uri, this._lastModifiedWarning = i.uri, this._notificationService.warn(yt.a(\"diff.tooLarge\", \"Cannot compare files because one file is too large.\")))\n            }\n        }\n        _cleanViewZonesAndDecorations() {\n            this._originalEditorState.clean(this._originalEditor), this._modifiedEditorState.clean(this._modifiedEditor)\n        }\n        _updateDecorations() {\n            if (this._originalEditor.getModel() && this._modifiedEditor.getModel()) {\n                var e = this._diffComputationResult ? this._diffComputationResult.changes : [],\n                    t = this._originalEditorState.getForeignViewZones(this._originalEditor.getWhitespaces()),\n                    i = this._modifiedEditorState.getForeignViewZones(this._modifiedEditor.getWhitespaces());\n                i = this._strategy.getEditorsDiffDecorations(e, this._options.ignoreTrimWhitespace, this._options.renderIndicators, t, i);\n                try {\n                    this._currentlyChangingViewZones = !0, this._originalEditorState.apply(this._originalEditor, this._originalOverviewRuler, i.original, !1), this._modifiedEditorState.apply(this._modifiedEditor, this._modifiedOverviewRuler, i.modified, !0)\n                } finally {\n                    this._currentlyChangingViewZones = !1\n                }\n            }\n        }\n        _adjustOptionsForSubEditor(e) {\n            const t = Object.assign({}, e);\n            return t.inDiffEditor = !0, t.automaticLayout = !1, t.scrollbar = Object.assign({}, t.scrollbar || {}), t.scrollbar.vertical = \"visible\", t.folding = !1, t.codeLens = this._options.diffCodeLens, t.fixedOverflowWidgets = !0, t.minimap = Object.assign({}, t.minimap || {}), t.minimap.enabled = !1, t\n        }\n        _adjustOptionsForLeftHandSide(e) {\n            const t = this._adjustOptionsForSubEditor(e);\n            return this._options.renderSideBySide ? t.wordWrapOverride1 = this._options.diffWordWrap : t.wordWrapOverride1 = \"off\", e.originalAriaLabel && (t.ariaLabel = e.originalAriaLabel), t.readOnly = !this._options.originalEditable, t.extraEditorClassName = \"original-in-monaco-diff-editor\", Object.assign(Object.assign({}, t), {\n                dimension: {\n                    height: 0,\n                    width: 0\n                }\n            })\n        }\n        _adjustOptionsForRightHandSide(t) {\n            const i = this._adjustOptionsForSubEditor(t);\n            return t.modifiedAriaLabel && (i.ariaLabel = t.modifiedAriaLabel), i.wordWrapOverride1 = this._options.diffWordWrap, i.revealHorizontalRightPadding = n.g.revealHorizontalRightPadding.defaultValue + e.ENTIRE_DIFF_OVERVIEW_WIDTH, i.scrollbar.verticalHasArrows = !1, i.extraEditorClassName = \"modified-in-monaco-diff-editor\", Object.assign(Object.assign({}, i), {\n                dimension: {\n                    height: 0,\n                    width: 0\n                }\n            })\n        }\n        doLayout() {\n            this._elementSizeObserver.observe(), this._doLayout()\n        }\n        _doLayout() {\n            var t = this._elementSizeObserver.getWidth(),\n                i = this._elementSizeObserver.getHeight(),\n                n = this._getReviewHeight(),\n                r = this._strategy.layout();\n            this._originalDomNode.style.width = r + \"px\", this._originalDomNode.style.left = \"0px\", this._modifiedDomNode.style.width = t - r + \"px\", this._modifiedDomNode.style.left = r + \"px\", this._overviewDomElement.style.top = \"0px\", this._overviewDomElement.style.height = i - n + \"px\", this._overviewDomElement.style.width = e.ENTIRE_DIFF_OVERVIEW_WIDTH + \"px\", this._overviewDomElement.style.left = t - e.ENTIRE_DIFF_OVERVIEW_WIDTH + \"px\", this._overviewViewportDomElement.setWidth(e.ENTIRE_DIFF_OVERVIEW_WIDTH), this._overviewViewportDomElement.setHeight(30), this._originalEditor.layout({\n                width: r,\n                height: i - n\n            }), this._modifiedEditor.layout({\n                width: t - r - (this._options.renderOverviewRuler ? e.ENTIRE_DIFF_OVERVIEW_WIDTH : 0),\n                height: i - n\n            }), (this._originalOverviewRuler || this._modifiedOverviewRuler) && this._layoutOverviewRulers(), this._reviewPane.layout(i - n, t, n), this._layoutOverviewViewport()\n        }\n        _layoutOverviewViewport() {\n            var e = this._computeOverviewViewport();\n            e ? (this._overviewViewportDomElement.setTop(e.top), this._overviewViewportDomElement.setHeight(e.height)) : (this._overviewViewportDomElement.setTop(0), this._overviewViewportDomElement.setHeight(0))\n        }\n        _computeOverviewViewport() {\n            var e = this._modifiedEditor.getLayoutInfo();\n            if (!e) return null;\n            var t = this._modifiedEditor.getScrollTop(),\n                i = this._modifiedEditor.getScrollHeight(),\n                n = Math.max(0, e.height);\n            n = Math.max(0, +n), i = 0 < i ? n / i : 0;\n            return {\n                height: Math.max(0, Math.floor(e.height * i)),\n                top: Math.floor(t * i)\n            }\n        }\n        _createDataSource() {\n            return {\n                getWidth: () => this._elementSizeObserver.getWidth(),\n                getHeight: () => this._elementSizeObserver.getHeight() - this._getReviewHeight(),\n                getOptions: () => ({\n                    renderOverviewRuler: this._options.renderOverviewRuler\n                }),\n                getContainerDomNode: () => this._containerDomElement,\n                relayoutEditors: () => {\n                    this._doLayout()\n                },\n                getOriginalEditor: () => this._originalEditor,\n                getModifiedEditor: () => this._modifiedEditor\n            }\n        }\n        _setStrategy(e) {\n            this._strategy && this._strategy.dispose(), (this._strategy = e).applyColors(this._themeService.getColorTheme()), this._diffComputationResult && this._updateDecorations(), this._doLayout()\n        }\n        _getLineChangeAtOrBeforeLineNumber(e, t) {\n            var i = this._diffComputationResult ? this._diffComputationResult.changes : [];\n            if (0 === i.length || e < t(i[0])) return null;\n            let n = 0,\n                r = i.length - 1;\n            for (; n < r;) {\n                var o = Math.floor((n + r) / 2),\n                    s = t(i[o]),\n                    a = o + 1 <= r ? t(i[o + 1]) : 1073741824;\n                e < s ? r = o - 1 : a <= e ? n = o + 1 : (n = o, r = o)\n            }\n            return i[n]\n        }\n        _getEquivalentLineForOriginalLineNumber(e) {\n            if (!(r = this._getLineChangeAtOrBeforeLineNumber(e, e => e.originalStartLineNumber))) return e;\n            var t = r.originalStartLineNumber + (0 < r.originalEndLineNumber ? -1 : 0),\n                i = r.modifiedStartLineNumber + (0 < r.modifiedEndLineNumber ? -1 : 0),\n                n = 0 < r.originalEndLineNumber ? r.originalEndLineNumber - r.originalStartLineNumber + 1 : 0,\n                r = 0 < r.modifiedEndLineNumber ? r.modifiedEndLineNumber - r.modifiedStartLineNumber + 1 : 0;\n            return (t = e - t) <= n ? i + Math.min(t, r) : i + r - n + t\n        }\n        _getEquivalentLineForModifiedLineNumber(e) {\n            if (!(t = this._getLineChangeAtOrBeforeLineNumber(e, e => e.modifiedStartLineNumber))) return e;\n            var t, i = t.originalStartLineNumber + (0 < t.originalEndLineNumber ? -1 : 0),\n                n = t.modifiedStartLineNumber + (0 < t.modifiedEndLineNumber ? -1 : 0),\n                r = 0 < t.originalEndLineNumber ? t.originalEndLineNumber - t.originalStartLineNumber + 1 : 0;\n            return (n = e - n) <= (t = 0 < t.modifiedEndLineNumber ? t.modifiedEndLineNumber - t.modifiedStartLineNumber + 1 : 0) ? i + Math.min(n, r) : i + r - t + n\n        }\n        getDiffLineInformationForOriginal(e) {\n            return this._diffComputationResult ? {\n                equivalentLineNumber: this._getEquivalentLineForOriginalLineNumber(e)\n            } : null\n        }\n        getDiffLineInformationForModified(e) {\n            return this._diffComputationResult ? {\n                equivalentLineNumber: this._getEquivalentLineForModifiedLineNumber(e)\n            } : null\n        }\n    };\n    Ua.ONE_OVERVIEW_WIDTH = 15, Ua.ENTIRE_DIFF_OVERVIEW_WIDTH = 30, Ua.UPDATE_DIFF_DECORATIONS_DELAY = 200, Ua = t([ae(3, ja.a), ae(4, U), ae(5, Yt.b), ae(6, _.a), ae(7, o.a), ae(8, ir.b), ae(9, hi.a), ae(10, Aa.a), ae(11, Ba)], Ua);\n    class Ka extends v.a {\n        constructor(e) {\n            super(), this._dataSource = e, this._insertColor = null, this._removeColor = null\n        }\n        applyColors(e) {\n            const t = (e.getColor(Ir.m) || Ir.i).transparent(2),\n                i = (e.getColor(Ir.o) || Ir.j).transparent(2);\n            return e = !t.equals(this._insertColor) || !i.equals(this._removeColor), this._insertColor = t, this._removeColor = i, e\n        }\n        getEditorsDiffDecorations(e, t, i, n, r) {\n            return r = r.sort((e, t) => e.afterLineNumber - t.afterLineNumber), n = n.sort((e, t) => e.afterLineNumber - t.afterLineNumber), n = this._getViewZones(e, n, r, i), r = this._getOriginalEditorDecorations(e, t, i), i = this._getModifiedEditorDecorations(e, t, i), {\n                original: {\n                    decorations: r.decorations,\n                    overviewZones: r.overviewZones,\n                    zones: n.original\n                },\n                modified: {\n                    decorations: i.decorations,\n                    overviewZones: i.overviewZones,\n                    zones: n.modified\n                }\n            }\n        }\n    }\n    class $a {\n        constructor(e) {\n            this._source = e, this._index = -1, this.current = null, this.advance()\n        }\n        advance() {\n            this._index++, this._index < this._source.length ? this.current = this._source[this._index] : this.current = null\n        }\n    }\n    class qa {\n        constructor(e, t, i, n, r) {\n            this._lineChanges = e, this._originalForeignVZ = t, this._modifiedForeignVZ = i, this._originalEditor = n, this._modifiedEditor = r\n        }\n        static _getViewLineCount(e, t, i) {\n            var n = e.getModel();\n            e = e._getViewModel();\n            return n && e ? (e = nl(n, e, t, i)).endLineNumber - e.startLineNumber + 1 : i - t + 1\n        }\n        getViewZones() {\n            var e = this._originalEditor.getOption(58),\n                t = this._modifiedEditor.getOption(58),\n                i = -1 !== this._originalEditor.getOption(130).wrappingColumn,\n                n = -1 !== this._modifiedEditor.getOption(130).wrappingColumn,\n                r = i || n;\n            const o = this._originalEditor.getModel(),\n                s = this._originalEditor._getViewModel().coordinatesConverter,\n                a = this._modifiedEditor._getViewModel().coordinatesConverter,\n                l = [],\n                d = [];\n            let c = 0,\n                h = 0,\n                u = 0,\n                p = 0,\n                g = 0,\n                f = 0;\n            var m = (e, t) => e.afterLineNumber - t.afterLineNumber,\n                v = (e, t) => {\n                    if (null === t.domNode && 0 < e.length) {\n                        const i = e[e.length - 1];\n                        if (i.afterLineNumber === t.afterLineNumber && null === i.domNode) return void(i.heightInLines += t.heightInLines)\n                    }\n                    e.push(t)\n                };\n            const b = new $a(this._modifiedForeignVZ),\n                _ = new $a(this._originalForeignVZ);\n            let w = 1,\n                y = 1;\n            for (let i = 0, n = this._lineChanges.length; i <= n; i++) {\n                var C, x = i < n ? this._lineChanges[i] : null;\n                f = null !== x ? (u = x.originalStartLineNumber + (0 < x.originalEndLineNumber ? -1 : 0), p = x.modifiedStartLineNumber + (0 < x.modifiedEndLineNumber ? -1 : 0), h = 0 < x.originalEndLineNumber ? qa._getViewLineCount(this._originalEditor, x.originalStartLineNumber, x.originalEndLineNumber) : 0, c = 0 < x.modifiedEndLineNumber ? qa._getViewLineCount(this._modifiedEditor, x.modifiedStartLineNumber, x.modifiedEndLineNumber) : 0, g = Math.max(x.originalStartLineNumber, x.originalEndLineNumber), Math.max(x.modifiedStartLineNumber, x.modifiedEndLineNumber)) : (u += 1e7 + h, p += 1e7 + c, g = u, p);\n                let D = [],\n                    I = [];\n                if (r) {\n                    let e;\n                    e = x ? 0 < x.originalEndLineNumber ? x.originalStartLineNumber - w : x.modifiedStartLineNumber - y : o.getLineCount() - w;\n                    for (let t = 0; t < e; t++) {\n                        var S = w + t,\n                            k = y + t,\n                            L = s.getModelLineViewLineCount(S),\n                            O = a.getModelLineViewLineCount(k);\n                        L < O ? D.push({\n                            afterLineNumber: S,\n                            heightInLines: O - L,\n                            domNode: null,\n                            marginDomNode: null\n                        }) : O < L && I.push({\n                            afterLineNumber: k,\n                            heightInLines: L - O,\n                            domNode: null,\n                            marginDomNode: null\n                        })\n                    }\n                    x && (w = (0 < x.originalEndLineNumber ? x.originalEndLineNumber : x.originalStartLineNumber) + 1, y = (0 < x.modifiedEndLineNumber ? x.modifiedEndLineNumber : x.modifiedStartLineNumber) + 1)\n                }\n                for (; b.current && b.current.afterLineNumber <= f;) {\n                    let e;\n                    e = b.current.afterLineNumber <= p ? u - p + b.current.afterLineNumber : g;\n                    let i = null;\n                    x && x.modifiedStartLineNumber <= b.current.afterLineNumber && b.current.afterLineNumber <= x.modifiedEndLineNumber && (i = this._createOriginalMarginDomNodeForModifiedForeignViewZoneInAddedRegion()), D.push({\n                        afterLineNumber: e,\n                        heightInLines: b.current.height / t,\n                        domNode: null,\n                        marginDomNode: i\n                    }), b.advance()\n                }\n                for (; _.current && _.current.afterLineNumber <= g;) {\n                    let t;\n                    t = _.current.afterLineNumber <= u ? p - u + _.current.afterLineNumber : f, I.push({\n                        afterLineNumber: t,\n                        heightInLines: _.current.height / e,\n                        domNode: null\n                    }), _.advance()\n                }\n                null === x || !el(x) || (C = this._produceOriginalFromDiff(x, h, c)) && D.push(C), null === x || !tl(x) || (C = this._produceModifiedFromDiff(x, h, c)) && I.push(C);\n                let T = 0,\n                    M = 0;\n                for (D = D.sort(m), I = I.sort(m); T < D.length && M < I.length;) {\n                    const e = D[T],\n                        t = I[M];\n                    var E = e.afterLineNumber - u,\n                        N = t.afterLineNumber - p;\n                    E < N ? (v(l, e), T++) : N < E ? (v(d, t), M++) : e.shouldNotShrink ? (v(l, e), T++) : t.shouldNotShrink ? (v(d, t), M++) : e.heightInLines >= t.heightInLines ? (e.heightInLines -= t.heightInLines, M++) : (t.heightInLines -= e.heightInLines, T++)\n                }\n                for (; T < D.length;) v(l, D[T]), T++;\n                for (; M < I.length;) v(d, I[M]), M++\n            }\n            return {\n                original: qa._ensureDomNodes(l),\n                modified: qa._ensureDomNodes(d)\n            }\n        }\n        static _ensureDomNodes(e) {\n            return e.map(e => (e.domNode || (e.domNode = il()), e))\n        }\n    }\n\n    function Ga(e, t, i, n, r) {\n        return {\n            range: new T.a(e, t, i, n),\n            options: r\n        }\n    }\n    const Ya = {\n        charDelete: Rr.b.register({\n            description: \"diff-editor-char-delete\",\n            className: \"char-delete\"\n        }),\n        charDeleteWholeLine: Rr.b.register({\n            description: \"diff-editor-char-delete-whole-line\",\n            className: \"char-delete\",\n            isWholeLine: !0\n        }),\n        charInsert: Rr.b.register({\n            description: \"diff-editor-char-insert\",\n            className: \"char-insert\"\n        }),\n        charInsertWholeLine: Rr.b.register({\n            description: \"diff-editor-char-insert-whole-line\",\n            className: \"char-insert\",\n            isWholeLine: !0\n        }),\n        lineInsert: Rr.b.register({\n            description: \"diff-editor-line-insert\",\n            className: \"line-insert\",\n            marginClassName: \"line-insert\",\n            isWholeLine: !0\n        }),\n        lineInsertWithSign: Rr.b.register({\n            description: \"diff-editor-line-insert-with-sign\",\n            className: \"line-insert\",\n            linesDecorationsClassName: \"insert-sign \" + ir.d.asClassName(gi),\n            marginClassName: \"line-insert\",\n            isWholeLine: !0\n        }),\n        lineDelete: Rr.b.register({\n            description: \"diff-editor-line-delete\",\n            className: \"line-delete\",\n            marginClassName: \"line-delete\",\n            isWholeLine: !0\n        }),\n        lineDeleteWithSign: Rr.b.register({\n            description: \"diff-editor-line-delete-with-sign\",\n            className: \"line-delete\",\n            linesDecorationsClassName: \"delete-sign \" + ir.d.asClassName(za),\n            marginClassName: \"line-delete\",\n            isWholeLine: !0\n        }),\n        lineDeleteMargin: Rr.b.register({\n            description: \"diff-editor-line-delete-margin\",\n            marginClassName: \"line-delete\"\n        })\n    };\n    class Za extends Ka {\n        constructor(e, t) {\n            super(e), this._disableSash = !1 === t, this._sashRatio = null, this._sashPosition = null, this._startSashPosition = null, this._sash = this._register(new va.a(this._dataSource.getContainerDomNode(), this, {\n                orientation: 0\n            })), this._disableSash && (this._sash.state = 0), this._sash.onDidStart(() => this._onSashDragStart()), this._sash.onDidChange(e => this._onSashDrag(e)), this._sash.onDidEnd(() => this._onSashDragEnd()), this._sash.onDidReset(() => this._onSashReset())\n        }\n        setEnableSplitViewResizing(e) {\n            e = !1 === e, this._disableSash !== e && (this._disableSash = e, this._sash.state = this._disableSash ? 0 : 3)\n        }\n        layout(e = this._sashRatio) {\n            var t = this._dataSource.getWidth() - (this._dataSource.getOptions().renderOverviewRuler ? Ua.ENTIRE_DIFF_OVERVIEW_WIDTH : 0);\n            let i = Math.floor((e || .5) * t);\n            return e = Math.floor(.5 * t), i = !this._disableSash && i || e, t > 2 * Za.MINIMUM_EDITOR_WIDTH ? (i < Za.MINIMUM_EDITOR_WIDTH && (i = Za.MINIMUM_EDITOR_WIDTH), i > t - Za.MINIMUM_EDITOR_WIDTH && (i = t - Za.MINIMUM_EDITOR_WIDTH)) : i = e, this._sashPosition !== i && (this._sashPosition = i, this._sash.layout()), this._sashPosition\n        }\n        _onSashDragStart() {\n            this._startSashPosition = this._sashPosition\n        }\n        _onSashDrag(e) {\n            var t = this._dataSource.getWidth() - (this._dataSource.getOptions().renderOverviewRuler ? Ua.ENTIRE_DIFF_OVERVIEW_WIDTH : 0);\n            e = this.layout((this._startSashPosition + (e.currentX - e.startX)) / t);\n            this._sashRatio = e / t, this._dataSource.relayoutEditors()\n        }\n        _onSashDragEnd() {\n            this._sash.layout()\n        }\n        _onSashReset() {\n            this._sashRatio = .5, this._dataSource.relayoutEditors(), this._sash.layout()\n        }\n        getVerticalSashTop(e) {\n            return 0\n        }\n        getVerticalSashLeft(e) {\n            return this._sashPosition\n        }\n        getVerticalSashHeight(e) {\n            return this._dataSource.getHeight()\n        }\n        _getViewZones(e, t, i) {\n            var n = this._dataSource.getOriginalEditor(),\n                r = this._dataSource.getModifiedEditor();\n            return new Xa(e, t, i, n, r).getViewZones()\n        }\n        _getOriginalEditorDecorations(e, t, i) {\n            const n = this._dataSource.getOriginalEditor();\n            var r = String(this._removeColor);\n            const o = {\n                    decorations: [],\n                    overviewZones: []\n                },\n                s = n.getModel();\n            var a = n._getViewModel();\n            for (const n of e)\n                if (tl(n)) {\n                    o.decorations.push({\n                        range: new T.a(n.originalStartLineNumber, 1, n.originalEndLineNumber, 1073741824),\n                        options: i ? Ya.lineDeleteWithSign : Ya.lineDelete\n                    }), el(n) && n.charChanges || o.decorations.push(Ga(n.originalStartLineNumber, 1, n.originalEndLineNumber, 1073741824, Ya.charDeleteWholeLine));\n                    var l = nl(s, a, n.originalStartLineNumber, n.originalEndLineNumber);\n                    if (o.overviewZones.push(new mo(l.startLineNumber, l.endLineNumber, r)), n.charChanges)\n                        for (const e of n.charChanges)\n                            if (tl(e))\n                                if (t)\n                                    for (let t = e.originalStartLineNumber; t <= e.originalEndLineNumber; t++) {\n                                        let i, n;\n                                        i = t === e.originalStartLineNumber ? e.originalStartColumn : s.getLineFirstNonWhitespaceColumn(t), n = t === e.originalEndLineNumber ? e.originalEndColumn : s.getLineLastNonWhitespaceColumn(t), o.decorations.push(Ga(t, i, t, n, Ya.charDelete))\n                                    } else o.decorations.push(Ga(e.originalStartLineNumber, e.originalStartColumn, e.originalEndLineNumber, e.originalEndColumn, Ya.charDelete))\n                } return o\n        }\n        _getModifiedEditorDecorations(e, t, i) {\n            const n = this._dataSource.getModifiedEditor();\n            var r = String(this._insertColor);\n            const o = {\n                    decorations: [],\n                    overviewZones: []\n                },\n                s = n.getModel();\n            var a = n._getViewModel();\n            for (const n of e)\n                if (el(n)) {\n                    o.decorations.push({\n                        range: new T.a(n.modifiedStartLineNumber, 1, n.modifiedEndLineNumber, 1073741824),\n                        options: i ? Ya.lineInsertWithSign : Ya.lineInsert\n                    }), tl(n) && n.charChanges || o.decorations.push(Ga(n.modifiedStartLineNumber, 1, n.modifiedEndLineNumber, 1073741824, Ya.charInsertWholeLine));\n                    var l = nl(s, a, n.modifiedStartLineNumber, n.modifiedEndLineNumber);\n                    if (o.overviewZones.push(new mo(l.startLineNumber, l.endLineNumber, r)), n.charChanges)\n                        for (const e of n.charChanges)\n                            if (el(e))\n                                if (t)\n                                    for (let t = e.modifiedStartLineNumber; t <= e.modifiedEndLineNumber; t++) {\n                                        let i, n;\n                                        i = t === e.modifiedStartLineNumber ? e.modifiedStartColumn : s.getLineFirstNonWhitespaceColumn(t), n = t === e.modifiedEndLineNumber ? e.modifiedEndColumn : s.getLineLastNonWhitespaceColumn(t), o.decorations.push(Ga(t, i, t, n, Ya.charInsert))\n                                    } else o.decorations.push(Ga(e.modifiedStartLineNumber, e.modifiedStartColumn, e.modifiedEndLineNumber, e.modifiedEndColumn, Ya.charInsert))\n                } return o\n        }\n    }\n    Za.MINIMUM_EDITOR_WIDTH = 100;\n    class Xa extends qa {\n        constructor(e, t, i, n, r) {\n            super(e, t, i, n, r)\n        }\n        _createOriginalMarginDomNodeForModifiedForeignViewZoneInAddedRegion() {\n            return null\n        }\n        _produceOriginalFromDiff(e, t, i) {\n            return t < i ? {\n                afterLineNumber: Math.max(e.originalStartLineNumber, e.originalEndLineNumber),\n                heightInLines: i - t,\n                domNode: null\n            } : null\n        }\n        _produceModifiedFromDiff(e, t, i) {\n            return i < t ? {\n                afterLineNumber: Math.max(e.modifiedStartLineNumber, e.modifiedEndLineNumber),\n                heightInLines: t - i,\n                domNode: null\n            } : null\n        }\n    }\n    class Qa extends Ka {\n        constructor(e, t) {\n            super(e), this._decorationsLeft = e.getOriginalEditor().getLayoutInfo().decorationsLeft, this._register(e.getOriginalEditor().onDidLayoutChange(t => {\n                this._decorationsLeft !== t.decorationsLeft && (this._decorationsLeft = t.decorationsLeft, e.relayoutEditors())\n            }))\n        }\n        setEnableSplitViewResizing(e) {}\n        _getViewZones(e, t, i, n) {\n            var r = this._dataSource.getOriginalEditor(),\n                o = this._dataSource.getModifiedEditor();\n            return new Ja(e, t, i, r, o, n).getViewZones()\n        }\n        _getOriginalEditorDecorations(e, t, i) {\n            var n = String(this._removeColor);\n            const r = {\n                    decorations: [],\n                    overviewZones: []\n                },\n                o = this._dataSource.getOriginalEditor();\n            var s, a = o.getModel(),\n                l = o._getViewModel();\n            for (const t of e) tl(t) && (r.decorations.push({\n                range: new T.a(t.originalStartLineNumber, 1, t.originalEndLineNumber, 1073741824),\n                options: Ya.lineDeleteMargin\n            }), s = nl(a, l, t.originalStartLineNumber, t.originalEndLineNumber), r.overviewZones.push(new mo(s.startLineNumber, s.endLineNumber, n)));\n            return r\n        }\n        _getModifiedEditorDecorations(e, t, i) {\n            const n = this._dataSource.getModifiedEditor();\n            var r = String(this._insertColor);\n            const o = {\n                    decorations: [],\n                    overviewZones: []\n                },\n                s = n.getModel();\n            var a = n._getViewModel();\n            for (const n of e)\n                if (el(n)) {\n                    o.decorations.push({\n                        range: new T.a(n.modifiedStartLineNumber, 1, n.modifiedEndLineNumber, 1073741824),\n                        options: i ? Ya.lineInsertWithSign : Ya.lineInsert\n                    });\n                    var l = nl(s, a, n.modifiedStartLineNumber, n.modifiedEndLineNumber);\n                    if (o.overviewZones.push(new mo(l.startLineNumber, l.endLineNumber, r)), n.charChanges) {\n                        for (const e of n.charChanges)\n                            if (el(e))\n                                if (t)\n                                    for (let t = e.modifiedStartLineNumber; t <= e.modifiedEndLineNumber; t++) {\n                                        let i, n;\n                                        i = t === e.modifiedStartLineNumber ? e.modifiedStartColumn : s.getLineFirstNonWhitespaceColumn(t), n = t === e.modifiedEndLineNumber ? e.modifiedEndColumn : s.getLineLastNonWhitespaceColumn(t), o.decorations.push(Ga(t, i, t, n, Ya.charInsert))\n                                    } else o.decorations.push(Ga(e.modifiedStartLineNumber, e.modifiedStartColumn, e.modifiedEndLineNumber, e.modifiedEndColumn, Ya.charInsert))\n                    } else o.decorations.push(Ga(n.modifiedStartLineNumber, 1, n.modifiedEndLineNumber, 1073741824, Ya.charInsertWholeLine))\n                } return o\n        }\n        layout() {\n            return Math.max(5, this._decorationsLeft)\n        }\n    }\n    class Ja extends qa {\n        constructor(e, t, i, n, r, o) {\n            super(e, t, i, n, r), this._originalModel = n.getModel(), this._renderIndicators = o, this._pendingLineChange = [], this._pendingViewZones = [], this._lineBreaksComputer = this._modifiedEditor._getViewModel().createLineBreaksComputer()\n        }\n        getViewZones() {\n            var e = super.getViewZones();\n            return this._finalize(e), e\n        }\n        _createOriginalMarginDomNodeForModifiedForeignViewZoneInAddedRegion() {\n            const e = document.createElement(\"div\");\n            return e.className = \"inline-added-margin-view-zone\", e\n        }\n        _produceOriginalFromDiff(e, t, i) {\n            const n = document.createElement(\"div\");\n            return n.className = \"inline-added-margin-view-zone\", {\n                afterLineNumber: Math.max(e.originalStartLineNumber, e.originalEndLineNumber),\n                heightInLines: i,\n                domNode: document.createElement(\"div\"),\n                marginDomNode: n\n            }\n        }\n        _produceModifiedFromDiff(e, t, i) {\n            const n = document.createElement(\"div\");\n            n.className = \"view-lines line-delete \" + sr;\n            const r = document.createElement(\"div\");\n            r.className = \"inline-deleted-margin-view-zone\", t = {\n                shouldNotShrink: !0,\n                afterLineNumber: 0 === e.modifiedEndLineNumber ? e.modifiedStartLineNumber : e.modifiedStartLineNumber - 1,\n                heightInLines: t,\n                minWidthInPx: 0,\n                domNode: n,\n                marginDomNode: r,\n                diff: {\n                    originalStartLineNumber: e.originalStartLineNumber,\n                    originalEndLineNumber: e.originalEndLineNumber,\n                    modifiedStartLineNumber: e.modifiedStartLineNumber,\n                    modifiedEndLineNumber: e.modifiedEndLineNumber,\n                    originalModel: this._originalModel,\n                    viewLineCounts: null\n                }\n            };\n            for (let t = e.originalStartLineNumber; t <= e.originalEndLineNumber; t++) this._lineBreaksComputer.addRequest(this._originalModel.getLineContent(t), null, null);\n            return this._pendingLineChange.push(e), this._pendingViewZones.push(t), t\n        }\n        _finalize(e) {\n            const t = this._modifiedEditor.getOptions();\n            var i = this._modifiedEditor.getModel().getOptions().tabSize,\n                n = t.get(43),\n                r = t.get(29),\n                o = n.typicalHalfwidthCharacterWidth,\n                s = t.get(92),\n                a = this._originalModel.mightContainNonBasicASCII(),\n                l = this._originalModel.mightContainRTL(),\n                d = t.get(58),\n                c = t.get(129).decorationsWidth,\n                h = t.get(104),\n                u = t.get(87),\n                p = t.get(82),\n                g = t.get(44),\n                f = this._lineBreaksComputer.finalize();\n            let m = 0;\n            for (let t = 0; t < this._pendingLineChange.length; t++) {\n                var v = this._pendingLineChange[t];\n                const O = this._pendingViewZones[t],\n                    E = O.domNode;\n                zi.applyFontInfoSlow(E, n);\n                var b = O.marginDomNode;\n                zi.applyFontInfoSlow(b, n);\n                const N = [];\n                if (v.charChanges)\n                    for (const e of v.charChanges) tl(e) && N.push(new He(new T.a(e.originalStartLineNumber, e.originalStartColumn, e.originalEndLineNumber, e.originalEndColumn), \"char-delete\", 0));\n                var _ = 0 < N.length;\n                const D = Object(ye.a)(1e4);\n                let I = 0,\n                    M = 0,\n                    P = null;\n                for (let t = v.originalStartLineNumber; t <= v.originalEndLineNumber; t++) {\n                    var w = t - v.originalStartLineNumber;\n                    const o = this._originalModel.getLineTokens(t),\n                        s = o.getLineContent();\n                    var y = f[m++],\n                        C = Ce.filter(N, t, 1, s.length + 1);\n                    if (y) {\n                        let f = 0;\n                        for (const e of y.breakOffsets) {\n                            var x = o.sliceAndInflate(f, e, 0),\n                                S = s.substring(f, e);\n                            I = Math.max(I, this._renderOriginalLine(M++, S, x, Ce.extractWrapped(C, f, e), _, a, l, n, r, d, c, h, u, p, g, i, D, b)), f = e\n                        }\n                        for (P = P || []; P.length < w;) P[P.length] = 1;\n                        P[w] = y.breakOffsets.length, O.heightInLines += y.breakOffsets.length - 1;\n                        const m = document.createElement(\"div\");\n                        m.className = \"line-delete\", e.original.push({\n                            afterLineNumber: t,\n                            afterColumn: 0,\n                            heightInLines: y.breakOffsets.length - 1,\n                            domNode: il(),\n                            marginDomNode: m\n                        })\n                    } else I = Math.max(I, this._renderOriginalLine(M++, s, o, C, _, a, l, n, r, d, c, h, u, p, g, i, D, b))\n                }\n                I += s;\n                var k = D.build();\n                k = Ha ? Ha.createHTML(k) : k;\n                if (E.innerHTML = k, O.minWidthInPx = I * o, P)\n                    for (var L = v.originalEndLineNumber - v.originalStartLineNumber; P.length <= L;) P[P.length] = 1;\n                O.diff.viewLineCounts = P\n            }\n            e.original.sort((e, t) => e.afterLineNumber - t.afterLineNumber)\n        }\n        _renderOriginalLine(e, t, i, r, o, s, a, l, d, c, h, u, p, g, f, m, v, b) {\n            v.appendASCIIString('<div class=\"view-line'), o || v.appendASCIIString(\" char-delete\"), v.appendASCIIString('\" style=\"top:'), v.appendASCIIString(String(e * c)), v.appendASCIIString('px;width:1000000px;\">'), s = ze.isBasicASCII(t, s), a = ze.containsRTL(t, s, a);\n            const _ = Ie(new Oe(l.isMonospace && !d, l.canUseHalfwidthRightwardsArrow, t, !1, s, a, 0, i, r, m, 0, l.spaceWidth, l.middotWidth, l.wsmiddotWidth, u, p, g, f !== n.e.OFF, null), v);\n            if (v.appendASCIIString(\"</div>\"), this._renderIndicators) {\n                const t = document.createElement(\"div\");\n                t.className = \"delete-sign \" + ir.d.asClassName(za), t.setAttribute(\"style\", `position:absolute;top:${e*c}px;width:${h}px;height:${c}px;right:0;`), b.appendChild(t)\n            }\n            return _.characterMapping.getAbsoluteOffset(_.characterMapping.length)\n        }\n    }\n\n    function el(e) {\n        return 0 < e.modifiedEndLineNumber\n    }\n\n    function tl(e) {\n        return 0 < e.originalEndLineNumber\n    }\n\n    function il() {\n        const e = document.createElement(\"div\");\n        return e.className = \"diagonal-fill\", e\n    }\n\n    function nl(e, t, i, n) {\n        var r = e.getLineCount();\n        return i = Math.min(r, Math.max(1, i)), n = Math.min(r, Math.max(1, n)), t.coordinatesConverter.convertModelRangeToViewRange(new T.a(i, e.getLineMinColumn(i), n, e.getLineMaxColumn(n)))\n    }\n\n    function rl(e, t) {\n        return {\n            enableSplitViewResizing: Object(n.k)(e.enableSplitViewResizing, t.enableSplitViewResizing),\n            renderSideBySide: Object(n.k)(e.renderSideBySide, t.renderSideBySide),\n            maxComputationTime: Object(n.l)(e.maxComputationTime, t.maxComputationTime, 0, 1073741824),\n            maxFileSize: Object(n.l)(e.maxFileSize, t.maxFileSize, 0, 1073741824),\n            ignoreTrimWhitespace: Object(n.k)(e.ignoreTrimWhitespace, t.ignoreTrimWhitespace),\n            renderIndicators: Object(n.k)(e.renderIndicators, t.renderIndicators),\n            originalEditable: Object(n.k)(e.originalEditable, t.originalEditable),\n            diffCodeLens: Object(n.k)(e.diffCodeLens, t.diffCodeLens),\n            renderOverviewRuler: Object(n.k)(e.renderOverviewRuler, t.renderOverviewRuler),\n            diffWordWrap: (e = e.diffWordWrap, t = t.diffWordWrap, Object(n.o)(e, t, [\"off\", \"on\", \"inherit\"]))\n        }\n    }\n    Object(ir.f)((e, t) => {\n        var i = e.getColor(Ir.m);\n        i && (t.addRule(`.monaco-editor .line-insert, .monaco-editor .char-insert { background-color: ${i}; }`), t.addRule(`.monaco-diff-editor .line-insert, .monaco-diff-editor .char-insert { background-color: ${i}; }`), t.addRule(`.monaco-editor .inline-added-margin-view-zone { background-color: ${i}; }`)), (i = e.getColor(Ir.o)) && (t.addRule(`.monaco-editor .line-delete, .monaco-editor .char-delete { background-color: ${i}; }`), t.addRule(`.monaco-diff-editor .line-delete, .monaco-diff-editor .char-delete { background-color: ${i}; }`), t.addRule(`.monaco-editor .inline-deleted-margin-view-zone { background-color: ${i}; }`)), (i = e.getColor(Ir.n)) && t.addRule(`.monaco-editor .line-insert, .monaco-editor .char-insert { border: 1px ${\"hc\"===e.type?\"dashed\":\"solid\"} ${i}; }`), (i = e.getColor(Ir.p)) && t.addRule(`.monaco-editor .line-delete, .monaco-editor .char-delete { border: 1px ${\"hc\"===e.type?\"dashed\":\"solid\"} ${i}; }`), (i = e.getColor(Ir.fc)) && t.addRule(`.monaco-diff-editor.side-by-side .editor.modified { box-shadow: -6px 0 5px -5px ${i}; }`), (i = e.getColor(Ir.k)) && t.addRule(`.monaco-diff-editor.side-by-side .editor.modified { border-left: 1px solid ${i}; }`), (i = e.getColor(Ir.hc)) && t.addRule(`\\n\\t\\t\\t.monaco-diff-editor .diffViewport {\\n\\t\\t\\t\\tbackground: ${i};\\n\\t\\t\\t}\\n\\t\\t`), (i = e.getColor(Ir.ic)) && t.addRule(`\\n\\t\\t\\t.monaco-diff-editor .diffViewport:hover {\\n\\t\\t\\t\\tbackground: ${i};\\n\\t\\t\\t}\\n\\t\\t`), (i = e.getColor(Ir.gc)) && t.addRule(`\\n\\t\\t\\t.monaco-diff-editor .diffViewport:active {\\n\\t\\t\\t\\tbackground: ${i};\\n\\t\\t\\t}\\n\\t\\t`), e = e.getColor(Ir.l), t.addRule(`\\n\\t.monaco-editor .diagonal-fill {\\n\\t\\tbackground-image: linear-gradient(\\n\\t\\t\\t-45deg,\\n\\t\\t\\t${e} 12.5%,\\n\\t\\t\\t#0000 12.5%, #0000 50%,\\n\\t\\t\\t${e} 50%, ${e} 62.5%,\\n\\t\\t\\t#0000 62.5%, #0000 100%\\n\\t\\t);\\n\\t\\tbackground-size: 8px 8px;\\n\\t}\\n\\t`)\n    });\n    const ol = Object(_.c)(\"themeService\");\n    var sl = i(63),\n        al = i(81);\n    class ll extends v.a {\n        constructor() {\n            super(), this._onCodeEditorAdd = this._register(new D.b), this.onCodeEditorAdd = this._onCodeEditorAdd.event, this._onCodeEditorRemove = this._register(new D.b), this.onCodeEditorRemove = this._onCodeEditorRemove.event, this._onDiffEditorAdd = this._register(new D.b), this._onDiffEditorRemove = this._register(new D.b), this._onDecorationTypeRegistered = this._register(new D.b), this._modelProperties = new Map, this._codeEditors = Object.create(null), this._diffEditors = Object.create(null)\n        }\n        addCodeEditor(e) {\n            this._codeEditors[e.getId()] = e, this._onCodeEditorAdd.fire(e)\n        }\n        removeCodeEditor(e) {\n            delete this._codeEditors[e.getId()] && this._onCodeEditorRemove.fire(e)\n        }\n        listCodeEditors() {\n            return Object.keys(this._codeEditors).map(e => this._codeEditors[e])\n        }\n        addDiffEditor(e) {\n            this._diffEditors[e.getId()] = e, this._onDiffEditorAdd.fire(e)\n        }\n        removeDiffEditor(e) {\n            delete this._diffEditors[e.getId()] && this._onDiffEditorRemove.fire(e)\n        }\n        listDiffEditors() {\n            return Object.keys(this._diffEditors).map(e => this._diffEditors[e])\n        }\n        getFocusedCodeEditor() {\n            let e = null;\n            for (const t of this.listCodeEditors()) {\n                if (t.hasTextFocus()) return t;\n                t.hasWidgetFocus() && (e = t)\n            }\n            return e\n        }\n        setModelProperty(e, t, i) {\n            let n;\n            e = e.toString(), this._modelProperties.has(e) ? n = this._modelProperties.get(e) : (n = new Map, this._modelProperties.set(e, n)), n.set(t, i)\n        }\n        getModelProperty(e, t) {\n            if (e = e.toString(), this._modelProperties.has(e)) {\n                return this._modelProperties.get(e).get(t)\n            }\n        }\n    }\n    class dl {\n        constructor(e, t, i) {\n            this._parent = e, this._editorId = t, this._styleSheet = i, this._refCount = 0\n        }\n        ref() {\n            this._refCount++\n        }\n        unref() {\n            var e;\n            this._refCount--, 0 === this._refCount && (null !== (e = this._styleSheet.parentNode) && void 0 !== e && e.removeChild(this._styleSheet), this._parent._removeEditorStyleSheets(this._editorId))\n        }\n        insertRule(e, t) {\n            this._styleSheet.sheet.insertRule(e, t)\n        }\n        removeRulesContainingSelector(e) {\n            s.M(e, this._styleSheet)\n        }\n    }\n    class cl {\n        constructor(e) {\n            this._styleSheet = e\n        }\n        ref() {}\n        unref() {}\n        insertRule(e, t) {\n            this._styleSheet.sheet.insertRule(e, t)\n        }\n        removeRulesContainingSelector(e) {\n            s.M(e, this._styleSheet)\n        }\n    }\n    S = class extends ll {\n        constructor(e, t) {\n            super(), this._decorationOptionProviders = new Map, this._editorStyleSheets = new Map, this._globalStyleSheet = e || null, this._themeService = t\n        }\n        _getOrCreateGlobalStyleSheet() {\n            return this._globalStyleSheet || (this._globalStyleSheet = new cl(s.t())), this._globalStyleSheet\n        }\n        _getOrCreateStyleSheet(e) {\n            if (!e) return this._getOrCreateGlobalStyleSheet();\n            var t = e.getContainerDomNode();\n            return s.L(t) ? (e = e.getId(), this._editorStyleSheets.has(e) || (t = new dl(this, e, s.t(t)), this._editorStyleSheets.set(e, t)), this._editorStyleSheets.get(e)) : this._getOrCreateGlobalStyleSheet()\n        }\n        _removeEditorStyleSheets(e) {\n            this._editorStyleSheets.delete(e)\n        }\n        registerDecorationType(e, t, i, n, r) {\n            let o = this._decorationOptionProviders.get(t);\n            o || (i = {\n                styleSheet: r = this._getOrCreateStyleSheet(r),\n                key: t,\n                parentTypeKey: n,\n                options: i || Object.create(null)\n            }, o = n ? new hl(this._themeService, r, i) : new ul(e, this._themeService, r, i), this._decorationOptionProviders.set(t, o), this._onDecorationTypeRegistered.fire(t)), o.refCount++\n        }\n        removeDecorationType(e) {\n            const t = this._decorationOptionProviders.get(e);\n            t && (t.refCount--, t.refCount <= 0 && (this._decorationOptionProviders.delete(e), t.dispose(), this.listCodeEditors().forEach(t => t.removeDecorations(e))))\n        }\n        resolveDecorationOptions(e, t) {\n            const i = this._decorationOptionProviders.get(e);\n            if (!i) throw new Error(\"Unknown decoration type key: \" + e);\n            return i.getOptions(this, t)\n        }\n    }, S = function(e, t, i, n) {\n        var r, o = arguments.length,\n            s = o < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n);\n        else\n            for (var a = e.length - 1; 0 <= a; a--)(r = e[a]) && (s = (o < 3 ? r(s) : 3 < o ? r(t, i, s) : r(t, i)) || s);\n        return 3 < o && s && Object.defineProperty(t, i, s), s\n    }([function(e, t) {\n        return function(e, i) {\n            t(e, i, 1)\n        }\n    }(0, ir.b)], S);\n    class hl {\n        constructor(e, t, i) {\n            this._styleSheet = t, this._styleSheet.ref(), this._parentTypeKey = i.parentTypeKey, this.refCount = 0, this._beforeContentRules = new gl(3, i, e), this._afterContentRules = new gl(4, i, e)\n        }\n        getOptions(e, t) {\n            const i = e.resolveDecorationOptions(this._parentTypeKey, !0);\n            return this._beforeContentRules && (i.beforeContentClassName = this._beforeContentRules.className), this._afterContentRules && (i.afterContentClassName = this._afterContentRules.className), i\n        }\n        dispose() {\n            this._beforeContentRules && (this._beforeContentRules.dispose(), this._beforeContentRules = null), this._afterContentRules && (this._afterContentRules.dispose(), this._afterContentRules = null), this._styleSheet.unref()\n        }\n    }\n    class ul {\n        constructor(e, t, i, n) {\n            this._disposables = new v.b, this.description = e, this._styleSheet = i, this._styleSheet.ref(), this.refCount = 0;\n            var r = e => {\n                if (e = new gl(e, n, t), this._disposables.add(e), e.hasContent) return e.className\n            };\n            e = e => (e = new gl(e, n, t), this._disposables.add(e), e.hasContent ? {\n                className: e.className,\n                hasLetterSpacing: e.hasLetterSpacing\n            } : null);\n            this.className = r(0), (i = e(1)) && (this.inlineClassName = i.className, this.inlineClassNameAffectsLetterSpacing = i.hasLetterSpacing), this.beforeContentClassName = r(3), this.afterContentClassName = r(4), n.options.beforeInjectedText && n.options.beforeInjectedText.contentText && (i = e(5), this.beforeInjectedText = {\n                content: n.options.beforeInjectedText.contentText,\n                inlineClassName: null == i ? void 0 : i.className,\n                inlineClassNameAffectsLetterSpacing: (null == i ? void 0 : i.hasLetterSpacing) || n.options.beforeInjectedText.affectsLetterSpacing\n            }), n.options.afterInjectedText && n.options.afterInjectedText.contentText && (o = e(6), this.afterInjectedText = {\n                content: n.options.afterInjectedText.contentText,\n                inlineClassName: null == o ? void 0 : o.className,\n                inlineClassNameAffectsLetterSpacing: (null == o ? void 0 : o.hasLetterSpacing) || n.options.afterInjectedText.affectsLetterSpacing\n            }), this.glyphMarginClassName = r(2), e = n.options, this.isWholeLine = Boolean(e.isWholeLine), this.stickiness = e.rangeBehavior;\n            var o = e.light && e.light.overviewRulerColor || e.overviewRulerColor;\n            r = e.dark && e.dark.overviewRulerColor || e.overviewRulerColor;\n            void 0 === o && void 0 === r || (this.overviewRuler = {\n                color: o || r,\n                darkColor: r || o,\n                position: e.overviewRulerLane || W.g.Center\n            })\n        }\n        getOptions(e, t) {\n            return t ? {\n                description: this.description,\n                inlineClassName: this.inlineClassName,\n                beforeContentClassName: this.beforeContentClassName,\n                afterContentClassName: this.afterContentClassName,\n                className: this.className,\n                glyphMarginClassName: this.glyphMarginClassName,\n                isWholeLine: this.isWholeLine,\n                overviewRuler: this.overviewRuler,\n                stickiness: this.stickiness,\n                before: this.beforeInjectedText,\n                after: this.afterInjectedText\n            } : this\n        }\n        dispose() {\n            this._disposables.dispose(), this._styleSheet.unref()\n        }\n    }\n    const pl = {\n        color: \"color:{0} !important;\",\n        opacity: \"opacity:{0};\",\n        backgroundColor: \"background-color:{0};\",\n        outline: \"outline:{0};\",\n        outlineColor: \"outline-color:{0};\",\n        outlineStyle: \"outline-style:{0};\",\n        outlineWidth: \"outline-width:{0};\",\n        border: \"border:{0};\",\n        borderColor: \"border-color:{0};\",\n        borderRadius: \"border-radius:{0};\",\n        borderSpacing: \"border-spacing:{0};\",\n        borderStyle: \"border-style:{0};\",\n        borderWidth: \"border-width:{0};\",\n        fontStyle: \"font-style:{0};\",\n        fontWeight: \"font-weight:{0};\",\n        fontSize: \"font-size:{0};\",\n        fontFamily: \"font-family:{0};\",\n        textDecoration: \"text-decoration:{0};\",\n        cursor: \"cursor:{0};\",\n        letterSpacing: \"letter-spacing:{0};\",\n        gutterIconPath: \"background:{0} center center no-repeat;\",\n        gutterIconSize: \"background-size:{0};\",\n        contentText: \"content:'{0}';\",\n        contentIconPath: \"content:{0};\",\n        margin: \"margin:{0};\",\n        padding: \"padding:{0};\",\n        width: \"width:{0};\",\n        height: \"height:{0};\",\n        verticalAlign: \"vertical-align:{0};\"\n    };\n    class gl {\n        constructor(e, t, i) {\n            this._theme = i.getColorTheme(), this._ruleType = e, this._providerArgs = t, this._usesThemeColors = !1, this._hasContent = !1, this._hasLetterSpacing = !1;\n            let n = fl.getClassName(this._providerArgs.key, e);\n            this._providerArgs.parentTypeKey && (n = n + \" \" + fl.getClassName(this._providerArgs.parentTypeKey, e)), this._className = n, this._unThemedSelector = fl.getSelector(this._providerArgs.key, this._providerArgs.parentTypeKey, e), this._buildCSS(), this._usesThemeColors ? this._themeListener = i.onDidColorThemeChange(e => {\n                this._theme = i.getColorTheme(), this._removeCSS(), this._buildCSS()\n            }) : this._themeListener = null\n        }\n        dispose() {\n            this._hasContent && (this._removeCSS(), this._hasContent = !1), this._themeListener && (this._themeListener.dispose(), this._themeListener = null)\n        }\n        get hasContent() {\n            return this._hasContent\n        }\n        get hasLetterSpacing() {\n            return this._hasLetterSpacing\n        }\n        get className() {\n            return this._className\n        }\n        _buildCSS() {\n            var e = this._providerArgs.options;\n            let t, i, n;\n            switch (this._ruleType) {\n                case 0:\n                    t = this.getCSSTextForModelDecorationClassName(e), i = this.getCSSTextForModelDecorationClassName(e.light), n = this.getCSSTextForModelDecorationClassName(e.dark);\n                    break;\n                case 1:\n                    t = this.getCSSTextForModelDecorationInlineClassName(e), i = this.getCSSTextForModelDecorationInlineClassName(e.light), n = this.getCSSTextForModelDecorationInlineClassName(e.dark);\n                    break;\n                case 2:\n                    t = this.getCSSTextForModelDecorationGlyphMarginClassName(e), i = this.getCSSTextForModelDecorationGlyphMarginClassName(e.light), n = this.getCSSTextForModelDecorationGlyphMarginClassName(e.dark);\n                    break;\n                case 3:\n                    t = this.getCSSTextForModelDecorationContentClassName(e.before), i = this.getCSSTextForModelDecorationContentClassName(e.light && e.light.before), n = this.getCSSTextForModelDecorationContentClassName(e.dark && e.dark.before);\n                    break;\n                case 4:\n                    t = this.getCSSTextForModelDecorationContentClassName(e.after), i = this.getCSSTextForModelDecorationContentClassName(e.light && e.light.after), n = this.getCSSTextForModelDecorationContentClassName(e.dark && e.dark.after);\n                    break;\n                case 5:\n                    t = this.getCSSTextForModelDecorationContentClassName(e.beforeInjectedText), i = this.getCSSTextForModelDecorationContentClassName(e.light && e.light.beforeInjectedText), n = this.getCSSTextForModelDecorationContentClassName(e.dark && e.dark.beforeInjectedText);\n                    break;\n                case 6:\n                    t = this.getCSSTextForModelDecorationContentClassName(e.afterInjectedText), i = this.getCSSTextForModelDecorationContentClassName(e.light && e.light.afterInjectedText), n = this.getCSSTextForModelDecorationContentClassName(e.dark && e.dark.afterInjectedText);\n                    break;\n                default:\n                    throw new Error(\"Unknown rule type: \" + this._ruleType)\n            }\n            const r = this._providerArgs.styleSheet;\n            let o = !1;\n            0 < t.length && (r.insertRule(`${this._unThemedSelector} {${t}}`, 0), o = !0), 0 < i.length && (r.insertRule(`.vs${this._unThemedSelector} {${i}}`, 0), o = !0), 0 < n.length && (r.insertRule(`.vs-dark${this._unThemedSelector}, .hc-black${this._unThemedSelector} {${n}}`, 0), o = !0), this._hasContent = o\n        }\n        _removeCSS() {\n            this._providerArgs.styleSheet.removeRulesContainingSelector(this._unThemedSelector)\n        }\n        getCSSTextForModelDecorationClassName(e) {\n            if (!e) return \"\";\n            const t = [];\n            return this.collectCSSText(e, [\"backgroundColor\"], t), this.collectCSSText(e, [\"outline\", \"outlineColor\", \"outlineStyle\", \"outlineWidth\"], t), this.collectBorderSettingsCSSText(e, t), t.join(\"\")\n        }\n        getCSSTextForModelDecorationInlineClassName(e) {\n            if (!e) return \"\";\n            const t = [];\n            return this.collectCSSText(e, [\"fontStyle\", \"fontWeight\", \"textDecoration\", \"cursor\", \"color\", \"opacity\", \"letterSpacing\"], t), e.letterSpacing && (this._hasLetterSpacing = !0), t.join(\"\")\n        }\n        getCSSTextForModelDecorationContentClassName(e) {\n            if (!e) return \"\";\n            const t = [];\n            if (void 0 !== e) {\n                if (this.collectBorderSettingsCSSText(e, t), void 0 !== e.contentIconPath && t.push(b.v(pl.contentIconPath, s.p(h.a.revive(e.contentIconPath)))), \"string\" == typeof e.contentText) {\n                    var i = e.contentText.match(/^.*$/m)[0].replace(/['\\\\]/g, \"\\\\$&\");\n                    t.push(b.v(pl.contentText, i))\n                }\n                this.collectCSSText(e, [\"verticalAlign\", \"fontStyle\", \"fontWeight\", \"fontSize\", \"fontFamily\", \"textDecoration\", \"color\", \"opacity\", \"backgroundColor\", \"margin\", \"padding\"], t), this.collectCSSText(e, [\"width\", \"height\"], t) && t.push(\"display:inline-block;\")\n            }\n            return t.join(\"\")\n        }\n        getCSSTextForModelDecorationGlyphMarginClassName(e) {\n            if (!e) return \"\";\n            const t = [];\n            return void 0 !== e.gutterIconPath && (t.push(b.v(pl.gutterIconPath, s.p(h.a.revive(e.gutterIconPath)))), void 0 !== e.gutterIconSize && t.push(b.v(pl.gutterIconSize, e.gutterIconSize))), t.join(\"\")\n        }\n        collectBorderSettingsCSSText(e, t) {\n            return !!this.collectCSSText(e, [\"border\", \"borderColor\", \"borderRadius\", \"borderSpacing\", \"borderStyle\", \"borderWidth\"], t) && (t.push(b.v(\"box-sizing: border-box;\")), !0)\n        }\n        collectCSSText(e, t, i) {\n            var n, r = i.length;\n            for (n of t) {\n                var o = this.resolveValue(e[n]);\n                \"string\" == typeof o && i.push(b.v(pl[n], o))\n            }\n            return i.length !== r\n        }\n        resolveValue(e) {\n            if ((t = e) && \"string\" == typeof t.id) {\n                this._usesThemeColors = !0;\n                const t = this._theme.getColor(e.id);\n                return t ? t.toString() : \"transparent\"\n            }\n            var t;\n            return e\n        }\n    }\n    class fl {\n        static getClassName(e, t) {\n            return \"ced-\" + e + \"-\" + t\n        }\n        static getSelector(e, t, i) {\n            let n = \".monaco-editor .\" + this.getClassName(e, i);\n            return t && (n = n + \".\" + this.getClassName(t, i)), 3 === i ? n += \"::before\" : 4 === i && (n += \"::after\"), n\n        }\n    }\n    x = function(e, t) {\n        return function(i, n) {\n            t(i, n, e)\n        }\n    };\n    let ml = class extends S {\n        constructor(e, t, i) {\n            super(e, i), this.onCodeEditorAdd(() => this._checkContextKey()), this.onCodeEditorRemove(() => this._checkContextKey()), this._editorIsOpen = t.createKey(\"editorIsOpen\", !1), this._activeCodeEditor = null\n        }\n        _checkContextKey() {\n            let e = !1;\n            for (const t of this.listCodeEditors())\n                if (!t.isSimpleWidget) {\n                    e = !0;\n                    break\n                } this._editorIsOpen.set(e)\n        }\n        setActiveCodeEditor(e) {\n            this._activeCodeEditor = e\n        }\n        getActiveCodeEditor() {\n            return this._activeCodeEditor\n        }\n        openCodeEditor(e, t, i) {\n            return t ? Promise.resolve(this.doOpenEditor(t, e)) : Promise.resolve(null)\n        }\n        doOpenEditor(e, t) {\n            if (!this.findModel(e, t.resource)) {\n                if (t.resource) {\n                    var i = t.resource.scheme;\n                    if (i === g.c.http || i === g.c.https) return Object(s.U)(t.resource.toString()), e\n                }\n                return null\n            }\n            return (t = t.options ? t.options.selection : null) && (\"number\" == typeof t.endLineNumber && \"number\" == typeof t.endColumn ? (e.setSelection(t), e.revealRangeInCenter(t, 1)) : (t = {\n                lineNumber: t.startLineNumber,\n                column: t.startColumn\n            }, e.setPosition(t), e.revealPositionInCenter(t, 1))), e\n        }\n        findModel(e, t) {\n            const i = e.getModel();\n            return i && i.uri.toString() !== t.toString() ? null : i\n        }\n    };\n    ml = function(e, t, i, n) {\n        var r, o = arguments.length,\n            s = o < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n);\n        else\n            for (var a = e.length - 1; 0 <= a; a--)(r = e[a]) && (s = (o < 3 ? r(s) : 3 < o ? r(t, i, s) : r(t, i)) || s);\n        return 3 < o && s && Object.defineProperty(t, i, s), s\n    }([x(1, Yt.b), x(2, ir.b)], ml), t = function(e, t, i, n) {\n        var r, o = arguments.length,\n            s = o < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n);\n        else\n            for (var a = e.length - 1; 0 <= a; a--)(r = e[a]) && (s = (o < 3 ? r(s) : 3 < o ? r(t, i, s) : r(t, i)) || s);\n        return 3 < o && s && Object.defineProperty(t, i, s), s\n    }, ae = function(e, t) {\n        return function(i, n) {\n            t(i, n, e)\n        }\n    };\n    let vl = 0,\n        bl = !1,\n        _l = class extends aa {\n            constructor(e, t, i, n, r, o, s, a, l, d) {\n                const c = Object.assign({}, t);\n                c.ariaLabel = c.ariaLabel || di.editorViewAccessibleLabel, c.ariaLabel = c.ariaLabel + \";\" + di.accessibilityHelpMessage, super(e, c, {}, i, n, r, o, a, l, d), this._standaloneKeybindingService = s instanceof Ci ? s : null,\n                    function(e) {\n                        if (!e) {\n                            if (bl) return;\n                            bl = !0\n                        }\n                        Mi.b(e || document.body)\n                    }(c.ariaContainerElement)\n            }\n            addCommand(e, t, i) {\n                if (!this._standaloneKeybindingService) return console.warn(\"Cannot add command because the editor is configured with an unrecognized KeybindingService\"), null;\n                var n = \"DYNAMIC_\" + ++vl;\n                i = Yt.a.deserialize(i);\n                return this._standaloneKeybindingService.addDynamicKeybinding(n, e, t, i), n\n            }\n            createContextKey(e, t) {\n                return this._contextKeyService.createKey(e, t)\n            }\n            addAction(e) {\n                if (\"string\" != typeof e.id || \"string\" != typeof e.label || \"function\" != typeof e.run) throw new Error(\"Invalid action descriptor, `id`, `label` and `run` are required properties!\");\n                if (!this._standaloneKeybindingService) return console.warn(\"Cannot add keybinding because the editor is configured with an unrecognized KeybindingService\"), v.a.None;\n                const t = e.id;\n                var i = e.label,\n                    n = Yt.a.and(Yt.a.equals(\"editorId\", this.getId()), Yt.a.deserialize(e.precondition)),\n                    r = e.keybindings,\n                    o = Yt.a.and(n, Yt.a.deserialize(e.keybindingContext)),\n                    s = e.contextMenuGroupId || null,\n                    a = e.contextMenuOrder || 0,\n                    l = (t, ...i) => Promise.resolve(e.run(this, ...i));\n                const d = new v.b;\n                var c = this.getId() + \":\" + t;\n                if (d.add(m.a.registerCommand(c, l)), s && d.add(sl.d.appendMenuItem(sl.b.EditorContext, {\n                        command: {\n                            id: c,\n                            title: i\n                        },\n                        when: n,\n                        group: s,\n                        order: a\n                    })), Array.isArray(r))\n                    for (const e of r) d.add(this._standaloneKeybindingService.addDynamicKeybinding(c, e, l, o));\n                return n = new ms(c, i, i, n, l, this._contextKeyService), this._actions[t] = n, d.add(Object(v.i)(() => {\n                    delete this._actions[t]\n                })), d\n            }\n            _triggerCommand(e, t) {\n                if (this._codeEditorService instanceof ml) try {\n                    this._codeEditorService.setActiveCodeEditor(this), super._triggerCommand(e, t)\n                } finally {\n                    this._codeEditorService.setActiveCodeEditor(null)\n                } else super._triggerCommand(e, t)\n            }\n        };\n    _l = t([ae(2, _.a), ae(3, o.a), ae(4, m.b), ae(5, Yt.b), ae(6, al.a), ae(7, ir.b), ae(8, hi.a), ae(9, Ks)], _l);\n    let wl = class extends _l {\n        constructor(e, t, i, n, r, o, s, a, l, d, c, h, u, p, g) {\n            const f = Object.assign({}, t);\n            Ni(h, f, !1);\n            var m = d.registerEditorContainer(e);\n            let v;\n            \"string\" == typeof f.theme && d.setTheme(f.theme), void 0 !== f.autoDetectHighContrast && d.setAutoDetectHighContrast(Boolean(f.autoDetectHighContrast)), t = f.model, delete f.model, super(e, f, n, r, o, s, a, d, c, u), this._contextViewService = l, this._configurationService = h, this._standaloneThemeService = d, this._register(i), this._register(m), void 0 === t ? (v = Cl(p, g, f.value || \"\", f.language || Hn.a.text, void 0), this._ownsModel = !0) : (v = t, this._ownsModel = !1), this._attachModel(v), v && (t = {\n                oldModelUrl: null,\n                newModelUrl: v.uri\n            }, this._onDidChangeModel.fire(t))\n        }\n        dispose() {\n            super.dispose()\n        }\n        updateOptions(e) {\n            Ni(this._configurationService, e, !1), \"string\" == typeof e.theme && this._standaloneThemeService.setTheme(e.theme), void 0 !== e.autoDetectHighContrast && this._standaloneThemeService.setAutoDetectHighContrast(Boolean(e.autoDetectHighContrast)), super.updateOptions(e)\n        }\n        _attachModel(e) {\n            super._attachModel(e), this._modelData && this._contextViewService.setContainer(this._modelData.view.domNode.domNode)\n        }\n        _postDetachModelCleanup(e) {\n            super._postDetachModelCleanup(e), e && this._ownsModel && (e.dispose(), this._ownsModel = !1)\n        }\n    };\n    wl = t([ae(3, _.a), ae(4, o.a), ae(5, m.b), ae(6, Yt.b), ae(7, al.a), ae(8, Aa.b), ae(9, ol), ae(10, hi.a), ae(11, Wt.a), ae(12, Ks), ae(13, ee.a), ae(14, K.a)], wl);\n    let yl = class extends Ua {\n        constructor(e, t, i, n, r, o, s, a, l, d, c, h, u, p, g) {\n            var f = Object.assign({}, t);\n            Ni(h, f, !0), t = d.registerEditorContainer(e), \"string\" == typeof f.theme && d.setTheme(f.theme), void 0 !== f.autoDetectHighContrast && d.setAutoDetectHighContrast(Boolean(f.autoDetectHighContrast)), super(e, f, {}, g, a, r, n, l, d, c, u, p), this._contextViewService = s, this._configurationService = h, this._standaloneThemeService = d, this._register(i), this._register(t), this._contextViewService.setContainer(this._containerDomElement)\n        }\n        dispose() {\n            super.dispose()\n        }\n        updateOptions(e) {\n            Ni(this._configurationService, e, !0), \"string\" == typeof e.theme && this._standaloneThemeService.setTheme(e.theme), void 0 !== e.autoDetectHighContrast && this._standaloneThemeService.setAutoDetectHighContrast(Boolean(e.autoDetectHighContrast)), super.updateOptions(e)\n        }\n        _createInnerEditor(e, t, i) {\n            return e.createInstance(_l, t, i)\n        }\n        getOriginalEditor() {\n            return super.getOriginalEditor()\n        }\n        getModifiedEditor() {\n            return super.getModifiedEditor()\n        }\n        addCommand(e, t, i) {\n            return this.getModifiedEditor().addCommand(e, t, i)\n        }\n        createContextKey(e, t) {\n            return this.getModifiedEditor().createContextKey(e, t)\n        }\n        addAction(e) {\n            return this.getModifiedEditor().addAction(e)\n        }\n    };\n\n    function Cl(e, t, i, n, r) {\n        if (i = i || \"\", n) return xl(e, i, t.create(n), r); {\n            n = i.indexOf(\"\\n\");\n            let o = i;\n            return -1 !== n && (o = i.substring(0, n)), xl(e, i, t.createByFilepathOrFirstLine(r || null, o), r)\n        }\n    }\n\n    function xl(e, t, i, n) {\n        return e.createModel(t, i, n)\n    }\n    yl = t([ae(3, _.a), ae(4, Yt.b), ae(5, al.a), ae(6, Aa.b), ae(7, U), ae(8, o.a), ae(9, ol), ae(10, hi.a), ae(11, Wt.a), ae(12, Aa.a), ae(13, Ba), ae(14, ja.a)], yl);\n    const Sl = Object.prototype.hasOwnProperty;\n    class kl {\n        constructor() {\n            this._languageIdToLanguage = [], this._languageToLanguageId = new Map, this._register(H.a, 0), this._register(Ws, 1), this._nextLanguageId = 2\n        }\n        _register(e, t) {\n            this._languageIdToLanguage[t] = e, this._languageToLanguageId.set(e, t)\n        }\n        register(e) {\n            var t;\n            this._languageToLanguageId.has(e) || (t = this._nextLanguageId++, this._register(e, t))\n        }\n        encodeLanguageId(e) {\n            return this._languageToLanguageId.get(e) || 0\n        }\n        decodeLanguageId(e) {\n            return this._languageIdToLanguage[e] || H.a\n        }\n    }\n    class Ll extends v.a {\n        constructor(e = !0, t = !1) {\n            super(), this._onDidChange = this._register(new D.b), this.onDidChange = this._onDidChange.event, Ll.instanceCount++, this._warnOnOverwrite = t, this.languageIdCodec = new kl, this._languages = {}, this._mimeTypesMap = {}, this._nameMap = {}, this._lowercaseNameMap = {}, e && (this._initializeFromRegistry(), this._register(Vs.onDidChangeLanguages(e => {\n                this._initializeFromRegistry()\n            })))\n        }\n        dispose() {\n            Ll.instanceCount--, super.dispose()\n        }\n        _initializeFromRegistry() {\n            this._languages = {}, this._mimeTypesMap = {}, this._nameMap = {}, this._lowercaseNameMap = {}, Hn.b();\n            var e = Vs.getLanguages();\n            this._registerLanguages(e)\n        }\n        _registerLanguages(e) {\n            for (const t of e) this._registerLanguage(t);\n            this._mimeTypesMap = {}, this._nameMap = {}, this._lowercaseNameMap = {}, Object.keys(this._languages).forEach(e => {\n                let t = this._languages[e];\n                t.name && (this._nameMap[t.name] = t.identifier), t.aliases.forEach(e => {\n                    this._lowercaseNameMap[e.toLowerCase()] = t.identifier\n                }), t.mimetypes.forEach(e => {\n                    this._mimeTypesMap[e] = t.identifier\n                })\n            }), xt.a.as(Ct.a.配置).registerOverrideIdentifiers(Vs.getLanguages().map(e => e.id)), this._onDidChange.fire()\n        }\n        _registerLanguage(e) {\n            var t = e.id;\n            let i;\n            Sl.call(this._languages, t) ? i = this._languages[t] : (this.languageIdCodec.register(t), i = {\n                identifier: t,\n                name: null,\n                mimetypes: [],\n                aliases: [],\n                extensions: [],\n                filenames: [],\n                configurationFiles: []\n            }, this._languages[t] = i), this._mergeLanguage(i, e)\n        }\n        _mergeLanguage(e, t) {\n            var i = t.id;\n            let n = null;\n            if (Array.isArray(t.mimetypes) && 0 < t.mimetypes.length && (e.mimetypes.push(...t.mimetypes), n = t.mimetypes[0]), n || (n = \"text/x-\" + i, e.mimetypes.push(n)), Array.isArray(t.extensions))\n                for (var r of (t.configuration ? e.extensions = t.extensions.concat(e.extensions) : e.extensions = e.extensions.concat(t.extensions), t.extensions)) Hn.d({\n                    id: i,\n                    mime: n,\n                    extension: r\n                }, this._warnOnOverwrite);\n            if (Array.isArray(t.filenames))\n                for (var o of t.filenames) Hn.d({\n                    id: i,\n                    mime: n,\n                    filename: o\n                }, this._warnOnOverwrite), e.filenames.push(o);\n            if (Array.isArray(t.filenamePatterns))\n                for (var s of t.filenamePatterns) Hn.d({\n                    id: i,\n                    mime: n,\n                    filepattern: s\n                }, this._warnOnOverwrite);\n            if (\"string\" == typeof t.firstLine && 0 < t.firstLine.length) {\n                let r = t.firstLine;\n                \"^\" !== r.charAt(0) && (r = \"^\" + r);\n                try {\n                    var a = new RegExp(r);\n                    b.N(a) || Hn.d({\n                        id: i,\n                        mime: n,\n                        firstline: a\n                    }, this._warnOnOverwrite)\n                } catch (e) {\n                    Object(se.f)(e)\n                }\n            }\n            e.aliases.push(i);\n            let l = null;\n            if (void 0 !== t.aliases && Array.isArray(t.aliases) && (l = 0 === t.aliases.length ? [null] : t.aliases), null !== l)\n                for (const t of l) t && 0 !== t.length && e.aliases.push(t);\n            var d = null !== l && 0 < l.length;\n            d && null === l[0] || (a = (d ? l[0] : null) || i, !d && e.name || (e.name = a)), t.configuration && e.configurationFiles.push(t.configuration)\n        }\n        isRegisteredMode(e) {\n            return !!Sl.call(this._mimeTypesMap, e) || Sl.call(this._languages, e)\n        }\n        getModeIdForLanguageNameLowercase(e) {\n            return Sl.call(this._lowercaseNameMap, e) ? this._lowercaseNameMap[e] : null\n        }\n        extractModeIds(e) {\n            return e ? e.split(\",\").map(e => e.trim()).map(e => Sl.call(this._mimeTypesMap, e) ? this._mimeTypesMap[e] : e).filter(e => Sl.call(this._languages, e)) : []\n        }\n        validateLanguageId(e) {\n            return e && e !== H.a ? Sl.call(this._languages, e) ? e : null : H.a\n        }\n        getModeIdsFromFilepathOrFirstLine(e, t) {\n            if (!e && !t) return [];\n            let i = Hn.c(e, t);\n            return this.extractModeIds(i.join(\",\"))\n        }\n    }\n    Ll.instanceCount = 0;\n    class Ol {\n        constructor(e, t) {\n            let i;\n            this._selector = t, this.languageId = this._selector(), this._onDidChange = new D.b({\n                onFirstListenerAdd: () => {\n                    i = e(() => this._evaluate())\n                },\n                onLastListenerRemove: () => {\n                    i.dispose()\n                }\n            }), this.onDidChange = this._onDidChange.event\n        }\n        _evaluate() {\n            var e = this._selector();\n            e !== this.languageId && (this.languageId = e, this._onDidChange.fire(this.languageId))\n        }\n    }\n    class El extends v.a {\n        constructor(e = !1) {\n            super(), this._onDidEncounterLanguage = this._register(new D.b), this.onDidEncounterLanguage = this._onDidEncounterLanguage.event, this._onLanguagesMaybeChanged = this._register(new D.b({\n                leakWarningThreshold: 200\n            })), this.onLanguagesMaybeChanged = this._onLanguagesMaybeChanged.event, El.instanceCount++, this._encounteredLanguages = new Set, this._registry = this._register(new Ll(!0, e)), this.languageIdCodec = this._registry.languageIdCodec, this._register(this._registry.onDidChange(() => this._onLanguagesMaybeChanged.fire()))\n        }\n        dispose() {\n            El.instanceCount--, super.dispose()\n        }\n        isRegisteredMode(e) {\n            return this._registry.isRegisteredMode(e)\n        }\n        getModeIdForLanguageName(e) {\n            return this._registry.getModeIdForLanguageNameLowercase(e)\n        }\n        getModeIdByFilepathOrFirstLine(e, t) {\n            return t = this._registry.getModeIdsFromFilepathOrFirstLine(e, t), Object(ne.j)(t, null)\n        }\n        getModeId(e) {\n            return e = this._registry.extractModeIds(e), Object(ne.j)(e, null)\n        }\n        validateLanguageId(e) {\n            return this._registry.validateLanguageId(e)\n        }\n        create(e) {\n            return new Ol(this.onLanguagesMaybeChanged, () => {\n                var t = this.getModeId(e);\n                return this._createModeAndGetLanguageIdentifier(t)\n            })\n        }\n        createByFilepathOrFirstLine(e, t) {\n            return new Ol(this.onLanguagesMaybeChanged, () => {\n                var i = this.getModeIdByFilepathOrFirstLine(e, t);\n                return this._createModeAndGetLanguageIdentifier(i)\n            })\n        }\n        _createModeAndGetLanguageIdentifier(e) {\n            return e = this.validateLanguageId(e || \"plaintext\") || H.a, this._getOrCreateMode(e), e\n        }\n        triggerMode(e) {\n            e = this.getModeId(e), this._getOrCreateMode(e || \"plaintext\")\n        }\n        _getOrCreateMode(e) {\n            this._encounteredLanguages.has(e) || (this._encounteredLanguages.add(e), e = this.validateLanguageId(e) || H.a, this._onDidEncounterLanguage.fire(e))\n        }\n    }\n    El.instanceCount = 0;\n    var Nl = i(101),\n        Dl = i(126),\n        Il = i(130),\n        Tl = i(99);\n    gi = function(e, t) {\n        return function(i, n) {\n            t(i, n, e)\n        }\n    };\n    let Ml = class {\n        constructor(e, t, i, n) {\n            this._legend = e, this._themeService = t, this._modeService = i, this._logService = n, this._hashTable = new Al, this._hasWarnedOverlappingTokens = !1\n        }\n        getMetadata(e, t, i) {\n            var n = this._modeService.languageIdCodec.encodeLanguageId(i);\n            let r;\n            if (o = this._hashTable.get(e, t, n)) r = o.metadata, this._logService.getLevel() === re.c.Trace && this._logService.trace(`SemanticTokensProviderStyling [CACHED] ${e} / ${t}: foreground ${z.z.getForeground(r)}, fontStyle ${z.z.getFontStyle(r).toString(2)}`);\n            else {\n                let s = this._legend.tokenTypes[e];\n                const a = [];\n                if (s) {\n                    let e = t;\n                    for (let t = 0; 0 < e && t < this._legend.tokenModifiers.length; t++) 1 & e && a.push(this._legend.tokenModifiers[t]), e >>= 1;\n                    var o;\n                    0 < e && this._logService.getLevel() === re.c.Trace && (this._logService.trace(`SemanticTokensProviderStyling: unknown token modifier index: ${t.toString(2)} for legend: ${JSON.stringify(this._legend.tokenModifiers)}`), a.push(\"not-in-legend\")), void 0 === (o = this._themeService.getColorTheme().getTokenStyleMetadata(s, a, i)) ? r = 2147483647 : (void(r = 0) !== o.italic && (r |= 1 | (i = (o.italic ? 1 : 0) << 11)), void 0 !== o.bold && (r |= 2 | (o.bold ? 2 : 0) << 11), void 0 !== o.underline && (r |= 4 | (o.underline ? 4 : 0) << 11), o.foreground && (r |= 8 | (o = o.foreground << 14)), 0 === r && (r = 2147483647))\n                } else this._logService.getLevel() === re.c.Trace && this._logService.trace(`SemanticTokensProviderStyling: unknown token type index: ${e} for legend: ${JSON.stringify(this._legend.tokenTypes)}`), r = 2147483647, s = \"not-in-legend\";\n                this._hashTable.add(e, t, n, r), this._logService.getLevel() === re.c.Trace && this._logService.trace(`SemanticTokensProviderStyling ${e} (${s}) / ${t} (${a.join(\" \")}): foreground ${z.z.getForeground(r)}, fontStyle ${z.z.getFontStyle(r).toString(2)}`)\n            }\n            return r\n        }\n        warnOverlappingSemanticTokens(e, t) {\n            this._hasWarnedOverlappingTokens || (this._hasWarnedOverlappingTokens = !0, console.warn(`Overlapping semantic tokens detected at lineNumber ${e}, column ${t}`))\n        }\n    };\n    Ml = function(e, t, i, n) {\n        var r, o = arguments.length,\n            s = o < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n);\n        else\n            for (var a = e.length - 1; 0 <= a; a--)(r = e[a]) && (s = (o < 3 ? r(s) : 3 < o ? r(t, i, s) : r(t, i)) || s);\n        return 3 < o && s && Object.defineProperty(t, i, s), s\n    }([gi(1, ir.b), gi(2, K.a), gi(3, re.b)], Ml);\n    class Pl {\n        constructor(e, t, i, n) {\n            this.tokenTypeIndex = e, this.tokenModifierSet = t, this.languageId = i, this.metadata = n, this.next = null\n        }\n    }\n    class Al {\n        constructor() {\n            this._elementsCount = 0, this._currentLengthIndex = 0, this._currentLength = Al._SIZES[this._currentLengthIndex], this._growCount = Math.round(this._currentLengthIndex + 1 < Al._SIZES.length ? 2 / 3 * this._currentLength : 0), this._elements = [], Al._nullOutEntries(this._elements, this._currentLength)\n        }\n        static _nullOutEntries(e, t) {\n            for (let i = 0; i < t; i++) e[i] = null\n        }\n        _hash2(e, t) {\n            return (e << 5) - e + t | 0\n        }\n        _hashFunc(e, t, i) {\n            return this._hash2(this._hash2(e, t), i) % this._currentLength\n        }\n        get(e, t, i) {\n            var n = this._hashFunc(e, t, i);\n            let r = this._elements[n];\n            for (; r;) {\n                if (r.tokenTypeIndex === e && r.tokenModifierSet === t && r.languageId === i) return r;\n                r = r.next\n            }\n            return null\n        }\n        add(e, t, i, n) {\n            if (this._elementsCount++, 0 !== this._growCount && this._elementsCount >= this._growCount) {\n                var r = this._elements;\n                this._currentLengthIndex++, this._currentLength = Al._SIZES[this._currentLengthIndex], this._growCount = Math.round(this._currentLengthIndex + 1 < Al._SIZES.length ? 2 / 3 * this._currentLength : 0), this._elements = [], Al._nullOutEntries(this._elements, this._currentLength);\n                for (const e of r) {\n                    let t = e;\n                    for (; t;) {\n                        var o = t.next;\n                        t.next = null, this._add(t), t = o\n                    }\n                }\n            }\n            this._add(new Pl(e, t, i, n))\n        }\n        _add(e) {\n            var t = this._hashFunc(e.tokenTypeIndex, e.tokenModifierSet, e.languageId);\n            e.next = this._elements[t], this._elements[t] = e\n        }\n    }\n\n    function Rl(e) {\n        const t = new Uint32Array(function(e) {\n            let t = 0;\n            if (t += 2, \"full\" === e.type) t += 1 + e.data.length;\n            else {\n                t += 1, t += 3 * e.deltas.length;\n                for (const i of e.deltas) i.data && (t += i.data.length)\n            }\n            return t\n        }(e));\n        let i = 0;\n        if (t[i++] = e.id, \"full\" === e.type) t[i++] = 1, t[i++] = e.data.length, t.set(e.data, i), i += e.data.length;\n        else {\n            t[i++] = 2, t[i++] = e.deltas.length;\n            for (const n of e.deltas) t[i++] = n.start, t[i++] = n.deleteCount, n.data ? (t[i++] = n.data.length, t.set(n.data, i), i += n.data.length) : t[i++] = 0\n        }\n        return function(e) {\n            return e = new Uint8Array(e.buffer, e.byteOffset, 4 * e.length), A.e() || function(e) {\n                for (let o = 0, s = e.length; o < s; o += 4) {\n                    var t = e[o + 0],\n                        i = e[o + 1],\n                        n = e[o + 2],\n                        r = e[o + 3];\n                    e[o + 0] = r, e[o + 1] = n, e[o + 2] = i, e[o + 3] = t\n                }\n            }(e), c.a.wrap(e)\n        }(t)\n    }\n    Al._SIZES = [3, 7, 13, 31, 61, 127, 251, 509, 1021, 2039, 4093, 8191, 16381, 32749, 65521, 131071, 262139, 524287, 1048573, 2097143];\n    var Fl = function(e, t, i, n) {\n        return new(i = i || Promise)((function(r, o) {\n            function s(e) {\n                try {\n                    l(n.next(e))\n                } catch (e) {\n                    o(e)\n                }\n            }\n\n            function a(e) {\n                try {\n                    l(n.throw(e))\n                } catch (e) {\n                    o(e)\n                }\n            }\n\n            function l(e) {\n                var t;\n                e.done ? r(e.value) : ((t = e.value) instanceof i ? t : new i((function(e) {\n                    e(t)\n                }))).then(s, a)\n            }\n            l((n = n.apply(e, t || [])).next())\n        }))\n    };\n\n    function jl(e) {\n        return e && e.data\n    }\n\n    function Bl(e) {\n        return e && Array.isArray(e.edits)\n    }\n    class Vl {\n        constructor(e, t) {\n            this.provider = e, this.tokens = t\n        }\n    }\n\n    function Wl(e) {\n        return z.k.has(e)\n    }\n\n    function zl(e, t, i, n) {\n        return Fl(this, void 0, void 0, (function*() {\n            const r = (o = e, 0 < (o = z.k.orderedGroups(o)).length ? o[0] : []);\n            var o = yield Promise.all(r.map(r => Fl(this, void 0, void 0, (function*() {\n                let o;\n                try {\n                    o = yield r.provideDocumentSemanticTokens(e, r === t ? i : null, n)\n                } catch (e) {\n                    Object(se.g)(e), o = null\n                }\n                return o && (jl(o) || Bl(o)) || (o = null), new Vl(r, o)\n            }))));\n            for (const e of o)\n                if (e.tokens) return e;\n            return 0 < o.length ? o[0] : null\n        }))\n    }\n    class Hl {\n        constructor(e, t) {\n            this.provider = e, this.tokens = t\n        }\n    }\n\n    function Ul(e) {\n        return 0 < (e = z.j.orderedGroups(e)).length ? e[0] : []\n    }\n\n    function Kl(e, t, i) {\n        return Fl(this, void 0, void 0, (function*() {\n            const n = Ul(e);\n            var r = yield Promise.all(n.map(n => Fl(this, void 0, void 0, (function*() {\n                let r;\n                try {\n                    r = yield n.provideDocumentRangeSemanticTokens(e, t, i)\n                } catch (e) {\n                    Object(se.g)(e), r = null\n                }\n                return r && jl(r) || (r = null), new Hl(n, r)\n            }))));\n            for (const e of r)\n                if (e.tokens) return e;\n            return 0 < r.length ? r[0] : null\n        }))\n    }\n\n    function $l(e) {\n        return e.toString()\n    }\n\n    function ql(e) {\n        const t = new Dl.a,\n            i = e.createSnapshot();\n        for (var n; n = i.read();) t.update(n);\n        return t.digest()\n    }\n    m.a.registerCommand(\"_provideDocumentSemanticTokensLegend\", (e, ...t) => Fl(void 0, void 0, void 0, (function*() {\n        var [i] = t;\n        Object(ve.b)(i instanceof h.a);\n        var n = e.get(ee.a).getModel(i);\n        if (n) {\n            const t = (n = n, 0 < (n = z.k.orderedGroups(n)).length ? n[0] : null);\n            return t ? t[0].getLegend() : e.get(m.b).executeCommand(\"_provideDocumentRangeSemanticTokensLegend\", i)\n        }\n    }))), m.a.registerCommand(\"_provideDocumentSemanticTokens\", (e, ...t) => Fl(void 0, void 0, void 0, (function*() {\n        var [i] = t;\n        Object(ve.b)(i instanceof h.a);\n        const n = e.get(ee.a).getModel(i);\n        if (n) {\n            if (!Wl(n)) return e.get(m.b).executeCommand(\"_provideDocumentRangeSemanticTokens\", i, n.getFullModelRange());\n            if (i = yield zl(n, null, null, a.a.None)) {\n                const {\n                    provider: e,\n                    tokens: t\n                } = i;\n                if (t && jl(t)) return i = Rl({\n                    id: 0,\n                    type: \"full\",\n                    data: t.data\n                }), t.resultId && e.releaseDocumentSemanticTokens(t.resultId), i\n            }\n        }\n    }))), m.a.registerCommand(\"_provideDocumentRangeSemanticTokensLegend\", (e, ...t) => Fl(void 0, void 0, void 0, (function*() {\n        var [i, n] = t;\n        if (Object(ve.b)(i instanceof h.a), i = e.get(ee.a).getModel(i)) {\n            const e = Ul(i);\n            if (0 !== e.length) {\n                if (1 === e.length) return e[0].getLegend();\n                if (!n || !T.a.isIRange(n)) return console.warn(\"provideDocumentRangeSemanticTokensLegend might be out-of-sync with provideDocumentRangeSemanticTokens unless a range argument is passed in\"), e[0].getLegend();\n                const t = yield Kl(i, T.a.lift(n), a.a.None);\n                return t ? t.provider.getLegend() : void 0\n            }\n        }\n    }))), m.a.registerCommand(\"_provideDocumentRangeSemanticTokens\", (e, ...t) => Fl(void 0, void 0, void 0, (function*() {\n        var [i, n] = t;\n        if (Object(ve.b)(i instanceof h.a), Object(ve.b)(T.a.isIRange(n)), (i = e.get(ee.a).getModel(i)) && (n = yield Kl(i, T.a.lift(n), a.a.None)) && n.tokens) return Rl({\n            id: 0,\n            type: \"full\",\n            data: n.tokens.data\n        })\n    }))), S = function(e, t, i, n) {\n        var r, o = arguments.length,\n            s = o < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n);\n        else\n            for (var a = e.length - 1; 0 <= a; a--)(r = e[a]) && (s = (o < 3 ? r(s) : 3 < o ? r(t, i, s) : r(t, i)) || s);\n        return 3 < o && s && Object.defineProperty(t, i, s), s\n    }, x = function(e, t) {\n        return function(i, n) {\n            t(i, n, e)\n        }\n    };\n    class Gl {\n        constructor(e, t, i) {\n            this._modelEventListeners = new v.b, this.model = e, this._languageSelection = null, this._languageSelectionListener = null, this._modelEventListeners.add(e.onWillDispose(() => t(e))), this._modelEventListeners.add(e.onDidChangeLanguage(t => i(e, t)))\n        }\n        _disposeLanguageSelection() {\n            this._languageSelectionListener && (this._languageSelectionListener.dispose(), this._languageSelectionListener = null)\n        }\n        dispose() {\n            this._modelEventListeners.dispose(), this._disposeLanguageSelection()\n        }\n        setLanguage(e) {\n            this._disposeLanguageSelection(), this._languageSelection = e, this._languageSelectionListener = this._languageSelection.onDidChange(() => this.model.setMode(e.languageId)), this.model.setMode(e.languageId)\n        }\n    }\n    const Yl = A.d || A.f ? 1 : 2;\n    class Zl {\n        constructor(e, t, i, n, r, o, s, a) {\n            this.uri = e, this.initialUndoRedoSnapshot = t, this.time = i, this.sharesUndoRedoStack = n, this.heapSize = r, this.sha1 = o, this.versionId = s, this.alternativeVersionId = a\n        }\n    }\n    let Xl = class e extends v.a {\n        constructor(e, t, i, n, r, o, s) {\n            super(), this._configurationService = e, this._resourcePropertiesService = t, this._themeService = i, this._logService = n, this._undoRedoService = r, this._modeService = o, this._language配置Service = s, this._onModelAdded = this._register(new D.b), this.onModelAdded = this._onModelAdded.event, this._onModelRemoved = this._register(new D.b), this.onModelRemoved = this._onModelRemoved.event, this._onModelModeChanged = this._register(new D.b), this.onModelModeChanged = this._onModelModeChanged.event, this._modelCreationOptionsByLanguageAndResource = Object.create(null), this._models = {}, this._disposedModels = new Map, this._disposedModelsHeapSize = 0, this._semanticStyling = this._register(new td(this._themeService, this._modeService, this._logService)), this._register(this._configurationService.onDidChange配置(() => this._updateModelOptions())), this._updateModelOptions(), this._register(new ed(this, this._themeService, this._configurationService, this._semanticStyling))\n        }\n        static _readModelOptions(e, t) {\n            var i;\n            let r = n.d.tabSize;\n            e.editor && void 0 !== e.editor.tabSize && (i = parseInt(e.editor.tabSize, 10), isNaN(i) || (r = i), r < 1 && (r = 1));\n            let o = r;\n            e.editor && void 0 !== e.editor.indentSize && \"tabSize\" !== e.editor.indentSize && (l = parseInt(e.editor.indentSize, 10), isNaN(l) || (o = l), o < 1 && (o = 1));\n            let s = n.d.insertSpaces;\n            e.editor && void 0 !== e.editor.insertSpaces && (s = \"false\" !== e.editor.insertSpaces && Boolean(e.editor.insertSpaces));\n            let a = Yl;\n            var l = e.eol;\n            \"\\r\\n\" === l ? a = 2 : \"\\n\" === l && (a = 1);\n            let d = n.d.trimAutoWhitespace;\n            e.editor && void 0 !== e.editor.trimAutoWhitespace && (d = \"false\" !== e.editor.trimAutoWhitespace && Boolean(e.editor.trimAutoWhitespace));\n            let c = n.d.detectIndentation;\n            e.editor && void 0 !== e.editor.detectIndentation && (c = \"false\" !== e.editor.detectIndentation && Boolean(e.editor.detectIndentation));\n            let h = n.d.largeFileOptimizations;\n            e.editor && void 0 !== e.editor.largeFileOptimizations && (h = \"false\" !== e.editor.largeFileOptimizations && Boolean(e.editor.largeFileOptimizations));\n            let u = n.d.bracketPairColorizationOptions;\n            return null !== (l = e.editor) && void 0 !== l && l.bracketPairColorization && \"object\" == typeof e.editor.bracketPairColorization && (u = {\n                enabled: !!e.editor.bracketPairColorization.enabled\n            }), {\n                isForSimpleWidget: t,\n                tabSize: r,\n                indentSize: o,\n                insertSpaces: s,\n                detectIndentation: c,\n                defaultEOL: a,\n                trimAutoWhitespace: d,\n                largeFileOptimizations: h,\n                bracketPairColorizationOptions: u\n            }\n        }\n        _getEOL(e, t) {\n            return e ? this._resourcePropertiesService.getEOL(e, t) : (t = this._configurationService.getValue(\"files.eol\", {\n                overrideIdentifier: t\n            })) && \"string\" == typeof t && \"auto\" !== t ? t : 3 === A.a || 2 === A.a ? \"\\n\" : \"\\r\\n\"\n        }\n        _shouldRestoreUndoStack() {\n            var e = this._configurationService.getValue(\"files.restoreUndoStack\");\n            return \"boolean\" != typeof e || e\n        }\n        getCreationOptions(t, i, n) {\n            let r = this._modelCreationOptionsByLanguageAndResource[t + i];\n            var o, s;\n            return r || (o = this._configurationService.getValue(\"editor\", {\n                overrideIdentifier: t,\n                resource: i\n            }), s = this._getEOL(i, t), r = e._readModelOptions({\n                editor: o,\n                eol: s\n            }, n), this._modelCreationOptionsByLanguageAndResource[t + i] = r), r\n        }\n        _updateModelOptions() {\n            var t = this._modelCreationOptionsByLanguageAndResource;\n            this._modelCreationOptionsByLanguageAndResource = Object.create(null);\n            var i = Object.keys(this._models);\n            for (let s = 0, a = i.length; s < a; s++) {\n                var n = i[s];\n                const a = this._models[n];\n                var r = a.model.getLanguageId(),\n                    o = (n = t[r + (o = a.model.uri)], this.getCreationOptions(r, o, a.model.isForSimpleWidget));\n                e._setModelOptionsForModel(a.model, o, n)\n            }\n        }\n        static _setModelOptionsForModel(e, t, i) {\n            i && i.defaultEOL !== t.defaultEOL && 1 === e.getLineCount() && e.setEOL(1 === t.defaultEOL ? 0 : 1), i && i.detectIndentation === t.detectIndentation && i.insertSpaces === t.insertSpaces && i.tabSize === t.tabSize && i.indentSize === t.indentSize && i.trimAutoWhitespace === t.trimAutoWhitespace && Object(I.c)(i.bracketPairColorizationOptions, t.bracketPairColorizationOptions) || (t.detectIndentation ? (e.detectIndentation(t.insertSpaces, t.tabSize), e.updateOptions({\n                trimAutoWhitespace: t.trimAutoWhitespace,\n                bracketColorizationOptions: t.bracketPairColorizationOptions\n            })) : e.updateOptions({\n                insertSpaces: t.insertSpaces,\n                tabSize: t.tabSize,\n                indentSize: t.indentSize,\n                trimAutoWhitespace: t.trimAutoWhitespace,\n                bracketColorizationOptions: t.bracketPairColorizationOptions\n            }))\n        }\n        _insertDisposedModel(e) {\n            this._disposedModels.set($l(e.uri), e), this._disposedModelsHeapSize += e.heapSize\n        }\n        _removeDisposedModel(e) {\n            var t = this._disposedModels.get($l(e));\n            return t && (this._disposedModelsHeapSize -= t.heapSize), this._disposedModels.delete($l(e)), t\n        }\n        _ensureDisposedModelsHeapSize(e) {\n            if (this._disposedModelsHeapSize > e) {\n                const i = [];\n                for (this._disposedModels.forEach(e => {\n                        e.sharesUndoRedoStack || i.push(e)\n                    }), i.sort((e, t) => e.time - t.time); 0 < i.length && this._disposedModelsHeapSize > e;) {\n                    var t = i.shift();\n                    this._removeDisposedModel(t.uri), null !== t.initialUndoRedoSnapshot && this._undoRedoService.restoreSnapshot(t.initialUndoRedoSnapshot)\n                }\n            }\n        }\n        _createModelData(e, t, i, n) {\n            n = this.getCreationOptions(t, i, n);\n            const r = new Rr.c(e, n, t, i, this._undoRedoService, this._modeService, this._language配置Service);\n            if (i && this._disposedModels.has($l(i))) {\n                var o = this._removeDisposedModel(i),\n                    s = (t = this._undoRedoService.getElements(i), ql(r) === o.sha1);\n                if (s || o.sharesUndoRedoStack) {\n                    for (const e of t.past) Object(Il.b)(e) && e.matchesResource(i) && e.setModel(r);\n                    for (const e of t.future) Object(Il.b)(e) && e.matchesResource(i) && e.setModel(r);\n                    this._undoRedoService.setElementsValidFlag(i, !0, e => Object(Il.b)(e) && e.matchesResource(i)), s && (r._overwriteVersionId(o.versionId), r._overwriteAlternativeVersionId(o.alternativeVersionId), r._overwriteInitialUndoRedoSnapshot(o.initialUndoRedoSnapshot))\n                } else null !== o.initialUndoRedoSnapshot && this._undoRedoService.restoreSnapshot(o.initialUndoRedoSnapshot)\n            }\n            if (s = $l(r.uri), this._models[s]) throw new Error(\"ModelService: Cannot add model because it already exists!\");\n            return o = new Gl(r, e => this._onWillDispose(e), (e, t) => this._onDidChangeLanguage(e, t)), this._models[s] = o\n        }\n        createModel(e, t, i, n = !1) {\n            let r;\n            return t ? (r = this._createModelData(e, t.languageId, i, n), this.setMode(r.model, t)) : r = this._createModelData(e, Ws, i, n), this._onModelAdded.fire(r.model), r.model\n        }\n        setMode(e, t) {\n            if (t) {\n                const i = this._models[$l(e.uri)];\n                i && i.setLanguage(t)\n            }\n        }\n        getModels() {\n            const e = [];\n            var t = Object.keys(this._models);\n            for (let n = 0, r = t.length; n < r; n++) {\n                var i = t[n];\n                e.push(this._models[i].model)\n            }\n            return e\n        }\n        getModel(e) {\n            return e = $l(e), (e = this._models[e]) ? e.model : null\n        }\n        getSemanticTokensProviderStyling(e) {\n            return this._semanticStyling.get(e)\n        }\n        _schemaShouldMaintainUndoRedoElements(e) {\n            return e.scheme === g.c.file || e.scheme === g.c.vscodeRemote || e.scheme === g.c.userData || e.scheme === g.c.vscodeNotebookCell || \"fake-fs\" === e.scheme\n        }\n        _onWillDispose(t) {\n            var i = $l(t.uri);\n            const n = this._models[i];\n            var r = this._undoRedoService.getUriComparisonKey(t.uri) !== t.uri.toString();\n            let o = !1,\n                s = 0;\n            if (r || this._shouldRestoreUndoStack() && this._schemaShouldMaintainUndoRedoElements(t.uri)) {\n                var a = this._undoRedoService.getElements(t.uri);\n                if (0 < a.past.length || 0 < a.future.length) {\n                    for (const e of a.past) Object(Il.b)(e) && e.matchesResource(t.uri) && (o = !0, s += e.heapSize(t.uri), e.setModel(t.uri));\n                    for (const e of a.future) Object(Il.b)(e) && e.matchesResource(t.uri) && (o = !0, s += e.heapSize(t.uri), e.setModel(t.uri))\n                }\n            }\n            var l = e.MAX_MEMORY_FOR_CLOSED_FILES_UNDO_STACK;\n            o ? !r && s > l ? null !== (a = n.model.getInitialUndoRedoSnapshot()) && this._undoRedoService.restoreSnapshot(a) : (this._ensureDisposedModelsHeapSize(l - s), this._undoRedoService.setElementsValidFlag(t.uri, !1, e => Object(Il.b)(e) && e.matchesResource(t.uri)), this._insertDisposedModel(new Zl(t.uri, n.model.getInitialUndoRedoSnapshot(), Date.now(), r, s, ql(t), t.getVersionId(), t.getAlternativeVersionId()))) : r || null !== (r = n.model.getInitialUndoRedoSnapshot()) && this._undoRedoService.restoreSnapshot(r), delete this._models[i], n.dispose(), delete this._modelCreationOptionsByLanguageAndResource[t.getLanguageId() + t.uri], this._onModelRemoved.fire(t)\n        }\n        _onDidChangeLanguage(t, i) {\n            var n = i.oldLanguage,\n                r = t.getLanguageId();\n            i = this.getCreationOptions(n, t.uri, t.isForSimpleWidget), r = this.getCreationOptions(r, t.uri, t.isForSimpleWidget);\n            e._setModelOptionsForModel(t, r, i), this._onModelModeChanged.fire({\n                model: t,\n                oldModeId: n\n            })\n        }\n    };\n    Xl.MAX_MEMORY_FOR_CLOSED_FILES_UNDO_STACK = 20971520, Xl = S([x(0, Wt.a), x(1, ie), x(2, ir.b), x(3, re.b), x(4, Nl.a), x(5, K.a), x(6, Q.a)], Xl);\n    const Ql = \"editor.semanticHighlighting\";\n\n    function Jl(e, t, i) {\n        return \"boolean\" == typeof(e = null === (e = i.getValue(Ql, {\n            overrideIdentifier: e.getLanguageId(),\n            resource: e.uri\n        })) || void 0 === e ? void 0 : e.enabled) ? e : t.getColorTheme().semanticHighlighting\n    }\n    class ed extends v.a {\n        constructor(e, t, i, n) {\n            super(), this._watchers = Object.create(null), this._semanticStyling = n;\n            const r = e => {\n                    this._watchers[e.uri.toString()] = new nd(e, t, this._semanticStyling)\n                },\n                o = (e, t) => {\n                    t.dispose(), delete this._watchers[e.uri.toString()]\n                },\n                s = () => {\n                    for (var n of e.getModels()) {\n                        var s = this._watchers[n.uri.toString()];\n                        Jl(n, t, i) ? s || r(n) : s && o(n, s)\n                    }\n                };\n            this._register(e.onModelAdded(e => {\n                Jl(e, t, i) && r(e)\n            })), this._register(e.onModelRemoved(e => {\n                var t = this._watchers[e.uri.toString()];\n                t && o(e, t)\n            })), this._register(i.onDidChange配置(e => {\n                e.affects配置(Ql) && s()\n            })), this._register(t.onDidColorThemeChange(s))\n        }\n    }\n    class td extends v.a {\n        constructor(e, t, i) {\n            super(), this._themeService = e, this._modeService = t, this._logService = i, this._caches = new WeakMap, this._register(this._themeService.onDidColorThemeChange(() => {\n                this._caches = new WeakMap\n            }))\n        }\n        get(e) {\n            return this._caches.has(e) || this._caches.set(e, new Ml(e.getLegend(), this._themeService, this._modeService, this._logService)), this._caches.get(e)\n        }\n    }\n    class id {\n        constructor(e, t, i) {\n            this.provider = e, this.resultId = t, this.data = i\n        }\n        dispose() {\n            this.provider.releaseDocumentSemanticTokens(this.resultId)\n        }\n    }\n    class nd extends v.a {\n        constructor(e, t, i) {\n            super(), this._isDisposed = !1, this._model = e, this._semanticStyling = i, this._fetchDocumentSemanticTokens = this._register(new q.e(() => this._fetchDocumentSemanticTokensNow(), nd.FETCH_DOCUMENT_SEMANTIC_TOKENS_DELAY)), this._currentDocumentResponse = null, this._currentDocumentRequestCancellationTokenSource = null, this._documentProvidersChangeListeners = [], this._register(this._model.onDidChangeContent(() => {\n                this._fetchDocumentSemanticTokens.isScheduled() || this._fetchDocumentSemanticTokens.schedule()\n            })), this._register(this._model.onDidChangeLanguage(() => {\n                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)\n            }));\n            const n = () => {\n                Object(v.f)(this._documentProvidersChangeListeners), this._documentProvidersChangeListeners = [];\n                for (const t of z.k.all(e)) \"function\" == typeof t.onDidChange && this._documentProvidersChangeListeners.push(t.onDidChange(() => this._fetchDocumentSemanticTokens.schedule(0)))\n            };\n            n(), this._register(z.k.onDidChange(() => {\n                n(), this._fetchDocumentSemanticTokens.schedule()\n            })), this._register(t.onDidColorThemeChange(e => {\n                this._setDocumentSemanticTokens(null, null, null, []), this._fetchDocumentSemanticTokens.schedule()\n            })), this._fetchDocumentSemanticTokens.schedule(0)\n        }\n        dispose() {\n            this._currentDocumentResponse && (this._currentDocumentResponse.dispose(), this._currentDocumentResponse = null), this._currentDocumentRequestCancellationTokenSource && (this._currentDocumentRequestCancellationTokenSource.cancel(), this._currentDocumentRequestCancellationTokenSource = null), this._setDocumentSemanticTokens(null, null, null, []), this._isDisposed = !0, super.dispose()\n        }\n        _fetchDocumentSemanticTokensNow() {\n            if (!this._currentDocumentRequestCancellationTokenSource)\n                if (Wl(this._model)) {\n                    var e = new a.b,\n                        t = this._currentDocumentResponse ? this._currentDocumentResponse.provider : null,\n                        i = this._currentDocumentResponse && this._currentDocumentResponse.resultId || null;\n                    const n = zl(this._model, t, i, e.token);\n                    this._currentDocumentRequestCancellationTokenSource = e;\n                    const r = [],\n                        o = this._model.onDidChangeContent(e => {\n                            r.push(e)\n                        });\n                    n.then(e => {\n                        var t, i;\n                        this._currentDocumentRequestCancellationTokenSource = null, o.dispose(), e ? (({\n                            provider: t,\n                            tokens: i\n                        } = e), e = this._semanticStyling.get(t), this._setDocumentSemanticTokens(t, i || null, e, r)) : this._setDocumentSemanticTokens(null, null, null, r)\n                    }, e => {\n                        e && (se.e(e) || \"string\" == typeof e.message && -1 !== e.message.indexOf(\"busy\")) || se.f(e), this._currentDocumentRequestCancellationTokenSource = null, o.dispose(), 0 < r.length && (this._fetchDocumentSemanticTokens.isScheduled() || this._fetchDocumentSemanticTokens.schedule())\n                    })\n                } else this._currentDocumentResponse && this._model.setSemanticTokens(null, !1)\n        }\n        static _copy(e, t, i, n, r) {\n            for (let o = 0; o < r; o++) i[n + o] = e[t + o]\n        }\n        _setDocumentSemanticTokens(e, t, i, n) {\n            var r = this._currentDocumentResponse,\n                o = () => {\n                    0 < n.length && !this._fetchDocumentSemanticTokens.isScheduled() && this._fetchDocumentSemanticTokens.schedule()\n                };\n            if (this._currentDocumentResponse && (this._currentDocumentResponse.dispose(), this._currentDocumentResponse = null), this._isDisposed) e && t && e.releaseDocumentSemanticTokens(t.resultId);\n            else if (e && i) {\n                if (!t) return this._model.setSemanticTokens(null, !0), void o();\n                if (Bl(t)) {\n                    if (!r) return void this._model.setSemanticTokens(null, !0);\n                    if (0 === t.edits.length) t = {\n                        resultId: t.resultId,\n                        data: r.data\n                    };\n                    else {\n                        let e = 0;\n                        for (const i of t.edits) e += (i.data ? i.data.length : 0) - i.deleteCount;\n                        var s = r.data,\n                            a = new Uint32Array(s.length + e);\n                        let i = s.length,\n                            n = a.length;\n                        for (let e = t.edits.length - 1; 0 <= e; e--) {\n                            var l = t.edits[e],\n                                d = i - (l.start + l.deleteCount);\n                            0 < d && (nd._copy(s, i - d, a, n - d, d), n -= d), l.data && (nd._copy(l.data, 0, a, n - l.data.length, l.data.length), n -= l.data.length), i = l.start\n                        }\n                        0 < i && nd._copy(s, 0, a, 0, i), t = {\n                            resultId: t.resultId,\n                            data: a\n                        }\n                    }\n                }\n                if (jl(t)) {\n                    this._currentDocumentResponse = new id(e, t.resultId, t.data);\n                    var c = function(e, t, i) {\n                        var n = e.data,\n                            r = e.data.length / 5 | 0,\n                            o = Math.max(Math.ceil(r / 1024), 400);\n                        const s = [];\n                        let a = 0,\n                            l = 1,\n                            d = 0;\n                        for (; a < r;) {\n                            var c = a;\n                            let e = Math.min(c + o, r);\n                            if (e < r) {\n                                let t = e;\n                                for (; t - 1 > c && 0 === n[5 * t];) t--;\n                                if (t - 1 === c) {\n                                    let t = e;\n                                    for (; t + 1 < r && 0 === n[5 * t];) t++;\n                                    e = t\n                                } else e = t\n                            }\n                            let m = new Uint32Array(4 * (e - c)),\n                                v = 0,\n                                b = 0,\n                                _ = 0,\n                                w = 0,\n                                y = 0;\n                            for (; a < e;) {\n                                var h = n[f = 5 * a],\n                                    u = n[1 + f],\n                                    p = l + h | 0,\n                                    g = 0 === h ? d + u | 0 : u,\n                                    f = (h = n[2 + f], u = n[3 + f], n[4 + f]);\n                                2147483647 !== (f = t.getMetadata(u, f, i)) && (0 === b && (b = p), _ === p && y > g && (t.warnOverlappingSemanticTokens(p, g + 1), w < g ? m[v - 4 + 2] = g : v -= 4), m[v] = p - b, m[v + 1] = g, m[v + 2] = g + h, m[v + 3] = f, v += 4, _ = p, w = g, y = g + h), l = p, d = g, a++\n                            }\n                            v !== m.length && (m = m.subarray(0, v));\n                            const C = new Tl.a(b, new Tl.c(m));\n                            s.push(C)\n                        }\n                        return s\n                    }(t, i, this._model.getLanguageId());\n                    if (0 < n.length)\n                        for (const e of n)\n                            for (const t of c)\n                                for (const i of e.changes) t.applyEdit(i.range, i.text);\n                    this._model.setSemanticTokens(c, !0)\n                } else this._model.setSemanticTokens(null, !0);\n                o()\n            } else this._model.setSemanticTokens(null, !1)\n        }\n    }\n    nd.FETCH_DOCUMENT_SEMANTIC_TOKENS_DELAY = 300;\n    class rd {\n        constructor(e, t, i, n, r) {\n            this._parsedThemeRuleBrand = void 0, this.token = e, this.index = t, this.fontStyle = i, this.foreground = n, this.background = r\n        }\n    }\n    const od = /^#?([0-9A-Fa-f]{6})([0-9A-Fa-f]{2})?$/;\n    class sd {\n        constructor() {\n            this._lastColorId = 0, this._id2color = [], this._color2id = new Map\n        }\n        getId(e) {\n            if (null === e) return 0;\n            const t = e.match(od);\n            if (!t) throw new Error(\"Illegal value for token color: \" + e);\n            e = t[1].toUpperCase();\n            let i = this._color2id.get(e);\n            return i || (i = ++this._lastColorId, this._color2id.set(e, i), this._id2color[i] = uo.a.fromHex(\"#\" + e), i)\n        }\n        getColorMap() {\n            return this._id2color.slice(0)\n        }\n    }\n    class ad {\n        constructor(e, t) {\n            this._colorMap = e, this._root = t, this._cache = new Map\n        }\n        static createFromRawTokenTheme(e, t) {\n            return this.createFromParsedTokenTheme(function(e) {\n                if (!e || !Array.isArray(e)) return [];\n                let t = [],\n                    i = 0;\n                for (let r = 0, o = e.length; r < o; r++) {\n                    let o = e[r],\n                        s = -1;\n                    if (\"string\" == typeof o.fontStyle) {\n                        s = 0;\n                        var n = o.fontStyle.split(\" \");\n                        for (let e = 0, t = n.length; e < t; e++) switch (n[e]) {\n                            case \"italic\":\n                                s |= 1;\n                                break;\n                            case \"bold\":\n                                s |= 2;\n                                break;\n                            case \"underline\":\n                                s |= 4\n                        }\n                    }\n                    let a = null;\n                    \"string\" == typeof o.foreground && (a = o.foreground);\n                    let l = null;\n                    \"string\" == typeof o.background && (l = o.background), t[i++] = new rd(o.token || \"\", r, s, a, l)\n                }\n                return t\n            }(e), t)\n        }\n        static createFromParsedTokenTheme(e, t) {\n            return function(e, t) {\n                e.sort((e, t) => {\n                    var i = function(e, t) {\n                        return e < t ? -1 : t < e ? 1 : 0\n                    }(e.token, t.token);\n                    return 0 !== i ? i : e.index - t.index\n                });\n                let i = 0,\n                    n = \"000000\",\n                    r = \"ffffff\";\n                for (; 1 <= e.length && \"\" === e[0].token;) {\n                    var o = e.shift(); - 1 !== o.fontStyle && (i = o.fontStyle), null !== o.foreground && (n = o.foreground), null !== o.background && (r = o.background)\n                }\n                let s = new sd;\n                for (var a of t) s.getId(a);\n                var l = s.getId(n);\n                t = s.getId(r), t = new dd(i, l, t);\n                let d = new cd(t);\n                for (let t = 0, i = e.length; t < i; t++) {\n                    var c = e[t];\n                    d.insert(c.token, c.fontStyle, s.getId(c.foreground), s.getId(c.background))\n                }\n                return new ad(s, d)\n            }(e, t)\n        }\n        getColorMap() {\n            return this._colorMap.getColorMap()\n        }\n        _match(e) {\n            return this._root.match(e)\n        }\n        match(e, t) {\n            let i = this._cache.get(t);\n            var n, r;\n            return void 0 === i && (n = this._match(t), r = function(e) {\n                if (!(e = e.match(ld))) return 0;\n                switch (e[1]) {\n                    case \"comment\":\n                        return 1;\n                    case \"string\":\n                        return 2;\n                    case \"regex\":\n                    case \"regexp\":\n                        return 4\n                }\n                throw new Error(\"Unexpected match for standard token type!\")\n            }(t), i = (n.metadata | r << 8) >>> 0, this._cache.set(t, i)), (i | e << 0) >>> 0\n        }\n    }\n    const ld = /\\b(comment|string|regex|regexp)\\b/;\n    class dd {\n        constructor(e, t, i) {\n            this._themeTrieElementRuleBrand = void 0, this._fontStyle = e, this._foreground = t, this._background = i, this.metadata = (this._fontStyle << 11 | this._foreground << 14 | this._background << 23) >>> 0\n        }\n        clone() {\n            return new dd(this._fontStyle, this._foreground, this._background)\n        }\n        acceptOverwrite(e, t, i) {\n            -1 !== e && (this._fontStyle = e), 0 !== t && (this._foreground = t), 0 !== i && (this._background = i), this.metadata = (this._fontStyle << 11 | this._foreground << 14 | this._background << 23) >>> 0\n        }\n    }\n    class cd {\n        constructor(e) {\n            this._themeTrieElementBrand = void 0, this._mainRule = e, this._children = new Map\n        }\n        match(e) {\n            if (\"\" === e) return this._mainRule;\n            var t = e.indexOf(\".\");\n            let i, n;\n            n = -1 === t ? (i = e, \"\") : (i = e.substring(0, t), e.substring(t + 1));\n            let r = this._children.get(i);\n            return void 0 !== r ? r.match(n) : this._mainRule\n        }\n        insert(e, t, i, n) {\n            if (\"\" !== e) {\n                var r = e.indexOf(\".\");\n                let o, s;\n                s = -1 === r ? (o = e, \"\") : (o = e.substring(0, r), e.substring(r + 1));\n                let a = this._children.get(o);\n                void 0 === a && (a = new cd(this._mainRule.clone()), this._children.set(o, a)), a.insert(s, t, i, n)\n            } else this._mainRule.acceptOverwrite(t, i, n)\n        }\n    }\n    const hd = {\n            base: \"vs\",\n            inherit: !1,\n            rules: [{\n                token: \"\",\n                foreground: \"000000\",\n                background: \"fffffe\"\n            }, {\n                token: \"invalid\",\n                foreground: \"cd3131\"\n            }, {\n                token: \"emphasis\",\n                fontStyle: \"italic\"\n            }, {\n                token: \"strong\",\n                fontStyle: \"bold\"\n            }, {\n                token: \"variable\",\n                foreground: \"001188\"\n            }, {\n                token: \"variable.predefined\",\n                foreground: \"4864AA\"\n            }, {\n                token: \"constant\",\n                foreground: \"dd0000\"\n            }, {\n                token: \"comment\",\n                foreground: \"008000\"\n            }, {\n                token: \"number\",\n                foreground: \"098658\"\n            }, {\n                token: \"number.hex\",\n                foreground: \"3030c0\"\n            }, {\n                token: \"regexp\",\n                foreground: \"800000\"\n            }, {\n                token: \"annotation\",\n                foreground: \"808080\"\n            }, {\n                token: \"type\",\n                foreground: \"008080\"\n            }, {\n                token: \"delimiter\",\n                foreground: \"000000\"\n            }, {\n                token: \"delimiter.html\",\n                foreground: \"383838\"\n            }, {\n                token: \"delimiter.xml\",\n                foreground: \"0000FF\"\n            }, {\n                token: \"tag\",\n                foreground: \"800000\"\n            }, {\n                token: \"tag.id.pug\",\n                foreground: \"4F76AC\"\n            }, {\n                token: \"tag.class.pug\",\n                foreground: \"4F76AC\"\n            }, {\n                token: \"meta.scss\",\n                foreground: \"800000\"\n            }, {\n                token: \"metatag\",\n                foreground: \"e00000\"\n            }, {\n                token: \"metatag.content.html\",\n                foreground: \"FF0000\"\n            }, {\n                token: \"metatag.html\",\n                foreground: \"808080\"\n            }, {\n                token: \"metatag.xml\",\n                foreground: \"808080\"\n            }, {\n                token: \"metatag.php\",\n                fontStyle: \"bold\"\n            }, {\n                token: \"key\",\n                foreground: \"863B00\"\n            }, {\n                token: \"string.key.json\",\n                foreground: \"A31515\"\n            }, {\n                token: \"string.value.json\",\n                foreground: \"0451A5\"\n            }, {\n                token: \"attribute.name\",\n                foreground: \"FF0000\"\n            }, {\n                token: \"attribute.value\",\n                foreground: \"0451A5\"\n            }, {\n                token: \"attribute.value.number\",\n                foreground: \"098658\"\n            }, {\n                token: \"attribute.value.unit\",\n                foreground: \"098658\"\n            }, {\n                token: \"attribute.value.html\",\n                foreground: \"0000FF\"\n            }, {\n                token: \"attribute.value.xml\",\n                foreground: \"0000FF\"\n            }, {\n                token: \"string\",\n                foreground: \"A31515\"\n            }, {\n                token: \"string.html\",\n                foreground: \"0000FF\"\n            }, {\n                token: \"string.sql\",\n                foreground: \"FF0000\"\n            }, {\n                token: \"string.yaml\",\n                foreground: \"0451A5\"\n            }, {\n                token: \"keyword\",\n                foreground: \"0000FF\"\n            }, {\n                token: \"keyword.json\",\n                foreground: \"0451A5\"\n            }, {\n                token: \"keyword.flow\",\n                foreground: \"AF00DB\"\n            }, {\n                token: \"keyword.flow.scss\",\n                foreground: \"0000FF\"\n            }, {\n                token: \"operator.scss\",\n                foreground: \"666666\"\n            }, {\n                token: \"operator.sql\",\n                foreground: \"778899\"\n            }, {\n                token: \"operator.swift\",\n                foreground: \"666666\"\n            }, {\n                token: \"predefined.sql\",\n                foreground: \"C700C7\"\n            }],\n            colors: {\n                [Ir.q]: \"#FFFFFE\",\n                [Ir.A]: \"#000000\",\n                [Ir.D]: \"#E5EBF1\",\n                [tr.x]: \"#D3D3D3\",\n                [tr.a]: \"#939393\",\n                [Ir.J]: \"#ADD6FF4D\"\n            }\n        },\n        ud = {\n            base: \"vs-dark\",\n            inherit: !1,\n            rules: [{\n                token: \"\",\n                foreground: \"D4D4D4\",\n                background: \"1E1E1E\"\n            }, {\n                token: \"invalid\",\n                foreground: \"f44747\"\n            }, {\n                token: \"emphasis\",\n                fontStyle: \"italic\"\n            }, {\n                token: \"strong\",\n                fontStyle: \"bold\"\n            }, {\n                token: \"variable\",\n                foreground: \"74B0DF\"\n            }, {\n                token: \"variable.predefined\",\n                foreground: \"4864AA\"\n            }, {\n                token: \"variable.parameter\",\n                foreground: \"9CDCFE\"\n            }, {\n                token: \"constant\",\n                foreground: \"569CD6\"\n            }, {\n                token: \"comment\",\n                foreground: \"608B4E\"\n            }, {\n                token: \"number\",\n                foreground: \"B5CEA8\"\n            }, {\n                token: \"number.hex\",\n                foreground: \"5BB498\"\n            }, {\n                token: \"regexp\",\n                foreground: \"B46695\"\n            }, {\n                token: \"annotation\",\n                foreground: \"cc6666\"\n            }, {\n                token: \"type\",\n                foreground: \"3DC9B0\"\n            }, {\n                token: \"delimiter\",\n                foreground: \"DCDCDC\"\n            }, {\n                token: \"delimiter.html\",\n                foreground: \"808080\"\n            }, {\n                token: \"delimiter.xml\",\n                foreground: \"808080\"\n            }, {\n                token: \"tag\",\n                foreground: \"569CD6\"\n            }, {\n                token: \"tag.id.pug\",\n                foreground: \"4F76AC\"\n            }, {\n                token: \"tag.class.pug\",\n                foreground: \"4F76AC\"\n            }, {\n                token: \"meta.scss\",\n                foreground: \"A79873\"\n            }, {\n                token: \"meta.tag\",\n                foreground: \"CE9178\"\n            }, {\n                token: \"metatag\",\n                foreground: \"DD6A6F\"\n            }, {\n                token: \"metatag.content.html\",\n                foreground: \"9CDCFE\"\n            }, {\n                token: \"metatag.html\",\n                foreground: \"569CD6\"\n            }, {\n                token: \"metatag.xml\",\n                foreground: \"569CD6\"\n            }, {\n                token: \"metatag.php\",\n                fontStyle: \"bold\"\n            }, {\n                token: \"key\",\n                foreground: \"9CDCFE\"\n            }, {\n                token: \"string.key.json\",\n                foreground: \"9CDCFE\"\n            }, {\n                token: \"string.value.json\",\n                foreground: \"CE9178\"\n            }, {\n                token: \"attribute.name\",\n                foreground: \"9CDCFE\"\n            }, {\n                token: \"attribute.value\",\n                foreground: \"CE9178\"\n            }, {\n                token: \"attribute.value.number.css\",\n                foreground: \"B5CEA8\"\n            }, {\n                token: \"attribute.value.unit.css\",\n                foreground: \"B5CEA8\"\n            }, {\n                token: \"attribute.value.hex.css\",\n                foreground: \"D4D4D4\"\n            }, {\n                token: \"string\",\n                foreground: \"CE9178\"\n            }, {\n                token: \"string.sql\",\n                foreground: \"FF0000\"\n            }, {\n                token: \"keyword\",\n                foreground: \"569CD6\"\n            }, {\n                token: \"keyword.flow\",\n                foreground: \"C586C0\"\n            }, {\n                token: \"keyword.json\",\n                foreground: \"CE9178\"\n            }, {\n                token: \"keyword.flow.scss\",\n                foreground: \"569CD6\"\n            }, {\n                token: \"operator.scss\",\n                foreground: \"909090\"\n            }, {\n                token: \"operator.sql\",\n                foreground: \"778899\"\n            }, {\n                token: \"operator.swift\",\n                foreground: \"909090\"\n            }, {\n                token: \"predefined.sql\",\n                foreground: \"FF00FF\"\n            }],\n            colors: {\n                [Ir.q]: \"#1E1E1E\",\n                [Ir.A]: \"#D4D4D4\",\n                [Ir.D]: \"#3A3D41\",\n                [tr.x]: \"#404040\",\n                [tr.a]: \"#707070\",\n                [Ir.J]: \"#ADD6FF26\"\n            }\n        },\n        pd = {\n            base: \"hc-black\",\n            inherit: !1,\n            rules: [{\n                token: \"\",\n                foreground: \"FFFFFF\",\n                background: \"000000\"\n            }, {\n                token: \"invalid\",\n                foreground: \"f44747\"\n            }, {\n                token: \"emphasis\",\n                fontStyle: \"italic\"\n            }, {\n                token: \"strong\",\n                fontStyle: \"bold\"\n            }, {\n                token: \"variable\",\n                foreground: \"1AEBFF\"\n            }, {\n                token: \"variable.parameter\",\n                foreground: \"9CDCFE\"\n            }, {\n                token: \"constant\",\n                foreground: \"569CD6\"\n            }, {\n                token: \"comment\",\n                foreground: \"608B4E\"\n            }, {\n                token: \"number\",\n                foreground: \"FFFFFF\"\n            }, {\n                token: \"regexp\",\n                foreground: \"C0C0C0\"\n            }, {\n                token: \"annotation\",\n                foreground: \"569CD6\"\n            }, {\n                token: \"type\",\n                foreground: \"3DC9B0\"\n            }, {\n                token: \"delimiter\",\n                foreground: \"FFFF00\"\n            }, {\n                token: \"delimiter.html\",\n                foreground: \"FFFF00\"\n            }, {\n                token: \"tag\",\n                foreground: \"569CD6\"\n            }, {\n                token: \"tag.id.pug\",\n                foreground: \"4F76AC\"\n            }, {\n                token: \"tag.class.pug\",\n                foreground: \"4F76AC\"\n            }, {\n                token: \"meta\",\n                foreground: \"D4D4D4\"\n            }, {\n                token: \"meta.tag\",\n                foreground: \"CE9178\"\n            }, {\n                token: \"metatag\",\n                foreground: \"569CD6\"\n            }, {\n                token: \"metatag.content.html\",\n                foreground: \"1AEBFF\"\n            }, {\n                token: \"metatag.html\",\n                foreground: \"569CD6\"\n            }, {\n                token: \"metatag.xml\",\n                foreground: \"569CD6\"\n            }, {\n                token: \"metatag.php\",\n                fontStyle: \"bold\"\n            }, {\n                token: \"key\",\n                foreground: \"9CDCFE\"\n            }, {\n                token: \"string.key\",\n                foreground: \"9CDCFE\"\n            }, {\n                token: \"string.value\",\n                foreground: \"CE9178\"\n            }, {\n                token: \"attribute.name\",\n                foreground: \"569CD6\"\n            }, {\n                token: \"attribute.value\",\n                foreground: \"3FF23F\"\n            }, {\n                token: \"string\",\n                foreground: \"CE9178\"\n            }, {\n                token: \"string.sql\",\n                foreground: \"FF0000\"\n            }, {\n                token: \"keyword\",\n                foreground: \"569CD6\"\n            }, {\n                token: \"keyword.flow\",\n                foreground: \"C586C0\"\n            }, {\n                token: \"operator.sql\",\n                foreground: \"778899\"\n            }, {\n                token: \"operator.swift\",\n                foreground: \"909090\"\n            }, {\n                token: \"predefined.sql\",\n                foreground: \"FF00FF\"\n            }],\n            colors: {\n                [Ir.q]: \"#000000\",\n                [Ir.A]: \"#FFFFFF\",\n                [tr.x]: \"#FFFFFF\",\n                [tr.a]: \"#FFFFFF\"\n            }\n        };\n    const gd = \"vs\",\n        fd = \"vs-dark\",\n        md = \"hc-black\",\n        vd = xt.a.as(Ir.a.ColorContribution),\n        bd = xt.a.as(ir.a.ThemingContribution);\n    class _d {\n        constructor(e, t) {\n            this.semanticHighlighting = !1, t = (this.themeData = t).base, 0 < e.length ? (wd(e) ? this.id = e : this.id = t + \" \" + e, this.themeName = e) : (this.id = t, this.themeName = t), this.colors = null, this.defaultColors = Object.create(null), this._tokenTheme = null\n        }\n        get base() {\n            return this.themeData.base\n        }\n        notifyBaseUpdated() {\n            this.themeData.inherit && (this.colors = null, this._tokenTheme = null)\n        }\n        getColors() {\n            if (!this.colors) {\n                const n = new Map;\n                for (var e in this.themeData.colors) n.set(e, uo.a.fromHex(this.themeData.colors[e]));\n                if (this.themeData.inherit) {\n                    var t, i = yd(this.themeData.base);\n                    for (t in i.colors) n.has(t) || n.set(t, uo.a.fromHex(i.colors[t]))\n                }\n                this.colors = n\n            }\n            return this.colors\n        }\n        getColor(e, t) {\n            return this.getColors().get(e) || (!1 !== t ? this.getDefault(e) : void 0)\n        }\n        getDefault(e) {\n            let t = this.defaultColors[e];\n            return t || (t = vd.resolveDefaultColor(e, this), this.defaultColors[e] = t, t)\n        }\n        defines(e) {\n            return Object.prototype.hasOwnProperty.call(this.getColors(), e)\n        }\n        get type() {\n            switch (this.base) {\n                case gd:\n                    return pn.a.LIGHT;\n                case md:\n                    return pn.a.HIGH_CONTRAST;\n                default:\n                    return pn.a.DARK\n            }\n        }\n        get tokenTheme() {\n            if (!this._tokenTheme) {\n                let i = [],\n                    n = [];\n                this.themeData.inherit && (i = (t = yd(this.themeData.base)).rules, t.encodedTokensColors && (n = t.encodedTokensColors));\n                var e = this.themeData.colors[\"editor.foreground\"],\n                    t = this.themeData.colors[\"editor.background\"];\n                if (e || t) {\n                    const n = {\n                        token: \"\"\n                    };\n                    e && (n.foreground = e), t && (n.background = t), i.push(n)\n                }\n                i = i.concat(this.themeData.rules), this.themeData.encodedTokensColors && (n = this.themeData.encodedTokensColors), this._tokenTheme = ad.createFromRawTokenTheme(i, n)\n            }\n            return this._tokenTheme\n        }\n        getTokenStyleMetadata(e, t, i) {\n            return e = this.tokenTheme._match([e].concat(t).join(\".\")).metadata, t = z.z.getForeground(e), e = z.z.getFontStyle(e), {\n                foreground: t,\n                italic: Boolean(1 & e),\n                bold: Boolean(2 & e),\n                underline: Boolean(4 & e)\n            }\n        }\n    }\n\n    function wd(e) {\n        return e === gd || e === fd || e === md\n    }\n\n    function yd(e) {\n        switch (e) {\n            case gd:\n                return hd;\n            case fd:\n                return ud;\n            case md:\n                return pd\n        }\n    }\n\n    function Cd(e) {\n        var t = yd(e);\n        return new _d(e, t)\n    }\n    class xd extends v.a {\n        constructor() {\n            super(), this._onColorThemeChange = this._register(new D.b), this.onDidColorThemeChange = this._onColorThemeChange.event, this._environment = Object.create(null), this._autoDetectHighContrast = !0, this._knownThemes = new Map, this._knownThemes.set(gd, Cd(gd)), this._knownThemes.set(fd, Cd(fd)), this._knownThemes.set(md, Cd(md));\n            const e = function() {\n                const e = new D.b,\n                    t = Object(ka.a)();\n                return t.onDidChange(() => e.fire()), {\n                    onDidChange: e.event,\n                    getCSS() {\n                        const e = {};\n                        var i, n;\n                        const r = [];\n                        for (i of t.getIcons()) {\n                            var o = (i => {\n                                let n = i.defaults;\n                                for (; ir.d.isThemeIcon(n);) {\n                                    var r = t.getIcon(n.id);\n                                    if (!r) return;\n                                    n = r.defaults\n                                }\n                                var o = n.fontId;\n                                if (o) {\n                                    var a = t.getIconFont(o);\n                                    if (a) return e[o] = a, `.codicon-${i.id}:before { content: '${n.fontCharacter}'; font-family: ${Object(s.o)(o)}; }`\n                                }\n                                return `.codicon-${i.id}:before { content: '${n.fontCharacter}'; }`\n                            })(i);\n                            o && r.push(o)\n                        }\n                        for (n in e) {\n                            var a = e[n].definition.src.map(e => `${Object(s.p)(e.location)} format('${e.format}')`).join(\", \");\n                            r.push(`@font-face { src: ${a}; font-family: ${Object(s.o)(n)}; font-display: block; }`)\n                        }\n                        return r.join(\"\\n\")\n                    }\n                }\n            }();\n            this._codiconCSS = e.getCSS(), this._themeCSS = \"\", this._allCSS = `${this._codiconCSS}\\n${this._themeCSS}`, this._globalStyleElement = null, this._styleElements = [], this._colorMapOverride = null, this.setTheme(gd), e.onDidChange(() => {\n                this._codiconCSS = e.getCSS(), this._updateCSS()\n            }), s.k(\"(forced-colors: active)\", () => {\n                this._updateActualTheme()\n            })\n        }\n        registerEditorContainer(e) {\n            return s.L(e) ? this._registerShadowDomContainer(e) : this._registerRegularEditorContainer()\n        }\n        _registerRegularEditorContainer() {\n            return this._globalStyleElement || (this._globalStyleElement = s.t(), this._globalStyleElement.className = \"monaco-colors\", this._globalStyleElement.textContent = this._allCSS, this._styleElements.push(this._globalStyleElement)), v.a.None\n        }\n        _registerShadowDomContainer(e) {\n            const t = s.t(e);\n            return t.className = \"monaco-colors\", t.textContent = this._allCSS, this._styleElements.push(t), {\n                dispose: () => {\n                    for (let e = 0; e < this._styleElements.length; e++)\n                        if (this._styleElements[e] === t) return void this._styleElements.splice(e, 1)\n                }\n            }\n        }\n        defineTheme(e, t) {\n            if (!/^[a-z0-9\\-]+$/i.test(e)) throw new Error(\"Illegal theme name!\");\n            if (!wd(t.base) && !wd(e)) throw new Error(\"Illegal theme base!\");\n            this._knownThemes.set(e, new _d(e, t)), wd(e) && this._knownThemes.forEach(t => {\n                t.base === e && t.notifyBaseUpdated()\n            }), this._theme.themeName === e && this.setTheme(e)\n        }\n        getColorTheme() {\n            return this._theme\n        }\n        setColorMapOverride(e) {\n            this._colorMapOverride = e, this._updateThemeOrColorMap()\n        }\n        setTheme(e) {\n            let t;\n            t = this._knownThemes.has(e) ? this._knownThemes.get(e) : this._knownThemes.get(gd), this._desiredTheme = t, this._updateActualTheme()\n        }\n        _updateActualTheme() {\n            var e = this._autoDetectHighContrast && window.matchMedia(\"(forced-colors: active)\").matches ? this._knownThemes.get(md) : this._desiredTheme;\n            this._theme !== e && (this._theme = e, this._updateThemeOrColorMap())\n        }\n        setAutoDetectHighContrast(e) {\n            this._autoDetectHighContrast = e, this._updateActualTheme()\n        }\n        _updateThemeOrColorMap() {\n            let e = [],\n                t = {},\n                i = {\n                    addRule: i => {\n                        t[i] || (e.push(i), t[i] = !0)\n                    }\n                };\n            bd.getThemingParticipants().forEach(e => e(this._theme, i, this._environment));\n            var n = this._colorMapOverride || this._theme.tokenTheme.getColorMap();\n            i.addRule(function(e) {\n                let t = [];\n                for (let n = 1, r = e.length; n < r; n++) {\n                    var i = e[n];\n                    t[n] = `.mtk${n} { color: ${i}; }`\n                }\n                return t.push(\".mtki { font-style: italic; }\"), t.push(\".mtkb { font-weight: bold; }\"), t.push(\".mtku { text-decoration: underline; text-underline-position: under; }\"), t.join(\"\\n\")\n            }(n)), this._themeCSS = e.join(\"\\n\"), this._updateCSS(), z.A.setColorMap(n), this._onColorThemeChange.fire(this._theme)\n        }\n        _updateCSS() {\n            this._allCSS = `${this._codiconCSS}\\n${this._themeCSS}`, this._styleElements.forEach(e => e.textContent = this._allCSS)\n        }\n        getFileIconTheme() {\n            return {\n                hasFileIcons: !1,\n                hasFolderIcons: !1,\n                hidesExplorerArrows: !1\n            }\n        }\n    }\n    var Sd = i(43);\n    t = function(e, t, i, n) {\n        var r, o = arguments.length,\n            s = o < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n);\n        else\n            for (var a = e.length - 1; 0 <= a; a--)(r = e[a]) && (s = (o < 3 ? r(s) : 3 < o ? r(t, i, s) : r(t, i)) || s);\n        return 3 < o && s && Object.defineProperty(t, i, s), s\n    }, ae = function(e, t) {\n        return function(i, n) {\n            t(i, n, e)\n        }\n    };\n    const kd = \"data-keybinding-context\";\n    class Ld {\n        constructor(e, t) {\n            this._id = e, this._parent = t, this._value = Object.create(null), this._value._contextId = e\n        }\n        setValue(e, t) {\n            return this._value[e] !== t && (this._value[e] = t, !0)\n        }\n        removeValue(e) {\n            return e in this._value && (delete this._value[e], !0)\n        }\n        getValue(e) {\n            var t = this._value[e];\n            return void 0 === t && this._parent ? this._parent.getValue(e) : t\n        }\n    }\n    class Od extends Ld {\n        constructor() {\n            super(-1, null)\n        }\n        setValue(e, t) {\n            return !1\n        }\n        removeValue(e) {\n            return !1\n        }\n        getValue(e) {}\n    }\n    Od.INSTANCE = new Od;\n    class Ed extends Ld {\n        constructor(e, t, i) {\n            super(e, null), this._configurationService = t, this._values = d.c.forConfigKeys(), this._listener = this._configurationService.onDidChange配置(e => {\n                if (6 === e.source) {\n                    var t = Array.from(Sd.a.map(this._values, ([e]) => e));\n                    this._values.clear(), i.fire(new Id(t))\n                } else {\n                    const t = [];\n                    for (const i of e.affectedKeys) {\n                        var n = \"config.\" + i,\n                            r = this._values.findSuperstr(n);\n                        void 0 !== r && (t.push(...Sd.a.map(r, ([e]) => e)), this._values.deleteSuperstr(n)), this._values.has(n) && (t.push(n), this._values.delete(n))\n                    }\n                    i.fire(new Id(t))\n                }\n            })\n        }\n        dispose() {\n            this._listener.dispose()\n        }\n        getValue(e) {\n            if (0 !== e.indexOf(Ed._keyPrefix)) return super.getValue(e);\n            if (this._values.has(e)) return this._values.get(e);\n            var t = e.substr(Ed._keyPrefix.length),\n                i = this._configurationService.getValue(t);\n            let n = void 0;\n            switch (typeof i) {\n                case \"number\":\n                case \"boolean\":\n                case \"string\":\n                    n = i;\n                    break;\n                default:\n                    n = Array.isArray(i) ? JSON.stringify(i) : i\n            }\n            return this._values.set(e, n), n\n        }\n        setValue(e, t) {\n            return super.setValue(e, t)\n        }\n        removeValue(e) {\n            return super.removeValue(e)\n        }\n    }\n    Ed._keyPrefix = \"config.\";\n    class Nd {\n        constructor(e, t, i) {\n            this._service = e, this._key = t, this._defaultValue = i, this.reset()\n        }\n        set(e) {\n            this._service.setContext(this._key, e)\n        }\n        reset() {\n            void 0 === this._defaultValue ? this._service.removeContext(this._key) : this._service.setContext(this._key, this._defaultValue)\n        }\n        get() {\n            return this._service.getContextKeyValue(this._key)\n        }\n    }\n    class Dd {\n        constructor(e) {\n            this.key = e\n        }\n        affectsSome(e) {\n            return e.has(this.key)\n        }\n    }\n    class Id {\n        constructor(e) {\n            this.keys = e\n        }\n        affectsSome(e) {\n            for (const t of this.keys)\n                if (e.has(t)) return !0;\n            return !1\n        }\n    }\n    class Td {\n        constructor(e) {\n            this.events = e\n        }\n        affectsSome(e) {\n            for (const t of this.events)\n                if (t.affectsSome(e)) return !0;\n            return !1\n        }\n    }\n    class Md {\n        constructor(e) {\n            this._onDidChangeContext = new D.e({\n                merge: e => new Td(e)\n            }), this.onDidChangeContext = this._onDidChangeContext.event, this._isDisposed = !1, this._myContextId = e\n        }\n        createKey(e, t) {\n            if (this._isDisposed) throw new Error(\"AbstractContextKeyService has been disposed\");\n            return new Nd(this, e, t)\n        }\n        bufferChangeEvents(e) {\n            this._onDidChangeContext.pause();\n            try {\n                e()\n            } finally {\n                this._onDidChangeContext.resume()\n            }\n        }\n        createScoped(e) {\n            if (this._isDisposed) throw new Error(\"AbstractContextKeyService has been disposed\");\n            return new Ad(this, e)\n        }\n        contextMatchesRules(e) {\n            if (this._isDisposed) throw new Error(\"AbstractContextKeyService has been disposed\");\n            var t = this.getContextValuesContainer(this._myContextId);\n            return Zt.contextMatchesRules(t, e)\n        }\n        getContextKeyValue(e) {\n            if (!this._isDisposed) return this.getContextValuesContainer(this._myContextId).getValue(e)\n        }\n        setContext(e, t) {\n            if (!this._isDisposed) {\n                const i = this.getContextValuesContainer(this._myContextId);\n                i && i.setValue(e, t) && this._onDidChangeContext.fire(new Dd(e))\n            }\n        }\n        removeContext(e) {\n            this._isDisposed || this.getContextValuesContainer(this._myContextId).removeValue(e) && this._onDidChangeContext.fire(new Dd(e))\n        }\n        getContext(e) {\n            return this._isDisposed ? Od.INSTANCE : this.getContextValuesContainer(function(e) {\n                for (; e;) {\n                    if (e.hasAttribute(kd)) {\n                        var t = e.getAttribute(kd);\n                        return t ? parseInt(t, 10) : NaN\n                    }\n                    e = e.parentElement\n                }\n                return 0\n            }(e))\n        }\n    }\n    let Pd = class extends Md {\n        constructor(e) {\n            super(0), this._contexts = new Map, this._toDispose = new v.b, this._lastContextId = 0, e = new Ed(this._myContextId, e, this._onDidChangeContext), this._contexts.set(this._myContextId, e), this._toDispose.add(e)\n        }\n        dispose() {\n            this._onDidChangeContext.dispose(), this._isDisposed = !0, this._toDispose.dispose()\n        }\n        getContextValuesContainer(e) {\n            return !this._isDisposed && this._contexts.get(e) || Od.INSTANCE\n        }\n        createChildContext(e = this._myContextId) {\n            if (this._isDisposed) throw new Error(\"ContextKeyService has been disposed\");\n            var t = ++this._lastContextId;\n            return this._contexts.set(t, new Ld(t, this.getContextValuesContainer(e))), t\n        }\n        disposeContext(e) {\n            this._isDisposed || this._contexts.delete(e)\n        }\n    };\n    Pd = t([ae(0, Wt.a)], Pd);\n    class Ad extends Md {\n        constructor(e, t) {\n            if (super(e.createChildContext()), this._parentChangeListener = new v.d, this._parent = e, this._updateParentChangeListener(), this._domNode = t, this._domNode.hasAttribute(kd)) {\n                let e = \"\";\n                this._domNode.classList && (e = Array.from(this._domNode.classList.values()).join(\", \")), console.error(\"Element already has context attribute\" + (e ? \": \" + e : \"\"))\n            }\n            this._domNode.setAttribute(kd, String(this._myContextId))\n        }\n        _updateParentChangeListener() {\n            this._parentChangeListener.value = this._parent.onDidChangeContext(this._onDidChangeContext.fire, this._onDidChangeContext)\n        }\n        dispose() {\n            this._isDisposed || (this._onDidChangeContext.dispose(), this._parent.disposeContext(this._myContextId), this._parentChangeListener.dispose(), this._domNode.removeAttribute(kd), this._isDisposed = !0)\n        }\n        getContextValuesContainer(e) {\n            return this._isDisposed ? Od.INSTANCE : this._parent.getContextValuesContainer(e)\n        }\n        createChildContext(e = this._myContextId) {\n            if (this._isDisposed) throw new Error(\"ScopedContextKeyService has been disposed\");\n            return this._parent.createChildContext(e)\n        }\n        disposeContext(e) {\n            this._isDisposed || this._parent.disposeContext(e)\n        }\n    }\n    m.a.registerCommand(Yt.d, (function(e, t, i) {\n        e.get(Yt.b).createKey(String(t), i)\n    })), m.a.registerCommand({\n        id: \"getContextKeyInfo\",\n        handler: () => [...Yt.c.all()].sort((e, t) => e.key.localeCompare(t.key)),\n        description: {\n            description: Object(yt.a)(\"getContextKeyInfo\", \"A command that returns information about context keys\"),\n            args: []\n        }\n    }), m.a.registerCommand(\"_generateContextKeyInfo\", (function() {\n        const e = [],\n            t = new Set;\n        for (var i of Yt.c.all()) t.has(i.key) || (t.add(i.key), e.push(i));\n        e.sort((e, t) => e.key.localeCompare(t.key)), console.log(JSON.stringify(e, void 0, 2))\n    }));\n    var Rd, Fd, jd = i(139);\n    gi = i(135);\n\n    function Bd(e) {\n        let t = e.definition;\n        for (; t instanceof Sa.b;) t = t.definition;\n        return `.codicon-${e.id}:before { content: '${t.fontCharacter}'; }`\n    }\n\n    function Vd(e, t) {\n        if (e.start >= t.end || t.start >= e.end) return {\n            start: 0,\n            end: 0\n        };\n        var i = Math.max(e.start, t.start);\n        return (t = Math.min(e.end, t.end)) - i <= 0 ? {\n            start: 0,\n            end: 0\n        } : {\n            start: i,\n            end: t\n        }\n    }\n\n    function Wd(e) {\n        return e.end - e.start <= 0\n    }\n\n    function zd(e, t, i) {\n        var n = i.mode === Fd.ALIGN ? i.offset : i.offset + i.size,\n            r = i.mode === Fd.ALIGN ? i.offset + i.size : i.offset;\n        return 0 === i.position ? t <= e - n ? n : t <= r ? r - t : Math.max(e - t, 0) : t <= r ? r - t : t <= e - n ? n : 0\n    }\n    i(426), i(430), (S = Rd = Rd || {}).intersect = Vd, S.isEmpty = Wd, S.intersects = function(e, t) {\n        return !Wd(Vd(e, t))\n    }, S.relativeComplement = function(e, t) {\n        const i = [];\n        var n = {\n            start: e.start,\n            end: Math.min(t.start, e.end)\n        };\n        e = {\n            start: Math.max(t.end, e.start),\n            end: e.end\n        };\n        return Wd(n) || i.push(n), Wd(e) || i.push(e), i\n    }, i(432), (x = Fd = Fd || {})[x.AVOID = 0] = \"AVOID\", x[x.ALIGN = 1] = \"ALIGN\";\n    class Hd extends v.a {\n        constructor(e, t) {\n            super(), this.container = null, this.delegate = null, this.toDisposeOnClean = v.a.None, this.toDisposeOnSetContainer = v.a.None, this.shadowRoot = null, this.shadowRootHostElement = null, this.view = s.a(\".context-view\"), this.useFixedPosition = !1, this.useShadowDOM = !1, s.H(this.view), this.setContainer(e, t), this._register(Object(v.i)(() => this.setContainer(null, 1)))\n        }\n        setContainer(e, t) {\n            var i;\n            if (this.container && (this.toDisposeOnSetContainer.dispose(), this.shadowRoot ? (this.shadowRoot.removeChild(this.view), (this.shadowRoot = null) !== (i = this.shadowRootHostElement) && void 0 !== i && i.remove(), this.shadowRootHostElement = null) : this.container.removeChild(this.view), this.container = null), e) {\n                if (this.container = e, this.useFixedPosition = 1 !== t, this.useShadowDOM = 3 === t, this.useShadowDOM) {\n                    this.shadowRootHostElement = s.a(\".shadow-root-host\"), this.container.appendChild(this.shadowRootHostElement), this.shadowRoot = this.shadowRootHostElement.attachShadow({\n                        mode: \"open\"\n                    });\n                    const e = document.createElement(\"style\");\n                    e.textContent = Ud, this.shadowRoot.appendChild(e), this.shadowRoot.appendChild(this.view), this.shadowRoot.appendChild(s.a(\"slot\"))\n                } else this.container.appendChild(this.view);\n                const i = new v.b;\n                Hd.BUBBLE_UP_EVENTS.forEach(e => {\n                    i.add(s.l(this.container, e, e => {\n                        this.onDOMEvent(e, !1)\n                    }))\n                }), Hd.BUBBLE_DOWN_EVENTS.forEach(e => {\n                    i.add(s.l(this.container, e, e => {\n                        this.onDOMEvent(e, !0)\n                    }, !0))\n                }), this.toDisposeOnSetContainer = i\n            }\n        }\n        show(e) {\n            this.isVisible() && this.hide(), s.q(this.view), this.view.className = \"context-view\", this.view.style.top = \"0px\", this.view.style.left = \"0px\", this.view.style.zIndex = \"2500\", this.view.style.position = this.useFixedPosition ? \"fixed\" : \"absolute\", s.S(this.view), this.toDisposeOnClean = e.render(this.view) || v.a.None, this.delegate = e, this.doLayout(), this.delegate.focus && this.delegate.focus()\n        }\n        getViewElement() {\n            return this.view\n        }\n        layout() {\n            this.isVisible() && (!1 !== this.delegate.canRelayout || A.c && zn.a.pointerEvents ? (this.delegate.layout && this.delegate.layout(), this.doLayout()) : this.hide())\n        }\n        doLayout() {\n            if (this.isVisible()) {\n                var e = this.delegate.getAnchor();\n                let o;\n                o = s.J(e) ? {\n                    top: (n = s.A(e)).top,\n                    left: n.left,\n                    width: n.width,\n                    height: n.height\n                } : {\n                    top: e.y,\n                    left: e.x,\n                    width: e.width || 1,\n                    height: e.height || 2\n                };\n                var t = s.F(this.view),\n                    i = s.E(this.view),\n                    n = this.delegate.anchorPosition || 0;\n                e = this.delegate.anchorAlignment || 0;\n                let a, l;\n                if (0 === (this.delegate.anchorAxisAlignment || 0)) {\n                    var r = {\n                        offset: o.top - window.pageYOffset,\n                        size: o.height,\n                        position: 0 === n ? 0 : 1\n                    };\n                    const s = {\n                        offset: o.left,\n                        size: o.width,\n                        position: 0 === e ? 0 : 1,\n                        mode: Fd.ALIGN\n                    };\n                    a = zd(window.innerHeight, i, r) + window.pageYOffset, Rd.intersects({\n                        start: a,\n                        end: a + i\n                    }, {\n                        start: r.offset,\n                        end: r.offset + r.size\n                    }) && (s.mode = Fd.AVOID), l = zd(window.innerWidth, t, s)\n                } else {\n                    r = {\n                        offset: o.left,\n                        size: o.width,\n                        position: 0 === e ? 0 : 1\n                    };\n                    const s = {\n                        offset: o.top,\n                        size: o.height,\n                        position: 0 === n ? 0 : 1,\n                        mode: Fd.ALIGN\n                    };\n                    l = zd(window.innerWidth, t, r), Rd.intersects({\n                        start: l,\n                        end: l + t\n                    }, {\n                        start: r.offset,\n                        end: r.offset + r.size\n                    }) && (s.mode = Fd.AVOID), a = zd(window.innerHeight, i, s) + window.pageYOffset\n                }\n                this.view.classList.remove(\"top\", \"bottom\", \"left\", \"right\"), this.view.classList.add(0 === n ? \"bottom\" : \"top\"), this.view.classList.add(0 === e ? \"left\" : \"right\"), this.view.classList.toggle(\"fixed\", this.useFixedPosition), e = s.A(this.container), this.view.style.top = a - (this.useFixedPosition ? s.A(this.view) : e).top + \"px\", this.view.style.left = l - (this.useFixedPosition ? s.A(this.view) : e).left + \"px\", this.view.style.width = \"initial\"\n            }\n        }\n        hide(e) {\n            const t = this.delegate;\n            (this.delegate = null) !== t && void 0 !== t && t.onHide && t.onHide(e), this.toDisposeOnClean.dispose(), s.H(this.view)\n        }\n        isVisible() {\n            return !!this.delegate\n        }\n        onDOMEvent(e, t) {\n            this.delegate && (this.delegate.onDOMEvent ? this.delegate.onDOMEvent(e, document.activeElement) : t && !s.I(e.target, this.container) && this.hide())\n        }\n        dispose() {\n            this.hide(), super.dispose()\n        }\n    }\n    Hd.BUBBLE_UP_EVENTS = [\"click\", \"keydown\", \"focus\", \"blur\"], Hd.BUBBLE_DOWN_EVENTS = [\"click\"];\n    let Ud = '\\n\\t:host {\\n\\t\\tall: initial; /* 1st rule so subsequent properties are reset. */\\n\\t}\\n\\n\\t@font-face {\\n\\t\\tfont-family: \"codicon\";\\n\\t\\tfont-display: block;\\n\\t\\tsrc: url(\"./codicon.ttf?5d4d76ab2ce5108968ad644d591a16a6\") format(\"truetype\");\\n\\t}\\n\\n\\t.codicon[class*=\\'codicon-\\'] {\\n\\t\\tfont: normal normal normal 16px/1 codicon;\\n\\t\\tdisplay: inline-block;\\n\\t\\ttext-decoration: none;\\n\\t\\ttext-rendering: auto;\\n\\t\\ttext-align: center;\\n\\t\\t-webkit-font-smoothing: antialiased;\\n\\t\\t-moz-osx-font-smoothing: grayscale;\\n\\t\\tuser-select: none;\\n\\t\\t-webkit-user-select: none;\\n\\t\\t-ms-user-select: none;\\n\\t}\\n\\n\\t:host {\\n\\t\\tfont-family: -apple-system, BlinkMacSystemFont, \"Segoe WPC\", \"Segoe UI\", \"HelveticaNeue-Light\", system-ui, \"Ubuntu\", \"Droid Sans\", sans-serif;\\n\\t}\\n\\n\\t:host-context(.mac) { font-family: -apple-system, BlinkMacSystemFont, sans-serif; }\\n\\t:host-context(.mac:lang(zh-Hans)) { font-family: -apple-system, BlinkMacSystemFont, \"PingFang SC\", \"Hiragino Sans GB\", sans-serif; }\\n\\t:host-context(.mac:lang(zh-Hant)) { font-family: -apple-system, BlinkMacSystemFont, \"PingFang TC\", sans-serif; }\\n\\t:host-context(.mac:lang(ja)) { font-family: -apple-system, BlinkMacSystemFont, \"Hiragino Kaku Gothic Pro\", sans-serif; }\\n\\t:host-context(.mac:lang(ko)) { font-family: -apple-system, BlinkMacSystemFont, \"Nanum Gothic\", \"Apple SD Gothic Neo\", \"AppleGothic\", sans-serif; }\\n\\n\\t:host-context(.windows) { font-family: \"Segoe WPC\", \"Segoe UI\", sans-serif; }\\n\\t:host-context(.windows:lang(zh-Hans)) { font-family: \"Segoe WPC\", \"Segoe UI\", \"Microsoft YaHei\", sans-serif; }\\n\\t:host-context(.windows:lang(zh-Hant)) { font-family: \"Segoe WPC\", \"Segoe UI\", \"Microsoft Jhenghei\", sans-serif; }\\n\\t:host-context(.windows:lang(ja)) { font-family: \"Segoe WPC\", \"Segoe UI\", \"Yu Gothic UI\", \"Meiryo UI\", sans-serif; }\\n\\t:host-context(.windows:lang(ko)) { font-family: \"Segoe WPC\", \"Segoe UI\", \"Malgun Gothic\", \"Dotom\", sans-serif; }\\n\\n\\t:host-context(.linux) { font-family: system-ui, \"Ubuntu\", \"Droid Sans\", sans-serif; }\\n\\t: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; }\\n\\t: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; }\\n\\t: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; }\\n\\t: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; }\\n';\n    var Kd = i(109);\n    const $d = \"$(\";\n    var qd;\n    t = new RegExp(`\\\\$\\\\(${Sa.a.iconNameExpression}(?:${Sa.a.iconModifierExpression})?\\\\)`, \"g\");\n    const Gd = new RegExp(\"(\\\\\\\\)?\" + t.source, \"g\");\n    new RegExp(\"\\\\\\\\\" + t.source, \"g\");\n    const Yd = new RegExp(`(\\\\s)?(\\\\\\\\)?${t.source}(\\\\s)?`, \"g\");\n\n    function Zd(e) {\n        var t = e.indexOf($d);\n        return -1 === t ? {\n            text: e\n        } : function(e, t) {\n            const i = [];\n            let n = \"\";\n\n            function r(e) {\n                if (e) {\n                    n += e;\n                    for (const t of e) i.push(d)\n                }\n            }\n            let o, s, a = -1,\n                l = \"\",\n                d = 0,\n                c = t;\n            var h = e.length;\n            for (r(e.substr(0, t)); c < h;) {\n                o = e[c], s = e[c + 1], o === $d[0] && s === $d[1] ? (a = c, r(l), l = $d, c++) : \")\" === o && -1 !== a ? (d += c - a + 1, a = -1, l = \"\") : -1 !== a ? /^[a-z0-9\\-]$/i.test(o) ? l += o : (r(l), a = -1, l = \"\") : r(o), c++\n            }\n            return r(l), {\n                text: n,\n                iconOffsets: i\n            }\n        }(e, t)\n    }\n\n    function Xd(e, t, i = !1) {\n        var {\n            text: n,\n            iconOffsets: r\n        } = t;\n        if (!r || 0 === r.length) return Object(Kd.c)(e, n, i);\n        t = Object(b.J)(n, \" \");\n        var o = n.length - t.length;\n        if (i = Object(Kd.c)(e, t, i))\n            for (const e of i) {\n                var s = r[e.start + o] + o;\n                e.start += s, e.end += s\n            }\n        return i\n    }\n    const Qd = /\\(&([^\\s&])\\)|(^|[^&])&([^\\s&])/,\n        Jd = /(&amp;)?(&amp;)([^\\s&])/g,\n        ec = Object(Sa.e)(\"menu-selection\", Sa.b.check),\n        tc = Object(Sa.e)(\"menu-submenu\", Sa.b.chevronRight);\n    (ae = qd = qd || {})[ae.Right = 0] = \"Right\", ae[ae.Left = 1] = \"Left\";\n    class ic extends Ca.a {\n        constructor(e, t, i = {}) {\n            e.classList.add(\"monaco-menu-container\"), e.setAttribute(\"role\", \"presentation\");\n            const n = document.createElement(\"div\");\n            n.classList.add(\"monaco-menu\"), n.setAttribute(\"role\", \"presentation\"), super(n, {\n                orientation: 1,\n                actionViewItemProvider: e => this.doGetActionViewItem(e, i, r),\n                context: i.context,\n                actionRunner: i.actionRunner,\n                ariaLabel: i.ariaLabel,\n                focusOnlyEnabledItems: !0,\n                triggerKeys: {\n                    keys: [3, ...A.f || A.d ? [10] : []],\n                    keyDown: !0\n                }\n            }), this.menuElement = n, this.actionsList.setAttribute(\"role\", \"menu\"), this.actionsList.tabIndex = 0, this.menuDisposables = this._register(new v.b), this.initializeStyleSheet(e), this._register(Ki.b.addTarget(n)), Object(s.g)(n, s.d.KEY_DOWN, e => {\n                new gt.a(e).equals(2) && e.preventDefault()\n            }), i.enableMnemonics && this.menuDisposables.add(Object(s.g)(n, s.d.KEY_DOWN, e => {\n                var t = e.key.toLocaleLowerCase();\n                if (this.mnemonics.has(t)) {\n                    s.c.stop(e, !0);\n                    const i = this.mnemonics.get(t);\n                    1 === i.length && (i[0] instanceof rc && i[0].container && this.focusItemByElement(i[0].container), i[0].onClick(e)), 1 < i.length && ((e = i.shift()) && e.container && (this.focusItemByElement(e.container), i.push(e)), this.mnemonics.set(t, i))\n                }\n            })), A.d && this._register(Object(s.g)(n, s.d.KEY_DOWN, e => {\n                const t = new gt.a(e);\n                t.equals(14) || t.equals(11) ? (this.focusedItem = this.viewItems.length - 1, this.focusNext(), s.c.stop(e, !0)) : (t.equals(13) || t.equals(12)) && (this.focusedItem = 0, this.focusPrevious(), s.c.stop(e, !0))\n            })), this._register(Object(s.g)(this.domNode, s.d.MOUSE_OUT, e => {\n                var t = e.relatedTarget;\n                Object(s.I)(t, this.domNode) || (this.focusedItem = void 0, this.updateFocus(), e.stopPropagation())\n            })), this._register(Object(s.g)(this.actionsList, s.d.MOUSE_OVER, e => {\n                let t = e.target;\n                if (t && Object(s.I)(t, this.actionsList) && t !== this.actionsList) {\n                    for (; t.parentElement !== this.actionsList && null !== t.parentElement;) t = t.parentElement;\n                    t.classList.contains(\"action-item\") && (e = this.focusedItem, this.setFocusedItem(t), e !== this.focusedItem && this.updateFocus())\n                }\n            })), this._register(Ki.b.addTarget(this.actionsList)), this._register(Object(s.g)(this.actionsList, Ki.a.Tap, e => {\n                let t = e.initialTarget;\n                if (t && Object(s.I)(t, this.actionsList) && t !== this.actionsList) {\n                    for (; t.parentElement !== this.actionsList && null !== t.parentElement;) t = t.parentElement;\n                    t.classList.contains(\"action-item\") && (e = this.focusedItem, this.setFocusedItem(t), e !== this.focusedItem && this.updateFocus())\n                }\n            }));\n            let r = {\n                parent: this\n            };\n            this.mnemonics = new Map, this.scrollableElement = this._register(new Dr.a(n, {\n                alwaysConsumeMouseWheel: !0,\n                horizontal: 2,\n                vertical: 3,\n                verticalScrollbarSize: 7,\n                handleMouseWheel: !0,\n                useShadows: !0\n            }));\n            const o = this.scrollableElement.getDomNode();\n            o.style.position = \"\", this._register(Object(s.g)(n, Ki.a.Change, e => {\n                s.c.stop(e, !0);\n                var t = this.scrollableElement.getScrollPosition().scrollTop;\n                this.scrollableElement.setScrollPosition({\n                    scrollTop: t - e.translationY\n                })\n            })), this._register(Object(s.g)(o, s.d.MOUSE_UP, e => {\n                e.preventDefault()\n            })), n.style.maxHeight = Math.max(10, window.innerHeight - e.getBoundingClientRect().top - 35) + \"px\", t = t.filter(e => {\n                var t;\n                return null === (t = i.submenuIds) || void 0 === t || !t.has(e.id) || (console.warn(\"找到 submenu cycle: \" + e.id), !1)\n            }), this.push(t, {\n                icon: !0,\n                label: !0,\n                isMenu: !0\n            }), e.appendChild(this.scrollableElement.getDomNode()), this.scrollableElement.scanDomNode(), this.viewItems.filter(e => !(e instanceof oc)).forEach((e, t, i) => {\n                e.updatePositionInSet(t + 1, i.length)\n            })\n        }\n        initializeStyleSheet(e) {\n            Object(s.L)(e) ? (this.styleSheet = Object(s.t)(e), this.styleSheet.textContent = sc) : (ic.globalStyleSheet || (ic.globalStyleSheet = Object(s.t)(), ic.globalStyleSheet.textContent = sc), this.styleSheet = ic.globalStyleSheet)\n        }\n        style(e) {\n            const t = this.getContainer();\n            var i = e.foregroundColor ? \"\" + e.foregroundColor : \"\",\n                n = e.backgroundColor ? \"\" + e.backgroundColor : \"\",\n                r = e.borderColor ? \"1px solid \" + e.borderColor : \"\",\n                o = e.shadowColor ? \"0 2px 4px \" + e.shadowColor : \"\";\n            t.style.border = r, this.domNode.style.color = i, this.domNode.style.backgroundColor = n, t.style.boxShadow = o, this.viewItems && this.viewItems.forEach(t => {\n                (t instanceof nc || t instanceof oc) && t.style(e)\n            })\n        }\n        getContainer() {\n            return this.scrollableElement.getDomNode()\n        }\n        get onScroll() {\n            return this.scrollableElement.onScroll\n        }\n        focusItemByElement(e) {\n            var t = this.focusedItem;\n            this.setFocusedItem(e), t !== this.focusedItem && this.updateFocus()\n        }\n        setFocusedItem(e) {\n            for (let t = 0; t < this.actionsList.children.length; t++)\n                if (e === this.actionsList.children[t]) {\n                    this.focusedItem = t;\n                    break\n                }\n        }\n        updateFocus(e) {\n            super.updateFocus(e, !0), void 0 !== this.focusedItem && this.scrollableElement.setScrollPosition({\n                scrollTop: Math.round(this.menuElement.scrollTop)\n            })\n        }\n        doGetActionViewItem(e, t, i) {\n            if (e instanceof xa.d) return new oc(t.context, e, {\n                icon: !0\n            });\n            if (e instanceof xa.e) {\n                const r = new rc(e, e.actions, i, Object.assign(Object.assign({}, t), {\n                    submenuIds: new Set([...t.submenuIds || [], e.id])\n                }));\n                if (t.enableMnemonics) {\n                    var n = r.getMnemonic();\n                    if (n && r.isEnabled()) {\n                        let e = [];\n                        this.mnemonics.has(n) && (e = this.mnemonics.get(n)), e.push(r), this.mnemonics.set(n, e)\n                    }\n                }\n                return r\n            } {\n                const i = {\n                    enableMnemonics: t.enableMnemonics,\n                    useEventAsContext: t.useEventAsContext\n                };\n                if (t.getKeyBinding) {\n                    const r = t.getKeyBinding(e);\n                    !r || (n = r.getLabel()) && (i.keybinding = n)\n                }\n                const r = new nc(t.context, e, i);\n                if (t.enableMnemonics && (t = r.getMnemonic()) && r.isEnabled()) {\n                    let e = [];\n                    this.mnemonics.has(t) && (e = this.mnemonics.get(t)), e.push(r), this.mnemonics.set(t, e)\n                }\n                return r\n            }\n        }\n    }\n    class nc extends gi.b {\n        constructor(e, t, i = {}) {\n            if (i.isMenu = !0, super(t, t, i), this.options = i, this.options.icon = void 0 !== i.icon && i.icon, this.options.label = void 0 === i.label || i.label, this.cssClass = \"\", this.options.label && i.enableMnemonics && (i = this.getAction().label)) {\n                let e = Qd.exec(i);\n                e && (this.mnemonic = (e[1] || e[3]).toLocaleLowerCase())\n            }\n            this.runOnceToEnableMouseUp = new q.e(() => {\n                this.element && (this._register(Object(s.g)(this.element, s.d.MOUSE_UP, e => {\n                    s.c.stop(e, !0), Ri.g ? new $i.a(e).rightButton || this.onClick(e) : setTimeout(() => {\n                        this.onClick(e)\n                    }, 0)\n                })), this._register(Object(s.g)(this.element, s.d.CONTEXT_MENU, e => {\n                    s.c.stop(e, !0)\n                })))\n            }, 100), this._register(this.runOnceToEnableMouseUp)\n        }\n        render(e) {\n            super.render(e), this.element && (this.container = e, this.item = Object(s.n)(this.element, Object(s.a)(\"a.action-menu-item\")), this._action.id === xa.d.ID ? this.item.setAttribute(\"role\", \"presentation\") : (this.item.setAttribute(\"role\", \"menuitem\"), this.mnemonic && this.item.setAttribute(\"aria-keyshortcuts\", \"\" + this.mnemonic)), this.check = Object(s.n)(this.item, Object(s.a)(\"span.menu-item-check\" + ec.cssSelector)), this.check.setAttribute(\"role\", \"none\"), this.label = Object(s.n)(this.item, Object(s.a)(\"span.action-label\")), this.options.label && this.options.keybinding && (Object(s.n)(this.item, Object(s.a)(\"span.keybinding\")).textContent = this.options.keybinding), this.runOnceToEnableMouseUp.schedule(), this.updateClass(), this.updateLabel(), this.updateTooltip(), this.updateEnabled(), this.updateChecked())\n        }\n        blur() {\n            super.blur(), this.applyStyle()\n        }\n        focus() {\n            super.focus(), this.item && this.item.focus(), this.applyStyle()\n        }\n        updatePositionInSet(e, t) {\n            this.item && (this.item.setAttribute(\"aria-posinset\", \"\" + e), this.item.setAttribute(\"aria-setsize\", \"\" + t))\n        }\n        updateLabel() {\n            if (this.label && this.options.label) {\n                Object(s.q)(this.label);\n                let t = -1 === (e = this.getAction().label).indexOf($d) ? e : e.replace(Yd, (e, t, i, n) => i ? e : t || n || \"\");\n                if (t) {\n                    const i = function(e) {\n                        const t = Qd,\n                            i = t.exec(e);\n                        if (!i) return e;\n                        var n = !i[1];\n                        return e.replace(t, n ? \"$2$3\" : \"\").trim()\n                    }(t);\n                    this.options.enableMnemonics || (t = i), this.label.setAttribute(\"aria-label\", i.replace(/&&/g, \"&\"));\n                    const n = Qd.exec(t);\n                    if (n) {\n                        t = b.s(t), Jd.lastIndex = 0;\n                        let i = Jd.exec(t);\n                        for (; i && i[1];) i = Jd.exec(t);\n                        var e = e => e.replace(/&amp;&amp;/g, \"&amp;\");\n                        i ? this.label.append(b.J(e(t.substr(0, i.index)), \" \"), Object(s.a)(\"u\", {\n                            \"aria-hidden\": \"true\"\n                        }, i[3]), b.O(e(t.substr(i.index + i[0].length)), \" \")) : this.label.innerText = e(t).trim(), this.item && this.item.setAttribute(\"aria-keyshortcuts\", (n[1] || n[3]).toLocaleLowerCase())\n                    } else this.label.innerText = t.replace(/&&/g, \"&\").trim()\n                }\n            }\n        }\n        updateTooltip() {\n            let e = null;\n            this.getAction().tooltip ? e = this.getAction().tooltip : !this.options.label && this.getAction().label && this.options.icon && (e = this.getAction().label, this.options.keybinding && (e = yt.a({\n                key: \"titleLabel\",\n                comment: [\"action title\", \"action keybinding\"]\n            }, \"{0} ({1})\", e, this.options.keybinding))), e && this.item && (this.item.title = e)\n        }\n        updateClass() {\n            this.cssClass && this.item && this.item.classList.remove(...this.cssClass.split(\" \")), this.options.icon && this.label ? (this.cssClass = this.getAction().class || \"\", this.label.classList.add(\"icon\"), this.cssClass && this.label.classList.add(...this.cssClass.split(\" \")), this.updateEnabled()) : this.label && this.label.classList.remove(\"icon\")\n        }\n        updateEnabled() {\n            this.getAction().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\")))\n        }\n        updateChecked() {\n            var e;\n            this.item && (e = this.getAction().checked, this.item.classList.toggle(\"checked\", !!e), void 0 !== e ? (this.item.setAttribute(\"role\", \"menuitemcheckbox\"), this.item.setAttribute(\"aria-checked\", e ? \"true\" : \"false\")) : (this.item.setAttribute(\"role\", \"menuitem\"), this.item.setAttribute(\"aria-checked\", \"\")))\n        }\n        getMnemonic() {\n            return this.mnemonic\n        }\n        applyStyle() {\n            if (this.menuStyle) {\n                var e = this.element && this.element.classList.contains(\"focused\");\n                const t = e && this.menuStyle.selectionForegroundColor ? this.menuStyle.selectionForegroundColor : this.menuStyle.foregroundColor,\n                    i = e && this.menuStyle.selectionBackgroundColor ? this.menuStyle.selectionBackgroundColor : void 0;\n                e = e && this.menuStyle.selectionBorderColor ? \"thin solid \" + this.menuStyle.selectionBorderColor : \"\", this.item && (this.item.style.color = t ? t.toString() : \"\", this.item.style.backgroundColor = i ? i.toString() : \"\"), this.check && (this.check.style.color = t ? t.toString() : \"\"), this.container && (this.container.style.border = e)\n            }\n        }\n        style(e) {\n            this.menuStyle = e, this.applyStyle()\n        }\n    }\n    class rc extends nc {\n        constructor(e, t, i, n) {\n            super(e, e, n), this.submenuActions = t, this.parentData = i, this.submenuOptions = n, this.mysubmenu = null, this.submenuDisposables = this._register(new v.b), this.mouseOver = !1, this.expandDirection = n && void 0 !== n.expandDirection ? n.expandDirection : qd.Right, this.showScheduler = new q.e(() => {\n                this.mouseOver && (this.cleanupExistingSubmenu(!1), this.createSubmenu(!1))\n            }, 250), this.hideScheduler = new q.e(() => {\n                this.element && !Object(s.I)(Object(s.v)(), this.element) && this.parentData.submenu === this.mysubmenu && (this.parentData.parent.focus(!1), this.cleanupExistingSubmenu(!0))\n            }, 750)\n        }\n        render(e) {\n            super.render(e), 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 = Object(s.n)(this.item, Object(s.a)(\"span.submenu-indicator\" + tc.cssSelector)), this.submenuIndicator.setAttribute(\"aria-hidden\", \"true\")), this._register(Object(s.g)(this.element, s.d.KEY_UP, e => {\n                let t = new gt.a(e);\n                (t.equals(17) || t.equals(3)) && (s.c.stop(e, !0), this.createSubmenu(!0))\n            })), this._register(Object(s.g)(this.element, s.d.KEY_DOWN, e => {\n                let t = new gt.a(e);\n                Object(s.v)() === this.item && (t.equals(17) || t.equals(3)) && s.c.stop(e, !0)\n            })), this._register(Object(s.g)(this.element, s.d.MOUSE_OVER, e => {\n                this.mouseOver || (this.mouseOver = !0, this.showScheduler.schedule())\n            })), this._register(Object(s.g)(this.element, s.d.MOUSE_LEAVE, e => {\n                this.mouseOver = !1\n            })), this._register(Object(s.g)(this.element, s.d.FOCUS_OUT, e => {\n                this.element && !Object(s.I)(Object(s.v)(), this.element) && this.hideScheduler.schedule()\n            })), this._register(this.parentData.parent.onScroll(() => {\n                this.parentData.parent.focus(!1), this.cleanupExistingSubmenu(!1)\n            })))\n        }\n        updateEnabled() {}\n        onClick(e) {\n            s.c.stop(e, !0), this.cleanupExistingSubmenu(!1), this.createSubmenu(!0)\n        }\n        cleanupExistingSubmenu(e) {\n            if (this.parentData.submenu && (e || this.parentData.submenu !== this.mysubmenu)) {\n                try {\n                    this.parentData.submenu.dispose()\n                } catch (e) {}\n                this.parentData.submenu = void 0, this.updateAriaExpanded(\"false\"), this.submenuContainer && (this.submenuDisposables.clear(), this.submenuContainer = void 0)\n            }\n        }\n        calculateSubmenuMenuLayout(e, t, i, n) {\n            const r = {\n                top: 0,\n                left: 0\n            };\n            return r.left = zd(e.width, t.width, {\n                position: n === qd.Right ? 0 : 1,\n                offset: i.left,\n                size: i.width\n            }), r.left >= i.left && r.left < i.left + i.width && (i.left + 10 + t.width <= e.width && (r.left = i.left + 10), i.top += 10, i.height = 0), r.top = zd(e.height, t.height, {\n                position: 0,\n                offset: i.top,\n                size: 0\n            }), r.top + t.height === i.top && r.top + i.height + t.height <= e.height && (r.top += i.height), r\n        }\n        createSubmenu(e = !0) {\n            var t, i, n;\n            this.element && (this.parentData.submenu ? this.parentData.submenu.focus(!1) : (this.updateAriaExpanded(\"true\"), this.submenuContainer = Object(s.n)(this.element, Object(s.a)(\"div.monaco-submenu\")), this.submenuContainer.classList.add(\"menubar-menu-items-holder\", \"context-view\"), n = getComputedStyle(this.parentData.parent.domNode), t = parseFloat(n.paddingTop || \"0\") || 0, this.submenuContainer.style.zIndex = \"1\", this.submenuContainer.style.position = \"fixed\", this.submenuContainer.style.top = \"0\", this.submenuContainer.style.left = \"0\", this.parentData.submenu = new ic(this.submenuContainer, this.submenuActions.length ? this.submenuActions : [new xa.c], this.submenuOptions), this.menuStyle && this.parentData.submenu.style(this.menuStyle), n = {\n                top: (i = this.element.getBoundingClientRect()).top - t,\n                left: i.left,\n                height: i.height + 2 * t,\n                width: i.width\n            }, t = this.submenuContainer.getBoundingClientRect(), ({\n                top: i,\n                left: n\n            } = this.calculateSubmenuMenuLayout(new s.b(window.innerWidth, window.innerHeight), s.b.lift(t), n, this.expandDirection)), this.submenuContainer.style.left = n - t.left + \"px\", this.submenuContainer.style.top = i - t.top + \"px\", this.submenuDisposables.add(Object(s.g)(this.submenuContainer, s.d.KEY_UP, e => {\n                new gt.a(e).equals(15) && (s.c.stop(e, !0), this.parentData.parent.focus(), this.cleanupExistingSubmenu(!0))\n            })), this.submenuDisposables.add(Object(s.g)(this.submenuContainer, s.d.KEY_DOWN, e => {\n                new gt.a(e).equals(15) && s.c.stop(e, !0)\n            })), this.submenuDisposables.add(this.parentData.submenu.onDidCancel(() => {\n                this.parentData.parent.focus(), this.cleanupExistingSubmenu(!0)\n            })), this.parentData.submenu.focus(e), this.mysubmenu = this.parentData.submenu))\n        }\n        updateAriaExpanded(e) {\n            var t;\n            this.item && null !== (t = this.item) && void 0 !== t && t.setAttribute(\"aria-expanded\", e)\n        }\n        applyStyle() {\n            var e;\n            super.applyStyle(), this.menuStyle && (e = this.element && this.element.classList.contains(\"focused\") && this.menuStyle.selectionForegroundColor ? this.menuStyle.selectionForegroundColor : this.menuStyle.foregroundColor, this.submenuIndicator && (this.submenuIndicator.style.color = e ? \"\" + e : \"\"), this.parentData.submenu && this.parentData.submenu.style(this.menuStyle))\n        }\n        dispose() {\n            super.dispose(), this.hideScheduler.dispose(), this.mysubmenu && (this.mysubmenu.dispose(), this.mysubmenu = null), this.submenuContainer && (this.submenuContainer = void 0)\n        }\n    }\n    class oc extends gi.a {\n        style(e) {\n            this.label && (this.label.style.borderBottomColor = e.separatorColor ? \"\" + e.separatorColor : \"\")\n        }\n    }\n    let sc = `\\n.monaco-menu {\\n\\tfont-size: 13px;\\n\\n}\\n\\n${Bd(ec)}\\n${Bd(tc)}\\n\\n.monaco-menu .monaco-action-bar {\\n\\ttext-align: right;\\n\\toverflow: hidden;\\n\\twhite-space: nowrap;\\n}\\n\\n.monaco-menu .monaco-action-bar .actions-container {\\n\\tdisplay: flex;\\n\\tmargin: 0 auto;\\n\\tpadding: 0;\\n\\twidth: 100%;\\n\\tjustify-content: flex-end;\\n}\\n\\n.monaco-menu .monaco-action-bar.vertical .actions-container {\\n\\tdisplay: inline-block;\\n}\\n\\n.monaco-menu .monaco-action-bar.reverse .actions-container {\\n\\tflex-direction: row-reverse;\\n}\\n\\n.monaco-menu .monaco-action-bar .action-item {\\n\\tcursor: pointer;\\n\\tdisplay: inline-block;\\n\\ttransition: transform 50ms ease;\\n\\tposition: relative;  /* DO NOT REMOVE - this is the key to preventing the ghosting icon bug in Chrome 42 */\\n}\\n\\n.monaco-menu .monaco-action-bar .action-item.disabled {\\n\\tcursor: default;\\n}\\n\\n.monaco-menu .monaco-action-bar.animated .action-item.active {\\n\\ttransform: scale(1.272019649, 1.272019649); /* 1.272019649 = √φ */\\n}\\n\\n.monaco-menu .monaco-action-bar .action-item .icon,\\n.monaco-menu .monaco-action-bar .action-item .codicon {\\n\\tdisplay: inline-block;\\n}\\n\\n.monaco-menu .monaco-action-bar .action-item .codicon {\\n\\tdisplay: flex;\\n\\talign-items: center;\\n}\\n\\n.monaco-menu .monaco-action-bar .action-label {\\n\\tfont-size: 11px;\\n\\tmargin-right: 4px;\\n}\\n\\n.monaco-menu .monaco-action-bar .action-item.disabled .action-label,\\n.monaco-menu .monaco-action-bar .action-item.disabled .action-label:hover {\\n\\topacity: 0.4;\\n}\\n\\n/* Vertical actions */\\n\\n.monaco-menu .monaco-action-bar.vertical {\\n\\ttext-align: left;\\n}\\n\\n.monaco-menu .monaco-action-bar.vertical .action-item {\\n\\tdisplay: block;\\n}\\n\\n.monaco-menu .monaco-action-bar.vertical .action-label.separator {\\n\\tdisplay: block;\\n\\tborder-bottom: 1px solid #bbb;\\n\\tpadding-top: 1px;\\n\\tmargin-left: .8em;\\n\\tmargin-right: .8em;\\n}\\n\\n.monaco-menu .secondary-actions .monaco-action-bar .action-label {\\n\\tmargin-left: 6px;\\n}\\n\\n/* Action Items */\\n.monaco-menu .monaco-action-bar .action-item.select-container {\\n\\toverflow: hidden; /* somehow the dropdown overflows its container, we prevent it here to not push */\\n\\tflex: 1;\\n\\tmax-width: 170px;\\n\\tmin-width: 60px;\\n\\tdisplay: flex;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n\\tmargin-right: 10px;\\n}\\n\\n.monaco-menu .monaco-action-bar.vertical {\\n\\tmargin-left: 0;\\n\\toverflow: visible;\\n}\\n\\n.monaco-menu .monaco-action-bar.vertical .actions-container {\\n\\tdisplay: block;\\n}\\n\\n.monaco-menu .monaco-action-bar.vertical .action-item {\\n\\tpadding: 0;\\n\\ttransform: none;\\n\\tdisplay: flex;\\n}\\n\\n.monaco-menu .monaco-action-bar.vertical .action-item.active {\\n\\ttransform: none;\\n}\\n\\n.monaco-menu .monaco-action-bar.vertical .action-menu-item {\\n\\tflex: 1 1 auto;\\n\\tdisplay: flex;\\n\\theight: 2em;\\n\\talign-items: center;\\n\\tposition: relative;\\n}\\n\\n.monaco-menu .monaco-action-bar.vertical .action-label {\\n\\tflex: 1 1 auto;\\n\\ttext-decoration: none;\\n\\tpadding: 0 1em;\\n\\tbackground: none;\\n\\tfont-size: 12px;\\n\\tline-height: 1;\\n}\\n\\n.monaco-menu .monaco-action-bar.vertical .keybinding,\\n.monaco-menu .monaco-action-bar.vertical .submenu-indicator {\\n\\tdisplay: inline-block;\\n\\tflex: 2 1 auto;\\n\\tpadding: 0 1em;\\n\\ttext-align: right;\\n\\tfont-size: 12px;\\n\\tline-height: 1;\\n}\\n\\n.monaco-menu .monaco-action-bar.vertical .submenu-indicator {\\n\\theight: 100%;\\n}\\n\\n.monaco-menu .monaco-action-bar.vertical .submenu-indicator.codicon {\\n\\tfont-size: 16px !important;\\n\\tdisplay: flex;\\n\\talign-items: center;\\n}\\n\\n.monaco-menu .monaco-action-bar.vertical .submenu-indicator.codicon::before {\\n\\tmargin-left: auto;\\n\\tmargin-right: -20px;\\n}\\n\\n.monaco-menu .monaco-action-bar.vertical .action-item.disabled .keybinding,\\n.monaco-menu .monaco-action-bar.vertical .action-item.disabled .submenu-indicator {\\n\\topacity: 0.4;\\n}\\n\\n.monaco-menu .monaco-action-bar.vertical .action-label:not(.separator) {\\n\\tdisplay: inline-block;\\n\\tbox-sizing: border-box;\\n\\tmargin: 0;\\n}\\n\\n.monaco-menu .monaco-action-bar.vertical .action-item {\\n\\tposition: static;\\n\\toverflow: visible;\\n}\\n\\n.monaco-menu .monaco-action-bar.vertical .action-item .monaco-submenu {\\n\\tposition: absolute;\\n}\\n\\n.monaco-menu .monaco-action-bar.vertical .action-label.separator {\\n\\tpadding: 0.5em 0 0 0;\\n\\tmargin-bottom: 0.5em;\\n\\twidth: 100%;\\n\\theight: 0px !important;\\n\\tmargin-left: .8em !important;\\n\\tmargin-right: .8em !important;\\n}\\n\\n.monaco-menu .monaco-action-bar.vertical .action-label.separator.text {\\n\\tpadding: 0.7em 1em 0.1em 1em;\\n\\tfont-weight: bold;\\n\\topacity: 1;\\n}\\n\\n.monaco-menu .monaco-action-bar.vertical .action-label:hover {\\n\\tcolor: inherit;\\n}\\n\\n.monaco-menu .monaco-action-bar.vertical .menu-item-check {\\n\\tposition: absolute;\\n\\tvisibility: hidden;\\n\\twidth: 1em;\\n\\theight: 100%;\\n}\\n\\n.monaco-menu .monaco-action-bar.vertical .action-menu-item.checked .menu-item-check {\\n\\tvisibility: visible;\\n\\tdisplay: flex;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\\n/* Context Menu */\\n\\n.context-view.monaco-menu-container {\\n\\toutline: 0;\\n\\tborder: none;\\n\\tanimation: fadeIn 0.083s linear;\\n\\t-webkit-app-region: no-drag;\\n}\\n\\n.context-view.monaco-menu-container :focus,\\n.context-view.monaco-menu-container .monaco-action-bar.vertical:focus,\\n.context-view.monaco-menu-container .monaco-action-bar.vertical :focus {\\n\\toutline: 0;\\n}\\n\\n.monaco-menu .monaco-action-bar.vertical .action-item {\\n\\tborder: thin solid transparent; /* prevents jumping behaviour on hover or focus */\\n}\\n\\n\\n/* High Contrast Theming */\\n:host-context(.hc-black) .context-view.monaco-menu-container {\\n\\tbox-shadow: none;\\n}\\n\\n:host-context(.hc-black) .monaco-menu .monaco-action-bar.vertical .action-item.focused {\\n\\tbackground: none;\\n}\\n\\n/* Vertical Action Bar Styles */\\n\\n.monaco-menu .monaco-action-bar.vertical {\\n\\tpadding: .5em 0;\\n}\\n\\n.monaco-menu .monaco-action-bar.vertical .action-menu-item {\\n\\theight: 1.8em;\\n}\\n\\n.monaco-menu .monaco-action-bar.vertical .action-label:not(.separator),\\n.monaco-menu .monaco-action-bar.vertical .keybinding {\\n\\tfont-size: inherit;\\n\\tpadding: 0 2em;\\n}\\n\\n.monaco-menu .monaco-action-bar.vertical .menu-item-check {\\n\\tfont-size: inherit;\\n\\twidth: 2em;\\n}\\n\\n.monaco-menu .monaco-action-bar.vertical .action-label.separator {\\n\\tfont-size: inherit;\\n\\tpadding: 0.2em 0 0 0;\\n\\tmargin-bottom: 0.2em;\\n}\\n\\n:host-context(.linux) .monaco-menu .monaco-action-bar.vertical .action-label.separator {\\n\\tmargin-left: 0;\\n\\tmargin-right: 0;\\n}\\n\\n.monaco-menu .monaco-action-bar.vertical .submenu-indicator {\\n\\tfont-size: 60%;\\n\\tpadding: 0 1.8em;\\n}\\n\\n:host-context(.linux) .monaco-menu .monaco-action-bar.vertical .submenu-indicator {\\n\\theight: 100%;\\n\\tmask-size: 10px 10px;\\n\\t-webkit-mask-size: 10px 10px;\\n}\\n\\n.monaco-menu .action-item {\\n\\tcursor: default;\\n}\\n\\n/* Arrows */\\n.monaco-scrollable-element > .scrollbar > .scra {\\n\\tcursor: pointer;\\n\\tfont-size: 11px !important;\\n}\\n\\n.monaco-scrollable-element > .visible {\\n\\topacity: 1;\\n\\n\\t/* Background rule added for IE9 - to allow clicks on dom node */\\n\\tbackground:rgba(0,0,0,0);\\n\\n\\ttransition: opacity 100ms linear;\\n}\\n.monaco-scrollable-element > .invisible {\\n\\topacity: 0;\\n\\tpointer-events: none;\\n}\\n.monaco-scrollable-element > .invisible.fade {\\n\\ttransition: opacity 800ms linear;\\n}\\n\\n/* Scrollable Content Inset Shadow */\\n.monaco-scrollable-element > .shadow {\\n\\tposition: absolute;\\n\\tdisplay: none;\\n}\\n.monaco-scrollable-element > .shadow.top {\\n\\tdisplay: block;\\n\\ttop: 0;\\n\\tleft: 3px;\\n\\theight: 3px;\\n\\twidth: 100%;\\n\\tbox-shadow: #DDD 0 6px 6px -6px inset;\\n}\\n.monaco-scrollable-element > .shadow.left {\\n\\tdisplay: block;\\n\\ttop: 3px;\\n\\tleft: 0;\\n\\theight: 100%;\\n\\twidth: 3px;\\n\\tbox-shadow: #DDD 6px 0 6px -6px inset;\\n}\\n.monaco-scrollable-element > .shadow.top-left-corner {\\n\\tdisplay: block;\\n\\ttop: 0;\\n\\tleft: 0;\\n\\theight: 3px;\\n\\twidth: 3px;\\n}\\n.monaco-scrollable-element > .shadow.top.left {\\n\\tbox-shadow: #DDD 6px 6px 6px -6px inset;\\n}\\n\\n/* ---------- Default Style ---------- */\\n\\n:host-context(.vs) .monaco-scrollable-element > .scrollbar > .slider {\\n\\tbackground: rgba(100, 100, 100, .4);\\n}\\n:host-context(.vs-dark) .monaco-scrollable-element > .scrollbar > .slider {\\n\\tbackground: rgba(121, 121, 121, .4);\\n}\\n:host-context(.hc-black) .monaco-scrollable-element > .scrollbar > .slider {\\n\\tbackground: rgba(111, 195, 223, .6);\\n}\\n\\n.monaco-scrollable-element > .scrollbar > .slider:hover {\\n\\tbackground: rgba(100, 100, 100, .7);\\n}\\n:host-context(.hc-black) .monaco-scrollable-element > .scrollbar > .slider:hover {\\n\\tbackground: rgba(111, 195, 223, .8);\\n}\\n\\n.monaco-scrollable-element > .scrollbar > .slider.active {\\n\\tbackground: rgba(0, 0, 0, .6);\\n}\\n:host-context(.vs-dark) .monaco-scrollable-element > .scrollbar > .slider.active {\\n\\tbackground: rgba(191, 191, 191, .4);\\n}\\n:host-context(.hc-black) .monaco-scrollable-element > .scrollbar > .slider.active {\\n\\tbackground: rgba(111, 195, 223, 1);\\n}\\n\\n:host-context(.vs-dark) .monaco-scrollable-element .shadow.top {\\n\\tbox-shadow: none;\\n}\\n\\n:host-context(.vs-dark) .monaco-scrollable-element .shadow.left {\\n\\tbox-shadow: #000 6px 0 6px -6px inset;\\n}\\n\\n:host-context(.vs-dark) .monaco-scrollable-element .shadow.top.left {\\n\\tbox-shadow: #000 6px 6px 6px -6px inset;\\n}\\n\\n:host-context(.hc-black) .monaco-scrollable-element .shadow.top {\\n\\tbox-shadow: none;\\n}\\n\\n:host-context(.hc-black) .monaco-scrollable-element .shadow.left {\\n\\tbox-shadow: none;\\n}\\n\\n:host-context(.hc-black) .monaco-scrollable-element .shadow.top.left {\\n\\tbox-shadow: none;\\n}\\n`;\n\n    function ac(e, t) {\n        const i = Object.create(null);\n        for (var n in t) {\n            var r = t[n];\n            r && (i[n] = Object(Ir.ec)(r, e))\n        }\n        return i\n    }\n\n    function lc(e, t, i) {\n        function n() {\n            var n = ac(e.getColorTheme(), t);\n            \"function\" == typeof i ? i(n) : i.style(n)\n        }\n        return n(), e.onDidColorThemeChange(n)\n    }\n\n    function dc(e, t, i) {\n        return lc(t, Object.assign(Object.assign({}, cc), i || {}), e)\n    }\n    i(434);\n    const cc = {\n            listFocusBackground: Ir.tb,\n            listFocusForeground: Ir.ub,\n            listFocusOutline: Ir.vb,\n            listActiveSelectionBackground: Ir.mb,\n            listActiveSelectionForeground: Ir.nb,\n            listActiveSelectionIconForeground: Ir.ob,\n            listFocusAndSelectionBackground: Ir.mb,\n            listFocusAndSelectionForeground: Ir.nb,\n            listInactiveSelectionBackground: Ir.Ab,\n            listInactiveSelectionIconForeground: Ir.Cb,\n            listInactiveSelectionForeground: Ir.Bb,\n            listInactiveFocusBackground: Ir.yb,\n            listInactiveFocusOutline: Ir.zb,\n            listHoverBackground: Ir.wb,\n            listHoverForeground: Ir.xb,\n            listDropBackground: Ir.pb,\n            listSelectionOutline: Ir.b,\n            listHoverOutline: Ir.b,\n            listFilterWidgetBackground: Ir.qb,\n            listFilterWidgetOutline: Ir.sb,\n            listFilterWidgetNoMatchesOutline: Ir.rb,\n            listMatchesShadow: Ir.mc,\n            treeIndentGuidesStroke: Ir.lc,\n            tableColumnsBorder: Ir.jc\n        },\n        hc = {\n            shadowColor: Ir.mc,\n            borderColor: Ir.Eb,\n            foregroundColor: Ir.Fb,\n            backgroundColor: Ir.Db,\n            selectionForegroundColor: Ir.Ib,\n            selectionBackgroundColor: Ir.Gb,\n            selectionBorderColor: Ir.Hb,\n            separatorColor: Ir.Jb\n        };\n    class uc {\n        constructor(e, t, i, n, r) {\n            this.contextViewService = e, this.telemetryService = t, this.notificationService = i, this.keybindingService = n, this.themeService = r, this.focusToReturn = null, this.block = null, this.options = {\n                blockMouse: !0\n            }\n        }\n        configure(e) {\n            this.options = e\n        }\n        showContextMenu(e) {\n            const t = e.getActions();\n            if (t.length) {\n                let n;\n                this.focusToReturn = document.activeElement;\n                var i = Object(s.J)(e.domForShadowRoot) ? e.domForShadowRoot : void 0;\n                this.contextViewService.showContextView({\n                    getAnchor: () => e.getAnchor(),\n                    canRelayout: !1,\n                    anchorAlignment: e.anchorAlignment,\n                    anchorAxisAlignment: e.anchorAxisAlignment,\n                    render: i => {\n                        var r = e.getMenuClassName ? e.getMenuClassName() : \"\";\n                        r && (i.className += \" \" + r), this.options.blockMouse && (this.block = i.appendChild(Object(s.a)(\".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\", Object(s.g)(this.block, s.d.MOUSE_DOWN, e => e.stopPropagation()));\n                        const o = new v.b,\n                            a = e.actionRunner || new xa.b;\n                        return a.onBeforeRun(this.onActionRun, this, o), a.onDidRun(this.onDidActionRun, this, o), n = new ic(i, t, {\n                            actionViewItemProvider: e.getActionViewItem,\n                            context: e.getActionsContext ? e.getActionsContext() : null,\n                            actionRunner: a,\n                            getKeyBinding: e.getKeyBinding || (e => this.keybindingService.lookupKeybinding(e.id))\n                        }), o.add((r = n, lc(this.themeService, Object.assign(Object.assign({}, hc), void 0), r))), n.onDidCancel(() => this.contextViewService.hideContextView(!0), null, o), n.onDidBlur(() => this.contextViewService.hideContextView(!0), null, o), o.add(Object(s.g)(window, s.d.BLUR, () => this.contextViewService.hideContextView(!0))), o.add(Object(s.g)(window, s.d.MOUSE_DOWN, e => {\n                            if (!e.defaultPrevented) {\n                                let t = (e = new $i.a(e)).target;\n                                if (!e.rightButton) {\n                                    for (; t;) {\n                                        if (t === i) return;\n                                        t = t.parentElement\n                                    }\n                                    this.contextViewService.hideContextView(!0)\n                                }\n                            }\n                        })), Object(v.e)(o, n)\n                    },\n                    focus: () => {\n                        n && n.focus(!!e.autoSelectFirstItem)\n                    },\n                    onHide: t => {\n                        e.onHide && e.onHide(!!t), this.block && (this.block.remove(), this.block = null), this.focusToReturn && this.focusToReturn.focus()\n                    }\n                }, i, !!i)\n            }\n        }\n        onActionRun(e) {\n            this.telemetryService.publicLog2(\"workbenchActionExecuted\", {\n                id: e.action.id,\n                from: \"contextMenu\"\n            }), this.contextViewService.hideContextView(!1), this.focusToReturn && this.focusToReturn.focus()\n        }\n        onDidActionRun(e) {\n            e.error && !Object(se.e)(e.error) && this.notificationService.error(e.error)\n        }\n    }\n    S = function(e, t, i, n) {\n        var r, o = arguments.length,\n            s = o < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n);\n        else\n            for (var a = e.length - 1; 0 <= a; a--)(r = e[a]) && (s = (o < 3 ? r(s) : 3 < o ? r(t, i, s) : r(t, i)) || s);\n        return 3 < o && s && Object.defineProperty(t, i, s), s\n    }, x = function(e, t) {\n        return function(i, n) {\n            t(i, n, e)\n        }\n    };\n    let pc = class extends v.a {\n        constructor(e, t, i, n, r) {\n            super(), this.contextMenuHandler = new uc(i, e, t, n, r)\n        }\n        configure(e) {\n            this.contextMenuHandler.configure(e)\n        }\n        showContextMenu(e) {\n            this.contextMenuHandler.showContextMenu(e), s.e.getInstance().resetKeyStatus()\n        }\n    };\n    pc = S([x(0, jd.a), x(1, hi.a), x(2, Aa.b), x(3, al.a), x(4, ir.b)], pc);\n    const gc = Object(_.c)(\"layoutService\");\n    t = function(e, t, i, n) {\n        var r, o = arguments.length,\n            s = o < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n);\n        else\n            for (var a = e.length - 1; 0 <= a; a--)(r = e[a]) && (s = (o < 3 ? r(s) : 3 < o ? r(t, i, s) : r(t, i)) || s);\n        return 3 < o && s && Object.defineProperty(t, i, s), s\n    }, ae = function(e, t) {\n        return function(i, n) {\n            t(i, n, e)\n        }\n    };\n    let fc = class extends v.a {\n        constructor(e) {\n            super(), this.layoutService = e, this.currentViewDisposable = v.a.None, this.container = e.container, this.contextView = this._register(new Hd(this.container, 1)), this.layout(), this._register(e.onDidLayout(() => this.layout()))\n        }\n        setContainer(e, t) {\n            this.contextView.setContainer(e, t || 1)\n        }\n        showContextView(e, t, i) {\n            t ? t !== this.container && (this.container = t, this.setContainer(t, i ? 3 : 2)) : this.container !== this.layoutService.container && (this.container = this.layoutService.container, this.setContainer(this.container, 1)), this.contextView.show(e);\n            const n = Object(v.i)(() => {\n                this.currentViewDisposable === n && this.hideContextView()\n            });\n            return this.currentViewDisposable = n, n\n        }\n        getContextViewElement() {\n            return this.contextView.getViewElement()\n        }\n        layout() {\n            this.contextView.layout()\n        }\n        hideContextView(e) {\n            this.contextView.hide(e)\n        }\n    };\n    fc = t([ae(0, gc)], fc);\n    const mc = Object(_.c)(\"dialogService\");\n    var vc = i(123);\n    class bc {\n        constructor(e) {\n            this.incoming = new Map, this.outgoing = new Map, this.data = e\n        }\n    }\n    class _c {\n        constructor(e) {\n            this._hashFn = e, this._nodes = new Map\n        }\n        roots() {\n            const e = [];\n            for (var t of this._nodes.values()) 0 === t.outgoing.size && e.push(t);\n            return e\n        }\n        insertEdge(e, t) {\n            const i = this.lookupOrInsertNode(e),\n                n = this.lookupOrInsertNode(t);\n            i.outgoing.set(this._hashFn(t), n), n.incoming.set(this._hashFn(e), i)\n        }\n        removeNode(e) {\n            var t, i = this._hashFn(e);\n            for (t of (this._nodes.delete(i), this._nodes.values())) t.outgoing.delete(i), t.incoming.delete(i)\n        }\n        lookupOrInsertNode(e) {\n            var t = this._hashFn(e);\n            let i = this._nodes.get(t);\n            return i || (i = new bc(e), this._nodes.set(t, i)), i\n        }\n        isEmpty() {\n            return 0 === this._nodes.size\n        }\n        toString() {\n            let e = [];\n            for (var [t, i] of this._nodes) e.push(`${t}, (incoming)[${[...i.incoming.keys()].join(\", \")}], (outgoing)[${[...i.outgoing.keys()].join(\",\")}]`);\n            return e.join(\"\\n\")\n        }\n        findCycleSlow() {\n            for (var [e, t] of this._nodes)\n                if (e = new Set([e]), e = this._findCycle(t, e)) return e\n        }\n        _findCycle(e, t) {\n            for (var [i, n] of e.outgoing) {\n                if (t.has(i)) return [...t, i].join(\" -> \");\n                if (t.add(i), n = this._findCycle(n, t)) return n;\n                t.delete(i)\n            }\n        }\n    }\n    class wc extends Error {\n        constructor(e) {\n            var t;\n            super(\"cyclic dependency between services\"), this.message = null !== (t = e.findCycleSlow()) && void 0 !== t ? t : \"UNABLE to detect cycle, dumping graph: \\n\" + e.toString()\n        }\n    }\n    class yc {\n        constructor(e = new Us, t = !1, i) {\n            this._activeInstantiations = new Set, this._services = e, this._strict = t, this._parent = i, this._services.set(_.a, this)\n        }\n        createChild(e) {\n            return new yc(e, this._strict, this)\n        }\n        invokeFunction(e, ...t) {\n            let i = Cc.traceInvocation(e),\n                n = !1;\n            try {\n                return e({\n                    get: (e, t) => {\n                        if (n) throw Object(se.d)(\"service accessor is only valid during the invocation of its target method\");\n                        var r = this._getOrCreateServiceInstance(e, i);\n                        if (!r && t !== _.d) throw new Error(`[invokeFunction] unknown service '${e}'`);\n                        return r\n                    }\n                }, ...t)\n            } finally {\n                n = !0, i.stop()\n            }\n        }\n        createInstance(e, ...t) {\n            let i, n;\n            return n = e instanceof vc.a ? (i = Cc.traceCreation(e.ctor), this._createInstance(e.ctor, e.staticArguments.concat(t), i)) : (i = Cc.traceCreation(e), this._createInstance(e, t, i)), i.stop(), n\n        }\n        _createInstance(e, t = [], i) {\n            var n = _.b.getServiceDependencies(e).sort((e, t) => e.index - t.index);\n            let r = [];\n            for (const t of n) {\n                var o = this._getOrCreateServiceInstance(t.id, i);\n                if (!o && this._strict && !t.optional) throw new Error(`[createInstance] ${e.name} depends on UNKNOWN service ${t.id}.`);\n                r.push(o)\n            }\n            var s = 0 < n.length ? n[0].index : t.length;\n            return t.length !== s && (console.warn(`[createInstance] First service dependency of ${e.name} at position ${s+1} conflicts with ${t.length} static arguments`), t = 0 < (n = s - t.length) ? t.concat(new Array(n)) : t.slice(0, s)), new e(...t, ...r)\n        }\n        _setServiceInstance(e, t) {\n            if (this._services.get(e) instanceof vc.a) this._services.set(e, t);\n            else {\n                if (!this._parent) throw new Error(\"illegalState - setting UNKNOWN service instance\");\n                this._parent._setServiceInstance(e, t)\n            }\n        }\n        _getServiceInstanceOrDescriptor(e) {\n            var t = this._services.get(e);\n            return !t && this._parent ? this._parent._getServiceInstanceOrDescriptor(e) : t\n        }\n        _getOrCreateServiceInstance(e, t) {\n            var i = this._getServiceInstanceOrDescriptor(e);\n            return i instanceof vc.a ? this._safeCreateAndCacheServiceInstance(e, i, t.branch(e, !0)) : (t.branch(e, !1), i)\n        }\n        _safeCreateAndCacheServiceInstance(e, t, i) {\n            if (this._activeInstantiations.has(e)) throw new Error(`illegal state - RECURSIVELY instantiating service '${e}'`);\n            this._activeInstantiations.add(e);\n            try {\n                return this._createAndCacheServiceInstance(e, t, i)\n            } finally {\n                this._activeInstantiations.delete(e)\n            }\n        }\n        _createAndCacheServiceInstance(e, t, i) {\n            const n = new _c(e => e.id.toString());\n            let r = 0;\n            const o = [{\n                id: e,\n                desc: t,\n                _trace: i\n            }];\n            for (; o.length;) {\n                const t = o.pop();\n                if (n.lookupOrInsertNode(t), 1e3 < r++) throw new wc(n);\n                for (var s of _.b.getServiceDependencies(t.desc.ctor)) {\n                    var a = this._getServiceInstanceOrDescriptor(s.id);\n                    a || s.optional || console.warn(`[createInstance] ${e} depends on ${s.id} which is NOT registered.`), a instanceof vc.a && (s = {\n                        id: s.id,\n                        desc: a,\n                        _trace: t._trace.branch(s.id, !0)\n                    }, n.insertEdge(t, s), o.push(s))\n                }\n            }\n            for (;;) {\n                var l, d, c = n.roots();\n                if (0 === c.length) {\n                    if (!n.isEmpty()) throw new wc(n);\n                    break\n                }\n                for ({\n                        data: l\n                    } of c) this._getServiceInstanceOrDescriptor(l.id) instanceof vc.a && (d = this._createServiceInstanceWithOwner(l.id, l.desc.ctor, l.desc.staticArguments, l.desc.supportsDelayedInstantiation, l._trace), this._setServiceInstance(l.id, d)), n.removeNode(l)\n            }\n            return this._getServiceInstanceOrDescriptor(e)\n        }\n        _createServiceInstanceWithOwner(e, t, i = [], n, r) {\n            if (this._services.get(e) instanceof vc.a) return this._createServiceInstance(t, i, n, r);\n            if (this._parent) return this._parent._createServiceInstanceWithOwner(e, t, i, n, r);\n            throw new Error(\"illegalState - creating UNKNOWN service instance \" + t.name)\n        }\n        _createServiceInstance(e, t = [], i, n) {\n            if (i) {\n                const i = new q.b(() => this._createInstance(e, t, n));\n                return new Proxy(Object.create(null), {\n                    get(e, t) {\n                        if (t in e) return e[t];\n                        var n = i.value;\n                        let r = n[t];\n                        return \"function\" != typeof r || (r = r.bind(n), e[t] = r), r\n                    },\n                    set: (e, t, n) => (i.value[t] = n, !0)\n                })\n            }\n            return this._createInstance(e, t, n)\n        }\n    }\n    class Cc {\n        constructor(e, t) {\n            this.type = e, this.name = t, this._start = Date.now(), this._dep = []\n        }\n        static traceInvocation(e) {\n            return Cc._None\n        }\n        static traceCreation(e) {\n            return Cc._None\n        }\n        branch(e, t) {\n            var i = new Cc(2, e.toString());\n            return this._dep.push([e, t, i]), i\n        }\n        stop() {\n            let e = Date.now() - this._start;\n            Cc._totals += e;\n            let t = !1,\n                i = [`${0===this.type?\"CREATE\":\"CALL\"} ${this.name}`, \"\" + function e(i, n) {\n                    let r = [];\n                    var o, s, a, l, d = new Array(i + 1).join(\"\\t\");\n                    for ([o, s, a] of n._dep) s && a ? (t = !0, r.push(`${d}CREATES -> ${o}`), (l = e(i + 1, a)) && r.push(l)) : r.push(`${d}uses -> ${o}`);\n                    return r.join(\"\\n\")\n                }(1, this), `DONE, took ${e.toFixed(2)}ms (grand total ${Cc._totals.toFixed(2)}ms)`];\n            (2 < e || t) && console.log(i.join(\"\\n\"))\n        }\n    }\n    Cc._None = new class extends Cc {\n        constructor() {\n            super(-1, null)\n        }\n        stop() {}\n        branch() {\n            return this\n        }\n    }, Cc._totals = 0;\n    const xc = Object(_.c)(\"labelService\");\n    i(241);\n    var Sc = i(53);\n    class kc {\n        constructor(e) {\n            this.spliceables = e\n        }\n        splice(e, t, i) {\n            this.spliceables.forEach(n => n.splice(e, t, i))\n        }\n    }\n    gi = i(64);\n    var Lc = i(100);\n    class Oc extends Error {\n        constructor(e, t) {\n            super(`ListError [${e}] ${t}`)\n        }\n    }\n    var Ec = i(108);\n\n    function Nc(e, t) {\n        const i = [];\n        for (var n of t)\n            if (!(e.start >= n.range.end)) {\n                if (e.end < n.range.start) break;\n                var r = Rd.intersect(e, n.range);\n                Rd.isEmpty(r) || i.push({\n                    range: r,\n                    size: n.size\n                })\n            } return i\n    }\n\n    function Dc({\n        start: e,\n        end: t\n    }, i) {\n        return {\n            start: e + i,\n            end: t + i\n        }\n    }\n    class Ic {\n        constructor() {\n            this.groups = [], this._size = 0\n        }\n        splice(e, t, i = []) {\n            const n = i.length - t;\n            var r = Nc({\n                start: 0,\n                end: e\n            }, this.groups);\n            t = Nc({\n                start: e + t,\n                end: Number.POSITIVE_INFINITY\n            }, this.groups).map(e => ({\n                range: Dc(e.range, n),\n                size: e.size\n            })), i = i.map((t, i) => ({\n                range: {\n                    start: e + i,\n                    end: e + i + 1\n                },\n                size: t.size\n            }));\n            this.groups = function(...e) {\n                return function(e) {\n                    const t = [];\n                    let i = null;\n                    for (var n of e) {\n                        var r = n.range.start,\n                            o = n.range.end;\n                        n = n.size;\n                        i && n === i.size ? i.range.end = o : (i = {\n                            range: {\n                                start: r,\n                                end: o\n                            },\n                            size: n\n                        }, t.push(i))\n                    }\n                    return t\n                }(e.reduce((e, t) => e.concat(t), []))\n            }(r, i, t), this._size = this.groups.reduce((e, t) => e + t.size * (t.range.end - t.range.start), 0)\n        }\n        get count() {\n            var e = this.groups.length;\n            return e ? this.groups[e - 1].range.end : 0\n        }\n        get size() {\n            return this._size\n        }\n        indexAt(e) {\n            if (e < 0) return -1;\n            let t = 0,\n                i = 0;\n            for (var n of this.groups) {\n                var r = n.range.end - n.range.start,\n                    o = i + r * n.size;\n                if (e < o) return t + Math.floor((e - i) / n.size);\n                t += r, i = o\n            }\n            return t\n        }\n        indexAfter(e) {\n            return Math.min(this.indexAt(e) + 1, this.count)\n        }\n        positionAt(e) {\n            if (e < 0) return -1;\n            let t = 0,\n                i = 0;\n            for (var n of this.groups) {\n                var r = n.range.end - n.range.start,\n                    o = i + r;\n                if (e < o) return t + (e - i) * n.size;\n                t += r * n.size, i = o\n            }\n            return -1\n        }\n    }\n    class Tc {\n        constructor(e) {\n            this.renderers = e, this.cache = new Map\n        }\n        alloc(e) {\n            let t = this.getTemplateCache(e).pop();\n            if (!t) {\n                var i = Object(s.a)(\".monaco-list-row\");\n                t = {\n                    domNode: i,\n                    templateId: e,\n                    templateData: this.getRenderer(e).renderTemplate(i)\n                }\n            }\n            return t\n        }\n        release(e) {\n            e && this.releaseRow(e)\n        }\n        releaseRow(e) {\n            const {\n                domNode: t,\n                templateId: i\n            } = e;\n            t && (t.classList.remove(\"scrolling\"), function(e) {\n                try {\n                    e.parentElement && e.parentElement.removeChild(e)\n                } catch (e) {}\n            }(t));\n            this.getTemplateCache(i).push(e)\n        }\n        getTemplateCache(e) {\n            let t = this.cache.get(e);\n            return t || (t = [], this.cache.set(e, t)), t\n        }\n        dispose() {\n            this.cache.forEach((e, t) => {\n                for (const i of e) {\n                    this.getRenderer(t).disposeTemplate(i.templateData), i.templateData = null\n                }\n            }), this.cache.clear()\n        }\n        getRenderer(e) {\n            var t = this.renderers.get(e);\n            if (!t) throw new Error(\"No renderer found for \" + e);\n            return t\n        }\n    }\n    S = function(e, t, i, n) {\n        var r, o = arguments.length,\n            s = o < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n);\n        else\n            for (var a = e.length - 1; 0 <= a; a--)(r = e[a]) && (s = (o < 3 ? r(s) : 3 < o ? r(t, i, s) : r(t, i)) || s);\n        return 3 < o && s && Object.defineProperty(t, i, s), s\n    };\n    const Mc = {\n        useShadows: !0,\n        verticalScrollMode: 1,\n        setRowLineHeight: !0,\n        setRowHeight: !0,\n        supportDynamicHeights: !1,\n        dnd: {\n            getDragElements: e => [e],\n            getDragURI: () => null,\n            onDragStart() {},\n            onDragOver: () => !1,\n            drop() {}\n        },\n        horizontalScrolling: !1,\n        transformOptimization: !0,\n        alwaysConsumeMouseWheel: !0\n    };\n    class Pc {\n        constructor(e) {\n            this.elements = e\n        }\n        update() {}\n        getData() {\n            return this.elements\n        }\n    }\n    class Ac {\n        constructor(e) {\n            this.elements = e\n        }\n        update() {}\n        getData() {\n            return this.elements\n        }\n    }\n    class Rc {\n        constructor() {\n            this.types = [], this.files = []\n        }\n        update(e) {\n            if (e.types && this.types.splice(0, this.types.length, ...e.types), e.files) {\n                this.files.splice(0, this.files.length);\n                for (let i = 0; i < e.files.length; i++) {\n                    var t = e.files.item(i);\n                    t && (t.size || t.type) && this.files.push(t)\n                }\n            }\n        }\n        getData() {\n            return {\n                types: this.types,\n                files: this.files\n            }\n        }\n    }\n    class Fc {\n        constructor(e) {\n            null != e && e.getSetSize ? this.getSetSize = e.getSetSize.bind(e) : this.getSetSize = (e, t, i) => i, null != e && e.getPosInSet ? this.getPosInSet = e.getPosInSet.bind(e) : this.getPosInSet = (e, t) => t + 1, null != e && e.getRole ? this.getRole = e.getRole.bind(e) : this.getRole = e => \"listitem\", null != e && e.isChecked ? this.isChecked = e.isChecked.bind(e) : this.isChecked = e => {}\n        }\n    }\n    class jc {\n        constructor(e, t, i, n = Mc) {\n            if (this.virtualDelegate = t, this.domId = \"list_id_\" + ++jc.InstanceCount, this.renderers = new Map, this.renderWidth = 0, this._scrollHeight = 0, this.scrollableElementUpdateDisposable = null, this.scrollableElementWidthDelayer = new q.a(50), this.splicing = !1, this.dragOverAnimationStopDisposable = v.a.None, this.dragOverMouseY = 0, this.canDrop = !1, this.currentDragFeedbackDisposable = v.a.None, this.onDragLeaveTimeout = v.a.None, this.disposables = new v.b, this._onDidChangeContentHeight = new D.b, this._horizontalScrolling = !1, n.horizontalScrolling && n.supportDynamicHeights) throw new Error(\"Horizontal scrolling and dynamic heights not supported simultaneously\");\n            this.items = [], this.itemId = 0, this.rangeMap = new Ic;\n            for (const e of i) this.renderers.set(e.templateId, e);\n            this.cache = this.disposables.add(new Tc(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\", \"boolean\" != typeof n.mouseSupport || n.mouseSupport), this._horizontalScrolling = Object(I.d)(n, e => e.horizontalScrolling, Mc.horizontalScrolling), this.domNode.classList.toggle(\"horizontal-scrolling\", this._horizontalScrolling), this.additionalScrollHeight = void 0 === n.additionalScrollHeight ? 0 : n.additionalScrollHeight, this.accessibilityProvider = new Fc(n.accessibilityProvider), this.rowsContainer = document.createElement(\"div\"), this.rowsContainer.className = \"monaco-list-rows\", Object(I.d)(n, e => e.transformOptimization, Mc.transformOptimization) && (this.rowsContainer.style.transform = \"translate3d(0px, 0px, 0px)\"), this.disposables.add(Ki.b.addTarget(this.rowsContainer)), this.scrollable = new bs.a(Object(I.d)(n, e => e.smoothScrolling, !1) ? 125 : 0, e => Object(s.R)(e)), this.scrollableElement = this.disposables.add(new Dr.c(this.rowsContainer, {\n                alwaysConsumeMouseWheel: Object(I.d)(n, e => e.alwaysConsumeMouseWheel, Mc.alwaysConsumeMouseWheel),\n                horizontal: 1,\n                vertical: Object(I.d)(n, e => e.verticalScrollMode, Mc.verticalScrollMode),\n                useShadows: Object(I.d)(n, e => e.useShadows, Mc.useShadows),\n                mouseWheelScrollSensitivity: n.mouseWheelScrollSensitivity,\n                fastScrollSensitivity: n.fastScrollSensitivity\n            }, this.scrollable)), this.domNode.appendChild(this.scrollableElement.getDomNode()), e.appendChild(this.domNode), this.scrollableElement.onScroll(this.onScroll, this, this.disposables), this.disposables.add(Object(s.g)(this.rowsContainer, Ki.a.Change, e => this.onTouchChange(e))), this.disposables.add(Object(s.g)(this.scrollableElement.getDomNode(), \"scroll\", e => e.target.scrollTop = 0)), this.disposables.add(Object(s.g)(this.domNode, \"dragover\", e => this.onDragOver(this.toDragEvent(e)))), this.disposables.add(Object(s.g)(this.domNode, \"drop\", e => this.onDrop(this.toDragEvent(e)))), this.disposables.add(Object(s.g)(this.domNode, \"dragleave\", e => this.onDragLeave(this.toDragEvent(e)))), this.disposables.add(Object(s.g)(this.domNode, \"dragend\", e => this.onDragEnd(e))), this.setRowLineHeight = Object(I.d)(n, e => e.setRowLineHeight, Mc.setRowLineHeight), this.setRowHeight = Object(I.d)(n, e => e.setRowHeight, Mc.setRowHeight), this.supportDynamicHeights = Object(I.d)(n, e => e.supportDynamicHeights, Mc.supportDynamicHeights), this.dnd = Object(I.d)(n, e => e.dnd, Mc.dnd), this.layout()\n        }\n        get contentHeight() {\n            return this.rangeMap.size\n        }\n        get horizontalScrolling() {\n            return this._horizontalScrolling\n        }\n        set horizontalScrolling(e) {\n            if (e !== this._horizontalScrolling) {\n                if (e && this.supportDynamicHeights) throw new Error(\"Horizontal scrolling and dynamic heights not supported simultaneously\");\n                if (this._horizontalScrolling = e, this.domNode.classList.toggle(\"horizontal-scrolling\", this._horizontalScrolling), this._horizontalScrolling) {\n                    for (const e of this.items) this.measureItemWidth(e);\n                    this.updateScrollWidth(), this.scrollableElement.setScrollDimensions({\n                        width: Object(s.z)(this.domNode)\n                    }), this.rowsContainer.style.width = Math.max(this.scrollWidth || 0, this.renderWidth) + \"px\"\n                } else this.scrollableElementWidthDelayer.cancel(), this.scrollableElement.setScrollDimensions({\n                    width: this.renderWidth,\n                    scrollWidth: this.renderWidth\n                }), this.rowsContainer.style.width = \"\"\n            }\n        }\n        updateOptions(e) {\n            void 0 !== e.additionalScrollHeight && (this.additionalScrollHeight = e.additionalScrollHeight, this.scrollableElement.setScrollDimensions({\n                scrollHeight: this.scrollHeight\n            })), void 0 !== e.smoothScrolling && this.scrollable.setSmoothScrollDuration(e.smoothScrolling ? 125 : 0), void 0 !== e.horizontalScrolling && (this.horizontalScrolling = e.horizontalScrolling), void 0 !== e.mouseWheelScrollSensitivity && this.scrollableElement.updateOptions({\n                mouseWheelScrollSensitivity: e.mouseWheelScrollSensitivity\n            }), void 0 !== e.fastScrollSensitivity && this.scrollableElement.updateOptions({\n                fastScrollSensitivity: e.fastScrollSensitivity\n            })\n        }\n        splice(e, t, i = []) {\n            if (this.splicing) throw new Error(\"Can't run recursive splices.\");\n            this.splicing = !0;\n            try {\n                return this._splice(e, t, i)\n            } finally {\n                this.splicing = !1, this._onDidChangeContentHeight.fire(this.contentHeight)\n            }\n        }\n        _splice(e, t, i = []) {\n            var n = this.getRenderRange(this.lastRenderTop, this.lastRenderHeight),\n                r = Rd.intersect(n, {\n                    start: e,\n                    end: e + t\n                });\n            const o = new Map;\n            for (let e = r.start; e < r.end; e++) {\n                const t = this.items[e];\n                if (t.dragStartDisposable.dispose(), t.row) {\n                    let i = o.get(t.templateId);\n                    i || (i = [], o.set(t.templateId, i));\n                    const n = this.renderers.get(t.templateId);\n                    n && n.disposeElement && n.disposeElement(t.element, e, t.row.templateData, t.size), i.push(t.row)\n                }\n                t.row = null\n            }\n            var s = {\n                    start: e + t,\n                    end: this.items.length\n                },\n                a = Rd.intersect(s, n);\n            const l = Rd.relativeComplement(s, n);\n            let d;\n            n = i.map(e => ({\n                id: String(this.itemId++),\n                element: e,\n                templateId: this.virtualDelegate.getTemplateId(e),\n                size: this.virtualDelegate.getHeight(e),\n                width: void 0,\n                hasDynamicHeight: !!this.virtualDelegate.hasDynamicHeight && this.virtualDelegate.hasDynamicHeight(e),\n                lastDynamicHeightWidth: void 0,\n                row: null,\n                uri: void 0,\n                dropTarget: !1,\n                dragStartDisposable: v.a.None\n            })), 0 === e && t >= this.items.length ? (this.rangeMap = new Ic, this.rangeMap.splice(0, 0, n), d = this.items, this.items = n) : (this.rangeMap.splice(e, t, n), d = this.items.splice(e, t, ...n));\n            const c = i.length - t,\n                h = this.getRenderRange(this.lastRenderTop, this.lastRenderHeight);\n            a = Dc(a, c);\n            var u = Rd.intersect(h, a);\n            for (let e = u.start; e < u.end; e++) this.updateItemInDOM(this.items[e], e);\n            for (const e of Rd.relativeComplement(a, h))\n                for (let t = e.start; t < e.end; t++) this.removeItemFromDOM(t);\n            a = l.map(e => Dc(e, c));\n            a = [{\n                start: e,\n                end: e + i.length\n            }, ...a].map(e => Rd.intersect(h, e));\n            var p = this.getNextToLastElement(a);\n            for (const e of a)\n                for (let t = e.start; t < e.end; t++) {\n                    var g = this.items[t];\n                    const e = o.get(g.templateId);\n                    g = null == e ? void 0 : e.pop(), this.insertItemInDOM(t, p, g)\n                }\n            for (const e of o.values())\n                for (const t of e) this.cache.release(t);\n            return this.eventuallyUpdateScrollDimensions(), this.supportDynamicHeights && this._rerender(this.scrollTop, this.renderHeight), d.map(e => e.element)\n        }\n        eventuallyUpdateScrollDimensions() {\n            this._scrollHeight = this.contentHeight, this.rowsContainer.style.height = this._scrollHeight + \"px\", this.scrollableElementUpdateDisposable || (this.scrollableElementUpdateDisposable = Object(s.R)(() => {\n                this.scrollableElement.setScrollDimensions({\n                    scrollHeight: this.scrollHeight\n                }), this.updateScrollWidth(), this.scrollableElementUpdateDisposable = null\n            }))\n        }\n        eventuallyUpdateScrollWidth() {\n            this.horizontalScrolling ? this.scrollableElementWidthDelayer.trigger(() => this.updateScrollWidth()) : this.scrollableElementWidthDelayer.cancel()\n        }\n        updateScrollWidth() {\n            if (this.horizontalScrolling) {\n                let e = 0;\n                for (const t of this.items) void 0 !== t.width && (e = Math.max(e, t.width));\n                this.scrollWidth = e, this.scrollableElement.setScrollDimensions({\n                    scrollWidth: 0 === e ? 0 : e + 10\n                })\n            }\n        }\n        rerender() {\n            if (this.supportDynamicHeights) {\n                for (const e of this.items) e.lastDynamicHeightWidth = void 0;\n                this._rerender(this.lastRenderTop, this.lastRenderHeight)\n            }\n        }\n        get length() {\n            return this.items.length\n        }\n        get renderHeight() {\n            return this.scrollableElement.getScrollDimensions().height\n        }\n        element(e) {\n            return this.items[e].element\n        }\n        domElement(e) {\n            return (e = this.items[e].row) && e.domNode\n        }\n        elementHeight(e) {\n            return this.items[e].size\n        }\n        elementTop(e) {\n            return this.rangeMap.positionAt(e)\n        }\n        indexAt(e) {\n            return this.rangeMap.indexAt(e)\n        }\n        indexAfter(e) {\n            return this.rangeMap.indexAfter(e)\n        }\n        layout(e, t) {\n            let i = {\n                height: \"number\" == typeof e ? e : Object(s.y)(this.domNode)\n            };\n            this.scrollableElementUpdateDisposable && (this.scrollableElementUpdateDisposable.dispose(), this.scrollableElementUpdateDisposable = null, i.scrollHeight = this.scrollHeight), this.scrollableElement.setScrollDimensions(i), void 0 !== t && (this.renderWidth = t, this.supportDynamicHeights && this._rerender(this.scrollTop, this.renderHeight)), this.horizontalScrolling && this.scrollableElement.setScrollDimensions({\n                width: \"number\" == typeof t ? t : Object(s.z)(this.domNode)\n            })\n        }\n        render(e, t, i, n, r, o = !1) {\n            var s = this.getRenderRange(t, i),\n                a = Rd.relativeComplement(s, e),\n                l = Rd.relativeComplement(e, s),\n                d = this.getNextToLastElement(a);\n            if (o) {\n                var c = Rd.intersect(e, s);\n                for (let e = c.start; e < c.end; e++) this.updateItemInDOM(this.items[e], e)\n            }\n            for (const e of a)\n                for (let t = e.start; t < e.end; t++) this.insertItemInDOM(t, d);\n            for (const e of l)\n                for (let t = e.start; t < e.end; t++) this.removeItemFromDOM(t);\n            void 0 !== n && (this.rowsContainer.style.left = `-${n}px`), this.rowsContainer.style.top = `-${t}px`, this.horizontalScrolling && void 0 !== r && (this.rowsContainer.style.width = Math.max(r, this.renderWidth) + \"px\"), this.lastRenderTop = t, this.lastRenderHeight = i\n        }\n        insertItemInDOM(e, t, i) {\n            const n = this.items[e];\n            n.row || (n.row = null != i ? i : this.cache.alloc(n.templateId)), i = this.accessibilityProvider.getRole(n.element) || \"listitem\", n.row.domNode.setAttribute(\"role\", i), void 0 !== (i = this.accessibilityProvider.isChecked(n.element)) && n.row.domNode.setAttribute(\"aria-checked\", String(!!i)), n.row.domNode.parentElement || (t ? this.rowsContainer.insertBefore(n.row.domNode, t) : this.rowsContainer.appendChild(n.row.domNode)), this.updateItemInDOM(n, e);\n            const r = this.renderers.get(n.templateId);\n            if (!r) throw new Error(\"No renderer found for template id \" + n.templateId);\n            r && r.renderElement(n.element, e, n.row.templateData, n.size);\n            const o = this.dnd.getDragURI(n.element);\n            n.dragStartDisposable.dispose(), n.row.domNode.draggable = !!o, o && (n.dragStartDisposable = Object(s.g)(n.row.domNode, \"dragstart\", e => this.onDragStart(n.element, o, e))), this.horizontalScrolling && (this.measureItemWidth(n), this.eventuallyUpdateScrollWidth())\n        }\n        measureItemWidth(e) {\n            var t;\n            e.row && e.row.domNode && (e.row.domNode.style.width = Ri.g ? \"-moz-fit-content\" : \"fit-content\", e.width = Object(s.z)(e.row.domNode), (t = window.getComputedStyle(e.row.domNode)).paddingLeft && (e.width += parseFloat(t.paddingLeft)), t.paddingRight && (e.width += parseFloat(t.paddingRight)), e.row.domNode.style.width = \"\")\n        }\n        updateItemInDOM(e, t) {\n            e.row.domNode.style.top = this.elementTop(t) + \"px\", this.setRowHeight && (e.row.domNode.style.height = e.size + \"px\"), this.setRowLineHeight && (e.row.domNode.style.lineHeight = e.size + \"px\"), e.row.domNode.setAttribute(\"data-index\", \"\" + t), e.row.domNode.setAttribute(\"data-last-element\", t === this.length - 1 ? \"true\" : \"false\"), e.row.domNode.setAttribute(\"data-parity\", t % 2 == 0 ? \"even\" : \"odd\"), e.row.domNode.setAttribute(\"aria-setsize\", String(this.accessibilityProvider.getSetSize(e.element, t, this.length))), e.row.domNode.setAttribute(\"aria-posinset\", String(this.accessibilityProvider.getPosInSet(e.element, t))), e.row.domNode.setAttribute(\"id\", this.getElementDomId(t)), e.row.domNode.classList.toggle(\"drop-target\", e.dropTarget)\n        }\n        removeItemFromDOM(e) {\n            const t = this.items[e];\n            if (t.dragStartDisposable.dispose(), t.row) {\n                const i = this.renderers.get(t.templateId);\n                i && i.disposeElement && i.disposeElement(t.element, e, t.row.templateData, t.size), this.cache.release(t.row), t.row = null\n            }\n            this.horizontalScrolling && this.eventuallyUpdateScrollWidth()\n        }\n        getScrollTop() {\n            return this.scrollableElement.getScrollPosition().scrollTop\n        }\n        setScrollTop(e, t) {\n            this.scrollableElementUpdateDisposable && (this.scrollableElementUpdateDisposable.dispose(), this.scrollableElementUpdateDisposable = null, this.scrollableElement.setScrollDimensions({\n                scrollHeight: this.scrollHeight\n            })), this.scrollableElement.setScrollPosition({\n                scrollTop: e,\n                reuseAnimation: t\n            })\n        }\n        get scrollTop() {\n            return this.getScrollTop()\n        }\n        set scrollTop(e) {\n            this.setScrollTop(e)\n        }\n        get scrollHeight() {\n            return this._scrollHeight + (this.horizontalScrolling ? 10 : 0) + this.additionalScrollHeight\n        }\n        get onMouseClick() {\n            return D.c.map(this.disposables.add(new Sc.a(this.domNode, \"click\")).event, e => this.toMouseEvent(e))\n        }\n        get onMouseDblClick() {\n            return D.c.map(this.disposables.add(new Sc.a(this.domNode, \"dblclick\")).event, e => this.toMouseEvent(e))\n        }\n        get onMouseMiddleClick() {\n            return D.c.filter(D.c.map(this.disposables.add(new Sc.a(this.domNode, \"auxclick\")).event, e => this.toMouseEvent(e)), e => 1 === e.browserEvent.button)\n        }\n        get onMouseDown() {\n            return D.c.map(this.disposables.add(new Sc.a(this.domNode, \"mousedown\")).event, e => this.toMouseEvent(e))\n        }\n        get onContextMenu() {\n            return D.c.any(D.c.map(this.disposables.add(new Sc.a(this.domNode, \"contextmenu\")).event, e => this.toMouseEvent(e)), D.c.map(this.disposables.add(new Sc.a(this.domNode, Ki.a.Contextmenu)).event, e => this.toGestureEvent(e)))\n        }\n        get onTouchStart() {\n            return D.c.map(this.disposables.add(new Sc.a(this.domNode, \"touchstart\")).event, e => this.toTouchEvent(e))\n        }\n        get onTap() {\n            return D.c.map(this.disposables.add(new Sc.a(this.rowsContainer, Ki.a.Tap)).event, e => this.toGestureEvent(e))\n        }\n        toMouseEvent(e) {\n            var t = this.getItemIndexFromEventTarget(e.target || null),\n                i = void 0 === t ? void 0 : this.items[t];\n            return {\n                browserEvent: e,\n                index: t,\n                element: i && i.element\n            }\n        }\n        toTouchEvent(e) {\n            var t = this.getItemIndexFromEventTarget(e.target || null),\n                i = void 0 === t ? void 0 : this.items[t];\n            return {\n                browserEvent: e,\n                index: t,\n                element: i && i.element\n            }\n        }\n        toGestureEvent(e) {\n            var t = this.getItemIndexFromEventTarget(e.initialTarget || null),\n                i = void 0 === t ? void 0 : this.items[t];\n            return {\n                browserEvent: e,\n                index: t,\n                element: i && i.element\n            }\n        }\n        toDragEvent(e) {\n            var t = this.getItemIndexFromEventTarget(e.target || null),\n                i = void 0 === t ? void 0 : this.items[t];\n            return {\n                browserEvent: e,\n                index: t,\n                element: i && i.element\n            }\n        }\n        onScroll(e) {\n            try {\n                var t = this.getRenderRange(this.lastRenderTop, this.lastRenderHeight);\n                this.render(t, e.scrollTop, e.height, e.scrollLeft, e.scrollWidth), this.supportDynamicHeights && this._rerender(e.scrollTop, e.height, e.inSmoothScrolling)\n            } catch (t) {\n                throw console.error(\"Got bad scroll event:\", e), t\n            }\n        }\n        onTouchChange(e) {\n            e.preventDefault(), e.stopPropagation(), this.scrollTop -= e.translationY\n        }\n        onDragStart(e, t, i) {\n            if (i.dataTransfer) {\n                if (e = this.dnd.getDragElements(e), i.dataTransfer.effectAllowed = \"copyMove\", i.dataTransfer.setData(Ec.a.TEXT, t), i.dataTransfer.setDragImage) {\n                    let t;\n                    this.dnd.getDragLabel && (t = this.dnd.getDragLabel(e, i)), void 0 === t && (t = String(e.length));\n                    const n = Object(s.a)(\".monaco-drag-image\");\n                    n.textContent = t, document.body.appendChild(n), i.dataTransfer.setDragImage(n, -10, -10), setTimeout(() => document.body.removeChild(n), 0)\n                }\n                this.currentDragData = new Pc(e), Ec.c.CurrentDragAndDropData = new Ac(e), this.dnd.onDragStart && this.dnd.onDragStart(this.currentDragData, i)\n            }\n        }\n        onDragOver(e) {\n            if (e.browserEvent.preventDefault(), this.onDragLeaveTimeout.dispose(), Ec.c.CurrentDragAndDropData && \"vscode-ui\" === Ec.c.CurrentDragAndDropData.getData()) return !1;\n            if (this.setupDragAndDropScrollTopAnimation(e.browserEvent), !e.browserEvent.dataTransfer) return !1;\n            if (!this.currentDragData)\n                if (Ec.c.CurrentDragAndDropData) this.currentDragData = Ec.c.CurrentDragAndDropData;\n                else {\n                    if (!e.browserEvent.dataTransfer.types) return !1;\n                    this.currentDragData = new Rc\n                } var t = this.dnd.onDragOver(this.currentDragData, e.element, e.index, e.browserEvent);\n            if (this.canDrop = \"boolean\" == typeof t ? t : t.accept, !this.canDrop) return this.currentDragFeedback = void 0, this.currentDragFeedbackDisposable.dispose(), !1;\n            let i;\n            if (e.browserEvent.dataTransfer.dropEffect = \"boolean\" != typeof t && 0 === t.effect ? \"copy\" : \"move\", i = \"boolean\" != typeof t && t.feedback ? t.feedback : void 0 === e.index ? [-1] : [e.index], i = Object(ne.f)(i).filter(e => -1 <= e && e < this.length).sort((e, t) => e - t), i = -1 === i[0] ? [-1] : i, t = this.currentDragFeedback, e = i, Array.isArray(t) && Array.isArray(e) ? Object(ne.g)(t, e) : t === e) return !0;\n            if (this.currentDragFeedback = i, this.currentDragFeedbackDisposable.dispose(), -1 === i[0]) this.domNode.classList.add(\"drop-target\"), this.rowsContainer.classList.add(\"drop-target\"), this.currentDragFeedbackDisposable = Object(v.i)(() => {\n                this.domNode.classList.remove(\"drop-target\"), this.rowsContainer.classList.remove(\"drop-target\")\n            });\n            else {\n                for (const e of i) {\n                    const t = this.items[e];\n                    t.dropTarget = !0, t.row && t.row.domNode.classList.add(\"drop-target\")\n                }\n                this.currentDragFeedbackDisposable = Object(v.i)(() => {\n                    for (const e of i) {\n                        const t = this.items[e];\n                        t.dropTarget = !1, t.row && t.row.domNode.classList.remove(\"drop-target\")\n                    }\n                })\n            }\n            return !0\n        }\n        onDragLeave(e) {\n            var t, i;\n            this.onDragLeaveTimeout.dispose(), this.onDragLeaveTimeout = Object(q.i)(() => this.clearDragOverFeedback(), 100), this.currentDragData && null !== (i = (t = this.dnd).onDragLeave) && void 0 !== i && i.call(t, this.currentDragData, e.element, e.index, e.browserEvent)\n        }\n        onDrop(e) {\n            if (this.canDrop) {\n                const t = this.currentDragData;\n                this.teardownDragAndDropScrollTopAnimation(), this.clearDragOverFeedback(), this.currentDragData = void 0, Ec.c.CurrentDragAndDropData = void 0, t && e.browserEvent.dataTransfer && (e.browserEvent.preventDefault(), t.update(e.browserEvent.dataTransfer), this.dnd.drop(t, e.element, e.index, e.browserEvent))\n            }\n        }\n        onDragEnd(e) {\n            this.canDrop = !1, this.teardownDragAndDropScrollTopAnimation(), this.clearDragOverFeedback(), this.currentDragData = void 0, Ec.c.CurrentDragAndDropData = void 0, this.dnd.onDragEnd && this.dnd.onDragEnd(e)\n        }\n        clearDragOverFeedback() {\n            this.currentDragFeedback = void 0, this.currentDragFeedbackDisposable.dispose(), this.currentDragFeedbackDisposable = v.a.None\n        }\n        setupDragAndDropScrollTopAnimation(e) {\n            var t;\n            this.dragOverAnimationDisposable || (t = Object(s.D)(this.domNode).top, this.dragOverAnimationDisposable = Object(s.m)(this.animateDragAndDropScrollTop.bind(this, t))), this.dragOverAnimationStopDisposable.dispose(), this.dragOverAnimationStopDisposable = Object(q.i)(() => {\n                this.dragOverAnimationDisposable && (this.dragOverAnimationDisposable.dispose(), this.dragOverAnimationDisposable = void 0)\n            }, 1e3), this.dragOverMouseY = e.pageY\n        }\n        animateDragAndDropScrollTop(e) {\n            var t;\n            void 0 !== this.dragOverMouseY && (t = this.dragOverMouseY - e, e = this.renderHeight - 35, t < 35 ? this.scrollTop += Math.max(-14, Math.floor(.3 * (t - 35))) : e < t && (this.scrollTop += Math.min(14, Math.floor(.3 * (t - e)))))\n        }\n        teardownDragAndDropScrollTopAnimation() {\n            this.dragOverAnimationStopDisposable.dispose(), this.dragOverAnimationDisposable && (this.dragOverAnimationDisposable.dispose(), this.dragOverAnimationDisposable = void 0)\n        }\n        getItemIndexFromEventTarget(e) {\n            const t = this.scrollableElement.getDomNode();\n            let i = e;\n            for (; i instanceof HTMLElement && i !== this.rowsContainer && t.contains(i);) {\n                var n = i.getAttribute(\"data-index\");\n                if (n && (n = Number(n), !isNaN(n))) return n;\n                i = i.parentElement\n            }\n        }\n        getRenderRange(e, t) {\n            return {\n                start: this.rangeMap.indexAt(e),\n                end: this.rangeMap.indexAfter(e + t - 1)\n            }\n        }\n        _rerender(e, t, i) {\n            var n = this.getRenderRange(e, t);\n            let r, o;\n            e === this.elementTop(n.start) ? (r = n.start, o = 0) : 1 < n.end - n.start && (r = n.start + 1, o = this.elementTop(r) - e);\n            let s = 0;\n            for (;;) {\n                var a, l = this.getRenderRange(e, t);\n                let h = !1;\n                for (let e = l.start; e < l.end; e++) {\n                    var d = this.probeDynamicHeight(e);\n                    0 !== d && this.rangeMap.splice(e, 1, [this.items[e]]), s += d, h = h || 0 !== d\n                }\n                if (!h) {\n                    0 !== s && this.eventuallyUpdateScrollDimensions();\n                    for (const e of Rd.relativeComplement(n, l))\n                        for (let t = e.start; t < e.end; t++) this.items[t].row && this.removeItemFromDOM(t);\n                    for (const e of Rd.relativeComplement(l, n))\n                        for (let t = e.start; t < e.end; t++) {\n                            var c = (c = (c = t + 1) < this.items.length ? this.items[c].row : null) ? c.domNode : null;\n                            this.insertItemInDOM(t, c)\n                        }\n                    for (let e = l.start; e < l.end; e++) this.items[e].row && this.updateItemInDOM(this.items[e], e);\n                    return \"number\" == typeof r && (a = this.scrollable.getFutureScrollPosition().scrollTop - e, a = this.elementTop(r) - o + a, this.setScrollTop(a, i)), void this._onDidChangeContentHeight.fire(this.contentHeight)\n                }\n            }\n        }\n        probeDynamicHeight(e) {\n            const t = this.items[e];\n            if (this.virtualDelegate.getDynamicHeight) {\n                var i = this.virtualDelegate.getDynamicHeight(t.element);\n                if (null !== i) {\n                    const e = t.size;\n                    return t.size = i, t.lastDynamicHeightWidth = this.renderWidth, i - e\n                }\n            }\n            if (!t.hasDynamicHeight || t.lastDynamicHeightWidth === this.renderWidth) return 0;\n            if (this.virtualDelegate.hasDynamicHeight && !this.virtualDelegate.hasDynamicHeight(t.element)) return 0;\n            const n = t.size;\n            if (!this.setRowHeight && t.row) return i = t.row.domNode.offsetHeight, t.size = i, t.lastDynamicHeightWidth = this.renderWidth, i - n;\n            const r = this.cache.alloc(t.templateId);\n            r.domNode.style.height = \"\", this.rowsContainer.appendChild(r.domNode);\n            const o = this.renderers.get(t.templateId);\n            return o && (o.renderElement(t.element, e, r.templateData, void 0), o.disposeElement && o.disposeElement(t.element, e, r.templateData, void 0)), t.size = r.domNode.offsetHeight, this.virtualDelegate.setDynamicHeight && this.virtualDelegate.setDynamicHeight(t.element, t.size), t.lastDynamicHeightWidth = this.renderWidth, this.rowsContainer.removeChild(r.domNode), this.cache.release(r), t.size - n\n        }\n        getNextToLastElement(e) {\n            return (e = e[e.length - 1]) && (e = this.items[e.end]) && e.row ? e.row.domNode : null\n        }\n        getElementDomId(e) {\n            return `${this.domId}_${e}`\n        }\n        dispose() {\n            if (this.items) {\n                for (const e of this.items)\n                    if (e.row) {\n                        const t = this.renderers.get(e.row.templateId);\n                        t && (t.disposeElement && t.disposeElement(e.element, -1, e.row.templateData, void 0), t.disposeTemplate(e.row.templateData))\n                    } this.items = []\n            }\n            this.domNode && this.domNode.parentNode && this.domNode.parentNode.removeChild(this.domNode), Object(v.f)(this.disposables)\n        }\n    }\n    jc.InstanceCount = 0, S([gi.a], jc.prototype, \"onMouseClick\", null), S([gi.a], jc.prototype, \"onMouseDblClick\", null), S([gi.a], jc.prototype, \"onMouseMiddleClick\", null), S([gi.a], jc.prototype, \"onMouseDown\", null), S([gi.a], jc.prototype, \"onContextMenu\", null), S([gi.a], jc.prototype, \"onTouchStart\", null), S([gi.a], jc.prototype, \"onTap\", null);\n    x = function(e, t, i, n) {\n        var r, o = arguments.length,\n            s = o < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n);\n        else\n            for (var a = e.length - 1; 0 <= a; a--)(r = e[a]) && (s = (o < 3 ? r(s) : 3 < o ? r(t, i, s) : r(t, i)) || s);\n        return 3 < o && s && Object.defineProperty(t, i, s), s\n    };\n    var Bc, Vc = function(e, t, i, n) {\n        return new(i = i || Promise)((function(r, o) {\n            function s(e) {\n                try {\n                    l(n.next(e))\n                } catch (e) {\n                    o(e)\n                }\n            }\n\n            function a(e) {\n                try {\n                    l(n.throw(e))\n                } catch (e) {\n                    o(e)\n                }\n            }\n\n            function l(e) {\n                var t;\n                e.done ? r(e.value) : ((t = e.value) instanceof i ? t : new i((function(e) {\n                    e(t)\n                }))).then(s, a)\n            }\n            l((n = n.apply(e, t || [])).next())\n        }))\n    };\n    class Wc {\n        constructor(e) {\n            this.trait = e, this.renderedElements = []\n        }\n        get templateId() {\n            return \"template:\" + this.trait.trait\n        }\n        renderTemplate(e) {\n            return e\n        }\n        renderElement(e, t, i) {\n            var n = this.renderedElements.findIndex(e => e.templateData === i);\n            if (0 <= n) {\n                const e = this.renderedElements[n];\n                this.trait.unrender(i), e.index = t\n            } else this.renderedElements.push({\n                index: t,\n                templateData: i\n            });\n            this.trait.renderIndex(t, i)\n        }\n        splice(e, t, i) {\n            const n = [];\n            for (const r of this.renderedElements) r.index < e ? n.push(r) : r.index >= e + t && n.push({\n                index: r.index + i - t,\n                templateData: r.templateData\n            });\n            this.renderedElements = n\n        }\n        renderIndexes(e) {\n            for (var {\n                    index: t,\n                    templateData: i\n                } of this.renderedElements) - 1 < e.indexOf(t) && this.trait.renderIndex(t, i)\n        }\n        disposeTemplate(e) {\n            var t = this.renderedElements.findIndex(t => t.templateData === e);\n            t < 0 || this.renderedElements.splice(t, 1)\n        }\n    }\n    class zc {\n        constructor(e) {\n            this._trait = e, this.length = 0, this.indexes = [], this.sortedIndexes = [], this._onChange = new D.b, this.onChange = this._onChange.event\n        }\n        get trait() {\n            return this._trait\n        }\n        get renderer() {\n            return new Wc(this)\n        }\n        splice(e, t, i) {\n            t = Math.max(0, Math.min(t, this.length - e));\n            const n = i.length - t,\n                r = e + t,\n                o = [...this.sortedIndexes.filter(t => t < e), ...i.map((t, i) => t ? i + e : -1).filter(e => -1 !== e), ...this.sortedIndexes.filter(e => e >= r).map(e => e + n)];\n            var s, a = this.length + n;\n            0 < this.sortedIndexes.length && 0 === o.length && 0 < a && (s = null !== (s = this.sortedIndexes.find(t => e <= t)) && void 0 !== s ? s : a - 1, o.push(Math.min(s, a - 1))), this.renderer.splice(e, t, i.length), this._set(o, o), this.length = a\n        }\n        renderIndex(e, t) {\n            t.classList.toggle(this._trait, this.contains(e))\n        }\n        unrender(e) {\n            e.classList.remove(this._trait)\n        }\n        set(e, t) {\n            return this._set(e, [...e].sort(oh), t)\n        }\n        _set(e, t, i) {\n            var n = this.indexes,\n                r = this.sortedIndexes;\n            return this.indexes = e, this.sortedIndexes = t, r = rh(r, e), this.renderer.renderIndexes(r), this._onChange.fire({\n                indexes: e,\n                browserEvent: i\n            }), n\n        }\n        get() {\n            return this.indexes\n        }\n        contains(e) {\n            return 0 <= Object(ne.d)(this.sortedIndexes, e, oh)\n        }\n        dispose() {\n            Object(v.f)(this._onChange)\n        }\n    }\n    x([gi.a], zc.prototype, \"renderer\", null);\n    class Hc extends zc {\n        constructor(e) {\n            super(\"selected\"), this.setAriaSelected = e\n        }\n        renderIndex(e, t) {\n            super.renderIndex(e, t), this.setAriaSelected && (this.contains(e) ? t.setAttribute(\"aria-selected\", \"true\") : t.setAttribute(\"aria-selected\", \"false\"))\n        }\n    }\n    class Uc {\n        constructor(e, t, i) {\n            this.trait = e, this.view = t, this.identityProvider = i\n        }\n        splice(e, t, i) {\n            if (!this.identityProvider) return this.trait.splice(e, t, i.map(() => !1));\n            const n = this.trait.get().map(e => this.identityProvider.getId(this.view.element(e)).toString());\n            i = i.map(e => -1 < n.indexOf(this.identityProvider.getId(e).toString())), this.trait.splice(e, t, i)\n        }\n    }\n\n    function Kc(e) {\n        return \"INPUT\" === e.tagName || \"TEXTAREA\" === e.tagName\n    }\n\n    function $c(e) {\n        return !!e.classList.contains(\"monaco-editor\") || !e.classList.contains(\"monaco-list\") && !!e.parentElement && $c(e.parentElement)\n    }\n    class qc {\n        constructor(e, t, i) {\n            this.list = e, this.view = t, this.disposables = new v.b, this.multipleSelectionDisposables = new v.b, this.onKeyDown.filter(e => 3 === e.keyCode).on(this.onEnter, this, this.disposables), this.onKeyDown.filter(e => 16 === e.keyCode).on(this.onUpArrow, this, this.disposables), this.onKeyDown.filter(e => 18 === e.keyCode).on(this.onDownArrow, this, this.disposables), this.onKeyDown.filter(e => 11 === e.keyCode).on(this.onPageUpArrow, this, this.disposables), this.onKeyDown.filter(e => 12 === e.keyCode).on(this.onPageDownArrow, this, this.disposables), this.onKeyDown.filter(e => 9 === e.keyCode).on(this.onEscape, this, this.disposables), !1 !== i.multipleSelectionSupport && this.onKeyDown.filter(e => (A.f ? e.metaKey : e.ctrlKey) && 31 === e.keyCode).on(this.onCtrlA, this, this.multipleSelectionDisposables)\n        }\n        get onKeyDown() {\n            return D.c.chain(this.disposables.add(new Sc.a(this.view.domNode, \"keydown\")).event).filter(e => !Kc(e.target)).map(e => new gt.a(e))\n        }\n        updateOptions(e) {\n            void 0 !== e.multipleSelectionSupport && (this.multipleSelectionDisposables.clear(), e.multipleSelectionSupport && this.onKeyDown.filter(e => (A.f ? e.metaKey : e.ctrlKey) && 31 === e.keyCode).on(this.onCtrlA, this, this.multipleSelectionDisposables))\n        }\n        onEnter(e) {\n            e.preventDefault(), e.stopPropagation(), this.list.setSelection(this.list.getFocus(), e.browserEvent)\n        }\n        onUpArrow(e) {\n            e.preventDefault(), e.stopPropagation(), this.list.focusPrevious(1, !1, e.browserEvent), e = this.list.getFocus()[0], this.list.setAnchor(e), this.list.reveal(e), this.view.domNode.focus()\n        }\n        onDownArrow(e) {\n            e.preventDefault(), e.stopPropagation(), this.list.focusNext(1, !1, e.browserEvent), e = this.list.getFocus()[0], this.list.setAnchor(e), this.list.reveal(e), this.view.domNode.focus()\n        }\n        onPageUpArrow(e) {\n            e.preventDefault(), e.stopPropagation(), this.list.focusPreviousPage(e.browserEvent), e = this.list.getFocus()[0], this.list.setAnchor(e), this.list.reveal(e), this.view.domNode.focus()\n        }\n        onPageDownArrow(e) {\n            e.preventDefault(), e.stopPropagation(), this.list.focusNextPage(e.browserEvent), e = this.list.getFocus()[0], this.list.setAnchor(e), this.list.reveal(e), this.view.domNode.focus()\n        }\n        onCtrlA(e) {\n            e.preventDefault(), e.stopPropagation(), this.list.setSelection(Object(ne.o)(this.list.length), e.browserEvent), this.list.setAnchor(void 0), this.view.domNode.focus()\n        }\n        onEscape(e) {\n            this.list.getSelection().length && (e.preventDefault(), e.stopPropagation(), this.list.setSelection([], e.browserEvent), this.list.setAnchor(void 0), this.view.domNode.focus())\n        }\n        dispose() {\n            this.disposables.dispose(), this.multipleSelectionDisposables.dispose()\n        }\n    }\n    x([gi.a], qc.prototype, \"onKeyDown\", null), (t = Bc = Bc || {})[t.Idle = 0] = \"Idle\", t[t.Typing = 1] = \"Typing\";\n    const Gc = new class {\n        mightProducePrintableCharacter(e) {\n            return !(e.ctrlKey || e.metaKey || e.altKey) && (31 <= e.keyCode && e.keyCode <= 56 || 21 <= e.keyCode && e.keyCode <= 30 || 93 <= e.keyCode && e.keyCode <= 102 || 80 <= e.keyCode && e.keyCode <= 90)\n        }\n    };\n    class Yc {\n        constructor(e, t, i, n) {\n            this.list = e, this.view = t, this.keyboardNavigationLabelProvider = i, this.delegate = n, this.enabled = !1, this.state = Bc.Idle, this.automaticKeyboardNavigation = !0, this.triggered = !1, this.previouslyFocused = -1, this.enabledDisposables = new v.b, this.disposables = new v.b, this.updateOptions(e.options)\n        }\n        updateOptions(e) {\n            void 0 === e.enableKeyboardNavigation || e.enableKeyboardNavigation ? this.enable() : this.disable(), void 0 !== e.automaticKeyboardNavigation && (this.automaticKeyboardNavigation = e.automaticKeyboardNavigation)\n        }\n        enable() {\n            if (!this.enabled) {\n                var e = D.c.chain(this.enabledDisposables.add(new Sc.a(this.view.domNode, \"keydown\")).event).filter(e => !Kc(e.target)).filter(() => this.automaticKeyboardNavigation || this.triggered).map(e => new gt.a(e)).filter(e => this.delegate.mightProducePrintableCharacter(e)).forEach(e => {\n                    e.stopPropagation(), e.preventDefault()\n                }).map(e => e.browserEvent.key).event;\n                const t = D.c.debounce(e, () => null, 800);\n                D.c.reduce(D.c.any(e, t), (e, t) => null === t ? null : (e || \"\") + t)(this.onInput, this, this.enabledDisposables), t(this.onClear, this, this.enabledDisposables), this.enabled = !0, this.triggered = !1\n            }\n        }\n        disable() {\n            this.enabled && (this.enabledDisposables.clear(), this.enabled = !1, this.triggered = !1)\n        }\n        onClear() {\n            var e, t = this.list.getFocus();\n            0 < t.length && t[0] === this.previouslyFocused && (t = null === (e = this.list.options.accessibilityProvider) || void 0 === e ? void 0 : e.getAriaLabel(this.list.element(t[0]))) && Object(Mi.a)(t), this.previouslyFocused = -1\n        }\n        onInput(e) {\n            if (!e) return this.state = Bc.Idle, void(this.triggered = !1);\n            var t = this.list.getFocus(),\n                i = 0 < t.length ? t[0] : 0,\n                n = this.state === Bc.Idle ? 1 : 0;\n            this.state = Bc.Typing;\n            for (let t = 0; t < this.list.length; t++) {\n                var r = (i + t + n) % this.list.length;\n                const s = this.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(this.view.element(r));\n                var o = s && s.toString();\n                if (void 0 === o || Object(Kd.d)(e, o)) return this.previouslyFocused = i, this.list.setFocus([r]), void this.list.reveal(r)\n            }\n        }\n        dispose() {\n            this.disable(), this.enabledDisposables.dispose(), this.disposables.dispose()\n        }\n    }\n    class Zc {\n        constructor(e, t) {\n            this.list = e, this.view = t, this.disposables = new v.b;\n            D.c.chain(this.disposables.add(new Sc.a(t.domNode, \"keydown\")).event).filter(e => !Kc(e.target)).map(e => new gt.a(e)).filter(e => !(2 !== e.keyCode || e.ctrlKey || e.metaKey || e.shiftKey || e.altKey)).on(this.onTab, this, this.disposables)\n        }\n        onTab(e) {\n            if (e.target === this.view.domNode) {\n                var t = this.list.getFocus();\n                if (0 !== t.length) {\n                    const i = this.view.domElement(t[0]);\n                    if (i) {\n                        const n = i.querySelector(\"[tabIndex]\");\n                        n && n instanceof HTMLElement && -1 !== n.tabIndex && \"hidden\" !== (t = window.getComputedStyle(n)).visibility && \"none\" !== t.display && (e.preventDefault(), e.stopPropagation(), n.focus())\n                    }\n                }\n            }\n        }\n        dispose() {\n            this.disposables.dispose()\n        }\n    }\n\n    function Xc(e) {\n        return A.f ? e.browserEvent.metaKey : e.browserEvent.ctrlKey\n    }\n\n    function Qc(e) {\n        return e.browserEvent.shiftKey\n    }\n    const Jc = {\n        isSelectionSingleChangeEvent: Xc,\n        isSelectionRangeChangeEvent: Qc\n    };\n    class eh {\n        constructor(e) {\n            this.list = e, this.disposables = new v.b, this._onPointer = new D.b, this.onPointer = this._onPointer.event, !1 !== e.options.multipleSelectionSupport && (this.multipleSelectionController = this.list.options.multipleSelectionController || Jc), this.mouseSupport = void 0 === e.options.mouseSupport || !!e.options.mouseSupport, this.mouseSupport && (e.onMouseDown(this.onMouseDown, this, this.disposables), e.onContextMenu(this.onContextMenu, this, this.disposables), e.onMouseDblClick(this.onDoubleClick, this, this.disposables), e.onTouchStart(this.onMouseDown, this, this.disposables), this.disposables.add(Ki.b.addTarget(e.getHTMLElement()))), D.c.any(e.onMouseClick, e.onMouseMiddleClick, e.onTap)(this.onViewPointer, this, this.disposables)\n        }\n        updateOptions(e) {\n            void 0 !== e.multipleSelectionSupport && (this.multipleSelectionController = void 0, e.multipleSelectionSupport && (this.multipleSelectionController = this.list.options.multipleSelectionController || Jc))\n        }\n        isSelectionSingleChangeEvent(e) {\n            return !!this.multipleSelectionController && this.multipleSelectionController.isSelectionSingleChangeEvent(e)\n        }\n        isSelectionRangeChangeEvent(e) {\n            return !!this.multipleSelectionController && this.multipleSelectionController.isSelectionRangeChangeEvent(e)\n        }\n        isSelectionChangeEvent(e) {\n            return this.isSelectionSingleChangeEvent(e) || this.isSelectionRangeChangeEvent(e)\n        }\n        onMouseDown(e) {\n            $c(e.browserEvent.target) || document.activeElement !== e.browserEvent.target && this.list.domFocus()\n        }\n        onContextMenu(e) {\n            var t;\n            $c(e.browserEvent.target) || (t = void 0 === e.index ? [] : [e.index], this.list.setFocus(t, e.browserEvent))\n        }\n        onViewPointer(e) {\n            if (this.mouseSupport && !Kc(e.browserEvent.target) && !$c(e.browserEvent.target)) {\n                var t, i = e.index;\n                return void 0 === i ? (this.list.setFocus([], e.browserEvent), this.list.setSelection([], e.browserEvent), void this.list.setAnchor(void 0)) : this.isSelectionRangeChangeEvent(e) || this.isSelectionChangeEvent(e) ? this.changeSelection(e) : (this.list.setFocus([i], e.browserEvent), this.list.setAnchor(i), (t = e.browserEvent) instanceof MouseEvent && 2 === t.button || this.list.setSelection([i], e.browserEvent), void this._onPointer.fire(e))\n            }\n        }\n        onDoubleClick(e) {\n            var t;\n            Kc(e.browserEvent.target) || $c(e.browserEvent.target) || this.isSelectionChangeEvent(e) || (t = this.list.getFocus(), this.list.setSelection(t, e.browserEvent))\n        }\n        changeSelection(e) {\n            const t = e.index;\n            let i = this.list.getAnchor();\n            if (this.isSelectionRangeChangeEvent(e)) {\n                void 0 === i && (i = null != (o = this.list.getFocus()[0]) ? o : t, this.list.setAnchor(i));\n                var n = Math.min(i, t),\n                    r = Math.max(i, t),\n                    o = Object(ne.o)(n, r + 1);\n                0 !== (r = function(e, t) {\n                    var i = e.indexOf(t);\n                    if (-1 === i) return [];\n                    const n = [];\n                    let r = i - 1;\n                    for (; 0 <= r && e[r] === t - (i - r);) n.push(e[r--]);\n                    for (n.reverse(), r = i; r < e.length && e[r] === t + (r - i);) n.push(e[r++]);\n                    return n\n                }(rh(n = this.list.getSelection(), [i]), i)).length && (s = rh(o, function(e, t) {\n                    const i = [];\n                    let n = 0,\n                        r = 0;\n                    for (; n < e.length || r < t.length;) n >= e.length ? i.push(t[r++]) : r >= t.length ? i.push(e[n++]) : e[n] !== t[r] ? e[n] < t[r] ? i.push(e[n++]) : r++ : (n++, r++);\n                    return i\n                }(n, r)), this.list.setSelection(s, e.browserEvent), this.list.setFocus([t], e.browserEvent))\n            } else if (this.isSelectionSingleChangeEvent(e)) {\n                const i = this.list.getSelection();\n                var s = i.filter(e => e !== t);\n                this.list.setFocus([t]), this.list.setAnchor(t), i.length === s.length ? this.list.setSelection([...s, t], e.browserEvent) : this.list.setSelection(s, e.browserEvent)\n            }\n        }\n        dispose() {\n            this.disposables.dispose()\n        }\n    }\n    class th {\n        constructor(e, t) {\n            this.styleElement = e, this.selectorSuffix = t\n        }\n        style(e) {\n            var t = this.selectorSuffix && \".\" + this.selectorSuffix;\n            const i = [];\n            e.listBackground && (e.listBackground.isOpaque() ? i.push(`.monaco-list${t} .monaco-list-rows { background: ${e.listBackground}; }`) : A.f || console.warn(`List with id '${this.selectorSuffix}' was styled with a non-opaque background color. This will break sub-pixel antialiasing.`)), e.listFocusBackground && (i.push(`.monaco-list${t}:focus .monaco-list-row.focused { background-color: ${e.listFocusBackground}; }`), i.push(`.monaco-list${t}:focus .monaco-list-row.focused:hover { background-color: ${e.listFocusBackground}; }`)), e.listFocusForeground && i.push(`.monaco-list${t}:focus .monaco-list-row.focused { color: ${e.listFocusForeground}; }`), e.listActiveSelectionBackground && (i.push(`.monaco-list${t}:focus .monaco-list-row.selected { background-color: ${e.listActiveSelectionBackground}; }`), i.push(`.monaco-list${t}:focus .monaco-list-row.selected:hover { background-color: ${e.listActiveSelectionBackground}; }`)), e.listActiveSelectionForeground && i.push(`.monaco-list${t}:focus .monaco-list-row.selected { color: ${e.listActiveSelectionForeground}; }`), e.listActiveSelectionIconForeground && i.push(`.monaco-list${t}:focus .monaco-list-row.selected .codicon { color: ${e.listActiveSelectionIconForeground}; }`), e.listFocusAndSelectionBackground && i.push(`\\n\\t\\t\\t\\t.monaco-drag-image,\\n\\t\\t\\t\\t.monaco-list${t}:focus .monaco-list-row.selected.focused { background-color: ${e.listFocusAndSelectionBackground}; }\\n\\t\\t\\t`), e.listFocusAndSelectionForeground && i.push(`\\n\\t\\t\\t\\t.monaco-drag-image,\\n\\t\\t\\t\\t.monaco-list${t}:focus .monaco-list-row.selected.focused { color: ${e.listFocusAndSelectionForeground}; }\\n\\t\\t\\t`), e.listInactiveFocusForeground && (i.push(`.monaco-list${t} .monaco-list-row.focused { color:  ${e.listInactiveFocusForeground}; }`), i.push(`.monaco-list${t} .monaco-list-row.focused:hover { color:  ${e.listInactiveFocusForeground}; }`)), e.listInactiveSelectionIconForeground && i.push(`.monaco-list${t} .monaco-list-row.focused .codicon { color:  ${e.listInactiveSelectionIconForeground}; }`), e.listInactiveFocusBackground && (i.push(`.monaco-list${t} .monaco-list-row.focused { background-color:  ${e.listInactiveFocusBackground}; }`), i.push(`.monaco-list${t} .monaco-list-row.focused:hover { background-color:  ${e.listInactiveFocusBackground}; }`)), e.listInactiveSelectionBackground && (i.push(`.monaco-list${t} .monaco-list-row.selected { background-color:  ${e.listInactiveSelectionBackground}; }`), i.push(`.monaco-list${t} .monaco-list-row.selected:hover { background-color:  ${e.listInactiveSelectionBackground}; }`)), e.listInactiveSelectionForeground && i.push(`.monaco-list${t} .monaco-list-row.selected { color: ${e.listInactiveSelectionForeground}; }`), e.listHoverBackground && i.push(`.monaco-list${t}:not(.drop-target) .monaco-list-row:hover:not(.selected):not(.focused) { background-color: ${e.listHoverBackground}; }`), e.listHoverForeground && i.push(`.monaco-list${t} .monaco-list-row:hover:not(.selected):not(.focused) { color:  ${e.listHoverForeground}; }`), e.listSelectionOutline && i.push(`.monaco-list${t} .monaco-list-row.selected { outline: 1px dotted ${e.listSelectionOutline}; outline-offset: -1px; }`), e.listFocusOutline && i.push(`\\n\\t\\t\\t\\t.monaco-drag-image,\\n\\t\\t\\t\\t.monaco-list${t}:focus .monaco-list-row.focused { outline: 1px solid ${e.listFocusOutline}; outline-offset: -1px; }\\n\\t\\t\\t`), e.listInactiveFocusOutline && i.push(`.monaco-list${t} .monaco-list-row.focused { outline: 1px dotted ${e.listInactiveFocusOutline}; outline-offset: -1px; }`), e.listHoverOutline && i.push(`.monaco-list${t} .monaco-list-row:hover { outline: 1px dashed ${e.listHoverOutline}; outline-offset: -1px; }`), e.listDropBackground && i.push(`\\n\\t\\t\\t\\t.monaco-list${t}.drop-target,\\n\\t\\t\\t\\t.monaco-list${t} .monaco-list-rows.drop-target,\\n\\t\\t\\t\\t.monaco-list${t} .monaco-list-row.drop-target { background-color: ${e.listDropBackground} !important; color: inherit !important; }\\n\\t\\t\\t`), e.listFilterWidgetBackground && i.push(`.monaco-list-type-filter { background-color: ${e.listFilterWidgetBackground} }`), e.listFilterWidgetOutline && i.push(`.monaco-list-type-filter { border: 1px solid ${e.listFilterWidgetOutline}; }`), e.listFilterWidgetNoMatchesOutline && i.push(`.monaco-list-type-filter.no-matches { border: 1px solid ${e.listFilterWidgetNoMatchesOutline}; }`), e.listMatchesShadow && i.push(`.monaco-list-type-filter { box-shadow: 1px 1px 1px ${e.listMatchesShadow}; }`), e.tableColumnsBorder && i.push(`\\n\\t\\t\\t\\t.monaco-table:hover > .monaco-split-view2,\\n\\t\\t\\t\\t.monaco-table:hover > .monaco-split-view2 .monaco-sash.vertical::before {\\n\\t\\t\\t\\t\\tborder-color: ${e.tableColumnsBorder};\\n\\t\\t\\t}`), this.styleElement.textContent = i.join(\"\\n\")\n        }\n    }\n    const ih = {\n            listFocusBackground: uo.a.fromHex(\"#7FB0D0\"),\n            listActiveSelectionBackground: uo.a.fromHex(\"#0E639C\"),\n            listActiveSelectionForeground: uo.a.fromHex(\"#FFFFFF\"),\n            listActiveSelectionIconForeground: uo.a.fromHex(\"#FFFFFF\"),\n            listFocusAndSelectionBackground: uo.a.fromHex(\"#094771\"),\n            listFocusAndSelectionForeground: uo.a.fromHex(\"#FFFFFF\"),\n            listInactiveSelectionBackground: uo.a.fromHex(\"#3F3F46\"),\n            listInactiveSelectionIconForeground: uo.a.fromHex(\"#FFFFFF\"),\n            listHoverBackground: uo.a.fromHex(\"#2A2D2E\"),\n            listDropBackground: uo.a.fromHex(\"#383B3D\"),\n            treeIndentGuidesStroke: uo.a.fromHex(\"#a9a9a9\"),\n            tableColumnsBorder: uo.a.fromHex(\"#cccccc\").transparent(.2)\n        },\n        nh = {\n            keyboardSupport: !0,\n            mouseSupport: !0,\n            multipleSelectionSupport: !0,\n            dnd: {\n                getDragURI: () => null,\n                onDragStart() {},\n                onDragOver: () => !1,\n                drop() {}\n            }\n        };\n\n    function rh(e, t) {\n        const i = [];\n        let n = 0,\n            r = 0;\n        for (; n < e.length || r < t.length;) n >= e.length ? i.push(t[r++]) : r >= t.length ? i.push(e[n++]) : e[n] !== t[r] ? e[n] < t[r] ? i.push(e[n++]) : i.push(t[r++]) : (i.push(e[n]), n++, r++);\n        return i\n    }\n    const oh = (e, t) => e - t;\n    class sh {\n        constructor(e, t) {\n            this._templateId = e, this.renderers = t\n        }\n        get templateId() {\n            return this._templateId\n        }\n        renderTemplate(e) {\n            return this.renderers.map(t => t.renderTemplate(e))\n        }\n        renderElement(e, t, i, n) {\n            let r = 0;\n            for (const o of this.renderers) o.renderElement(e, t, i[r++], n)\n        }\n        disposeElement(e, t, i, n) {\n            let r = 0;\n            for (const o of this.renderers) o.disposeElement && o.disposeElement(e, t, i[r], n), r += 1\n        }\n        disposeTemplate(e) {\n            let t = 0;\n            for (const i of this.renderers) i.disposeTemplate(e[t++])\n        }\n    }\n    class ah {\n        constructor(e) {\n            this.accessibilityProvider = e, this.templateId = \"a18n\"\n        }\n        renderTemplate(e) {\n            return e\n        }\n        renderElement(e, t, i) {\n            var n = this.accessibilityProvider.getAriaLabel(e);\n            n ? i.setAttribute(\"aria-label\", n) : i.removeAttribute(\"aria-label\"), \"number\" == typeof(e = this.accessibilityProvider.getAriaLevel && this.accessibilityProvider.getAriaLevel(e)) ? i.setAttribute(\"aria-level\", \"\" + e) : i.removeAttribute(\"aria-level\")\n        }\n        disposeTemplate(e) {}\n    }\n    class lh {\n        constructor(e, t) {\n            this.list = e, this.dnd = t\n        }\n        getDragElements(e) {\n            const t = this.list.getSelectedElements();\n            return -1 < t.indexOf(e) ? t : [e]\n        }\n        getDragURI(e) {\n            return this.dnd.getDragURI(e)\n        }\n        getDragLabel(e, t) {\n            if (this.dnd.getDragLabel) return this.dnd.getDragLabel(e, t)\n        }\n        onDragStart(e, t) {\n            this.dnd.onDragStart && this.dnd.onDragStart(e, t)\n        }\n        onDragOver(e, t, i, n) {\n            return this.dnd.onDragOver(e, t, i, n)\n        }\n        onDragLeave(e, t, i, n) {\n            var r, o;\n            null !== (o = (r = this.dnd).onDragLeave) && void 0 !== o && o.call(r, e, t, i, n)\n        }\n        onDragEnd(e) {\n            this.dnd.onDragEnd && this.dnd.onDragEnd(e)\n        }\n        drop(e, t, i, n) {\n            this.dnd.drop(e, t, i, n)\n        }\n    }\n    class dh {\n        constructor(e, t, i, n, r = nh) {\n            this.user = e, this._options = r, this.focus = new zc(\"focused\"), this.anchor = new zc(\"anchor\"), this.eventBufferer = new D.d, this._ariaLabel = \"\", this.disposables = new v.b, this._onDidDispose = new D.b, this.onDidDispose = this._onDidDispose.event, e = this._options.accessibilityProvider && this._options.accessibilityProvider.getWidgetRole ? null === (l = this._options.accessibilityProvider) || void 0 === l ? void 0 : l.getWidgetRole() : \"list\", this.selection = new Hc(\"listbox\" !== e), Object(I.e)(r, ih, !1);\n            const o = [this.focus.renderer, this.selection.renderer];\n            this.accessibilityProvider = r.accessibilityProvider, this.accessibilityProvider && (o.push(new ah(this.accessibilityProvider)), this.accessibilityProvider.onDidChangeActiveDescendant && this.accessibilityProvider.onDidChangeActiveDescendant(this.onDidChangeActiveDescendant, this, this.disposables)), n = n.map(e => new sh(e.templateId, [...o, e]));\n            var a, l = Object.assign(Object.assign({}, r), {\n                dnd: r.dnd && new lh(this, r.dnd)\n            });\n            this.view = new jc(t, i, n, l), this.view.domNode.setAttribute(\"role\", e), r.styleController ? this.styleController = r.styleController(this.view.domId) : (a = Object(s.t)(this.view.domNode), this.styleController = new th(a, this.view.domId)), this.spliceable = new kc([new Uc(this.focus, this.view, r.identityProvider), new Uc(this.selection, this.view, r.identityProvider), new Uc(this.anchor, this.view, r.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 Zc(this, this.view)), \"boolean\" == typeof r.keyboardSupport && !r.keyboardSupport || (this.keyboardController = new qc(this, this.view, r), this.disposables.add(this.keyboardController)), r.keyboardNavigationLabelProvider && (a = r.keyboardNavigationDelegate || Gc, this.typeLabelController = new Yc(this, this.view, r.keyboardNavigationLabelProvider, a), this.disposables.add(this.typeLabelController)), this.mouseController = this.createMouseController(r), 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()), !1 !== this._options.multipleSelectionSupport && this.view.domNode.setAttribute(\"aria-multiselectable\", \"true\")\n        }\n        get onDidChangeFocus() {\n            return D.c.map(this.eventBufferer.wrapEvent(this.focus.onChange), e => this.toListEvent(e))\n        }\n        get onDidChangeSelection() {\n            return D.c.map(this.eventBufferer.wrapEvent(this.selection.onChange), e => this.toListEvent(e))\n        }\n        get domId() {\n            return this.view.domId\n        }\n        get onMouseClick() {\n            return this.view.onMouseClick\n        }\n        get onMouseDblClick() {\n            return this.view.onMouseDblClick\n        }\n        get onMouseMiddleClick() {\n            return this.view.onMouseMiddleClick\n        }\n        get onPointer() {\n            return this.mouseController.onPointer\n        }\n        get onMouseDown() {\n            return this.view.onMouseDown\n        }\n        get onTouchStart() {\n            return this.view.onTouchStart\n        }\n        get onTap() {\n            return this.view.onTap\n        }\n        get onContextMenu() {\n            let e = !1;\n            var t = D.c.chain(this.disposables.add(new Sc.a(this.view.domNode, \"keydown\")).event).map(e => new gt.a(e)).filter(t => e = 58 === t.keyCode || t.shiftKey && 68 === t.keyCode).map(Sc.b).filter(() => !1).event,\n                i = D.c.chain(this.disposables.add(new Sc.a(this.view.domNode, \"keyup\")).event).forEach(() => e = !1).map(e => new gt.a(e)).filter(e => 58 === e.keyCode || e.shiftKey && 68 === e.keyCode).map(Sc.b).map(({\n                    browserEvent: e\n                }) => {\n                    var t;\n                    return {\n                        index: t = (t = this.getFocus()).length ? t[0] : void 0,\n                        element: void 0 !== t ? this.view.element(t) : void 0,\n                        anchor: void 0 !== t ? this.view.domElement(t) : this.view.domNode,\n                        browserEvent: e\n                    }\n                }).event,\n                n = D.c.chain(this.view.onContextMenu).filter(t => !e).map(({\n                    element: e,\n                    index: t,\n                    browserEvent: i\n                }) => ({\n                    element: e,\n                    index: t,\n                    anchor: {\n                        x: i.pageX + 1,\n                        y: i.pageY\n                    },\n                    browserEvent: i\n                })).event;\n            return D.c.any(t, i, n)\n        }\n        get onKeyDown() {\n            return this.disposables.add(new Sc.a(this.view.domNode, \"keydown\")).event\n        }\n        get onDidFocus() {\n            return D.c.signal(this.disposables.add(new Sc.a(this.view.domNode, \"focus\", !0)).event)\n        }\n        createMouseController(e) {\n            return new eh(this)\n        }\n        updateOptions(e = {}) {\n            var t;\n            this._options = Object.assign(Object.assign({}, this._options), e), this.typeLabelController && this.typeLabelController.updateOptions(this._options), void 0 !== this._options.multipleSelectionController && (this._options.multipleSelectionSupport ? this.view.domNode.setAttribute(\"aria-multiselectable\", \"true\") : this.view.domNode.removeAttribute(\"aria-multiselectable\")), this.mouseController.updateOptions(e), null !== (t = this.keyboardController) && void 0 !== t && t.updateOptions(e), this.view.updateOptions(e)\n        }\n        get options() {\n            return this._options\n        }\n        splice(e, t, i = []) {\n            if (e < 0 || e > this.view.length) throw new Oc(this.user, \"Invalid start index: \" + e);\n            if (t < 0) throw new Oc(this.user, \"Invalid delete count: \" + t);\n            0 === t && 0 === i.length || this.eventBufferer.bufferEvents(() => this.spliceable.splice(e, t, i))\n        }\n        rerender() {\n            this.view.rerender()\n        }\n        element(e) {\n            return this.view.element(e)\n        }\n        get length() {\n            return this.view.length\n        }\n        get contentHeight() {\n            return this.view.contentHeight\n        }\n        get scrollTop() {\n            return this.view.getScrollTop()\n        }\n        set scrollTop(e) {\n            this.view.setScrollTop(e)\n        }\n        get ariaLabel() {\n            return this._ariaLabel\n        }\n        set ariaLabel(e) {\n            this._ariaLabel = e, this.view.domNode.setAttribute(\"aria-label\", e)\n        }\n        domFocus() {\n            this.view.domNode.focus({\n                preventScroll: !0\n            })\n        }\n        layout(e, t) {\n            this.view.layout(e, t)\n        }\n        setSelection(e, t) {\n            for (const t of e)\n                if (t < 0 || t >= this.length) throw new Oc(this.user, \"Invalid index \" + t);\n            this.selection.set(e, t)\n        }\n        getSelection() {\n            return this.selection.get()\n        }\n        getSelectedElements() {\n            return this.getSelection().map(e => this.view.element(e))\n        }\n        setAnchor(e) {\n            if (void 0 !== e) {\n                if (e < 0 || e >= this.length) throw new Oc(this.user, \"Invalid index \" + e);\n                this.anchor.set([e])\n            } else this.anchor.set([])\n        }\n        getAnchor() {\n            return Object(ne.j)(this.anchor.get(), void 0)\n        }\n        getAnchorElement() {\n            var e = this.getAnchor();\n            return void 0 === e ? void 0 : this.element(e)\n        }\n        setFocus(e, t) {\n            for (const t of e)\n                if (t < 0 || t >= this.length) throw new Oc(this.user, \"Invalid index \" + t);\n            this.focus.set(e, t)\n        }\n        focusNext(e = 1, t = !1, i, n) {\n            var r;\n            0 !== this.length && (r = this.focus.get(), -1 < (n = this.findNextIndex(0 < r.length ? r[0] + e : 0, t, n)) && this.setFocus([n], i))\n        }\n        focusPrevious(e = 1, t = !1, i, n) {\n            var r;\n            0 !== this.length && (r = this.focus.get(), -1 < (n = this.findPreviousIndex(0 < r.length ? r[0] - e : 0, t, n)) && this.setFocus([n], i))\n        }\n        focusNextPage(e, t) {\n            return Vc(this, void 0, void 0, (function*() {\n                let i = this.view.indexAt(this.view.getScrollTop() + this.view.renderHeight);\n                i = 0 === i ? 0 : i - 1;\n                var n, r = this.view.element(i),\n                    o = this.getFocusedElements()[0];\n                o !== r ? -1 < (n = this.findPreviousIndex(i, !1, t)) && o !== this.view.element(n) ? this.setFocus([n], e) : this.setFocus([i], e) : (n = this.view.getScrollTop(), this.view.setScrollTop(n + this.view.renderHeight - this.view.elementHeight(i)), this.view.getScrollTop() !== n && (this.setFocus([]), yield Object(q.k)(0), yield this.focusNextPage(e, t)))\n            }))\n        }\n        focusPreviousPage(e, t) {\n            return Vc(this, void 0, void 0, (function*() {\n                let i;\n                var n = this.view.getScrollTop();\n                i = 0 === n ? this.view.indexAt(n) : this.view.indexAfter(n - 1);\n                var r = this.view.element(i),\n                    o = this.getFocusedElements()[0];\n                o !== r ? -1 < (r = this.findNextIndex(i, !1, t)) && o !== this.view.element(r) ? this.setFocus([r], e) : this.setFocus([i], e) : (this.view.setScrollTop((n = n) - this.view.renderHeight), this.view.getScrollTop() !== n && (this.setFocus([]), yield Object(q.k)(0), yield this.focusPreviousPage(e, t)))\n            }))\n        }\n        focusLast(e, t) {\n            0 === this.length || -1 < (t = this.findPreviousIndex(this.length - 1, !1, t)) && this.setFocus([t], e)\n        }\n        focusFirst(e, t) {\n            this.focusNth(0, e, t)\n        }\n        focusNth(e, t, i) {\n            0 === this.length || -1 < (i = this.findNextIndex(e, !1, i)) && this.setFocus([i], t)\n        }\n        findNextIndex(e, t = !1, i) {\n            for (let n = 0; n < this.length; n++) {\n                if (e >= this.length && !t) return -1;\n                if (e %= this.length, !i || i(this.element(e))) return e;\n                e++\n            }\n            return -1\n        }\n        findPreviousIndex(e, t = !1, i) {\n            for (let n = 0; n < this.length; n++) {\n                if (e < 0 && !t) return -1;\n                if (e = (this.length + e % this.length) % this.length, !i || i(this.element(e))) return e;\n                e--\n            }\n            return -1\n        }\n        getFocus() {\n            return this.focus.get()\n        }\n        getFocusedElements() {\n            return this.getFocus().map(e => this.view.element(e))\n        }\n        reveal(e, t) {\n            if (e < 0 || e >= this.length) throw new Oc(this.user, \"Invalid index \" + e);\n            var i, n = this.view.getScrollTop(),\n                r = this.view.elementTop(e);\n            e = this.view.elementHeight(e);\n            Object(ve.i)(t) ? (i = e - this.view.renderHeight, this.view.setScrollTop(i * Object(Lc.b)(t, 0, 1) + r)) : (i = r + e, t = n + this.view.renderHeight, r < n && t <= i || (r < n || t <= i && e >= this.view.renderHeight ? this.view.setScrollTop(r) : t <= i && this.view.setScrollTop(i - this.view.renderHeight)))\n        }\n        getRelativeTop(e) {\n            if (e < 0 || e >= this.length) throw new Oc(this.user, \"Invalid index \" + e);\n            var t = this.view.getScrollTop(),\n                i = this.view.elementTop(e);\n            e = this.view.elementHeight(e);\n            return i < t || i + e > t + this.view.renderHeight ? null : (e -= this.view.renderHeight, Math.abs((t - i) / e))\n        }\n        getHTMLElement() {\n            return this.view.domNode\n        }\n        style(e) {\n            this.styleController.style(e)\n        }\n        toListEvent({\n            indexes: e,\n            browserEvent: t\n        }) {\n            return {\n                indexes: e,\n                elements: e.map(e => this.view.element(e)),\n                browserEvent: t\n            }\n        }\n        _onFocusChange() {\n            var e = this.focus.get();\n            this.view.domNode.classList.toggle(\"element-focused\", 0 < e.length), this.onDidChangeActiveDescendant()\n        }\n        onDidChangeActiveDescendant() {\n            var e, t = this.focus.get();\n            if (0 < t.length) {\n                let i;\n                null !== (e = this.accessibilityProvider) && void 0 !== e && e.getActiveDescendantId && (i = this.accessibilityProvider.getActiveDescendantId(this.view.element(t[0]))), this.view.domNode.setAttribute(\"aria-activedescendant\", i || this.view.getElementDomId(t[0]))\n            } else this.view.domNode.removeAttribute(\"aria-activedescendant\")\n        }\n        _onSelectionChange() {\n            var e = this.selection.get();\n            this.view.domNode.classList.toggle(\"selection-none\", 0 === e.length), this.view.domNode.classList.toggle(\"selection-single\", 1 === e.length), this.view.domNode.classList.toggle(\"selection-multiple\", 1 < e.length)\n        }\n        dispose() {\n            this._onDidDispose.fire(), this.disposables.dispose(), this._onDidDispose.dispose()\n        }\n    }\n    x([gi.a], dh.prototype, \"onDidChangeFocus\", null), x([gi.a], dh.prototype, \"onDidChangeSelection\", null), x([gi.a], dh.prototype, \"onContextMenu\", null), x([gi.a], dh.prototype, \"onKeyDown\", null), x([gi.a], dh.prototype, \"onDidFocus\", null);\n    class ch {\n        constructor(e, t) {\n            this.renderer = e, this.modelProvider = t\n        }\n        get templateId() {\n            return this.renderer.templateId\n        }\n        renderTemplate(e) {\n            return {\n                data: this.renderer.renderTemplate(e),\n                disposable: v.a.None\n            }\n        }\n        renderElement(e, t, i, n) {\n            if (i.disposable && i.disposable.dispose(), i.data) {\n                const t = this.modelProvider();\n                if (t.isResolved(e)) return this.renderer.renderElement(t.get(e), e, i.data, n);\n                const r = new a.b,\n                    o = t.resolve(e, r.token);\n                i.disposable = {\n                    dispose: () => r.cancel()\n                }, this.renderer.renderPlaceholder(e, i.data), o.then(t => this.renderer.renderElement(t, e, i.data, n))\n            }\n        }\n        disposeTemplate(e) {\n            e.disposable && (e.disposable.dispose(), e.disposable = void 0), e.data && (this.renderer.disposeTemplate(e.data), e.data = void 0)\n        }\n    }\n    class hh {\n        constructor(e, t) {\n            this.modelProvider = e, this.accessibilityProvider = t\n        }\n        getWidgetAriaLabel() {\n            return this.accessibilityProvider.getWidgetAriaLabel()\n        }\n        getAriaLabel(e) {\n            const t = this.modelProvider();\n            return t.isResolved(e) ? this.accessibilityProvider.getAriaLabel(t.get(e)) : null\n        }\n    }\n    var uh;\n    i(437);\n    const ph = {\n        separatorBorder: uo.a.transparent\n    };\n    class gh {\n        constructor(e, t, i, n) {\n            this.container = e, this.view = t, this.disposable = n, this._cachedVisibleSize = void 0, \"number\" == typeof i ? (this._size = i, this._cachedVisibleSize = void 0, e.classList.add(\"visible\")) : (this._size = 0, this._cachedVisibleSize = i.cachedVisibleSize)\n        }\n        set size(e) {\n            this._size = e\n        }\n        get size() {\n            return this._size\n        }\n        get visible() {\n            return void 0 === this._cachedVisibleSize\n        }\n        setVisible(e, t) {\n            e !== this.visible && (e ? (this.size = Object(Lc.b)(this._cachedVisibleSize, this.viewMinimumSize, this.viewMaximumSize), this._cachedVisibleSize = void 0) : (this._cachedVisibleSize = \"number\" == typeof t ? t : this.size, this.size = 0), this.container.classList.toggle(\"visible\", e), this.view.setVisible && this.view.setVisible(e))\n        }\n        get minimumSize() {\n            return this.visible ? this.view.minimumSize : 0\n        }\n        get viewMinimumSize() {\n            return this.view.minimumSize\n        }\n        get maximumSize() {\n            return this.visible ? this.view.maximumSize : 0\n        }\n        get viewMaximumSize() {\n            return this.view.maximumSize\n        }\n        get priority() {\n            return this.view.priority\n        }\n        get snap() {\n            return !!this.view.snap\n        }\n        set enabled(e) {\n            this.container.style.pointerEvents = e ? \"\" : \"none\"\n        }\n        layout(e, t) {\n            this.layoutContainer(e), this.view.layout(this.size, e, t)\n        }\n        dispose() {\n            return this.disposable.dispose(), this.view\n        }\n    }\n    class fh extends gh {\n        layoutContainer(e) {\n            this.container.style.top = e + \"px\", this.container.style.height = this.size + \"px\"\n        }\n    }\n    class mh extends gh {\n        layoutContainer(e) {\n            this.container.style.left = e + \"px\", this.container.style.width = this.size + \"px\"\n        }\n    }(ae = uh = uh || {})[ae.Idle = 0] = \"Idle\", ae[ae.Busy = 1] = \"Busy\", (S = {}).Distribute = {\n        type: \"distribute\"\n    }, S.Split = function(e) {\n        return {\n            type: \"split\",\n            index: e\n        }\n    }, S.Invisible = function(e) {\n        return {\n            type: \"invisible\",\n            cachedVisibleSize: e\n        }\n    };\n    class vh extends v.a {\n        constructor(e, t = {}) {\n            var i;\n            super(), this.size = 0, this.contentSize = 0, this.proportions = void 0, this.viewItems = [], this.sashItems = [], this.state = uh.Idle, this._onDidSashChange = this._register(new D.b), this.onDidSashChange = this._onDidSashChange.event, this._onDidSashReset = this._register(new D.b), this._startSnappingEnabled = !0, this._endSnappingEnabled = !0, this.orientation = ve.l(t.orientation) ? 0 : t.orientation, this.inverseAltBehavior = !!t.inverseAltBehavior, this.proportionalLayout = !!ve.l(t.proportionalLayout) || !!t.proportionalLayout, this.getSashOrthogonalSize = t.getSashOrthogonalSize, this.el = document.createElement(\"div\"), this.el.classList.add(\"monaco-split-view2\"), this.el.classList.add(0 === this.orientation ? \"vertical\" : \"horizontal\"), e.appendChild(this.el), this.sashContainer = Object(s.n)(this.el, Object(s.a)(\".sash-container\")), this.viewContainer = Object(s.a)(\".split-view-container\"), this.scrollable = new bs.a(125, s.R), this.scrollableElement = this._register(new Dr.c(this.viewContainer, {\n                vertical: 0 === this.orientation ? null !== (i = t.scrollbarVisibility) && void 0 !== i ? i : 1 : 2,\n                horizontal: 1 === this.orientation ? null !== (i = t.scrollbarVisibility) && void 0 !== i ? i : 1 : 2\n            }, this.scrollable)), this.onDidScroll = this.scrollableElement.onScroll, this._register(this.onDidScroll(e => {\n                this.viewContainer.scrollTop = e.scrollTop, this.viewContainer.scrollLeft = e.scrollLeft\n            })), Object(s.n)(this.el, this.scrollableElement.getDomNode()), this.style(t.styles || ph), t.descriptor && (this.size = t.descriptor.size, t.descriptor.views.forEach((e, t) => {\n                var i = ve.l(e.visible) || e.visible ? e.size : {\n                    type: \"invisible\",\n                    cachedVisibleSize: e.size\n                };\n                e = e.view;\n                this.doAddView(e, i, t, !0)\n            }), this.contentSize = this.viewItems.reduce((e, t) => e + t.size, 0), this.saveProportions())\n        }\n        get orthogonalStartSash() {\n            return this._orthogonalStartSash\n        }\n        set orthogonalStartSash(e) {\n            for (const t of this.sashItems) t.sash.orthogonalStartSash = e;\n            this._orthogonalStartSash = e\n        }\n        get orthogonalEndSash() {\n            return this._orthogonalEndSash\n        }\n        set orthogonalEndSash(e) {\n            for (const t of this.sashItems) t.sash.orthogonalEndSash = e;\n            this._orthogonalEndSash = e\n        }\n        get startSnappingEnabled() {\n            return this._startSnappingEnabled\n        }\n        set startSnappingEnabled(e) {\n            this._startSnappingEnabled !== e && (this._startSnappingEnabled = e, this.updateSashEnablement())\n        }\n        get endSnappingEnabled() {\n            return this._endSnappingEnabled\n        }\n        set endSnappingEnabled(e) {\n            this._endSnappingEnabled !== e && (this._endSnappingEnabled = e, this.updateSashEnablement())\n        }\n        style(e) {\n            e.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\", e.separatorBorder.toString()))\n        }\n        addView(e, t, i = this.viewItems.length, n) {\n            this.doAddView(e, t, i, n)\n        }\n        layout(e, t) {\n            var i = Math.max(this.size, this.contentSize);\n            if (this.size = e, this.layoutContext = t, this.proportions)\n                for (let t = 0; t < this.viewItems.length; t++) {\n                    const i = this.viewItems[t];\n                    i.size = Object(Lc.b)(Math.round(this.proportions[t] * e), i.minimumSize, i.maximumSize)\n                } else {\n                    const r = Object(ne.o)(this.viewItems.length);\n                    var n = r.filter(e => 1 === this.viewItems[e].priority);\n                    t = r.filter(e => 2 === this.viewItems[e].priority);\n                    this.resize(this.viewItems.length - 1, e - i, void 0, n, t)\n                }\n            this.distributeEmptySpace(), this.layoutViews()\n        }\n        saveProportions() {\n            this.proportionalLayout && 0 < this.contentSize && (this.proportions = this.viewItems.map(e => e.size / this.contentSize))\n        }\n        onSashStart({\n            sash: e,\n            start: t,\n            alt: i\n        }) {\n            for (const e of this.viewItems) e.enabled = !1;\n            const n = this.sashItems.findIndex(t => t.sash === e),\n                r = Object(v.e)(Object(s.g)(document.body, \"keydown\", e => o(this.sashDragState.current, e.altKey)), Object(s.g)(document.body, \"keyup\", () => o(this.sashDragState.current, !1))),\n                o = (e, t) => {\n                    const i = this.viewItems.map(e => e.size);\n                    let o, s, a = Number.NEGATIVE_INFINITY,\n                        l = Number.POSITIVE_INFINITY;\n                    if ((t = this.inverseAltBehavior ? !t : t) && (l = (c = n === this.sashItems.length - 1) ? (a = ((h = this.viewItems[n]).minimumSize - h.size) / 2, (h.maximumSize - h.size) / 2) : (a = ((u = this.viewItems[n + 1]).size - u.maximumSize) / 2, (u.size - u.minimumSize) / 2)), !t) {\n                        const e = Object(ne.o)(n, -1),\n                            t = Object(ne.o)(n + 1, this.viewItems.length);\n                        var d = e.reduce((e, t) => e + (this.viewItems[t].minimumSize - i[t]), 0),\n                            c = e.reduce((e, t) => e + (this.viewItems[t].viewMaximumSize - i[t]), 0),\n                            h = 0 === t.length ? Number.POSITIVE_INFINITY : t.reduce((e, t) => e + (i[t] - this.viewItems[t].minimumSize), 0),\n                            u = 0 === t.length ? Number.NEGATIVE_INFINITY : t.reduce((e, t) => e + (i[t] - this.viewItems[t].viewMaximumSize), 0);\n                        const r = Math.max(d, u),\n                            a = Math.min(h, c);\n                        var p, g;\n                        h = this.findFirstSnapIndex(e), c = this.findFirstSnapIndex(t);\n                        \"number\" == typeof h && (g = this.viewItems[h], p = Math.floor(g.viewMinimumSize / 2), o = {\n                            index: h,\n                            limitDelta: g.visible ? r - p : r + p,\n                            size: g.size\n                        }), \"number\" == typeof c && (p = this.viewItems[c], g = Math.floor(p.viewMinimumSize / 2), s = {\n                            index: c,\n                            limitDelta: p.visible ? a + g : a - g,\n                            size: p.size\n                        })\n                    }\n                    this.sashDragState = {\n                        start: e,\n                        current: e,\n                        index: n,\n                        sizes: i,\n                        minDelta: a,\n                        maxDelta: l,\n                        alt: t,\n                        snapBefore: o,\n                        snapAfter: s,\n                        disposable: r\n                    }\n                };\n            o(t, i)\n        }\n        onSashChange({\n            current: e\n        }) {\n            var {\n                index: t,\n                start: i,\n                sizes: n,\n                alt: r,\n                minDelta: o,\n                maxDelta: s,\n                snapBefore: a,\n                snapAfter: l\n            } = this.sashDragState;\n            this.sashDragState.current = e, o = this.resize(t, e - i, n, void 0, void 0, o, s, a, l), r && (s = t === this.sashItems.length - 1, a = this.viewItems.map(e => e.size), r = (l = this.viewItems[s ? t : t + 1]).size - l.maximumSize, l = l.size - l.minimumSize, this.resize(s ? t - 1 : t + 1, -o, a, void 0, void 0, r, l)), this.distributeEmptySpace(), this.layoutViews()\n        }\n        onSashEnd(e) {\n            this._onDidSashChange.fire(e), this.sashDragState.disposable.dispose(), this.saveProportions();\n            for (const e of this.viewItems) e.enabled = !0\n        }\n        onViewChange(e, t) {\n            var i = this.viewItems.indexOf(e);\n            i < 0 || i >= this.viewItems.length || (t = \"number\" == typeof t ? t : e.size, t = Object(Lc.b)(t, e.minimumSize, e.maximumSize), this.inverseAltBehavior && 0 < i ? (this.resize(i - 1, Math.floor((e.size - t) / 2)), this.distributeEmptySpace(), this.layoutViews()) : (e.size = t, this.relayout([i], void 0)))\n        }\n        resizeView(e, t) {\n            if (this.state !== uh.Idle) throw new Error(\"Cant modify splitview\");\n            if (this.state = uh.Busy, !(e < 0 || e >= this.viewItems.length)) {\n                const r = Object(ne.o)(this.viewItems.length).filter(t => t !== e);\n                var i = [...r.filter(e => 1 === this.viewItems[e].priority), e],\n                    n = r.filter(e => 2 === this.viewItems[e].priority);\n                const o = this.viewItems[e];\n                t = Math.round(t), t = Object(Lc.b)(t, o.minimumSize, Math.min(o.maximumSize, this.size)), o.size = t, this.relayout(i, n), this.state = uh.Idle\n            }\n        }\n        distributeViewSizes() {\n            const e = [];\n            let t = 0;\n            for (const i of this.viewItems) 0 < i.maximumSize - i.minimumSize && (e.push(i), t += i.size);\n            var i = Math.floor(t / e.length);\n            for (const t of e) t.size = Object(Lc.b)(i, t.minimumSize, t.maximumSize);\n            const n = Object(ne.o)(this.viewItems.length);\n            var r = n.filter(e => 1 === this.viewItems[e].priority),\n                o = n.filter(e => 2 === this.viewItems[e].priority);\n            this.relayout(r, o)\n        }\n        getViewSize(e) {\n            return e < 0 || e >= this.viewItems.length ? -1 : this.viewItems[e].size\n        }\n        doAddView(e, t, i = this.viewItems.length, n) {\n            if (this.state !== uh.Idle) throw new Error(\"Cant modify splitview\");\n            this.state = uh.Busy;\n            const r = Object(s.a)(\".split-view-view\");\n            i === this.viewItems.length ? this.viewContainer.appendChild(r) : this.viewContainer.insertBefore(r, this.viewContainer.children.item(i));\n            const o = e.onDidChange(e => this.onViewChange(c, e));\n            var a = Object(v.i)(() => this.viewContainer.removeChild(r));\n            const l = Object(v.e)(o, a);\n            let d;\n            d = \"number\" == typeof t ? t : \"split\" === t.type ? this.getViewSize(t.index) / 2 : \"invisible\" === t.type ? {\n                cachedVisibleSize: t.cachedVisibleSize\n            } : e.minimumSize;\n            const c = new(0 === this.orientation ? fh : mh)(r, e, d, l);\n            if (this.viewItems.splice(i, 0, c), 1 < this.viewItems.length) {\n                var h = {\n                    orthogonalStartSash: this.orthogonalStartSash,\n                    orthogonalEndSash: this.orthogonalEndSash\n                };\n                const e = 0 === this.orientation ? new va.a(this.sashContainer, {\n                    getHorizontalSashTop: e => this.getSashPosition(e),\n                    getHorizontalSashWidth: this.getSashOrthogonalSize\n                }, Object.assign(Object.assign({}, h), {\n                    orientation: 1\n                })) : new va.a(this.sashContainer, {\n                    getVerticalSashLeft: e => this.getSashPosition(e),\n                    getVerticalSashHeight: this.getSashOrthogonalSize\n                }, Object.assign(Object.assign({}, h), {\n                    orientation: 0\n                }));\n                var u = 0 === this.orientation ? t => ({\n                    sash: e,\n                    start: t.startY,\n                    current: t.currentY,\n                    alt: t.altKey\n                }) : t => ({\n                    sash: e,\n                    start: t.startX,\n                    current: t.currentX,\n                    alt: t.altKey\n                });\n                a = D.c.map(e.onDidStart, u)(this.onSashStart, this);\n                const t = D.c.map(e.onDidChange, u)(this.onSashChange, this);\n                h = D.c.map(e.onDidEnd, () => this.sashItems.findIndex(t => t.sash === e))(this.onSashEnd, this), u = e.onDidReset(() => {\n                    var t = this.sashItems.findIndex(t => t.sash === e),\n                        i = Object(ne.o)(t, -1),\n                        n = Object(ne.o)(t + 1, this.viewItems.length);\n                    i = this.findFirstSnapIndex(i), n = this.findFirstSnapIndex(n);\n                    \"number\" == typeof i && !this.viewItems[i].visible || \"number\" == typeof n && !this.viewItems[n].visible || this._onDidSashReset.fire(t)\n                });\n                const n = Object(v.e)(a, t, h, u, e);\n                u = {\n                    sash: e,\n                    disposable: n\n                }, this.sashItems.splice(i - 1, 0, u)\n            }\n            let p;\n            r.appendChild(e.element), \"number\" != typeof t && \"split\" === t.type && (p = [t.index]), n || this.relayout([i], p), this.state = uh.Idle, n || \"number\" == typeof t || \"distribute\" !== t.type || this.distributeViewSizes()\n        }\n        relayout(e, t) {\n            var i = this.viewItems.reduce((e, t) => e + t.size, 0);\n            this.resize(this.viewItems.length - 1, this.size - i, void 0, e, t), this.distributeEmptySpace(), this.layoutViews(), this.saveProportions()\n        }\n        resize(e, t, i = this.viewItems.map(e => e.size), n, r, o = Number.NEGATIVE_INFINITY, s = Number.POSITIVE_INFINITY, a, l) {\n            if (e < 0 || e >= this.viewItems.length) return 0;\n            const d = Object(ne.o)(e, -1),\n                c = Object(ne.o)(e + 1, this.viewItems.length);\n            if (r)\n                for (const e of r) Object(ne.n)(d, e), Object(ne.n)(c, e);\n            if (n)\n                for (const e of n) Object(ne.m)(d, e), Object(ne.m)(c, e);\n            var h = d.map(e => this.viewItems[e]),\n                u = d.map(e => i[e]),\n                p = c.map(e => this.viewItems[e]),\n                g = c.map(e => i[e]),\n                f = d.reduce((e, t) => e + (this.viewItems[t].minimumSize - i[t]), 0),\n                m = d.reduce((e, t) => e + (this.viewItems[t].maximumSize - i[t]), 0),\n                v = 0 === c.length ? Number.POSITIVE_INFINITY : c.reduce((e, t) => e + (i[t] - this.viewItems[t].minimumSize), 0),\n                b = 0 === c.length ? Number.NEGATIVE_INFINITY : c.reduce((e, t) => e + (i[t] - this.viewItems[t].maximumSize), 0);\n            b = Math.max(f, b, o), v = Math.min(v, m, s);\n            let _ = !1;\n            if (a) {\n                const e = this.viewItems[a.index];\n                _ = (m = t >= a.limitDelta) !== e.visible, e.setVisible(m, a.size)\n            }\n            if (!_ && l) {\n                const e = this.viewItems[l.index];\n                _ = (a = t < l.limitDelta) !== e.visible, e.setVisible(a, l.size)\n            }\n            if (_) return this.resize(e, t, i, n, r, o, s);\n            for (let e = 0, i = t = Object(Lc.b)(t, b, v); e < h.length; e++) {\n                const t = h[e];\n                var w = Object(Lc.b)(u[e] + i, t.minimumSize, t.maximumSize);\n                i -= w - u[e], t.size = w\n            }\n            for (let e = 0, i = t; e < p.length; e++) {\n                const t = p[e];\n                var y = Object(Lc.b)(g[e] - i, t.minimumSize, t.maximumSize);\n                i += y - g[e], t.size = y\n            }\n            return t\n        }\n        distributeEmptySpace(e) {\n            var t = this.viewItems.reduce((e, t) => e + t.size, 0);\n            let i = this.size - t;\n            const n = Object(ne.o)(this.viewItems.length - 1, -1);\n            t = n.filter(e => 1 === this.viewItems[e].priority);\n            for (const e of n.filter(e => 2 === this.viewItems[e].priority)) Object(ne.n)(n, e);\n            for (const e of t) Object(ne.m)(n, e);\n            \"number\" == typeof e && Object(ne.m)(n, e);\n            for (let e = 0; 0 !== i && e < n.length; e++) {\n                const t = this.viewItems[n[e]];\n                var r = Object(Lc.b)(t.size + i, t.minimumSize, t.maximumSize);\n                i -= r - t.size, t.size = r\n            }\n        }\n        layoutViews() {\n            this.contentSize = this.viewItems.reduce((e, t) => e + t.size, 0);\n            let e = 0;\n            for (const t of this.viewItems) t.layout(e, this.layoutContext), e += t.size;\n            this.sashItems.forEach(e => e.sash.layout()), this.updateSashEnablement(), this.updateScrollableElement()\n        }\n        updateScrollableElement() {\n            0 === this.orientation ? this.scrollableElement.setScrollDimensions({\n                height: this.size,\n                scrollHeight: this.contentSize\n            }) : this.scrollableElement.setScrollDimensions({\n                width: this.size,\n                scrollWidth: this.contentSize\n            })\n        }\n        updateSashEnablement() {\n            let e = !1;\n            var t = this.viewItems.map(t => e = 0 < t.size - t.minimumSize || e);\n            e = !1;\n            var i = this.viewItems.map(t => e = 0 < t.maximumSize - t.size || e);\n            const n = [...this.viewItems].reverse();\n            e = !1;\n            var r = n.map(t => e = 0 < t.size - t.minimumSize || e).reverse();\n            e = !1;\n            var o = n.map(t => e = 0 < t.maximumSize - t.size || e).reverse();\n            let s = 0;\n            for (let e = 0; e < this.sashItems.length; e++) {\n                const {\n                    sash: n\n                } = this.sashItems[e];\n                var a = this.viewItems[e];\n                s += a.size;\n                var l, d = !(t[e] && o[e + 1]),\n                    c = !(i[e] && r[e + 1]);\n                d && c ? (l = Object(ne.o)(e, -1), a = Object(ne.o)(e + 1, this.viewItems.length), l = this.findFirstSnapIndex(l), a = this.findFirstSnapIndex(a), l = \"number\" == typeof l && !this.viewItems[l].visible, a = \"number\" == typeof a && !this.viewItems[a].visible, l && r[e] && (0 < s || this.startSnappingEnabled) ? n.state = 1 : a && t[e] && (s < this.contentSize || this.endSnappingEnabled) ? n.state = 2 : n.state = 0) : n.state = d && !c ? 1 : !d && c ? 2 : 3\n            }\n        }\n        getSashPosition(e) {\n            let t = 0;\n            for (let i = 0; i < this.sashItems.length; i++)\n                if (t += this.viewItems[i].size, this.sashItems[i].sash === e) return t;\n            return 0\n        }\n        findFirstSnapIndex(e) {\n            for (const i of e) {\n                var t = this.viewItems[i];\n                if (t.visible && t.snap) return i\n            }\n            for (const t of e) {\n                var i = this.viewItems[t];\n                if (i.visible && 0 < i.maximumSize - i.minimumSize) return;\n                if (!i.visible && i.snap) return t\n            }\n        }\n        dispose() {\n            super.dispose(), this.viewItems.forEach(e => e.dispose()), this.viewItems = [], this.sashItems.forEach(e => e.disposable.dispose()), this.sashItems = []\n        }\n    }\n    var bh;\n    i(439);\n    class _h {\n        constructor(e, t, i) {\n            this.columns = e, this.getColumnSize = i, this.templateId = _h.TemplateId, this.renderedTemplates = new Set;\n            const n = new Map(t.map(e => [e.templateId, e]));\n            this.renderers = [];\n            for (const t of e) {\n                var r = n.get(t.templateId);\n                if (!r) throw new Error(`Table cell renderer for template id ${t.templateId} not found.`);\n                this.renderers.push(r)\n            }\n        }\n        renderTemplate(e) {\n            var t = Object(s.n)(e, Object(s.a)(\".monaco-table-tr\"));\n            const i = [],\n                n = [];\n            for (let e = 0; e < this.columns.length; e++) {\n                const r = this.renderers[e],\n                    o = Object(s.n)(t, Object(s.a)(\".monaco-table-td\", {\n                        \"data-col-index\": e\n                    }));\n                o.style.width = this.getColumnSize(e) + \"px\", i.push(o), n.push(r.renderTemplate(o))\n            }\n            return e = {\n                container: e,\n                cellContainers: i,\n                cellTemplateData: n\n            }, this.renderedTemplates.add(e), e\n        }\n        renderElement(e, t, i, n) {\n            for (let o = 0; o < this.columns.length; o++) {\n                var r = this.columns[o].project(e);\n                this.renderers[o].renderElement(r, t, i.cellTemplateData[o], n)\n            }\n        }\n        disposeElement(e, t, i, n) {\n            for (let o = 0; o < this.columns.length; o++) {\n                const s = this.renderers[o];\n                if (s.disposeElement) {\n                    var r = this.columns[o].project(e);\n                    s.disposeElement(r, t, i.cellTemplateData[o], n)\n                }\n            }\n        }\n        disposeTemplate(e) {\n            for (let t = 0; t < this.columns.length; t++) {\n                this.renderers[t].disposeTemplate(e.cellTemplateData[t])\n            }\n            Object(s.q)(e.container), this.renderedTemplates.delete(e)\n        }\n        layoutColumn(e, t) {\n            for (var {\n                    cellContainers: i\n                } of this.renderedTemplates) i[e].style.width = t + \"px\"\n        }\n    }\n    _h.TemplateId = \"row\";\n    class wh {\n        constructor(e, t) {\n            this.column = e, this.index = t, this._onDidLayout = new D.b, this.onDidLayout = this._onDidLayout.event, this.element = Object(s.a)(\".monaco-table-th\", {\n                \"data-col-index\": t,\n                title: e.tooltip\n            }, e.label)\n        }\n        get minimumSize() {\n            var e;\n            return null !== (e = this.column.minimumWidth) && void 0 !== e ? e : 120\n        }\n        get maximumSize() {\n            var e;\n            return null !== (e = this.column.maximumWidth) && void 0 !== e ? e : Number.POSITIVE_INFINITY\n        }\n        get onDidChange() {\n            var e;\n            return null !== (e = this.column.onDidChangeWidthConstraints) && void 0 !== e ? e : D.c.None\n        }\n        layout(e) {\n            this._onDidLayout.fire([this.index, e])\n        }\n    }\n    class yh {\n        constructor(e, t, i, n, r, o) {\n            this.virtualDelegate = i, this.domId = \"table_id_\" + ++yh.InstanceCount, this.cachedHeight = 0, this.domNode = Object(s.n)(t, Object(s.a)(\".monaco-table.\" + this.domId));\n            const a = n.map((e, t) => new wh(e, t));\n            var l;\n            t = {\n                size: a.reduce((e, t) => e + t.column.weight, 0),\n                views: a.map(e => ({\n                    size: e.column.weight,\n                    view: e\n                }))\n            };\n            this.splitview = new vh(this.domNode, {\n                orientation: 1,\n                scrollbarVisibility: 2,\n                getSashOrthogonalSize: () => this.cachedHeight,\n                descriptor: t\n            }), this.splitview.el.style.height = i.headerRowHeight + \"px\", this.splitview.el.style.lineHeight = i.headerRowHeight + \"px\";\n            const d = new _h(n, r, e => this.splitview.getViewSize(e));\n            this.list = new dh(e, this.domNode, (l = i, {\n                getHeight: e => l.getHeight(e),\n                getTemplateId: () => _h.TemplateId\n            }), [d], o), this.columnLayoutDisposable = D.c.any(...a.map(e => e.onDidLayout))(([e, t]) => d.layoutColumn(e, t)), this.styleElement = Object(s.t)(this.domNode), this.style({})\n        }\n        get onDidChangeFocus() {\n            return this.list.onDidChangeFocus\n        }\n        get onDidChangeSelection() {\n            return this.list.onDidChangeSelection\n        }\n        get onMouseDblClick() {\n            return this.list.onMouseDblClick\n        }\n        get onPointer() {\n            return this.list.onPointer\n        }\n        get onDidFocus() {\n            return this.list.onDidFocus\n        }\n        get onDidDispose() {\n            return this.list.onDidDispose\n        }\n        updateOptions(e) {\n            this.list.updateOptions(e)\n        }\n        splice(e, t, i = []) {\n            this.list.splice(e, t, i)\n        }\n        getHTMLElement() {\n            return this.domNode\n        }\n        style(e) {\n            const t = [];\n            t.push(`.monaco-table.${this.domId} > .monaco-split-view2 .monaco-sash.vertical::before {\\n\\t\\t\\ttop: ${this.virtualDelegate.headerRowHeight+1}px;\\n\\t\\t\\theight: calc(100% - ${this.virtualDelegate.headerRowHeight}px);\\n\\t\\t}`), this.styleElement.textContent = t.join(\"\\n\"), this.list.style(e)\n        }\n        getSelectedElements() {\n            return this.list.getSelectedElements()\n        }\n        getSelection() {\n            return this.list.getSelection()\n        }\n        getFocus() {\n            return this.list.getFocus()\n        }\n        dispose() {\n            this.splitview.dispose(), this.list.dispose(), this.columnLayoutDisposable.dispose()\n        }\n    }\n    yh.InstanceCount = 0, (t = bh = bh || {})[t.Unknown = 0] = \"Unknown\", t[t.Twistie = 1] = \"Twistie\", t[t.Element = 2] = \"Element\";\n    class Ch extends Error {\n        constructor(e, t) {\n            super(`TreeError [${e}] ${t}`)\n        }\n    }\n    class xh {\n        constructor(e) {\n            this.fn = e, this._map = new WeakMap\n        }\n        map(e) {\n            let t = this._map.get(e);\n            return t || (t = this.fn(e), this._map.set(e, t)), t\n        }\n    }\n    var Sh = i(115);\n\n    function kh(e) {\n        return \"object\" == typeof e && \"visibility\" in e && \"data\" in e\n    }\n\n    function Lh(e) {\n        switch (e) {\n            case !0:\n                return 1;\n            case !1:\n                return 0;\n            default:\n                return e\n        }\n    }\n\n    function Oh(e) {\n        return \"boolean\" == typeof e.collapsible\n    }\n    class Eh {\n        constructor(e, t, i, n = {}) {\n            this.user = e, this.list = t, this.rootRef = [], this.eventBufferer = new D.d, this._onDidChangeCollapseState = new D.b, this.onDidChangeCollapseState = this.eventBufferer.wrapEvent(this._onDidChangeCollapseState.event), this._onDidChangeRenderNodeCount = new D.b, this.onDidChangeRenderNodeCount = this.eventBufferer.wrapEvent(this._onDidChangeRenderNodeCount.event), this._onDidSplice = new D.b, this.onDidSplice = this._onDidSplice.event, this.collapseByDefault = void 0 !== n.collapseByDefault && n.collapseByDefault, this.filter = n.filter, this.autoExpandSingleChildren = void 0 !== n.autoExpandSingleChildren && n.autoExpandSingleChildren, this.root = {\n                parent: void 0,\n                element: i,\n                children: [],\n                depth: 0,\n                visibleChildrenCount: 0,\n                visibleChildIndex: -1,\n                collapsible: !1,\n                collapsed: !1,\n                renderNodeCount: 0,\n                visibility: 1,\n                visible: !0,\n                filterData: void 0\n            }\n        }\n        splice(e, t, i = Sd.a.empty(), n = {}) {\n            if (0 === e.length) throw new Ch(this.user, \"Invalid tree location\");\n            n.diffIdentityProvider ? this.spliceSmart(n.diffIdentityProvider, e, t, i, n) : this.spliceSimple(e, t, i, n)\n        }\n        spliceSmart(e, t, i, n, r, o) {\n            var s;\n            void 0 === n && (n = Sd.a.empty()), void 0 === o && (o = null !== (s = r.diffDepth) && void 0 !== s ? s : 0);\n            const {\n                parentNode: a\n            } = this.getParentNodeWithListIndex(t);\n            if (!a.lastDiffIds) return this.spliceSimple(t, i, n, r);\n            const l = [...n],\n                d = t[t.length - 1],\n                c = new Sh.a({\n                    getElements: () => a.lastDiffIds\n                }, {\n                    getElements: () => [...a.children.slice(0, d), ...l, ...a.children.slice(d + i)].map(t => e.getId(t.element).toString())\n                }).ComputeDiff(!1);\n            if (c.quitEarly) return a.lastDiffIds = void 0, this.spliceSimple(t, i, l, r);\n            const h = t.slice(0, -1);\n            var u = (t, i, n) => {\n                if (0 < o)\n                    for (let s = 0; s < n; s++) t--, i--, this.spliceSmart(e, [...h, t, 0], Number.MAX_SAFE_INTEGER, l[i].children, r, o - 1)\n            };\n            let p = Math.min(a.children.length, d + i),\n                g = l.length;\n            for (const e of c.changes.sort((e, t) => t.originalStart - e.originalStart)) u(p, g, p - (e.originalStart + e.originalLength)), p = e.originalStart, g = e.modifiedStart - d, this.spliceSimple([...h, p], e.originalLength, Sd.a.slice(l, g, g + e.modifiedLength), r);\n            u(p, g, p)\n        }\n        spliceSimple(e, t, i = Sd.a.empty(), {\n            onDidCreateNode: n,\n            onDidDeleteNode: r,\n            diffIdentityProvider: o\n        }) {\n            const {\n                parentNode: s,\n                listIndex: a,\n                revealed: l,\n                visible: d\n            } = this.getParentNodeWithListIndex(e), c = [];\n            var h = Sd.a.map(i, e => this.createTreeNode(e, s, s.visible ? 1 : 0, l, c, n)),\n                u = e[e.length - 1];\n            i = 0 < s.children.length;\n            let p = 0;\n            for (let e = u; 0 <= e && e < s.children.length; e--) {\n                var g = s.children[e];\n                if (g.visible) {\n                    p = g.visibleChildIndex;\n                    break\n                }\n            }\n            const f = [];\n            let m = 0,\n                v = 0;\n            for (const e of h) f.push(e), v += e.renderNodeCount, e.visible && (e.visibleChildIndex = p + m++);\n            const b = Object(ne.p)(s.children, u, t, f);\n            o ? s.lastDiffIds ? Object(ne.p)(s.lastDiffIds, u, t, f.map(e => o.getId(e.element).toString())) : s.lastDiffIds = s.children.map(e => o.getId(e.element).toString()) : s.lastDiffIds = void 0;\n            let _ = 0;\n            for (const e of b) e.visible && _++;\n            if (0 !== _)\n                for (let e = u + f.length; e < s.children.length; e++) {\n                    const t = s.children[e];\n                    t.visible && (t.visibleChildIndex -= _)\n                }\n            if (s.visibleChildrenCount += m - _, l && d && (w = b.reduce((e, t) => e + (t.visible ? t.renderNodeCount : 0), 0), this._updateAncestorsRenderNodeCount(s, v - w), this.list.splice(a, w, c)), 0 < b.length && r) {\n                const e = t => {\n                    r(t), t.children.forEach(e)\n                };\n                b.forEach(e)\n            }\n            var w = 0 < s.children.length;\n            i != w && this.setCollapsible(e.slice(0, -1), w), this._onDidSplice.fire({\n                insertedNodes: f,\n                deletedNodes: b\n            });\n            let y = s;\n            for (; y;) {\n                if (2 === y.visibility) {\n                    this.refilter();\n                    break\n                }\n                y = y.parent\n            }\n        }\n        rerender(e) {\n            if (0 === e.length) throw new Ch(this.user, \"Invalid tree location\");\n            var {\n                node: t,\n                listIndex: i,\n                revealed: e\n            } = this.getTreeNodeWithListIndex(e);\n            t.visible && e && this.list.splice(i, 1, [t])\n        }\n        has(e) {\n            return this.hasTreeNode(e)\n        }\n        getListIndex(e) {\n            var {\n                listIndex: t,\n                visible: i,\n                revealed: e\n            } = this.getTreeNodeWithListIndex(e);\n            return i && e ? t : -1\n        }\n        getListRenderCount(e) {\n            return this.getTreeNode(e).renderNodeCount\n        }\n        isCollapsible(e) {\n            return this.getTreeNode(e).collapsible\n        }\n        setCollapsible(e, t) {\n            var i = this.getTreeNode(e);\n            const n = {\n                collapsible: t = void 0 === t ? !i.collapsible : t\n            };\n            return this.eventBufferer.bufferEvents(() => this._setCollapseState(e, n))\n        }\n        isCollapsed(e) {\n            return this.getTreeNode(e).collapsed\n        }\n        setCollapsed(e, t, i) {\n            var n = this.getTreeNode(e);\n            const r = {\n                collapsed: t = void 0 === t ? !n.collapsed : t,\n                recursive: i || !1\n            };\n            return this.eventBufferer.bufferEvents(() => this._setCollapseState(e, r))\n        }\n        _setCollapseState(e, t) {\n            var {\n                node: i,\n                listIndex: n,\n                revealed: r\n            } = this.getTreeNodeWithListIndex(e), r = this._setListNodeCollapseState(i, n, r, t);\n            if (i !== this.root && this.autoExpandSingleChildren && r && !Oh(t) && i.collapsible && !i.collapsed && !t.recursive) {\n                let n = -1;\n                for (let e = 0; e < i.children.length; e++)\n                    if (i.children[e].visible) {\n                        if (-1 < n) {\n                            n = -1;\n                            break\n                        }\n                        n = e\n                    } - 1 < n && this._setCollapseState([...e, n], t)\n            }\n            return r\n        }\n        _setListNodeCollapseState(e, t, i, n) {\n            if (n = this._setNodeCollapseState(e, n, !1), !i || !e.visible || !n) return n;\n            i = e.renderNodeCount;\n            const r = this.updateNodeAfterCollapseChange(e);\n            return this.list.splice(t + 1, i - (-1 === t ? 0 : 1), r.slice(1)), n\n        }\n        _setNodeCollapseState(e, t, i) {\n            let n;\n            if (e === this.root ? n = !1 : (Oh(t) ? (n = e.collapsible !== t.collapsible, e.collapsible = t.collapsible) : e.collapsible ? (n = e.collapsed !== t.collapsed, e.collapsed = t.collapsed) : n = !1, n && this._onDidChangeCollapseState.fire({\n                    node: e,\n                    deep: i\n                })), !Oh(t) && t.recursive)\n                for (const i of e.children) n = this._setNodeCollapseState(i, t, !0) || n;\n            return n\n        }\n        expandTo(e) {\n            this.eventBufferer.bufferEvents(() => {\n                let t = this.getTreeNode(e);\n                for (; t.parent;) t = t.parent, e = e.slice(0, e.length - 1), t.collapsed && this._setCollapseState(e, {\n                    collapsed: !1,\n                    recursive: !1\n                })\n            })\n        }\n        refilter() {\n            var e = this.root.renderNodeCount,\n                t = this.updateNodeAfterFilterChange(this.root);\n            this.list.splice(0, e, t)\n        }\n        createTreeNode(e, t, i, n, r, o) {\n            const s = {\n                    parent: t,\n                    element: e.element,\n                    children: [],\n                    depth: t.depth + 1,\n                    visibleChildrenCount: 0,\n                    visibleChildIndex: -1,\n                    collapsible: \"boolean\" == typeof e.collapsible ? e.collapsible : void 0 !== e.collapsed,\n                    collapsed: void 0 === e.collapsed ? this.collapseByDefault : e.collapsed,\n                    renderNodeCount: 1,\n                    visibility: 1,\n                    visible: !0,\n                    filterData: void 0\n                },\n                a = this._filterNode(s, i);\n            s.visibility = a, n && r.push(s), e = e.children || Sd.a.empty();\n            const l = n && 0 !== a && !s.collapsed;\n            let d = 0,\n                c = 1;\n            for (const t of Sd.a.map(e, e => this.createTreeNode(e, s, a, l, r, o))) s.children.push(t), c += t.renderNodeCount, t.visible && (t.visibleChildIndex = d++);\n            return s.collapsible = s.collapsible || 0 < s.children.length, s.visibleChildrenCount = d, s.visible = 2 === a ? 0 < d : 1 === a, s.visible ? s.collapsed || (s.renderNodeCount = c) : (s.renderNodeCount = 0, n && r.pop()), o && o(s), s\n        }\n        updateNodeAfterCollapseChange(e) {\n            var t = e.renderNodeCount,\n                i = [];\n            return this._updateNodeAfterCollapseChange(e, i), this._updateAncestorsRenderNodeCount(e.parent, i.length - t), i\n        }\n        _updateNodeAfterCollapseChange(e, t) {\n            if (!1 === e.visible) return 0;\n            if (t.push(e), e.renderNodeCount = 1, !e.collapsed)\n                for (const i of e.children) e.renderNodeCount += this._updateNodeAfterCollapseChange(i, t);\n            return this._onDidChangeRenderNodeCount.fire(e), e.renderNodeCount\n        }\n        updateNodeAfterFilterChange(e) {\n            var t = e.renderNodeCount,\n                i = [];\n            return this._updateNodeAfterFilterChange(e, e.visible ? 1 : 0, i), this._updateAncestorsRenderNodeCount(e.parent, i.length - t), i\n        }\n        _updateNodeAfterFilterChange(e, t, i, n = !0) {\n            let r;\n            if (e !== this.root) {\n                if (r = this._filterNode(e, t), 0 === r) return e.visible = !1, e.renderNodeCount = 0, !1;\n                n && i.push(e)\n            }\n            t = i.length, e.renderNodeCount = e === this.root ? 0 : 1;\n            let o = !1;\n            if (e.collapsed && 0 === r) e.visibleChildrenCount = 0;\n            else {\n                let t = 0;\n                for (const s of e.children) o = this._updateNodeAfterFilterChange(s, r, i, n && !e.collapsed) || o, s.visible && (s.visibleChildIndex = t++);\n                e.visibleChildrenCount = t\n            }\n            return e !== this.root && (e.visible = 2 === r ? o : 1 === r, e.visibility = r), e.visible ? e.collapsed || (e.renderNodeCount += i.length - t) : (e.renderNodeCount = 0, n && i.pop()), this._onDidChangeRenderNodeCount.fire(e), e.visible\n        }\n        _updateAncestorsRenderNodeCount(e, t) {\n            if (0 !== t)\n                for (; e;) e.renderNodeCount += t, this._onDidChangeRenderNodeCount.fire(e), e = e.parent\n        }\n        _filterNode(e, t) {\n            return \"boolean\" == typeof(t = this.filter ? this.filter.filter(e.element, t) : 1) ? (e.filterData = void 0, t ? 1 : 0) : kh(t) ? (e.filterData = t.data, Lh(t.visibility)) : (e.filterData = void 0, Lh(t))\n        }\n        hasTreeNode(e, t = this.root) {\n            if (!e || 0 === e.length) return !0;\n            var [i, ...e] = e;\n            return !(i < 0 || i > t.children.length) && this.hasTreeNode(e, t.children[i])\n        }\n        getTreeNode(e, t = this.root) {\n            if (!e || 0 === e.length) return t;\n            var [i, ...e] = e;\n            if (i < 0 || i > t.children.length) throw new Ch(this.user, \"Invalid tree location\");\n            return this.getTreeNode(e, t.children[i])\n        }\n        getTreeNodeWithListIndex(e) {\n            if (0 === e.length) return {\n                node: this.root,\n                listIndex: -1,\n                revealed: !0,\n                visible: !1\n            };\n            var {\n                parentNode: t,\n                listIndex: i,\n                revealed: n,\n                visible: r\n            } = this.getParentNodeWithListIndex(e);\n            if ((e = e[e.length - 1]) < 0 || e > t.children.length) throw new Ch(this.user, \"Invalid tree location\");\n            return {\n                node: e = t.children[e],\n                listIndex: i,\n                revealed: n,\n                visible: r && e.visible\n            }\n        }\n        getParentNodeWithListIndex(e, t = this.root, i = 0, n = !0, r = !0) {\n            var [o, ...e] = e;\n            if (o < 0 || o > t.children.length) throw new Ch(this.user, \"Invalid tree location\");\n            for (let e = 0; e < o; e++) i += t.children[e].renderNodeCount;\n            return n = n && !t.collapsed, r = r && t.visible, 0 === e.length ? {\n                parentNode: t,\n                listIndex: i,\n                revealed: n,\n                visible: r\n            } : this.getParentNodeWithListIndex(e, t.children[o], i + 1, n, r)\n        }\n        getNode(e = []) {\n            return this.getTreeNode(e)\n        }\n        getNodeLocation(e) {\n            const t = [];\n            let i = e;\n            for (; i.parent;) t.push(i.parent.children.indexOf(i)), i = i.parent;\n            return t.reverse()\n        }\n        getParentNodeLocation(e) {\n            if (0 !== e.length) return 1 === e.length ? [] : Object(ne.r)(e)[0]\n        }\n    }\n    const Nh = Object(Sa.e)(\"tree-item-expanded\", Sa.b.chevronDown),\n        Dh = Object(Sa.e)(\"tree-filter-on-type-on\", Sa.b.listFilter),\n        Ih = Object(Sa.e)(\"tree-filter-on-type-off\", Sa.b.listSelection),\n        Th = Object(Sa.e)(\"tree-filter-clear\", Sa.b.close),\n        Mh = Object(Sa.e)(\"tree-item-loading\", Sa.b.loading);\n    var Ph;\n    i(441);\n    class Ah extends Pc {\n        constructor(e) {\n            super(e.elements.map(e => e.element)), this.data = e\n        }\n    }\n\n    function Rh(e) {\n        return e instanceof Pc ? new Ah(e) : e\n    }\n    class Fh {\n        constructor(e, t) {\n            this.modelProvider = e, this.dnd = t, this.autoExpandDisposable = v.a.None\n        }\n        getDragURI(e) {\n            return this.dnd.getDragURI(e.element)\n        }\n        getDragLabel(e, t) {\n            if (this.dnd.getDragLabel) return this.dnd.getDragLabel(e.map(e => e.element), t)\n        }\n        onDragStart(e, t) {\n            this.dnd.onDragStart && this.dnd.onDragStart(Rh(e), t)\n        }\n        onDragOver(e, t, i, n, r = !0) {\n            var o = this.dnd.onDragOver(Rh(e), t && t.element, i, n),\n                s = this.autoExpandNode !== t;\n            if (s && (this.autoExpandDisposable.dispose(), this.autoExpandNode = t), void 0 === t) return o;\n            if (s && \"boolean\" != typeof o && o.autoExpand && (this.autoExpandDisposable = Object(q.i)(() => {\n                    const e = this.modelProvider();\n                    var i = e.getNodeLocation(t);\n                    e.isCollapsed(i) && e.setCollapsed(i, !1), this.autoExpandNode = void 0\n                }, 500)), \"boolean\" == typeof o || !o.accept || void 0 === o.bubble || o.feedback) return r ? o : {\n                accept: \"boolean\" == typeof o ? o : o.accept,\n                effect: \"boolean\" == typeof o ? void 0 : o.effect,\n                feedback: [i]\n            };\n            if (1 === o.bubble) {\n                const r = this.modelProvider(),\n                    o = r.getNodeLocation(t);\n                var a = r.getParentNodeLocation(o);\n                i = r.getNode(a), a = a && r.getListIndex(a);\n                return this.onDragOver(e, i, a, n, !1)\n            }\n            const l = this.modelProvider(),\n                d = l.getNodeLocation(t);\n            return a = l.getListIndex(d), n = l.getListRenderCount(d), Object.assign(Object.assign({}, o), {\n                feedback: Object(ne.o)(a, a + n)\n            })\n        }\n        drop(e, t, i, n) {\n            this.autoExpandDisposable.dispose(), this.autoExpandNode = void 0, this.dnd.drop(Rh(e), t && t.element, i, n)\n        }\n        onDragEnd(e) {\n            this.dnd.onDragEnd && this.dnd.onDragEnd(e)\n        }\n    }\n    class jh {\n        constructor(e) {\n            this.delegate = e\n        }\n        getHeight(e) {\n            return this.delegate.getHeight(e.element)\n        }\n        getTemplateId(e) {\n            return this.delegate.getTemplateId(e.element)\n        }\n        hasDynamicHeight(e) {\n            return !!this.delegate.hasDynamicHeight && this.delegate.hasDynamicHeight(e.element)\n        }\n        setDynamicHeight(e, t) {\n            this.delegate.setDynamicHeight && this.delegate.setDynamicHeight(e.element, t)\n        }\n    }(x = Ph = Ph || {}).None = \"none\", x.OnHover = \"onHover\", x.Always = \"always\";\n    class Bh {\n        constructor(e, t = []) {\n            this._elements = t, this.onDidChange = D.c.forEach(e, e => this._elements = e)\n        }\n        get elements() {\n            return this._elements\n        }\n    }\n    class Vh {\n        constructor(e, t, i, n, r = {}) {\n            this.renderer = e, this.modelProvider = t, this.activeNodes = n, this.renderedElements = new Map, this.renderedNodes = new Map, this.indent = Vh.DefaultIndent, this.hideTwistiesOfChildlessElements = !1, this.shouldRenderIndentGuides = !1, this.renderedIndentGuides = new kt, this.activeIndentNodes = new Set, this.indentGuidesDisposable = v.a.None, this.disposables = new v.b, this.templateId = e.templateId, this.updateOptions(r), D.c.map(i, e => e.node)(this.onDidChangeNodeTwistieState, this, this.disposables), e.onDidChangeTwistieState && e.onDidChangeTwistieState(this.onDidChangeTwistieState, this, this.disposables)\n        }\n        updateOptions(e = {}) {\n            var t;\n            void 0 !== e.indent && (this.indent = Object(Lc.b)(e.indent, 0, 40)), void 0 === e.renderIndentGuides || (t = e.renderIndentGuides !== Ph.None) !== this.shouldRenderIndentGuides && (this.shouldRenderIndentGuides = t, this.indentGuidesDisposable.dispose(), t && (t = new v.b, this.activeNodes.onDidChange(this._onDidChangeActiveNodes, this, t), this.indentGuidesDisposable = t, this._onDidChangeActiveNodes(this.activeNodes.elements))), void 0 !== e.hideTwistiesOfChildlessElements && (this.hideTwistiesOfChildlessElements = e.hideTwistiesOfChildlessElements)\n        }\n        renderTemplate(e) {\n            var t = Object(s.n)(e, Object(s.a)(\".monaco-tl-row\")),\n                i = Object(s.n)(t, Object(s.a)(\".monaco-tl-indent\")),\n                n = Object(s.n)(t, Object(s.a)(\".monaco-tl-twistie\"));\n            t = Object(s.n)(t, Object(s.a)(\".monaco-tl-contents\")), t = this.renderer.renderTemplate(t);\n            return {\n                container: e,\n                indent: i,\n                twistie: n,\n                indentGuidesDisposable: v.a.None,\n                templateData: t\n            }\n        }\n        renderElement(e, t, i, n) {\n            \"number\" == typeof n && (this.renderedNodes.set(e, {\n                templateData: i,\n                height: n\n            }), this.renderedElements.set(e.element, e));\n            var r = Vh.DefaultIndent + (e.depth - 1) * this.indent;\n            i.twistie.style.paddingLeft = r + \"px\", i.indent.style.width = r + this.indent - 16 + \"px\", this.renderTwistie(e, i), \"number\" == typeof n && this.renderIndentGuides(e, i), this.renderer.renderElement(e, t, i.templateData, n)\n        }\n        disposeElement(e, t, i, n) {\n            i.indentGuidesDisposable.dispose(), this.renderer.disposeElement && this.renderer.disposeElement(e, t, i.templateData, n), \"number\" == typeof n && (this.renderedNodes.delete(e), this.renderedElements.delete(e.element))\n        }\n        disposeTemplate(e) {\n            this.renderer.disposeTemplate(e.templateData)\n        }\n        onDidChangeTwistieState(e) {\n            (e = this.renderedElements.get(e)) && this.onDidChangeNodeTwistieState(e)\n        }\n        onDidChangeNodeTwistieState(e) {\n            var t = this.renderedNodes.get(e);\n            t && (this.renderTwistie(e, t.templateData), this._onDidChangeActiveNodes(this.activeNodes.elements), this.renderIndentGuides(e, t.templateData))\n        }\n        renderTwistie(e, t) {\n            t.twistie.classList.remove(...Nh.classNamesArray);\n            let i = !1;\n            this.renderer.renderTwistie && (i = this.renderer.renderTwistie(e.element, t.twistie)), e.collapsible && (!this.hideTwistiesOfChildlessElements || 0 < e.visibleChildrenCount) ? (i || t.twistie.classList.add(...Nh.classNamesArray), t.twistie.classList.add(\"collapsible\"), t.twistie.classList.toggle(\"collapsed\", e.collapsed)) : t.twistie.classList.remove(\"collapsible\", \"collapsed\"), e.collapsible ? t.container.setAttribute(\"aria-expanded\", String(!e.collapsed)) : t.container.removeAttribute(\"aria-expanded\")\n        }\n        renderIndentGuides(e, t) {\n            if (Object(s.q)(t.indent), t.indentGuidesDisposable.dispose(), this.shouldRenderIndentGuides) {\n                const n = new v.b,\n                    r = this.modelProvider();\n                let o = e;\n                for (;;) {\n                    var i = r.getNodeLocation(o);\n                    if (!(i = r.getParentNodeLocation(i))) break;\n                    const e = r.getNode(i),\n                        a = Object(s.a)(\".indent-guide\", {\n                            style: `width: ${this.indent}px`\n                        });\n                    this.activeIndentNodes.has(e) && a.classList.add(\"active\"), 0 === t.indent.childElementCount ? t.indent.appendChild(a) : t.indent.insertBefore(a, t.indent.firstElementChild), this.renderedIndentGuides.add(e, a), n.add(Object(v.i)(() => this.renderedIndentGuides.delete(e, a))), o = e\n                }\n                t.indentGuidesDisposable = n\n            }\n        }\n        _onDidChangeActiveNodes(e) {\n            if (this.shouldRenderIndentGuides) {\n                const t = new Set,\n                    i = this.modelProvider();\n                e.forEach(e => {\n                    var n = i.getNodeLocation(e);\n                    try {\n                        var r = i.getParentNodeLocation(n);\n                        e.collapsible && 0 < e.children.length && !e.collapsed ? t.add(e) : r && t.add(i.getNode(r))\n                    } catch (e) {}\n                }), this.activeIndentNodes.forEach(e => {\n                    t.has(e) || this.renderedIndentGuides.forEach(e, e => e.classList.remove(\"active\"))\n                }), t.forEach(e => {\n                    this.activeIndentNodes.has(e) || this.renderedIndentGuides.forEach(e, e => e.classList.add(\"active\"))\n                }), this.activeIndentNodes = t\n            }\n        }\n        dispose() {\n            this.renderedNodes.clear(), this.renderedElements.clear(), this.indentGuidesDisposable.dispose(), Object(v.f)(this.disposables)\n        }\n    }\n    Vh.DefaultIndent = 8;\n    class Wh {\n        constructor(e, t, i) {\n            this.tree = e, this.keyboardNavigationLabelProvider = t, this._filter = i, this._totalCount = 0, this._matchCount = 0, this._pattern = \"\", this._lowercasePattern = \"\", this.disposables = new v.b, e.onWillRefilter(this.reset, this, this.disposables)\n        }\n        get totalCount() {\n            return this._totalCount\n        }\n        get matchCount() {\n            return this._matchCount\n        }\n        set pattern(e) {\n            this._pattern = e, this._lowercasePattern = e.toLowerCase()\n        }\n        filter(e, t) {\n            if (this._filter) {\n                if (t = this._filter.filter(e, t), this.tree.options.simpleKeyboardNavigation) return t;\n                let i;\n                if (i = \"boolean\" == typeof t ? t ? 1 : 0 : kh(t) ? Lh(t.visibility) : t, 0 === i) return !1\n            }\n            if (this._totalCount++, this.tree.options.simpleKeyboardNavigation || !this._pattern) return this._matchCount++, {\n                data: Kd.a.Default,\n                visibility: !0\n            };\n            e = this.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(e);\n            var i = Array.isArray(e) ? e : [e];\n            for (const e of i) {\n                const t = e && e.toString();\n                if (void 0 === t) return {\n                    data: Kd.a.Default,\n                    visibility: !0\n                };\n                var n = Object(Kd.b)(this._pattern, this._lowercasePattern, 0, t, t.toLowerCase(), 0, !0);\n                if (n) return this._matchCount++, 1 === i.length ? {\n                    data: n,\n                    visibility: !0\n                } : {\n                    data: {\n                        label: t,\n                        score: n\n                    },\n                    visibility: !0\n                }\n            }\n            return this.tree.options.filterOnType ? 2 : {\n                data: Kd.a.Default,\n                visibility: !0\n            }\n        }\n        reset() {\n            this._totalCount = 0, this._matchCount = 0\n        }\n        dispose() {\n            Object(v.f)(this.disposables)\n        }\n    }\n    class zh {\n        constructor(e, t, i, n, r) {\n            this.tree = e, this.view = i, this.filter = n, this.keyboardNavigationDelegate = r, this._enabled = !1, this._pattern = \"\", this._empty = !1, this._onDidChangeEmptyState = new D.b, this.positionClassName = \"ne\", this.automaticKeyboardNavigation = !0, this.triggered = !1, this._onDidChangePattern = new D.b, this.enabledDisposables = new v.b, this.disposables = new v.b, this.domNode = Object(s.a)(\".monaco-list-type-filter.\" + this.positionClassName), this.domNode.draggable = !0, this.disposables.add(Object(s.g)(this.domNode, \"dragstart\", () => this.onDragStart())), this.messageDomNode = Object(s.n)(i.getHTMLElement(), Object(s.a)(\".monaco-list-type-filter-message\")), this.labelDomNode = Object(s.n)(this.domNode, Object(s.a)(\"span.label\")), i = Object(s.n)(this.domNode, Object(s.a)(\".controls\")), this._filterOnType = !!e.options.filterOnType, this.filterOnTypeDomNode = Object(s.n)(i, Object(s.a)(\"input.filter\")), this.filterOnTypeDomNode.type = \"checkbox\", this.filterOnTypeDomNode.checked = this._filterOnType, this.filterOnTypeDomNode.tabIndex = -1, this.updateFilterOnTypeTitleAndIcon(), this.disposables.add(Object(s.g)(this.filterOnTypeDomNode, \"input\", () => this.onDidChangeFilterOnType())), this.clearDomNode = Object(s.n)(i, Object(s.a)(\"button.clear\" + Th.cssSelector)), this.clearDomNode.tabIndex = -1, this.clearDomNode.title = Object(yt.a)(\"clear\", \"清除\"), this.keyboardNavigationEventFilter = e.options.keyboardNavigationEventFilter, t.onDidSplice(this.onDidSpliceModel, this, this.disposables), this.updateOptions(e.options)\n        }\n        get enabled() {\n            return this._enabled\n        }\n        get pattern() {\n            return this._pattern\n        }\n        get filterOnType() {\n            return this._filterOnType\n        }\n        updateOptions(e) {\n            e.simpleKeyboardNavigation ? this.disable() : this.enable(), void 0 !== e.filterOnType && (this._filterOnType = !!e.filterOnType, this.filterOnTypeDomNode.checked = this._filterOnType, this.updateFilterOnTypeTitleAndIcon()), void 0 !== e.automaticKeyboardNavigation && (this.automaticKeyboardNavigation = e.automaticKeyboardNavigation), this.tree.refilter(), this.render(), this.automaticKeyboardNavigation || this.onEventOrInput(\"\")\n        }\n        enable() {\n            var e, t;\n            this._enabled || (t = this.enabledDisposables.add(new Sc.a(this.view.getHTMLElement(), \"keydown\")), e = D.c.chain(t.event).filter(e => !Kc(e.target) || e.target === this.filterOnTypeDomNode).filter(e => \"Dead\" !== e.key && !/^Media/.test(e.key)).map(e => new gt.a(e)).filter(this.keyboardNavigationEventFilter || (() => !0)).filter(() => this.automaticKeyboardNavigation || this.triggered).filter(e => this.keyboardNavigationDelegate.mightProducePrintableCharacter(e) && !(18 === e.keyCode || 16 === e.keyCode || 15 === e.keyCode || 17 === e.keyCode) || (0 < this.pattern.length || this.triggered) && (9 === e.keyCode || 1 === e.keyCode) && !e.altKey && !e.ctrlKey && !e.metaKey || 1 === e.keyCode && (A.f ? e.altKey && !e.metaKey : e.ctrlKey) && !e.shiftKey).forEach(e => {\n                e.stopPropagation(), e.preventDefault()\n            }).event, t = this.enabledDisposables.add(new Sc.a(this.clearDomNode, \"click\")), D.c.chain(D.c.any(e, t.event)).event(this.onEventOrInput, this, this.enabledDisposables), this.filter.pattern = \"\", this.tree.refilter(), this.render(), this._enabled = !0, this.triggered = !1)\n        }\n        disable() {\n            this._enabled && (this.domNode.remove(), this.enabledDisposables.clear(), this.tree.refilter(), this.render(), this._enabled = !1, this.triggered = !1)\n        }\n        onEventOrInput(e) {\n            \"string\" == typeof e ? this.onInput(e) : e instanceof MouseEvent || 9 === e.keyCode || 1 === e.keyCode && (A.f ? e.altKey : e.ctrlKey) ? this.onInput(\"\") : 1 === e.keyCode ? this.onInput(0 === this.pattern.length ? \"\" : this.pattern.substr(0, this.pattern.length - 1)) : this.onInput(this.pattern + e.browserEvent.key)\n        }\n        onInput(e) {\n            const t = this.view.getHTMLElement();\n            e && !this.domNode.parentElement ? t.append(this.domNode) : !e && this.domNode.parentElement && (this.domNode.remove(), this.tree.domFocus()), this._pattern = e, this._onDidChangePattern.fire(e), this.filter.pattern = e, this.tree.refilter(), e && this.tree.focusNext(0, !0, void 0, e => !Kd.a.isDefault(e.filterData));\n            var i = this.tree.getFocus();\n            0 < i.length && (i = i[0], null === this.tree.getRelativeTop(i) && this.tree.reveal(i, .5)), this.render(), e || (this.triggered = !1)\n        }\n        onDragStart() {\n            var e = this.view.getHTMLElement();\n            const {\n                left: t\n            } = Object(s.A)(e), i = e.clientWidth, n = i / 2, r = this.domNode.clientWidth, o = new v.b;\n            let a = this.positionClassName;\n            const l = () => {\n                    switch (a) {\n                        case \"nw\":\n                            this.domNode.style.top = \"4px\", this.domNode.style.left = \"4px\";\n                            break;\n                        case \"ne\":\n                            this.domNode.style.top = \"4px\", this.domNode.style.left = i - r - 6 + \"px\"\n                    }\n                },\n                d = () => {\n                    this.positionClassName = a, this.domNode.className = \"monaco-list-type-filter \" + this.positionClassName, this.domNode.style.top = \"\", this.domNode.style.left = \"\", Object(v.f)(o)\n                };\n            l(), this.domNode.classList.remove(a), this.domNode.classList.add(\"dragging\"), o.add(Object(v.i)(() => this.domNode.classList.remove(\"dragging\"))), o.add(Object(s.g)(document, \"dragover\", e => (e => {\n                e.preventDefault();\n                var i = e.clientX - t;\n                e.dataTransfer && (e.dataTransfer.dropEffect = \"none\"), a = i < n ? \"nw\" : \"ne\", l()\n            })(e))), o.add(Object(s.g)(this.domNode, \"dragend\", () => d())), Ec.c.CurrentDragAndDropData = new Ec.b(\"vscode-ui\"), o.add(Object(v.i)(() => Ec.c.CurrentDragAndDropData = void 0))\n        }\n        onDidSpliceModel() {\n            this._enabled && 0 !== this.pattern.length && (this.tree.refilter(), this.render())\n        }\n        onDidChangeFilterOnType() {\n            this.tree.updateOptions({\n                filterOnType: this.filterOnTypeDomNode.checked\n            }), this.tree.refilter(), this.tree.domFocus(), this.render(), this.updateFilterOnTypeTitleAndIcon()\n        }\n        updateFilterOnTypeTitleAndIcon() {\n            this.filterOnType ? (this.filterOnTypeDomNode.classList.remove(...Ih.classNamesArray), this.filterOnTypeDomNode.classList.add(...Dh.classNamesArray), this.filterOnTypeDomNode.title = Object(yt.a)(\"disable filter on type\", \"Disable Filter on Type\")) : (this.filterOnTypeDomNode.classList.remove(...Dh.classNamesArray), this.filterOnTypeDomNode.classList.add(...Ih.classNamesArray), this.filterOnTypeDomNode.title = Object(yt.a)(\"enable filter on type\", \"Enable Filter on Type\"))\n        }\n        render() {\n            var e = 0 < this.filter.totalCount && 0 === this.filter.matchCount;\n            this.pattern && this.tree.options.filterOnType && e ? (this.messageDomNode.textContent = Object(yt.a)(\"empty\", \"No elements found\"), this._empty = !0) : (this.messageDomNode.innerText = \"\", this._empty = !1), this.domNode.classList.toggle(\"no-matches\", e), this.domNode.title = Object(yt.a)(\"found\", \"Matched {0} out of {1} elements\", this.filter.matchCount, this.filter.totalCount), this.labelDomNode.textContent = 16 < this.pattern.length ? \"…\" + this.pattern.substr(this.pattern.length - 16) : this.pattern, this._onDidChangeEmptyState.fire(this._empty)\n        }\n        shouldAllowFocus(e) {\n            return !(this.enabled && this.pattern && !this.filterOnType) || 0 < this.filter.totalCount && this.filter.matchCount <= 1 || !Kd.a.isDefault(e.filterData)\n        }\n        dispose() {\n            this._enabled && (this.domNode.remove(), this.enabledDisposables.dispose(), this._enabled = !1, this.triggered = !1), this._onDidChangePattern.dispose(), Object(v.f)(this.disposables)\n        }\n    }\n\n    function Hh(e) {\n        let t = bh.Unknown;\n        return Object(s.G)(e.browserEvent.target, \"monaco-tl-twistie\", \"monaco-tl-row\") ? t = bh.Twistie : Object(s.G)(e.browserEvent.target, \"monaco-tl-contents\", \"monaco-tl-row\") && (t = bh.Element), {\n            browserEvent: e.browserEvent,\n            element: e.element ? e.element.element : null,\n            target: t\n        }\n    }\n\n    function Uh(e, t) {\n        t(e), e.children.forEach(e => Uh(e, t))\n    }\n    class Kh {\n        constructor(e, t) {\n            this.getFirstViewElementWithTrait = e, this.identityProvider = t, this.nodes = [], this._onDidChange = new D.b, this.onDidChange = this._onDidChange.event\n        }\n        get nodeSet() {\n            return this._nodeSet || (this._nodeSet = this.createNodeSet()), this._nodeSet\n        }\n        set(e, t) {\n            (null != t && t.__forceEvent || !Object(ne.g)(this.nodes, e)) && this._set(e, !1, t)\n        }\n        _set(e, t, i) {\n            if (this.nodes = [...e], this.elements = void 0, this._nodeSet = void 0, !t) {\n                const e = this;\n                this._onDidChange.fire({\n                    get elements() {\n                        return e.get()\n                    },\n                    browserEvent: i\n                })\n            }\n        }\n        get() {\n            return this.elements || (this.elements = this.nodes.map(e => e.element)), [...this.elements]\n        }\n        getNodes() {\n            return this.nodes\n        }\n        has(e) {\n            return this.nodeSet.has(e)\n        }\n        onDidModelSplice({\n            insertedNodes: e,\n            deletedNodes: t\n        }) {\n            if (!this.identityProvider) {\n                const e = this.createNodeSet(),\n                    i = t => e.delete(t);\n                return t.forEach(e => Uh(e, i)), void this.set([...e.values()])\n            }\n            const i = new Set,\n                n = e => i.add(this.identityProvider.getId(e.element).toString());\n            t.forEach(e => Uh(e, n));\n            const r = new Map,\n                o = e => r.set(this.identityProvider.getId(e.element).toString(), e);\n            e.forEach(e => Uh(e, o));\n            const s = [];\n            for (const e of this.nodes) {\n                var a = this.identityProvider.getId(e.element).toString();\n                i.has(a) ? (a = r.get(a)) && s.push(a) : s.push(e)\n            }\n            0 < this.nodes.length && 0 === s.length && (e = this.getFirstViewElementWithTrait()) && s.push(e), this._set(s, !0)\n        }\n        createNodeSet() {\n            const e = new Set;\n            for (const t of this.nodes) e.add(t);\n            return e\n        }\n    }\n    class $h extends eh {\n        constructor(e, t) {\n            super(e), this.tree = t\n        }\n        onViewPointer(e) {\n            if (!Kc(e.browserEvent.target) && !$c(e.browserEvent.target)) {\n                if (!(n = e.element)) return super.onViewPointer(e);\n                if (this.isSelectionRangeChangeEvent(e) || this.isSelectionSingleChangeEvent(e)) return super.onViewPointer(e);\n                const r = e.browserEvent.target;\n                var t = r.classList.contains(\"monaco-tl-twistie\") || r.classList.contains(\"monaco-icon-label\") && r.classList.contains(\"folder-icon\") && e.browserEvent.offsetX < 16;\n                let o = !1;\n                if (o = \"function\" == typeof this.tree.expandOnlyOnTwistieClick ? this.tree.expandOnlyOnTwistieClick(n.element) : !!this.tree.expandOnlyOnTwistieClick, o && !t && 2 !== e.browserEvent.detail) return super.onViewPointer(e);\n                if (!this.tree.expandOnDoubleClick && 2 === e.browserEvent.detail) return super.onViewPointer(e);\n                if (n.collapsible) {\n                    const r = this.tree.model;\n                    var i = r.getNodeLocation(n),\n                        n = e.browserEvent.altKey;\n                    if (this.tree.setFocus([i]), r.setCollapsed(i, void 0, n), o && t) return\n                }\n                super.onViewPointer(e)\n            }\n        }\n        onDoubleClick(e) {\n            !e.browserEvent.target.classList.contains(\"monaco-tl-twistie\") && this.tree.expandOnDoubleClick && super.onDoubleClick(e)\n        }\n    }\n    class qh extends dh {\n        constructor(e, t, i, n, r, o, s, a) {\n            super(e, t, i, n, a), this.focusTrait = r, this.selectionTrait = o, this.anchorTrait = s\n        }\n        createMouseController(e) {\n            return new $h(this, e.tree)\n        }\n        splice(e, t, i = []) {\n            if (super.splice(e, t, i), 0 !== i.length) {\n                const t = [],\n                    n = [];\n                let r;\n                i.forEach((i, o) => {\n                    this.focusTrait.has(i) && t.push(e + o), this.selectionTrait.has(i) && n.push(e + o), this.anchorTrait.has(i) && (r = e + o)\n                }), 0 < t.length && super.setFocus(Object(ne.f)([...super.getFocus(), ...t])), 0 < n.length && super.setSelection(Object(ne.f)([...super.getSelection(), ...n])), \"number\" == typeof r && super.setAnchor(r)\n            }\n        }\n        setFocus(e, t, i = !1) {\n            super.setFocus(e, t), i || this.focusTrait.set(e.map(e => this.element(e)), t)\n        }\n        setSelection(e, t, i = !1) {\n            super.setSelection(e, t), i || this.selectionTrait.set(e.map(e => this.element(e)), t)\n        }\n        setAnchor(e, t = !1) {\n            super.setAnchor(e), t || (void 0 === e ? this.anchorTrait.set([]) : this.anchorTrait.set([this.element(e)]))\n        }\n    }\n    class Gh {\n        constructor(e, t, i, n, r = {}) {\n            this._options = r, this.eventBufferer = new D.d, this.disposables = new v.b, this._onWillRefilter = new D.b, this.onWillRefilter = this._onWillRefilter.event, this._onDidUpdateOptions = new D.b;\n            var o, a, l;\n            i = new jh(i);\n            const d = new D.f,\n                c = new D.f,\n                h = new Bh(c.event);\n            for (o of (this.renderers = n.map(e => new Vh(e, () => this.model, d.event, h, r)), this.renderers)) this.disposables.add(o);\n            let u;\n            r.keyboardNavigationLabelProvider && (u = new Wh(this, r.keyboardNavigationLabelProvider, r.filter), r = Object.assign(Object.assign({}, r), {\n                filter: u\n            }), this.disposables.add(u)), this.focus = new Kh(() => this.view.getFocusedElements()[0], r.identityProvider), this.selection = new Kh(() => this.view.getSelectedElements()[0], r.identityProvider), this.anchor = new Kh(() => this.view.getAnchorElement(), r.identityProvider), this.view = new qh(e, t, i, this.renderers, this.focus, this.selection, this.anchor, Object.assign(Object.assign({}, (a = () => this.model, (l = r) && Object.assign(Object.assign({}, l), {\n                identityProvider: l.identityProvider && {\n                    getId: e => l.identityProvider.getId(e.element)\n                },\n                dnd: l.dnd && new Fh(a, l.dnd),\n                multipleSelectionController: l.multipleSelectionController && {\n                    isSelectionSingleChangeEvent: e => l.multipleSelectionController.isSelectionSingleChangeEvent(Object.assign(Object.assign({}, e), {\n                        element: e.element\n                    })),\n                    isSelectionRangeChangeEvent: e => l.multipleSelectionController.isSelectionRangeChangeEvent(Object.assign(Object.assign({}, e), {\n                        element: e.element\n                    }))\n                },\n                accessibilityProvider: l.accessibilityProvider && Object.assign(Object.assign({}, l.accessibilityProvider), {\n                    getSetSize(e) {\n                        const t = a();\n                        return e = t.getNodeLocation(e), e = t.getParentNodeLocation(e), t.getNode(e).visibleChildrenCount\n                    },\n                    getPosInSet: e => e.visibleChildIndex + 1,\n                    isChecked: l.accessibilityProvider && l.accessibilityProvider.isChecked ? e => l.accessibilityProvider.isChecked(e.element) : void 0,\n                    getRole: l.accessibilityProvider && l.accessibilityProvider.getRole ? e => l.accessibilityProvider.getRole(e.element) : () => \"treeitem\",\n                    getAriaLabel: e => l.accessibilityProvider.getAriaLabel(e.element),\n                    getWidgetAriaLabel: () => l.accessibilityProvider.getWidgetAriaLabel(),\n                    getWidgetRole: l.accessibilityProvider && l.accessibilityProvider.getWidgetRole ? () => l.accessibilityProvider.getWidgetRole() : () => \"tree\",\n                    getAriaLevel: l.accessibilityProvider && l.accessibilityProvider.getAriaLevel ? e => l.accessibilityProvider.getAriaLevel(e.element) : e => e.depth,\n                    getActiveDescendantId: l.accessibilityProvider.getActiveDescendantId && (e => l.accessibilityProvider.getActiveDescendantId(e.element))\n                }),\n                keyboardNavigationLabelProvider: l.keyboardNavigationLabelProvider && Object.assign(Object.assign({}, l.keyboardNavigationLabelProvider), {\n                    getKeyboardNavigationLabel: e => l.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(e.element)\n                }),\n                enableKeyboardNavigation: l.simpleKeyboardNavigation\n            }))), {\n                tree: this\n            })), this.model = this.createModel(e, this.view, r), d.input = this.model.onDidChangeCollapseState;\n            const p = D.c.forEach(this.model.onDidSplice, e => {\n                this.eventBufferer.bufferEvents(() => {\n                    this.focus.onDidModelSplice(e), this.selection.onDidModelSplice(e)\n                })\n            });\n            if (p(() => null, null, this.disposables), c.input = D.c.chain(D.c.any(p, this.focus.onDidChange, this.selection.onDidChange)).debounce(() => null, 0).map(() => {\n                    const e = new Set;\n                    for (const t of this.focus.getNodes()) e.add(t);\n                    for (const t of this.selection.getNodes()) e.add(t);\n                    return [...e.values()]\n                }).event, !1 !== r.keyboardSupport) {\n                const e = D.c.chain(this.view.onKeyDown).filter(e => !Kc(e.target)).map(e => new gt.a(e));\n                e.filter(e => 15 === e.keyCode).on(this.onLeftArrow, this, this.disposables), e.filter(e => 17 === e.keyCode).on(this.onRightArrow, this, this.disposables), e.filter(e => 10 === e.keyCode).on(this.onSpace, this, this.disposables)\n            }\n            if (r.keyboardNavigationLabelProvider) {\n                const e = r.keyboardNavigationDelegate || Gc;\n                this.typeFilterController = new zh(this, this.model, this.view, u, e), this.focusNavigationFilter = e => this.typeFilterController.shouldAllowFocus(e), this.disposables.add(this.typeFilterController)\n            }\n            this.styleElement = Object(s.t)(this.view.getHTMLElement()), this.getHTMLElement().classList.toggle(\"always\", this._options.renderIndentGuides === Ph.Always)\n        }\n        get onDidChangeFocus() {\n            return this.eventBufferer.wrapEvent(this.focus.onDidChange)\n        }\n        get onDidChangeSelection() {\n            return this.eventBufferer.wrapEvent(this.selection.onDidChange)\n        }\n        get onMouseDblClick() {\n            return D.c.map(this.view.onMouseDblClick, Hh)\n        }\n        get onPointer() {\n            return D.c.map(this.view.onPointer, Hh)\n        }\n        get onDidFocus() {\n            return this.view.onDidFocus\n        }\n        get onDidChangeCollapseState() {\n            \"全局\" == e ? e = \"global\" : \"规则\" == e ? e = \"rule\" : \"直连\" == e ? e = \"direct\" : \"脚本\" == e && (e = \"script\");\n            return this.model.onDidChangeCollapseState\n        }\n        get expandOnDoubleClick() {\n            return void 0 === this._options.expandOnDoubleClick || this._options.expandOnDoubleClick\n        }\n        get expandOnlyOnTwistieClick() {\n            return void 0 === this._options.expandOnlyOnTwistieClick || this._options.expandOnlyOnTwistieClick\n        }\n        get onDidDispose() {\n            return this.view.onDidDispose\n        }\n        updateOptions(e = {}) {\n            this._options = Object.assign(Object.assign({}, this._options), e);\n            for (const t of this.renderers) t.updateOptions(e);\n            this.view.updateOptions(Object.assign(Object.assign({}, this._options), {\n                enableKeyboardNavigation: this._options.simpleKeyboardNavigation\n            })), this.typeFilterController && this.typeFilterController.updateOptions(this._options), this._onDidUpdateOptions.fire(this._options), this.getHTMLElement().classList.toggle(\"always\", this._options.renderIndentGuides === Ph.Always)\n        }\n        get options() {\n            return this._options\n        }\n        getHTMLElement() {\n            return this.view.getHTMLElement()\n        }\n        get scrollTop() {\n            return this.view.scrollTop\n        }\n        set scrollTop(e) {\n            this.view.scrollTop = e\n        }\n        domFocus() {\n            this.view.domFocus()\n        }\n        layout(e, t) {\n            this.view.layout(e, t)\n        }\n        style(e) {\n            var t = \".\" + this.view.domId;\n            const i = [];\n            e.treeIndentGuidesStroke && (i.push(`.monaco-list${t}:hover .monaco-tl-indent > .indent-guide, .monaco-list${t}.always .monaco-tl-indent > .indent-guide  { border-color: ${e.treeIndentGuidesStroke.transparent(.4)}; }`), i.push(`.monaco-list${t} .monaco-tl-indent > .indent-guide.active { border-color: ${e.treeIndentGuidesStroke}; }`)), this.styleElement.textContent = i.join(\"\\n\"), this.view.style(e)\n        }\n        collapse(e, t = !1) {\n            \"全局\" == e ? e = \"global\" : \"规则\" == e ? e = \"rule\" : \"直连\" == e ? e = \"direct\" : \"脚本\" == e && (e = \"script\");\n            return this.model.setCollapsed(e, !0, t)\n        }\n        expand(e, t = !1) {\n            \"全局\" == e ? e = \"global\" : \"规则\" == e ? e = \"rule\" : \"直连\" == e ? e = \"direct\" : \"脚本\" == e && (e = \"script\");\n            return this.model.setCollapsed(e, !1, t)\n        }\n        isCollapsible(e) {\n            \"全局\" == e ? e = \"global\" : \"规则\" == e ? e = \"rule\" : \"直连\" == e ? e = \"direct\" : \"脚本\" == e && (e = \"script\");\n            return this.model.isCollapsible(e)\n        }\n        setCollapsible(e, t) {\n            \"全局\" == e ? e = \"global\" : \"规则\" == e ? e = \"rule\" : \"直连\" == e ? e = \"direct\" : \"脚本\" == e && (e = \"script\");\n            return this.model.setCollapsible(e, t)\n        }\n        isCollapsed(e) {\n            \"全局\" == e ? e = \"global\" : \"规则\" == e ? e = \"rule\" : \"直连\" == e ? e = \"direct\" : \"脚本\" == e && (e = \"script\");\n            return this.model.isCollapsed(e)\n        }\n        refilter() {\n            this._onWillRefilter.fire(void 0), this.model.refilter()\n        }\n        setSelection(e, t) {\n            var i = e.map(e => this.model.getNode(e));\n            this.selection.set(i, t), e = e.map(e => this.model.getListIndex(e)).filter(e => -1 < e), this.view.setSelection(e, t, !0)\n        }\n        getSelection() {\n            return this.selection.get()\n        }\n        setFocus(e, t) {\n            var i = e.map(e => this.model.getNode(e));\n            this.focus.set(i, t), e = e.map(e => this.model.getListIndex(e)).filter(e => -1 < e), this.view.setFocus(e, t, !0)\n        }\n        focusNext(e = 1, t = !1, i, n = this.focusNavigationFilter) {\n            this.view.focusNext(e, t, i, n)\n        }\n        getFocus() {\n            return this.focus.get()\n        }\n        reveal(e, t) {\n            this.model.expandTo(e), -1 !== (e = this.model.getListIndex(e)) && this.view.reveal(e, t)\n        }\n        getRelativeTop(e) {\n            return -1 === (e = this.model.getListIndex(e)) ? null : this.view.getRelativeTop(e)\n        }\n        onLeftArrow(e) {\n            e.preventDefault(), e.stopPropagation(), 0 !== (e = this.view.getFocusedElements()).length && (e = e[0], e = this.model.getNodeLocation(e), this.model.setCollapsed(e, !0) || (e = this.model.getParentNodeLocation(e)) && (e = this.model.getListIndex(e), this.view.reveal(e), this.view.setFocus([e])))\n        }\n        onRightArrow(e) {\n            if (e.preventDefault(), e.stopPropagation(), 0 !== (e = this.view.getFocusedElements()).length) {\n                const t = e[0];\n                e = this.model.getNodeLocation(t), this.model.setCollapsed(e, !1) || t.children.some(e => e.visible) && ([e] = this.view.getFocus(), this.view.reveal(e += 1), this.view.setFocus([e]))\n            }\n        }\n        onSpace(e) {\n            e.preventDefault(), e.stopPropagation();\n            var t = this.view.getFocusedElements();\n            0 !== t.length && (t = t[0], t = this.model.getNodeLocation(t), e = e.browserEvent.altKey, this.model.setCollapsed(t, void 0, e))\n        }\n        dispose() {\n            Object(v.f)(this.disposables), this.view.dispose()\n        }\n    }\n    class Yh {\n        constructor(e, t, i = {}) {\n            this.user = e, this.rootRef = null, this.nodes = new Map, this.nodesByIdentity = new Map, this.model = new Eh(e, t, null, i), this.onDidSplice = this.model.onDidSplice, this.onDidChangeCollapseState = this.model.onDidChangeCollapseState, this.onDidChangeRenderNodeCount = this.model.onDidChangeRenderNodeCount, i.sorter && (this.sorter = {\n                compare: (e, t) => i.sorter.compare(e.element, t.element)\n            }), this.identityProvider = i.identityProvider\n        }\n        setChildren(e, t = Sd.a.empty(), i = {}) {\n            e = this.getElementLocation(e), this._setChildren(e, this.preserveCollapseState(t), i)\n        }\n        _setChildren(e, t = Sd.a.empty(), i) {\n            const n = new Set,\n                r = new Set;\n            this.model.splice([...e, 0], Number.MAX_VALUE, t, Object.assign(Object.assign({}, i), {\n                onDidCreateNode: e => {\n                    var t;\n                    null !== e.element && (e = e, n.add(e.element), this.nodes.set(e.element, e), this.identityProvider && (t = this.identityProvider.getId(e.element).toString(), r.add(t), this.nodesByIdentity.set(t, e)), null !== (t = i.onDidCreateNode) && void 0 !== t && t.call(i, e))\n                },\n                onDidDeleteNode: e => {\n                    var t;\n                    null !== e.element && (e = e, n.has(e.element) || this.nodes.delete(e.element), this.identityProvider && (t = this.identityProvider.getId(e.element).toString(), r.has(t) || this.nodesByIdentity.delete(t)), null !== (t = i.onDidDeleteNode) && void 0 !== t && t.call(i, e))\n                }\n            }))\n        }\n        preserveCollapseState(e = Sd.a.empty()) {\n            return this.sorter && (e = [...e].sort(this.sorter.compare.bind(this.sorter))), Sd.a.map(e, e => {\n                let t = this.nodes.get(e.element);\n                if (!t && this.identityProvider && (n = this.identityProvider.getId(e.element).toString(), t = this.nodesByIdentity.get(n)), !t) return Object.assign(Object.assign({}, e), {\n                    children: this.preserveCollapseState(e.children)\n                });\n                var i = (\"boolean\" == typeof e.collapsible ? e : t).collapsible,\n                    n = (void 0 !== e.collapsed ? e : t).collapsed;\n                return Object.assign(Object.assign({}, e), {\n                    collapsible: i,\n                    collapsed: n,\n                    children: this.preserveCollapseState(e.children)\n                })\n            })\n        }\n        rerender(e) {\n            e = this.getElementLocation(e), this.model.rerender(e)\n        }\n        has(e) {\n            return this.nodes.has(e)\n        }\n        getListIndex(e) {\n            return e = this.getElementLocation(e), this.model.getListIndex(e)\n        }\n        getListRenderCount(e) {\n            return e = this.getElementLocation(e), this.model.getListRenderCount(e)\n        }\n        isCollapsible(e) {\n            return e = this.getElementLocation(e), this.model.isCollapsible(e)\n        }\n        setCollapsible(e, t) {\n            return e = this.getElementLocation(e), this.model.setCollapsible(e, t)\n        }\n        isCollapsed(e) {\n            return e = this.getElementLocation(e), this.model.isCollapsed(e)\n        }\n        setCollapsed(e, t, i) {\n            return e = this.getElementLocation(e), this.model.setCollapsed(e, t, i)\n        }\n        expandTo(e) {\n            e = this.getElementLocation(e), this.model.expandTo(e)\n        }\n        refilter() {\n            this.model.refilter()\n        }\n        getNode(e = null) {\n            if (null === e) \"全局\" == e ? e = \"global\" : \"规则\" == e ? e = \"rule\" : \"直连\" == e ? e = \"direct\" : \"脚本\" == e && (e = \"script\");\n            return this.model.getNode(this.model.rootRef);\n            var t = this.nodes.get(e);\n            if (!t) throw new Ch(this.user, \"Tree element not found: \" + e);\n            return t\n        }\n        getNodeLocation(e) {\n            return e.element\n        }\n        getParentNodeLocation(e) {\n            if (null === e) throw new Ch(this.user, \"Invalid getParentNodeLocation call\");\n            var t = this.nodes.get(e);\n            if (!t) throw new Ch(this.user, \"Tree element not found: \" + e);\n            return t = this.model.getNodeLocation(t), t = this.model.getParentNodeLocation(t), this.model.getNode(t).element\n        }\n        getElementLocation(e) {\n            if (null === e) return [];\n            var t = this.nodes.get(e);\n            if (!t) throw new Ch(this.user, \"Tree element not found: \" + e);\n            \"全局\" == e ? e = \"global\" : \"规则\" == e ? e = \"rule\" : \"直连\" == e ? e = \"direct\" : \"脚本\" == e && (e = \"script\");\n            return this.model.getNodeLocation(t)\n        }\n    }\n\n    function Zh(e) {\n        return {\n            element: {\n                elements: [e.element],\n                incompressible: e.incompressible || !1\n            },\n            children: Sd.a.map(Sd.a.from(e.children), Zh),\n            collapsible: e.collapsible,\n            collapsed: e.collapsed\n        }\n    }\n\n    function Xh(e) {\n        const t = [e.element];\n        var i = e.incompressible || !1;\n        let n, r;\n        for (;\n            [r, n] = Sd.a.consume(Sd.a.from(e.children), 2), 1 === r.length && !r[0].incompressible;) e = r[0], t.push(e.element);\n        return {\n            element: {\n                elements: t,\n                incompressible: i\n            },\n            children: Sd.a.map(Sd.a.concat(r, n), Xh),\n            collapsible: e.collapsible,\n            collapsed: e.collapsed\n        }\n    }\n\n    function Qh(e) {\n        return function e(t, i = 0) {\n            let n;\n            return n = i < t.element.elements.length - 1 ? [e(t, i + 1)] : Sd.a.map(Sd.a.from(t.children), t => e(t, 0)), 0 === i && t.element.incompressible ? {\n                element: t.element.elements[i],\n                children: n,\n                incompressible: !0,\n                collapsible: t.collapsible,\n                collapsed: t.collapsed\n            } : {\n                element: t.element.elements[i],\n                children: n,\n                collapsible: t.collapsible,\n                collapsed: t.collapsed\n            }\n        }(e, 0)\n    }\n    class Jh {\n        constructor(e, t, i = {}) {\n            this.user = e, this.rootRef = null, this.nodes = new Map, this.model = new Yh(e, t, i), this.enabled = void 0 === i.compressionEnabled || i.compressionEnabled, this.identityProvider = i.identityProvider\n        }\n        get onDidSplice() {\n            \"全局\" == e ? e = \"global\" : \"规则\" == e ? e = \"rule\" : \"直连\" == e ? e = \"direct\" : \"脚本\" == e && (e = \"script\");\n            return this.model.onDidSplice\n        }\n        get onDidChangeCollapseState() {\n            \"全局\" == e ? e = \"global\" : \"规则\" == e ? e = \"rule\" : \"直连\" == e ? e = \"direct\" : \"脚本\" == e && (e = \"script\");\n            return this.model.onDidChangeCollapseState\n        }\n        get onDidChangeRenderNodeCount() {\n            \"全局\" == e ? e = \"global\" : \"规则\" == e ? e = \"rule\" : \"直连\" == e ? e = \"direct\" : \"脚本\" == e && (e = \"script\");\n            return this.model.onDidChangeRenderNodeCount\n        }\n        setChildren(e, t = Sd.a.empty(), i) {\n            var n, r = i.diffIdentityProvider && (n = i.diffIdentityProvider, {\n                getId: e => e.elements.map(e => n.getId(e).toString()).join(\"\\0\")\n            });\n            if (null !== e) {\n                if (!(i = this.nodes.get(e))) throw new Error(\"Unknown compressed tree node\");\n                const n = this.model.getNode(i);\n                i = this.model.getParentNodeLocation(i);\n                const o = this.model.getNode(i);\n                e = function e(t, i, n) {\n                    return t.element === i ? Object.assign(Object.assign({}, t), {\n                        children: n\n                    }) : Object.assign(Object.assign({}, t), {\n                        children: Sd.a.map(Sd.a.from(t.children), t => e(t, i, n))\n                    })\n                }(Qh(n), e, t);\n                const s = (this.enabled ? Xh : Zh)(e);\n                e = o.children.map(e => e === n ? s : e), this._setChildren(o.element, e, {\n                    diffIdentityProvider: r,\n                    diffDepth: n.depth - o.depth\n                })\n            } else t = Sd.a.map(t, this.enabled ? Xh : Zh), this._setChildren(null, t, {\n                diffIdentityProvider: r,\n                diffDepth: 1 / 0\n            })\n        }\n        setCompressionEnabled(e) {\n            var t;\n            e !== this.enabled && (this.enabled = e, t = this.model.getNode().children, t = Sd.a.map(t, Qh), e = Sd.a.map(t, e ? Xh : Zh), this._setChildren(null, e, {\n                diffIdentityProvider: this.identityProvider,\n                diffDepth: 1 / 0\n            }))\n        }\n        _setChildren(e, t, i) {\n            const n = new Set;\n            this.model.setChildren(e, t, Object.assign(Object.assign({}, i), {\n                onDidCreateNode: e => {\n                    for (const t of e.element.elements) n.add(t), this.nodes.set(t, e.element)\n                },\n                onDidDeleteNode: e => {\n                    for (const t of e.element.elements) n.has(t) || this.nodes.delete(t)\n                }\n            }))\n        }\n        has(e) {\n            return this.nodes.has(e)\n        }\n        getListIndex(e) {\n            return e = this.getCompressedNode(e), this.model.getListIndex(e)\n        }\n        getListRenderCount(e) {\n            return e = this.getCompressedNode(e), this.model.getListRenderCount(e)\n        }\n        getNode(e) {\n            return void 0 === e ? this.model.getNode() : (e = this.getCompressedNode(e), this.model.getNode(e))\n        }\n        getNodeLocation(e) {\n            return null === (e = this.model.getNodeLocation(e)) ? null : e.elements[e.elements.length - 1]\n        }\n        getParentNodeLocation(e) {\n            return e = this.getCompressedNode(e), null === (e = this.model.getParentNodeLocation(e)) ? null : e.elements[e.elements.length - 1]\n        }\n        isCollapsible(e) {\n            return e = this.getCompressedNode(e), this.model.isCollapsible(e)\n        }\n        setCollapsible(e, t) {\n            return e = this.getCompressedNode(e), this.model.setCollapsible(e, t)\n        }\n        isCollapsed(e) {\n            return e = this.getCompressedNode(e), this.model.isCollapsed(e)\n        }\n        setCollapsed(e, t, i) {\n            return e = this.getCompressedNode(e), this.model.setCollapsed(e, t, i)\n        }\n        expandTo(e) {\n            e = this.getCompressedNode(e), this.model.expandTo(e)\n        }\n        rerender(e) {\n            e = this.getCompressedNode(e), this.model.rerender(e)\n        }\n        refilter() {\n            this.model.refilter()\n        }\n        getCompressedNode(e) {\n            if (null === e) return null;\n            var t = this.nodes.get(e);\n            if (!t) throw new Ch(this.user, \"Tree element not found: \" + e);\n            return t\n        }\n    }\n    const eu = e => e[e.length - 1];\n    class tu {\n        constructor(e, t) {\n            this.unwrapper = e, this.node = t\n        }\n        get element() {\n            return null === this.node.element ? null : this.unwrapper(this.node.element)\n        }\n        get children() {\n            return this.node.children.map(e => new tu(this.unwrapper, e))\n        }\n        get depth() {\n            return this.node.depth\n        }\n        get visibleChildrenCount() {\n            return this.node.visibleChildrenCount\n        }\n        get visibleChildIndex() {\n            return this.node.visibleChildIndex\n        }\n        get collapsible() {\n            return this.node.collapsible\n        }\n        get collapsed() {\n            return this.node.collapsed\n        }\n        get visible() {\n            return this.node.visible\n        }\n        get filterData() {\n            return this.node.filterData\n        }\n    }\n    class iu {\n        constructor(e, t, i = {}) {\n            this.rootRef = null, this.elementMapper = i.elementMapper || eu;\n            const n = e => this.elementMapper(e.elements);\n            var r, o, s, a;\n            this.nodeMapper = new xh(e => new tu(n, e)), this.model = new Jh(e, (s = this.nodeMapper, a = t, {\n                splice(e, t, i) {\n                    a.splice(e, t, i.map(e => s.map(e)))\n                },\n                updateElementHeight(e, t) {\n                    a.updateElementHeight(e, t)\n                }\n            }), (r = n, o = i, Object.assign(Object.assign({}, o), {\n                identityProvider: o.identityProvider && {\n                    getId: e => o.identityProvider.getId(r(e))\n                },\n                sorter: o.sorter && {\n                    compare: (e, t) => o.sorter.compare(e.elements[0], t.elements[0])\n                },\n                filter: o.filter && {\n                    filter: (e, t) => o.filter.filter(r(e), t)\n                }\n            })))\n        }\n        get onDidSplice() {\n            return D.c.map(this.model.onDidSplice, ({\n                insertedNodes: e,\n                deletedNodes: t\n            }) => ({\n                insertedNodes: e.map(e => this.nodeMapper.map(e)),\n                deletedNodes: t.map(e => this.nodeMapper.map(e))\n            }))\n        }\n        get onDidChangeCollapseState() {\n            return D.c.map(this.model.onDidChangeCollapseState, ({\n                node: e,\n                deep: t\n            }) => ({\n                node: this.nodeMapper.map(e),\n                deep: t\n            }))\n        }\n        get onDidChangeRenderNodeCount() {\n            return D.c.map(this.model.onDidChangeRenderNodeCount, e => this.nodeMapper.map(e))\n        }\n        setChildren(e, t = Sd.a.empty(), i = {}) {\n            this.model.setChildren(e, t, i)\n        }\n        setCompressionEnabled(e) {\n            this.model.setCompressionEnabled(e)\n        }\n        has(e) {\n            \"全局\" == e ? e = \"global\" : \"规则\" == e ? e = \"rule\" : \"直连\" == e ? e = \"direct\" : \"脚本\" == e && (e = \"script\");\n            return this.model.has(e)\n        }\n        getListIndex(e) {\n            \"全局\" == e ? e = \"global\" : \"规则\" == e ? e = \"rule\" : \"直连\" == e ? e = \"direct\" : \"脚本\" == e && (e = \"script\");\n            return this.model.getListIndex(e)\n        }\n        getListRenderCount(e) {\n            \"全局\" == e ? e = \"global\" : \"规则\" == e ? e = \"rule\" : \"直连\" == e ? e = \"direct\" : \"脚本\" == e && (e = \"script\");\n            return this.model.getListRenderCount(e)\n        }\n        getNode(e) {\n            return this.nodeMapper.map(this.model.getNode(e))\n        }\n        getNodeLocation(e) {\n            return e.element\n        }\n        getParentNodeLocation(e) {\n            \"全局\" == e ? e = \"global\" : \"规则\" == e ? e = \"rule\" : \"直连\" == e ? e = \"direct\" : \"脚本\" == e && (e = \"script\");\n            return this.model.getParentNodeLocation(e)\n        }\n        isCollapsible(e) {\n            \"全局\" == e ? e = \"global\" : \"规则\" == e ? e = \"rule\" : \"直连\" == e ? e = \"direct\" : \"脚本\" == e && (e = \"script\");\n            return this.model.isCollapsible(e)\n        }\n        setCollapsible(e, t) {\n            \"全局\" == e ? e = \"global\" : \"规则\" == e ? e = \"rule\" : \"直连\" == e ? e = \"direct\" : \"脚本\" == e && (e = \"script\");\n            return this.model.setCollapsible(e, t)\n        }\n        isCollapsed(e) {\n            \"全局\" == e ? e = \"global\" : \"规则\" == e ? e = \"rule\" : \"直连\" == e ? e = \"direct\" : \"脚本\" == e && (e = \"script\");\n            return this.model.isCollapsed(e)\n        }\n        setCollapsed(e, t, i) {\n            \"全局\" == e ? e = \"global\" : \"规则\" == e ? e = \"rule\" : \"直连\" == e ? e = \"direct\" : \"脚本\" == e && (e = \"script\");\n            return this.model.setCollapsed(e, t, i)\n        }\n        expandTo(e) {\n            \"全局\" == e ? e = \"global\" : \"规则\" == e ? e = \"rule\" : \"直连\" == e ? e = \"direct\" : \"脚本\" == e && (e = \"script\");\n            return this.model.expandTo(e)\n        }\n        rerender(e) {\n            \"全局\" == e ? e = \"global\" : \"规则\" == e ? e = \"rule\" : \"直连\" == e ? e = \"direct\" : \"脚本\" == e && (e = \"script\");\n            return this.model.rerender(e)\n        }\n        refilter() {\n            \"全局\" == e ? e = \"global\" : \"规则\" == e ? e = \"rule\" : \"直连\" == e ? e = \"direct\" : \"脚本\" == e && (e = \"script\");\n            return this.model.refilter()\n        }\n        getCompressedTreeNode(e = null) {\n            \"全局\" == e ? e = \"global\" : \"规则\" == e ? e = \"rule\" : \"直连\" == e ? e = \"direct\" : \"脚本\" == e && (e = \"script\");\n            return this.model.getNode(e)\n        }\n    }\n    class nu extends Gh {\n        constructor(e, t, i, n, r = {}) {\n            super(e, t, i, n, r)\n        }\n        get onDidChangeCollapseState() {\n            \"全局\" == e ? e = \"global\" : \"规则\" == e ? e = \"rule\" : \"直连\" == e ? e = \"direct\" : \"脚本\" == e && (e = \"script\");\n            return this.model.onDidChangeCollapseState\n        }\n        setChildren(e, t = Sd.a.empty(), i) {\n            this.model.setChildren(e, t, i)\n        }\n        rerender(e) {\n            void 0 !== e ? this.model.rerender(e) : this.view.rerender()\n        }\n        hasElement(e) {\n            \"全局\" == e ? e = \"global\" : \"规则\" == e ? e = \"rule\" : \"直连\" == e ? e = \"direct\" : \"脚本\" == e && (e = \"script\");\n            return this.model.has(e)\n        }\n        createModel(e, t, i) {\n            return new Yh(e, t, i)\n        }\n    }\n    class ru {\n        constructor(e, t) {\n            this._compressedTreeNodeProvider = e, this.renderer = t, this.templateId = t.templateId, t.onDidChangeTwistieState && (this.onDidChangeTwistieState = t.onDidChangeTwistieState)\n        }\n        get compressedTreeNodeProvider() {\n            return this._compressedTreeNodeProvider()\n        }\n        renderTemplate(e) {\n            return {\n                compressedTreeNode: void 0,\n                data: this.renderer.renderTemplate(e)\n            }\n        }\n        renderElement(e, t, i, n) {\n            var r = this.compressedTreeNodeProvider.getCompressedTreeNode(e.element);\n            1 === r.element.elements.length ? (i.compressedTreeNode = void 0, this.renderer.renderElement(e, t, i.data, n)) : (i.compressedTreeNode = r, this.renderer.renderCompressedElements(r, t, i.data, n))\n        }\n        disposeElement(e, t, i, n) {\n            i.compressedTreeNode ? this.renderer.disposeCompressedElements && this.renderer.disposeCompressedElements(i.compressedTreeNode, t, i.data, n) : this.renderer.disposeElement && this.renderer.disposeElement(e, t, i.data, n)\n        }\n        disposeTemplate(e) {\n            this.renderer.disposeTemplate(e.data)\n        }\n        renderTwistie(e, t) {\n            return !!this.renderer.renderTwistie && this.renderer.renderTwistie(e, t)\n        }\n    }! function(e, t, i, n) {\n        var r, o = arguments.length,\n            s = o < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n);\n        else\n            for (var a = e.length - 1; 0 <= a; a--)(r = e[a]) && (s = (o < 3 ? r(s) : 3 < o ? r(t, i, s) : r(t, i)) || s);\n        3 < o && s && Object.defineProperty(t, i, s)\n    }([gi.a], ru.prototype, \"compressedTreeNodeProvider\", null);\n    class ou extends nu {\n        constructor(e, t, i, n, r = {}) {\n            const o = () => this;\n            var s, a;\n            super(e, t, i, n.map(e => new ru(o, e)), (s = o, (a = r) && Object.assign(Object.assign({}, a), {\n                keyboardNavigationLabelProvider: a.keyboardNavigationLabelProvider && {\n                    getKeyboardNavigationLabel(e) {\n                        let t;\n                        try {\n                            t = s().getCompressedTreeNode(e)\n                        } catch (t) {\n                            return a.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(e)\n                        }\n                        return 1 === t.element.elements.length ? a.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(e) : a.keyboardNavigationLabelProvider.getCompressedNodeKeyboardNavigationLabel(t.element.elements)\n                    }\n                }\n            })))\n        }\n        setChildren(e, t = Sd.a.empty(), i) {\n            this.model.setChildren(e, t, i)\n        }\n        createModel(e, t, i) {\n            return new iu(e, t, i)\n        }\n        updateOptions(e = {}) {\n            super.updateOptions(e), void 0 !== e.compressionEnabled && this.model.setCompressionEnabled(e.compressionEnabled)\n        }\n        getCompressedTreeNode(e = null) {\n            \"全局\" == e ? e = \"global\" : \"规则\" == e ? e = \"rule\" : \"直连\" == e ? e = \"direct\" : \"脚本\" == e && (e = \"script\");\n            return this.model.getCompressedTreeNode(e)\n        }\n    }\n    var su = function(e, t, i, n) {\n        return new(i = i || Promise)((function(r, o) {\n            function s(e) {\n                try {\n                    l(n.next(e))\n                } catch (e) {\n                    o(e)\n                }\n            }\n\n            function a(e) {\n                try {\n                    l(n.throw(e))\n                } catch (e) {\n                    o(e)\n                }\n            }\n\n            function l(e) {\n                var t;\n                e.done ? r(e.value) : ((t = e.value) instanceof i ? t : new i((function(e) {\n                    e(t)\n                }))).then(s, a)\n            }\n            l((n = n.apply(e, t || [])).next())\n        }))\n    };\n\n    function au(e) {\n        return Object.assign(Object.assign({}, e), {\n            children: [],\n            refreshPromise: void 0,\n            stale: !0,\n            slow: !1,\n            collapsedByDefault: void 0\n        })\n    }\n\n    function lu(e, t) {\n        return !!t.parent && (t.parent === e || lu(e, t.parent))\n    }\n    class du {\n        constructor(e) {\n            this.node = e\n        }\n        get element() {\n            return this.node.element.element\n        }\n        get children() {\n            return this.node.children.map(e => new du(e))\n        }\n        get depth() {\n            return this.node.depth\n        }\n        get visibleChildrenCount() {\n            return this.node.visibleChildrenCount\n        }\n        get visibleChildIndex() {\n            return this.node.visibleChildIndex\n        }\n        get collapsible() {\n            return this.node.collapsible\n        }\n        get collapsed() {\n            return this.node.collapsed\n        }\n        get visible() {\n            return this.node.visible\n        }\n        get filterData() {\n            return this.node.filterData\n        }\n    }\n    class cu {\n        constructor(e, t, i) {\n            this.renderer = e, this.nodeMapper = t, this.onDidChangeTwistieState = i, this.renderedNodes = new Map, this.templateId = e.templateId\n        }\n        renderTemplate(e) {\n            return {\n                templateData: this.renderer.renderTemplate(e)\n            }\n        }\n        renderElement(e, t, i, n) {\n            this.renderer.renderElement(this.nodeMapper.map(e), t, i.templateData, n)\n        }\n        renderTwistie(e, t) {\n            return e.slow ? (t.classList.add(...Mh.classNamesArray), !0) : (t.classList.remove(...Mh.classNamesArray), !1)\n        }\n        disposeElement(e, t, i, n) {\n            this.renderer.disposeElement && this.renderer.disposeElement(this.nodeMapper.map(e), t, i.templateData, n)\n        }\n        disposeTemplate(e) {\n            this.renderer.disposeTemplate(e.templateData)\n        }\n        dispose() {\n            this.renderedNodes.clear()\n        }\n    }\n\n    function hu(e) {\n        return {\n            browserEvent: e.browserEvent,\n            elements: e.elements.map(e => e.element)\n        }\n    }\n\n    function uu(e) {\n        return {\n            browserEvent: e.browserEvent,\n            element: e.element && e.element.element,\n            target: e.target\n        }\n    }\n    class pu extends Pc {\n        constructor(e) {\n            super(e.elements.map(e => e.element)), this.data = e\n        }\n    }\n\n    function gu(e) {\n        return e instanceof Pc ? new pu(e) : e\n    }\n    class fu {\n        constructor(e) {\n            this.dnd = e\n        }\n        getDragURI(e) {\n            return this.dnd.getDragURI(e.element)\n        }\n        getDragLabel(e, t) {\n            if (this.dnd.getDragLabel) return this.dnd.getDragLabel(e.map(e => e.element), t)\n        }\n        onDragStart(e, t) {\n            this.dnd.onDragStart && this.dnd.onDragStart(gu(e), t)\n        }\n        onDragOver(e, t, i, n, r = 0) {\n            return this.dnd.onDragOver(gu(e), t && t.element, i, n)\n        }\n        drop(e, t, i, n) {\n            this.dnd.drop(gu(e), t && t.element, i, n)\n        }\n        onDragEnd(e) {\n            this.dnd.onDragEnd && this.dnd.onDragEnd(e)\n        }\n    }\n\n    function mu(e) {\n        return e && Object.assign(Object.assign({}, e), {\n            collapseByDefault: !0,\n            identityProvider: e.identityProvider && {\n                getId: t => e.identityProvider.getId(t.element)\n            },\n            dnd: e.dnd && new fu(e.dnd),\n            multipleSelectionController: e.multipleSelectionController && {\n                isSelectionSingleChangeEvent: t => e.multipleSelectionController.isSelectionSingleChangeEvent(Object.assign(Object.assign({}, t), {\n                    element: t.element\n                })),\n                isSelectionRangeChangeEvent: t => e.multipleSelectionController.isSelectionRangeChangeEvent(Object.assign(Object.assign({}, t), {\n                    element: t.element\n                }))\n            },\n            accessibilityProvider: e.accessibilityProvider && Object.assign(Object.assign({}, e.accessibilityProvider), {\n                getPosInSet: void 0,\n                getSetSize: void 0,\n                getRole: e.accessibilityProvider.getRole ? t => e.accessibilityProvider.getRole(t.element) : () => \"treeitem\",\n                isChecked: e.accessibilityProvider.isChecked ? t => {\n                    var i;\n                    return !(null === (i = e.accessibilityProvider) || void 0 === i || !i.isChecked(t.element))\n                } : void 0,\n                getAriaLabel: t => e.accessibilityProvider.getAriaLabel(t.element),\n                getWidgetAriaLabel: () => e.accessibilityProvider.getWidgetAriaLabel(),\n                getWidgetRole: e.accessibilityProvider.getWidgetRole ? () => e.accessibilityProvider.getWidgetRole() : () => \"tree\",\n                getAriaLevel: e.accessibilityProvider.getAriaLevel && (t => e.accessibilityProvider.getAriaLevel(t.element)),\n                getActiveDescendantId: e.accessibilityProvider.getActiveDescendantId && (t => e.accessibilityProvider.getActiveDescendantId(t.element))\n            }),\n            filter: e.filter && {\n                filter: (t, i) => e.filter.filter(t.element, i)\n            },\n            keyboardNavigationLabelProvider: e.keyboardNavigationLabelProvider && Object.assign(Object.assign({}, e.keyboardNavigationLabelProvider), {\n                getKeyboardNavigationLabel: t => e.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(t.element)\n            }),\n            sorter: void 0,\n            expandOnlyOnTwistieClick: void 0 === e.expandOnlyOnTwistieClick ? void 0 : \"function\" != typeof e.expandOnlyOnTwistieClick ? e.expandOnlyOnTwistieClick : t => e.expandOnlyOnTwistieClick(t.element),\n            additionalScrollHeight: e.additionalScrollHeight\n        })\n    }\n\n    function vu(e, t) {\n        t(e), e.children.forEach(e => vu(e, t))\n    }\n    class bu {\n        constructor(e, t, i, n, r, o = {}) {\n            this.user = e, this.dataSource = r, this.nodes = new Map, this.subTreeRefreshPromises = new Map, this.refreshPromises = new Map, this._onDidRender = new D.b, this._onDidChangeNodeSlowState = new D.b, this.nodeMapper = new xh(e => new du(e)), this.disposables = new v.b, this.identityProvider = o.identityProvider, this.autoExpandSingleChildren = void 0 !== o.autoExpandSingleChildren && o.autoExpandSingleChildren, this.sorter = o.sorter, this.collapseByDefault = o.collapseByDefault, this.tree = this.createTree(e, t, i, n, o), this.root = au({\n                element: void 0,\n                parent: null,\n                hasChildren: !0\n            }), this.identityProvider && (this.root = Object.assign(Object.assign({}, this.root), {\n                id: null\n            })), this.nodes.set(null, this.root), this.tree.onDidChangeCollapseState(this._onDidChangeCollapseState, this, this.disposables)\n        }\n        get onDidChangeFocus() {\n            return D.c.map(this.tree.onDidChangeFocus, hu)\n        }\n        get onDidChangeSelection() {\n            return D.c.map(this.tree.onDidChangeSelection, hu)\n        }\n        get onMouseDblClick() {\n            return D.c.map(this.tree.onMouseDblClick, uu)\n        }\n        get onPointer() {\n            return D.c.map(this.tree.onPointer, uu)\n        }\n        get onDidFocus() {\n            return this.tree.onDidFocus\n        }\n        get onDidDispose() {\n            return this.tree.onDidDispose\n        }\n        createTree(e, t, i, n, r) {\n            return i = new jh(i), n = n.map(e => new cu(e, this.nodeMapper, this._onDidChangeNodeSlowState.event)), r = mu(r) || {}, new nu(e, t, i, n, r)\n        }\n        updateOptions(e = {}) {\n            this.tree.updateOptions(e)\n        }\n        getHTMLElement() {\n            return this.tree.getHTMLElement()\n        }\n        get scrollTop() {\n            return this.tree.scrollTop\n        }\n        set scrollTop(e) {\n            this.tree.scrollTop = e\n        }\n        domFocus() {\n            this.tree.domFocus()\n        }\n        layout(e, t) {\n            this.tree.layout(e, t)\n        }\n        style(e) {\n            this.tree.style(e)\n        }\n        getInput() {\n            return this.root.element\n        }\n        setInput(e, t) {\n            return su(this, void 0, void 0, (function*() {\n                this.refreshPromises.forEach(e => e.cancel()), this.refreshPromises.clear(), this.root.element = e;\n                var i = t && {\n                    viewState: t,\n                    focus: [],\n                    selection: []\n                };\n                yield this._updateChildren(e, !0, !1, i), i && (this.tree.setFocus(i.focus), this.tree.setSelection(i.selection)), t && \"number\" == typeof t.scrollTop && (this.scrollTop = t.scrollTop)\n            }))\n        }\n        _updateChildren(e = this.root.element, t = !0, i = !1, n, r) {\n            return su(this, void 0, void 0, (function*() {\n                if (void 0 === this.root.element) throw new Ch(this.user, \"Tree input not set\");\n                this.root.refreshPromise && (yield this.root.refreshPromise, yield D.c.toPromise(this._onDidRender.event));\n                var o = this.getDataNode(e);\n                if (yield this.refreshAndRenderNode(o, t, n, r), i) try {\n                    this.tree.rerender(o)\n                } catch (o) {}\n            }))\n        }\n        rerender(e) {\n            void 0 !== e && e !== this.root.element ? (e = this.getDataNode(e), this.tree.rerender(e)) : this.tree.rerender()\n        }\n        collapse(e, t = !1) {\n            return e = this.getDataNode(e), this.tree.collapse(e === this.root ? null : e, t)\n        }\n        expand(e, t = !1) {\n            return su(this, void 0, void 0, (function*() {\n                if (void 0 === this.root.element) throw new Ch(this.user, \"Tree input not set\");\n                this.root.refreshPromise && (yield this.root.refreshPromise, yield D.c.toPromise(this._onDidRender.event));\n                var i = this.getDataNode(e);\n                if (this.tree.hasElement(i) && !this.tree.isCollapsible(i)) return !1;\n                if (i.refreshPromise && (yield this.root.refreshPromise, yield D.c.toPromise(this._onDidRender.event)), i !== this.root && !i.refreshPromise && !this.tree.isCollapsed(i)) return !1;\n                var n = this.tree.expand(i === this.root ? null : i, t);\n                return i.refreshPromise && (yield this.root.refreshPromise, yield D.c.toPromise(this._onDidRender.event)), n\n            }))\n        }\n        setSelection(e, t) {\n            e = e.map(e => this.getDataNode(e)), this.tree.setSelection(e, t)\n        }\n        getSelection() {\n            return this.tree.getSelection().map(e => e.element)\n        }\n        setFocus(e, t) {\n            e = e.map(e => this.getDataNode(e)), this.tree.setFocus(e, t)\n        }\n        getFocus() {\n            return this.tree.getFocus().map(e => e.element)\n        }\n        reveal(e, t) {\n            this.tree.reveal(this.getDataNode(e), t)\n        }\n        getDataNode(e) {\n            var t = this.nodes.get(e === this.root.element ? null : e);\n            if (!t) throw new Ch(this.user, \"Data tree node not found: \" + e);\n            return t\n        }\n        refreshAndRenderNode(e, t, i, n) {\n            return su(this, void 0, void 0, (function*() {\n                yield this.refreshNode(e, t, i), this.render(e, i, n)\n            }))\n        }\n        refreshNode(e, t, i) {\n            return su(this, void 0, void 0, (function*() {\n                let n;\n                return this.subTreeRefreshPromises.forEach((r, o) => {\n                    var s;\n                    n || (s = o) !== (o = e) && !lu(s, o) && !lu(o, s) || (n = r.then(() => this.refreshNode(e, t, i)))\n                }), n || this.doRefreshSubTree(e, t, i)\n            }))\n        }\n        doRefreshSubTree(e, t, i) {\n            return su(this, void 0, void 0, (function*() {\n                let n;\n                e.refreshPromise = new Promise(e => n = e), this.subTreeRefreshPromises.set(e, e.refreshPromise), e.refreshPromise.finally(() => {\n                    e.refreshPromise = void 0, this.subTreeRefreshPromises.delete(e)\n                });\n                try {\n                    const r = yield this.doRefreshNode(e, t, i);\n                    e.stale = !1, yield q.d.settled(r.map(e => this.doRefreshSubTree(e, t, i)))\n                } finally {\n                    n()\n                }\n            }))\n        }\n        doRefreshNode(e, t, i) {\n            return su(this, void 0, void 0, (function*() {\n                let n;\n                if (e.hasChildren = !!this.dataSource.hasChildren(e.element), e.hasChildren) {\n                    const t = Object(q.k)(800);\n                    t.then(() => {\n                        e.slow = !0, this._onDidChangeNodeSlowState.fire(e)\n                    }, e => null), n = this.doGetChildren(e).finally(() => t.cancel())\n                } else n = Promise.resolve(Sd.a.empty());\n                try {\n                    var r = yield n;\n                    return this.setChildren(e, r, t, i)\n                } catch (n) {\n                    if (e !== this.root && this.tree.hasElement(e) && this.tree.collapse(e), Object(se.e)(n)) return [];\n                    throw n\n                } finally {\n                    e.slow && (e.slow = !1, this._onDidChangeNodeSlowState.fire(e))\n                }\n            }))\n        }\n        doGetChildren(e) {\n            let t = this.refreshPromises.get(e);\n            return t || (t = Object(q.h)(() => su(this, void 0, void 0, (function*() {\n                var t = yield this.dataSource.getChildren(e.element);\n                return this.processChildren(t)\n            }))), this.refreshPromises.set(e, t), t.finally(() => {\n                this.refreshPromises.delete(e)\n            }))\n        }\n        _onDidChangeCollapseState({\n            node: e,\n            deep: t\n        }) {\n            null !== e.element && !e.collapsed && e.element.stale && (t ? this.collapse(e.element.element) : this.refreshAndRenderNode(e.element, !1).catch(se.f))\n        }\n        setChildren(e, t, i, n) {\n            const r = [...t];\n            if (0 === e.children.length && 0 === r.length) return [];\n            const o = new Map,\n                s = new Map;\n            for (const t of e.children) {\n                var a;\n                o.set(t.element, t), this.identityProvider && (a = this.tree.isCollapsed(t), s.set(t.id, {\n                    node: t,\n                    collapsed: a\n                }))\n            }\n            const l = [],\n                d = r.map(t => {\n                    var r = !!this.dataSource.hasChildren(t);\n                    if (!this.identityProvider) {\n                        const i = au({\n                            element: t,\n                            parent: e,\n                            hasChildren: r\n                        });\n                        return r && this.collapseByDefault && !this.collapseByDefault(t) && (i.collapsedByDefault = !1, l.push(i)), i\n                    }\n                    var a = this.identityProvider.getId(t).toString(),\n                        d = s.get(a);\n                    if (d) {\n                        const e = d.node;\n                        return o.delete(e.element), this.nodes.delete(e.element), this.nodes.set(t, e), e.element = t, e.hasChildren = r, i ? d.collapsed ? (e.children.forEach(e => vu(e, e => this.nodes.delete(e.element))), e.children.splice(0, e.children.length), e.stale = !0) : l.push(e) : r && this.collapseByDefault && !this.collapseByDefault(t) && (e.collapsedByDefault = !1, l.push(e)), e\n                    }\n                    const c = au({\n                        element: t,\n                        parent: e,\n                        id: a,\n                        hasChildren: r\n                    });\n                    return n && n.viewState.focus && -1 < n.viewState.focus.indexOf(a) && n.focus.push(c), n && n.viewState.selection && -1 < n.viewState.selection.indexOf(a) && n.selection.push(c), n && n.viewState.expanded && -1 < n.viewState.expanded.indexOf(a) ? l.push(c) : r && this.collapseByDefault && !this.collapseByDefault(t) && (c.collapsedByDefault = !1, l.push(c)), c\n                });\n            for (const e of o.values()) vu(e, e => this.nodes.delete(e.element));\n            for (const e of d) this.nodes.set(e.element, e);\n            return e.children.splice(0, e.children.length, ...d), e !== this.root && this.autoExpandSingleChildren && 1 === d.length && 0 === l.length && (d[0].collapsedByDefault = !1, l.push(d[0])), l\n        }\n        render(e, t, i) {\n            var n = e.children.map(e => this.asTreeElement(e, t)),\n                r = i && Object.assign(Object.assign({}, i), {\n                    diffIdentityProvider: i.diffIdentityProvider && {\n                        getId: e => i.diffIdentityProvider.getId(e.element)\n                    }\n                });\n            this.tree.setChildren(e === this.root ? null : e, n, r), e !== this.root && this.tree.setCollapsible(e, e.hasChildren), this._onDidRender.fire()\n        }\n        asTreeElement(e, t) {\n            if (e.stale) return {\n                element: e,\n                collapsible: e.hasChildren,\n                collapsed: !0\n            };\n            let i;\n            return i = !(t && t.viewState.expanded && e.id && -1 < t.viewState.expanded.indexOf(e.id)) && e.collapsedByDefault, e.collapsedByDefault = void 0, {\n                element: e,\n                children: e.hasChildren ? Sd.a.map(e.children, e => this.asTreeElement(e, t)) : [],\n                collapsible: e.hasChildren,\n                collapsed: i\n            }\n        }\n        processChildren(e) {\n            return this.sorter ? [...e].sort(this.sorter.compare.bind(this.sorter)) : e\n        }\n        dispose() {\n            this.disposables.dispose()\n        }\n    }\n    class _u {\n        constructor(e) {\n            this.node = e\n        }\n        get element() {\n            return {\n                elements: this.node.element.elements.map(e => e.element),\n                incompressible: this.node.element.incompressible\n            }\n        }\n        get children() {\n            return this.node.children.map(e => new _u(e))\n        }\n        get depth() {\n            return this.node.depth\n        }\n        get visibleChildrenCount() {\n            return this.node.visibleChildrenCount\n        }\n        get visibleChildIndex() {\n            return this.node.visibleChildIndex\n        }\n        get collapsible() {\n            return this.node.collapsible\n        }\n        get collapsed() {\n            return this.node.collapsed\n        }\n        get visible() {\n            return this.node.visible\n        }\n        get filterData() {\n            return this.node.filterData\n        }\n    }\n    class wu {\n        constructor(e, t, i, n) {\n            this.renderer = e, this.nodeMapper = t, this.compressibleNodeMapperProvider = i, this.onDidChangeTwistieState = n, this.renderedNodes = new Map, this.disposables = [], this.templateId = e.templateId\n        }\n        renderTemplate(e) {\n            return {\n                templateData: this.renderer.renderTemplate(e)\n            }\n        }\n        renderElement(e, t, i, n) {\n            this.renderer.renderElement(this.nodeMapper.map(e), t, i.templateData, n)\n        }\n        renderCompressedElements(e, t, i, n) {\n            this.renderer.renderCompressedElements(this.compressibleNodeMapperProvider().map(e), t, i.templateData, n)\n        }\n        renderTwistie(e, t) {\n            return e.slow ? (t.classList.add(...Mh.classNamesArray), !0) : (t.classList.remove(...Mh.classNamesArray), !1)\n        }\n        disposeElement(e, t, i, n) {\n            this.renderer.disposeElement && this.renderer.disposeElement(this.nodeMapper.map(e), t, i.templateData, n)\n        }\n        disposeCompressedElements(e, t, i, n) {\n            this.renderer.disposeCompressedElements && this.renderer.disposeCompressedElements(this.compressibleNodeMapperProvider().map(e), t, i.templateData, n)\n        }\n        disposeTemplate(e) {\n            this.renderer.disposeTemplate(e.templateData)\n        }\n        dispose() {\n            this.renderedNodes.clear(), this.disposables = Object(v.f)(this.disposables)\n        }\n    }\n    class yu extends bu {\n        constructor(e, t, i, n, r, o, s = {}) {\n            super(e, t, i, r, o, s), this.compressionDelegate = n, this.compressibleNodeMapper = new xh(e => new _u(e)), this.filter = s.filter\n        }\n        createTree(e, t, i, n, r) {\n            var o;\n            i = new jh(i), n = n.map(e => new wu(e, this.nodeMapper, () => this.compressibleNodeMapper, this._onDidChangeNodeSlowState.event)), r = (r = (o = r) && mu(o)) && Object.assign(Object.assign({}, r), {\n                keyboardNavigationLabelProvider: r.keyboardNavigationLabelProvider && Object.assign(Object.assign({}, r.keyboardNavigationLabelProvider), {\n                    getCompressedNodeKeyboardNavigationLabel: e => o.keyboardNavigationLabelProvider.getCompressedNodeKeyboardNavigationLabel(e.map(e => e.element))\n                })\n            }) || {};\n            return new ou(e, t, i, n, r)\n        }\n        asTreeElement(e, t) {\n            return Object.assign({\n                incompressible: this.compressionDelegate.isIncompressible(e.element)\n            }, super.asTreeElement(e, t))\n        }\n        updateOptions(e = {}) {\n            this.tree.updateOptions(e)\n        }\n        render(e, t) {\n            if (!this.identityProvider) return super.render(e, t);\n            const i = e => this.identityProvider.getId(e).toString();\n            var n = e => {\n                const t = new Set;\n                for (const r of e) {\n                    var n = this.tree.getCompressedTreeNode(r === this.root ? null : r);\n                    if (n.element)\n                        for (const e of n.element.elements) t.add(i(e.element))\n                }\n                return t\n            };\n            const r = n(this.tree.getSelection()),\n                o = n(this.tree.getFocus());\n            super.render(e, t);\n            const s = this.getSelection();\n            let a = !1;\n            const l = this.getFocus();\n            let d = !1;\n            const c = e => {\n                var t = e.element;\n                if (t)\n                    for (let e = 0; e < t.elements.length; e++) {\n                        var n = i(t.elements[e].element),\n                            h = t.elements[t.elements.length - 1].element;\n                        r.has(n) && -1 === s.indexOf(h) && (s.push(h), a = !0), o.has(n) && -1 === l.indexOf(h) && (l.push(h), d = !0)\n                    }\n                e.children.forEach(c)\n            };\n            c(this.tree.getCompressedTreeNode(e === this.root ? null : e)), a && this.setSelection(s), d && this.setFocus(l)\n        }\n        processChildren(e) {\n            return this.filter && (e = Sd.a.filter(e, e => {\n                if (2 === (e = \"boolean\" == typeof(e = e = this.filter.filter(e, 1)) ? e ? 1 : 0 : kh(e) ? Lh(e.visibility) : Lh(e))) throw new Error(\"Recursive tree visibility not supported in async data compressed trees\");\n                return 1 === e\n            })), super.processChildren(e)\n        }\n    }\n    class Cu extends Gh {\n        constructor(e, t, i, n, r, o = {}) {\n            super(e, t, i, n, o), this.user = e, this.dataSource = r, this.identityProvider = o.identityProvider\n        }\n        createModel(e, t, i) {\n            return new Yh(e, t, i)\n        }\n    }\n    new Yt.c(\"isWindows\", A.i, Object(yt.a)(\"isWindows\", \"Whether the operating system is Windows\")), ae = function(e, t, i, n) {\n        var r, o = arguments.length,\n            s = o < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n);\n        else\n            for (var a = e.length - 1; 0 <= a; a--)(r = e[a]) && (s = (o < 3 ? r(s) : 3 < o ? r(t, i, s) : r(t, i)) || s);\n        return 3 < o && s && Object.defineProperty(t, i, s), s\n    }, S = function(e, t) {\n        return function(i, n) {\n            t(i, n, e)\n        }\n    };\n    const xu = Object(_.c)(\"listService\");\n    let Su = class {\n        constructor(e) {\n            this._themeService = e, this.disposables = new v.b, this.lists = [], this._lastFocusedWidget = void 0, this._hasCreatedStyleController = !1\n        }\n        get lastFocusedList() {\n            return this._lastFocusedWidget\n        }\n        register(e, t) {\n            var i;\n            if (this._hasCreatedStyleController || (this._hasCreatedStyleController = !0, i = new th(Object(s.t)(), \"\"), this.disposables.add(dc(i, this._themeService))), this.lists.some(t => t.widget === e)) throw new Error(\"Cannot register the same widget multiple times\");\n            const n = {\n                widget: e,\n                extraContextKeys: t\n            };\n            return this.lists.push(n), e.getHTMLElement() === document.activeElement && (this._lastFocusedWidget = e), Object(v.e)(e.onDidFocus(() => this._lastFocusedWidget = e), Object(v.i)(() => this.lists.splice(this.lists.indexOf(n), 1)), e.onDidDispose(() => {\n                this.lists = this.lists.filter(e => e !== n), this._lastFocusedWidget === e && (this._lastFocusedWidget = void 0)\n            }))\n        }\n        dispose() {\n            this.disposables.dispose()\n        }\n    };\n    Su = ae([S(0, ir.b)], Su);\n    const ku = new Yt.c(\"listFocus\", !0),\n        Lu = new Yt.c(\"listSupportsMultiselect\", !0);\n    Yt.a.and(ku, Yt.a.not(\"inputFocus\"));\n    const Ou = new Yt.c(\"listHasSelectionOrFocus\", !1),\n        Eu = new Yt.c(\"listDoubleSelection\", !1),\n        Nu = new Yt.c(\"listMultiSelection\", !1),\n        Du = new Yt.c(\"listSelectionNavigation\", !1),\n        Iu = \"listAutomaticKeyboardNavigation\";\n\n    function Tu(e, t) {\n        return t = e.createScoped(t.getHTMLElement()), ku.bindTo(t), t\n    }\n    const Mu = \"workbench.list.multiSelectModifier\",\n        Pu = \"workbench.list.openMode\",\n        Au = \"workbench.list.horizontalScrolling\",\n        Ru = \"workbench.list.keyboardNavigation\",\n        Fu = \"workbench.list.automaticKeyboardNavigation\",\n        ju = \"workbench.tree.indent\",\n        Bu = \"workbench.tree.renderIndentGuides\",\n        Vu = \"workbench.list.smoothScrolling\",\n        Wu = \"workbench.list.mouseWheelScrollSensitivity\",\n        zu = \"workbench.list.fastScrollSensitivity\",\n        Hu = \"workbench.tree.expandMode\";\n\n    function Uu(e) {\n        return \"alt\" === e.getValue(Mu)\n    }\n    class Ku extends v.a {\n        constructor(e) {\n            super(), this.configurationService = e, this.useAltAsMultipleSelectionModifier = Uu(e), this.registerListeners()\n        }\n        registerListeners() {\n            this._register(this.configurationService.onDidChange配置(e => {\n                e.affects配置(Mu) && (this.useAltAsMultipleSelectionModifier = Uu(this.configurationService))\n            }))\n        }\n        isSelectionSingleChangeEvent(e) {\n            return this.useAltAsMultipleSelectionModifier ? e.browserEvent.altKey : Xc(e)\n        }\n        isSelectionRangeChangeEvent(e) {\n            return Qc(e)\n        }\n    }\n\n    function $u(e, t, i) {\n        const n = new v.b;\n        return [Object.assign(Object.assign({}, e), {\n            keyboardNavigationDelegate: {\n                mightProducePrintableCharacter: e => i.mightProducePrintableCharacter(e)\n            },\n            smoothScrolling: Boolean(t.getValue(Vu)),\n            mouseWheelScrollSensitivity: t.getValue(Wu),\n            fastScrollSensitivity: t.getValue(zu),\n            multipleSelectionController: null !== (e = e.multipleSelectionController) && void 0 !== e ? e : n.add(new Ku(t))\n        }), n]\n    }\n    let qu = class extends dh {\n        constructor(e, t, i, n, r, o, s, a, l, d) {\n            var c = void 0 !== r.horizontalScrolling ? r.horizontalScrolling : Boolean(l.getValue(Au)),\n                [h, d] = $u(r, l, d);\n            super(e, t, i, n, Object.assign(Object.assign(Object.assign({\n                keyboardSupport: !1\n            }, ac(a.getColorTheme(), cc)), h), {\n                horizontalScrolling: c\n            })), this.disposables.add(d), this.contextKeyService = Tu(o, this), this.themeService = a, this.listSupportsMultiSelect = Lu.bindTo(this.contextKeyService), this.listSupportsMultiSelect.set(!1 !== r.multipleSelectionSupport);\n            Du.bindTo(this.contextKeyService).set(Boolean(r.selectionNavigation)), this.listHasSelectionOrFocus = Ou.bindTo(this.contextKeyService), this.listDoubleSelection = Eu.bindTo(this.contextKeyService), this.listMultiSelection = Nu.bindTo(this.contextKeyService), this.horizontalScrolling = r.horizontalScrolling, this._useAltAsMultipleSelectionModifier = Uu(l), this.disposables.add(this.contextKeyService), this.disposables.add(s.register(this)), r.overrideStyles && this.updateStyles(r.overrideStyles), this.disposables.add(this.onDidChangeSelection(() => {\n                const e = this.getSelection(),\n                    t = this.getFocus();\n                this.contextKeyService.bufferChangeEvents(() => {\n                    this.listHasSelectionOrFocus.set(0 < e.length || 0 < t.length), this.listMultiSelection.set(1 < e.length), this.listDoubleSelection.set(2 === e.length)\n                })\n            })), this.disposables.add(this.onDidChangeFocus(() => {\n                var e = this.getSelection(),\n                    t = this.getFocus();\n                this.listHasSelectionOrFocus.set(0 < e.length || 0 < t.length)\n            })), this.disposables.add(l.onDidChange配置(e => {\n                e.affects配置(Mu) && (this._useAltAsMultipleSelectionModifier = Uu(l));\n                let t = {};\n                var i, n;\n                e.affects配置(Au) && void 0 === this.horizontalScrolling && (i = Boolean(l.getValue(Au)), t = Object.assign(Object.assign({}, t), {\n                    horizontalScrolling: i\n                })), e.affects配置(Vu) && (n = Boolean(l.getValue(Vu)), t = Object.assign(Object.assign({}, t), {\n                    smoothScrolling: n\n                })), e.affects配置(Wu) && (n = l.getValue(Wu), t = Object.assign(Object.assign({}, t), {\n                    mouseWheelScrollSensitivity: n\n                })), e.affects配置(zu) && (e = l.getValue(zu), t = Object.assign(Object.assign({}, t), {\n                    fastScrollSensitivity: e\n                })), 0 < Object.keys(t).length && this.updateOptions(t)\n            })), this.navigator = new Yu(this, Object.assign({\n                configurationService: l\n            }, r)), this.disposables.add(this.navigator)\n        }\n        updateOptions(e) {\n            super.updateOptions(e), e.overrideStyles && this.updateStyles(e.overrideStyles), void 0 !== e.multipleSelectionSupport && this.listSupportsMultiSelect.set(!!e.multipleSelectionSupport)\n        }\n        updateStyles(e) {\n            var t;\n            null !== (t = this._styler) && void 0 !== t && t.dispose(), this._styler = dc(this, this.themeService, e)\n        }\n        dispose() {\n            var e;\n            null !== (e = this._styler) && void 0 !== e && e.dispose(), super.dispose()\n        }\n    };\n    qu = ae([S(5, Yt.b), S(6, xu), S(7, ir.b), S(8, Wt.a), S(9, al.a)], qu), t = class extends class {\n        constructor(e, t, i, n, r = {}) {\n            const o = () => this.model;\n            n = n.map(e => new ch(e, o)), this.list = new dh(e, t, i, n, (n = o, r = r, Object.assign(Object.assign({}, r), {\n                accessibilityProvider: r.accessibilityProvider && new hh(n, r.accessibilityProvider)\n            })))\n        }\n        updateOptions(e) {\n            this.list.updateOptions(e)\n        }\n        getHTMLElement() {\n            return this.list.getHTMLElement()\n        }\n        get onDidFocus() {\n            return this.list.onDidFocus\n        }\n        get onDidDispose() {\n            return this.list.onDidDispose\n        }\n        get onMouseDblClick() {\n            return D.c.map(this.list.onMouseDblClick, ({\n                element: e,\n                index: t,\n                browserEvent: i\n            }) => ({\n                element: void 0 === e ? void 0 : this._model.get(e),\n                index: t,\n                browserEvent: i\n            }))\n        }\n        get onPointer() {\n            return D.c.map(this.list.onPointer, ({\n                element: e,\n                index: t,\n                browserEvent: i\n            }) => ({\n                element: void 0 === e ? void 0 : this._model.get(e),\n                index: t,\n                browserEvent: i\n            }))\n        }\n        get onDidChangeSelection() {\n            return D.c.map(this.list.onDidChangeSelection, ({\n                elements: e,\n                indexes: t,\n                browserEvent: i\n            }) => ({\n                elements: e.map(e => this._model.get(e)),\n                indexes: t,\n                browserEvent: i\n            }))\n        }\n        get model() {\n            return this._model\n        }\n        set model(e) {\n            this._model = e, this.list.splice(0, this.list.length, Object(ne.o)(e.length))\n        }\n        getFocus() {\n            return this.list.getFocus()\n        }\n        getSelection() {\n            return this.list.getSelection()\n        }\n        getSelectedElements() {\n            return this.getSelection().map(e => this.model.get(e))\n        }\n        style(e) {\n            this.list.style(e)\n        }\n        dispose() {\n            this.list.dispose()\n        }\n    } {\n        constructor(e, t, i, n, r, o, s, a, l, d) {\n            var c = void 0 !== r.horizontalScrolling ? r.horizontalScrolling : Boolean(l.getValue(Au)),\n                [h, d] = $u(r, l, d);\n            super(e, t, i, n, Object.assign(Object.assign(Object.assign({\n                keyboardSupport: !1\n            }, ac(a.getColorTheme(), cc)), h), {\n                horizontalScrolling: c\n            })), this.disposables = new v.b, this.disposables.add(d), this.contextKeyService = Tu(o, this), this.themeService = a, this.horizontalScrolling = r.horizontalScrolling, this.listSupportsMultiSelect = Lu.bindTo(this.contextKeyService), this.listSupportsMultiSelect.set(!1 !== r.multipleSelectionSupport);\n            Du.bindTo(this.contextKeyService).set(Boolean(r.selectionNavigation)), this._useAltAsMultipleSelectionModifier = Uu(l), this.disposables.add(this.contextKeyService), this.disposables.add(s.register(this)), r.overrideStyles && this.updateStyles(r.overrideStyles), r.overrideStyles && this.disposables.add(dc(this, a, r.overrideStyles)), this.disposables.add(l.onDidChange配置(e => {\n                e.affects配置(Mu) && (this._useAltAsMultipleSelectionModifier = Uu(l));\n                let t = {};\n                var i, n;\n                e.affects配置(Au) && void 0 === this.horizontalScrolling && (i = Boolean(l.getValue(Au)), t = Object.assign(Object.assign({}, t), {\n                    horizontalScrolling: i\n                })), e.affects配置(Vu) && (n = Boolean(l.getValue(Vu)), t = Object.assign(Object.assign({}, t), {\n                    smoothScrolling: n\n                })), e.affects配置(Wu) && (n = l.getValue(Wu), t = Object.assign(Object.assign({}, t), {\n                    mouseWheelScrollSensitivity: n\n                })), e.affects配置(zu) && (e = l.getValue(zu), t = Object.assign(Object.assign({}, t), {\n                    fastScrollSensitivity: e\n                })), 0 < Object.keys(t).length && this.updateOptions(t)\n            })), this.navigator = new Yu(this, Object.assign({\n                configurationService: l\n            }, r)), this.disposables.add(this.navigator)\n        }\n        updateOptions(e) {\n            super.updateOptions(e), e.overrideStyles && this.updateStyles(e.overrideStyles), void 0 !== e.multipleSelectionSupport && this.listSupportsMultiSelect.set(!!e.multipleSelectionSupport)\n        }\n        updateStyles(e) {\n            var t;\n            null !== (t = this._styler) && void 0 !== t && t.dispose(), this._styler = dc(this, this.themeService, e)\n        }\n        dispose() {\n            var e;\n            null !== (e = this._styler) && void 0 !== e && e.dispose(), this.disposables.dispose(), super.dispose()\n        }\n    }, t = ae([S(5, Yt.b), S(6, xu), S(7, ir.b), S(8, Wt.a), S(9, al.a)], t), x = class extends yh {\n        constructor(e, t, i, n, r, o, s, a, l, d, c) {\n            var h = void 0 !== o.horizontalScrolling ? o.horizontalScrolling : Boolean(d.getValue(Au)),\n                [u, c] = $u(o, d, c);\n            super(e, t, i, n, r, Object.assign(Object.assign(Object.assign({\n                keyboardSupport: !1\n            }, ac(l.getColorTheme(), cc)), u), {\n                horizontalScrolling: h\n            })), this.disposables = new v.b, this.disposables.add(c), this.contextKeyService = Tu(s, this), this.themeService = l, this.listSupportsMultiSelect = Lu.bindTo(this.contextKeyService), this.listSupportsMultiSelect.set(!1 !== o.multipleSelectionSupport);\n            Du.bindTo(this.contextKeyService).set(Boolean(o.selectionNavigation)), this.listHasSelectionOrFocus = Ou.bindTo(this.contextKeyService), this.listDoubleSelection = Eu.bindTo(this.contextKeyService), this.listMultiSelection = Nu.bindTo(this.contextKeyService), this.horizontalScrolling = o.horizontalScrolling, this._useAltAsMultipleSelectionModifier = Uu(d), this.disposables.add(this.contextKeyService), this.disposables.add(a.register(this)), o.overrideStyles && this.updateStyles(o.overrideStyles), this.disposables.add(this.onDidChangeSelection(() => {\n                const e = this.getSelection(),\n                    t = this.getFocus();\n                this.contextKeyService.bufferChangeEvents(() => {\n                    this.listHasSelectionOrFocus.set(0 < e.length || 0 < t.length), this.listMultiSelection.set(1 < e.length), this.listDoubleSelection.set(2 === e.length)\n                })\n            })), this.disposables.add(this.onDidChangeFocus(() => {\n                var e = this.getSelection(),\n                    t = this.getFocus();\n                this.listHasSelectionOrFocus.set(0 < e.length || 0 < t.length)\n            })), this.disposables.add(d.onDidChange配置(e => {\n                e.affects配置(Mu) && (this._useAltAsMultipleSelectionModifier = Uu(d));\n                let t = {};\n                var i, n;\n                e.affects配置(Au) && void 0 === this.horizontalScrolling && (i = Boolean(d.getValue(Au)), t = Object.assign(Object.assign({}, t), {\n                    horizontalScrolling: i\n                })), e.affects配置(Vu) && (n = Boolean(d.getValue(Vu)), t = Object.assign(Object.assign({}, t), {\n                    smoothScrolling: n\n                })), e.affects配置(Wu) && (n = d.getValue(Wu), t = Object.assign(Object.assign({}, t), {\n                    mouseWheelScrollSensitivity: n\n                })), e.affects配置(zu) && (e = d.getValue(zu), t = Object.assign(Object.assign({}, t), {\n                    fastScrollSensitivity: e\n                })), 0 < Object.keys(t).length && this.updateOptions(t)\n            })), this.navigator = new Zu(this, Object.assign({\n                configurationService: d\n            }, o)), this.disposables.add(this.navigator)\n        }\n        updateOptions(e) {\n            super.updateOptions(e), e.overrideStyles && this.updateStyles(e.overrideStyles), void 0 !== e.multipleSelectionSupport && this.listSupportsMultiSelect.set(!!e.multipleSelectionSupport)\n        }\n        updateStyles(e) {\n            var t;\n            null !== (t = this._styler) && void 0 !== t && t.dispose(), this._styler = dc(this, this.themeService, e)\n        }\n        dispose() {\n            var e;\n            null !== (e = this._styler) && void 0 !== e && e.dispose(), this.disposables.dispose(), super.dispose()\n        }\n    }, x = ae([S(6, Yt.b), S(7, xu), S(8, ir.b), S(9, Wt.a), S(10, al.a)], x);\n    class Gu extends v.a {\n        constructor(e, t) {\n            super(), this.widget = e, this._onDidOpen = this._register(new D.b), this.onDidOpen = this._onDidOpen.event, this._register(D.c.filter(this.widget.onDidChangeSelection, e => e.browserEvent instanceof KeyboardEvent)(e => this.onSelectionFromKeyboard(e))), this._register(this.widget.onPointer(e => this.onPointer(e.element, e.browserEvent))), this._register(this.widget.onMouseDblClick(e => this.onMouseDblClick(e.element, e.browserEvent))), \"boolean\" != typeof(null == t ? void 0 : t.openOnSingleClick) && null != t && t.configurationService ? (this.openOnSingleClick = \"doubleClick\" !== (null == t ? void 0 : t.configurationService.getValue(Pu)), this._register(null == t ? void 0 : t.configurationService.onDidChange配置(() => {\n                this.openOnSingleClick = \"doubleClick\" !== (null == t ? void 0 : t.configurationService.getValue(Pu))\n            }))) : this.openOnSingleClick = null === (e = null == t ? void 0 : t.openOnSingleClick) || void 0 === e || e\n        }\n        onSelectionFromKeyboard(e) {\n            var t, i;\n            1 === e.elements.length && (t = \"boolean\" != typeof(i = e.browserEvent).preserveFocus || i.preserveFocus, i = \"boolean\" == typeof i.pinned ? i.pinned : !t, this._open(this.getSelectedElement(), t, i, !1, e.browserEvent))\n        }\n        onPointer(e, t) {\n            var i, n;\n            this.openOnSingleClick && (2 === t.detail || (i = 1 === t.button, n = t.ctrlKey || t.metaKey || t.altKey, this._open(e, !0, i, n, t)))\n        }\n        onMouseDblClick(e, t) {\n            if (t) {\n                const n = t.target;\n                var i;\n                n.classList.contains(\"monaco-tl-twistie\") || n.classList.contains(\"monaco-icon-label\") && n.classList.contains(\"folder-icon\") && t.offsetX < 16 || (i = t.ctrlKey || t.metaKey || t.altKey, this._open(e, !1, !0, i, t))\n            }\n        }\n        _open(e, t, i, n, r) {\n            e && this._onDidOpen.fire({\n                editorOptions: {\n                    preserveFocus: t,\n                    pinned: i,\n                    revealIfVisible: !0\n                },\n                sideBySide: n,\n                element: e,\n                browserEvent: r\n            })\n        }\n    }\n    class Yu extends Gu {\n        constructor(e, t) {\n            super(e, t), this.widget = e\n        }\n        getSelectedElement() {\n            return this.widget.getSelectedElements()[0]\n        }\n    }\n    class Zu extends Gu {\n        constructor(e, t) {\n            super(e, t)\n        }\n        getSelectedElement() {\n            return this.widget.getSelectedElements()[0]\n        }\n    }\n    class Xu extends Gu {\n        constructor(e, t) {\n            super(e, t)\n        }\n        getSelectedElement() {\n            var e;\n            return null !== (e = this.widget.getSelection()[0]) && void 0 !== e ? e : void 0\n        }\n    }\n    var Qu;\n    t = class extends nu {\n        constructor(e, t, i, n, r, o, s, a, l, d, c) {\n            var {\n                options: h,\n                getAutomaticKeyboardNavigation: u,\n                disposable: d\n            } = Ju(t, r, o, l, d, c);\n            super(e, t, i, n, h), this.disposables.add(d), this.internals = new ep(this, r, u, r.overrideStyles, o, s, a, l, c), this.disposables.add(this.internals)\n        }\n        updateOptions(e) {\n            super.updateOptions(e), this.internals.updateOptions(e)\n        }\n    }, t = ae([S(5, Yt.b), S(6, xu), S(7, ir.b), S(8, Wt.a), S(9, al.a), S(10, Ks)], t), x = class extends ou {\n        constructor(e, t, i, n, r, o, s, a, l, d, c) {\n            var {\n                options: h,\n                getAutomaticKeyboardNavigation: u,\n                disposable: d\n            } = Ju(t, r, o, l, d, c);\n            super(e, t, i, n, h), this.disposables.add(d), this.internals = new ep(this, r, u, r.overrideStyles, o, s, a, l, c), this.disposables.add(this.internals)\n        }\n        updateOptions(e = {}) {\n            super.updateOptions(e), e.overrideStyles && this.internals.updateStyleOverrides(e.overrideStyles), this.internals.updateOptions(e)\n        }\n    }, x = ae([S(5, Yt.b), S(6, xu), S(7, ir.b), S(8, Wt.a), S(9, al.a), S(10, Ks)], x), t = class extends Cu {\n        constructor(e, t, i, n, r, o, s, a, l, d, c, h) {\n            var {\n                options: u,\n                getAutomaticKeyboardNavigation: p,\n                disposable: c\n            } = Ju(t, o, s, d, c, h);\n            super(e, t, i, n, r, u), this.disposables.add(c), this.internals = new ep(this, o, p, o.overrideStyles, s, a, l, d, h), this.disposables.add(this.internals)\n        }\n        updateOptions(e = {}) {\n            super.updateOptions(e), e.overrideStyles && this.internals.updateStyleOverrides(e.overrideStyles), this.internals.updateOptions(e)\n        }\n    }, t = ae([S(6, Yt.b), S(7, xu), S(8, ir.b), S(9, Wt.a), S(10, al.a), S(11, Ks)], t), x = class extends bu {\n        constructor(e, t, i, n, r, o, s, a, l, d, c, h) {\n            var {\n                options: u,\n                getAutomaticKeyboardNavigation: p,\n                disposable: c\n            } = Ju(t, o, s, d, c, h);\n            super(e, t, i, n, r, u), this.disposables.add(c), this.internals = new ep(this, o, p, o.overrideStyles, s, a, l, d, h), this.disposables.add(this.internals)\n        }\n        get onDidOpen() {\n            return this.internals.onDidOpen\n        }\n        updateOptions(e = {}) {\n            super.updateOptions(e), e.overrideStyles && this.internals.updateStyleOverrides(e.overrideStyles), this.internals.updateOptions(e)\n        }\n    }, x = ae([S(6, Yt.b), S(7, xu), S(8, ir.b), S(9, Wt.a), S(10, al.a), S(11, Ks)], x), t = class extends yu {\n        constructor(e, t, i, n, r, o, s, a, l, d, c, h, u) {\n            var {\n                options: p,\n                getAutomaticKeyboardNavigation: g,\n                disposable: h\n            } = Ju(t, s, a, c, h, u);\n            super(e, t, i, n, r, o, p), this.disposables.add(h), this.internals = new ep(this, s, g, s.overrideStyles, a, l, d, c, u), this.disposables.add(this.internals)\n        }\n        updateOptions(e) {\n            super.updateOptions(e), this.internals.updateOptions(e)\n        }\n    };\n\n    function Ju(e, t, i, n, r, o) {\n        var s = () => {\n                let e = Boolean(i.getContextKeyValue(Iu));\n                return e = e && Boolean(n.getValue(Fu)), e\n            },\n            a = o.isScreenReaderOptimized(),\n            l = t.simpleKeyboardNavigation || a ? \"simple\" : n.getValue(Ru),\n            d = void 0 !== t.horizontalScrolling ? t.horizontalScrolling : Boolean(n.getValue(Au)),\n            [c, o] = $u(t, n, r);\n        a = t.additionalScrollHeight;\n        return {\n            getAutomaticKeyboardNavigation: s,\n            disposable: o,\n            options: Object.assign(Object.assign({\n                keyboardSupport: !1\n            }, c), {\n                indent: \"number\" == typeof n.getValue(ju) ? n.getValue(ju) : void 0,\n                renderIndentGuides: n.getValue(Bu),\n                smoothScrolling: Boolean(n.getValue(Vu)),\n                automaticKeyboardNavigation: s(),\n                simpleKeyboardNavigation: \"simple\" === l,\n                filterOnType: \"filter\" === l,\n                horizontalScrolling: d,\n                keyboardNavigationEventFilter: function(e, t) {\n                    let i = !1;\n                    return n => i ? i = !1 : (n = t.softDispatch(n, e)) && n.enterChord ? !(i = !0) : !(i = !1)\n                }(e, r),\n                additionalScrollHeight: a,\n                hideTwistiesOfChildlessElements: t.hideTwistiesOfChildlessElements,\n                expandOnlyOnTwistieClick: null !== (t = t.expandOnlyOnTwistieClick) && void 0 !== t ? t : \"doubleClick\" === n.getValue(Hu)\n            })\n        }\n    }\n    t = ae([S(7, Yt.b), S(8, xu), S(9, ir.b), S(10, Wt.a), S(11, al.a), S(12, Ks)], t);\n    let ep = class {\n        constructor(e, t, i, n, r, o, s, a, l) {\n            this.tree = e, this.themeService = s, this.disposables = [], this.contextKeyService = Tu(r, e), this.listSupportsMultiSelect = Lu.bindTo(this.contextKeyService), this.listSupportsMultiSelect.set(!1 !== t.multipleSelectionSupport);\n            Du.bindTo(this.contextKeyService).set(Boolean(t.selectionNavigation)), this.hasSelectionOrFocus = Ou.bindTo(this.contextKeyService), this.hasDoubleSelection = Eu.bindTo(this.contextKeyService), this.hasMultiSelection = Nu.bindTo(this.contextKeyService), this._useAltAsMultipleSelectionModifier = Uu(a);\n            const d = new Set;\n            d.add(Iu);\n            const c = () => {\n                var t = l.isScreenReaderOptimized() ? \"simple\" : a.getValue(Ru);\n                e.updateOptions({\n                    simpleKeyboardNavigation: \"simple\" === t,\n                    filterOnType: \"filter\" === t\n                })\n            };\n            this.updateStyleOverrides(n), this.disposables.push(this.contextKeyService, o.register(e), e.onDidChangeSelection(() => {\n                const t = e.getSelection(),\n                    i = e.getFocus();\n                this.contextKeyService.bufferChangeEvents(() => {\n                    this.hasSelectionOrFocus.set(0 < t.length || 0 < i.length), this.hasMultiSelection.set(1 < t.length), this.hasDoubleSelection.set(2 === t.length)\n                })\n            }), e.onDidChangeFocus(() => {\n                var t = e.getSelection(),\n                    i = e.getFocus();\n                this.hasSelectionOrFocus.set(0 < t.length || 0 < i.length)\n            }), a.onDidChange配置(n => {\n                let r = {};\n                var o, s, l;\n                n.affects配置(Mu) && (this._useAltAsMultipleSelectionModifier = Uu(a)), n.affects配置(ju) && (o = a.getValue(ju), r = Object.assign(Object.assign({}, r), {\n                    indent: o\n                })), n.affects配置(Bu) && (s = a.getValue(Bu), r = Object.assign(Object.assign({}, r), {\n                    renderIndentGuides: s\n                })), n.affects配置(Vu) && (s = Boolean(a.getValue(Vu)), r = Object.assign(Object.assign({}, r), {\n                    smoothScrolling: s\n                })), n.affects配置(Ru) && c(), n.affects配置(Fu) && (r = Object.assign(Object.assign({}, r), {\n                    automaticKeyboardNavigation: i()\n                })), n.affects配置(Au) && void 0 === t.horizontalScrolling && (l = Boolean(a.getValue(Au)), r = Object.assign(Object.assign({}, r), {\n                    horizontalScrolling: l\n                })), n.affects配置(Hu) && void 0 === t.expandOnlyOnTwistieClick && (r = Object.assign(Object.assign({}, r), {\n                    expandOnlyOnTwistieClick: \"doubleClick\" === a.getValue(Hu)\n                })), n.affects配置(Wu) && (l = a.getValue(Wu), r = Object.assign(Object.assign({}, r), {\n                    mouseWheelScrollSensitivity: l\n                })), n.affects配置(zu) && (n = a.getValue(zu), r = Object.assign(Object.assign({}, r), {\n                    fastScrollSensitivity: n\n                })), 0 < Object.keys(r).length && e.updateOptions(r)\n            }), this.contextKeyService.onDidChangeContext(t => {\n                t.affectsSome(d) && e.updateOptions({\n                    automaticKeyboardNavigation: i()\n                })\n            }), l.onDidChangeScreenReaderOptimized(() => c())), this.navigator = new Xu(e, Object.assign({\n                configurationService: a\n            }, t)), this.disposables.push(this.navigator)\n        }\n        get onDidOpen() {\n            return this.navigator.onDidOpen\n        }\n        updateOptions(e) {\n            void 0 !== e.multipleSelectionSupport && this.listSupportsMultiSelect.set(!!e.multipleSelectionSupport)\n        }\n        updateStyleOverrides(e) {\n            Object(v.f)(this.styler), this.styler = e ? dc(this.tree, this.themeService, e) : v.a.None\n        }\n        dispose() {\n            this.disposables = Object(v.f)(this.disposables), Object(v.f)(this.styler), this.styler = void 0\n        }\n    };\n    ep = ae([S(4, Yt.b), S(5, xu), S(6, ir.b), S(7, Wt.a), S(8, Ks)], ep);\n    xt.a.as(Ct.a.配置).register配置({\n            id: \"workbench\",\n            order: 7,\n            title: Object(yt.a)(\"workbench配置Title\", \"Workbench\"),\n            type: \"object\",\n            properties: {\n                \"workbench.list.multiSelectModifier\": {\n                    type: \"string\",\n                    enum: [\"ctrlCmd\", \"alt\"],\n                    enumDescriptions: [Object(yt.a)(\"multiSelectModifier.ctrlCmd\", \"Maps to `Control` on Windows and Linux and to `Command` on macOS.\"), Object(yt.a)(\"multiSelectModifier.alt\", \"Maps to `Alt` on Windows and Linux and to `Option` on macOS.\")],\n                    default: \"ctrlCmd\",\n                    description: Object(yt.a)({\n                        key: \"multiSelectModifier\",\n                        comment: [\"- `ctrlCmd` refers to a value the setting can take and should not be localized.\", \"- `Control` and `Command` refer to the modifier keys Ctrl or Cmd on the keyboard and can be localized.\"]\n                    }, \"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.\")\n                },\n                \"workbench.list.openMode\": {\n                    type: \"string\",\n                    enum: [\"singleClick\", \"doubleClick\"],\n                    default: \"singleClick\",\n                    description: Object(yt.a)({\n                        key: \"openModeModifier\",\n                        comment: [\"`singleClick` and `doubleClick` refers to a value the setting can take and should not be localized.\"]\n                    }, \"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.\")\n                },\n                \"workbench.list.horizontalScrolling\": {\n                    type: \"boolean\",\n                    default: !1,\n                    description: Object(yt.a)(\"horizontalScrolling setting\", \"Controls whether lists and trees support horizontal scrolling in the workbench. Warning: turning on this setting has a performance implication.\")\n                },\n                \"workbench.tree.indent\": {\n                    type: \"number\",\n                    default: 8,\n                    minimum: 0,\n                    maximum: 40,\n                    description: Object(yt.a)(\"tree indent setting\", \"Controls tree indentation in pixels.\")\n                },\n                \"workbench.tree.renderIndentGuides\": {\n                    type: \"string\",\n                    enum: [\"none\", \"onHover\", \"always\"],\n                    default: \"onHover\",\n                    description: Object(yt.a)(\"render tree indent guides\", \"Controls whether the tree should render indent guides.\")\n                },\n                [Vu]: {\n                    type: \"boolean\",\n                    default: !1,\n                    description: Object(yt.a)(\"list smoothScrolling setting\", \"Controls whether lists and trees have smooth scrolling.\")\n                },\n                [Wu]: {\n                    type: \"number\",\n                    default: 1,\n                    description: Object(yt.a)(\"Mouse Wheel Scroll Sensitivity\", \"A multiplier to be used on the `deltaX` and `deltaY` of mouse wheel scroll events.\")\n                },\n                [zu]: {\n                    type: \"number\",\n                    default: 5,\n                    description: Object(yt.a)(\"Fast Scroll Sensitivity\", \"Scrolling speed multiplier when pressing `Alt`.\")\n                },\n                \"workbench.list.keyboardNavigation\": {\n                    type: \"string\",\n                    enum: [\"simple\", \"highlight\", \"filter\"],\n                    enumDescriptions: [Object(yt.a)(\"keyboardNavigationSettingKey.simple\", \"Simple keyboard navigation focuses elements which match the keyboard input. Matching is done only on prefixes.\"), Object(yt.a)(\"keyboardNavigationSettingKey.highlight\", \"Highlight keyboard navigation highlights elements which match the keyboard input. Further up and down navigation will traverse only the highlighted elements.\"), Object(yt.a)(\"keyboardNavigationSettingKey.filter\", \"Filter keyboard navigation will filter out and hide all the elements which do not match the keyboard input.\")],\n                    default: \"highlight\",\n                    description: Object(yt.a)(\"keyboardNavigationSettingKey\", \"Controls the keyboard navigation style for lists and trees in the workbench. Can be simple, highlight and filter.\")\n                },\n                \"workbench.list.automaticKeyboardNavigation\": {\n                    type: \"boolean\",\n                    default: !0,\n                    markdownDescription: Object(yt.a)(\"automatic keyboard navigation setting\", \"Controls whether keyboard navigation in lists and trees is automatically triggered simply by typing. If set to `false`, keyboard navigation is only triggered when executing the `list.toggleKeyboardNavigation` command, for which you can assign a keyboard shortcut.\")\n                },\n                \"workbench.tree.expandMode\": {\n                    type: \"string\",\n                    enum: [\"singleClick\", \"doubleClick\"],\n                    default: \"singleClick\",\n                    description: Object(yt.a)(\"expand mode\", \"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.\")\n                }\n            }\n        }), (x = Qu = Qu || {})[x.Hint = 1] = \"Hint\", x[x.Info = 2] = \"Info\", x[x.Warning = 4] = \"Warning\", x[x.Error = 8] = \"错误\",\n        function(e) {\n            e.compare = function(e, t) {\n                return t - e\n            };\n            const t = Object.create(null);\n            t[e.Error] = Object(yt.a)(\"sev.error\", \"错误\"), t[e.Warning] = Object(yt.a)(\"sev.warning\", \"Warning\"), t[e.Info] = Object(yt.a)(\"sev.info\", \"Info\"), e.toString = function(e) {\n                return t[e] || \"\"\n            }, e.fromSeverity = function(t) {\n                switch (t) {\n                    case mt.a.Error:\n                        return e.Error;\n                    case mt.a.Warning:\n                        return e.Warning;\n                    case mt.a.Info:\n                        return e.Info;\n                    case mt.a.Ignore:\n                        return e.Hint\n                }\n            }, e.toSeverity = function(t) {\n                switch (t) {\n                    case e.Error:\n                        return mt.a.Error;\n                    case e.Warning:\n                        return mt.a.Warning;\n                    case e.Info:\n                        return mt.a.Info;\n                    case e.Hint:\n                        return mt.a.Ignore\n                }\n            }\n        }(Qu = Qu || {}),\n        function(e) {\n            const t = \"\";\n\n            function i(e, i) {\n                let n = [t];\n                return e.source ? n.push(e.source.replace(\"¦\", \"\\\\¦\")) : n.push(t), e.code ? \"string\" == typeof e.code ? n.push(e.code.replace(\"¦\", \"\\\\¦\")) : n.push(e.code.value.replace(\"¦\", \"\\\\¦\")) : n.push(t), void 0 !== e.severity && null !== e.severity ? n.push(Qu.toString(e.severity)) : n.push(t), e.message && i ? n.push(e.message.replace(\"¦\", \"\\\\¦\")) : n.push(t), void 0 !== e.startLineNumber && null !== e.startLineNumber ? n.push(e.startLineNumber.toString()) : n.push(t), void 0 !== e.startColumn && null !== e.startColumn ? n.push(e.startColumn.toString()) : n.push(t), void 0 !== e.endLineNumber && null !== e.endLineNumber ? n.push(e.endLineNumber.toString()) : n.push(t), void 0 !== e.endColumn && null !== e.endColumn ? n.push(e.endColumn.toString()) : n.push(t), n.push(t), n.join(\"¦\")\n            }\n            e.makeKey = function(e) {\n                return i(e, !0)\n            }, e.makeKeyOptionalMessage = i\n        }({});\n    const tp = Object(_.c)(\"markerService\");\n    class ip {\n        constructor() {\n            this._byResource = new d.b, this._byOwner = new Map\n        }\n        set(e, t, i) {\n            let n = this._byResource.get(e);\n            n || (n = new Map, this._byResource.set(e, n)), n.set(t, i);\n            let r = this._byOwner.get(t);\n            r || (r = new d.b, this._byOwner.set(t, r)), r.set(e, i)\n        }\n        get(e, t) {\n            let i = this._byResource.get(e);\n            return null == i ? void 0 : i.get(t)\n        }\n        delete(e, t) {\n            let i = !1,\n                n = !1,\n                r = this._byResource.get(e);\n            r && (i = r.delete(t));\n            let o = this._byOwner.get(t);\n            if (o && (n = o.delete(e)), i !== n) throw new Error(\"illegal state\");\n            return i && n\n        }\n        values(e) {\n            var t;\n            return \"string\" == typeof e ? null !== (t = null === (t = this._byOwner.get(e)) || void 0 === t ? void 0 : t.values()) && void 0 !== t ? t : Sd.a.empty() : h.a.isUri(e) ? null !== (e = null === (e = this._byResource.get(e)) || void 0 === e ? void 0 : e.values()) && void 0 !== e ? e : Sd.a.empty() : Sd.a.map(Sd.a.concat(...this._byOwner.values()), e => e[1])\n        }\n    }\n    class np {\n        constructor(e) {\n            this.errors = 0, this.infos = 0, this.warnings = 0, this.unknowns = 0, this._data = new d.b, this._service = e, this._subscription = e.onMarkerChanged(this._update, this)\n        }\n        dispose() {\n            this._subscription.dispose()\n        }\n        _update(e) {\n            for (const i of e) {\n                var t = this._data.get(i);\n                t && this._substract(t), t = this._resourceStats(i), this._add(t), this._data.set(i, t)\n            }\n        }\n        _resourceStats(e) {\n            const t = {\n                errors: 0,\n                warnings: 0,\n                infos: 0,\n                unknowns: 0\n            };\n            if (e.scheme === g.c.inMemory || e.scheme === g.c.walkThrough || e.scheme === g.c.walkThroughSnippet) return t;\n            for (var {\n                    severity: i\n                } of this._service.read({\n                    resource: e\n                })) i === Qu.Error ? t.errors += 1 : i === Qu.Warning ? t.warnings += 1 : i === Qu.Info ? t.infos += 1 : t.unknowns += 1;\n            return t\n        }\n        _substract(e) {\n            this.errors -= e.errors, this.warnings -= e.warnings, this.infos -= e.infos, this.unknowns -= e.unknowns\n        }\n        _add(e) {\n            this.errors += e.errors, this.warnings += e.warnings, this.infos += e.infos, this.unknowns += e.unknowns\n        }\n    }\n    class rp {\n        constructor() {\n            this._onMarkerChanged = new D.a({\n                delay: 0,\n                merge: rp._merge\n            }), this.onMarkerChanged = this._onMarkerChanged.event, this._data = new ip, this._stats = new np(this)\n        }\n        dispose() {\n            this._stats.dispose(), this._onMarkerChanged.dispose()\n        }\n        remove(e, t) {\n            for (const i of t || []) this.changeOne(e, i, [])\n        }\n        changeOne(e, t, i) {\n            if (Object(ne.k)(i)) this._data.delete(t, e) && this._onMarkerChanged.fire([t]);\n            else {\n                const r = [];\n                for (const o of i) {\n                    var n = rp._toMarker(e, t, o);\n                    n && r.push(n)\n                }\n                this._data.set(t, e, r), this._onMarkerChanged.fire([t])\n            }\n        }\n        static _toMarker(e, t, i) {\n            let {\n                code: n,\n                severity: r,\n                message: o,\n                source: s,\n                startLineNumber: a,\n                startColumn: l,\n                endLineNumber: d,\n                endColumn: c,\n                relatedInformation: h,\n                tags: u\n            } = i;\n            if (o) return a = 0 < a ? a : 1, l = 0 < l ? l : 1, d = d >= a ? d : a, c = 0 < c ? c : l, {\n                resource: t,\n                owner: e,\n                code: n,\n                severity: r,\n                message: o,\n                source: s,\n                startLineNumber: a,\n                startColumn: l,\n                endLineNumber: d,\n                endColumn: c,\n                relatedInformation: h,\n                tags: u\n            }\n        }\n        read(e = Object.create(null)) {\n            let {\n                owner: t,\n                resource: i,\n                severities: n,\n                take: r\n            } = e;\n            if ((!r || r < 0) && (r = -1), t && i) {\n                if (e = this._data.get(i, t)) {\n                    const t = [];\n                    for (const i of e)\n                        if (rp._accept(i, n)) {\n                            var o = t.push(i);\n                            if (0 < r && o === r) break\n                        } return t\n                }\n                return []\n            }\n            if (t || i) {\n                const e = [];\n                for (const o of this._data.values(null != i ? i : t))\n                    for (const t of o)\n                        if (rp._accept(t, n)) {\n                            var s = e.push(t);\n                            if (0 < r && s === r) return e\n                        } return e\n            } {\n                const e = [];\n                for (var a of this._data.values())\n                    for (var l of a)\n                        if (rp._accept(l, n) && (l = e.push(l), 0 < r && l === r)) return e;\n                return e\n            }\n        }\n        static _accept(e, t) {\n            return void 0 === t || (t & e.severity) === e.severity\n        }\n        static _merge(e) {\n            const t = new d.b;\n            for (var i of e)\n                for (var n of i) t.set(n, !0);\n            return Array.from(t.keys())\n        }\n    }\n    var op = i(156);\n    t = function(e, t, i, n) {\n        var r, o = arguments.length,\n            s = o < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n);\n        else\n            for (var a = e.length - 1; 0 <= a; a--)(r = e[a]) && (s = (o < 3 ? r(s) : 3 < o ? r(t, i, s) : r(t, i)) || s);\n        return 3 < o && s && Object.defineProperty(t, i, s), s\n    }, ae = function(e, t) {\n        return function(i, n) {\n            t(i, n, e)\n        }\n    };\n    let sp = class {\n        constructor(e) {\n            this._commandService = e\n        }\n        createMenu(e, t, i) {\n            return new ap(e, Object.assign({\n                emitEventsForSubmenuChanges: !1,\n                eventDebounceDelay: 50\n            }, i), this._commandService, t, this)\n        }\n    };\n    sp = t([ae(0, m.b)], sp);\n    let ap = class e {\n        constructor(e, t, i, n, r) {\n            this._id = e, this._options = t, this._commandService = i, this._contextKeyService = n, this._menuService = r, this._disposables = new v.b, this._menuGroups = [], this._contextKeys = new Set, this._build();\n            const o = new q.e(() => {\n                this._build(), this._onDidChange.fire(this)\n            }, t.eventDebounceDelay);\n            this._disposables.add(o), this._disposables.add(sl.d.onDidChangeMenu(t => {\n                t.has(e) && o.schedule()\n            }));\n            const s = this._disposables.add(new v.b);\n            this._onDidChange = new D.b({\n                onFirstListenerAdd: () => {\n                    const e = new q.e(() => this._onDidChange.fire(this), t.eventDebounceDelay);\n                    s.add(e), s.add(n.onDidChangeContext(t => {\n                        t.affectsSome(this._contextKeys) && e.schedule()\n                    }))\n                },\n                onLastListenerRemove: s.clear.bind(s)\n            }), this.onDidChange = this._onDidChange.event\n        }\n        dispose() {\n            this._disposables.dispose(), this._onDidChange.dispose()\n        }\n        _build() {\n            this._menuGroups.length = 0, this._contextKeys.clear();\n            const t = sl.d.getMenuItems(this._id);\n            let i;\n            t.sort(e._compareMenuItems);\n            for (const e of t) {\n                var n = e.group || \"\";\n                i && i[0] === n || (i = [n, []], this._menuGroups.push(i)), i[1].push(e), this._collectContextKeys(e)\n            }\n        }\n        _collectContextKeys(t) {\n            var i;\n            e._fillInKbExprKeys(t.when, this._contextKeys), Object(sl.f)(t) ? (t.command.precondition && e._fillInKbExprKeys(t.command.precondition, this._contextKeys), t.command.toggled && (i = t.command.toggled.condition || t.command.toggled, e._fillInKbExprKeys(i, this._contextKeys))) : this._options.emitEventsForSubmenuChanges && sl.d.getMenuItems(t.submenu).forEach(this._collectContextKeys, this)\n        }\n        getActions(e) {\n            const t = [];\n            for (var i of this._menuGroups) {\n                var n, [r, i] = i;\n                const o = [];\n                for (const t of i) this._contextKeyService.contextMatchesRules(t.when) && (n = Object(sl.f)(t) ? new sl.c(t.command, t.alt, e, this._contextKeyService, this._commandService) : new sl.e(t, this._menuService, this._contextKeyService, e), o.push(n));\n                0 < o.length && t.push([r, o])\n            }\n            return t\n        }\n        static _fillInKbExprKeys(e, t) {\n            if (e)\n                for (var i of e.keys()) t.add(i)\n        }\n        static _compareMenuItems(t, i) {\n            let n = t.group;\n            var r = i.group;\n            if (n !== r) {\n                if (!n) return 1;\n                if (!r) return -1;\n                if (\"navigation\" === n) return -1;\n                if (\"navigation\" === r) return 1;\n                var o = n.localeCompare(r);\n                if (0 !== o) return o\n            }\n            return (r = t.order || 0) < (o = i.order || 0) ? -1 : o < r ? 1 : e._compareTitles((Object(sl.f)(t) ? t.command : t).title, (Object(sl.f)(i) ? i.command : i).title)\n        }\n        static _compareTitles(e, t) {\n            const i = \"string\" == typeof e ? e : e.original;\n            return t = \"string\" == typeof t ? t : t.original, i.localeCompare(t)\n        }\n    };\n    ap = t([ae(2, m.b), ae(3, Yt.b), ae(4, sl.a)], ap), S = function(e, t, i, n) {\n        var r, o = arguments.length,\n            s = o < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n);\n        else\n            for (var a = e.length - 1; 0 <= a; a--)(r = e[a]) && (s = (o < 3 ? r(s) : 3 < o ? r(t, i, s) : r(t, i)) || s);\n        return 3 < o && s && Object.defineProperty(t, i, s), s\n    }, x = function(e, t) {\n        return function(i, n) {\n            t(i, n, e)\n        }\n    };\n    class lp extends v.a {\n        constructor(e) {\n            super(), this.model = e, this._markersData = new Map, this._register(Object(v.i)(() => {\n                this.model.deltaDecorations([...this._markersData.keys()], []), this._markersData.clear()\n            }))\n        }\n        update(e, t) {\n            var i = [...this._markersData.keys()];\n            this._markersData.clear();\n            var n = this.model.deltaDecorations(i, t);\n            for (let t = 0; t < n.length; t++) this._markersData.set(n[t], e[t]);\n            return 0 !== i.length || 0 !== n.length\n        }\n        getMarker(e) {\n            return this._markersData.get(e.id)\n        }\n    }\n    let dp = class extends v.a {\n        constructor(e, t) {\n            super(), this._markerService = t, this._onDidChangeMarker = this._register(new D.b), this._markerDecorations = new d.b, e.getModels().forEach(e => this._onModelAdded(e)), this._register(e.onModelAdded(this._onModelAdded, this)), this._register(e.onModelRemoved(this._onModelRemoved, this)), this._register(this._markerService.onMarkerChanged(this._handleMarkerChange, this))\n        }\n        dispose() {\n            super.dispose(), this._markerDecorations.forEach(e => e.dispose()), this._markerDecorations.clear()\n        }\n        getMarker(e, t) {\n            const i = this._markerDecorations.get(e);\n            return i && i.getMarker(t) || null\n        }\n        _handleMarkerChange(e) {\n            e.forEach(e => {\n                (e = this._markerDecorations.get(e)) && this._updateDecorations(e)\n            })\n        }\n        _onModelAdded(e) {\n            var t = new lp(e);\n            this._markerDecorations.set(e.uri, t), this._updateDecorations(t)\n        }\n        _onModelRemoved(e) {\n            const t = this._markerDecorations.get(e.uri);\n            t && (t.dispose(), this._markerDecorations.delete(e.uri)), e.uri.scheme !== g.c.inMemory && e.uri.scheme !== g.c.internal && e.uri.scheme !== g.c.vscode || this._markerService && this._markerService.read({\n                resource: e.uri\n            }).map(e => e.owner).forEach(t => this._markerService.remove(t, [e.uri]))\n        }\n        _updateDecorations(e) {\n            const t = this._markerService.read({\n                resource: e.model.uri,\n                take: 500\n            });\n            var i = t.map(t => ({\n                range: this._createDecorationRange(e.model, t),\n                options: this._createDecorationOption(t)\n            }));\n            e.update(t, i) && this._onDidChangeMarker.fire(e.model)\n        }\n        _createDecorationRange(e, t) {\n            let i = T.a.lift(t);\n            return t.severity !== Qu.Hint || this._hasMarkerTag(t, 1) || this._hasMarkerTag(t, 2) || (i = i.setEndPosition(i.startLineNumber, i.startColumn + 2)), e.validateRange(i)\n        }\n        _createDecorationOption(e) {\n            let t, i, n, r = void 0,\n                o = void 0;\n            switch (e.severity) {\n                case Qu.Hint:\n                    t = this._hasMarkerTag(e, 2) ? void 0 : this._hasMarkerTag(e, 1) ? \"squiggly-unnecessary\" : \"squiggly-hint\", i = 0;\n                    break;\n                case Qu.Warning:\n                    t = \"squiggly-warning\", r = Object(ir.g)(tr.I), i = 20, n = {\n                        color: Object(ir.g)(Ir.Sb),\n                        position: W.f.Inline\n                    };\n                    break;\n                case Qu.Info:\n                    t = \"squiggly-info\", r = Object(ir.g)(tr.H), i = 10;\n                    break;\n                default:\n                    Qu.Error, t = \"squiggly-error\", r = Object(ir.g)(tr.G), i = 30, n = {\n                        color: Object(ir.g)(Ir.Lb),\n                        position: W.f.Inline\n                    }\n            }\n            return e.tags && (-1 !== e.tags.indexOf(1) && (o = \"squiggly-inline-unnecessary\"), -1 !== e.tags.indexOf(2) && (o = \"squiggly-inline-deprecated\")), {\n                description: \"marker-decoration\",\n                stickiness: 1,\n                className: t,\n                showIfCollapsed: !0,\n                overviewRuler: {\n                    color: r,\n                    position: W.g.Right\n                },\n                minimap: n,\n                zIndex: i,\n                inlineClassName: o\n            }\n        }\n        _hasMarkerTag(e, t) {\n            return !!e.tags && 0 <= e.tags.indexOf(t)\n        }\n    };\n    dp = S([x(0, ee.a), x(1, tp)], dp), t = function(e, t, i, n) {\n        var r, o = arguments.length,\n            s = o < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n);\n        else\n            for (var a = e.length - 1; 0 <= a; a--)(r = e[a]) && (s = (o < 3 ? r(s) : 3 < o ? r(t, i, s) : r(t, i)) || s);\n        return 3 < o && s && Object.defineProperty(t, i, s), s\n    }, ae = function(e, t) {\n        return function(i, n) {\n            t(i, n, e)\n        }\n    };\n    let cp = class extends v.a {\n        constructor(e, t) {\n            super(), this._contextKeyService = e, this._configurationService = t, this._accessibilitySupport = 0, this._onDidChangeScreenReaderOptimized = new D.b, this._accessibilityModeEnabledContext = $s.bindTo(this._contextKeyService);\n            const i = () => this._accessibilityModeEnabledContext.set(this.isScreenReaderOptimized());\n            this._register(this._configurationService.onDidChange配置(e => {\n                e.affects配置(\"editor.accessibilitySupport\") && (i(), this._onDidChangeScreenReaderOptimized.fire())\n            })), i(), this.onDidChangeScreenReaderOptimized(() => i())\n        }\n        get onDidChangeScreenReaderOptimized() {\n            return this._onDidChangeScreenReaderOptimized.event\n        }\n        isScreenReaderOptimized() {\n            var e = this._configurationService.getValue(\"editor.accessibilitySupport\");\n            return \"on\" === e || \"auto\" === e && 2 === this._accessibilitySupport\n        }\n        getAccessibilitySupport() {\n            return this._accessibilitySupport\n        }\n    };\n    cp = t([ae(0, Yt.b), ae(1, Wt.a)], cp);\n    var hp = function(e, t, i, n) {\n        return new(i = i || Promise)((function(r, o) {\n            function s(e) {\n                try {\n                    l(n.next(e))\n                } catch (e) {\n                    o(e)\n                }\n            }\n\n            function a(e) {\n                try {\n                    l(n.throw(e))\n                } catch (e) {\n                    o(e)\n                }\n            }\n\n            function l(e) {\n                var t;\n                e.done ? r(e.value) : ((t = e.value) instanceof i ? t : new i((function(e) {\n                    e(t)\n                }))).then(s, a)\n            }\n            l((n = n.apply(e, t || [])).next())\n        }))\n    };\n    class up {\n        constructor() {\n            this.mapTextToType = new Map, this.findText = \"\"\n        }\n        writeText(e, t) {\n            return hp(this, void 0, void 0, (function*() {\n                if (t) this.mapTextToType.set(t, e);\n                else {\n                    try {\n                        return yield navigator.clipboard.writeText(e)\n                    } catch (e) {\n                        console.error(e)\n                    }\n                    const t = document.activeElement,\n                        i = document.body.appendChild(Object(s.a)(\"textarea\", {\n                            \"aria-hidden\": !0\n                        }));\n                    i.style.height = \"1px\", i.style.width = \"1px\", i.style.position = \"absolute\", i.value = e, i.focus(), i.select(), document.execCommand(\"copy\"), t instanceof HTMLElement && t.focus(), document.body.removeChild(i)\n                }\n            }))\n        }\n        readText(e) {\n            return hp(this, void 0, void 0, (function*() {\n                if (e) return this.mapTextToType.get(e) || \"\";\n                try {\n                    return yield navigator.clipboard.readText()\n                } catch (e) {\n                    return console.error(e), \"\"\n                }\n            }))\n        }\n        readFindText() {\n            return hp(this, void 0, void 0, (function*() {\n                return this.findText\n            }))\n        }\n        writeFindText(e) {\n            return hp(this, void 0, void 0, (function*() {\n                this.findText = e\n            }))\n        }\n    }\n    S = function(e, t, i, n) {\n        var r, o = arguments.length,\n            s = o < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n);\n        else\n            for (var a = e.length - 1; 0 <= a; a--)(r = e[a]) && (s = (o < 3 ? r(s) : 3 < o ? r(t, i, s) : r(t, i)) || s);\n        return 3 < o && s && Object.defineProperty(t, i, s), s\n    }, x = function(e, t) {\n        return function(i, n) {\n            t(i, n, e)\n        }\n    };\n    var pp = function(e, t, i, n) {\n        return new(i = i || Promise)((function(r, o) {\n            function s(e) {\n                try {\n                    l(n.next(e))\n                } catch (e) {\n                    o(e)\n                }\n            }\n\n            function a(e) {\n                try {\n                    l(n.throw(e))\n                } catch (e) {\n                    o(e)\n                }\n            }\n\n            function l(e) {\n                var t;\n                e.done ? r(e.value) : ((t = e.value) instanceof i ? t : new i((function(e) {\n                    e(t)\n                }))).then(s, a)\n            }\n            l((n = n.apply(e, t || [])).next())\n        }))\n    };\n\n    function gp(e) {\n        return e.scheme === g.c.file ? e.fsPath : e.path\n    }\n    let fp = 0;\n    class mp {\n        constructor(e, t, i, n, r, o, s) {\n            this.id = ++fp, this.type = 0, this.actual = e, this.label = e.label, this.confirmBeforeUndo = e.confirmBeforeUndo || !1, this.resourceLabel = t, this.strResource = i, this.resourceLabels = [this.resourceLabel], this.strResources = [this.strResource], this.groupId = n, this.groupOrder = r, this.sourceId = o, this.sourceOrder = s, this.isValid = !0\n        }\n        setValid(e) {\n            this.isValid = e\n        }\n        toString() {\n            return `[id:${this.id}] [group:${this.groupId}] [${this.isValid?\"  VALID\":\"INVALID\"}] ${this.actual.constructor.name} - ${this.actual}`\n        }\n    }\n    class vp {\n        constructor(e, t) {\n            this.resourceLabel = e, this.reason = t\n        }\n    }\n    class bp {\n        constructor() {\n            this.elements = new Map\n        }\n        createMessage() {\n            const e = [],\n                t = [];\n            for (var [, i] of this.elements) {\n                (0 === i.reason ? e : t).push(i.resourceLabel)\n            }\n            let n = [];\n            return 0 < e.length && n.push(yt.a({\n                key: \"externalRemoval\",\n                comment: [\"{0} is a list of filenames\"]\n            }, \"The following files have been closed and modified on disk: {0}.\", e.join(\", \"))), 0 < t.length && n.push(yt.a({\n                key: \"noParallelUniverses\",\n                comment: [\"{0} is a list of filenames\"]\n            }, \"The following files have been modified in an incompatible way: {0}.\", t.join(\", \"))), n.join(\"\\n\")\n        }\n        get size() {\n            return this.elements.size\n        }\n        has(e) {\n            return this.elements.has(e)\n        }\n        set(e, t) {\n            this.elements.set(e, t)\n        }\n        delete(e) {\n            return this.elements.delete(e)\n        }\n    }\n    class _p {\n        constructor(e, t, i, n, r, o, s) {\n            this.id = ++fp, this.type = 1, this.actual = e, this.label = e.label, this.confirmBeforeUndo = e.confirmBeforeUndo || !1, this.resourceLabels = t, this.strResources = i, this.groupId = n, this.groupOrder = r, this.sourceId = o, this.sourceOrder = s, this.removedResources = null, this.invalidatedResources = null\n        }\n        canSplit() {\n            return \"function\" == typeof this.actual.split\n        }\n        removeResource(e, t, i) {\n            this.removedResources || (this.removedResources = new bp), this.removedResources.has(t) || this.removedResources.set(t, new vp(e, i))\n        }\n        setValid(e, t, i) {\n            i ? this.invalidatedResources && (this.invalidatedResources.delete(t), 0 === this.invalidatedResources.size && (this.invalidatedResources = null)) : (this.invalidatedResources || (this.invalidatedResources = new bp), this.invalidatedResources.has(t) || this.invalidatedResources.set(t, new vp(e, 0)))\n        }\n        toString() {\n            return `[id:${this.id}] [group:${this.groupId}] [${this.invalidatedResources?\"INVALID\":\"  VALID\"}] ${this.actual.constructor.name} - ${this.actual}`\n        }\n    }\n    class wp {\n        constructor(e, t) {\n            this.resourceLabel = e, this.strResource = t, this._past = [], this._future = [], this.locked = !1, this.versionId = 1\n        }\n        dispose() {\n            for (const e of this._past) 1 === e.type && e.removeResource(this.resourceLabel, this.strResource, 0);\n            for (const e of this._future) 1 === e.type && e.removeResource(this.resourceLabel, this.strResource, 0);\n            this.versionId++\n        }\n        toString() {\n            let e = [];\n            e.push(`* ${this.strResource}:`);\n            for (let t = 0; t < this._past.length; t++) e.push(\"   * [UNDO] \" + this._past[t]);\n            for (let t = this._future.length - 1; 0 <= t; t--) e.push(\"   * [REDO] \" + this._future[t]);\n            return e.join(\"\\n\")\n        }\n        flushAllElements() {\n            this._past = [], this._future = [], this.versionId++\n        }\n        _setElementValidFlag(e, t) {\n            1 === e.type ? e.setValid(this.resourceLabel, this.strResource, t) : e.setValid(t)\n        }\n        setElementsValidFlag(e, t) {\n            for (const i of this._past) t(i.actual) && this._setElementValidFlag(i, e);\n            for (const i of this._future) t(i.actual) && this._setElementValidFlag(i, e)\n        }\n        pushElement(e) {\n            for (const e of this._future) 1 === e.type && e.removeResource(this.resourceLabel, this.strResource, 1);\n            this._future = [], this._past.push(e), this.versionId++\n        }\n        createSnapshot(e) {\n            const t = [];\n            for (let e = 0, i = this._past.length; e < i; e++) t.push(this._past[e].id);\n            for (let e = this._future.length - 1; 0 <= e; e--) t.push(this._future[e].id);\n            return new Nl.b(e, t)\n        }\n        restoreSnapshot(e) {\n            var t = e.elements.length;\n            let i = !0,\n                n = 0,\n                r = -1;\n            for (let o = 0, s = this._past.length; o < s; o++, n++) {\n                const s = this._past[o];\n                i && (n >= t || s.id !== e.elements[n]) && (i = !1, r = 0), i || 1 !== s.type || s.removeResource(this.resourceLabel, this.strResource, 0)\n            }\n            let o = -1;\n            for (let r = this._future.length - 1; 0 <= r; r--, n++) {\n                const s = this._future[r];\n                i && (n >= t || s.id !== e.elements[n]) && (i = !1, o = r), i || 1 !== s.type || s.removeResource(this.resourceLabel, this.strResource, 0)\n            } - 1 !== r && (this._past = this._past.slice(0, r)), -1 !== o && (this._future = this._future.slice(o + 1)), this.versionId++\n        }\n        getElements() {\n            const e = [],\n                t = [];\n            for (const t of this._past) e.push(t.actual);\n            for (const e of this._future) t.push(e.actual);\n            return {\n                past: e,\n                future: t\n            }\n        }\n        getClosestPastElement() {\n            return 0 === this._past.length ? null : this._past[this._past.length - 1]\n        }\n        getSecondClosestPastElement() {\n            return this._past.length < 2 ? null : this._past[this._past.length - 2]\n        }\n        getClosestFutureElement() {\n            return 0 === this._future.length ? null : this._future[this._future.length - 1]\n        }\n        hasPastElements() {\n            return 0 < this._past.length\n        }\n        hasFutureElements() {\n            return 0 < this._future.length\n        }\n        splitPastWorkspaceElement(e, t) {\n            for (let i = this._past.length - 1; 0 <= i; i--)\n                if (this._past[i] === e) {\n                    t.has(this.strResource) ? this._past[i] = t.get(this.strResource) : this._past.splice(i, 1);\n                    break\n                } this.versionId++\n        }\n        splitFutureWorkspaceElement(e, t) {\n            for (let i = this._future.length - 1; 0 <= i; i--)\n                if (this._future[i] === e) {\n                    t.has(this.strResource) ? this._future[i] = t.get(this.strResource) : this._future.splice(i, 1);\n                    break\n                } this.versionId++\n        }\n        moveBackward(e) {\n            this._past.pop(), this._future.push(e), this.versionId++\n        }\n        moveForward(e) {\n            this._future.pop(), this._past.push(e), this.versionId++\n        }\n    }\n    class yp {\n        constructor(e) {\n            this.editStacks = e, this._versionIds = [];\n            for (let e = 0, t = this.editStacks.length; e < t; e++) this._versionIds[e] = this.editStacks[e].versionId\n        }\n        isValid() {\n            for (let e = 0, t = this.editStacks.length; e < t; e++)\n                if (this._versionIds[e] !== this.editStacks[e].versionId) return !1;\n            return !0\n        }\n    }\n    const Cp = new wp(\"\", \"\");\n    Cp.locked = !0;\n    let xp = class {\n        constructor(e, t) {\n            this._dialogService = e, this._notificationService = t, this._editStacks = new Map, this._uriComparisonKeyComputers = []\n        }\n        getUriComparisonKey(e) {\n            for (const t of this._uriComparisonKeyComputers)\n                if (t[0] === e.scheme) return t[1].getComparisonKey(e);\n            return e.toString()\n        }\n        _print(e) {\n            console.log(\"------------------------------------\"), console.log(`AFTER ${e}: `);\n            let t = [];\n            for (const e of this._editStacks) t.push(e[1].toString());\n            console.log(t.join(\"\\n\"))\n        }\n        pushElement(e, t = Nl.c.None, i = Nl.d.None) {\n            if (0 === e.type) {\n                var n = gp(e.resource),\n                    r = this.getUriComparisonKey(e.resource);\n                this._pushElement(new mp(e, n, r, t.id, t.nextOrder(), i.id, i.nextOrder()))\n            } else {\n                const n = new Set,\n                    r = [],\n                    a = [];\n                for (const t of e.resources) {\n                    var o = gp(t),\n                        s = this.getUriComparisonKey(t);\n                    n.has(s) || (n.add(s), r.push(o), a.push(s))\n                }\n                1 === r.length ? this._pushElement(new mp(e, r[0], a[0], t.id, t.nextOrder(), i.id, i.nextOrder())) : this._pushElement(new _p(e, r, a, t.id, t.nextOrder(), i.id, i.nextOrder()))\n            }\n        }\n        _pushElement(e) {\n            for (let n = 0, r = e.strResources.length; n < r; n++) {\n                var t = e.resourceLabels[n],\n                    i = e.strResources[n];\n                let r;\n                this._editStacks.has(i) ? r = this._editStacks.get(i) : (r = new wp(t, i), this._editStacks.set(i, r)), r.pushElement(e)\n            }\n        }\n        getLastElement(e) {\n            if (e = this.getUriComparisonKey(e), this._editStacks.has(e)) {\n                const t = this._editStacks.get(e);\n                return t.hasFutureElements() ? null : (e = t.getClosestPastElement()) ? e.actual : null\n            }\n            return null\n        }\n        _splitPastWorkspaceElement(e, t) {\n            var i = e.actual.split();\n            const n = new Map;\n            for (const e of i) {\n                var r = gp(e.resource),\n                    o = this.getUriComparisonKey(e.resource);\n                o = new mp(e, r, o, 0, 0, 0, 0);\n                n.set(o.strResource, o)\n            }\n            for (const i of e.strResources)\n                if (!t || !t.has(i)) {\n                    this._editStacks.get(i).splitPastWorkspaceElement(e, n)\n                }\n        }\n        _splitFutureWorkspaceElement(e, t) {\n            var i = e.actual.split();\n            const n = new Map;\n            for (const e of i) {\n                var r = gp(e.resource),\n                    o = this.getUriComparisonKey(e.resource);\n                o = new mp(e, r, o, 0, 0, 0, 0);\n                n.set(o.strResource, o)\n            }\n            for (const i of e.strResources)\n                if (!t || !t.has(i)) {\n                    this._editStacks.get(i).splitFutureWorkspaceElement(e, n)\n                }\n        }\n        removeElements(e) {\n            if (e = \"string\" == typeof e ? e : this.getUriComparisonKey(e), this._editStacks.has(e)) {\n                this._editStacks.get(e).dispose(), this._editStacks.delete(e)\n            }\n        }\n        setElementsValidFlag(e, t, i) {\n            if (e = this.getUriComparisonKey(e), this._editStacks.has(e)) {\n                this._editStacks.get(e).setElementsValidFlag(t, i)\n            }\n        }\n        createSnapshot(e) {\n            var t = this.getUriComparisonKey(e);\n            if (this._editStacks.has(t)) {\n                return this._editStacks.get(t).createSnapshot(e)\n            }\n            return new Nl.b(e, [])\n        }\n        restoreSnapshot(e) {\n            var t = this.getUriComparisonKey(e.resource);\n            if (this._editStacks.has(t)) {\n                const i = this._editStacks.get(t);\n                i.restoreSnapshot(e), i.hasPastElements() || i.hasFutureElements() || (i.dispose(), this._editStacks.delete(t))\n            }\n        }\n        getElements(e) {\n            if (e = this.getUriComparisonKey(e), this._editStacks.has(e)) {\n                return this._editStacks.get(e).getElements()\n            }\n            return {\n                past: [],\n                future: []\n            }\n        }\n        _findClosestUndoElementWithSource(e) {\n            if (!e) return [null, null];\n            let t = null,\n                i = null;\n            for (var [n, r] of this._editStacks)(r = r.getClosestPastElement()) && r.sourceId === e && (!t || r.sourceOrder > t.sourceOrder) && (t = r, i = n);\n            return [t, i]\n        }\n        canUndo(e) {\n            if (e instanceof Nl.d) {\n                var [, t] = this._findClosestUndoElementWithSource(e.id);\n                return !!t\n            }\n            if (e = this.getUriComparisonKey(e), this._editStacks.has(e)) {\n                return this._editStacks.get(e).hasPastElements()\n            }\n            return !1\n        }\n        _onError(e, t) {\n            Object(se.f)(e);\n            for (const e of t.strResources) this.removeElements(e);\n            this._notificationService.error(e)\n        }\n        _acquireLocks(e) {\n            for (const t of e.editStacks)\n                if (t.locked) throw new Error(\"Cannot acquire edit stack lock\");\n            for (const t of e.editStacks) t.locked = !0;\n            return () => {\n                for (const t of e.editStacks) t.locked = !1\n            }\n        }\n        _safeInvokeWithLocks(e, t, i, n, r) {\n            const o = this._acquireLocks(i);\n            let s;\n            try {\n                s = t()\n            } catch (t) {\n                return o(), n.dispose(), this._onError(t, e)\n            }\n            return s ? s.then(() => (o(), n.dispose(), r()), t => (o(), n.dispose(), this._onError(t, e))) : (o(), n.dispose(), r())\n        }\n        _invokeWorkspacePrepare(e) {\n            return pp(this, void 0, void 0, (function*() {\n                if (void 0 === e.actual.prepareUndoRedo) return v.a.None;\n                var t = e.actual.prepareUndoRedo();\n                return void 0 === t ? v.a.None : t\n            }))\n        }\n        _invokeResourcePrepare(e, t) {\n            if (1 !== e.actual.type || void 0 === e.actual.prepareUndoRedo) return t(v.a.None);\n            const i = e.actual.prepareUndoRedo();\n            return i ? Object(v.g)(i) ? t(i) : i.then(e => t(e)) : t(v.a.None)\n        }\n        _getAffectedEditStacks(e) {\n            const t = [];\n            for (const i of e.strResources) t.push(this._editStacks.get(i) || Cp);\n            return new yp(t)\n        }\n        _tryToSplitAndUndo(e, t, i, n) {\n            if (t.canSplit()) return this._splitPastWorkspaceElement(t, i), this._notificationService.warn(n), new Sp(this._undo(e, 0, !0));\n            for (const e of t.strResources) this.removeElements(e);\n            return this._notificationService.warn(n), new Sp\n        }\n        _checkWorkspaceUndo(e, t, i, n) {\n            if (t.removedResources) return this._tryToSplitAndUndo(e, t, t.removedResources, yt.a({\n                key: \"cannotWorkspaceUndo\",\n                comment: [\"{0} is a label for an operation. {1} is another message.\"]\n            }, \"Could not undo '{0}' across all files. {1}\", t.label, t.removedResources.createMessage()));\n            if (n && t.invalidatedResources) return this._tryToSplitAndUndo(e, t, t.invalidatedResources, yt.a({\n                key: \"cannotWorkspaceUndo\",\n                comment: [\"{0} is a label for an operation. {1} is another message.\"]\n            }, \"Could not undo '{0}' across all files. {1}\", t.label, t.invalidatedResources.createMessage()));\n            const r = [];\n            for (const e of i.editStacks) e.getClosestPastElement() !== t && r.push(e.resourceLabel);\n            if (0 < r.length) return this._tryToSplitAndUndo(e, t, null, yt.a({\n                key: \"cannotWorkspaceUndoDueToChanges\",\n                comment: [\"{0} is a label for an operation. {1} is a list of filenames.\"]\n            }, \"Could not undo '{0}' across all files because changes were made to {1}\", t.label, r.join(\", \")));\n            const o = [];\n            for (const e of i.editStacks) e.locked && o.push(e.resourceLabel);\n            return 0 < o.length ? this._tryToSplitAndUndo(e, t, null, yt.a({\n                key: \"cannotWorkspaceUndoDueToInProgressUndoRedo\",\n                comment: [\"{0} is a label for an operation. {1} is a list of filenames.\"]\n            }, \"Could not undo '{0}' across all files because there is already an undo or redo operation running on {1}\", t.label, o.join(\", \"))) : i.isValid() ? null : this._tryToSplitAndUndo(e, t, null, yt.a({\n                key: \"cannotWorkspaceUndoDueToInMeantimeUndoRedo\",\n                comment: [\"{0} is a label for an operation. {1} is a list of filenames.\"]\n            }, \"Could not undo '{0}' across all files because an undo or redo operation occurred in the meantime\", t.label))\n        }\n        _workspaceUndo(e, t, i) {\n            var n = this._getAffectedEditStacks(t),\n                r = this._checkWorkspaceUndo(e, t, n, !1);\n            return r ? r.returnValue : this._confirmAndExecuteWorkspaceUndo(e, t, n, i)\n        }\n        _isPartOfUndoGroup(e) {\n            if (!e.groupId) return !1;\n            for (var [, t] of this._editStacks) {\n                var i = t.getClosestPastElement();\n                if (i) {\n                    if (i === e && (t = t.getSecondClosestPastElement()) && t.groupId === e.groupId) return !0;\n                    if (i.groupId === e.groupId) return !0\n                }\n            }\n            return !1\n        }\n        _confirmAndExecuteWorkspaceUndo(e, t, i, n) {\n            return pp(this, void 0, void 0, (function*() {\n                if (t.canSplit() && !this._isPartOfUndoGroup(t)) {\n                    var r = yield this._dialogService.show(mt.a.Info, yt.a(\"confirmWorkspace\", \"Would you like to undo '{0}' across all files?\", t.label), [yt.a({\n                        key: \"ok\",\n                        comment: [\"{0} denotes a number that is > 1\"]\n                    }, \"Undo in {0} Files\", i.editStacks.length), yt.a(\"nok\", \"Undo this File\"), yt.a(\"cancel\", \"取消\")], {\n                        cancelId: 2\n                    });\n                    if (2 === r.choice) return;\n                    if (1 === r.choice) return this._splitPastWorkspaceElement(t, null), this._undo(e, 0, !0);\n                    if (r = this._checkWorkspaceUndo(e, t, i, !1)) return r.returnValue;\n                    n = !0\n                }\n                let o;\n                try {\n                    o = yield this._invokeWorkspacePrepare(t)\n                } catch (r) {\n                    return this._onError(r, t)\n                }\n                if (r = this._checkWorkspaceUndo(e, t, i, !0)) return o.dispose(), r.returnValue;\n                for (const e of i.editStacks) e.moveBackward(t);\n                return this._safeInvokeWithLocks(t, () => t.actual.undo(), i, o, () => this._continueUndoInGroup(t.groupId, n))\n            }))\n        }\n        _resourceUndo(e, t, i) {\n            if (t.isValid) {\n                if (!e.locked) return this._invokeResourcePrepare(t, n => (e.moveBackward(t), this._safeInvokeWithLocks(t, () => t.actual.undo(), new yp([e]), n, () => this._continueUndoInGroup(t.groupId, i))));\n                var n = yt.a({\n                    key: \"cannotResourceUndoDueToInProgressUndoRedo\",\n                    comment: [\"{0} is a label for an operation.\"]\n                }, \"Could not undo '{0}' because there is already an undo or redo operation running.\", t.label);\n                this._notificationService.warn(n)\n            } else e.flushAllElements()\n        }\n        _findClosestUndoElementInGroup(e) {\n            if (!e) return [null, null];\n            let t = null,\n                i = null;\n            for (var [n, r] of this._editStacks)(r = r.getClosestPastElement()) && r.groupId === e && (!t || r.groupOrder > t.groupOrder) && (t = r, i = n);\n            return [t, i]\n        }\n        _continueUndoInGroup(e, t) {\n            if (e) {\n                var [, e] = this._findClosestUndoElementInGroup(e);\n                return e ? this._undo(e, 0, t) : void 0\n            }\n        }\n        undo(e) {\n            if (e instanceof Nl.d) {\n                var [, t] = this._findClosestUndoElementWithSource(e.id);\n                return t ? this._undo(t, e.id, !1) : void 0\n            }\n            return \"string\" == typeof e ? this._undo(e, 0, !1) : this._undo(this.getUriComparisonKey(e), 0, !1)\n        }\n        _undo(e, t = 0, i) {\n            if (this._editStacks.has(e)) {\n                const s = this._editStacks.get(e);\n                var n = s.getClosestPastElement();\n                if (n) {\n                    if (n.groupId) {\n                        var [r, o] = this._findClosestUndoElementInGroup(n.groupId);\n                        if (n !== r && o) return this._undo(o, t, i)\n                    }\n                    if ((n.sourceId !== t || n.confirmBeforeUndo) && !i) return this._confirmAndContinueUndo(e, t, n);\n                    try {\n                        return 1 === n.type ? this._workspaceUndo(e, n, i) : this._resourceUndo(s, n, i)\n                    } finally {}\n                }\n            }\n        }\n        _confirmAndContinueUndo(e, t, i) {\n            return pp(this, void 0, void 0, (function*() {\n                if (1 !== (yield this._dialogService.show(mt.a.Info, yt.a(\"confirmDifferentSource\", \"Would you like to undo '{0}'?\", i.label), [yt.a(\"confirmDifferentSource.yes\", \"Yes\"), yt.a(\"cancel\", \"取消\")], {\n                        cancelId: 1\n                    })).choice) return this._undo(e, t, !0)\n            }))\n        }\n        _findClosestRedoElementWithSource(e) {\n            if (!e) return [null, null];\n            let t = null,\n                i = null;\n            for (var [n, r] of this._editStacks)(r = r.getClosestFutureElement()) && r.sourceId === e && (!t || r.sourceOrder < t.sourceOrder) && (t = r, i = n);\n            return [t, i]\n        }\n        canRedo(e) {\n            if (e instanceof Nl.d) {\n                var [, t] = this._findClosestRedoElementWithSource(e.id);\n                return !!t\n            }\n            if (e = this.getUriComparisonKey(e), this._editStacks.has(e)) {\n                return this._editStacks.get(e).hasFutureElements()\n            }\n            return !1\n        }\n        _tryToSplitAndRedo(e, t, i, n) {\n            if (t.canSplit()) return this._splitFutureWorkspaceElement(t, i), this._notificationService.warn(n), new Sp(this._redo(e));\n            for (const e of t.strResources) this.removeElements(e);\n            return this._notificationService.warn(n), new Sp\n        }\n        _checkWorkspaceRedo(e, t, i, n) {\n            if (t.removedResources) return this._tryToSplitAndRedo(e, t, t.removedResources, yt.a({\n                key: \"cannotWorkspaceRedo\",\n                comment: [\"{0} is a label for an operation. {1} is another message.\"]\n            }, \"Could not redo '{0}' across all files. {1}\", t.label, t.removedResources.createMessage()));\n            if (n && t.invalidatedResources) return this._tryToSplitAndRedo(e, t, t.invalidatedResources, yt.a({\n                key: \"cannotWorkspaceRedo\",\n                comment: [\"{0} is a label for an operation. {1} is another message.\"]\n            }, \"Could not redo '{0}' across all files. {1}\", t.label, t.invalidatedResources.createMessage()));\n            const r = [];\n            for (const e of i.editStacks) e.getClosestFutureElement() !== t && r.push(e.resourceLabel);\n            if (0 < r.length) return this._tryToSplitAndRedo(e, t, null, yt.a({\n                key: \"cannotWorkspaceRedoDueToChanges\",\n                comment: [\"{0} is a label for an operation. {1} is a list of filenames.\"]\n            }, \"Could not redo '{0}' across all files because changes were made to {1}\", t.label, r.join(\", \")));\n            const o = [];\n            for (const e of i.editStacks) e.locked && o.push(e.resourceLabel);\n            return 0 < o.length ? this._tryToSplitAndRedo(e, t, null, yt.a({\n                key: \"cannotWorkspaceRedoDueToInProgressUndoRedo\",\n                comment: [\"{0} is a label for an operation. {1} is a list of filenames.\"]\n            }, \"Could not redo '{0}' across all files because there is already an undo or redo operation running on {1}\", t.label, o.join(\", \"))) : i.isValid() ? null : this._tryToSplitAndRedo(e, t, null, yt.a({\n                key: \"cannotWorkspaceRedoDueToInMeantimeUndoRedo\",\n                comment: [\"{0} is a label for an operation. {1} is a list of filenames.\"]\n            }, \"Could not redo '{0}' across all files because an undo or redo operation occurred in the meantime\", t.label))\n        }\n        _workspaceRedo(e, t) {\n            var i = this._getAffectedEditStacks(t),\n                n = this._checkWorkspaceRedo(e, t, i, !1);\n            return n ? n.returnValue : this._executeWorkspaceRedo(e, t, i)\n        }\n        _executeWorkspaceRedo(e, t, i) {\n            return pp(this, void 0, void 0, (function*() {\n                let n;\n                try {\n                    n = yield this._invokeWorkspacePrepare(t)\n                } catch (n) {\n                    return this._onError(n, t)\n                }\n                var r = this._checkWorkspaceRedo(e, t, i, !0);\n                if (r) return n.dispose(), r.returnValue;\n                for (const e of i.editStacks) e.moveForward(t);\n                return this._safeInvokeWithLocks(t, () => t.actual.redo(), i, n, () => this._continueRedoInGroup(t.groupId))\n            }))\n        }\n        _resourceRedo(e, t) {\n            if (t.isValid) {\n                if (!e.locked) return this._invokeResourcePrepare(t, i => (e.moveForward(t), this._safeInvokeWithLocks(t, () => t.actual.redo(), new yp([e]), i, () => this._continueRedoInGroup(t.groupId))));\n                var i = yt.a({\n                    key: \"cannotResourceRedoDueToInProgressUndoRedo\",\n                    comment: [\"{0} is a label for an operation.\"]\n                }, \"Could not redo '{0}' because there is already an undo or redo operation running.\", t.label);\n                this._notificationService.warn(i)\n            } else e.flushAllElements()\n        }\n        _findClosestRedoElementInGroup(e) {\n            if (!e) return [null, null];\n            let t = null,\n                i = null;\n            for (var [n, r] of this._editStacks)(r = r.getClosestFutureElement()) && r.groupId === e && (!t || r.groupOrder < t.groupOrder) && (t = r, i = n);\n            return [t, i]\n        }\n        _continueRedoInGroup(e) {\n            if (e) {\n                var [, e] = this._findClosestRedoElementInGroup(e);\n                return e ? this._redo(e) : void 0\n            }\n        }\n        redo(e) {\n            if (e instanceof Nl.d) {\n                var [, t] = this._findClosestRedoElementWithSource(e.id);\n                return t ? this._redo(t) : void 0\n            }\n            return \"string\" == typeof e ? this._redo(e) : this._redo(this.getUriComparisonKey(e))\n        }\n        _redo(e) {\n            if (this._editStacks.has(e)) {\n                const r = this._editStacks.get(e);\n                var t = r.getClosestFutureElement();\n                if (t) {\n                    if (t.groupId) {\n                        var [i, n] = this._findClosestRedoElementInGroup(t.groupId);\n                        if (t !== i && n) return this._redo(n)\n                    }\n                    try {\n                        return 1 === t.type ? this._workspaceRedo(e, t) : this._resourceRedo(r, t)\n                    } finally {}\n                }\n            }\n        }\n    };\n    xp = S([x(0, mc), x(1, hi.a)], xp);\n    class Sp {\n        constructor(e) {\n            this.returnValue = e\n        }\n    }\n    Object(ba.b)(Nl.a, xp), i(443);\n    const kp = new RegExp(`(\\\\\\\\)?\\\\$\\\\((${Sa.a.iconNameExpression}(?:${Sa.a.iconModifierExpression})?)\\\\)`, \"g\");\n\n    function Lp(e) {\n        const t = new Array;\n        let i, n = 0;\n        for (; null !== (o = kp.exec(e));) {\n            i = o.index || 0, t.push(e.substring(n, i)), n = (o.index || 0) + o[0].length;\n            var [, r, o] = o;\n            t.push(r ? `$(${o})` : function(e) {\n                const t = s.a(\"span\");\n                return t.classList.add(...Sa.a.asClassNameArray(e)), t\n            }({\n                id: o\n            }))\n        }\n        return n < e.length && t.push(e.substring(n)), t\n    }\n    i(445);\n    const Op = {\n        buttonBackground: uo.a.fromHex(\"#0E639C\"),\n        buttonHoverBackground: uo.a.fromHex(\"#006BB3\"),\n        buttonForeground: uo.a.white\n    };\n    class Ep extends v.a {\n        constructor(e, t) {\n            super(), this._onDidClick = this._register(new D.b), this.options = t || Object.create(null), Object(I.e)(this.options, Op, !1), this.buttonForeground = this.options.buttonForeground, this.buttonBackground = this.options.buttonBackground, this.buttonHoverBackground = this.options.buttonHoverBackground, this.buttonSecondaryForeground = this.options.buttonSecondaryForeground, this.buttonSecondaryBackground = this.options.buttonSecondaryBackground, this.buttonSecondaryHoverBackground = this.options.buttonSecondaryHoverBackground, this.buttonBorder = this.options.buttonBorder, this._element = document.createElement(\"a\"), this._element.classList.add(\"monaco-button\"), this._element.tabIndex = 0, this._element.setAttribute(\"role\", \"button\"), e.appendChild(this._element), this._register(Ki.b.addTarget(this._element)), [s.d.CLICK, Ki.a.Tap].forEach(e => {\n                this._register(Object(s.g)(this._element, e, e => {\n                    this.enabled ? this._onDidClick.fire(e) : s.c.stop(e)\n                }))\n            }), this._register(Object(s.g)(this._element, s.d.KEY_DOWN, e => {\n                const t = new gt.a(e);\n                let i = !1;\n                this.enabled && (t.equals(3) || t.equals(10)) ? (this._onDidClick.fire(e), i = !0) : t.equals(9) && (this._element.blur(), i = !0), i && s.c.stop(t, !0)\n            })), this._register(Object(s.g)(this._element, s.d.MOUSE_OVER, e => {\n                this._element.classList.contains(\"disabled\") || this.setHoverBackground()\n            })), this._register(Object(s.g)(this._element, s.d.MOUSE_OUT, e => {\n                this.applyStyles()\n            })), this.focusTracker = this._register(Object(s.T)(this._element)), this._register(this.focusTracker.onDidFocus(() => this.setHoverBackground())), this._register(this.focusTracker.onDidBlur(() => this.applyStyles())), this.applyStyles()\n        }\n        get onDidClick() {\n            return this._onDidClick.event\n        }\n        setHoverBackground() {\n            let e;\n            e = this.options.secondary ? this.buttonSecondaryHoverBackground ? this.buttonSecondaryHoverBackground.toString() : null : this.buttonHoverBackground ? this.buttonHoverBackground.toString() : null, e && (this._element.style.backgroundColor = e)\n        }\n        style(e) {\n            this.buttonForeground = e.buttonForeground, this.buttonBackground = e.buttonBackground, this.buttonHoverBackground = e.buttonHoverBackground, this.buttonSecondaryForeground = e.buttonSecondaryForeground, this.buttonSecondaryBackground = e.buttonSecondaryBackground, this.buttonSecondaryHoverBackground = e.buttonSecondaryHoverBackground, this.buttonBorder = e.buttonBorder, this.applyStyles()\n        }\n        applyStyles() {\n            if (this._element) {\n                let t, i;\n                t = this.options.secondary ? (i = this.buttonSecondaryForeground ? this.buttonSecondaryForeground.toString() : \"\", this.buttonSecondaryBackground ? this.buttonSecondaryBackground.toString() : \"\") : (i = this.buttonForeground ? this.buttonForeground.toString() : \"\", this.buttonBackground ? this.buttonBackground.toString() : \"\");\n                var e = this.buttonBorder ? this.buttonBorder.toString() : \"\";\n                this._element.style.color = i, this._element.style.backgroundColor = t, this._element.style.borderWidth = e ? \"1px\" : \"\", this._element.style.borderStyle = e ? \"solid\" : \"\", this._element.style.borderColor = e\n            }\n        }\n        get element() {\n            return this._element\n        }\n        set label(e) {\n            this._element.classList.add(\"monaco-text-button\"), this.options.supportIcons ? Object(s.N)(this._element, ...Lp(e)) : this._element.textContent = e, \"string\" == typeof this.options.title ? this._element.title = this.options.title : this.options.title && (this._element.title = e)\n        }\n        set enabled(e) {\n            e ? (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)))\n        }\n        get enabled() {\n            return !this._element.classList.contains(\"disabled\")\n        }\n    }\n    i(447);\n    const Np = {\n        badgeBackground: uo.a.fromHex(\"#4D4D4D\"),\n        badgeForeground: uo.a.fromHex(\"#FFFFFF\")\n    };\n    class Dp {\n        constructor(e, t) {\n            this.count = 0, this.options = t || Object.create(null), Object(I.e)(this.options, Np, !1), this.badgeBackground = this.options.badgeBackground, this.badgeForeground = this.options.badgeForeground, this.badgeBorder = this.options.badgeBorder, this.element = Object(s.n)(e, Object(s.a)(\".monaco-count-badge\")), this.countFormat = this.options.countFormat || \"{0}\", this.titleFormat = this.options.titleFormat || \"\", this.setCount(this.options.count || 0)\n        }\n        setCount(e) {\n            this.count = e, this.render()\n        }\n        setTitleFormat(e) {\n            this.titleFormat = e, this.render()\n        }\n        render() {\n            this.element.textContent = Object(b.v)(this.countFormat, this.count), this.element.title = Object(b.v)(this.titleFormat, this.count), this.applyStyles()\n        }\n        style(e) {\n            this.badgeBackground = e.badgeBackground, this.badgeForeground = e.badgeForeground, this.badgeBorder = e.badgeBorder, this.applyStyles()\n        }\n        applyStyles() {\n            var e, t, i;\n            this.element && (e = this.badgeBackground ? this.badgeBackground.toString() : \"\", t = this.badgeForeground ? this.badgeForeground.toString() : \"\", i = this.badgeBorder ? this.badgeBorder.toString() : \"\", this.element.style.backgroundColor = e, this.element.style.color = t, this.element.style.borderWidth = i ? \"1px\" : \"\", this.element.style.borderStyle = i ? \"solid\" : \"\", this.element.style.borderColor = i)\n        }\n    }\n    i(449);\n    const Ip = \"infinite\",\n        Tp = {\n            progressBarBackground: uo.a.fromHex(\"#0E70C0\")\n        };\n    class Mp extends v.a {\n        constructor(e, t) {\n            super(), this.options = t || Object.create(null), Object(I.e)(this.options, Tp, !1), this.workedVal = 0, this.progressBarBackground = this.options.progressBarBackground, this._register(this.showDelayedScheduler = new q.e(() => Object(s.S)(this.element), 0)), this.create(e)\n        }\n        create(e) {\n            this.element = document.createElement(\"div\"), this.element.classList.add(\"monaco-progress-container\"), this.element.setAttribute(\"role\", \"progressbar\"), this.element.setAttribute(\"aria-valuemin\", \"0\"), e.appendChild(this.element), this.bit = document.createElement(\"div\"), this.bit.classList.add(\"progress-bit\"), this.element.appendChild(this.bit), this.applyStyles()\n        }\n        off() {\n            this.bit.style.width = \"inherit\", this.bit.style.opacity = \"1\", this.element.classList.remove(\"active\", Ip, \"discrete\"), this.workedVal = 0, this.totalWork = void 0\n        }\n        stop() {\n            return this.doDone(!1)\n        }\n        doDone(e) {\n            return this.element.classList.add(\"done\"), this.element.classList.contains(Ip) ? this.bit.style.opacity = \"0\" : this.bit.style.width = \"inherit\", e ? setTimeout(() => this.off(), 200) : this.off(), this\n        }\n        infinite() {\n            return this.bit.style.width = \"2%\", this.bit.style.opacity = \"1\", this.element.classList.remove(\"discrete\", \"done\"), this.element.classList.add(\"active\", Ip), this\n        }\n        getContainer() {\n            return this.element\n        }\n        style(e) {\n            this.progressBarBackground = e.progressBarBackground, this.applyStyles()\n        }\n        applyStyles() {\n            var e;\n            this.bit && (e = this.progressBarBackground ? this.progressBarBackground.toString() : \"\", this.bit.style.backgroundColor = e)\n        }\n    }\n    class Pp {\n        constructor(e) {\n            this._prefix = e, this._lastId = 0\n        }\n        nextId() {\n            return this._prefix + ++this._lastId\n        }\n    }\n    var Ap, Rp;\n    new Pp(\"id#\"), i(164);\n    const Fp = {},\n        jp = new Pp(\"quick-input-button-icon-\");\n\n    function Bp(e) {\n        if (e) {\n            let i;\n            var t = e.dark.toString();\n            return Fp[t] ? i = Fp[t] : (i = jp.nextId(), s.s(\".\" + i, \"background-image: \" + s.p(e.light || e.dark)), s.s(`.vs-dark .${i}, .hc-black .${i}`, \"background-image: \" + s.p(e.dark)), Fp[t] = i), i\n        }\n    }\n    const Vp = {\n        ctrlCmd: !1,\n        alt: !1\n    };\n    (t = Ap = Ap || {})[t.Blur = 1] = \"Blur\", t[t.Gesture = 2] = \"Gesture\", t[t.Other = 3] = \"Other\", (ae = Rp = Rp || {})[ae.NONE = 0] = \"NONE\", ae[ae.FIRST = 1] = \"FIRST\", ae[ae.SECOND = 2] = \"SECOND\", ae[ae.LAST = 3] = \"LAST\";\n    var Wp = i(152);\n    const zp = s.a;\n    class Hp extends v.a {\n        constructor(e) {\n            super(), this.parent = e, this.onKeyDown = e => s.g(this.inputBox.inputElement, s.d.KEY_DOWN, t => {\n                e(new gt.a(t))\n            }), this.onMouseDown = e => s.g(this.inputBox.inputElement, s.d.MOUSE_DOWN, t => {\n                e(new $i.a(t))\n            }), this.onDidChange = e => this.inputBox.onDidChange(e), this.container = s.n(this.parent, zp(\".quick-input-box\")), this.inputBox = this._register(new Wp.b(this.container, void 0))\n        }\n        get value() {\n            return this.inputBox.value\n        }\n        set value(e) {\n            this.inputBox.value = e\n        }\n        select(e = null) {\n            this.inputBox.select(e)\n        }\n        isSelectionAtEnd() {\n            return this.inputBox.isSelectionAtEnd()\n        }\n        get placeholder() {\n            return this.inputBox.inputElement.getAttribute(\"placeholder\") || \"\"\n        }\n        set placeholder(e) {\n            this.inputBox.setPlaceHolder(e)\n        }\n        get ariaLabel() {\n            return this.inputBox.getAriaLabel()\n        }\n        set ariaLabel(e) {\n            this.inputBox.setAriaLabel(e)\n        }\n        get password() {\n            return \"password\" === this.inputBox.inputElement.type\n        }\n        set password(e) {\n            this.inputBox.inputElement.type = e ? \"password\" : \"text\"\n        }\n        setAttribute(e, t) {\n            this.inputBox.inputElement.setAttribute(e, t)\n        }\n        removeAttribute(e) {\n            this.inputBox.inputElement.removeAttribute(e)\n        }\n        showDecoration(e) {\n            e === mt.a.Ignore ? this.inputBox.hideMessage() : this.inputBox.showMessage({\n                type: e === mt.a.Info ? 1 : e === mt.a.Warning ? 2 : 3,\n                content: \"\"\n            })\n        }\n        stylesForType(e) {\n            return this.inputBox.stylesForType(e === mt.a.Info ? 1 : e === mt.a.Warning ? 2 : 3)\n        }\n        setFocus() {\n            this.inputBox.focus()\n        }\n        layout() {\n            this.inputBox.layout()\n        }\n        style(e) {\n            this.inputBox.style(e)\n        }\n    }\n    class Up {\n        constructor(e, t) {\n            this.supportIcons = t, this.text = \"\", this.title = \"\", this.highlights = [], this.didEverRender = !1, this.domNode = document.createElement(\"span\"), this.domNode.className = \"monaco-highlighted-label\", e.appendChild(this.domNode)\n        }\n        get element() {\n            return this.domNode\n        }\n        set(e, t = [], i = \"\", n) {\n            e = e || \"\", n && (e = Up.escapeNewLines(e, t)), this.didEverRender && this.text === e && this.title === i && I.c(this.highlights, t) || (this.text = e, this.title = i, this.highlights = t, this.render())\n        }\n        render() {\n            const e = [];\n            let t = 0;\n            for (const n of this.highlights)\n                if (n.end !== n.start) {\n                    t < n.start && (i = this.text.substring(t, n.start), e.push(s.a(\"span\", void 0, ...this.supportIcons ? Lp(i) : [i])), t = n.end);\n                    var i = this.text.substring(n.start, n.end);\n                    const r = s.a(\"span.highlight\", void 0, ...this.supportIcons ? Lp(i) : [i]);\n                    n.extraClasses && r.classList.add(n.extraClasses), e.push(r), t = n.end\n                } var n;\n            t < this.text.length && (n = this.text.substring(t), e.push(s.a(\"span\", void 0, ...this.supportIcons ? Lp(n) : [n]))), s.N(this.domNode, ...e), this.title ? this.domNode.title = this.title : this.domNode.removeAttribute(\"title\"), this.didEverRender = !0\n        }\n        static escapeNewLines(e, t) {\n            let i, n = 0;\n            return e.replace(/\\r\\n|\\r|\\n/g, (e, r) => {\n                i = \"\\r\\n\" === e ? -1 : 0, r += n;\n                for (const e of t) e.end <= r || (e.start >= r && (e.start += i), e.end >= r && (e.end += i));\n                return n += i, \"⏎\"\n            })\n        }\n    }\n\n    function Kp(e) {\n        return e instanceof class {\n            constructor(e = \"\", t = !1) {\n                if (this.value = e, \"string\" != typeof this.value) throw Object(se.c)(\"value\");\n                \"boolean\" == typeof t ? (this.isTrusted = t, this.supportThemeIcons = !1, this.supportHtml = !1) : (this.isTrusted = null !== (e = t.isTrusted) && void 0 !== e ? e : void 0, this.supportThemeIcons = null !== (e = t.supportThemeIcons) && void 0 !== e && e, this.supportHtml = null !== (t = t.supportHtml) && void 0 !== t && t)\n            }\n            appendText(e, t = 0) {\n                return this.value += (this.supportThemeIcons ? e.replace(Gd, (e, t) => t ? e : \"\\\\\" + e) : e).replace(/[\\\\`*_{}[\\]()#+\\-!]/g, \"\\\\$&\").replace(/([ \\t]+)/g, (e, t) => \"&nbsp;\".repeat(t.length)).replace(/\\>/gm, \"\\\\>\").replace(/\\n/g, 1 === t ? \"\\\\\\n\" : \"\\n\\n\"), this\n            }\n            appendMarkdown(e) {\n                return this.value += e, this\n            }\n            appendCodeblock(e, t) {\n                return this.value += \"\\n```\", this.value += e, this.value += \"\\n\", this.value += t, this.value += \"\\n```\\n\", this\n            }\n        } || e && \"object\" == typeof e && !(\"string\" != typeof e.value || \"boolean\" != typeof e.isTrusted && void 0 !== e.isTrusted || \"boolean\" != typeof e.supportThemeIcons && void 0 !== e.supportThemeIcons)\n    }\n    var $p = function(e, t, i, n) {\n        return new(i = i || Promise)((function(r, o) {\n            function s(e) {\n                try {\n                    l(n.next(e))\n                } catch (e) {\n                    o(e)\n                }\n            }\n\n            function a(e) {\n                try {\n                    l(n.throw(e))\n                } catch (e) {\n                    o(e)\n                }\n            }\n\n            function l(e) {\n                var t;\n                e.done ? r(e.value) : ((t = e.value) instanceof i ? t : new i((function(e) {\n                    e(t)\n                }))).then(s, a)\n            }\n            l((n = n.apply(e, t || [])).next())\n        }))\n    };\n    class qp {\n        constructor(e, t, i) {\n            this.hoverDelegate = e, this.target = t, this.fadeInAnimation = i\n        }\n        update(e, t) {\n            var i;\n            return $p(this, void 0, void 0, (function*() {\n                if (this._cancellationTokenSource && (this._cancellationTokenSource.dispose(!0), this._cancellationTokenSource = void 0), !this.isDisposed) {\n                    let r;\n                    if (void 0 === e || Object(ve.k)(e) || e instanceof HTMLElement) r = e;\n                    else if (Object(ve.h)(e.markdown)) {\n                        this._hoverWidget || this.show(Object(yt.a)(\"iconLabel.loading\", \"正在加载...\"), t), this._cancellationTokenSource = new a.b;\n                        var n = this._cancellationTokenSource.token;\n                        if (r = yield e.markdown(n), this.isDisposed || n.isCancellationRequested) return\n                    } else r = null !== (i = e.markdown) && void 0 !== i ? i : e.markdownNotSupportedFallback;\n                    this.show(r, t)\n                }\n            }))\n        }\n        show(e, t) {\n            const i = this._hoverWidget;\n            this.hasContent(e) && (e = {\n                content: e,\n                target: this.target,\n                showPointer: \"element\" === this.hoverDelegate.placement,\n                hoverPosition: 2,\n                skipFadeInAnimation: !this.fadeInAnimation || !!i\n            }, this._hoverWidget = this.hoverDelegate.showHover(e, t)), null != i && i.dispose()\n        }\n        hasContent(e) {\n            return !(!e || Kp(e) && !e.value)\n        }\n        get isDisposed() {\n            var e;\n            return null === (e = this._hoverWidget) || void 0 === e ? void 0 : e.isDisposed\n        }\n        dispose() {\n            var e;\n            null !== (e = this._hoverWidget) && void 0 !== e && e.dispose(), null !== (e = this._cancellationTokenSource) && void 0 !== e && e.dispose(!0), this._cancellationTokenSource = void 0\n        }\n    }\n    i(452);\n    class Gp {\n        constructor(e) {\n            this._element = e\n        }\n        get element() {\n            return this._element\n        }\n        set textContent(e) {\n            this.disposed || e === this._textContent || (this._textContent = e, this._element.textContent = e)\n        }\n        set className(e) {\n            this.disposed || e === this._className || (this._className = e, this._element.className = e)\n        }\n        set empty(e) {\n            this.disposed || e === this._empty || (this._empty = e, this._element.style.marginLeft = e ? \"0\" : \"\")\n        }\n        dispose() {\n            this.disposed = !0\n        }\n    }\n    class Yp extends v.a {\n        constructor(e, t) {\n            super(), this.customHovers = new Map, this.domNode = this._register(new Gp(s.n(e, s.a(\".monaco-icon-label\")))), this.labelContainer = s.n(this.domNode.element, s.a(\".monaco-icon-label-container\")), e = s.n(this.labelContainer, s.a(\"span.monaco-icon-name-container\")), this.descriptionContainer = this._register(new Gp(s.n(this.labelContainer, s.a(\"span.monaco-icon-description-container\")))), null != t && t.supportHighlights || null != t && t.supportIcons ? this.nameNode = new Xp(e, !!t.supportIcons) : this.nameNode = new Zp(e), null != t && t.supportDescriptionHighlights ? this.descriptionNodeFactory = () => new Up(s.n(this.descriptionContainer.element, s.a(\"span.label-description\")), !!t.supportIcons) : this.descriptionNodeFactory = () => this._register(new Gp(s.n(this.descriptionContainer.element, s.a(\"span.label-description\")))), this.hoverDelegate = null == t ? void 0 : t.hoverDelegate\n        }\n        get element() {\n            return this.domNode.element\n        }\n        setLabel(e, t, i) {\n            const n = [\"monaco-icon-label\"];\n            i && (i.extraClasses && n.push(...i.extraClasses), i.italic && n.push(\"italic\"), i.strikethrough && n.push(\"strikethrough\")), this.domNode.className = n.join(\" \"), this.setupHover(null != i && i.descriptionTitle ? this.labelContainer : this.element, null == i ? void 0 : i.title), this.nameNode.setLabel(e, i), (t || this.descriptionNode) && (this.descriptionNode || (this.descriptionNode = this.descriptionNodeFactory()), this.descriptionNode instanceof Up ? (this.descriptionNode.set(t || \"\", i ? i.descriptionMatches : void 0), this.setupHover(this.descriptionNode.element, null == i ? void 0 : i.descriptionTitle)) : (this.descriptionNode.textContent = t || \"\", this.setupHover(this.descriptionNode.element, (null == i ? void 0 : i.descriptionTitle) || \"\"), this.descriptionNode.empty = !t))\n        }\n        setupHover(e, t) {\n            const i = this.customHovers.get(e);\n            var n;\n            i && (i.dispose(), this.customHovers.delete(e)), t ? this.hoverDelegate ? (n = function(e, t, i) {\n                let n, r;\n                const o = (t, i) => {\n                        t && (null != r && r.dispose(), r = void 0), i && (null != n && n.dispose(), n = void 0), null !== (i = e.onDidHideHover) && void 0 !== i && i.call(e)\n                    },\n                    a = (n, o, s) => new q.g(() => $p(this, void 0, void 0, (function*() {\n                        r && !r.isDisposed || (r = new qp(e, s || t, 0 < n), yield r.update(i, o))\n                    })), n),\n                    l = s.g(t, s.d.MOUSE_OVER, () => {\n                        if (!n) {\n                            const i = new v.b;\n                            i.add(s.g(t, s.d.MOUSE_LEAVE, e => o(!1, e.fromElement === t), !0)), i.add(s.g(t, s.d.MOUSE_DOWN, () => o(!0, !0), !0));\n                            const r = {\n                                targetElements: [t],\n                                dispose: () => {}\n                            };\n                            void 0 !== e.placement && \"mouse\" !== e.placement || i.add(s.g(t, s.d.MOUSE_MOVE, e => r.x = e.x + 10, !0)), i.add(a(e.delay, !1, r)), n = i\n                        }\n                    }, !0);\n                return {\n                    show: e => {\n                        o(!1, !0), a(0, e)\n                    },\n                    hide: () => {\n                        o(!0, !0)\n                    },\n                    update: e => $p(this, void 0, void 0, (function*() {\n                        i = e, yield null == r ? void 0 : r.update(i)\n                    })),\n                    dispose: () => {\n                        l.dispose(), o(!0, !0)\n                    }\n                }\n            }(this.hoverDelegate, e, t)) && this.customHovers.set(e, n) : (n = e, t = t, Object(ve.k)(t) ? n.title = t : null != t && t.markdownNotSupportedFallback ? n.title = t.markdownNotSupportedFallback : n.removeAttribute(\"title\")) : e.removeAttribute(\"title\")\n        }\n        dispose() {\n            super.dispose();\n            for (const e of this.customHovers.values()) e.dispose();\n            this.customHovers.clear()\n        }\n    }\n    class Zp {\n        constructor(e) {\n            this.container = e, this.label = void 0, this.singleLabel = void 0\n        }\n        setLabel(e, t) {\n            if (this.label !== e || !Object(I.c)(this.options, t))\n                if (this.label = e, this.options = t, \"string\" == typeof e) this.singleLabel || (this.container.innerText = \"\", this.container.classList.remove(\"multiple\"), this.singleLabel = s.n(this.container, s.a(\"a.label-name\", {\n                    id: null == t ? void 0 : t.domId\n                }))), this.singleLabel.textContent = e;\n                else {\n                    this.container.innerText = \"\", this.container.classList.add(\"multiple\"), this.singleLabel = void 0;\n                    for (let r = 0; r < e.length; r++) {\n                        var i = e[r],\n                            n = (null == t ? void 0 : t.domId) && `${null==t?void 0:t.domId}_${r}`;\n                        s.n(this.container, s.a(\"a.label-name\", {\n                            id: n,\n                            \"data-icon-label-count\": e.length,\n                            \"data-icon-label-index\": r,\n                            role: \"treeitem\"\n                        }, i)), r < e.length - 1 && s.n(this.container, s.a(\"span.label-separator\", void 0, (null == t ? void 0 : t.separator) || \"/\"))\n                    }\n                }\n        }\n    }\n    class Xp {\n        constructor(e, t) {\n            this.container = e, this.supportIcons = t, this.label = void 0, this.singleLabel = void 0\n        }\n        setLabel(e, t) {\n            if (this.label !== e || !Object(I.c)(this.options, t))\n                if (this.label = e, this.options = t, \"string\" == typeof e) this.singleLabel || (this.container.innerText = \"\", this.container.classList.remove(\"multiple\"), this.singleLabel = new Up(s.n(this.container, s.a(\"a.label-name\", {\n                    id: null == t ? void 0 : t.domId\n                })), this.supportIcons)), this.singleLabel.set(e, null == t ? void 0 : t.matches, void 0, null == t ? void 0 : t.labelEscapeNewLines);\n                else {\n                    this.container.innerText = \"\", this.container.classList.add(\"multiple\"), this.singleLabel = void 0;\n                    var i = (null == t ? void 0 : t.separator) || \"/\",\n                        n = function(e, t, i) {\n                            if (i) {\n                                let n = 0;\n                                return e.map(e => {\n                                    const r = {\n                                        start: n,\n                                        end: n + e.length\n                                    };\n                                    return e = i.map(e => Rd.intersect(r, e)).filter(e => !Rd.isEmpty(e)).map(({\n                                        start: e,\n                                        end: t\n                                    }) => ({\n                                        start: e - n,\n                                        end: t - n\n                                    })), n = r.end + t.length, e\n                                })\n                            }\n                        }(e, i, null == t ? void 0 : t.matches);\n                    for (let l = 0; l < e.length; l++) {\n                        var r = e[l],\n                            o = n ? n[l] : void 0,\n                            a = (null == t ? void 0 : t.domId) && `${null==t?void 0:t.domId}_${l}`;\n                        a = s.a(\"a.label-name\", {\n                            id: a,\n                            \"data-icon-label-count\": e.length,\n                            \"data-icon-label-index\": l,\n                            role: \"treeitem\"\n                        });\n                        new Up(s.n(this.container, a), this.supportIcons).set(r, o, void 0, null == t ? void 0 : t.labelEscapeNewLines), l < e.length - 1 && s.n(a, s.a(\"span.label-separator\", void 0, i))\n                    }\n                }\n        }\n    }\n    i(454);\n    const Qp = s.a;\n    class Jp {\n        constructor(e, t, i) {\n            this.os = t, this.keyElements = new Set, this.options = i || Object.create(null), this.labelBackground = this.options.keybindingLabelBackground, this.labelForeground = this.options.keybindingLabelForeground, this.labelBorder = this.options.keybindingLabelBorder, this.labelBottomBorder = this.options.keybindingLabelBottomBorder, this.labelShadow = this.options.keybindingLabelShadow, this.domNode = s.n(e, Qp(\".monaco-keybinding\")), this.didEverRender = !1, e.appendChild(this.domNode)\n        }\n        get element() {\n            return this.domNode\n        }\n        set(e, t) {\n            this.didEverRender && this.keybinding === e && Jp.areSame(this.matches, t) || (this.keybinding = e, this.matches = t, this.render())\n        }\n        render() {\n            var e, t;\n            this.clear(), this.keybinding ? ([e, t] = this.keybinding.getParts(), e && this.renderPart(this.domNode, e, this.matches ? this.matches.firstPart : null), t && (s.n(this.domNode, Qp(\"span.monaco-keybinding-key-chord-separator\", void 0, \" \")), this.renderPart(this.domNode, t, this.matches ? this.matches.chordPart : null)), this.domNode.title = this.keybinding.getAriaLabel() || \"\") : this.options && this.options.renderUnboundKeybindings && this.renderUnbound(this.domNode), this.applyStyles(), this.didEverRender = !0\n        }\n        clear() {\n            s.q(this.domNode), this.keyElements.clear()\n        }\n        renderPart(e, t, i) {\n            var n = ri.modifierLabels[this.os];\n            t.ctrlKey && this.renderKey(e, n.ctrlKey, Boolean(null == i ? void 0 : i.ctrlKey), n.separator), t.shiftKey && this.renderKey(e, n.shiftKey, Boolean(null == i ? void 0 : i.shiftKey), n.separator), t.altKey && this.renderKey(e, n.altKey, Boolean(null == i ? void 0 : i.altKey), n.separator), t.metaKey && this.renderKey(e, n.metaKey, Boolean(null == i ? void 0 : i.metaKey), n.separator), (t = t.keyLabel) && this.renderKey(e, t, Boolean(null == i ? void 0 : i.keyCode), \"\")\n        }\n        renderKey(e, t, i, n) {\n            s.n(e, this.createKeyElement(t, i ? \".highlight\" : \"\")), n && s.n(e, Qp(\"span.monaco-keybinding-key-separator\", void 0, n))\n        }\n        renderUnbound(e) {\n            s.n(e, this.createKeyElement(Object(yt.a)(\"unbound\", \"Unbound\")))\n        }\n        createKeyElement(e, t = \"\") {\n            return e = Qp(\"span.monaco-keybinding-key\" + t, void 0, e), this.keyElements.add(e), e\n        }\n        style(e) {\n            this.labelBackground = e.keybindingLabelBackground, this.labelForeground = e.keybindingLabelForeground, this.labelBorder = e.keybindingLabelBorder, this.labelBottomBorder = e.keybindingLabelBottomBorder, this.labelShadow = e.keybindingLabelShadow, this.applyStyles()\n        }\n        applyStyles() {\n            var e;\n            if (this.element) {\n                for (const t of this.keyElements) this.labelBackground && (t.style.backgroundColor = null === (e = this.labelBackground) || void 0 === e ? void 0 : e.toString()), this.labelBorder && (t.style.borderColor = this.labelBorder.toString()), this.labelBottomBorder && (t.style.borderBottomColor = this.labelBottomBorder.toString()), this.labelShadow && (t.style.boxShadow = \"inset 0 -1px 0 \" + this.labelShadow);\n                this.labelForeground && (this.element.style.color = this.labelForeground.toString())\n            }\n        }\n        static areSame(e, t) {\n            return e === t || !e && !t || !!e && !!t && Object(I.c)(e.firstPart, t.firstPart) && Object(I.c)(e.chordPart, t.chordPart)\n        }\n    }\n    const eg = new q.b(() => {\n        const e = new Intl.Collator(void 0, {\n            numeric: !0,\n            sensitivity: \"base\"\n        });\n        return {\n            collator: e,\n            collatorIsNumeric: e.resolvedOptions().numeric\n        }\n    });\n    var tg;\n    S = function(e, t, i, n) {\n        var r, o = arguments.length,\n            s = o < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n);\n        else\n            for (var a = e.length - 1; 0 <= a; a--)(r = e[a]) && (s = (o < 3 ? r(s) : 3 < o ? r(t, i, s) : r(t, i)) || s);\n        return 3 < o && s && Object.defineProperty(t, i, s), s\n    };\n    const ig = s.a;\n    class ng {\n        constructor(e) {\n            this.hidden = !1, this._onChecked = new D.b, this.onChecked = this._onChecked.event, Object.assign(this, e)\n        }\n        get checked() {\n            return !!this._checked\n        }\n        set checked(e) {\n            e !== this._checked && (this._checked = e, this._onChecked.fire(e))\n        }\n        dispose() {\n            this._onChecked.dispose()\n        }\n    }\n    class rg {\n        get templateId() {\n            return rg.ID\n        }\n        renderTemplate(e) {\n            const t = Object.create(null);\n            t.toDisposeElement = [], t.toDisposeTemplate = [], t.entry = s.n(e, ig(\".quick-input-list-entry\"));\n            var i = s.n(t.entry, ig(\"label.quick-input-list-label\"));\n            return t.toDisposeTemplate.push(s.l(i, s.d.CLICK, e => {\n                t.checkbox.offsetParent || e.preventDefault()\n            })), t.checkbox = s.n(i, ig(\"input.quick-input-list-checkbox\")), t.checkbox.type = \"checkbox\", t.toDisposeTemplate.push(s.l(t.checkbox, s.d.CHANGE, e => {\n                t.element.checked = t.checkbox.checked\n            })), e = s.n(i, ig(\".quick-input-list-rows\")), i = s.n(e, ig(\".quick-input-list-row\")), e = s.n(e, ig(\".quick-input-list-row\")), t.label = new Yp(i, {\n                supportHighlights: !0,\n                supportDescriptionHighlights: !0,\n                supportIcons: !0\n            }), i = s.n(i, ig(\".quick-input-list-entry-keybinding\")), t.keybinding = new Jp(i, A.a), e = s.n(e, ig(\".quick-input-list-label-meta\")), t.detail = new Up(e, !0), t.separator = s.n(t.entry, ig(\".quick-input-list-separator\")), t.actionBar = new Ca.a(t.entry), t.actionBar.domNode.classList.add(\"quick-input-list-entry-action-bar\"), t.toDisposeTemplate.push(t.actionBar), t\n        }\n        renderElement(e, t, i) {\n            i.toDisposeElement = Object(v.f)(i.toDisposeElement), i.element = e, i.checkbox.checked = e.checked, i.toDisposeElement.push(e.onChecked(e => i.checkbox.checked = e));\n            var {\n                labelHighlights: n,\n                descriptionHighlights: r,\n                detailHighlights: o\n            } = e;\n            const s = Object.create(null);\n            s.matches = n || [], s.descriptionTitle = e.saneDescription, s.descriptionMatches = r || [], s.extraClasses = e.item.iconClasses, s.italic = e.item.italic, s.strikethrough = e.item.strikethrough, i.label.setLabel(e.saneLabel, e.saneDescription, s), i.keybinding.set(e.item.keybinding), i.detail.set(e.saneDetail, o), e.separator && e.separator.label ? (i.separator.textContent = e.separator.label, i.separator.style.display = \"\") : i.separator.style.display = \"none\", i.entry.classList.toggle(\"quick-input-list-separator-border\", !!e.separator), i.actionBar.clear();\n            const a = e.item.buttons;\n            a && a.length ? (i.actionBar.push(a.map((t, i) => {\n                let n = t.iconClass || (t.iconPath ? Bp(t.iconPath) : void 0);\n                t.alwaysVisible && (n = n ? n + \" always-visible\" : \"always-visible\");\n                const r = new xa.a(\"id-\" + i, \"\", n, !0, () => function(e, t, i, n) {\n                    return new(i = i || Promise)((function(r, o) {\n                        function s(e) {\n                            try {\n                                l(n.next(e))\n                            } catch (e) {\n                                o(e)\n                            }\n                        }\n\n                        function a(e) {\n                            try {\n                                l(n.throw(e))\n                            } catch (e) {\n                                o(e)\n                            }\n                        }\n\n                        function l(e) {\n                            var t;\n                            e.done ? r(e.value) : ((t = e.value) instanceof i ? t : new i((function(e) {\n                                e(t)\n                            }))).then(s, a)\n                        }\n                        l((n = n.apply(e, t || [])).next())\n                    }))\n                }(this, void 0, void 0, (function*() {\n                    e.fireButtonTriggered({\n                        button: t,\n                        item: e.item\n                    })\n                })));\n                return r.tooltip = t.tooltip || \"\", r\n            }), {\n                icon: !0,\n                label: !1\n            }), i.entry.classList.add(\"has-actions\")) : i.entry.classList.remove(\"has-actions\")\n        }\n        disposeElement(e, t, i) {\n            i.toDisposeElement = Object(v.f)(i.toDisposeElement)\n        }\n        disposeTemplate(e) {\n            e.toDisposeElement = Object(v.f)(e.toDisposeElement), e.toDisposeTemplate = Object(v.f)(e.toDisposeTemplate)\n        }\n    }\n    rg.ID = \"listelement\";\n    class og {\n        getHeight(e) {\n            return e.saneDetail ? 44 : 22\n        }\n        getTemplateId(e) {\n            return rg.ID\n        }\n    }(x = tg = tg || {})[x.First = 1] = \"First\", x[x.Second = 2] = \"Second\", x[x.Last = 3] = \"Last\", x[x.Next = 4] = \"Next\", x[x.Previous = 5] = \"Previous\", x[x.NextPage = 6] = \"NextPage\", x[x.PreviousPage = 7] = \"PreviousPage\";\n    class sg {\n        constructor(e, t, i) {\n            this.parent = e, this.inputElements = [], this.elements = [], this.elementsToIndexes = new Map, this.matchOnDescription = !1, this.matchOnDetail = !1, this.matchOnLabel = !0, this.matchOnMeta = !0, this.sortByLabel = !0, this._onChangedAllVisibleChecked = new D.b, this.onChangedAllVisibleChecked = this._onChangedAllVisibleChecked.event, this._onChangedCheckedCount = new D.b, this.onChangedCheckedCount = this._onChangedCheckedCount.event, this._onChangedVisibleCount = new D.b, this.onChangedVisibleCount = this._onChangedVisibleCount.event, this._onChangedCheckedElements = new D.b, this.onChangedCheckedElements = this._onChangedCheckedElements.event, this._onButtonTriggered = new D.b, this.onButtonTriggered = this._onButtonTriggered.event, this._onKeyDown = new D.b, this.onKeyDown = this._onKeyDown.event, this._onLeave = new D.b, this.onLeave = this._onLeave.event, this._fireCheckedEvents = !0, this.elementDisposables = [], this.disposables = [], this.id = t, this.container = s.n(this.parent, ig(\".quick-input-list\"));\n            var n = new og;\n            e = new ag;\n            this.list = i.createList(\"QuickInput\", this.container, n, [new rg], {\n                identityProvider: {\n                    getId: e => e.saneLabel\n                },\n                setRowLineHeight: !1,\n                multipleSelectionSupport: !1,\n                horizontalScrolling: !1,\n                accessibilityProvider: e\n            }), this.list.getHTMLElement().id = t, this.disposables.push(this.list), this.disposables.push(this.list.onKeyDown(e => {\n                var t = new gt.a(e);\n                switch (t.keyCode) {\n                    case 10:\n                        this.toggleCheckbox();\n                        break;\n                    case 31:\n                        (A.f ? e.metaKey : e.ctrlKey) && this.list.setFocus(Object(ne.o)(this.list.length));\n                        break;\n                    case 16:\n                        var i = this.list.getFocus();\n                        1 === i.length && 0 === i[0] && this._onLeave.fire();\n                        break;\n                    case 18:\n                        1 === (i = this.list.getFocus()).length && i[0] === this.list.length - 1 && this._onLeave.fire()\n                }\n                this._onKeyDown.fire(t)\n            })), this.disposables.push(this.list.onMouseDown(e => {\n                2 !== e.browserEvent.button && e.browserEvent.preventDefault()\n            })), this.disposables.push(s.g(this.container, s.d.CLICK, e => {\n                (e.x || e.y) && this._onLeave.fire()\n            })), this.disposables.push(this.list.onMouseMiddleClick(e => {\n                this._onLeave.fire()\n            })), this.disposables.push(this.list.onContextMenu(e => {\n                \"number\" == typeof e.index && (e.browserEvent.preventDefault(), this.list.setSelection([e.index]))\n            })), this.disposables.push(this._onChangedAllVisibleChecked, this._onChangedCheckedCount, this._onChangedVisibleCount, this._onChangedCheckedElements, this._onButtonTriggered, this._onLeave, this._onKeyDown)\n        }\n        get onDidChangeFocus() {\n            return D.c.map(this.list.onDidChangeFocus, e => e.elements.map(e => e.item))\n        }\n        get onDidChangeSelection() {\n            return D.c.map(this.list.onDidChangeSelection, e => ({\n                items: e.elements.map(e => e.item),\n                event: e.browserEvent\n            }))\n        }\n        get scrollTop() {\n            return this.list.scrollTop\n        }\n        set scrollTop(e) {\n            this.list.scrollTop = e\n        }\n        getAllVisibleChecked() {\n            return this.allVisibleChecked(this.elements, !1)\n        }\n        allVisibleChecked(e, t = !0) {\n            for (let n = 0, r = e.length; n < r; n++) {\n                var i = e[n];\n                if (!i.hidden) {\n                    if (!i.checked) return !1;\n                    t = !0\n                }\n            }\n            return t\n        }\n        getCheckedCount() {\n            let e = 0;\n            var t = this.elements;\n            for (let i = 0, n = t.length; i < n; i++) t[i].checked && e++;\n            return e\n        }\n        getVisibleCount() {\n            let e = 0;\n            var t = this.elements;\n            for (let i = 0, n = t.length; i < n; i++) t[i].hidden || e++;\n            return e\n        }\n        setAllVisibleChecked(e) {\n            try {\n                this._fireCheckedEvents = !1, this.elements.forEach(t => {\n                    t.hidden || (t.checked = e)\n                })\n            } finally {\n                this._fireCheckedEvents = !0, this.fireCheckedEvents()\n            }\n        }\n        setElements(e) {\n            this.elementDisposables = Object(v.f)(this.elementDisposables);\n            const t = e => this.fireButtonTriggered(e);\n            this.inputElements = e, this.elements = e.reduce((i, n, r) => {\n                if (\"separator\" !== n.type) {\n                    var o = r && e[r - 1];\n                    const l = n.label && n.label.replace(/\\r?\\n/g, \" \");\n                    var s = n.meta && n.meta.replace(/\\r?\\n/g, \" \");\n                    const d = n.description && n.description.replace(/\\r?\\n/g, \" \"),\n                        c = n.detail && n.detail.replace(/\\r?\\n/g, \" \");\n                    var a = n.ariaLabel || [l, d, c].map(e => Object(Sa.c)(e)).filter(e => !!e).join(\", \");\n                    i.push(new ng({\n                        index: r,\n                        item: n,\n                        saneLabel: l,\n                        saneMeta: s,\n                        saneAriaLabel: a,\n                        saneDescription: d,\n                        saneDetail: c,\n                        labelHighlights: null === (a = n.highlights) || void 0 === a ? void 0 : a.label,\n                        descriptionHighlights: null === (a = n.highlights) || void 0 === a ? void 0 : a.description,\n                        detailHighlights: null === (n = n.highlights) || void 0 === n ? void 0 : n.detail,\n                        checked: !1,\n                        separator: o && \"separator\" === o.type ? o : void 0,\n                        fireButtonTriggered: t\n                    }))\n                }\n                return i\n            }, []), this.elementDisposables.push(...this.elements), this.elementDisposables.push(...this.elements.map(e => e.onChecked(() => this.fireCheckedEvents()))), this.elementsToIndexes = this.elements.reduce((e, t, i) => (e.set(t.item, i), e), new Map), this.list.splice(0, this.list.length), this.list.splice(0, this.list.length, this.elements), this._onChangedVisibleCount.fire(this.elements.length)\n        }\n        getFocusedElements() {\n            return this.list.getFocusedElements().map(e => e.item)\n        }\n        setFocusedElements(e) {\n            this.list.setFocus(e.filter(e => this.elementsToIndexes.has(e)).map(e => this.elementsToIndexes.get(e))), 0 < e.length && \"number\" == typeof(e = this.list.getFocus()[0]) && this.list.reveal(e)\n        }\n        getActiveDescendant() {\n            return this.list.getHTMLElement().getAttribute(\"aria-activedescendant\")\n        }\n        setSelectedElements(e) {\n            this.list.setSelection(e.filter(e => this.elementsToIndexes.has(e)).map(e => this.elementsToIndexes.get(e)))\n        }\n        getCheckedElements() {\n            return this.elements.filter(e => e.checked).map(e => e.item)\n        }\n        setCheckedElements(e) {\n            try {\n                this._fireCheckedEvents = !1;\n                const t = new Set;\n                for (const i of e) t.add(i);\n                for (const e of this.elements) e.checked = t.has(e.item)\n            } finally {\n                this._fireCheckedEvents = !0, this.fireCheckedEvents()\n            }\n        }\n        set enabled(e) {\n            this.list.getHTMLElement().style.pointerEvents = e ? \"\" : \"none\"\n        }\n        focus(e) {\n            if (this.list.length) {\n                switch (e = (e = (e = e === tg.Next && this.list.getFocus()[0] === this.list.length - 1 ? tg.First : e) === tg.Previous && 0 === this.list.getFocus()[0] ? tg.Last : e) === tg.Second && this.list.length < 2 ? tg.First : e) {\n                    case tg.First:\n                        this.list.focusFirst();\n                        break;\n                    case tg.Second:\n                        this.list.focusNth(1);\n                        break;\n                    case tg.Last:\n                        this.list.focusLast();\n                        break;\n                    case tg.Next:\n                        this.list.focusNext();\n                        break;\n                    case tg.Previous:\n                        this.list.focusPrevious();\n                        break;\n                    case tg.NextPage:\n                        this.list.focusNextPage();\n                        break;\n                    case tg.PreviousPage:\n                        this.list.focusPreviousPage()\n                }\n                \"number\" == typeof(e = this.list.getFocus()[0]) && this.list.reveal(e)\n            }\n        }\n        clearFocus() {\n            this.list.setFocus([])\n        }\n        domFocus() {\n            this.list.domFocus()\n        }\n        layout(e) {\n            this.list.getHTMLElement().style.maxHeight = e ? `calc(${44*Math.floor(e/44)}px)` : \"\", this.list.layout()\n        }\n        filter(e) {\n            if (!(this.sortByLabel || this.matchOnLabel || this.matchOnDescription || this.matchOnDetail)) return this.list.layout(), !1;\n            if ((e = e.trim()) && (this.matchOnLabel || this.matchOnDescription || this.matchOnDetail)) {\n                let t;\n                this.elements.forEach(i => {\n                    var n = this.matchOnLabel ? Object(ve.o)(Xd(e, Zd(i.saneLabel))) : void 0,\n                        r = this.matchOnDescription ? Object(ve.o)(Xd(e, Zd(i.saneDescription || \"\"))) : void 0,\n                        o = this.matchOnDetail ? Object(ve.o)(Xd(e, Zd(i.saneDetail || \"\"))) : void 0,\n                        s = this.matchOnMeta ? Object(ve.o)(Xd(e, Zd(i.saneMeta || \"\"))) : void 0;\n                    n || r || o || s ? (i.labelHighlights = n, i.descriptionHighlights = r, i.detailHighlights = o, i.hidden = !1) : (i.labelHighlights = void 0, i.descriptionHighlights = void 0, i.detailHighlights = void 0, i.hidden = !i.item.alwaysShow), i.separator = void 0, this.sortByLabel || (o = i.index && this.inputElements[i.index - 1], t = o && \"separator\" === o.type ? o : t, t && !i.hidden && (i.separator = t, t = void 0))\n                })\n            } else this.elements.forEach(e => {\n                e.labelHighlights = void 0, e.descriptionHighlights = void 0, e.detailHighlights = void 0, e.hidden = !1;\n                var t = e.index && this.inputElements[e.index - 1];\n                e.separator = t && \"separator\" === t.type ? t : void 0\n            });\n            const t = this.elements.filter(e => !e.hidden);\n            if (this.sortByLabel && e) {\n                const i = e.toLowerCase();\n                t.sort((e, t) => {\n                    return r = t, o = i, e = (n = e).labelHighlights || [], t = r.labelHighlights || [], !e.length || t.length ? e.length || !t.length ? 0 !== e.length || 0 !== t.length ? function(e, t, i) {\n                        const n = e.toLowerCase(),\n                            r = t.toLowerCase();\n                        return (e = function(e, t, i) {\n                            const n = e.toLowerCase(),\n                                r = t.toLowerCase(),\n                                o = n.startsWith(i),\n                                s = r.startsWith(i);\n                            if (o !== s) return o ? -1 : 1;\n                            if (o && s) {\n                                if (n.length < r.length) return -1;\n                                if (n.length > r.length) return 1\n                            }\n                            return 0\n                        }(e, t, i)) ? e : (t = n.endsWith(i)) !== r.endsWith(i) ? t ? -1 : 1 : (t = (e = n) || \"\", e = (i = r) || \"\", i = eg.value.collator.compare(t, e), 0 !== (i = eg.value.collatorIsNumeric && 0 === i && t !== e ? t < e ? -1 : 1 : i) ? i : n.localeCompare(r))\n                    }(n.saneLabel, r.saneLabel, o) : 0 : 1 : -1;\n                    var n, r, o\n                })\n            }\n            return this.elementsToIndexes = t.reduce((e, t, i) => (e.set(t.item, i), e), new Map), this.list.splice(0, this.list.length, t), this.list.setFocus([]), this.list.layout(), this._onChangedAllVisibleChecked.fire(this.getAllVisibleChecked()), this._onChangedVisibleCount.fire(t.length), !0\n        }\n        toggleCheckbox() {\n            try {\n                this._fireCheckedEvents = !1;\n                var e = this.list.getFocusedElements(),\n                    t = this.allVisibleChecked(e);\n                for (const i of e) i.checked = !t\n            } finally {\n                this._fireCheckedEvents = !0, this.fireCheckedEvents()\n            }\n        }\n        display(e) {\n            this.container.style.display = e ? \"\" : \"none\"\n        }\n        isDisplayed() {\n            return \"none\" !== this.container.style.display\n        }\n        dispose() {\n            this.elementDisposables = Object(v.f)(this.elementDisposables), this.disposables = Object(v.f)(this.disposables)\n        }\n        fireCheckedEvents() {\n            this._fireCheckedEvents && (this._onChangedAllVisibleChecked.fire(this.getAllVisibleChecked()), this._onChangedCheckedCount.fire(this.getCheckedCount()), this._onChangedCheckedElements.fire(this.getCheckedElements()))\n        }\n        fireButtonTriggered(e) {\n            this._onButtonTriggered.fire(e)\n        }\n        style(e) {\n            this.list.style(e)\n        }\n    }\n    S([gi.a], sg.prototype, \"onDidChangeFocus\", null), S([gi.a], sg.prototype, \"onDidChangeSelection\", null);\n    class ag {\n        getWidgetAriaLabel() {\n            return Object(yt.a)(\"quickInput\", \"Quick Input\")\n        }\n        getAriaLabel(e) {\n            return e.saneAriaLabel\n        }\n        getWidgetRole() {\n            return \"listbox\"\n        }\n        getRole() {\n            return \"option\"\n        }\n    }\n    var lg, dg = function(e, t, i, n) {\n        return new(i = i || Promise)((function(r, o) {\n            function s(e) {\n                try {\n                    l(n.next(e))\n                } catch (e) {\n                    o(e)\n                }\n            }\n\n            function a(e) {\n                try {\n                    l(n.throw(e))\n                } catch (e) {\n                    o(e)\n                }\n            }\n\n            function l(e) {\n                var t;\n                e.done ? r(e.value) : ((t = e.value) instanceof i ? t : new i((function(e) {\n                    e(t)\n                }))).then(s, a)\n            }\n            l((n = n.apply(e, t || [])).next())\n        }))\n    };\n    const cg = s.a,\n        hg = {\n            iconClass: Object(Sa.e)(\"quick-input-back\", Sa.b.arrowLeft).classNames,\n            tooltip: Object(yt.a)(\"quickInput.back\", \"Back\"),\n            handle: -1\n        };\n    class ug extends v.a {\n        constructor(e) {\n            super(), this.ui = e, this.visible = !1, this._enabled = !0, this._busy = !1, this._ignoreFocusOut = !1, this._buttons = [], this.noValidationMessage = ug.noPromptMessage, this._severity = mt.a.Ignore, this.buttonsUpdated = !1, this.onDidTriggerButtonEmitter = this._register(new D.b), this.onDidHideEmitter = this._register(new D.b), this.onDisposeEmitter = this._register(new D.b), this.visibleDisposables = this._register(new v.b), this.onDidHide = this.onDidHideEmitter.event\n        }\n        get title() {\n            return this._title\n        }\n        set title(e) {\n            this._title = e, this.update()\n        }\n        get description() {\n            return this._description\n        }\n        set description(e) {\n            this._description = e, this.update()\n        }\n        get step() {\n            return this._steps\n        }\n        set step(e) {\n            this._steps = e, this.update()\n        }\n        get totalSteps() {\n            return this._totalSteps\n        }\n        set totalSteps(e) {\n            this._totalSteps = e, this.update()\n        }\n        get enabled() {\n            return this._enabled\n        }\n        set enabled(e) {\n            this._enabled = e, this.update()\n        }\n        get contextKey() {\n            return this._contextKey\n        }\n        set contextKey(e) {\n            this._contextKey = e, this.update()\n        }\n        get busy() {\n            return this._busy\n        }\n        set busy(e) {\n            this._busy = e, this.update()\n        }\n        get ignoreFocusOut() {\n            return this._ignoreFocusOut\n        }\n        set ignoreFocusOut(e) {\n            var t = this._ignoreFocusOut !== e && !A.c;\n            this._ignoreFocusOut = e && !A.c, t && this.update()\n        }\n        get buttons() {\n            return this._buttons\n        }\n        set buttons(e) {\n            this._buttons = e, this.buttonsUpdated = !0, this.update()\n        }\n        get validationMessage() {\n            return this._validationMessage\n        }\n        set validationMessage(e) {\n            this._validationMessage = e, this.update()\n        }\n        get severity() {\n            return this._severity\n        }\n        set severity(e) {\n            this._severity = e, this.update()\n        }\n        show() {\n            this.visible || (this.visibleDisposables.add(this.ui.onDidTriggerButton(e => {\n                -1 !== this.buttons.indexOf(e) && this.onDidTriggerButtonEmitter.fire(e)\n            })), this.ui.show(this), this.visible = !0, this._lastValidationMessage = void 0, this._lastSeverity = void 0, this.buttons.length && (this.buttonsUpdated = !0), this.update())\n        }\n        hide() {\n            this.visible && this.ui.hide()\n        }\n        didHide(e = Ap.Other) {\n            this.visible = !1, this.visibleDisposables.clear(), this.onDidHideEmitter.fire({\n                reason: e\n            })\n        }\n        update() {\n            if (this.visible) {\n                var e = this.getTitle();\n                if (e && this.ui.title.textContent !== e ? this.ui.title.textContent = e : e || \"&nbsp;\" === this.ui.title.innerHTML || (this.ui.title.innerText = \" \"), e = this.getDescription(), this.ui.description1.textContent !== e && (this.ui.description1.textContent = e), this.ui.description2.textContent !== e && (this.ui.description2.textContent = e), this.busy && !this.busyDelay && (this.busyDelay = new q.g, this.busyDelay.setIfNotSet(() => {\n                        this.visible && this.ui.progressBar.infinite()\n                    }, 800)), !this.busy && this.busyDelay && (this.ui.progressBar.stop(), this.busyDelay.cancel(), this.busyDelay = void 0), this.buttonsUpdated) {\n                    this.buttonsUpdated = !1, this.ui.leftActionBar.clear();\n                    const e = this.buttons.filter(e => e === hg);\n                    this.ui.leftActionBar.push(e.map((e, t) => {\n                        const i = new xa.a(\"id-\" + t, \"\", e.iconClass || Bp(e.iconPath), !0, () => dg(this, void 0, void 0, (function*() {\n                            this.onDidTriggerButtonEmitter.fire(e)\n                        })));\n                        return i.tooltip = e.tooltip || \"\", i\n                    }), {\n                        icon: !0,\n                        label: !1\n                    }), this.ui.rightActionBar.clear();\n                    const t = this.buttons.filter(e => e !== hg);\n                    this.ui.rightActionBar.push(t.map((e, t) => {\n                        const i = new xa.a(\"id-\" + t, \"\", e.iconClass || Bp(e.iconPath), !0, () => dg(this, void 0, void 0, (function*() {\n                            this.onDidTriggerButtonEmitter.fire(e)\n                        })));\n                        return i.tooltip = e.tooltip || \"\", i\n                    }), {\n                        icon: !0,\n                        label: !1\n                    })\n                }\n                this.ui.ignoreFocusOut = this.ignoreFocusOut, this.ui.setEnabled(this.enabled), this.ui.setContextKey(this.contextKey), e = this.validationMessage || this.noValidationMessage, this._lastValidationMessage !== e && (this._lastValidationMessage = e, s.N(this.ui.message, ...Lp(e))), this._lastSeverity !== this.severity && (this._lastSeverity = this.severity, this.showMessageDecoration(this.severity))\n            }\n        }\n        getTitle() {\n            return this.title && this.step ? `${this.title} (${this.getSteps()})` : this.title || (this.step ? this.getSteps() : \"\")\n        }\n        getDescription() {\n            return this.description || \"\"\n        }\n        getSteps() {\n            return this.step && this.totalSteps ? Object(yt.a)(\"quickInput.steps\", \"{0}/{1}\", this.step, this.totalSteps) : this.step ? String(this.step) : \"\"\n        }\n        showMessageDecoration(e) {\n            this.ui.inputBox.showDecoration(e), e !== mt.a.Ignore ? (e = this.ui.inputBox.stylesForType(e), this.ui.message.style.color = e.foreground ? \"\" + e.foreground : \"\", this.ui.message.style.backgroundColor = e.background ? \"\" + e.background : \"\", this.ui.message.style.border = e.border ? \"1px solid \" + e.border : \"\", this.ui.message.style.paddingBottom = \"4px\") : (this.ui.message.style.color = \"\", this.ui.message.style.backgroundColor = \"\", this.ui.message.style.border = \"\", this.ui.message.style.paddingBottom = \"\")\n        }\n        dispose() {\n            this.hide(), this.onDisposeEmitter.fire(), super.dispose()\n        }\n    }\n    ug.noPromptMessage = Object(yt.a)(\"inputModeEntry\", \"Press 'Enter' to confirm your input or 'Escape' to cancel\");\n    class pg extends ug {\n        constructor() {\n            super(...arguments), this._value = \"\", this.onDidChangeValueEmitter = this._register(new D.b), this.onWillAcceptEmitter = this._register(new D.b), this.onDidAcceptEmitter = this._register(new D.b), this.onDidCustomEmitter = this._register(new D.b), this._items = [], this.itemsUpdated = !1, this._canSelectMany = !1, this._canAcceptInBackground = !1, this._matchOnDescription = !1, this._matchOnDetail = !1, this._matchOnLabel = !0, this._sortByLabel = !0, this._autoFocusOnList = !0, this._keepScrollPosition = !1, this._itemActivation = this.ui.isScreenReaderOptimized() ? Rp.NONE : Rp.FIRST, this._activeItems = [], this.activeItemsUpdated = !1, this.activeItemsToConfirm = [], this.onDidChangeActiveEmitter = this._register(new D.b), this._selectedItems = [], this.selectedItemsUpdated = !1, this.selectedItemsToConfirm = [], this.onDidChangeSelectionEmitter = this._register(new D.b), this.onDidTriggerItemButtonEmitter = this._register(new D.b), this.valueSelectionUpdated = !0, this._ok = \"default\", this._customButton = !1, this.filterValue = e => e, 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\n        }\n        get quickNavigate() {\n            return this._quickNavigate\n        }\n        set quickNavigate(e) {\n            this._quickNavigate = e, this.update()\n        }\n        get value() {\n            return this._value\n        }\n        set value(e) {\n            this._value !== e && (this._value = e || \"\", this.update(), this.onDidChangeValueEmitter.fire(this._value))\n        }\n        set ariaLabel(e) {\n            this._ariaLabel = e, this.update()\n        }\n        get ariaLabel() {\n            return this._ariaLabel\n        }\n        get placeholder() {\n            return this._placeholder\n        }\n        set placeholder(e) {\n            this._placeholder = e, this.update()\n        }\n        get items() {\n            return this._items\n        }\n        get scrollTop() {\n            return this.ui.list.scrollTop\n        }\n        set scrollTop(e) {\n            this.ui.list.scrollTop = e\n        }\n        set items(e) {\n            this._items = e, this.itemsUpdated = !0, this.update()\n        }\n        get canSelectMany() {\n            return this._canSelectMany\n        }\n        set canSelectMany(e) {\n            this._canSelectMany = e, this.update()\n        }\n        get canAcceptInBackground() {\n            return this._canAcceptInBackground\n        }\n        set canAcceptInBackground(e) {\n            this._canAcceptInBackground = e\n        }\n        get matchOnDescription() {\n            return this._matchOnDescription\n        }\n        set matchOnDescription(e) {\n            this._matchOnDescription = e, this.update()\n        }\n        get matchOnDetail() {\n            return this._matchOnDetail\n        }\n        set matchOnDetail(e) {\n            this._matchOnDetail = e, this.update()\n        }\n        get matchOnLabel() {\n            return this._matchOnLabel\n        }\n        set matchOnLabel(e) {\n            this._matchOnLabel = e, this.update()\n        }\n        get sortByLabel() {\n            return this._sortByLabel\n        }\n        set sortByLabel(e) {\n            this._sortByLabel = e, this.update()\n        }\n        get autoFocusOnList() {\n            return this._autoFocusOnList\n        }\n        set autoFocusOnList(e) {\n            this._autoFocusOnList = e, this.update()\n        }\n        get keepScrollPosition() {\n            return this._keepScrollPosition\n        }\n        set keepScrollPosition(e) {\n            this._keepScrollPosition = e\n        }\n        get itemActivation() {\n            return this._itemActivation\n        }\n        set itemActivation(e) {\n            this._itemActivation = e\n        }\n        get activeItems() {\n            return this._activeItems\n        }\n        set activeItems(e) {\n            this._activeItems = e, this.activeItemsUpdated = !0, this.update()\n        }\n        get selectedItems() {\n            return this._selectedItems\n        }\n        set selectedItems(e) {\n            this._selectedItems = e, this.selectedItemsUpdated = !0, this.update()\n        }\n        get keyMods() {\n            return this._quickNavigate ? Vp : this.ui.keyMods\n        }\n        set valueSelection(e) {\n            this._valueSelection = e, this.valueSelectionUpdated = !0, this.update()\n        }\n        get customButton() {\n            return this._customButton\n        }\n        set customButton(e) {\n            this._customButton = e, this.update()\n        }\n        get customLabel() {\n            return this._customButtonLabel\n        }\n        set customLabel(e) {\n            this._customButtonLabel = e, this.update()\n        }\n        get customHover() {\n            return this._customButtonHover\n        }\n        set customHover(e) {\n            this._customButtonHover = e, this.update()\n        }\n        get ok() {\n            return this._ok\n        }\n        set ok(e) {\n            this._ok = e, this.update()\n        }\n        get hideInput() {\n            return !!this._hideInput\n        }\n        set hideInput(e) {\n            this._hideInput = e, this.update()\n        }\n        trySelectFirst() {\n            this.autoFocusOnList && (this.canSelectMany || this.ui.list.focus(tg.First))\n        }\n        show() {\n            this.visible || (this.visibleDisposables.add(this.ui.inputBox.onDidChange(e => {\n                e !== this.value && (this._value = e, this.ui.list.filter(this.filterValue(this.ui.inputBox.value)) && this.trySelectFirst(), this.onDidChangeValueEmitter.fire(e))\n            })), this.visibleDisposables.add(this.ui.inputBox.onMouseDown(e => {\n                this.autoFocusOnList || this.ui.list.clearFocus()\n            })), this.visibleDisposables.add((this._hideInput ? this.ui.list : this.ui.inputBox).onKeyDown(e => {\n                switch (e.keyCode) {\n                    case 18:\n                        this.ui.list.focus(tg.Next), this.canSelectMany && this.ui.list.domFocus(), s.c.stop(e, !0);\n                        break;\n                    case 16:\n                        this.ui.list.getFocusedElements().length ? this.ui.list.focus(tg.Previous) : this.ui.list.focus(tg.Last), this.canSelectMany && this.ui.list.domFocus(), s.c.stop(e, !0);\n                        break;\n                    case 12:\n                        this.ui.list.focus(tg.NextPage), this.canSelectMany && this.ui.list.domFocus(), s.c.stop(e, !0);\n                        break;\n                    case 11:\n                        this.ui.list.focus(tg.PreviousPage), this.canSelectMany && this.ui.list.domFocus(), s.c.stop(e, !0);\n                        break;\n                    case 17:\n                        if (!this._canAcceptInBackground) return;\n                        if (!this.ui.inputBox.isSelectionAtEnd()) return;\n                        this.activeItems[0] && (this._selectedItems = [this.activeItems[0]], this.onDidChangeSelectionEmitter.fire(this.selectedItems), this.handleAccept(!0));\n                        break;\n                    case 14:\n                        !e.ctrlKey && !e.metaKey || e.shiftKey || e.altKey || (this.ui.list.focus(tg.First), s.c.stop(e, !0));\n                        break;\n                    case 13:\n                        !e.ctrlKey && !e.metaKey || e.shiftKey || e.altKey || (this.ui.list.focus(tg.Last), s.c.stop(e, !0))\n                }\n            })), this.visibleDisposables.add(this.ui.onDidAccept(() => {\n                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)\n            })), this.visibleDisposables.add(this.ui.onDidCustom(() => {\n                this.onDidCustomEmitter.fire()\n            })), this.visibleDisposables.add(this.ui.list.onDidChangeFocus(e => {\n                this.activeItemsUpdated || this.activeItemsToConfirm !== this._activeItems && Object(ne.g)(e, this._activeItems, (e, t) => e === t) || (this._activeItems = e, this.onDidChangeActiveEmitter.fire(e))\n            })), this.visibleDisposables.add(this.ui.list.onDidChangeSelection(({\n                items: e,\n                event: t\n            }) => {\n                this.canSelectMany ? e.length && this.ui.list.setSelectedElements([]) : this.selectedItemsToConfirm !== this._selectedItems && Object(ne.g)(e, this._selectedItems, (e, t) => e === t) || (this._selectedItems = e, this.onDidChangeSelectionEmitter.fire(e), e.length && this.handleAccept(t instanceof MouseEvent && 1 === t.button))\n            })), this.visibleDisposables.add(this.ui.list.onChangedCheckedElements(e => {\n                this.canSelectMany && (this.selectedItemsToConfirm !== this._selectedItems && Object(ne.g)(e, this._selectedItems, (e, t) => e === t) || (this._selectedItems = e, this.onDidChangeSelectionEmitter.fire(e)))\n            })), this.visibleDisposables.add(this.ui.list.onButtonTriggered(e => this.onDidTriggerItemButtonEmitter.fire(e))), this.visibleDisposables.add(this.registerQuickNavigation()), this.valueSelectionUpdated = !0), super.show()\n        }\n        handleAccept(e) {\n            let t = !1;\n            this.onWillAcceptEmitter.fire({\n                veto: () => t = !0\n            }), t || this.onDidAcceptEmitter.fire({\n                inBackground: e\n            })\n        }\n        registerQuickNavigation() {\n            return s.g(this.ui.container, s.d.KEY_UP, e => {\n                if (!this.canSelectMany && this._quickNavigate) {\n                    const t = new gt.a(e),\n                        i = t.keyCode;\n                    this._quickNavigate.keybindings.some(e => {\n                        var [n, e] = e.getParts();\n                        return !(e || (n.shiftKey && 4 === i ? t.ctrlKey || t.altKey || t.metaKey : !(n.altKey && 6 === i || n.ctrlKey && 5 === i || n.metaKey && 57 === i)))\n                    }) && (this.activeItems[0] && (this._selectedItems = [this.activeItems[0]], this.onDidChangeSelectionEmitter.fire(this.selectedItems), this.handleAccept(!1)), this._quickNavigate = void 0)\n                }\n            })\n        }\n        update() {\n            if (this.visible) {\n                var e = this.keepScrollPosition ? this.scrollTop : 0,\n                    t = !!this._hideInput && 0 < this._items.length;\n                this.ui.container.classList.toggle(\"hidden-input\", t && !this.description);\n                var i = {\n                    title: !!this.title || !!this.step || !!this.buttons.length,\n                    description: !!this.description,\n                    checkAll: this.canSelectMany && !this._hideCheckAll,\n                    checkBox: this.canSelectMany,\n                    inputBox: !t,\n                    progressBar: !t,\n                    visibleCount: !0,\n                    count: this.canSelectMany,\n                    ok: \"default\" === this.ok ? this.canSelectMany : this.ok,\n                    list: !0,\n                    message: !!this.validationMessage,\n                    customButton: this.customButton\n                };\n                if (this.ui.setVisibilities(i), 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 && {\n                        start: this._valueSelection[0],\n                        end: this._valueSelection[1]\n                    })), this.ui.inputBox.placeholder !== (this.placeholder || \"\") && (this.ui.inputBox.placeholder = this.placeholder || \"\"), t = this.ariaLabel || this.placeholder || pg.DEFAULT_ARIA_LABEL, this.ui.inputBox.ariaLabel !== t && (this.ui.inputBox.ariaLabel = t), this.ui.list.matchOnDescription = this.matchOnDescription, this.ui.list.matchOnDetail = this.matchOnDetail, this.ui.list.matchOnLabel = this.matchOnLabel, this.ui.list.sortByLabel = this.sortByLabel, this.itemsUpdated) switch (this.itemsUpdated = !1, this.ui.list.setElements(this.items), this.ui.list.filter(this.filterValue(this.ui.inputBox.value)), this.ui.checkAll.checked = this.ui.list.getAllVisibleChecked(), this.ui.visibleCount.setCount(this.ui.list.getVisibleCount()), this.ui.count.setCount(this.ui.list.getCheckedCount()), this._itemActivation) {\n                    case Rp.NONE:\n                        this._itemActivation = Rp.FIRST;\n                        break;\n                    case Rp.SECOND:\n                        this.ui.list.focus(tg.Second), this._itemActivation = Rp.FIRST;\n                        break;\n                    case Rp.LAST:\n                        this.ui.list.focus(tg.Last), this._itemActivation = Rp.FIRST;\n                        break;\n                    default:\n                        this.trySelectFirst()\n                }\n                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 || \"\", this.ui.setComboboxAccessibility(!0), i.inputBox || (this.ui.list.domFocus(), this.canSelectMany && this.ui.list.focus(tg.First)), this.keepScrollPosition && (this.scrollTop = e)\n            }\n        }\n    }\n    pg.DEFAULT_ARIA_LABEL = Object(yt.a)(\"quickInputBox.ariaLabel\", \"Type to narrow down results.\");\n    class gg extends v.a {\n        constructor(e) {\n            super(), this.options = e, this.comboboxAccessibility = !1, this.enabled = !0, this.onDidAcceptEmitter = this._register(new D.b), this.onDidCustomEmitter = this._register(new D.b), this.onDidTriggerButtonEmitter = this._register(new D.b), this.keyMods = {\n                ctrlCmd: !1,\n                alt: !1\n            }, this.controller = null, this.onShowEmitter = this._register(new D.b), this.onShow = this.onShowEmitter.event, this.onHideEmitter = this._register(new D.b), this.onHide = this.onHideEmitter.event, this.idPrefix = e.idPrefix, this.parentElement = e.container, this.styles = e.styles, this.registerKeyModsListeners()\n        }\n        registerKeyModsListeners() {\n            var e = e => {\n                this.keyMods.ctrlCmd = e.ctrlKey || e.metaKey, this.keyMods.alt = e.altKey\n            };\n            this._register(s.g(window, s.d.KEY_DOWN, e, !0)), this._register(s.g(window, s.d.KEY_UP, e, !0)), this._register(s.g(window, s.d.MOUSE_DOWN, e, !0))\n        }\n        getUI() {\n            if (this.ui) return this.ui;\n            const e = s.n(this.parentElement, cg(\".quick-input-widget.show-file-icons\"));\n            e.tabIndex = -1, e.style.display = \"none\";\n            var t = s.t(e),\n                i = s.n(e, cg(\".quick-input-titlebar\"));\n            const n = this._register(new Ca.a(i));\n            n.domNode.classList.add(\"quick-input-left-action-bar\");\n            var r = s.n(i, cg(\".quick-input-title\"));\n            const o = this._register(new Ca.a(i));\n            o.domNode.classList.add(\"quick-input-right-action-bar\");\n            var a = s.n(e, cg(\".quick-input-description\")),\n                l = s.n(e, cg(\".quick-input-header\"));\n            const d = s.n(l, cg(\"input.quick-input-check-all\"));\n            d.type = \"checkbox\", this._register(s.l(d, s.d.CHANGE, e => {\n                var t = d.checked;\n                y.setAllVisibleChecked(t)\n            })), this._register(s.g(d, s.d.CLICK, e => {\n                (e.x || e.y) && p.setFocus()\n            }));\n            var c = s.n(l, cg(\".quick-input-description\")),\n                h = s.n(l, cg(\".quick-input-and-message\")),\n                u = s.n(h, cg(\".quick-input-filter\"));\n            const p = this._register(new Hp(u));\n            p.setAttribute(\"aria-describedby\", this.idPrefix + \"message\");\n            const g = s.n(u, cg(\".quick-input-visible-count\"));\n            g.setAttribute(\"aria-live\", \"polite\"), g.setAttribute(\"aria-atomic\", \"true\");\n            const f = new Dp(g, {\n                    countFormat: Object(yt.a)({\n                        key: \"quickInput.visibleCount\",\n                        comment: [\"This tells the user how many items are shown in a list of items to select from. The items can be anything. Currently not visible, but read by screen readers.\"]\n                    }, \"{0} Results\")\n                }),\n                m = s.n(u, cg(\".quick-input-count\"));\n            m.setAttribute(\"aria-live\", \"polite\");\n            const v = new Dp(m, {\n                countFormat: Object(yt.a)({\n                    key: \"quickInput.countSelected\",\n                    comment: [\"This tells the user how many items are selected in a list of items to select from. The items can be anything.\"]\n                }, \"{0} Selected\")\n            });\n            var b = s.n(l, cg(\".quick-input-action\"));\n            const _ = new Ep(b);\n            _.label = Object(yt.a)(\"ok\", \"OK\"), this._register(_.onDidClick(e => {\n                this.onDidAcceptEmitter.fire()\n            })), l = s.n(l, cg(\".quick-input-action\"));\n            const w = new Ep(l);\n            w.label = Object(yt.a)(\"custom\", \"自定义\"), this._register(w.onDidClick(e => {\n                this.onDidCustomEmitter.fire()\n            })), h = s.n(h, cg(`#${this.idPrefix}message.quick-input-message`));\n            const y = this._register(new sg(e, this.idPrefix + \"list\", this.options));\n            this._register(y.onChangedAllVisibleChecked(e => {\n                d.checked = e\n            })), this._register(y.onChangedVisibleCount(e => {\n                f.setCount(e)\n            })), this._register(y.onChangedCheckedCount(e => {\n                v.setCount(e)\n            })), this._register(y.onLeave(() => {\n                setTimeout(() => {\n                    p.setFocus(), this.controller instanceof pg && this.controller.canSelectMany && y.clearFocus()\n                }, 0)\n            })), this._register(y.onDidChangeFocus(() => {\n                this.comboboxAccessibility && this.getUI().inputBox.setAttribute(\"aria-activedescendant\", this.getUI().list.getActiveDescendant() || \"\")\n            }));\n            const C = new Mp(e);\n            C.getContainer().classList.add(\"quick-input-progress\");\n            const x = s.T(e);\n            return this._register(x), this._register(s.g(e, s.d.FOCUS, e => {\n                this.previousFocusElement = e.relatedTarget instanceof HTMLElement ? e.relatedTarget : void 0\n            }, !0)), this._register(x.onDidBlur(() => {\n                this.getUI().ignoreFocusOut || this.options.ignoreFocusOut() || this.hide(Ap.Blur), this.previousFocusElement = void 0\n            })), this._register(s.g(e, s.d.FOCUS, e => {\n                p.setFocus()\n            })), this._register(s.g(e, s.d.KEY_DOWN, t => {\n                var i = new gt.a(t);\n                switch (i.keyCode) {\n                    case 3:\n                        s.c.stop(t, !0), this.onDidAcceptEmitter.fire();\n                        break;\n                    case 9:\n                        s.c.stop(t, !0), this.hide(Ap.Gesture);\n                        break;\n                    case 2:\n                        if (!i.altKey && !i.ctrlKey && !i.metaKey) {\n                            const n = [\".action-label.codicon\"];\n                            e.classList.contains(\"show-checkboxes\") ? n.push(\"input\") : n.push(\"input[type=text]\"), this.getUI().list.isDisplayed() && n.push(\".monaco-list\");\n                            const r = e.querySelectorAll(n.join(\", \"));\n                            i.shiftKey && i.target === r[0] ? (s.c.stop(t, !0), r[r.length - 1].focus()) : i.shiftKey || i.target !== r[r.length - 1] || (s.c.stop(t, !0), r[0].focus())\n                        }\n                }\n            })), this.ui = {\n                container: e,\n                styleSheet: t,\n                leftActionBar: n,\n                titleBar: i,\n                title: r,\n                description1: a,\n                description2: c,\n                rightActionBar: o,\n                checkAll: d,\n                filterContainer: u,\n                inputBox: p,\n                visibleCountContainer: g,\n                visibleCount: f,\n                countContainer: m,\n                count: v,\n                okContainer: b,\n                ok: _,\n                message: h,\n                customButtonContainer: l,\n                customButton: w,\n                list: y,\n                progressBar: C,\n                onDidAccept: this.onDidAcceptEmitter.event,\n                onDidCustom: this.onDidCustomEmitter.event,\n                onDidTriggerButton: this.onDidTriggerButtonEmitter.event,\n                ignoreFocusOut: !1,\n                keyMods: this.keyMods,\n                isScreenReaderOptimized: () => this.options.isScreenReaderOptimized(),\n                show: e => this.show(e),\n                hide: () => this.hide(),\n                setVisibilities: e => this.setVisibilities(e),\n                setComboboxAccessibility: e => this.setComboboxAccessibility(e),\n                setEnabled: e => this.setEnabled(e),\n                setContextKey: e => this.options.setContextKey(e)\n            }, this.updateStyles(), this.ui\n        }\n        pick(e, t = {}, i = a.a.None) {\n            return new Promise((n, r) => {\n                let o = e => {\n                    o = n, t.onKeyMods && t.onKeyMods(s.keyMods), n(e)\n                };\n                if (i.isCancellationRequested) return void o(void 0);\n                const s = this.createQuickPick();\n                let a;\n                const l = [s, s.onDidAccept(() => {\n                    var e;\n                    s.canSelectMany ? (o(s.selectedItems.slice()), s.hide()) : (e = s.activeItems[0]) && (o(e), s.hide())\n                }), s.onDidChangeActive(e => {\n                    (e = e[0]) && t.onDidFocus && t.onDidFocus(e)\n                }), s.onDidChangeSelection(e => {\n                    s.canSelectMany || (e = e[0]) && (o(e), s.hide())\n                }), s.onDidTriggerItemButton(e => t.onDidTriggerItemButton && t.onDidTriggerItemButton(Object.assign(Object.assign({}, e), {\n                    removeItem: () => {\n                        if (-1 !== (i = s.items.indexOf(e.item))) {\n                            const e = s.items.slice(),\n                                n = e.splice(i, 1);\n                            var t = s.activeItems.filter(e => e !== n[0]),\n                                i = s.keepScrollPosition;\n                            s.keepScrollPosition = !0, s.items = e, t && (s.activeItems = t), s.keepScrollPosition = i\n                        }\n                    }\n                }))), s.onDidChangeValue(e => {\n                    !a || e || 1 === s.activeItems.length && s.activeItems[0] === a || (s.activeItems = [a])\n                }), i.onCancellationRequested(() => {\n                    s.hide()\n                }), s.onDidHide(() => {\n                    Object(v.f)(l), o(void 0)\n                })];\n                s.title = t.title, s.canSelectMany = !!t.canPickMany, s.placeholder = t.placeHolder, s.ignoreFocusOut = !!t.ignoreFocusLost, s.matchOnDescription = !!t.matchOnDescription, s.matchOnDetail = !!t.matchOnDetail, s.matchOnLabel = void 0 === t.matchOnLabel || t.matchOnLabel, s.autoFocusOnList = void 0 === t.autoFocusOnList || t.autoFocusOnList, s.quickNavigate = t.quickNavigate, s.contextKey = t.contextKey, s.busy = !0, Promise.all([e, t.activeItem]).then(([e, t]) => {\n                    a = t, s.busy = !1, s.items = e, s.canSelectMany && (s.selectedItems = e.filter(e => \"separator\" !== e.type && e.picked)), a && (s.activeItems = [a])\n                }), s.show(), Promise.resolve(e).then(void 0, e => {\n                    r(e), s.hide()\n                })\n            })\n        }\n        createQuickPick() {\n            var e = this.getUI();\n            return new pg(e)\n        }\n        show(e) {\n            const t = this.getUI();\n            this.onShowEmitter.fire();\n            const i = this.controller;\n            this.controller = e, i && i.didHide(), this.setEnabled(!0), t.leftActionBar.clear(), t.title.textContent = \"\", t.description1.textContent = \"\", t.description2.textContent = \"\", t.rightActionBar.clear(), t.checkAll.checked = !1, t.inputBox.placeholder = \"\", t.inputBox.password = !1, t.inputBox.showDecoration(mt.a.Ignore), t.visibleCount.setCount(0), t.count.setCount(0), s.N(t.message), t.progressBar.stop(), t.list.setElements([]), t.list.matchOnDescription = !1, t.list.matchOnDetail = !1, t.list.matchOnLabel = !0, t.list.sortByLabel = !0, t.ignoreFocusOut = !1, this.setComboboxAccessibility(!1), t.inputBox.ariaLabel = \"\", e = this.options.backKeybindingLabel(), hg.tooltip = e ? Object(yt.a)(\"quickInput.backWithKeybinding\", \"Back ({0})\", e) : Object(yt.a)(\"quickInput.back\", \"Back\"), t.container.style.display = \"\", this.updateLayout(), t.inputBox.setFocus()\n        }\n        setVisibilities(e) {\n            const t = this.getUI();\n            t.title.style.display = e.title ? \"\" : \"none\", t.description1.style.display = e.description && (e.inputBox || e.checkAll) ? \"\" : \"none\", t.description2.style.display = !e.description || e.inputBox || e.checkAll ? \"none\" : \"\", t.checkAll.style.display = e.checkAll ? \"\" : \"none\", t.filterContainer.style.display = e.inputBox ? \"\" : \"none\", t.visibleCountContainer.style.display = e.visibleCount ? \"\" : \"none\", t.countContainer.style.display = e.count ? \"\" : \"none\", t.okContainer.style.display = e.ok ? \"\" : \"none\", t.customButtonContainer.style.display = e.customButton ? \"\" : \"none\", t.message.style.display = e.message ? \"\" : \"none\", t.progressBar.getContainer().style.display = e.progressBar ? \"\" : \"none\", t.list.display(!!e.list), t.container.classList[e.checkBox ? \"add\" : \"remove\"](\"show-checkboxes\"), this.updateLayout()\n        }\n        setComboboxAccessibility(e) {\n            if (e !== this.comboboxAccessibility) {\n                const t = this.getUI();\n                this.comboboxAccessibility = e, this.comboboxAccessibility ? (t.inputBox.setAttribute(\"role\", \"combobox\"), t.inputBox.setAttribute(\"aria-haspopup\", \"true\"), t.inputBox.setAttribute(\"aria-autocomplete\", \"list\"), t.inputBox.setAttribute(\"aria-activedescendant\", t.list.getActiveDescendant() || \"\")) : (t.inputBox.removeAttribute(\"role\"), t.inputBox.removeAttribute(\"aria-haspopup\"), t.inputBox.removeAttribute(\"aria-autocomplete\"), t.inputBox.removeAttribute(\"aria-activedescendant\"))\n            }\n        }\n        setEnabled(e) {\n            if (e !== this.enabled) {\n                this.enabled = e;\n                for (const t of this.getUI().leftActionBar.viewItems) t.getAction().enabled = e;\n                for (const t of this.getUI().rightActionBar.viewItems) t.getAction().enabled = e;\n                this.getUI().checkAll.disabled = !e, this.getUI().ok.enabled = e, this.getUI().list.enabled = e\n            }\n        }\n        hide(e) {\n            var t;\n            const i = this.controller;\n            i && (t = !(null !== (t = this.ui) && void 0 !== t && t.container.contains(document.activeElement)), this.controller = null, this.onHideEmitter.fire(), this.getUI().container.style.display = \"none\", t || (this.previousFocusElement && this.previousFocusElement.offsetParent ? (this.previousFocusElement.focus(), this.previousFocusElement = void 0) : this.options.returnFocus()), i.didHide(e))\n        }\n        layout(e, t) {\n            this.dimension = e, this.titleBarOffset = t, this.updateLayout()\n        }\n        updateLayout() {\n            if (this.ui) {\n                this.ui.container.style.top = this.titleBarOffset + \"px\";\n                const t = this.ui.container.style;\n                var e = Math.min(.62 * this.dimension.width, gg.MAX_WIDTH);\n                t.width = e + \"px\", t.marginLeft = \"-\" + e / 2 + \"px\", this.ui.inputBox.layout(), this.ui.list.layout(this.dimension && .4 * this.dimension.height)\n            }\n        }\n        applyStyles(e) {\n            this.styles = e, this.updateStyles()\n        }\n        updateStyles() {\n            if (this.ui) {\n                const {\n                    quickInputTitleBackground: t,\n                    quickInputBackground: i,\n                    quickInputForeground: n,\n                    contrastBorder: r,\n                    widgetShadow: o\n                } = this.styles.widget;\n                this.ui.titleBar.style.backgroundColor = t ? t.toString() : \"\", this.ui.container.style.backgroundColor = i ? i.toString() : \"\", this.ui.container.style.color = n ? n.toString() : \"\", this.ui.container.style.border = r ? \"1px solid \" + r : \"\", this.ui.container.style.boxShadow = o ? \"0 0 8px 2px \" + o : \"\", this.ui.inputBox.style(this.styles.inputBox), this.ui.count.style(this.styles.countBadge), this.ui.ok.style(this.styles.button), this.ui.customButton.style(this.styles.button), this.ui.progressBar.style(this.styles.progressBar), this.ui.list.style(this.styles.list);\n                const s = [];\n                this.styles.list.pickerGroupBorder && s.push(`.quick-input-list .quick-input-list-entry { border-top-color:  ${this.styles.list.pickerGroupBorder}; }`), this.styles.list.pickerGroupForeground && s.push(`.quick-input-list .quick-input-list-separator { color:  ${this.styles.list.pickerGroupForeground}; }`), (this.styles.keybindingLabel.keybindingLabelBackground || this.styles.keybindingLabel.keybindingLabelBorder || this.styles.keybindingLabel.keybindingLabelBottomBorder || this.styles.keybindingLabel.keybindingLabelShadow || this.styles.keybindingLabel.keybindingLabelForeground) && (s.push(\".quick-input-list .monaco-keybinding > .monaco-keybinding-key {\"), this.styles.keybindingLabel.keybindingLabelBackground && s.push(`background-color: ${this.styles.keybindingLabel.keybindingLabelBackground};`), this.styles.keybindingLabel.keybindingLabelBorder && s.push(`border-color: ${this.styles.keybindingLabel.keybindingLabelBorder};`), this.styles.keybindingLabel.keybindingLabelBottomBorder && s.push(`border-bottom-color: ${this.styles.keybindingLabel.keybindingLabelBottomBorder};`), this.styles.keybindingLabel.keybindingLabelShadow && s.push(`box-shadow: inset 0 -1px 0 ${this.styles.keybindingLabel.keybindingLabelShadow};`), this.styles.keybindingLabel.keybindingLabelForeground && s.push(`color: ${this.styles.keybindingLabel.keybindingLabelForeground};`), s.push(\"}\"));\n                var e = s.join(\"\\n\");\n                e !== this.ui.styleSheet.textContent && (this.ui.styleSheet.textContent = e)\n            }\n        }\n    }\n    gg.MAX_WIDTH = 600, (t = lg = lg || {})[t.PRESERVE = 0] = \"PRESERVE\", t[t.LAST = 1] = \"LAST\";\n    const fg = \"workbench.contributions.quickaccess\";\n    xt.a.add(fg, new class {\n        constructor() {\n            this.providers = [], this.defaultProvider = void 0\n        }\n        registerQuickAccessProvider(e) {\n            return 0 === e.prefix.length ? this.defaultProvider = e : this.providers.push(e), this.providers.sort((e, t) => t.prefix.length - e.prefix.length), Object(v.i)(() => {\n                this.providers.splice(this.providers.indexOf(e), 1), this.defaultProvider === e && (this.defaultProvider = void 0)\n            })\n        }\n        getQuickAccessProviders() {\n            return Object(ne.e)([this.defaultProvider, ...this.providers])\n        }\n        getQuickAccessProvider(e) {\n            return e && this.providers.find(t => e.startsWith(t.prefix)) || this.defaultProvider\n        }\n    });\n    const mg = Object(_.c)(\"quickInputService\");\n    ae = function(e, t, i, n) {\n        var r, o = arguments.length,\n            s = o < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n);\n        else\n            for (var a = e.length - 1; 0 <= a; a--)(r = e[a]) && (s = (o < 3 ? r(s) : 3 < o ? r(t, i, s) : r(t, i)) || s);\n        return 3 < o && s && Object.defineProperty(t, i, s), s\n    }, x = function(e, t) {\n        return function(i, n) {\n            t(i, n, e)\n        }\n    };\n    let vg = class extends v.a {\n        constructor(e, t) {\n            super(), this.quickInputService = e, this.instantiationService = t, this.registry = xt.a.as(fg), this.mapProviderToDescriptor = new Map, this.lastAcceptedPickerValues = new Map, this.visibleQuickAccess = void 0\n        }\n        show(e = \"\", t) {\n            this.doShowOrPick(e, !1, t)\n        }\n        doShowOrPick(e, t, i) {\n            const [n, r] = this.getOrInstantiateProvider(e), o = this.visibleQuickAccess;\n            var s, l = null == o ? void 0 : o.descriptor;\n            if (o && r && l === r) return e === r.prefix || null != i && i.preserveValue || (o.picker.value = e), void this.adjustValueSelection(o.picker, r, i);\n            if (r && (null == i || !i.preserveValue)) {\n                let t = void 0;\n                o && l && l !== r && (s = o.value.substr(l.prefix.length)) && (t = `${r.prefix}${s}`), t || ((s = null == n ? void 0 : n.defaultFilterValue) === lg.LAST ? t = this.lastAcceptedPickerValues.get(r) : \"string\" == typeof s && (t = `${r.prefix}${s}`)), \"string\" == typeof t && (e = t)\n            }\n            const d = new v.b,\n                c = d.add(this.quickInputService.createQuickPick());\n            c.value = e, this.adjustValueSelection(c, r, i), c.placeholder = null == r ? void 0 : r.placeholder, c.quickNavigate = null == i ? void 0 : i.quickNavigate配置, c.hideInput = !!c.quickNavigate && !o, (\"number\" == typeof(null == i ? void 0 : i.itemActivation) || null != i && i.quickNavigate配置) && (c.itemActivation = null !== (i = null == i ? void 0 : i.itemActivation) && void 0 !== i ? i : Rp.SECOND), c.contextKey = null == r ? void 0 : r.contextKey, c.filterValue = e => e.substring(r ? r.prefix.length : 0), null != r && r.placeholder && (c.ariaLabel = null == r ? void 0 : r.placeholder);\n            let h = void 0,\n                u = void 0;\n            t && (h = new Promise(e => u = e), d.add(Object(Zr.a)(c.onWillAccept)(e => {\n                e.veto(), c.hide()\n            }))), d.add(this.registerPickerListeners(c, n, r, e));\n            const p = d.add(new a.b);\n            return n && d.add(n.provide(c, p.token)), Object(Zr.a)(c.onDidHide)(() => {\n                0 === c.selectedItems.length && p.cancel(), d.dispose(), null != u && u(c.selectedItems)\n            }), c.show(), t ? h : void 0\n        }\n        adjustValueSelection(e, t, i) {\n            let n;\n            n = null != i && i.preserveValue ? [e.value.length, e.value.length] : [null !== (t = null == t ? void 0 : t.prefix.length) && void 0 !== t ? t : 0, e.value.length], e.valueSelection = n\n        }\n        registerPickerListeners(e, t, i, n) {\n            const r = new v.b,\n                o = this.visibleQuickAccess = {\n                    picker: e,\n                    descriptor: i,\n                    value: n\n                };\n            return r.add(Object(v.i)(() => {\n                o === this.visibleQuickAccess && (this.visibleQuickAccess = void 0)\n            })), r.add(e.onDidChangeValue(e => {\n                var [i] = this.getOrInstantiateProvider(e);\n                i !== t ? this.show(e, {\n                    preserveValue: !0\n                }) : o.value = e\n            })), i && r.add(e.onDidAccept(() => {\n                this.lastAcceptedPickerValues.set(i, e.value)\n            })), r\n        }\n        getOrInstantiateProvider(e) {\n            if (!(e = this.registry.getQuickAccessProvider(e))) return [void 0, void 0];\n            let t = this.mapProviderToDescriptor.get(e);\n            return t || (t = this.instantiationService.createInstance(e.ctor), this.mapProviderToDescriptor.set(e, t)), [t, e]\n        }\n    };\n    vg = ae([x(0, mg), x(1, _.a)], vg);\n    var bg;\n    S = function(e, t, i, n) {\n        var r, o = arguments.length,\n            s = o < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n);\n        else\n            for (var a = e.length - 1; 0 <= a; a--)(r = e[a]) && (s = (o < 3 ? r(s) : 3 < o ? r(t, i, s) : r(t, i)) || s);\n        return 3 < o && s && Object.defineProperty(t, i, s), s\n    }, gi = function(e, t) {\n        return function(i, n) {\n            t(i, n, e)\n        }\n    }, t = class extends ir.c {\n        constructor(e, t, i, n, r) {\n            super(i), this.instantiationService = e, this.contextKeyService = t, this.accessibilityService = n, this.layoutService = r, this.contexts = new Map\n        }\n        get controller() {\n            return this._controller || (this._controller = this._register(this.createController())), this._controller\n        }\n        get quickAccess() {\n            return this._quickAccess || (this._quickAccess = this._register(this.instantiationService.createInstance(vg))), this._quickAccess\n        }\n        createController(e = this.layoutService, t) {\n            var i = {\n                idPrefix: \"quickInput_\",\n                container: e.container,\n                ignoreFocusOut: () => !1,\n                isScreenReaderOptimized: () => this.accessibilityService.isScreenReaderOptimized(),\n                backKeybindingLabel: () => {},\n                setContextKey: e => this.setContextKey(e),\n                returnFocus: () => e.focus(),\n                createList: (e, t, i, n, r) => this.instantiationService.createInstance(qu, e, t, i, n, r),\n                styles: this.computeStyles()\n            };\n            const n = this._register(new gg(Object.assign(Object.assign({}, i), t)));\n            return n.layout(e.dimension, null !== (t = null === (t = e.offset) || void 0 === t ? void 0 : t.top) && void 0 !== t ? t : 0), this._register(e.onDidLayout(t => n.layout(t, null !== (t = null === (t = e.offset) || void 0 === t ? void 0 : t.top) && void 0 !== t ? t : 0))), this._register(n.onShow(() => this.resetContextKeys())), this._register(n.onHide(() => this.resetContextKeys())), n\n        }\n        setContextKey(e) {\n            let t;\n            e && (t = this.contexts.get(e), t || (t = new Yt.c(e, !1).bindTo(this.contextKeyService), this.contexts.set(e, t))), t && t.get() || (this.resetContextKeys(), t && t.set(!0))\n        }\n        resetContextKeys() {\n            this.contexts.forEach(e => {\n                e.get() && e.reset()\n            })\n        }\n        pick(e, t = {}, i = a.a.None) {\n            return this.controller.pick(e, t, i)\n        }\n        createQuickPick() {\n            return this.controller.createQuickPick()\n        }\n        updateStyles() {\n            this.controller.applyStyles(this.computeStyles())\n        }\n        computeStyles() {\n            return {\n                widget: Object.assign({}, ac(this.theme, {\n                    quickInputBackground: Ir.Xb,\n                    quickInputForeground: Ir.Yb,\n                    quickInputTitleBackground: Ir.cc,\n                    contrastBorder: Ir.h,\n                    widgetShadow: Ir.mc\n                })),\n                inputBox: ac(this.theme, {\n                    inputForeground: Ir.Y,\n                    inputBackground: Ir.W,\n                    inputBorder: Ir.X,\n                    inputValidationInfoBackground: Ir.cb,\n                    inputValidationInfoForeground: Ir.eb,\n                    inputValidationInfoBorder: Ir.db,\n                    inputValidationWarningBackground: Ir.fb,\n                    inputValidationWarningForeground: Ir.hb,\n                    inputValidationWarningBorder: Ir.gb,\n                    inputValidationErrorBackground: Ir.Z,\n                    inputValidationErrorForeground: Ir.bb,\n                    inputValidationErrorBorder: Ir.ab\n                }),\n                countBadge: ac(this.theme, {\n                    badgeBackground: Ir.c,\n                    badgeForeground: Ir.d,\n                    badgeBorder: Ir.h\n                }),\n                button: ac(this.theme, {\n                    buttonForeground: Ir.f,\n                    buttonBackground: Ir.e,\n                    buttonHoverBackground: Ir.g,\n                    buttonBorder: Ir.h\n                }),\n                progressBar: ac(this.theme, {\n                    progressBarBackground: Ir.Wb\n                }),\n                keybindingLabel: ac(this.theme, {\n                    keybindingLabelBackground: Ir.ib,\n                    keybindingLabelForeground: Ir.lb,\n                    keybindingLabelBorder: Ir.jb,\n                    keybindingLabelBottomBorder: Ir.kb,\n                    keybindingLabelShadow: Ir.mc\n                }),\n                list: ac(this.theme, {\n                    listBackground: Ir.Xb,\n                    listInactiveFocusForeground: Ir.ac,\n                    listInactiveSelectionIconForeground: Ir.bc,\n                    listInactiveFocusBackground: Ir.Zb,\n                    listFocusOutline: Ir.b,\n                    listInactiveFocusOutline: Ir.b,\n                    pickerGroupBorder: Ir.Ub,\n                    pickerGroupForeground: Ir.Vb\n                })\n            }\n        }\n    }, ae = function(e, t, i, n) {\n        var r, o = arguments.length,\n            s = o < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n);\n        else\n            for (var a = e.length - 1; 0 <= a; a--)(r = e[a]) && (s = (o < 3 ? r(s) : 3 < o ? r(t, i, s) : r(t, i)) || s);\n        return 3 < o && s && Object.defineProperty(t, i, s), s\n    }, x = function(e, t) {\n        return function(i, n) {\n            t(i, n, e)\n        }\n    };\n    let _g = class extends(t = S([gi(0, _.a), gi(1, Yt.b), gi(2, ir.b), gi(3, Ks), gi(4, gc)], t)) {\n        constructor(e, t, i, n, r, o) {\n            super(t, i, n, r, o), this.host = void 0;\n            const s = yg.get(e);\n            this.host = {\n                _serviceBrand: void 0,\n                get container() {\n                    return s.widget.getDomNode()\n                },\n                get dimension() {\n                    return e.getLayoutInfo()\n                },\n                get onDidLayout() {\n                    return e.onDidLayoutChange\n                },\n                focus: () => e.focus()\n            }\n        }\n        createController() {\n            return super.createController(this.host)\n        }\n    };\n    _g = ae([x(1, _.a), x(2, Yt.b), x(3, ir.b), x(4, Ks), x(5, gc)], _g);\n    let wg = class {\n        constructor(e, t) {\n            this.instantiationService = e, this.codeEditorService = t, this.mapEditorToService = new Map\n        }\n        get activeService() {\n            const e = this.codeEditorService.getFocusedCodeEditor();\n            if (!e) throw new Error(\"Quick input service needs a focused editor to work.\");\n            let t = this.mapEditorToService.get(e);\n            if (!t) {\n                const i = t = this.instantiationService.createInstance(_g, e);\n                this.mapEditorToService.set(e, t), Object(Zr.a)(e.onDidDispose)(() => {\n                    i.dispose(), this.mapEditorToService.delete(e)\n                })\n            }\n            return t\n        }\n        get quickAccess() {\n            return this.activeService.quickAccess\n        }\n        pick(e, t = {}, i = a.a.None) {\n            return this.activeService.pick(e, t, i)\n        }\n        createQuickPick() {\n            return this.activeService.createQuickPick()\n        }\n    };\n    wg = ae([x(0, _.a), x(1, o.a)], wg);\n    class yg {\n        constructor(e) {\n            this.editor = e, this.widget = new Cg(this.editor)\n        }\n        static get(e) {\n            return e.getContribution(yg.ID)\n        }\n        dispose() {\n            this.widget.dispose()\n        }\n    }\n    yg.ID = \"editor.controller.quickInput\";\n    class Cg {\n        constructor(e) {\n            this.codeEditor = e, this.domNode = document.createElement(\"div\"), this.codeEditor.addOverlayWidget(this)\n        }\n        getId() {\n            return Cg.ID\n        }\n        getDomNode() {\n            return this.domNode\n        }\n        getPosition() {\n            return {\n                preference: 2\n            }\n        }\n        dispose() {\n            this.codeEditor.removeOverlayWidget(this)\n        }\n    }\n    Cg.ID = \"editor.contrib.quickInputWidget\", Object(Ai.k)(yg.ID, yg),\n        function(e) {\n            const t = new Us;\n            class i {\n                constructor(e, t) {\n                    this._serviceId = e, this._factory = t, this._value = null\n                }\n                get id() {\n                    return this._serviceId\n                }\n                get(e) {\n                    if (!this._value) {\n                        if (e && (this._value = e[this._serviceId.toString()]), this._value || (this._value = this._factory(e)), !this._value) throw new Error(\"Service \" + this._serviceId + \" is missing!\");\n                        t.set(this._serviceId, this._value)\n                    }\n                    return this._value\n                }\n            }\n            e.LazyStaticService = i;\n            let n = [];\n\n            function r(e, t) {\n                return t = new i(e, t), n.push(t), t\n            }\n            e.init = function(e) {\n                let t = new Us;\n                for (var [i, r] of Object(ba.a)()) t.set(i, r);\n                for (var o in e) e.hasOwnProperty(o) && t.set(Object(_.c)(o), e[o]);\n                n.forEach(i => t.set(i.id, i.get(e)));\n                var s = new yc(t, !0);\n                return t.set(_.a, s), [t, s]\n            }, e.instantiationService = r(_.a, () => new yc(t, !0));\n            const s = new Si;\n            e.configurationService = r(Wt.a, () => s), e.resource配置Service = r(te, () => new ki(s)), e.resourcePropertiesService = r(ie, () => new Li(s)), e.contextService = r(ui, () => new Ei), e.labelService = r(xc, () => new Ii), e.telemetryService = r(jd.a, () => new Oi), e.dialogService = r(mc, () => new _i), e.notificationService = r(hi.a, () => new wi), e.markerService = r(tp, () => new rp), e.modeService = r(K.a, e => new El), e.standaloneThemeService = r(ol, () => new xd), e.logService = r(re.b, () => new re.d(new re.a)), e.undoRedoService = r(Nl.a, t => new xp(e.dialogService.get(t), e.notificationService.get(t))), e.language配置Service = r(Q.a, t => new Q.c(e.configurationService.get(t), e.modeService.get(t))), e.modelService = r(ee.a, t => new Xl(e.configurationService.get(t), e.resourcePropertiesService.get(t), e.standaloneThemeService.get(t), e.logService.get(t), e.undoRedoService.get(t), e.modeService.get(t), e.language配置Service.get(t))), e.markerDecorationsService = r(Pi, t => new dp(e.modelService.get(t), e.markerService.get(t))), e.contextKeyService = r(Yt.b, t => new Pd(e.configurationService.get(t))), e.codeEditorService = r(o.a, t => new ml(null, e.contextKeyService.get(t), e.standaloneThemeService.get(t))), e.editorProgressService = r(Ba, () => new bi), e.storageService = r(op.a, () => new op.b), e.editorWorkerService = r(U, t => new ce(e.modelService.get(t), e.resource配置Service.get(t), e.logService.get(t)))\n        }(bg = bg || {});\n    class xg extends v.a {\n        constructor(e, t) {\n            super();\n            const [i, n] = bg.init(t);\n            this._serviceCollection = i, this._instantiationService = n;\n            const r = this.get(Wt.a),\n                s = this.get(hi.a),\n                a = this.get(jd.a),\n                l = this.get(ir.b),\n                d = this.get(re.b),\n                c = this.get(Yt.b);\n            var h = (e, i) => {\n                let n = null;\n                return t && (n = t[e.toString()]), n = n || i(), this._serviceCollection.set(e, n), n\n            };\n            h(Ks, () => new cp(c, r)), h(xu, () => new Su(l));\n            let u = h(m.b, () => new yi(this._instantiationService)),\n                p = h(al.a, () => this._register(new Ci(c, u, a, s, d, e))),\n                g = h(gc, () => new Ti(bg.codeEditorService.get(o.a), e));\n            h(mg, () => new wg(n, bg.codeEditorService.get(o.a)));\n            let f = h(Aa.b, () => this._register(new fc(g)));\n            h(ja.a, () => new up), h(Aa.a, () => {\n                const e = new pc(a, s, f, p, l);\n                return e.configure({\n                    blockMouse: !1\n                }), this._register(e)\n            }), h(sl.a, () => new sp(u)), h(vt, () => new Di(bg.modelService.get(ee.a)))\n        }\n        get(e) {\n            var t = this._serviceCollection.get(e);\n            if (!t) throw new Error(\"Missing service \" + e);\n            return t\n        }\n        set(e, t) {\n            this._serviceCollection.set(e, t)\n        }\n        has(e) {\n            return this._serviceCollection.has(e)\n        }\n    }\n\n    function Sg(e, t, i) {\n        let n = new xg(e, t),\n            r = null;\n        return n.has($.a) || (r = new vi(bg.modelService.get()), n.set($.a, r)), n.has(y) || n.set(y, new E(n.get(o.a), n.get(m.b))), i = i(n), r && r.setEditor(i), i\n    }\n\n    function kg(e, t) {\n        return \"boolean\" == typeof e ? e : t\n    }\n\n    function Lg(e, t) {\n        return \"string\" == typeof e ? e : t\n    }\n\n    function Og(e, t = !1) {\n        const i = function(e) {\n            const t = {};\n            for (const i of e) t[i] = !0;\n            return t\n        }(e = t ? e.map((function(e) {\n            return e.toLowerCase()\n        })) : e);\n        return t ? function(e) {\n            return void 0 !== i[e.toLowerCase()] && i.hasOwnProperty(e.toLowerCase())\n        } : function(e) {\n            return void 0 !== i[e] && i.hasOwnProperty(e)\n        }\n    }\n\n    function Eg(e, t) {\n        t = t.replace(/@@/g, \"\u0001\");\n        let i, n = 0;\n        for (; i = !1, t = t.replace(/@(\\w+)/g, (function(n, r) {\n                i = !0;\n                let o = \"\";\n                if (\"string\" == typeof e[r]) o = e[r];\n                else {\n                    if (!(e[r] && e[r] instanceof RegExp)) throw void 0 === e[r] ? Je(e, \"language definition does not contain attribute '\" + r + \"', used at: \" + t) : Je(e, \"attribute reference '\" + r + \"' must be a string, used at: \" + t);\n                    o = e[r].source\n                }\n                return o ? \"(?:\" + o + \")\" : \"\"\n            })), n++, i && n < 5;);\n        t = t.replace(/\\x01/g, \"@\");\n        var r = (e.ignoreCase ? \"i\" : \"\") + (e.unicode ? \"u\" : \"\");\n        return new RegExp(t, r)\n    }\n\n    function Ng(e, t, i, n) {\n        let r = -1,\n            o = i,\n            s = i.match(/^\\$(([sS]?)(\\d\\d?)|#)(.*)$/);\n        s && (s[3] && (r = parseInt(s[3]), s[2] && (r += 100)), o = s[4]);\n        let a, l = \"~\",\n            d = o;\n        if (o && 0 !== o.length ? /^\\w*$/.test(d) ? l = \"==\" : (s = o.match(/^(@|!@|~|!~|==|!=)(.*)$/), s && (l = s[1], d = s[2])) : (l = \"!=\", d = \"\"), \"~\" !== l && \"!~\" !== l || !/^(\\w|\\|)*$/.test(d))\n            if (\"@\" === l || \"!@\" === l) {\n                var c = e[d];\n                if (!c) throw Je(e, \"the @ match target '\" + d + \"' is not defined, in rule: \" + t);\n                if (! function(e, t) {\n                        if (t && Array.isArray(t)) {\n                            for (const i of t)\n                                if (!e(i)) return;\n                            return 1\n                        }\n                    }((function(e) {\n                        return \"string\" == typeof e\n                    }), c)) throw Je(e, \"the @ match target '\" + d + \"' must be an array of strings, in rule: \" + t);\n                let i = Og(c, e.ignoreCase);\n                a = function(e) {\n                    return \"@\" === l ? i(e) : !i(e)\n                }\n            } else if (\"~\" === l || \"!~\" === l)\n            if (d.indexOf(\"$\") < 0) {\n                let t = Eg(e, \"^\" + d + \"$\");\n                a = function(e) {\n                    return \"~\" === l ? t.test(e) : !t.test(e)\n                }\n            } else a = function(t, i, n, r) {\n                return Eg(e, \"^\" + et(e, d, i, n, r) + \"$\").test(t)\n            };\n        else if (d.indexOf(\"$\") < 0) {\n            let t = Xe(e, d);\n            a = function(e) {\n                return \"==\" === l ? e === t : e !== t\n            }\n        } else {\n            let t = Xe(e, d);\n            a = function(i, n, r, o, s) {\n                return o = et(e, t, n, r, o), \"==\" === l ? i === o : i !== o\n            }\n        } else {\n            let t = Og(d.split(\"|\"), e.ignoreCase);\n            a = function(e) {\n                return \"~\" === l ? t(e) : !t(e)\n            }\n        }\n        return -1 === r ? {\n            name: i,\n            value: n,\n            test: function(e, t, i, n) {\n                return a(e, e, t, i, n)\n            }\n        } : {\n            name: i,\n            value: n,\n            test: function(e, t, i, n) {\n                var o = function(e, t, i, n) {\n                    if (n < 0) return e;\n                    if (n < t.length) return t[n];\n                    if (100 <= n) {\n                        n -= 100;\n                        let e = i.split(\".\");\n                        if (e.unshift(i), n < e.length) return e[n]\n                    }\n                    return null\n                }(e, t, i, r);\n                return a(o || \"\", e, t, i, n)\n            }\n        }\n    }\n    class Dg {\n        constructor(e) {\n            this.regex = new RegExp(\"\"), this.action = {\n                token: \"\"\n            }, this.matchOnlyAtLineStart = !1, this.name = \"\", this.name = e\n        }\n        setRegex(e, t) {\n            let i;\n            if (\"string\" == typeof t) i = t;\n            else {\n                if (!(t instanceof RegExp)) throw Je(e, \"rules must start with a match string or regular expression: \" + this.name);\n                i = t.source\n            }\n            this.matchOnlyAtLineStart = 0 < i.length && \"^\" === i[0], this.name = this.name + \": \" + i, this.regex = Eg(e, \"^(?:\" + (this.matchOnlyAtLineStart ? i.substr(1) : i) + \")\")\n        }\n        setAction(e, t) {\n            this.action = function e(t, i, n) {\n                if (n) {\n                    if (\"string\" == typeof n) return n;\n                    if (n.token || \"\" === n.token) {\n                        if (\"string\" != typeof n.token) throw Je(t, \"a 'token' attribute must be of type string, in rule: \" + i); {\n                            let e = {\n                                token: n.token\n                            };\n                            if (0 <= n.token.indexOf(\"$\") && (e.tokenSubst = !0), \"string\" == typeof n.bracket)\n                                if (\"@open\" === n.bracket) e.bracket = 1;\n                                else {\n                                    if (\"@close\" !== n.bracket) throw Je(t, \"a 'bracket' attribute must be either '@open' or '@close', in rule: \" + i);\n                                    e.bracket = -1\n                                } if (n.next) {\n                                if (\"string\" != typeof n.next) throw Je(t, \"the next state must be a string value in rule: \" + i); {\n                                    let r = n.next;\n                                    if (!/^(@pop|@push|@popall)$/.test(r) && (\"@\" === r[0] && (r = r.substr(1)), r.indexOf(\"$\") < 0 && ! function(e, t) {\n                                            let i = t;\n                                            for (; i && 0 < i.length;) {\n                                                if (e.stateNames[i]) return 1;\n                                                var n = i.lastIndexOf(\".\");\n                                                i = n < 0 ? null : i.substr(0, n)\n                                            }\n                                        }(t, et(t, r, \"\", [], \"\")))) throw Je(t, \"the next state '\" + n.next + \"' is not defined in rule: \" + i);\n                                    e.next = r\n                                }\n                            }\n                            return \"number\" == typeof n.goBack && (e.goBack = n.goBack), \"string\" == typeof n.switchTo && (e.switchTo = n.switchTo), \"string\" == typeof n.log && (e.log = n.log), \"string\" == typeof n.nextEmbedded && (e.nextEmbedded = n.nextEmbedded, t.usesEmbedded = !0), e\n                        }\n                    }\n                    if (Array.isArray(n)) {\n                        let r = [];\n                        for (let o = 0, s = n.length; o < s; o++) r[o] = e(t, i, n[o]);\n                        return {\n                            group: r\n                        }\n                    }\n                    if (n.cases) {\n                        let s = [];\n                        for (var r in n.cases) {\n                            var o;\n                            n.cases.hasOwnProperty(r) && (o = e(t, i, n.cases[r]), \"@default\" === r || \"@\" === r || \"\" === r ? s.push({\n                                test: void 0,\n                                value: o,\n                                name: r\n                            }) : \"@eos\" === r ? s.push({\n                                test: function(e, t, i, n) {\n                                    return n\n                                },\n                                value: o,\n                                name: r\n                            }) : s.push(Ng(t, i, r, o)))\n                        }\n                        const a = t.defaultToken;\n                        return {\n                            test: function(e, t, i, n) {\n                                for (const r of s)\n                                    if (!r.test || r.test(e, t, i, n)) return r.value;\n                                return a\n                            }\n                        }\n                    }\n                    throw Je(t, \"an action must be a string, an object with a 'token' or 'cases' attribute, or an array of actions; in rule: \" + i)\n                }\n                return {\n                    token: \"\"\n                }\n            }(e, this.name, t)\n        }\n    }\n    class Ig {\n        constructor(e, t) {\n            this._languageId = e, this._actual = t\n        }\n        getInitialState() {\n            return this._actual.getInitialState()\n        }\n        tokenize(e, t, i, n) {\n            if (\"function\" == typeof this._actual.tokenize) return Tg.adaptTokenize(this._languageId, this._actual, e, i, n);\n            throw new Error(\"Not supported!\")\n        }\n        tokenize2(e, t, i) {\n            return i = this._actual.tokenizeEncoded(e, i), new qe.c(i.tokens, i.endState)\n        }\n    }\n    class Tg {\n        constructor(e, t, i, n) {\n            this._languageId = e, this._actual = t, this._modeService = i, this._standaloneThemeService = n\n        }\n        getInitialState() {\n            return this._actual.getInitialState()\n        }\n        static _toClassicTokens(e, t, i) {\n            let n = [],\n                r = 0;\n            for (let s = 0, a = e.length; s < a; s++) {\n                var o = e[s];\n                let a = o.startIndex;\n                0 === s ? a = 0 : a < r && (a = r), n[s] = new qe.a(a + i, o.scopes, t), r = a\n            }\n            return n\n        }\n        static adaptTokenize(e, t, i, n, r) {\n            let o, s = t.tokenize(i, n);\n            return r = Tg._toClassicTokens(s.tokens, e, r), o = s.endState.equals(n) ? n : s.endState, new qe.b(r, o)\n        }\n        tokenize(e, t, i, n) {\n            return Tg.adaptTokenize(this._languageId, this._actual, e, i, n)\n        }\n        _toBinaryTokens(e, t, i) {\n            var n = e.encodeLanguageId(this._languageId);\n            const r = this._standaloneThemeService.getColorTheme().tokenTheme;\n            let o = [],\n                s = 0,\n                a = 0;\n            for (let e = 0, c = t.length; e < c; e++) {\n                var l = t[e],\n                    d = r.match(n, l.scopes);\n                if (!(0 < s && o[s - 1] === d)) {\n                    let t = l.startIndex;\n                    0 === e ? t = 0 : t < a && (t = a), o[s++] = t + i, o[s++] = d, a = t\n                }\n            }\n            let c = new Uint32Array(s);\n            for (let e = 0; e < s; e++) c[e] = o[e];\n            return c\n        }\n        tokenize2(e, t, i, n) {\n            let r, o = this._actual.tokenize(e, i);\n            return n = this._toBinaryTokens(this._modeService.languageIdCodec, o.tokens, n), r = o.endState.equals(i) ? i : o.endState, new qe.c(n, r)\n        }\n    }\n\n    function Mg(e) {\n        return e && \"function\" == typeof e.then\n    }\n    class Pg {\n        constructor(e) {\n            this.value = e, this._lower = e.toLowerCase()\n        }\n        static toKey(e) {\n            return \"string\" == typeof e ? e.toLowerCase() : e._lower\n        }\n    }\n    var Ag = function(e, t, i, n) {\n        return new(i = i || Promise)((function(r, o) {\n            function s(e) {\n                try {\n                    l(n.next(e))\n                } catch (e) {\n                    o(e)\n                }\n            }\n\n            function a(e) {\n                try {\n                    l(n.throw(e))\n                } catch (e) {\n                    o(e)\n                }\n            }\n\n            function l(e) {\n                var t;\n                e.done ? r(e.value) : ((t = e.value) instanceof i ? t : new i((function(e) {\n                    e(t)\n                }))).then(s, a)\n            }\n            l((n = n.apply(e, t || [])).next())\n        }))\n    };\n    class Rg {\n        static setFormatterSelector(e) {\n            return {\n                dispose: Rg._selectors.unshift(e)\n            }\n        }\n        static select(e, t, i) {\n            return Ag(this, void 0, void 0, (function*() {\n                if (0 !== e.length) {\n                    const n = Sd.a.first(Rg._selectors);\n                    return n ? yield n(e, t, i): void 0\n                }\n            }))\n        }\n    }\n    Rg._selectors = new l.a, m.a.registerCommand(\"_executeFormatRangeProvider\", (function(e, ...t) {\n        return Ag(this, void 0, void 0, (function*() {\n            var [i, n, r] = t;\n            Object(ve.b)(h.a.isUri(i)), Object(ve.b)(T.a.isIRange(n));\n            const o = e.get($.a);\n            var s = e.get(U);\n            const l = yield o.createModelReference(i);\n            try {\n                return function(e, t, i, n, r) {\n                    return Ag(this, void 0, void 0, (function*() {\n                        for (const s of z.i.ordered(t)) {\n                            var o = yield Promise.resolve(s.provideDocumentRangeFormattingEdits(t, i, n, r)).catch(se.g);\n                            if (Object(ne.l)(o)) return yield e.computeMoreMinimalEdits(t.uri, o)\n                        }\n                    }))\n                }(s, l.object.textEditorModel, T.a.lift(n), r, a.a.None)\n            } finally {\n                l.dispose()\n            }\n        }))\n    })), m.a.registerCommand(\"_executeFormatDocumentProvider\", (function(e, ...t) {\n        return Ag(this, void 0, void 0, (function*() {\n            var [i, n] = t;\n            Object(ve.b)(h.a.isUri(i));\n            const r = e.get($.a);\n            var o = e.get(U);\n            const s = yield r.createModelReference(i);\n            try {\n                return function(e, t, i, n) {\n                    return Ag(this, void 0, void 0, (function*() {\n                        for (const o of function(e) {\n                                const t = [],\n                                    i = new Set;\n                                for (const n of z.g.ordered(e)) t.push(n), n.extensionId && i.add(Pg.toKey(n.extensionId));\n                                for (const n of z.i.ordered(e)) {\n                                    if (n.extensionId) {\n                                        if (i.has(Pg.toKey(n.extensionId))) continue;\n                                        i.add(Pg.toKey(n.extensionId))\n                                    }\n                                    t.push({\n                                        displayName: n.displayName,\n                                        extensionId: n.extensionId,\n                                        provideDocumentFormattingEdits: (e, t, i) => n.provideDocumentRangeFormattingEdits(e, e.getFullModelRange(), t, i)\n                                    })\n                                }\n                                return t\n                            }(t)) {\n                            var r = yield Promise.resolve(o.provideDocumentFormattingEdits(t, i, n)).catch(se.g);\n                            if (Object(ne.l)(r)) return yield e.computeMoreMinimalEdits(t.uri, r)\n                        }\n                    }))\n                }(o, s.object.textEditorModel, n, a.a.None)\n            } finally {\n                s.dispose()\n            }\n        }))\n    })), m.a.registerCommand(\"_executeFormatOnTypeProvider\", (function(e, ...t) {\n        return Ag(this, void 0, void 0, (function*() {\n            var [i, n, r, o] = t;\n            Object(ve.b)(h.a.isUri(i)), Object(ve.b)(Re.a.isIPosition(n)), Object(ve.b)(\"string\" == typeof r);\n            const s = e.get($.a);\n            var l = e.get(U);\n            const d = yield s.createModelReference(i);\n            try {\n                return function(e, t, i, n, r) {\n                    const o = z.u.ordered(t);\n                    return 0 === o.length || o[0].autoFormatTriggerCharacters.indexOf(n) < 0 ? Promise.resolve(void 0) : Promise.resolve(o[0].provideOnTypeFormattingEdits(t, i, n, r, a.a.None)).catch(se.g).then(i => e.computeMoreMinimalEdits(t.uri, i))\n                }(l, d.object.textEditorModel, Re.a.lift(n), r, o)\n            } finally {\n                d.dispose()\n            }\n        }))\n    })), n.g.wrappingIndent.defaultValue = 0, n.g.glyphMargin.defaultValue = !1, n.g.autoIndent.defaultValue = 3, n.g.overviewRulerLanes.defaultValue = 2, Rg.setFormatterSelector((e, t, i) => Promise.resolve(e[0]));\n    const Fg = Object(r.a)();\n    Fg.editor = {\n        create: function(e, t, i) {\n            return Sg(e, i || {}, i => new wl(e, t, i, i.get(_.a), i.get(o.a), i.get(m.b), i.get(Yt.b), i.get(al.a), i.get(Aa.b), i.get(ol), i.get(hi.a), i.get(Wt.a), i.get(Ks), i.get(ee.a), i.get(K.a)))\n        },\n        onDidCreateEditor: function(e) {\n            return bg.codeEditorService.get().onCodeEditorAdd(t => {\n                e(t)\n            })\n        },\n        createDiffEditor: function(e, t, i) {\n            return Sg(e, i || {}, i => new yl(e, t, i, i.get(_.a), i.get(Yt.b), i.get(al.a), i.get(Aa.b), i.get(U), i.get(o.a), i.get(ol), i.get(hi.a), i.get(Wt.a), i.get(Aa.a), i.get(Ba), i.get(ja.a)))\n        },\n        createDiffNavigator: function(e, t) {\n            return new P(e, t)\n        },\n        createModel: function(e, t, i) {\n            return Cl(bg.modelService.get(), bg.modeService.get(), e, t, i)\n        },\n        setModelLanguage: function(e, t) {\n            bg.modelService.get().setMode(e, bg.modeService.get().create(t))\n        },\n        setModelMarkers: function(e, t, i) {\n            e && bg.markerService.get().changeOne(t, e.uri, i)\n        },\n        getModelMarkers: function(e) {\n            return bg.markerService.get().read(e)\n        },\n        onDidChangeMarkers: function(e) {\n            return bg.markerService.get().onMarkerChanged(e)\n        },\n        getModels: function() {\n            return bg.modelService.get().getModels()\n        },\n        getModel: function(e) {\n            return bg.modelService.get().getModel(e)\n        },\n        onDidCreateModel: function(e) {\n            return bg.modelService.get().onModelAdded(e)\n        },\n        onWillDisposeModel: function(e) {\n            return bg.modelService.get().onModelRemoved(e)\n        },\n        onDidChangeModelLanguage: function(e) {\n            return bg.modelService.get().onModelModeChanged(t => {\n                e({\n                    model: t.model,\n                    oldLanguage: t.oldModeId\n                })\n            })\n        },\n        createWebWorker: function(e) {\n            return t = bg.modelService.get(), new be(t, e = e);\n            var t\n        },\n        colorizeElement: function(e, t) {\n            const i = bg.standaloneThemeService.get();\n            return i.registerEditorContainer(e), ht.colorizeElement(i, bg.modeService.get(), e, t)\n        },\n        colorize: function(e, t, i) {\n            return bg.standaloneThemeService.get().registerEditorContainer(document.body), ht.colorize(bg.modeService.get(), e, t, i)\n        },\n        colorizeModelLine: function(e, t, i = 4) {\n            return bg.standaloneThemeService.get().registerEditorContainer(document.body), ht.colorizeModelLine(e, t, i)\n        },\n        tokenize: function(e, t) {\n            bg.modeService.get().triggerMode(t);\n            let i = (n = t, z.A.get(n) || {\n                getInitialState: () => H.b,\n                tokenize: (e, t, i, r) => Object(H.c)(n, e, i, r)\n            });\n            var n, r = Object(b.Q)(e);\n            let o = [],\n                s = i.getInitialState();\n            for (let e = 0, t = r.length; e < t; e++) {\n                var a = r[e];\n                a = i.tokenize(a, !0, s, 0);\n                o[e] = a.tokens, s = a.endState\n            }\n            return o\n        },\n        defineTheme: function(e, t) {\n            bg.standaloneThemeService.get().defineTheme(e, t)\n        },\n        setTheme: function(e) {\n            bg.standaloneThemeService.get().setTheme(e)\n        },\n        remeasureFonts: function() {\n            Wi.INSTANCE.clearCache()\n        },\n        registerCommand: function(e, t) {\n            return m.a.registerCommand({\n                id: e,\n                handler: t\n            })\n        },\n        AccessibilitySupport: _e.a,\n        ContentWidgetPositionPreference: _e.f,\n        CursorChangeReason: _e.g,\n        DefaultEndOfLine: _e.h,\n        EditorAutoIndentStrategy: _e.j,\n        EditorOption: _e.k,\n        EndOfLinePreference: _e.l,\n        EndOfLineSequence: _e.m,\n        MinimapPosition: _e.t,\n        MouseTargetType: _e.u,\n        OverlayWidgetPositionPreference: _e.v,\n        OverviewRulerLane: _e.w,\n        RenderLineNumbersType: _e.x,\n        RenderMinimap: _e.y,\n        ScrollbarVisibility: _e.A,\n        ScrollType: _e.z,\n        TextEditorCursorBlinkingStyle: _e.F,\n        TextEditorCursorStyle: _e.G,\n        TrackedRangeStickiness: _e.H,\n        WrappingIndent: _e.I,\n        配置ChangedEvent: n.b,\n        BareFontInfo: j,\n        FontInfo: B,\n        TextModelResolvedOptions: W.h,\n        FindMatch: W.b,\n        EditorType: V,\n        EditorOptions: n.g\n    }, Fg.languages = {\n        register: function(e) {\n            Vs.registerLanguage(e)\n        },\n        getLanguages: function() {\n            let e = [];\n            return e = e.concat(Vs.getLanguages()), e\n        },\n        onLanguage: function(e, t) {\n            let i = bg.modeService.get().onDidEncounterLanguage(n => {\n                n === e && (i.dispose(), t())\n            });\n            return i\n        },\n        getEncodedLanguageId: function(e) {\n            return bg.modeService.get().languageIdCodec.encodeLanguageId(e)\n        },\n        setLanguage配置: function(e, t) {\n            var i = bg.modeService.get().validateLanguageId(e);\n            if (!i) throw new Error(\"Cannot set configuration for unknown language \" + e);\n            return Q.b.register(i, t, 100)\n        },\n        setColorMap: function(e) {\n            if (e) {\n                const t = [null];\n                for (let i = 1, n = e.length; i < n; i++) t[i] = uo.a.fromHex(e[i]);\n                bg.standaloneThemeService.get().setColorMapOverride(t)\n            } else bg.standaloneThemeService.get().setColorMapOverride(null)\n        },\n        setTokensProvider: function(e, t) {\n            const i = bg.modeService.get().validateLanguageId(e);\n            if (!i) throw new Error(\"Cannot set tokens provider for unknown language \" + e);\n            const n = e => \"tokenizeEncoded\" in e ? new Ig(i, e) : new Tg(i, e, bg.modeService.get(), bg.standaloneThemeService.get());\n            return Mg(t) ? z.A.registerPromise(e, t.then(e => n(e))) : z.A.register(e, n(t))\n        },\n        setMonarchTokensProvider: function(e, t) {\n            const i = t => {\n                return i = bg.modeService.get(), n = bg.standaloneThemeService.get(), r = e, t = function(e, t) {\n                    if (!t || \"object\" != typeof t) throw new Error(\"Monarch: expecting a language definition object\");\n                    let i = {};\n                    i.languageId = e, i.includeLF = kg(t.includeLF, !1), i.noThrow = !1, i.maxStack = 100, i.start = \"string\" == typeof t.start ? t.start : null, i.ignoreCase = kg(t.ignoreCase, !1), i.unicode = kg(t.unicode, !1), i.tokenPostfix = Lg(t.tokenPostfix, \".\" + i.languageId), i.defaultToken = Lg(t.defaultToken, \"source\"), i.usesEmbedded = !1;\n                    let n = t;\n                    if (n.languageId = e, n.includeLF = i.includeLF, n.ignoreCase = i.ignoreCase, n.unicode = i.unicode, n.noThrow = i.noThrow, n.usesEmbedded = i.usesEmbedded, n.stateNames = t.tokenizer, n.defaultToken = i.defaultToken, !t.tokenizer || \"object\" != typeof t.tokenizer) throw Je(i, \"a language definition must define the 'tokenizer' attribute as an object\");\n                    for (var r in i.tokenizer = [], t.tokenizer) {\n                        var o;\n                        t.tokenizer.hasOwnProperty(r) && (i.start || (i.start = r), o = t.tokenizer[r], i.tokenizer[r] = new Array, function e(r, o, s) {\n                            for (const a of s) {\n                                let s = a.include;\n                                if (s) {\n                                    if (\"string\" != typeof s) throw Je(i, \"an 'include' attribute must be a string at: \" + r);\n                                    if (\"@\" === s[0] && (s = s.substr(1)), !t.tokenizer[s]) throw Je(i, \"include target '\" + s + \"' is not defined at: \" + r);\n                                    e(r + \".\" + s, o, t.tokenizer[s])\n                                } else {\n                                    const e = new Dg(r);\n                                    if (Array.isArray(a) && 1 <= a.length && a.length <= 3)\n                                        if (e.setRegex(n, a[0]), 3 <= a.length)\n                                            if (\"string\" == typeof a[1]) e.setAction(n, {\n                                                token: a[1],\n                                                next: a[2]\n                                            });\n                                            else {\n                                                if (\"object\" != typeof a[1]) throw Je(i, \"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); {\n                                                    const t = a[1];\n                                                    t.next = a[2], e.setAction(n, t)\n                                                }\n                                            }\n                                    else e.setAction(n, a[1]);\n                                    else {\n                                        if (!a.regex) throw Je(i, \"a rule must either be an array, or an object with a 'regex' or 'include' field at: \" + r);\n                                        a.name && \"string\" == typeof a.name && (e.name = a.name), a.matchOnlyAtStart && (e.matchOnlyAtLineStart = kg(a.matchOnlyAtLineStart, !1)), e.setRegex(n, a.regex), e.setAction(n, a.action)\n                                    }\n                                    o.push(e)\n                                }\n                            }\n                        }(\"tokenizer.\" + r, i.tokenizer[r], o))\n                    }\n                    if (i.usesEmbedded = n.usesEmbedded, t.brackets) {\n                        if (!Array.isArray(t.brackets)) throw Je(i, \"the 'brackets' attribute must be defined as an array\")\n                    } else t.brackets = [{\n                        open: \"{\",\n                        close: \"}\",\n                        token: \"delimiter.curly\"\n                    }, {\n                        open: \"[\",\n                        close: \"]\",\n                        token: \"delimiter.square\"\n                    }, {\n                        open: \"(\",\n                        close: \")\",\n                        token: \"delimiter.parenthesis\"\n                    }, {\n                        open: \"<\",\n                        close: \">\",\n                        token: \"delimiter.angle\"\n                    }];\n                    let s = [];\n                    for (var a of t.brackets) {\n                        let e = a;\n                        if (e && Array.isArray(e) && 3 === e.length && (e = {\n                                token: e[2],\n                                open: e[0],\n                                close: e[1]\n                            }), e.open === e.close) throw Je(i, \"open and close brackets in a 'brackets' attribute must be different: \" + e.open + \"\\n hint: use the 'bracket' attribute if matching on equal brackets is required.\");\n                        if (\"string\" != typeof e.open || \"string\" != typeof e.token || \"string\" != typeof e.close) throw Je(i, \"every element in the 'brackets' array must be a '{open,close,token}' object or array\");\n                        s.push({\n                            token: e.token + i.tokenPostfix,\n                            open: Xe(i, e.open),\n                            close: Xe(i, e.close)\n                        })\n                    }\n                    return i.brackets = s, i.noThrow = !0, i\n                }(e, t), new dt(i, n, r, t);\n                var i, n, r\n            };\n            return Mg(t) ? z.A.registerPromise(e, t.then(e => i(e))) : z.A.register(e, i(t))\n        },\n        registerReferenceProvider: function(e, t) {\n            return z.v.register(e, t)\n        },\n        registerRenameProvider: function(e, t) {\n            return z.w.register(e, t)\n        },\n        registerCompletionItemProvider: function(e, t) {\n            return z.d.register(e, t)\n        },\n        registerSignatureHelpProvider: function(e, t) {\n            return z.y.register(e, t)\n        },\n        registerHoverProvider: function(e, t) {\n            return z.o.register(e, {\n                provideHover: (e, i, n) => {\n                    let r = e.getWordAtPosition(i);\n                    return Promise.resolve(t.provideHover(e, i, n)).then(e => {\n                        if (e) return !e.range && r && (e.range = new T.a(i.lineNumber, r.startColumn, i.lineNumber, r.endColumn)), e.range || (e.range = new T.a(i.lineNumber, i.column, i.lineNumber, i.column)), e\n                    })\n                }\n            })\n        },\n        registerDocumentSymbolProvider: function(e, t) {\n            return z.l.register(e, t)\n        },\n        registerDocumentHighlightProvider: function(e, t) {\n            return z.h.register(e, t)\n        },\n        registerLinkedEditingRangeProvider: function(e, t) {\n            return z.t.register(e, t)\n        },\n        registerDefinitionProvider: function(e, t) {\n            return z.f.register(e, t)\n        },\n        registerImplementationProvider: function(e, t) {\n            return z.p.register(e, t)\n        },\n        registerTypeDefinitionProvider: function(e, t) {\n            return z.B.register(e, t)\n        },\n        registerCodeLensProvider: function(e, t) {\n            return z.b.register(e, t)\n        },\n        registerCodeActionProvider: function(e, t, i) {\n            return z.a.register(e, {\n                providedCodeActionKinds: null == i ? void 0 : i.providedCodeActionKinds,\n                provideCodeActions: (e, i, n, r) => {\n                    var o = bg.markerService.get().read({\n                        resource: e.uri\n                    }).filter(e => T.a.areIntersectingOrTouching(e, i));\n                    return t.provideCodeActions(e, i, {\n                        markers: o,\n                        only: n.only\n                    }, r)\n                },\n                resolveCodeAction: t.resolveCodeAction\n            })\n        },\n        registerDocumentFormattingEditProvider: function(e, t) {\n            return z.g.register(e, t)\n        },\n        registerDocumentRangeFormattingEditProvider: function(e, t) {\n            return z.i.register(e, t)\n        },\n        registerOnTypeFormattingEditProvider: function(e, t) {\n            return z.u.register(e, t)\n        },\n        registerLinkProvider: function(e, t) {\n            return z.s.register(e, t)\n        },\n        registerColorProvider: function(e, t) {\n            return z.c.register(e, t)\n        },\n        registerFoldingRangeProvider: function(e, t) {\n            return z.n.register(e, t)\n        },\n        registerDeclarationProvider: function(e, t) {\n            return z.e.register(e, t)\n        },\n        registerSelectionRangeProvider: function(e, t) {\n            return z.x.register(e, t)\n        },\n        registerDocumentSemanticTokensProvider: function(e, t) {\n            return z.k.register(e, t)\n        },\n        registerDocumentRangeSemanticTokensProvider: function(e, t) {\n            return z.j.register(e, t)\n        },\n        registerInlineCompletionsProvider: function(e, t) {\n            return z.r.register(e, t)\n        },\n        registerInlayHintsProvider: function(e, t) {\n            return z.q.register(e, t)\n        },\n        DocumentHighlightKind: _e.i,\n        CompletionItemKind: _e.c,\n        CompletionItemTag: _e.d,\n        CompletionItemInsertTextRule: _e.b,\n        SymbolKind: _e.D,\n        SymbolTag: _e.E,\n        IndentAction: _e.n,\n        CompletionTriggerKind: _e.e,\n        SignatureHelpTriggerKind: _e.C,\n        InlayHintKind: _e.o,\n        InlineCompletionTriggerKind: _e.p,\n        FoldingRangeKind: z.m\n    }, Fg.CancellationTokenSource;\n    const jg = Fg.Emitter,\n        Bg = Fg.KeyCode,\n        Vg = Fg.KeyMod;\n    Fg.Position;\n    const Wg = Fg.Range,\n        zg = Fg.Selection;\n    Fg.SelectionDirection;\n    const Hg = Fg.MarkerSeverity,\n        Ug = Fg.MarkerTag,\n        Kg = Fg.Uri;\n    Fg.Token;\n    const $g = Fg.editor,\n        qg = Fg.languages;\n    (null !== (r = A.b.MonacoEnvironment) && void 0 !== r && r.globalAPI || \"function\" == typeof define && i(456)) && (self.monaco = Fg), void 0 !== self.require && \"function\" == typeof self.require.config && self.require.config({\n        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\"]\n    })\n}, function(e, t, i) {\n    \"use strict\";\n    i.d(t, \"b\", (function() {\n        return O\n    })), i.d(t, \"c\", (function() {\n        return E\n    })), i.d(t, \"a\", (function() {\n        return N\n    }));\n    var n = i(37),\n        r = i(1),\n        o = i(34),\n        s = i(66),\n        a = i(118),\n        l = i(84),\n        d = i(32);\n    class c extends l.a {\n        constructor(e) {\n            super(), this._onActivate = e.onActivate, this.bgDomNode = document.createElement(\"div\"), this.bgDomNode.className = \"arrow-background\", this.bgDomNode.style.position = \"absolute\", this.bgDomNode.style.width = e.bgWidth + \"px\", this.bgDomNode.style.height = e.bgHeight + \"px\", void 0 !== e.top && (this.bgDomNode.style.top = \"0px\"), void 0 !== e.left && (this.bgDomNode.style.left = \"0px\"), void 0 !== e.bottom && (this.bgDomNode.style.bottom = \"0px\"), void 0 !== e.right && (this.bgDomNode.style.right = \"0px\"), this.domNode = document.createElement(\"div\"), this.domNode.className = e.className, this.domNode.classList.add(...e.icon.classNamesArray), this.domNode.style.position = \"absolute\", this.domNode.style.width = \"11px\", this.domNode.style.height = \"11px\", void 0 !== e.top && (this.domNode.style.top = e.top + \"px\"), void 0 !== e.left && (this.domNode.style.left = e.left + \"px\"), void 0 !== e.bottom && (this.domNode.style.bottom = e.bottom + \"px\"), void 0 !== e.right && (this.domNode.style.right = e.right + \"px\"), this._mouseMoveMonitor = this._register(new a.a), this.onmousedown(this.bgDomNode, e => this._arrowMouseDown(e)), this.onmousedown(this.domNode, e => this._arrowMouseDown(e)), this._mousedownRepeatTimer = this._register(new d.c), this._mousedownScheduleRepeatTimer = this._register(new d.g)\n        }\n        _arrowMouseDown(e) {\n            this._onActivate(), this._mousedownRepeatTimer.cancel(), this._mousedownScheduleRepeatTimer.cancelAndSet(() => {\n                this._mousedownRepeatTimer.cancelAndSet(() => this._onActivate(), 1e3 / 24)\n            }, 200), this._mouseMoveMonitor.startMonitoring(e.target, e.buttons, a.b, e => {}, () => {\n                this._mousedownRepeatTimer.cancel(), this._mousedownScheduleRepeatTimer.cancel()\n            }), e.preventDefault()\n        }\n    }\n    var h = i(4);\n    class u extends h.a {\n        constructor(e, t, i) {\n            super(), this._visibility = e, this._visibleClassName = t, this._invisibleClassName = i, this._domNode = null, this._isVisible = !1, this._isNeeded = !1, this._rawShouldBeVisible = !1, this._shouldBeVisible = !1, this._revealTimer = this._register(new d.g)\n        }\n        setVisibility(e) {\n            this._visibility !== e && (this._visibility = e, this._updateShouldBeVisible())\n        }\n        setShouldBeVisible(e) {\n            this._rawShouldBeVisible = e, this._updateShouldBeVisible()\n        }\n        _applyVisibilitySetting() {\n            return 2 !== this._visibility && (3 === this._visibility || this._rawShouldBeVisible)\n        }\n        _updateShouldBeVisible() {\n            var e = this._applyVisibilitySetting();\n            this._shouldBeVisible !== e && (this._shouldBeVisible = e, this.ensureVisibility())\n        }\n        setIsNeeded(e) {\n            this._isNeeded !== e && (this._isNeeded = e, this.ensureVisibility())\n        }\n        setDomNode(e) {\n            this._domNode = e, this._domNode.setClassName(this._invisibleClassName), this.setShouldBeVisible(!1)\n        }\n        ensureVisibility() {\n            this._isNeeded ? this._shouldBeVisible ? this._reveal() : this._hide(!0) : this._hide(!1)\n        }\n        _reveal() {\n            this._isVisible || (this._isVisible = !0, this._revealTimer.setIfNotSet(() => {\n                this._domNode && this._domNode.setClassName(this._visibleClassName)\n            }, 0))\n        }\n        _hide(e) {\n            this._revealTimer.cancel(), this._isVisible && (this._isVisible = !1, this._domNode && this._domNode.setClassName(this._invisibleClassName + (e ? \" fade\" : \"\")))\n        }\n    }\n    var p = i(9);\n    class g extends l.a {\n        constructor(e) {\n            super(), this._lazyRender = e.lazyRender, this._host = e.host, this._scrollable = e.scrollable, this._scrollByPage = e.scrollByPage, this._scrollbarState = e.scrollbarState, this._visibilityController = this._register(new u(e.visibility, \"visible scrollbar \" + e.extraScrollbarClassName, \"invisible scrollbar \" + e.extraScrollbarClassName)), this._visibilityController.setIsNeeded(this._scrollbarState.isNeeded()), this._mouseMoveMonitor = this._register(new a.a), this._shouldRender = !0, this.domNode = Object(o.b)(document.createElement(\"div\")), this.domNode.setAttribute(\"role\", \"presentation\"), this.domNode.setAttribute(\"aria-hidden\", \"true\"), this._visibilityController.setDomNode(this.domNode), this.domNode.setPosition(\"absolute\"), this.onmousedown(this.domNode.domNode, e => this._domNodeMouseDown(e))\n        }\n        _createArrow(e) {\n            e = this._register(new c(e)), this.domNode.domNode.appendChild(e.bgDomNode), this.domNode.domNode.appendChild(e.domNode)\n        }\n        _createSlider(e, t, i, n) {\n            this.slider = Object(o.b)(document.createElement(\"div\")), this.slider.setClassName(\"slider\"), this.slider.setPosition(\"absolute\"), this.slider.setTop(e), this.slider.setLeft(t), \"number\" == typeof i && this.slider.setWidth(i), \"number\" == typeof n && this.slider.setHeight(n), this.slider.setLayerHinting(!0), this.slider.setContain(\"strict\"), this.domNode.domNode.appendChild(this.slider.domNode), this.onmousedown(this.slider.domNode, e => {\n                e.leftButton && (e.preventDefault(), this._sliderMouseDown(e, () => {}))\n            }), this.onclick(this.slider.domNode, e => {\n                e.leftButton && e.stopPropagation()\n            })\n        }\n        _onElementSize(e) {\n            return this._scrollbarState.setVisibleSize(e) && (this._visibilityController.setIsNeeded(this._scrollbarState.isNeeded()), this._shouldRender = !0, this._lazyRender || this.render()), this._shouldRender\n        }\n        _onElementScrollSize(e) {\n            return this._scrollbarState.setScrollSize(e) && (this._visibilityController.setIsNeeded(this._scrollbarState.isNeeded()), this._shouldRender = !0, this._lazyRender || this.render()), this._shouldRender\n        }\n        _onElementScrollPosition(e) {\n            return this._scrollbarState.setScrollPosition(e) && (this._visibilityController.setIsNeeded(this._scrollbarState.isNeeded()), this._shouldRender = !0, this._lazyRender || this.render()), this._shouldRender\n        }\n        beginReveal() {\n            this._visibilityController.setShouldBeVisible(!0)\n        }\n        beginHide() {\n            this._visibilityController.setShouldBeVisible(!1)\n        }\n        render() {\n            this._shouldRender && (this._shouldRender = !1, this._renderDomNode(this._scrollbarState.getRectangleLargeSize(), this._scrollbarState.getRectangleSmallSize()), this._updateSlider(this._scrollbarState.getSliderSize(), this._scrollbarState.getArrowSize() + this._scrollbarState.getSliderPosition()))\n        }\n        _domNodeMouseDown(e) {\n            e.target === this.domNode.domNode && this._onMouseDown(e)\n        }\n        delegateMouseDown(e) {\n            var t, i = (t = this.domNode.domNode.getClientRects()[0].top) + this._scrollbarState.getSliderPosition(),\n                n = t + this._scrollbarState.getSliderPosition() + this._scrollbarState.getSliderSize();\n            i <= (t = this._sliderMousePosition(e)) && t <= n ? e.leftButton && (e.preventDefault(), this._sliderMouseDown(e, () => {})) : this._onMouseDown(e)\n        }\n        _onMouseDown(e) {\n            let t, i;\n            i = e.target === this.domNode.domNode && \"number\" == typeof e.browserEvent.offsetX && \"number\" == typeof e.browserEvent.offsetY ? (t = e.browserEvent.offsetX, e.browserEvent.offsetY) : (n = r.A(this.domNode.domNode), t = e.posx - n.left, e.posy - n.top);\n            var n = this._mouseDownRelativePosition(t, i);\n            this._setDesiredScrollPositionNow(this._scrollByPage ? this._scrollbarState.getDesiredScrollPositionFromOffsetPaged(n) : this._scrollbarState.getDesiredScrollPositionFromOffset(n)), e.leftButton && (e.preventDefault(), this._sliderMouseDown(e, () => {}))\n        }\n        _sliderMouseDown(e, t) {\n            const i = this._sliderMousePosition(e),\n                n = this._sliderOrthogonalMousePosition(e),\n                r = this._scrollbarState.clone();\n            this.slider.toggleClassName(\"active\", !0), this._mouseMoveMonitor.startMonitoring(e.target, e.buttons, a.b, e => {\n                var t = this._sliderOrthogonalMousePosition(e);\n                t = Math.abs(t - n);\n                p.i && 140 < t ? this._setDesiredScrollPositionNow(r.getScrollPosition()) : (e = this._sliderMousePosition(e) - i, this._setDesiredScrollPositionNow(r.getDesiredScrollPositionFromDelta(e)))\n            }, () => {\n                this.slider.toggleClassName(\"active\", !1), this._host.onDragEnd(), t()\n            }), this._host.onDragStart()\n        }\n        _setDesiredScrollPositionNow(e) {\n            var t = {};\n            this.writeScrollPosition(t, e), this._scrollable.setScrollPositionNow(t)\n        }\n        updateScrollbarSize(e) {\n            this._updateScrollbarSize(e), this._scrollbarState.setScrollbarSize(e), this._shouldRender = !0, this._lazyRender || this.render()\n        }\n        isNeeded() {\n            return this._scrollbarState.isNeeded()\n        }\n    }\n    class f {\n        constructor(e, t, i, n, r, o) {\n            this._scrollbarSize = Math.round(t), this._oppositeScrollbarSize = Math.round(i), this._arrowSize = Math.round(e), this._visibleSize = n, this._scrollSize = r, this._scrollPosition = o, this._computedAvailableSize = 0, this._computedIsNeeded = !1, this._computedSliderSize = 0, this._computedSliderRatio = 0, this._computedSliderPosition = 0, this._refreshComputedValues()\n        }\n        clone() {\n            return new f(this._arrowSize, this._scrollbarSize, this._oppositeScrollbarSize, this._visibleSize, this._scrollSize, this._scrollPosition)\n        }\n        setVisibleSize(e) {\n            return e = Math.round(e), this._visibleSize !== e && (this._visibleSize = e, this._refreshComputedValues(), !0)\n        }\n        setScrollSize(e) {\n            return e = Math.round(e), this._scrollSize !== e && (this._scrollSize = e, this._refreshComputedValues(), !0)\n        }\n        setScrollPosition(e) {\n            return e = Math.round(e), this._scrollPosition !== e && (this._scrollPosition = e, this._refreshComputedValues(), !0)\n        }\n        setScrollbarSize(e) {\n            this._scrollbarSize = Math.round(e)\n        }\n        setOppositeScrollbarSize(e) {\n            this._oppositeScrollbarSize = Math.round(e)\n        }\n        static _computeValues(e, t, i, n, r) {\n            var o = Math.max(0, i - e),\n                s = Math.max(0, o - 2 * t);\n            return (e = 0 < n && i < n) ? (r *= i = (s - (t = Math.round(Math.max(20, Math.floor(i * s / n))))) / (n - i), {\n                computedAvailableSize: Math.round(o),\n                computedIsNeeded: e,\n                computedSliderSize: Math.round(t),\n                computedSliderRatio: i,\n                computedSliderPosition: Math.round(r)\n            }) : {\n                computedAvailableSize: Math.round(o),\n                computedIsNeeded: e,\n                computedSliderSize: Math.round(s),\n                computedSliderRatio: 0,\n                computedSliderPosition: 0\n            }\n        }\n        _refreshComputedValues() {\n            var e = f._computeValues(this._oppositeScrollbarSize, this._arrowSize, this._visibleSize, this._scrollSize, this._scrollPosition);\n            this._computedAvailableSize = e.computedAvailableSize, this._computedIsNeeded = e.computedIsNeeded, this._computedSliderSize = e.computedSliderSize, this._computedSliderRatio = e.computedSliderRatio, this._computedSliderPosition = e.computedSliderPosition\n        }\n        getArrowSize() {\n            return this._arrowSize\n        }\n        getScrollPosition() {\n            return this._scrollPosition\n        }\n        getRectangleLargeSize() {\n            return this._computedAvailableSize\n        }\n        getRectangleSmallSize() {\n            return this._scrollbarSize\n        }\n        isNeeded() {\n            return this._computedIsNeeded\n        }\n        getSliderSize() {\n            return this._computedSliderSize\n        }\n        getSliderPosition() {\n            return this._computedSliderPosition\n        }\n        getDesiredScrollPositionFromOffset(e) {\n            return this._computedIsNeeded ? (e = e - this._arrowSize - this._computedSliderSize / 2, Math.round(e / this._computedSliderRatio)) : 0\n        }\n        getDesiredScrollPositionFromOffsetPaged(e) {\n            if (!this._computedIsNeeded) return 0;\n            e -= this._arrowSize;\n            let t = this._scrollPosition;\n            return e < this._computedSliderPosition ? t -= this._visibleSize : t += this._visibleSize, t\n        }\n        getDesiredScrollPositionFromDelta(e) {\n            return this._computedIsNeeded ? (e = this._computedSliderPosition + e, Math.round(e / this._computedSliderRatio)) : 0\n        }\n    }\n    t = i(33);\n    const m = Object(t.e)(\"scrollbar-button-left\", t.b.triangleLeft),\n        v = Object(t.e)(\"scrollbar-button-right\", t.b.triangleRight);\n    class b extends g {\n        constructor(e, t, i) {\n            var n = e.getScrollDimensions(),\n                r = e.getCurrentScrollPosition();\n            super({\n                lazyRender: t.lazyRender,\n                host: i,\n                scrollbarState: new f(t.horizontalHasArrows ? t.arrowSize : 0, 2 === t.horizontal ? 0 : t.horizontalScrollbarSize, 2 === t.vertical ? 0 : t.verticalScrollbarSize, n.width, n.scrollWidth, r.scrollLeft),\n                visibility: t.horizontal,\n                extraScrollbarClassName: \"horizontal\",\n                scrollable: e,\n                scrollByPage: t.scrollByPage\n            }), t.horizontalHasArrows && (r = (t.arrowSize - 11) / 2, e = (t.horizontalScrollbarSize - 11) / 2, this._createArrow({\n                className: \"scra\",\n                icon: m,\n                top: e,\n                left: r,\n                bottom: void 0,\n                right: void 0,\n                bgWidth: t.arrowSize,\n                bgHeight: t.horizontalScrollbarSize,\n                onActivate: () => this._host.onMouseWheel(new s.b(null, 1, 0))\n            }), this._createArrow({\n                className: \"scra\",\n                icon: v,\n                top: e,\n                left: void 0,\n                bottom: void 0,\n                right: r,\n                bgWidth: t.arrowSize,\n                bgHeight: t.horizontalScrollbarSize,\n                onActivate: () => this._host.onMouseWheel(new s.b(null, -1, 0))\n            })), this._createSlider(Math.floor((t.horizontalScrollbarSize - t.horizontalSliderSize) / 2), 0, void 0, t.horizontalSliderSize)\n        }\n        _updateSlider(e, t) {\n            this.slider.setWidth(e), this.slider.setLeft(t)\n        }\n        _renderDomNode(e, t) {\n            this.domNode.setWidth(e), this.domNode.setHeight(t), this.domNode.setLeft(0), this.domNode.setBottom(0)\n        }\n        onDidScroll(e) {\n            return this._shouldRender = this._onElementScrollSize(e.scrollWidth) || this._shouldRender, this._shouldRender = this._onElementScrollPosition(e.scrollLeft) || this._shouldRender, this._shouldRender = this._onElementSize(e.width) || this._shouldRender, this._shouldRender\n        }\n        _mouseDownRelativePosition(e, t) {\n            return e\n        }\n        _sliderMousePosition(e) {\n            return e.posx\n        }\n        _sliderOrthogonalMousePosition(e) {\n            return e.posy\n        }\n        _updateScrollbarSize(e) {\n            this.slider.setHeight(e)\n        }\n        writeScrollPosition(e, t) {\n            e.scrollLeft = t\n        }\n        updateOptions(e) {\n            this.updateScrollbarSize(2 === e.horizontal ? 0 : e.horizontalScrollbarSize), this._scrollbarState.setOppositeScrollbarSize(2 === e.vertical ? 0 : e.verticalScrollbarSize), this._visibilityController.setVisibility(e.horizontal), this._scrollByPage = e.scrollByPage\n        }\n    }\n    const _ = Object(t.e)(\"scrollbar-button-up\", t.b.triangleUp),\n        w = Object(t.e)(\"scrollbar-button-down\", t.b.triangleDown);\n    class y extends g {\n        constructor(e, t, i) {\n            var n = e.getScrollDimensions(),\n                r = e.getCurrentScrollPosition();\n            super({\n                lazyRender: t.lazyRender,\n                host: i,\n                scrollbarState: new f(t.verticalHasArrows ? t.arrowSize : 0, 2 === t.vertical ? 0 : t.verticalScrollbarSize, 0, n.height, n.scrollHeight, r.scrollTop),\n                visibility: t.vertical,\n                extraScrollbarClassName: \"vertical\",\n                scrollable: e,\n                scrollByPage: t.scrollByPage\n            }), t.verticalHasArrows && (r = (t.arrowSize - 11) / 2, e = (t.verticalScrollbarSize - 11) / 2, this._createArrow({\n                className: \"scra\",\n                icon: _,\n                top: r,\n                left: e,\n                bottom: void 0,\n                right: void 0,\n                bgWidth: t.verticalScrollbarSize,\n                bgHeight: t.arrowSize,\n                onActivate: () => this._host.onMouseWheel(new s.b(null, 0, 1))\n            }), this._createArrow({\n                className: \"scra\",\n                icon: w,\n                top: void 0,\n                left: e,\n                bottom: r,\n                right: void 0,\n                bgWidth: t.verticalScrollbarSize,\n                bgHeight: t.arrowSize,\n                onActivate: () => this._host.onMouseWheel(new s.b(null, 0, -1))\n            })), this._createSlider(0, Math.floor((t.verticalScrollbarSize - t.verticalSliderSize) / 2), t.verticalSliderSize, void 0)\n        }\n        _updateSlider(e, t) {\n            this.slider.setHeight(e), this.slider.setTop(t)\n        }\n        _renderDomNode(e, t) {\n            this.domNode.setWidth(t), this.domNode.setHeight(e), this.domNode.setRight(0), this.domNode.setTop(0)\n        }\n        onDidScroll(e) {\n            return this._shouldRender = this._onElementScrollSize(e.scrollHeight) || this._shouldRender, this._shouldRender = this._onElementScrollPosition(e.scrollTop) || this._shouldRender, this._shouldRender = this._onElementSize(e.height) || this._shouldRender, this._shouldRender\n        }\n        _mouseDownRelativePosition(e, t) {\n            return t\n        }\n        _sliderMousePosition(e) {\n            return e.posy\n        }\n        _sliderOrthogonalMousePosition(e) {\n            return e.posx\n        }\n        _updateScrollbarSize(e) {\n            this.slider.setWidth(e)\n        }\n        writeScrollPosition(e, t) {\n            e.scrollTop = t\n        }\n        updateOptions(e) {\n            this.updateScrollbarSize(2 === e.vertical ? 0 : e.verticalScrollbarSize), this._scrollbarState.setOppositeScrollbarSize(0), this._visibilityController.setVisibility(e.vertical), this._scrollByPage = e.scrollByPage\n        }\n    }\n    var C = i(2),\n        x = i(133);\n    i(381);\n    class S {\n        constructor(e, t, i) {\n            this.timestamp = e, this.deltaX = t, this.deltaY = i, this.score = 0\n        }\n    }\n    class k {\n        constructor() {\n            this._capacity = 5, this._memory = [], this._front = -1, this._rear = -1\n        }\n        isPhysicalMouseWheel() {\n            if (-1 === this._front && -1 === this._rear) return !1;\n            let e = 1,\n                t = 0,\n                i = 1,\n                n = this._rear;\n            for (;;) {\n                var r = n === this._front ? e : Math.pow(2, -i);\n                if (e -= r, t += this._memory[n].score * r, n === this._front) break;\n                n = (this._capacity + n - 1) % this._capacity, i++\n            }\n            return t <= .5\n        }\n        accept(e, t, i) {\n            const n = new S(e, t, i);\n            n.score = this._computeScore(n), -1 === this._front && -1 === this._rear ? (this._memory[0] = n, this._front = 0, this._rear = 0) : (this._rear = (this._rear + 1) % this._capacity, this._rear === this._front && (this._front = (this._front + 1) % this._capacity), this._memory[this._rear] = n)\n        }\n        _computeScore(e) {\n            if (0 < Math.abs(e.deltaX) && 0 < Math.abs(e.deltaY)) return 1;\n            let t = .5;\n            return -1 === this._front && -1 === this._rear || this._memory[this._rear], this._isAlmostInt(e.deltaX) && this._isAlmostInt(e.deltaY) || (t += .25), Math.min(Math.max(t, 0), 1)\n        }\n        _isAlmostInt(e) {\n            return Math.abs(Math.round(e) - e) < .01\n        }\n    }\n    k.INSTANCE = new k;\n    class L extends l.a {\n        constructor(e, t, i) {\n            super(), this._onScroll = this._register(new C.b), this.onScroll = this._onScroll.event, this._onWillScroll = this._register(new C.b), e.style.overflow = \"hidden\", this._options = function(e) {\n                const t = {\n                    lazyRender: void 0 !== e.lazyRender && e.lazyRender,\n                    className: void 0 !== e.className ? e.className : \"\",\n                    useShadows: void 0 === e.useShadows || e.useShadows,\n                    handleMouseWheel: void 0 === e.handleMouseWheel || e.handleMouseWheel,\n                    flipAxes: void 0 !== e.flipAxes && e.flipAxes,\n                    consumeMouseWheelIfScrollbarIsNeeded: void 0 !== e.consumeMouseWheelIfScrollbarIsNeeded && e.consumeMouseWheelIfScrollbarIsNeeded,\n                    alwaysConsumeMouseWheel: void 0 !== e.alwaysConsumeMouseWheel && e.alwaysConsumeMouseWheel,\n                    scrollYToX: void 0 !== e.scrollYToX && e.scrollYToX,\n                    mouseWheelScrollSensitivity: void 0 !== e.mouseWheelScrollSensitivity ? e.mouseWheelScrollSensitivity : 1,\n                    fastScrollSensitivity: void 0 !== e.fastScrollSensitivity ? e.fastScrollSensitivity : 5,\n                    scrollPredominantAxis: void 0 === e.scrollPredominantAxis || e.scrollPredominantAxis,\n                    mouseWheelSmoothScroll: void 0 === e.mouseWheelSmoothScroll || e.mouseWheelSmoothScroll,\n                    arrowSize: void 0 !== e.arrowSize ? e.arrowSize : 11,\n                    listenOnDomNode: void 0 !== e.listenOnDomNode ? e.listenOnDomNode : null,\n                    horizontal: void 0 !== e.horizontal ? e.horizontal : 1,\n                    horizontalScrollbarSize: void 0 !== e.horizontalScrollbarSize ? e.horizontalScrollbarSize : 10,\n                    horizontalSliderSize: void 0 !== e.horizontalSliderSize ? e.horizontalSliderSize : 0,\n                    horizontalHasArrows: void 0 !== e.horizontalHasArrows && e.horizontalHasArrows,\n                    vertical: void 0 !== e.vertical ? e.vertical : 1,\n                    verticalScrollbarSize: void 0 !== e.verticalScrollbarSize ? e.verticalScrollbarSize : 10,\n                    verticalHasArrows: void 0 !== e.verticalHasArrows && e.verticalHasArrows,\n                    verticalSliderSize: void 0 !== e.verticalSliderSize ? e.verticalSliderSize : 0,\n                    scrollByPage: void 0 !== e.scrollByPage && e.scrollByPage\n                };\n                return t.horizontalSliderSize = void 0 !== e.horizontalSliderSize ? e.horizontalSliderSize : t.horizontalScrollbarSize, t.verticalSliderSize = void 0 !== e.verticalSliderSize ? e.verticalSliderSize : t.verticalScrollbarSize, p.f && (t.className += \" mac\"), t\n            }(t), this._scrollable = i, this._register(this._scrollable.onScroll(e => {\n                this._onWillScroll.fire(e), this._onDidScroll(e), this._onScroll.fire(e)\n            })), i = {\n                onMouseWheel: e => this._onMouseWheel(e),\n                onDragStart: () => this._onDragStart(),\n                onDragEnd: () => this._onDragEnd()\n            }, this._verticalScrollbar = this._register(new y(this._scrollable, this._options, i)), this._horizontalScrollbar = this._register(new b(this._scrollable, this._options, i)), 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(e), this._domNode.appendChild(this._horizontalScrollbar.domNode.domNode), this._domNode.appendChild(this._verticalScrollbar.domNode.domNode), this._options.useShadows ? (this._leftShadowDomNode = Object(o.b)(document.createElement(\"div\")), this._leftShadowDomNode.setClassName(\"shadow\"), this._domNode.appendChild(this._leftShadowDomNode.domNode), this._topShadowDomNode = Object(o.b)(document.createElement(\"div\")), this._topShadowDomNode.setClassName(\"shadow\"), this._domNode.appendChild(this._topShadowDomNode.domNode), this._topLeftShadowDomNode = Object(o.b)(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, e => this._onMouseOver(e)), this.onnonbubblingmouseout(this._listenOnDomNode, e => this._onMouseOut(e)), this._hideTimeout = this._register(new d.g), this._isDragging = !1, this._mouseIsOver = !1, this._shouldRender = !0, this._revealOnScroll = !0\n        }\n        dispose() {\n            this._mouseWheelToDispose = Object(h.f)(this._mouseWheelToDispose), super.dispose()\n        }\n        getDomNode() {\n            return this._domNode\n        }\n        getOverviewRulerLayoutInfo() {\n            return {\n                parent: this._domNode,\n                insertBefore: this._verticalScrollbar.domNode.domNode\n            }\n        }\n        delegateVerticalScrollbarMouseDown(e) {\n            this._verticalScrollbar.delegateMouseDown(e)\n        }\n        getScrollDimensions() {\n            return this._scrollable.getScrollDimensions()\n        }\n        setScrollDimensions(e) {\n            this._scrollable.setScrollDimensions(e, !1)\n        }\n        updateClassName(e) {\n            this._options.className = e, p.f && (this._options.className += \" mac\"), this._domNode.className = \"monaco-scrollable-element \" + this._options.className\n        }\n        updateOptions(e) {\n            void 0 !== e.handleMouseWheel && (this._options.handleMouseWheel = e.handleMouseWheel, this._setListeningToMouseWheel(this._options.handleMouseWheel)), void 0 !== e.mouseWheelScrollSensitivity && (this._options.mouseWheelScrollSensitivity = e.mouseWheelScrollSensitivity), void 0 !== e.fastScrollSensitivity && (this._options.fastScrollSensitivity = e.fastScrollSensitivity), void 0 !== e.scrollPredominantAxis && (this._options.scrollPredominantAxis = e.scrollPredominantAxis), void 0 !== e.horizontal && (this._options.horizontal = e.horizontal), void 0 !== e.vertical && (this._options.vertical = e.vertical), void 0 !== e.horizontalScrollbarSize && (this._options.horizontalScrollbarSize = e.horizontalScrollbarSize), void 0 !== e.verticalScrollbarSize && (this._options.verticalScrollbarSize = e.verticalScrollbarSize), void 0 !== e.scrollByPage && (this._options.scrollByPage = e.scrollByPage), this._horizontalScrollbar.updateOptions(this._options), this._verticalScrollbar.updateOptions(this._options), this._options.lazyRender || this._render()\n        }\n        _setListeningToMouseWheel(e) {\n            0 < this._mouseWheelToDispose.length !== e && (this._mouseWheelToDispose = Object(h.f)(this._mouseWheelToDispose), e && this._mouseWheelToDispose.push(r.g(this._listenOnDomNode, r.d.MOUSE_WHEEL, e => {\n                this._onMouseWheel(new s.b(e))\n            }, {\n                passive: !1\n            })))\n        }\n        _onMouseWheel(e) {\n            const t = k.INSTANCE;\n            var i = window.devicePixelRatio / Object(n.c)();\n            p.i || p.d ? t.accept(Date.now(), e.deltaX / i, e.deltaY / i) : t.accept(Date.now(), e.deltaX, e.deltaY);\n            let r = !1;\n            if (e.deltaY || e.deltaX) {\n                let n = e.deltaY * this._options.mouseWheelScrollSensitivity,\n                    s = e.deltaX * this._options.mouseWheelScrollSensitivity;\n                this._options.scrollPredominantAxis && (Math.abs(n) >= Math.abs(s) ? s = 0 : n = 0), this._options.flipAxes && ([n, s] = [s, n]), i = !p.f && e.browserEvent && e.browserEvent.shiftKey, !this._options.scrollYToX && !i || s || (s = n, n = 0), e.browserEvent && e.browserEvent.altKey && (s *= this._options.fastScrollSensitivity, n *= this._options.fastScrollSensitivity);\n                var o;\n                i = this._scrollable.getFutureScrollPosition();\n                let a = {};\n                n && (o = 50 * n, o = i.scrollTop - (o < 0 ? Math.floor(o) : Math.ceil(o)), this._verticalScrollbar.writeScrollPosition(a, o)), s && (o = 50 * s, o = i.scrollLeft - (o < 0 ? Math.floor(o) : Math.ceil(o)), this._horizontalScrollbar.writeScrollPosition(a, o)), a = this._scrollable.validateScrollPosition(a), i.scrollLeft === a.scrollLeft && i.scrollTop === a.scrollTop || (this._options.mouseWheelSmoothScroll && t.isPhysicalMouseWheel() ? this._scrollable.setScrollPositionSmooth(a) : this._scrollable.setScrollPositionNow(a), r = !0)\n            }\n            let s = r;\n            !s && this._options.alwaysConsumeMouseWheel && (s = !0), !s && this._options.consumeMouseWheelIfScrollbarIsNeeded && (this._verticalScrollbar.isNeeded() || this._horizontalScrollbar.isNeeded()) && (s = !0), s && (e.preventDefault(), e.stopPropagation())\n        }\n        _onDidScroll(e) {\n            this._shouldRender = this._horizontalScrollbar.onDidScroll(e) || this._shouldRender, this._shouldRender = this._verticalScrollbar.onDidScroll(e) || this._shouldRender, this._options.useShadows && (this._shouldRender = !0), this._revealOnScroll && this._reveal(), this._options.lazyRender || this._render()\n        }\n        renderNow() {\n            if (!this._options.lazyRender) throw new Error(\"Please use `lazyRender` together with `renderNow`!\");\n            this._render()\n        }\n        _render() {\n            var e, t, i;\n            this._shouldRender && (this._shouldRender = !1, this._horizontalScrollbar.render(), this._verticalScrollbar.render(), this._options.useShadows && (t = (i = 0 < (e = this._scrollable.getCurrentScrollPosition()).scrollTop) ? \" top\" : \"\", i = (e = 0 < e.scrollLeft) || i ? \" top-left-corner\" : \"\", this._leftShadowDomNode.setClassName(\"shadow\" + (e = e ? \" left\" : \"\")), this._topShadowDomNode.setClassName(\"shadow\" + t), this._topLeftShadowDomNode.setClassName(`shadow${i}${t}${e}`)))\n        }\n        _onDragStart() {\n            this._isDragging = !0, this._reveal()\n        }\n        _onDragEnd() {\n            this._isDragging = !1, this._hide()\n        }\n        _onMouseOut(e) {\n            this._mouseIsOver = !1, this._hide()\n        }\n        _onMouseOver(e) {\n            this._mouseIsOver = !0, this._reveal()\n        }\n        _reveal() {\n            this._verticalScrollbar.beginReveal(), this._horizontalScrollbar.beginReveal(), this._scheduleHide()\n        }\n        _hide() {\n            this._mouseIsOver || this._isDragging || (this._verticalScrollbar.beginHide(), this._horizontalScrollbar.beginHide())\n        }\n        _scheduleHide() {\n            this._mouseIsOver || this._isDragging || this._hideTimeout.cancelAndSet(() => this._hide(), 500)\n        }\n    }\n    class O extends L {\n        constructor(e, t) {\n            (t = t || {}).mouseWheelSmoothScroll = !1;\n            var i = new x.a(0, e => r.R(e));\n            super(e, t, i), this._register(i)\n        }\n        setScrollPosition(e) {\n            this._scrollable.setScrollPositionNow(e)\n        }\n        getScrollPosition() {\n            return this._scrollable.getCurrentScrollPosition()\n        }\n    }\n    class E extends L {\n        constructor(e, t, i) {\n            super(e, t, i)\n        }\n        setScrollPosition(e) {\n            e.reuseAnimation ? this._scrollable.setScrollPositionSmooth(e, e.reuseAnimation) : this._scrollable.setScrollPositionNow(e)\n        }\n        getScrollPosition() {\n            return this._scrollable.getCurrentScrollPosition()\n        }\n    }\n    class N extends O {\n        constructor(e, t) {\n            super(e, t), this._element = e, this.onScroll(e => {\n                e.scrollTopChanged && (this._element.scrollTop = e.scrollTop), e.scrollLeftChanged && (this._element.scrollLeft = e.scrollLeft)\n            }), this.scanDomNode()\n        }\n        scanDomNode() {\n            this.setScrollDimensions({\n                width: this._element.clientWidth,\n                scrollWidth: this._element.scrollWidth,\n                height: this._element.clientHeight,\n                scrollHeight: this._element.scrollHeight\n            }), this.setScrollPosition({\n                scrollLeft: this._element.scrollLeft,\n                scrollTop: this._element.scrollTop\n            })\n        }\n    }\n}, function(e, t, i) {\n    \"use strict\";\n    i.d(t, \"a\", (function() {\n        return s\n    })), i.d(t, \"b\", (function() {\n        return f\n    })), i.d(t, \"c\", (function() {\n        return m\n    }));\n    var n = i(2),\n        r = i(17),\n        o = i(0);\n    t = i(148), i = i(58);\n    const s = {\n            配置: \"base.contributions.configuration\"\n        },\n        a = {\n            properties: {},\n            patternProperties: {}\n        },\n        l = {\n            properties: {},\n            patternProperties: {}\n        },\n        d = {\n            properties: {},\n            patternProperties: {}\n        },\n        c = {\n            properties: {},\n            patternProperties: {}\n        },\n        h = {\n            properties: {},\n            patternProperties: {}\n        },\n        u = {\n            properties: {},\n            patternProperties: {}\n        },\n        p = \"vscode://schemas/settings/resourceLanguage\",\n        g = i.a.as(t.a.JSONContribution),\n        f = new RegExp(\"\\\\[.*\\\\]$\");\n\n    function m(e) {\n        return e.substring(1, e.length - 1)\n    }\n    const v = new class {\n        constructor() {\n            this.overrideIdentifiers = new Set, this._onDidSchemaChange = new n.b, this._onDidUpdate配置 = new n.b, this.defaultValues = {}, this.defaultLanguage配置OverridesNode = {\n                id: \"defaultOverrides\",\n                title: o.a(\"defaultLanguage配置Overrides.title\", \"Default Language 配置 Overrides\"),\n                properties: {}\n            }, this.configurationContributors = [this.defaultLanguage配置OverridesNode], this.resourceLanguageSettingsSchema = {\n                properties: {},\n                patternProperties: {},\n                additionalProperties: !1,\n                errorMessage: \"Unknown editor configuration setting\",\n                allowTrailingCommas: !0,\n                allowComments: !0\n            }, this.configurationProperties = {}, this.excluded配置Properties = {}, g.registerSchema(p, this.resourceLanguageSettingsSchema)\n        }\n        register配置(e, t = !0) {\n            this.register配置s([e], t)\n        }\n        register配置s(e, t = !0) {\n            t = this.doRegister配置s(e, t), g.registerSchema(p, this.resourceLanguageSettingsSchema), this._onDidSchemaChange.fire(), this._onDidUpdate配置.fire(t)\n        }\n        registerOverrideIdentifiers(e) {\n            for (const t of e) this.overrideIdentifiers.add(t);\n            this.updateOverridePropertyPatternKey()\n        }\n        doRegister配置s(e, t) {\n            const i = [];\n            return e.forEach(e => {\n                i.push(...this.validateAndRegisterProperties(e, t, e.extensionInfo)), this.configurationContributors.push(e), this.registerJSON配置(e)\n            }), i\n        }\n        validateAndRegisterProperties(e, t = !0, i, n = 3) {\n            var s;\n            n = r.m(e.scope) ? n : e.scope;\n            let a = [],\n                l = e.properties;\n            if (l)\n                for (var d in l)\n                    if (t && function(e) {\n                            return e.trim() ? f.test(e) ? o.a(\"config.property.languageDefault\", \"Cannot register '{0}'. This matches property pattern '\\\\\\\\[.*\\\\\\\\]$' for describing language specific editor settings. Use 'configurationDefaults' contribution.\", e) : void 0 === v.get配置Properties()[e] ? null : o.a(\"config.property.duplicate\", \"Cannot register '{0}'. This property is already registered.\", e) : o.a(\"config.property.empty\", \"Cannot register an empty property\")\n                        }(d)) delete l[d];\n                    else {\n                        const e = l[d];\n                        this.updatePropertyDefaultValue(d, e), f.test(d) ? e.scope = void 0 : (e.scope = r.m(e.scope) ? n : e.scope, e.restricted = r.m(e.restricted) ? !(null === (s = null == i ? void 0 : i.restricted配置s) || void 0 === s || !s.includes(d)) : e.restricted), !l[d].hasOwnProperty(\"included\") || l[d].included ? (this.configurationProperties[d] = l[d], !l[d].deprecationMessage && l[d].markdownDeprecationMessage && (l[d].deprecationMessage = l[d].markdownDeprecationMessage), a.push(d)) : (this.excluded配置Properties[d] = l[d], delete l[d])\n                    } if (e = e.allOf)\n                for (var c of e) a.push(...this.validateAndRegisterProperties(c, t, i, n));\n            return a\n        }\n        get配置Properties() {\n            return this.configurationProperties\n        }\n        registerJSON配置(e) {\n            const t = e => {\n                var i = e.properties;\n                if (i)\n                    for (const e in i) this.updateSchema(e, i[e]);\n                let n = e.allOf;\n                n && n.forEach(t)\n            };\n            t(e)\n        }\n        updateSchema(e, t) {\n            switch ((a.properties[e] = t).scope) {\n                case 1:\n                    l.properties[e] = t;\n                    break;\n                case 2:\n                    d.properties[e] = t;\n                    break;\n                case 6:\n                    c.properties[e] = t;\n                    break;\n                case 3:\n                    h.properties[e] = t;\n                    break;\n                case 4:\n                    u.properties[e] = t;\n                    break;\n                case 5:\n                    u.properties[e] = t, this.resourceLanguageSettingsSchema.properties[e] = t\n            }\n        }\n        updateOverridePropertyPatternKey() {\n            for (const i of this.overrideIdentifiers.values()) {\n                var e = `[${i}]`,\n                    t = {\n                        type: \"object\",\n                        description: o.a(\"overrideSettings.defaultDescription\", \"Configure editor settings to be overridden for a language.\"),\n                        errorMessage: o.a(\"overrideSettings.errorMessage\", \"This setting does not support per-language configuration.\"),\n                        $ref: p\n                    };\n                this.updatePropertyDefaultValue(e, t), a.properties[e] = t, l.properties[e] = t, d.properties[e] = t, c.properties[e] = t, h.properties[e] = t, u.properties[e] = t\n            }\n            this._onDidSchemaChange.fire()\n        }\n        updatePropertyDefaultValue(e, t) {\n            let i = this.defaultValues[e];\n            r.l(i) && (i = t.default), r.l(i) && (i = function(e) {\n                switch (e = Array.isArray(e) ? e[0] : e) {\n                    case \"boolean\":\n                        return !1;\n                    case \"integer\":\n                    case \"number\":\n                        return 0;\n                    case \"string\":\n                        return \"\";\n                    case \"array\":\n                        return [];\n                    case \"object\":\n                        return {};\n                    default:\n                        return null\n                }\n            }(t.type)), t.default = i\n        }\n    };\n    i.a.add(s.配置, v)\n}, function(e, t, i) {\n    \"use strict\";\n    i.d(t, \"a\", (function() {\n        return n\n    })), i = i(26);\n    const n = Object(i.c)(\"textModelService\")\n}, function(e, t, i) {\n    \"use strict\";\n    i.d(t, \"b\", (function() {\n        return s\n    })), i.d(t, \"a\", (function() {\n        return c\n    }));\n    class n {\n        constructor(e, t, i, n) {\n            this.originalStart = e, this.originalLength = t, this.modifiedStart = i, this.modifiedLength = n\n        }\n        getOriginalEnd() {\n            return this.originalStart + this.originalLength\n        }\n        getModifiedEnd() {\n            return this.modifiedStart + this.modifiedLength\n        }\n    }\n    var r = i(126);\n    class o {\n        constructor(e) {\n            this.source = e\n        }\n        getElements() {\n            const e = this.source,\n                t = new Int32Array(e.length);\n            for (let i = 0, n = e.length; i < n; i++) t[i] = e.charCodeAt(i);\n            return t\n        }\n    }\n\n    function s(e, t, i) {\n        return new c(new o(e), new o(t)).ComputeDiff(i).changes\n    }\n    class a {\n        static Assert(e, t) {\n            if (!e) throw new Error(t)\n        }\n    }\n    class l {\n        static Copy(e, t, i, n, r) {\n            for (let o = 0; o < r; o++) i[n + o] = e[t + o]\n        }\n        static Copy2(e, t, i, n, r) {\n            for (let o = 0; o < r; o++) i[n + o] = e[t + o]\n        }\n    }\n    class d {\n        constructor() {\n            this.m_changes = [], this.m_originalStart = 1073741824, this.m_modifiedStart = 1073741824, this.m_originalCount = 0, this.m_modifiedCount = 0\n        }\n        MarkNextChange() {\n            (0 < this.m_originalCount || 0 < this.m_modifiedCount) && this.m_changes.push(new n(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\n        }\n        AddOriginalElement(e, t) {\n            this.m_originalStart = Math.min(this.m_originalStart, e), this.m_modifiedStart = Math.min(this.m_modifiedStart, t), this.m_originalCount++\n        }\n        AddModifiedElement(e, t) {\n            this.m_originalStart = Math.min(this.m_originalStart, e), this.m_modifiedStart = Math.min(this.m_modifiedStart, t), this.m_modifiedCount++\n        }\n        getChanges() {\n            return (0 < this.m_originalCount || 0 < this.m_modifiedCount) && this.MarkNextChange(), this.m_changes\n        }\n        getReverseChanges() {\n            return (0 < this.m_originalCount || 0 < this.m_modifiedCount) && this.MarkNextChange(), this.m_changes.reverse(), this.m_changes\n        }\n    }\n    class c {\n        constructor(e, t, i = null) {\n            this.ContinueProcessingPredicate = i, this._originalSequence = e, this._modifiedSequence = t;\n            var [n, r, o] = c._getElements(e), [i, e, t] = c._getElements(t);\n            this._hasStrings = o && t, this._originalStringElements = n, this._originalElementsOrHash = r, this._modifiedStringElements = i, this._modifiedElementsOrHash = e, this.m_forwardHistory = [], this.m_reverseHistory = []\n        }\n        static _isStringArray(e) {\n            return 0 < e.length && \"string\" == typeof e[0]\n        }\n        static _getElements(e) {\n            var t = e.getElements();\n            if (c._isStringArray(t)) {\n                const e = new Int32Array(t.length);\n                for (let i = 0, n = t.length; i < n; i++) e[i] = Object(r.c)(t[i], 0);\n                return [t, e, !0]\n            }\n            return t instanceof Int32Array ? [\n                [], t, !1\n            ] : [\n                [], new Int32Array(t), !1\n            ]\n        }\n        ElementsAreEqual(e, t) {\n            return this._originalElementsOrHash[e] === this._modifiedElementsOrHash[t] && (!this._hasStrings || this._originalStringElements[e] === this._modifiedStringElements[t])\n        }\n        ElementsAreStrictEqual(e, t) {\n            return !!this.ElementsAreEqual(e, t) && c._getStrictElement(this._originalSequence, e) === c._getStrictElement(this._modifiedSequence, t)\n        }\n        static _getStrictElement(e, t) {\n            return \"function\" == typeof e.getStrictElement ? e.getStrictElement(t) : null\n        }\n        OriginalElementsAreEqual(e, t) {\n            return this._originalElementsOrHash[e] === this._originalElementsOrHash[t] && (!this._hasStrings || this._originalStringElements[e] === this._originalStringElements[t])\n        }\n        ModifiedElementsAreEqual(e, t) {\n            return this._modifiedElementsOrHash[e] === this._modifiedElementsOrHash[t] && (!this._hasStrings || this._modifiedStringElements[e] === this._modifiedStringElements[t])\n        }\n        ComputeDiff(e) {\n            return this._ComputeDiff(0, this._originalElementsOrHash.length - 1, 0, this._modifiedElementsOrHash.length - 1, e)\n        }\n        _ComputeDiff(e, t, i, n, r) {\n            var o = [!1];\n            let s = this.ComputeDiffRecursive(e, t, i, n, o);\n            return r && (s = this.PrettifyChanges(s)), {\n                quitEarly: o[0],\n                changes: s\n            }\n        }\n        ComputeDiffRecursive(e, t, i, r, o) {\n            for (o[0] = !1; e <= t && i <= r && this.ElementsAreEqual(e, i);) e++, i++;\n            for (; e <= t && i <= r && this.ElementsAreEqual(t, r);) t--, r--;\n            if (t < e || r < i) {\n                let o;\n                return o = i <= r ? (a.Assert(e === t + 1, \"originalStart should only be one more than originalEnd\"), [new n(e, 0, i, r - i + 1)]) : e <= t ? (a.Assert(i === r + 1, \"modifiedStart should only be one more than modifiedEnd\"), [new n(e, t - e + 1, i, 0)]) : (a.Assert(e === t + 1, \"originalStart should only be one more than originalEnd\"), a.Assert(i === r + 1, \"modifiedStart should only be one more than modifiedEnd\"), []), o\n            }\n            var s = [0],\n                l = [0],\n                d = this.ComputeRecursionPoint(e, t, i, r, s, l, o);\n            s = s[0], l = l[0];\n            if (null !== d) return d;\n            if (o[0]) return [new n(e, t - e + 1, i, r - i + 1)]; {\n                d = this.ComputeDiffRecursive(e, s, i, l, o);\n                let a = [];\n                return a = o[0] ? [new n(s + 1, t - (s + 1) + 1, l + 1, r - (l + 1) + 1)] : this.ComputeDiffRecursive(s + 1, t, l + 1, r, o), this.ConcatenateChanges(d, a)\n            }\n        }\n        WALKTRACE(e, t, i, r, o, s, a, l, c, h, u, p, g, f, m, v, b, _) {\n            var w;\n            let y = null,\n                C = new d,\n                x = t,\n                S = i,\n                k = g[0] - v[0] - r,\n                L = -1073741824,\n                O = this.m_forwardHistory.length - 1;\n            do {\n                var E = k + e;\n                k = E === x || E < S && c[E - 1] < c[E + 1] ? (f = (u = c[E + 1]) - k - r, u < L && C.MarkNextChange(), L = u, C.AddModifiedElement(u + 1, f), E + 1 - e) : (f = (u = c[E - 1] + 1) - k - r, u < L && C.MarkNextChange(), L = u - 1, C.AddOriginalElement(u, f + 1), E - 1 - e), 0 <= O && (e = (c = this.m_forwardHistory[O])[0], x = 1, S = c.length - 1)\n            } while (-1 <= --O);\n            if (w = C.getReverseChanges(), _[0]) {\n                let e = g[0] + 1,\n                    t = v[0] + 1;\n                if (null !== w && 0 < w.length) {\n                    const i = w[w.length - 1];\n                    e = Math.max(e, i.getOriginalEnd()), t = Math.max(t, i.getModifiedEnd())\n                }\n                y = [new n(e, p - e + 1, t, m - t + 1)]\n            } else {\n                C = new d, x = s, S = a, k = g[0] - v[0] - l, L = 1073741824, O = b ? this.m_reverseHistory.length - 1 : this.m_reverseHistory.length - 2;\n                do {\n                    var N = k + o;\n                    k = N === x || N < S && h[N - 1] >= h[N + 1] ? (f = (u = h[N + 1] - 1) - k - l, u > L && C.MarkNextChange(), L = u + 1, C.AddOriginalElement(u + 1, f + 1), N + 1 - o) : (f = (u = h[N - 1]) - k - l, u > L && C.MarkNextChange(), L = u, C.AddModifiedElement(u + 1, f + 1), N - 1 - o), 0 <= O && (o = (h = this.m_reverseHistory[O])[0], x = 1, S = h.length - 1)\n                } while (-1 <= --O);\n                y = C.getChanges()\n            }\n            return this.ConcatenateChanges(w, y)\n        }\n        ComputeRecursionPoint(e, t, i, r, o, s, a) {\n            let d = 0,\n                c = 0,\n                h = 0,\n                u = 0,\n                p = 0,\n                g = 0;\n            e--, i--, s[o[0] = 0] = 0, this.m_forwardHistory = [], this.m_reverseHistory = [];\n            var f = t - e + (r - i),\n                m = 1 + f;\n            const v = new Int32Array(m),\n                b = new Int32Array(m);\n            var _ = r - i,\n                w = t - e,\n                y = e - i,\n                C = t - r,\n                x = (w - _) % 2 == 0;\n            v[_] = e, b[w] = t, a[0] = !1;\n            for (let O = 1; O <= f / 2 + 1; O++) {\n                let f = 0,\n                    E = 0;\n                h = this.ClipDiagonalBound(_ - O, O, _, m), u = this.ClipDiagonalBound(_ + O, O, _, m);\n                for (let e = h; e <= u; e += 2) {\n                    d = e === h || e < u && v[e - 1] < v[e + 1] ? v[e + 1] : v[e - 1] + 1, c = d - (e - _) - y;\n                    for (var S = d; d < t && c < r && this.ElementsAreEqual(d + 1, c + 1);) d++, c++;\n                    if (v[e] = d, d + c > f + E && (f = d, E = c), !x && Math.abs(e - w) <= O - 1 && d >= b[e]) return o[0] = d, s[0] = c, S <= b[e] && O <= 1448 ? this.WALKTRACE(_, h, u, y, w, p, g, C, v, b, d, t, o, c, r, s, x, a) : null\n                }\n                var k = (f - e + (E - i) - O) / 2;\n                if (null !== this.ContinueProcessingPredicate && !this.ContinueProcessingPredicate(f, k)) return a[0] = !0, o[0] = f, s[0] = E, 0 < k && O <= 1448 ? this.WALKTRACE(_, h, u, y, w, p, g, C, v, b, d, t, o, c, r, s, x, a) : (e++, i++, [new n(e, t - e + 1, i, r - i + 1)]);\n                p = this.ClipDiagonalBound(w - O, O, w, m), g = this.ClipDiagonalBound(w + O, O, w, m);\n                for (let n = p; n <= g; n += 2) {\n                    d = n === p || n < g && b[n - 1] >= b[n + 1] ? b[n + 1] - 1 : b[n - 1], c = d - (n - w) - C;\n                    for (var L = d; d > e && c > i && this.ElementsAreEqual(d, c);) d--, c--;\n                    if (b[n] = d, x && Math.abs(n - _) <= O && d <= v[n]) return o[0] = d, s[0] = c, L >= v[n] && O <= 1448 ? this.WALKTRACE(_, h, u, y, w, p, g, C, v, b, d, t, o, c, r, s, x, a) : null\n                }\n                if (O <= 1447) {\n                    let e = new Int32Array(u - h + 2);\n                    e[0] = _ - h + 1, l.Copy2(v, h, e, 1, u - h + 1), this.m_forwardHistory.push(e), e = new Int32Array(g - p + 2), e[0] = w - p + 1, l.Copy2(b, p, e, 1, g - p + 1), this.m_reverseHistory.push(e)\n                }\n            }\n            return this.WALKTRACE(_, h, u, y, w, p, g, C, v, b, d, t, o, c, r, s, x, a)\n        }\n        PrettifyChanges(e) {\n            for (let a = 0; a < e.length; a++) {\n                const l = e[a];\n                for (var t = a < e.length - 1 ? e[a + 1].originalStart : this._originalElementsOrHash.length, i = a < e.length - 1 ? e[a + 1].modifiedStart : this._modifiedElementsOrHash.length, n = 0 < l.originalLength, r = 0 < l.modifiedLength; l.originalStart + l.originalLength < t && l.modifiedStart + l.modifiedLength < i && (!n || this.OriginalElementsAreEqual(l.originalStart, l.originalStart + l.originalLength)) && (!r || this.ModifiedElementsAreEqual(l.modifiedStart, l.modifiedStart + l.modifiedLength));) {\n                    var o = this.ElementsAreStrictEqual(l.originalStart, l.modifiedStart);\n                    if (this.ElementsAreStrictEqual(l.originalStart + l.originalLength, l.modifiedStart + l.modifiedLength) && !o) break;\n                    l.originalStart++, l.modifiedStart++\n                }\n                var s = [null];\n                a < e.length - 1 && this.ChangesOverlap(e[a], e[a + 1], s) && (e[a] = s[0], e.splice(a + 1, 1), a--)\n            }\n            for (let t = e.length - 1; 0 <= t; t--) {\n                const i = e[t];\n                let n = 0,\n                    r = 0;\n                0 < t && (n = (h = e[t - 1]).originalStart + h.originalLength, r = h.modifiedStart + h.modifiedLength);\n                var a = 0 < i.originalLength,\n                    l = 0 < i.modifiedLength;\n                let o = 0,\n                    s = this._boundaryScore(i.originalStart, i.originalLength, i.modifiedStart, i.modifiedLength);\n                for (let e = 1;; e++) {\n                    var d = i.originalStart - e,\n                        c = i.modifiedStart - e;\n                    if (d < n || c < r) break;\n                    if (a && !this.OriginalElementsAreEqual(d, d + i.originalLength)) break;\n                    if (l && !this.ModifiedElementsAreEqual(c, c + i.modifiedLength)) break;\n                    (c = (d === n && c === r ? 5 : 0) + this._boundaryScore(d, i.originalLength, c, i.modifiedLength)) > s && (s = c, o = e)\n                }\n                i.originalStart -= o, i.modifiedStart -= o;\n                var h = [null];\n                0 < t && this.ChangesOverlap(e[t - 1], e[t], h) && (e[t - 1] = h[0], e.splice(t, 1), t++)\n            }\n            if (this._hasStrings)\n                for (let t = 1, i = e.length; t < i; t++) {\n                    const i = e[t - 1],\n                        n = e[t];\n                    var u = n.originalStart - i.originalStart - i.originalLength,\n                        p = i.originalStart,\n                        g = n.originalStart + n.originalLength,\n                        f = g - p,\n                        m = i.modifiedStart,\n                        v = n.modifiedStart + n.modifiedLength,\n                        b = v - m;\n                    u < 5 && f < 20 && b < 20 && (m = this._findBetterContiguousSequence(p, f, m, b, u)) && ([b, m] = m, b === i.originalStart + i.originalLength && m === i.modifiedStart + i.modifiedLength || (i.originalLength = b - i.originalStart, i.modifiedLength = m - i.modifiedStart, n.originalStart = b + u, n.modifiedStart = m + u, n.originalLength = g - n.originalStart, n.modifiedLength = v - n.modifiedStart))\n                }\n            return e\n        }\n        _findBetterContiguousSequence(e, t, i, n, r) {\n            if (t < r || n < r) return null;\n            var o = e + t - r + 1,\n                s = i + n - r + 1;\n            let a = 0,\n                l = 0,\n                d = 0;\n            for (let t = e; t < o; t++)\n                for (let e = i; e < s; e++) {\n                    var c = this._contiguousSequenceScore(t, e, r);\n                    0 < c && c > a && (a = c, l = t, d = e)\n                }\n            return 0 < a ? [l, d] : null\n        }\n        _contiguousSequenceScore(e, t, i) {\n            let n = 0;\n            for (let r = 0; r < i; r++) {\n                if (!this.ElementsAreEqual(e + r, t + r)) return 0;\n                n += this._originalStringElements[e + r].length\n            }\n            return n\n        }\n        _OriginalIsBoundary(e) {\n            return e <= 0 || e >= this._originalElementsOrHash.length - 1 || this._hasStrings && /^\\s*$/.test(this._originalStringElements[e])\n        }\n        _OriginalRegionIsBoundary(e, t) {\n            return !(!this._OriginalIsBoundary(e) && !this._OriginalIsBoundary(e - 1)) || !!(0 < t && (t = e + t, this._OriginalIsBoundary(t - 1) || this._OriginalIsBoundary(t)))\n        }\n        _ModifiedIsBoundary(e) {\n            return e <= 0 || e >= this._modifiedElementsOrHash.length - 1 || this._hasStrings && /^\\s*$/.test(this._modifiedStringElements[e])\n        }\n        _ModifiedRegionIsBoundary(e, t) {\n            return !(!this._ModifiedIsBoundary(e) && !this._ModifiedIsBoundary(e - 1)) || !!(0 < t && (t = e + t, this._ModifiedIsBoundary(t - 1) || this._ModifiedIsBoundary(t)))\n        }\n        _boundaryScore(e, t, i, n) {\n            return (this._OriginalRegionIsBoundary(e, t) ? 1 : 0) + (this._ModifiedRegionIsBoundary(i, n) ? 1 : 0)\n        }\n        ConcatenateChanges(e, t) {\n            var i = [];\n            if (0 === e.length || 0 === t.length) return 0 < t.length ? t : e;\n            if (this.ChangesOverlap(e[e.length - 1], t[0], i)) {\n                const n = new Array(e.length + t.length - 1);\n                return l.Copy(e, 0, n, 0, e.length - 1), n[e.length - 1] = i[0], l.Copy(t, 1, n, e.length, t.length - 1), n\n            }\n            return i = new Array(e.length + t.length), l.Copy(e, 0, i, 0, e.length), l.Copy(t, 0, i, e.length, t.length), i\n        }\n        ChangesOverlap(e, t, i) {\n            if (a.Assert(e.originalStart <= t.originalStart, \"Left change is not less than or equal to right change\"), a.Assert(e.modifiedStart <= t.modifiedStart, \"Left change is not less than or equal to right change\"), e.originalStart + e.originalLength >= t.originalStart || e.modifiedStart + e.modifiedLength >= t.modifiedStart) {\n                var r = e.originalStart;\n                let s = e.originalLength;\n                var o = e.modifiedStart;\n                let a = e.modifiedLength;\n                return e.originalStart + e.originalLength >= t.originalStart && (s = t.originalStart + t.originalLength - e.originalStart), e.modifiedStart + e.modifiedLength >= t.modifiedStart && (a = t.modifiedStart + t.modifiedLength - e.modifiedStart), i[0] = new n(r, s, o, a), !0\n            }\n            return i[0] = null, !1\n        }\n        ClipDiagonalBound(e, t, i, n) {\n            return 0 <= e && e < n ? e : (t = t % 2 == 0, e < 0 ? t == (i % 2 == 0) ? 0 : 1 : t == ((n - i - 1) % 2 == 0) ? n - 1 : n - 2)\n        }\n    }\n}, function(e, t, i) {\n    \"use strict\";\n    i.d(t, \"a\", (function() {\n        return c\n    }));\n    var n = i(1),\n        r = i(55),\n        o = i(135),\n        s = i(71),\n        a = i(2),\n        l = i(4),\n        d = i(17);\n    t = i(239);\n    class c extends l.a {\n        constructor(e, t = {}) {\n            var i;\n            let l, d;\n            switch (super(), this.triggerKeyDown = !1, this.focusable = !0, this._onDidBlur = this._register(new a.b), this.onDidBlur = this._onDidBlur.event, this._onDidCancel = this._register(new a.b({\n                onFirstListenerAdd: () => this.cancelHasListener = !0\n            })), this.onDidCancel = this._onDidCancel.event, this.cancelHasListener = !1, this._onDidRun = this._register(new a.b), this.onDidRun = this._onDidRun.event, this._onBeforeRun = this._register(new a.b), this.onBeforeRun = this._onBeforeRun.event, this.options = t, this._context = null !== (i = t.context) && void 0 !== i ? i : null, this._orientation = null !== (i = this.options.orientation) && void 0 !== i ? i : 0, this._triggerKeys = {\n                keyDown: null !== (i = null === (i = this.options.triggerKeys) || void 0 === i ? void 0 : i.keyDown) && void 0 !== i && i,\n                keys: null !== (i = null === (i = this.options.triggerKeys) || void 0 === i ? void 0 : i.keys) && void 0 !== i ? i : [3, 10]\n            }, this.options.actionRunner ? this._actionRunner = this.options.actionRunner : (this._actionRunner = new s.b, this._register(this._actionRunner)), this._register(this._actionRunner.onDidRun(e => this._onDidRun.fire(e))), this._register(this._actionRunner.onBeforeRun(e => this._onBeforeRun.fire(e))), this._actionIds = [], this.viewItems = [], this.focusedItem = void 0, this.domNode = document.createElement(\"div\"), !(this.domNode.className = \"monaco-action-bar\") !== t.animated && this.domNode.classList.add(\"animated\"), this._orientation) {\n                case 0:\n                    l = [15], d = [17];\n                    break;\n                case 1:\n                    l = [16], d = [18], this.domNode.className += \" vertical\"\n            }\n            this._register(n.g(this.domNode, n.d.KEY_DOWN, e => {\n                const t = new r.a(e);\n                let i = !0;\n                e = \"number\" == typeof this.focusedItem ? this.viewItems[this.focusedItem] : void 0, l && (t.equals(l[0]) || t.equals(l[1])) ? i = this.focusPrevious() : d && (t.equals(d[0]) || t.equals(d[1])) ? i = this.focusNext() : t.equals(9) && this.cancelHasListener ? this._onDidCancel.fire() : t.equals(14) ? i = this.focusFirst() : t.equals(13) ? i = this.focusLast() : t.equals(2) && e instanceof o.b && e.trapsArrowNavigation ? i = this.focusNext() : this.isTriggerKeyEvent(t) ? this._triggerKeys.keyDown ? this.doTrigger(t) : this.triggerKeyDown = !0 : i = !1, i && (t.preventDefault(), t.stopPropagation())\n            })), this._register(n.g(this.domNode, n.d.KEY_UP, e => {\n                const t = new r.a(e);\n                this.isTriggerKeyEvent(t) ? (!this._triggerKeys.keyDown && this.triggerKeyDown && (this.triggerKeyDown = !1, this.doTrigger(t)), t.preventDefault(), t.stopPropagation()) : (t.equals(2) || t.equals(1026)) && this.updateFocusedItem()\n            })), this.focusTracker = this._register(n.T(this.domNode)), this._register(this.focusTracker.onDidBlur(() => {\n                n.v() !== this.domNode && n.I(n.v(), this.domNode) || (this._onDidBlur.fire(), this.focusedItem = void 0, this.triggerKeyDown = !1)\n            })), this._register(this.focusTracker.onDidFocus(() => this.updateFocusedItem())), this.actionsList = document.createElement(\"ul\"), this.actionsList.className = \"actions-container\", this.actionsList.setAttribute(\"role\", \"toolbar\"), this.options.ariaLabel && this.actionsList.setAttribute(\"aria-label\", this.options.ariaLabel), this.domNode.appendChild(this.actionsList), e.appendChild(this.domNode)\n        }\n        isTriggerKeyEvent(e) {\n            let t = !1;\n            return this._triggerKeys.keys.forEach(i => {\n                t = t || e.equals(i)\n            }), t\n        }\n        updateFocusedItem() {\n            for (let t = 0; t < this.actionsList.children.length; t++) {\n                var e = this.actionsList.children[t];\n                if (n.I(n.v(), e)) {\n                    this.focusedItem = t;\n                    break\n                }\n            }\n        }\n        get context() {\n            return this._context\n        }\n        set context(e) {\n            this._context = e, this.viewItems.forEach(t => t.setActionContext(e))\n        }\n        get actionRunner() {\n            return this._actionRunner\n        }\n        set actionRunner(e) {\n            e && (this._actionRunner = e, this.viewItems.forEach(t => t.actionRunner = e))\n        }\n        getContainer() {\n            return this.domNode\n        }\n        push(e, t = {}) {\n            const i = Array.isArray(e) ? e : [e];\n            let r = d.i(t.index) ? t.index : null;\n            i.forEach(e => {\n                const i = document.createElement(\"li\");\n                let s;\n                i.className = \"action-item\", i.setAttribute(\"role\", \"presentation\"), this.options.allowContextMenu || this._register(n.g(i, n.d.CONTEXT_MENU, e => {\n                    n.c.stop(e, !0)\n                })), this.options.actionViewItemProvider && (s = this.options.actionViewItemProvider(e)), s = s || new o.a(this.context, e, t), s.actionRunner = this._actionRunner, s.setActionContext(this.context), s.render(i), this.focusable && s instanceof o.b && 0 === this.viewItems.length && s.setFocusable(!0), null === r || r < 0 || r >= this.actionsList.children.length ? (this.actionsList.appendChild(i), this.viewItems.push(s), this._actionIds.push(e.id)) : (this.actionsList.insertBefore(i, this.actionsList.children[r]), this.viewItems.splice(r, 0, s), this._actionIds.splice(r, 0, e.id), r++)\n            }), \"number\" == typeof this.focusedItem && this.focus(this.focusedItem)\n        }\n        clear() {\n            Object(l.f)(this.viewItems), this.viewItems = [], this._actionIds = [], n.q(this.actionsList)\n        }\n        length() {\n            return this.viewItems.length\n        }\n        focus(e) {\n            let t = !1,\n                i = void 0;\n            void 0 === e ? t = !0 : \"number\" == typeof e ? i = e : \"boolean\" == typeof e && (t = e), t && void 0 === this.focusedItem ? (e = this.viewItems.findIndex(e => e.isEnabled()), this.focusedItem = -1 === e ? void 0 : e) : void 0 !== i && (this.focusedItem = i), this.updateFocus()\n        }\n        focusFirst() {\n            return this.focusedItem = 1 < this.length() ? 1 : 0, this.focusPrevious()\n        }\n        focusLast() {\n            return this.focusedItem = this.length() < 2 ? 0 : this.length() - 2, this.focusNext()\n        }\n        focusNext() {\n            if (void 0 === this.focusedItem) this.focusedItem = this.viewItems.length - 1;\n            else if (this.viewItems.length <= 1) return !1;\n            var e = this.focusedItem;\n            let t;\n            do {\n                if (this.options.preventLoopNavigation && this.focusedItem + 1 >= this.viewItems.length) return this.focusedItem = e, !1\n            } while (this.focusedItem = (this.focusedItem + 1) % this.viewItems.length, t = this.viewItems[this.focusedItem], this.focusedItem !== e && this.options.focusOnlyEnabledItems && !t.isEnabled());\n            return this.updateFocus(), !0\n        }\n        focusPrevious() {\n            if (void 0 === this.focusedItem) this.focusedItem = 0;\n            else if (this.viewItems.length <= 1) return !1;\n            var e = this.focusedItem;\n            let t;\n            do {\n                if (this.focusedItem = this.focusedItem - 1, this.focusedItem < 0) {\n                    if (this.options.preventLoopNavigation) return this.focusedItem = e, !1;\n                    this.focusedItem = this.viewItems.length - 1\n                }\n            } while (t = this.viewItems[this.focusedItem], this.focusedItem !== e && this.options.focusOnlyEnabledItems && !t.isEnabled());\n            return this.updateFocus(!0), !0\n        }\n        updateFocus(e, t) {\n            void 0 === this.focusedItem && this.actionsList.focus({\n                preventScroll: t\n            });\n            for (let i = 0; i < this.viewItems.length; i++) {\n                const n = this.viewItems[i],\n                    r = n;\n                if (i === this.focusedItem) {\n                    let i = !0;\n                    d.h(r.focus) || (i = !1), this.options.focusOnlyEnabledItems && d.h(n.isEnabled) && !n.isEnabled() && (i = !1), i ? r.focus(e) : this.actionsList.focus({\n                        preventScroll: t\n                    })\n                } else d.h(r.blur) && r.blur()\n            }\n        }\n        doTrigger(e) {\n            var t;\n            void 0 === this.focusedItem || (t = this.viewItems[this.focusedItem]) instanceof o.b && (e = null === t._context || void 0 === t._context ? e : t._context, this.run(t._action, e))\n        }\n        run(e, t) {\n            return function(e, t, i, n) {\n                return new(i = i || Promise)((function(r, o) {\n                    function s(e) {\n                        try {\n                            l(n.next(e))\n                        } catch (e) {\n                            o(e)\n                        }\n                    }\n\n                    function a(e) {\n                        try {\n                            l(n.throw(e))\n                        } catch (e) {\n                            o(e)\n                        }\n                    }\n\n                    function l(e) {\n                        var t;\n                        e.done ? r(e.value) : ((t = e.value) instanceof i ? t : new i((function(e) {\n                            e(t)\n                        }))).then(s, a)\n                    }\n                    l((n = n.apply(e, t || [])).next())\n                }))\n            }(this, void 0, void 0, (function*() {\n                yield this._actionRunner.run(e, t)\n            }))\n        }\n        dispose() {\n            Object(l.f)(this.viewItems), this.viewItems = [], this._actionIds = [], this.getContainer().remove(), super.dispose()\n        }\n    }\n}, function(e, t, i) {\n    \"use strict\";\n    i.d(t, \"a\", (function() {\n        return n\n    })), i = i(26);\n    const n = Object(i.c)(\"clipboardService\")\n}, function(e, t, i) {\n    \"use strict\";\n    i.d(t, \"b\", (function() {\n        return l\n    })), i.d(t, \"a\", (function() {\n        return d\n    }));\n    var n = i(1),\n        r = i(158),\n        o = i(66),\n        s = i(4),\n        a = i(9);\n\n    function l(e, t) {\n        let i = new o.a(t);\n        return i.preventDefault(), {\n            leftButton: i.leftButton,\n            buttons: i.buttons,\n            posx: i.posx,\n            posy: i.posy\n        }\n    }\n    class d {\n        constructor() {\n            this._hooks = new s.b, this._mouseMoveEventMerger = null, this._mouseMoveCallback = null, this._onStopCallback = null\n        }\n        dispose() {\n            this.stopMonitoring(!1), this._hooks.dispose()\n        }\n        stopMonitoring(e, t) {\n            if (this.isMonitoring()) {\n                this._hooks.clear(), this._mouseMoveEventMerger = null, this._mouseMoveCallback = null;\n                const i = this._onStopCallback;\n                this._onStopCallback = null, e && i && i(t)\n            }\n        }\n        isMonitoring() {\n            return !!this._mouseMoveEventMerger\n        }\n        startMonitoring(e, t, i, s, l) {\n            if (!this.isMonitoring()) {\n                this._mouseMoveEventMerger = i, this._mouseMoveCallback = s, this._onStopCallback = l;\n                const c = r.a.getSameOriginWindowChain();\n                var d = a.c ? \"pointermove\" : \"mousemove\";\n                const h = c.map(e => e.window.document);\n                (e = n.C(e)) && h.unshift(e);\n                for (const e of h) this._hooks.add(n.j(e, d, e => {\n                    e.buttons === t ? this._mouseMoveCallback(e) : this.stopMonitoring(!0)\n                }, (e, t) => this._mouseMoveEventMerger(e, t))), this._hooks.add(n.g(e, \"mouseup\", e => this.stopMonitoring(!0)));\n                r.a.hasDifferentOriginAncestor() && (e = c[c.length - 1], this._hooks.add(n.g(e.window.document, \"mouseout\", e => {\n                    \"html\" === new o.a(e).target.tagName.toLowerCase() && this.stopMonitoring(!0)\n                })), this._hooks.add(n.g(e.window.document, \"mouseover\", e => {\n                    \"html\" === new o.a(e).target.tagName.toLowerCase() && this.stopMonitoring(!0)\n                })), this._hooks.add(n.g(e.window.document.body, \"mouseleave\", e => {\n                    this.stopMonitoring(!0)\n                })))\n            }\n        }\n    }\n}, function(e, t, i) {\n    \"use strict\";\n    var n;\n    i.d(t, \"a\", (function() {\n        return n\n    })), (t = n = n || {}).DARK = \"dark\", t.LIGHT = \"light\", t.HIGH_CONTRAST = \"hc\"\n}, function(e, t, i) {\n    \"use strict\";\n    i.d(t, \"a\", (function() {\n        return m\n    })), i.d(t, \"b\", (function() {\n        return v\n    }));\n    var n = i(31),\n        r = i(6),\n        o = i(68),\n        s = i(14),\n        a = i(5),\n        l = i(36),\n        d = i(57);\n    const c = Object.create(null);\n\n    function h(e, t) {\n        if (t <= 0) return \"\";\n        c[e] || (c[e] = [\"\", e]);\n        const i = c[e];\n        for (let n = i.length; n <= t; n++) i[n] = i[n - 1] + e;\n        return i[t]\n    }\n    class u {\n        constructor(e, t) {\n            this._opts = t, this._selection = e, this._selectionId = null, this._useLastEditRangeForCursorEndPosition = !1, this._selectionStartColumnStaysPut = !1\n        }\n        static unshiftIndent(e, t, i, n, r) {\n            return t = s.a.visibleColumnFromColumn(e, t, i), r ? (r = h(\" \", n), h(r, s.a.prevIndentTabStop(t, n) / n)) : h(\"\\t\", s.a.prevRenderTabStop(t, i) / i)\n        }\n        static shiftIndent(e, t, i, n, r) {\n            return t = s.a.visibleColumnFromColumn(e, t, i), r ? (r = h(\" \", n), h(r, s.a.nextIndentTabStop(t, n) / n)) : h(\"\\t\", s.a.nextRenderTabStop(t, i) / i)\n        }\n        _addEditOperation(e, t, i) {\n            this._useLastEditRangeForCursorEndPosition ? e.addTrackedEditOperation(t, i) : e.addEditOperation(t, i)\n        }\n        getEditOperations(e, t) {\n            var i = this._selection.startLineNumber;\n            let n = this._selection.endLineNumber;\n            1 === this._selection.endColumn && i !== n && (n -= 1);\n            var {\n                tabSize: o,\n                indentSize: l,\n                insertSpaces: c\n            } = this._opts, p = i === n;\n            if (this._opts.useTabStops) {\n                this._selection.isEmpty() && /^\\s*$/.test(e.getLineContent(i)) && (this._useLastEditRangeForCursorEndPosition = !0);\n                let h = 0,\n                    g = 0;\n                for (let f = i; f <= n; f++, h = g) {\n                    g = 0;\n                    let n = e.getLineContent(f),\n                        m = r.u(n);\n                    if ((!this._opts.isUnshift || 0 !== n.length && 0 !== m) && (p || this._opts.isUnshift || 0 !== n.length)) {\n                        if (-1 === m && (m = n.length), 1 < f)\n                            if (s.a.visibleColumnFromColumn(n, m + 1, o) % l != 0 && e.isCheapToTokenize(f - 1)) {\n                                let t = d.b.getEnterAction(this._opts.autoIndent, e, new a.a(f - 1, e.getLineMaxColumn(f - 1), f - 1, e.getLineMaxColumn(f - 1)));\n                                if (t) {\n                                    if (g = h, t.appendText)\n                                        for (let e = 0, i = t.appendText.length; e < i && g < l && 32 === t.appendText.charCodeAt(e); e++) g++;\n                                    t.removeText && (g = Math.max(0, g - t.removeText));\n                                    for (let e = 0; e < g && 0 !== m && 32 === n.charCodeAt(m - 1); e++) m--\n                                }\n                            } if (!this._opts.isUnshift || 0 !== m) {\n                            let e;\n                            e = this._opts.isUnshift ? u.unshiftIndent(n, m + 1, o, l, c) : u.shiftIndent(n, m + 1, o, l, c), this._addEditOperation(t, new a.a(f, 1, f, m + 1), e), f !== i || this._selection.isEmpty() || (this._selectionStartColumnStaysPut = this._selection.startColumn <= m + 1)\n                        }\n                    }\n                }\n            } else {\n                !this._opts.isUnshift && this._selection.isEmpty() && 0 === e.getLineLength(i) && (this._useLastEditRangeForCursorEndPosition = !0);\n                var g = c ? h(\" \", l) : \"\\t\";\n                for (let o = i; o <= n; o++) {\n                    const n = e.getLineContent(o);\n                    let s = r.u(n);\n                    if ((!this._opts.isUnshift || 0 !== n.length && 0 !== s) && (p || this._opts.isUnshift || 0 !== n.length) && (-1 === s && (s = n.length), !this._opts.isUnshift || 0 !== s))\n                        if (this._opts.isUnshift) {\n                            s = Math.min(s, l);\n                            for (let e = 0; e < s; e++)\n                                if (9 === n.charCodeAt(e)) {\n                                    s = e + 1;\n                                    break\n                                } this._addEditOperation(t, new a.a(o, 1, o, s + 1), \"\")\n                        } else this._addEditOperation(t, new a.a(o, 1, o, 1), g), o !== i || this._selection.isEmpty() || (this._selectionStartColumnStaysPut = 1 === this._selection.startColumn)\n                }\n            }\n            this._selectionId = t.trackSelection(this._selection)\n        }\n        computeCursorState(e, t) {\n            if (this._useLastEditRangeForCursorEndPosition) {\n                var i = t.getInverseEditOperations()[0];\n                return new l.a(i.range.endLineNumber, i.range.endColumn, i.range.endLineNumber, i.range.endColumn)\n            }\n            const n = t.getTrackedSelection(this._selectionId);\n            return this._selectionStartColumnStaysPut ? (t = this._selection.startColumn, n.startColumn <= t ? n : 0 === n.getDirection() ? new l.a(n.startLineNumber, t, n.endLineNumber, n.endColumn) : new l.a(n.endLineNumber, n.endColumn, n.startLineNumber, t)) : n\n        }\n    }\n    class p {\n        constructor(e, t, i) {\n            this._range = e, this._charBeforeSelection = t, this._charAfterSelection = i\n        }\n        getEditOperations(e, t) {\n            t.addTrackedEditOperation(new a.a(this._range.startLineNumber, this._range.startColumn, this._range.startLineNumber, this._range.startColumn), this._charBeforeSelection), t.addTrackedEditOperation(new a.a(this._range.endLineNumber, this._range.endColumn, this._range.endLineNumber, this._range.endColumn), this._charAfterSelection)\n        }\n        computeCursorState(e, t) {\n            t = (i = t.getInverseEditOperations())[0].range;\n            var i = i[1].range;\n            return new l.a(t.endLineNumber, t.endColumn, i.endLineNumber, i.endColumn - this._charAfterSelection.length)\n        }\n    }\n    var g = i(122),\n        f = i(70);\n    class m {\n        static indent(e, t, i) {\n            if (null === t || null === i) return [];\n            let n = [];\n            for (let t = 0, r = i.length; t < r; t++) n[t] = new u(i[t], {\n                isUnshift: !1,\n                tabSize: e.tabSize,\n                indentSize: e.indentSize,\n                insertSpaces: e.insertSpaces,\n                useTabStops: e.useTabStops,\n                autoIndent: e.autoIndent\n            });\n            return n\n        }\n        static outdent(e, t, i) {\n            let n = [];\n            for (let t = 0, r = i.length; t < r; t++) n[t] = new u(i[t], {\n                isUnshift: !0,\n                tabSize: e.tabSize,\n                indentSize: e.indentSize,\n                insertSpaces: e.insertSpaces,\n                useTabStops: e.useTabStops,\n                autoIndent: e.autoIndent\n            });\n            return n\n        }\n        static shiftIndent(e, t, i) {\n            return i = i || 1, u.shiftIndent(t, t.length + i, e.tabSize, e.indentSize, e.insertSpaces)\n        }\n        static unshiftIndent(e, t, i) {\n            return i = i || 1, u.unshiftIndent(t, t.length + i, e.tabSize, e.indentSize, e.insertSpaces)\n        }\n        static _distributedPaste(e, t, i, n) {\n            let r = [];\n            for (let e = 0, t = i.length; e < t; e++) r[e] = new o.a(i[e], n[e]);\n            return new s.e(0, r, {\n                shouldPushStackElementBefore: !0,\n                shouldPushStackElementAfter: !0\n            })\n        }\n        static _simplePaste(e, t, i, n, r) {\n            let l = [];\n            for (let e = 0, t = i.length; e < t; e++) {\n                const t = i[e];\n                var d = t.getPosition();\n                (r = (!(r = !(r && !t.isEmpty()) && r) || n.indexOf(\"\\n\") === n.length - 1) && r) ? (d = new a.a(d.lineNumber, 1, d.lineNumber, 1), l[e] = new o.b(d, n, t, !0)) : l[e] = new o.a(t, n)\n            }\n            return new s.e(0, l, {\n                shouldPushStackElementBefore: !0,\n                shouldPushStackElementAfter: !0\n            })\n        }\n        static _distributePasteToCursors(e, t, i, n, o) {\n            return n || 1 === t.length ? null : o && o.length === t.length ? o : \"spread\" === e.multiCursorPaste && (13 === (i = 10 === i.charCodeAt(i.length - 1) ? i.substr(0, i.length - 1) : i).charCodeAt(i.length - 1) && (i = i.substr(0, i.length - 1)), (i = r.Q(i)).length === t.length) ? i : null\n        }\n        static paste(e, t, i, n, r, o) {\n            return (o = this._distributePasteToCursors(e, i, n, r, o)) ? (i = i.sort(a.a.compareRangesUsingStarts), this._distributedPaste(e, t, i, o)) : this._simplePaste(e, t, i, n, r)\n        }\n        static _goodIndentForLine(e, t, i) {\n            let n = null,\n                o = \"\";\n            var s = d.b.getInheritIndentForLine(e.autoIndent, t, i, !1);\n            if (s) n = s.action, o = s.indentation;\n            else if (1 < i) {\n                let n;\n                for (n = i - 1; 1 <= n; n--) {\n                    var l = t.getLineContent(n);\n                    if (0 <= r.I(l)) break\n                }\n                if (n < 1) return null;\n                i = t.getLineMaxColumn(n), (i = d.b.getEnterAction(e.autoIndent, t, new a.a(n, i, n, i))) && (o = i.indentation + i.appendText)\n            }\n            return n && (n === f.b.Indent && (o = m.shiftIndent(e, o)), n === f.b.Outdent && (o = m.unshiftIndent(e, o)), o = e.normalizeIndentation(o)), o || null\n        }\n        static _replaceJumpToNextIndent(e, t, i, n) {\n            let r = \"\";\n            var a = i.getStartPosition();\n            if (e.insertSpaces) {\n                a = s.a.visibleColumnFromColumn2(e, t, a);\n                var l = (e = e.indentSize) - a % e;\n                for (let e = 0; e < l; e++) r += \" \"\n            } else r = \"\\t\";\n            return new o.a(i, r, n)\n        }\n        static tab(e, t, i) {\n            let n = [];\n            for (let s = 0, l = i.length; s < l; s++) {\n                const l = i[s];\n                if (l.isEmpty()) {\n                    let i = t.getLineContent(l.startLineNumber);\n                    if (/^\\s*$/.test(i) && t.isCheapToTokenize(l.startLineNumber)) {\n                        var r = this._goodIndentForLine(e, t, l.startLineNumber);\n                        r = e.normalizeIndentation(r = r || \"\\t\");\n                        if (!i.startsWith(r)) {\n                            n[s] = new o.a(new a.a(l.startLineNumber, 1, l.startLineNumber, i.length + 1), r, !0);\n                            continue\n                        }\n                    }\n                    n[s] = this._replaceJumpToNextIndent(e, t, l, !0)\n                } else {\n                    if (l.startLineNumber === l.endLineNumber && (r = t.getLineMaxColumn(l.startLineNumber), 1 !== l.startColumn || l.endColumn !== r)) {\n                        n[s] = this._replaceJumpToNextIndent(e, t, l, !1);\n                        continue\n                    }\n                    n[s] = new u(l, {\n                        isUnshift: !1,\n                        tabSize: e.tabSize,\n                        indentSize: e.indentSize,\n                        insertSpaces: e.insertSpaces,\n                        useTabStops: e.useTabStops,\n                        autoIndent: e.autoIndent\n                    })\n                }\n            }\n            return n\n        }\n        static compositionType(e, t, i, n, r, o, a, l) {\n            return n = n.map(e => this._compositionType(i, e, r, o, a, l)), new s.e(4, n, {\n                shouldPushStackElementBefore: _(e, 4),\n                shouldPushStackElementAfter: !1\n            })\n        }\n        static _compositionType(e, t, i, n, r, s) {\n            return t.isEmpty() ? (t = t.getPosition(), n = Math.max(1, t.column - n), r = Math.min(e.getLineMaxColumn(t.lineNumber), t.column + r), r = new a.a(t.lineNumber, n, t.lineNumber, r), e.getValueInRange(r) === i && 0 === s ? null : new o.c(r, i, 0, s)) : null\n        }\n        static _typeCommand(e, t, i) {\n            return new(i ? o.d : o.a)(e, t, !0)\n        }\n        static _enter(e, t, i, n) {\n            if (0 === e.autoIndent) return m._typeCommand(n, \"\\n\", i);\n            if (!t.isCheapToTokenize(n.getStartPosition().lineNumber) || 1 === e.autoIndent) {\n                var a = t.getLineContent(n.startLineNumber),\n                    l = r.x(a).substring(0, n.startColumn - 1);\n                return m._typeCommand(n, \"\\n\" + e.normalizeIndentation(l), i)\n            }\n            if (a = d.b.getEnterAction(e.autoIndent, t, n)) {\n                if (a.indentAction === f.b.None) return m._typeCommand(n, \"\\n\" + e.normalizeIndentation(a.indentation + a.appendText), i);\n                if (a.indentAction === f.b.Indent) return m._typeCommand(n, \"\\n\" + e.normalizeIndentation(a.indentation + a.appendText), i);\n                if (a.indentAction === f.b.IndentOutdent) {\n                    var c = e.normalizeIndentation(a.indentation),\n                        h = e.normalizeIndentation(a.indentation + a.appendText);\n                    l = \"\\n\" + h + \"\\n\" + c;\n                    return i ? new o.d(n, l, !0) : new o.c(n, l, -1, h.length - c.length, !0)\n                }\n                if (a.indentAction === f.b.Outdent) {\n                    var u = m.unshiftIndent(e, a.indentation);\n                    return m._typeCommand(n, \"\\n\" + e.normalizeIndentation(u + a.appendText), i)\n                }\n            }\n            if (h = t.getLineContent(n.startLineNumber), c = r.x(h).substring(0, n.startColumn - 1), 4 <= e.autoIndent && (u = d.b.getIndentForEnter(e.autoIndent, t, n, {\n                    unshiftIndent: t => m.unshiftIndent(e, t),\n                    shiftIndent: t => m.shiftIndent(e, t),\n                    normalizeIndentation: t => e.normalizeIndentation(t)\n                }))) {\n                let l = s.a.visibleColumnFromColumn2(e, t, n.getEndPosition());\n                if (a = n.endColumn, h = t.getLineContent(n.endLineNumber), n = 0 <= (h = r.u(h)) ? n.setEndPosition(n.endLineNumber, Math.max(n.endColumn, h + 1)) : n.setEndPosition(n.endLineNumber, t.getLineMaxColumn(n.endLineNumber)), i) return new o.d(n, \"\\n\" + e.normalizeIndentation(u.afterEnter), !0); {\n                    let t = 0;\n                    return a <= h + 1 && (e.insertSpaces || (l = Math.ceil(l / e.indentSize)), t = Math.min(l + 1 - e.normalizeIndentation(u.afterEnter).length - 1, 0)), new o.c(n, \"\\n\" + e.normalizeIndentation(u.afterEnter), 0, t, !0)\n                }\n            }\n            return m._typeCommand(n, \"\\n\" + e.normalizeIndentation(c), i)\n        }\n        static _isAutoIndentType(e, t, i) {\n            if (e.autoIndent < 4) return !1;\n            for (let e = 0, n = i.length; e < n; e++)\n                if (!t.isCheapToTokenize(i[e].getEndPosition().lineNumber)) return !1;\n            return !0\n        }\n        static _runAutoIndentType(e, t, i, n) {\n            var r = d.b.getIndentationAtPosition(t, i.startLineNumber, i.startColumn),\n                o = d.b.getIndentActionForType(e.autoIndent, t, i, n, {\n                    shiftIndent: t => m.shiftIndent(e, t),\n                    unshiftIndent: t => m.unshiftIndent(e, t)\n                });\n            return null === o || o === e.normalizeIndentation(r) ? null : 0 === (r = t.getLineFirstNonWhitespaceColumn(i.startLineNumber)) ? m._typeCommand(new a.a(i.startLineNumber, 1, i.endLineNumber, i.endColumn), e.normalizeIndentation(o) + n, !1) : m._typeCommand(new a.a(i.startLineNumber, 1, i.endLineNumber, i.endColumn), e.normalizeIndentation(o) + t.getLineContent(i.startLineNumber).substring(r - 1, i.startColumn - 1) + n, !1)\n        }\n        static _isAutoClosingOvertype(e, t, i, n, r) {\n            if (\"never\" === e.autoClosingOvertype) return !1;\n            if (!e.autoClosingPairs.autoClosingPairsCloseSingleChar.has(r)) return !1;\n            for (let d = 0, c = i.length; d < c; d++) {\n                const c = i[d];\n                if (!c.isEmpty()) return !1;\n                var o = c.getPosition();\n                const h = t.getLineContent(o.lineNumber);\n                if (h.charAt(o.column - 1) !== r) return !1;\n                var a = Object(s.g)(r);\n                if (92 === (2 < o.column ? h.charCodeAt(o.column - 2) : 0) && a) return !1;\n                if (\"auto\" === e.autoClosingOvertype) {\n                    let e = !1;\n                    for (let t = 0, i = n.length; t < i; t++) {\n                        var l = n[t];\n                        if (o.lineNumber === l.startLineNumber && o.column === l.startColumn) {\n                            e = !0;\n                            break\n                        }\n                    }\n                    if (!e) return !1\n                }\n            }\n            return !0\n        }\n        static _runAutoClosingOvertype(e, t, i, n, r) {\n            let l = [];\n            for (let e = 0, t = n.length; e < t; e++) {\n                var d = n[e].getPosition();\n                d = new a.a(d.lineNumber, d.column, d.lineNumber, d.column + 1);\n                l[e] = new o.a(d, r)\n            }\n            return new s.e(4, l, {\n                shouldPushStackElementBefore: _(e, 4),\n                shouldPushStackElementAfter: !1\n            })\n        }\n        static _isBeforeClosingBrace(e, t) {\n            var i = t.charAt(0);\n            const n = e.autoClosingPairs.autoClosingPairsOpenByStart.get(i) || [],\n                r = e.autoClosingPairs.autoClosingPairsCloseByStart.get(i) || [];\n            return e = n.some(e => t.startsWith(e.open)), i = r.some(e => t.startsWith(e.close)), !e && i\n        }\n        static _findAutoClosingPairOpen(e, t, i, n) {\n            if (!(e = e.autoClosingPairs.autoClosingPairsOpenByEnd.get(n))) return null;\n            let r = null;\n            for (const o of e)\n                if (null === r || o.open.length > r.open.length) {\n                    let e = !0;\n                    for (const r of i)\n                        if (t.getValueInRange(new a.a(r.lineNumber, r.column - o.open.length + 1, r.lineNumber, r.column)) + n !== o.open) {\n                            e = !1;\n                            break\n                        } e && (r = o)\n                } return r\n        }\n        static _findSubAutoClosingPairClose(e, t) {\n            if (t.open.length <= 1) return \"\";\n            var i = t.close.charAt(t.close.length - 1);\n            let n = null;\n            for (const r of e.autoClosingPairs.autoClosingPairsCloseByEnd.get(i) || []) r.open !== t.open && t.open.includes(r.open) && t.close.endsWith(r.close) && (!n || r.open.length > n.open.length) && (n = r);\n            return n ? n.close : \"\"\n        }\n        static _getAutoClosingPairClose(e, t, i, r, o) {\n            var a = Object(s.g)(r),\n                l = a ? e.autoClosingQuotes : e.autoClosingBrackets;\n            if (\"never\" === l) return null;\n            const c = this._findAutoClosingPairOpen(e, t, i.map(e => e.getPosition()), r);\n            if (!c) return null;\n            var h = this._findSubAutoClosingPairClose(e, c);\n            let u = !0;\n            const p = a ? e.shouldAutoCloseBefore.quote : e.shouldAutoCloseBefore.bracket;\n            for (let s = 0, b = i.length; s < b; s++) {\n                const b = i[s];\n                if (!b.isEmpty()) return null;\n                var f = b.getPosition();\n                const _ = t.getLineContent(f.lineNumber),\n                    w = _.substring(f.column - 1);\n                if (w.startsWith(h) || (u = !1), _.length > f.column - 1) {\n                    var v = _.charAt(f.column - 1);\n                    if (!m._isBeforeClosingBrace(e, w) && !p(v)) return null\n                }\n                if (!t.isCheapToTokenize(f.lineNumber)) return null;\n                if (1 === c.open.length && (\"'\" === r || '\"' === r) && \"always\" !== l) {\n                    const t = Object(g.a)(e.wordSeparators);\n                    if (o && 1 < f.column && 0 === t.get(_.charCodeAt(f.column - 2))) return null;\n                    if (!o && 2 < f.column && 0 === t.get(_.charCodeAt(f.column - 3))) return null\n                }\n                t.forceTokenization(f.lineNumber), v = t.getLineTokens(f.lineNumber);\n                let y = !1;\n                try {\n                    y = d.b.shouldAutoClosePair(c, v, o ? f.column : f.column - 1)\n                } catch (a) {\n                    Object(n.f)(a)\n                }\n                if (!y) return null\n            }\n            return u ? c.close.substring(0, c.close.length - h.length) : c.close\n        }\n        static _runAutoClosingOpenCharType(e, t, i, n, r, o, a) {\n            let l = [];\n            for (let e = 0, t = n.length; e < t; e++) {\n                var d = n[e];\n                l[e] = new v(d, r, o, a)\n            }\n            return new s.e(4, l, {\n                shouldPushStackElementBefore: !0,\n                shouldPushStackElementAfter: !1\n            })\n        }\n        static _shouldSurroundChar(e, t) {\n            return Object(s.g)(t) ? \"quotes\" === e.autoSurround || \"languageDefined\" === e.autoSurround : \"brackets\" === e.autoSurround || \"languageDefined\" === e.autoSurround\n        }\n        static _isSurroundSelectionType(e, t, i, n) {\n            if (!m._shouldSurroundChar(e, n) || !e.surroundingPairs.hasOwnProperty(n)) return !1;\n            var r = Object(s.g)(n);\n            for (let e = 0, n = i.length; e < n; e++) {\n                const n = i[e];\n                if (n.isEmpty()) return !1;\n                let d = !0;\n                for (let e = n.startLineNumber; e <= n.endLineNumber; e++) {\n                    const i = t.getLineContent(e);\n                    var o = e === n.startLineNumber ? n.startColumn - 1 : 0,\n                        a = e === n.endLineNumber ? n.endColumn - 1 : i.length;\n                    a = i.substring(o, a);\n                    if (/[^ \\t]/.test(a)) {\n                        d = !1;\n                        break\n                    }\n                }\n                if (d) return !1;\n                if (r && n.startLineNumber === n.endLineNumber && n.startColumn + 1 === n.endColumn) {\n                    var l = t.getValueInRange(n);\n                    if (Object(s.g)(l)) return !1\n                }\n            }\n            return !0\n        }\n        static _runSurroundSelectionType(e, t, i, n, r) {\n            let o = [];\n            for (let e = 0, i = n.length; e < i; e++) {\n                var a = n[e],\n                    l = t.surroundingPairs[r];\n                o[e] = new p(a, r, l)\n            }\n            return new s.e(0, o, {\n                shouldPushStackElementBefore: !0,\n                shouldPushStackElementAfter: !0\n            })\n        }\n        static _isTypeInterceptorElectricChar(e, t, i) {\n            return !(1 !== i.length || !t.isCheapToTokenize(i[0].getEndPosition().lineNumber))\n        }\n        static _typeInterceptorElectricChar(e, t, i, l, c) {\n            if (!t.electricChars.hasOwnProperty(c) || !l.isEmpty()) return null;\n            var h = l.getPosition();\n            i.forceTokenization(h.lineNumber);\n            let u, p = i.getLineTokens(h.lineNumber);\n            try {\n                u = d.b.onElectricCharacter(c, p, h.column)\n            } catch (p) {\n                return Object(n.f)(p), null\n            }\n            if (!u) return null;\n            if (u.matchOpenBracket && (l = (p.getLineContent() + c).lastIndexOf(u.matchOpenBracket) + 1, l = i.findMatchingBracketUp(u.matchOpenBracket, {\n                    lineNumber: h.lineNumber,\n                    column: l\n                }))) {\n                if (l.startLineNumber === h.lineNumber) return null;\n                l = i.getLineContent(l.startLineNumber), l = r.x(l), l = t.normalizeIndentation(l);\n                let n = i.getLineContent(h.lineNumber);\n                return i = i.getLineFirstNonWhitespaceColumn(h.lineNumber) || h.column, c = l + n.substring(i - 1, h.column - 1) + c, h = new a.a(h.lineNumber, 1, h.lineNumber, h.column), h = new o.a(h, c), new s.e(b(c, e), [h], {\n                    shouldPushStackElementBefore: !1,\n                    shouldPushStackElementAfter: !0\n                })\n            }\n            return null\n        }\n        static compositionEndWithInterceptors(e, t, i, n, r, d) {\n            if (!n || l.a.selectionsArrEqual(n, r)) return null;\n            let c = null;\n            for (const e of r) {\n                if (!e.isEmpty()) return null;\n                var h = e.getPosition();\n                h = i.getValueInRange(new a.a(h.lineNumber, h.column - 1, h.lineNumber, h.column));\n                if (null === c) c = h;\n                else if (c !== h) return null\n            }\n            if (!c) return null;\n            if (this._isAutoClosingOvertype(t, i, r, d, c)) {\n                var u = r.map(e => new o.a(new a.a(e.positionLineNumber, e.positionColumn, e.positionLineNumber, e.positionColumn + 1), \"\", !1));\n                return new s.e(4, u, {\n                    shouldPushStackElementBefore: !0,\n                    shouldPushStackElementAfter: !1\n                })\n            }\n            return null !== (u = this._getAutoClosingPairClose(t, i, r, c, !1)) ? this._runAutoClosingOpenCharType(e, t, i, r, c, !1, u) : null\n        }\n        static typeWithInterceptors(e, t, i, n, r, a, l) {\n            if (!e && \"\\n\" === l) {\n                let e = [];\n                for (let t = 0, o = r.length; t < o; t++) e[t] = m._enter(i, n, !1, r[t]);\n                return new s.e(4, e, {\n                    shouldPushStackElementBefore: !0,\n                    shouldPushStackElementAfter: !1\n                })\n            }\n            if (!e && this._isAutoIndentType(i, n, r)) {\n                let e = [],\n                    t = !1;\n                for (let o = 0, s = r.length; o < s; o++)\n                    if (e[o] = this._runAutoIndentType(i, n, r[o], l), !e[o]) {\n                        t = !0;\n                        break\n                    } if (!t) return new s.e(4, e, {\n                    shouldPushStackElementBefore: !0,\n                    shouldPushStackElementAfter: !1\n                })\n            }\n            if (!e && this._isAutoClosingOvertype(i, n, r, a, l)) return this._runAutoClosingOvertype(t, i, n, r, l);\n            if (!e && (a = this._getAutoClosingPairClose(i, n, r, l, !0))) return this._runAutoClosingOpenCharType(t, i, n, r, l, !0, a);\n            if (this._isSurroundSelectionType(i, n, r, l)) return this._runSurroundSelectionType(t, i, n, r, l);\n            if (!e && this._isTypeInterceptorElectricChar(i, n, r)) {\n                var d = this._typeInterceptorElectricChar(t, i, n, r[0], l);\n                if (d) return d\n            }\n            let c = [];\n            for (let e = 0, t = r.length; e < t; e++) c[e] = new o.a(r[e], l);\n            return d = b(l, t), new s.e(d, c, {\n                shouldPushStackElementBefore: _(t, d),\n                shouldPushStackElementAfter: !1\n            })\n        }\n        static typeWithoutInterceptors(e, t, i, n, r) {\n            let a = [];\n            for (let e = 0, t = n.length; e < t; e++) a[e] = new o.a(n[e], r);\n            var l = b(r, e);\n            return new s.e(l, a, {\n                shouldPushStackElementBefore: _(e, l),\n                shouldPushStackElementAfter: !1\n            })\n        }\n        static lineInsertBefore(e, t, i) {\n            if (null === t || null === i) return [];\n            let n = [];\n            for (let l = 0, d = i.length; l < d; l++) {\n                var r, s = i[l].positionLineNumber;\n                1 === s ? n[l] = new o.d(new a.a(1, 1, 1, 1), \"\\n\") : (s--, r = t.getLineMaxColumn(s), n[l] = this._enter(e, t, !1, new a.a(s, r, s, r)))\n            }\n            return n\n        }\n        static lineInsertAfter(e, t, i) {\n            if (null === t || null === i) return [];\n            let n = [];\n            for (let s = 0, l = i.length; s < l; s++) {\n                var r = i[s].positionLineNumber,\n                    o = t.getLineMaxColumn(r);\n                n[s] = this._enter(e, t, !1, new a.a(r, o, r, o))\n            }\n            return n\n        }\n        static lineBreakInsert(e, t, i) {\n            let n = [];\n            for (let r = 0, o = i.length; r < o; r++) n[r] = this._enter(e, t, !0, i[r]);\n            return n\n        }\n    }\n    class v extends o.c {\n        constructor(e, t, i, n) {\n            super(e, (i ? t : \"\") + n, 0, -n.length), this._openCharacter = t, this._closeCharacter = n, this.closeCharacterRange = null, this.enclosingRange = null\n        }\n        computeCursorState(e, t) {\n            var i = t.getInverseEditOperations()[0].range;\n            return this.closeCharacterRange = new a.a(i.startLineNumber, i.endColumn - this._closeCharacter.length, i.endLineNumber, i.endColumn), this.enclosingRange = new a.a(i.startLineNumber, i.endColumn - this._openCharacter.length - this._closeCharacter.length, i.endLineNumber, i.endColumn), super.computeCursorState(e, t)\n        }\n    }\n\n    function b(e, t) {\n        return \" \" === e ? 5 === t || 6 === t ? 6 : 5 : 4\n    }\n\n    function _(e, t) {\n        return !(!y(e) || y(t)) || 5 !== e && w(e) !== w(t)\n    }\n\n    function w(e) {\n        return 6 === e || 5 === e ? \"space\" : e\n    }\n\n    function y(e) {\n        return 4 === e || 5 === e || 6 === e\n    }\n}, function(e, t, i) {\n    \"use strict\";\n    var n = {\n        name: \"EscCapture\",\n        methods: {\n            handleKeyDown: function(e) {\n                27 === e.keyCode && this.$emit(\"esc\")\n            }\n        },\n        mounted: function() {\n            this.$el.focus && this.$el.focus()\n        }\n    };\n    i = i(30), n = Object(i.a)(n, (function() {\n        var e = this.$createElement;\n        return (this._self._c || e)(\"div\", this._g({\n            staticClass: \"no-esc\",\n            attrs: {\n                tabindex: \"0\"\n            },\n            on: {\n                keydown: this.handleKeyDown\n            }\n        }, this.$listeners), [this._t(\"default\")], 2)\n    }), [], !1, null, \"17e5c8db\", null);\n    t.a = n.exports\n}, function(e, t, i) {\n    \"use strict\";\n    i.d(t, \"a\", (function() {\n        return r\n    }));\n    class n extends i(125).a {\n        constructor(e) {\n            super(0);\n            for (let t = 0, i = e.length; t < i; t++) this.set(e.charCodeAt(t), 2);\n            this.set(32, 1), this.set(9, 1)\n        }\n    }\n    const r = function(e) {\n        let t = {};\n        return e => (t.hasOwnProperty(e) || (t[e] = (e => new n(e))(e)), t[e])\n    }()\n}, function(e, t, i) {\n    \"use strict\";\n    i.d(t, \"a\", (function() {\n        return n\n    }));\n    class n {\n        constructor(e, t = [], i = !1) {\n            this.ctor = e, this.staticArguments = t, this.supportsDelayedInstantiation = i\n        }\n    }\n}, function(e, t) {\n    e.exports = require(\"@vscode/sudo-prompt\")\n}, function(e, t, i) {\n    \"use strict\";\n    i.d(t, \"a\", (function() {\n        return r\n    }));\n    var n = i(75);\n    class r {\n        constructor(e) {\n            e = Object(n.b)(e), this._defaultValue = e, this._asciiMap = r._createAsciiMap(e), this._map = new Map\n        }\n        static _createAsciiMap(e) {\n            let t = new Uint8Array(256);\n            for (let i = 0; i < 256; i++) t[i] = e;\n            return t\n        }\n        set(e, t) {\n            t = Object(n.b)(t), 0 <= e && e < 256 ? this._asciiMap[e] = t : this._map.set(e, t)\n        }\n        get(e) {\n            return 0 <= e && e < 256 ? this._asciiMap[e] : this._map.get(e) || this._defaultValue\n        }\n    }\n}, function(e, t, i) {\n    \"use strict\";\n    i.d(t, \"b\", (function() {\n        return r\n    })), i.d(t, \"c\", (function() {\n        return s\n    })), i.d(t, \"a\", (function() {\n        return c\n    }));\n    var n = i(6);\n\n    function r(e, t) {\n        switch (typeof e) {\n            case \"object\":\n                return null === e ? o(349, t) : Array.isArray(e) ? (n = o(104579, n = t), e.reduce((e, t) => r(t, e), n)) : (i = e, n = o(181387, n = t), Object.keys(i).sort().reduce((e, t) => (e = s(t, e), r(i[t], e)), n));\n            case \"string\":\n                return s(e, t);\n            case \"boolean\":\n                return o(e ? 433 : 863, t);\n            case \"number\":\n                return o(e, t);\n            case \"undefined\":\n                return o(937, t);\n            default:\n                return o(617, t)\n        }\n        var i, n\n    }\n\n    function o(e, t) {\n        return (t << 5) - t + e | 0\n    }\n\n    function s(e, t) {\n        t = o(149417, t);\n        for (let i = 0, n = e.length; i < n; i++) t = o(e.charCodeAt(i), t);\n        return t\n    }\n\n    function a(e, t, i = 32) {\n        return (e << t | (~((1 << (i -= t)) - 1) & e) >>> i) >>> 0\n    }\n\n    function l(e, t = 0, i = e.byteLength, n = 0) {\n        for (let r = 0; r < i; r++) e[t + r] = n\n    }\n\n    function d(e, t = 32) {\n        return e instanceof ArrayBuffer ? Array.from(new Uint8Array(e)).map(e => e.toString(16).padStart(2, \"0\")).join(\"\") : function(e, t, i = \"0\") {\n            for (; e.length < t;) e = i + e;\n            return e\n        }((e >>> 0).toString(16), t / 4)\n    }\n    class c {\n        constructor() {\n            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\n        }\n        update(e) {\n            var t = e.length;\n            if (0 !== t) {\n                var i = this._buff;\n                let o, s, a = this._buffLen,\n                    l = this._leftoverHighSurrogate;\n                for (0 !== l ? (o = l, s = -1, l = 0) : (o = e.charCodeAt(0), s = 0);;) {\n                    let d = o;\n                    if (n.E(o)) {\n                        if (!(s + 1 < t)) {\n                            l = o;\n                            break\n                        }\n                        var r = e.charCodeAt(s + 1);\n                        d = n.F(r) ? (s++, n.j(o, r)) : 65533\n                    } else n.F(o) && (d = 65533);\n                    if (a = this._push(i, a, d), s++, !(s < t)) break;\n                    o = e.charCodeAt(s)\n                }\n                this._buffLen = a, this._leftoverHighSurrogate = l\n            }\n        }\n        _push(e, t, i) {\n            return i < 128 ? e[t++] = i : (i < 2048 ? e[t++] = 192 | (1984 & i) >>> 6 : (i < 65536 ? e[t++] = 224 | (61440 & i) >>> 12 : (e[t++] = 240 | (1835008 & i) >>> 18, e[t++] = 128 | (258048 & i) >>> 12), e[t++] = 128 | (4032 & i) >>> 6), e[t++] = 128 | (63 & i) >>> 0), 64 <= t && (this._step(), t -= 64, this._totalLen += 64, e[0] = e[64], e[1] = e[65], e[2] = e[66]), t\n        }\n        digest() {\n            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()), d(this._h0) + d(this._h1) + d(this._h2) + d(this._h3) + d(this._h4)\n        }\n        _wrapUp() {\n            this._buff[this._buffLen++] = 128, l(this._buff, this._buffLen), 56 < this._buffLen && (this._step(), l(this._buff));\n            var e = 8 * this._totalLen;\n            this._buffDV.setUint32(56, Math.floor(e / 4294967296), !1), this._buffDV.setUint32(60, e % 4294967296, !1), this._step()\n        }\n        _step() {\n            const e = c._bigBlock32,\n                t = this._buffDV;\n            for (let i = 0; i < 64; i += 4) e.setUint32(i, t.getUint32(i, !1), !1);\n            for (let t = 64; t < 320; t += 4) e.setUint32(t, a(e.getUint32(t - 12, !1) ^ e.getUint32(t - 32, !1) ^ e.getUint32(t - 56, !1) ^ e.getUint32(t - 64, !1), 1), !1);\n            let i, n, r = this._h0,\n                o = this._h1,\n                s = this._h2,\n                l = this._h3,\n                d = this._h4;\n            var h;\n            for (let t = 0; t < 80; t++) n = t < 20 ? (i = o & s | ~o & l, 1518500249) : t < 40 ? (i = o ^ s ^ l, 1859775393) : t < 60 ? (i = o & s | o & l | s & l, 2400959708) : (i = o ^ s ^ l, 3395469782), h = a(r, 5) + i + d + n + e.getUint32(4 * t, !1) & 4294967295, d = l, l = s, s = a(o, 30), o = r, r = h;\n            this._h0 = this._h0 + r & 4294967295, this._h1 = this._h1 + o & 4294967295, this._h2 = this._h2 + s & 4294967295, this._h3 = this._h3 + l & 4294967295, this._h4 = this._h4 + d & 4294967295\n        }\n    }\n    c._bigBlock32 = new DataView(new ArrayBuffer(320))\n}, function(e, t, i) {\n    \"use strict\";\n    i.d(t, \"b\", (function() {\n        return h\n    }));\n    var n = i(165),\n        r = i.n(n),\n        o = i(77),\n        s = i(146),\n        a = i(157),\n        l = i(19);\n\n    function d(e, t) {\n        var i = \"undefined\" != typeof Symbol && e[Symbol.iterator] || e[\"@@iterator\"];\n        if (!i) {\n            if (Array.isArray(e) || (i = function(e, t) {\n                    if (e) {\n                        if (\"string\" == typeof e) return c(e, t);\n                        var i = Object.prototype.toString.call(e).slice(8, -1);\n                        return \"Map\" === (i = \"Object\" === i && e.constructor ? e.constructor.name : i) || \"Set\" === i ? Array.from(e) : \"Arguments\" === i || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i) ? c(e, t) : void 0\n                    }\n                }(e)) || t && e && \"number\" == typeof e.length) {\n                i && (e = i);\n                var n = 0;\n                return {\n                    s: t = function() {},\n                    n: function() {\n                        return n >= e.length ? {\n                            done: !0\n                        } : {\n                            done: !1,\n                            value: e[n++]\n                        }\n                    },\n                    e: function(e) {\n                        throw e\n                    },\n                    f: t\n                }\n            }\n            throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")\n        }\n        var r, o = !0,\n            s = !1;\n        return {\n            s: function() {\n                i = i.call(e)\n            },\n            n: function() {\n                var e = i.next();\n                return o = e.done, e\n            },\n            e: function(e) {\n                s = !0, r = e\n            },\n            f: function() {\n                try {\n                    o || null == i.return || i.return()\n                } finally {\n                    if (s) throw r\n                }\n            }\n        }\n    }\n\n    function c(e, t) {\n        (null == t || t > e.length) && (t = e.length);\n        for (var i = 0, n = new Array(t); i < t; i++) n[i] = e[i];\n        return n\n    }\n    var h = function() {\n        var e = [],\n            t = Object(s.networkInterfaces)();\n        return Object.keys(t).forEach((function(i) {\n            t[i].forEach((function(t) {\n                !0 !== t.internal && \"IPv6\" !== t.family && e.push({\n                    name: i,\n                    address: t.address\n                })\n            }))\n        })), e\n    };\n    t.a = function() {\n        if (Object(l.i)()) {\n            var e = Object(o.execSync)(\"netstat -nr | grep default \").toString().split(\"\\n\").map((function(e) {\n                    return e.split(/\\s+/).filter((function(e) {\n                        return e\n                    }))\n                })).filter((function(e) {\n                    return 4 === e.length && Object(a.isIPv4)(e[1])\n                })),\n                t = Object(s.networkInterfaces)();\n            if (0 < e.length) {\n                var i, n = d(e);\n                try {\n                    for (n.s(); !(i = n.n()).done;) {\n                        var c = i.value[3];\n                        if (Object.keys(t).includes(c)) return c\n                    }\n                } catch (e) {\n                    n.e(e)\n                } finally {\n                    n.f()\n                }\n            }\n            if (Object.keys(t).includes(\"en0\")) return \"en0\"\n        } else if (Object(l.j)()) {\n            e = Object(o.execSync)(\"route print 0.0.0.0 mask 0.0.0.0\", {\n                windowsHide: !0\n            }).toString().split(\"\\n\").map((function(e) {\n                return e.split(/\\s+/).filter((function(e) {\n                    return e\n                }))\n            })).filter((function(e) {\n                return 5 === e.length && e.slice(0, 4).every((function(e) {\n                    return Object(a.isIP)(e)\n                })) && NaN !== parseInt(e[4])\n            }));\n            var h = Object(s.networkInterfaces)();\n            if (delete h[\"cfw-tap\"], 0 < e.length) {\n                var u, p = d(e.sort((function(e, t) {\n                    return parseInt(e[4]) - parseInt(t[4])\n                })));\n                try {\n                    for (p.s(); !(u = p.n()).done;) {\n                        var g = function() {\n                            for (var e = u.value[3], t = 0, i = Object.keys(h); t < i.length; t++) {\n                                var n = i[t];\n                                if (h[n].find((function(t) {\n                                        return t.address === e\n                                    }))) return {\n                                    v: n\n                                }\n                            }\n                        }();\n                        if (\"object\" === r()(g)) return g.v\n                    }\n                } catch (e) {\n                    p.e(e)\n                } finally {\n                    p.f()\n                }\n            }\n            if (Object.keys(h).includes(\"以太网\")) return \"以太网\";\n            if (Object.keys(h).includes(\"WLAN\")) return \"WLAN\"\n        }\n        return null\n    }\n}, function(e, t, i) {\n    \"use strict\";\n    i.d(t, \"a\", (function() {\n        return a\n    }));\n    var n = i(106),\n        r = i(9),\n        o = i(46);\n    i = i(58);\n    class s {\n        constructor() {\n            this._coreKeybindings = [], this._extensionKeybindings = [], this._cachedMergedKeybindings = null\n        }\n        static bindToCurrentPlatform(e) {\n            if (1 === r.a) {\n                if (e && e.win) return e.win\n            } else if (2 === r.a) {\n                if (e && e.mac) return e.mac\n            } else if (e && e.linux) return e.linux;\n            return e\n        }\n        registerKeybindingRule(e) {\n            var t, i = s.bindToCurrentPlatform(e);\n            if (i && i.primary && (t = Object(n.e)(i.primary, r.a)) && this._registerDefaultKeybinding(t, e.id, e.args, e.weight, 0, e.when), i && Array.isArray(i.secondary))\n                for (let t = 0, s = i.secondary.length; t < s; t++) {\n                    var o = i.secondary[t];\n                    (o = Object(n.e)(o, r.a)) && this._registerDefaultKeybinding(o, e.id, e.args, e.weight, -t - 1, e.when)\n                }\n        }\n        registerCommandAndKeybindingRule(e) {\n            this.registerKeybindingRule(e), o.a.registerCommand(e)\n        }\n        static _mightProduceChar(e) {\n            return 21 <= e && e <= 30 || 31 <= e && e <= 56 || 80 === e || 81 === e || 82 === e || 83 === e || 84 === e || 85 === e || 86 === e || 110 === e || 111 === e || 87 === e || 88 === e || 89 === e || 90 === e || 91 === e || 92 === e\n        }\n        _assertNoCtrlAlt(e, t) {\n            e.ctrlKey && e.altKey && !e.metaKey && s._mightProduceChar(e.keyCode) && console.warn(\"Ctrl+Alt+ keybindings should not be used by default under Windows. Offender: \", e, \" for \", t)\n        }\n        _registerDefaultKeybinding(e, t, i, n, o, s) {\n            1 === r.a && this._assertNoCtrlAlt(e.parts[0], t), this._coreKeybindings.push({\n                keybinding: e.parts,\n                command: t,\n                commandArgs: i,\n                when: s,\n                weight1: n,\n                weight2: o,\n                extensionId: null,\n                isBuiltinExtension: !1\n            }), this._cachedMergedKeybindings = null\n        }\n        getDefaultKeybindings() {\n            return this._cachedMergedKeybindings || (this._cachedMergedKeybindings = [].concat(this._coreKeybindings).concat(this._extensionKeybindings), this._cachedMergedKeybindings.sort(l)), this._cachedMergedKeybindings.slice(0)\n        }\n    }\n    const a = new s;\n\n    function l(e, t) {\n        return e.weight1 !== t.weight1 ? e.weight1 - t.weight1 : e.command < t.command ? -1 : e.command > t.command ? 1 : e.weight2 - t.weight2\n    }\n    i.a.add(\"platform.keybindingsRegistry\", a)\n}, function(e, t, i) {\n    \"use strict\";\n    i.d(t, \"c\", (function() {\n        return c\n    })), i.d(t, \"a\", (function() {\n        return v\n    })), i.d(t, \"b\", (function() {\n        return y\n    }));\n    var n = i(31),\n        r = i(2),\n        o = (t = i(4), i(9)),\n        s = i(17),\n        a = i(6);\n    const l = \"$initialize\";\n    let d = !1;\n\n    function c(e) {\n        o.h && (d || (d = !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(e.message))\n    }\n    class h {\n        constructor(e, t, i, n) {\n            this.vsWorker = e, this.req = t, this.method = i, this.args = n, this.type = 0\n        }\n    }\n    class u {\n        constructor(e, t, i, n) {\n            this.vsWorker = e, this.seq = t, this.res = i, this.err = n, this.type = 1\n        }\n    }\n    class p {\n        constructor(e, t, i, n) {\n            this.vsWorker = e, this.req = t, this.eventName = i, this.arg = n, this.type = 2\n        }\n    }\n    class g {\n        constructor(e, t, i) {\n            this.vsWorker = e, this.req = t, this.event = i, this.type = 3\n        }\n    }\n    class f {\n        constructor(e, t) {\n            this.vsWorker = e, this.req = t, this.type = 4\n        }\n    }\n    class m {\n        constructor(e) {\n            this._workerId = -1, this._handler = e, this._lastSentReq = 0, this._pendingReplies = Object.create(null), this._pendingEmitters = new Map, this._pendingEvents = new Map\n        }\n        setWorkerId(e) {\n            this._workerId = e\n        }\n        sendMessage(e, t) {\n            const i = String(++this._lastSentReq);\n            return new Promise((n, r) => {\n                this._pendingReplies[i] = {\n                    resolve: n,\n                    reject: r\n                }, this._send(new h(this._workerId, i, e, t))\n            })\n        }\n        listen(e, t) {\n            let i = null;\n            const n = new r.b({\n                onFirstListenerAdd: () => {\n                    i = String(++this._lastSentReq), this._pendingEmitters.set(i, n), this._send(new p(this._workerId, i, e, t))\n                },\n                onLastListenerRemove: () => {\n                    this._pendingEmitters.delete(i), this._send(new f(this._workerId, i)), i = null\n                }\n            });\n            return n.event\n        }\n        handleMessage(e) {\n            e && e.vsWorker && (-1 !== this._workerId && e.vsWorker !== this._workerId || this._handleMessage(e))\n        }\n        _handleMessage(e) {\n            switch (e.type) {\n                case 1:\n                    return this._handleReplyMessage(e);\n                case 0:\n                    return this._handleRequestMessage(e);\n                case 2:\n                    return this._handleSubscribeEventMessage(e);\n                case 3:\n                    return this._handleEventMessage(e);\n                case 4:\n                    return this._handleUnsubscribeEventMessage(e)\n            }\n        }\n        _handleReplyMessage(e) {\n            if (this._pendingReplies[e.seq]) {\n                let t = this._pendingReplies[e.seq];\n                if (delete this._pendingReplies[e.seq], e.err) {\n                    let i = e.err;\n                    return e.err.$isError && (i = new Error, i.name = e.err.name, i.message = e.err.message, i.stack = e.err.stack), void t.reject(i)\n                }\n                t.resolve(e.res)\n            } else console.warn(\"Got reply to unknown seq\")\n        }\n        _handleRequestMessage(e) {\n            let t = e.req;\n            this._handler.handleMessage(e.method, e.args).then(e => {\n                this._send(new u(this._workerId, t, e, void 0))\n            }, e => {\n                e.detail instanceof Error && (e.detail = Object(n.h)(e.detail)), this._send(new u(this._workerId, t, void 0, Object(n.h)(e)))\n            })\n        }\n        _handleSubscribeEventMessage(e) {\n            const t = e.req;\n            e = this._handler.handleEvent(e.eventName, e.arg)(e => {\n                this._send(new g(this._workerId, t, e))\n            }), this._pendingEvents.set(t, e)\n        }\n        _handleEventMessage(e) {\n            this._pendingEmitters.has(e.req) ? this._pendingEmitters.get(e.req).fire(e.event) : console.warn(\"Got event for unknown req\")\n        }\n        _handleUnsubscribeEventMessage(e) {\n            this._pendingEvents.has(e.req) ? (this._pendingEvents.get(e.req).dispose(), this._pendingEvents.delete(e.req)) : console.warn(\"Got unsubscribe for unknown req\")\n        }\n        _send(e) {\n            let t = [];\n            if (0 === e.type)\n                for (let i = 0; i < e.args.length; i++) e.args[i] instanceof ArrayBuffer && t.push(e.args[i]);\n            else 1 === e.type && e.res instanceof ArrayBuffer && t.push(e.res);\n            this._handler.sendMessage(e, t)\n        }\n    }\n    class v extends t.a {\n        constructor(e, t, i) {\n            super();\n            let n = null;\n            this._worker = this._register(e.create(\"vs/base/common/worker/simpleWorker\", e => {\n                this._protocol.handleMessage(e)\n            }, e => {\n                n && n(e)\n            })), this._protocol = new m({\n                sendMessage: (e, t) => {\n                    this._worker.postMessage(e, t)\n                },\n                handleMessage: (e, t) => {\n                    if (\"function\" != typeof i[e]) return Promise.reject(new Error(\"Missing method \" + e + \" on main thread host.\"));\n                    try {\n                        return Promise.resolve(i[e].apply(i, t))\n                    } catch (e) {\n                        return Promise.reject(e)\n                    }\n                },\n                handleEvent: (e, t) => {\n                    if (_(e)) {\n                        var n = i[e].call(i, t);\n                        if (\"function\" != typeof n) throw new Error(`Missing dynamic event ${e} on main thread host.`);\n                        return n\n                    }\n                    if (b(e)) {\n                        if (\"function\" != typeof(n = i[e])) throw new Error(`Missing event ${e} on main thread host.`);\n                        return n\n                    }\n                    throw new Error(\"Malformed event name \" + e)\n                }\n            }), this._protocol.setWorkerId(this._worker.getId());\n            let r = null;\n            void 0 !== o.b.require && \"function\" == typeof o.b.require.getConfig ? r = o.b.require.getConfig() : void 0 !== o.b.requirejs && (r = o.b.requirejs.s.contexts._.config), e = s.d(i), this._onModuleLoaded = this._protocol.sendMessage(l, [this._worker.getId(), JSON.parse(JSON.stringify(r)), t, e]);\n            const a = (e, t) => this._request(e, t),\n                d = (e, t) => this._protocol.listen(e, t);\n            this._lazyProxy = new Promise((e, i) => {\n                n = i, this._onModuleLoaded.then(t => {\n                    e(w(t, a, d))\n                }, e => {\n                    i(e), this._onError(\"Worker failed to load \" + t, e)\n                })\n            })\n        }\n        getProxyObject() {\n            return this._lazyProxy\n        }\n        _request(e, t) {\n            return new Promise((i, n) => {\n                this._onModuleLoaded.then(() => {\n                    this._protocol.sendMessage(e, t).then(i, n)\n                }, n)\n            })\n        }\n        _onError(e, t) {\n            console.error(e), console.info(t)\n        }\n    }\n\n    function b(e) {\n        return \"o\" === e[0] && \"n\" === e[1] && a.H(e.charCodeAt(2))\n    }\n\n    function _(e) {\n        return /^onDynamic/.test(e) && a.H(e.charCodeAt(9))\n    }\n\n    function w(e, t, i) {\n        let n = {};\n        for (const r of e) _(r) ? n[r] = (e => function(t) {\n            return i(e, t)\n        })(r) : b(r) ? n[r] = i(r, void 0) : n[r] = (e => function() {\n            var i = Array.prototype.slice.call(arguments, 0);\n            return t(e, i)\n        })(r);\n        return n\n    }\n    class y {\n        constructor(e, t) {\n            this._requestHandlerFactory = t, this._requestHandler = null, this._protocol = new m({\n                sendMessage: (t, i) => {\n                    e(t, i)\n                },\n                handleMessage: (e, t) => this._handleMessage(e, t),\n                handleEvent: (e, t) => this._handleEvent(e, t)\n            })\n        }\n        onmessage(e) {\n            this._protocol.handleMessage(e)\n        }\n        _handleMessage(e, t) {\n            if (e === l) return this.initialize(t[0], t[1], t[2], t[3]);\n            if (!this._requestHandler || \"function\" != typeof this._requestHandler[e]) return Promise.reject(new Error(\"Missing requestHandler or method: \" + e));\n            try {\n                return Promise.resolve(this._requestHandler[e].apply(this._requestHandler, t))\n            } catch (e) {\n                return Promise.reject(e)\n            }\n        }\n        _handleEvent(e, t) {\n            if (!this._requestHandler) throw new Error(\"Missing requestHandler\");\n            if (_(e)) {\n                var i = this._requestHandler[e].call(this._requestHandler, t);\n                if (\"function\" != typeof i) throw new Error(`Missing dynamic event ${e} on request handler.`);\n                return i\n            }\n            if (b(e)) {\n                if (\"function\" != typeof(i = this._requestHandler[e])) throw new Error(`Missing event ${e} on request handler.`);\n                return i\n            }\n            throw new Error(\"Malformed event name \" + e)\n        }\n        initialize(e, t, i, n) {\n            this._protocol.setWorkerId(e);\n            const r = w(n, (e, t) => this._protocol.sendMessage(e, t), (e, t) => this._protocol.listen(e, t));\n            return this._requestHandlerFactory ? (this._requestHandler = this._requestHandlerFactory(r), Promise.resolve(s.d(this._requestHandler))) : (t && (void 0 !== t.baseUrl && delete t.baseUrl, void 0 !== t.paths && void 0 !== t.paths.vs && delete t.paths.vs, t.trustedTypesPolicy, delete t.trustedTypesPolicy, t.catchError = !0, o.b.require.config(t)), new Promise((e, t) => {\n                (0, o.b.require)([i], i => {\n                    this._requestHandler = i.create(r), this._requestHandler ? e(s.d(this._requestHandler)) : t(new Error(\"No RequestHandler!\"))\n                }, t)\n            }))\n        }\n    }\n}, function(e, t, i) {\n    \"use strict\";\n    i.d(t, \"b\", (function() {\n        return g\n    })), i.d(t, \"a\", (function() {\n        return f\n    }));\n    var n = i(0),\n        r = i(31),\n        o = i(36),\n        s = i(39),\n        a = i(159),\n        l = i(59),\n        d = i(140);\n\n    function c(e) {\n        return e.toString()\n    }\n    class h {\n        constructor(e, t, i, n, r, o, s) {\n            this.beforeVersionId = e, this.afterVersionId = t, this.beforeEOL = i, this.afterEOL = n, this.beforeCursorState = r, this.afterCursorState = o, this.changes = s\n        }\n        static create(e, t) {\n            var i = e.getAlternativeVersionId();\n            e = p(e);\n            return new h(i, i, e, e, t, t, [])\n        }\n        append(e, t, i, n, r) {\n            0 < t.length && (this.changes = Object(a.b)(this.changes, t)), this.afterEOL = i, this.afterVersionId = n, this.afterCursorState = r\n        }\n        static _writeSelectionsSize(e) {\n            return 4 + 16 * (e ? e.length : 0)\n        }\n        static _writeSelections(e, t, i) {\n            if (l.f(e, t ? t.length : 0, i), i += 4, t)\n                for (const n of t) l.f(e, n.selectionStartLineNumber, i), i += 4, l.f(e, n.selectionStartColumn, i), i += 4, l.f(e, n.positionLineNumber, i), i += 4, l.f(e, n.positionColumn, i), i += 4;\n            return i\n        }\n        static _readSelections(e, t, i) {\n            var n = l.c(e, t);\n            t += 4;\n            for (let c = 0; c < n; c++) {\n                var r = l.c(e, t);\n                t += 4;\n                var s = l.c(e, t);\n                t += 4;\n                var a = l.c(e, t);\n                t += 4;\n                var d = l.c(e, t);\n                t += 4, i.push(new o.a(r, s, a, d))\n            }\n            return t\n        }\n        serialize() {\n            let e = 10 + h._writeSelectionsSize(this.beforeCursorState) + h._writeSelectionsSize(this.afterCursorState) + 4;\n            for (const t of this.changes) e += t.writeSize();\n            var t = new Uint8Array(e);\n            let i = 0;\n            l.f(t, this.beforeVersionId, i), i += 4, l.f(t, this.afterVersionId, i), i += 4, l.g(t, this.beforeEOL, i), i += 1, l.g(t, this.afterEOL, i), i += 1, i = h._writeSelections(t, this.beforeCursorState, i), i = h._writeSelections(t, this.afterCursorState, i), l.f(t, this.changes.length, i), i += 4;\n            for (const e of this.changes) i = e.write(t, i);\n            return t.buffer\n        }\n        static deserialize(e) {\n            var t = new Uint8Array(e);\n            let i = 0;\n            var n = l.c(t, i);\n            i += 4;\n            var r = l.c(t, i);\n            i += 4;\n            var o = l.d(t, i);\n            i += 1;\n            var s = l.d(t, i);\n            i += 1;\n            var d = [];\n            i = h._readSelections(t, i, d), e = [], i = h._readSelections(t, i, e);\n            var c = l.c(t, i);\n            i += 4;\n            var u = [];\n            for (let e = 0; e < c; e++) i = a.a.read(t, i, u);\n            return new h(n, r, o, s, d, e, u)\n        }\n    }\n    class u {\n        constructor(e, t) {\n            this.model = e, this._data = h.create(e, t)\n        }\n        get type() {\n            return 0\n        }\n        get resource() {\n            return s.a.isUri(this.model) ? this.model : this.model.uri\n        }\n        get label() {\n            return n.a(\"编辑\", \"Typing\")\n        }\n        toString() {\n            return (this._data instanceof h ? this._data : h.deserialize(this._data)).changes.map(e => e.toString()).join(\", \")\n        }\n        matchesResource(e) {\n            return (s.a.isUri(this.model) ? this.model : this.model.uri).toString() === e.toString()\n        }\n        setModel(e) {\n            this.model = e\n        }\n        canAppend(e) {\n            \"全局\" == e ? e = \"global\" : \"规则\" == e ? e = \"rule\" : \"直连\" == e ? e = \"direct\" : \"脚本\" == e && (e = \"script\");\n            return this.model === e && this._data instanceof h\n        }\n        append(e, t, i, n, r) {\n            this._data instanceof h && this._data.append(e, t, i, n, r)\n        }\n        close() {\n            this._data instanceof h && (this._data = this._data.serialize())\n        }\n        open() {\n            this._data instanceof h || (this._data = h.deserialize(this._data))\n        }\n        undo() {\n            if (s.a.isUri(this.model)) throw new Error(\"Invalid SingleModelEditStackElement\");\n            this._data instanceof h && (this._data = this._data.serialize());\n            var e = h.deserialize(this._data);\n            this.model._applyUndo(e.changes, e.beforeEOL, e.beforeVersionId, e.beforeCursorState)\n        }\n        redo() {\n            if (s.a.isUri(this.model)) throw new Error(\"Invalid SingleModelEditStackElement\");\n            this._data instanceof h && (this._data = this._data.serialize());\n            var e = h.deserialize(this._data);\n            this.model._applyRedo(e.changes, e.afterEOL, e.afterVersionId, e.afterCursorState)\n        }\n        heapSize() {\n            return this._data instanceof h && (this._data = this._data.serialize()), this._data.byteLength + 168\n        }\n    }\n\n    function p(e) {\n        return \"\\n\" === e.getEOL() ? 0 : 1\n    }\n\n    function g(e) {\n        return !!e && (e instanceof u || e instanceof class {\n            constructor(e, t) {\n                this.type = 1, this.label = e, this._isOpen = !0, this._editStackElementsArr = t.slice(0), this._editStackElementsMap = new Map;\n                for (const e of this._editStackElementsArr) {\n                    var i = c(e.resource);\n                    this._editStackElementsMap.set(i, e)\n                }\n                this._delegate = null\n            }\n            get resources() {\n                return this._editStackElementsArr.map(e => e.resource)\n            }\n            prepareUndoRedo() {\n                if (this._delegate) return this._delegate.prepareUndoRedo(this)\n            }\n            matchesResource(e) {\n                return e = c(e), this._editStackElementsMap.has(e)\n            }\n            setModel(e) {\n                var t = c(s.a.isUri(e) ? e : e.uri);\n                this._editStackElementsMap.has(t) && this._editStackElementsMap.get(t).setModel(e)\n            }\n            canAppend(e) {\n                if (!this._isOpen) return !1;\n                var t = c(e.uri);\n                if (this._editStackElementsMap.has(t)) {\n                    return this._editStackElementsMap.get(t).canAppend(e)\n                }\n                return !1\n            }\n            append(e, t, i, n, r) {\n                var o = c(e.uri);\n                this._editStackElementsMap.get(o).append(e, t, i, n, r)\n            }\n            close() {\n                this._isOpen = !1\n            }\n            open() {}\n            undo() {\n                this._isOpen = !1;\n                for (const e of this._editStackElementsArr) e.undo()\n            }\n            redo() {\n                for (const e of this._editStackElementsArr) e.redo()\n            }\n            heapSize(e) {\n                if (e = c(e), this._editStackElementsMap.has(e)) {\n                    return this._editStackElementsMap.get(e).heapSize()\n                }\n                return 0\n            }\n            split() {\n                return this._editStackElementsArr\n            }\n            toString() {\n                let e = [];\n                for (const t of this._editStackElementsArr) e.push(`${Object(d.b)(t.resource)}: ${t}`);\n                return `{${e.join(\", \")}}`\n            }\n        })\n    }\n    class f {\n        constructor(e, t) {\n            this._model = e, this._undoRedoService = t\n        }\n        pushStackElement() {\n            const e = this._undoRedoService.getLastElement(this._model.uri);\n            g(e) && e.close()\n        }\n        popStackElement() {\n            const e = this._undoRedoService.getLastElement(this._model.uri);\n            g(e) && e.open()\n        }\n        clear() {\n            this._undoRedoService.removeElements(this._model.uri)\n        }\n        _getOrCreateEditStackElement(e) {\n            const t = this._undoRedoService.getLastElement(this._model.uri);\n            return g(t) && t.canAppend(this._model) ? t : (e = new u(this._model, e), this._undoRedoService.pushElement(e), e)\n        }\n        pushEOL(e) {\n            const t = this._getOrCreateEditStackElement(null);\n            this._model.setEOL(e), t.append(this._model, [], p(this._model), this._model.getAlternativeVersionId(), null)\n        }\n        pushEditOperation(e, t, i) {\n            const n = this._getOrCreateEditStackElement(e),\n                r = this._model.applyEdits(t, !0);\n            i = f._computeCursorState(i, r);\n            const o = r.map((e, t) => ({\n                index: t,\n                textChange: e.textChange\n            }));\n            return o.sort((e, t) => e.textChange.oldPosition === t.textChange.oldPosition ? e.index - t.index : e.textChange.oldPosition - t.textChange.oldPosition), n.append(this._model, o.map(e => e.textChange), p(this._model), this._model.getAlternativeVersionId(), i), i\n        }\n        static _computeCursorState(e, t) {\n            try {\n                return e ? e(t) : null\n            } catch (e) {\n                return Object(r.f)(e), null\n            }\n        }\n    }\n}, function(e, t) {\n    e.exports = require(\"vuedraggable\")\n}, function(e, t, i) {\n    \"use strict\";\n    i.d(t, \"b\", (function() {\n        return o\n    })), i.d(t, \"a\", (function() {\n        return s\n    }));\n    var n = i(123);\n    const r = [];\n\n    function o(e, t, i) {\n        t instanceof n.a || (t = new n.a(t, [], i)), r.push([e, t])\n    }\n\n    function s() {\n        return r\n    }\n}, function(e, t, i) {\n    \"use strict\";\n    i.d(t, \"a\", (function() {\n        return o\n    }));\n    var n = i(2);\n    class r {\n        constructor(e, t, i, n, r, o) {\n            this._scrollStateBrand = void 0, e |= 0, n |= 0, r |= 0, o |= 0, (i = (t |= 0) < (this.rawScrollLeft = i |= 0) + (e = e < 0 ? 0 : e) ? t - e : i) < 0 && (i = 0), (o = r < (this.rawScrollTop = o) + (n = n < 0 ? 0 : n) ? r - n : o) < 0 && (o = 0), this.width = e, this.scrollWidth = t, this.scrollLeft = i, this.height = n, this.scrollHeight = r, this.scrollTop = o\n        }\n        equals(e) {\n            return this.rawScrollLeft === e.rawScrollLeft && this.rawScrollTop === e.rawScrollTop && this.width === e.width && this.scrollWidth === e.scrollWidth && this.scrollLeft === e.scrollLeft && this.height === e.height && this.scrollHeight === e.scrollHeight && this.scrollTop === e.scrollTop\n        }\n        withScrollDimensions(e, t) {\n            return new r((void 0 !== e.width ? e : this).width, (void 0 !== e.scrollWidth ? e : this).scrollWidth, t ? this.rawScrollLeft : this.scrollLeft, (void 0 !== e.height ? e : this).height, (void 0 !== e.scrollHeight ? e : this).scrollHeight, t ? this.rawScrollTop : this.scrollTop)\n        }\n        withScrollPosition(e) {\n            return new r(this.width, this.scrollWidth, void 0 !== e.scrollLeft ? e.scrollLeft : this.rawScrollLeft, this.height, this.scrollHeight, void 0 !== e.scrollTop ? e.scrollTop : this.rawScrollTop)\n        }\n        createScrollEvent(e, t) {\n            var i = this.width !== e.width,\n                n = this.scrollWidth !== e.scrollWidth,\n                r = this.scrollLeft !== e.scrollLeft,\n                o = this.height !== e.height,\n                s = this.scrollHeight !== e.scrollHeight,\n                a = this.scrollTop !== e.scrollTop;\n            return {\n                inSmoothScrolling: t,\n                oldWidth: e.width,\n                oldScrollWidth: e.scrollWidth,\n                oldScrollLeft: e.scrollLeft,\n                width: this.width,\n                scrollWidth: this.scrollWidth,\n                scrollLeft: this.scrollLeft,\n                oldHeight: e.height,\n                oldScrollHeight: e.scrollHeight,\n                oldScrollTop: e.scrollTop,\n                height: this.height,\n                scrollHeight: this.scrollHeight,\n                scrollTop: this.scrollTop,\n                widthChanged: i,\n                scrollWidthChanged: n,\n                scrollLeftChanged: r,\n                heightChanged: o,\n                scrollHeightChanged: s,\n                scrollTopChanged: a\n            }\n        }\n    }\n    class o extends i(4).a {\n        constructor(e, t) {\n            super(), this._scrollableBrand = void 0, this._onScroll = this._register(new n.b), this.onScroll = this._onScroll.event, this._smoothScrollDuration = e, this._scheduleAtNextAnimationFrame = t, this._state = new r(0, 0, 0, 0, 0, 0), this._smoothScrolling = null\n        }\n        dispose() {\n            this._smoothScrolling && (this._smoothScrolling.dispose(), this._smoothScrolling = null), super.dispose()\n        }\n        setSmoothScrollDuration(e) {\n            this._smoothScrollDuration = e\n        }\n        validateScrollPosition(e) {\n            return this._state.withScrollPosition(e)\n        }\n        getScrollDimensions() {\n            return this._state\n        }\n        setScrollDimensions(e, t) {\n            t = this._state.withScrollDimensions(e, t), this._setState(t, Boolean(this._smoothScrolling)), this._smoothScrolling && this._smoothScrolling.acceptScrollDimensions(this._state)\n        }\n        getFutureScrollPosition() {\n            return this._smoothScrolling ? this._smoothScrolling.to : this._state\n        }\n        getCurrentScrollPosition() {\n            return this._state\n        }\n        setScrollPositionNow(e) {\n            e = this._state.withScrollPosition(e), this._smoothScrolling && (this._smoothScrolling.dispose(), this._smoothScrolling = null), this._setState(e, !1)\n        }\n        setScrollPositionSmooth(e, t) {\n            if (0 === this._smoothScrollDuration) return this.setScrollPositionNow(e);\n            if (this._smoothScrolling) {\n                e = {\n                    scrollLeft: (void 0 === e.scrollLeft ? this._smoothScrolling.to : e).scrollLeft,\n                    scrollTop: (void 0 === e.scrollTop ? this._smoothScrolling.to : e).scrollTop\n                };\n                var i = this._state.withScrollPosition(e);\n                if (this._smoothScrolling.to.scrollLeft === i.scrollLeft && this._smoothScrolling.to.scrollTop === i.scrollTop) return;\n                let n;\n                n = t ? new l(this._smoothScrolling.from, i, this._smoothScrolling.startTime, this._smoothScrolling.duration) : this._smoothScrolling.combine(this._state, i, this._smoothScrollDuration), this._smoothScrolling.dispose(), this._smoothScrolling = n\n            } else e = this._state.withScrollPosition(e), this._smoothScrolling = l.start(this._state, e, this._smoothScrollDuration);\n            this._smoothScrolling.animationFrameDisposable = this._scheduleAtNextAnimationFrame(() => {\n                this._smoothScrolling && (this._smoothScrolling.animationFrameDisposable = null, this._performSmoothScrolling())\n            })\n        }\n        _performSmoothScrolling() {\n            if (this._smoothScrolling) {\n                var e = this._smoothScrolling.tick(),\n                    t = this._state.withScrollPosition(e);\n                if (this._setState(t, !0), this._smoothScrolling) return e.isDone ? (this._smoothScrolling.dispose(), void(this._smoothScrolling = null)) : void(this._smoothScrolling.animationFrameDisposable = this._scheduleAtNextAnimationFrame(() => {\n                    this._smoothScrolling && (this._smoothScrolling.animationFrameDisposable = null, this._performSmoothScrolling())\n                }))\n            }\n        }\n        _setState(e, t) {\n            const i = this._state;\n            i.equals(e) || (this._state = e, this._onScroll.fire(this._state.createScrollEvent(i, t)))\n        }\n    }\n    class s {\n        constructor(e, t, i) {\n            this.scrollLeft = e, this.scrollTop = t, this.isDone = i\n        }\n    }\n\n    function a(e, t) {\n        const i = t - e;\n        return function(t) {\n            return e + i * (1 - function(e) {\n                return Math.pow(e, 3)\n            }(1 - t))\n        }\n    }\n    class l {\n        constructor(e, t, i, n) {\n            this.from = e, this.to = t, this.duration = n, this.startTime = i, this.animationFrameDisposable = null, this._initAnimations()\n        }\n        _initAnimations() {\n            this.scrollLeft = this._initAnimation(this.from.scrollLeft, this.to.scrollLeft, this.to.width), this.scrollTop = this._initAnimation(this.from.scrollTop, this.to.scrollTop, this.to.height)\n        }\n        _initAnimation(e, t, i) {\n            var n, r, o;\n            if (2.5 * i < Math.abs(e - t)) {\n                let s, l;\n                return l = e < t ? (s = e + .75 * i, t - .75 * i) : (s = e - .75 * i, t + .75 * i), n = a(e, s), r = a(l, t), o = .33,\n                    function(e) {\n                        return e < o ? n(e / o) : r((e - o) / (1 - o))\n                    }\n            }\n            return a(e, t)\n        }\n        dispose() {\n            null !== this.animationFrameDisposable && (this.animationFrameDisposable.dispose(), this.animationFrameDisposable = null)\n        }\n        acceptScrollDimensions(e) {\n            this.to = e.withScrollPosition(this.to), this._initAnimations()\n        }\n        tick() {\n            return this._tick(Date.now())\n        }\n        _tick(e) {\n            var t = (e - this.startTime) / this.duration;\n            return t < 1 ? (e = this.scrollLeft(t), t = this.scrollTop(t), new s(e, t, !1)) : new s(this.to.scrollLeft, this.to.scrollTop, !0)\n        }\n        combine(e, t, i) {\n            return l.start(e, t, i)\n        }\n        static start(e, t, i) {\n            i += 10;\n            var n = Date.now() - 10;\n            return new l(e, t, n, i)\n        }\n    }\n}, function(e, t, i) {\n    \"use strict\";\n    var n = {\n        name: \"HintView\",\n        props: {\n            hint: {\n                type: String,\n                required: !0\n            },\n            position: {\n                type: String,\n                default: \"top\",\n                validate: function(e) {\n                    return [\"top\", \"bottom\", \"left\", \"right\"].includes(e)\n                }\n            }\n        },\n        data: function() {\n            return {\n                timeoutID: null,\n                isShowHint: !1\n            }\n        },\n        computed: {},\n        methods: {\n            startCounting: function() {\n                var e = this;\n                this.timeoutID = setTimeout((function() {\n                    e.isShowHint = !0\n                }), 1e3)\n            },\n            stopCounting: function() {\n                this.timeoutID && (clearTimeout(this.timeoutID), this.timeoutID = null, this.isShowHint = !1)\n            }\n        },\n        updated: function() {\n            var e = this;\n            this.$nextTick((function() {\n                try {\n                    var t = e.$refs.hint.getBoundingClientRect(),\n                        i = t.x,\n                        n = t.y,\n                        r = t.width,\n                        o = t.height,\n                        s = e.$refs[\"hint-text\"],\n                        a = null == s ? void 0 : s.getBoundingClientRect(),\n                        l = (a.x, a.y, a.width),\n                        d = a.height;\n                    \"top\" === e.position ? (s.style.top = \"\".concat(n - d - 5, \"px\"), s.style.left = \"\".concat(i - l / 2 + r / 2, \"px\")) : \"bottom\" === e.position ? (s.style.top = \"\".concat(n + o + 5, \"px\"), s.style.left = \"\".concat(i - l / 2 + r / 2, \"px\")) : \"left\" === e.position ? (s.style.top = \"\".concat(n - d / 2 + o / 2, \"px\"), s.style.left = \"\".concat(i - l - 5, \"px\")) : \"right\" === e.position && (s.style.top = \"\".concat(n - d / 2 + o / 2, \"px\"), s.style.left = \"\".concat(i + r + 5, \"px\"))\n                } catch (t) {}\n            }))\n        }\n    };\n    i(304), i = i(30), n = Object(i.a)(n, (function() {\n        var e = this,\n            t = e.$createElement;\n        return (t = e._self._c || t)(\"div\", e._g({\n            ref: \"hint\",\n            staticClass: \"main-hint-view\",\n            on: {\n                mouseenter: e.startCounting,\n                mouseleave: e.stopCounting\n            }\n        }, e.$listeners), [e.isShowHint ? t(\"span\", {\n            ref: \"hint-text\",\n            staticClass: \"hint\"\n        }, [e._v(e._s(e.hint))]) : e._e(), e._v(\" \"), e._t(\"default\")], 2)\n    }), [], !1, null, \"0110e93a\", null);\n    t.a = n.exports\n}, function(e, t, i) {\n    \"use strict\";\n    i.d(t, \"b\", (function() {\n        return u\n    })), i.d(t, \"a\", (function() {\n        return p\n    }));\n    var n = i(37),\n        r = i(108),\n        o = i(1),\n        s = i(50),\n        a = i(71),\n        l = i(4),\n        d = i(9),\n        c = i(17),\n        h = (t = i(239), i(0));\n    class u extends l.a {\n        constructor(e, t, i = {}) {\n            super(), this.options = i, this._context = e || this, (this._action = t) instanceof a.a && this._register(t.onDidChange(e => {\n                this.element && this.handleActionChangeEvent(e)\n            }))\n        }\n        handleActionChangeEvent(e) {\n            void 0 !== e.enabled && this.updateEnabled(), void 0 !== e.checked && this.updateChecked(), void 0 !== e.class && this.updateClass(), void 0 !== e.label && (this.updateLabel(), this.updateTooltip()), void 0 !== e.tooltip && this.updateTooltip()\n        }\n        get actionRunner() {\n            return this._actionRunner || (this._actionRunner = this._register(new a.b)), this._actionRunner\n        }\n        set actionRunner(e) {\n            this._actionRunner = e\n        }\n        getAction() {\n            return this._action\n        }\n        isEnabled() {\n            return this._action.enabled\n        }\n        setActionContext(e) {\n            this._context = e\n        }\n        render(e) {\n            const t = this.element = e;\n            this._register(s.b.addTarget(e));\n            const i = this.options && this.options.draggable;\n            i && (e.draggable = !0, n.g && this._register(Object(o.g)(e, o.d.DRAG_START, e => null === (e = e.dataTransfer) || void 0 === e ? void 0 : e.setData(r.a.TEXT, this._action.label)))), this._register(Object(o.g)(t, s.a.Tap, e => this.onClick(e, !0))), this._register(Object(o.g)(t, o.d.MOUSE_DOWN, e => {\n                i || o.c.stop(e, !0), this._action.enabled && 0 === e.button && t.classList.add(\"active\")\n            })), d.f && this._register(Object(o.g)(t, o.d.CONTEXT_MENU, e => {\n                0 === e.button && !0 === e.ctrlKey && this.onClick(e)\n            })), this._register(Object(o.g)(t, o.d.CLICK, e => {\n                o.c.stop(e, !0), this.options && this.options.isMenu || this.onClick(e)\n            })), this._register(Object(o.g)(t, o.d.DBLCLICK, e => {\n                o.c.stop(e, !0)\n            })), [o.d.MOUSE_UP, o.d.MOUSE_OUT].forEach(e => {\n                this._register(Object(o.g)(t, e, e => {\n                    o.c.stop(e), t.classList.remove(\"active\")\n                }))\n            })\n        }\n        onClick(e, t = !1) {\n            var i;\n            o.c.stop(e, !0), t = c.m(this._context) ? null !== (i = this.options) && void 0 !== i && i.useEventAsContext ? e : {\n                preserveFocus: t\n            } : this._context, this.actionRunner.run(this._action, t)\n        }\n        focus() {\n            this.element && (this.element.tabIndex = 0, this.element.focus(), this.element.classList.add(\"focused\"))\n        }\n        blur() {\n            this.element && (this.element.blur(), this.element.tabIndex = -1, this.element.classList.remove(\"focused\"))\n        }\n        setFocusable(e) {\n            this.element && (this.element.tabIndex = e ? 0 : -1)\n        }\n        get trapsArrowNavigation() {\n            return !1\n        }\n        updateEnabled() {}\n        updateLabel() {}\n        updateTooltip() {}\n        updateClass() {}\n        updateChecked() {}\n        dispose() {\n            this.element && (this.element.remove(), this.element = void 0), super.dispose()\n        }\n    }\n    class p extends u {\n        constructor(e, t, i = {}) {\n            super(e, t, i), this.options = i, this.options.icon = void 0 !== i.icon && i.icon, this.options.label = void 0 === i.label || i.label, this.cssClass = \"\"\n        }\n        render(e) {\n            super.render(e), this.element && (this.label = Object(o.n)(this.element, Object(o.a)(\"a.action-label\"))), this.label && (this._action.id === a.d.ID ? this.label.setAttribute(\"role\", \"presentation\") : this.options.isMenu ? this.label.setAttribute(\"role\", \"menuitem\") : this.label.setAttribute(\"role\", \"button\")), this.options.label && this.options.keybinding && this.element && (Object(o.n)(this.element, Object(o.a)(\"span.keybinding\")).textContent = this.options.keybinding), this.updateClass(), this.updateLabel(), this.updateTooltip(), this.updateEnabled(), this.updateChecked()\n        }\n        focus() {\n            this.label && (this.label.tabIndex = 0, this.label.focus())\n        }\n        blur() {\n            this.label && (this.label.tabIndex = -1)\n        }\n        setFocusable(e) {\n            this.label && (this.label.tabIndex = e ? 0 : -1)\n        }\n        updateLabel() {\n            this.options.label && this.label && (this.label.textContent = this.getAction().label)\n        }\n        updateTooltip() {\n            let e = null;\n            this.getAction().tooltip ? e = this.getAction().tooltip : !this.options.label && this.getAction().label && this.options.icon && (e = this.getAction().label, this.options.keybinding && (e = h.a({\n                key: \"titleLabel\",\n                comment: [\"action title\", \"action keybinding\"]\n            }, \"{0} ({1})\", e, this.options.keybinding))), e && this.label && (this.label.title = e)\n        }\n        updateClass() {\n            this.cssClass && this.label && this.label.classList.remove(...this.cssClass.split(\" \")), this.options.icon ? (this.cssClass = this.getAction().class, this.label && (this.label.classList.add(\"codicon\"), this.cssClass && this.label.classList.add(...this.cssClass.split(\" \"))), this.updateEnabled()) : this.label && this.label.classList.remove(\"codicon\")\n        }\n        updateEnabled() {\n            this.getAction().enabled ? (this.label && (this.label.removeAttribute(\"aria-disabled\"), this.label.classList.remove(\"disabled\")), this.element && this.element.classList.remove(\"disabled\")) : (this.label && (this.label.setAttribute(\"aria-disabled\", \"true\"), this.label.classList.add(\"disabled\")), this.element && this.element.classList.add(\"disabled\"))\n        }\n        updateChecked() {\n            this.label && (this.getAction().checked ? this.label.classList.add(\"checked\") : this.label.classList.remove(\"checked\"))\n        }\n    }\n}, function(e, t, i) {\n    \"use strict\";\n    i.d(t, \"a\", (function() {\n        return p\n    }));\n    var n = i(51),\n        r = i(2),\n        o = i(92),\n        s = i(39),\n        a = i(8),\n        l = i(5),\n        d = i(36),\n        c = i(86),\n        h = i(49);\n    class u {\n        static chord(e, t) {\n            return Object(o.c)(e, t)\n        }\n    }\n\n    function p() {\n        return {\n            editor: void 0,\n            languages: void 0,\n            CancellationTokenSource: n.b,\n            Emitter: r.b,\n            KeyCode: h.q,\n            KeyMod: u,\n            Position: a.a,\n            Range: l.a,\n            Selection: d.a,\n            SelectionDirection: h.B,\n            MarkerSeverity: h.r,\n            MarkerTag: h.s,\n            Uri: s.a,\n            Token: c.a\n        }\n    }\n    u.CtrlCmd = 2048, u.Shift = 1024, u.Alt = 512, u.WinCtrl = 256\n}, function(e, t, i) {\n    \"use strict\";\n    i.d(t, \"b\", (function() {\n        return r\n    })), i.d(t, \"a\", (function() {\n        return o\n    }));\n    var n = i(75);\n    class r {\n        constructor(e, t) {\n            this._prefixSumIndexOfResultBrand = void 0, this.index = e, this.remainder = t\n        }\n    }\n    class o {\n        constructor(e) {\n            this.values = e, this.prefixSum = new Uint32Array(e.length), this.prefixSumValidIndex = new Int32Array(1), this.prefixSumValidIndex[0] = -1\n        }\n        insertValues(e, t) {\n            e = Object(n.a)(e);\n            const i = this.values,\n                r = this.prefixSum;\n            var o = t.length;\n            return 0 !== o && (this.values = new Uint32Array(i.length + o), this.values.set(i.subarray(0, e), 0), this.values.set(i.subarray(e), e + o), this.values.set(t, e), e - 1 < this.prefixSumValidIndex[0] && (this.prefixSumValidIndex[0] = e - 1), this.prefixSum = new Uint32Array(this.values.length), 0 <= this.prefixSumValidIndex[0] && this.prefixSum.set(r.subarray(0, this.prefixSumValidIndex[0] + 1)), !0)\n        }\n        changeValue(e, t) {\n            return e = Object(n.a)(e), t = Object(n.a)(t), this.values[e] !== t && (this.values[e] = t, e - 1 < this.prefixSumValidIndex[0] && (this.prefixSumValidIndex[0] = e - 1), !0)\n        }\n        removeValues(e, t) {\n            e = Object(n.a)(e), t = Object(n.a)(t);\n            const i = this.values,\n                r = this.prefixSum;\n            if (e >= i.length) return !1;\n            var o = i.length - e;\n            return 0 !== (t = o <= t ? o : t) && (this.values = new Uint32Array(i.length - t), this.values.set(i.subarray(0, e), 0), this.values.set(i.subarray(e + t), e), this.prefixSum = new Uint32Array(this.values.length), e - 1 < this.prefixSumValidIndex[0] && (this.prefixSumValidIndex[0] = e - 1), 0 <= this.prefixSumValidIndex[0] && this.prefixSum.set(r.subarray(0, this.prefixSumValidIndex[0] + 1)), !0)\n        }\n        getTotalSum() {\n            return 0 === this.values.length ? 0 : this._getPrefixSum(this.values.length - 1)\n        }\n        getPrefixSum(e) {\n            return e < 0 ? 0 : (e = Object(n.a)(e), this._getPrefixSum(e))\n        }\n        _getPrefixSum(e) {\n            if (e <= this.prefixSumValidIndex[0]) return this.prefixSum[e];\n            let t = this.prefixSumValidIndex[0] + 1;\n            0 === t && (this.prefixSum[0] = this.values[0], t++), e >= this.values.length && (e = this.values.length - 1);\n            for (let i = t; i <= e; i++) this.prefixSum[i] = this.prefixSum[i - 1] + this.values[i];\n            return this.prefixSumValidIndex[0] = Math.max(this.prefixSumValidIndex[0], e), this.prefixSum[e]\n        }\n        getIndexOf(e) {\n            e = Math.floor(e), this.getTotalSum();\n            let t = 0,\n                i = this.values.length - 1,\n                n = 0;\n            var o;\n            let s = 0;\n            for (; t <= i;)\n                if (n = t + (i - t) / 2 | 0, s = (o = this.prefixSum[n]) - this.values[n], e < s) i = n - 1;\n                else {\n                    if (!(o <= e)) break;\n                    t = n + 1\n                } return new r(n, e - s)\n        }\n    }\n}, function(e, t, i) {\n    \"use strict\";\n    i.d(t, \"a\", (function() {\n        return n\n    })), t = i(37);\n    const n = {\n        clipboard: {\n            writeText: (i = i(9)).g || document.queryCommandSupported && document.queryCommandSupported(\"copy\") || !!(navigator && navigator.clipboard && navigator.clipboard.writeText),\n            readText: i.g || !!(navigator && navigator.clipboard && navigator.clipboard.readText)\n        },\n        keyboard: i.g || t.i ? 0 : navigator.keyboard || t.h ? 1 : 2,\n        touch: \"ontouchstart\" in window || 0 < navigator.maxTouchPoints,\n        pointerEvents: window.PointerEvent && (\"ontouchstart\" in window || 0 < window.navigator.maxTouchPoints || 0 < navigator.maxTouchPoints)\n    }\n}, function(e, t, i) {\n    \"use strict\";\n    i.d(t, \"a\", (function() {\n        return n\n    })), i = i(26);\n    const n = Object(i.c)(\"telemetryService\")\n}, function(e, t, i) {\n    \"use strict\";\n    i.d(t, \"b\", (function() {\n        return c\n    })), i.d(t, \"c\", (function() {\n        return h\n    })), i.d(t, \"a\", (function() {\n        return u\n    }));\n    var n = i(170),\n        r = i(54),\n        o = i(62),\n        s = i(6),\n        a = i(39);\n\n    function l(e) {\n        return Object(a.b)(e, !0)\n    }\n    const d = new class {\n        constructor(e) {\n            this._ignorePathCasing = e\n        }\n        compare(e, t, i = !1) {\n            return e === t ? 0 : Object(s.f)(this.getComparisonKey(e, i), this.getComparisonKey(t, i))\n        }\n        isEqual(e, t, i = !1) {\n            return e === t || !(!e || !t) && this.getComparisonKey(e, i) === this.getComparisonKey(t, i)\n        }\n        getComparisonKey(e, t = !1) {\n            return e.with({\n                path: this._ignorePathCasing(e) ? e.path.toLowerCase() : void 0,\n                fragment: t ? null : void 0\n            }).toString()\n        }\n        joinPath(e, ...t) {\n            return a.a.joinPath(e, ...t)\n        }\n        basenameOrAuthority(e) {\n            return c(e) || e.authority\n        }\n        basename(e) {\n            return o.e.basename(e.path)\n        }\n        dirname(e) {\n            if (0 === e.path.length) return e;\n            let t;\n            return e.scheme === r.c.file ? t = a.a.file(o.b(l(e))).path : (t = o.e.dirname(e.path), e.authority && t.length && 47 !== t.charCodeAt(0) && (console.error(`dirname(\"${e.toString})) resulted in a relative path`), t = \"/\")), e.with({\n                path: t\n            })\n        }\n        normalizePath(e) {\n            if (!e.path.length) return e;\n            let t;\n            return t = e.scheme === r.c.file ? a.a.file(o.d(l(e))).path : o.e.normalize(e.path), e.with({\n                path: t\n            })\n        }\n        resolvePath(e, t) {\n            return e.scheme !== r.c.file ? (t = n.b(t), e.with({\n                path: o.e.resolve(e.path, t)\n            })) : (t = a.a.file(o.g(l(e), t)), e.with({\n                authority: t.authority,\n                path: t.path\n            }))\n        }\n    }(() => !1);\n    d.isEqual.bind(d), d.basenameOrAuthority.bind(d);\n    const c = d.basename.bind(d);\n    d.dirname.bind(d), d.joinPath.bind(d);\n    const h = d.normalizePath.bind(d);\n    var u, p;\n    d.resolvePath.bind(d), (p = u = u || {}).META_DATA_LABEL = \"label\", p.META_DATA_DESCRIPTION = \"description\", p.META_DATA_SIZE = \"size\", p.META_DATA_MIME = \"mime\", p.parseMetaData = function(e) {\n        const t = new Map;\n        return e.path.substring(e.path.indexOf(\";\") + 1, e.path.lastIndexOf(\";\")).split(\";\").forEach(e => {\n            var [i, e] = e.split(\":\");\n            i && e && t.set(i, e)\n        }), (e = e.path.substring(0, e.path.indexOf(\";\"))) && t.set(p.META_DATA_MIME, e), t\n    }\n}, function(e, t, i) {\n    \"use strict\";\n    i.d(t, \"a\", (function() {\n        return d\n    }));\n    var n = i(6),\n        r = i(68),\n        o = i(14),\n        s = i(74),\n        a = i(5),\n        l = i(8);\n    class d {\n        static deleteRight(e, t, i, n) {\n            let o = [],\n                l = 3 !== e;\n            for (let e = 0, h = n.length; e < h; e++) {\n                const h = n[e];\n                let u = h;\n                var d, c;\n                u.isEmpty() && (d = h.getPosition(), c = s.a.right(t, i, d), u = new a.a(c.lineNumber, c.column, d.lineNumber, d.column)), u.isEmpty() ? o[e] = null : (u.startLineNumber !== u.endLineNumber && (l = !0), o[e] = new r.a(u, \"\"))\n            }\n            return [l, o]\n        }\n        static isAutoClosingPairDelete(e, t, i, n, r, s, a) {\n            if (\"never\" === t && \"never\" === i) return !1;\n            if (\"never\" === e) return !1;\n            for (let p = 0, g = s.length; p < g; p++) {\n                const g = s[p];\n                var l = g.getPosition();\n                if (!g.isEmpty()) return !1;\n                const f = r.getLineContent(l.lineNumber);\n                if (l.column < 2 || l.column >= f.length + 1) return !1;\n                var d = f.charAt(l.column - 2),\n                    c = n.get(d);\n                if (!c) return !1;\n                if (Object(o.g)(d)) {\n                    if (\"never\" === i) return !1\n                } else if (\"never\" === t) return !1;\n                var h = f.charAt(l.column - 1);\n                let m = !1;\n                for (const e of c) e.open === d && e.close === h && (m = !0);\n                if (!m) return !1;\n                if (\"auto\" === e) {\n                    let e = !1;\n                    for (let t = 0, i = a.length; t < i; t++) {\n                        var u = a[t];\n                        if (l.lineNumber === u.startLineNumber && l.column === u.startColumn) {\n                            e = !0;\n                            break\n                        }\n                    }\n                    if (!e) return !1\n                }\n            }\n            return !0\n        }\n        static _runAutoClosingPairDelete(e, t, i) {\n            let n = [];\n            for (let e = 0, t = i.length; e < t; e++) {\n                var o = i[e].getPosition();\n                o = new a.a(o.lineNumber, o.column - 1, o.lineNumber, o.column + 1);\n                n[e] = new r.a(o, \"\")\n            }\n            return [!0, n]\n        }\n        static deleteLeft(e, t, i, n, o) {\n            if (this.isAutoClosingPairDelete(t.autoClosingDelete, t.autoClosingBrackets, t.autoClosingQuotes, t.autoClosingPairs.autoClosingPairsOpenByEnd, i, n, o)) return this._runAutoClosingPairDelete(t, i, n);\n            const s = [];\n            let a = 2 !== e;\n            for (let e = 0, o = n.length; e < o; e++) {\n                let o = d.getDeleteRange(n[e], i, t);\n                o.isEmpty() ? s[e] = null : (o.startLineNumber !== o.endLineNumber && (a = !0), s[e] = new r.a(o, \"\"))\n            }\n            return [a, s]\n        }\n        static getDeleteRange(e, t, i) {\n            if (!e.isEmpty()) return e;\n            var r = e.getPosition();\n            if (i.useTabStops && 1 < r.column) {\n                var s = t.getLineContent(r.lineNumber);\n                e = -1 === (e = n.u(s)) ? s.length + 1 : e + 1;\n                if (r.column <= e) return e = o.a.visibleColumnFromColumn2(i, t, r), e = o.a.prevIndentTabStop(e, i.indentSize), e = o.a.columnFromVisibleColumn2(i, t, r.lineNumber, e), new a.a(r.lineNumber, e, r.lineNumber, r.column)\n            }\n            return a.a.fromPositions(d.getPositionAfterDeleteLeft(r, t), r)\n        }\n        static getPositionAfterDeleteLeft(e, t) {\n            if (1 < e.column) {\n                var i = n.y(e.column - 1, t.getLineContent(e.lineNumber));\n                return e.with(void 0, i + 1)\n            }\n            return 1 < e.lineNumber ? (i = e.lineNumber - 1, new l.a(i, t.getLineMaxColumn(i))) : e\n        }\n        static cut(e, t, i) {\n            let n = [],\n                s = null;\n            i.sort((e, t) => l.a.compare(e.getStartPosition(), t.getEndPosition()));\n            for (let o = 0, l = i.length; o < l; o++) {\n                const l = i[o];\n                if (l.isEmpty())\n                    if (e.emptySelectionClipboard) {\n                        var d = l.getPosition();\n                        let e, i, c, h;\n                        h = d.lineNumber < t.getLineCount() ? (e = d.lineNumber, i = 1, c = d.lineNumber + 1, 1) : (i = 1 < d.lineNumber && (null == s ? void 0 : s.endLineNumber) !== d.lineNumber ? (e = d.lineNumber - 1, t.getLineMaxColumn(d.lineNumber - 1)) : (e = d.lineNumber, 1), c = d.lineNumber, t.getLineMaxColumn(d.lineNumber));\n                        let u = new a.a(e, i, c, h);\n                        s = u, u.isEmpty() ? n[o] = null : n[o] = new r.a(u, \"\")\n                    } else n[o] = null;\n                else n[o] = new r.a(l, \"\")\n            }\n            return new o.e(0, n, {\n                shouldPushStackElementBefore: !0,\n                shouldPushStackElementAfter: !0\n            })\n        }\n    }\n}, function(e, t, i) {\n    \"use strict\";\n    i.d(t, \"a\", (function() {\n        return m\n    }));\n    var n = i(1),\n        r = i(53),\n        o = i(50),\n        s = i(32),\n        a = i(64),\n        l = i(2),\n        d = i(4),\n        c = i(9);\n    t = i(376), i = function(e, t, i, n) {\n        var r, o = arguments.length,\n            s = o < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n);\n        else\n            for (var a = e.length - 1; 0 <= a; a--)(r = e[a]) && (s = (o < 3 ? r(s) : 3 < o ? r(t, i, s) : r(t, i)) || s);\n        return 3 < o && s && Object.defineProperty(t, i, s), s\n    };\n    (t = {}).North = \"north\", t.South = \"south\", t.East = \"east\", t.West = \"west\";\n    const h = new l.b,\n        u = new l.b;\n    class p {\n        constructor() {\n            this.disposables = new d.b\n        }\n        get onPointerMove() {\n            return this.disposables.add(new r.a(window, \"mousemove\")).event\n        }\n        get onPointerUp() {\n            return this.disposables.add(new r.a(window, \"mouseup\")).event\n        }\n        dispose() {\n            this.disposables.dispose()\n        }\n    }\n    i([a.a], p.prototype, \"onPointerMove\", null), i([a.a], p.prototype, \"onPointerUp\", null);\n    class g {\n        constructor(e) {\n            this.el = e, this.disposables = new d.b\n        }\n        get onPointerMove() {\n            return this.disposables.add(new r.a(this.el, o.a.Change)).event\n        }\n        get onPointerUp() {\n            return this.disposables.add(new r.a(this.el, o.a.End)).event\n        }\n        dispose() {\n            this.disposables.dispose()\n        }\n    }\n    i([a.a], g.prototype, \"onPointerMove\", null), i([a.a], g.prototype, \"onPointerUp\", null);\n    class f {\n        constructor(e) {\n            this.factory = e\n        }\n        get onPointerMove() {\n            return this.factory.onPointerMove\n        }\n        get onPointerUp() {\n            return this.factory.onPointerUp\n        }\n        dispose() {}\n    }\n    i([a.a], f.prototype, \"onPointerMove\", null), i([a.a], f.prototype, \"onPointerUp\", null);\n    class m extends d.a {\n        constructor(e, t, i) {\n            super(), this.hoverDelay = 300, this.hoverDelayer = this._register(new s.a(this.hoverDelay)), this._state = 3, this._onDidEnablementChange = this._register(new l.b), this.onDidEnablementChange = this._onDidEnablementChange.event, this._onDidStart = this._register(new l.b), this.onDidStart = this._onDidStart.event, this._onDidChange = this._register(new l.b), this.onDidChange = this._onDidChange.event, this._onDidReset = this._register(new l.b), this.onDidReset = this._onDidReset.event, this._onDidEnd = this._register(new l.b), this.onDidEnd = this._onDidEnd.event, this.linkedSash = void 0, this.orthogonalStartSashDisposables = this._register(new d.b), this.orthogonalStartDragHandleDisposables = this._register(new d.b), this.orthogonalEndSashDisposables = this._register(new d.b), this.orthogonalEndDragHandleDisposables = this._register(new d.b), this.el = Object(n.n)(e, Object(n.a)(\".monaco-sash\")), i.orthogonalEdge && this.el.classList.add(\"orthogonal-edge-\" + i.orthogonalEdge), c.f && this.el.classList.add(\"mac\");\n            const a = this._register(new r.a(this.el, \"mousedown\")).event;\n            this._register(a(e => this.onPointerStart(e, new p), this));\n            const f = this._register(new r.a(this.el, \"dblclick\")).event;\n            this._register(f(this.onPointerDoublePress, this));\n            const v = this._register(new r.a(this.el, \"mouseenter\")).event;\n            this._register(v(() => m.onMouseEnter(this)));\n            const b = this._register(new r.a(this.el, \"mouseleave\")).event;\n            this._register(b(() => m.onMouseLeave(this))), this._register(o.b.addTarget(this.el));\n            const _ = l.c.map(this._register(new r.a(this.el, o.a.Start)).event, e => Object.assign(Object.assign({}, e), {\n                target: null !== (e = e.initialTarget) && void 0 !== e ? e : null\n            }));\n            this._register(_(e => this.onPointerStart(e, new g(this.el)), this)), e = this._register(new r.a(this.el, o.a.Tap)).event;\n            const w = l.c.map(l.c.filter(l.c.debounce(e, (e, t) => ({\n                event: t,\n                count: (null !== (e = null == e ? void 0 : e.count) && void 0 !== e ? e : 0) + 1\n            }), 250), ({\n                count: e\n            }) => 2 === e), ({\n                event: e\n            }) => Object.assign(Object.assign({}, e), {\n                target: null !== (e = e.initialTarget) && void 0 !== e ? e : null\n            }));\n            this._register(w(this.onPointerDoublePress, this)), \"number\" == typeof i.size ? (this.size = i.size, 0 === i.orientation ? this.el.style.width = this.size + \"px\" : this.el.style.height = this.size + \"px\") : (this.size = 4, this._register(h.event(e => {\n                this.size = e, this.layout()\n            }))), this._register(u.event(e => this.hoverDelay = e)), this.hidden = !1, this.layoutProvider = t, this.orthogonalStartSash = i.orthogonalStartSash, this.orthogonalEndSash = i.orthogonalEndSash, this.orientation = i.orientation || 0, 1 === this.orientation ? (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\", !1), this.layout()\n        }\n        get state() {\n            return this._state\n        }\n        set state(e) {\n            this._state !== e && (this.el.classList.toggle(\"disabled\", 0 === e), this.el.classList.toggle(\"minimum\", 1 === e), this.el.classList.toggle(\"maximum\", 2 === e), this._state = e, this._onDidEnablementChange.fire(e))\n        }\n        get orthogonalStartSash() {\n            return this._orthogonalStartSash\n        }\n        set orthogonalStartSash(e) {\n            var t;\n            this.orthogonalStartDragHandleDisposables.clear(), this.orthogonalStartSashDisposables.clear(), e && (t = t => {\n                this.orthogonalStartDragHandleDisposables.clear(), 0 !== t && (this._orthogonalStartDragHandle = Object(n.n)(this.el, Object(n.a)(\".orthogonal-drag-handle.start\")), this.orthogonalStartDragHandleDisposables.add(Object(d.i)(() => this._orthogonalStartDragHandle.remove())), this.orthogonalStartDragHandleDisposables.add(new r.a(this._orthogonalStartDragHandle, \"mouseenter\")).event(() => m.onMouseEnter(e), void 0, this.orthogonalStartDragHandleDisposables), this.orthogonalStartDragHandleDisposables.add(new r.a(this._orthogonalStartDragHandle, \"mouseleave\")).event(() => m.onMouseLeave(e), void 0, this.orthogonalStartDragHandleDisposables))\n            }, this.orthogonalStartSashDisposables.add(e.onDidEnablementChange(t, this)), t(e.state)), this._orthogonalStartSash = e\n        }\n        get orthogonalEndSash() {\n            return this._orthogonalEndSash\n        }\n        set orthogonalEndSash(e) {\n            var t;\n            this.orthogonalEndDragHandleDisposables.clear(), this.orthogonalEndSashDisposables.clear(), e && (t = t => {\n                this.orthogonalEndDragHandleDisposables.clear(), 0 !== t && (this._orthogonalEndDragHandle = Object(n.n)(this.el, Object(n.a)(\".orthogonal-drag-handle.end\")), this.orthogonalEndDragHandleDisposables.add(Object(d.i)(() => this._orthogonalEndDragHandle.remove())), this.orthogonalEndDragHandleDisposables.add(new r.a(this._orthogonalEndDragHandle, \"mouseenter\")).event(() => m.onMouseEnter(e), void 0, this.orthogonalEndDragHandleDisposables), this.orthogonalEndDragHandleDisposables.add(new r.a(this._orthogonalEndDragHandle, \"mouseleave\")).event(() => m.onMouseLeave(e), void 0, this.orthogonalEndDragHandleDisposables))\n            }, this.orthogonalEndSashDisposables.add(e.onDidEnablementChange(t, this)), t(e.state)), this._orthogonalEndSash = e\n        }\n        onPointerStart(e, t) {\n            n.c.stop(e);\n            let i = !1;\n            if (!e.__orthogonalSashEvent) {\n                const n = this.getOrthogonalSash(e);\n                n && (i = !0, e.__orthogonalSashEvent = !0, n.onPointerStart(e, new f(t)))\n            }\n            if (this.linkedSash && !e.__linkedSashEvent && (e.__linkedSashEvent = !0, this.linkedSash.onPointerStart(e, new f(t))), this.state) {\n                const r = Object(n.B)(\"iframe\");\n                for (const e of r) e.style.pointerEvents = \"none\";\n                const o = e.pageX,\n                    s = e.pageY,\n                    a = e.altKey;\n                e = {\n                    startX: o,\n                    currentX: o,\n                    startY: s,\n                    currentY: s,\n                    altKey: a\n                }, this.el.classList.add(\"active\"), this._onDidStart.fire(e);\n                const l = Object(n.t)(this.el);\n                e = () => {\n                    let e = \"\";\n                    e = i ? \"all-scroll\" : 1 === this.orientation ? 1 === this.state ? \"s-resize\" : 2 === this.state ? \"n-resize\" : c.f ? \"row-resize\" : \"ns-resize\" : 1 === this.state ? \"e-resize\" : 2 === this.state ? \"w-resize\" : c.f ? \"col-resize\" : \"ew-resize\", l.textContent = `* { cursor: ${e} !important; }`\n                };\n                const h = new d.b;\n                e(), i || this.onDidEnablementChange(e, null, h), t.onPointerMove(e => {\n                    n.c.stop(e, !1), e = {\n                        startX: o,\n                        currentX: e.pageX,\n                        startY: s,\n                        currentY: e.pageY,\n                        altKey: a\n                    }, this._onDidChange.fire(e)\n                }, null, h), t.onPointerUp(e => {\n                    n.c.stop(e, !1), this.el.removeChild(l), this.el.classList.remove(\"active\"), this._onDidEnd.fire(), h.dispose();\n                    for (const e of r) e.style.pointerEvents = \"auto\"\n                }, null, h), h.add(t)\n            }\n        }\n        onPointerDoublePress(e) {\n            const t = this.getOrthogonalSash(e);\n            t && t._onDidReset.fire(), this.linkedSash && this.linkedSash._onDidReset.fire(), this._onDidReset.fire()\n        }\n        static onMouseEnter(e, t = !1) {\n            e.el.classList.contains(\"active\") ? (e.hoverDelayer.cancel(), e.el.classList.add(\"hover\")) : e.hoverDelayer.trigger(() => e.el.classList.add(\"hover\"), e.hoverDelay).then(void 0, () => {}), !t && e.linkedSash && m.onMouseEnter(e.linkedSash, !0)\n        }\n        static onMouseLeave(e, t = !1) {\n            e.hoverDelayer.cancel(), e.el.classList.remove(\"hover\"), !t && e.linkedSash && m.onMouseLeave(e.linkedSash, !0)\n        }\n        clearSashHoverState() {\n            m.onMouseLeave(this)\n        }\n        layout() {\n            if (0 === this.orientation) {\n                const e = this.layoutProvider;\n                this.el.style.left = e.getVerticalSashLeft(this) - this.size / 2 + \"px\", e.getVerticalSashTop && (this.el.style.top = e.getVerticalSashTop(this) + \"px\"), e.getVerticalSashHeight && (this.el.style.height = e.getVerticalSashHeight(this) + \"px\")\n            } else {\n                const e = this.layoutProvider;\n                this.el.style.top = e.getHorizontalSashTop(this) - this.size / 2 + \"px\", e.getHorizontalSashLeft && (this.el.style.left = e.getHorizontalSashLeft(this) + \"px\"), e.getHorizontalSashWidth && (this.el.style.width = e.getHorizontalSashWidth(this) + \"px\")\n            }\n        }\n        hide() {\n            this.hidden = !0, this.el.style.display = \"none\", this.el.setAttribute(\"aria-hidden\", \"true\")\n        }\n        getOrthogonalSash(e) {\n            if (e.target && e.target instanceof HTMLElement) return e.target.classList.contains(\"orthogonal-drag-handle\") ? e.target.classList.contains(\"start\") ? this.orthogonalStartSash : this.orthogonalEndSash : void 0\n        }\n        dispose() {\n            super.dispose(), this.el.remove()\n        }\n    }\n}, function(e, t) {\n    e.exports = require(\"require-from-string\")\n}, function(e, t, i) {\n    \"use strict\";\n    i.d(t, \"a\", (function() {\n        return r\n    }));\n    var n = i(6);\n    class r {\n        static visibleColumnFromColumn(e, t, i) {\n            var o = e.length,\n                s = t - 1 < o ? t - 1 : o;\n            let a = 0,\n                l = 0;\n            for (; l < s;) {\n                var d = n.z(e, s, l);\n                if (l += 65536 <= d ? 2 : 1, 9 === d) a = r.nextRenderTabStop(a, i);\n                else {\n                    let t = n.w(d);\n                    for (; l < s;) {\n                        var c = n.z(e, s, l),\n                            h = n.w(c);\n                        if (n.c(t, h)) break;\n                        l += 65536 <= c ? 2 : 1, t = h\n                    }\n                    n.D(d) || n.B(d) ? a += 2 : a += 1\n                }\n            }\n            return a\n        }\n        static visibleColumnsByColumns(e, t) {\n            var i = e.length;\n            let o = new Array;\n            o.push(-1);\n            let s = 0,\n                a = 0;\n            for (; a < i;) {\n                var l = n.z(e, i, a);\n                if (a += 65536 <= l ? 2 : 1, o.push(s), 65536 <= l && o.push(s), 9 === l) s = r.nextRenderTabStop(s, t);\n                else {\n                    let t = n.w(l);\n                    for (; a < i;) {\n                        var d = n.z(e, i, a),\n                            c = n.w(d);\n                        if (n.c(t, c)) break;\n                        a += 65536 <= d ? 2 : 1, o.push(s), 65536 <= l && o.push(s), t = c\n                    }\n                    n.D(l) || n.B(l) ? s += 2 : s += 1\n                }\n            }\n            return o.push(s), o\n        }\n        static visibleColumnFromColumn2(e, t, i) {\n            return this.visibleColumnFromColumn(t.getLineContent(i.lineNumber), i.column, e.tabSize)\n        }\n        static columnFromVisibleColumn(e, t, i) {\n            if (t <= 0) return 1;\n            var o = e.length;\n            let s = 0,\n                a = 1,\n                l = 0;\n            for (; l < o;) {\n                var d = n.z(e, o, l);\n                let p;\n                if (l += 65536 <= d ? 2 : 1, 9 === d) p = r.nextRenderTabStop(s, i);\n                else {\n                    let t = n.w(d);\n                    for (; l < o;) {\n                        var c = n.z(e, o, l),\n                            h = n.w(c);\n                        if (n.c(t, h)) break;\n                        l += 65536 <= c ? 2 : 1, t = h\n                    }\n                    p = n.D(d) || n.B(d) ? s + 2 : s + 1\n                }\n                var u = l + 1;\n                if (p >= t) return p - t < (d = t - s) ? u : a;\n                s = p, a = u\n            }\n            return o + 1\n        }\n        static columnFromVisibleColumn2(e, t, i, n) {\n            return (n = this.columnFromVisibleColumn(t.getLineContent(i), n, e.tabSize)) < (e = t.getLineMinColumn(i)) ? e : (i = t.getLineMaxColumn(i)) < n ? i : n\n        }\n        static nextRenderTabStop(e, t) {\n            return e + t - e % t\n        }\n        static nextIndentTabStop(e, t) {\n            return e + t - e % t\n        }\n        static prevRenderTabStop(e, t) {\n            return Math.max(0, e - 1 - (e - 1) % t)\n        }\n        static prevIndentTabStop(e, t) {\n            return Math.max(0, e - 1 - (e - 1) % t)\n        }\n    }\n}, function(e, t, i) {\n    \"use strict\";\n    var n = i(111);\n    i.d(t, \"a\", (function() {\n        return n.a\n    })), i.d(t, \"b\", (function() {\n        return n.d\n    })), i.d(t, \"c\", (function() {\n        return n.e\n    })), i.d(t, \"d\", (function() {\n        return n.f\n    })), i.d(t, \"e\", (function() {\n        return n.h\n    })), i.d(t, \"f\", (function() {\n        return n.i\n    })), i.d(t, \"g\", (function() {\n        return n.j\n    }))\n}, function(e, t) {\n    e.exports = require(\"os\")\n}, function(e, t) {\n    e.exports = require(\"got\")\n}, function(e, t, i) {\n    \"use strict\";\n    i.d(t, \"a\", (function() {\n        return r\n    }));\n    var n = i(2);\n    t = i(58);\n    const r = {\n        JSONContribution: \"base.contributions.json\"\n    };\n    i = new class {\n        constructor() {\n            this._onDidChangeSchema = new n.b, this.schemasById = {}\n        }\n        registerSchema(e, t) {\n            var i;\n            this.schemasById[0 < (i = e).length && \"#\" === i.charAt(i.length - 1) ? i.substring(0, i.length - 1) : i] = t, this._onDidChangeSchema.fire(e)\n        }\n        notifySchemaChanged(e) {\n            this._onDidChangeSchema.fire(e)\n        }\n    }, t.a.add(r.JSONContribution, i)\n}, function(e, t, i) {\n    \"use strict\";\n    i.d(t, \"a\", (function() {\n        return I\n    }));\n    var n = i(115),\n        r = i(9),\n        o = i(39),\n        s = i(8),\n        a = i(5),\n        l = i(6);\n\n    function d(e, t, i, r) {\n        return new n.a(e, t, i).ComputeDiff(r)\n    }\n    class c {\n        constructor(e) {\n            const t = [],\n                i = [];\n            for (let n = 0, r = e.length; n < r; n++) t[n] = f(e[n], 1), i[n] = m(e[n], 1);\n            this.lines = e, this._startColumns = t, this._endColumns = i\n        }\n        getElements() {\n            const e = [];\n            for (let t = 0, i = this.lines.length; t < i; t++) e[t] = this.lines[t].substring(this._startColumns[t] - 1, this._endColumns[t] - 1);\n            return e\n        }\n        getStrictElement(e) {\n            return this.lines[e]\n        }\n        getStartLineNumber(e) {\n            return e + 1\n        }\n        getEndLineNumber(e) {\n            return e + 1\n        }\n        createCharSequence(e, t, i) {\n            const n = [],\n                r = [],\n                o = [];\n            let s = 0;\n            for (let d = t; d <= i; d++) {\n                const t = this.lines[d];\n                var a = e ? this._startColumns[d] : 1,\n                    l = e ? this._endColumns[d] : t.length + 1;\n                for (let e = a; e < l; e++) n[s] = t.charCodeAt(e - 1), r[s] = d + 1, o[s] = e, s++\n            }\n            return new h(n, r, o)\n        }\n    }\n    class h {\n        constructor(e, t, i) {\n            this._charCodes = e, this._lineNumbers = t, this._columns = i\n        }\n        getElements() {\n            return this._charCodes\n        }\n        getStartLineNumber(e) {\n            return this._lineNumbers[e]\n        }\n        getStartColumn(e) {\n            return this._columns[e]\n        }\n        getEndLineNumber(e) {\n            return this._lineNumbers[e]\n        }\n        getEndColumn(e) {\n            return this._columns[e] + 1\n        }\n    }\n    class u {\n        constructor(e, t, i, n, r, o, s, a) {\n            this.originalStartLineNumber = e, this.originalStartColumn = t, this.originalEndLineNumber = i, this.originalEndColumn = n, this.modifiedStartLineNumber = r, this.modifiedStartColumn = o, this.modifiedEndLineNumber = s, this.modifiedEndColumn = a\n        }\n        static createFromDiffChange(e, t, i) {\n            let n, r, o, s, a, l, d, c;\n            return s = 0 === e.originalLength ? (n = 0, r = 0, o = 0) : (n = t.getStartLineNumber(e.originalStart), r = t.getStartColumn(e.originalStart), o = t.getEndLineNumber(e.originalStart + e.originalLength - 1), t.getEndColumn(e.originalStart + e.originalLength - 1)), c = 0 === e.modifiedLength ? (a = 0, l = 0, d = 0) : (a = i.getStartLineNumber(e.modifiedStart), l = i.getStartColumn(e.modifiedStart), d = i.getEndLineNumber(e.modifiedStart + e.modifiedLength - 1), i.getEndColumn(e.modifiedStart + e.modifiedLength - 1)), new u(n, r, o, s, a, l, d, c)\n        }\n    }\n    class p {\n        constructor(e, t, i, n, r) {\n            this.originalStartLineNumber = e, this.originalEndLineNumber = t, this.modifiedStartLineNumber = i, this.modifiedEndLineNumber = n, this.charChanges = r\n        }\n        static createFromDiffResult(e, t, i, n, r, o, s) {\n            let a, l, c, h, g = void 0;\n            if (l = 0 === t.originalLength ? (a = i.getStartLineNumber(t.originalStart) - 1, 0) : (a = i.getStartLineNumber(t.originalStart), i.getEndLineNumber(t.originalStart + t.originalLength - 1)), h = 0 === t.modifiedLength ? (c = n.getStartLineNumber(t.modifiedStart) - 1, 0) : (c = n.getStartLineNumber(t.modifiedStart), n.getEndLineNumber(t.modifiedStart + t.modifiedLength - 1)), o && 0 < t.originalLength && t.originalLength < 20 && 0 < t.modifiedLength && t.modifiedLength < 20 && r()) {\n                var f = i.createCharSequence(e, t.originalStart, t.originalStart + t.originalLength - 1),\n                    m = n.createCharSequence(e, t.modifiedStart, t.modifiedStart + t.modifiedLength - 1);\n                let o = d(f, m, r, !0).changes;\n                s && (o = function(e) {\n                    if (e.length <= 1) return e;\n                    const t = [e[0]];\n                    let i = t[0];\n                    for (let s = 1, a = e.length; s < a; s++) {\n                        var n = e[s],\n                            r = n.originalStart - (i.originalStart + i.originalLength),\n                            o = n.modifiedStart - (i.modifiedStart + i.modifiedLength);\n                        Math.min(r, o) < 3 ? (i.originalLength = n.originalStart + n.originalLength - i.originalStart, i.modifiedLength = n.modifiedStart + n.modifiedLength - i.modifiedStart) : (t.push(n), i = n)\n                    }\n                    return t\n                }(o)), g = [];\n                for (let e = 0, t = o.length; e < t; e++) g.push(u.createFromDiffChange(o[e], f, m))\n            }\n            return new p(a, l, c, h, g)\n        }\n    }\n    class g {\n        constructor(e, t, i) {\n            this.shouldComputeCharChanges = i.shouldComputeCharChanges, this.shouldPostProcessCharChanges = i.shouldPostProcessCharChanges, this.shouldIgnoreTrimWhitespace = i.shouldIgnoreTrimWhitespace, this.shouldMakePrettyDiff = i.shouldMakePrettyDiff, this.originalLines = e, this.modifiedLines = t, this.original = new c(e), this.modified = new c(t), this.continueLineDiff = v(i.maxComputationTime), this.continueCharDiff = v(0 === i.maxComputationTime ? 0 : Math.min(i.maxComputationTime, 5e3))\n        }\n        computeDiff() {\n            if (1 === this.original.lines.length && 0 === this.original.lines[0].length) return 1 === this.modified.lines.length && 0 === this.modified.lines[0].length ? {\n                quitEarly: !1,\n                changes: []\n            } : {\n                quitEarly: !1,\n                changes: [{\n                    originalStartLineNumber: 1,\n                    originalEndLineNumber: 1,\n                    modifiedStartLineNumber: 1,\n                    modifiedEndLineNumber: this.modified.lines.length,\n                    charChanges: [{\n                        modifiedEndColumn: 0,\n                        modifiedEndLineNumber: 0,\n                        modifiedStartColumn: 0,\n                        modifiedStartLineNumber: 0,\n                        originalEndColumn: 0,\n                        originalEndLineNumber: 0,\n                        originalStartColumn: 0,\n                        originalStartLineNumber: 0\n                    }]\n                }]\n            };\n            if (1 === this.modified.lines.length && 0 === this.modified.lines[0].length) return {\n                quitEarly: !1,\n                changes: [{\n                    originalStartLineNumber: 1,\n                    originalEndLineNumber: this.original.lines.length,\n                    modifiedStartLineNumber: 1,\n                    modifiedEndLineNumber: 1,\n                    charChanges: [{\n                        modifiedEndColumn: 0,\n                        modifiedEndLineNumber: 0,\n                        modifiedStartColumn: 0,\n                        modifiedStartLineNumber: 0,\n                        originalEndColumn: 0,\n                        originalEndLineNumber: 0,\n                        originalStartColumn: 0,\n                        originalStartLineNumber: 0\n                    }]\n                }]\n            };\n            var e = (t = d(this.original, this.modified, this.continueLineDiff, this.shouldMakePrettyDiff)).changes,\n                t = t.quitEarly;\n            if (this.shouldIgnoreTrimWhitespace) {\n                const i = [];\n                for (let t = 0, n = e.length; t < n; t++) i.push(p.createFromDiffResult(this.shouldIgnoreTrimWhitespace, e[t], this.original, this.modified, this.continueCharDiff, this.shouldComputeCharChanges, this.shouldPostProcessCharChanges));\n                return {\n                    quitEarly: t,\n                    changes: i\n                }\n            }\n            const i = [];\n            let n = 0,\n                r = 0;\n            for (let t = -1, d = e.length; t < d; t++) {\n                for (var o = t + 1 < d ? e[t + 1] : null, s = o ? o.originalStart : this.originalLines.length, a = o ? o.modifiedStart : this.modifiedLines.length; n < s && r < a;) {\n                    const e = this.originalLines[n],\n                        t = this.modifiedLines[r];\n                    if (e !== t) {\n                        {\n                            let o = f(e, 1),\n                                s = f(t, 1);\n                            for (; 1 < o && 1 < s && e.charCodeAt(o - 2) === t.charCodeAt(s - 2);) o--, s--;\n                            (1 < o || 1 < s) && this._pushTrimWhitespaceCharChange(i, n + 1, 1, o, r + 1, 1, s)\n                        } {\n                            let o = m(e, 1),\n                                s = m(t, 1);\n                            for (var l = e.length + 1, c = t.length + 1; o < l && s < c && e.charCodeAt(o - 1) === e.charCodeAt(s - 1);) o++, s++;\n                            (o < l || s < c) && this._pushTrimWhitespaceCharChange(i, n + 1, o, l, r + 1, s, c)\n                        }\n                    }\n                    n++, r++\n                }\n                o && (i.push(p.createFromDiffResult(this.shouldIgnoreTrimWhitespace, o, this.original, this.modified, this.continueCharDiff, this.shouldComputeCharChanges, this.shouldPostProcessCharChanges)), n += o.originalLength, r += o.modifiedLength)\n            }\n            return {\n                quitEarly: t,\n                changes: i\n            }\n        }\n        _pushTrimWhitespaceCharChange(e, t, i, n, r, o, s) {\n            if (!this._mergeTrimWhitespaceCharChange(e, t, i, n, r, o, s)) {\n                let a = void 0;\n                this.shouldComputeCharChanges && (a = [new u(t, i, t, n, r, o, r, s)]), e.push(new p(t, t, r, r, a))\n            }\n        }\n        _mergeTrimWhitespaceCharChange(e, t, i, n, r, o, s) {\n            var a = e.length;\n            if (0 === a) return !1;\n            const l = e[a - 1];\n            return 0 !== l.originalEndLineNumber && 0 !== l.modifiedEndLineNumber && l.originalEndLineNumber + 1 === t && l.modifiedEndLineNumber + 1 === r && (l.originalEndLineNumber = t, l.modifiedEndLineNumber = r, this.shouldComputeCharChanges && l.charChanges && l.charChanges.push(new u(t, i, t, n, r, o, r, s)), !0)\n        }\n    }\n\n    function f(e, t) {\n        return -1 === (e = l.u(e)) ? t : e + 1\n    }\n\n    function m(e, t) {\n        return -1 === (e = l.I(e)) ? t : e + 2\n    }\n\n    function v(e) {\n        if (0 === e) return () => !0;\n        const t = Date.now();\n        return () => Date.now() - t < e\n    }\n    var b = i(137),\n        _ = i(93),\n        w = i(125);\n    class y {\n        constructor(e, t, i) {\n            const n = new Uint8Array(e * t);\n            for (let r = 0, o = e * t; r < o; r++) n[r] = i;\n            this._data = n, this.rows = e, this.cols = t\n        }\n        get(e, t) {\n            return this._data[e * this.cols + t]\n        }\n        set(e, t, i) {\n            this._data[e * this.cols + t] = i\n        }\n    }\n    class C {\n        constructor(e) {\n            let t = 0,\n                i = 0;\n            for (let s = 0, a = e.length; s < a; s++) {\n                var [n, r, o] = e[s];\n                r > t && (t = r), n > i && (i = n), o > i && (i = o)\n            }\n            t++, i++;\n            let s = new y(i, t, 0);\n            for (let t = 0, i = e.length; t < i; t++) {\n                var [a, l, d] = e[t];\n                s.set(a, l, d)\n            }\n            this._states = s, this._maxCharCode = t\n        }\n        nextState(e, t) {\n            return t < 0 || t >= this._maxCharCode ? 0 : this._states.get(e, t)\n        }\n    }\n    let x = null,\n        S = null;\n    class k {\n        static _createLink(e, t, i, n, r) {\n            let o = r - 1;\n            do {\n                var s = t.charCodeAt(o);\n                if (2 !== e.get(s)) break\n            } while (o--, o > n);\n            var a;\n            return 0 < n && (a = t.charCodeAt(n - 1), r = t.charCodeAt(o), (40 === a && 41 === r || 91 === a && 93 === r || 123 === a && 125 === r) && o--), {\n                range: {\n                    startLineNumber: i,\n                    startColumn: n + 1,\n                    endLineNumber: i,\n                    endColumn: o + 2\n                },\n                url: t.substring(n, o + 1)\n            }\n        }\n        static computeLinks(e, t = (null === x && (x = new C([\n            [1, 104, 2],\n            [1, 72, 2],\n            [1, 102, 6],\n            [1, 70, 6],\n            [2, 116, 3],\n            [2, 84, 3],\n            [3, 116, 4],\n            [3, 84, 4],\n            [4, 112, 5],\n            [4, 80, 5],\n            [5, 115, 9],\n            [5, 83, 9],\n            [5, 58, 10],\n            [6, 105, 7],\n            [6, 73, 7],\n            [7, 108, 8],\n            [7, 76, 8],\n            [8, 101, 9],\n            [8, 69, 9],\n            [9, 58, 10],\n            [10, 47, 11],\n            [11, 47, 12]\n        ])), x)) {\n            const i = function() {\n                if (null === S) {\n                    S = new w.a(0);\n                    var e = \" \\t<>'\\\"、。｡､，．：；‘〈「『〔（［｛｢｣｝］）〕』」〉’｀～…\";\n                    for (let t = 0; t < e.length; t++) S.set(e.charCodeAt(t), 1);\n                    for (let e = 0; e < \".,;\".length; e++) S.set(\".,;\".charCodeAt(e), 2)\n                }\n                return S\n            }();\n            let n = [];\n            for (let s = 1, a = e.getLineCount(); s <= a; s++) {\n                const a = e.getLineContent(s);\n                var r = a.length;\n                let l = 0,\n                    d = 0,\n                    c = 0,\n                    h = 1,\n                    u = !1,\n                    p = !1,\n                    g = !1,\n                    f = !1;\n                for (; l < r;) {\n                    let e = !1;\n                    var o = a.charCodeAt(l);\n                    if (13 === h) {\n                        let t;\n                        switch (o) {\n                            case 40:\n                                u = !0, t = 0;\n                                break;\n                            case 41:\n                                t = u ? 0 : 1;\n                                break;\n                            case 91:\n                                g = !0, p = !0, t = 0;\n                                break;\n                            case 93:\n                                g = !1, t = p ? 0 : 1;\n                                break;\n                            case 123:\n                                f = !0, t = 0;\n                                break;\n                            case 125:\n                                t = f ? 0 : 1;\n                                break;\n                            case 39:\n                                t = 34 === c || 96 === c ? 0 : 1;\n                                break;\n                            case 34:\n                                t = 39 === c || 96 === c ? 0 : 1;\n                                break;\n                            case 96:\n                                t = 39 === c || 34 === c ? 0 : 1;\n                                break;\n                            case 42:\n                                t = 42 === c ? 1 : 0;\n                                break;\n                            case 124:\n                                t = 124 === c ? 1 : 0;\n                                break;\n                            case 32:\n                                t = g ? 0 : 1;\n                                break;\n                            default:\n                                t = i.get(o)\n                        }\n                        1 === t && (n.push(k._createLink(i, a, s, d, l)), e = !0)\n                    } else if (12 === h) {\n                        let t;\n                        t = 91 === o ? (p = !0, 0) : i.get(o), 1 === t ? e = !0 : h = 13\n                    } else h = t.nextState(h, o), 0 === h && (e = !0);\n                    e && (h = 1, u = !1, p = !1, f = !1, d = l + 1, c = o), l++\n                }\n                13 === h && n.push(k._createLink(i, a, s, d, r))\n            }\n            return n\n        }\n    }\n    class L {\n        constructor() {\n            this._defaultValueSet = [\n                [\"true\", \"false\"],\n                [\"True\", \"False\"],\n                [\"Private\", \"Public\", \"Friend\", \"ReadOnly\", \"Partial\", \"Protected\", \"WriteOnly\"],\n                [\"public\", \"protected\", \"private\"]\n            ]\n        }\n        navigateValueSet(e, t, i, n, r) {\n            return e && t && (t = this.doNavigateValueSet(t, r)) ? {\n                range: e,\n                value: t\n            } : i && n && (r = this.doNavigateValueSet(n, r)) ? {\n                range: i,\n                value: r\n            } : null\n        }\n        doNavigateValueSet(e, t) {\n            var i = this.numberReplace(e, t);\n            return null !== i ? i : this.textReplace(e, t)\n        }\n        numberReplace(e, t) {\n            var i = Math.pow(10, e.length - (e.lastIndexOf(\".\") + 1));\n            let n = Number(e);\n            return e = parseFloat(e), isNaN(n) || isNaN(e) || n !== e || 0 === n && !t ? null : (n = Math.floor(n * i), n += t ? i : -i, String(n / i))\n        }\n        textReplace(e, t) {\n            return this.valueSetsReplace(this._defaultValueSet, e, t)\n        }\n        valueSetsReplace(e, t, i) {\n            let n = null;\n            for (let r = 0, o = e.length; null === n && r < o; r++) n = this.valueSetReplace(e[r], t, i);\n            return n\n        }\n        valueSetReplace(e, t, i) {\n            let n = e.indexOf(t);\n            return 0 <= n ? (n += i ? 1 : -1, n < 0 ? n = e.length - 1 : n %= e.length, e[n]) : null\n        }\n    }\n    L.INSTANCE = new L;\n    t = i(136);\n    var O = i(17),\n        E = i(90),\n        N = function(e, t, i, n) {\n            return new(i = i || Promise)((function(r, o) {\n                function s(e) {\n                    try {\n                        l(n.next(e))\n                    } catch (e) {\n                        o(e)\n                    }\n                }\n\n                function a(e) {\n                    try {\n                        l(n.throw(e))\n                    } catch (e) {\n                        o(e)\n                    }\n                }\n\n                function l(e) {\n                    var t;\n                    e.done ? r(e.value) : ((t = e.value) instanceof i ? t : new i((function(e) {\n                        e(t)\n                    }))).then(s, a)\n                }\n                l((n = n.apply(e, t || [])).next())\n            }))\n        };\n    class D extends class {\n        constructor(e, t, i, n) {\n            this._uri = e, this._lines = t, this._eol = i, this._versionId = n, this._lineStarts = null, this._cachedTextValue = null\n        }\n        dispose() {\n            this._lines.length = 0\n        }\n        get version() {\n            return this._versionId\n        }\n        getText() {\n            return null === this._cachedTextValue && (this._cachedTextValue = this._lines.join(this._eol)), this._cachedTextValue\n        }\n        onEvents(e) {\n            e.eol && e.eol !== this._eol && (this._eol = e.eol, this._lineStarts = null);\n            for (const t of e.changes) this._acceptDeleteRange(t.range), this._acceptInsertText(new s.a(t.range.startLineNumber, t.range.startColumn), t.text);\n            this._versionId = e.versionId, this._cachedTextValue = null\n        }\n        _ensureLineStarts() {\n            if (!this._lineStarts) {\n                var e = this._eol.length,\n                    t = this._lines.length;\n                const i = new Uint32Array(t);\n                for (let n = 0; n < t; n++) i[n] = this._lines[n].length + e;\n                this._lineStarts = new b.a(i)\n            }\n        }\n        _setLineText(e, t) {\n            this._lines[e] = t, this._lineStarts && this._lineStarts.changeValue(e, this._lines[e].length + this._eol.length)\n        }\n        _acceptDeleteRange(e) {\n            if (e.startLineNumber === e.endLineNumber) return e.startColumn === e.endColumn ? void 0 : void this._setLineText(e.startLineNumber - 1, this._lines[e.startLineNumber - 1].substring(0, e.startColumn - 1) + this._lines[e.startLineNumber - 1].substring(e.endColumn - 1));\n            this._setLineText(e.startLineNumber - 1, this._lines[e.startLineNumber - 1].substring(0, e.startColumn - 1) + this._lines[e.endLineNumber - 1].substring(e.endColumn - 1)), this._lines.splice(e.startLineNumber, e.endLineNumber - e.startLineNumber), this._lineStarts && this._lineStarts.removeValues(e.startLineNumber, e.endLineNumber - e.startLineNumber)\n        }\n        _acceptInsertText(e, t) {\n            if (0 !== t.length) {\n                let i = Object(l.Q)(t);\n                if (1 !== i.length) {\n                    i[i.length - 1] += this._lines[e.lineNumber - 1].substring(e.column - 1), this._setLineText(e.lineNumber - 1, this._lines[e.lineNumber - 1].substring(0, e.column - 1) + i[0]);\n                    let t = new Uint32Array(i.length - 1);\n                    for (let n = 1; n < i.length; n++) this._lines.splice(e.lineNumber + n - 1, 0, i[n]), t[n - 1] = i[n].length + this._eol.length;\n                    this._lineStarts && this._lineStarts.insertValues(e.lineNumber, t)\n                } else this._setLineText(e.lineNumber - 1, this._lines[e.lineNumber - 1].substring(0, e.column - 1) + i[0] + this._lines[e.lineNumber - 1].substring(e.column - 1))\n            }\n        }\n    } {\n        get uri() {\n            return this._uri\n        }\n        get eol() {\n            return this._eol\n        }\n        getValue() {\n            return this.getText()\n        }\n        getLinesContent() {\n            return this._lines.slice(0)\n        }\n        getLineCount() {\n            return this._lines.length\n        }\n        getLineContent(e) {\n            return this._lines[e - 1]\n        }\n        getWordAtPosition(e, t) {\n            return (t = Object(_.d)(e.column, Object(_.c)(t), this._lines[e.lineNumber - 1], 0)) ? new a.a(e.lineNumber, t.startColumn, e.lineNumber, t.endColumn) : null\n        }\n        words(e) {\n            const t = this._lines,\n                i = this._wordenize.bind(this);\n            let n = 0,\n                r = \"\",\n                o = 0,\n                s = [];\n            return {\n                *[Symbol.iterator]() {\n                    for (;;)\n                        if (o < s.length) {\n                            var a = r.substring(s[o].start, s[o].end);\n                            o += 1, yield a\n                        } else {\n                            if (!(n < t.length)) break;\n                            r = t[n], s = i(r, e), o = 0, n += 1\n                        }\n                }\n            }\n        }\n        getLineWords(e, t) {\n            let i = this._lines[e - 1],\n                n = [];\n            for (const e of this._wordenize(i, t)) n.push({\n                word: i.substring(e.start, e.end),\n                startColumn: e.start + 1,\n                endColumn: e.end + 1\n            });\n            return n\n        }\n        _wordenize(e, t) {\n            const i = [];\n            var n;\n            for (t.lastIndex = 0;\n                (n = t.exec(e)) && 0 !== n[0].length;) i.push({\n                start: n.index,\n                end: n.index + n[0].length\n            });\n            return i\n        }\n        getValueInRange(e) {\n            if ((e = this._validateRange(e)).startLineNumber === e.endLineNumber) return this._lines[e.startLineNumber - 1].substring(e.startColumn - 1, e.endColumn - 1);\n            var t = this._eol,\n                i = e.startLineNumber - 1,\n                n = e.endLineNumber - 1;\n            let r = [];\n            r.push(this._lines[i].substring(e.startColumn - 1));\n            for (let e = 1 + i; e < n; e++) r.push(this._lines[e]);\n            return r.push(this._lines[n].substring(0, e.endColumn - 1)), r.join(t)\n        }\n        offsetAt(e) {\n            return e = this._validatePosition(e), this._ensureLineStarts(), this._lineStarts.getPrefixSum(e.lineNumber - 2) + (e.column - 1)\n        }\n        positionAt(e) {\n            e = Math.floor(e), e = Math.max(0, e), this._ensureLineStarts();\n            var t = this._lineStarts.getIndexOf(e);\n            e = this._lines[t.index].length;\n            return {\n                lineNumber: 1 + t.index,\n                column: 1 + Math.min(t.remainder, e)\n            }\n        }\n        _validateRange(e) {\n            var t = this._validatePosition({\n                    lineNumber: e.startLineNumber,\n                    column: e.startColumn\n                }),\n                i = this._validatePosition({\n                    lineNumber: e.endLineNumber,\n                    column: e.endColumn\n                });\n            return t.lineNumber !== e.startLineNumber || t.column !== e.startColumn || i.lineNumber !== e.endLineNumber || i.column !== e.endColumn ? {\n                startLineNumber: t.lineNumber,\n                startColumn: t.column,\n                endLineNumber: i.lineNumber,\n                endColumn: i.column\n            } : e\n        }\n        _validatePosition(e) {\n            if (!s.a.isIPosition(e)) throw new Error(\"bad position\");\n            let {\n                lineNumber: t,\n                column: i\n            } = e, n = !1;\n            var r;\n            return t < 1 ? (t = 1, i = 1, n = !0) : t > this._lines.length ? (t = this._lines.length, i = this._lines[t - 1].length + 1, n = !0) : (r = this._lines[t - 1].length + 1, i < 1 ? (i = 1, n = !0) : i > r && (i = r, n = !0)), n ? {\n                lineNumber: t,\n                column: i\n            } : e\n        }\n    }\n    class I {\n        constructor(e, t) {\n            this._host = e, this._models = Object.create(null), this._foreignModuleFactory = t, this._foreignModule = null\n        }\n        dispose() {\n            this._models = Object.create(null)\n        }\n        _getModel(e) {\n            return this._models[e]\n        }\n        _getModels() {\n            let e = [];\n            return Object.keys(this._models).forEach(t => e.push(this._models[t])), e\n        }\n        acceptNewModel(e) {\n            this._models[e.url] = new D(o.a.parse(e.url), e.lines, e.EOL, e.versionId)\n        }\n        acceptModelChanged(e, t) {\n            if (this._models[e]) {\n                this._models[e].onEvents(t)\n            }\n        }\n        acceptRemovedModel(e) {\n            this._models[e] && delete this._models[e]\n        }\n        computeDiff(e, t, i, n) {\n            return N(this, void 0, void 0, (function*() {\n                const r = this._getModel(e),\n                    o = this._getModel(t);\n                if (!r || !o) return null;\n                var s = r.getLinesContent(),\n                    a = o.getLinesContent();\n                return a = !(0 < (s = new g(s, a, {\n                    shouldComputeCharChanges: !0,\n                    shouldPostProcessCharChanges: !0,\n                    shouldIgnoreTrimWhitespace: i,\n                    shouldMakePrettyDiff: !0,\n                    maxComputationTime: n\n                }).computeDiff()).changes.length) && this._modelsAreIdentical(r, o), {\n                    quitEarly: s.quitEarly,\n                    identical: a,\n                    changes: s.changes\n                }\n            }))\n        }\n        _modelsAreIdentical(e, t) {\n            var i = e.getLineCount();\n            if (i !== t.getLineCount()) return !1;\n            for (let n = 1; n <= i; n++)\n                if (e.getLineContent(n) !== t.getLineContent(n)) return !1;\n            return !0\n        }\n        computeMoreMinimalEdits(e, t) {\n            return N(this, void 0, void 0, (function*() {\n                const i = this._getModel(e);\n                if (!i) return t;\n                const r = [];\n                let o = void 0;\n                for (var {\n                        range: s,\n                        text: l,\n                        eol: d\n                    } of t = t.slice(0).sort((e, t) => e.range && t.range ? a.a.compareRangesUsingStarts(e.range, t.range) : (e.range ? 0 : 1) - (t.range ? 0 : 1)))\n                    if (\"number\" == typeof d && (o = d), (!a.a.isEmpty(s) || l) && (d = i.getValueInRange(s)) !== (l = l.replace(/\\r\\n|\\n|\\r/g, i.eol)))\n                        if (Math.max(l.length, d.length) > I._diffLimit) r.push({\n                            range: s,\n                            text: l\n                        });\n                        else {\n                            var d = Object(n.b)(d, l, !1),\n                                c = i.offsetAt(a.a.lift(s).getStartPosition());\n                            for (const e of d) {\n                                var h = i.positionAt(c + e.originalStart),\n                                    u = i.positionAt(c + e.originalStart + e.originalLength);\n                                u = {\n                                    text: l.substr(e.modifiedStart, e.modifiedLength),\n                                    range: {\n                                        startLineNumber: h.lineNumber,\n                                        startColumn: h.column,\n                                        endLineNumber: u.lineNumber,\n                                        endColumn: u.column\n                                    }\n                                };\n                                i.getValueInRange(u.range) !== u.text && r.push(u)\n                            }\n                        } return \"number\" == typeof o && r.push({\n                    eol: o,\n                    text: \"\",\n                    range: {\n                        startLineNumber: 0,\n                        startColumn: 0,\n                        endLineNumber: 0,\n                        endColumn: 0\n                    }\n                }), r\n            }))\n        }\n        computeLinks(e) {\n            return N(this, void 0, void 0, (function*() {\n                var t = this._getModel(e);\n                return t ? (t = t) && \"function\" == typeof t.getLineCount && \"function\" == typeof t.getLineContent ? k.computeLinks(t) : [] : null\n            }))\n        }\n        textualSuggest(e, t, i, n) {\n            return N(this, void 0, void 0, (function*() {\n                const r = new E.a(!0);\n                var o = new RegExp(i, n);\n                const s = new Set;\n                e: for (var a of e) {\n                    const e = this._getModel(a);\n                    if (e)\n                        for (var l of e.words(o))\n                            if (l !== t && isNaN(Number(l)) && (s.add(l), s.size > I._suggestionsLimit)) break e\n                }\n                return {\n                    words: Array.from(s),\n                    duration: r.elapsed()\n                }\n            }))\n        }\n        computeWordRanges(e, t, i, n) {\n            return N(this, void 0, void 0, (function*() {\n                let r = this._getModel(e);\n                if (!r) return Object.create(null);\n                var o = new RegExp(i, n);\n                const s = Object.create(null);\n                for (let e = t.startLineNumber; e < t.endLineNumber; e++)\n                    for (const t of r.getLineWords(e, o))\n                        if (isNaN(Number(t.word))) {\n                            let i = s[t.word];\n                            i || (i = [], s[t.word] = i), i.push({\n                                startLineNumber: e,\n                                startColumn: t.startColumn,\n                                endLineNumber: e,\n                                endColumn: t.endColumn\n                            })\n                        } return s\n            }))\n        }\n        navigateValueSet(e, t, i, n, r) {\n            return N(this, void 0, void 0, (function*() {\n                let o = this._getModel(e);\n                if (!o) return null;\n                var s = new RegExp(n, r);\n                t.startColumn === t.endColumn && (t = {\n                    startLineNumber: t.startLineNumber,\n                    startColumn: t.startColumn,\n                    endLineNumber: t.endLineNumber,\n                    endColumn: t.endColumn + 1\n                });\n                var a = o.getValueInRange(t),\n                    l = o.getWordAtPosition({\n                        lineNumber: t.startLineNumber,\n                        column: t.startColumn\n                    }, s);\n                return l ? (s = o.getValueInRange(l), L.INSTANCE.navigateValueSet(t, a, l, s, i)) : null\n            }))\n        }\n        loadForeignModule(e, t, i) {\n            return i = {\n                host: O.c(i, (e, t) => this._host.fhr(e, t)),\n                getMirrorModels: () => this._getModels()\n            }, this._foreignModuleFactory ? (this._foreignModule = this._foreignModuleFactory(i, t), Promise.resolve(O.d(this._foreignModule))) : Promise.reject(new Error(\"Unexpected usage\"))\n        }\n        fmr(e, t) {\n            if (!this._foreignModule || \"function\" != typeof this._foreignModule[e]) return Promise.reject(new Error(\"Missing requestHandler or method: \" + e));\n            try {\n                return Promise.resolve(this._foreignModule[e].apply(this._foreignModule, t))\n            } catch (e) {\n                return Promise.reject(e)\n            }\n        }\n    }\n    I._diffLimit = 1e5, I._suggestionsLimit = 1e4, \"function\" == typeof importScripts && (r.b.monaco = Object(t.a)())\n}, function(e, t, i) {\n    \"use strict\";\n    var n = i(18),\n        r = i.n(n);\n    n = i(27);\n\n    function o(e, t) {\n        var i, n = Object.keys(e);\n        return Object.getOwnPropertySymbols && (i = Object.getOwnPropertySymbols(e), t && (i = i.filter((function(t) {\n            return Object.getOwnPropertyDescriptor(e, t).enumerable\n        }))), n.push.apply(n, i)), n\n    }\n    n = {\n        name: \"SelectView\",\n        props: {\n            items: Array,\n            index: {\n                type: Number,\n                default: function() {\n                    return 0\n                }\n            }\n        },\n        model: {\n            prop: \"index\",\n            event: \"select\"\n        },\n        data: function() {\n            return {}\n        },\n        computed: function(e) {\n            for (var t = 1; t < arguments.length; t++) {\n                var i = null != arguments[t] ? arguments[t] : {};\n                t % 2 ? o(Object(i), !0).forEach((function(t) {\n                    r()(e, t, i[t])\n                })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(i)) : o(Object(i)).forEach((function(t) {\n                    Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(i, t))\n                }))\n            }\n            return e\n        }({}, Object(n.mapState)({})),\n        methods: {\n            handleItemClick: function(e) {\n                this.$emit(\"select\", e)\n            },\n            itemClass: function(e) {\n                var t = [\"item-\".concat(this.theme), \"item-\".concat(e % 2 == 0 ? \"double\" : \"single\", \"-\").concat(this.theme)];\n                return e === this.index && t.push(\"item-selected-\".concat(this.theme)), 0 === e ? t.push(\"item-first\") : e === this.items.length - 1 && t.push(\"item-last\"), t\n            }\n        }\n    }, i(292), i = i(30), n = Object(i.a)(n, (function() {\n        var e = this,\n            t = e.$createElement,\n            i = e._self._c || t;\n        return i(\"div\", {\n            class: [\"main-select-view\"]\n        }, e._l(e.items, (function(t, n) {\n            return i(\"div\", {\n                key: n,\n                class: e.itemClass(n),\n                domProps: {\n                    innerHTML: e._s(t)\n                },\n                on: {\n                    click: function(t) {\n                        return e.handleItemClick(n)\n                    }\n                }\n            })\n        })), 0)\n    }), [], !1, null, \"38b9c85e\", null), t.a = n.exports\n}, function(e, t, i) {\n    \"use strict\";\n    var n = i(18),\n        r = i.n(n);\n    n = i(27);\n\n    function o(e, t) {\n        var i, n = Object.keys(e);\n        return Object.getOwnPropertySymbols && (i = Object.getOwnPropertySymbols(e), t && (i = i.filter((function(t) {\n            return Object.getOwnPropertyDescriptor(e, t).enumerable\n        }))), n.push.apply(n, i)), n\n    }\n    n = {\n        props: [\"on\"],\n        model: {\n            prop: \"on\",\n            event: \"change\"\n        },\n        data: function() {\n            return {}\n        },\n        watch: {},\n        computed: function(e) {\n            for (var t = 1; t < arguments.length; t++) {\n                var i = null != arguments[t] ? arguments[t] : {};\n                t % 2 ? o(Object(i), !0).forEach((function(t) {\n                    r()(e, t, i[t])\n                })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(i)) : o(Object(i)).forEach((function(t) {\n                    Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(i, t))\n                }))\n            }\n            return e\n        }({}, Object(n.mapState)({})),\n        methods: {\n            handleClick: function(e) {\n                this.$emit(\"change\", !this.on)\n            }\n        },\n        mounted: function() {}\n    }, i(294), i = i(30), n = Object(i.a)(n, (function() {\n        var e = this,\n            t = e.$createElement;\n        return (t = e._self._c || t)(\"div\", {\n            class: [\"main-\" + e.theme],\n            on: {\n                click: e.handleClick\n            }\n        }, [t(\"transition\", {\n            attrs: {\n                name: \"move-right\"\n            }\n        }, [e.on ? e._e() : t(\"div\", {\n            staticClass: \"text\"\n        }, [t(\"div\", {\n            staticClass: \"base tint-right\"\n        }), e._v(\" \"), t(\"div\", {\n            staticClass: \"base text-font text-off\"\n        })])]), e._v(\" \"), t(\"transition\", {\n            attrs: {\n                name: \"move-left\"\n            }\n        }, [e.on ? t(\"div\", {\n            staticClass: \"text\"\n        }, [t(\"div\", {\n            staticClass: \"base text-font text-on\"\n        }), e._v(\" \"), t(\"div\", {\n            staticClass: \"base tint-left\"\n        })]) : e._e()])], 1)\n    }), [], !1, null, \"e6ab4ba2\", null), t.a = n.exports\n}, function(e, t, i) {\n    \"use strict\";\n    i.d(t, \"b\", (function() {\n        return w\n    })), i.d(t, \"a\", (function() {\n        return y\n    }));\n    var n = i(1),\n        r = i(53);\n\n    function o(e, t = {}) {\n        var i = s(t);\n        return function e(t, i, r, o) {\n            let s;\n            if (2 === i.type) s = document.createTextNode(i.content || \"\");\n            else if (3 === i.type) s = document.createElement(\"b\");\n            else if (4 === i.type) s = document.createElement(\"i\");\n            else if (7 === i.type && o) s = document.createElement(\"code\");\n            else if (5 === i.type && r) {\n                const e = document.createElement(\"a\");\n                e.href = \"#\", r.disposables.add(n.l(e, \"click\", e => {\n                    r.callback(String(i.index), e)\n                })), s = e\n            } else 8 === i.type ? s = document.createElement(\"br\") : 1 === i.type && (s = t);\n            s && t !== s && t.appendChild(s), s && Array.isArray(i.children) && i.children.forEach(t => {\n                e(s, t, r, o)\n            })\n        }(i, function(e, t) {\n            var i = {\n                type: 1,\n                children: []\n            };\n            let n = 0,\n                r = i;\n            const o = [],\n                s = new a(e);\n            for (; !s.eos();) {\n                let e = s.next();\n                var d = \"\\\\\" === e && 0 !== l(s.peek(), t);\n                if (d && (e = s.next()), !d && function(e, t) {\n                        return 0 !== l(e, t)\n                    }(e, t) && e === s.peek()) {\n                    s.advance(), 2 === r.type && (r = o.pop());\n                    var c = l(e, t);\n                    if (r.type === c || 5 === r.type && 6 === c) r = o.pop();\n                    else {\n                        const e = {\n                            type: c,\n                            children: []\n                        };\n                        5 === c && (e.index = n, n++), r.children.push(e), o.push(r), r = e\n                    }\n                } else \"\\n\" === e ? (2 === r.type && (r = o.pop()), r.children.push({\n                    type: 8\n                })) : 2 !== r.type ? (c = {\n                    type: 2,\n                    content: e\n                }, r.children.push(c), o.push(r), r = c) : r.content += e\n            }\n            return 2 === r.type && (r = o.pop()), o.length, i\n        }(e, !!t.renderCodeSegments), t.actionHandler, t.renderCodeSegments), i\n    }\n\n    function s(e) {\n        var t = e.inline ? \"span\" : \"div\";\n        const i = document.createElement(t);\n        return e.className && (i.className = e.className), i\n    }\n    class a {\n        constructor(e) {\n            this.source = e, this.index = 0\n        }\n        eos() {\n            return this.index >= this.source.length\n        }\n        next() {\n            var e = this.peek();\n            return this.advance(), e\n        }\n        peek() {\n            return this.source[this.index]\n        }\n        advance() {\n            this.index++\n        }\n    }\n\n    function l(e, t) {\n        switch (e) {\n            case \"*\":\n                return 3;\n            case \"_\":\n                return 4;\n            case \"[\":\n                return 5;\n            case \"]\":\n                return 6;\n            case \"`\":\n                return t ? 7 : 0;\n            default:\n                return 0\n        }\n    }\n    var d = i(116),\n        c = i(91),\n        h = i(112),\n        u = i(84),\n        p = (t = i(11), i(2));\n    class g {\n        constructor(e, t = 0, i = e.length, n = t - 1) {\n            this.items = e, this.start = t, this.end = i, this.index = n\n        }\n        current() {\n            return this.index === this.start - 1 || this.index === this.end ? null : this.items[this.index]\n        }\n        next() {\n            return this.index = Math.min(this.index + 1, this.end), this.current()\n        }\n        previous() {\n            return this.index = Math.max(this.index - 1, this.start - 1), this.current()\n        }\n        first() {\n            return this.index = this.start, this.current()\n        }\n        last() {\n            return this.index = this.end - 1, this.current()\n        }\n    }\n    class f {\n        constructor(e = [], t = 10) {\n            this._initialize(e), this._limit = t, this._onChange()\n        }\n        getHistory() {\n            return this._elements\n        }\n        add(e) {\n            this._history.delete(e), this._history.add(e), this._onChange()\n        }\n        next() {\n            return this._currentPosition() !== this._elements.length - 1 ? this._navigator.next() : null\n        }\n        previous() {\n            return 0 !== this._currentPosition() ? this._navigator.previous() : null\n        }\n        current() {\n            return this._navigator.current()\n        }\n        first() {\n            return this._navigator.first()\n        }\n        last() {\n            return this._navigator.last()\n        }\n        has(e) {\n            return this._history.has(e)\n        }\n        _onChange() {\n            this._reduceToLimit();\n            var e = this._elements;\n            this._navigator = new g(e, 0, e.length, e.length)\n        }\n        _reduceToLimit() {\n            const e = this._elements;\n            e.length > this._limit && this._initialize(e.slice(e.length - this._limit))\n        }\n        _currentPosition() {\n            var e = this._navigator.current();\n            return e ? this._elements.indexOf(e) : -1\n        }\n        _initialize(e) {\n            this._history = new Set;\n            for (const t of e) this._history.add(t)\n        }\n        get _elements() {\n            const e = [];\n            return this._history.forEach(t => e.push(t)), e\n        }\n    }\n    var m = i(47),\n        v = (i(383), i(0));\n    const b = n.a,\n        _ = {\n            inputBackground: t.a.fromHex(\"#3C3C3C\"),\n            inputForeground: t.a.fromHex(\"#CCCCCC\"),\n            inputValidationInfoBorder: t.a.fromHex(\"#55AAFF\"),\n            inputValidationInfoBackground: t.a.fromHex(\"#063B49\"),\n            inputValidationWarningBorder: t.a.fromHex(\"#B89500\"),\n            inputValidationWarningBackground: t.a.fromHex(\"#352A05\"),\n            inputValidationErrorBorder: t.a.fromHex(\"#BE1100\"),\n            inputValidationErrorBackground: t.a.fromHex(\"#5A1D1D\")\n        };\n    class w extends u.a {\n        constructor(e, t, i) {\n            super(), this.state = \"idle\", this.maxHeight = Number.POSITIVE_INFINITY, this._onDidChange = this._register(new p.b), this.onDidChange = this._onDidChange.event, this._onDidHeightChange = this._register(new p.b), this.onDidHeightChange = this._onDidHeightChange.event, this.contextViewProvider = t, this.options = i || Object.create(null), Object(m.e)(this.options, _, !1), this.message = null, this.placeholder = this.options.placeholder || \"\", this.tooltip = null !== (i = this.options.tooltip) && void 0 !== i ? i : this.placeholder || \"\", this.ariaLabel = this.options.ariaLabel || \"\", this.inputBackground = this.options.inputBackground, this.inputForeground = this.options.inputForeground, this.inputBorder = this.options.inputBorder, this.inputValidationInfoBorder = this.options.inputValidationInfoBorder, this.inputValidationInfoBackground = this.options.inputValidationInfoBackground, this.inputValidationInfoForeground = this.options.inputValidationInfoForeground, this.inputValidationWarningBorder = this.options.inputValidationWarningBorder, this.inputValidationWarningBackground = this.options.inputValidationWarningBackground, this.inputValidationWarningForeground = this.options.inputValidationWarningForeground, this.inputValidationErrorBorder = this.options.inputValidationErrorBorder, this.inputValidationErrorBackground = this.options.inputValidationErrorBackground, this.inputValidationErrorForeground = this.options.inputValidationErrorForeground, this.options.validationOptions && (this.validation = this.options.validationOptions.validation), this.element = n.n(e, b(\".monaco-inputbox.idle\")), i = this.options.flexibleHeight ? \"textarea\" : \"input\";\n            let o = n.n(this.element, b(\".ibwrapper\"));\n            if (this.input = n.n(o, b(i + \".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) {\n                this.maxHeight = \"number\" == typeof this.options.flexibleMaxHeight ? this.options.flexibleMaxHeight : Number.POSITIVE_INFINITY, this.mirror = n.n(o, b(\"div.mirror\")), this.mirror.innerText = \" \", this.scrollableElement = new h.b(this.element, {\n                    vertical: 1\n                }), this.options.flexibleWidth && (this.input.setAttribute(\"wrap\", \"off\"), this.mirror.style.whiteSpace = \"pre\", this.mirror.style.wordWrap = \"initial\"), n.n(e, this.scrollableElement.getDomNode()), this._register(this.scrollableElement), this._register(this.scrollableElement.onScroll(e => this.input.scrollTop = e.scrollTop)), e = this._register(new r.a(document, \"selectionchange\"));\n                const t = p.c.filter(e.event, () => {\n                    var e = document.getSelection();\n                    return (null == e ? void 0 : e.anchorNode) === o\n                });\n                this._register(t(this.updateScrollDimensions, this)), this._register(this.onDidHeightChange(this.updateScrollDimensions, this))\n            } else this.input.type = this.options.type || \"text\", this.input.setAttribute(\"wrap\", \"off\");\n            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.ignoreGesture(this.input), setTimeout(() => this.updateMirror(), 0), this.options.actions && (this.actionbar = this._register(new d.a(this.element)), this.actionbar.push(this.options.actions, {\n                icon: !0,\n                label: !1\n            })), this.applyStyles()\n        }\n        onBlur() {\n            this._hideMessage(), this.options.showPlaceholderOnFocus && this.input.setAttribute(\"placeholder\", \"\")\n        }\n        onFocus() {\n            this._showMessage(), this.options.showPlaceholderOnFocus && this.input.setAttribute(\"placeholder\", this.placeholder || \"\")\n        }\n        setPlaceHolder(e) {\n            this.placeholder = e, this.input.setAttribute(\"placeholder\", e)\n        }\n        setTooltip(e) {\n            this.tooltip = e, this.input.title = e\n        }\n        setAriaLabel(e) {\n            (this.ariaLabel = e) ? this.input.setAttribute(\"aria-label\", this.ariaLabel): this.input.removeAttribute(\"aria-label\")\n        }\n        getAriaLabel() {\n            return this.ariaLabel\n        }\n        get inputElement() {\n            return this.input\n        }\n        get value() {\n            return this.input.value\n        }\n        set value(e) {\n            this.input.value !== e && (this.input.value = e, this.onValueChange())\n        }\n        get height() {\n            return \"number\" == typeof this.cachedHeight ? this.cachedHeight : n.E(this.element)\n        }\n        focus() {\n            this.input.focus()\n        }\n        blur() {\n            this.input.blur()\n        }\n        hasFocus() {\n            return document.activeElement === this.input\n        }\n        select(e = null) {\n            this.input.select(), e && (this.input.setSelectionRange(e.start, e.end), e.end === this.input.value.length && (this.input.scrollLeft = this.input.scrollWidth))\n        }\n        isSelectionAtEnd() {\n            return this.input.selectionEnd === this.input.value.length && this.input.selectionStart === this.input.selectionEnd\n        }\n        enable() {\n            this.input.removeAttribute(\"disabled\")\n        }\n        disable() {\n            this.blur(), this.input.disabled = !0, this._hideMessage()\n        }\n        get width() {\n            return n.F(this.input)\n        }\n        set width(e) {\n            if (this.options.flexibleHeight && this.options.flexibleWidth) {\n                let t = 0;\n                this.mirror && (t = (parseFloat(this.mirror.style.paddingLeft || \"\") || 0) + (parseFloat(this.mirror.style.paddingRight || \"\") || 0)), this.input.style.width = e - t + \"px\"\n            } else this.input.style.width = e + \"px\";\n            this.mirror && (this.mirror.style.width = e + \"px\")\n        }\n        set paddingRight(e) {\n            this.options.flexibleHeight && this.options.flexibleWidth ? this.input.style.width = `calc(100% - ${e}px)` : this.input.style.paddingRight = e + \"px\", this.mirror && (this.mirror.style.paddingRight = e + \"px\")\n        }\n        updateScrollDimensions() {\n            var e, t, i;\n            \"number\" == typeof this.cachedContentHeight && \"number\" == typeof this.cachedHeight && this.scrollableElement && (e = this.cachedContentHeight, t = this.cachedHeight, i = this.input.scrollTop, this.scrollableElement.setScrollDimensions({\n                scrollHeight: e,\n                height: t\n            }), this.scrollableElement.setScrollPosition({\n                scrollTop: i\n            }))\n        }\n        showMessage(e, t) {\n            this.message = e, 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(e.type)), e = this.stylesForType(this.message.type), this.element.style.border = e.border ? \"1px solid \" + e.border : \"\", (this.hasFocus() || t) && this._showMessage()\n        }\n        hideMessage() {\n            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()\n        }\n        validate() {\n            let e = null;\n            return this.validation && (e = this.validation(this.value), e ? (this.inputElement.setAttribute(\"aria-invalid\", \"true\"), this.showMessage(e)) : this.inputElement.hasAttribute(\"aria-invalid\") && (this.inputElement.removeAttribute(\"aria-invalid\"), this.hideMessage())), null == e ? void 0 : e.type\n        }\n        stylesForType(e) {\n            switch (e) {\n                case 1:\n                    return {\n                        border: this.inputValidationInfoBorder, background: this.inputValidationInfoBackground, foreground: this.inputValidationInfoForeground\n                    };\n                case 2:\n                    return {\n                        border: this.inputValidationWarningBorder, background: this.inputValidationWarningBackground, foreground: this.inputValidationWarningForeground\n                    };\n                default:\n                    return {\n                        border: this.inputValidationErrorBorder, background: this.inputValidationErrorBackground, foreground: this.inputValidationErrorForeground\n                    }\n            }\n        }\n        classForType(e) {\n            switch (e) {\n                case 1:\n                    return \"info\";\n                case 2:\n                    return \"warning\";\n                default:\n                    return \"error\"\n            }\n        }\n        _showMessage() {\n            if (this.contextViewProvider && this.message) {\n                let e, t, i = () => e.style.width = n.F(this.element) + \"px\";\n                this.contextViewProvider.showContextView({\n                    getAnchor: () => this.element,\n                    anchorAlignment: 1,\n                    render: t => {\n                        if (!this.message) return null;\n                        e = n.n(t, b(\".monaco-inputbox-container\")), i(), t = {\n                            inline: !0,\n                            className: \"monaco-inputbox-message\"\n                        };\n                        const r = (this.message.formatContent ? o : function(e, t) {\n                            const i = s(t);\n                            return i.textContent = e, i\n                        })(this.message.content, t);\n                        r.classList.add(this.classForType(this.message.type));\n                        const a = this.stylesForType(this.message.type);\n                        return r.style.backgroundColor = a.background ? a.background.toString() : \"\", r.style.color = a.foreground ? a.foreground.toString() : \"\", r.style.border = a.border ? \"1px solid \" + a.border : \"\", n.n(e, r), null\n                    },\n                    onHide: () => {\n                        this.state = \"closed\"\n                    },\n                    layout: i\n                }), t = 3 === this.message.type ? v.a(\"alertErrorMessage\", \"Error: {0}\", this.message.content) : 2 === this.message.type ? v.a(\"alertWarningMessage\", \"Warning: {0}\", this.message.content) : v.a(\"alertInfoMessage\", \"Info: {0}\", this.message.content), c.a(t), this.state = \"open\"\n            }\n        }\n        _hideMessage() {\n            this.contextViewProvider && (\"open\" === this.state && this.contextViewProvider.hideContextView(), this.state = \"idle\")\n        }\n        onValueChange() {\n            this._onDidChange.fire(this.value), this.validate(), this.updateMirror(), this.input.classList.toggle(\"empty\", !this.value), \"open\" === this.state && this.contextViewProvider && this.contextViewProvider.layout()\n        }\n        updateMirror() {\n            if (this.mirror) {\n                const t = this.value;\n                var e = 10 === t.charCodeAt(t.length - 1) ? \" \" : \"\";\n                (t + e).replace(/\\u000c/g, \"\") ? this.mirror.textContent = t + e : this.mirror.innerText = \" \", this.layout()\n            }\n        }\n        style(e) {\n            this.inputBackground = e.inputBackground, this.inputForeground = e.inputForeground, this.inputBorder = e.inputBorder, this.inputValidationInfoBackground = e.inputValidationInfoBackground, this.inputValidationInfoForeground = e.inputValidationInfoForeground, this.inputValidationInfoBorder = e.inputValidationInfoBorder, this.inputValidationWarningBackground = e.inputValidationWarningBackground, this.inputValidationWarningForeground = e.inputValidationWarningForeground, this.inputValidationWarningBorder = e.inputValidationWarningBorder, this.inputValidationErrorBackground = e.inputValidationErrorBackground, this.inputValidationErrorForeground = e.inputValidationErrorForeground, this.inputValidationErrorBorder = e.inputValidationErrorBorder, this.applyStyles()\n        }\n        applyStyles() {\n            var e = this.inputBackground ? this.inputBackground.toString() : \"\",\n                t = this.inputForeground ? this.inputForeground.toString() : \"\",\n                i = this.inputBorder ? this.inputBorder.toString() : \"\";\n            this.element.style.backgroundColor = e, this.element.style.color = t, this.input.style.backgroundColor = \"inherit\", this.input.style.color = t, this.element.style.borderWidth = i ? \"1px\" : \"\", this.element.style.borderStyle = i ? \"solid\" : \"\", this.element.style.borderColor = i\n        }\n        layout() {\n            var e;\n            this.mirror && (e = this.cachedContentHeight, this.cachedContentHeight = n.E(this.mirror), e !== this.cachedContentHeight && (this.cachedHeight = Math.min(this.cachedContentHeight, this.maxHeight), this.input.style.height = this.cachedHeight + \"px\", this._onDidHeightChange.fire(this.cachedContentHeight)))\n        }\n        insertAtCursor(e) {\n            const t = this.inputElement;\n            var i = t.selectionStart,\n                n = t.selectionEnd;\n            const r = t.value;\n            null !== i && null !== n && (this.value = r.substr(0, i) + e + r.substr(n), t.setSelectionRange(i + 1, i + 1), this.layout())\n        }\n        dispose() {\n            this._hideMessage(), this.message = null, this.actionbar && this.actionbar.dispose(), super.dispose()\n        }\n    }\n    class y extends w {\n        constructor(e, t, i) {\n            var n = v.a({\n                key: \"history.inputbox.hint\",\n                comment: [\"Text will be prefixed with ⇅ plus a single space, then used as a hint where input field keeps history\"]\n            }, \"for history\");\n            const r = \" or ⇅ \" + n,\n                o = ` (⇅ ${n})`;\n            super(e, t, i), this.history = new f(i.history, 100);\n            const s = () => {\n                var e;\n                i.showHistoryHint && i.showHistoryHint() && !this.placeholder.endsWith(r) && !this.placeholder.endsWith(o) && this.history.getHistory().length && (e = this.placeholder.endsWith(\")\") ? r : o, e = this.placeholder + e, i.showPlaceholderOnFocus && document.activeElement !== this.input ? this.placeholder = e : this.setPlaceHolder(e))\n            };\n            this.observer = new MutationObserver((e, t) => {\n                e.forEach(e => {\n                    e.target.textContent || s()\n                })\n            }), this.observer.observe(this.input, {\n                attributeFilter: [\"class\"]\n            }), this.onfocus(this.input, () => s()), this.onblur(this.input, () => {\n                var e = e => !!this.placeholder.endsWith(e) && (e = this.placeholder.slice(0, this.placeholder.length - e.length), i.showPlaceholderOnFocus ? this.placeholder = e : this.setPlaceHolder(e), !0);\n                e(o) || e(r)\n            })\n        }\n        dispose() {\n            super.dispose(), this.observer && (this.observer.disconnect(), this.observer = void 0)\n        }\n        addToHistory() {\n            this.value && this.value !== this.getCurrentValue() && this.history.add(this.value)\n        }\n        showNextValue() {\n            this.history.has(this.value) || this.addToHistory();\n            let e = this.getNextValue();\n            e = e && (e === this.value ? this.getNextValue() : e), e && (this.value = e, c.c(this.value))\n        }\n        showPreviousValue() {\n            this.history.has(this.value) || this.addToHistory();\n            let e = this.getPreviousValue();\n            e = e && (e === this.value ? this.getPreviousValue() : e), e && (this.value = e, c.c(this.value))\n        }\n        getCurrentValue() {\n            let e = this.history.current();\n            return e || (e = this.history.last(), this.history.next()), e\n        }\n        getPreviousValue() {\n            return this.history.previous() || this.history.first()\n        }\n        getNextValue() {\n            return this.history.next() || this.history.last()\n        }\n    }\n}, function(e, t, i) {\n    \"use strict\";\n    i.d(t, \"a\", (function() {\n        return h\n    }));\n    var n, r = i(18),\n        o = i.n(r),\n        s = (t = i(10), r = i.n(t), t = i(3), i.n(t)),\n        a = i(42),\n        l = i(19),\n        d = (t = i(69), i.n(t)),\n        c = i(12),\n        h = (n = r()(s.a.mark((function e() {\n            var t, i, n, r = arguments;\n            return s.a.wrap((function(e) {\n                for (;;) switch (e.prev = e.next) {\n                    case 0:\n                        if (t = 0 < r.length && void 0 !== r[0] ? r[0] : [], Object(l.i)()) {\n                            e.next = 3;\n                            break\n                        }\n                        return e.abrupt(\"return\", !1);\n                    case 3:\n                        return i = a.a.state.app.isDevMode ? Object(c.join)(Object(c.resolve)(\"./\"), \"/static/files\") : a.a.getters.filesPath, n = {}, o()(n, l.b, \"arm64\"), o()(n, l.c, \"x64\"), n = n[Object(l.g)()], i = Object(c.join)(i, \"darwin\", n), e.prev = 6, e.next = 9, d.a.post(\"http://127.0.0.1:53000/command\", {\n                            path: Object(c.join)(i, \"sysproxy\"),\n                            args: t\n                        });\n                    case 9:\n                        return n = e.sent, i = n.status, n = n.data, e.abrupt(\"return\", {\n                            success: 200 === i,\n                            output: n\n                        });\n                    case 15:\n                        e.prev = 15, e.t0 = e.catch(6);\n                    case 17:\n                        return e.abrupt(\"return\", {\n                            success: !1,\n                            data: \"\"\n                        });\n                    case 18:\n                    case \"end\":\n                        return e.stop()\n                }\n            }), e, null, [\n                [6, 15]\n            ])\n        }))), function() {\n            return n.apply(this, arguments)\n        })\n}, function(e, t, i) {\n    \"use strict\";\n    i.d(t, \"b\", (function() {\n        return u\n    })), i.d(t, \"a\", (function() {\n        return p\n    })), i.d(t, \"c\", (function() {\n        return g\n    }));\n    var n, r = i(10),\n        o = (t = i.n(r), r = i(3), i.n(r)),\n        s = i(40),\n        a = i(42),\n        l = i(178),\n        d = i(45),\n        c = (r = i(143), i.n(r)),\n        h = i(167),\n        u = Symbol(),\n        p = Symbol(),\n        g = (n = t()(o.a.mark((function e(t, n) {\n            var r, g, f, m, v, b;\n            return o.a.wrap((function(e) {\n                for (;;) switch (e.prev = e.next) {\n                    case 0:\n                        return e.t0 = i(69), e.t1 = i(45), e.t2 = a.a.state.app.clashPath, e.t3 = h.Console, e.t4 = l.createWriteStream, e.next = 7, a.a.dispatch(\"getScriptLogPath\");\n                    case 7:\n                        if (e.t5 = e.sent, e.t6 = (0, e.t4)(e.t5), e.t7 = new e.t3(e.t6), e.t8 = s.h, e.t9 = s.g, r = {\n                                axios: e.t0,\n                                yaml: e.t1,\n                                homeDir: e.t2,\n                                console: e.t7,\n                                notify: e.t8,\n                                dialog: e.t9\n                            }, v = a.a.state.app.settings.scriptsText, g = {}, v) try {\n                            f = Object(d.parse)(v), m = f.scripts, g = m || {}\n                        } catch (e) {}\n                        v = function() {\n                            var e = (null == (t = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : {}) ? void 0 : t.code) || \"\",\n                                t = (null == t ? void 0 : t.file) || \"\";\n                            return e ? c()(\"'use strict';\\n\".concat(e)).run : t ? (e = Object(l.readFileSync)(t, \"utf8\"), c()(\"'use strict';\\n\".concat(e), t).run) : function() {\n                                return \"\"\n                            }\n                        }, e.t10 = n, e.next = e.t10 === u ? 20 : e.t10 === p ? 23 : 26;\n                        break;\n                    case 20:\n                        return b = g.proxy, v(b)(t, r), e.abrupt(\"break\", 26);\n                    case 23:\n                        return b = g.profile, v(b)(t, r), e.abrupt(\"break\", 26);\n                    case 26:\n                    case \"end\":\n                        return e.stop()\n                }\n            }), e)\n        }))), function(e, t) {\n            return n.apply(this, arguments)\n        })\n}, function(e, t, i) {\n    \"use strict\";\n\n    function n(e, t) {\n        if (!e) throw new Error(t ? `Assertion failed (${t})` : \"Assertion Failed\")\n    }\n    i.d(t, \"a\", (function() {\n        return n\n    }))\n}, function(e, t, i) {\n    \"use strict\";\n    i.d(t, \"a\", (function() {\n        return u\n    })), i.d(t, \"b\", (function() {\n        return g\n    }));\n    var n, r = i(2),\n        o = i(4),\n        s = i(17),\n        a = i(32),\n        l = function(e, t, i, n) {\n            return new(i = i || Promise)((function(r, o) {\n                function s(e) {\n                    try {\n                        l(n.next(e))\n                    } catch (e) {\n                        o(e)\n                    }\n                }\n\n                function a(e) {\n                    try {\n                        l(n.throw(e))\n                    } catch (e) {\n                        o(e)\n                    }\n                }\n\n                function l(e) {\n                    var t;\n                    e.done ? r(e.value) : ((t = e.value) instanceof i ? t : new i((function(e) {\n                        e(t)\n                    }))).then(s, a)\n                }\n                l((n = n.apply(e, t || [])).next())\n            }))\n        };\n    (t = n = n || {})[t.None = 0] = \"None\", t[t.Initialized = 1] = \"Initialized\", t[t.Closed = 2] = \"Closed\";\n    class d extends o.a {\n        constructor(e, t = Object.create(null)) {\n            super(), this.database = e, this.options = t, this._onDidChangeStorage = this._register(new r.b), this.onDidChangeStorage = this._onDidChangeStorage.event, this.state = n.None, this.cache = new Map, this.flushDelayer = new a.f(d.DEFAULT_FLUSH_DELAY), this.pendingDeletes = new Set, this.pendingInserts = new Map, this.whenFlushedCallbacks = [], this.registerListeners()\n        }\n        registerListeners() {\n            this._register(this.database.onDidChangeItemsExternal(e => this.onDidChangeItemsExternal(e)))\n        }\n        onDidChangeItemsExternal(e) {\n            var t;\n            null !== (t = e.changed) && void 0 !== t && t.forEach((e, t) => this.accept(t, e)), null !== (e = e.deleted) && void 0 !== e && e.forEach(e => this.accept(e, void 0))\n        }\n        accept(e, t) {\n            if (this.state !== n.Closed) {\n                let i = !1;\n                Object(s.m)(t) ? i = this.cache.delete(e) : this.cache.get(e) !== t && (this.cache.set(e, t), i = !0), i && this._onDidChangeStorage.fire(e)\n            }\n        }\n        get(e, t) {\n            return e = this.cache.get(e), Object(s.m)(e) ? t : e\n        }\n        getBoolean(e, t) {\n            return e = this.get(e), Object(s.m)(e) ? t : \"true\" === e\n        }\n        getNumber(e, t) {\n            return e = this.get(e), Object(s.m)(e) ? t : parseInt(e, 10)\n        }\n        set(e, t) {\n            return l(this, void 0, void 0, (function*() {\n                if (this.state !== n.Closed) {\n                    if (Object(s.m)(t)) return this.delete(e);\n                    var i = String(t);\n                    return this.cache.get(e) !== i ? (this.cache.set(e, i), this.pendingInserts.set(e, i), this.pendingDeletes.delete(e), this._onDidChangeStorage.fire(e), this.flushDelayer.trigger(() => this.flushPending())) : void 0\n                }\n            }))\n        }\n        delete(e) {\n            return l(this, void 0, void 0, (function*() {\n                if (this.state !== n.Closed && this.cache.delete(e)) return this.pendingDeletes.has(e) || this.pendingDeletes.add(e), this.pendingInserts.delete(e), this._onDidChangeStorage.fire(e), this.flushDelayer.trigger(() => this.flushPending())\n            }))\n        }\n        get hasPending() {\n            return 0 < this.pendingInserts.size || 0 < this.pendingDeletes.size\n        }\n        flushPending() {\n            return l(this, void 0, void 0, (function*() {\n                if (this.hasPending) {\n                    var e = {\n                        insert: this.pendingInserts,\n                        delete: this.pendingDeletes\n                    };\n                    return this.pendingDeletes = new Set, this.pendingInserts = new Map, this.database.updateItems(e).finally(() => {\n                        var e;\n                        if (!this.hasPending)\n                            for (; this.whenFlushedCallbacks.length;) null !== (e = this.whenFlushedCallbacks.pop()) && void 0 !== e && e()\n                    })\n                }\n            }))\n        }\n        dispose() {\n            this.flushDelayer.dispose(), super.dispose()\n        }\n    }\n    d.DEFAULT_FLUSH_DELAY = 100;\n    class c {\n        constructor() {\n            this.onDidChangeItemsExternal = r.c.None, this.items = new Map\n        }\n        updateItems(e) {\n            return l(this, void 0, void 0, (function*() {\n                e.insert && e.insert.forEach((e, t) => this.items.set(t, e)), e.delete && e.delete.forEach(e => this.items.delete(e))\n            }))\n        }\n    }\n    i = i(26);\n    const h = \"__$__targetStorageMarker\",\n        u = Object(i.c)(\"storageService\");\n    (i = {})[i.NONE = 0] = \"NONE\", i[i.SHUTDOWN = 1] = \"SHUTDOWN\";\n    class p extends o.a {\n        constructor(e = {\n            flushInterval: p.DEFAULT_FLUSH_INTERVAL\n        }) {\n            super(), this.options = e, this._onDidChangeValue = this._register(new r.e), this._onDidChangeTarget = this._register(new r.e), this._onWillSaveState = this._register(new r.b), this.onWillSaveState = this._onWillSaveState.event, this._workspaceKeyTargets = void 0, this._globalKeyTargets = void 0\n        }\n        emitDidChangeValue(e, t) {\n            t === h ? (0 === e ? this._globalKeyTargets = void 0 : 1 === e && (this._workspaceKeyTargets = void 0), this._onDidChangeTarget.fire({\n                scope: e\n            })) : this._onDidChangeValue.fire({\n                scope: e,\n                key: t,\n                target: this.getKeyTargets(e)[t]\n            })\n        }\n        get(e, t, i) {\n            return null === (t = this.getStorage(t)) || void 0 === t ? void 0 : t.get(e, i)\n        }\n        getBoolean(e, t, i) {\n            return null === (t = this.getStorage(t)) || void 0 === t ? void 0 : t.getBoolean(e, i)\n        }\n        getNumber(e, t, i) {\n            return null === (t = this.getStorage(t)) || void 0 === t ? void 0 : t.getNumber(e, i)\n        }\n        store(e, t, i, n) {\n            Object(s.m)(t) ? this.remove(e, i) : this.withPausedEmitters(() => {\n                var r;\n                this.updateKeyTarget(e, i, n), null !== (r = this.getStorage(i)) && void 0 !== r && r.set(e, t)\n            })\n        }\n        remove(e, t) {\n            this.withPausedEmitters(() => {\n                var i;\n                this.updateKeyTarget(e, t, void 0), null !== (i = this.getStorage(t)) && void 0 !== i && i.delete(e)\n            })\n        }\n        withPausedEmitters(e) {\n            this._onDidChangeValue.pause(), this._onDidChangeTarget.pause();\n            try {\n                e()\n            } finally {\n                this._onDidChangeValue.resume(), this._onDidChangeTarget.resume()\n            }\n        }\n        updateKeyTarget(e, t, i) {\n            const n = this.getKeyTargets(t);\n            \"number\" == typeof i ? n[e] !== i && (n[e] = i, null !== (i = this.getStorage(t)) && void 0 !== i && i.set(h, JSON.stringify(n))) : \"number\" == typeof n[e] && (delete n[e], null !== (t = this.getStorage(t)) && void 0 !== t && t.set(h, JSON.stringify(n)))\n        }\n        get workspaceKeyTargets() {\n            return this._workspaceKeyTargets || (this._workspaceKeyTargets = this.loadKeyTargets(1)), this._workspaceKeyTargets\n        }\n        get globalKeyTargets() {\n            return this._globalKeyTargets || (this._globalKeyTargets = this.loadKeyTargets(0)), this._globalKeyTargets\n        }\n        getKeyTargets(e) {\n            return 0 === e ? this.globalKeyTargets : this.workspaceKeyTargets\n        }\n        loadKeyTargets(e) {\n            if (e = this.get(h, e)) try {\n                return JSON.parse(e)\n            } catch (e) {}\n            return Object.create(null)\n        }\n    }\n    p.DEFAULT_FLUSH_INTERVAL = 6e4;\n    class g extends p {\n        constructor() {\n            super(), this.globalStorage = this._register(new d(new c)), this.workspaceStorage = this._register(new d(new c)), this._register(this.workspaceStorage.onDidChangeStorage(e => this.emitDidChangeValue(1, e))), this._register(this.globalStorage.onDidChangeStorage(e => this.emitDidChangeValue(0, e)))\n        }\n        getStorage(e) {\n            return 0 === e ? this.globalStorage : this.workspaceStorage\n        }\n    }\n}, function(e, t) {\n    e.exports = require(\"net\")\n}, function(e, t, i) {\n    \"use strict\";\n    i.d(t, \"a\", (function() {\n        return o\n    }));\n    let n = !1,\n        r = null;\n    class o {\n        static getSameOriginWindowChain() {\n            if (!r) {\n                r = [];\n                let t = window;\n                for (var e;\n                    (e = function(e) {\n                        if (!e.parent || e.parent === e) return null;\n                        try {\n                            var t = e.location,\n                                i = e.parent.location;\n                            if (\"null\" !== t.origin && \"null\" !== i.origin && t.origin !== i.origin) return n = !0, null\n                        } catch (e) {\n                            return n = !0, null\n                        }\n                        return e.parent\n                    }(t)) ? r.push({\n                        window: t,\n                        iframeElement: t.frameElement || null\n                    }) : r.push({\n                        window: t,\n                        iframeElement: null\n                    }), t = e, t;);\n            }\n            return r.slice(0)\n        }\n        static hasDifferentOriginAncestor() {\n            return r || this.getSameOriginWindowChain(), n\n        }\n        static getPositionOfChildWindowRelativeToAncestorWindow(e, t) {\n            if (!t || e === t) return {\n                top: 0,\n                left: 0\n            };\n            let i = 0,\n                n = 0;\n            for (const e of this.getSameOriginWindowChain()) {\n                if (i += e.window.scrollY, n += e.window.scrollX, e.window === t) break;\n                if (!e.iframeElement) break;\n                var r = e.iframeElement.getBoundingClientRect();\n                i += r.top, n += r.left\n            }\n            return {\n                top: i,\n                left: n\n            }\n        }\n    }\n}, function(e, t, i) {\n    \"use strict\";\n    i.d(t, \"a\", (function() {\n        return s\n    })), i.d(t, \"b\", (function() {\n        return a\n    }));\n    var n = i(59),\n        r = i(110);\n\n    function o(e) {\n        return e.replace(/\\n/g, \"\\\\n\").replace(/\\r/g, \"\\\\r\")\n    }\n    class s {\n        constructor(e, t, i, n) {\n            this.oldPosition = e, this.oldText = t, this.newPosition = i, this.newText = n\n        }\n        get oldLength() {\n            return this.oldText.length\n        }\n        get oldEnd() {\n            return this.oldPosition + this.oldText.length\n        }\n        get newLength() {\n            return this.newText.length\n        }\n        get newEnd() {\n            return this.newPosition + this.newText.length\n        }\n        toString() {\n            return 0 === this.oldText.length ? `(insert@${this.oldPosition} \"${o(this.newText)}\")` : 0 === this.newText.length ? `(delete@${this.oldPosition} \"${o(this.oldText)}\")` : `(replace@${this.oldPosition} \"${o(this.oldText)}\" with \"${o(this.newText)}\")`\n        }\n        static _writeStringSize(e) {\n            return 4 + 2 * e.length\n        }\n        static _writeString(e, t, i) {\n            var r = t.length;\n            n.f(e, r, i), i += 4;\n            for (let o = 0; o < r; o++) n.e(e, t.charCodeAt(o), i), i += 2;\n            return i\n        }\n        static _readString(e, t) {\n            var i = n.c(e, t);\n            return t += 4, Object(r.b)(e, t, i)\n        }\n        writeSize() {\n            return 8 + s._writeStringSize(this.oldText) + s._writeStringSize(this.newText)\n        }\n        write(e, t) {\n            return n.f(e, this.oldPosition, t), n.f(e, this.newPosition, t += 4), t += 4, t = s._writeString(e, this.oldText, t), s._writeString(e, this.newText, t)\n        }\n        static read(e, t, i) {\n            var r = n.c(e, t),\n                o = n.c(e, t += 4);\n            t += 4;\n            var a = s._readString(e, t);\n            return t += s._writeStringSize(a), e = s._readString(e, t), t += s._writeStringSize(e), i.push(new s(r, a, o, e)), t\n        }\n    }\n\n    function a(e, t) {\n        if (null === e || 0 === e.length) return t;\n        return new l(e, t).compress()\n    }\n    class l {\n        constructor(e, t) {\n            this._prevEdits = e, this._currEdits = t, this._result = [], this._resultLen = 0, this._prevLen = this._prevEdits.length, this._prevDeltaOffset = 0, this._currLen = this._currEdits.length, this._currDeltaOffset = 0\n        }\n        compress() {\n            let e = 0,\n                t = 0,\n                i = this._getPrev(e),\n                n = this._getCurr(t);\n            for (; e < this._prevLen || t < this._currLen;)\n                if (null !== i)\n                    if (null !== n)\n                        if (n.oldEnd <= i.newPosition) this._acceptCurr(n), n = this._getCurr(++t);\n                        else if (i.newEnd <= n.oldPosition) this._acceptPrev(i), i = this._getPrev(++e);\n            else if (n.oldPosition < i.newPosition) {\n                var [r, o] = l._splitCurr(n, i.newPosition - n.oldPosition);\n                this._acceptCurr(r), n = o\n            } else if (i.newPosition < n.oldPosition) {\n                var [r, o] = l._splitPrev(i, n.oldPosition - i.newPosition);\n                this._acceptPrev(r), i = o\n            } else {\n                let r, o;\n                var a, d;\n                n = n.oldEnd === i.newEnd ? (r = i, o = n, i = this._getPrev(++e), this._getCurr(++t)) : n.oldEnd < i.newEnd ? ([a, d] = l._splitPrev(i, n.oldLength), r = a, o = n, i = d, this._getCurr(++t)) : ([a, d] = l._splitCurr(n, i.newLength), r = i, o = a, i = this._getPrev(++e), d), this._result[this._resultLen++] = new s(r.oldPosition, r.oldText, o.newPosition, o.newText), this._prevDeltaOffset += r.newLength - r.oldLength, this._currDeltaOffset += o.newLength - o.oldLength\n            } else this._acceptPrev(i), i = this._getPrev(++e);\n            else this._acceptCurr(n), n = this._getCurr(++t);\n            var c = l._merge(this._result);\n            return l._removeNoOps(c)\n        }\n        _acceptCurr(e) {\n            this._result[this._resultLen++] = l._rebaseCurr(this._prevDeltaOffset, e), this._currDeltaOffset += e.newLength - e.oldLength\n        }\n        _getCurr(e) {\n            return e < this._currLen ? this._currEdits[e] : null\n        }\n        _acceptPrev(e) {\n            this._result[this._resultLen++] = l._rebasePrev(this._currDeltaOffset, e), this._prevDeltaOffset += e.newLength - e.oldLength\n        }\n        _getPrev(e) {\n            return e < this._prevLen ? this._prevEdits[e] : null\n        }\n        static _rebaseCurr(e, t) {\n            return new s(t.oldPosition - e, t.oldText, t.newPosition, t.newText)\n        }\n        static _rebasePrev(e, t) {\n            return new s(t.oldPosition, t.oldText, t.newPosition + e, t.newText)\n        }\n        static _splitPrev(e, t) {\n            var i = e.newText.substr(0, t),\n                n = e.newText.substr(t);\n            return [new s(e.oldPosition, e.oldText, e.newPosition, i), new s(e.oldEnd, \"\", e.newPosition + t, n)]\n        }\n        static _splitCurr(e, t) {\n            var i = e.oldText.substr(0, t),\n                n = e.oldText.substr(t);\n            return [new s(e.oldPosition, i, e.newPosition, e.newText), new s(e.oldPosition + t, n, e.newEnd, \"\")]\n        }\n        static _merge(e) {\n            if (0 === e.length) return e;\n            let t = [],\n                i = 0,\n                n = e[0];\n            for (let o = 1; o < e.length; o++) {\n                var r = e[o];\n                n = n.oldEnd === r.oldPosition ? new s(n.oldPosition, n.oldText + r.oldText, n.newPosition, n.newText + r.newText) : (t[i++] = n, r)\n            }\n            return t[i++] = n, t\n        }\n        static _removeNoOps(e) {\n            if (0 === e.length) return e;\n            let t = [],\n                i = 0;\n            for (let r = 0; r < e.length; r++) {\n                var n = e[r];\n                n.oldText !== n.newText && (t[i++] = n)\n            }\n            return t\n        }\n    }\n}, function(e, t, i) {\n    \"use strict\";\n    i.d(t, \"a\", (function() {\n        return r\n    }));\n    var n = i(14);\n    class r {\n        static whitespaceVisibleColumn(e, t, i) {\n            var r = e.length;\n            let o = 0,\n                s = -1,\n                a = -1;\n            for (let l = 0; l < r; l++) {\n                if (l === t) return [s, a, o];\n                switch (o % i == 0 && (s = l, a = o), e.charCodeAt(l)) {\n                    case 32:\n                        o += 1;\n                        break;\n                    case 9:\n                        o = n.a.nextRenderTabStop(o, i);\n                        break;\n                    default:\n                        return [-1, -1, -1]\n                }\n            }\n            return t === r ? [s, a, o] : [-1, -1, -1]\n        }\n        static atomicPosition(e, t, i, o) {\n            var s = e.length,\n                [a, l, d] = r.whitespaceVisibleColumn(e, t, i);\n            if (-1 === d) return -1;\n            let c;\n            switch (o) {\n                case 0:\n                    c = !0;\n                    break;\n                case 1:\n                    c = !1;\n                    break;\n                case 2:\n                    if (d % i == 0) return t;\n                    c = d % i <= i / 2\n            }\n            if (c) {\n                if (-1 === a) return -1;\n                let t = l;\n                for (let r = a; r < s; ++r) {\n                    if (t === l + i) return a;\n                    switch (e.charCodeAt(r)) {\n                        case 32:\n                            t += 1;\n                            break;\n                        case 9:\n                            t = n.a.nextRenderTabStop(t, i);\n                            break;\n                        default:\n                            return -1\n                    }\n                }\n                return t === l + i ? a : -1\n            }\n            var h = n.a.nextRenderTabStop(d, i);\n            let u = d;\n            for (let r = t; r < s; r++) {\n                if (u === h) return r;\n                switch (e.charCodeAt(r)) {\n                    case 32:\n                        u += 1;\n                        break;\n                    case 9:\n                        u = n.a.nextRenderTabStop(u, i);\n                        break;\n                    default:\n                        return -1\n                }\n            }\n            return u === h ? s : -1\n        }\n    }\n}, function(e, t, i) {\n    \"use strict\";\n    var n = i(111);\n    i.d(t, \"a\", (function() {\n        return n.j\n    }))\n}, function(e, t, i) {\n    \"use strict\";\n    var n = i(18),\n        r = i.n(n);\n    i(82), n = i(27);\n\n    function o(e, t) {\n        var i, n = Object.keys(e);\n        return Object.getOwnPropertySymbols && (i = Object.getOwnPropertySymbols(e), t && (i = i.filter((function(t) {\n            return Object.getOwnPropertyDescriptor(e, t).enumerable\n        }))), n.push.apply(n, i)), n\n    }\n\n    function s(e) {\n        for (var t = 1; t < arguments.length; t++) {\n            var i = null != arguments[t] ? arguments[t] : {};\n            t % 2 ? o(Object(i), !0).forEach((function(t) {\n                r()(e, t, i[t])\n            })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(i)) : o(Object(i)).forEach((function(t) {\n                Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(i, t))\n            }))\n        }\n        return e\n    }\n    n = {\n        name: \"Navigator\",\n        props: {\n            list: {\n                type: Array,\n                required: !0\n            },\n            index: {\n                type: Number,\n                default: -1\n            },\n            width: {\n                type: String,\n                default: \"100\"\n            }\n        },\n        data: function() {\n            return {\n                currentHoverIndex: -1\n            }\n        },\n        watch: {},\n        computed: s(s({}, Object(n.mapState)({})), {}, {\n            listStyle: function() {\n                return -1 === this.currentHoverIndex ? {\n                    opacity: .5,\n                    alignItems: \"center\"\n                } : {\n                    opacity: 1,\n                    width: \"\".concat(this.width || \"100\", \"px\"),\n                    borderLeftWidth: \"1px\"\n                }\n            }\n        }),\n        methods: {\n            handleHover: function(e) {\n                this.currentHoverIndex = e\n            },\n            itemClass: function(e) {\n                return this.currentHoverIndex === e ? [\"item-hover\"] : e === this.index ? [\"item-selected\"] : void 0\n            }\n        },\n        updated: function() {\n            var e, t, i = this.index; - 1 === this.currentHoverIndex && -1 < i && (e = this.$refs.list, t = this.$refs.items, e && t && t.length > i && (e.scrollTop = t[i].offsetTop))\n        }\n    }, i(312), i = i(30), n = Object(i.a)(n, (function() {\n        var e = this,\n            t = e.$createElement,\n            i = e._self._c || t;\n        return i(\"div\", {\n            ref: \"list\",\n            class: [\"main-proxy-navigator-\" + e.theme],\n            style: e.listStyle,\n            on: {\n                mouseleave: function(t) {\n                    e.currentHoverIndex = -1\n                }\n            }\n        }, e._l(e.list, (function(t, n) {\n            return i(\"div\", {\n                key: t,\n                ref: \"items\",\n                refInFor: !0,\n                staticClass: \"clickable item\",\n                class: e.itemClass(n),\n                on: {\n                    mouseover: function(t) {\n                        return e.handleHover(n)\n                    },\n                    click: function(t) {\n                        return e.$emit(\"select\", n)\n                    }\n                }\n            }, [-1 === e.currentHoverIndex ? i(\"div\", [e._v(\"\\n      \" + e._s(e.$removeEmoji(t).trim()[0]) + \"\\n    \")]) : i(\"div\", {\n                staticClass: \"item-emoji\",\n                domProps: {\n                    innerHTML: e._s(e.$parseEmoji(t))\n                }\n            })])\n        })), 0)\n    }), [], !1, null, \"cd189d30\", null), t.a = n.exports\n}, function(e, t, i) {\n    \"use strict\";\n\n    function n(e, t) {\n        t = function(e) {\n                var t = [],\n                    i = v,\n                    n = \"\",\n                    r = !1,\n                    o = \"\";\n                e: for (var s = 0; s < e.length; s++) {\n                    var a = e[s];\n                    if (\"-\" === a && s === e.length - 1) {\n                        i = _, t.push(o);\n                        break e\n                    }\n                    if (\"(\" !== a)\n                        if (\")\" !== a)\n                            if (r) o += a;\n                            else switch (a) {\n                                case \".\":\n                                    t.push(o), o = \"\";\n                                    break;\n                                case \"+\":\n                                    i = b;\n                                case \"=\":\n                                    t.push(o), n = e.slice(s + 1);\n                                    break e;\n                                default:\n                                    o += a\n                            } else r = !1;\n                    else r = !0\n                }\n                return {\n                    path: t,\n                    opertation: i,\n                    value: n\n                }\n            }(t),\n            function(e, t, i) {\n                var n = 3 < arguments.length && void 0 !== arguments[3] ? arguments[3] : v,\n                    r = void 0 === (s = e.proxies) ? [] : s,\n                    o = void 0 === (s = e[\"proxy-groups\"]) ? [] : s,\n                    s = t.slice(0, -1),\n                    a = t[t.length - 1],\n                    l = i;\n                try {\n                    l = JSON.parse(i)\n                } catch (e) {}\n                var d = m.reduce(s, (function(e, i, n) {\n                    var r = e[i];\n                    return void 0 !== r || Array.isArray(e) && (r = e.find((function(e) {\n                        return e.name === i\n                    }))) ? r : (t.length > n + 1 ? (n = t[n + 1], 0 <= parseInt(n) ? e[i] = [] : e[i] = {}) : e[i] = {}, e[i])\n                }), e);\n                /(.*)/.test(\"\") && RegExp.$1;\n                var c, h = Array.isArray(d),\n                    u = function(e) {\n                        if (/^\\[\\](shuffledProxyNames|proxyNames|groupNames)\\|?(.+)?$/.test(e)) {\n                            var t = RegExp.$1,\n                                i = RegExp.$2 || \"\";\n                            e = \"groupNames\" === t ? o : \"proxyNames\" === t ? r : [];\n                            return (e = \"shuffledProxyNames\" === t ? m.shuffle(r) : e).map((function(e) {\n                                return e.name\n                            })).filter((function(e) {\n                                return new RegExp(i).test(e)\n                            }))\n                        }\n                        return null\n                    }(l);\n                switch (n) {\n                    case v:\n                        u ? d[a] = u : (c = f()(d[a]), d[a] = \"number\" === c ? +l : \"boolean\" === c ? \"true\" === l : l);\n                        break;\n                    case b:\n                        h ? d.splice.apply(d, [a, 0].concat(g()(u || [l]))) : d[a] = u || l;\n                        break;\n                    case _:\n                        h ? d.splice(a, 1) : delete d[a]\n                }\n            }(e, t.path, t.value, t.opertation)\n    }\n    i.d(t, \"a\", (function() {\n        return D\n    }));\n    var r = i(10),\n        o = (t = i.n(r), r = i(18), i.n(r)),\n        s = (r = i(3), i.n(r)),\n        a = i(42),\n        l = i(69),\n        d = (r = i(16), i.n(r)),\n        c = (r = i(12), i.n(r)),\n        h = i(167),\n        u = (r = i(45), i.n(r)),\n        p = (r = i(82), i.n(r)),\n        g = (r = i(52), i.n(r)),\n        f = (r = i(165), i.n(r)),\n        m = i(82),\n        v = Symbol(),\n        b = Symbol(),\n        _ = Symbol(),\n        w = i(40),\n        y = i(250);\n\n    function C(e, t) {\n        var i = \"undefined\" != typeof Symbol && e[Symbol.iterator] || e[\"@@iterator\"];\n        if (!i) {\n            if (Array.isArray(e) || (i = function(e, t) {\n                    if (e) {\n                        if (\"string\" == typeof e) return x(e, t);\n                        var i = Object.prototype.toString.call(e).slice(8, -1);\n                        return \"Map\" === (i = \"Object\" === i && e.constructor ? e.constructor.name : i) || \"Set\" === i ? Array.from(e) : \"Arguments\" === i || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i) ? x(e, t) : void 0\n                    }\n                }(e)) || t && e && \"number\" == typeof e.length) {\n                i && (e = i);\n                var n = 0;\n                return {\n                    s: t = function() {},\n                    n: function() {\n                        return n >= e.length ? {\n                            done: !0\n                        } : {\n                            done: !1,\n                            value: e[n++]\n                        }\n                    },\n                    e: function(e) {\n                        throw e\n                    },\n                    f: t\n                }\n            }\n            throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")\n        }\n        var r, o = !0,\n            s = !1;\n        return {\n            s: function() {\n                i = i.call(e)\n            },\n            n: function() {\n                var e = i.next();\n                return o = e.done, e\n            },\n            e: function(e) {\n                s = !0, r = e\n            },\n            f: function() {\n                try {\n                    o || null == i.return || i.return()\n                } finally {\n                    if (s) throw r\n                }\n            }\n        }\n    }\n\n    function x(e, t) {\n        (null == t || t > e.length) && (t = e.length);\n        for (var i = 0, n = new Array(t); i < t; i++) n[i] = e[i];\n        return n\n    }\n\n    function S(e, t) {\n        var i, n = Object.keys(e);\n        return Object.getOwnPropertySymbols && (i = Object.getOwnPropertySymbols(e), t && (i = i.filter((function(t) {\n            return Object.getOwnPropertyDescriptor(e, t).enumerable\n        }))), n.push.apply(n, i)), n\n    }\n\n    function k(e) {\n        for (var t = 1; t < arguments.length; t++) {\n            var i = null != arguments[t] ? arguments[t] : {};\n            t % 2 ? S(Object(i), !0).forEach((function(t) {\n                o()(e, t, i[t])\n            })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(i)) : S(Object(i)).forEach((function(t) {\n                Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(i, t))\n            }))\n        }\n        return e\n    }\n\n    function L(e) {\n        var t = {};\n        return /upload=(.+?)(;|$)/.test(e) && (t.upload = parseInt(RegExp.$1.trim())), /download=(.+?)(;|$)/.test(e) && (t.download = parseInt(RegExp.$1.trim())), /total=(.+?)(;|$)/.test(e) && (t.total = parseInt(RegExp.$1.trim())), /expire=(.+?)(;|$)/.test(e) && (t.expire = parseInt(RegExp.$1.trim())), t\n    }\n    var O, E, N = i(143),\n        D = (O = t()(s.a.mark((function e(t) {\n            var i, n, r, o, h, p, g, f, m, v, b, _, w, C, x, S, O, E, N, D;\n            return s.a.wrap((function(e) {\n                for (;;) switch (e.prev = e.next) {\n                    case 0:\n                        return i = t.url, n = void 0 === (n = t.cancelToken) ? null : n, e.prev = 1, e.next = 4,\n                            function(e) {\n                                var t = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : {},\n                                    i = a.a.state.app.settings.headersText,\n                                    n = {};\n                                if (i) try {\n                                    var r = u.a.parse(i).headers;\n                                    n = void 0 === r ? {} : r\n                                } catch (e) {}\n                                return Object(l.get)(e, k(k({\n                                    validateStatus: function() {\n                                        return !0\n                                    }\n                                }, t), {}, {\n                                    headers: k({\n                                        pragma: \"no-cache\"\n                                    }, n),\n                                    responseType: \"text\",\n                                    transformResponse: [function(e) {\n                                        return e\n                                    }]\n                                }))\n                            }(i, {\n                                cancelToken: n\n                            });\n                    case 4:\n                        p = e.sent, r = p.status, m = p.headers, f = void 0 === m ? {} : m, _ = p.data, o = \"config.yaml\", h = (new Date).getTime() + \".yml\";\n                        try {\n                            o = c.a.basename(i)\n                        } catch (e) {\n                            console.error(e.stack)\n                        }\n                        if (/([^\\/]*?)(?:$|\\?)/.test(i) && (o = decodeURIComponent(RegExp.$1.trim())), g = f[\"profile-update-interval\"], w = void 0 === g ? 0 : g, v = f[\"content-disposition\"], m = f[\"subscription-userinfo\"], p = void 0 === m ? \"\" : m, v && /filename=\"*(.*?)(?:$|;|\")/.test(v) && (o = decodeURIComponent(RegExp.$1.trim())), g = parseInt(w) || 0, f = a.a.state.app.profilesPath, m = c.a.join(f, h), v = -1, 200 === r) return e.next = 22, I(i, _, !0);\n                        e.next = 45;\n                        break;\n                    case 22:\n                        if (b = e.sent, w = a.a.state.app.profiles.files, x = (N = void 0 === w ? [] : w).findIndex((function(e) {\n                                return e.url === i\n                            })), v = -1 < x ? (_ = N[x], w = (w = k({}, _)).time, m = c.a.join(f, w), a.a.commit(\"CHANGE_PROFILE\", {\n                                index: x,\n                                profile: k(k({}, _), {}, {\n                                    subInfo: L(p || b)\n                                })\n                            }), x) : (S = {\n                                time: h,\n                                name: o,\n                                url: i,\n                                selected: [],\n                                interval: g,\n                                subInfo: L(p || b)\n                            }, a.a.commit(\"APPEND_PROFILE\", {\n                                profile: S\n                            }), N.length), x = m.slice(0, -4) + \".base.yml\", S = m.slice(0, -4) + \".change.yml\", !d.a.existsSync(x) || !d.a.existsSync(S)) {\n                            e.next = 41;\n                            break\n                        }\n                        if (O = d.a.readFileSync(x).toString(), E = d.a.readFileSync(S).toString(), /<{7}[\\S\\s]+?={7}[\\S\\s]+?>{7}/.test(E)) return e.abrupt(\"return\", {\n                            success: !1,\n                            message: 'Changes contains conflict, \"Make changes\" to solve issues.'\n                        });\n                        e.next = 33;\n                        break;\n                    case 33:\n                        if (D = Object(y.merge)(E, O, b, {\n                                stringSeparator: /\\n|\\r\\n/\n                            }), N = D.conflict, D = D.result, d.a.writeFileSync(x, b), d.a.writeFileSync(S, D.join(\"\\n\")), N) return e.abrupt(\"return\", {\n                            success: !1,\n                            message: 'Fail to merge profiles, \"Make changes\" to solve issues.'\n                        });\n                        e.next = 40;\n                        break;\n                    case 40:\n                        C = D.join(\"\\n\");\n                    case 41:\n                        return d.a.writeFileSync(m, C || b), e.abrupt(\"return\", {\n                            success: !0,\n                            targetIndex: v\n                        });\n                    case 45:\n                        return e.abrupt(\"return\", {\n                            success: !1,\n                            message: \"下载资料(\".concat(i, \") 失败，错误：HTTP 响应状态代码(\").concat(r, \")\")\n                        });\n                    case 46:\n                        e.next = 54;\n                        break;\n                    case 48:\n                        if (e.prev = 48, e.t0 = e.catch(1), console.error(e.t0), e.t0.message) return e.abrupt(\"return\", {\n                            success: !1,\n                            message: \"下载资料(\".concat(i, \") failed with error: \").concat(e.t0.message)\n                        });\n                        e.next = 54;\n                        break;\n                    case 54:\n                        return e.abrupt(\"return\", {\n                            success: !1,\n                            message: \"未知错误\"\n                        });\n                    case 55:\n                    case \"end\":\n                        return e.stop()\n                }\n            }), e, null, [\n                [1, 48]\n            ])\n        }))), function(e) {\n            return O.apply(this, arguments)\n        }),\n        I = (E = t()(s.a.mark((function e(t, n) {\n            var r, o, l, c, p, g, f, m, v, b, _, y, x = arguments;\n            return s.a.wrap((function(e) {\n                for (;;) switch (e.prev = e.next) {\n                    case 0:\n                        return r = 2 < x.length && void 0 !== x[2] && x[2], e.prev = 1, o = null !== (o = (void 0 === (o = a.a.state.app.profiles.files) ? [] : o).find((function(e) {\n                            return e.url === t\n                        }))) && void 0 !== o ? o : {\n                            url: t\n                        }, e.t0 = h.Console, e.t1 = d.a, e.next = 8, a.a.dispatch(\"getParserLogPath\");\n                    case 8:\n                        if (e.t2 = e.sent, e.t3 = e.t1.createWriteStream.call(e.t1, e.t2), b = new e.t0(e.t3), l = {\n                                axios: i(69),\n                                yaml: i(45),\n                                homeDir: a.a.state.app.clashPath,\n                                console: r ? b : console,\n                                notify: function(e) {\n                                    var t = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : \"\",\n                                        i = !(2 < arguments.length && void 0 !== arguments[2]) || arguments[2];\n                                    Object(w.h)(e, t, i)\n                                }\n                            }, g = a.a.state.app.settings.profileParsersText, f = [], g) try {\n                            c = u.a.parse(g), p = c.parsers, f = (void 0 === p ? [] : p) || []\n                        } catch (e) {}\n                        b = f.filter((function(e) {\n                            var i = e.url;\n                            e = e.reg;\n                            return i ? i === t : e ? new RegExp(e).test(t) : void 0\n                        })), g = n, f = C(b), e.prev = 18, f.s();\n                    case 20:\n                        if ((b = f.n()).done) {\n                            e.next = 43;\n                            break\n                        }\n                        if (v = b.value, b = v.code, m = v.file, v = v.yaml, b) return b = N(\"'use strict';\\n\".concat(b)), e.next = 27, b.parse(g, l, o);\n                        e.next = 28;\n                        break;\n                    case 27:\n                        g = e.sent;\n                    case 28:\n                        if (!m) {\n                            e.next = 40;\n                            break\n                        }\n                        if (_ = d.a.readFileSync(m, \"utf-8\"), !/\\.ya?ml$/.test(m)) {\n                            e.next = 35;\n                            break\n                        }\n                        y = u.a.parse(_), g = T(g, y), e.next = 40;\n                        break;\n                    case 35:\n                        if (/\\.js$/.test(m)) return y = N(\"'use strict';\\n\".concat(_), m), e.next = 39, y.parse(g, l, o);\n                        e.next = 40;\n                        break;\n                    case 39:\n                        g = e.sent;\n                    case 40:\n                        v && (g = T(g, v));\n                    case 41:\n                        e.next = 20;\n                        break;\n                    case 43:\n                        e.next = 48;\n                        break;\n                    case 45:\n                        e.prev = 45, e.t4 = e.catch(18), f.e(e.t4);\n                    case 48:\n                        return e.prev = 48, f.f(), e.finish(48);\n                    case 51:\n                        return e.abrupt(\"return\", g);\n                    case 54:\n                        throw e.prev = 54, e.t5 = e.catch(1), k(k({}, e.t5), {}, {\n                            message: \"[Parser Error] \" + e.t5.message\n                        });\n                    case 57:\n                    case \"end\":\n                        return e.stop()\n                }\n            }), e, null, [\n                [1, 54],\n                [18, 45, 48, 51]\n            ])\n        }))), function(e, t) {\n            return E.apply(this, arguments)\n        }),\n        T = function(e, t) {\n            var i = {},\n                r = void 0 === (c = t[\"append-rules\"]) ? [] : c,\n                o = void 0 === (_ = t[\"prepend-rules\"]) ? [] : _,\n                s = void 0 === (h = t[\"append-proxies\"]) ? [] : h,\n                a = void 0 === (v = t[\"prepend-proxies\"]) ? [] : v,\n                l = void 0 === (g = t[\"append-proxy-groups\"]) ? [] : g,\n                d = void 0 === (w = t[\"prepend-proxy-groups\"]) ? [] : w,\n                c = void 0 === (f = t[\"mix-proxy-providers\"]) ? {} : f,\n                h = void 0 === (_ = t[\"mix-rule-providers\"]) ? {} : _,\n                g = void 0 === (v = t[\"mix-object\"]) ? {} : v,\n                f = void 0 === (w = t.commands) ? [] : w,\n                m = void 0 === (_ = t[\"key-orders\"]) ? [] : _,\n                v = u.a.parse(e),\n                b = p.a.cloneDeep(v),\n                _ = (t = void 0 === (w = v.rules) ? [] : w, e = void 0 === (_ = v.proxies) ? [] : _, void 0 === (w = v[\"proxy-groups\"]) ? [] : w),\n                w = void 0 === (w = v[\"proxy-providers\"]) ? {} : w;\n            v = void 0 === (v = v[\"rule-providers\"]) ? {} : v;\n            (o || r) && (b.rules = o.concat(null != t ? t : []).concat(r)), (a || s) && (b.proxies = a.concat(null != e ? e : []).concat(s)), (d || l) && (b[\"proxy-groups\"] = d.concat(null != _ ? _ : []).concat(l)), c && (b[\"proxy-providers\"] = k(k({}, w), c)), h && (b[\"rule-providers\"] = k(k({}, v), h));\n            var y, x = C(f);\n            try {\n                for (x.s(); !(y = x.n()).done;) {\n                    n(b, y.value)\n                }\n            } catch (e) {\n                x.e(e)\n            } finally {\n                x.f()\n            }\n            return 0 < m.length && (i.sortMapEntries = function(e, t) {\n                var i = e.key,\n                    n = t.key;\n                return (-1 === (e = m.findIndex((function(e) {\n                    return e === i.value\n                }))) ? 1 / 0 : e) - (-1 === (t = m.findIndex((function(e) {\n                    return e === n.value\n                }))) ? 1 / 0 : t)\n            }), u.a.stringify(k(k({}, b), g), i)\n        }\n}, function(e, t, i) {\n    var n = i(451);\n    (n = \"string\" == typeof(n = n.__esModule ? n.default : n) ? [\n        [e.i, n, \"\"]\n    ] : n).locals && (e.exports = n.locals), (0, i(25).default)(\"2b206c42\", n, !0, {})\n}, function(e, t) {\n    function i(t) {\n        return \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? e.exports = i = function(e) {\n            return typeof e\n        } : e.exports = i = function(e) {\n            return e && \"function\" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? \"symbol\" : typeof e\n        }, e.exports.default = e.exports, e.exports.__esModule = !0, i(t)\n    }\n    e.exports = i, e.exports.default = e.exports, e.exports.__esModule = !0\n}, function(e, t, i) {\n    \"use strict\";\n    t.a = 'function FindProxyForURL(url, host) {\\n  return \"PROXY 127.0.0.1:%mixed-port%; SOCKS5 127.0.0.1:%mixed-port%; DIRECT;\"\\n}'\n}, function(e, t) {\n    e.exports = require(\"console\")\n}, function(e, t, i) {\n    \"use strict\";\n    i.d(t, \"a\", (function() {\n        return g\n    }));\n    var n, r, o = i(10),\n        s = (t = i.n(o), o = i(3), i.n(o)),\n        a = i(19),\n        l = i(77),\n        d = i(12),\n        c = i(42),\n        h = i(22),\n        u = \"cfw-update\".concat(Object(a.i)() ? \".dmg\" : \".exe\"),\n        p = (n = t()(s.a.mark((function e(t) {\n            var i, n;\n            return s.a.wrap((function(e) {\n                for (;;) switch (e.prev = e.next) {\n                    case 0:\n                        return e.next = 2, h.ipcRenderer.invoke(\"app\", \"getPath\", \"temp\");\n                    case 2:\n                        return i = e.sent, n = Object(d.join)(i, u), e.next = 6, h.ipcRenderer.invoke(\"start-download\", t, n);\n                    case 6:\n                        return e.next = 8, new Promise((function(e, t) {\n                            h.ipcRenderer.on(\"download\", (function(i, r, o) {\n                                \"downloading\" === r && c.a.commit(\"SET_UPDATE_DOWNLOAD_PROGRESS\", {\n                                    progress: o\n                                }), \"completed\" === r && (c.a.commit(\"SET_UPDATE_DOWNLOAD_PROGRESS\", {\n                                    progress: null\n                                }), e(n)), \"failed\" === r && (c.a.commit(\"SET_UPDATE_DOWNLOAD_PROGRESS\", {\n                                    progress: null\n                                }), t(o))\n                            }))\n                        }));\n                    case 8:\n                        return e.abrupt(\"return\", e.sent);\n                    case 9:\n                    case \"end\":\n                        return e.stop()\n                }\n            }), e)\n        }))), function(e) {\n            return n.apply(this, arguments)\n        }),\n        g = (r = t()(s.a.mark((function e(t, i) {\n            var n, r;\n            return s.a.wrap((function(e) {\n                for (;;) switch (e.prev = e.next) {\n                    case 0:\n                        return e.next = 2, p(t);\n                    case 2:\n                        if (n = e.sent) {\n                            e.next = 5;\n                            break\n                        }\n                        return e.abrupt(\"return\");\n                    case 5:\n                        return e.next = 7, h.ipcRenderer.invoke(\"app\", \"getName\");\n                    case 7:\n                        return r = e.sent, Object(a.i)() && (Object(l.execSync)(\"hdiutil attach '\".concat(n, \"' -nobrowse\"), {\n                            stdio: [\"ignore\", \"ignore\", \"ignore\"]\n                        }), Object(l.execSync)(\"rm -rf '/Applications/\".concat(r, \".app' && cp -R '/Volumes/\").concat(r, \" \").concat(i, \"/\").concat(r, \".app' '/Applications/\").concat(r, \".app'\")), Object(l.execSync)(\"hdiutil eject '/Volumes/\".concat(r, \" \").concat(i, \"'\"), {\n                            stdio: [\"ignore\", \"ignore\", \"ignore\"]\n                        })), e.abrupt(\"return\", n);\n                    case 10:\n                    case \"end\":\n                        return e.stop()\n                }\n            }), e)\n        }))), function(e, t) {\n            return r.apply(this, arguments)\n        })\n}, function(e, t, i) {\n    \"use strict\";\n    i = i(19), i = Object(i.i)() ? [\"127.0.0.1\", \"192.168.0.0/16\", \"10.0.0.0/8\", \"172.16.0.0/12\", \"100.64.0.0/10\", \"17.0.0.0/8\", \"localhost\", \"*.local\", \"169.254.0.0/16\", \"224.0.0.0/4\", \"240.0.0.0/4\"] : [\"localhost\", \"127.*\", \"10.*\", \"172.16.*\", \"172.17.*\", \"172.18.*\", \"172.19.*\", \"172.20.*\", \"172.21.*\", \"172.22.*\", \"172.23.*\", \"172.24.*\", \"172.25.*\", \"172.26.*\", \"172.27.*\", \"172.28.*\", \"172.29.*\", \"172.30.*\", \"172.31.*\", \"192.168.*\", \"<local>\"], t.a = i\n}, function(e, t, i) {\n    \"use strict\";\n    i.d(t, \"b\", (function() {\n        return o\n    })), i.d(t, \"a\", (function() {\n        return s\n    }));\n    var n = i(62),\n        r = (i(9), i(6));\n\n    function o(e) {\n        return -1 === e.indexOf(\"/\") && (e = e.replace(/[\\\\/]/g, n.e.sep)), /^[a-zA-Z]:(\\/|$)/.test(e) ? \"/\" + e : e\n    }\n\n    function s(e, t, i, o = n.h) {\n        if (e === t) return !0;\n        if (!e || !t) return !1;\n        if (t.length > e.length) return !1;\n        if (i) {\n            if (!Object(r.R)(e, t)) return !1;\n            if (t.length === e.length) return !0;\n            let i = t.length;\n            return t.charAt(t.length - 1) === o && i--, e.charAt(i) === o\n        }\n        return t.charAt(t.length - 1) !== o && (t += o), 0 === e.indexOf(t)\n    }\n}, function(e, t, i) {\n    \"use strict\";\n    i.d(t, \"a\", (function() {\n        return L\n    })), i.d(t, \"b\", (function() {\n        return O\n    }));\n    var n = i(32),\n        r = i(170),\n        o = (t = i(73), i(62)),\n        s = i(6);\n    const a = \"**\",\n        l = \"[/\\\\\\\\]\",\n        d = \"[^/\\\\\\\\]\",\n        c = /\\//g;\n\n    function h(e) {\n        switch (e) {\n            case 0:\n                return \"\";\n            case 1:\n                return d + \"*?\";\n            default:\n                return `(?:[/\\\\\\\\]|${d}+[/\\\\\\\\]|[/\\\\\\\\]${d}+)*?`\n        }\n    }\n\n    function u(e, t) {\n        if (!e) return [];\n        const i = [];\n        let n = !1,\n            r = !1,\n            o = \"\";\n        for (const s of e) {\n            switch (s) {\n                case t:\n                    if (n || r) break;\n                    i.push(o), o = \"\";\n                    continue;\n                case \"{\":\n                    n = !0;\n                    break;\n                case \"}\":\n                    n = !1;\n                    break;\n                case \"[\":\n                    r = !0;\n                    break;\n                case \"]\":\n                    r = !1\n            }\n            o += s\n        }\n        return o && i.push(o), i\n    }\n    const p = /^\\*\\*\\/\\*\\.[\\w\\.-]+$/,\n        g = /^\\*\\*\\/([\\w\\.-]+)\\/?$/,\n        f = /^{\\*\\*\\/[\\*\\.]?[\\w\\.-]+\\/?(,\\*\\*\\/[\\*\\.]?[\\w\\.-]+\\/?)*}$/,\n        m = /^{\\*\\*\\/[\\*\\.]?[\\w\\.-]+(\\/(\\*\\*)?)?(,\\*\\*\\/[\\*\\.]?[\\w\\.-]+(\\/(\\*\\*)?)?)*}$/,\n        v = /^\\*\\*((\\/[\\w\\.-]+)+)\\/?$/,\n        b = /^([\\w\\.-]+(\\/[\\w\\.-]+)*)\\/?$/,\n        _ = new t.a(1e4),\n        w = function() {\n            return !1\n        },\n        y = function() {\n            return null\n        };\n\n    function C(e, t) {\n        if (!e) return y;\n        let i;\n        i = \"string\" != typeof e ? e.pattern : e, i = i.trim();\n        var n = `${i}_${!!t.trimForExclusions}`;\n        let r, o = _.get(n);\n        if (o) return x(o, e);\n        if (p.test(i)) {\n            const e = i.substr(4);\n            o = function(t, n) {\n                return \"string\" == typeof t && t.endsWith(e) ? i : null\n            }\n        } else o = (r = g.exec(S(i, t))) ? function(e, t) {\n            const i = \"/\" + e,\n                n = \"\\\\\" + e,\n                r = function(r, o) {\n                    return \"string\" != typeof r ? null : o ? o === e ? t : null : r === e || r.endsWith(i) || r.endsWith(n) ? t : null\n                },\n                o = [e];\n            return r.basenames = o, r.patterns = [t], r.allBasenames = o, r\n        }(r[1], i) : (t.trimForExclusions ? m : f).test(i) ? function(e, t) {\n            const i = E(e.slice(1, -1).split(\",\").map(e => C(e, t)).filter(e => e !== y), e),\n                n = i.length;\n            if (!n) return y;\n            if (1 === n) return i[0];\n\n            function r(t, n) {\n                for (let r = 0, o = i.length; r < o; r++)\n                    if (i[r](t, n)) return e;\n                return null\n            }\n            var o = i.find(e => !!e.allBasenames);\n            return o && (r.allBasenames = o.allBasenames), (o = i.reduce((e, t) => t.allPaths ? e.concat(t.allPaths) : e, [])).length && (r.allPaths = o), r\n        }(i, t) : (r = v.exec(S(i, t))) ? k(r[1].substr(1), i, !0) : (r = b.exec(S(i, t))) ? k(r[1], i, !1) : function(e) {\n            try {\n                const t = new RegExp(`^${function e(t){if(!t)return\"\";let i=\"\";const n=u(t,\"/\");if(n.every(e=>e===a))i=\".*\";else{let t=!1;n.forEach((r,o)=>{if(r!==a){let p=!1,g=\"\",f=!1,m=\"\";for(const t of r)if(\"}\"!==t&&p)g+=t;else if(!f||\"]\"===t&&m)switch(t){case\"{\":p=!0;continue;case\"[\":f=!0;continue;case\"}\":var c=`( ? : $ {\n                        u(g, \",\").map(t => e(t)).join(\"|\")\n                    })\n                    `;i+=c,p=!1,g=\"\";break;case\"]\":i+=\"[\"+m+\"]\",f=!1,m=\"\";break;case\"?\":i+=d;continue;case\"*\":i+=h(1);continue;default:i+=s.t(t)}else{let e;e=\"-\"===t?t:\"^\"!==t&&\"!\"!==t||m?\"/\"===t?\"\":s.t(t):\"^\",m+=e}o<n.length-1&&(n[o+1]!==a||o+2<n.length)&&(i+=l),t=!1}else t||(i+=h(2),t=!0)})}return i}(e)}$`);\n                return function(i) {\n                    return t.lastIndex = 0, \"string\" == typeof i && t.test(i) ? e : null\n                }\n            } catch (e) {\n                return y\n            }\n        }(i);\n        return _.set(n, o), x(o, e)\n    }\n\n    function x(e, t) {\n        return \"string\" == typeof t ? e : function(i, n) {\n            return r.a(i, t.base) ? e(o.f(t.base, i), n) : null\n        }\n    }\n\n    function S(e, t) {\n        return t.trimForExclusions && e.endsWith(\"/**\") ? e.substr(0, e.length - 2) : e\n    }\n\n    function k(e, t, i) {\n        const n = o.h === o.e.sep,\n            r = n ? e : e.replace(c, o.h),\n            s = o.h + r,\n            a = o.e.sep + e,\n            l = i ? function(i, o) {\n                return \"string\" != typeof i || i !== r && !i.endsWith(s) && (n || i !== e && !i.endsWith(a)) ? null : t\n            } : function(i, o) {\n                return \"string\" != typeof i || i !== r && (n || i !== e) ? null : t\n            };\n        return l.allPaths = [(i ? \"*/\" : \"./\") + e], l\n    }\n\n    function L(e, t, i) {\n        return !(!e || \"string\" != typeof t) && O(e)(t, void 0, i)\n    }\n\n    function O(e, t = {}) {\n        if (!e) return w;\n        if (\"string\" == typeof e || (i = e) && \"string\" == typeof i.base && \"string\" == typeof i.pattern) {\n            const n = C(e, t);\n            return n === y ? w : (i = function(e, t) {\n                return !!n(e, t)\n            }, n.allBasenames && (i.allBasenames = n.allBasenames), n.allPaths && (i.allPaths = n.allPaths), i)\n        }\n        var i;\n        return function(e, t) {\n            const i = E(Object.getOwnPropertyNames(e).map(i => function(e, t, i) {\n                    if (!1 === t) return y;\n                    const r = C(e, i);\n                    if (r === y) return y;\n                    if (\"boolean\" == typeof t) return r;\n                    if (t) {\n                        const i = t.when;\n                        if (\"string\" == typeof i) return (t = (t, o, s, a) => {\n                            if (!a || !r(t, o)) return null;\n                            const l = a(i.replace(\"$(basename)\", s));\n                            return Object(n.j)(l) ? l.then(t => t ? e : null) : l ? e : null\n                        }).requiresSiblings = !0, t\n                    }\n                    return r\n                }(i, e[i], t)).filter(e => e !== y)),\n                r = i.length;\n            if (!r) return y;\n            if (!i.some(e => !!e.requiresSiblings)) {\n                if (1 === r) return i[0];\n                const e = function(e, t) {\n                        for (let r = 0, o = i.length; r < o; r++) {\n                            var n = i[r](e, t);\n                            if (n) return n\n                        }\n                        return null\n                    },\n                    t = i.find(e => !!e.allBasenames);\n                t && (e.allBasenames = t.allBasenames);\n                const n = i.reduce((e, t) => t.allPaths ? e.concat(t.allPaths) : e, []);\n                return n.length && (e.allPaths = n), e\n            }\n            const s = function(e, t, n) {\n                    let r = void 0;\n                    for (let a = 0, l = i.length; a < l; a++) {\n                        const l = i[a];\n                        l.requiresSiblings && n && (t = t || o.a(e), r = r || t.substr(0, t.length - o.c(e).length));\n                        var s = l(e, t, r, n);\n                        if (s) return s\n                    }\n                    return null\n                },\n                a = i.find(e => !!e.allBasenames);\n            a && (s.allBasenames = a.allBasenames);\n            const l = i.reduce((e, t) => t.allPaths ? e.concat(t.allPaths) : e, []);\n            return l.length && (s.allPaths = l), s\n        }(e, t)\n    }\n\n    function E(e, t) {\n        const i = e.filter(e => !!e.basenames);\n        if (i.length < 2) return e;\n        const n = i.reduce((e, t) => (t = t.basenames) ? e.concat(t) : e, []);\n        let r;\n        if (t) {\n            r = [];\n            for (let e = 0, i = n.length; e < i; e++) r.push(t)\n        } else r = i.reduce((e, t) => (t = t.patterns) ? e.concat(t) : e, []);\n\n        function o(e, t) {\n            if (\"string\" != typeof e) return null;\n            if (!t) {\n                let n;\n                for (n = e.length; 0 < n; n--) {\n                    var i = e.charCodeAt(n - 1);\n                    if (47 === i || 92 === i) break\n                }\n                t = e.substr(n)\n            }\n            return -1 !== (t = n.indexOf(t)) ? r[t] : null\n        }\n        o.basenames = n, o.patterns = r, o.allBasenames = n;\n        const s = e.filter(e => !e.basenames);\n        return s.push(o), s\n    }\n}, function(e, t, i) {\n    \"use strict\";\n    i.d(t, \"a\", (function() {\n        return d\n    }));\n    var n = i(6),\n        r = i(14),\n        o = i(141),\n        s = i(122),\n        a = i(8),\n        l = i(5);\n    class d {\n        static _createWord(e, t, i, n, r) {\n            return {\n                start: n,\n                end: r,\n                wordType: t,\n                nextCharClass: i\n            }\n        }\n        static _findPreviousWordOnLine(e, t, i) {\n            return t = t.getLineContent(i.lineNumber), this._doFindPreviousWordOnLine(t, e, i)\n        }\n        static _doFindPreviousWordOnLine(e, t, i) {\n            let n = 0;\n            for (let o = i.column - 2; 0 <= o; o--) {\n                var r = e.charCodeAt(o);\n                if (0 === (r = t.get(r))) {\n                    if (2 === n) return this._createWord(e, n, r, o + 1, this._findEndOfWord(e, t, n, o + 1));\n                    n = 1\n                } else if (2 === r) {\n                    if (1 === n) return this._createWord(e, n, r, o + 1, this._findEndOfWord(e, t, n, o + 1));\n                    n = 2\n                } else if (1 === r && 0 !== n) return this._createWord(e, n, r, o + 1, this._findEndOfWord(e, t, n, o + 1))\n            }\n            return 0 !== n ? this._createWord(e, n, 1, 0, this._findEndOfWord(e, t, n, 0)) : null\n        }\n        static _findEndOfWord(e, t, i, n) {\n            var r = e.length;\n            for (let s = n; s < r; s++) {\n                var o = e.charCodeAt(s);\n                if (1 === (o = t.get(o))) return s;\n                if (1 === i && 2 === o) return s;\n                if (2 === i && 0 === o) return s\n            }\n            return r\n        }\n        static _findNextWordOnLine(e, t, i) {\n            return t = t.getLineContent(i.lineNumber), this._doFindNextWordOnLine(t, e, i)\n        }\n        static _doFindNextWordOnLine(e, t, i) {\n            let n = 0;\n            var r = e.length;\n            for (let s = i.column - 1; s < r; s++) {\n                var o = e.charCodeAt(s);\n                if (0 === (o = t.get(o))) {\n                    if (2 === n) return this._createWord(e, n, o, this._findStartOfWord(e, t, n, s - 1), s);\n                    n = 1\n                } else if (2 === o) {\n                    if (1 === n) return this._createWord(e, n, o, this._findStartOfWord(e, t, n, s - 1), s);\n                    n = 2\n                } else if (1 === o && 0 !== n) return this._createWord(e, n, o, this._findStartOfWord(e, t, n, s - 1), s)\n            }\n            return 0 !== n ? this._createWord(e, n, 1, this._findStartOfWord(e, t, n, r - 1), r) : null\n        }\n        static _findStartOfWord(e, t, i, n) {\n            for (let o = n; 0 <= o; o--) {\n                var r = e.charCodeAt(o);\n                if (1 === (r = t.get(r))) return o + 1;\n                if (1 === i && 2 === r) return o + 1;\n                if (2 === i && 0 === r) return o + 1\n            }\n            return 0\n        }\n        static moveWordLeft(e, t, i, n) {\n            let r = i.lineNumber,\n                o = i.column;\n            1 === o && 1 < r && (r -= 1, o = t.getLineMaxColumn(r));\n            let s = d._findPreviousWordOnLine(e, t, new a.a(r, o));\n            if (0 === n) return new a.a(r, s ? s.start + 1 : 1);\n            if (1 === n) return s && 2 === s.wordType && s.end - s.start == 1 && 0 === s.nextCharClass && (s = d._findPreviousWordOnLine(e, t, new a.a(r, s.start + 1))), new a.a(r, s ? s.start + 1 : 1);\n            if (3 !== n) return s && o <= s.end + 1 && (s = d._findPreviousWordOnLine(e, t, new a.a(r, s.start + 1))), new a.a(r, s ? s.end + 1 : 1);\n            for (; s && 2 === s.wordType;) s = d._findPreviousWordOnLine(e, t, new a.a(r, s.start + 1));\n            return new a.a(r, s ? s.start + 1 : 1)\n        }\n        static _moveWordPartLeft(e, t) {\n            var i = t.lineNumber,\n                r = e.getLineMaxColumn(i);\n            if (1 === t.column) return 1 < i ? new a.a(i - 1, e.getLineMaxColumn(i - 1)) : t;\n            const o = e.getLineContent(i);\n            for (let e = t.column - 1; 1 < e; e--) {\n                var s = o.charCodeAt(e - 2),\n                    l = o.charCodeAt(e - 1);\n                if (95 === s && 95 !== l) return new a.a(i, e);\n                if (n.G(s) && n.H(l)) return new a.a(i, e);\n                if (n.H(s) && n.H(l) && e + 1 < r && (l = o.charCodeAt(e), n.G(l))) return new a.a(i, e)\n            }\n            return new a.a(i, 1)\n        }\n        static moveWordRight(e, t, i, n) {\n            let r = i.lineNumber,\n                o = i.column,\n                s = !1;\n            o === t.getLineMaxColumn(r) && r < t.getLineCount() && (s = !0, r += 1, o = 1);\n            let l = d._findNextWordOnLine(e, t, new a.a(r, o));\n            if (2 === n) l && 2 === l.wordType && l.end - l.start == 1 && 0 === l.nextCharClass && (l = d._findNextWordOnLine(e, t, new a.a(r, l.end + 1))), o = l ? l.end + 1 : t.getLineMaxColumn(r);\n            else if (3 === n) {\n                for (s && (o = 0); l && (2 === l.wordType || l.start + 1 <= o);) l = d._findNextWordOnLine(e, t, new a.a(r, l.end + 1));\n                o = l ? l.start + 1 : t.getLineMaxColumn(r)\n            } else l && !s && o >= l.start + 1 && (l = d._findNextWordOnLine(e, t, new a.a(r, l.end + 1))), o = l ? l.start + 1 : t.getLineMaxColumn(r);\n            return new a.a(r, o)\n        }\n        static _moveWordPartRight(e, t) {\n            var i = t.lineNumber,\n                r = e.getLineMaxColumn(i);\n            if (t.column === r) return i < e.getLineCount() ? new a.a(i + 1, 1) : t;\n            const o = e.getLineContent(i);\n            for (let e = t.column + 1; e < r; e++) {\n                var s = o.charCodeAt(e - 2),\n                    l = o.charCodeAt(e - 1);\n                if (95 !== s && 95 === l) return new a.a(i, e);\n                if (n.G(s) && n.H(l)) return new a.a(i, e);\n                if (n.H(s) && n.H(l) && e + 1 < r && (l = o.charCodeAt(e), n.G(l))) return new a.a(i, e)\n            }\n            return new a.a(i, r)\n        }\n        static _deleteWordLeftWhitespace(e, t) {\n            var i = e.getLineContent(t.lineNumber);\n            e = t.column - 2;\n            return (i = n.I(i, e)) + 1 < e ? new l.a(t.lineNumber, i + 2, t.lineNumber, t.column) : null\n        }\n        static deleteWordLeft(e, t) {\n            var i = e.wordSeparators;\n            const n = e.model,\n                r = e.selection;\n            var s = e.whitespaceHeuristics;\n            if (!r.isEmpty()) return r;\n            if (o.a.isAutoClosingPairDelete(e.autoClosingDelete, e.autoClosingBrackets, e.autoClosingQuotes, e.autoClosingPairs.autoClosingPairsOpenByEnd, e.model, [e.selection], e.autoClosedCharacters)) {\n                const t = e.selection.getPosition();\n                return new l.a(t.lineNumber, t.column - 1, t.lineNumber, t.column + 1)\n            }\n            const c = new a.a(r.positionLineNumber, r.positionColumn);\n            let h = c.lineNumber,\n                u = c.column;\n            if (1 === h && 1 === u) return null;\n            if (s && (s = this._deleteWordLeftWhitespace(n, c))) return s;\n            let p = d._findPreviousWordOnLine(i, n, c);\n            return u = 0 === t ? p ? p.start + 1 : 1 < u ? 1 : (h--, n.getLineMaxColumn(h)) : (p && u <= p.end + 1 && (p = d._findPreviousWordOnLine(i, n, new a.a(h, p.start + 1))), p ? p.end + 1 : 1 < u ? 1 : (h--, n.getLineMaxColumn(h))), new l.a(h, u, c.lineNumber, c.column)\n        }\n        static deleteInsideWord(e, t, i) {\n            if (!i.isEmpty()) return i;\n            var n = new a.a(i.positionLineNumber, i.positionColumn);\n            return (i = this._deleteInsideWordWhitespace(t, n)) || this._deleteInsideWordDetermineDeleteRange(e, t, n)\n        }\n        static _charAtIsWhitespace(e, t) {\n            return 32 === (t = e.charCodeAt(t)) || 9 === t\n        }\n        static _deleteInsideWordWhitespace(e, t) {\n            var i = e.getLineContent(t.lineNumber),\n                n = i.length;\n            if (0 === n) return null;\n            let r = Math.max(t.column - 2, 0);\n            if (!this._charAtIsWhitespace(i, r)) return null;\n            let o = Math.min(t.column - 1, n - 1);\n            if (!this._charAtIsWhitespace(i, o)) return null;\n            for (; 0 < r && this._charAtIsWhitespace(i, r - 1);) r--;\n            for (; o + 1 < n && this._charAtIsWhitespace(i, o + 1);) o++;\n            return new l.a(t.lineNumber, r + 1, t.lineNumber, o + 2)\n        }\n        static _deleteInsideWordDetermineDeleteRange(e, t, i) {\n            const n = t.getLineContent(i.lineNumber),\n                r = n.length;\n            if (0 === r) return 1 < i.lineNumber ? new l.a(i.lineNumber - 1, t.getLineMaxColumn(i.lineNumber - 1), i.lineNumber, 1) : i.lineNumber < t.getLineCount() ? new l.a(i.lineNumber, 1, i.lineNumber + 1, 1) : new l.a(i.lineNumber, 1, i.lineNumber, 1);\n            var o = e => e.start + 1 <= i.column && i.column <= e.end + 1;\n            const s = (e, t) => (e = Math.min(e, i.column), t = Math.max(t, i.column), new l.a(i.lineNumber, e, i.lineNumber, t));\n            var a = e => {\n                    let t = e.start + 1,\n                        i = e.end + 1,\n                        o = !1;\n                    for (; i - 1 < r && this._charAtIsWhitespace(n, i - 1);) o = !0, i++;\n                    if (!o)\n                        for (; 1 < t && this._charAtIsWhitespace(n, t - 2);) t--;\n                    return s(t, i)\n                },\n                c = d._findPreviousWordOnLine(e, t, i);\n            return c && o(c) ? a(c) : (t = d._findNextWordOnLine(e, t, i)) && o(t) ? a(t) : c && t ? s(c.end + 1, t.start + 1) : c ? s(c.start + 1, c.end + 1) : t ? s(t.start + 1, t.end + 1) : s(1, r + 1)\n        }\n        static _deleteWordPartLeft(e, t) {\n            return t.isEmpty() ? (t = t.getPosition(), e = d._moveWordPartLeft(e, t), new l.a(t.lineNumber, t.column, e.lineNumber, e.column)) : t\n        }\n        static _findFirstNonWhitespaceChar(e, t) {\n            var i = e.length;\n            for (let r = t; r < i; r++) {\n                var n = e.charAt(r);\n                if (\" \" !== n && \"\\t\" !== n) return r\n            }\n            return i\n        }\n        static _deleteWordRightWhitespace(e, t) {\n            var i = e.getLineContent(t.lineNumber);\n            return 1 + (e = t.column - 1) < (i = this._findFirstNonWhitespaceChar(i, e)) ? new l.a(t.lineNumber, t.column, t.lineNumber, i + 1) : null\n        }\n        static deleteWordRight(e, t) {\n            var i = e.wordSeparators;\n            const n = e.model,\n                r = e.selection;\n            var o = e.whitespaceHeuristics;\n            if (!r.isEmpty()) return r;\n            var s = new a.a(r.positionLineNumber, r.positionColumn);\n            let c = s.lineNumber,\n                h = s.column;\n            var u = n.getLineCount();\n            e = n.getLineMaxColumn(c);\n            if (c === u && h === e) return null;\n            if (o && (o = this._deleteWordRightWhitespace(n, s))) return o;\n            let p = d._findNextWordOnLine(i, n, s);\n            return h = 2 === t ? p ? p.end + 1 : h < e || c === u ? e : (c++, p = d._findNextWordOnLine(i, n, new a.a(c, 1)), p ? p.start + 1 : n.getLineMaxColumn(c)) : (p && h >= p.start + 1 && (p = d._findNextWordOnLine(i, n, new a.a(c, p.end + 1))), p ? p.start + 1 : h < e || c === u ? e : (c++, p = d._findNextWordOnLine(i, n, new a.a(c, 1)), p ? p.start + 1 : n.getLineMaxColumn(c))), new l.a(c, h, s.lineNumber, s.column)\n        }\n        static _deleteWordPartRight(e, t) {\n            return t.isEmpty() ? (t = t.getPosition(), e = d._moveWordPartRight(e, t), new l.a(t.lineNumber, t.column, e.lineNumber, e.column)) : t\n        }\n        static _createWordAtPosition(e, t, i) {\n            return i = new l.a(t, i.start + 1, t, i.end + 1), {\n                word: e.getValueInRange(i),\n                startColumn: i.startColumn,\n                endColumn: i.endColumn\n            }\n        }\n        static getWordAtPosition(e, t, i) {\n            var n = Object(s.a)(t);\n            return (t = d._findPreviousWordOnLine(n, e, i)) && 1 === t.wordType && t.start <= i.column - 1 && i.column - 1 <= t.end ? d._createWordAtPosition(e, i.lineNumber, t) : (n = d._findNextWordOnLine(n, e, i)) && 1 === n.wordType && n.start <= i.column - 1 && i.column - 1 <= n.end ? d._createWordAtPosition(e, i.lineNumber, n) : null\n        }\n        static word(e, t, i, n, o) {\n            var c = Object(s.a)(e.wordSeparators);\n            e = d._findPreviousWordOnLine(c, t, o), c = d._findNextWordOnLine(c, t, o);\n            if (!n) {\n                let i, n;\n                return n = e && 1 === e.wordType && e.start <= o.column - 1 && o.column - 1 <= e.end ? (i = e.start + 1, e.end + 1) : c && 1 === c.wordType && c.start <= o.column - 1 && o.column - 1 <= c.end ? (i = c.start + 1, c.end + 1) : (i = e ? e.end + 1 : 1, c ? c.start + 1 : t.getLineMaxColumn(o.lineNumber)), new r.f(new l.a(o.lineNumber, i, o.lineNumber, n), 0, new a.a(o.lineNumber, n), 0)\n            }\n            let h, u;\n            u = e && 1 === e.wordType && e.start < o.column - 1 && o.column - 1 < e.end ? (h = e.start + 1, e.end + 1) : c && 1 === c.wordType && c.start < o.column - 1 && o.column - 1 < c.end ? (h = c.start + 1, c.end + 1) : (h = o.column, o.column);\n            var p;\n            c = o.lineNumber;\n            let g;\n            return i.selectionStart.containsPosition(o) ? g = i.selectionStart.endColumn : o.isBeforeOrEqual(i.selectionStart.getStartPosition()) ? (g = h, p = new a.a(c, g), i.selectionStart.containsPosition(p) && (g = i.selectionStart.endColumn)) : (g = u, p = new a.a(c, g), i.selectionStart.containsPosition(p) && (g = i.selectionStart.startColumn)), i.move(!0, c, g, 0)\n        }\n    }\n}, function(e, t, i) {\n    \"use strict\";\n    var n = i(18),\n        r = i.n(n),\n        o = i(82);\n    n = i(27);\n\n    function s(e, t) {\n        var i, n = Object.keys(e);\n        return Object.getOwnPropertySymbols && (i = Object.getOwnPropertySymbols(e), t && (i = i.filter((function(t) {\n            return Object.getOwnPropertyDescriptor(e, t).enumerable\n        }))), n.push.apply(n, i)), n\n    }\n    n = {\n        name: \"simple-input\",\n        props: {\n            value: [String, Number],\n            placeholder: String,\n            suffix: String,\n            type: {\n                type: String,\n                default: function() {\n                    return \"text\"\n                }\n            }\n        },\n        model: {\n            prop: \"value\",\n            event: \"change\"\n        },\n        data: function() {\n            return {\n                suffixWidth: 0,\n                ref: \"\"\n            }\n        },\n        computed: function(e) {\n            for (var t = 1; t < arguments.length; t++) {\n                var i = null != arguments[t] ? arguments[t] : {};\n                t % 2 ? s(Object(i), !0).forEach((function(t) {\n                    r()(e, t, i[t])\n                })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(i)) : s(Object(i)).forEach((function(t) {\n                    Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(i, t))\n                }))\n            }\n            return e\n        }({}, Object(n.mapState)({})),\n        methods: {\n            handleTextChange: o.debounce((function(e) {\n                void 0 !== (e = (e = void 0 === (e = e.target) ? {} : e).value) && (\"number\" === this.type ? this.$emit(\"change\", parseInt(e)) : this.$emit(\"change\", e))\n            }), 500)\n        },\n        mounted: function() {\n            var e = this;\n            this.ref = Object(o.uniqueId)(\"simple-input\"), this.$nextTick((function() {\n                e.suffixWidth = e.$refs[e.ref].clientWidth\n            }))\n        }\n    }, i(296), i = i(30), n = Object(i.a)(n, (function() {\n        var e = this,\n            t = e.$createElement;\n        return (t = e._self._c || t)(\"div\", {\n            class: [\"main-simple-input-\" + e.theme]\n        }, [t(\"input\", {\n            style: {\n                paddingLeft: \"10px\",\n                paddingRight: e.suffixWidth + 10 + \"px\"\n            },\n            attrs: {\n                spellcheck: \"false\",\n                type: e.type,\n                placeholder: e.placeholder\n            },\n            domProps: {\n                value: e.value\n            },\n            on: {\n                input: e.handleTextChange\n            }\n        }), e._v(\" \"), t(\"div\", {\n            ref: e.ref,\n            staticClass: \"suffix\"\n        }, [e._v(e._s(e.suffix))])])\n    }), [], !1, null, \"7f6c1bea\", null), t.a = n.exports\n}, function(e, t, i) {\n    \"use strict\";\n    i.r(t);\n    var n = i(275),\n        r = {};\n    n.keys().forEach((function(e) {\n        \"./index.js\" !== e && (r[e.replace(/(\\.\\/|\\.js)/g, \"\")] = n(e).default)\n    })), t.default = r\n}, function(e, t) {\n    e.exports = require(\"ws\")\n}, function(e, t) {\n    e.exports = require(\"vue-router\")\n}, function(e, t) {\n    e.exports = require(\"fs-extra\")\n}, function(e, t) {\n    e.exports = require(\"original-fs\")\n}, function(e, t) {\n    e.exports = require(\"velocity-animate\")\n}, function(e, t, i) {\n    var n = i(258);\n    (n = \"string\" == typeof(n = n.__esModule ? n.default : n) ? [\n        [e.i, n, \"\"]\n    ] : n).locals && (e.exports = n.locals), (0, i(25).default)(\"3c58ddc3\", n, !0, {})\n}, function(e, t) {\n    e.exports = function(e, t) {\n        (null == t || t > e.length) && (t = e.length);\n        for (var i = 0, n = new Array(t); i < t; i++) n[i] = e[i];\n        return n\n    }, e.exports.default = e.exports, e.exports.__esModule = !0\n}, function(e, t, i) {\n    var n = i(181);\n    e.exports = function(e, t) {\n        if (e) {\n            if (\"string\" == typeof e) return n(e, t);\n            var i = Object.prototype.toString.call(e).slice(8, -1);\n            return \"Map\" === (i = \"Object\" === i && e.constructor ? e.constructor.name : i) || \"Set\" === i ? Array.from(e) : \"Arguments\" === i || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i) ? n(e, t) : void 0\n        }\n    }, e.exports.default = e.exports, e.exports.__esModule = !0\n}, function(e, t, i) {\n    var n = i(263);\n    (n = \"string\" == typeof(n = n.__esModule ? n.default : n) ? [\n        [e.i, n, \"\"]\n    ] : n).locals && (e.exports = n.locals), (0, i(25).default)(\"2ad45b95\", n, !0, {})\n}, function(e, t, i) {\n    var n = i(265);\n    (n = \"string\" == typeof(n = n.__esModule ? n.default : n) ? [\n        [e.i, n, \"\"]\n    ] : n).locals && (e.exports = n.locals), (0, i(25).default)(\"2bee9276\", n, !0, {})\n}, function(e, t, i) {\n    var n = i(267);\n    (n = \"string\" == typeof(n = n.__esModule ? n.default : n) ? [\n        [e.i, n, \"\"]\n    ] : n).locals && (e.exports = n.locals), (0, i(25).default)(\"0f487f19\", n, !0, {})\n}, function(e, t, i) {\n    var n = i(269);\n    (n = \"string\" == typeof(n = n.__esModule ? n.default : n) ? [\n        [e.i, n, \"\"]\n    ] : n).locals && (e.exports = n.locals), (0, i(25).default)(\"c344c9f0\", n, !0, {})\n}, function(e, t, i) {\n    var n = i(271);\n    (n = \"string\" == typeof(n = n.__esModule ? n.default : n) ? [\n        [e.i, n, \"\"]\n    ] : n).locals && (e.exports = n.locals), (0, i(25).default)(\"51db32d2\", n, !0, {})\n}, function(e, t, i) {\n    var n = i(273);\n    (n = \"string\" == typeof(n = n.__esModule ? n.default : n) ? [\n        [e.i, n, \"\"]\n    ] : n).locals && (e.exports = n.locals), (0, i(25).default)(\"3a7342b3\", n, !0, {})\n}, function(e, t) {\n    e.exports = require(\"get-port\")\n}, function(e, t, i) {\n    var n = {\n        \"./service_darwin\": 191,\n        \"./service_darwin.js\": 191,\n        \"./service_linux\": 192,\n        \"./service_linux.js\": 192,\n        \"./service_win32\": 193,\n        \"./service_win32.js\": 193\n    };\n\n    function r(e) {\n        return e = o(e), i(e)\n    }\n\n    function o(e) {\n        if (i.o(n, e)) return n[e];\n        throw (e = new Error(\"Cannot find module '\" + e + \"'\")).code = \"MODULE_NOT_FOUND\", e\n    }\n    r.keys = function() {\n        return Object.keys(n)\n    }, r.resolve = o, (e.exports = r).id = 190\n}, function(e, t, i) {\n    \"use strict\";\n\n    function n(e) {\n        return new Promise((function(t, i) {\n            Object(g.exec)(e, {\n                name: \"Clash for Windows\"\n            }, (function(e, n, r) {\n                e && i(e), r && i(r), n && t(n.toString()), t(\"\")\n            }))\n        }))\n    }\n\n    function r() {\n        var e = p.a.getters.filesPath,\n            t = (t = {}, c()(t, u.c, \"darwin/x64/service\"), c()(t, u.b, \"darwin/arm64/service\"), t[Object(u.f)()]);\n        return Object(f.join)(e, t)\n    }\n    i.r(t), i.d(t, \"status\", (function() {\n        return w\n    })), i.d(t, \"statusService\", (function() {\n        return y\n    })), i.d(t, \"installService\", (function() {\n        return C\n    })), i.d(t, \"uninstallService\", (function() {\n        return x\n    })), i.d(t, \"needUpdate\", (function() {\n        return S\n    })), i.d(t, \"updateService\", (function() {\n        return k\n    }));\n    var o, s, a, l, d = i(10),\n        c = (t = i.n(d), d = i(18), i.n(d)),\n        h = (d = i(3), i.n(d)),\n        u = i(19),\n        p = i(42),\n        g = i(124),\n        f = i(12),\n        m = i(16),\n        v = i(40),\n        b = (i(45), i(69)),\n        _ = '<?xml version=\"1.0\" encoding=\"UTF-8\"?>\\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\\n<plist version=\"1.0\">\\n    <dict>\\n        <key>Label</key>\\n        <string>com.lbyczf.cfw.helper</string>\\n        <key>Program</key>\\n        <string>helperPath</string>\\n        <key>RunAtLoad</key>\\n        <true/>\\n        <key>KeepAlive</key>\\n        <true/>\\n        <key>HardResourceLimits</key>\\n        <dict>\\n            <key>NumberOfFiles</key>\\n            <integer>10240</integer>\\n        </dict>\\n        <key>SoftResourceLimits</key>\\n        <dict>\\n            <key>NumberOfFiles</key>\\n            <integer>10240</integer>\\n        </dict>\\n    </dict>\\n</plist>',\n        w = {\n            Active: Symbol(),\n            Inactive: Symbol(),\n            NonExistent: Symbol(),\n            Unknown: Symbol()\n        },\n        y = (o = t()(h.a.mark((function e() {\n            var t;\n            return h.a.wrap((function(e) {\n                for (;;) switch (e.prev = e.next) {\n                    case 0:\n                        if (e.prev = 0, \"\" === (t = void 0 === (t = p.a.state.app.clashPath) ? \"\" : t) || Object(m.existsSync)(Object(f.join)(t, \"service\"))) {\n                            e.next = 4;\n                            break\n                        }\n                        return e.abrupt(\"return\", w.Inactive);\n                    case 4:\n                        return e.next = 6, b.get(\"http://127.0.0.1:53000/ping\", {\n                            timeout: 5e3\n                        });\n                    case 6:\n                        return t = (t = e.sent).status, e.abrupt(\"return\", 200 === t ? w.Active : w.Inactive);\n                    case 11:\n                        e.prev = 11, e.t0 = e.catch(0);\n                    case 13:\n                        return e.abrupt(\"return\", w.Unknown);\n                    case 14:\n                    case \"end\":\n                        return e.stop()\n                }\n            }), e, null, [\n                [0, 11]\n            ])\n        }))), function() {\n            return o.apply(this, arguments)\n        }),\n        C = (s = t()(h.a.mark((function e() {\n            var t, i;\n            return h.a.wrap((function(e) {\n                for (;;) switch (e.prev = e.next) {\n                    case 0:\n                        return e.prev = 0, i = p.a.state.app.clashPath, t = Object(f.join)(i, \"service\"), Object(m.existsSync)(t) || Object(m.mkdirSync)(t), t = Object(f.join)(i, \"service\", \"clash-core-service\"), Object(m.copyFileSync)(Object(f.join)(r(), \"clash-core-service\"), Object(f.join)(t)), i = \"/Library/LaunchDaemons/com.lbyczf.cfw.helper.plist\", e.next = 9, n('echo \"'.concat(_.replace(\"helperPath\", t), '\" > ').concat(i, \" ; launchctl load -w \").concat(i));\n                    case 9:\n                        return e.abrupt(\"return\", !0);\n                    case 12:\n                        return e.prev = 12, e.t0 = e.catch(0), e.abrupt(\"return\", !1);\n                    case 15:\n                    case \"end\":\n                        return e.stop()\n                }\n            }), e, null, [\n                [0, 12]\n            ])\n        }))), function() {\n            return s.apply(this, arguments)\n        }),\n        x = (a = t()(h.a.mark((function e() {\n            var t;\n            return h.a.wrap((function(e) {\n                for (;;) switch (e.prev = e.next) {\n                    case 0:\n                        return e.prev = 0, t = \"/Library/LaunchDaemons/com.lbyczf.cfw.helper.plist\", e.next = 4, n(\"launchctl unload \".concat(t, \" ; rm \").concat(t));\n                    case 4:\n                        return t = p.a.state.app.clashPath, t = Object(f.join)(t, \"service\"), Object(m.existsSync)(t) && Object(v.a)(t), e.abrupt(\"return\", !0);\n                    case 10:\n                        return e.prev = 10, e.t0 = e.catch(0), e.abrupt(\"return\", !1);\n                    case 13:\n                    case \"end\":\n                        return e.stop()\n                }\n            }), e, null, [\n                [0, 10]\n            ])\n        }))), function() {\n            return a.apply(this, arguments)\n        }),\n        S = function() {\n            var e = p.a.state.app.clashPath,\n                t = Object(f.join)(e, \"service\");\n            if (!Object(m.existsSync)(t)) return !1;\n            var i = Object(f.join)(e, \"service\", \"clash-core-service\");\n            return !!Object(m.existsSync)(i) && (t = Object(f.join)(r(), \"clash-core-service\"), (e = function(e) {\n                return Object(v.c)(Object(m.readFileSync)(e))\n            })(i) !== e(t))\n        },\n        k = (l = t()(h.a.mark((function e() {\n            var t, i;\n            return h.a.wrap((function(e) {\n                for (;;) switch (e.prev = e.next) {\n                    case 0:\n                        return e.prev = 0, i = p.a.state.app.clashPath, t = Object(f.join)(i, \"service\"), Object(m.existsSync)(t) || Object(m.mkdirSync)(t), t = Object(f.join)(i, \"service\", \"clash-core-service\"), Object(m.copyFileSync)(Object(f.join)(r(), \"clash-core-service\"), Object(f.join)(t)), i = \"/Library/LaunchDaemons/com.lbyczf.cfw.helper.plist\", e.next = 9, n(\"launchctl unload \".concat(i, ' ; echo \"').concat(_.replace(\"helperPath\", t), '\" > ').concat(i, \" ; launchctl load -w \").concat(i));\n                    case 9:\n                        return e.abrupt(\"return\", !0);\n                    case 12:\n                        return e.prev = 12, e.t0 = e.catch(0), e.abrupt(\"return\", !1);\n                    case 15:\n                    case \"end\":\n                        return e.stop()\n                }\n            }), e, null, [\n                [0, 12]\n            ])\n        }))), function() {\n            return l.apply(this, arguments)\n        })\n}, function(e, t, i) {\n    \"use strict\";\n\n    function n(e) {\n        return new Promise((function(t, i) {\n            Object(m.exec)(e, {\n                name: \"Clash for Windows\"\n            }, (function(e, n, r) {\n                e && i(e), r && i(r), n && t(n.toString()), t(\"\")\n            }))\n        }))\n    }\n\n    function r() {\n        var e = f.a.getters.filesPath,\n            t = u()({}, g.a, \"linux/x64/service\")[Object(g.f)()];\n        return Object(v.join)(e, t)\n    }\n\n    function o() {\n        var e = f.a.getters.filesPath;\n        return Object(v.join)(e, \"linux\", \"common\", \"service-installer\")\n    }\n    i.r(t), i.d(t, \"status\", (function() {\n        return x\n    })), i.d(t, \"statusService\", (function() {\n        return k\n    })), i.d(t, \"installService\", (function() {\n        return L\n    })), i.d(t, \"uninstallService\", (function() {\n        return O\n    })), i.d(t, \"needUpdate\", (function() {\n        return E\n    })), i.d(t, \"updateService\", (function() {\n        return N\n    }));\n    var s, a, l, d, c, h = i(10),\n        u = (t = i.n(h), h = i(18), i.n(h)),\n        p = (h = i(3), i.n(h)),\n        g = i(19),\n        f = i(42),\n        m = i(124),\n        v = i(12),\n        b = i(16),\n        _ = i(40),\n        w = (i(45), i(69)),\n        y = i(22),\n        C = i(177),\n        x = {\n            Active: Symbol(),\n            Inactive: Symbol(),\n            NonExistent: Symbol(),\n            Unknown: Symbol()\n        },\n        S = (s = t()(p.a.mark((function e() {\n            return p.a.wrap((function(e) {\n                for (;;) switch (e.prev = e.next) {\n                    case 0:\n                        return e.next = 2, y.ipcRenderer.invoke(\"app\", \"getPath\", \"temp\");\n                    case 2:\n                        return e.abrupt(\"return\", e.sent);\n                    case 3:\n                    case \"end\":\n                        return e.stop()\n                }\n            }), e)\n        }))), function() {\n            return s.apply(this, arguments)\n        }),\n        k = (a = t()(p.a.mark((function e() {\n            var t;\n            return p.a.wrap((function(e) {\n                for (;;) switch (e.prev = e.next) {\n                    case 0:\n                        if (e.prev = 0, \"\" === (t = void 0 === (t = f.a.state.app.clashPath) ? \"\" : t) || Object(b.existsSync)(Object(v.join)(t, \"service\"))) {\n                            e.next = 4;\n                            break\n                        }\n                        return e.abrupt(\"return\", x.Inactive);\n                    case 4:\n                        return e.next = 6, w.get(\"http://127.0.0.1:53000/ping\", {\n                            timeout: 5e3\n                        });\n                    case 6:\n                        return t = (t = e.sent).status, e.abrupt(\"return\", 200 === t ? x.Active : x.Inactive);\n                    case 11:\n                        e.prev = 11, e.t0 = e.catch(0);\n                    case 13:\n                        return e.abrupt(\"return\", x.Unknown);\n                    case 14:\n                    case \"end\":\n                        return e.stop()\n                }\n            }), e, null, [\n                [0, 11]\n            ])\n        }))), function() {\n            return a.apply(this, arguments)\n        }),\n        L = (l = t()(p.a.mark((function e() {\n            var t, i, s, a, l;\n            return p.a.wrap((function(e) {\n                for (;;) switch (e.prev = e.next) {\n                    case 0:\n                        return e.prev = 0, t = f.a.state.app.clashPath, i = o(), e.t0 = v.join, e.next = 6, S();\n                    case 6:\n                        return e.t1 = e.sent, s = (0, e.t0)(e.t1, \"cfw-clash-service-installer\"), l = Object(v.join)(t, \"service\"), Object(b.existsSync)(l) || Object(b.mkdirSync)(l), a = Object(v.join)(t, \"service\", \"clash-core-service\"), Object(b.copyFileSync)(Object(v.join)(r(), \"clash-core-service\"), Object(v.join)(a)), Object(C.copySync)(i, s, {\n                            overwrite: !0\n                        }), l = Object(v.join)(s, \"scripts\", \"clash-core-service.service\"), e.next = 16, n('echo \"'.concat(\"[Unit]\\nDescription=Clash core service created by Clash for Windows\\nAfter=network-online.target nftables.service iptabels.service\\n\\n[Service]\\nType=simple\\nExecStartPre=+/usr/lib/clash/setup-cgroup.sh\\nExecStart=/usr/bin/bypass-proxy helperPath\\nRestart=always\\nRestartSec=5\\n\\n[Install]\\nWantedBy=multi-user.target\".replace(\"helperPath\", a), '\" > ').concat(l, \" ; \").concat(s, \"/installer.sh install; systemctl enable clash-core-service; systemctl start clash-core-service\"));\n                    case 16:\n                        return e.abrupt(\"return\", !0);\n                    case 19:\n                        return e.prev = 19, e.t2 = e.catch(0), e.abrupt(\"return\", !1);\n                    case 22:\n                    case \"end\":\n                        return e.stop()\n                }\n            }), e, null, [\n                [0, 19]\n            ])\n        }))), function() {\n            return l.apply(this, arguments)\n        }),\n        O = (d = t()(p.a.mark((function e() {\n            var t, i, r;\n            return p.a.wrap((function(e) {\n                for (;;) switch (e.prev = e.next) {\n                    case 0:\n                        return e.prev = 0, t = o(), e.t0 = v.join, e.next = 5, S();\n                    case 5:\n                        return e.t1 = e.sent, i = (0, e.t0)(e.t1, \"cfw-clash-service-installer\"), Object(C.copySync)(t, i, {\n                            overwrite: !0\n                        }), e.next = 10, n(\"\".concat(i, \"/installer.sh uninstall\"));\n                    case 10:\n                        return r = f.a.state.app.clashPath, r = Object(v.join)(r, \"service\"), Object(b.existsSync)(r) && Object(_.a)(r), Object(b.existsSync)(i) && Object(_.a)(i), e.abrupt(\"return\", !0);\n                    case 17:\n                        return e.prev = 17, e.t2 = e.catch(0), e.abrupt(\"return\", !1);\n                    case 20:\n                    case \"end\":\n                        return e.stop()\n                }\n            }), e, null, [\n                [0, 17]\n            ])\n        }))), function() {\n            return d.apply(this, arguments)\n        }),\n        E = function() {\n            var e = f.a.state.app.clashPath,\n                t = Object(v.join)(e, \"service\");\n            if (!Object(b.existsSync)(t)) return !1;\n            var i = Object(v.join)(e, \"service\", \"clash-core-service\");\n            return !!Object(b.existsSync)(i) && (t = Object(v.join)(r(), \"clash-core-service\"), (e = function(e) {\n                return Object(_.c)(Object(b.readFileSync)(e))\n            })(i) !== e(t))\n        },\n        N = (c = t()(p.a.mark((function e() {\n            return p.a.wrap((function(e) {\n                for (;;) switch (e.prev = e.next) {\n                    case 0:\n                        return e.prev = 0, e.next = 3, O();\n                    case 3:\n                        if (e.sent) return e.next = 6, L();\n                        e.next = 7;\n                        break;\n                    case 6:\n                        return e.abrupt(\"return\", e.sent);\n                    case 7:\n                        e.next = 12;\n                        break;\n                    case 9:\n                        return e.prev = 9, e.t0 = e.catch(0), e.abrupt(\"return\", !1);\n                    case 12:\n                    case \"end\":\n                        return e.stop()\n                }\n            }), e, null, [\n                [0, 9]\n            ])\n        }))), function() {\n            return c.apply(this, arguments)\n        })\n}, function(e, t, i) {\n    \"use strict\";\n    i.r(t), i.d(t, \"status\", (function() {\n        return _\n    })), i.d(t, \"statusService\", (function() {\n        return C\n    })), i.d(t, \"installService\", (function() {\n        return x\n    })), i.d(t, \"uninstallService\", (function() {\n        return S\n    })), i.d(t, \"needUpdate\", (function() {\n        return k\n    })), i.d(t, \"updateService\", (function() {\n        return L\n    }));\n    var n, r, o, s, a, l = i(10),\n        d = (t = i.n(l), l = i(18), i.n(l)),\n        c = (l = i(3), i.n(l)),\n        h = i(19),\n        u = i(42),\n        p = (l = i(69), i.n(l)),\n        g = i(124),\n        f = i(12),\n        m = i(16),\n        v = i(40),\n        b = i(45),\n        _ = {\n            Active: Symbol(),\n            Inactive: Symbol(),\n            NonExistent: Symbol(),\n            Unknown: Symbol()\n        },\n        w = function() {\n            var e = u.a.getters.filesPath,\n                t = (t = {}, d()(t, h.d, \"win/ia32/service\"), d()(t, h.e, \"win/x64/service\"), t[Object(h.f)()]);\n            return Object(f.join)(e, t)\n        },\n        y = (n = t()(c.a.mark((function e() {\n            var t, i, n, r = arguments;\n            return c.a.wrap((function(e) {\n                for (;;) switch (e.prev = e.next) {\n                    case 0:\n                        if (t = 0 < r.length && void 0 !== r[0] ? r[0] : [], Object(h.j)()) return n = u.a.state.app.clashPath, i = Object(f.join)(n, \"service\"), n = t.map((function(e) {\n                                var t = e.cmd;\n                                e = void 0 === (e = e.options) ? [] : e;\n                                return '\"'.concat(Object(f.join)(i, \"service.exe\"), '\" ').concat(t, \" \").concat(e.join(\" \"))\n                            })).join(\" & \"), e.next = 7,\n                            function(e) {\n                                return new Promise((function(t, i) {\n                                    Object(g.exec)(e, (function(e, n, r) {\n                                        e && i(e), r && i(r), n && t(n.toString()), t(\"\")\n                                    }))\n                                }))\n                            }(n);\n                        e.next = 9;\n                        break;\n                    case 7:\n                        return n = e.sent, e.abrupt(\"return\", n);\n                    case 9:\n                        return e.abrupt(\"return\", \"\");\n                    case 10:\n                    case \"end\":\n                        return e.stop()\n                }\n            }), e)\n        }))), function() {\n            return n.apply(this, arguments)\n        }),\n        C = (r = t()(c.a.mark((function e() {\n            var t;\n            return c.a.wrap((function(e) {\n                for (;;) switch (e.prev = e.next) {\n                    case 0:\n                        if (e.prev = 0, \"\" === (t = void 0 === (t = u.a.state.app.clashPath) ? \"\" : t) || Object(m.existsSync)(Object(f.join)(t, \"service\"))) {\n                            e.next = 4;\n                            break\n                        }\n                        return e.abrupt(\"return\", _.Inactive);\n                    case 4:\n                        return e.next = 6, p.a.get(\"http://127.0.0.1:53000/ping\", {\n                            timeout: 5e3\n                        });\n                    case 6:\n                        return t = (t = e.sent).status, e.abrupt(\"return\", 200 === t ? _.Active : _.Inactive);\n                    case 11:\n                        e.prev = 11, e.t0 = e.catch(0);\n                    case 13:\n                        return e.abrupt(\"return\", _.Unknown);\n                    case 14:\n                    case \"end\":\n                        return e.stop()\n                }\n            }), e, null, [\n                [0, 11]\n            ])\n        }))), function() {\n            return r.apply(this, arguments)\n        }),\n        x = (o = t()(c.a.mark((function e() {\n            return c.a.wrap((function(e) {\n                for (;;) switch (e.prev = e.next) {\n                    case 0:\n                        return e.prev = 0,\n                            function() {\n                                var e = u.a.state.app.clashPath,\n                                    t = Object(f.join)(e, \"service\");\n                                Object(m.existsSync)(t) || Object(m.mkdirSync)(t), t = Object(f.join)(e, \"service\", \"clash-core-service.exe\"), Object(m.copyFileSync)(Object(f.join)(w(), \"clash-core-service.exe\"), Object(f.join)(t)), t = Object(f.join)(e, \"service\", \"service.exe\"), Object(m.copyFileSync)(Object(f.join)(w(), \"service.exe\"), Object(f.join)(t)), e = Object(f.join)(e, \"service\", \"service.yml\"), Object(m.writeFileSync)(e, Object(b.stringify)({\n                                    id: \"Clash Core Service\",\n                                    name: \"Clash Core Service\",\n                                    description: \"Clash Core Service started by Clash for Windows\",\n                                    executable: \"clash-core-service\",\n                                    log: {\n                                        mode: \"none\"\n                                    }\n                                }))\n                            }(), e.next = 4, y([{\n                                cmd: \"install\"\n                            }, {\n                                cmd: \"start\"\n                            }]);\n                    case 4:\n                        return e.abrupt(\"return\", !0);\n                    case 7:\n                        return e.prev = 7, e.t0 = e.catch(0), console.error(e.t0), e.abrupt(\"return\", !1);\n                    case 11:\n                    case \"end\":\n                        return e.stop()\n                }\n            }), e, null, [\n                [0, 7]\n            ])\n        }))), function() {\n            return o.apply(this, arguments)\n        }),\n        S = (s = t()(c.a.mark((function e() {\n            return c.a.wrap((function(e) {\n                for (;;) switch (e.prev = e.next) {\n                    case 0:\n                        return e.prev = 0, e.next = 3, y([{\n                            cmd: \"stop\"\n                        }, {\n                            cmd: \"uninstall\"\n                        }]);\n                    case 3:\n                        return t = void 0, t = u.a.state.app.clashPath, t = Object(f.join)(t, \"service\"), Object(m.existsSync)(t) && Object(v.a)(t), e.abrupt(\"return\", !0);\n                    case 7:\n                        return e.prev = 7, e.t0 = e.catch(0), console.error(e.t0), e.abrupt(\"return\", !1);\n                    case 11:\n                    case \"end\":\n                        return e.stop()\n                }\n                var t\n            }), e, null, [\n                [0, 7]\n            ])\n        }))), function() {\n            return s.apply(this, arguments)\n        }),\n        k = function() {\n            var e = u.a.state.app.clashPath,\n                t = Object(f.join)(e, \"service\");\n            if (!Object(m.existsSync)(t)) return !1;\n            var i = Object(f.join)(e, \"service\", \"clash-core-service.exe\");\n            return !!Object(m.existsSync)(i) && (t = Object(f.join)(w(), \"clash-core-service.exe\"), (e = function(e) {\n                return Object(v.c)(Object(m.readFileSync)(e))\n            })(i) !== e(t))\n        },\n        L = (a = t()(c.a.mark((function e() {\n            return c.a.wrap((function(e) {\n                for (;;) switch (e.prev = e.next) {\n                    case 0:\n                        return e.prev = 0, e.next = 3, S();\n                    case 3:\n                        if (e.sent) return e.next = 6, x();\n                        e.next = 7;\n                        break;\n                    case 6:\n                        return e.abrupt(\"return\", e.sent);\n                    case 7:\n                        e.next = 12;\n                        break;\n                    case 9:\n                        return e.prev = 9, e.t0 = e.catch(0), e.abrupt(\"return\", !1);\n                    case 12:\n                    case \"end\":\n                        return e.stop()\n                }\n            }), e, null, [\n                [0, 9]\n            ])\n        }))), function() {\n            return a.apply(this, arguments)\n        })\n}, function(e, t, i) {\n    var n = i(283);\n    (n = \"string\" == typeof(n = n.__esModule ? n.default : n) ? [\n        [e.i, n, \"\"]\n    ] : n).locals && (e.exports = n.locals), (0, i(25).default)(\"f09274f8\", n, !0, {})\n}, function(e, t, i) {\n    var n = i(285);\n    (n = \"string\" == typeof(n = n.__esModule ? n.default : n) ? [\n        [e.i, n, \"\"]\n    ] : n).locals && (e.exports = n.locals), (0, i(25).default)(\"11fc696c\", n, !0, {})\n}, function(e, t, i) {\n    var n = i(287);\n    (n = \"string\" == typeof(n = n.__esModule ? n.default : n) ? [\n        [e.i, n, \"\"]\n    ] : n).locals && (e.exports = n.locals), (0, i(25).default)(\"6f355441\", n, !0, {})\n}, function(e, t, i) {\n    var n = i(289);\n    (n = \"string\" == typeof(n = n.__esModule ? n.default : n) ? [\n        [e.i, n, \"\"]\n    ] : n).locals && (e.exports = n.locals), (0, i(25).default)(\"59f06bf0\", n, !0, {})\n}, function(e, t, i) {\n    var n = i(291);\n    (n = \"string\" == typeof(n = n.__esModule ? n.default : n) ? [\n        [e.i, n, \"\"]\n    ] : n).locals && (e.exports = n.locals), (0, i(25).default)(\"77f7742c\", n, !0, {})\n}, function(e, t, i) {\n    var n = i(293);\n    (n = \"string\" == typeof(n = n.__esModule ? n.default : n) ? [\n        [e.i, n, \"\"]\n    ] : n).locals && (e.exports = n.locals), (0, i(25).default)(\"23e93272\", n, !0, {})\n}, function(e, t, i) {\n    var n = i(295);\n    (n = \"string\" == typeof(n = n.__esModule ? n.default : n) ? [\n        [e.i, n, \"\"]\n    ] : n).locals && (e.exports = n.locals), (0, i(25).default)(\"1e3adce2\", n, !0, {})\n}, function(e, t, i) {\n    var n = i(297);\n    (n = \"string\" == typeof(n = n.__esModule ? n.default : n) ? [\n        [e.i, n, \"\"]\n    ] : n).locals && (e.exports = n.locals), (0, i(25).default)(\"2cb3f141\", n, !0, {})\n}, function(e, t, i) {\n    var n = i(299);\n    (n = \"string\" == typeof(n = n.__esModule ? n.default : n) ? [\n        [e.i, n, \"\"]\n    ] : n).locals && (e.exports = n.locals), (0, i(25).default)(\"d8fd8a9e\", n, !0, {})\n}, function(e, t, i) {\n    var n = i(301);\n    (n = \"string\" == typeof(n = n.__esModule ? n.default : n) ? [\n        [e.i, n, \"\"]\n    ] : n).locals && (e.exports = n.locals), (0, i(25).default)(\"84e3e6b6\", n, !0, {})\n}, function(e, t, i) {\n    var n = i(303);\n    (n = \"string\" == typeof(n = n.__esModule ? n.default : n) ? [\n        [e.i, n, \"\"]\n    ] : n).locals && (e.exports = n.locals), (0, i(25).default)(\"4953e4bc\", n, !0, {})\n}, function(e, t, i) {\n    var n = i(305);\n    (n = \"string\" == typeof(n = n.__esModule ? n.default : n) ? [\n        [e.i, n, \"\"]\n    ] : n).locals && (e.exports = n.locals), (0, i(25).default)(\"4502065a\", n, !0, {})\n}, function(e, t, i) {\n    var n = i(307);\n    (n = \"string\" == typeof(n = n.__esModule ? n.default : n) ? [\n        [e.i, n, \"\"]\n    ] : n).locals && (e.exports = n.locals), (0, i(25).default)(\"33cf478a\", n, !0, {})\n}, function(e, t, i) {\n    var n = i(309);\n    (n = \"string\" == typeof(n = n.__esModule ? n.default : n) ? [\n        [e.i, n, \"\"]\n    ] : n).locals && (e.exports = n.locals), (0, i(25).default)(\"2b2912c7\", n, !0, {})\n}, function(e, t, i) {\n    var n = i(311);\n    (n = \"string\" == typeof(n = n.__esModule ? n.default : n) ? [\n        [e.i, n, \"\"]\n    ] : n).locals && (e.exports = n.locals), (0, i(25).default)(\"7f3e50f8\", n, !0, {})\n}, function(e, t, i) {\n    var n = i(313);\n    (n = \"string\" == typeof(n = n.__esModule ? n.default : n) ? [\n        [e.i, n, \"\"]\n    ] : n).locals && (e.exports = n.locals), (0, i(25).default)(\"3a662a6a\", n, !0, {})\n}, function(e, t, i) {\n    var n = i(315);\n    (n = \"string\" == typeof(n = n.__esModule ? n.default : n) ? [\n        [e.i, n, \"\"]\n    ] : n).locals && (e.exports = n.locals), (0, i(25).default)(\"09b5c4e0\", n, !0, {})\n}, function(e, t, i) {\n    var n = i(317);\n    (n = \"string\" == typeof(n = n.__esModule ? n.default : n) ? [\n        [e.i, n, \"\"]\n    ] : n).locals && (e.exports = n.locals), (0, i(25).default)(\"0b68a622\", n, !0, {})\n}, function(e, t, i) {\n    var n = i(319);\n    (n = \"string\" == typeof(n = n.__esModule ? n.default : n) ? [\n        [e.i, n, \"\"]\n    ] : n).locals && (e.exports = n.locals), (0, i(25).default)(\"b48457be\", n, !0, {})\n}, function(e, t, i) {\n    var n = i(321);\n    (n = \"string\" == typeof(n = n.__esModule ? n.default : n) ? [\n        [e.i, n, \"\"]\n    ] : n).locals && (e.exports = n.locals), (0, i(25).default)(\"c9f5ec0a\", n, !0, {})\n}, function(e, t, i) {\n    var n = i(323);\n    (n = \"string\" == typeof(n = n.__esModule ? n.default : n) ? [\n        [e.i, n, \"\"]\n    ] : n).locals && (e.exports = n.locals), (0, i(25).default)(\"0386a09c\", n, !0, {})\n}, function(e, t, i) {\n    var n = i(325);\n    (n = \"string\" == typeof(n = n.__esModule ? n.default : n) ? [\n        [e.i, n, \"\"]\n    ] : n).locals && (e.exports = n.locals), (0, i(25).default)(\"5785b4ad\", n, !0, {})\n}, function(e, t, i) {\n    var n = i(327);\n    (n = \"string\" == typeof(n = n.__esModule ? n.default : n) ? [\n        [e.i, n, \"\"]\n    ] : n).locals && (e.exports = n.locals), (0, i(25).default)(\"7e025e06\", n, !0, {})\n}, function(e, t, i) {\n    var n = i(329);\n    (n = \"string\" == typeof(n = n.__esModule ? n.default : n) ? [\n        [e.i, n, \"\"]\n    ] : n).locals && (e.exports = n.locals), (0, i(25).default)(\"07aa29ca\", n, !0, {})\n}, function(e, t, i) {\n    var n = i(331);\n    (n = \"string\" == typeof(n = n.__esModule ? n.default : n) ? [\n        [e.i, n, \"\"]\n    ] : n).locals && (e.exports = n.locals), (0, i(25).default)(\"72a4bf42\", n, !0, {})\n}, function(e, t, i) {\n    var n = i(333);\n    (n = \"string\" == typeof(n = n.__esModule ? n.default : n) ? [\n        [e.i, n, \"\"]\n    ] : n).locals && (e.exports = n.locals), (0, i(25).default)(\"361cba3f\", n, !0, {})\n}, function(e, t, i) {\n    var n = i(335);\n    (n = \"string\" == typeof(n = n.__esModule ? n.default : n) ? [\n        [e.i, n, \"\"]\n    ] : n).locals && (e.exports = n.locals), (0, i(25).default)(\"22278d59\", n, !0, {})\n}, function(e, t, i) {\n    var n = i(337);\n    (n = \"string\" == typeof(n = n.__esModule ? n.default : n) ? [\n        [e.i, n, \"\"]\n    ] : n).locals && (e.exports = n.locals), (0, i(25).default)(\"a016a8a4\", n, !0, {})\n}, function(e, t, i) {\n    var n = i(339);\n    (n = \"string\" == typeof(n = n.__esModule ? n.default : n) ? [\n        [e.i, n, \"\"]\n    ] : n).locals && (e.exports = n.locals), (0, i(25).default)(\"beea7aa4\", n, !0, {})\n}, function(e, t, i) {\n    var n = i(341);\n    (n = \"string\" == typeof(n = n.__esModule ? n.default : n) ? [\n        [e.i, n, \"\"]\n    ] : n).locals && (e.exports = n.locals), (0, i(25).default)(\"18c55c44\", n, !0, {})\n}, function(e, t, i) {\n    var n = i(343);\n    (n = \"string\" == typeof(n = n.__esModule ? n.default : n) ? [\n        [e.i, n, \"\"]\n    ] : n).locals && (e.exports = n.locals), (0, i(25).default)(\"518083e1\", n, !0, {})\n}, function(e, t, i) {\n    var n = i(345);\n    (n = \"string\" == typeof(n = n.__esModule ? n.default : n) ? [\n        [e.i, n, \"\"]\n    ] : n).locals && (e.exports = n.locals), (0, i(25).default)(\"c78868ee\", n, !0, {})\n}, function(e, t, i) {\n    var n = i(347);\n    (n = \"string\" == typeof(n = n.__esModule ? n.default : n) ? [\n        [e.i, n, \"\"]\n    ] : n).locals && (e.exports = n.locals), (0, i(25).default)(\"019f5316\", n, !0, {})\n}, function(e, t, i) {\n    var n = i(349);\n    (n = \"string\" == typeof(n = n.__esModule ? n.default : n) ? [\n        [e.i, n, \"\"]\n    ] : n).locals && (e.exports = n.locals), (0, i(25).default)(\"553c3563\", n, !0, {})\n}, function(e, t, i) {\n    var n = i(351);\n    (n = \"string\" == typeof(n = n.__esModule ? n.default : n) ? [\n        [e.i, n, \"\"]\n    ] : n).locals && (e.exports = n.locals), (0, i(25).default)(\"b618bc42\", n, !0, {})\n}, function(e, t, i) {\n    var n = i(353);\n    (n = \"string\" == typeof(n = n.__esModule ? n.default : n) ? [\n        [e.i, n, \"\"]\n    ] : n).locals && (e.exports = n.locals), (0, i(25).default)(\"187380e9\", n, !0, {})\n}, function(e, t, i) {\n    var n = i(355);\n    (n = \"string\" == typeof(n = n.__esModule ? n.default : n) ? [\n        [e.i, n, \"\"]\n    ] : n).locals && (e.exports = n.locals), (0, i(25).default)(\"58738c88\", n, !0, {})\n}, function(e, t, i) {\n    var n = i(357);\n    (n = \"string\" == typeof(n = n.__esModule ? n.default : n) ? [\n        [e.i, n, \"\"]\n    ] : n).locals && (e.exports = n.locals), (0, i(25).default)(\"d582f078\", n, !0, {})\n}, function(e, t, i) {\n    var n = i(359);\n    (n = \"string\" == typeof(n = n.__esModule ? n.default : n) ? [\n        [e.i, n, \"\"]\n    ] : n).locals && (e.exports = n.locals), (0, i(25).default)(\"ba57312c\", n, !0, {})\n}, function(e, t, i) {\n    var n = i(361);\n    (n = \"string\" == typeof(n = n.__esModule ? n.default : n) ? [\n        [e.i, n, \"\"]\n    ] : n).locals && (e.exports = n.locals), (0, i(25).default)(\"6c9a68ba\", n, !0, {})\n}, function(e, t, i) {\n    var n = i(363);\n    (n = \"string\" == typeof(n = n.__esModule ? n.default : n) ? [\n        [e.i, n, \"\"]\n    ] : n).locals && (e.exports = n.locals), (0, i(25).default)(\"64909978\", n, !0, {})\n}, function(e, t, i) {\n    var n = i(365);\n    (n = \"string\" == typeof(n = n.__esModule ? n.default : n) ? [\n        [e.i, n, \"\"]\n    ] : n).locals && (e.exports = n.locals), (0, i(25).default)(\"76e11aef\", n, !0, {})\n}, function(e, t, i) {\n    var n = i(367);\n    (n = \"string\" == typeof(n = n.__esModule ? n.default : n) ? [\n        [e.i, n, \"\"]\n    ] : n).locals && (e.exports = n.locals), (0, i(25).default)(\"31149d92\", n, !0, {})\n}, function(e, t, i) {\n    var n = i(369);\n    (n = \"string\" == typeof(n = n.__esModule ? n.default : n) ? [\n        [e.i, n, \"\"]\n    ] : n).locals && (e.exports = n.locals), (0, i(25).default)(\"140c0bc6\", n, !0, {})\n}, function(e, t, i) {\n    var n = i(371);\n    (n = \"string\" == typeof(n = n.__esModule ? n.default : n) ? [\n        [e.i, n, \"\"]\n    ] : n).locals && (e.exports = n.locals), (0, i(25).default)(\"3fff0175\", n, !0, {})\n}, function(e, t, i) {\n    var n = i(380);\n    (n = \"string\" == typeof(n = n.__esModule ? n.default : n) ? [\n        [e.i, n, \"\"]\n    ] : n).locals && (e.exports = n.locals), (0, i(25).default)(\"9b893622\", n, !0, {})\n}, function(e, t, i) {\n    var n = i(385);\n    (n = \"string\" == typeof(n = n.__esModule ? n.default : n) ? [\n        [e.i, n, \"\"]\n    ] : n).locals && (e.exports = n.locals), (0, i(25).default)(\"08ac286b\", n, !0, {})\n}, function(e, t, i) {\n    var n = i(436);\n    (n = \"string\" == typeof(n = n.__esModule ? n.default : n) ? [\n        [e.i, n, \"\"]\n    ] : n).locals && (e.exports = n.locals), (0, i(25).default)(\"76279a60\", n, !0, {})\n}, function(e, t, i) {\n    var n = i(458);\n    (n = \"string\" == typeof(n = n.__esModule ? n.default : n) ? [\n        [e.i, n, \"\"]\n    ] : n).locals && (e.exports = n.locals), (0, i(25).default)(\"e288e9dc\", n, !0, {})\n}, function(e, t, i) {\n    var n = i(460);\n    (n = \"string\" == typeof(n = n.__esModule ? n.default : n) ? [\n        [e.i, n, \"\"]\n    ] : n).locals && (e.exports = n.locals), (0, i(25).default)(\"2c1ac222\", n, !0, {})\n}, function(e, t, i) {\n    var n = i(462);\n    (n = \"string\" == typeof(n = n.__esModule ? n.default : n) ? [\n        [e.i, n, \"\"]\n    ] : n).locals && (e.exports = n.locals), (0, i(25).default)(\"c65ed4c2\", n, !0, {})\n}, function(e, t, i) {\n    var n = i(464);\n    (n = \"string\" == typeof(n = n.__esModule ? n.default : n) ? [\n        [e.i, n, \"\"]\n    ] : n).locals && (e.exports = n.locals), (0, i(25).default)(\"56abd789\", n, !0, {})\n}, function(e, t, i) {\n    var n = i(466);\n    (n = \"string\" == typeof(n = n.__esModule ? n.default : n) ? [\n        [e.i, n, \"\"]\n    ] : n).locals && (e.exports = n.locals), (0, i(25).default)(\"6d0ac2fe\", n, !0, {})\n}, function(e, t, i) {\n    var n = i(468);\n    (n = \"string\" == typeof(n = n.__esModule ? n.default : n) ? [\n        [e.i, n, \"\"]\n    ] : n).locals && (e.exports = n.locals), (0, i(25).default)(\"0954d946\", n, !0, {})\n}, function(e, t) {\n    e.exports = require(\"crypto\")\n}, function(e, t) {\n    e.exports = require(\"http\")\n}, function(e, t) {\n    e.exports = require(\"node-diff3\")\n}, function(e, t) {\n    e.exports = require(\"zlib\")\n}, function(e, t) {\n    e.exports = require(\"tar-stream\")\n}, function(e, t) {\n    e.exports = require(\"qrcode\")\n}, function(e, t) {\n    e.exports = require(\"dhcp\")\n}, function(e, t, i) {\n    \"use strict\";\n    i.d(t, \"a\", (function() {\n        return c\n    })), i(111);\n    var n, r, o, s, a, l = i(145);\n\n    function d(e, t, i, n) {\n        this._onDidChange = new l.a, this._onDidExtraLibsChange = new l.a, this._extraLibs = Object.create(null), this._removedExtraLibs = Object.create(null), this._eagerModelSync = !1, this.setCompilerOptions(e), this.setDiagnosticsOptions(t), this.setWorkerOptions(i), this.setInlayHintsOptions(n), this._onDidExtraLibsChangeTimeout = -1\n    }(t = n = n || {})[t.None = 0] = \"None\", t[t.CommonJS = 1] = \"CommonJS\", t[t.AMD = 2] = \"AMD\", t[t.UMD = 3] = \"UMD\", t[t.System = 4] = \"System\", t[t.ES2015 = 5] = \"ES2015\", t[t.ESNext = 99] = \"ESNext\", (t = r = r || {})[t.None = 0] = \"None\", t[t.Preserve = 1] = \"Preserve\", t[t.React = 2] = \"React\", t[t.ReactNative = 3] = \"ReactNative\", t[t.ReactJSX = 4] = \"ReactJSX\", t[t.ReactJSXDev = 5] = \"ReactJSXDev\", (t = o = o || {})[t.CarriageReturnLineFeed = 0] = \"CarriageReturnLineFeed\", t[t.LineFeed = 1] = \"LineFeed\", (t = s = s || {})[t.ES3 = 0] = \"ES3\", t[t.ES5 = 1] = \"ES5\", t[t.ES2015 = 2] = \"ES2015\", t[t.ES2016 = 3] = \"ES2016\", t[t.ES2017 = 4] = \"ES2017\", t[t.ES2018 = 5] = \"ES2018\", t[t.ES2019 = 6] = \"ES2019\", t[t.ES2020 = 7] = \"ES2020\", t[t.ESNext = 99] = \"ESNext\", t[t.JSON = 100] = \"JSON\", t[t.Latest = 99] = \"Latest\", (t = a = a || {})[t.Classic = 1] = \"Classic\", t[t.NodeJs = 2] = \"NodeJs\", Object.defineProperty(d.prototype, \"onDidChange\", {\n        get: function() {\n            return this._onDidChange.event\n        },\n        enumerable: !1,\n        configurable: !0\n    }), Object.defineProperty(d.prototype, \"onDidExtraLibsChange\", {\n        get: function() {\n            return this._onDidExtraLibsChange.event\n        },\n        enumerable: !1,\n        configurable: !0\n    }), Object.defineProperty(d.prototype, \"workerOptions\", {\n        get: function() {\n            return this._workerOptions\n        },\n        enumerable: !1,\n        configurable: !0\n    }), Object.defineProperty(d.prototype, \"inlayHintsOptions\", {\n        get: function() {\n            return this._inlayHintsOptions\n        },\n        enumerable: !1,\n        configurable: !0\n    }), d.prototype.getExtraLibs = function() {\n        return this._extraLibs\n    }, d.prototype.addExtraLib = function(e, t) {\n        var i = this,\n            n = void 0 === t ? \"ts:extralib-\" + Math.random().toString(36).substring(2, 15) : t;\n        if (this._extraLibs[n] && this._extraLibs[n].content === e) return {\n            dispose: function() {}\n        };\n        var r = 1;\n        return this._removedExtraLibs[n] && (r = this._removedExtraLibs[n] + 1), this._extraLibs[n] && (r = this._extraLibs[n].version + 1), this._extraLibs[n] = {\n            content: e,\n            version: r\n        }, this._fireOnDidExtraLibsChangeSoon(), {\n            dispose: function() {\n                var e = i._extraLibs[n];\n                e && e.version === r && (delete i._extraLibs[n], i._removedExtraLibs[n] = r, i._fireOnDidExtraLibsChangeSoon())\n            }\n        }\n    }, d.prototype.setExtraLibs = function(e) {\n        for (var t in this._extraLibs) this._removedExtraLibs[t] = this._extraLibs[t].version;\n        if (this._extraLibs = Object.create(null), e && 0 < e.length)\n            for (var i = 0, n = e; i < n.length; i++) {\n                t = (o = n[i]).filePath || \"ts:extralib-\" + Math.random().toString(36).substring(2, 15);\n                var r = o.content,\n                    o = 1;\n                this._removedExtraLibs[t] && (o = this._removedExtraLibs[t] + 1), this._extraLibs[t] = {\n                    content: r,\n                    version: o\n                }\n            }\n        this._fireOnDidExtraLibsChangeSoon()\n    }, d.prototype._fireOnDidExtraLibsChangeSoon = function() {\n        var e = this; - 1 === this._onDidExtraLibsChangeTimeout && (this._onDidExtraLibsChangeTimeout = window.setTimeout((function() {\n            e._onDidExtraLibsChangeTimeout = -1, e._onDidExtraLibsChange.fire(void 0)\n        }), 0))\n    }, d.prototype.getCompilerOptions = function() {\n        return this._compilerOptions\n    }, d.prototype.setCompilerOptions = function(e) {\n        this._compilerOptions = e || Object.create(null), this._onDidChange.fire(void 0)\n    }, d.prototype.getDiagnosticsOptions = function() {\n        return this._diagnosticsOptions\n    }, d.prototype.setDiagnosticsOptions = function(e) {\n        this._diagnosticsOptions = e || Object.create(null), this._onDidChange.fire(void 0)\n    }, d.prototype.setWorkerOptions = function(e) {\n        this._workerOptions = e || Object.create(null), this._onDidChange.fire(void 0)\n    }, d.prototype.setInlayHintsOptions = function(e) {\n        this._inlayHintsOptions = e || Object.create(null), this._onDidChange.fire(void 0)\n    }, d.prototype.setMaximumWorkerIdleTime = function(e) {}, d.prototype.setEagerModelSync = function(e) {\n        this._eagerModelSync = e\n    }, d.prototype.getEagerModelSync = function() {\n        return this._eagerModelSync\n    };\n    var c = new(t = d)({\n            allowNonTsExtensions: !0,\n            target: s.Latest\n        }, {\n            noSemanticValidation: !1,\n            noSyntaxValidation: !1,\n            onlyVisible: !1\n        }, {}, {}),\n        h = new t({\n            allowNonTsExtensions: !0,\n            allowJs: !0,\n            target: s.Latest\n        }, {\n            noSemanticValidation: !0,\n            noSyntaxValidation: !1,\n            onlyVisible: !1\n        }, {}, {});\n\n    function u() {\n        return i.e(4).then(i.bind(null, 484))\n    }\n    l.g.typescript = {\n        ModuleKind: n,\n        JsxEmit: r,\n        NewLineKind: o,\n        ScriptTarget: s,\n        ModuleResolutionKind: a,\n        typescriptVersion: \"4.4.4\",\n        typescriptDefaults: c,\n        javascriptDefaults: h,\n        getTypeScriptWorker: function() {\n            return u().then((function(e) {\n                return e.getTypeScriptWorker()\n            }))\n        },\n        getJavaScriptWorker: function() {\n            return u().then((function(e) {\n                return e.getJavaScriptWorker()\n            }))\n        }\n    }, l.g.onLanguage(\"typescript\", (function() {\n        return u().then((function(e) {\n            return e.setupTypeScript(c)\n        }))\n    })), l.g.onLanguage(\"javascript\", (function() {\n        return u().then((function(e) {\n            return e.setupJavaScript(h)\n        }))\n    }))\n}, function(e, t, i) {\n    e = function(e) {\n        \"use strict\";\n        var t, i = Object.prototype,\n            n = i.hasOwnProperty,\n            r = \"function\" == typeof Symbol ? Symbol : {},\n            o = r.iterator || \"@@iterator\",\n            s = r.asyncIterator || \"@@asyncIterator\",\n            a = r.toStringTag || \"@@toStringTag\";\n\n        function l(e, t, i) {\n            return Object.defineProperty(e, t, {\n                value: i,\n                enumerable: !0,\n                configurable: !0,\n                writable: !0\n            }), e[t]\n        }\n        try {\n            l({}, \"\")\n        } catch (i) {\n            l = function(e, t, i) {\n                return e[t] = i\n            }\n        }\n\n        function d(e, i, n, r) {\n            var o, s, a, l;\n            i = i && i.prototype instanceof m ? i : m, i = Object.create(i.prototype), r = new k(r || []);\n            return i._invoke = (o = e, s = n, a = r, l = h, function(e, i) {\n                if (l === p) throw new Error(\"Generator is already running\");\n                if (l === g) {\n                    if (\"throw\" === e) throw i;\n                    return O()\n                }\n                for (a.method = e, a.arg = i;;) {\n                    var n = a.delegate;\n                    if (n) {\n                        var r = function e(i, n) {\n                            var r;\n                            if ((r = i.iterator[n.method]) === t) {\n                                if (n.delegate = null, \"throw\" === n.method) {\n                                    if (i.iterator.return && (n.method = \"return\", n.arg = t, e(i, n), \"throw\" === n.method)) return f;\n                                    n.method = \"throw\", n.arg = new TypeError(\"The iterator does not provide a 'throw' method\")\n                                }\n                                return f\n                            }\n                            return \"throw\" === (r = c(r, i.iterator, n.arg)).type ? (n.method = \"throw\", n.arg = r.arg, n.delegate = null, f) : (r = r.arg) ? r.done ? (n[i.resultName] = r.value, n.next = i.nextLoc, \"return\" !== n.method && (n.method = \"next\", n.arg = t), n.delegate = null, f) : r : (n.method = \"throw\", n.arg = new TypeError(\"iterator result is not an object\"), n.delegate = null, f)\n                        }(n, a);\n                        if (r) {\n                            if (r === f) continue;\n                            return r\n                        }\n                    }\n                    if (\"next\" === a.method) a.sent = a._sent = a.arg;\n                    else if (\"throw\" === a.method) {\n                        if (l === h) throw l = g, a.arg;\n                        a.dispatchException(a.arg)\n                    } else \"return\" === a.method && a.abrupt(\"return\", a.arg);\n                    if (l = p, \"normal\" === (r = c(o, s, a)).type) {\n                        if (l = a.done ? g : u, r.arg !== f) return {\n                            value: r.arg,\n                            done: a.done\n                        }\n                    } else \"throw\" === r.type && (l = g, a.method = \"throw\", a.arg = r.arg)\n                }\n            }), i\n        }\n\n        function c(e, t, i) {\n            try {\n                return {\n                    type: \"normal\",\n                    arg: e.call(t, i)\n                }\n            } catch (e) {\n                return {\n                    type: \"throw\",\n                    arg: e\n                }\n            }\n        }\n        e.wrap = d;\n        var h = \"suspendedStart\",\n            u = \"suspendedYield\",\n            p = \"executing\",\n            g = \"completed\",\n            f = {};\n\n        function m() {}\n\n        function v() {}\n\n        function b() {}\n        var _ = {};\n        _[o] = function() {\n            return this\n        }, (r = (r = Object.getPrototypeOf) && r(r(L([])))) && r !== i && n.call(r, o) && (_ = r);\n        var w = b.prototype = m.prototype = Object.create(_);\n\n        function y(e) {\n            [\"next\", \"throw\", \"return\"].forEach((function(t) {\n                l(e, t, (function(e) {\n                    return this._invoke(t, e)\n                }))\n            }))\n        }\n\n        function C(e, t) {\n            var i;\n            this._invoke = function(r, o) {\n                function s() {\n                    return new t((function(i, s) {\n                        ! function i(r, o, s, a) {\n                            if (\"throw\" !== (r = c(e[r], e, o)).type) {\n                                var l = r.arg;\n                                return (o = l.value) && \"object\" == typeof o && n.call(o, \"__await\") ? t.resolve(o.__await).then((function(e) {\n                                    i(\"next\", e, s, a)\n                                }), (function(e) {\n                                    i(\"throw\", e, s, a)\n                                })) : t.resolve(o).then((function(e) {\n                                    l.value = e, s(l)\n                                }), (function(e) {\n                                    return i(\"throw\", e, s, a)\n                                }))\n                            }\n                            a(r.arg)\n                        }(r, o, i, s)\n                    }))\n                }\n                return i = i ? i.then(s, s) : s()\n            }\n        }\n\n        function x(e) {\n            var t = {\n                tryLoc: e[0]\n            };\n            1 in e && (t.catchLoc = e[1]), 2 in e && (t.finallyLoc = e[2], t.afterLoc = e[3]), this.tryEntries.push(t)\n        }\n\n        function S(e) {\n            var t = e.completion || {};\n            t.type = \"normal\", delete t.arg, e.completion = t\n        }\n\n        function k(e) {\n            this.tryEntries = [{\n                tryLoc: \"root\"\n            }], e.forEach(x, this), this.reset(!0)\n        }\n\n        function L(e) {\n            if (e) {\n                if (i = e[o]) return i.call(e);\n                if (\"function\" == typeof e.next) return e;\n                if (!isNaN(e.length)) {\n                    var i, r = -1;\n                    return (i = function i() {\n                        for (; ++r < e.length;)\n                            if (n.call(e, r)) return i.value = e[r], i.done = !1, i;\n                        return i.value = t, i.done = !0, i\n                    }).next = i\n                }\n            }\n            return {\n                next: O\n            }\n        }\n\n        function O() {\n            return {\n                value: t,\n                done: !0\n            }\n        }\n        return ((v.prototype = w.constructor = b).constructor = v).displayName = l(b, a, \"GeneratorFunction\"), e.isGeneratorFunction = function(e) {\n            return !!(e = \"function\" == typeof e && e.constructor) && (e === v || \"GeneratorFunction\" === (e.displayName || e.name))\n        }, e.mark = function(e) {\n            return Object.setPrototypeOf ? Object.setPrototypeOf(e, b) : (e.__proto__ = b, l(e, a, \"GeneratorFunction\")), e.prototype = Object.create(w), e\n        }, e.awrap = function(e) {\n            return {\n                __await: e\n            }\n        }, y(C.prototype), C.prototype[s] = function() {\n            return this\n        }, e.AsyncIterator = C, e.async = function(t, i, n, r, o) {\n            void 0 === o && (o = Promise);\n            var s = new C(d(t, i, n, r), o);\n            return e.isGeneratorFunction(i) ? s : s.next().then((function(e) {\n                return e.done ? e.value : s.next()\n            }))\n        }, y(w), l(w, a, \"Generator\"), w[o] = function() {\n            return this\n        }, w.toString = function() {\n            return \"[object Generator]\"\n        }, e.keys = function(e) {\n            var t, i = [];\n            for (t in e) i.push(t);\n            return i.reverse(),\n                function t() {\n                    for (; i.length;) {\n                        var n = i.pop();\n                        if (n in e) return t.value = n, t.done = !1, t\n                    }\n                    return t.done = !0, t\n                }\n        }, e.values = L, k.prototype = {\n            constructor: k,\n            reset: function(e) {\n                if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(S), !e)\n                    for (var i in this) \"t\" === i.charAt(0) && n.call(this, i) && !isNaN(+i.slice(1)) && (this[i] = t)\n            },\n            stop: function() {\n                this.done = !0;\n                var e = this.tryEntries[0].completion;\n                if (\"throw\" === e.type) throw e.arg;\n                return this.rval\n            },\n            dispatchException: function(e) {\n                if (this.done) throw e;\n                var i = this;\n\n                function r(n, r) {\n                    return a.type = \"throw\", a.arg = e, i.next = n, r && (i.method = \"next\", i.arg = t), !!r\n                }\n                for (var o = this.tryEntries.length - 1; 0 <= o; --o) {\n                    var s = this.tryEntries[o],\n                        a = s.completion;\n                    if (\"root\" === s.tryLoc) return r(\"end\");\n                    if (s.tryLoc <= this.prev) {\n                        var l = n.call(s, \"catchLoc\"),\n                            d = n.call(s, \"finallyLoc\");\n                        if (l && d) {\n                            if (this.prev < s.catchLoc) return r(s.catchLoc, !0);\n                            if (this.prev < s.finallyLoc) return r(s.finallyLoc)\n                        } else if (l) {\n                            if (this.prev < s.catchLoc) return r(s.catchLoc, !0)\n                        } else {\n                            if (!d) throw new Error(\"try statement without catch or finally\");\n                            if (this.prev < s.finallyLoc) return r(s.finallyLoc)\n                        }\n                    }\n                }\n            },\n            abrupt: function(e, t) {\n                for (var i = this.tryEntries.length - 1; 0 <= i; --i) {\n                    var r = this.tryEntries[i];\n                    if (r.tryLoc <= this.prev && n.call(r, \"finallyLoc\") && this.prev < r.finallyLoc) {\n                        var o = r;\n                        break\n                    }\n                }\n                var s = (o = o && (\"break\" === e || \"continue\" === e) && o.tryLoc <= t && t <= o.finallyLoc ? null : o) ? o.completion : {};\n                return s.type = e, s.arg = t, o ? (this.method = \"next\", this.next = o.finallyLoc, f) : this.complete(s)\n            },\n            complete: function(e, t) {\n                if (\"throw\" === e.type) throw e.arg;\n                return \"break\" === e.type || \"continue\" === e.type ? this.next = e.arg : \"return\" === e.type ? (this.rval = this.arg = e.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === e.type && t && (this.next = t), f\n            },\n            finish: function(e) {\n                for (var t = this.tryEntries.length - 1; 0 <= t; --t) {\n                    var i = this.tryEntries[t];\n                    if (i.finallyLoc === e) return this.complete(i.completion, i.afterLoc), S(i), f\n                }\n            },\n            catch: function(e) {\n                for (var t = this.tryEntries.length - 1; 0 <= t; --t) {\n                    var i = this.tryEntries[t];\n                    if (i.tryLoc === e) {\n                        var n, r = i.completion;\n                        return \"throw\" === r.type && (n = r.arg, S(i)), n\n                    }\n                }\n                throw new Error(\"illegal catch attempt\")\n            },\n            delegateYield: function(e, i, n) {\n                return this.delegate = {\n                    iterator: L(e),\n                    resultName: i,\n                    nextLoc: n\n                }, \"next\" === this.method && (this.arg = t), f\n            }\n        }, e\n    }(e.exports);\n    try {\n        regeneratorRuntime = e\n    } catch (t) {\n        Function(\"r\", \"regeneratorRuntime = r\")(e)\n    }\n}, function(e, t, i) {\n    \"use strict\";\n    i(180)\n}, function(e, t, i) {\n    (e.exports = i(24)(!1)).push([e.i, \".clickable,.clickable *{cursor:pointer}.no-esc{outline:none}\", \"\"])\n}, function(e, t, i) {\n    var n = i(181);\n    e.exports = function(e) {\n        if (Array.isArray(e)) return n(e)\n    }, e.exports.default = e.exports, e.exports.__esModule = !0\n}, function(e, t) {\n    e.exports = function(e) {\n        if (\"undefined\" != typeof Symbol && null != e[Symbol.iterator] || null != e[\"@@iterator\"]) return Array.from(e)\n    }, e.exports.default = e.exports, e.exports.__esModule = !0\n}, function(e, t) {\n    e.exports = function() {\n        throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")\n    }, e.exports.default = e.exports, e.exports.__esModule = !0\n}, function(e, t, i) {\n    \"use strict\";\n    i(183)\n}, function(e, t, i) {\n    (e.exports = i(24)(!1)).push([e.i, \".grid-light[data-v-019ad1fb]{background-color:#f5f5f5}.grid-dark[data-v-019ad1fb],.grid-light[data-v-019ad1fb]{padding:10.5px 40px;text-align:center;flex:1;display:flex;align-items:baseline;justify-content:space-between;font-size:.8em;letter-spacing:.5px;height:40px}.grid-dark[data-v-019ad1fb]{background-color:#42424e}.grid-red[data-v-019ad1fb]{background-color:#ffc76d}.grid-2077[data-v-019ad1fb],.grid-red[data-v-019ad1fb]{padding:10.5px 40px;text-align:center;flex:1;display:flex;align-items:baseline;justify-content:space-between;font-size:.8em;letter-spacing:.5px;height:40px}.grid-2077[data-v-019ad1fb]{background-color:#084a5a}.main-clash-traffic-view-light[data-v-019ad1fb]{height:80px;display:flex;flex-direction:column;border-bottom:1px solid #dcdcdc}.main-clash-traffic-view-dark[data-v-019ad1fb]{height:80px;display:flex;flex-direction:column;border-bottom:1px solid #554f4f}.main-clash-traffic-view-red[data-v-019ad1fb]{height:80px;display:flex;flex-direction:column;border-bottom:1px solid rgba(218,20,30,.247059)}.main-clash-traffic-view-2077[data-v-019ad1fb]{height:80px;display:flex;flex-direction:column;border-bottom:1px solid rgba(6,145,180,.521569)}\", \"\"])\n}, function(e, t, i) {\n    \"use strict\";\n    i(184)\n}, function(e, t, i) {\n    (e.exports = i(24)(!1)).push([e.i, \".hint[data-v-019ad1fb]{font-size:.8em;color:#000;letter-spacing:1px;text-align:left}.bold-icon[data-v-019ad1fb]{font-size:.75em;letter-spacing:1px;padding:0 1px}\", \"\"])\n}, function(e, t, i) {\n    \"use strict\";\n    i(185)\n}, function(e, t, i) {\n    (e.exports = i(24)(!1)).push([e.i, \"#main-run-time-view[data-v-d7fc9bf6]{display:flex;align-items:flex-end;padding-bottom:40px}.timer-text[data-v-d7fc9bf6]{text-align:center;width:100%}\", \"\"])\n}, function(e, t, i) {\n    \"use strict\";\n    i(186)\n}, function(e, t, i) {\n    (e.exports = i(24)(!1)).push([e.i, \".menu-light[data-v-2e582972]{background-color:#fff;color:#000;list-style-type:none;border-bottom:1px solid #dcdcdc;position:relative;display:flex;flex-direction:column;height:400px;justify-content:space-between}.menu-light .item[data-v-2e582972]{flex-grow:1}.menu-dark[data-v-2e582972]{background-color:#2c2a38;color:#fff;list-style-type:none;border-bottom:1px solid #554f4f;position:relative;display:flex;flex-direction:column;height:400px;justify-content:space-between}.menu-dark .item[data-v-2e582972]{flex-grow:1}.menu-red[data-v-2e582972]{background-color:#f8b74f;color:#d33928;list-style-type:none;border-bottom:1px solid rgba(218,20,30,.247059);position:relative;display:flex;flex-direction:column;height:400px;justify-content:space-between}.menu-red .item[data-v-2e582972]{flex-grow:1}.menu-2077[data-v-2e582972]{background-color:#136377;color:#fcec0c;list-style-type:none;border-bottom:1px solid rgba(6,145,180,.521569);position:relative;display:flex;flex-direction:column;height:400px;justify-content:space-between}.menu-2077 .item[data-v-2e582972]{flex-grow:1}.item-draggable .item[data-v-2e582972]{-webkit-user-drag:element}.item-none-light[data-v-2e582972]{background-color:#f5f5f5;color:#747d88}.item-none-dark[data-v-2e582972]{background-color:#42424e;color:#d4d4d4}.item-none-red[data-v-2e582972]{background-color:#ffc76d;color:rgba(218,20,30,.796078)}.item-none-2077[data-v-2e582972]{background-color:#084a5a;color:#c79707}.running-time-light[data-v-2e582972]{flex-grow:1;color:#000}.running-time-dark[data-v-2e582972]{flex-grow:1;color:#fff}.running-time-red[data-v-2e582972]{flex-grow:1;color:#d33928}.running-time-2077[data-v-2e582972]{flex-grow:1;color:#fcec0c}.traffic-light[data-v-2e582972]{margin-top:0;color:#000}.traffic-dark[data-v-2e582972]{margin-top:0;color:#fff}.traffic-red[data-v-2e582972]{margin-top:0;color:#d33928}.traffic-2077[data-v-2e582972]{margin-top:0;color:#fcec0c}.main-main-menu[data-v-2e582972]{z-index:2;height:100%;display:flex;flex-direction:column}.main-main-menu .stop-btn[data-v-2e582972]{cursor:pointer;position:absolute;top:515px;left:20px;border-radius:20px;color:#fff;height:30px;width:130px;line-height:30px;text-align:center;font-size:14px;font-weight:400;background-color:#d14444;box-shadow:0 0 15px 1px rgba(49,49,49,.3);transform:all .3s}.drag-item[data-v-2e582972]{background-color:#41b883;color:#fff}.ghost-item[data-v-2e582972]{opacity:0}.shaking1[data-v-2e582972],.shaking2[data-v-2e582972]{margin:2px 0;transform-origin:center;animation:shake-rotate-data-v-2e582972 .4s infinite}.shaking2[data-v-2e582972]{animation-delay:.1s}.shaking3[data-v-2e582972]{margin:2px 0;transform-origin:center;animation:shake-rotate-data-v-2e582972 .4s infinite;animation-delay:.2s}@keyframes shake-rotate-data-v-2e582972{0%{transform:rotate(0deg)}12.5%{transform:rotate(.5deg)}25%{-webkit-transform:rotate(1.2deg)}37.5%{transform:rotate(.5deg)}50%{transform:rotate(0deg)}62.5%{transform:rotate(-.5deg)}75%{transform:rotate(-1.2deg)}87.5%{transform:rotate(-.5deg)}to{transform:rotate(0deg)}}\", \"\"])\n}, function(e, t, i) {\n    \"use strict\";\n    i(187)\n}, function(e, t, i) {\n    (e.exports = i(24)(!1)).push([e.i, \".icon[data-v-2e582972]{width:25px;height:25px}.item[data-v-2e582972]{font-size:1em;cursor:pointer;display:flex;align-items:center}.selected-top[data-v-2e582972]{border-bottom-right-radius:10px}.selected-bottom[data-v-2e582972]{border-top-right-radius:10px}.clickable[data-v-2e582972]{cursor:pointer;text-align:center;width:100%}\", \"\"])\n}, function(e, t, i) {\n    \"use strict\";\n    i(188)\n}, function(e, t, i) {\n    (e.exports = i(24)(!1)).push([e.i, \".main-light[data-v-cb3c6880]{height:25px;width:100vw;background-color:#ebebeb;color:#000;display:flex;justify-content:space-between;align-items:center}.main-light .empty[data-v-cb3c6880]{flex-grow:1;height:100%;display:flex;flex-direction:column}.main-light .empty .top[data-v-cb3c6880]{height:5px}.main-light .empty .top .left[data-v-cb3c6880]{height:100%;background-color:#41b883}.main-light .empty .bottom[data-v-cb3c6880]{flex-grow:1;-webkit-app-region:drag}.main-dark[data-v-cb3c6880]{height:25px;width:100vw;background-color:#343442;color:#fff;display:flex;justify-content:space-between;align-items:center}.main-dark .empty[data-v-cb3c6880]{flex-grow:1;height:100%;display:flex;flex-direction:column}.main-dark .empty .top[data-v-cb3c6880]{height:5px}.main-dark .empty .top .left[data-v-cb3c6880]{height:100%;background-color:#14a014}.main-dark .empty .bottom[data-v-cb3c6880]{flex-grow:1;-webkit-app-region:drag}.main-red[data-v-cb3c6880]{height:25px;width:100vw;background-color:#e8a84a;color:#d33928;display:flex;justify-content:space-between;align-items:center}.main-red .empty[data-v-cb3c6880]{flex-grow:1;height:100%;display:flex;flex-direction:column}.main-red .empty .top[data-v-cb3c6880]{height:5px}.main-red .empty .top .left[data-v-cb3c6880]{height:100%;background-color:#16a716}.main-red .empty .bottom[data-v-cb3c6880]{flex-grow:1;-webkit-app-region:drag}.main-2077[data-v-cb3c6880]{height:25px;width:100vw;background-color:#fcec0c;color:#fcec0c;display:flex;justify-content:space-between;align-items:center}.main-2077 .empty[data-v-cb3c6880]{flex-grow:1;height:100%;display:flex;flex-direction:column}.main-2077 .empty .top[data-v-cb3c6880]{height:5px}.main-2077 .empty .top .left[data-v-cb3c6880]{height:100%;background-color:#44c444}.main-2077 .empty .bottom[data-v-cb3c6880]{flex-grow:1;-webkit-app-region:drag}.title[data-v-cb3c6880]{font-size:.75em;font-weight:100;letter-spacing:1px}.close-light[data-v-cb3c6880]{-webkit-app-region:no-drag;cursor:pointer;padding:0 7px;height:100%;display:flex;align-items:center}.close-light>img[data-v-cb3c6880]{cursor:pointer;height:20px;width:20px}.close-light[data-v-cb3c6880]:hover{background-color:rgba(50,50,50,.2)}.close-dark[data-v-cb3c6880]{-webkit-app-region:no-drag;cursor:pointer;padding:0 7px;height:100%;display:flex;align-items:center}.close-dark>img[data-v-cb3c6880]{cursor:pointer;height:20px;width:20px}.close-dark[data-v-cb3c6880]:hover{background-color:hsla(0,0%,98%,.2)}.close-red[data-v-cb3c6880]{-webkit-app-region:no-drag;cursor:pointer;padding:0 7px;height:100%;display:flex;align-items:center}.close-red>img[data-v-cb3c6880]{cursor:pointer;height:20px;width:20px}.close-red[data-v-cb3c6880]:hover{background-color:hsla(0,0%,98%,.2)}.close-2077[data-v-cb3c6880]{-webkit-app-region:no-drag;cursor:pointer;padding:0 7px;height:100%;display:flex;align-items:center}.close-2077>img[data-v-cb3c6880]{cursor:pointer;height:20px;width:20px}.close-2077[data-v-cb3c6880]:hover{background-color:hsla(0,0%,98%,.2)}.icon[data-v-cb3c6880]{padding:0;margin-left:10px;background-color:#f3f3f3;width:20px;height:20px;border-radius:1px}.icon>img[data-v-cb3c6880]{width:20px;height:20px}\", \"\"])\n}, function(e, t) {\n    e.exports = require(\"util\")\n}, function(e, t, i) {\n    var n = {\n        \"./app.js\": 482,\n        \"./index.js\": 174\n    };\n\n    function r(e) {\n        return e = o(e), i(e)\n    }\n\n    function o(e) {\n        if (i.o(n, e)) return n[e];\n        throw (e = new Error(\"Cannot find module '\" + e + \"'\")).code = \"MODULE_NOT_FOUND\", e\n    }\n    r.keys = function() {\n        return Object.keys(n)\n    }, r.resolve = o, (e.exports = r).id = 275\n}, function(e, t) {\n    e.exports = function(e) {\n        if (Array.isArray(e)) return e\n    }, e.exports.default = e.exports, e.exports.__esModule = !0\n}, function(e, t) {\n    e.exports = function(e, t) {\n        var i = e && (\"undefined\" != typeof Symbol && e[Symbol.iterator] || e[\"@@iterator\"]);\n        if (null != i) {\n            var n, r, o = [],\n                s = !0,\n                a = !1;\n            try {\n                for (i = i.call(e); !(s = (n = i.next()).done) && (o.push(n.value), !t || o.length !== t); s = !0);\n            } catch (e) {\n                a = !0, r = e\n            } finally {\n                try {\n                    s || null == i.return || i.return()\n                } finally {\n                    if (a) throw r\n                }\n            }\n            return o\n        }\n    }, e.exports.default = e.exports, e.exports.__esModule = !0\n}, function(e, t) {\n    e.exports = function() {\n        throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")\n    }, e.exports.default = e.exports, e.exports.__esModule = !0\n}, function(e, t) {\n    e.exports = require(\"koa\")\n}, function(e, t) {\n    e.exports = require(\"mousetrap\")\n}, function(e, t) {\n    e.exports = require(\"unix-cron\")\n}, function(e, t, i) {\n    \"use strict\";\n    i(194)\n}, function(e, t, i) {\n    (e.exports = i(24)(!1)).push([e.i, \".theme-light[data-v-5f14473a]{background-color:#fff;color:#000}.theme-dark[data-v-5f14473a]{background-color:#2c2a38;color:#fff}.theme-red[data-v-5f14473a]{background-color:#f8b74f;color:#d33928}.theme-2077[data-v-5f14473a]{background-color:#136377;color:#fcec0c}.wrapper[data-v-5f14473a]{height:100vh;width:100vw;overflow:hidden}\", \"\"])\n}, function(e, t, i) {\n    \"use strict\";\n    i(195)\n}, function(e, t, i) {\n    (e.exports = i(24)(!1)).push([e.i, \"*,:after,:before{-webkit-user-drag:none}*,:after,:before{user-select:none;cursor:default}*{box-sizing:border-box;margin:0;padding:0}body{font-family:Noto Sans CJK,sans-serif;font-weight:500;overflow:hidden}input{font-family:inherit}\", \"\"])\n}, function(e, t, i) {\n    \"use strict\";\n    i(196)\n}, function(e, t, i) {\n    (e.exports = i(24)(!1)).push([e.i, \"main[data-v-5f14473a]{display:flex;justify-content:space-between}.left-side[data-v-5f14473a]{display:flex;flex-direction:column;width:170px;height:calc(100vh - 25px)}.right-side[data-v-5f14473a]{z-index:1;flex-grow:1;width:calc(100vw - 170px);height:calc(100vh - 25px)}.welcome[data-v-5f14473a]{color:#555;font-size:23px;margin-bottom:10px}.title[data-v-5f14473a]{color:#2c3e50;font-size:20px;font-weight:700;margin-bottom:6px}.title.alt[data-v-5f14473a]{font-size:18px;margin-bottom:10px}.doc p[data-v-5f14473a]{color:#000;margin-bottom:10px}.doc button[data-v-5f14473a]{font-size:.8em;cursor:pointer;outline:none;padding:.75em 2em;border-radius:2em;display:inline-block;color:#fff;background-color:#4fc08d;transition:all .15s ease;box-sizing:border-box;border:1px solid #4fc08d}.doc button.alt[data-v-5f14473a]{color:#42b983;background-color:transparent}.clash-status-main[data-v-5f14473a]{display:flex;align-items:center;position:absolute;height:40px;bottom:0;width:170px;left:0;justify-content:center;z-index:2}.clash-status-hint[data-v-5f14473a]{margin-left:6px;font-size:.75em;letter-spacing:0;cursor:pointer}.clash-status-icon[data-v-5f14473a]{width:12px;height:12px;border-radius:10px}.clash-running[data-v-5f14473a]{background-color:#41b883}.clash-set-dns[data-v-5f14473a]{background-color:#e7d91a}.clash-stopped[data-v-5f14473a]{background-color:red}.cloud[data-v-5f14473a]{position:fixed;bottom:110px;left:calc(50% + 80px);transform:translateX(-50%);width:40%;pointer-events:none}.opacicy[data-v-5f14473a]{opacity:.2}.latern[data-v-5f14473a]{position:fixed;opacity:.7;top:30px;left:125px;width:50px;pointer-events:none}\", \"\"])\n}, function(e, t, i) {\n    \"use strict\";\n    i(197)\n}, function(e, t, i) {\n    (e.exports = i(24)(!1)).push([e.i, \".error-hint-light[data-v-09aa3bae]{font-size:14px;cursor:pointer;background-color:#fff;color:#000;border:1px solid #dcdcdc;border-radius:3px;box-shadow:0 0 2px 1px rgba(50,50,50,.1);padding:6px 15px}.error-hint-dark[data-v-09aa3bae]{background-color:#2c2a38;color:#fff;border:1px solid #554f4f;border-radius:3px}.error-hint-dark[data-v-09aa3bae],.error-hint-red[data-v-09aa3bae]{font-size:14px;cursor:pointer;box-shadow:0 0 2px 1px hsla(0,0%,84%,.1);padding:6px 15px}.error-hint-red[data-v-09aa3bae]{background-color:#f8b74f;color:#d33928;border:1px solid rgba(218,20,30,.247059);border-radius:3px}.error-hint-2077[data-v-09aa3bae]{font-size:14px;cursor:pointer;background-color:#136377;color:#fcec0c;border:1px solid rgba(6,145,180,.521569);border-radius:3px;box-shadow:0 0 2px 1px hsla(0,0%,84%,.1);padding:6px 15px}#error-view-main[data-v-09aa3bae]{display:flex;flex-direction:column;align-items:center;justify-content:center;flex-grow:1;padding-bottom:60px}#error-view-main .error-content-light[data-v-09aa3bae]{font-size:15px;border:1px solid hsla(0,0%,69%,.178);padding:10px;max-height:100px;overflow-y:scroll;margin-top:10px;margin-left:40px;margin-right:40px;color:#e74949}#error-view-main .error-content-light[data-v-09aa3bae]::-webkit-scrollbar{width:16px}#error-view-main .error-content-light[data-v-09aa3bae]::-webkit-scrollbar-thumb{background-color:#cac8c6;border-radius:100px;border:3px solid #fff}#error-view-main .error-content-dark[data-v-09aa3bae]{font-size:15px;border:1px solid hsla(0,0%,69%,.178);padding:10px;max-height:100px;overflow-y:scroll;margin-top:10px;margin-left:40px;margin-right:40px;color:#e74949}#error-view-main .error-content-dark[data-v-09aa3bae]::-webkit-scrollbar{width:16px}#error-view-main .error-content-dark[data-v-09aa3bae]::-webkit-scrollbar-thumb{background-color:#4d4d5a;border-radius:100px;border:3px solid #2c2a38}#error-view-main .error-content-red[data-v-09aa3bae]{font-size:15px;border:1px solid hsla(0,0%,69%,.178);padding:10px;max-height:100px;overflow-y:scroll;margin-top:10px;margin-left:40px;margin-right:40px;color:#e74949}#error-view-main .error-content-red[data-v-09aa3bae]::-webkit-scrollbar{width:16px}#error-view-main .error-content-red[data-v-09aa3bae]::-webkit-scrollbar-thumb{background-color:rgba(183,46,41,.643137);border-radius:100px;border:3px solid #f8b74f}#error-view-main .error-content-2077[data-v-09aa3bae]{font-size:15px;border:1px solid hsla(0,0%,69%,.178);padding:10px;max-height:100px;overflow-y:scroll;margin-top:10px;margin-left:40px;margin-right:40px;color:#e74949}#error-view-main .error-content-2077[data-v-09aa3bae]::-webkit-scrollbar{width:16px}#error-view-main .error-content-2077[data-v-09aa3bae]::-webkit-scrollbar-thumb{background-color:rgba(238,222,0,.796078);border-radius:100px;border:3px solid #136377}.error-hints[data-v-09aa3bae]{display:flex;flex-direction:column;align-items:center}.loading-hint[data-v-09aa3bae]{font-size:22px;margin-bottom:40px}.error-btns[data-v-09aa3bae]{display:flex;margin-top:30px}.error-btns div[data-v-09aa3bae]{width:fit-content;margin:0 20px}\", \"\"])\n}, function(e, t, i) {\n    \"use strict\";\n    i(198)\n}, function(e, t, i) {\n    (e.exports = i(24)(!1)).push([e.i, \"#error-title[data-v-09aa3bae]{font-size:1.1em}\", \"\"])\n}, function(e, t, i) {\n    \"use strict\";\n    i(199)\n}, function(e, t, i) {\n    (e.exports = i(24)(!1)).push([e.i, \".main-select-view[data-v-38b9c85e]{display:flex;align-items:center}.item-2077[data-v-38b9c85e],.item-dark[data-v-38b9c85e],.item-light[data-v-38b9c85e],.item-red[data-v-38b9c85e]{color:#fff;height:26px;font-size:.8em;line-height:25px;padding:0 6px;text-align:center;cursor:pointer;min-width:50px}.item-single-light[data-v-38b9c85e]{background-color:#c7bfbf}.item-single-dark[data-v-38b9c85e]{background-color:#413c3c}.item-single-red[data-v-38b9c85e]{background-color:#d39126}.item-single-2077[data-v-38b9c85e]{background-color:#837a00}.item-double-light[data-v-38b9c85e]{background-color:#bdb3b3}.item-double-dark[data-v-38b9c85e]{background-color:#332f2f}.item-double-red[data-v-38b9c85e]{background-color:#be8222}.item-double-2077[data-v-38b9c85e]{background-color:#968c03}.item-first[data-v-38b9c85e]{border-top-left-radius:6px;border-bottom-left-radius:6px}.item-last[data-v-38b9c85e]{border-top-right-radius:6px;border-bottom-right-radius:6px}.item-selected-2077[data-v-38b9c85e],.item-selected-dark[data-v-38b9c85e],.item-selected-light[data-v-38b9c85e],.item-selected-red[data-v-38b9c85e]{background-color:#179bbb}\", \"\"])\n}, function(e, t, i) {\n    \"use strict\";\n    i(200)\n}, function(e, t, i) {\n    (e.exports = i(24)(!1)).push([e.i, \".main-light[data-v-e6ab4ba2]{border:2px solid #c7bfbf;background-color:#c7bfbf;border-radius:40px;width:34px;height:20px;box-shadow:0 0 5px 1px rgba(50,50,50,0);display:flex;padding:0 2px;align-items:center}.main-light [data-v-e6ab4ba2]{cursor:pointer}.main-dark[data-v-e6ab4ba2]{border:2px solid #413c3c;background-color:#413c3c;border-radius:40px;width:34px;height:20px;box-shadow:0 0 5px 1px rgba(50,50,50,0);display:flex;padding:0 2px;align-items:center}.main-dark [data-v-e6ab4ba2]{cursor:pointer}.main-red[data-v-e6ab4ba2]{border:2px solid #d39126;background-color:#d39126;border-radius:40px;width:34px;height:20px;box-shadow:0 0 5px 1px rgba(50,50,50,0);display:flex;padding:0 2px;align-items:center}.main-red [data-v-e6ab4ba2]{cursor:pointer}.main-2077[data-v-e6ab4ba2]{border:2px solid #837a00;background-color:#837a00;border-radius:40px;width:34px;height:20px;box-shadow:0 0 5px 1px rgba(50,50,50,0);display:flex;padding:0 2px;align-items:center}.main-2077 [data-v-e6ab4ba2]{cursor:pointer}.text[data-v-e6ab4ba2]{display:flex;justify-content:space-between;align-items:center;width:calc(100% - 0px);height:calc(100% - 4px)}.base[data-v-e6ab4ba2]{width:calc(100% - 17px);height:100%}.text-font[data-v-e6ab4ba2]{letter-spacing:0;text-align:center;font-size:12px;margin-bottom:8px;color:#fff}.tint-right[data-v-e6ab4ba2]{background-color:#d44545;border-radius:20px;width:12px}.tint-left[data-v-e6ab4ba2]{background-color:#13af42;border-radius:20px;width:12px}.move-left-enter-active[data-v-e6ab4ba2]{transition:all .2s ease}.move-left-leave-active[data-v-e6ab4ba2]{transition:all .1s ease-out}.move-left-enter[data-v-e6ab4ba2],.move-left-leave-to[data-v-e6ab4ba2]{transform:translateX(-10px);opacity:0}.move-right-enter-active[data-v-e6ab4ba2]{transition:all .2s ease}.move-right-leave-active[data-v-e6ab4ba2]{transition:all .1s ease-out}.move-right-enter[data-v-e6ab4ba2],.move-right-leave-to[data-v-e6ab4ba2]{transform:translateX(10px);opacity:0}\", \"\"])\n}, function(e, t, i) {\n    \"use strict\";\n    i(201)\n}, function(e, t, i) {\n    (e.exports = i(24)(!1)).push([e.i, \"input[data-v-7f6c1bea]::-webkit-inner-spin-button,input[data-v-7f6c1bea]::-webkit-outer-spin-button{-webkit-appearance:none}.main-simple-input-light[data-v-7f6c1bea]{position:relative;width:250px}.main-simple-input-light input[data-v-7f6c1bea]{width:100%;text-align:center;border:none;outline-style:none;background-color:#fff;color:#000;height:25px;box-shadow:1px 1px 4px 1px rgba(50,50,50,.04);border-radius:2px}.main-simple-input-light .suffix[data-v-7f6c1bea]{position:absolute;right:10px;top:0;height:25px;line-height:25px;color:#747d88;font-size:13px}.main-simple-input-dark[data-v-7f6c1bea]{position:relative;width:250px}.main-simple-input-dark input[data-v-7f6c1bea]{width:100%;text-align:center;border:none;outline-style:none;background-color:rgba(46,46,46,.822);color:#fff;height:25px;box-shadow:1px 1px 4px 1px rgba(50,50,50,.04);border-radius:2px}.main-simple-input-dark .suffix[data-v-7f6c1bea]{position:absolute;right:10px;top:0;height:25px;line-height:25px;color:#d4d4d4;font-size:13px}.main-simple-input-red[data-v-7f6c1bea]{position:relative;width:250px}.main-simple-input-red input[data-v-7f6c1bea]{width:100%;text-align:center;border:none;outline-style:none;background-color:#d39126;color:#d33928;height:25px;box-shadow:1px 1px 4px 1px rgba(50,50,50,.04);border-radius:2px}.main-simple-input-red .suffix[data-v-7f6c1bea]{position:absolute;right:10px;top:0;height:25px;line-height:25px;color:rgba(218,20,30,.796078);font-size:13px}.main-simple-input-2077[data-v-7f6c1bea]{position:relative;width:250px}.main-simple-input-2077 input[data-v-7f6c1bea]{width:100%;text-align:center;border:none;outline-style:none;background-color:rgba(2,45,53,.822);color:#fcec0c;height:25px;box-shadow:1px 1px 4px 1px rgba(50,50,50,.04);border-radius:2px}.main-simple-input-2077 .suffix[data-v-7f6c1bea]{position:absolute;right:10px;top:0;height:25px;line-height:25px;color:#c79707;font-size:13px}\", \"\"])\n}, function(e, t, i) {\n    \"use strict\";\n    i(202)\n}, function(e, t, i) {\n    (e.exports = i(24)(!1)).push([e.i, \".main-edit-list-view .item[data-v-13e718af]{display:flex;margin-bottom:5px;height:25px}.main-edit-list-view .item input[data-v-13e718af]{flex-grow:1;outline:none;background-color:hsla(0,0%,50%,.2);border-top-left-radius:3px;border-bottom-left-radius:3px;padding:0 10px;border:none}.main-edit-list-view .btn-add[data-v-13e718af]{width:100%;height:25px;border-radius:3px;border:1px solid #41b883;display:flex;justify-content:center;align-items:center}.main-edit-list-view .btn-add svg[data-v-13e718af]{fill:#41b883;height:20px}.main-edit-list-view .btn-remove[data-v-13e718af]{height:100%;width:30px;border-top-right-radius:3px;border-bottom-right-radius:3px;display:flex;justify-content:center;align-items:center;background-color:#d44545;border-left-color:transparent}.main-edit-list-view .btn-remove svg[data-v-13e718af]{height:20px;fill:#fff}\", \"\"])\n}, function(e, t, i) {\n    \"use strict\";\n    i(203)\n}, function(e, t, i) {\n    (e.exports = i(24)(!1)).push([e.i, \".main-tun-settings-view[data-v-6f9eeaba]{background-color:rgba(50,50,50,.6);width:calc(100% - 170px);height:calc(100% - 25px);position:absolute;top:25px;left:170px;color:#000}.main-tun-settings-view .content[data-v-6f9eeaba]{border-radius:3px;background-color:#fff;width:600px;position:absolute;top:50%;left:50%;transform:translateX(-50%) translateY(-50%);padding:10px 20px;font-size:14px;font-weight:700;max-height:90%;overflow:auto}.main-tun-settings-view .content .title[data-v-6f9eeaba]{font-size:16px;margin-bottom:5px}.main-tun-settings-view .content .pannel[data-v-6f9eeaba]{display:flex;height:100%}.main-tun-settings-view .content .pannel .left[data-v-6f9eeaba]{width:300px;border:1px solid #ccc;border-radius:5px;padding:5px 10px}.main-tun-settings-view .content .pannel .left .flex[data-v-6f9eeaba]{height:30px;align-items:center;justify-content:space-between;display:flex}.main-tun-settings-view .content .pannel .left .flex input[data-v-6f9eeaba]{width:120px;text-align:center;outline:none;background-color:hsla(0,0%,50%,.281);border-radius:3px;border:none;height:25px}.main-tun-settings-view .content .pannel .right[data-v-6f9eeaba]{width:300px;margin-left:10px;border:1px solid #ccc;border-radius:4px;overflow:auto}.main-tun-settings-view .content .pannel .right pre[data-v-6f9eeaba]{width:100%;height:100%;padding:5px;font-weight:400;color:#333;font-family:Consolas,Monaco,Lucida Console,Liberation Mono,DejaVu Sans Mono,Bitstream Vera Sans Mono,Courier New,monospace}.main-tun-settings-view .content .btn[data-v-6f9eeaba]{background-color:#41b883;color:#fff;height:30px;margin-top:10px;line-height:30px;text-align:center;border-radius:3px}\", \"\"])\n}, function(e, t, i) {\n    \"use strict\";\n    i(204)\n}, function(e, t, i) {\n    (e.exports = i(24)(!1)).push([e.i, \".content-light[data-v-6b34dc98]{min-width:200px;position:absolute;top:14px;transform:translateY(-100%);left:17px;background-color:#fff;color:#17224f;padding:10px 15px;border-radius:3px;z-index:1000;font-size:14px;box-shadow:0 0 5px 2px rgba(0,0,0,.1)}.content-light a[data-v-6b34dc98]{color:#8abdf8;text-decoration:none;cursor:pointer}.content-dark[data-v-6b34dc98]{min-width:200px;position:absolute;top:14px;transform:translateY(-100%);left:17px;background-color:#686675;color:#fff;padding:10px 15px;border-radius:3px;z-index:1000;font-size:14px;box-shadow:0 0 5px 2px rgba(0,0,0,.1)}.content-dark a[data-v-6b34dc98]{color:#8abdf8;text-decoration:none;cursor:pointer}.content-red[data-v-6b34dc98]{min-width:200px;position:absolute;top:14px;transform:translateY(-100%);left:17px;background-color:#ca2b33;color:#fff;padding:10px 15px;border-radius:3px;z-index:1000;font-size:14px;box-shadow:0 0 5px 2px rgba(0,0,0,.1)}.content-red a[data-v-6b34dc98]{color:#8abdf8;text-decoration:none;cursor:pointer}.content-2077[data-v-6b34dc98]{min-width:200px;position:absolute;top:14px;transform:translateY(-100%);left:17px;background-color:#064453;color:#fff;padding:10px 15px;border-radius:3px;z-index:1000;font-size:14px;box-shadow:0 0 5px 2px rgba(0,0,0,.1)}.content-2077 a[data-v-6b34dc98]{color:#8abdf8;text-decoration:none;cursor:pointer}.svg-light[data-v-6b34dc98]{opacity:.7;fill:#2c3e50}.svg-dark[data-v-6b34dc98]{opacity:.7;fill:#c2c8ce}.svg-red[data-v-6b34dc98]{opacity:.7;fill:#c54b36}.svg-2077[data-v-6b34dc98]{opacity:.7;fill:rgba(192,231,50,.937255)}.info-icon-main[data-v-6b34dc98]{position:relative;display:flex;align-items:center;margin-left:4px}\", \"\"])\n}, function(e, t, i) {\n    \"use strict\";\n    i(205)\n}, function(e, t, i) {\n    (e.exports = i(24)(!1)).push([e.i, \".main-hint-view[data-v-0110e93a]{position:relative}.main-hint-view .hint[data-v-0110e93a]{font-size:12px;background-color:#242424;padding:3px 5px;border-radius:3px;color:#fff;position:fixed;z-index:1000;white-space:nowrap;line-height:13px;font-weight:400}\", \"\"])\n}, function(e, t, i) {\n    \"use strict\";\n    i(206)\n}, function(e, t, i) {\n    (e.exports = i(24)(!1)).push([e.i, \".main-general-view-light[data-v-6e447f5a]{display:flex;flex-direction:column;justify-content:space-between;height:calc(100vh - 25px)}.main-general-view-light .setting-icon[data-v-6e447f5a]{fill:#2c3e50}.main-general-view-dark[data-v-6e447f5a]{display:flex;flex-direction:column;justify-content:space-between;height:calc(100vh - 25px)}.main-general-view-dark .setting-icon[data-v-6e447f5a]{fill:#c2c8ce}.main-general-view-red[data-v-6e447f5a]{display:flex;flex-direction:column;justify-content:space-between;height:calc(100vh - 25px)}.main-general-view-red .setting-icon[data-v-6e447f5a]{fill:#c54b36}.main-general-view-2077[data-v-6e447f5a]{display:flex;flex-direction:column;justify-content:space-between;height:calc(100vh - 25px)}.main-general-view-2077 .setting-icon[data-v-6e447f5a]{fill:rgba(192,231,50,.937255)}.content[data-v-6e447f5a]{padding:5px;flex-grow:1;overflow:hidden;display:flex;justify-content:space-between;flex-direction:column;margin:0 auto;width:70vw;height:80vh;max-height:600px;max-width:650px}.item-light[data-v-6e447f5a]{position:relative;padding:4px 20px;font-size:1.1em;display:flex;align-items:center;justify-content:space-between;border-radius:3px;height:100%;transition:background-color .3s}.item-light[data-v-6e447f5a]:hover{background-color:#f1f1f1}.item-dark[data-v-6e447f5a]{position:relative;padding:4px 20px;font-size:1.1em;display:flex;align-items:center;justify-content:space-between;border-radius:3px;height:100%;transition:background-color .3s}.item-dark[data-v-6e447f5a]:hover{background-color:#606068}.item-red[data-v-6e447f5a]{position:relative;padding:4px 20px;font-size:1.1em;display:flex;align-items:center;justify-content:space-between;border-radius:3px;height:100%;transition:background-color .3s}.item-red[data-v-6e447f5a]:hover{background-color:#eda94c}.item-2077[data-v-6e447f5a]{position:relative;padding:4px 20px;font-size:1.1em;display:flex;align-items:center;justify-content:space-between;border-radius:3px;height:100%;transition:background-color .3s}.item-2077[data-v-6e447f5a]:hover{background-color:#084a5a}.title-light[data-v-6e447f5a]{color:#2c3e50}.title-dark[data-v-6e447f5a],.title-light[data-v-6e447f5a]{font-size:2em;font-weight:500;cursor:pointer;display:flex;align-items:center}.title-dark[data-v-6e447f5a]{color:#e9e9e9}.title-red[data-v-6e447f5a]{color:#b72d29}.title-2077[data-v-6e447f5a],.title-red[data-v-6e447f5a]{font-size:2em;font-weight:500;cursor:pointer;display:flex;align-items:center}.title-2077[data-v-6e447f5a]{color:#f8ed53}.clickable-light[data-v-6e447f5a]{cursor:pointer;border-bottom-style:dashed;border-bottom-width:1px;border-bottom-color:rgba(50,50,50,.2)}.clickable-dark[data-v-6e447f5a]{border-bottom-color:#959595}.clickable-dark[data-v-6e447f5a],.clickable-red[data-v-6e447f5a]{cursor:pointer;border-bottom-style:dashed;border-bottom-width:1px}.clickable-red[data-v-6e447f5a]{border-bottom-color:rgba(218,20,30,.247059)}.clickable-2077[data-v-6e447f5a]{cursor:pointer;border-bottom-style:dashed;border-bottom-width:1px;border-bottom-color:rgba(221,233,55,.247059)}.interfaces-card-light[data-v-6e447f5a]{position:fixed;left:calc(170px + (100vw - 170px) / 2);transform:translate(-50%);bottom:20px;background-color:#fff;padding:10px 30px;border-radius:5px;max-height:50vh;overflow-y:scroll;box-shadow:1px 1px 10px 2px rgba(50,50,50,.3);z-index:2000}.interfaces-card-light[data-v-6e447f5a]::-webkit-scrollbar{width:16px}.interfaces-card-light[data-v-6e447f5a]::-webkit-scrollbar-thumb{background-color:#cac8c6;border-radius:100px;border:3px solid #fff}.interfaces-card-dark[data-v-6e447f5a]{position:fixed;left:calc(170px + (100vw - 170px) / 2);transform:translate(-50%);bottom:20px;background-color:#686675;padding:10px 30px;border-radius:5px;max-height:50vh;overflow-y:scroll;box-shadow:1px 1px 10px 2px rgba(50,50,50,.3);z-index:2000}.interfaces-card-dark[data-v-6e447f5a]::-webkit-scrollbar{width:16px}.interfaces-card-dark[data-v-6e447f5a]::-webkit-scrollbar-thumb{background-color:#4d4d5a;border-radius:100px;border:3px solid #2c2a38}.interfaces-card-red[data-v-6e447f5a]{position:fixed;left:calc(170px + (100vw - 170px) / 2);transform:translate(-50%);bottom:20px;background-color:#ca2b33;padding:10px 30px;border-radius:5px;max-height:50vh;overflow-y:scroll;box-shadow:1px 1px 10px 2px rgba(50,50,50,.3);z-index:2000}.interfaces-card-red[data-v-6e447f5a]::-webkit-scrollbar{width:16px}.interfaces-card-red[data-v-6e447f5a]::-webkit-scrollbar-thumb{background-color:rgba(183,46,41,.643137);border-radius:100px;border:3px solid #f8b74f}.interfaces-card-2077[data-v-6e447f5a]{position:fixed;left:calc(170px + (100vw - 170px) / 2);transform:translate(-50%);bottom:20px;background-color:#064453;padding:10px 30px;border-radius:5px;max-height:50vh;overflow-y:scroll;box-shadow:1px 1px 10px 2px rgba(50,50,50,.3);z-index:2000}.interfaces-card-2077[data-v-6e447f5a]::-webkit-scrollbar{width:16px}.interfaces-card-2077[data-v-6e447f5a]::-webkit-scrollbar-thumb{background-color:rgba(238,222,0,.796078);border-radius:100px;border:3px solid #136377}.interfaces-content-light[data-v-6e447f5a]{color:#17224f;display:flex;align-items:flex-end;margin:10px 0;align-items:center}.interfaces-content-2077[data-v-6e447f5a],.interfaces-content-dark[data-v-6e447f5a],.interfaces-content-red[data-v-6e447f5a]{color:#fff;display:flex;align-items:flex-end;margin:10px 0;align-items:center}.copy-icon[data-v-6e447f5a]{margin-right:10px;margin-top:2px;cursor:pointer}.copy-icon [data-v-6e447f5a]{cursor:pointer}.tun-settings-icon[data-v-6e447f5a]{width:24px;height:24px;padding:2px;margin-left:10px;border-radius:5px}.tun-settings-icon[data-v-6e447f5a]:hover{background-color:rgba(54,54,54,.26)}\", \"\"])\n}, function(e, t, i) {\n    \"use strict\";\n    i(207)\n}, function(e, t, i) {\n    (e.exports = i(24)(!1)).push([e.i, '.header[data-v-6e447f5a]{margin-top:10px;display:flex;height:100px;width:calc(100vw - 170px);justify-content:center;align-items:center}.icon[data-v-6e447f5a]{width:90px;height:90px;margin-right:20px}.title-name[data-v-6e447f5a]{display:inline-block;cursor:pointer}.new-version-tag[data-v-6e447f5a]{display:inline-block;color:#fff;padding:2px 4px;background-color:rgba(170,38,38,.8);border-radius:3px;font-size:.65em;position:relative;top:-8px;left:2px}.item-left[data-v-6e447f5a]{display:flex;font-weight:500;font-size:1em;align-items:center}.item-right[data-v-6e447f5a]{font-size:15px;font-weight:400;display:flex;align-items:center}.control-icon[data-v-6e447f5a]{width:20px;height:20px;margin-right:10px;margin-top:2px;cursor:pointer}.systemCheckbox[data-v-6e447f5a]{width:20px;height:20px}.systemCheckbox[data-v-6e447f5a]:checked{background-color:#233376;border:none}.hiddenInput[data-v-6e447f5a]{width:1px;height:1px;opacity:0}.version[data-v-6e447f5a]{font-size:.5em;margin-left:10px;font-weight:400;cursor:pointer;margin-top:15px}.checkmark-container[data-v-6e447f5a]{display:block;position:relative;padding-left:22px;margin-bottom:22px;cursor:pointer;font-size:22px}.checkmark-container input[data-v-6e447f5a]{position:absolute;opacity:0;cursor:pointer;height:0;width:0}.system-checkmark[data-v-6e447f5a]{cursor:pointer;position:absolute;top:0;border-radius:20px;left:0;height:25px;width:25px;background-color:#fff;box-shadow:0 0 5px 1px rgba(50,50,50,.5)}.checkmark-container:hover input~.system-checkmark[data-v-6e447f5a]{background-color:#fff}.checkmark-container input:checked~.system-checkmark[data-v-6e447f5a]{background-color:#464646}.system-checkmark-unknown[data-v-6e447f5a]{background-color:#beb9b9}.system-checkmark[data-v-6e447f5a]:after{content:\"\";position:absolute;display:none}.checkmark-container input:checked~.system-checkmark[data-v-6e447f5a]:after{display:block}.checkmark-container .system-checkmark[data-v-6e447f5a]:after{left:8px;top:5px;width:6px;height:9px;border:solid #fff;border-width:0 3px 3px 0;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.interface-address[data-v-6e447f5a]{font-size:1em}.interface-name[data-v-6e447f5a]{font-size:.8em;margin-left:15px}.edit-btn[data-v-6e447f5a]{width:25px;height:25px;border-radius:4px;cursor:pointer;background-color:#464646;box-shadow:0 0 5px 1px rgba(50,50,50,.3)}.edit-btn>img[data-v-6e447f5a]{width:17px;height:17px;margin:5px;cursor:pointer}.empty-div[data-v-6e447f5a]{height:50px}', \"\"])\n}, function(e, t, i) {\n    \"use strict\";\n    i(208)\n}, function(e, t, i) {\n    (e.exports = i(24)(!1)).push([e.i, \".selected-light[data-v-38001dee]{color:#fff;background-color:#4c4b4b}.selected-dark[data-v-38001dee]{color:#fff;background-color:#3aa1cc}.selected-red[data-v-38001dee]{color:#fff;background-color:rgba(183,46,41,.788235)}.selected-2077[data-v-38001dee]{color:#000;background-color:#dfd43f}.normal-light[data-v-38001dee]{color:#000;background-color:#fff}.normal-dark[data-v-38001dee]{color:#fff;background-color:#42424e}.normal-red[data-v-38001dee]{color:#fff;background-color:#c28f3d}.normal-2077[data-v-38001dee]{color:#fff;background-color:#58482c}.main-light[data-v-38001dee]{border-bottom:1px solid #dcdcdc}.main-dark[data-v-38001dee]{border-bottom:1px solid #554f4f}.main-red[data-v-38001dee]{border-bottom:1px solid rgba(218,20,30,.247059)}.main-2077[data-v-38001dee]{border-bottom:1px solid rgba(6,145,180,.521569)}#main-mode-switcher[data-v-38001dee]{padding:auto 20px;width:calc(100vw - 170px);height:80px;position:fixed}#main-mode-switcher .btns[data-v-38001dee]{height:100%;align-items:center;margin:0 auto;display:flex;max-width:600px;justify-content:space-between}#main-mode-switcher .btns .btn[data-v-38001dee]{margin:0;font-weight:500;font-size:1.2em;width:120px;height:40px;text-align:center;line-height:40px;border-radius:6px;box-shadow:1px 1px 5px 2px rgba(70,70,70,.1);cursor:pointer}\", \"\"])\n}, function(e, t, i) {\n    \"use strict\";\n    i(209)\n}, function(e, t, i) {\n    (e.exports = i(24)(!1)).push([e.i, '.main-proxy-navigator-light[data-v-cd189d30]{position:absolute;height:calc(100% - 105px);display:flex;flex-direction:column;top:105px;right:15px;overflow-y:scroll;transition:all .2s;width:20px;background-color:#fff;border:0 solid #dcdcdc}.main-proxy-navigator-light[data-v-cd189d30]:after,.main-proxy-navigator-light[data-v-cd189d30]:before{content:\"\";margin:auto}.main-proxy-navigator-light[data-v-cd189d30]::-webkit-scrollbar{display:none}.main-proxy-navigator-light .item[data-v-cd189d30]{font-size:12px;font-weight:400;transition:all .1s;white-space:nowrap;padding-left:5px;z-index:2;color:#000}.main-proxy-navigator-light .item-selected[data-v-cd189d30]{color:#41b883}.main-proxy-navigator-light .item-hover[data-v-cd189d30]{font-weight:700}.main-proxy-navigator-dark[data-v-cd189d30]{position:absolute;height:calc(100% - 105px);display:flex;flex-direction:column;top:105px;right:15px;overflow-y:scroll;transition:all .2s;width:20px;background-color:#2c2a38;border:0 solid #554f4f}.main-proxy-navigator-dark[data-v-cd189d30]:after,.main-proxy-navigator-dark[data-v-cd189d30]:before{content:\"\";margin:auto}.main-proxy-navigator-dark[data-v-cd189d30]::-webkit-scrollbar{display:none}.main-proxy-navigator-dark .item[data-v-cd189d30]{font-size:12px;font-weight:400;transition:all .1s;white-space:nowrap;padding-left:5px;z-index:2;color:#fff}.main-proxy-navigator-dark .item-selected[data-v-cd189d30]{color:#0a0}.main-proxy-navigator-dark .item-hover[data-v-cd189d30]{font-weight:700}.main-proxy-navigator-red[data-v-cd189d30]{position:absolute;height:calc(100% - 105px);display:flex;flex-direction:column;top:105px;right:15px;overflow-y:scroll;transition:all .2s;width:20px;background-color:#f8b74f;border:0 solid rgba(218,20,30,.247059)}.main-proxy-navigator-red[data-v-cd189d30]:after,.main-proxy-navigator-red[data-v-cd189d30]:before{content:\"\";margin:auto}.main-proxy-navigator-red[data-v-cd189d30]::-webkit-scrollbar{display:none}.main-proxy-navigator-red .item[data-v-cd189d30]{font-size:12px;font-weight:400;transition:all .1s;white-space:nowrap;padding-left:5px;z-index:2;color:#d33928}.main-proxy-navigator-red .item-selected[data-v-cd189d30]{color:rgba(27,180,6,.788235)}.main-proxy-navigator-red .item-hover[data-v-cd189d30]{font-weight:700}.main-proxy-navigator-2077[data-v-cd189d30]{position:absolute;height:calc(100% - 105px);display:flex;flex-direction:column;top:105px;right:15px;overflow-y:scroll;transition:all .2s;width:20px;background-color:#136377;border:0 solid rgba(6,145,180,.521569)}.main-proxy-navigator-2077[data-v-cd189d30]:after,.main-proxy-navigator-2077[data-v-cd189d30]:before{content:\"\";margin:auto}.main-proxy-navigator-2077[data-v-cd189d30]::-webkit-scrollbar{display:none}.main-proxy-navigator-2077 .item[data-v-cd189d30]{font-size:12px;font-weight:400;transition:all .1s;white-space:nowrap;padding-left:5px;z-index:2;color:#fcec0c}.main-proxy-navigator-2077 .item-selected[data-v-cd189d30]{color:#f8ed53}.main-proxy-navigator-2077 .item-hover[data-v-cd189d30]{font-weight:700}', \"\"])\n}, function(e, t, i) {\n    \"use strict\";\n    i(210)\n}, function(e, t, i) {\n    (e.exports = i(24)(!1)).push([e.i, \".fake-item-light[data-v-4fa0a583]{height:45px;background-color:#e3e3e3;box-shadow:none}.fake-item-dark[data-v-4fa0a583]{height:45px;background-color:#32323f;box-shadow:none}.fake-item-red[data-v-4fa0a583]{height:45px;background-color:#c28f3d;box-shadow:none}.fake-item-2077[data-v-4fa0a583]{height:45px;background-color:#043441;box-shadow:none}.fake-section-light[data-v-4fa0a583]{background-color:#e3e3e3;height:50px;width:300px;margin-top:20px;margin-left:40px}.fake-section-dark[data-v-4fa0a583]{background-color:#32323f;height:50px;width:300px;margin-top:20px;margin-left:40px}.fake-section-red[data-v-4fa0a583]{background-color:#c28f3d;height:50px;width:300px;margin-top:20px;margin-left:40px}.fake-section-2077[data-v-4fa0a583]{background-color:#043441;height:50px;width:300px;margin-top:20px;margin-left:40px}#main-proxy-view[data-v-4fa0a583]{height:100%;display:flex;flex-direction:column;overflow:hidden}.scroll-view-light[data-v-4fa0a583]{margin-top:88px;padding-bottom:70px;flex-grow:1;height:calc(100% - 80px);overflow-y:scroll}.scroll-view-light[data-v-4fa0a583]::-webkit-scrollbar{width:16px}.scroll-view-light[data-v-4fa0a583]::-webkit-scrollbar-thumb{background-color:#cac8c6;border-radius:100px;border:3px solid #fff}.scroll-view-light .proxy-item[data-v-4fa0a583]{margin:4px 6px;display:flex;align-items:center;flex-grow:1;transition:all .3s}.scroll-view-light .proxy-item .indicator[data-v-4fa0a583]{width:4px;min-width:4px;background-color:rgba(75,75,75,.185);height:calc(100% - 2px);border-radius:10px;margin-right:4px}.scroll-view-light .proxy-item .info[data-v-4fa0a583]{height:100%;padding:7px 0;background:rgba(41,41,41,.05);flex-grow:1;display:flex;border-radius:3px;justify-content:space-between;align-items:center}.scroll-view-light .proxy-item .info .left[data-v-4fa0a583]{flex-grow:1;margin-left:10px}.scroll-view-light .proxy-item .info .left .item-bottom[data-v-4fa0a583]{display:flex;font-size:12px;align-items:center;margin-top:2px;color:gray}.scroll-view-light .proxy-item .info .left .item-bottom .item-hint[data-v-4fa0a583]{margin-right:5px}.scroll-view-light .proxy-item .info .left .item-bottom .item-udp[data-v-4fa0a583]{font-size:9px;padding:0 3px;border:1px solid rgba(75,75,75,.185);border-radius:3px}.scroll-view-light .proxy-item .info .time[data-v-4fa0a583]{min-width:70px;text-align:right;font-size:12px;padding:12px 14px 12px 12px;cursor:pointer}.scroll-view-light .proxy-item .info .offline[data-v-4fa0a583]{color:#ec0505;font-weight:400}.scroll-view-light .proxy-item .info .online[data-v-4fa0a583]{color:#41b883}.scroll-view-light .selected .indicator[data-v-4fa0a583]{background-color:#41b883}.scroll-view-dark[data-v-4fa0a583]{margin-top:88px;padding-bottom:70px;flex-grow:1;height:calc(100% - 80px);overflow-y:scroll}.scroll-view-dark[data-v-4fa0a583]::-webkit-scrollbar{width:16px}.scroll-view-dark[data-v-4fa0a583]::-webkit-scrollbar-thumb{background-color:#4d4d5a;border-radius:100px;border:3px solid #2c2a38}.scroll-view-dark .proxy-item[data-v-4fa0a583]{margin:4px 6px;display:flex;align-items:center;flex-grow:1;transition:all .3s}.scroll-view-dark .proxy-item .indicator[data-v-4fa0a583]{width:4px;min-width:4px;background-color:hsla(0,0%,78%,.185);height:calc(100% - 2px);border-radius:10px;margin-right:4px}.scroll-view-dark .proxy-item .info[data-v-4fa0a583]{height:100%;padding:7px 0;background:hsla(0,0%,100%,.05);flex-grow:1;display:flex;border-radius:3px;justify-content:space-between;align-items:center}.scroll-view-dark .proxy-item .info .left[data-v-4fa0a583]{flex-grow:1;margin-left:10px}.scroll-view-dark .proxy-item .info .left .item-bottom[data-v-4fa0a583]{display:flex;font-size:12px;align-items:center;margin-top:2px;color:#a7a7a7}.scroll-view-dark .proxy-item .info .left .item-bottom .item-hint[data-v-4fa0a583]{margin-right:5px}.scroll-view-dark .proxy-item .info .left .item-bottom .item-udp[data-v-4fa0a583]{font-size:9px;padding:0 3px;border:1px solid hsla(0,0%,78%,.185);border-radius:3px}.scroll-view-dark .proxy-item .info .time[data-v-4fa0a583]{min-width:70px;text-align:right;font-size:12px;padding:12px 14px 12px 12px;cursor:pointer}.scroll-view-dark .proxy-item .info .offline[data-v-4fa0a583]{color:#db4b4b;font-weight:400}.scroll-view-dark .proxy-item .info .online[data-v-4fa0a583]{color:#14a014}.scroll-view-dark .selected .indicator[data-v-4fa0a583]{background-color:#0a0}.scroll-view-red[data-v-4fa0a583]{margin-top:88px;padding-bottom:70px;flex-grow:1;height:calc(100% - 80px);overflow-y:scroll}.scroll-view-red[data-v-4fa0a583]::-webkit-scrollbar{width:16px}.scroll-view-red[data-v-4fa0a583]::-webkit-scrollbar-thumb{background-color:rgba(183,46,41,.643137);border-radius:100px;border:3px solid #f8b74f}.scroll-view-red .proxy-item[data-v-4fa0a583]{margin:4px 6px;display:flex;align-items:center;flex-grow:1;transition:all .3s}.scroll-view-red .proxy-item .indicator[data-v-4fa0a583]{width:4px;min-width:4px;background-color:#f39908;height:calc(100% - 2px);border-radius:10px;margin-right:4px}.scroll-view-red .proxy-item .info[data-v-4fa0a583]{height:100%;padding:7px 0;background:#fdc975;flex-grow:1;display:flex;border-radius:3px;justify-content:space-between;align-items:center}.scroll-view-red .proxy-item .info .left[data-v-4fa0a583]{flex-grow:1;margin-left:10px}.scroll-view-red .proxy-item .info .left .item-bottom[data-v-4fa0a583]{display:flex;font-size:12px;align-items:center;margin-top:2px;color:#995e00}.scroll-view-red .proxy-item .info .left .item-bottom .item-hint[data-v-4fa0a583]{margin-right:5px}.scroll-view-red .proxy-item .info .left .item-bottom .item-udp[data-v-4fa0a583]{font-size:9px;padding:0 3px;border:1px solid #f39908;border-radius:3px}.scroll-view-red .proxy-item .info .time[data-v-4fa0a583]{min-width:70px;text-align:right;font-size:12px;padding:12px 14px 12px 12px;cursor:pointer}.scroll-view-red .proxy-item .info .offline[data-v-4fa0a583]{color:#df0909;font-weight:400}.scroll-view-red .proxy-item .info .online[data-v-4fa0a583]{color:#16a716}.scroll-view-red .selected .indicator[data-v-4fa0a583]{background-color:rgba(27,180,6,.788235)}.scroll-view-2077[data-v-4fa0a583]{margin-top:88px;padding-bottom:70px;flex-grow:1;height:calc(100% - 80px);overflow-y:scroll}.scroll-view-2077[data-v-4fa0a583]::-webkit-scrollbar{width:16px}.scroll-view-2077[data-v-4fa0a583]::-webkit-scrollbar-thumb{background-color:rgba(238,222,0,.796078);border-radius:100px;border:3px solid #136377}.scroll-view-2077 .proxy-item[data-v-4fa0a583]{margin:4px 6px;display:flex;align-items:center;flex-grow:1;transition:all .3s}.scroll-view-2077 .proxy-item .indicator[data-v-4fa0a583]{width:4px;min-width:4px;background-color:rgba(6,49,70,.411);height:calc(100% - 2px);border-radius:10px;margin-right:4px}.scroll-view-2077 .proxy-item .info[data-v-4fa0a583]{height:100%;padding:7px 0;background:rgba(9,115,141,.917647);flex-grow:1;display:flex;border-radius:3px;justify-content:space-between;align-items:center}.scroll-view-2077 .proxy-item .info .left[data-v-4fa0a583]{flex-grow:1;margin-left:10px}.scroll-view-2077 .proxy-item .info .left .item-bottom[data-v-4fa0a583]{display:flex;font-size:12px;align-items:center;margin-top:2px;color:#bbb33f}.scroll-view-2077 .proxy-item .info .left .item-bottom .item-hint[data-v-4fa0a583]{margin-right:5px}.scroll-view-2077 .proxy-item .info .left .item-bottom .item-udp[data-v-4fa0a583]{font-size:9px;padding:0 3px;border:1px solid rgba(6,49,70,.411);border-radius:3px}.scroll-view-2077 .proxy-item .info .time[data-v-4fa0a583]{min-width:70px;text-align:right;font-size:12px;padding:12px 14px 12px 12px;cursor:pointer}.scroll-view-2077 .proxy-item .info .offline[data-v-4fa0a583]{color:#ff6565;font-weight:400}.scroll-view-2077 .proxy-item .info .online[data-v-4fa0a583]{color:#44c444}.scroll-view-2077 .selected .indicator[data-v-4fa0a583]{background-color:#f8ed53}.proxy-section-light[data-v-4fa0a583]{font-size:1.2em;font-weight:400;padding:7px 10px;display:flex;align-items:center;justify-content:space-between;cursor:pointer;position:sticky;top:-1px;background-color:#fff;transition:all .3s}.proxy-section-light[data-v-4fa0a583]:hover{border-radius:5px;background-color:#f1f1f1;cursor:pointer}.proxy-section-light .proxy-section-right[data-v-4fa0a583]{display:flex;align-items:flex-end;height:100%;fill:#000}.proxy-section-light .proxy-hint[data-v-4fa0a583]{font-size:13px;display:inline;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.proxy-section-light .proxy-hint-type[data-v-4fa0a583]{font-size:10px;margin-left:10px;color:#fff;background:#929292;padding:0 4px;border-radius:3px}.proxy-section-light .proxy-hint-type-selector[data-v-4fa0a583]{background:#41b883}.proxy-section-light .proxy-hint-line[data-v-4fa0a583]{width:10px;height:1px}.proxy-section-dark[data-v-4fa0a583]{font-size:1.2em;font-weight:400;padding:7px 10px;display:flex;align-items:center;justify-content:space-between;cursor:pointer;position:sticky;top:-1px;background-color:#2c2a38;transition:all .3s}.proxy-section-dark[data-v-4fa0a583]:hover{border-radius:5px;background-color:#606068;cursor:pointer}.proxy-section-dark .proxy-section-right[data-v-4fa0a583]{display:flex;align-items:flex-end;height:100%;fill:#fff}.proxy-section-dark .proxy-hint[data-v-4fa0a583]{font-size:13px;display:inline;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.proxy-section-dark .proxy-hint-type[data-v-4fa0a583]{font-size:10px;margin-left:10px;color:#cecece;background:#5c5c5c;padding:0 4px;border-radius:3px}.proxy-section-dark .proxy-hint-type-selector[data-v-4fa0a583]{background:#41b883}.proxy-section-dark .proxy-hint-line[data-v-4fa0a583]{width:10px;height:1px}.proxy-section-red[data-v-4fa0a583]{font-size:1.2em;font-weight:400;padding:7px 10px;display:flex;align-items:center;justify-content:space-between;cursor:pointer;position:sticky;top:-1px;background-color:#f8b74f;transition:all .3s}.proxy-section-red[data-v-4fa0a583]:hover{border-radius:5px;background-color:#eda94c;cursor:pointer}.proxy-section-red .proxy-section-right[data-v-4fa0a583]{display:flex;align-items:flex-end;height:100%;fill:#d33928}.proxy-section-red .proxy-hint[data-v-4fa0a583]{font-size:13px;display:inline;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.proxy-section-red .proxy-hint-type[data-v-4fa0a583]{font-size:10px;margin-left:10px;color:#e2e2e2;background:#b87004;padding:0 4px;border-radius:3px}.proxy-section-red .proxy-hint-type-selector[data-v-4fa0a583]{background:#41b883}.proxy-section-red .proxy-hint-line[data-v-4fa0a583]{width:10px;height:1px}.proxy-section-2077[data-v-4fa0a583]{font-size:1.2em;font-weight:400;padding:7px 10px;display:flex;align-items:center;justify-content:space-between;cursor:pointer;position:sticky;top:-1px;background-color:#136377;transition:all .3s}.proxy-section-2077[data-v-4fa0a583]:hover{border-radius:5px;background-color:#084a5a;cursor:pointer}.proxy-section-2077 .proxy-section-right[data-v-4fa0a583]{display:flex;align-items:flex-end;height:100%;fill:#fcec0c}.proxy-section-2077 .proxy-hint[data-v-4fa0a583]{font-size:13px;display:inline;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.proxy-section-2077 .proxy-hint-type[data-v-4fa0a583]{font-size:10px;margin-left:10px;color:#cff592;background:#064453;padding:0 4px;border-radius:3px}.proxy-section-2077 .proxy-hint-type-selector[data-v-4fa0a583]{background:#41b883}.proxy-section-2077 .proxy-hint-line[data-v-4fa0a583]{width:10px;height:1px}.empty-hint[data-v-4fa0a583]{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;height:100%;color:hsla(0,0%,56%,.795)}.empty-hint div[data-v-4fa0a583]:first-child{font-size:22px}.empty-hint div[data-v-4fa0a583]:last-child{font-size:14px;margin-top:10px}.empty-hint div:last-child span[data-v-4fa0a583]{color:#008cff}\", \"\"])\n}, function(e, t, i) {\n    \"use strict\";\n    i(211)\n}, function(e, t, i) {\n    (e.exports = i(24)(!1)).push([e.i, \".outline[data-v-4fa0a583]{opacity:.1}.proxy-list[data-v-4fa0a583]{margin:0 20px 0 30px}.proxy-items[data-v-4fa0a583]{display:flex;flex-wrap:wrap;justify-content:space-around}.proxy-items>i[data-v-4fa0a583]{margin:0 6px;flex-grow:1;height:0}.item-name[data-v-4fa0a583]{font-size:14px;display:flex;align-items:center;overflow:hidden}.proxy-hint-loadbalance[data-v-4fa0a583]{font-size:.7em;margin-left:5px;overflow:hidden;padding-bottom:2px}.proxy-item[data-v-4fa0a583] div,span[data-v-4fa0a583]{cursor:pointer}.proxy-section-name[data-v-4fa0a583]{font-size:1.05em;display:flex;align-items:center;max-width:500px}.proxy-section-name-left[data-v-4fa0a583]{display:flex;align-items:flex-end;flex-shrink:0;font-size:17px}.proxy-section-test-btn[data-v-4fa0a583]{cursor:pointer;height:40px;width:30px}.icon[data-v-4fa0a583]{height:30px;width:30px;padding:5px}.icon[data-v-4fa0a583]:hover{border-radius:5px;background-color:hsla(0,0%,73%,.5);cursor:pointer}.filter-keyword[data-v-4fa0a583]{position:fixed;bottom:10px;right:45px;width:150px;height:30px}.filter-keyword input[data-v-4fa0a583]{width:150px;padding:0 10px;border:none;background-color:#494949;border-radius:5px;height:30px;color:#fff;top:0;right:5px;position:absolute}.filter-keyword input[data-v-4fa0a583]:focus{outline:none}.filter-keyword div[data-v-4fa0a583]{width:30px;height:30px;position:absolute;right:0;top:0;display:flex;align-items:center;justify-content:center;background-color:#494949;border-radius:5px}.filter-keyword div img[data-v-4fa0a583]{height:20px;width:20px}.fall-fade-enter-active[data-v-4fa0a583]{transition:all .2s ease-in-out}.fall-fade-enter[data-v-4fa0a583],.fall-fade-leave-to[data-v-4fa0a583]{transform:translateY(-10px);opacity:0}.move-right-enter-active[data-v-4fa0a583]{transition:all .2s ease}.move-right-enter[data-v-4fa0a583],.move-right-leave-to[data-v-4fa0a583]{transform:scaleX(.1);transform-origin:right}\", \"\"])\n}, function(e, t, i) {\n    \"use strict\";\n    i(212)\n}, function(e, t, i) {\n    (e.exports = i(24)(!1)).push([e.i, \".main-button-view[data-v-f3b3ccf8]{height:26px;width:90px;text-align:center;line-height:26px;background-color:#6777ef;border-radius:1500px;color:#fff;font-size:.78em;display:flex;align-items:center;justify-content:center;cursor:pointer}.main-button-view [data-v-f3b3ccf8]{cursor:pointer}.main-button-view .line[data-v-f3b3ccf8]{display:flex;height:100%;width:100%;justify-content:center;align-items:center}.main-button-view .line .box[data-v-f3b3ccf8]{border-radius:20px;transform:scale(.5);background-color:#b3b3b3}.main-button-view .line .large[data-v-f3b3ccf8]{height:8px;width:8px;margin-left:2px;margin-right:2px}.main-button-view .line .small[data-v-f3b3ccf8]{height:5px;width:5px;margin-left:1px;margin-right:1px}.animation-delay1[data-v-f3b3ccf8]{animation:wave-data-v-f3b3ccf8 1s linear 0s infinite}.animation-delay2[data-v-f3b3ccf8]{animation:wave-data-v-f3b3ccf8 1s linear .2s infinite}.animation-delay3[data-v-f3b3ccf8]{animation:wave-data-v-f3b3ccf8 1s linear .4s infinite}.animation-delay4[data-v-f3b3ccf8]{animation:wave-data-v-f3b3ccf8 1s linear .6s infinite}.animation-delay5[data-v-f3b3ccf8]{animation:wave-data-v-f3b3ccf8 1s linear .8s infinite}@keyframes wave-data-v-f3b3ccf8{0%{background-color:#f8f8f8;transform:scale(1.1)}to{background-color:#adadad;transform:scale(.5)}}\", \"\"])\n}, function(e, t, i) {\n    \"use strict\";\n    i(213)\n}, function(e, t, i) {\n    (e.exports = i(24)(!1)).push([e.i, \".main-provider-view-light[data-v-5a14fd42]{width:calc(100% - 170px);height:calc(100% - 25px);position:absolute;top:25px;right:0;display:flex;justify-content:center;align-items:center;z-index:10;font-size:16px}.main-provider-view-light .card[data-v-5a14fd42]{display:flex;flex-direction:column;height:100%;width:100%}.main-provider-view-light .card .header[data-v-5a14fd42]{min-height:80px;height:80px;border-bottom:1px solid #dcdcdc;background-color:#fff;width:100%}.main-provider-view-light .card .header .buttons[data-v-5a14fd42]{height:100%;width:100%;display:flex;align-items:center;justify-content:center}.main-provider-view-light .card .header .buttons .btn[data-v-5a14fd42]{font-size:16px;color:#fff;background-color:#4c4b4b;border-radius:3px;height:35px;padding:0 20px;width:fit-content}.main-provider-view-light .card .header .buttons .btn[data-v-5a14fd42]:first-child{margin-right:30px}.main-provider-view-light .content[data-v-5a14fd42]{padding:5px 0;flex-grow:1;display:flex;flex-direction:column;height:100%;width:100%;overflow-y:scroll}.main-provider-view-light .content[data-v-5a14fd42]::-webkit-scrollbar{width:16px}.main-provider-view-light .content[data-v-5a14fd42]::-webkit-scrollbar-thumb{background-color:#cac8c6;border-radius:100px;border:3px solid #fff}.main-provider-view-light .content .title[data-v-5a14fd42]{margin-top:10px;font-size:16px;text-align:center;padding-bottom:10px;border-bottom:1px solid #dcdcdc}.main-provider-view-light .content .items .provider-item[data-v-5a14fd42]{padding:7px 35px 7px 45px;border-bottom:1px solid #dcdcdc}.main-provider-view-light .content .items .provider-item .provider-item-main .name-type[data-v-5a14fd42],.main-provider-view-light .content .items .provider-item .provider-item-main[data-v-5a14fd42]{display:flex;align-items:center}.main-provider-view-light .content .items .provider-item .provider-item-main .name-type .name[data-v-5a14fd42]{font-size:16px;max-width:180px;overflow:clip;white-space:nowrap;text-overflow:ellipsis}.main-provider-view-light .content .items .provider-item .provider-item-main .update-hint[data-v-5a14fd42]{font-size:14px;color:gray}.main-provider-view-light .content .items .provider-item .provider-item-main .error-hint[data-v-5a14fd42]{color:#ec0505;font-size:12px;max-width:500px;text-overflow:ellipsis;white-space:normal;overflow:hidden}.main-provider-view-light .content .items .provider-item .provider-item-main .empty[data-v-5a14fd42]{flex-grow:1}.main-provider-view-light .content .items .provider-item .provider-item-main .icon-btn[data-v-5a14fd42]{width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:3px}.main-provider-view-light .content .items .provider-item .provider-item-main .icon-btn[data-v-5a14fd42]:hover{background-color:rgba(0,0,0,.123)}.main-provider-view-light .content .items .provider-item .provider-item-main .icon-btn:hover [data-v-5a14fd42]{cursor:pointer}.main-provider-view-light .content .items .provider-item .provider-item-main .icon-btn .rotating[data-v-5a14fd42]{animation:downloading-data-v-5a14fd42 1s infinite;animation-timing-function:linear}.main-provider-view-light .content .items .provider-item .provider-item-main .icon-btn svg[data-v-5a14fd42]{width:20px;height:20px;fill:#000}.main-provider-view-light .content .items .provider-item .time[data-v-5a14fd42]{font-size:14px}.main-provider-view-light .content .items .provider-item .proxies[data-v-5a14fd42]{display:grid;grid-template-columns:repeat(auto-fill,130px);font-size:14px}.main-provider-view-light .content .items .provider-item .proxies .proxy-item[data-v-5a14fd42]{height:80px}.main-provider-view-dark[data-v-5a14fd42]{width:calc(100% - 170px);height:calc(100% - 25px);position:absolute;top:25px;right:0;display:flex;justify-content:center;align-items:center;z-index:10;font-size:16px}.main-provider-view-dark .card[data-v-5a14fd42]{display:flex;flex-direction:column;height:100%;width:100%}.main-provider-view-dark .card .header[data-v-5a14fd42]{min-height:80px;height:80px;border-bottom:1px solid #554f4f;background-color:#2c2a38;width:100%}.main-provider-view-dark .card .header .buttons[data-v-5a14fd42]{height:100%;width:100%;display:flex;align-items:center;justify-content:center}.main-provider-view-dark .card .header .buttons .btn[data-v-5a14fd42]{font-size:16px;color:#fff;background-color:#3aa1cc;border-radius:3px;height:35px;padding:0 20px;width:fit-content}.main-provider-view-dark .card .header .buttons .btn[data-v-5a14fd42]:first-child{margin-right:30px}.main-provider-view-dark .content[data-v-5a14fd42]{padding:5px 0;flex-grow:1;display:flex;flex-direction:column;height:100%;width:100%;overflow-y:scroll}.main-provider-view-dark .content[data-v-5a14fd42]::-webkit-scrollbar{width:16px}.main-provider-view-dark .content[data-v-5a14fd42]::-webkit-scrollbar-thumb{background-color:#4d4d5a;border-radius:100px;border:3px solid #2c2a38}.main-provider-view-dark .content .title[data-v-5a14fd42]{margin-top:10px;font-size:16px;text-align:center;padding-bottom:10px;border-bottom:1px solid #554f4f}.main-provider-view-dark .content .items .provider-item[data-v-5a14fd42]{padding:7px 35px 7px 45px;border-bottom:1px solid #554f4f}.main-provider-view-dark .content .items .provider-item .provider-item-main .name-type[data-v-5a14fd42],.main-provider-view-dark .content .items .provider-item .provider-item-main[data-v-5a14fd42]{display:flex;align-items:center}.main-provider-view-dark .content .items .provider-item .provider-item-main .name-type .name[data-v-5a14fd42]{font-size:16px;max-width:180px;overflow:clip;white-space:nowrap;text-overflow:ellipsis}.main-provider-view-dark .content .items .provider-item .provider-item-main .update-hint[data-v-5a14fd42]{font-size:14px;color:#a7a7a7}.main-provider-view-dark .content .items .provider-item .provider-item-main .error-hint[data-v-5a14fd42]{color:#db4b4b;font-size:12px;max-width:500px;text-overflow:ellipsis;white-space:normal;overflow:hidden}.main-provider-view-dark .content .items .provider-item .provider-item-main .empty[data-v-5a14fd42]{flex-grow:1}.main-provider-view-dark .content .items .provider-item .provider-item-main .icon-btn[data-v-5a14fd42]{width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:3px}.main-provider-view-dark .content .items .provider-item .provider-item-main .icon-btn[data-v-5a14fd42]:hover{background-color:rgba(0,0,0,.123)}.main-provider-view-dark .content .items .provider-item .provider-item-main .icon-btn:hover [data-v-5a14fd42]{cursor:pointer}.main-provider-view-dark .content .items .provider-item .provider-item-main .icon-btn .rotating[data-v-5a14fd42]{animation:downloading-data-v-5a14fd42 1s infinite;animation-timing-function:linear}.main-provider-view-dark .content .items .provider-item .provider-item-main .icon-btn svg[data-v-5a14fd42]{width:20px;height:20px;fill:#fff}.main-provider-view-dark .content .items .provider-item .time[data-v-5a14fd42]{font-size:14px}.main-provider-view-dark .content .items .provider-item .proxies[data-v-5a14fd42]{display:grid;grid-template-columns:repeat(auto-fill,130px);font-size:14px}.main-provider-view-dark .content .items .provider-item .proxies .proxy-item[data-v-5a14fd42]{height:80px}.main-provider-view-red[data-v-5a14fd42]{width:calc(100% - 170px);height:calc(100% - 25px);position:absolute;top:25px;right:0;display:flex;justify-content:center;align-items:center;z-index:10;font-size:16px}.main-provider-view-red .card[data-v-5a14fd42]{display:flex;flex-direction:column;height:100%;width:100%}.main-provider-view-red .card .header[data-v-5a14fd42]{min-height:80px;height:80px;border-bottom:1px solid rgba(218,20,30,.247059);background-color:#f8b74f;width:100%}.main-provider-view-red .card .header .buttons[data-v-5a14fd42]{height:100%;width:100%;display:flex;align-items:center;justify-content:center}.main-provider-view-red .card .header .buttons .btn[data-v-5a14fd42]{font-size:16px;color:#fff;background-color:rgba(183,46,41,.788235);border-radius:3px;height:35px;padding:0 20px;width:fit-content}.main-provider-view-red .card .header .buttons .btn[data-v-5a14fd42]:first-child{margin-right:30px}.main-provider-view-red .content[data-v-5a14fd42]{padding:5px 0;flex-grow:1;display:flex;flex-direction:column;height:100%;width:100%;overflow-y:scroll}.main-provider-view-red .content[data-v-5a14fd42]::-webkit-scrollbar{width:16px}.main-provider-view-red .content[data-v-5a14fd42]::-webkit-scrollbar-thumb{background-color:rgba(183,46,41,.643137);border-radius:100px;border:3px solid #f8b74f}.main-provider-view-red .content .title[data-v-5a14fd42]{margin-top:10px;font-size:16px;text-align:center;padding-bottom:10px;border-bottom:1px solid rgba(218,20,30,.247059)}.main-provider-view-red .content .items .provider-item[data-v-5a14fd42]{padding:7px 35px 7px 45px;border-bottom:1px solid rgba(218,20,30,.247059)}.main-provider-view-red .content .items .provider-item .provider-item-main .name-type[data-v-5a14fd42],.main-provider-view-red .content .items .provider-item .provider-item-main[data-v-5a14fd42]{display:flex;align-items:center}.main-provider-view-red .content .items .provider-item .provider-item-main .name-type .name[data-v-5a14fd42]{font-size:16px;max-width:180px;overflow:clip;white-space:nowrap;text-overflow:ellipsis}.main-provider-view-red .content .items .provider-item .provider-item-main .update-hint[data-v-5a14fd42]{font-size:14px;color:#995e00}.main-provider-view-red .content .items .provider-item .provider-item-main .error-hint[data-v-5a14fd42]{color:#df0909;font-size:12px;max-width:500px;text-overflow:ellipsis;white-space:normal;overflow:hidden}.main-provider-view-red .content .items .provider-item .provider-item-main .empty[data-v-5a14fd42]{flex-grow:1}.main-provider-view-red .content .items .provider-item .provider-item-main .icon-btn[data-v-5a14fd42]{width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:3px}.main-provider-view-red .content .items .provider-item .provider-item-main .icon-btn[data-v-5a14fd42]:hover{background-color:rgba(0,0,0,.123)}.main-provider-view-red .content .items .provider-item .provider-item-main .icon-btn:hover [data-v-5a14fd42]{cursor:pointer}.main-provider-view-red .content .items .provider-item .provider-item-main .icon-btn .rotating[data-v-5a14fd42]{animation:downloading-data-v-5a14fd42 1s infinite;animation-timing-function:linear}.main-provider-view-red .content .items .provider-item .provider-item-main .icon-btn svg[data-v-5a14fd42]{width:20px;height:20px;fill:#d33928}.main-provider-view-red .content .items .provider-item .time[data-v-5a14fd42]{font-size:14px}.main-provider-view-red .content .items .provider-item .proxies[data-v-5a14fd42]{display:grid;grid-template-columns:repeat(auto-fill,130px);font-size:14px}.main-provider-view-red .content .items .provider-item .proxies .proxy-item[data-v-5a14fd42]{height:80px}.main-provider-view-2077[data-v-5a14fd42]{width:calc(100% - 170px);height:calc(100% - 25px);position:absolute;top:25px;right:0;display:flex;justify-content:center;align-items:center;z-index:10;font-size:16px}.main-provider-view-2077 .card[data-v-5a14fd42]{display:flex;flex-direction:column;height:100%;width:100%}.main-provider-view-2077 .card .header[data-v-5a14fd42]{min-height:80px;height:80px;border-bottom:1px solid rgba(6,145,180,.521569);background-color:#136377;width:100%}.main-provider-view-2077 .card .header .buttons[data-v-5a14fd42]{height:100%;width:100%;display:flex;align-items:center;justify-content:center}.main-provider-view-2077 .card .header .buttons .btn[data-v-5a14fd42]{font-size:16px;color:#000;background-color:#dfd43f;border-radius:3px;height:35px;padding:0 20px;width:fit-content}.main-provider-view-2077 .card .header .buttons .btn[data-v-5a14fd42]:first-child{margin-right:30px}.main-provider-view-2077 .content[data-v-5a14fd42]{padding:5px 0;flex-grow:1;display:flex;flex-direction:column;height:100%;width:100%;overflow-y:scroll}.main-provider-view-2077 .content[data-v-5a14fd42]::-webkit-scrollbar{width:16px}.main-provider-view-2077 .content[data-v-5a14fd42]::-webkit-scrollbar-thumb{background-color:rgba(238,222,0,.796078);border-radius:100px;border:3px solid #136377}.main-provider-view-2077 .content .title[data-v-5a14fd42]{margin-top:10px;font-size:16px;text-align:center;padding-bottom:10px;border-bottom:1px solid rgba(6,145,180,.521569)}.main-provider-view-2077 .content .items .provider-item[data-v-5a14fd42]{padding:7px 35px 7px 45px;border-bottom:1px solid rgba(6,145,180,.521569)}.main-provider-view-2077 .content .items .provider-item .provider-item-main .name-type[data-v-5a14fd42],.main-provider-view-2077 .content .items .provider-item .provider-item-main[data-v-5a14fd42]{display:flex;align-items:center}.main-provider-view-2077 .content .items .provider-item .provider-item-main .name-type .name[data-v-5a14fd42]{font-size:16px;max-width:180px;overflow:clip;white-space:nowrap;text-overflow:ellipsis}.main-provider-view-2077 .content .items .provider-item .provider-item-main .update-hint[data-v-5a14fd42]{font-size:14px;color:#bbb33f}.main-provider-view-2077 .content .items .provider-item .provider-item-main .error-hint[data-v-5a14fd42]{color:#ff6565;font-size:12px;max-width:500px;text-overflow:ellipsis;white-space:normal;overflow:hidden}.main-provider-view-2077 .content .items .provider-item .provider-item-main .empty[data-v-5a14fd42]{flex-grow:1}.main-provider-view-2077 .content .items .provider-item .provider-item-main .icon-btn[data-v-5a14fd42]{width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:3px}.main-provider-view-2077 .content .items .provider-item .provider-item-main .icon-btn[data-v-5a14fd42]:hover{background-color:rgba(0,0,0,.123)}.main-provider-view-2077 .content .items .provider-item .provider-item-main .icon-btn:hover [data-v-5a14fd42]{cursor:pointer}.main-provider-view-2077 .content .items .provider-item .provider-item-main .icon-btn .rotating[data-v-5a14fd42]{animation:downloading-data-v-5a14fd42 1s infinite;animation-timing-function:linear}@keyframes downloading-data-v-5a14fd42{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.main-provider-view-2077 .content .items .provider-item .provider-item-main .icon-btn svg[data-v-5a14fd42]{width:20px;height:20px;fill:#fcec0c}.main-provider-view-2077 .content .items .provider-item .time[data-v-5a14fd42]{font-size:14px}.main-provider-view-2077 .content .items .provider-item .proxies[data-v-5a14fd42]{display:grid;grid-template-columns:repeat(auto-fill,130px);font-size:14px}.main-provider-view-2077 .content .items .provider-item .proxies .proxy-item[data-v-5a14fd42]{height:80px}\", \"\"])\n}, function(e, t, i) {\n    \"use strict\";\n    i(214)\n}, function(e, t, i) {\n    (e.exports = i(24)(!1)).push([e.i, \".main-log-view-light[data-v-2b002dd2]{height:100%;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between}.main-log-view-light .title[data-v-2b002dd2]{padding:0 20px;font-size:20px;height:80px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #dcdcdc}.main-log-view-light .title .text .hint[data-v-2b002dd2]{font-size:16px;font-weight:400}.main-log-view-dark[data-v-2b002dd2]{height:100%;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between}.main-log-view-dark .title[data-v-2b002dd2]{padding:0 20px;font-size:20px;height:80px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #554f4f}.main-log-view-dark .title .text .hint[data-v-2b002dd2]{font-size:16px;font-weight:400}.main-log-view-red[data-v-2b002dd2]{height:100%;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between}.main-log-view-red .title[data-v-2b002dd2]{padding:0 20px;font-size:20px;height:80px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(218,20,30,.247059)}.main-log-view-red .title .text .hint[data-v-2b002dd2]{font-size:16px;font-weight:400}.main-log-view-2077[data-v-2b002dd2]{height:100%;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between}.main-log-view-2077 .title[data-v-2b002dd2]{padding:0 20px;font-size:20px;height:80px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(6,145,180,.521569)}.main-log-view-2077 .title .text .hint[data-v-2b002dd2]{font-size:16px;font-weight:400}.log-item-light[data-v-2b002dd2]{border-bottom:1px solid rgba(50,50,50,.1)}.log-item-dark[data-v-2b002dd2],.log-item-light[data-v-2b002dd2]{display:flex;justify-content:space-between;flex-direction:column;padding:5px 20px}.log-item-dark[data-v-2b002dd2]{border-bottom:1px solid #494242}.log-item-red[data-v-2b002dd2]{border-bottom:1px solid rgba(218,20,30,.247059)}.log-item-2077[data-v-2b002dd2],.log-item-red[data-v-2b002dd2]{display:flex;justify-content:space-between;flex-direction:column;padding:5px 20px}.log-item-2077[data-v-2b002dd2]{border-bottom:1px solid #494242}.rule-light[data-v-2b002dd2]{font-size:14px;color:rgba(50,50,50,.7);display:flex;align-items:center;flex-wrap:wrap}.rule-light div[data-v-2b002dd2]{margin-right:5px}.rule-light .payload[data-v-2b002dd2]{color:#045c85}.rule-dark[data-v-2b002dd2]{font-size:14px;color:hsla(0,0%,88%,.712);display:flex;align-items:center;flex-wrap:wrap}.rule-dark div[data-v-2b002dd2]{margin-right:5px}.rule-dark .payload[data-v-2b002dd2]{color:#5fbeca}.rule-red[data-v-2b002dd2]{font-size:14px;color:#3f3f3f;display:flex;align-items:center;flex-wrap:wrap}.rule-red div[data-v-2b002dd2]{margin-right:5px}.rule-red .payload[data-v-2b002dd2]{color:#0d508f}.rule-2077[data-v-2b002dd2]{font-size:14px;color:hsla(0,0%,88%,.712);display:flex;align-items:center;flex-wrap:wrap}.rule-2077 div[data-v-2b002dd2]{margin-right:5px}.rule-2077 .payload[data-v-2b002dd2]{color:#5fbeca}.log-list-light[data-v-2b002dd2]{width:calc(100% - 0px);height:calc(100% - 80px);overflow-y:scroll}.log-list-light[data-v-2b002dd2]::-webkit-scrollbar{width:16px}.log-list-light[data-v-2b002dd2]::-webkit-scrollbar-thumb{background-color:#cac8c6;border-radius:100px;border:3px solid #fff}.log-list-light .empty-list[data-v-2b002dd2]{font-size:18px;color:gray;width:100%;height:100%;display:flex;align-items:center;flex-direction:column;justify-content:center}.log-list-light .empty-list div[data-v-2b002dd2]:last-child{font-size:14px}.log-list-dark[data-v-2b002dd2]{width:calc(100% - 0px);height:calc(100% - 80px);overflow-y:scroll}.log-list-dark[data-v-2b002dd2]::-webkit-scrollbar{width:16px}.log-list-dark[data-v-2b002dd2]::-webkit-scrollbar-thumb{background-color:#4d4d5a;border-radius:100px;border:3px solid #2c2a38}.log-list-dark .empty-list[data-v-2b002dd2]{font-size:18px;color:gray;width:100%;height:100%;display:flex;align-items:center;flex-direction:column;justify-content:center}.log-list-dark .empty-list div[data-v-2b002dd2]:last-child{font-size:14px}.log-list-red[data-v-2b002dd2]{width:calc(100% - 0px);height:calc(100% - 80px);overflow-y:scroll}.log-list-red[data-v-2b002dd2]::-webkit-scrollbar{width:16px}.log-list-red[data-v-2b002dd2]::-webkit-scrollbar-thumb{background-color:rgba(183,46,41,.643137);border-radius:100px;border:3px solid #f8b74f}.log-list-red .empty-list[data-v-2b002dd2]{font-size:18px;color:gray;width:100%;height:100%;display:flex;align-items:center;flex-direction:column;justify-content:center}.log-list-red .empty-list div[data-v-2b002dd2]:last-child{font-size:14px}.log-list-2077[data-v-2b002dd2]{width:calc(100% - 0px);height:calc(100% - 80px);overflow-y:scroll}.log-list-2077[data-v-2b002dd2]::-webkit-scrollbar{width:16px}.log-list-2077[data-v-2b002dd2]::-webkit-scrollbar-thumb{background-color:rgba(238,222,0,.796078);border-radius:100px;border:3px solid #136377}.log-list-2077 .empty-list[data-v-2b002dd2]{font-size:18px;color:gray;width:100%;height:100%;display:flex;align-items:center;flex-direction:column;justify-content:center}.log-list-2077 .empty-list div[data-v-2b002dd2]:last-child{font-size:14px}.url[data-v-2b002dd2]{word-break:break-all;white-space:normal;display:flex;flex-direction:column;flex-grow:1}.url .name[data-v-2b002dd2]{font-size:16px}.url div[data-v-2b002dd2]{margin-right:5px}.proxy-name[data-v-2b002dd2]{font-size:16px;margin:auto 0 auto 20px;min-width:50%;display:flex;justify-content:flex-end}.left[data-v-2b002dd2]{display:flex}\", \"\"])\n}, function(e, t, i) {\n    \"use strict\";\n    i(215)\n}, function(e, t, i) {\n    (e.exports = i(24)(!1)).push([e.i, \".warning[data-v-2b002dd2]{color:red}.btns[data-v-2b002dd2]{display:flex;width:150px;justify-content:space-between}.button[data-v-2b002dd2]{font-size:.8em;height:30px;line-height:30px;color:#fff;width:70px;text-align:center;border-radius:3px;cursor:pointer}.button-on[data-v-2b002dd2]{background-color:rgba(14,151,185,.959)}.button-off[data-v-2b002dd2]{background-color:rgba(243,61,61,.801)}.button-clear[data-v-2b002dd2]{background-color:rgba(23,156,6,.904)}\", \"\"])\n}, function(e, t, i) {\n    \"use strict\";\n    i(216)\n}, function(e, t, i) {\n    (e.exports = i(24)(!1)).push([e.i, \".main-light[data-v-8a057c1e]{position:fixed;left:170px;top:30px;width:calc(100vw - 170px);height:100%;background-color:#fff;padding:10px 30px;overflow-y:scroll}.main-light[data-v-8a057c1e]::-webkit-scrollbar{width:16px}.main-light[data-v-8a057c1e]::-webkit-scrollbar-thumb{background-color:#cac8c6;border-radius:100px;border:3px solid #fff}.main-light input[data-v-8a057c1e]{color:#000;background-color:#fff}.main-dark[data-v-8a057c1e]{position:fixed;left:170px;top:30px;width:calc(100vw - 170px);height:100%;background-color:#2c2a38;padding:10px 30px;overflow-y:scroll}.main-dark[data-v-8a057c1e]::-webkit-scrollbar{width:16px}.main-dark[data-v-8a057c1e]::-webkit-scrollbar-thumb{background-color:#4d4d5a;border-radius:100px;border:3px solid #2c2a38}.main-dark input[data-v-8a057c1e]{color:#fff;background-color:#2c2a38}.main-red[data-v-8a057c1e]{position:fixed;left:170px;top:30px;width:calc(100vw - 170px);height:100%;background-color:#f8b74f;padding:10px 30px;overflow-y:scroll}.main-red[data-v-8a057c1e]::-webkit-scrollbar{width:16px}.main-red[data-v-8a057c1e]::-webkit-scrollbar-thumb{background-color:rgba(183,46,41,.643137);border-radius:100px;border:3px solid #f8b74f}.main-red input[data-v-8a057c1e]{color:#d33928;background-color:#f8b74f}.main-2077[data-v-8a057c1e]{position:fixed;left:170px;top:30px;width:calc(100vw - 170px);height:100%;background-color:#136377;padding:10px 30px;overflow-y:scroll}.main-2077[data-v-8a057c1e]::-webkit-scrollbar{width:16px}.main-2077[data-v-8a057c1e]::-webkit-scrollbar-thumb{background-color:rgba(238,222,0,.796078);border-radius:100px;border:3px solid #136377}.main-2077 input[data-v-8a057c1e]{color:#fcec0c;background-color:#136377}\", \"\"])\n}, function(e, t, i) {\n    \"use strict\";\n    i(217)\n}, function(e, t, i) {\n    (e.exports = i(24)(!1)).push([e.i, \"input[data-v-8a057c1e]{margin:5px 0;border:none;font-size:1.1em;border-bottom:2px solid rgba(61,182,164,.3)}input[type=checkbox][data-v-8a057c1e],input[type=radio][data-v-8a057c1e]{height:20px;width:20px;vertical-align:middle;margin-right:5px}label[data-v-8a057c1e]{font-size:1.1em;vertical-align:middle}input[data-v-8a057c1e]:focus{outline:none}.input-view[data-v-8a057c1e]{display:flex;flex-direction:column;justify-content:space-between}.cipher-list[data-v-8a057c1e]{display:grid;grid-template-columns:repeat(2,1fr)}.ss-list[data-v-8a057c1e],.vmess-list[data-v-8a057c1e]{display:flex;flex-direction:column}.group-type-list[data-v-8a057c1e],.proxy-type-list[data-v-8a057c1e]{display:flex;justify-content:flex-start}.group-type-list>div[data-v-8a057c1e],.proxy-type-list>div[data-v-8a057c1e]{margin-right:30px}.btns[data-v-8a057c1e]{margin-top:20px;display:flex;justify-content:space-around}.btn[data-v-8a057c1e]{padding:5px 10px;font-size:1.1em;text-align:center;width:100px;border-radius:4px}.cancel[data-v-8a057c1e]{background-color:#c0c0c0c0}.confirm[data-v-8a057c1e]{background-color:#375df3;color:#fff}\", \"\"])\n}, function(e, t, i) {\n    \"use strict\";\n    i(218)\n}, function(e, t, i) {\n    (e.exports = i(24)(!1)).push([e.i, \".main-config-view-light[data-v-16c92520]{height:100%;position:fixed}.main-config-view-light .proxy-group[data-v-16c92520]{flex:1;overflow-y:scroll;padding:0 20px 20px 15px}.main-config-view-light .proxy-group[data-v-16c92520]::-webkit-scrollbar{width:16px}.main-config-view-light .proxy-group[data-v-16c92520]::-webkit-scrollbar-thumb{background-color:rgba(101,81,122,.7);border-radius:100px;border:3px solid #fff}.main-config-view-light .proxy[data-v-16c92520]{flex:1;overflow-y:scroll;direction:rtl;padding:0 15px 20px 20px}.main-config-view-light .proxy[data-v-16c92520]::-webkit-scrollbar{width:16px}.main-config-view-light .proxy[data-v-16c92520]::-webkit-scrollbar-thumb{background-color:rgba(55,57,72,.7);border-radius:100px;border:3px solid #fff}.main-config-view-dark[data-v-16c92520]{height:100%;position:fixed}.main-config-view-dark .proxy-group[data-v-16c92520]{flex:1;overflow-y:scroll;padding:0 20px 20px 15px}.main-config-view-dark .proxy-group[data-v-16c92520]::-webkit-scrollbar{width:16px}.main-config-view-dark .proxy-group[data-v-16c92520]::-webkit-scrollbar-thumb{background-color:rgba(101,81,122,.7);border-radius:100px;border:3px solid #2c2a38}.main-config-view-dark .proxy[data-v-16c92520]{flex:1;overflow-y:scroll;direction:rtl;padding:0 15px 20px 20px}.main-config-view-dark .proxy[data-v-16c92520]::-webkit-scrollbar{width:16px}.main-config-view-dark .proxy[data-v-16c92520]::-webkit-scrollbar-thumb{background-color:rgba(55,57,72,.7);border-radius:100px;border:3px solid #2c2a38}.main-config-view-red[data-v-16c92520]{height:100%;position:fixed}.main-config-view-red .proxy-group[data-v-16c92520]{flex:1;overflow-y:scroll;padding:0 20px 20px 15px}.main-config-view-red .proxy-group[data-v-16c92520]::-webkit-scrollbar{width:16px}.main-config-view-red .proxy-group[data-v-16c92520]::-webkit-scrollbar-thumb{background-color:rgba(101,81,122,.7);border-radius:100px;border:3px solid #f8b74f}.main-config-view-red .proxy[data-v-16c92520]{flex:1;overflow-y:scroll;direction:rtl;padding:0 15px 20px 20px}.main-config-view-red .proxy[data-v-16c92520]::-webkit-scrollbar{width:16px}.main-config-view-red .proxy[data-v-16c92520]::-webkit-scrollbar-thumb{background-color:rgba(55,57,72,.7);border-radius:100px;border:3px solid #f8b74f}.main-config-view-2077[data-v-16c92520]{height:100%;position:fixed}.main-config-view-2077 .proxy-group[data-v-16c92520]{flex:1;overflow-y:scroll;padding:0 20px 20px 15px}.main-config-view-2077 .proxy-group[data-v-16c92520]::-webkit-scrollbar{width:16px}.main-config-view-2077 .proxy-group[data-v-16c92520]::-webkit-scrollbar-thumb{background-color:rgba(101,81,122,.7);border-radius:100px;border:3px solid #136377}.main-config-view-2077 .proxy[data-v-16c92520]{flex:1;overflow-y:scroll;direction:rtl;padding:0 15px 20px 20px}.main-config-view-2077 .proxy[data-v-16c92520]::-webkit-scrollbar{width:16px}.main-config-view-2077 .proxy[data-v-16c92520]::-webkit-scrollbar-thumb{background-color:rgba(55,57,72,.7);border-radius:100px;border:3px solid #136377}.dragArea[data-v-16c92520]{min-height:1px}.dragArea>[data-v-16c92520]{-webkit-user-drag:element}\", \"\"])\n}, function(e, t, i) {\n    \"use strict\";\n    i(219)\n}, function(e, t, i) {\n    (e.exports = i(24)(!1)).push([e.i, \".floating[data-v-16c92520]{position:fixed;left:170px;height:60px;width:calc(100vw - 170px);display:flex;justify-content:space-between;padding:0 50px 0 40px;align-items:center;box-shadow:2px 2px 4px 1px rgba(50,50,50,.2)}.floating-right[data-v-16c92520]{display:flex;justify-content:flex-end}.hint[data-v-16c92520]{font-size:1.1em}.main-btn[data-v-16c92520]{cursor:pointer;margin-left:20px;box-shadow:0 0 4px 1px rgba(50,50,50,.2);text-align:center;padding:5px 0;width:80px;border-radius:5px;color:#fff}.reload[data-v-16c92520]{background-color:#c7ca10}.save[data-v-16c92520]{background-color:#31a7e3}.drag[data-v-16c92520]{display:flex;padding:0 0 20px;margin-top:60px;left:20vw;height:calc(100% - 70px);width:calc(100vw - 170px);max-width:900px}.proxy>div[data-v-16c92520],.proxy>draggable[data-v-16c92520]{direction:ltr}.section-title[data-v-16c92520]{display:flex;justify-content:space-between;align-items:center;margin:20px 0 0;font-size:.8em}img[data-v-16c92520]{width:20px;height:20px;margin-left:10px;cursor:pointer}.add-icon[data-v-16c92520]{background-color:#677a94;border-radius:5px;color:#fff;font-size:.9em;letter-spacing:1px;padding:3px 10px;cursor:pointer;box-shadow:0 0 4px 1px rgba(50,50,50,.2)}.left-item[data-v-16c92520]{background-color:#373948}.right-item[data-v-16c92520]{background-color:#65517a}.group-type[data-v-16c92520]{font-size:.7em}.proxy-item[data-v-16c92520]{opacity:.8;cursor:pointer;font-size:1em;padding:5px 10px;margin:10px 0;display:flex;color:#fff;border-radius:5px;justify-content:space-between;align-items:center;box-shadow:0 0 4px 1px rgba(50,50,50,.2)}\", \"\"])\n}, function(e, t, i) {\n    \"use strict\";\n    i(220)\n}, function(e, t, i) {\n    (e.exports = i(24)(!1)).push([e.i, \".model-title-2077[data-v-281445b0],.model-title-dark[data-v-281445b0],.model-title-light[data-v-281445b0],.model-title-red[data-v-281445b0]{display:flex;font-size:1.2em;justify-content:space-between}.modal-container-light[data-v-281445b0]{width:500px;margin:0 auto;padding:20px 30px;background-color:#fff;border-radius:2px;box-shadow:0 2px 8px rgba(0,0,0,.33);transition:all .3s ease}.modal-container-light input[data-v-281445b0]{color:#000;background-color:#fff}.modal-container-dark[data-v-281445b0]{width:500px;margin:0 auto;padding:20px 30px;background-color:#2c2a38;border-radius:2px;box-shadow:0 2px 8px rgba(0,0,0,.33);transition:all .3s ease}.modal-container-dark input[data-v-281445b0]{color:#fff;background-color:#2c2a38}.modal-container-red[data-v-281445b0]{width:500px;margin:0 auto;padding:20px 30px;background-color:#f8b74f;border-radius:2px;box-shadow:0 2px 8px rgba(0,0,0,.33);transition:all .3s ease}.modal-container-red input[data-v-281445b0]{color:#d33928;background-color:#f8b74f}.modal-container-2077[data-v-281445b0]{width:500px;margin:0 auto;padding:20px 30px;background-color:#136377;border-radius:2px;box-shadow:0 2px 8px rgba(0,0,0,.33);transition:all .3s ease}.modal-container-2077 input[data-v-281445b0]{color:#fcec0c;background-color:#136377}.scroll-view-light[data-v-281445b0]{margin-top:20px;max-height:400px;padding:0 10px;overflow-y:scroll}.scroll-view-light[data-v-281445b0]::-webkit-scrollbar{width:16px}.scroll-view-light[data-v-281445b0]::-webkit-scrollbar-thumb{background-color:#cac8c6;border-radius:100px;border:3px solid #fff}.scroll-view-dark[data-v-281445b0]{margin-top:20px;max-height:400px;padding:0 10px;overflow-y:scroll}.scroll-view-dark[data-v-281445b0]::-webkit-scrollbar{width:16px}.scroll-view-dark[data-v-281445b0]::-webkit-scrollbar-thumb{background-color:#4d4d5a;border-radius:100px;border:3px solid #2c2a38}.scroll-view-red[data-v-281445b0]{margin-top:20px;max-height:400px;padding:0 10px;overflow-y:scroll}.scroll-view-red[data-v-281445b0]::-webkit-scrollbar{width:16px}.scroll-view-red[data-v-281445b0]::-webkit-scrollbar-thumb{background-color:rgba(183,46,41,.643137);border-radius:100px;border:3px solid #f8b74f}.scroll-view-2077[data-v-281445b0]{margin-top:20px;max-height:400px;padding:0 10px;overflow-y:scroll}.scroll-view-2077[data-v-281445b0]::-webkit-scrollbar{width:16px}.scroll-view-2077[data-v-281445b0]::-webkit-scrollbar-thumb{background-color:rgba(238,222,0,.796078);border-radius:100px;border:3px solid #136377}\", \"\"])\n}, function(e, t, i) {\n    \"use strict\";\n    i(221)\n}, function(e, t, i) {\n    (e.exports = i(24)(!1)).push([e.i, \".modal-mask[data-v-281445b0]{position:fixed;z-index:9998;top:0;left:170px;width:calc(100vw - 170px);height:100vh;background-color:rgba(0,0,0,.5);display:table;transition:opacity .3s ease}.modal-wrapper[data-v-281445b0]{display:table-cell;vertical-align:middle}.modal-header h3[data-v-281445b0]{margin-top:0;color:#42b983}.modal-body[data-v-281445b0]{margin:20px 0}.modal-default-button[data-v-281445b0]{float:right}.modal-enter[data-v-281445b0],.modal-leave-active[data-v-281445b0]{opacity:0}.modal-enter .modal-container[data-v-281445b0],.modal-leave-active .modal-container[data-v-281445b0]{-webkit-transform:scale(1.1);transform:scale(1.1)}input[data-v-281445b0]:focus{outline:none}input[data-v-281445b0]{height:30px;border:none;width:100%;font-size:1.3em;border-bottom:2px solid rgba(61,182,164,.3)}.rule-type-group[data-v-281445b0]{display:grid;grid-template-columns:repeat(2,1fr);grid-row-gap:10px;grid-column-gap:10px;grid-auto-rows:minmax(30px,auto)}.rule-type-item[data-v-281445b0]{text-align:center;line-height:30px;border-radius:5px;color:#fff;padding:5px 10px;background-color:rgba(101,81,122,.6)}.rule-type-selected[data-v-281445b0]{background-color:#65517a}.rule-proxy-group[data-v-281445b0]{margin-bottom:60px;display:grid;grid-template-columns:repeat(1,1fr);grid-row-gap:10px;grid-column-gap:10px;grid-auto-rows:minmax(30px,auto)}.rule-proxy-item[data-v-281445b0]{text-align:center;line-height:30px;border-radius:5px;color:#fff;padding:5px 10px;background-color:rgba(55,57,72,.6)}.rule-proxy-selected[data-v-281445b0]{background-color:#373948}.rule-section-title[data-v-281445b0]{font-size:1em;color:#a6a5a4;margin-top:10px;margin-bottom:5px}.rule-floating-btns[data-v-281445b0]{right:calc(80vw - 585px);bottom:calc(100vh - 450px);display:flex}.rule-floating-btns>div[data-v-281445b0]{font-size:.8em;width:80px;height:35px;margin-left:10px;line-height:50px;text-align:center;display:flex;align-items:center;justify-content:center;cursor:pointer;border-radius:3px;color:#fff}.rule-floating-cancel[data-v-281445b0]{background-color:#41b883}.rule-floating-ok[data-v-281445b0]{background-color:#3a56c5}\", \"\"])\n}, function(e, t, i) {\n    \"use strict\";\n    i(222)\n}, function(e, t, i) {\n    (e.exports = i(24)(!1)).push([e.i, \".rule-light[data-v-d9c5f67a]{font-size:13px;color:rgba(50,50,50,.7)}.rule-dark[data-v-d9c5f67a]{font-size:13px;color:hsla(0,0%,88%,.712)}.rule-red[data-v-d9c5f67a]{font-size:13px;color:#3f3f3f}.rule-2077[data-v-d9c5f67a]{font-size:13px;color:hsla(0,0%,88%,.712)}.log-item-light[data-v-d9c5f67a]{border-bottom:1px solid rgba(50,50,50,.1)}.log-item-dark[data-v-d9c5f67a],.log-item-light[data-v-d9c5f67a]{display:flex;justify-content:space-between;align-items:center;padding:5px 20px}.log-item-dark[data-v-d9c5f67a]{border-bottom:1px solid #494242}.log-item-red[data-v-d9c5f67a]{border-bottom:1px solid rgba(218,20,30,.247059)}.log-item-2077[data-v-d9c5f67a],.log-item-red[data-v-d9c5f67a]{display:flex;justify-content:space-between;align-items:center;padding:5px 20px}.log-item-2077[data-v-d9c5f67a]{border-bottom:1px solid #494242}.log-list-light[data-v-d9c5f67a]{width:calc(100% - 0px);border:0 solid rgba(50,50,50,.2);height:calc(100% - 100px);border-style:dashed;padding:10px 20px;overflow-y:scroll}.log-list-light[data-v-d9c5f67a]::-webkit-scrollbar{width:16px}.log-list-light[data-v-d9c5f67a]::-webkit-scrollbar-thumb{background-color:#cac8c6;border-radius:100px;border:3px solid #fff}.log-list-dark[data-v-d9c5f67a]{width:calc(100% - 0px);border:0 solid rgba(50,50,50,.2);height:calc(100% - 100px);border-style:dashed;padding:10px 20px;overflow-y:scroll}.log-list-dark[data-v-d9c5f67a]::-webkit-scrollbar{width:16px}.log-list-dark[data-v-d9c5f67a]::-webkit-scrollbar-thumb{background-color:#4d4d5a;border-radius:100px;border:3px solid #2c2a38}.log-list-red[data-v-d9c5f67a]{width:calc(100% - 0px);border:0 solid rgba(50,50,50,.2);height:calc(100% - 100px);border-style:dashed;padding:10px 20px;overflow-y:scroll}.log-list-red[data-v-d9c5f67a]::-webkit-scrollbar{width:16px}.log-list-red[data-v-d9c5f67a]::-webkit-scrollbar-thumb{background-color:rgba(183,46,41,.643137);border-radius:100px;border:3px solid #f8b74f}.log-list-2077[data-v-d9c5f67a]{width:calc(100% - 0px);border:0 solid rgba(50,50,50,.2);height:calc(100% - 100px);border-style:dashed;padding:10px 20px;overflow-y:scroll}.log-list-2077[data-v-d9c5f67a]::-webkit-scrollbar{width:16px}.log-list-2077[data-v-d9c5f67a]::-webkit-scrollbar-thumb{background-color:rgba(238,222,0,.796078);border-radius:100px;border:3px solid #136377}\", \"\"])\n}, function(e, t, i) {\n    \"use strict\";\n    i(223)\n}, function(e, t, i) {\n    (e.exports = i(24)(!1)).push([e.i, \"#main-log-view[data-v-d9c5f67a]{height:100%;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between}.icon[data-v-d9c5f67a]{width:22px;height:22px;cursor:pointer;margin-left:10px}.emoji-name[data-v-d9c5f67a],.header[data-v-d9c5f67a]{display:flex;align-items:center}.header[data-v-d9c5f67a]{justify-content:space-between;padding:0 50px 0 40px;height:60px}.header-btns[data-v-d9c5f67a]{display:flex;justify-content:flex-end}.filter-view[data-v-d9c5f67a]{width:calc(100vw - 170px);height:50px}.filter-view input[data-v-d9c5f67a]{margin:0 40px 10px;cursor:text;width:calc(100vw - 250px);height:40px;padding:0 20px;border:none;background-color:#eee;border-radius:5px;font-size:1.1em}.filter-view input[data-v-d9c5f67a]:focus{outline:none}.btn[data-v-d9c5f67a]{cursor:pointer;box-shadow:0 0 4px 1px rgba(50,50,50,.2);margin-left:20px;width:80px;text-align:center;padding:5px 10px;border-radius:5px;color:#fff}.btn-add[data-v-d9c5f67a]{background-color:#31a7e3}.btn-save[data-v-d9c5f67a]{background-color:#41b883}.btn-back[data-v-d9c5f67a]{background-color:#e0dd22}.title[data-v-d9c5f67a]{font-size:1.1em;margin-bottom:0}.log-item[data-v-d9c5f67a]{display:flex;justify-content:space-between;align-items:center;padding:5px 20px;width:100%;border-bottom:1px solid rgba(50,50,50,.1)}.left[data-v-d9c5f67a]{flex-grow:1;padding-right:40px;overflow:hidden}.right-main[data-v-d9c5f67a]{display:flex;align-items:center}img[data-v-d9c5f67a]{margin-left:10px;width:25px;height:25px}.url[data-v-d9c5f67a]{font-size:18px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.rule-set[data-v-d9c5f67a]{color:#ff5e00}.right[data-v-d9c5f67a]{font-size:1em;padding:5px 10px;border-radius:4px;color:#fff;opacity:.8;box-shadow:0 0 4px 1px rgba(50,50,50,.2)}\", \"\"])\n}, function(e, t, i) {\n    \"use strict\";\n    i(224)\n}, function(e, t, i) {\n    (e.exports = i(24)(!1)).push([e.i, \".qrcode-view-main[data-v-64e66e1e]{position:fixed;left:170px;top:25px;height:100%;width:calc(100vw - 170px);display:flex;justify-content:center;align-items:center;background-color:rgba(50,50,50,.6);z-index:100}.qrcode-view-main .content[data-v-64e66e1e]{width:250px;background-color:#fff;box-shadow:0 0 10px 3px hsla(0,0%,5%,.164);border-radius:2px;padding:10px 10px 20px;display:flex;flex-direction:column;justify-content:space-between;align-items:center}.qrcode-view-main .content img[data-v-64e66e1e]{width:230px;height:230px}.qrcode-view-main .content .url[data-v-64e66e1e]{font-size:12px;width:200px;overflow-wrap:anywhere;text-decoration:underline;cursor:pointer;color:#0f7bd3}.qrcode-view-main .content .btn[data-v-64e66e1e]{margin-top:10px;height:45px;color:#fff;cursor:pointer;line-height:45px;text-align:center;background-color:#7e7b7b;border-radius:3px;padding-left:10px;padding-right:10px;font-size:.85em;box-shadow:0 2px 20px 2px rgba(50,50,50,.1);width:200px}\", \"\"])\n}, function(e, t, i) {\n    \"use strict\";\n    i(225)\n}, function(e, t, i) {\n    (e.exports = i(24)(!1)).push([e.i, \".card-light[data-v-4d08ae52]{background-color:#fff;border-bottom:1px solid #dcdcdc}.card-dark[data-v-4d08ae52],.card-light[data-v-4d08ae52]{position:fixed;padding:0 35px;height:80px;width:calc(100vw - 170px);display:flex;justify-content:space-between}.card-dark[data-v-4d08ae52]{background-color:#2c2a38;border-bottom:1px solid #554f4f}.card-red[data-v-4d08ae52]{background-color:#f8b74f;border-bottom:1px solid rgba(218,20,30,.247059)}.card-2077[data-v-4d08ae52],.card-red[data-v-4d08ae52]{position:fixed;padding:0 35px;height:80px;width:calc(100vw - 170px);display:flex;justify-content:space-between}.card-2077[data-v-4d08ae52]{background-color:#136377;border-bottom:1px solid rgba(6,145,180,.521569)}.list-item-light[data-v-4d08ae52]{background-color:#fff;margin:4px 6px;display:flex;justify-content:space-between;position:relative;width:295px;flex-grow:1}.list-item-light .item-subinfo[data-v-4d08ae52]{width:fit-content}.list-item-light .item-subinfo .item-subinfo-texts[data-v-4d08ae52]{display:flex;font-size:11px;color:gray}.list-item-light .item-subinfo .item-subinfo-texts div[data-v-4d08ae52]{margin-right:10px}.list-item-light .item-subinfo .item-subinfo-texts div[data-v-4d08ae52]:last-child{margin-right:0}.list-item-light .item-subinfo .progress[data-v-4d08ae52]{background-color:#e2e2e2;text-align:center;height:3px;width:100%;color:#fff;position:relative;border-radius:3px;margin-bottom:2px}.list-item-light .item-subinfo .progress .percent[data-v-4d08ae52]{border-radius:3px;width:100%;top:0;left:0;position:absolute;height:100%;background-color:#f57983}.list-item-light .indicator[data-v-4d08ae52]{margin-right:4px;margin-top:2px;width:4px;height:calc(100% - 4px);border-radius:10px;background-color:rgba(75,75,75,.185)}.list-item-light .item-info[data-v-4d08ae52]{padding:4px 5px;background-color:rgba(41,41,41,.05);display:flex;align-items:center;justify-content:flex-start;flex-grow:1;max-width:calc(100% - 8px);border-radius:3px;height:100%;position:relative}.list-item-light .item-info .refresh-icon[data-v-4d08ae52]{width:18px;height:18px;position:absolute;right:3px;top:3px}.list-item-light .item-info .item-name[data-v-4d08ae52]{cursor:pointer;margin-left:5px;flex-grow:1;width:calc(100% - 50px);font-size:15px}.list-item-light .item-info .item-name .item-name-bottom[data-v-4d08ae52]{font-size:13px;cursor:pointer;max-width:calc(100% - 10px);text-overflow:ellipsis;white-space:nowrap;overflow:hidden;font-weight:400;color:gray}.list-item-light .item-info .item-edit-zone[data-v-4d08ae52]{background-color:#fff;box-shadow:0 0 4px 0 rgba(0,0,0,.3);border-radius:5px;position:absolute;width:175px;display:flex;flex-wrap:wrap;justify-content:space-between;right:30px;z-index:1}.list-item-light .item-icon[data-v-4d08ae52]{width:30px;height:30px;border-radius:5px;display:flex;align-items:center;justify-content:center;transition:background-color .3s;cursor:pointer}.list-item-light .item-icon [data-v-4d08ae52]{cursor:pointer}.list-item-light .item-icon[data-v-4d08ae52]:hover{background-color:hsla(0,0%,74%,.534)}.list-item-light .item-icon>svg[data-v-4d08ae52]{width:18px;height:18px;fill:#000}.list-item-light .item-disabled[data-v-4d08ae52]{cursor:not-allowed}.list-item-light .item-disabled>svg[data-v-4d08ae52]{fill:gray}.list-item-light .more[data-v-4d08ae52]{position:absolute;right:0;width:30px;height:100%;display:flex;align-items:center;justify-content:center;border-top-right-radius:3px;border-bottom-right-radius:3px}.list-item-light .more[data-v-4d08ae52]:hover{background-color:hsla(0,0%,50%,.1)}.list-item-light .more>svg[data-v-4d08ae52]{height:18px;fill:#000}.list-item-dark[data-v-4d08ae52]{background-color:#2c2a38;margin:4px 6px;display:flex;justify-content:space-between;position:relative;width:295px;flex-grow:1}.list-item-dark .item-subinfo[data-v-4d08ae52]{width:fit-content}.list-item-dark .item-subinfo .item-subinfo-texts[data-v-4d08ae52]{display:flex;font-size:11px;color:#a7a7a7}.list-item-dark .item-subinfo .item-subinfo-texts div[data-v-4d08ae52]{margin-right:10px}.list-item-dark .item-subinfo .item-subinfo-texts div[data-v-4d08ae52]:last-child{margin-right:0}.list-item-dark .item-subinfo .progress[data-v-4d08ae52]{background-color:#5a5a5a;text-align:center;height:3px;width:100%;color:#b4b4b4;position:relative;border-radius:3px;margin-bottom:2px}.list-item-dark .item-subinfo .progress .percent[data-v-4d08ae52]{border-radius:3px;width:100%;top:0;left:0;position:absolute;height:100%;background-color:#92484e}.list-item-dark .indicator[data-v-4d08ae52]{margin-right:4px;margin-top:2px;width:4px;height:calc(100% - 4px);border-radius:10px;background-color:hsla(0,0%,78%,.185)}.list-item-dark .item-info[data-v-4d08ae52]{padding:4px 5px;background-color:hsla(0,0%,100%,.05);display:flex;align-items:center;justify-content:flex-start;flex-grow:1;max-width:calc(100% - 8px);border-radius:3px;height:100%;position:relative}.list-item-dark .item-info .refresh-icon[data-v-4d08ae52]{width:18px;height:18px;position:absolute;right:3px;top:3px}.list-item-dark .item-info .item-name[data-v-4d08ae52]{cursor:pointer;margin-left:5px;flex-grow:1;width:calc(100% - 50px);font-size:15px}.list-item-dark .item-info .item-name .item-name-bottom[data-v-4d08ae52]{font-size:13px;cursor:pointer;max-width:calc(100% - 10px);text-overflow:ellipsis;white-space:nowrap;overflow:hidden;font-weight:400;color:#a7a7a7}.list-item-dark .item-info .item-edit-zone[data-v-4d08ae52]{background-color:#2c2a38;box-shadow:0 0 4px 0 rgba(0,0,0,.3);border-radius:5px;position:absolute;width:175px;display:flex;flex-wrap:wrap;justify-content:space-between;right:30px;z-index:1}.list-item-dark .item-icon[data-v-4d08ae52]{width:30px;height:30px;border-radius:5px;display:flex;align-items:center;justify-content:center;transition:background-color .3s;cursor:pointer}.list-item-dark .item-icon [data-v-4d08ae52]{cursor:pointer}.list-item-dark .item-icon[data-v-4d08ae52]:hover{background-color:hsla(0,0%,74%,.534)}.list-item-dark .item-icon>svg[data-v-4d08ae52]{width:18px;height:18px;fill:#fff}.list-item-dark .item-disabled[data-v-4d08ae52]{cursor:not-allowed}.list-item-dark .item-disabled>svg[data-v-4d08ae52]{fill:gray}.list-item-dark .more[data-v-4d08ae52]{position:absolute;right:0;width:30px;height:100%;display:flex;align-items:center;justify-content:center;border-top-right-radius:3px;border-bottom-right-radius:3px}.list-item-dark .more[data-v-4d08ae52]:hover{background-color:hsla(0,0%,50%,.1)}.list-item-dark .more>svg[data-v-4d08ae52]{height:18px;fill:#fff}.list-item-red[data-v-4d08ae52]{background-color:#f8b74f;margin:4px 6px;display:flex;justify-content:space-between;position:relative;width:295px;flex-grow:1}.list-item-red .item-subinfo[data-v-4d08ae52]{width:fit-content}.list-item-red .item-subinfo .item-subinfo-texts[data-v-4d08ae52]{display:flex;font-size:11px;color:#995e00}.list-item-red .item-subinfo .item-subinfo-texts div[data-v-4d08ae52]{margin-right:10px}.list-item-red .item-subinfo .item-subinfo-texts div[data-v-4d08ae52]:last-child{margin-right:0}.list-item-red .item-subinfo .progress[data-v-4d08ae52]{background-color:hsla(0,0%,59%,.295);text-align:center;height:3px;width:100%;color:#d1d1d1;position:relative;border-radius:3px;margin-bottom:2px}.list-item-red .item-subinfo .progress .percent[data-v-4d08ae52]{border-radius:3px;width:100%;top:0;left:0;position:absolute;height:100%;background-color:#b3585f}.list-item-red .indicator[data-v-4d08ae52]{margin-right:4px;margin-top:2px;width:4px;height:calc(100% - 4px);border-radius:10px;background-color:#f39908}.list-item-red .item-info[data-v-4d08ae52]{padding:4px 5px;background-color:#fdc975;display:flex;align-items:center;justify-content:flex-start;flex-grow:1;max-width:calc(100% - 8px);border-radius:3px;height:100%;position:relative}.list-item-red .item-info .refresh-icon[data-v-4d08ae52]{width:18px;height:18px;position:absolute;right:3px;top:3px}.list-item-red .item-info .item-name[data-v-4d08ae52]{cursor:pointer;margin-left:5px;flex-grow:1;width:calc(100% - 50px);font-size:15px}.list-item-red .item-info .item-name .item-name-bottom[data-v-4d08ae52]{font-size:13px;cursor:pointer;max-width:calc(100% - 10px);text-overflow:ellipsis;white-space:nowrap;overflow:hidden;font-weight:400;color:#995e00}.list-item-red .item-info .item-edit-zone[data-v-4d08ae52]{background-color:#f8b74f;box-shadow:0 0 4px 0 rgba(0,0,0,.3);border-radius:5px;position:absolute;width:175px;display:flex;flex-wrap:wrap;justify-content:space-between;right:30px;z-index:1}.list-item-red .item-icon[data-v-4d08ae52]{width:30px;height:30px;border-radius:5px;display:flex;align-items:center;justify-content:center;transition:background-color .3s;cursor:pointer}.list-item-red .item-icon [data-v-4d08ae52]{cursor:pointer}.list-item-red .item-icon[data-v-4d08ae52]:hover{background-color:hsla(0,0%,74%,.534)}.list-item-red .item-icon>svg[data-v-4d08ae52]{width:18px;height:18px;fill:#d33928}.list-item-red .item-disabled[data-v-4d08ae52]{cursor:not-allowed}.list-item-red .item-disabled>svg[data-v-4d08ae52]{fill:gray}.list-item-red .more[data-v-4d08ae52]{position:absolute;right:0;width:30px;height:100%;display:flex;align-items:center;justify-content:center;border-top-right-radius:3px;border-bottom-right-radius:3px}.list-item-red .more[data-v-4d08ae52]:hover{background-color:hsla(0,0%,50%,.1)}.list-item-red .more>svg[data-v-4d08ae52]{height:18px;fill:#d33928}.list-item-2077[data-v-4d08ae52]{background-color:#136377;margin:4px 6px;display:flex;justify-content:space-between;position:relative;width:295px;flex-grow:1}.list-item-2077 .item-subinfo[data-v-4d08ae52]{width:fit-content}.list-item-2077 .item-subinfo .item-subinfo-texts[data-v-4d08ae52]{display:flex;font-size:11px;color:#bbb33f}.list-item-2077 .item-subinfo .item-subinfo-texts div[data-v-4d08ae52]{margin-right:10px}.list-item-2077 .item-subinfo .item-subinfo-texts div[data-v-4d08ae52]:last-child{margin-right:0}.list-item-2077 .item-subinfo .progress[data-v-4d08ae52]{background-color:#4e8a6f;text-align:center;height:3px;width:100%;color:#fff;position:relative;border-radius:3px;margin-bottom:2px}.list-item-2077 .item-subinfo .progress .percent[data-v-4d08ae52]{border-radius:3px;width:100%;top:0;left:0;position:absolute;height:100%;background-color:#b4555d}.list-item-2077 .indicator[data-v-4d08ae52]{margin-right:4px;margin-top:2px;width:4px;height:calc(100% - 4px);border-radius:10px;background-color:rgba(6,49,70,.411)}.list-item-2077 .item-info[data-v-4d08ae52]{padding:4px 5px;background-color:rgba(9,115,141,.917647);display:flex;align-items:center;justify-content:flex-start;flex-grow:1;max-width:calc(100% - 8px);border-radius:3px;height:100%;position:relative}.list-item-2077 .item-info .refresh-icon[data-v-4d08ae52]{width:18px;height:18px;position:absolute;right:3px;top:3px}.list-item-2077 .item-info .item-name[data-v-4d08ae52]{cursor:pointer;margin-left:5px;flex-grow:1;width:calc(100% - 50px);font-size:15px}.list-item-2077 .item-info .item-name .item-name-bottom[data-v-4d08ae52]{font-size:13px;cursor:pointer;max-width:calc(100% - 10px);text-overflow:ellipsis;white-space:nowrap;overflow:hidden;font-weight:400;color:#bbb33f}.list-item-2077 .item-info .item-edit-zone[data-v-4d08ae52]{background-color:#136377;box-shadow:0 0 4px 0 rgba(0,0,0,.3);border-radius:5px;position:absolute;width:175px;display:flex;flex-wrap:wrap;justify-content:space-between;right:30px;z-index:1}.list-item-2077 .item-icon[data-v-4d08ae52]{width:30px;height:30px;border-radius:5px;display:flex;align-items:center;justify-content:center;transition:background-color .3s;cursor:pointer}.list-item-2077 .item-icon [data-v-4d08ae52]{cursor:pointer}.list-item-2077 .item-icon[data-v-4d08ae52]:hover{background-color:hsla(0,0%,74%,.534)}.list-item-2077 .item-icon>svg[data-v-4d08ae52]{width:18px;height:18px;fill:#fcec0c}.list-item-2077 .item-disabled[data-v-4d08ae52]{cursor:not-allowed}.list-item-2077 .item-disabled>svg[data-v-4d08ae52]{fill:gray}.list-item-2077 .more[data-v-4d08ae52]{position:absolute;right:0;width:30px;height:100%;display:flex;align-items:center;justify-content:center;border-top-right-radius:3px;border-bottom-right-radius:3px}.list-item-2077 .more[data-v-4d08ae52]:hover{background-color:hsla(0,0%,50%,.1)}.list-item-2077 .more>svg[data-v-4d08ae52]{height:18px;fill:#fcec0c}.item-cur-light .indicator[data-v-4d08ae52]{background-color:#41b883}.item-cur-dark .indicator[data-v-4d08ae52]{background-color:#0a0}.item-cur-red .indicator[data-v-4d08ae52]{background-color:rgba(27,180,6,.788235)}.item-cur-2077 .indicator[data-v-4d08ae52]{background-color:#f8ed53}.main[data-v-4d08ae52]{display:flex;flex-direction:column;height:100%}#main-server-view[data-v-4d08ae52]{height:100%}.list-view-light[data-v-4d08ae52]{margin-top:80px;height:calc(100% - 80px);width:100%;overflow-y:scroll;display:flex;flex-wrap:wrap;padding:10px 20px 20px 30px;align-content:flex-start}.list-view-light[data-v-4d08ae52]::-webkit-scrollbar{width:16px}.list-view-light[data-v-4d08ae52]::-webkit-scrollbar-thumb{background-color:#cac8c6;border-radius:100px;border:3px solid #fff}.list-view-light>[data-v-4d08ae52]{-webkit-user-drag:element}.list-view-light i[data-v-4d08ae52]{width:295px;margin:0 6px;flex-grow:1;height:0}.list-view-dark[data-v-4d08ae52]{margin-top:80px;height:calc(100% - 80px);width:100%;overflow-y:scroll;display:flex;flex-wrap:wrap;padding:10px 20px 20px 30px;align-content:flex-start}.list-view-dark[data-v-4d08ae52]::-webkit-scrollbar{width:16px}.list-view-dark[data-v-4d08ae52]::-webkit-scrollbar-thumb{background-color:#4d4d5a;border-radius:100px;border:3px solid #2c2a38}.list-view-dark>[data-v-4d08ae52]{-webkit-user-drag:element}.list-view-dark i[data-v-4d08ae52]{width:295px;margin:0 6px;flex-grow:1;height:0}.list-view-red[data-v-4d08ae52]{margin-top:80px;height:calc(100% - 80px);width:100%;overflow-y:scroll;display:flex;flex-wrap:wrap;padding:10px 20px 20px 30px;align-content:flex-start}.list-view-red[data-v-4d08ae52]::-webkit-scrollbar{width:16px}.list-view-red[data-v-4d08ae52]::-webkit-scrollbar-thumb{background-color:rgba(183,46,41,.643137);border-radius:100px;border:3px solid #f8b74f}.list-view-red>[data-v-4d08ae52]{-webkit-user-drag:element}.list-view-red i[data-v-4d08ae52]{width:295px;margin:0 6px;flex-grow:1;height:0}.list-view-2077[data-v-4d08ae52]{margin-top:80px;height:calc(100% - 80px);width:100%;overflow-y:scroll;display:flex;flex-wrap:wrap;padding:10px 20px 20px 30px;align-content:flex-start}.list-view-2077[data-v-4d08ae52]::-webkit-scrollbar{width:16px}.list-view-2077[data-v-4d08ae52]::-webkit-scrollbar-thumb{background-color:rgba(238,222,0,.796078);border-radius:100px;border:3px solid #136377}.list-view-2077>[data-v-4d08ae52]{-webkit-user-drag:element}.list-view-2077 i[data-v-4d08ae52]{width:295px;margin:0 6px;flex-grow:1;height:0}.input-container[data-v-4d08ae52]{display:flex;flex-grow:1;overflow:hidden;padding-right:5px;justify-content:space-between;position:relative;z-index:1}.input-container input[data-v-4d08ae52]{border-top-left-radius:3px;border-bottom-left-radius:3px;padding-right:40px}.input-container svg[data-v-4d08ae52]{border-top-right-radius:3px;border-bottom-right-radius:3px}\", \"\"])\n}, function(e, t, i) {\n    \"use strict\";\n    i(226)\n}, function(e, t, i) {\n    (e.exports = i(24)(!1)).push([e.i, \"input[data-v-4d08ae52]{cursor:text;width:calc(100vw - 230px);height:45px;font-size:1em;border:1px solid rgba(50,50,50,.2);padding:0 10px}input[data-v-4d08ae52]:focus{outline:none;box-shadow:0 0 2px 1px rgba(50,50,50,.2)}.remote-view[data-v-4d08ae52]{display:flex;align-items:center;justify-content:space-around}.local-view[data-v-4d08ae52]{right:0;margin:0 2vw 20px 1vw}.list-view[data-v-4d08ae52]>:last-child{margin-bottom:25px}.item-name-top[data-v-4d08ae52]{display:flex;justify-content:space-between;align-items:center;cursor:pointer;font-size:15px}.item-name-top>div[data-v-4d08ae52]{max-width:calc((80vw - 80px) / 2 - 65px);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.item-time[data-v-4d08ae52]{cursor:pointer}.item-expired[data-v-4d08ae52]{color:#fa4949}.item-parser[data-v-4d08ae52]{font-size:.8em}.item-time-now[data-v-4d08ae52]{color:#9eff71}.btns-container[data-v-4d08ae52]{display:flex;align-items:center;width:fit-content;justify-content:space-between}.confirm[data-v-4d08ae52]{height:45px;color:#fff;cursor:pointer;line-height:45px;text-align:center;background-color:#7e7b7b;border-radius:3px;padding-left:10px;padding-right:10px;font-size:.85em;box-shadow:0 2px 20px 2px rgba(50,50,50,.1);width:fit-content;white-space:nowrap}.confirm-left[data-v-4d08ae52]{padding:auto 30px}.confirm-right[data-v-4d08ae52]{margin-left:10px}.confirm-copy[data-v-4d08ae52]{border-radius:5px}.btn-error[data-v-4d08ae52]{background-color:#ec2658}.btn-success[data-v-4d08ae52]{background-color:#8ade4e}.btn-loading[data-v-4d08ae52]{box-shadow:2px 2px 5px 1px rgba(50,50,50,.1)}.hint-normal[data-v-4d08ae52]{text-align:center;font-size:1em;font-weight:500}.hint-error[data-v-4d08ae52]{color:#ec2658}.copy-icon[data-v-4d08ae52]{flex-shrink:0;height:45px;width:45px;padding:10px;background-color:#5e798b;cursor:pointer;box-shadow:0 0 2px 1px rgba(50,50,50,.2)}.clear-icon[data-v-4d08ae52]{height:45px;width:45px;padding:13px;position:absolute;right:50px}.rotating[data-v-4d08ae52]{animation:downloading-data-v-4d08ae52 1s infinite;animation-timing-function:linear}@keyframes downloading-data-v-4d08ae52{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}\", \"\"])\n}, function(e, t, i) {\n    \"use strict\";\n    i(227)\n}, function(e, t, i) {\n    (e.exports = i(24)(!1)).push([e.i, \".main-connection-view-light[data-v-34dd3e44]{overflow:hidden;display:flex;justify-content:space-between;flex-direction:column;height:100%}.main-connection-view-light .header[data-v-34dd3e44]{height:40px;display:flex;justify-content:space-between;align-items:center;margin:auto 20px}.main-connection-view-light .header .search-area[data-v-34dd3e44]{position:relative;flex-grow:1;margin:0 10px}.main-connection-view-light .header .search-area .search-box[data-v-34dd3e44]{color:#000;padding:0 32px 0 12px;background-color:#f1f1f1;border:none;outline:none;height:25px;border-radius:50px;line-height:25px;font-size:14px;width:100%}.main-connection-view-light .header .search-area svg[data-v-34dd3e44]{position:absolute;right:0;height:100%;cursor:pointer;width:40px;padding:0 10px 0 15px}.main-connection-view-light .header .search-area svg [data-v-34dd3e44]{cursor:pointer}.main-connection-view-light .control-view[data-v-34dd3e44]{display:flex;padding:0 20px 10px 16px;justify-content:space-between;height:40px;border-bottom:1px solid #dcdcdc}.main-connection-view-light .control-view .labels[data-v-34dd3e44]{display:flex;align-items:center;color:#fff}.main-connection-view-light .control-view .labels .label[data-v-34dd3e44]{height:25px;font-size:14px;font-weight:400;margin:0 5px 0 0;padding:0 5px;line-height:25px;cursor:pointer;background-color:hsla(0,0%,39%,.5);border-radius:3px}.main-connection-view-light .control-view .labels .label-selected[data-v-34dd3e44]{background-color:rgba(14,184,65,.932)}.main-connection-view-dark[data-v-34dd3e44]{overflow:hidden;display:flex;justify-content:space-between;flex-direction:column;height:100%}.main-connection-view-dark .header[data-v-34dd3e44]{height:40px;display:flex;justify-content:space-between;align-items:center;margin:auto 20px}.main-connection-view-dark .header .search-area[data-v-34dd3e44]{position:relative;flex-grow:1;margin:0 10px}.main-connection-view-dark .header .search-area .search-box[data-v-34dd3e44]{color:#fff;padding:0 32px 0 12px;background-color:#606068;border:none;outline:none;height:25px;border-radius:50px;line-height:25px;font-size:14px;width:100%}.main-connection-view-dark .header .search-area svg[data-v-34dd3e44]{position:absolute;right:0;height:100%;cursor:pointer;width:40px;padding:0 10px 0 15px}.main-connection-view-dark .header .search-area svg [data-v-34dd3e44]{cursor:pointer}.main-connection-view-dark .control-view[data-v-34dd3e44]{display:flex;padding:0 20px 10px 16px;justify-content:space-between;height:40px;border-bottom:1px solid #554f4f}.main-connection-view-dark .control-view .labels[data-v-34dd3e44]{display:flex;align-items:center;color:#fff}.main-connection-view-dark .control-view .labels .label[data-v-34dd3e44]{height:25px;font-size:14px;font-weight:400;margin:0 5px 0 0;padding:0 5px;line-height:25px;cursor:pointer;background-color:hsla(0,0%,39%,.5);border-radius:3px}.main-connection-view-dark .control-view .labels .label-selected[data-v-34dd3e44]{background-color:rgba(14,184,65,.932)}.main-connection-view-red[data-v-34dd3e44]{overflow:hidden;display:flex;justify-content:space-between;flex-direction:column;height:100%}.main-connection-view-red .header[data-v-34dd3e44]{height:40px;display:flex;justify-content:space-between;align-items:center;margin:auto 20px}.main-connection-view-red .header .search-area[data-v-34dd3e44]{position:relative;flex-grow:1;margin:0 10px}.main-connection-view-red .header .search-area .search-box[data-v-34dd3e44]{color:#d33928;padding:0 32px 0 12px;background-color:#eda94c;border:none;outline:none;height:25px;border-radius:50px;line-height:25px;font-size:14px;width:100%}.main-connection-view-red .header .search-area svg[data-v-34dd3e44]{position:absolute;right:0;height:100%;cursor:pointer;width:40px;padding:0 10px 0 15px}.main-connection-view-red .header .search-area svg [data-v-34dd3e44]{cursor:pointer}.main-connection-view-red .control-view[data-v-34dd3e44]{display:flex;padding:0 20px 10px 16px;justify-content:space-between;height:40px;border-bottom:1px solid rgba(218,20,30,.247059)}.main-connection-view-red .control-view .labels[data-v-34dd3e44]{display:flex;align-items:center;color:#fff}.main-connection-view-red .control-view .labels .label[data-v-34dd3e44]{height:25px;font-size:14px;font-weight:400;margin:0 5px 0 0;padding:0 5px;line-height:25px;cursor:pointer;background-color:hsla(0,0%,39%,.5);border-radius:3px}.main-connection-view-red .control-view .labels .label-selected[data-v-34dd3e44]{background-color:rgba(14,184,65,.932)}.main-connection-view-2077[data-v-34dd3e44]{overflow:hidden;display:flex;justify-content:space-between;flex-direction:column;height:100%}.main-connection-view-2077 .header[data-v-34dd3e44]{height:40px;display:flex;justify-content:space-between;align-items:center;margin:auto 20px}.main-connection-view-2077 .header .search-area[data-v-34dd3e44]{position:relative;flex-grow:1;margin:0 10px}.main-connection-view-2077 .header .search-area .search-box[data-v-34dd3e44]{color:#fcec0c;padding:0 32px 0 12px;background-color:#084a5a;border:none;outline:none;height:25px;border-radius:50px;line-height:25px;font-size:14px;width:100%}.main-connection-view-2077 .header .search-area svg[data-v-34dd3e44]{position:absolute;right:0;height:100%;cursor:pointer;width:40px;padding:0 10px 0 15px}.main-connection-view-2077 .header .search-area svg [data-v-34dd3e44]{cursor:pointer}.main-connection-view-2077 .control-view[data-v-34dd3e44]{display:flex;padding:0 20px 10px 16px;justify-content:space-between;height:40px;border-bottom:1px solid rgba(6,145,180,.521569)}.main-connection-view-2077 .control-view .labels[data-v-34dd3e44]{display:flex;align-items:center;color:#fff}.main-connection-view-2077 .control-view .labels .label[data-v-34dd3e44]{height:25px;font-size:14px;font-weight:400;margin:0 5px 0 0;padding:0 5px;line-height:25px;cursor:pointer;background-color:hsla(0,0%,39%,.5);border-radius:3px}.main-connection-view-2077 .control-view .labels .label-selected[data-v-34dd3e44]{background-color:rgba(14,184,65,.932)}.title[data-v-34dd3e44]{height:40px;display:flex;align-items:center}.title div[data-v-34dd3e44]:first-child{font-size:20px;display:flex;align-items:baseline}.title div:first-child span[data-v-34dd3e44]{font-size:12px;margin-left:6px}.title div[data-v-34dd3e44]:last-child{height:30px;margin-left:5px;border-radius:20px}.title div:last-child svg[data-v-34dd3e44]{margin:5px;height:20px;width:20px;cursor:pointer}.title div[data-v-34dd3e44]:last-child:hover{background-color:hsla(0,0%,83%,.295)}.header-right[data-v-34dd3e44]{display:flex;align-items:center}.total-hint[data-v-34dd3e44]{font-size:15px;white-space:nowrap}.scroll-view-light[data-v-34dd3e44]{height:calc(100% - 60px);width:calc(100% - 0px);overflow-y:scroll}.scroll-view-light[data-v-34dd3e44]::-webkit-scrollbar{width:16px}.scroll-view-light[data-v-34dd3e44]::-webkit-scrollbar-thumb{background-color:#cac8c6;border-radius:100px;border:3px solid #fff}.scroll-view-dark[data-v-34dd3e44]{height:calc(100% - 60px);width:calc(100% - 0px);overflow-y:scroll}.scroll-view-dark[data-v-34dd3e44]::-webkit-scrollbar{width:16px}.scroll-view-dark[data-v-34dd3e44]::-webkit-scrollbar-thumb{background-color:#4d4d5a;border-radius:100px;border:3px solid #2c2a38}.scroll-view-red[data-v-34dd3e44]{height:calc(100% - 60px);width:calc(100% - 0px);overflow-y:scroll}.scroll-view-red[data-v-34dd3e44]::-webkit-scrollbar{width:16px}.scroll-view-red[data-v-34dd3e44]::-webkit-scrollbar-thumb{background-color:rgba(183,46,41,.643137);border-radius:100px;border:3px solid #f8b74f}.scroll-view-2077[data-v-34dd3e44]{height:calc(100% - 60px);width:calc(100% - 0px);overflow-y:scroll}.scroll-view-2077[data-v-34dd3e44]::-webkit-scrollbar{width:16px}.scroll-view-2077[data-v-34dd3e44]::-webkit-scrollbar-thumb{background-color:rgba(238,222,0,.796078);border-radius:100px;border:3px solid #136377}.conn-item-light[data-v-34dd3e44]{border-bottom:1px solid hsla(0,0%,79%,.342)}.conn-item-dark[data-v-34dd3e44],.conn-item-light[data-v-34dd3e44]{padding:1px 20px;display:flex;justify-content:space-between;align-items:center}.conn-item-dark[data-v-34dd3e44]{border-bottom:1px solid #626262}.conn-item-red[data-v-34dd3e44]{border-bottom:1px solid rgba(218,20,30,.247059)}.conn-item-2077[data-v-34dd3e44],.conn-item-red[data-v-34dd3e44]{padding:1px 20px;display:flex;justify-content:space-between;align-items:center}.conn-item-2077[data-v-34dd3e44]{border-bottom:1px solid #626262}.conn-item-closed[data-v-34dd3e44]{opacity:.7}.conn-item-top[data-v-34dd3e44]{display:flex;justify-content:space-between}.conn-host[data-v-34dd3e44]{font-size:15px;font-weight:500}.close-btn[data-v-34dd3e44]{width:23px;height:23px;border-radius:15px;cursor:pointer;background-color:rgba(223,51,51,.876);color:#fff;opacity:.8}.close-btn [data-v-34dd3e44]{cursor:pointer}.close-btn[data-v-34dd3e44]:hover{opacity:1}.item-icon[data-v-34dd3e44]{width:19px;margin:2px;height:19px}.close-all-btn[data-v-34dd3e44]{padding:0 10px;margin-left:10px;text-align:center;height:30px;line-height:30px;cursor:pointer;background-color:rgba(243,61,61,.801);border-radius:3px;color:#fff}.conn-labels[data-v-34dd3e44]{font-size:12px;display:flex;margin-bottom:3px;flex-wrap:wrap}.conn-labels>div[data-v-34dd3e44]{margin-right:5px;margin-top:4px;padding:2px 4px;color:#fff;font-weight:400;border-radius:3px}.conn1[data-v-34dd3e44]{background-color:#c26819cc}.conn2[data-v-34dd3e44]{background-color:#c18310c5}.conn4[data-v-34dd3e44]{background-color:#559834ce}.conn3[data-v-34dd3e44]{background-color:#00864cc9}.conn5[data-v-34dd3e44]{background-color:#428ee4}.conn6[data-v-34dd3e44]{background-color:#4c10ae}.button-control[data-v-34dd3e44]{padding:0 10px;margin-right:10px;text-align:center;height:25px;font-weight:400;line-height:25px;cursor:pointer;border-radius:3px;color:#fff}.button-resume[data-v-34dd3e44]{background-color:rgba(14,151,185,.959)}.button-pause[data-v-34dd3e44]{background-color:rgba(243,61,61,.801)}\", \"\"])\n}, function(e, t, i) {\n    \"use strict\";\n    i(228)\n}, function(e, t, i) {\n    (e.exports = i(24)(!1)).push([e.i, '.main-router-config-view[data-v-510e6d90]{background-color:rgba(50,50,50,.6);width:100%;height:100%;position:absolute;top:0;left:0;color:#000}.main-router-config-view .content[data-v-510e6d90]{border-radius:3px;background-color:#fff;width:500px;position:absolute;top:50%;left:50%;transform:translateX(-50%) translateY(-50%);padding:20px;font-size:14px;font-weight:700}.main-router-config-view .content .title[data-v-510e6d90]{font-size:16px;margin-bottom:5px}.main-router-config-view .content .sec[data-v-510e6d90]{margin:10px 0;border-radius:3px;padding:5px 0}.main-router-config-view .content .sec .flex[data-v-510e6d90]{display:flex}.main-router-config-view .content .sec span[data-v-510e6d90]{margin-right:3px}.main-router-config-view .content .sec span[data-v-510e6d90]:after{content:\" :\"}.main-router-config-view .content .sec input[data-v-510e6d90]{text-align:center;width:120px;margin-right:20px;border:none;outline:none;font-weight:400;border-bottom:1px solid #c2c2c2}.main-router-config-view .content .btn[data-v-510e6d90]{background-color:#41b883;color:#fff;height:30px;line-height:30px;text-align:center;border-radius:3px}', \"\"])\n}, function(e, t, i) {\n    \"use strict\";\n    i(229)\n}, function(e, t, i) {\n    (e.exports = i(24)(!1)).push([e.i, \".main-router-view-light[data-v-e70fadb0]{height:100%;width:100%;position:relative}.main-router-view-light .header[data-v-e70fadb0]{height:80px;border-bottom:1px solid #dcdcdc;font-size:20px;display:flex;justify-content:space-between;align-items:center;padding:0 20px}.main-router-view-light .header .btn[data-v-e70fadb0]{font-size:16px;padding:5px 15px;margin-right:10px;text-align:center;font-weight:400;cursor:pointer;border-radius:3px;color:#fff}.main-router-view-light .header .btn-start[data-v-e70fadb0]{background-color:#535353}.main-router-view-light .header .btn-stop[data-v-e70fadb0]{background-color:#41b883}.main-router-view-light .list[data-v-e70fadb0]{font-size:16px;padding:20px 20px 20px 30px;height:calc(100% - 80px);overflow-y:scroll}.main-router-view-light .list[data-v-e70fadb0]::-webkit-scrollbar{width:16px}.main-router-view-light .list[data-v-e70fadb0]::-webkit-scrollbar-thumb{background-color:#cac8c6;border-radius:100px;border:3px solid #fff}.main-router-view-light .list .item[data-v-e70fadb0]{margin:10px 0;display:flex;align-items:center;justify-content:space-between}.main-router-view-light .list .item .left .name Input[data-v-e70fadb0]{font-size:16px;border:none;outline:none;background-color:#fff0;color:#000}.main-router-view-light .list .item .left .ip[data-v-e70fadb0]{font-size:12px;color:gray}.main-router-view-light .list .item .right[data-v-e70fadb0]{font-size:14px;display:flex;align-items:center}.main-router-view-light .list .item .right .btn[data-v-e70fadb0]{padding:5px 10px;text-align:center;font-weight:400;cursor:pointer;border-radius:3px;background-color:hsla(0,0%,85%,.452);margin-left:10px}.main-router-view-dark[data-v-e70fadb0]{height:100%;width:100%;position:relative}.main-router-view-dark .header[data-v-e70fadb0]{height:80px;border-bottom:1px solid #554f4f;font-size:20px;display:flex;justify-content:space-between;align-items:center;padding:0 20px}.main-router-view-dark .header .btn[data-v-e70fadb0]{font-size:16px;padding:5px 15px;margin-right:10px;text-align:center;font-weight:400;cursor:pointer;border-radius:3px;color:#fff}.main-router-view-dark .header .btn-start[data-v-e70fadb0]{background-color:#535353}.main-router-view-dark .header .btn-stop[data-v-e70fadb0]{background-color:#41b883}.main-router-view-dark .list[data-v-e70fadb0]{font-size:16px;padding:20px 20px 20px 30px;height:calc(100% - 80px);overflow-y:scroll}.main-router-view-dark .list[data-v-e70fadb0]::-webkit-scrollbar{width:16px}.main-router-view-dark .list[data-v-e70fadb0]::-webkit-scrollbar-thumb{background-color:#4d4d5a;border-radius:100px;border:3px solid #2c2a38}.main-router-view-dark .list .item[data-v-e70fadb0]{margin:10px 0;display:flex;align-items:center;justify-content:space-between}.main-router-view-dark .list .item .left .name Input[data-v-e70fadb0]{font-size:16px;border:none;outline:none;background-color:#fff0;color:#fff}.main-router-view-dark .list .item .left .ip[data-v-e70fadb0]{font-size:12px;color:#a7a7a7}.main-router-view-dark .list .item .right[data-v-e70fadb0]{font-size:14px;display:flex;align-items:center}.main-router-view-dark .list .item .right .btn[data-v-e70fadb0]{padding:5px 10px;text-align:center;font-weight:400;cursor:pointer;border-radius:3px;background-color:hsla(0,0%,85%,.452);margin-left:10px}.main-router-view-red[data-v-e70fadb0]{height:100%;width:100%;position:relative}.main-router-view-red .header[data-v-e70fadb0]{height:80px;border-bottom:1px solid rgba(218,20,30,.247059);font-size:20px;display:flex;justify-content:space-between;align-items:center;padding:0 20px}.main-router-view-red .header .btn[data-v-e70fadb0]{font-size:16px;padding:5px 15px;margin-right:10px;text-align:center;font-weight:400;cursor:pointer;border-radius:3px;color:#fff}.main-router-view-red .header .btn-start[data-v-e70fadb0]{background-color:#535353}.main-router-view-red .header .btn-stop[data-v-e70fadb0]{background-color:#41b883}.main-router-view-red .list[data-v-e70fadb0]{font-size:16px;padding:20px 20px 20px 30px;height:calc(100% - 80px);overflow-y:scroll}.main-router-view-red .list[data-v-e70fadb0]::-webkit-scrollbar{width:16px}.main-router-view-red .list[data-v-e70fadb0]::-webkit-scrollbar-thumb{background-color:rgba(183,46,41,.643137);border-radius:100px;border:3px solid #f8b74f}.main-router-view-red .list .item[data-v-e70fadb0]{margin:10px 0;display:flex;align-items:center;justify-content:space-between}.main-router-view-red .list .item .left .name Input[data-v-e70fadb0]{font-size:16px;border:none;outline:none;background-color:#fff0;color:#d33928}.main-router-view-red .list .item .left .ip[data-v-e70fadb0]{font-size:12px;color:#995e00}.main-router-view-red .list .item .right[data-v-e70fadb0]{font-size:14px;display:flex;align-items:center}.main-router-view-red .list .item .right .btn[data-v-e70fadb0]{padding:5px 10px;text-align:center;font-weight:400;cursor:pointer;border-radius:3px;background-color:hsla(0,0%,85%,.452);margin-left:10px}.main-router-view-2077[data-v-e70fadb0]{height:100%;width:100%;position:relative}.main-router-view-2077 .header[data-v-e70fadb0]{height:80px;border-bottom:1px solid rgba(6,145,180,.521569);font-size:20px;display:flex;justify-content:space-between;align-items:center;padding:0 20px}.main-router-view-2077 .header .btn[data-v-e70fadb0]{font-size:16px;padding:5px 15px;margin-right:10px;text-align:center;font-weight:400;cursor:pointer;border-radius:3px;color:#fff}.main-router-view-2077 .header .btn-start[data-v-e70fadb0]{background-color:#535353}.main-router-view-2077 .header .btn-stop[data-v-e70fadb0]{background-color:#41b883}.main-router-view-2077 .list[data-v-e70fadb0]{font-size:16px;padding:20px 20px 20px 30px;height:calc(100% - 80px);overflow-y:scroll}.main-router-view-2077 .list[data-v-e70fadb0]::-webkit-scrollbar{width:16px}.main-router-view-2077 .list[data-v-e70fadb0]::-webkit-scrollbar-thumb{background-color:rgba(238,222,0,.796078);border-radius:100px;border:3px solid #136377}.main-router-view-2077 .list .item[data-v-e70fadb0]{margin:10px 0;display:flex;align-items:center;justify-content:space-between}.main-router-view-2077 .list .item .left .name Input[data-v-e70fadb0]{font-size:16px;border:none;outline:none;background-color:#fff0;color:#fcec0c}.main-router-view-2077 .list .item .left .ip[data-v-e70fadb0]{font-size:12px;color:#bbb33f}.main-router-view-2077 .list .item .right[data-v-e70fadb0]{font-size:14px;display:flex;align-items:center}.main-router-view-2077 .list .item .right .btn[data-v-e70fadb0]{padding:5px 10px;text-align:center;font-weight:400;cursor:pointer;border-radius:3px;background-color:hsla(0,0%,85%,.452);margin-left:10px}\", \"\"])\n}, function(e, t, i) {\n    \"use strict\";\n    i(230)\n}, function(e, t, i) {\n    (e.exports = i(24)(!1)).push([e.i, \".main-setting-section-light[data-v-f0b72b92]{margin:0 2% 10px;font-size:15px;width:96%}.main-setting-section-light .title[data-v-f0b72b92]{font-size:16px;height:34px;line-height:34px}.main-setting-section-light .content[data-v-f0b72b92]{background-color:#f1f1f1;padding:5px 15px;border-radius:3px}.main-setting-section-dark[data-v-f0b72b92]{margin:0 2% 10px;font-size:15px;width:96%}.main-setting-section-dark .title[data-v-f0b72b92]{font-size:16px;height:34px;line-height:34px}.main-setting-section-dark .content[data-v-f0b72b92]{background-color:#606068;padding:5px 15px;border-radius:3px}.main-setting-section-red[data-v-f0b72b92]{margin:0 2% 10px;font-size:15px;width:96%}.main-setting-section-red .title[data-v-f0b72b92]{font-size:16px;height:34px;line-height:34px}.main-setting-section-red .content[data-v-f0b72b92]{background-color:#eda94c;padding:5px 15px;border-radius:3px}.main-setting-section-2077[data-v-f0b72b92]{margin:0 2% 10px;font-size:15px;width:96%}.main-setting-section-2077 .title[data-v-f0b72b92]{font-size:16px;height:34px;line-height:34px}.main-setting-section-2077 .content[data-v-f0b72b92]{background-color:#084a5a;padding:5px 15px;border-radius:3px}\", \"\"])\n}, function(e, t, i) {\n    \"use strict\";\n    i(231)\n}, function(e, t, i) {\n    (e.exports = i(24)(!1)).push([e.i, \"input[data-v-4b964f25]::-webkit-inner-spin-button,input[data-v-4b964f25]::-webkit-outer-spin-button{-webkit-appearance:none}.main-key-capture-light[data-v-4b964f25]{position:relative;width:200px}.main-key-capture-light input[data-v-4b964f25]{width:100%;text-align:center;border:none;outline-style:none;background-color:#fff;color:#000;height:26px;box-shadow:1px 1px 4px 1px rgba(50,50,50,.04);border-radius:2px}.main-key-capture-light input[data-v-4b964f25]::placeholder{color:#a3a3a3}.main-key-capture-light .suffix[data-v-4b964f25]{position:absolute;right:10px;top:0;height:25px;line-height:25px;color:#747d88;font-size:13px}.main-key-capture-light .hint[data-v-4b964f25]{position:absolute;font-size:12px;top:0;padding:0 10px;border-radius:13px;height:26px;line-height:26px;text-align:center;color:#fff;background-color:#535353;opacity:1;transform:translateX(calc(-100% - 10px));transition:all .3s}.main-key-capture-light .hint-hide[data-v-4b964f25]{opacity:0}.main-key-capture-dark[data-v-4b964f25]{position:relative;width:200px}.main-key-capture-dark input[data-v-4b964f25]{width:100%;text-align:center;border:none;outline-style:none;background-color:rgba(46,46,46,.822);color:#fff;height:26px;box-shadow:1px 1px 4px 1px rgba(50,50,50,.04);border-radius:2px}.main-key-capture-dark input[data-v-4b964f25]::placeholder{color:#a3a3a3}.main-key-capture-dark .suffix[data-v-4b964f25]{position:absolute;right:10px;top:0;height:25px;line-height:25px;color:#d4d4d4;font-size:13px}.main-key-capture-dark .hint[data-v-4b964f25]{position:absolute;font-size:12px;top:0;padding:0 10px;border-radius:13px;height:26px;line-height:26px;text-align:center;color:#fff;background-color:#535353;opacity:1;transform:translateX(calc(-100% - 10px));transition:all .3s}.main-key-capture-dark .hint-hide[data-v-4b964f25]{opacity:0}.main-key-capture-red[data-v-4b964f25]{position:relative;width:200px}.main-key-capture-red input[data-v-4b964f25]{width:100%;text-align:center;border:none;outline-style:none;background-color:#d39126;color:#d33928;height:26px;box-shadow:1px 1px 4px 1px rgba(50,50,50,.04);border-radius:2px}.main-key-capture-red input[data-v-4b964f25]::placeholder{color:#cfcfcf}.main-key-capture-red .suffix[data-v-4b964f25]{position:absolute;right:10px;top:0;height:25px;line-height:25px;color:rgba(218,20,30,.796078);font-size:13px}.main-key-capture-red .hint[data-v-4b964f25]{position:absolute;font-size:12px;top:0;padding:0 10px;border-radius:13px;height:26px;line-height:26px;text-align:center;color:#fff;background-color:#535353;opacity:1;transform:translateX(calc(-100% - 10px));transition:all .3s}.main-key-capture-red .hint-hide[data-v-4b964f25]{opacity:0}.main-key-capture-2077[data-v-4b964f25]{position:relative;width:200px}.main-key-capture-2077 input[data-v-4b964f25]{width:100%;text-align:center;border:none;outline-style:none;background-color:rgba(2,45,53,.822);color:#fcec0c;height:26px;box-shadow:1px 1px 4px 1px rgba(50,50,50,.04);border-radius:2px}.main-key-capture-2077 input[data-v-4b964f25]::placeholder{color:#a3a3a3}.main-key-capture-2077 .suffix[data-v-4b964f25]{position:absolute;right:10px;top:0;height:25px;line-height:25px;color:#c79707;font-size:13px}.main-key-capture-2077 .hint[data-v-4b964f25]{position:absolute;font-size:12px;top:0;padding:0 10px;border-radius:13px;height:26px;line-height:26px;text-align:center;color:#fff;background-color:#535353;opacity:1;transform:translateX(calc(-100% - 10px));transition:all .3s}.main-key-capture-2077 .hint-hide[data-v-4b964f25]{opacity:0}\", \"\"])\n}, function(e, t, i) {\n    \"use strict\";\n    i(232)\n}, function(e, t, i) {\n    (e.exports = i(24)(!1)).push([e.i, \".main-more-hint-light[data-v-3ddd8481]{display:flex;align-items:center}.main-more-hint-light .text[data-v-3ddd8481]{color:#747d88;font-size:13px}.main-more-hint-light .tirangle[data-v-3ddd8481]{width:0;height:0;margin-left:5px;margin-top:2px;border-top:4px solid transparent;border-bottom:4px solid transparent;border-left:6px solid #747d88}.main-more-hint-dark[data-v-3ddd8481]{display:flex;align-items:center}.main-more-hint-dark .text[data-v-3ddd8481]{color:#d4d4d4;font-size:13px}.main-more-hint-dark .tirangle[data-v-3ddd8481]{width:0;height:0;margin-left:5px;margin-top:2px;border-top:4px solid transparent;border-bottom:4px solid transparent;border-left:6px solid #d4d4d4}.main-more-hint-red[data-v-3ddd8481]{display:flex;align-items:center}.main-more-hint-red .text[data-v-3ddd8481]{color:rgba(218,20,30,.796078);font-size:13px}.main-more-hint-red .tirangle[data-v-3ddd8481]{width:0;height:0;margin-left:5px;margin-top:2px;border-top:4px solid transparent;border-bottom:4px solid transparent;border-left:6px solid rgba(218,20,30,.796078)}.main-more-hint-2077[data-v-3ddd8481]{display:flex;align-items:center}.main-more-hint-2077 .text[data-v-3ddd8481]{color:#c79707;font-size:13px}.main-more-hint-2077 .tirangle[data-v-3ddd8481]{width:0;height:0;margin-left:5px;margin-top:2px;border-top:4px solid transparent;border-bottom:4px solid transparent;border-left:6px solid #c79707}\", \"\"])\n}, function(e, t, i) {\n    \"use strict\";\n    i(233)\n}, function(e, t, i) {\n    (e.exports = i(24)(!1)).push([e.i, \".main-settings-separator-light[data-v-0d6d5378]{height:1px;width:100%;opacity:.5;background-color:#cac8c6;margin:5px auto}.main-settings-separator-dark[data-v-0d6d5378]{height:1px;width:100%;opacity:.5;background-color:#4d4d5a;margin:5px auto}.main-settings-separator-red[data-v-0d6d5378]{height:1px;width:100%;opacity:.5;background-color:rgba(183,46,41,.643137);margin:5px auto}.main-settings-separator-2077[data-v-0d6d5378]{height:1px;width:100%;opacity:.5;background-color:rgba(238,222,0,.796078);margin:5px auto}\", \"\"])\n}, function(e, t, i) {\n    \"use strict\";\n    i(234)\n}, function(e, t, i) {\n    (e.exports = i(24)(!1)).push([e.i, \".tray-order-main-light[data-v-459d2b96]{display:flex;align-items:center;font-size:13px}.tray-order-main-light .title[data-v-459d2b96]{margin-right:5px}.tray-order-main-light .list[data-v-459d2b96]{height:28px;display:flex;justify-content:center;align-items:center;min-width:40px;border-radius:3px;background-color:#e2e2e2;padding:3px 5px}.tray-order-main-light .list img[data-v-459d2b96]{-webkit-user-drag:element;display:flex;align-items:center;justify-content:center;height:16px;margin:0 2px}.tray-order-main-light .left-list[data-v-459d2b96]{margin-right:10px}.tray-order-main-dark[data-v-459d2b96]{display:flex;align-items:center;font-size:13px}.tray-order-main-dark .title[data-v-459d2b96]{margin-right:5px}.tray-order-main-dark .list[data-v-459d2b96]{height:28px;display:flex;justify-content:center;align-items:center;min-width:40px;border-radius:3px;background-color:#e2e2e2;padding:3px 5px}.tray-order-main-dark .list img[data-v-459d2b96]{-webkit-user-drag:element;display:flex;align-items:center;justify-content:center;height:16px;margin:0 2px}.tray-order-main-dark .left-list[data-v-459d2b96]{margin-right:10px}.tray-order-main-red[data-v-459d2b96]{display:flex;align-items:center;font-size:13px}.tray-order-main-red .title[data-v-459d2b96]{margin-right:5px}.tray-order-main-red .list[data-v-459d2b96]{height:28px;display:flex;justify-content:center;align-items:center;min-width:40px;border-radius:3px;background-color:#e2e2e2;padding:3px 5px}.tray-order-main-red .list img[data-v-459d2b96]{-webkit-user-drag:element;display:flex;align-items:center;justify-content:center;height:16px;margin:0 2px}.tray-order-main-red .left-list[data-v-459d2b96]{margin-right:10px}.tray-order-main-2077[data-v-459d2b96]{display:flex;align-items:center;font-size:13px}.tray-order-main-2077 .title[data-v-459d2b96]{margin-right:5px}.tray-order-main-2077 .list[data-v-459d2b96]{height:28px;display:flex;justify-content:center;align-items:center;min-width:40px;border-radius:3px;background-color:#e2e2e2;padding:3px 5px}.tray-order-main-2077 .list img[data-v-459d2b96]{-webkit-user-drag:element;display:flex;align-items:center;justify-content:center;height:16px;margin:0 2px}.tray-order-main-2077 .left-list[data-v-459d2b96]{margin-right:10px}\", \"\"])\n}, function(e, t, i) {\n    \"use strict\";\n    i(235)\n}, function(e, t, i) {\n    (e.exports = i(24)(!1)).push([e.i, \".main-setting-view-light[data-v-371dba32]{height:100%}.main-setting-view-light .blur[data-v-371dba32]{filter:blur(15px)}.main-setting-view-light .title[data-v-371dba32]{height:80px;border-bottom:1px solid #dcdcdc;font-size:20px;background-color:#fff;display:flex;justify-content:space-between;align-items:center;padding:0 20px}.main-setting-view-light .title .btns[data-v-371dba32]{height:100%;display:flex;align-items:center}.main-setting-view-light .title .btns .btn[data-v-371dba32]{cursor:pointer;font-size:14px;color:#fa1313;font-weight:400;padding:5px 15px;border-radius:3px;background-color:#f1f1f1}.main-setting-view-light .content[data-v-371dba32]{overflow-y:scroll;padding:10px 10px 20px;height:calc(100% - 80px)}.main-setting-view-light .content[data-v-371dba32]::-webkit-scrollbar{width:16px}.main-setting-view-light .content[data-v-371dba32]::-webkit-scrollbar-thumb{background-color:#cac8c6;border-radius:100px;border:3px solid #fff}.main-setting-view-light .quit-btns[data-v-371dba32]{display:flex;align-items:center;justify-content:center;margin-top:30px}.main-setting-view-light .quit-btns .btn[data-v-371dba32]{background-color:rgba(255,30,0,.8);margin:0 7px;padding:5px 20px;color:#fff;border-radius:3px;font-size:14px;text-align:center}.main-setting-view-light .item[data-v-371dba32]{font-weight:400;display:flex;justify-content:space-between;align-items:center;height:35px}.main-setting-view-light .item .short-input[data-v-371dba32]{width:190px}.main-setting-view-light .item .shorter-input[data-v-371dba32]{width:156px}.main-setting-view-light .item .hint[data-v-371dba32]{margin-left:10px}.main-setting-view-light .item .interface-hint[data-v-371dba32]{margin-right:10px}.main-setting-view-light .edit-hint[data-v-371dba32]{background-color:rgba(0,0,0,.4);position:fixed;top:25px;width:calc(100% - 170px);height:calc(100vh - 25px);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center}.main-setting-view-light .edit-hint div[data-v-371dba32]:first-child{font-size:20px}.main-setting-view-light .edit-hint div[data-v-371dba32]:nth-child(2){font-size:16px;margin-top:20px}.main-setting-view-light .edit-hint .btn[data-v-371dba32]{font-size:18px;margin-top:40px;background-color:rgba(26,26,26,.7);padding:4px 12px;border-radius:3px;cursor:pointer}.main-setting-view-dark[data-v-371dba32]{height:100%}.main-setting-view-dark .blur[data-v-371dba32]{filter:blur(15px)}.main-setting-view-dark .title[data-v-371dba32]{height:80px;border-bottom:1px solid #554f4f;font-size:20px;background-color:#2c2a38;display:flex;justify-content:space-between;align-items:center;padding:0 20px}.main-setting-view-dark .title .btns[data-v-371dba32]{height:100%;display:flex;align-items:center}.main-setting-view-dark .title .btns .btn[data-v-371dba32]{cursor:pointer;font-size:14px;color:#ff5f5f;font-weight:400;padding:5px 15px;border-radius:3px;background-color:#606068}.main-setting-view-dark .content[data-v-371dba32]{overflow-y:scroll;padding:10px 10px 20px;height:calc(100% - 80px)}.main-setting-view-dark .content[data-v-371dba32]::-webkit-scrollbar{width:16px}.main-setting-view-dark .content[data-v-371dba32]::-webkit-scrollbar-thumb{background-color:#4d4d5a;border-radius:100px;border:3px solid #2c2a38}.main-setting-view-dark .quit-btns[data-v-371dba32]{display:flex;align-items:center;justify-content:center;margin-top:30px}.main-setting-view-dark .quit-btns .btn[data-v-371dba32]{background-color:rgba(255,30,0,.8);margin:0 7px;padding:5px 20px;color:#fff;border-radius:3px;font-size:14px;text-align:center}.main-setting-view-dark .item[data-v-371dba32]{font-weight:400;display:flex;justify-content:space-between;align-items:center;height:35px}.main-setting-view-dark .item .short-input[data-v-371dba32]{width:190px}.main-setting-view-dark .item .shorter-input[data-v-371dba32]{width:156px}.main-setting-view-dark .item .hint[data-v-371dba32]{margin-left:10px}.main-setting-view-dark .item .interface-hint[data-v-371dba32]{margin-right:10px}.main-setting-view-dark .edit-hint[data-v-371dba32]{background-color:rgba(0,0,0,.4);position:fixed;top:25px;width:calc(100% - 170px);height:calc(100vh - 25px);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center}.main-setting-view-dark .edit-hint div[data-v-371dba32]:first-child{font-size:20px}.main-setting-view-dark .edit-hint div[data-v-371dba32]:nth-child(2){font-size:16px;margin-top:20px}.main-setting-view-dark .edit-hint .btn[data-v-371dba32]{font-size:18px;margin-top:40px;background-color:rgba(26,26,26,.7);padding:4px 12px;border-radius:3px;cursor:pointer}.main-setting-view-red[data-v-371dba32]{height:100%}.main-setting-view-red .blur[data-v-371dba32]{filter:blur(15px)}.main-setting-view-red .title[data-v-371dba32]{height:80px;border-bottom:1px solid rgba(218,20,30,.247059);font-size:20px;background-color:#f8b74f;display:flex;justify-content:space-between;align-items:center;padding:0 20px}.main-setting-view-red .title .btns[data-v-371dba32]{height:100%;display:flex;align-items:center}.main-setting-view-red .title .btns .btn[data-v-371dba32]{cursor:pointer;font-size:14px;color:red;font-weight:400;padding:5px 15px;border-radius:3px;background-color:#eda94c}.main-setting-view-red .content[data-v-371dba32]{overflow-y:scroll;padding:10px 10px 20px;height:calc(100% - 80px)}.main-setting-view-red .content[data-v-371dba32]::-webkit-scrollbar{width:16px}.main-setting-view-red .content[data-v-371dba32]::-webkit-scrollbar-thumb{background-color:rgba(183,46,41,.643137);border-radius:100px;border:3px solid #f8b74f}.main-setting-view-red .quit-btns[data-v-371dba32]{display:flex;align-items:center;justify-content:center;margin-top:30px}.main-setting-view-red .quit-btns .btn[data-v-371dba32]{background-color:rgba(255,30,0,.8);margin:0 7px;padding:5px 20px;color:#fff;border-radius:3px;font-size:14px;text-align:center}.main-setting-view-red .item[data-v-371dba32]{font-weight:400;display:flex;justify-content:space-between;align-items:center;height:35px}.main-setting-view-red .item .short-input[data-v-371dba32]{width:190px}.main-setting-view-red .item .shorter-input[data-v-371dba32]{width:156px}.main-setting-view-red .item .hint[data-v-371dba32]{margin-left:10px}.main-setting-view-red .item .interface-hint[data-v-371dba32]{margin-right:10px}.main-setting-view-red .edit-hint[data-v-371dba32]{background-color:rgba(0,0,0,.4);position:fixed;top:25px;width:calc(100% - 170px);height:calc(100vh - 25px);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center}.main-setting-view-red .edit-hint div[data-v-371dba32]:first-child{font-size:20px}.main-setting-view-red .edit-hint div[data-v-371dba32]:nth-child(2){font-size:16px;margin-top:20px}.main-setting-view-red .edit-hint .btn[data-v-371dba32]{font-size:18px;margin-top:40px;background-color:rgba(26,26,26,.7);padding:4px 12px;border-radius:3px;cursor:pointer}.main-setting-view-2077[data-v-371dba32]{height:100%}.main-setting-view-2077 .blur[data-v-371dba32]{filter:blur(15px)}.main-setting-view-2077 .title[data-v-371dba32]{height:80px;border-bottom:1px solid rgba(6,145,180,.521569);font-size:20px;background-color:#136377;display:flex;justify-content:space-between;align-items:center;padding:0 20px}.main-setting-view-2077 .title .btns[data-v-371dba32]{height:100%;display:flex;align-items:center}.main-setting-view-2077 .title .btns .btn[data-v-371dba32]{cursor:pointer;font-size:14px;color:#ff5f5f;font-weight:400;padding:5px 15px;border-radius:3px;background-color:#084a5a}.main-setting-view-2077 .content[data-v-371dba32]{overflow-y:scroll;padding:10px 10px 20px;height:calc(100% - 80px)}.main-setting-view-2077 .content[data-v-371dba32]::-webkit-scrollbar{width:16px}.main-setting-view-2077 .content[data-v-371dba32]::-webkit-scrollbar-thumb{background-color:rgba(238,222,0,.796078);border-radius:100px;border:3px solid #136377}.main-setting-view-2077 .quit-btns[data-v-371dba32]{display:flex;align-items:center;justify-content:center;margin-top:30px}.main-setting-view-2077 .quit-btns .btn[data-v-371dba32]{background-color:rgba(255,30,0,.8);margin:0 7px;padding:5px 20px;color:#fff;border-radius:3px;font-size:14px;text-align:center}.main-setting-view-2077 .item[data-v-371dba32]{font-weight:400;display:flex;justify-content:space-between;align-items:center;height:35px}.main-setting-view-2077 .item .short-input[data-v-371dba32]{width:190px}.main-setting-view-2077 .item .shorter-input[data-v-371dba32]{width:156px}.main-setting-view-2077 .item .hint[data-v-371dba32]{margin-left:10px}.main-setting-view-2077 .item .interface-hint[data-v-371dba32]{margin-right:10px}.main-setting-view-2077 .edit-hint[data-v-371dba32]{background-color:rgba(0,0,0,.4);position:fixed;top:25px;width:calc(100% - 170px);height:calc(100vh - 25px);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center}.main-setting-view-2077 .edit-hint div[data-v-371dba32]:first-child{font-size:20px}.main-setting-view-2077 .edit-hint div[data-v-371dba32]:nth-child(2){font-size:16px;margin-top:20px}.main-setting-view-2077 .edit-hint .btn[data-v-371dba32]{font-size:18px;margin-top:40px;background-color:rgba(26,26,26,.7);padding:4px 12px;border-radius:3px;cursor:pointer}\", \"\"])\n}, function(e, t, i) {\n    \"use strict\";\n    i(236)\n}, function(e, t, i) {\n    (e.exports = i(24)(!1)).push([e.i, \".ad-img[data-v-65724216]{max-width:630px;height:150px;border-radius:3px}.placeholder[data-v-65724216]{line-height:150px;color:#fff;width:630px;background-color:#e2e2e2;display:flex;align-items:center;justify-content:center}.placeholder div[data-v-65724216]{margin-right:10px;color:#fff}.placeholder img[data-v-65724216]{width:30px}.error-img[data-v-65724216]{display:flex;width:630px;height:150px;background-color:#e2e2e2;align-items:center;justify-content:center}.error-img div[data-v-65724216]{margin-right:10px;color:#858585}.error-img img[data-v-65724216]{width:30px}.twinkling[data-v-65724216]{animation:twinkling-data-v-65724216 2s infinite;animation-timing-function:ease-in-out}@keyframes twinkling-data-v-65724216{0%{background-color:#e9e9e9}50%{background-color:#d4d4d4}to{background-color:#e9e9e9}}\", \"\"])\n}, function(e, t, i) {\n    \"use strict\";\n    i(237)\n}, function(e, t, i) {\n    (e.exports = i(24)(!1)).push([e.i, \".chat-item-light[data-v-787e70b2]{cursor:pointer;margin-right:15px;color:#019ff5}.chat-item-dark[data-v-787e70b2]{cursor:pointer;margin-right:15px;color:#1788c5}.chat-item-red[data-v-787e70b2]{cursor:pointer;margin-right:15px;color:#b72d29}.chat-item-2077[data-v-787e70b2]{cursor:pointer;margin-right:15px;color:#a5dbe9}.chat-list[data-v-787e70b2]{display:flex;justify-content:left;flex-wrap:wrap}\", \"\"])\n}, function(e, t, i) {\n    \"use strict\";\n    i(238)\n}, function(e, t, i) {\n    (e.exports = i(24)(!1)).push([e.i, \"#main-about-view[data-v-787e70b2]{padding:0 30px}.section[data-v-787e70b2]{margin:10px 0}.ad-section[data-v-787e70b2]{margin:13px 0 0}.title[data-v-787e70b2]{margin-bottom:0;font-size:1.1em}.ad-img-list[data-v-787e70b2]{display:flex;flex-direction:column;justify-content:space-between;margin-top:10px;height:315px}\", \"\"])\n}, function(e, t, i) {\n    var n = i(373);\n    (n = \"string\" == typeof(n = n.__esModule ? n.default : n) ? [\n        [e.i, n, \"\"]\n    ] : n).locals && (e.exports = n.locals), (0, i(25).default)(\"3d73fb4a\", n, !0, {})\n}, function(e, t, i) {\n    (e.exports = i(24)(!1)).push([e.i, \".monaco-aria-container{position:absolute;left:-999em}\", \"\"])\n}, function(e, t, i) {\n    var n = i(375);\n    (n = \"string\" == typeof(n = n.__esModule ? n.default : n) ? [\n        [e.i, n, \"\"]\n    ] : n).locals && (e.exports = n.locals), (0, i(25).default)(\"2e61e6d5\", n, !0, {})\n}, function(e, t, i) {\n    (e.exports = i(24)(!1)).push([e.i, \".monaco-custom-checkbox{margin-left:2px;float:left;cursor:pointer;overflow:hidden;opacity:.7;width:20px;height:20px;border:1px solid transparent;padding:1px;box-sizing:border-box;user-select:none;-webkit-user-select:none;-ms-user-select:none}.monaco-custom-checkbox.checked,.monaco-custom-checkbox:hover{opacity:1}.hc-black .monaco-custom-checkbox,.hc-black .monaco-custom-checkbox:hover{background:none}.monaco-custom-checkbox.monaco-simple-checkbox{height:18px;width:18px;border:1px solid transparent;border-radius:3px;margin-right:9px;margin-left:0;padding:0;opacity:1;background-size:16px!important}.monaco-custom-checkbox.monaco-simple-checkbox:not(.checked):before{visibility:hidden}\", \"\"])\n}, function(e, t, i) {\n    var n = i(377);\n    (n = \"string\" == typeof(n = n.__esModule ? n.default : n) ? [\n        [e.i, n, \"\"]\n    ] : n).locals && (e.exports = n.locals), (0, i(25).default)(\"3a529e35\", n, !0, {})\n}, function(e, t, i) {\n    (e.exports = i(24)(!1)).push([e.i, ':root{--sash-size:4px}.monaco-sash{position:absolute;z-index:35;touch-action:none}.monaco-sash.disabled{pointer-events:none}.monaco-sash.mac.vertical{cursor:col-resize}.monaco-sash.vertical.minimum{cursor:e-resize}.monaco-sash.vertical.maximum{cursor:w-resize}.monaco-sash.mac.horizontal{cursor:row-resize}.monaco-sash.horizontal.minimum{cursor:s-resize}.monaco-sash.horizontal.maximum{cursor:n-resize}.monaco-sash.disabled{cursor:default!important;pointer-events:none!important}.monaco-sash.vertical{cursor:ew-resize;top:0;width:var(--sash-size);height:100%}.monaco-sash.horizontal{cursor:ns-resize;left:0;width:100%;height:var(--sash-size)}.monaco-sash:not(.disabled)>.orthogonal-drag-handle{content:\" \";height:calc(var(--sash-size) * 2);width:calc(var(--sash-size) * 2);z-index:100;display:block;cursor:all-scroll;position:absolute}.monaco-sash.horizontal.orthogonal-edge-north:not(.disabled)>.orthogonal-drag-handle.start,.monaco-sash.horizontal.orthogonal-edge-south:not(.disabled)>.orthogonal-drag-handle.end{cursor:nwse-resize}.monaco-sash.horizontal.orthogonal-edge-north:not(.disabled)>.orthogonal-drag-handle.end,.monaco-sash.horizontal.orthogonal-edge-south:not(.disabled)>.orthogonal-drag-handle.start{cursor:nesw-resize}.monaco-sash.vertical>.orthogonal-drag-handle.start{left:calc(var(--sash-size) * -.5);top:calc(var(--sash-size) * -1)}.monaco-sash.vertical>.orthogonal-drag-handle.end{left:calc(var(--sash-size) * -.5);bottom:calc(var(--sash-size) * -1)}.monaco-sash.horizontal>.orthogonal-drag-handle.start{top:calc(var(--sash-size) * -.5);left:calc(var(--sash-size) * -1)}.monaco-sash.horizontal>.orthogonal-drag-handle.end{top:calc(var(--sash-size) * -.5);right:calc(var(--sash-size) * -1)}.monaco-sash:before{content:\"\";pointer-events:none;position:absolute;width:100%;height:100%;transition:background-color .1s ease-out;background:transparent}.monaco-sash.vertical:before{width:var(--sash-hover-size);left:calc(50% - (var(--sash-hover-size) / 2))}.monaco-sash.horizontal:before{height:var(--sash-hover-size);top:calc(50% - (var(--sash-hover-size) / 2))}.monaco-sash.debug{background:cyan}.monaco-sash.debug.disabled{background:rgba(0,255,255,.2)}.monaco-sash.debug:not(.disabled)>.orthogonal-drag-handle{background:red}', \"\"])\n}, function(e, t, i) {\n    var n = i(379);\n    (n = \"string\" == typeof(n = n.__esModule ? n.default : n) ? [\n        [e.i, n, \"\"]\n    ] : n).locals && (e.exports = n.locals), (0, i(25).default)(\"4c3c2b86\", n, !0, {})\n}, function(e, t, i) {\n    (e.exports = i(24)(!1)).push([e.i, \".monaco-editor .find-widget{position:absolute;z-index:35;height:33px;overflow:hidden;line-height:19px;transition:transform .2s linear;padding:0 4px;box-sizing:border-box;transform:translateY(calc(-100% - 10px))}.monaco-editor .find-widget textarea{margin:0}.monaco-editor .find-widget.hiddenEditor{display:none}.monaco-editor .find-widget.replaceToggled>.replace-part{display:flex}.monaco-editor .find-widget.visible{transform:translateY(0)}.monaco-editor .find-widget .monaco-inputbox.synthetic-focus{outline:1px solid -webkit-focus-ring-color;outline-offset:-1px}.monaco-editor .find-widget .monaco-inputbox .input{background-color:transparent;min-height:0}.monaco-editor .find-widget .monaco-findInput .input{font-size:13px}.monaco-editor .find-widget>.find-part,.monaco-editor .find-widget>.replace-part{margin:4px 0 0 17px;font-size:12px;display:flex}.monaco-editor .find-widget>.find-part .monaco-inputbox,.monaco-editor .find-widget>.replace-part .monaco-inputbox{min-height:25px}.monaco-editor .find-widget>.replace-part .monaco-inputbox>.ibwrapper>.mirror{padding-right:22px}.monaco-editor .find-widget>.find-part .monaco-inputbox>.ibwrapper>.input,.monaco-editor .find-widget>.find-part .monaco-inputbox>.ibwrapper>.mirror,.monaco-editor .find-widget>.replace-part .monaco-inputbox>.ibwrapper>.input,.monaco-editor .find-widget>.replace-part .monaco-inputbox>.ibwrapper>.mirror{padding-top:2px;padding-bottom:2px}.monaco-editor .find-widget>.find-part .find-actions,.monaco-editor .find-widget>.replace-part .replace-actions{height:25px;display:flex;align-items:center}.monaco-editor .find-widget .monaco-findInput{vertical-align:middle;display:flex;flex:1}.monaco-editor .find-widget .monaco-findInput .monaco-scrollable-element{width:100%}.monaco-editor .find-widget .monaco-findInput .monaco-scrollable-element .scrollbar.vertical{opacity:0}.monaco-editor .find-widget .matchesCount{display:flex;flex:initial;margin:0 0 0 3px;padding:2px 0 0 2px;height:25px;vertical-align:middle;box-sizing:border-box;text-align:center;line-height:23px}.monaco-editor .find-widget .button{width:16px;height:16px;padding:3px;border-radius:5px;flex:initial;margin-left:3px;background-position:50%;background-repeat:no-repeat;cursor:pointer;display:flex;align-items:center;justify-content:center}.monaco-editor .find-widget .codicon-find-selection{width:22px;height:22px;padding:3px;border-radius:5px}.monaco-editor .find-widget .button.left{margin-left:0;margin-right:3px}.monaco-editor .find-widget .button.wide{width:auto;padding:1px 6px;top:-1px}.monaco-editor .find-widget .button.toggle{position:absolute;top:0;left:3px;width:18px;height:100%;border-radius:0;box-sizing:border-box}.monaco-editor .find-widget .button.toggle.disabled{display:none}.monaco-editor .find-widget .disabled{opacity:.3;cursor:default}.monaco-editor .find-widget>.replace-part{display:none}.monaco-editor .find-widget>.replace-part>.monaco-findInput{position:relative;display:flex;vertical-align:middle;flex:auto;flex-grow:0;flex-shrink:0}.monaco-editor .find-widget>.replace-part>.monaco-findInput>.controls{position:absolute;top:3px;right:2px}.monaco-editor .find-widget.reduced-find-widget .matchesCount{display:none}.monaco-editor .find-widget.narrow-find-widget{max-width:257px!important}.monaco-editor .find-widget.collapsed-find-widget{max-width:170px!important}.monaco-editor .find-widget.collapsed-find-widget .button.next,.monaco-editor .find-widget.collapsed-find-widget .button.previous,.monaco-editor .find-widget.collapsed-find-widget .button.replace,.monaco-editor .find-widget.collapsed-find-widget .button.replace-all,.monaco-editor .find-widget.collapsed-find-widget>.find-part .monaco-findInput .controls{display:none}.monaco-editor .findMatch{animation-duration:0;animation-name:inherit!important}.monaco-editor .find-widget .monaco-sash{left:0!important}.monaco-editor.hc-black .find-widget .button:before{position:relative;top:1px;left:2px}\", \"\"])\n}, function(e, t, i) {\n    (e.exports = i(24)(!1)).push([e.i, \".monaco-action-bar{white-space:nowrap;height:100%}.monaco-action-bar .actions-container{display:flex;margin:0 auto;padding:0;height:100%;width:100%;align-items:center}.monaco-action-bar.vertical .actions-container{display:inline-block}.monaco-action-bar .action-item{display:block;align-items:center;justify-content:center;cursor:pointer;position:relative}.monaco-action-bar .action-item.disabled{cursor:default}.monaco-action-bar .action-item .codicon,.monaco-action-bar .action-item .icon{display:block}.monaco-action-bar .action-item .codicon{display:flex;align-items:center;width:16px;height:16px}.monaco-action-bar .action-label{font-size:11px;padding:3px;border-radius:5px}.monaco-action-bar .action-item.disabled .action-label,.monaco-action-bar .action-item.disabled .action-label:before,.monaco-action-bar .action-item.disabled .action-label:hover{opacity:.4}.monaco-action-bar.vertical{text-align:left}.monaco-action-bar.vertical .action-item{display:block}.monaco-action-bar.vertical .action-label.separator{display:block;border-bottom:1px solid #bbb;padding-top:1px;margin-left:.8em;margin-right:.8em}.monaco-action-bar .action-item .action-label.separator{width:1px;height:16px;margin:5px 4px!important;cursor:default;min-width:1px;padding:0;background-color:#bbb}.secondary-actions .monaco-action-bar .action-label{margin-left:6px}.monaco-action-bar .action-item.select-container{overflow:hidden;flex:1;max-width:170px;min-width:60px;display:flex;align-items:center;justify-content:center;margin-right:10px}.monaco-action-bar .action-item.action-dropdown-item{display:flex}.monaco-action-bar .action-item.action-dropdown-item>.action-label{margin-right:1px}\", \"\"])\n}, function(e, t, i) {\n    var n = i(382);\n    (n = \"string\" == typeof(n = n.__esModule ? n.default : n) ? [\n        [e.i, n, \"\"]\n    ] : n).locals && (e.exports = n.locals), (0, i(25).default)(\"77a3beb2\", n, !0, {})\n}, function(e, t, i) {\n    (e.exports = i(24)(!1)).push([e.i, \".monaco-scrollable-element>.scrollbar>.scra{cursor:pointer;font-size:11px!important}.monaco-scrollable-element>.visible{opacity:1;background:transparent;transition:opacity .1s linear}.monaco-scrollable-element>.invisible{opacity:0;pointer-events:none}.monaco-scrollable-element>.invisible.fade{transition:opacity .8s linear}.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}\", \"\"])\n}, function(e, t, i) {\n    var n = i(384);\n    (n = \"string\" == typeof(n = n.__esModule ? n.default : n) ? [\n        [e.i, n, \"\"]\n    ] : n).locals && (e.exports = n.locals), (0, i(25).default)(\"8e50da5a\", n, !0, {})\n}, function(e, t, i) {\n    (e.exports = i(24)(!1)).push([e.i, \".monaco-inputbox{position:relative;display:block;padding:0;box-sizing:border-box;font-size:inherit}.monaco-inputbox.idle{border:1px solid transparent}.monaco-inputbox>.ibwrapper>.input,.monaco-inputbox>.ibwrapper>.mirror{padding:4px}.monaco-inputbox>.ibwrapper{position:relative;width:100%;height:100%}.monaco-inputbox>.ibwrapper>.input{display:inline-block;box-sizing:border-box;width:100%;height:100%;line-height:inherit;border:none;font-family:inherit;font-size:inherit;resize:none;color:inherit}.monaco-inputbox>.ibwrapper>input{text-overflow:ellipsis}.monaco-inputbox>.ibwrapper>textarea.input{display:block;-ms-overflow-style:none;scrollbar-width:none;outline:none}.monaco-inputbox>.ibwrapper>textarea.input::-webkit-scrollbar{display:none}.monaco-inputbox>.ibwrapper>textarea.input.empty{white-space:nowrap}.monaco-inputbox>.ibwrapper>.mirror{position:absolute;display:inline-block;width:100%;top:0;left:0;box-sizing:border-box;white-space:pre-wrap;visibility:hidden;word-wrap:break-word}.monaco-inputbox-container{text-align:right}.monaco-inputbox-container .monaco-inputbox-message{display:inline-block;overflow:hidden;text-align:left;width:100%;box-sizing:border-box;padding:.4em;font-size:12px;line-height:17px;margin-top:-1px;word-wrap:break-word}.monaco-inputbox .monaco-action-bar{position:absolute;right:2px;top:4px}.monaco-inputbox .monaco-action-bar .action-item{margin-left:2px}.monaco-inputbox .monaco-action-bar .action-item .codicon{background-repeat:no-repeat;width:16px;height:16px}\", \"\"])\n}, function(e, t, i) {\n    (e.exports = i(24)(!1)).push([e.i, \".monaco-findInput{position:relative}.monaco-findInput .monaco-inputbox{font-size:13px;width:100%}.monaco-findInput>.controls{position:absolute;top:3px;right:2px}.vs .monaco-findInput.disabled{background-color:#e1e1e1}.vs-dark .monaco-findInput.disabled{background-color:#333}.monaco-findInput.highlight-0 .controls{animation:monaco-findInput-highlight-0 .1s linear 0s}.monaco-findInput.highlight-1 .controls{animation:monaco-findInput-highlight-1 .1s linear 0s}.hc-black .monaco-findInput.highlight-0 .controls,.vs-dark .monaco-findInput.highlight-0 .controls{animation:monaco-findInput-highlight-dark-0 .1s linear 0s}.hc-black .monaco-findInput.highlight-1 .controls,.vs-dark .monaco-findInput.highlight-1 .controls{animation:monaco-findInput-highlight-dark-1 .1s linear 0s}@keyframes monaco-findInput-highlight-0{0%{background:rgba(253,255,0,.8)}to{background:transparent}}@keyframes monaco-findInput-highlight-1{0%{background:rgba(253,255,0,.8)}99%{background:transparent}}@keyframes monaco-findInput-highlight-dark-0{0%{background:hsla(0,0%,100%,.44)}to{background:transparent}}@keyframes monaco-findInput-highlight-dark-1{0%{background:hsla(0,0%,100%,.44)}99%{background:transparent}}\", \"\"])\n}, function(e, t, i) {\n    var n = i(387);\n    (n = \"string\" == typeof(n = n.__esModule ? n.default : n) ? [\n        [e.i, n, \"\"]\n    ] : n).locals && (e.exports = n.locals), (0, i(25).default)(\"73b862ee\", n, !0, {})\n}, function(e, t, i) {\n    (e.exports = i(24)(!1)).push([e.i, '.monaco-editor{font-family:-apple-system,BlinkMacSystemFont,Segoe WPC,Segoe UI,HelveticaNeue-Light,system-ui,Ubuntu,Droid Sans,sans-serif;--monaco-monospace-font:\"SF Mono\",Monaco,Menlo,Consolas,\"Ubuntu Mono\",\"Liberation Mono\",\"DejaVu Sans Mono\",\"Courier New\",monospace}.monaco-editor.hc-black .monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .action-label,.monaco-editor.vs-dark .monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .action-label,.monaco-menu .monaco-action-bar.vertical .action-item .action-menu-item:focus .action-label{stroke-width:1.2px}.monaco-hover p{margin:0}.monaco-aria-container{position:absolute!important;top:0;height:1px;width:1px;margin:-1px;overflow:hidden;padding:0;clip:rect(1px,1px,1px,1px);clip-path:inset(50%)}.monaco-editor.hc-black{-ms-high-contrast-adjust:none}@media screen and (-ms-high-contrast:active){.monaco-editor.vs-dark .view-overlays .current-line,.monaco-editor.vs .view-overlays .current-line{border-color:windowtext!important;border-left:0;border-right:0}.monaco-editor.vs-dark .cursor,.monaco-editor.vs .cursor{background-color:windowtext!important}.monaco-editor.vs-dark .dnd-target,.monaco-editor.vs .dnd-target{border-color:windowtext!important}.monaco-editor.vs-dark .selected-text,.monaco-editor.vs .selected-text{background-color:highlight!important}.monaco-editor.vs-dark .view-line,.monaco-editor.vs .view-line{-ms-high-contrast-adjust:none}.monaco-editor.vs-dark .view-line span,.monaco-editor.vs .view-line span{color:windowtext!important}.monaco-editor.vs-dark .view-line span.inline-selected-text,.monaco-editor.vs .view-line span.inline-selected-text{color:highlighttext!important}.monaco-editor.vs-dark .view-overlays,.monaco-editor.vs .view-overlays{-ms-high-contrast-adjust:none}.monaco-editor.vs-dark .reference-decoration,.monaco-editor.vs-dark .selectionHighlight,.monaco-editor.vs-dark .wordHighlight,.monaco-editor.vs-dark .wordHighlightStrong,.monaco-editor.vs .reference-decoration,.monaco-editor.vs .selectionHighlight,.monaco-editor.vs .wordHighlight,.monaco-editor.vs .wordHighlightStrong{border:2px dotted highlight!important;background:transparent!important;box-sizing:border-box}.monaco-editor.vs-dark .rangeHighlight,.monaco-editor.vs .rangeHighlight{background:transparent!important;border:1px dotted activeborder!important;box-sizing:border-box}.monaco-editor.vs-dark .bracket-match,.monaco-editor.vs .bracket-match{border-color:windowtext!important;background:transparent!important}.monaco-editor.vs-dark .currentFindMatch,.monaco-editor.vs-dark .findMatch,.monaco-editor.vs .currentFindMatch,.monaco-editor.vs .findMatch{border:2px dotted activeborder!important;background:transparent!important;box-sizing:border-box}.monaco-editor.vs-dark .find-widget,.monaco-editor.vs .find-widget{border:1px solid windowtext}.monaco-editor.vs-dark .monaco-list .monaco-list-row,.monaco-editor.vs .monaco-list .monaco-list-row{-ms-high-contrast-adjust:none;color:windowtext!important}.monaco-editor.vs-dark .monaco-list .monaco-list-row.focused,.monaco-editor.vs .monaco-list .monaco-list-row.focused{color:highlighttext!important;background-color:highlight!important}.monaco-editor.vs-dark .monaco-list .monaco-list-row:hover,.monaco-editor.vs .monaco-list .monaco-list-row:hover{background:transparent!important;border:1px solid highlight;box-sizing:border-box}.monaco-editor.vs-dark .monaco-scrollable-element>.scrollbar,.monaco-editor.vs .monaco-scrollable-element>.scrollbar{-ms-high-contrast-adjust:none;background:background!important;border:1px solid windowtext;box-sizing:border-box}.monaco-editor.vs-dark .monaco-scrollable-element>.scrollbar>.slider,.monaco-editor.vs .monaco-scrollable-element>.scrollbar>.slider{background:windowtext!important}.monaco-editor.vs-dark .monaco-scrollable-element>.scrollbar>.slider.active,.monaco-editor.vs-dark .monaco-scrollable-element>.scrollbar>.slider:hover,.monaco-editor.vs .monaco-scrollable-element>.scrollbar>.slider.active,.monaco-editor.vs .monaco-scrollable-element>.scrollbar>.slider:hover{background:highlight!important}.monaco-editor.vs-dark .decorationsOverviewRuler,.monaco-editor.vs .decorationsOverviewRuler{opacity:0}.monaco-editor.vs-dark .minimap,.monaco-editor.vs .minimap{display:none}.monaco-editor.vs-dark .squiggly-d-error,.monaco-editor.vs .squiggly-d-error{background:transparent!important;border-bottom:4px double #e47777}.monaco-editor.vs-dark .squiggly-b-info,.monaco-editor.vs-dark .squiggly-c-warning,.monaco-editor.vs .squiggly-b-info,.monaco-editor.vs .squiggly-c-warning{border-bottom:4px double #71b771}.monaco-editor.vs-dark .squiggly-a-hint,.monaco-editor.vs .squiggly-a-hint{border-bottom:4px double #6c6c6c}.monaco-editor.vs-dark .monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .action-label,.monaco-editor.vs .monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .action-label{-ms-high-contrast-adjust:none;color:highlighttext!important;background-color:highlight!important}.monaco-editor.vs-dark .monaco-menu .monaco-action-bar.vertical .action-menu-item:hover .action-label,.monaco-editor.vs .monaco-menu .monaco-action-bar.vertical .action-menu-item:hover .action-label{-ms-high-contrast-adjust:none;background:transparent!important;border:1px solid highlight;box-sizing:border-box}.monaco-diff-editor.vs-dark .diffOverviewRuler,.monaco-diff-editor.vs .diffOverviewRuler{display:none}.monaco-editor.vs-dark .line-delete,.monaco-editor.vs-dark .line-insert,.monaco-editor.vs .line-delete,.monaco-editor.vs .line-insert{background:transparent!important;border:1px solid highlight!important;box-sizing:border-box}.monaco-editor.vs-dark .char-delete,.monaco-editor.vs-dark .char-insert,.monaco-editor.vs .char-delete,.monaco-editor.vs .char-insert{background:transparent!important}}', \"\"])\n}, function(e, t, i) {\n    var n = i(389);\n    (n = \"string\" == typeof(n = n.__esModule ? n.default : n) ? [\n        [e.i, n, \"\"]\n    ] : n).locals && (e.exports = n.locals), (0, i(25).default)(\"ff930204\", n, !0, {})\n}, function(e, t, i) {\n    (e.exports = i(24)(!1)).push([e.i, \"::-ms-clear{display:none}.monaco-editor .editor-widget input{color:inherit}.monaco-editor{position:relative;overflow:visible;-webkit-text-size-adjust:100%}.monaco-editor .overflow-guard{position:relative;overflow:hidden}.monaco-editor .view-overlays{position:absolute;top:0}\", \"\"])\n}, function(e, t, i) {\n    var n = i(391);\n    (n = \"string\" == typeof(n = n.__esModule ? n.default : n) ? [\n        [e.i, n, \"\"]\n    ] : n).locals && (e.exports = n.locals), (0, i(25).default)(\"4e3582ac\", n, !0, {})\n}, function(e, t, i) {\n    (e.exports = i(24)(!1)).push([e.i, \".monaco-editor .inputarea{min-width:0;min-height:0;margin:0;padding:0;position:absolute;outline:none!important;resize:none;border:none;overflow:hidden;color:transparent;background-color:transparent}.monaco-editor .inputarea.ime-input{z-index:10}\", \"\"])\n}, function(e, t, i) {\n    var n = i(393);\n    (n = \"string\" == typeof(n = n.__esModule ? n.default : n) ? [\n        [e.i, n, \"\"]\n    ] : n).locals && (e.exports = n.locals), (0, i(25).default)(\"b6a02bd2\", n, !0, {})\n}, function(e, t, i) {\n    (e.exports = i(24)(!1)).push([e.i, \".monaco-editor .margin-view-overlays .line-numbers{font-variant-numeric:tabular-nums;position:absolute;text-align:right;display:inline-block;vertical-align:middle;box-sizing:border-box;cursor:default;height:100%}.monaco-editor .relative-current-line-number{text-align:left;display:inline-block;width:100%}.monaco-editor .margin-view-overlays .line-numbers.lh-odd{margin-top:1px}\", \"\"])\n}, function(e, t, i) {\n    var n = i(395);\n    (n = \"string\" == typeof(n = n.__esModule ? n.default : n) ? [\n        [e.i, n, \"\"]\n    ] : n).locals && (e.exports = n.locals), (0, i(25).default)(\"6d4a0b29\", n, !0, {})\n}, function(e, t, i) {\n    (e.exports = i(24)(!1)).push([e.i, \".monaco-mouse-cursor-text{cursor:text}.hc-black.mac .monaco-mouse-cursor-text,.hc-black .mac .monaco-mouse-cursor-text,.vs-dark.mac .monaco-mouse-cursor-text,.vs-dark .mac .monaco-mouse-cursor-text{cursor:-webkit-image-set(url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1+jfqAAAAL0lEQVQoz2NgCD3x//9/BhBYBWdhgFVAiVW4JBFKGIa4AqD0//9D3pt4I4tAdAMAHTQ/j5Zom30AAAAASUVORK5CYII=) 1x,url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAQAAADZc7J/AAAAz0lEQVRIx2NgYGBY/R8I/vx5eelX3n82IJ9FxGf6tksvf/8FiTMQAcAGQMDvSwu09abffY8QYSAScNk45G198eX//yev73/4///701eh//kZSARckrNBRvz//+8+6ZohwCzjGNjdgQxkAg7B9WADeBjIBqtJCbhRA0YNoIkBSNmaPEMoNmA0FkYNoFKhapJ6FGyAH3nauaSmPfwI0v/3OukVi0CIZ+F25KrtYcx/CTIy0e+rC7R1Z4KMICVTQQ14feVXIbR695u14+Ir4gwAAD49E54wc1kWAAAAAElFTkSuQmCC) 2x) 5 8,text}\", \"\"])\n}, function(e, t, i) {\n    var n = i(397);\n    (n = \"string\" == typeof(n = n.__esModule ? n.default : n) ? [\n        [e.i, n, \"\"]\n    ] : n).locals && (e.exports = n.locals), (0, i(25).default)(\"6e373848\", n, !0, {})\n}, function(e, t, i) {\n    (e.exports = i(24)(!1)).push([e.i, \".monaco-editor .margin-view-overlays .current-line,.monaco-editor .view-overlays .current-line{display:block;position:absolute;left:0;top:0;box-sizing:border-box}.monaco-editor .margin-view-overlays .current-line.current-line-margin.current-line-margin-both{border-right:0}\", \"\"])\n}, function(e, t, i) {\n    var n = i(399);\n    (n = \"string\" == typeof(n = n.__esModule ? n.default : n) ? [\n        [e.i, n, \"\"]\n    ] : n).locals && (e.exports = n.locals), (0, i(25).default)(\"021e0744\", n, !0, {})\n}, function(e, t, i) {\n    (e.exports = i(24)(!1)).push([e.i, \".monaco-editor .lines-content .cdr{position:absolute}\", \"\"])\n}, function(e, t, i) {\n    var n = i(401);\n    (n = \"string\" == typeof(n = n.__esModule ? n.default : n) ? [\n        [e.i, n, \"\"]\n    ] : n).locals && (e.exports = n.locals), (0, i(25).default)(\"5d17f6db\", n, !0, {})\n}, function(e, t, i) {\n    (e.exports = i(24)(!1)).push([e.i, \".monaco-editor .glyph-margin{position:absolute;top:0}.monaco-editor .margin-view-overlays .cgmr{position:absolute;display:flex;align-items:center;justify-content:center}\", \"\"])\n}, function(e, t, i) {\n    var n = i(403);\n    (n = \"string\" == typeof(n = n.__esModule ? n.default : n) ? [\n        [e.i, n, \"\"]\n    ] : n).locals && (e.exports = n.locals), (0, i(25).default)(\"2710e980\", n, !0, {})\n}, function(e, t, i) {\n    (e.exports = i(24)(!1)).push([e.i, \".monaco-editor .lines-content .core-guide{position:absolute;box-sizing:border-box}\", \"\"])\n}, function(e, t, i) {\n    var n = i(405);\n    (n = \"string\" == typeof(n = n.__esModule ? n.default : n) ? [\n        [e.i, n, \"\"]\n    ] : n).locals && (e.exports = n.locals), (0, i(25).default)(\"5ba0a660\", n, !0, {})\n}, function(e, t, i) {\n    (e.exports = i(24)(!1)).push([e.i, \".mtkcontrol{color:#fff!important;background:#960000!important}.monaco-editor.no-user-select .lines-content,.monaco-editor.no-user-select .view-line,.monaco-editor.no-user-select .view-lines{user-select:none;-webkit-user-select:none;-ms-user-select:none}.monaco-editor .view-lines{white-space:nowrap}.monaco-editor .view-line{position:absolute;width:100%}.monaco-editor .mtkz{display:inline-block}\", \"\"])\n}, function(e, t, i) {\n    var n = i(407);\n    (n = \"string\" == typeof(n = n.__esModule ? n.default : n) ? [\n        [e.i, n, \"\"]\n    ] : n).locals && (e.exports = n.locals), (0, i(25).default)(\"58e5f13f\", n, !0, {})\n}, function(e, t, i) {\n    (e.exports = i(24)(!1)).push([e.i, \".monaco-editor .lines-decorations{position:absolute;top:0;background:#fff}.monaco-editor .margin-view-overlays .cldr{position:absolute;height:100%}\", \"\"])\n}, function(e, t, i) {\n    var n = i(409);\n    (n = \"string\" == typeof(n = n.__esModule ? n.default : n) ? [\n        [e.i, n, \"\"]\n    ] : n).locals && (e.exports = n.locals), (0, i(25).default)(\"2a724df6\", n, !0, {})\n}, function(e, t, i) {\n    (e.exports = i(24)(!1)).push([e.i, \".monaco-editor .margin-view-overlays .cmdr{position:absolute;left:0;width:100%;height:100%}\", \"\"])\n}, function(e, t, i) {\n    var n = i(411);\n    (n = \"string\" == typeof(n = n.__esModule ? n.default : n) ? [\n        [e.i, n, \"\"]\n    ] : n).locals && (e.exports = n.locals), (0, i(25).default)(\"00911a66\", n, !0, {})\n}, function(e, t, i) {\n    (e.exports = i(24)(!1)).push([e.i, \".monaco-editor .minimap.slider-mouseover .minimap-slider{opacity:0;transition:opacity .1s linear}.monaco-editor .minimap.slider-mouseover .minimap-slider.active,.monaco-editor .minimap.slider-mouseover:hover .minimap-slider{opacity:1}.monaco-editor .minimap-shadow-hidden{position:absolute;width:0}.monaco-editor .minimap-shadow-visible{position:absolute;left:-6px;width:6px}.monaco-editor.no-minimap-shadow .minimap-shadow-visible{position:absolute;left:-1px;width:1px}\", \"\"])\n}, function(e, t, i) {\n    var n = i(413);\n    (n = \"string\" == typeof(n = n.__esModule ? n.default : n) ? [\n        [e.i, n, \"\"]\n    ] : n).locals && (e.exports = n.locals), (0, i(25).default)(\"8e4cf978\", n, !0, {})\n}, function(e, t, i) {\n    (e.exports = i(24)(!1)).push([e.i, \".monaco-editor .overlayWidgets{position:absolute;top:0;left:0}\", \"\"])\n}, function(e, t, i) {\n    var n = i(415);\n    (n = \"string\" == typeof(n = n.__esModule ? n.default : n) ? [\n        [e.i, n, \"\"]\n    ] : n).locals && (e.exports = n.locals), (0, i(25).default)(\"2dad93c6\", n, !0, {})\n}, function(e, t, i) {\n    (e.exports = i(24)(!1)).push([e.i, \".monaco-editor .view-ruler{position:absolute;top:0}\", \"\"])\n}, function(e, t, i) {\n    var n = i(417);\n    (n = \"string\" == typeof(n = n.__esModule ? n.default : n) ? [\n        [e.i, n, \"\"]\n    ] : n).locals && (e.exports = n.locals), (0, i(25).default)(\"24e408a6\", n, !0, {})\n}, function(e, t, i) {\n    (e.exports = i(24)(!1)).push([e.i, \".monaco-editor .scroll-decoration{position:absolute;top:0;left:0;height:6px}\", \"\"])\n}, function(e, t, i) {\n    var n = i(419);\n    (n = \"string\" == typeof(n = n.__esModule ? n.default : n) ? [\n        [e.i, n, \"\"]\n    ] : n).locals && (e.exports = n.locals), (0, i(25).default)(\"4091ce1c\", n, !0, {})\n}, function(e, t, i) {\n    (e.exports = i(24)(!1)).push([e.i, \".monaco-editor .lines-content .cslr{position:absolute}.monaco-editor .top-left-radius{border-top-left-radius:3px}.monaco-editor .bottom-left-radius{border-bottom-left-radius:3px}.monaco-editor .top-right-radius{border-top-right-radius:3px}.monaco-editor .bottom-right-radius{border-bottom-right-radius:3px}.monaco-editor.hc-black .top-left-radius{border-top-left-radius:0}.monaco-editor.hc-black .bottom-left-radius{border-bottom-left-radius:0}.monaco-editor.hc-black .top-right-radius{border-top-right-radius:0}.monaco-editor.hc-black .bottom-right-radius{border-bottom-right-radius:0}\", \"\"])\n}, function(e, t, i) {\n    var n = i(421);\n    (n = \"string\" == typeof(n = n.__esModule ? n.default : n) ? [\n        [e.i, n, \"\"]\n    ] : n).locals && (e.exports = n.locals), (0, i(25).default)(\"19ee8719\", n, !0, {})\n}, function(e, t, i) {\n    (e.exports = i(24)(!1)).push([e.i, \".monaco-editor .cursors-layer{position:absolute;top:0}.monaco-editor .cursors-layer>.cursor{position:absolute;overflow:hidden}.monaco-editor .cursors-layer.cursor-smooth-caret-animation>.cursor{transition:all 80ms}.monaco-editor .cursors-layer.cursor-block-outline-style>.cursor{box-sizing:border-box;background:transparent!important;border-style:solid;border-width:1px}.monaco-editor .cursors-layer.cursor-underline-style>.cursor{border-bottom-width:2px;border-bottom-style:solid;background:transparent!important;box-sizing:border-box}.monaco-editor .cursors-layer.cursor-underline-thin-style>.cursor{border-bottom-width:1px;border-bottom-style:solid;background:transparent!important;box-sizing:border-box}@keyframes monaco-cursor-smooth{0%,20%{opacity:1}60%,to{opacity:0}}@keyframes monaco-cursor-phase{0%,20%{opacity:1}90%,to{opacity:0}}@keyframes monaco-cursor-expand{0%,20%{transform:scaleY(1)}80%,to{transform:scaleY(0)}}.cursor-smooth{animation:monaco-cursor-smooth .5s ease-in-out 0s 20 alternate}.cursor-phase{animation:monaco-cursor-phase .5s ease-in-out 0s 20 alternate}.cursor-expand>.cursor{animation:monaco-cursor-expand .5s ease-in-out 0s 20 alternate}\", \"\"])\n}, function(e, t, i) {\n    var n = i(423);\n    (n = \"string\" == typeof(n = n.__esModule ? n.default : n) ? [\n        [e.i, n, \"\"]\n    ] : n).locals && (e.exports = n.locals), (0, i(25).default)(\"2968c9de\", n, !0, {})\n}, function(e, t, i) {\n    (e.exports = i(24)(!1)).push([e.i, \".monaco-diff-editor .diffOverview{z-index:9}.monaco-diff-editor .diffOverview .diffViewport{z-index:10}.monaco-diff-editor.vs .diffOverview{background:rgba(0,0,0,.03)}.monaco-diff-editor.vs-dark .diffOverview{background:hsla(0,0%,100%,.01)}.monaco-scrollable-element.modified-in-monaco-diff-editor.vs-dark .scrollbar,.monaco-scrollable-element.modified-in-monaco-diff-editor.vs .scrollbar{background:transparent}.monaco-scrollable-element.modified-in-monaco-diff-editor.hc-black .scrollbar{background:none}.monaco-scrollable-element.modified-in-monaco-diff-editor .slider{z-index:10}.modified-in-monaco-diff-editor .slider.active{background:hsla(0,0%,67%,.4)}.modified-in-monaco-diff-editor.hc-black .slider.active{background:none}.monaco-diff-editor .delete-sign,.monaco-diff-editor .insert-sign,.monaco-editor .delete-sign,.monaco-editor .insert-sign{font-size:11px!important;opacity:.7!important;display:flex!important;align-items:center}.monaco-diff-editor.hc-black .delete-sign,.monaco-diff-editor.hc-black .insert-sign,.monaco-editor.hc-black .delete-sign,.monaco-editor.hc-black .insert-sign{opacity:1}.monaco-editor .inline-added-margin-view-zone,.monaco-editor .inline-deleted-margin-view-zone{text-align:right}.monaco-editor .view-zones .view-lines .view-line span{display:inline-block}.monaco-editor .margin-view-zones .lightbulb-glyph:hover{cursor:pointer}\", \"\"])\n}, function(e, t, i) {\n    var n = i(425);\n    (n = \"string\" == typeof(n = n.__esModule ? n.default : n) ? [\n        [e.i, n, \"\"]\n    ] : n).locals && (e.exports = n.locals), (0, i(25).default)(\"b88f7404\", n, !0, {})\n}, function(e, t, i) {\n    (e.exports = i(24)(!1)).push([e.i, \".monaco-diff-editor .diff-review-line-number{text-align:right;display:inline-block}.monaco-diff-editor .diff-review{position:absolute;user-select:none;-webkit-user-select:none;-ms-user-select:none}.monaco-diff-editor .diff-review-summary{padding-left:10px}.monaco-diff-editor .diff-review-shadow{position:absolute}.monaco-diff-editor .diff-review-row{white-space:pre}.monaco-diff-editor .diff-review-table{display:table;min-width:100%}.monaco-diff-editor .diff-review-row{display:table-row;width:100%}.monaco-diff-editor .diff-review-spacer{display:inline-block;width:10px;vertical-align:middle}.monaco-diff-editor .diff-review-spacer>.codicon{font-size:9px!important}.monaco-diff-editor .diff-review-actions{display:inline-block;position:absolute;right:10px;top:2px}.monaco-diff-editor .diff-review-actions .action-label{width:16px;height:16px;margin:2px 0}\", \"\"])\n}, function(e, t, i) {\n    var n = i(427);\n    (n = \"string\" == typeof(n = n.__esModule ? n.default : n) ? [\n        [e.i, n, \"\"]\n    ] : n).locals && (e.exports = n.locals), (0, i(25).default)(\"744717be\", n, !0, {})\n}, function(e, t, i) {\n    var n = i(428);\n    (e.exports = i(24)(!1)).push([e.i, \"@font-face{font-family:codicon;font-display:block;src:url(\" + n(i(429)) + ') format(\"truetype\")}.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}', \"\"])\n}, function(e, t) {\n    e.exports = function(e) {\n        return \"string\" != typeof e ? e : (/^['\"].*['\"]$/.test(e) && (e = e.slice(1, -1)), /[\"'() \\t\\n]/.test(e) ? '\"' + e.replace(/\"/g, '\\\\\"').replace(/\\n/g, \"\\\\n\") + '\"' : e)\n    }\n}, function(e, t, i) {\n    e.exports = i.p + \"fonts/codicon--codicon.ttf\"\n}, function(e, t, i) {\n    var n = i(431);\n    (n = \"string\" == typeof(n = n.__esModule ? n.default : n) ? [\n        [e.i, n, \"\"]\n    ] : n).locals && (e.exports = n.locals), (0, i(25).default)(\"a3180c7e\", n, !0, {})\n}, function(e, t, i) {\n    (e.exports = i(24)(!1)).push([e.i, \".codicon-wrench-subaction{opacity:.5}@keyframes codicon-spin{to{transform:rotate(1turn)}}.codicon-gear.codicon-modifier-spin,.codicon-loading.codicon-modifier-spin,.codicon-notebook-state-executing.codicon-modifier-spin,.codicon-sync.codicon-modifier-spin{animation:codicon-spin 1.5s steps(30) infinite}.codicon-modifier-disabled{opacity:.4}.codicon-loading,.codicon-tree-item-loading:before{animation-duration:1s!important;animation-timing-function:cubic-bezier(.53,.21,.29,.67)!important}\", \"\"])\n}, function(e, t, i) {\n    var n = i(433);\n    (n = \"string\" == typeof(n = n.__esModule ? n.default : n) ? [\n        [e.i, n, \"\"]\n    ] : n).locals && (e.exports = n.locals), (0, i(25).default)(\"e383fdd8\", n, !0, {})\n}, function(e, t, i) {\n    (e.exports = i(24)(!1)).push([e.i, \".context-view{position:absolute;z-index:2500}.context-view.fixed{all:initial;font-family:inherit;font-size:13px;position:fixed;z-index:2500;color:inherit}\", \"\"])\n}, function(e, t, i) {\n    var n = i(435);\n    (n = \"string\" == typeof(n = n.__esModule ? n.default : n) ? [\n        [e.i, n, \"\"]\n    ] : n).locals && (e.exports = n.locals), (0, i(25).default)(\"5dfc30d8\", n, !0, {})\n}, function(e, t, i) {\n    (e.exports = i(24)(!1)).push([e.i, \".context-view .monaco-menu{min-width:130px}\", \"\"])\n}, function(e, t, i) {\n    (e.exports = i(24)(!1)).push([e.i, \".monaco-list{position:relative;height:100%;width:100%;white-space:nowrap}.monaco-list.mouse-support{user-select:none;-webkit-user-select:none;-ms-user-select:none}.monaco-list>.monaco-scrollable-element{height:100%}.monaco-list-rows{position:relative;width:100%;height:100%}.monaco-list.horizontal-scrolling .monaco-list-rows{width:auto;min-width:100%}.monaco-list-row{position:absolute;box-sizing:border-box;overflow:hidden;width:100%}.monaco-list.mouse-support .monaco-list-row{cursor:pointer;touch-action:none}.monaco-list-row.scrolling{display:none!important}.monaco-list.element-focused,.monaco-list.selection-multiple,.monaco-list.selection-single{outline:0!important}.monaco-drag-image{display:inline-block;padding:1px 7px;border-radius:10px;font-size:12px;position:absolute;z-index:1000}.monaco-list-type-filter{display:flex;align-items:center;position:absolute;border-radius:2px;padding:0 3px;max-width:calc(100% - 10px);text-overflow:ellipsis;overflow:hidden;text-align:right;box-sizing:border-box;cursor:all-scroll;font-size:13px;line-height:18px;height:20px;z-index:1;top:4px}.monaco-list-type-filter.dragging{transition:top .2s,left .2s}.monaco-list-type-filter.ne{right:4px}.monaco-list-type-filter.nw{left:4px}.monaco-list-type-filter>.controls{display:flex;align-items:center;box-sizing:border-box;transition:width .2s;width:0}.monaco-list-type-filter.dragging>.controls,.monaco-list-type-filter:hover>.controls{width:36px}.monaco-list-type-filter>.controls>*{border:none;box-sizing:border-box;-webkit-appearance:none;-moz-appearance:none;background:none;width:16px;height:16px;flex-shrink:0;margin:0;padding:0;display:flex;align-items:center;justify-content:center;cursor:pointer}.monaco-list-type-filter>.controls>.filter{margin-left:4px}.monaco-list-type-filter-message{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;padding:40px 1em 1em;text-align:center;white-space:normal;opacity:.7;pointer-events:none}.monaco-list-type-filter-message:empty{display:none}.monaco-list-type-filter{cursor:grab}.monaco-list-type-filter.dragging{cursor:grabbing}\", \"\"])\n}, function(e, t, i) {\n    var n = i(438);\n    (n = \"string\" == typeof(n = n.__esModule ? n.default : n) ? [\n        [e.i, n, \"\"]\n    ] : n).locals && (e.exports = n.locals), (0, i(25).default)(\"9e67c956\", n, !0, {})\n}, function(e, t, i) {\n    (e.exports = i(24)(!1)).push([e.i, '.monaco-split-view2{position:relative;width:100%;height:100%}.monaco-split-view2>.sash-container{position:absolute;width:100%;height:100%;pointer-events:none}.monaco-split-view2>.sash-container>.monaco-sash{pointer-events:auto}.monaco-split-view2>.monaco-scrollable-element{width:100%;height:100%}.monaco-split-view2>.monaco-scrollable-element>.split-view-container{width:100%;height:100%;white-space:nowrap;position:relative}.monaco-split-view2>.monaco-scrollable-element>.split-view-container>.split-view-view{white-space:normal;position:absolute}.monaco-split-view2>.monaco-scrollable-element>.split-view-container>.split-view-view:not(.visible){display:none}.monaco-split-view2.vertical>.monaco-scrollable-element>.split-view-container>.split-view-view{width:100%}.monaco-split-view2.horizontal>.monaco-scrollable-element>.split-view-container>.split-view-view{height:100%}.monaco-split-view2.separator-border>.monaco-scrollable-element>.split-view-container>.split-view-view:not(:first-child):before{content:\" \";position:absolute;top:0;left:0;z-index:5;pointer-events:none;background-color:var(--separator-border)}.monaco-split-view2.separator-border.horizontal>.monaco-scrollable-element>.split-view-container>.split-view-view:not(:first-child):before{height:100%;width:1px}.monaco-split-view2.separator-border.vertical>.monaco-scrollable-element>.split-view-container>.split-view-view:not(:first-child):before{height:1px;width:100%}', \"\"])\n}, function(e, t, i) {\n    var n = i(440);\n    (n = \"string\" == typeof(n = n.__esModule ? n.default : n) ? [\n        [e.i, n, \"\"]\n    ] : n).locals && (e.exports = n.locals), (0, i(25).default)(\"6a9957c2\", n, !0, {})\n}, function(e, t, i) {\n    (e.exports = i(24)(!1)).push([e.i, '.monaco-table{display:flex;flex-direction:column;position:relative;height:100%;width:100%;white-space:nowrap}.monaco-table>.monaco-split-view2{border-bottom:1px solid transparent}.monaco-table>.monaco-list{flex:1}.monaco-table-tr{display:flex;height:100%}.monaco-table-th{width:100%;height:100%;font-weight:700;overflow:hidden;text-overflow:ellipsis}.monaco-table-td,.monaco-table-th{box-sizing:border-box;flex-shrink:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.monaco-table>.monaco-split-view2 .monaco-sash.vertical:before{content:\"\";position:absolute;left:calc(var(--sash-size) / 2);width:0;border-left:1px solid transparent}.monaco-table>.monaco-split-view2,.monaco-table>.monaco-split-view2 .monaco-sash.vertical:before{transition:border-color .2s ease-out}', \"\"])\n}, function(e, t, i) {\n    var n = i(442);\n    (n = \"string\" == typeof(n = n.__esModule ? n.default : n) ? [\n        [e.i, n, \"\"]\n    ] : n).locals && (e.exports = n.locals), (0, i(25).default)(\"3f517a24\", n, !0, {})\n}, function(e, t, i) {\n    (e.exports = i(24)(!1)).push([e.i, \".monaco-tl-row{display:flex;height:100%;align-items:center;position:relative}.monaco-tl-indent{height:100%;position:absolute;top:0;left:16px;pointer-events:none}.hide-arrows .monaco-tl-indent{left:12px}.monaco-tl-indent>.indent-guide{display:inline-block;box-sizing:border-box;height:100%;border-left:1px solid transparent;transition:border-color .1s linear}.monaco-tl-contents,.monaco-tl-twistie{height:100%}.monaco-tl-twistie{font-size:10px;text-align:right;padding-right:6px;flex-shrink:0;width:16px;display:flex!important;align-items:center;justify-content:center;transform:translateX(3px)}.monaco-tl-contents{flex:1;overflow:hidden}.monaco-tl-twistie:before{border-radius:20px}.monaco-tl-twistie.collapsed:before{transform:rotate(-90deg)}.monaco-tl-twistie.codicon-tree-item-loading:before{animation:codicon-spin 1.25s steps(30) infinite}\", \"\"])\n}, function(e, t, i) {\n    var n = i(444);\n    (n = \"string\" == typeof(n = n.__esModule ? n.default : n) ? [\n        [e.i, n, \"\"]\n    ] : n).locals && (e.exports = n.locals), (0, i(25).default)(\"07a9a8c0\", n, !0, {})\n}, function(e, t, i) {\n    (e.exports = i(24)(!1)).push([e.i, \".quick-input-widget{font-size:13px}.quick-input-widget .monaco-highlighted-label .highlight{color:#0066bf}.vs .quick-input-widget .monaco-list-row.focused .monaco-highlighted-label .highlight{color:#9dddff}.vs-dark .quick-input-widget .monaco-highlighted-label .highlight{color:#0097fb}.hc-black .quick-input-widget .monaco-highlighted-label .highlight{color:#f38518}.monaco-keybinding>.monaco-keybinding-key{background-color:hsla(0,0%,87%,.4);border:1px solid hsla(0,0%,80%,.4);border-bottom-color:hsla(0,0%,73%,.4);box-shadow:inset 0 -1px 0 hsla(0,0%,73%,.4);color:#555}.hc-black .monaco-keybinding>.monaco-keybinding-key{background-color:transparent;border:1px solid #6fc3df;box-shadow:none;color:#fff}.vs-dark .monaco-keybinding>.monaco-keybinding-key{background-color:hsla(0,0%,50%,.17);border:1px solid rgba(51,51,51,.6);border-bottom-color:rgba(68,68,68,.6);box-shadow:inset 0 -1px 0 rgba(68,68,68,.6);color:#ccc}\", \"\"])\n}, function(e, t, i) {\n    var n = i(446);\n    (n = \"string\" == typeof(n = n.__esModule ? n.default : n) ? [\n        [e.i, n, \"\"]\n    ] : n).locals && (e.exports = n.locals), (0, i(25).default)(\"bf5313b8\", n, !0, {})\n}, function(e, t, i) {\n    (e.exports = i(24)(!1)).push([e.i, \".monaco-text-button{box-sizing:border-box;display:flex;width:100%;padding:4px;text-align:center;cursor:pointer;justify-content:center;align-items:center}.monaco-text-button:focus{outline-offset:2px!important}.monaco-text-button:hover{text-decoration:none!important}.monaco-button.disabled,.monaco-button.disabled:focus{opacity:.4!important;cursor:default}.monaco-text-button>.codicon{margin:0 .2em;color:inherit!important}.monaco-button-dropdown{display:flex;cursor:pointer}.monaco-button-dropdown>.monaco-dropdown-button{margin-left:1px}.monaco-description-button{flex-direction:column}.monaco-description-button .monaco-button-label{font-weight:500}.monaco-description-button .monaco-button-description{font-style:italic}\", \"\"])\n}, function(e, t, i) {\n    var n = i(448);\n    (n = \"string\" == typeof(n = n.__esModule ? n.default : n) ? [\n        [e.i, n, \"\"]\n    ] : n).locals && (e.exports = n.locals), (0, i(25).default)(\"3efe2286\", n, !0, {})\n}, function(e, t, i) {\n    (e.exports = i(24)(!1)).push([e.i, \".monaco-count-badge{padding:3px 6px;border-radius:11px;font-size:11px;min-width:18px;min-height:18px;line-height:11px;font-weight:400;text-align:center;display:inline-block;box-sizing:border-box}.monaco-count-badge.long{padding:2px 3px;border-radius:2px;min-height:auto;line-height:normal}\", \"\"])\n}, function(e, t, i) {\n    var n = i(450);\n    (n = \"string\" == typeof(n = n.__esModule ? n.default : n) ? [\n        [e.i, n, \"\"]\n    ] : n).locals && (e.exports = n.locals), (0, i(25).default)(\"eada882c\", n, !0, {})\n}, function(e, t, i) {\n    (e.exports = i(24)(!1)).push([e.i, \".monaco-progress-container{width:100%;height:5px;overflow:hidden}.monaco-progress-container .progress-bit{width:2%;height:5px;position:absolute;left:0;display:none}.monaco-progress-container.active .progress-bit{display:inherit}.monaco-progress-container.discrete .progress-bit{left:0;transition:width .1s linear}.monaco-progress-container.discrete.done .progress-bit{width:100%}.monaco-progress-container.infinite .progress-bit{animation-name:progress;animation-duration:4s;animation-iteration-count:infinite;animation-timing-function:linear;transform:translateZ(0)}@keyframes progress{0%{transform:translateX(0) scaleX(1)}50%{transform:translateX(2500%) scaleX(3)}to{transform:translateX(4900%) scaleX(1)}}\", \"\"])\n}, function(e, t, i) {\n    (e.exports = i(24)(!1)).push([e.i, '.quick-input-widget{position:absolute;width:600px;z-index:2000;padding:0 1px 1px;left:50%;margin-left:-300px}.quick-input-titlebar{display:flex;align-items:center}.quick-input-left-action-bar{display:flex;margin-left:4px;flex:1}.quick-input-title{padding:3px 0;text-align:center;text-overflow:ellipsis;overflow:hidden}.quick-input-right-action-bar{display:flex;margin-right:4px;flex:1}.quick-input-right-action-bar>.actions-container{justify-content:flex-end}.quick-input-titlebar .monaco-action-bar .action-label.codicon{background-position:50%;background-repeat:no-repeat;padding:2px}.quick-input-description{margin:6px}.quick-input-header .quick-input-description{margin:4px 2px}.quick-input-header{display:flex;padding:6px 6px 0;margin-bottom:-2px}.quick-input-widget.hidden-input .quick-input-header{padding:0;margin-bottom:0}.quick-input-and-message{display:flex;flex-direction:column;flex-grow:1;min-width:0;position:relative}.quick-input-check-all{align-self:center;margin:0}.quick-input-filter{flex-grow:1;display:flex;position:relative}.quick-input-box{flex-grow:1}.quick-input-widget.show-checkboxes .quick-input-box,.quick-input-widget.show-checkboxes .quick-input-message{margin-left:5px}.quick-input-visible-count{position:absolute;left:-10000px}.quick-input-count{align-self:center;position:absolute;right:4px;display:flex;align-items:center}.quick-input-count .monaco-count-badge{vertical-align:middle;padding:2px 4px;border-radius:2px;min-height:auto;line-height:normal}.quick-input-action{margin-left:6px}.quick-input-action .monaco-text-button{font-size:11px;padding:0 6px;display:flex;height:27.5px;align-items:center}.quick-input-message{margin-top:-1px;padding:5px 5px 2px;overflow-wrap:break-word}.quick-input-message>.codicon{margin:0 .2em;vertical-align:text-bottom}.quick-input-progress.monaco-progress-container{position:relative}.quick-input-progress.monaco-progress-container,.quick-input-progress.monaco-progress-container .progress-bit{height:2px}.quick-input-list{line-height:22px;margin-top:6px}.quick-input-widget.hidden-input .quick-input-list{margin-top:0}.quick-input-list .monaco-list{overflow:hidden;max-height:440px}.quick-input-list .quick-input-list-entry{box-sizing:border-box;overflow:hidden;display:flex;height:100%;padding:0 6px}.quick-input-list .quick-input-list-entry.quick-input-list-separator-border{border-top-width:1px;border-top-style:solid}.quick-input-list .monaco-list-row[data-index=\"0\"] .quick-input-list-entry.quick-input-list-separator-border{border-top-style:none}.quick-input-list .quick-input-list-label{overflow:hidden;display:flex;height:100%;flex:1}.quick-input-list .quick-input-list-checkbox{align-self:center;margin:0}.quick-input-list .quick-input-list-rows{overflow:hidden;text-overflow:ellipsis;display:flex;flex-direction:column;height:100%;flex:1;margin-left:5px}.quick-input-widget.show-checkboxes .quick-input-list .quick-input-list-rows{margin-left:10px}.quick-input-widget .quick-input-list .quick-input-list-checkbox{display:none}.quick-input-widget.show-checkboxes .quick-input-list .quick-input-list-checkbox{display:inline}.quick-input-list .quick-input-list-rows>.quick-input-list-row{display:flex;align-items:center}.quick-input-list .quick-input-list-rows>.quick-input-list-row .monaco-icon-label,.quick-input-list .quick-input-list-rows>.quick-input-list-row .monaco-icon-label .monaco-icon-label-container>.monaco-icon-name-container{flex:1}.quick-input-list .quick-input-list-rows>.quick-input-list-row .codicon[class*=codicon-]{vertical-align:text-bottom}.quick-input-list .quick-input-list-rows .monaco-highlighted-label span{opacity:1}.quick-input-list .quick-input-list-entry .quick-input-list-entry-keybinding{margin-right:8px}.quick-input-list .quick-input-list-label-meta{opacity:.7;line-height:normal;text-overflow:ellipsis;overflow:hidden}.quick-input-list .monaco-highlighted-label .highlight{font-weight:700}.quick-input-list .quick-input-list-entry .quick-input-list-separator{margin-right:8px}.quick-input-list .quick-input-list-entry-action-bar{display:flex;flex:0;overflow:visible}.quick-input-list .quick-input-list-entry-action-bar .action-label{display:none}.quick-input-list .quick-input-list-entry-action-bar .action-label.codicon{margin-right:4px;padding:0 2px 2px}.quick-input-list .quick-input-list-entry-action-bar{margin-top:1px;margin-right:4px}.quick-input-list .monaco-list-row.focused .quick-input-list-entry-action-bar .action-label,.quick-input-list .quick-input-list-entry .quick-input-list-entry-action-bar .action-label.always-visible,.quick-input-list .quick-input-list-entry:hover .quick-input-list-entry-action-bar .action-label{display:flex}.quick-input-list .monaco-list-row.focused .monaco-keybinding-key,.quick-input-list .monaco-list-row.focused .quick-input-list-entry .quick-input-list-separator{color:inherit}.quick-input-list .monaco-list-row.focused .monaco-keybinding-key{background:none}', \"\"])\n}, function(e, t, i) {\n    var n = i(453);\n    (n = \"string\" == typeof(n = n.__esModule ? n.default : n) ? [\n        [e.i, n, \"\"]\n    ] : n).locals && (e.exports = n.locals), (0, i(25).default)(\"7cbdc36e\", n, !0, {})\n}, function(e, t, i) {\n    (e.exports = i(24)(!1)).push([e.i, \".monaco-icon-label{display:flex;overflow:hidden;text-overflow:ellipsis}.monaco-icon-label:before{background-size:16px;background-position:0;background-repeat:no-repeat;padding-right:6px;width:16px;height:22px;line-height:inherit!important;display:inline-block;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;vertical-align:top;flex-shrink:0}.monaco-icon-label>.monaco-icon-label-container{min-width:0;overflow:hidden;text-overflow:ellipsis;flex:1}.monaco-icon-label>.monaco-icon-label-container>.monaco-icon-name-container>.label-name{color:inherit;white-space:pre}.monaco-icon-label>.monaco-icon-label-container>.monaco-icon-name-container>.label-name>.label-separator{margin:0 2px;opacity:.5}.monaco-icon-label>.monaco-icon-label-container>.monaco-icon-description-container>.label-description{opacity:.7;margin-left:.5em;font-size:.9em;white-space:pre}.monaco-icon-label.nowrap>.monaco-icon-label-container>.monaco-icon-description-container>.label-description{white-space:nowrap}.vs .monaco-icon-label>.monaco-icon-label-container>.monaco-icon-description-container>.label-description{opacity:.95}.monaco-icon-label.italic>.monaco-icon-label-container>.monaco-icon-description-container>.label-description,.monaco-icon-label.italic>.monaco-icon-label-container>.monaco-icon-name-container>.label-name{font-style:italic}.monaco-icon-label.deprecated{text-decoration:line-through;opacity:.66}.monaco-icon-label.italic:after{font-style:italic}.monaco-icon-label.strikethrough>.monaco-icon-label-container>.monaco-icon-description-container>.label-description,.monaco-icon-label.strikethrough>.monaco-icon-label-container>.monaco-icon-name-container>.label-name{text-decoration:line-through}.monaco-icon-label:after{opacity:.75;font-size:90%;font-weight:600;margin:auto 16px 0 5px;text-align:center}.monaco-list:focus .selected .monaco-icon-label,.monaco-list:focus .selected .monaco-icon-label:after{color:inherit!important}.monaco-list-row.focused.selected .label-description,.monaco-list-row.selected .label-description{opacity:.8}\", \"\"])\n}, function(e, t, i) {\n    var n = i(455);\n    (n = \"string\" == typeof(n = n.__esModule ? n.default : n) ? [\n        [e.i, n, \"\"]\n    ] : n).locals && (e.exports = n.locals), (0, i(25).default)(\"216f5d02\", n, !0, {})\n}, function(e, t, i) {\n    (e.exports = i(24)(!1)).push([e.i, \".monaco-keybinding{display:flex;align-items:center;line-height:10px}.monaco-keybinding>.monaco-keybinding-key{display:inline-block;border-style:solid;border-width:1px;border-radius:3px;vertical-align:middle;font-size:11px;padding:3px 5px;margin:0 2px}.monaco-keybinding>.monaco-keybinding-key:first-child{margin-left:0}.monaco-keybinding>.monaco-keybinding-key:last-child{margin-right:0}.monaco-keybinding>.monaco-keybinding-key-separator{display:inline-block}.monaco-keybinding>.monaco-keybinding-key-chord-separator{width:6px}\", \"\"])\n}, function(e, t) {\n    (function(t) {\n        e.exports = t\n    }).call(this, {})\n}, function(e, t, i) {\n    \"use strict\";\n    i(242)\n}, function(e, t, i) {\n    (e.exports = i(24)(!1)).push([e.i, \".main-input-view-plugin[data-v-d01c3192]{width:100%;height:calc(100% - 25px);position:fixed;top:25px;display:flex;flex-direction:column;align-items:center;justify-content:center;background-color:rgba(50,50,50,.6);color:#000;z-index:1000}.card-main[data-v-d01c3192]{border-radius:2px;background-color:#fff;display:flex;flex-direction:column;justify-content:space-around;max-width:390px}.card-content[data-v-d01c3192]{padding:15px 20px}.content-title[data-v-d01c3192]{font-size:1.2em;margin-bottom:15px}.content-hint[data-v-d01c3192]{font-size:.9em;margin-bottom:5px;margin-top:-5px;color:#179bbb}.content-item[data-v-d01c3192]{display:flex;margin:0 0 10px;align-items:baseline;flex-direction:column;justify-content:space-between}.item-key[data-v-d01c3192]{margin-bottom:5px;font-size:16px}.error-hint[data-v-d01c3192]{font-size:.9em;color:red}.card-btns[data-v-d01c3192]{margin-top:20px;display:flex;justify-content:space-around}.btn[data-v-d01c3192]{cursor:pointer;color:#fff;width:100px;height:40px;text-align:center;line-height:40px;border-radius:3px}.btn-cancel[data-v-d01c3192]{background-color:#676475}.btn-ok[data-v-d01c3192]{background-color:#3e3c4d}span[data-v-d01c3192]{color:red}textarea[data-v-d01c3192]{cursor:pointer;font-size:14px;outline:none;padding:10px 5px;border:1px solid #c6c6cf;width:350px;resize:none;font-family:inherit;max-height:200px;overflow-y:auto}\", \"\"])\n}, function(e, t, i) {\n    \"use strict\";\n    i(243)\n}, function(e, t, i) {\n    (e.exports = i(24)(!1)).push([e.i, \".main[data-v-23874bae]{width:100%;height:calc(100% - 25px);position:fixed;top:25px;display:flex;flex-direction:column;align-items:center;justify-content:center;background-color:rgba(50,50,50,.6);color:#000;z-index:10}.main [data-v-23874bae],.main[data-v-23874bae] *{user-select:text}.card-main[data-v-23874bae]{border-radius:2px;background-color:#fff;min-width:300px;display:flex;flex-direction:column;justify-content:space-around;box-shadow:0 0 10px 3px hsla(0,0%,5%,.164)}.card-content[data-v-23874bae]{padding:15px 20px}.content-title[data-v-23874bae]{font-size:20px;margin-bottom:15px}.content-item[data-v-23874bae]{border-top:1px solid rgba(50,50,50,.1);display:flex;height:55px;align-items:baseline;flex-direction:column;justify-content:center}.item-key[data-v-23874bae]{font-size:17px}.item-value[data-v-23874bae]{font-size:14px;color:rgba(40,44,52,.897)}\", \"\"])\n}, function(e, t, i) {\n    \"use strict\";\n    i(244)\n}, function(e, t, i) {\n    (e.exports = i(24)(!1)).push([e.i, \".main-alert-view-plugin[data-v-a49f7ad8]{width:100%;height:calc(100% - 25px);position:fixed;top:25px;display:flex;flex-direction:column;align-items:center;justify-content:center;background-color:rgba(50,50,50,.6);color:#000;z-index:10}.main-alert-view-plugin .card-main[data-v-a49f7ad8]{border-radius:2px;background-color:#fff;display:flex;flex-direction:column;justify-content:space-around;width:50%}.main-alert-view-plugin .card-main .card-content[data-v-a49f7ad8]{padding:15px 20px}.main-alert-view-plugin .card-main .card-content .content-title[data-v-a49f7ad8]{font-size:1.2em;margin-bottom:15px}.main-alert-view-plugin .card-main .card-content .content-content-light[data-v-a49f7ad8]{font-size:15px;text-overflow:inherit;word-wrap:break-word;max-height:200px;overflow-y:scroll}.main-alert-view-plugin .card-main .card-content .content-content-light[data-v-a49f7ad8]::-webkit-scrollbar{width:16px}.main-alert-view-plugin .card-main .card-content .content-content-light[data-v-a49f7ad8]::-webkit-scrollbar-thumb{background-color:#cac8c6;border-radius:100px;border:3px solid #fff}.main-alert-view-plugin .card-main .card-content .content-content-dark[data-v-a49f7ad8]{font-size:15px;text-overflow:inherit;word-wrap:break-word;max-height:200px;overflow-y:scroll}.main-alert-view-plugin .card-main .card-content .content-content-dark[data-v-a49f7ad8]::-webkit-scrollbar{width:16px}.main-alert-view-plugin .card-main .card-content .content-content-dark[data-v-a49f7ad8]::-webkit-scrollbar-thumb{background-color:#4d4d5a;border-radius:100px;border:3px solid #2c2a38}.main-alert-view-plugin .card-main .card-content .content-content-red[data-v-a49f7ad8]{font-size:15px;text-overflow:inherit;word-wrap:break-word;max-height:200px;overflow-y:scroll}.main-alert-view-plugin .card-main .card-content .content-content-red[data-v-a49f7ad8]::-webkit-scrollbar{width:16px}.main-alert-view-plugin .card-main .card-content .content-content-red[data-v-a49f7ad8]::-webkit-scrollbar-thumb{background-color:rgba(183,46,41,.643137);border-radius:100px;border:3px solid #f8b74f}.main-alert-view-plugin .card-main .card-content .content-content-2077[data-v-a49f7ad8]{font-size:15px;text-overflow:inherit;word-wrap:break-word;max-height:200px;overflow-y:scroll}.main-alert-view-plugin .card-main .card-content .content-content-2077[data-v-a49f7ad8]::-webkit-scrollbar{width:16px}.main-alert-view-plugin .card-main .card-content .content-content-2077[data-v-a49f7ad8]::-webkit-scrollbar-thumb{background-color:rgba(238,222,0,.796078);border-radius:100px;border:3px solid #136377}.main-alert-view-plugin .card-main .card-content .card-btns[data-v-a49f7ad8]{margin-top:20px;display:flex;justify-content:space-around}.main-alert-view-plugin .card-main .card-content .card-btns .btn[data-v-a49f7ad8]{cursor:pointer;color:#fff;width:100px;height:40px;text-align:center;line-height:40px;border-radius:3px}.main-alert-view-plugin .card-main .card-content .card-btns .btn-cancel[data-v-a49f7ad8]{background-color:#676475}.main-alert-view-plugin .card-main .card-content .card-btns .btn-ok[data-v-a49f7ad8]{background-color:#3e3c4d}\", \"\"])\n}, function(e, t, i) {\n    \"use strict\";\n    i(245)\n}, function(e, t, i) {\n    (e.exports = i(24)(!1)).push([e.i, \".main-select-view-plugin[data-v-309e2da2]{width:100%;height:calc(100% - 25px);position:fixed;top:25px;display:flex;flex-direction:column;align-items:center;justify-content:center;background-color:rgba(50,50,50,.6);color:#000;z-index:10}.main-select-view-plugin .card-main[data-v-309e2da2]{border-radius:2px;background-color:#fff;display:flex;flex-direction:column;justify-content:space-around;width:50%}.main-select-view-plugin .card-main .card-content[data-v-309e2da2]{padding:15px 20px}.main-select-view-plugin .card-main .card-content .content-title[data-v-309e2da2]{font-size:1.2em;margin-bottom:10px}.main-select-view-plugin .card-main .card-content .content-message[data-v-309e2da2]{margin:5px 0 10px;max-height:60vh;overflow-x:hidden;word-break:break-word;overflow-y:scroll}.main-select-view-plugin .card-main .card-content .content-message[data-v-309e2da2]::-webkit-scrollbar{width:16px}.main-select-view-plugin .card-main .card-content .content-message[data-v-309e2da2]::-webkit-scrollbar-thumb{background-color:#cac8c6;border-radius:100px;border:3px solid #fff}.main-select-view-plugin .card-main .card-content .btns[data-v-309e2da2]{display:flex;justify-content:flex-start;flex-wrap:wrap}.main-select-view-plugin .card-main .card-content .btns .btn[data-v-309e2da2]{border-radius:3px;text-align:center;height:35px;line-height:35px;flex-shrink:1;color:#fff;background-color:#3e3c4d;border-radius:5px;cursor:pointer;margin:5px}.main-select-view-plugin .card-main .card-content .btns .btn [data-v-309e2da2]:hover{cursor:pointer}.main-select-view-plugin .card-main .card-content .btns .btn span[data-v-309e2da2]{padding:0 10px}\", \"\"])\n}, function(e, t, i) {\n    \"use strict\";\n    i(246)\n}, function(e, t, i) {\n    (e.exports = i(24)(!1)).push([e.i, \".main-code-view-light[data-v-4bcad04a]{width:100%;height:calc(100% - 25px);position:fixed;top:25px;left:0;display:flex;flex-direction:column;justify-content:space-between;z-index:100}.main-code-view-light .editor[data-v-4bcad04a]{width:100%;height:100%;overflow:hidden}.main-code-view-light .error[data-v-4bcad04a]{position:absolute;bottom:20px;left:50%;transform:translateX(-50%);box-shadow:0 0 10px rgba(0,0,0,.3);padding:10px 12px;border-radius:10px;background-color:#fff;display:flex;align-items:center}.main-code-view-light .error div[data-v-4bcad04a]:first-child{color:red;font-weight:400;font-size:14px;flex-shrink:1;white-space:pre-wrap}.main-code-view-light .error div[data-v-4bcad04a]:last-child{height:26px;width:26px;padding:3px;margin-left:10px;flex-shrink:0}.main-code-view-light .error div[data-v-4bcad04a]:last-child:hover{background-color:hsla(0,0%,63%,.534);border-radius:3px}.main-code-view-light .btns[data-v-4bcad04a]{position:absolute;bottom:0;right:0;display:flex;flex-direction:column;z-index:100;color:#fff;margin-right:20px;margin-bottom:20px;color:#000;font-size:14px}.main-code-view-light .btns div[data-v-4bcad04a]{padding:5px 20px;color:#fff;border-radius:3px;box-shadow:0 0 10px rgba(0,0,0,.2)}.main-code-view-light .btns .abort-btn[data-v-4bcad04a]{margin-bottom:10px;background-color:#ea4079}.main-code-view-light .btns .save-btn[data-v-4bcad04a]{background-color:#41b883}.main-code-view-dark[data-v-4bcad04a]{width:100%;height:calc(100% - 25px);position:fixed;top:25px;left:0;display:flex;flex-direction:column;justify-content:space-between;z-index:100}.main-code-view-dark .editor[data-v-4bcad04a]{width:100%;height:100%;overflow:hidden}.main-code-view-dark .error[data-v-4bcad04a]{position:absolute;bottom:20px;left:50%;transform:translateX(-50%);box-shadow:0 0 10px rgba(0,0,0,.3);padding:10px 12px;border-radius:10px;background-color:#fff;display:flex;align-items:center}.main-code-view-dark .error div[data-v-4bcad04a]:first-child{color:red;font-weight:400;font-size:14px;flex-shrink:1;white-space:pre-wrap}.main-code-view-dark .error div[data-v-4bcad04a]:last-child{height:26px;width:26px;padding:3px;margin-left:10px;flex-shrink:0}.main-code-view-dark .error div[data-v-4bcad04a]:last-child:hover{background-color:hsla(0,0%,63%,.534);border-radius:3px}.main-code-view-dark .btns[data-v-4bcad04a]{position:absolute;bottom:0;right:0;display:flex;flex-direction:column;z-index:100;margin-right:20px;margin-bottom:20px;color:#fff;font-size:14px}.main-code-view-dark .btns div[data-v-4bcad04a]{padding:5px 20px;color:#fff;border-radius:3px;box-shadow:0 0 10px rgba(0,0,0,.2)}.main-code-view-dark .btns .abort-btn[data-v-4bcad04a]{margin-bottom:10px;background-color:#ea4079}.main-code-view-dark .btns .save-btn[data-v-4bcad04a]{background-color:#41b883}.main-code-view-red[data-v-4bcad04a]{width:100%;height:calc(100% - 25px);position:fixed;top:25px;left:0;display:flex;flex-direction:column;justify-content:space-between;z-index:100}.main-code-view-red .editor[data-v-4bcad04a]{width:100%;height:100%;overflow:hidden}.main-code-view-red .error[data-v-4bcad04a]{position:absolute;bottom:20px;left:50%;transform:translateX(-50%);box-shadow:0 0 10px rgba(0,0,0,.3);padding:10px 12px;border-radius:10px;background-color:#fff;display:flex;align-items:center}.main-code-view-red .error div[data-v-4bcad04a]:first-child{color:red;font-weight:400;font-size:14px;flex-shrink:1;white-space:pre-wrap}.main-code-view-red .error div[data-v-4bcad04a]:last-child{height:26px;width:26px;padding:3px;margin-left:10px;flex-shrink:0}.main-code-view-red .error div[data-v-4bcad04a]:last-child:hover{background-color:hsla(0,0%,63%,.534);border-radius:3px}.main-code-view-red .btns[data-v-4bcad04a]{position:absolute;bottom:0;right:0;display:flex;flex-direction:column;z-index:100;color:#fff;margin-right:20px;margin-bottom:20px;color:#d33928;font-size:14px}.main-code-view-red .btns div[data-v-4bcad04a]{padding:5px 20px;color:#fff;border-radius:3px;box-shadow:0 0 10px rgba(0,0,0,.2)}.main-code-view-red .btns .abort-btn[data-v-4bcad04a]{margin-bottom:10px;background-color:#ea4079}.main-code-view-red .btns .save-btn[data-v-4bcad04a]{background-color:#41b883}.main-code-view-2077[data-v-4bcad04a]{width:100%;height:calc(100% - 25px);position:fixed;top:25px;left:0;display:flex;flex-direction:column;justify-content:space-between;z-index:100}.main-code-view-2077 .editor[data-v-4bcad04a]{width:100%;height:100%;overflow:hidden}.main-code-view-2077 .error[data-v-4bcad04a]{position:absolute;bottom:20px;left:50%;transform:translateX(-50%);box-shadow:0 0 10px rgba(0,0,0,.3);padding:10px 12px;border-radius:10px;background-color:#fff;display:flex;align-items:center}.main-code-view-2077 .error div[data-v-4bcad04a]:first-child{color:red;font-weight:400;font-size:14px;flex-shrink:1;white-space:pre-wrap}.main-code-view-2077 .error div[data-v-4bcad04a]:last-child{height:26px;width:26px;padding:3px;margin-left:10px;flex-shrink:0}.main-code-view-2077 .error div[data-v-4bcad04a]:last-child:hover{background-color:hsla(0,0%,63%,.534);border-radius:3px}.main-code-view-2077 .btns[data-v-4bcad04a]{position:absolute;bottom:0;right:0;display:flex;flex-direction:column;z-index:100;color:#fff;margin-right:20px;margin-bottom:20px;color:#fcec0c;font-size:14px}.main-code-view-2077 .btns div[data-v-4bcad04a]{padding:5px 20px;color:#fff;border-radius:3px;box-shadow:0 0 10px rgba(0,0,0,.2)}.main-code-view-2077 .btns .abort-btn[data-v-4bcad04a]{margin-bottom:10px;background-color:#ea4079}.main-code-view-2077 .btns .save-btn[data-v-4bcad04a]{background-color:#41b883}.error-hint[data-v-4bcad04a]{background-color:red}\", \"\"])\n}, function(e, t, i) {\n    \"use strict\";\n    i(247)\n}, function(e, t, i) {\n    (e.exports = i(24)(!1)).push([e.i, \".main-menu-view-plugin[data-v-3d907f50]{width:100%;height:calc(100% - 25px);position:fixed;top:25px;display:flex;flex-direction:column;align-items:center;justify-content:center;background-color:hsla(0,0%,100%,0);color:#000;z-index:100}.main-menu-view-plugin .card-main[data-v-3d907f50]{border-radius:2px;background-color:#414141;display:flex;flex-direction:column;justify-content:space-around;width:fit-content}.main-menu-view-plugin .card-main .card-content[data-v-3d907f50]{position:fixed;background-color:#4e4e4e;overflow-y:scroll;font-weight:400;box-shadow:2px 2px 8px 2px rgba(0,0,0,.2);padding:5px 0;font-size:13px;border-radius:5px}.main-menu-view-plugin .card-main .card-content[data-v-3d907f50]::-webkit-scrollbar{display:none}.main-menu-view-plugin .card-main .card-content .item[data-v-3d907f50]{margin:2px 5px;padding:5px 10px;border-radius:3px;color:#fff;display:flex;align-items:center;justify-content:flex-start;min-width:150px}.main-menu-view-plugin .card-main .card-content .item[data-v-3d907f50]:hover{background-color:#302a2a}.main-menu-view-plugin .card-main .card-content .item svg[data-v-3d907f50]{width:15px;height:15px;fill:#fff;margin-right:15px}.main-menu-view-plugin .card-main .card-content .item div[data-v-3d907f50]{flex:1;white-space:nowrap}.main-menu-view-plugin .card-main .card-content .indicator[data-v-3d907f50]{position:sticky;bottom:-5px;left:0;width:100%;height:30px;display:flex;align-items:center;justify-content:center;background-color:#4e4e4e}\", \"\"])\n}, function(e, t) {\n    e.exports = require(\"vue-electron\")\n}, , function(e, t, i) {\n    \"use strict\";\n    i.r(t);\n    var n = {};\n    i.r(n), i.d(n, \"install\", (function() {\n        return O\n    }));\n    var r = {};\n    i.r(r), i.d(r, \"install\", (function() {\n        return R\n    }));\n    var o = {};\n    i.r(o), i.d(o, \"install\", (function() {\n        return K\n    }));\n    var s = i(10),\n        a = i.n(s),\n        l = i(18),\n        d = i.n(l),\n        c = i(3),\n        h = i.n(c),\n        u = i(88),\n        p = i(12),\n        g = {\n            name: \"Clash\"\n        },\n        f = (i(257), i(30)),\n        m = Object(f.a)(g, (function() {\n            var e = this.$createElement;\n            return (e = this._self._c || e)(\"div\", {\n                attrs: {\n                    id: \"app\"\n                }\n            }, [e(\"router-view\")], 1)\n        }), [], !1, null, null, null).exports,\n        v = i(176),\n        b = i.n(v);\n    u.a.use(b.a);\n    var _ = new b.a({\n            routes: [{\n                path: \"/home\",\n                name: \"landing-page\",\n                component: i(474).default,\n                children: [{\n                    path: \"general\",\n                    component: i(475).default,\n                    meta: {\n                        keepAlive: !0\n                    }\n                }, {\n                    path: \"proxy\",\n                    component: i(477).default,\n                    meta: {\n                        keepAlive: !0\n                    }\n                }, {\n                    path: \"provider\",\n                    component: i(478).default,\n                    meta: {\n                        keepAlive: !0\n                    }\n                }, {\n                    path: \"log\",\n                    component: i(480).default\n                }, {\n                    path: \"server\",\n                    component: i(473).default,\n                    meta: {\n                        keepAlive: !0\n                    }\n                }, {\n                    path: \"connection\",\n                    component: i(481).default,\n                    meta: {\n                        keepAlive: !0\n                    }\n                }, {\n                    path: \"router\",\n                    component: i(476).default,\n                    meta: {\n                        keepAlive: !0\n                    }\n                }, {\n                    path: \"setting\",\n                    component: i(472).default,\n                    meta: {\n                        keepAlive: !0\n                    }\n                }, {\n                    path: \"about\",\n                    component: i(479).default,\n                    meta: {\n                        keepAlive: !0\n                    }\n                }]\n            }, {\n                path: \"*\",\n                redirect: \"/home/general\"\n            }],\n            saveScrollPosition: !0\n        }),\n        w = i(42),\n        y = i(16),\n        C = i(12),\n        x = y.readdirSync(C.join(__static, \"svg\")),\n        S = /(?:\\ud83d\\udc68\\ud83c\\udffb\\u200d\\ud83e\\udd1d\\u200d\\ud83d\\udc68\\ud83c[\\udffc-\\udfff]|\\ud83d\\udc68\\ud83c\\udffc\\u200d\\ud83e\\udd1d\\u200d\\ud83d\\udc68\\ud83c[\\udffb\\udffd-\\udfff]|\\ud83d\\udc68\\ud83c\\udffd\\u200d\\ud83e\\udd1d\\u200d\\ud83d\\udc68\\ud83c[\\udffb\\udffc\\udffe\\udfff]|\\ud83d\\udc68\\ud83c\\udffe\\u200d\\ud83e\\udd1d\\u200d\\ud83d\\udc68\\ud83c[\\udffb-\\udffd\\udfff]|\\ud83d\\udc68\\ud83c\\udfff\\u200d\\ud83e\\udd1d\\u200d\\ud83d\\udc68\\ud83c[\\udffb-\\udffe]|\\ud83d\\udc69\\ud83c\\udffb\\u200d\\ud83e\\udd1d\\u200d\\ud83d\\udc68\\ud83c[\\udffc-\\udfff]|\\ud83d\\udc69\\ud83c\\udffb\\u200d\\ud83e\\udd1d\\u200d\\ud83d\\udc69\\ud83c[\\udffc-\\udfff]|\\ud83d\\udc69\\ud83c\\udffc\\u200d\\ud83e\\udd1d\\u200d\\ud83d\\udc68\\ud83c[\\udffb\\udffd-\\udfff]|\\ud83d\\udc69\\ud83c\\udffc\\u200d\\ud83e\\udd1d\\u200d\\ud83d\\udc69\\ud83c[\\udffb\\udffd-\\udfff]|\\ud83d\\udc69\\ud83c\\udffd\\u200d\\ud83e\\udd1d\\u200d\\ud83d\\udc68\\ud83c[\\udffb\\udffc\\udffe\\udfff]|\\ud83d\\udc69\\ud83c\\udffd\\u200d\\ud83e\\udd1d\\u200d\\ud83d\\udc69\\ud83c[\\udffb\\udffc\\udffe\\udfff]|\\ud83d\\udc69\\ud83c\\udffe\\u200d\\ud83e\\udd1d\\u200d\\ud83d\\udc68\\ud83c[\\udffb-\\udffd\\udfff]|\\ud83d\\udc69\\ud83c\\udffe\\u200d\\ud83e\\udd1d\\u200d\\ud83d\\udc69\\ud83c[\\udffb-\\udffd\\udfff]|\\ud83d\\udc69\\ud83c\\udfff\\u200d\\ud83e\\udd1d\\u200d\\ud83d\\udc68\\ud83c[\\udffb-\\udffe]|\\ud83d\\udc69\\ud83c\\udfff\\u200d\\ud83e\\udd1d\\u200d\\ud83d\\udc69\\ud83c[\\udffb-\\udffe]|\\ud83e\\uddd1\\ud83c\\udffb\\u200d\\ud83e\\udd1d\\u200d\\ud83e\\uddd1\\ud83c[\\udffb-\\udfff]|\\ud83e\\uddd1\\ud83c\\udffc\\u200d\\ud83e\\udd1d\\u200d\\ud83e\\uddd1\\ud83c[\\udffb-\\udfff]|\\ud83e\\uddd1\\ud83c\\udffd\\u200d\\ud83e\\udd1d\\u200d\\ud83e\\uddd1\\ud83c[\\udffb-\\udfff]|\\ud83e\\uddd1\\ud83c\\udffe\\u200d\\ud83e\\udd1d\\u200d\\ud83e\\uddd1\\ud83c[\\udffb-\\udfff]|\\ud83e\\uddd1\\ud83c\\udfff\\u200d\\ud83e\\udd1d\\u200d\\ud83e\\uddd1\\ud83c[\\udffb-\\udfff]|\\ud83e\\uddd1\\u200d\\ud83e\\udd1d\\u200d\\ud83e\\uddd1|\\ud83d\\udc6b\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc6c\\ud83c[\\udffb-\\udfff]|\\ud83d\\udc6d\\ud83c[\\udffb-\\udfff]|\\ud83d[\\udc6b-\\udc6d])|(?:\\ud83d[\\udc68\\udc69]|\\ud83e\\uddd1)(?:\\ud83c[\\udffb-\\udfff])?\\u200d(?:\\u2695\\ufe0f|\\u2696\\ufe0f|\\u2708\\ufe0f|\\ud83c[\\udf3e\\udf73\\udf93\\udfa4\\udfa8\\udfeb\\udfed]|\\ud83d[\\udcbb\\udcbc\\udd27\\udd2c\\ude80\\ude92]|\\ud83e[\\uddaf-\\uddb3\\uddbc\\uddbd])|(?:\\ud83c[\\udfcb\\udfcc]|\\ud83d[\\udd74\\udd75]|\\u26f9)((?:\\ud83c[\\udffb-\\udfff]|\\ufe0f)\\u200d[\\u2640\\u2642]\\ufe0f)|(?:\\ud83c[\\udfc3\\udfc4\\udfca]|\\ud83d[\\udc6e\\udc71\\udc73\\udc77\\udc81\\udc82\\udc86\\udc87\\ude45-\\ude47\\ude4b\\ude4d\\ude4e\\udea3\\udeb4-\\udeb6]|\\ud83e[\\udd26\\udd35\\udd37-\\udd39\\udd3d\\udd3e\\uddb8\\uddb9\\uddcd-\\uddcf\\uddd6-\\udddd])(?:\\ud83c[\\udffb-\\udfff])?\\u200d[\\u2640\\u2642]\\ufe0f|(?:\\ud83d\\udc68\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc8b\\u200d\\ud83d\\udc68|\\ud83d\\udc68\\u200d\\ud83d\\udc68\\u200d\\ud83d\\udc66\\u200d\\ud83d\\udc66|\\ud83d\\udc68\\u200d\\ud83d\\udc68\\u200d\\ud83d\\udc67\\u200d\\ud83d[\\udc66\\udc67]|\\ud83d\\udc68\\u200d\\ud83d\\udc69\\u200d\\ud83d\\udc66\\u200d\\ud83d\\udc66|\\ud83d\\udc68\\u200d\\ud83d\\udc69\\u200d\\ud83d\\udc67\\u200d\\ud83d[\\udc66\\udc67]|\\ud83d\\udc69\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc8b\\u200d\\ud83d[\\udc68\\udc69]|\\ud83d\\udc69\\u200d\\ud83d\\udc69\\u200d\\ud83d\\udc66\\u200d\\ud83d\\udc66|\\ud83d\\udc69\\u200d\\ud83d\\udc69\\u200d\\ud83d\\udc67\\u200d\\ud83d[\\udc66\\udc67]|\\ud83d\\udc68\\u200d\\u2764\\ufe0f\\u200d\\ud83d\\udc68|\\ud83d\\udc68\\u200d\\ud83d\\udc66\\u200d\\ud83d\\udc66|\\ud83d\\udc68\\u200d\\ud83d\\udc67\\u200d\\ud83d[\\udc66\\udc67]|\\ud83d\\udc68\\u200d\\ud83d\\udc68\\u200d\\ud83d[\\udc66\\udc67]|\\ud83d\\udc68\\u200d\\ud83d\\udc69\\u200d\\ud83d[\\udc66\\udc67]|\\ud83d\\udc69\\u200d\\u2764\\ufe0f\\u200d\\ud83d[\\udc68\\udc69]|\\ud83d\\udc69\\u200d\\ud83d\\udc66\\u200d\\ud83d\\udc66|\\ud83d\\udc69\\u200d\\ud83d\\udc67\\u200d\\ud83d[\\udc66\\udc67]|\\ud83d\\udc69\\u200d\\ud83d\\udc69\\u200d\\ud83d[\\udc66\\udc67]|\\ud83c\\udff3\\ufe0f\\u200d\\u26a7\\ufe0f|\\ud83c\\udff3\\ufe0f\\u200d\\ud83c\\udf08|\\ud83c\\udff4\\u200d\\u2620\\ufe0f|\\ud83d\\udc15\\u200d\\ud83e\\uddba|\\ud83d\\udc41\\u200d\\ud83d\\udde8|\\ud83d\\udc68\\u200d\\ud83d[\\udc66\\udc67]|\\ud83d\\udc69\\u200d\\ud83d[\\udc66\\udc67]|\\ud83d\\udc6f\\u200d\\u2640\\ufe0f|\\ud83d\\udc6f\\u200d\\u2642\\ufe0f|\\ud83e\\udd3c\\u200d\\u2640\\ufe0f|\\ud83e\\udd3c\\u200d\\u2642\\ufe0f|\\ud83e\\uddde\\u200d\\u2640\\ufe0f|\\ud83e\\uddde\\u200d\\u2642\\ufe0f|\\ud83e\\udddf\\u200d\\u2640\\ufe0f|\\ud83e\\udddf\\u200d\\u2642\\ufe0f)|[#*0-9]\\ufe0f?\\u20e3|(?:[©®\\u2122\\u265f]\\ufe0f)|(?:\\ud83c[\\udc04\\udd70\\udd71\\udd7e\\udd7f\\ude02\\ude1a\\ude2f\\ude37\\udf21\\udf24-\\udf2c\\udf36\\udf7d\\udf96\\udf97\\udf99-\\udf9b\\udf9e\\udf9f\\udfcd\\udfce\\udfd4-\\udfdf\\udff3\\udff5\\udff7]|\\ud83d[\\udc3f\\udc41\\udcfd\\udd49\\udd4a\\udd6f\\udd70\\udd73\\udd76-\\udd79\\udd87\\udd8a-\\udd8d\\udda5\\udda8\\uddb1\\uddb2\\uddbc\\uddc2-\\uddc4\\uddd1-\\uddd3\\udddc-\\uddde\\udde1\\udde3\\udde8\\uddef\\uddf3\\uddfa\\udecb\\udecd-\\udecf\\udee0-\\udee5\\udee9\\udef0\\udef3]|[\\u203c\\u2049\\u2139\\u2194-\\u2199\\u21a9\\u21aa\\u231a\\u231b\\u2328\\u23cf\\u23ed-\\u23ef\\u23f1\\u23f2\\u23f8-\\u23fa\\u24c2\\u25aa\\u25ab\\u25b6\\u25c0\\u25fb-\\u25fe\\u2600-\\u2604\\u260e\\u2611\\u2614\\u2615\\u2618\\u2620\\u2622\\u2623\\u2626\\u262a\\u262e\\u262f\\u2638-\\u263a\\u2640\\u2642\\u2648-\\u2653\\u2660\\u2663\\u2665\\u2666\\u2668\\u267b\\u267f\\u2692-\\u2697\\u2699\\u269b\\u269c\\u26a0\\u26a1\\u26a7\\u26aa\\u26ab\\u26b0\\u26b1\\u26bd\\u26be\\u26c4\\u26c5\\u26c8\\u26cf\\u26d1\\u26d3\\u26d4\\u26e9\\u26ea\\u26f0-\\u26f5\\u26f8\\u26fa\\u26fd\\u2702\\u2708\\u2709\\u270f\\u2712\\u2714\\u2716\\u271d\\u2721\\u2733\\u2734\\u2744\\u2747\\u2757\\u2763\\u2764\\u27a1\\u2934\\u2935\\u2b05-\\u2b07\\u2b1b\\u2b1c\\u2b50\\u2b55\\u3030\\u303d\\u3297\\u3299])(?:\\ufe0f|(?!\\ufe0e))|(?:(?:\\ud83c[\\udfcb\\udfcc]|\\ud83d[\\udd74\\udd75\\udd90]|[\\u261d\\u26f7\\u26f9\\u270c\\u270d])(?:\\ufe0f|(?!\\ufe0e))|(?:\\ud83c[\\udf85\\udfc2-\\udfc4\\udfc7\\udfca]|\\ud83d[\\udc42\\udc43\\udc46-\\udc50\\udc66-\\udc69\\udc6e\\udc70-\\udc78\\udc7c\\udc81-\\udc83\\udc85-\\udc87\\udcaa\\udd7a\\udd95\\udd96\\ude45-\\ude47\\ude4b-\\ude4f\\udea3\\udeb4-\\udeb6\\udec0\\udecc]|\\ud83e[\\udd0f\\udd18-\\udd1c\\udd1e\\udd1f\\udd26\\udd30-\\udd39\\udd3d\\udd3e\\uddb5\\uddb6\\uddb8\\uddb9\\uddbb\\uddcd-\\uddcf\\uddd1-\\udddd]|[\\u270a\\u270b]))(?:\\ud83c[\\udffb-\\udfff])?|(?:\\ud83c\\udff4\\udb40\\udc67\\udb40\\udc62\\udb40\\udc65\\udb40\\udc6e\\udb40\\udc67\\udb40\\udc7f|\\ud83c\\udff4\\udb40\\udc67\\udb40\\udc62\\udb40\\udc73\\udb40\\udc63\\udb40\\udc74\\udb40\\udc7f|\\ud83c\\udff4\\udb40\\udc67\\udb40\\udc62\\udb40\\udc77\\udb40\\udc6c\\udb40\\udc73\\udb40\\udc7f|\\ud83c\\udde6\\ud83c[\\udde8-\\uddec\\uddee\\uddf1\\uddf2\\uddf4\\uddf6-\\uddfa\\uddfc\\uddfd\\uddff]|\\ud83c\\udde7\\ud83c[\\udde6\\udde7\\udde9-\\uddef\\uddf1-\\uddf4\\uddf6-\\uddf9\\uddfb\\uddfc\\uddfe\\uddff]|\\ud83c\\udde8\\ud83c[\\udde6\\udde8\\udde9\\uddeb-\\uddee\\uddf0-\\uddf5\\uddf7\\uddfa-\\uddff]|\\ud83c\\udde9\\ud83c[\\uddea\\uddec\\uddef\\uddf0\\uddf2\\uddf4\\uddff]|\\ud83c\\uddea\\ud83c[\\udde6\\udde8\\uddea\\uddec\\udded\\uddf7-\\uddfa]|\\ud83c\\uddeb\\ud83c[\\uddee-\\uddf0\\uddf2\\uddf4\\uddf7]|\\ud83c\\uddec\\ud83c[\\udde6\\udde7\\udde9-\\uddee\\uddf1-\\uddf3\\uddf5-\\uddfa\\uddfc\\uddfe]|\\ud83c\\udded\\ud83c[\\uddf0\\uddf2\\uddf3\\uddf7\\uddf9\\uddfa]|\\ud83c\\uddee\\ud83c[\\udde8-\\uddea\\uddf1-\\uddf4\\uddf6-\\uddf9]|\\ud83c\\uddef\\ud83c[\\uddea\\uddf2\\uddf4\\uddf5]|\\ud83c\\uddf0\\ud83c[\\uddea\\uddec-\\uddee\\uddf2\\uddf3\\uddf5\\uddf7\\uddfc\\uddfe\\uddff]|\\ud83c\\uddf1\\ud83c[\\udde6-\\udde8\\uddee\\uddf0\\uddf7-\\uddfb\\uddfe]|\\ud83c\\uddf2\\ud83c[\\udde6\\udde8-\\udded\\uddf0-\\uddff]|\\ud83c\\uddf3\\ud83c[\\udde6\\udde8\\uddea-\\uddec\\uddee\\uddf1\\uddf4\\uddf5\\uddf7\\uddfa\\uddff]|\\ud83c\\uddf4\\ud83c\\uddf2|\\ud83c\\uddf5\\ud83c[\\udde6\\uddea-\\udded\\uddf0-\\uddf3\\uddf7-\\uddf9\\uddfc\\uddfe]|\\ud83c\\uddf6\\ud83c\\udde6|\\ud83c\\uddf7\\ud83c[\\uddea\\uddf4\\uddf8\\uddfa\\uddfc]|\\ud83c\\uddf8\\ud83c[\\udde6-\\uddea\\uddec-\\uddf4\\uddf7-\\uddf9\\uddfb\\uddfd-\\uddff]|\\ud83c\\uddf9\\ud83c[\\udde6\\udde8\\udde9\\uddeb-\\udded\\uddef-\\uddf4\\uddf7\\uddf9\\uddfb\\uddfc\\uddff]|\\ud83c\\uddfa\\ud83c[\\udde6\\uddec\\uddf2\\uddf3\\uddf8\\uddfe\\uddff]|\\ud83c\\uddfb\\ud83c[\\udde6\\udde8\\uddea\\uddec\\uddee\\uddf3\\uddfa]|\\ud83c\\uddfc\\ud83c[\\uddeb\\uddf8]|\\ud83c\\uddfd\\ud83c\\uddf0|\\ud83c\\uddfe\\ud83c[\\uddea\\uddf9]|\\ud83c\\uddff\\ud83c[\\udde6\\uddf2\\uddfc]|\\ud83c[\\udccf\\udd8e\\udd91-\\udd9a\\udde6-\\uddff\\ude01\\ude32-\\ude36\\ude38-\\ude3a\\ude50\\ude51\\udf00-\\udf20\\udf2d-\\udf35\\udf37-\\udf7c\\udf7e-\\udf84\\udf86-\\udf93\\udfa0-\\udfc1\\udfc5\\udfc6\\udfc8\\udfc9\\udfcf-\\udfd3\\udfe0-\\udff0\\udff4\\udff8-\\udfff]|\\ud83d[\\udc00-\\udc3e\\udc40\\udc44\\udc45\\udc51-\\udc65\\udc6a\\udc6f\\udc79-\\udc7b\\udc7d-\\udc80\\udc84\\udc88-\\udca9\\udcab-\\udcfc\\udcff-\\udd3d\\udd4b-\\udd4e\\udd50-\\udd67\\udda4\\uddfb-\\ude44\\ude48-\\ude4a\\ude80-\\udea2\\udea4-\\udeb3\\udeb7-\\udebf\\udec1-\\udec5\\uded0-\\uded2\\uded5\\udeeb\\udeec\\udef4-\\udefa\\udfe0-\\udfeb]|\\ud83e[\\udd0d\\udd0e\\udd10-\\udd17\\udd1d\\udd20-\\udd25\\udd27-\\udd2f\\udd3a\\udd3c\\udd3f-\\udd45\\udd47-\\udd71\\udd73-\\udd76\\udd7a-\\udda2\\udda5-\\uddaa\\uddae-\\uddb4\\uddb7\\uddba\\uddbc-\\uddca\\uddd0\\uddde-\\uddff\\ude70-\\ude73\\ude78-\\ude7a\\ude80-\\ude82\\ude90-\\ude95]|[\\u23e9-\\u23ec\\u23f0\\u23f3\\u267e\\u26ce\\u2705\\u2728\\u274c\\u274e\\u2753-\\u2755\\u2795-\\u2797\\u27b0\\u27bf\\ue50a])|\\ufe0f/g,\n        k = /\\uFE0F/g,\n        L = String.fromCharCode(8205);\n\n    function O(e, t) {\n        var i = t.store;\n        e.prototype.$parseEmoji = function(e) {\n            var t = i.state.app.settings.useSystemEmoji;\n            return void 0 !== t && t ? e : (e = e.replace(S, (function(e) {\n                var t = function(e) {\n                    return function(e, t) {\n                        for (var i = [], n = 0, r = 0, o = 0; o < e.length;) n = e.charCodeAt(o++), r ? (i.push((65536 + (r - 55296 << 10) + (n - 56320)).toString(16)), r = 0) : 55296 <= n && n <= 56319 ? r = n : i.push(n.toString(16));\n                        return i.join(\"-\")\n                    }(e.indexOf(L) < 0 ? e.replace(k, \"\") : e)\n                }(e);\n                return -1 < x.indexOf(\"\".concat(t, \".svg\")) ? '<img src=\"static/svg/'.concat(t, '.svg\" style=\"height: 1em;vertical-align: -0.15em;\"/>') : e\n            })), '<span style=\"cursor: inherit; word-break: break-all;\">'.concat(e, \"</span>\"))\n        }, e.prototype.$removeEmoji = function(e) {\n            return e.replace(S, \"\")\n        }\n    }\n    var E = i(48),\n        N = (i(69), i(45)),\n        D = i(169),\n        I = i(19),\n        T = i(153),\n        M = i(77),\n        P = i(12),\n        A = \"127.0.0.1\";\n\n    function R(e, t) {\n        var i, n = t.store;\n        e.prototype.$setSystemProxy = (i = a()(h.a.mark((function e(t) {\n            var i, r, o, s, a, l, d, c, u, p, g, f;\n            return h.a.wrap((function(e) {\n                for (;;) switch (e.prev = e.next) {\n                    case 0:\n                        if (r = n.state.app.settings, l = r.bypassText, a = r.staticSystemProxyHost, i = void 0 === a ? A : a, r = [], l) try {\n                            o = N.parse(l), s = o.bypass, r = (void 0 === s ? [] : s) || []\n                        } catch (e) {} else r = D.a;\n                        if (e.prev = 4, a = !1, Object(I.i)()) return l = n.getters.mixedPort, l = t ? [\"-http\", \"\".concat(i || A, \":\").concat(l), \"-https\", \"\".concat(i || A, \":\").concat(l), \"-socks\", \"\".concat(i || A, \":\").concat(l)] : [\"-stop\"], e.next = 11, Object(T.a)(l);\n                        e.next = 21;\n                        break;\n                    case 11:\n                        if (e.sent.success) return e.next = 16, Object(T.a)([\"-bypass\", r.join(\",\")]);\n                        e.next = 19;\n                        break;\n                    case 16:\n                        e.sent.success && (a = !0, n.commit(\"CHANGE_STATUS\", {\n                            status: t ? E.b.SYSTEM_PROXY : E.b.DEFAULT\n                        }));\n                    case 19:\n                        e.next = 42;\n                        break;\n                    case 21:\n                        if (!Object(I.j)()) {\n                            e.next = 42;\n                            break\n                        }\n                        if (g = n.state.app.settings, p = g.systemProxyTypeIndex, d = void 0 === p ? 0 : p, f = g.specifyHttpProxyProtocol, c = void 0 !== f && f, u = n.getters.mixedPort, p = P.join(n.getters.filesPath, \"win\", \"common\"), g = [\"set\", \"1\"], !t) {\n                            e.next = 40;\n                            break\n                        }\n                        if (0 !== d) {\n                            e.next = 32;\n                            break\n                        }(g = [\"global\", \"\".concat(c ? \"http://\" : \"\").concat(i || A, \":\").concat(u)]).push(r.join(\";\")), e.next = 40;\n                        break;\n                    case 32:\n                        e.prev = 32, f = \"http://\".concat(i || A, \":\").concat(n.state.app.innerServerPort, \"/pac?t=\").concat((new Date).getTime()), g = [\"pac\", f], e.next = 40;\n                        break;\n                    case 37:\n                        return e.prev = 37, e.t0 = e.catch(32), e.abrupt(\"return\", !1);\n                    case 40:\n                        0 === M.spawnSync(\"sysproxy.exe\", g, {\n                            cwd: p,\n                            windowsHide: !0\n                        }).status && (a = !0, n.commit(\"CHANGE_STATUS\", {\n                            status: t ? E.b.SYSTEM_PROXY : E.b.DEFAULT\n                        }));\n                    case 42:\n                        return e.abrupt(\"return\", a);\n                    case 45:\n                        e.prev = 45, e.t1 = e.catch(4), console.error(e.t1.stack);\n                    case 48:\n                        return e.abrupt(\"return\", !1);\n                    case 49:\n                    case \"end\":\n                        return e.stop()\n                }\n            }), e, null, [\n                [4, 45],\n                [32, 37]\n            ])\n        }))), function(e) {\n            return i.apply(this, arguments)\n        }), e.prototype.$getSystemProxyStatus = function() {\n            var e = !1;\n            if (Object(I.i)()) {\n                var t = n.state.app.clashPath,\n                    i = (t = (i = M.spawnSync(\"./sysproxy\", [\"-show\"], {\n                        cwd: t,\n                        windowsHide: !0\n                    })).error, i.output);\n                return !t && (i && (r = i.toString(), /socks=/.test(r) && (e = !0)), n.commit(\"CHANGE_STATUS\", {\n                    status: e ? E.b.SYSTEM_PROXY : E.b.DEFAULT\n                }), e)\n            }\n            var r = P.join(n.getters.filesPath, \"win\", \"common\");\n            return (r = M.spawnSync(\"sysproxy.exe\", [\"query\"], {\n                cwd: r,\n                windowsHide: !0\n            })).error && (e = !1), 0 === r.status && r.stdout && (e = 51 === r.stdout[0] || 53 === r.stdout[0]), n.commit(\"CHANGE_STATUS\", {\n                status: e ? E.b.SYSTEM_PROXY : E.b.DEFAULT\n            }), e\n        }, e.prototype.$getTrayIcon = function(e) {\n            var t = void 0 === (o = (i = n.state.app).clashPath) ? \"\" : o,\n                i = (o = void 0 === (r = i.settings) ? {} : r).iconSystemProxy,\n                r = o.iconDefault,\n                o = [P.join(__static, \"tray_normal.ico\"), P.join(__static, \"tray_reverse.ico\")];\n            return r && (o[0] = P.isAbsolute(r) ? r : P.join(t, r)), i && (o[1] = P.isAbsolute(i) ? i : P.join(t, i)), o[e]\n        }\n    }\n    var F = i(52),\n        j = i.n(F),\n        B = i(105),\n        V = i.n(B),\n        W = i(22),\n        z = i(16);\n\n    function H(e) {\n        return U.apply(this, arguments)\n    }\n\n    function U() {\n        return (U = a()(h.a.mark((function e(t) {\n            var i, n, r, o;\n            return h.a.wrap((function(e) {\n                for (;;) switch (e.prev = e.next) {\n                    case 0:\n                        if (Object(I.h)()) return e.next = 3, Promise.all([\n                            [\"getVersion\"],\n                            [\"getPath\", \"exe\"],\n                            [\"getPath\", \"home\"]\n                        ].map((function(e) {\n                            return W.ipcRenderer.invoke.apply(W.ipcRenderer, [\"app\"].concat(j()(e)))\n                        })));\n                        e.next = 14;\n                        break;\n                    case 3:\n                        r = e.sent, n = V()(r, 3), i = n[0], o = n[1], r = n[2], n = Object(p.join)(r, \".config\", \"autostart\"), r = Object(p.join)(n, \"cfw.desktop\"), o = \"[Desktop Entry]\\n    Type=Application\\n    Version=\".concat(i, \"\\n    Name=Clash for Windows\\n    Comment=Clash for Windows startup script\\n    Exec=\").concat(o, \"\\n    StartupNotify=false\\n    Terminal=false\"), t ? (Object(z.existsSync)(n) || Object(z.mkdirSync)(n), Object(z.writeFileSync)(r, o)) : Object(z.existsSync)(r) && Object(z.unlinkSync)(r), e.next = 16;\n                        break;\n                    case 14:\n                        return e.next = 16, W.ipcRenderer.invoke(\"app\", \"setLoginItemSettings\", {\n                            openAtLogin: t\n                        });\n                    case 16:\n                    case \"end\":\n                        return e.stop()\n                }\n            }), e)\n        })))).apply(this, arguments)\n    }\n\n    function K(e) {\n        e.prototype.$setAutoLaunch = H\n    }\n    i(103);\n    var $ = i(32),\n        q = i(4),\n        G = i(6),\n        Y = i(20),\n        Z = i(21),\n        X = i(28),\n        Q = i(68),\n        J = i(8),\n        ee = i(5),\n        te = i(36),\n        ie = i(89),\n        ne = i(44),\n        re = i(76),\n        oe = i(7),\n        se = i(23);\n    class ae {\n        constructor(e) {\n            this._editor = e, this._decorations = [], this._overviewRulerApproximateDecorations = [], this._findScopeDecorationIds = [], this._rangeHighlightDecorationId = null, this._highlightedDecorationId = null, this._startPosition = this._editor.getPosition()\n        }\n        dispose() {\n            this._editor.deltaDecorations(this._allDecorations(), []), this._decorations = [], this._overviewRulerApproximateDecorations = [], this._findScopeDecorationIds = [], this._rangeHighlightDecorationId = null, this._highlightedDecorationId = null\n        }\n        reset() {\n            this._decorations = [], this._overviewRulerApproximateDecorations = [], this._findScopeDecorationIds = [], this._rangeHighlightDecorationId = null, this._highlightedDecorationId = null\n        }\n        getCount() {\n            return this._decorations.length\n        }\n        getFindScope() {\n            return this._findScopeDecorationIds[0] ? this._editor.getModel().getDecorationRange(this._findScopeDecorationIds[0]) : null\n        }\n        getFindScopes() {\n            if (this._findScopeDecorationIds.length) {\n                var e = this._findScopeDecorationIds.map(e => this._editor.getModel().getDecorationRange(e)).filter(e => !!e);\n                if (e.length) return e\n            }\n            return null\n        }\n        getStartPosition() {\n            return this._startPosition\n        }\n        setStartPosition(e) {\n            this._startPosition = e, this.setCurrentFindMatch(null)\n        }\n        _getDecorationIndex(e) {\n            return 0 <= (e = this._decorations.indexOf(e)) ? e + 1 : 1\n        }\n        getCurrentMatchesPosition(e) {\n            for (const i of this._editor.getModel().getDecorationsInRange(e)) {\n                var t = i.options;\n                if (t === ae._FIND_MATCH_DECORATION || t === ae._CURRENT_FIND_MATCH_DECORATION) return this._getDecorationIndex(i.id)\n            }\n            return 0\n        }\n        setCurrentFindMatch(e) {\n            let t = null,\n                i = 0;\n            if (e)\n                for (let r = 0, o = this._decorations.length; r < o; r++) {\n                    var n = this._editor.getModel().getDecorationRange(this._decorations[r]);\n                    if (e.equalsRange(n)) {\n                        t = this._decorations[r], i = r + 1;\n                        break\n                    }\n                }\n            return null === this._highlightedDecorationId && null === t || this._editor.changeDecorations(e => {\n                if (null !== this._highlightedDecorationId && (e.changeDecorationOptions(this._highlightedDecorationId, ae._FIND_MATCH_DECORATION), this._highlightedDecorationId = null), null !== t && (this._highlightedDecorationId = t, e.changeDecorationOptions(this._highlightedDecorationId, ae._CURRENT_FIND_MATCH_DECORATION)), null !== this._rangeHighlightDecorationId && (e.removeDecoration(this._rangeHighlightDecorationId), this._rangeHighlightDecorationId = null), null !== t) {\n                    let r = this._editor.getModel().getDecorationRange(t);\n                    var i, n;\n                    r.startLineNumber !== r.endLineNumber && 1 === r.endColumn && (i = r.endLineNumber - 1, n = this._editor.getModel().getLineMaxColumn(i), r = new ee.a(r.startLineNumber, r.startColumn, i, n)), this._rangeHighlightDecorationId = e.addDecoration(r, ae._RANGE_HIGHLIGHT_DECORATION)\n                }\n            }), i\n        }\n        set(e, t) {\n            this._editor.changeDecorations(i => {\n                let n = ae._FIND_MATCH_DECORATION,\n                    r = [];\n                if (1e3 < e.length) {\n                    n = ae._FIND_MATCH_NO_OVERVIEW_DECORATION;\n                    var o = this._editor.getModel().getLineCount(),\n                        s = this._editor.getLayoutInfo().height,\n                        a = Math.max(2, Math.ceil(3 / (s / o)));\n                    let t = e[0].range.startLineNumber,\n                        i = e[0].range.endLineNumber;\n                    for (let n = 1, o = e.length; n < o; n++) {\n                        var l = e[n].range;\n                        i + a >= l.startLineNumber ? l.endLineNumber > i && (i = l.endLineNumber) : (r.push({\n                            range: new ee.a(t, 1, i, 1),\n                            options: ae._FIND_MATCH_ONLY_OVERVIEW_DECORATION\n                        }), t = l.startLineNumber, i = l.endLineNumber)\n                    }\n                    r.push({\n                        range: new ee.a(t, 1, i, 1),\n                        options: ae._FIND_MATCH_ONLY_OVERVIEW_DECORATION\n                    })\n                }\n                let d = new Array(e.length);\n                for (let t = 0, i = e.length; t < i; t++) d[t] = {\n                    range: e[t].range,\n                    options: n\n                };\n                this._decorations = i.deltaDecorations(this._decorations, d), this._overviewRulerApproximateDecorations = i.deltaDecorations(this._overviewRulerApproximateDecorations, r), this._rangeHighlightDecorationId && (i.removeDecoration(this._rangeHighlightDecorationId), this._rangeHighlightDecorationId = null), this._findScopeDecorationIds.length && (this._findScopeDecorationIds.forEach(e => i.removeDecoration(e)), this._findScopeDecorationIds = []), null != t && t.length && (this._findScopeDecorationIds = t.map(e => i.addDecoration(e, ae._FIND_SCOPE_DECORATION)))\n            })\n        }\n        matchBeforePosition(e) {\n            if (0 === this._decorations.length) return null;\n            for (let i = this._decorations.length - 1; 0 <= i; i--) {\n                var t = this._decorations[i];\n                if ((t = this._editor.getModel().getDecorationRange(t)) && !(t.endLineNumber > e.lineNumber)) {\n                    if (t.endLineNumber < e.lineNumber) return t;\n                    if (!(t.endColumn > e.column)) return t\n                }\n            }\n            return this._editor.getModel().getDecorationRange(this._decorations[this._decorations.length - 1])\n        }\n        matchAfterPosition(e) {\n            if (0 === this._decorations.length) return null;\n            for (let i = 0, n = this._decorations.length; i < n; i++) {\n                var t = this._decorations[i];\n                if ((t = this._editor.getModel().getDecorationRange(t)) && !(t.startLineNumber < e.lineNumber)) {\n                    if (t.startLineNumber > e.lineNumber) return t;\n                    if (!(t.startColumn < e.column)) return t\n                }\n            }\n            return this._editor.getModel().getDecorationRange(this._decorations[0])\n        }\n        _allDecorations() {\n            let e = [];\n            return e = e.concat(this._decorations), e = e.concat(this._overviewRulerApproximateDecorations), this._findScopeDecorationIds.length && e.push(...this._findScopeDecorationIds), this._rangeHighlightDecorationId && e.push(this._rangeHighlightDecorationId), e\n        }\n    }\n    ae._CURRENT_FIND_MATCH_DECORATION = re.b.register({\n        description: \"current-find-match\",\n        stickiness: 1,\n        zIndex: 13,\n        className: \"currentFindMatch\",\n        showIfCollapsed: !0,\n        overviewRuler: {\n            color: Object(se.g)(oe.Tb),\n            position: ne.g.Center\n        },\n        minimap: {\n            color: Object(se.g)(oe.Mb),\n            position: ne.f.Inline\n        }\n    }), ae._FIND_MATCH_DECORATION = re.b.register({\n        description: \"find-match\",\n        stickiness: 1,\n        zIndex: 10,\n        className: \"findMatch\",\n        showIfCollapsed: !0,\n        overviewRuler: {\n            color: Object(se.g)(oe.Tb),\n            position: ne.g.Center\n        },\n        minimap: {\n            color: Object(se.g)(oe.Mb),\n            position: ne.f.Inline\n        }\n    }), ae._FIND_MATCH_NO_OVERVIEW_DECORATION = re.b.register({\n        description: \"find-match-no-overview\",\n        stickiness: 1,\n        className: \"findMatch\",\n        showIfCollapsed: !0\n    }), ae._FIND_MATCH_ONLY_OVERVIEW_DECORATION = re.b.register({\n        description: \"find-match-only-overview\",\n        stickiness: 1,\n        overviewRuler: {\n            color: Object(se.g)(oe.Tb),\n            position: ne.g.Center\n        }\n    }), ae._RANGE_HIGHLIGHT_DECORATION = re.b.register({\n        description: \"find-range-highlight\",\n        stickiness: 1,\n        className: \"rangeHighlight\",\n        isWholeLine: !0\n    }), ae._FIND_SCOPE_DECORATION = re.b.register({\n        description: \"find-scope\",\n        className: \"findScope\",\n        isWholeLine: !0\n    });\n    class le {\n        constructor(e, t, i) {\n            this._editorSelection = e, this._ranges = t, this._replaceStrings = i, this._trackedEditorSelectionId = null\n        }\n        getEditOperations(e, t) {\n            if (0 < this._ranges.length) {\n                let e = [];\n                for (let t = 0; t < this._ranges.length; t++) e.push({\n                    range: this._ranges[t],\n                    text: this._replaceStrings[t]\n                });\n                e.sort((e, t) => ee.a.compareRangesUsingStarts(e.range, t.range));\n                let i = [],\n                    n = e[0];\n                for (let t = 1; t < e.length; t++) n.range.endLineNumber === e[t].range.startLineNumber && n.range.endColumn === e[t].range.startColumn ? (n.range = n.range.plusRange(e[t].range), n.text = n.text + e[t].text) : (i.push(n), n = e[t]);\n                i.push(n);\n                for (const e of i) t.addEditOperation(e.range, e.text)\n            }\n            this._trackedEditorSelectionId = t.trackSelection(this._editorSelection)\n        }\n        computeCursorState(e, t) {\n            return t.getTrackedSelection(this._trackedEditorSelectionId)\n        }\n    }\n\n    function de(e, t) {\n        if (e && \"\" !== e[0]) {\n            var i = ce(e, t, \"-\"),\n                n = ce(e, t, \"_\");\n            return i && !n ? he(e, t, \"-\") : !i && n ? he(e, t, \"_\") : e[0].toUpperCase() === e[0] ? t.toUpperCase() : e[0].toLowerCase() === e[0] ? t.toLowerCase() : G.o(e[0][0]) && 0 < t.length ? t[0].toUpperCase() + t.substr(1) : e[0][0].toUpperCase() !== e[0][0] && 0 < t.length ? t[0].toLowerCase() + t.substr(1) : t\n        }\n        return t\n    }\n\n    function ce(e, t, i) {\n        return -1 !== e[0].indexOf(i) && -1 !== t.indexOf(i) && e[0].split(i).length === t.split(i).length\n    }\n\n    function he(e, t, i) {\n        const n = t.split(i),\n            r = e[0].split(i);\n        let o = \"\";\n        return n.forEach((e, t) => {\n            o += de([r[t]], e) + i\n        }), o.slice(0, -1)\n    }\n    class ue {\n        constructor(e) {\n            this.staticValue = e, this.kind = 0\n        }\n    }\n    class pe {\n        constructor(e) {\n            this.pieces = e, this.kind = 1\n        }\n    }\n    class ge {\n        constructor(e) {\n            e && 0 !== e.length ? 1 === e.length && null !== e[0].staticValue ? this._state = new ue(e[0].staticValue) : this._state = new pe(e) : this._state = new ue(\"\")\n        }\n        static fromStaticValue(e) {\n            return new ge([fe.staticValue(e)])\n        }\n        get hasReplacementPatterns() {\n            return 1 === this._state.kind\n        }\n        buildReplaceString(e, t) {\n            if (0 === this._state.kind) return t ? de(e, this._state.staticValue) : this._state.staticValue;\n            let i = \"\";\n            for (let t = 0, o = this._state.pieces.length; t < o; t++) {\n                var n = this._state.pieces[t];\n                if (null === n.staticValue) {\n                    let t = ge._substitute(n.matchIndex, e);\n                    if (null !== n.caseOps && 0 < n.caseOps.length) {\n                        let e = [];\n                        var r = n.caseOps.length;\n                        let i = 0;\n                        for (let o = 0, s = t.length; o < s; o++) {\n                            if (i >= r) {\n                                e.push(t.slice(o));\n                                break\n                            }\n                            switch (n.caseOps[i]) {\n                                case \"U\":\n                                    e.push(t[o].toUpperCase());\n                                    break;\n                                case \"u\":\n                                    e.push(t[o].toUpperCase()), i++;\n                                    break;\n                                case \"L\":\n                                    e.push(t[o].toLowerCase());\n                                    break;\n                                case \"l\":\n                                    e.push(t[o].toLowerCase()), i++;\n                                    break;\n                                default:\n                                    e.push(t[o])\n                            }\n                        }\n                        t = e.join(\"\")\n                    }\n                    i += t\n                } else i += n.staticValue\n            }\n            return i\n        }\n        static _substitute(e, t) {\n            if (null === t) return \"\";\n            if (0 === e) return t[0];\n            let i = \"\";\n            for (; 0 < e;) {\n                if (e < t.length) return (t[e] || \"\") + i;\n                i = String(e % 10) + i, e = Math.floor(e / 10)\n            }\n            return \"$\" + i\n        }\n    }\n    class fe {\n        constructor(e, t, i) {\n            this.staticValue = e, this.matchIndex = t, i && 0 !== i.length ? this.caseOps = i.slice(0) : this.caseOps = null\n        }\n        static staticValue(e) {\n            return new fe(e, -1, null)\n        }\n        static caseOps(e, t) {\n            return new fe(null, e, t)\n        }\n    }\n    class me {\n        constructor(e) {\n            this._source = e, this._lastCharIndex = 0, this._result = [], this._resultLen = 0, this._currentStaticPiece = \"\"\n        }\n        emitUnchanged(e) {\n            this._emitStatic(this._source.substring(this._lastCharIndex, e)), this._lastCharIndex = e\n        }\n        emitStatic(e, t) {\n            this._emitStatic(e), this._lastCharIndex = t\n        }\n        _emitStatic(e) {\n            0 !== e.length && (this._currentStaticPiece += e)\n        }\n        emitMatchIndex(e, t, i) {\n            0 !== this._currentStaticPiece.length && (this._result[this._resultLen++] = fe.staticValue(this._currentStaticPiece), this._currentStaticPiece = \"\"), this._result[this._resultLen++] = fe.caseOps(e, i), this._lastCharIndex = t\n        }\n        finalize() {\n            return this.emitUnchanged(this._source.length), 0 !== this._currentStaticPiece.length && (this._result[this._resultLen++] = fe.staticValue(this._currentStaticPiece), this._currentStaticPiece = \"\"), new ge(this._result)\n        }\n    }\n    var ve = i(13);\n    const be = new ve.c(\"findWidgetVisible\", !1),\n        _e = new ve.c(\"findInputFocussed\", !1),\n        we = new ve.c(\"replaceInputFocussed\", !1);\n    t = {\n        primary: 545,\n        mac: {\n            primary: 2593\n        }\n    }, s = {\n        primary: 565,\n        mac: {\n            primary: 2613\n        }\n    }, l = {\n        primary: 560,\n        mac: {\n            primary: 2608\n        }\n    }, c = {\n        primary: 554,\n        mac: {\n            primary: 2602\n        }\n    }, g = {\n        primary: 558,\n        mac: {\n            primary: 2606\n        }\n    };\n    const ye = \"actions.find\",\n        Ce = \"actions.findWithSelection\",\n        xe = \"editor.action.nextMatchFindAction\",\n        Se = \"editor.action.previousMatchFindAction\",\n        ke = \"editor.action.nextSelectionMatchFindAction\",\n        Le = \"editor.action.previousSelectionMatchFindAction\",\n        Oe = \"editor.action.startFindReplaceAction\",\n        Ee = \"closeFindWidget\",\n        Ne = \"toggleFindCaseSensitive\",\n        De = \"toggleFindWholeWord\",\n        Ie = \"toggleFindRegex\",\n        Te = \"toggleFindInSelection\",\n        Me = \"togglePreserveCase\",\n        Pe = \"editor.action.replaceOne\",\n        Ae = \"editor.action.replaceAll\",\n        Re = \"editor.action.selectAllMatches\",\n        Fe = 19999;\n    class je {\n        constructor(e, t) {\n            this._toDispose = new q.b, this._editor = e, this._state = t, this._isDisposed = !1, this._startSearchingTimer = new $.g, this._decorations = new ae(e), this._toDispose.add(this._decorations), this._updateDecorationsScheduler = new $.e(() => this.research(!1), 100), this._toDispose.add(this._updateDecorationsScheduler), this._toDispose.add(this._editor.onDidChangeCursorPosition(e => {\n                3 !== e.reason && 5 !== e.reason && 6 !== e.reason || this._decorations.setStartPosition(this._editor.getPosition())\n            })), this._ignoreModelContentChanged = !1, this._toDispose.add(this._editor.onDidChangeModelContent(e => {\n                this._ignoreModelContentChanged || (e.isFlush && this._decorations.reset(), this._decorations.setStartPosition(this._editor.getPosition()), this._updateDecorationsScheduler.schedule())\n            })), this._toDispose.add(this._state.onFindReplaceStateChange(e => this._onStateChanged(e))), this.research(!1, this._state.searchScope)\n        }\n        dispose() {\n            this._isDisposed = !0, Object(q.f)(this._startSearchingTimer), this._toDispose.dispose()\n        }\n        _onStateChanged(e) {\n            if (!this._isDisposed && this._editor.hasModel() && (e.searchString || e.isReplaceRevealed || e.isRegex || e.wholeWord || e.matchCase || e.searchScope)) {\n                this._editor.getModel().isTooLargeForSyncing() ? (this._startSearchingTimer.cancel(), this._startSearchingTimer.setIfNotSet(() => {\n                    e.searchScope ? this.research(e.moveCursor, this._state.searchScope) : this.research(e.moveCursor)\n                }, 240)) : e.searchScope ? this.research(e.moveCursor, this._state.searchScope) : this.research(e.moveCursor)\n            }\n        }\n        static _getSearchRange(e, t) {\n            return t || e.getFullModelRange()\n        }\n        research(e, t) {\n            let i = null;\n            void 0 !== t ? null !== t && (i = Array.isArray(t) ? t : [t]) : i = this._decorations.getFindScopes(), null !== i && (i = i.map(e => {\n                if (e.startLineNumber === e.endLineNumber) return e; {\n                    let t = e.endLineNumber;\n                    return 1 === e.endColumn && (t -= 1), new ee.a(e.startLineNumber, 1, t, this._editor.getModel().getLineMaxColumn(t))\n                }\n            }));\n            let n = this._findMatches(i, !1, Fe);\n            this._decorations.set(n, i);\n            const r = this._editor.getSelection();\n            let o = this._decorations.getCurrentMatchesPosition(r);\n            0 === o && 0 < n.length && (o = 0 < (t = Object(X.h)(n.map(e => e.range), e => 0 <= ee.a.compareRangesUsingStarts(e, r))) ? t - 1 + 1 : o), this._state.changeMatchInfo(o, this._decorations.getCount(), void 0), e && this._editor.getOption(35).cursorMoveOnType && this._moveToNextMatch(this._decorations.getStartPosition())\n        }\n        _hasMatches() {\n            return 0 < this._state.matchesCount\n        }\n        _cannotFind() {\n            if (this._hasMatches()) return !1;\n            var e = this._decorations.getFindScope();\n            return e && this._editor.revealRangeInCenterIfOutsideViewport(e, 0), !0\n        }\n        _setCurrentFindMatch(e) {\n            var t = this._decorations.setCurrentFindMatch(e);\n            this._state.changeMatchInfo(t, this._decorations.getCount(), e), this._editor.setSelection(e), this._editor.revealRangeInCenterIfOutsideViewport(e, 0)\n        }\n        _prevSearchPosition(e) {\n            var t = this._state.isRegex && (0 <= this._state.searchString.indexOf(\"^\") || 0 <= this._state.searchString.indexOf(\"$\"));\n            let {\n                lineNumber: i,\n                column: n\n            } = e, r = this._editor.getModel();\n            return t || 1 === n ? (1 === i ? i = r.getLineCount() : i--, n = r.getLineMaxColumn(i)) : n--, new J.a(i, n)\n        }\n        _moveToPrevMatch(e, t = !1) {\n            if (this._state.canNavigateBack()) {\n                if (this._decorations.getCount() < Fe) {\n                    let t = this._decorations.matchBeforePosition(e);\n                    return t && t.isEmpty() && t.getStartPosition().equals(e) && (e = this._prevSearchPosition(e), t = this._decorations.matchBeforePosition(e)), void(t && this._setCurrentFindMatch(t))\n                }\n                if (!this._cannotFind()) {\n                    var i = this._decorations.getFindScope();\n                    let r = je._getSearchRange(this._editor.getModel(), i);\n                    var {\n                        lineNumber: n,\n                        column: i\n                    } = e = (e = r.getEndPosition().isBefore(e) ? r.getEndPosition() : e).isBefore(r.getStartPosition()) ? r.getEndPosition() : e;\n                    let o = this._editor.getModel(),\n                        s = new J.a(n, i),\n                        a = o.findPreviousMatch(this._state.searchString, s, this._state.isRegex, this._state.matchCase, this._state.wholeWord ? this._editor.getOption(115) : null, !1);\n                    if (a && a.range.isEmpty() && a.range.getStartPosition().equals(s) && (s = this._prevSearchPosition(s), a = o.findPreviousMatch(this._state.searchString, s, this._state.isRegex, this._state.matchCase, this._state.wholeWord ? this._editor.getOption(115) : null, !1)), a) return t || r.containsRange(a.range) ? void this._setCurrentFindMatch(a.range) : this._moveToPrevMatch(a.range.getStartPosition(), !0)\n                }\n            } else(e = this._decorations.matchAfterPosition(e)) && this._setCurrentFindMatch(e)\n        }\n        moveToPrevMatch() {\n            this._moveToPrevMatch(this._editor.getSelection().getStartPosition())\n        }\n        _nextSearchPosition(e) {\n            var t = this._state.isRegex && (0 <= this._state.searchString.indexOf(\"^\") || 0 <= this._state.searchString.indexOf(\"$\"));\n            let {\n                lineNumber: i,\n                column: n\n            } = e, r = this._editor.getModel();\n            return t || n === r.getLineMaxColumn(i) ? (i === r.getLineCount() ? i = 1 : i++, n = 1) : n++, new J.a(i, n)\n        }\n        _moveToNextMatch(e) {\n            if (this._state.canNavigateForward()) {\n                if (this._decorations.getCount() < Fe) {\n                    let t = this._decorations.matchAfterPosition(e);\n                    return t && t.isEmpty() && t.getStartPosition().equals(e) && (e = this._nextSearchPosition(e), t = this._decorations.matchAfterPosition(e)), void(t && this._setCurrentFindMatch(t))\n                }\n                var t = this._getNextMatch(e, !1, !0);\n                t && this._setCurrentFindMatch(t.range)\n            } else(e = this._decorations.matchBeforePosition(e)) && this._setCurrentFindMatch(e)\n        }\n        _getNextMatch(e, t, i, n = !1) {\n            if (this._cannotFind()) return null;\n            var r = this._decorations.getFindScope();\n            let o = je._getSearchRange(this._editor.getModel(), r);\n            var {\n                lineNumber: r,\n                column: e\n            } = e = (e = o.getEndPosition().isBefore(e) ? o.getStartPosition() : e).isBefore(o.getStartPosition()) ? o.getStartPosition() : e;\n            let s = this._editor.getModel(),\n                a = new J.a(r, e),\n                l = s.findNextMatch(this._state.searchString, a, this._state.isRegex, this._state.matchCase, this._state.wholeWord ? this._editor.getOption(115) : null, t);\n            return i && l && l.range.isEmpty() && l.range.getStartPosition().equals(a) && (a = this._nextSearchPosition(a), l = s.findNextMatch(this._state.searchString, a, this._state.isRegex, this._state.matchCase, this._state.wholeWord ? this._editor.getOption(115) : null, t)), l ? n || o.containsRange(l.range) ? l : this._getNextMatch(l.range.getEndPosition(), t, i, !0) : null\n        }\n        moveToNextMatch() {\n            this._moveToNextMatch(this._editor.getSelection().getEndPosition())\n        }\n        _getReplacePattern() {\n            return this._state.isRegex ? function(e) {\n                if (!e || 0 === e.length) return new ge(null);\n                let t = [],\n                    i = new me(e);\n                for (let o = 0, s = e.length; o < s; o++) {\n                    var n = e.charCodeAt(o);\n                    if (92 !== n) {\n                        if (36 === n) {\n                            if (o++, o >= s) break;\n                            if (36 !== (n = e.charCodeAt(o)))\n                                if (48 !== n && 38 !== n) {\n                                    if (49 <= n && n <= 57) {\n                                        let r = n - 48;\n                                        if (o + 1 < s && 48 <= (n = e.charCodeAt(o + 1)) && n <= 57) {\n                                            o++, r = 10 * r + (n - 48), i.emitUnchanged(o - 2), i.emitMatchIndex(r, o + 1, t), t.length = 0;\n                                            continue\n                                        }\n                                        i.emitUnchanged(o - 1), i.emitMatchIndex(r, o + 1, t), t.length = 0\n                                    }\n                                } else i.emitUnchanged(o - 1), i.emitMatchIndex(0, o + 1, t), t.length = 0;\n                            else i.emitUnchanged(o - 1), i.emitStatic(\"$\", o + 1)\n                        }\n                    } else {\n                        if (o++, o >= s) break;\n                        var r = e.charCodeAt(o);\n                        switch (r) {\n                            case 92:\n                                i.emitUnchanged(o - 1), i.emitStatic(\"\\\\\", o + 1);\n                                break;\n                            case 110:\n                                i.emitUnchanged(o - 1), i.emitStatic(\"\\n\", o + 1);\n                                break;\n                            case 116:\n                                i.emitUnchanged(o - 1), i.emitStatic(\"\\t\", o + 1);\n                                break;\n                            case 117:\n                            case 85:\n                            case 108:\n                            case 76:\n                                i.emitUnchanged(o - 1), i.emitStatic(\"\", o + 1), t.push(String.fromCharCode(r))\n                        }\n                    }\n                }\n                return i.finalize()\n            }(this._state.replaceString) : ge.fromStaticValue(this._state.replaceString)\n        }\n        replace() {\n            if (this._hasMatches()) {\n                let n = this._getReplacePattern(),\n                    r = this._editor.getSelection();\n                var e, t, i = this._getNextMatch(r.getStartPosition(), !0, !1);\n                i && (r.equalsRange(i.range) ? (e = n.buildReplaceString(i.matches, this._state.preserveCase), t = new Q.a(r, e), this._executeEditorCommand(\"replace\", t), this._decorations.setStartPosition(new J.a(r.startLineNumber, r.startColumn + e.length)), this.research(!0)) : (this._decorations.setStartPosition(this._editor.getPosition()), this._setCurrentFindMatch(i.range)))\n            }\n        }\n        _findMatches(e, t, i) {\n            return e = (e || [null]).map(e => je._getSearchRange(this._editor.getModel(), e)), this._editor.getModel().findMatches(this._state.searchString, e, this._state.isRegex, this._state.matchCase, this._state.wholeWord ? this._editor.getOption(115) : null, t, i)\n        }\n        replaceAll() {\n            var e;\n            this._hasMatches() && (null === (e = this._decorations.getFindScopes()) && this._state.matchesCount >= Fe ? this._largeReplaceAll() : this._regularReplaceAll(e), this.research(!1))\n        }\n        _largeReplaceAll() {\n            var e = new ie.a(this._state.searchString, this._state.isRegex, this._state.matchCase, this._state.wholeWord ? this._editor.getOption(115) : null).parseSearchRequest();\n            if (e) {\n                let t = e.regex;\n                if (!t.multiline) {\n                    let e = \"mu\";\n                    t.ignoreCase && (e += \"i\"), t.global && (e += \"g\"), t = new RegExp(t.source, e)\n                }\n                const i = this._editor.getModel(),\n                    n = i.getValue(1);\n                e = i.getFullModelRange();\n                const r = this._getReplacePattern();\n                let o;\n                const s = this._state.preserveCase;\n                o = r.hasReplacementPatterns || s ? n.replace(t, (function() {\n                    return r.buildReplaceString(arguments, s)\n                })) : n.replace(t, r.buildReplaceString(null, s)), e = new Q.b(e, o, this._editor.getSelection()), this._executeEditorCommand(\"replaceAll\", e)\n            }\n        }\n        _regularReplaceAll(e) {\n            const t = this._getReplacePattern();\n            let i = this._findMatches(e, t.hasReplacementPatterns || this._state.preserveCase, 1073741824),\n                n = [];\n            for (let e = 0, r = i.length; e < r; e++) n[e] = t.buildReplaceString(i[e].matches, this._state.preserveCase);\n            e = new le(this._editor.getSelection(), i.map(e => e.range), n), this._executeEditorCommand(\"replaceAll\", e)\n        }\n        selectAllMatches() {\n            if (this._hasMatches()) {\n                var e = this._decorations.getFindScopes();\n                let t = this._findMatches(e, !1, 1073741824).map(e => new te.a(e.range.startLineNumber, e.range.startColumn, e.range.endLineNumber, e.range.endColumn)),\n                    i = this._editor.getSelection();\n                for (let e = 0, n = t.length; e < n; e++) {\n                    if (t[e].equalsRange(i)) {\n                        t = [i].concat(t.slice(0, e)).concat(t.slice(e + 1));\n                        break\n                    }\n                }\n                this._editor.setSelections(t)\n            }\n        }\n        _executeEditorCommand(e, t) {\n            try {\n                this._ignoreModelContentChanged = !0, this._editor.pushUndoStop(), this._editor.executeCommand(e, t), this._editor.pushUndoStop()\n            } finally {\n                this._ignoreModelContentChanged = !1\n            }\n        }\n    }\n    var Be = i(1),\n        Ve = (v = i(84), i(33)),\n        We = (b = i(11), i(2));\n    i(374);\n    const ze = {\n        inputActiveOptionBorder: b.a.fromHex(\"#007ACC00\"),\n        inputActiveOptionForeground: b.a.fromHex(\"#FFFFFF\"),\n        inputActiveOptionBackground: b.a.fromHex(\"#0E639C50\")\n    };\n    class He extends v.a {\n        constructor(e) {\n            super(), this._onChange = this._register(new We.b), this.onChange = this._onChange.event, this._onKeyDown = this._register(new We.b), this.onKeyDown = this._onKeyDown.event, this._opts = Object.assign(Object.assign({}, ze), e), this._checked = this._opts.isChecked;\n            const t = [\"monaco-custom-checkbox\"];\n            this._opts.icon && t.push(...Ve.a.asClassNameArray(this._opts.icon)), this._opts.actionClassName && t.push(...this._opts.actionClassName.split(\" \")), this._checked && t.push(\"checked\"), this.domNode = document.createElement(\"div\"), this.domNode.title = this._opts.title, this.domNode.classList.add(...t), 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, e => {\n                this.checked = !this._checked, this._onChange.fire(!1), e.preventDefault()\n            }), this.ignoreGesture(this.domNode), this.onkeydown(this.domNode, e => 10 === e.keyCode || 3 === e.keyCode ? (this.checked = !this._checked, this._onChange.fire(!0), void e.preventDefault()) : void this._onKeyDown.fire(e))\n        }\n        get enabled() {\n            return \"true\" !== this.domNode.getAttribute(\"aria-disabled\")\n        }\n        focus() {\n            this.domNode.focus()\n        }\n        get checked() {\n            return this._checked\n        }\n        set checked(e) {\n            this._checked = e, this.domNode.setAttribute(\"aria-checked\", String(this._checked)), this.domNode.classList.toggle(\"checked\", this._checked), this.applyStyles()\n        }\n        width() {\n            return 22\n        }\n        style(e) {\n            e.inputActiveOptionBorder && (this._opts.inputActiveOptionBorder = e.inputActiveOptionBorder), e.inputActiveOptionForeground && (this._opts.inputActiveOptionForeground = e.inputActiveOptionForeground), e.inputActiveOptionBackground && (this._opts.inputActiveOptionBackground = e.inputActiveOptionBackground), this.applyStyles()\n        }\n        applyStyles() {\n            this.domNode && (this.domNode.style.borderColor = this._checked && this._opts.inputActiveOptionBorder ? this._opts.inputActiveOptionBorder.toString() : \"transparent\", this.domNode.style.color = this._checked && this._opts.inputActiveOptionForeground ? this._opts.inputActiveOptionForeground.toString() : \"inherit\", this.domNode.style.backgroundColor = this._checked && this._opts.inputActiveOptionBackground ? this._opts.inputActiveOptionBackground.toString() : \"transparent\")\n        }\n        enable() {\n            this.domNode.setAttribute(\"aria-disabled\", String(!1))\n        }\n        disable() {\n            this.domNode.setAttribute(\"aria-disabled\", String(!0))\n        }\n    }\n    var Ue = i(0);\n    const Ke = Ue.a(\"caseDescription\", \"Match Case\"),\n        $e = Ue.a(\"wordsDescription\", \"Match Whole Word\"),\n        qe = Ue.a(\"regexDescription\", \"Use Regular Expression\");\n    class Ge extends He {\n        constructor(e) {\n            super({\n                icon: Ve.b.caseSensitive,\n                title: Ke + e.appendTitle,\n                isChecked: e.isChecked,\n                inputActiveOptionBorder: e.inputActiveOptionBorder,\n                inputActiveOptionForeground: e.inputActiveOptionForeground,\n                inputActiveOptionBackground: e.inputActiveOptionBackground\n            })\n        }\n    }\n    class Ye extends He {\n        constructor(e) {\n            super({\n                icon: Ve.b.wholeWord,\n                title: $e + e.appendTitle,\n                isChecked: e.isChecked,\n                inputActiveOptionBorder: e.inputActiveOptionBorder,\n                inputActiveOptionForeground: e.inputActiveOptionForeground,\n                inputActiveOptionBackground: e.inputActiveOptionBackground\n            })\n        }\n    }\n    class Ze extends He {\n        constructor(e) {\n            super({\n                icon: Ve.b.regex,\n                title: qe + e.appendTitle,\n                isChecked: e.isChecked,\n                inputActiveOptionBorder: e.inputActiveOptionBorder,\n                inputActiveOptionForeground: e.inputActiveOptionForeground,\n                inputActiveOptionBackground: e.inputActiveOptionBackground\n            })\n        }\n    }\n    class Xe extends v.a {\n        constructor(e, t, i, n) {\n            super(), this._hideSoon = this._register(new $.e(() => this._hide(), 2e3)), this._isVisible = !1, this._editor = e, this._state = t, this._keybindingService = i, this._domNode = document.createElement(\"div\"), this._domNode.className = \"findOptionsWidget\", this._domNode.style.display = \"none\", this._domNode.style.top = \"10px\", this._domNode.setAttribute(\"role\", \"presentation\"), this._domNode.setAttribute(\"aria-hidden\", \"true\"), e = n.getColorTheme().getColor(oe.U), t = n.getColorTheme().getColor(oe.V), i = n.getColorTheme().getColor(oe.T), this.caseSensitive = this._register(new Ge({\n                appendTitle: this._keybindingLabelFor(Ne),\n                isChecked: this._state.matchCase,\n                inputActiveOptionBorder: e,\n                inputActiveOptionForeground: t,\n                inputActiveOptionBackground: i\n            })), this._domNode.appendChild(this.caseSensitive.domNode), this._register(this.caseSensitive.onChange(() => {\n                this._state.change({\n                    matchCase: this.caseSensitive.checked\n                }, !1)\n            })), this.wholeWords = this._register(new Ye({\n                appendTitle: this._keybindingLabelFor(De),\n                isChecked: this._state.wholeWord,\n                inputActiveOptionBorder: e,\n                inputActiveOptionForeground: t,\n                inputActiveOptionBackground: i\n            })), this._domNode.appendChild(this.wholeWords.domNode), this._register(this.wholeWords.onChange(() => {\n                this._state.change({\n                    wholeWord: this.wholeWords.checked\n                }, !1)\n            })), this.regex = this._register(new Ze({\n                appendTitle: this._keybindingLabelFor(Ie),\n                isChecked: this._state.isRegex,\n                inputActiveOptionBorder: e,\n                inputActiveOptionForeground: t,\n                inputActiveOptionBackground: i\n            })), this._domNode.appendChild(this.regex.domNode), this._register(this.regex.onChange(() => {\n                this._state.change({\n                    isRegex: this.regex.checked\n                }, !1)\n            })), this._editor.addOverlayWidget(this), this._register(this._state.onFindReplaceStateChange(e => {\n                let t = !1;\n                e.isRegex && (this.regex.checked = this._state.isRegex, t = !0), e.wholeWord && (this.wholeWords.checked = this._state.wholeWord, t = !0), e.matchCase && (this.caseSensitive.checked = this._state.matchCase, t = !0), !this._state.isRevealed && t && this._revealTemporarily()\n            })), this._register(Be.h(this._domNode, e => this._onMouseOut())), this._register(Be.g(this._domNode, \"mouseover\", e => this._onMouseOver())), this._applyTheme(n.getColorTheme()), this._register(n.onDidColorThemeChange(this._applyTheme.bind(this)))\n        }\n        _keybindingLabelFor(e) {\n            let t = this._keybindingService.lookupKeybinding(e);\n            return t ? ` (${t.getLabel()})` : \"\"\n        }\n        dispose() {\n            this._editor.removeOverlayWidget(this), super.dispose()\n        }\n        getId() {\n            return Xe.ID\n        }\n        getDomNode() {\n            return this._domNode\n        }\n        getPosition() {\n            return {\n                preference: 0\n            }\n        }\n        highlightFindOptions() {\n            this._revealTemporarily()\n        }\n        _revealTemporarily() {\n            this._show(), this._hideSoon.schedule()\n        }\n        _onMouseOut() {\n            this._hideSoon.schedule()\n        }\n        _onMouseOver() {\n            this._hideSoon.cancel()\n        }\n        _show() {\n            this._isVisible || (this._isVisible = !0, this._domNode.style.display = \"block\")\n        }\n        _hide() {\n            this._isVisible && (this._isVisible = !1, this._domNode.style.display = \"none\")\n        }\n        _applyTheme(e) {\n            e = {\n                inputActiveOptionBorder: e.getColor(oe.U),\n                inputActiveOptionForeground: e.getColor(oe.V),\n                inputActiveOptionBackground: e.getColor(oe.T)\n            }, this.caseSensitive.style(e), this.wholeWords.style(e), this.regex.style(e)\n        }\n    }\n\n    function Qe(e, t) {\n        return 1 === e || 2 !== e && t\n    }\n    Xe.ID = \"editor.contrib.findOptionsWidget\", Object(se.f)((e, t) => {\n        var i = e.getColor(oe.N);\n        i && t.addRule(`.monaco-editor .findOptionsWidget { background-color: ${i}; }`), (i = e.getColor(oe.P)) && t.addRule(`.monaco-editor .findOptionsWidget { color: ${i}; }`), (i = e.getColor(oe.mc)) && t.addRule(`.monaco-editor .findOptionsWidget { box-shadow: 0 0 8px 2px ${i}; }`), (e = e.getColor(oe.h)) && t.addRule(`.monaco-editor .findOptionsWidget { border: 2px solid ${e}; }`)\n    });\n    class Je extends q.a {\n        constructor() {\n            super(), this._onFindReplaceStateChange = this._register(new We.b), 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\n        }\n        get searchString() {\n            return this._searchString\n        }\n        get replaceString() {\n            return this._replaceString\n        }\n        get isRevealed() {\n            return this._isRevealed\n        }\n        get isReplaceRevealed() {\n            return this._isReplaceRevealed\n        }\n        get isRegex() {\n            return Qe(this._isRegexOverride, this._isRegex)\n        }\n        get wholeWord() {\n            return Qe(this._wholeWordOverride, this._wholeWord)\n        }\n        get matchCase() {\n            return Qe(this._matchCaseOverride, this._matchCase)\n        }\n        get preserveCase() {\n            return Qe(this._preserveCaseOverride, this._preserveCase)\n        }\n        get actualIsRegex() {\n            return this._isRegex\n        }\n        get actualWholeWord() {\n            return this._wholeWord\n        }\n        get actualMatchCase() {\n            return this._matchCase\n        }\n        get actualPreserveCase() {\n            return this._preserveCase\n        }\n        get searchScope() {\n            return this._searchScope\n        }\n        get matchesPosition() {\n            return this._matchesPosition\n        }\n        get matchesCount() {\n            return this._matchesCount\n        }\n        get currentMatch() {\n            return this._currentMatch\n        }\n        changeMatchInfo(e, t, i) {\n            let n = {\n                    moveCursor: !1,\n                    updateHistory: !1,\n                    searchString: !1,\n                    replaceString: !1,\n                    isRevealed: !1,\n                    isReplaceRevealed: !1,\n                    isRegex: !1,\n                    wholeWord: !1,\n                    matchCase: !1,\n                    preserveCase: !1,\n                    searchScope: !1,\n                    matchesPosition: !1,\n                    matchesCount: !1,\n                    currentMatch: !1,\n                    loop: !1\n                },\n                r = !1;\n            this._matchesPosition !== (e = t < (e = 0 === t ? 0 : e) ? t : e) && (this._matchesPosition = e, n.matchesPosition = !0, r = !0), this._matchesCount !== t && (this._matchesCount = t, n.matchesCount = !0, r = !0), void 0 !== i && (ee.a.equalsRange(this._currentMatch, i) || (this._currentMatch = i, n.currentMatch = !0, r = !0)), r && this._onFindReplaceStateChange.fire(n)\n        }\n        change(e, t, i = !0) {\n            let n = {\n                    moveCursor: t,\n                    updateHistory: i,\n                    searchString: !1,\n                    replaceString: !1,\n                    isRevealed: !1,\n                    isReplaceRevealed: !1,\n                    isRegex: !1,\n                    wholeWord: !1,\n                    matchCase: !1,\n                    preserveCase: !1,\n                    searchScope: !1,\n                    matchesPosition: !1,\n                    matchesCount: !1,\n                    currentMatch: !1,\n                    loop: !1\n                },\n                r = !1;\n            var o = this.isRegex,\n                s = this.wholeWord,\n                a = this.matchCase;\n            t = this.preserveCase;\n            void 0 !== e.searchString && this._searchString !== e.searchString && (this._searchString = e.searchString, n.searchString = !0, r = !0), void 0 !== e.replaceString && this._replaceString !== e.replaceString && (this._replaceString = e.replaceString, n.replaceString = !0, r = !0), void 0 !== e.isRevealed && this._isRevealed !== e.isRevealed && (this._isRevealed = e.isRevealed, n.isRevealed = !0, r = !0), void 0 !== e.isReplaceRevealed && this._isReplaceRevealed !== e.isReplaceRevealed && (this._isReplaceRevealed = e.isReplaceRevealed, n.isReplaceRevealed = !0, r = !0), void 0 !== e.isRegex && (this._isRegex = e.isRegex), void 0 !== e.wholeWord && (this._wholeWord = e.wholeWord), void 0 !== e.matchCase && (this._matchCase = e.matchCase), void 0 !== e.preserveCase && (this._preserveCase = e.preserveCase), void 0 !== e.searchScope && (null !== (i = e.searchScope) && void 0 !== i && i.every(e => {\n                var t;\n                return null === (t = this._searchScope) || void 0 === t ? void 0 : t.some(t => !ee.a.equalsRange(t, e))\n            }) || (this._searchScope = e.searchScope, n.searchScope = !0, r = !0)), void 0 !== e.loop && this._loop !== e.loop && (this._loop = e.loop, n.loop = !0, r = !0), this._isRegexOverride = void 0 !== e.isRegexOverride ? e.isRegexOverride : 0, this._wholeWordOverride = void 0 !== e.wholeWordOverride ? e.wholeWordOverride : 0, this._matchCaseOverride = void 0 !== e.matchCaseOverride ? e.matchCaseOverride : 0, this._preserveCaseOverride = void 0 !== e.preserveCaseOverride ? e.preserveCaseOverride : 0, o !== this.isRegex && (r = !0, n.isRegex = !0), s !== this.wholeWord && (r = !0, n.wholeWord = !0), a !== this.matchCase && (r = !0, n.matchCase = !0), t !== this.preserveCase && (r = !0, n.preserveCase = !0), r && this._onFindReplaceStateChange.fire(n)\n        }\n        canNavigateBack() {\n            return this.canNavigateInLoop() || 1 !== this.matchesPosition\n        }\n        canNavigateForward() {\n            return this.canNavigateInLoop() || this.matchesPosition < this.matchesCount\n        }\n        canNavigateInLoop() {\n            return this._loop || this.matchesCount >= Fe\n        }\n    }\n    var et = i(91),\n        tt = i(142),\n        it = i(31),\n        nt = i(9),\n        rt = (i(378), i(152));\n    i(240);\n    const ot = Ue.a(\"defaultLabel\", \"input\");\n    class st extends v.a {\n        constructor(e, t, i, n) {\n            super(), this._showOptionButtons = i, this.fixFocusOnOptionClickEnabled = !0, this.imeSessionInProgress = !1, this._onDidOptionChange = this._register(new We.b), this.onDidOptionChange = this._onDidOptionChange.event, this._onKeyDown = this._register(new We.b), this.onKeyDown = this._onKeyDown.event, this._onMouseDown = this._register(new We.b), this.onMouseDown = this._onMouseDown.event, this._onInput = this._register(new We.b), this._onKeyUp = this._register(new We.b), this._onCaseSensitiveKeyDown = this._register(new We.b), this.onCaseSensitiveKeyDown = this._onCaseSensitiveKeyDown.event, this._onRegexKeyDown = this._register(new We.b), this.onRegexKeyDown = this._onRegexKeyDown.event, this._lastHighlightFindOptions = 0, this.contextViewProvider = t, this.placeholder = n.placeholder || \"\", this.validation = n.validation, this.label = n.label || ot, this.inputActiveOptionBorder = n.inputActiveOptionBorder, this.inputActiveOptionForeground = n.inputActiveOptionForeground, this.inputActiveOptionBackground = n.inputActiveOptionBackground, this.inputBackground = n.inputBackground, this.inputForeground = n.inputForeground, this.inputBorder = n.inputBorder, this.inputValidationInfoBorder = n.inputValidationInfoBorder, this.inputValidationInfoBackground = n.inputValidationInfoBackground, this.inputValidationInfoForeground = n.inputValidationInfoForeground, this.inputValidationWarningBorder = n.inputValidationWarningBorder, this.inputValidationWarningBackground = n.inputValidationWarningBackground, this.inputValidationWarningForeground = n.inputValidationWarningForeground, this.inputValidationErrorBorder = n.inputValidationErrorBorder, this.inputValidationErrorBackground = n.inputValidationErrorBackground, this.inputValidationErrorForeground = n.inputValidationErrorForeground;\n            var r = n.appendCaseSensitiveLabel || \"\",\n                o = n.appendWholeWordsLabel || \"\",\n                s = n.appendRegexLabel || \"\",\n                a = n.history || [],\n                l = !!n.flexibleHeight;\n            i = !!n.flexibleWidth, t = n.flexibleMaxHeight;\n            this.domNode = document.createElement(\"div\"), this.domNode.classList.add(\"monaco-findInput\"), this.inputBox = this._register(new rt.a(this.domNode, this.contextViewProvider, {\n                placeholder: this.placeholder || \"\",\n                ariaLabel: this.label || \"\",\n                validationOptions: {\n                    validation: this.validation\n                },\n                inputBackground: this.inputBackground,\n                inputForeground: this.inputForeground,\n                inputBorder: this.inputBorder,\n                inputValidationInfoBackground: this.inputValidationInfoBackground,\n                inputValidationInfoForeground: this.inputValidationInfoForeground,\n                inputValidationInfoBorder: this.inputValidationInfoBorder,\n                inputValidationWarningBackground: this.inputValidationWarningBackground,\n                inputValidationWarningForeground: this.inputValidationWarningForeground,\n                inputValidationWarningBorder: this.inputValidationWarningBorder,\n                inputValidationErrorBackground: this.inputValidationErrorBackground,\n                inputValidationErrorForeground: this.inputValidationErrorForeground,\n                inputValidationErrorBorder: this.inputValidationErrorBorder,\n                history: a,\n                showHistoryHint: n.showHistoryHint,\n                flexibleHeight: l,\n                flexibleWidth: i,\n                flexibleMaxHeight: t\n            })), this.regex = this._register(new Ze({\n                appendTitle: s,\n                isChecked: !1,\n                inputActiveOptionBorder: this.inputActiveOptionBorder,\n                inputActiveOptionForeground: this.inputActiveOptionForeground,\n                inputActiveOptionBackground: this.inputActiveOptionBackground\n            })), this._register(this.regex.onChange(e => {\n                this._onDidOptionChange.fire(e), !e && this.fixFocusOnOptionClickEnabled && this.inputBox.focus(), this.validate()\n            })), this._register(this.regex.onKeyDown(e => {\n                this._onRegexKeyDown.fire(e)\n            })), this.wholeWords = this._register(new Ye({\n                appendTitle: o,\n                isChecked: !1,\n                inputActiveOptionBorder: this.inputActiveOptionBorder,\n                inputActiveOptionForeground: this.inputActiveOptionForeground,\n                inputActiveOptionBackground: this.inputActiveOptionBackground\n            })), this._register(this.wholeWords.onChange(e => {\n                this._onDidOptionChange.fire(e), !e && this.fixFocusOnOptionClickEnabled && this.inputBox.focus(), this.validate()\n            })), this.caseSensitive = this._register(new Ge({\n                appendTitle: r,\n                isChecked: !1,\n                inputActiveOptionBorder: this.inputActiveOptionBorder,\n                inputActiveOptionForeground: this.inputActiveOptionForeground,\n                inputActiveOptionBackground: this.inputActiveOptionBackground\n            })), this._register(this.caseSensitive.onChange(e => {\n                this._onDidOptionChange.fire(e), !e && this.fixFocusOnOptionClickEnabled && this.inputBox.focus(), this.validate()\n            })), this._register(this.caseSensitive.onKeyDown(e => {\n                this._onCaseSensitiveKeyDown.fire(e)\n            })), this._showOptionButtons && (this.inputBox.paddingRight = this.caseSensitive.width() + this.wholeWords.width() + this.regex.width());\n            let d = [this.caseSensitive.domNode, this.wholeWords.domNode, this.regex.domNode];\n            this.onkeydown(this.domNode, e => {\n                if (e.equals(15) || e.equals(17) || e.equals(9)) {\n                    var t = d.indexOf(document.activeElement);\n                    if (0 <= t) {\n                        let i = -1;\n                        e.equals(17) ? i = (t + 1) % d.length : e.equals(15) && (i = 0 === t ? d.length - 1 : t - 1), e.equals(9) ? (d[t].blur(), this.inputBox.focus()) : 0 <= i && d[i].focus(), Be.c.stop(e, !0)\n                    }\n                }\n            });\n            let c = document.createElement(\"div\");\n            c.className = \"controls\", c.style.display = this._showOptionButtons ? \"block\" : \"none\", c.appendChild(this.caseSensitive.domNode), c.appendChild(this.wholeWords.domNode), c.appendChild(this.regex.domNode), this.domNode.appendChild(c), e && e.appendChild(this.domNode), this._register(Be.g(this.inputBox.inputElement, \"compositionstart\", e => {\n                this.imeSessionInProgress = !0\n            })), this._register(Be.g(this.inputBox.inputElement, \"compositionend\", e => {\n                this.imeSessionInProgress = !1, this._onInput.fire()\n            })), this.onkeydown(this.inputBox.inputElement, e => this._onKeyDown.fire(e)), this.onkeyup(this.inputBox.inputElement, e => this._onKeyUp.fire(e)), this.oninput(this.inputBox.inputElement, e => this._onInput.fire()), this.onmousedown(this.inputBox.inputElement, e => this._onMouseDown.fire(e))\n        }\n        enable() {\n            this.domNode.classList.remove(\"disabled\"), this.inputBox.enable(), this.regex.enable(), this.wholeWords.enable(), this.caseSensitive.enable()\n        }\n        disable() {\n            this.domNode.classList.add(\"disabled\"), this.inputBox.disable(), this.regex.disable(), this.wholeWords.disable(), this.caseSensitive.disable()\n        }\n        setFocusInputOnOptionClick(e) {\n            this.fixFocusOnOptionClickEnabled = e\n        }\n        setEnabled(e) {\n            e ? this.enable() : this.disable()\n        }\n        getValue() {\n            return this.inputBox.value\n        }\n        setValue(e) {\n            this.inputBox.value !== e && (this.inputBox.value = e)\n        }\n        style(e) {\n            this.inputActiveOptionBorder = e.inputActiveOptionBorder, this.inputActiveOptionForeground = e.inputActiveOptionForeground, this.inputActiveOptionBackground = e.inputActiveOptionBackground, this.inputBackground = e.inputBackground, this.inputForeground = e.inputForeground, this.inputBorder = e.inputBorder, this.inputValidationInfoBackground = e.inputValidationInfoBackground, this.inputValidationInfoForeground = e.inputValidationInfoForeground, this.inputValidationInfoBorder = e.inputValidationInfoBorder, this.inputValidationWarningBackground = e.inputValidationWarningBackground, this.inputValidationWarningForeground = e.inputValidationWarningForeground, this.inputValidationWarningBorder = e.inputValidationWarningBorder, this.inputValidationErrorBackground = e.inputValidationErrorBackground, this.inputValidationErrorForeground = e.inputValidationErrorForeground, this.inputValidationErrorBorder = e.inputValidationErrorBorder, this.applyStyles()\n        }\n        applyStyles() {\n            var e;\n            this.domNode && (e = {\n                inputActiveOptionBorder: this.inputActiveOptionBorder,\n                inputActiveOptionForeground: this.inputActiveOptionForeground,\n                inputActiveOptionBackground: this.inputActiveOptionBackground\n            }, this.regex.style(e), this.wholeWords.style(e), this.caseSensitive.style(e), e = {\n                inputBackground: this.inputBackground,\n                inputForeground: this.inputForeground,\n                inputBorder: this.inputBorder,\n                inputValidationInfoBackground: this.inputValidationInfoBackground,\n                inputValidationInfoForeground: this.inputValidationInfoForeground,\n                inputValidationInfoBorder: this.inputValidationInfoBorder,\n                inputValidationWarningBackground: this.inputValidationWarningBackground,\n                inputValidationWarningForeground: this.inputValidationWarningForeground,\n                inputValidationWarningBorder: this.inputValidationWarningBorder,\n                inputValidationErrorBackground: this.inputValidationErrorBackground,\n                inputValidationErrorForeground: this.inputValidationErrorForeground,\n                inputValidationErrorBorder: this.inputValidationErrorBorder\n            }, this.inputBox.style(e))\n        }\n        select() {\n            this.inputBox.select()\n        }\n        focus() {\n            this.inputBox.focus()\n        }\n        getCaseSensitive() {\n            return this.caseSensitive.checked\n        }\n        setCaseSensitive(e) {\n            this.caseSensitive.checked = e\n        }\n        getWholeWords() {\n            return this.wholeWords.checked\n        }\n        setWholeWords(e) {\n            this.wholeWords.checked = e\n        }\n        getRegex() {\n            return this.regex.checked\n        }\n        setRegex(e) {\n            this.regex.checked = e, this.validate()\n        }\n        focusOnCaseSensitive() {\n            this.caseSensitive.focus()\n        }\n        highlightFindOptions() {\n            this.domNode.classList.remove(\"highlight-\" + this._lastHighlightFindOptions), this._lastHighlightFindOptions = 1 - this._lastHighlightFindOptions, this.domNode.classList.add(\"highlight-\" + this._lastHighlightFindOptions)\n        }\n        validate() {\n            this.inputBox.validate()\n        }\n        clearMessage() {\n            this.inputBox.hideMessage()\n        }\n    }\n    const at = Ue.a(\"defaultLabel\", \"input\"),\n        lt = Ue.a(\"label.preserveCaseCheckbox\", \"Preserve Case\");\n    class dt extends He {\n        constructor(e) {\n            super({\n                icon: Ve.b.preserveCase,\n                title: lt + e.appendTitle,\n                isChecked: e.isChecked,\n                inputActiveOptionBorder: e.inputActiveOptionBorder,\n                inputActiveOptionForeground: e.inputActiveOptionForeground,\n                inputActiveOptionBackground: e.inputActiveOptionBackground\n            })\n        }\n    }\n    class ct extends v.a {\n        constructor(e, t, i, n) {\n            super(), this._showOptionButtons = i, this.fixFocusOnOptionClickEnabled = !0, this.cachedOptionsWidth = 0, this._onDidOptionChange = this._register(new We.b), this.onDidOptionChange = this._onDidOptionChange.event, this._onKeyDown = this._register(new We.b), this.onKeyDown = this._onKeyDown.event, this._onMouseDown = this._register(new We.b), this._onInput = this._register(new We.b), this._onKeyUp = this._register(new We.b), this._onPreserveCaseKeyDown = this._register(new We.b), this.onPreserveCaseKeyDown = this._onPreserveCaseKeyDown.event, this.contextViewProvider = t, this.placeholder = n.placeholder || \"\", this.validation = n.validation, this.label = n.label || at, this.inputActiveOptionBorder = n.inputActiveOptionBorder, this.inputActiveOptionForeground = n.inputActiveOptionForeground, this.inputActiveOptionBackground = n.inputActiveOptionBackground, this.inputBackground = n.inputBackground, this.inputForeground = n.inputForeground, this.inputBorder = n.inputBorder, this.inputValidationInfoBorder = n.inputValidationInfoBorder, this.inputValidationInfoBackground = n.inputValidationInfoBackground, this.inputValidationInfoForeground = n.inputValidationInfoForeground, this.inputValidationWarningBorder = n.inputValidationWarningBorder, this.inputValidationWarningBackground = n.inputValidationWarningBackground, this.inputValidationWarningForeground = n.inputValidationWarningForeground, this.inputValidationErrorBorder = n.inputValidationErrorBorder, this.inputValidationErrorBackground = n.inputValidationErrorBackground, this.inputValidationErrorForeground = n.inputValidationErrorForeground;\n            var r = n.appendPreserveCaseLabel || \"\",\n                o = n.history || [],\n                s = !!n.flexibleHeight;\n            i = !!n.flexibleWidth, t = n.flexibleMaxHeight;\n            this.domNode = document.createElement(\"div\"), this.domNode.classList.add(\"monaco-findInput\"), this.inputBox = this._register(new rt.a(this.domNode, this.contextViewProvider, {\n                ariaLabel: this.label || \"\",\n                placeholder: this.placeholder || \"\",\n                validationOptions: {\n                    validation: this.validation\n                },\n                inputBackground: this.inputBackground,\n                inputForeground: this.inputForeground,\n                inputBorder: this.inputBorder,\n                inputValidationInfoBackground: this.inputValidationInfoBackground,\n                inputValidationInfoForeground: this.inputValidationInfoForeground,\n                inputValidationInfoBorder: this.inputValidationInfoBorder,\n                inputValidationWarningBackground: this.inputValidationWarningBackground,\n                inputValidationWarningForeground: this.inputValidationWarningForeground,\n                inputValidationWarningBorder: this.inputValidationWarningBorder,\n                inputValidationErrorBackground: this.inputValidationErrorBackground,\n                inputValidationErrorForeground: this.inputValidationErrorForeground,\n                inputValidationErrorBorder: this.inputValidationErrorBorder,\n                history: o,\n                showHistoryHint: n.showHistoryHint,\n                flexibleHeight: s,\n                flexibleWidth: i,\n                flexibleMaxHeight: t\n            })), this.preserveCase = this._register(new dt({\n                appendTitle: r,\n                isChecked: !1,\n                inputActiveOptionBorder: this.inputActiveOptionBorder,\n                inputActiveOptionForeground: this.inputActiveOptionForeground,\n                inputActiveOptionBackground: this.inputActiveOptionBackground\n            })), this._register(this.preserveCase.onChange(e => {\n                this._onDidOptionChange.fire(e), !e && this.fixFocusOnOptionClickEnabled && this.inputBox.focus(), this.validate()\n            })), this._register(this.preserveCase.onKeyDown(e => {\n                this._onPreserveCaseKeyDown.fire(e)\n            })), this._showOptionButtons ? this.cachedOptionsWidth = this.preserveCase.width() : this.cachedOptionsWidth = 0;\n            let a = [this.preserveCase.domNode];\n            this.onkeydown(this.domNode, e => {\n                if (e.equals(15) || e.equals(17) || e.equals(9)) {\n                    var t = a.indexOf(document.activeElement);\n                    if (0 <= t) {\n                        let i = -1;\n                        e.equals(17) ? i = (t + 1) % a.length : e.equals(15) && (i = 0 === t ? a.length - 1 : t - 1), e.equals(9) ? (a[t].blur(), this.inputBox.focus()) : 0 <= i && a[i].focus(), Be.c.stop(e, !0)\n                    }\n                }\n            });\n            let l = document.createElement(\"div\");\n            l.className = \"controls\", l.style.display = this._showOptionButtons ? \"block\" : \"none\", l.appendChild(this.preserveCase.domNode), this.domNode.appendChild(l), e && e.appendChild(this.domNode), this.onkeydown(this.inputBox.inputElement, e => this._onKeyDown.fire(e)), this.onkeyup(this.inputBox.inputElement, e => this._onKeyUp.fire(e)), this.oninput(this.inputBox.inputElement, e => this._onInput.fire()), this.onmousedown(this.inputBox.inputElement, e => this._onMouseDown.fire(e))\n        }\n        enable() {\n            this.domNode.classList.remove(\"disabled\"), this.inputBox.enable(), this.preserveCase.enable()\n        }\n        disable() {\n            this.domNode.classList.add(\"disabled\"), this.inputBox.disable(), this.preserveCase.disable()\n        }\n        setEnabled(e) {\n            e ? this.enable() : this.disable()\n        }\n        style(e) {\n            this.inputActiveOptionBorder = e.inputActiveOptionBorder, this.inputActiveOptionForeground = e.inputActiveOptionForeground, this.inputActiveOptionBackground = e.inputActiveOptionBackground, this.inputBackground = e.inputBackground, this.inputForeground = e.inputForeground, this.inputBorder = e.inputBorder, this.inputValidationInfoBackground = e.inputValidationInfoBackground, this.inputValidationInfoForeground = e.inputValidationInfoForeground, this.inputValidationInfoBorder = e.inputValidationInfoBorder, this.inputValidationWarningBackground = e.inputValidationWarningBackground, this.inputValidationWarningForeground = e.inputValidationWarningForeground, this.inputValidationWarningBorder = e.inputValidationWarningBorder, this.inputValidationErrorBackground = e.inputValidationErrorBackground, this.inputValidationErrorForeground = e.inputValidationErrorForeground, this.inputValidationErrorBorder = e.inputValidationErrorBorder, this.applyStyles()\n        }\n        applyStyles() {\n            var e;\n            this.domNode && (e = {\n                inputActiveOptionBorder: this.inputActiveOptionBorder,\n                inputActiveOptionForeground: this.inputActiveOptionForeground,\n                inputActiveOptionBackground: this.inputActiveOptionBackground\n            }, this.preserveCase.style(e), e = {\n                inputBackground: this.inputBackground,\n                inputForeground: this.inputForeground,\n                inputBorder: this.inputBorder,\n                inputValidationInfoBackground: this.inputValidationInfoBackground,\n                inputValidationInfoForeground: this.inputValidationInfoForeground,\n                inputValidationInfoBorder: this.inputValidationInfoBorder,\n                inputValidationWarningBackground: this.inputValidationWarningBackground,\n                inputValidationWarningForeground: this.inputValidationWarningForeground,\n                inputValidationWarningBorder: this.inputValidationWarningBorder,\n                inputValidationErrorBackground: this.inputValidationErrorBackground,\n                inputValidationErrorForeground: this.inputValidationErrorForeground,\n                inputValidationErrorBorder: this.inputValidationErrorBorder\n            }, this.inputBox.style(e))\n        }\n        select() {\n            this.inputBox.select()\n        }\n        focus() {\n            this.inputBox.focus()\n        }\n        getPreserveCase() {\n            return this.preserveCase.checked\n        }\n        setPreserveCase(e) {\n            this.preserveCase.checked = e\n        }\n        focusOnPreserve() {\n            this.preserveCase.focus()\n        }\n        validate() {\n            this.inputBox && this.inputBox.validate()\n        }\n        set width(e) {\n            this.inputBox.paddingRight = this.cachedOptionsWidth, this.inputBox.width = e, this.domNode.style.width = e + \"px\"\n        }\n        dispose() {\n            super.dispose()\n        }\n    }\n    y = i(128);\n    var ht = i(51),\n        ut = i(109),\n        pt = i(90),\n        gt = i(17),\n        ft = i(39),\n        mt = i(15),\n        vt = i(114);\n    class bt {\n        constructor() {\n            this.value = \"\", this.pos = 0\n        }\n        static isDigitCharacter(e) {\n            return 48 <= e && e <= 57\n        }\n        static isVariableCharacter(e) {\n            return 95 === e || 97 <= e && e <= 122 || 65 <= e && e <= 90\n        }\n        text(e) {\n            this.value = e, this.pos = 0\n        }\n        tokenText(e) {\n            return this.value.substr(e.pos, e.len)\n        }\n        next() {\n            if (this.pos >= this.value.length) return {\n                type: 14,\n                pos: this.pos,\n                len: 0\n            };\n            var e = this.pos;\n            let t, i = 0,\n                n = this.value.charCodeAt(e);\n            if (t = bt._table[n], \"number\" == typeof t) return this.pos += 1, {\n                type: t,\n                pos: e,\n                len: 1\n            };\n            if (bt.isDigitCharacter(n)) {\n                for (t = 8; i += 1, n = this.value.charCodeAt(e + i), bt.isDigitCharacter(n););\n                return this.pos += i, {\n                    type: t,\n                    pos: e,\n                    len: i\n                }\n            }\n            if (bt.isVariableCharacter(n)) {\n                for (t = 9; n = this.value.charCodeAt(e + ++i), bt.isVariableCharacter(n) || bt.isDigitCharacter(n););\n                return this.pos += i, {\n                    type: t,\n                    pos: e,\n                    len: i\n                }\n            }\n            for (t = 10; i += 1, n = this.value.charCodeAt(e + i), !isNaN(n) && void 0 === bt._table[n] && !bt.isDigitCharacter(n) && !bt.isVariableCharacter(n););\n            return this.pos += i, {\n                type: t,\n                pos: e,\n                len: i\n            }\n        }\n    }\n    bt._table = {\n        36: 0,\n        58: 1,\n        44: 2,\n        123: 3,\n        125: 4,\n        92: 5,\n        47: 6,\n        124: 7,\n        43: 11,\n        45: 12,\n        63: 13\n    };\n    class _t {\n        constructor() {\n            this._children = []\n        }\n        appendChild(e) {\n            return e instanceof wt && this._children[this._children.length - 1] instanceof wt ? this._children[this._children.length - 1].value += e.value : (e.parent = this)._children.push(e), this\n        }\n        replace(e, t) {\n            const {\n                parent: i\n            } = e;\n            e = i.children.indexOf(e);\n            const n = i.children.slice(0);\n            n.splice(e, 1, ...t), i._children = n,\n                function e(t, i) {\n                    for (const n of t) n.parent = i, e(n.children, n)\n                }(t, i)\n        }\n        get children() {\n            return this._children\n        }\n        get snippet() {\n            let e = this;\n            for (;;) {\n                if (!e) return;\n                if (e instanceof Et) return e;\n                e = e.parent\n            }\n        }\n        toString() {\n            return this.children.reduce((e, t) => e + t.toString(), \"\")\n        }\n        len() {\n            return 0\n        }\n    }\n    class wt extends _t {\n        constructor(e) {\n            super(), this.value = e\n        }\n        toString() {\n            return this.value\n        }\n        len() {\n            return this.value.length\n        }\n        clone() {\n            return new wt(this.value)\n        }\n    }\n    class yt extends _t {}\n    class Ct extends yt {\n        constructor(e) {\n            super(), this.index = e\n        }\n        static compareByIndex(e, t) {\n            return e.index === t.index ? 0 : e.isFinalTabstop ? 1 : t.isFinalTabstop || e.index < t.index ? -1 : e.index > t.index ? 1 : 0\n        }\n        get isFinalTabstop() {\n            return 0 === this.index\n        }\n        get choice() {\n            return 1 === this._children.length && this._children[0] instanceof xt ? this._children[0] : void 0\n        }\n        clone() {\n            let e = new Ct(this.index);\n            return this.transform && (e.transform = this.transform.clone()), e._children = this.children.map(e => e.clone()), e\n        }\n    }\n    class xt extends _t {\n        constructor() {\n            super(...arguments), this.options = []\n        }\n        appendChild(e) {\n            return e instanceof wt && (e.parent = this).options.push(e), this\n        }\n        toString() {\n            return this.options[0].value\n        }\n        len() {\n            return this.options[0].len()\n        }\n        clone() {\n            var e = new xt;\n            return this.options.forEach(e.appendChild, e), e\n        }\n    }\n    class St extends _t {\n        constructor() {\n            super(...arguments), this.regexp = new RegExp(\"\")\n        }\n        resolve(e) {\n            const t = this;\n            let i = !1,\n                n = e.replace(this.regexp, (function() {\n                    return i = !0, t._replace(Array.prototype.slice.call(arguments, 0, -2))\n                }));\n            return !i && this._children.some(e => e instanceof kt && Boolean(e.elseValue)) && (n = this._replace([])), n\n        }\n        _replace(e) {\n            let t = \"\";\n            for (const n of this._children) {\n                var i;\n                n instanceof kt ? (i = e[n.index] || \"\", t += i = n.resolve(i)) : t += n.toString()\n            }\n            return t\n        }\n        toString() {\n            return \"\"\n        }\n        clone() {\n            let e = new St;\n            return e.regexp = new RegExp(this.regexp.source, (this.regexp.ignoreCase ? \"i\" : \"\") + (this.regexp.global ? \"g\" : \"\")), e._children = this.children.map(e => e.clone()), e\n        }\n    }\n    class kt extends _t {\n        constructor(e, t, i, n) {\n            super(), this.index = e, this.shorthandName = t, this.ifValue = i, this.elseValue = n\n        }\n        resolve(e) {\n            return \"upcase\" === this.shorthandName ? e ? e.toLocaleUpperCase() : \"\" : \"downcase\" === this.shorthandName ? e ? e.toLocaleLowerCase() : \"\" : \"capitalize\" === this.shorthandName ? e ? e[0].toLocaleUpperCase() + e.substr(1) : \"\" : \"pascalcase\" === this.shorthandName ? e ? this._toPascalCase(e) : \"\" : \"camelcase\" === this.shorthandName ? e ? this._toCamelCase(e) : \"\" : Boolean(e) && \"string\" == typeof this.ifValue ? this.ifValue : Boolean(e) || \"string\" != typeof this.elseValue ? e || \"\" : this.elseValue\n        }\n        _toPascalCase(e) {\n            const t = e.match(/[a-z0-9]+/gi);\n            return t ? t.map(e => e.charAt(0).toUpperCase() + e.substr(1).toLowerCase()).join(\"\") : e\n        }\n        _toCamelCase(e) {\n            const t = e.match(/[a-z0-9]+/gi);\n            return t ? t.map((e, t) => 0 === t ? e.toLowerCase() : e.charAt(0).toUpperCase() + e.substr(1).toLowerCase()).join(\"\") : e\n        }\n        clone() {\n            return new kt(this.index, this.shorthandName, this.ifValue, this.elseValue)\n        }\n    }\n    class Lt extends yt {\n        constructor(e) {\n            super(), this.name = e\n        }\n        resolve(e) {\n            let t = e.resolve(this);\n            return this.transform && (t = this.transform.resolve(t || \"\")), void 0 !== t && (this._children = [new wt(t)], !0)\n        }\n        clone() {\n            const e = new Lt(this.name);\n            return this.transform && (e.transform = this.transform.clone()), e._children = this.children.map(e => e.clone()), e\n        }\n    }\n\n    function Ot(e, t) {\n        const i = [...e];\n        for (; 0 < i.length;) {\n            const e = i.shift();\n            if (!t(e)) break;\n            i.unshift(...e.children)\n        }\n    }\n    class Et extends _t {\n        get placeholderInfo() {\n            if (!this._placeholders) {\n                let e, t = [];\n                this.walk((function(i) {\n                    return i instanceof Ct && (t.push(i), e = !e || e.index < i.index ? i : e), !0\n                })), this._placeholders = {\n                    all: t,\n                    last: e\n                }\n            }\n            return this._placeholders\n        }\n        get placeholders() {\n            var {\n                all: e\n            } = this.placeholderInfo;\n            return e\n        }\n        offset(e) {\n            let t = 0,\n                i = !1;\n            return this.walk(n => n === e ? !(i = !0) : (t += n.len(), !0)), i ? t : -1\n        }\n        fullLen(e) {\n            let t = 0;\n            return Ot([e], e => (t += e.len(), !0)), t\n        }\n        enclosingPlaceholders(e) {\n            let t = [],\n                {\n                    parent: i\n                } = e;\n            for (; i;) i instanceof Ct && t.push(i), i = i.parent;\n            return t\n        }\n        resolveVariables(e) {\n            return this.walk(t => (t instanceof Lt && t.resolve(e) && (this._placeholders = void 0), !0)), this\n        }\n        appendChild(e) {\n            return this._placeholders = void 0, super.appendChild(e)\n        }\n        replace(e, t) {\n            return this._placeholders = void 0, super.replace(e, t)\n        }\n        clone() {\n            var e = new Et;\n            return this._children = this.children.map(e => e.clone()), e\n        }\n        walk(e) {\n            Ot(this.children, e)\n        }\n    }\n    class Nt {\n        constructor() {\n            this._scanner = new bt, this._token = {\n                type: 14,\n                pos: 0,\n                len: 0\n            }\n        }\n        static escape(e) {\n            return e.replace(/\\$|}|\\\\/g, \"\\\\$&\")\n        }\n        static guessNeedsClipboard(e) {\n            return /\\${?CLIPBOARD/.test(e)\n        }\n        parse(e, t, i) {\n            this._scanner.text(e), this._token = this._scanner.next();\n            const n = new Et;\n            for (; this._parse(n););\n            const r = new Map,\n                o = [];\n            let s = 0;\n            n.walk(e => (e instanceof Ct && (s += 1, e.isFinalTabstop ? r.set(0, void 0) : !r.has(e.index) && 0 < e.children.length ? r.set(e.index, e.children) : o.push(e)), !0));\n            for (const e of o) {\n                var a = r.get(e.index);\n                if (a) {\n                    const t = new Ct(e.index);\n                    t.transform = e.transform;\n                    for (const e of a) t.appendChild(e.clone());\n                    n.replace(e, [t])\n                }\n            }\n            return i = i || 0 < s && t, !r.has(0) && i && n.appendChild(new Ct(0)), n\n        }\n        _accept(e, t) {\n            return (void 0 === e || this._token.type === e) && (t = !t || this._scanner.tokenText(this._token), this._token = this._scanner.next(), t)\n        }\n        _backTo(e) {\n            return this._scanner.pos = e.pos + e.len, this._token = e, !1\n        }\n        _until(e) {\n            for (var t = this._token; this._token.type !== e;) {\n                if (14 === this._token.type) return !1;\n                if (5 === this._token.type) {\n                    var i = this._scanner.next();\n                    if (0 !== i.type && 4 !== i.type && 5 !== i.type) return !1\n                }\n                this._token = this._scanner.next()\n            }\n            return t = this._scanner.value.substring(t.pos, this._token.pos).replace(/\\\\(\\$|}|\\\\)/g, \"$1\"), this._token = this._scanner.next(), t\n        }\n        _parse(e) {\n            return this._parseEscaped(e) || this._parseTabstopOrVariableName(e) || this._parseComplexPlaceholder(e) || this._parseComplexVariable(e) || this._parseAnything(e)\n        }\n        _parseEscaped(e) {\n            let t;\n            return !!(t = this._accept(5, !0)) && (t = this._accept(0, !0) || this._accept(4, !0) || this._accept(5, !0) || t, e.appendChild(new wt(t)), !0)\n        }\n        _parseTabstopOrVariableName(e) {\n            let t;\n            var i = this._token;\n            return this._accept(0) && (t = this._accept(9, !0) || this._accept(8, !0)) ? (e.appendChild(/^\\d+$/.test(t) ? new Ct(Number(t)) : new Lt(t)), !0) : this._backTo(i)\n        }\n        _parseComplexPlaceholder(e) {\n            let t;\n            var i = this._token;\n            if (!(this._accept(0) && this._accept(3) && (t = this._accept(8, !0)))) return this._backTo(i);\n            const n = new Ct(Number(t));\n            if (this._accept(1))\n                for (;;) {\n                    if (this._accept(4)) return e.appendChild(n), !0;\n                    if (!this._parse(n)) return e.appendChild(new wt(\"${\" + t + \":\")), n.children.forEach(e.appendChild, e), !0\n                } else {\n                    if (!(0 < n.index && this._accept(7))) return this._accept(6) ? this._parseTransform(n) ? (e.appendChild(n), !0) : (this._backTo(i), !1) : this._accept(4) ? (e.appendChild(n), !0) : this._backTo(i);\n                    for (var r = new xt;;) {\n                        if (this._parseChoiceElement(r)) {\n                            if (this._accept(2)) continue;\n                            if (this._accept(7) && (n.appendChild(r), this._accept(4))) return e.appendChild(n), !0\n                        }\n                        return this._backTo(i), !1\n                    }\n                }\n        }\n        _parseChoiceElement(e) {\n            var t = this._token;\n            const i = [];\n            for (; 2 !== this._token.type && 7 !== this._token.type;) {\n                let e;\n                if (e = (e = this._accept(5, !0)) ? this._accept(2, !0) || this._accept(7, !0) || this._accept(5, !0) || e : this._accept(void 0, !0), !e) return this._backTo(t), !1;\n                i.push(e)\n            }\n            return 0 === i.length ? (this._backTo(t), !1) : (e.appendChild(new wt(i.join(\"\"))), !0)\n        }\n        _parseComplexVariable(e) {\n            let t;\n            var i = this._token;\n            if (!(this._accept(0) && this._accept(3) && (t = this._accept(9, !0)))) return this._backTo(i);\n            const n = new Lt(t);\n            if (!this._accept(1)) return this._accept(6) ? this._parseTransform(n) ? (e.appendChild(n), !0) : (this._backTo(i), !1) : this._accept(4) ? (e.appendChild(n), !0) : this._backTo(i);\n            for (;;) {\n                if (this._accept(4)) return e.appendChild(n), !0;\n                if (!this._parse(n)) return e.appendChild(new wt(\"${\" + t + \":\")), n.children.forEach(e.appendChild, e), !0\n            }\n        }\n        _parseTransform(e) {\n            let t = new St,\n                i = \"\",\n                n = \"\";\n            for (; !this._accept(6);) {\n                let e;\n                if (e = this._accept(5, !0)) e = this._accept(6, !0) || e, i += e;\n                else {\n                    if (14 === this._token.type) return !1;\n                    i += this._accept(void 0, !0)\n                }\n            }\n            for (; !this._accept(6);) {\n                let e;\n                if (e = this._accept(5, !0)) e = this._accept(5, !0) || this._accept(6, !0) || e, t.appendChild(new wt(e));\n                else if (!this._parseFormatString(t) && !this._parseAnything(t)) return !1\n            }\n            for (; !this._accept(4);) {\n                if (14 === this._token.type) return !1;\n                n += this._accept(void 0, !0)\n            }\n            try {\n                t.regexp = new RegExp(i, n)\n            } catch (e) {\n                return !1\n            }\n            return e.transform = t, !0\n        }\n        _parseFormatString(e) {\n            var t = this._token;\n            if (!this._accept(0)) return !1;\n            let i = !1;\n            this._accept(3) && (i = !0);\n            var n = this._accept(8, !0);\n            if (!n) return this._backTo(t), !1;\n            if (!i) return e.appendChild(new kt(Number(n))), !0;\n            if (this._accept(4)) return e.appendChild(new kt(Number(n))), !0;\n            if (!this._accept(1)) return this._backTo(t), !1;\n            if (this._accept(6)) {\n                var r = this._accept(9, !0);\n                return r && this._accept(4) ? (e.appendChild(new kt(Number(n), r)), !0) : (this._backTo(t), !1)\n            }\n            if (this._accept(11)) {\n                if (r = this._until(4)) return e.appendChild(new kt(Number(n), void 0, r, void 0)), !0\n            } else if (this._accept(12)) {\n                var o = this._until(4);\n                if (o) return e.appendChild(new kt(Number(n), void 0, void 0, o)), !0\n            } else if (this._accept(13)) {\n                if (o = this._until(1)) {\n                    var s = this._until(4);\n                    if (s) return e.appendChild(new kt(Number(n), void 0, o, s)), !0\n                }\n            } else if (s = this._until(4)) return e.appendChild(new kt(Number(n), void 0, void 0, s)), !0;\n            return this._backTo(t), !1\n        }\n        _parseAnything(e) {\n            return 14 !== this._token.type && (e.appendChild(new wt(this._scanner.tokenText(this._token))), this._accept(void 0), !0)\n        }\n    }\n    var Dt = i(63),\n        It = (C = i(46), function(e, t, i, n) {\n            return new(i = i || Promise)((function(r, o) {\n                function s(e) {\n                    try {\n                        l(n.next(e))\n                    } catch (e) {\n                        o(e)\n                    }\n                }\n\n                function a(e) {\n                    try {\n                        l(n.throw(e))\n                    } catch (e) {\n                        o(e)\n                    }\n                }\n\n                function l(e) {\n                    var t;\n                    e.done ? r(e.value) : ((t = e.value) instanceof i ? t : new i((function(e) {\n                        e(t)\n                    }))).then(s, a)\n                }\n                l((n = n.apply(e, t || [])).next())\n            }))\n        });\n    const Tt = {\n        Visible: new ve.c(\"suggestWidgetVisible\", !1, Object(Ue.a)(\"suggestWidgetVisible\", \"Whether suggestion are visible\")),\n        DetailsVisible: new ve.c(\"suggestWidgetDetailsVisible\", !1, Object(Ue.a)(\"suggestWidgetDetailsVisible\", \"Whether suggestion details are visible\")),\n        MultipleSuggestions: new ve.c(\"suggestWidgetMultipleSuggestions\", !1, Object(Ue.a)(\"suggestWidgetMultipleSuggestions\", \"Whether there are multiple suggestions to pick from\")),\n        MakesTextEdit: new ve.c(\"suggestionMakesTextEdit\", !0, Object(Ue.a)(\"suggestionMakesTextEdit\", \"Whether inserting the current suggestion yields in a change or has everything already been typed\")),\n        AcceptSuggestionsOnEnter: new ve.c(\"acceptSuggestionOnEnter\", !0, Object(Ue.a)(\"acceptSuggestionOnEnter\", \"Whether suggestions are inserted when pressing Enter\")),\n        HasInsertAndReplaceRange: new ve.c(\"suggestionHasInsertAndReplaceRange\", !1, Object(Ue.a)(\"suggestionHasInsertAndReplaceRange\", \"Whether the current suggestion has insert and replace behaviour\")),\n        InsertMode: new ve.c(\"suggestionInsertMode\", void 0, {\n            type: \"string\",\n            description: Object(Ue.a)(\"suggestionInsertMode\", \"Whether the default behaviour is to insert or replace\")\n        }),\n        CanResolve: new ve.c(\"suggestionCanResolve\", !1, Object(Ue.a)(\"suggestionCanResolve\", \"Whether the current suggestion supports to resolve further details\"))\n    };\n    new Dt.b(\"suggestWidgetStatusBar\");\n    class Mt {\n        constructor(e, t, i, n) {\n            this.position = e, this.completion = t, this.container = i, this.provider = n, this.isInvalid = !1, this.score = ut.a.Default, this.distance = 0, this.textLabel = (\"string\" == typeof t.label ? t : t.label).label, this.labelLow = this.textLabel.toLowerCase(), this.isInvalid = !this.textLabel, this.sortTextLow = t.sortText && t.sortText.toLowerCase(), this.filterTextLow = t.filterText && t.filterText.toLowerCase(), ee.a.isIRange(t.range) ? (this.editStart = new J.a(t.range.startLineNumber, t.range.startColumn), this.editInsertEnd = new J.a(t.range.endLineNumber, t.range.endColumn), this.editReplaceEnd = new J.a(t.range.endLineNumber, t.range.endColumn), this.isInvalid = this.isInvalid || ee.a.spansMultipleLines(t.range) || t.range.startLineNumber !== e.lineNumber) : (this.editStart = new J.a(t.range.insert.startLineNumber, t.range.insert.startColumn), this.editInsertEnd = new J.a(t.range.insert.endLineNumber, t.range.insert.endColumn), this.editReplaceEnd = new J.a(t.range.replace.endLineNumber, t.range.replace.endColumn), this.isInvalid = this.isInvalid || ee.a.spansMultipleLines(t.range.insert) || ee.a.spansMultipleLines(t.range.replace) || t.range.insert.startLineNumber !== e.lineNumber || t.range.replace.startLineNumber !== e.lineNumber || t.range.insert.startColumn !== t.range.replace.startColumn), \"function\" != typeof n.resolveCompletionItem && (this._resolveCache = Promise.resolve(), this._isResolved = !0)\n        }\n        get isResolved() {\n            return !!this._isResolved\n        }\n        resolve(e) {\n            return It(this, void 0, void 0, (function*() {\n                if (!this._resolveCache) {\n                    const t = e.onCancellationRequested(() => {\n                        this._resolveCache = void 0, this._isResolved = !1\n                    });\n                    this._resolveCache = Promise.resolve(this.provider.resolveCompletionItem(this.completion, e)).then(e => {\n                        Object.assign(this.completion, e), this._isResolved = !0, t.dispose()\n                    }, e => {\n                        Object(it.e)(e) && (this._resolveCache = void 0, this._isResolved = !1)\n                    })\n                }\n                return this._resolveCache\n            }))\n        }\n    }\n    class Pt {\n        constructor(e = 2, t = new Set, i = new Set, n = !0) {\n            this.snippetSortOrder = e, this.kindFilter = t, this.providerFilter = i, this.showDeprecated = n\n        }\n    }\n    Pt.default = new Pt;\n    class At {\n        constructor(e, t, i, n) {\n            this.items = e, this.needsClipboard = t, this.durations = i, this.disposable = n\n        }\n    }\n\n    function Rt(e, t) {\n        if (e.sortTextLow && t.sortTextLow) {\n            if (e.sortTextLow < t.sortTextLow) return -1;\n            if (e.sortTextLow > t.sortTextLow) return 1\n        }\n        return e.completion.label < t.completion.label ? -1 : e.completion.label > t.completion.label ? 1 : e.completion.kind - t.completion.kind\n    }\n    const Ft = new Map;\n    Ft.set(0, (function(e, t) {\n        if (e.completion.kind !== t.completion.kind) {\n            if (27 === e.completion.kind) return -1;\n            if (27 === t.completion.kind) return 1\n        }\n        return Rt(e, t)\n    })), Ft.set(2, (function(e, t) {\n        if (e.completion.kind !== t.completion.kind) {\n            if (27 === e.completion.kind) return 1;\n            if (27 === t.completion.kind) return -1\n        }\n        return Rt(e, t)\n    })), Ft.set(1, Rt), C.a.registerCommand(\"_executeCompletionItemProvider\", (e, ...t) => It(void 0, void 0, void 0, (function*() {\n        var [i, n, r, o] = t;\n        Object(gt.b)(ft.a.isUri(i)), Object(gt.b)(J.a.isIPosition(n)), Object(gt.b)(\"string\" == typeof r || !r), Object(gt.b)(\"number\" == typeof o || !o);\n        const s = yield e.get(vt.a).createModelReference(i);\n        try {\n            const e = {\n                    incomplete: !1,\n                    suggestions: []\n                },\n                t = [],\n                i = yield function(e, t, i = Pt.default, n = {\n                    triggerKind: 0\n                }, r = ht.a.None) {\n                    return It(this, void 0, void 0, (function*() {\n                        const o = new pt.a(!0);\n                        t = t.clone();\n                        const s = (g = e.getWordAtPosition(t)) ? new ee.a(t.lineNumber, g.startColumn, t.lineNumber, g.endColumn) : ee.a.fromPositions(t),\n                            a = {\n                                replace: s,\n                                insert: s.setEndPosition(t.lineNumber, t.column)\n                            },\n                            l = [],\n                            d = new q.b,\n                            c = [];\n                        let h = !1;\n                        const u = (e, n, r) => {\n                            var o, s;\n                            if (n) {\n                                for (var u of n.suggestions) i.kindFilter.has(u.kind) || !i.showDeprecated && null !== (o = null == u ? void 0 : u.tags) && void 0 !== o && o.includes(1) || (u.range || (u.range = a), u.sortText || (u.sortText = (\"string\" == typeof u.label ? u : u.label).label), !h && u.insertTextRules && 4 & u.insertTextRules && (h = Nt.guessNeedsClipboard(u.insertText)), l.push(new Mt(t, u, n, e)));\n                                Object(q.g)(n) && d.add(n), c.push({\n                                    providerName: null !== (s = e._debugDisplayName) && void 0 !== s ? s : \"unkown_provider\",\n                                    elapsedProvider: null !== (s = n.duration) && void 0 !== s ? s : -1,\n                                    elapsedOverall: r.elapsed()\n                                })\n                            }\n                        };\n                        var p, g = It(this, void 0, void 0, (function*() {}));\n                        for (p of mt.d.orderedGroups(e)) {\n                            var f = l.length;\n                            if (yield Promise.all(p.map(o => It(this, void 0, void 0, (function*() {\n                                    if (!(0 < i.providerFilter.size) || i.providerFilter.has(o)) try {\n                                        var s = new pt.a(!0),\n                                            a = yield o.provideCompletionItems(e, t, n, r);\n                                        u(o, a, s)\n                                    } catch (s) {\n                                        Object(it.g)(s)\n                                    }\n                                })))), f !== l.length || r.isCancellationRequested) break\n                        }\n                        return yield g, r.isCancellationRequested ? (d.dispose(), Promise.reject(Object(it.b)())) : new At(l.sort((g = i.snippetSortOrder, Ft.get(g))), h, {\n                            entries: c,\n                            elapsed: o.elapsed()\n                        }, d)\n                    }))\n                }(s.object.textEditorModel, J.a.lift(n), void 0, {\n                    triggerCharacter: r,\n                    triggerKind: r ? 1 : 0\n                });\n            for (const n of i.items) t.length < (null != o ? o : 0) && t.push(n.resolve(ht.a.None)), e.incomplete = e.incomplete || n.container.incomplete, e.suggestions.push(n.completion);\n            try {\n                return yield Promise.all(t), e\n            } finally {\n                setTimeout(() => i.disposable.dispose(), 100)\n            }\n        } finally {\n            s.dispose()\n        }\n    })));\n    const jt = new class {\n        constructor() {\n            this.onlyOnceSuggestions = []\n        }\n        provideCompletionItems() {\n            var e = {\n                suggestions: this.onlyOnceSuggestions.slice(0)\n            };\n            return this.onlyOnceSuggestions.length = 0, e\n        }\n    };\n    mt.d.register(\"*\", jt), F = function(e, t, i, n) {\n        var r, o = arguments.length,\n            s = o < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n);\n        else\n            for (var a = e.length - 1; 0 <= a; a--)(r = e[a]) && (s = (o < 3 ? r(s) : 3 < o ? r(t, i, s) : r(t, i)) || s);\n        return 3 < o && s && Object.defineProperty(t, i, s), s\n    }, B = function(e, t) {\n        return function(i, n) {\n            t(i, n, e)\n        }\n    };\n    const Bt = \"historyNavigationWidget\",\n        Vt = \"historyNavigationForwardsEnabled\",\n        Wt = \"historyNavigationBackwardsEnabled\";\n\n    function zt(e, t) {\n        return e.getContext(document.activeElement).getValue(t)\n    }\n\n    function Ht(e, t) {\n        var i, n = e.createScoped(t.target);\n        return i = n, e = t, t = Bt, new ve.c(t, e).bindTo(i), {\n            scopedContextKeyService: n,\n            historyNavigationForwardsEnablement: new ve.c(Vt, !0).bindTo(n),\n            historyNavigationBackwardsEnablement: new ve.c(Wt, !0).bindTo(n)\n        }\n    }\n    let Ut = class extends st {\n        constructor(e, t, i, n, r = !1) {\n            super(e, t, r, i), this._register(Ht(n, {\n                target: this.inputBox.element,\n                historyNavigator: this.inputBox\n            }).scopedContextKeyService)\n        }\n    };\n    Ut = F([B(3, ve.b)], Ut);\n    let Kt = class extends ct {\n        constructor(e, t, i, n, r = !1) {\n            super(e, t, r, i), this._register(Ht(n, {\n                target: this.inputBox.element,\n                historyNavigator: this.inputBox\n            }).scopedContextKeyService)\n        }\n    };\n\n    function $t(e) {\n        var t;\n        return \"Up\" === (null === (t = e.lookupKeybinding(\"history.showPrevious\")) || void 0 === t ? void 0 : t.getElectronAccelerator()) && \"Down\" === (null === (e = e.lookupKeybinding(\"history.showNext\")) || void 0 === e ? void 0 : e.getElectronAccelerator())\n    }\n    Kt = F([B(3, ve.b)], Kt), y.a.registerCommandAndKeybindingRule({\n        id: \"history.showPrevious\",\n        weight: 200,\n        when: ve.a.and(ve.a.has(Bt), ve.a.equals(Wt, !0), Tt.Visible.isEqualTo(!1)),\n        primary: 16,\n        secondary: [528],\n        handler: e => {\n            if (e = zt(e.get(ve.b), Bt)) {\n                e.historyNavigator.showPreviousValue()\n            }\n        }\n    }), y.a.registerCommandAndKeybindingRule({\n        id: \"history.showNext\",\n        weight: 200,\n        when: ve.a.and(ve.a.has(Bt), ve.a.equals(Vt, !0), Tt.Visible.isEqualTo(!1)),\n        primary: 18,\n        secondary: [530],\n        handler: e => {\n            if (e = zt(e.get(ve.b), Bt)) {\n                e.historyNavigator.showNextValue()\n            }\n        }\n    });\n    var qt = i(87);\n    const Gt = Object(qt.b)(\"find-selection\", Ve.b.selection, Ue.a(\"findSelectionIcon\", \"Icon for 'Find in Selection' in the editor find widget.\")),\n        Yt = Object(qt.b)(\"find-collapsed\", Ve.b.chevronRight, Ue.a(\"findCollapsedIcon\", \"Icon to indicate that the editor find widget is collapsed.\")),\n        Zt = Object(qt.b)(\"find-expanded\", Ve.b.chevronDown, Ue.a(\"findExpandedIcon\", \"Icon to indicate that the editor find widget is expanded.\")),\n        Xt = Object(qt.b)(\"find-replace\", Ve.b.replace, Ue.a(\"findReplaceIcon\", \"Icon for 'Replace' in the editor find widget.\")),\n        Qt = Object(qt.b)(\"find-replace-all\", Ve.b.replaceAll, Ue.a(\"findReplaceAllIcon\", \"Icon for 'Replace All' in the editor find widget.\")),\n        Jt = Object(qt.b)(\"find-previous-match\", Ve.b.arrowUp, Ue.a(\"findPreviousMatchIcon\", \"Icon for 'Find Previous' in the editor find widget.\")),\n        ei = Object(qt.b)(\"find-next-match\", Ve.b.arrowDown, Ue.a(\"findNextMatchIcon\", \"Icon for 'Find Next' in the editor find widget.\")),\n        ti = Ue.a(\"label.find\", \"Find\"),\n        ii = Ue.a(\"placeholder.find\", \"Find\"),\n        ni = Ue.a(\"label.previousMatchButton\", \"Previous Match\"),\n        ri = Ue.a(\"label.nextMatchButton\", \"Next Match\"),\n        oi = Ue.a(\"label.toggleSelectionFind\", \"Find in Selection\"),\n        si = Ue.a(\"label.closeButton\", \"Close\"),\n        ai = Ue.a(\"label.replace\", \"Replace\"),\n        li = Ue.a(\"placeholder.replace\", \"Replace\"),\n        di = Ue.a(\"label.replaceButton\", \"Replace\"),\n        ci = Ue.a(\"label.replaceAllButton\", \"Replace All\"),\n        hi = Ue.a(\"label.toggleReplaceButton\", \"Toggle Replace\"),\n        ui = Ue.a(\"title.matchesCountLimit\", \"Only the first {0} results are highlighted, but all find operations work on the entire text.\", Fe),\n        pi = Ue.a(\"label.matchesLocation\", \"{0} of {1}\"),\n        gi = Ue.a(\"label.noResults\", \"No results\");\n    let fi = 69;\n    const mi = \"ctrlEnterReplaceAll.windows.donotask\",\n        vi = nt.f ? 256 : 2048;\n    class bi {\n        constructor(e) {\n            this.afterLineNumber = e, this.heightInPx = 33, this.suppressMouseDown = !1, this.domNode = document.createElement(\"div\"), this.domNode.className = \"dock-find-viewzone\"\n        }\n    }\n\n    function _i(e, t, i) {\n        t = !!t.match(/\\n/), i && t && 0 < i.selectionStart && e.stopPropagation()\n    }\n\n    function wi(e, t, i) {\n        t = !!t.match(/\\n/), i && t && i.selectionEnd < i.value.length && e.stopPropagation()\n    }\n    class yi extends v.a {\n        constructor(e, t, i, n, r, o, s, a, l) {\n            super(), this._cachedHeight = null, this._revealTimeouts = [], this._codeEditor = e, this._controller = t, this._state = i, this._contextViewProvider = n, this._keybindingService = r, this._contextKeyService = o, this._storageService = a, this._notificationService = l, this._ctrlEnterReplaceAllWarningPrompted = !!a.getBoolean(mi, 0), this._isVisible = !1, this._isReplaceVisible = !1, this._ignoreChangeEvent = !1, this._updateHistoryDelayer = new $.a(500), this._register(Object(q.i)(() => this._updateHistoryDelayer.cancel())), this._register(this._state.onFindReplaceStateChange(e => this._onStateChanged(e))), this._buildDomNode(), this._updateButtons(), this._tryUpdateWidgetWidth(), this._findInput.inputBox.layout(), this._register(this._codeEditor.onDidChange配置(e => {\n                e.hasChanged(80) && (this._codeEditor.getOption(80) && this._state.change({\n                    isReplaceRevealed: !1\n                }, !1), this._updateButtons()), e.hasChanged(129) && this._tryUpdateWidgetWidth(), e.hasChanged(2) && this.updateAccessibilitySupport(), e.hasChanged(35) && ((e = this._codeEditor.getOption(35).addExtraSpaceOnTop) && !this._viewZone && (this._viewZone = new bi(0), this._showViewZone()), !e && this._viewZone && this._removeViewZone())\n            })), this.updateAccessibilitySupport(), this._register(this._codeEditor.onDidChangeCursorSelection(() => {\n                this._isVisible && this._updateToggleSelectionFindButton()\n            })), this._register(this._codeEditor.onDidFocusEditorWidget(() => function(e, t, i, n) {\n                return new(i = i || Promise)((function(r, o) {\n                    function s(e) {\n                        try {\n                            l(n.next(e))\n                        } catch (e) {\n                            o(e)\n                        }\n                    }\n\n                    function a(e) {\n                        try {\n                            l(n.throw(e))\n                        } catch (e) {\n                            o(e)\n                        }\n                    }\n\n                    function l(e) {\n                        var t;\n                        e.done ? r(e.value) : ((t = e.value) instanceof i ? t : new i((function(e) {\n                            e(t)\n                        }))).then(s, a)\n                    }\n                    l((n = n.apply(e, t || [])).next())\n                }))\n            }(this, void 0, void 0, (function*() {\n                var e;\n                !this._isVisible || (e = yield this._controller.getGlobalBufferTerm()) && e !== this._state.searchString && (this._state.change({\n                    searchString: e\n                }, !1), this._findInput.select())\n            })))), this._findInputFocused = _e.bindTo(o), this._findFocusTracker = this._register(Be.T(this._findInput.inputBox.inputElement)), this._register(this._findFocusTracker.onDidFocus(() => {\n                this._findInputFocused.set(!0), this._updateSearchScope()\n            })), this._register(this._findFocusTracker.onDidBlur(() => {\n                this._findInputFocused.set(!1)\n            })), this._replaceInputFocused = we.bindTo(o), this._replaceFocusTracker = this._register(Be.T(this._replaceInput.inputBox.inputElement)), this._register(this._replaceFocusTracker.onDidFocus(() => {\n                this._replaceInputFocused.set(!0), this._updateSearchScope()\n            })), this._register(this._replaceFocusTracker.onDidBlur(() => {\n                this._replaceInputFocused.set(!1)\n            })), this._codeEditor.addOverlayWidget(this), this._codeEditor.getOption(35).addExtraSpaceOnTop && (this._viewZone = new bi(0)), this._applyTheme(s.getColorTheme()), this._register(s.onDidColorThemeChange(this._applyTheme.bind(this))), this._register(this._codeEditor.onDidChangeModel(() => {\n                this._isVisible && (this._viewZoneId = void 0)\n            })), this._register(this._codeEditor.onDidScrollChange(e => {\n                e.scrollTopChanged ? this._layoutViewZone() : setTimeout(() => {\n                    this._layoutViewZone()\n                }, 0)\n            }))\n        }\n        getId() {\n            return yi.ID\n        }\n        getDomNode() {\n            return this._domNode\n        }\n        getPosition() {\n            return this._isVisible ? {\n                preference: 0\n            } : null\n        }\n        _onStateChanged(e) {\n            if (e.searchString) {\n                try {\n                    this._ignoreChangeEvent = !0, this._findInput.setValue(this._state.searchString)\n                } finally {\n                    this._ignoreChangeEvent = !1\n                }\n                this._updateButtons()\n            }\n            var t;\n            e.replaceString && (this._replaceInput.inputBox.value = this._state.replaceString), e.isRevealed && (this._state.isRevealed ? this._reveal() : this._hide(!0)), e.isReplaceRevealed && (this._state.isReplaceRevealed ? this._codeEditor.getOption(80) || this._isReplaceVisible || (this._isReplaceVisible = !0, this._replaceInput.width = Be.F(this._findInput.domNode), this._updateButtons(), this._replaceInput.inputBox.layout()) : this._isReplaceVisible && (this._isReplaceVisible = !1, this._updateButtons())), (e.isRevealed || e.isReplaceRevealed) && (this._state.isRevealed || this._state.isReplaceRevealed) && this._tryUpdateHeight() && this._showViewZone(), e.isRegex && this._findInput.setRegex(this._state.isRegex), e.wholeWord && this._findInput.setWholeWords(this._state.wholeWord), e.matchCase && this._findInput.setCaseSensitive(this._state.matchCase), e.preserveCase && this._replaceInput.setPreserveCase(this._state.preserveCase), e.searchScope && (this._state.searchScope ? this._toggleSelectionFind.checked = !0 : this._toggleSelectionFind.checked = !1, this._updateToggleSelectionFindButton()), (e.searchString || e.matchesCount || e.matchesPosition) && (t = 0 < this._state.searchString.length && 0 === this._state.matchesCount, this._domNode.classList.toggle(\"no-results\", t), this._updateMatchesCount(), this._updateButtons()), (e.searchString || e.currentMatch) && this._layoutViewZone(), e.updateHistory && this._delayedUpdateHistory(), e.loop && this._updateButtons()\n        }\n        _delayedUpdateHistory() {\n            this._updateHistoryDelayer.trigger(this._updateHistory.bind(this)).then(void 0, it.f)\n        }\n        _updateHistory() {\n            this._state.searchString && this._findInput.inputBox.addToHistory(), this._state.replaceString && this._replaceInput.inputBox.addToHistory()\n        }\n        _updateMatchesCount() {\n            let e;\n            if (this._matchesCount.style.minWidth = fi + \"px\", this._state.matchesCount >= Fe ? this._matchesCount.title = ui : this._matchesCount.title = \"\", this._matchesCount.firstChild && this._matchesCount.removeChild(this._matchesCount.firstChild), 0 < this._state.matchesCount) {\n                let t = String(this._state.matchesCount);\n                this._state.matchesCount >= Fe && (t += \"+\");\n                let i = String(this._state.matchesPosition);\n                \"0\" === i && (i = \"?\"), e = G.v(pi, i, t)\n            } else e = gi;\n            this._matchesCount.appendChild(document.createTextNode(e)), Object(et.a)(this._getAriaLabel(e, this._state.currentMatch, this._state.searchString)), fi = Math.max(fi, this._matchesCount.clientWidth)\n        }\n        _getAriaLabel(e, t, i) {\n            if (e === gi) return \"\" === i ? Ue.a(\"ariaSearchNoResultEmpty\", \"{0} found\", e) : Ue.a(\"ariaSearchNoResult\", \"{0} found for '{1}'\", e, i);\n            if (t) {\n                var n = Ue.a(\"ariaSearchNoResultWithLineNum\", \"{0} found for '{1}', at {2}\", e, i, t.startLineNumber + \":\" + t.startColumn);\n                const r = this._codeEditor.getModel();\n                return r && t.startLineNumber <= r.getLineCount() && 1 <= t.startLineNumber ? `${r.getLineContent(t.startLineNumber)}, ${n}` : n\n            }\n            return Ue.a(\"ariaSearchNoResultWithLineNumNoCurrentMatch\", \"{0} found for '{1}'\", e, i)\n        }\n        _updateToggleSelectionFindButton() {\n            var e = !!(t = this._codeEditor.getSelection()) && (t.startLineNumber !== t.endLineNumber || t.startColumn !== t.endColumn),\n                t = this._toggleSelectionFind.checked;\n            this._isVisible && (t || e) ? this._toggleSelectionFind.enable() : this._toggleSelectionFind.disable()\n        }\n        _updateButtons() {\n            this._findInput.setEnabled(this._isVisible), this._replaceInput.setEnabled(this._isVisible && this._isReplaceVisible), this._updateToggleSelectionFindButton(), this._closeBtn.setEnabled(this._isVisible);\n            var e = 0 < this._state.searchString.length,\n                t = !!this._state.matchesCount;\n            this._prevBtn.setEnabled(this._isVisible && e && t && this._state.canNavigateBack()), this._nextBtn.setEnabled(this._isVisible && e && t && this._state.canNavigateForward()), this._replaceBtn.setEnabled(this._isVisible && this._isReplaceVisible && e), this._replaceAllBtn.setEnabled(this._isVisible && this._isReplaceVisible && e), this._domNode.classList.toggle(\"replaceToggled\", this._isReplaceVisible), this._toggleReplaceBtn.setExpanded(this._isReplaceVisible), e = !this._codeEditor.getOption(80), this._toggleReplaceBtn.setEnabled(this._isVisible && e)\n        }\n        _reveal() {\n            if (this._revealTimeouts.forEach(e => {\n                    clearTimeout(e)\n                }), this._revealTimeouts = [], !this._isVisible) {\n                this._isVisible = !0;\n                const r = this._codeEditor.getSelection();\n                switch (this._codeEditor.getOption(35).autoFindInSelection) {\n                    case \"always\":\n                        this._toggleSelectionFind.checked = !0;\n                        break;\n                    case \"never\":\n                        this._toggleSelectionFind.checked = !1;\n                        break;\n                    case \"multiline\":\n                        var e = !!r && r.startLineNumber !== r.endLineNumber;\n                        this._toggleSelectionFind.checked = e\n                }\n                this._tryUpdateWidgetWidth(), this._updateButtons(), this._revealTimeouts.push(setTimeout(() => {\n                    this._domNode.classList.add(\"visible\"), this._domNode.setAttribute(\"aria-hidden\", \"false\")\n                }, 0)), this._revealTimeouts.push(setTimeout(() => {\n                    this._findInput.validate()\n                }, 200)), this._codeEditor.layoutOverlayWidget(this);\n                let o = !0;\n                var t, i, n;\n                this._codeEditor.getOption(35).seedSearchStringFromSelection && r && (n = this._codeEditor.getDomNode()) && (t = Be.A(n), i = this._codeEditor.getScrolledVisiblePosition(r.getStartPosition()), n = t.left + (i ? i.left : 0), i = i ? i.top : 0, this._viewZone && i < this._viewZone.heightInPx && (r.endLineNumber > r.startLineNumber && (o = !1), (i = Be.D(this._domNode).left) < n && (o = !1), n = this._codeEditor.getScrolledVisiblePosition(r.getEndPosition()), i < t.left + (n ? n.left : 0) && (o = !1))), this._showViewZone(o)\n            }\n        }\n        _hide(e) {\n            this._revealTimeouts.forEach(e => {\n                clearTimeout(e)\n            }), this._revealTimeouts = [], this._isVisible && (this._isVisible = !1, this._updateButtons(), this._domNode.classList.remove(\"visible\"), this._domNode.setAttribute(\"aria-hidden\", \"true\"), this._findInput.clearMessage(), e && this._codeEditor.focus(), this._codeEditor.layoutOverlayWidget(this), this._removeViewZone())\n        }\n        _layoutViewZone(e) {\n            if (this._codeEditor.getOption(35).addExtraSpaceOnTop) {\n                if (this._isVisible) {\n                    const t = this._viewZone;\n                    void 0 === this._viewZoneId && t && this._codeEditor.changeViewZones(i => {\n                        t.heightInPx = this._getHeight(), this._viewZoneId = i.addZone(t), this._codeEditor.setScrollTop(e || this._codeEditor.getScrollTop() + t.heightInPx)\n                    })\n                }\n            } else this._removeViewZone()\n        }\n        _showViewZone(e = !0) {\n            if (this._isVisible && this._codeEditor.getOption(35).addExtraSpaceOnTop) {\n                void 0 === this._viewZone && (this._viewZone = new bi(0));\n                const t = this._viewZone;\n                this._codeEditor.changeViewZones(i => {\n                    var n, r;\n                    void 0 !== this._viewZoneId ? (n = this._getHeight()) !== t.heightInPx && (r = n - t.heightInPx, t.heightInPx = n, i.layoutZone(this._viewZoneId), e && this._codeEditor.setScrollTop(this._codeEditor.getScrollTop() + r)) : (r = this._getHeight(), (r -= this._codeEditor.getOption(74).top) <= 0 || (t.heightInPx = r, this._viewZoneId = i.addZone(t), e && this._codeEditor.setScrollTop(this._codeEditor.getScrollTop() + r)))\n                })\n            }\n        }\n        _removeViewZone() {\n            this._codeEditor.changeViewZones(e => {\n                void 0 !== this._viewZoneId && (e.removeZone(this._viewZoneId), this._viewZoneId = void 0, this._viewZone && (this._codeEditor.setScrollTop(this._codeEditor.getScrollTop() - this._viewZone.heightInPx), this._viewZone = void 0))\n            })\n        }\n        _applyTheme(e) {\n            e = {\n                inputActiveOptionBorder: e.getColor(oe.U),\n                inputActiveOptionBackground: e.getColor(oe.T),\n                inputActiveOptionForeground: e.getColor(oe.V),\n                inputBackground: e.getColor(oe.W),\n                inputForeground: e.getColor(oe.Y),\n                inputBorder: e.getColor(oe.X),\n                inputValidationInfoBackground: e.getColor(oe.cb),\n                inputValidationInfoForeground: e.getColor(oe.eb),\n                inputValidationInfoBorder: e.getColor(oe.db),\n                inputValidationWarningBackground: e.getColor(oe.fb),\n                inputValidationWarningForeground: e.getColor(oe.hb),\n                inputValidationWarningBorder: e.getColor(oe.gb),\n                inputValidationErrorBackground: e.getColor(oe.Z),\n                inputValidationErrorForeground: e.getColor(oe.bb),\n                inputValidationErrorBorder: e.getColor(oe.ab)\n            }, this._findInput.style(e), this._replaceInput.style(e), this._toggleSelectionFind.style(e)\n        }\n        _tryUpdateWidgetWidth() {\n            if (this._isVisible && Be.K(this._domNode))\n                if ((t = this._codeEditor.getLayoutInfo()).contentWidth <= 0) this._domNode.classList.add(\"hiddenEditor\");\n                else {\n                    this._domNode.classList.contains(\"hiddenEditor\") && this._domNode.classList.remove(\"hiddenEditor\");\n                    var e = t.width,\n                        t = t.minimap.minimapWidth;\n                    let i = !1,\n                        n = !1,\n                        r = !1;\n                    if (this._resized && 419 < Be.F(this._domNode)) return this._domNode.style.maxWidth = e - 28 - t - 15 + \"px\", void(this._replaceInput.width = Be.F(this._findInput.domNode));\n                    e <= 447 + t && (n = !0), 447 + t - fi >= e && (r = !0), 447 + t - fi >= e + 50 && (i = !0), this._domNode.classList.toggle(\"collapsed-find-widget\", i), this._domNode.classList.toggle(\"narrow-find-widget\", r), this._domNode.classList.toggle(\"reduced-find-widget\", n), r || i || (this._domNode.style.maxWidth = e - 28 - t - 15 + \"px\"), this._resized ? (this._findInput.inputBox.layout(), 0 < (t = this._findInput.inputBox.element.clientWidth) && (this._replaceInput.width = t)) : this._isReplaceVisible && (this._replaceInput.width = Be.F(this._findInput.domNode))\n                }\n        }\n        _getHeight() {\n            let e = 0;\n            return e += 4, e += this._findInput.inputBox.height + 2, this._isReplaceVisible && (e += 4, e += this._replaceInput.inputBox.height + 2), e += 4, e\n        }\n        _tryUpdateHeight() {\n            var e = this._getHeight();\n            return (null === this._cachedHeight || this._cachedHeight !== e) && (this._cachedHeight = e, this._domNode.style.height = e + \"px\", !0)\n        }\n        focusFindInput() {\n            this._findInput.select(), this._findInput.focus()\n        }\n        focusReplaceInput() {\n            this._replaceInput.select(), this._replaceInput.focus()\n        }\n        highlightFindOptions() {\n            this._findInput.highlightFindOptions()\n        }\n        _updateSearchScope() {\n            if (this._codeEditor.hasModel() && this._toggleSelectionFind.checked) {\n                let e = this._codeEditor.getSelections();\n                e.map(e => {\n                    1 === e.endColumn && e.endLineNumber > e.startLineNumber && (e = e.setEndPosition(e.endLineNumber - 1, this._codeEditor.getModel().getLineMaxColumn(e.endLineNumber - 1)));\n                    var t = this._state.currentMatch;\n                    return e.startLineNumber === e.endLineNumber || ee.a.equalsRange(e, t) ? null : e\n                }).filter(e => !!e), e.length && this._state.change({\n                    searchScope: e\n                }, !0)\n            }\n        }\n        _onFindInputMouseDown(e) {\n            e.middleButton && e.stopPropagation()\n        }\n        _onFindInputKeyDown(e) {\n            return e.equals(3 | vi) ? (this._keybindingService.dispatchEvent(e, e.target) || this._findInput.inputBox.insertAtCursor(\"\\n\"), void e.preventDefault()) : e.equals(2) ? (this._isReplaceVisible ? this._replaceInput.focus() : this._findInput.focusOnCaseSensitive(), void e.preventDefault()) : e.equals(2066) ? (this._codeEditor.focus(), void e.preventDefault()) : e.equals(16) ? _i(e, this._findInput.getValue(), this._findInput.domNode.querySelector(\"textarea\")) : e.equals(18) ? wi(e, this._findInput.getValue(), this._findInput.domNode.querySelector(\"textarea\")) : void 0\n        }\n        _onReplaceInputKeyDown(e) {\n            return e.equals(3 | vi) ? (this._keybindingService.dispatchEvent(e, e.target) || (nt.i && nt.g && !this._ctrlEnterReplaceAllWarningPrompted && (this._notificationService.info(Ue.a(\"ctrlEnter.keybindingChanged\", \"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(mi, !0, 0, 0)), this._replaceInput.inputBox.insertAtCursor(\"\\n\")), void e.preventDefault()) : e.equals(2) ? (this._findInput.focusOnCaseSensitive(), void e.preventDefault()) : e.equals(1026) ? (this._findInput.focus(), void e.preventDefault()) : e.equals(2066) ? (this._codeEditor.focus(), void e.preventDefault()) : e.equals(16) ? _i(e, this._replaceInput.inputBox.value, this._replaceInput.inputBox.element.querySelector(\"textarea\")) : e.equals(18) ? wi(e, this._replaceInput.inputBox.value, this._replaceInput.inputBox.element.querySelector(\"textarea\")) : void 0\n        }\n        getVerticalSashLeft(e) {\n            return 0\n        }\n        _keybindingLabelFor(e) {\n            let t = this._keybindingService.lookupKeybinding(e);\n            return t ? ` (${t.getLabel()})` : \"\"\n        }\n        _buildDomNode() {\n            this._findInput = this._register(new Ut(null, this._contextViewProvider, {\n                width: 221,\n                label: ti,\n                placeholder: ii,\n                appendCaseSensitiveLabel: this._keybindingLabelFor(Ne),\n                appendWholeWordsLabel: this._keybindingLabelFor(De),\n                appendRegexLabel: this._keybindingLabelFor(Ie),\n                validation: e => {\n                    if (0 === e.length || !this._findInput.getRegex()) return null;\n                    try {\n                        return new RegExp(e, \"gu\"), null\n                    } catch (e) {\n                        return {\n                            content: e.message\n                        }\n                    }\n                },\n                flexibleHeight: !0,\n                flexibleWidth: !0,\n                flexibleMaxHeight: 118,\n                showHistoryHint: () => $t(this._keybindingService)\n            }, this._contextKeyService, !0)), this._findInput.setRegex(!!this._state.isRegex), this._findInput.setCaseSensitive(!!this._state.matchCase), this._findInput.setWholeWords(!!this._state.wholeWord), this._register(this._findInput.onKeyDown(e => this._onFindInputKeyDown(e))), this._register(this._findInput.inputBox.onDidChange(() => {\n                this._ignoreChangeEvent || this._state.change({\n                    searchString: this._findInput.getValue()\n                }, !0)\n            })), this._register(this._findInput.onDidOptionChange(() => {\n                this._state.change({\n                    isRegex: this._findInput.getRegex(),\n                    wholeWord: this._findInput.getWholeWords(),\n                    matchCase: this._findInput.getCaseSensitive()\n                }, !0)\n            })), this._register(this._findInput.onCaseSensitiveKeyDown(e => {\n                e.equals(1026) && this._isReplaceVisible && (this._replaceInput.focus(), e.preventDefault())\n            })), this._register(this._findInput.onRegexKeyDown(e => {\n                e.equals(2) && this._isReplaceVisible && (this._replaceInput.focusOnPreserve(), e.preventDefault())\n            })), this._register(this._findInput.inputBox.onDidHeightChange(e => {\n                this._tryUpdateHeight() && this._showViewZone()\n            })), nt.d && this._register(this._findInput.onMouseDown(e => this._onFindInputMouseDown(e))), this._matchesCount = document.createElement(\"div\"), this._matchesCount.className = \"matchesCount\", this._updateMatchesCount(), this._prevBtn = this._register(new Ci({\n                label: ni + this._keybindingLabelFor(Se),\n                icon: Jt,\n                onTrigger: () => {\n                    this._codeEditor.getAction(Se).run().then(void 0, it.f)\n                }\n            })), this._nextBtn = this._register(new Ci({\n                label: ri + this._keybindingLabelFor(xe),\n                icon: ei,\n                onTrigger: () => {\n                    this._codeEditor.getAction(xe).run().then(void 0, it.f)\n                }\n            }));\n            let e = document.createElement(\"div\");\n            e.className = \"find-part\", e.appendChild(this._findInput.domNode);\n            const t = document.createElement(\"div\");\n            t.className = \"find-actions\", e.appendChild(t), t.appendChild(this._matchesCount), t.appendChild(this._prevBtn.domNode), t.appendChild(this._nextBtn.domNode), this._toggleSelectionFind = this._register(new He({\n                icon: Gt,\n                title: oi + this._keybindingLabelFor(Te),\n                isChecked: !1\n            })), this._register(this._toggleSelectionFind.onChange(() => {\n                if (this._toggleSelectionFind.checked) {\n                    if (this._codeEditor.hasModel()) {\n                        let e = this._codeEditor.getSelections();\n                        e.map(e => (e = 1 === e.endColumn && e.endLineNumber > e.startLineNumber ? e.setEndPosition(e.endLineNumber - 1, this._codeEditor.getModel().getLineMaxColumn(e.endLineNumber - 1)) : e).isEmpty() ? null : e).filter(e => !!e), e.length && this._state.change({\n                            searchScope: e\n                        }, !0)\n                    }\n                } else this._state.change({\n                    searchScope: null\n                }, !0)\n            })), t.appendChild(this._toggleSelectionFind.domNode), this._closeBtn = this._register(new Ci({\n                label: si + this._keybindingLabelFor(Ee),\n                icon: qt.c,\n                onTrigger: () => {\n                    this._state.change({\n                        isRevealed: !1,\n                        searchScope: null\n                    }, !1)\n                },\n                onKeyDown: e => {\n                    e.equals(2) && this._isReplaceVisible && ((this._replaceBtn.isEnabled() ? this._replaceBtn : this._codeEditor).focus(), e.preventDefault())\n                }\n            })), t.appendChild(this._closeBtn.domNode), this._replaceInput = this._register(new Kt(null, void 0, {\n                label: ai,\n                placeholder: li,\n                appendPreserveCaseLabel: this._keybindingLabelFor(Me),\n                history: [],\n                flexibleHeight: !0,\n                flexibleWidth: !0,\n                flexibleMaxHeight: 118,\n                showHistoryHint: () => $t(this._keybindingService)\n            }, this._contextKeyService, !0)), this._replaceInput.setPreserveCase(!!this._state.preserveCase), this._register(this._replaceInput.onKeyDown(e => this._onReplaceInputKeyDown(e))), this._register(this._replaceInput.inputBox.onDidChange(() => {\n                this._state.change({\n                    replaceString: this._replaceInput.inputBox.value\n                }, !1)\n            })), this._register(this._replaceInput.inputBox.onDidHeightChange(e => {\n                this._isReplaceVisible && this._tryUpdateHeight() && this._showViewZone()\n            })), this._register(this._replaceInput.onDidOptionChange(() => {\n                this._state.change({\n                    preserveCase: this._replaceInput.getPreserveCase()\n                }, !0)\n            })), this._register(this._replaceInput.onPreserveCaseKeyDown(e => {\n                e.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(), e.preventDefault())\n            })), this._replaceBtn = this._register(new Ci({\n                label: di + this._keybindingLabelFor(Pe),\n                icon: Xt,\n                onTrigger: () => {\n                    this._controller.replace()\n                },\n                onKeyDown: e => {\n                    e.equals(1026) && (this._closeBtn.focus(), e.preventDefault())\n                }\n            })), this._replaceAllBtn = this._register(new Ci({\n                label: ci + this._keybindingLabelFor(Ae),\n                icon: Qt,\n                onTrigger: () => {\n                    this._controller.replaceAll()\n                }\n            }));\n            let i = document.createElement(\"div\");\n            i.className = \"replace-part\", i.appendChild(this._replaceInput.domNode);\n            const n = document.createElement(\"div\");\n            n.className = \"replace-actions\", i.appendChild(n), n.appendChild(this._replaceBtn.domNode), n.appendChild(this._replaceAllBtn.domNode), this._toggleReplaceBtn = this._register(new Ci({\n                label: hi,\n                className: \"codicon toggle left\",\n                onTrigger: () => {\n                    this._state.change({\n                        isReplaceRevealed: !this._isReplaceVisible\n                    }, !1), this._isReplaceVisible && (this._replaceInput.width = Be.F(this._findInput.domNode), this._replaceInput.inputBox.layout()), this._showViewZone()\n                }\n            })), 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.style.width = \"419px\", this._domNode.appendChild(this._toggleReplaceBtn.domNode), this._domNode.appendChild(e), this._domNode.appendChild(i), this._resizeSash = new tt.a(this._domNode, this, {\n                orientation: 0,\n                size: 2\n            }), this._resized = !1;\n            let r = 419;\n            this._register(this._resizeSash.onDidStart(() => {\n                r = Be.F(this._domNode)\n            })), this._register(this._resizeSash.onDidChange(e => {\n                this._resized = !0, (e = r + e.startX - e.currentX) < 419 || (parseFloat(Be.x(this._domNode).maxWidth) || 0) < e || (this._domNode.style.width = e + \"px\", this._isReplaceVisible && (this._replaceInput.width = Be.F(this._findInput.domNode)), this._findInput.inputBox.layout(), this._tryUpdateHeight())\n            })), this._register(this._resizeSash.onDidReset(() => {\n                var e = Be.F(this._domNode);\n                if (!(e < 419)) {\n                    let t = 419;\n                    this._resized && 419 !== e || (t = (e = this._codeEditor.getLayoutInfo()).width - 28 - e.minimap.minimapWidth - 15, this._resized = !0), this._domNode.style.width = t + \"px\", this._isReplaceVisible && (this._replaceInput.width = Be.F(this._findInput.domNode)), this._findInput.inputBox.layout()\n                }\n            }))\n        }\n        updateAccessibilitySupport() {\n            var e = this._codeEditor.getOption(2);\n            this._findInput.setFocusInputOnOptionClick(2 !== e)\n        }\n    }\n    yi.ID = \"editor.contrib.findWidget\";\n    class Ci extends v.a {\n        constructor(e) {\n            super(), this._opts = e;\n            let t = \"button\";\n            this._opts.className && (t = t + \" \" + this._opts.className), this._opts.icon && (t = t + \" \" + se.d.asClassName(this._opts.icon)), this._domNode = document.createElement(\"div\"), this._domNode.title = this._opts.label, this._domNode.tabIndex = 0, this._domNode.className = t, this._domNode.setAttribute(\"role\", \"button\"), this._domNode.setAttribute(\"aria-label\", this._opts.label), this.onclick(this._domNode, e => {\n                this._opts.onTrigger(), e.preventDefault()\n            }), this.onkeydown(this._domNode, e => e.equals(10) || e.equals(3) ? (this._opts.onTrigger(), void e.preventDefault()) : void(this._opts.onKeyDown && this._opts.onKeyDown(e)))\n        }\n        get domNode() {\n            return this._domNode\n        }\n        isEnabled() {\n            return 0 <= this._domNode.tabIndex\n        }\n        focus() {\n            this._domNode.focus()\n        }\n        setEnabled(e) {\n            this._domNode.classList.toggle(\"disabled\", !e), this._domNode.setAttribute(\"aria-disabled\", String(!e)), this._domNode.tabIndex = e ? 0 : -1\n        }\n        setExpanded(e) {\n            this._domNode.setAttribute(\"aria-expanded\", String(!!e)), e ? (this._domNode.classList.remove(...se.d.asClassNameArray(Yt)), this._domNode.classList.add(...se.d.asClassNameArray(Zt))) : (this._domNode.classList.remove(...se.d.asClassNameArray(Zt)), this._domNode.classList.add(...se.d.asClassNameArray(Yt)))\n        }\n    }\n    Object(se.f)((e, t) => {\n        var i = (e, i) => {\n            i && t.addRule(`.monaco-editor ${e} { background-color: ${i}; }`)\n        };\n        i(\".findMatch\", e.getColor(oe.w)), i(\".currentFindMatch\", e.getColor(oe.u)), i(\".findScope\", e.getColor(oe.y)), i(\".find-widget\", e.getColor(oe.N)), (i = e.getColor(oe.mc)) && t.addRule(`.monaco-editor .find-widget { box-shadow: 0 0 8px 2px ${i}; }`), (i = e.getColor(oe.x)) && t.addRule(`.monaco-editor .findMatch { border: 1px ${\"hc\"===e.type?\"dotted\":\"solid\"} ${i}; box-sizing: border-box; }`), (i = e.getColor(oe.v)) && t.addRule(`.monaco-editor .currentFindMatch { border: 2px solid ${i}; padding: 1px; box-sizing: border-box; }`), (i = e.getColor(oe.z)) && t.addRule(`.monaco-editor .findScope { border: 1px ${\"hc\"===e.type?\"dashed\":\"solid\"} ${i}; }`), (i = e.getColor(oe.h)) && t.addRule(`.monaco-editor .find-widget { border: 1px solid ${i}; }`), (i = e.getColor(oe.P)) && t.addRule(`.monaco-editor .find-widget { color: ${i}; }`), (i = e.getColor(oe.R)) && t.addRule(`.monaco-editor .find-widget.no-results .matchesCount { color: ${i}; }`), (i = e.getColor(oe.Q)) ? t.addRule(`.monaco-editor .find-widget .monaco-sash { background-color: ${i}; }`) : (n = e.getColor(oe.O)) && t.addRule(`.monaco-editor .find-widget .monaco-sash { background-color: ${n}; }`);\n        var n = e.getColor(oe.kc);\n        n && t.addRule(`\\n\\t\\t.monaco-editor .find-widget .button:not(.disabled):hover,\\n\\t\\t.monaco-editor .find-widget .codicon-find-selection:hover {\\n\\t\\t\\tbackground-color: ${n} !important;\\n\\t\\t}\\n\\t`), (e = e.getColor(oe.S)) && t.addRule(`.monaco-editor .find-widget .monaco-inputbox.synthetic-focus { outline-color: ${e}; }`)\n    });\n    ne = i(117), re = i(94), b = i(81), C = i(80), F = i(156), B = function(e, t, i, n) {\n        var r, o = arguments.length,\n            s = o < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n;\n        if (\"object\" == typeof Reflect && \"function\" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n);\n        else\n            for (var a = e.length - 1; 0 <= a; a--)(r = e[a]) && (s = (o < 3 ? r(s) : 3 < o ? r(t, i, s) : r(t, i)) || s);\n        return 3 < o && s && Object.defineProperty(t, i, s), s\n    }, y = function(e, t) {\n        return function(i, n) {\n            t(i, n, e)\n        }\n    };\n    var xi = function(e, t, i, n) {\n        return new(i = i || Promise)((function(r, o) {\n            function s(e) {\n                try {\n                    l(n.next(e))\n                } catch (e) {\n                    o(e)\n                }\n            }\n\n            function a(e) {\n                try {\n                    l(n.throw(e))\n                } catch (e) {\n                    o(e)\n                }\n            }\n\n            function l(e) {\n                var t;\n                e.done ? r(e.value) : ((t = e.value) instanceof i ? t : new i((function(e) {\n                    e(t)\n                }))).then(s, a)\n            }\n            l((n = n.apply(e, t || [])).next())\n        }))\n    };\n\n    function Si(e, t = \"single\", i = !1) {\n        if (!e.hasModel()) return null;\n        const n = e.getSelection();\n        if (\"single\" === t && n.startLineNumber === n.endLineNumber || \"multiple\" === t)\n            if (n.isEmpty()) {\n                if ((t = e.getConfiguredWordAtPosition(n.getStartPosition())) && !1 === i) return t.word\n            } else if (e.getModel().getValueLengthInRange(n) < 524288) return e.getModel().getValueInRange(n);\n        return null\n    }\n    let ki = class e extends q.a {\n        constructor(e, t, i, n) {\n            super(), this._editor = e, this._findWidgetVisible = be.bindTo(t), this._contextKeyService = t, this._storageService = i, this._clipboardService = n, this._updateHistoryDelayer = new $.a(500), this._state = this._register(new Je), this.loadQueryState(), this._register(this._state.onFindReplaceStateChange(e => this._onStateChanged(e))), this._model = null, this._register(this._editor.onDidChangeModel(() => {\n                var e = this._editor.getModel() && this._state.isRevealed;\n                this.disposeModel(), this._state.change({\n                    searchScope: null,\n                    matchCase: this._storageService.getBoolean(\"editor.matchCase\", 1, !1),\n                    wholeWord: this._storageService.getBoolean(\"editor.wholeWord\", 1, !1),\n                    isRegex: this._storageService.getBoolean(\"editor.isRegex\", 1, !1),\n                    preserveCase: this._storageService.getBoolean(\"editor.preserveCase\", 1, !1)\n                }, !1), e && this._start({\n                    forceRevealReplace: !1,\n                    seedSearchStringFromSelection: \"none\",\n                    seedSearchStringFromNonEmptySelection: !1,\n                    seedSearchStringFromGlobalClipboard: !1,\n                    shouldFocus: 0,\n                    shouldAnimate: !1,\n                    updateSearchScope: !1,\n                    loop: this._editor.getOption(35).loop\n                })\n            }))\n        }\n        get editor() {\n            return this._editor\n        }\n        static get(t) {\n            return t.getContribution(e.ID)\n        }\n        dispose() {\n            this.disposeModel(), super.dispose()\n        }\n        disposeModel() {\n            this._model && (this._model.dispose(), this._model = null)\n        }\n        _onStateChanged(e) {\n            this.saveQueryState(e), e.isRevealed && (this._state.isRevealed ? this._findWidgetVisible.set(!0) : (this._findWidgetVisible.reset(), this.disposeModel())), e.searchString && this.setGlobalBufferTerm(this._state.searchString)\n        }\n        saveQueryState(e) {\n            e.isRegex && this._storageService.store(\"editor.isRegex\", this._state.actualIsRegex, 1, 0), e.wholeWord && this._storageService.store(\"editor.wholeWord\", this._state.actualWholeWord, 1, 0), e.matchCase && this._storageService.store(\"editor.matchCase\", this._state.actualMatchCase, 1, 0), e.preserveCase && this._storageService.store(\"editor.preserveCase\", this._state.actualPreserveCase, 1, 0)\n        }\n        loadQueryState() {\n            this._state.change({\n                matchCase: this._storageService.getBoolean(\"editor.matchCase\", 1, this._state.matchCase),\n                wholeWord: this._storageService.getBoolean(\"editor.wholeWord\", 1, this._state.wholeWord),\n                isRegex: this._storageService.getBoolean(\"editor.isRegex\", 1, this._state.isRegex),\n                preserveCase: this._storageService.getBoolean(\"editor.preserveCase\", 1, this._state.preserveCase)\n            }, !1)\n        }\n        isFindInputFocused() {\n            return !!_e.getValue(this._contextKeyService)\n        }\n        getState() {\n            return this._state\n        }\n        closeFindWidget() {\n            this._state.change({\n                isRevealed: !1,\n                searchScope: null\n            }, !1), this._editor.focus()\n        }\n        toggleCaseSensitive() {\n            this._state.change({\n                matchCase: !this._state.matchCase\n            }, !1), this._state.isRevealed || this.highlightFindOptions()\n        }\n        toggleWholeWords() {\n            this._state.change({\n                wholeWord: !this._state.wholeWord\n            }, !1), this._state.isRevealed || this.highlightFindOptions()\n        }\n        toggleRegex() {\n            this._state.change({\n                isRegex: !this._state.isRegex\n            }, !1), this._state.isRevealed || this.highlightFindOptions()\n        }\n        togglePreserveCase() {\n            this._state.change({\n                preserveCase: !this._state.preserveCase\n            }, !1), this._state.isRevealed || this.highlightFindOptions()\n        }\n        toggleSearchScope() {\n            if (this._state.searchScope) this._state.change({\n                searchScope: null\n            }, !0);\n            else if (this._editor.hasModel()) {\n                let e = this._editor.getSelections();\n                e.map(e => (e = 1 === e.endColumn && e.endLineNumber > e.startLineNumber ? e.setEndPosition(e.endLineNumber - 1, this._editor.getModel().getLineMaxColumn(e.endLineNumber - 1)) : e).isEmpty() ? null : e).filter(e => !!e), e.length && this._state.change({\n                    searchScope: e\n                }, !0)\n            }\n        }\n        setSearchString(e) {\n            this._state.isRegex && (e = G.t(e)), this._state.change({\n                searchString: e\n            }, !1)\n        }\n        highlightFindOptions(e = 0) {}\n        _start(e) {\n            return xi(this, void 0, void 0, (function*() {\n                if (this.disposeModel(), this._editor.hasModel()) {\n                    let n = {\n                        isRevealed: !0\n                    };\n                    var t;\n                    if (\"single\" === e.seedSearchStringFromSelection ? (t = Si(this._editor, e.seedSearchStringFromSelection, e.seedSearchStringFromNonEmptySelection)) && (this._state.isRegex ? n.searchString = G.t(t) : n.searchString = t) : \"multiple\" !== e.seedSearchStringFromSelection || e.updateSearchScope || (i = Si(this._editor, e.seedSearchStringFromSelection)) && (n.searchString = i), !n.searchString && e.seedSearchStringFromGlobalClipboard) {\n                        var i = yield this.getGlobalBufferTerm();\n                        if (!this._editor.hasModel()) return;\n                        i && (n.searchString = i)\n                    }\n                    if (e.forceRevealReplace ? n.isReplaceRevealed = !0 : this._findWidgetVisible.get() || (n.isReplaceRevealed = !1), e.updateSearchScope) {\n                        let e = this._editor.getSelections();\n                        e.some(e => !e.isEmpty()) && (n.searchScope = e)\n                    }\n                    n.loop = e.loop, this._state.change(n, !1), this._model || (this._model = new je(this._editor, this._state))\n                }\n            }))\n        }\n        start(e) {\n            return this._start(e)\n        }\n        moveToNextMatch() {\n            return !!this._model && (this._model.moveToNextMatch(), !0)\n        }\n        moveToPrevMatch() {\n            return !!this._model && (this._model.moveToPrevMatch(), !0)\n        }\n        replace() {\n            return !!this._model && (this._model.replace(), !0)\n        }\n        replaceAll() {\n            return !!this._model && (this._model.replaceAll(), !0)\n        }\n        selectAllMatches() {\n            return !!this._model && (this._model.selectAllMatches(), this._editor.focus(), !0)\n        }\n        getGlobalBufferTerm() {\n            return xi(this, void 0, void 0, (function*() {\n                return this._editor.getOption(35).globalFindClipboard && this._editor.hasModel() && !this._editor.getModel().isTooLargeForSyncing() ? this._clipboardService.readFindText() : \"\"\n            }))\n        }\n        setGlobalBufferTerm(e) {\n            this._editor.getOption(35).globalFindClipboard && this._editor.hasModel() && !this._editor.getModel().isTooLargeForSyncing() && this._clipboardService.writeFindText(e)\n        }\n    };\n    ki.ID = \"editor.contrib.findController\", ki = B([y(1, ve.b), y(2, F.a), y(3, ne.a)], ki), v = class extends ki {\n        constructor(e, t, i, n, r, o, s, a) {\n            super(e, i, s, a), this._contextViewService = t, this._keybindingService = n, this._themeService = r, this._notificationService = o, this._widget = null, this._findOptionsWidget = null\n        }\n        _start(e) {\n            const t = Object.create(null, {\n                _start: {\n                    get: () => super._start\n                }\n            });\n            return xi(this, void 0, void 0, (function*() {\n                this._widget || this._createFindWidget();\n                var i = this._editor.getSelection();\n                let n = !1;\n                switch (this._editor.getOption(35).autoFindInSelection) {\n                    case \"always\":\n                        n = !0;\n                        break;\n                    case \"never\":\n                        n = !1;\n                        break;\n                    case \"multiline\":\n                        n = !!i && i.startLineNumber !== i.endLineNumber\n                }\n                e.updateSearchScope = n, yield t._start.call(this, e), this._widget && (2 === e.shouldFocus ? this._widget.focusReplaceInput() : 1 === e.shouldFocus && this._widget.focusFindInput())\n            }))\n        }\n        highlightFindOptions(e = !1) {\n            this._widget || this._createFindWidget(), (this._state.isRevealed && !e ? this._widget : this._findOptionsWidget).highlightFindOptions()\n        }\n        _createFindWidget() {\n            this._widget = this._register(new yi(this._editor, this, this._state, this._contextViewService, this._keybindingService, this._contextKeyService, this._themeService, this._storageService, this._notificationService)), this._findOptionsWidget = this._register(new Xe(this._editor, this._state, this._keybindingService, this._themeService))\n        }\n    }, v = B([y(1, re.b), y(2, ve.b), y(3, b.a), y(4, se.b), y(5, C.a), y(6, F.a), y(7, ne.a)], v);\n    Object(Y.l)(new Y.e({\n        id: ye,\n        label: Ue.a(\"startFindAction\", \"Find\"),\n        alias: \"Find\",\n        precondition: ve.a.or(Z.a.focus, ve.a.has(\"editorIsOpen\")),\n        kbOpts: {\n            kbExpr: null,\n            primary: 2084,\n            weight: 100\n        },\n        menuOpts: {\n            menuId: Dt.b.MenubarEditMenu,\n            group: \"3_find\",\n            title: Ue.a({\n                key: \"miFind\",\n                comment: [\"&& denotes a mnemonic\"]\n            }, \"&&Find\"),\n            order: 1\n        }\n    })).addImplementation(0, (e, t, i) => {\n        const n = ki.get(t);\n        return !!n && n.start({\n            forceRevealReplace: !1,\n            seedSearchStringFromSelection: \"never\" !== t.getOption(35).seedSearchStringFromSelection ? \"single\" : \"none\",\n            seedSearchStringFromNonEmptySelection: \"selection\" === t.getOption(35).seedSearchStringFromSelection,\n            seedSearchStringFromGlobalClipboard: t.getOption(35).globalFindClipboard,\n            shouldFocus: 1,\n            shouldAnimate: !0,\n            updateSearchScope: !1,\n            loop: t.getOption(35).loop\n        })\n    });\n    class Li extends Y.b {\n        constructor() {\n            super({\n                id: Ce,\n                label: Ue.a(\"startFindWithSelectionAction\", \"Find With Selection\"),\n                alias: \"Find With Selection\",\n                precondition: void 0,\n                kbOpts: {\n                    kbExpr: null,\n                    primary: 0,\n                    mac: {\n                        primary: 2083\n                    },\n                    weight: 100\n                }\n            })\n        }\n        run(e, t) {\n            return xi(this, void 0, void 0, (function*() {\n                let e = ki.get(t);\n                e && (yield e.start({\n                    forceRevealReplace: !1,\n                    seedSearchStringFromSelection: \"multiple\",\n                    seedSearchStringFromNonEmptySelection: !1,\n                    seedSearchStringFromGlobalClipboard: !1,\n                    shouldFocus: 0,\n                    shouldAnimate: !0,\n                    updateSearchScope: !1,\n                    loop: t.getOption(35).loop\n                }), e.setGlobalBufferTerm(e.getState().searchString))\n            }))\n        }\n    }\n    class Oi extends Y.b {\n        run(e, t) {\n            return xi(this, void 0, void 0, (function*() {\n                let e = ki.get(t);\n                e && !this._run(e) && (yield e.start({\n                    forceRevealReplace: !1,\n                    seedSearchStringFromSelection: 0 === e.getState().searchString.length && \"never\" !== t.getOption(35).seedSearchStringFromSelection ? \"single\" : \"none\",\n                    seedSearchStringFromNonEmptySelection: \"selection\" === t.getOption(35).seedSearchStringFromSelection,\n                    seedSearchStringFromGlobalClipboard: !0,\n                    shouldFocus: 0,\n                    shouldAnimate: !0,\n                    updateSearchScope: !1,\n                    loop: t.getOption(35).loop\n                }), this._run(e))\n            }))\n        }\n    }\n    class Ei extends Y.b {\n        run(e, t) {\n            return xi(this, void 0, void 0, (function*() {\n                let e = ki.get(t);\n                if (e) {\n                    var i = \"selection\" === t.getOption(35).seedSearchStringFromSelection;\n                    let n = null;\n                    \"never\" !== t.getOption(35).seedSearchStringFromSelection && (n = Si(t, \"single\", i)), n && e.setSearchString(n), this._run(e) || (yield e.start({\n                        forceRevealReplace: !1,\n                        seedSearchStringFromSelection: \"never\" !== t.getOption(35).seedSearchStringFromSelection ? \"single\" : \"none\",\n                        seedSearchStringFromNonEmptySelection: i,\n                        seedSearchStringFromGlobalClipboard: !1,\n                        shouldFocus: 0,\n                        shouldAnimate: !0,\n                        updateSearchScope: !1,\n                        loop: t.getOption(35).loop\n                    }), this._run(e))\n                }\n            }))\n        }\n    }\n    Object(Y.l)(new Y.e({\n        id: Oe,\n        label: Ue.a(\"startReplace\", \"Replace\"),\n        alias: \"Replace\",\n        precondition: ve.a.or(Z.a.focus, ve.a.has(\"editorIsOpen\")),\n        kbOpts: {\n            kbExpr: null,\n            primary: 2086,\n            mac: {\n                primary: 2596\n            },\n            weight: 100\n        },\n        menuOpts: {\n            menuId: Dt.b.MenubarEditMenu,\n            group: \"3_find\",\n            title: Ue.a({\n                key: \"miReplace\",\n                comment: [\"&& denotes a mnemonic\"]\n            }, \"&&Replace\"),\n            order: 2\n        }\n    })).addImplementation(0, (e, t, i) => {\n        if (!t.hasModel() || t.getOption(80)) return !1;\n        const n = ki.get(t);\n        if (!n) return !1;\n        const r = t.getSelection();\n        var o = n.isFindInputFocused(),\n            s = !r.isEmpty() && r.startLineNumber === r.endLineNumber && \"never\" !== t.getOption(35).seedSearchStringFromSelection && !o;\n        o = o || s ? 2 : 1;\n        return n.start({\n            forceRevealReplace: !0,\n            seedSearchStringFromSelection: s ? \"single\" : \"none\",\n            seedSearchStringFromNonEmptySelection: \"selection\" === t.getOption(35).seedSearchStringFromSelection,\n            seedSearchStringFromGlobalClipboard: \"never\" !== t.getOption(35).seedSearchStringFromSelection,\n            shouldFocus: o,\n            shouldAnimate: !0,\n            updateSearchScope: !1,\n            loop: t.getOption(35).loop\n        })\n    }), Object(Y.k)(ki.ID, v), Object(Y.i)(Li), Object(Y.i)(class extends Oi {\n        constructor() {\n            super({\n                id: xe,\n                label: Ue.a(\"findNextMatchAction\", \"Find Next\"),\n                alias: \"Find Next\",\n                precondition: void 0,\n                kbOpts: [{\n                    kbExpr: Z.a.focus,\n                    primary: 61,\n                    mac: {\n                        primary: 2085,\n                        secondary: [61]\n                    },\n                    weight: 100\n                }, {\n                    kbExpr: ve.a.and(Z.a.focus, _e),\n                    primary: 3,\n                    weight: 100\n                }]\n            })\n        }\n        _run(e) {\n            return !!e.moveToNextMatch() && (e.editor.pushUndoStop(), !0)\n        }\n    }), Object(Y.i)(class extends Oi {\n        constructor() {\n            super({\n                id: Se,\n                label: Ue.a(\"findPreviousMatchAction\", \"Find Previous\"),\n                alias: \"Find Previous\",\n                precondition: void 0,\n                kbOpts: [{\n                    kbExpr: Z.a.focus,\n                    primary: 1085,\n                    mac: {\n                        primary: 3109,\n                        secondary: [1085]\n                    },\n                    weight: 100\n                }, {\n                    kbExpr: ve.a.and(Z.a.focus, _e),\n                    primary: 1027,\n                    weight: 100\n                }]\n            })\n        }\n        _run(e) {\n            return e.moveToPrevMatch()\n        }\n    }), Object(Y.i)(class extends Ei {\n        constructor() {\n            super({\n                id: ke,\n                label: Ue.a(\"nextSelectionMatchFindAction\", \"Find Next Selection\"),\n                alias: \"Find Next Selection\",\n                precondition: void 0,\n                kbOpts: {\n                    kbExpr: Z.a.focus,\n                    primary: 2109,\n                    weight: 100\n                }\n            })\n        }\n        _run(e) {\n            return e.moveToNextMatch()\n        }\n    }), Object(Y.i)(class extends Ei {\n        constructor() {\n            super({\n                id: Le,\n                label: Ue.a(\"previousSelectionMatchFindAction\", \"Find Previous Selection\"),\n                alias: \"Find Previous Selection\",\n                precondition: void 0,\n                kbOpts: {\n                    kbExpr: Z.a.focus,\n                    primary: 3133,\n                    weight: 100\n                }\n            })\n        }\n        _run(e) {\n            return e.moveToPrevMatch()\n        }\n    });\n    const Ni = Y.c.bindToContribution(ki.get);\n    Object(Y.j)(new Ni({\n        id: Ee,\n        precondition: be,\n        handler: e => e.closeFindWidget(),\n        kbOpts: {\n            weight: 105,\n            kbExpr: ve.a.and(Z.a.focus, ve.a.not(\"isComposing\")),\n            primary: 9,\n            secondary: [1033]\n        }\n    })), Object(Y.j)(new Ni({\n        id: Ne,\n        precondition: void 0,\n        handler: e => e.toggleCaseSensitive(),\n        kbOpts: {\n            weight: 105,\n            kbExpr: Z.a.focus,\n            primary: t.primary,\n            mac: t.mac,\n            win: t.win,\n            linux: t.linux\n        }\n    })), Object(Y.j)(new Ni({\n        id: De,\n        precondition: void 0,\n        handler: e => e.toggleWholeWords(),\n        kbOpts: {\n            weight: 105,\n            kbExpr: Z.a.focus,\n            primary: s.primary,\n            mac: s.mac,\n            win: s.win,\n            linux: s.linux\n        }\n    })), Object(Y.j)(new Ni({\n        id: Ie,\n        precondition: void 0,\n        handler: e => e.toggleRegex(),\n        kbOpts: {\n            weight: 105,\n            kbExpr: Z.a.focus,\n            primary: l.primary,\n            mac: l.mac,\n            win: l.win,\n            linux: l.linux\n        }\n    })), Object(Y.j)(new Ni({\n        id: Te,\n        precondition: void 0,\n        handler: e => e.toggleSearchScope(),\n        kbOpts: {\n            weight: 105,\n            kbExpr: Z.a.focus,\n            primary: c.primary,\n            mac: c.mac,\n            win: c.win,\n            linux: c.linux\n        }\n    })), Object(Y.j)(new Ni({\n        id: Me,\n        precondition: void 0,\n        handler: e => e.togglePreserveCase(),\n        kbOpts: {\n            weight: 105,\n            kbExpr: Z.a.focus,\n            primary: g.primary,\n            mac: g.mac,\n            win: g.win,\n            linux: g.linux\n        }\n    })), Object(Y.j)(new Ni({\n        id: Pe,\n        precondition: be,\n        handler: e => e.replace(),\n        kbOpts: {\n            weight: 105,\n            kbExpr: Z.a.focus,\n            primary: 3094\n        }\n    })), Object(Y.j)(new Ni({\n        id: Pe,\n        precondition: be,\n        handler: e => e.replace(),\n        kbOpts: {\n            weight: 105,\n            kbExpr: ve.a.and(Z.a.focus, we),\n            primary: 3\n        }\n    })), Object(Y.j)(new Ni({\n        id: Ae,\n        precondition: be,\n        handler: e => e.replaceAll(),\n        kbOpts: {\n            weight: 105,\n            kbExpr: Z.a.focus,\n            primary: 2563\n        }\n    })), Object(Y.j)(new Ni({\n        id: Ae,\n        precondition: be,\n        handler: e => e.replaceAll(),\n        kbOpts: {\n            weight: 105,\n            kbExpr: ve.a.and(Z.a.focus, we),\n            primary: void 0,\n            mac: {\n                primary: 2051\n            }\n        }\n    })), Object(Y.j)(new Ni({\n        id: Re,\n        precondition: be,\n        handler: e => e.selectAllMatches(),\n        kbOpts: {\n            weight: 105,\n            kbExpr: Z.a.focus,\n            primary: 515\n        }\n    }));\n    var Di = i(92),\n        Ii = i(107),\n        Ti = i(57);\n    class Mi {\n        constructor(e, t) {\n            this._selection = e, this._insertSpace = t, this._usedEndToken = null\n        }\n        static _haystackHasNeedleAtOffset(e, t, i) {\n            if (i < 0) return !1;\n            var n = t.length;\n            if (e.length < i + n) return !1;\n            for (let s = 0; s < n; s++) {\n                var r = e.charCodeAt(i + s),\n                    o = t.charCodeAt(s);\n                if (r !== o && !(65 <= r && r <= 90 && r + 32 === o || 65 <= o && o <= 90 && o + 32 === r)) return !1\n            }\n            return !0\n        }\n        _createOperationsForBlockComment(e, t, i, n, r, o) {\n            var s = e.startLineNumber,\n                a = e.startColumn,\n                l = e.endLineNumber,\n                d = e.endColumn;\n            const c = r.getLineContent(s),\n                h = r.getLineContent(l);\n            let u, p = c.lastIndexOf(t, a - 1 + t.length),\n                g = h.indexOf(i, d - 1 - i.length);\n            if (-1 !== p && -1 !== g)\n                if (s === l) {\n                    0 <= c.substring(p + t.length, g).indexOf(i) && (p = -1, g = -1)\n                } else {\n                    const e = c.substring(p + t.length),\n                        n = h.substring(0, g);\n                    (0 <= e.indexOf(i) || 0 <= n.indexOf(i)) && (p = -1, g = -1)\n                } - 1 !== p && -1 !== g ? (n && p + t.length < c.length && 32 === c.charCodeAt(p + t.length) && (t += \" \"), n && 0 < g && 32 === h.charCodeAt(g - 1) && (i = \" \" + i, --g), u = Mi._createRemoveBlockCommentOperations(new ee.a(s, p + t.length + 1, l, g + 1), t, i)) : (u = Mi._createAddBlockCommentOperations(e, t, i, this._insertSpace), this._usedEndToken = 1 === u.length ? i : null);\n            for (const e of u) o.addTrackedEditOperation(e.range, e.text)\n        }\n        static _createRemoveBlockCommentOperations(e, t, i) {\n            let n = [];\n            return ee.a.isEmpty(e) ? n.push(Ii.a.delete(new ee.a(e.startLineNumber, e.startColumn - t.length, e.endLineNumber, e.endColumn + i.length))) : (n.push(Ii.a.delete(new ee.a(e.startLineNumber, e.startColumn - t.length, e.startLineNumber, e.startColumn))), n.push(Ii.a.delete(new ee.a(e.endLineNumber, e.endColumn, e.endLineNumber, e.endColumn + i.length)))), n\n        }\n        static _createAddBlockCommentOperations(e, t, i, n) {\n            let r = [];\n            return ee.a.isEmpty(e) ? r.push(Ii.a.replace(new ee.a(e.startLineNumber, e.startColumn, e.endLineNumber, e.endColumn), t + \"  \" + i)) : (r.push(Ii.a.insert(new J.a(e.startLineNumber, e.startColumn), t + (n ? \" \" : \"\"))), r.push(Ii.a.insert(new J.a(e.endLineNumber, e.endColumn), (n ? \" \" : \"\") + i))), r\n        }\n        getEditOperations(e, t) {\n            var i = this._selection.startLineNumber,\n                n = this._selection.startColumn;\n            e.tokenizeIfCheap(i), n = e.getLanguageIdAtPosition(i, n), (n = Ti.b.getComments(n)) && n.blockCommentStartToken && n.blockCommentEndToken && this._createOperationsForBlockComment(this._selection, n.blockCommentStartToken, n.blockCommentEndToken, this._insertSpace, e, t)\n        }\n        computeCursorState(e, t) {\n            var i = t.getInverseEditOperations();\n            if (2 === i.length) {\n                t = i[0];\n                var n = i[1];\n                return new te.a(t.range.endLineNumber, t.range.endColumn, n.range.startLineNumber, n.range.startColumn)\n            }\n            return n = i[0].range, i = this._usedEndToken ? -this._usedEndToken.length - 1 : 0, new te.a(n.endLineNumber, n.endColumn + i, n.endLineNumber, n.endColumn + i)\n        }\n    }\n    class Pi {\n        constructor(e, t, i, n, r, o) {\n            this._selection = e, this._tabSize = t, this._type = i, this._insertSpace = n, this._selectionId = null, this._deltaColumn = 0, this._moveEndPositionDown = !1, this._ignoreEmptyLines = r, this._ignoreFirstLine = o || !1\n        }\n        static _gatherPreflightCommentStrings(e, t, i) {\n            e.tokenizeIfCheap(t);\n            e = e.getLanguageIdAtPosition(t, 1);\n            var n = (e = Ti.b.getComments(e)) ? e.lineCommentToken : null;\n            if (!n) return null;\n            let r = [];\n            for (let e = 0, o = i - t + 1; e < o; e++) r[e] = {\n                ignore: !1,\n                commentStr: n,\n                commentStrOffset: 0,\n                commentStrLength: n.length\n            };\n            return r\n        }\n        static _analyzeLines(e, t, i, n, r, o, s) {\n            let a, l = !0;\n            a = 0 === e || 1 !== e;\n            for (let c = 0, h = n.length; c < h; c++) {\n                const h = n[c];\n                var d = r + c;\n                if (d === r && s) h.ignore = !0;\n                else {\n                    const n = i.getLineContent(d); - 1 !== (d = G.u(n)) ? (l = !1, h.ignore = !1, h.commentStrOffset = d, a && !Mi._haystackHasNeedleAtOffset(n, h.commentStr, d) && (0 === e ? a = !1 : 1 === e || (h.ignore = !0)), a && t && (d += h.commentStrLength) < n.length && 32 === n.charCodeAt(d) && (h.commentStrLength += 1)) : (h.ignore = o, h.commentStrOffset = n.length)\n                }\n            }\n            if (0 === e && l) {\n                a = !1;\n                for (let e = 0, t = n.length; e < t; e++) n[e].ignore = !1\n            }\n            return {\n                supported: !0,\n                shouldRemoveComments: a,\n                lines: n\n            }\n        }\n        static _gatherPreflightData(e, t, i, n, r, o, s) {\n            return null === (r = Pi._gatherPreflightCommentStrings(i, n, r)) ? {\n                supported: !1\n            } : Pi._analyzeLines(e, t, i, r, n, o, s)\n        }\n        _executeLineComments(e, t, i, n) {\n            let r;\n            r = i.shouldRemoveComments ? Pi._createRemoveLineCommentsOperations(i.lines, n.startLineNumber) : (Pi._normalizeInsertionPoint(e, i.lines, n.startLineNumber, this._tabSize), this._createAddLineCommentsOperations(i.lines, n.startLineNumber));\n            var o = new J.a(n.positionLineNumber, n.positionColumn);\n            for (let i = 0, n = r.length; i < n; i++) t.addEditOperation(r[i].range, r[i].text), ee.a.isEmpty(r[i].range) && ee.a.getStartPosition(r[i].range).equals(o) && e.getLineContent(o.lineNumber).length + 1 === o.column && (this._deltaColumn = (r[i].text || \"\").length);\n            this._selectionId = t.trackSelection(n)\n        }\n        _attemptRemoveBlockComment(e, t, i, n) {\n            let r = t.startLineNumber,\n                o = t.endLineNumber;\n            var s = n.length + Math.max(e.getLineFirstNonWhitespaceColumn(t.startLineNumber), t.startColumn);\n            let a = e.getLineContent(r).lastIndexOf(i, s - 1),\n                l = e.getLineContent(o).indexOf(n, t.endColumn - 1 - i.length);\n            return -1 !== a && -1 === l && (l = e.getLineContent(r).indexOf(n, a + i.length), o = r), -1 === a && -1 !== l && (a = e.getLineContent(o).lastIndexOf(i, l), r = o), !t.isEmpty() || -1 !== a && -1 !== l || (a = e.getLineContent(r).indexOf(i), -1 !== a && (l = e.getLineContent(r).indexOf(n, a + i.length))), -1 !== a && 32 === e.getLineContent(r).charCodeAt(a + i.length) && (i += \" \"), -1 !== l && 32 === e.getLineContent(o).charCodeAt(l - 1) && (n = \" \" + n, --l), -1 !== a && -1 !== l ? Mi._createRemoveBlockCommentOperations(new ee.a(r, a + i.length + 1, o, l + 1), i, n) : null\n        }\n        _executeBlockComment(e, t, i) {\n            e.tokenizeIfCheap(i.startLineNumber);\n            var n = e.getLanguageIdAtPosition(i.startLineNumber, 1),\n                r = Ti.b.getComments(n);\n            if (r && r.blockCommentStartToken && r.blockCommentEndToken) {\n                var o = r.blockCommentStartToken;\n                n = r.blockCommentEndToken;\n                let s = this._attemptRemoveBlockComment(e, i, o, n);\n                if (!s) {\n                    if (i.isEmpty()) {\n                        r = e.getLineContent(i.startLineNumber);\n                        let t = G.u(r); - 1 === t && (t = r.length), s = Mi._createAddBlockCommentOperations(new ee.a(i.startLineNumber, t + 1, i.startLineNumber, r.length + 1), o, n, this._insertSpace)\n                    } else s = Mi._createAddBlockCommentOperations(new ee.a(i.startLineNumber, e.getLineFirstNonWhitespaceColumn(i.startLineNumber), i.endLineNumber, e.getLineMaxColumn(i.endLineNumber)), o, n, this._insertSpace);\n                    1 === s.length && (this._deltaColumn = o.length + 1)\n                }\n                this._selectionId = t.trackSelection(i);\n                for (const e of s) t.addEditOperation(e.range, e.text)\n            }\n        }\n        getEditOperations(e, t) {\n            let i = this._selection;\n            if (this._moveEndPositionDown = !1, i.startLineNumber === i.endLineNumber && this._ignoreFirstLine) return t.addEditOperation(new ee.a(i.startLineNumber, e.getLineMaxColumn(i.startLineNumber), i.startLineNumber + 1, 1), i.startLineNumber === e.getLineCount() ? \"\" : \"\\n\"), void(this._selectionId = t.trackSelection(i));\n            i.startLineNumber < i.endLineNumber && 1 === i.endColumn && (this._moveEndPositionDown = !0, i = i.setEndPosition(i.endLineNumber - 1, e.getLineMaxColumn(i.endLineNumber - 1)));\n            var n = Pi._gatherPreflightData(this._type, this._insertSpace, e, i.startLineNumber, i.endLineNumber, this._ignoreEmptyLines, this._ignoreFirstLine);\n            return n.supported ? this._executeLineComments(e, t, n, i) : this._executeBlockComment(e, t, i)\n        }\n        computeCursorState(e, t) {\n            let i = t.getTrackedSelection(this._selectionId);\n            return this._moveEndPositionDown && (i = i.setEndPosition(i.endLineNumber + 1, 1)), new te.a(i.selectionStartLineNumber, i.selectionStartColumn + this._deltaColumn, i.positionLineNumber, i.positionColumn + this._deltaColumn)\n        }\n        static _createRemoveLineCommentsOperations(e, t) {\n            let i = [];\n            for (let r = 0, o = e.length; r < o; r++) {\n                var n = e[r];\n                n.ignore || i.push(Ii.a.delete(new ee.a(t + r, n.commentStrOffset + 1, t + r, n.commentStrOffset + n.commentStrLength + 1)))\n            }\n            return i\n        }\n        _createAddLineCommentsOperations(e, t) {\n            let i = [];\n            var n = this._insertSpace ? \" \" : \"\";\n            for (let o = 0, s = e.length; o < s; o++) {\n                var r = e[o];\n                r.ignore || i.push(Ii.a.insert(new J.a(t + o, r.commentStrOffset + 1), r.commentStr + n))\n            }\n            return i\n        }\n        static nextVisibleColumn(e, t, i, n) {\n            return i ? e + (t - e % t) : e + n\n        }\n        static _normalizeInsertionPoint(e, t, i, n) {\n            let r, o = 1073741824;\n            var s;\n            for (let r = 0, s = t.length; r < s; r++)\n                if (!t[r].ignore) {\n                    const s = e.getLineContent(i + r);\n                    let a = 0;\n                    for (let e = 0, i = t[r].commentStrOffset; a < o && e < i; e++) a = Pi.nextVisibleColumn(a, n, 9 === s.charCodeAt(e), 1);\n                    a < o && (o = a)\n                } o = Math.floor(o / n) * n;\n            for (let a = 0, l = t.length; a < l; a++)\n                if (!t[a].ignore) {\n                    const l = e.getLineContent(i + a);\n                    let d = 0;\n                    for (r = 0, s = t[a].commentStrOffset; d < o && r < s; r++) d = Pi.nextVisibleColumn(d, n, 9 === l.charCodeAt(r), 1);\n                    t[a].commentStrOffset = d > o ? r - 1 : r\n                }\n        }\n    }\n    class Ai extends Y.b {\n        constructor(e, t) {\n            super(t), this._type = e\n        }\n        run(e, t) {\n            if (t.hasModel()) {\n                const e = [];\n                var i = t.getModel().getOptions(),\n                    n = t.getOption(19);\n                const r = t.getSelections().map((e, t) => ({\n                    selection: e,\n                    index: t,\n                    ignoreFirstLine: !1\n                }));\n                r.sort((e, t) => ee.a.compareRangesUsingStarts(e.selection, t.selection));\n                let o = r[0];\n                for (let e = 1; e < r.length; e++) {\n                    const t = r[e];\n                    o.selection.endLineNumber === t.selection.startLineNumber && (o.index < t.index ? t.ignoreFirstLine = !0 : (o.ignoreFirstLine = !0, o = t))\n                }\n                for (const t of r) e.push(new Pi(t.selection, i.tabSize, this._type, n.insertSpace, n.ignoreEmptyLines, t.ignoreFirstLine));\n                t.pushUndoStop(), t.executeCommands(this.id, e), t.pushUndoStop()\n            }\n        }\n    }\n    class Ri extends Y.b {\n        constructor() {\n            super({\n                id: \"editor.action.blockComment\",\n                label: Ue.a(\"comment.block\", \"Toggle Block Comment\"),\n                alias: \"Toggle Block Comment\",\n                precondition: Z.a.writable,\n                kbOpts: {\n                    kbExpr: Z.a.editorTextFocus,\n                    primary: 1567,\n                    linux: {\n                        primary: 3103\n                    },\n                    weight: 100\n                },\n                menuOpts: {\n                    menuId: Dt.b.MenubarEditMenu,\n                    group: \"5_insert\",\n                    title: Ue.a({\n                        key: \"miToggleBlockComment\",\n                        comment: [\"&& denotes a mnemonic\"]\n                    }, \"Toggle &&Block Comment\"),\n                    order: 2\n                }\n            })\n        }\n        run(e, t) {\n            if (t.hasModel()) {\n                var i = t.getOption(19);\n                const e = [];\n                for (const n of t.getSelections()) e.push(new Mi(n, i.insertSpace));\n                t.pushUndoStop(), t.executeCommands(this.id, e), t.pushUndoStop()\n            }\n        }\n    }\n    Object(Y.i)(class extends Ai {\n        constructor() {\n            super(0, {\n                id: \"editor.action.commentLine\",\n                label: Ue.a(\"comment.line\", \"Toggle Line Comment\"),\n                alias: \"Toggle Line Comment\",\n                precondition: Z.a.writable,\n                kbOpts: {\n                    kbExpr: Z.a.editorTextFocus,\n                    primary: 2133,\n                    weight: 100\n                },\n                menuOpts: {\n                    menuId: Dt.b.MenubarEditMenu,\n                    group: \"5_insert\",\n                    title: Ue.a({\n                        key: \"miToggleLineComment\",\n                        comment: [\"&& denotes a mnemonic\"]\n                    }, \"&&Toggle Line Comment\"),\n                    order: 1\n                }\n            })\n        }\n    }), Object(Y.i)(class extends Ai {\n        constructor() {\n            super(1, {\n                id: \"editor.action.addCommentLine\",\n                label: Ue.a(\"comment.line.add\", \"Add Line Comment\"),\n                alias: \"Add Line Comment\",\n                precondition: Z.a.writable,\n                kbOpts: {\n                    kbExpr: Z.a.editorTextFocus,\n                    primary: Object(Di.c)(2089, 2081),\n                    weight: 100\n                }\n            })\n        }\n    }), Object(Y.i)(class extends Ai {\n        constructor() {\n            super(2, {\n                id: \"editor.action.removeCommentLine\",\n                label: Ue.a(\"comment.line.remove\", \"Remove Line Comment\"),\n                alias: \"Remove Line Comment\",\n                precondition: Z.a.writable,\n                kbOpts: {\n                    kbExpr: Z.a.editorTextFocus,\n                    primary: Object(Di.c)(2089, 2099),\n                    weight: 100\n                }\n            })\n        }\n    }), Object(Y.i)(Ri);\n    var Fi = i(111),\n        ji = (i(255), i(161)),\n        Bi = {},\n        Vi = {},\n        Wi = (zi.getOrCreate = function(e) {\n            return Vi[e] || (Vi[e] = new zi(e)), Vi[e]\n        }, zi.prototype.whenLoaded = function() {\n            return this._lazyLoadPromise\n        }, zi.prototype.load = function() {\n            var e = this;\n            return this._loadingTriggered || (this._loadingTriggered = !0, Bi[this._languageId].loader().then((function(t) {\n                return e._lazyLoadPromiseResolve(t)\n            }), (function(t) {\n                return e._lazyLoadPromiseReject(t)\n            }))), this._lazyLoadPromise\n        }, zi);\n\n    function zi(e) {\n        var t = this;\n        this._languageId = e, this._loadingTriggered = !1, this._lazyLoadPromise = new Promise((function(e, i) {\n            t._lazyLoadPromiseResolve = e, t._lazyLoadPromiseReject = i\n        }))\n    }\n\n    function Hi(e) {\n        var t = e.id;\n        Bi[t] = e, ji.a.register(e);\n        var i = Wi.getOrCreate(t);\n        ji.a.setMonarchTokensProvider(t, i.whenLoaded().then((function(e) {\n            return e.language\n        }))), ji.a.onLanguage(t, (function() {\n            i.load().then((function(e) {\n                ji.a.setLanguage配置(t, e.conf)\n            }))\n        }))\n    }\n    Hi({\n        id: \"javascript\",\n        extensions: [\".js\", \".es6\", \".jsx\", \".mjs\"],\n        firstLine: \"^#!.*\\\\bnode\",\n        filenames: [\"jakefile\"],\n        aliases: [\"JavaScript\", \"javascript\", \"js\"],\n        mimetypes: [\"text/javascript\"],\n        loader: function() {\n            return i.e(2).then(i.bind(null, 485))\n        }\n    }), Hi({\n        id: \"yaml\",\n        extensions: [\".yaml\", \".yml\"],\n        aliases: [\"YAML\", \"yaml\", \"YML\", \"yml\"],\n        mimetypes: [\"application/x-yaml\", \"text/x-yaml\"],\n        loader: function() {\n            return i.e(3).then(i.bind(null, 483))\n        }\n    });\n    t = {\n        components: {\n            EscCapture: (v = i(121)).a\n        },\n        name: \"InputView\",\n        props: [],\n        data: function() {\n            return {\n                data: [],\n                isShow: !1,\n                error: \"\",\n                title: \"\",\n                hint: \"\",\n                resolve: null,\n                reject: null\n            }\n        },\n        watch: {},\n        methods: {\n            show: function(e) {\n                var t = this,\n                    i = void 0 === (n = e.data) ? [] : n,\n                    n = void 0 === (n = e.title) ? \"\" : n;\n                e = void 0 === (e = e.hint) ? \"\" : e;\n                return this.error = \"\", this.isShow = !0, this.data = i, this.title = n, this.hint = e, this.$nextTick((function() {\n                    for (var e in i)(e = t.$refs[\"ta\".concat(e)][0]).style.height = e.scrollHeight + 2 + \"px\"\n                })), new Promise((function(e, i) {\n                    t.resolve = e, t.reject = i\n                }))\n            },\n            handleTextareaInput: function(e) {\n                (e = e.target) && (e.style.height = \"\", e.style.height = e.scrollHeight + 2 + \"px\")\n            },\n            handleKeyDown: function(e) {\n                13 === e.keyCode && this.handleDone()\n            },\n            handleCancel: function() {\n                this.isShow = !1, this.reject()\n            },\n            handleDone: function() {\n                var e, t;\n                0 < this.data.filter((function(e) {\n                    return e.required && \"\" === e.value\n                })).length ? this.error = \"required key(*) must have a value\" : (e = this.data.find((function(e) {\n                    return e.hasOwnProperty(\"validate\") && \"\" !== e.validate(e.value)\n                }))) ? this.error = e.validate(e.value) : (this.isShow = !1, t = {}, this.data.forEach((function(e) {\n                    var i = e.value;\n                    \"\" !== i && (t[e.key] = i)\n                })), this.resolve(t))\n            }\n        }\n    };\n    var Ui = (i(457), Object(f.a)(t, (function() {\n        var e = this,\n            t = e.$createElement,\n            i = e._self._c || t;\n        return e.isShow ? i(\"EscCapture\", {\n            staticClass: \"main-input-view-plugin\",\n            on: {\n                esc: e.handleCancel,\n                keydown: e.handleKeyDown,\n                mousedown: e.handleCancel\n            }\n        }, [i(\"div\", {\n            staticClass: \"card-main\",\n            on: {\n                mousedown: function(e) {\n                    e.stopPropagation()\n                }\n            }\n        }, [i(\"div\", {\n            staticClass: \"card-content\"\n        }, [i(\"div\", {\n            staticClass: \"content-title\"\n        }, [e._v(e._s(e.title))]), e._v(\" \"), e.hint ? i(\"div\", {\n            staticClass: \"content-hint\"\n        }, [e._v(e._s(e.hint))]) : e._e(), e._v(\" \"), e._l(e.data, (function(t, n) {\n            return i(\"div\", {\n                key: n,\n                staticClass: \"content-item\"\n            }, [i(\"div\", {\n                staticClass: \"item-key\"\n            }, [e._v(\"\\n          \" + e._s(t.name) + \"\\n          \"), t.required ? i(\"span\", [e._v(\"*\")]) : e._e()]), e._v(\" \"), i(\"textarea\", {\n                directives: [{\n                    name: \"model\",\n                    rawName: \"v-model\",\n                    value: t.value,\n                    expression: \"item.value\"\n                }],\n                ref: \"ta\" + n,\n                refInFor: !0,\n                attrs: {\n                    type: \"text\",\n                    rows: \"1\",\n                    spellcheck: \"false\",\n                    placeholder: t.placeholder\n                },\n                domProps: {\n                    value: t.value\n                },\n                on: {\n                    input: [function(i) {\n                        i.target.composing || e.$set(t, \"value\", i.target.value)\n                    }, e.handleTextareaInput]\n                }\n            })])\n        })), e._v(\" \"), e.error ? i(\"div\", {\n            staticClass: \"error-hint\"\n        }, [e._v(e._s(e.error))]) : e._e(), e._v(\" \"), i(\"div\", {\n            staticClass: \"card-btns\"\n        }, [i(\"div\", {\n            staticClass: \"btn btn-cancel\",\n            on: {\n                click: e.handleCancel\n            }\n        }, [e._v(\"取消\")]), e._v(\" \"), i(\"div\", {\n            staticClass: \"btn btn-ok\",\n            on: {\n                click: e.handleDone\n            }\n        }, [e._v(\"确定\")])])], 2)])]) : e._e()\n    }), [], !1, null, \"d01c3192\", null).exports);\n\n    function Ki(e, t) {\n        var i, n = Object.keys(e);\n        return Object.getOwnPropertySymbols && (i = Object.getOwnPropertySymbols(e), t && (i = i.filter((function(t) {\n            return Object.getOwnPropertyDescriptor(e, t).enumerable\n        }))), n.push.apply(n, i)), n\n    }\n\n    function $i(e) {\n        for (var t = 1; t < arguments.length; t++) {\n            var i = null != arguments[t] ? arguments[t] : {};\n            t % 2 ? Ki(Object(i), !0).forEach((function(t) {\n                d()(e, t, i[t])\n            })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(i)) : Ki(Object(i)).forEach((function(t) {\n                Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(i, t))\n            }))\n        }\n        return e\n    }\n    l = s = {\n        install: function(e, t) {\n            var i = t.store;\n            i = (t = new(e.extend($i($i({}, Ui), {}, {\n                store: i\n            })))).$mount().$el;\n            document.body.appendChild(i), e.prototype.$input = t.show\n        }\n    }, c = {\n        name: \"PreviewView\",\n        props: [],\n        data: function() {\n            return {\n                data: {},\n                isShow: !1,\n                title: \"\",\n                onExit: function(e) {}\n            }\n        },\n        methods: {\n            show: function(e) {\n                this.isShow = !0;\n                var t = e.data;\n                this.data = void 0 === t ? {} : t, t = e.title, this.title = void 0 === t ? \"\" : t, e = e.onExit, this.onExit = void 0 === e ? function(e) {} : e\n            },\n            handleExit: function() {\n                this.isShow = !1, this.onExit()\n            }\n        }\n    };\n    var qi = (i(459), Object(f.a)(c, (function() {\n        var e = this,\n            t = e.$createElement,\n            i = e._self._c || t;\n        return e.isShow ? i(\"div\", {\n            staticClass: \"main\",\n            on: {\n                mousedown: e.handleExit\n            }\n        }, [i(\"div\", {\n            staticClass: \"card-main\",\n            on: {\n                mousedown: function(e) {\n                    e.stopPropagation()\n                }\n            }\n        }, [i(\"div\", {\n            staticClass: \"card-content\"\n        }, [i(\"div\", {\n            staticClass: \"content-title\"\n        }, [e._v(e._s(e.title))]), e._v(\" \"), e._l(Object.keys(e.data), (function(t, n) {\n            return i(\"div\", {\n                key: n,\n                staticClass: \"content-item\"\n            }, [i(\"div\", {\n                staticClass: \"item-key\"\n            }, [e._v(e._s(t))]), e._v(\" \"), e.data[t] ? i(\"div\", {\n                staticClass: \"item-value\",\n                domProps: {\n                    innerHTML: e._s(e.$parseEmoji(e.data[t]))\n                }\n            }) : i(\"div\", [e._v(\"--\")])])\n        }))], 2)])]) : e._e()\n    }), [], !1, null, \"23874bae\", null).exports);\n    Y = g = {\n        install: function(e) {\n            var t = new(e.extend(qi)),\n                i = t.$mount().$el;\n            document.body.appendChild(i), e.prototype.$preview = t.show\n        }\n    }, t = i(27);\n\n    function Gi(e, t) {\n        var i, n = Object.keys(e);\n        return Object.getOwnPropertySymbols && (i = Object.getOwnPropertySymbols(e), t && (i = i.filter((function(t) {\n            return Object.getOwnPropertyDescriptor(e, t).enumerable\n        }))), n.push.apply(n, i)), n\n    }\n\n    function Yi(e) {\n        for (var t = 1; t < arguments.length; t++) {\n            var i = null != arguments[t] ? arguments[t] : {};\n            t % 2 ? Gi(Object(i), !0).forEach((function(t) {\n                d()(e, t, i[t])\n            })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(i)) : Gi(Object(i)).forEach((function(t) {\n                Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(i, t))\n            }))\n        }\n        return e\n    }\n    s = {\n        components: {\n            EscCapture: v.a\n        },\n        name: \"AlertView\",\n        props: [],\n        data: function() {\n            return {\n                isShow: !1,\n                content: \"\",\n                title: \"错误\",\n                isShowErrorBtn: !1,\n                resolve: null,\n                reject: null\n            }\n        },\n        computed: Yi(Yi({}, Object(t.mapState)({})), Object(t.mapGetters)([\"theme\"])),\n        methods: {\n            show: function(e) {\n                var t = this,\n                    i = void 0 === (n = e.title) ? \"错误\" : n,\n                    n = void 0 === (n = e.content) ? \"\" : n;\n                e = void 0 !== (e = e.isShowErrorBtn) && e;\n                return this.isShow = !0, this.title = i, this.content = n, this.isShowErrorBtn = e, new Promise((function(e, i) {\n                    t.resolve = e, t.reject = i\n                }))\n            },\n            handleKeyDown: function(e) {\n                13 === e.keyCode && this.handleDone()\n            },\n            handleCancel: function() {\n                this.isShow = !1, this.reject()\n            },\n            handleDone: function() {\n                this.isShow = !1, this.resolve({})\n            }\n        }\n    };\n    var Zi = (i(461), Object(f.a)(s, (function() {\n        var e = this,\n            t = e.$createElement;\n        t = e._self._c || t;\n        return e.isShow ? t(\"EscCapture\", {\n            staticClass: \"main-alert-view-plugin\",\n            on: {\n                esc: e.handleCancel,\n                mousedown: e.handleCancel\n            }\n        }, [t(\"div\", {\n            staticClass: \"card-main\",\n            on: {\n                mousedown: function(e) {\n                    e.stopPropagation()\n                }\n            }\n        }, [t(\"div\", {\n            staticClass: \"card-content\"\n        }, [t(\"div\", {\n            staticClass: \"content-title\"\n        }, [e._v(e._s(e.title))]), e._v(\" \"), t(\"div\", {\n            class: [\"content-content-\" + e.theme],\n            domProps: {\n                innerHTML: e._s(e.content)\n            }\n        }), e._v(\" \"), t(\"div\", {\n            staticClass: \"card-btns\"\n        }, [e.isShowErrorBtn ? t(\"div\", {\n            staticClass: \"btn btn-cancel\",\n            on: {\n                click: e.handleCancel\n            }\n        }, [e._v(\"\\n          取消\\n        \")]) : e._e(), e._v(\" \"), t(\"div\", {\n            staticClass: \"btn btn-ok\",\n            on: {\n                click: e.handleDone\n            }\n        }, [e._v(\"确定\")])])])])]) : e._e()\n    }), [], !1, null, \"a49f7ad8\", null).exports);\n\n    function Xi(e, t) {\n        var i, n = Object.keys(e);\n        return Object.getOwnPropertySymbols && (i = Object.getOwnPropertySymbols(e), t && (i = i.filter((function(t) {\n            return Object.getOwnPropertyDescriptor(e, t).enumerable\n        }))), n.push.apply(n, i)), n\n    }\n\n    function Qi(e) {\n        for (var t = 1; t < arguments.length; t++) {\n            var i = null != arguments[t] ? arguments[t] : {};\n            t % 2 ? Xi(Object(i), !0).forEach((function(t) {\n                d()(e, t, i[t])\n            })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(i)) : Xi(Object(i)).forEach((function(t) {\n                Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(i, t))\n            }))\n        }\n        return e\n    }\n\n    function Ji(e, t) {\n        var i, n = Object.keys(e);\n        return Object.getOwnPropertySymbols && (i = Object.getOwnPropertySymbols(e), t && (i = i.filter((function(t) {\n            return Object.getOwnPropertyDescriptor(e, t).enumerable\n        }))), n.push.apply(n, i)), n\n    }\n    g = c = {\n        install: function(e, t) {\n            var i = t.store;\n            i = (t = new(e.extend(Qi(Qi({}, Zi), {}, {\n                store: i\n            })))).$mount().$el;\n            document.body.appendChild(i), e.prototype.$alert = t.show\n        }\n    };\n    s = {\n        components: {\n            EscCapture: v.a\n        },\n        name: \"SelectView\",\n        props: [],\n        data: function() {\n            return {\n                isShow: !1,\n                title: \"\",\n                message: \"\",\n                items: [],\n                resolve: null,\n                reject: null\n            }\n        },\n        computed: function(e) {\n            for (var t = 1; t < arguments.length; t++) {\n                var i = null != arguments[t] ? arguments[t] : {};\n                t % 2 ? Ji(Object(i), !0).forEach((function(t) {\n                    d()(e, t, i[t])\n                })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(i)) : Ji(Object(i)).forEach((function(t) {\n                    Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(i, t))\n                }))\n            }\n            return e\n        }({}, Object(t.mapState)({})),\n        methods: {\n            show: function(e) {\n                var t = this,\n                    i = void 0 === (n = e.items) ? [] : n,\n                    n = void 0 === (n = e.title) ? \"Select\" : n;\n                e = void 0 === (e = e.message) ? \"\" : e;\n                return this.isShow = !0, this.title = n, this.items = i, this.message = e, new Promise((function(e, i) {\n                    t.resolve = e, t.reject = i\n                }))\n            },\n            handleCancel: function() {\n                this.isShow = !1, this.reject()\n            },\n            handleDone: function() {\n                this.isShow = !1, this.resolve({})\n            },\n            handleItemSelect: function(e) {\n                this.isShow = !1, this.resolve(e)\n            }\n        }\n    };\n    var en = (i(463), Object(f.a)(s, (function() {\n        var e = this,\n            t = e.$createElement,\n            i = e._self._c || t;\n        return e.isShow ? i(\"EscCapture\", {\n            staticClass: \"main-select-view-plugin\",\n            on: {\n                esc: e.handleCancel,\n                mousedown: e.handleCancel\n            }\n        }, [i(\"div\", {\n            staticClass: \"card-main\",\n            on: {\n                mousedown: function(e) {\n                    e.stopPropagation()\n                }\n            }\n        }, [i(\"div\", {\n            staticClass: \"card-content\"\n        }, [i(\"div\", {\n            staticClass: \"content-title\"\n        }, [e._v(e._s(e.title))]), e._v(\" \"), i(\"div\", {\n            staticClass: \"content-message\",\n            domProps: {\n                innerHTML: e._s(e.message)\n            }\n        }), e._v(\" \"), i(\"div\", {\n            staticClass: \"btns\"\n        }, e._l(e.items, (function(t, n) {\n            return i(\"div\", {\n                key: n,\n                staticClass: \"btn\",\n                on: {\n                    click: function(t) {\n                        return e.handleItemSelect(n)\n                    }\n                }\n            }, [t ? i(\"span\", [e._v(e._s(t))]) : e._e()])\n        })), 0)])])]) : e._e()\n    }), [], !1, null, \"309e2da2\", null).exports);\n\n    function tn(e, t) {\n        var i, n = Object.keys(e);\n        return Object.getOwnPropertySymbols && (i = Object.getOwnPropertySymbols(e), t && (i = i.filter((function(t) {\n            return Object.getOwnPropertyDescriptor(e, t).enumerable\n        }))), n.push.apply(n, i)), n\n    }\n\n    function nn(e) {\n        for (var t = 1; t < arguments.length; t++) {\n            var i = null != arguments[t] ? arguments[t] : {};\n            t % 2 ? tn(Object(i), !0).forEach((function(t) {\n                d()(e, t, i[t])\n            })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(i)) : tn(Object(i)).forEach((function(t) {\n                Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(i, t))\n            }))\n        }\n        return e\n    }\n\n    function rn(e, t) {\n        var i, n = Object.keys(e);\n        return Object.getOwnPropertySymbols && (i = Object.getOwnPropertySymbols(e), t && (i = i.filter((function(t) {\n            return Object.getOwnPropertyDescriptor(e, t).enumerable\n        }))), n.push.apply(n, i)), n\n    }\n\n    function on(e) {\n        for (var t = 1; t < arguments.length; t++) {\n            var i = null != arguments[t] ? arguments[t] : {};\n            t % 2 ? rn(Object(i), !0).forEach((function(t) {\n                d()(e, t, i[t])\n            })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(i)) : rn(Object(i)).forEach((function(t) {\n                Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(i, t))\n            }))\n        }\n        return e\n    }\n    s = c = {\n        install: function(e, t) {\n            var i = t.store;\n            i = (t = new(e.extend(nn(nn({}, en), {}, {\n                store: i\n            })))).$mount().$el;\n            document.body.appendChild(i), e.prototype.$select = t.show\n        }\n    };\n    c = {\n        name: \"CodeView\",\n        props: [],\n        components: {},\n        data: function() {\n            return {\n                editor: null,\n                isShow: !1,\n                resolve: null,\n                reject: null,\n                language: \"\",\n                code: \"\",\n                error: null\n            }\n        },\n        watch: {\n            isShow: function(e) {\n                e || (this.editor && this.editor.dispose(), this.editor = null)\n            }\n        },\n        computed: on(on({}, Object(t.mapState)({})), Object(t.mapGetters)([\"theme\"])),\n        methods: {\n            show: function(e) {\n                var t = this,\n                    i = e.code,\n                    n = void 0 === (e = e.language) ? \"yaml\" : e;\n                return this.isShow = !0, this.language = n, this.error = \"\", this.code = i, this.$nextTick((function() {\n                    t.editor = Fi.i.create(t.$refs.editor, {\n                        value: i,\n                        language: n,\n                        theme: [\"light\", \"red\"].includes(t.theme) ? \"vs\" : \"vs-dark\",\n                        fontFamily: \"Consolas, Monaco, Lucida Console, Liberation Mono,\\n        DejaVu Sans Mono, Bitstream Vera Sans Mono, Courier New, monospace\",\n                        fontSize: 14,\n                        minimap: {\n                            enabled: !1\n                        },\n                        contextmenu: !1,\n                        scrollbar: {\n                            verticalScrollbarSize: 12,\n                            horizontalScrollbarSize: 12\n                        }\n                    }), t.editor.onDidChangeModelContent((function() {\n                        t.code = t.editor.getValue()\n                    })), t.editor.addAction({\n                        id: \"save\",\n                        label: \"保存\",\n                        run: function() {\n                            t.save()\n                        },\n                        keybindings: [Fi.c.CtrlCmd | Fi.b.KeyS]\n                    }), t.editor.addAction({\n                        id: \"abort\",\n                        label: \"Abort\",\n                        run: function() {\n                            t.reject(), t.isShow = !1\n                        },\n                        keybindings: [Fi.b.Escape]\n                    }), t.editor.setSelection(new Fi.g(1, 1, 1, 1)), t.editor.focus()\n                })), new Promise((function(e, i) {\n                    t.resolve = e, t.reject = i\n                }))\n            },\n            handleSaveClick: function() {\n                this.save()\n            },\n            handleAbortClick: function() {\n                this.reject(), this.isShow = !1\n            },\n            save: function() {\n                if (this.resolve) try {\n                    \"yaml\" === this.language && N.parse(this.code, {\n                        prettyErrors: !0\n                    }), this.resolve({\n                        code: this.code\n                    }), this.isShow = !1\n                } catch (e) {\n                    this.error = \"Error: \".concat(e.message)\n                }\n            }\n        },\n        mounted: function() {},\n        beforeDestroy: function() {}\n    };\n    var sn = (i(465), Object(f.a)(c, (function() {\n        var e = this,\n            t = e.$createElement;\n        t = e._self._c || t;\n        return e.isShow ? t(\"div\", {\n            class: [\"main-code-view-\" + e.theme, \"line-numbers\"]\n        }, [t(\"div\", {\n            ref: \"editor\",\n            staticClass: \"editor\"\n        }), e._v(\" \"), e.error ? t(\"div\", {\n            staticClass: \"error\"\n        }, [t(\"div\", [e._v(e._s(e.error))]), e._v(\" \"), t(\"div\", {\n            staticClass: \"clickable\",\n            on: {\n                click: function(t) {\n                    e.error = \"\"\n                }\n            }\n        }, [t(\"svg\", {\n            attrs: {\n                xmlns: \"http://www.w3.org/2000/svg\",\n                viewBox: \"0 0 24 24\"\n            }\n        }, [t(\"path\", {\n            attrs: {\n                d: \"M0 0h24v24H0V0z\",\n                fill: \"none\"\n            }\n        }), e._v(\" \"), t(\"path\", {\n            attrs: {\n                d: \"M18.3 5.71c-.39-.39-1.02-.39-1.41 0L12 10.59 7.11 5.7c-.39-.39-1.02-.39-1.41 0-.39.39-.39 1.02 0 1.41L10.59 12 5.7 16.89c-.39.39-.39 1.02 0 1.41.39.39 1.02.39 1.41 0L12 13.41l4.89 4.89c.39.39 1.02.39 1.41 0 .39-.39.39-1.02 0-1.41L13.41 12l4.89-4.89c.38-.38.38-1.02 0-1.4z\"\n            }\n        })])])]) : e._e(), e._v(\" \"), t(\"div\", {\n            staticClass: \"btns\"\n        }, [t(\"div\", {\n            staticClass: \"abort-btn clickable\",\n            on: {\n                click: e.handleAbortClick\n            }\n        }, [e._v(\"中止\")]), e._v(\" \"), t(\"div\", {\n            staticClass: \"save-btn clickable\",\n            on: {\n                click: e.handleSaveClick\n            }\n        }, [e._v(\"保存\")])])]) : e._e()\n    }), [], !1, null, \"4bcad04a\", null).exports);\n\n    function an(e, t) {\n        var i, n = Object.keys(e);\n        return Object.getOwnPropertySymbols && (i = Object.getOwnPropertySymbols(e), t && (i = i.filter((function(t) {\n            return Object.getOwnPropertyDescriptor(e, t).enumerable\n        }))), n.push.apply(n, i)), n\n    }\n\n    function ln(e) {\n        for (var t = 1; t < arguments.length; t++) {\n            var i = null != arguments[t] ? arguments[t] : {};\n            t % 2 ? an(Object(i), !0).forEach((function(t) {\n                d()(e, t, i[t])\n            })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(i)) : an(Object(i)).forEach((function(t) {\n                Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(i, t))\n            }))\n        }\n        return e\n    }\n\n    function dn(e, t) {\n        var i, n = Object.keys(e);\n        return Object.getOwnPropertySymbols && (i = Object.getOwnPropertySymbols(e), t && (i = i.filter((function(t) {\n            return Object.getOwnPropertyDescriptor(e, t).enumerable\n        }))), n.push.apply(n, i)), n\n    }\n    c = {\n        install: function(e, t) {\n            var i = t.store;\n            i = (t = new(e.extend(ln(ln({}, sn), {}, {\n                store: i\n            })))).$mount().$el;\n            document.body.appendChild(i), e.prototype.$code = t.show\n        }\n    };\n    v = {\n        name: \"MenuView\",\n        props: [],\n        components: {\n            EscCapture: v.a\n        },\n        data: function() {\n            return {\n                isShow: !1,\n                options: {},\n                items: [],\n                resolve: null,\n                reject: null,\n                contentStyles: {},\n                isScrollBottom: !0\n            }\n        },\n        watch: {\n            isShow: function(e) {\n                var t = this;\n                this.$nextTick((function() {\n                    var i, n, r, o, s, a, l;\n                    e && t.$refs.menu && t.$refs.window.$el && (i = (s = t.$refs.menu).clientHeight, n = s.clientWidth, o = (l = t.$refs.window.$el).clientHeight, r = l.clientWidth, s = (a = t.options).clientX, l = {}, (a = a.clientY) + i <= (o += 25) - 10 ? l.top = a + \"px\" : 10 <= a - i ? l.top = a - i + \"px\" : (l.top = a + \"px\", l.height = o - a - 10 + \"px\", t.isScrollBottom = !1), l.left = s + n <= r ? s + \"px\" : s - n + \"px\", t.contentStyles = l)\n                }))\n            }\n        },\n        computed: function(e) {\n            for (var t = 1; t < arguments.length; t++) {\n                var i = null != arguments[t] ? arguments[t] : {};\n                t % 2 ? dn(Object(i), !0).forEach((function(t) {\n                    d()(e, t, i[t])\n                })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(i)) : dn(Object(i)).forEach((function(t) {\n                    Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(i, t))\n                }))\n            }\n            return e\n        }({}, Object(t.mapState)({})),\n        methods: {\n            show: function() {\n                var e = this,\n                    t = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : [],\n                    i = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : {};\n                return this.items = t, this.options = i, this.isShow = !0, this.contentStyles = {}, this.isScrollBottom = !0, new Promise((function(t, i) {\n                    e.resolve = t\n                }))\n            },\n            handleCancel: function() {\n                this.isShow = !1, this.resolve(-1)\n            },\n            handleItemSelect: function(e) {\n                this.isShow = !1, this.resolve(e)\n            },\n            handleMenuScroll: function(e) {\n                e = e.target, this.isScrollBottom = e.scrollTop + e.clientHeight >= e.scrollHeight - 20\n            }\n        }\n    };\n    var cn = (i(467), Object(f.a)(v, (function() {\n        var e = this,\n            t = e.$createElement,\n            i = e._self._c || t;\n        return e.isShow ? i(\"EscCapture\", {\n            ref: \"window\",\n            staticClass: \"main-menu-view-plugin\",\n            on: {\n                esc: e.handleCancel,\n                mousedown: e.handleCancel\n            }\n        }, [i(\"div\", {\n            staticClass: \"card-main\",\n            on: {\n                mousedown: function(e) {\n                    e.stopPropagation()\n                }\n            }\n        }, [i(\"div\", {\n            ref: \"menu\",\n            staticClass: \"card-content\",\n            style: e.contentStyles,\n            on: {\n                scroll: e.handleMenuScroll\n            }\n        }, [e._l(e.items, (function(t, n) {\n            return [t.hide ? e._e() : i(\"div\", {\n                key: t.text,\n                staticClass: \"item clickable\",\n                on: {\n                    click: function(t) {\n                        return e.handleItemSelect(n)\n                    }\n                }\n            }, [\"proxy\" === t.icon ? i(\"svg\", {\n                attrs: {\n                    xmlns: \"http://www.w3.org/2000/svg\",\n                    viewBox: \"0 0 24 24\"\n                }\n            }, [i(\"path\", {\n                attrs: {\n                    d: \"M0 0h24v24H0V0z\",\n                    fill: \"none\"\n                }\n            }), e._v(\" \"), i(\"path\", {\n                attrs: {\n                    d: \"M3.4 20.4l17.45-7.48c.81-.35.81-1.49 0-1.84L3.4 3.6c-.66-.29-1.39.2-1.39.91L2 9.12c0 .5.37.93.87.99L17 12 2.87 13.88c-.5.07-.87.5-.87 1l.01 4.61c0 .71.73 1.2 1.39.91z\"\n                }\n            })]) : \"rule\" === t.icon ? i(\"svg\", {\n                attrs: {\n                    xmlns: \"http://www.w3.org/2000/svg\",\n                    viewBox: \"0 0 24 24\"\n                }\n            }, [i(\"path\", {\n                attrs: {\n                    d: \"M0 0h24v24H0V0z\",\n                    fill: \"none\"\n                }\n            }), e._v(\" \"), i(\"path\", {\n                attrs: {\n                    d: \"M12 9h4c.55 0 1-.45 1-1s-.45-1-1-1h-4c-.55 0-1 .45-1 1s.45 1 1 1zm0 4h4c.55 0 1-.45 1-1s-.45-1-1-1h-4c-.55 0-1 .45-1 1s.45 1 1 1zm0 4h4c.55 0 1-.45 1-1s-.45-1-1-1h-4c-.55 0-1 .45-1 1s.45 1 1 1zM7 7h2v2H7zm0 4h2v2H7zm0 4h2v2H7zM20 3H4c-.55 0-1 .45-1 1v16c0 .55.45 1 1 1h16c.55 0 1-.45 1-1V4c0-.55-.45-1-1-1zm-1 16H5V5h14v14z\"\n                }\n            })]) : \"copy\" === t.icon ? i(\"svg\", {\n                attrs: {\n                    xmlns: \"http://www.w3.org/2000/svg\",\n                    viewBox: \"0 0 24 24\"\n                }\n            }, [i(\"path\", {\n                attrs: {\n                    d: \"M0 0h24v24H0V0z\",\n                    fill: \"none\"\n                }\n            }), e._v(\" \"), i(\"path\", {\n                attrs: {\n                    d: \"M15 1H4c-1.1 0-2 .9-2 2v13c0 .55.45 1 1 1s1-.45 1-1V4c0-.55.45-1 1-1h10c.55 0 1-.45 1-1s-.45-1-1-1zm4 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm-1 16H9c-.55 0-1-.45-1-1V8c0-.55.45-1 1-1h9c.55 0 1 .45 1 1v12c0 .55-.45 1-1 1z\"\n                }\n            })]) : \"diff\" === t.icon ? i(\"svg\", {\n                attrs: {\n                    xmlns: \"http://www.w3.org/2000/svg\",\n                    height: \"24px\",\n                    viewBox: \"0 0 24 24\",\n                    width: \"24px\"\n                }\n            }, [i(\"path\", {\n                attrs: {\n                    d: \"M0 0h24v24H0V0z\",\n                    fill: \"none\"\n                }\n            }), e._v(\" \"), i(\"path\", {\n                attrs: {\n                    d: \"M17.7 19.7c.39-.39.39-1.02 0-1.41l-2.7-2.7L13.59 17l2.7 2.7c.39.39 1.03.39 1.41 0zM8.71 8H11v5.59l-4.71 4.7c-.39.39-.39 1.02 0 1.41.39.39 1.02.39 1.41 0l4.71-4.7c.38-.38.59-.88.59-1.41V8h2.29c.45 0 .67-.54.35-.85l-3.29-3.29c-.2-.2-.51-.2-.71 0L8.35 7.15c-.31.31-.09.85.36.85z\"\n                }\n            })]) : \"编辑\" === t.icon ? i(\"svg\", {\n                attrs: {\n                    xmlns: \"http://www.w3.org/2000/svg\",\n                    viewBox: \"0 0 24 24\"\n                }\n            }, [i(\"path\", {\n                attrs: {\n                    d: \"M0 0h24v24H0V0z\",\n                    fill: \"none\"\n                }\n            }), e._v(\" \"), i(\"path\", {\n                attrs: {\n                    d: \"M8.7 15.9L4.8 12l3.9-3.9c.39-.39.39-1.01 0-1.4-.39-.39-1.01-.39-1.4 0l-4.59 4.59c-.39.39-.39 1.02 0 1.41l4.59 4.6c.39.39 1.01.39 1.4 0 .39-.39.39-1.01 0-1.4zm6.6 0l3.9-3.9-3.9-3.9c-.39-.39-.39-1.01 0-1.4.39-.39 1.01-.39 1.4 0l4.59 4.59c.39.39.39 1.02 0 1.41l-4.59 4.6c-.39.39-1.01.39-1.4 0-.39-.39-.39-1.01 0-1.4z\"\n                }\n            })]) : \"qrcode\" === t.icon ? i(\"svg\", {\n                attrs: {\n                    xmlns: \"http://www.w3.org/2000/svg\",\n                    \"enable-background\": \"new 0 0 24 24\",\n                    height: \"24px\",\n                    viewBox: \"0 0 24 24\",\n                    width: \"24px\",\n                    fill: \"none\"\n                }\n            }, [i(\"g\", [i(\"rect\", {\n                attrs: {\n                    fill: \"none\",\n                    height: \"24\",\n                    width: \"24\"\n                }\n            }), e._v(\" \"), i(\"rect\", {\n                attrs: {\n                    fill: \"none\",\n                    height: \"24\",\n                    width: \"24\"\n                }\n            })]), e._v(\" \"), i(\"g\", [i(\"g\", [i(\"path\", {\n                attrs: {\n                    d: \"M5,11h4c1.1,0,2-0.9,2-2V5c0-1.1-0.9-2-2-2H5C3.9,3,3,3.9,3,5v4C3,10.1,3.9,11,5,11z M5,5h4v4H5V5z\"\n                }\n            }), e._v(\" \"), i(\"path\", {\n                attrs: {\n                    d: \"M5,21h4c1.1,0,2-0.9,2-2v-4c0-1.1-0.9-2-2-2H5c-1.1,0-2,0.9-2,2v4C3,20.1,3.9,21,5,21z M5,15h4v4H5V15z\"\n                }\n            }), e._v(\" \"), i(\"path\", {\n                attrs: {\n                    d: \"M13,5v4c0,1.1,0.9,2,2,2h4c1.1,0,2-0.9,2-2V5c0-1.1-0.9-2-2-2h-4C13.9,3,13,3.9,13,5z M19,9h-4V5h4V9z\"\n                }\n            }), e._v(\" \"), i(\"path\", {\n                attrs: {\n                    d: \"M21,20.5v-1c0-0.28-0.22-0.5-0.5-0.5h-1c-0.28,0-0.5,0.22-0.5,0.5v1c0,0.28,0.22,0.5,0.5,0.5h1C20.78,21,21,20.78,21,20.5 z\"\n                }\n            }), e._v(\" \"), i(\"path\", {\n                attrs: {\n                    d: \"M13,13.5v1c0,0.28,0.22,0.5,0.5,0.5h1c0.28,0,0.5-0.22,0.5-0.5v-1c0-0.28-0.22-0.5-0.5-0.5h-1C13.22,13,13,13.22,13,13.5z\"\n                }\n            }), e._v(\" \"), i(\"path\", {\n                attrs: {\n                    d: \"M16.5,15h-1c-0.28,0-0.5,0.22-0.5,0.5v1c0,0.28,0.22,0.5,0.5,0.5h1c0.28,0,0.5-0.22,0.5-0.5v-1C17,15.22,16.78,15,16.5,15 z\"\n                }\n            }), e._v(\" \"), i(\"path\", {\n                attrs: {\n                    d: \"M13,17.5v1c0,0.28,0.22,0.5,0.5,0.5h1c0.28,0,0.5-0.22,0.5-0.5v-1c0-0.28-0.22-0.5-0.5-0.5h-1C13.22,17,13,17.22,13,17.5z\"\n                }\n            }), e._v(\" \"), i(\"path\", {\n                attrs: {\n                    d: \"M15.5,21h1c0.28,0,0.5-0.22,0.5-0.5v-1c0-0.28-0.22-0.5-0.5-0.5h-1c-0.28,0-0.5,0.22-0.5,0.5v1C15,20.78,15.22,21,15.5,21 z\"\n                }\n            }), e._v(\" \"), i(\"path\", {\n                attrs: {\n                    d: \"M17.5,19h1c0.28,0,0.5-0.22,0.5-0.5v-1c0-0.28-0.22-0.5-0.5-0.5h-1c-0.28,0-0.5,0.22-0.5,0.5v1C17,18.78,17.22,19,17.5,19 z\"\n                }\n            }), e._v(\" \"), i(\"path\", {\n                attrs: {\n                    d: \"M18.5,13h-1c-0.28,0-0.5,0.22-0.5,0.5v1c0,0.28,0.22,0.5,0.5,0.5h1c0.28,0,0.5-0.22,0.5-0.5v-1C19,13.22,18.78,13,18.5,13 z\"\n                }\n            }), e._v(\" \"), i(\"path\", {\n                attrs: {\n                    d: \"M19.5,17h1c0.28,0,0.5-0.22,0.5-0.5v-1c0-0.28-0.22-0.5-0.5-0.5h-1c-0.28,0-0.5,0.22-0.5,0.5v1C19,16.78,19.22,17,19.5,17 z\"\n                }\n            })])])]) : \"parser\" === t.icon ? i(\"svg\", {\n                attrs: {\n                    xmlns: \"http://www.w3.org/2000/svg\",\n                    viewBox: \"0 0 24 24\"\n                }\n            }, [i(\"path\", {\n                attrs: {\n                    d: \"M0 0h24v24H0V0z\",\n                    fill: \"none\"\n                }\n            }), e._v(\" \"), i(\"path\", {\n                attrs: {\n                    d: \"M10 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h5v1c0 .55.45 1 1 1s1-.45 1-1V2c0-.55-.45-1-1-1s-1 .45-1 1v1zm0 15H5l5-6v6zm9-15h-5v2h4c.55 0 1 .45 1 1v12l-5-6v9h5c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z\"\n                }\n            })]) : \"setting\" === t.icon ? i(\"svg\", {\n                attrs: {\n                    xmlns: \"http://www.w3.org/2000/svg\",\n                    viewBox: \"0 0 24 24\"\n                }\n            }, [i(\"path\", {\n                attrs: {\n                    d: \"M0 0h24v24H0V0z\",\n                    fill: \"none\"\n                }\n            }), e._v(\" \"), i(\"path\", {\n                attrs: {\n                    d: \"M19.43 12.98c.04-.32.07-.64.07-.98s-.03-.66-.07-.98l2.11-1.65c.19-.15.24-.42.12-.64l-2-3.46c-.12-.22-.39-.3-.61-.22l-2.49 1c-.52-.4-1.08-.73-1.69-.98l-.38-2.65C14.46 2.18 14.25 2 14 2h-4c-.25 0-.46.18-.49.42l-.38 2.65c-.61.25-1.17.59-1.69.98l-2.49-1c-.23-.09-.49 0-.61.22l-2 3.46c-.13.22-.07.49.12.64l2.11 1.65c-.04.32-.07.65-.07.98s.03.66.07.98l-2.11 1.65c-.19.15-.24.42-.12.64l2 3.46c.12.22.39.3.61.22l2.49-1c.52.4 1.08.73 1.69.98l.38 2.65c.03.24.24.42.49.42h4c.25 0 .46-.18.49-.42l.38-2.65c.61-.25 1.17-.59 1.69-.98l2.49 1c.23.09.49 0 .61-.22l2-3.46c.12-.22.07-.49-.12-.64l-2.11-1.65zM12 15.5c-1.93 0-3.5-1.57-3.5-3.5s1.57-3.5 3.5-3.5 3.5 1.57 3.5 3.5-1.57 3.5-3.5 3.5z\"\n                }\n            })]) : \"delete\" === t.icon ? i(\"svg\", {\n                attrs: {\n                    xmlns: \"http://www.w3.org/2000/svg\",\n                    height: \"24px\",\n                    viewBox: \"0 0 24 24\",\n                    width: \"24px\"\n                }\n            }, [i(\"path\", {\n                attrs: {\n                    d: \"M0 0h24v24H0V0z\",\n                    fill: \"none\"\n                }\n            }), e._v(\" \"), i(\"path\", {\n                attrs: {\n                    d: \"M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V9c0-1.1-.9-2-2-2H8c-1.1 0-2 .9-2 2v10zM18 4h-2.5l-.71-.71c-.18-.18-.44-.29-.7-.29H9.91c-.26 0-.52.11-.7.29L8.5 4H6c-.55 0-1 .45-1 1s.45 1 1 1h12c.55 0 1-.45 1-1s-.45-1-1-1z\"\n                }\n            })]) : \"update\" === t.icon ? i(\"svg\", {\n                attrs: {\n                    xmlns: \"http://www.w3.org/2000/svg\",\n                    height: \"24px\",\n                    viewBox: \"0 0 24 24\",\n                    width: \"24px\"\n                }\n            }, [i(\"path\", {\n                attrs: {\n                    d: \"M0 0h24v24H0V0z\",\n                    fill: \"none\"\n                }\n            }), e._v(\" \"), i(\"path\", {\n                attrs: {\n                    d: \"M19.35 10.04C18.67 6.59 15.64 4 12 4 9.11 4 6.6 5.64 5.35 8.04 2.34 8.36 0 10.91 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96zM17 13l-4.65 4.65c-.2.2-.51.2-.71 0L7 13h3V9h4v4h3z\"\n                }\n            })]) : \"list\" === t.icon ? i(\"svg\", {\n                attrs: {\n                    xmlns: \"http://www.w3.org/2000/svg\",\n                    height: \"24px\",\n                    viewBox: \"0 0 24 24\",\n                    width: \"24px\"\n                }\n            }, [i(\"g\", {\n                attrs: {\n                    fill: \"none\"\n                }\n            }, [i(\"path\", {\n                attrs: {\n                    d: \"M0 0h24v24H0V0z\"\n                }\n            }), e._v(\" \"), i(\"path\", {\n                attrs: {\n                    d: \"M0 0h24v24H0V0z\",\n                    opacity: \".87\"\n                }\n            })]), e._v(\" \"), i(\"path\", {\n                attrs: {\n                    d: \"M4 13c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm0 4c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm0-8c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm4 4h12c.55 0 1-.45 1-1s-.45-1-1-1H8c-.55 0-1 .45-1 1s.45 1 1 1zm0 4h12c.55 0 1-.45 1-1s-.45-1-1-1H8c-.55 0-1 .45-1 1s.45 1 1 1zM7 8c0 .55.45 1 1 1h12c.55 0 1-.45 1-1s-.45-1-1-1H8c-.55 0-1 .45-1 1zm-3 5c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm0 4c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm0-8c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm4 4h12c.55 0 1-.45 1-1s-.45-1-1-1H8c-.55 0-1 .45-1 1s.45 1 1 1zm0 4h12c.55 0 1-.45 1-1s-.45-1-1-1H8c-.55 0-1 .45-1 1s.45 1 1 1zM7 8c0 .55.45 1 1 1h12c.55 0 1-.45 1-1s-.45-1-1-1H8c-.55 0-1 .45-1 1z\"\n                }\n            })]) : \"reorder\" === t.icon ? i(\"svg\", {\n                attrs: {\n                    xmlns: \"http://www.w3.org/2000/svg\",\n                    height: \"24px\",\n                    viewBox: \"0 0 24 24\",\n                    width: \"24px\"\n                }\n            }, [i(\"path\", {\n                attrs: {\n                    d: \"M0 0h24v24H0V0z\",\n                    fill: \"none\"\n                }\n            }), e._v(\" \"), i(\"path\", {\n                attrs: {\n                    d: \"M4 15h16c.55 0 1-.45 1-1s-.45-1-1-1H4c-.55 0-1 .45-1 1s.45 1 1 1zm0 4h16c.55 0 1-.45 1-1s-.45-1-1-1H4c-.55 0-1 .45-1 1s.45 1 1 1zm0-8h16c.55 0 1-.45 1-1s-.45-1-1-1H4c-.55 0-1 .45-1 1s.45 1 1 1zM3 6c0 .55.45 1 1 1h16c.55 0 1-.45 1-1s-.45-1-1-1H4c-.55 0-1 .45-1 1z\"\n                }\n            })]) : \"folder\" === t.icon ? i(\"svg\", {\n                attrs: {\n                    xmlns: \"http://www.w3.org/2000/svg\",\n                    height: \"24px\",\n                    viewBox: \"0 0 24 24\",\n                    width: \"24px\"\n                }\n            }, [i(\"path\", {\n                attrs: {\n                    d: \"M0 0h24v24H0V0z\",\n                    fill: \"none\"\n                }\n            }), e._v(\" \"), i(\"path\", {\n                attrs: {\n                    d: \"M10.59 4.59C10.21 4.21 9.7 4 9.17 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2h-8l-1.41-1.41z\"\n                }\n            })]) : \"js\" === t.icon ? i(\"svg\", {\n                attrs: {\n                    xmlns: \"http://www.w3.org/2000/svg\",\n                    \"enable-background\": \"new 0 0 24 24\",\n                    height: \"24px\",\n                    viewBox: \"0 0 24 24\",\n                    width: \"24px\",\n                    fill: \"#000000\"\n                }\n            }, [i(\"g\", [i(\"rect\", {\n                attrs: {\n                    fill: \"none\",\n                    height: \"24\",\n                    width: \"24\"\n                }\n            }), e._v(\" \"), i(\"rect\", {\n                attrs: {\n                    fill: \"none\",\n                    height: \"24\",\n                    width: \"24\"\n                }\n            })]), e._v(\" \"), i(\"g\", [i(\"g\", [i(\"path\", {\n                attrs: {\n                    d: \"M4,7v2c0,0.55-0.45,1-1,1h0c-0.55,0-1,0.45-1,1v2c0,0.55,0.45,1,1,1h0c0.55,0,1,0.45,1,1v2c0,1.66,1.34,3,3,3h2 c0.55,0,1-0.45,1-1v0c0-0.55-0.45-1-1-1H7c-0.55,0-1-0.45-1-1v-2c0-1.3-0.84-2.42-2-2.83v-0.34C5.16,11.42,6,10.3,6,9V7 c0-0.55,0.45-1,1-1h2c0.55,0,1-0.45,1-1v0c0-0.55-0.45-1-1-1H7C5.34,4,4,5.34,4,7z\"\n                }\n            }), e._v(\" \"), i(\"path\", {\n                attrs: {\n                    d: \"M21,10c-0.55,0-1-0.45-1-1V7c0-1.66-1.34-3-3-3h-2c-0.55,0-1,0.45-1,1v0c0,0.55,0.45,1,1,1h2c0.55,0,1,0.45,1,1v2 c0,1.3,0.84,2.42,2,2.83v0.34c-1.16,0.41-2,1.52-2,2.83v2c0,0.55-0.45,1-1,1h-2c-0.55,0-1,0.45-1,1v0c0,0.55,0.45,1,1,1h2 c1.66,0,3-1.34,3-3v-2c0-0.55,0.45-1,1-1h0c0.55,0,1-0.45,1-1v-2C22,10.45,21.55,10,21,10L21,10z\"\n                }\n            })])])]) : e._e(), e._v(\" \"), i(\"div\", [e._v(e._s(t.text))])])]\n        })), e._v(\" \"), e.isScrollBottom ? e._e() : i(\"div\", {\n            staticClass: \"indicator\"\n        }, [i(\"svg\", {\n            attrs: {\n                xmlns: \"http://www.w3.org/2000/svg\",\n                height: \"24px\",\n                viewBox: \"0 0 24 24\",\n                width: \"24px\",\n                fill: \"#fff\"\n            }\n        }, [i(\"path\", {\n            attrs: {\n                d: \"M24 24H0V0h24v24z\",\n                fill: \"none\",\n                opacity: \".87\"\n            }\n        }), e._v(\" \"), i(\"path\", {\n            attrs: {\n                d: \"M15.88 9.29L12 13.17 8.12 9.29c-.39-.39-1.02-.39-1.41 0-.39.39-.39 1.02 0 1.41l4.59 4.59c.39.39 1.02.39 1.41 0l4.59-4.59c.39-.39.39-1.02 0-1.41-.39-.38-1.03-.39-1.42 0z\"\n            }\n        })])])], 2)])]) : e._e()\n    }), [], !1, null, \"3d907f50\", null).exports);\n\n    function hn(e, t) {\n        var i, n = Object.keys(e);\n        return Object.getOwnPropertySymbols && (i = Object.getOwnPropertySymbols(e), t && (i = i.filter((function(t) {\n            return Object.getOwnPropertyDescriptor(e, t).enumerable\n        }))), n.push.apply(n, i)), n\n    }\n\n    function un(e) {\n        for (var t = 1; t < arguments.length; t++) {\n            var i = null != arguments[t] ? arguments[t] : {};\n            t % 2 ? hn(Object(i), !0).forEach((function(t) {\n                d()(e, t, i[t])\n            })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(i)) : hn(Object(i)).forEach((function(t) {\n                Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(i, t))\n            }))\n        }\n        return e\n    }\n    v = v = {\n        install: function(e, t) {\n            var i = t.store;\n            i = (t = new(e.extend(un(un({}, cn), {}, {\n                store: i\n            })))).$mount().$el;\n            document.body.appendChild(i), e.prototype.$menu = t.show\n        }\n    };\n    var pn = i(82);\n\n    function gn(e, t) {\n        var i, n = Object.keys(e);\n        return Object.getOwnPropertySymbols && (i = Object.getOwnPropertySymbols(e), t && (i = i.filter((function(t) {\n            return Object.getOwnPropertyDescriptor(e, t).enumerable\n        }))), n.push.apply(n, i)), n\n    }\n\n    function fn(e) {\n        for (var t = 1; t < arguments.length; t++) {\n            var i = null != arguments[t] ? arguments[t] : {};\n            t % 2 ? gn(Object(i), !0).forEach((function(t) {\n                d()(e, t, i[t])\n            })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(i)) : gn(Object(i)).forEach((function(t) {\n                Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(i, t))\n            }))\n        }\n        return e\n    }\n    self.MonacoEnvironment = {\n        getWorkerUrl: function(e, t) {\n            return \"./editor.worker.bundle.js\"\n        }\n    }, process.env.IS_WEB || u.a.use(i(469)), u.a.use(n, {\n        store: w.a\n    }), u.a.use(r, {\n        store: w.a\n    }), u.a.use(o), u.a.use(l, {\n        store: w.a\n    }), u.a.use(Y), u.a.use(g, {\n        store: w.a\n    }), u.a.use(s, {\n        store: w.a\n    }), u.a.use(c, {\n        store: w.a\n    }), u.a.use(v, {\n        store: w.a\n    }), u.a.config.productionTip = !1, u.a.mixin({\n        data: function() {\n            return {\n                mixinScrollTop: 0\n            }\n        },\n        computed: fn(fn(fn({\n            isWindows: function() {\n                return Object(I.j)()\n            },\n            isMacOS: function() {\n                return Object(I.i)()\n            },\n            isLinux: function() {\n                return Object(I.h)()\n            }\n        }, Object(t.mapState)({\n            sts: function(e) {\n                return e.app.settings\n            }\n        })), Object(t.mapGetters)({\n            theme: \"theme\"\n        })), {}, {\n            settings: function() {\n                var e = this;\n                if (this.sts) return new Proxy(pn.cloneDeep(this.sts), {\n                    get: function(e, t) {\n                        return e[t]\n                    },\n                    set: function(t, i, n) {\n                        return t[i] = n, e.saveSettingsObject({\n                            obj: pn.cloneDeep(t)\n                        }), !0\n                    }\n                })\n            }\n        }),\n        methods: fn(fn({}, Object(t.mapMutations)({\n            saveSettingsObject: \"SAVE_SETTINGS_OBJECT\"\n        })), {}, {\n            reloadElectron: function() {\n                return a()(h.a.mark((function e() {\n                    return h.a.wrap((function(e) {\n                        for (;;) switch (e.prev = e.next) {\n                            case 0:\n                                return e.next = 2, W.ipcRenderer.invoke(\"app\", \"relaunch\");\n                            case 2:\n                                return e.next = 4, W.ipcRenderer.invoke(\"app\", \"exit\", 0);\n                            case 4:\n                            case \"end\":\n                                return e.stop()\n                        }\n                    }), e)\n                })))()\n            }\n        }),\n        beforeRouteEnter: function(e, t, i) {\n            i((function(e) {\n                var t, i = e.$refs[\"mixin-scroll-content\"];\n                i && ((t = \"$el\" in i ? i.$el : i).style.scrollBehavior = \"auto\", setTimeout((function() {\n                    t.style.scrollBehavior = \"smooth\"\n                }), 1), e.$nextTick((function() {\n                    t.scrollTop = e.mixinScrollTop\n                })))\n            }))\n        },\n        beforeRouteLeave: function(e, t, i) {\n            var n = this.$refs[\"mixin-scroll-content\"];\n            n && (this.mixinScrollTop = \"$el\" in n ? n.$el.scrollTop : n.scrollTop), i()\n        }\n    }), new u.a({\n        components: {\n            App: m\n        },\n        router: _,\n        store: w.a,\n        template: \"<App/>\"\n    }).$mount(\"#app\")\n}, function(e, t, i) {\n    \"use strict\";\n    i.r(t);\n    var n = i(52),\n        r = i.n(n),\n        o = i(10),\n        s = i.n(o),\n        a = i(18),\n        l = i.n(a),\n        d = i(3),\n        c = i.n(d),\n        h = (i(35), i(45)),\n        u = (i(82), i(16)),\n        p = i(27);\n\n    function g(e, t) {\n        var i, n = Object.keys(e);\n        return Object.getOwnPropertySymbols && (i = Object.getOwnPropertySymbols(e), t && (i = i.filter((function(t) {\n            return Object.getOwnPropertyDescriptor(e, t).enumerable\n        }))), n.push.apply(n, i)), n\n    }\n    var f = {\n            name: \"setting-section\",\n            props: {\n                title: String\n            },\n            data: function() {\n                return {}\n            },\n            computed: function(e) {\n                for (var t = 1; t < arguments.length; t++) {\n                    var i = null != arguments[t] ? arguments[t] : {};\n                    t % 2 ? g(Object(i), !0).forEach((function(t) {\n                        l()(e, t, i[t])\n                    })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(i)) : g(Object(i)).forEach((function(t) {\n                        Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(i, t))\n                    }))\n                }\n                return e\n            }({}, Object(p.mapState)({}))\n        },\n        m = (i(354), i(30)),\n        v = Object(m.a)(f, (function() {\n            var e = this.$createElement;\n            return (e = this._self._c || e)(\"div\", {\n                class: [\"main-setting-section-\" + this.theme]\n            }, [e(\"div\", {\n                staticClass: \"title\"\n            }, [this._v(this._s(this.title))]), this._v(\" \"), e(\"div\", {\n                staticClass: \"content\"\n            }, [this._t(\"default\")], 2)])\n        }), [], !1, null, \"f0b72b92\", null).exports,\n        b = i(173);\n\n    function _(e, t) {\n        var i, n = Object.keys(e);\n        return Object.getOwnPropertySymbols && (i = Object.getOwnPropertySymbols(e), t && (i = i.filter((function(t) {\n            return Object.getOwnPropertyDescriptor(e, t).enumerable\n        }))), n.push.apply(n, i)), n\n    }\n\n    function w(e) {\n        for (var t = 1; t < arguments.length; t++) {\n            var i = null != arguments[t] ? arguments[t] : {};\n            t % 2 ? _(Object(i), !0).forEach((function(t) {\n                l()(e, t, i[t])\n            })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(i)) : _(Object(i)).forEach((function(t) {\n                Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(i, t))\n            }))\n        }\n        return e\n    }\n    var y = {\n            name: \"key-capture\",\n            props: {\n                value: {\n                    type: String,\n                    default: \"\"\n                },\n                placeholder: String\n            },\n            model: {\n                prop: \"value\",\n                event: \"change\"\n            },\n            data: function() {\n                return {\n                    isRecording: !1,\n                    keyChain: []\n                }\n            },\n            watch: {\n                isRecording: function(e) {\n                    e || this.$emit(\"change\", this.shortcut)\n                }\n            },\n            computed: w(w({}, Object(p.mapState)({})), {}, {\n                shortcut: function() {\n                    return this.keyChain.join(\"+\")\n                },\n                hint: function() {\n                    return this.isRecording ? \"记录中...\" : this.placeholder\n                }\n            }),\n            methods: {\n                handleKeyDown: function(e) {\n                    var t;\n                    this.isRecording && (t = e.key, 13 !== e.keyCode ? t && this.keyChain.push(t) : this.isRecording = !1)\n                },\n                handleClick: function() {\n                    this.keyChain = [], this.isRecording = !0, this.$emit(\"change\", \"\")\n                },\n                handleBlur: function() {\n                    this.isRecording = !1\n                },\n                mounted: function() {}\n            },\n            mounted: function() {\n                this.keyChain = this.value.split(\"+\")\n            }\n        },\n        C = (i(356), Object(m.a)(y, (function() {\n            var e = this,\n                t = e.$createElement;\n            return (t = e._self._c || t)(\"div\", {\n                class: [\"main-key-capture-\" + e.theme]\n            }, [t(\"input\", {\n                class: [e.isRecording ? \"recording\" : \"\"],\n                style: {\n                    padding: \"10px\"\n                },\n                attrs: {\n                    placeholder: e.hint,\n                    readonly: \"\"\n                },\n                domProps: {\n                    value: e.shortcut\n                },\n                on: {\n                    click: e.handleClick,\n                    keydown: e.handleKeyDown,\n                    blur: e.handleBlur\n                }\n            }), e._v(\" \"), t(\"div\", {\n                staticClass: \"hint\",\n                class: [e.isRecording ? \"\" : \"hint-hide\"]\n            }, [e._v(\"\\n    按 Enter 停止\\n  \")])])\n        }), [], !1, null, \"4b964f25\", null).exports);\n    n = i(150), o = i(151);\n\n    function x(e, t) {\n        var i, n = Object.keys(e);\n        return Object.getOwnPropertySymbols && (i = Object.getOwnPropertySymbols(e), t && (i = i.filter((function(t) {\n            return Object.getOwnPropertyDescriptor(e, t).enumerable\n        }))), n.push.apply(n, i)), n\n    }\n\n    function S(e) {\n        var t = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : \"\",\n            i = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : \"code --wait\";\n        return new Promise((function(n, r) {\n            T = r, N.ipcRenderer.invoke(\"app\", \"getPath\", \"temp\").then((function(o) {\n                var s = Object(D.join)(o, \"close-to-save.\".concat(e));\n                Object(u.writeFileSync)(s, t), Object(I.exec)(\"\".concat(i, \" \").concat(s), {\n                    windowsHide: !0\n                }, (function(e, t, i) {\n                    e && r(e)\n                })).on(\"exit\", (function() {\n                    n(Object(u.readFileSync)(s).toString())\n                }))\n            })).catch(r)\n        }))\n    }\n    a = {\n        name: \"more-hint\",\n        props: {\n            text: String,\n            clickable: {\n                type: Boolean,\n                default: !0\n            }\n        },\n        computed: function(e) {\n            for (var t = 1; t < arguments.length; t++) {\n                var i = null != arguments[t] ? arguments[t] : {};\n                t % 2 ? x(Object(i), !0).forEach((function(t) {\n                    l()(e, t, i[t])\n                })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(i)) : x(Object(i)).forEach((function(t) {\n                    Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(i, t))\n                }))\n            }\n            return e\n        }({}, Object(p.mapState)({}))\n    }, i(358), d = Object(m.a)(a, (function() {\n        var e = this,\n            t = e.$createElement;\n        return (t = e._self._c || t)(\"div\", {\n            class: [\"main-more-hint-\" + e.theme, e.clickable ? \"clickable\" : \"\"],\n            on: {\n                click: function(t) {\n                    return e.$emit(\"click\")\n                }\n            }\n        }, [t(\"div\", {\n            staticClass: \"text\"\n        }, [e._v(e._s(e.text))]), e._v(\" \"), e.clickable ? t(\"div\", {\n            staticClass: \"tirangle\"\n        }) : e._e()])\n    }), [], !1, null, \"3ddd8481\", null).exports, f = {\n        name: \"separator\"\n    }, i(360), y = Object(m.a)(f, (function() {\n        var e = this.$createElement;\n        return (this._self._c || e)(\"div\", {\n            class: [\"main-settings-separator-\" + this.theme]\n        })\n    }), [], !1, null, \"0d6d5378\", null).exports, a = i(131), f = {\n        name: \"TrayOrder\",\n        components: {\n            draggable: i.n(a).a\n        },\n        props: {\n            arr: {\n                type: Array,\n                default: function() {\n                    return [\n                        [],\n                        []\n                    ]\n                }\n            }\n        },\n        model: {\n            prop: \"arr\",\n            event: \"drag\"\n        },\n        watch: {\n            arr: {\n                handler: function(e) {\n                    this.array = e\n                },\n                deep: !0\n            }\n        },\n        data: function() {\n            return {\n                array: this.arr\n            }\n        },\n        methods: {\n            handleDrag: function(e) {\n                this.$emit(\"drag\", this.array)\n            }\n        },\n        mounted: function() {}\n    }, i(362), a = Object(m.a)(f, (function() {\n        var e = this,\n            t = e.$createElement,\n            i = e._self._c || t;\n        return i(\"div\", {\n            class: [\"tray-order-main-\" + e.theme]\n        }, [i(\"div\", {\n            staticClass: \"title\"\n        }, [e._v(\"显示:\")]), e._v(\" \"), i(\"draggable\", {\n            staticClass: \"list left-list\",\n            attrs: {\n                group: \"tray\",\n                list: e.array[0]\n            },\n            on: {\n                change: e.handleDrag\n            }\n        }, e._l(e.array[0], (function(e) {\n            return i(\"img\", {\n                key: e,\n                staticClass: \"clickable\",\n                attrs: {\n                    src: \"static/imgs/tray-\" + e + \".png\",\n                    alt: \"\"\n                }\n            })\n        })), 0), e._v(\" \"), i(\"div\", {\n            staticClass: \"title\"\n        }, [e._v(\"隐藏:\")]), e._v(\" \"), i(\"draggable\", {\n            staticClass: \"list\",\n            attrs: {\n                group: \"tray\",\n                list: e.array[1]\n            },\n            on: {\n                change: e.handleDrag\n            }\n        }, e._l(e.array[1], (function(e) {\n            return i(\"img\", {\n                key: e,\n                staticClass: \"clickable\",\n                attrs: {\n                    src: \"static/imgs/tray-\" + e + \".png\",\n                    alt: \"\"\n                }\n            })\n        })), 0)], 1)\n    }), [], !1, null, \"459d2b96\", null).exports;\n    var k = i(162),\n        L = i(169),\n        O = i(166),\n        E = i(127),\n        N = i(22),\n        D = i(12),\n        I = i(77),\n        T = null,\n        M = i(19),\n        P = (f = i(60), i.n(f)),\n        A = i(40);\n\n    function R(e, t) {\n        var i, n = Object.keys(e);\n        return Object.getOwnPropertySymbols && (i = Object.getOwnPropertySymbols(e), t && (i = i.filter((function(t) {\n            return Object.getOwnPropertyDescriptor(e, t).enumerable\n        }))), n.push.apply(n, i)), n\n    }\n\n    function F(e) {\n        for (var t = 1; t < arguments.length; t++) {\n            var i = null != arguments[t] ? arguments[t] : {};\n            t % 2 ? R(Object(i), !0).forEach((function(t) {\n                l()(e, t, i[t])\n            })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(i)) : R(Object(i)).forEach((function(t) {\n                Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(i, t))\n            }))\n        }\n        return e\n    }\n    p = {\n        components: {\n            Section: v,\n            SimpleInput: b.a,\n            KeyCapture: C,\n            MoreHint: d,\n            SelectView: n.a,\n            SwitchView: o.a,\n            Separator: y,\n            TrayOrder: a,\n            Navigator: k.a\n        },\n        data: function() {\n            return k.a, {\n                scrollTop: 0,\n                fontFamilyPlaceholder: Object(M.i)() ? \"PingFang SC\" : Object(M.j)() ? \"Microsoft Yahei\" : \"system-ui\",\n                isEditingExternal: !1,\n                sections: []\n            }\n        },\n        computed: F(F({}, Object(p.mapState)({\n            detectedInterfaceName: function(e) {\n                return e.app.detectedInterfaceName\n            }\n        })), Object(p.mapGetters)([\"clashAxiosClient\"])),\n        watch: {\n            \"sts.mixinType\": function() {\n                this.$parent.refreshProfile()\n            },\n            \"sts.profilePath\": function() {\n                this.refreshCore()\n            }\n        },\n        methods: F(F(F({}, Object(p.mapMutations)({\n            saveSettingsObject: \"SAVE_SETTINGS_OBJECT\"\n        })), Object(p.mapActions)([\"getParserLogPath\", \"getScriptLogPath\"])), {}, {\n            refreshCore: function() {\n                var e = this;\n                return s()(c.a.mark((function t() {\n                    return c.a.wrap((function(t) {\n                        for (;;) switch (t.prev = t.next) {\n                            case 0:\n                                return t.next = 2, e.$parent.handlerRestartClash();\n                            case 2:\n                            case \"end\":\n                                return t.stop()\n                        }\n                    }), t)\n                })))()\n            },\n            handleNavigatToGroup: function(e) {\n                var t = this.$refs[\"mixin-scroll-content\"],\n                    i = t.children[e];\n                this.$nextTick((function() {\n                    t.scrollTop = i.offsetTop - 110\n                }))\n            },\n            cancelExternalEdit: function() {\n                T && T()\n            },\n            edit: function(e) {\n                var t = arguments,\n                    i = this;\n                return s()(c.a.mark((function n() {\n                    var r, o, s, a, l, d;\n                    return c.a.wrap((function(n) {\n                        for (;;) switch (n.prev = n.next) {\n                            case 0:\n                                if (a = 1 < t.length && void 0 !== t[1] ? t[1] : \"\", r = 2 < t.length && void 0 !== t[2] ? t[2] : \"yaml\", o = !1, n.prev = 3, l = i.settings, s = l[e], l = l.editor, s = s || a, 0 === (a = void 0 === l ? 0 : l)) return n.next = 9, i.$code({\n                                    code: s,\n                                    language: r\n                                });\n                                n.next = 16;\n                                break;\n                            case 9:\n                                l = void 0 === (l = (l = n.sent).code) ? \"\" : l, i.settings[e] = l, o = l !== s, n.next = 32;\n                                break;\n                            case 16:\n                                if (1 === a) return i.isEditingExternal = !0, n.next = 20, S(r, s);\n                                n.next = 25;\n                                break;\n                            case 20:\n                                d = n.sent, i.settings[e] = d, o = d !== s, n.next = 32;\n                                break;\n                            case 25:\n                                if (2 === a) return i.isEditingExternal = !0, n.next = 29, S(r, s, i.settings.editorCustomCommand || \"subl --wait\");\n                                n.next = 32;\n                                break;\n                            case 29:\n                                d = n.sent, i.settings[e] = d, o = d !== s;\n                            case 32:\n                                n.next = 36;\n                                break;\n                            case 34:\n                                n.prev = 34, n.t0 = n.catch(3);\n                            case 36:\n                                return i.isEditingExternal = !1, n.abrupt(\"return\", o);\n                            case 38:\n                            case \"end\":\n                                return n.stop()\n                        }\n                    }), n, null, [\n                        [3, 34]\n                    ])\n                })))()\n            },\n            handleEditBypass: function() {\n                var e = this;\n                return s()(c.a.mark((function t() {\n                    return c.a.wrap((function(t) {\n                        for (;;) switch (t.prev = t.next) {\n                            case 0:\n                                return t.next = 2, e.edit(\"bypassText\", h.stringify({\n                                    bypass: L.a\n                                }));\n                            case 2:\n                            case \"end\":\n                                return t.stop()\n                        }\n                    }), t)\n                })))()\n            },\n            handleEditPACContent: function() {\n                var e = this;\n                return s()(c.a.mark((function t() {\n                    return c.a.wrap((function(t) {\n                        for (;;) switch (t.prev = t.next) {\n                            case 0:\n                                return t.next = 2, e.edit(\"pacContentText\", O.a, \"javascript\");\n                            case 2:\n                            case \"end\":\n                                return t.stop()\n                        }\n                    }), t)\n                })))()\n            },\n            handleEditMixinYAML: function() {\n                var e = this;\n                return s()(c.a.mark((function t() {\n                    var i;\n                    return c.a.wrap((function(t) {\n                        for (;;) switch (t.prev = t.next) {\n                            case 0:\n                                return i = e.settings.mixinType, t.next = 3, e.edit(\"mixinText\", \"mixin: # object\\n\");\n                            case 3:\n                                if (t.t0 = t.sent, !t.t0) {\n                                    t.next = 6;\n                                    break\n                                }\n                                t.t0 = 0 === i;\n                            case 6:\n                                if (!t.t0) {\n                                    t.next = 8;\n                                    break\n                                }\n                                e.$parent.refreshProfile();\n                            case 8:\n                            case \"end\":\n                                return t.stop()\n                        }\n                    }), t)\n                })))()\n            },\n            handleEditMixinJS: function() {\n                var e = this;\n                return s()(c.a.mark((function t() {\n                    var i;\n                    return c.a.wrap((function(t) {\n                        for (;;) switch (t.prev = t.next) {\n                            case 0:\n                                return i = e.settings.mixinType, t.next = 4, e.edit(\"mixinCode\", \"module.exports.parse = ({ content, name, url }, { yaml, axios, notify }) => {\\n  return content\\n}\", \"javascript\");\n                            case 4:\n                                if (t.t0 = t.sent, !t.t0) {\n                                    t.next = 7;\n                                    break\n                                }\n                                t.t0 = 1 === i;\n                            case 7:\n                                if (!t.t0) {\n                                    t.next = 9;\n                                    break\n                                }\n                                e.$parent.refreshProfile();\n                            case 9:\n                            case \"end\":\n                                return t.stop()\n                        }\n                    }), t)\n                })))()\n            },\n            handleEditHeaders: function() {\n                var e = this;\n                return s()(c.a.mark((function t() {\n                    return c.a.wrap((function(t) {\n                        for (;;) switch (t.prev = t.next) {\n                            case 0:\n                                return t.next = 2, e.edit(\"headersText\", \"headers: # object\\n\");\n                            case 2:\n                            case \"end\":\n                                return t.stop()\n                        }\n                    }), t)\n                })))()\n            },\n            handleEditChildProcess: function() {\n                var e = this;\n                return s()(c.a.mark((function t() {\n                    return c.a.wrap((function(t) {\n                        for (;;) switch (t.prev = t.next) {\n                            case 0:\n                                return t.next = 2, e.edit(\"childProcessText\", \"processes: # array\\n\");\n                            case 2:\n                                if (!t.sent) {\n                                    t.next = 4;\n                                    break\n                                }\n                                e.refreshCore();\n                            case 4:\n                            case \"end\":\n                                return t.stop()\n                        }\n                    }), t)\n                })))()\n            },\n            handleSelectInterface: function() {\n                var e = this;\n                return s()(c.a.mark((function t() {\n                    var i, n;\n                    return c.a.wrap((function(t) {\n                        for (;;) switch (t.prev = t.next) {\n                            case 0:\n                                return t.prev = 0, i = Object(E.b)().map((function(e) {\n                                    return e.name\n                                })), t.next = 4, e.$select({\n                                    title: \"选择出接口\",\n                                    message: \"仅在启用TAP模式时有效\",\n                                    items: [].concat(r()(i), [\"[ 重启 ]\"])\n                                });\n                            case 4:\n                                (n = t.sent) === i.length ? e.settings.interfaceName = \"\" : e.settings.interfaceName = i[n], t.next = 10;\n                                break;\n                            case 8:\n                                t.prev = 8, t.t0 = t.catch(0);\n                            case 10:\n                            case \"end\":\n                                return t.stop()\n                        }\n                    }), t, null, [\n                        [0, 8]\n                    ])\n                })))()\n            },\n            handleEditActionScripts: function() {\n                var e = this;\n                return s()(c.a.mark((function t() {\n                    return c.a.wrap((function(t) {\n                        for (;;) switch (t.prev = t.next) {\n                            case 0:\n                                return t.next = 2, e.edit(\"scriptsText\", h.stringify({\n                                    scripts: {\n                                        proxy: {},\n                                        profile: {}\n                                    }\n                                }));\n                            case 2:\n                            case \"end\":\n                                return t.stop()\n                        }\n                    }), t)\n                })))()\n            },\n            handleOpenActionScriptsConsoleFile: function() {\n                var e = this;\n                return s()(c.a.mark((function t() {\n                    var i;\n                    return c.a.wrap((function(t) {\n                        for (;;) switch (t.prev = t.next) {\n                            case 0:\n                                return t.next = 2, e.getScriptLogPath();\n                            case 2:\n                                i = t.sent, Object(u.existsSync)(i) || Object(u.writeFileSync)(i, \"\"), N.shell.openPath(i);\n                            case 5:\n                            case \"end\":\n                                return t.stop()\n                        }\n                    }), t)\n                })))()\n            },\n            handleEditProfileParsers: function() {\n                var e = this;\n                return s()(c.a.mark((function t() {\n                    return c.a.wrap((function(t) {\n                        for (;;) switch (t.prev = t.next) {\n                            case 0:\n                                return t.next = 2, e.edit(\"profileParsersText\", \"parsers: # array\\n\");\n                            case 2:\n                            case \"end\":\n                                return t.stop()\n                        }\n                    }), t)\n                })))()\n            },\n            handleOpenConsoleFile: function() {\n                var e = this;\n                return s()(c.a.mark((function t() {\n                    var i;\n                    return c.a.wrap((function(t) {\n                        for (;;) switch (t.prev = t.next) {\n                            case 0:\n                                return t.next = 2, e.getParserLogPath();\n                            case 2:\n                                i = t.sent, Object(u.existsSync)(i) || Object(u.writeFileSync)(i, \"\"), N.shell.openPath(i);\n                            case 5:\n                            case \"end\":\n                                return t.stop()\n                        }\n                    }), t)\n                })))()\n            },\n            handleChooseDefaultIcon: function() {\n                var e = this;\n                return s()(c.a.mark((function t() {\n                    var i;\n                    return c.a.wrap((function(t) {\n                        for (;;) switch (t.prev = t.next) {\n                            case 0:\n                                return t.next = 2, e.chooseFileOrPath();\n                            case 2:\n                                (i = t.sent) && (e.settings.iconDefault = i);\n                            case 4:\n                            case \"end\":\n                                return t.stop()\n                        }\n                    }), t)\n                })))()\n            },\n            handleChooseSystemProxytOnIcon: function() {\n                var e = this;\n                return s()(c.a.mark((function t() {\n                    var i;\n                    return c.a.wrap((function(t) {\n                        for (;;) switch (t.prev = t.next) {\n                            case 0:\n                                return t.next = 2, e.chooseFileOrPath();\n                            case 2:\n                                (i = t.sent) && (e.settings.iconSystemProxy = i);\n                            case 4:\n                            case \"end\":\n                                return t.stop()\n                        }\n                    }), t)\n                })))()\n            },\n            handleChooseProfilePath: function() {\n                var e = this;\n                return s()(c.a.mark((function t() {\n                    var i;\n                    return c.a.wrap((function(t) {\n                        for (;;) switch (t.prev = t.next) {\n                            case 0:\n                                return t.next = 2, e.chooseFileOrPath(!1);\n                            case 2:\n                                (i = t.sent) && (e.settings.profilePath = i);\n                            case 4:\n                            case \"end\":\n                                return t.stop()\n                        }\n                    }), t)\n                })))()\n            },\n            handleSelectTrayScriptPath: function() {\n                var e = this;\n                return s()(c.a.mark((function t() {\n                    var i;\n                    return c.a.wrap((function(t) {\n                        for (;;) switch (t.prev = t.next) {\n                            case 0:\n                                return t.next = 2, e.chooseFileOrPath();\n                            case 2:\n                                (i = t.sent) && (e.settings.trayScriptPath = i);\n                            case 4:\n                            case \"end\":\n                                return t.stop()\n                        }\n                    }), t)\n                })))()\n            },\n            handleTrayScriptManualRun: function() {\n                this.settings.trayScriptManualRunTime = (new Date).getTime()\n            },\n            chooseFileOrPath: function() {\n                var e = arguments;\n                return s()(c.a.mark((function t() {\n                    var i;\n                    return c.a.wrap((function(t) {\n                        for (;;) switch (t.prev = t.next) {\n                            case 0:\n                                return i = !(0 < e.length && void 0 !== e[0]) || e[0], t.next = 3, N.ipcRenderer.invoke(\"dialog\", \"showOpenDialogSync\", {\n                                    properties: [i ? \"openFile\" : \"openDirectory\"]\n                                });\n                            case 3:\n                                if ((i = t.sent) && 0 < i.length) return t.abrupt(\"return\", i[0]);\n                                t.next = 6;\n                                break;\n                            case 6:\n                                return t.abrupt(\"return\", void 0);\n                            case 7:\n                            case \"end\":\n                                return t.stop()\n                        }\n                    }), t)\n                })))()\n            },\n            handleReset: function() {\n                var e = this;\n                return s()(c.a.mark((function t() {\n                    return c.a.wrap((function(t) {\n                        for (;;) switch (t.prev = t.next) {\n                            case 0:\n                                return t.prev = 0, t.next = 3, e.$alert({\n                                    title: \"警告\",\n                                    content: \"您确定要重设所有设置吗?\",\n                                    isShowErrorBtn: !0\n                                });\n                            case 3:\n                                e.saveSettingsObject({\n                                    obj: {}\n                                }), t.next = 8;\n                                break;\n                            case 6:\n                                t.prev = 6, t.t0 = t.catch(0);\n                            case 8:\n                            case \"end\":\n                                return t.stop()\n                        }\n                    }), t, null, [\n                        [0, 6]\n                    ])\n                })))()\n            },\n            handleOpenGUILog: function() {\n                N.shell.openPath(Object(D.dirname)(P.a.transports.file.getFile().path))\n            },\n            handleQuit: function() {\n                0 < arguments.length && void 0 !== arguments[0] && arguments[0] ? N.ipcRenderer.send(\"cleanup-done\") : this.$parent.quit()\n            },\n            handlerClearFakeIPCache: function() {\n                var e = this;\n                return s()(c.a.mark((function t() {\n                    var i, n;\n                    return c.a.wrap((function(t) {\n                        for (;;) switch (t.prev = t.next) {\n                            case 0:\n                                return t.next = 2, e.clashAxiosClient.post(\"/cache/fakeip/flush\", {}, {\n                                    validateStatus: function(e) {\n                                        return !0\n                                    }\n                                });\n                            case 2:\n                                n = t.sent, i = n.status, n = void 0 === (n = (n = void 0 === (n = n.data) ? {} : n).message) ? \"\" : n, Object(A.g)({\n                                    message: 204 === i ? \"Fake IP cache cleared\" : \"Failed with reason: \".concat(n)\n                                });\n                            case 8:\n                            case \"end\":\n                                return t.stop()\n                        }\n                    }), t)\n                })))()\n            }\n        }),\n        beforeMount: function() {},\n        beforeRouteEnter: function(e, t, i) {\n            i((function(t) {\n                var i = e.query.action;\n                \"edit-parsers\" === (void 0 === i ? \"\" : i) && t.handleEditProfileParsers()\n            }))\n        },\n        mounted: function() {\n            var e = this.$refs[\"mixin-scroll-content\"].children;\n            this.sections = r()(e).map((function(e) {\n                return e.children[0].innerText\n            }))\n        },\n        beforeRouteLeave: function(e, t, i) {\n            i()\n        }\n    }, i(364), p = Object(m.a)(p, (function() {\n        var e = this,\n            t = e.$createElement;\n        return (t = e._self._c || t)(\"div\", {\n            class: [\"main-setting-view-\" + e.theme]\n        }, [t(\"div\", {\n            class: [\"title\", e.isEditingExternal ? \"blur\" : \"\"]\n        }, [t(\"div\", [e._v(\"设置\")]), e._v(\" \"), t(\"div\", {\n            staticClass: \"btns\"\n        }, [t(\"div\", {\n            staticClass: \"btn\",\n            on: {\n                click: e.handleReset\n            }\n        }, [e._v(\"重置所有设置\")])])]), e._v(\" \"), e.settings ? t(\"div\", {\n            ref: \"mixin-scroll-content\",\n            class: [\"content\", , e.isEditingExternal ? \"blur\" : \"\"]\n        }, [t(\"Section\", {\n            attrs: {\n                title: \"主页\"\n            }\n        }, [t(\"div\", {\n            staticClass: \"item\"\n        }, [t(\"div\", [e._v(\"配置编辑器\")]), e._v(\" \"), t(\"SelectView\", {\n            attrs: {\n                items: [\"CFW\", \"Visual Studio Code\", \"自定义\"]\n            },\n            model: {\n                value: e.settings.editor,\n                callback: function(t) {\n                    e.$set(e.settings, \"editor\", t)\n                },\n                expression: \"settings.editor\"\n            }\n        })], 1), e._v(\" \"), 2 === e.settings.editor ? t(\"div\", {\n            staticClass: \"item\"\n        }, [t(\"div\", [e._v(\"自定义编辑器命令\")]), e._v(\" \"), t(\"SimpleInput\", {\n            staticClass: \"input\",\n            attrs: {\n                placeholder: \"subl --wait\"\n            },\n            model: {\n                value: e.settings.editorCustomCommand,\n                callback: function(t) {\n                    e.$set(e.settings, \"editorCustomCommand\", t)\n                },\n                expression: \"settings.editorCustomCommand\"\n            }\n        })], 1) : e._e(), e._v(\" \"), t(\"div\", {\n            staticClass: \"item\"\n        }, [t(\"div\", [e._v(\"向系统通知栏发送相关信息\")]), e._v(\" \"), t(\"SwitchView\", {\n            model: {\n                value: e.settings.showNotifications,\n                callback: function(t) {\n                    e.$set(e.settings, \"showNotifications\", t)\n                },\n                expression: \"settings.showNotifications\"\n            }\n        })], 1), e._v(\" \"), t(\"div\", {\n            staticClass: \"item\"\n        }, [t(\"div\", [e._v(\"开启Clash时默认缩小到任务栏\")]), e._v(\" \"), t(\"SwitchView\", {\n            model: {\n                value: e.settings.hideAfterStartup,\n                callback: function(t) {\n                    e.$set(e.settings, \"hideAfterStartup\", t)\n                },\n                expression: \"settings.hideAfterStartup\"\n            }\n        })], 1), e._v(\" \"), t(\"div\", {\n            staticClass: \"item\"\n        }, [t(\"div\", [e._v(\"随机占用端口\")]), e._v(\" \"), t(\"SwitchView\", {\n            model: {\n                value: e.settings.randomControllerPort,\n                callback: function(t) {\n                    e.$set(e.settings, \"randomControllerPort\", t)\n                },\n                expression: \"settings.randomControllerPort\"\n            }\n        })], 1), e._v(\" \"), t(\"div\", {\n            staticClass: \"item\"\n        }, [t(\"div\", [e._v(\"轻量模式\")]), e._v(\" \"), t(\"SwitchView\", {\n            model: {\n                value: e.settings.lightweightMode,\n                callback: function(t) {\n                    e.$set(e.settings, \"lightweightMode\", t)\n                },\n                expression: \"settings.lightweightMode\"\n            }\n        })], 1), e._v(\" \"), t(\"div\", {\n            staticClass: \"item\"\n        }, [t(\"div\", [e._v(\"运行时间格式\")]), e._v(\" \"), t(\"SimpleInput\", {\n            staticClass: \"input\",\n            attrs: {\n                placeholder: \"hh : mm : ss\"\n            },\n            model: {\n                value: e.settings.runTimeFormat,\n                callback: function(t) {\n                    e.$set(e.settings, \"runTimeFormat\", t)\n                },\n                expression: \"settings.runTimeFormat\"\n            }\n        })], 1), e._v(\" \"), t(\"div\", {\n            staticClass: \"item\"\n        }, [t(\"div\", [e._v(\"GUI日志文件夹\")]), e._v(\" \"), t(\"MoreHint\", {\n            staticClass: \"hint\",\n            attrs: {\n                text: \"打开\"\n            },\n            on: {\n                click: e.handleOpenGUILog\n            }\n        })], 1), e._v(\" \"), t(\"div\", {\n            staticClass: \"item\"\n        }, [t(\"div\", [e._v(\"有新版本时提醒\")]), e._v(\" \"), t(\"SwitchView\", {\n            model: {\n                value: e.settings.showNewVersionIcon,\n                callback: function(t) {\n                    e.$set(e.settings, \"showNewVersionIcon\", t)\n                },\n                expression: \"settings.showNewVersionIcon\"\n            }\n        })], 1), e._v(\" \"), e.isMacOS ? t(\"div\", {\n            staticClass: \"item\"\n        }, [t(\"div\", [e._v(\"自动升级\")]), e._v(\" \"), t(\"SwitchView\", {\n            model: {\n                value: e.settings.silentUpdate,\n                callback: function(t) {\n                    e.$set(e.settings, \"silentUpdate\", t)\n                },\n                expression: \"settings.silentUpdate\"\n            }\n        })], 1) : e._e()]), e._v(\" \"), t(\"Section\", {\n            attrs: {\n                title: \"外观\"\n            }\n        }, [e.settings.systemTheme ? e._e() : t(\"div\", {\n            staticClass: \"item\"\n        }, [t(\"div\", [e._v(\"主题\")]), e._v(\" \"), t(\"SelectView\", {\n            attrs: {\n                items: [\"明亮\", \"深色\", \"国庆中秋\", \"赛博朋克\"]\n            },\n            model: {\n                value: e.settings.theme,\n                callback: function(t) {\n                    e.$set(e.settings, \"theme\", t)\n                },\n                expression: \"settings.theme\"\n            }\n        })], 1), e._v(\" \"), t(\"div\", {\n            staticClass: \"item\"\n        }, [t(\"div\", [e._v(\"遵循系统主题\")]), e._v(\" \"), t(\"SwitchView\", {\n            model: {\n                value: e.settings.systemTheme,\n                callback: function(t) {\n                    e.$set(e.settings, \"systemTheme\", t)\n                },\n                expression: \"settings.systemTheme\"\n            }\n        })], 1), e._v(\" \"), t(\"div\", {\n            staticClass: \"item\"\n        }, [t(\"div\", [e._v(\"字体系列\")]), e._v(\" \"), t(\"SimpleInput\", {\n            attrs: {\n                placeholder: e.fontFamilyPlaceholder\n            },\n            model: {\n                value: e.settings.fontFamily,\n                callback: function(t) {\n                    e.$set(e.settings, \"fontFamily\", t)\n                },\n                expression: \"settings.fontFamily\"\n            }\n        })], 1), e._v(\" \"), t(\"div\", {\n            staticClass: \"item\"\n        }, [t(\"div\", [e._v(\"使用系统表情符号\")]), e._v(\" \"), t(\"SwitchView\", {\n            model: {\n                value: e.settings.useSystemEmoji,\n                callback: function(t) {\n                    e.$set(e.settings, \"useSystemEmoji\", t)\n                },\n                expression: \"settings.useSystemEmoji\"\n            }\n        })], 1), e._v(\" \"), e.isWindows ? t(\"div\", {\n            staticClass: \"item\"\n        }, [t(\"div\", [e._v(\"自定义状态栏图标\")]), e._v(\" \"), t(\"div\", {\n            staticClass: \"item\"\n        }, [t(\"SimpleInput\", {\n            staticClass: \"short-input\",\n            attrs: {\n                placeholder: \"ICO(.ico) 路径\"\n            },\n            model: {\n                value: e.settings.iconDefault,\n                callback: function(t) {\n                    e.$set(e.settings, \"iconDefault\", t)\n                },\n                expression: \"settings.iconDefault\"\n            }\n        }), e._v(\" \"), t(\"MoreHint\", {\n            staticClass: \"hint\",\n            attrs: {\n                text: \"选择\"\n            },\n            on: {\n                click: e.handleChooseDefaultIcon\n            }\n        })], 1)]) : e._e(), e._v(\" \"), e.isWindows ? t(\"div\", {\n            staticClass: \"item\"\n        }, [t(\"div\", [e._v(\"状态栏图标上的系统代理\")]), e._v(\" \"), t(\"div\", {\n            staticClass: \"item\"\n        }, [t(\"SimpleInput\", {\n            staticClass: \"short-input\",\n            attrs: {\n                placeholder: \"ICO(.ico) 路径\"\n            },\n            model: {\n                value: e.settings.iconSystemProxy,\n                callback: function(t) {\n                    e.$set(e.settings, \"iconSystemProxy\", t)\n                },\n                expression: \"settings.iconSystemProxy\"\n            }\n        }), e._v(\" \"), t(\"MoreHint\", {\n            staticClass: \"hint\",\n            attrs: {\n                text: \"选择\"\n            },\n            on: {\n                click: e.handleChooseSystemProxytOnIcon\n            }\n        })], 1)]) : e._e(), e._v(\" \"), t(\"div\", {\n            staticClass: \"item\"\n        }, [t(\"div\", [e._v(\"隐藏托盘图标\")]), e._v(\" \"), t(\"SwitchView\", {\n            model: {\n                value: e.settings.hideTrayIcon,\n                callback: function(t) {\n                    e.$set(e.settings, \"hideTrayIcon\", t)\n                },\n                expression: \"settings.hideTrayIcon\"\n            }\n        })], 1), e._v(\" \"), e.isLinux ? e._e() : t(\"separator\"), e._v(\" \"), e.isLinux ? e._e() : t(\"div\", {\n            staticClass: \"item\"\n        }, [t(\"div\", [e._v(\"悬浮窗\")]), e._v(\" \"), t(\"TrayOrder\", {\n            model: {\n                value: e.settings.trayOrders,\n                callback: function(t) {\n                    e.$set(e.settings, \"trayOrders\", t)\n                },\n                expression: \"settings.trayOrders\"\n            }\n        })], 1), e._v(\" \"), e.isLinux ? e._e() : t(\"div\", {\n            staticClass: \"item\"\n        }, [t(\"div\", [e._v(\"文本\")]), e._v(\" \"), t(\"div\", {\n            staticClass: \"item\"\n        }, [t(\"SimpleInput\", {\n            attrs: {\n                placeholder: \"要显示在悬浮窗中的文本\"\n            },\n            model: {\n                value: e.settings.trayText,\n                callback: function(t) {\n                    e.$set(e.settings, \"trayText\", t)\n                },\n                expression: \"settings.trayText\"\n            }\n        })], 1)]), e._v(\" \"), e.settings.trayText ? e._e() : t(\"div\", {\n            staticClass: \"item\"\n        }, [t(\"div\", [e._v(\"脚本\")]), e._v(\" \"), t(\"div\", {\n            staticClass: \"item\"\n        }, [t(\"SimpleInput\", {\n            staticClass: \"short-input\",\n            attrs: {\n                placeholder: \"要运行的脚本\"\n            },\n            model: {\n                value: e.settings.trayScriptPath,\n                callback: function(t) {\n                    e.$set(e.settings, \"trayScriptPath\", t)\n                },\n                expression: \"settings.trayScriptPath\"\n            }\n        }), e._v(\" \"), t(\"MoreHint\", {\n            staticClass: \"hint\",\n            attrs: {\n                text: \"选择\"\n            },\n            on: {\n                click: e.handleSelectTrayScriptPath\n            }\n        })], 1)]), e._v(\" \"), !e.settings.trayText && e.settings.trayScriptPath ? t(\"div\", {\n            staticClass: \"item\"\n        }, [t(\"div\", [e._v(\"脚本间隔\")]), e._v(\" \"), t(\"div\", {\n            staticClass: \"item\"\n        }, [t(\"SimpleInput\", {\n            staticClass: \"shorter-input\",\n            attrs: {\n                placeholder: \"seconds\",\n                suffix: \"s\",\n                type: \"number\"\n            },\n            model: {\n                value: e.settings.trayScriptInterval,\n                callback: function(t) {\n                    e.$set(e.settings, \"trayScriptInterval\", t)\n                },\n                expression: \"settings.trayScriptInterval\"\n            }\n        }), e._v(\" \"), t(\"MoreHint\", {\n            staticClass: \"hint\",\n            attrs: {\n                text: \"Manual Run\"\n            },\n            on: {\n                click: e.handleTrayScriptManualRun\n            }\n        })], 1)]) : e._e(), e._v(\" \"), e.isWindows ? t(\"div\", {\n            staticClass: \"item\"\n        }, [t(\"div\", [e._v(\"透明\")]), e._v(\" \"), t(\"div\", {\n            staticClass: \"item\"\n        }, [t(\"SimpleInput\", {\n            staticClass: \"shorter-input\",\n            staticStyle: {\n                \"margin-right\": \"10px\"\n            },\n            attrs: {\n                placeholder: \"前景色\"\n            },\n            model: {\n                value: e.settings.trayColorForeground,\n                callback: function(t) {\n                    e.$set(e.settings, \"trayColorForeground\", t)\n                },\n                expression: \"settings.trayColorForeground\"\n            }\n        }), e._v(\" \"), t(\"SwitchView\", {\n            model: {\n                value: e.settings.trayColorTransparent,\n                callback: function(t) {\n                    e.$set(e.settings, \"trayColorTransparent\", t)\n                },\n                expression: \"settings.trayColorTransparent\"\n            }\n        })], 1)]) : e._e()], 1), e._v(\" \"), e.isLinux ? e._e() : t(\"Section\", {\n            attrs: {\n                title: \"系统代理\"\n            }\n        }, [e.isWindows ? t(\"div\", {\n            staticClass: \"item\"\n        }, [t(\"div\", [e._v(\"类型\")]), e._v(\" \"), t(\"SelectView\", {\n            attrs: {\n                items: [\"HTTP\", \"PAC\"]\n            },\n            model: {\n                value: e.settings.systemProxyTypeIndex,\n                callback: function(t) {\n                    e.$set(e.settings, \"systemProxyTypeIndex\", t)\n                },\n                expression: \"settings.systemProxyTypeIndex\"\n            }\n        })], 1) : e._e(), e._v(\" \"), e.isWindows && 1 === e.settings.systemProxyTypeIndex ? t(\"div\", {\n            staticClass: \"item\"\n        }, [t(\"div\", [e._v(\"PAC内容\")]), e._v(\" \"), t(\"MoreHint\", {\n            staticClass: \"hint\",\n            attrs: {\n                text: \"编辑\"\n            },\n            on: {\n                click: e.handleEditPACContent\n            }\n        })], 1) : e._e(), e._v(\" \"), 1 !== e.settings.systemProxyTypeIndex ? t(\"div\", {\n            staticClass: \"item\"\n        }, [t(\"div\", [e._v(\"绕过域/网络\")]), e._v(\" \"), t(\"MoreHint\", {\n            staticClass: \"hint\",\n            attrs: {\n                text: \"编辑\"\n            },\n            on: {\n                click: e.handleEditBypass\n            }\n        })], 1) : e._e(), e._v(\" \"), e.isWindows && 1 !== e.settings.systemProxyTypeIndex ? t(\"div\", {\n            staticClass: \"item\"\n        }, [t(\"div\", [e._v(\"指定协议\")]), e._v(\" \"), t(\"SwitchView\", {\n            model: {\n                value: e.settings.specifyHttpProxyProtocol,\n                callback: function(t) {\n                    e.$set(e.settings, \"specifyHttpProxyProtocol\", t)\n                },\n                expression: \"settings.specifyHttpProxyProtocol\"\n            }\n        })], 1) : e._e(), e._v(\" \"), t(\"div\", {\n            staticClass: \"item\"\n        }, [t(\"div\", [e._v(\"静态主机\")]), e._v(\" \"), t(\"div\", {\n            staticClass: \"item\"\n        }, [t(\"SimpleInput\", {\n            attrs: {\n                placeholder: \"127.0.0.1\"\n            },\n            model: {\n                value: e.settings.staticSystemProxyHost,\n                callback: function(t) {\n                    e.$set(e.settings, \"staticSystemProxyHost\", t)\n                },\n                expression: \"settings.staticSystemProxyHost\"\n            }\n        })], 1)])]), e._v(\" \"), t(\"Section\", {\n            attrs: {\n                title: \"配置文件 Mixin\"\n            }\n        }, [t(\"div\", {\n            staticClass: \"item\"\n        }, [t(\"div\", [e._v(\"类型\")]), e._v(\" \"), t(\"SelectView\", {\n            attrs: {\n                items: [\"YAML\", \"JavaScript\"]\n            },\n            model: {\n                value: e.settings.mixinType,\n                callback: function(t) {\n                    e.$set(e.settings, \"mixinType\", t)\n                },\n                expression: \"settings.mixinType\"\n            }\n        })], 1), e._v(\" \"), t(\"div\", {\n            staticClass: \"item\"\n        }, [t(\"div\", [e._v(\"YAML\")]), e._v(\" \"), t(\"MoreHint\", {\n            staticClass: \"hint\",\n            attrs: {\n                text: \"编辑\"\n            },\n            on: {\n                click: e.handleEditMixinYAML\n            }\n        })], 1), e._v(\" \"), t(\"div\", {\n            staticClass: \"item\"\n        }, [t(\"div\", [e._v(\"JavaScript\")]), e._v(\" \"), t(\"MoreHint\", {\n            staticClass: \"hint\",\n            attrs: {\n                text: \"编辑\"\n            },\n            on: {\n                click: e.handleEditMixinJS\n            }\n        })], 1)]), e._v(\" \"), t(\"Section\", {\n            attrs: {\n                title: \"代理\"\n            }\n        }, [t(\"div\", {\n            staticClass: \"item\"\n        }, [t(\"div\", [e._v(\"代理项目宽度\")]), e._v(\" \"), t(\"SimpleInput\", {\n            attrs: {\n                placeholder: \"290\",\n                suffix: \"px\"\n            },\n            model: {\n                value: e.settings.proxyItemWidth,\n                callback: function(t) {\n                    e.$set(e.settings, \"proxyItemWidth\", t)\n                },\n                expression: \"settings.proxyItemWidth\"\n            }\n        })], 1), e._v(\" \"), t(\"div\", {\n            staticClass: \"item\"\n        }, [t(\"div\", [e._v(\"策略组导航器宽度\")]), e._v(\" \"), t(\"SimpleInput\", {\n            attrs: {\n                placeholder: \"100(0=隐藏)\",\n                suffix: \"px\"\n            },\n            model: {\n                value: e.settings.proxyMiniListWidth,\n                callback: function(t) {\n                    e.$set(e.settings, \"proxyMiniListWidth\", t)\n                },\n                expression: \"settings.proxyMiniListWidth\"\n            }\n        })], 1), e._v(\" \"), t(\"div\", {\n            staticClass: \"item\"\n        }, [t(\"div\", [e._v(\"自定义节点排序\")]), e._v(\" \"), t(\"SelectView\", {\n            attrs: {\n                items: [\"默认\", \"延迟\", \"字母\"]\n            },\n            model: {\n                value: e.settings.proxyOrder,\n                callback: function(t) {\n                    e.$set(e.settings, \"proxyOrder\", t)\n                },\n                expression: \"settings.proxyOrder\"\n            }\n        })], 1), e._v(\" \"), t(\"div\", {\n            staticClass: \"item\"\n        }, [t(\"div\", [e._v(\"延迟测试网址\")]), e._v(\" \"), t(\"SimpleInput\", {\n            attrs: {\n                placeholder: \"http://www.gstatic.com/generate_204\"\n            },\n            model: {\n                value: e.settings.latencyUrl,\n                callback: function(t) {\n                    e.$set(e.settings, \"latencyUrl\", t)\n                },\n                expression: \"settings.latencyUrl\"\n            }\n        })], 1), e._v(\" \"), t(\"div\", {\n            staticClass: \"item\"\n        }, [t(\"div\", [e._v(\"延迟测试超时\")]), e._v(\" \"), t(\"SimpleInput\", {\n            attrs: {\n                type: \"number\",\n                placeholder: \"3000\",\n                suffix: \"ms\"\n            },\n            model: {\n                value: e.settings.latencyTimeout,\n                callback: function(t) {\n                    e.$set(e.settings, \"latencyTimeout\", t)\n                },\n                expression: \"settings.latencyTimeout\"\n            }\n        })], 1), e._v(\" \"), t(\"div\", {\n            staticClass: \"item\"\n        }, [t(\"div\", [e._v(\"显示筛选过滤器\")]), e._v(\" \"), t(\"SwitchView\", {\n            model: {\n                value: e.settings.showProxyFilter,\n                callback: function(t) {\n                    e.$set(e.settings, \"showProxyFilter\", t)\n                },\n                expression: \"settings.showProxyFilter\"\n            }\n        })], 1), e._v(\" \"), t(\"div\", {\n            staticClass: \"item\"\n        }, [t(\"div\", [e._v(\"隐藏无法选择的代理组\")]), e._v(\" \"), t(\"SwitchView\", {\n            model: {\n                value: e.settings.hideUnselectableGroup,\n                callback: function(t) {\n                    e.$set(e.settings, \"hideUnselectableGroup\", t)\n                },\n                expression: \"settings.hideUnselectableGroup\"\n            }\n        })], 1)]), e._v(\" \"), t(\"Section\", {\n            attrs: {\n                title: \"连接\"\n            }\n        }, [t(\"div\", {\n            staticClass: \"item\"\n        }, [t(\"div\", [e._v(\"代理更改时中断连接\")]), e._v(\" \"), t(\"SelectView\", {\n            attrs: {\n                items: [\"不中断\", \"链接\", \"所有\"]\n            },\n            model: {\n                value: e.settings.connProxy,\n                callback: function(t) {\n                    e.$set(e.settings, \"connProxy\", t)\n                },\n                expression: \"settings.connProxy\"\n            }\n        })], 1), e._v(\" \"), t(\"div\", {\n            staticClass: \"item\"\n        }, [t(\"div\", [e._v(\"配置文件更改时中断连接\")]), e._v(\" \"), t(\"SwitchView\", {\n            model: {\n                value: e.settings.connProfile,\n                callback: function(t) {\n                    e.$set(e.settings, \"connProfile\", t)\n                },\n                expression: \"settings.connProfile\"\n            }\n        })], 1), e._v(\" \"), t(\"div\", {\n            staticClass: \"item\"\n        }, [t(\"div\", [e._v(\"模式更改时中断连接\")]), e._v(\" \"), t(\"SwitchView\", {\n            model: {\n                value: e.settings.connMode,\n                callback: function(t) {\n                    e.$set(e.settings, \"connMode\", t)\n                },\n                expression: \"settings.connMode\"\n            }\n        })], 1), e._v(\" \"), t(\"div\", {\n            staticClass: \"item\"\n        }, [t(\"div\", [e._v(\"显示链接类型\")]), e._v(\" \"), t(\"SelectView\", {\n            attrs: {\n                items: [\"节点名\", \"分组名\", \"全部\"]\n            },\n            model: {\n                value: e.settings.connChainType,\n                callback: function(t) {\n                    e.$set(e.settings, \"connChainType\", t)\n                },\n                expression: \"settings.connChainType\"\n            }\n        })], 1)]), e._v(\" \"), t(\"Section\", {\n            attrs: {\n                title: \"选择流量出接口\"\n            }\n        }, [t(\"div\", {\n            staticClass: \"item\"\n        }, [t(\"div\", [e._v(\"接口名称\")]), e._v(\" \"), t(\"div\", {\n            staticClass: \"item\"\n        }, [e.detectedInterfaceName ? t(\"MoreHint\", {\n            staticClass: \"interface-hint\",\n            attrs: {\n                text: \"侦测到: \" + e.detectedInterfaceName,\n                clickable: !1\n            }\n        }) : e._e(), e._v(\" \"), t(\"MoreHint\", {\n            staticClass: \"hint\",\n            attrs: {\n                text: e.settings.interfaceName || \"选择\"\n            },\n            on: {\n                click: e.handleSelectInterface\n            }\n        })], 1)])]), e._v(\" \"), t(\"Section\", {\n            attrs: {\n                title: \"子进程\"\n            }\n        }, [t(\"div\", {\n            staticClass: \"item\"\n        }, [t(\"div\", [e._v(\"启动其他应用\")]), e._v(\" \"), t(\"MoreHint\", {\n            staticClass: \"hint\",\n            attrs: {\n                text: \"编辑\"\n            },\n            on: {\n                click: e.handleEditChildProcess\n            }\n        })], 1)]), e._v(\" \"), t(\"Section\", {\n            attrs: {\n                title: \"配置\"\n            }\n        }, [t(\"div\", {\n            staticClass: \"item\"\n        }, [t(\"div\", [e._v(\"配置文件预处理\")]), e._v(\" \"), t(\"MoreHint\", {\n            staticClass: \"hint\",\n            attrs: {\n                text: \"编辑\"\n            },\n            on: {\n                click: e.handleEditProfileParsers\n            }\n        })], 1), e._v(\" \"), t(\"div\", {\n            staticClass: \"item\"\n        }, [t(\"div\", [e._v(\"控制台输出\")]), e._v(\" \"), t(\"MoreHint\", {\n            staticClass: \"hint\",\n            attrs: {\n                text: \"打开文件\"\n            },\n            on: {\n                click: e.handleOpenConsoleFile\n            }\n        })], 1), e._v(\" \"), t(\"separator\"), e._v(\" \"), t(\"div\", {\n            staticClass: \"item\"\n        }, [t(\"div\", [e._v(\"资料夹路径\")]), e._v(\" \"), t(\"div\", {\n            staticClass: \"item\"\n        }, [t(\"SimpleInput\", {\n            staticClass: \"short-input\",\n            attrs: {\n                placeholder: \"配置文件文件夹路径\"\n            },\n            model: {\n                value: e.settings.profilePath,\n                callback: function(t) {\n                    e.$set(e.settings, \"profilePath\", t)\n                },\n                expression: \"settings.profilePath\"\n            }\n        }), e._v(\" \"), t(\"MoreHint\", {\n            staticClass: \"hint\",\n            attrs: {\n                text: \"选择\"\n            },\n            on: {\n                click: e.handleChooseProfilePath\n            }\n        })], 1)]), e._v(\" \"), t(\"div\", {\n            staticClass: \"item\"\n        }, [t(\"div\", [e._v(\"自定义请求头\")]), e._v(\" \"), t(\"MoreHint\", {\n            staticClass: \"hint\",\n            attrs: {\n                text: \"编辑\"\n            },\n            on: {\n                click: e.handleEditHeaders\n            }\n        })], 1), e._v(\" \"), t(\"div\", {\n            staticClass: \"item\"\n        }, [t(\"div\", [e._v(\"更新后选择\")]), e._v(\" \"), t(\"SwitchView\", {\n            model: {\n                value: e.settings.selectAfterUpdated,\n                callback: function(t) {\n                    e.$set(e.settings, \"selectAfterUpdated\", t)\n                },\n                expression: \"settings.selectAfterUpdated\"\n            }\n        })], 1)], 1), e._v(\" \"), t(\"Section\", {\n            attrs: {\n                title: \"操作(Actions)\"\n            }\n        }, [t(\"div\", {\n            staticClass: \"item\"\n        }, [t(\"div\", [e._v(\"脚本\")]), e._v(\" \"), t(\"MoreHint\", {\n            staticClass: \"hint\",\n            attrs: {\n                text: \"编辑\"\n            },\n            on: {\n                click: e.handleEditActionScripts\n            }\n        })], 1), e._v(\" \"), t(\"div\", {\n            staticClass: \"item\"\n        }, [t(\"div\", [e._v(\"控制台输出\")]), e._v(\" \"), t(\"MoreHint\", {\n            staticClass: \"hint\",\n            attrs: {\n                text: \"打开文件\"\n            },\n            on: {\n                click: e.handleOpenActionScriptsConsoleFile\n            }\n        })], 1)]), e._v(\" \"), t(\"Section\", {\n            attrs: {\n                title: \"快捷键\"\n            }\n        }, [e.isLinux ? e._e() : t(\"div\", {\n            staticClass: \"item\"\n        }, [t(\"div\", [e._v(\"系统代理\")]), e._v(\" \"), t(\"div\", {\n            staticClass: \"item\"\n        }, [t(\"KeyCapture\", {\n            staticClass: \"input\",\n            attrs: {\n                placeholder: \"点击以录制热键\"\n            },\n            model: {\n                value: e.settings.shortcutSystemProxy,\n                callback: function(t) {\n                    e.$set(e.settings, \"shortcutSystemProxy\", t)\n                },\n                expression: \"settings.shortcutSystemProxy\"\n            }\n        })], 1)]), e._v(\" \"), t(\"div\", {\n            staticClass: \"item\"\n        }, [t(\"div\", [e._v(\"TUN 模式\")]), e._v(\" \"), t(\"div\", {\n            staticClass: \"item\"\n        }, [t(\"KeyCapture\", {\n            staticClass: \"input\",\n            attrs: {\n                placeholder: \"点击以录制热键\"\n            },\n            model: {\n                value: e.settings.shortcutTun,\n                callback: function(t) {\n                    e.$set(e.settings, \"shortcutTun\", t)\n                },\n                expression: \"settings.shortcutTun\"\n            }\n        })], 1)]), e._v(\" \"), t(\"div\", {\n            staticClass: \"item\"\n        }, [t(\"div\", [e._v(\"混淆\")]), e._v(\" \"), t(\"div\", {\n            staticClass: \"item\"\n        }, [t(\"KeyCapture\", {\n            staticClass: \"input\",\n            attrs: {\n                placeholder: \"点击以录制热键\"\n            },\n            model: {\n                value: e.settings.shortcutMixin,\n                callback: function(t) {\n                    e.$set(e.settings, \"shortcutMixin\", t)\n                },\n                expression: \"settings.shortcutMixin\"\n            }\n        })], 1)]), e._v(\" \"), t(\"separator\"), e._v(\" \"), t(\"div\", {\n            staticClass: \"item\"\n        }, [t(\"div\", [e._v(\"全局模式\")]), e._v(\" \"), t(\"div\", {\n            staticClass: \"item\"\n        }, [t(\"KeyCapture\", {\n            staticClass: \"input\",\n            attrs: {\n                placeholder: \"点击以录制热键\"\n            },\n            model: {\n                value: e.settings.shortcutGlobalMode,\n                callback: function(t) {\n                    e.$set(e.settings, \"shortcutGlobalMode\", t)\n                },\n                expression: \"settings.shortcutGlobalMode\"\n            }\n        })], 1)]), e._v(\" \"), t(\"div\", {\n            staticClass: \"item\"\n        }, [t(\"div\", [e._v(\"规则模式\")]), e._v(\" \"), t(\"div\", {\n            staticClass: \"item\"\n        }, [t(\"KeyCapture\", {\n            staticClass: \"input\",\n            attrs: {\n                placeholder: \"点击以录制热键\"\n            },\n            model: {\n                value: e.settings.shortcutRuleMode,\n                callback: function(t) {\n                    e.$set(e.settings, \"shortcutRuleMode\", t)\n                },\n                expression: \"settings.shortcutRuleMode\"\n            }\n        })], 1)]), e._v(\" \"), t(\"div\", {\n            staticClass: \"item\"\n        }, [t(\"div\", [e._v(\"直连模式\")]), e._v(\" \"), t(\"div\", {\n            staticClass: \"item\"\n        }, [t(\"KeyCapture\", {\n            staticClass: \"input\",\n            attrs: {\n                placeholder: \"点击以录制热键\"\n            },\n            model: {\n                value: e.settings.shortcutDirectMode,\n                callback: function(t) {\n                    e.$set(e.settings, \"shortcutDirectMode\", t)\n                },\n                expression: \"settings.shortcutDirectMode\"\n            }\n        })], 1)]), e._v(\" \"), t(\"div\", {\n            staticClass: \"item\"\n        }, [t(\"div\", [e._v(\"脚本模式\")]), e._v(\" \"), t(\"div\", {\n            staticClass: \"item\"\n        }, [t(\"KeyCapture\", {\n            staticClass: \"input\",\n            attrs: {\n                placeholder: \"点击以录制热键\"\n            },\n            model: {\n                value: e.settings.shortcutScriptMode,\n                callback: function(t) {\n                    e.$set(e.settings, \"shortcutScriptMode\", t)\n                },\n                expression: \"settings.shortcutScriptMode\"\n            }\n        })], 1)]), e._v(\" \"), t(\"separator\"), e._v(\" \"), t(\"div\", {\n            staticClass: \"item\"\n        }, [t(\"div\", [e._v(\"显示/隐藏仪表板\")]), e._v(\" \"), t(\"div\", {\n            staticClass: \"item\"\n        }, [t(\"KeyCapture\", {\n            staticClass: \"input\",\n            attrs: {\n                placeholder: \"点击以录制热键\"\n            },\n            model: {\n                value: e.settings.shortcutShowHideDashboard,\n                callback: function(t) {\n                    e.$set(e.settings, \"shortcutShowHideDashboard\", t)\n                },\n                expression: \"settings.shortcutShowHideDashboard\"\n            }\n        })], 1)]), e._v(\" \"), e.isLinux ? e._e() : t(\"div\", {\n            staticClass: \"item\"\n        }, [t(\"div\", [e._v(\"运行纸盘脚本\")]), e._v(\" \"), t(\"div\", {\n            staticClass: \"item\"\n        }, [t(\"KeyCapture\", {\n            staticClass: \"input\",\n            attrs: {\n                placeholder: \"点击以录制热键\"\n            },\n            model: {\n                value: e.settings.shortcutRunTrayScript,\n                callback: function(t) {\n                    e.$set(e.settings, \"shortcutRunTrayScript\", t)\n                },\n                expression: \"settings.shortcutRunTrayScript\"\n            }\n        })], 1)])], 1), e._v(\" \"), t(\"Section\", {\n            attrs: {\n                title: \"缓存\"\n            }\n        }, [t(\"div\", {\n            staticClass: \"item\"\n        }, [t(\"div\", [e._v(\"Fake IP 缓存\")]), e._v(\" \"), t(\"MoreHint\", {\n            staticClass: \"hint\",\n            attrs: {\n                text: \"清除\"\n            },\n            on: {\n                click: e.handlerClearFakeIPCache\n            }\n        })], 1)]), e._v(\" \"), e.isMacOS ? t(\"Section\", {\n            attrs: {\n                title: \"Experimental Features\"\n            }\n        }, [t(\"div\", {\n            staticClass: \"item\"\n        }, [t(\"div\", [e._v(\"DHCP 服务器\")]), e._v(\" \"), t(\"SwitchView\", {\n            model: {\n                value: e.settings.enableDHCPServer,\n                callback: function(t) {\n                    e.$set(e.settings, \"enableDHCPServer\", t)\n                },\n                expression: \"settings.enableDHCPServer\"\n            }\n        })], 1)]) : e._e(), e._v(\" \"), t(\"div\", {\n            staticClass: \"quit-btns\"\n        }, [t(\"div\", {\n            staticClass: \"btn clickable btn-quit\",\n            on: {\n                click: function(t) {\n                    return e.handleQuit()\n                }\n            }\n        }, [e._v(\"退出\")]), e._v(\" \"), t(\"div\", {\n            staticClass: \"btn clickable btn-force-quit\",\n            on: {\n                click: function(t) {\n                    return e.handleQuit(!0)\n                }\n            }\n        }, [e._v(\"\\n        强制退出\\n      \")])])], 1) : e._e(), e._v(\" \"), t(\"navigator\", {\n            attrs: {\n                list: e.sections\n            },\n            on: {\n                select: e.handleNavigatToGroup\n            }\n        }), e._v(\" \"), e.isEditingExternal ? t(\"div\", {\n            staticClass: \"edit-hint\"\n        }, [t(\"div\", [e._v(\"\\n      \" + e._s([\"\", \"Visual Studio Code\", \"Sublime Text\"][e.settings.editor]) + \" is\\n      launching for editing.\\n    \")]), e._v(\" \"), t(\"div\", [e._v(\"关闭编辑文件以保存.\")]), e._v(\" \"), t(\"div\", {\n            staticClass: \"btn\",\n            on: {\n                click: e.cancelExternalEdit\n            }\n        }, [e._v(\"取消\")])]) : e._e()], 1)\n    }), [], !1, null, \"371dba32\", null), t.default = p.exports\n}, function(e, t, i) {\n    \"use strict\";\n    i.r(t);\n    var n = i(10),\n        r = i.n(n),\n        o = i(18),\n        s = i.n(o),\n        a = i(3),\n        l = i.n(a),\n        d = i(61),\n        c = i.n(d),\n        h = i(45),\n        u = i.n(h),\n        p = i(163),\n        g = i(40),\n        f = i(27),\n        m = i(131),\n        v = i.n(m);\n\n    function b(e, t) {\n        var i, n = Object.keys(e);\n        return Object.getOwnPropertySymbols && (i = Object.getOwnPropertySymbols(e), t && (i = i.filter((function(t) {\n            return Object.getOwnPropertyDescriptor(e, t).enumerable\n        }))), n.push.apply(n, i)), n\n    }\n    n = {\n        props: [\"type\", \"data\"],\n        data: function() {\n            return {\n                ssCipher: [\"aes-128-gcm\", \"aes-192-gcm\", \"aes-256-gcm\", \"chacha20-ietf-poly1305\", \"aes-128-ctr\", \"aes-192-ctr\", \"aes-256-ctr\", \"aes-128-cfb\", \"aes-192-cfb\", \"aes-256-cfb\", \"chacha20-ietf\", \"xchacha20\", \"rc4-md5\", \"xchacha20-ietf-poly1305\"],\n                vmessCipher: [\"none\", \"auto\", \"aes-128-gcm\", \"chacha20-poly1305\"],\n                pType: [\"ss\", \"vmess\", \"socks5\", \"http\"],\n                gType: [\"url-test\", \"fallback\", \"select\", \"load-balance\"],\n                vmessType: [\"tcp\", \"ws\"],\n                groupName: \"\",\n                groupType: \"select\",\n                groupUrl: \"http://www.gstatic.com/generate_204\",\n                groupInterval: 600,\n                proxyType: \"ss\",\n                proxyName: \"\",\n                proxyServer: \"\",\n                proxyPort: \"\",\n                proxyChipher: \"\",\n                proxyPassword: \"\",\n                proxyUuid: \"\",\n                proxyAlterid: \"\",\n                proxyObfs: \"\",\n                proxyObfshost: \"\",\n                proxyTls: !1,\n                proxyUsername: \"\",\n                alterIdx: -1,\n                proxySkipCertVerify: !1,\n                proxy网络: \"tcp\",\n                proxyWsPath: \"\",\n                proxyWsHeaders: \"\"\n            }\n        },\n        computed: function(e) {\n            for (var t = 1; t < arguments.length; t++) {\n                var i = null != arguments[t] ? arguments[t] : {};\n                t % 2 ? b(Object(i), !0).forEach((function(t) {\n                    s()(e, t, i[t])\n                })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(i)) : b(Object(i)).forEach((function(t) {\n                    Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(i, t))\n                }))\n            }\n            return e\n        }({}, Object(f.mapState)({})),\n        methods: {\n            confirmInput: function() {\n                if (0 === this.type) {\n                    var e = {\n                        name: this.groupName,\n                        proxies: [],\n                        type: this.groupType\n                    };\n                    \"url-test\" !== this.groupType && \"fallback\" !== this.groupType && \"load-balance\" !== this.groupType || (e.url = this.groupUrl, e.interval = this.groupInterval), this.$emit(\"inputDone\", {\n                        type: 0,\n                        content: e,\n                        index: this.alterIdx\n                    })\n                } else if (1 === this.type) {\n                    if (e = {\n                            name: this.proxyName,\n                            type: this.proxyType,\n                            server: this.proxyServer,\n                            port: this.proxyPort\n                        }, \"ss\" === this.proxyType) e.cipher = this.proxyChipher, e.password = this.proxyPassword, this.proxyObfs && (e.plugin = \"obfs\", e[\"plugin-opts\"] = {\n                        mode: this.proxyObfs,\n                        host: this.proxyObfshost || \"bing.com\"\n                    });\n                    else if (\"vmess\" === this.proxyType) {\n                        if (e.uuid = this.proxyUuid, e.alterId = this.proxyAlterid, e.cipher = this.proxyChipher, this.proxyTls && (e.tls = !0), this.proxySkipCertVerify && (e[\"skip-cert-verify\"] = !0), \"ws\" === this.proxyNetwork) {\n                            e.network = \"ws\", e[\"ws-path\"] = this.proxyWsPath;\n                            try {\n                                e[\"ws-headers\"] = JSON.parse(this.proxyWsHeaders)\n                            } catch (e) {}\n                        }\n                    } else \"socks5\" !== this.proxyType && \"http\" !== this.proxyType || (this.proxyUsername && this.proxyPassword && (e.username = this.proxyUsername, e.password = this.proxyPassword), this.proxyTls && (e.tls = !0), this.proxySkipCertVerify && (e[\"skip-cert-verify\"] = !0));\n                    this.$emit(\"inputDone\", {\n                        type: 1,\n                        content: e,\n                        index: this.alterIdx\n                    })\n                }\n            }\n        },\n        mounted: function() {\n            if (this.data) {\n                if (0 === this.type) this.groupName = this.data.name, this.groupType = this.data.type, \"url\" in this.data && (this.groupUrl = this.data.url), \"interval\" in this.data && (this.groupInterval = this.data.interval);\n                else if (1 === this.type) {\n                    var e, t;\n                    this.proxyName = this.data.name, this.proxyPort = this.data.port, this.proxyServer = this.data.server, this.proxyType = this.data.type, \"password\" in this.data && (this.proxyPassword = this.data.password), \"plugin\" in this.data && (e = (t = void 0 === (e = this.data[\"plugin-opts\"]) ? {} : e).mode, t = t.host, this.proxyObfs = e, this.proxyObfshost = t), \"obfs-host\" in this.data && (this.proxyObfshost = this.data[\"obfs-host\"]), \"tls\" in this.data && (this.proxyTls = this.data.tls), \"cipher\" in this.data && (this.proxyChipher = this.data.cipher), \"uuid\" in this.data && (this.proxyUuid = this.data.uuid), \"alterId\" in this.data && (this.proxyAlterid = this.data.alterId), \"skip-cert-verify\" in this.data && (this.proxySkipCertVerify = this.data[\"skip-cert-verify\"]), \"network\" in this.data && (this.proxyNetwork = this.data.network), \"ws-path\" in this.data && (this.proxyWsPath = this.data[\"ws-path\"]);\n                    try {\n                        \"ws-headers\" in this.data && (this.proxyWsHeaders = JSON.stringify(this.data[\"ws-headers\"]))\n                    } catch (e) {}\n                    \"username\" in this.data && (this.proxyUsername = this.data.username)\n                }\n                this.alterIdx = this.data._index\n            }\n        }\n    }, i(326), i(328), o = i(30), a = Object(o.a)(n, (function() {\n        var e = this,\n            t = e.$createElement,\n            i = e._self._c || t;\n        return i(\"div\", {\n            class: [\"main-\" + e.theme],\n            attrs: {\n                id: \"main-append-proxy-view\"\n            }\n        }, [0 === e.type ? i(\"div\", {\n            staticClass: \"input-view\"\n        }, [i(\"div\", {\n            staticClass: \"title\"\n        }, [e._v(e._s(e.data ? \"Edit\" : \"New\") + \" Proxy Group\")]), e._v(\" \"), i(\"input\", {\n            directives: [{\n                name: \"model\",\n                rawName: \"v-model\",\n                value: e.groupName,\n                expression: \"groupName\"\n            }],\n            attrs: {\n                type: \"text\",\n                placeholder: \"Group Name\"\n            },\n            domProps: {\n                value: e.groupName\n            },\n            on: {\n                input: function(t) {\n                    t.target.composing || (e.groupName = t.target.value)\n                }\n            }\n        }), e._v(\" \"), i(\"div\", {\n            staticClass: \"group-type-list\"\n        }, e._l(e.gType, (function(t, n) {\n            return i(\"div\", {\n                key: n\n            }, [i(\"input\", {\n                directives: [{\n                    name: \"model\",\n                    rawName: \"v-model\",\n                    value: e.groupType,\n                    expression: \"groupType\"\n                }],\n                attrs: {\n                    type: \"radio\",\n                    id: t\n                },\n                domProps: {\n                    value: t,\n                    checked: e._q(e.groupType, t)\n                },\n                on: {\n                    change: function(i) {\n                        e.groupType = t\n                    }\n                }\n            }), e._v(\" \"), i(\"label\", {\n                attrs: {\n                    for: t\n                }\n            }, [e._v(e._s(t))])])\n        })), 0), e._v(\" \"), \"select\" !== e.groupType ? i(\"input\", {\n            directives: [{\n                name: \"model\",\n                rawName: \"v-model\",\n                value: e.groupUrl,\n                expression: \"groupUrl\"\n            }],\n            attrs: {\n                type: \"text\",\n                placeholder: \"URL\"\n            },\n            domProps: {\n                value: e.groupUrl\n            },\n            on: {\n                input: function(t) {\n                    t.target.composing || (e.groupUrl = t.target.value)\n                }\n            }\n        }) : e._e(), e._v(\" \"), \"select\" !== e.groupType ? i(\"input\", {\n            directives: [{\n                name: \"model\",\n                rawName: \"v-model\",\n                value: e.groupInterval,\n                expression: \"groupInterval\"\n            }],\n            attrs: {\n                type: \"text\",\n                placeholder: \"Interval ( Second )\"\n            },\n            domProps: {\n                value: e.groupInterval\n            },\n            on: {\n                input: function(t) {\n                    t.target.composing || (e.groupInterval = t.target.value)\n                }\n            }\n        }) : e._e()]) : 1 === e.type ? i(\"div\", {\n            staticClass: \"input-view\"\n        }, [i(\"div\", {\n            staticClass: \"title\"\n        }, [e._v(e._s(e.data ? \"Edit\" : \"New\") + \" Proxy\")]), e._v(\" \"), i(\"input\", {\n            directives: [{\n                name: \"model\",\n                rawName: \"v-model\",\n                value: e.proxyName,\n                expression: \"proxyName\"\n            }],\n            attrs: {\n                type: \"text\",\n                placeholder: \"Proxy Name\"\n            },\n            domProps: {\n                value: e.proxyName\n            },\n            on: {\n                input: function(t) {\n                    t.target.composing || (e.proxyName = t.target.value)\n                }\n            }\n        }), e._v(\" \"), i(\"div\", {\n            staticClass: \"proxy-type-list\"\n        }, e._l(e.pType, (function(t, n) {\n            return i(\"div\", {\n                key: n\n            }, [i(\"input\", {\n                directives: [{\n                    name: \"model\",\n                    rawName: \"v-model\",\n                    value: e.proxyType,\n                    expression: \"proxyType\"\n                }],\n                attrs: {\n                    type: \"radio\",\n                    id: t\n                },\n                domProps: {\n                    value: t,\n                    checked: e._q(e.proxyType, t)\n                },\n                on: {\n                    change: function(i) {\n                        e.proxyType = t\n                    }\n                }\n            }), e._v(\" \"), i(\"label\", {\n                attrs: {\n                    for: t\n                }\n            }, [e._v(e._s(t))])])\n        })), 0), e._v(\" \"), i(\"input\", {\n            directives: [{\n                name: \"model\",\n                rawName: \"v-model\",\n                value: e.proxyServer,\n                expression: \"proxyServer\"\n            }],\n            attrs: {\n                type: \"text\",\n                placeholder: \"服务器\"\n            },\n            domProps: {\n                value: e.proxyServer\n            },\n            on: {\n                input: function(t) {\n                    t.target.composing || (e.proxyServer = t.target.value)\n                }\n            }\n        }), e._v(\" \"), i(\"input\", {\n            directives: [{\n                name: \"model\",\n                rawName: \"v-model\",\n                value: e.proxyPort,\n                expression: \"proxyPort\"\n            }],\n            attrs: {\n                type: \"text\",\n                placeholder: \"端口\"\n            },\n            domProps: {\n                value: e.proxyPort\n            },\n            on: {\n                input: function(t) {\n                    t.target.composing || (e.proxyPort = t.target.value)\n                }\n            }\n        }), e._v(\" \"), \"ss\" === e.proxyType ? i(\"input\", {\n            directives: [{\n                name: \"model\",\n                rawName: \"v-model\",\n                value: e.proxyPassword,\n                expression: \"proxyPassword\"\n            }],\n            attrs: {\n                type: \"text\",\n                placeholder: \"Password\"\n            },\n            domProps: {\n                value: e.proxyPassword\n            },\n            on: {\n                input: function(t) {\n                    t.target.composing || (e.proxyPassword = t.target.value)\n                }\n            }\n        }) : e._e(), e._v(\" \"), \"vmess\" === e.proxyType ? i(\"div\", {\n            staticClass: \"cipher-list\"\n        }, e._l(e.vmessCipher, (function(t, n) {\n            return i(\"div\", {\n                key: n\n            }, [i(\"input\", {\n                directives: [{\n                    name: \"model\",\n                    rawName: \"v-model\",\n                    value: e.proxyChipher,\n                    expression: \"proxyChipher\"\n                }],\n                attrs: {\n                    type: \"radio\",\n                    id: t\n                },\n                domProps: {\n                    value: t,\n                    checked: e._q(e.proxyChipher, t)\n                },\n                on: {\n                    change: function(i) {\n                        e.proxyChipher = t\n                    }\n                }\n            }), e._v(\" \"), i(\"label\", {\n                attrs: {\n                    for: t\n                }\n            }, [e._v(e._s(t))])])\n        })), 0) : \"ss\" === e.proxyType ? i(\"div\", {\n            staticClass: \"cipher-list\"\n        }, e._l(e.ssCipher, (function(t, n) {\n            return i(\"div\", {\n                key: n\n            }, [i(\"input\", {\n                directives: [{\n                    name: \"model\",\n                    rawName: \"v-model\",\n                    value: e.proxyChipher,\n                    expression: \"proxyChipher\"\n                }],\n                attrs: {\n                    type: \"radio\",\n                    id: t\n                },\n                domProps: {\n                    value: t,\n                    checked: e._q(e.proxyChipher, t)\n                },\n                on: {\n                    change: function(i) {\n                        e.proxyChipher = t\n                    }\n                }\n            }), e._v(\" \"), i(\"label\", {\n                attrs: {\n                    for: t\n                }\n            }, [e._v(e._s(t))])])\n        })), 0) : e._e(), e._v(\" \"), \"ss\" === e.proxyType ? i(\"div\", {\n            staticClass: \"ss-list\"\n        }, [i(\"input\", {\n            directives: [{\n                name: \"model\",\n                rawName: \"v-model\",\n                value: e.proxyObfs,\n                expression: \"proxyObfs\"\n            }],\n            attrs: {\n                type: \"text\",\n                placeholder: \"Obfs (Optional, tls or http)\"\n            },\n            domProps: {\n                value: e.proxyObfs\n            },\n            on: {\n                input: function(t) {\n                    t.target.composing || (e.proxyObfs = t.target.value)\n                }\n            }\n        }), e._v(\" \"), i(\"input\", {\n            directives: [{\n                name: \"model\",\n                rawName: \"v-model\",\n                value: e.proxyObfshost,\n                expression: \"proxyObfshost\"\n            }],\n            attrs: {\n                type: \"text\",\n                placeholder: \"Obfs-host (Optional)\"\n            },\n            domProps: {\n                value: e.proxyObfshost\n            },\n            on: {\n                input: function(t) {\n                    t.target.composing || (e.proxyObfshost = t.target.value)\n                }\n            }\n        })]) : e._e(), e._v(\" \"), \"vmess\" === e.proxyType ? i(\"div\", {\n            staticClass: \"vmess-list\"\n        }, [i(\"input\", {\n            directives: [{\n                name: \"model\",\n                rawName: \"v-model\",\n                value: e.proxyUuid,\n                expression: \"proxyUuid\"\n            }],\n            attrs: {\n                type: \"text\",\n                placeholder: \"UUID\"\n            },\n            domProps: {\n                value: e.proxyUuid\n            },\n            on: {\n                input: function(t) {\n                    t.target.composing || (e.proxyUuid = t.target.value)\n                }\n            }\n        }), e._v(\" \"), i(\"input\", {\n            directives: [{\n                name: \"model\",\n                rawName: \"v-model\",\n                value: e.proxyAlterid,\n                expression: \"proxyAlterid\"\n            }],\n            attrs: {\n                type: \"text\",\n                placeholder: \"AlterId\"\n            },\n            domProps: {\n                value: e.proxyAlterid\n            },\n            on: {\n                input: function(t) {\n                    t.target.composing || (e.proxyAlterid = t.target.value)\n                }\n            }\n        }), e._v(\" \"), \"vmess\" === e.proxyType ? i(\"div\", {\n            staticClass: \"cipher-list\"\n        }, e._l(e.vmessType, (function(t, n) {\n            return i(\"div\", {\n                key: n\n            }, [i(\"input\", {\n                directives: [{\n                    name: \"model\",\n                    rawName: \"v-model\",\n                    value: e.proxyNetwork,\n                    expression: \"proxyNetwork\"\n                }],\n                attrs: {\n                    type: \"radio\",\n                    id: t\n                },\n                domProps: {\n                    value: t,\n                    checked: e._q(e.proxyNetwork, t)\n                },\n                on: {\n                    change: function(i) {\n                        e.proxyNetwork = t\n                    }\n                }\n            }), e._v(\" \"), i(\"label\", {\n                attrs: {\n                    for: t\n                }\n            }, [e._v(e._s(t))])])\n        })), 0) : e._e()]) : e._e(), e._v(\" \"), \"http\" === e.proxyType || \"socks5\" === e.proxyType ? i(\"div\", {\n            staticClass: \"input-view\"\n        }, [i(\"input\", {\n            directives: [{\n                name: \"model\",\n                rawName: \"v-model\",\n                value: e.proxyUsername,\n                expression: \"proxyUsername\"\n            }],\n            attrs: {\n                type: \"text\",\n                placeholder: \"User Name (Optional)\"\n            },\n            domProps: {\n                value: e.proxyUsername\n            },\n            on: {\n                input: function(t) {\n                    t.target.composing || (e.proxyUsername = t.target.value)\n                }\n            }\n        }), e._v(\" \"), i(\"input\", {\n            directives: [{\n                name: \"model\",\n                rawName: \"v-model\",\n                value: e.proxyPassword,\n                expression: \"proxyPassword\"\n            }],\n            attrs: {\n                type: \"text\",\n                placeholder: \"Password (Optional)\"\n            },\n            domProps: {\n                value: e.proxyPassword\n            },\n            on: {\n                input: function(t) {\n                    t.target.composing || (e.proxyPassword = t.target.value)\n                }\n            }\n        })]) : e._e(), e._v(\" \"), \"vmess\" === e.proxyType && \"ws\" === e.proxyNetwork ? i(\"input\", {\n            directives: [{\n                name: \"model\",\n                rawName: \"v-model\",\n                value: e.proxyWsPath,\n                expression: \"proxyWsPath\"\n            }],\n            attrs: {\n                type: \"text\",\n                placeholder: \"ws path\"\n            },\n            domProps: {\n                value: e.proxyWsPath\n            },\n            on: {\n                input: function(t) {\n                    t.target.composing || (e.proxyWsPath = t.target.value)\n                }\n            }\n        }) : e._e(), e._v(\" \"), \"vmess\" === e.proxyType && \"ws\" === e.proxyNetwork ? i(\"input\", {\n            directives: [{\n                name: \"model\",\n                rawName: \"v-model\",\n                value: e.proxyWsHeaders,\n                expression: \"proxyWsHeaders\"\n            }],\n            attrs: {\n                type: \"text\",\n                placeholder: \"ws headers (JSON)\"\n            },\n            domProps: {\n                value: e.proxyWsHeaders\n            },\n            on: {\n                input: function(t) {\n                    t.target.composing || (e.proxyWsHeaders = t.target.value)\n                }\n            }\n        }) : e._e(), e._v(\" \"), \"vmess\" === e.proxyType || \"socks5\" === e.proxyType || \"http\" === e.proxyType ? i(\"div\", [i(\"div\", [i(\"input\", {\n            directives: [{\n                name: \"model\",\n                rawName: \"v-model\",\n                value: e.proxyTls,\n                expression: \"proxyTls\"\n            }],\n            attrs: {\n                type: \"checkbox\",\n                id: \"vmess-tls\"\n            },\n            domProps: {\n                checked: Array.isArray(e.proxyTls) ? -1 < e._i(e.proxyTls, null) : e.proxyTls\n            },\n            on: {\n                change: function(t) {\n                    var i = e.proxyTls,\n                        n = t.target,\n                        r = !!n.checked;\n                    Array.isArray(i) ? (t = e._i(i, null), n.checked ? t < 0 && (e.proxyTls = i.concat([null])) : -1 < t && (e.proxyTls = i.slice(0, t).concat(i.slice(t + 1)))) : e.proxyTls = r\n                }\n            }\n        }), e._v(\" \"), i(\"label\", {\n            attrs: {\n                for: \"vmess-tls\"\n            }\n        }, [e._v(\"TLS\")])]), e._v(\" \"), i(\"div\", [i(\"input\", {\n            directives: [{\n                name: \"model\",\n                rawName: \"v-model\",\n                value: e.proxySkipCertVerify,\n                expression: \"proxySkipCertVerify\"\n            }],\n            attrs: {\n                type: \"checkbox\",\n                id: \"vmess-skip-cert-verify\"\n            },\n            domProps: {\n                checked: Array.isArray(e.proxySkipCertVerify) ? -1 < e._i(e.proxySkipCertVerify, null) : e.proxySkipCertVerify\n            },\n            on: {\n                change: function(t) {\n                    var i = e.proxySkipCertVerify,\n                        n = t.target,\n                        r = !!n.checked;\n                    Array.isArray(i) ? (t = e._i(i, null), n.checked ? t < 0 && (e.proxySkipCertVerify = i.concat([null])) : -1 < t && (e.proxySkipCertVerify = i.slice(0, t).concat(i.slice(t + 1)))) : e.proxySkipCertVerify = r\n                }\n            }\n        }), e._v(\" \"), i(\"label\", {\n            attrs: {\n                for: \"vmess-skip-cert-verify\"\n            }\n        }, [e._v(\"跳过证书验证\")])])]) : e._e()]) : e._e(), e._v(\" \"), i(\"div\", {\n            staticClass: \"btns\"\n        }, [i(\"div\", {\n            staticClass: \"btn cancel\",\n            on: {\n                click: function(t) {\n                    return e.$emit(\"inputCancel\")\n                }\n            }\n        }, [e._v(\"取消\")]), e._v(\" \"), i(\"div\", {\n            staticClass: \"btn confirm\",\n            on: {\n                click: e.confirmInput\n            }\n        }, [e._v(\"确定\")])])])\n    }), [], !1, null, \"8a057c1e\", null).exports, d = i(16);\n    var _ = i.n(d),\n        w = (h = i(12), i.n(h));\n\n    function y(e, t) {\n        var i, n = Object.keys(e);\n        return Object.getOwnPropertySymbols && (i = Object.getOwnPropertySymbols(e), t && (i = i.filter((function(t) {\n            return Object.getOwnPropertyDescriptor(e, t).enumerable\n        }))), n.push.apply(n, i)), n\n    }\n    var C = \"proxy-groups\",\n        x = \"proxies\",\n        S = (m = {\n            props: [\"profileName\"],\n            components: {\n                draggable: v.a,\n                AppendProxyView: a\n            },\n            data: function() {\n                return {\n                    conf: null,\n                    specialProxies: [{\n                        name: \"DIRECT\"\n                    }, {\n                        name: \"REJECT\"\n                    }],\n                    addType: -1,\n                    addData: null,\n                    saveBtn: \"保存\"\n                }\n            },\n            computed: function(e) {\n                for (var t = 1; t < arguments.length; t++) {\n                    var i = null != arguments[t] ? arguments[t] : {};\n                    t % 2 ? y(Object(i), !0).forEach((function(t) {\n                        s()(e, t, i[t])\n                    })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(i)) : y(Object(i)).forEach((function(t) {\n                        Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(i, t))\n                    }))\n                }\n                return e\n            }({}, Object(f.mapState)({\n                clashPath: function(e) {\n                    return e.app.clashPath\n                },\n                profilesPath: function(e) {\n                    return e.app.profilesPath\n                }\n            })),\n            methods: {\n                proxy2group: function(e) {\n                    return e.name\n                },\n                removeFromGroup: function(e, t) {\n                    this.conf[C][e].proxies.splice(t, 1)\n                },\n                removeFromProxies: function(e, t) {\n                    e.stopPropagation();\n                    var i = this.conf[x][t].name;\n                    this.conf[x].splice(t, 1), this.conf[C].forEach((function(e) {\n                        e.proxies = e.proxies.filter((function(e) {\n                            return e !== i\n                        }))\n                    }))\n                },\n                removeGroup: function(e, t) {\n                    e.stopPropagation();\n                    var i = this.conf[C][t].name;\n                    this.conf[C].splice(t, 1), this.conf[C].forEach((function(e) {\n                        e.proxies = e.proxies.filter((function(e) {\n                            return e !== i\n                        }))\n                    }))\n                },\n                renameGroup: function(e, t) {\n                    this.conf[C].forEach((function(i) {\n                        i.proxies = i.proxies.map((function(i) {\n                            return i === e ? t : i\n                        }))\n                    }))\n                },\n                renameRule: function(e, t) {\n                    this.conf.rules = this.conf.rules.map((function(i) {\n                        if (/\\s*MATCH\\s*,([^,]*)($|,*|\\/\\/|#)/.test(i)) {\n                            if (RegExp.$1.trim() === e.trim()) return \"MATCH,\".concat(t).concat(RegExp.$2)\n                        } else if (/([^,]*?),([^,]*?),([^,]*)($|,*|\\/\\/|#)/.test(i) && RegExp.$3.trim() === e.trim()) return \"\".concat(RegExp.$1, \",\").concat(RegExp.$2, \",\").concat(t).concat(RegExp.$4);\n                        return i\n                    }))\n                },\n                handleInputDone: function(e) {\n                    var t, i, n, r;\n                    this.addType = -1, 0 === e.type ? -1 === e.index ? this.conf[C].push(e.content) : (t = this.conf[C][e.index].proxies, i = e.content, n = this.conf[C][e.index].name, r = e.content.name, i.proxies = t, this.conf[C][e.index] = i, this.renameGroup(n, r), this.renameRule(n, r)) : 1 === e.type && (-1 === e.index ? this.conf[x].push(e.content) : (n = e.content.name, r = this.conf[x][e.index].name, this.conf[x][e.index] = e.content, this.renameGroup(r, n), this.renameRule(r, n)))\n                },\n                newGroup: function() {\n                    this.addType = 0, this.addData = null\n                },\n                editGroup: function(e, t) {\n                    var i = e.type;\n                    [\"url-test\", \"fallback\", \"select\", \"load-balance\"].includes(i) ? (this.addType = 0, e._index = t, this.addData = e) : this.$alert({\n                        content: \"无法编辑代理组类型 [\".concat(i, \"].\")\n                    })\n                },\n                newProxy: function() {\n                    this.addType = 1, this.addData = null\n                },\n                editProxy: function(e, t) {\n                    var i = e.type;\n                    [\"ss\", \"vmess\", \"http\", \"socks\"].includes(i) ? (this.addType = 1, e._index = t, this.addData = e) : this.$alert({\n                        content: \"Could not edit proxy type [\".concat(i, \"].\")\n                    })\n                },\n                loadData: function() {\n                    var e = w.a.join(this.profilesPath, this.profileName);\n                    e = _.a.readFileSync(e, \"utf8\");\n                    try {\n                        this.conf = u.a.parse(e)\n                    } catch (e) {}\n                },\n                saveData: function() {\n                    if (\"保存\" === this.saveBtn) try {\n                        var e = w.a.join(this.profilesPath, this.profileName);\n                        _.a.writeFileSync(e, u.a.stringify(this.conf)), this.$emit(\"done\")\n                    } catch (e) {\n                        this.$emit(\"error\")\n                    }\n                }\n            },\n            mounted: function() {\n                this.loadData()\n            }\n        }, n = (i(330), i(332), Object(o.a)(m, (function() {\n            var e = this,\n                t = e.$createElement,\n                i = e._self._c || t;\n            return i(\"div\", {\n                class: [\"main-config-view-\" + e.theme]\n            }, [i(\"div\", {\n                staticClass: \"floating\"\n            }, [i(\"div\", {\n                staticClass: \"hint\"\n            }, [e._v(\"拖动以排序或添加到右侧列表中.\")]), e._v(\" \"), i(\"div\", {\n                staticClass: \"floating-right\"\n            }, [i(\"div\", {\n                staticClass: \"main-btn save\",\n                on: {\n                    click: e.saveData\n                }\n            }, [e._v(e._s(e.saveBtn))]), e._v(\" \"), i(\"div\", {\n                staticClass: \"main-btn reload\",\n                on: {\n                    click: function(t) {\n                        return e.$emit(\"cancel\")\n                    }\n                }\n            }, [e._v(\"取消\")])])]), e._v(\" \"), e.conf ? i(\"div\", {\n                staticClass: \"drag\"\n            }, [i(\"div\", {\n                staticClass: \"proxy\"\n            }, [e._m(0), e._v(\" \"), i(\"draggable\", {\n                staticClass: \"dragArea\",\n                attrs: {\n                    group: {\n                        name: \"people\",\n                        pull: \"clone\",\n                        put: !1,\n                        revertClone: !0\n                    },\n                    clone: e.proxy2group,\n                    delay: 300,\n                    animation: 200,\n                    \"delay-on-touch-only\": !0\n                },\n                model: {\n                    value: e.specialProxies,\n                    callback: function(t) {\n                        e.specialProxies = t\n                    },\n                    expression: \"specialProxies\"\n                }\n            }, e._l(e.specialProxies, (function(t, n) {\n                return i(\"div\", {\n                    key: n,\n                    staticClass: \"proxy-item left-item\"\n                }, [e._v(\"\\n          \" + e._s(t.name) + \"\\n        \")])\n            })), 0), e._v(\" \"), i(\"div\", {\n                staticClass: \"section-title\"\n            }, [i(\"h2\", [e._v(\"代理组\")]), e._v(\" \"), i(\"div\", {\n                staticClass: \"add-icon\",\n                on: {\n                    click: e.newGroup\n                }\n            }, [e._v(\"添加\")])]), e._v(\" \"), i(\"draggable\", {\n                staticClass: \"dragArea\",\n                attrs: {\n                    group: {\n                        name: \"people\",\n                        pull: \"clone\",\n                        put: !1,\n                        revertClone: !0\n                    },\n                    clone: e.proxy2group,\n                    delay: 300,\n                    animation: 200,\n                    \"delay-on-touch-only\": !0\n                },\n                model: {\n                    value: e.conf[\"proxy-groups\"],\n                    callback: function(t) {\n                        e.$set(e.conf, \"proxy-groups\", t)\n                    },\n                    expression: \"conf['proxy-groups']\"\n                }\n            }, e._l(e.conf[\"proxy-groups\"], (function(t, n) {\n                return i(\"div\", {\n                    key: n,\n                    staticClass: \"proxy-item left-item\",\n                    on: {\n                        click: function(i) {\n                            return e.editGroup(t, n)\n                        }\n                    }\n                }, [i(\"div\", {\n                    domProps: {\n                        innerHTML: e._s(e.$parseEmoji(t.name))\n                    }\n                }), e._v(\" \"), i(\"svg\", {\n                    attrs: {\n                        xmlns: \"http://www.w3.org/2000/svg\",\n                        viewBox: \"0 0 24 24\",\n                        fill: \"white\",\n                        width: \"18px\",\n                        height: \"18px\"\n                    },\n                    on: {\n                        click: function(t) {\n                            return e.removeGroup(t, n)\n                        }\n                    }\n                }, [i(\"path\", {\n                    attrs: {\n                        d: \"M0 0h24v24H0V0z\",\n                        fill: \"none\"\n                    }\n                }), e._v(\" \"), i(\"path\", {\n                    attrs: {\n                        d: \"M18.3 5.71c-.39-.39-1.02-.39-1.41 0L12 10.59 7.11 5.7c-.39-.39-1.02-.39-1.41 0-.39.39-.39 1.02 0 1.41L10.59 12 5.7 16.89c-.39.39-.39 1.02 0 1.41.39.39 1.02.39 1.41 0L12 13.41l4.89 4.89c.39.39 1.02.39 1.41 0 .39-.39.39-1.02 0-1.41L13.41 12l4.89-4.89c.38-.38.38-1.02 0-1.4z\"\n                    }\n                })])])\n            })), 0), e._v(\" \"), i(\"div\", {\n                staticClass: \"section-title\"\n            }, [i(\"h2\", [e._v(\"代理\")]), e._v(\" \"), i(\"div\", {\n                staticClass: \"add-icon\",\n                on: {\n                    click: e.newProxy\n                }\n            }, [e._v(\"添加\")])]), e._v(\" \"), i(\"draggable\", {\n                staticClass: \"dragArea\",\n                attrs: {\n                    group: {\n                        name: \"people\",\n                        pull: \"clone\",\n                        put: !1,\n                        revertClone: !0\n                    },\n                    clone: e.proxy2group,\n                    delay: 300,\n                    animation: 200,\n                    \"delay-on-touch-only\": !0\n                },\n                model: {\n                    value: e.conf.proxies,\n                    callback: function(t) {\n                        e.$set(e.conf, \"proxies\", t)\n                    },\n                    expression: \"conf['proxies']\"\n                }\n            }, e._l(e.conf.proxies, (function(t, n) {\n                return i(\"div\", {\n                    key: n,\n                    staticClass: \"proxy-item left-item\",\n                    on: {\n                        click: function(i) {\n                            return e.editProxy(t, n)\n                        }\n                    }\n                }, [i(\"div\", {\n                    domProps: {\n                        innerHTML: e._s(e.$parseEmoji(t.name))\n                    }\n                }), e._v(\" \"), i(\"svg\", {\n                    attrs: {\n                        xmlns: \"http://www.w3.org/2000/svg\",\n                        viewBox: \"0 0 24 24\",\n                        fill: \"white\",\n                        width: \"18px\",\n                        height: \"18px\"\n                    },\n                    on: {\n                        click: function(t) {\n                            return e.removeFromProxies(t, n)\n                        }\n                    }\n                }, [i(\"path\", {\n                    attrs: {\n                        d: \"M0 0h24v24H0V0z\",\n                        fill: \"none\"\n                    }\n                }), e._v(\" \"), i(\"path\", {\n                    attrs: {\n                        d: \"M18.3 5.71c-.39-.39-1.02-.39-1.41 0L12 10.59 7.11 5.7c-.39-.39-1.02-.39-1.41 0-.39.39-.39 1.02 0 1.41L10.59 12 5.7 16.89c-.39.39-.39 1.02 0 1.41.39.39 1.02.39 1.41 0L12 13.41l4.89 4.89c.39.39 1.02.39 1.41 0 .39-.39.39-1.02 0-1.41L13.41 12l4.89-4.89c.38-.38.38-1.02 0-1.4z\"\n                    }\n                })])])\n            })), 0)], 1), e._v(\" \"), i(\"div\", {\n                staticClass: \"proxy-group\"\n            }, e._l(e.conf[\"proxy-groups\"], (function(t, n) {\n                return i(\"div\", {\n                    key: n\n                }, [i(\"div\", {\n                    staticClass: \"section-title\"\n                }, [i(\"h2\", {\n                    domProps: {\n                        innerHTML: e._s(e.$parseEmoji(t.name))\n                    }\n                }), e._v(\" \"), i(\"div\", {\n                    staticClass: \"type-icon\"\n                }, [e._v(\"( \" + e._s(t.type) + \" )\")])]), e._v(\" \"), i(\"draggable\", {\n                    staticClass: \"dragArea\",\n                    attrs: {\n                        group: {\n                            name: \"people\"\n                        },\n                        scroll: !0,\n                        scrollSensitivity: 100,\n                        scrollSpeed: 50,\n                        delay: 300,\n                        animation: 200,\n                        \"delay-on-touch-only\": !0\n                    },\n                    model: {\n                        value: t.proxies,\n                        callback: function(i) {\n                            e.$set(t, \"proxies\", i)\n                        },\n                        expression: \"group.proxies\"\n                    }\n                }, e._l(t.proxies, (function(t, r) {\n                    return i(\"div\", {\n                        key: r,\n                        staticClass: \"proxy-item right-item\"\n                    }, [i(\"div\", {\n                        domProps: {\n                            innerHTML: e._s(e.$parseEmoji(t))\n                        }\n                    }), e._v(\" \"), i(\"svg\", {\n                        attrs: {\n                            xmlns: \"http://www.w3.org/2000/svg\",\n                            viewBox: \"0 0 24 24\",\n                            fill: \"white\",\n                            width: \"18px\",\n                            height: \"18px\"\n                        },\n                        on: {\n                            click: function(t) {\n                                return e.removeFromGroup(n, r)\n                            }\n                        }\n                    }, [i(\"path\", {\n                        attrs: {\n                            d: \"M0 0h24v24H0V0z\",\n                            fill: \"none\"\n                        }\n                    }), e._v(\" \"), i(\"path\", {\n                        attrs: {\n                            d: \"M18.3 5.71c-.39-.39-1.02-.39-1.41 0L12 10.59 7.11 5.7c-.39-.39-1.02-.39-1.41 0-.39.39-.39 1.02 0 1.41L10.59 12 5.7 16.89c-.39.39-.39 1.02 0 1.41.39.39 1.02.39 1.41 0L12 13.41l4.89 4.89c.39.39 1.02.39 1.41 0 .39-.39.39-1.02 0-1.41L13.41 12l4.89-4.89c.38-.38.38-1.02 0-1.4z\"\n                        }\n                    })])])\n                })), 0)], 1)\n            })), 0)]) : e._e(), e._v(\" \"), -1 !== e.addType ? i(\"append-proxy-view\", {\n                attrs: {\n                    data: e.addData,\n                    type: e.addType\n                },\n                on: {\n                    inputDone: e.handleInputDone,\n                    inputCancel: function(t) {\n                        e.addType = -1\n                    }\n                }\n            }) : e._e()], 1)\n        }), [function() {\n            var e = this.$createElement;\n            return (e = this._self._c || e)(\"div\", {\n                staticClass: \"section-title\"\n            }, [e(\"h2\", [this._v(\"特殊代理\")])])\n        }], !1, null, \"16c92520\", null).exports), d = i(105), i.n(d)),\n        k = (h = i(52), i.n(h));\n\n    function L(e, t) {\n        var i, n = Object.keys(e);\n        return Object.getOwnPropertySymbols && (i = Object.getOwnPropertySymbols(e), t && (i = i.filter((function(t) {\n            return Object.getOwnPropertyDescriptor(e, t).enumerable\n        }))), n.push.apply(n, i)), n\n    }\n\n    function O(e) {\n        for (var t = 1; t < arguments.length; t++) {\n            var i = null != arguments[t] ? arguments[t] : {};\n            t % 2 ? L(Object(i), !0).forEach((function(t) {\n                s()(e, t, i[t])\n            })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(i)) : L(Object(i)).forEach((function(t) {\n                Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(i, t))\n            }))\n        }\n        return e\n    }\n\n    function E(e, t) {\n        var i, n = Object.keys(e);\n        return Object.getOwnPropertySymbols && (i = Object.getOwnPropertySymbols(e), t && (i = i.filter((function(t) {\n            return Object.getOwnPropertyDescriptor(e, t).enumerable\n        }))), n.push.apply(n, i)), n\n    }\n\n    function N(e) {\n        for (var t = 1; t < arguments.length; t++) {\n            var i = null != arguments[t] ? arguments[t] : {};\n            t % 2 ? E(Object(i), !0).forEach((function(t) {\n                s()(e, t, i[t])\n            })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(i)) : E(Object(i)).forEach((function(t) {\n                Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(i, t))\n            }))\n        }\n        return e\n    }\n    a = {\n        props: [\"profileName\"],\n        data: function() {\n            return {\n                ruleTypes: [\"DOMAIN-SUFFIX\", \"DOMAIN\", \"DOMAIN-KEYWORD\", \"IP-CIDR\", \"SRC-IP-CIDR\", \"GEOIP\", \"PROCESS-NAME\", \"DST-PORT\", \"SRC-PORT\", \"MATCH\"],\n                selectedType: \"\",\n                proxyGroups: [],\n                selectedGroup: \"\",\n                content: \"\"\n            }\n        },\n        computed: O(O({}, Object(f.mapState)({\n            profilesPath: function(e) {\n                return e.app.profilesPath\n            }\n        })), Object(f.mapGetters)([\"clashAxiosClient\"])),\n        methods: {\n            inputDone: function() {\n                var e = null;\n                \"MATCH\" === this.selectedType && this.selectedGroup ? e = {\n                    type: this.selectedType,\n                    payload: \"\",\n                    proxy: this.selectedGroup\n                } : this.content && this.selectedType && this.selectedGroup && (e = {\n                    type: this.selectedType,\n                    payload: this.content,\n                    proxy: this.selectedGroup\n                }), this.$emit(\"done\", e)\n            },\n            handleMaskClick: function(e) {\n                this.$emit(\"close\")\n            }\n        },\n        mounted: function() {\n            try {\n                var e = u.a.parse(_.a.readFileSync(w.a.join(this.profilesPath, this.profileName)).toString()),\n                    t = e.proxies,\n                    i = void 0 === t ? [] : t,\n                    n = e[\"proxy-groups\"],\n                    r = void 0 === n ? [] : n,\n                    o = i.map((function(e) {\n                        return e.name\n                    })),\n                    s = r.map((function(e) {\n                        return e.name\n                    }));\n                this.proxyGroups = [\"DIRECT\", \"REJECT\"].concat(k()(s), k()(o))\n            } catch (e) {}\n        }\n    }, i(334), i(336), m = Object(o.a)(a, (function() {\n        var e = this,\n            t = e.$createElement,\n            i = e._self._c || t;\n        return i(\"div\", {\n            attrs: {\n                type: \"text/x-template\",\n                id: \"modal-template\"\n            }\n        }, [i(\"transition\", {\n            attrs: {\n                name: \"modal\"\n            }\n        }, [i(\"div\", {\n            staticClass: \"modal-mask\",\n            on: {\n                mousedown: e.handleMaskClick\n            }\n        }, [i(\"div\", {\n            staticClass: \"modal-wrapper\"\n        }, [i(\"div\", {\n            class: [\"modal-container-\" + e.theme],\n            on: {\n                mousedown: function(e) {\n                    e.stopPropagation()\n                }\n            }\n        }, [i(\"div\", {\n            class: [\"model-title-\" + e.theme]\n        }, [i(\"div\", [e._v(\"创建新规则\")]), e._v(\" \"), i(\"div\", {\n            staticClass: \"rule-floating-btns\"\n        }, [i(\"div\", {\n            staticClass: \"rule-floating-ok\",\n            on: {\n                click: e.inputDone\n            }\n        }, [e._v(\"添加\")]), e._v(\" \"), i(\"div\", {\n            staticClass: \"rule-floating-cancel\",\n            on: {\n                click: function(t) {\n                    return e.$emit(\"close\")\n                }\n            }\n        }, [e._v(\"\\n                取消\\n              \")])])]), e._v(\" \"), i(\"div\", {\n            class: [\"scroll-view-\" + e.theme]\n        }, [\"MATCH\" !== e.selectedType ? i(\"div\", {\n            staticClass: \"rule-section-title\"\n        }, [e._v(\"\\n              内容\\n            \")]) : e._e(), e._v(\" \"), i(\"div\", [\"MATCH\" !== e.selectedType ? i(\"input\", {\n            directives: [{\n                name: \"model\",\n                rawName: \"v-model\",\n                value: e.content,\n                expression: \"content\"\n            }],\n            attrs: {\n                placeholder: \"eg: google.com\",\n                id: \"rule-content\",\n                type: \"text\"\n            },\n            domProps: {\n                value: e.content\n            },\n            on: {\n                input: function(t) {\n                    t.target.composing || (e.content = t.target.value)\n                }\n            }\n        }) : e._e()]), e._v(\" \"), i(\"div\", {\n            staticClass: \"rule-section-title\"\n        }, [e._v(\"类型\")]), e._v(\" \"), i(\"div\", {\n            staticClass: \"rule-type-group\"\n        }, e._l(e.ruleTypes, (function(t, n) {\n            return i(\"div\", {\n                key: n,\n                class: {\n                    \"rule-type-item\": !0, \"rule-type-selected\": t === e.selectedType\n                },\n                on: {\n                    click: function(i) {\n                        e.selectedType = t\n                    }\n                }\n            }, [e._v(\"\\n                \" + e._s(t) + \"\\n              \")])\n        })), 0), e._v(\" \"), i(\"div\", {\n            staticClass: \"rule-section-title\"\n        }, [e._v(\"代理或策略\")]), e._v(\" \"), i(\"div\", {\n            staticClass: \"rule-proxy-group\"\n        }, e._l(e.proxyGroups, (function(t, n) {\n            return i(\"div\", {\n                key: n,\n                class: {\n                    \"rule-proxy-item\": !0, \"rule-proxy-selected\": t === e.selectedGroup\n                },\n                domProps: {\n                    innerHTML: e._s(e.$parseEmoji(t))\n                },\n                on: {\n                    click: function(i) {\n                        e.selectedGroup = t\n                    }\n                }\n            }, [e._v(\"\\n                \" + e._s(t) + \"\\n              \")])\n        })), 0)])])])])])], 1)\n    }), [], !1, null, \"281445b0\", null).exports;\n    d = i(82);\n    var D = [],\n        I = (h = {\n            props: [\"profileName\"],\n            data: function() {\n                return {\n                    listData: [],\n                    memoryData: [],\n                    showAlterModel: !1,\n                    saveBtnText: \"保存\",\n                    axiosSource: null,\n                    filterKeywords: \"\",\n                    providers: {}\n                }\n            },\n            components: {\n                RuleAlterView: m\n            },\n            watch: {},\n            computed: N(N({}, Object(f.mapState)({\n                clashPath: function(e) {\n                    return e.app.clashPath\n                },\n                profiles: function(e) {\n                    return e.app.profiles\n                },\n                profilesPath: function(e) {\n                    return e.app.profilesPath\n                }\n            })), Object(f.mapGetters)([\"clashAxiosClient\"])),\n            methods: {\n                handleRuleClick: function(e) {\n                    var t = this;\n                    return r()(l.a.mark((function i() {\n                        var n, r;\n                        return l.a.wrap((function(i) {\n                            for (;;) switch (i.prev = i.next) {\n                                case 0:\n                                    if (r = e.type, n = e.payload, \"RULE-SET\" === r) return i.prev = 2, i.next = 5, t.clashAxiosClient.put(\"/providers/rules/\".concat(encodeURIComponent(n)));\n                                    i.next = 13;\n                                    break;\n                                case 5:\n                                    204 === (r = i.sent).status ? (t.loadData(), Object(g.h)(\"Success\", \"RULE-SET [\".concat(n, \"] has been updated!\"))) : Object(g.h)(\"Failed\", \"RULE-SET [\".concat(n, \"] update failed(Server Error)!\")), i.next = 13;\n                                    break;\n                                case 10:\n                                    i.prev = 10, i.t0 = i.catch(2), Object(g.h)(\"Failed\", \"RULE-SET [\".concat(n, \"] 更新失败(网络错误)!\"));\n                                case 13:\n                                case \"end\":\n                                    return i.stop()\n                            }\n                        }), i, null, [\n                            [2, 10]\n                        ])\n                    })))()\n                },\n                fromNow: function(e) {\n                    return c()(e).locale('zh-cn').fromNow()\n                },\n                providerOfPayload: function(e) {\n                    return (e = this.providers[e]) || null\n                },\n                moveItem: function(e, t, i) {\n                    this.removeItem(t, i), e ? this.memoryData.unshift(t) : this.memoryData.push(t), this.listData = this.memoryData.slice(0, 100)\n                },\n                randomBGC: function(e) {\n                    if (n = D.find((function(t) {\n                            return t.type === e\n                        }))) return {\n                        \"background-color\": \"rgb(\".concat(n.r, \",\").concat(n.g, \",\").concat(n.b, \")\")\n                    };\n                    var t = Math.floor(100 * Math.random() + 10),\n                        i = Math.floor(100 * Math.random() + 10),\n                        n = Math.floor(100 * Math.random() + 10);\n                    return D.push({\n                        type: e,\n                        r: t,\n                        g: i,\n                        b: n\n                    }), {\n                        \"background-color\": \"rgb(\".concat(t, \",\").concat(i, \",\").concat(n, \")\")\n                    }\n                },\n                inputDone: function(e) {\n                    this.showAlterModel = !1, e && (this.memoryData.unshift(e), this.listData.unshift(e))\n                },\n                handleFilterKeywordInput: d.debounce((function(e) {\n                    (e = e.target) && (e = e.value, this.filterKeywords = e, this.loadData())\n                }), 500),\n                applyRules: function() {\n                    var e = this;\n                    return r()(l.a.mark((function t() {\n                        var i, n, r, o, s;\n                        return l.a.wrap((function(t) {\n                            for (;;) switch (t.prev = t.next) {\n                                case 0:\n                                    try {\n                                        i = Object(g.d)(e.memoryData), n = i.map((function(e) {\n                                            var t = e.type,\n                                                i = e.payload,\n                                                n = e.proxy;\n                                            e = void 0 === (e = e.params) ? \"\" : e;\n                                            return i ? \"\".concat(t, \",\").concat(i, \",\").concat(n).concat(e) : \"\".concat(t, \",\").concat(n)\n                                        })), r = w.a.join(e.profilesPath, e.profileName), o = _.a.readFileSync(r, \"utf8\"), (s = u.a.parse(o)).rules = n, _.a.writeFileSync(r, u.a.stringify(s)), e.$emit(\"done\"), e.saveBtnText = \"Done\"\n                                    } catch (t) {\n                                        e.$emit(\"error\"), e.saveBtnText = \"Fail\"\n                                    }\n                                    setTimeout((function() {\n                                        e.saveBtnText = \"保存\"\n                                    }), 3e3);\n                                case 2:\n                                case \"end\":\n                                    return t.stop()\n                            }\n                        }), t)\n                    })))()\n                },\n                removeItem: function(e, t) {\n                    var i = this.memoryData.findIndex((function(t) {\n                        return t.payload === e.payload && t.proxy === e.proxy && t.type === e.type\n                    })); - 1 < i && (this.memoryData.splice(i, 1), this.listData.splice(t, 1))\n                },\n                loadData: function() {\n                    var e = this;\n                    return r()(l.a.mark((function t() {\n                        var i, n, r, o;\n                        return l.a.wrap((function(t) {\n                            for (;;) switch (t.prev = t.next) {\n                                case 0:\n                                    return n = w.a.join(e.profilesPath, e.profileName), i = _.a.readFileSync(n, \"utf8\"), t.prev = 2, t.next = 5, Promise.all([e.clashAxiosClient.get(\"/rules\"), e.clashAxiosClient.get(\"/providers/rules\")]);\n                                case 5:\n                                    r = t.sent, n = S()(r, 2), r = void 0 === (r = n[0].data) ? {} : r, n = (n = void 0 === (n = n[1].data) ? {} : n).providers, e.providers = n, r = r.rules, r = u.a.parse(i), e.memoryData = r.rules.map((function(e) {\n                                        return 2 === (e = e.split(\",\")).length ? {\n                                            type: e[0].trim(),\n                                            payload: \"\",\n                                            proxy: e[1].trim(),\n                                            params: \"\"\n                                        } : 3 === e.length ? {\n                                            payload: e[1].trim(),\n                                            proxy: e[2].trim(),\n                                            type: e[0].trim(),\n                                            params: \"\"\n                                        } : 4 === e.length ? {\n                                            payload: e[1].trim(),\n                                            proxy: e[2].trim(),\n                                            type: e[0].trim(),\n                                            params: \",\".concat(e[3])\n                                        } : null\n                                    })).filter((function(e) {\n                                        return e\n                                    })), \"\" !== e.filterKeywords ? (r = e.filterKeywords.trim().split(/\\s+/).join(\"|\"), o = new RegExp(r, \"i\"), e.listData = e.memoryData.filter((function(e) {\n                                        return o.test(e.proxy) || o.test(e.payload) || o.test(e.type)\n                                    })).slice(0, 100)) : e.listData = e.memoryData.slice(0, 100), t.next = 21;\n                                    break;\n                                case 19:\n                                    t.prev = 19, t.t0 = t.catch(2);\n                                case 21:\n                                case \"end\":\n                                    return t.stop()\n                            }\n                        }), t, null, [\n                            [2, 19]\n                        ])\n                    })))()\n                }\n            },\n            mounted: function() {\n                this.loadData()\n            },\n            destroyed: function() {}\n        }, a = (i(338), i(340), Object(o.a)(h, (function() {\n            var e = this,\n                t = e.$createElement,\n                i = e._self._c || t;\n            return i(\"div\", {\n                attrs: {\n                    id: \"main-log-view\"\n                }\n            }, [i(\"div\", {\n                staticClass: \"header\"\n            }, [i(\"div\", {\n                staticClass: \"title\"\n            }, [e._v(\"前100个匹配规则(\" + e._s(e.memoryData.length) + \").\")]), e._v(\" \"), i(\"div\", {\n                staticClass: \"header-btns\"\n            }, [i(\"div\", {\n                staticClass: \"btn btn-add md-button\",\n                on: {\n                    click: function(t) {\n                        e.showAlterModel = !0\n                    }\n                }\n            }, [e._v(\"\\n        添加\\n      \")]), e._v(\" \"), i(\"div\", {\n                staticClass: \"btn btn-save md-button\",\n                on: {\n                    click: e.applyRules\n                }\n            }, [e._v(\"\\n        \" + e._s(e.saveBtnText) + \"\\n      \")]), e._v(\" \"), i(\"div\", {\n                staticClass: \"btn btn-back md-button\",\n                on: {\n                    click: function(t) {\n                        return e.$emit(\"cancel\")\n                    }\n                }\n            }, [e._v(\"\\n        取消\\n      \")])])]), e._v(\" \"), i(\"div\", {\n                staticClass: \"filter-view\"\n            }, [i(\"input\", {\n                directives: [{\n                    name: \"model\",\n                    rawName: \"v-model\",\n                    value: e.filterKeywords,\n                    expression: \"filterKeywords\"\n                }],\n                attrs: {\n                    type: \"text\",\n                    placeholder: \"按关键字过滤\"\n                },\n                domProps: {\n                    value: e.filterKeywords\n                },\n                on: {\n                    input: [function(t) {\n                        t.target.composing || (e.filterKeywords = t.target.value)\n                    }, function(t) {\n                        return e.handleFilterKeywordInput(t)\n                    }]\n                }\n            })]), e._v(\" \"), i(\"div\", {\n                class: [\"log-list-\" + e.theme]\n            }, e._l(e.listData, (function(t, n) {\n                return i(\"div\", {\n                    key: n,\n                    class: [\"log-item-\" + e.theme],\n                    attrs: {\n                        title: t.payload\n                    },\n                    on: {\n                        click: function(i) {\n                            return e.handleRuleClick(t)\n                        }\n                    }\n                }, [i(\"div\", {\n                    staticClass: \"left\"\n                }, [i(\"div\", {\n                    class: [\"url\", e.providerOfPayload(t.payload) ? \"rule-set\" : \"\"]\n                }, [e._v(\"\\n          \" + e._s(t.payload) + \"\\n        \")]), e._v(\" \"), i(\"div\", {\n                    class: [\"rule-\" + e.theme]\n                }, [e._v(\"\\n          \" + e._s(t.type) + \"\\n          \"), e.providerOfPayload(t.payload) ? i(\"div\", [e._v(\"\\n            Rules: \" + e._s(e.providerOfPayload(t.payload).ruleCount) + \"\\n          \")]) : e._e(), e._v(\" \"), e.providerOfPayload(t.payload) ? i(\"div\", [e._v(\"\\n            Last Updated:\\n            \" + e._s(e.fromNow(e.providerOfPayload(t.payload).updatedAt)) + \"\\n          \")]) : e._e(), e._v(\" \"), e.providerOfPayload(t.payload) ? i(\"div\", [e._v(\"\\n            \" + e._s(e.providerOfPayload(t.payload).vehicleType) + \"\\n            \" + e._s(e.providerOfPayload(t.payload).behavior) + \"\\n          \")]) : e._e()])]), e._v(\" \"), i(\"div\", {\n                    staticClass: \"right-main\"\n                }, [i(\"div\", {\n                    staticClass: \"right\",\n                    style: e.randomBGC(t.proxy),\n                    domProps: {\n                        innerHTML: e._s(e.$parseEmoji(t.proxy))\n                    }\n                }, [e._v(\"\\n          \" + e._s(t.proxy) + \"\\n        \")]), e._v(\" \"), i(\"svg\", {\n                    staticClass: \"icon\",\n                    attrs: {\n                        xmlns: \"http://www.w3.org/2000/svg\",\n                        \"enable-background\": \"new 0 0 24 24\",\n                        viewBox: \"0 0 24 24\",\n                        fill: \"dark\" === e.theme ? \"white\" : \"black\"\n                    },\n                    on: {\n                        click: function(i) {\n                            return i.stopPropagation(), e.moveItem(!0, t, n)\n                        }\n                    }\n                }, [i(\"rect\", {\n                    attrs: {\n                        fill: \"none\",\n                        height: \"24\",\n                        width: \"24\"\n                    }\n                }), e._v(\" \"), i(\"path\", {\n                    attrs: {\n                        d: \"M5.71,9.7L5.71,9.7c0.39,0.39,1.02,0.39,1.41,0L11,5.83V21c0,0.55,0.45,1,1,1h0c0.55,0,1-0.45,1-1V5.83l3.88,3.88 c0.39,0.39,1.02,0.39,1.41,0l0,0c0.39-0.39,0.39-1.02,0-1.41L12.7,2.7c-0.39-0.39-1.02-0.39-1.41,0L5.71,8.29 C5.32,8.68,5.32,9.32,5.71,9.7z\"\n                    }\n                })]), e._v(\" \"), i(\"svg\", {\n                    staticClass: \"icon\",\n                    attrs: {\n                        xmlns: \"http://www.w3.org/2000/svg\",\n                        \"enable-background\": \"new 0 0 24 24\",\n                        viewBox: \"0 0 24 24\",\n                        fill: \"dark\" === e.theme ? \"white\" : \"black\"\n                    },\n                    on: {\n                        click: function(i) {\n                            return i.stopPropagation(), e.moveItem(!1, t, n)\n                        }\n                    }\n                }, [i(\"rect\", {\n                    attrs: {\n                        fill: \"none\",\n                        height: \"24\",\n                        width: \"24\"\n                    }\n                }), e._v(\" \"), i(\"path\", {\n                    attrs: {\n                        d: \"M18.3,14.29L18.3,14.29c-0.39-0.39-1.02-0.39-1.41,0L13,18.17V3c0-0.55-0.45-1-1-1h0c-0.55,0-1,0.45-1,1v15.18l-3.88-3.88 c-0.39-0.39-1.02-0.39-1.41,0l0,0c-0.39,0.39-0.39,1.02,0,1.41l5.59,5.59c0.39,0.39,1.02,0.39,1.41,0l5.59-5.59 C18.68,15.32,18.68,14.68,18.3,14.29z\"\n                    }\n                })]), e._v(\" \"), i(\"svg\", {\n                    staticClass: \"icon\",\n                    attrs: {\n                        xmlns: \"http://www.w3.org/2000/svg\",\n                        viewBox: \"0 0 24 24\",\n                        fill: \"dark\" === e.theme ? \"white\" : \"black\"\n                    },\n                    on: {\n                        click: function(i) {\n                            return i.stopPropagation(), e.removeItem(t, n)\n                        }\n                    }\n                }, [i(\"path\", {\n                    attrs: {\n                        d: \"M0 0h24v24H0V0z\",\n                        fill: \"none\"\n                    }\n                }), e._v(\" \"), i(\"path\", {\n                    attrs: {\n                        d: \"M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V9c0-1.1-.9-2-2-2H8c-1.1 0-2 .9-2 2v10zm3.17-7.83c.39-.39 1.02-.39 1.41 0L12 12.59l1.42-1.42c.39-.39 1.02-.39 1.41 0 .39.39.39 1.02 0 1.41L13.41 14l1.42 1.42c.39.39.39 1.02 0 1.41-.39.39-1.02.39-1.41 0L12 15.41l-1.42 1.42c-.39.39-1.02.39-1.41 0-.39-.39-.39-1.02 0-1.41L10.59 14l-1.42-1.42c-.39-.38-.39-1.02 0-1.41zM15.5 4l-.71-.71c-.18-.18-.44-.29-.7-.29H9.91c-.26 0-.52.11-.7.29L8.5 4H6c-.55 0-1 .45-1 1s.45 1 1 1h12c.55 0 1-.45 1-1s-.45-1-1-1h-2.5z\"\n                    }\n                })])])])\n            })), 0), e._v(\" \"), e.showAlterModel ? i(\"rule-alter-view\", {\n                attrs: {\n                    \"profile-name\": e.profileName\n                },\n                on: {\n                    close: function(t) {\n                        e.showAlterModel = !1\n                    },\n                    done: e.inputDone\n                }\n            }) : e._e()], 1)\n        }), [], !1, null, \"d9c5f67a\", null).exports), m = i(253), i.n(m)),\n        T = i(22),\n        M = (d = {\n            name: \"QRCodeView\",\n            components: {},\n            props: {\n                url: String\n            },\n            data: function() {\n                return {\n                    src: \"\",\n                    isWithSheme: !0\n                }\n            },\n            watch: {\n                isWithSheme: function() {\n                    this.updateQrcode()\n                }\n            },\n            computed: {\n                finalURL: function() {\n                    return this.isWithSheme ? \"clash://install-config?url=\".concat(encodeURIComponent(this.url)) : this.url\n                },\n                shorternFinalURL: function() {\n                    return this.finalURL ? Object(g.f)(this.finalURL, 120) : \"\"\n                }\n            },\n            methods: {\n                handleGoToURL: function() {\n                    T.shell.openExternal(this.url)\n                },\n                updateQrcode: function() {\n                    var e = this;\n                    return r()(l.a.mark((function t() {\n                        return l.a.wrap((function(t) {\n                            for (;;) switch (t.prev = t.next) {\n                                case 0:\n                                    return t.prev = 0, t.next = 3, I.a.toDataURL(e.finalURL);\n                                case 3:\n                                    e.src = t.sent, t.next = 8;\n                                    break;\n                                case 6:\n                                    t.prev = 6, t.t0 = t.catch(0);\n                                case 8:\n                                case \"end\":\n                                    return t.stop()\n                            }\n                        }), t, null, [\n                            [0, 6]\n                        ])\n                    })))()\n                }\n            },\n            mounted: function() {\n                this.updateQrcode()\n            }\n        }, h = (i(342), Object(o.a)(d, (function() {\n            var e = this,\n                t = e.$createElement;\n            return (t = e._self._c || t)(\"div\", {\n                staticClass: \"qrcode-view-main\",\n                on: {\n                    click: function(t) {\n                        return e.$emit(\"hide\")\n                    }\n                }\n            }, [t(\"div\", {\n                staticClass: \"content\",\n                on: {\n                    click: function(e) {\n                        e.stopPropagation()\n                    }\n                }\n            }, [t(\"img\", {\n                attrs: {\n                    src: e.src,\n                    alt: \"\"\n                }\n            }), e._v(\" \"), t(\"div\", {\n                staticClass: \"url\",\n                on: {\n                    click: e.handleGoToURL\n                }\n            }, [e._v(\"\\n      \" + e._s(e.shorternFinalURL) + \"\\n    \")]), e._v(\" \"), t(\"div\", {\n                staticClass: \"btn\",\n                on: {\n                    click: function(t) {\n                        e.isWithSheme = !e.isWithSheme\n                    }\n                }\n            }, [e._v(\"\\n      \" + e._s(e.isWithSheme ? \"删除\" : \"包括\") + \" 跳转方案\\n    \")])])])\n        }), [], !1, null, \"64e66e1e\", null).exports), m = i(134), i(154));\n\n    function P(e, t) {\n        var i = \"undefined\" != typeof Symbol && e[Symbol.iterator] || e[\"@@iterator\"];\n        if (!i) {\n            if (Array.isArray(e) || (i = function(e, t) {\n                    if (e) {\n                        if (\"string\" == typeof e) return A(e, t);\n                        var i = Object.prototype.toString.call(e).slice(8, -1);\n                        return \"Map\" === (i = \"Object\" === i && e.constructor ? e.constructor.name : i) || \"Set\" === i ? Array.from(e) : \"Arguments\" === i || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i) ? A(e, t) : void 0\n                    }\n                }(e)) || t && e && \"number\" == typeof e.length) {\n                i && (e = i);\n                var n = 0;\n                return {\n                    s: t = function() {},\n                    n: function() {\n                        return n >= e.length ? {\n                            done: !0\n                        } : {\n                            done: !1,\n                            value: e[n++]\n                        }\n                    },\n                    e: function(e) {\n                        throw e\n                    },\n                    f: t\n                }\n            }\n            throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")\n        }\n        var r, o = !0,\n            s = !1;\n        return {\n            s: function() {\n                i = i.call(e)\n            },\n            n: function() {\n                var e = i.next();\n                return o = e.done, e\n            },\n            e: function(e) {\n                s = !0, r = e\n            },\n            f: function() {\n                try {\n                    o || null == i.return || i.return()\n                } finally {\n                    if (s) throw r\n                }\n            }\n        }\n    }\n\n    function A(e, t) {\n        (null == t || t > e.length) && (t = e.length);\n        for (var i = 0, n = new Array(t); i < t; i++) n[i] = e[i];\n        return n\n    }\n\n    function R(e, t) {\n        var i, n = Object.keys(e);\n        return Object.getOwnPropertySymbols && (i = Object.getOwnPropertySymbols(e), t && (i = i.filter((function(t) {\n            return Object.getOwnPropertyDescriptor(e, t).enumerable\n        }))), n.push.apply(n, i)), n\n    }\n\n    function F(e) {\n        for (var t = 1; t < arguments.length; t++) {\n            var i = null != arguments[t] ? arguments[t] : {};\n            t % 2 ? R(Object(i), !0).forEach((function(t) {\n                s()(e, t, i[t])\n            })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(i)) : R(Object(i)).forEach((function(t) {\n                Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(i, t))\n            }))\n        }\n        return e\n    }\n    var j = i(16),\n        B = i(12),\n        V = (d = i(69), i(82)),\n        W = d.CancelToken,\n        z = \"manual-stop\";\n    f = {\n        data: function() {\n            return {\n                btnType: 0,\n                resultHint: \"从URL下载\",\n                editProfileName: \"\",\n                editProfileType: -1,\n                fileWatcher: null,\n                inputFocus: !1,\n                subUrl: \"\",\n                downlodingUrls: {},\n                dragSelectedName: \"\",\n                qrcodeURL: \"\",\n                intervalID: null,\n                now: c()()\n            }\n        },\n        components: {\n            draggable: v.a,\n            ConfigView: n,\n            RuleView: a,\n            QRCodeView: h,\n            Hint: m.a\n        },\n        directives: {\n            focus: {\n                update: function(e, t) {\n                    t.value && e.focus()\n                }\n            }\n        },\n        computed: F(F(F({}, Object(f.mapState)({\n            clashPath: function(e) {\n                return e.app.clashPath\n            },\n            pfs: function(e) {\n                return e.app.profiles\n            },\n            isWindowShow: function(e) {\n                return e.app.isWindowShow\n            },\n            confData: function(e) {\n                return e.app.confData\n            },\n            profilesPath: function(e) {\n                return e.app.profilesPath\n            }\n        })), Object(f.mapGetters)([\"clashAxiosClient\"])), {}, {\n            profiles: {\n                get: function() {\n                    var e = this.pfs.files;\n                    return void 0 === e ? [] : e\n                },\n                set: function(e) {\n                    this.changeProfiles({\n                        profiles: e\n                    })\n                }\n            },\n            getBtnText: function() {\n                return 3 === this.btnType ? \"下载中\" : 1 === this.btnType ? \"错误!\" : 2 === this.btnType ? \"成功!\" : \"下载\"\n            },\n            getRightBtnText: function() {\n                return \"直连模式\"\n            },\n            getRightBtnClass: function() {\n                return {\n                    confirm: !0,\n                    \"confirm-right\": !0,\n                    \"btn-error\": 1 === this.btnType,\n                    \"btn-success\": 2 === this.btnType,\n                    \"btn-loading\": 3 === this.btnType\n                }\n            },\n            getBtnClass: function() {\n                return {\n                    confirm: !0,\n                    \"confirm-left\": !0,\n                    \"btn-error\": 1 === this.btnType,\n                    \"btn-success\": 2 === this.btnType,\n                    \"btn-loading\": 3 === this.btnType\n                }\n            }\n        }),\n        methods: F(F({}, Object(f.mapMutations)({\n            changeProfiles: \"CHANGE_PROFILES\",\n            changeProfilesIndex: \"CHANGE_PROFILES_INDEX\",\n            changeProfile: \"CHANGE_PROFILE\",\n            appendProfile: \"APPEND_PROFILE\",\n            deleteProfile: \"DELETE_PROFILE\"\n        })), {}, {\n            isProifleExpired: function(e) {\n                var t = e.time;\n                if (0 < (e = e.interval) && t) try {\n                    var i = j.statSync(B.join(this.profilesPath, t)).mtime;\n                    if (i) return c()(i).isBefore(c()().subtract(e, \"hours\"))\n                } catch (e) {}\n                return !1\n            },\n            parserHint: function(e) {\n                var t = e.url;\n                e = e.reg;\n                return t ? \"url (\".concat(t.slice(0, 8), \"...\").concat(t.slice(-20), \")\") : e ? \"reg (\".concat(e, \")\") : \"\"\n            },\n            matchingParserCount: function(e) {\n                var t = this.settings.profileParsersText,\n                    i = [];\n                if (t) try {\n                    var n = u.a.parse(t).parsers;\n                    i = (void 0 === n ? [] : n) || []\n                } catch (e) {}\n                var r = e.url;\n                return r ? i.filter((function(e) {\n                    var t = e.url;\n                    e = e.reg;\n                    return t ? t === r : e ? new RegExp(e).test(r) : void 0\n                })) : []\n            },\n            handleProfileRightClick: function(e, t, i) {\n                var n = this;\n                return r()(l.a.mark((function r() {\n                    var o;\n                    return l.a.wrap((function(r) {\n                        for (;;) switch (r.prev = r.next) {\n                            case 0:\n                                if (3 === e.which) return o = \"\" === (o = t.url), r.next = 5, n.$menu([{\n                                    icon: \"编辑\",\n                                    text: \"编辑\"\n                                }, {\n                                    icon: \"update\",\n                                    text: \"更新\",\n                                    hide: o\n                                }, {\n                                    text: \"显示文件夹\",\n                                    icon: \"folder\"\n                                }, {\n                                    icon: \"diff\",\n                                    text: \"Diff\",\n                                    hide: o\n                                }, {\n                                    icon: \"proxy\",\n                                    text: \"代理\"\n                                }, {\n                                    icon: \"rule\",\n                                    text: \"规则\"\n                                }, {\n                                    icon: \"copy\",\n                                    text: \"复制\"\n                                }, {\n                                    icon: \"qrcode\",\n                                    text: \"二维码\",\n                                    hide: o\n                                }, {\n                                    icon: \"parser\",\n                                    text: \"配置文件预处理\",\n                                    hide: o\n                                }, {\n                                    icon: \"js\",\n                                    text: \"运行脚本\"\n                                }, {\n                                    icon: \"setting\",\n                                    text: \"设置\"\n                                }, {\n                                    icon: \"delete\",\n                                    text: \"删除\"\n                                }], e);\n                                r.next = 7;\n                                break;\n                            case 5:\n                                -1 < (o = r.sent) && (o < 10 && [n.openProfile, n.refreshProfile, n.openProfileInFolder, n.makeDiff, n.editProfile, n.editProfileRule, n.handleCopyProfile, n.handleQrcodeOpen, n.handleParserInfoShow, n.handleRunScirpt][o](t), 10 === o && n.handleEditItem(i), 11 === o && n.handleDeleteProfile(i));\n                            case 7:\n                            case \"end\":\n                                return r.stop()\n                        }\n                    }), r)\n                })))()\n            },\n            openProfileInFolder: function(e) {\n                T.shell.showItemInFolder(B.join(this.profilesPath, e.time))\n            },\n            handleUpdateAllProfiles: function() {\n                var e, t = P(this.profiles);\n                try {\n                    for (t.s(); !(e = t.n()).done;) {\n                        var i = e.value;\n                        this.refreshProfile(i, {\n                            ignoreSelectAfterUpdated: !0\n                        })\n                    }\n                } catch (e) {\n                    t.e(e)\n                } finally {\n                    t.f()\n                }\n            },\n            handleParserInfoShow: function(e) {\n                var t = this;\n                return r()(l.a.mark((function i() {\n                    var n, r;\n                    return l.a.wrap((function(i) {\n                        for (;;) switch (i.prev = i.next) {\n                            case 0:\n                                return n = t.matchingParserCount(e), r = n.map((function(e, i) {\n                                    return \"\".concat(i + 1, \". \").concat(t.parserHint(e))\n                                })).join(\"<br />\"), i.next = 4, t.$select({\n                                    title: \"找到 \".concat(n.length, \" 个匹配解析器\"),\n                                    message: \"\".concat(r),\n                                    items: [\"编辑解析器\", \"确认\"]\n                                });\n                            case 4:\n                                0 === i.sent && t.$router.replace({\n                                    path: \"/home/setting\",\n                                    query: {\n                                        action: \"edit-parsers\"\n                                    }\n                                });\n                            case 6:\n                            case \"end\":\n                                return i.stop()\n                        }\n                    }), i)\n                })))()\n            },\n            handleRunScirpt: function(e) {\n                return r()(l.a.mark((function t() {\n                    return l.a.wrap((function(t) {\n                        for (;;) switch (t.prev = t.next) {\n                            case 0:\n                                Object(M.c)(Object(g.d)(e), M.a);\n                            case 1:\n                            case \"end\":\n                                return t.stop()\n                        }\n                    }), t)\n                })))()\n            },\n            handleQrcodeOpen: function(e) {\n                (e = e.url) && (this.qrcodeURL = e)\n            },\n            handleDragStart: function() {\n                var e = this.pfs.index;\n                (void 0 === e ? -1 : e) < 0 || (this.dragSelectedName = this.pfs.files[this.pfs.index].time)\n            },\n            handleDragEnd: function() {\n                var e, t = this;\n                \"\" !== this.dragSelectedName && (e = this.pfs.files.findIndex((function(e) {\n                    return e.time === t.dragSelectedName\n                })), this.changeProfilesIndex({\n                    index: e\n                }))\n            },\n            handleCopyProfile: function(e) {\n                var t = this;\n                return r()(l.a.mark((function i() {\n                    var n;\n                    return l.a.wrap((function(i) {\n                        for (;;) switch (i.prev = i.next) {\n                            case 0:\n                                return n = [{\n                                    name: \"名字\",\n                                    key: \"filename\",\n                                    placeholder: \"输入一个新的文件名\",\n                                    required: !0\n                                }], i.prev = 1, i.next = 4, t.$input({\n                                    title: \"复制配置文件\",\n                                    data: n\n                                });\n                            case 4:\n                                n = void 0 === (n = (n = i.sent).filename) ? \"\" : n, t.localCopy(n, B.join(t.profilesPath, e.time)), i.next = 12;\n                                break;\n                            case 10:\n                                i.prev = 10, i.t0 = i.catch(1);\n                            case 12:\n                            case \"end\":\n                                return i.stop()\n                        }\n                    }), i, null, [\n                        [1, 10]\n                    ])\n                })))()\n            },\n            handleEditItem: function(e) {\n                var t = this;\n                return r()(l.a.mark((function i() {\n                    var n, r, o, s, a;\n                    return l.a.wrap((function(i) {\n                        for (;;) switch (i.prev = i.next) {\n                            case 0:\n                                return n = F({}, t.pfs.files[e]), s = n.interval, o = void 0 === s ? 0 : s, a = n.cron, r = void 0 === a ? \"\" : a, s = [{\n                                    key: \"name\",\n                                    name: \"名字\",\n                                    required: !0,\n                                    value: n.name\n                                }, {\n                                    key: \"url\",\n                                    name: \"URL\",\n                                    value: n.url\n                                }, {\n                                    key: \"interval\",\n                                    name: \"更新间隔(小时)\",\n                                    validate: function(e) {\n                                        return /^\\d+$/.test(e) ? \"\" : \"更新间隔必须是整数\"\n                                    },\n                                    value: o\n                                }, {\n                                    key: \"cron\",\n                                    name: \"更新 Cron (UNIX)\",\n                                    value: r\n                                }], i.prev = 4, i.next = 7, t.$input({\n                                    title: \"编辑配置信息\",\n                                    data: s\n                                });\n                            case 7:\n                                a = i.sent, o = a.name, r = void 0 === o ? \"\" : o, s = a.url, o = void 0 === s ? \"\" : s, s = void 0 === (s = a.interval) ? 0 : s, a = void 0 === (a = a.cron) ? \"\" : a, n.name = r, n.url = o, n.interval = +s, n.cron = a, t.changeProfile({\n                                    index: e,\n                                    profile: n\n                                }), i.next = 25;\n                                break;\n                            case 23:\n                                i.prev = 23, i.t0 = i.catch(4);\n                            case 25:\n                            case \"end\":\n                                return i.stop()\n                        }\n                    }), i, null, [\n                        [4, 23]\n                    ])\n                })))()\n            },\n            listItemClassNames: function(e) {\n                var t = [\"list-item-\".concat(this.theme)];\n                \"\" === this.pfs.files[e].url && t.push(\"item-local\");\n                var i = this.pfs.index;\n                return e === (void 0 === i ? -1 : i) && t.push(\"item-cur-\".concat(this.theme)), t\n            },\n            handleURLConfirm: function(e) {\n                var t = this;\n                return r()(l.a.mark((function i() {\n                    return l.a.wrap((function(i) {\n                        for (;;) switch (i.prev = i.next) {\n                            case 0:\n                                if (13 === e.keyCode) return i.next = 3, t.handleDownload();\n                                i.next = 3;\n                                break;\n                            case 3:\n                            case \"end\":\n                                return i.stop()\n                        }\n                    }), i)\n                })))()\n            },\n            handleDownload: function() {\n                var e = this;\n                return r()(l.a.mark((function t() {\n                    return l.a.wrap((function(t) {\n                        for (;;) switch (t.prev = t.next) {\n                            case 0:\n                                if (\"\" === e.subUrl) return t.abrupt(\"return\");\n                                t.next = 2;\n                                break;\n                            case 2:\n                                if (3 === e.btnType) return t.abrupt(\"return\");\n                                t.next = 4;\n                                break;\n                            case 4:\n                                return t.prev = 4, e.btnType = 3, t.next = 8, e.updateConfig({\n                                    url: e.subUrl,\n                                    selectAfterUpdated: !0\n                                });\n                            case 8:\n                                t.sent ? (e.subUrl = \"\", e.btnType = 2) : e.btnType = 1, t.next = 15;\n                                break;\n                            case 12:\n                                t.prev = 12, t.t0 = t.catch(4), e.btnType = 1;\n                            case 15:\n                                setTimeout((function() {\n                                    e.btnType = 0\n                                }), 3e3);\n                            case 16:\n                            case \"end\":\n                                return t.stop()\n                        }\n                    }), t, null, [\n                        [4, 12]\n                    ])\n                })))()\n            },\n            handleImport: function() {\n                var e = this;\n                return r()(l.a.mark((function t() {\n                    var i;\n                    return l.a.wrap((function(t) {\n                        for (;;) switch (t.prev = t.next) {\n                            case 0:\n                                return t.next = 2, T.ipcRenderer.invoke(\"dialog\", \"showOpenDialogSync\", {\n                                    properties: [\"openFile\"]\n                                });\n                            case 2:\n                                (i = t.sent) && 0 < i.length && (i = i[0], e.localCopy(B.basename(i), B.resolve(i)));\n                            case 4:\n                            case \"end\":\n                                return t.stop()\n                        }\n                    }), t)\n                })))()\n            },\n            dropProfile: function(e) {\n                e.preventDefault(), e.stopPropagation();\n                var t, i = P(e.dataTransfer.files);\n                try {\n                    for (i.s(); !(t = i.n()).done;) {\n                        var n = t.value;\n                        this.localCopy(B.basename(n.path), B.resolve(n.path))\n                    }\n                } catch (e) {\n                    i.e(e)\n                } finally {\n                    i.f()\n                }\n            },\n            dragOverProfile: function(e) {\n                e.preventDefault(), e.stopPropagation()\n            },\n            editDone: function() {\n                var e = this,\n                    t = this.pfs.files.findIndex((function(t) {\n                        return t.time === e.editProfileName\n                    }));\n                t === this.pfs.index && this.switchProfile(t), this.editProfileName = \"\", this.editProfileType = -1\n            },\n            localCopy: function(e) {\n                var t, i, n, r, o = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : \"\";\n                \"\" !== e && (t = (new Date).getTime() + \".yml\", -1 < (n = (r = F({}, this.pfs)).files.findIndex((function(t) {\n                    return t.name === e && \"\" === t.url\n                }))) && n < r.files.length ? this.$alert({\n                    content: \"本地文件已存在.\",\n                    title: \"错误\"\n                }) : (this.appendProfile({\n                    profile: {\n                        url: \"\",\n                        time: t,\n                        name: e,\n                        selected: []\n                    }\n                }), i = B.join(this.clashPath, \"config.yaml\"), n = r.files, 0 <= (r = void 0 === (r = r.index) ? -1 : r) && r < n.length && (r = B.join(this.profilesPath, n[r].time), j.existsSync(r) && (i = r)), j.copyFileSync(i = \"\" !== o ? o : i, B.join(this.profilesPath, t))))\n            },\n            handleDeleteProfile: function(e) {\n                var t = this;\n                return r()(l.a.mark((function i() {\n                    var n, r, o, s, a, d, c, h, u, p;\n                    return l.a.wrap((function(i) {\n                        for (;;) switch (i.prev = i.next) {\n                            case 0:\n                                return n = t.pfs.files[e], p = n.name, n.url, i.next = 3, Object(g.g)({\n                                    type: \"warning\",\n                                    message: '您确定要删除吗 \"'.concat(p, '\"?'),\n                                    buttons: [\"是\", \"否\"]\n                                });\n                            case 3:\n                                if (0 === (p = i.sent).response) {\n                                    try {\n                                        for (r = t.pfs.files, o = (void 0 === r ? [] : r)[e].time, s = o.slice(0, -4) + \".base.yml\", a = o.slice(0, -4) + \".change.yml\", d = 0, c = [o, s, a]; d < c.length; d++) h = c[d], u = B.join(t.profilesPath, h), j.existsSync(u) && j.unlinkSync(u)\n                                    } catch (i) {}\n                                    t.deleteProfile({\n                                        index: e\n                                    }), p = t.pfs.index, e === (p = void 0 === p ? -1 : p) ? t.changeProfilesIndex({\n                                        index: -1\n                                    }) : e < p && t.changeProfilesIndex({\n                                        index: p - 1\n                                    })\n                                }\n                                case 6:\n                                case \"end\":\n                                    return i.stop()\n                        }\n                    }), i)\n                })))()\n            },\n            openProfile: function(e) {\n                T.shell.openPath(B.join(this.profilesPath, e.time))\n            },\n            switchProfile: function(e) {\n                var t = this;\n                return r()(l.a.mark((function i() {\n                    var n, r, o;\n                    return l.a.wrap((function(i) {\n                        for (;;) switch (i.prev = i.next) {\n                            case 0:\n                                if (-1 === e) return i.abrupt(\"return\");\n                                i.next = 2;\n                                break;\n                            case 2:\n                                return t.changeProfilesIndex({\n                                    index: e\n                                }), i.next = 5, t.$parent.refreshProfile();\n                            case 5:\n                                if (r = i.sent, n = r.success, r = r.message, n) {\n                                    i.next = 17;\n                                    break\n                                }\n                                return i.next = 11, Object(g.g)({\n                                    type: \"error\",\n                                    message: \"无法切换到此配置文件!\",\n                                    detail: r || \"\",\n                                    buttons: [\"OK\", \"Edit in Text Mode\"]\n                                });\n                            case 11:\n                                1 === (o = i.sent).response && t.openProfile(t.pfs.files[e]), t.changeProfilesIndex({\n                                    index: -1\n                                }), i.next = 21;\n                                break;\n                            case 17:\n                                if (void 0 !== (o = t.settings.connProfile) && o) return i.next = 21, t.clashAxiosClient.delete(\"connections\");\n                                i.next = 21;\n                                break;\n                            case 21:\n                            case \"end\":\n                                return i.stop()\n                        }\n                    }), i)\n                })))()\n            },\n            refreshProfile: function(e) {\n                var t = arguments,\n                    i = this;\n                return r()(l.a.mark((function n() {\n                    var r, o, a, d;\n                    return l.a.wrap((function(n) {\n                        for (;;) switch (n.prev = n.next) {\n                            case 0:\n                                if (a = (1 < t.length && void 0 !== t[1] ? t[1] : {}).ignoreSelectAfterUpdated, r = void 0 !== a && a, a = e.url, \"\" === (o = void 0 === a ? \"\" : a)) return n.abrupt(\"return\");\n                                n.next = 4;\n                                break;\n                            case 4:\n                                if (d = i.downlodingUrls[o]) return d(z), i.$delete(i.downlodingUrls, o), n.abrupt(\"return\");\n                                n.next = 9;\n                                break;\n                            case 9:\n                                return n.prev = 9, a = new W((function(e) {\n                                    i.downlodingUrls = F(F({}, i.downlodingUrls), {}, s()({}, o, e))\n                                })), d = void 0 !== (d = i.settings.selectAfterUpdated) && d, n.next = 14, i.updateConfig({\n                                    url: o,\n                                    cancelToken: a,\n                                    selectAfterUpdated: !r && d\n                                });\n                            case 14:\n                                n.next = 18;\n                                break;\n                            case 16:\n                                n.prev = 16, n.t0 = n.catch(9);\n                            case 18:\n                                return n.prev = 18, i.$delete(i.downlodingUrls, o), n.finish(18);\n                            case 21:\n                            case \"end\":\n                                return n.stop()\n                        }\n                    }), n, null, [\n                        [9, 16, 18, 21]\n                    ])\n                })))()\n            },\n            editProfile: function(e) {\n                this.editProfileName = e.time, this.editProfileType = 0\n            },\n            editProfileRule: function(e) {\n                this.editProfileName = e.time, this.editProfileType = 1\n            },\n            parseDomain: function(e) {\n                var t = \"local file\";\n                try {\n                    var i = new URL(e),\n                        n = i.host;\n                    return \"file:\" === i.protocol ? t : n || \"empty host\"\n                } catch (e) {}\n                return t\n            },\n            parseTime: function(e) {\n                e = e.time;\n                try {\n                    var t = j.statSync(B.join(this.profilesPath, e)).mtime;\n                    return c()(t).locale('zh-cn').from(this.now)\n                } catch (e) {\n                    return \"missing file\"\n                }\n            },\n            updateConfig: function(e) {\n                var t = this;\n                return r()(l.a.mark((function i() {\n                    var n, r, o, s, a;\n                    return l.a.wrap((function(i) {\n                        for (;;) switch (i.prev = i.next) {\n                            case 0:\n                                return n = e.url, r = e.cancelToken, a = void 0 === r ? null : r, r = void 0 !== (r = e.selectAfterUpdated) && r, i.next = 3, Object(p.a)({\n                                    url: n,\n                                    cancelToken: a\n                                }).catch((function(e) {}));\n                            case 3:\n                                if (a = i.sent, o = a.success, s = a.message, a = a.targetIndex, !o) {\n                                    i.next = 13;\n                                    break\n                                }\n                                if (r) return i.next = 11, t.switchProfile(a).catch((function(e) {}));\n                                i.next = 11;\n                                break;\n                            case 11:\n                                i.next = 14;\n                                break;\n                            case 13:\n                                s.endsWith(z) || t.$alert({\n                                    content: s\n                                });\n                            case 14:\n                                return i.abrupt(\"return\", o);\n                            case 15:\n                            case \"end\":\n                                return i.stop()\n                        }\n                    }), i)\n                })))()\n            },\n            subInfoArr: function(e) {\n                var t = void 0 === (i = e.upload) ? 0 : i,\n                    i = void 0 === (n = e.download) ? 0 : n,\n                    n = void 0 === (n = e.total) ? 0 : n;\n                e = void 0 === (e = e.expire) ? 0 : e;\n                return 0 <= t && 0 <= i && 0 < n ? (n = [Object(g.i)(t + i, 1, !1), Object(g.i)(n, 1, !1)], e ? [].concat(n, [c()(1e3 * e).format(\"YYYY-MM-DD\")]) : n) : \"\"\n            },\n            subInfoPercent: function(e) {\n                var t = void 0 === (i = e.upload) ? 0 : i,\n                    i = void 0 === (i = e.download) ? 0 : i;\n                e = void 0 === (e = e.total) ? 0 : e;\n                return 0 <= t && 0 <= i && 0 < e ? {\n                    \"clip-path\": \"inset(0 \".concat((e = (t + i) / e * 100) <= 100 ? 100 - e : 0, \"% 0 0)\")\n                } : {\n                    \"clip-path\": \"inset(0 100% 0 0)\"\n                }\n            },\n            pasteURL: function() {\n                this.inputFocus = !1, this.subUrl = T.clipboard.readText(), this.inputFocus = !0\n            },\n            makeDiff: function(e) {\n                var t = this;\n                return r()(l.a.mark((function i() {\n                    var n, r, o, s, a;\n                    return l.a.wrap((function(i) {\n                        for (;;) switch (i.prev = i.next) {\n                            case 0:\n                                return a = e.time, n = j.readFileSync(B.join(t.profilesPath, a), \"utf8\").toString(), r = B.join(t.profilesPath, a.slice(0, -4) + \".base.yml\"), o = B.join(t.profilesPath, a.slice(0, -4) + \".change.yml\"), s = j.existsSync(r) && j.existsSync(o), a = s ? [\"删除 diff 文件\", \"修改文件\"] : [\"初始化 diff 文件\"], i.next = 8, t.$select({\n                                    title: \"Diff\",\n                                    message: \"你可以对配置文件进行一些更改，然后会在你更新配置文件时为你合并它们.\",\n                                    items: a\n                                });\n                            case 8:\n                                0 === i.sent ? s ? (j.unlinkSync(r), j.unlinkSync(o)) : (j.writeFileSync(r, n), j.writeFileSync(o, n), T.shell.openPath(o)) : T.shell.openPath(o);\n                            case 10:\n                            case \"end\":\n                                return i.stop()\n                        }\n                    }), i)\n                })))()\n            },\n            setupWatcher: function() {\n                var e = this,\n                    t = V.debounce((function(t, i) {\n                        var n;\n                        !/^\\d+(?:\\.yml)$/.test(i) || -1 < (n = e.pfs.files.findIndex((function(e) {\n                            return e.time === i\n                        }))) && n === e.pfs.index && e.switchProfile(n)\n                    }), 2e3);\n                this.fileWatcher = j.watch(B.join(this.profilesPath), {}, t)\n            },\n            removeWatcher: function() {\n                this.fileWatcher && this.fileWatcher.close()\n            }\n        }),\n        beforeRouteEnter: function(e, t, i) {\n            var n;\n            i((n = r()(l.a.mark((function e(t) {\n                var i;\n                return l.a.wrap((function(e) {\n                    for (;;) switch (e.prev = e.next) {\n                        case 0:\n                            if (t.now = c()(), t.intervalID = setInterval((function() {\n                                    t.isWindowShow && (t.now = c()())\n                                }), 6e4), t.setupWatcher(), 0 === (null === (i = t.pfs.files) || void 0 === i ? void 0 : i.length)) return t.localCopy(\"config.yaml\"), e.next = 7, t.switchProfile(0);\n                            e.next = 7;\n                            break;\n                        case 7:\n                        case \"end\":\n                            return e.stop()\n                    }\n                }), e)\n            }))), function(e) {\n                return n.apply(this, arguments)\n            }))\n        },\n        beforeRouteLeave: function(e, t, i) {\n            for (var n in this.intervalID && clearInterval(this.intervalID), this.removeWatcher(), this.downlodingUrls)(0, this.downlodingUrls[n])(z);\n            i()\n        }\n    }, i(344), i(346), f = Object(o.a)(f, (function() {\n        var e = this,\n            t = e.$createElement,\n            i = e._self._c || t;\n        return i(\"div\", {\n            attrs: {\n                id: \"main-server-view\"\n            },\n            on: {\n                drop: e.dropProfile,\n                dragover: e.dragOverProfile\n            }\n        }, [e.editProfileName && 0 === e.editProfileType ? i(\"config-view\", {\n            attrs: {\n                \"clash-path\": e.clashPath,\n                \"profile-name\": e.editProfileName\n            },\n            on: {\n                cancel: function(t) {\n                    e.editProfileName = \"\", e.editProfileType = -1\n                },\n                done: e.editDone,\n                error: function(t) {\n                    e.editProfileName = \"\", e.editProfileType = -1\n                }\n            }\n        }) : e.editProfileName && 1 === e.editProfileType ? i(\"rule-view\", {\n            attrs: {\n                \"clash-path\": e.clashPath,\n                \"profile-name\": e.editProfileName\n            },\n            on: {\n                cancel: function(t) {\n                    e.editProfileName = \"\", e.editProfileType = -1\n                },\n                done: e.editDone,\n                error: function(t) {\n                    e.editProfileName = \"\", e.editProfileType = -1\n                }\n            }\n        }) : i(\"div\", {\n            staticClass: \"main\"\n        }, [i(\"div\", {\n            class: [\"card-\" + e.theme, \"remote-view\"]\n        }, [i(\"div\", {\n            staticClass: \"input-container\"\n        }, [i(\"input\", {\n            directives: [{\n                name: \"focus\",\n                rawName: \"v-focus\",\n                value: e.inputFocus,\n                expression: \"inputFocus\"\n            }, {\n                name: \"model\",\n                rawName: \"v-model\",\n                value: e.subUrl,\n                expression: \"subUrl\"\n            }],\n            attrs: {\n                spellcheck: \"false\",\n                type: \"text\",\n                placeholder: \"从URL下载\"\n            },\n            domProps: {\n                value: e.subUrl\n            },\n            on: {\n                keydown: e.handleURLConfirm,\n                input: function(t) {\n                    t.target.composing || (e.subUrl = t.target.value)\n                }\n            }\n        }), e._v(\" \"), \"\" !== e.subUrl ? i(\"svg\", {\n            staticClass: \"clear-icon clickable\",\n            attrs: {\n                xmlns: \"http://www.w3.org/2000/svg\",\n                height: \"24px\",\n                viewBox: \"0 0 24 24\",\n                width: \"24px\",\n                fill: \"#2C313C\"\n            },\n            on: {\n                click: function(t) {\n                    e.subUrl = \"\"\n                }\n            }\n        }, [i(\"path\", {\n            attrs: {\n                d: \"M0 0h24v24H0V0z\",\n                fill: \"none\"\n            }\n        }), e._v(\" \"), i(\"path\", {\n            attrs: {\n                d: \"M22 3H7c-.69 0-1.23.35-1.59.88L.37 11.45c-.22.34-.22.77 0 1.11l5.04 7.56c.36.52.9.88 1.59.88h15c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-3.7 13.3c-.39.39-1.02.39-1.41 0L14 13.41l-2.89 2.89c-.39.39-1.02.39-1.41 0-.39-.39-.39-1.02 0-1.41L12.59 12 9.7 9.11c-.39-.39-.39-1.02 0-1.41.39-.39 1.02-.39 1.41 0L14 10.59l2.89-2.89c.39-.39 1.02-.39 1.41 0 .39.39.39 1.02 0 1.41L15.41 12l2.89 2.89c.38.38.38 1.02 0 1.41z\"\n            }\n        })]) : e._e(), e._v(\" \"), i(\"svg\", {\n            staticClass: \"copy-icon\",\n            attrs: {\n                xmlns: \"http://www.w3.org/2000/svg\",\n                viewBox: \"0 0 24 24\",\n                fill: \"white\"\n            },\n            on: {\n                click: e.pasteURL\n            }\n        }, [i(\"path\", {\n            attrs: {\n                d: \"M0 0h24v24H0V0z\",\n                fill: \"none\"\n            }\n        }), e._v(\" \"), i(\"path\", {\n            attrs: {\n                d: \"M15 1H4c-1.1 0-2 .9-2 2v13c0 .55.45 1 1 1s1-.45 1-1V4c0-.55.45-1 1-1h10c.55 0 1-.45 1-1s-.45-1-1-1zm.59 4.59l4.83 4.83c.37.37.58.88.58 1.41V21c0 1.1-.9 2-2 2H7.99C6.89 23 6 22.1 6 21l.01-14c0-1.1.89-2 1.99-2h6.17c.53 0 1.04.21 1.42.59zM15 12h4.5L14 6.5V11c0 .55.45 1 1 1z\"\n            }\n        })])]), e._v(\" \"), i(\"div\", {\n            staticClass: \"btns-container\"\n        }, [i(\"div\", {\n            class: e.getBtnClass,\n            on: {\n                click: e.handleDownload\n            }\n        }, [e._v(\"\\n          \" + e._s(e.getBtnText) + \"\\n        \")]), e._v(\" \"), i(\"div\", {\n            staticClass: \"confirm confirm-right update-all-btn\",\n            on: {\n                click: e.handleUpdateAllProfiles\n            }\n        }, [e._v(\"\\n          更新全部\\n        \")]), e._v(\" \"), i(\"div\", {\n            staticClass: \"confirm confirm-right\",\n            on: {\n                click: e.handleImport\n            }\n        }, [e._v(\"导入\")])])]), e._v(\" \"), i(\"draggable\", {\n            ref: \"mixin-scroll-content\",\n            class: [\"list-view-\" + e.theme],\n            attrs: {\n                delay: 300,\n                animation: 200,\n                \"delay-on-touch-only\": !0\n            },\n            on: {\n                start: e.handleDragStart,\n                end: e.handleDragEnd\n            },\n            model: {\n                value: e.profiles,\n                callback: function(t) {\n                    e.profiles = t\n                },\n                expression: \"profiles\"\n            }\n        }, [e._l(e.profiles, (function(t, n) {\n            return i(\"div\", {\n                key: n,\n                class: [\"list-item-\" + e.theme, n === e.pfs.index ? \"item-cur-\" + e.theme : \"\"],\n                on: {\n                    click: function(t) {\n                        return e.switchProfile(n)\n                    },\n                    contextmenu: function(i) {\n                        return e.handleProfileRightClick(i, t, n)\n                    }\n                }\n            }, [i(\"div\", {\n                staticClass: \"indicator\"\n            }), e._v(\" \"), i(\"div\", {\n                staticClass: \"item-info\"\n            }, [i(\"div\", {\n                staticClass: \"item-name\"\n            }, [i(\"div\", {\n                staticClass: \"item-name-top\"\n            }, [i(\"div\", [e._v(e._s(t.name))])]), e._v(\" \"), i(\"div\", {\n                staticClass: \"item-name-bottom\",\n                attrs: {\n                    title: t.url\n                }\n            }, [e._v(\"\\n              \" + e._s(e.parseDomain(t.url)) + \"\\n              \"), i(\"span\", {\n                class: {\n                    \"item-time\": !0, \"item-expired\": e.isProifleExpired(t)\n                }\n            }, [e._v(\"\\n                (\" + e._s(e.parseTime(t)) + \")\\n              \")])]), e._v(\" \"), e.subInfoArr(t.subInfo || {}) ? i(\"div\", {\n                staticClass: \"item-subinfo\"\n            }, [i(\"div\", {\n                staticClass: \"item-subinfo-texts\"\n            }, e._l(e.subInfoArr(t.subInfo || {}), (function(t, n) {\n                return i(\"div\", {\n                    key: n\n                }, [e._v(\"\\n                  \" + e._s(t) + \"\\n                \")])\n            })), 0), e._v(\" \"), i(\"div\", {\n                staticClass: \"progress\"\n            }, [i(\"div\", {\n                staticClass: \"percent\",\n                style: e.subInfoPercent(t.subInfo || {})\n            })])]) : e._e()]), e._v(\" \"), \"\" !== t.url ? i(\"Hint\", {\n                staticClass: \"item-icon\",\n                attrs: {\n                    hint: \"更新\"\n                },\n                on: {\n                    click: function(i) {\n                        return i.stopPropagation(), e.refreshProfile(t)\n                    }\n                }\n            }, [t.url in e.downlodingUrls ? i(\"svg\", {\n                staticClass: \"rotating\",\n                attrs: {\n                    xmlns: \"http://www.w3.org/2000/svg\",\n                    height: \"24px\",\n                    viewBox: \"0 0 24 24\",\n                    width: \"24px\"\n                }\n            }, [i(\"path\", {\n                attrs: {\n                    d: \"M0 0h24v24H0V0z\",\n                    fill: \"none\"\n                }\n            }), e._v(\" \"), i(\"path\", {\n                attrs: {\n                    d: \"M14.83 4.83L12.7 2.7c-.62-.62-1.7-.18-1.7.71v.66C7.06 4.56 4 7.92 4 12c0 3.64 2.43 6.71 5.77 7.68.62.18 1.23-.32 1.23-.96v-.03c0-.43-.27-.82-.68-.94C7.82 17.03 6 14.73 6 12c0-2.97 2.16-5.43 5-5.91v1.53c0 .89 1.07 1.33 1.7.71l2.13-2.08c.4-.38.4-1.02 0-1.42zm4.84 4.93c-.16-.55-.38-1.08-.66-1.59-.31-.57-1.1-.66-1.56-.2l-.01.01c-.31.31-.38.78-.17 1.16.2.37.36.76.48 1.16.12.42.51.7.94.7h.02c.65 0 1.15-.62.96-1.24zM13 18.68v.02c0 .65.62 1.14 1.24.96.55-.16 1.08-.38 1.59-.66.57-.31.66-1.1.2-1.56l-.02-.02c-.31-.31-.78-.38-1.16-.17-.37.21-.76.37-1.16.49-.41.12-.69.51-.69.94zm4.44-2.65c.46.46 1.25.37 1.56-.2.28-.51.5-1.04.67-1.59.18-.62-.31-1.24-.96-1.24h-.02c-.44 0-.82.28-.94.7-.12.4-.28.79-.48 1.17-.21.38-.13.86.17 1.16z\"\n                }\n            })]) : i(\"svg\", {\n                attrs: {\n                    xmlns: \"http://www.w3.org/2000/svg\",\n                    height: \"24px\",\n                    viewBox: \"0 0 24 24\",\n                    width: \"24px\"\n                }\n            }, [i(\"path\", {\n                attrs: {\n                    d: \"M0 0h24v24H0V0z\",\n                    fill: \"none\"\n                }\n            }), e._v(\" \"), i(\"path\", {\n                attrs: {\n                    d: \"M17.65 6.35c-1.63-1.63-3.94-2.57-6.48-2.31-3.67.37-6.69 3.35-7.1 7.02C3.52 15.91 7.27 20 12 20c3.19 0 5.93-1.87 7.21-4.56.32-.67-.16-1.44-.9-1.44-.37 0-.72.2-.88.53-1.13 2.43-3.84 3.97-6.8 3.31-2.22-.49-4.01-2.3-4.48-4.52C5.31 9.44 8.26 6 12 6c1.66 0 3.14.69 4.22 1.78l-1.51 1.51c-.63.63-.19 1.71.7 1.71H19c.55 0 1-.45 1-1V6.41c0-.89-1.08-1.34-1.71-.71l-.64.65z\"\n                }\n            })])]) : i(\"Hint\", {\n                staticClass: \"item-icon\",\n                attrs: {\n                    hint: \"Edit\"\n                },\n                on: {\n                    click: function(i) {\n                        return i.stopPropagation(), e.openProfile(t)\n                    }\n                }\n            }, [i(\"svg\", {\n                attrs: {\n                    xmlns: \"http://www.w3.org/2000/svg\",\n                    viewBox: \"0 0 24 24\"\n                }\n            }, [i(\"path\", {\n                attrs: {\n                    d: \"M0 0h24v24H0V0z\",\n                    fill: \"none\"\n                }\n            }), e._v(\" \"), i(\"path\", {\n                attrs: {\n                    d: \"M8.7 15.9L4.8 12l3.9-3.9c.39-.39.39-1.01 0-1.4-.39-.39-1.01-.39-1.4 0l-4.59 4.59c-.39.39-.39 1.02 0 1.41l4.59 4.6c.39.39 1.01.39 1.4 0 .39-.39.39-1.01 0-1.4zm6.6 0l3.9-3.9-3.9-3.9c-.39-.39-.39-1.01 0-1.4.39-.39 1.01-.39 1.4 0l4.59 4.59c.39.39.39 1.02 0 1.41l-4.59 4.6c-.39.39-1.01.39-1.4 0-.39-.39-.39-1.01 0-1.4z\"\n                }\n            })])])], 1)])\n        })), e._v(\" \"), e._l(new Array(20), (function(e, t) {\n            return i(\"i\", {\n                key: \"hidden\" + t\n            })\n        }))], 2)], 1), e._v(\" \"), e.qrcodeURL ? i(\"QRCodeView\", {\n            attrs: {\n                url: e.qrcodeURL\n            },\n            on: {\n                hide: function(t) {\n                    e.qrcodeURL = \"\"\n                }\n            }\n        }) : e._e()], 1)\n    }), [], !1, null, \"4d08ae52\", null);\n    t.default = f.exports\n}, function(e, t, i) {\n    \"use strict\";\n    i.r(t);\n    var n = i(18),\n        r = i.n(n),\n        o = i(52),\n        s = i.n(o),\n        a = i(10),\n        l = i.n(a),\n        d = i(3),\n        c = i.n(d),\n        h = i(27),\n        u = (n = (i(82), i(131)), o = i.n(n), i(35)),\n        p = i(48),\n        g = i(19),\n        f = i(22);\n\n    function m(e, t) {\n        var i = \"undefined\" != typeof Symbol && e[Symbol.iterator] || e[\"@@iterator\"];\n        if (!i) {\n            if (Array.isArray(e) || (i = function(e, t) {\n                    if (e) {\n                        if (\"string\" == typeof e) return v(e, t);\n                        var i = Object.prototype.toString.call(e).slice(8, -1);\n                        return \"Map\" === (i = \"Object\" === i && e.constructor ? e.constructor.name : i) || \"Set\" === i ? Array.from(e) : \"Arguments\" === i || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i) ? v(e, t) : void 0\n                    }\n                }(e)) || t && e && \"number\" == typeof e.length) {\n                i && (e = i);\n                var n = 0;\n                return {\n                    s: t = function() {},\n                    n: function() {\n                        return n >= e.length ? {\n                            done: !0\n                        } : {\n                            done: !1,\n                            value: e[n++]\n                        }\n                    },\n                    e: function(e) {\n                        throw e\n                    },\n                    f: t\n                }\n            }\n            throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")\n        }\n        var r, o = !0,\n            s = !1;\n        return {\n            s: function() {\n                i = i.call(e)\n            },\n            n: function() {\n                var e = i.next();\n                return o = e.done, e\n            },\n            e: function(e) {\n                s = !0, r = e\n            },\n            f: function() {\n                try {\n                    o || null == i.return || i.return()\n                } finally {\n                    if (s) throw r\n                }\n            }\n        }\n    }\n\n    function v(e, t) {\n        (null == t || t > e.length) && (t = e.length);\n        for (var i = 0, n = new Array(t); i < t; i++) n[i] = e[i];\n        return n\n    }\n\n    function b(e, t) {\n        var i, n = Object.keys(e);\n        return Object.getOwnPropertySymbols && (i = Object.getOwnPropertySymbols(e), t && (i = i.filter((function(t) {\n            return Object.getOwnPropertyDescriptor(e, t).enumerable\n        }))), n.push.apply(n, i)), n\n    }\n\n    function _(e) {\n        for (var t = 1; t < arguments.length; t++) {\n            var i = null != arguments[t] ? arguments[t] : {};\n            t % 2 ? b(Object(i), !0).forEach((function(t) {\n                r()(e, t, i[t])\n            })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(i)) : b(Object(i)).forEach((function(t) {\n                Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(i, t))\n            }))\n        }\n        return e\n    }\n    var w = i(143),\n        y = i(12),\n        C = i(16),\n        x = (a = {\n            props: [],\n            data: function() {\n                return {\n                    speed: {\n                        up: 0,\n                        down: 0\n                    },\n                    client: null,\n                    scriptResult: \"\",\n                    intervalID: null\n                }\n            },\n            watch: {\n                clashStatus: function(e) {\n                    e === p.a.CONNECTED && (this.setupRequest(), this.updateInterval())\n                },\n                isWindowShow: function(e) {\n                    e && this.setupRequest()\n                },\n                isAppSuspend: function(e) {\n                    e || this.setupRequest()\n                },\n                \"settings.trayText\": function() {\n                    this.updateInterval()\n                },\n                \"settings.trayScriptPath\": function() {\n                    this.updateInterval()\n                },\n                \"settings.trayScriptInterval\": function() {\n                    this.updateInterval()\n                },\n                \"settings.trayScriptManualRunTime\": function() {\n                    this.updateInterval()\n                }\n            },\n            computed: _(_(_({}, Object(h.mapState)(r()({\n                confData: function(e) {\n                    return e.app.confData\n                },\n                clashStatus: function(e) {\n                    return e.app.clashStatus\n                },\n                status: function(e) {\n                    return e.app.status\n                },\n                shouldUseDarkTheme: function(e) {\n                    return e.app.shouldUseDarkTheme\n                },\n                isWindowShow: function(e) {\n                    return e.app.isWindowShow\n                },\n                isAppSuspend: function(e) {\n                    return e.app.isAppSuspend\n                },\n                isSystemProxyOn: function(e) {\n                    return e.app.isSystemProxyOn\n                },\n                mode: function(e) {\n                    return e.app.mode\n                }\n            }, \"clashStatus\", (function(e) {\n                return e.app.clashStatus\n            })))), Object(h.mapGetters)([\"resourcesPath\", \"clashWSClient\"])), {}, {\n                finalText: function() {\n                    var e = this.settings.trayText;\n                    return (void 0 === e ? \"\" : e) || this.scriptResult\n                },\n                colors: function() {\n                    return {\n                        light: [\"#fff\", \"#000\"],\n                        dark: [\"#2c2a38\", \"rgb(255, 255, 255)\"],\n                        red: [\"#f8b74f\", \"#d33928\"],\n                        2077: [\"#136377\", \"#fcec0c\"]\n                    } [this.theme]\n                }\n            }),\n            methods: {\n                iconImage: function(e) {\n                    var t = new Image(69, 69);\n                    return t.src = e, t\n                },\n                withUnit: function(e) {\n                    for (var t = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : 2, i = 2 < arguments.length && void 0 !== arguments[2] && arguments[2], n = [\"B/s\", \"KB/s\", \"MB/s\", \"GB/s\", \"TB/s\"], r = 0; ~~(e / 1024) && r < n.length;) e /= 1024, r++;\n                    return i && 999 < e && (r++, e /= 1024), {\n                        speed: 0 === r ? e : e.toFixed(t),\n                        unit: n[r]\n                    }\n                },\n                setupRequest: function() {\n                    var e = this;\n                    this.client && this.client.readyState !== WebSocket.CLOSED && this.client.readyState !== WebSocket.CONNECTING && this.client.terminate();\n                    var t = this.clashWSClient(\"traffic\"),\n                        i = this.iconImage(y.join(this.resourcesPath, \"static/imgs/logo_64_eyes.png\"));\n                    t ? (t.on(\"message\", (function(t) {\n                        e.speed = JSON.parse(t);\n                        var n, r = 0,\n                            o = void 0 === (n = (s = e.settings).trayOrders) ? [\n                                [],\n                                []\n                            ] : n,\n                            s = (t = s.trayColorTransparent, void 0 === (n = s.trayColorForeground) ? \"#fff\" : n),\n                            a = e.withUnit(e.speed.up, 0, !0),\n                            l = e.withUnit(e.speed.down, 0, !0);\n\n                        function d(e) {\n                            w.drawImage(i, e, 0, 69, 69), r += 69\n                        }(n = document.createElement(\"canvas\")).width = 2500;\n                        var c, h, u, p, g, v, b, _, w = n.getContext(\"2d\"),\n                            y = t ? s : e.colors[1],\n                            C = m(o[0]);\n                        try {\n                            for (C.s(); !(c = C.n()).done;) {\n                                var x = c.value;\n                                \"icon\" === x ? d(r) : \"traffic\" === x ? (_ = r, w.textAlign = \"right\", w.fillStyle = y, w.font = \"26px sans-serif\", w.lineWidth = 2, w.strokeStyle = y, w.fillText(\"\".concat(a.speed, \" \").concat(a.unit), _ + 145, 30), w.fillText(\"\".concat(l.speed, \" \").concat(l.unit), _ + 145, 58), w.textAlign = \"left\", w.beginPath(), w.moveTo(_ + 5, 31), w.lineTo(_ + 12, 22), w.lineTo(_ + 19, 31), e.speed.up > e.speed.down && w.fill(), w.stroke(), w.beginPath(), w.moveTo(_ + 19, 38), w.lineTo(_ + 12, 47), w.lineTo(_ + 5, 38), e.speed.up < e.speed.down && w.fill(), w.stroke(), r += 150) : \"status\" === x ? (b = r, w.font = \"26px sans-serif\", w.textAlign = \"left\", w.fillText(e.mode[0].toUpperCase(), b + 5, 58), e.isSystemProxyOn && w.fillText(\"S\", b + 5, 30), r += 30) : \"text\" === x && (v = u = void 0, p = (h = r) + 10, g = e.finalText, v = 0, Array.isArray(g) && 2 <= g.length ? (w.font = \"26px sans-serif\", u = w.measureText(g[0]).width, v = (h = w.measureText(g[1]).width) < u ? u : h, w.fillText(g[0], p, 30), w.fillText(g[1], p, 58)) : (w.font = \"40px sans-serif\", v = w.measureText(g).width, w.fillText(g, p, 50)), r += parseInt(v) + 20)\n                            }\n                        } catch (t) {\n                            C.e(t)\n                        } finally {\n                            C.f()\n                        }\n                        0 === o[0].length && d(r), o = 0 === o[0].length || 1 === o[0].length && \"icon\" === o[0][0], f.ipcRenderer.send(\"speed-update\", n.toDataURL(), o ? 60 : r, t ? \"\" : e.colors[0])\n                    })), this.client = t) : setTimeout((function() {\n                        e.setupRequest()\n                    }), 2e3)\n                },\n                updateInterval: function() {\n                    var e = this;\n                    this.intervalID && (clearInterval(this.intervalID), this.scriptResult = \"\");\n                    var t, i = this.settings,\n                        n = i.trayText,\n                        r = i.trayScriptInterval,\n                        o = i.trayScriptPath;\n                    return \"\" === (void 0 === n ? \"\" : n) && o && (t = l()(c.a.mark((function t() {\n                        var i;\n                        return c.a.wrap((function(t) {\n                            for (;;) switch (t.prev = t.next) {\n                                case 0:\n                                    return i = C.readFileSync(o, \"utf8\"), i = w(\"'use strict';\\n\".concat(i), o), t.next = 4, i.run();\n                                case 4:\n                                    e.scriptResult = t.sent;\n                                case 5:\n                                case \"end\":\n                                    return t.stop()\n                            }\n                        }), t)\n                    }))), (n = function() {\n                        return t.apply(this, arguments)\n                    })(), 0 < r && (this.intervalID = setInterval(n, 1e3 * r))), null\n                }\n            },\n            mounted: function() {\n                this.setupRequest(), this.updateInterval()\n            }\n        }, d = (i(262), i(264), i(30)), n = Object(d.a)(a, (function() {\n            var e = this,\n                t = e.$createElement;\n            return (t = e._self._c || t)(\"div\", {\n                class: [\"main-clash-traffic-view-\" + e.theme]\n            }, [t(\"div\", {\n                class: [\"grid-\" + e.theme]\n            }, [t(\"span\", {\n                staticClass: \"bold-icon\"\n            }, [e._v(\"↑\")]), e._v(\"\\n    \" + e._s(e.withUnit(e.speed.up).speed) + \"\\n    \"), t(\"span\", {\n                staticClass: \"bold-icon\"\n            }, [e._v(e._s(e.withUnit(e.speed.up).unit))])]), e._v(\" \"), t(\"div\", {\n                class: [\"grid-\" + e.theme]\n            }, [t(\"span\", {\n                staticClass: \"bold-icon\"\n            }, [e._v(\"↓\")]), e._v(\"\\n    \" + e._s(e.withUnit(e.speed.down).speed) + \"\\n    \"), t(\"span\", {\n                staticClass: \"bold-icon\"\n            }, [e._v(\"\\n      \" + e._s(e.withUnit(e.speed.down).unit) + \"\\n    \")])])])\n        }), [], !1, null, \"019ad1fb\", null).exports, a = i(61), i.n(a));\n\n    function S(e, t) {\n        var i, n = Object.keys(e);\n        return Object.getOwnPropertySymbols && (i = Object.getOwnPropertySymbols(e), t && (i = i.filter((function(t) {\n            return Object.getOwnPropertyDescriptor(e, t).enumerable\n        }))), n.push.apply(n, i)), n\n    }\n    a = {\n        props: [\"startTime\"],\n        data: function() {\n            return {\n                runningTime: \"00 : 00 : 00\",\n                intervalId: null\n            }\n        },\n        watch: {\n            isWindowShow: function(e) {\n                this.refreshTimeTicking(e)\n            }\n        },\n        computed: function(e) {\n            for (var t = 1; t < arguments.length; t++) {\n                var i = null != arguments[t] ? arguments[t] : {};\n                t % 2 ? S(Object(i), !0).forEach((function(t) {\n                    r()(e, t, i[t])\n                })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(i)) : S(Object(i)).forEach((function(t) {\n                    Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(i, t))\n                }))\n            }\n            return e\n        }({}, Object(h.mapState)({\n            isWindowShow: function(e) {\n                return e.app.isWindowShow\n            }\n        })),\n        methods: {\n            calcRunTime: function() {\n                var e = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : \"hh : mm : ss\",\n                    t = e.includes(\"hh\"),\n                    i = e.includes(\"mm\"),\n                    n = (new Date).getTime(),\n                    r = Math.floor((n - this.startTime) / 1e3);\n                n = t || i ? r % 60 : r, i = t ? Math.floor(r / 60) % 60 : Math.floor(r / 60), t = Math.floor(r / 3600), r = function(e) {\n                    return (e < 10 ? \"0\" : \"\").concat(e)\n                };\n                return e.replace(\"hh\", r(t)).replace(\"mm\", r(i)).replace(\"ss\", r(n))\n            },\n            refreshTimeTicking: function() {\n                var e = this,\n                    t = !(0 < arguments.length && void 0 !== arguments[0]) || arguments[0];\n                this.intervalId && clearInterval(this.intervalId), t && (this.intervalId = setInterval((function() {\n                    var t = e.settings.runTimeFormat;\n                    e.runningTime = e.calcRunTime(void 0 === t ? \"hh : mm : ss\" : t)\n                }), 1e3))\n            }\n        },\n        mounted: function() {\n            this.refreshTimeTicking(!0)\n        }\n    }, i(266), a = Object(d.a)(a, (function() {\n        var e = this.$createElement;\n        return (e = this._self._c || e)(\"div\", {\n            attrs: {\n                id: \"main-run-time-view\"\n            }\n        }, [e(\"div\", {\n            staticClass: \"timer-text\"\n        }, [this._v(this._s(this.runningTime))])])\n    }), [], !1, null, \"d7fc9bf6\", null).exports;\n    var k = i(38);\n\n    function L(e, t) {\n        var i, n = Object.keys(e);\n        return Object.getOwnPropertySymbols && (i = Object.getOwnPropertySymbols(e), t && (i = i.filter((function(t) {\n            return Object.getOwnPropertyDescriptor(e, t).enumerable\n        }))), n.push.apply(n, i)), n\n    }\n\n    function O(e) {\n        for (var t = 1; t < arguments.length; t++) {\n            var i = null != arguments[t] ? arguments[t] : {};\n            t % 2 ? L(Object(i), !0).forEach((function(t) {\n                r()(e, t, i[t])\n            })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(i)) : L(Object(i)).forEach((function(t) {\n                Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(i, t))\n            }))\n        }\n        return e\n    }\n\n    function E(e, t) {\n        var i, n = Object.keys(e);\n        return Object.getOwnPropertySymbols && (i = Object.getOwnPropertySymbols(e), t && (i = i.filter((function(t) {\n            return Object.getOwnPropertyDescriptor(e, t).enumerable\n        }))), n.push.apply(n, i)), n\n    }\n\n    function N(e) {\n        for (var t = 1; t < arguments.length; t++) {\n            var i = null != arguments[t] ? arguments[t] : {};\n            t % 2 ? E(Object(i), !0).forEach((function(t) {\n                r()(e, t, i[t])\n            })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(i)) : E(Object(i)).forEach((function(t) {\n                Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(i, t))\n            }))\n        }\n        return e\n    }\n    n = {\n        props: [\"startTime\"],\n        data: function() {\n            return {\n                isAllowSort: !1\n            }\n        },\n        components: {\n            ClashTrafficView: n,\n            RunTimeView: a,\n            draggable: o.a\n        },\n        watch: {},\n        computed: O(O({}, Object(h.mapGetters)([\"menuItemsWithOrder\", \"clashGotClient\"])), {}, {\n            menuTheme: function() {\n                return \"menu-\".concat(this.theme)\n            },\n            selectedIdx: function() {\n                var e = this;\n                return this.tabs.findIndex((function(t) {\n                    return t.path === e.$route.path\n                }))\n            },\n            tabs: {\n                get: function() {\n                    return this.menuItemsWithOrder\n                },\n                set: function(e) {\n                    u.a.put(k.a.MENU_ITEM_ORDER, e.map((function(e) {\n                        return e.title\n                    }))), this.setMenuItems({\n                        items: e\n                    })\n                }\n            }\n        }),\n        methods: O(O({}, Object(h.mapMutations)({\n            setMenuItems: \"SET_MENU_ITEMS\"\n        })), {}, {\n            handleRightClick: function(e) {\n                var t = this;\n                return l()(c.a.mark((function i() {\n                    return c.a.wrap((function(i) {\n                        for (;;) switch (i.prev = i.next) {\n                            case 0:\n                                return i.next = 2, t.$menu([{\n                                    text: \"重新排序\",\n                                    icon: \"reorder\"\n                                }], e);\n                            case 2:\n                                0 === i.sent && (t.isAllowSort = !0);\n                            case 4:\n                            case \"end\":\n                                return i.stop()\n                        }\n                    }), i)\n                })))()\n            },\n            itemStyle: function(e) {\n                var t = [];\n                return this.isAllowSort && t.push(\"shaking\".concat(e % 3 + 1)), this.selectedIdx === e && t.push(\"selected\"), this.selectedIdx !== e && (t.push(\"selected-none\"), t.push(\"item-none-\".concat(this.theme))), this.selectedIdx === e + 1 && t.push(\"selected-top\"), this.selectedIdx === e - 1 && t.push(\"selected-bottom\"), t\n            },\n            itemClick: function(e) {\n                e = e.path, this.$router.replace({\n                    path: e\n                }).catch((function() {}))\n            }\n        }),\n        mounted: function() {}\n    }, i(268), i(270), a = Object(d.a)(n, (function() {\n        var e = this,\n            t = e.$createElement,\n            i = e._self._c || t;\n        return i(\"div\", {\n            class: [\"main-main-menu\", \"item-none-\" + e.theme, e.isAllowSort ? \"item-draggable\" : \"\"],\n            on: {\n                contextmenu: function(t) {\n                    return e.handleRightClick.apply(null, arguments)\n                }\n            }\n        }, [i(\"clash-traffic-view\", {\n            class: [\"traffic-\" + e.theme]\n        }), e._v(\" \"), i(\"draggable\", {\n            ref: \"list\",\n            class: e.menuTheme,\n            attrs: {\n                animation: 200,\n                \"delay-on-touch-only\": !0,\n                disabled: !e.isAllowSort,\n                \"drag-class\": \"drag-item\",\n                \"ghost-class\": \"ghost-item\"\n            },\n            model: {\n                value: e.tabs,\n                callback: function(t) {\n                    e.tabs = t\n                },\n                expression: \"tabs\"\n            }\n        }, e._l(e.tabs, (function(t, n) {\n            return i(\"li\", {\n                key: n,\n                staticClass: \"item\",\n                class: e.itemStyle(n),\n                on: {\n                    click: function(i) {\n                        return e.itemClick(t)\n                    }\n                }\n            }, [i(\"div\", {\n                staticClass: \"clickable\"\n            }, [e._v(e._s(t.title))])])\n        })), 0), e._v(\" \"), i(\"run-time-view\", {\n            class: [\"running-time-\" + e.theme],\n            attrs: {\n                \"start-time\": e.startTime\n            }\n        }), e._v(\" \"), e.isAllowSort ? i(\"div\", {\n            staticClass: \"stop-btn\",\n            on: {\n                click: function(t) {\n                    e.isAllowSort = !1\n                }\n            }\n        }, [e._v(\"\\n    停止排序\\n  \")]) : e._e()], 1)\n    }), [], !1, null, \"2e582972\", null).exports;\n    o = {\n        props: [],\n        data: function() {\n            return {\n                isWinMax: !1,\n                isPinned: !1\n            }\n        },\n        computed: N(N({}, Object(h.mapState)({\n            updateDownloadProgress: function(e) {\n                return e.app.updateDownloadProgress\n            }\n        })), {}, {\n            percent: function() {\n                return this.updateDownloadProgress ? 100 * this.updateDownloadProgress : 0\n            }\n        }),\n        methods: {\n            closeApp: function() {\n                f.ipcRenderer.invoke(\"app\", \"quit\")\n            },\n            miniApp: function() {\n                f.ipcRenderer.invoke(\"window\", \"minimize\")\n            },\n            maxApp: function() {\n                var e = this.isWinMax ? \"unmaximize\" : \"maximize\";\n                f.ipcRenderer.invoke(\"window\", e)\n            },\n            pinApp: function() {\n                this.isPinned = !this.isPinned, f.ipcRenderer.invoke(\"window\", \"setAlwaysOnTop\", this.isPinned), u.a.put(k.a.IS_PIN_ENABLED, this.isPinned)\n            }\n        },\n        mounted: function() {\n            var e = this;\n            f.ipcRenderer.on(\"window-event\", (function(t, i) {\n                \"maximize\" === i ? e.isWinMax = !0 : \"unmaximize\" === i && (e.isWinMax = !1)\n            })), this.isPinned = u.a.get(k.a.IS_PIN_ENABLED) || !1, f.ipcRenderer.invoke(\"window\", \"setAlwaysOnTop\", this.isPinned)\n        }\n    }, i(272), n = Object(d.a)(o, (function() {\n        var e = this,\n            t = e.$createElement;\n        return (t = e._self._c || t)(\"div\", {\n            class: [\"main-\" + e.theme]\n        }, [t(\"div\", {\n            staticClass: \"empty\"\n        }, [t(\"div\", {\n            staticClass: \"top\"\n        }, [t(\"div\", {\n            staticClass: \"left\",\n            style: {\n                width: e.percent + \"%\"\n            }\n        }), e._v(\" \"), t(\"div\", {\n            staticClass: \"right\"\n        })]), e._v(\" \"), t(\"div\", {\n            staticClass: \"bottom\"\n        })]), e._v(\" \"), e.isWindows || e.isLinux ? t(\"div\", {\n            class: [\"close-\" + e.theme],\n            on: {\n                click: e.pinApp\n            }\n        }, [t(\"svg\", {\n            attrs: {\n                xmlns: \"http://www.w3.org/2000/svg\",\n                \"enable-background\": \"new 0 0 24 24\",\n                viewBox: \"0 0 24 24\",\n                fill: e.isPinned ? [].includes(e.theme) ? \"#d8bc66\" : \"#0C7D9D\" : [\"dark\"].includes(e.theme) ? \"white\" : \"black\",\n                width: \"14px\",\n                height: \"14px\"\n            }\n        }, [t(\"g\", [t(\"rect\", {\n            attrs: {\n                fill: \"none\",\n                height: \"24\",\n                width: \"24\"\n            }\n        }), e._v(\" \"), t(\"rect\", {\n            attrs: {\n                fill: \"none\",\n                height: \"24\",\n                width: \"24\"\n            }\n        })]), e._v(\" \"), t(\"g\", [t(\"path\", {\n            attrs: {\n                d: \"M19,12.87c0-0.47-0.34-0.85-0.8-0.98C16.93,11.54,16,10.38,16,9V4l1,0 c0.55,0,1-0.45,1-1c0-0.55-0.45-1-1-1H7C6.45,2,6,2.45,6,3c0,0.55,0.45,1,1,1l1,0v5c0,1.38-0.93,2.54-2.2,2.89 C5.34,12.02,5,12.4,5,12.87V13c0,0.55,0.45,1,1,1h4.98L11,21c0,0.55,0.45,1,1,1c0.55,0,1-0.45,1-1l-0.02-7H18c0.55,0,1-0.45,1-1 V12.87z\",\n                \"fill-rule\": \"evenodd\"\n            }\n        })])])]) : e._e(), e._v(\" \"), e.isWindows || e.isLinux ? t(\"div\", {\n            class: [\"close-\" + e.theme],\n            on: {\n                click: e.miniApp\n            }\n        }, [t(\"svg\", {\n            attrs: {\n                xmlns: \"http://www.w3.org/2000/svg\",\n                viewBox: \"0 0 24 24\",\n                fill: [\"dark\"].includes(e.theme) ? \"white\" : \"black\",\n                width: \"18px\",\n                height: \"18px\"\n            }\n        }, [t(\"path\", {\n            attrs: {\n                d: \"M0 0h24v24H0V0z\",\n                fill: \"none\"\n            }\n        }), e._v(\" \"), t(\"path\", {\n            attrs: {\n                d: \"M18 13H6c-.55 0-1-.45-1-1s.45-1 1-1h12c.55 0 1 .45 1 1s-.45 1-1 1z\"\n            }\n        })])]) : e._e(), e._v(\" \"), e.isWindows || e.isLinux ? t(\"div\", {\n            class: [\"close-\" + e.theme],\n            on: {\n                click: e.maxApp\n            }\n        }, [e.isWinMax ? t(\"svg\", {\n            attrs: {\n                xmlns: \"http://www.w3.org/2000/svg\",\n                viewBox: \"0 0 24 24\",\n                fill: [\"dark\"].includes(e.theme) ? \"white\" : \"black\",\n                width: \"18px\",\n                height: \"18px\"\n            }\n        }, [t(\"path\", {\n            attrs: {\n                d: \"M24 0v24H0V0h24z\",\n                fill: \"none\",\n                opacity: \".87\"\n            }\n        }), e._v(\" \"), t(\"path\", {\n            attrs: {\n                d: \"M8.12 19.3c.39.39 1.02.39 1.41 0L12 16.83l2.47 2.47c.39.39 1.02.39 1.41 0 .39-.39.39-1.02 0-1.41l-3.17-3.17c-.39-.39-1.02-.39-1.41 0l-3.17 3.17c-.4.38-.4 1.02-.01 1.41zm7.76-14.6c-.39-.39-1.02-.39-1.41 0L12 7.17 9.53 4.7c-.39-.39-1.02-.39-1.41 0-.39.39-.39 1.03 0 1.42l3.17 3.17c.39.39 1.02.39 1.41 0l3.17-3.17c.4-.39.4-1.03.01-1.42z\"\n            }\n        })]) : t(\"svg\", {\n            attrs: {\n                xmlns: \"http://www.w3.org/2000/svg\",\n                viewBox: \"0 0 24 24\",\n                fill: [\"dark\"].includes(e.theme) ? \"white\" : \"black\",\n                width: \"14px\",\n                height: \"14px\"\n            }\n        }, [t(\"path\", {\n            attrs: {\n                d: \"M0 0h24v24H0V0z\",\n                fill: \"none\"\n            }\n        }), e._v(\" \"), t(\"path\", {\n            attrs: {\n                d: \"M18 19H6c-.55 0-1-.45-1-1V6c0-.55.45-1 1-1h12c.55 0 1 .45 1 1v12c0 .55-.45 1-1 1zm1-16H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z\"\n            }\n        })])]) : e._e(), e._v(\" \"), e.isWindows || e.isLinux ? t(\"div\", {\n            class: [\"close-\" + e.theme],\n            on: {\n                click: e.closeApp\n            }\n        }, [t(\"svg\", {\n            attrs: {\n                xmlns: \"http://www.w3.org/2000/svg\",\n                viewBox: \"0 0 24 24\",\n                fill: [\"dark\"].includes(e.theme) ? \"white\" : \"black\",\n                width: \"18px\",\n                height: \"18px\"\n            }\n        }, [t(\"path\", {\n            attrs: {\n                d: \"M0 0h24v24H0V0z\",\n                fill: \"none\"\n            }\n        }), e._v(\" \"), t(\"path\", {\n            attrs: {\n                d: \"M18.3 5.71c-.39-.39-1.02-.39-1.41 0L12 10.59 7.11 5.7c-.39-.39-1.02-.39-1.41 0-.39.39-.39 1.02 0 1.41L10.59 12 5.7 16.89c-.39.39-.39 1.02 0 1.41.39.39 1.02.39 1.41 0L12 13.41l4.89 4.89c.39.39 1.02.39 1.41 0 .39-.39.39-1.02 0-1.41L13.41 12l4.89-4.89c.38-.38.38-1.02 0-1.4z\"\n            }\n        })])]) : e._e()])\n    }), [], !1, null, \"cb3c6880\", null).exports, o = i(77);\n    var D = i.n(o),\n        I = i(60),\n        T = (o = (i(146), i(16)), i.n(o)),\n        M = i(12),\n        P = i.n(M),\n        A = (o = i(69), i.n(o)),\n        R = (o = (i(147), i(45)), i.n(o)),\n        F = (i(274), i(124)),\n        j = i(40),\n        B = i(127),\n        V = i(42),\n        W = i(166),\n        z = i(279),\n        H = i(189);\n\n    function U() {\n        return (U = l()(c.a.mark((function e() {\n            var t, i;\n            return c.a.wrap((function(e) {\n                for (;;) switch (e.prev = e.next) {\n                    case 0:\n                        return e.next = 2, H();\n                    case 2:\n                        t = e.sent, (i = new z).use(function() {\n                            var e = l()(c.a.mark((function e(t) {\n                                var i, n;\n                                return c.a.wrap((function(e) {\n                                    for (;;) switch (e.prev = e.next) {\n                                        case 0:\n                                            /\\/pac$/.test(t.path) ? (n = V.a.state.app.settings.pacContentText, i = void 0 === n ? W.a : n, (n = V.a.getters.mixedPort) && (t.set(\"content-type\", \"application/x-ns-proxy-autoconfig\"), t.body = i.replace(/%mixed-port%/g, n))) : t.res.statusCode = 404;\n                                        case 1:\n                                        case \"end\":\n                                            return e.stop()\n                                    }\n                                }), e)\n                            })));\n                            return function(t) {\n                                return e.apply(this, arguments)\n                            }\n                        }()), i.listen(t, \"127.0.0.1\"), V.a.commit(\"SET_INNER_SERVER_PORT\", {\n                            port: t\n                        });\n                    case 7:\n                    case \"end\":\n                        return e.stop()\n                }\n            }), e)\n        })))).apply(this, arguments)\n    }\n    var K, $, q = i(163),\n        G = (o = i(157), i.n(o)),\n        Y = i(153),\n        Z = (K = l()(c.a.mark((function e(t) {\n            var i;\n            return c.a.wrap((function(e) {\n                for (;;) switch (e.prev = e.next) {\n                    case 0:\n                        return i = [\"-dns\", 0 < t.length ? t.join(\",\") : \"reset\"], e.next = 3, Object(Y.a)(i);\n                    case 3:\n                        return i = (i = e.sent).success, e.abrupt(\"return\", i);\n                    case 6:\n                    case \"end\":\n                        return e.stop()\n                }\n            }), e)\n        }))), function(e) {\n            return K.apply(this, arguments)\n        }),\n        X = ($ = l()(c.a.mark((function e() {\n            var t, i;\n            return c.a.wrap((function(e) {\n                for (;;) switch (e.prev = e.next) {\n                    case 0:\n                        return t = [\"-dns\", \"query\"], e.next = 3, Object(Y.a)(t);\n                    case 3:\n                        if (i = e.sent, t = i.success, i = i.output, !t) {\n                            e.next = 9;\n                            break\n                        }\n                        if (/.+?=(.+?);/.test(i)) return e.abrupt(\"return\", RegExp.$1.split(\",\").filter((function(e) {\n                            return G.a.isIP(e)\n                        })));\n                        e.next = 9;\n                        break;\n                    case 9:\n                        return e.abrupt(\"return\", []);\n                    case 10:\n                    case \"end\":\n                        return e.stop()\n                }\n            }), e)\n        }))), function() {\n            return $.apply(this, arguments)\n        }),\n        Q = i(168);\n\n    function J(e, t) {\n        var i = \"undefined\" != typeof Symbol && e[Symbol.iterator] || e[\"@@iterator\"];\n        if (!i) {\n            if (Array.isArray(e) || (i = function(e, t) {\n                    if (e) {\n                        if (\"string\" == typeof e) return ee(e, t);\n                        var i = Object.prototype.toString.call(e).slice(8, -1);\n                        return \"Map\" === (i = \"Object\" === i && e.constructor ? e.constructor.name : i) || \"Set\" === i ? Array.from(e) : \"Arguments\" === i || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i) ? ee(e, t) : void 0\n                    }\n                }(e)) || t && e && \"number\" == typeof e.length) {\n                i && (e = i);\n                var n = 0;\n                return {\n                    s: t = function() {},\n                    n: function() {\n                        return n >= e.length ? {\n                            done: !0\n                        } : {\n                            done: !1,\n                            value: e[n++]\n                        }\n                    },\n                    e: function(e) {\n                        throw e\n                    },\n                    f: t\n                }\n            }\n            throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")\n        }\n        var r, o = !0,\n            s = !1;\n        return {\n            s: function() {\n                i = i.call(e)\n            },\n            n: function() {\n                var e = i.next();\n                return o = e.done, e\n            },\n            e: function(e) {\n                s = !0, r = e\n            },\n            f: function() {\n                try {\n                    o || null == i.return || i.return()\n                } finally {\n                    if (s) throw r\n                }\n            }\n        }\n    }\n\n    function ee(e, t) {\n        (null == t || t > e.length) && (t = e.length);\n        for (var i = 0, n = new Array(t); i < t; i++) n[i] = e[i];\n        return n\n    }\n\n    function te(e, t) {\n        var i, n = Object.keys(e);\n        return Object.getOwnPropertySymbols && (i = Object.getOwnPropertySymbols(e), t && (i = i.filter((function(t) {\n            return Object.getOwnPropertyDescriptor(e, t).enumerable\n        }))), n.push.apply(n, i)), n\n    }\n\n    function ie(e) {\n        for (var t = 1; t < arguments.length; t++) {\n            var i = null != arguments[t] ? arguments[t] : {};\n            t % 2 ? te(Object(i), !0).forEach((function(t) {\n                r()(e, t, i[t])\n            })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(i)) : te(Object(i)).forEach((function(t) {\n                Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(i, t))\n            }))\n        }\n        return e\n    }\n    i(82), i(175);\n    var ne = i(143),\n        re = i(280),\n        oe = i(189),\n        se = i(281),\n        ae = (o = i(190)(\"./service_\".concat(process.platform))).statusService,\n        le = o.status;\n    I.transports.console.format = function(e) {\n        return e.data\n    }, I.transports.file.format = function(e) {\n        return 'time=\"'.concat(e.date, '\" level=').concat(e.level, ' msg=\"').concat(e.data, '\"')\n    };\n    var de, ce;\n    h = {\n        name: \"landing-page\",\n        components: {\n            MainMenu: a,\n            StatusBar: n\n        },\n        data: function() {\n            return {\n                clash: null,\n                userPath: \"\",\n                clashRestfulPort: null,\n                clashRestfulSecret: \"\",\n                newVersionInfo: {},\n                shwoError: !1,\n                showStartup: !1,\n                portableMode: !1,\n                startTime: null,\n                tun2socks: null,\n                pkgDownloadProgress: 0,\n                networkInterfaces: [],\n                configFileWatcher: null,\n                profileUpdateFailed: {},\n                userDNS: null,\n                shortcuts: {}\n            }\n        },\n        watch: {\n            $route: function(e) {\n                void 0 !== (e = e.path) && this.setCurrentRoutePath({\n                    path: e\n                })\n            },\n            mixedPort: function() {\n                I.info(\"mixed-port changed\"), this.resetSystemProxySettings()\n            },\n            controllerPort: function() {\n                I.info(\"external controller port changed\")\n            },\n            finalInterfaceName: function(e) {\n                I.info(\"new outbound interface: \".concat(e)), this.refreshProfile()\n            },\n            clashStatus: (ce = l()(c.a.mark((function e(t) {\n                return c.a.wrap((function(e) {\n                    for (;;) switch (e.prev = e.next) {\n                        case 0:\n                            if (I.info(\"clash status change to [\".concat(t === p.a.CONNECTED ? \"connected\" : \"disconnected\", \"]\")), f.ipcRenderer.send(\"clash-core-status-change\", t === p.a.CONNECTED ? 0 : 1), t === p.a.CONNECTED) return this.setIsLaunching({\n                                isLaunching: !1\n                            }), e.next = 6, this.refreshProfile().catch((function(e) {}));\n                            e.next = 7;\n                            break;\n                        case 6:\n                            this.addProfileRefreshTimes({\n                                times: 1\n                            });\n                        case 7:\n                        case \"end\":\n                            return e.stop()\n                    }\n                }), e, this)\n            }))), function(e) {\n                return ce.apply(this, arguments)\n            }),\n            clashAxiosClient: function(e) {\n                var t = this;\n                I.info(\"clash axios client changed\"), e.interceptors.request.use((function(e) {\n                    return t.addClashAxiosFlyingRequestCount({\n                        count: 1\n                    }), e\n                }), (function(e) {\n                    return Promise.reject(e)\n                })), e.interceptors.response.use((function(e) {\n                    return t.addClashAxiosFlyingRequestCount({\n                        count: -1\n                    }), e\n                }), (function(e) {\n                    return t.addClashAxiosFlyingRequestCount({\n                        count: -1\n                    }), Promise.reject(e)\n                }))\n            },\n            status: {\n                immediate: !0,\n                handler: function(e) {\n                    this.updateTrayIcon(), f.ipcRenderer.send(\"system-proxy-changed\", e === p.b.SYSTEM_PROXY)\n                }\n            },\n            \"settings.hideTrayIcon\": {\n                immediate: !0,\n                handler: function(e) {\n                    var t = this;\n                    return l()(c.a.mark((function i() {\n                        return c.a.wrap((function(i) {\n                            for (;;) switch (i.prev = i.next) {\n                                case 0:\n                                    return i.next = 2, f.ipcRenderer.invoke(\"tray-create-destroy\", e ? \"destroy\" : \"create\");\n                                case 2:\n                                    t.updateTrayIcon();\n                                case 3:\n                                case \"end\":\n                                    return i.stop()\n                            }\n                        }), i)\n                    })))()\n                }\n            },\n            \"settings.iconDefault\": function(e) {\n                this.updateTrayIcon()\n            },\n            \"settings.iconSystemProxy\": function(e) {\n                this.updateTrayIcon()\n            },\n            \"settings.fontFamily\": function(e) {\n                this.setFont(e)\n            },\n            \"settings.shortcutSystemProxy\": function(e, t) {\n                var i = this;\n                this.rebindShortcut(e, t, l()(c.a.mark((function e() {\n                    var t;\n                    return c.a.wrap((function(e) {\n                        for (;;) switch (e.prev = e.next) {\n                            case 0:\n                                return t = !i.isSystemProxyOn, e.next = 3, i.$setSystemProxy(t, i.confData);\n                            case 3:\n                                if (!e.sent) {\n                                    e.next = 5;\n                                    break\n                                }\n                                i.setIsSystemProxyOn({\n                                    isOn: t\n                                });\n                            case 5:\n                            case \"end\":\n                                return e.stop()\n                        }\n                    }), e)\n                }))))\n            },\n            \"settings.shortcutTun\": function(e, t) {\n                var i = this;\n                this.rebindShortcut(e, t, l()(c.a.mark((function e() {\n                    var t;\n                    return c.a.wrap((function(e) {\n                        for (;;) switch (e.prev = e.next) {\n                            case 0:\n                                t = !i.isTunEnable, i.chagneIsTunEnable({\n                                    isTun: t\n                                }), i.refreshProfile(), Object(j.h)(\"Shortcut\", \"TUN Mode: \".concat(t ? \"On\" : \"Off\"));\n                            case 4:\n                            case \"end\":\n                                return e.stop()\n                        }\n                    }), e)\n                }))))\n            },\n            \"settings.shortcutMixin\": function(e, t) {\n                var i = this;\n                this.rebindShortcut(e, t, (function() {\n                    var e = !i.isMixinEnable;\n                    i.changeIsMixinEnable({\n                        isMixin: e\n                    }), i.refreshProfile(), Object(j.h)(\"Shortcut\", \"Mixin: \".concat(e ? \"On\" : \"Off\"))\n                }))\n            },\n            \"settings.shortcutGlobalMode\": function(e, t) {\n                var i = this;\n                this.rebindShortcut(e, t, l()(c.a.mark((function e() {\n                    return c.a.wrap((function(e) {\n                        for (;;) switch (e.prev = e.next) {\n                            case 0:\n                                return e.next = 2, i.switchMode(\"global\");\n                            case 2:\n                            case \"end\":\n                                return e.stop()\n                        }\n                    }), e)\n                }))))\n            },\n            \"settings.shortcutRuleMode\": function(e, t) {\n                var i = this;\n                this.rebindShortcut(e, t, l()(c.a.mark((function e() {\n                    return c.a.wrap((function(e) {\n                        for (;;) switch (e.prev = e.next) {\n                            case 0:\n                                return e.next = 2, i.switchMode(\"rule\");\n                            case 2:\n                            case \"end\":\n                                return e.stop()\n                        }\n                    }), e)\n                }))))\n            },\n            \"settings.shortcutDirectMode\": function(e, t) {\n                var i = this;\n                this.rebindShortcut(e, t, l()(c.a.mark((function e() {\n                    return c.a.wrap((function(e) {\n                        for (;;) switch (e.prev = e.next) {\n                            case 0:\n                                return e.next = 2, i.switchMode(\"direct\");\n                            case 2:\n                            case \"end\":\n                                return e.stop()\n                        }\n                    }), e)\n                }))))\n            },\n            \"settings.shortcutScriptMode\": function(e, t) {\n                var i = this;\n                this.rebindShortcut(e, t, l()(c.a.mark((function e() {\n                    return c.a.wrap((function(e) {\n                        for (;;) switch (e.prev = e.next) {\n                            case 0:\n                                return e.next = 2, i.switchMode(\"script\");\n                            case 2:\n                            case \"end\":\n                                return e.stop()\n                        }\n                    }), e)\n                }))))\n            },\n            \"settings.shortcutRunTrayScript\": function(e, t) {\n                this.rebindShortcut(e, t, this.runTrayScript)\n            },\n            \"settings.shortcutShowHideDashboard\": function(e, t) {\n                this.rebindShortcut(e, t, (function() {\n                    f.ipcRenderer.invoke(\"window-control\", \"show-or-hide\")\n                }))\n            },\n            \"settings.systemProxyTypeIndex\": function() {\n                this.resetSystemProxySettings()\n            },\n            \"settings.pacContentText\": function() {\n                this.resetSystemProxySettings()\n            },\n            \"settings.bypassText\": function() {\n                this.resetSystemProxySettings()\n            },\n            \"settings.specifyHttpProxyProtocol\": function() {\n                this.resetSystemProxySettings()\n            },\n            \"settings.staticSystemProxyHost\": function() {\n                this.resetSystemProxySettings()\n            },\n            \"settings.enableDHCPServer\": function(e) {\n                e ? this.setMenuItems({\n                    items: [].concat(s()(this.menuItems), [{\n                        title: \"Router\",\n                        path: \"/home/router\"\n                    }])\n                }) : this.setMenuItems({\n                    items: this.menuItems.filter((function(e) {\n                        return \"Router\" !== e.title\n                    }))\n                })\n            },\n            isMixinEnable: function(e) {\n                this.refreshProfile(), f.ipcRenderer.send(\"mixin-changed\", e)\n            },\n            isTunEnable: function(e) {\n                this.refreshProfile(), f.ipcRenderer.send(\"tun-changed\", e)\n            },\n            tunSettings: function(e) {\n                this.refreshProfile()\n            },\n            isAppSuspend: function(e) {\n                e || (this.tun2socks && (I.info(\"system resume, restart tun2socks\"), this.killSpawned(this.tun2socks), this.tun2socks = null, this.spawnTun2socks()), this.refreshProfile().then((function(e) {})).catch((function(e) {})))\n            },\n            innerServerPort: function(e) {\n                console.log(\"inner port:\", e), this.resetSystemProxySettings()\n            },\n            mode: {\n                handler: (de = l()(c.a.mark((function e(t) {\n                    var i, n;\n                    return c.a.wrap((function(e) {\n                        for (;;) switch (e.prev = e.next) {\n                            case 0:\n                                if (f.ipcRenderer.send(\"mode-changed\", t), void 0 !== (i = this.settings.connMode) && i) return e.next = 5, this.clashAxiosClient.delete(\"connections\");\n                                e.next = 5;\n                                break;\n                            case 5:\n                                n = this.profiles, i = void 0 === (i = n.files) ? [] : i, 0 <= (n = void 0 === (n = n.index) ? -1 : n) && i.length > n && this.changeProfile({\n                                    index: n,\n                                    profile: ie(ie({}, i[n]), {}, {\n                                        mode: t\n                                    })\n                                });\n                            case 7:\n                            case \"end\":\n                                return e.stop()\n                        }\n                    }), e, this)\n                }))), function(e) {\n                    return de.apply(this, arguments)\n                }),\n                immediate: !0\n            }\n        },\n        computed: ie(ie(ie({}, Object(h.mapState)({\n            devMode: function(e) {\n                return e.app.isDevMode\n            },\n            profiles: function(e) {\n                return e.app.profiles\n            },\n            clashPath: function(e) {\n                return e.app.clashPath\n            },\n            clashStatus: function(e) {\n                return e.app.clashStatus\n            },\n            confData: function(e) {\n                return e.app.confData\n            },\n            profilesPath: function(e) {\n                return e.app.profilesPath\n            },\n            isMixinEnable: function(e) {\n                return e.app.isMixinEnable\n            },\n            isTunEnable: function(e) {\n                return e.app.isTunEnable\n            },\n            status: function(e) {\n                return e.app.status\n            },\n            clashAxiosFlyingRequestCount: function(e) {\n                return e.app.clashAxiosFlyingRequestCount\n            },\n            logFilePath: function(e) {\n                return e.app.logFilePath\n            },\n            shouldUseDarkTheme: function(e) {\n                return e.app.shouldUseDarkTheme\n            },\n            detectedInterfaceName: function(e) {\n                return e.app.detectedInterfaceName\n            },\n            isAppSuspend: function(e) {\n                return e.app.isAppSuspend\n            },\n            innerServerPort: function(e) {\n                return e.app.innerServerPort\n            },\n            isLocalMode: function(e) {\n                return e.app.isLocalMode\n            },\n            isWindowShow: function(e) {\n                return e.app.isWindowShow\n            },\n            menuItems: function(e) {\n                return e.app.menuItems\n            },\n            isSystemProxyOn: function(e) {\n                return e.app.isSystemProxyOn\n            },\n            isSubViewShow: function(e) {\n                return e.app.isSubViewShow\n            },\n            currentRoutePath: function(e) {\n                return e.app.currentRoutePath\n            },\n            mode: function(e) {\n                return e.app.mode\n            },\n            isSilentUpgraded: function(e) {\n                return e.app.isSilentUpgraded\n            },\n            tunSettings: function(e) {\n                return e.app.tunSettings\n            }\n        })), Object(h.mapGetters)([\"resourcesPath\", \"filesPath\", \"mixedPort\", \"controllerPort\", \"secret\", \"clashAxiosClient\", \"clashGotClient\"])), {}, {\n            themeClass: function() {\n                return \"theme-\".concat(this.theme)\n            },\n            finalInterfaceName: function() {\n                var e = this.settings.interfaceName;\n                return (void 0 === e ? \"\" : e) || this.detectedInterfaceName\n            },\n            statusHint: function() {\n                return 0 < this.pkgDownloadProgress && this.pkgDownloadProgress < 1 ? \"Download progress: \".concat((100 * this.pkgDownloadProgress).toFixed(2), \"%\") : this.clashStatus === p.a.CONNECTED ? \"已连接\" : this.clashStatus === p.a.DISCONNECTED ? \"未连接\" : void 0\n            },\n            statusIcon: function() {\n                return {\n                    \"clash-status-icon\": !0,\n                    \"clash-running\": this.clashStatus === p.a.CONNECTED,\n                    \"clash-stopped\": this.clashStatus === p.a.DISCONNECTED\n                }\n            }\n        }),\n        methods: ie(ie(ie({}, Object(h.mapMutations)({\n            setIsDevMode: \"SET_IS_DEV_MODE\",\n            setConfData: \"SET_CONF_DATA\",\n            changeProfile: \"CHANGE_PROFILE\",\n            changeProfileIndex: \"CHANGE_PROFILES_INDEX\",\n            setClashPath: \"SET_CLASH_PATH\",\n            setClashStatus: \"SET_CLASH_STATUS\",\n            loadProfiles: \"LOAD_PROFILES\",\n            setProfilesPath: \"SET_PROFILES_PATH\",\n            setLogFilePath: \"SET_LOG_FILE_PATH\",\n            changeIsMixinEnable: \"CHANGE_IS_MIXIN_ENABLE\",\n            chagneIsTunEnable: \"CHANGE_IS_TUN_ENABLE\",\n            setExePath: \"SET_EXE_PATH\",\n            appendError: \"APPEND_ERROR\",\n            addClashAxiosFlyingRequestCount: \"ADD_AXIOS_FLYING_REQUEST_COUNT\",\n            setSettingsObject: \"SET_SETTINGS_OBJECT\",\n            setShouldUseDarkTheme: \"SET_SHOULD_USE_DARK_THEME\",\n            setDetectedInterfaceName: \"SET_DETECTED_INTERFACE_NAME\",\n            setIsWindowShow: \"SET_IS_WINDOW_SHOW\",\n            setIsAppSuspend: \"SET_IS_APP_SUSPEND\",\n            setIsLocalMode: \"SET_IS_LOCAL_MODE\",\n            setIsLaunching: \"SET_IS_LAUNCHING\",\n            setMenuItems: \"SET_MENU_ITEMS\",\n            setIsSystemProxyOn: \"SET_IS_SYSTEM_PROXY_ON\",\n            setCurrentRoutePath: \"SET_CURRENT_ROUTE_PATH\",\n            addProfileRefreshTimes: \"ADD_PROFILE_REFRESH_TIMES\",\n            setCurrentProfilePayload: \"SET_CURRENT_PROFILE_PAYLOAD\",\n            setIsSilentUpgraded: \"SET_IS_SILENT_UPGRADED\"\n        })), Object(h.mapActions)([\"setMode\"])), {}, {\n            runTrayScript: function() {\n                this.settings.trayScriptManualRunTime = (new Date).getTime()\n            },\n            resetSystemProxySettings: function() {\n                var e = this;\n                return l()(c.a.mark((function t() {\n                    return c.a.wrap((function(t) {\n                        for (;;) switch (t.prev = t.next) {\n                            case 0:\n                                if (e.isSystemProxyOn) return t.next = 3, e.$setSystemProxy(!0, e.confData);\n                                t.next = 3;\n                                break;\n                            case 3:\n                            case \"end\":\n                                return t.stop()\n                        }\n                    }), t)\n                })))()\n            },\n            updateTrayIcon: function() {\n                Object(g.j)() && f.ipcRenderer.send(\"status-changed\", this.$getTrayIcon(this.status === p.b.SYSTEM_PROXY ? 1 : 0))\n            },\n            setFont: function(e) {\n                document.body.style.fontFamily = e || '\"Microsoft Yahei\", \"PingFang SC\", \"system-ui\", 微软雅黑'\n            },\n            refreshProfile: function() {\n                var e = this;\n                return l()(c.a.mark((function t() {\n                    var n, r, o, a, d, h, u, p, f, m, v, b, _, w, y, C, x, S, k, L, O, E, N, M, A, F, B, V, W, z, H, U, K, $, q;\n                    return c.a.wrap((function(t) {\n                        for (;;) switch (t.prev = t.next) {\n                            case 0:\n                                if (n = !1, r = null, a = e.profiles.index, d = !1, !(-1 < (a = void 0 === a ? -1 : a))) {\n                                    t.next = 86;\n                                    break\n                                }\n                                if (I.info(\"restore at index: \".concat(a)), h = e.profiles.files[a], o = P.a.join(e.profilesPath, h.time), t.prev = 9, null === (u = R.a.parse(T.a.readFileSync(o, \"utf8\"), {\n                                        prettyErrors: !0\n                                    }))) throw new Error(\"this profile could not be parsed!\");\n                                t.next = 13;\n                                break;\n                            case 13:\n                                if (y = e.settings, _ = y.mixinType, w = void 0 === _ ? 0 : _, p = y.mixinText, f = y.mixinCode, m = u, e.isTunEnable && (m = ie(ie({}, m), Object(j.e)(e.tunSettings))), !e.isMixinEnable) {\n                                    t.next = 29;\n                                    break\n                                }\n                                t.t0 = w, t.next = 0 === t.t0 ? 20 : 1 === t.t0 ? 22 : 29;\n                                break;\n                            case 20:\n                                if (p) try {\n                                    v = R.a.parse(p), b = v.mixin, m = ie(ie({}, m), b)\n                                } catch (t) {}\n                                return t.abrupt(\"break\", 29);\n                            case 22:\n                                if (f) return _ = ne(f), y = h.url, w = void 0 === y ? \"\" : y, y = h.name, t.next = 27, _.parse({\n                                    content: m,\n                                    url: w,\n                                    name: y\n                                }, {\n                                    axios: i(69),\n                                    yaml: i(45),\n                                    notify: function(e) {\n                                        var t = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : \"\",\n                                            i = !(2 < arguments.length && void 0 !== arguments[2]) || arguments[2];\n                                        Object(j.h)(e, t, i)\n                                    }\n                                });\n                                t.next = 28;\n                                break;\n                            case 27:\n                                m = t.sent;\n                            case 28:\n                                return t.abrupt(\"break\", 29);\n                            case 29:\n                                if (E = (L = m).dns, C = void 0 === E ? {} : E, x = L[\"interface-name\"], O = L.tun, N = void 0 === O ? {} : O, M = C.enable, S = void 0 !== M && M, k = C.listen, E = N.enable, L = void 0 !== E && E, O = N[\"macOS-auto-detect-interface\"], M = void 0 !== O && O, E = N[\"auto-detect-interface\"], O = void 0 !== E && E, E = void 0 === (E = N[\"dns-hijack\"]) ? [] : E, N = N.stack, Object(g.h)() || !L || O || M) {\n                                    t.next = 40;\n                                    break\n                                }\n                                if (x) {\n                                    t.next = 40;\n                                    break\n                                }\n                                if (e.detectInterfaceName(), \"\" === e.finalInterfaceName) {\n                                    t.next = 39;\n                                    break\n                                }\n                                m = ie(ie({}, m), {}, {\n                                    \"interface-name\": e.finalInterfaceName\n                                }), t.next = 40;\n                                break;\n                            case 39:\n                                return t.abrupt(\"return\", {\n                                    success: !1,\n                                    message: \"启用 TUN 模式但此 YAML 中没有接口名称\"\n                                });\n                            case 40:\n                                if (!Object(g.j)()) {\n                                    t.next = 57;\n                                    break\n                                }\n                                if (L) {\n                                    t.next = 57;\n                                    break\n                                }\n                                M = !0;\n                                try {\n                                    M = D.a.execSync(\"netsh 界面 显示界面\", {\n                                        windowsHide: !0\n                                    }).toString().includes(\"cfw-tap\")\n                                } catch (t) {}\n                                if (!(M && C && S && k)) {\n                                    t.next = 57;\n                                    break\n                                }\n                                if (B = k.split(\":\")[0].trim(), F = k.split(\":\")[1].trim(), ![\"\", \"0.0.0.0\"].includes(B) || \"53\" !== F) {\n                                    t.next = 57;\n                                    break\n                                }\n                                if (d = !0, x || O) {\n                                    t.next = 57;\n                                    break\n                                }\n                                if (e.detectInterfaceName(), \"\" === e.finalInterfaceName) {\n                                    t.next = 56;\n                                    break\n                                }\n                                m = ie(ie({}, m), {}, {\n                                    \"interface-name\": e.finalInterfaceName\n                                }), t.next = 57;\n                                break;\n                            case 56:\n                                return t.abrupt(\"return\", {\n                                    success: !1,\n                                    message: \"TAP mode enable but no interface-name in this YAML\"\n                                });\n                            case 57:\n                                return B = (A = m)[\"proxy-providers\"], F = A[\"rule-providers\"], A = 0 < Object.keys(null != B ? B : {}).length || 0 < Object.keys(null != F ? F : {}).length, B = e.confData, F = B[\"log-level\"], B = B.ipv6, t.next = 62, e.clashAxiosClient.put(\"/configs\", {\n                                    payload: R.a.stringify(ie(ie({}, m), {}, {\n                                        ipv6: B,\n                                        \"log-level\": F\n                                    }))\n                                }, {\n                                    validateStatus: function() {\n                                        return !0\n                                    },\n                                    timeout: A ? 0 : 1e4\n                                });\n                            case 62:\n                                if (K = t.sent, U = K.status, z = K.data, n = 204 === U, K = z.message, r = K || \"Switching profile failed with status: \".concat(U), n ? (e.setCurrentProfilePayload({\n                                        payload: m\n                                    }), A ? e.menuItems.find((function(e) {\n                                        return \"提供\" === e.title\n                                    })) || e.setMenuItems({\n                                        items: [].concat(s()(e.menuItems), [{\n                                            title: \"提供\",\n                                            path: \"/home/provider\"\n                                        }])\n                                    }) : e.setMenuItems({\n                                        items: e.menuItems.filter((function(e) {\n                                            return \"提供\" !== e.title\n                                        }))\n                                    })) : e.setCurrentProfilePayload({\n                                        payload: {}\n                                    }), n)\n                                    if (L) {\n                                        if (0 < E.length) try {\n                                            Z(E)\n                                        } catch (t) {}\n                                        Object(g.j)() && \"system\" === N && (V = 0, W = setInterval(l()(c.a.mark((function e() {\n                                            return c.a.wrap((function(e) {\n                                                for (;;) switch (e.prev = e.next) {\n                                                    case 0:\n                                                        return e.next = 2, oe({\n                                                            port: 7777\n                                                        });\n                                                    case 2:\n                                                        7777 !== e.sent && D.a.exec(\"ipconfig /renew\", {\n                                                            windowsHide: !0\n                                                        }), 4 === V && clearInterval(W), V += 1;\n                                                    case 6:\n                                                    case \"end\":\n                                                        return e.stop()\n                                                }\n                                            }), e)\n                                        }))), 2e3))\n                                    } else if (null !== e.userDNS) try {\n                                    Z(e.userDNS)\n                                } catch (t) {}\n                                t.next = 79;\n                                break;\n                            case 72:\n                                t.prev = 72, t.t1 = t.catch(9), I.warn(\"fail to restore last profile with error: \".concat(t.t1)), z = \"\", (K = t.t1.linePos) && (H = K.start) && (U = H.line, K = H.col, z = \", on line: \".concat(U, \", at column: \").concat(K)), r = \"Error: \".concat(t.t1.message).concat(z);\n                            case 79:\n                                if ($ = h.selected, q = h.mode, n && $) return I.info(\"restore proxy settings\"), t.next = 84, Promise.allSettled($.map((function(t) {\n                                    var i = t.name;\n                                    t = t.now;\n                                    return e.clashAxiosClient.put(\"/proxies/\" + encodeURIComponent(i), {\n                                        name: t\n                                    })\n                                })));\n                                t.next = 85;\n                                break;\n                            case 84:\n                                t.sent.forEach((function(e, t) {\n                                    var i = e.status;\n                                    e = e.reason;\n                                    \"rejected\" === i && I.info(\"恢复代理组 \".concat($[t].name, \" to \").concat($[t].now, \" failed with reason: \").concat(e))\n                                }));\n                            case 85:\n                                n && q && e.switchMode(q, !1);\n                            case 86:\n                                return d ? e.spawnTun2socks() : (e.killSpawned(e.tun2socks), e.tun2socks = null), t.abrupt(\"return\", {\n                                    success: n,\n                                    message: r\n                                });\n                            case 88:\n                            case \"end\":\n                                return t.stop()\n                        }\n                    }), t, null, [\n                        [9, 72]\n                    ])\n                })))()\n            },\n            switchMode: function(e) {\n                var t = this;\n                return l()(c.a.mark((function i() {\n                    return c.a.wrap((function(i) {\n                        for (;;) switch (i.prev = i.next) {\n                            case 0:\n                                return i.next = 2, t.setMode({\n                                    mode: e\n                                });\n                            case 2:\n                            case \"end\":\n                                return i.stop()\n                        }\n                    }), i)\n                })))()\n            },\n            showLogsFolder: function() {\n                var e = 0 < arguments.length && void 0 !== arguments[0] && arguments[0];\n                this.clashPath && /\\.log$/.test(this.logFilePath) && (e ? f.shell.openPath(P.a.join(this.logFilePath, \"..\")) : f.shell.showItemInFolder(this.logFilePath))\n            },\n            open: function(e) {\n                f.shell.openExternal(e)\n            },\n            killClashCore: function() {\n                var e = this;\n                return l()(c.a.mark((function t() {\n                    return c.a.wrap((function(t) {\n                        for (;;) switch (t.prev = t.next) {\n                            case 0:\n                                if (e.killSpawned(e.clash), e.clash = null, u.a.get(k.a.IS_LIGHTWEIGHT_MODE_CLOSE)) {\n                                    t.next = 6;\n                                    break\n                                }\n                                return t.next = 6, A.a.get(\"http://127.0.0.1:53000/stop\", {\n                                    timeout: 1e3\n                                }).catch((function(e) {}));\n                            case 6:\n                            case \"end\":\n                                return t.stop()\n                        }\n                    }), t)\n                })))()\n            },\n            handlerRestartClash: function() {\n                var e = this;\n                return l()(c.a.mark((function t() {\n                    return c.a.wrap((function(t) {\n                        for (;;) switch (t.prev = t.next) {\n                            case 0:\n                                return t.next = 2, e.killClashCore().catch((function(e) {}));\n                            case 2:\n                                return e.setClashStatus({\n                                    status: p.a.DISCONNECTED\n                                }), e.shwoError = !1, t.next = 6, e.spawnClash().catch((function(e) {}));\n                            case 6:\n                                Object(g.j)() && e.clashAxiosClient.put(\"/configs\", {\n                                    payload: R.a.stringify({\n                                        tun: {\n                                            enable: !0,\n                                            stack: \"gvisor\",\n                                            \"auto-route\": !1,\n                                            \"auto-detect-interface\": !1\n                                        }\n                                    })\n                                });\n                            case 7:\n                            case \"end\":\n                                return t.stop()\n                        }\n                    }), t)\n                })))()\n            },\n            spawnClash: function() {\n                var e = this;\n                return l()(c.a.mark((function t() {\n                    var i, n, o, s, a, d, h;\n                    return c.a.wrap((function(t) {\n                        for (;;) switch (t.prev = t.next) {\n                            case 0:\n                                if (I.info(\"restarting clash core...\"), i = P.a.join(e.clashPath, \"logs\", \"\".concat(x()().format(\"YYYY-MM-DD-HHmmss\"), \".log\")), T.a.readdir(P.a.join(e.clashPath, \"logs\"), (function(t, i) {\n                                        !t && 0 < i.length && i.forEach((function(t) {\n                                            /^(.*?)\\.log$/.test(t) && x()(RegExp.$1, \"YYYY-MM-DD-HHmmss\").isBefore(x()().subtract(7, \"days\")) && T.a.unlink(P.a.join(e.clashPath, \"logs\", t), (function(e) {}))\n                                        }))\n                                    })), n = u.a.get(k.a.IS_LIGHTWEIGHT_MODE_CLOSE) || !1, t.t0 = n, t.t0) return t.next = 8, e.getClashStatus();\n                                t.next = 11;\n                                break;\n                            case 8:\n                                t.t1 = t.sent, t.t2 = p.a.CONNECTED, t.t0 = t.t1 === t.t2;\n                            case 11:\n                                if (t.t0) return t.abrupt(\"return\");\n                                t.next = 13;\n                                break;\n                            case 13:\n                                if (s = {}, r()(s, g.d, P.a.join(e.filesPath, \"win\", \"ia32\")), r()(s, g.e, P.a.join(e.filesPath, \"win\", \"x64\")), r()(s, g.c, P.a.join(e.filesPath, \"darwin\", \"x64\")), r()(s, g.b, P.a.join(e.filesPath, \"darwin\", \"arm64\")), r()(s, g.a, P.a.join(e.filesPath, \"linux\", \"x64\")), o = s[Object(g.f)()], a = {}, r()(a, g.d, \"clash-win32.exe\"), r()(a, g.e, \"clash-win64.exe\"), r()(a, g.c, \"./clash-darwin\"), r()(a, g.b, \"./clash-darwin\"), r()(a, g.a, \"./clash-linux\"), s = a[Object(g.f)()], a = e.confData[\"log-level\"], e.isLocalMode) {\n                                    t.next = 25;\n                                    break\n                                }\n                                return t.next = 19, A.a.post(\"http://127.0.0.1:53000/start\", {\n                                    path: e.devMode ? Object(M.join)(process.cwd(), o, s) : Object(M.join)(o, s),\n                                    cwd: e.clashPath,\n                                    silent: \"silent\" === a\n                                }, {\n                                    validateStatus: function(e) {\n                                        return !0\n                                    }\n                                });\n                            case 19:\n                                h = t.sent, d = h.data, 200 === h.status && e.setLogFilePath({\n                                    path: d\n                                }), t.next = 33;\n                                break;\n                            case 25:\n                                h = [], e.portableMode && (h = [\"-d\", e.clashPath]), (d = D.a.spawn(s, h, {\n                                    cwd: o,\n                                    windowsHide: !0\n                                })).stdout.on(\"data\", function() {\n                                    var t = l()(c.a.mark((function t(i) {\n                                        return c.a.wrap((function(t) {\n                                            for (;;) switch (t.prev = t.next) {\n                                                case 0:\n                                                    if (/level=info msg=\"RESTful API listening at:/.test(i.toString())) return I.info(\"clash core startup success!\"), t.t0 = e, t.next = 5, e.getClashStatus();\n                                                    t.next = 8;\n                                                    break;\n                                                case 5:\n                                                    t.t1 = t.sent, t.t2 = {\n                                                        status: t.t1\n                                                    }, t.t0.setClashStatus.call(t.t0, t.t2);\n                                                case 8:\n                                                    /level=fatal/.test(i.toString()) && I.error(\"clash核心启动失败!!!\");\n                                                case 9:\n                                                case \"end\":\n                                                    return t.stop()\n                                            }\n                                        }), t)\n                                    })));\n                                    return function(e) {\n                                        return t.apply(this, arguments)\n                                    }\n                                }()), d.on(\"exit\", (function() {})), \"silent\" !== a && (h = T.a.createWriteStream(i, {\n                                    flags: \"a\"\n                                }), d.stdout.pipe(h), d.stderr.pipe(h), e.setLogFilePath({\n                                    path: i\n                                })), e.clash = d, u.a.put(k.a.LAST_CLASH_PID, e.clash.pid);\n                            case 33:\n                                return t.abrupt(\"return\");\n                            case 34:\n                            case \"end\":\n                                return t.stop()\n                        }\n                    }), t)\n                })))()\n            },\n            sudoRunBAT: function(e) {\n                var t = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : null;\n                return new Promise((function(i, n) {\n                    ! function() {\n                        try {\n                            return D.a.execSync(\"net session\", {\n                                windowsHide: !0\n                            }), !0\n                        } catch (e) {}\n                        return !1\n                    }() ? Object(F.exec)(e, {\n                        name: \"Clash for Windows\"\n                    }, (function(e, n, r) {\n                        t && t(void 0 === e), i(void 0 === e)\n                    })): D.a.exec(e, {\n                        windowsHide: !0\n                    }, (function(e, n, r) {\n                        t && t(void 0 === e), i(void 0 === e)\n                    }))\n                }))\n            },\n            setupTapDevice: function() {\n                var e = !(0 < arguments.length && void 0 !== arguments[0]) || arguments[0],\n                    t = P.a.join(this.filesPath, \"win\", \"common\", \"tun2socks\"),\n                    i = (o = {}, r()(o, g.e, \"amd64\"), r()(o, g.d, \"i386\"), o[Object(g.f)()]),\n                    n = void 0 === (o = (s = null !== (n = u.a.get(k.a.TAP_INFO)) && void 0 !== n ? n : {}).ip) ? \"10.0.0.1\" : o,\n                    o = void 0 === (o = s.subnet) ? \"255.255.255.0\" : o,\n                    s = void 0 === (s = s.gateway) ? \"10.0.0.0\" : s;\n                e = P.a.join(t, \"\".concat(e ? \"add\" : \"remove\", \"_tap_device.bat\")), s = '\"'.concat(e, '\" ').concat(i, \" \").concat(n, \" \").concat(o, \" \").concat(s);\n                return this.sudoRunBAT(s)\n            },\n            spawnTun2socks: function() {\n                var e = this;\n                return l()(c.a.mark((function t() {\n                    var i, n, o, s, a, l, d;\n                    return c.a.wrap((function(t) {\n                        for (;;) switch (t.prev = t.next) {\n                            case 0:\n                                if (Object(g.i)() || Object(g.h)()) return t.abrupt(\"return\");\n                                t.next = 2;\n                                break;\n                            case 2:\n                                if (I.info(\"Spawn go-tun2socks\"), e.tun2socks && (e.killSpawned(e.tun2socks), e.tun2socks = null), i = e.mixedPort) {\n                                    t.next = 7;\n                                    break\n                                }\n                                return t.abrupt(\"return\");\n                            case 7:\n                                a = null !== (d = u.a.get(k.a.TAP_INFO)) && void 0 !== d ? d : {}, s = a.ip, n = void 0 === s ? \"10.0.0.1\" : s, l = a.subnet, o = void 0 === l ? \"255.255.255.0\" : l, d = a.gateway, l = [\"-tunName\", \"cfw-tap\", \"-tunDns\", n, \"-tunAddr\", n, \"-tunMask\", o, \"-tunGw\", s = void 0 === d ? \"10.0.0.0\" : d, \"-proxyServer\", \"127.0.0.1:\" + i, \"-loglevel\", \"none\"], a = {}, r()(a, g.e, P.a.join(e.filesPath, \"win\", \"x64\")), r()(a, g.d, P.a.join(e.filesPath, \"win\", \"ia32\")), d = a[Object(g.f)()], e.tun2socks = D.a.spawn(\"go-tun2socks.exe\", l, {\n                                    cwd: d,\n                                    windowsHide: !0\n                                }), a = 10;\n                            case 12:\n                                if (!a--) {\n                                    t.next = 27;\n                                    break\n                                }\n                                if (t.prev = 13, l = D.a.execSync(\"route print \".concat(s, \" mask \").concat(o), {\n                                        windowsHide: !0\n                                    }).toString(), d = function(e) {\n                                        return e.replace(/\\./g, \"\\\\.\")\n                                    }, new RegExp(\"\".concat(d(s), \"\\\\s+?\").concat(d(o), \"[\\\\s\\\\S]+\").concat(d(n))).test(l)) return D.a.execSync(\"route add 0.0.0.0 mask 0.0.0.0 \".concat(s, \" metric 1\"), {\n                                    windowsHide: !0\n                                }), t.abrupt(\"break\", 27);\n                                t.next = 19;\n                                break;\n                            case 19:\n                                t.next = 23;\n                                break;\n                            case 21:\n                                t.prev = 21, t.t0 = t.catch(13);\n                            case 23:\n                                return t.next = 25, Object(j.k)(1e3);\n                            case 25:\n                                t.next = 12;\n                                break;\n                            case 27:\n                            case \"end\":\n                                return t.stop()\n                        }\n                    }), t, null, [\n                        [13, 21]\n                    ])\n                })))()\n            },\n            killSpawned: function(e) {\n                if (e && (e = e.pid)) try {\n                    D.a.execSync((Object(g.i)() || Object(g.h)() ? \"kill -9 \" : \"taskkill /F /PID \").concat(e), {\n                        windowsHide: !0\n                    })\n                } catch (e) {}\n            },\n            setRoutes: function() {\n                var e = this;\n                return l()(c.a.mark((function t() {\n                    var i;\n                    return c.a.wrap((function(t) {\n                        for (;;) switch (t.prev = t.next) {\n                            case 0:\n                                return i = P.a.join(e.filesPath, \"tun2socks\"), i = P.a.join(i, \"set_routes.bat\"), t.abrupt(\"return\", e.sudoRunBAT('\"'.concat(i, '\"')));\n                            case 3:\n                            case \"end\":\n                                return t.stop()\n                        }\n                    }), t)\n                })))()\n            },\n            getClashStatus: function() {\n                var e = this;\n                return l()(c.a.mark((function t() {\n                    var i;\n                    return c.a.wrap((function(t) {\n                        for (;;) switch (t.prev = t.next) {\n                            case 0:\n                                return t.prev = 0, t.next = 3, e.clashAxiosClient.get(\"script\", {\n                                    validateStatus: function(e) {\n                                        return !0\n                                    },\n                                    timeout: 1e3\n                                });\n                            case 3:\n                                return i = (i = t.sent).status, t.abrupt(\"return\", 405 === i ? p.a.CONNECTED : p.a.DISCONNECTED);\n                            case 8:\n                                return t.prev = 8, t.t0 = t.catch(0), t.abrupt(\"return\", p.a.DISCONNECTED);\n                            case 11:\n                            case \"end\":\n                                return t.stop()\n                        }\n                    }), t, null, [\n                        [0, 8]\n                    ])\n                })))()\n            },\n            checkForUpdate: function() {\n                var e = this;\n                return l()(c.a.mark((function t() {\n                    var i, n, o, s, a, l, d, h, u, p, m, v, b, _;\n                    return c.a.wrap((function(t) {\n                        for (;;) switch (t.prev = t.next) {\n                            case 0:\n                                if (e.isSilentUpgraded) return I.info(\"silent upgrade done, stop checking\"), t.abrupt(\"return\");\n                                t.next = 3;\n                                break;\n                            case 3:\n                                return t.next = 5, f.ipcRenderer.invoke(\"app\", \"getVersion\");\n                            case 5:\n                                return i = t.sent, I.info(\"check for app update, current: \".concat(i)), t.next = 9, A.a.get(\"https://api.github.com/repos/Fndroid/clash_for_windows_pkg/releases/latest\");\n                            case 9:\n                                if (200 === (n = t.sent).status && (o = n.data.tag_name, (_ = function(e) {\n                                        var t = 1;\n                                        return e.split(\".\").reverse().reduce((function(e, i) {\n                                            return i = +e + i * t, t *= 1e3, i\n                                        }), 0)\n                                    })(o) > _(i))) {\n                                    a = Symbol(), l = Symbol(), d = Symbol(), h = Symbol(), _ = {}, r()(_, a, {}), r()(_, l, {}), r()(_, d, {}), r()(_, h, {}), u = _, p = J(n.data.assets);\n                                    try {\n                                        for (p.s(); !(m = p.n()).done;) v = m.value, (b = v.name) && (/\\d+?\\.\\d+?\\.\\d+?-win\\.7z/.test(b) ? u[a][g.e] = v : /\\d+?\\.\\d+?\\.\\d+?-ia32\\-win\\.7z/.test(b) ? u[a][g.d] = v : /\\d+?\\.\\d+?\\.\\d+?-arm64-mac\\.7z/.test(b) ? u[a][g.b] = v : /\\d+?\\.\\d+?\\.\\d+?-mac\\.7z/.test(b) ? u[a][g.c] = v : /\\d+?\\.\\d+?\\.\\d+?\\.ia32\\.exe/.test(b) ? u[l][g.d] = v : /\\d+?\\.\\d+?\\.\\d+?\\.exe/.test(b) ? u[l][g.e] = v : /arm64\\.dmg/.test(b) ? u[d][g.b] = v : /\\.dmg/.test(b) ? u[d][g.c] = v : /x64\\-linux\\.tar\\.gz/.test(b) && (u[h][g.a] = v))\n                                    } catch (t) {\n                                        p.e(t)\n                                    } finally {\n                                        p.f()\n                                    }\n                                    _ = function(e) {\n                                        var t, i;\n                                        return null == u || null === (t = u[e]) || void 0 === t || null === (i = t[Object(g.f)()]) || void 0 === i ? void 0 : i.browser_download_url\n                                    }, e.portableMode ? s = _(a) : (Object(g.i)() && (s = _(d)), Object(g.j)() && (s = _(l)), Object(g.h)() && (s = _(h))), e.newVersionInfo = {\n                                        version: o,\n                                        log: n.data.body,\n                                        url: s || \"https://github.com/Fndroid/clash_for_windows_pkg/releases\",\n                                        isPortable: e.portableMode\n                                    }, Object(g.i)() && e.settings.silentUpdate && s && Object(Q.a)(s, o).then((function(t) {\n                                        I.info(\"upgrade to \".concat(o, \" success, path: \").concat(t)), e.setIsSilentUpgraded({\n                                            isUpgraded: !0\n                                        }), e.newVersionInfo = {}\n                                    })).catch((function(e) {\n                                        I.info(\"auto upgrade failed with error: \".concat(e))\n                                    }))\n                                }\n                                case 11:\n                                case \"end\":\n                                    return t.stop()\n                        }\n                    }), t)\n                })))()\n            },\n            loadConfData: function() {\n                I.info(\"从一般加载数据 config.yaml\");\n                var e = P.a.join(this.clashPath, \"config.yaml\");\n                try {\n                    var t = T.a.readFileSync(e, \"utf8\").toString(),\n                        i = R.a.parse(t, {\n                            prettyErrors: !0\n                        });\n                    this.setConfData({\n                        data: i\n                    })\n                } catch (n) {\n                    e = \"\", !(t = n.linePos) || (i = t.start) && (t = i.line, i = i.col, e = \", on line: \".concat(t, \", at column: \").concat(i)), this.appendError({\n                        error: \"Error: \".concat(n).concat(e)\n                    }), I.warn(\"无法加载常规 config.yaml 并出现错误: \".concat(n))\n                }\n            },\n            mkdirPathSync: function(e) {\n                return e !== P.a.dirname(e) && (!!T.a.existsSync(e) || (this.mkdirPathSync(P.a.dirname(e)) ? (T.a.mkdirSync(e), !0) : void 0))\n            },\n            initConfigFolder: function() {\n                var e = this;\n                return l()(c.a.mark((function t() {\n                    var i, n, o, s, a, l, d, h, u, p;\n                    return c.a.wrap((function(t) {\n                        for (;;) switch (t.prev = t.next) {\n                            case 0:\n                                if (e.mkdirPathSync(e.clashPath), l = P.a.join(e.filesPath, \"default/config.yaml\"), d = P.a.join(e.clashPath, \"config.yaml\"), i = P.a.join(e.clashPath, \"config.yml\"), T.a.existsSync(i)) {\n                                    try {\n                                        T.a.unlinkSync(d)\n                                    } catch (t) {}\n                                    T.a.renameSync(i, d)\n                                }\n                                if (T.a.existsSync(d) && \"\" !== T.a.readFileSync(d, {\n                                        encoding: \"utf8\"\n                                    })) try {\n                                    (n = R.a.parseDocument(T.a.readFileSync(d, \"utf8\"))).get(\"mixed-port\") || (o = n.get(\"port\"), s = n.get(\"socks-port\"), a = o || s || 7890, n.delete(\"port\"), n.delete(\"socks-port\"), T.a.writeFileSync(d, \"mixed-port: \".concat(a, \"\\n\").concat(n.toString())))\n                                } catch (t) {} else I.info(\"首次发布, 创建 config.yaml...\"), T.a.copyFileSync(l, d);\n                                if (l = P.a.join(e.filesPath, \"default/Country.mmdb\"), d = P.a.join(e.clashPath, \"Country.mmdb\"), T.a.existsSync(d) || T.a.copyFileSync(l, d), Object(g.j)()) return u = {}, r()(u, g.d, \"ia32\"), r()(u, g.e, \"x64\"), p = u[Object(g.f)()], h = P.a.join(e.filesPath, \"win/\".concat(p, \"/wintun.dll\")), u = P.a.join(e.clashPath, \"wintun.dll\"), t.next = 15, Object(j.b)();\n                                t.next = 21;\n                                break;\n                            case 15:\n                                if (t.t0 = t.sent, !t.t0) {\n                                    t.next = 18;\n                                    break\n                                }\n                                t.t0 = T.a.existsSync(u);\n                            case 18:\n                                if (!t.t0) {\n                                    t.next = 20;\n                                    break\n                                }\n                                T.a.unlinkSync(u);\n                            case 20:\n                                T.a.existsSync(u) || T.a.copyFileSync(h, u);\n                            case 21:\n                                p = P.a.join(e.clashPath, \"logs\"), T.a.existsSync(p) || T.a.mkdirSync(p);\n                            case 23:\n                            case \"end\":\n                                return t.stop()\n                        }\n                    }), t)\n                })))()\n            },\n            initProfilesFolder: function() {\n                var e = this.profilesPath;\n                T.a.existsSync(e) || T.a.mkdirSync(e), e = P.a.join(this.profilesPath, \"list.yml\"), T.a.existsSync(e) || T.a.writeFileSync(e, \"files: []\\nindex: -1\", {\n                    flag: \"ax\"\n                })\n            },\n            startChild: function(e) {\n                if (!e || !e.hasOwnProperty(\"command\")) return null;\n                var t = e.args,\n                    i = e.options;\n                return D.a.spawn(e.command, void 0 === t ? [] : t, ie(ie({}, void 0 === i ? {} : i), {}, {\n                    windowsHide: !0\n                }))\n            },\n            spawnUserDefindExes: function() {\n                if (this.confData) {\n                    var e = [],\n                        t = void 0 === (t = this.settings.childProcessText) ? \"\" : t;\n                    try {\n                        e = R.a.parse(t).processes || []\n                    } catch (e) {}\n                    var i, n = [];\n                    for (i in e) {\n                        var r = (s = e[i]).log,\n                            o = (a = void 0 === (a = s.options) ? {} : a).cwd,\n                            s = (l = this.startChild(e[i])).pid,\n                            a = l.stderr,\n                            l = l.stdout;\n                        r && o && (a && a.pipe(T.a.createWriteStream(P.a.join(o, \"cfw-child-process-err.log\"), {\n                            flags: \"a\"\n                        })), l && l.pipe(T.a.createWriteStream(P.a.join(o, \"cfw-child-process-out.log\"), {\n                            flags: \"a\"\n                        }))), n.push(s)\n                    }\n                    u.a.put(k.a.LAST_USER_EXE_PIDS, n)\n                }\n            },\n            preDownloadAds: function() {\n                return l()(c.a.mark((function e() {\n                    var t, i, n;\n                    return c.a.wrap((function(e) {\n                        for (;;) switch (e.prev = e.next) {\n                            case 0:\n                                return e.next = 2, A.a.get(\"https://raw.githubusercontent.com/Fndroid/ads/master/ads_v2.json?t=\" + (new Date).getTime());\n                            case 2:\n                                i = e.sent, t = i.status, i = i.data, 200 === t && (n = i.feedback) && u.a.put(k.a.AD_IMAGES, n);\n                            case 5:\n                            case \"end\":\n                                return e.stop()\n                        }\n                    }), e)\n                })))()\n            },\n            profileUpdater: function() {\n                var e = this;\n                return l()(c.a.mark((function t() {\n                    var i, n, r, o, s, a, l, d, h;\n                    return c.a.wrap((function(t) {\n                        for (;;) switch (t.prev = t.next) {\n                            case 0:\n                                if (!e.profiles || e.isAppSuspend) return t.abrupt(\"return\");\n                                t.next = 2;\n                                break;\n                            case 2:\n                                return i = function() {\n                                    return (new Date).getTime()\n                                }, s = e.profiles.files, n = (void 0 === s ? [] : s).filter((function(t) {\n                                    var i = t.interval,\n                                        n = t.url,\n                                        r = t.time;\n                                    t = void 0 === (t = t.cron) ? \"\" : t;\n                                    if (!n) return !1;\n                                    try {\n                                        var o = x()();\n                                        if (0 < i) {\n                                            var s = T.a.statSync(P.a.join(e.profilesPath, r)).mtime;\n                                            if (s) {\n                                                var a = e.profileUpdateFailed[n];\n                                                if (void 0 !== a) {\n                                                    if (!x()(a).add(i, \"hours\").isBefore(o)) return !1;\n                                                    delete e.profileUpdateFailed[n]\n                                                }\n                                                return x()(s).add(i, \"hours\").isBefore(o)\n                                            }\n                                        }\n                                        if (t) return new se(t).isMatchDate(o)\n                                    } catch (t) {}\n                                    return !1\n                                })), t.next = 7, Promise.allSettled(n.map((function(e) {\n                                    return e = e.url, Object(q.a)({\n                                        url: e\n                                    })\n                                })));\n                            case 7:\n                                r = t.sent, o = 0;\n                            case 9:\n                                if (!(o < r.length)) {\n                                    t.next = 19;\n                                    break\n                                }\n                                if (l = r[o].value, s = l.success, a = l.message, d = l.targetIndex, l = n[o].url, s && d === e.profiles.index) return t.next = 15, e.refreshProfile();\n                                t.next = 15;\n                                break;\n                            case 15:\n                                a && (I.warn(\"无法使用 url 更新配置资料: \".concat(l)), Object(j.h)(\"配置资料更新失败\", l), e.profileUpdateFailed.hasOwnProperty(l) || (e.profileUpdateFailed[l] = i()));\n                            case 16:\n                                o++, t.next = 9;\n                                break;\n                            case 19:\n                                d = e.profiles.files, h = (void 0 === d ? [] : d).map((function(e) {\n                                    return e.time\n                                })), T.a.readdir(P.a.join(e.profilesPath), (function(t, i) {\n                                    !t && 0 < i.length && i.forEach((function(t) {\n                                        var i, n;\n                                        /^\\d+\\.yml$/.test(t) && (i = !1, (i = (n = T.a.statSync(P.a.join(e.profilesPath, t)).mtimeMs) ? x()(n).isBefore(x()().subtract(1, \"month\")) : i) && !h.includes(t) && T.a.unlinkSync(P.a.join(e.profilesPath, t)))\n                                    }))\n                                }));\n                            case 22:\n                            case \"end\":\n                                return t.stop()\n                        }\n                    }), t)\n                })))()\n            },\n            rebindShortcut: function(e, t, i) {\n                var n = this;\n                return l()(c.a.mark((function r() {\n                    var o;\n                    return c.a.wrap((function(r) {\n                        for (;;) switch (r.prev = r.next) {\n                            case 0:\n                                if (t) return r.prev = 1, r.next = 4, f.ipcRenderer.invoke(\"globalShortcut\", \"unregister\", t);\n                                r.next = 9;\n                                break;\n                            case 4:\n                                delete n.shortcuts[t], r.next = 9;\n                                break;\n                            case 7:\n                                r.prev = 7, r.t0 = r.catch(1);\n                            case 9:\n                                if (e) return r.prev = 10, r.next = 13, f.ipcRenderer.invoke(\"globalShortcut\", \"register\", e);\n                                r.next = 23;\n                                break;\n                            case 13:\n                                return r.next = 15, f.ipcRenderer.invoke(\"globalShortcut\", \"isRegistered\", e);\n                            case 15:\n                                return (o = r.sent) && (n.shortcuts[e] = i), r.abrupt(\"return\", o);\n                            case 20:\n                                r.prev = 20, r.t1 = r.catch(10), console.error(r.t1);\n                            case 23:\n                                return r.abrupt(\"return\", !1);\n                            case 24:\n                            case \"end\":\n                                return r.stop()\n                        }\n                    }), r, null, [\n                        [1, 7],\n                        [10, 20]\n                    ])\n                })))()\n            },\n            detectInterfaceName: function() {\n                var e = Object(B.a)();\n                e && e !== this.detectedInterfaceName && this.setDetectedInterfaceName({\n                    interfaceName: e\n                })\n            },\n            quit: function() {\n                var e = this;\n                return l()(c.a.mark((function t() {\n                    return c.a.wrap((function(t) {\n                        for (;;) switch (t.prev = t.next) {\n                            case 0:\n                                return I.info(\"应用退出, 关闭系统代理\"), t.next = 3, e.killClashCore();\n                            case 3:\n                                if (null !== e.userDNS) try {\n                                    Z(e.userDNS)\n                                } catch (t) {}\n                                if (t.prev = 4, e.isSystemProxyOn) return t.next = 8, e.$setSystemProxy(!1);\n                                t.next = 8;\n                                break;\n                            case 8:\n                                t.next = 12;\n                                break;\n                            case 10:\n                                t.prev = 10, t.t0 = t.catch(4);\n                            case 12:\n                                return t.prev = 12, f.ipcRenderer.send(\"cleanup-done\"), t.finish(12);\n                            case 15:\n                            case \"end\":\n                                return t.stop()\n                        }\n                    }), t, null, [\n                        [4, 10, 12, 15]\n                    ])\n                })))()\n            }\n        }),\n        mounted: function() {\n            window.addEventListener(\"online\", this.detectInterfaceName)\n        },\n        beforeDestroy: function() {},\n        beforeMount: function() {\n            var e = this;\n            return l()(c.a.mark((function t() {\n                var i, n, o, a, d, h, m, v, b, _, w, y, C, x, S, L, O, E;\n                return c.a.wrap((function(t) {\n                    for (;;) switch (t.prev = t.next) {\n                        case 0:\n                            return e.startTime = (new Date).getTime(), t.t0 = e, t.next = 4, f.ipcRenderer.invoke(\"app\", \"isPackaged\");\n                        case 4:\n                            if (t.t1 = !t.sent, t.t2 = {\n                                    isDevMode: t.t1\n                                }, t.t0.setIsDevMode.call(t.t0, t.t2), I.info(\"应用程序以模式开始: \".concat(e.devMode ? \"dev\" : \"production\")), e.$router.replace({\n                                    path: e.currentRoutePath\n                                }).catch((function(e) {})), Object(g.j)() && function() {\n                                    return U.apply(this, arguments)\n                                }().then((function(t) {\n                                    I.info(\"http服务器开始于: \".concat(e.innerServerPort))\n                                })).catch((function(e) {\n                                    I.info(\"http 服务器因错误而无法启动: \".concat(e))\n                                })), !e.devMode) {\n                                t.next = 14;\n                                break\n                            }\n                            t.t3 = \"\", t.next = 17;\n                            break;\n                        case 14:\n                            return t.next = 16, f.ipcRenderer.invoke(\"app\", \"getPath\", \"exe\");\n                        case 16:\n                            t.t3 = t.sent;\n                        case 17:\n                            i = t.t3, e.setExePath({\n                                path: i\n                            }), (b = u.a.get(k.a.LAST_CLASH_PID)) && e.killSpawned({\n                                pid: b\n                            }), v = u.a.get(k.a.LAST_USER_EXE_PIDS) || [], n = J(v);\n                            try {\n                                for (n.s(); !(o = n.n()).done;) a = o.value, e.killSpawned({\n                                    pid: a\n                                })\n                            } catch (t) {\n                                n.e(t)\n                            } finally {\n                                n.f()\n                            }\n                            return t.t4 = e, t.next = 27, f.ipcRenderer.invoke(\"nativeTheme\", \"shouldUseDarkColors\");\n                        case 27:\n                            return t.t5 = t.sent, t.t6 = {\n                                shouldUseDarkTheme: t.t5\n                            }, t.t4.setShouldUseDarkTheme.call(t.t4, t.t6), f.ipcRenderer.on(\"native-theme-updated\", (function(t, i) {\n                                e.setShouldUseDarkTheme({\n                                    shouldUseDarkTheme: i\n                                })\n                            })), f.ipcRenderer.on(\"shortcut-pressed\", function() {\n                                var t = l()(c.a.mark((function t(i, n) {\n                                    var r;\n                                    return c.a.wrap((function(t) {\n                                        for (;;) switch (t.prev = t.next) {\n                                            case 0:\n                                                return r = e.shortcuts[n], t.next = 3, r();\n                                            case 3:\n                                            case \"end\":\n                                                return t.stop()\n                                        }\n                                    }), t)\n                                })));\n                                return function(e, i) {\n                                    return t.apply(this, arguments)\n                                }\n                            }()), f.ipcRenderer.send(\"clash-core-status-change\", 0), f.ipcRenderer.on(\"app-exit\", e.quit), f.ipcRenderer.on(\"power-event\", (function(t, i) {\n                                e.setIsAppSuspend({\n                                    isSuspend: \"suspend\" === i\n                                })\n                            })), f.ipcRenderer.on(\"system-proxy-changed\", function() {\n                                var t = l()(c.a.mark((function t(i, n) {\n                                    return c.a.wrap((function(t) {\n                                        for (;;) switch (t.prev = t.next) {\n                                            case 0:\n                                                return t.next = 2, e.$setSystemProxy(n, e.confData);\n                                            case 2:\n                                                if (!t.sent) {\n                                                    t.next = 4;\n                                                    break\n                                                }\n                                                e.setIsSystemProxyOn({\n                                                    isOn: n\n                                                });\n                                            case 4:\n                                            case \"end\":\n                                                return t.stop()\n                                        }\n                                    }), t)\n                                })));\n                                return function(e, i) {\n                                    return t.apply(this, arguments)\n                                }\n                            }()), f.ipcRenderer.send(\"mixin-changed\", e.isMixinEnable), f.ipcRenderer.on(\"mixin-changed\", (function(t, i) {\n                                e.changeIsMixinEnable({\n                                    isMixin: i\n                                }), e.refreshProfile()\n                            })), f.ipcRenderer.send(\"tun-changed\", e.isTunEnable), f.ipcRenderer.on(\"tun-changed\", (function(t, i) {\n                                e.chagneIsTunEnable({\n                                    isTun: i\n                                }), e.refreshProfile()\n                            })), f.ipcRenderer.on(\"run-tray-script\", e.runTrayScript), f.ipcRenderer.on(\"mode-changed\", (function(t, i) {\n                                e.switchMode(i)\n                            })), f.ipcRenderer.on(\"app-open\", function() {\n                                var t = l()(c.a.mark((function t(i, n) {\n                                    var r, o, s;\n                                    return c.a.wrap((function(t) {\n                                        for (;;) switch (t.prev = t.next) {\n                                            case 0:\n                                                if (!n.find((function(e) {\n                                                        return /clash:\\/\\/install-config\\/?\\?url=(.+?)(?=$|&)/.test(e)\n                                                    }))) {\n                                                    t.next = 11;\n                                                    break\n                                                }\n                                                if (o = decodeURIComponent(RegExp.$1.trim()), /^https?:\\/\\//.test(o)) return t.next = 5, Object(q.a)({\n                                                    url: o\n                                                });\n                                                t.next = 11;\n                                                break;\n                                            case 5:\n                                                s = t.sent, r = s.success, o = s.message, s = s.targetIndex, Object(j.h)(\"Profile\", r ? \"配置资料已成功下载.\" : o), r && (e.changeProfileIndex({\n                                                    index: s\n                                                }), e.refreshProfile());\n                                            case 11:\n                                                if (n.find((function(e) {\n                                                        return /clash:\\/\\/quit/.test(e)\n                                                    }))) return t.next = 14, e.quit();\n                                                t.next = 14;\n                                                break;\n                                            case 14:\n                                            case \"end\":\n                                                return t.stop()\n                                        }\n                                    }), t)\n                                })));\n                                return function(e, i) {\n                                    return t.apply(this, arguments)\n                                }\n                            }()), f.ipcRenderer.on(\"menu-item-change\", (function(t, i) {\n                                e.$router.replace({\n                                    path: \"/home/\".concat(i)\n                                })\n                            })), f.ipcRenderer.on(\"window-event\", (function(t, i) {\n                                [\"show\", \"hide\"].includes(i) ? e.setIsWindowShow({\n                                    isShow: \"show\" === i\n                                }) : \"close\" !== i || void 0 !== (i = e.settings.lightweightMode) && i && !e.isLocalMode && (u.a.put(k.a.IS_LIGHTWEIGHT_MODE_CLOSE, !0), f.ipcRenderer.send(\"cleanup-done\"))\n                            })), t.next = 47, f.ipcRenderer.invoke(\"app\", \"getPath\", \"home\");\n                        case 47:\n                            return C = t.sent, w = P.a.join(i, \"../data\"), _ = P.a.join(C, \"/.config/clash\"), T.a.existsSync(w) && (_ = w, e.portableMode = !0), e.userPath = C, e.setClashPath({\n                                path: _\n                            }), t.next = 55, e.initConfigFolder();\n                        case 55:\n                            e.loadConfData(), Object(g.i)() && X().then((function(t) {\n                                e.userDNS = t\n                            })).catch((function(e) {\n                                I.info(\"faile to get user dns setting with error: \".concat(e))\n                            })), d = u.a.get(k.a.IS_LIGHTWEIGHT_MODE_CLOSE) || !1, h = {};\n                            try {\n                                m = T.a.readFileSync(P.a.join(e.clashPath, \"cfw-settings.yaml\")).toString(), h = R.a.parse(m)\n                            } catch (t) {}\n                            if (b = (y = h).showNewVersionIcon, v = void 0 === b || b, w = y.hideAfterStartup, C = void 0 !== w && w, _ = y.randomControllerPort, b = void 0 === _ || _, w = y.runTimeFormat, _ = void 0 === w ? \"hh : mm : ss\" : w, w = void 0 === (w = y.trayOrders) ? [\n                                    [\"icon\"],\n                                    [\"status\", \"traffic\", \"text\"]\n                                ] : w, y = void 0 !== (y = y.hideTrayIcon) && y, e.setSettingsObject({\n                                    obj: ie(ie({}, h), {}, {\n                                        showNewVersionIcon: v,\n                                        hideAfterStartup: C,\n                                        randomControllerPort: b,\n                                        runTimeFormat: _,\n                                        trayOrders: w,\n                                        hideTrayIcon: y\n                                    })\n                                }), !y && !d && C || f.ipcRenderer.invoke(\"window-control\", \"show\"), C = e.settings.fontFamily, e.setFont(C), C = e.settings.profilePath, e.setProfilesPath({\n                                    path: C || P.a.join(e.clashPath, \"profiles\")\n                                }), e.initProfilesFolder(), e.loadProfiles(), C = void 0 === (C = e.settings.randomControllerPort) || C, e.devMode || d || !C) {\n                                t.next = 84;\n                                break\n                            }\n                            return t.prev = 71, t.next = 74, oe();\n                        case 74:\n                            return L = t.sent, x = \"external-controller\", S = \"127.0.0.1:\".concat(L), t.next = 79, Object(j.j)(P.a.join(e.clashPath, \"config.yaml\"), x, S);\n                        case 79:\n                            e.setConfData({\n                                data: ie(ie({}, e.confData), {}, r()({}, x, S))\n                            }), t.next = 84;\n                            break;\n                        case 82:\n                            t.prev = 82, t.t7 = t.catch(71);\n                        case 84:\n                            return t.next = 86, ae();\n                        case 86:\n                            return L = t.sent, e.setIsLocalMode({\n                                isLocal: L !== le.Active\n                            }), O = 0, (E = function() {\n                                var t = l()(c.a.mark((function t() {\n                                    var i;\n                                    return c.a.wrap((function(t) {\n                                        for (;;) switch (t.prev = t.next) {\n                                            case 0:\n                                                if ((e.clashStatus !== p.a.CONNECTED || e.isWindowShow) && e.clashAxiosFlyingRequestCount < 5) return t.next = 3, e.getClashStatus();\n                                                t.next = 12;\n                                                break;\n                                            case 3:\n                                                i = t.sent, t.t0 = i, t.next = t.t0 === p.a.CONNECTED ? 7 : t.t0 === p.a.DISCONNECTED ? 9 : 11;\n                                                break;\n                                            case 7:\n                                                return O = 0, t.abrupt(\"break\", 11);\n                                            case 9:\n                                                return O += 1, t.abrupt(\"break\", 11);\n                                            case 11:\n                                                O >= (i === p.a.CONNECTED ? 0 : 5) && (O = 0, e.setClashStatus({\n                                                    status: i\n                                                }));\n                                            case 12:\n                                            case \"end\":\n                                                return t.stop()\n                                        }\n                                    }), t)\n                                })));\n                                return function() {\n                                    return t.apply(this, arguments)\n                                }\n                            }())(), s()(Array(5)).forEach((function(e, t) {\n                                setTimeout(E, 500 + 500 * t)\n                            })), setInterval(E, 3e3), t.next = 95, e.handlerRestartClash();\n                        case 95:\n                            u.a.put(k.a.IS_LIGHTWEIGHT_MODE_CLOSE, !1), e.showStartup || (e.showStartup = !0, Object(j.h)(\"Clash 正在后台运行\", \"享受您的自由时间!\")), e.detectInterfaceName(), e.spawnUserDefindExes(), e.checkForUpdate().then((function(e) {})).catch((function(e) {\n                                return console.error(e)\n                            })), setInterval(e.checkForUpdate, 216e5), e.preDownloadAds().then((function(e) {})).catch((function(e) {\n                                return console.error(e)\n                            })), setInterval(e.profileUpdater, 6e4), e.profileUpdater(), re.bind([\"command+f12\", \"ctrl+f12\"], (function() {\n                                return f.ipcRenderer.invoke(\"webContent\", \"toggleDevTools\"), !1\n                            })), re.bind(\"esc\", (function(e) {\n                                if (!e.target.className.split(\" \").includes(\"no-esc\")) return f.ipcRenderer.invoke(\"window\", \"close\"), !1\n                            }), \"keydown\");\n                        case 106:\n                        case \"end\":\n                            return t.stop()\n                    }\n                }), t, null, [\n                    [71, 82]\n                ])\n            })))()\n        }\n    }, i(282), i(284), i(286), h = Object(d.a)(h, (function() {\n        var e = this,\n            t = e.$createElement;\n        return (t = e._self._c || t)(\"div\", {\n            staticClass: \"wrapper\",\n            class: e.themeClass\n        }, [\"2077\" === e.theme ? t(\"img\", {\n            staticClass: \"cloud opacicy\",\n            attrs: {\n                src: \"static/imgs/2077.png\"\n            }\n        }) : e._e(), e._v(\" \"), \"red\" === e.theme ? t(\"img\", {\n            staticClass: \"cloud opacicy\",\n            attrs: {\n                src: \"static/imgs/national_day.png\"\n            }\n        }) : e._e(), e._v(\" \"), t(\"StatusBar\"), e._v(\" \"), t(\"main\", [t(\"div\", {\n            staticClass: \"left-side\"\n        }, [t(\"main-menu\", {\n            attrs: {\n                \"download-progress\": e.pkgDownloadProgress,\n                \"start-time\": e.startTime\n            }\n        })], 1), e._v(\" \"), t(\"div\", {\n            staticClass: \"right-side\"\n        }, [t(\"keep-alive\", [e.$route.meta.keepAlive ? t(\"router-view\", {\n            on: {\n                refreshProfile: e.refreshProfile\n            }\n        }) : e._e()], 1), e._v(\" \"), e.$route.meta.keepAlive ? e._e() : t(\"router-view\", {\n            on: {\n                refreshProfile: e.refreshProfile\n            }\n        })], 1), e._v(\" \"), t(\"div\", {\n            staticClass: \"clash-status-main\"\n        }, [t(\"div\", {\n            class: e.statusIcon\n        }), e._v(\" \"), t(\"div\", {\n            staticClass: \"clash-status-hint\",\n            on: {\n                click: function() {\n                    return e.showLogsFolder()\n                }\n            }\n        }, [e._v(\"\\n        \" + e._s(e.statusHint) + \"\\n      \")])])])], 1)\n    }), [], !1, null, \"5f14473a\", null);\n    t.default = h.exports\n}, function(e, t, i) {\n    \"use strict\";\n    i.r(t);\n    var n = i(105),\n        r = i.n(n),\n        o = i(10),\n        s = i.n(o),\n        a = i(18),\n        l = i.n(a),\n        d = i(3),\n        c = i.n(d),\n        h = i(27),\n        u = i(12),\n        p = i.n(u),\n        g = i(16),\n        f = i.n(g),\n        m = i(61),\n        v = i.n(m),\n        b = i(147),\n        _ = i.n(b),\n        w = i(168),\n        y = i(60),\n        C = i.n(y),\n        x = (n = i(251), i.n(n)),\n        S = (o = i(252), i.n(o)),\n        k = i(77),\n        L = i(48),\n        O = i(38),\n        E = i(35),\n        N = i(127),\n        D = i(19),\n        I = i(22),\n        T = i(40);\n\n    function M(e, t) {\n        var i, n = Object.keys(e);\n        return Object.getOwnPropertySymbols && (i = Object.getOwnPropertySymbols(e), t && (i = i.filter((function(t) {\n            return Object.getOwnPropertyDescriptor(e, t).enumerable\n        }))), n.push.apply(n, i)), n\n    }\n    a = {\n        props: [],\n        data: function() {\n            return {\n                logs: \"\",\n                intervalID: null\n            }\n        },\n        computed: function(e) {\n            for (var t = 1; t < arguments.length; t++) {\n                var i = null != arguments[t] ? arguments[t] : {};\n                t % 2 ? M(Object(i), !0).forEach((function(t) {\n                    l()(e, t, i[t])\n                })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(i)) : M(Object(i)).forEach((function(t) {\n                    Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(i, t))\n                }))\n            }\n            return e\n        }({}, Object(h.mapState)({\n            clashPath: function(e) {\n                return e.app.clashPath\n            },\n            logFilePath: function(e) {\n                return e.app.logFilePath\n            },\n            errors: function(e) {\n                return e.app.errors\n            }\n        })),\n        methods: {\n            openLogsFolder: function(e) {\n                this.$parent.$parent.showLogsFolder(!0)\n            },\n            openHomeDir: function() {\n                this.clashPath && I.shell.openPath(this.clashPath)\n            },\n            autoFix: function(e) {\n                var t = this;\n                return s()(c.a.mark((function e() {\n                    return c.a.wrap((function(e) {\n                        for (;;) switch (e.prev = e.next) {\n                            case 0:\n                                return e.next = 2, Object(T.g)({\n                                    title: \"Clash for Windows\",\n                                    type: \"warning\",\n                                    message: \"Please confirm\",\n                                    detail: \"config.yaml and country.mmdb will be removed.\",\n                                    buttons: [\"是\", \"否\"]\n                                });\n                            case 2:\n                                0 === e.sent.response && t.$parent.autoFix();\n                            case 5:\n                            case \"end\":\n                                return e.stop()\n                        }\n                    }), e)\n                })))()\n            }\n        },\n        mounted: function() {\n            function e() {\n                if (t.clashPath && t.logFilePath) try {\n                    var e = Object(g.readFileSync)(t.logFilePath).toString().split(\"\\n\").filter((function(e) {\n                        return /level=fatal/.test(e)\n                    })).join(\"<br /><br />\");\n                    e ? t.logs = e : 0 < t.errors.length && (t.logs = t.errors.join(\"<br /><br />\"))\n                } catch (e) {}\n            }\n            var t = this;\n            this.intervalID = setInterval(e, 2e3), e()\n        },\n        beforeDestroy: function() {\n            this.intervalID && (clearInterval(this.intervalID), this.intervalID = null)\n        }\n    }, i(288), i(290), d = i(30), u = Object(d.a)(a, (function() {\n        var e = this,\n            t = e.$createElement;\n        return (t = e._self._c || t)(\"div\", {\n            attrs: {\n                id: \"error-view-main\"\n            }\n        }, [e.logs ? t(\"div\", {\n            staticClass: \"error-hints\"\n        }, [t(\"div\", {\n            attrs: {\n                id: \"error-title\"\n            }\n        }, [e._v(\"错误\")]), e._v(\" \"), t(\"div\", {\n            class: [\"error-content-\" + e.theme],\n            domProps: {\n                innerHTML: e._s(e.logs)\n            }\n        }, [e._v(\"{{}}\")]), e._v(\" \"), t(\"div\", {\n            staticClass: \"error-btns\"\n        }, [t(\"div\", {\n            class: [\"error-hint-\" + e.theme],\n            on: {\n                click: e.openHomeDir\n            }\n        }, [e._v(\"\\n        主目录\\n      \")]), e._v(\" \"), t(\"div\", {\n            class: [\"error-hint-\" + e.theme],\n            on: {\n                click: e.openLogsFolder\n            }\n        }, [e._v(\"\\n        日志文件夹\\n      \")]), e._v(\" \"), t(\"div\", {\n            class: [\"error-hint-\" + e.theme],\n            on: {\n                click: e.autoFix\n            }\n        }, [e._v(\"\\n        尝试修复\\n      \")])])]) : t(\"div\", {\n            staticClass: \"loading-hint\"\n        }, [e._v(\"正在加载...\")])])\n    }), [], !1, null, \"09aa3bae\", null).exports, m = i(150), b = i(151), y = i(173), n = i(52);\n    var P = i.n(n),\n        A = (o = {\n            name: \"EditListView\",\n            model: {\n                prop: \"list\",\n                event: \"changed\"\n            },\n            props: {\n                list: {\n                    type: Array,\n                    default: function() {\n                        return []\n                    }\n                }\n            },\n            data: function() {\n                return {}\n            },\n            methods: {\n                handleAddItem: function() {\n                    this.$emit(\"changed\", [].concat(P()(this.list), [\"\"]))\n                },\n                handleRemoveItem: function(e) {\n                    this.$emit(\"changed\", [].concat(P()(this.list.slice(0, e)), P()(this.list.slice(e + 1))))\n                },\n                handleChangeItem: function(e, t) {\n                    this.$emit(\"changed\", [].concat(P()(this.list.slice(0, t)), [e.target.value], P()(this.list.slice(t + 1))))\n                }\n            }\n        }, a = (i(298), Object(d.a)(o, (function() {\n            var e = this,\n                t = e.$createElement,\n                i = e._self._c || t;\n            return i(\"div\", {\n                staticClass: \"main-edit-list-view\"\n            }, [e._l(e.list, (function(t, n) {\n                return i(\"div\", {\n                    key: n,\n                    staticClass: \"item\"\n                }, [i(\"input\", {\n                    attrs: {\n                        type: \"text\"\n                    },\n                    domProps: {\n                        value: t\n                    },\n                    on: {\n                        input: function(t) {\n                            return e.handleChangeItem(t, n)\n                        }\n                    }\n                }), e._v(\" \"), i(\"div\", {\n                    staticClass: \"btn btn-remove clickable\",\n                    on: {\n                        click: function(t) {\n                            return e.handleRemoveItem(n)\n                        }\n                    }\n                }, [i(\"svg\", {\n                    attrs: {\n                        xmlns: \"http://www.w3.org/2000/svg\",\n                        viewBox: \"0 0 24 24\",\n                        fill: \"white\"\n                    }\n                }, [i(\"path\", {\n                    attrs: {\n                        d: \"M0 0h24v24H0V0z\",\n                        fill: \"none\"\n                    }\n                }), e._v(\" \"), i(\"path\", {\n                    attrs: {\n                        d: \"M18 13H6c-.55 0-1-.45-1-1s.45-1 1-1h12c.55 0 1 .45 1 1s-.45 1-1 1z\"\n                    }\n                })])])])\n            })), e._v(\" \"), i(\"div\", {\n                staticClass: \"btn btn-add clickable\",\n                on: {\n                    click: e.handleAddItem\n                }\n            }, [i(\"svg\", {\n                attrs: {\n                    xmlns: \"http://www.w3.org/2000/svg\",\n                    viewBox: \"0 0 24 24\",\n                    fill: \"white\"\n                }\n            }, [i(\"path\", {\n                attrs: {\n                    d: \"M0 0h24v24H0V0z\",\n                    fill: \"none\"\n                }\n            }), e._v(\" \"), i(\"path\", {\n                attrs: {\n                    d: \"M18 13h-5v5c0 .55-.45 1-1 1s-1-.45-1-1v-5H6c-.55 0-1-.45-1-1s.45-1 1-1h5V6c0-.55.45-1 1-1s1 .45 1 1v5h5c.55 0 1 .45 1 1s-.45 1-1 1z\"\n                }\n            })])])], 2)\n        }), [], !1, null, \"13e718af\", null).exports), n = i(45), i.n(n));\n    o = i(121);\n\n    function R(e, t) {\n        var i, n = Object.keys(e);\n        return Object.getOwnPropertySymbols && (i = Object.getOwnPropertySymbols(e), t && (i = i.filter((function(t) {\n            return Object.getOwnPropertyDescriptor(e, t).enumerable\n        }))), n.push.apply(n, i)), n\n    }\n\n    function F(e) {\n        for (var t = 1; t < arguments.length; t++) {\n            var i = null != arguments[t] ? arguments[t] : {};\n            t % 2 ? R(Object(i), !0).forEach((function(t) {\n                l()(e, t, i[t])\n            })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(i)) : R(Object(i)).forEach((function(t) {\n                Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(i, t))\n            }))\n        }\n        return e\n    }\n\n    function j(e, t) {\n        var i, n = Object.keys(e);\n        return Object.getOwnPropertySymbols && (i = Object.getOwnPropertySymbols(e), t && (i = i.filter((function(t) {\n            return Object.getOwnPropertyDescriptor(e, t).enumerable\n        }))), n.push.apply(n, i)), n\n    }\n\n    function B(e, t) {\n        var i, n = Object.keys(e);\n        return Object.getOwnPropertySymbols && (i = Object.getOwnPropertySymbols(e), t && (i = i.filter((function(t) {\n            return Object.getOwnPropertyDescriptor(e, t).enumerable\n        }))), n.push.apply(n, i)), n\n    }\n\n    function V(e) {\n        for (var t = 1; t < arguments.length; t++) {\n            var i = null != arguments[t] ? arguments[t] : {};\n            t % 2 ? B(Object(i), !0).forEach((function(t) {\n                l()(e, t, i[t])\n            })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(i)) : B(Object(i)).forEach((function(t) {\n                Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(i, t))\n            }))\n        }\n        return e\n    }\n    n = {\n        name: \"TunSettingsView\",\n        components: {\n            SelectView: m.a,\n            SwitchView: b.a,\n            SimpleInput: y.a,\n            EditList: a,\n            EscCapture: o.a\n        },\n        data: function() {\n            return {\n                stackType: 0,\n                nameServers: [\"114.114.114.114\", \"223.5.5.5\", \"8.8.8.8\"],\n                fallbackServers: [],\n                fakeIPFilters: Object(D.j)() ? [\"dns.msftncsi.com\", \"www.msftncsi.com\", \"www.msftconnecttest.com\"] : Object(D.i)() ? [\"apps.apple.com\"] : [],\n                isAutoDetectInterface: !0,\n                interfaceName: \"\"\n            }\n        },\n        computed: F(F({}, Object(h.mapState)({\n            tunSettings: function(e) {\n                return e.app.tunSettings\n            }\n        })), {}, {\n            obj: function() {\n                return Object(T.e)(this.$data)\n            },\n            text: function() {\n                return A.a.stringify(this.obj)\n            }\n        }),\n        watch: {},\n        methods: F(F({}, Object(h.mapMutations)({\n            setTunSettings: \"SET_TUN_SETTINGS\"\n        })), {}, {\n            handleSave: function() {\n                this.setTunSettings({\n                    settings: this.$data\n                }), this.$emit(\"close\")\n            }\n        }),\n        mounted: function() {\n            var e = (o = this.tunSettings || {}).nameServers,\n                t = o.fallbackServers,\n                i = o.fakeIPFilters,\n                n = o.stackType,\n                r = o.isAutoDetectInterface,\n                o = o.interfaceName;\n            [0, 1].includes(n) && (this.stackType = n), e && (this.nameServers = e), t && (this.fallbackServers = t), i && (this.fakeIPFilters = i), void 0 !== r && (this.isAutoDetectInterface = r), o && (this.interfaceName = o)\n        },\n        beforeDestroy: function() {}\n    }, i(300), y = Object(d.a)(n, (function() {\n        var e = this,\n            t = e.$createElement;\n        return (t = e._self._c || t)(\"EscCapture\", {\n            staticClass: \"main-tun-settings-view\",\n            on: {\n                keydown: function(t) {\n                    return e.$emit(\"close\")\n                },\n                click: function(t) {\n                    return e.$emit(\"close\")\n                }\n            }\n        }, [t(\"div\", {\n            staticClass: \"content\",\n            on: {\n                click: function(e) {\n                    e.stopPropagation()\n                }\n            }\n        }, [t(\"div\", {\n            staticClass: \"title\"\n        }, [e._v(\"TUN 模式设置\")]), e._v(\" \"), t(\"div\", {\n            staticClass: \"pannel\"\n        }, [t(\"div\", {\n            staticClass: \"left\"\n        }, [t(\"div\", [t(\"div\", [e._v(\"DNS 服务器\")]), e._v(\" \"), t(\"EditList\", {\n            model: {\n                value: e.nameServers,\n                callback: function(t) {\n                    e.nameServers = t\n                },\n                expression: \"nameServers\"\n            }\n        })], 1), e._v(\" \"), t(\"div\", [t(\"div\", [e._v(\"后备 DNS 服务器\")]), e._v(\" \"), t(\"EditList\", {\n            model: {\n                value: e.fallbackServers,\n                callback: function(t) {\n                    e.fallbackServers = t\n                },\n                expression: \"fallbackServers\"\n            }\n        })], 1), e._v(\" \"), t(\"div\", [t(\"div\", [e._v(\"Fake IP过滤器\")]), e._v(\" \"), t(\"EditList\", {\n            model: {\n                value: e.fakeIPFilters,\n                callback: function(t) {\n                    e.fakeIPFilters = t\n                },\n                expression: \"fakeIPFilters\"\n            }\n        })], 1), e._v(\" \"), t(\"div\", {\n            staticClass: \"flex\"\n        }, [t(\"div\", [e._v(\"TUN 码(TUN Stack)\")]), e._v(\" \"), t(\"SelectView\", {\n            attrs: {\n                items: [\"gvisor\", \"system\"]\n            },\n            model: {\n                value: e.stackType,\n                callback: function(t) {\n                    e.stackType = t\n                },\n                expression: \"stackType\"\n            }\n        })], 1), e._v(\" \"), t(\"div\", {\n            staticClass: \"flex\"\n        }, [t(\"div\", [e._v(\"自动检测接口\")]), e._v(\" \"), t(\"SwitchView\", {\n            model: {\n                value: e.isAutoDetectInterface,\n                callback: function(t) {\n                    e.isAutoDetectInterface = t\n                },\n                expression: \"isAutoDetectInterface\"\n            }\n        })], 1), e._v(\" \"), e.isAutoDetectInterface ? e._e() : t(\"div\", {\n            staticClass: \"flex\"\n        }, [t(\"div\", [e._v(\"接口名称\")]), e._v(\" \"), t(\"input\", {\n            directives: [{\n                name: \"model\",\n                rawName: \"v-model\",\n                value: e.interfaceName,\n                expression: \"interfaceName\"\n            }],\n            attrs: {\n                type: \"text\"\n            },\n            domProps: {\n                value: e.interfaceName\n            },\n            on: {\n                input: function(t) {\n                    t.target.composing || (e.interfaceName = t.target.value)\n                }\n            }\n        })])]), e._v(\" \"), t(\"div\", {\n            staticClass: \"right\"\n        }, [t(\"pre\", [e._v(e._s(e.text))])])]), e._v(\" \"), t(\"div\", {\n            staticClass: \"btn clickable\",\n            on: {\n                click: e.handleSave\n            }\n        }, [e._v(\"保存\")])])])\n    }), [], !1, null, \"6f9eeaba\", null).exports, a = {\n        name: \"info-icon\",\n        data: function() {\n            return {\n                isShowContent: !1\n            }\n        },\n        computed: function(e) {\n            for (var t = 1; t < arguments.length; t++) {\n                var i = null != arguments[t] ? arguments[t] : {};\n                t % 2 ? j(Object(i), !0).forEach((function(t) {\n                    l()(e, t, i[t])\n                })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(i)) : j(Object(i)).forEach((function(t) {\n                    Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(i, t))\n                }))\n            }\n            return e\n        }({}, Object(h.mapState)({})),\n        methods: {\n            handleContentClick: function(e) {\n                !(e = e.target) || (e = e.href) && I.shell.openExternal(e)\n            }\n        }\n    }, i(302), o = Object(d.a)(a, (function() {\n        var e = this,\n            t = e.$createElement;\n        return (t = e._self._c || t)(\"div\", {\n            staticClass: \"info-icon-main\",\n            on: {\n                mouseenter: function(t) {\n                    e.isShowContent = !0\n                },\n                mouseleave: function(t) {\n                    e.isShowContent = !1\n                }\n            }\n        }, [e.isShowContent ? t(\"div\", {\n            class: [\"content-\" + e.theme],\n            on: {\n                click: e.handleContentClick\n            }\n        }, [e._t(\"default\")], 2) : e._e(), e._v(\" \"), t(\"svg\", {\n            class: [\"svg-\" + e.theme],\n            attrs: {\n                xmlns: \"http://www.w3.org/2000/svg\",\n                viewBox: \"0 0 24 24\",\n                width: \"16px\",\n                height: \"16px\"\n            }\n        }, [t(\"path\", {\n            attrs: {\n                d: \"M0 0h24v24H0V0z\",\n                fill: \"none\"\n            }\n        }), e._v(\" \"), t(\"path\", {\n            attrs: {\n                d: \"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 15c-.55 0-1-.45-1-1v-4c0-.55.45-1 1-1s1 .45 1 1v4c0 .55-.45 1-1 1zm1-8h-2V7h2v2z\"\n            }\n        })])])\n    }), [], !1, null, \"6b34dc98\", null).exports, n = i(134), i(146);\n    var W = ((a = i(190)(\"./service_\".concat(process.platform))).status, a.statusService, a.needUpdate),\n        z = a.updateService,\n        H = a.installService,\n        U = a.uninstallService;\n    h = {\n        components: {\n            ErrorView: u,\n            TunSettingsView: y,\n            SwitchView: b.a,\n            SelectView: m.a,\n            InfoIcon: o,\n            Hint: n.a\n        },\n        props: [],\n        data: function() {\n            return {\n                iconPath: \"static/imgs/logo2.png\",\n                title: \"Clash for Windows\",\n                isAllowLan: !1,\n                port: 0,\n                logLevel: \"unknow\",\n                isIPV6: !1,\n                geoipUpdateTime: \"\",\n                systemProxyLoading: !0,\n                autoLaunch: E.a.get(O.a.AUTO_LAUNCH) || !1,\n                autoLaunchLoading: !0,\n                protableMode: !1,\n                version: \"\",\n                showInterfaces: !1,\n                networkInterfaces: [],\n                clashCoreVersion: \"\",\n                serviceNeedUpdate: !1,\n                isTunSettingsVisible: !1\n            }\n        },\n        watch: {\n            status: function() {\n                this.setupSwitches()\n            },\n            isWindowShow: function(e) {\n                e && (this.setupComponent(), this.setupSwitches())\n            },\n            isLaunching: function(e) {\n                e || this.setupComponent()\n            },\n            clashStatus: function(e) {\n                e === L.a.CONNECTED && this.setupComponent()\n            }\n        },\n        computed: V(V(V({}, Object(h.mapState)({\n            clashPath: function(e) {\n                return e.app.clashPath\n            },\n            clashStatus: function(e) {\n                return e.app.clashStatus\n            },\n            confData: function(e) {\n                return e.app.confData\n            },\n            isMixinEnable: function(e) {\n                return e.app.isMixinEnable\n            },\n            isTunEnable: function(e) {\n                return e.app.isTunEnable\n            },\n            status: function(e) {\n                return e.app.status\n            },\n            isWindowShow: function(e) {\n                return e.app.isWindowShow\n            },\n            isLocalMode: function(e) {\n                return e.app.isLocalMode\n            },\n            isLaunching: function(e) {\n                return e.app.isLaunching\n            },\n            isSystemProxyOn: function(e) {\n                return e.app.isSystemProxyOn\n            },\n            isSilentUpgraded: function(e) {\n                return e.app.isSilentUpgraded\n            },\n            updateDownloadProgress: function(e) {\n                return e.app.updateDownloadProgress\n            }\n        })), Object(h.mapGetters)([\"resourcesPath\", \"filesPath\", \"mixedPort\", \"clashAxiosClient\", \"controllerPort\"])), {}, {\n            autoLaunchHint: function() {\n                return Object(D.i)() ? \"Start with macOS\" : Object(D.j)() ? \"开机时运行\" : Object(D.h)() ? \"Start with Linux\" : void 0\n            },\n            isShowNewIcon: function() {\n                var e = this.settings.showNewVersionIcon,\n                    t = this.$parent.newVersionInfo.url;\n                return (void 0 === e || e) && t\n            }\n        }),\n        methods: V(V({}, Object(h.mapMutations)({\n            changeIsMixinEnable: \"CHANGE_IS_MIXIN_ENABLE\",\n            changeIsTunEnable: \"CHANGE_IS_TUN_ENABLE\",\n            setIsLocalMode: \"SET_IS_LOCAL_MODE\",\n            setConfData: \"SET_CONF_DATA\",\n            setIsSystemProxyOn: \"SET_IS_SYSTEM_PROXY_ON\"\n        })), {}, {\n            handleEditMixin: function() {\n                var e = this;\n                return s()(c.a.mark((function t() {\n                    var i, n, r, o;\n                    return c.a.wrap((function(t) {\n                        for (;;) switch (t.prev = t.next) {\n                            case 0:\n                                return r = e.settings, n = r.mixinText, i = void 0 === n ? \"mixin: # object\\n\" : n, o = r.mixinType, n = void 0 === o ? 0 : o, o = r.mixinCode, r = void 0 === o ? \"module.exports.parse = ({ content, name, url }, { yaml, axios, notify }) => {\\n  return content\\n}\" : o, t.next = 3, e.$code({\n                                    code: 0 === n ? i : r,\n                                    language: 0 === n ? \"yaml\" : \"javascript\"\n                                });\n                            case 3:\n                                (o = void 0 === (o = (o = t.sent).code) ? \"\" : o) !== (0 === n ? i : r) && (0 === n ? e.settings.mixinText = o : e.settings.mixinCode = o, e.$parent.refreshProfile());\n                            case 7:\n                            case \"end\":\n                                return t.stop()\n                        }\n                    }), t)\n                })))()\n            },\n            installService: function() {\n                var e = this;\n                return s()(c.a.mark((function t() {\n                    var i, n, r;\n                    return c.a.wrap((function(t) {\n                        for (;;) switch (t.prev = t.next) {\n                            case 0:\n                                return t.prev = 0, i = [\"安装\", \"卸载\"], e.serviceNeedUpdate && i.push(\"Update\"), n = Object(D.h)() ? \"<br/><br/><strong>nftables</strong> and <strong>iproute2</strong> are required, please install them first!!!\" : \"\", t.next = 6, e.$select({\n                                    title: \"服务管理\",\n                                    message: \"这可能需要一段时间.<br/>该APP将自动重新启动.\".concat(n, \"<br/><br/>当前状态: \").concat(e.isLocalMode ? \"未安装\" : \"已安装\"),\n                                    items: i\n                                });\n                            case 6:\n                                if (0 === (r = t.sent)) return t.next = 10, H();\n                                t.next = 12;\n                                break;\n                            case 10:\n                                if (!t.sent) {\n                                    t.next = 12;\n                                    break\n                                }\n                                e.$parent.devMode || e.reloadElectron();\n                            case 12:\n                                if (1 === r) return t.next = 15, U();\n                                t.next = 17;\n                                break;\n                            case 15:\n                                if (!t.sent) {\n                                    t.next = 17;\n                                    break\n                                }\n                                e.$parent.devMode || e.reloadElectron();\n                            case 17:\n                                if (2 === r) return t.next = 20, z();\n                                t.next = 22;\n                                break;\n                            case 20:\n                                if (!t.sent) {\n                                    t.next = 22;\n                                    break\n                                }\n                                e.$parent.devMode || e.reloadElectron();\n                            case 22:\n                                console.log(\"service done\"), t.next = 27;\n                                break;\n                            case 25:\n                                t.prev = 25, t.t0 = t.catch(0);\n                            case 27:\n                            case \"end\":\n                                return t.stop()\n                        }\n                    }), t, null, [\n                        [0, 25]\n                    ])\n                })))()\n            },\n            handleAllowLANChange: function() {\n                var e = this;\n                return s()(c.a.mark((function t() {\n                    var i;\n                    return c.a.wrap((function(t) {\n                        for (;;) switch (t.prev = t.next) {\n                            case 0:\n                                return i = !e.isAllowLan, t.next = 3, e.clashAxiosClient.patch(\"/configs\", {\n                                    \"allow-lan\": i\n                                });\n                            case 3:\n                                if (204 === t.sent.status) return e.isAllowLan = i, t.next = 8, Object(T.j)(p.a.join(e.clashPath, \"config.yaml\"), \"allow-lan\", i);\n                                t.next = 9;\n                                break;\n                            case 8:\n                                e.setConfData({\n                                    data: V(V({}, e.confData), {}, {\n                                        \"allow-lan\": i\n                                    })\n                                });\n                            case 9:\n                            case \"end\":\n                                return t.stop()\n                        }\n                    }), t)\n                })))()\n            },\n            handleIPV6Change: function() {\n                var e = this;\n                return s()(c.a.mark((function t() {\n                    var i;\n                    return c.a.wrap((function(t) {\n                        for (;;) switch (t.prev = t.next) {\n                            case 0:\n                                return i = !e.isIPV6, t.next = 3, e.clashAxiosClient.patch(\"/configs\", {\n                                    ipv6: i\n                                });\n                            case 3:\n                                if (204 === t.sent.status) return e.isIPV6 = i, t.next = 9, Object(T.j)(p.a.join(e.clashPath, \"config.yaml\"), \"ipv6\", i);\n                                t.next = 10;\n                                break;\n                            case 9:\n                                e.setConfData({\n                                    data: V(V({}, e.confData), {}, {\n                                        ipv6: i\n                                    })\n                                });\n                            case 10:\n                            case \"end\":\n                                return t.stop()\n                        }\n                    }), t)\n                })))()\n            },\n            handleEditLogLevel: function() {\n                var e = this;\n                return s()(c.a.mark((function t() {\n                    var i, n, r;\n                    return c.a.wrap((function(t) {\n                        for (;;) switch (t.prev = t.next) {\n                            case 0:\n                                return t.prev = 0, i = [\"silent\", \"error\", \"warning\", \"info\", \"debug\"], t.next = 4, e.$select({\n                                    title: \"更改日志级别\",\n                                    message: \"静默:&nbsp;&nbsp;&nbsp;下次启动时不再生成.log文件<br/>错误:&nbsp;&nbsp;&nbsp;记录错误和异常信息到.log文件<br/>警告:&nbsp;&nbsp;&nbsp;记录错误，异常和警告信息到.log文件<br/>信息:&nbsp;&nbsp;&nbsp;记录运行时的信息到.log文件<br/>调试:&nbsp;&nbsp;&nbsp;记录一切运行时产生的信息(通常用于开发<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;者调试，诊断问题)\",\n                                    items: i\n                                });\n                            case 4:\n                                return r = t.sent, n = i[r], t.next = 8, e.clashAxiosClient.patch(\"/configs\", {\n                                    \"log-level\": n\n                                });\n                            case 8:\n                                if (204 === (r = t.sent).status) return e.logLevel = n, t.next = 14, Object(T.j)(p.a.join(e.clashPath, \"config.yaml\"), \"log-level\", n);\n                                t.next = 15;\n                                break;\n                            case 14:\n                                e.setConfData({\n                                    data: V(V({}, e.confData), {}, {\n                                        \"log-level\": n\n                                    })\n                                });\n                            case 15:\n                                t.next = 19;\n                                break;\n                            case 17:\n                                t.prev = 17, t.t0 = t.catch(0);\n                            case 19:\n                            case \"end\":\n                                return t.stop()\n                        }\n                    }), t, null, [\n                        [0, 17]\n                    ])\n                })))()\n            },\n            handleMixinSwitchClick: function(e) {\n                var t = this;\n                return s()(c.a.mark((function e() {\n                    return c.a.wrap((function(e) {\n                        for (;;) switch (e.prev = e.next) {\n                            case 0:\n                                t.changeIsMixinEnable({\n                                    isMixin: !t.isMixinEnable\n                                });\n                            case 1:\n                            case \"end\":\n                                return e.stop()\n                        }\n                    }), e)\n                })))()\n            },\n            handleTunSwitchClick: function(e) {\n                var t = this;\n                return s()(c.a.mark((function e() {\n                    return c.a.wrap((function(e) {\n                        for (;;) switch (e.prev = e.next) {\n                            case 0:\n                                t.changeIsTunEnable({\n                                    isTun: !t.isTunEnable\n                                });\n                            case 1:\n                            case \"end\":\n                                return e.stop()\n                        }\n                    }), e)\n                })))()\n            },\n            handleSystemProxySwitchClick: function() {\n                var e = this;\n                return s()(c.a.mark((function t() {\n                    var i;\n                    return c.a.wrap((function(t) {\n                        for (;;) switch (t.prev = t.next) {\n                            case 0:\n                                if (e.systemProxyLoading) return t.abrupt(\"return\");\n                                t.next = 2;\n                                break;\n                            case 2:\n                                return e.systemProxyLoading = !0, i = !e.isSystemProxyOn, t.next = 6, e.$setSystemProxy(i, e.confData);\n                            case 6:\n                                if (!t.sent) {\n                                    t.next = 11;\n                                    break\n                                }\n                                e.setIsSystemProxyOn({\n                                    isOn: i\n                                }), t.next = 29;\n                                break;\n                            case 11:\n                                if (Object(D.i)() && e.isLocalMode) return t.next = 14, Object(T.g)({\n                                    type: \"error\",\n                                    message: \"Make sure you have \".concat(e.serviceNeedUpdate ? \"已更新\" : \"已安装\", \" 用于控制系统代理的服务模式.\"),\n                                    buttons: [\"\".concat(e.serviceNeedUpdate ? \"更新\" : \"安装\", \" 现在\"), \"Later\"]\n                                });\n                                t.next = 29;\n                                break;\n                            case 14:\n                                if (0 !== t.sent.response) {\n                                    t.next = 29;\n                                    break\n                                }\n                                if (e.serviceNeedUpdate) return t.next = 20, z();\n                                t.next = 24;\n                                break;\n                            case 20:\n                                if (!t.sent) {\n                                    t.next = 22;\n                                    break\n                                }\n                                e.$parent.devMode || e.reloadElectron();\n                            case 22:\n                                t.next = 28;\n                                break;\n                            case 24:\n                                return t.next = 26, H();\n                            case 26:\n                                if (!t.sent) {\n                                    t.next = 28;\n                                    break\n                                }\n                                e.$parent.devMode || e.reloadElectron();\n                            case 28:\n                                console.log(\"service done\");\n                            case 29:\n                                e.systemProxyLoading = !1;\n                            case 30:\n                            case \"end\":\n                                return t.stop()\n                        }\n                    }), t)\n                })))()\n            },\n            handleAutoLaunchSwitchClick: function() {\n                var e = this;\n                return s()(c.a.mark((function t() {\n                    var i;\n                    return c.a.wrap((function(t) {\n                        for (;;) switch (t.prev = t.next) {\n                            case 0:\n                                if (i = !e.autoLaunch, e.autoLaunchLoading) return t.abrupt(\"return\");\n                                t.next = 3;\n                                break;\n                            case 3:\n                                e.autoLaunchLoading = !0, e.$setAutoLaunch(i), e.autoLaunch = i, E.a.put(O.a.AUTO_LAUNCH, i), e.autoLaunchLoading = !1;\n                            case 8:\n                            case \"end\":\n                                return t.stop()\n                        }\n                    }), t)\n                })))()\n            },\n            installTapDevice: function(e) {\n                var t = this;\n                return s()(c.a.mark((function e() {\n                    var i, n, r, o;\n                    return c.a.wrap((function(e) {\n                        for (;;) switch (e.prev = e.next) {\n                            case 0:\n                                if (Object(D.j)()) return e.prev = 1, e.next = 4, t.$select({\n                                    title: \"虚拟网卡设置管理\",\n                                    message: '名为 \"cfw-tap\" 的适配器会将您的数据路由到Clash中.<br /><br />如果弹出安装框, 请继续单击\"下一步\",  直到安装完成.',\n                                    items: [\"安装\", \"卸载\", \"定制\"]\n                                });\n                                e.next = 47;\n                                break;\n                            case 4:\n                                if (0 === (i = e.sent)) return e.prev = 6, e.next = 9, t.$parent.setupTapDevice(!0);\n                                e.next = 18;\n                                break;\n                            case 9:\n                                Object(T.h)(\"成功\", \"cfw-tap 已安装\", !0), (t.isMixinEnable || t.isTunEnable) && t.$parent.refreshProfile(), e.next = 16;\n                                break;\n                            case 13:\n                                e.prev = 13, e.t0 = e.catch(6), Object(T.h)(\"失败\", \"无法安装 cfw-tap.\", !0);\n                            case 16:\n                                e.next = 43;\n                                break;\n                            case 18:\n                                if (1 === i) return e.prev = 19, e.next = 22, t.$parent.setupTapDevice(!1);\n                                e.next = 30;\n                                break;\n                            case 22:\n                                Object(T.h)(\"成功\", \"cfw-tap 已被移除\", !0), e.next = 28;\n                                break;\n                            case 25:\n                                e.prev = 25, e.t1 = e.catch(19), Object(T.h)(\"失败\", \"无法移除 cfw-tap.\", !0);\n                            case 28:\n                                e.next = 43;\n                                break;\n                            case 30:\n                                if (2 === i) return o = null !== (r = E.a.get(O.a.TAP_INFO)) && void 0 !== r ? r : {}, n = o.ip, r = o.subnet, o = o.gateway, o = [{\n                                    name: \"IP地址\",\n                                    key: \"ip\",\n                                    placeholder: \"10.0.0.1\",\n                                    value: null != n ? n : \"\"\n                                }, {\n                                    name: \"子网掩码\",\n                                    key: \"subnet\",\n                                    placeholder: \"255.255.255.0\",\n                                    value: null != r ? r : \"\"\n                                }, {\n                                    name: \"默认网关\",\n                                    key: \"gateway\",\n                                    placeholder: \"10.0.0.0\",\n                                    value: null != o ? o : \"\"\n                                }], e.prev = 33, e.next = 36, t.$input({\n                                    title: \"虚拟网卡安装\",\n                                    data: o,\n                                    hint: \"更改这些字段后，您需要重新安装虚拟网卡!\"\n                                });\n                                e.next = 43;\n                                break;\n                            case 36:\n                                o = e.sent, E.a.put(O.a.TAP_INFO, o), e.next = 42;\n                                break;\n                            case 40:\n                                e.prev = 40, e.t2 = e.catch(33);\n                            case 42:\n                                t.installTapDevice();\n                            case 43:\n                                e.next = 47;\n                                break;\n                            case 45:\n                                e.prev = 45, e.t3 = e.catch(1);\n                            case 47:\n                            case \"end\":\n                                return e.stop()\n                        }\n                    }), e, null, [\n                        [1, 45],\n                        [6, 13],\n                        [19, 25],\n                        [33, 40]\n                    ])\n                })))()\n            },\n            openCmdWithProxy: function() {\n                var e = this;\n                return s()(c.a.mark((function t() {\n                    var i, n;\n                    return c.a.wrap((function(t) {\n                        for (;;) switch (t.prev = t.next) {\n                            case 0:\n                                if (t.prev = 0, !Object(D.i)() && !Object(D.h)()) {\n                                    t.next = 5;\n                                    break\n                                }\n                                e.handlePortClick(), t.next = 10;\n                                break;\n                            case 5:\n                                if (Object(D.j)()) return t.next = 8, e.$select({\n                                    title: \"打开终端并设置代理\",\n                                    message: \"选择一个终端\",\n                                    items: [\"CMD\", \"Powershell\", \"Windows Terminal\", \"Copy Commands Only\"]\n                                });\n                                t.next = 10;\n                                break;\n                            case 8:\n                                3 === (i = t.sent) ? e.handlePortClick() : (n = [\"cmd\", \"powershell\", \"wt\"], Object(k.exec)(\"start \".concat(n[i]), {\n                                    cwd: e.$parent.userPath,\n                                    windowsHide: !0,\n                                    env: {\n                                        http_proxy: \"http://127.0.0.1:\".concat(e.port),\n                                        https_proxy: \"http://127.0.0.1:\".concat(e.port)\n                                    }\n                                }));\n                            case 10:\n                                t.next = 14;\n                                break;\n                            case 12:\n                                t.prev = 12, t.t0 = t.catch(0);\n                            case 14:\n                            case \"end\":\n                                return t.stop()\n                        }\n                    }), t, null, [\n                        [0, 12]\n                    ])\n                })))()\n            },\n            handleEditMixedPort: function() {\n                var e = this;\n                return s()(c.a.mark((function t() {\n                    var i, n;\n                    return c.a.wrap((function(t) {\n                        for (;;) switch (t.prev = t.next) {\n                            case 0:\n                                return i = [{\n                                    name: \"新端口\",\n                                    key: \"port\",\n                                    placeholder: e.port,\n                                    value: \"\",\n                                    validate: function(e) {\n                                        return /^\\d+$/.test(e) && 0 <= +e && +e <= 65353 ? \"\" : \"Port must be an integer between 0 to 65353\"\n                                    }\n                                }], t.prev = 1, t.next = 4, e.$input({\n                                    title: \"更改混合端口\",\n                                    data: i,\n                                    hint: \"mixed = http + socks\"\n                                });\n                            case 4:\n                                if (n = (n = t.sent).port) return t.next = 9, e.clashAxiosClient.patch(\"/configs\", {\n                                    \"mixed-port\": +n\n                                });\n                                t.next = 15;\n                                break;\n                            case 9:\n                                if (204 === t.sent.status) return e.port = +n, t.next = 14, Object(T.j)(p.a.join(e.clashPath, \"config.yaml\"), \"mixed-port\", +n);\n                                t.next = 15;\n                                break;\n                            case 14:\n                                e.setConfData({\n                                    data: V(V({}, e.confData), {}, {\n                                        \"mixed-port\": +n\n                                    })\n                                });\n                            case 15:\n                                t.next = 19;\n                                break;\n                            case 17:\n                                t.prev = 17, t.t0 = t.catch(1);\n                            case 19:\n                            case \"end\":\n                                return t.stop()\n                        }\n                    }), t, null, [\n                        [1, 17]\n                    ])\n                })))()\n            },\n            handleCopyControllerURL: function() {\n                I.shell.openExternal(\"https://clash.razord.top/?host=127.0.0.1&port=\".concat(this.controllerPort))\n            },\n            spawnLoopback: function(e) {\n                var t;\n                Object(D.j)() && (t = p.a.join(this.filesPath, \"win\", \"common\"), I.shell.openPath(p.a.join(t, \"EnableLoopback.exe\")))\n            },\n            openGithubRelease: function() {\n                var e = this;\n                return s()(c.a.mark((function t() {\n                    var n;\n                    return c.a.wrap((function(t) {\n                        for (;;) switch (t.prev = t.next) {\n                            case 0:\n                                if (Object(D.i)() && e.isSilentUpgraded) return t.next = 3, e.$select({\n                                    title: \"自动升级 completed!\",\n                                    message: \"是否要重启APP?\",\n                                    items: [\"重新启动\", \"取消\"]\n                                });\n                                t.next = 8;\n                                break;\n                            case 3:\n                                if (0 === t.sent) return t.next = 7, e.reloadElectron();\n                                t.next = 7;\n                                break;\n                            case 7:\n                                return t.abrupt(\"return\");\n                            case 8:\n                                return n = function() {\n                                    var t = s()(c.a.mark((function t(n) {\n                                        var r, o, s, a, l, d, h, u;\n                                        return c.a.wrap((function(t) {\n                                            for (;;) switch (t.prev = t.next) {\n                                                case 0:\n                                                    return a = e.$parent.newVersionInfo, r = a.url, o = a.version, s = a.log, a = void 0 !== (a = a.isPortable) && a, t.next = 3, I.ipcRenderer.invoke(\"app\", \"getAppPath\");\n                                                case 3:\n                                                    if (l = t.sent.startsWith(\"C:\\\\Program Files\\\\\"), r) return t.next = 7, e.$select({\n                                                        title: \"\".concat(o, \" had been released\"),\n                                                        message: s.replace(/\\n/g, \"<br />\"),\n                                                        items: [a || Object(D.h)() ? \"\" : \"更新(原版)\", \"下载(原版)\", \"复制URL(原版)\", \"取消\"]\n                                                    });\n                                                    t.next = 34;\n                                                    break;\n                                                case 7:\n                                                    if (0 !== (d = t.sent)) {\n                                                        t.next = 31;\n                                                        break\n                                                    }\n                                                    if (null !== e.updateDownloadProgress) return t.abrupt(\"return\");\n                                                    t.next = 11;\n                                                    break;\n                                                case 11:\n                                                    return t.next = 13, Object(w.a)(r, o).catch((function(e) {\n                                                        C.a.info(\"upgrade app failed with error: \".concat(e))\n                                                    }));\n                                                case 13:\n                                                    if (h = t.sent, C.a.info(\"upgrade asset path: \".concat(h)), Object(D.i)()) return t.next = 18, Object(T.g)({\n                                                        type: \"info\",\n                                                        message: \"更新安装成功，要重启APP吗?\",\n                                                        buttons: [\"是\", \"否\"]\n                                                    });\n                                                    t.next = 23;\n                                                    break;\n                                                case 18:\n                                                    if (0 === (u = t.sent).response) return t.next = 23, e.reloadElectron();\n                                                    t.next = 23;\n                                                    break;\n                                                case 23:\n                                                    if (Object(D.j)()) return t.next = 26, Object(T.g)({\n                                                        type: \"info\",\n                                                        message: \"原版包下载成功，要执行吗?\",\n                                                        buttons: [\"是\", \"否\"]\n                                                    });\n                                                    t.next = 29;\n                                                    break;\n                                                case 26:\n                                                    0 === (u = t.sent).response && (l ? i(124).exec(\"\".concat(h, \" /S\")) : ((u = function() {\n                                                        try {\n                                                            Object(k.spawnSync)(h, [\"/S\"], {\n                                                                detached: !0,\n                                                                windowsHide: !0\n                                                            })\n                                                        } catch (e) {}\n                                                    })(), setInterval(u, 2e3)));\n                                                case 29:\n                                                    t.next = 32;\n                                                    break;\n                                                case 31:\n                                                    1 === d ? I.shell.openExternal(r) : 2 === d && I.clipboard.writeText(r);\n                                                case 32:\n                                                    t.next = 35;\n                                                    break;\n                                                case 34:\n                                                    e.$alert({\n                                                        title: \"当前版本是最新的\",\n                                                        content: \"当前汉化版本也是最新的.\"\n                                                    });\n                                                case 35:\n                                                case \"end\":\n                                                    return t.stop()\n                                            }\n                                        }), t)\n                                    })));\n                                    return function(e) {\n                                        return t.apply(this, arguments)\n                                    }\n                                }(), t.next = 11, e.$parent.checkForUpdate();\n                            case 11:\n                                return t.next = 13, n();\n                            case 13:\n                            case \"end\":\n                                return t.stop()\n                        }\n                    }), t)\n                })))()\n            },\n            handleHomeDirectoryOpen: function() {\n                I.shell.openPath(p.a.resolve(this.clashPath))\n            },\n            handleGeoipDatabaseUpdate: function() {\n                this.updateGeoipDB()\n            },\n            handlePortClick: function() {\n                var e = this;\n                return s()(c.a.mark((function t() {\n                    var i, n, r;\n                    return c.a.wrap((function(t) {\n                        for (;;) switch (t.prev = t.next) {\n                            case 0:\n                                if (n = function() {\n                                        var t = s()(c.a.mark((function t(i) {\n                                            var n;\n                                            return c.a.wrap((function(t) {\n                                                for (;;) switch (t.prev = t.next) {\n                                                    case 0:\n                                                        return n = [{\n                                                            name: \"\",\n                                                            key: \"command\",\n                                                            placeholder: \"\",\n                                                            value: (n = E.a.get(O.a.SYSTEM_PROXY_COMMAND)) || i\n                                                        }], t.next = 4, e.$input({\n                                                            title: \"复制命令\",\n                                                            data: n,\n                                                            hint: \"\"\n                                                        }).catch((function(e) {}));\n                                                    case 4:\n                                                        return n = (n = t.sent).command, E.a.put(O.a.SYSTEM_PROXY_COMMAND, n || \"\"), t.abrupt(\"return\", (n || \"\").replace(/%mixedPort%/g, e.port).replace(/%(.+?)%/g, (function(e) {\n                                                            console.log(e.slice(1, -1));\n                                                            var t = (Object(N.b)().find((function(t) {\n                                                                return t.name === e.slice(1, -1)\n                                                            })) || {}).address;\n                                                            return void 0 === t ? \"\" : t\n                                                        })));\n                                                    case 8:\n                                                    case \"end\":\n                                                        return t.stop()\n                                                }\n                                            }), t)\n                                        })));\n                                        return function(e) {\n                                            return t.apply(this, arguments)\n                                        }\n                                    }(), Object(D.i)() || Object(D.h)()) return t.next = 4, n(\"export https_proxy=http://127.0.0.1:%mixedPort%;export http_proxy=http://127.0.0.1:%mixedPort%;export all_proxy=socks5://127.0.0.1:%mixedPort%\");\n                                t.next = 7;\n                                break;\n                            case 4:\n                                i = t.sent, t.next = 27;\n                                break;\n                            case 7:\n                                if (Object(D.j)()) return t.prev = 8, t.next = 11, e.$select({\n                                    title: \"复制代理设置命令\",\n                                    message: \"选择一个终端\",\n                                    items: [\"CMD\", \"Powershell\", \"自定义\"]\n                                });\n                                t.next = 27;\n                                break;\n                            case 11:\n                                if (0 !== (r = t.sent)) {\n                                    t.next = 16;\n                                    break\n                                }\n                                i = \"set http_proxy=http://127.0.0.1:\".concat(e.port, \" & set https_proxy=http://127.0.0.1:\").concat(e.port), t.next = 23;\n                                break;\n                            case 16:\n                                if (1 !== r) {\n                                    t.next = 20;\n                                    break\n                                }\n                                i = '$Env:http_proxy=\"http://127.0.0.1:'.concat(e.port, '\";$Env:https_proxy=\"http://127.0.0.1:').concat(e.port, '\"'), t.next = 23;\n                                break;\n                            case 20:\n                                return t.next = 22, n(\"export https_proxy=http://127.0.0.1:%mixedPort%;export http_proxy=http://127.0.0.1:%mixedPort%;export all_proxy=socks5://127.0.0.1:%mixedPort%\");\n                            case 22:\n                                i = t.sent;\n                            case 23:\n                                t.next = 27;\n                                break;\n                            case 25:\n                                t.prev = 25, t.t0 = t.catch(8);\n                            case 27:\n                                i && (I.clipboard.writeText(i), Object(T.h)(\"命令已复制到剪贴板!\", i, !0));\n                            case 28:\n                            case \"end\":\n                                return t.stop()\n                        }\n                    }), t, null, [\n                        [8, 25]\n                    ])\n                })))()\n            },\n            autoFix: function() {\n                var e = this;\n                return s()(c.a.mark((function t() {\n                    return c.a.wrap((function(t) {\n                        for (;;) switch (t.prev = t.next) {\n                            case 0:\n                                try {\n                                    f.a.unlinkSync(p.a.join(e.clashPath, \"config.yaml\"))\n                                } catch (t) {}\n                                try {\n                                    f.a.unlinkSync(p.a.join(e.clashPath, \"country.mmdb\"))\n                                } catch (t) {}\n                                return t.next = 4, e.reloadElectron();\n                            case 4:\n                            case \"end\":\n                                return t.stop()\n                        }\n                    }), t)\n                })))()\n            },\n            updateGeoipDB: function() {\n                var e = this;\n                return s()(c.a.mark((function t() {\n                    var i, n, r, o, s, a, l, d, h, u, g;\n                    return c.a.wrap((function(t) {\n                        for (;;) switch (t.prev = t.next) {\n                            case 0:\n                                if (Object(D.j)()) return e.$alert({\n                                    content: \"CFW 不允许更新 GeoIP 数据库，请手动进行.\",\n                                    title: \"Note\"\n                                }), t.abrupt(\"return\");\n                                t.next = 3;\n                                break;\n                            case 3:\n                                if (i = e.geoipUpdateTime, /^Updating/.test(e.geoipUpdateTime)) return t.abrupt(\"return\");\n                                t.next = 6;\n                                break;\n                            case 6:\n                                return n = [{\n                                    name: \"MaxMind User License Key\",\n                                    key: \"token\",\n                                    placeholder: \"\",\n                                    value: E.a.get(O.a.GEOIP_TOKEN) || \"\"\n                                }, {\n                                    name: \"URL\",\n                                    key: \"url\",\n                                    placeholder: \"\",\n                                    value: E.a.get(O.a.GEOIP_URL) || \"https://github.com/Dreamacro/maxmind-geoip/releases/latest/download/Country.mmdb\"\n                                }], t.prev = 7, t.next = 10, e.$input({\n                                    title: \"更新 GeoIP 数据库\",\n                                    data: n,\n                                    hint: \"输入字段是替代的\"\n                                });\n                            case 10:\n                                if (o = t.sent, r = void 0 === (r = o.url) ? \"\" : r, o = void 0 === (o = o.token) ? \"\" : o, E.a.put(O.a.GEOIP_TOKEN, o), E.a.put(O.a.GEOIP_URL, r), e.clashPath) {\n                                    t.next = 19;\n                                    break\n                                }\n                                return t.abrupt(\"return\");\n                            case 19:\n                                if (s = function(t, i) {\n                                        f.a.ftruncateSync(f.a.openSync(t, \"r+\"), i), e.$parent.handlerRestartClash()\n                                    }, o) return e.geoipUpdateTime = \"更新中... (0%)\", t.t0 = p.a, t.next = 25, I.ipcRenderer.invoke(\"app\", \"getPath\", \"temp\");\n                                t.next = 39;\n                                break;\n                            case 25:\n                                t.t1 = t.sent, g = t.t0.join.call(t.t0, t.t1), p.a.join(g, \"cfw_geoip.tag.gz\"), (d = _.a.stream(\"https://download.maxmind.com/app/geoip_download?edition_id=GeoLite2-Country&license_key=\".concat(o, \"&suffix=tar.gz\"))).on(\"downloadProgress\", (function(t) {\n                                    var i = 1 === t.percent ? \"重新启动核心...\" : \"更新中... (\".concat(Math.round(100 * t.percent), \"%)\");\n                                    e.geoipUpdateTime = i\n                                })), d.on(\"error\", (function(t) {\n                                    e.$alert({\n                                        content: \"下载 GeoIP 数据库 failed with error: \".concat(t.name)\n                                    }), e.geoipUpdateTime = i\n                                })), a = p.a.join(e.clashPath, \"Country.mmdb\"), g = S.a.extract(), l = 0, g.on(\"entry\", (function(e, t, i) {\n                                    t.on(\"end\", (function() {\n                                        i()\n                                    })), /GeoLite2-Country\\.mmdb$/.test(e.name) ? (l = e.size, t.pipe(f.a.createWriteStream(a, {\n                                        flags: \"r+\"\n                                    }))) : t.resume()\n                                })), g.on(\"finish\", (function() {\n                                    s(a, l)\n                                })), d.pipe(x.a.createGunzip()).pipe(g), t.next = 40;\n                                break;\n                            case 39:\n                                r && (e.geoipUpdateTime = \"更新中... (0%)\", d = _.a.stream(r), h = 0, d.on(\"downloadProgress\", (function(t) {\n                                    var i = t.percent,\n                                        n = t.total,\n                                        r = 1 === i ? (h = n, \"重新启动核心...\") : \"Updating... (\".concat(Math.round(100 * t.percent), \"%)\");\n                                    e.geoipUpdateTime = r\n                                })), d.on(\"error\", (function(t) {\n                                    e.$alert({\n                                        content: \"下载 GeoIP 数据库 failed with error: \".concat(t.name)\n                                    }), e.geoipUpdateTime = i\n                                })), u = p.a.join(e.clashPath, \"Country.mmdb\"), (g = f.a.createWriteStream(u, {\n                                    flags: \"r+\"\n                                })).on(\"finish\", (function() {\n                                    s(u, h)\n                                })), d.pipe(g));\n                            case 40:\n                                t.next = 44;\n                                break;\n                            case 42:\n                                t.prev = 42, t.t2 = t.catch(7);\n                            case 44:\n                            case \"end\":\n                                return t.stop()\n                        }\n                    }), t, null, [\n                        [7, 42]\n                    ])\n                })))()\n            },\n            setupSwitches: function() {\n                this.autoLaunchLoading = !1, this.systemProxyLoading = !1\n            },\n            setupComponent: function() {\n                var e = this;\n                return s()(c.a.mark((function t() {\n                    var i, n, o, s;\n                    return c.a.wrap((function(t) {\n                        for (;;) switch (t.prev = t.next) {\n                            case 0:\n                                if ((o = e).clashAxiosClient) return t.prev = 2, t.next = 5, Promise.all([o.clashAxiosClient.get(\"/configs\"), o.fetchCoreVersion()]);\n                                t.next = 18;\n                                break;\n                            case 5:\n                                s = t.sent, i = r()(s, 1), n = i[0], o = n.status, s = n.data, 200 === o && (i = s[\"mixed-port\"], n = s[\"allow-lan\"], o = s[\"log-level\"], s = s.ipv6, e.port = i, e.isAllowLan = n, e.logLevel = o, e.isIPV6 = s, e.geoipUpdateTime = v()(f.a.statSync(p.a.join(e.clashPath, \"Country.mmdb\")).mtimeMs).format(\"YYYY-MM-DD HH:mm\")), t.next = 16;\n                                break;\n                            case 13:\n                                t.prev = 13, t.t0 = t.catch(2), console.error(t.t0.stack);\n                            case 16:\n                                t.next = 18;\n                                break;\n                            case 18:\n                            case \"end\":\n                                return t.stop()\n                        }\n                    }), t, null, [\n                        [2, 13]\n                    ])\n                })))()\n            },\n            fetchCoreVersion: function() {\n                var e = this;\n                return s()(c.a.mark((function t() {\n                    var i, n;\n                    return c.a.wrap((function(t) {\n                        for (;;) switch (t.prev = t.next) {\n                            case 0:\n                                if (e.clashAxiosClient) return t.next = 3, e.clashAxiosClient.get(\"/version\");\n                                t.next = 6;\n                                break;\n                            case 3:\n                                i = t.sent, (n = i.data) ? (i = n.premium, n = n.version, e.clashCoreVersion = void 0 !== i && void 0 !== n ? \"\".concat(n, \" \").concat(i ? \"Premium\" : \"\") : \"Unknown\") : e.clashCoreVersion = \"Unknown\";\n                            case 6:\n                            case \"end\":\n                                return t.stop()\n                        }\n                    }), t)\n                })))()\n            }\n        }),\n        mounted: function() {\n            return s()(c.a.mark((function e() {\n                return c.a.wrap((function(e) {\n                    for (;;) switch (e.prev = e.next) {\n                        case 0:\n                        case \"end\":\n                            return e.stop()\n                    }\n                }), e)\n            })))()\n        },\n        beforeRouteEnter: function(e, t, i) {\n            var n;\n            i((n = s()(c.a.mark((function e(t) {\n                return c.a.wrap((function(e) {\n                    for (;;) switch (e.prev = e.next) {\n                        case 0:\n                            return e.t0 = \"v \", e.next = 3, I.ipcRenderer.invoke(\"app\", \"getVersion\");\n                        case 3:\n                            e.t1 = e.sent, t.version = e.t0.concat.call(e.t0, e.t1), t.networkInterfaces = Object(N.b)(), t.serviceNeedUpdate = W(), t.setupComponent(), setTimeout(t.setupSwitches, 1);\n                        case 9:\n                        case \"end\":\n                            return e.stop()\n                    }\n                }), e)\n            }))), function(e) {\n                return n.apply(this, arguments)\n            }))\n        },\n        beforeRouteLeave: function(e, t, i) {\n            i()\n        }\n    }, i(306), i(308), h = Object(d.a)(h, (function() {\n        var e = this,\n            t = e.$createElement,\n            i = e._self._c || t;\n        return i(\"div\", {\n            class: [\"main-general-view-\" + e.theme]\n        }, [i(\"div\", {\n            staticClass: \"header\"\n        }, [i(\"img\", {\n            staticClass: \"icon\",\n            attrs: {\n                src: e.iconPath\n            }\n        }), e._v(\" \"), i(\"div\", {\n            class: [\"title-\" + e.theme]\n        }, [i(\"div\", {\n            staticClass: \"title-name\",\n            on: {\n                click: e.reloadElectron\n            }\n        }, [e._v(\"Clash for Windows\")]), e._v(\" \"), i(\"div\", {\n            staticClass: \"version\",\n            on: {\n                click: e.openGithubRelease\n            }\n        }, [e._v(\"\\n        \" + e._s(e.version) + \"\\n        \"), e.isShowNewIcon ? i(\"div\", {\n            staticClass: \"new-version-tag\"\n        }, [e._v(\"New\")]) : e._e()])])]), e._v(\" \"), e.isLaunching ? e._e() : i(\"div\", {\n            staticClass: \"content\"\n        }, [i(\"div\", {\n            class: [\"item-\" + e.theme]\n        }, [i(\"div\", {\n            staticClass: \"item-left\"\n        }, [e._v(\"端口\")]), e._v(\" \"), i(\"div\", {\n            staticClass: \"item-right\"\n        }, [i(\"img\", {\n            staticClass: \"control-icon\",\n            attrs: {\n                title: \"终端和代理\",\n                src: \"static/imgs/terminal.svg\",\n                alt: \"\"\n            },\n            on: {\n                click: function(t) {\n                    return t.stopPropagation(), e.openCmdWithProxy()\n                }\n            }\n        }), e._v(\" \"), i(\"div\", {\n            class: \"clickable-\" + e.theme,\n            on: {\n                click: e.handleEditMixedPort\n            }\n        }, [e._v(\"\\n          \" + e._s(e.port) + \"\\n        \")])])]), e._v(\" \"), i(\"div\", {\n            class: [\"item-\" + e.theme],\n            on: {\n                mouseenter: function(t) {\n                    e.showInterfaces = !0\n                },\n                mouseleave: function(t) {\n                    e.showInterfaces = !1\n                }\n            }\n        }, [i(\"div\", {\n            staticClass: \"item-left\"\n        }, [e._v(\"允许局域网\")]), e._v(\" \"), i(\"div\", {\n            staticClass: \"item-right\"\n        }, [i(\"switch-view\", {\n            attrs: {\n                on: e.isAllowLan\n            },\n            on: {\n                change: function(t) {\n                    return e.handleAllowLANChange(e.isAllowLan)\n                }\n            }\n        })], 1)]), e._v(\" \"), i(\"div\", {\n            class: [\"item-\" + e.theme]\n        }, [i(\"div\", {\n            staticClass: \"item-left\"\n        }, [e._v(\"日志级别\")]), e._v(\" \"), i(\"div\", {\n            staticClass: \"item-right\"\n        }, [i(\"div\", {\n            class: \"clickable-\" + e.theme,\n            on: {\n                click: e.handleEditLogLevel\n            }\n        }, [e._v(\"\\n          \" + (\"silent\" == e._s(e.logLevel) ? \"静默\" : \"error\" == e._s(e.logLevel) ? \"错误\" : \"warning\" == e._s(e.logLevel) ? \"警告\" : \"info\" == e._s(e.logLevel) ? \"信息\" : \"debug\" == e._s(e.logLevel) ? \"调试\" : e._s(e.logLevel)) + \"\\n        \")])])]), e._v(\" \"), i(\"div\", {\n            class: [\"item-\" + e.theme]\n        }, [i(\"div\", {\n            staticClass: \"item-left\"\n        }, [e._v(\"IPv6\")]), e._v(\" \"), i(\"div\", {\n            staticClass: \"item-right\"\n        }, [i(\"switch-view\", {\n            attrs: {\n                on: e.isIPV6\n            },\n            on: {\n                change: function(t) {\n                    return e.handleIPV6Change(e.isIPV6)\n                }\n            }\n        })], 1)]), e._v(\" \"), i(\"div\", {\n            class: [\"item-\" + e.theme]\n        }, [i(\"div\", {\n            staticClass: \"item-left\"\n        }, [e._v(\"Clash 核心版本\")]), e._v(\" \"), i(\"div\", {\n            staticClass: \"item-right\",\n            class: \"clickable-\" + e.theme,\n            on: {\n                click: e.handleCopyControllerURL\n            }\n        }, [e._v(\"\\n        \" + e._s(e.clashCoreVersion) + \" (\" + e._s(e.controllerPort) + \")\\n      \")])]), e._v(\" \"), i(\"div\", {\n            class: [\"item-\" + e.theme]\n        }, [i(\"div\", {\n            staticClass: \"item-left\"\n        }, [e._v(\"主目录\")]), e._v(\" \"), i(\"div\", {\n            staticClass: \"item-right\",\n            class: \"clickable-\" + e.theme,\n            on: {\n                click: e.handleHomeDirectoryOpen\n            }\n        }, [e._v(\"\\n        打开文件夹\\n      \")])]), e._v(\" \"), e.isWindows ? e._e() : i(\"div\", {\n            class: [\"item-\" + e.theme]\n        }, [i(\"div\", {\n            staticClass: \"item-left\"\n        }, [e._v(\"GeoIP Database\")]), e._v(\" \"), i(\"div\", {\n            staticClass: \"item-right\",\n            class: \"clickable-\" + e.theme,\n            on: {\n                click: e.handleGeoipDatabaseUpdate\n            }\n        }, [e._v(\"\\n        \" + e._s(e.geoipUpdateTime) + \"\\n      \")])]), e._v(\" \"), e.showInterfaces && e.isAllowLan ? i(\"div\", {\n            class: [\"interfaces-card-\" + e.theme]\n        }, e._l(e.networkInterfaces, (function(t, n) {\n            return i(\"div\", {\n                key: n,\n                class: [\"interfaces-content-\" + e.theme]\n            }, [i(\"div\", {\n                staticClass: \"interface-address\"\n            }, [e._v(e._s(t.address))]), e._v(\" \"), i(\"div\", {\n                staticClass: \"interface-name\"\n            }, [e._v(e._s(t.name))])])\n        })), 0) : e._e(), e._v(\" \"), e.isWindows ? i(\"div\", {\n            class: [\"item-\" + e.theme]\n        }, [i(\"div\", {\n            staticClass: \"item-left\"\n        }, [e._v(\"UWP 应用联网限制解除工具\")]), e._v(\" \"), i(\"div\", {\n            class: [\"item-right\", \"clickable-\" + e.theme],\n            on: {\n                click: function(t) {\n                    return e.spawnLoopback(t)\n                }\n            }\n        }, [e._v(\"\\n        启动助手\\n      \")])]) : e._e(), e._v(\" \"), e.isWindows ? i(\"div\", {\n            class: [\"item-\" + e.theme]\n        }, [i(\"div\", {\n            staticClass: \"item-left\"\n        }, [e._v(\"虚拟网卡安装\")]), e._v(\" \"), i(\"div\", {\n            class: [\"item-right\", \"clickable-\" + e.theme],\n            on: {\n                click: function(t) {\n                    return e.installTapDevice(t)\n                }\n            }\n        }, [e._v(\"\\n        管理\\n      \")])]) : e._e(), e._v(\" \"), i(\"div\", {\n            class: [\"item-\" + e.theme]\n        }, [i(\"div\", {\n            staticClass: \"item-left\"\n        }, [e._v(\"服务模式\")]), e._v(\" \"), i(\"svg\", {\n            staticStyle: {\n                \"margin-left\": \"5px\",\n                \"margin-top\": \"2px\"\n            },\n            attrs: {\n                fill: e.isLocalMode ? \"#b3b3b3\" : e.serviceNeedUpdate ? \"#DE5034\" : \"#41b883\",\n                xmlns: \"http://www.w3.org/2000/svg\",\n                height: \"18\",\n                viewBox: \"0 0 24 24\",\n                width: \"18\"\n            }\n        }, [i(\"path\", {\n            attrs: {\n                d: \"M0 0h24v24H0V0z\",\n                fill: \"none\"\n            }\n        }), e._v(\" \"), i(\"path\", {\n            attrs: {\n                d: \"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-1 17.93c-3.95-.49-7-3.85-7-7.93 0-.62.08-1.21.21-1.79L9 15v1c0 1.1.9 2 2 2v1.93zm6.9-2.54c-.26-.81-1-1.39-1.9-1.39h-1v-3c0-.55-.45-1-1-1H8v-2h2c.55 0 1-.45 1-1V7h2c1.1 0 2-.9 2-2v-.41c2.93 1.19 5 4.06 5 7.41 0 2.08-.8 3.97-2.1 5.39z\"\n            }\n        })]), e._v(\" \"), i(\"div\", {\n            staticStyle: {\n                \"flex-grow\": \"1\"\n            }\n        }), e._v(\" \"), i(\"div\", {\n            class: [\"item-right\", \"clickable-\" + e.theme],\n            on: {\n                click: e.installService\n            }\n        }, [e._v(\"\\n        管理\\n      \")])]), e._v(\" \"), i(\"div\", {\n            class: [\"item-\" + e.theme]\n        }, [i(\"div\", {\n            staticClass: \"item-left\"\n        }, [i(\"div\", [e._v(\"TUN 模式\")]), e._v(\" \"), i(\"info-icon\", [e._v(\"\\n          要启用此模式，请先安装服务模式!\\n        \")]), e._v(\" \"), i(\"Hint\", {\n            staticClass: \"tun-settings-icon clickable\",\n            attrs: {\n                hint: \"设置\",\n                position: \"right\"\n            },\n            on: {\n                click: function(t) {\n                    t.stopPropagation(), e.isTunSettingsVisible = !e.isTunSettingsVisible\n                }\n            }\n        }, [i(\"svg\", {\n            staticClass: \"setting-icon\",\n            attrs: {\n                xmlns: \"http://www.w3.org/2000/svg\",\n                \"enable-background\": \"new 0 0 24 24\",\n                viewBox: \"0 0 24 24\"\n            }\n        }, [i(\"rect\", {\n            attrs: {\n                fill: \"none\",\n                height: \"24\",\n                width: \"24\"\n            }\n        }), e._v(\" \"), i(\"path\", {\n            attrs: {\n                d: \"M19.5,12c0-0.23-0.01-0.45-0.03-0.68l1.86-1.41c0.4-0.3,0.51-0.86,0.26-1.3l-1.87-3.23c-0.25-0.44-0.79-0.62-1.25-0.42 l-2.15,0.91c-0.37-0.26-0.76-0.49-1.17-0.68l-0.29-2.31C14.8,2.38,14.37,2,13.87,2h-3.73C9.63,2,9.2,2.38,9.14,2.88L8.85,5.19 c-0.41,0.19-0.8,0.42-1.17,0.68L5.53,4.96c-0.46-0.2-1-0.02-1.25,0.42L2.41,8.62c-0.25,0.44-0.14,0.99,0.26,1.3l1.86,1.41 C4.51,11.55,4.5,11.77,4.5,12s0.01,0.45,0.03,0.68l-1.86,1.41c-0.4,0.3-0.51,0.86-0.26,1.3l1.87,3.23c0.25,0.44,0.79,0.62,1.25,0.42 l2.15-0.91c0.37,0.26,0.76,0.49,1.17,0.68l0.29,2.31C9.2,21.62,9.63,22,10.13,22h3.73c0.5,0,0.93-0.38,0.99-0.88l0.29-2.31 c0.41-0.19,0.8-0.42,1.17-0.68l2.15,0.91c0.46,0.2,1,0.02,1.25-0.42l1.87-3.23c0.25-0.44,0.14-0.99-0.26-1.3l-1.86-1.41 C19.49,12.45,19.5,12.23,19.5,12z M12.04,15.5c-1.93,0-3.5-1.57-3.5-3.5s1.57-3.5,3.5-3.5s3.5,1.57,3.5,3.5S13.97,15.5,12.04,15.5z\"\n            }\n        })])])], 1), e._v(\" \"), i(\"switch-view\", {\n            attrs: {\n                on: e.isTunEnable\n            },\n            on: {\n                change: e.handleTunSwitchClick\n            }\n        })], 1), e._v(\" \"), i(\"div\", {\n            class: [\"item-\" + e.theme]\n        }, [i(\"div\", {\n            staticClass: \"item-left\"\n        }, [i(\"div\", [e._v(\"混淆\")]), e._v(\" \"), i(\"info-icon\", [e._v(\"\\n          Mixin允许您覆盖原始配置文件.\\n          \"), i(\"a\", {\n            attrs: {\n                href: \"https://docs.cfw.lbyczf.com/contents/mixin.html\"\n            }\n        }, [e._v(\"文件\")])]), e._v(\" \"), i(\"Hint\", {\n            staticClass: \"tun-settings-icon clickable\",\n            attrs: {\n                hint: \"编辑 Mixin 内容\",\n                position: \"right\"\n            },\n            on: {\n                click: function(t) {\n                    return t.stopPropagation(), e.handleEditMixin.apply(null, arguments)\n                }\n            }\n        }, [i(\"svg\", {\n            staticClass: \"setting-icon\",\n            attrs: {\n                xmlns: \"http://www.w3.org/2000/svg\",\n                \"enable-background\": \"new 0 0 24 24\",\n                viewBox: \"0 0 24 24\"\n            }\n        }, [i(\"rect\", {\n            attrs: {\n                fill: \"none\",\n                height: \"24\",\n                width: \"24\"\n            }\n        }), e._v(\" \"), i(\"path\", {\n            attrs: {\n                d: \"M19.5,12c0-0.23-0.01-0.45-0.03-0.68l1.86-1.41c0.4-0.3,0.51-0.86,0.26-1.3l-1.87-3.23c-0.25-0.44-0.79-0.62-1.25-0.42 l-2.15,0.91c-0.37-0.26-0.76-0.49-1.17-0.68l-0.29-2.31C14.8,2.38,14.37,2,13.87,2h-3.73C9.63,2,9.2,2.38,9.14,2.88L8.85,5.19 c-0.41,0.19-0.8,0.42-1.17,0.68L5.53,4.96c-0.46-0.2-1-0.02-1.25,0.42L2.41,8.62c-0.25,0.44-0.14,0.99,0.26,1.3l1.86,1.41 C4.51,11.55,4.5,11.77,4.5,12s0.01,0.45,0.03,0.68l-1.86,1.41c-0.4,0.3-0.51,0.86-0.26,1.3l1.87,3.23c0.25,0.44,0.79,0.62,1.25,0.42 l2.15-0.91c0.37,0.26,0.76,0.49,1.17,0.68l0.29,2.31C9.2,21.62,9.63,22,10.13,22h3.73c0.5,0,0.93-0.38,0.99-0.88l0.29-2.31 c0.41-0.19,0.8-0.42,1.17-0.68l2.15,0.91c0.46,0.2,1,0.02,1.25-0.42l1.87-3.23c0.25-0.44,0.14-0.99-0.26-1.3l-1.86-1.41 C19.49,12.45,19.5,12.23,19.5,12z M12.04,15.5c-1.93,0-3.5-1.57-3.5-3.5s1.57-3.5,3.5-3.5s3.5,1.57,3.5,3.5S13.97,15.5,12.04,15.5z\"\n            }\n        })])])], 1), e._v(\" \"), i(\"switch-view\", {\n            attrs: {\n                on: e.isMixinEnable\n            },\n            on: {\n                change: e.handleMixinSwitchClick\n            }\n        })], 1), e._v(\" \"), e.isLinux ? e._e() : i(\"div\", {\n            class: [\"item-\" + e.theme]\n        }, [i(\"div\", {\n            staticClass: \"item-left\"\n        }, [e._v(\"系统代理\")]), e._v(\" \"), i(\"switch-view\", {\n            attrs: {\n                on: e.isSystemProxyOn\n            },\n            on: {\n                change: e.handleSystemProxySwitchClick\n            }\n        })], 1), e._v(\" \"), i(\"div\", {\n            class: [\"item-\" + e.theme]\n        }, [i(\"div\", {\n            staticClass: \"item-left\"\n        }, [e._v(e._s(e.autoLaunchHint))]), e._v(\" \"), i(\"switch-view\", {\n            attrs: {\n                on: e.autoLaunch\n            },\n            on: {\n                change: e.handleAutoLaunchSwitchClick\n            }\n        })], 1)]), e._v(\" \"), e.isLaunching ? i(\"error-view\") : e._e(), e._v(\" \"), e.isTunSettingsVisible ? i(\"tun-settings-view\", {\n            on: {\n                close: function(t) {\n                    e.isTunSettingsVisible = !1\n                }\n            }\n        }) : e._e(), e._v(\" \"), i(\"div\", {\n            staticClass: \"empty-div\"\n        })], 1)\n    }), [], !1, null, \"6e447f5a\", null);\n    t.default = h.exports\n}, function(e, t, i) {\n    \"use strict\";\n    i.r(t);\n    var n = i(10),\n        r = i.n(n),\n        o = i(52),\n        s = i.n(o),\n        a = i(18),\n        l = i.n(a),\n        d = (n = i(3), i.n(n)),\n        c = i(22),\n        h = (o = i(27), i(35)),\n        u = (a = i(254), i.n(a)),\n        p = i(42),\n        g = i(38),\n        f = i(127);\n    n = {\n        name: \"RouterConfigView\",\n        data: function() {\n            return {\n                interfaces: [],\n                selectedName: \"\",\n                localAddress: \"\",\n                rangeFrom: \"\",\n                rangeTo: \"\",\n                netmask: \"255.255.255.0\",\n                defaultRouter: \"\",\n                primaryDns: \"223.5.5.5\",\n                secondlyDns: \"114.114.114.114\",\n                broadAddress: \"\"\n            }\n        },\n        computed: {\n            selectedInterface: function() {\n                var e = this;\n                return this.interfaces.find((function(t) {\n                    return t.name === e.selectedName\n                }))\n            }\n        },\n        watch: {\n            selectedInterface: function(e) {\n                e = e.address, this.localAddress = e, this.computeFromLocalAddress(e)\n            }\n        },\n        methods: {\n            computeFromLocalAddress: function(e) {\n                4 === (e = e.split(\".\")).length && (this.rangeFrom = [].concat(s()(e.slice(0, 3)), [\"100\"]).join(\".\"), this.rangeTo = [].concat(s()(e.slice(0, 3)), [\"200\"]).join(\".\"), this.defaultRouter = [].concat(s()(e.slice(0, 3)), [\"1\"]).join(\".\"), this.broadAddress = [].concat(s()(e.slice(0, 3)), [\"255\"]).join(\".\"))\n            },\n            handleInterfaceSelect: function() {\n                var e = this;\n                return r()(d.a.mark((function t() {\n                    var i, n;\n                    return d.a.wrap((function(t) {\n                        for (;;) switch (t.prev = t.next) {\n                            case 0:\n                                return i = e.interfaces.map((function(e) {\n                                    return e.name\n                                })), t.next = 3, e.$select({\n                                    title: \"Select a interface\",\n                                    message: \"\",\n                                    items: i\n                                });\n                            case 3:\n                                n = t.sent, e.selectedName = i[n];\n                            case 5:\n                            case \"end\":\n                                return t.stop()\n                        }\n                    }), t)\n                })))()\n            },\n            handleContinueClick: function() {\n                this.$emit(\"confirm\", {\n                    localAddress: this.localAddress,\n                    rangeFrom: this.rangeFrom,\n                    rangeTo: this.rangeTo,\n                    netmask: this.netmask,\n                    defaultRouter: this.defaultRouter,\n                    primaryDns: this.primaryDns,\n                    secondlyDns: this.secondlyDns,\n                    broadAddress: this.broadAddress\n                })\n            }\n        },\n        mounted: function() {\n            this.interfaces = Object(f.b)() || [], 0 < this.interfaces.length && (this.selectedName = this.interfaces[0].name)\n        }\n    }, i(350), a = i(30);\n\n    function m(e, t) {\n        var i, n = Object.keys(e);\n        return Object.getOwnPropertySymbols && (i = Object.getOwnPropertySymbols(e), t && (i = i.filter((function(t) {\n            return Object.getOwnPropertyDescriptor(e, t).enumerable\n        }))), n.push.apply(n, i)), n\n    }\n\n    function v(e) {\n        for (var t = 1; t < arguments.length; t++) {\n            var i = null != arguments[t] ? arguments[t] : {};\n            t % 2 ? m(Object(i), !0).forEach((function(t) {\n                l()(e, t, i[t])\n            })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(i)) : m(Object(i)).forEach((function(t) {\n                Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(i, t))\n            }))\n        }\n        return e\n    }\n    o = {\n        name: \"RouterView\",\n        components: {\n            ConfigView: Object(a.a)(n, (function() {\n                var e = this,\n                    t = e.$createElement;\n                return (t = e._self._c || t)(\"div\", {\n                    staticClass: \"main-router-config-view\",\n                    on: {\n                        click: function(t) {\n                            return e.$emit(\"close\")\n                        }\n                    }\n                }, [t(\"div\", {\n                    staticClass: \"content\",\n                    on: {\n                        click: function(e) {\n                            e.stopPropagation()\n                        }\n                    }\n                }, [t(\"div\", {\n                    staticClass: \"title\"\n                }, [e._v(\"配置\")]), e._v(\" \"), t(\"div\", {\n                    staticClass: \"sec\"\n                }, [t(\"span\", [e._v(\"Interface\")]), e._v(\" \"), t(\"input\", {\n                    staticClass: \"clickable\",\n                    attrs: {\n                        readonly: \"\"\n                    },\n                    domProps: {\n                        value: e.selectedName\n                    },\n                    on: {\n                        click: e.handleInterfaceSelect\n                    }\n                })]), e._v(\" \"), t(\"div\", {\n                    staticClass: \"sec\"\n                }, [t(\"span\", [e._v(\"本地 IP 地址\")]), e._v(\" \"), t(\"input\", {\n                    directives: [{\n                        name: \"model\",\n                        rawName: \"v-model\",\n                        value: e.localAddress,\n                        expression: \"localAddress\"\n                    }],\n                    attrs: {\n                        type: \"text\"\n                    },\n                    domProps: {\n                        value: e.localAddress\n                    },\n                    on: {\n                        input: function(t) {\n                            t.target.composing || (e.localAddress = t.target.value)\n                        }\n                    }\n                })]), e._v(\" \"), t(\"div\", {\n                    staticClass: \"sec\"\n                }, [t(\"span\", [e._v(\"DHCP IP Range\")]), e._v(\" \"), t(\"div\", {\n                    staticClass: \"flex\"\n                }, [t(\"div\", [t(\"span\", [e._v(\"From\")]), e._v(\" \"), t(\"input\", {\n                    directives: [{\n                        name: \"model\",\n                        rawName: \"v-model\",\n                        value: e.rangeFrom,\n                        expression: \"rangeFrom\"\n                    }],\n                    attrs: {\n                        type: \"text\"\n                    },\n                    domProps: {\n                        value: e.rangeFrom\n                    },\n                    on: {\n                        input: function(t) {\n                            t.target.composing || (e.rangeFrom = t.target.value)\n                        }\n                    }\n                })]), e._v(\" \"), t(\"div\", [t(\"span\", [e._v(\"To\")]), e._v(\" \"), t(\"input\", {\n                    directives: [{\n                        name: \"model\",\n                        rawName: \"v-model\",\n                        value: e.rangeTo,\n                        expression: \"rangeTo\"\n                    }],\n                    attrs: {\n                        type: \"text\"\n                    },\n                    domProps: {\n                        value: e.rangeTo\n                    },\n                    on: {\n                        input: function(t) {\n                            t.target.composing || (e.rangeTo = t.target.value)\n                        }\n                    }\n                })])])]), e._v(\" \"), t(\"div\", {\n                    staticClass: \"sec\"\n                }, [t(\"span\", [e._v(\"Netmask\")]), e._v(\" \"), t(\"input\", {\n                    directives: [{\n                        name: \"model\",\n                        rawName: \"v-model\",\n                        value: e.netmask,\n                        expression: \"netmask\"\n                    }],\n                    attrs: {\n                        type: \"text\"\n                    },\n                    domProps: {\n                        value: e.netmask\n                    },\n                    on: {\n                        input: function(t) {\n                            t.target.composing || (e.netmask = t.target.value)\n                        }\n                    }\n                })]), e._v(\" \"), t(\"div\", {\n                    staticClass: \"sec\"\n                }, [t(\"span\", [e._v(\"Default Router\")]), e._v(\" \"), t(\"input\", {\n                    directives: [{\n                        name: \"model\",\n                        rawName: \"v-model\",\n                        value: e.defaultRouter,\n                        expression: \"defaultRouter\"\n                    }],\n                    attrs: {\n                        type: \"text\"\n                    },\n                    domProps: {\n                        value: e.defaultRouter\n                    },\n                    on: {\n                        input: function(t) {\n                            t.target.composing || (e.defaultRouter = t.target.value)\n                        }\n                    }\n                })]), e._v(\" \"), t(\"div\", {\n                    staticClass: \"sec\"\n                }, [t(\"span\", [e._v(\"DNS 服务器\")]), e._v(\" \"), t(\"div\", {\n                    staticClass: \"flex\"\n                }, [t(\"div\", [t(\"span\", [e._v(\"Primary\")]), e._v(\" \"), t(\"input\", {\n                    directives: [{\n                        name: \"model\",\n                        rawName: \"v-model\",\n                        value: e.primaryDns,\n                        expression: \"primaryDns\"\n                    }],\n                    attrs: {\n                        type: \"text\"\n                    },\n                    domProps: {\n                        value: e.primaryDns\n                    },\n                    on: {\n                        input: function(t) {\n                            t.target.composing || (e.primaryDns = t.target.value)\n                        }\n                    }\n                })]), e._v(\" \"), t(\"div\", [t(\"span\", [e._v(\"Alternative\")]), e._v(\" \"), t(\"input\", {\n                    directives: [{\n                        name: \"model\",\n                        rawName: \"v-model\",\n                        value: e.secondlyDns,\n                        expression: \"secondlyDns\"\n                    }],\n                    attrs: {\n                        type: \"text\"\n                    },\n                    domProps: {\n                        value: e.secondlyDns\n                    },\n                    on: {\n                        input: function(t) {\n                            t.target.composing || (e.secondlyDns = t.target.value)\n                        }\n                    }\n                })])])]), e._v(\" \"), t(\"div\", {\n                    staticClass: \"btn clickable\",\n                    on: {\n                        click: e.handleContinueClick\n                    }\n                }, [e._v(\"Continue\")])])])\n            }), [], !1, null, \"510e6d90\", null).exports\n        },\n        data: function() {\n            return {\n                server: null,\n                clients: [],\n                boundState: {},\n                isShowConfigView: !1,\n                powersaveBlockerID: 0,\n                clientAlias: h.a.get(g.a.DHCP_MAC_ALIAS) || {}\n            }\n        },\n        computed: v(v({}, Object(o.mapState)({\n            routerHijackMacAddresses: function(e) {\n                return e.app.routerHijackMacAddresses\n            },\n            currentProfilePayload: function(e) {\n                return e.app.currentProfilePayload\n            }\n        })), {}, {\n            serverRunning: function() {\n                return null !== this.server\n            },\n            buttonText: function() {\n                return this.serverRunning ? \"暂停\" : \"开始\"\n            }\n        }),\n        methods: v(v({}, Object(o.mapMutations)({\n            setRouterHijackMacAddresses: \"SET_ROUTER_HIJACK_MAC_ADDRESSES\"\n        })), {}, {\n            clientName: function(e) {\n                return this.clientAlias[e.chaddr] || e.options[12] || \"Unknown\"\n            },\n            handleClientRename: function(e, t) {\n                this.clientAlias = v(v({}, this.clientAlias), {}, l()({}, t, e.target.value)), h.a.put(g.a.DHCP_MAC_ALIAS, this.clientAlias)\n            },\n            handleGotoConnections: function(e) {\n                (e = this.addressFromBound(e)) && this.$router.replace({\n                    path: \"/home/connection\",\n                    query: {\n                        searchText: e\n                    }\n                }).catch((function() {}))\n            },\n            handleStartDHCPServer: function() {\n                this.serverRunning ? (this.server && this.server.close(), this.server = null, this.clients = [], this.boundState = {}, c.ipcRenderer.invoke(\"powerSaveBlocker\", \"stop\", this.powersaveBlockerID)) : this.isShowConfigView = !0\n            },\n            handleConfigConfirm: function(e) {\n                var t = this;\n                this.isShowConfigView = !1;\n                var i, n, o, a, l, h, g, f, m, b = null === (n = this.currentProfilePayload) || void 0 === n || null === (o = n.tun) || void 0 === o ? void 0 : o[\"dns-hijack\"],\n                    _ = (n = (i = v(v({}, e), {}, {\n                        hijackDns: b\n                    })).rangeFrom, o = i.rangeTo, e = i.netmask, a = i.defaultRouter, b = i.broadcast, l = i.localAddress, h = i.primaryDns, g = i.secondlyDns, i = i.hijackDns, f = void 0 === i ? [] : i, (b = u.a.createServer({\n                        range: [n, o],\n                        forceOptions: [\"hostname\"],\n                        randomIP: !0,\n                        static: {},\n                        netmask: e,\n                        router: function(e) {\n                            var t = p.a.state.app.routerHijackMacAddresses;\n                            return (void 0 === t ? [] : t).includes(e.clientId) ? [l] : [a]\n                        },\n                        dns: function(e) {\n                            var t = p.a.state.app.routerHijackMacAddresses;\n                            return (void 0 === t ? [] : t).includes(e.clientId) ? f.slice(0, 2) : \"\" !== g ? [h, g] : [h]\n                        },\n                        broadcast: b,\n                        server: l,\n                        maxMessageSize: 1500,\n                        leaseTime: 86400,\n                        renewalTime: 60,\n                        rebindingTime: 120,\n                        bootFile: \"\",\n                        hostname: \"cfw\"\n                    })).on(\"error\", (function(e, t) {\n                        console.log(e, t)\n                    })), b.listen(), b);\n                _.on(\"message\", (function(e) {\n                    var i = e.chaddr;\n                    void 0 !== t.clients.find((function(e) {\n                        return e.chaddr === i\n                    })) || (t.clients = [].concat(s()(t.clients), [e]))\n                })), _.on(\"bound\", (function(e) {\n                    t.boundState = e\n                })), _.on(\"listening\", (m = r()(d.a.mark((function e(i) {\n                    var n;\n                    return d.a.wrap((function(e) {\n                        for (;;) switch (e.prev = e.next) {\n                            case 0:\n                                return n = i.address(), console.log(\"dhcp server listen at \".concat(n.address, \":\").concat(n.port)), t.server = _, e.next = 5, c.ipcRenderer.invoke(\"powerSaveBlocker\", \"start\", \"prevent-app-suspension\");\n                            case 5:\n                                t.powersaveBlockerID = e.sent;\n                            case 6:\n                            case \"end\":\n                                return e.stop()\n                        }\n                    }), e)\n                }))), function(e) {\n                    return m.apply(this, arguments)\n                }))\n            },\n            handleMacToHijack: function(e) {\n                this.routerHijackMacAddresses.includes(e) ? this.setRouterHijackMacAddresses({\n                    addresses: this.routerHijackMacAddresses.filter((function(t) {\n                        return t !== e\n                    }))\n                }) : this.setRouterHijackMacAddresses({\n                    addresses: [].concat(s()(this.routerHijackMacAddresses), [e])\n                })\n            },\n            addressFromBound: function(e) {\n                return (e = this.boundState[e]) ? e.address : \"\"\n            }\n        })\n    }, i(352), o = Object(a.a)(o, (function() {\n        var e = this,\n            t = e.$createElement,\n            i = e._self._c || t;\n        return i(\"div\", {\n            class: [\"main-router-view-\" + e.theme]\n        }, [i(\"div\", {\n            staticClass: \"header\"\n        }, [i(\"div\", [e._v(\"DHCP 服务器\")]), e._v(\" \"), i(\"div\", {\n            staticClass: \"btn\",\n            class: [e.serverRunning ? \"btn-stop\" : \"btn-start\"],\n            on: {\n                click: e.handleStartDHCPServer\n            }\n        }, [e._v(\"\\n      \" + e._s(e.buttonText) + \"\\n    \")])]), e._v(\" \"), i(\"div\", {\n            staticClass: \"list\"\n        }, e._l(e.clients, (function(t) {\n            return i(\"div\", {\n                key: t.chaddr,\n                staticClass: \"item\",\n                attrs: {\n                    title: t.chaddr\n                }\n            }, [i(\"div\", {\n                staticClass: \"left\"\n            }, [i(\"div\", {\n                staticClass: \"name clickable\"\n            }, [i(\"input\", {\n                attrs: {\n                    type: \"text\"\n                },\n                domProps: {\n                    value: e.clientName(t)\n                },\n                on: {\n                    change: function(i) {\n                        return e.handleClientRename(i, t.chaddr)\n                    }\n                }\n            })]), e._v(\" \"), i(\"div\", {\n                staticClass: \"ip\"\n            }, [e._v(e._s(e.addressFromBound(t.chaddr) || \"--\"))])]), e._v(\" \"), i(\"div\", {\n                staticClass: \"right\"\n            }, [e.routerHijackMacAddresses.includes(t.options[61]) ? i(\"div\", {\n                staticClass: \"btn\",\n                on: {\n                    click: function(i) {\n                        return e.handleGotoConnections(t.chaddr)\n                    }\n                }\n            }, [e._v(\"\\n          连接\\n        \")]) : e._e(), e._v(\" \"), i(\"div\", {\n                staticClass: \"btn hijack-button\",\n                on: {\n                    click: function(i) {\n                        return e.handleMacToHijack(t.options[61])\n                    }\n                }\n            }, [e._v(\"\\n          \" + e._s(e.routerHijackMacAddresses.includes(t.options[61]) ? \"Clash TUN\" : \"默认网关\") + \"\\n        \")])])])\n        })), 0), e._v(\" \"), e.isShowConfigView ? i(\"config-view\", {\n            on: {\n                close: function(t) {\n                    e.isShowConfigView = !1\n                },\n                confirm: e.handleConfigConfirm\n            }\n        }) : e._e()], 1)\n    }), [], !1, null, \"e70fadb0\", null), t.default = o.exports\n}, function(e, t, i) {\n    \"use strict\";\n    i.r(t);\n    var n = i(105),\n        r = i.n(n),\n        o = i(10),\n        s = i.n(o),\n        a = i(52),\n        l = i.n(a),\n        d = i(18),\n        c = i.n(d),\n        h = i(3),\n        u = i.n(h),\n        p = i(27);\n\n    function g(e, t) {\n        var i, n = Object.keys(e);\n        return Object.getOwnPropertySymbols && (i = Object.getOwnPropertySymbols(e), t && (i = i.filter((function(t) {\n            return Object.getOwnPropertyDescriptor(e, t).enumerable\n        }))), n.push.apply(n, i)), n\n    }\n    var f = {\n            props: [\"mode\"],\n            data: function() {\n                return {\n                    modes: [\"全局\", \"规则\", \"直连\", \"脚本\"]\n                }\n            },\n            computed: function(e) {\n                for (var t = 1; t < arguments.length; t++) {\n                    var i = null != arguments[t] ? arguments[t] : {};\n                    t % 2 ? g(Object(i), !0).forEach((function(t) {\n                        c()(e, t, i[t])\n                    })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(i)) : g(Object(i)).forEach((function(t) {\n                        Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(i, t))\n                    }))\n                }\n                return e\n            }({}, Object(p.mapState)({})),\n            methods: {\n                upperCaseFirstLetter: function(e) {\n                    return e[0].toUpperCase() + e.slice(1)\n                },\n                btnTheme: function(e) {\n                    var t = [\"btn\"];\n                    \"全局\" == e ? e = \"global\" : \"规则\" == e ? e = \"rule\" : \"直连\" == e ? e = \"direct\" : \"脚本\" == e && (e = \"script\");\n                    return this.mode === e.toLowerCase() ? t.push(\"selected-\".concat(this.theme)) : t.push(\"normal-\".concat(this.theme)), t\n                },\n                switchMode: function(e) {\n                    var t = this;\n                    return s()(u.a.mark((function i() {\n                        return u.a.wrap((function(i) {\n                            for (;;) switch (i.prev = i.next) {\n                                case 0:\n                                    t.$parent.cancelLatencyTest(), t.$emit(\"switch\", e);\n                                case 2:\n                                case \"end\":\n                                    return i.stop()\n                            }\n                        }), i)\n                    })))()\n                }\n            }\n        },\n        m = (i(310), i(30)),\n        v = (n = Object(m.a)(f, (function() {\n            var e = this,\n                t = e.$createElement,\n                i = e._self._c || t;\n            return i(\"div\", {\n                class: [\"main-\" + e.theme],\n                attrs: {\n                    id: \"main-mode-switcher\"\n                }\n            }, [i(\"div\", {\n                staticClass: \"btns\"\n            }, e._l(e.modes, (function(t, n) {\n                return i(\"div\", {\n                    key: n,\n                    class: e.btnTheme(t),\n                    on: {\n                        click: function(i) {\n                            return e.switchMode(t)\n                        }\n                    }\n                }, [e._v(\"\\n      \" + e._s(e.upperCaseFirstLetter(t)) + \"\\n    \")])\n            })), 0)])\n        }), [], !1, null, \"38001dee\", null).exports, o = i(162), a = i(134), d = i(69), h = i.n(d), i(35)),\n        b = i(38),\n        _ = (f = i(82), d = i.n(f), i(154)),\n        w = i(40),\n        y = i(48),\n        C = (f = i(179), i.n(f));\n\n    function x(e, t) {\n        var i = \"undefined\" != typeof Symbol && e[Symbol.iterator] || e[\"@@iterator\"];\n        if (!i) {\n            if (Array.isArray(e) || (i = function(e, t) {\n                    if (e) {\n                        if (\"string\" == typeof e) return S(e, t);\n                        var i = Object.prototype.toString.call(e).slice(8, -1);\n                        return \"Map\" === (i = \"Object\" === i && e.constructor ? e.constructor.name : i) || \"Set\" === i ? Array.from(e) : \"Arguments\" === i || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i) ? S(e, t) : void 0\n                    }\n                }(e)) || t && e && \"number\" == typeof e.length) {\n                i && (e = i);\n                var n = 0;\n                return {\n                    s: t = function() {},\n                    n: function() {\n                        return n >= e.length ? {\n                            done: !0\n                        } : {\n                            done: !1,\n                            value: e[n++]\n                        }\n                    },\n                    e: function(e) {\n                        throw e\n                    },\n                    f: t\n                }\n            }\n            throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")\n        }\n        var r, o = !0,\n            s = !1;\n        return {\n            s: function() {\n                i = i.call(e)\n            },\n            n: function() {\n                var e = i.next();\n                return o = e.done, e\n            },\n            e: function(e) {\n                s = !0, r = e\n            },\n            f: function() {\n                try {\n                    o || null == i.return || i.return()\n                } finally {\n                    if (s) throw r\n                }\n            }\n        }\n    }\n\n    function S(e, t) {\n        (null == t || t > e.length) && (t = e.length);\n        for (var i = 0, n = new Array(t); i < t; i++) n[i] = e[i];\n        return n\n    }\n\n    function k(e, t) {\n        var i, n = Object.keys(e);\n        return Object.getOwnPropertySymbols && (i = Object.getOwnPropertySymbols(e), t && (i = i.filter((function(t) {\n            return Object.getOwnPropertyDescriptor(e, t).enumerable\n        }))), n.push.apply(n, i)), n\n    }\n\n    function L(e) {\n        for (var t = 1; t < arguments.length; t++) {\n            var i = null != arguments[t] ? arguments[t] : {};\n            t % 2 ? k(Object(i), !0).forEach((function(t) {\n                c()(e, t, i[t])\n            })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(i)) : k(Object(i)).forEach((function(t) {\n                Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(i, t))\n            }))\n        }\n        return e\n    }\n    var O = h.a.CancelToken;\n    d = {\n        props: [],\n        data: function() {\n            return {\n                proxies: [],\n                axiosCancelTokens: [],\n                showSecIdxs: [],\n                infoItemName: \"\",\n                intervalID: null,\n                filterKeyword: \"\",\n                isShowFilter: !1,\n                isScrolling: !1,\n                topItemIndex: -1,\n                proxyBlinkIndex: -1,\n                groupBlinkIndex: -1\n            }\n        },\n        components: {\n            ProxyModeSwitcher: n,\n            Navigator: o.a,\n            Hint: a.a\n        },\n        watch: {\n            clashStatus: function(e) {\n                e === y.a.CONNECTED && this.fetchData()\n            },\n            profileRefreshTimes: function() {\n                this.fetchData()\n            },\n            proxyBlinkIndex: function() {\n                var e = this;\n                setTimeout((function() {\n                    e.proxyBlinkIndex = -1\n                }), 300)\n            },\n            groupBlinkIndex: function() {\n                var e = this;\n                setTimeout((function() {\n                    e.groupBlinkIndex = -1\n                }), 300)\n            }\n        },\n        computed: L(L(L({}, Object(p.mapState)({\n            clashPath: function(e) {\n                return e.app.clashPath\n            },\n            pfs: function(e) {\n                return e.app.profiles\n            },\n            clashStatus: function(e) {\n                return e.app.clashStatus\n            },\n            confData: function(e) {\n                return e.app.confData\n            },\n            isWindowShow: function(e) {\n                return e.app.isWindowShow\n            },\n            clashAxiosFlyingRequestCount: function(e) {\n                return e.app.clashAxiosFlyingRequestCount\n            },\n            profileRefreshTimes: function(e) {\n                return e.app.profileRefreshTimes\n            },\n            currentMode: function(e) {\n                return e.app.mode\n            },\n            currentProfilePayload: function(e) {\n                return e.app.currentProfilePayload\n            }\n        })), Object(p.mapGetters)([\"clashAxiosClient\"])), {}, {\n            navigatorWidth: function() {\n                return this.settings.proxyMiniListWidth\n            },\n            proxyItemWidth: function() {\n                var e = this.settings.proxyItemWidth;\n                return 150 <= parseInt(e) ? \"\".concat(e, \"px\") : \"290px\"\n            },\n            proxyInMode: function() {\n                if (\"global\" === (e = this.currentMode)) return this.proxies.filter((function(e) {\n                    return \"GLOBAL\" === e.name\n                }));\n                if (\"direct\" === e) return [];\n                var e, t = void 0 !== (e = this.settings.hideUnselectableGroup) && e ? [\"Selector\"] : [\"Selector\", \"Fallback\", \"URLTest\", \"LoadBalance\", \"Relay\"];\n                return this.proxies.filter((function(e) {\n                    return \"GLOBAL\" !== e.name && t.includes(e.data.type)\n                }))\n            },\n            isShowNavigator: function() {\n                return 0 !== parseInt(this.settings.proxyMiniListWidth)\n            }\n        }),\n        methods: L(L(L({}, Object(p.mapMutations)({\n            changeProfile: \"CHANGE_PROFILE\"\n        })), Object(p.mapActions)([\"getMode\", \"setMode\"])), {}, {\n            debounceScroll: d.a.debounce((function() {\n                this.isScrolling = !1\n            }), 1e3),\n            handleListScroll: function() {\n                this.isScrolling = !0;\n                var e = this.$refs[\"mixin-scroll-content\"],\n                    t = this.$refs.list;\n                return this.topItemIndex = [].concat(l()(t), [{\n                    offsetTop: 1 / 0\n                }]).findIndex((function(t) {\n                    return t.offsetTop - 120 > e.scrollTop\n                })) - 1, this.debounceScroll()\n            },\n            handleProxyRightClick: function(e, t) {\n                var i = this;\n                return s()(u.a.mark((function n() {\n                    var r;\n                    return u.a.wrap((function(n) {\n                        for (;;) switch (n.prev = n.next) {\n                            case 0:\n                                return n.next = 2, i.$menu([{\n                                    text: \"显示连接\",\n                                    icon: \"list\"\n                                }, {\n                                    text: \"运行脚本\",\n                                    icon: \"js\"\n                                }], e);\n                            case 2:\n                                0 === (r = n.sent) ? i.$router.replace({\n                                    path: \"/home/connection\",\n                                    query: {\n                                        searchText: t\n                                    }\n                                }).catch((function() {})) : 1 === r && (r = (void 0 === (r = i.currentProfilePayload.proxies) ? [] : r).find((function(e) {\n                                    return e.name === t\n                                })) || {\n                                    name: t\n                                }, Object(_.c)(Object(w.d)(r), _.b));\n                            case 4:\n                            case \"end\":\n                                return n.stop()\n                        }\n                    }), n)\n                })))()\n            },\n            handleFilterIconClick: function() {\n                var e = this;\n                this.isShowFilter = !this.isShowFilter, this.isShowFilter || (this.filterKeyword = \"\"), this.$nextTick((function() {\n                    var t = e.$refs.filterKeyword;\n                    t && t.focus()\n                }))\n            },\n            checkBtnText: function(e) {\n                var t = e.provider;\n                e = e.latency;\n                return t ? e || \"\" : e || \"测试\"\n            },\n            handleSingleSpeedtest: function(e, t) {\n                var i = this;\n                return s()(u.a.mark((function n() {\n                    var r, o, s, a, l, d;\n                    return u.a.wrap((function(n) {\n                        for (;;) switch (n.prev = n.next) {\n                            case 0:\n                                if (r = e.name, o = t.name, null !== t.provider) return n.abrupt(\"return\");\n                                n.next = 4;\n                                break;\n                            case 4:\n                                return i.cancelLatencyTest(), s = \"\", n.prev = 6, l = i.settings, a = l.latencyTimeout, l = l.latencyUrl, n.next = 10, i.speedtest(o, a || 3e3, l || \"http://www.gstatic.com/generate_204\");\n                            case 10:\n                                s = n.sent, n.next = 15;\n                                break;\n                            case 13:\n                                n.prev = 13, n.t0 = n.catch(6);\n                            case 15:\n                                (l = i.proxyInMode.find((function(e) {\n                                    return e.name === r\n                                }))) && (d = l.data.all.find((function(e) {\n                                    return e.name === o\n                                }))) && (d.latency = s + (/\\d/.test(s) ? \" ms\" : \"超时\"));\n                            case 17:\n                            case \"end\":\n                                return n.stop()\n                        }\n                    }), n, null, [\n                        [6, 13]\n                    ])\n                })))()\n            },\n            proxyItemsBeforeAnimate: function(e) {\n                e.style.opacity = 0\n            },\n            animateDone: function(e) {},\n            proxyItemsShowAnimate: function(e, t) {\n                C()(e, {\n                    opacity: 1\n                }, {\n                    duration: 150,\n                    easing: \"ease-in\",\n                    complete: t\n                })\n            },\n            proxyItemsHideAnimate: function(e, t) {\n                C()(e, {\n                    opacity: 0,\n                    height: 0\n                }, {\n                    complete: t,\n                    easing: \"ease-out\",\n                    duration: 100\n                })\n            },\n            saveShowSecIdxs: function() {\n                v.a.put(b.a.PROXY_SHOW_SEC_IDXS, this.showSecIdxs)\n            },\n            handleNavigatToGroup: function(e) {\n                this.groupBlinkIndex = e;\n                var t = this.$refs[\"mixin-scroll-content\"],\n                    i = this.$refs.list;\n                this.$nextTick((function() {\n                    t.scrollTop = i[e].offsetTop - 120\n                }))\n            },\n            scrollToSelected: function(e) {\n                this.proxyBlinkIndex = e;\n                var t = this.$refs[\"selected\".concat(e)][0],\n                    i = this.$refs[\"mixin-scroll-content\"];\n                ((e = t.offsetTop - 160) < i.scrollTop || e > i.scrollTop + i.clientHeight - 200) && this.$nextTick((function() {\n                    i.scrollTop = t.offsetTop - 160\n                }))\n            },\n            switchVisiable: function(e) {\n                var t = this;\n                return s()(u.a.mark((function i() {\n                    var n, r, o, s, a;\n                    return u.a.wrap((function(i) {\n                        for (;;) switch (i.prev = i.next) {\n                            case 0:\n                                n = t.$refs.list, r = t.$refs[\"mixin-scroll-content\"], o = null === (n = n[e]) || void 0 === n ? void 0 : n.childNodes[0], s = null == o ? void 0 : o.childNodes[0], a = null == o ? void 0 : o.childNodes[2], t.showSecIdxs.includes(e) ? (t.showSecIdxs = t.showSecIdxs.filter((function(t) {\n                                    return t !== e\n                                })), t.$nextTick((function() {\n                                    s.offsetTop > a.offsetTop && (r.scrollTop = o.offsetTop - 112)\n                                }))) : t.showSecIdxs.push(e), t.saveShowSecIdxs();\n                            case 7:\n                            case \"end\":\n                                return i.stop()\n                        }\n                    }), i)\n                })))()\n            },\n            nodeHint: function(e) {\n                var t = this.proxies.find((function(t) {\n                    return t.name === e.name\n                }));\n                if (!t) return \"\";\n                var i = t.data.type;\n                return \"Selector\" === i || \"Fallback\" === i || \"URLTest\" === i ? this.$parseEmoji(\"\".concat(i, \" - \").concat(t.data.now)) : \"LoadBalance\" === i ? \"\".concat(i, \" - \").concat(t.data.all.length, \" server\").concat(1 < t.data.all.length ? \"s\" : \"\") : i\n            },\n            cancelLatencyTest: function() {\n                0 < this.axiosCancelTokens.length && (this.axiosCancelTokens.forEach((function(e) {\n                    e()\n                })), this.axiosCancelTokens = [])\n            },\n            switchProxy: function(e, t) {\n                var i = arguments,\n                    n = this;\n                return s()(u.a.mark((function r() {\n                    var o, s, a, d, c;\n                    return u.a.wrap((function(r) {\n                        for (;;) switch (r.prev = r.next) {\n                            case 0:\n                                if (2 < i.length && void 0 !== i[2] && i[2]) return r.abrupt(\"return\");\n                                r.next = 3;\n                                break;\n                            case 3:\n                                return n.cancelLatencyTest(), r.next = 6, n.clashAxiosClient.put(\"/proxies/\".concat(encodeURIComponent(e)), {\n                                    name: t\n                                });\n                            case 6:\n                                if (204 !== r.sent.status) {\n                                    r.next = 45;\n                                    break\n                                }\n                                if ((o = l()(n.proxies)).find((function(t) {\n                                        return t.name === e\n                                    })).data.now = t, n.proxies = 500 < o.length ? Object.freeze(o) : o, o = n.proxies.filter((function(e) {\n                                        return \"Selector\" === e.data.type\n                                    })).map((function(e) {\n                                        return {\n                                            name: e.name,\n                                            now: e.data.now\n                                        }\n                                    })), -1 < n.pfs.index && (s = n.pfs.files[n.pfs.index], n.changeProfile({\n                                        index: n.pfs.index,\n                                        profile: L(L({}, s), {}, {\n                                            selected: o\n                                        })\n                                    })), s = n.settings.connProxy, 1 === (o = void 0 === s ? 0 : s)) return r.next = 17, n.clashAxiosClient.get(\"connections\");\n                                r.next = 42;\n                                break;\n                            case 17:\n                                if (c = r.sent, s = c.status, c = c.data, 200 !== s) {\n                                    r.next = 40;\n                                    break\n                                }\n                                d = c.connections, a = x(void 0 === d ? [] : d), r.prev = 23, a.s();\n                            case 25:\n                                if ((c = a.n()).done) {\n                                    r.next = 32;\n                                    break\n                                }\n                                if (d = c.value, c = d.id, d.chains.includes(e)) return r.next = 30, n.clashAxiosClient.delete(\"connections/\".concat(c));\n                                r.next = 30;\n                                break;\n                            case 30:\n                                r.next = 25;\n                                break;\n                            case 32:\n                                r.next = 37;\n                                break;\n                            case 34:\n                                r.prev = 34, r.t0 = r.catch(23), a.e(r.t0);\n                            case 37:\n                                return r.prev = 37, a.f(), r.finish(37);\n                            case 40:\n                                r.next = 45;\n                                break;\n                            case 42:\n                                if (2 === o) return r.next = 45, n.clashAxiosClient.delete(\"connections\");\n                                r.next = 45;\n                                break;\n                            case 45:\n                            case \"end\":\n                                return r.stop()\n                        }\n                    }), r, null, [\n                        [23, 34, 37, 40]\n                    ])\n                })))()\n            },\n            startLatencyTest: function(e, t) {\n                var i = this;\n                return s()(u.a.mark((function n() {\n                    var r, o, a, l, d;\n                    return u.a.wrap((function(n) {\n                        for (;;) switch (n.prev = n.next) {\n                            case 0:\n                                i.cancelLatencyTest(), i.showSecIdxs.find((function(e) {\n                                    return e === t\n                                })) || i.showSecIdxs.push(t), r = i.proxies.find((function(t) {\n                                    return t.name === e\n                                })), o = i.settings, a = o.latencyTimeout, l = o.latencyUrl, d = [], r.data.all.forEach(function() {\n                                    var e = s()(u.a.mark((function e(t, n) {\n                                        var r;\n                                        return u.a.wrap((function(e) {\n                                            for (;;) switch (e.prev = e.next) {\n                                                case 0:\n                                                    if (t.provider) return d.find((function(e) {\n                                                        return e.name === t.provider.name\n                                                    })) || d.push(t.provider), e.abrupt(\"return\");\n                                                    e.next = 3;\n                                                    break;\n                                                case 3:\n                                                    return t.latency = null, e.prev = 4, e.next = 7, i.speedtest(t.name, a || 3e3, l || \"http://www.gstatic.com/generate_204\");\n                                                case 7:\n                                                    r = e.sent, t.latency = 0 < r ? r + \" ms\" : \"超时\", e.next = 14;\n                                                    break;\n                                                case 11:\n                                                    e.prev = 11, e.t0 = e.catch(4), t.latency = \"超时\";\n                                                case 14:\n                                                case \"end\":\n                                                    return e.stop()\n                                            }\n                                        }), e, null, [\n                                            [4, 11]\n                                        ])\n                                    })));\n                                    return function(t, i) {\n                                        return e.apply(this, arguments)\n                                    }\n                                }()), d.forEach(function() {\n                                    var e = s()(u.a.mark((function e(t) {\n                                        return u.a.wrap((function(e) {\n                                            for (;;) switch (e.prev = e.next) {\n                                                case 0:\n                                                    return e.next = 2, i.clashAxiosClient.get(\"/providers/proxies/\".concat(encodeURIComponent(t.name), \"/healthcheck\"), {\n                                                        timeout: 0,\n                                                        cancelToken: new O((function(e) {\n                                                            i.axiosCancelTokens.push(e)\n                                                        }))\n                                                    });\n                                                case 2:\n                                                case \"end\":\n                                                    return e.stop()\n                                            }\n                                        }), e)\n                                    })));\n                                    return function(t) {\n                                        return e.apply(this, arguments)\n                                    }\n                                }());\n                            case 7:\n                            case \"end\":\n                                return n.stop()\n                        }\n                    }), n)\n                })))()\n            },\n            speedtest: function(e) {\n                var t = arguments,\n                    i = this;\n                return s()(u.a.mark((function n() {\n                    var r, o;\n                    return u.a.wrap((function(n) {\n                        for (;;) switch (n.prev = n.next) {\n                            case 0:\n                                return r = 1 < t.length && void 0 !== t[1] ? t[1] : 1e3, o = 2 < t.length && void 0 !== t[2] ? t[2] : \"http://www.gstatic.com/generate_204\", n.next = 4, i.clashAxiosClient(\"/proxies/\".concat(encodeURIComponent(e), \"/delay?timeout=\").concat(r, \"&url=\").concat(encodeURIComponent(o)), {\n                                    cancelToken: new O((function(e) {\n                                        i.axiosCancelTokens.push(e)\n                                    })),\n                                    timeout: 0\n                                });\n                            case 4:\n                                if (o = (o = n.sent).data) return o = o.delay, n.abrupt(\"return\", o || 0);\n                                n.next = 9;\n                                break;\n                            case 9:\n                                return n.abrupt(\"return\", 0);\n                            case 10:\n                            case \"end\":\n                                return n.stop()\n                        }\n                    }), n)\n                })))()\n            },\n            handleModeSwitch: function(e) {\n                var t = this;\n                return s()(u.a.mark((function i() {\n                    return u.a.wrap((function(i) {\n                        for (;;) switch (i.prev = i.next) {\n                            case 0:\n                                return i.next = 2, t.setMode({\n                                    mode: e\n                                });\n                            case 2:\n                            case \"end\":\n                                return i.stop()\n                        }\n                    }), i)\n                })))()\n            },\n            findProvider: function(e, t) {\n                for (var i in e) {\n                    var n = e[i];\n                    if (i = (void 0 === (i = n.proxies) ? [] : i).find((function(e) {\n                            return e.name === t\n                        }))) return [n, i]\n                }\n                return [null, {}]\n            },\n            fetchData: function() {\n                var e = this;\n                return s()(u.a.mark((function t() {\n                    var i, n, o, s, a, l;\n                    return u.a.wrap((function(t) {\n                        for (;;) switch (t.prev = t.next) {\n                            case 0:\n                                if (i = Number.MAX_SAFE_INTEGER, e.clashAxiosClient) {\n                                    t.next = 3;\n                                    break\n                                }\n                                return t.abrupt(\"return\");\n                            case 3:\n                                return t.next = 5, Promise.all([e.clashAxiosClient.get(\"/proxies\"), e.clashAxiosClient.get(\"/providers/proxies\", {\n                                    validateStatus: function(e) {\n                                        return !0\n                                    }\n                                })]);\n                            case 5:\n                                l = t.sent, n = r()(l, 2), l = n[0], n = (void 0 === (n = (n = n[1]).data) ? {} : n).providers, o = void 0 === n ? {} : n, s = l.data.proxies, a = s.GLOBAL.all, e.viewData = s, l = Object.keys(s).map((function(t) {\n                                    return s[t].hasOwnProperty(\"all\") || (s[t].all = [s[t].now]), s[t].type, s[t].all = s[t].all.map((function(t) {\n                                        var n = null,\n                                            a = s[t];\n                                        if (void 0 === a) {\n                                            var l = e.findProvider(o, t),\n                                                d = (c = r()(l, 2))[0],\n                                                c = (l = 0, void 0 === (c = (h = c[1]).history) ? [] : c),\n                                                h = void 0 !== (h = h.udp) && h;\n                                            return {\n                                                name: t,\n                                                provider: d,\n                                                latency: n = 0 < c.length ? 0 === (l = c[c.length - 1].delay) ? \"超时\" : \"\".concat(l, \" ms\") : \"\",\n                                                delay: l || i,\n                                                udp: h\n                                            }\n                                        }\n                                        return h = 0, {\n                                            name: t,\n                                            provider: null,\n                                            latency: n = a && 0 < a.history.length ? 0 === (h = a.history[a.history.length - 1].delay) ? \"超时\" : \"\".concat(h, \" ms\") : n,\n                                            delay: h || i,\n                                            udp: (null == a ? void 0 : a.udp) || !1\n                                        }\n                                    })).filter((function(t) {\n                                        return \"\" === e.filterKeyword || new RegExp(e.filterKeyword, \"i\").test(t.name)\n                                    })).sort((function(t, n) {\n                                        var r, o, s = void 0 === (r = e.settings.proxyOrder) ? 0 : r;\n                                        return 1 === s ? (r = void 0 === (o = t.delay) ? i : o) - (void 0 === (o = n.delay) ? i : o) : 2 !== s || (t = t.name, n = n.name, t.localeCompare(n))\n                                    })), {\n                                        name: t,\n                                        data: s[t]\n                                    }\n                                })).sort((function(e, t) {\n                                    return a.indexOf(e.name) - a.indexOf(t.name)\n                                })), e.proxies = 500 < l.length ? Object.freeze(l) : l;\n                            case 16:\n                            case \"end\":\n                                return t.stop()\n                        }\n                    }), t)\n                })))()\n            }\n        }),\n        beforeRouteEnter: function(e, t, i) {\n            var n;\n            i((n = s()(u.a.mark((function e(t) {\n                return u.a.wrap((function(e) {\n                    for (;;) switch (e.prev = e.next) {\n                        case 0:\n                            return t.getMode(), t.showSecIdxs = v.a.get(b.a.PROXY_SHOW_SEC_IDXS) || [], t.intervalID = setInterval(s()(u.a.mark((function e() {\n                                return u.a.wrap((function(e) {\n                                    for (;;) switch (e.prev = e.next) {\n                                        case 0:\n                                            if (t.isWindowShow && !t.isScrolling && t.clashAxiosFlyingRequestCount < 5) return e.next = 3, Promise.allSettled([t.getMode(), t.fetchData()]).catch((function(e) {}));\n                                            e.next = 3;\n                                            break;\n                                        case 3:\n                                        case \"end\":\n                                            return e.stop()\n                                    }\n                                }), e)\n                            }))), 5e3), e.next = 5, t.fetchData().catch((function(e) {}));\n                        case 5:\n                        case \"end\":\n                            return e.stop()\n                    }\n                }), e)\n            }))), function(e) {\n                return n.apply(this, arguments)\n            }))\n        },\n        beforeRouteLeave: function(e, t, i) {\n            this.intervalID && clearInterval(this.intervalID), this.cancelLatencyTest(), i()\n        }\n    }, i(314), i(316), d = Object(m.a)(d, (function() {\n        var e = this,\n            t = e.$createElement,\n            i = e._self._c || t;\n        return i(\"div\", {\n            attrs: {\n                id: \"main-proxy-view\"\n            }\n        }, [i(\"proxy-mode-switcher\", {\n            attrs: {\n                mode: e.currentMode\n            },\n            on: {\n                switch: e.handleModeSwitch\n            }\n        }), e._v(\" \"), i(\"div\", {\n            ref: \"mixin-scroll-content\",\n            class: [\"scroll-view-\" + e.theme],\n            on: {\n                scroll: function(t) {\n                    return e.handleListScroll()\n                }\n            }\n        }, [e._l(e.proxyInMode, (function(t, n) {\n            return i(\"div\", {\n                key: t.name,\n                ref: \"list\",\n                refInFor: !0\n            }, [i(\"div\", {\n                staticClass: \"proxy-list\"\n            }, [i(\"div\", {\n                class: [\"proxy-section-\" + e.theme, e.groupBlinkIndex === n ? \"outline\" : \"\"],\n                on: {\n                    click: function(t) {\n                        return e.switchVisiable(n)\n                    }\n                }\n            }, [i(\"div\", {\n                staticClass: \"proxy-section-name\"\n            }, [i(\"div\", {\n                staticClass: \"proxy-section-name-left\",\n                domProps: {\n                    innerHTML: e._s(e.$parseEmoji(t.name))\n                }\n            }), e._v(\" \"), i(\"div\", {\n                staticClass: \"proxy-hint-type\",\n                class: [\"Selector\" === t.data.type ? \"proxy-hint-type-selector\" : \"\"]\n            }, [e._v(\"\\n              \" + e._s(t.data.type[0]) + \"\\n            \")]), e._v(\" \"), t.data.now ? i(\"div\", {\n                staticClass: \"proxy-hint-line\"\n            }) : e._e(), e._v(\" \"), t.data.now ? i(\"div\", {\n                staticClass: \"proxy-hint\",\n                domProps: {\n                    innerHTML: e._s(e.$parseEmoji(\"\" + t.data.now))\n                }\n            }) : e._e()]), e._v(\" \"), i(\"div\", {\n                staticClass: \"proxy-section-right\"\n            }, [e.showSecIdxs.includes(n) ? i(\"Hint\", {\n                staticClass: \"icon clickable\",\n                attrs: {\n                    hint: \"移动到选定的代理\",\n                    position: \"top\"\n                },\n                on: {\n                    click: function(t) {\n                        return t.stopPropagation(), e.scrollToSelected(n)\n                    }\n                }\n            }, [i(\"svg\", {\n                attrs: {\n                    xmlns: \"http://www.w3.org/2000/svg\",\n                    viewBox: \"0 0 24 24\"\n                }\n            }, [i(\"path\", {\n                attrs: {\n                    d: \"M0 0h24v24H0V0z\",\n                    fill: \"none\"\n                }\n            }), e._v(\" \"), i(\"path\", {\n                attrs: {\n                    d: \"M12 8c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm8.94 3c-.46-4.17-3.77-7.48-7.94-7.94V2c0-.55-.45-1-1-1s-1 .45-1 1v1.06C6.83 3.52 3.52 6.83 3.06 11H2c-.55 0-1 .45-1 1s.45 1 1 1h1.06c.46 4.17 3.77 7.48 7.94 7.94V22c0 .55.45 1 1 1s1-.45 1-1v-1.06c4.17-.46 7.48-3.77 7.94-7.94H22c.55 0 1-.45 1-1s-.45-1-1-1h-1.06zM12 19c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7-3.13 7-7 7z\"\n                }\n            })])]) : e._e(), e._v(\" \"), i(\"Hint\", {\n                staticClass: \"icon clickable\",\n                attrs: {\n                    hint: \"测试延迟\",\n                    position: \"top\"\n                },\n                on: {\n                    click: function(i) {\n                        return i.stopPropagation(), e.startLatencyTest(t.name, n)\n                    }\n                }\n            }, [i(\"svg\", {\n                attrs: {\n                    xmlns: \"http://www.w3.org/2000/svg\",\n                    viewBox: \"0 0 24 24\"\n                }\n            }, [i(\"path\", {\n                attrs: {\n                    d: \"M0 0h24v24H0V0z\",\n                    fill: \"none\"\n                }\n            }), e._v(\" \"), i(\"path\", {\n                attrs: {\n                    d: \"M15.9 5c-.17 0-.32.09-.41.23l-.07.15-5.18 11.65c-.16.29-.26.61-.26.96 0 1.11.9 2.01 2.01 2.01.96 0 1.77-.68 1.96-1.59l.01-.03L16.4 5.5c0-.28-.22-.5-.5-.5zM2.06 10.06c.51.51 1.33.55 1.89.09 2.76-2.26 6.24-3.18 9.58-2.76l1.19-2.68c-4.35-.78-8.96.3-12.57 3.25-.64.53-.68 1.51-.09 2.1zm19.88 0c.59-.59.55-1.57-.1-2.1-1.36-1.11-2.86-1.95-4.44-2.53l-.53 2.82c1.13.47 2.19 1.09 3.17 1.89.58.46 1.39.43 1.9-.08zm-4.03 4.03c.6-.6.56-1.63-.14-2.12-.46-.33-.94-.61-1.44-.86l-.55 2.92c.11.07.22.14.32.22.57.4 1.33.32 1.81-.16zm-11.83-.01c.5.5 1.27.54 1.85.13.94-.66 2.01-1.06 3.1-1.22l1.28-2.88c-2.13-.06-4.28.54-6.09 1.84-.69.51-.74 1.53-.14 2.13z\"\n                }\n            })])]), e._v(\" \"), [\"rule\", \"script\"].includes(e.currentMode) ? i(\"Hint\", {\n                staticClass: \"icon clickable\",\n                attrs: {\n                    hint: \"显示或隐藏代理\",\n                    position: \"left\"\n                },\n                on: {\n                    click: function(t) {\n                        return t.stopPropagation(), e.switchVisiable(n)\n                    }\n                }\n            }, [e.showSecIdxs.includes(n) ? i(\"svg\", {\n                attrs: {\n                    xmlns: \"http://www.w3.org/2000/svg\",\n                    viewBox: \"0 0 24 24\"\n                }\n            }, [i(\"path\", {\n                attrs: {\n                    d: \"M0 0h24v24H0V0zm0 0h24v24H0V0zm0 0h24v24H0V0zm0 0h24v24H0V0z\",\n                    fill: \"none\"\n                }\n            }), e._v(\" \"), i(\"path\", {\n                attrs: {\n                    d: \"M12 6.5c2.76 0 5 2.24 5 5 0 .51-.1 1-.24 1.46l3.06 3.06c1.39-1.23 2.49-2.77 3.18-4.53C21.27 7.11 17 4 12 4c-1.27 0-2.49.2-3.64.57l2.17 2.17c.47-.14.96-.24 1.47-.24zM2.71 3.16c-.39.39-.39 1.02 0 1.41l1.97 1.97C3.06 7.83 1.77 9.53 1 11.5 2.73 15.89 7 19 12 19c1.52 0 2.97-.3 4.31-.82l2.72 2.72c.39.39 1.02.39 1.41 0 .39-.39.39-1.02 0-1.41L4.13 3.16c-.39-.39-1.03-.39-1.42 0zM12 16.5c-2.76 0-5-2.24-5-5 0-.77.18-1.5.49-2.14l1.57 1.57c-.03.18-.06.37-.06.57 0 1.66 1.34 3 3 3 .2 0 .38-.03.57-.07L14.14 16c-.65.32-1.37.5-2.14.5zm2.97-5.33c-.15-1.4-1.25-2.49-2.64-2.64l2.64 2.64z\"\n                }\n            })]) : i(\"svg\", {\n                attrs: {\n                    xmlns: \"http://www.w3.org/2000/svg\",\n                    viewBox: \"0 0 24 24\"\n                }\n            }, [i(\"path\", {\n                attrs: {\n                    d: \"M0 0h24v24H0V0z\",\n                    fill: \"none\"\n                }\n            }), e._v(\" \"), i(\"path\", {\n                attrs: {\n                    d: \"M12 4C7 4 2.73 7.11 1 11.5 2.73 15.89 7 19 12 19s9.27-3.11 11-7.5C21.27 7.11 17 4 12 4zm0 12.5c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5zm0-8c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z\"\n                }\n            })])]) : e._e()], 1)]), e._v(\" \"), i(\"transition\", {\n                attrs: {\n                    name: \"fall-fade\"\n                }\n            }, [![\"rule\", \"script\"].includes(e.currentMode) || e.showSecIdxs.includes(n) ? i(\"div\", {\n                staticClass: \"proxy-items\"\n            }, [e._l(t.data.all, (function(r, o) {\n                return i(\"div\", {\n                    key: r.name + t.name + o,\n                    ref: r.name === t.data.now ? \"selected\" + n : \"\",\n                    refInFor: !0,\n                    staticClass: \"proxy-item\",\n                    class: {\n                        selected: r.name === t.data.now, clickable: \"Selector\" === t.data.type, outline: r.name === t.data.now && n === e.proxyBlinkIndex\n                    },\n                    style: [{\n                        width: e.proxyItemWidth\n                    }],\n                    on: {\n                        click: function(i) {\n                            return e.switchProxy(t.name, r.name, \"Selector\" !== t.data.type)\n                        },\n                        contextmenu: function(t) {\n                            return e.handleProxyRightClick(t, r.name)\n                        }\n                    }\n                }, [i(\"div\", {\n                    staticClass: \"indicator\"\n                }), e._v(\" \"), i(\"div\", {\n                    staticClass: \"info\"\n                }, [i(\"div\", {\n                    staticClass: \"left\"\n                }, [i(\"div\", {\n                    staticClass: \"item-name\",\n                    domProps: {\n                        innerHTML: e._s(e.$parseEmoji(r.name))\n                    }\n                }), e._v(\" \"), i(\"div\", {\n                    staticClass: \"item-bottom\"\n                }, [i(\"div\", {\n                    staticClass: \"item-hint\",\n                    domProps: {\n                        innerHTML: e._s(r.provider ? \"Provider: \" + r.provider.name : e.nodeHint(r))\n                    }\n                }), e._v(\" \"), r.udp ? i(\"div\", {\n                    staticClass: \"item-udp\"\n                }, [e._v(\"UDP\")]) : e._e()])]), e._v(\" \"), i(\"div\", {\n                    class: {\n                        offline: \"超时\" === r.latency, online: ![\"超时\", null, void 0, \"\"].includes(r.latency), time: !0\n                    },\n                    on: {\n                        click: [function(i) {\n                            return e.handleSingleSpeedtest(t, r)\n                        }, function(e) {\n                            e.stopPropagation()\n                        }]\n                    }\n                }, [e._v(\"\\n                  \" + e._s(e.checkBtnText(r)) + \"\\n                \")])])])\n            })), e._v(\" \"), e._l(new Array(20), (function(t, n) {\n                return i(\"i\", {\n                    key: n,\n                    style: {\n                        width: e.proxyItemWidth\n                    }\n                })\n            }))], 2) : e._e()])], 1)])\n        })), e._v(\" \"), e.isShowNavigator ? i(\"navigator\", {\n            attrs: {\n                list: e.proxyInMode.map((function(e) {\n                    return e.name\n                })),\n                index: e.topItemIndex,\n                width: e.navigatorWidth\n            },\n            on: {\n                select: e.handleNavigatToGroup\n            }\n        }) : e._e(), e._v(\" \"), null === e.proxyInMode && \"direct\" !== this.currentMode ? i(\"div\", [i(\"div\", {\n            class: [\"fake-section-\" + e.theme]\n        }), e._v(\" \"), i(\"div\", {\n            staticClass: \"proxy-items proxy-list\"\n        }, e._l(new Array(12), (function(t, n) {\n            return i(\"div\", {\n                key: n,\n                class: [\"fake-item-\" + e.theme]\n            }, [i(\"div\")])\n        })), 0)]) : e._e(), e._v(\" \"), 0 === e.proxyInMode.length && \"direct\" !== this.currentMode ? i(\"div\", {\n            staticClass: \"empty-hint\"\n        }, [i(\"div\", [e._v(\"此配置文件中没有代理组\")]), e._v(\" \"), i(\"div\", [e._v(\"\\n        前往\\n        \"), i(\"span\", {\n            on: {\n                click: function(t) {\n                    return e.$router.replace({\n                        path: \"/home/server\"\n                    })\n                }\n            }\n        }, [e._v(\"配置\")]), e._v(\"\\n        导入/切换配置文件\\n      \")])]) : e._e()], 2), e._v(\" \"), e.settings.showProxyFilter ? i(\"div\", {\n            staticClass: \"filter-keyword\"\n        }, [i(\"transition\", {\n            attrs: {\n                name: \"move-right\"\n            }\n        }, [e.isShowFilter ? i(\"input\", {\n            directives: [{\n                name: \"model\",\n                rawName: \"v-model\",\n                value: e.filterKeyword,\n                expression: \"filterKeyword\"\n            }],\n            ref: \"filterKeyword\",\n            attrs: {\n                spellcheck: \"false\",\n                type: \"text\"\n            },\n            domProps: {\n                value: e.filterKeyword\n            },\n            on: {\n                input: function(t) {\n                    t.target.composing || (e.filterKeyword = t.target.value)\n                }\n            }\n        }) : e._e()]), e._v(\" \"), i(\"div\", {\n            on: {\n                click: e.handleFilterIconClick\n            }\n        }, [e.isShowFilter ? i(\"svg\", {\n            attrs: {\n                xmlns: \"http://www.w3.org/2000/svg\",\n                viewBox: \"0 0 24 24\",\n                fill: \"white\",\n                width: \"20px\",\n                height: \"20px\"\n            }\n        }, [i(\"path\", {\n            attrs: {\n                d: \"M0 0h24v24H0V0z\",\n                fill: \"none\"\n            }\n        }), e._v(\" \"), i(\"path\", {\n            attrs: {\n                d: \"M18.3 5.71c-.39-.39-1.02-.39-1.41 0L12 10.59 7.11 5.7c-.39-.39-1.02-.39-1.41 0-.39.39-.39 1.02 0 1.41L10.59 12 5.7 16.89c-.39.39-.39 1.02 0 1.41.39.39 1.02.39 1.41 0L12 13.41l4.89 4.89c.39.39 1.02.39 1.41 0 .39-.39.39-1.02 0-1.41L13.41 12l4.89-4.89c.38-.38.38-1.02 0-1.4z\"\n            }\n        })]) : i(\"svg\", {\n            attrs: {\n                xmlns: \"http://www.w3.org/2000/svg\",\n                viewBox: \"0 0 24 24\",\n                fill: \"white\",\n                width: \"20px\",\n                height: \"20px\"\n            }\n        }, [i(\"path\", {\n            attrs: {\n                d: \"M0 0h24v24H0V0z\",\n                fill: \"none\"\n            }\n        }), e._v(\" \"), i(\"path\", {\n            attrs: {\n                d: \"M11 18h2c.55 0 1-.45 1-1s-.45-1-1-1h-2c-.55 0-1 .45-1 1s.45 1 1 1zM3 7c0 .55.45 1 1 1h16c.55 0 1-.45 1-1s-.45-1-1-1H4c-.55 0-1 .45-1 1zm4 6h10c.55 0 1-.45 1-1s-.45-1-1-1H7c-.55 0-1 .45-1 1s.45 1 1 1z\"\n            }\n        })])])], 1) : e._e()], 1)\n    }), [], !1, null, \"4fa0a583\", null);\n    t.default = d.exports\n}, function(e, t, i) {\n    \"use strict\";\n    i.r(t);\n    var n = i(105),\n        r = i.n(n),\n        o = i(10),\n        s = i.n(o),\n        a = i(18),\n        l = i.n(a),\n        d = (n = i(3), i.n(n)),\n        c = (o = i(27), a = i(61), i.n(a)),\n        h = i(48),\n        u = i(12),\n        p = (n = {\n            props: {\n                text: String,\n                size: String,\n                isLoading: Boolean\n            },\n            methods: {\n                handleClick: function() {\n                    this.isLoading || this.$emit(\"click\")\n                }\n            }\n        }, a = (i(318), i(30)), n = Object(a.a)(n, (function() {\n            var e = this,\n                t = e.$createElement;\n            return (t = e._self._c || t)(\"div\", {\n                staticClass: \"main-button-view\",\n                on: {\n                    click: e.handleClick\n                }\n            }, [e.isLoading ? t(\"div\", {\n                staticClass: \"line\"\n            }, [t(\"div\", {\n                class: [\"box\", \"animation-delay1\", \"large\" === e.size ? \"large\" : \"small\"]\n            }), e._v(\" \"), t(\"div\", {\n                class: [\"box\", \"animation-delay2\", \"large\" === e.size ? \"large\" : \"small\"]\n            }), e._v(\" \"), t(\"div\", {\n                class: [\"box\", \"animation-delay3\", \"large\" === e.size ? \"large\" : \"small\"]\n            }), e._v(\" \"), t(\"div\", {\n                class: [\"box\", \"animation-delay4\", \"large\" === e.size ? \"large\" : \"small\"]\n            }), e._v(\" \"), t(\"div\", {\n                class: [\"box\", \"animation-delay5\", \"large\" === e.size ? \"large\" : \"small\"]\n            })]) : t(\"div\", [e._v(e._s(e.text))])])\n        }), [], !1, null, \"f3b3ccf8\", null).exports, i(22));\n\n    function g(e, t) {\n        var i, n = Object.keys(e);\n        return Object.getOwnPropertySymbols && (i = Object.getOwnPropertySymbols(e), t && (i = i.filter((function(t) {\n            return Object.getOwnPropertyDescriptor(e, t).enumerable\n        }))), n.push.apply(n, i)), n\n    }\n\n    function f(e) {\n        for (var t = 1; t < arguments.length; t++) {\n            var i = null != arguments[t] ? arguments[t] : {};\n            t % 2 ? g(Object(i), !0).forEach((function(t) {\n                l()(e, t, i[t])\n            })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(i)) : g(Object(i)).forEach((function(t) {\n                Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(i, t))\n            }))\n        }\n        return e\n    }\n    o = {\n        components: {\n            Button: n\n        },\n        props: [],\n        data: function() {\n            return {\n                providers: [],\n                ruleProviders: []\n            }\n        },\n        watch: {\n            clashStatus: function(e) {\n                e === h.a.CONNECTED && this.fetchData()\n            },\n            profileRefreshTimes: function() {\n                this.fetchData()\n            }\n        },\n        computed: f(f({}, Object(o.mapState)({\n            clashPath: function(e) {\n                return e.app.clashPath\n            },\n            clashStatus: function(e) {\n                return e.app.clashStatus\n            },\n            profileRefreshTimes: function(e) {\n                return e.app.profileRefreshTimes\n            },\n            currentProfilePayload: function(e) {\n                return e.app.currentProfilePayload\n            }\n        })), Object(o.mapGetters)([\"clashAxiosClient\"])),\n        methods: {\n            fromNowString: function(e) {\n                return c()(e).locale('zh-cn').fromNow()\n            },\n            handleAllProvidersUpdate: function() {\n                for (var e in this.providers) this.handleProviderUpdate(e);\n                for (var t in this.ruleProviders) this.handleRuleProviderUpdate(t)\n            },\n            handleAllProvidersHealthCheck: function() {\n                for (var e in this.providers) this.handleHealthCheck(e)\n            },\n            handleHealthCheck: function(e) {\n                var t = this;\n                return s()(d.a.mark((function i() {\n                    var n, r;\n                    return d.a.wrap((function(i) {\n                        for (;;) switch (i.prev = i.next) {\n                            case 0:\n                                if (n = t.providers[e], r = n.name) return t.$set(t.providers, e, f(f({}, n), {}, {\n                                    isChecking: !0\n                                })), i.prev = 4, i.next = 7, t.clashAxiosClient.get(\"/providers/proxies/\".concat(encodeURIComponent(r), \"/healthcheck\"), {\n                                    timeout: 0\n                                });\n                                i.next = 12;\n                                break;\n                            case 7:\n                                i.next = 11;\n                                break;\n                            case 9:\n                                i.prev = 9, i.t0 = i.catch(4);\n                            case 11:\n                                t.$set(t.providers, e, f(f({}, n), {}, {\n                                    isChecking: !1\n                                }));\n                            case 12:\n                            case \"end\":\n                                return i.stop()\n                        }\n                    }), i, null, [\n                        [4, 9]\n                    ])\n                })))()\n            },\n            handleProviderUpdate: function(e) {\n                var t = this;\n                return s()(d.a.mark((function i() {\n                    var n, r, o, s, a, l;\n                    return d.a.wrap((function(i) {\n                        for (;;) switch (i.prev = i.next) {\n                            case 0:\n                                if (n = t.providers[e], r = n.name, o = n.vehicleType, [\"File\", \"HTTP\"].includes(o) && r) return t.$set(t.providers, e, f(f({}, n), {}, {\n                                    isUpdating: !0,\n                                    message: \"\"\n                                })), i.prev = 4, i.next = 7, t.clashAxiosClient.put(\"/providers/proxies/\".concat(encodeURIComponent(r)), {}, {\n                                    validateStatus: function(e) {\n                                        return !0\n                                    },\n                                    timeout: 0\n                                });\n                                i.next = 33;\n                                break;\n                            case 7:\n                                if (s = i.sent, o = s.status, s = s.data, 204 === o) return i.next = 13, t.fetchSingleData(\"proxies\", r);\n                                i.next = 26;\n                                break;\n                            case 13:\n                                if (i.t1 = a = i.sent, i.t0 = null !== i.t1, !i.t0) {\n                                    i.next = 17;\n                                    break\n                                }\n                                i.t0 = void 0 !== a;\n                            case 17:\n                                if (!i.t0) {\n                                    i.next = 21;\n                                    break\n                                }\n                                i.t2 = a, i.next = 22;\n                                break;\n                            case 21:\n                                i.t2 = n;\n                            case 22:\n                                l = i.t2, t.$set(t.providers, e, f(f({}, l), {}, {\n                                    isUpdating: !1,\n                                    message: \"\"\n                                })), i.next = 28;\n                                break;\n                            case 26:\n                                l = void 0 === (l = s.message) ? \"无法更新提供者\" : l, t.$set(t.providers, e, f(f({}, n), {}, {\n                                    isUpdating: !1,\n                                    message: l\n                                }));\n                            case 28:\n                                i.next = 33;\n                                break;\n                            case 30:\n                                i.prev = 30, i.t3 = i.catch(4), t.$set(t.providers, e, f(f({}, n), {}, {\n                                    isUpdating: !1,\n                                    message: i.t3\n                                }));\n                            case 33:\n                            case \"end\":\n                                return i.stop()\n                        }\n                    }), i, null, [\n                        [4, 30]\n                    ])\n                })))()\n            },\n            handleRuleProviderUpdate: function(e) {\n                var t = this;\n                return s()(d.a.mark((function i() {\n                    var n, r, o, s, a, l;\n                    return d.a.wrap((function(i) {\n                        for (;;) switch (i.prev = i.next) {\n                            case 0:\n                                if (n = t.ruleProviders[e], r = n.name, o = n.vehicleType, [\"File\", \"HTTP\"].includes(o) && r) return t.$set(t.ruleProviders, e, f(f({}, n), {}, {\n                                    isUpdating: !0,\n                                    message: \"\"\n                                })), i.prev = 4, i.next = 7, t.clashAxiosClient.put(\"/providers/rules/\".concat(encodeURIComponent(r)), {}, {\n                                    validateStatus: function(e) {\n                                        return !0\n                                    },\n                                    timeout: 0\n                                });\n                                i.next = 33;\n                                break;\n                            case 7:\n                                if (s = i.sent, o = s.status, s = s.data, 204 === o) return i.next = 13, t.fetchSingleData(\"rules\", r);\n                                i.next = 26;\n                                break;\n                            case 13:\n                                if (i.t1 = a = i.sent, i.t0 = null !== i.t1, !i.t0) {\n                                    i.next = 17;\n                                    break\n                                }\n                                i.t0 = void 0 !== a;\n                            case 17:\n                                if (!i.t0) {\n                                    i.next = 21;\n                                    break\n                                }\n                                i.t2 = a, i.next = 22;\n                                break;\n                            case 21:\n                                i.t2 = n;\n                            case 22:\n                                l = i.t2, t.$set(t.ruleProviders, e, f(f({}, l), {}, {\n                                    isUpdating: !1,\n                                    message: \"\"\n                                })), i.next = 28;\n                                break;\n                            case 26:\n                                l = void 0 === (l = s.message) ? \"无法更新提供者\" : l, t.$set(t.ruleProviders, e, f(f({}, n), {}, {\n                                    isUpdating: !1,\n                                    message: l\n                                }));\n                            case 28:\n                                i.next = 33;\n                                break;\n                            case 30:\n                                i.prev = 30, i.t3 = i.catch(4), t.$set(t.ruleProviders, e, f(f({}, n), {}, {\n                                    isUpdating: !1,\n                                    message: i.t3\n                                }));\n                            case 33:\n                            case \"end\":\n                                return i.stop()\n                        }\n                    }), i, null, [\n                        [4, 30]\n                    ])\n                })))()\n            },\n            handleEditProviderFile: function(e, t) {\n                var i, n = t.name;\n                n = (e = void 0 === (e = {\n                    rule: void 0 === (t = (i = this.currentProfilePayload)[\"rule-providers\"]) ? {} : t,\n                    proxy: void 0 === (i = i[\"proxy-providers\"]) ? {} : i\n                } [e][n]) ? {} : e).path, e = function(e) {\n                    p.shell.openPath(e)\n                };\n                n && (Object(u.isAbsolute)(n) ? e(n) : e(Object(u.join)(this.clashPath, n)))\n            },\n            fetchSingleData: function(e, t) {\n                var i = this;\n                return s()(d.a.mark((function n() {\n                    var r, o;\n                    return d.a.wrap((function(n) {\n                        for (;;) switch (n.prev = n.next) {\n                            case 0:\n                                return r = \"/providers/\".concat(e, \"/\").concat(encodeURIComponent(t)), n.next = 3, i.clashAxiosClient.get(r, {\n                                    validateStatus: function() {\n                                        return !0\n                                    }\n                                });\n                            case 3:\n                                return o = n.sent, r = o.status, o = o.data, n.abrupt(\"return\", 200 === r ? o : null);\n                            case 7:\n                            case \"end\":\n                                return n.stop()\n                        }\n                    }), n)\n                })))()\n            },\n            fetchData: function() {\n                var e = this;\n                return s()(d.a.mark((function t() {\n                    var i, n, o, s, a, l, c, h, u, p, g, m;\n                    return d.a.wrap((function(t) {\n                        for (;;) switch (t.prev = t.next) {\n                            case 0:\n                                return t.next = 2, Promise.all([e.clashAxiosClient.get(\"/providers/proxies\"), e.clashAxiosClient.get(\"/providers/rules\")]);\n                            case 2:\n                                if (h = t.sent, n = r()(h, 2), o = n[0], i = o.status, h = o.data, o = void 0 === h ? {} : h, h = n[1], n = h.status, h = h.data, 200 === i) {\n                                    for (o = void 0 === (o = o.providers) ? {} : o, s = [], a = 0, l = Object.entries(o); a < l.length; a++)(c = r()(l[a], 2))[0], c = c[1], s.push(f(f({}, c), {}, {\n                                        isChecking: !1,\n                                        isUpdating: !1,\n                                        message: \"\"\n                                    }));\n                                    e.providers = s.filter((function(e) {\n                                        return [\"HTTP\", \"File\"].includes(e.vehicleType)\n                                    }))\n                                } else e.providers = [];\n                                if (200 === n) {\n                                    for (h = void 0 === (h = h.providers) ? {} : h, u = [], p = 0, g = Object.entries(h); p < g.length; p++)(m = r()(g[p], 2))[0], m = m[1], u.push(f(f({}, m), {}, {\n                                        isUpdating: !1,\n                                        message: \"\"\n                                    }));\n                                    e.ruleProviders = u.filter((function(e) {\n                                        return [\"HTTP\", \"File\"].includes(e.vehicleType)\n                                    }))\n                                } else e.ruleProviders = [];\n                            case 13:\n                            case \"end\":\n                                return t.stop()\n                        }\n                    }), t)\n                })))()\n            }\n        },\n        beforeRouteEnter: function(e, t, i) {\n            i((function(e) {\n                e.fetchData()\n            }))\n        }\n    }, i(320), o = Object(a.a)(o, (function() {\n        var e = this,\n            t = e.$createElement,\n            i = e._self._c || t;\n        return i(\"div\", {\n            class: [\"main-provider-view-\" + e.theme]\n        }, [i(\"div\", {\n            class: [\"card\"]\n        }, [i(\"div\", {\n            staticClass: \"header\"\n        }, [i(\"div\", {\n            staticClass: \"buttons\"\n        }, [i(\"Button\", {\n            staticClass: \"btn\",\n            attrs: {\n                text: \"更新全部\",\n                isLoading: !1\n            },\n            on: {\n                click: e.handleAllProvidersUpdate\n            }\n        }), e._v(\" \"), i(\"Button\", {\n            staticClass: \"btn\",\n            attrs: {\n                text: \"检查全部连接\",\n                isLoading: !1\n            },\n            on: {\n                click: e.handleAllProvidersHealthCheck\n            }\n        })], 1)]), e._v(\" \"), i(\"div\", {\n            ref: \"mixin-scroll-content\",\n            staticClass: \"content\"\n        }, [0 < e.providers.length ? [i(\"div\", {\n            staticClass: \"title\"\n        }, [e._v(\"代理提供者\")]), e._v(\" \"), i(\"div\", {\n            staticClass: \"items\"\n        }, e._l(e.providers, (function(t, n) {\n            return i(\"div\", {\n                key: t.name,\n                staticClass: \"provider-item\"\n            }, [i(\"div\", {\n                staticClass: \"provider-item-main\"\n            }, [i(\"div\", [i(\"div\", {\n                staticClass: \"name-type\"\n            }, [i(\"div\", {\n                staticClass: \"name\"\n            }, [e._v(e._s(t.name))])]), e._v(\" \"), i(\"div\", {\n                staticClass: \"update-hint\"\n            }, [i(\"div\", {\n                staticClass: \"type\"\n            }, [e._v(\"\\n                    \" + e._s(t.vehicleType) + \" (\" + e._s(t.proxies.length) + \"\\n                    Proxies) (\" + e._s(e.fromNowString(t.updatedAt)) + \")\\n                  \")])]), e._v(\" \"), i(\"div\", {\n                staticClass: \"error-hint\"\n            }, [e._v(e._s(t.message))])]), e._v(\" \"), i(\"div\", {\n                staticClass: \"empty\"\n            }), e._v(\" \"), i(\"div\", {\n                staticClass: \"icon-btn\",\n                on: {\n                    click: function(t) {\n                        return e.handleHealthCheck(n)\n                    }\n                }\n            }, [i(\"svg\", {\n                attrs: {\n                    xmlns: \"http://www.w3.org/2000/svg\",\n                    viewBox: \"0 0 24 24\"\n                }\n            }, [i(\"path\", {\n                attrs: {\n                    d: \"M0 0h24v24H0V0z\",\n                    fill: \"none\"\n                }\n            }), e._v(\" \"), i(\"path\", {\n                attrs: {\n                    d: \"M15.9 5c-.17 0-.32.09-.41.23l-.07.15-5.18 11.65c-.16.29-.26.61-.26.96 0 1.11.9 2.01 2.01 2.01.96 0 1.77-.68 1.96-1.59l.01-.03L16.4 5.5c0-.28-.22-.5-.5-.5zM2.06 10.06c.51.51 1.33.55 1.89.09 2.76-2.26 6.24-3.18 9.58-2.76l1.19-2.68c-4.35-.78-8.96.3-12.57 3.25-.64.53-.68 1.51-.09 2.1zm19.88 0c.59-.59.55-1.57-.1-2.1-1.36-1.11-2.86-1.95-4.44-2.53l-.53 2.82c1.13.47 2.19 1.09 3.17 1.89.58.46 1.39.43 1.9-.08zm-4.03 4.03c.6-.6.56-1.63-.14-2.12-.46-.33-.94-.61-1.44-.86l-.55 2.92c.11.07.22.14.32.22.57.4 1.33.32 1.81-.16zm-11.83-.01c.5.5 1.27.54 1.85.13.94-.66 2.01-1.06 3.1-1.22l1.28-2.88c-2.13-.06-4.28.54-6.09 1.84-.69.51-.74 1.53-.14 2.13z\"\n                }\n            })])]), e._v(\" \"), i(\"div\", {\n                staticClass: \"icon-btn\",\n                on: {\n                    click: function(i) {\n                        return e.handleEditProviderFile(\"proxy\", t)\n                    }\n                }\n            }, [i(\"svg\", {\n                attrs: {\n                    xmlns: \"http://www.w3.org/2000/svg\",\n                    viewBox: \"0 0 24 24\"\n                }\n            }, [i(\"title\", [e._v(\"Edit file\")]), e._v(\" \"), i(\"path\", {\n                attrs: {\n                    d: \"M0 0h24v24H0V0z\",\n                    fill: \"none\"\n                }\n            }), e._v(\" \"), i(\"path\", {\n                attrs: {\n                    d: \"M8.7 15.9L4.8 12l3.9-3.9c.39-.39.39-1.01 0-1.4-.39-.39-1.01-.39-1.4 0l-4.59 4.59c-.39.39-.39 1.02 0 1.41l4.59 4.6c.39.39 1.01.39 1.4 0 .39-.39.39-1.01 0-1.4zm6.6 0l3.9-3.9-3.9-3.9c-.39-.39-.39-1.01 0-1.4.39-.39 1.01-.39 1.4 0l4.59 4.59c.39.39.39 1.02 0 1.41l-4.59 4.6c-.39.39-1.01.39-1.4 0-.39-.39-.39-1.01 0-1.4z\"\n                }\n            })])]), e._v(\" \"), \"HTTP\" === t.vehicleType ? i(\"div\", {\n                staticClass: \"icon-btn\",\n                on: {\n                    click: function(t) {\n                        return e.handleProviderUpdate(n)\n                    }\n                }\n            }, [i(\"svg\", {\n                class: {\n                    rotating: t.isUpdating\n                },\n                attrs: {\n                    xmlns: \"http://www.w3.org/2000/svg\",\n                    viewBox: \"0 0 24 24\"\n                }\n            }, [i(\"title\", [e._v(\"更新提供者\")]), e._v(\" \"), i(\"path\", {\n                attrs: {\n                    d: \"M0 0h24v24H0V0z\",\n                    fill: \"none\"\n                }\n            }), e._v(\" \"), i(\"path\", {\n                attrs: {\n                    d: \"M17.65 6.35c-1.63-1.63-3.94-2.57-6.48-2.31-3.67.37-6.69 3.35-7.1 7.02C3.52 15.91 7.27 20 12 20c3.19 0 5.93-1.87 7.21-4.56.32-.67-.16-1.44-.9-1.44-.37 0-.72.2-.88.53-1.13 2.43-3.84 3.97-6.8 3.31-2.22-.49-4.01-2.3-4.48-4.52C5.31 9.44 8.26 6 12 6c1.66 0 3.14.69 4.22 1.78l-1.51 1.51c-.63.63-.19 1.71.7 1.71H19c.55 0 1-.45 1-1V6.41c0-.89-1.08-1.34-1.71-.71l-.64.65z\"\n                }\n            })])]) : e._e()])])\n        })), 0)] : e._e(), e._v(\" \"), 0 < e.ruleProviders.length ? [i(\"div\", {\n            staticClass: \"title\"\n        }, [e._v(\"Rule Providers\")]), e._v(\" \"), i(\"div\", {\n            staticClass: \"items\"\n        }, e._l(e.ruleProviders, (function(t, n) {\n            return i(\"div\", {\n                key: t.name,\n                staticClass: \"provider-item\"\n            }, [i(\"div\", {\n                staticClass: \"provider-item-main\"\n            }, [i(\"div\", [i(\"div\", {\n                staticClass: \"name-type\"\n            }, [i(\"div\", {\n                staticClass: \"name\"\n            }, [e._v(\"\\n                    \" + e._s(t.name) + \"\\n                  \")])]), e._v(\" \"), i(\"div\", {\n                staticClass: \"update-hint\"\n            }, [i(\"div\", {\n                staticClass: \"type\"\n            }, [e._v(\"\\n                    \" + e._s(t.vehicleType) + \"\\n                    \" + e._s(t.behavior) + \" (\" + e._s(t.ruleCount) + \" Rules)\\n                    (\" + e._s(e.fromNowString(t.updatedAt)) + \")\\n                  \")])]), e._v(\" \"), i(\"div\", {\n                staticClass: \"error-hint\"\n            }, [e._v(e._s(t.message))])]), e._v(\" \"), i(\"div\", {\n                staticClass: \"empty\"\n            }), e._v(\" \"), i(\"div\", {\n                staticClass: \"icon-btn\",\n                on: {\n                    click: function(i) {\n                        return e.handleEditProviderFile(\"rule\", t)\n                    }\n                }\n            }, [i(\"svg\", {\n                attrs: {\n                    xmlns: \"http://www.w3.org/2000/svg\",\n                    viewBox: \"0 0 24 24\"\n                }\n            }, [i(\"title\", [e._v(\"Edit file\")]), e._v(\" \"), i(\"path\", {\n                attrs: {\n                    d: \"M0 0h24v24H0V0z\",\n                    fill: \"none\"\n                }\n            }), e._v(\" \"), i(\"path\", {\n                attrs: {\n                    d: \"M8.7 15.9L4.8 12l3.9-3.9c.39-.39.39-1.01 0-1.4-.39-.39-1.01-.39-1.4 0l-4.59 4.59c-.39.39-.39 1.02 0 1.41l4.59 4.6c.39.39 1.01.39 1.4 0 .39-.39.39-1.01 0-1.4zm6.6 0l3.9-3.9-3.9-3.9c-.39-.39-.39-1.01 0-1.4.39-.39 1.01-.39 1.4 0l4.59 4.59c.39.39.39 1.02 0 1.41l-4.59 4.6c-.39.39-1.01.39-1.4 0-.39-.39-.39-1.01 0-1.4z\"\n                }\n            })])]), e._v(\" \"), i(\"div\", {\n                staticClass: \"icon-btn\",\n                on: {\n                    click: function(t) {\n                        return e.handleRuleProviderUpdate(n)\n                    }\n                }\n            }, [i(\"svg\", {\n                class: {\n                    rotating: t.isUpdating\n                },\n                attrs: {\n                    xmlns: \"http://www.w3.org/2000/svg\",\n                    viewBox: \"0 0 24 24\"\n                }\n            }, [i(\"title\", [e._v(\"更新提供者\")]), e._v(\" \"), i(\"path\", {\n                attrs: {\n                    d: \"M0 0h24v24H0V0z\",\n                    fill: \"none\"\n                }\n            }), e._v(\" \"), i(\"path\", {\n                attrs: {\n                    d: \"M17.65 6.35c-1.63-1.63-3.94-2.57-6.48-2.31-3.67.37-6.69 3.35-7.1 7.02C3.52 15.91 7.27 20 12 20c3.19 0 5.93-1.87 7.21-4.56.32-.67-.16-1.44-.9-1.44-.37 0-.72.2-.88.53-1.13 2.43-3.84 3.97-6.8 3.31-2.22-.49-4.01-2.3-4.48-4.52C5.31 9.44 8.26 6 12 6c1.66 0 3.14.69 4.22 1.78l-1.51 1.51c-.63.63-.19 1.71.7 1.71H19c.55 0 1-.45 1-1V6.41c0-.89-1.08-1.34-1.71-.71l-.64.65z\"\n                }\n            })])])])])\n        })), 0)] : e._e()], 2)])])\n    }), [], !1, null, \"5a14fd42\", null), t.default = o.exports\n}, function(e, t, i) {\n    \"use strict\";\n    i.r(t);\n    var n = i(10),\n        r = i.n(n),\n        o = i(18),\n        s = i.n(o),\n        a = i(3),\n        l = i.n(a),\n        d = i(35),\n        c = i(38),\n        h = (n = i(69), i.n(n)),\n        u = Symbol(),\n        p = Symbol(),\n        g = Symbol(),\n        f = (o = {\n            props: [\"src\", \"clickalbe\"],\n            data: function() {\n                return {\n                    status: u\n                }\n            },\n            computed: {\n                isDefault: function() {\n                    return this.status === u\n                },\n                isLoaded: function() {\n                    return this.status === p\n                },\n                isFailed: function() {\n                    return this.status === g\n                }\n            },\n            methods: {\n                imgLoaded: function() {\n                    this.status = p\n                },\n                imgFailed: function() {\n                    this.status = g\n                }\n            }\n        }, a = (i(366), i(30)), n = Object(a.a)(o, (function() {\n            var e = this,\n                t = e.$createElement;\n            return (t = e._self._c || t)(\"div\", {\n                attrs: {\n                    id: \"lazy-image-view\"\n                }\n            }, [t(\"div\", {\n                directives: [{\n                    name: \"show\",\n                    rawName: \"v-show\",\n                    value: e.isDefault,\n                    expression: \"isDefault\"\n                }],\n                staticClass: \"placeholder ad-img twinkling\"\n            }, [t(\"div\", [e._v(\"图片正在加载\")])]), e._v(\" \"), t(\"img\", {\n                directives: [{\n                    name: \"show\",\n                    rawName: \"v-show\",\n                    value: e.isLoaded,\n                    expression: \"isLoaded\"\n                }],\n                class: {\n                    \"ad-img\": !0, clickable: e.clickalbe\n                },\n                attrs: {\n                    src: e.src\n                },\n                on: {\n                    load: e.imgLoaded,\n                    error: e.imgFailed,\n                    click: function(t) {\n                        return e.$emit(\"click\")\n                    }\n                }\n            }), e._v(\" \"), t(\"div\", {\n                directives: [{\n                    name: \"show\",\n                    rawName: \"v-show\",\n                    value: e.isFailed,\n                    expression: \"isFailed\"\n                }],\n                staticClass: \"ad-img error-img\"\n            }, [t(\"div\", [e._v(\"找不到图片.但希望你能给汉化clash的我捐赠!\")]), e._v(\" \"), t(\"img\", {\n                attrs: {\n                    src: \"static/svg/1f996.svg\",\n                    alt: \"\"\n                }\n            })])])\n        }), [], !1, null, \"65724216\", null).exports, o = i(27), i(22));\n\n    function m(e, t) {\n        var i, n = Object.keys(e);\n        return Object.getOwnPropertySymbols && (i = Object.getOwnPropertySymbols(e), t && (i = i.filter((function(t) {\n            return Object.getOwnPropertyDescriptor(e, t).enumerable\n        }))), n.push.apply(n, i)), n\n    }\n    o = {\n        props: [],\n        components: {\n            LazyImageView: n\n        },\n        data: function() {\n            return {\n                adImages: []\n            }\n        },\n        computed: function(e) {\n            for (var t = 1; t < arguments.length; t++) {\n                var i = null != arguments[t] ? arguments[t] : {};\n                t % 2 ? m(Object(i), !0).forEach((function(t) {\n                    s()(e, t, i[t])\n                })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(i)) : m(Object(i)).forEach((function(t) {\n                    Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(i, t))\n                }))\n            }\n            return e\n        }({}, Object(o.mapState)({})),\n        methods: {\n            select: function(e) {\n                f.shell.openExternal([\"https://t.me/Rules_lhie1\", \"https://t.me/Fndroids\", \"https://github.com/ender-zhao/Clash-for-Windows_Chinese-Attached\", \"https://github.com/Dreamacro/clash\", \"https://github.com/yichengchen/clashX\", \"https://docs.cfw.lbyczf.com/\", \"https://fndroid.github.io/clash-config-builder/\", \"https://github.com/tiagonmas/Windows-Loopback-Exemption-Manager\", \"https://github.com/Noisyfox/sysproxy\", \"https://github.com/eycorsican/go-tun2socks\", \"https://dev.maxmind.com/geoip/geoip2/geolite2/\", \"https://github.com/twitter/twemoji\", \"https://github.com/Jigsaw-Code/outline-client\", \"https://github.com/microsoft/terminal/\", \"https://www.wintun.net/\", \"https://github.com/winsw/winsw\", \"https://apps.apple.com/us/app-bundle/quantumult-x-upgrade/id1482985563\", \"https://github.com/Kr328/clash-premium-installer\"][e])\n            },\n            adClick: function(e) {\n                f.shell.openExternal(this.adImages[e].click)\n            }\n        },\n        beforeRouteEnter: function(e, t, i) {\n            var n;\n            i((n = r()(l.a.mark((function e(t) {\n                var i, n, r;\n                return l.a.wrap((function(e) {\n                    for (;;) switch (e.prev = e.next) {\n                        case 0:\n                            return t.adImages = d.a.get(c.a.AD_IMAGES) || [], e.next = 3, h.a.get(\"https://raw.githubusercontent.com/Fndroid/ads/master/ads_v2.json?t=\" + (new Date).getTime());\n                        case 3:\n                            r = e.sent, i = r.status, r = r.data, 200 === i && (n = r.feedback) && (r = n, d.a.put(c.a.AD_IMAGES, r), t.adImages = r);\n                        case 6:\n                        case \"end\":\n                            return e.stop()\n                    }\n                }), e)\n            }))), function(e) {\n                return n.apply(this, arguments)\n            }))\n        }\n    }, i(368), i(370), o = Object(a.a)(o, (function() {\n        var e = this,\n            t = e.$createElement,\n            i = e._self._c || t;\n        return i(\"div\", {\n            attrs: {\n                id: \"main-about-view\"\n            }\n        }, [e._m(0), e._v(\" \"), i(\"div\", {\n            staticClass: \"section\"\n        }, [i(\"div\", {\n            staticClass: \"title\"\n        }, [e._v(\"关于\")]), e._v(\" \"), i(\"div\", {\n            staticClass: \"chat-list\"\n        }, [i(\"div\", {\n            class: [\"chat-item-\" + e.theme],\n            on: {\n                click: function(t) {\n                    return e.select(2)\n                }\n            }\n        }, [e._v(\"Github\")]), e._v(\" \"), i(\"div\", {\n            class: [\"chat-item-\" + e.theme],\n            on: {\n                click: function(t) {\n                    return e.select(5)\n                }\n            }\n        }, [e._v(\"帮助文档\")])])]), e._v(\" \"), i(\"div\", {\n            staticClass: \"section\"\n        }, [i(\"div\", {\n            staticClass: \"title\"\n        }, [e._v(\"鸣谢\")]), e._v(\" \"), i(\"div\", {\n            staticClass: \"chat-list\"\n        }, [i(\"div\", {\n            class: [\"chat-item-\" + e.theme],\n            on: {\n                click: function(t) {\n                    return e.select(3)\n                }\n            }\n        }, [e._v(\"Clash\")]), e._v(\" \"), i(\"div\", {\n            class: [\"chat-item-\" + e.theme],\n            on: {\n                click: function(t) {\n                    return e.select(4)\n                }\n            }\n        }, [e._v(\"ClashX\")]), e._v(\" \"), i(\"div\", {\n            class: [\"chat-item-\" + e.theme],\n            on: {\n                click: function(t) {\n                    return e.select(16)\n                }\n            }\n        }, [e._v(\"\\n        Quantumult(X)\\n      \")]), e._v(\" \"), i(\"div\", {\n            class: [\"chat-item-\" + e.theme],\n            on: {\n                click: function(t) {\n                    return e.select(10)\n                }\n            }\n        }, [e._v(\"GeoLite2\")]), e._v(\" \"), i(\"div\", {\n            class: [\"chat-item-\" + e.theme],\n            on: {\n                click: function(t) {\n                    return e.select(11)\n                }\n            }\n        }, [e._v(\"twemoji\")]), e._v(\" \"), i(\"div\", {\n            class: [\"chat-item-\" + e.theme],\n            on: {\n                click: function(t) {\n                    return e.select(7)\n                }\n            }\n        }, [e._v(\"\\n        EnableLoopback\\n      \")]), e._v(\" \"), i(\"div\", {\n            class: [\"chat-item-\" + e.theme],\n            on: {\n                click: function(t) {\n                    return e.select(8)\n                }\n            }\n        }, [e._v(\"sysproxy\")]), e._v(\" \"), i(\"div\", {\n            class: [\"chat-item-\" + e.theme],\n            on: {\n                click: function(t) {\n                    return e.select(9)\n                }\n            }\n        }, [e._v(\"\\n        go-tun2socks\\n      \")]), e._v(\" \"), i(\"div\", {\n            class: [\"chat-item-\" + e.theme],\n            on: {\n                click: function(t) {\n                    return e.select(12)\n                }\n            }\n        }, [e._v(\"\\n        outline-client\\n      \")]), e._v(\" \"), i(\"div\", {\n            class: [\"chat-item-\" + e.theme],\n            on: {\n                click: function(t) {\n                    return e.select(13)\n                }\n            }\n        }, [e._v(\"terminal\")]), e._v(\" \"), i(\"div\", {\n            class: [\"chat-item-\" + e.theme],\n            on: {\n                click: function(t) {\n                    return e.select(14)\n                }\n            }\n        }, [e._v(\"Wintun\")]), e._v(\" \"), i(\"div\", {\n            class: [\"chat-item-\" + e.theme],\n            on: {\n                click: function(t) {\n                    return e.select(15)\n                }\n            }\n        }, [e._v(\"winsw\")]), e._v(\" \"), i(\"div\", {\n            class: [\"chat-item-\" + e.theme],\n            on: {\n                click: function(t) {\n                    return e.select(17)\n                }\n            }\n        }, [e._v(\"\\n        clash-premium-installer\\n      \")])])]), e._v(\" \"), i(\"div\", {\n            staticClass: \"section ad-section\"\n        }, [i(\"div\", {\n            staticClass: \"title\"\n        }, [e._v(\"广告\")]), e._v(\" \"), i(\"div\", {\n            staticClass: \"ad-img-list\"\n        }, e._l(e.adImages, (function(t, n) {\n            return i(\"div\", {\n                key: n,\n                staticClass: \"ad-img\"\n            }, [i(\"lazy-image-view\", {\n                attrs: {\n                    clickalbe: t.click,\n                    src: t.img\n                },\n                on: {\n                    click: function(t) {\n                        return e.adClick(n)\n                    }\n                }\n            })], 1)\n        })), 0)])])\n    }), [function() {\n        var e = this.$createElement;\n        return (e = this._self._c || e)(\"div\", {\n            staticClass: \"section\"\n        }, [e(\"div\", {\n            staticClass: \"title\"\n        }, [this._v(\"作者\")]), this._v(\" \"), e(\"div\", {\n            staticClass: \"content\"\n        }, [this._v(\"404 Frror\")])])\n    }], !1, null, \"787e70b2\", null), t.default = o.exports\n}, function(e, t, i) {\n    \"use strict\";\n    i.r(t);\n    var n = i(10),\n        r = i.n(n),\n        o = (n = i(18), i.n(n)),\n        s = (n = i(3), i.n(n)),\n        a = (n = i(61), i.n(n)),\n        l = i(40),\n        d = (n = i(27), i(82)),\n        c = i(48),\n        h = i(22);\n\n    function u(e, t) {\n        var i, n = Object.keys(e);\n        return Object.getOwnPropertySymbols && (i = Object.getOwnPropertySymbols(e), t && (i = i.filter((function(t) {\n            return Object.getOwnPropertyDescriptor(e, t).enumerable\n        }))), n.push.apply(n, i)), n\n    }\n\n    function p(e) {\n        for (var t = 1; t < arguments.length; t++) {\n            var i = null != arguments[t] ? arguments[t] : {};\n            t % 2 ? u(Object(i), !0).forEach((function(t) {\n                o()(e, t, i[t])\n            })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(i)) : u(Object(i)).forEach((function(t) {\n                Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(i, t))\n            }))\n        }\n        return e\n    }\n    n = {\n        props: [],\n        data: function() {\n            return {\n                listData: [],\n                randomColor: [],\n                client: null,\n                isAutoScroll: !0,\n                dnsRecords: {}\n            }\n        },\n        watch: {\n            isWindowShow: function(e) {\n                this.handleWindwEvent(e)\n            },\n            clashStatus: function(e) {\n                this.closeLogStream(), e === c.a.CONNECTED && this.openLogStream()\n            }\n        },\n        computed: p(p(p({}, Object(n.mapState)({\n            isWindowShow: function(e) {\n                return e.app.isWindowShow\n            },\n            clashStatus: function(e) {\n                return e.app.clashStatus\n            },\n            mode: function(e) {\n                return e.app.mode\n            }\n        })), Object(n.mapGetters)([\"clashWSClient\"])), {}, {\n            buttonText: function() {\n                return this.client && 1 === this.client.readyState ? \"暂停\" : \"开始\"\n            },\n            buttonStyle: function() {\n                var e = [\"button\"];\n                return this.client && 1 === this.client.readyState ? e.push(\"button-off\") : e.push(\"button-on\"), e\n            }\n        }),\n        methods: p(p({}, Object(n.mapActions)([\"getMode\"])), {}, {\n            copyPayload: function(e) {\n                h.clipboard.writeText(e.url), Object(l.h)(\"Copied to Clipboad!\", e.url)\n            },\n            randomBGC: function(e) {\n                if (\"light\" === this.theme) {\n                    if (n = this.randomColor.find((function(t) {\n                            return t.type === e\n                        }))) return {\n                        color: \"rgb(\".concat(n.r, \",\").concat(n.g, \",\").concat(n.b, \")\")\n                    };\n                    var t = Math.floor(150 * Math.random() + 10),\n                        i = Math.floor(150 * Math.random() + 10),\n                        n = Math.floor(150 * Math.random() + 10);\n                    return this.randomColor.push({\n                        type: e,\n                        r: t,\n                        g: i,\n                        b: n\n                    }), {\n                        color: \"rgb(\".concat(t, \",\").concat(i, \",\").concat(n, \")\")\n                    }\n                }\n            },\n            openLogStream: function() {\n                var e = this,\n                    t = this.clashWSClient(\"logs\", [\"level=debug\"]);\n                t && (t.on(\"message\", (function(t) {\n                    var i = JSON.parse(t),\n                        n = null;\n                    t = Object(d.uniqueId)();\n                    /^\\[(.+?)\\](.*?)-->(.*?) doesn't match any rule using (.*)$/.test(i.payload) ? n = {\n                        type: i.type,\n                        protocol: RegExp.$1.trim(),\n                        url: RegExp.$3.trim(),\n                        rule: \"NoMatch\",\n                        proxy: \"DIRECT\",\n                        from: RegExp.$2.trim(),\n                        time: a()(),\n                        id: t\n                    } : /^\\[(.+?)\\](.*?)-->(.*?) match (.*?) using (.*)$/.test(i.payload) ? n = {\n                        type: i.type,\n                        protocol: RegExp.$1.trim(),\n                        url: RegExp.$3.trim(),\n                        rule: RegExp.$4.trim(),\n                        from: RegExp.$2.trim(),\n                        proxy: RegExp.$5.trim(),\n                        time: a()(),\n                        id: t\n                    } : /^\\[(.+?)\\](.+?)-->(.+?) using (.+?) by Script$/.test(i.payload) ? n = {\n                        type: i.type,\n                        protocol: RegExp.$1.trim(),\n                        url: RegExp.$3.trim(),\n                        rule: \"Script\",\n                        from: RegExp.$2.trim(),\n                        proxy: RegExp.$4.trim(),\n                        time: a()(),\n                        id: t\n                    } : /^\\[(.+?)\\](.+?)-->(.+?) using (.+?)$/.test(i.payload) ? n = {\n                        type: i.type,\n                        protocol: RegExp.$1.trim(),\n                        url: RegExp.$3.trim(),\n                        rule: RegExp.$4.trim(),\n                        from: RegExp.$2.trim(),\n                        proxy: RegExp.$4.trim(),\n                        time: a()()\n                    } : /dial (.+?) to (.+?) error: (.+)/.test(i.payload) ? n = {\n                        type: i.type,\n                        url: RegExp.$2.trim(),\n                        rule: \"\",\n                        from: \"\".concat(RegExp.$3.trim()),\n                        proxy: RegExp.$1.trim(),\n                        time: a()(),\n                        id: t\n                    } : /\\[DNS\\] (.+?) --> (.+?)$/.test(i.payload) && (e.dnsRecords[RegExp.$1.trim()] = RegExp.$2.trim()), n && (\"info\" === n.type && n.url in e.dnsRecords && (n = p(p({}, n), {}, {\n                        ip: e.dnsRecords[n.url]\n                    }), delete e.dnsRecords[n.url]), e.listData.push(n))\n                })), this.client = t)\n            },\n            closeLogStream: function() {\n                this.client && this.client.terminate(), this.client = null\n            },\n            handleBtnClick: function() {\n                this.client ? this.closeLogStream() : this.openLogStream()\n            },\n            handleClear: function() {\n                this.listData = []\n            },\n            handleWindwEvent: function(e) {\n                e ? this.openLogStream() : this.closeLogStream()\n            },\n            handleScroll: function(e) {\n                var t, i = e.target;\n                i && (t = i.scrollTop, e = i.scrollHeight, i = i.clientHeight, this.isAutoScroll = Math.abs(e - t - i) < 1)\n            }\n        }),\n        beforeRouteEnter: function(e, t, i) {\n            var n;\n            i((n = r()(s.a.mark((function e(t) {\n                return s.a.wrap((function(e) {\n                    for (;;) switch (e.prev = e.next) {\n                        case 0:\n                            t.getMode(), t.openLogStream(), t.$refs.list.addEventListener(\"scroll\", t.handleScroll);\n                        case 3:\n                        case \"end\":\n                            return e.stop()\n                    }\n                }), e)\n            }))), function(e) {\n                return n.apply(this, arguments)\n            }))\n        },\n        beforeRouteLeave: function(e, t, i) {\n            this.closeLogStream(), this.$refs.list.removeEventListener(\"scroll\", this.handleScroll), i()\n        },\n        updated: function() {\n            this.$nextTick((function() {\n                var e = this.$refs.list;\n                e && this.isAutoScroll && (e.scrollTop = e.scrollHeight)\n            }))\n        }\n    }, i(322), i(324), i = i(30), n = Object(i.a)(n, (function() {\n        var e = this,\n            t = e.$createElement,\n            i = e._self._c || t;\n        return i(\"div\", {\n            class: [\"main-log-view-\" + e.theme]\n        }, [i(\"div\", {\n            staticClass: \"title\"\n        }, [i(\"div\", {\n            staticClass: \"text\"\n        }, [i(\"div\", [e._v(\"请求日志\")]), e._v(\" \"), i(\"div\", {\n            staticClass: \"hint\"\n        }, [e._v(\"模式: \" + (\"global\" == e._s(e.mode) ? \"全局\" : \"rule\" == e._s(e.mode) ? \"规则\" : \"direct\" == e._s(e.mode) ? \"直连\" : \"script\" == e._s(e.mode) ? \"脚本\" : e._s(e.mode)))])]), e._v(\" \"), i(\"div\", {\n            staticClass: \"btns\"\n        }, [i(\"div\", {\n            staticClass: \"button button-clear\",\n            on: {\n                click: e.handleClear\n            }\n        }, [e._v(\"清除\")]), e._v(\" \"), i(\"div\", {\n            class: e.buttonStyle,\n            on: {\n                click: e.handleBtnClick\n            }\n        }, [e._v(e._s(e.buttonText))])])]), e._v(\" \"), i(\"div\", {\n            ref: \"list\",\n            class: [\"log-list-\" + e.theme]\n        }, [0 === e.listData.length ? i(\"div\", {\n            staticClass: \"empty-list\"\n        }, [i(\"div\", [e._v(\"空日志列表\")]), e._v(\" \"), i(\"div\", [e._v(\"刷新浏览器以发出请求.\")])]) : e._l(e.listData.slice(-200), (function(t) {\n            return i(\"div\", {\n                key: t.id,\n                class: [\"log-item-\" + e.theme],\n                on: {\n                    click: function(i) {\n                        return e.copyPayload(t)\n                    }\n                }\n            }, [i(\"div\", {\n                class: {\n                    left: !0, warning: \"warning\" === t.type\n                }\n            }, [i(\"div\", {\n                staticClass: \"url\"\n            }, [i(\"div\", {\n                staticClass: \"name\"\n            }, [e._v(e._s(t.url))]), e._v(\" \"), i(\"div\", {\n                class: [\"rule-\" + e.theme]\n            }, [t.protocol ? i(\"div\", [e._v(e._s(t.protocol))]) : e._e(), e._v(\" \"), t.ip ? i(\"div\", [e._v(e._s(t.ip))]) : e._e(), e._v(\" \"), t.rule ? i(\"div\", {\n                staticClass: \"payload\"\n            }, [e._v(e._s(t.rule))]) : e._e(), e._v(\" \"), t.from ? i(\"div\", [e._v(e._s(t.from))]) : e._e(), e._v(\" \"), i(\"div\", [e._v(e._s(t.time.format(\"HH:mm:ss.SSS\")))])])]), e._v(\" \"), t.proxy ? i(\"div\", {\n                staticClass: \"proxy-name\",\n                style: e.randomBGC(t.proxy),\n                domProps: {\n                    innerHTML: e._s(e.$parseEmoji(t.proxy))\n                }\n            }) : e._e()])])\n        }))], 2)])\n    }), [], !1, null, \"2b002dd2\", null), t.default = n.exports\n}, function(e, t, i) {\n    \"use strict\";\n    i.r(t);\n    var n = i(10),\n        r = i.n(n),\n        o = i(52),\n        s = i.n(o),\n        a = (n = i(18), i.n(n)),\n        l = (o = i(3), i.n(o)),\n        d = (n = i(134), i(35)),\n        c = i(38),\n        h = (o = i(61), i.n(o)),\n        u = (o = i(27), i(48));\n\n    function p(e, t) {\n        var i, n = Object.keys(e);\n        return Object.getOwnPropertySymbols && (i = Object.getOwnPropertySymbols(e), t && (i = i.filter((function(t) {\n            return Object.getOwnPropertyDescriptor(e, t).enumerable\n        }))), n.push.apply(n, i)), n\n    }\n\n    function g(e) {\n        for (var t = 1; t < arguments.length; t++) {\n            var i = null != arguments[t] ? arguments[t] : {};\n            t % 2 ? p(Object(i), !0).forEach((function(t) {\n                a()(e, t, i[t])\n            })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(i)) : p(Object(i)).forEach((function(t) {\n                Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(i, t))\n            }))\n        }\n        return e\n    }\n    o = {\n        components: {\n            Hint: n.a\n        },\n        props: [],\n        data: function() {\n            return {\n                isPause: !1,\n                searchText: \"\",\n                client: null,\n                lastData: {\n                    uploadTotal: 0,\n                    downloadTotal: 0,\n                    connections: []\n                },\n                data: {\n                    uploadTotal: 0,\n                    downloadTotal: 0,\n                    connections: []\n                },\n                labels: [\"上传速度\", \"下载速度\", \"上传流量\", \"下载流量\", \"时间\"],\n                labelSelected: 4,\n                isReverse: !1\n            }\n        },\n        watch: {\n            clashStatus: function(e) {\n                this.client && this.client.terminate(), e === u.a.CONNECTED && this.setupComponent()\n            }\n        },\n        computed: g(g(g({}, Object(o.mapState)({\n            clashStatus: function(e) {\n                return e.app.clashStatus\n            }\n        })), Object(o.mapGetters)([\"clashAxiosClient\", \"clashWSClient\"])), {}, {\n            searchTextReg: function() {\n                try {\n                    return new RegExp(this.searchText, \"i\")\n                } catch (e) {}\n                return null\n            },\n            orderedConnections: function() {\n                var e = this;\n                if (!this.data) return [];\n\n                function t(e) {\n                    return new Date(e).getTime()\n                }\n                var i = s()(this.data.connections).map((function(t) {\n                    var i = t.id,\n                        n = e.lastData.connections.find((function(e) {\n                            return e.id === i\n                        }));\n                    return t.speed = n ? {\n                        upload: t.upload - n.upload,\n                        download: t.download - n.download\n                    } : {\n                        upload: 0,\n                        download: 0\n                    }, t\n                })).sort((function(i, n) {\n                    return 4 === e.labelSelected ? t(i.start) - t(n.start) : 3 === e.labelSelected ? n.download - i.download : 2 === e.labelSelected ? n.upload - i.upload : 1 === e.labelSelected ? n.speed.download - i.speed.download : 0 === e.labelSelected ? n.speed.upload - i.speed.upload : 0\n                }));\n                i = this.isReverse ? i.reverse() : i;\n                return \"\" === this.searchText ? i : i.filter((function(t) {\n                    return !e.searchTextReg || e.searchTextReg.test(JSON.stringify(Object.values(t)))\n                }))\n            }\n        }),\n        methods: {\n            connectionEndpoint: function(e) {\n                var t = void 0 === (i = e.chains) ? [] : i,\n                    i = (e = this.settings.connChainType, t.length);\n                return [0, 2].includes(void 0 === e ? 0 : e) && 1 <= i ? this.$parseEmoji(t[0]) : \"\"\n            },\n            connectionGroup: function(e) {\n                var t = void 0 === (i = e.chains) ? [] : i,\n                    i = void 0 === (e = this.settings.connChainType) ? 0 : e;\n                e = t.length;\n                return (2 !== i || 1 !== e) && [1, 2].includes(i) && 1 <= e ? this.$parseEmoji(t[e - 1]) : \"\"\n            },\n            handleReverseChange: function() {\n                this.isReverse = !this.isReverse, d.a.put(c.a.CONNECTION_ORDER_REVERSE, this.isReverse)\n            },\n            handleLableSelect: function(e) {\n                this.labelSelected = e, d.a.put(c.a.CONNECTION_ORDER_INDEX, e)\n            },\n            calcLabelClasses: function(e) {\n                var t = [\"label\"];\n                return this.labelSelected === e && t.push(\"label-selected\"), t\n            },\n            calcSpeedText: function(e) {\n                var t = [];\n                if (!e.speed) return \"\";\n                e = void 0 === (e = (i = e.speed).upload) ? 0 : e;\n                var i = void 0 === (i = i.download) ? 0 : i;\n                return 0 !== e && t.push(\"↑\".concat(this.traffic(e), \"/s\")), 0 !== i && t.push(\"↓\".concat(this.traffic(i), \"/s\")), t.join(\" \")\n            },\n            fromNow: function(e) {\n                return h()(e).locale('zh-cn').fromNow()\n            },\n            traffic: function(e) {\n                for (var t = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : 2, i = [\"B\", \"KB\", \"MB\", \"GB\", \"TB\"], n = 0; ~~(e / 1024) && n < i.length;) e /= 1024, n++;\n                return \"\".concat(0 === n ? e : e.toFixed(t), \" \").concat(i[n])\n            },\n            upperCaseFirst: function(e) {\n                return e.charAt(0).toUpperCase() + e.slice(1)\n            },\n            handleCloseConnection: function(e) {\n                var t = this;\n                return r()(l.a.mark((function i() {\n                    return l.a.wrap((function(i) {\n                        for (;;) switch (i.prev = i.next) {\n                            case 0:\n                                return i.next = 2, t.clashAxiosClient.delete(\"connections/\".concat(e));\n                            case 2:\n                            case \"end\":\n                                return i.stop()\n                        }\n                    }), i)\n                })))()\n            },\n            handleCloseAllConnections: function() {\n                var e = this;\n                return r()(l.a.mark((function t() {\n                    return l.a.wrap((function(t) {\n                        for (;;) switch (t.prev = t.next) {\n                            case 0:\n                                return t.next = 2, Promise.allSettled(e.orderedConnections.map((function(t) {\n                                    return t = t.id, e.clashAxiosClient.delete(\"connections/\".concat(t))\n                                })));\n                            case 2:\n                            case \"end\":\n                                return t.stop()\n                        }\n                    }), t)\n                })))()\n            },\n            handleItemSelected: function(e) {\n                var t = e.metadata,\n                    i = \"DIRECT\" === e.chains[0];\n                this.$preview({\n                    data: {\n                        主机: t.host,\n                        网络: e.metadata.network.toUpperCase(),\n                        流量: \"↑\".concat(this.traffic(e.upload), \" ↓\").concat(this.traffic(e.download)),\n                        来源: \"\".concat(t.sourceIP, \":\").concat(t.sourcePort, \" (\").concat(e.metadata.type, \")\"),\n                        目的地: (!i && t.host || t.destinationIP) + \":\" + t.destinationPort,\n                        规则: \"\".concat(e.rule, \" (\").concat(e.rulePayload, \")\"),\n                        模式: e.chains.slice().reverse().join(\" - \"),\n                        \"开始时间\": h()(e.start).format(\"MM-DD HH:mm:ss\")\n                    },\n                    title: \"连接信息\"\n                })\n            },\n            handleSwitchPauseStatus: function() {\n                this.isPause = !this.isPause, this.isPause ? this.closeStream() : this.openStream()\n            },\n            closeStream: function() {\n                this.client && this.client.terminate(), this.client = null\n            },\n            openStream: function() {\n                var e = this,\n                    t = this.clashWSClient(\"connections\");\n                t && (t.on(\"message\", (function(t) {\n                    t = JSON.parse(t), e.lastData = e.data, e.data = t\n                })), this.client = t)\n            },\n            setupComponent: function() {\n                var e;\n                this.labelSelected = null !== (e = d.a.get(c.a.CONNECTION_ORDER_INDEX)) && void 0 !== e ? e : 4, this.isReverse = null !== (e = d.a.get(c.a.CONNECTION_ORDER_REVERSE)) && void 0 !== e && e, this.isPause || this.openStream()\n            }\n        },\n        beforeRouteEnter: function(e, t, i) {\n            var n;\n            i((n = r()(l.a.mark((function t(i) {\n                var n;\n                return l.a.wrap((function(t) {\n                    for (;;) switch (t.prev = t.next) {\n                        case 0:\n                            i.setupComponent(), (n = void 0 === (n = e.query.searchText) ? \"\" : n) && (i.searchText = n);\n                        case 3:\n                        case \"end\":\n                            return t.stop()\n                    }\n                }), t)\n            }))), function(e) {\n                return n.apply(this, arguments)\n            }))\n        },\n        beforeRouteLeave: function(e, t, i) {\n            this.closeStream(), i()\n        }\n    }, i(348), i = i(30), o = Object(i.a)(o, (function() {\n        var e = this,\n            t = e.$createElement,\n            i = e._self._c || t;\n        return i(\"div\", {\n            class: [\"main-connection-view-\" + e.theme]\n        }, [i(\"div\", {\n            staticClass: \"header\"\n        }, [i(\"div\", {\n            staticClass: \"title\"\n        }, [i(\"div\", [e._v(\"\\n        连接\\n        \"), i(\"span\", [e._v(\"(\" + e._s(e.orderedConnections.length) + \")\")])]), e._v(\" \"), i(\"Hint\", {\n            attrs: {\n                position: \"top\",\n                hint: \"Reverse\"\n            },\n            on: {\n                click: e.handleReverseChange\n            }\n        }, [i(\"svg\", {\n            attrs: {\n                xmlns: \"http://www.w3.org/2000/svg\",\n                viewBox: \"0 0 24 24\",\n                fill: \"light\" === e.theme ? \"black\" : \"white\",\n                width: \"18px\",\n                height: \"18px\"\n            }\n        }, [i(\"path\", {\n            attrs: {\n                d: \"M0 0h24v24H0V0z\",\n                fill: \"none\"\n            }\n        }), e._v(\" \"), i(\"path\", {\n            attrs: {\n                d: \"M16 17.01V11c0-.55-.45-1-1-1s-1 .45-1 1v6.01h-1.79c-.45 0-.67.54-.35.85l2.79 2.78c.2.19.51.19.71 0l2.79-2.78c.32-.31.09-.85-.35-.85H16zM8.65 3.35L5.86 6.14c-.32.31-.1.85.35.85H8V13c0 .55.45 1 1 1s1-.45 1-1V6.99h1.79c.45 0 .67-.54.35-.85L9.35 3.35c-.19-.19-.51-.19-.7 0z\"\n            }\n        })])])], 1), e._v(\" \"), i(\"div\", {\n            staticClass: \"search-area\"\n        }, [i(\"input\", {\n            directives: [{\n                name: \"model\",\n                rawName: \"v-model\",\n                value: e.searchText,\n                expression: \"searchText\"\n            }],\n            ref: \"search-text-input\",\n            staticClass: \"search-box\",\n            attrs: {\n                type: \"文本\",\n                placeholder: \"搜索\"\n            },\n            domProps: {\n                value: e.searchText\n            },\n            on: {\n                input: function(t) {\n                    t.target.composing || (e.searchText = t.target.value)\n                }\n            }\n        }), e._v(\" \"), i(\"svg\", {\n            attrs: {\n                xmlns: \"http://www.w3.org/2000/svg\",\n                viewBox: \"0 0 24 24\",\n                fill: [\"dark\"].includes(e.theme) ? \"white\" : \"black\",\n                width: \"18px\",\n                height: \"18px\"\n            },\n            on: {\n                click: function(t) {\n                    e.searchText = \"\", e.$refs[\"search-text-input\"].focus()\n                }\n            }\n        }, [i(\"path\", {\n            attrs: {\n                d: \"M0 0h24v24H0V0z\",\n                fill: \"none\"\n            }\n        }), e._v(\" \"), i(\"path\", {\n            attrs: {\n                d: \"M18.3 5.71c-.39-.39-1.02-.39-1.41 0L12 10.59 7.11 5.7c-.39-.39-1.02-.39-1.41 0-.39.39-.39 1.02 0 1.41L10.59 12 5.7 16.89c-.39.39-.39 1.02 0 1.41.39.39 1.02.39 1.41 0L12 13.41l4.89 4.89c.39.39 1.02.39 1.41 0 .39-.39.39-1.02 0-1.41L13.41 12l4.89-4.89c.38-.38.38-1.02 0-1.4z\"\n            }\n        })])]), e._v(\" \"), i(\"div\", {\n            staticClass: \"header-right\"\n        }, [i(\"div\", {\n            class: [\"button-control\", e.isPause ? \"button-resume\" : \"button-pause\"],\n            on: {\n                click: e.handleSwitchPauseStatus\n            }\n        }, [e._v(\"\\n        \" + e._s(e.isPause ? \"恢复\" : \"暂停\") + \"\\n      \")]), e._v(\" \"), i(\"div\", {\n            staticClass: \"total-hint\"\n        }, [e._v(\"\\n        \" + e._s(\"总共: ↑\" + e.traffic(e.data.uploadTotal, 1) + \" ↓\" + e.traffic(e.data.downloadTotal, 1)) + \"\\n      \")])])]), e._v(\" \"), i(\"div\", {\n            staticClass: \"control-view\"\n        }, [i(\"div\", {\n            staticClass: \"labels\"\n        }, e._l(e.labels, (function(t, n) {\n            return i(\"div\", {\n                key: t,\n                class: e.calcLabelClasses(n),\n                on: {\n                    click: function(t) {\n                        return e.handleLableSelect(n)\n                    }\n                }\n            }, [e._v(\"\\n        \" + e._s(t) + \"\\n      \")])\n        })), 0), e._v(\" \"), i(\"div\", {\n            staticClass: \"close-all-btn\",\n            on: {\n                click: e.handleCloseAllConnections\n            }\n        }, [e._v(\"\\n      全部关闭\\n    \")])]), e._v(\" \"), i(\"div\", {\n            class: [\"scroll-view-\" + e.theme]\n        }, e._l(e.orderedConnections, (function(t) {\n            return i(\"div\", {\n                key: t.id,\n                class: [\"conn-item-\" + e.theme, t.closed ? \"conn-item-closed\" : \"\"],\n                on: {\n                    click: function(i) {\n                        return e.handleItemSelected(t)\n                    }\n                }\n            }, [i(\"div\", [i(\"div\", {\n                staticClass: \"conn-item-top\"\n            }, [i(\"div\", {\n                staticClass: \"conn-host\"\n            }, [e._v(\"\\n            \" + e._s(t.metadata.host || t.metadata.destinationIP) + \":\" + e._s(t.metadata.destinationPort) + \"\\n          \")])]), e._v(\" \"), i(\"div\", {\n                staticClass: \"conn-labels\"\n            }, [i(\"div\", {\n                staticClass: \"conn1\"\n            }, [e._v(\"\\n            \" + e._s(t.metadata.network.toUpperCase()) + \"\\n          \")]), e._v(\" \"), i(\"div\", {\n                staticClass: \"conn2\"\n            }, [e._v(e._s(t.metadata.type))]), e._v(\" \"), e.connectionGroup(t) ? i(\"div\", {\n                staticClass: \"conn3\",\n                domProps: {\n                    innerHTML: e._s(e.connectionGroup(t))\n                }\n            }) : e._e(), e._v(\" \"), e.connectionEndpoint(t) ? i(\"div\", {\n                staticClass: \"conn4\",\n                domProps: {\n                    innerHTML: e._s(e.connectionEndpoint(t))\n                }\n            }) : e._e(), e._v(\" \"), i(\"div\", {\n                staticClass: \"conn5\"\n            }, [e._v(\"\\n            \" + e._s(e.upperCaseFirst(e.fromNow(t.start))) + \"\\n          \")]), e._v(\" \"), t.speed.upload || t.speed.download ? i(\"div\", {\n                staticClass: \"conn6\"\n            }, [e._v(\"\\n            \" + e._s(e.calcSpeedText(t)) + \"\\n          \")]) : e._e()])]), e._v(\" \"), t.closed || e.isPause ? e._e() : i(\"div\", {\n                staticClass: \"close-btn\",\n                on: {\n                    click: function(i) {\n                        return i.stopPropagation(), e.handleCloseConnection(t.id)\n                    }\n                }\n            }, [i(\"svg\", {\n                staticClass: \"item-icon\",\n                attrs: {\n                    xmlns: \"http://www.w3.org/2000/svg\",\n                    viewBox: \"0 0 24 24\",\n                    fill: \"white\"\n                }\n            }, [i(\"path\", {\n                attrs: {\n                    d: \"M0 0h24v24H0V0z\",\n                    fill: \"none\"\n                }\n            }), e._v(\" \"), i(\"path\", {\n                attrs: {\n                    d: \"M18.3 5.71c-.39-.39-1.02-.39-1.41 0L12 10.59 7.11 5.7c-.39-.39-1.02-.39-1.41 0-.39.39-.39 1.02 0 1.41L10.59 12 5.7 16.89c-.39.39-.39 1.02 0 1.41.39.39 1.02.39 1.41 0L12 13.41l4.89 4.89c.39.39 1.02.39 1.41 0 .39-.39.39-1.02 0-1.41L13.41 12l4.89-4.89c.38-.38.38-1.02 0-1.4z\"\n                }\n            })])])])\n        })), 0)])\n    }), [], !1, null, \"34dd3e44\", null), t.default = o.exports\n}, function(e, t, i) {\n    \"use strict\";\n\n    function n(e, t) {\n        var i = null !== (n = b.a.get(_.a.MENU_ITEM_ORDER)) && void 0 !== n ? n : [],\n            n = i.findIndex((function(t) {\n                return t === e.title\n            }));\n        return -1 === n ? 1 : n - i.findIndex((function(e) {\n            return e === t.title\n        }))\n    }\n    i.r(t);\n    var r = i(10),\n        o = i.n(r),\n        s = i(18),\n        a = i.n(s),\n        l = (r = i(52), i.n(r)),\n        d = (s = i(105), i.n(s)),\n        c = (r = i(3), i.n(r)),\n        h = (s = i(16), i.n(s)),\n        u = (r = i(45), i.n(r)),\n        p = (s = i(12), i.n(s)),\n        g = (r = i(69), i.n(r)),\n        f = (s = i(147), i.n(s)),\n        m = i(175),\n        v = i(48),\n        b = i(35),\n        _ = i(38),\n        w = i(19),\n        y = i(22);\n\n    function C(e, t) {\n        var i, n = Object.keys(e);\n        return Object.getOwnPropertySymbols && (i = Object.getOwnPropertySymbols(e), t && (i = i.filter((function(t) {\n            return Object.getOwnPropertyDescriptor(e, t).enumerable\n        }))), n.push.apply(n, i)), n\n    }\n\n    function x(e) {\n        for (var t = 1; t < arguments.length; t++) {\n            var i = null != arguments[t] ? arguments[t] : {};\n            t % 2 ? C(Object(i), !0).forEach((function(t) {\n                a()(e, t, i[t])\n            })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(i)) : C(Object(i)).forEach((function(t) {\n                Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(i, t))\n            }))\n        }\n        return e\n    }\n    r = {\n        isDevMode: !1,\n        clashPath: \"\",\n        clashStatus: v.a.DISCONNECTED,\n        profilesPath: \"\",\n        profiles: {},\n        confData: {},\n        logFilePath: b.a.get(_.a.LAST_LOG_FILE_PATH) || \"\",\n        isMixinEnable: b.a.get(_.a.IS_MIXIN) || !1,\n        exePath: \"\",\n        errors: [],\n        status: v.b.INIT,\n        clashAxiosFlyingRequestCount: 0,\n        settings: {},\n        shouldUseDarkTheme: !1,\n        detectedInterfaceName: b.a.get(_.a.DETECTED_INTERFACE_NAME) || \"\",\n        isWindowShow: !1,\n        isAppSuspend: !1,\n        innerServerPort: 0,\n        isLocalMode: !0,\n        isLaunching: !0,\n        menuItems: [{\n            title: \"主页\",\n            path: \"/home/general\"\n        }, {\n            title: \"代理\",\n            path: \"/home/proxy\"\n        }, {\n            title: \"配置\",\n            path: \"/home/server\"\n        }, {\n            title: \"日志\",\n            path: \"/home/log\"\n        }, {\n            title: \"连接\",\n            path: \"/home/connection\"\n        }, {\n            title: \"设置\",\n            path: \"/home/setting\"\n        }, {\n            title: \"关于\",\n            path: \"/home/about\"\n        }],\n        updateDownloadProgress: null,\n        isSystemProxyOn: b.a.get(_.a.SYSTEM_PROXY) || !1,\n        isSubViewShow: !1,\n        currentRoutePath: b.a.get(_.a.CURRENT_ROUTE_PATH) || \"/home/general\",\n        profileRefreshTimes: 0,\n        mode: \"rule\",\n        routerHijackMacAddresses: b.a.get(_.a.ROUTER_HIJACK_MAC_ADDRESSES) || [],\n        currentProfilePayload: {},\n        isSilentUpgraded: !1,\n        tunSettings: b.a.get(_.a.TUN_SETTINGS),\n        isTunEnable: b.a.get(_.a.IS_TUN) || !1\n    }, s = {\n        mixedPort: function(e) {\n            return e.confData[\"mixed-port\"] || 0\n        },\n        controllerPort: function(e) {\n            return (e = e.confData[\"external-controller\"]) ? (e = e.split(\":\"), (e = d()(e, 2))[0], e = e[1], parseInt(e.trim()) || 0) : 0\n        },\n        secret: function(e) {\n            return void 0 === (e = e.confData.secret) ? \"\" : e\n        },\n        clashAxiosClient: function(e, t) {\n            var i = t.controllerPort;\n            t = t.secret;\n            return 0 < i ? g.a.create({\n                baseURL: \"http://127.0.0.1:\".concat(i, \"/\"),\n                timeout: 5e3,\n                headers: {\n                    Authorization: \"Bearer \".concat(t)\n                }\n            }) : null\n        },\n        clashGotClient: function(e, t) {\n            var i = t.controllerPort;\n            t = t.secret;\n            return 0 < i ? f.a.extend({\n                baseUrl: \"http://127.0.0.1:\".concat(i),\n                headers: {\n                    Authorization: \"Bearer \".concat(t)\n                }\n            }) : null\n        },\n        clashWSClient: function(e, t) {\n            return function(e) {\n                var i = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : [],\n                    n = t.controllerPort,\n                    r = t.secret;\n                return 0 < n ? (/^\\//.test(e) || (e = \"/\" + e), i = \"ws://127.0.0.1:\".concat(n).concat(e, \"?token=\").concat(r).concat(0 < i.length ? \"&\".concat(i.join(\"&\")) : \"\"), new m(i)) : null\n            }\n        },\n        resourcesPath: function(e) {\n            return e.isDevMode || \"\" === e.exePath ? \"\" : p.a.join(p.a.dirname(e.exePath), Object(w.i)() ? \"../Resources\" : \"./resources\")\n        },\n        filesPath: function(e, t) {\n            return \"\" !== t.resourcesPath ? p.a.join(t.resourcesPath, \"static/files\") : \"static/files\"\n        },\n        theme: function(e) {\n            if (e.settings) {\n                var t, i = (t = e.settings).theme;\n                return void 0 !== (t = t.systemTheme) && t ? e.shouldUseDarkTheme ? \"dark\" : \"light\" : [\"light\", \"dark\", \"red\", \"2077\"][void 0 === i ? 0 : i]\n            }\n            return \"light\"\n        },\n        menuItemsWithOrder: function(e) {\n            return l()(e.menuItems).sort(n)\n        }\n    }, i = {\n        getMode: function(e) {\n            return o()(c.a.mark((function t() {\n                var i, n, r;\n                return c.a.wrap((function(t) {\n                    for (;;) switch (t.prev = t.next) {\n                        case 0:\n                            if (i = e.commit, r = e.getters, n = r.clashAxiosClient) return t.next = 5, n.get(\"/configs\").catch((function(e) {}));\n                            t.next = 9;\n                            break;\n                        case 5:\n                            r = t.sent, n = r.status, r = r.data, 200 === n && (r = r.mode, i(\"CHANGE_MODE\", {\n                                mode: r\n                            }));\n                        case 9:\n                        case \"end\":\n                            return t.stop()\n                    }\n                }), t)\n            })))()\n        },\n        setMode: function(e, t) {\n            return o()(c.a.mark((function i() {\n                var n, r, o;\n                return c.a.wrap((function(i) {\n                    for (;;) switch (i.prev = i.next) {\n                        case 0:\n                            if (n = e.commit, o = e.getters, r = t.mode, o = o.clashAxiosClient) return i.next = 6, o.patch(\"/configs\", {\n                                mode: r\n                            }).catch((function(e) {}));\n                            i.next = 9;\n                            break;\n                        case 6:\n                            204 === (o = i.sent).status && n(\"CHANGE_MODE\", {\n                                mode: r\n                            });\n                        case 9:\n                        case \"end\":\n                            return i.stop()\n                    }\n                }), i)\n            })))()\n        },\n        getParserLogPath: function() {\n            return o()(c.a.mark((function e() {\n                var t;\n                return c.a.wrap((function(e) {\n                    for (;;) switch (e.prev = e.next) {\n                        case 0:\n                            return e.next = 2, y.ipcRenderer.invoke(\"app\", \"getPath\", \"temp\");\n                        case 2:\n                            return t = e.sent, e.abrupt(\"return\", p.a.join(t, \"cfw-parser.log\"));\n                        case 4:\n                        case \"end\":\n                            return e.stop()\n                    }\n                }), e)\n            })))()\n        },\n        getScriptLogPath: function() {\n            return o()(c.a.mark((function e() {\n                var t;\n                return c.a.wrap((function(e) {\n                    for (;;) switch (e.prev = e.next) {\n                        case 0:\n                            return e.next = 2, y.ipcRenderer.invoke(\"app\", \"getPath\", \"temp\");\n                        case 2:\n                            return t = e.sent, e.abrupt(\"return\", p.a.join(t, \"cfw-script.log\"));\n                        case 4:\n                        case \"end\":\n                            return e.stop()\n                    }\n                }), e)\n            })))()\n        }\n    }, t.default = {\n        state: r,\n        getters: s,\n        mutations: {\n            SET_IS_DEV_MODE: function(e, t) {\n                t = t.isDevMode, (e.isDevMode = t) && (e.isWindowShow = !0)\n            },\n            CHANGE_IS_MIXIN_ENABLE: function(e, t) {\n                t = t.isMixin, e.isMixinEnable = t, b.a.put(_.a.IS_MIXIN, t)\n            },\n            SET_CLASH_PATH: function(e, t) {\n                t = t.path, e.clashPath = p.a.normalize(t)\n            },\n            SET_CLASH_STATUS: function(e, t) {\n                (t = t.status) !== v.a.CONNECTED && t !== v.a.DISCONNECTED || (e.clashStatus = t)\n            },\n            SET_PROFILES_PATH: function(e, t) {\n                t = t.path, e.profilesPath = p.a.normalize(t)\n            },\n            SET_CONF_DATA: function(e, t) {\n                t = t.data, e.confData = t\n            },\n            LOAD_PROFILES: function(e) {\n                var t = h.a.readFileSync(p.a.join(e.profilesPath, \"list.yml\"), \"utf8\"),\n                    i = (t = (i = u.a.parse(t, {\n                        merge: !0,\n                        schema: \"yaml-1.1\"\n                    })).files, i.index);\n                e.profiles = {\n                    files: t,\n                    index: i\n                }\n            },\n            SAVE_PROFILES: function(e) {\n                h.a.writeFileSync(p.a.join(e.profilesPath, \"list.yml\"), u.a.stringify(e.profiles))\n            },\n            CHANGE_PROFILES: function(e, t) {\n                t = t.profiles, e.profiles = x(x({}, e.profiles), {}, {\n                    files: t\n                })\n            },\n            CHANGE_PROFILES_INDEX: function(e, t) {\n                t = t.index, e.profiles = x(x({}, e.profiles), {}, {\n                    index: t\n                })\n            },\n            CHANGE_PROFILE: function(e, t) {\n                var i = t.index,\n                    n = t.profile;\n                n && ((t = e.profiles.files.slice())[i] = n, e.profiles = x(x({}, e.profiles), {}, {\n                    files: t\n                }))\n            },\n            DELETE_PROFILE: function(e, t) {\n                var i = t.index;\n                (t = e.profiles.files.slice()).splice(i, 1), e.profiles = x(x({}, e.profiles), {}, {\n                    files: t\n                })\n            },\n            APPEND_PROFILE: function(e, t) {\n                var i = t.profile;\n                t = void 0 === (t = e.profiles.files) ? [] : t;\n                i && (e.profiles = x(x({}, e.profiles), {}, {\n                    files: [].concat(l()(t), [i])\n                }))\n            },\n            SET_LOG_FILE_PATH: function(e, t) {\n                t = t.path, e.logFilePath = p.a.normalize(t), b.a.put(_.a.LAST_LOG_FILE_PATH, p.a)\n            },\n            SET_EXE_PATH: function(e, t) {\n                t = t.path, e.exePath = p.a.normalize(t)\n            },\n            APPEND_ERROR: function(e, t) {\n                t = t.error, e.errors = [].concat(l()(e.errors), [t])\n            },\n            CHANGE_STATUS: function(e, t) {\n                t = t.status, e.status = t\n            },\n            ADD_AXIOS_FLYING_REQUEST_COUNT: function(e, t) {\n                t = t.count, e.clashAxiosFlyingRequestCount += t\n            },\n            SET_SETTINGS_OBJECT: function(e, t) {\n                t = t.obj, e.settings = t\n            },\n            SAVE_SETTINGS_OBJECT: function(e, t) {\n                t = t.obj, e.settings = t, h.a.writeFileSync(p.a.join(e.clashPath, \"cfw-settings.yaml\"), u.a.stringify(t))\n            },\n            SET_SHOULD_USE_DARK_THEME: function(e, t) {\n                t = t.shouldUseDarkTheme, e.shouldUseDarkTheme = t\n            },\n            SET_DETECTED_INTERFACE_NAME: function(e, t) {\n                t = t.interfaceName, e.detectedInterfaceName = t, b.a.put(_.a.DETECTED_INTERFACE_NAME, t)\n            },\n            SET_IS_WINDOW_SHOW: function(e, t) {\n                t = t.isShow, e.isWindowShow = t\n            },\n            SET_IS_APP_SUSPEND: function(e, t) {\n                t = t.isSuspend, e.isAppSuspend = t\n            },\n            SET_INNER_SERVER_PORT: function(e, t) {\n                t = t.port, e.innerServerPort = t\n            },\n            SET_IS_LOCAL_MODE: function(e, t) {\n                t = t.isLocal, e.isLocalMode = t\n            },\n            SET_IS_LAUNCHING: function(e, t) {\n                t = t.isLaunching, e.isLaunching = t\n            },\n            SET_MENU_ITEMS: function(e, t) {\n                t = t.items, e.menuItems = t\n            },\n            SET_UPDATE_DOWNLOAD_PROGRESS: function(e, t) {\n                t = t.progress, e.updateDownloadProgress = t\n            },\n            SET_IS_SYSTEM_PROXY_ON: function(e, t) {\n                t = t.isOn, e.isSystemProxyOn = t, b.a.put(_.a.SYSTEM_PROXY, t)\n            },\n            SET_IS_SUB_VIEW_SHOW: function(e, t) {\n                t.isShow ? e.isSubViewShow = !0 : setTimeout((function() {\n                    e.isSubViewShow = !1\n                }), 50)\n            },\n            SET_CURRENT_ROUTE_PATH: function(e, t) {\n                t = t.path, e.currentRoutePath = t, b.a.put(_.a.CURRENT_ROUTE_PATH, t)\n            },\n            ADD_PROFILE_REFRESH_TIMES: function(e, t) {\n                t = t.times, e.profileRefreshTimes += void 0 === t ? 1 : t\n            },\n            CHANGE_MODE: function(e, t) {\n                t = t.mode, [\"direct\", \"rule\", \"global\", \"script\"].includes(t) && (e.mode = t)\n            },\n            SET_ROUTER_HIJACK_MAC_ADDRESSES: function(e, t) {\n                t = t.addresses, e.routerHijackMacAddresses = t, b.a.put(_.a.ROUTER_HIJACK_MAC_ADDRESSES, t)\n            },\n            SET_CURRENT_PROFILE_PAYLOAD: function(e, t) {\n                t = t.payload, e.currentProfilePayload = t\n            },\n            SET_IS_SILENT_UPGRADED: function(e, t) {\n                t = t.isUpgraded, e.isSilentUpgraded = t\n            },\n            SET_TUN_SETTINGS: function(e, t) {\n                t = t.settings, e.tunSettings = t, b.a.put(_.a.TUN_SETTINGS, t)\n            },\n            CHANGE_IS_TUN_ENABLE: function(e, t) {\n                t = t.isTun, e.isTunEnable = t, b.a.put(_.a.IS_TUN, t)\n            }\n        },\n        actions: i\n    }\n}]);\n"
  },
  {
    "path": "chinese_file/packing_script.iss",
    "content": "; Script generated by the Inno Setup Script Wizard.\n; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!\n\n#define MyAppName \"Clash for Windows\"\n\n; Need change\n#define MyAppVersion \"0.20.10\"\n\n#define MyAppPublisher \"Clash for Windows\"\n#define MyAppURL \"https://github.com/ender-zhao/Clash-for-Windows_Chinese\"\n#define MyAppExeName \"Clash for Windows.exe\"\n\n; Need change\n#define MyAppAssocName \"Clash.for.Windows.Setup.0.20.10\"\n\n#define MyAppAssocExt \".exe\"\n#define MyAppAssocKey StringChange(MyAppAssocName, \" \", \"\") + MyAppAssocExt\n\n\n[Setup]\n; NOTE: The value of AppId uniquely identifies this application. Do not use the same AppId value in installers for other applications.\n; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)\nAppId={{FDA54DAD-1739-4AAE-B8DF-098ACCEA840A}\nAppName={#MyAppName}\nAppVersion={#MyAppVersion}\n;AppVerName={#MyAppName} {#MyAppVersion}\nAppPublisher={#MyAppPublisher}\nAppPublisherURL={#MyAppURL}\nAppSupportURL={#MyAppURL}\nAppUpdatesURL={#MyAppURL}\nDefaultDirName=C:\\Program Files\\{#MyAppName}\nChangesAssociations=yes\nDefaultGroupName={#MyAppName}\nAllowNoIcons=yes\n\n; May Need change\nInfoBeforeFile=D:\\Tools-of-CFW-Chinese\\pack\\state.txt\n; Uncomment the following line to run in non administrative install mode (install for current user only.)\n;PrivilegesRequired=lowest\n\n; May Need change\nOutputDir=C:\\Users\\[users]\\Downloads\n\n; Need change\nOutputBaseFilename=Clash.for.Windows.Setup.0.20.10\n\n; May Need change\nSetupIconFile=D:\\Tools-of-CFW-Chinese\\pack\\icon-setup.ico\n\nCompression=lzma\nSolidCompression=yes\nWizardStyle=modern\n\n[Languages]\nName: \"english\"; MessagesFile: \"compiler:Default.isl\"\n\n[Tasks]\nName: \"desktopicon\"; Description: \"{cm:CreateDesktopIcon}\"; GroupDescription: \"{cm:AdditionalIcons}\"; Flags: unchecked\n\n; May Need change\n[Files]\nSource: \"D:\\Tools-of-CFW-Chinese\\pack\\Clash for Windows\\{#MyAppExeName}\"; DestDir: \"{app}\"; Flags: ignoreversion\nSource: \"D:\\Tools-of-CFW-Chinese\\pack\\Clash for Windows\\*\"; DestDir: \"{app}\"; Flags: ignoreversion recursesubdirs createallsubdirs\n; NOTE: Don't use \"Flags: ignoreversion\" on any shared system files\n\n[Registry]\nRoot: HKA; Subkey: \"Software\\Classes\\{#MyAppAssocExt}\\OpenWithProgids\"; ValueType: string; ValueName: \"{#MyAppAssocKey}\"; ValueData: \"\"; Flags: uninsdeletevalue\nRoot: HKA; Subkey: \"Software\\Classes\\{#MyAppAssocKey}\"; ValueType: string; ValueName: \"\"; ValueData: \"{#MyAppAssocName}\"; Flags: uninsdeletekey\nRoot: HKA; Subkey: \"Software\\Classes\\{#MyAppAssocKey}\\DefaultIcon\"; ValueType: string; ValueName: \"\"; ValueData: \"{app}\\{#MyAppExeName},0\"\nRoot: HKA; Subkey: \"Software\\Classes\\{#MyAppAssocKey}\\shell\\open\\command\"; ValueType: string; ValueName: \"\"; ValueData: \"\"\"{app}\\{#MyAppExeName}\"\" \"\"%1\"\"\"\nRoot: HKA; Subkey: \"Software\\Classes\\Applications\\{#MyAppExeName}\\SupportedTypes\"; ValueType: string; ValueName: \".myp\"; ValueData: \"\"\n\n[Icons]\nName: \"{group}\\{#MyAppName}\"; Filename: \"{app}\\{#MyAppExeName}\"\nName: \"{autodesktop}\\{#MyAppName}\"; Filename: \"{app}\\{#MyAppExeName}\"; Tasks: desktopicon\n\n[InstallDelete] \n; Delete old style named plugins that may have been previously installed\nType: files; Name: \"{app}\\Plugins\\LSRetail.*\";\nType: files; Name: \"{app}\\*\"\n\n[Run]\nFilename: \"{app}\\{#MyAppExeName}\"; Description: \"{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}\"; Flags: nowait postinstall skipifsilent\n\n"
  },
  {
    "path": "image/This folder stores pictures",
    "content": "Picture list:\n\n1, Image_Clash_Chinese-0.15.6.png\n2, image_clash.png\n3, Image_Clash_Chinese-0.15.7.png\n"
  },
  {
    "path": "update",
    "content": "{\n  \"html_url\": \"https://github.com/Z-Siqi/Clash-for-Windows_Chinese/releases/tag/0.20.39.3\",\n  \"tag_name\": \"0.20.39.3\",\n  \"assets\": [\n    {\n      \"name\": \"Clash.for.Windows.Setup.20.39.3.exe\",\n      \"browser_download_url\": \"https://github.com/Z-Siqi/Clash-for-Windows_Chinese/releases/download/0.20.39.3/Clash.for.Windows.Setup.0.20.39_Opt-3.exe\"\n    }\n  ],\n  \"body\": \"- **新版本已发布!**\",\n  \"reactions\": {\n  }\n}\n"
  }
]